diff --git a/.DS_Store b/.DS_Store
index b090a4c..9189231 100644
Binary files a/.DS_Store and b/.DS_Store differ
diff --git a/.github/workflows/check_version.yml b/.github/workflows/check_version.yml
index 75d0b1a..a6faac7 100644
--- a/.github/workflows/check_version.yml
+++ b/.github/workflows/check_version.yml
@@ -1,9 +1,11 @@
-name: "Verify PRs to main"
+name: Verify PRs to main
on:
+ workflow_dispatch:
pull_request:
branches:
- main
+ - dev
jobs:
configure:
@@ -12,7 +14,7 @@ jobs:
uid_gid: ${{ steps.get-user.outputs.uid_gid }}
steps:
- id: get-user
- run: echo "::set-output name=uid_gid::$(id -u):$(id -g)"
+ run: echo "uid_gid=$(id -u):$(id -g)" >> $GITHUB_OUTPUT
get_version:
needs: configure
@@ -27,7 +29,7 @@ jobs:
version: ${{ steps.store-version.outputs.version }}
steps:
- name: Checkout
- uses: actions/checkout@v2
+ uses: actions/checkout@v3
with:
submodules: true
@@ -38,7 +40,7 @@ jobs:
run: make version
- id: store-version
- run: echo ::set-output name=version::$(cat ./app/app.version)
+ run: echo "version=$(cat ./app/app.version)" >> $GITHUB_OUTPUT
check_app_version:
needs: get_version
@@ -55,4 +57,4 @@ jobs:
- name: Tag exists
if: ${{ steps.checkTag.outputs.exists == 'true' }}
- run: exit 1
\ No newline at end of file
+ run: exit 1
diff --git a/.github/workflows/ledger.yml b/.github/workflows/ledger.yml
index 15dee34..3f9697d 100644
--- a/.github/workflows/ledger.yml
+++ b/.github/workflows/ledger.yml
@@ -1,11 +1,15 @@
name: CI
on:
- # Triggers the workflow on push or pull request events but only for the master branch
+ # Triggers the workflow on push or pull request events but only for the main branch
push:
- branches: [main]
+ branches:
+ - main
+ - dev
pull_request:
- branches: [main]
+ branches:
+ - main
+ - dev
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
@@ -19,7 +23,7 @@ jobs:
image: ghcr.io/ledgerhq/ledger-app-builder/ledger-app-builder:latest
steps:
- - uses: actions/checkout@v2
+ - uses: actions/checkout@v3
with:
submodules: true
diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml
index ecd1dd0..0aec52e 100644
--- a/.github/workflows/main.yml
+++ b/.github/workflows/main.yml
@@ -1,5 +1,11 @@
name: Build
-on: [ push ]
+on:
+ workflow_dispatch:
+ push:
+ pull_request:
+ branches:
+ - main
+ - dev
jobs:
configure:
@@ -8,20 +14,19 @@ jobs:
uid_gid: ${{ steps.get-user.outputs.uid_gid }}
steps:
- id: get-user
- run: echo "::set-output name=uid_gid::$(id -u):$(id -g)"
+ run: echo "uid_gid=$(id -u):$(id -g)" >> $GITHUB_OUTPUT
build:
runs-on: ubuntu-latest
steps:
- name: Checkout
- uses: actions/checkout@v2
+ uses: actions/checkout@v3
with:
submodules: true
- name: Install deps
run: |
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 10
make deps
- brew install conan
- run: cmake -DCMAKE_BUILD_TYPE=Debug . && make
- run: GTEST_COLOR=1 ASAN_OPTIONS=detect_leaks=0 ctest -VV
@@ -29,7 +34,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout
- uses: actions/checkout@v2
+ uses: actions/checkout@v3
with:
submodules: true
- name: Install deps
@@ -50,7 +55,7 @@ jobs:
cd ./app/rust
cargo test
- build_nano_S:
+ build_ledger:
needs: configure
runs-on: ubuntu-latest
container:
@@ -60,63 +65,35 @@ jobs:
BOLOS_SDK: ${{ github.workspace }}/deps/nanos-secure-sdk
BOLOS_ENV: /opt/bolos
HOME: /home/zondax_circle
+ outputs:
+ size: ${{steps.build.outputs.size}}
steps:
- name: Checkout
- uses: actions/checkout@v2
+ uses: actions/checkout@v3
with:
submodules: true
- name: Build Standard app
+ id: build
shell: bash -l {0}
run: |
source $HOME/.cargo/env
- make
+ SUBSTRATE_PARSER_FULL=1 make
+ echo "size=$(python3 deps/ledger-zxlib/scripts/getSize.py s)" >> $GITHUB_OUTPUT
- name: Build SR25519 app
shell: bash -l {0}
run: |
source $HOME/.cargo/env
SUPPORT_SR25519=1 make
- build_nano_SP:
- needs: configure
- runs-on: ubuntu-latest
- container:
- image: zondax/builder-bolos:latest
- options: --user ${{ needs.configure.outputs.uid_gid }}
- env:
- BOLOS_SDK: ${{ github.workspace }}/deps/nanosplus-secure-sdk
- BOLOS_ENV: /opt/bolos
- HOME: /home/zondax_circle
- steps:
- - name: Checkout
- uses: actions/checkout@v2
- with:
- submodules: true
- - name: Build Standard app
- shell: bash -l {0}
- run: |
- source $HOME/.cargo/env
- make
-
- build_nano_X:
- needs: configure
+ size_nano_s:
+ needs: build_ledger
runs-on: ubuntu-latest
- container:
- image: zondax/builder-bolos:latest
- options: --user ${{ needs.configure.outputs.uid_gid }}
env:
- BOLOS_SDK: ${{ github.workspace }}/deps/nanox-secure-sdk
- BOLOS_ENV: /opt/bolos
- HOME: /home/zondax_circle
+ NANOS_LIMIT_SIZE: 136
steps:
- - name: Checkout
- uses: actions/checkout@v2
- with:
- submodules: true
- - name: Build Standard app
- shell: bash -l {0}
- run: |
- source $HOME/.cargo/env
- make
+ - run: |
+ echo "LNS app size: ${{needs.build_ledger.outputs.size}} KiB"
+ [ ${{needs.build_ledger.outputs.size}} -le $NANOS_LIMIT_SIZE ]
test_zemu:
runs-on: ubuntu-latest
@@ -127,7 +104,7 @@ jobs:
echo $HOME
echo $DISPLAY
- name: Checkout
- uses: actions/checkout@v2
+ uses: actions/checkout@v3
with:
submodules: true
- run: sudo apt-get update -y && sudo apt-get install -y libusb-1.0.0 libudev-dev
@@ -137,9 +114,7 @@ jobs:
sudo apt-get install -y cmake binutils-dev libcurl4-openssl-dev libiberty-dev libelf-dev libdw-dev
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- --no-modify-path --default-toolchain none -y;
- name: Install node
- uses: actions/setup-node@v2
- with:
- node-version: '14.17.0'
+ uses: actions/setup-node@v3
- name: Install yarn
run: |
npm install -g yarn
@@ -159,7 +134,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout
- uses: actions/checkout@v2
+ uses: actions/checkout@v3
with:
submodules: true
- run: sudo apt-get update -y && sudo apt-get install -y libusb-1.0.0 libudev-dev
@@ -169,9 +144,7 @@ jobs:
sudo apt-get install -y cmake binutils-dev libcurl4-openssl-dev libiberty-dev libelf-dev libdw-dev
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- --no-modify-path --default-toolchain none -y;
- name: Install node
- uses: actions/setup-node@v2
- with:
- node-version: '14.17.0'
+ uses: actions/setup-node@v3
- name: Install yarn
run: |
npm install -g yarn
@@ -188,7 +161,7 @@ jobs:
cd tests_zemu && yarn testSR25519
build_package_0:
- needs: [configure, build, build_nano_S, build_nano_SP, build_nano_X, test_zemu, test_zemu_sr25519]
+ needs: [configure, build, build_ledger, test_zemu, test_zemu_sr25519]
if: ${{ github.ref == 'refs/heads/main' }}
runs-on: ubuntu-latest
container:
@@ -200,7 +173,7 @@ jobs:
HOME: /home/zondax_circle
steps:
- name: Checkout
- uses: actions/checkout@v2
+ uses: actions/checkout@v3
with:
submodules: true
- name: Install deps
@@ -213,8 +186,8 @@ jobs:
make SUBSTRATE_PARSER_FULL=0
mv ./app/pkg/installer_s.sh ./app/pkg/installer_nanos.sh
- name: Set tag
- id: nanos
- run: echo ::set-output name=tag_name::$(./app/pkg/installer_nanos.sh version)
+ id: nanos_light
+ run: echo "tag_name=$(./app/pkg/installer_nanos.sh version)" >> $GITHUB_OUTPUT
- name: Create or Update Release (1)
id: create_release_0
uses: softprops/action-gh-release@v1
@@ -222,12 +195,12 @@ jobs:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # This token is provided by Actions, you do not need to create your own token
with:
files: ./app/pkg/installer_nanos.sh
- tag_name: ${{ steps.nanos.outputs.tag_name }}
+ tag_name: ${{ steps.nanos_light.outputs.tag_name }}
draft: false
prerelease: false
build_package_1:
- needs: [configure, build, build_nano_S, build_nano_SP, build_nano_X, test_zemu, test_zemu_sr25519]
+ needs: [configure, build, build_ledger, test_zemu, test_zemu_sr25519]
if: ${{ github.ref == 'refs/heads/main' }}
runs-on: ubuntu-latest
container:
@@ -239,7 +212,7 @@ jobs:
HOME: /home/zondax_circle
steps:
- name: Checkout
- uses: actions/checkout@v2
+ uses: actions/checkout@v3
with:
submodules: true
- name: Install deps
@@ -253,7 +226,7 @@ jobs:
mv ./app/pkg/installer_s.sh ./app/pkg/installer_nanos_xl.sh
- name: Set tag
id: nanos_xl
- run: echo ::set-output name=tag_name::$(./app/pkg/installer_nanos_xl.sh version)
+ run: echo "tag_name=$(./app/pkg/installer_nanos_xl.sh version)" >> $GITHUB_OUTPUT
- name: Update Release
id: update_release_1
uses: softprops/action-gh-release@v1
@@ -266,7 +239,7 @@ jobs:
prerelease: false
build_package_2:
- needs: [configure, build, build_nano_S, build_nano_SP, build_nano_X, test_zemu, test_zemu_sr25519]
+ needs: [configure, build, build_ledger, test_zemu, test_zemu_sr25519]
if: ${{ github.ref == 'refs/heads/main' }}
runs-on: ubuntu-latest
container:
@@ -278,7 +251,7 @@ jobs:
HOME: /home/zondax_circle
steps:
- name: Checkout
- uses: actions/checkout@v2
+ uses: actions/checkout@v3
with:
submodules: true
- name: Install deps
@@ -292,7 +265,7 @@ jobs:
mv ./app/pkg/installer_s2.sh ./app/pkg/installer_nanos_plus.sh
- name: Set tag
id: nanosp
- run: echo ::set-output name=tag_name::$(./app/pkg/installer_nanos_plus.sh version)
+ run: echo "tag_name=$(./app/pkg/installer_nanos_plus.sh version)" >> $GITHUB_OUTPUT
- name: Update Release
id: update_release_2
uses: softprops/action-gh-release@v1
diff --git a/.gitignore b/.gitignore
index 7bd9af6..cc53c72 100644
--- a/.gitignore
+++ b/.gitignore
@@ -71,7 +71,9 @@ build/*
cmake-build-debug
tests_zemu/snapshots-tmp
+tests_zemu/snapshots/s-pallets
tests_zemu/yarn.lock
tests_tools/target
fuzz-*.log
/scan-build
+/app/doc
diff --git a/.gitmodules b/.gitmodules
index 75a0104..7c8a5d6 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -15,4 +15,4 @@
url = https://github.com/LedgerHQ/nanosplus-secure-sdk
[submodule "deps/ledger-zxlib"]
path = deps/ledger-zxlib
- url = https://github.com/Zondax/ledger-zxlib.git
+ url = https://github.com/mohsinriaz17/ledger-zxlib.git
diff --git a/CMakeLists.txt b/CMakeLists.txt
index fd675fd..ae70cbd 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -14,7 +14,7 @@
#* limitations under the License.
#********************************************************************************
cmake_minimum_required(VERSION 3.0)
-project(ledger-kusama VERSION 0.0.0)
+project(ledger-ternoa VERSION 0.0.0)
enable_testing()
cmake_policy(SET CMP0025 NEW)
diff --git a/README.md b/README.md
index a1d4754..da4ffdc 100644
--- a/README.md
+++ b/README.md
@@ -1 +1,220 @@
-# Ledger Ternoa App
\ No newline at end of file
+[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)
+[![GithubActions](https://github.com/capsule-corp-ternoa/ledger-ternoa/actions/workflows/main.yml/badge.svg)](https://github.com/capsule-corp-ternoa/ledger-ternoa/blob/main/.github/workflows/main.yaml)
+
+For more information: [How to build](docs/build.md)
+
+# Ternoa 1.11.x
+
+## System
+
+| Name | Nano S | Nano S XL | Nano SP/X | Nesting | Arguments |
+| ----------------------- | ------ | ------------------ | ------------------ | ------------------ | --------------------------------- |
+| Remark | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | `Bytes`remark |
+| Set heap pages | | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | `u64`pages |
+| Set code | | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | `Vecu8`code |
+| Set code without checks | | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | `Vecu8`code |
+| Set storage | | | | | `VecKeyValue`items |
+| Kill storage | | | | | `VecKey`keys |
+| Kill prefix | | | | | `Key`prefix `u32`subkeys |
+| Remark with event | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | `Bytes`remark |
+
+## Timestamp
+
+| Name | Nano S | Nano S XL | Nano SP/X | Nesting | Arguments |
+| ---- | ------ | ------------------ | ------------------ | ------- | -------------------- |
+| Set | | :heavy_check_mark: | :heavy_check_mark: | | `Compactu64`now |
+
+## Balances
+
+| Name | Nano S | Nano S XL | Nano SP/X | Nesting | Arguments |
+| ------------------- | ------------------ | ------------------ | ------------------ | ------------------ | ------------------------------------------------------------------------------------------ |
+| Transfer | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | `AccountIdLookupOfT`dest `CompactBalance`amount |
+| Set balance | | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | `AccountIdLookupOfT`who `CompactBalance`new_free `CompactBalance`new_reserved |
+| Force transfer | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | `AccountIdLookupOfT`source `AccountIdLookupOfT`dest `CompactBalance`amount |
+| Transfer keep alive | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | `AccountIdLookupOfT`dest `CompactBalance`amount |
+| Transfer all | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | | `AccountIdLookupOfT`dest `bool`keep_alive |
+| Force unreserve | | :heavy_check_mark: | :heavy_check_mark: | | `AccountIdLookupOfT`who `Balance`amount |
+
+
+## Session
+
+| Name | Nano S | Nano S XL | Nano SP/X | Nesting | Arguments |
+| ---------- | ------------------ | ------------------ | ------------------ | ------- | -------------------------------- |
+| Set keys | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | | `Keys`keys `Bytes`proof |
+| Purge keys | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | | |
+
+## Grandpa
+
+| Name | Nano S | Nano S XL | Nano SP/X | Nesting | Arguments |
+| ---------------------------- | ------ | --------- | --------- | ------- | ----------------------------------------------------------------------------------------------- |
+| Report equivocation | | | | | `BoxEquivocationProofHashBlockNumber`equivocation_proof `KeyOwnerProof`key_owner_proof |
+| Report equivocation unsigned | | | | | `BoxEquivocationProofHashBlockNumber`equivocation_proof `KeyOwnerProof`key_owner_proof |
+| Note stalled | | | | | `BlockNumber`delay `BlockNumber`best_finalized_block_number |
+
+
+## Staking
+
+| Name | Nano S | Nano S XL | Nano SP/X | Nesting | Arguments |
+| -------------------------- | ------------------ | ------------------ | ------------------ | ------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| Bond | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | | `AccountIdLookupOfT`controller `CompactBalance`amount `RewardDestination`payee |
+| Bond extra | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | | `CompactBalance`amount |
+| Unbond | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | | `CompactBalance`amount |
+| Withdraw Unbonded | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | | `u32`num_slashing_spans |
+| Validate | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | | `ValidatorPrefs`prefs |
+| Nominate | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | | `VecAccountIdLookupOfT`targets |
+| Chill | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | | |
+| Set payee | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | | `RewardDestination`payee |
+| Set controller | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | | `AccountIdLookupOfT`controller |
+| Set validator count | | :heavy_check_mark: | :heavy_check_mark: | | `Compactu32`new\_ |
+| Increase validator count | | :heavy_check_mark: | :heavy_check_mark: | | `Compactu32`additional |
+| Scale validator count | | :heavy_check_mark: | :heavy_check_mark: | | `Percent`factor |
+| Force no eras | | :heavy_check_mark: | :heavy_check_mark: | | |
+| Force new era | | :heavy_check_mark: | :heavy_check_mark: | | |
+| Set invulnerables | | :heavy_check_mark: | :heavy_check_mark: | | `VecAccountId`invulnerables |
+| Force unstake | | :heavy_check_mark: | :heavy_check_mark: | | `AccountId`stash `u32`num_slashing_spans |
+| Force new era always | | :heavy_check_mark: | :heavy_check_mark: | | |
+| Cancel deferred slash | | :heavy_check_mark: | :heavy_check_mark: | | `EraIndex`era `Vecu32`slash_indices |
+| Payout stakers | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | | `AccountId`validator_stash `EraIndex`era |
+| Rebond | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | | `CompactBalance`amount |
+| Reap stash | | :heavy_check_mark: | :heavy_check_mark: | | `AccountId`stash `u32`num_slashing_spans |
+| Kick | | :heavy_check_mark: | :heavy_check_mark: | | `VecAccountIdLookupOfT`who |
+| Set staking configs | | :heavy_check_mark: | :heavy_check_mark: | | `ConfigOpBalanceOfT`min_nominator_bond `ConfigOpBalanceOfT`min_validator_bond `ConfigOpu32`max_nominator_count `ConfigOpu32`max_validator_count `ConfigOpPercent`chill_threshold `ConfigOpPerbill`min_commission |
+| Chill other | | :heavy_check_mark: | :heavy_check_mark: | | `AccountId`controller |
+| Force apply min commission | | :heavy_check_mark: | :heavy_check_mark: | | `AccountId`validator_stash |
+
+## ElectionProviderMultiPhase
+
+| Name | Nano S | Nano S XL | Nano SP/X | Nesting | Arguments |
+| ----------------------------- | ------ | --------- | --------- | ------- | ------------------------------------------------------------------------------------------ |
+| Submit unsigned | | | | | `BoxRawSolutionSolutionOfMinerConfig`raw_solution `SolutionOrSnapshotSize`witness |
+| Set minimum untrusted score | | | | | `OptionElectionScore`maybe_next_score |
+| Set emergency election result | | | | | `SupportsAccountId`supports |
+| Submit | | | | | `BoxRawSolutionSolutionOfMinerConfig`raw_solution |
+| Governance fallback | |:heavy_check_mark:| | | `Optionu32`maybe_max_voters `Optionu32`maybe_max_targets |
+
+## TechnicalCommittee
+
+| Name | Nano S | Nano S XL | Nano SP/X | Nesting | Arguments |
+| ------------------- | ------ | ------------------ | ------------------ | ------- | ----------------------------------------------------------------------------------------------------------------- |
+| Set members | | :heavy_check_mark: | :heavy_check_mark: | | `VecAccountId`new_members `OptionAccountId`prime `MemberCount`old_count |
+| Execute | | :heavy_check_mark: | :heavy_check_mark: | | `Proposal`proposal `Compactu32`length_bound |
+| Propose | | :heavy_check_mark: | :heavy_check_mark: | | `Compactu32`threshold `Proposal`proposal `Compactu32`length_bound |
+| Vote | | :heavy_check_mark: | :heavy_check_mark: | | `Hash`proposal `Compactu32`index `bool`approve |
+| Close old weight | | :heavy_check_mark: | :heavy_check_mark: | | `Hash`proposal_hash `Compactu32`index `Compactu64`proposal_weight_bound `Compactu32`length_bound |
+| Disapprove proposal | | :heavy_check_mark: | :heavy_check_mark: | | `Hash`proposal_hash |
+| Close | | :heavy_check_mark: | :heavy_check_mark: | | `Hash`proposal_hash `Compactu32`index `Weight`proposal_weight_bound `Compactu32`length_bound |
+
+## TechnicalMembership
+
+| Name | Nano S | Nano S XL | Nano SP/X | Nesting | Arguments |
+| ------------- | ------ | ------------------ | ------------------ | ------- | ----------------------------------------------------------- |
+| Add member | | :heavy_check_mark: | :heavy_check_mark: | | `AccountIdLookupOfT`who |
+| Remove member | | :heavy_check_mark: | :heavy_check_mark: | | `AccountIdLookupOfT`who |
+| Swap member | | :heavy_check_mark: | :heavy_check_mark: | | `AccountIdLookupOfT`remove `AccountIdLookupOfT`add |
+| Reset members | | :heavy_check_mark: | :heavy_check_mark: | | `VecAccountId`members |
+| Change key | | :heavy_check_mark: | :heavy_check_mark: | | `AccountIdLookupOfT`new\_ |
+| Set prime | | :heavy_check_mark: | :heavy_check_mark: | | `AccountIdLookupOfT`who |
+| Clear prime | | :heavy_check_mark: | :heavy_check_mark: | | |
+
+## Treasury
+
+| Name | Nano S | Nano S XL | Nano SP/X | Nesting | Arguments |
+| ---------------- | ------ | ------------------ | ------------------ | ------- | --------------------------------------------------------------- |
+| Propose spend | | :heavy_check_mark: | :heavy_check_mark: | | `CompactBalance`amount `AccountIdLookupOfT`beneficiary |
+| Reject proposal | | :heavy_check_mark: | :heavy_check_mark: | | `Compactu32`proposal_id |
+| Approve proposal | | :heavy_check_mark: | :heavy_check_mark: | | `Compactu32`proposal_id |
+| Spend | | :heavy_check_mark: | :heavy_check_mark: | | `CompactBalance`amount `AccountIdLookupOfT`beneficiary |
+| Remove approval | | :heavy_check_mark: | :heavy_check_mark: | | `Compactu32`proposal_id |
+
+## Utility
+
+| Name | Nano S | Nano S XL | Nano SP/X | Nesting | Arguments |
+| ------------- | ------------------ | ------------------ | ------------------ | ------- | ----------------------------------------------- |
+| Batch | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | | `VecCall`calls |
+| As derivative | | | | | `u16`index `Call`call |
+| Batch all | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | | `VecCall`calls |
+| Dispatch as | | | | | `BoxPalletsOrigin`as_origin `Call`call |
+| Force batch | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | | `VecCall`calls |
+| With weight | | :heavy_check_mark: | :heavy_check_mark: | | `Call`call `Weight`weight |
+
+
+## Preimage
+
+| Name | Nano S | Nano S XL | Nano SP/X | Nesting | Arguments |
+| ------------------ | ------ | ------------------ | ------------------ | ------- | ----------------- |
+| Note preimage | | :heavy_check_mark: | :heavy_check_mark: | | `Vecu8`bytes |
+| Unnote preimage | | :heavy_check_mark: | :heavy_check_mark: | | `Hash`hash |
+| Request preimage | | :heavy_check_mark: | :heavy_check_mark: | | `Hash`hash |
+| Unrequest preimage | | :heavy_check_mark: | :heavy_check_mark: | | `Hash`hash |
+
+## Council
+
+| Name | Nano S | Nano S XL | Nano SP/X | Nesting | Arguments |
+| ------------------- | ------ | ------------------ | ------------------ | ------- | ----------------------------------------------------------------------------------------------------------------- |
+| Set members | | :heavy_check_mark: | :heavy_check_mark: | | `VecAccountId`new_members `OptionAccountId`prime `MemberCount`old_count |
+| Execute | | :heavy_check_mark: | :heavy_check_mark: | | `Proposal`proposal `Compactu32`length_bound |
+| Propose | | :heavy_check_mark: | :heavy_check_mark: | | `Compactu32`threshold `Proposal`proposal `Compactu32`length_bound |
+| Vote | | :heavy_check_mark: | :heavy_check_mark: | | `Hash`proposal `Compactu32`index `bool`approve |
+| Close old weight | | :heavy_check_mark: | :heavy_check_mark: | | `Hash`proposal_hash `Compactu32`index `Compactu64`proposal_weight_bound `Compactu32`length_bound |
+| Disapprove proposal | | :heavy_check_mark: | :heavy_check_mark: | | `Hash`proposal_hash |
+| Close | | :heavy_check_mark: | :heavy_check_mark: | | `Hash`proposal_hash `Compactu32`index `Weight`proposal_weight_bound `Compactu32`length_bound |
+
+
+## Democracy
+
+| Name | Nano S | Nano S XL | Nano SP/X | Nesting | Arguments |
+| ------------------------- | ------ | ------------------ | ------------------ | ------------------ | ------------------------------------------------------------------------------ |
+| Propose | | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | `BoundedCallOfT`proposal `CompactBalance`amount |
+| Second | | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | `Compactu32`proposal |
+| Vote | | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | `Compactu32`ref_index `AccountVote`vote |
+| Emergency cancel | | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | `ReferendumIndex`ref_index |
+| External propose | | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | `BoundedCallOfT`proposal |
+| External propose majority | | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | `BoundedCallOfT`proposal |
+| External propose default | | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | `BoundedCallOfT`proposal |
+| Fast track | | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | `H256`proposal_hash `BlockNumber`voting_period `BlockNumber`delay |
+| Veto external | | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | `H256`proposal_hash |
+| Cancel referendum | | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | `Compactu32`ref_index |
+| Delegate | | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | `AccountIdLookupOfT`to `Conviction`conviction `Balance`balance |
+| Undelegate | | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
+| Clear public proposals | | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | |
+| Unlock | | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | `AccountIdLookupOfT`target |
+| Remove vote | | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | `ReferendumIndex`index |
+| Remove other vote | | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | `AccountIdLookupOfT`target `ReferendumIndex`index |
+| Blacklist | | :heavy_check_mark: | :heavy_check_mark: | | `H256`proposal_hash `OptionReferendumIndex`maybe_ref_index |
+| Cancel proposal | | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | `Compactu32`prop_index |
+
+
+
+
+
+## Multisig
+
+| Name | Nano S | Nano S XL | Nano SP/X | Nesting | Arguments |
+| -------------------- | ------ | ------------------ | ------------------ | ------------------ | --------------------------------------------------------------------------------------------------------------------------------------- |
+| As multi threshold 1 | | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | `VecAccountId`other_signatories `Call`call |
+| As multi | | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | `u16`threshold `VecAccountId`other_signatories `OptionTimepoint`maybe_timepoint `Call`call `Weight`max_weight |
+| Approve as multi | | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | `u16`threshold `VecAccountId`other_signatories `OptionTimepoint`maybe_timepoint `H256`call_hash `Weight`max_weight |
+| Cancel as multi | | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | `u16`threshold `VecAccountId`other_signatories `Timepoint`timepoint `H256`call_hash |
+
+
+
+## Identity
+
+| Name | Nano S | Nano S XL | Nano SP/X | Nesting | Arguments |
+| ----------------- | ------ | ------------------ | ------------------ | ------- | --------------------------------------------------------------------------------------------------------------- |
+| Add registrar | | :heavy_check_mark: | :heavy_check_mark: | | `AccountIdLookupOfT`account |
+| Set identity | | :heavy_check_mark: | :heavy_check_mark: | | `IdentityInfo`info |
+| Set subs | | :heavy_check_mark: | :heavy_check_mark: | | `VecTupleAccountIdData`subs |
+| Clear identity | | :heavy_check_mark: | :heavy_check_mark: | | |
+| Request judgement | | :heavy_check_mark: | :heavy_check_mark: | | `Compactu32`reg_index `Compactu128`max_fee |
+| Cancel request | | :heavy_check_mark: | :heavy_check_mark: | | `RegistrarIndex`reg_index |
+| Set fee | | :heavy_check_mark: | :heavy_check_mark: | | `Compactu32`index `Compactu128`fee |
+| Set account id | | :heavy_check_mark: | :heavy_check_mark: | | `Compactu32`index `AccountIdLookupOfT`new\_ |
+| Set fields | | | | | `Compactu32`index `IdentityFields`fields |
+| Provide judgement | | :heavy_check_mark: | :heavy_check_mark: | | `Compactu32`reg_index `AccountIdLookupOfT`target `JudgementBalanceOfT`judgement `Hash`identity |
+| Kill identity | | :heavy_check_mark: | :heavy_check_mark: | | `AccountIdLookupOfT`target |
+| Add sub | | :heavy_check_mark: | :heavy_check_mark: | | `AccountIdLookupOfT`sub `Data`data |
+| Rename sub | | :heavy_check_mark: | :heavy_check_mark: | | `AccountIdLookupOfT`sub `Data`data |
+| Remove sub | | :heavy_check_mark: | :heavy_check_mark: | | `AccountIdLookupOfT`sub |
+| Quit sub | | :heavy_check_mark: | :heavy_check_mark: | | |
+
diff --git a/app/.doxygen/Doxyfile b/app/.doxygen/Doxyfile
new file mode 100644
index 0000000..535c052
--- /dev/null
+++ b/app/.doxygen/Doxyfile
@@ -0,0 +1,2576 @@
+# Doxyfile 1.8.20
+
+# This file describes the settings to be used by the documentation system
+# doxygen (www.doxygen.org) for a project.
+#
+# All text after a double hash (##) is considered a comment and is placed in
+# front of the TAG it is preceding.
+#
+# All text after a single hash (#) is considered a comment and will be ignored.
+# The format is:
+# TAG = value [value, ...]
+# For lists, items can also be appended using:
+# TAG += value [value, ...]
+# Values that contain spaces should be placed between quotes (\" \").
+
+#---------------------------------------------------------------------------
+# Project related configuration options
+#---------------------------------------------------------------------------
+
+# This tag specifies the encoding used for all characters in the configuration
+# file that follow. The default is UTF-8 which is also the encoding used for all
+# text before the first occurrence of this tag. Doxygen uses libiconv (or the
+# iconv built into libc) for the transcoding. See
+# https://www.gnu.org/software/libiconv/ for the list of possible encodings.
+# The default value is: UTF-8.
+
+DOXYFILE_ENCODING = UTF-8
+
+# The PROJECT_NAME tag is a single word (or a sequence of words surrounded by
+# double-quotes, unless you are using Doxywizard) that should identify the
+# project for which the documentation is generated. This name is used in the
+# title of most generated pages and in a few other places.
+# The default value is: My Project.
+
+PROJECT_NAME = "Boilerplate"
+
+# The PROJECT_NUMBER tag can be used to enter a project or revision number. This
+# could be handy for archiving the generated documentation or if some version
+# control system is used.
+
+PROJECT_NUMBER =
+
+# Using the PROJECT_BRIEF tag one can provide an optional one line description
+# for a project that appears at the top of each page and should give viewer a
+# quick idea about the purpose of the project. Keep the description short.
+
+PROJECT_BRIEF =
+
+# With the PROJECT_LOGO tag one can specify a logo or an icon that is included
+# in the documentation. The maximum height of the logo should not exceed 55
+# pixels and the maximum width should not exceed 200 pixels. Doxygen will copy
+# the logo to the output directory.
+
+PROJECT_LOGO =
+
+# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path
+# into which the generated documentation will be written. If a relative path is
+# entered, it will be relative to the location where doxygen was started. If
+# left blank the current directory will be used.
+
+OUTPUT_DIRECTORY = doc
+
+# If the CREATE_SUBDIRS tag is set to YES then doxygen will create 4096 sub-
+# directories (in 2 levels) under the output directory of each output format and
+# will distribute the generated files over these directories. Enabling this
+# option can be useful when feeding doxygen a huge amount of source files, where
+# putting all generated files in the same directory would otherwise causes
+# performance problems for the file system.
+# The default value is: NO.
+
+CREATE_SUBDIRS = NO
+
+# If the ALLOW_UNICODE_NAMES tag is set to YES, doxygen will allow non-ASCII
+# characters to appear in the names of generated files. If set to NO, non-ASCII
+# characters will be escaped, for example _xE3_x81_x84 will be used for Unicode
+# U+3044.
+# The default value is: NO.
+
+ALLOW_UNICODE_NAMES = NO
+
+# The OUTPUT_LANGUAGE tag is used to specify the language in which all
+# documentation generated by doxygen is written. Doxygen will use this
+# information to generate all constant output in the proper language.
+# Possible values are: Afrikaans, Arabic, Armenian, Brazilian, Catalan, Chinese,
+# Chinese-Traditional, Croatian, Czech, Danish, Dutch, English (United States),
+# Esperanto, Farsi (Persian), Finnish, French, German, Greek, Hungarian,
+# Indonesian, Italian, Japanese, Japanese-en (Japanese with English messages),
+# Korean, Korean-en (Korean with English messages), Latvian, Lithuanian,
+# Macedonian, Norwegian, Persian (Farsi), Polish, Portuguese, Romanian, Russian,
+# Serbian, Serbian-Cyrillic, Slovak, Slovene, Spanish, Swedish, Turkish,
+# Ukrainian and Vietnamese.
+# The default value is: English.
+
+OUTPUT_LANGUAGE = English
+
+# The OUTPUT_TEXT_DIRECTION tag is used to specify the direction in which all
+# documentation generated by doxygen is written. Doxygen will use this
+# information to generate all generated output in the proper direction.
+# Possible values are: None, LTR, RTL and Context.
+# The default value is: None.
+
+OUTPUT_TEXT_DIRECTION = None
+
+# If the BRIEF_MEMBER_DESC tag is set to YES, doxygen will include brief member
+# descriptions after the members that are listed in the file and class
+# documentation (similar to Javadoc). Set to NO to disable this.
+# The default value is: YES.
+
+BRIEF_MEMBER_DESC = YES
+
+# If the REPEAT_BRIEF tag is set to YES, doxygen will prepend the brief
+# description of a member or function before the detailed description
+#
+# Note: If both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the
+# brief descriptions will be completely suppressed.
+# The default value is: YES.
+
+REPEAT_BRIEF = YES
+
+# This tag implements a quasi-intelligent brief description abbreviator that is
+# used to form the text in various listings. Each string in this list, if found
+# as the leading text of the brief description, will be stripped from the text
+# and the result, after processing the whole list, is used as the annotated
+# text. Otherwise, the brief description is used as-is. If left blank, the
+# following values are used ($name is automatically replaced with the name of
+# the entity):The $name class, The $name widget, The $name file, is, provides,
+# specifies, contains, represents, a, an and the.
+
+ABBREVIATE_BRIEF = "The $name class" \
+ "The $name widget" \
+ "The $name file" \
+ is \
+ provides \
+ specifies \
+ contains \
+ represents \
+ a \
+ an \
+ the
+
+# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then
+# doxygen will generate a detailed section even if there is only a brief
+# description.
+# The default value is: NO.
+
+ALWAYS_DETAILED_SEC = YES
+
+# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all
+# inherited members of a class in the documentation of that class as if those
+# members were ordinary class members. Constructors, destructors and assignment
+# operators of the base classes will not be shown.
+# The default value is: NO.
+
+INLINE_INHERITED_MEMB = NO
+
+# If the FULL_PATH_NAMES tag is set to YES, doxygen will prepend the full path
+# before files name in the file list and in the header files. If set to NO the
+# shortest path that makes the file name unique will be used
+# The default value is: YES.
+
+FULL_PATH_NAMES = YES
+
+# The STRIP_FROM_PATH tag can be used to strip a user-defined part of the path.
+# Stripping is only done if one of the specified strings matches the left-hand
+# part of the path. The tag can be used to show relative paths in the file list.
+# If left blank the directory from which doxygen is run is used as the path to
+# strip.
+#
+# Note that you can specify absolute paths here, but also relative paths, which
+# will be relative from the directory where doxygen is started.
+# This tag requires that the tag FULL_PATH_NAMES is set to YES.
+
+STRIP_FROM_PATH =
+
+# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of the
+# path mentioned in the documentation of a class, which tells the reader which
+# header file to include in order to use a class. If left blank only the name of
+# the header file containing the class definition is used. Otherwise one should
+# specify the list of include paths that are normally passed to the compiler
+# using the -I flag.
+
+STRIP_FROM_INC_PATH =
+
+# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter (but
+# less readable) file names. This can be useful is your file systems doesn't
+# support long names like on DOS, Mac, or CD-ROM.
+# The default value is: NO.
+
+SHORT_NAMES = NO
+
+# If the JAVADOC_AUTOBRIEF tag is set to YES then doxygen will interpret the
+# first line (until the first dot) of a Javadoc-style comment as the brief
+# description. If set to NO, the Javadoc-style will behave just like regular Qt-
+# style comments (thus requiring an explicit @brief command for a brief
+# description.)
+# The default value is: NO.
+
+JAVADOC_AUTOBRIEF = NO
+
+# If the JAVADOC_BANNER tag is set to YES then doxygen will interpret a line
+# such as
+# /***************
+# as being the beginning of a Javadoc-style comment "banner". If set to NO, the
+# Javadoc-style will behave just like regular comments and it will not be
+# interpreted by doxygen.
+# The default value is: NO.
+
+JAVADOC_BANNER = NO
+
+# If the QT_AUTOBRIEF tag is set to YES then doxygen will interpret the first
+# line (until the first dot) of a Qt-style comment as the brief description. If
+# set to NO, the Qt-style will behave just like regular Qt-style comments (thus
+# requiring an explicit \brief command for a brief description.)
+# The default value is: NO.
+
+QT_AUTOBRIEF = NO
+
+# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make doxygen treat a
+# multi-line C++ special comment block (i.e. a block of //! or /// comments) as
+# a brief description. This used to be the default behavior. The new default is
+# to treat a multi-line C++ comment block as a detailed description. Set this
+# tag to YES if you prefer the old behavior instead.
+#
+# Note that setting this tag to YES also means that rational rose comments are
+# not recognized any more.
+# The default value is: NO.
+
+MULTILINE_CPP_IS_BRIEF = NO
+
+# By default Python docstrings are displayed as preformatted text and doxygen's
+# special commands cannot be used. By setting PYTHON_DOCSTRING to NO the
+# doxygen's special commands can be used and the contents of the docstring
+# documentation blocks is shown as doxygen documentation.
+# The default value is: YES.
+
+PYTHON_DOCSTRING = YES
+
+# If the INHERIT_DOCS tag is set to YES then an undocumented member inherits the
+# documentation from any documented member that it re-implements.
+# The default value is: YES.
+
+INHERIT_DOCS = YES
+
+# If the SEPARATE_MEMBER_PAGES tag is set to YES then doxygen will produce a new
+# page for each member. If set to NO, the documentation of a member will be part
+# of the file/class/namespace that contains it.
+# The default value is: NO.
+
+SEPARATE_MEMBER_PAGES = NO
+
+# The TAB_SIZE tag can be used to set the number of spaces in a tab. Doxygen
+# uses this value to replace tabs by spaces in code fragments.
+# Minimum value: 1, maximum value: 16, default value: 4.
+
+TAB_SIZE = 4
+
+# This tag can be used to specify a number of aliases that act as commands in
+# the documentation. An alias has the form:
+# name=value
+# For example adding
+# "sideeffect=@par Side Effects:\n"
+# will allow you to put the command \sideeffect (or @sideeffect) in the
+# documentation, which will result in a user-defined paragraph with heading
+# "Side Effects:". You can put \n's in the value part of an alias to insert
+# newlines (in the resulting output). You can put ^^ in the value part of an
+# alias to insert a newline as if a physical newline was in the original file.
+# When you need a literal { or } or , in the value part of an alias you have to
+# escape them by means of a backslash (\), this can lead to conflicts with the
+# commands \{ and \} for these it is advised to use the version @{ and @} or use
+# a double escape (\\{ and \\})
+
+ALIASES =
+
+# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources
+# only. Doxygen will then generate output that is more tailored for C. For
+# instance, some of the names that are used will be different. The list of all
+# members will be omitted, etc.
+# The default value is: NO.
+
+OPTIMIZE_OUTPUT_FOR_C = YES
+
+# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java or
+# Python sources only. Doxygen will then generate output that is more tailored
+# for that language. For instance, namespaces will be presented as packages,
+# qualified scopes will look different, etc.
+# The default value is: NO.
+
+OPTIMIZE_OUTPUT_JAVA = NO
+
+# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran
+# sources. Doxygen will then generate output that is tailored for Fortran.
+# The default value is: NO.
+
+OPTIMIZE_FOR_FORTRAN = NO
+
+# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL
+# sources. Doxygen will then generate output that is tailored for VHDL.
+# The default value is: NO.
+
+OPTIMIZE_OUTPUT_VHDL = NO
+
+# Set the OPTIMIZE_OUTPUT_SLICE tag to YES if your project consists of Slice
+# sources only. Doxygen will then generate output that is more tailored for that
+# language. For instance, namespaces will be presented as modules, types will be
+# separated into more groups, etc.
+# The default value is: NO.
+
+OPTIMIZE_OUTPUT_SLICE = NO
+
+# Doxygen selects the parser to use depending on the extension of the files it
+# parses. With this tag you can assign which parser to use for a given
+# extension. Doxygen has a built-in mapping, but you can override or extend it
+# using this tag. The format is ext=language, where ext is a file extension, and
+# language is one of the parsers supported by doxygen: IDL, Java, JavaScript,
+# Csharp (C#), C, C++, D, PHP, md (Markdown), Objective-C, Python, Slice, VHDL,
+# Fortran (fixed format Fortran: FortranFixed, free formatted Fortran:
+# FortranFree, unknown formatted Fortran: Fortran. In the later case the parser
+# tries to guess whether the code is fixed or free formatted code, this is the
+# default for Fortran type files). For instance to make doxygen treat .inc files
+# as Fortran files (default is PHP), and .f files as C (default is Fortran),
+# use: inc=Fortran f=C.
+#
+# Note: For files without extension you can use no_extension as a placeholder.
+#
+# Note that for custom extensions you also need to set FILE_PATTERNS otherwise
+# the files are not read by doxygen.
+
+EXTENSION_MAPPING =
+
+# If the MARKDOWN_SUPPORT tag is enabled then doxygen pre-processes all comments
+# according to the Markdown format, which allows for more readable
+# documentation. See https://daringfireball.net/projects/markdown/ for details.
+# The output of markdown processing is further processed by doxygen, so you can
+# mix doxygen, HTML, and XML commands with Markdown formatting. Disable only in
+# case of backward compatibilities issues.
+# The default value is: YES.
+
+MARKDOWN_SUPPORT = YES
+
+# When the TOC_INCLUDE_HEADINGS tag is set to a non-zero value, all headings up
+# to that level are automatically included in the table of contents, even if
+# they do not have an id attribute.
+# Note: This feature currently applies only to Markdown headings.
+# Minimum value: 0, maximum value: 99, default value: 5.
+# This tag requires that the tag MARKDOWN_SUPPORT is set to YES.
+
+TOC_INCLUDE_HEADINGS = 5
+
+# When enabled doxygen tries to link words that correspond to documented
+# classes, or namespaces to their corresponding documentation. Such a link can
+# be prevented in individual cases by putting a % sign in front of the word or
+# globally by setting AUTOLINK_SUPPORT to NO.
+# The default value is: YES.
+
+AUTOLINK_SUPPORT = YES
+
+# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want
+# to include (a tag file for) the STL sources as input, then you should set this
+# tag to YES in order to let doxygen match functions declarations and
+# definitions whose arguments contain STL classes (e.g. func(std::string);
+# versus func(std::string) {}). This also make the inheritance and collaboration
+# diagrams that involve STL classes more complete and accurate.
+# The default value is: NO.
+
+BUILTIN_STL_SUPPORT = NO
+
+# If you use Microsoft's C++/CLI language, you should set this option to YES to
+# enable parsing support.
+# The default value is: NO.
+
+CPP_CLI_SUPPORT = NO
+
+# Set the SIP_SUPPORT tag to YES if your project consists of sip (see:
+# https://www.riverbankcomputing.com/software/sip/intro) sources only. Doxygen
+# will parse them like normal C++ but will assume all classes use public instead
+# of private inheritance when no explicit protection keyword is present.
+# The default value is: NO.
+
+SIP_SUPPORT = NO
+
+# For Microsoft's IDL there are propget and propput attributes to indicate
+# getter and setter methods for a property. Setting this option to YES will make
+# doxygen to replace the get and set methods by a property in the documentation.
+# This will only work if the methods are indeed getting or setting a simple
+# type. If this is not the case, or you want to show the methods anyway, you
+# should set this option to NO.
+# The default value is: YES.
+
+IDL_PROPERTY_SUPPORT = YES
+
+# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC
+# tag is set to YES then doxygen will reuse the documentation of the first
+# member in the group (if any) for the other members of the group. By default
+# all members of a group must be documented explicitly.
+# The default value is: NO.
+
+DISTRIBUTE_GROUP_DOC = NO
+
+# If one adds a struct or class to a group and this option is enabled, then also
+# any nested class or struct is added to the same group. By default this option
+# is disabled and one has to add nested compounds explicitly via \ingroup.
+# The default value is: NO.
+
+GROUP_NESTED_COMPOUNDS = NO
+
+# Set the SUBGROUPING tag to YES to allow class member groups of the same type
+# (for instance a group of public functions) to be put as a subgroup of that
+# type (e.g. under the Public Functions section). Set it to NO to prevent
+# subgrouping. Alternatively, this can be done per class using the
+# \nosubgrouping command.
+# The default value is: YES.
+
+SUBGROUPING = YES
+
+# When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and unions
+# are shown inside the group in which they are included (e.g. using \ingroup)
+# instead of on a separate page (for HTML and Man pages) or section (for LaTeX
+# and RTF).
+#
+# Note that this feature does not work in combination with
+# SEPARATE_MEMBER_PAGES.
+# The default value is: NO.
+
+INLINE_GROUPED_CLASSES = NO
+
+# When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and unions
+# with only public data fields or simple typedef fields will be shown inline in
+# the documentation of the scope in which they are defined (i.e. file,
+# namespace, or group documentation), provided this scope is documented. If set
+# to NO, structs, classes, and unions are shown on a separate page (for HTML and
+# Man pages) or section (for LaTeX and RTF).
+# The default value is: NO.
+
+INLINE_SIMPLE_STRUCTS = NO
+
+# When TYPEDEF_HIDES_STRUCT tag is enabled, a typedef of a struct, union, or
+# enum is documented as struct, union, or enum with the name of the typedef. So
+# typedef struct TypeS {} TypeT, will appear in the documentation as a struct
+# with name TypeT. When disabled the typedef will appear as a member of a file,
+# namespace, or class. And the struct will be named TypeS. This can typically be
+# useful for C code in case the coding convention dictates that all compound
+# types are typedef'ed and only the typedef is referenced, never the tag name.
+# The default value is: NO.
+
+TYPEDEF_HIDES_STRUCT = YES
+
+# The size of the symbol lookup cache can be set using LOOKUP_CACHE_SIZE. This
+# cache is used to resolve symbols given their name and scope. Since this can be
+# an expensive process and often the same symbol appears multiple times in the
+# code, doxygen keeps a cache of pre-resolved symbols. If the cache is too small
+# doxygen will become slower. If the cache is too large, memory is wasted. The
+# cache size is given by this formula: 2^(16+LOOKUP_CACHE_SIZE). The valid range
+# is 0..9, the default is 0, corresponding to a cache size of 2^16=65536
+# symbols. At the end of a run doxygen will report the cache usage and suggest
+# the optimal cache size from a speed point of view.
+# Minimum value: 0, maximum value: 9, default value: 0.
+
+LOOKUP_CACHE_SIZE = 0
+
+# The NUM_PROC_THREADS specifies the number threads doxygen is allowed to use
+# during processing. When set to 0 doxygen will based this on the number of
+# cores available in the system. You can set it explicitly to a value larger
+# than 0 to get more control over the balance between CPU load and processing
+# speed. At this moment only the input processing can be done using multiple
+# threads. Since this is still an experimental feature the default is set to 1,
+# which efficively disables parallel processing. Please report any issues you
+# encounter. Generating dot graphs in parallel is controlled by the
+# DOT_NUM_THREADS setting.
+# Minimum value: 0, maximum value: 32, default value: 1.
+
+NUM_PROC_THREADS = 1
+
+#---------------------------------------------------------------------------
+# Build related configuration options
+#---------------------------------------------------------------------------
+
+# If the EXTRACT_ALL tag is set to YES, doxygen will assume all entities in
+# documentation are documented, even if no documentation was available. Private
+# class members and static file members will be hidden unless the
+# EXTRACT_PRIVATE respectively EXTRACT_STATIC tags are set to YES.
+# Note: This will also disable the warnings about undocumented members that are
+# normally produced when WARNINGS is set to YES.
+# The default value is: NO.
+
+EXTRACT_ALL = YES
+
+# If the EXTRACT_PRIVATE tag is set to YES, all private members of a class will
+# be included in the documentation.
+# The default value is: NO.
+
+EXTRACT_PRIVATE = NO
+
+# If the EXTRACT_PRIV_VIRTUAL tag is set to YES, documented private virtual
+# methods of a class will be included in the documentation.
+# The default value is: NO.
+
+EXTRACT_PRIV_VIRTUAL = NO
+
+# If the EXTRACT_PACKAGE tag is set to YES, all members with package or internal
+# scope will be included in the documentation.
+# The default value is: NO.
+
+EXTRACT_PACKAGE = NO
+
+# If the EXTRACT_STATIC tag is set to YES, all static members of a file will be
+# included in the documentation.
+# The default value is: NO.
+
+EXTRACT_STATIC = NO
+
+# If the EXTRACT_LOCAL_CLASSES tag is set to YES, classes (and structs) defined
+# locally in source files will be included in the documentation. If set to NO,
+# only classes defined in header files are included. Does not have any effect
+# for Java sources.
+# The default value is: YES.
+
+EXTRACT_LOCAL_CLASSES = YES
+
+# This flag is only useful for Objective-C code. If set to YES, local methods,
+# which are defined in the implementation section but not in the interface are
+# included in the documentation. If set to NO, only methods in the interface are
+# included.
+# The default value is: NO.
+
+EXTRACT_LOCAL_METHODS = NO
+
+# If this flag is set to YES, the members of anonymous namespaces will be
+# extracted and appear in the documentation as a namespace called
+# 'anonymous_namespace{file}', where file will be replaced with the base name of
+# the file that contains the anonymous namespace. By default anonymous namespace
+# are hidden.
+# The default value is: NO.
+
+EXTRACT_ANON_NSPACES = NO
+
+# If the HIDE_UNDOC_MEMBERS tag is set to YES, doxygen will hide all
+# undocumented members inside documented classes or files. If set to NO these
+# members will be included in the various overviews, but no documentation
+# section is generated. This option has no effect if EXTRACT_ALL is enabled.
+# The default value is: NO.
+
+HIDE_UNDOC_MEMBERS = NO
+
+# If the HIDE_UNDOC_CLASSES tag is set to YES, doxygen will hide all
+# undocumented classes that are normally visible in the class hierarchy. If set
+# to NO, these classes will be included in the various overviews. This option
+# has no effect if EXTRACT_ALL is enabled.
+# The default value is: NO.
+
+HIDE_UNDOC_CLASSES = NO
+
+# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, doxygen will hide all friend
+# declarations. If set to NO, these declarations will be included in the
+# documentation.
+# The default value is: NO.
+
+HIDE_FRIEND_COMPOUNDS = NO
+
+# If the HIDE_IN_BODY_DOCS tag is set to YES, doxygen will hide any
+# documentation blocks found inside the body of a function. If set to NO, these
+# blocks will be appended to the function's detailed documentation block.
+# The default value is: NO.
+
+HIDE_IN_BODY_DOCS = NO
+
+# The INTERNAL_DOCS tag determines if documentation that is typed after a
+# \internal command is included. If the tag is set to NO then the documentation
+# will be excluded. Set it to YES to include the internal documentation.
+# The default value is: NO.
+
+INTERNAL_DOCS = NO
+
+# If the CASE_SENSE_NAMES tag is set to NO then doxygen will only generate file
+# names in lower-case letters. If set to YES, upper-case letters are also
+# allowed. This is useful if you have classes or files whose names only differ
+# in case and if your file system supports case sensitive file names. Windows
+# (including Cygwin) and Mac users are advised to set this option to NO.
+# The default value is: system dependent.
+
+CASE_SENSE_NAMES = YES
+
+# If the HIDE_SCOPE_NAMES tag is set to NO then doxygen will show members with
+# their full class and namespace scopes in the documentation. If set to YES, the
+# scope will be hidden.
+# The default value is: NO.
+
+HIDE_SCOPE_NAMES = NO
+
+# If the HIDE_COMPOUND_REFERENCE tag is set to NO (default) then doxygen will
+# append additional text to a page's title, such as Class Reference. If set to
+# YES the compound reference will be hidden.
+# The default value is: NO.
+
+HIDE_COMPOUND_REFERENCE= NO
+
+# If the SHOW_INCLUDE_FILES tag is set to YES then doxygen will put a list of
+# the files that are included by a file in the documentation of that file.
+# The default value is: YES.
+
+SHOW_INCLUDE_FILES = YES
+
+# If the SHOW_GROUPED_MEMB_INC tag is set to YES then Doxygen will add for each
+# grouped member an include statement to the documentation, telling the reader
+# which file to include in order to use the member.
+# The default value is: NO.
+
+SHOW_GROUPED_MEMB_INC = NO
+
+# If the FORCE_LOCAL_INCLUDES tag is set to YES then doxygen will list include
+# files with double quotes in the documentation rather than with sharp brackets.
+# The default value is: NO.
+
+FORCE_LOCAL_INCLUDES = NO
+
+# If the INLINE_INFO tag is set to YES then a tag [inline] is inserted in the
+# documentation for inline members.
+# The default value is: YES.
+
+INLINE_INFO = YES
+
+# If the SORT_MEMBER_DOCS tag is set to YES then doxygen will sort the
+# (detailed) documentation of file and class members alphabetically by member
+# name. If set to NO, the members will appear in declaration order.
+# The default value is: YES.
+
+SORT_MEMBER_DOCS = YES
+
+# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the brief
+# descriptions of file, namespace and class members alphabetically by member
+# name. If set to NO, the members will appear in declaration order. Note that
+# this will also influence the order of the classes in the class list.
+# The default value is: NO.
+
+SORT_BRIEF_DOCS = NO
+
+# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen will sort the
+# (brief and detailed) documentation of class members so that constructors and
+# destructors are listed first. If set to NO the constructors will appear in the
+# respective orders defined by SORT_BRIEF_DOCS and SORT_MEMBER_DOCS.
+# Note: If SORT_BRIEF_DOCS is set to NO this option is ignored for sorting brief
+# member documentation.
+# Note: If SORT_MEMBER_DOCS is set to NO this option is ignored for sorting
+# detailed member documentation.
+# The default value is: NO.
+
+SORT_MEMBERS_CTORS_1ST = NO
+
+# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the hierarchy
+# of group names into alphabetical order. If set to NO the group names will
+# appear in their defined order.
+# The default value is: NO.
+
+SORT_GROUP_NAMES = NO
+
+# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be sorted by
+# fully-qualified names, including namespaces. If set to NO, the class list will
+# be sorted only by class name, not including the namespace part.
+# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES.
+# Note: This option applies only to the class list, not to the alphabetical
+# list.
+# The default value is: NO.
+
+SORT_BY_SCOPE_NAME = NO
+
+# If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to do proper
+# type resolution of all parameters of a function it will reject a match between
+# the prototype and the implementation of a member function even if there is
+# only one candidate or it is obvious which candidate to choose by doing a
+# simple string match. By disabling STRICT_PROTO_MATCHING doxygen will still
+# accept a match between prototype and implementation in such cases.
+# The default value is: NO.
+
+STRICT_PROTO_MATCHING = NO
+
+# The GENERATE_TODOLIST tag can be used to enable (YES) or disable (NO) the todo
+# list. This list is created by putting \todo commands in the documentation.
+# The default value is: YES.
+
+GENERATE_TODOLIST = YES
+
+# The GENERATE_TESTLIST tag can be used to enable (YES) or disable (NO) the test
+# list. This list is created by putting \test commands in the documentation.
+# The default value is: YES.
+
+GENERATE_TESTLIST = YES
+
+# The GENERATE_BUGLIST tag can be used to enable (YES) or disable (NO) the bug
+# list. This list is created by putting \bug commands in the documentation.
+# The default value is: YES.
+
+GENERATE_BUGLIST = YES
+
+# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or disable (NO)
+# the deprecated list. This list is created by putting \deprecated commands in
+# the documentation.
+# The default value is: YES.
+
+GENERATE_DEPRECATEDLIST= YES
+
+# The ENABLED_SECTIONS tag can be used to enable conditional documentation
+# sections, marked by \if ... \endif and \cond
+# ... \endcond blocks.
+
+ENABLED_SECTIONS =
+
+# The MAX_INITIALIZER_LINES tag determines the maximum number of lines that the
+# initial value of a variable or macro / define can have for it to appear in the
+# documentation. If the initializer consists of more lines than specified here
+# it will be hidden. Use a value of 0 to hide initializers completely. The
+# appearance of the value of individual variables and macros / defines can be
+# controlled using \showinitializer or \hideinitializer command in the
+# documentation regardless of this setting.
+# Minimum value: 0, maximum value: 10000, default value: 30.
+
+MAX_INITIALIZER_LINES = 30
+
+# Set the SHOW_USED_FILES tag to NO to disable the list of files generated at
+# the bottom of the documentation of classes and structs. If set to YES, the
+# list will mention the files that were used to generate the documentation.
+# The default value is: YES.
+
+SHOW_USED_FILES = YES
+
+# Set the SHOW_FILES tag to NO to disable the generation of the Files page. This
+# will remove the Files entry from the Quick Index and from the Folder Tree View
+# (if specified).
+# The default value is: YES.
+
+SHOW_FILES = YES
+
+# Set the SHOW_NAMESPACES tag to NO to disable the generation of the Namespaces
+# page. This will remove the Namespaces entry from the Quick Index and from the
+# Folder Tree View (if specified).
+# The default value is: YES.
+
+SHOW_NAMESPACES = YES
+
+# The FILE_VERSION_FILTER tag can be used to specify a program or script that
+# doxygen should invoke to get the current version for each file (typically from
+# the version control system). Doxygen will invoke the program by executing (via
+# popen()) the command command input-file, where command is the value of the
+# FILE_VERSION_FILTER tag, and input-file is the name of an input file provided
+# by doxygen. Whatever the program writes to standard output is used as the file
+# version. For an example see the documentation.
+
+FILE_VERSION_FILTER =
+
+# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed
+# by doxygen. The layout file controls the global structure of the generated
+# output files in an output format independent way. To create the layout file
+# that represents doxygen's defaults, run doxygen with the -l option. You can
+# optionally specify a file name after the option, if omitted DoxygenLayout.xml
+# will be used as the name of the layout file.
+#
+# Note that if you run doxygen from a directory containing a file called
+# DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE
+# tag is left empty.
+
+LAYOUT_FILE =
+
+# The CITE_BIB_FILES tag can be used to specify one or more bib files containing
+# the reference definitions. This must be a list of .bib files. The .bib
+# extension is automatically appended if omitted. This requires the bibtex tool
+# to be installed. See also https://en.wikipedia.org/wiki/BibTeX for more info.
+# For LaTeX the style of the bibliography can be controlled using
+# LATEX_BIB_STYLE. To use this feature you need bibtex and perl available in the
+# search path. See also \cite for info how to create references.
+
+CITE_BIB_FILES =
+
+#---------------------------------------------------------------------------
+# Configuration options related to warning and progress messages
+#---------------------------------------------------------------------------
+
+# The QUIET tag can be used to turn on/off the messages that are generated to
+# standard output by doxygen. If QUIET is set to YES this implies that the
+# messages are off.
+# The default value is: NO.
+
+QUIET = NO
+
+# The WARNINGS tag can be used to turn on/off the warning messages that are
+# generated to standard error (stderr) by doxygen. If WARNINGS is set to YES
+# this implies that the warnings are on.
+#
+# Tip: Turn warnings on while writing the documentation.
+# The default value is: YES.
+
+WARNINGS = YES
+
+# If the WARN_IF_UNDOCUMENTED tag is set to YES then doxygen will generate
+# warnings for undocumented members. If EXTRACT_ALL is set to YES then this flag
+# will automatically be disabled.
+# The default value is: YES.
+
+WARN_IF_UNDOCUMENTED = YES
+
+# If the WARN_IF_DOC_ERROR tag is set to YES, doxygen will generate warnings for
+# potential errors in the documentation, such as not documenting some parameters
+# in a documented function, or documenting parameters that don't exist or using
+# markup commands wrongly.
+# The default value is: YES.
+
+WARN_IF_DOC_ERROR = YES
+
+# This WARN_NO_PARAMDOC option can be enabled to get warnings for functions that
+# are documented, but have no documentation for their parameters or return
+# value. If set to NO, doxygen will only warn about wrong or incomplete
+# parameter documentation, but not about the absence of documentation. If
+# EXTRACT_ALL is set to YES then this flag will automatically be disabled.
+# The default value is: NO.
+
+WARN_NO_PARAMDOC = NO
+
+# If the WARN_AS_ERROR tag is set to YES then doxygen will immediately stop when
+# a warning is encountered.
+# The default value is: NO.
+
+WARN_AS_ERROR = NO
+
+# The WARN_FORMAT tag determines the format of the warning messages that doxygen
+# can produce. The string should contain the $file, $line, and $text tags, which
+# will be replaced by the file and line number from which the warning originated
+# and the warning text. Optionally the format may contain $version, which will
+# be replaced by the version of the file (if it could be obtained via
+# FILE_VERSION_FILTER)
+# The default value is: $file:$line: $text.
+
+WARN_FORMAT = "$file:$line: $text"
+
+# The WARN_LOGFILE tag can be used to specify a file to which warning and error
+# messages should be written. If left blank the output is written to standard
+# error (stderr).
+
+WARN_LOGFILE =
+
+#---------------------------------------------------------------------------
+# Configuration options related to the input files
+#---------------------------------------------------------------------------
+
+# The INPUT tag is used to specify the files and/or directories that contain
+# documented source files. You may enter file names like myfile.cpp or
+# directories like /usr/src/myproject. Separate the files or directories with
+# spaces. See also FILE_PATTERNS and EXTENSION_MAPPING
+# Note: If this tag is empty the current directory is searched.
+
+INPUT = README.md doc/APDU.md doc/COMMANDS.md doc/TRANSACTION.md src
+
+# This tag can be used to specify the character encoding of the source files
+# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses
+# libiconv (or the iconv built into libc) for the transcoding. See the libiconv
+# documentation (see: https://www.gnu.org/software/libiconv/) for the list of
+# possible encodings.
+# The default value is: UTF-8.
+
+INPUT_ENCODING = UTF-8
+
+# If the value of the INPUT tag contains directories, you can use the
+# FILE_PATTERNS tag to specify one or more wildcard patterns (like *.cpp and
+# *.h) to filter out the source-files in the directories.
+#
+# Note that for custom extensions or not directly supported extensions you also
+# need to set EXTENSION_MAPPING for the extension otherwise the files are not
+# read by doxygen.
+#
+# If left blank the following patterns are tested:*.c, *.cc, *.cxx, *.cpp,
+# *.c++, *.java, *.ii, *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h,
+# *.hh, *.hxx, *.hpp, *.h++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc,
+# *.m, *.markdown, *.md, *.mm, *.dox (to be provided as doxygen C comment),
+# *.doc (to be provided as doxygen C comment), *.txt (to be provided as doxygen
+# C comment), *.py, *.pyw, *.f90, *.f95, *.f03, *.f08, *.f18, *.f, *.for, *.vhd,
+# *.vhdl, *.ucf, *.qsf and *.ice.
+
+FILE_PATTERNS = *.c \
+ *.cc \
+ *.cxx \
+ *.cpp \
+ *.c++ \
+ *.java \
+ *.ii \
+ *.ixx \
+ *.ipp \
+ *.i++ \
+ *.inl \
+ *.idl \
+ *.ddl \
+ *.odl \
+ *.h \
+ *.hh \
+ *.hxx \
+ *.hpp \
+ *.h++ \
+ *.cs \
+ *.d \
+ *.php \
+ *.php4 \
+ *.php5 \
+ *.phtml \
+ *.inc \
+ *.m \
+ *.markdown \
+ *.md \
+ *.mm \
+ *.dox \
+ *.doc \
+ *.txt \
+ *.py \
+ *.pyw \
+ *.f90 \
+ *.f95 \
+ *.f03 \
+ *.f08 \
+ *.f18 \
+ *.f \
+ *.for \
+ *.vhd \
+ *.vhdl \
+ *.ucf \
+ *.qsf \
+ *.ice
+
+# The RECURSIVE tag can be used to specify whether or not subdirectories should
+# be searched for input files as well.
+# The default value is: NO.
+
+RECURSIVE = YES
+
+# The EXCLUDE tag can be used to specify files and/or directories that should be
+# excluded from the INPUT source files. This way you can easily exclude a
+# subdirectory from a directory tree whose root is specified with the INPUT tag.
+#
+# Note that relative paths are relative to the directory from which doxygen is
+# run.
+
+EXCLUDE = src/glyphs.c src/glyphs.h
+
+# The EXCLUDE_SYMLINKS tag can be used to select whether or not files or
+# directories that are symbolic links (a Unix file system feature) are excluded
+# from the input.
+# The default value is: NO.
+
+EXCLUDE_SYMLINKS = NO
+
+# If the value of the INPUT tag contains directories, you can use the
+# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude
+# certain files from those directories.
+#
+# Note that the wildcards are matched against the file with absolute path, so to
+# exclude all test directories for example use the pattern */test/*
+
+EXCLUDE_PATTERNS =
+
+# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names
+# (namespaces, classes, functions, etc.) that should be excluded from the
+# output. The symbol name can be a fully qualified name, a word, or if the
+# wildcard * is used, a substring. Examples: ANamespace, AClass,
+# AClass::ANamespace, ANamespace::*Test
+#
+# Note that the wildcards are matched against the file with absolute path, so to
+# exclude all test directories use the pattern */test/*
+
+EXCLUDE_SYMBOLS =
+
+# The EXAMPLE_PATH tag can be used to specify one or more files or directories
+# that contain example code fragments that are included (see the \include
+# command).
+
+EXAMPLE_PATH =
+
+# If the value of the EXAMPLE_PATH tag contains directories, you can use the
+# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp and
+# *.h) to filter out the source-files in the directories. If left blank all
+# files are included.
+
+EXAMPLE_PATTERNS = *
+
+# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be
+# searched for input files to be used with the \include or \dontinclude commands
+# irrespective of the value of the RECURSIVE tag.
+# The default value is: NO.
+
+EXAMPLE_RECURSIVE = NO
+
+# The IMAGE_PATH tag can be used to specify one or more files or directories
+# that contain images that are to be included in the documentation (see the
+# \image command).
+
+IMAGE_PATH =
+
+# The INPUT_FILTER tag can be used to specify a program that doxygen should
+# invoke to filter for each input file. Doxygen will invoke the filter program
+# by executing (via popen()) the command:
+#
+#
+#
+# where is the value of the INPUT_FILTER tag, and is the
+# name of an input file. Doxygen will then use the output that the filter
+# program writes to standard output. If FILTER_PATTERNS is specified, this tag
+# will be ignored.
+#
+# Note that the filter must not add or remove lines; it is applied before the
+# code is scanned, but not when the output code is generated. If lines are added
+# or removed, the anchors will not be placed correctly.
+#
+# Note that for custom extensions or not directly supported extensions you also
+# need to set EXTENSION_MAPPING for the extension otherwise the files are not
+# properly processed by doxygen.
+
+INPUT_FILTER =
+
+# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern
+# basis. Doxygen will compare the file name with each pattern and apply the
+# filter if there is a match. The filters are a list of the form: pattern=filter
+# (like *.cpp=my_cpp_filter). See INPUT_FILTER for further information on how
+# filters are used. If the FILTER_PATTERNS tag is empty or if none of the
+# patterns match the file name, INPUT_FILTER is applied.
+#
+# Note that for custom extensions or not directly supported extensions you also
+# need to set EXTENSION_MAPPING for the extension otherwise the files are not
+# properly processed by doxygen.
+
+FILTER_PATTERNS =
+
+# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using
+# INPUT_FILTER) will also be used to filter the input files that are used for
+# producing the source files to browse (i.e. when SOURCE_BROWSER is set to YES).
+# The default value is: NO.
+
+FILTER_SOURCE_FILES = NO
+
+# The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file
+# pattern. A pattern will override the setting for FILTER_PATTERN (if any) and
+# it is also possible to disable source filtering for a specific pattern using
+# *.ext= (so without naming a filter).
+# This tag requires that the tag FILTER_SOURCE_FILES is set to YES.
+
+FILTER_SOURCE_PATTERNS =
+
+# If the USE_MDFILE_AS_MAINPAGE tag refers to the name of a markdown file that
+# is part of the input, its contents will be placed on the main page
+# (index.html). This can be useful if you have a project on for instance GitHub
+# and want to reuse the introduction page also for the doxygen output.
+
+USE_MDFILE_AS_MAINPAGE = README.md
+
+#---------------------------------------------------------------------------
+# Configuration options related to source browsing
+#---------------------------------------------------------------------------
+
+# If the SOURCE_BROWSER tag is set to YES then a list of source files will be
+# generated. Documented entities will be cross-referenced with these sources.
+#
+# Note: To get rid of all source code in the generated output, make sure that
+# also VERBATIM_HEADERS is set to NO.
+# The default value is: NO.
+
+SOURCE_BROWSER = NO
+
+# Setting the INLINE_SOURCES tag to YES will include the body of functions,
+# classes and enums directly into the documentation.
+# The default value is: NO.
+
+INLINE_SOURCES = NO
+
+# Setting the STRIP_CODE_COMMENTS tag to YES will instruct doxygen to hide any
+# special comment blocks from generated source code fragments. Normal C, C++ and
+# Fortran comments will always remain visible.
+# The default value is: YES.
+
+STRIP_CODE_COMMENTS = YES
+
+# If the REFERENCED_BY_RELATION tag is set to YES then for each documented
+# entity all documented functions referencing it will be listed.
+# The default value is: NO.
+
+REFERENCED_BY_RELATION = NO
+
+# If the REFERENCES_RELATION tag is set to YES then for each documented function
+# all documented entities called/used by that function will be listed.
+# The default value is: NO.
+
+REFERENCES_RELATION = NO
+
+# If the REFERENCES_LINK_SOURCE tag is set to YES and SOURCE_BROWSER tag is set
+# to YES then the hyperlinks from functions in REFERENCES_RELATION and
+# REFERENCED_BY_RELATION lists will link to the source code. Otherwise they will
+# link to the documentation.
+# The default value is: YES.
+
+REFERENCES_LINK_SOURCE = YES
+
+# If SOURCE_TOOLTIPS is enabled (the default) then hovering a hyperlink in the
+# source code will show a tooltip with additional information such as prototype,
+# brief description and links to the definition and documentation. Since this
+# will make the HTML file larger and loading of large files a bit slower, you
+# can opt to disable this feature.
+# The default value is: YES.
+# This tag requires that the tag SOURCE_BROWSER is set to YES.
+
+SOURCE_TOOLTIPS = YES
+
+# If the USE_HTAGS tag is set to YES then the references to source code will
+# point to the HTML generated by the htags(1) tool instead of doxygen built-in
+# source browser. The htags tool is part of GNU's global source tagging system
+# (see https://www.gnu.org/software/global/global.html). You will need version
+# 4.8.6 or higher.
+#
+# To use it do the following:
+# - Install the latest version of global
+# - Enable SOURCE_BROWSER and USE_HTAGS in the configuration file
+# - Make sure the INPUT points to the root of the source tree
+# - Run doxygen as normal
+#
+# Doxygen will invoke htags (and that will in turn invoke gtags), so these
+# tools must be available from the command line (i.e. in the search path).
+#
+# The result: instead of the source browser generated by doxygen, the links to
+# source code will now point to the output of htags.
+# The default value is: NO.
+# This tag requires that the tag SOURCE_BROWSER is set to YES.
+
+USE_HTAGS = NO
+
+# If the VERBATIM_HEADERS tag is set the YES then doxygen will generate a
+# verbatim copy of the header file for each class for which an include is
+# specified. Set to NO to disable this.
+# See also: Section \class.
+# The default value is: YES.
+
+VERBATIM_HEADERS = YES
+
+#---------------------------------------------------------------------------
+# Configuration options related to the alphabetical class index
+#---------------------------------------------------------------------------
+
+# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index of all
+# compounds will be generated. Enable this if the project contains a lot of
+# classes, structs, unions or interfaces.
+# The default value is: YES.
+
+ALPHABETICAL_INDEX = YES
+
+# The COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns in
+# which the alphabetical index list will be split.
+# Minimum value: 1, maximum value: 20, default value: 5.
+# This tag requires that the tag ALPHABETICAL_INDEX is set to YES.
+
+COLS_IN_ALPHA_INDEX = 5
+
+# In case all classes in a project start with a common prefix, all classes will
+# be put under the same header in the alphabetical index. The IGNORE_PREFIX tag
+# can be used to specify a prefix (or a list of prefixes) that should be ignored
+# while generating the index headers.
+# This tag requires that the tag ALPHABETICAL_INDEX is set to YES.
+
+IGNORE_PREFIX =
+
+#---------------------------------------------------------------------------
+# Configuration options related to the HTML output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_HTML tag is set to YES, doxygen will generate HTML output
+# The default value is: YES.
+
+GENERATE_HTML = YES
+
+# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. If a
+# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
+# it.
+# The default directory is: html.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_OUTPUT = html
+
+# The HTML_FILE_EXTENSION tag can be used to specify the file extension for each
+# generated HTML page (for example: .htm, .php, .asp).
+# The default value is: .html.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_FILE_EXTENSION = .html
+
+# The HTML_HEADER tag can be used to specify a user-defined HTML header file for
+# each generated HTML page. If the tag is left blank doxygen will generate a
+# standard header.
+#
+# To get valid HTML the header file that includes any scripts and style sheets
+# that doxygen needs, which is dependent on the configuration options used (e.g.
+# the setting GENERATE_TREEVIEW). It is highly recommended to start with a
+# default header using
+# doxygen -w html new_header.html new_footer.html new_stylesheet.css
+# YourConfigFile
+# and then modify the file new_header.html. See also section "Doxygen usage"
+# for information on how to generate the default header that doxygen normally
+# uses.
+# Note: The header is subject to change so you typically have to regenerate the
+# default header when upgrading to a newer version of doxygen. For a description
+# of the possible markers and block names see the documentation.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_HEADER =
+
+# The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each
+# generated HTML page. If the tag is left blank doxygen will generate a standard
+# footer. See HTML_HEADER for more information on how to generate a default
+# footer and what special commands can be used inside the footer. See also
+# section "Doxygen usage" for information on how to generate the default footer
+# that doxygen normally uses.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_FOOTER =
+
+# The HTML_STYLESHEET tag can be used to specify a user-defined cascading style
+# sheet that is used by each HTML page. It can be used to fine-tune the look of
+# the HTML output. If left blank doxygen will generate a default style sheet.
+# See also section "Doxygen usage" for information on how to generate the style
+# sheet that doxygen normally uses.
+# Note: It is recommended to use HTML_EXTRA_STYLESHEET instead of this tag, as
+# it is more robust and this tag (HTML_STYLESHEET) will in the future become
+# obsolete.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_STYLESHEET =
+
+# The HTML_EXTRA_STYLESHEET tag can be used to specify additional user-defined
+# cascading style sheets that are included after the standard style sheets
+# created by doxygen. Using this option one can overrule certain style aspects.
+# This is preferred over using HTML_STYLESHEET since it does not replace the
+# standard style sheet and is therefore more robust against future updates.
+# Doxygen will copy the style sheet files to the output directory.
+# Note: The order of the extra style sheet files is of importance (e.g. the last
+# style sheet in the list overrules the setting of the previous ones in the
+# list). For an example see the documentation.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_EXTRA_STYLESHEET =
+
+# The HTML_EXTRA_FILES tag can be used to specify one or more extra images or
+# other source files which should be copied to the HTML output directory. Note
+# that these files will be copied to the base HTML output directory. Use the
+# $relpath^ marker in the HTML_HEADER and/or HTML_FOOTER files to load these
+# files. In the HTML_STYLESHEET file, use the file name only. Also note that the
+# files will be copied as-is; there are no commands or markers available.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_EXTRA_FILES =
+
+# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen
+# will adjust the colors in the style sheet and background images according to
+# this color. Hue is specified as an angle on a colorwheel, see
+# https://en.wikipedia.org/wiki/Hue for more information. For instance the value
+# 0 represents red, 60 is yellow, 120 is green, 180 is cyan, 240 is blue, 300
+# purple, and 360 is red again.
+# Minimum value: 0, maximum value: 359, default value: 220.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_COLORSTYLE_HUE = 220
+
+# The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of the colors
+# in the HTML output. For a value of 0 the output will use grayscales only. A
+# value of 255 will produce the most vivid colors.
+# Minimum value: 0, maximum value: 255, default value: 100.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_COLORSTYLE_SAT = 100
+
+# The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to the
+# luminance component of the colors in the HTML output. Values below 100
+# gradually make the output lighter, whereas values above 100 make the output
+# darker. The value divided by 100 is the actual gamma applied, so 80 represents
+# a gamma of 0.8, The value 220 represents a gamma of 2.2, and 100 does not
+# change the gamma.
+# Minimum value: 40, maximum value: 240, default value: 80.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_COLORSTYLE_GAMMA = 80
+
+# If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML
+# page will contain the date and time when the page was generated. Setting this
+# to YES can help to show when doxygen was last run and thus if the
+# documentation is up to date.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_TIMESTAMP = NO
+
+# If the HTML_DYNAMIC_MENUS tag is set to YES then the generated HTML
+# documentation will contain a main index with vertical navigation menus that
+# are dynamically created via JavaScript. If disabled, the navigation index will
+# consists of multiple levels of tabs that are statically embedded in every HTML
+# page. Disable this option to support browsers that do not have JavaScript,
+# like the Qt help browser.
+# The default value is: YES.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_DYNAMIC_MENUS = NO
+
+# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML
+# documentation will contain sections that can be hidden and shown after the
+# page has loaded.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_DYNAMIC_SECTIONS = NO
+
+# With HTML_INDEX_NUM_ENTRIES one can control the preferred number of entries
+# shown in the various tree structured indices initially; the user can expand
+# and collapse entries dynamically later on. Doxygen will expand the tree to
+# such a level that at most the specified number of entries are visible (unless
+# a fully collapsed tree already exceeds this amount). So setting the number of
+# entries 1 will produce a full collapsed tree by default. 0 is a special value
+# representing an infinite number of entries and will result in a full expanded
+# tree by default.
+# Minimum value: 0, maximum value: 9999, default value: 100.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_INDEX_NUM_ENTRIES = 100
+
+# If the GENERATE_DOCSET tag is set to YES, additional index files will be
+# generated that can be used as input for Apple's Xcode 3 integrated development
+# environment (see: https://developer.apple.com/xcode/), introduced with OSX
+# 10.5 (Leopard). To create a documentation set, doxygen will generate a
+# Makefile in the HTML output directory. Running make will produce the docset in
+# that directory and running make install will install the docset in
+# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find it at
+# startup. See https://developer.apple.com/library/archive/featuredarticles/Doxy
+# genXcode/_index.html for more information.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+GENERATE_DOCSET = NO
+
+# This tag determines the name of the docset feed. A documentation feed provides
+# an umbrella under which multiple documentation sets from a single provider
+# (such as a company or product suite) can be grouped.
+# The default value is: Doxygen generated docs.
+# This tag requires that the tag GENERATE_DOCSET is set to YES.
+
+DOCSET_FEEDNAME = "Doxygen generated docs"
+
+# This tag specifies a string that should uniquely identify the documentation
+# set bundle. This should be a reverse domain-name style string, e.g.
+# com.mycompany.MyDocSet. Doxygen will append .docset to the name.
+# The default value is: org.doxygen.Project.
+# This tag requires that the tag GENERATE_DOCSET is set to YES.
+
+DOCSET_BUNDLE_ID = org.doxygen.Project
+
+# The DOCSET_PUBLISHER_ID tag specifies a string that should uniquely identify
+# the documentation publisher. This should be a reverse domain-name style
+# string, e.g. com.mycompany.MyDocSet.documentation.
+# The default value is: org.doxygen.Publisher.
+# This tag requires that the tag GENERATE_DOCSET is set to YES.
+
+DOCSET_PUBLISHER_ID = org.doxygen.Publisher
+
+# The DOCSET_PUBLISHER_NAME tag identifies the documentation publisher.
+# The default value is: Publisher.
+# This tag requires that the tag GENERATE_DOCSET is set to YES.
+
+DOCSET_PUBLISHER_NAME = Publisher
+
+# If the GENERATE_HTMLHELP tag is set to YES then doxygen generates three
+# additional HTML index files: index.hhp, index.hhc, and index.hhk. The
+# index.hhp is a project file that can be read by Microsoft's HTML Help Workshop
+# (see: https://www.microsoft.com/en-us/download/details.aspx?id=21138) on
+# Windows.
+#
+# The HTML Help Workshop contains a compiler that can convert all HTML output
+# generated by doxygen into a single compiled HTML file (.chm). Compiled HTML
+# files are now used as the Windows 98 help format, and will replace the old
+# Windows help format (.hlp) on all Windows platforms in the future. Compressed
+# HTML files also contain an index, a table of contents, and you can search for
+# words in the documentation. The HTML workshop also contains a viewer for
+# compressed HTML files.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+GENERATE_HTMLHELP = NO
+
+# The CHM_FILE tag can be used to specify the file name of the resulting .chm
+# file. You can add a path in front of the file if the result should not be
+# written to the html output directory.
+# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
+
+CHM_FILE =
+
+# The HHC_LOCATION tag can be used to specify the location (absolute path
+# including file name) of the HTML help compiler (hhc.exe). If non-empty,
+# doxygen will try to run the HTML help compiler on the generated index.hhp.
+# The file has to be specified with full path.
+# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
+
+HHC_LOCATION =
+
+# The GENERATE_CHI flag controls if a separate .chi index file is generated
+# (YES) or that it should be included in the main .chm file (NO).
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
+
+GENERATE_CHI = NO
+
+# The CHM_INDEX_ENCODING is used to encode HtmlHelp index (hhk), content (hhc)
+# and project file content.
+# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
+
+CHM_INDEX_ENCODING =
+
+# The BINARY_TOC flag controls whether a binary table of contents is generated
+# (YES) or a normal table of contents (NO) in the .chm file. Furthermore it
+# enables the Previous and Next buttons.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
+
+BINARY_TOC = NO
+
+# The TOC_EXPAND flag can be set to YES to add extra items for group members to
+# the table of contents of the HTML help documentation and to the tree view.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
+
+TOC_EXPAND = NO
+
+# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and
+# QHP_VIRTUAL_FOLDER are set, an additional index file will be generated that
+# can be used as input for Qt's qhelpgenerator to generate a Qt Compressed Help
+# (.qch) of the generated HTML documentation.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+GENERATE_QHP = NO
+
+# If the QHG_LOCATION tag is specified, the QCH_FILE tag can be used to specify
+# the file name of the resulting .qch file. The path specified is relative to
+# the HTML output folder.
+# This tag requires that the tag GENERATE_QHP is set to YES.
+
+QCH_FILE =
+
+# The QHP_NAMESPACE tag specifies the namespace to use when generating Qt Help
+# Project output. For more information please see Qt Help Project / Namespace
+# (see: https://doc.qt.io/archives/qt-4.8/qthelpproject.html#namespace).
+# The default value is: org.doxygen.Project.
+# This tag requires that the tag GENERATE_QHP is set to YES.
+
+QHP_NAMESPACE = org.doxygen.Project
+
+# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating Qt
+# Help Project output. For more information please see Qt Help Project / Virtual
+# Folders (see: https://doc.qt.io/archives/qt-4.8/qthelpproject.html#virtual-
+# folders).
+# The default value is: doc.
+# This tag requires that the tag GENERATE_QHP is set to YES.
+
+QHP_VIRTUAL_FOLDER = doc
+
+# If the QHP_CUST_FILTER_NAME tag is set, it specifies the name of a custom
+# filter to add. For more information please see Qt Help Project / Custom
+# Filters (see: https://doc.qt.io/archives/qt-4.8/qthelpproject.html#custom-
+# filters).
+# This tag requires that the tag GENERATE_QHP is set to YES.
+
+QHP_CUST_FILTER_NAME =
+
+# The QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the
+# custom filter to add. For more information please see Qt Help Project / Custom
+# Filters (see: https://doc.qt.io/archives/qt-4.8/qthelpproject.html#custom-
+# filters).
+# This tag requires that the tag GENERATE_QHP is set to YES.
+
+QHP_CUST_FILTER_ATTRS =
+
+# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this
+# project's filter section matches. Qt Help Project / Filter Attributes (see:
+# https://doc.qt.io/archives/qt-4.8/qthelpproject.html#filter-attributes).
+# This tag requires that the tag GENERATE_QHP is set to YES.
+
+QHP_SECT_FILTER_ATTRS =
+
+# The QHG_LOCATION tag can be used to specify the location of Qt's
+# qhelpgenerator. If non-empty doxygen will try to run qhelpgenerator on the
+# generated .qhp file.
+# This tag requires that the tag GENERATE_QHP is set to YES.
+
+QHG_LOCATION =
+
+# If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files will be
+# generated, together with the HTML files, they form an Eclipse help plugin. To
+# install this plugin and make it available under the help contents menu in
+# Eclipse, the contents of the directory containing the HTML and XML files needs
+# to be copied into the plugins directory of eclipse. The name of the directory
+# within the plugins directory should be the same as the ECLIPSE_DOC_ID value.
+# After copying Eclipse needs to be restarted before the help appears.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+GENERATE_ECLIPSEHELP = NO
+
+# A unique identifier for the Eclipse help plugin. When installing the plugin
+# the directory name containing the HTML and XML files should also have this
+# name. Each documentation set should have its own identifier.
+# The default value is: org.doxygen.Project.
+# This tag requires that the tag GENERATE_ECLIPSEHELP is set to YES.
+
+ECLIPSE_DOC_ID = org.doxygen.Project
+
+# If you want full control over the layout of the generated HTML pages it might
+# be necessary to disable the index and replace it with your own. The
+# DISABLE_INDEX tag can be used to turn on/off the condensed index (tabs) at top
+# of each HTML page. A value of NO enables the index and the value YES disables
+# it. Since the tabs in the index contain the same information as the navigation
+# tree, you can set this option to YES if you also set GENERATE_TREEVIEW to YES.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+DISABLE_INDEX = NO
+
+# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index
+# structure should be generated to display hierarchical information. If the tag
+# value is set to YES, a side panel will be generated containing a tree-like
+# index structure (just like the one that is generated for HTML Help). For this
+# to work a browser that supports JavaScript, DHTML, CSS and frames is required
+# (i.e. any modern browser). Windows users are probably better off using the
+# HTML help feature. Via custom style sheets (see HTML_EXTRA_STYLESHEET) one can
+# further fine-tune the look of the index. As an example, the default style
+# sheet generated by doxygen has an example that shows how to put an image at
+# the root of the tree instead of the PROJECT_NAME. Since the tree basically has
+# the same information as the tab index, you could consider setting
+# DISABLE_INDEX to YES when enabling this option.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+GENERATE_TREEVIEW = NO
+
+# The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values that
+# doxygen will group on one line in the generated HTML documentation.
+#
+# Note that a value of 0 will completely suppress the enum values from appearing
+# in the overview section.
+# Minimum value: 0, maximum value: 20, default value: 4.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+ENUM_VALUES_PER_LINE = 4
+
+# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be used
+# to set the initial width (in pixels) of the frame in which the tree is shown.
+# Minimum value: 0, maximum value: 1500, default value: 250.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+TREEVIEW_WIDTH = 250
+
+# If the EXT_LINKS_IN_WINDOW option is set to YES, doxygen will open links to
+# external symbols imported via tag files in a separate window.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+EXT_LINKS_IN_WINDOW = NO
+
+# If the HTML_FORMULA_FORMAT option is set to svg, doxygen will use the pdf2svg
+# tool (see https://github.com/dawbarton/pdf2svg) or inkscape (see
+# https://inkscape.org) to generate formulas as SVG images instead of PNGs for
+# the HTML output. These images will generally look nicer at scaled resolutions.
+# Possible values are: png (the default) and svg (looks nicer but requires the
+# pdf2svg or inkscape tool).
+# The default value is: png.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+HTML_FORMULA_FORMAT = png
+
+# Use this tag to change the font size of LaTeX formulas included as images in
+# the HTML documentation. When you change the font size after a successful
+# doxygen run you need to manually remove any form_*.png images from the HTML
+# output directory to force them to be regenerated.
+# Minimum value: 8, maximum value: 50, default value: 10.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+FORMULA_FONTSIZE = 10
+
+# Use the FORMULA_TRANSPARENT tag to determine whether or not the images
+# generated for formulas are transparent PNGs. Transparent PNGs are not
+# supported properly for IE 6.0, but are supported on all modern browsers.
+#
+# Note that when changing this option you need to delete any form_*.png files in
+# the HTML output directory before the changes have effect.
+# The default value is: YES.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+FORMULA_TRANSPARENT = YES
+
+# The FORMULA_MACROFILE can contain LaTeX \newcommand and \renewcommand commands
+# to create new LaTeX commands to be used in formulas as building blocks. See
+# the section "Including formulas" for details.
+
+FORMULA_MACROFILE =
+
+# Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see
+# https://www.mathjax.org) which uses client side JavaScript for the rendering
+# instead of using pre-rendered bitmaps. Use this if you do not have LaTeX
+# installed or if you want to formulas look prettier in the HTML output. When
+# enabled you may also need to install MathJax separately and configure the path
+# to it using the MATHJAX_RELPATH option.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+USE_MATHJAX = NO
+
+# When MathJax is enabled you can set the default output format to be used for
+# the MathJax output. See the MathJax site (see:
+# http://docs.mathjax.org/en/latest/output.html) for more details.
+# Possible values are: HTML-CSS (which is slower, but has the best
+# compatibility), NativeMML (i.e. MathML) and SVG.
+# The default value is: HTML-CSS.
+# This tag requires that the tag USE_MATHJAX is set to YES.
+
+MATHJAX_FORMAT = HTML-CSS
+
+# When MathJax is enabled you need to specify the location relative to the HTML
+# output directory using the MATHJAX_RELPATH option. The destination directory
+# should contain the MathJax.js script. For instance, if the mathjax directory
+# is located at the same level as the HTML output directory, then
+# MATHJAX_RELPATH should be ../mathjax. The default value points to the MathJax
+# Content Delivery Network so you can quickly see the result without installing
+# MathJax. However, it is strongly recommended to install a local copy of
+# MathJax from https://www.mathjax.org before deployment.
+# The default value is: https://cdn.jsdelivr.net/npm/mathjax@2.
+# This tag requires that the tag USE_MATHJAX is set to YES.
+
+MATHJAX_RELPATH = https://cdn.jsdelivr.net/npm/mathjax@2
+
+# The MATHJAX_EXTENSIONS tag can be used to specify one or more MathJax
+# extension names that should be enabled during MathJax rendering. For example
+# MATHJAX_EXTENSIONS = TeX/AMSmath TeX/AMSsymbols
+# This tag requires that the tag USE_MATHJAX is set to YES.
+
+MATHJAX_EXTENSIONS =
+
+# The MATHJAX_CODEFILE tag can be used to specify a file with javascript pieces
+# of code that will be used on startup of the MathJax code. See the MathJax site
+# (see: http://docs.mathjax.org/en/latest/output.html) for more details. For an
+# example see the documentation.
+# This tag requires that the tag USE_MATHJAX is set to YES.
+
+MATHJAX_CODEFILE =
+
+# When the SEARCHENGINE tag is enabled doxygen will generate a search box for
+# the HTML output. The underlying search engine uses javascript and DHTML and
+# should work on any modern browser. Note that when using HTML help
+# (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets (GENERATE_DOCSET)
+# there is already a search function so this one should typically be disabled.
+# For large projects the javascript based search engine can be slow, then
+# enabling SERVER_BASED_SEARCH may provide a better solution. It is possible to
+# search using the keyboard; to jump to the search box use + S
+# (what the is depends on the OS and browser, but it is typically
+# , /, or both). Inside the search box use the to jump into the search results window, the results can be navigated
+# using the . Press to select an item or to cancel
+# the search. The filter options can be selected when the cursor is inside the
+# search box by pressing +. Also here use the
+# to select a filter and or to activate or cancel the filter
+# option.
+# The default value is: YES.
+# This tag requires that the tag GENERATE_HTML is set to YES.
+
+SEARCHENGINE = YES
+
+# When the SERVER_BASED_SEARCH tag is enabled the search engine will be
+# implemented using a web server instead of a web client using JavaScript. There
+# are two flavors of web server based searching depending on the EXTERNAL_SEARCH
+# setting. When disabled, doxygen will generate a PHP script for searching and
+# an index file used by the script. When EXTERNAL_SEARCH is enabled the indexing
+# and searching needs to be provided by external tools. See the section
+# "External Indexing and Searching" for details.
+# The default value is: NO.
+# This tag requires that the tag SEARCHENGINE is set to YES.
+
+SERVER_BASED_SEARCH = NO
+
+# When EXTERNAL_SEARCH tag is enabled doxygen will no longer generate the PHP
+# script for searching. Instead the search results are written to an XML file
+# which needs to be processed by an external indexer. Doxygen will invoke an
+# external search engine pointed to by the SEARCHENGINE_URL option to obtain the
+# search results.
+#
+# Doxygen ships with an example indexer (doxyindexer) and search engine
+# (doxysearch.cgi) which are based on the open source search engine library
+# Xapian (see: https://xapian.org/).
+#
+# See the section "External Indexing and Searching" for details.
+# The default value is: NO.
+# This tag requires that the tag SEARCHENGINE is set to YES.
+
+EXTERNAL_SEARCH = NO
+
+# The SEARCHENGINE_URL should point to a search engine hosted by a web server
+# which will return the search results when EXTERNAL_SEARCH is enabled.
+#
+# Doxygen ships with an example indexer (doxyindexer) and search engine
+# (doxysearch.cgi) which are based on the open source search engine library
+# Xapian (see: https://xapian.org/). See the section "External Indexing and
+# Searching" for details.
+# This tag requires that the tag SEARCHENGINE is set to YES.
+
+SEARCHENGINE_URL =
+
+# When SERVER_BASED_SEARCH and EXTERNAL_SEARCH are both enabled the unindexed
+# search data is written to a file for indexing by an external tool. With the
+# SEARCHDATA_FILE tag the name of this file can be specified.
+# The default file is: searchdata.xml.
+# This tag requires that the tag SEARCHENGINE is set to YES.
+
+SEARCHDATA_FILE = searchdata.xml
+
+# When SERVER_BASED_SEARCH and EXTERNAL_SEARCH are both enabled the
+# EXTERNAL_SEARCH_ID tag can be used as an identifier for the project. This is
+# useful in combination with EXTRA_SEARCH_MAPPINGS to search through multiple
+# projects and redirect the results back to the right project.
+# This tag requires that the tag SEARCHENGINE is set to YES.
+
+EXTERNAL_SEARCH_ID =
+
+# The EXTRA_SEARCH_MAPPINGS tag can be used to enable searching through doxygen
+# projects other than the one defined by this configuration file, but that are
+# all added to the same external search index. Each project needs to have a
+# unique id set via EXTERNAL_SEARCH_ID. The search mapping then maps the id of
+# to a relative location where the documentation can be found. The format is:
+# EXTRA_SEARCH_MAPPINGS = tagname1=loc1 tagname2=loc2 ...
+# This tag requires that the tag SEARCHENGINE is set to YES.
+
+EXTRA_SEARCH_MAPPINGS =
+
+#---------------------------------------------------------------------------
+# Configuration options related to the LaTeX output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_LATEX tag is set to YES, doxygen will generate LaTeX output.
+# The default value is: YES.
+
+GENERATE_LATEX = YES
+
+# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. If a
+# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
+# it.
+# The default directory is: latex.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_OUTPUT = latex
+
+# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be
+# invoked.
+#
+# Note that when not enabling USE_PDFLATEX the default is latex when enabling
+# USE_PDFLATEX the default is pdflatex and when in the later case latex is
+# chosen this is overwritten by pdflatex. For specific output languages the
+# default can have been set differently, this depends on the implementation of
+# the output language.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_CMD_NAME =
+
+# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to generate
+# index for LaTeX.
+# Note: This tag is used in the Makefile / make.bat.
+# See also: LATEX_MAKEINDEX_CMD for the part in the generated output file
+# (.tex).
+# The default file is: makeindex.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+MAKEINDEX_CMD_NAME = makeindex
+
+# The LATEX_MAKEINDEX_CMD tag can be used to specify the command name to
+# generate index for LaTeX. In case there is no backslash (\) as first character
+# it will be automatically added in the LaTeX code.
+# Note: This tag is used in the generated output file (.tex).
+# See also: MAKEINDEX_CMD_NAME for the part in the Makefile / make.bat.
+# The default value is: makeindex.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_MAKEINDEX_CMD = makeindex
+
+# If the COMPACT_LATEX tag is set to YES, doxygen generates more compact LaTeX
+# documents. This may be useful for small projects and may help to save some
+# trees in general.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+COMPACT_LATEX = NO
+
+# The PAPER_TYPE tag can be used to set the paper type that is used by the
+# printer.
+# Possible values are: a4 (210 x 297 mm), letter (8.5 x 11 inches), legal (8.5 x
+# 14 inches) and executive (7.25 x 10.5 inches).
+# The default value is: a4.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+PAPER_TYPE = a4
+
+# The EXTRA_PACKAGES tag can be used to specify one or more LaTeX package names
+# that should be included in the LaTeX output. The package can be specified just
+# by its name or with the correct syntax as to be used with the LaTeX
+# \usepackage command. To get the times font for instance you can specify :
+# EXTRA_PACKAGES=times or EXTRA_PACKAGES={times}
+# To use the option intlimits with the amsmath package you can specify:
+# EXTRA_PACKAGES=[intlimits]{amsmath}
+# If left blank no extra packages will be included.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+EXTRA_PACKAGES =
+
+# The LATEX_HEADER tag can be used to specify a personal LaTeX header for the
+# generated LaTeX document. The header should contain everything until the first
+# chapter. If it is left blank doxygen will generate a standard header. See
+# section "Doxygen usage" for information on how to let doxygen write the
+# default header to a separate file.
+#
+# Note: Only use a user-defined header if you know what you are doing! The
+# following commands have a special meaning inside the header: $title,
+# $datetime, $date, $doxygenversion, $projectname, $projectnumber,
+# $projectbrief, $projectlogo. Doxygen will replace $title with the empty
+# string, for the replacement values of the other commands the user is referred
+# to HTML_HEADER.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_HEADER =
+
+# The LATEX_FOOTER tag can be used to specify a personal LaTeX footer for the
+# generated LaTeX document. The footer should contain everything after the last
+# chapter. If it is left blank doxygen will generate a standard footer. See
+# LATEX_HEADER for more information on how to generate a default footer and what
+# special commands can be used inside the footer.
+#
+# Note: Only use a user-defined footer if you know what you are doing!
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_FOOTER =
+
+# The LATEX_EXTRA_STYLESHEET tag can be used to specify additional user-defined
+# LaTeX style sheets that are included after the standard style sheets created
+# by doxygen. Using this option one can overrule certain style aspects. Doxygen
+# will copy the style sheet files to the output directory.
+# Note: The order of the extra style sheet files is of importance (e.g. the last
+# style sheet in the list overrules the setting of the previous ones in the
+# list).
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_EXTRA_STYLESHEET =
+
+# The LATEX_EXTRA_FILES tag can be used to specify one or more extra images or
+# other source files which should be copied to the LATEX_OUTPUT output
+# directory. Note that the files will be copied as-is; there are no commands or
+# markers available.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_EXTRA_FILES =
+
+# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated is
+# prepared for conversion to PDF (using ps2pdf or pdflatex). The PDF file will
+# contain links (just like the HTML output) instead of page references. This
+# makes the output suitable for online browsing using a PDF viewer.
+# The default value is: YES.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+PDF_HYPERLINKS = YES
+
+# If the USE_PDFLATEX tag is set to YES, doxygen will use the engine as
+# specified with LATEX_CMD_NAME to generate the PDF file directly from the LaTeX
+# files. Set this option to YES, to get a higher quality PDF documentation.
+#
+# See also section LATEX_CMD_NAME for selecting the engine.
+# The default value is: YES.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+USE_PDFLATEX = YES
+
+# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \batchmode
+# command to the generated LaTeX files. This will instruct LaTeX to keep running
+# if errors occur, instead of asking the user for help. This option is also used
+# when generating formulas in HTML.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_BATCHMODE = NO
+
+# If the LATEX_HIDE_INDICES tag is set to YES then doxygen will not include the
+# index chapters (such as File Index, Compound Index, etc.) in the output.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_HIDE_INDICES = NO
+
+# If the LATEX_SOURCE_CODE tag is set to YES then doxygen will include source
+# code with syntax highlighting in the LaTeX output.
+#
+# Note that which sources are shown also depends on other settings such as
+# SOURCE_BROWSER.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_SOURCE_CODE = NO
+
+# The LATEX_BIB_STYLE tag can be used to specify the style to use for the
+# bibliography, e.g. plainnat, or ieeetr. See
+# https://en.wikipedia.org/wiki/BibTeX and \cite for more info.
+# The default value is: plain.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_BIB_STYLE = plain
+
+# If the LATEX_TIMESTAMP tag is set to YES then the footer of each generated
+# page will contain the date and time when the page was generated. Setting this
+# to NO can help when comparing the output of multiple runs.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_TIMESTAMP = NO
+
+# The LATEX_EMOJI_DIRECTORY tag is used to specify the (relative or absolute)
+# path from which the emoji images will be read. If a relative path is entered,
+# it will be relative to the LATEX_OUTPUT directory. If left blank the
+# LATEX_OUTPUT directory will be used.
+# This tag requires that the tag GENERATE_LATEX is set to YES.
+
+LATEX_EMOJI_DIRECTORY =
+
+#---------------------------------------------------------------------------
+# Configuration options related to the RTF output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_RTF tag is set to YES, doxygen will generate RTF output. The
+# RTF output is optimized for Word 97 and may not look too pretty with other RTF
+# readers/editors.
+# The default value is: NO.
+
+GENERATE_RTF = NO
+
+# The RTF_OUTPUT tag is used to specify where the RTF docs will be put. If a
+# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
+# it.
+# The default directory is: rtf.
+# This tag requires that the tag GENERATE_RTF is set to YES.
+
+RTF_OUTPUT = rtf
+
+# If the COMPACT_RTF tag is set to YES, doxygen generates more compact RTF
+# documents. This may be useful for small projects and may help to save some
+# trees in general.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_RTF is set to YES.
+
+COMPACT_RTF = NO
+
+# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated will
+# contain hyperlink fields. The RTF file will contain links (just like the HTML
+# output) instead of page references. This makes the output suitable for online
+# browsing using Word or some other Word compatible readers that support those
+# fields.
+#
+# Note: WordPad (write) and others do not support links.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_RTF is set to YES.
+
+RTF_HYPERLINKS = NO
+
+# Load stylesheet definitions from file. Syntax is similar to doxygen's
+# configuration file, i.e. a series of assignments. You only have to provide
+# replacements, missing definitions are set to their default value.
+#
+# See also section "Doxygen usage" for information on how to generate the
+# default style sheet that doxygen normally uses.
+# This tag requires that the tag GENERATE_RTF is set to YES.
+
+RTF_STYLESHEET_FILE =
+
+# Set optional variables used in the generation of an RTF document. Syntax is
+# similar to doxygen's configuration file. A template extensions file can be
+# generated using doxygen -e rtf extensionFile.
+# This tag requires that the tag GENERATE_RTF is set to YES.
+
+RTF_EXTENSIONS_FILE =
+
+# If the RTF_SOURCE_CODE tag is set to YES then doxygen will include source code
+# with syntax highlighting in the RTF output.
+#
+# Note that which sources are shown also depends on other settings such as
+# SOURCE_BROWSER.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_RTF is set to YES.
+
+RTF_SOURCE_CODE = NO
+
+#---------------------------------------------------------------------------
+# Configuration options related to the man page output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_MAN tag is set to YES, doxygen will generate man pages for
+# classes and files.
+# The default value is: NO.
+
+GENERATE_MAN = NO
+
+# The MAN_OUTPUT tag is used to specify where the man pages will be put. If a
+# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
+# it. A directory man3 will be created inside the directory specified by
+# MAN_OUTPUT.
+# The default directory is: man.
+# This tag requires that the tag GENERATE_MAN is set to YES.
+
+MAN_OUTPUT = man
+
+# The MAN_EXTENSION tag determines the extension that is added to the generated
+# man pages. In case the manual section does not start with a number, the number
+# 3 is prepended. The dot (.) at the beginning of the MAN_EXTENSION tag is
+# optional.
+# The default value is: .3.
+# This tag requires that the tag GENERATE_MAN is set to YES.
+
+MAN_EXTENSION = .3
+
+# The MAN_SUBDIR tag determines the name of the directory created within
+# MAN_OUTPUT in which the man pages are placed. If defaults to man followed by
+# MAN_EXTENSION with the initial . removed.
+# This tag requires that the tag GENERATE_MAN is set to YES.
+
+MAN_SUBDIR =
+
+# If the MAN_LINKS tag is set to YES and doxygen generates man output, then it
+# will generate one additional man file for each entity documented in the real
+# man page(s). These additional files only source the real man page, but without
+# them the man command would be unable to find the correct page.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_MAN is set to YES.
+
+MAN_LINKS = NO
+
+#---------------------------------------------------------------------------
+# Configuration options related to the XML output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_XML tag is set to YES, doxygen will generate an XML file that
+# captures the structure of the code including all documentation.
+# The default value is: NO.
+
+GENERATE_XML = NO
+
+# The XML_OUTPUT tag is used to specify where the XML pages will be put. If a
+# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
+# it.
+# The default directory is: xml.
+# This tag requires that the tag GENERATE_XML is set to YES.
+
+XML_OUTPUT = xml
+
+# If the XML_PROGRAMLISTING tag is set to YES, doxygen will dump the program
+# listings (including syntax highlighting and cross-referencing information) to
+# the XML output. Note that enabling this will significantly increase the size
+# of the XML output.
+# The default value is: YES.
+# This tag requires that the tag GENERATE_XML is set to YES.
+
+XML_PROGRAMLISTING = YES
+
+# If the XML_NS_MEMB_FILE_SCOPE tag is set to YES, doxygen will include
+# namespace members in file scope as well, matching the HTML output.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_XML is set to YES.
+
+XML_NS_MEMB_FILE_SCOPE = NO
+
+#---------------------------------------------------------------------------
+# Configuration options related to the DOCBOOK output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_DOCBOOK tag is set to YES, doxygen will generate Docbook files
+# that can be used to generate PDF.
+# The default value is: NO.
+
+GENERATE_DOCBOOK = NO
+
+# The DOCBOOK_OUTPUT tag is used to specify where the Docbook pages will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be put in
+# front of it.
+# The default directory is: docbook.
+# This tag requires that the tag GENERATE_DOCBOOK is set to YES.
+
+DOCBOOK_OUTPUT = docbook
+
+# If the DOCBOOK_PROGRAMLISTING tag is set to YES, doxygen will include the
+# program listings (including syntax highlighting and cross-referencing
+# information) to the DOCBOOK output. Note that enabling this will significantly
+# increase the size of the DOCBOOK output.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_DOCBOOK is set to YES.
+
+DOCBOOK_PROGRAMLISTING = NO
+
+#---------------------------------------------------------------------------
+# Configuration options for the AutoGen Definitions output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_AUTOGEN_DEF tag is set to YES, doxygen will generate an
+# AutoGen Definitions (see http://autogen.sourceforge.net/) file that captures
+# the structure of the code including all documentation. Note that this feature
+# is still experimental and incomplete at the moment.
+# The default value is: NO.
+
+GENERATE_AUTOGEN_DEF = NO
+
+#---------------------------------------------------------------------------
+# Configuration options related to the Perl module output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_PERLMOD tag is set to YES, doxygen will generate a Perl module
+# file that captures the structure of the code including all documentation.
+#
+# Note that this feature is still experimental and incomplete at the moment.
+# The default value is: NO.
+
+GENERATE_PERLMOD = NO
+
+# If the PERLMOD_LATEX tag is set to YES, doxygen will generate the necessary
+# Makefile rules, Perl scripts and LaTeX code to be able to generate PDF and DVI
+# output from the Perl module output.
+# The default value is: NO.
+# This tag requires that the tag GENERATE_PERLMOD is set to YES.
+
+PERLMOD_LATEX = NO
+
+# If the PERLMOD_PRETTY tag is set to YES, the Perl module output will be nicely
+# formatted so it can be parsed by a human reader. This is useful if you want to
+# understand what is going on. On the other hand, if this tag is set to NO, the
+# size of the Perl module output will be much smaller and Perl will parse it
+# just the same.
+# The default value is: YES.
+# This tag requires that the tag GENERATE_PERLMOD is set to YES.
+
+PERLMOD_PRETTY = YES
+
+# The names of the make variables in the generated doxyrules.make file are
+# prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. This is useful
+# so different doxyrules.make files included by the same Makefile don't
+# overwrite each other's variables.
+# This tag requires that the tag GENERATE_PERLMOD is set to YES.
+
+PERLMOD_MAKEVAR_PREFIX =
+
+#---------------------------------------------------------------------------
+# Configuration options related to the preprocessor
+#---------------------------------------------------------------------------
+
+# If the ENABLE_PREPROCESSING tag is set to YES, doxygen will evaluate all
+# C-preprocessor directives found in the sources and include files.
+# The default value is: YES.
+
+ENABLE_PREPROCESSING = YES
+
+# If the MACRO_EXPANSION tag is set to YES, doxygen will expand all macro names
+# in the source code. If set to NO, only conditional compilation will be
+# performed. Macro expansion can be done in a controlled way by setting
+# EXPAND_ONLY_PREDEF to YES.
+# The default value is: NO.
+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
+
+MACRO_EXPANSION = NO
+
+# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES then
+# the macro expansion is limited to the macros specified with the PREDEFINED and
+# EXPAND_AS_DEFINED tags.
+# The default value is: NO.
+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
+
+EXPAND_ONLY_PREDEF = NO
+
+# If the SEARCH_INCLUDES tag is set to YES, the include files in the
+# INCLUDE_PATH will be searched if a #include is found.
+# The default value is: YES.
+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
+
+SEARCH_INCLUDES = YES
+
+# The INCLUDE_PATH tag can be used to specify one or more directories that
+# contain include files that are not input files but should be processed by the
+# preprocessor.
+# This tag requires that the tag SEARCH_INCLUDES is set to YES.
+
+INCLUDE_PATH =
+
+# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard
+# patterns (like *.h and *.hpp) to filter out the header-files in the
+# directories. If left blank, the patterns specified with FILE_PATTERNS will be
+# used.
+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
+
+INCLUDE_FILE_PATTERNS =
+
+# The PREDEFINED tag can be used to specify one or more macro names that are
+# defined before the preprocessor is started (similar to the -D option of e.g.
+# gcc). The argument of the tag is a list of macros of the form: name or
+# name=definition (no spaces). If the definition and the "=" are omitted, "=1"
+# is assumed. To prevent a macro definition from being undefined via #undef or
+# recursively expanded use the := operator instead of the = operator.
+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
+
+PREDEFINED =
+
+# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then this
+# tag can be used to specify a list of macro names that should be expanded. The
+# macro definition that is found in the sources will be used. Use the PREDEFINED
+# tag if you want to use a different macro definition that overrules the
+# definition found in the source code.
+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
+
+EXPAND_AS_DEFINED =
+
+# If the SKIP_FUNCTION_MACROS tag is set to YES then doxygen's preprocessor will
+# remove all references to function-like macros that are alone on a line, have
+# an all uppercase name, and do not end with a semicolon. Such function macros
+# are typically used for boiler-plate code, and will confuse the parser if not
+# removed.
+# The default value is: YES.
+# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
+
+SKIP_FUNCTION_MACROS = YES
+
+#---------------------------------------------------------------------------
+# Configuration options related to external references
+#---------------------------------------------------------------------------
+
+# The TAGFILES tag can be used to specify one or more tag files. For each tag
+# file the location of the external documentation should be added. The format of
+# a tag file without this location is as follows:
+# TAGFILES = file1 file2 ...
+# Adding location for the tag files is done as follows:
+# TAGFILES = file1=loc1 "file2 = loc2" ...
+# where loc1 and loc2 can be relative or absolute paths or URLs. See the
+# section "Linking to external documentation" for more information about the use
+# of tag files.
+# Note: Each tag file must have a unique name (where the name does NOT include
+# the path). If a tag file is not located in the directory in which doxygen is
+# run, you must also specify the path to the tagfile here.
+
+TAGFILES =
+
+# When a file name is specified after GENERATE_TAGFILE, doxygen will create a
+# tag file that is based on the input files it reads. See section "Linking to
+# external documentation" for more information about the usage of tag files.
+
+GENERATE_TAGFILE =
+
+# If the ALLEXTERNALS tag is set to YES, all external class will be listed in
+# the class index. If set to NO, only the inherited external classes will be
+# listed.
+# The default value is: NO.
+
+ALLEXTERNALS = NO
+
+# If the EXTERNAL_GROUPS tag is set to YES, all external groups will be listed
+# in the modules index. If set to NO, only the current project's groups will be
+# listed.
+# The default value is: YES.
+
+EXTERNAL_GROUPS = YES
+
+# If the EXTERNAL_PAGES tag is set to YES, all external pages will be listed in
+# the related pages index. If set to NO, only the current project's pages will
+# be listed.
+# The default value is: YES.
+
+EXTERNAL_PAGES = YES
+
+#---------------------------------------------------------------------------
+# Configuration options related to the dot tool
+#---------------------------------------------------------------------------
+
+# If the CLASS_DIAGRAMS tag is set to YES, doxygen will generate a class diagram
+# (in HTML and LaTeX) for classes with base or super classes. Setting the tag to
+# NO turns the diagrams off. Note that this option also works with HAVE_DOT
+# disabled, but it is recommended to install and use dot, since it yields more
+# powerful graphs.
+# The default value is: YES.
+
+CLASS_DIAGRAMS = YES
+
+# You can include diagrams made with dia in doxygen documentation. Doxygen will
+# then run dia to produce the diagram and insert it in the documentation. The
+# DIA_PATH tag allows you to specify the directory where the dia binary resides.
+# If left empty dia is assumed to be found in the default search path.
+
+DIA_PATH =
+
+# If set to YES the inheritance and collaboration graphs will hide inheritance
+# and usage relations if the target is undocumented or is not a class.
+# The default value is: YES.
+
+HIDE_UNDOC_RELATIONS = YES
+
+# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is
+# available from the path. This tool is part of Graphviz (see:
+# http://www.graphviz.org/), a graph visualization toolkit from AT&T and Lucent
+# Bell Labs. The other options in this section have no effect if this option is
+# set to NO
+# The default value is: NO.
+
+HAVE_DOT = NO
+
+# The DOT_NUM_THREADS specifies the number of dot invocations doxygen is allowed
+# to run in parallel. When set to 0 doxygen will base this on the number of
+# processors available in the system. You can set it explicitly to a value
+# larger than 0 to get control over the balance between CPU load and processing
+# speed.
+# Minimum value: 0, maximum value: 32, default value: 0.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_NUM_THREADS = 0
+
+# When you want a differently looking font in the dot files that doxygen
+# generates you can specify the font name using DOT_FONTNAME. You need to make
+# sure dot is able to find the font, which can be done by putting it in a
+# standard location or by setting the DOTFONTPATH environment variable or by
+# setting DOT_FONTPATH to the directory containing the font.
+# The default value is: Helvetica.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_FONTNAME = Helvetica
+
+# The DOT_FONTSIZE tag can be used to set the size (in points) of the font of
+# dot graphs.
+# Minimum value: 4, maximum value: 24, default value: 10.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_FONTSIZE = 10
+
+# By default doxygen will tell dot to use the default font as specified with
+# DOT_FONTNAME. If you specify a different font using DOT_FONTNAME you can set
+# the path where dot can find it using this tag.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_FONTPATH =
+
+# If the CLASS_GRAPH tag is set to YES then doxygen will generate a graph for
+# each documented class showing the direct and indirect inheritance relations.
+# Setting this tag to YES will force the CLASS_DIAGRAMS tag to NO.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+CLASS_GRAPH = YES
+
+# If the COLLABORATION_GRAPH tag is set to YES then doxygen will generate a
+# graph for each documented class showing the direct and indirect implementation
+# dependencies (inheritance, containment, and class references variables) of the
+# class with other documented classes.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+COLLABORATION_GRAPH = YES
+
+# If the GROUP_GRAPHS tag is set to YES then doxygen will generate a graph for
+# groups, showing the direct groups dependencies.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+GROUP_GRAPHS = YES
+
+# If the UML_LOOK tag is set to YES, doxygen will generate inheritance and
+# collaboration diagrams in a style similar to the OMG's Unified Modeling
+# Language.
+# The default value is: NO.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+UML_LOOK = NO
+
+# If the UML_LOOK tag is enabled, the fields and methods are shown inside the
+# class node. If there are many fields or methods and many nodes the graph may
+# become too big to be useful. The UML_LIMIT_NUM_FIELDS threshold limits the
+# number of items for each type to make the size more manageable. Set this to 0
+# for no limit. Note that the threshold may be exceeded by 50% before the limit
+# is enforced. So when you set the threshold to 10, up to 15 fields may appear,
+# but if the number exceeds 15, the total amount of fields shown is limited to
+# 10.
+# Minimum value: 0, maximum value: 100, default value: 10.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+UML_LIMIT_NUM_FIELDS = 10
+
+# If the TEMPLATE_RELATIONS tag is set to YES then the inheritance and
+# collaboration graphs will show the relations between templates and their
+# instances.
+# The default value is: NO.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+TEMPLATE_RELATIONS = NO
+
+# If the INCLUDE_GRAPH, ENABLE_PREPROCESSING and SEARCH_INCLUDES tags are set to
+# YES then doxygen will generate a graph for each documented file showing the
+# direct and indirect include dependencies of the file with other documented
+# files.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+INCLUDE_GRAPH = YES
+
+# If the INCLUDED_BY_GRAPH, ENABLE_PREPROCESSING and SEARCH_INCLUDES tags are
+# set to YES then doxygen will generate a graph for each documented file showing
+# the direct and indirect include dependencies of the file with other documented
+# files.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+INCLUDED_BY_GRAPH = YES
+
+# If the CALL_GRAPH tag is set to YES then doxygen will generate a call
+# dependency graph for every global function or class method.
+#
+# Note that enabling this option will significantly increase the time of a run.
+# So in most cases it will be better to enable call graphs for selected
+# functions only using the \callgraph command. Disabling a call graph can be
+# accomplished by means of the command \hidecallgraph.
+# The default value is: NO.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+CALL_GRAPH = NO
+
+# If the CALLER_GRAPH tag is set to YES then doxygen will generate a caller
+# dependency graph for every global function or class method.
+#
+# Note that enabling this option will significantly increase the time of a run.
+# So in most cases it will be better to enable caller graphs for selected
+# functions only using the \callergraph command. Disabling a caller graph can be
+# accomplished by means of the command \hidecallergraph.
+# The default value is: NO.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+CALLER_GRAPH = NO
+
+# If the GRAPHICAL_HIERARCHY tag is set to YES then doxygen will graphical
+# hierarchy of all classes instead of a textual one.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+GRAPHICAL_HIERARCHY = YES
+
+# If the DIRECTORY_GRAPH tag is set to YES then doxygen will show the
+# dependencies a directory has on other directories in a graphical way. The
+# dependency relations are determined by the #include relations between the
+# files in the directories.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DIRECTORY_GRAPH = YES
+
+# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images
+# generated by dot. For an explanation of the image formats see the section
+# output formats in the documentation of the dot tool (Graphviz (see:
+# http://www.graphviz.org/)).
+# Note: If you choose svg you need to set HTML_FILE_EXTENSION to xhtml in order
+# to make the SVG files visible in IE 9+ (other browsers do not have this
+# requirement).
+# Possible values are: png, jpg, gif, svg, png:gd, png:gd:gd, png:cairo,
+# png:cairo:gd, png:cairo:cairo, png:cairo:gdiplus, png:gdiplus and
+# png:gdiplus:gdiplus.
+# The default value is: png.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_IMAGE_FORMAT = png
+
+# If DOT_IMAGE_FORMAT is set to svg, then this option can be set to YES to
+# enable generation of interactive SVG images that allow zooming and panning.
+#
+# Note that this requires a modern browser other than Internet Explorer. Tested
+# and working are Firefox, Chrome, Safari, and Opera.
+# Note: For IE 9+ you need to set HTML_FILE_EXTENSION to xhtml in order to make
+# the SVG files visible. Older versions of IE do not have SVG support.
+# The default value is: NO.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+INTERACTIVE_SVG = NO
+
+# The DOT_PATH tag can be used to specify the path where the dot tool can be
+# found. If left blank, it is assumed the dot tool can be found in the path.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_PATH =
+
+# The DOTFILE_DIRS tag can be used to specify one or more directories that
+# contain dot files that are included in the documentation (see the \dotfile
+# command).
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOTFILE_DIRS =
+
+# The MSCFILE_DIRS tag can be used to specify one or more directories that
+# contain msc files that are included in the documentation (see the \mscfile
+# command).
+
+MSCFILE_DIRS =
+
+# The DIAFILE_DIRS tag can be used to specify one or more directories that
+# contain dia files that are included in the documentation (see the \diafile
+# command).
+
+DIAFILE_DIRS =
+
+# When using plantuml, the PLANTUML_JAR_PATH tag should be used to specify the
+# path where java can find the plantuml.jar file. If left blank, it is assumed
+# PlantUML is not used or called during a preprocessing step. Doxygen will
+# generate a warning when it encounters a \startuml command in this case and
+# will not generate output for the diagram.
+
+PLANTUML_JAR_PATH =
+
+# When using plantuml, the PLANTUML_CFG_FILE tag can be used to specify a
+# configuration file for plantuml.
+
+PLANTUML_CFG_FILE =
+
+# When using plantuml, the specified paths are searched for files specified by
+# the !include statement in a plantuml block.
+
+PLANTUML_INCLUDE_PATH =
+
+# The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of nodes
+# that will be shown in the graph. If the number of nodes in a graph becomes
+# larger than this value, doxygen will truncate the graph, which is visualized
+# by representing a node as a red box. Note that doxygen if the number of direct
+# children of the root node in a graph is already larger than
+# DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note that
+# the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH.
+# Minimum value: 0, maximum value: 10000, default value: 50.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_GRAPH_MAX_NODES = 50
+
+# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the graphs
+# generated by dot. A depth value of 3 means that only nodes reachable from the
+# root by following a path via at most 3 edges will be shown. Nodes that lay
+# further from the root node will be omitted. Note that setting this option to 1
+# or 2 may greatly reduce the computation time needed for large code bases. Also
+# note that the size of a graph can be further restricted by
+# DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction.
+# Minimum value: 0, maximum value: 1000, default value: 0.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+MAX_DOT_GRAPH_DEPTH = 0
+
+# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent
+# background. This is disabled by default, because dot on Windows does not seem
+# to support this out of the box.
+#
+# Warning: Depending on the platform used, enabling this option may lead to
+# badly anti-aliased labels on the edges of a graph (i.e. they become hard to
+# read).
+# The default value is: NO.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_TRANSPARENT = NO
+
+# Set the DOT_MULTI_TARGETS tag to YES to allow dot to generate multiple output
+# files in one run (i.e. multiple -o and -T options on the command line). This
+# makes dot run faster, but since only newer versions of dot (>1.8.10) support
+# this, this feature is disabled by default.
+# The default value is: NO.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_MULTI_TARGETS = NO
+
+# If the GENERATE_LEGEND tag is set to YES doxygen will generate a legend page
+# explaining the meaning of the various boxes and arrows in the dot generated
+# graphs.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+GENERATE_LEGEND = YES
+
+# If the DOT_CLEANUP tag is set to YES, doxygen will remove the intermediate dot
+# files that are used to generate the various graphs.
+# The default value is: YES.
+# This tag requires that the tag HAVE_DOT is set to YES.
+
+DOT_CLEANUP = YES
diff --git a/app/Makefile b/app/Makefile
index e9edd09..6cc796b 100755
--- a/app/Makefile
+++ b/app/Makefile
@@ -1,6 +1,6 @@
#*******************************************************************************
# Ledger App
-# (c) 2019 - 2022 Zondax GmbH
+# (c) 2019 - 2023 Zondax AG
# (c) 2017 Ledger
#
# Licensed under the Apache License, Version 2.0 (the "License");
@@ -22,31 +22,15 @@ endif
MY_DIR := $(dir $(lastword $(MAKEFILE_LIST)))
-all: bin/app.elf
- @echo "#!/usr/bin/env bash" > $(OUTPUT_INSTALLER)
- @echo "APPNAME=\"${APPNAME}\"" >> $(OUTPUT_INSTALLER)
- @echo "APPVERSION=\"${APPVERSION}\"" >> $(OUTPUT_INSTALLER)
- @echo "APPPATH=\""${APPPATH}"\"" >> $(OUTPUT_INSTALLER)
- @echo "LOAD_PARAMS=($$(echo "${APP_LOAD_PARAMS}" | sed -e "s|"${APPNAME}"|\""${APPNAME}"\"|"))" >> $(OUTPUT_INSTALLER)
- @echo "DELETE_PARAMS=($$(echo "${COMMON_DELETE_PARAMS}" | sed -e "s|"${APPNAME}"|\""${APPNAME}"\"|"))" >> $(OUTPUT_INSTALLER)
- @echo "APPHEX=\"" >> $(OUTPUT_INSTALLER)
- @cat $(CURDIR)/bin/app.hex >> $(OUTPUT_INSTALLER)
- @echo "\"" >> $(OUTPUT_INSTALLER)
- @cat $(CURDIR)/../deps/ledger-zxlib/scripts/template.sh >> $(OUTPUT_INSTALLER)
- @chmod +x $(OUTPUT_INSTALLER)
- @cp $(CURDIR)/bin/* $(CURDIR)/output
- @cp $(CURDIR)/output/app.elf ${OUTPUT_ELF}
- @rm $(CURDIR)/output/app.elf
+include $(CURDIR)/../deps/ledger-zxlib/makefiles/Makefile.installer_script
include $(BOLOS_SDK)/Makefile.defines
+DEFINES += APP_SECRET_MODE_ENABLED
+
$(info ************ TARGET_NAME = [$(TARGET_NAME)])
-ifeq ($(APP_TESTING),1)
-DEFINES += APP_TESTING
-DEFINES += ZEMU_LOGGING
-$(info ************ LOGGING ENABLED ************)
-endif
+include $(CURDIR)/../deps/ledger-zxlib/makefiles/Makefile.app_testing
ifeq ($(SUPPORT_SR25519),1)
DEFINES += SUPPORT_SR25519
@@ -85,39 +69,17 @@ APPPATH = "44'/995'"
else
define error_message
-
COIN value not supported: [$(COIN)]
-
endef
$(error "$(error_message)")
endif
APP_LOAD_PARAMS = --curve ed25519 $(COMMON_LOAD_PARAMS) --path $(APPPATH)
-ifeq ($(TARGET_NAME),TARGET_NANOS)
-APP_LOAD_PARAMS += --appFlags 0x000
-APP_STACK_SIZE:=3216
-ICONNAME:=$(CURDIR)/nanos_icon.gif
-OUTPUT_ELF ?= $(CURDIR)/output/app_s.elf
-OUTPUT_INSTALLER := $(CURDIR)/pkg/installer_s.sh
-endif
+NANOS_STACK_SIZE := 3216
-ifeq ($(TARGET_NAME),TARGET_NANOX)
-APP_LOAD_PARAMS += --appFlags 0x200
-SCRIPT_LD:=$(CURDIR)/script_x.ld
-ICONNAME:=$(CURDIR)/nanox_icon.gif
-OUTPUT_ELF ?= $(CURDIR)/output/app_x.elf
-OUTPUT_INSTALLER:= $(CURDIR)/pkg/installer_x.sh
-endif
-
-ifeq ($(TARGET_NAME),TARGET_NANOS2)
-APP_LOAD_PARAMS += --appFlags 0x000
-SCRIPT_LD:=$(CURDIR)/script_s2.ld
-ICONNAME:=$(CURDIR)/nanox_icon.gif
-OUTPUT_ELF ?= $(CURDIR)/output/app_s2.elf
-OUTPUT_INSTALLER:= $(CURDIR)/pkg/installer_s2.sh
-endif
+include $(CURDIR)/../deps/ledger-zxlib/makefiles/Makefile.devices
$(info TARGET_NAME = [$(TARGET_NAME)])
$(info ICONNAME = [$(ICONNAME)])
@@ -126,100 +88,11 @@ ifndef ICONNAME
$(error ICONNAME is not set)
endif
-############
-# Platform
-
-DEFINES += PRINTF\(...\)=
-
-APPVERSION=$(APPVERSION_M).$(APPVERSION_N).$(APPVERSION_P)
-DEFINES += APPVERSION=\"$(APPVERSION)\"
-
-DEFINES += OS_IO_SEPROXYHAL
-DEFINES += HAVE_BAGL HAVE_SPRINTF
-DEFINES += HAVE_IO_USB HAVE_L4_USBLIB IO_USB_MAX_ENDPOINTS=7 IO_HID_EP_LENGTH=64 HAVE_USB_APDU
-
-DEFINES += LEDGER_MAJOR_VERSION=$(APPVERSION_M) LEDGER_MINOR_VERSION=$(APPVERSION_N) LEDGER_PATCH_VERSION=$(APPVERSION_P)
-
-DEFINES += USB_SEGMENT_SIZE=64
-DEFINES += HAVE_BOLOS_APP_STACK_CANARY
-
-DEFINES += HAVE_WEBUSB WEBUSB_URL_SIZE_B=0 WEBUSB_URL=""
-
-ifeq ($(TARGET_NAME),TARGET_NANOS)
-DEFINES += IO_SEPROXYHAL_BUFFER_SIZE_B=128
-else
-# Assume Nano X/S+
-DEFINES += IO_SEPROXYHAL_BUFFER_SIZE_B=300
-
-DEFINES += HAVE_GLO096
-DEFINES += HAVE_BAGL BAGL_WIDTH=128 BAGL_HEIGHT=64
-DEFINES += HAVE_BAGL_ELLIPSIS # long label truncation feature
-DEFINES += HAVE_BAGL_FONT_OPEN_SANS_REGULAR_11PX
-DEFINES += HAVE_BAGL_FONT_OPEN_SANS_EXTRABOLD_11PX
-DEFINES += HAVE_BAGL_FONT_OPEN_SANS_LIGHT_16PX
-
-DEFINES += HAVE_UX_FLOW
-endif
-
-ifeq ($(TARGET_NAME),TARGET_NANOX)
-# X specific
-DEFINES += HAVE_BLE
-DEFINES += HAVE_BLE_APDU BLE_COMMAND_TIMEOUT_MS=2000
-
-SDK_SOURCE_PATH += lib_blewbxx lib_blewbxx_impl
-endif
-
-# App specific
-
-#Feature temporarily disabled
-DEFINES += LEDGER_SPECIFIC
-
-# Compiler, assembler, and linker
-
-ifneq ($(BOLOS_ENV),)
-$(info BOLOS_ENV is $(BOLOS_ENV))
-CLANGPATH := /usr/bin/
-GCCPATH := /usr/bin/
-else
-$(info BOLOS_ENV is not set: falling back to CLANGPATH and GCCPATH)
-endif
-
-ifeq ($(CLANGPATH),)
-$(info CLANGPATH is not set: clang will be used from PATH)
-endif
-
-ifeq ($(GCCPATH),)
-$(info GCCPATH is not set: arm-none-eabi-* will be used from PATH)
-endif
-
-#########################
-
-CC := $(CLANGPATH)clang
-CFLAGS += -O3 -Os -Wno-unknown-pragmas -Wno-unused-parameter -Wvla
-
-AS := $(GCCPATH)arm-none-eabi-gcc
-AFLAGS +=
-
-LD := $(GCCPATH)arm-none-eabi-gcc
-LDFLAGS += -O3 -Os
-LDFLAGS += -z muldefs
-LDLIBS += -lm -lgcc -lc
-LDLIBS += -Lrust/target/thumbv6m-none-eabi/release -lrslib
-
-##########################
-GLYPH_SRC_DIR = glyphs
-INCLUDES_PATH += $(MY_DIR)/glyphs
-include $(BOLOS_SDK)/Makefile.glyphs
-
-APP_SOURCE_PATH += $(MY_DIR)/src
-APP_SOURCE_PATH += $(MY_DIR)/glyphs
-APP_SOURCE_PATH += $(MY_DIR)/rust/include
-APP_SOURCE_PATH += $(MY_DIR)/../deps/ledger-zxlib/include
-APP_SOURCE_PATH += $(MY_DIR)/../deps/ledger-zxlib/src
-APP_SOURCE_PATH += $(MY_DIR)/../deps/ledger-zxlib/app/common
-
-SDK_SOURCE_PATH += lib_stusb lib_stusb_impl
-SDK_SOURCE_PATH += lib_ux
+include $(CURDIR)/../deps/ledger-zxlib/makefiles/Makefile.platform
+LDFLAGS += -z muldefs
+LDLIBS += -Lrust/target/thumbv6m-none-eabi/release -lrslib
+CFLAGS += -Wvla
+APP_SOURCE_PATH += $(CURDIR)/rust/include
.PHONY: rust
rust:
@@ -234,14 +107,7 @@ rust_clean:
clean: rust_clean
-# load, delete and listvariants are provided to comply with Ledger requirements
-.PHONY: load
-load:
- python3 -m ledgerblue.loadApp $(APP_LOAD_PARAMS)
-
-.PHONY: delete
-delete:
- python3 -m ledgerblue.deleteApp $(COMMON_DELETE_PARAMS)
+include $(CURDIR)/../deps/ledger-zxlib/makefiles/Makefile.side_loading
# Import generic rules from the SDK
include $(BOLOS_SDK)/Makefile.rules
diff --git a/app/Makefile.version b/app/Makefile.version
index 86115c7..af3105a 100644
--- a/app/Makefile.version
+++ b/app/Makefile.version
@@ -1,6 +1,6 @@
# This is the `transaction_version` field of `Runtime`
APPVERSION_M=1
# This is the `spec_version` field of `Runtime`
-APPVERSION_N=6
+APPVERSION_N=11
# This is the patch version of this release
APPVERSION_P=0
diff --git a/app/glyphs/icon_app.gif b/app/glyphs/icon_app.gif
index acec7ff..ee2dec5 100644
Binary files a/app/glyphs/icon_app.gif and b/app/glyphs/icon_app.gif differ
diff --git a/app/nanos_icon.gif b/app/nanos_icon.gif
index 74e9815..c68f291 100644
Binary files a/app/nanos_icon.gif and b/app/nanos_icon.gif differ
diff --git a/app/nanox_icon.gif b/app/nanox_icon.gif
index f6378bd..000c074 100644
Binary files a/app/nanox_icon.gif and b/app/nanox_icon.gif differ
diff --git a/app/rust/Cargo.lock b/app/rust/Cargo.lock
index a7209f3..d21c1b7 100644
--- a/app/rust/Cargo.lock
+++ b/app/rust/Cargo.lock
@@ -4,9 +4,9 @@ version = 3
[[package]]
name = "aho-corasick"
-version = "0.7.18"
+version = "0.7.20"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1e37cfd5e7657ada45f742d6e99ca5788580b5c529dc78faf11ece6dc702656f"
+checksum = "cc936419f96fa211c1b9166887b38e5e40b19958e5b895be7c1f93adec7071ac"
dependencies = [
"memchr",
]
@@ -73,6 +73,15 @@ version = "1.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
+[[package]]
+name = "cpufeatures"
+version = "0.2.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "28d997bd5e24a5928dd43e46dc529867e207907fe0b239c3477d924f7f2ca320"
+dependencies = [
+ "libc",
+]
+
[[package]]
name = "curve25519-dalek"
version = "2.1.3"
@@ -114,7 +123,7 @@ version = "0.9.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066"
dependencies = [
- "generic-array 0.14.5",
+ "generic-array 0.14.6",
]
[[package]]
@@ -147,9 +156,9 @@ dependencies = [
[[package]]
name = "generic-array"
-version = "0.14.5"
+version = "0.14.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fd48d33ec7f05fbfa152300fdad764757cbded343c1aa1cff2fbaf4134851803"
+checksum = "bff49e947297f3312447abdca79f45f4738097cc82b06e72054d2223f601f1b9"
dependencies = [
"typenum",
"version_check",
@@ -211,15 +220,18 @@ dependencies = [
[[package]]
name = "keccak"
-version = "0.1.2"
+version = "0.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f9b7d56ba4a8344d6be9729995e6b06f928af29998cdf79fe390cbf6b1fee838"
+checksum = "3afef3b6eff9ce9d8ff9b3601125eec7f0c8cbac7abd14f355d053fa56c98768"
+dependencies = [
+ "cpufeatures",
+]
[[package]]
name = "libc"
-version = "0.2.126"
+version = "0.2.139"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "349d5a591cd28b49e1d1037471617a32ddcda5731b99419008085f72d5a53836"
+checksum = "201de327520df007757c1f0adce6e827fe8562fbc28bfd9c15571c66ca1f5f79"
[[package]]
name = "log"
@@ -262,21 +274,21 @@ checksum = "de96540e0ebde571dc55c73d60ef407c653844e6f9a1e2fdbd40c07b9252d812"
[[package]]
name = "ppv-lite86"
-version = "0.2.16"
+version = "0.2.17"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eb9f9e6e233e5c4a35559a617bf40a4ec447db2e84c20b55a6f83167b7e57872"
+checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
[[package]]
name = "proc-macro-hack"
-version = "0.5.19"
+version = "0.5.20+deprecated"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dbf0c48bc1d91375ae5c3cd81e3722dff1abcf81a30960240640d223f59fe0e5"
+checksum = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068"
[[package]]
name = "proc-macro2"
-version = "1.0.40"
+version = "1.0.50"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dd96a1e8ed2596c337f8eae5f24924ec83f5ad5ab21ea8e455d3566c69fbcaf7"
+checksum = "6ef7d57beacfaf2d8aee5937dab7b7f28de3cb8b1828479bb5de2a7106f2bae2"
dependencies = [
"unicode-ident",
]
@@ -289,9 +301,9 @@ checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0"
[[package]]
name = "quote"
-version = "1.0.20"
+version = "1.0.23"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3bcdf212e9776fbcb2d23ab029360416bb1706b1aea2d1a5ba002727cbcab804"
+checksum = "8856d8364d252a14d474036ea1358d63c9e6965c8e5c1885c18f73d70bff9c7b"
dependencies = [
"proc-macro2",
]
@@ -334,9 +346,9 @@ dependencies = [
[[package]]
name = "regex"
-version = "1.6.0"
+version = "1.7.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4c4eb3267174b8c6c2f654116623910a0fef09c4753f8dd83db29c48a0df988b"
+checksum = "48aaa5748ba571fb95cd2c85c09f629215d3a6ece942baa100950af03a34f733"
dependencies = [
"aho-corasick",
"memchr",
@@ -345,9 +357,9 @@ dependencies = [
[[package]]
name = "regex-syntax"
-version = "0.6.27"
+version = "0.6.28"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a3f87b73ce11b1619a3c6332f45341e0047173771e8b8b73f87bfeefb7b56244"
+checksum = "456c603be3e8d448b072f410900c09faf164fbce2d480456f50eea6e25f9c848"
[[package]]
name = "rslib"
@@ -402,9 +414,9 @@ checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601"
[[package]]
name = "syn"
-version = "1.0.98"
+version = "1.0.107"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c50aef8a904de4c23c788f104b7dddc7d6f79c647c7c8ce4cc8f73eb0ca773dd"
+checksum = "1f4064b5b16e03ae50984a5a8ed5d4f8803e6bc1fd170a3cda91a1be4b18e3f5"
dependencies = [
"proc-macro2",
"quote",
@@ -425,30 +437,30 @@ dependencies = [
[[package]]
name = "termcolor"
-version = "1.1.3"
+version = "1.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bab24d30b911b2376f3a13cc2cd443142f0c81dda04c118693e35b3835757755"
+checksum = "be55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6"
dependencies = [
"winapi-util",
]
[[package]]
name = "typenum"
-version = "1.15.0"
+version = "1.16.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dcf81ac59edc17cc8697ff311e8f5ef2d99fcbd9817b34cec66f90b6c3dfd987"
+checksum = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba"
[[package]]
name = "unicode-ident"
-version = "1.0.1"
+version = "1.0.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5bd2fe26506023ed7b5e1e315add59d6f584c621d037f9368fea9cfb988f368c"
+checksum = "84a22b9f218b40614adcb3f4ff08b703773ad44fa9423e4e0d346d5db86e4ebc"
[[package]]
name = "unicode-xid"
-version = "0.2.3"
+version = "0.2.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "957e51f3646910546462e67d5f7599b9e4fb8acdd304b087a6494730f9eebf04"
+checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c"
[[package]]
name = "version_check"
@@ -504,9 +516,9 @@ dependencies = [
[[package]]
name = "zeroize_derive"
-version = "1.3.2"
+version = "1.3.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3f8f187641dad4f680d25c4bfc4225b418165984179f26ca76ec4fb6441d3a17"
+checksum = "44bf07cb3e50ea2003396695d58bf46bc9887a1f362260446fad6bc4e79bd36c"
dependencies = [
"proc-macro2",
"quote",
diff --git a/app/src/apdu_handler.c b/app/src/apdu_handler.c
index f18d8b6..bab37de 100644
--- a/app/src/apdu_handler.c
+++ b/app/src/apdu_handler.c
@@ -29,6 +29,7 @@
#include "crypto.h"
#include "coin.h"
#include "zxmacros.h"
+#include "secret.h"
#include "app_mode.h"
static bool tx_initialized = false;
@@ -48,6 +49,12 @@ void extractHDPath(uint32_t rx, uint32_t offset) {
if (!mainnet) {
THROW(APDU_CODE_DATA_INVALID);
}
+
+#ifdef APP_SECRET_MODE_ENABLED
+ if (app_mode_secret()) {
+ hdPath[1] = HDPATH_1_RECOVERY;
+ }
+#endif
}
__Z_INLINE bool process_chunk(__Z_UNUSED volatile uint32_t *tx, uint32_t rx) {
diff --git a/app/src/coin.h b/app/src/coin.h
index 86c20ae..0111e44 100644
--- a/app/src/coin.h
+++ b/app/src/coin.h
@@ -1,5 +1,5 @@
/*******************************************************************************
-* (c) 2019 -2022 Zondax GmbH
+* (c) 2020 Zondax GmbH
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -14,5 +14,4 @@
* limitations under the License.
********************************************************************************/
#pragma once
-
-#include "substrate_coin.h"
\ No newline at end of file
+#include "substrate_coin.h"
diff --git a/app/src/common/parser_common.h b/app/src/common/parser_common.h
index db95ac3..48311c7 100644
--- a/app/src/common/parser_common.h
+++ b/app/src/common/parser_common.h
@@ -1,5 +1,5 @@
/*******************************************************************************
-* (c) 2019 - 2022 Zondax GmbH
+* (c) 2019 - 2023 Zondax AG
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -53,7 +53,6 @@ typedef enum {
parser_tx_nesting_not_supported,
parser_tx_nesting_limit_reached,
parser_tx_call_vec_too_large,
- parser_junction_limit,
} parser_error_t;
typedef struct {
diff --git a/app/src/parser_impl.h b/app/src/parser_impl.h
index b5436f2..6d40433 100644
--- a/app/src/parser_impl.h
+++ b/app/src/parser_impl.h
@@ -1,5 +1,5 @@
/*******************************************************************************
-* (c) 2019 - 2022 Zondax GmbH
+* (c) 2019 - 2023 Zondax AG
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
diff --git a/app/src/parser_impl_common.c b/app/src/parser_impl_common.c
index 91206b5..aa253b6 100644
--- a/app/src/parser_impl_common.c
+++ b/app/src/parser_impl_common.c
@@ -1,5 +1,5 @@
/*******************************************************************************
-* (c) 2019 - 2022 Zondax GmbH
+* (c) 2019 - 2023 Zondax AG
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -90,8 +90,6 @@ const char *parser_getErrorDescription(parser_error_t err) {
return "Max nested calls reached";
case parser_tx_call_vec_too_large:
return "Call vector exceeds limit";
- case parser_junction_limit:
- return "Max junctions reached";
default:
return "Unrecognized error code";
}
diff --git a/app/src/secret.c b/app/src/secret.c
new file mode 100644
index 0000000..2ad7ac6
--- /dev/null
+++ b/app/src/secret.c
@@ -0,0 +1,65 @@
+/*******************************************************************************
+* (c) 2020 Zondax GmbH
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+********************************************************************************/
+
+#include "os.h"
+#include "cx.h"
+#include "coin.h"
+#include "app_main.h"
+#include "tx.h"
+#include "view.h"
+#include "app_mode.h"
+#include "zxformat.h"
+
+void secret_accept() {
+#ifdef APP_SECRET_MODE_ENABLED
+ app_mode_set_secret(true);
+ view_idle_show(0, NULL);
+#endif
+}
+
+static char *secret_message =
+ "USE AT YOUR OWN RISK!! "
+ "You are about to enable the KSM recovery mode."
+ "If you are not sure why you are here, reject or unplug your device immediately."
+ "Activating this mode will temporarily allow you to sign transactions using Polkadot keys";
+
+zxerr_t secret_getNumItems(uint8_t *num_items) {
+ zemu_log_stack("secret_getNumItems");
+ *num_items = 1;
+ return zxerr_ok;
+}
+
+zxerr_t secret_getItem(int8_t displayIdx,
+ char *outKey, uint16_t outKeyLen,
+ char *outVal, uint16_t outValLen,
+ uint8_t pageIdx, uint8_t *pageCount) {
+ if (displayIdx != 0) {
+ return zxerr_no_data;
+ }
+
+ snprintf(outKey, outKeyLen, "WARNING!");
+ pageString(outVal, outValLen, (char *) PIC(secret_message), pageIdx, pageCount);
+ return zxerr_ok;
+}
+
+zxerr_t secret_enabled() {
+#ifdef APP_SECRET_MODE_ENABLED
+ zemu_log("RECOVERY TRIGGERED");
+ view_review_init(secret_getItem, secret_getNumItems, secret_accept);
+ view_review_show(0x00);
+#endif
+ return zxerr_ok;
+}
diff --git a/deps/ledger-zxlib/include/app_mode.h b/app/src/secret.h
similarity index 71%
rename from deps/ledger-zxlib/include/app_mode.h
rename to app/src/secret.h
index 240ca49..678d40c 100644
--- a/deps/ledger-zxlib/include/app_mode.h
+++ b/app/src/secret.h
@@ -1,5 +1,4 @@
/*******************************************************************************
-* (c) 2016 Ledger
* (c) 2018 Zondax GmbH
*
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -15,26 +14,23 @@
* limitations under the License.
********************************************************************************/
#pragma once
+
#include "zxmacros.h"
-#include "stdbool.h"
+#include
+#include "zxerror.h"
#ifdef __cplusplus
extern "C" {
#endif
-void app_mode_reset();
-
-bool app_mode_expert();
-
-void app_mode_set_expert(uint8_t val);
-
-bool app_mode_account();
-
-void app_mode_set_account(uint8_t val);
+zxerr_t secret_enabled();
-bool app_mode_secret();
+zxerr_t secret_getNumItems(uint8_t *num_items);
-void app_mode_set_secret(uint8_t val);
+zxerr_t secret_getItem(int8_t displayIdx,
+ char *outKey, uint16_t outKeyLen,
+ char *outValue, uint16_t outValueLen,
+ uint8_t pageIdx, uint8_t *pageCount);
#ifdef __cplusplus
}
diff --git a/app/src/substrate/substrate_coin.h b/app/src/substrate/substrate_coin.h
index fa73878..2b17a73 100644
--- a/app/src/substrate/substrate_coin.h
+++ b/app/src/substrate/substrate_coin.h
@@ -13,6 +13,21 @@
* See the License for the specific language governing permissions and
* limitations under the License.
********************************************************************************/
+/** ******************************************************************************
+ * (c) 2023 CapsuleCorp
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ ******************************************************************************* */
#pragma once
#ifdef __cplusplus
@@ -20,7 +35,7 @@ extern "C" {
#endif
#define COIN_ADDR_TYPE 42
-#define CLA 0xb3
+#define CLA 0xb5
#define HDPATH_LEN_DEFAULT 5
#define HDPATH_0_DEFAULT (0x80000000 | 0x2c)
@@ -57,15 +72,18 @@ typedef enum {
#define COIN_AMOUNT_DECIMAL_PLACES 18
-#define COIN_GENESIS_HASH "18bcdb75a0bba577b084878db2dc2546eb21504eaad4b564bb7d47f9d02b6ace"
+#define COIN_GENESIS_HASH "b830bd7275da92f5064e9fead7605a63d2a8c6841267b96f57122867ac9a3abc"
#define COIN_NAME "Ternoa"
#define COIN_TICKER "CAPS "
+#define COIN_SECRET_REQUIRED_CLICKS 10
+
#define MENU_MAIN_APP_LINE1 "Ternoa"
#define MENU_MAIN_APP_LINE2 "Ready"
+#define MENU_MAIN_APP_LINE2_SECRET "CAPS RECOVERY"
#define APPVERSION_LINE1 "Ternoa"
#define APPVERSION_LINE2 "v" APPVERSION
-
+#define DEVELOPER "CapsuleCorp"
#ifdef __cplusplus
}
#endif
diff --git a/app/src/substrate/substrate_dispatch.h b/app/src/substrate/substrate_dispatch.h
index 64134e8..62d1c91 100644
--- a/app/src/substrate/substrate_dispatch.h
+++ b/app/src/substrate/substrate_dispatch.h
@@ -13,6 +13,21 @@
* See the License for the specific language governing permissions and
* limitations under the License.
********************************************************************************/
+/** ******************************************************************************
+ * (c) 2023 CapsuleCorp
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ ******************************************************************************* */
#pragma once
#ifdef __cplusplus
diff --git a/app/src/substrate/substrate_dispatch_V1.c b/app/src/substrate/substrate_dispatch_V1.c
index 86ef2c4..57d319f 100644
--- a/app/src/substrate/substrate_dispatch_V1.c
+++ b/app/src/substrate/substrate_dispatch_V1.c
@@ -1,5 +1,20 @@
/*******************************************************************************
- * (c) 2019 - 2022 Zondax AG
+* (c) 2019 - 2023 Zondax AG
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+********************************************************************************/
+/** ******************************************************************************
+ * (c) 2023 CapsuleCorp
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -12,9565 +27,3619 @@
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
- ********************************************************************************/
+ ******************************************************************************* */
#include "substrate_dispatch_V1.h"
#include "substrate_strings.h"
#include "zxmacros.h"
#include
+#ifdef LEDGER_SPECIFIC
+#include "bolos_target.h"
+#endif
__Z_INLINE parser_error_t _readMethod_balances_transfer_V1(
- parser_context_t* c, pd_balances_transfer_V1_t* m)
+ parser_context_t* c, pd_balances_transfer_V1_t* m)
{
- CHECK_ERROR(_readLookupasStaticLookupSource_V1(c, &m->dest))
- CHECK_ERROR(_readCompactBalance(c, &m->amount))
- return parser_ok;
+ CHECK_ERROR(_readAccountIdLookupOfT(c, &m->dest))
+ CHECK_ERROR(_readCompactBalance(c, &m->amount))
+ return parser_ok;
}
__Z_INLINE parser_error_t _readMethod_balances_force_transfer_V1(
- parser_context_t* c, pd_balances_force_transfer_V1_t* m)
+ parser_context_t* c, pd_balances_force_transfer_V1_t* m)
{
- CHECK_ERROR(_readLookupasStaticLookupSource_V1(c, &m->source))
- CHECK_ERROR(_readLookupasStaticLookupSource_V1(c, &m->dest))
- CHECK_ERROR(_readCompactBalance(c, &m->amount))
- return parser_ok;
+ CHECK_ERROR(_readAccountIdLookupOfT(c, &m->source))
+ CHECK_ERROR(_readAccountIdLookupOfT(c, &m->dest))
+ CHECK_ERROR(_readCompactBalance(c, &m->amount))
+ return parser_ok;
}
__Z_INLINE parser_error_t _readMethod_balances_transfer_keep_alive_V1(
- parser_context_t* c, pd_balances_transfer_keep_alive_V1_t* m)
+ parser_context_t* c, pd_balances_transfer_keep_alive_V1_t* m)
{
- CHECK_ERROR(_readLookupasStaticLookupSource_V1(c, &m->dest))
- CHECK_ERROR(_readCompactBalance(c, &m->amount))
- return parser_ok;
+ CHECK_ERROR(_readAccountIdLookupOfT(c, &m->dest))
+ CHECK_ERROR(_readCompactBalance(c, &m->amount))
+ return parser_ok;
}
__Z_INLINE parser_error_t _readMethod_balances_transfer_all_V1(
- parser_context_t* c, pd_balances_transfer_all_V1_t* m)
+ parser_context_t* c, pd_balances_transfer_all_V1_t* m)
{
- CHECK_ERROR(_readLookupasStaticLookupSource_V1(c, &m->dest))
- CHECK_ERROR(_readbool(c, &m->keep_alive))
- return parser_ok;
+ CHECK_ERROR(_readAccountIdLookupOfT(c, &m->dest))
+ CHECK_ERROR(_readbool(c, &m->keep_alive))
+ return parser_ok;
}
__Z_INLINE parser_error_t _readMethod_staking_bond_V1(
- parser_context_t* c, pd_staking_bond_V1_t* m)
+ parser_context_t* c, pd_staking_bond_V1_t* m)
{
- CHECK_ERROR(_readLookupasStaticLookupSource_V1(c, &m->controller))
- CHECK_ERROR(_readCompactBalance(c, &m->amount))
- CHECK_ERROR(_readRewardDestination_V1(c, &m->payee))
- return parser_ok;
+ CHECK_ERROR(_readAccountIdLookupOfT(c, &m->controller))
+ CHECK_ERROR(_readCompactBalance(c, &m->amount))
+ CHECK_ERROR(_readRewardDestination(c, &m->payee))
+ return parser_ok;
}
__Z_INLINE parser_error_t _readMethod_staking_bond_extra_V1(
- parser_context_t* c, pd_staking_bond_extra_V1_t* m)
+ parser_context_t* c, pd_staking_bond_extra_V1_t* m)
{
- CHECK_ERROR(_readCompactBalance(c, &m->amount))
- return parser_ok;
+ CHECK_ERROR(_readCompactBalance(c, &m->amount))
+ return parser_ok;
}
__Z_INLINE parser_error_t _readMethod_staking_unbond_V1(
- parser_context_t* c, pd_staking_unbond_V1_t* m)
+ parser_context_t* c, pd_staking_unbond_V1_t* m)
{
- CHECK_ERROR(_readCompactBalance(c, &m->amount))
- return parser_ok;
+ CHECK_ERROR(_readCompactBalance(c, &m->amount))
+ return parser_ok;
}
__Z_INLINE parser_error_t _readMethod_staking_withdraw_unbonded_V1(
- parser_context_t* c, pd_staking_withdraw_unbonded_V1_t* m)
+ parser_context_t* c, pd_staking_withdraw_unbonded_V1_t* m)
{
- CHECK_ERROR(_readu32(c, &m->num_slashing_spans))
- return parser_ok;
+ CHECK_ERROR(_readu32(c, &m->num_slashing_spans))
+ return parser_ok;
}
__Z_INLINE parser_error_t _readMethod_staking_validate_V1(
- parser_context_t* c, pd_staking_validate_V1_t* m)
+ parser_context_t* c, pd_staking_validate_V1_t* m)
{
- CHECK_ERROR(_readValidatorPrefs_V1(c, &m->prefs))
- return parser_ok;
+ CHECK_ERROR(_readValidatorPrefs(c, &m->prefs))
+ return parser_ok;
}
__Z_INLINE parser_error_t _readMethod_staking_nominate_V1(
- parser_context_t* c, pd_staking_nominate_V1_t* m)
+ parser_context_t* c, pd_staking_nominate_V1_t* m)
{
- CHECK_ERROR(_readVecLookupasStaticLookupSource_V1(c, &m->targets))
- return parser_ok;
+ CHECK_ERROR(_readVecAccountIdLookupOfT(c, &m->targets))
+ return parser_ok;
}
__Z_INLINE parser_error_t _readMethod_staking_chill_V1(
- parser_context_t* c, pd_staking_chill_V1_t* m)
+ parser_context_t* c, pd_staking_chill_V1_t* m)
{
- return parser_ok;
+ return parser_ok;
}
__Z_INLINE parser_error_t _readMethod_staking_set_payee_V1(
- parser_context_t* c, pd_staking_set_payee_V1_t* m)
+ parser_context_t* c, pd_staking_set_payee_V1_t* m)
{
- CHECK_ERROR(_readRewardDestination_V1(c, &m->payee))
- return parser_ok;
+ CHECK_ERROR(_readRewardDestination(c, &m->payee))
+ return parser_ok;
}
__Z_INLINE parser_error_t _readMethod_staking_set_controller_V1(
- parser_context_t* c, pd_staking_set_controller_V1_t* m)
+ parser_context_t* c, pd_staking_set_controller_V1_t* m)
{
- CHECK_ERROR(_readLookupasStaticLookupSource_V1(c, &m->controller))
- return parser_ok;
+ CHECK_ERROR(_readAccountIdLookupOfT(c, &m->controller))
+ return parser_ok;
}
__Z_INLINE parser_error_t _readMethod_staking_payout_stakers_V1(
- parser_context_t* c, pd_staking_payout_stakers_V1_t* m)
+ parser_context_t* c, pd_staking_payout_stakers_V1_t* m)
{
- CHECK_ERROR(_readAccountId_V1(c, &m->validator_stash))
- CHECK_ERROR(_readEraIndex_V1(c, &m->era))
- return parser_ok;
+ CHECK_ERROR(_readAccountId(c, &m->validator_stash))
+ CHECK_ERROR(_readEraIndex(c, &m->era))
+ return parser_ok;
}
__Z_INLINE parser_error_t _readMethod_staking_rebond_V1(
- parser_context_t* c, pd_staking_rebond_V1_t* m)
+ parser_context_t* c, pd_staking_rebond_V1_t* m)
{
- CHECK_ERROR(_readCompactBalance(c, &m->amount))
- return parser_ok;
+ CHECK_ERROR(_readCompactBalance(c, &m->amount))
+ return parser_ok;
}
__Z_INLINE parser_error_t _readMethod_session_set_keys_V1(
- parser_context_t* c, pd_session_set_keys_V1_t* m)
+ parser_context_t* c, pd_session_set_keys_V1_t* m)
{
- CHECK_ERROR(_readKeys_V1(c, &m->keys))
- CHECK_ERROR(_readBytes(c, &m->proof))
- return parser_ok;
+ CHECK_ERROR(_readKeys(c, &m->keys))
+ CHECK_ERROR(_readBytes(c, &m->proof))
+ return parser_ok;
}
__Z_INLINE parser_error_t _readMethod_session_purge_keys_V1(
- parser_context_t* c, pd_session_purge_keys_V1_t* m)
+ parser_context_t* c, pd_session_purge_keys_V1_t* m)
{
- return parser_ok;
+ return parser_ok;
}
__Z_INLINE parser_error_t _readMethod_utility_batch_V1(
- parser_context_t* c, pd_utility_batch_V1_t* m)
+ parser_context_t* c, pd_utility_batch_V1_t* m)
{
- CHECK_ERROR(_readVecCall(c, &m->calls))
- return parser_ok;
+ CHECK_ERROR(_readVecCall(c, &m->calls))
+ return parser_ok;
}
__Z_INLINE parser_error_t _readMethod_utility_batch_all_V1(
- parser_context_t* c, pd_utility_batch_all_V1_t* m)
+ parser_context_t* c, pd_utility_batch_all_V1_t* m)
{
- CHECK_ERROR(_readVecCall(c, &m->calls))
- return parser_ok;
+ CHECK_ERROR(_readVecCall(c, &m->calls))
+ return parser_ok;
}
__Z_INLINE parser_error_t _readMethod_utility_force_batch_V1(
- parser_context_t* c, pd_utility_force_batch_V1_t* m)
-{
- CHECK_ERROR(_readVecCall(c, &m->calls))
- return parser_ok;
-}
-
-__Z_INLINE parser_error_t _readMethod_crowdloan_create_V1(
- parser_context_t* c, pd_crowdloan_create_V1_t* m)
-{
- CHECK_ERROR(_readCompactu32(c, &m->index))
- CHECK_ERROR(_readCompactu128(c, &m->cap))
- CHECK_ERROR(_readCompactu32(c, &m->first_period))
- CHECK_ERROR(_readCompactu32(c, &m->last_period))
- CHECK_ERROR(_readCompactu32(c, &m->end))
- CHECK_ERROR(_readOptionMultiSigner_V1(c, &m->verifier))
- return parser_ok;
-}
-
-__Z_INLINE parser_error_t _readMethod_crowdloan_contribute_V1(
- parser_context_t* c, pd_crowdloan_contribute_V1_t* m)
-{
- CHECK_ERROR(_readCompactu32(c, &m->index))
- CHECK_ERROR(_readCompactu128(c, &m->amount))
- CHECK_ERROR(_readOptionMultiSignature_V1(c, &m->signature))
- return parser_ok;
-}
-
-__Z_INLINE parser_error_t _readMethod_crowdloan_withdraw_V1(
- parser_context_t* c, pd_crowdloan_withdraw_V1_t* m)
+ parser_context_t* c, pd_utility_force_batch_V1_t* m)
{
- CHECK_ERROR(_readAccountId_V1(c, &m->who))
- CHECK_ERROR(_readCompactu32(c, &m->index))
- return parser_ok;
-}
-
-__Z_INLINE parser_error_t _readMethod_crowdloan_refund_V1(
- parser_context_t* c, pd_crowdloan_refund_V1_t* m)
-{
- CHECK_ERROR(_readCompactu32(c, &m->index))
- return parser_ok;
-}
-
-__Z_INLINE parser_error_t _readMethod_crowdloan_dissolve_V1(
- parser_context_t* c, pd_crowdloan_dissolve_V1_t* m)
-{
- CHECK_ERROR(_readCompactu32(c, &m->index))
- return parser_ok;
-}
-
-__Z_INLINE parser_error_t _readMethod_crowdloan_edit_V1(
- parser_context_t* c, pd_crowdloan_edit_V1_t* m)
-{
- CHECK_ERROR(_readCompactu32(c, &m->index))
- CHECK_ERROR(_readCompactu128(c, &m->cap))
- CHECK_ERROR(_readCompactu32(c, &m->first_period))
- CHECK_ERROR(_readCompactu32(c, &m->last_period))
- CHECK_ERROR(_readCompactu32(c, &m->end))
- CHECK_ERROR(_readOptionMultiSigner_V1(c, &m->verifier))
- return parser_ok;
-}
-
-__Z_INLINE parser_error_t _readMethod_crowdloan_add_memo_V1(
- parser_context_t* c, pd_crowdloan_add_memo_V1_t* m)
-{
- CHECK_ERROR(_readParaId_V1(c, &m->index))
- CHECK_ERROR(_readVecu8(c, &m->memo))
- return parser_ok;
-}
-
-__Z_INLINE parser_error_t _readMethod_crowdloan_poke_V1(
- parser_context_t* c, pd_crowdloan_poke_V1_t* m)
-{
- CHECK_ERROR(_readParaId_V1(c, &m->index))
- return parser_ok;
-}
-
-__Z_INLINE parser_error_t _readMethod_crowdloan_contribute_all_V1(
- parser_context_t* c, pd_crowdloan_contribute_all_V1_t* m)
-{
- CHECK_ERROR(_readCompactu32(c, &m->index))
- CHECK_ERROR(_readOptionMultiSignature_V1(c, &m->signature))
- return parser_ok;
+ CHECK_ERROR(_readVecCall(c, &m->calls))
+ return parser_ok;
}
#ifdef SUBSTRATE_PARSER_FULL
-__Z_INLINE parser_error_t _readMethod_system_fill_block_V1(
- parser_context_t* c, pd_system_fill_block_V1_t* m)
-{
- CHECK_ERROR(_readPerbill_V1(c, &m->ratio))
- return parser_ok;
-}
-
+#ifndef TARGET_NANOS
+#endif
__Z_INLINE parser_error_t _readMethod_system_remark_V1(
- parser_context_t* c, pd_system_remark_V1_t* m)
+ parser_context_t* c, pd_system_remark_V1_t* m)
{
- CHECK_ERROR(_readVecu8(c, &m->remark))
- return parser_ok;
+ CHECK_ERROR(_readBytes(c, &m->remark))
+ return parser_ok;
}
__Z_INLINE parser_error_t _readMethod_system_set_heap_pages_V1(
- parser_context_t* c, pd_system_set_heap_pages_V1_t* m)
+ parser_context_t* c, pd_system_set_heap_pages_V1_t* m)
{
- CHECK_ERROR(_readu64(c, &m->pages))
- return parser_ok;
+ CHECK_ERROR(_readu64(c, &m->pages))
+ return parser_ok;
}
__Z_INLINE parser_error_t _readMethod_system_set_code_V1(
- parser_context_t* c, pd_system_set_code_V1_t* m)
+ parser_context_t* c, pd_system_set_code_V1_t* m)
{
- CHECK_ERROR(_readVecu8(c, &m->code))
- return parser_ok;
+ CHECK_ERROR(_readVecu8(c, &m->code))
+ return parser_ok;
}
__Z_INLINE parser_error_t _readMethod_system_set_code_without_checks_V1(
- parser_context_t* c, pd_system_set_code_without_checks_V1_t* m)
+ parser_context_t* c, pd_system_set_code_without_checks_V1_t* m)
{
- CHECK_ERROR(_readVecu8(c, &m->code))
- return parser_ok;
+ CHECK_ERROR(_readVecu8(c, &m->code))
+ return parser_ok;
}
__Z_INLINE parser_error_t _readMethod_system_remark_with_event_V1(
- parser_context_t* c, pd_system_remark_with_event_V1_t* m)
+ parser_context_t* c, pd_system_remark_with_event_V1_t* m)
{
- CHECK_ERROR(_readVecu8(c, &m->remark))
- return parser_ok;
+ CHECK_ERROR(_readBytes(c, &m->remark))
+ return parser_ok;
}
__Z_INLINE parser_error_t _readMethod_timestamp_set_V1(
- parser_context_t* c, pd_timestamp_set_V1_t* m)
-{
- CHECK_ERROR(_readCompactu64(c, &m->now))
- return parser_ok;
-}
-
-__Z_INLINE parser_error_t _readMethod_indices_claim_V1(
- parser_context_t* c, pd_indices_claim_V1_t* m)
-{
- CHECK_ERROR(_readAccountIndex_V1(c, &m->index))
- return parser_ok;
-}
-
-__Z_INLINE parser_error_t _readMethod_indices_transfer_V1(
- parser_context_t* c, pd_indices_transfer_V1_t* m)
-{
- CHECK_ERROR(_readAccountId_V1(c, &m->new_))
- CHECK_ERROR(_readAccountIndex_V1(c, &m->index))
- return parser_ok;
-}
-
-__Z_INLINE parser_error_t _readMethod_indices_free_V1(
- parser_context_t* c, pd_indices_free_V1_t* m)
-{
- CHECK_ERROR(_readAccountIndex_V1(c, &m->index))
- return parser_ok;
-}
-
-__Z_INLINE parser_error_t _readMethod_indices_force_transfer_V1(
- parser_context_t* c, pd_indices_force_transfer_V1_t* m)
-{
- CHECK_ERROR(_readAccountId_V1(c, &m->new_))
- CHECK_ERROR(_readAccountIndex_V1(c, &m->index))
- CHECK_ERROR(_readbool(c, &m->freeze))
- return parser_ok;
-}
-
-__Z_INLINE parser_error_t _readMethod_indices_freeze_V1(
- parser_context_t* c, pd_indices_freeze_V1_t* m)
+ parser_context_t* c, pd_timestamp_set_V1_t* m)
{
- CHECK_ERROR(_readAccountIndex_V1(c, &m->index))
- return parser_ok;
+ CHECK_ERROR(_readCompactu64(c, &m->now))
+ return parser_ok;
}
__Z_INLINE parser_error_t _readMethod_balances_set_balance_V1(
- parser_context_t* c, pd_balances_set_balance_V1_t* m)
+ parser_context_t* c, pd_balances_set_balance_V1_t* m)
{
- CHECK_ERROR(_readLookupasStaticLookupSource_V1(c, &m->who))
- CHECK_ERROR(_readCompactBalance(c, &m->new_free))
- CHECK_ERROR(_readCompactBalance(c, &m->new_reserved))
- return parser_ok;
+ CHECK_ERROR(_readAccountIdLookupOfT(c, &m->who))
+ CHECK_ERROR(_readCompactBalance(c, &m->new_free))
+ CHECK_ERROR(_readCompactBalance(c, &m->new_reserved))
+ return parser_ok;
}
__Z_INLINE parser_error_t _readMethod_balances_force_unreserve_V1(
- parser_context_t* c, pd_balances_force_unreserve_V1_t* m)
+ parser_context_t* c, pd_balances_force_unreserve_V1_t* m)
{
- CHECK_ERROR(_readLookupasStaticLookupSource_V1(c, &m->who))
- CHECK_ERROR(_readBalance(c, &m->amount))
- return parser_ok;
+ CHECK_ERROR(_readAccountIdLookupOfT(c, &m->who))
+ CHECK_ERROR(_readBalance(c, &m->amount))
+ return parser_ok;
}
__Z_INLINE parser_error_t _readMethod_staking_set_validator_count_V1(
- parser_context_t* c, pd_staking_set_validator_count_V1_t* m)
+ parser_context_t* c, pd_staking_set_validator_count_V1_t* m)
{
- CHECK_ERROR(_readCompactu32(c, &m->new_))
- return parser_ok;
+ CHECK_ERROR(_readCompactu32(c, &m->new_))
+ return parser_ok;
}
__Z_INLINE parser_error_t _readMethod_staking_increase_validator_count_V1(
- parser_context_t* c, pd_staking_increase_validator_count_V1_t* m)
+ parser_context_t* c, pd_staking_increase_validator_count_V1_t* m)
{
- CHECK_ERROR(_readCompactu32(c, &m->additional))
- return parser_ok;
+ CHECK_ERROR(_readCompactu32(c, &m->additional))
+ return parser_ok;
+}
+
+__Z_INLINE parser_error_t _readMethod_staking_scale_validator_count_V1(
+ parser_context_t* c, pd_staking_scale_validator_count_V1_t* m)
+{
+ CHECK_ERROR(_readPercent(c, &m->factor))
+ return parser_ok;
}
__Z_INLINE parser_error_t _readMethod_staking_force_no_eras_V1(
- parser_context_t* c, pd_staking_force_no_eras_V1_t* m)
+ parser_context_t* c, pd_staking_force_no_eras_V1_t* m)
{
- return parser_ok;
+ return parser_ok;
}
__Z_INLINE parser_error_t _readMethod_staking_force_new_era_V1(
- parser_context_t* c, pd_staking_force_new_era_V1_t* m)
+ parser_context_t* c, pd_staking_force_new_era_V1_t* m)
{
- return parser_ok;
+ return parser_ok;
}
__Z_INLINE parser_error_t _readMethod_staking_set_invulnerables_V1(
- parser_context_t* c, pd_staking_set_invulnerables_V1_t* m)
+ parser_context_t* c, pd_staking_set_invulnerables_V1_t* m)
{
- CHECK_ERROR(_readVecAccountId_V1(c, &m->invulnerables))
- return parser_ok;
+ CHECK_ERROR(_readVecAccountId(c, &m->invulnerables))
+ return parser_ok;
}
__Z_INLINE parser_error_t _readMethod_staking_force_unstake_V1(
- parser_context_t* c, pd_staking_force_unstake_V1_t* m)
+ parser_context_t* c, pd_staking_force_unstake_V1_t* m)
{
- CHECK_ERROR(_readAccountId_V1(c, &m->stash))
- CHECK_ERROR(_readu32(c, &m->num_slashing_spans))
- return parser_ok;
+ CHECK_ERROR(_readAccountId(c, &m->stash))
+ CHECK_ERROR(_readu32(c, &m->num_slashing_spans))
+ return parser_ok;
}
__Z_INLINE parser_error_t _readMethod_staking_force_new_era_always_V1(
- parser_context_t* c, pd_staking_force_new_era_always_V1_t* m)
-{
- return parser_ok;
-}
-
-__Z_INLINE parser_error_t _readMethod_staking_cancel_deferred_slash_V1(
- parser_context_t* c, pd_staking_cancel_deferred_slash_V1_t* m)
+ parser_context_t* c, pd_staking_force_new_era_always_V1_t* m)
{
- CHECK_ERROR(_readEraIndex_V1(c, &m->era))
- CHECK_ERROR(_readVecu32(c, &m->slash_indices))
- return parser_ok;
+ return parser_ok;
}
-__Z_INLINE parser_error_t _readMethod_staking_set_history_depth_V1(
- parser_context_t* c, pd_staking_set_history_depth_V1_t* m)
+__Z_INLINE parser_error_t _readMethod_staking_reap_stash_V1(
+ parser_context_t* c, pd_staking_reap_stash_V1_t* m)
{
- CHECK_ERROR(_readCompactu32(c, &m->new_history_depth))
- CHECK_ERROR(_readCompactu32(c, &m->era_items_deleted))
- return parser_ok;
+ CHECK_ERROR(_readAccountId(c, &m->stash))
+ CHECK_ERROR(_readu32(c, &m->num_slashing_spans))
+ return parser_ok;
}
-__Z_INLINE parser_error_t _readMethod_staking_reap_stash_V1(
- parser_context_t* c, pd_staking_reap_stash_V1_t* m)
+__Z_INLINE parser_error_t _readMethod_staking_kick_V1(
+ parser_context_t* c, pd_staking_kick_V1_t* m)
{
- CHECK_ERROR(_readAccountId_V1(c, &m->stash))
- CHECK_ERROR(_readu32(c, &m->num_slashing_spans))
- return parser_ok;
+ CHECK_ERROR(_readVecAccountIdLookupOfT(c, &m->who))
+ return parser_ok;
}
-__Z_INLINE parser_error_t _readMethod_staking_kick_V1(
- parser_context_t* c, pd_staking_kick_V1_t* m)
+__Z_INLINE parser_error_t _readMethod_staking_set_staking_configs_V1(
+ parser_context_t* c, pd_staking_set_staking_configs_V1_t* m)
{
- CHECK_ERROR(_readVecLookupasStaticLookupSource_V1(c, &m->who))
- return parser_ok;
+ CHECK_ERROR(_readConfigOpBalanceOfT(c, &m->min_nominator_bond))
+ CHECK_ERROR(_readConfigOpBalanceOfT(c, &m->min_validator_bond))
+ CHECK_ERROR(_readConfigOpu32(c, &m->max_nominator_count))
+ CHECK_ERROR(_readConfigOpu32(c, &m->max_validator_count))
+ CHECK_ERROR(_readConfigOpPercent(c, &m->chill_threshold))
+ CHECK_ERROR(_readConfigOpPerbill(c, &m->min_commission))
+ return parser_ok;
}
__Z_INLINE parser_error_t _readMethod_staking_chill_other_V1(
- parser_context_t* c, pd_staking_chill_other_V1_t* m)
+ parser_context_t* c, pd_staking_chill_other_V1_t* m)
{
- CHECK_ERROR(_readAccountId_V1(c, &m->controller))
- return parser_ok;
+ CHECK_ERROR(_readAccountId(c, &m->controller))
+ return parser_ok;
}
__Z_INLINE parser_error_t _readMethod_staking_force_apply_min_commission_V1(
- parser_context_t* c, pd_staking_force_apply_min_commission_V1_t* m)
+ parser_context_t* c, pd_staking_force_apply_min_commission_V1_t* m)
{
- CHECK_ERROR(_readAccountId_V1(c, &m->validator_stash))
- return parser_ok;
+ CHECK_ERROR(_readAccountId(c, &m->validator_stash))
+ return parser_ok;
}
-__Z_INLINE parser_error_t _readMethod_grandpa_note_stalled_V1(
- parser_context_t* c, pd_grandpa_note_stalled_V1_t* m)
+__Z_INLINE parser_error_t _readMethod_council_set_members_V1(
+ parser_context_t* c, pd_council_set_members_V1_t* m)
{
- CHECK_ERROR(_readBlockNumber(c, &m->delay))
- CHECK_ERROR(_readBlockNumber(c, &m->best_finalized_block_number))
- return parser_ok;
+ CHECK_ERROR(_readVecAccountId(c, &m->new_members))
+ CHECK_ERROR(_readOptionAccountId(c, &m->prime))
+ CHECK_ERROR(_readMemberCount(c, &m->old_count))
+ return parser_ok;
}
-__Z_INLINE parser_error_t _readMethod_democracy_propose_V1(
- parser_context_t* c, pd_democracy_propose_V1_t* m)
+__Z_INLINE parser_error_t _readMethod_council_execute_V1(
+ parser_context_t* c, pd_council_execute_V1_t* m)
{
- CHECK_ERROR(_readHash(c, &m->proposal_hash))
- CHECK_ERROR(_readCompactBalance(c, &m->amount))
- return parser_ok;
+ CHECK_ERROR(_readProposal(c, &m->proposal))
+ CHECK_ERROR(_readCompactu32(c, &m->length_bound))
+ return parser_ok;
}
-__Z_INLINE parser_error_t _readMethod_democracy_second_V1(
- parser_context_t* c, pd_democracy_second_V1_t* m)
+__Z_INLINE parser_error_t _readMethod_council_propose_V1(
+ parser_context_t* c, pd_council_propose_V1_t* m)
{
- CHECK_ERROR(_readCompactu32(c, &m->proposal))
- CHECK_ERROR(_readCompactu32(c, &m->seconds_upper_bound))
- return parser_ok;
+ CHECK_ERROR(_readCompactu32(c, &m->threshold))
+ CHECK_ERROR(_readProposal(c, &m->proposal))
+ CHECK_ERROR(_readCompactu32(c, &m->length_bound))
+ return parser_ok;
}
-__Z_INLINE parser_error_t _readMethod_democracy_vote_V1(
- parser_context_t* c, pd_democracy_vote_V1_t* m)
+__Z_INLINE parser_error_t _readMethod_council_vote_V1(
+ parser_context_t* c, pd_council_vote_V1_t* m)
{
- CHECK_ERROR(_readCompactu32(c, &m->ref_index))
- CHECK_ERROR(_readAccountVote_V1(c, &m->vote))
- return parser_ok;
+ CHECK_ERROR(_readHash(c, &m->proposal))
+ CHECK_ERROR(_readCompactu32(c, &m->index))
+ CHECK_ERROR(_readbool(c, &m->approve))
+ return parser_ok;
}
-__Z_INLINE parser_error_t _readMethod_democracy_emergency_cancel_V1(
- parser_context_t* c, pd_democracy_emergency_cancel_V1_t* m)
+__Z_INLINE parser_error_t _readMethod_council_close_old_weight_V1(
+ parser_context_t* c, pd_council_close_old_weight_V1_t* m)
{
- CHECK_ERROR(_readReferendumIndex_V1(c, &m->ref_index))
- return parser_ok;
+ CHECK_ERROR(_readHash(c, &m->proposal_hash))
+ CHECK_ERROR(_readCompactu32(c, &m->index))
+ CHECK_ERROR(_readCompactu64(c, &m->proposal_weight_bound))
+ CHECK_ERROR(_readCompactu32(c, &m->length_bound))
+ return parser_ok;
}
-__Z_INLINE parser_error_t _readMethod_democracy_external_propose_V1(
- parser_context_t* c, pd_democracy_external_propose_V1_t* m)
+__Z_INLINE parser_error_t _readMethod_council_disapprove_proposal_V1(
+ parser_context_t* c, pd_council_disapprove_proposal_V1_t* m)
{
- CHECK_ERROR(_readHash(c, &m->proposal_hash))
- return parser_ok;
+ CHECK_ERROR(_readHash(c, &m->proposal_hash))
+ return parser_ok;
}
-__Z_INLINE parser_error_t _readMethod_democracy_external_propose_majority_V1(
- parser_context_t* c, pd_democracy_external_propose_majority_V1_t* m)
+__Z_INLINE parser_error_t _readMethod_council_close_V1(
+ parser_context_t* c, pd_council_close_V1_t* m)
{
- CHECK_ERROR(_readHash(c, &m->proposal_hash))
- return parser_ok;
+ CHECK_ERROR(_readHash(c, &m->proposal_hash))
+ CHECK_ERROR(_readCompactu32(c, &m->index))
+ CHECK_ERROR(_readWeight(c, &m->proposal_weight_bound))
+ CHECK_ERROR(_readCompactu32(c, &m->length_bound))
+ return parser_ok;
}
-__Z_INLINE parser_error_t _readMethod_democracy_external_propose_default_V1(
- parser_context_t* c, pd_democracy_external_propose_default_V1_t* m)
+__Z_INLINE parser_error_t _readMethod_technicalcommittee_set_members_V1(
+ parser_context_t* c, pd_technicalcommittee_set_members_V1_t* m)
{
- CHECK_ERROR(_readHash(c, &m->proposal_hash))
- return parser_ok;
+ CHECK_ERROR(_readVecAccountId(c, &m->new_members))
+ CHECK_ERROR(_readOptionAccountId(c, &m->prime))
+ CHECK_ERROR(_readMemberCount(c, &m->old_count))
+ return parser_ok;
}
-__Z_INLINE parser_error_t _readMethod_democracy_fast_track_V1(
- parser_context_t* c, pd_democracy_fast_track_V1_t* m)
+__Z_INLINE parser_error_t _readMethod_technicalcommittee_execute_V1(
+ parser_context_t* c, pd_technicalcommittee_execute_V1_t* m)
{
- CHECK_ERROR(_readHash(c, &m->proposal_hash))
- CHECK_ERROR(_readBlockNumber(c, &m->voting_period))
- CHECK_ERROR(_readBlockNumber(c, &m->delay))
- return parser_ok;
+ CHECK_ERROR(_readProposal(c, &m->proposal))
+ CHECK_ERROR(_readCompactu32(c, &m->length_bound))
+ return parser_ok;
}
-__Z_INLINE parser_error_t _readMethod_democracy_veto_external_V1(
- parser_context_t* c, pd_democracy_veto_external_V1_t* m)
+__Z_INLINE parser_error_t _readMethod_technicalcommittee_propose_V1(
+ parser_context_t* c, pd_technicalcommittee_propose_V1_t* m)
{
- CHECK_ERROR(_readHash(c, &m->proposal_hash))
- return parser_ok;
+ CHECK_ERROR(_readCompactu32(c, &m->threshold))
+ CHECK_ERROR(_readProposal(c, &m->proposal))
+ CHECK_ERROR(_readCompactu32(c, &m->length_bound))
+ return parser_ok;
}
-__Z_INLINE parser_error_t _readMethod_democracy_cancel_referendum_V1(
- parser_context_t* c, pd_democracy_cancel_referendum_V1_t* m)
+__Z_INLINE parser_error_t _readMethod_technicalcommittee_vote_V1(
+ parser_context_t* c, pd_technicalcommittee_vote_V1_t* m)
{
- CHECK_ERROR(_readCompactu32(c, &m->ref_index))
- return parser_ok;
+ CHECK_ERROR(_readHash(c, &m->proposal))
+ CHECK_ERROR(_readCompactu32(c, &m->index))
+ CHECK_ERROR(_readbool(c, &m->approve))
+ return parser_ok;
}
-__Z_INLINE parser_error_t _readMethod_democracy_cancel_queued_V1(
- parser_context_t* c, pd_democracy_cancel_queued_V1_t* m)
+__Z_INLINE parser_error_t _readMethod_technicalcommittee_close_old_weight_V1(
+ parser_context_t* c, pd_technicalcommittee_close_old_weight_V1_t* m)
{
- CHECK_ERROR(_readReferendumIndex_V1(c, &m->which))
- return parser_ok;
+ CHECK_ERROR(_readHash(c, &m->proposal_hash))
+ CHECK_ERROR(_readCompactu32(c, &m->index))
+ CHECK_ERROR(_readCompactu64(c, &m->proposal_weight_bound))
+ CHECK_ERROR(_readCompactu32(c, &m->length_bound))
+ return parser_ok;
}
-__Z_INLINE parser_error_t _readMethod_democracy_delegate_V1(
- parser_context_t* c, pd_democracy_delegate_V1_t* m)
+__Z_INLINE parser_error_t _readMethod_technicalcommittee_disapprove_proposal_V1(
+ parser_context_t* c, pd_technicalcommittee_disapprove_proposal_V1_t* m)
{
- CHECK_ERROR(_readAccountId_V1(c, &m->to))
- CHECK_ERROR(_readConviction_V1(c, &m->conviction))
- CHECK_ERROR(_readBalance(c, &m->balance))
- return parser_ok;
+ CHECK_ERROR(_readHash(c, &m->proposal_hash))
+ return parser_ok;
}
-__Z_INLINE parser_error_t _readMethod_democracy_undelegate_V1(
- parser_context_t* c, pd_democracy_undelegate_V1_t* m)
+__Z_INLINE parser_error_t _readMethod_technicalcommittee_close_V1(
+ parser_context_t* c, pd_technicalcommittee_close_V1_t* m)
{
- return parser_ok;
+ CHECK_ERROR(_readHash(c, &m->proposal_hash))
+ CHECK_ERROR(_readCompactu32(c, &m->index))
+ CHECK_ERROR(_readWeight(c, &m->proposal_weight_bound))
+ CHECK_ERROR(_readCompactu32(c, &m->length_bound))
+ return parser_ok;
}
-__Z_INLINE parser_error_t _readMethod_democracy_clear_public_proposals_V1(
- parser_context_t* c, pd_democracy_clear_public_proposals_V1_t* m)
+__Z_INLINE parser_error_t _readMethod_phragmenelection_vote_V1(
+ parser_context_t* c, pd_phragmenelection_vote_V1_t* m)
{
- return parser_ok;
+ CHECK_ERROR(_readVecAccountId(c, &m->votes))
+ CHECK_ERROR(_readCompactBalance(c, &m->amount))
+ return parser_ok;
}
-__Z_INLINE parser_error_t _readMethod_democracy_note_preimage_V1(
- parser_context_t* c, pd_democracy_note_preimage_V1_t* m)
+__Z_INLINE parser_error_t _readMethod_phragmenelection_remove_voter_V1(
+ parser_context_t* c, pd_phragmenelection_remove_voter_V1_t* m)
{
- CHECK_ERROR(_readBytes(c, &m->encoded_proposal))
- return parser_ok;
+ return parser_ok;
}
-__Z_INLINE parser_error_t _readMethod_democracy_note_preimage_operational_V1(
- parser_context_t* c, pd_democracy_note_preimage_operational_V1_t* m)
+__Z_INLINE parser_error_t _readMethod_phragmenelection_submit_candidacy_V1(
+ parser_context_t* c, pd_phragmenelection_submit_candidacy_V1_t* m)
{
- CHECK_ERROR(_readBytes(c, &m->encoded_proposal))
- return parser_ok;
+ CHECK_ERROR(_readCompactu32(c, &m->candidate_count))
+ return parser_ok;
}
-__Z_INLINE parser_error_t _readMethod_democracy_note_imminent_preimage_V1(
- parser_context_t* c, pd_democracy_note_imminent_preimage_V1_t* m)
+__Z_INLINE parser_error_t _readMethod_phragmenelection_remove_member_V1(
+ parser_context_t* c, pd_phragmenelection_remove_member_V1_t* m)
{
- CHECK_ERROR(_readBytes(c, &m->encoded_proposal))
- return parser_ok;
+ CHECK_ERROR(_readAccountIdLookupOfT(c, &m->who))
+ CHECK_ERROR(_readbool(c, &m->slash_bond))
+ CHECK_ERROR(_readbool(c, &m->rerun_election))
+ return parser_ok;
}
-__Z_INLINE parser_error_t _readMethod_democracy_note_imminent_preimage_operational_V1(
- parser_context_t* c, pd_democracy_note_imminent_preimage_operational_V1_t* m)
+__Z_INLINE parser_error_t _readMethod_phragmenelection_clean_defunct_voters_V1(
+ parser_context_t* c, pd_phragmenelection_clean_defunct_voters_V1_t* m)
{
- CHECK_ERROR(_readBytes(c, &m->encoded_proposal))
- return parser_ok;
+ CHECK_ERROR(_readu32(c, &m->num_voters))
+ CHECK_ERROR(_readu32(c, &m->num_defunct))
+ return parser_ok;
}
-__Z_INLINE parser_error_t _readMethod_democracy_reap_preimage_V1(
- parser_context_t* c, pd_democracy_reap_preimage_V1_t* m)
+__Z_INLINE parser_error_t _readMethod_technicalmembership_add_member_V1(
+ parser_context_t* c, pd_technicalmembership_add_member_V1_t* m)
{
- CHECK_ERROR(_readHash(c, &m->proposal_hash))
- CHECK_ERROR(_readCompactu32(c, &m->proposal_len_upper_bound))
- return parser_ok;
+ CHECK_ERROR(_readAccountIdLookupOfT(c, &m->who))
+ return parser_ok;
}
-__Z_INLINE parser_error_t _readMethod_democracy_unlock_V1(
- parser_context_t* c, pd_democracy_unlock_V1_t* m)
+__Z_INLINE parser_error_t _readMethod_technicalmembership_remove_member_V1(
+ parser_context_t* c, pd_technicalmembership_remove_member_V1_t* m)
{
- CHECK_ERROR(_readAccountId_V1(c, &m->target))
- return parser_ok;
+ CHECK_ERROR(_readAccountIdLookupOfT(c, &m->who))
+ return parser_ok;
}
-__Z_INLINE parser_error_t _readMethod_democracy_remove_vote_V1(
- parser_context_t* c, pd_democracy_remove_vote_V1_t* m)
+__Z_INLINE parser_error_t _readMethod_technicalmembership_swap_member_V1(
+ parser_context_t* c, pd_technicalmembership_swap_member_V1_t* m)
{
- CHECK_ERROR(_readReferendumIndex_V1(c, &m->index))
- return parser_ok;
+ CHECK_ERROR(_readAccountIdLookupOfT(c, &m->remove))
+ CHECK_ERROR(_readAccountIdLookupOfT(c, &m->add))
+ return parser_ok;
}
-__Z_INLINE parser_error_t _readMethod_democracy_remove_other_vote_V1(
- parser_context_t* c, pd_democracy_remove_other_vote_V1_t* m)
+__Z_INLINE parser_error_t _readMethod_technicalmembership_reset_members_V1(
+ parser_context_t* c, pd_technicalmembership_reset_members_V1_t* m)
{
- CHECK_ERROR(_readAccountId_V1(c, &m->target))
- CHECK_ERROR(_readReferendumIndex_V1(c, &m->index))
- return parser_ok;
+ CHECK_ERROR(_readVecAccountId(c, &m->members))
+ return parser_ok;
}
-__Z_INLINE parser_error_t _readMethod_democracy_enact_proposal_V1(
- parser_context_t* c, pd_democracy_enact_proposal_V1_t* m)
+__Z_INLINE parser_error_t _readMethod_technicalmembership_change_key_V1(
+ parser_context_t* c, pd_technicalmembership_change_key_V1_t* m)
{
- CHECK_ERROR(_readHash(c, &m->proposal_hash))
- CHECK_ERROR(_readReferendumIndex_V1(c, &m->index))
- return parser_ok;
+ CHECK_ERROR(_readAccountIdLookupOfT(c, &m->new_))
+ return parser_ok;
}
-__Z_INLINE parser_error_t _readMethod_democracy_cancel_proposal_V1(
- parser_context_t* c, pd_democracy_cancel_proposal_V1_t* m)
+__Z_INLINE parser_error_t _readMethod_technicalmembership_set_prime_V1(
+ parser_context_t* c, pd_technicalmembership_set_prime_V1_t* m)
{
- CHECK_ERROR(_readCompactu32(c, &m->prop_index))
- return parser_ok;
+ CHECK_ERROR(_readAccountIdLookupOfT(c, &m->who))
+ return parser_ok;
}
-__Z_INLINE parser_error_t _readMethod_council_set_members_V1(
- parser_context_t* c, pd_council_set_members_V1_t* m)
+__Z_INLINE parser_error_t _readMethod_technicalmembership_clear_prime_V1(
+ parser_context_t* c, pd_technicalmembership_clear_prime_V1_t* m)
{
- CHECK_ERROR(_readVecAccountId_V1(c, &m->new_members))
- CHECK_ERROR(_readOptionAccountId_V1(c, &m->prime))
- CHECK_ERROR(_readMemberCount_V1(c, &m->old_count))
- return parser_ok;
+ return parser_ok;
}
-__Z_INLINE parser_error_t _readMethod_council_execute_V1(
- parser_context_t* c, pd_council_execute_V1_t* m)
+__Z_INLINE parser_error_t _readMethod_mandate_mandate_V1(
+ parser_context_t* c, pd_mandate_mandate_V1_t* m)
{
- CHECK_ERROR(_readProposal(c, &m->proposal))
- CHECK_ERROR(_readCompactu32(c, &m->length_bound))
+ CHECK_ERROR(_readCall(c, &m->call))
return parser_ok;
}
-__Z_INLINE parser_error_t _readMethod_council_propose_V1(
- parser_context_t* c, pd_council_propose_V1_t* m)
+__Z_INLINE parser_error_t _readMethod_treasury_propose_spend_V1(
+ parser_context_t* c, pd_treasury_propose_spend_V1_t* m)
{
- CHECK_ERROR(_readCompactu32(c, &m->threshold))
- CHECK_ERROR(_readProposal(c, &m->proposal))
- CHECK_ERROR(_readCompactu32(c, &m->length_bound))
- return parser_ok;
+ CHECK_ERROR(_readCompactBalance(c, &m->amount))
+ CHECK_ERROR(_readAccountIdLookupOfT(c, &m->beneficiary))
+ return parser_ok;
}
-__Z_INLINE parser_error_t _readMethod_council_vote_V1(
- parser_context_t* c, pd_council_vote_V1_t* m)
+__Z_INLINE parser_error_t _readMethod_treasury_reject_proposal_V1(
+ parser_context_t* c, pd_treasury_reject_proposal_V1_t* m)
{
- CHECK_ERROR(_readHash(c, &m->proposal))
- CHECK_ERROR(_readCompactu32(c, &m->index))
- CHECK_ERROR(_readbool(c, &m->approve))
- return parser_ok;
+ CHECK_ERROR(_readCompactu32(c, &m->proposal_id))
+ return parser_ok;
}
-__Z_INLINE parser_error_t _readMethod_council_close_V1(
- parser_context_t* c, pd_council_close_V1_t* m)
+__Z_INLINE parser_error_t _readMethod_treasury_approve_proposal_V1(
+ parser_context_t* c, pd_treasury_approve_proposal_V1_t* m)
{
- CHECK_ERROR(_readHash(c, &m->proposal_hash))
- CHECK_ERROR(_readCompactu32(c, &m->index))
- CHECK_ERROR(_readCompactu64(c, &m->proposal_weight_bound))
- CHECK_ERROR(_readCompactu32(c, &m->length_bound))
- return parser_ok;
+ CHECK_ERROR(_readCompactu32(c, &m->proposal_id))
+ return parser_ok;
}
-__Z_INLINE parser_error_t _readMethod_council_disapprove_proposal_V1(
- parser_context_t* c, pd_council_disapprove_proposal_V1_t* m)
+__Z_INLINE parser_error_t _readMethod_treasury_spend_V1(
+ parser_context_t* c, pd_treasury_spend_V1_t* m)
{
- CHECK_ERROR(_readHash(c, &m->proposal_hash))
- return parser_ok;
+ CHECK_ERROR(_readCompactBalance(c, &m->amount))
+ CHECK_ERROR(_readAccountIdLookupOfT(c, &m->beneficiary))
+ return parser_ok;
}
-__Z_INLINE parser_error_t _readMethod_technicalcommittee_set_members_V1(
- parser_context_t* c, pd_technicalcommittee_set_members_V1_t* m)
+__Z_INLINE parser_error_t _readMethod_treasury_remove_approval_V1(
+ parser_context_t* c, pd_treasury_remove_approval_V1_t* m)
{
- CHECK_ERROR(_readVecAccountId_V1(c, &m->new_members))
- CHECK_ERROR(_readOptionAccountId_V1(c, &m->prime))
- CHECK_ERROR(_readMemberCount_V1(c, &m->old_count))
- return parser_ok;
+ CHECK_ERROR(_readCompactu32(c, &m->proposal_id))
+ return parser_ok;
}
-__Z_INLINE parser_error_t _readMethod_technicalcommittee_execute_V1(
- parser_context_t* c, pd_technicalcommittee_execute_V1_t* m)
+__Z_INLINE parser_error_t _readMethod_identity_add_registrar_V1(
+ parser_context_t* c, pd_identity_add_registrar_V1_t* m)
{
- CHECK_ERROR(_readProposal(c, &m->proposal))
- CHECK_ERROR(_readCompactu32(c, &m->length_bound))
- return parser_ok;
+ CHECK_ERROR(_readAccountIdLookupOfT(c, &m->account))
+ return parser_ok;
}
-__Z_INLINE parser_error_t _readMethod_technicalcommittee_propose_V1(
- parser_context_t* c, pd_technicalcommittee_propose_V1_t* m)
+__Z_INLINE parser_error_t _readMethod_identity_set_identity_V1(
+ parser_context_t* c, pd_identity_set_identity_V1_t* m)
{
- CHECK_ERROR(_readCompactu32(c, &m->threshold))
- CHECK_ERROR(_readProposal(c, &m->proposal))
- CHECK_ERROR(_readCompactu32(c, &m->length_bound))
- return parser_ok;
+ CHECK_ERROR(_readIdentityInfo(c, &m->info))
+ return parser_ok;
}
-__Z_INLINE parser_error_t _readMethod_technicalcommittee_vote_V1(
- parser_context_t* c, pd_technicalcommittee_vote_V1_t* m)
+__Z_INLINE parser_error_t _readMethod_identity_set_subs_V1(
+ parser_context_t* c, pd_identity_set_subs_V1_t* m)
{
- CHECK_ERROR(_readHash(c, &m->proposal))
- CHECK_ERROR(_readCompactu32(c, &m->index))
- CHECK_ERROR(_readbool(c, &m->approve))
- return parser_ok;
+ CHECK_ERROR(_readVecTupleAccountIdData(c, &m->subs))
+ return parser_ok;
}
-__Z_INLINE parser_error_t _readMethod_technicalcommittee_close_V1(
- parser_context_t* c, pd_technicalcommittee_close_V1_t* m)
+__Z_INLINE parser_error_t _readMethod_identity_clear_identity_V1(
+ parser_context_t* c, pd_identity_clear_identity_V1_t* m)
{
- CHECK_ERROR(_readHash(c, &m->proposal_hash))
- CHECK_ERROR(_readCompactu32(c, &m->index))
- CHECK_ERROR(_readCompactu64(c, &m->proposal_weight_bound))
- CHECK_ERROR(_readCompactu32(c, &m->length_bound))
- return parser_ok;
+ return parser_ok;
}
-__Z_INLINE parser_error_t _readMethod_technicalcommittee_disapprove_proposal_V1(
- parser_context_t* c, pd_technicalcommittee_disapprove_proposal_V1_t* m)
+__Z_INLINE parser_error_t _readMethod_identity_request_judgement_V1(
+ parser_context_t* c, pd_identity_request_judgement_V1_t* m)
{
- CHECK_ERROR(_readHash(c, &m->proposal_hash))
- return parser_ok;
+ CHECK_ERROR(_readCompactu32(c, &m->reg_index))
+ CHECK_ERROR(_readCompactu128(c, &m->max_fee))
+ return parser_ok;
}
-__Z_INLINE parser_error_t _readMethod_phragmenelection_vote_V1(
- parser_context_t* c, pd_phragmenelection_vote_V1_t* m)
+__Z_INLINE parser_error_t _readMethod_identity_cancel_request_V1(
+ parser_context_t* c, pd_identity_cancel_request_V1_t* m)
{
- CHECK_ERROR(_readVecAccountId_V1(c, &m->votes))
- CHECK_ERROR(_readCompactu128(c, &m->amount))
- return parser_ok;
+ CHECK_ERROR(_readRegistrarIndex(c, &m->reg_index))
+ return parser_ok;
}
-__Z_INLINE parser_error_t _readMethod_phragmenelection_remove_voter_V1(
- parser_context_t* c, pd_phragmenelection_remove_voter_V1_t* m)
+__Z_INLINE parser_error_t _readMethod_identity_set_fee_V1(
+ parser_context_t* c, pd_identity_set_fee_V1_t* m)
{
- return parser_ok;
+ CHECK_ERROR(_readCompactu32(c, &m->index))
+ CHECK_ERROR(_readCompactu128(c, &m->fee))
+ return parser_ok;
}
-__Z_INLINE parser_error_t _readMethod_phragmenelection_submit_candidacy_V1(
- parser_context_t* c, pd_phragmenelection_submit_candidacy_V1_t* m)
+__Z_INLINE parser_error_t _readMethod_identity_set_account_id_V1(
+ parser_context_t* c, pd_identity_set_account_id_V1_t* m)
{
- CHECK_ERROR(_readCompactu32(c, &m->candidate_count))
- return parser_ok;
+ CHECK_ERROR(_readCompactu32(c, &m->index))
+ CHECK_ERROR(_readAccountIdLookupOfT(c, &m->new_))
+ return parser_ok;
}
-__Z_INLINE parser_error_t _readMethod_phragmenelection_remove_member_V1(
- parser_context_t* c, pd_phragmenelection_remove_member_V1_t* m)
+__Z_INLINE parser_error_t _readMethod_identity_provide_judgement_V1(
+ parser_context_t* c, pd_identity_provide_judgement_V1_t* m)
{
- CHECK_ERROR(_readLookupasStaticLookupSource_V1(c, &m->who))
- CHECK_ERROR(_readbool(c, &m->slash_bond))
- CHECK_ERROR(_readbool(c, &m->rerun_election))
- return parser_ok;
+ CHECK_ERROR(_readCompactu32(c, &m->reg_index))
+ CHECK_ERROR(_readAccountIdLookupOfT(c, &m->target))
+ CHECK_ERROR(_readJudgementBalanceOfT(c, &m->judgement))
+ CHECK_ERROR(_readHash(c, &m->identity))
+ return parser_ok;
}
-__Z_INLINE parser_error_t _readMethod_phragmenelection_clean_defunct_voters_V1(
- parser_context_t* c, pd_phragmenelection_clean_defunct_voters_V1_t* m)
+__Z_INLINE parser_error_t _readMethod_identity_kill_identity_V1(
+ parser_context_t* c, pd_identity_kill_identity_V1_t* m)
{
- CHECK_ERROR(_readu32(c, &m->num_voters))
- CHECK_ERROR(_readu32(c, &m->num_defunct))
- return parser_ok;
+ CHECK_ERROR(_readAccountIdLookupOfT(c, &m->target))
+ return parser_ok;
}
-__Z_INLINE parser_error_t _readMethod_technicalmembership_add_member_V1(
- parser_context_t* c, pd_technicalmembership_add_member_V1_t* m)
+__Z_INLINE parser_error_t _readMethod_identity_add_sub_V1(
+ parser_context_t* c, pd_identity_add_sub_V1_t* m)
{
- CHECK_ERROR(_readAccountId_V1(c, &m->who))
- return parser_ok;
+ CHECK_ERROR(_readAccountIdLookupOfT(c, &m->sub))
+ CHECK_ERROR(_readData(c, &m->data))
+ return parser_ok;
}
-__Z_INLINE parser_error_t _readMethod_technicalmembership_remove_member_V1(
- parser_context_t* c, pd_technicalmembership_remove_member_V1_t* m)
+__Z_INLINE parser_error_t _readMethod_identity_rename_sub_V1(
+ parser_context_t* c, pd_identity_rename_sub_V1_t* m)
{
- CHECK_ERROR(_readAccountId_V1(c, &m->who))
- return parser_ok;
+ CHECK_ERROR(_readAccountIdLookupOfT(c, &m->sub))
+ CHECK_ERROR(_readData(c, &m->data))
+ return parser_ok;
}
-__Z_INLINE parser_error_t _readMethod_technicalmembership_swap_member_V1(
- parser_context_t* c, pd_technicalmembership_swap_member_V1_t* m)
+__Z_INLINE parser_error_t _readMethod_identity_remove_sub_V1(
+ parser_context_t* c, pd_identity_remove_sub_V1_t* m)
{
- CHECK_ERROR(_readAccountId_V1(c, &m->remove))
- CHECK_ERROR(_readAccountId_V1(c, &m->add))
- return parser_ok;
+ CHECK_ERROR(_readAccountIdLookupOfT(c, &m->sub))
+ return parser_ok;
}
-__Z_INLINE parser_error_t _readMethod_technicalmembership_reset_members_V1(
- parser_context_t* c, pd_technicalmembership_reset_members_V1_t* m)
+__Z_INLINE parser_error_t _readMethod_identity_quit_sub_V1(
+ parser_context_t* c, pd_identity_quit_sub_V1_t* m)
{
- CHECK_ERROR(_readVecAccountId_V1(c, &m->members))
- return parser_ok;
+ return parser_ok;
}
-__Z_INLINE parser_error_t _readMethod_technicalmembership_change_key_V1(
- parser_context_t* c, pd_technicalmembership_change_key_V1_t* m)
+__Z_INLINE parser_error_t _readMethod_multisig_as_multi_threshold_1_V1(
+ parser_context_t* c, pd_multisig_as_multi_threshold_1_V1_t* m)
{
- CHECK_ERROR(_readAccountId_V1(c, &m->new_))
- return parser_ok;
+ CHECK_ERROR(_readVecAccountId(c, &m->other_signatories))
+ CHECK_ERROR(_readCall(c, &m->call))
+ return parser_ok;
}
-__Z_INLINE parser_error_t _readMethod_technicalmembership_set_prime_V1(
- parser_context_t* c, pd_technicalmembership_set_prime_V1_t* m)
+__Z_INLINE parser_error_t _readMethod_multisig_as_multi_V1(
+ parser_context_t* c, pd_multisig_as_multi_V1_t* m)
{
- CHECK_ERROR(_readAccountId_V1(c, &m->who))
- return parser_ok;
+ CHECK_ERROR(_readu16(c, &m->threshold))
+ CHECK_ERROR(_readVecAccountId(c, &m->other_signatories))
+ CHECK_ERROR(_readOptionTimepoint(c, &m->maybe_timepoint))
+ CHECK_ERROR(_readCall(c, &m->call))
+ CHECK_ERROR(_readWeight(c, &m->max_weight))
+ return parser_ok;
}
-__Z_INLINE parser_error_t _readMethod_technicalmembership_clear_prime_V1(
- parser_context_t* c, pd_technicalmembership_clear_prime_V1_t* m)
+__Z_INLINE parser_error_t _readMethod_multisig_approve_as_multi_V1(
+ parser_context_t* c, pd_multisig_approve_as_multi_V1_t* m)
{
- return parser_ok;
+ CHECK_ERROR(_readu16(c, &m->threshold))
+ CHECK_ERROR(_readVecAccountId(c, &m->other_signatories))
+ CHECK_ERROR(_readOptionTimepoint(c, &m->maybe_timepoint))
+ CHECK_ERROR(_readH256(c, &m->call_hash))
+ CHECK_ERROR(_readWeight(c, &m->max_weight))
+ return parser_ok;
}
-__Z_INLINE parser_error_t _readMethod_treasury_propose_spend_V1(
- parser_context_t* c, pd_treasury_propose_spend_V1_t* m)
+__Z_INLINE parser_error_t _readMethod_multisig_cancel_as_multi_V1(
+ parser_context_t* c, pd_multisig_cancel_as_multi_V1_t* m)
{
- CHECK_ERROR(_readCompactBalance(c, &m->amount))
- CHECK_ERROR(_readLookupasStaticLookupSource_V1(c, &m->beneficiary))
- return parser_ok;
+ CHECK_ERROR(_readu16(c, &m->threshold))
+ CHECK_ERROR(_readVecAccountId(c, &m->other_signatories))
+ CHECK_ERROR(_readTimepoint(c, &m->timepoint))
+ CHECK_ERROR(_readH256(c, &m->call_hash))
+ return parser_ok;
}
-__Z_INLINE parser_error_t _readMethod_treasury_reject_proposal_V1(
- parser_context_t* c, pd_treasury_reject_proposal_V1_t* m)
-{
- CHECK_ERROR(_readCompactu32(c, &m->proposal_id))
- return parser_ok;
-}
+#endif
-__Z_INLINE parser_error_t _readMethod_treasury_approve_proposal_V1(
- parser_context_t* c, pd_treasury_approve_proposal_V1_t* m)
-{
- CHECK_ERROR(_readCompactu32(c, &m->proposal_id))
- return parser_ok;
-}
+parser_error_t _readMethod_V1(
+ parser_context_t* c,
+ uint8_t moduleIdx,
+ uint8_t callIdx,
+ pd_Method_V1_t* method)
+{
+ uint16_t callPrivIdx = ((uint16_t)moduleIdx << 8u) + callIdx;
+
+ switch (callPrivIdx) {
+
+case 1024: /* module 04 call 00 pallet:balances call:transfer */
+ CHECK_ERROR(_readMethod_balances_transfer_V1(c, &method->nested.balances_transfer_V1))
+ break;
+case 1026: /* module 04 call 02 pallet:balances call:force_transfer */
+ CHECK_ERROR(_readMethod_balances_force_transfer_V1(c, &method->nested.balances_force_transfer_V1))
+ break;
+case 1027: /* module 04 call 03 pallet:balances call:transfer_keep_alive */
+ CHECK_ERROR(_readMethod_balances_transfer_keep_alive_V1(c, &method->nested.balances_transfer_keep_alive_V1))
+ break;
+case 1028: /* module 04 call 04 pallet:balances call:transfer_all */
+ CHECK_ERROR(_readMethod_balances_transfer_all_V1(c, &method->basic.balances_transfer_all_V1))
+ break;
+case 3328: /* module 13 call 00 pallet:staking call:bond */
+ CHECK_ERROR(_readMethod_staking_bond_V1(c, &method->nested.staking_bond_V1))
+ break;
+case 3329: /* module 13 call 01 pallet:staking call:bond_extra */
+ CHECK_ERROR(_readMethod_staking_bond_extra_V1(c, &method->basic.staking_bond_extra_V1))
+ break;
+case 3330: /* module 13 call 02 pallet:staking call:unbond */
+ CHECK_ERROR(_readMethod_staking_unbond_V1(c, &method->nested.staking_unbond_V1))
+ break;
+case 3331: /* module 13 call 03 pallet:staking call:withdraw_unbonded */
+ CHECK_ERROR(_readMethod_staking_withdraw_unbonded_V1(c, &method->basic.staking_withdraw_unbonded_V1))
+ break;
+case 3332: /* module 13 call 04 pallet:staking call:validate */
+ CHECK_ERROR(_readMethod_staking_validate_V1(c, &method->basic.staking_validate_V1))
+ break;
+case 3333: /* module 13 call 05 pallet:staking call:nominate */
+ CHECK_ERROR(_readMethod_staking_nominate_V1(c, &method->nested.staking_nominate_V1))
+ break;
+case 3334: /* module 13 call 06 pallet:staking call:chill */
+ CHECK_ERROR(_readMethod_staking_chill_V1(c, &method->nested.staking_chill_V1))
+ break;
+case 3335: /* module 13 call 07 pallet:staking call:set_payee */
+ CHECK_ERROR(_readMethod_staking_set_payee_V1(c, &method->basic.staking_set_payee_V1))
+ break;
+case 3336: /* module 13 call 08 pallet:staking call:set_controller */
+ CHECK_ERROR(_readMethod_staking_set_controller_V1(c, &method->nested.staking_set_controller_V1))
+ break;
+case 3346: /* module 13 call 18 pallet:staking call:payout_stakers */
+ CHECK_ERROR(_readMethod_staking_payout_stakers_V1(c, &method->basic.staking_payout_stakers_V1))
+ break;
+case 3347: /* module 13 call 19 pallet:staking call:rebond */
+ CHECK_ERROR(_readMethod_staking_rebond_V1(c, &method->basic.staking_rebond_V1))
+ break;
+case 2304: /* module 09 call 00 pallet:session call:set_keys */
+ CHECK_ERROR(_readMethod_session_set_keys_V1(c, &method->basic.session_set_keys_V1))
+ break;
+case 2305: /* module 09 call 01 pallet:session call:purge_keys */
+ CHECK_ERROR(_readMethod_session_purge_keys_V1(c, &method->basic.session_purge_keys_V1))
+ break;
+case 5376: /* module 21 call 00 pallet:utility call:batch */
+ CHECK_ERROR(_readMethod_utility_batch_V1(c, &method->basic.utility_batch_V1))
+ break;
+case 5378: /* module 21 call 02 pallet:utility call:batch_all */
+ CHECK_ERROR(_readMethod_utility_batch_all_V1(c, &method->basic.utility_batch_all_V1))
+ break;
+case 5380: /* module 21 call 04 pallet:utility call:force_batch */
+ CHECK_ERROR(_readMethod_utility_force_batch_V1(c, &method->basic.utility_force_batch_V1))
+ break;
-__Z_INLINE parser_error_t _readMethod_treasury_spend_V1(
- parser_context_t* c, pd_treasury_spend_V1_t* m)
-{
- CHECK_ERROR(_readCompactBalance(c, &m->amount))
- CHECK_ERROR(_readLookupasStaticLookupSource_V1(c, &m->beneficiary))
- return parser_ok;
-}
+#ifdef SUBSTRATE_PARSER_FULL
+#ifndef TARGET_NANOS
+#endif
+case 1: /* module 00 call 01 pallet:system call:remark */
+ CHECK_ERROR(_readMethod_system_remark_V1(c, &method->nested.system_remark_V1))
+ break;
+case 2: /* module 00 call 02 pallet:system call:set_heap_pages */
+ CHECK_ERROR(_readMethod_system_set_heap_pages_V1(c, &method->nested.system_set_heap_pages_V1))
+ break;
+case 3: /* module 00 call 03 pallet:system call:set_code */
+ CHECK_ERROR(_readMethod_system_set_code_V1(c, &method->nested.system_set_code_V1))
+ break;
+case 4: /* module 00 call 04 pallet:system call:set_code_without_checks */
+ CHECK_ERROR(_readMethod_system_set_code_without_checks_V1(c, &method->nested.system_set_code_without_checks_V1))
+ break;
+case 8: /* module 00 call 08 pallet:system call:remark_with_event */
+ CHECK_ERROR(_readMethod_system_remark_with_event_V1(c, &method->nested.system_remark_with_event_V1))
+ break;
+case 768: /* module 03 call 00 pallet:timestamp call:set */
+ CHECK_ERROR(_readMethod_timestamp_set_V1(c, &method->basic.timestamp_set_V1))
+ break;
+case 1025: /* module 04 call 01 pallet:balances call:set_balance */
+ CHECK_ERROR(_readMethod_balances_set_balance_V1(c, &method->nested.balances_set_balance_V1))
+ break;
+case 1029: /* module 04 call 05 pallet:balances call:force_unreserve */
+ CHECK_ERROR(_readMethod_balances_force_unreserve_V1(c, &method->basic.balances_force_unreserve_V1))
+ break;
+case 3337: /* module 13 call 09 pallet:staking call:set_validator_count */
+ CHECK_ERROR(_readMethod_staking_set_validator_count_V1(c, &method->basic.staking_set_validator_count_V1))
+ break;
+case 3338: /* module 13 call 10 pallet:staking call:increase_validator_count */
+ CHECK_ERROR(_readMethod_staking_increase_validator_count_V1(c, &method->basic.staking_increase_validator_count_V1))
+ break;
+case 3339: /* module 13 call 11 pallet:staking call:scale_validator_count */
+ CHECK_ERROR(_readMethod_staking_scale_validator_count_V1(c, &method->basic.staking_scale_validator_count_V1))
+ break;
+case 3340: /* module 13 call 12 pallet:staking call:force_no_eras */
+ CHECK_ERROR(_readMethod_staking_force_no_eras_V1(c, &method->basic.staking_force_no_eras_V1))
+ break;
+case 3341: /* module 13 call 13 pallet:staking call:force_new_era */
+ CHECK_ERROR(_readMethod_staking_force_new_era_V1(c, &method->basic.staking_force_new_era_V1))
+ break;
+case 3342: /* module 13 call 14 pallet:staking call:set_invulnerables */
+ CHECK_ERROR(_readMethod_staking_set_invulnerables_V1(c, &method->basic.staking_set_invulnerables_V1))
+ break;
+case 3343: /* module 13 call 15 pallet:staking call:force_unstake */
+ CHECK_ERROR(_readMethod_staking_force_unstake_V1(c, &method->basic.staking_force_unstake_V1))
+ break;
+case 3344: /* module 13 call 16 pallet:staking call:force_new_era_always */
+ CHECK_ERROR(_readMethod_staking_force_new_era_always_V1(c, &method->basic.staking_force_new_era_always_V1))
+ break;
+case 3348: /* module 13 call 20 pallet:staking call:reap_stash */
+ CHECK_ERROR(_readMethod_staking_reap_stash_V1(c, &method->basic.staking_reap_stash_V1))
+ break;
+case 3349: /* module 13 call 21 pallet:staking call:kick */
+ CHECK_ERROR(_readMethod_staking_kick_V1(c, &method->basic.staking_kick_V1))
+ break;
+case 3350: /* module 13 call 22 pallet:staking call:set_staking_configs */
+ CHECK_ERROR(_readMethod_staking_set_staking_configs_V1(c, &method->basic.staking_set_staking_configs_V1))
+ break;
+case 3351: /* module 13 call 23 pallet:staking call:chill_other */
+ CHECK_ERROR(_readMethod_staking_chill_other_V1(c, &method->basic.staking_chill_other_V1))
+ break;
+case 3352: /* module 13 call 24 pallet:staking call:force_apply_min_commission */
+ CHECK_ERROR(_readMethod_staking_force_apply_min_commission_V1(c, &method->basic.staking_force_apply_min_commission_V1))
+ break;
+case 6144: /* module 24 call 00 pallet:council call:set_members */
+ CHECK_ERROR(_readMethod_council_set_members_V1(c, &method->basic.council_set_members_V1))
+ break;
+case 6145: /* module 24 call 01 pallet:council call:execute */
+ CHECK_ERROR(_readMethod_council_execute_V1(c, &method->basic.council_execute_V1))
+ break;
+case 6146: /* module 24 call 02 pallet:council call:propose */
+ CHECK_ERROR(_readMethod_council_propose_V1(c, &method->basic.council_propose_V1))
+ break;
+case 6147: /* module 24 call 03 pallet:council call:vote */
+ CHECK_ERROR(_readMethod_council_vote_V1(c, &method->basic.council_vote_V1))
+ break;
+case 6148: /* module 24 call 04 pallet:council call:close_old_weight */
+ CHECK_ERROR(_readMethod_council_close_old_weight_V1(c, &method->basic.council_close_old_weight_V1))
+ break;
+case 6149: /* module 24 call 05 pallet:council call:disapprove_proposal */
+ CHECK_ERROR(_readMethod_council_disapprove_proposal_V1(c, &method->basic.council_disapprove_proposal_V1))
+ break;
+case 6150: /* module 24 call 06 pallet:council call:close */
+ CHECK_ERROR(_readMethod_council_close_V1(c, &method->basic.council_close_V1))
+ break;
+case 4352: /* module 17 call 00 pallet:technicalcommittee call:set_members */
+ CHECK_ERROR(_readMethod_technicalcommittee_set_members_V1(c, &method->basic.technicalcommittee_set_members_V1))
+ break;
+case 4353: /* module 17 call 01 pallet:technicalcommittee call:execute */
+ CHECK_ERROR(_readMethod_technicalcommittee_execute_V1(c, &method->basic.technicalcommittee_execute_V1))
+ break;
+case 4354: /* module 17 call 02 pallet:technicalcommittee call:propose */
+ CHECK_ERROR(_readMethod_technicalcommittee_propose_V1(c, &method->basic.technicalcommittee_propose_V1))
+ break;
+case 4355: /* module 17 call 03 pallet:technicalcommittee call:vote */
+ CHECK_ERROR(_readMethod_technicalcommittee_vote_V1(c, &method->basic.technicalcommittee_vote_V1))
+ break;
+case 4356: /* module 17 call 04 pallet:technicalcommittee call:close_old_weight */
+ CHECK_ERROR(_readMethod_technicalcommittee_close_old_weight_V1(c, &method->basic.technicalcommittee_close_old_weight_V1))
+ break;
+case 4357: /* module 17 call 05 pallet:technicalcommittee call:disapprove_proposal */
+ CHECK_ERROR(_readMethod_technicalcommittee_disapprove_proposal_V1(c, &method->basic.technicalcommittee_disapprove_proposal_V1))
+ break;
+case 4358: /* module 17 call 06 pallet:technicalcommittee call:close */
+ CHECK_ERROR(_readMethod_technicalcommittee_close_V1(c, &method->basic.technicalcommittee_close_V1))
+ break;
+case 6400: /* module 25 call 00 pallet:phragmenelection call:vote */
+ CHECK_ERROR(_readMethod_phragmenelection_vote_V1(c, &method->basic.phragmenelection_vote_V1))
+ break;
+case 6401: /* module 25 call 01 pallet:phragmenelection call:remove_voter */
+ CHECK_ERROR(_readMethod_phragmenelection_remove_voter_V1(c, &method->basic.phragmenelection_remove_voter_V1))
+ break;
+case 6402: /* module 25 call 02 pallet:phragmenelection call:submit_candidacy */
+ CHECK_ERROR(_readMethod_phragmenelection_submit_candidacy_V1(c, &method->basic.phragmenelection_submit_candidacy_V1))
+ break;
+case 6404: /* module 25 call 04 pallet:phragmenelection call:remove_member */
+ CHECK_ERROR(_readMethod_phragmenelection_remove_member_V1(c, &method->basic.phragmenelection_remove_member_V1))
+ break;
+case 6405: /* module 25 call 05 pallet:phragmenelection call:clean_defunct_voters */
+ CHECK_ERROR(_readMethod_phragmenelection_clean_defunct_voters_V1(c, &method->basic.phragmenelection_clean_defunct_voters_V1))
+ break;
+case 4608: /* module 18 call 00 pallet:technicalmembership call:add_member */
+ CHECK_ERROR(_readMethod_technicalmembership_add_member_V1(c, &method->basic.technicalmembership_add_member_V1))
+ break;
+case 4609: /* module 18 call 01 pallet:technicalmembership call:remove_member */
+ CHECK_ERROR(_readMethod_technicalmembership_remove_member_V1(c, &method->basic.technicalmembership_remove_member_V1))
+ break;
+case 4610: /* module 18 call 02 pallet:technicalmembership call:swap_member */
+ CHECK_ERROR(_readMethod_technicalmembership_swap_member_V1(c, &method->basic.technicalmembership_swap_member_V1))
+ break;
+case 4611: /* module 18 call 03 pallet:technicalmembership call:reset_members */
+ CHECK_ERROR(_readMethod_technicalmembership_reset_members_V1(c, &method->basic.technicalmembership_reset_members_V1))
+ break;
+case 4612: /* module 18 call 04 pallet:technicalmembership call:change_key */
+ CHECK_ERROR(_readMethod_technicalmembership_change_key_V1(c, &method->basic.technicalmembership_change_key_V1))
+ break;
+case 4613: /* module 18 call 05 pallet:technicalmembership call:set_prime */
+ CHECK_ERROR(_readMethod_technicalmembership_set_prime_V1(c, &method->basic.technicalmembership_set_prime_V1))
+ break;
+case 4614: /* module 18 call 06 pallet:technicalmembership call:clear_prime */
+ CHECK_ERROR(_readMethod_technicalmembership_clear_prime_V1(c, &method->basic.technicalmembership_clear_prime_V1))
+ break;
+case 4864: /* module 19 call 00 pallet:mandate call:mandate */
+ CHECK_ERROR(_readMethod_mandate_mandate_V1(c, &method->nested.mandate_mandate_V1))
+ break;
+case 5120: /* module 20 call 00 pallet:treasury call:propose_spend */
+ CHECK_ERROR(_readMethod_treasury_propose_spend_V1(c, &method->basic.treasury_propose_spend_V1))
+ break;
+case 5121: /* module 20 call 01 pallet:treasury call:reject_proposal */
+ CHECK_ERROR(_readMethod_treasury_reject_proposal_V1(c, &method->basic.treasury_reject_proposal_V1))
+ break;
+case 5122: /* module 20 call 02 pallet:treasury call:approve_proposal */
+ CHECK_ERROR(_readMethod_treasury_approve_proposal_V1(c, &method->basic.treasury_approve_proposal_V1))
+ break;
+case 5123: /* module 20 call 03 pallet:treasury call:spend */
+ CHECK_ERROR(_readMethod_treasury_spend_V1(c, &method->basic.treasury_spend_V1))
+ break;
+case 5124: /* module 20 call 04 pallet:treasury call:remove_approval */
+ CHECK_ERROR(_readMethod_treasury_remove_approval_V1(c, &method->basic.treasury_remove_approval_V1))
+ break;
+case 7168: /* module 28 call 00 pallet:identity call:add_registrar */
+ CHECK_ERROR(_readMethod_identity_add_registrar_V1(c, &method->basic.identity_add_registrar_V1))
+ break;
+case 7169: /* module 28 call 01 pallet:identity call:set_identity */
+ CHECK_ERROR(_readMethod_identity_set_identity_V1(c, &method->basic.identity_set_identity_V1))
+ break;
+case 7170: /* module 28 call 02 pallet:identity call:set_subs */
+ CHECK_ERROR(_readMethod_identity_set_subs_V1(c, &method->basic.identity_set_subs_V1))
+ break;
+case 7171: /* module 28 call 03 pallet:identity call:clear_identity */
+ CHECK_ERROR(_readMethod_identity_clear_identity_V1(c, &method->basic.identity_clear_identity_V1))
+ break;
+case 7172: /* module 28 call 04 pallet:identity call:request_judgement */
+ CHECK_ERROR(_readMethod_identity_request_judgement_V1(c, &method->basic.identity_request_judgement_V1))
+ break;
+case 7173: /* module 28 call 05 pallet:identity call:cancel_request */
+ CHECK_ERROR(_readMethod_identity_cancel_request_V1(c, &method->basic.identity_cancel_request_V1))
+ break;
+case 7174: /* module 28 call 06 pallet:identity call:set_fee */
+ CHECK_ERROR(_readMethod_identity_set_fee_V1(c, &method->basic.identity_set_fee_V1))
+ break;
+case 7175: /* module 28 call 07 pallet:identity call:set_account_id */
+ CHECK_ERROR(_readMethod_identity_set_account_id_V1(c, &method->basic.identity_set_account_id_V1))
+ break;
+case 7177: /* module 28 call 09 pallet:identity call:provide_judgement */
+ CHECK_ERROR(_readMethod_identity_provide_judgement_V1(c, &method->basic.identity_provide_judgement_V1))
+ break;
+case 7178: /* module 28 call 10 pallet:identity call:kill_identity */
+ CHECK_ERROR(_readMethod_identity_kill_identity_V1(c, &method->basic.identity_kill_identity_V1))
+ break;
+case 7179: /* module 28 call 11 pallet:identity call:add_sub */
+ CHECK_ERROR(_readMethod_identity_add_sub_V1(c, &method->basic.identity_add_sub_V1))
+ break;
+case 7180: /* module 28 call 12 pallet:identity call:rename_sub */
+ CHECK_ERROR(_readMethod_identity_rename_sub_V1(c, &method->basic.identity_rename_sub_V1))
+ break;
+case 7181: /* module 28 call 13 pallet:identity call:remove_sub */
+ CHECK_ERROR(_readMethod_identity_remove_sub_V1(c, &method->basic.identity_remove_sub_V1))
+ break;
+case 7182: /* module 28 call 14 pallet:identity call:quit_sub */
+ CHECK_ERROR(_readMethod_identity_quit_sub_V1(c, &method->basic.identity_quit_sub_V1))
+ break;
+case 6912: /* module 27 call 00 pallet:multisig call:as_multi_threshold_1 */
+ CHECK_ERROR(_readMethod_multisig_as_multi_threshold_1_V1(c, &method->nested.multisig_as_multi_threshold_1_V1))
+ break;
+case 6913: /* module 27 call 01 pallet:multisig call:as_multi */
+ CHECK_ERROR(_readMethod_multisig_as_multi_V1(c, &method->nested.multisig_as_multi_V1))
+ break;
+case 6914: /* module 27 call 02 pallet:multisig call:approve_as_multi */
+ CHECK_ERROR(_readMethod_multisig_approve_as_multi_V1(c, &method->nested.multisig_approve_as_multi_V1))
+ break;
+case 6915: /* module 27 call 03 pallet:multisig call:cancel_as_multi */
+ CHECK_ERROR(_readMethod_multisig_cancel_as_multi_V1(c, &method->nested.multisig_cancel_as_multi_V1))
+ break;
+#endif
+ default:
+ return parser_unexpected_callIndex;
+ }
-__Z_INLINE parser_error_t _readMethod_treasury_remove_approval_V1(
- parser_context_t* c, pd_treasury_remove_approval_V1_t* m)
-{
- CHECK_ERROR(_readCompactu32(c, &m->proposal_id))
- return parser_ok;
+ return parser_ok;
}
-__Z_INLINE parser_error_t _readMethod_claims_claim_V1(
- parser_context_t* c, pd_claims_claim_V1_t* m)
+/////////////////////////////////////////////////////////////////////////////////
+/////////////////////////////////////////////////////////////////////////////////
+/////////////////////////////////////////////////////////////////////////////////
+/////////////////////////////////////////////////////////////////////////////////
+
+const char* _getMethod_ModuleName_V1(uint8_t moduleIdx)
{
- CHECK_ERROR(_readAccountId_V1(c, &m->dest))
- CHECK_ERROR(_readEcdsaSignature_V1(c, &m->ethereum_signature))
- return parser_ok;
-}
-
-__Z_INLINE parser_error_t _readMethod_claims_claim_attest_V1(
- parser_context_t* c, pd_claims_claim_attest_V1_t* m)
-{
- CHECK_ERROR(_readAccountId_V1(c, &m->dest))
- CHECK_ERROR(_readEcdsaSignature_V1(c, &m->ethereum_signature))
- CHECK_ERROR(_readBytes(c, &m->statement))
- return parser_ok;
-}
-
-__Z_INLINE parser_error_t _readMethod_claims_attest_V1(
- parser_context_t* c, pd_claims_attest_V1_t* m)
-{
- CHECK_ERROR(_readBytes(c, &m->statement))
- return parser_ok;
-}
-
-__Z_INLINE parser_error_t _readMethod_claims_move_claim_V1(
- parser_context_t* c, pd_claims_move_claim_V1_t* m)
-{
- CHECK_ERROR(_readEthereumAddress_V1(c, &m->old))
- CHECK_ERROR(_readEthereumAddress_V1(c, &m->new_))
- CHECK_ERROR(_readOptionAccountId_V1(c, &m->maybe_preclaim))
- return parser_ok;
-}
-
-__Z_INLINE parser_error_t _readMethod_identity_add_registrar_V1(
- parser_context_t* c, pd_identity_add_registrar_V1_t* m)
-{
- CHECK_ERROR(_readAccountId_V1(c, &m->account))
- return parser_ok;
-}
-
-__Z_INLINE parser_error_t _readMethod_identity_clear_identity_V1(
- parser_context_t* c, pd_identity_clear_identity_V1_t* m)
-{
- return parser_ok;
-}
-
-__Z_INLINE parser_error_t _readMethod_identity_request_judgement_V1(
- parser_context_t* c, pd_identity_request_judgement_V1_t* m)
-{
- CHECK_ERROR(_readCompactu32(c, &m->reg_index))
- CHECK_ERROR(_readCompactu128(c, &m->max_fee))
- return parser_ok;
-}
-
-__Z_INLINE parser_error_t _readMethod_identity_cancel_request_V1(
- parser_context_t* c, pd_identity_cancel_request_V1_t* m)
-{
- CHECK_ERROR(_readRegistrarIndex_V1(c, &m->reg_index))
- return parser_ok;
-}
-
-__Z_INLINE parser_error_t _readMethod_identity_set_fee_V1(
- parser_context_t* c, pd_identity_set_fee_V1_t* m)
-{
- CHECK_ERROR(_readCompactu32(c, &m->index))
- CHECK_ERROR(_readCompactu128(c, &m->fee))
- return parser_ok;
-}
-
-__Z_INLINE parser_error_t _readMethod_identity_set_account_id_V1(
- parser_context_t* c, pd_identity_set_account_id_V1_t* m)
-{
- CHECK_ERROR(_readCompactu32(c, &m->index))
- CHECK_ERROR(_readAccountId_V1(c, &m->new_))
- return parser_ok;
-}
-
-__Z_INLINE parser_error_t _readMethod_identity_kill_identity_V1(
- parser_context_t* c, pd_identity_kill_identity_V1_t* m)
-{
- CHECK_ERROR(_readLookupasStaticLookupSource_V1(c, &m->target))
- return parser_ok;
-}
-
-__Z_INLINE parser_error_t _readMethod_identity_remove_sub_V1(
- parser_context_t* c, pd_identity_remove_sub_V1_t* m)
-{
- CHECK_ERROR(_readLookupasStaticLookupSource_V1(c, &m->sub))
- return parser_ok;
-}
-
-__Z_INLINE parser_error_t _readMethod_identity_quit_sub_V1(
- parser_context_t* c, pd_identity_quit_sub_V1_t* m)
-{
- return parser_ok;
-}
-
-__Z_INLINE parser_error_t _readMethod_society_bid_V1(
- parser_context_t* c, pd_society_bid_V1_t* m)
-{
- CHECK_ERROR(_readBalanceOf(c, &m->amount))
- return parser_ok;
-}
-
-__Z_INLINE parser_error_t _readMethod_society_unbid_V1(
- parser_context_t* c, pd_society_unbid_V1_t* m)
-{
- CHECK_ERROR(_readu32(c, &m->pos))
- return parser_ok;
-}
-
-__Z_INLINE parser_error_t _readMethod_society_vouch_V1(
- parser_context_t* c, pd_society_vouch_V1_t* m)
-{
- CHECK_ERROR(_readAccountId_V1(c, &m->who))
- CHECK_ERROR(_readBalanceOf(c, &m->amount))
- CHECK_ERROR(_readBalanceOf(c, &m->tip))
- return parser_ok;
-}
-
-__Z_INLINE parser_error_t _readMethod_society_unvouch_V1(
- parser_context_t* c, pd_society_unvouch_V1_t* m)
-{
- CHECK_ERROR(_readu32(c, &m->pos))
- return parser_ok;
-}
-
-__Z_INLINE parser_error_t _readMethod_society_vote_V1(
- parser_context_t* c, pd_society_vote_V1_t* m)
-{
- CHECK_ERROR(_readLookupasStaticLookupSource_V1(c, &m->candidate))
- CHECK_ERROR(_readbool(c, &m->approve))
- return parser_ok;
-}
-
-__Z_INLINE parser_error_t _readMethod_society_defender_vote_V1(
- parser_context_t* c, pd_society_defender_vote_V1_t* m)
-{
- CHECK_ERROR(_readbool(c, &m->approve))
- return parser_ok;
-}
-
-__Z_INLINE parser_error_t _readMethod_society_payout_V1(
- parser_context_t* c, pd_society_payout_V1_t* m)
-{
- return parser_ok;
-}
-
-__Z_INLINE parser_error_t _readMethod_society_found_V1(
- parser_context_t* c, pd_society_found_V1_t* m)
-{
- CHECK_ERROR(_readAccountId_V1(c, &m->founder))
- CHECK_ERROR(_readu32(c, &m->max_members))
- CHECK_ERROR(_readBytes(c, &m->rules))
- return parser_ok;
-}
-
-__Z_INLINE parser_error_t _readMethod_society_unfound_V1(
- parser_context_t* c, pd_society_unfound_V1_t* m)
-{
- return parser_ok;
-}
-
-__Z_INLINE parser_error_t _readMethod_society_judge_suspended_member_V1(
- parser_context_t* c, pd_society_judge_suspended_member_V1_t* m)
-{
- CHECK_ERROR(_readAccountId_V1(c, &m->who))
- CHECK_ERROR(_readbool(c, &m->forgive))
- return parser_ok;
-}
-
-__Z_INLINE parser_error_t _readMethod_society_set_max_members_V1(
- parser_context_t* c, pd_society_set_max_members_V1_t* m)
-{
- CHECK_ERROR(_readu32(c, &m->max))
- return parser_ok;
-}
-
-__Z_INLINE parser_error_t _readMethod_recovery_set_recovered_V1(
- parser_context_t* c, pd_recovery_set_recovered_V1_t* m)
-{
- CHECK_ERROR(_readAccountId_V1(c, &m->lost))
- CHECK_ERROR(_readAccountId_V1(c, &m->rescuer))
- return parser_ok;
-}
-
-__Z_INLINE parser_error_t _readMethod_recovery_initiate_recovery_V1(
- parser_context_t* c, pd_recovery_initiate_recovery_V1_t* m)
-{
- CHECK_ERROR(_readAccountId_V1(c, &m->account))
- return parser_ok;
-}
-
-__Z_INLINE parser_error_t _readMethod_recovery_vouch_recovery_V1(
- parser_context_t* c, pd_recovery_vouch_recovery_V1_t* m)
-{
- CHECK_ERROR(_readAccountId_V1(c, &m->lost))
- CHECK_ERROR(_readAccountId_V1(c, &m->rescuer))
- return parser_ok;
-}
-
-__Z_INLINE parser_error_t _readMethod_recovery_claim_recovery_V1(
- parser_context_t* c, pd_recovery_claim_recovery_V1_t* m)
-{
- CHECK_ERROR(_readAccountId_V1(c, &m->account))
- return parser_ok;
-}
-
-__Z_INLINE parser_error_t _readMethod_recovery_close_recovery_V1(
- parser_context_t* c, pd_recovery_close_recovery_V1_t* m)
-{
- CHECK_ERROR(_readAccountId_V1(c, &m->rescuer))
- return parser_ok;
-}
-
-__Z_INLINE parser_error_t _readMethod_recovery_remove_recovery_V1(
- parser_context_t* c, pd_recovery_remove_recovery_V1_t* m)
-{
- return parser_ok;
-}
-
-__Z_INLINE parser_error_t _readMethod_recovery_cancel_recovered_V1(
- parser_context_t* c, pd_recovery_cancel_recovered_V1_t* m)
-{
- CHECK_ERROR(_readAccountId_V1(c, &m->account))
- return parser_ok;
-}
-
-__Z_INLINE parser_error_t _readMethod_vesting_vest_V1(
- parser_context_t* c, pd_vesting_vest_V1_t* m)
-{
- return parser_ok;
-}
-
-__Z_INLINE parser_error_t _readMethod_vesting_vest_other_V1(
- parser_context_t* c, pd_vesting_vest_other_V1_t* m)
-{
- CHECK_ERROR(_readLookupasStaticLookupSource_V1(c, &m->target))
- return parser_ok;
-}
-
-__Z_INLINE parser_error_t _readMethod_vesting_vested_transfer_V1(
- parser_context_t* c, pd_vesting_vested_transfer_V1_t* m)
-{
- CHECK_ERROR(_readLookupasStaticLookupSource_V1(c, &m->target))
- CHECK_ERROR(_readVestingInfo_V1(c, &m->schedule))
- return parser_ok;
-}
-
-__Z_INLINE parser_error_t _readMethod_vesting_force_vested_transfer_V1(
- parser_context_t* c, pd_vesting_force_vested_transfer_V1_t* m)
-{
- CHECK_ERROR(_readLookupasStaticLookupSource_V1(c, &m->source))
- CHECK_ERROR(_readLookupasStaticLookupSource_V1(c, &m->target))
- CHECK_ERROR(_readVestingInfo_V1(c, &m->schedule))
- return parser_ok;
-}
-
-__Z_INLINE parser_error_t _readMethod_vesting_merge_schedules_V1(
- parser_context_t* c, pd_vesting_merge_schedules_V1_t* m)
-{
- CHECK_ERROR(_readu32(c, &m->schedule1_index))
- CHECK_ERROR(_readu32(c, &m->schedule2_index))
- return parser_ok;
-}
-
-__Z_INLINE parser_error_t _readMethod_proxy_proxy_V1(
- parser_context_t* c, pd_proxy_proxy_V1_t* m)
-{
- CHECK_ERROR(_readAccountId_V1(c, &m->real))
- CHECK_ERROR(_readOptionProxyType_V1(c, &m->force_proxy_type))
- CHECK_ERROR(_readCall(c, &m->call))
- return parser_ok;
-}
-
-__Z_INLINE parser_error_t _readMethod_proxy_add_proxy_V1(
- parser_context_t* c, pd_proxy_add_proxy_V1_t* m)
-{
- CHECK_ERROR(_readAccountId_V1(c, &m->delegate))
- CHECK_ERROR(_readProxyType_V1(c, &m->proxy_type))
- CHECK_ERROR(_readBlockNumber(c, &m->delay))
- return parser_ok;
-}
-
-__Z_INLINE parser_error_t _readMethod_proxy_remove_proxy_V1(
- parser_context_t* c, pd_proxy_remove_proxy_V1_t* m)
-{
- CHECK_ERROR(_readAccountId_V1(c, &m->delegate))
- CHECK_ERROR(_readProxyType_V1(c, &m->proxy_type))
- CHECK_ERROR(_readBlockNumber(c, &m->delay))
- return parser_ok;
-}
+ switch (moduleIdx) {
+ case 4:
+ return STR_MO_BALANCES;
+ case 9:
+ return STR_MO_SESSION;
+ case 13:
+ return STR_MO_STAKING;
+ case 21:
+ return STR_MO_UTILITY;
-__Z_INLINE parser_error_t _readMethod_proxy_remove_proxies_V1(
- parser_context_t* c, pd_proxy_remove_proxies_V1_t* m)
-{
- return parser_ok;
-}
+#ifdef SUBSTRATE_PARSER_FULL
+ case 0:
+ return STR_MO_SYSTEM;
+ case 3:
+ return STR_MO_TIMESTAMP;
+ case 17:
+ return STR_MO_TECHNICALCOMMITTEE;
+ case 18:
+ return STR_MO_TECHNICALMEMBERSHIP;
+ case 19:
+ return STR_MO_MANDATE;
+ case 20:
+ return STR_MO_TREASURY;
+ case 24:
+ return STR_MO_COUNCIL;
+ case 25:
+ return STR_MO_PHRAGMENELECTION;
+ case 27:
+ return STR_MO_MULTISIG;
+ case 28:
+ return STR_MO_IDENTITY;
-__Z_INLINE parser_error_t _readMethod_proxy_anonymous_V1(
- parser_context_t* c, pd_proxy_anonymous_V1_t* m)
-{
- CHECK_ERROR(_readProxyType_V1(c, &m->proxy_type))
- CHECK_ERROR(_readBlockNumber(c, &m->delay))
- CHECK_ERROR(_readu16(c, &m->index))
- return parser_ok;
-}
+#endif
+ default:
+ return NULL;
+ }
-__Z_INLINE parser_error_t _readMethod_proxy_kill_anonymous_V1(
- parser_context_t* c, pd_proxy_kill_anonymous_V1_t* m)
-{
- CHECK_ERROR(_readAccountId_V1(c, &m->spawner))
- CHECK_ERROR(_readProxyType_V1(c, &m->proxy_type))
- CHECK_ERROR(_readu16(c, &m->index))
- CHECK_ERROR(_readCompactu32(c, &m->height))
- CHECK_ERROR(_readCompactu32(c, &m->ext_index))
- return parser_ok;
+ return NULL;
}
-__Z_INLINE parser_error_t _readMethod_proxy_proxy_announced_V1(
- parser_context_t* c, pd_proxy_proxy_announced_V1_t* m)
+const char* _getMethod_Name_V1(uint8_t moduleIdx, uint8_t callIdx)
{
- CHECK_ERROR(_readAccountId_V1(c, &m->delegate))
- CHECK_ERROR(_readAccountId_V1(c, &m->real))
- CHECK_ERROR(_readOptionProxyType_V1(c, &m->force_proxy_type))
- CHECK_ERROR(_readCall(c, &m->call))
- return parser_ok;
+ uint16_t callPrivIdx = ((uint16_t)moduleIdx << 8u) + callIdx;
+
+ switch (callPrivIdx) {
+case 1024: /* module 04 call 00 pallet:balances call:transfer */
+ return STR_ME_TRANSFER;
+case 1026: /* module 04 call 02 pallet:balances call:force_transfer */
+ return STR_ME_FORCE_TRANSFER;
+case 1027: /* module 04 call 03 pallet:balances call:transfer_keep_alive */
+ return STR_ME_TRANSFER_KEEP_ALIVE;
+case 1028: /* module 04 call 04 pallet:balances call:transfer_all */
+ return STR_ME_TRANSFER_ALL;
+case 3328: /* module 13 call 00 pallet:staking call:bond */
+ return STR_ME_BOND;
+case 3329: /* module 13 call 01 pallet:staking call:bond_extra */
+ return STR_ME_BOND_EXTRA;
+case 3330: /* module 13 call 02 pallet:staking call:unbond */
+ return STR_ME_UNBOND;
+case 3331: /* module 13 call 03 pallet:staking call:withdraw_unbonded */
+ return STR_ME_WITHDRAW_UNBONDED;
+case 3332: /* module 13 call 04 pallet:staking call:validate */
+ return STR_ME_VALIDATE;
+case 3333: /* module 13 call 05 pallet:staking call:nominate */
+ return STR_ME_NOMINATE;
+case 3334: /* module 13 call 06 pallet:staking call:chill */
+ return STR_ME_CHILL;
+case 3335: /* module 13 call 07 pallet:staking call:set_payee */
+ return STR_ME_SET_PAYEE;
+case 3336: /* module 13 call 08 pallet:staking call:set_controller */
+ return STR_ME_SET_CONTROLLER;
+case 3346: /* module 13 call 18 pallet:staking call:payout_stakers */
+ return STR_ME_PAYOUT_STAKERS;
+case 3347: /* module 13 call 19 pallet:staking call:rebond */
+ return STR_ME_REBOND;
+case 2304: /* module 09 call 00 pallet:session call:set_keys */
+ return STR_ME_SET_KEYS;
+case 2305: /* module 09 call 01 pallet:session call:purge_keys */
+ return STR_ME_PURGE_KEYS;
+case 5376: /* module 21 call 00 pallet:utility call:batch */
+ return STR_ME_BATCH;
+case 5378: /* module 21 call 02 pallet:utility call:batch_all */
+ return STR_ME_BATCH_ALL;
+case 5380: /* module 21 call 04 pallet:utility call:force_batch */
+ return STR_ME_FORCE_BATCH;
+ default:
+ return _getMethod_Name_V1_ParserFull(callPrivIdx);
+ }
+
+ return NULL;
}
-__Z_INLINE parser_error_t _readMethod_multisig_as_multi_threshold_1_V1(
- parser_context_t* c, pd_multisig_as_multi_threshold_1_V1_t* m)
+const char* _getMethod_Name_V1_ParserFull(uint16_t callPrivIdx)
{
- CHECK_ERROR(_readVecAccountId_V1(c, &m->other_signatories))
- CHECK_ERROR(_readCall(c, &m->call))
- return parser_ok;
-}
+ switch (callPrivIdx) {
+#ifdef SUBSTRATE_PARSER_FULL
+#ifndef TARGET_NANOS
+#endif
+case 1: /* module 00 call 01 pallet:system call:remark */
+ return STR_ME_REMARK;
+case 2: /* module 00 call 02 pallet:system call:set_heap_pages */
+ return STR_ME_SET_HEAP_PAGES;
+case 3: /* module 00 call 03 pallet:system call:set_code */
+ return STR_ME_SET_CODE;
+case 4: /* module 00 call 04 pallet:system call:set_code_without_checks */
+ return STR_ME_SET_CODE_WITHOUT_CHECKS;
+case 8: /* module 00 call 08 pallet:system call:remark_with_event */
+ return STR_ME_REMARK_WITH_EVENT;
+case 768: /* module 03 call 00 pallet:timestamp call:set */
+ return STR_ME_SET;
+case 1025: /* module 04 call 01 pallet:balances call:set_balance */
+ return STR_ME_SET_BALANCE;
+case 1029: /* module 04 call 05 pallet:balances call:force_unreserve */
+ return STR_ME_FORCE_UNRESERVE;
+case 3337: /* module 13 call 09 pallet:staking call:set_validator_count */
+ return STR_ME_SET_VALIDATOR_COUNT;
+case 3338: /* module 13 call 10 pallet:staking call:increase_validator_count */
+ return STR_ME_INCREASE_VALIDATOR_COUNT;
+case 3339: /* module 13 call 11 pallet:staking call:scale_validator_count */
+ return STR_ME_SCALE_VALIDATOR_COUNT;
+case 3340: /* module 13 call 12 pallet:staking call:force_no_eras */
+ return STR_ME_FORCE_NO_ERAS;
+case 3341: /* module 13 call 13 pallet:staking call:force_new_era */
+ return STR_ME_FORCE_NEW_ERA;
+case 3342: /* module 13 call 14 pallet:staking call:set_invulnerables */
+ return STR_ME_SET_INVULNERABLES;
+case 3343: /* module 13 call 15 pallet:staking call:force_unstake */
+ return STR_ME_FORCE_UNSTAKE;
+case 3344: /* module 13 call 16 pallet:staking call:force_new_era_always */
+ return STR_ME_FORCE_NEW_ERA_ALWAYS;
+case 3348: /* module 13 call 20 pallet:staking call:reap_stash */
+ return STR_ME_REAP_STASH;
+case 3349: /* module 13 call 21 pallet:staking call:kick */
+ return STR_ME_KICK;
+case 3350: /* module 13 call 22 pallet:staking call:set_staking_configs */
+ return STR_ME_SET_STAKING_CONFIGS;
+case 3351: /* module 13 call 23 pallet:staking call:chill_other */
+ return STR_ME_CHILL_OTHER;
+case 3352: /* module 13 call 24 pallet:staking call:force_apply_min_commission */
+ return STR_ME_FORCE_APPLY_MIN_COMMISSION;
+case 4864: /* module 19 call 00 pallet:mandate call:mandate */
+ return STR_ME_MANDATE;
+case 6144: /* module 24 call 00 pallet:council call:set_members */
+ return STR_ME_SET_MEMBERS;
+case 6145: /* module 24 call 01 pallet:council call:execute */
+ return STR_ME_EXECUTE;
+case 6146: /* module 24 call 02 pallet:council call:propose */
+ return STR_ME_PROPOSE;
+case 6147: /* module 24 call 03 pallet:council call:vote */
+ return STR_ME_VOTE;
+case 6148: /* module 24 call 04 pallet:council call:close_old_weight */
+ return STR_ME_CLOSE_OLD_WEIGHT;
+case 6149: /* module 24 call 05 pallet:council call:disapprove_proposal */
+ return STR_ME_DISAPPROVE_PROPOSAL;
+case 6150: /* module 24 call 06 pallet:council call:close */
+ return STR_ME_CLOSE;
+case 4352: /* module 17 call 00 pallet:technicalcommittee call:set_members */
+ return STR_ME_SET_MEMBERS;
+case 4353: /* module 17 call 01 pallet:technicalcommittee call:execute */
+ return STR_ME_EXECUTE;
+case 4354: /* module 17 call 02 pallet:technicalcommittee call:propose */
+ return STR_ME_PROPOSE;
+case 4355: /* module 17 call 03 pallet:technicalcommittee call:vote */
+ return STR_ME_VOTE;
+case 4356: /* module 17 call 04 pallet:technicalcommittee call:close_old_weight */
+ return STR_ME_CLOSE_OLD_WEIGHT;
+case 4357: /* module 17 call 05 pallet:technicalcommittee call:disapprove_proposal */
+ return STR_ME_DISAPPROVE_PROPOSAL;
+case 4358: /* module 17 call 06 pallet:technicalcommittee call:close */
+ return STR_ME_CLOSE;
+case 6400: /* module 25 call 00 pallet:phragmenelection call:vote */
+ return STR_ME_VOTE;
+case 6401: /* module 25 call 01 pallet:phragmenelection call:remove_voter */
+ return STR_ME_REMOVE_VOTER;
+case 6402: /* module 25 call 02 pallet:phragmenelection call:submit_candidacy */
+ return STR_ME_SUBMIT_CANDIDACY;
+case 6404: /* module 25 call 04 pallet:phragmenelection call:remove_member */
+ return STR_ME_REMOVE_MEMBER;
+case 6405: /* module 25 call 05 pallet:phragmenelection call:clean_defunct_voters */
+ return STR_ME_CLEAN_DEFUNCT_VOTERS;
+case 4608: /* module 18 call 00 pallet:technicalmembership call:add_member */
+ return STR_ME_ADD_MEMBER;
+case 4609: /* module 18 call 01 pallet:technicalmembership call:remove_member */
+ return STR_ME_REMOVE_MEMBER;
+case 4610: /* module 18 call 02 pallet:technicalmembership call:swap_member */
+ return STR_ME_SWAP_MEMBER;
+case 4611: /* module 18 call 03 pallet:technicalmembership call:reset_members */
+ return STR_ME_RESET_MEMBERS;
+case 4612: /* module 18 call 04 pallet:technicalmembership call:change_key */
+ return STR_ME_CHANGE_KEY;
+case 4613: /* module 18 call 05 pallet:technicalmembership call:set_prime */
+ return STR_ME_SET_PRIME;
+case 4614: /* module 18 call 06 pallet:technicalmembership call:clear_prime */
+ return STR_ME_CLEAR_PRIME;
+case 5120: /* module 20 call 00 pallet:treasury call:propose_spend */
+ return STR_ME_PROPOSE_SPEND;
+case 5121: /* module 20 call 01 pallet:treasury call:reject_proposal */
+ return STR_ME_REJECT_PROPOSAL;
+case 5122: /* module 20 call 02 pallet:treasury call:approve_proposal */
+ return STR_ME_APPROVE_PROPOSAL;
+case 5123: /* module 20 call 03 pallet:treasury call:spend */
+ return STR_ME_SPEND;
+case 5124: /* module 20 call 04 pallet:treasury call:remove_approval */
+ return STR_ME_REMOVE_APPROVAL;
+case 7168: /* module 28 call 00 pallet:identity call:add_registrar */
+ return STR_ME_ADD_REGISTRAR;
+case 7169: /* module 28 call 01 pallet:identity call:set_identity */
+ return STR_ME_SET_IDENTITY;
+case 7170: /* module 28 call 02 pallet:identity call:set_subs */
+ return STR_ME_SET_SUBS;
+case 7171: /* module 28 call 03 pallet:identity call:clear_identity */
+ return STR_ME_CLEAR_IDENTITY;
+case 7172: /* module 28 call 04 pallet:identity call:request_judgement */
+ return STR_ME_REQUEST_JUDGEMENT;
+case 7173: /* module 28 call 05 pallet:identity call:cancel_request */
+ return STR_ME_CANCEL_REQUEST;
+case 7174: /* module 28 call 06 pallet:identity call:set_fee */
+ return STR_ME_SET_FEE;
+case 7175: /* module 28 call 07 pallet:identity call:set_account_id */
+ return STR_ME_SET_ACCOUNT_ID;
+case 7177: /* module 28 call 09 pallet:identity call:provide_judgement */
+ return STR_ME_PROVIDE_JUDGEMENT;
+case 7178: /* module 28 call 10 pallet:identity call:kill_identity */
+ return STR_ME_KILL_IDENTITY;
+case 7179: /* module 28 call 11 pallet:identity call:add_sub */
+ return STR_ME_ADD_SUB;
+case 7180: /* module 28 call 12 pallet:identity call:rename_sub */
+ return STR_ME_RENAME_SUB;
+case 7181: /* module 28 call 13 pallet:identity call:remove_sub */
+ return STR_ME_REMOVE_SUB;
+case 7182: /* module 28 call 14 pallet:identity call:quit_sub */
+ return STR_ME_QUIT_SUB;
+case 6912: /* module 27 call 00 pallet:multisig call:as_multi_threshold_1 */
+ return STR_ME_AS_MULTI_THRESHOLD_1;
+case 6913: /* module 27 call 01 pallet:multisig call:as_multi */
+ return STR_ME_AS_MULTI;
+case 6914: /* module 27 call 02 pallet:multisig call:approve_as_multi */
+ return STR_ME_APPROVE_AS_MULTI;
+case 6915: /* module 27 call 03 pallet:multisig call:cancel_as_multi */
+ return STR_ME_CANCEL_AS_MULTI;
+#endif
+ default:
+ return NULL;
+ }
-__Z_INLINE parser_error_t _readMethod_multisig_as_multi_V1(
- parser_context_t* c, pd_multisig_as_multi_V1_t* m)
-{
- CHECK_ERROR(_readu16(c, &m->threshold))
- CHECK_ERROR(_readVecAccountId_V1(c, &m->other_signatories))
- CHECK_ERROR(_readOptionTimepoint_V1(c, &m->maybe_timepoint))
- CHECK_ERROR(_readOpaqueCall_V1(c, &m->call))
- CHECK_ERROR(_readbool(c, &m->store_call))
- CHECK_ERROR(_readWeight_V1(c, &m->max_weight))
- return parser_ok;
+ return NULL;
}
-__Z_INLINE parser_error_t _readMethod_multisig_approve_as_multi_V1(
- parser_context_t* c, pd_multisig_approve_as_multi_V1_t* m)
+uint8_t _getMethod_NumItems_V1(uint8_t moduleIdx, uint8_t callIdx)
{
- CHECK_ERROR(_readu16(c, &m->threshold))
- CHECK_ERROR(_readVecAccountId_V1(c, &m->other_signatories))
- CHECK_ERROR(_readOptionTimepoint_V1(c, &m->maybe_timepoint))
- CHECK_ERROR(_readH256(c, &m->call_hash))
- CHECK_ERROR(_readWeight_V1(c, &m->max_weight))
- return parser_ok;
-}
+ uint16_t callPrivIdx = ((uint16_t)moduleIdx << 8u) + callIdx;
+
+ switch (callPrivIdx) {
+case 1024: /* module 04 call 00 pallet:balances call:transfer */
+ return 2;
+case 1026: /* module 04 call 02 pallet:balances call:force_transfer */
+ return 3;
+case 1027: /* module 04 call 03 pallet:balances call:transfer_keep_alive */
+ return 2;
+case 1028: /* module 04 call 04 pallet:balances call:transfer_all */
+ return 2;
+case 3328: /* module 13 call 00 pallet:staking call:bond */
+ return 3;
+case 3329: /* module 13 call 01 pallet:staking call:bond_extra */
+ return 1;
+case 3330: /* module 13 call 02 pallet:staking call:unbond */
+ return 1;
+case 3331: /* module 13 call 03 pallet:staking call:withdraw_unbonded */
+ return 1;
+case 3332: /* module 13 call 04 pallet:staking call:validate */
+ return 1;
+case 3333: /* module 13 call 05 pallet:staking call:nominate */
+ return 1;
+case 3334: /* module 13 call 06 pallet:staking call:chill */
+ return 0;
+case 3335: /* module 13 call 07 pallet:staking call:set_payee */
+ return 1;
+case 3336: /* module 13 call 08 pallet:staking call:set_controller */
+ return 1;
+case 3346: /* module 13 call 18 pallet:staking call:payout_stakers */
+ return 2;
+case 3347: /* module 13 call 19 pallet:staking call:rebond */
+ return 1;
+case 2304: /* module 09 call 00 pallet:session call:set_keys */
+ return 2;
+case 2305: /* module 09 call 01 pallet:session call:purge_keys */
+ return 0;
+case 5376: /* module 21 call 00 pallet:utility call:batch */
+ return 1;
+case 5378: /* module 21 call 02 pallet:utility call:batch_all */
+ return 1;
+case 5380: /* module 21 call 04 pallet:utility call:force_batch */
+ return 1;
+#ifdef SUBSTRATE_PARSER_FULL
+#ifndef TARGET_NANOS
+#endif
+case 1: /* module 00 call 01 pallet:system call:remark */
+ return 1;
+case 2: /* module 00 call 02 pallet:system call:set_heap_pages */
+ return 1;
+case 3: /* module 00 call 03 pallet:system call:set_code */
+ return 1;
+case 4: /* module 00 call 04 pallet:system call:set_code_without_checks */
+ return 1;
+case 8: /* module 00 call 08 pallet:system call:remark_with_event */
+ return 1;
+case 768: /* module 03 call 00 pallet:timestamp call:set */
+ return 1;
+case 1025: /* module 04 call 01 pallet:balances call:set_balance */
+ return 3;
+case 1029: /* module 04 call 05 pallet:balances call:force_unreserve */
+ return 2;
+case 3337: /* module 13 call 09 pallet:staking call:set_validator_count */
+ return 1;
+case 3338: /* module 13 call 10 pallet:staking call:increase_validator_count */
+ return 1;
+case 3339: /* module 13 call 11 pallet:staking call:scale_validator_count */
+ return 1;
+case 3340: /* module 13 call 12 pallet:staking call:force_no_eras */
+ return 0;
+case 3341: /* module 13 call 13 pallet:staking call:force_new_era */
+ return 0;
+case 3342: /* module 13 call 14 pallet:staking call:set_invulnerables */
+ return 1;
+case 3343: /* module 13 call 15 pallet:staking call:force_unstake */
+ return 2;
+case 3344: /* module 13 call 16 pallet:staking call:force_new_era_always */
+ return 0;
+case 3348: /* module 13 call 20 pallet:staking call:reap_stash */
+ return 2;
+case 3349: /* module 13 call 21 pallet:staking call:kick */
+ return 1;
+case 3350: /* module 13 call 22 pallet:staking call:set_staking_configs */
+ return 6;
+case 3351: /* module 13 call 23 pallet:staking call:chill_other */
+ return 1;
+case 3352: /* module 13 call 24 pallet:staking call:force_apply_min_commission */
+ return 1;
+case 4864: /* module 19 call 00 pallet:mandate call:mandate */
+ return 1;
+case 6144: /* module 24 call 00 pallet:council call:set_members */
+ return 3;
+case 6145: /* module 24 call 01 pallet:council call:execute */
+ return 2;
+case 6146: /* module 24 call 02 pallet:council call:propose */
+ return 3;
+case 6147: /* module 24 call 03 pallet:council call:vote */
+ return 3;
+case 6148: /* module 24 call 04 pallet:council call:close_old_weight */
+ return 4;
+case 6149: /* module 24 call 05 pallet:council call:disapprove_proposal */
+ return 1;
+case 6150: /* module 24 call 06 pallet:council call:close */
+ return 4;
+case 4352: /* module 17 call 00 pallet:technicalcommittee call:set_members */
+ return 3;
+case 4353: /* module 17 call 01 pallet:technicalcommittee call:execute */
+ return 2;
+case 4354: /* module 17 call 02 pallet:technicalcommittee call:propose */
+ return 3;
+case 4355: /* module 17 call 03 pallet:technicalcommittee call:vote */
+ return 3;
+case 4356: /* module 17 call 04 pallet:technicalcommittee call:close_old_weight */
+ return 4;
+case 4357: /* module 17 call 05 pallet:technicalcommittee call:disapprove_proposal */
+ return 1;
+case 4358: /* module 17 call 06 pallet:technicalcommittee call:close */
+ return 4;
+case 6400: /* module 25 call 00 pallet:phragmenelection call:vote */
+ return 2;
+case 6401: /* module 25 call 01 pallet:phragmenelection call:remove_voter */
+ return 0;
+case 6402: /* module 25 call 02 pallet:phragmenelection call:submit_candidacy */
+ return 1;
+case 6404: /* module 25 call 04 pallet:phragmenelection call:remove_member */
+ return 3;
+case 6405: /* module 25 call 05 pallet:phragmenelection call:clean_defunct_voters */
+ return 2;
+case 4608: /* module 18 call 00 pallet:technicalmembership call:add_member */
+ return 1;
+case 4609: /* module 18 call 01 pallet:technicalmembership call:remove_member */
+ return 1;
+case 4610: /* module 18 call 02 pallet:technicalmembership call:swap_member */
+ return 2;
+case 4611: /* module 18 call 03 pallet:technicalmembership call:reset_members */
+ return 1;
+case 4612: /* module 18 call 04 pallet:technicalmembership call:change_key */
+ return 1;
+case 4613: /* module 18 call 05 pallet:technicalmembership call:set_prime */
+ return 1;
+case 4614: /* module 18 call 06 pallet:technicalmembership call:clear_prime */
+ return 0;
+case 5120: /* module 20 call 00 pallet:treasury call:propose_spend */
+ return 2;
+case 5121: /* module 20 call 01 pallet:treasury call:reject_proposal */
+ return 1;
+case 5122: /* module 20 call 02 pallet:treasury call:approve_proposal */
+ return 1;
+case 5123: /* module 20 call 03 pallet:treasury call:spend */
+ return 2;
+case 5124: /* module 20 call 04 pallet:treasury call:remove_approval */
+ return 1;
+case 7168: /* module 28 call 00 pallet:identity call:add_registrar */
+ return 1;
+case 7169: /* module 28 call 01 pallet:identity call:set_identity */
+ return 1;
+case 7170: /* module 28 call 02 pallet:identity call:set_subs */
+ return 1;
+case 7171: /* module 28 call 03 pallet:identity call:clear_identity */
+ return 0;
+case 7172: /* module 28 call 04 pallet:identity call:request_judgement */
+ return 2;
+case 7173: /* module 28 call 05 pallet:identity call:cancel_request */
+ return 1;
+case 7174: /* module 28 call 06 pallet:identity call:set_fee */
+ return 2;
+case 7175: /* module 28 call 07 pallet:identity call:set_account_id */
+ return 2;
+case 7177: /* module 28 call 09 pallet:identity call:provide_judgement */
+ return 4;
+case 7178: /* module 28 call 10 pallet:identity call:kill_identity */
+ return 1;
+case 7179: /* module 28 call 11 pallet:identity call:add_sub */
+ return 2;
+case 7180: /* module 28 call 12 pallet:identity call:rename_sub */
+ return 2;
+case 7181: /* module 28 call 13 pallet:identity call:remove_sub */
+ return 1;
+case 7182: /* module 28 call 14 pallet:identity call:quit_sub */
+ return 0;
+case 6912: /* module 27 call 00 pallet:multisig call:as_multi_threshold_1 */
+ return 2;
+case 6913: /* module 27 call 01 pallet:multisig call:as_multi */
+ return 5;
+case 6914: /* module 27 call 02 pallet:multisig call:approve_as_multi */
+ return 5;
+case 6915: /* module 27 call 03 pallet:multisig call:cancel_as_multi */
+ return 4;
+#endif
+ default:
+ return 0;
+ }
-__Z_INLINE parser_error_t _readMethod_multisig_cancel_as_multi_V1(
- parser_context_t* c, pd_multisig_cancel_as_multi_V1_t* m)
-{
- CHECK_ERROR(_readu16(c, &m->threshold))
- CHECK_ERROR(_readVecAccountId_V1(c, &m->other_signatories))
- CHECK_ERROR(_readTimepoint_V1(c, &m->timepoint))
- CHECK_ERROR(_readH256(c, &m->call_hash))
- return parser_ok;
+ return 0;
}
-__Z_INLINE parser_error_t _readMethod_preimage_note_preimage_V1(
- parser_context_t* c, pd_preimage_note_preimage_V1_t* m)
+const char* _getMethod_ItemName_V1(uint8_t moduleIdx, uint8_t callIdx, uint8_t itemIdx)
{
- CHECK_ERROR(_readVecu8(c, &m->bytes))
- return parser_ok;
-}
+ uint16_t callPrivIdx = ((uint16_t)moduleIdx << 8u) + callIdx;
+
+ switch (callPrivIdx) {
+case 1024: /* module 04 call 00 pallet:balances call:transfer */
+ switch (itemIdx) {
+ case 0:
+ return STR_IT_dest;
+ case 1:
+ return STR_IT_amount;
+ default:
+ return NULL;
+ }
+case 1026: /* module 04 call 02 pallet:balances call:force_transfer */
+ switch (itemIdx) {
+ case 0:
+ return STR_IT_source;
+ case 1:
+ return STR_IT_dest;
+ case 2:
+ return STR_IT_amount;
+ default:
+ return NULL;
+ }
+case 1027: /* module 04 call 03 pallet:balances call:transfer_keep_alive */
+ switch (itemIdx) {
+ case 0:
+ return STR_IT_dest;
+ case 1:
+ return STR_IT_amount;
+ default:
+ return NULL;
+ }
+case 1028: /* module 04 call 04 pallet:balances call:transfer_all */
+ switch (itemIdx) {
+ case 0:
+ return STR_IT_dest;
+ case 1:
+ return STR_IT_keep_alive;
+ default:
+ return NULL;
+ }
+case 3328: /* module 13 call 00 pallet:staking call:bond */
+ switch (itemIdx) {
+ case 0:
+ return STR_IT_controller;
+ case 1:
+ return STR_IT_amount;
+ case 2:
+ return STR_IT_payee;
+ default:
+ return NULL;
+ }
+case 3329: /* module 13 call 01 pallet:staking call:bond_extra */
+ switch (itemIdx) {
+ case 0:
+ return STR_IT_amount;
+ default:
+ return NULL;
+ }
+case 3330: /* module 13 call 02 pallet:staking call:unbond */
+ switch (itemIdx) {
+ case 0:
+ return STR_IT_amount;
+ default:
+ return NULL;
+ }
+case 3331: /* module 13 call 03 pallet:staking call:withdraw_unbonded */
+ switch (itemIdx) {
+ case 0:
+ return STR_IT_num_slashing_spans;
+ default:
+ return NULL;
+ }
+case 3332: /* module 13 call 04 pallet:staking call:validate */
+ switch (itemIdx) {
+ case 0:
+ return STR_IT_prefs;
+ default:
+ return NULL;
+ }
+case 3333: /* module 13 call 05 pallet:staking call:nominate */
+ switch (itemIdx) {
+ case 0:
+ return STR_IT_targets;
+ default:
+ return NULL;
+ }
+case 3334: /* module 13 call 06 pallet:staking call:chill */
+ switch (itemIdx) {
+ default:
+ return NULL;
+ }
+case 3335: /* module 13 call 07 pallet:staking call:set_payee */
+ switch (itemIdx) {
+ case 0:
+ return STR_IT_payee;
+ default:
+ return NULL;
+ }
+case 3336: /* module 13 call 08 pallet:staking call:set_controller */
+ switch (itemIdx) {
+ case 0:
+ return STR_IT_controller;
+ default:
+ return NULL;
+ }
+case 3346: /* module 13 call 18 pallet:staking call:payout_stakers */
+ switch (itemIdx) {
+ case 0:
+ return STR_IT_validator_stash;
+ case 1:
+ return STR_IT_era;
+ default:
+ return NULL;
+ }
+case 3347: /* module 13 call 19 pallet:staking call:rebond */
+ switch (itemIdx) {
+ case 0:
+ return STR_IT_amount;
+ default:
+ return NULL;
+ }
+case 2304: /* module 09 call 00 pallet:session call:set_keys */
+ switch (itemIdx) {
+ case 0:
+ return STR_IT_keys;
+ case 1:
+ return STR_IT_proof;
+ default:
+ return NULL;
+ }
+case 2305: /* module 09 call 01 pallet:session call:purge_keys */
+ switch (itemIdx) {
+ default:
+ return NULL;
+ }
+case 5376: /* module 21 call 00 pallet:utility call:batch */
+ switch (itemIdx) {
+ case 0:
+ return STR_IT_calls;
+ default:
+ return NULL;
+ }
+case 5378: /* module 21 call 02 pallet:utility call:batch_all */
+ switch (itemIdx) {
+ case 0:
+ return STR_IT_calls;
+ default:
+ return NULL;
+ }
+case 5380: /* module 21 call 04 pallet:utility call:force_batch */
+ switch (itemIdx) {
+ case 0:
+ return STR_IT_calls;
+ default:
+ return NULL;
+ }
+#ifdef SUBSTRATE_PARSER_FULL
+#ifndef TARGET_NANOS
+#endif
+case 1: /* module 00 call 01 pallet:system call:remark */
+ switch (itemIdx) {
+ case 0:
+ return STR_IT_remark;
+ default:
+ return NULL;
+ }
+case 2: /* module 00 call 02 pallet:system call:set_heap_pages */
+ switch (itemIdx) {
+ case 0:
+ return STR_IT_pages;
+ default:
+ return NULL;
+ }
+case 3: /* module 00 call 03 pallet:system call:set_code */
+ switch (itemIdx) {
+ case 0:
+ return STR_IT_code;
+ default:
+ return NULL;
+ }
+case 4: /* module 00 call 04 pallet:system call:set_code_without_checks */
+ switch (itemIdx) {
+ case 0:
+ return STR_IT_code;
+ default:
+ return NULL;
+ }
+case 8: /* module 00 call 08 pallet:system call:remark_with_event */
+ switch (itemIdx) {
+ case 0:
+ return STR_IT_remark;
+ default:
+ return NULL;
+ }
+case 768: /* module 03 call 00 pallet:timestamp call:set */
+ switch (itemIdx) {
+ case 0:
+ return STR_IT_now;
+ default:
+ return NULL;
+ }
+case 1025: /* module 04 call 01 pallet:balances call:set_balance */
+ switch (itemIdx) {
+ case 0:
+ return STR_IT_who;
+ case 1:
+ return STR_IT_new_free;
+ case 2:
+ return STR_IT_new_reserved;
+ default:
+ return NULL;
+ }
+case 1029: /* module 04 call 05 pallet:balances call:force_unreserve */
+ switch (itemIdx) {
+ case 0:
+ return STR_IT_who;
+ case 1:
+ return STR_IT_amount;
+ default:
+ return NULL;
+ }
+case 3337: /* module 13 call 09 pallet:staking call:set_validator_count */
+ switch (itemIdx) {
+ case 0:
+ return STR_IT_new_;
+ default:
+ return NULL;
+ }
+case 3338: /* module 13 call 10 pallet:staking call:increase_validator_count */
+ switch (itemIdx) {
+ case 0:
+ return STR_IT_additional;
+ default:
+ return NULL;
+ }
+case 3339: /* module 13 call 11 pallet:staking call:scale_validator_count */
+ switch (itemIdx) {
+ case 0:
+ return STR_IT_factor;
+ default:
+ return NULL;
+ }
+case 3340: /* module 13 call 12 pallet:staking call:force_no_eras */
+ switch (itemIdx) {
+ default:
+ return NULL;
+ }
+case 3341: /* module 13 call 13 pallet:staking call:force_new_era */
+ switch (itemIdx) {
+ default:
+ return NULL;
+ }
+case 3342: /* module 13 call 14 pallet:staking call:set_invulnerables */
+ switch (itemIdx) {
+ case 0:
+ return STR_IT_invulnerables;
+ default:
+ return NULL;
+ }
+case 3343: /* module 13 call 15 pallet:staking call:force_unstake */
+ switch (itemIdx) {
+ case 0:
+ return STR_IT_stash;
+ case 1:
+ return STR_IT_num_slashing_spans;
+ default:
+ return NULL;
+ }
+case 3344: /* module 13 call 16 pallet:staking call:force_new_era_always */
+ switch (itemIdx) {
+ default:
+ return NULL;
+ }
+case 3348: /* module 13 call 20 pallet:staking call:reap_stash */
+ switch (itemIdx) {
+ case 0:
+ return STR_IT_stash;
+ case 1:
+ return STR_IT_num_slashing_spans;
+ default:
+ return NULL;
+ }
+case 3349: /* module 13 call 21 pallet:staking call:kick */
+ switch (itemIdx) {
+ case 0:
+ return STR_IT_who;
+ default:
+ return NULL;
+ }
+case 3350: /* module 13 call 22 pallet:staking call:set_staking_configs */
+ switch (itemIdx) {
+ case 0:
+ return STR_IT_min_nominator_bond;
+ case 1:
+ return STR_IT_min_validator_bond;
+ case 2:
+ return STR_IT_max_nominator_count;
+ case 3:
+ return STR_IT_max_validator_count;
+ case 4:
+ return STR_IT_chill_threshold;
+ case 5:
+ return STR_IT_min_commission;
+ default:
+ return NULL;
+ }
+case 3351: /* module 13 call 23 pallet:staking call:chill_other */
+ switch (itemIdx) {
+ case 0:
+ return STR_IT_controller;
+ default:
+ return NULL;
+ }
+case 3352: /* module 13 call 24 pallet:staking call:force_apply_min_commission */
+ switch (itemIdx) {
+ case 0:
+ return STR_IT_validator_stash;
+ default:
+ return NULL;
+ }
+case 4864: /* module 19 call 00 pallet:mandate call:mandate */
+ switch (itemIdx) {
+ case 0:
+ return STR_IT_call;
+ default:
+ return NULL;
+ }
+case 6144: /* module 24 call 00 pallet:council call:set_members */
+ switch (itemIdx) {
+ case 0:
+ return STR_IT_new_members;
+ case 1:
+ return STR_IT_prime;
+ case 2:
+ return STR_IT_old_count;
+ default:
+ return NULL;
+ }
+case 6145: /* module 24 call 01 pallet:council call:execute */
+ switch (itemIdx) {
+ case 0:
+ return STR_IT_proposal;
+ case 1:
+ return STR_IT_length_bound;
+ default:
+ return NULL;
+ }
+case 6146: /* module 24 call 02 pallet:council call:propose */
+ switch (itemIdx) {
+ case 0:
+ return STR_IT_threshold;
+ case 1:
+ return STR_IT_proposal;
+ case 2:
+ return STR_IT_length_bound;
+ default:
+ return NULL;
+ }
+case 6147: /* module 24 call 03 pallet:council call:vote */
+ switch (itemIdx) {
+ case 0:
+ return STR_IT_proposal;
+ case 1:
+ return STR_IT_index;
+ case 2:
+ return STR_IT_approve;
+ default:
+ return NULL;
+ }
+case 6148: /* module 24 call 04 pallet:council call:close_old_weight */
+ switch (itemIdx) {
+ case 0:
+ return STR_IT_proposal_hash;
+ case 1:
+ return STR_IT_index;
+ case 2:
+ return STR_IT_proposal_weight_bound;
+ case 3:
+ return STR_IT_length_bound;
+ default:
+ return NULL;
+ }
+case 6149: /* module 24 call 05 pallet:council call:disapprove_proposal */
+ switch (itemIdx) {
+ case 0:
+ return STR_IT_proposal_hash;
+ default:
+ return NULL;
+ }
+case 6150: /* module 24 call 06 pallet:council call:close */
+ switch (itemIdx) {
+ case 0:
+ return STR_IT_proposal_hash;
+ case 1:
+ return STR_IT_index;
+ case 2:
+ return STR_IT_proposal_weight_bound;
+ case 3:
+ return STR_IT_length_bound;
+ default:
+ return NULL;
+ }
+case 4352: /* module 17 call 00 pallet:technicalcommittee call:set_members */
+ switch (itemIdx) {
+ case 0:
+ return STR_IT_new_members;
+ case 1:
+ return STR_IT_prime;
+ case 2:
+ return STR_IT_old_count;
+ default:
+ return NULL;
+ }
+case 4353: /* module 17 call 01 pallet:technicalcommittee call:execute */
+ switch (itemIdx) {
+ case 0:
+ return STR_IT_proposal;
+ case 1:
+ return STR_IT_length_bound;
+ default:
+ return NULL;
+ }
+case 4354: /* module 17 call 02 pallet:technicalcommittee call:propose */
+ switch (itemIdx) {
+ case 0:
+ return STR_IT_threshold;
+ case 1:
+ return STR_IT_proposal;
+ case 2:
+ return STR_IT_length_bound;
+ default:
+ return NULL;
+ }
+case 4355: /* module 17 call 03 pallet:technicalcommittee call:vote */
+ switch (itemIdx) {
+ case 0:
+ return STR_IT_proposal;
+ case 1:
+ return STR_IT_index;
+ case 2:
+ return STR_IT_approve;
+ default:
+ return NULL;
+ }
+case 4356: /* module 17 call 04 pallet:technicalcommittee call:close_old_weight */
+ switch (itemIdx) {
+ case 0:
+ return STR_IT_proposal_hash;
+ case 1:
+ return STR_IT_index;
+ case 2:
+ return STR_IT_proposal_weight_bound;
+ case 3:
+ return STR_IT_length_bound;
+ default:
+ return NULL;
+ }
+case 4357: /* module 17 call 05 pallet:technicalcommittee call:disapprove_proposal */
+ switch (itemIdx) {
+ case 0:
+ return STR_IT_proposal_hash;
+ default:
+ return NULL;
+ }
+case 4358: /* module 17 call 06 pallet:technicalcommittee call:close */
+ switch (itemIdx) {
+ case 0:
+ return STR_IT_proposal_hash;
+ case 1:
+ return STR_IT_index;
+ case 2:
+ return STR_IT_proposal_weight_bound;
+ case 3:
+ return STR_IT_length_bound;
+ default:
+ return NULL;
+ }
+case 6400: /* module 25 call 00 pallet:phragmenelection call:vote */
+ switch (itemIdx) {
+ case 0:
+ return STR_IT_votes;
+ case 1:
+ return STR_IT_amount;
+ default:
+ return NULL;
+ }
+case 6401: /* module 25 call 01 pallet:phragmenelection call:remove_voter */
+ switch (itemIdx) {
+ default:
+ return NULL;
+ }
+case 6402: /* module 25 call 02 pallet:phragmenelection call:submit_candidacy */
+ switch (itemIdx) {
+ case 0:
+ return STR_IT_candidate_count;
+ default:
+ return NULL;
+ }
+case 6404: /* module 25 call 04 pallet:phragmenelection call:remove_member */
+ switch (itemIdx) {
+ case 0:
+ return STR_IT_who;
+ case 1:
+ return STR_IT_slash_bond;
+ case 2:
+ return STR_IT_rerun_election;
+ default:
+ return NULL;
+ }
+case 6405: /* module 25 call 05 pallet:phragmenelection call:clean_defunct_voters */
+ switch (itemIdx) {
+ case 0:
+ return STR_IT_num_voters;
+ case 1:
+ return STR_IT_num_defunct;
+ default:
+ return NULL;
+ }
+case 4608: /* module 18 call 00 pallet:technicalmembership call:add_member */
+ switch (itemIdx) {
+ case 0:
+ return STR_IT_who;
+ default:
+ return NULL;
+ }
+case 4609: /* module 18 call 01 pallet:technicalmembership call:remove_member */
+ switch (itemIdx) {
+ case 0:
+ return STR_IT_who;
+ default:
+ return NULL;
+ }
+case 4610: /* module 18 call 02 pallet:technicalmembership call:swap_member */
+ switch (itemIdx) {
+ case 0:
+ return STR_IT_remove;
+ case 1:
+ return STR_IT_add;
+ default:
+ return NULL;
+ }
+case 4611: /* module 18 call 03 pallet:technicalmembership call:reset_members */
+ switch (itemIdx) {
+ case 0:
+ return STR_IT_members;
+ default:
+ return NULL;
+ }
+case 4612: /* module 18 call 04 pallet:technicalmembership call:change_key */
+ switch (itemIdx) {
+ case 0:
+ return STR_IT_new_;
+ default:
+ return NULL;
+ }
+case 4613: /* module 18 call 05 pallet:technicalmembership call:set_prime */
+ switch (itemIdx) {
+ case 0:
+ return STR_IT_who;
+ default:
+ return NULL;
+ }
+case 4614: /* module 18 call 06 pallet:technicalmembership call:clear_prime */
+ switch (itemIdx) {
+ default:
+ return NULL;
+ }
+case 5120: /* module 20 call 00 pallet:treasury call:propose_spend */
+ switch (itemIdx) {
+ case 0:
+ return STR_IT_amount;
+ case 1:
+ return STR_IT_beneficiary;
+ default:
+ return NULL;
+ }
+case 5121: /* module 20 call 01 pallet:treasury call:reject_proposal */
+ switch (itemIdx) {
+ case 0:
+ return STR_IT_proposal_id;
+ default:
+ return NULL;
+ }
+case 5122: /* module 20 call 02 pallet:treasury call:approve_proposal */
+ switch (itemIdx) {
+ case 0:
+ return STR_IT_proposal_id;
+ default:
+ return NULL;
+ }
+case 5123: /* module 20 call 03 pallet:treasury call:spend */
+ switch (itemIdx) {
+ case 0:
+ return STR_IT_amount;
+ case 1:
+ return STR_IT_beneficiary;
+ default:
+ return NULL;
+ }
+case 5124: /* module 20 call 04 pallet:treasury call:remove_approval */
+ switch (itemIdx) {
+ case 0:
+ return STR_IT_proposal_id;
+ default:
+ return NULL;
+ }
+case 7168: /* module 28 call 00 pallet:identity call:add_registrar */
+ switch (itemIdx) {
+ case 0:
+ return STR_IT_account;
+ default:
+ return NULL;
+ }
+case 7169: /* module 28 call 01 pallet:identity call:set_identity */
+ switch (itemIdx) {
+ case 0:
+ return STR_IT_info;
+ default:
+ return NULL;
+ }
+case 7170: /* module 28 call 02 pallet:identity call:set_subs */
+ switch (itemIdx) {
+ case 0:
+ return STR_IT_subs;
+ default:
+ return NULL;
+ }
+case 7171: /* module 28 call 03 pallet:identity call:clear_identity */
+ switch (itemIdx) {
+ default:
+ return NULL;
+ }
+case 7172: /* module 28 call 04 pallet:identity call:request_judgement */
+ switch (itemIdx) {
+ case 0:
+ return STR_IT_reg_index;
+ case 1:
+ return STR_IT_max_fee;
+ default:
+ return NULL;
+ }
+case 7173: /* module 28 call 05 pallet:identity call:cancel_request */
+ switch (itemIdx) {
+ case 0:
+ return STR_IT_reg_index;
+ default:
+ return NULL;
+ }
+case 7174: /* module 28 call 06 pallet:identity call:set_fee */
+ switch (itemIdx) {
+ case 0:
+ return STR_IT_index;
+ case 1:
+ return STR_IT_fee;
+ default:
+ return NULL;
+ }
+case 7175: /* module 28 call 07 pallet:identity call:set_account_id */
+ switch (itemIdx) {
+ case 0:
+ return STR_IT_index;
+ case 1:
+ return STR_IT_new_;
+ default:
+ return NULL;
+ }
+case 7177: /* module 28 call 09 pallet:identity call:provide_judgement */
+ switch (itemIdx) {
+ case 0:
+ return STR_IT_reg_index;
+ case 1:
+ return STR_IT_target;
+ case 2:
+ return STR_IT_judgement;
+ case 3:
+ return STR_IT_identity;
+ default:
+ return NULL;
+ }
+case 7178: /* module 28 call 10 pallet:identity call:kill_identity */
+ switch (itemIdx) {
+ case 0:
+ return STR_IT_target;
+ default:
+ return NULL;
+ }
+case 7179: /* module 28 call 11 pallet:identity call:add_sub */
+ switch (itemIdx) {
+ case 0:
+ return STR_IT_sub;
+ case 1:
+ return STR_IT_data;
+ default:
+ return NULL;
+ }
+case 7180: /* module 28 call 12 pallet:identity call:rename_sub */
+ switch (itemIdx) {
+ case 0:
+ return STR_IT_sub;
+ case 1:
+ return STR_IT_data;
+ default:
+ return NULL;
+ }
+case 7181: /* module 28 call 13 pallet:identity call:remove_sub */
+ switch (itemIdx) {
+ case 0:
+ return STR_IT_sub;
+ default:
+ return NULL;
+ }
+case 7182: /* module 28 call 14 pallet:identity call:quit_sub */
+ switch (itemIdx) {
+ default:
+ return NULL;
+ }
+case 6912: /* module 27 call 00 pallet:multisig call:as_multi_threshold_1 */
+ switch (itemIdx) {
+ case 0:
+ return STR_IT_other_signatories;
+ case 1:
+ return STR_IT_call;
+ default:
+ return NULL;
+ }
+case 6913: /* module 27 call 01 pallet:multisig call:as_multi */
+ switch (itemIdx) {
+ case 0:
+ return STR_IT_threshold;
+ case 1:
+ return STR_IT_other_signatories;
+ case 2:
+ return STR_IT_maybe_timepoint;
+ case 3:
+ return STR_IT_call;
+ case 4:
+ return STR_IT_max_weight;
+ default:
+ return NULL;
+ }
+case 6914: /* module 27 call 02 pallet:multisig call:approve_as_multi */
+ switch (itemIdx) {
+ case 0:
+ return STR_IT_threshold;
+ case 1:
+ return STR_IT_other_signatories;
+ case 2:
+ return STR_IT_maybe_timepoint;
+ case 3:
+ return STR_IT_call_hash;
+ case 4:
+ return STR_IT_max_weight;
+ default:
+ return NULL;
+ }
+case 6915: /* module 27 call 03 pallet:multisig call:cancel_as_multi */
+ switch (itemIdx) {
+ case 0:
+ return STR_IT_threshold;
+ case 1:
+ return STR_IT_other_signatories;
+ case 2:
+ return STR_IT_timepoint;
+ case 3:
+ return STR_IT_call_hash;
+ default:
+ return NULL;
+ }
+#endif
+ default:
+ return NULL;
+ }
-__Z_INLINE parser_error_t _readMethod_preimage_unnote_preimage_V1(
- parser_context_t* c, pd_preimage_unnote_preimage_V1_t* m)
-{
- CHECK_ERROR(_readHash(c, &m->hash))
- return parser_ok;
+ return NULL;
}
-__Z_INLINE parser_error_t _readMethod_preimage_request_preimage_V1(
- parser_context_t* c, pd_preimage_request_preimage_V1_t* m)
-{
- CHECK_ERROR(_readHash(c, &m->hash))
- return parser_ok;
-}
+parser_error_t _getMethod_ItemValue_V1(
+ pd_Method_V1_t* m,
+ uint8_t moduleIdx, uint8_t callIdx, uint8_t itemIdx,
+ char* outValue, uint16_t outValueLen,
+ uint8_t pageIdx, uint8_t* pageCount)
+{
+ uint16_t callPrivIdx = ((uint16_t)moduleIdx << 8u) + callIdx;
+
+ switch (callPrivIdx) {
+case 1024: /* module 04 call 00 pallet:balances call:transfer */
+ switch (itemIdx) {
+ case 0: /* balances_transfer_V1 - dest */;
+ return _toStringAccountIdLookupOfT(
+ &m->nested.balances_transfer_V1.dest,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ case 1: /* balances_transfer_V1 - amount */;
+ return _toStringCompactBalance(
+ &m->nested.balances_transfer_V1.amount,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ default:
+ return parser_no_data;
+ }
+case 1026: /* module 04 call 02 pallet:balances call:force_transfer */
+ switch (itemIdx) {
+ case 0: /* balances_force_transfer_V1 - source */;
+ return _toStringAccountIdLookupOfT(
+ &m->nested.balances_force_transfer_V1.source,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ case 1: /* balances_force_transfer_V1 - dest */;
+ return _toStringAccountIdLookupOfT(
+ &m->nested.balances_force_transfer_V1.dest,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ case 2: /* balances_force_transfer_V1 - amount */;
+ return _toStringCompactBalance(
+ &m->nested.balances_force_transfer_V1.amount,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ default:
+ return parser_no_data;
+ }
+case 1027: /* module 04 call 03 pallet:balances call:transfer_keep_alive */
+ switch (itemIdx) {
+ case 0: /* balances_transfer_keep_alive_V1 - dest */;
+ return _toStringAccountIdLookupOfT(
+ &m->nested.balances_transfer_keep_alive_V1.dest,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ case 1: /* balances_transfer_keep_alive_V1 - amount */;
+ return _toStringCompactBalance(
+ &m->nested.balances_transfer_keep_alive_V1.amount,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ default:
+ return parser_no_data;
+ }
+case 1028: /* module 04 call 04 pallet:balances call:transfer_all */
+ switch (itemIdx) {
+ case 0: /* balances_transfer_all_V1 - dest */;
+ return _toStringAccountIdLookupOfT(
+ &m->basic.balances_transfer_all_V1.dest,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ case 1: /* balances_transfer_all_V1 - keep_alive */;
+ return _toStringbool(
+ &m->basic.balances_transfer_all_V1.keep_alive,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ default:
+ return parser_no_data;
+ }
+case 3328: /* module 13 call 00 pallet:staking call:bond */
+ switch (itemIdx) {
+ case 0: /* staking_bond_V1 - controller */;
+ return _toStringAccountIdLookupOfT(
+ &m->nested.staking_bond_V1.controller,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ case 1: /* staking_bond_V1 - amount */;
+ return _toStringCompactBalance(
+ &m->nested.staking_bond_V1.amount,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ case 2: /* staking_bond_V1 - payee */;
+ return _toStringRewardDestination(
+ &m->nested.staking_bond_V1.payee,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ default:
+ return parser_no_data;
+ }
+case 3329: /* module 13 call 01 pallet:staking call:bond_extra */
+ switch (itemIdx) {
+ case 0: /* staking_bond_extra_V1 - amount */;
+ return _toStringCompactBalance(
+ &m->basic.staking_bond_extra_V1.amount,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ default:
+ return parser_no_data;
+ }
+case 3330: /* module 13 call 02 pallet:staking call:unbond */
+ switch (itemIdx) {
+ case 0: /* staking_unbond_V1 - amount */;
+ return _toStringCompactBalance(
+ &m->nested.staking_unbond_V1.amount,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ default:
+ return parser_no_data;
+ }
+case 3331: /* module 13 call 03 pallet:staking call:withdraw_unbonded */
+ switch (itemIdx) {
+ case 0: /* staking_withdraw_unbonded_V1 - num_slashing_spans */;
+ return _toStringu32(
+ &m->basic.staking_withdraw_unbonded_V1.num_slashing_spans,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ default:
+ return parser_no_data;
+ }
+case 3332: /* module 13 call 04 pallet:staking call:validate */
+ switch (itemIdx) {
+ case 0: /* staking_validate_V1 - prefs */;
+ return _toStringValidatorPrefs(
+ &m->basic.staking_validate_V1.prefs,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ default:
+ return parser_no_data;
+ }
+case 3333: /* module 13 call 05 pallet:staking call:nominate */
+ switch (itemIdx) {
+ case 0: /* staking_nominate_V1 - targets */;
+ return _toStringVecAccountIdLookupOfT(
+ &m->nested.staking_nominate_V1.targets,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ default:
+ return parser_no_data;
+ }
+case 3334: /* module 13 call 06 pallet:staking call:chill */
+ switch (itemIdx) {
+ default:
+ return parser_no_data;
+ }
+case 3335: /* module 13 call 07 pallet:staking call:set_payee */
+ switch (itemIdx) {
+ case 0: /* staking_set_payee_V1 - payee */;
+ return _toStringRewardDestination(
+ &m->basic.staking_set_payee_V1.payee,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ default:
+ return parser_no_data;
+ }
+case 3336: /* module 13 call 08 pallet:staking call:set_controller */
+ switch (itemIdx) {
+ case 0: /* staking_set_controller_V1 - controller */;
+ return _toStringAccountIdLookupOfT(
+ &m->nested.staking_set_controller_V1.controller,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ default:
+ return parser_no_data;
+ }
+case 3346: /* module 13 call 18 pallet:staking call:payout_stakers */
+ switch (itemIdx) {
+ case 0: /* staking_payout_stakers_V1 - validator_stash */;
+ return _toStringAccountId(
+ &m->basic.staking_payout_stakers_V1.validator_stash,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ case 1: /* staking_payout_stakers_V1 - era */;
+ return _toStringEraIndex(
+ &m->basic.staking_payout_stakers_V1.era,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ default:
+ return parser_no_data;
+ }
+case 3347: /* module 13 call 19 pallet:staking call:rebond */
+ switch (itemIdx) {
+ case 0: /* staking_rebond_V1 - amount */;
+ return _toStringCompactBalance(
+ &m->basic.staking_rebond_V1.amount,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ default:
+ return parser_no_data;
+ }
+case 2304: /* module 09 call 00 pallet:session call:set_keys */
+ switch (itemIdx) {
+ case 0: /* session_set_keys_V1 - keys */;
+ return _toStringKeys(
+ &m->basic.session_set_keys_V1.keys,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ case 1: /* session_set_keys_V1 - proof */;
+ return _toStringBytes(
+ &m->basic.session_set_keys_V1.proof,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ default:
+ return parser_no_data;
+ }
+case 2305: /* module 09 call 01 pallet:session call:purge_keys */
+ switch (itemIdx) {
+ default:
+ return parser_no_data;
+ }
+case 5376: /* module 21 call 00 pallet:utility call:batch */
+ switch (itemIdx) {
+ case 0: /* utility_batch_V1 - calls */;
+ return _toStringVecCall(
+ &m->basic.utility_batch_V1.calls,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ default:
+ return parser_no_data;
+ }
+case 5378: /* module 21 call 02 pallet:utility call:batch_all */
+ switch (itemIdx) {
+ case 0: /* utility_batch_all_V1 - calls */;
+ return _toStringVecCall(
+ &m->basic.utility_batch_all_V1.calls,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ default:
+ return parser_no_data;
+ }
+case 5380: /* module 21 call 04 pallet:utility call:force_batch */
+ switch (itemIdx) {
+ case 0: /* utility_force_batch_V1 - calls */;
+ return _toStringVecCall(
+ &m->basic.utility_force_batch_V1.calls,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ default:
+ return parser_no_data;
+ }
+#ifdef SUBSTRATE_PARSER_FULL
+#ifndef TARGET_NANOS
+#endif
+case 1: /* module 00 call 01 pallet:system call:remark */
+ switch (itemIdx) {
+ case 0: /* system_remark_V1 - remark */;
+ return _toStringBytes(
+ &m->nested.system_remark_V1.remark,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ default:
+ return parser_no_data;
+ }
+case 2: /* module 00 call 02 pallet:system call:set_heap_pages */
+ switch (itemIdx) {
+ case 0: /* system_set_heap_pages_V1 - pages */;
+ return _toStringu64(
+ &m->nested.system_set_heap_pages_V1.pages,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ default:
+ return parser_no_data;
+ }
+case 3: /* module 00 call 03 pallet:system call:set_code */
+ switch (itemIdx) {
+ case 0: /* system_set_code_V1 - code */;
+ return _toStringVecu8(
+ &m->nested.system_set_code_V1.code,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ default:
+ return parser_no_data;
+ }
+case 4: /* module 00 call 04 pallet:system call:set_code_without_checks */
+ switch (itemIdx) {
+ case 0: /* system_set_code_without_checks_V1 - code */;
+ return _toStringVecu8(
+ &m->nested.system_set_code_without_checks_V1.code,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ default:
+ return parser_no_data;
+ }
+case 8: /* module 00 call 08 pallet:system call:remark_with_event */
+ switch (itemIdx) {
+ case 0: /* system_remark_with_event_V1 - remark */;
+ return _toStringBytes(
+ &m->nested.system_remark_with_event_V1.remark,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ default:
+ return parser_no_data;
+ }
+case 768: /* module 03 call 00 pallet:timestamp call:set */
+ switch (itemIdx) {
+ case 0: /* timestamp_set_V1 - now */;
+ return _toStringCompactu64(
+ &m->basic.timestamp_set_V1.now,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ default:
+ return parser_no_data;
+ }
+case 1025: /* module 04 call 01 pallet:balances call:set_balance */
+ switch (itemIdx) {
+ case 0: /* balances_set_balance_V1 - who */;
+ return _toStringAccountIdLookupOfT(
+ &m->nested.balances_set_balance_V1.who,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ case 1: /* balances_set_balance_V1 - new_free */;
+ return _toStringCompactBalance(
+ &m->nested.balances_set_balance_V1.new_free,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ case 2: /* balances_set_balance_V1 - new_reserved */;
+ return _toStringCompactBalance(
+ &m->nested.balances_set_balance_V1.new_reserved,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ default:
+ return parser_no_data;
+ }
+case 1029: /* module 04 call 05 pallet:balances call:force_unreserve */
+ switch (itemIdx) {
+ case 0: /* balances_force_unreserve_V1 - who */;
+ return _toStringAccountIdLookupOfT(
+ &m->basic.balances_force_unreserve_V1.who,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ case 1: /* balances_force_unreserve_V1 - amount */;
+ return _toStringBalance(
+ &m->basic.balances_force_unreserve_V1.amount,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ default:
+ return parser_no_data;
+ }
+case 3337: /* module 13 call 09 pallet:staking call:set_validator_count */
+ switch (itemIdx) {
+ case 0: /* staking_set_validator_count_V1 - new_ */;
+ return _toStringCompactu32(
+ &m->basic.staking_set_validator_count_V1.new_,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ default:
+ return parser_no_data;
+ }
+case 3338: /* module 13 call 10 pallet:staking call:increase_validator_count */
+ switch (itemIdx) {
+ case 0: /* staking_increase_validator_count_V1 - additional */;
+ return _toStringCompactu32(
+ &m->basic.staking_increase_validator_count_V1.additional,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ default:
+ return parser_no_data;
+ }
+case 3339: /* module 13 call 11 pallet:staking call:scale_validator_count */
+ switch (itemIdx) {
+ case 0: /* staking_scale_validator_count_V1 - factor */;
+ return _toStringPercent(
+ &m->basic.staking_scale_validator_count_V1.factor,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ default:
+ return parser_no_data;
+ }
+case 3340: /* module 13 call 12 pallet:staking call:force_no_eras */
+ switch (itemIdx) {
+ default:
+ return parser_no_data;
+ }
+case 3341: /* module 13 call 13 pallet:staking call:force_new_era */
+ switch (itemIdx) {
+ default:
+ return parser_no_data;
+ }
+case 3342: /* module 13 call 14 pallet:staking call:set_invulnerables */
+ switch (itemIdx) {
+ case 0: /* staking_set_invulnerables_V1 - invulnerables */;
+ return _toStringVecAccountId(
+ &m->basic.staking_set_invulnerables_V1.invulnerables,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ default:
+ return parser_no_data;
+ }
+case 3343: /* module 13 call 15 pallet:staking call:force_unstake */
+ switch (itemIdx) {
+ case 0: /* staking_force_unstake_V1 - stash */;
+ return _toStringAccountId(
+ &m->basic.staking_force_unstake_V1.stash,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ case 1: /* staking_force_unstake_V1 - num_slashing_spans */;
+ return _toStringu32(
+ &m->basic.staking_force_unstake_V1.num_slashing_spans,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ default:
+ return parser_no_data;
+ }
+case 3344: /* module 13 call 16 pallet:staking call:force_new_era_always */
+ switch (itemIdx) {
+ default:
+ return parser_no_data;
+ }
+case 3348: /* module 13 call 20 pallet:staking call:reap_stash */
+ switch (itemIdx) {
+ case 0: /* staking_reap_stash_V1 - stash */;
+ return _toStringAccountId(
+ &m->basic.staking_reap_stash_V1.stash,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ case 1: /* staking_reap_stash_V1 - num_slashing_spans */;
+ return _toStringu32(
+ &m->basic.staking_reap_stash_V1.num_slashing_spans,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ default:
+ return parser_no_data;
+ }
+case 3349: /* module 13 call 21 pallet:staking call:kick */
+ switch (itemIdx) {
+ case 0: /* staking_kick_V1 - who */;
+ return _toStringVecAccountIdLookupOfT(
+ &m->basic.staking_kick_V1.who,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ default:
+ return parser_no_data;
+ }
+case 3350: /* module 13 call 22 pallet:staking call:set_staking_configs */
+ switch (itemIdx) {
+ case 0: /* staking_set_staking_configs_V1 - min_nominator_bond */;
+ return _toStringConfigOpBalanceOfT(
+ &m->basic.staking_set_staking_configs_V1.min_nominator_bond,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ case 1: /* staking_set_staking_configs_V1 - min_validator_bond */;
+ return _toStringConfigOpBalanceOfT(
+ &m->basic.staking_set_staking_configs_V1.min_validator_bond,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ case 2: /* staking_set_staking_configs_V1 - max_nominator_count */;
+ return _toStringConfigOpu32(
+ &m->basic.staking_set_staking_configs_V1.max_nominator_count,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ case 3: /* staking_set_staking_configs_V1 - max_validator_count */;
+ return _toStringConfigOpu32(
+ &m->basic.staking_set_staking_configs_V1.max_validator_count,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ case 4: /* staking_set_staking_configs_V1 - chill_threshold */;
+ return _toStringConfigOpPercent(
+ &m->basic.staking_set_staking_configs_V1.chill_threshold,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ case 5: /* staking_set_staking_configs_V1 - min_commission */;
+ return _toStringConfigOpPerbill(
+ &m->basic.staking_set_staking_configs_V1.min_commission,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ default:
+ return parser_no_data;
+ }
+case 3351: /* module 13 call 23 pallet:staking call:chill_other */
+ switch (itemIdx) {
+ case 0: /* staking_chill_other_V1 - controller */;
+ return _toStringAccountId(
+ &m->basic.staking_chill_other_V1.controller,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ default:
+ return parser_no_data;
+ }
+case 3352: /* module 13 call 24 pallet:staking call:force_apply_min_commission */
+ switch (itemIdx) {
+ case 0: /* staking_force_apply_min_commission_V1 - validator_stash */;
+ return _toStringAccountId(
+ &m->basic.staking_force_apply_min_commission_V1.validator_stash,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ default:
+ return parser_no_data;
+ }
+case 4864: /* module 19 call 00 pallet:mandate call:mandate */
+ switch (itemIdx) {
+ case 0: /* mandate_mandate_V1 - call */;
+ return _toStringCall(
+ &m->nested.mandate_mandate_V1.call,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ default:
+ return parser_no_data;
+ }
+case 6144: /* module 24 call 00 pallet:council call:set_members */
+ switch (itemIdx) {
+ case 0: /* council_set_members_V1 - new_members */;
+ return _toStringVecAccountId(
+ &m->basic.council_set_members_V1.new_members,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ case 1: /* council_set_members_V1 - prime */;
+ return _toStringOptionAccountId(
+ &m->basic.council_set_members_V1.prime,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ case 2: /* council_set_members_V1 - old_count */;
+ return _toStringMemberCount(
+ &m->basic.council_set_members_V1.old_count,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ default:
+ return parser_no_data;
+ }
+case 6145: /* module 24 call 01 pallet:council call:execute */
+ switch (itemIdx) {
+ case 0: /* council_execute_V1 - proposal */;
+ return _toStringProposal(
+ &m->basic.council_execute_V1.proposal,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ case 1: /* council_execute_V1 - length_bound */;
+ return _toStringCompactu32(
+ &m->basic.council_execute_V1.length_bound,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ default:
+ return parser_no_data;
+ }
+case 6146: /* module 24 call 02 pallet:council call:propose */
+ switch (itemIdx) {
+ case 0: /* council_propose_V1 - threshold */;
+ return _toStringCompactu32(
+ &m->basic.council_propose_V1.threshold,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ case 1: /* council_propose_V1 - proposal */;
+ return _toStringProposal(
+ &m->basic.council_propose_V1.proposal,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ case 2: /* council_propose_V1 - length_bound */;
+ return _toStringCompactu32(
+ &m->basic.council_propose_V1.length_bound,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ default:
+ return parser_no_data;
+ }
+case 6147: /* module 24 call 03 pallet:council call:vote */
+ switch (itemIdx) {
+ case 0: /* council_vote_V1 - proposal */;
+ return _toStringHash(
+ &m->basic.council_vote_V1.proposal,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ case 1: /* council_vote_V1 - index */;
+ return _toStringCompactu32(
+ &m->basic.council_vote_V1.index,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ case 2: /* council_vote_V1 - approve */;
+ return _toStringbool(
+ &m->basic.council_vote_V1.approve,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ default:
+ return parser_no_data;
+ }
+case 6148: /* module 24 call 04 pallet:council call:close_old_weight */
+ switch (itemIdx) {
+ case 0: /* council_close_old_weight_V1 - proposal_hash */;
+ return _toStringHash(
+ &m->basic.council_close_old_weight_V1.proposal_hash,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ case 1: /* council_close_old_weight_V1 - index */;
+ return _toStringCompactu32(
+ &m->basic.council_close_old_weight_V1.index,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ case 2: /* council_close_old_weight_V1 - proposal_weight_bound */;
+ return _toStringCompactu64(
+ &m->basic.council_close_old_weight_V1.proposal_weight_bound,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ case 3: /* council_close_old_weight_V1 - length_bound */;
+ return _toStringCompactu32(
+ &m->basic.council_close_old_weight_V1.length_bound,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ default:
+ return parser_no_data;
+ }
+case 6149: /* module 24 call 05 pallet:council call:disapprove_proposal */
+ switch (itemIdx) {
+ case 0: /* council_disapprove_proposal_V1 - proposal_hash */;
+ return _toStringHash(
+ &m->basic.council_disapprove_proposal_V1.proposal_hash,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ default:
+ return parser_no_data;
+ }
+case 6150: /* module 24 call 06 pallet:council call:close */
+ switch (itemIdx) {
+ case 0: /* council_close_V1 - proposal_hash */;
+ return _toStringHash(
+ &m->basic.council_close_V1.proposal_hash,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ case 1: /* council_close_V1 - index */;
+ return _toStringCompactu32(
+ &m->basic.council_close_V1.index,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ case 2: /* council_close_V1 - proposal_weight_bound */;
+ return _toStringWeight(
+ &m->basic.council_close_V1.proposal_weight_bound,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ case 3: /* council_close_V1 - length_bound */;
+ return _toStringCompactu32(
+ &m->basic.council_close_V1.length_bound,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ default:
+ return parser_no_data;
+ }
+case 4352: /* module 17 call 00 pallet:technicalcommittee call:set_members */
+ switch (itemIdx) {
+ case 0: /* technicalcommittee_set_members_V1 - new_members */;
+ return _toStringVecAccountId(
+ &m->basic.technicalcommittee_set_members_V1.new_members,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ case 1: /* technicalcommittee_set_members_V1 - prime */;
+ return _toStringOptionAccountId(
+ &m->basic.technicalcommittee_set_members_V1.prime,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ case 2: /* technicalcommittee_set_members_V1 - old_count */;
+ return _toStringMemberCount(
+ &m->basic.technicalcommittee_set_members_V1.old_count,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ default:
+ return parser_no_data;
+ }
+case 4353: /* module 17 call 01 pallet:technicalcommittee call:execute */
+ switch (itemIdx) {
+ case 0: /* technicalcommittee_execute_V1 - proposal */;
+ return _toStringProposal(
+ &m->basic.technicalcommittee_execute_V1.proposal,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ case 1: /* technicalcommittee_execute_V1 - length_bound */;
+ return _toStringCompactu32(
+ &m->basic.technicalcommittee_execute_V1.length_bound,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ default:
+ return parser_no_data;
+ }
+case 4354: /* module 17 call 02 pallet:technicalcommittee call:propose */
+ switch (itemIdx) {
+ case 0: /* technicalcommittee_propose_V1 - threshold */;
+ return _toStringCompactu32(
+ &m->basic.technicalcommittee_propose_V1.threshold,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ case 1: /* technicalcommittee_propose_V1 - proposal */;
+ return _toStringProposal(
+ &m->basic.technicalcommittee_propose_V1.proposal,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ case 2: /* technicalcommittee_propose_V1 - length_bound */;
+ return _toStringCompactu32(
+ &m->basic.technicalcommittee_propose_V1.length_bound,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ default:
+ return parser_no_data;
+ }
+case 4355: /* module 17 call 03 pallet:technicalcommittee call:vote */
+ switch (itemIdx) {
+ case 0: /* technicalcommittee_vote_V1 - proposal */;
+ return _toStringHash(
+ &m->basic.technicalcommittee_vote_V1.proposal,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ case 1: /* technicalcommittee_vote_V1 - index */;
+ return _toStringCompactu32(
+ &m->basic.technicalcommittee_vote_V1.index,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ case 2: /* technicalcommittee_vote_V1 - approve */;
+ return _toStringbool(
+ &m->basic.technicalcommittee_vote_V1.approve,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ default:
+ return parser_no_data;
+ }
+case 4356: /* module 17 call 04 pallet:technicalcommittee call:close_old_weight */
+ switch (itemIdx) {
+ case 0: /* technicalcommittee_close_old_weight_V1 - proposal_hash */;
+ return _toStringHash(
+ &m->basic.technicalcommittee_close_old_weight_V1.proposal_hash,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ case 1: /* technicalcommittee_close_old_weight_V1 - index */;
+ return _toStringCompactu32(
+ &m->basic.technicalcommittee_close_old_weight_V1.index,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ case 2: /* technicalcommittee_close_old_weight_V1 - proposal_weight_bound */;
+ return _toStringCompactu64(
+ &m->basic.technicalcommittee_close_old_weight_V1.proposal_weight_bound,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ case 3: /* technicalcommittee_close_old_weight_V1 - length_bound */;
+ return _toStringCompactu32(
+ &m->basic.technicalcommittee_close_old_weight_V1.length_bound,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ default:
+ return parser_no_data;
+ }
+case 4357: /* module 17 call 05 pallet:technicalcommittee call:disapprove_proposal */
+ switch (itemIdx) {
+ case 0: /* technicalcommittee_disapprove_proposal_V1 - proposal_hash */;
+ return _toStringHash(
+ &m->basic.technicalcommittee_disapprove_proposal_V1.proposal_hash,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ default:
+ return parser_no_data;
+ }
+case 4358: /* module 17 call 06 pallet:technicalcommittee call:close */
+ switch (itemIdx) {
+ case 0: /* technicalcommittee_close_V1 - proposal_hash */;
+ return _toStringHash(
+ &m->basic.technicalcommittee_close_V1.proposal_hash,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ case 1: /* technicalcommittee_close_V1 - index */;
+ return _toStringCompactu32(
+ &m->basic.technicalcommittee_close_V1.index,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ case 2: /* technicalcommittee_close_V1 - proposal_weight_bound */;
+ return _toStringWeight(
+ &m->basic.technicalcommittee_close_V1.proposal_weight_bound,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ case 3: /* technicalcommittee_close_V1 - length_bound */;
+ return _toStringCompactu32(
+ &m->basic.technicalcommittee_close_V1.length_bound,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ default:
+ return parser_no_data;
+ }
+case 6400: /* module 25 call 00 pallet:phragmenelection call:vote */
+ switch (itemIdx) {
+ case 0: /* phragmenelection_vote_V1 - votes */;
+ return _toStringVecAccountId(
+ &m->basic.phragmenelection_vote_V1.votes,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ case 1: /* phragmenelection_vote_V1 - amount */;
+ return _toStringCompactBalance(
+ &m->basic.phragmenelection_vote_V1.amount,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ default:
+ return parser_no_data;
+ }
+case 6401: /* module 25 call 01 pallet:phragmenelection call:remove_voter */
+ switch (itemIdx) {
+ default:
+ return parser_no_data;
+ }
+case 6402: /* module 25 call 02 pallet:phragmenelection call:submit_candidacy */
+ switch (itemIdx) {
+ case 0: /* phragmenelection_submit_candidacy_V1 - candidate_count */;
+ return _toStringCompactu32(
+ &m->basic.phragmenelection_submit_candidacy_V1.candidate_count,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ default:
+ return parser_no_data;
+ }
+case 6404: /* module 25 call 04 pallet:phragmenelection call:remove_member */
+ switch (itemIdx) {
+ case 0: /* phragmenelection_remove_member_V1 - who */;
+ return _toStringAccountIdLookupOfT(
+ &m->basic.phragmenelection_remove_member_V1.who,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ case 1: /* phragmenelection_remove_member_V1 - slash_bond */;
+ return _toStringbool(
+ &m->basic.phragmenelection_remove_member_V1.slash_bond,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ case 2: /* phragmenelection_remove_member_V1 - rerun_election */;
+ return _toStringbool(
+ &m->basic.phragmenelection_remove_member_V1.rerun_election,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ default:
+ return parser_no_data;
+ }
+case 6405: /* module 25 call 05 pallet:phragmenelection call:clean_defunct_voters */
+ switch (itemIdx) {
+ case 0: /* phragmenelection_clean_defunct_voters_V1 - num_voters */;
+ return _toStringu32(
+ &m->basic.phragmenelection_clean_defunct_voters_V1.num_voters,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ case 1: /* phragmenelection_clean_defunct_voters_V1 - num_defunct */;
+ return _toStringu32(
+ &m->basic.phragmenelection_clean_defunct_voters_V1.num_defunct,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ default:
+ return parser_no_data;
+ }
+case 4608: /* module 18 call 00 pallet:technicalmembership call:add_member */
+ switch (itemIdx) {
+ case 0: /* technicalmembership_add_member_V1 - who */;
+ return _toStringAccountIdLookupOfT(
+ &m->basic.technicalmembership_add_member_V1.who,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ default:
+ return parser_no_data;
+ }
+case 4609: /* module 18 call 01 pallet:technicalmembership call:remove_member */
+ switch (itemIdx) {
+ case 0: /* technicalmembership_remove_member_V1 - who */;
+ return _toStringAccountIdLookupOfT(
+ &m->basic.technicalmembership_remove_member_V1.who,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ default:
+ return parser_no_data;
+ }
+case 4610: /* module 18 call 02 pallet:technicalmembership call:swap_member */
+ switch (itemIdx) {
+ case 0: /* technicalmembership_swap_member_V1 - remove */;
+ return _toStringAccountIdLookupOfT(
+ &m->basic.technicalmembership_swap_member_V1.remove,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ case 1: /* technicalmembership_swap_member_V1 - add */;
+ return _toStringAccountIdLookupOfT(
+ &m->basic.technicalmembership_swap_member_V1.add,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ default:
+ return parser_no_data;
+ }
+case 4611: /* module 18 call 03 pallet:technicalmembership call:reset_members */
+ switch (itemIdx) {
+ case 0: /* technicalmembership_reset_members_V1 - members */;
+ return _toStringVecAccountId(
+ &m->basic.technicalmembership_reset_members_V1.members,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ default:
+ return parser_no_data;
+ }
+case 4612: /* module 18 call 04 pallet:technicalmembership call:change_key */
+ switch (itemIdx) {
+ case 0: /* technicalmembership_change_key_V1 - new_ */;
+ return _toStringAccountIdLookupOfT(
+ &m->basic.technicalmembership_change_key_V1.new_,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ default:
+ return parser_no_data;
+ }
+case 4613: /* module 18 call 05 pallet:technicalmembership call:set_prime */
+ switch (itemIdx) {
+ case 0: /* technicalmembership_set_prime_V1 - who */;
+ return _toStringAccountIdLookupOfT(
+ &m->basic.technicalmembership_set_prime_V1.who,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ default:
+ return parser_no_data;
+ }
+case 4614: /* module 18 call 06 pallet:technicalmembership call:clear_prime */
+ switch (itemIdx) {
+ default:
+ return parser_no_data;
+ }
+case 5120: /* module 20 call 00 pallet:treasury call:propose_spend */
+ switch (itemIdx) {
+ case 0: /* treasury_propose_spend_V1 - amount */;
+ return _toStringCompactBalance(
+ &m->basic.treasury_propose_spend_V1.amount,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ case 1: /* treasury_propose_spend_V1 - beneficiary */;
+ return _toStringAccountIdLookupOfT(
+ &m->basic.treasury_propose_spend_V1.beneficiary,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ default:
+ return parser_no_data;
+ }
+case 5121: /* module 20 call 01 pallet:treasury call:reject_proposal */
+ switch (itemIdx) {
+ case 0: /* treasury_reject_proposal_V1 - proposal_id */;
+ return _toStringCompactu32(
+ &m->basic.treasury_reject_proposal_V1.proposal_id,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ default:
+ return parser_no_data;
+ }
+case 5122: /* module 20 call 02 pallet:treasury call:approve_proposal */
+ switch (itemIdx) {
+ case 0: /* treasury_approve_proposal_V1 - proposal_id */;
+ return _toStringCompactu32(
+ &m->basic.treasury_approve_proposal_V1.proposal_id,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ default:
+ return parser_no_data;
+ }
+case 5123: /* module 20 call 03 pallet:treasury call:spend */
+ switch (itemIdx) {
+ case 0: /* treasury_spend_V1 - amount */;
+ return _toStringCompactBalance(
+ &m->basic.treasury_spend_V1.amount,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ case 1: /* treasury_spend_V1 - beneficiary */;
+ return _toStringAccountIdLookupOfT(
+ &m->basic.treasury_spend_V1.beneficiary,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ default:
+ return parser_no_data;
+ }
+case 5124: /* module 20 call 04 pallet:treasury call:remove_approval */
+ switch (itemIdx) {
+ case 0: /* treasury_remove_approval_V1 - proposal_id */;
+ return _toStringCompactu32(
+ &m->basic.treasury_remove_approval_V1.proposal_id,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ default:
+ return parser_no_data;
+ }
+case 7168: /* module 28 call 00 pallet:identity call:add_registrar */
+ switch (itemIdx) {
+ case 0: /* identity_add_registrar_V1 - account */;
+ return _toStringAccountIdLookupOfT(
+ &m->basic.identity_add_registrar_V1.account,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ default:
+ return parser_no_data;
+ }
+case 7169: /* module 28 call 01 pallet:identity call:set_identity */
+ switch (itemIdx) {
+ case 0: /* identity_set_identity_V1 - info */;
+ return _toStringIdentityInfo(
+ &m->basic.identity_set_identity_V1.info,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ default:
+ return parser_no_data;
+ }
+case 7170: /* module 28 call 02 pallet:identity call:set_subs */
+ switch (itemIdx) {
+ case 0: /* identity_set_subs_V1 - subs */;
+ return _toStringVecTupleAccountIdData(
+ &m->basic.identity_set_subs_V1.subs,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ default:
+ return parser_no_data;
+ }
+case 7171: /* module 28 call 03 pallet:identity call:clear_identity */
+ switch (itemIdx) {
+ default:
+ return parser_no_data;
+ }
+case 7172: /* module 28 call 04 pallet:identity call:request_judgement */
+ switch (itemIdx) {
+ case 0: /* identity_request_judgement_V1 - reg_index */;
+ return _toStringCompactu32(
+ &m->basic.identity_request_judgement_V1.reg_index,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ case 1: /* identity_request_judgement_V1 - max_fee */;
+ return _toStringCompactu128(
+ &m->basic.identity_request_judgement_V1.max_fee,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ default:
+ return parser_no_data;
+ }
+case 7173: /* module 28 call 05 pallet:identity call:cancel_request */
+ switch (itemIdx) {
+ case 0: /* identity_cancel_request_V1 - reg_index */;
+ return _toStringRegistrarIndex(
+ &m->basic.identity_cancel_request_V1.reg_index,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ default:
+ return parser_no_data;
+ }
+case 7174: /* module 28 call 06 pallet:identity call:set_fee */
+ switch (itemIdx) {
+ case 0: /* identity_set_fee_V1 - index */;
+ return _toStringCompactu32(
+ &m->basic.identity_set_fee_V1.index,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ case 1: /* identity_set_fee_V1 - fee */;
+ return _toStringCompactu128(
+ &m->basic.identity_set_fee_V1.fee,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ default:
+ return parser_no_data;
+ }
+case 7175: /* module 28 call 07 pallet:identity call:set_account_id */
+ switch (itemIdx) {
+ case 0: /* identity_set_account_id_V1 - index */;
+ return _toStringCompactu32(
+ &m->basic.identity_set_account_id_V1.index,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ case 1: /* identity_set_account_id_V1 - new_ */;
+ return _toStringAccountIdLookupOfT(
+ &m->basic.identity_set_account_id_V1.new_,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ default:
+ return parser_no_data;
+ }
+case 7177: /* module 28 call 09 pallet:identity call:provide_judgement */
+ switch (itemIdx) {
+ case 0: /* identity_provide_judgement_V1 - reg_index */;
+ return _toStringCompactu32(
+ &m->basic.identity_provide_judgement_V1.reg_index,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ case 1: /* identity_provide_judgement_V1 - target */;
+ return _toStringAccountIdLookupOfT(
+ &m->basic.identity_provide_judgement_V1.target,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ case 2: /* identity_provide_judgement_V1 - judgement */;
+ return _toStringJudgementBalanceOfT(
+ &m->basic.identity_provide_judgement_V1.judgement,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ case 3: /* identity_provide_judgement_V1 - identity */;
+ return _toStringHash(
+ &m->basic.identity_provide_judgement_V1.identity,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ default:
+ return parser_no_data;
+ }
+case 7178: /* module 28 call 10 pallet:identity call:kill_identity */
+ switch (itemIdx) {
+ case 0: /* identity_kill_identity_V1 - target */;
+ return _toStringAccountIdLookupOfT(
+ &m->basic.identity_kill_identity_V1.target,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ default:
+ return parser_no_data;
+ }
+case 7179: /* module 28 call 11 pallet:identity call:add_sub */
+ switch (itemIdx) {
+ case 0: /* identity_add_sub_V1 - sub */;
+ return _toStringAccountIdLookupOfT(
+ &m->basic.identity_add_sub_V1.sub,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ case 1: /* identity_add_sub_V1 - data */;
+ return _toStringData(
+ &m->basic.identity_add_sub_V1.data,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ default:
+ return parser_no_data;
+ }
+case 7180: /* module 28 call 12 pallet:identity call:rename_sub */
+ switch (itemIdx) {
+ case 0: /* identity_rename_sub_V1 - sub */;
+ return _toStringAccountIdLookupOfT(
+ &m->basic.identity_rename_sub_V1.sub,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ case 1: /* identity_rename_sub_V1 - data */;
+ return _toStringData(
+ &m->basic.identity_rename_sub_V1.data,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ default:
+ return parser_no_data;
+ }
+case 7181: /* module 28 call 13 pallet:identity call:remove_sub */
+ switch (itemIdx) {
+ case 0: /* identity_remove_sub_V1 - sub */;
+ return _toStringAccountIdLookupOfT(
+ &m->basic.identity_remove_sub_V1.sub,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ default:
+ return parser_no_data;
+ }
+case 7182: /* module 28 call 14 pallet:identity call:quit_sub */
+ switch (itemIdx) {
+ default:
+ return parser_no_data;
+ }
+case 6912: /* module 27 call 00 pallet:multisig call:as_multi_threshold_1 */
+ switch (itemIdx) {
+ case 0: /* multisig_as_multi_threshold_1_V1 - other_signatories */;
+ return _toStringVecAccountId(
+ &m->nested.multisig_as_multi_threshold_1_V1.other_signatories,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ case 1: /* multisig_as_multi_threshold_1_V1 - call */;
+ return _toStringCall(
+ &m->nested.multisig_as_multi_threshold_1_V1.call,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ default:
+ return parser_no_data;
+ }
+case 6913: /* module 27 call 01 pallet:multisig call:as_multi */
+ switch (itemIdx) {
+ case 0: /* multisig_as_multi_V1 - threshold */;
+ return _toStringu16(
+ &m->nested.multisig_as_multi_V1.threshold,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ case 1: /* multisig_as_multi_V1 - other_signatories */;
+ return _toStringVecAccountId(
+ &m->nested.multisig_as_multi_V1.other_signatories,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ case 2: /* multisig_as_multi_V1 - maybe_timepoint */;
+ return _toStringOptionTimepoint(
+ &m->nested.multisig_as_multi_V1.maybe_timepoint,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ case 3: /* multisig_as_multi_V1 - call */;
+ return _toStringCall(
+ &m->nested.multisig_as_multi_V1.call,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ case 4: /* multisig_as_multi_V1 - max_weight */;
+ return _toStringWeight(
+ &m->nested.multisig_as_multi_V1.max_weight,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ default:
+ return parser_no_data;
+ }
+case 6914: /* module 27 call 02 pallet:multisig call:approve_as_multi */
+ switch (itemIdx) {
+ case 0: /* multisig_approve_as_multi_V1 - threshold */;
+ return _toStringu16(
+ &m->nested.multisig_approve_as_multi_V1.threshold,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ case 1: /* multisig_approve_as_multi_V1 - other_signatories */;
+ return _toStringVecAccountId(
+ &m->nested.multisig_approve_as_multi_V1.other_signatories,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ case 2: /* multisig_approve_as_multi_V1 - maybe_timepoint */;
+ return _toStringOptionTimepoint(
+ &m->nested.multisig_approve_as_multi_V1.maybe_timepoint,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ case 3: /* multisig_approve_as_multi_V1 - call_hash */;
+ return _toStringH256(
+ &m->nested.multisig_approve_as_multi_V1.call_hash,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ case 4: /* multisig_approve_as_multi_V1 - max_weight */;
+ return _toStringWeight(
+ &m->nested.multisig_approve_as_multi_V1.max_weight,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ default:
+ return parser_no_data;
+ }
+case 6915: /* module 27 call 03 pallet:multisig call:cancel_as_multi */
+ switch (itemIdx) {
+ case 0: /* multisig_cancel_as_multi_V1 - threshold */;
+ return _toStringu16(
+ &m->nested.multisig_cancel_as_multi_V1.threshold,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ case 1: /* multisig_cancel_as_multi_V1 - other_signatories */;
+ return _toStringVecAccountId(
+ &m->nested.multisig_cancel_as_multi_V1.other_signatories,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ case 2: /* multisig_cancel_as_multi_V1 - timepoint */;
+ return _toStringTimepoint(
+ &m->nested.multisig_cancel_as_multi_V1.timepoint,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ case 3: /* multisig_cancel_as_multi_V1 - call_hash */;
+ return _toStringH256(
+ &m->nested.multisig_cancel_as_multi_V1.call_hash,
+ outValue, outValueLen,
+ pageIdx, pageCount);
+ default:
+ return parser_no_data;
+ }
+#endif
+ default:
+ return parser_ok;
+ }
-__Z_INLINE parser_error_t _readMethod_preimage_unrequest_preimage_V1(
- parser_context_t* c, pd_preimage_unrequest_preimage_V1_t* m)
-{
- CHECK_ERROR(_readHash(c, &m->hash))
- return parser_ok;
+ return parser_ok;
}
-__Z_INLINE parser_error_t _readMethod_bounties_propose_bounty_V1(
- parser_context_t* c, pd_bounties_propose_bounty_V1_t* m)
+bool _getMethod_ItemIsExpert_V1(uint8_t moduleIdx, uint8_t callIdx, uint8_t itemIdx)
{
- CHECK_ERROR(_readCompactBalance(c, &m->amount))
- CHECK_ERROR(_readBytes(c, &m->description))
- return parser_ok;
+ uint16_t callPrivIdx = ((uint16_t)moduleIdx << 8u) + callIdx;
+
+ switch (callPrivIdx) {
+ case 3331: // Staking:Withdraw Unbonded
+ switch (itemIdx) {
+ case 0: // Num slashing spans
+ return true;
+ default:
+ return false;
+ }
+ case 3343: // Staking:Force unstake
+ switch (itemIdx) {
+ case 1: // Num slashing spans
+ return true;
+ default:
+ return false;
+ }
+ case 3348: // Staking:Reap stash
+ switch (itemIdx) {
+ case 1: // Num slashing spans
+ return true;
+ default:
+ return false;
+ }
+ switch (itemIdx) {
+ case 1: // Num slashing spans
+ return true;
+ default:
+ return false;
+ }
+ switch (itemIdx) {
+ case 1: // Num slashing spans
+ return true;
+ default:
+ return false;
+ }
+
+ default:
+ return false;
+ }
}
-__Z_INLINE parser_error_t _readMethod_bounties_approve_bounty_V1(
- parser_context_t* c, pd_bounties_approve_bounty_V1_t* m)
+bool _getMethod_IsNestingSupported_V1(uint8_t moduleIdx, uint8_t callIdx)
{
- CHECK_ERROR(_readCompactu32(c, &m->bounty_id))
- return parser_ok;
+ uint16_t callPrivIdx = ((uint16_t)moduleIdx << 8u) + callIdx;
+
+ switch (callPrivIdx) {
+case 768: /* module 03 call 00 pallet:timestamp call:set */
+case 1024: /* module 04 call 00 pallet:balances call:transfer */
+case 1028: /* module 04 call 04 pallet:balances call:transfer_all */
+case 1029: /* module 04 call 05 pallet:balances call:force_unreserve */
+case 3328: /* module 13 call 00 pallet:staking call:bond */
+case 3329: /* module 13 call 01 pallet:staking call:bond_extra */
+case 3331: /* module 13 call 03 pallet:staking call:withdraw_unbonded */
+case 3332: /* module 13 call 04 pallet:staking call:validate */
+case 3335: /* module 13 call 07 pallet:staking call:set_payee */
+case 3337: /* module 13 call 09 pallet:staking call:set_validator_count */
+case 3338: /* module 13 call 10 pallet:staking call:increase_validator_count */
+case 3339: /* module 13 call 11 pallet:staking call:scale_validator_count */
+case 3340: /* module 13 call 12 pallet:staking call:force_no_eras */
+case 3341: /* module 13 call 13 pallet:staking call:force_new_era */
+case 3342: /* module 13 call 14 pallet:staking call:set_invulnerables */
+case 3343: /* module 13 call 15 pallet:staking call:force_unstake */
+case 3344: /* module 13 call 16 pallet:staking call:force_new_era_always */
+case 3346: /* module 13 call 18 pallet:staking call:payout_stakers */
+case 3347: /* module 13 call 19 pallet:staking call:rebond */
+case 3348: /* module 13 call 20 pallet:staking call:reap_stash */
+case 3349: /* module 13 call 21 pallet:staking call:kick */
+case 3350: /* module 13 call 22 pallet:staking call:set_staking_configs */
+case 3334: /* module 13 call 06 pallet:staking call:chill */
+case 3351: /* module 13 call 23 pallet:staking call:chill_other */
+case 3352: /* module 13 call 24 pallet:staking call:force_apply_min_commission */
+case 2304: /* module 09 call 00 pallet:session call:set_keys */
+case 2305: /* module 09 call 01 pallet:session call:purge_keys */
+case 6144: /* module 24 call 00 pallet:council call:set_members */
+case 6145: /* module 24 call 01 pallet:council call:execute */
+case 6146: /* module 24 call 02 pallet:council call:propose */
+case 6147: /* module 24 call 03 pallet:council call:vote */
+case 6148: /* module 24 call 04 pallet:council call:close_old_weight */
+case 6149: /* module 24 call 05 pallet:council call:disapprove_proposal */
+case 6150: /* module 24 call 06 pallet:council call:close */
+case 4352: /* module 17 call 00 pallet:technicalcommittee call:set_members */
+case 4353: /* module 17 call 01 pallet:technicalcommittee call:execute */
+case 4354: /* module 17 call 02 pallet:technicalcommittee call:propose */
+case 4355: /* module 17 call 03 pallet:technicalcommittee call:vote */
+case 4356: /* module 17 call 04 pallet:technicalcommittee call:close_old_weight */
+case 4357: /* module 17 call 05 pallet:technicalcommittee call:disapprove_proposal */
+case 4358: /* module 17 call 06 pallet:technicalcommittee call:close */
+case 6400: /* module 25 call 00 pallet:phragmenelection call:vote */
+case 6401: /* module 25 call 01 pallet:phragmenelection call:remove_voter */
+case 6402: /* module 25 call 02 pallet:phragmenelection call:submit_candidacy */
+case 6404: /* module 25 call 04 pallet:phragmenelection call:remove_member */
+case 6405: /* module 25 call 05 pallet:phragmenelection call:clean_defunct_voters */
+case 4608: /* module 18 call 00 pallet:technicalmembership call:add_member */
+case 4609: /* module 18 call 01 pallet:technicalmembership call:remove_member */
+case 4610: /* module 18 call 02 pallet:technicalmembership call:swap_member */
+case 4611: /* module 18 call 03 pallet:technicalmembership call:reset_members */
+case 4612: /* module 18 call 04 pallet:technicalmembership call:change_key */
+case 4613: /* module 18 call 05 pallet:technicalmembership call:set_prime */
+case 4614: /* module 18 call 06 pallet:technicalmembership call:clear_prime */
+case 5120: /* module 20 call 00 pallet:treasury call:propose_spend */
+case 5121: /* module 20 call 01 pallet:treasury call:reject_proposal */
+case 5122: /* module 20 call 02 pallet:treasury call:approve_proposal */
+case 5123: /* module 20 call 03 pallet:treasury call:spend */
+case 5124: /* module 20 call 04 pallet:treasury call:remove_approval */
+case 5376: /* module 21 call 00 pallet:utility call:batch */
+case 5378: /* module 21 call 02 pallet:utility call:batch_all */
+case 5380: /* module 21 call 04 pallet:utility call:force_batch */
+case 7168: /* module 28 call 00 pallet:identity call:add_registrar */
+case 7169: /* module 28 call 01 pallet:identity call:set_identity */
+case 7170: /* module 28 call 02 pallet:identity call:set_subs */
+case 7171: /* module 28 call 03 pallet:identity call:clear_identity */
+case 7172: /* module 28 call 04 pallet:identity call:request_judgement */
+case 7173: /* module 28 call 05 pallet:identity call:cancel_request */
+case 7174: /* module 28 call 06 pallet:identity call:set_fee */
+case 7175: /* module 28 call 07 pallet:identity call:set_account_id */
+case 7177: /* module 28 call 09 pallet:identity call:provide_judgement */
+case 7178: /* module 28 call 10 pallet:identity call:kill_identity */
+case 7179: /* module 28 call 11 pallet:identity call:add_sub */
+case 7180: /* module 28 call 12 pallet:identity call:rename_sub */
+case 7181: /* module 28 call 13 pallet:identity call:remove_sub */
+case 7182: /* module 28 call 14 pallet:identity call:quit_sub */
+ return false;
+ default:
+ return true;
+ }
}
-
-__Z_INLINE parser_error_t _readMethod_bounties_propose_curator_V1(
- parser_context_t* c, pd_bounties_propose_curator_V1_t* m)
-{
- CHECK_ERROR(_readCompactu32(c, &m->bounty_id))
- CHECK_ERROR(_readLookupasStaticLookupSource_V1(c, &m->curator))
- CHECK_ERROR(_readCompactBalance(c, &m->fee))
- return parser_ok;
-}
-
-__Z_INLINE parser_error_t _readMethod_bounties_unassign_curator_V1(
- parser_context_t* c, pd_bounties_unassign_curator_V1_t* m)
-{
- CHECK_ERROR(_readCompactu32(c, &m->bounty_id))
- return parser_ok;
-}
-
-__Z_INLINE parser_error_t _readMethod_bounties_accept_curator_V1(
- parser_context_t* c, pd_bounties_accept_curator_V1_t* m)
-{
- CHECK_ERROR(_readCompactu32(c, &m->bounty_id))
- return parser_ok;
-}
-
-__Z_INLINE parser_error_t _readMethod_bounties_award_bounty_V1(
- parser_context_t* c, pd_bounties_award_bounty_V1_t* m)
-{
- CHECK_ERROR(_readCompactu32(c, &m->bounty_id))
- CHECK_ERROR(_readLookupasStaticLookupSource_V1(c, &m->beneficiary))
- return parser_ok;
-}
-
-__Z_INLINE parser_error_t _readMethod_bounties_claim_bounty_V1(
- parser_context_t* c, pd_bounties_claim_bounty_V1_t* m)
-{
- CHECK_ERROR(_readCompactu32(c, &m->bounty_id))
- return parser_ok;
-}
-
-__Z_INLINE parser_error_t _readMethod_bounties_close_bounty_V1(
- parser_context_t* c, pd_bounties_close_bounty_V1_t* m)
-{
- CHECK_ERROR(_readCompactu32(c, &m->bounty_id))
- return parser_ok;
-}
-
-__Z_INLINE parser_error_t _readMethod_bounties_extend_bounty_expiry_V1(
- parser_context_t* c, pd_bounties_extend_bounty_expiry_V1_t* m)
-{
- CHECK_ERROR(_readCompactu32(c, &m->bounty_id))
- CHECK_ERROR(_readBytes(c, &m->remark))
- return parser_ok;
-}
-
-__Z_INLINE parser_error_t _readMethod_childbounties_add_child_bounty_V1(
- parser_context_t* c, pd_childbounties_add_child_bounty_V1_t* m)
-{
- CHECK_ERROR(_readCompactu32(c, &m->parent_bounty_id))
- CHECK_ERROR(_readCompactBalance(c, &m->amount))
- CHECK_ERROR(_readVecu8(c, &m->description))
- return parser_ok;
-}
-
-__Z_INLINE parser_error_t _readMethod_childbounties_propose_curator_V1(
- parser_context_t* c, pd_childbounties_propose_curator_V1_t* m)
-{
- CHECK_ERROR(_readCompactu32(c, &m->parent_bounty_id))
- CHECK_ERROR(_readCompactu32(c, &m->child_bounty_id))
- CHECK_ERROR(_readLookupasStaticLookupSource_V1(c, &m->curator))
- CHECK_ERROR(_readCompactBalance(c, &m->fee))
- return parser_ok;
-}
-
-__Z_INLINE parser_error_t _readMethod_childbounties_accept_curator_V1(
- parser_context_t* c, pd_childbounties_accept_curator_V1_t* m)
-{
- CHECK_ERROR(_readCompactu32(c, &m->parent_bounty_id))
- CHECK_ERROR(_readCompactu32(c, &m->child_bounty_id))
- return parser_ok;
-}
-
-__Z_INLINE parser_error_t _readMethod_childbounties_unassign_curator_V1(
- parser_context_t* c, pd_childbounties_unassign_curator_V1_t* m)
-{
- CHECK_ERROR(_readCompactu32(c, &m->parent_bounty_id))
- CHECK_ERROR(_readCompactu32(c, &m->child_bounty_id))
- return parser_ok;
-}
-
-__Z_INLINE parser_error_t _readMethod_childbounties_award_child_bounty_V1(
- parser_context_t* c, pd_childbounties_award_child_bounty_V1_t* m)
-{
- CHECK_ERROR(_readCompactu32(c, &m->parent_bounty_id))
- CHECK_ERROR(_readCompactu32(c, &m->child_bounty_id))
- CHECK_ERROR(_readLookupasStaticLookupSource_V1(c, &m->beneficiary))
- return parser_ok;
-}
-
-__Z_INLINE parser_error_t _readMethod_childbounties_claim_child_bounty_V1(
- parser_context_t* c, pd_childbounties_claim_child_bounty_V1_t* m)
-{
- CHECK_ERROR(_readCompactu32(c, &m->parent_bounty_id))
- CHECK_ERROR(_readCompactu32(c, &m->child_bounty_id))
- return parser_ok;
-}
-
-__Z_INLINE parser_error_t _readMethod_childbounties_close_child_bounty_V1(
- parser_context_t* c, pd_childbounties_close_child_bounty_V1_t* m)
-{
- CHECK_ERROR(_readCompactu32(c, &m->parent_bounty_id))
- CHECK_ERROR(_readCompactu32(c, &m->child_bounty_id))
- return parser_ok;
-}
-
-__Z_INLINE parser_error_t _readMethod_tips_report_awesome_V1(
- parser_context_t* c, pd_tips_report_awesome_V1_t* m)
-{
- CHECK_ERROR(_readBytes(c, &m->reason))
- CHECK_ERROR(_readAccountId_V1(c, &m->who))
- return parser_ok;
-}
-
-__Z_INLINE parser_error_t _readMethod_tips_retract_tip_V1(
- parser_context_t* c, pd_tips_retract_tip_V1_t* m)
-{
- CHECK_ERROR(_readHash(c, &m->hash))
- return parser_ok;
-}
-
-__Z_INLINE parser_error_t _readMethod_tips_tip_new_V1(
- parser_context_t* c, pd_tips_tip_new_V1_t* m)
-{
- CHECK_ERROR(_readBytes(c, &m->reason))
- CHECK_ERROR(_readAccountId_V1(c, &m->who))
- CHECK_ERROR(_readCompactu128(c, &m->tip_value))
- return parser_ok;
-}
-
-__Z_INLINE parser_error_t _readMethod_tips_tip_V1(
- parser_context_t* c, pd_tips_tip_V1_t* m)
-{
- CHECK_ERROR(_readHash(c, &m->hash))
- CHECK_ERROR(_readCompactu128(c, &m->tip_value))
- return parser_ok;
-}
-
-__Z_INLINE parser_error_t _readMethod_tips_close_tip_V1(
- parser_context_t* c, pd_tips_close_tip_V1_t* m)
-{
- CHECK_ERROR(_readHash(c, &m->hash))
- return parser_ok;
-}
-
-__Z_INLINE parser_error_t _readMethod_tips_slash_tip_V1(
- parser_context_t* c, pd_tips_slash_tip_V1_t* m)
-{
- CHECK_ERROR(_readHash(c, &m->hash))
- return parser_ok;
-}
-
-__Z_INLINE parser_error_t _readMethod_electionprovidermultiphase_governance_fallback_V1(
- parser_context_t* c, pd_electionprovidermultiphase_governance_fallback_V1_t* m)
-{
- CHECK_ERROR(_readOptionu32(c, &m->maybe_max_voters))
- CHECK_ERROR(_readOptionu32(c, &m->maybe_max_targets))
- return parser_ok;
-}
-
-__Z_INLINE parser_error_t _readMethod_gilt_place_bid_V1(
- parser_context_t* c, pd_gilt_place_bid_V1_t* m)
-{
- CHECK_ERROR(_readCompactBalance(c, &m->amount))
- CHECK_ERROR(_readu32(c, &m->duration))
- return parser_ok;
-}
-
-__Z_INLINE parser_error_t _readMethod_gilt_retract_bid_V1(
- parser_context_t* c, pd_gilt_retract_bid_V1_t* m)
-{
- CHECK_ERROR(_readCompactBalance(c, &m->amount))
- CHECK_ERROR(_readu32(c, &m->duration))
- return parser_ok;
-}
-
-__Z_INLINE parser_error_t _readMethod_gilt_set_target_V1(
- parser_context_t* c, pd_gilt_set_target_V1_t* m)
-{
- CHECK_ERROR(_readCompactu64(c, &m->target))
- return parser_ok;
-}
-
-__Z_INLINE parser_error_t _readMethod_gilt_thaw_V1(
- parser_context_t* c, pd_gilt_thaw_V1_t* m)
-{
- CHECK_ERROR(_readCompactu32(c, &m->index))
- return parser_ok;
-}
-
-__Z_INLINE parser_error_t _readMethod_voterlist_rebag_V1(
- parser_context_t* c, pd_voterlist_rebag_V1_t* m)
-{
- CHECK_ERROR(_readAccountId_V1(c, &m->dislocated))
- return parser_ok;
-}
-
-__Z_INLINE parser_error_t _readMethod_voterlist_put_in_front_of_V1(
- parser_context_t* c, pd_voterlist_put_in_front_of_V1_t* m)
-{
- CHECK_ERROR(_readAccountId_V1(c, &m->lighter))
- return parser_ok;
-}
-
-__Z_INLINE parser_error_t _readMethod_nominationpools_join_V1(
- parser_context_t* c, pd_nominationpools_join_V1_t* m)
-{
- CHECK_ERROR(_readCompactu128(c, &m->amount))
- CHECK_ERROR(_readPoolId_V1(c, &m->pool_id))
- return parser_ok;
-}
-
-__Z_INLINE parser_error_t _readMethod_nominationpools_bond_extra_V1(
- parser_context_t* c, pd_nominationpools_bond_extra_V1_t* m)
-{
- CHECK_ERROR(_readBondExtraBalanceOfT_V1(c, &m->extra))
- return parser_ok;
-}
-
-__Z_INLINE parser_error_t _readMethod_nominationpools_claim_payout_V1(
- parser_context_t* c, pd_nominationpools_claim_payout_V1_t* m)
-{
- return parser_ok;
-}
-
-__Z_INLINE parser_error_t _readMethod_nominationpools_unbond_V1(
- parser_context_t* c, pd_nominationpools_unbond_V1_t* m)
-{
- CHECK_ERROR(_readAccountId_V1(c, &m->member_account))
- CHECK_ERROR(_readCompactu128(c, &m->unbonding_points))
- return parser_ok;
-}
-
-__Z_INLINE parser_error_t _readMethod_nominationpools_pool_withdraw_unbonded_V1(
- parser_context_t* c, pd_nominationpools_pool_withdraw_unbonded_V1_t* m)
-{
- CHECK_ERROR(_readPoolId_V1(c, &m->pool_id))
- CHECK_ERROR(_readu32(c, &m->num_slashing_spans))
- return parser_ok;
-}
-
-__Z_INLINE parser_error_t _readMethod_nominationpools_withdraw_unbonded_V1(
- parser_context_t* c, pd_nominationpools_withdraw_unbonded_V1_t* m)
-{
- CHECK_ERROR(_readAccountId_V1(c, &m->member_account))
- CHECK_ERROR(_readu32(c, &m->num_slashing_spans))
- return parser_ok;
-}
-
-__Z_INLINE parser_error_t _readMethod_nominationpools_create_V1(
- parser_context_t* c, pd_nominationpools_create_V1_t* m)
-{
- CHECK_ERROR(_readCompactu128(c, &m->amount))
- CHECK_ERROR(_readAccountId_V1(c, &m->root))
- CHECK_ERROR(_readAccountId_V1(c, &m->nominator))
- CHECK_ERROR(_readAccountId_V1(c, &m->state_toggler))
- return parser_ok;
-}
-
-__Z_INLINE parser_error_t _readMethod_nominationpools_nominate_V1(
- parser_context_t* c, pd_nominationpools_nominate_V1_t* m)
-{
- CHECK_ERROR(_readPoolId_V1(c, &m->pool_id))
- CHECK_ERROR(_readVecAccountId_V1(c, &m->validators))
- return parser_ok;
-}
-
-__Z_INLINE parser_error_t _readMethod_nominationpools_set_state_V1(
- parser_context_t* c, pd_nominationpools_set_state_V1_t* m)
-{
- CHECK_ERROR(_readPoolId_V1(c, &m->pool_id))
- CHECK_ERROR(_readPoolState_V1(c, &m->state))
- return parser_ok;
-}
-
-__Z_INLINE parser_error_t _readMethod_nominationpools_set_metadata_V1(
- parser_context_t* c, pd_nominationpools_set_metadata_V1_t* m)
-{
- CHECK_ERROR(_readPoolId_V1(c, &m->pool_id))
- CHECK_ERROR(_readVecu8(c, &m->metadata))
- return parser_ok;
-}
-
-__Z_INLINE parser_error_t _readMethod_nominationpools_set_configs_V1(
- parser_context_t* c, pd_nominationpools_set_configs_V1_t* m)
-{
- CHECK_ERROR(_readConfigOpBalanceOfT_V1(c, &m->min_join_bond))
- CHECK_ERROR(_readConfigOpBalanceOfT_V1(c, &m->min_create_bond))
- CHECK_ERROR(_readConfigOpu32_V1(c, &m->max_pools))
- CHECK_ERROR(_readConfigOpu32_V1(c, &m->max_members))
- CHECK_ERROR(_readConfigOpu32_V1(c, &m->max_members_per_pool))
- return parser_ok;
-}
-
-__Z_INLINE parser_error_t _readMethod_nominationpools_update_roles_V1(
- parser_context_t* c, pd_nominationpools_update_roles_V1_t* m)
-{
- CHECK_ERROR(_readPoolId_V1(c, &m->pool_id))
- CHECK_ERROR(_readConfigOpAccountId_V1(c, &m->new_root))
- CHECK_ERROR(_readConfigOpAccountId_V1(c, &m->new_nominator))
- CHECK_ERROR(_readConfigOpAccountId_V1(c, &m->new_state_toggler))
- return parser_ok;
-}
-
-__Z_INLINE parser_error_t _readMethod_nominationpools_chill_V1(
- parser_context_t* c, pd_nominationpools_chill_V1_t* m)
-{
- CHECK_ERROR(_readPoolId_V1(c, &m->pool_id))
- return parser_ok;
-}
-
-__Z_INLINE parser_error_t _readMethod_configuration_set_validation_upgrade_cooldown_V1(
- parser_context_t* c, pd_configuration_set_validation_upgrade_cooldown_V1_t* m)
-{
- CHECK_ERROR(_readBlockNumber(c, &m->new_))
- return parser_ok;
-}
-
-__Z_INLINE parser_error_t _readMethod_configuration_set_validation_upgrade_delay_V1(
- parser_context_t* c, pd_configuration_set_validation_upgrade_delay_V1_t* m)
-{
- CHECK_ERROR(_readBlockNumber(c, &m->new_))
- return parser_ok;
-}
-
-__Z_INLINE parser_error_t _readMethod_configuration_set_code_retention_period_V1(
- parser_context_t* c, pd_configuration_set_code_retention_period_V1_t* m)
-{
- CHECK_ERROR(_readBlockNumber(c, &m->new_))
- return parser_ok;
-}
-
-__Z_INLINE parser_error_t _readMethod_configuration_set_max_code_size_V1(
- parser_context_t* c, pd_configuration_set_max_code_size_V1_t* m)
-{
- CHECK_ERROR(_readu32(c, &m->new_))
- return parser_ok;
-}
-
-__Z_INLINE parser_error_t _readMethod_configuration_set_max_pov_size_V1(
- parser_context_t* c, pd_configuration_set_max_pov_size_V1_t* m)
-{
- CHECK_ERROR(_readu32(c, &m->new_))
- return parser_ok;
-}
-
-__Z_INLINE parser_error_t _readMethod_configuration_set_max_head_data_size_V1(
- parser_context_t* c, pd_configuration_set_max_head_data_size_V1_t* m)
-{
- CHECK_ERROR(_readu32(c, &m->new_))
- return parser_ok;
-}
-
-__Z_INLINE parser_error_t _readMethod_configuration_set_parathread_cores_V1(
- parser_context_t* c, pd_configuration_set_parathread_cores_V1_t* m)
-{
- CHECK_ERROR(_readu32(c, &m->new_))
- return parser_ok;
-}
-
-__Z_INLINE parser_error_t _readMethod_configuration_set_parathread_retries_V1(
- parser_context_t* c, pd_configuration_set_parathread_retries_V1_t* m)
-{
- CHECK_ERROR(_readu32(c, &m->new_))
- return parser_ok;
-}
-
-__Z_INLINE parser_error_t _readMethod_configuration_set_group_rotation_frequency_V1(
- parser_context_t* c, pd_configuration_set_group_rotation_frequency_V1_t* m)
-{
- CHECK_ERROR(_readBlockNumber(c, &m->new_))
- return parser_ok;
-}
-
-__Z_INLINE parser_error_t _readMethod_configuration_set_chain_availability_period_V1(
- parser_context_t* c, pd_configuration_set_chain_availability_period_V1_t* m)
-{
- CHECK_ERROR(_readBlockNumber(c, &m->new_))
- return parser_ok;
-}
-
-__Z_INLINE parser_error_t _readMethod_configuration_set_thread_availability_period_V1(
- parser_context_t* c, pd_configuration_set_thread_availability_period_V1_t* m)
-{
- CHECK_ERROR(_readBlockNumber(c, &m->new_))
- return parser_ok;
-}
-
-__Z_INLINE parser_error_t _readMethod_configuration_set_scheduling_lookahead_V1(
- parser_context_t* c, pd_configuration_set_scheduling_lookahead_V1_t* m)
-{
- CHECK_ERROR(_readu32(c, &m->new_))
- return parser_ok;
-}
-
-__Z_INLINE parser_error_t _readMethod_configuration_set_max_validators_per_core_V1(
- parser_context_t* c, pd_configuration_set_max_validators_per_core_V1_t* m)
-{
- CHECK_ERROR(_readOptionu32(c, &m->new_))
- return parser_ok;
-}
-
-__Z_INLINE parser_error_t _readMethod_configuration_set_max_validators_V1(
- parser_context_t* c, pd_configuration_set_max_validators_V1_t* m)
-{
- CHECK_ERROR(_readOptionu32(c, &m->new_))
- return parser_ok;
-}
-
-__Z_INLINE parser_error_t _readMethod_configuration_set_dispute_period_V1(
- parser_context_t* c, pd_configuration_set_dispute_period_V1_t* m)
-{
- CHECK_ERROR(_readSessionIndex_V1(c, &m->new_))
- return parser_ok;
-}
-
-__Z_INLINE parser_error_t _readMethod_configuration_set_dispute_post_conclusion_acceptance_period_V1(
- parser_context_t* c, pd_configuration_set_dispute_post_conclusion_acceptance_period_V1_t* m)
-{
- CHECK_ERROR(_readBlockNumber(c, &m->new_))
- return parser_ok;
-}
-
-__Z_INLINE parser_error_t _readMethod_configuration_set_dispute_max_spam_slots_V1(
- parser_context_t* c, pd_configuration_set_dispute_max_spam_slots_V1_t* m)
-{
- CHECK_ERROR(_readu32(c, &m->new_))
- return parser_ok;
-}
-
-__Z_INLINE parser_error_t _readMethod_configuration_set_dispute_conclusion_by_time_out_period_V1(
- parser_context_t* c, pd_configuration_set_dispute_conclusion_by_time_out_period_V1_t* m)
-{
- CHECK_ERROR(_readBlockNumber(c, &m->new_))
- return parser_ok;
-}
-
-__Z_INLINE parser_error_t _readMethod_configuration_set_no_show_slots_V1(
- parser_context_t* c, pd_configuration_set_no_show_slots_V1_t* m)
-{
- CHECK_ERROR(_readu32(c, &m->new_))
- return parser_ok;
-}
-
-__Z_INLINE parser_error_t _readMethod_configuration_set_n_delay_tranches_V1(
- parser_context_t* c, pd_configuration_set_n_delay_tranches_V1_t* m)
-{
- CHECK_ERROR(_readu32(c, &m->new_))
- return parser_ok;
-}
-
-__Z_INLINE parser_error_t _readMethod_configuration_set_zeroth_delay_tranche_width_V1(
- parser_context_t* c, pd_configuration_set_zeroth_delay_tranche_width_V1_t* m)
-{
- CHECK_ERROR(_readu32(c, &m->new_))
- return parser_ok;
-}
-
-__Z_INLINE parser_error_t _readMethod_configuration_set_needed_approvals_V1(
- parser_context_t* c, pd_configuration_set_needed_approvals_V1_t* m)
-{
- CHECK_ERROR(_readu32(c, &m->new_))
- return parser_ok;
-}
-
-__Z_INLINE parser_error_t _readMethod_configuration_set_relay_vrf_modulo_samples_V1(
- parser_context_t* c, pd_configuration_set_relay_vrf_modulo_samples_V1_t* m)
-{
- CHECK_ERROR(_readu32(c, &m->new_))
- return parser_ok;
-}
-
-__Z_INLINE parser_error_t _readMethod_configuration_set_max_upward_queue_count_V1(
- parser_context_t* c, pd_configuration_set_max_upward_queue_count_V1_t* m)
-{
- CHECK_ERROR(_readu32(c, &m->new_))
- return parser_ok;
-}
-
-__Z_INLINE parser_error_t _readMethod_configuration_set_max_upward_queue_size_V1(
- parser_context_t* c, pd_configuration_set_max_upward_queue_size_V1_t* m)
-{
- CHECK_ERROR(_readu32(c, &m->new_))
- return parser_ok;
-}
-
-__Z_INLINE parser_error_t _readMethod_configuration_set_max_downward_message_size_V1(
- parser_context_t* c, pd_configuration_set_max_downward_message_size_V1_t* m)
-{
- CHECK_ERROR(_readu32(c, &m->new_))
- return parser_ok;
-}
-
-__Z_INLINE parser_error_t _readMethod_configuration_set_ump_service_total_weight_V1(
- parser_context_t* c, pd_configuration_set_ump_service_total_weight_V1_t* m)
-{
- CHECK_ERROR(_readWeight_V1(c, &m->new_))
- return parser_ok;
-}
-
-__Z_INLINE parser_error_t _readMethod_configuration_set_max_upward_message_size_V1(
- parser_context_t* c, pd_configuration_set_max_upward_message_size_V1_t* m)
-{
- CHECK_ERROR(_readu32(c, &m->new_))
- return parser_ok;
-}
-
-__Z_INLINE parser_error_t _readMethod_configuration_set_max_upward_message_num_per_candidate_V1(
- parser_context_t* c, pd_configuration_set_max_upward_message_num_per_candidate_V1_t* m)
-{
- CHECK_ERROR(_readu32(c, &m->new_))
- return parser_ok;
-}
-
-__Z_INLINE parser_error_t _readMethod_configuration_set_hrmp_open_request_ttl_V1(
- parser_context_t* c, pd_configuration_set_hrmp_open_request_ttl_V1_t* m)
-{
- CHECK_ERROR(_readu32(c, &m->new_))
- return parser_ok;
-}
-
-__Z_INLINE parser_error_t _readMethod_configuration_set_hrmp_sender_deposit_V1(
- parser_context_t* c, pd_configuration_set_hrmp_sender_deposit_V1_t* m)
-{
- CHECK_ERROR(_readBalance(c, &m->new_))
- return parser_ok;
-}
-
-__Z_INLINE parser_error_t _readMethod_configuration_set_hrmp_recipient_deposit_V1(
- parser_context_t* c, pd_configuration_set_hrmp_recipient_deposit_V1_t* m)
-{
- CHECK_ERROR(_readBalance(c, &m->new_))
- return parser_ok;
-}
-
-__Z_INLINE parser_error_t _readMethod_configuration_set_hrmp_channel_max_capacity_V1(
- parser_context_t* c, pd_configuration_set_hrmp_channel_max_capacity_V1_t* m)
-{
- CHECK_ERROR(_readu32(c, &m->new_))
- return parser_ok;
-}
-
-__Z_INLINE parser_error_t _readMethod_configuration_set_hrmp_channel_max_total_size_V1(
- parser_context_t* c, pd_configuration_set_hrmp_channel_max_total_size_V1_t* m)
-{
- CHECK_ERROR(_readu32(c, &m->new_))
- return parser_ok;
-}
-
-__Z_INLINE parser_error_t _readMethod_configuration_set_hrmp_max_parachain_inbound_channels_V1(
- parser_context_t* c, pd_configuration_set_hrmp_max_parachain_inbound_channels_V1_t* m)
-{
- CHECK_ERROR(_readu32(c, &m->new_))
- return parser_ok;
-}
-
-__Z_INLINE parser_error_t _readMethod_configuration_set_hrmp_max_parathread_inbound_channels_V1(
- parser_context_t* c, pd_configuration_set_hrmp_max_parathread_inbound_channels_V1_t* m)
-{
- CHECK_ERROR(_readu32(c, &m->new_))
- return parser_ok;
-}
-
-__Z_INLINE parser_error_t _readMethod_configuration_set_hrmp_channel_max_message_size_V1(
- parser_context_t* c, pd_configuration_set_hrmp_channel_max_message_size_V1_t* m)
-{
- CHECK_ERROR(_readu32(c, &m->new_))
- return parser_ok;
-}
-
-__Z_INLINE parser_error_t _readMethod_configuration_set_hrmp_max_parachain_outbound_channels_V1(
- parser_context_t* c, pd_configuration_set_hrmp_max_parachain_outbound_channels_V1_t* m)
-{
- CHECK_ERROR(_readu32(c, &m->new_))
- return parser_ok;
-}
-
-__Z_INLINE parser_error_t _readMethod_configuration_set_hrmp_max_parathread_outbound_channels_V1(
- parser_context_t* c, pd_configuration_set_hrmp_max_parathread_outbound_channels_V1_t* m)
-{
- CHECK_ERROR(_readu32(c, &m->new_))
- return parser_ok;
-}
-
-__Z_INLINE parser_error_t _readMethod_configuration_set_hrmp_max_message_num_per_candidate_V1(
- parser_context_t* c, pd_configuration_set_hrmp_max_message_num_per_candidate_V1_t* m)
-{
- CHECK_ERROR(_readu32(c, &m->new_))
- return parser_ok;
-}
-
-__Z_INLINE parser_error_t _readMethod_configuration_set_ump_max_individual_weight_V1(
- parser_context_t* c, pd_configuration_set_ump_max_individual_weight_V1_t* m)
-{
- CHECK_ERROR(_readWeight_V1(c, &m->new_))
- return parser_ok;
-}
-
-__Z_INLINE parser_error_t _readMethod_configuration_set_pvf_checking_enabled_V1(
- parser_context_t* c, pd_configuration_set_pvf_checking_enabled_V1_t* m)
-{
- CHECK_ERROR(_readbool(c, &m->new_))
- return parser_ok;
-}
-
-__Z_INLINE parser_error_t _readMethod_configuration_set_pvf_voting_ttl_V1(
- parser_context_t* c, pd_configuration_set_pvf_voting_ttl_V1_t* m)
-{
- CHECK_ERROR(_readSessionIndex_V1(c, &m->new_))
- return parser_ok;
-}
-
-__Z_INLINE parser_error_t _readMethod_configuration_set_minimum_validation_upgrade_delay_V1(
- parser_context_t* c, pd_configuration_set_minimum_validation_upgrade_delay_V1_t* m)
-{
- CHECK_ERROR(_readBlockNumber(c, &m->new_))
- return parser_ok;
-}
-
-__Z_INLINE parser_error_t _readMethod_configuration_set_bypass_consistency_check_V1(
- parser_context_t* c, pd_configuration_set_bypass_consistency_check_V1_t* m)
-{
- CHECK_ERROR(_readbool(c, &m->new_))
- return parser_ok;
-}
-
-__Z_INLINE parser_error_t _readMethod_initializer_force_approve_V1(
- parser_context_t* c, pd_initializer_force_approve_V1_t* m)
-{
- CHECK_ERROR(_readBlockNumber(c, &m->up_to))
- return parser_ok;
-}
-
-__Z_INLINE parser_error_t _readMethod_hrmp_force_process_hrmp_open_V1(
- parser_context_t* c, pd_hrmp_force_process_hrmp_open_V1_t* m)
-{
- CHECK_ERROR(_readu32(c, &m->channels))
- return parser_ok;
-}
-
-__Z_INLINE parser_error_t _readMethod_hrmp_force_process_hrmp_close_V1(
- parser_context_t* c, pd_hrmp_force_process_hrmp_close_V1_t* m)
-{
- CHECK_ERROR(_readu32(c, &m->channels))
- return parser_ok;
-}
-
-__Z_INLINE parser_error_t _readMethod_parasdisputes_force_unfreeze_V1(
- parser_context_t* c, pd_parasdisputes_force_unfreeze_V1_t* m)
-{
- return parser_ok;
-}
-
-__Z_INLINE parser_error_t _readMethod_registrar_reserve_V1(
- parser_context_t* c, pd_registrar_reserve_V1_t* m)
-{
- return parser_ok;
-}
-
-__Z_INLINE parser_error_t _readMethod_auctions_new_auction_V1(
- parser_context_t* c, pd_auctions_new_auction_V1_t* m)
-{
- CHECK_ERROR(_readCompactu32(c, &m->duration))
- CHECK_ERROR(_readCompactu32(c, &m->lease_period_index))
- return parser_ok;
-}
-
-__Z_INLINE parser_error_t _readMethod_auctions_bid_V1(
- parser_context_t* c, pd_auctions_bid_V1_t* m)
-{
- CHECK_ERROR(_readCompactu32(c, &m->para))
- CHECK_ERROR(_readCompactu32(c, &m->auction_index))
- CHECK_ERROR(_readCompactu32(c, &m->first_slot))
- CHECK_ERROR(_readCompactu32(c, &m->last_slot))
- CHECK_ERROR(_readCompactBalance(c, &m->amount))
- return parser_ok;
-}
-
-__Z_INLINE parser_error_t _readMethod_auctions_cancel_auction_V1(
- parser_context_t* c, pd_auctions_cancel_auction_V1_t* m)
-{
- return parser_ok;
-}
-
-#endif
-
-parser_error_t _readMethod_V1(
- parser_context_t* c,
- uint8_t moduleIdx,
- uint8_t callIdx,
- pd_Method_V1_t* method)
-{
- uint16_t callPrivIdx = ((uint16_t)moduleIdx << 8u) + callIdx;
-
- switch (callPrivIdx) {
-
- case 1024: /* module 4 call 0 */
- CHECK_ERROR(_readMethod_balances_transfer_V1(c, &method->nested.balances_transfer_V1))
- break;
- case 1026: /* module 4 call 2 */
- CHECK_ERROR(_readMethod_balances_force_transfer_V1(c, &method->nested.balances_force_transfer_V1))
- break;
- case 1027: /* module 4 call 3 */
- CHECK_ERROR(_readMethod_balances_transfer_keep_alive_V1(c, &method->nested.balances_transfer_keep_alive_V1))
- break;
- case 1028: /* module 4 call 4 */
- CHECK_ERROR(_readMethod_balances_transfer_all_V1(c, &method->basic.balances_transfer_all_V1))
- break;
- case 1536: /* module 6 call 0 */
- CHECK_ERROR(_readMethod_staking_bond_V1(c, &method->basic.staking_bond_V1))
- break;
- case 1537: /* module 6 call 1 */
- CHECK_ERROR(_readMethod_staking_bond_extra_V1(c, &method->basic.staking_bond_extra_V1))
- break;
- case 1538: /* module 6 call 2 */
- CHECK_ERROR(_readMethod_staking_unbond_V1(c, &method->basic.staking_unbond_V1))
- break;
- case 1539: /* module 6 call 3 */
- CHECK_ERROR(_readMethod_staking_withdraw_unbonded_V1(c, &method->basic.staking_withdraw_unbonded_V1))
- break;
- case 1540: /* module 6 call 4 */
- CHECK_ERROR(_readMethod_staking_validate_V1(c, &method->basic.staking_validate_V1))
- break;
- case 1541: /* module 6 call 5 */
- CHECK_ERROR(_readMethod_staking_nominate_V1(c, &method->basic.staking_nominate_V1))
- break;
- case 1542: /* module 6 call 6 */
- CHECK_ERROR(_readMethod_staking_chill_V1(c, &method->basic.staking_chill_V1))
- break;
- case 1543: /* module 6 call 7 */
- CHECK_ERROR(_readMethod_staking_set_payee_V1(c, &method->basic.staking_set_payee_V1))
- break;
- case 1544: /* module 6 call 8 */
- CHECK_ERROR(_readMethod_staking_set_controller_V1(c, &method->basic.staking_set_controller_V1))
- break;
- case 1554: /* module 6 call 18 */
- CHECK_ERROR(_readMethod_staking_payout_stakers_V1(c, &method->basic.staking_payout_stakers_V1))
- break;
- case 1555: /* module 6 call 19 */
- CHECK_ERROR(_readMethod_staking_rebond_V1(c, &method->basic.staking_rebond_V1))
- break;
- case 2048: /* module 8 call 0 */
- CHECK_ERROR(_readMethod_session_set_keys_V1(c, &method->basic.session_set_keys_V1))
- break;
- case 2049: /* module 8 call 1 */
- CHECK_ERROR(_readMethod_session_purge_keys_V1(c, &method->basic.session_purge_keys_V1))
- break;
- case 6144: /* module 24 call 0 */
- CHECK_ERROR(_readMethod_utility_batch_V1(c, &method->basic.utility_batch_V1))
- break;
- case 6146: /* module 24 call 2 */
- CHECK_ERROR(_readMethod_utility_batch_all_V1(c, &method->basic.utility_batch_all_V1))
- break;
- case 6148: /* module 24 call 4 */
- CHECK_ERROR(_readMethod_utility_force_batch_V1(c, &method->basic.utility_force_batch_V1))
- break;
- case 18688: /* module 73 call 0 */
- CHECK_ERROR(_readMethod_crowdloan_create_V1(c, &method->basic.crowdloan_create_V1))
- break;
- case 18689: /* module 73 call 1 */
- CHECK_ERROR(_readMethod_crowdloan_contribute_V1(c, &method->basic.crowdloan_contribute_V1))
- break;
- case 18690: /* module 73 call 2 */
- CHECK_ERROR(_readMethod_crowdloan_withdraw_V1(c, &method->basic.crowdloan_withdraw_V1))
- break;
- case 18691: /* module 73 call 3 */
- CHECK_ERROR(_readMethod_crowdloan_refund_V1(c, &method->basic.crowdloan_refund_V1))
- break;
- case 18692: /* module 73 call 4 */
- CHECK_ERROR(_readMethod_crowdloan_dissolve_V1(c, &method->basic.crowdloan_dissolve_V1))
- break;
- case 18693: /* module 73 call 5 */
- CHECK_ERROR(_readMethod_crowdloan_edit_V1(c, &method->basic.crowdloan_edit_V1))
- break;
- case 18694: /* module 73 call 6 */
- CHECK_ERROR(_readMethod_crowdloan_add_memo_V1(c, &method->basic.crowdloan_add_memo_V1))
- break;
- case 18695: /* module 73 call 7 */
- CHECK_ERROR(_readMethod_crowdloan_poke_V1(c, &method->basic.crowdloan_poke_V1))
- break;
- case 18696: /* module 73 call 8 */
- CHECK_ERROR(_readMethod_crowdloan_contribute_all_V1(c, &method->basic.crowdloan_contribute_all_V1))
- break;
-
-#ifdef SUBSTRATE_PARSER_FULL
- case 0: /* module 0 call 0 */
- CHECK_ERROR(_readMethod_system_fill_block_V1(c, &method->nested.system_fill_block_V1))
- break;
- case 1: /* module 0 call 1 */
- CHECK_ERROR(_readMethod_system_remark_V1(c, &method->nested.system_remark_V1))
- break;
- case 2: /* module 0 call 2 */
- CHECK_ERROR(_readMethod_system_set_heap_pages_V1(c, &method->nested.system_set_heap_pages_V1))
- break;
- case 3: /* module 0 call 3 */
- CHECK_ERROR(_readMethod_system_set_code_V1(c, &method->nested.system_set_code_V1))
- break;
- case 4: /* module 0 call 4 */
- CHECK_ERROR(_readMethod_system_set_code_without_checks_V1(c, &method->nested.system_set_code_without_checks_V1))
- break;
- case 8: /* module 0 call 8 */
- CHECK_ERROR(_readMethod_system_remark_with_event_V1(c, &method->nested.system_remark_with_event_V1))
- break;
- case 512: /* module 2 call 0 */
- CHECK_ERROR(_readMethod_timestamp_set_V1(c, &method->basic.timestamp_set_V1))
- break;
- case 768: /* module 3 call 0 */
- CHECK_ERROR(_readMethod_indices_claim_V1(c, &method->basic.indices_claim_V1))
- break;
- case 769: /* module 3 call 1 */
- CHECK_ERROR(_readMethod_indices_transfer_V1(c, &method->basic.indices_transfer_V1))
- break;
- case 770: /* module 3 call 2 */
- CHECK_ERROR(_readMethod_indices_free_V1(c, &method->basic.indices_free_V1))
- break;
- case 771: /* module 3 call 3 */
- CHECK_ERROR(_readMethod_indices_force_transfer_V1(c, &method->basic.indices_force_transfer_V1))
- break;
- case 772: /* module 3 call 4 */
- CHECK_ERROR(_readMethod_indices_freeze_V1(c, &method->basic.indices_freeze_V1))
- break;
- case 1025: /* module 4 call 1 */
- CHECK_ERROR(_readMethod_balances_set_balance_V1(c, &method->nested.balances_set_balance_V1))
- break;
- case 1029: /* module 4 call 5 */
- CHECK_ERROR(_readMethod_balances_force_unreserve_V1(c, &method->basic.balances_force_unreserve_V1))
- break;
- case 1545: /* module 6 call 9 */
- CHECK_ERROR(_readMethod_staking_set_validator_count_V1(c, &method->basic.staking_set_validator_count_V1))
- break;
- case 1546: /* module 6 call 10 */
- CHECK_ERROR(_readMethod_staking_increase_validator_count_V1(c, &method->basic.staking_increase_validator_count_V1))
- break;
- case 1548: /* module 6 call 12 */
- CHECK_ERROR(_readMethod_staking_force_no_eras_V1(c, &method->basic.staking_force_no_eras_V1))
- break;
- case 1549: /* module 6 call 13 */
- CHECK_ERROR(_readMethod_staking_force_new_era_V1(c, &method->basic.staking_force_new_era_V1))
- break;
- case 1550: /* module 6 call 14 */
- CHECK_ERROR(_readMethod_staking_set_invulnerables_V1(c, &method->basic.staking_set_invulnerables_V1))
- break;
- case 1551: /* module 6 call 15 */
- CHECK_ERROR(_readMethod_staking_force_unstake_V1(c, &method->basic.staking_force_unstake_V1))
- break;
- case 1552: /* module 6 call 16 */
- CHECK_ERROR(_readMethod_staking_force_new_era_always_V1(c, &method->basic.staking_force_new_era_always_V1))
- break;
- case 1553: /* module 6 call 17 */
- CHECK_ERROR(_readMethod_staking_cancel_deferred_slash_V1(c, &method->basic.staking_cancel_deferred_slash_V1))
- break;
- case 1556: /* module 6 call 20 */
- CHECK_ERROR(_readMethod_staking_set_history_depth_V1(c, &method->basic.staking_set_history_depth_V1))
- break;
- case 1557: /* module 6 call 21 */
- CHECK_ERROR(_readMethod_staking_reap_stash_V1(c, &method->basic.staking_reap_stash_V1))
- break;
- case 1558: /* module 6 call 22 */
- CHECK_ERROR(_readMethod_staking_kick_V1(c, &method->basic.staking_kick_V1))
- break;
- case 1560: /* module 6 call 24 */
- CHECK_ERROR(_readMethod_staking_chill_other_V1(c, &method->basic.staking_chill_other_V1))
- break;
- case 1561: /* module 6 call 25 */
- CHECK_ERROR(_readMethod_staking_force_apply_min_commission_V1(c, &method->basic.staking_force_apply_min_commission_V1))
- break;
- case 2562: /* module 10 call 2 */
- CHECK_ERROR(_readMethod_grandpa_note_stalled_V1(c, &method->basic.grandpa_note_stalled_V1))
- break;
- case 3328: /* module 13 call 0 */
- CHECK_ERROR(_readMethod_democracy_propose_V1(c, &method->nested.democracy_propose_V1))
- break;
- case 3329: /* module 13 call 1 */
- CHECK_ERROR(_readMethod_democracy_second_V1(c, &method->nested.democracy_second_V1))
- break;
- case 3330: /* module 13 call 2 */
- CHECK_ERROR(_readMethod_democracy_vote_V1(c, &method->nested.democracy_vote_V1))
- break;
- case 3331: /* module 13 call 3 */
- CHECK_ERROR(_readMethod_democracy_emergency_cancel_V1(c, &method->nested.democracy_emergency_cancel_V1))
- break;
- case 3332: /* module 13 call 4 */
- CHECK_ERROR(_readMethod_democracy_external_propose_V1(c, &method->nested.democracy_external_propose_V1))
- break;
- case 3333: /* module 13 call 5 */
- CHECK_ERROR(_readMethod_democracy_external_propose_majority_V1(c, &method->nested.democracy_external_propose_majority_V1))
- break;
- case 3334: /* module 13 call 6 */
- CHECK_ERROR(_readMethod_democracy_external_propose_default_V1(c, &method->nested.democracy_external_propose_default_V1))
- break;
- case 3335: /* module 13 call 7 */
- CHECK_ERROR(_readMethod_democracy_fast_track_V1(c, &method->nested.democracy_fast_track_V1))
- break;
- case 3336: /* module 13 call 8 */
- CHECK_ERROR(_readMethod_democracy_veto_external_V1(c, &method->nested.democracy_veto_external_V1))
- break;
- case 3337: /* module 13 call 9 */
- CHECK_ERROR(_readMethod_democracy_cancel_referendum_V1(c, &method->nested.democracy_cancel_referendum_V1))
- break;
- case 3338: /* module 13 call 10 */
- CHECK_ERROR(_readMethod_democracy_cancel_queued_V1(c, &method->nested.democracy_cancel_queued_V1))
- break;
- case 3339: /* module 13 call 11 */
- CHECK_ERROR(_readMethod_democracy_delegate_V1(c, &method->nested.democracy_delegate_V1))
- break;
- case 3340: /* module 13 call 12 */
- CHECK_ERROR(_readMethod_democracy_undelegate_V1(c, &method->nested.democracy_undelegate_V1))
- break;
- case 3341: /* module 13 call 13 */
- CHECK_ERROR(_readMethod_democracy_clear_public_proposals_V1(c, &method->nested.democracy_clear_public_proposals_V1))
- break;
- case 3342: /* module 13 call 14 */
- CHECK_ERROR(_readMethod_democracy_note_preimage_V1(c, &method->basic.democracy_note_preimage_V1))
- break;
- case 3343: /* module 13 call 15 */
- CHECK_ERROR(_readMethod_democracy_note_preimage_operational_V1(c, &method->basic.democracy_note_preimage_operational_V1))
- break;
- case 3344: /* module 13 call 16 */
- CHECK_ERROR(_readMethod_democracy_note_imminent_preimage_V1(c, &method->basic.democracy_note_imminent_preimage_V1))
- break;
- case 3345: /* module 13 call 17 */
- CHECK_ERROR(_readMethod_democracy_note_imminent_preimage_operational_V1(c, &method->basic.democracy_note_imminent_preimage_operational_V1))
- break;
- case 3346: /* module 13 call 18 */
- CHECK_ERROR(_readMethod_democracy_reap_preimage_V1(c, &method->nested.democracy_reap_preimage_V1))
- break;
- case 3347: /* module 13 call 19 */
- CHECK_ERROR(_readMethod_democracy_unlock_V1(c, &method->nested.democracy_unlock_V1))
- break;
- case 3348: /* module 13 call 20 */
- CHECK_ERROR(_readMethod_democracy_remove_vote_V1(c, &method->nested.democracy_remove_vote_V1))
- break;
- case 3349: /* module 13 call 21 */
- CHECK_ERROR(_readMethod_democracy_remove_other_vote_V1(c, &method->nested.democracy_remove_other_vote_V1))
- break;
- case 3350: /* module 13 call 22 */
- CHECK_ERROR(_readMethod_democracy_enact_proposal_V1(c, &method->nested.democracy_enact_proposal_V1))
- break;
- case 3352: /* module 13 call 24 */
- CHECK_ERROR(_readMethod_democracy_cancel_proposal_V1(c, &method->nested.democracy_cancel_proposal_V1))
- break;
- case 3584: /* module 14 call 0 */
- CHECK_ERROR(_readMethod_council_set_members_V1(c, &method->basic.council_set_members_V1))
- break;
- case 3585: /* module 14 call 1 */
- CHECK_ERROR(_readMethod_council_execute_V1(c, &method->basic.council_execute_V1))
- break;
- case 3586: /* module 14 call 2 */
- CHECK_ERROR(_readMethod_council_propose_V1(c, &method->basic.council_propose_V1))
- break;
- case 3587: /* module 14 call 3 */
- CHECK_ERROR(_readMethod_council_vote_V1(c, &method->basic.council_vote_V1))
- break;
- case 3588: /* module 14 call 4 */
- CHECK_ERROR(_readMethod_council_close_V1(c, &method->basic.council_close_V1))
- break;
- case 3589: /* module 14 call 5 */
- CHECK_ERROR(_readMethod_council_disapprove_proposal_V1(c, &method->basic.council_disapprove_proposal_V1))
- break;
- case 3840: /* module 15 call 0 */
- CHECK_ERROR(_readMethod_technicalcommittee_set_members_V1(c, &method->basic.technicalcommittee_set_members_V1))
- break;
- case 3841: /* module 15 call 1 */
- CHECK_ERROR(_readMethod_technicalcommittee_execute_V1(c, &method->basic.technicalcommittee_execute_V1))
- break;
- case 3842: /* module 15 call 2 */
- CHECK_ERROR(_readMethod_technicalcommittee_propose_V1(c, &method->basic.technicalcommittee_propose_V1))
- break;
- case 3843: /* module 15 call 3 */
- CHECK_ERROR(_readMethod_technicalcommittee_vote_V1(c, &method->basic.technicalcommittee_vote_V1))
- break;
- case 3844: /* module 15 call 4 */
- CHECK_ERROR(_readMethod_technicalcommittee_close_V1(c, &method->basic.technicalcommittee_close_V1))
- break;
- case 3845: /* module 15 call 5 */
- CHECK_ERROR(_readMethod_technicalcommittee_disapprove_proposal_V1(c, &method->basic.technicalcommittee_disapprove_proposal_V1))
- break;
- case 4096: /* module 16 call 0 */
- CHECK_ERROR(_readMethod_phragmenelection_vote_V1(c, &method->basic.phragmenelection_vote_V1))
- break;
- case 4097: /* module 16 call 1 */
- CHECK_ERROR(_readMethod_phragmenelection_remove_voter_V1(c, &method->basic.phragmenelection_remove_voter_V1))
- break;
- case 4098: /* module 16 call 2 */
- CHECK_ERROR(_readMethod_phragmenelection_submit_candidacy_V1(c, &method->basic.phragmenelection_submit_candidacy_V1))
- break;
- case 4100: /* module 16 call 4 */
- CHECK_ERROR(_readMethod_phragmenelection_remove_member_V1(c, &method->basic.phragmenelection_remove_member_V1))
- break;
- case 4101: /* module 16 call 5 */
- CHECK_ERROR(_readMethod_phragmenelection_clean_defunct_voters_V1(c, &method->basic.phragmenelection_clean_defunct_voters_V1))
- break;
- case 4352: /* module 17 call 0 */
- CHECK_ERROR(_readMethod_technicalmembership_add_member_V1(c, &method->basic.technicalmembership_add_member_V1))
- break;
- case 4353: /* module 17 call 1 */
- CHECK_ERROR(_readMethod_technicalmembership_remove_member_V1(c, &method->basic.technicalmembership_remove_member_V1))
- break;
- case 4354: /* module 17 call 2 */
- CHECK_ERROR(_readMethod_technicalmembership_swap_member_V1(c, &method->basic.technicalmembership_swap_member_V1))
- break;
- case 4355: /* module 17 call 3 */
- CHECK_ERROR(_readMethod_technicalmembership_reset_members_V1(c, &method->basic.technicalmembership_reset_members_V1))
- break;
- case 4356: /* module 17 call 4 */
- CHECK_ERROR(_readMethod_technicalmembership_change_key_V1(c, &method->basic.technicalmembership_change_key_V1))
- break;
- case 4357: /* module 17 call 5 */
- CHECK_ERROR(_readMethod_technicalmembership_set_prime_V1(c, &method->basic.technicalmembership_set_prime_V1))
- break;
- case 4358: /* module 17 call 6 */
- CHECK_ERROR(_readMethod_technicalmembership_clear_prime_V1(c, &method->basic.technicalmembership_clear_prime_V1))
- break;
- case 4608: /* module 18 call 0 */
- CHECK_ERROR(_readMethod_treasury_propose_spend_V1(c, &method->basic.treasury_propose_spend_V1))
- break;
- case 4609: /* module 18 call 1 */
- CHECK_ERROR(_readMethod_treasury_reject_proposal_V1(c, &method->basic.treasury_reject_proposal_V1))
- break;
- case 4610: /* module 18 call 2 */
- CHECK_ERROR(_readMethod_treasury_approve_proposal_V1(c, &method->basic.treasury_approve_proposal_V1))
- break;
- case 4611: /* module 18 call 3 */
- CHECK_ERROR(_readMethod_treasury_spend_V1(c, &method->basic.treasury_spend_V1))
- break;
- case 4612: /* module 18 call 4 */
- CHECK_ERROR(_readMethod_treasury_remove_approval_V1(c, &method->basic.treasury_remove_approval_V1))
- break;
- case 4864: /* module 19 call 0 */
- CHECK_ERROR(_readMethod_claims_claim_V1(c, &method->basic.claims_claim_V1))
- break;
- case 4866: /* module 19 call 2 */
- CHECK_ERROR(_readMethod_claims_claim_attest_V1(c, &method->basic.claims_claim_attest_V1))
- break;
- case 4867: /* module 19 call 3 */
- CHECK_ERROR(_readMethod_claims_attest_V1(c, &method->basic.claims_attest_V1))
- break;
- case 4868: /* module 19 call 4 */
- CHECK_ERROR(_readMethod_claims_move_claim_V1(c, &method->basic.claims_move_claim_V1))
- break;
- case 6400: /* module 25 call 0 */
- CHECK_ERROR(_readMethod_identity_add_registrar_V1(c, &method->basic.identity_add_registrar_V1))
- break;
- case 6403: /* module 25 call 3 */
- CHECK_ERROR(_readMethod_identity_clear_identity_V1(c, &method->basic.identity_clear_identity_V1))
- break;
- case 6404: /* module 25 call 4 */
- CHECK_ERROR(_readMethod_identity_request_judgement_V1(c, &method->basic.identity_request_judgement_V1))
- break;
- case 6405: /* module 25 call 5 */
- CHECK_ERROR(_readMethod_identity_cancel_request_V1(c, &method->basic.identity_cancel_request_V1))
- break;
- case 6406: /* module 25 call 6 */
- CHECK_ERROR(_readMethod_identity_set_fee_V1(c, &method->basic.identity_set_fee_V1))
- break;
- case 6407: /* module 25 call 7 */
- CHECK_ERROR(_readMethod_identity_set_account_id_V1(c, &method->basic.identity_set_account_id_V1))
- break;
- case 6410: /* module 25 call 10 */
- CHECK_ERROR(_readMethod_identity_kill_identity_V1(c, &method->basic.identity_kill_identity_V1))
- break;
- case 6413: /* module 25 call 13 */
- CHECK_ERROR(_readMethod_identity_remove_sub_V1(c, &method->basic.identity_remove_sub_V1))
- break;
- case 6414: /* module 25 call 14 */
- CHECK_ERROR(_readMethod_identity_quit_sub_V1(c, &method->basic.identity_quit_sub_V1))
- break;
- case 6656: /* module 26 call 0 */
- CHECK_ERROR(_readMethod_society_bid_V1(c, &method->basic.society_bid_V1))
- break;
- case 6657: /* module 26 call 1 */
- CHECK_ERROR(_readMethod_society_unbid_V1(c, &method->basic.society_unbid_V1))
- break;
- case 6658: /* module 26 call 2 */
- CHECK_ERROR(_readMethod_society_vouch_V1(c, &method->basic.society_vouch_V1))
- break;
- case 6659: /* module 26 call 3 */
- CHECK_ERROR(_readMethod_society_unvouch_V1(c, &method->basic.society_unvouch_V1))
- break;
- case 6660: /* module 26 call 4 */
- CHECK_ERROR(_readMethod_society_vote_V1(c, &method->basic.society_vote_V1))
- break;
- case 6661: /* module 26 call 5 */
- CHECK_ERROR(_readMethod_society_defender_vote_V1(c, &method->basic.society_defender_vote_V1))
- break;
- case 6662: /* module 26 call 6 */
- CHECK_ERROR(_readMethod_society_payout_V1(c, &method->basic.society_payout_V1))
- break;
- case 6663: /* module 26 call 7 */
- CHECK_ERROR(_readMethod_society_found_V1(c, &method->basic.society_found_V1))
- break;
- case 6664: /* module 26 call 8 */
- CHECK_ERROR(_readMethod_society_unfound_V1(c, &method->basic.society_unfound_V1))
- break;
- case 6665: /* module 26 call 9 */
- CHECK_ERROR(_readMethod_society_judge_suspended_member_V1(c, &method->basic.society_judge_suspended_member_V1))
- break;
- case 6667: /* module 26 call 11 */
- CHECK_ERROR(_readMethod_society_set_max_members_V1(c, &method->basic.society_set_max_members_V1))
- break;
- case 6913: /* module 27 call 1 */
- CHECK_ERROR(_readMethod_recovery_set_recovered_V1(c, &method->basic.recovery_set_recovered_V1))
- break;
- case 6915: /* module 27 call 3 */
- CHECK_ERROR(_readMethod_recovery_initiate_recovery_V1(c, &method->basic.recovery_initiate_recovery_V1))
- break;
- case 6916: /* module 27 call 4 */
- CHECK_ERROR(_readMethod_recovery_vouch_recovery_V1(c, &method->basic.recovery_vouch_recovery_V1))
- break;
- case 6917: /* module 27 call 5 */
- CHECK_ERROR(_readMethod_recovery_claim_recovery_V1(c, &method->basic.recovery_claim_recovery_V1))
- break;
- case 6918: /* module 27 call 6 */
- CHECK_ERROR(_readMethod_recovery_close_recovery_V1(c, &method->basic.recovery_close_recovery_V1))
- break;
- case 6919: /* module 27 call 7 */
- CHECK_ERROR(_readMethod_recovery_remove_recovery_V1(c, &method->basic.recovery_remove_recovery_V1))
- break;
- case 6920: /* module 27 call 8 */
- CHECK_ERROR(_readMethod_recovery_cancel_recovered_V1(c, &method->basic.recovery_cancel_recovered_V1))
- break;
- case 7168: /* module 28 call 0 */
- CHECK_ERROR(_readMethod_vesting_vest_V1(c, &method->basic.vesting_vest_V1))
- break;
- case 7169: /* module 28 call 1 */
- CHECK_ERROR(_readMethod_vesting_vest_other_V1(c, &method->basic.vesting_vest_other_V1))
- break;
- case 7170: /* module 28 call 2 */
- CHECK_ERROR(_readMethod_vesting_vested_transfer_V1(c, &method->basic.vesting_vested_transfer_V1))
- break;
- case 7171: /* module 28 call 3 */
- CHECK_ERROR(_readMethod_vesting_force_vested_transfer_V1(c, &method->basic.vesting_force_vested_transfer_V1))
- break;
- case 7172: /* module 28 call 4 */
- CHECK_ERROR(_readMethod_vesting_merge_schedules_V1(c, &method->basic.vesting_merge_schedules_V1))
- break;
- case 7680: /* module 30 call 0 */
- CHECK_ERROR(_readMethod_proxy_proxy_V1(c, &method->nested.proxy_proxy_V1))
- break;
- case 7681: /* module 30 call 1 */
- CHECK_ERROR(_readMethod_proxy_add_proxy_V1(c, &method->basic.proxy_add_proxy_V1))
- break;
- case 7682: /* module 30 call 2 */
- CHECK_ERROR(_readMethod_proxy_remove_proxy_V1(c, &method->basic.proxy_remove_proxy_V1))
- break;
- case 7683: /* module 30 call 3 */
- CHECK_ERROR(_readMethod_proxy_remove_proxies_V1(c, &method->basic.proxy_remove_proxies_V1))
- break;
- case 7684: /* module 30 call 4 */
- CHECK_ERROR(_readMethod_proxy_anonymous_V1(c, &method->basic.proxy_anonymous_V1))
- break;
- case 7685: /* module 30 call 5 */
- CHECK_ERROR(_readMethod_proxy_kill_anonymous_V1(c, &method->basic.proxy_kill_anonymous_V1))
- break;
- case 7689: /* module 30 call 9 */
- CHECK_ERROR(_readMethod_proxy_proxy_announced_V1(c, &method->basic.proxy_proxy_announced_V1))
- break;
- case 7936: /* module 31 call 0 */
- CHECK_ERROR(_readMethod_multisig_as_multi_threshold_1_V1(c, &method->nested.multisig_as_multi_threshold_1_V1))
- break;
- case 7937: /* module 31 call 1 */
- CHECK_ERROR(_readMethod_multisig_as_multi_V1(c, &method->nested.multisig_as_multi_V1))
- break;
- case 7938: /* module 31 call 2 */
- CHECK_ERROR(_readMethod_multisig_approve_as_multi_V1(c, &method->nested.multisig_approve_as_multi_V1))
- break;
- case 7939: /* module 31 call 3 */
- CHECK_ERROR(_readMethod_multisig_cancel_as_multi_V1(c, &method->nested.multisig_cancel_as_multi_V1))
- break;
- case 8192: /* module 32 call 0 */
- CHECK_ERROR(_readMethod_preimage_note_preimage_V1(c, &method->basic.preimage_note_preimage_V1))
- break;
- case 8193: /* module 32 call 1 */
- CHECK_ERROR(_readMethod_preimage_unnote_preimage_V1(c, &method->basic.preimage_unnote_preimage_V1))
- break;
- case 8194: /* module 32 call 2 */
- CHECK_ERROR(_readMethod_preimage_request_preimage_V1(c, &method->basic.preimage_request_preimage_V1))
- break;
- case 8195: /* module 32 call 3 */
- CHECK_ERROR(_readMethod_preimage_unrequest_preimage_V1(c, &method->basic.preimage_unrequest_preimage_V1))
- break;
- case 8960: /* module 35 call 0 */
- CHECK_ERROR(_readMethod_bounties_propose_bounty_V1(c, &method->basic.bounties_propose_bounty_V1))
- break;
- case 8961: /* module 35 call 1 */
- CHECK_ERROR(_readMethod_bounties_approve_bounty_V1(c, &method->basic.bounties_approve_bounty_V1))
- break;
- case 8962: /* module 35 call 2 */
- CHECK_ERROR(_readMethod_bounties_propose_curator_V1(c, &method->basic.bounties_propose_curator_V1))
- break;
- case 8963: /* module 35 call 3 */
- CHECK_ERROR(_readMethod_bounties_unassign_curator_V1(c, &method->basic.bounties_unassign_curator_V1))
- break;
- case 8964: /* module 35 call 4 */
- CHECK_ERROR(_readMethod_bounties_accept_curator_V1(c, &method->basic.bounties_accept_curator_V1))
- break;
- case 8965: /* module 35 call 5 */
- CHECK_ERROR(_readMethod_bounties_award_bounty_V1(c, &method->basic.bounties_award_bounty_V1))
- break;
- case 8966: /* module 35 call 6 */
- CHECK_ERROR(_readMethod_bounties_claim_bounty_V1(c, &method->basic.bounties_claim_bounty_V1))
- break;
- case 8967: /* module 35 call 7 */
- CHECK_ERROR(_readMethod_bounties_close_bounty_V1(c, &method->basic.bounties_close_bounty_V1))
- break;
- case 8968: /* module 35 call 8 */
- CHECK_ERROR(_readMethod_bounties_extend_bounty_expiry_V1(c, &method->basic.bounties_extend_bounty_expiry_V1))
- break;
- case 10240: /* module 40 call 0 */
- CHECK_ERROR(_readMethod_childbounties_add_child_bounty_V1(c, &method->basic.childbounties_add_child_bounty_V1))
- break;
- case 10241: /* module 40 call 1 */
- CHECK_ERROR(_readMethod_childbounties_propose_curator_V1(c, &method->basic.childbounties_propose_curator_V1))
- break;
- case 10242: /* module 40 call 2 */
- CHECK_ERROR(_readMethod_childbounties_accept_curator_V1(c, &method->basic.childbounties_accept_curator_V1))
- break;
- case 10243: /* module 40 call 3 */
- CHECK_ERROR(_readMethod_childbounties_unassign_curator_V1(c, &method->basic.childbounties_unassign_curator_V1))
- break;
- case 10244: /* module 40 call 4 */
- CHECK_ERROR(_readMethod_childbounties_award_child_bounty_V1(c, &method->basic.childbounties_award_child_bounty_V1))
- break;
- case 10245: /* module 40 call 5 */
- CHECK_ERROR(_readMethod_childbounties_claim_child_bounty_V1(c, &method->basic.childbounties_claim_child_bounty_V1))
- break;
- case 10246: /* module 40 call 6 */
- CHECK_ERROR(_readMethod_childbounties_close_child_bounty_V1(c, &method->basic.childbounties_close_child_bounty_V1))
- break;
- case 9216: /* module 36 call 0 */
- CHECK_ERROR(_readMethod_tips_report_awesome_V1(c, &method->basic.tips_report_awesome_V1))
- break;
- case 9217: /* module 36 call 1 */
- CHECK_ERROR(_readMethod_tips_retract_tip_V1(c, &method->basic.tips_retract_tip_V1))
- break;
- case 9218: /* module 36 call 2 */
- CHECK_ERROR(_readMethod_tips_tip_new_V1(c, &method->basic.tips_tip_new_V1))
- break;
- case 9219: /* module 36 call 3 */
- CHECK_ERROR(_readMethod_tips_tip_V1(c, &method->basic.tips_tip_V1))
- break;
- case 9220: /* module 36 call 4 */
- CHECK_ERROR(_readMethod_tips_close_tip_V1(c, &method->basic.tips_close_tip_V1))
- break;
- case 9221: /* module 36 call 5 */
- CHECK_ERROR(_readMethod_tips_slash_tip_V1(c, &method->basic.tips_slash_tip_V1))
- break;
- case 9476: /* module 37 call 4 */
- CHECK_ERROR(_readMethod_electionprovidermultiphase_governance_fallback_V1(c, &method->basic.electionprovidermultiphase_governance_fallback_V1))
- break;
- case 9728: /* module 38 call 0 */
- CHECK_ERROR(_readMethod_gilt_place_bid_V1(c, &method->basic.gilt_place_bid_V1))
- break;
- case 9729: /* module 38 call 1 */
- CHECK_ERROR(_readMethod_gilt_retract_bid_V1(c, &method->basic.gilt_retract_bid_V1))
- break;
- case 9730: /* module 38 call 2 */
- CHECK_ERROR(_readMethod_gilt_set_target_V1(c, &method->basic.gilt_set_target_V1))
- break;
- case 9731: /* module 38 call 3 */
- CHECK_ERROR(_readMethod_gilt_thaw_V1(c, &method->basic.gilt_thaw_V1))
- break;
- case 9984: /* module 39 call 0 */
- CHECK_ERROR(_readMethod_voterlist_rebag_V1(c, &method->basic.voterlist_rebag_V1))
- break;
- case 9985: /* module 39 call 1 */
- CHECK_ERROR(_readMethod_voterlist_put_in_front_of_V1(c, &method->basic.voterlist_put_in_front_of_V1))
- break;
- case 10496: /* module 41 call 0 */
- CHECK_ERROR(_readMethod_nominationpools_join_V1(c, &method->basic.nominationpools_join_V1))
- break;
- case 10497: /* module 41 call 1 */
- CHECK_ERROR(_readMethod_nominationpools_bond_extra_V1(c, &method->basic.nominationpools_bond_extra_V1))
- break;
- case 10498: /* module 41 call 2 */
- CHECK_ERROR(_readMethod_nominationpools_claim_payout_V1(c, &method->basic.nominationpools_claim_payout_V1))
- break;
- case 10499: /* module 41 call 3 */
- CHECK_ERROR(_readMethod_nominationpools_unbond_V1(c, &method->basic.nominationpools_unbond_V1))
- break;
- case 10500: /* module 41 call 4 */
- CHECK_ERROR(_readMethod_nominationpools_pool_withdraw_unbonded_V1(c, &method->basic.nominationpools_pool_withdraw_unbonded_V1))
- break;
- case 10501: /* module 41 call 5 */
- CHECK_ERROR(_readMethod_nominationpools_withdraw_unbonded_V1(c, &method->basic.nominationpools_withdraw_unbonded_V1))
- break;
- case 10502: /* module 41 call 6 */
- CHECK_ERROR(_readMethod_nominationpools_create_V1(c, &method->basic.nominationpools_create_V1))
- break;
- case 10503: /* module 41 call 7 */
- CHECK_ERROR(_readMethod_nominationpools_nominate_V1(c, &method->basic.nominationpools_nominate_V1))
- break;
- case 10504: /* module 41 call 8 */
- CHECK_ERROR(_readMethod_nominationpools_set_state_V1(c, &method->basic.nominationpools_set_state_V1))
- break;
- case 10505: /* module 41 call 9 */
- CHECK_ERROR(_readMethod_nominationpools_set_metadata_V1(c, &method->basic.nominationpools_set_metadata_V1))
- break;
- case 10506: /* module 41 call 10 */
- CHECK_ERROR(_readMethod_nominationpools_set_configs_V1(c, &method->basic.nominationpools_set_configs_V1))
- break;
- case 10507: /* module 41 call 11 */
- CHECK_ERROR(_readMethod_nominationpools_update_roles_V1(c, &method->basic.nominationpools_update_roles_V1))
- break;
- case 10508: /* module 41 call 12 */
- CHECK_ERROR(_readMethod_nominationpools_chill_V1(c, &method->basic.nominationpools_chill_V1))
- break;
- case 13056: /* module 51 call 0 */
- CHECK_ERROR(_readMethod_configuration_set_validation_upgrade_cooldown_V1(c, &method->basic.configuration_set_validation_upgrade_cooldown_V1))
- break;
- case 13057: /* module 51 call 1 */
- CHECK_ERROR(_readMethod_configuration_set_validation_upgrade_delay_V1(c, &method->basic.configuration_set_validation_upgrade_delay_V1))
- break;
- case 13058: /* module 51 call 2 */
- CHECK_ERROR(_readMethod_configuration_set_code_retention_period_V1(c, &method->basic.configuration_set_code_retention_period_V1))
- break;
- case 13059: /* module 51 call 3 */
- CHECK_ERROR(_readMethod_configuration_set_max_code_size_V1(c, &method->basic.configuration_set_max_code_size_V1))
- break;
- case 13060: /* module 51 call 4 */
- CHECK_ERROR(_readMethod_configuration_set_max_pov_size_V1(c, &method->basic.configuration_set_max_pov_size_V1))
- break;
- case 13061: /* module 51 call 5 */
- CHECK_ERROR(_readMethod_configuration_set_max_head_data_size_V1(c, &method->basic.configuration_set_max_head_data_size_V1))
- break;
- case 13062: /* module 51 call 6 */
- CHECK_ERROR(_readMethod_configuration_set_parathread_cores_V1(c, &method->basic.configuration_set_parathread_cores_V1))
- break;
- case 13063: /* module 51 call 7 */
- CHECK_ERROR(_readMethod_configuration_set_parathread_retries_V1(c, &method->basic.configuration_set_parathread_retries_V1))
- break;
- case 13064: /* module 51 call 8 */
- CHECK_ERROR(_readMethod_configuration_set_group_rotation_frequency_V1(c, &method->basic.configuration_set_group_rotation_frequency_V1))
- break;
- case 13065: /* module 51 call 9 */
- CHECK_ERROR(_readMethod_configuration_set_chain_availability_period_V1(c, &method->basic.configuration_set_chain_availability_period_V1))
- break;
- case 13066: /* module 51 call 10 */
- CHECK_ERROR(_readMethod_configuration_set_thread_availability_period_V1(c, &method->basic.configuration_set_thread_availability_period_V1))
- break;
- case 13067: /* module 51 call 11 */
- CHECK_ERROR(_readMethod_configuration_set_scheduling_lookahead_V1(c, &method->basic.configuration_set_scheduling_lookahead_V1))
- break;
- case 13068: /* module 51 call 12 */
- CHECK_ERROR(_readMethod_configuration_set_max_validators_per_core_V1(c, &method->basic.configuration_set_max_validators_per_core_V1))
- break;
- case 13069: /* module 51 call 13 */
- CHECK_ERROR(_readMethod_configuration_set_max_validators_V1(c, &method->basic.configuration_set_max_validators_V1))
- break;
- case 13070: /* module 51 call 14 */
- CHECK_ERROR(_readMethod_configuration_set_dispute_period_V1(c, &method->basic.configuration_set_dispute_period_V1))
- break;
- case 13071: /* module 51 call 15 */
- CHECK_ERROR(_readMethod_configuration_set_dispute_post_conclusion_acceptance_period_V1(c, &method->basic.configuration_set_dispute_post_conclusion_acceptance_period_V1))
- break;
- case 13072: /* module 51 call 16 */
- CHECK_ERROR(_readMethod_configuration_set_dispute_max_spam_slots_V1(c, &method->basic.configuration_set_dispute_max_spam_slots_V1))
- break;
- case 13073: /* module 51 call 17 */
- CHECK_ERROR(_readMethod_configuration_set_dispute_conclusion_by_time_out_period_V1(c, &method->basic.configuration_set_dispute_conclusion_by_time_out_period_V1))
- break;
- case 13074: /* module 51 call 18 */
- CHECK_ERROR(_readMethod_configuration_set_no_show_slots_V1(c, &method->basic.configuration_set_no_show_slots_V1))
- break;
- case 13075: /* module 51 call 19 */
- CHECK_ERROR(_readMethod_configuration_set_n_delay_tranches_V1(c, &method->basic.configuration_set_n_delay_tranches_V1))
- break;
- case 13076: /* module 51 call 20 */
- CHECK_ERROR(_readMethod_configuration_set_zeroth_delay_tranche_width_V1(c, &method->basic.configuration_set_zeroth_delay_tranche_width_V1))
- break;
- case 13077: /* module 51 call 21 */
- CHECK_ERROR(_readMethod_configuration_set_needed_approvals_V1(c, &method->basic.configuration_set_needed_approvals_V1))
- break;
- case 13078: /* module 51 call 22 */
- CHECK_ERROR(_readMethod_configuration_set_relay_vrf_modulo_samples_V1(c, &method->basic.configuration_set_relay_vrf_modulo_samples_V1))
- break;
- case 13079: /* module 51 call 23 */
- CHECK_ERROR(_readMethod_configuration_set_max_upward_queue_count_V1(c, &method->basic.configuration_set_max_upward_queue_count_V1))
- break;
- case 13080: /* module 51 call 24 */
- CHECK_ERROR(_readMethod_configuration_set_max_upward_queue_size_V1(c, &method->basic.configuration_set_max_upward_queue_size_V1))
- break;
- case 13081: /* module 51 call 25 */
- CHECK_ERROR(_readMethod_configuration_set_max_downward_message_size_V1(c, &method->basic.configuration_set_max_downward_message_size_V1))
- break;
- case 13082: /* module 51 call 26 */
- CHECK_ERROR(_readMethod_configuration_set_ump_service_total_weight_V1(c, &method->basic.configuration_set_ump_service_total_weight_V1))
- break;
- case 13083: /* module 51 call 27 */
- CHECK_ERROR(_readMethod_configuration_set_max_upward_message_size_V1(c, &method->basic.configuration_set_max_upward_message_size_V1))
- break;
- case 13084: /* module 51 call 28 */
- CHECK_ERROR(_readMethod_configuration_set_max_upward_message_num_per_candidate_V1(c, &method->basic.configuration_set_max_upward_message_num_per_candidate_V1))
- break;
- case 13085: /* module 51 call 29 */
- CHECK_ERROR(_readMethod_configuration_set_hrmp_open_request_ttl_V1(c, &method->basic.configuration_set_hrmp_open_request_ttl_V1))
- break;
- case 13086: /* module 51 call 30 */
- CHECK_ERROR(_readMethod_configuration_set_hrmp_sender_deposit_V1(c, &method->basic.configuration_set_hrmp_sender_deposit_V1))
- break;
- case 13087: /* module 51 call 31 */
- CHECK_ERROR(_readMethod_configuration_set_hrmp_recipient_deposit_V1(c, &method->basic.configuration_set_hrmp_recipient_deposit_V1))
- break;
- case 13088: /* module 51 call 32 */
- CHECK_ERROR(_readMethod_configuration_set_hrmp_channel_max_capacity_V1(c, &method->basic.configuration_set_hrmp_channel_max_capacity_V1))
- break;
- case 13089: /* module 51 call 33 */
- CHECK_ERROR(_readMethod_configuration_set_hrmp_channel_max_total_size_V1(c, &method->basic.configuration_set_hrmp_channel_max_total_size_V1))
- break;
- case 13090: /* module 51 call 34 */
- CHECK_ERROR(_readMethod_configuration_set_hrmp_max_parachain_inbound_channels_V1(c, &method->basic.configuration_set_hrmp_max_parachain_inbound_channels_V1))
- break;
- case 13091: /* module 51 call 35 */
- CHECK_ERROR(_readMethod_configuration_set_hrmp_max_parathread_inbound_channels_V1(c, &method->basic.configuration_set_hrmp_max_parathread_inbound_channels_V1))
- break;
- case 13092: /* module 51 call 36 */
- CHECK_ERROR(_readMethod_configuration_set_hrmp_channel_max_message_size_V1(c, &method->basic.configuration_set_hrmp_channel_max_message_size_V1))
- break;
- case 13093: /* module 51 call 37 */
- CHECK_ERROR(_readMethod_configuration_set_hrmp_max_parachain_outbound_channels_V1(c, &method->basic.configuration_set_hrmp_max_parachain_outbound_channels_V1))
- break;
- case 13094: /* module 51 call 38 */
- CHECK_ERROR(_readMethod_configuration_set_hrmp_max_parathread_outbound_channels_V1(c, &method->basic.configuration_set_hrmp_max_parathread_outbound_channels_V1))
- break;
- case 13095: /* module 51 call 39 */
- CHECK_ERROR(_readMethod_configuration_set_hrmp_max_message_num_per_candidate_V1(c, &method->basic.configuration_set_hrmp_max_message_num_per_candidate_V1))
- break;
- case 13096: /* module 51 call 40 */
- CHECK_ERROR(_readMethod_configuration_set_ump_max_individual_weight_V1(c, &method->basic.configuration_set_ump_max_individual_weight_V1))
- break;
- case 13097: /* module 51 call 41 */
- CHECK_ERROR(_readMethod_configuration_set_pvf_checking_enabled_V1(c, &method->basic.configuration_set_pvf_checking_enabled_V1))
- break;
- case 13098: /* module 51 call 42 */
- CHECK_ERROR(_readMethod_configuration_set_pvf_voting_ttl_V1(c, &method->basic.configuration_set_pvf_voting_ttl_V1))
- break;
- case 13099: /* module 51 call 43 */
- CHECK_ERROR(_readMethod_configuration_set_minimum_validation_upgrade_delay_V1(c, &method->basic.configuration_set_minimum_validation_upgrade_delay_V1))
- break;
- case 13100: /* module 51 call 44 */
- CHECK_ERROR(_readMethod_configuration_set_bypass_consistency_check_V1(c, &method->basic.configuration_set_bypass_consistency_check_V1))
- break;
- case 14592: /* module 57 call 0 */
- CHECK_ERROR(_readMethod_initializer_force_approve_V1(c, &method->basic.initializer_force_approve_V1))
- break;
- case 15364: /* module 60 call 4 */
- CHECK_ERROR(_readMethod_hrmp_force_process_hrmp_open_V1(c, &method->basic.hrmp_force_process_hrmp_open_V1))
- break;
- case 15365: /* module 60 call 5 */
- CHECK_ERROR(_readMethod_hrmp_force_process_hrmp_close_V1(c, &method->basic.hrmp_force_process_hrmp_close_V1))
- break;
- case 15872: /* module 62 call 0 */
- CHECK_ERROR(_readMethod_parasdisputes_force_unfreeze_V1(c, &method->basic.parasdisputes_force_unfreeze_V1))
- break;
- case 17925: /* module 70 call 5 */
- CHECK_ERROR(_readMethod_registrar_reserve_V1(c, &method->basic.registrar_reserve_V1))
- break;
- case 18432: /* module 72 call 0 */
- CHECK_ERROR(_readMethod_auctions_new_auction_V1(c, &method->basic.auctions_new_auction_V1))
- break;
- case 18433: /* module 72 call 1 */
- CHECK_ERROR(_readMethod_auctions_bid_V1(c, &method->basic.auctions_bid_V1))
- break;
- case 18434: /* module 72 call 2 */
- CHECK_ERROR(_readMethod_auctions_cancel_auction_V1(c, &method->basic.auctions_cancel_auction_V1))
- break;
-#endif
- default:
- return parser_unexpected_callIndex;
- }
-
- return parser_ok;
-}
-
-/////////////////////////////////////////////////////////////////////////////////
-/////////////////////////////////////////////////////////////////////////////////
-/////////////////////////////////////////////////////////////////////////////////
-/////////////////////////////////////////////////////////////////////////////////
-
-const char* _getMethod_ModuleName_V1(uint8_t moduleIdx)
-{
- switch (moduleIdx) {
- case 4:
- return STR_MO_BALANCES;
- case 6:
- return STR_MO_STAKING;
- case 8:
- return STR_MO_SESSION;
- case 24:
- return STR_MO_UTILITY;
- case 73:
- return STR_MO_CROWDLOAN;
-#ifdef SUBSTRATE_PARSER_FULL
- case 0:
- return STR_MO_SYSTEM;
- case 2:
- return STR_MO_TIMESTAMP;
- case 3:
- return STR_MO_INDICES;
- case 10:
- return STR_MO_GRANDPA;
- case 13:
- return STR_MO_DEMOCRACY;
- case 14:
- return STR_MO_COUNCIL;
- case 15:
- return STR_MO_TECHNICALCOMMITTEE;
- case 16:
- return STR_MO_PHRAGMENELECTION;
- case 17:
- return STR_MO_TECHNICALMEMBERSHIP;
- case 18:
- return STR_MO_TREASURY;
- case 19:
- return STR_MO_CLAIMS;
- case 25:
- return STR_MO_IDENTITY;
- case 26:
- return STR_MO_SOCIETY;
- case 27:
- return STR_MO_RECOVERY;
- case 28:
- return STR_MO_VESTING;
- case 30:
- return STR_MO_PROXY;
- case 31:
- return STR_MO_MULTISIG;
- case 32:
- return STR_MO_PREIMAGE;
- case 35:
- return STR_MO_BOUNTIES;
- case 40:
- return STR_MO_CHILDBOUNTIES;
- case 36:
- return STR_MO_TIPS;
- case 37:
- return STR_MO_ELECTIONPROVIDERMULTIPHASE;
- case 38:
- return STR_MO_GILT;
- case 39:
- return STR_MO_VOTERLIST;
- case 41:
- return STR_MO_NOMINATIONPOOLS;
- case 51:
- return STR_MO_CONFIGURATION;
- case 57:
- return STR_MO_INITIALIZER;
- case 60:
- return STR_MO_HRMP;
- case 62:
- return STR_MO_PARASDISPUTES;
- case 70:
- return STR_MO_REGISTRAR;
- case 72:
- return STR_MO_AUCTIONS;
-#endif
- default:
- return NULL;
- }
-
- return NULL;
-}
-
-const char* _getMethod_Name_V1(uint8_t moduleIdx, uint8_t callIdx)
-{
- uint16_t callPrivIdx = ((uint16_t)moduleIdx << 8u) + callIdx;
-
- switch (callPrivIdx) {
- case 1024: /* module 4 call 0 */
- return STR_ME_TRANSFER;
- case 1026: /* module 4 call 2 */
- return STR_ME_FORCE_TRANSFER;
- case 1027: /* module 4 call 3 */
- return STR_ME_TRANSFER_KEEP_ALIVE;
- case 1028: /* module 4 call 4 */
- return STR_ME_TRANSFER_ALL;
- case 1536: /* module 6 call 0 */
- return STR_ME_BOND;
- case 1537: /* module 6 call 1 */
- return STR_ME_BOND_EXTRA;
- case 1538: /* module 6 call 2 */
- return STR_ME_UNBOND;
- case 1539: /* module 6 call 3 */
- return STR_ME_WITHDRAW_UNBONDED;
- case 1540: /* module 6 call 4 */
- return STR_ME_VALIDATE;
- case 1541: /* module 6 call 5 */
- return STR_ME_NOMINATE;
- case 1542: /* module 6 call 6 */
- return STR_ME_CHILL;
- case 1543: /* module 6 call 7 */
- return STR_ME_SET_PAYEE;
- case 1544: /* module 6 call 8 */
- return STR_ME_SET_CONTROLLER;
- case 1554: /* module 6 call 18 */
- return STR_ME_PAYOUT_STAKERS;
- case 1555: /* module 6 call 19 */
- return STR_ME_REBOND;
- case 2048: /* module 8 call 0 */
- return STR_ME_SET_KEYS;
- case 2049: /* module 8 call 1 */
- return STR_ME_PURGE_KEYS;
- case 6144: /* module 24 call 0 */
- return STR_ME_BATCH;
- case 6146: /* module 24 call 2 */
- return STR_ME_BATCH_ALL;
- case 6148: /* module 24 call 4 */
- return STR_ME_FORCE_BATCH;
- case 18688: /* module 73 call 0 */
- return STR_ME_CREATE;
- case 18689: /* module 73 call 1 */
- return STR_ME_CONTRIBUTE;
- case 18690: /* module 73 call 2 */
- return STR_ME_WITHDRAW;
- case 18691: /* module 73 call 3 */
- return STR_ME_REFUND;
- case 18692: /* module 73 call 4 */
- return STR_ME_DISSOLVE;
- case 18693: /* module 73 call 5 */
- return STR_ME_EDIT;
- case 18694: /* module 73 call 6 */
- return STR_ME_ADD_MEMO;
- case 18695: /* module 73 call 7 */
- return STR_ME_POKE;
- case 18696: /* module 73 call 8 */
- return STR_ME_CONTRIBUTE_ALL;
- default:
- return _getMethod_Name_V1_ParserFull(callPrivIdx);
- }
-
- return NULL;
-}
-
-const char* _getMethod_Name_V1_ParserFull(uint16_t callPrivIdx)
-{
- switch (callPrivIdx) {
-#ifdef SUBSTRATE_PARSER_FULL
- case 0: /* module 0 call 0 */
- return STR_ME_FILL_BLOCK;
- case 1: /* module 0 call 1 */
- return STR_ME_REMARK;
- case 2: /* module 0 call 2 */
- return STR_ME_SET_HEAP_PAGES;
- case 3: /* module 0 call 3 */
- return STR_ME_SET_CODE;
- case 4: /* module 0 call 4 */
- return STR_ME_SET_CODE_WITHOUT_CHECKS;
- case 8: /* module 0 call 8 */
- return STR_ME_REMARK_WITH_EVENT;
- case 512: /* module 2 call 0 */
- return STR_ME_SET;
- case 768: /* module 3 call 0 */
- return STR_ME_CLAIM;
- case 769: /* module 3 call 1 */
- return STR_ME_TRANSFER;
- case 770: /* module 3 call 2 */
- return STR_ME_FREE;
- case 771: /* module 3 call 3 */
- return STR_ME_FORCE_TRANSFER;
- case 772: /* module 3 call 4 */
- return STR_ME_FREEZE;
- case 1025: /* module 4 call 1 */
- return STR_ME_SET_BALANCE;
- case 1029: /* module 4 call 5 */
- return STR_ME_FORCE_UNRESERVE;
- case 1545: /* module 6 call 9 */
- return STR_ME_SET_VALIDATOR_COUNT;
- case 1546: /* module 6 call 10 */
- return STR_ME_INCREASE_VALIDATOR_COUNT;
- case 1548: /* module 6 call 12 */
- return STR_ME_FORCE_NO_ERAS;
- case 1549: /* module 6 call 13 */
- return STR_ME_FORCE_NEW_ERA;
- case 1550: /* module 6 call 14 */
- return STR_ME_SET_INVULNERABLES;
- case 1551: /* module 6 call 15 */
- return STR_ME_FORCE_UNSTAKE;
- case 1552: /* module 6 call 16 */
- return STR_ME_FORCE_NEW_ERA_ALWAYS;
- case 1553: /* module 6 call 17 */
- return STR_ME_CANCEL_DEFERRED_SLASH;
- case 1556: /* module 6 call 20 */
- return STR_ME_SET_HISTORY_DEPTH;
- case 1557: /* module 6 call 21 */
- return STR_ME_REAP_STASH;
- case 1558: /* module 6 call 22 */
- return STR_ME_KICK;
- case 1560: /* module 6 call 24 */
- return STR_ME_CHILL_OTHER;
- case 1561: /* module 6 call 25 */
- return STR_ME_FORCE_APPLY_MIN_COMMISSION;
- case 2562: /* module 10 call 2 */
- return STR_ME_NOTE_STALLED;
- case 3328: /* module 13 call 0 */
- return STR_ME_PROPOSE;
- case 3329: /* module 13 call 1 */
- return STR_ME_SECOND;
- case 3330: /* module 13 call 2 */
- return STR_ME_VOTE;
- case 3331: /* module 13 call 3 */
- return STR_ME_EMERGENCY_CANCEL;
- case 3332: /* module 13 call 4 */
- return STR_ME_EXTERNAL_PROPOSE;
- case 3333: /* module 13 call 5 */
- return STR_ME_EXTERNAL_PROPOSE_MAJORITY;
- case 3334: /* module 13 call 6 */
- return STR_ME_EXTERNAL_PROPOSE_DEFAULT;
- case 3335: /* module 13 call 7 */
- return STR_ME_FAST_TRACK;
- case 3336: /* module 13 call 8 */
- return STR_ME_VETO_EXTERNAL;
- case 3337: /* module 13 call 9 */
- return STR_ME_CANCEL_REFERENDUM;
- case 3338: /* module 13 call 10 */
- return STR_ME_CANCEL_QUEUED;
- case 3339: /* module 13 call 11 */
- return STR_ME_DELEGATE;
- case 3340: /* module 13 call 12 */
- return STR_ME_UNDELEGATE;
- case 3341: /* module 13 call 13 */
- return STR_ME_CLEAR_PUBLIC_PROPOSALS;
- case 3342: /* module 13 call 14 */
- return STR_ME_NOTE_PREIMAGE;
- case 3343: /* module 13 call 15 */
- return STR_ME_NOTE_PREIMAGE_OPERATIONAL;
- case 3344: /* module 13 call 16 */
- return STR_ME_NOTE_IMMINENT_PREIMAGE;
- case 3345: /* module 13 call 17 */
- return STR_ME_NOTE_IMMINENT_PREIMAGE_OPERATIONAL;
- case 3346: /* module 13 call 18 */
- return STR_ME_REAP_PREIMAGE;
- case 3347: /* module 13 call 19 */
- return STR_ME_UNLOCK;
- case 3348: /* module 13 call 20 */
- return STR_ME_REMOVE_VOTE;
- case 3349: /* module 13 call 21 */
- return STR_ME_REMOVE_OTHER_VOTE;
- case 3350: /* module 13 call 22 */
- return STR_ME_ENACT_PROPOSAL;
- case 3352: /* module 13 call 24 */
- return STR_ME_CANCEL_PROPOSAL;
- case 3584: /* module 14 call 0 */
- return STR_ME_SET_MEMBERS;
- case 3585: /* module 14 call 1 */
- return STR_ME_EXECUTE;
- case 3586: /* module 14 call 2 */
- return STR_ME_PROPOSE;
- case 3587: /* module 14 call 3 */
- return STR_ME_VOTE;
- case 3588: /* module 14 call 4 */
- return STR_ME_CLOSE;
- case 3589: /* module 14 call 5 */
- return STR_ME_DISAPPROVE_PROPOSAL;
- case 3840: /* module 15 call 0 */
- return STR_ME_SET_MEMBERS;
- case 3841: /* module 15 call 1 */
- return STR_ME_EXECUTE;
- case 3842: /* module 15 call 2 */
- return STR_ME_PROPOSE;
- case 3843: /* module 15 call 3 */
- return STR_ME_VOTE;
- case 3844: /* module 15 call 4 */
- return STR_ME_CLOSE;
- case 3845: /* module 15 call 5 */
- return STR_ME_DISAPPROVE_PROPOSAL;
- case 4096: /* module 16 call 0 */
- return STR_ME_VOTE;
- case 4097: /* module 16 call 1 */
- return STR_ME_REMOVE_VOTER;
- case 4098: /* module 16 call 2 */
- return STR_ME_SUBMIT_CANDIDACY;
- case 4100: /* module 16 call 4 */
- return STR_ME_REMOVE_MEMBER;
- case 4101: /* module 16 call 5 */
- return STR_ME_CLEAN_DEFUNCT_VOTERS;
- case 4352: /* module 17 call 0 */
- return STR_ME_ADD_MEMBER;
- case 4353: /* module 17 call 1 */
- return STR_ME_REMOVE_MEMBER;
- case 4354: /* module 17 call 2 */
- return STR_ME_SWAP_MEMBER;
- case 4355: /* module 17 call 3 */
- return STR_ME_RESET_MEMBERS;
- case 4356: /* module 17 call 4 */
- return STR_ME_CHANGE_KEY;
- case 4357: /* module 17 call 5 */
- return STR_ME_SET_PRIME;
- case 4358: /* module 17 call 6 */
- return STR_ME_CLEAR_PRIME;
- case 4608: /* module 18 call 0 */
- return STR_ME_PROPOSE_SPEND;
- case 4609: /* module 18 call 1 */
- return STR_ME_REJECT_PROPOSAL;
- case 4610: /* module 18 call 2 */
- return STR_ME_APPROVE_PROPOSAL;
- case 4611: /* module 18 call 3 */
- return STR_ME_SPEND;
- case 4612: /* module 18 call 4 */
- return STR_ME_REMOVE_APPROVAL;
- case 4864: /* module 19 call 0 */
- return STR_ME_CLAIM;
- case 4866: /* module 19 call 2 */
- return STR_ME_CLAIM_ATTEST;
- case 4867: /* module 19 call 3 */
- return STR_ME_ATTEST;
- case 4868: /* module 19 call 4 */
- return STR_ME_MOVE_CLAIM;
- case 6400: /* module 25 call 0 */
- return STR_ME_ADD_REGISTRAR;
- case 6403: /* module 25 call 3 */
- return STR_ME_CLEAR_IDENTITY;
- case 6404: /* module 25 call 4 */
- return STR_ME_REQUEST_JUDGEMENT;
- case 6405: /* module 25 call 5 */
- return STR_ME_CANCEL_REQUEST;
- case 6406: /* module 25 call 6 */
- return STR_ME_SET_FEE;
- case 6407: /* module 25 call 7 */
- return STR_ME_SET_ACCOUNT_ID;
- case 6410: /* module 25 call 10 */
- return STR_ME_KILL_IDENTITY;
- case 6413: /* module 25 call 13 */
- return STR_ME_REMOVE_SUB;
- case 6414: /* module 25 call 14 */
- return STR_ME_QUIT_SUB;
- case 6656: /* module 26 call 0 */
- return STR_ME_BID;
- case 6657: /* module 26 call 1 */
- return STR_ME_UNBID;
- case 6658: /* module 26 call 2 */
- return STR_ME_VOUCH;
- case 6659: /* module 26 call 3 */
- return STR_ME_UNVOUCH;
- case 6660: /* module 26 call 4 */
- return STR_ME_VOTE;
- case 6661: /* module 26 call 5 */
- return STR_ME_DEFENDER_VOTE;
- case 6662: /* module 26 call 6 */
- return STR_ME_PAYOUT;
- case 6663: /* module 26 call 7 */
- return STR_ME_FOUND;
- case 6664: /* module 26 call 8 */
- return STR_ME_UNFOUND;
- case 6665: /* module 26 call 9 */
- return STR_ME_JUDGE_SUSPENDED_MEMBER;
- case 6667: /* module 26 call 11 */
- return STR_ME_SET_MAX_MEMBERS;
- case 6913: /* module 27 call 1 */
- return STR_ME_SET_RECOVERED;
- case 6915: /* module 27 call 3 */
- return STR_ME_INITIATE_RECOVERY;
- case 6916: /* module 27 call 4 */
- return STR_ME_VOUCH_RECOVERY;
- case 6917: /* module 27 call 5 */
- return STR_ME_CLAIM_RECOVERY;
- case 6918: /* module 27 call 6 */
- return STR_ME_CLOSE_RECOVERY;
- case 6919: /* module 27 call 7 */
- return STR_ME_REMOVE_RECOVERY;
- case 6920: /* module 27 call 8 */
- return STR_ME_CANCEL_RECOVERED;
- case 7168: /* module 28 call 0 */
- return STR_ME_VEST;
- case 7169: /* module 28 call 1 */
- return STR_ME_VEST_OTHER;
- case 7170: /* module 28 call 2 */
- return STR_ME_VESTED_TRANSFER;
- case 7171: /* module 28 call 3 */
- return STR_ME_FORCE_VESTED_TRANSFER;
- case 7172: /* module 28 call 4 */
- return STR_ME_MERGE_SCHEDULES;
- case 7680: /* module 30 call 0 */
- return STR_ME_PROXY;
- case 7681: /* module 30 call 1 */
- return STR_ME_ADD_PROXY;
- case 7682: /* module 30 call 2 */
- return STR_ME_REMOVE_PROXY;
- case 7683: /* module 30 call 3 */
- return STR_ME_REMOVE_PROXIES;
- case 7684: /* module 30 call 4 */
- return STR_ME_ANONYMOUS;
- case 7685: /* module 30 call 5 */
- return STR_ME_KILL_ANONYMOUS;
- case 7689: /* module 30 call 9 */
- return STR_ME_PROXY_ANNOUNCED;
- case 7936: /* module 31 call 0 */
- return STR_ME_AS_MULTI_THRESHOLD_1;
- case 7937: /* module 31 call 1 */
- return STR_ME_AS_MULTI;
- case 7938: /* module 31 call 2 */
- return STR_ME_APPROVE_AS_MULTI;
- case 7939: /* module 31 call 3 */
- return STR_ME_CANCEL_AS_MULTI;
- case 8192: /* module 32 call 0 */
- return STR_ME_NOTE_PREIMAGE;
- case 8193: /* module 32 call 1 */
- return STR_ME_UNNOTE_PREIMAGE;
- case 8194: /* module 32 call 2 */
- return STR_ME_REQUEST_PREIMAGE;
- case 8195: /* module 32 call 3 */
- return STR_ME_UNREQUEST_PREIMAGE;
- case 8960: /* module 35 call 0 */
- return STR_ME_PROPOSE_BOUNTY;
- case 8961: /* module 35 call 1 */
- return STR_ME_APPROVE_BOUNTY;
- case 8962: /* module 35 call 2 */
- return STR_ME_PROPOSE_CURATOR;
- case 8963: /* module 35 call 3 */
- return STR_ME_UNASSIGN_CURATOR;
- case 8964: /* module 35 call 4 */
- return STR_ME_ACCEPT_CURATOR;
- case 8965: /* module 35 call 5 */
- return STR_ME_AWARD_BOUNTY;
- case 8966: /* module 35 call 6 */
- return STR_ME_CLAIM_BOUNTY;
- case 8967: /* module 35 call 7 */
- return STR_ME_CLOSE_BOUNTY;
- case 8968: /* module 35 call 8 */
- return STR_ME_EXTEND_BOUNTY_EXPIRY;
- case 10240: /* module 40 call 0 */
- return STR_ME_ADD_CHILD_BOUNTY;
- case 10241: /* module 40 call 1 */
- return STR_ME_PROPOSE_CURATOR;
- case 10242: /* module 40 call 2 */
- return STR_ME_ACCEPT_CURATOR;
- case 10243: /* module 40 call 3 */
- return STR_ME_UNASSIGN_CURATOR;
- case 10244: /* module 40 call 4 */
- return STR_ME_AWARD_CHILD_BOUNTY;
- case 10245: /* module 40 call 5 */
- return STR_ME_CLAIM_CHILD_BOUNTY;
- case 10246: /* module 40 call 6 */
- return STR_ME_CLOSE_CHILD_BOUNTY;
- case 9216: /* module 36 call 0 */
- return STR_ME_REPORT_AWESOME;
- case 9217: /* module 36 call 1 */
- return STR_ME_RETRACT_TIP;
- case 9218: /* module 36 call 2 */
- return STR_ME_TIP_NEW;
- case 9219: /* module 36 call 3 */
- return STR_ME_TIP;
- case 9220: /* module 36 call 4 */
- return STR_ME_CLOSE_TIP;
- case 9221: /* module 36 call 5 */
- return STR_ME_SLASH_TIP;
- case 9476: /* module 37 call 4 */
- return STR_ME_GOVERNANCE_FALLBACK;
- case 9728: /* module 38 call 0 */
- return STR_ME_PLACE_BID;
- case 9729: /* module 38 call 1 */
- return STR_ME_RETRACT_BID;
- case 9730: /* module 38 call 2 */
- return STR_ME_SET_TARGET;
- case 9731: /* module 38 call 3 */
- return STR_ME_THAW;
- case 9984: /* module 39 call 0 */
- return STR_ME_REBAG;
- case 9985: /* module 39 call 1 */
- return STR_ME_PUT_IN_FRONT_OF;
- case 10496: /* module 41 call 0 */
- return STR_ME_JOIN;
- case 10497: /* module 41 call 1 */
- return STR_ME_BOND_EXTRA;
- case 10498: /* module 41 call 2 */
- return STR_ME_CLAIM_PAYOUT;
- case 10499: /* module 41 call 3 */
- return STR_ME_UNBOND;
- case 10500: /* module 41 call 4 */
- return STR_ME_POOL_WITHDRAW_UNBONDED;
- case 10501: /* module 41 call 5 */
- return STR_ME_WITHDRAW_UNBONDED;
- case 10502: /* module 41 call 6 */
- return STR_ME_CREATE;
- case 10503: /* module 41 call 7 */
- return STR_ME_NOMINATE;
- case 10504: /* module 41 call 8 */
- return STR_ME_SET_STATE;
- case 10505: /* module 41 call 9 */
- return STR_ME_SET_METADATA;
- case 10506: /* module 41 call 10 */
- return STR_ME_SET_CONFIGS;
- case 10507: /* module 41 call 11 */
- return STR_ME_UPDATE_ROLES;
- case 10508: /* module 41 call 12 */
- return STR_ME_CHILL;
- case 13056: /* module 51 call 0 */
- return STR_ME_SET_VALIDATION_UPGRADE_COOLDOWN;
- case 13057: /* module 51 call 1 */
- return STR_ME_SET_VALIDATION_UPGRADE_DELAY;
- case 13058: /* module 51 call 2 */
- return STR_ME_SET_CODE_RETENTION_PERIOD;
- case 13059: /* module 51 call 3 */
- return STR_ME_SET_MAX_CODE_SIZE;
- case 13060: /* module 51 call 4 */
- return STR_ME_SET_MAX_POV_SIZE;
- case 13061: /* module 51 call 5 */
- return STR_ME_SET_MAX_HEAD_DATA_SIZE;
- case 13062: /* module 51 call 6 */
- return STR_ME_SET_PARATHREAD_CORES;
- case 13063: /* module 51 call 7 */
- return STR_ME_SET_PARATHREAD_RETRIES;
- case 13064: /* module 51 call 8 */
- return STR_ME_SET_GROUP_ROTATION_FREQUENCY;
- case 13065: /* module 51 call 9 */
- return STR_ME_SET_CHAIN_AVAILABILITY_PERIOD;
- case 13066: /* module 51 call 10 */
- return STR_ME_SET_THREAD_AVAILABILITY_PERIOD;
- case 13067: /* module 51 call 11 */
- return STR_ME_SET_SCHEDULING_LOOKAHEAD;
- case 13068: /* module 51 call 12 */
- return STR_ME_SET_MAX_VALIDATORS_PER_CORE;
- case 13069: /* module 51 call 13 */
- return STR_ME_SET_MAX_VALIDATORS;
- case 13070: /* module 51 call 14 */
- return STR_ME_SET_DISPUTE_PERIOD;
- case 13071: /* module 51 call 15 */
- return STR_ME_SET_DISPUTE_POST_CONCLUSION_ACCEPTANCE_PERIOD;
- case 13072: /* module 51 call 16 */
- return STR_ME_SET_DISPUTE_MAX_SPAM_SLOTS;
- case 13073: /* module 51 call 17 */
- return STR_ME_SET_DISPUTE_CONCLUSION_BY_TIME_OUT_PERIOD;
- case 13074: /* module 51 call 18 */
- return STR_ME_SET_NO_SHOW_SLOTS;
- case 13075: /* module 51 call 19 */
- return STR_ME_SET_N_DELAY_TRANCHES;
- case 13076: /* module 51 call 20 */
- return STR_ME_SET_ZEROTH_DELAY_TRANCHE_WIDTH;
- case 13077: /* module 51 call 21 */
- return STR_ME_SET_NEEDED_APPROVALS;
- case 13078: /* module 51 call 22 */
- return STR_ME_SET_RELAY_VRF_MODULO_SAMPLES;
- case 13079: /* module 51 call 23 */
- return STR_ME_SET_MAX_UPWARD_QUEUE_COUNT;
- case 13080: /* module 51 call 24 */
- return STR_ME_SET_MAX_UPWARD_QUEUE_SIZE;
- case 13081: /* module 51 call 25 */
- return STR_ME_SET_MAX_DOWNWARD_MESSAGE_SIZE;
- case 13082: /* module 51 call 26 */
- return STR_ME_SET_UMP_SERVICE_TOTAL_WEIGHT;
- case 13083: /* module 51 call 27 */
- return STR_ME_SET_MAX_UPWARD_MESSAGE_SIZE;
- case 13084: /* module 51 call 28 */
- return STR_ME_SET_MAX_UPWARD_MESSAGE_NUM_PER_CANDIDATE;
- case 13085: /* module 51 call 29 */
- return STR_ME_SET_HRMP_OPEN_REQUEST_TTL;
- case 13086: /* module 51 call 30 */
- return STR_ME_SET_HRMP_SENDER_DEPOSIT;
- case 13087: /* module 51 call 31 */
- return STR_ME_SET_HRMP_RECIPIENT_DEPOSIT;
- case 13088: /* module 51 call 32 */
- return STR_ME_SET_HRMP_CHANNEL_MAX_CAPACITY;
- case 13089: /* module 51 call 33 */
- return STR_ME_SET_HRMP_CHANNEL_MAX_TOTAL_SIZE;
- case 13090: /* module 51 call 34 */
- return STR_ME_SET_HRMP_MAX_PARACHAIN_INBOUND_CHANNELS;
- case 13091: /* module 51 call 35 */
- return STR_ME_SET_HRMP_MAX_PARATHREAD_INBOUND_CHANNELS;
- case 13092: /* module 51 call 36 */
- return STR_ME_SET_HRMP_CHANNEL_MAX_MESSAGE_SIZE;
- case 13093: /* module 51 call 37 */
- return STR_ME_SET_HRMP_MAX_PARACHAIN_OUTBOUND_CHANNELS;
- case 13094: /* module 51 call 38 */
- return STR_ME_SET_HRMP_MAX_PARATHREAD_OUTBOUND_CHANNELS;
- case 13095: /* module 51 call 39 */
- return STR_ME_SET_HRMP_MAX_MESSAGE_NUM_PER_CANDIDATE;
- case 13096: /* module 51 call 40 */
- return STR_ME_SET_UMP_MAX_INDIVIDUAL_WEIGHT;
- case 13097: /* module 51 call 41 */
- return STR_ME_SET_PVF_CHECKING_ENABLED;
- case 13098: /* module 51 call 42 */
- return STR_ME_SET_PVF_VOTING_TTL;
- case 13099: /* module 51 call 43 */
- return STR_ME_SET_MINIMUM_VALIDATION_UPGRADE_DELAY;
- case 13100: /* module 51 call 44 */
- return STR_ME_SET_BYPASS_CONSISTENCY_CHECK;
- case 14592: /* module 57 call 0 */
- return STR_ME_FORCE_APPROVE;
- case 15364: /* module 60 call 4 */
- return STR_ME_FORCE_PROCESS_HRMP_OPEN;
- case 15365: /* module 60 call 5 */
- return STR_ME_FORCE_PROCESS_HRMP_CLOSE;
- case 15872: /* module 62 call 0 */
- return STR_ME_FORCE_UNFREEZE;
- case 17925: /* module 70 call 5 */
- return STR_ME_RESERVE;
- case 18432: /* module 72 call 0 */
- return STR_ME_NEW_AUCTION;
- case 18433: /* module 72 call 1 */
- return STR_ME_BID;
- case 18434: /* module 72 call 2 */
- return STR_ME_CANCEL_AUCTION;
-#endif
- default:
- return NULL;
- }
-
- return NULL;
-}
-
-uint8_t _getMethod_NumItems_V1(uint8_t moduleIdx, uint8_t callIdx)
-{
- uint16_t callPrivIdx = ((uint16_t)moduleIdx << 8u) + callIdx;
-
- switch (callPrivIdx) {
- case 1024: /* module 4 call 0 */
- return 2;
- case 1026: /* module 4 call 2 */
- return 3;
- case 1027: /* module 4 call 3 */
- return 2;
- case 1028: /* module 4 call 4 */
- return 2;
- case 1536: /* module 6 call 0 */
- return 3;
- case 1537: /* module 6 call 1 */
- return 1;
- case 1538: /* module 6 call 2 */
- return 1;
- case 1539: /* module 6 call 3 */
- return 1;
- case 1540: /* module 6 call 4 */
- return 1;
- case 1541: /* module 6 call 5 */
- return 1;
- case 1542: /* module 6 call 6 */
- return 0;
- case 1543: /* module 6 call 7 */
- return 1;
- case 1544: /* module 6 call 8 */
- return 1;
- case 1554: /* module 6 call 18 */
- return 2;
- case 1555: /* module 6 call 19 */
- return 1;
- case 2048: /* module 8 call 0 */
- return 2;
- case 2049: /* module 8 call 1 */
- return 0;
- case 6144: /* module 24 call 0 */
- return 1;
- case 6146: /* module 24 call 2 */
- return 1;
- case 6148: /* module 24 call 4 */
- return 1;
- case 18688: /* module 73 call 0 */
- return 6;
- case 18689: /* module 73 call 1 */
- return 3;
- case 18690: /* module 73 call 2 */
- return 2;
- case 18691: /* module 73 call 3 */
- return 1;
- case 18692: /* module 73 call 4 */
- return 1;
- case 18693: /* module 73 call 5 */
- return 6;
- case 18694: /* module 73 call 6 */
- return 2;
- case 18695: /* module 73 call 7 */
- return 1;
- case 18696: /* module 73 call 8 */
- return 2;
-#ifdef SUBSTRATE_PARSER_FULL
- case 0: /* module 0 call 0 */
- return 1;
- case 1: /* module 0 call 1 */
- return 1;
- case 2: /* module 0 call 2 */
- return 1;
- case 3: /* module 0 call 3 */
- return 1;
- case 4: /* module 0 call 4 */
- return 1;
- case 8: /* module 0 call 8 */
- return 1;
- case 512: /* module 2 call 0 */
- return 1;
- case 768: /* module 3 call 0 */
- return 1;
- case 769: /* module 3 call 1 */
- return 2;
- case 770: /* module 3 call 2 */
- return 1;
- case 771: /* module 3 call 3 */
- return 3;
- case 772: /* module 3 call 4 */
- return 1;
- case 1025: /* module 4 call 1 */
- return 3;
- case 1029: /* module 4 call 5 */
- return 2;
- case 1545: /* module 6 call 9 */
- return 1;
- case 1546: /* module 6 call 10 */
- return 1;
- case 1548: /* module 6 call 12 */
- return 0;
- case 1549: /* module 6 call 13 */
- return 0;
- case 1550: /* module 6 call 14 */
- return 1;
- case 1551: /* module 6 call 15 */
- return 2;
- case 1552: /* module 6 call 16 */
- return 0;
- case 1553: /* module 6 call 17 */
- return 2;
- case 1556: /* module 6 call 20 */
- return 2;
- case 1557: /* module 6 call 21 */
- return 2;
- case 1558: /* module 6 call 22 */
- return 1;
- case 1560: /* module 6 call 24 */
- return 1;
- case 1561: /* module 6 call 25 */
- return 1;
- case 2562: /* module 10 call 2 */
- return 2;
- case 3328: /* module 13 call 0 */
- return 2;
- case 3329: /* module 13 call 1 */
- return 2;
- case 3330: /* module 13 call 2 */
- return 2;
- case 3331: /* module 13 call 3 */
- return 1;
- case 3332: /* module 13 call 4 */
- return 1;
- case 3333: /* module 13 call 5 */
- return 1;
- case 3334: /* module 13 call 6 */
- return 1;
- case 3335: /* module 13 call 7 */
- return 3;
- case 3336: /* module 13 call 8 */
- return 1;
- case 3337: /* module 13 call 9 */
- return 1;
- case 3338: /* module 13 call 10 */
- return 1;
- case 3339: /* module 13 call 11 */
- return 3;
- case 3340: /* module 13 call 12 */
- return 0;
- case 3341: /* module 13 call 13 */
- return 0;
- case 3342: /* module 13 call 14 */
- return 1;
- case 3343: /* module 13 call 15 */
- return 1;
- case 3344: /* module 13 call 16 */
- return 1;
- case 3345: /* module 13 call 17 */
- return 1;
- case 3346: /* module 13 call 18 */
- return 2;
- case 3347: /* module 13 call 19 */
- return 1;
- case 3348: /* module 13 call 20 */
- return 1;
- case 3349: /* module 13 call 21 */
- return 2;
- case 3350: /* module 13 call 22 */
- return 2;
- case 3352: /* module 13 call 24 */
- return 1;
- case 3584: /* module 14 call 0 */
- return 3;
- case 3585: /* module 14 call 1 */
- return 2;
- case 3586: /* module 14 call 2 */
- return 3;
- case 3587: /* module 14 call 3 */
- return 3;
- case 3588: /* module 14 call 4 */
- return 4;
- case 3589: /* module 14 call 5 */
- return 1;
- case 3840: /* module 15 call 0 */
- return 3;
- case 3841: /* module 15 call 1 */
- return 2;
- case 3842: /* module 15 call 2 */
- return 3;
- case 3843: /* module 15 call 3 */
- return 3;
- case 3844: /* module 15 call 4 */
- return 4;
- case 3845: /* module 15 call 5 */
- return 1;
- case 4096: /* module 16 call 0 */
- return 2;
- case 4097: /* module 16 call 1 */
- return 0;
- case 4098: /* module 16 call 2 */
- return 1;
- case 4100: /* module 16 call 4 */
- return 3;
- case 4101: /* module 16 call 5 */
- return 2;
- case 4352: /* module 17 call 0 */
- return 1;
- case 4353: /* module 17 call 1 */
- return 1;
- case 4354: /* module 17 call 2 */
- return 2;
- case 4355: /* module 17 call 3 */
- return 1;
- case 4356: /* module 17 call 4 */
- return 1;
- case 4357: /* module 17 call 5 */
- return 1;
- case 4358: /* module 17 call 6 */
- return 0;
- case 4608: /* module 18 call 0 */
- return 2;
- case 4609: /* module 18 call 1 */
- return 1;
- case 4610: /* module 18 call 2 */
- return 1;
- case 4611: /* module 18 call 3 */
- return 2;
- case 4612: /* module 18 call 4 */
- return 1;
- case 4864: /* module 19 call 0 */
- return 2;
- case 4866: /* module 19 call 2 */
- return 3;
- case 4867: /* module 19 call 3 */
- return 1;
- case 4868: /* module 19 call 4 */
- return 3;
- case 6400: /* module 25 call 0 */
- return 1;
- case 6403: /* module 25 call 3 */
- return 0;
- case 6404: /* module 25 call 4 */
- return 2;
- case 6405: /* module 25 call 5 */
- return 1;
- case 6406: /* module 25 call 6 */
- return 2;
- case 6407: /* module 25 call 7 */
- return 2;
- case 6410: /* module 25 call 10 */
- return 1;
- case 6413: /* module 25 call 13 */
- return 1;
- case 6414: /* module 25 call 14 */
- return 0;
- case 6656: /* module 26 call 0 */
- return 1;
- case 6657: /* module 26 call 1 */
- return 1;
- case 6658: /* module 26 call 2 */
- return 3;
- case 6659: /* module 26 call 3 */
- return 1;
- case 6660: /* module 26 call 4 */
- return 2;
- case 6661: /* module 26 call 5 */
- return 1;
- case 6662: /* module 26 call 6 */
- return 0;
- case 6663: /* module 26 call 7 */
- return 3;
- case 6664: /* module 26 call 8 */
- return 0;
- case 6665: /* module 26 call 9 */
- return 2;
- case 6667: /* module 26 call 11 */
- return 1;
- case 6913: /* module 27 call 1 */
- return 2;
- case 6915: /* module 27 call 3 */
- return 1;
- case 6916: /* module 27 call 4 */
- return 2;
- case 6917: /* module 27 call 5 */
- return 1;
- case 6918: /* module 27 call 6 */
- return 1;
- case 6919: /* module 27 call 7 */
- return 0;
- case 6920: /* module 27 call 8 */
- return 1;
- case 7168: /* module 28 call 0 */
- return 0;
- case 7169: /* module 28 call 1 */
- return 1;
- case 7170: /* module 28 call 2 */
- return 2;
- case 7171: /* module 28 call 3 */
- return 3;
- case 7172: /* module 28 call 4 */
- return 2;
- case 7680: /* module 30 call 0 */
- return 3;
- case 7681: /* module 30 call 1 */
- return 3;
- case 7682: /* module 30 call 2 */
- return 3;
- case 7683: /* module 30 call 3 */
- return 0;
- case 7684: /* module 30 call 4 */
- return 3;
- case 7685: /* module 30 call 5 */
- return 5;
- case 7689: /* module 30 call 9 */
- return 4;
- case 7936: /* module 31 call 0 */
- return 2;
- case 7937: /* module 31 call 1 */
- return 6;
- case 7938: /* module 31 call 2 */
- return 5;
- case 7939: /* module 31 call 3 */
- return 4;
- case 8192: /* module 32 call 0 */
- return 1;
- case 8193: /* module 32 call 1 */
- return 1;
- case 8194: /* module 32 call 2 */
- return 1;
- case 8195: /* module 32 call 3 */
- return 1;
- case 8960: /* module 35 call 0 */
- return 2;
- case 8961: /* module 35 call 1 */
- return 1;
- case 8962: /* module 35 call 2 */
- return 3;
- case 8963: /* module 35 call 3 */
- return 1;
- case 8964: /* module 35 call 4 */
- return 1;
- case 8965: /* module 35 call 5 */
- return 2;
- case 8966: /* module 35 call 6 */
- return 1;
- case 8967: /* module 35 call 7 */
- return 1;
- case 8968: /* module 35 call 8 */
- return 2;
- case 10240: /* module 40 call 0 */
- return 3;
- case 10241: /* module 40 call 1 */
- return 4;
- case 10242: /* module 40 call 2 */
- return 2;
- case 10243: /* module 40 call 3 */
- return 2;
- case 10244: /* module 40 call 4 */
- return 3;
- case 10245: /* module 40 call 5 */
- return 2;
- case 10246: /* module 40 call 6 */
- return 2;
- case 9216: /* module 36 call 0 */
- return 2;
- case 9217: /* module 36 call 1 */
- return 1;
- case 9218: /* module 36 call 2 */
- return 3;
- case 9219: /* module 36 call 3 */
- return 2;
- case 9220: /* module 36 call 4 */
- return 1;
- case 9221: /* module 36 call 5 */
- return 1;
- case 9476: /* module 37 call 4 */
- return 2;
- case 9728: /* module 38 call 0 */
- return 2;
- case 9729: /* module 38 call 1 */
- return 2;
- case 9730: /* module 38 call 2 */
- return 1;
- case 9731: /* module 38 call 3 */
- return 1;
- case 9984: /* module 39 call 0 */
- return 1;
- case 9985: /* module 39 call 1 */
- return 1;
- case 10496: /* module 41 call 0 */
- return 2;
- case 10497: /* module 41 call 1 */
- return 1;
- case 10498: /* module 41 call 2 */
- return 0;
- case 10499: /* module 41 call 3 */
- return 2;
- case 10500: /* module 41 call 4 */
- return 2;
- case 10501: /* module 41 call 5 */
- return 2;
- case 10502: /* module 41 call 6 */
- return 4;
- case 10503: /* module 41 call 7 */
- return 2;
- case 10504: /* module 41 call 8 */
- return 2;
- case 10505: /* module 41 call 9 */
- return 2;
- case 10506: /* module 41 call 10 */
- return 5;
- case 10507: /* module 41 call 11 */
- return 4;
- case 10508: /* module 41 call 12 */
- return 1;
- case 13056: /* module 51 call 0 */
- return 1;
- case 13057: /* module 51 call 1 */
- return 1;
- case 13058: /* module 51 call 2 */
- return 1;
- case 13059: /* module 51 call 3 */
- return 1;
- case 13060: /* module 51 call 4 */
- return 1;
- case 13061: /* module 51 call 5 */
- return 1;
- case 13062: /* module 51 call 6 */
- return 1;
- case 13063: /* module 51 call 7 */
- return 1;
- case 13064: /* module 51 call 8 */
- return 1;
- case 13065: /* module 51 call 9 */
- return 1;
- case 13066: /* module 51 call 10 */
- return 1;
- case 13067: /* module 51 call 11 */
- return 1;
- case 13068: /* module 51 call 12 */
- return 1;
- case 13069: /* module 51 call 13 */
- return 1;
- case 13070: /* module 51 call 14 */
- return 1;
- case 13071: /* module 51 call 15 */
- return 1;
- case 13072: /* module 51 call 16 */
- return 1;
- case 13073: /* module 51 call 17 */
- return 1;
- case 13074: /* module 51 call 18 */
- return 1;
- case 13075: /* module 51 call 19 */
- return 1;
- case 13076: /* module 51 call 20 */
- return 1;
- case 13077: /* module 51 call 21 */
- return 1;
- case 13078: /* module 51 call 22 */
- return 1;
- case 13079: /* module 51 call 23 */
- return 1;
- case 13080: /* module 51 call 24 */
- return 1;
- case 13081: /* module 51 call 25 */
- return 1;
- case 13082: /* module 51 call 26 */
- return 1;
- case 13083: /* module 51 call 27 */
- return 1;
- case 13084: /* module 51 call 28 */
- return 1;
- case 13085: /* module 51 call 29 */
- return 1;
- case 13086: /* module 51 call 30 */
- return 1;
- case 13087: /* module 51 call 31 */
- return 1;
- case 13088: /* module 51 call 32 */
- return 1;
- case 13089: /* module 51 call 33 */
- return 1;
- case 13090: /* module 51 call 34 */
- return 1;
- case 13091: /* module 51 call 35 */
- return 1;
- case 13092: /* module 51 call 36 */
- return 1;
- case 13093: /* module 51 call 37 */
- return 1;
- case 13094: /* module 51 call 38 */
- return 1;
- case 13095: /* module 51 call 39 */
- return 1;
- case 13096: /* module 51 call 40 */
- return 1;
- case 13097: /* module 51 call 41 */
- return 1;
- case 13098: /* module 51 call 42 */
- return 1;
- case 13099: /* module 51 call 43 */
- return 1;
- case 13100: /* module 51 call 44 */
- return 1;
- case 14592: /* module 57 call 0 */
- return 1;
- case 15364: /* module 60 call 4 */
- return 1;
- case 15365: /* module 60 call 5 */
- return 1;
- case 15872: /* module 62 call 0 */
- return 0;
- case 17925: /* module 70 call 5 */
- return 0;
- case 18432: /* module 72 call 0 */
- return 2;
- case 18433: /* module 72 call 1 */
- return 5;
- case 18434: /* module 72 call 2 */
- return 0;
-#endif
- default:
- return 0;
- }
-
- return 0;
-}
-
-const char* _getMethod_ItemName_V1(uint8_t moduleIdx, uint8_t callIdx, uint8_t itemIdx)
-{
- uint16_t callPrivIdx = ((uint16_t)moduleIdx << 8u) + callIdx;
-
- switch (callPrivIdx) {
- case 1024: /* module 4 call 0 */
- switch (itemIdx) {
- case 0:
- return STR_IT_dest;
- case 1:
- return STR_IT_amount;
- default:
- return NULL;
- }
- case 1026: /* module 4 call 2 */
- switch (itemIdx) {
- case 0:
- return STR_IT_source;
- case 1:
- return STR_IT_dest;
- case 2:
- return STR_IT_amount;
- default:
- return NULL;
- }
- case 1027: /* module 4 call 3 */
- switch (itemIdx) {
- case 0:
- return STR_IT_dest;
- case 1:
- return STR_IT_amount;
- default:
- return NULL;
- }
- case 1028: /* module 4 call 4 */
- switch (itemIdx) {
- case 0:
- return STR_IT_dest;
- case 1:
- return STR_IT_keep_alive;
- default:
- return NULL;
- }
- case 1536: /* module 6 call 0 */
- switch (itemIdx) {
- case 0:
- return STR_IT_controller;
- case 1:
- return STR_IT_amount;
- case 2:
- return STR_IT_payee;
- default:
- return NULL;
- }
- case 1537: /* module 6 call 1 */
- switch (itemIdx) {
- case 0:
- return STR_IT_amount;
- default:
- return NULL;
- }
- case 1538: /* module 6 call 2 */
- switch (itemIdx) {
- case 0:
- return STR_IT_amount;
- default:
- return NULL;
- }
- case 1539: /* module 6 call 3 */
- switch (itemIdx) {
- case 0:
- return STR_IT_num_slashing_spans;
- default:
- return NULL;
- }
- case 1540: /* module 6 call 4 */
- switch (itemIdx) {
- case 0:
- return STR_IT_prefs;
- default:
- return NULL;
- }
- case 1541: /* module 6 call 5 */
- switch (itemIdx) {
- case 0:
- return STR_IT_targets;
- default:
- return NULL;
- }
- case 1542: /* module 6 call 6 */
- switch (itemIdx) {
- default:
- return NULL;
- }
- case 1543: /* module 6 call 7 */
- switch (itemIdx) {
- case 0:
- return STR_IT_payee;
- default:
- return NULL;
- }
- case 1544: /* module 6 call 8 */
- switch (itemIdx) {
- case 0:
- return STR_IT_controller;
- default:
- return NULL;
- }
- case 1554: /* module 6 call 18 */
- switch (itemIdx) {
- case 0:
- return STR_IT_validator_stash;
- case 1:
- return STR_IT_era;
- default:
- return NULL;
- }
- case 1555: /* module 6 call 19 */
- switch (itemIdx) {
- case 0:
- return STR_IT_amount;
- default:
- return NULL;
- }
- case 2048: /* module 8 call 0 */
- switch (itemIdx) {
- case 0:
- return STR_IT_keys;
- case 1:
- return STR_IT_proof;
- default:
- return NULL;
- }
- case 2049: /* module 8 call 1 */
- switch (itemIdx) {
- default:
- return NULL;
- }
- case 6144: /* module 24 call 0 */
- switch (itemIdx) {
- case 0:
- return STR_IT_calls;
- default:
- return NULL;
- }
- case 6146: /* module 24 call 2 */
- switch (itemIdx) {
- case 0:
- return STR_IT_calls;
- default:
- return NULL;
- }
- case 6148: /* module 24 call 4 */
- switch (itemIdx) {
- case 0:
- return STR_IT_calls;
- default:
- return NULL;
- }
- case 18688: /* module 73 call 0 */
- switch (itemIdx) {
- case 0:
- return STR_IT_index;
- case 1:
- return STR_IT_cap;
- case 2:
- return STR_IT_first_period;
- case 3:
- return STR_IT_last_period;
- case 4:
- return STR_IT_end;
- case 5:
- return STR_IT_verifier;
- default:
- return NULL;
- }
- case 18689: /* module 73 call 1 */
- switch (itemIdx) {
- case 0:
- return STR_IT_index;
- case 1:
- return STR_IT_amount;
- case 2:
- return STR_IT_signature;
- default:
- return NULL;
- }
- case 18690: /* module 73 call 2 */
- switch (itemIdx) {
- case 0:
- return STR_IT_who;
- case 1:
- return STR_IT_index;
- default:
- return NULL;
- }
- case 18691: /* module 73 call 3 */
- switch (itemIdx) {
- case 0:
- return STR_IT_index;
- default:
- return NULL;
- }
- case 18692: /* module 73 call 4 */
- switch (itemIdx) {
- case 0:
- return STR_IT_index;
- default:
- return NULL;
- }
- case 18693: /* module 73 call 5 */
- switch (itemIdx) {
- case 0:
- return STR_IT_index;
- case 1:
- return STR_IT_cap;
- case 2:
- return STR_IT_first_period;
- case 3:
- return STR_IT_last_period;
- case 4:
- return STR_IT_end;
- case 5:
- return STR_IT_verifier;
- default:
- return NULL;
- }
- case 18694: /* module 73 call 6 */
- switch (itemIdx) {
- case 0:
- return STR_IT_index;
- case 1:
- return STR_IT_memo;
- default:
- return NULL;
- }
- case 18695: /* module 73 call 7 */
- switch (itemIdx) {
- case 0:
- return STR_IT_index;
- default:
- return NULL;
- }
- case 18696: /* module 73 call 8 */
- switch (itemIdx) {
- case 0:
- return STR_IT_index;
- case 1:
- return STR_IT_signature;
- default:
- return NULL;
- }
-#ifdef SUBSTRATE_PARSER_FULL
- case 0: /* module 0 call 0 */
- switch (itemIdx) {
- case 0:
- return STR_IT_ratio;
- default:
- return NULL;
- }
- case 1: /* module 0 call 1 */
- switch (itemIdx) {
- case 0:
- return STR_IT_remark;
- default:
- return NULL;
- }
- case 2: /* module 0 call 2 */
- switch (itemIdx) {
- case 0:
- return STR_IT_pages;
- default:
- return NULL;
- }
- case 3: /* module 0 call 3 */
- switch (itemIdx) {
- case 0:
- return STR_IT_code;
- default:
- return NULL;
- }
- case 4: /* module 0 call 4 */
- switch (itemIdx) {
- case 0:
- return STR_IT_code;
- default:
- return NULL;
- }
- case 8: /* module 0 call 8 */
- switch (itemIdx) {
- case 0:
- return STR_IT_remark;
- default:
- return NULL;
- }
- case 512: /* module 2 call 0 */
- switch (itemIdx) {
- case 0:
- return STR_IT_now;
- default:
- return NULL;
- }
- case 768: /* module 3 call 0 */
- switch (itemIdx) {
- case 0:
- return STR_IT_index;
- default:
- return NULL;
- }
- case 769: /* module 3 call 1 */
- switch (itemIdx) {
- case 0:
- return STR_IT_new_;
- case 1:
- return STR_IT_index;
- default:
- return NULL;
- }
- case 770: /* module 3 call 2 */
- switch (itemIdx) {
- case 0:
- return STR_IT_index;
- default:
- return NULL;
- }
- case 771: /* module 3 call 3 */
- switch (itemIdx) {
- case 0:
- return STR_IT_new_;
- case 1:
- return STR_IT_index;
- case 2:
- return STR_IT_freeze;
- default:
- return NULL;
- }
- case 772: /* module 3 call 4 */
- switch (itemIdx) {
- case 0:
- return STR_IT_index;
- default:
- return NULL;
- }
- case 1025: /* module 4 call 1 */
- switch (itemIdx) {
- case 0:
- return STR_IT_who;
- case 1:
- return STR_IT_new_free;
- case 2:
- return STR_IT_new_reserved;
- default:
- return NULL;
- }
- case 1029: /* module 4 call 5 */
- switch (itemIdx) {
- case 0:
- return STR_IT_who;
- case 1:
- return STR_IT_amount;
- default:
- return NULL;
- }
- case 1545: /* module 6 call 9 */
- switch (itemIdx) {
- case 0:
- return STR_IT_new_;
- default:
- return NULL;
- }
- case 1546: /* module 6 call 10 */
- switch (itemIdx) {
- case 0:
- return STR_IT_additional;
- default:
- return NULL;
- }
- case 1548: /* module 6 call 12 */
- switch (itemIdx) {
- default:
- return NULL;
- }
- case 1549: /* module 6 call 13 */
- switch (itemIdx) {
- default:
- return NULL;
- }
- case 1550: /* module 6 call 14 */
- switch (itemIdx) {
- case 0:
- return STR_IT_invulnerables;
- default:
- return NULL;
- }
- case 1551: /* module 6 call 15 */
- switch (itemIdx) {
- case 0:
- return STR_IT_stash;
- case 1:
- return STR_IT_num_slashing_spans;
- default:
- return NULL;
- }
- case 1552: /* module 6 call 16 */
- switch (itemIdx) {
- default:
- return NULL;
- }
- case 1553: /* module 6 call 17 */
- switch (itemIdx) {
- case 0:
- return STR_IT_era;
- case 1:
- return STR_IT_slash_indices;
- default:
- return NULL;
- }
- case 1556: /* module 6 call 20 */
- switch (itemIdx) {
- case 0:
- return STR_IT_new_history_depth;
- case 1:
- return STR_IT_era_items_deleted;
- default:
- return NULL;
- }
- case 1557: /* module 6 call 21 */
- switch (itemIdx) {
- case 0:
- return STR_IT_stash;
- case 1:
- return STR_IT_num_slashing_spans;
- default:
- return NULL;
- }
- case 1558: /* module 6 call 22 */
- switch (itemIdx) {
- case 0:
- return STR_IT_who;
- default:
- return NULL;
- }
- case 1560: /* module 6 call 24 */
- switch (itemIdx) {
- case 0:
- return STR_IT_controller;
- default:
- return NULL;
- }
- case 1561: /* module 6 call 25 */
- switch (itemIdx) {
- case 0:
- return STR_IT_validator_stash;
- default:
- return NULL;
- }
- case 2562: /* module 10 call 2 */
- switch (itemIdx) {
- case 0:
- return STR_IT_delay;
- case 1:
- return STR_IT_best_finalized_block_number;
- default:
- return NULL;
- }
- case 3328: /* module 13 call 0 */
- switch (itemIdx) {
- case 0:
- return STR_IT_proposal_hash;
- case 1:
- return STR_IT_amount;
- default:
- return NULL;
- }
- case 3329: /* module 13 call 1 */
- switch (itemIdx) {
- case 0:
- return STR_IT_proposal;
- case 1:
- return STR_IT_seconds_upper_bound;
- default:
- return NULL;
- }
- case 3330: /* module 13 call 2 */
- switch (itemIdx) {
- case 0:
- return STR_IT_ref_index;
- case 1:
- return STR_IT_vote;
- default:
- return NULL;
- }
- case 3331: /* module 13 call 3 */
- switch (itemIdx) {
- case 0:
- return STR_IT_ref_index;
- default:
- return NULL;
- }
- case 3332: /* module 13 call 4 */
- switch (itemIdx) {
- case 0:
- return STR_IT_proposal_hash;
- default:
- return NULL;
- }
- case 3333: /* module 13 call 5 */
- switch (itemIdx) {
- case 0:
- return STR_IT_proposal_hash;
- default:
- return NULL;
- }
- case 3334: /* module 13 call 6 */
- switch (itemIdx) {
- case 0:
- return STR_IT_proposal_hash;
- default:
- return NULL;
- }
- case 3335: /* module 13 call 7 */
- switch (itemIdx) {
- case 0:
- return STR_IT_proposal_hash;
- case 1:
- return STR_IT_voting_period;
- case 2:
- return STR_IT_delay;
- default:
- return NULL;
- }
- case 3336: /* module 13 call 8 */
- switch (itemIdx) {
- case 0:
- return STR_IT_proposal_hash;
- default:
- return NULL;
- }
- case 3337: /* module 13 call 9 */
- switch (itemIdx) {
- case 0:
- return STR_IT_ref_index;
- default:
- return NULL;
- }
- case 3338: /* module 13 call 10 */
- switch (itemIdx) {
- case 0:
- return STR_IT_which;
- default:
- return NULL;
- }
- case 3339: /* module 13 call 11 */
- switch (itemIdx) {
- case 0:
- return STR_IT_to;
- case 1:
- return STR_IT_conviction;
- case 2:
- return STR_IT_balance;
- default:
- return NULL;
- }
- case 3340: /* module 13 call 12 */
- switch (itemIdx) {
- default:
- return NULL;
- }
- case 3341: /* module 13 call 13 */
- switch (itemIdx) {
- default:
- return NULL;
- }
- case 3342: /* module 13 call 14 */
- switch (itemIdx) {
- case 0:
- return STR_IT_encoded_proposal;
- default:
- return NULL;
- }
- case 3343: /* module 13 call 15 */
- switch (itemIdx) {
- case 0:
- return STR_IT_encoded_proposal;
- default:
- return NULL;
- }
- case 3344: /* module 13 call 16 */
- switch (itemIdx) {
- case 0:
- return STR_IT_encoded_proposal;
- default:
- return NULL;
- }
- case 3345: /* module 13 call 17 */
- switch (itemIdx) {
- case 0:
- return STR_IT_encoded_proposal;
- default:
- return NULL;
- }
- case 3346: /* module 13 call 18 */
- switch (itemIdx) {
- case 0:
- return STR_IT_proposal_hash;
- case 1:
- return STR_IT_proposal_len_upper_bound;
- default:
- return NULL;
- }
- case 3347: /* module 13 call 19 */
- switch (itemIdx) {
- case 0:
- return STR_IT_target;
- default:
- return NULL;
- }
- case 3348: /* module 13 call 20 */
- switch (itemIdx) {
- case 0:
- return STR_IT_index;
- default:
- return NULL;
- }
- case 3349: /* module 13 call 21 */
- switch (itemIdx) {
- case 0:
- return STR_IT_target;
- case 1:
- return STR_IT_index;
- default:
- return NULL;
- }
- case 3350: /* module 13 call 22 */
- switch (itemIdx) {
- case 0:
- return STR_IT_proposal_hash;
- case 1:
- return STR_IT_index;
- default:
- return NULL;
- }
- case 3352: /* module 13 call 24 */
- switch (itemIdx) {
- case 0:
- return STR_IT_prop_index;
- default:
- return NULL;
- }
- case 3584: /* module 14 call 0 */
- switch (itemIdx) {
- case 0:
- return STR_IT_new_members;
- case 1:
- return STR_IT_prime;
- case 2:
- return STR_IT_old_count;
- default:
- return NULL;
- }
- case 3585: /* module 14 call 1 */
- switch (itemIdx) {
- case 0:
- return STR_IT_proposal;
- case 1:
- return STR_IT_length_bound;
- default:
- return NULL;
- }
- case 3586: /* module 14 call 2 */
- switch (itemIdx) {
- case 0:
- return STR_IT_threshold;
- case 1:
- return STR_IT_proposal;
- case 2:
- return STR_IT_length_bound;
- default:
- return NULL;
- }
- case 3587: /* module 14 call 3 */
- switch (itemIdx) {
- case 0:
- return STR_IT_proposal;
- case 1:
- return STR_IT_index;
- case 2:
- return STR_IT_approve;
- default:
- return NULL;
- }
- case 3588: /* module 14 call 4 */
- switch (itemIdx) {
- case 0:
- return STR_IT_proposal_hash;
- case 1:
- return STR_IT_index;
- case 2:
- return STR_IT_proposal_weight_bound;
- case 3:
- return STR_IT_length_bound;
- default:
- return NULL;
- }
- case 3589: /* module 14 call 5 */
- switch (itemIdx) {
- case 0:
- return STR_IT_proposal_hash;
- default:
- return NULL;
- }
- case 3840: /* module 15 call 0 */
- switch (itemIdx) {
- case 0:
- return STR_IT_new_members;
- case 1:
- return STR_IT_prime;
- case 2:
- return STR_IT_old_count;
- default:
- return NULL;
- }
- case 3841: /* module 15 call 1 */
- switch (itemIdx) {
- case 0:
- return STR_IT_proposal;
- case 1:
- return STR_IT_length_bound;
- default:
- return NULL;
- }
- case 3842: /* module 15 call 2 */
- switch (itemIdx) {
- case 0:
- return STR_IT_threshold;
- case 1:
- return STR_IT_proposal;
- case 2:
- return STR_IT_length_bound;
- default:
- return NULL;
- }
- case 3843: /* module 15 call 3 */
- switch (itemIdx) {
- case 0:
- return STR_IT_proposal;
- case 1:
- return STR_IT_index;
- case 2:
- return STR_IT_approve;
- default:
- return NULL;
- }
- case 3844: /* module 15 call 4 */
- switch (itemIdx) {
- case 0:
- return STR_IT_proposal_hash;
- case 1:
- return STR_IT_index;
- case 2:
- return STR_IT_proposal_weight_bound;
- case 3:
- return STR_IT_length_bound;
- default:
- return NULL;
- }
- case 3845: /* module 15 call 5 */
- switch (itemIdx) {
- case 0:
- return STR_IT_proposal_hash;
- default:
- return NULL;
- }
- case 4096: /* module 16 call 0 */
- switch (itemIdx) {
- case 0:
- return STR_IT_votes;
- case 1:
- return STR_IT_amount;
- default:
- return NULL;
- }
- case 4097: /* module 16 call 1 */
- switch (itemIdx) {
- default:
- return NULL;
- }
- case 4098: /* module 16 call 2 */
- switch (itemIdx) {
- case 0:
- return STR_IT_candidate_count;
- default:
- return NULL;
- }
- case 4100: /* module 16 call 4 */
- switch (itemIdx) {
- case 0:
- return STR_IT_who;
- case 1:
- return STR_IT_slash_bond;
- case 2:
- return STR_IT_rerun_election;
- default:
- return NULL;
- }
- case 4101: /* module 16 call 5 */
- switch (itemIdx) {
- case 0:
- return STR_IT_num_voters;
- case 1:
- return STR_IT_num_defunct;
- default:
- return NULL;
- }
- case 4352: /* module 17 call 0 */
- switch (itemIdx) {
- case 0:
- return STR_IT_who;
- default:
- return NULL;
- }
- case 4353: /* module 17 call 1 */
- switch (itemIdx) {
- case 0:
- return STR_IT_who;
- default:
- return NULL;
- }
- case 4354: /* module 17 call 2 */
- switch (itemIdx) {
- case 0:
- return STR_IT_remove;
- case 1:
- return STR_IT_add;
- default:
- return NULL;
- }
- case 4355: /* module 17 call 3 */
- switch (itemIdx) {
- case 0:
- return STR_IT_members;
- default:
- return NULL;
- }
- case 4356: /* module 17 call 4 */
- switch (itemIdx) {
- case 0:
- return STR_IT_new_;
- default:
- return NULL;
- }
- case 4357: /* module 17 call 5 */
- switch (itemIdx) {
- case 0:
- return STR_IT_who;
- default:
- return NULL;
- }
- case 4358: /* module 17 call 6 */
- switch (itemIdx) {
- default:
- return NULL;
- }
- case 4608: /* module 18 call 0 */
- switch (itemIdx) {
- case 0:
- return STR_IT_amount;
- case 1:
- return STR_IT_beneficiary;
- default:
- return NULL;
- }
- case 4609: /* module 18 call 1 */
- switch (itemIdx) {
- case 0:
- return STR_IT_proposal_id;
- default:
- return NULL;
- }
- case 4610: /* module 18 call 2 */
- switch (itemIdx) {
- case 0:
- return STR_IT_proposal_id;
- default:
- return NULL;
- }
- case 4611: /* module 18 call 3 */
- switch (itemIdx) {
- case 0:
- return STR_IT_amount;
- case 1:
- return STR_IT_beneficiary;
- default:
- return NULL;
- }
- case 4612: /* module 18 call 4 */
- switch (itemIdx) {
- case 0:
- return STR_IT_proposal_id;
- default:
- return NULL;
- }
- case 4864: /* module 19 call 0 */
- switch (itemIdx) {
- case 0:
- return STR_IT_dest;
- case 1:
- return STR_IT_ethereum_signature;
- default:
- return NULL;
- }
- case 4866: /* module 19 call 2 */
- switch (itemIdx) {
- case 0:
- return STR_IT_dest;
- case 1:
- return STR_IT_ethereum_signature;
- case 2:
- return STR_IT_statement;
- default:
- return NULL;
- }
- case 4867: /* module 19 call 3 */
- switch (itemIdx) {
- case 0:
- return STR_IT_statement;
- default:
- return NULL;
- }
- case 4868: /* module 19 call 4 */
- switch (itemIdx) {
- case 0:
- return STR_IT_old;
- case 1:
- return STR_IT_new_;
- case 2:
- return STR_IT_maybe_preclaim;
- default:
- return NULL;
- }
- case 6400: /* module 25 call 0 */
- switch (itemIdx) {
- case 0:
- return STR_IT_account;
- default:
- return NULL;
- }
- case 6403: /* module 25 call 3 */
- switch (itemIdx) {
- default:
- return NULL;
- }
- case 6404: /* module 25 call 4 */
- switch (itemIdx) {
- case 0:
- return STR_IT_reg_index;
- case 1:
- return STR_IT_max_fee;
- default:
- return NULL;
- }
- case 6405: /* module 25 call 5 */
- switch (itemIdx) {
- case 0:
- return STR_IT_reg_index;
- default:
- return NULL;
- }
- case 6406: /* module 25 call 6 */
- switch (itemIdx) {
- case 0:
- return STR_IT_index;
- case 1:
- return STR_IT_fee;
- default:
- return NULL;
- }
- case 6407: /* module 25 call 7 */
- switch (itemIdx) {
- case 0:
- return STR_IT_index;
- case 1:
- return STR_IT_new_;
- default:
- return NULL;
- }
- case 6410: /* module 25 call 10 */
- switch (itemIdx) {
- case 0:
- return STR_IT_target;
- default:
- return NULL;
- }
- case 6413: /* module 25 call 13 */
- switch (itemIdx) {
- case 0:
- return STR_IT_sub;
- default:
- return NULL;
- }
- case 6414: /* module 25 call 14 */
- switch (itemIdx) {
- default:
- return NULL;
- }
- case 6656: /* module 26 call 0 */
- switch (itemIdx) {
- case 0:
- return STR_IT_amount;
- default:
- return NULL;
- }
- case 6657: /* module 26 call 1 */
- switch (itemIdx) {
- case 0:
- return STR_IT_pos;
- default:
- return NULL;
- }
- case 6658: /* module 26 call 2 */
- switch (itemIdx) {
- case 0:
- return STR_IT_who;
- case 1:
- return STR_IT_amount;
- case 2:
- return STR_IT_tip;
- default:
- return NULL;
- }
- case 6659: /* module 26 call 3 */
- switch (itemIdx) {
- case 0:
- return STR_IT_pos;
- default:
- return NULL;
- }
- case 6660: /* module 26 call 4 */
- switch (itemIdx) {
- case 0:
- return STR_IT_candidate;
- case 1:
- return STR_IT_approve;
- default:
- return NULL;
- }
- case 6661: /* module 26 call 5 */
- switch (itemIdx) {
- case 0:
- return STR_IT_approve;
- default:
- return NULL;
- }
- case 6662: /* module 26 call 6 */
- switch (itemIdx) {
- default:
- return NULL;
- }
- case 6663: /* module 26 call 7 */
- switch (itemIdx) {
- case 0:
- return STR_IT_founder;
- case 1:
- return STR_IT_max_members;
- case 2:
- return STR_IT_rules;
- default:
- return NULL;
- }
- case 6664: /* module 26 call 8 */
- switch (itemIdx) {
- default:
- return NULL;
- }
- case 6665: /* module 26 call 9 */
- switch (itemIdx) {
- case 0:
- return STR_IT_who;
- case 1:
- return STR_IT_forgive;
- default:
- return NULL;
- }
- case 6667: /* module 26 call 11 */
- switch (itemIdx) {
- case 0:
- return STR_IT_max;
- default:
- return NULL;
- }
- case 6913: /* module 27 call 1 */
- switch (itemIdx) {
- case 0:
- return STR_IT_lost;
- case 1:
- return STR_IT_rescuer;
- default:
- return NULL;
- }
- case 6915: /* module 27 call 3 */
- switch (itemIdx) {
- case 0:
- return STR_IT_account;
- default:
- return NULL;
- }
- case 6916: /* module 27 call 4 */
- switch (itemIdx) {
- case 0:
- return STR_IT_lost;
- case 1:
- return STR_IT_rescuer;
- default:
- return NULL;
- }
- case 6917: /* module 27 call 5 */
- switch (itemIdx) {
- case 0:
- return STR_IT_account;
- default:
- return NULL;
- }
- case 6918: /* module 27 call 6 */
- switch (itemIdx) {
- case 0:
- return STR_IT_rescuer;
- default:
- return NULL;
- }
- case 6919: /* module 27 call 7 */
- switch (itemIdx) {
- default:
- return NULL;
- }
- case 6920: /* module 27 call 8 */
- switch (itemIdx) {
- case 0:
- return STR_IT_account;
- default:
- return NULL;
- }
- case 7168: /* module 28 call 0 */
- switch (itemIdx) {
- default:
- return NULL;
- }
- case 7169: /* module 28 call 1 */
- switch (itemIdx) {
- case 0:
- return STR_IT_target;
- default:
- return NULL;
- }
- case 7170: /* module 28 call 2 */
- switch (itemIdx) {
- case 0:
- return STR_IT_target;
- case 1:
- return STR_IT_schedule;
- default:
- return NULL;
- }
- case 7171: /* module 28 call 3 */
- switch (itemIdx) {
- case 0:
- return STR_IT_source;
- case 1:
- return STR_IT_target;
- case 2:
- return STR_IT_schedule;
- default:
- return NULL;
- }
- case 7172: /* module 28 call 4 */
- switch (itemIdx) {
- case 0:
- return STR_IT_schedule1_index;
- case 1:
- return STR_IT_schedule2_index;
- default:
- return NULL;
- }
- case 7680: /* module 30 call 0 */
- switch (itemIdx) {
- case 0:
- return STR_IT_real;
- case 1:
- return STR_IT_force_proxy_type;
- case 2:
- return STR_IT_call;
- default:
- return NULL;
- }
- case 7681: /* module 30 call 1 */
- switch (itemIdx) {
- case 0:
- return STR_IT_delegate;
- case 1:
- return STR_IT_proxy_type;
- case 2:
- return STR_IT_delay;
- default:
- return NULL;
- }
- case 7682: /* module 30 call 2 */
- switch (itemIdx) {
- case 0:
- return STR_IT_delegate;
- case 1:
- return STR_IT_proxy_type;
- case 2:
- return STR_IT_delay;
- default:
- return NULL;
- }
- case 7683: /* module 30 call 3 */
- switch (itemIdx) {
- default:
- return NULL;
- }
- case 7684: /* module 30 call 4 */
- switch (itemIdx) {
- case 0:
- return STR_IT_proxy_type;
- case 1:
- return STR_IT_delay;
- case 2:
- return STR_IT_index;
- default:
- return NULL;
- }
- case 7685: /* module 30 call 5 */
- switch (itemIdx) {
- case 0:
- return STR_IT_spawner;
- case 1:
- return STR_IT_proxy_type;
- case 2:
- return STR_IT_index;
- case 3:
- return STR_IT_height;
- case 4:
- return STR_IT_ext_index;
- default:
- return NULL;
- }
- case 7689: /* module 30 call 9 */
- switch (itemIdx) {
- case 0:
- return STR_IT_delegate;
- case 1:
- return STR_IT_real;
- case 2:
- return STR_IT_force_proxy_type;
- case 3:
- return STR_IT_call;
- default:
- return NULL;
- }
- case 7936: /* module 31 call 0 */
- switch (itemIdx) {
- case 0:
- return STR_IT_other_signatories;
- case 1:
- return STR_IT_call;
- default:
- return NULL;
- }
- case 7937: /* module 31 call 1 */
- switch (itemIdx) {
- case 0:
- return STR_IT_threshold;
- case 1:
- return STR_IT_other_signatories;
- case 2:
- return STR_IT_maybe_timepoint;
- case 3:
- return STR_IT_call;
- case 4:
- return STR_IT_store_call;
- case 5:
- return STR_IT_max_weight;
- default:
- return NULL;
- }
- case 7938: /* module 31 call 2 */
- switch (itemIdx) {
- case 0:
- return STR_IT_threshold;
- case 1:
- return STR_IT_other_signatories;
- case 2:
- return STR_IT_maybe_timepoint;
- case 3:
- return STR_IT_call_hash;
- case 4:
- return STR_IT_max_weight;
- default:
- return NULL;
- }
- case 7939: /* module 31 call 3 */
- switch (itemIdx) {
- case 0:
- return STR_IT_threshold;
- case 1:
- return STR_IT_other_signatories;
- case 2:
- return STR_IT_timepoint;
- case 3:
- return STR_IT_call_hash;
- default:
- return NULL;
- }
- case 8192: /* module 32 call 0 */
- switch (itemIdx) {
- case 0:
- return STR_IT_bytes;
- default:
- return NULL;
- }
- case 8193: /* module 32 call 1 */
- switch (itemIdx) {
- case 0:
- return STR_IT_hash;
- default:
- return NULL;
- }
- case 8194: /* module 32 call 2 */
- switch (itemIdx) {
- case 0:
- return STR_IT_hash;
- default:
- return NULL;
- }
- case 8195: /* module 32 call 3 */
- switch (itemIdx) {
- case 0:
- return STR_IT_hash;
- default:
- return NULL;
- }
- case 8960: /* module 35 call 0 */
- switch (itemIdx) {
- case 0:
- return STR_IT_amount;
- case 1:
- return STR_IT_description;
- default:
- return NULL;
- }
- case 8961: /* module 35 call 1 */
- switch (itemIdx) {
- case 0:
- return STR_IT_bounty_id;
- default:
- return NULL;
- }
- case 8962: /* module 35 call 2 */
- switch (itemIdx) {
- case 0:
- return STR_IT_bounty_id;
- case 1:
- return STR_IT_curator;
- case 2:
- return STR_IT_fee;
- default:
- return NULL;
- }
- case 8963: /* module 35 call 3 */
- switch (itemIdx) {
- case 0:
- return STR_IT_bounty_id;
- default:
- return NULL;
- }
- case 8964: /* module 35 call 4 */
- switch (itemIdx) {
- case 0:
- return STR_IT_bounty_id;
- default:
- return NULL;
- }
- case 8965: /* module 35 call 5 */
- switch (itemIdx) {
- case 0:
- return STR_IT_bounty_id;
- case 1:
- return STR_IT_beneficiary;
- default:
- return NULL;
- }
- case 8966: /* module 35 call 6 */
- switch (itemIdx) {
- case 0:
- return STR_IT_bounty_id;
- default:
- return NULL;
- }
- case 8967: /* module 35 call 7 */
- switch (itemIdx) {
- case 0:
- return STR_IT_bounty_id;
- default:
- return NULL;
- }
- case 8968: /* module 35 call 8 */
- switch (itemIdx) {
- case 0:
- return STR_IT_bounty_id;
- case 1:
- return STR_IT_remark;
- default:
- return NULL;
- }
- case 10240: /* module 40 call 0 */
- switch (itemIdx) {
- case 0:
- return STR_IT_parent_bounty_id;
- case 1:
- return STR_IT_amount;
- case 2:
- return STR_IT_description;
- default:
- return NULL;
- }
- case 10241: /* module 40 call 1 */
- switch (itemIdx) {
- case 0:
- return STR_IT_parent_bounty_id;
- case 1:
- return STR_IT_child_bounty_id;
- case 2:
- return STR_IT_curator;
- case 3:
- return STR_IT_fee;
- default:
- return NULL;
- }
- case 10242: /* module 40 call 2 */
- switch (itemIdx) {
- case 0:
- return STR_IT_parent_bounty_id;
- case 1:
- return STR_IT_child_bounty_id;
- default:
- return NULL;
- }
- case 10243: /* module 40 call 3 */
- switch (itemIdx) {
- case 0:
- return STR_IT_parent_bounty_id;
- case 1:
- return STR_IT_child_bounty_id;
- default:
- return NULL;
- }
- case 10244: /* module 40 call 4 */
- switch (itemIdx) {
- case 0:
- return STR_IT_parent_bounty_id;
- case 1:
- return STR_IT_child_bounty_id;
- case 2:
- return STR_IT_beneficiary;
- default:
- return NULL;
- }
- case 10245: /* module 40 call 5 */
- switch (itemIdx) {
- case 0:
- return STR_IT_parent_bounty_id;
- case 1:
- return STR_IT_child_bounty_id;
- default:
- return NULL;
- }
- case 10246: /* module 40 call 6 */
- switch (itemIdx) {
- case 0:
- return STR_IT_parent_bounty_id;
- case 1:
- return STR_IT_child_bounty_id;
- default:
- return NULL;
- }
- case 9216: /* module 36 call 0 */
- switch (itemIdx) {
- case 0:
- return STR_IT_reason;
- case 1:
- return STR_IT_who;
- default:
- return NULL;
- }
- case 9217: /* module 36 call 1 */
- switch (itemIdx) {
- case 0:
- return STR_IT_hash;
- default:
- return NULL;
- }
- case 9218: /* module 36 call 2 */
- switch (itemIdx) {
- case 0:
- return STR_IT_reason;
- case 1:
- return STR_IT_who;
- case 2:
- return STR_IT_tip_value;
- default:
- return NULL;
- }
- case 9219: /* module 36 call 3 */
- switch (itemIdx) {
- case 0:
- return STR_IT_hash;
- case 1:
- return STR_IT_tip_value;
- default:
- return NULL;
- }
- case 9220: /* module 36 call 4 */
- switch (itemIdx) {
- case 0:
- return STR_IT_hash;
- default:
- return NULL;
- }
- case 9221: /* module 36 call 5 */
- switch (itemIdx) {
- case 0:
- return STR_IT_hash;
- default:
- return NULL;
- }
- case 9476: /* module 37 call 4 */
- switch (itemIdx) {
- case 0:
- return STR_IT_maybe_max_voters;
- case 1:
- return STR_IT_maybe_max_targets;
- default:
- return NULL;
- }
- case 9728: /* module 38 call 0 */
- switch (itemIdx) {
- case 0:
- return STR_IT_amount;
- case 1:
- return STR_IT_duration;
- default:
- return NULL;
- }
- case 9729: /* module 38 call 1 */
- switch (itemIdx) {
- case 0:
- return STR_IT_amount;
- case 1:
- return STR_IT_duration;
- default:
- return NULL;
- }
- case 9730: /* module 38 call 2 */
- switch (itemIdx) {
- case 0:
- return STR_IT_target;
- default:
- return NULL;
- }
- case 9731: /* module 38 call 3 */
- switch (itemIdx) {
- case 0:
- return STR_IT_index;
- default:
- return NULL;
- }
- case 9984: /* module 39 call 0 */
- switch (itemIdx) {
- case 0:
- return STR_IT_dislocated;
- default:
- return NULL;
- }
- case 9985: /* module 39 call 1 */
- switch (itemIdx) {
- case 0:
- return STR_IT_lighter;
- default:
- return NULL;
- }
- case 10496: /* module 41 call 0 */
- switch (itemIdx) {
- case 0:
- return STR_IT_amount;
- case 1:
- return STR_IT_pool_id;
- default:
- return NULL;
- }
- case 10497: /* module 41 call 1 */
- switch (itemIdx) {
- case 0:
- return STR_IT_extra;
- default:
- return NULL;
- }
- case 10498: /* module 41 call 2 */
- switch (itemIdx) {
- default:
- return NULL;
- }
- case 10499: /* module 41 call 3 */
- switch (itemIdx) {
- case 0:
- return STR_IT_member_account;
- case 1:
- return STR_IT_unbonding_points;
- default:
- return NULL;
- }
- case 10500: /* module 41 call 4 */
- switch (itemIdx) {
- case 0:
- return STR_IT_pool_id;
- case 1:
- return STR_IT_num_slashing_spans;
- default:
- return NULL;
- }
- case 10501: /* module 41 call 5 */
- switch (itemIdx) {
- case 0:
- return STR_IT_member_account;
- case 1:
- return STR_IT_num_slashing_spans;
- default:
- return NULL;
- }
- case 10502: /* module 41 call 6 */
- switch (itemIdx) {
- case 0:
- return STR_IT_amount;
- case 1:
- return STR_IT_root;
- case 2:
- return STR_IT_nominator;
- case 3:
- return STR_IT_state_toggler;
- default:
- return NULL;
- }
- case 10503: /* module 41 call 7 */
- switch (itemIdx) {
- case 0:
- return STR_IT_pool_id;
- case 1:
- return STR_IT_validators;
- default:
- return NULL;
- }
- case 10504: /* module 41 call 8 */
- switch (itemIdx) {
- case 0:
- return STR_IT_pool_id;
- case 1:
- return STR_IT_state;
- default:
- return NULL;
- }
- case 10505: /* module 41 call 9 */
- switch (itemIdx) {
- case 0:
- return STR_IT_pool_id;
- case 1:
- return STR_IT_metadata;
- default:
- return NULL;
- }
- case 10506: /* module 41 call 10 */
- switch (itemIdx) {
- case 0:
- return STR_IT_min_join_bond;
- case 1:
- return STR_IT_min_create_bond;
- case 2:
- return STR_IT_max_pools;
- case 3:
- return STR_IT_max_members;
- case 4:
- return STR_IT_max_members_per_pool;
- default:
- return NULL;
- }
- case 10507: /* module 41 call 11 */
- switch (itemIdx) {
- case 0:
- return STR_IT_pool_id;
- case 1:
- return STR_IT_new_root;
- case 2:
- return STR_IT_new_nominator;
- case 3:
- return STR_IT_new_state_toggler;
- default:
- return NULL;
- }
- case 10508: /* module 41 call 12 */
- switch (itemIdx) {
- case 0:
- return STR_IT_pool_id;
- default:
- return NULL;
- }
- case 13056: /* module 51 call 0 */
- switch (itemIdx) {
- case 0:
- return STR_IT_new_;
- default:
- return NULL;
- }
- case 13057: /* module 51 call 1 */
- switch (itemIdx) {
- case 0:
- return STR_IT_new_;
- default:
- return NULL;
- }
- case 13058: /* module 51 call 2 */
- switch (itemIdx) {
- case 0:
- return STR_IT_new_;
- default:
- return NULL;
- }
- case 13059: /* module 51 call 3 */
- switch (itemIdx) {
- case 0:
- return STR_IT_new_;
- default:
- return NULL;
- }
- case 13060: /* module 51 call 4 */
- switch (itemIdx) {
- case 0:
- return STR_IT_new_;
- default:
- return NULL;
- }
- case 13061: /* module 51 call 5 */
- switch (itemIdx) {
- case 0:
- return STR_IT_new_;
- default:
- return NULL;
- }
- case 13062: /* module 51 call 6 */
- switch (itemIdx) {
- case 0:
- return STR_IT_new_;
- default:
- return NULL;
- }
- case 13063: /* module 51 call 7 */
- switch (itemIdx) {
- case 0:
- return STR_IT_new_;
- default:
- return NULL;
- }
- case 13064: /* module 51 call 8 */
- switch (itemIdx) {
- case 0:
- return STR_IT_new_;
- default:
- return NULL;
- }
- case 13065: /* module 51 call 9 */
- switch (itemIdx) {
- case 0:
- return STR_IT_new_;
- default:
- return NULL;
- }
- case 13066: /* module 51 call 10 */
- switch (itemIdx) {
- case 0:
- return STR_IT_new_;
- default:
- return NULL;
- }
- case 13067: /* module 51 call 11 */
- switch (itemIdx) {
- case 0:
- return STR_IT_new_;
- default:
- return NULL;
- }
- case 13068: /* module 51 call 12 */
- switch (itemIdx) {
- case 0:
- return STR_IT_new_;
- default:
- return NULL;
- }
- case 13069: /* module 51 call 13 */
- switch (itemIdx) {
- case 0:
- return STR_IT_new_;
- default:
- return NULL;
- }
- case 13070: /* module 51 call 14 */
- switch (itemIdx) {
- case 0:
- return STR_IT_new_;
- default:
- return NULL;
- }
- case 13071: /* module 51 call 15 */
- switch (itemIdx) {
- case 0:
- return STR_IT_new_;
- default:
- return NULL;
- }
- case 13072: /* module 51 call 16 */
- switch (itemIdx) {
- case 0:
- return STR_IT_new_;
- default:
- return NULL;
- }
- case 13073: /* module 51 call 17 */
- switch (itemIdx) {
- case 0:
- return STR_IT_new_;
- default:
- return NULL;
- }
- case 13074: /* module 51 call 18 */
- switch (itemIdx) {
- case 0:
- return STR_IT_new_;
- default:
- return NULL;
- }
- case 13075: /* module 51 call 19 */
- switch (itemIdx) {
- case 0:
- return STR_IT_new_;
- default:
- return NULL;
- }
- case 13076: /* module 51 call 20 */
- switch (itemIdx) {
- case 0:
- return STR_IT_new_;
- default:
- return NULL;
- }
- case 13077: /* module 51 call 21 */
- switch (itemIdx) {
- case 0:
- return STR_IT_new_;
- default:
- return NULL;
- }
- case 13078: /* module 51 call 22 */
- switch (itemIdx) {
- case 0:
- return STR_IT_new_;
- default:
- return NULL;
- }
- case 13079: /* module 51 call 23 */
- switch (itemIdx) {
- case 0:
- return STR_IT_new_;
- default:
- return NULL;
- }
- case 13080: /* module 51 call 24 */
- switch (itemIdx) {
- case 0:
- return STR_IT_new_;
- default:
- return NULL;
- }
- case 13081: /* module 51 call 25 */
- switch (itemIdx) {
- case 0:
- return STR_IT_new_;
- default:
- return NULL;
- }
- case 13082: /* module 51 call 26 */
- switch (itemIdx) {
- case 0:
- return STR_IT_new_;
- default:
- return NULL;
- }
- case 13083: /* module 51 call 27 */
- switch (itemIdx) {
- case 0:
- return STR_IT_new_;
- default:
- return NULL;
- }
- case 13084: /* module 51 call 28 */
- switch (itemIdx) {
- case 0:
- return STR_IT_new_;
- default:
- return NULL;
- }
- case 13085: /* module 51 call 29 */
- switch (itemIdx) {
- case 0:
- return STR_IT_new_;
- default:
- return NULL;
- }
- case 13086: /* module 51 call 30 */
- switch (itemIdx) {
- case 0:
- return STR_IT_new_;
- default:
- return NULL;
- }
- case 13087: /* module 51 call 31 */
- switch (itemIdx) {
- case 0:
- return STR_IT_new_;
- default:
- return NULL;
- }
- case 13088: /* module 51 call 32 */
- switch (itemIdx) {
- case 0:
- return STR_IT_new_;
- default:
- return NULL;
- }
- case 13089: /* module 51 call 33 */
- switch (itemIdx) {
- case 0:
- return STR_IT_new_;
- default:
- return NULL;
- }
- case 13090: /* module 51 call 34 */
- switch (itemIdx) {
- case 0:
- return STR_IT_new_;
- default:
- return NULL;
- }
- case 13091: /* module 51 call 35 */
- switch (itemIdx) {
- case 0:
- return STR_IT_new_;
- default:
- return NULL;
- }
- case 13092: /* module 51 call 36 */
- switch (itemIdx) {
- case 0:
- return STR_IT_new_;
- default:
- return NULL;
- }
- case 13093: /* module 51 call 37 */
- switch (itemIdx) {
- case 0:
- return STR_IT_new_;
- default:
- return NULL;
- }
- case 13094: /* module 51 call 38 */
- switch (itemIdx) {
- case 0:
- return STR_IT_new_;
- default:
- return NULL;
- }
- case 13095: /* module 51 call 39 */
- switch (itemIdx) {
- case 0:
- return STR_IT_new_;
- default:
- return NULL;
- }
- case 13096: /* module 51 call 40 */
- switch (itemIdx) {
- case 0:
- return STR_IT_new_;
- default:
- return NULL;
- }
- case 13097: /* module 51 call 41 */
- switch (itemIdx) {
- case 0:
- return STR_IT_new_;
- default:
- return NULL;
- }
- case 13098: /* module 51 call 42 */
- switch (itemIdx) {
- case 0:
- return STR_IT_new_;
- default:
- return NULL;
- }
- case 13099: /* module 51 call 43 */
- switch (itemIdx) {
- case 0:
- return STR_IT_new_;
- default:
- return NULL;
- }
- case 13100: /* module 51 call 44 */
- switch (itemIdx) {
- case 0:
- return STR_IT_new_;
- default:
- return NULL;
- }
- case 14592: /* module 57 call 0 */
- switch (itemIdx) {
- case 0:
- return STR_IT_up_to;
- default:
- return NULL;
- }
- case 15364: /* module 60 call 4 */
- switch (itemIdx) {
- case 0:
- return STR_IT_channels;
- default:
- return NULL;
- }
- case 15365: /* module 60 call 5 */
- switch (itemIdx) {
- case 0:
- return STR_IT_channels;
- default:
- return NULL;
- }
- case 15872: /* module 62 call 0 */
- switch (itemIdx) {
- default:
- return NULL;
- }
- case 17925: /* module 70 call 5 */
- switch (itemIdx) {
- default:
- return NULL;
- }
- case 18432: /* module 72 call 0 */
- switch (itemIdx) {
- case 0:
- return STR_IT_duration;
- case 1:
- return STR_IT_lease_period_index;
- default:
- return NULL;
- }
- case 18433: /* module 72 call 1 */
- switch (itemIdx) {
- case 0:
- return STR_IT_para;
- case 1:
- return STR_IT_auction_index;
- case 2:
- return STR_IT_first_slot;
- case 3:
- return STR_IT_last_slot;
- case 4:
- return STR_IT_amount;
- default:
- return NULL;
- }
- case 18434: /* module 72 call 2 */
- switch (itemIdx) {
- default:
- return NULL;
- }
-#endif
- default:
- return NULL;
- }
-
- return NULL;
-}
-
-parser_error_t _getMethod_ItemValue_V1(
- pd_Method_V1_t* m,
- uint8_t moduleIdx, uint8_t callIdx, uint8_t itemIdx,
- char* outValue, uint16_t outValueLen,
- uint8_t pageIdx, uint8_t* pageCount)
-{
- uint16_t callPrivIdx = ((uint16_t)moduleIdx << 8u) + callIdx;
-
- switch (callPrivIdx) {
- case 1024: /* module 4 call 0 */
- switch (itemIdx) {
- case 0: /* balances_transfer_V1 - dest */;
- return _toStringLookupasStaticLookupSource_V1(
- &m->nested.balances_transfer_V1.dest,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 1: /* balances_transfer_V1 - amount */;
- return _toStringCompactBalance(
- &m->nested.balances_transfer_V1.amount,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 1026: /* module 4 call 2 */
- switch (itemIdx) {
- case 0: /* balances_force_transfer_V1 - source */;
- return _toStringLookupasStaticLookupSource_V1(
- &m->nested.balances_force_transfer_V1.source,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 1: /* balances_force_transfer_V1 - dest */;
- return _toStringLookupasStaticLookupSource_V1(
- &m->nested.balances_force_transfer_V1.dest,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 2: /* balances_force_transfer_V1 - amount */;
- return _toStringCompactBalance(
- &m->nested.balances_force_transfer_V1.amount,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 1027: /* module 4 call 3 */
- switch (itemIdx) {
- case 0: /* balances_transfer_keep_alive_V1 - dest */;
- return _toStringLookupasStaticLookupSource_V1(
- &m->nested.balances_transfer_keep_alive_V1.dest,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 1: /* balances_transfer_keep_alive_V1 - amount */;
- return _toStringCompactBalance(
- &m->nested.balances_transfer_keep_alive_V1.amount,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 1028: /* module 4 call 4 */
- switch (itemIdx) {
- case 0: /* balances_transfer_all_V1 - dest */;
- return _toStringLookupasStaticLookupSource_V1(
- &m->basic.balances_transfer_all_V1.dest,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 1: /* balances_transfer_all_V1 - keep_alive */;
- return _toStringbool(
- &m->basic.balances_transfer_all_V1.keep_alive,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 1536: /* module 6 call 0 */
- switch (itemIdx) {
- case 0: /* staking_bond_V1 - controller */;
- return _toStringLookupasStaticLookupSource_V1(
- &m->basic.staking_bond_V1.controller,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 1: /* staking_bond_V1 - amount */;
- return _toStringCompactBalance(
- &m->basic.staking_bond_V1.amount,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 2: /* staking_bond_V1 - payee */;
- return _toStringRewardDestination_V1(
- &m->basic.staking_bond_V1.payee,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 1537: /* module 6 call 1 */
- switch (itemIdx) {
- case 0: /* staking_bond_extra_V1 - amount */;
- return _toStringCompactBalance(
- &m->basic.staking_bond_extra_V1.amount,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 1538: /* module 6 call 2 */
- switch (itemIdx) {
- case 0: /* staking_unbond_V1 - amount */;
- return _toStringCompactBalance(
- &m->basic.staking_unbond_V1.amount,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 1539: /* module 6 call 3 */
- switch (itemIdx) {
- case 0: /* staking_withdraw_unbonded_V1 - num_slashing_spans */;
- return _toStringu32(
- &m->basic.staking_withdraw_unbonded_V1.num_slashing_spans,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 1540: /* module 6 call 4 */
- switch (itemIdx) {
- case 0: /* staking_validate_V1 - prefs */;
- return _toStringValidatorPrefs_V1(
- &m->basic.staking_validate_V1.prefs,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 1541: /* module 6 call 5 */
- switch (itemIdx) {
- case 0: /* staking_nominate_V1 - targets */;
- return _toStringVecLookupasStaticLookupSource_V1(
- &m->basic.staking_nominate_V1.targets,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 1542: /* module 6 call 6 */
- switch (itemIdx) {
- default:
- return parser_no_data;
- }
- case 1543: /* module 6 call 7 */
- switch (itemIdx) {
- case 0: /* staking_set_payee_V1 - payee */;
- return _toStringRewardDestination_V1(
- &m->basic.staking_set_payee_V1.payee,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 1544: /* module 6 call 8 */
- switch (itemIdx) {
- case 0: /* staking_set_controller_V1 - controller */;
- return _toStringLookupasStaticLookupSource_V1(
- &m->basic.staking_set_controller_V1.controller,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 1554: /* module 6 call 18 */
- switch (itemIdx) {
- case 0: /* staking_payout_stakers_V1 - validator_stash */;
- return _toStringAccountId_V1(
- &m->basic.staking_payout_stakers_V1.validator_stash,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 1: /* staking_payout_stakers_V1 - era */;
- return _toStringEraIndex_V1(
- &m->basic.staking_payout_stakers_V1.era,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 1555: /* module 6 call 19 */
- switch (itemIdx) {
- case 0: /* staking_rebond_V1 - amount */;
- return _toStringCompactBalance(
- &m->basic.staking_rebond_V1.amount,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 2048: /* module 8 call 0 */
- switch (itemIdx) {
- case 0: /* session_set_keys_V1 - keys */;
- return _toStringKeys_V1(
- &m->basic.session_set_keys_V1.keys,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 1: /* session_set_keys_V1 - proof */;
- return _toStringBytes(
- &m->basic.session_set_keys_V1.proof,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 2049: /* module 8 call 1 */
- switch (itemIdx) {
- default:
- return parser_no_data;
- }
- case 6144: /* module 24 call 0 */
- switch (itemIdx) {
- case 0: /* utility_batch_V1 - calls */;
- return _toStringVecCall(
- &m->basic.utility_batch_V1.calls,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 6146: /* module 24 call 2 */
- switch (itemIdx) {
- case 0: /* utility_batch_all_V1 - calls */;
- return _toStringVecCall(
- &m->basic.utility_batch_all_V1.calls,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 6148: /* module 24 call 4 */
- switch (itemIdx) {
- case 0: /* utility_force_batch_V1 - calls */;
- return _toStringVecCall(
- &m->basic.utility_force_batch_V1.calls,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 18688: /* module 73 call 0 */
- switch (itemIdx) {
- case 0: /* crowdloan_create_V1 - index */;
- return _toStringCompactu32(
- &m->basic.crowdloan_create_V1.index,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 1: /* crowdloan_create_V1 - cap */;
- return _toStringCompactu128(
- &m->basic.crowdloan_create_V1.cap,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 2: /* crowdloan_create_V1 - first_period */;
- return _toStringCompactu32(
- &m->basic.crowdloan_create_V1.first_period,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 3: /* crowdloan_create_V1 - last_period */;
- return _toStringCompactu32(
- &m->basic.crowdloan_create_V1.last_period,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 4: /* crowdloan_create_V1 - end */;
- return _toStringCompactu32(
- &m->basic.crowdloan_create_V1.end,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 5: /* crowdloan_create_V1 - verifier */;
- return _toStringOptionMultiSigner_V1(
- &m->basic.crowdloan_create_V1.verifier,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 18689: /* module 73 call 1 */
- switch (itemIdx) {
- case 0: /* crowdloan_contribute_V1 - index */;
- return _toStringCompactu32(
- &m->basic.crowdloan_contribute_V1.index,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 1: /* crowdloan_contribute_V1 - amount */;
- return _toStringCompactu128(
- &m->basic.crowdloan_contribute_V1.amount,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 2: /* crowdloan_contribute_V1 - signature */;
- return _toStringOptionMultiSignature_V1(
- &m->basic.crowdloan_contribute_V1.signature,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 18690: /* module 73 call 2 */
- switch (itemIdx) {
- case 0: /* crowdloan_withdraw_V1 - who */;
- return _toStringAccountId_V1(
- &m->basic.crowdloan_withdraw_V1.who,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 1: /* crowdloan_withdraw_V1 - index */;
- return _toStringCompactu32(
- &m->basic.crowdloan_withdraw_V1.index,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 18691: /* module 73 call 3 */
- switch (itemIdx) {
- case 0: /* crowdloan_refund_V1 - index */;
- return _toStringCompactu32(
- &m->basic.crowdloan_refund_V1.index,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 18692: /* module 73 call 4 */
- switch (itemIdx) {
- case 0: /* crowdloan_dissolve_V1 - index */;
- return _toStringCompactu32(
- &m->basic.crowdloan_dissolve_V1.index,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 18693: /* module 73 call 5 */
- switch (itemIdx) {
- case 0: /* crowdloan_edit_V1 - index */;
- return _toStringCompactu32(
- &m->basic.crowdloan_edit_V1.index,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 1: /* crowdloan_edit_V1 - cap */;
- return _toStringCompactu128(
- &m->basic.crowdloan_edit_V1.cap,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 2: /* crowdloan_edit_V1 - first_period */;
- return _toStringCompactu32(
- &m->basic.crowdloan_edit_V1.first_period,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 3: /* crowdloan_edit_V1 - last_period */;
- return _toStringCompactu32(
- &m->basic.crowdloan_edit_V1.last_period,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 4: /* crowdloan_edit_V1 - end */;
- return _toStringCompactu32(
- &m->basic.crowdloan_edit_V1.end,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 5: /* crowdloan_edit_V1 - verifier */;
- return _toStringOptionMultiSigner_V1(
- &m->basic.crowdloan_edit_V1.verifier,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 18694: /* module 73 call 6 */
- switch (itemIdx) {
- case 0: /* crowdloan_add_memo_V1 - index */;
- return _toStringParaId_V1(
- &m->basic.crowdloan_add_memo_V1.index,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 1: /* crowdloan_add_memo_V1 - memo */;
- return _toStringVecu8(
- &m->basic.crowdloan_add_memo_V1.memo,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 18695: /* module 73 call 7 */
- switch (itemIdx) {
- case 0: /* crowdloan_poke_V1 - index */;
- return _toStringParaId_V1(
- &m->basic.crowdloan_poke_V1.index,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 18696: /* module 73 call 8 */
- switch (itemIdx) {
- case 0: /* crowdloan_contribute_all_V1 - index */;
- return _toStringCompactu32(
- &m->basic.crowdloan_contribute_all_V1.index,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 1: /* crowdloan_contribute_all_V1 - signature */;
- return _toStringOptionMultiSignature_V1(
- &m->basic.crowdloan_contribute_all_V1.signature,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
-#ifdef SUBSTRATE_PARSER_FULL
- case 0: /* module 0 call 0 */
- switch (itemIdx) {
- case 0: /* system_fill_block_V1 - ratio */;
- return _toStringPerbill_V1(
- &m->nested.system_fill_block_V1.ratio,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 1: /* module 0 call 1 */
- switch (itemIdx) {
- case 0: /* system_remark_V1 - remark */;
- return _toStringVecu8(
- &m->nested.system_remark_V1.remark,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 2: /* module 0 call 2 */
- switch (itemIdx) {
- case 0: /* system_set_heap_pages_V1 - pages */;
- return _toStringu64(
- &m->nested.system_set_heap_pages_V1.pages,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 3: /* module 0 call 3 */
- switch (itemIdx) {
- case 0: /* system_set_code_V1 - code */;
- return _toStringVecu8(
- &m->nested.system_set_code_V1.code,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 4: /* module 0 call 4 */
- switch (itemIdx) {
- case 0: /* system_set_code_without_checks_V1 - code */;
- return _toStringVecu8(
- &m->nested.system_set_code_without_checks_V1.code,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 8: /* module 0 call 8 */
- switch (itemIdx) {
- case 0: /* system_remark_with_event_V1 - remark */;
- return _toStringVecu8(
- &m->nested.system_remark_with_event_V1.remark,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 512: /* module 2 call 0 */
- switch (itemIdx) {
- case 0: /* timestamp_set_V1 - now */;
- return _toStringCompactu64(
- &m->basic.timestamp_set_V1.now,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 768: /* module 3 call 0 */
- switch (itemIdx) {
- case 0: /* indices_claim_V1 - index */;
- return _toStringAccountIndex_V1(
- &m->basic.indices_claim_V1.index,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 769: /* module 3 call 1 */
- switch (itemIdx) {
- case 0: /* indices_transfer_V1 - new_ */;
- return _toStringAccountId_V1(
- &m->basic.indices_transfer_V1.new_,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 1: /* indices_transfer_V1 - index */;
- return _toStringAccountIndex_V1(
- &m->basic.indices_transfer_V1.index,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 770: /* module 3 call 2 */
- switch (itemIdx) {
- case 0: /* indices_free_V1 - index */;
- return _toStringAccountIndex_V1(
- &m->basic.indices_free_V1.index,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 771: /* module 3 call 3 */
- switch (itemIdx) {
- case 0: /* indices_force_transfer_V1 - new_ */;
- return _toStringAccountId_V1(
- &m->basic.indices_force_transfer_V1.new_,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 1: /* indices_force_transfer_V1 - index */;
- return _toStringAccountIndex_V1(
- &m->basic.indices_force_transfer_V1.index,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 2: /* indices_force_transfer_V1 - freeze */;
- return _toStringbool(
- &m->basic.indices_force_transfer_V1.freeze,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 772: /* module 3 call 4 */
- switch (itemIdx) {
- case 0: /* indices_freeze_V1 - index */;
- return _toStringAccountIndex_V1(
- &m->basic.indices_freeze_V1.index,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 1025: /* module 4 call 1 */
- switch (itemIdx) {
- case 0: /* balances_set_balance_V1 - who */;
- return _toStringLookupasStaticLookupSource_V1(
- &m->nested.balances_set_balance_V1.who,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 1: /* balances_set_balance_V1 - new_free */;
- return _toStringCompactBalance(
- &m->nested.balances_set_balance_V1.new_free,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 2: /* balances_set_balance_V1 - new_reserved */;
- return _toStringCompactBalance(
- &m->nested.balances_set_balance_V1.new_reserved,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 1029: /* module 4 call 5 */
- switch (itemIdx) {
- case 0: /* balances_force_unreserve_V1 - who */;
- return _toStringLookupasStaticLookupSource_V1(
- &m->basic.balances_force_unreserve_V1.who,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 1: /* balances_force_unreserve_V1 - amount */;
- return _toStringBalance(
- &m->basic.balances_force_unreserve_V1.amount,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 1545: /* module 6 call 9 */
- switch (itemIdx) {
- case 0: /* staking_set_validator_count_V1 - new_ */;
- return _toStringCompactu32(
- &m->basic.staking_set_validator_count_V1.new_,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 1546: /* module 6 call 10 */
- switch (itemIdx) {
- case 0: /* staking_increase_validator_count_V1 - additional */;
- return _toStringCompactu32(
- &m->basic.staking_increase_validator_count_V1.additional,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 1548: /* module 6 call 12 */
- switch (itemIdx) {
- default:
- return parser_no_data;
- }
- case 1549: /* module 6 call 13 */
- switch (itemIdx) {
- default:
- return parser_no_data;
- }
- case 1550: /* module 6 call 14 */
- switch (itemIdx) {
- case 0: /* staking_set_invulnerables_V1 - invulnerables */;
- return _toStringVecAccountId_V1(
- &m->basic.staking_set_invulnerables_V1.invulnerables,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 1551: /* module 6 call 15 */
- switch (itemIdx) {
- case 0: /* staking_force_unstake_V1 - stash */;
- return _toStringAccountId_V1(
- &m->basic.staking_force_unstake_V1.stash,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 1: /* staking_force_unstake_V1 - num_slashing_spans */;
- return _toStringu32(
- &m->basic.staking_force_unstake_V1.num_slashing_spans,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 1552: /* module 6 call 16 */
- switch (itemIdx) {
- default:
- return parser_no_data;
- }
- case 1553: /* module 6 call 17 */
- switch (itemIdx) {
- case 0: /* staking_cancel_deferred_slash_V1 - era */;
- return _toStringEraIndex_V1(
- &m->basic.staking_cancel_deferred_slash_V1.era,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 1: /* staking_cancel_deferred_slash_V1 - slash_indices */;
- return _toStringVecu32(
- &m->basic.staking_cancel_deferred_slash_V1.slash_indices,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 1556: /* module 6 call 20 */
- switch (itemIdx) {
- case 0: /* staking_set_history_depth_V1 - new_history_depth */;
- return _toStringCompactu32(
- &m->basic.staking_set_history_depth_V1.new_history_depth,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 1: /* staking_set_history_depth_V1 - era_items_deleted */;
- return _toStringCompactu32(
- &m->basic.staking_set_history_depth_V1.era_items_deleted,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 1557: /* module 6 call 21 */
- switch (itemIdx) {
- case 0: /* staking_reap_stash_V1 - stash */;
- return _toStringAccountId_V1(
- &m->basic.staking_reap_stash_V1.stash,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 1: /* staking_reap_stash_V1 - num_slashing_spans */;
- return _toStringu32(
- &m->basic.staking_reap_stash_V1.num_slashing_spans,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 1558: /* module 6 call 22 */
- switch (itemIdx) {
- case 0: /* staking_kick_V1 - who */;
- return _toStringVecLookupasStaticLookupSource_V1(
- &m->basic.staking_kick_V1.who,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 1560: /* module 6 call 24 */
- switch (itemIdx) {
- case 0: /* staking_chill_other_V1 - controller */;
- return _toStringAccountId_V1(
- &m->basic.staking_chill_other_V1.controller,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 1561: /* module 6 call 25 */
- switch (itemIdx) {
- case 0: /* staking_force_apply_min_commission_V1 - validator_stash */;
- return _toStringAccountId_V1(
- &m->basic.staking_force_apply_min_commission_V1.validator_stash,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 2562: /* module 10 call 2 */
- switch (itemIdx) {
- case 0: /* grandpa_note_stalled_V1 - delay */;
- return _toStringBlockNumber(
- &m->basic.grandpa_note_stalled_V1.delay,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 1: /* grandpa_note_stalled_V1 - best_finalized_block_number */;
- return _toStringBlockNumber(
- &m->basic.grandpa_note_stalled_V1.best_finalized_block_number,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 3328: /* module 13 call 0 */
- switch (itemIdx) {
- case 0: /* democracy_propose_V1 - proposal_hash */;
- return _toStringHash(
- &m->nested.democracy_propose_V1.proposal_hash,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 1: /* democracy_propose_V1 - amount */;
- return _toStringCompactBalance(
- &m->nested.democracy_propose_V1.amount,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 3329: /* module 13 call 1 */
- switch (itemIdx) {
- case 0: /* democracy_second_V1 - proposal */;
- return _toStringCompactu32(
- &m->nested.democracy_second_V1.proposal,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 1: /* democracy_second_V1 - seconds_upper_bound */;
- return _toStringCompactu32(
- &m->nested.democracy_second_V1.seconds_upper_bound,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 3330: /* module 13 call 2 */
- switch (itemIdx) {
- case 0: /* democracy_vote_V1 - ref_index */;
- return _toStringCompactu32(
- &m->nested.democracy_vote_V1.ref_index,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 1: /* democracy_vote_V1 - vote */;
- return _toStringAccountVote_V1(
- &m->nested.democracy_vote_V1.vote,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 3331: /* module 13 call 3 */
- switch (itemIdx) {
- case 0: /* democracy_emergency_cancel_V1 - ref_index */;
- return _toStringReferendumIndex_V1(
- &m->nested.democracy_emergency_cancel_V1.ref_index,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 3332: /* module 13 call 4 */
- switch (itemIdx) {
- case 0: /* democracy_external_propose_V1 - proposal_hash */;
- return _toStringHash(
- &m->nested.democracy_external_propose_V1.proposal_hash,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 3333: /* module 13 call 5 */
- switch (itemIdx) {
- case 0: /* democracy_external_propose_majority_V1 - proposal_hash */;
- return _toStringHash(
- &m->nested.democracy_external_propose_majority_V1.proposal_hash,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 3334: /* module 13 call 6 */
- switch (itemIdx) {
- case 0: /* democracy_external_propose_default_V1 - proposal_hash */;
- return _toStringHash(
- &m->nested.democracy_external_propose_default_V1.proposal_hash,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 3335: /* module 13 call 7 */
- switch (itemIdx) {
- case 0: /* democracy_fast_track_V1 - proposal_hash */;
- return _toStringHash(
- &m->nested.democracy_fast_track_V1.proposal_hash,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 1: /* democracy_fast_track_V1 - voting_period */;
- return _toStringBlockNumber(
- &m->nested.democracy_fast_track_V1.voting_period,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 2: /* democracy_fast_track_V1 - delay */;
- return _toStringBlockNumber(
- &m->nested.democracy_fast_track_V1.delay,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 3336: /* module 13 call 8 */
- switch (itemIdx) {
- case 0: /* democracy_veto_external_V1 - proposal_hash */;
- return _toStringHash(
- &m->nested.democracy_veto_external_V1.proposal_hash,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 3337: /* module 13 call 9 */
- switch (itemIdx) {
- case 0: /* democracy_cancel_referendum_V1 - ref_index */;
- return _toStringCompactu32(
- &m->nested.democracy_cancel_referendum_V1.ref_index,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 3338: /* module 13 call 10 */
- switch (itemIdx) {
- case 0: /* democracy_cancel_queued_V1 - which */;
- return _toStringReferendumIndex_V1(
- &m->nested.democracy_cancel_queued_V1.which,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 3339: /* module 13 call 11 */
- switch (itemIdx) {
- case 0: /* democracy_delegate_V1 - to */;
- return _toStringAccountId_V1(
- &m->nested.democracy_delegate_V1.to,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 1: /* democracy_delegate_V1 - conviction */;
- return _toStringConviction_V1(
- &m->nested.democracy_delegate_V1.conviction,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 2: /* democracy_delegate_V1 - balance */;
- return _toStringBalance(
- &m->nested.democracy_delegate_V1.balance,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 3340: /* module 13 call 12 */
- switch (itemIdx) {
- default:
- return parser_no_data;
- }
- case 3341: /* module 13 call 13 */
- switch (itemIdx) {
- default:
- return parser_no_data;
- }
- case 3342: /* module 13 call 14 */
- switch (itemIdx) {
- case 0: /* democracy_note_preimage_V1 - encoded_proposal */;
- return _toStringBytes(
- &m->basic.democracy_note_preimage_V1.encoded_proposal,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 3343: /* module 13 call 15 */
- switch (itemIdx) {
- case 0: /* democracy_note_preimage_operational_V1 - encoded_proposal */;
- return _toStringBytes(
- &m->basic.democracy_note_preimage_operational_V1.encoded_proposal,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 3344: /* module 13 call 16 */
- switch (itemIdx) {
- case 0: /* democracy_note_imminent_preimage_V1 - encoded_proposal */;
- return _toStringBytes(
- &m->basic.democracy_note_imminent_preimage_V1.encoded_proposal,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 3345: /* module 13 call 17 */
- switch (itemIdx) {
- case 0: /* democracy_note_imminent_preimage_operational_V1 - encoded_proposal */;
- return _toStringBytes(
- &m->basic.democracy_note_imminent_preimage_operational_V1.encoded_proposal,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 3346: /* module 13 call 18 */
- switch (itemIdx) {
- case 0: /* democracy_reap_preimage_V1 - proposal_hash */;
- return _toStringHash(
- &m->nested.democracy_reap_preimage_V1.proposal_hash,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 1: /* democracy_reap_preimage_V1 - proposal_len_upper_bound */;
- return _toStringCompactu32(
- &m->nested.democracy_reap_preimage_V1.proposal_len_upper_bound,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 3347: /* module 13 call 19 */
- switch (itemIdx) {
- case 0: /* democracy_unlock_V1 - target */;
- return _toStringAccountId_V1(
- &m->nested.democracy_unlock_V1.target,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 3348: /* module 13 call 20 */
- switch (itemIdx) {
- case 0: /* democracy_remove_vote_V1 - index */;
- return _toStringReferendumIndex_V1(
- &m->nested.democracy_remove_vote_V1.index,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 3349: /* module 13 call 21 */
- switch (itemIdx) {
- case 0: /* democracy_remove_other_vote_V1 - target */;
- return _toStringAccountId_V1(
- &m->nested.democracy_remove_other_vote_V1.target,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 1: /* democracy_remove_other_vote_V1 - index */;
- return _toStringReferendumIndex_V1(
- &m->nested.democracy_remove_other_vote_V1.index,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 3350: /* module 13 call 22 */
- switch (itemIdx) {
- case 0: /* democracy_enact_proposal_V1 - proposal_hash */;
- return _toStringHash(
- &m->nested.democracy_enact_proposal_V1.proposal_hash,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 1: /* democracy_enact_proposal_V1 - index */;
- return _toStringReferendumIndex_V1(
- &m->nested.democracy_enact_proposal_V1.index,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 3352: /* module 13 call 24 */
- switch (itemIdx) {
- case 0: /* democracy_cancel_proposal_V1 - prop_index */;
- return _toStringCompactu32(
- &m->nested.democracy_cancel_proposal_V1.prop_index,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 3584: /* module 14 call 0 */
- switch (itemIdx) {
- case 0: /* council_set_members_V1 - new_members */;
- return _toStringVecAccountId_V1(
- &m->basic.council_set_members_V1.new_members,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 1: /* council_set_members_V1 - prime */;
- return _toStringOptionAccountId_V1(
- &m->basic.council_set_members_V1.prime,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 2: /* council_set_members_V1 - old_count */;
- return _toStringMemberCount_V1(
- &m->basic.council_set_members_V1.old_count,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 3585: /* module 14 call 1 */
- switch (itemIdx) {
- case 0: /* council_execute_V1 - proposal */;
- return _toStringProposal(
- &m->basic.council_execute_V1.proposal,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 1: /* council_execute_V1 - length_bound */;
- return _toStringCompactu32(
- &m->basic.council_execute_V1.length_bound,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 3586: /* module 14 call 2 */
- switch (itemIdx) {
- case 0: /* council_propose_V1 - threshold */;
- return _toStringCompactu32(
- &m->basic.council_propose_V1.threshold,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 1: /* council_propose_V1 - proposal */;
- return _toStringProposal(
- &m->basic.council_propose_V1.proposal,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 2: /* council_propose_V1 - length_bound */;
- return _toStringCompactu32(
- &m->basic.council_propose_V1.length_bound,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 3587: /* module 14 call 3 */
- switch (itemIdx) {
- case 0: /* council_vote_V1 - proposal */;
- return _toStringHash(
- &m->basic.council_vote_V1.proposal,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 1: /* council_vote_V1 - index */;
- return _toStringCompactu32(
- &m->basic.council_vote_V1.index,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 2: /* council_vote_V1 - approve */;
- return _toStringbool(
- &m->basic.council_vote_V1.approve,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 3588: /* module 14 call 4 */
- switch (itemIdx) {
- case 0: /* council_close_V1 - proposal_hash */;
- return _toStringHash(
- &m->basic.council_close_V1.proposal_hash,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 1: /* council_close_V1 - index */;
- return _toStringCompactu32(
- &m->basic.council_close_V1.index,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 2: /* council_close_V1 - proposal_weight_bound */;
- return _toStringCompactu64(
- &m->basic.council_close_V1.proposal_weight_bound,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 3: /* council_close_V1 - length_bound */;
- return _toStringCompactu32(
- &m->basic.council_close_V1.length_bound,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 3589: /* module 14 call 5 */
- switch (itemIdx) {
- case 0: /* council_disapprove_proposal_V1 - proposal_hash */;
- return _toStringHash(
- &m->basic.council_disapprove_proposal_V1.proposal_hash,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 3840: /* module 15 call 0 */
- switch (itemIdx) {
- case 0: /* technicalcommittee_set_members_V1 - new_members */;
- return _toStringVecAccountId_V1(
- &m->basic.technicalcommittee_set_members_V1.new_members,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 1: /* technicalcommittee_set_members_V1 - prime */;
- return _toStringOptionAccountId_V1(
- &m->basic.technicalcommittee_set_members_V1.prime,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 2: /* technicalcommittee_set_members_V1 - old_count */;
- return _toStringMemberCount_V1(
- &m->basic.technicalcommittee_set_members_V1.old_count,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 3841: /* module 15 call 1 */
- switch (itemIdx) {
- case 0: /* technicalcommittee_execute_V1 - proposal */;
- return _toStringProposal(
- &m->basic.technicalcommittee_execute_V1.proposal,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 1: /* technicalcommittee_execute_V1 - length_bound */;
- return _toStringCompactu32(
- &m->basic.technicalcommittee_execute_V1.length_bound,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 3842: /* module 15 call 2 */
- switch (itemIdx) {
- case 0: /* technicalcommittee_propose_V1 - threshold */;
- return _toStringCompactu32(
- &m->basic.technicalcommittee_propose_V1.threshold,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 1: /* technicalcommittee_propose_V1 - proposal */;
- return _toStringProposal(
- &m->basic.technicalcommittee_propose_V1.proposal,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 2: /* technicalcommittee_propose_V1 - length_bound */;
- return _toStringCompactu32(
- &m->basic.technicalcommittee_propose_V1.length_bound,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 3843: /* module 15 call 3 */
- switch (itemIdx) {
- case 0: /* technicalcommittee_vote_V1 - proposal */;
- return _toStringHash(
- &m->basic.technicalcommittee_vote_V1.proposal,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 1: /* technicalcommittee_vote_V1 - index */;
- return _toStringCompactu32(
- &m->basic.technicalcommittee_vote_V1.index,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 2: /* technicalcommittee_vote_V1 - approve */;
- return _toStringbool(
- &m->basic.technicalcommittee_vote_V1.approve,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 3844: /* module 15 call 4 */
- switch (itemIdx) {
- case 0: /* technicalcommittee_close_V1 - proposal_hash */;
- return _toStringHash(
- &m->basic.technicalcommittee_close_V1.proposal_hash,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 1: /* technicalcommittee_close_V1 - index */;
- return _toStringCompactu32(
- &m->basic.technicalcommittee_close_V1.index,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 2: /* technicalcommittee_close_V1 - proposal_weight_bound */;
- return _toStringCompactu64(
- &m->basic.technicalcommittee_close_V1.proposal_weight_bound,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 3: /* technicalcommittee_close_V1 - length_bound */;
- return _toStringCompactu32(
- &m->basic.technicalcommittee_close_V1.length_bound,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 3845: /* module 15 call 5 */
- switch (itemIdx) {
- case 0: /* technicalcommittee_disapprove_proposal_V1 - proposal_hash */;
- return _toStringHash(
- &m->basic.technicalcommittee_disapprove_proposal_V1.proposal_hash,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 4096: /* module 16 call 0 */
- switch (itemIdx) {
- case 0: /* phragmenelection_vote_V1 - votes */;
- return _toStringVecAccountId_V1(
- &m->basic.phragmenelection_vote_V1.votes,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 1: /* phragmenelection_vote_V1 - amount */;
- return _toStringCompactu128(
- &m->basic.phragmenelection_vote_V1.amount,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 4097: /* module 16 call 1 */
- switch (itemIdx) {
- default:
- return parser_no_data;
- }
- case 4098: /* module 16 call 2 */
- switch (itemIdx) {
- case 0: /* phragmenelection_submit_candidacy_V1 - candidate_count */;
- return _toStringCompactu32(
- &m->basic.phragmenelection_submit_candidacy_V1.candidate_count,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 4100: /* module 16 call 4 */
- switch (itemIdx) {
- case 0: /* phragmenelection_remove_member_V1 - who */;
- return _toStringLookupasStaticLookupSource_V1(
- &m->basic.phragmenelection_remove_member_V1.who,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 1: /* phragmenelection_remove_member_V1 - slash_bond */;
- return _toStringbool(
- &m->basic.phragmenelection_remove_member_V1.slash_bond,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 2: /* phragmenelection_remove_member_V1 - rerun_election */;
- return _toStringbool(
- &m->basic.phragmenelection_remove_member_V1.rerun_election,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 4101: /* module 16 call 5 */
- switch (itemIdx) {
- case 0: /* phragmenelection_clean_defunct_voters_V1 - num_voters */;
- return _toStringu32(
- &m->basic.phragmenelection_clean_defunct_voters_V1.num_voters,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 1: /* phragmenelection_clean_defunct_voters_V1 - num_defunct */;
- return _toStringu32(
- &m->basic.phragmenelection_clean_defunct_voters_V1.num_defunct,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 4352: /* module 17 call 0 */
- switch (itemIdx) {
- case 0: /* technicalmembership_add_member_V1 - who */;
- return _toStringAccountId_V1(
- &m->basic.technicalmembership_add_member_V1.who,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 4353: /* module 17 call 1 */
- switch (itemIdx) {
- case 0: /* technicalmembership_remove_member_V1 - who */;
- return _toStringAccountId_V1(
- &m->basic.technicalmembership_remove_member_V1.who,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 4354: /* module 17 call 2 */
- switch (itemIdx) {
- case 0: /* technicalmembership_swap_member_V1 - remove */;
- return _toStringAccountId_V1(
- &m->basic.technicalmembership_swap_member_V1.remove,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 1: /* technicalmembership_swap_member_V1 - add */;
- return _toStringAccountId_V1(
- &m->basic.technicalmembership_swap_member_V1.add,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 4355: /* module 17 call 3 */
- switch (itemIdx) {
- case 0: /* technicalmembership_reset_members_V1 - members */;
- return _toStringVecAccountId_V1(
- &m->basic.technicalmembership_reset_members_V1.members,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 4356: /* module 17 call 4 */
- switch (itemIdx) {
- case 0: /* technicalmembership_change_key_V1 - new_ */;
- return _toStringAccountId_V1(
- &m->basic.technicalmembership_change_key_V1.new_,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 4357: /* module 17 call 5 */
- switch (itemIdx) {
- case 0: /* technicalmembership_set_prime_V1 - who */;
- return _toStringAccountId_V1(
- &m->basic.technicalmembership_set_prime_V1.who,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 4358: /* module 17 call 6 */
- switch (itemIdx) {
- default:
- return parser_no_data;
- }
- case 4608: /* module 18 call 0 */
- switch (itemIdx) {
- case 0: /* treasury_propose_spend_V1 - amount */;
- return _toStringCompactBalance(
- &m->basic.treasury_propose_spend_V1.amount,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 1: /* treasury_propose_spend_V1 - beneficiary */;
- return _toStringLookupasStaticLookupSource_V1(
- &m->basic.treasury_propose_spend_V1.beneficiary,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 4609: /* module 18 call 1 */
- switch (itemIdx) {
- case 0: /* treasury_reject_proposal_V1 - proposal_id */;
- return _toStringCompactu32(
- &m->basic.treasury_reject_proposal_V1.proposal_id,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 4610: /* module 18 call 2 */
- switch (itemIdx) {
- case 0: /* treasury_approve_proposal_V1 - proposal_id */;
- return _toStringCompactu32(
- &m->basic.treasury_approve_proposal_V1.proposal_id,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 4611: /* module 18 call 3 */
- switch (itemIdx) {
- case 0: /* treasury_spend_V1 - amount */;
- return _toStringCompactBalance(
- &m->basic.treasury_spend_V1.amount,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 1: /* treasury_spend_V1 - beneficiary */;
- return _toStringLookupasStaticLookupSource_V1(
- &m->basic.treasury_spend_V1.beneficiary,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 4612: /* module 18 call 4 */
- switch (itemIdx) {
- case 0: /* treasury_remove_approval_V1 - proposal_id */;
- return _toStringCompactu32(
- &m->basic.treasury_remove_approval_V1.proposal_id,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 4864: /* module 19 call 0 */
- switch (itemIdx) {
- case 0: /* claims_claim_V1 - dest */;
- return _toStringAccountId_V1(
- &m->basic.claims_claim_V1.dest,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 1: /* claims_claim_V1 - ethereum_signature */;
- return _toStringEcdsaSignature_V1(
- &m->basic.claims_claim_V1.ethereum_signature,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 4866: /* module 19 call 2 */
- switch (itemIdx) {
- case 0: /* claims_claim_attest_V1 - dest */;
- return _toStringAccountId_V1(
- &m->basic.claims_claim_attest_V1.dest,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 1: /* claims_claim_attest_V1 - ethereum_signature */;
- return _toStringEcdsaSignature_V1(
- &m->basic.claims_claim_attest_V1.ethereum_signature,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 2: /* claims_claim_attest_V1 - statement */;
- return _toStringBytes(
- &m->basic.claims_claim_attest_V1.statement,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 4867: /* module 19 call 3 */
- switch (itemIdx) {
- case 0: /* claims_attest_V1 - statement */;
- return _toStringBytes(
- &m->basic.claims_attest_V1.statement,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 4868: /* module 19 call 4 */
- switch (itemIdx) {
- case 0: /* claims_move_claim_V1 - old */;
- return _toStringEthereumAddress_V1(
- &m->basic.claims_move_claim_V1.old,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 1: /* claims_move_claim_V1 - new_ */;
- return _toStringEthereumAddress_V1(
- &m->basic.claims_move_claim_V1.new_,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 2: /* claims_move_claim_V1 - maybe_preclaim */;
- return _toStringOptionAccountId_V1(
- &m->basic.claims_move_claim_V1.maybe_preclaim,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 6400: /* module 25 call 0 */
- switch (itemIdx) {
- case 0: /* identity_add_registrar_V1 - account */;
- return _toStringAccountId_V1(
- &m->basic.identity_add_registrar_V1.account,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 6403: /* module 25 call 3 */
- switch (itemIdx) {
- default:
- return parser_no_data;
- }
- case 6404: /* module 25 call 4 */
- switch (itemIdx) {
- case 0: /* identity_request_judgement_V1 - reg_index */;
- return _toStringCompactu32(
- &m->basic.identity_request_judgement_V1.reg_index,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 1: /* identity_request_judgement_V1 - max_fee */;
- return _toStringCompactu128(
- &m->basic.identity_request_judgement_V1.max_fee,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 6405: /* module 25 call 5 */
- switch (itemIdx) {
- case 0: /* identity_cancel_request_V1 - reg_index */;
- return _toStringRegistrarIndex_V1(
- &m->basic.identity_cancel_request_V1.reg_index,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 6406: /* module 25 call 6 */
- switch (itemIdx) {
- case 0: /* identity_set_fee_V1 - index */;
- return _toStringCompactu32(
- &m->basic.identity_set_fee_V1.index,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 1: /* identity_set_fee_V1 - fee */;
- return _toStringCompactu128(
- &m->basic.identity_set_fee_V1.fee,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 6407: /* module 25 call 7 */
- switch (itemIdx) {
- case 0: /* identity_set_account_id_V1 - index */;
- return _toStringCompactu32(
- &m->basic.identity_set_account_id_V1.index,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 1: /* identity_set_account_id_V1 - new_ */;
- return _toStringAccountId_V1(
- &m->basic.identity_set_account_id_V1.new_,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 6410: /* module 25 call 10 */
- switch (itemIdx) {
- case 0: /* identity_kill_identity_V1 - target */;
- return _toStringLookupasStaticLookupSource_V1(
- &m->basic.identity_kill_identity_V1.target,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 6413: /* module 25 call 13 */
- switch (itemIdx) {
- case 0: /* identity_remove_sub_V1 - sub */;
- return _toStringLookupasStaticLookupSource_V1(
- &m->basic.identity_remove_sub_V1.sub,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 6414: /* module 25 call 14 */
- switch (itemIdx) {
- default:
- return parser_no_data;
- }
- case 6656: /* module 26 call 0 */
- switch (itemIdx) {
- case 0: /* society_bid_V1 - amount */;
- return _toStringBalanceOf(
- &m->basic.society_bid_V1.amount,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 6657: /* module 26 call 1 */
- switch (itemIdx) {
- case 0: /* society_unbid_V1 - pos */;
- return _toStringu32(
- &m->basic.society_unbid_V1.pos,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 6658: /* module 26 call 2 */
- switch (itemIdx) {
- case 0: /* society_vouch_V1 - who */;
- return _toStringAccountId_V1(
- &m->basic.society_vouch_V1.who,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 1: /* society_vouch_V1 - amount */;
- return _toStringBalanceOf(
- &m->basic.society_vouch_V1.amount,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 2: /* society_vouch_V1 - tip */;
- return _toStringBalanceOf(
- &m->basic.society_vouch_V1.tip,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 6659: /* module 26 call 3 */
- switch (itemIdx) {
- case 0: /* society_unvouch_V1 - pos */;
- return _toStringu32(
- &m->basic.society_unvouch_V1.pos,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 6660: /* module 26 call 4 */
- switch (itemIdx) {
- case 0: /* society_vote_V1 - candidate */;
- return _toStringLookupasStaticLookupSource_V1(
- &m->basic.society_vote_V1.candidate,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 1: /* society_vote_V1 - approve */;
- return _toStringbool(
- &m->basic.society_vote_V1.approve,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 6661: /* module 26 call 5 */
- switch (itemIdx) {
- case 0: /* society_defender_vote_V1 - approve */;
- return _toStringbool(
- &m->basic.society_defender_vote_V1.approve,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 6662: /* module 26 call 6 */
- switch (itemIdx) {
- default:
- return parser_no_data;
- }
- case 6663: /* module 26 call 7 */
- switch (itemIdx) {
- case 0: /* society_found_V1 - founder */;
- return _toStringAccountId_V1(
- &m->basic.society_found_V1.founder,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 1: /* society_found_V1 - max_members */;
- return _toStringu32(
- &m->basic.society_found_V1.max_members,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 2: /* society_found_V1 - rules */;
- return _toStringBytes(
- &m->basic.society_found_V1.rules,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 6664: /* module 26 call 8 */
- switch (itemIdx) {
- default:
- return parser_no_data;
- }
- case 6665: /* module 26 call 9 */
- switch (itemIdx) {
- case 0: /* society_judge_suspended_member_V1 - who */;
- return _toStringAccountId_V1(
- &m->basic.society_judge_suspended_member_V1.who,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 1: /* society_judge_suspended_member_V1 - forgive */;
- return _toStringbool(
- &m->basic.society_judge_suspended_member_V1.forgive,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 6667: /* module 26 call 11 */
- switch (itemIdx) {
- case 0: /* society_set_max_members_V1 - max */;
- return _toStringu32(
- &m->basic.society_set_max_members_V1.max,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 6913: /* module 27 call 1 */
- switch (itemIdx) {
- case 0: /* recovery_set_recovered_V1 - lost */;
- return _toStringAccountId_V1(
- &m->basic.recovery_set_recovered_V1.lost,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 1: /* recovery_set_recovered_V1 - rescuer */;
- return _toStringAccountId_V1(
- &m->basic.recovery_set_recovered_V1.rescuer,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 6915: /* module 27 call 3 */
- switch (itemIdx) {
- case 0: /* recovery_initiate_recovery_V1 - account */;
- return _toStringAccountId_V1(
- &m->basic.recovery_initiate_recovery_V1.account,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 6916: /* module 27 call 4 */
- switch (itemIdx) {
- case 0: /* recovery_vouch_recovery_V1 - lost */;
- return _toStringAccountId_V1(
- &m->basic.recovery_vouch_recovery_V1.lost,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 1: /* recovery_vouch_recovery_V1 - rescuer */;
- return _toStringAccountId_V1(
- &m->basic.recovery_vouch_recovery_V1.rescuer,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 6917: /* module 27 call 5 */
- switch (itemIdx) {
- case 0: /* recovery_claim_recovery_V1 - account */;
- return _toStringAccountId_V1(
- &m->basic.recovery_claim_recovery_V1.account,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 6918: /* module 27 call 6 */
- switch (itemIdx) {
- case 0: /* recovery_close_recovery_V1 - rescuer */;
- return _toStringAccountId_V1(
- &m->basic.recovery_close_recovery_V1.rescuer,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 6919: /* module 27 call 7 */
- switch (itemIdx) {
- default:
- return parser_no_data;
- }
- case 6920: /* module 27 call 8 */
- switch (itemIdx) {
- case 0: /* recovery_cancel_recovered_V1 - account */;
- return _toStringAccountId_V1(
- &m->basic.recovery_cancel_recovered_V1.account,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 7168: /* module 28 call 0 */
- switch (itemIdx) {
- default:
- return parser_no_data;
- }
- case 7169: /* module 28 call 1 */
- switch (itemIdx) {
- case 0: /* vesting_vest_other_V1 - target */;
- return _toStringLookupasStaticLookupSource_V1(
- &m->basic.vesting_vest_other_V1.target,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 7170: /* module 28 call 2 */
- switch (itemIdx) {
- case 0: /* vesting_vested_transfer_V1 - target */;
- return _toStringLookupasStaticLookupSource_V1(
- &m->basic.vesting_vested_transfer_V1.target,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 1: /* vesting_vested_transfer_V1 - schedule */;
- return _toStringVestingInfo_V1(
- &m->basic.vesting_vested_transfer_V1.schedule,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 7171: /* module 28 call 3 */
- switch (itemIdx) {
- case 0: /* vesting_force_vested_transfer_V1 - source */;
- return _toStringLookupasStaticLookupSource_V1(
- &m->basic.vesting_force_vested_transfer_V1.source,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 1: /* vesting_force_vested_transfer_V1 - target */;
- return _toStringLookupasStaticLookupSource_V1(
- &m->basic.vesting_force_vested_transfer_V1.target,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 2: /* vesting_force_vested_transfer_V1 - schedule */;
- return _toStringVestingInfo_V1(
- &m->basic.vesting_force_vested_transfer_V1.schedule,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 7172: /* module 28 call 4 */
- switch (itemIdx) {
- case 0: /* vesting_merge_schedules_V1 - schedule1_index */;
- return _toStringu32(
- &m->basic.vesting_merge_schedules_V1.schedule1_index,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 1: /* vesting_merge_schedules_V1 - schedule2_index */;
- return _toStringu32(
- &m->basic.vesting_merge_schedules_V1.schedule2_index,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 7680: /* module 30 call 0 */
- switch (itemIdx) {
- case 0: /* proxy_proxy_V1 - real */;
- return _toStringAccountId_V1(
- &m->nested.proxy_proxy_V1.real,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 1: /* proxy_proxy_V1 - force_proxy_type */;
- return _toStringOptionProxyType_V1(
- &m->nested.proxy_proxy_V1.force_proxy_type,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 2: /* proxy_proxy_V1 - call */;
- return _toStringCall(
- &m->nested.proxy_proxy_V1.call,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 7681: /* module 30 call 1 */
- switch (itemIdx) {
- case 0: /* proxy_add_proxy_V1 - delegate */;
- return _toStringAccountId_V1(
- &m->basic.proxy_add_proxy_V1.delegate,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 1: /* proxy_add_proxy_V1 - proxy_type */;
- return _toStringProxyType_V1(
- &m->basic.proxy_add_proxy_V1.proxy_type,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 2: /* proxy_add_proxy_V1 - delay */;
- return _toStringBlockNumber(
- &m->basic.proxy_add_proxy_V1.delay,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 7682: /* module 30 call 2 */
- switch (itemIdx) {
- case 0: /* proxy_remove_proxy_V1 - delegate */;
- return _toStringAccountId_V1(
- &m->basic.proxy_remove_proxy_V1.delegate,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 1: /* proxy_remove_proxy_V1 - proxy_type */;
- return _toStringProxyType_V1(
- &m->basic.proxy_remove_proxy_V1.proxy_type,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 2: /* proxy_remove_proxy_V1 - delay */;
- return _toStringBlockNumber(
- &m->basic.proxy_remove_proxy_V1.delay,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 7683: /* module 30 call 3 */
- switch (itemIdx) {
- default:
- return parser_no_data;
- }
- case 7684: /* module 30 call 4 */
- switch (itemIdx) {
- case 0: /* proxy_anonymous_V1 - proxy_type */;
- return _toStringProxyType_V1(
- &m->basic.proxy_anonymous_V1.proxy_type,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 1: /* proxy_anonymous_V1 - delay */;
- return _toStringBlockNumber(
- &m->basic.proxy_anonymous_V1.delay,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 2: /* proxy_anonymous_V1 - index */;
- return _toStringu16(
- &m->basic.proxy_anonymous_V1.index,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 7685: /* module 30 call 5 */
- switch (itemIdx) {
- case 0: /* proxy_kill_anonymous_V1 - spawner */;
- return _toStringAccountId_V1(
- &m->basic.proxy_kill_anonymous_V1.spawner,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 1: /* proxy_kill_anonymous_V1 - proxy_type */;
- return _toStringProxyType_V1(
- &m->basic.proxy_kill_anonymous_V1.proxy_type,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 2: /* proxy_kill_anonymous_V1 - index */;
- return _toStringu16(
- &m->basic.proxy_kill_anonymous_V1.index,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 3: /* proxy_kill_anonymous_V1 - height */;
- return _toStringCompactu32(
- &m->basic.proxy_kill_anonymous_V1.height,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 4: /* proxy_kill_anonymous_V1 - ext_index */;
- return _toStringCompactu32(
- &m->basic.proxy_kill_anonymous_V1.ext_index,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 7689: /* module 30 call 9 */
- switch (itemIdx) {
- case 0: /* proxy_proxy_announced_V1 - delegate */;
- return _toStringAccountId_V1(
- &m->basic.proxy_proxy_announced_V1.delegate,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 1: /* proxy_proxy_announced_V1 - real */;
- return _toStringAccountId_V1(
- &m->basic.proxy_proxy_announced_V1.real,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 2: /* proxy_proxy_announced_V1 - force_proxy_type */;
- return _toStringOptionProxyType_V1(
- &m->basic.proxy_proxy_announced_V1.force_proxy_type,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 3: /* proxy_proxy_announced_V1 - call */;
- return _toStringCall(
- &m->basic.proxy_proxy_announced_V1.call,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 7936: /* module 31 call 0 */
- switch (itemIdx) {
- case 0: /* multisig_as_multi_threshold_1_V1 - other_signatories */;
- return _toStringVecAccountId_V1(
- &m->nested.multisig_as_multi_threshold_1_V1.other_signatories,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 1: /* multisig_as_multi_threshold_1_V1 - call */;
- return _toStringCall(
- &m->nested.multisig_as_multi_threshold_1_V1.call,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 7937: /* module 31 call 1 */
- switch (itemIdx) {
- case 0: /* multisig_as_multi_V1 - threshold */;
- return _toStringu16(
- &m->nested.multisig_as_multi_V1.threshold,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 1: /* multisig_as_multi_V1 - other_signatories */;
- return _toStringVecAccountId_V1(
- &m->nested.multisig_as_multi_V1.other_signatories,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 2: /* multisig_as_multi_V1 - maybe_timepoint */;
- return _toStringOptionTimepoint_V1(
- &m->nested.multisig_as_multi_V1.maybe_timepoint,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 3: /* multisig_as_multi_V1 - call */;
- return _toStringOpaqueCall_V1(
- &m->nested.multisig_as_multi_V1.call,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 4: /* multisig_as_multi_V1 - store_call */;
- return _toStringbool(
- &m->nested.multisig_as_multi_V1.store_call,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 5: /* multisig_as_multi_V1 - max_weight */;
- return _toStringWeight_V1(
- &m->nested.multisig_as_multi_V1.max_weight,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 7938: /* module 31 call 2 */
- switch (itemIdx) {
- case 0: /* multisig_approve_as_multi_V1 - threshold */;
- return _toStringu16(
- &m->nested.multisig_approve_as_multi_V1.threshold,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 1: /* multisig_approve_as_multi_V1 - other_signatories */;
- return _toStringVecAccountId_V1(
- &m->nested.multisig_approve_as_multi_V1.other_signatories,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 2: /* multisig_approve_as_multi_V1 - maybe_timepoint */;
- return _toStringOptionTimepoint_V1(
- &m->nested.multisig_approve_as_multi_V1.maybe_timepoint,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 3: /* multisig_approve_as_multi_V1 - call_hash */;
- return _toStringH256(
- &m->nested.multisig_approve_as_multi_V1.call_hash,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 4: /* multisig_approve_as_multi_V1 - max_weight */;
- return _toStringWeight_V1(
- &m->nested.multisig_approve_as_multi_V1.max_weight,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 7939: /* module 31 call 3 */
- switch (itemIdx) {
- case 0: /* multisig_cancel_as_multi_V1 - threshold */;
- return _toStringu16(
- &m->nested.multisig_cancel_as_multi_V1.threshold,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 1: /* multisig_cancel_as_multi_V1 - other_signatories */;
- return _toStringVecAccountId_V1(
- &m->nested.multisig_cancel_as_multi_V1.other_signatories,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 2: /* multisig_cancel_as_multi_V1 - timepoint */;
- return _toStringTimepoint_V1(
- &m->nested.multisig_cancel_as_multi_V1.timepoint,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 3: /* multisig_cancel_as_multi_V1 - call_hash */;
- return _toStringH256(
- &m->nested.multisig_cancel_as_multi_V1.call_hash,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 8192: /* module 32 call 0 */
- switch (itemIdx) {
- case 0: /* preimage_note_preimage_V1 - bytes */;
- return _toStringVecu8(
- &m->basic.preimage_note_preimage_V1.bytes,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 8193: /* module 32 call 1 */
- switch (itemIdx) {
- case 0: /* preimage_unnote_preimage_V1 - hash */;
- return _toStringHash(
- &m->basic.preimage_unnote_preimage_V1.hash,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 8194: /* module 32 call 2 */
- switch (itemIdx) {
- case 0: /* preimage_request_preimage_V1 - hash */;
- return _toStringHash(
- &m->basic.preimage_request_preimage_V1.hash,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 8195: /* module 32 call 3 */
- switch (itemIdx) {
- case 0: /* preimage_unrequest_preimage_V1 - hash */;
- return _toStringHash(
- &m->basic.preimage_unrequest_preimage_V1.hash,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 8960: /* module 35 call 0 */
- switch (itemIdx) {
- case 0: /* bounties_propose_bounty_V1 - amount */;
- return _toStringCompactBalance(
- &m->basic.bounties_propose_bounty_V1.amount,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 1: /* bounties_propose_bounty_V1 - description */;
- return _toStringBytes(
- &m->basic.bounties_propose_bounty_V1.description,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 8961: /* module 35 call 1 */
- switch (itemIdx) {
- case 0: /* bounties_approve_bounty_V1 - bounty_id */;
- return _toStringCompactu32(
- &m->basic.bounties_approve_bounty_V1.bounty_id,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 8962: /* module 35 call 2 */
- switch (itemIdx) {
- case 0: /* bounties_propose_curator_V1 - bounty_id */;
- return _toStringCompactu32(
- &m->basic.bounties_propose_curator_V1.bounty_id,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 1: /* bounties_propose_curator_V1 - curator */;
- return _toStringLookupasStaticLookupSource_V1(
- &m->basic.bounties_propose_curator_V1.curator,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 2: /* bounties_propose_curator_V1 - fee */;
- return _toStringCompactBalance(
- &m->basic.bounties_propose_curator_V1.fee,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 8963: /* module 35 call 3 */
- switch (itemIdx) {
- case 0: /* bounties_unassign_curator_V1 - bounty_id */;
- return _toStringCompactu32(
- &m->basic.bounties_unassign_curator_V1.bounty_id,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 8964: /* module 35 call 4 */
- switch (itemIdx) {
- case 0: /* bounties_accept_curator_V1 - bounty_id */;
- return _toStringCompactu32(
- &m->basic.bounties_accept_curator_V1.bounty_id,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 8965: /* module 35 call 5 */
- switch (itemIdx) {
- case 0: /* bounties_award_bounty_V1 - bounty_id */;
- return _toStringCompactu32(
- &m->basic.bounties_award_bounty_V1.bounty_id,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 1: /* bounties_award_bounty_V1 - beneficiary */;
- return _toStringLookupasStaticLookupSource_V1(
- &m->basic.bounties_award_bounty_V1.beneficiary,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 8966: /* module 35 call 6 */
- switch (itemIdx) {
- case 0: /* bounties_claim_bounty_V1 - bounty_id */;
- return _toStringCompactu32(
- &m->basic.bounties_claim_bounty_V1.bounty_id,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 8967: /* module 35 call 7 */
- switch (itemIdx) {
- case 0: /* bounties_close_bounty_V1 - bounty_id */;
- return _toStringCompactu32(
- &m->basic.bounties_close_bounty_V1.bounty_id,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 8968: /* module 35 call 8 */
- switch (itemIdx) {
- case 0: /* bounties_extend_bounty_expiry_V1 - bounty_id */;
- return _toStringCompactu32(
- &m->basic.bounties_extend_bounty_expiry_V1.bounty_id,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 1: /* bounties_extend_bounty_expiry_V1 - remark */;
- return _toStringBytes(
- &m->basic.bounties_extend_bounty_expiry_V1.remark,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 10240: /* module 40 call 0 */
- switch (itemIdx) {
- case 0: /* childbounties_add_child_bounty_V1 - parent_bounty_id */;
- return _toStringCompactu32(
- &m->basic.childbounties_add_child_bounty_V1.parent_bounty_id,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 1: /* childbounties_add_child_bounty_V1 - amount */;
- return _toStringCompactBalance(
- &m->basic.childbounties_add_child_bounty_V1.amount,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 2: /* childbounties_add_child_bounty_V1 - description */;
- return _toStringVecu8(
- &m->basic.childbounties_add_child_bounty_V1.description,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 10241: /* module 40 call 1 */
- switch (itemIdx) {
- case 0: /* childbounties_propose_curator_V1 - parent_bounty_id */;
- return _toStringCompactu32(
- &m->basic.childbounties_propose_curator_V1.parent_bounty_id,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 1: /* childbounties_propose_curator_V1 - child_bounty_id */;
- return _toStringCompactu32(
- &m->basic.childbounties_propose_curator_V1.child_bounty_id,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 2: /* childbounties_propose_curator_V1 - curator */;
- return _toStringLookupasStaticLookupSource_V1(
- &m->basic.childbounties_propose_curator_V1.curator,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 3: /* childbounties_propose_curator_V1 - fee */;
- return _toStringCompactBalance(
- &m->basic.childbounties_propose_curator_V1.fee,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 10242: /* module 40 call 2 */
- switch (itemIdx) {
- case 0: /* childbounties_accept_curator_V1 - parent_bounty_id */;
- return _toStringCompactu32(
- &m->basic.childbounties_accept_curator_V1.parent_bounty_id,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 1: /* childbounties_accept_curator_V1 - child_bounty_id */;
- return _toStringCompactu32(
- &m->basic.childbounties_accept_curator_V1.child_bounty_id,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 10243: /* module 40 call 3 */
- switch (itemIdx) {
- case 0: /* childbounties_unassign_curator_V1 - parent_bounty_id */;
- return _toStringCompactu32(
- &m->basic.childbounties_unassign_curator_V1.parent_bounty_id,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 1: /* childbounties_unassign_curator_V1 - child_bounty_id */;
- return _toStringCompactu32(
- &m->basic.childbounties_unassign_curator_V1.child_bounty_id,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 10244: /* module 40 call 4 */
- switch (itemIdx) {
- case 0: /* childbounties_award_child_bounty_V1 - parent_bounty_id */;
- return _toStringCompactu32(
- &m->basic.childbounties_award_child_bounty_V1.parent_bounty_id,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 1: /* childbounties_award_child_bounty_V1 - child_bounty_id */;
- return _toStringCompactu32(
- &m->basic.childbounties_award_child_bounty_V1.child_bounty_id,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 2: /* childbounties_award_child_bounty_V1 - beneficiary */;
- return _toStringLookupasStaticLookupSource_V1(
- &m->basic.childbounties_award_child_bounty_V1.beneficiary,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 10245: /* module 40 call 5 */
- switch (itemIdx) {
- case 0: /* childbounties_claim_child_bounty_V1 - parent_bounty_id */;
- return _toStringCompactu32(
- &m->basic.childbounties_claim_child_bounty_V1.parent_bounty_id,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 1: /* childbounties_claim_child_bounty_V1 - child_bounty_id */;
- return _toStringCompactu32(
- &m->basic.childbounties_claim_child_bounty_V1.child_bounty_id,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 10246: /* module 40 call 6 */
- switch (itemIdx) {
- case 0: /* childbounties_close_child_bounty_V1 - parent_bounty_id */;
- return _toStringCompactu32(
- &m->basic.childbounties_close_child_bounty_V1.parent_bounty_id,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 1: /* childbounties_close_child_bounty_V1 - child_bounty_id */;
- return _toStringCompactu32(
- &m->basic.childbounties_close_child_bounty_V1.child_bounty_id,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 9216: /* module 36 call 0 */
- switch (itemIdx) {
- case 0: /* tips_report_awesome_V1 - reason */;
- return _toStringBytes(
- &m->basic.tips_report_awesome_V1.reason,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 1: /* tips_report_awesome_V1 - who */;
- return _toStringAccountId_V1(
- &m->basic.tips_report_awesome_V1.who,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 9217: /* module 36 call 1 */
- switch (itemIdx) {
- case 0: /* tips_retract_tip_V1 - hash */;
- return _toStringHash(
- &m->basic.tips_retract_tip_V1.hash,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 9218: /* module 36 call 2 */
- switch (itemIdx) {
- case 0: /* tips_tip_new_V1 - reason */;
- return _toStringBytes(
- &m->basic.tips_tip_new_V1.reason,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 1: /* tips_tip_new_V1 - who */;
- return _toStringAccountId_V1(
- &m->basic.tips_tip_new_V1.who,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 2: /* tips_tip_new_V1 - tip_value */;
- return _toStringCompactu128(
- &m->basic.tips_tip_new_V1.tip_value,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 9219: /* module 36 call 3 */
- switch (itemIdx) {
- case 0: /* tips_tip_V1 - hash */;
- return _toStringHash(
- &m->basic.tips_tip_V1.hash,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 1: /* tips_tip_V1 - tip_value */;
- return _toStringCompactu128(
- &m->basic.tips_tip_V1.tip_value,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 9220: /* module 36 call 4 */
- switch (itemIdx) {
- case 0: /* tips_close_tip_V1 - hash */;
- return _toStringHash(
- &m->basic.tips_close_tip_V1.hash,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 9221: /* module 36 call 5 */
- switch (itemIdx) {
- case 0: /* tips_slash_tip_V1 - hash */;
- return _toStringHash(
- &m->basic.tips_slash_tip_V1.hash,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 9476: /* module 37 call 4 */
- switch (itemIdx) {
- case 0: /* electionprovidermultiphase_governance_fallback_V1 - maybe_max_voters */;
- return _toStringOptionu32(
- &m->basic.electionprovidermultiphase_governance_fallback_V1.maybe_max_voters,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 1: /* electionprovidermultiphase_governance_fallback_V1 - maybe_max_targets */;
- return _toStringOptionu32(
- &m->basic.electionprovidermultiphase_governance_fallback_V1.maybe_max_targets,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 9728: /* module 38 call 0 */
- switch (itemIdx) {
- case 0: /* gilt_place_bid_V1 - amount */;
- return _toStringCompactBalance(
- &m->basic.gilt_place_bid_V1.amount,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 1: /* gilt_place_bid_V1 - duration */;
- return _toStringu32(
- &m->basic.gilt_place_bid_V1.duration,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 9729: /* module 38 call 1 */
- switch (itemIdx) {
- case 0: /* gilt_retract_bid_V1 - amount */;
- return _toStringCompactBalance(
- &m->basic.gilt_retract_bid_V1.amount,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 1: /* gilt_retract_bid_V1 - duration */;
- return _toStringu32(
- &m->basic.gilt_retract_bid_V1.duration,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 9730: /* module 38 call 2 */
- switch (itemIdx) {
- case 0: /* gilt_set_target_V1 - target */;
- return _toStringCompactu64(
- &m->basic.gilt_set_target_V1.target,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 9731: /* module 38 call 3 */
- switch (itemIdx) {
- case 0: /* gilt_thaw_V1 - index */;
- return _toStringCompactu32(
- &m->basic.gilt_thaw_V1.index,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 9984: /* module 39 call 0 */
- switch (itemIdx) {
- case 0: /* voterlist_rebag_V1 - dislocated */;
- return _toStringAccountId_V1(
- &m->basic.voterlist_rebag_V1.dislocated,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 9985: /* module 39 call 1 */
- switch (itemIdx) {
- case 0: /* voterlist_put_in_front_of_V1 - lighter */;
- return _toStringAccountId_V1(
- &m->basic.voterlist_put_in_front_of_V1.lighter,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 10496: /* module 41 call 0 */
- switch (itemIdx) {
- case 0: /* nominationpools_join_V1 - amount */;
- return _toStringCompactu128(
- &m->basic.nominationpools_join_V1.amount,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 1: /* nominationpools_join_V1 - pool_id */;
- return _toStringPoolId_V1(
- &m->basic.nominationpools_join_V1.pool_id,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 10497: /* module 41 call 1 */
- switch (itemIdx) {
- case 0: /* nominationpools_bond_extra_V1 - extra */;
- return _toStringBondExtraBalanceOfT_V1(
- &m->basic.nominationpools_bond_extra_V1.extra,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 10498: /* module 41 call 2 */
- switch (itemIdx) {
- default:
- return parser_no_data;
- }
- case 10499: /* module 41 call 3 */
- switch (itemIdx) {
- case 0: /* nominationpools_unbond_V1 - member_account */;
- return _toStringAccountId_V1(
- &m->basic.nominationpools_unbond_V1.member_account,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 1: /* nominationpools_unbond_V1 - unbonding_points */;
- return _toStringCompactu128(
- &m->basic.nominationpools_unbond_V1.unbonding_points,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 10500: /* module 41 call 4 */
- switch (itemIdx) {
- case 0: /* nominationpools_pool_withdraw_unbonded_V1 - pool_id */;
- return _toStringPoolId_V1(
- &m->basic.nominationpools_pool_withdraw_unbonded_V1.pool_id,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 1: /* nominationpools_pool_withdraw_unbonded_V1 - num_slashing_spans */;
- return _toStringu32(
- &m->basic.nominationpools_pool_withdraw_unbonded_V1.num_slashing_spans,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 10501: /* module 41 call 5 */
- switch (itemIdx) {
- case 0: /* nominationpools_withdraw_unbonded_V1 - member_account */;
- return _toStringAccountId_V1(
- &m->basic.nominationpools_withdraw_unbonded_V1.member_account,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 1: /* nominationpools_withdraw_unbonded_V1 - num_slashing_spans */;
- return _toStringu32(
- &m->basic.nominationpools_withdraw_unbonded_V1.num_slashing_spans,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 10502: /* module 41 call 6 */
- switch (itemIdx) {
- case 0: /* nominationpools_create_V1 - amount */;
- return _toStringCompactu128(
- &m->basic.nominationpools_create_V1.amount,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 1: /* nominationpools_create_V1 - root */;
- return _toStringAccountId_V1(
- &m->basic.nominationpools_create_V1.root,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 2: /* nominationpools_create_V1 - nominator */;
- return _toStringAccountId_V1(
- &m->basic.nominationpools_create_V1.nominator,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 3: /* nominationpools_create_V1 - state_toggler */;
- return _toStringAccountId_V1(
- &m->basic.nominationpools_create_V1.state_toggler,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 10503: /* module 41 call 7 */
- switch (itemIdx) {
- case 0: /* nominationpools_nominate_V1 - pool_id */;
- return _toStringPoolId_V1(
- &m->basic.nominationpools_nominate_V1.pool_id,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 1: /* nominationpools_nominate_V1 - validators */;
- return _toStringVecAccountId_V1(
- &m->basic.nominationpools_nominate_V1.validators,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 10504: /* module 41 call 8 */
- switch (itemIdx) {
- case 0: /* nominationpools_set_state_V1 - pool_id */;
- return _toStringPoolId_V1(
- &m->basic.nominationpools_set_state_V1.pool_id,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 1: /* nominationpools_set_state_V1 - state */;
- return _toStringPoolState_V1(
- &m->basic.nominationpools_set_state_V1.state,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 10505: /* module 41 call 9 */
- switch (itemIdx) {
- case 0: /* nominationpools_set_metadata_V1 - pool_id */;
- return _toStringPoolId_V1(
- &m->basic.nominationpools_set_metadata_V1.pool_id,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 1: /* nominationpools_set_metadata_V1 - metadata */;
- return _toStringVecu8(
- &m->basic.nominationpools_set_metadata_V1.metadata,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 10506: /* module 41 call 10 */
- switch (itemIdx) {
- case 0: /* nominationpools_set_configs_V1 - min_join_bond */;
- return _toStringConfigOpBalanceOfT_V1(
- &m->basic.nominationpools_set_configs_V1.min_join_bond,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 1: /* nominationpools_set_configs_V1 - min_create_bond */;
- return _toStringConfigOpBalanceOfT_V1(
- &m->basic.nominationpools_set_configs_V1.min_create_bond,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 2: /* nominationpools_set_configs_V1 - max_pools */;
- return _toStringConfigOpu32_V1(
- &m->basic.nominationpools_set_configs_V1.max_pools,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 3: /* nominationpools_set_configs_V1 - max_members */;
- return _toStringConfigOpu32_V1(
- &m->basic.nominationpools_set_configs_V1.max_members,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 4: /* nominationpools_set_configs_V1 - max_members_per_pool */;
- return _toStringConfigOpu32_V1(
- &m->basic.nominationpools_set_configs_V1.max_members_per_pool,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 10507: /* module 41 call 11 */
- switch (itemIdx) {
- case 0: /* nominationpools_update_roles_V1 - pool_id */;
- return _toStringPoolId_V1(
- &m->basic.nominationpools_update_roles_V1.pool_id,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 1: /* nominationpools_update_roles_V1 - new_root */;
- return _toStringConfigOpAccountId_V1(
- &m->basic.nominationpools_update_roles_V1.new_root,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 2: /* nominationpools_update_roles_V1 - new_nominator */;
- return _toStringConfigOpAccountId_V1(
- &m->basic.nominationpools_update_roles_V1.new_nominator,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 3: /* nominationpools_update_roles_V1 - new_state_toggler */;
- return _toStringConfigOpAccountId_V1(
- &m->basic.nominationpools_update_roles_V1.new_state_toggler,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 10508: /* module 41 call 12 */
- switch (itemIdx) {
- case 0: /* nominationpools_chill_V1 - pool_id */;
- return _toStringPoolId_V1(
- &m->basic.nominationpools_chill_V1.pool_id,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 13056: /* module 51 call 0 */
- switch (itemIdx) {
- case 0: /* configuration_set_validation_upgrade_cooldown_V1 - new_ */;
- return _toStringBlockNumber(
- &m->basic.configuration_set_validation_upgrade_cooldown_V1.new_,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 13057: /* module 51 call 1 */
- switch (itemIdx) {
- case 0: /* configuration_set_validation_upgrade_delay_V1 - new_ */;
- return _toStringBlockNumber(
- &m->basic.configuration_set_validation_upgrade_delay_V1.new_,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 13058: /* module 51 call 2 */
- switch (itemIdx) {
- case 0: /* configuration_set_code_retention_period_V1 - new_ */;
- return _toStringBlockNumber(
- &m->basic.configuration_set_code_retention_period_V1.new_,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 13059: /* module 51 call 3 */
- switch (itemIdx) {
- case 0: /* configuration_set_max_code_size_V1 - new_ */;
- return _toStringu32(
- &m->basic.configuration_set_max_code_size_V1.new_,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 13060: /* module 51 call 4 */
- switch (itemIdx) {
- case 0: /* configuration_set_max_pov_size_V1 - new_ */;
- return _toStringu32(
- &m->basic.configuration_set_max_pov_size_V1.new_,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 13061: /* module 51 call 5 */
- switch (itemIdx) {
- case 0: /* configuration_set_max_head_data_size_V1 - new_ */;
- return _toStringu32(
- &m->basic.configuration_set_max_head_data_size_V1.new_,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 13062: /* module 51 call 6 */
- switch (itemIdx) {
- case 0: /* configuration_set_parathread_cores_V1 - new_ */;
- return _toStringu32(
- &m->basic.configuration_set_parathread_cores_V1.new_,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 13063: /* module 51 call 7 */
- switch (itemIdx) {
- case 0: /* configuration_set_parathread_retries_V1 - new_ */;
- return _toStringu32(
- &m->basic.configuration_set_parathread_retries_V1.new_,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 13064: /* module 51 call 8 */
- switch (itemIdx) {
- case 0: /* configuration_set_group_rotation_frequency_V1 - new_ */;
- return _toStringBlockNumber(
- &m->basic.configuration_set_group_rotation_frequency_V1.new_,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 13065: /* module 51 call 9 */
- switch (itemIdx) {
- case 0: /* configuration_set_chain_availability_period_V1 - new_ */;
- return _toStringBlockNumber(
- &m->basic.configuration_set_chain_availability_period_V1.new_,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 13066: /* module 51 call 10 */
- switch (itemIdx) {
- case 0: /* configuration_set_thread_availability_period_V1 - new_ */;
- return _toStringBlockNumber(
- &m->basic.configuration_set_thread_availability_period_V1.new_,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 13067: /* module 51 call 11 */
- switch (itemIdx) {
- case 0: /* configuration_set_scheduling_lookahead_V1 - new_ */;
- return _toStringu32(
- &m->basic.configuration_set_scheduling_lookahead_V1.new_,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 13068: /* module 51 call 12 */
- switch (itemIdx) {
- case 0: /* configuration_set_max_validators_per_core_V1 - new_ */;
- return _toStringOptionu32(
- &m->basic.configuration_set_max_validators_per_core_V1.new_,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 13069: /* module 51 call 13 */
- switch (itemIdx) {
- case 0: /* configuration_set_max_validators_V1 - new_ */;
- return _toStringOptionu32(
- &m->basic.configuration_set_max_validators_V1.new_,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 13070: /* module 51 call 14 */
- switch (itemIdx) {
- case 0: /* configuration_set_dispute_period_V1 - new_ */;
- return _toStringSessionIndex_V1(
- &m->basic.configuration_set_dispute_period_V1.new_,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 13071: /* module 51 call 15 */
- switch (itemIdx) {
- case 0: /* configuration_set_dispute_post_conclusion_acceptance_period_V1 - new_ */;
- return _toStringBlockNumber(
- &m->basic.configuration_set_dispute_post_conclusion_acceptance_period_V1.new_,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 13072: /* module 51 call 16 */
- switch (itemIdx) {
- case 0: /* configuration_set_dispute_max_spam_slots_V1 - new_ */;
- return _toStringu32(
- &m->basic.configuration_set_dispute_max_spam_slots_V1.new_,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 13073: /* module 51 call 17 */
- switch (itemIdx) {
- case 0: /* configuration_set_dispute_conclusion_by_time_out_period_V1 - new_ */;
- return _toStringBlockNumber(
- &m->basic.configuration_set_dispute_conclusion_by_time_out_period_V1.new_,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 13074: /* module 51 call 18 */
- switch (itemIdx) {
- case 0: /* configuration_set_no_show_slots_V1 - new_ */;
- return _toStringu32(
- &m->basic.configuration_set_no_show_slots_V1.new_,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 13075: /* module 51 call 19 */
- switch (itemIdx) {
- case 0: /* configuration_set_n_delay_tranches_V1 - new_ */;
- return _toStringu32(
- &m->basic.configuration_set_n_delay_tranches_V1.new_,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 13076: /* module 51 call 20 */
- switch (itemIdx) {
- case 0: /* configuration_set_zeroth_delay_tranche_width_V1 - new_ */;
- return _toStringu32(
- &m->basic.configuration_set_zeroth_delay_tranche_width_V1.new_,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 13077: /* module 51 call 21 */
- switch (itemIdx) {
- case 0: /* configuration_set_needed_approvals_V1 - new_ */;
- return _toStringu32(
- &m->basic.configuration_set_needed_approvals_V1.new_,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 13078: /* module 51 call 22 */
- switch (itemIdx) {
- case 0: /* configuration_set_relay_vrf_modulo_samples_V1 - new_ */;
- return _toStringu32(
- &m->basic.configuration_set_relay_vrf_modulo_samples_V1.new_,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 13079: /* module 51 call 23 */
- switch (itemIdx) {
- case 0: /* configuration_set_max_upward_queue_count_V1 - new_ */;
- return _toStringu32(
- &m->basic.configuration_set_max_upward_queue_count_V1.new_,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 13080: /* module 51 call 24 */
- switch (itemIdx) {
- case 0: /* configuration_set_max_upward_queue_size_V1 - new_ */;
- return _toStringu32(
- &m->basic.configuration_set_max_upward_queue_size_V1.new_,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 13081: /* module 51 call 25 */
- switch (itemIdx) {
- case 0: /* configuration_set_max_downward_message_size_V1 - new_ */;
- return _toStringu32(
- &m->basic.configuration_set_max_downward_message_size_V1.new_,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 13082: /* module 51 call 26 */
- switch (itemIdx) {
- case 0: /* configuration_set_ump_service_total_weight_V1 - new_ */;
- return _toStringWeight_V1(
- &m->basic.configuration_set_ump_service_total_weight_V1.new_,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 13083: /* module 51 call 27 */
- switch (itemIdx) {
- case 0: /* configuration_set_max_upward_message_size_V1 - new_ */;
- return _toStringu32(
- &m->basic.configuration_set_max_upward_message_size_V1.new_,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 13084: /* module 51 call 28 */
- switch (itemIdx) {
- case 0: /* configuration_set_max_upward_message_num_per_candidate_V1 - new_ */;
- return _toStringu32(
- &m->basic.configuration_set_max_upward_message_num_per_candidate_V1.new_,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 13085: /* module 51 call 29 */
- switch (itemIdx) {
- case 0: /* configuration_set_hrmp_open_request_ttl_V1 - new_ */;
- return _toStringu32(
- &m->basic.configuration_set_hrmp_open_request_ttl_V1.new_,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 13086: /* module 51 call 30 */
- switch (itemIdx) {
- case 0: /* configuration_set_hrmp_sender_deposit_V1 - new_ */;
- return _toStringBalance(
- &m->basic.configuration_set_hrmp_sender_deposit_V1.new_,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 13087: /* module 51 call 31 */
- switch (itemIdx) {
- case 0: /* configuration_set_hrmp_recipient_deposit_V1 - new_ */;
- return _toStringBalance(
- &m->basic.configuration_set_hrmp_recipient_deposit_V1.new_,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 13088: /* module 51 call 32 */
- switch (itemIdx) {
- case 0: /* configuration_set_hrmp_channel_max_capacity_V1 - new_ */;
- return _toStringu32(
- &m->basic.configuration_set_hrmp_channel_max_capacity_V1.new_,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 13089: /* module 51 call 33 */
- switch (itemIdx) {
- case 0: /* configuration_set_hrmp_channel_max_total_size_V1 - new_ */;
- return _toStringu32(
- &m->basic.configuration_set_hrmp_channel_max_total_size_V1.new_,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 13090: /* module 51 call 34 */
- switch (itemIdx) {
- case 0: /* configuration_set_hrmp_max_parachain_inbound_channels_V1 - new_ */;
- return _toStringu32(
- &m->basic.configuration_set_hrmp_max_parachain_inbound_channels_V1.new_,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 13091: /* module 51 call 35 */
- switch (itemIdx) {
- case 0: /* configuration_set_hrmp_max_parathread_inbound_channels_V1 - new_ */;
- return _toStringu32(
- &m->basic.configuration_set_hrmp_max_parathread_inbound_channels_V1.new_,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 13092: /* module 51 call 36 */
- switch (itemIdx) {
- case 0: /* configuration_set_hrmp_channel_max_message_size_V1 - new_ */;
- return _toStringu32(
- &m->basic.configuration_set_hrmp_channel_max_message_size_V1.new_,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 13093: /* module 51 call 37 */
- switch (itemIdx) {
- case 0: /* configuration_set_hrmp_max_parachain_outbound_channels_V1 - new_ */;
- return _toStringu32(
- &m->basic.configuration_set_hrmp_max_parachain_outbound_channels_V1.new_,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 13094: /* module 51 call 38 */
- switch (itemIdx) {
- case 0: /* configuration_set_hrmp_max_parathread_outbound_channels_V1 - new_ */;
- return _toStringu32(
- &m->basic.configuration_set_hrmp_max_parathread_outbound_channels_V1.new_,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 13095: /* module 51 call 39 */
- switch (itemIdx) {
- case 0: /* configuration_set_hrmp_max_message_num_per_candidate_V1 - new_ */;
- return _toStringu32(
- &m->basic.configuration_set_hrmp_max_message_num_per_candidate_V1.new_,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 13096: /* module 51 call 40 */
- switch (itemIdx) {
- case 0: /* configuration_set_ump_max_individual_weight_V1 - new_ */;
- return _toStringWeight_V1(
- &m->basic.configuration_set_ump_max_individual_weight_V1.new_,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 13097: /* module 51 call 41 */
- switch (itemIdx) {
- case 0: /* configuration_set_pvf_checking_enabled_V1 - new_ */;
- return _toStringbool(
- &m->basic.configuration_set_pvf_checking_enabled_V1.new_,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 13098: /* module 51 call 42 */
- switch (itemIdx) {
- case 0: /* configuration_set_pvf_voting_ttl_V1 - new_ */;
- return _toStringSessionIndex_V1(
- &m->basic.configuration_set_pvf_voting_ttl_V1.new_,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 13099: /* module 51 call 43 */
- switch (itemIdx) {
- case 0: /* configuration_set_minimum_validation_upgrade_delay_V1 - new_ */;
- return _toStringBlockNumber(
- &m->basic.configuration_set_minimum_validation_upgrade_delay_V1.new_,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 13100: /* module 51 call 44 */
- switch (itemIdx) {
- case 0: /* configuration_set_bypass_consistency_check_V1 - new_ */;
- return _toStringbool(
- &m->basic.configuration_set_bypass_consistency_check_V1.new_,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 14592: /* module 57 call 0 */
- switch (itemIdx) {
- case 0: /* initializer_force_approve_V1 - up_to */;
- return _toStringBlockNumber(
- &m->basic.initializer_force_approve_V1.up_to,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 15364: /* module 60 call 4 */
- switch (itemIdx) {
- case 0: /* hrmp_force_process_hrmp_open_V1 - channels */;
- return _toStringu32(
- &m->basic.hrmp_force_process_hrmp_open_V1.channels,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 15365: /* module 60 call 5 */
- switch (itemIdx) {
- case 0: /* hrmp_force_process_hrmp_close_V1 - channels */;
- return _toStringu32(
- &m->basic.hrmp_force_process_hrmp_close_V1.channels,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 15872: /* module 62 call 0 */
- switch (itemIdx) {
- default:
- return parser_no_data;
- }
- case 17925: /* module 70 call 5 */
- switch (itemIdx) {
- default:
- return parser_no_data;
- }
- case 18432: /* module 72 call 0 */
- switch (itemIdx) {
- case 0: /* auctions_new_auction_V1 - duration */;
- return _toStringCompactu32(
- &m->basic.auctions_new_auction_V1.duration,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 1: /* auctions_new_auction_V1 - lease_period_index */;
- return _toStringCompactu32(
- &m->basic.auctions_new_auction_V1.lease_period_index,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 18433: /* module 72 call 1 */
- switch (itemIdx) {
- case 0: /* auctions_bid_V1 - para */;
- return _toStringCompactu32(
- &m->basic.auctions_bid_V1.para,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 1: /* auctions_bid_V1 - auction_index */;
- return _toStringCompactu32(
- &m->basic.auctions_bid_V1.auction_index,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 2: /* auctions_bid_V1 - first_slot */;
- return _toStringCompactu32(
- &m->basic.auctions_bid_V1.first_slot,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 3: /* auctions_bid_V1 - last_slot */;
- return _toStringCompactu32(
- &m->basic.auctions_bid_V1.last_slot,
- outValue, outValueLen,
- pageIdx, pageCount);
- case 4: /* auctions_bid_V1 - amount */;
- return _toStringCompactBalance(
- &m->basic.auctions_bid_V1.amount,
- outValue, outValueLen,
- pageIdx, pageCount);
- default:
- return parser_no_data;
- }
- case 18434: /* module 72 call 2 */
- switch (itemIdx) {
- default:
- return parser_no_data;
- }
-#endif
- default:
- return parser_ok;
- }
-
- return parser_ok;
-}
-
-bool _getMethod_ItemIsExpert_V1(uint8_t moduleIdx, uint8_t callIdx, uint8_t itemIdx)
-{
- uint16_t callPrivIdx = ((uint16_t)moduleIdx << 8u) + callIdx;
-
- switch (callPrivIdx) {
- case 1539: // Staking:Withdraw Unbonded
- switch (itemIdx) {
- case 0: // Num slashing spans
- return true;
- default:
- return false;
- }
- case 1551: // Staking:Force unstake
- switch (itemIdx) {
- case 1: // Num slashing spans
- return true;
- default:
- return false;
- }
- case 1557: // Staking:Reap stash
- switch (itemIdx) {
- case 1: // Num slashing spans
- return true;
- default:
- return false;
- }
- case 10500: // NominationPools:Pool withdraw unbonded
- switch (itemIdx) {
- case 1: // Num slashing spans
- return true;
- default:
- return false;
- }
- case 10501: // NominationPools:Withdraw Unbonded
- switch (itemIdx) {
- case 1: // Num slashing spans
- return true;
- default:
- return false;
- }
-
- default:
- return false;
- }
-}
-
-bool _getMethod_IsNestingSupported_V1(uint8_t moduleIdx, uint8_t callIdx)
-{
- uint16_t callPrivIdx = ((uint16_t)moduleIdx << 8u) + callIdx;
-
- switch (callPrivIdx) {
- case 512: // Timestamp:Set
- case 768: // Indices:Claim
- case 769: // Indices:Transfer
- case 770: // Indices:Free
- case 771: // Indices:Force transfer
- case 772: // Indices:Freeze
- case 1028: // Balances:Transfer all
- case 1029: // Balances:Force unreserve
- case 1536: // Staking:Bond
- case 1537: // Staking:Bond extra
- case 1538: // Staking:Unbond
- case 1539: // Staking:Withdraw Unbonded
- case 1540: // Staking:Validate
- case 1541: // Staking:Nominate
- case 1542: // Staking:Chill
- case 1543: // Staking:Set payee
- case 1544: // Staking:Set controller
- case 1545: // Staking:Set validator count
- case 1546: // Staking:Increase validator count
- case 1548: // Staking:Force no eras
- case 1549: // Staking:Force new era
- case 1550: // Staking:Set invulnerables
- case 1551: // Staking:Force unstake
- case 1552: // Staking:Force new era always
- case 1553: // Staking:Cancel deferred slash
- case 1554: // Staking:Payout stakers
- case 1555: // Staking:Rebond
- case 1556: // Staking:Set history depth
- case 1557: // Staking:Reap stash
- case 1558: // Staking:Kick
- case 1560: // Staking:Chill other
- case 1561: // Staking:Force apply min commission
- case 2048: // Session:Set keys
- case 2049: // Session:Purge keys
- case 2562: // Grandpa:Note stalled
- case 3342: // Democracy:Note preimage
- case 3343: // Democracy:Note preimage operational
- case 3344: // Democracy:Note imminent preimage
- case 3345: // Democracy:Note imminent preimage operational
- case 3584: // Council:Set members
- case 3585: // Council:Execute
- case 3586: // Council:Propose
- case 3587: // Council:Vote
- case 3588: // Council:Close
- case 3589: // Council:Disapprove proposal
- case 3840: // TechnicalCommittee:Set members
- case 3841: // TechnicalCommittee:Execute
- case 3842: // TechnicalCommittee:Propose
- case 3843: // TechnicalCommittee:Vote
- case 3844: // TechnicalCommittee:Close
- case 3845: // TechnicalCommittee:Disapprove proposal
- case 4096: // PhragmenElection:Vote
- case 4097: // PhragmenElection:Remove voter
- case 4098: // PhragmenElection:Submit candidacy
- case 4100: // PhragmenElection:Remove member
- case 4101: // PhragmenElection:Clean defunct voters
- case 4352: // TechnicalMembership:Add member
- case 4353: // TechnicalMembership:Remove member
- case 4354: // TechnicalMembership:Swap member
- case 4355: // TechnicalMembership:Reset members
- case 4356: // TechnicalMembership:Change key
- case 4357: // TechnicalMembership:Set prime
- case 4358: // TechnicalMembership:Clear prime
- case 4608: // Treasury:Propose spend
- case 4609: // Treasury:Reject proposal
- case 4610: // Treasury:Approve proposal
- case 4611: // Treasury:Spend
- case 4612: // Treasury:Remove approval
- case 4864: // Claims:Claim
- case 4866: // Claims:Claim attest
- case 4867: // Claims:Attest
- case 4868: // Claims:Move claim
- case 6144: // Utility:Batch
- case 6146: // Utility:Batch all
- case 6148: // Utility:Force batch
- case 6400: // Identity:Add registrar
- case 6403: // Identity:Clear identity
- case 6404: // Identity:Request judgement
- case 6405: // Identity:Cancel request
- case 6406: // Identity:Set fee
- case 6407: // Identity:Set account id
- case 6410: // Identity:Kill identity
- case 6413: // Identity:Remove sub
- case 6414: // Identity:Quit sub
- case 6656: // Society:Bid
- case 6657: // Society:Unbid
- case 6658: // Society:Vouch
- case 6659: // Society:Unvouch
- case 6660: // Society:Vote
- case 6661: // Society:Defender vote
- case 6662: // Society:Payout
- case 6663: // Society:Found
- case 6664: // Society:Unfound
- case 6665: // Society:Judge suspended member
- case 6667: // Society:Set max members
- case 6913: // Recovery:Set recovered
- case 6915: // Recovery:Initiate recovery
- case 6916: // Recovery:Vouch recovery
- case 6917: // Recovery:Claim recovery
- case 6918: // Recovery:Close recovery
- case 6919: // Recovery:Remove recovery
- case 6920: // Recovery:Cancel recovered
- case 7168: // Vesting:Vest
- case 7169: // Vesting:Vest other
- case 7170: // Vesting:Vested transfer
- case 7171: // Vesting:Force vested transfer
- case 7172: // Vesting:Merge schedules
- case 7681: // Proxy:Add proxy
- case 7682: // Proxy:Remove proxy
- case 7683: // Proxy:Remove proxies
- case 7684: // Proxy:Anonymous
- case 7685: // Proxy:Kill anonymous
- case 7689: // Proxy:Proxy announced
- case 8192: // Preimage:Note preimage
- case 8193: // Preimage:Unnote preimage
- case 8194: // Preimage:Request preimage
- case 8195: // Preimage:Unrequest preimage
- case 8960: // Bounties:Propose bounty
- case 8961: // Bounties:Approve bounty
- case 8962: // Bounties:Propose curator
- case 8963: // Bounties:Unassign curator
- case 8964: // Bounties:Accept curator
- case 8965: // Bounties:Award bounty
- case 8966: // Bounties:Claim bounty
- case 8967: // Bounties:Close bounty
- case 8968: // Bounties:Extend bounty expiry
- case 10240: // ChildBounties:Add child bounty
- case 10241: // ChildBounties:Propose curator
- case 10242: // ChildBounties:Accept curator
- case 10243: // ChildBounties:Unassign curator
- case 10244: // ChildBounties:Award child bounty
- case 10245: // ChildBounties:Claim child bounty
- case 10246: // ChildBounties:Close child bounty
- case 9216: // Tips:Report awesome
- case 9217: // Tips:Retract tip
- case 9218: // Tips:Tip new
- case 9219: // Tips:Tip
- case 9220: // Tips:Close tip
- case 9221: // Tips:Slash tip
- case 9476: // ElectionProviderMultiPhase:Governance fallback
- case 9728: // Gilt:Place bid
- case 9729: // Gilt:Retract bid
- case 9730: // Gilt:Set target
- case 9731: // Gilt:Thaw
- case 9984: // VoterList:Rebag
- case 9985: // VoterList:Put in front of
- case 10496: // NominationPools:Join
- case 10497: // NominationPools:Bond extra
- case 10498: // NominationPools:Claim payout
- case 10499: // NominationPools:Unbond
- case 10500: // NominationPools:Pool withdraw unbonded
- case 10501: // NominationPools:Withdraw Unbonded
- case 10502: // NominationPools:Create
- case 10503: // NominationPools:Nominate
- case 10504: // NominationPools:Set state
- case 10505: // NominationPools:Set metadata
- case 10506: // NominationPools:Set configs
- case 10507: // NominationPools:Update roles
- case 10508: // NominationPools:Chill
- case 13056: // Configuration:Set validation upgrade cooldown
- case 13057: // Configuration:Set validation upgrade delay
- case 13058: // Configuration:Set code retention period
- case 13059: // Configuration:Set max code size
- case 13060: // Configuration:Set max pov size
- case 13061: // Configuration:Set max head data size
- case 13062: // Configuration:Set parathread cores
- case 13063: // Configuration:Set parathread retries
- case 13064: // Configuration:Set group rotation frequency
- case 13065: // Configuration:Set chain availability period
- case 13066: // Configuration:Set thread availability period
- case 13067: // Configuration:Set scheduling lookahead
- case 13068: // Configuration:Set max validators per core
- case 13069: // Configuration:Set max validators
- case 13070: // Configuration:Set dispute period
- case 13071: // Configuration:Set dispute post conclusion acceptance period
- case 13072: // Configuration:Set dispute max spam slots
- case 13073: // Configuration:Set dispute conclusion by time out period
- case 13074: // Configuration:Set no show slots
- case 13075: // Configuration:Set n delay tranches
- case 13076: // Configuration:Set zeroth delay tranche width
- case 13077: // Configuration:Set needed approvals
- case 13078: // Configuration:Set relay vrf modulo samples
- case 13079: // Configuration:Set max upward queue count
- case 13080: // Configuration:Set max upward queue size
- case 13081: // Configuration:Set max downward message size
- case 13082: // Configuration:Set ump service total weight
- case 13083: // Configuration:Set max upward message size
- case 13084: // Configuration:Set max upward message num per candidate
- case 13085: // Configuration:Set hrmp open request ttl
- case 13086: // Configuration:Set hrmp sender deposit
- case 13087: // Configuration:Set hrmp recipient deposit
- case 13088: // Configuration:Set hrmp channel max capacity
- case 13089: // Configuration:Set hrmp channel max total size
- case 13090: // Configuration:Set hrmp max parachain inbound channels
- case 13091: // Configuration:Set hrmp max parathread inbound channels
- case 13092: // Configuration:Set hrmp channel max message size
- case 13093: // Configuration:Set hrmp max parachain outbound channels
- case 13094: // Configuration:Set hrmp max parathread outbound channels
- case 13095: // Configuration:Set hrmp max message num per candidate
- case 13096: // Configuration:Set ump max individual weight
- case 13097: // Configuration:Set pvf checking enabled
- case 13098: // Configuration:Set pvf voting ttl
- case 13099: // Configuration:Set minimum validation upgrade delay
- case 13100: // Configuration:Set bypass consistency check
- case 14592: // Initializer:Force approve
- case 15364: // Hrmp:Force process hrmp open
- case 15365: // Hrmp:Force process hrmp close
- case 15872: // ParasDisputes:Force unfreeze
- case 17925: // Registrar:Reserve
- case 18432: // Auctions:New auction
- case 18433: // Auctions:Bid
- case 18434: // Auctions:Cancel auction
- case 18688: // Crowdloan:Create
- case 18689: // Crowdloan:Contribute
- case 18690: // Crowdloan:Withdraw
- case 18691: // Crowdloan:Refund
- case 18692: // Crowdloan:Dissolve
- case 18693: // Crowdloan:Edit
- case 18694: // Crowdloan:Add memo
- case 18695: // Crowdloan:Poke
- case 18696: // Crowdloan:Contribute all
- return false;
- default:
- return true;
- }
-}
\ No newline at end of file
diff --git a/app/src/substrate/substrate_functions.h b/app/src/substrate/substrate_functions.h
index f9758e1..9c195ce 100644
--- a/app/src/substrate/substrate_functions.h
+++ b/app/src/substrate/substrate_functions.h
@@ -1,5 +1,5 @@
/*******************************************************************************
- * (c) 2019 - 2022 Zondax AG
+ * (c) 2019 - 2023 Zondax AG
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -34,16 +34,131 @@ parser_error_t _readCompactu32(parser_context_t* c, pd_Compactu32_t* v);
parser_error_t _readCompactu64(parser_context_t* c, pd_Compactu64_t* v);
parser_error_t _readCallImpl(parser_context_t* c, pd_Call_t* v, pd_MethodNested_t* m);
+parser_error_t _readBytes(parser_context_t* c, pd_Bytes_t* v);
+parser_error_t _readFraction(parser_context_t* c, pd_Fraction_t* v);
+parser_error_t _readBodyId(parser_context_t* c, pd_BodyId_t* v);
+parser_error_t _readBodyPart(parser_context_t* c, pd_BodyPart_t* v);
+parser_error_t _readNetworkId(parser_context_t* c, pd_NetworkId_t* v);
+parser_error_t _readu8_array_20(parser_context_t* c, pd_u8_array_20_t* v);
+parser_error_t _readu8_array_32(parser_context_t* c, pd_u8_array_32_t* v);
+parser_error_t _readAccountId32(parser_context_t* c, pd_AccountId32_t* v);
+parser_error_t _readAccountIndex64(parser_context_t* c, pd_AccountIndex64_t* v);
+parser_error_t _readAccountKey20(parser_context_t* c, pd_AccountKey20_t* v);
+parser_error_t _readCompactu128(parser_context_t* c, pd_Compactu128_t* v);
+parser_error_t _readPlurality(parser_context_t* c, pd_Plurality_t* v);
+parser_error_t _readJunctionV0(parser_context_t* c, pd_JunctionV0_t* v);
+parser_error_t _readJunctionV1(parser_context_t* c, pd_JunctionV1_t* v);
+parser_error_t _readJunctionV0X1(parser_context_t* c, pd_JunctionV0X1_t* v);
+parser_error_t _readJunctionV0X2(parser_context_t* c, pd_JunctionV0X2_t* v);
+parser_error_t _readJunctionV0X3(parser_context_t* c, pd_JunctionV0X3_t* v);
+parser_error_t _readJunctionV0X4(parser_context_t* c, pd_JunctionV0X4_t* v);
+parser_error_t _readJunctionV0X5(parser_context_t* c, pd_JunctionV0X5_t* v);
+parser_error_t _readJunctionV0X6(parser_context_t* c, pd_JunctionV0X6_t* v);
+parser_error_t _readJunctionV0X7(parser_context_t* c, pd_JunctionV0X7_t* v);
+parser_error_t _readJunctionV0X8(parser_context_t* c, pd_JunctionV0X8_t* v);
+parser_error_t _readJunctionV1X1(parser_context_t* c, pd_JunctionV1X1_t* v);
+parser_error_t _readJunctionV1X2(parser_context_t* c, pd_JunctionV1X2_t* v);
+parser_error_t _readJunctionV1X3(parser_context_t* c, pd_JunctionV1X3_t* v);
+parser_error_t _readJunctionV1X4(parser_context_t* c, pd_JunctionV1X4_t* v);
+parser_error_t _readJunctionV1X5(parser_context_t* c, pd_JunctionV1X5_t* v);
+parser_error_t _readJunctionV1X6(parser_context_t* c, pd_JunctionV1X6_t* v);
+parser_error_t _readJunctionV1X7(parser_context_t* c, pd_JunctionV1X7_t* v);
+parser_error_t _readJunctionV1X8(parser_context_t* c, pd_JunctionV1X8_t* v);
+parser_error_t _readJunctionsV0(parser_context_t* c, pd_JunctionsV0_t* v);
+parser_error_t _readJunctionsV1(parser_context_t* c, pd_JunctionsV1_t* v);
+parser_error_t _readAssetInstance(parser_context_t* c, pd_AssetInstance_t* v);
+parser_error_t _readMultiLocationV0(parser_context_t* c, pd_MultiLocationV0_t* v);
+parser_error_t _readMultiLocationV1(parser_context_t* c, pd_MultiLocationV1_t* v);
+parser_error_t _readAbstractFungible(parser_context_t* c, pd_AbstractFungible_t* v);
+parser_error_t _readAbstractNonFungible(parser_context_t* c, pd_AbstractNonFungible_t* v);
parser_error_t _readBalance(parser_context_t* c, pd_Balance_t* v);
+parser_error_t _readConcreteFungible(parser_context_t* c, pd_ConcreteFungible_t* v);
+parser_error_t _readConcreteNonFungible(parser_context_t* c, pd_ConcreteNonFungible_t* v);
+parser_error_t _readData(parser_context_t* c, pd_Data_t* v);
+parser_error_t _readFungibility(parser_context_t* c, pd_Fungibility_t* v);
+parser_error_t _readMultiAssetId(parser_context_t* c, pd_MultiAssetId_t* v);
+parser_error_t _readAccountId(parser_context_t* c, pd_AccountId_t* v);
parser_error_t _readBalanceOf(parser_context_t* c, pd_BalanceOf_t* v);
-parser_error_t _readBytes(parser_context_t* c, pd_Bytes_t* v);
+parser_error_t _readCompactAccountIndex(parser_context_t* c, pd_CompactAccountIndex_t* v);
+parser_error_t _readEcdsaPublic(parser_context_t* c, pd_EcdsaPublic_t* v);
+parser_error_t _readEcdsaSignature(parser_context_t* c, pd_EcdsaSignature_t* v);
+parser_error_t _readEd25519Public(parser_context_t* c, pd_Ed25519Public_t* v);
+parser_error_t _readEd25519Signature(parser_context_t* c, pd_Ed25519Signature_t* v);
+parser_error_t _readH256(parser_context_t* c, pd_H256_t* v);
+parser_error_t _readMultiAssetV0(parser_context_t* c, pd_MultiAssetV0_t* v);
+parser_error_t _readMultiAssetV1(parser_context_t* c, pd_MultiAssetV1_t* v);
+parser_error_t _readSr25519Public(parser_context_t* c, pd_Sr25519Public_t* v);
+parser_error_t _readSr25519Signature(parser_context_t* c, pd_Sr25519Signature_t* v);
+parser_error_t _readTupleDataData(parser_context_t* c, pd_TupleDataData_t* v);
+parser_error_t _readVote(parser_context_t* c, pd_Vote_t* v);
+parser_error_t _readAccountIdLookupOfT(parser_context_t* c, pd_AccountIdLookupOfT_t* v);
+parser_error_t _readAccountVoteSplit(parser_context_t* c, pd_AccountVoteSplit_t* v);
+parser_error_t _readAccountVoteStandard(parser_context_t* c, pd_AccountVoteStandard_t* v);
parser_error_t _readCall(parser_context_t* c, pd_Call_t* v);
+parser_error_t _readClassOf(parser_context_t* c, pd_ClassOf_t* v);
+parser_error_t _readCompactPerBill(parser_context_t* c, pd_CompactPerBill_t* v);
+parser_error_t _readMultiSignature(parser_context_t* c, pd_MultiSignature_t* v);
+parser_error_t _readMultiSigner(parser_context_t* c, pd_MultiSigner_t* v);
+parser_error_t _readOptionu8_array_20(parser_context_t* c, pd_Optionu8_array_20_t* v);
+parser_error_t _readPerbill(parser_context_t* c, pd_Perbill_t* v);
+parser_error_t _readPercent(parser_context_t* c, pd_Percent_t* v);
+parser_error_t _readProxyType(parser_context_t* c, pd_ProxyType_t* v);
+parser_error_t _readReferendumIndex(parser_context_t* c, pd_ReferendumIndex_t* v);
+parser_error_t _readTimepoint(parser_context_t* c, pd_Timepoint_t* v);
+parser_error_t _readTupleAccountIdData(parser_context_t* c, pd_TupleAccountIdData_t* v);
+parser_error_t _readTupleH256u32(parser_context_t* c, pd_TupleH256u32_t* v);
+parser_error_t _readVecMultiAssetV0(parser_context_t* c, pd_VecMultiAssetV0_t* v);
+parser_error_t _readVecMultiAssetV1(parser_context_t* c, pd_VecMultiAssetV1_t* v);
+parser_error_t _readVecTupleDataData(parser_context_t* c, pd_VecTupleDataData_t* v);
+parser_error_t _readu128(parser_context_t* c, pd_u128_t* v);
+parser_error_t _readAccountVote(parser_context_t* c, pd_AccountVote_t* v);
+parser_error_t _readBondExtraBalanceOfT(parser_context_t* c, pd_BondExtraBalanceOfT_t* v);
+parser_error_t _readBoundedCallOfT(parser_context_t* c, pd_BoundedCallOfT_t* v);
+parser_error_t _readBoxVersionedMultiAssets(parser_context_t* c, pd_BoxVersionedMultiAssets_t* v);
+parser_error_t _readBoxVersionedMultiLocation(parser_context_t* c, pd_BoxVersionedMultiLocation_t* v);
+parser_error_t _readConfigOpAccountId(parser_context_t* c, pd_ConfigOpAccountId_t* v);
+parser_error_t _readConfigOpBalanceOfT(parser_context_t* c, pd_ConfigOpBalanceOfT_t* v);
+parser_error_t _readConfigOpPerbill(parser_context_t* c, pd_ConfigOpPerbill_t* v);
+parser_error_t _readConfigOpPercent(parser_context_t* c, pd_ConfigOpPercent_t* v);
+parser_error_t _readIdentityInfo(parser_context_t* c, pd_IdentityInfo_t* v);
+parser_error_t _readJudgementBalanceOfT(parser_context_t* c, pd_JudgementBalanceOfT_t* v);
+parser_error_t _readOptionMultiSignature(parser_context_t* c, pd_OptionMultiSignature_t* v);
+parser_error_t _readOptionMultiSigner(parser_context_t* c, pd_OptionMultiSigner_t* v);
+parser_error_t _readOptionTimepoint(parser_context_t* c, pd_OptionTimepoint_t* v);
parser_error_t _readProposal(parser_context_t* c, pd_Proposal_t* v);
+parser_error_t _readRewardDestination(parser_context_t* c, pd_RewardDestination_t* v);
+parser_error_t _readValidatorPrefs(parser_context_t* c, pd_ValidatorPrefs_t* v);
+parser_error_t _readVecAccountIdLookupOfT(parser_context_t* c, pd_VecAccountIdLookupOfT_t* v);
parser_error_t _readVecCall(parser_context_t* c, pd_VecCall_t* v);
-parser_error_t _readCompactu128(parser_context_t* c, pd_Compactu128_t* v);
-parser_error_t _readH256(parser_context_t* c, pd_H256_t* v);
+parser_error_t _readVecTupleAccountIdData(parser_context_t* c, pd_VecTupleAccountIdData_t* v);
+parser_error_t _readVestingInfo(parser_context_t* c, pd_VestingInfo_t* v);
+parser_error_t _readWeightLimit(parser_context_t* c, pd_WeightLimit_t* v);
+parser_error_t _readWeight(parser_context_t* c, pd_Weight_t* v);
+parser_error_t _readAccountIndex(parser_context_t* c, pd_AccountIndex_t* v);
+parser_error_t _readConfigOpu32(parser_context_t* c, pd_ConfigOpu32_t* v);
+parser_error_t _readConviction(parser_context_t* c, pd_Conviction_t* v);
+parser_error_t _readEraIndex(parser_context_t* c, pd_EraIndex_t* v);
+parser_error_t _readEthereumAddress(parser_context_t* c, pd_EthereumAddress_t* v);
parser_error_t _readHash(parser_context_t* c, pd_Hash_t* v);
+parser_error_t _readKeys(parser_context_t* c, pd_Keys_t* v);
+parser_error_t _readMemberCount(parser_context_t* c, pd_MemberCount_t* v);
+parser_error_t _readOptionAccountId(parser_context_t* c, pd_OptionAccountId_t* v);
+parser_error_t _readOptionClassOf(parser_context_t* c, pd_OptionClassOf_t* v);
+parser_error_t _readOptionProxyType(parser_context_t* c, pd_OptionProxyType_t* v);
+parser_error_t _readOptionReferendumIndex(parser_context_t* c, pd_OptionReferendumIndex_t* v);
+parser_error_t _readOptionu128(parser_context_t* c, pd_Optionu128_t* v);
parser_error_t _readOptionu32(parser_context_t* c, pd_Optionu32_t* v);
+parser_error_t _readOverweightIndex(parser_context_t* c, pd_OverweightIndex_t* v);
+parser_error_t _readParaId(parser_context_t* c, pd_ParaId_t* v);
+parser_error_t _readPollIndexOf(parser_context_t* c, pd_PollIndexOf_t* v);
+parser_error_t _readPoolId(parser_context_t* c, pd_PoolId_t* v);
+parser_error_t _readPoolState(parser_context_t* c, pd_PoolState_t* v);
+parser_error_t _readPreimageHash(parser_context_t* c, pd_PreimageHash_t* v);
+parser_error_t _readRank(parser_context_t* c, pd_Rank_t* v);
+parser_error_t _readRegistrarIndex(parser_context_t* c, pd_RegistrarIndex_t* v);
+parser_error_t _readSessionIndex(parser_context_t* c, pd_SessionIndex_t* v);
+parser_error_t _readTrackIdOf(parser_context_t* c, pd_TrackIdOf_t* v);
+parser_error_t _readVecAccountId(parser_context_t* c, pd_VecAccountId_t* v);
parser_error_t _readVecu32(parser_context_t* c, pd_Vecu32_t* v);
parser_error_t _readVecu8(parser_context_t* c, pd_Vecu8_t* v);
@@ -105,6 +220,265 @@ parser_error_t _toStringCompactu64(
uint8_t pageIdx,
uint8_t* pageCount);
+parser_error_t _toStringBytes(
+ const pd_Bytes_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount);
+
+parser_error_t _toStringFraction(
+ const pd_Fraction_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount);
+
+parser_error_t _toStringBodyId(
+ const pd_BodyId_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount);
+
+parser_error_t _toStringBodyPart(
+ const pd_BodyPart_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount);
+
+parser_error_t _toStringNetworkId(
+ const pd_NetworkId_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount);
+
+parser_error_t _toStringu8_array_20(
+ const pd_u8_array_20_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount);
+
+parser_error_t _toStringu8_array_32(
+ const pd_u8_array_32_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount);
+
+parser_error_t _toStringAccountId32(
+ const pd_AccountId32_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount);
+
+parser_error_t _toStringAccountIndex64(
+ const pd_AccountIndex64_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount);
+
+parser_error_t _toStringAccountKey20(
+ const pd_AccountKey20_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount);
+
+parser_error_t _toStringCompactu128(
+ const pd_Compactu128_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount);
+
+parser_error_t _toStringPlurality(
+ const pd_Plurality_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount);
+
+parser_error_t _toStringJunctionV0(
+ const pd_JunctionV0_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount);
+
+parser_error_t _toStringJunctionV1(
+ const pd_JunctionV1_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount);
+
+parser_error_t _toStringJunctionV0X1(
+ const pd_JunctionV0X1_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount);
+
+parser_error_t _toStringJunctionV0X2(
+ const pd_JunctionV0X2_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount);
+
+parser_error_t _toStringJunctionV0X3(
+ const pd_JunctionV0X3_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount);
+
+parser_error_t _toStringJunctionV0X4(
+ const pd_JunctionV0X4_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount);
+
+parser_error_t _toStringJunctionV0X5(
+ const pd_JunctionV0X5_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount);
+
+parser_error_t _toStringJunctionV0X6(
+ const pd_JunctionV0X6_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount);
+
+parser_error_t _toStringJunctionV0X7(
+ const pd_JunctionV0X7_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount);
+
+parser_error_t _toStringJunctionV0X8(
+ const pd_JunctionV0X8_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount);
+
+parser_error_t _toStringJunctionV1X1(
+ const pd_JunctionV1X1_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount);
+
+parser_error_t _toStringJunctionV1X2(
+ const pd_JunctionV1X2_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount);
+
+parser_error_t _toStringJunctionV1X3(
+ const pd_JunctionV1X3_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount);
+
+parser_error_t _toStringJunctionV1X4(
+ const pd_JunctionV1X4_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount);
+
+parser_error_t _toStringJunctionV1X5(
+ const pd_JunctionV1X5_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount);
+
+parser_error_t _toStringJunctionV1X6(
+ const pd_JunctionV1X6_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount);
+
+parser_error_t _toStringJunctionV1X7(
+ const pd_JunctionV1X7_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount);
+
+parser_error_t _toStringJunctionV1X8(
+ const pd_JunctionV1X8_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount);
+
+parser_error_t _toStringJunctionsV0(
+ const pd_JunctionsV0_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount);
+
+parser_error_t _toStringJunctionsV1(
+ const pd_JunctionsV1_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount);
+
+parser_error_t _toStringAssetInstance(
+ const pd_AssetInstance_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount);
+
+parser_error_t _toStringMultiLocationV0(
+ const pd_MultiLocationV0_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount);
+
+parser_error_t _toStringMultiLocationV1(
+ const pd_MultiLocationV1_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount);
+
+parser_error_t _toStringAbstractFungible(
+ const pd_AbstractFungible_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount);
+
+parser_error_t _toStringAbstractNonFungible(
+ const pd_AbstractNonFungible_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount);
+
parser_error_t _toStringBalance(
const pd_Balance_t* v,
char* outValue,
@@ -112,6 +486,48 @@ parser_error_t _toStringBalance(
uint8_t pageIdx,
uint8_t* pageCount);
+parser_error_t _toStringConcreteFungible(
+ const pd_ConcreteFungible_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount);
+
+parser_error_t _toStringConcreteNonFungible(
+ const pd_ConcreteNonFungible_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount);
+
+parser_error_t _toStringData(
+ const pd_Data_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount);
+
+parser_error_t _toStringFungibility(
+ const pd_Fungibility_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount);
+
+parser_error_t _toStringMultiAssetId(
+ const pd_MultiAssetId_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount);
+
+parser_error_t _toStringAccountId(
+ const pd_AccountId_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount);
+
parser_error_t _toStringBalanceOf(
const pd_BalanceOf_t* v,
char* outValue,
@@ -119,36 +535,36 @@ parser_error_t _toStringBalanceOf(
uint8_t pageIdx,
uint8_t* pageCount);
-parser_error_t _toStringBytes(
- const pd_Bytes_t* v,
+parser_error_t _toStringCompactAccountIndex(
+ const pd_CompactAccountIndex_t* v,
char* outValue,
uint16_t outValueLen,
uint8_t pageIdx,
uint8_t* pageCount);
-parser_error_t _toStringCall(
- const pd_Call_t* v,
+parser_error_t _toStringEcdsaPublic(
+ const pd_EcdsaPublic_t* v,
char* outValue,
uint16_t outValueLen,
uint8_t pageIdx,
uint8_t* pageCount);
-parser_error_t _toStringProposal(
- const pd_Proposal_t* v,
+parser_error_t _toStringEcdsaSignature(
+ const pd_EcdsaSignature_t* v,
char* outValue,
uint16_t outValueLen,
uint8_t pageIdx,
uint8_t* pageCount);
-parser_error_t _toStringVecCall(
- const pd_VecCall_t* v,
+parser_error_t _toStringEd25519Public(
+ const pd_Ed25519Public_t* v,
char* outValue,
uint16_t outValueLen,
uint8_t pageIdx,
uint8_t* pageCount);
-parser_error_t _toStringCompactu128(
- const pd_Compactu128_t* v,
+parser_error_t _toStringEd25519Signature(
+ const pd_Ed25519Signature_t* v,
char* outValue,
uint16_t outValueLen,
uint8_t pageIdx,
@@ -161,15 +577,519 @@ parser_error_t _toStringH256(
uint8_t pageIdx,
uint8_t* pageCount);
-parser_error_t _toStringHash(
- const pd_Hash_t* v,
+parser_error_t _toStringMultiAssetV0(
+ const pd_MultiAssetV0_t* v,
char* outValue,
uint16_t outValueLen,
uint8_t pageIdx,
uint8_t* pageCount);
-parser_error_t _toStringOptionu32(
- const pd_Optionu32_t* v,
+parser_error_t _toStringMultiAssetV1(
+ const pd_MultiAssetV1_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount);
+
+parser_error_t _toStringSr25519Public(
+ const pd_Sr25519Public_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount);
+
+parser_error_t _toStringSr25519Signature(
+ const pd_Sr25519Signature_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount);
+
+parser_error_t _toStringTupleDataData(
+ const pd_TupleDataData_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount);
+
+parser_error_t _toStringVote(
+ const pd_Vote_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount);
+
+parser_error_t _toStringAccountIdLookupOfT(
+ const pd_AccountIdLookupOfT_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount);
+
+parser_error_t _toStringAccountVoteSplit(
+ const pd_AccountVoteSplit_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount);
+
+parser_error_t _toStringAccountVoteStandard(
+ const pd_AccountVoteStandard_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount);
+
+parser_error_t _toStringCall(
+ const pd_Call_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount);
+
+parser_error_t _toStringClassOf(
+ const pd_ClassOf_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount);
+
+parser_error_t _toStringCompactPerBill(
+ const pd_CompactPerBill_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount);
+
+parser_error_t _toStringMultiSignature(
+ const pd_MultiSignature_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount);
+
+parser_error_t _toStringMultiSigner(
+ const pd_MultiSigner_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount);
+
+parser_error_t _toStringOptionu8_array_20(
+ const pd_Optionu8_array_20_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount);
+
+parser_error_t _toStringPerbill(
+ const pd_Perbill_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount);
+
+parser_error_t _toStringPercent(
+ const pd_Percent_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount);
+
+parser_error_t _toStringProxyType(
+ const pd_ProxyType_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount);
+
+parser_error_t _toStringReferendumIndex(
+ const pd_ReferendumIndex_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount);
+
+parser_error_t _toStringTimepoint(
+ const pd_Timepoint_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount);
+
+parser_error_t _toStringTupleAccountIdData(
+ const pd_TupleAccountIdData_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount);
+
+parser_error_t _toStringTupleH256u32(
+ const pd_TupleH256u32_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount);
+
+parser_error_t _toStringVecMultiAssetV0(
+ const pd_VecMultiAssetV0_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount);
+
+parser_error_t _toStringVecMultiAssetV1(
+ const pd_VecMultiAssetV1_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount);
+
+parser_error_t _toStringVecTupleDataData(
+ const pd_VecTupleDataData_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount);
+
+parser_error_t _toStringu128(
+ const pd_u128_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount);
+
+parser_error_t _toStringAccountVote(
+ const pd_AccountVote_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount);
+
+parser_error_t _toStringBondExtraBalanceOfT(
+ const pd_BondExtraBalanceOfT_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount);
+
+parser_error_t _toStringBoundedCallOfT(
+ const pd_BoundedCallOfT_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount);
+
+parser_error_t _toStringBoxVersionedMultiAssets(
+ const pd_BoxVersionedMultiAssets_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount);
+
+parser_error_t _toStringBoxVersionedMultiLocation(
+ const pd_BoxVersionedMultiLocation_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount);
+
+parser_error_t _toStringConfigOpAccountId(
+ const pd_ConfigOpAccountId_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount);
+
+parser_error_t _toStringConfigOpBalanceOfT(
+ const pd_ConfigOpBalanceOfT_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount);
+
+parser_error_t _toStringConfigOpPerbill(
+ const pd_ConfigOpPerbill_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount);
+
+parser_error_t _toStringConfigOpPercent(
+ const pd_ConfigOpPercent_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount);
+
+parser_error_t _toStringIdentityInfo(
+ const pd_IdentityInfo_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount);
+
+parser_error_t _toStringJudgementBalanceOfT(
+ const pd_JudgementBalanceOfT_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount);
+
+parser_error_t _toStringOptionMultiSignature(
+ const pd_OptionMultiSignature_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount);
+
+parser_error_t _toStringOptionMultiSigner(
+ const pd_OptionMultiSigner_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount);
+
+parser_error_t _toStringOptionTimepoint(
+ const pd_OptionTimepoint_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount);
+
+parser_error_t _toStringProposal(
+ const pd_Proposal_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount);
+
+parser_error_t _toStringRewardDestination(
+ const pd_RewardDestination_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount);
+
+parser_error_t _toStringValidatorPrefs(
+ const pd_ValidatorPrefs_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount);
+
+parser_error_t _toStringVecAccountIdLookupOfT(
+ const pd_VecAccountIdLookupOfT_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount);
+
+parser_error_t _toStringVecCall(
+ const pd_VecCall_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount);
+
+parser_error_t _toStringVecTupleAccountIdData(
+ const pd_VecTupleAccountIdData_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount);
+
+parser_error_t _toStringVestingInfo(
+ const pd_VestingInfo_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount);
+
+parser_error_t _toStringWeightLimit(
+ const pd_WeightLimit_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount);
+
+parser_error_t _toStringWeight(
+ const pd_Weight_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount);
+
+parser_error_t _toStringAccountIndex(
+ const pd_AccountIndex_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount);
+
+parser_error_t _toStringConfigOpu32(
+ const pd_ConfigOpu32_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount);
+
+parser_error_t _toStringConviction(
+ const pd_Conviction_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount);
+
+parser_error_t _toStringEraIndex(
+ const pd_EraIndex_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount);
+
+parser_error_t _toStringEthereumAddress(
+ const pd_EthereumAddress_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount);
+
+parser_error_t _toStringHash(
+ const pd_Hash_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount);
+
+parser_error_t _toStringKeys(
+ const pd_Keys_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount);
+
+parser_error_t _toStringMemberCount(
+ const pd_MemberCount_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount);
+
+parser_error_t _toStringOptionAccountId(
+ const pd_OptionAccountId_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount);
+
+parser_error_t _toStringOptionClassOf(
+ const pd_OptionClassOf_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount);
+
+parser_error_t _toStringOptionProxyType(
+ const pd_OptionProxyType_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount);
+
+parser_error_t _toStringOptionReferendumIndex(
+ const pd_OptionReferendumIndex_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount);
+
+parser_error_t _toStringOptionu128(
+ const pd_Optionu128_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount);
+
+parser_error_t _toStringOptionu32(
+ const pd_Optionu32_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount);
+
+parser_error_t _toStringOverweightIndex(
+ const pd_OverweightIndex_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount);
+
+parser_error_t _toStringParaId(
+ const pd_ParaId_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount);
+
+parser_error_t _toStringPollIndexOf(
+ const pd_PollIndexOf_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount);
+
+parser_error_t _toStringPoolId(
+ const pd_PoolId_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount);
+
+parser_error_t _toStringPoolState(
+ const pd_PoolState_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount);
+
+parser_error_t _toStringPreimageHash(
+ const pd_PreimageHash_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount);
+
+parser_error_t _toStringRank(
+ const pd_Rank_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount);
+
+parser_error_t _toStringRegistrarIndex(
+ const pd_RegistrarIndex_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount);
+
+parser_error_t _toStringSessionIndex(
+ const pd_SessionIndex_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount);
+
+parser_error_t _toStringTrackIdOf(
+ const pd_TrackIdOf_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount);
+
+parser_error_t _toStringVecAccountId(
+ const pd_VecAccountId_t* v,
char* outValue,
uint16_t outValueLen,
uint8_t pageIdx,
diff --git a/app/src/substrate/substrate_functions_V1.h b/app/src/substrate/substrate_functions_V1.h
index f935147..a514d0b 100644
--- a/app/src/substrate/substrate_functions_V1.h
+++ b/app/src/substrate/substrate_functions_V1.h
@@ -1,5 +1,5 @@
/*******************************************************************************
- * (c) 2019 - 2022 Zondax AG
+ * (c) 2019 - 2023 Zondax AG
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -25,384 +25,7 @@ extern "C" {
#include
#include
-// Read functions
-parser_error_t _readAccountId_V1(parser_context_t* c, pd_AccountId_V1_t* v);
-parser_error_t _readAccountIndex_V1(parser_context_t* c, pd_AccountIndex_V1_t* v);
-parser_error_t _readAccountVoteSplit_V1(parser_context_t* c, pd_AccountVoteSplit_V1_t* v);
-parser_error_t _readAccountVoteStandard_V1(parser_context_t* c, pd_AccountVoteStandard_V1_t* v);
-parser_error_t _readAccountVote_V1(parser_context_t* c, pd_AccountVote_V1_t* v);
-parser_error_t _readBondExtraBalanceOfT_V1(parser_context_t* c, pd_BondExtraBalanceOfT_V1_t* v);
-parser_error_t _readCompactAccountIndex_V1(parser_context_t* c, pd_CompactAccountIndex_V1_t* v);
-parser_error_t _readCompactPerBill_V1(parser_context_t* c, pd_CompactPerBill_V1_t* v);
-parser_error_t _readConfigOpAccountId_V1(parser_context_t* c, pd_ConfigOpAccountId_V1_t* v);
-parser_error_t _readConfigOpBalanceOfT_V1(parser_context_t* c, pd_ConfigOpBalanceOfT_V1_t* v);
-parser_error_t _readConfigOpu32_V1(parser_context_t* c, pd_ConfigOpu32_V1_t* v);
-parser_error_t _readConviction_V1(parser_context_t* c, pd_Conviction_V1_t* v);
-parser_error_t _readEcdsaPublic_V1(parser_context_t* c, pd_EcdsaPublic_V1_t* v);
-parser_error_t _readEcdsaSignature_V1(parser_context_t* c, pd_EcdsaSignature_V1_t* v);
-parser_error_t _readEd25519Public_V1(parser_context_t* c, pd_Ed25519Public_V1_t* v);
-parser_error_t _readEd25519Signature_V1(parser_context_t* c, pd_Ed25519Signature_V1_t* v);
-parser_error_t _readEraIndex_V1(parser_context_t* c, pd_EraIndex_V1_t* v);
-parser_error_t _readEthereumAddress_V1(parser_context_t* c, pd_EthereumAddress_V1_t* v);
-parser_error_t _readKeys_V1(parser_context_t* c, pd_Keys_V1_t* v);
-parser_error_t _readLookupasStaticLookupSource_V1(parser_context_t* c, pd_LookupasStaticLookupSource_V1_t* v);
-parser_error_t _readMemberCount_V1(parser_context_t* c, pd_MemberCount_V1_t* v);
-parser_error_t _readMultiSignature_V1(parser_context_t* c, pd_MultiSignature_V1_t* v);
-parser_error_t _readMultiSigner_V1(parser_context_t* c, pd_MultiSigner_V1_t* v);
-parser_error_t _readOpaqueCall_V1(parser_context_t* c, pd_OpaqueCall_V1_t* v);
-parser_error_t _readOptionAccountId_V1(parser_context_t* c, pd_OptionAccountId_V1_t* v);
-parser_error_t _readOptionMultiSignature_V1(parser_context_t* c, pd_OptionMultiSignature_V1_t* v);
-parser_error_t _readOptionMultiSigner_V1(parser_context_t* c, pd_OptionMultiSigner_V1_t* v);
-parser_error_t _readOptionProxyType_V1(parser_context_t* c, pd_OptionProxyType_V1_t* v);
-parser_error_t _readOptionTimepoint_V1(parser_context_t* c, pd_OptionTimepoint_V1_t* v);
-parser_error_t _readParaId_V1(parser_context_t* c, pd_ParaId_V1_t* v);
-parser_error_t _readPerbill_V1(parser_context_t* c, pd_Perbill_V1_t* v);
-parser_error_t _readPoolId_V1(parser_context_t* c, pd_PoolId_V1_t* v);
-parser_error_t _readPoolState_V1(parser_context_t* c, pd_PoolState_V1_t* v);
-parser_error_t _readProxyType_V1(parser_context_t* c, pd_ProxyType_V1_t* v);
-parser_error_t _readReferendumIndex_V1(parser_context_t* c, pd_ReferendumIndex_V1_t* v);
-parser_error_t _readRegistrarIndex_V1(parser_context_t* c, pd_RegistrarIndex_V1_t* v);
-parser_error_t _readRewardDestination_V1(parser_context_t* c, pd_RewardDestination_V1_t* v);
-parser_error_t _readSessionIndex_V1(parser_context_t* c, pd_SessionIndex_V1_t* v);
-parser_error_t _readSr25519Public_V1(parser_context_t* c, pd_Sr25519Public_V1_t* v);
-parser_error_t _readSr25519Signature_V1(parser_context_t* c, pd_Sr25519Signature_V1_t* v);
-parser_error_t _readTimepoint_V1(parser_context_t* c, pd_Timepoint_V1_t* v);
-parser_error_t _readValidatorPrefs_V1(parser_context_t* c, pd_ValidatorPrefs_V1_t* v);
-parser_error_t _readVecAccountId_V1(parser_context_t* c, pd_VecAccountId_V1_t* v);
-parser_error_t _readVecLookupasStaticLookupSource_V1(parser_context_t* c, pd_VecLookupasStaticLookupSource_V1_t* v);
-parser_error_t _readVestingInfo_V1(parser_context_t* c, pd_VestingInfo_V1_t* v);
-parser_error_t _readVote_V1(parser_context_t* c, pd_Vote_V1_t* v);
-parser_error_t _readWeight_V1(parser_context_t* c, pd_Weight_V1_t* v);
-
-// toString functions
-parser_error_t _toStringAccountId_V1(
- const pd_AccountId_V1_t* v,
- char* outValue,
- uint16_t outValueLen,
- uint8_t pageIdx,
- uint8_t* pageCount);
-
-parser_error_t _toStringAccountIndex_V1(
- const pd_AccountIndex_V1_t* v,
- char* outValue,
- uint16_t outValueLen,
- uint8_t pageIdx,
- uint8_t* pageCount);
-
-parser_error_t _toStringAccountVoteSplit_V1(
- const pd_AccountVoteSplit_V1_t* v,
- char* outValue,
- uint16_t outValueLen,
- uint8_t pageIdx,
- uint8_t* pageCount);
-
-parser_error_t _toStringAccountVoteStandard_V1(
- const pd_AccountVoteStandard_V1_t* v,
- char* outValue,
- uint16_t outValueLen,
- uint8_t pageIdx,
- uint8_t* pageCount);
-
-parser_error_t _toStringAccountVote_V1(
- const pd_AccountVote_V1_t* v,
- char* outValue,
- uint16_t outValueLen,
- uint8_t pageIdx,
- uint8_t* pageCount);
-
-parser_error_t _toStringBondExtraBalanceOfT_V1(
- const pd_BondExtraBalanceOfT_V1_t* v,
- char* outValue,
- uint16_t outValueLen,
- uint8_t pageIdx,
- uint8_t* pageCount);
-
-parser_error_t _toStringCompactAccountIndex_V1(
- const pd_CompactAccountIndex_V1_t* v,
- char* outValue,
- uint16_t outValueLen,
- uint8_t pageIdx,
- uint8_t* pageCount);
-
-parser_error_t _toStringCompactPerBill_V1(
- const pd_CompactPerBill_V1_t* v,
- char* outValue,
- uint16_t outValueLen,
- uint8_t pageIdx,
- uint8_t* pageCount);
-
-parser_error_t _toStringConfigOpAccountId_V1(
- const pd_ConfigOpAccountId_V1_t* v,
- char* outValue,
- uint16_t outValueLen,
- uint8_t pageIdx,
- uint8_t* pageCount);
-
-parser_error_t _toStringConfigOpBalanceOfT_V1(
- const pd_ConfigOpBalanceOfT_V1_t* v,
- char* outValue,
- uint16_t outValueLen,
- uint8_t pageIdx,
- uint8_t* pageCount);
-
-parser_error_t _toStringConfigOpu32_V1(
- const pd_ConfigOpu32_V1_t* v,
- char* outValue,
- uint16_t outValueLen,
- uint8_t pageIdx,
- uint8_t* pageCount);
-
-parser_error_t _toStringConviction_V1(
- const pd_Conviction_V1_t* v,
- char* outValue,
- uint16_t outValueLen,
- uint8_t pageIdx,
- uint8_t* pageCount);
-
-parser_error_t _toStringEcdsaPublic_V1(
- const pd_EcdsaPublic_V1_t* v,
- char* outValue,
- uint16_t outValueLen,
- uint8_t pageIdx,
- uint8_t* pageCount);
-
-parser_error_t _toStringEcdsaSignature_V1(
- const pd_EcdsaSignature_V1_t* v,
- char* outValue,
- uint16_t outValueLen,
- uint8_t pageIdx,
- uint8_t* pageCount);
-
-parser_error_t _toStringEd25519Public_V1(
- const pd_Ed25519Public_V1_t* v,
- char* outValue,
- uint16_t outValueLen,
- uint8_t pageIdx,
- uint8_t* pageCount);
-
-parser_error_t _toStringEd25519Signature_V1(
- const pd_Ed25519Signature_V1_t* v,
- char* outValue,
- uint16_t outValueLen,
- uint8_t pageIdx,
- uint8_t* pageCount);
-
-parser_error_t _toStringEraIndex_V1(
- const pd_EraIndex_V1_t* v,
- char* outValue,
- uint16_t outValueLen,
- uint8_t pageIdx,
- uint8_t* pageCount);
-
-parser_error_t _toStringEthereumAddress_V1(
- const pd_EthereumAddress_V1_t* v,
- char* outValue,
- uint16_t outValueLen,
- uint8_t pageIdx,
- uint8_t* pageCount);
-
-parser_error_t _toStringKeys_V1(
- const pd_Keys_V1_t* v,
- char* outValue,
- uint16_t outValueLen,
- uint8_t pageIdx,
- uint8_t* pageCount);
-
-parser_error_t _toStringLookupasStaticLookupSource_V1(
- const pd_LookupasStaticLookupSource_V1_t* v,
- char* outValue,
- uint16_t outValueLen,
- uint8_t pageIdx,
- uint8_t* pageCount);
-
-parser_error_t _toStringMemberCount_V1(
- const pd_MemberCount_V1_t* v,
- char* outValue,
- uint16_t outValueLen,
- uint8_t pageIdx,
- uint8_t* pageCount);
-
-parser_error_t _toStringMultiSignature_V1(
- const pd_MultiSignature_V1_t* v,
- char* outValue,
- uint16_t outValueLen,
- uint8_t pageIdx,
- uint8_t* pageCount);
-
-parser_error_t _toStringMultiSigner_V1(
- const pd_MultiSigner_V1_t* v,
- char* outValue,
- uint16_t outValueLen,
- uint8_t pageIdx,
- uint8_t* pageCount);
-
-parser_error_t _toStringOpaqueCall_V1(
- const pd_OpaqueCall_V1_t* v,
- char* outValue,
- uint16_t outValueLen,
- uint8_t pageIdx,
- uint8_t* pageCount);
-
-parser_error_t _toStringOptionAccountId_V1(
- const pd_OptionAccountId_V1_t* v,
- char* outValue,
- uint16_t outValueLen,
- uint8_t pageIdx,
- uint8_t* pageCount);
-
-parser_error_t _toStringOptionMultiSignature_V1(
- const pd_OptionMultiSignature_V1_t* v,
- char* outValue,
- uint16_t outValueLen,
- uint8_t pageIdx,
- uint8_t* pageCount);
-
-parser_error_t _toStringOptionMultiSigner_V1(
- const pd_OptionMultiSigner_V1_t* v,
- char* outValue,
- uint16_t outValueLen,
- uint8_t pageIdx,
- uint8_t* pageCount);
-
-parser_error_t _toStringOptionProxyType_V1(
- const pd_OptionProxyType_V1_t* v,
- char* outValue,
- uint16_t outValueLen,
- uint8_t pageIdx,
- uint8_t* pageCount);
-
-parser_error_t _toStringOptionTimepoint_V1(
- const pd_OptionTimepoint_V1_t* v,
- char* outValue,
- uint16_t outValueLen,
- uint8_t pageIdx,
- uint8_t* pageCount);
-
-parser_error_t _toStringParaId_V1(
- const pd_ParaId_V1_t* v,
- char* outValue,
- uint16_t outValueLen,
- uint8_t pageIdx,
- uint8_t* pageCount);
-
-parser_error_t _toStringPerbill_V1(
- const pd_Perbill_V1_t* v,
- char* outValue,
- uint16_t outValueLen,
- uint8_t pageIdx,
- uint8_t* pageCount);
-
-parser_error_t _toStringPoolId_V1(
- const pd_PoolId_V1_t* v,
- char* outValue,
- uint16_t outValueLen,
- uint8_t pageIdx,
- uint8_t* pageCount);
-
-parser_error_t _toStringPoolState_V1(
- const pd_PoolState_V1_t* v,
- char* outValue,
- uint16_t outValueLen,
- uint8_t pageIdx,
- uint8_t* pageCount);
-
-parser_error_t _toStringProxyType_V1(
- const pd_ProxyType_V1_t* v,
- char* outValue,
- uint16_t outValueLen,
- uint8_t pageIdx,
- uint8_t* pageCount);
-
-parser_error_t _toStringReferendumIndex_V1(
- const pd_ReferendumIndex_V1_t* v,
- char* outValue,
- uint16_t outValueLen,
- uint8_t pageIdx,
- uint8_t* pageCount);
-
-parser_error_t _toStringRegistrarIndex_V1(
- const pd_RegistrarIndex_V1_t* v,
- char* outValue,
- uint16_t outValueLen,
- uint8_t pageIdx,
- uint8_t* pageCount);
-
-parser_error_t _toStringRewardDestination_V1(
- const pd_RewardDestination_V1_t* v,
- char* outValue,
- uint16_t outValueLen,
- uint8_t pageIdx,
- uint8_t* pageCount);
-
-parser_error_t _toStringSessionIndex_V1(
- const pd_SessionIndex_V1_t* v,
- char* outValue,
- uint16_t outValueLen,
- uint8_t pageIdx,
- uint8_t* pageCount);
-
-parser_error_t _toStringSr25519Public_V1(
- const pd_Sr25519Public_V1_t* v,
- char* outValue,
- uint16_t outValueLen,
- uint8_t pageIdx,
- uint8_t* pageCount);
-
-parser_error_t _toStringSr25519Signature_V1(
- const pd_Sr25519Signature_V1_t* v,
- char* outValue,
- uint16_t outValueLen,
- uint8_t pageIdx,
- uint8_t* pageCount);
-
-parser_error_t _toStringTimepoint_V1(
- const pd_Timepoint_V1_t* v,
- char* outValue,
- uint16_t outValueLen,
- uint8_t pageIdx,
- uint8_t* pageCount);
-
-parser_error_t _toStringValidatorPrefs_V1(
- const pd_ValidatorPrefs_V1_t* v,
- char* outValue,
- uint16_t outValueLen,
- uint8_t pageIdx,
- uint8_t* pageCount);
-
-parser_error_t _toStringVecAccountId_V1(
- const pd_VecAccountId_V1_t* v,
- char* outValue,
- uint16_t outValueLen,
- uint8_t pageIdx,
- uint8_t* pageCount);
-
-parser_error_t _toStringVecLookupasStaticLookupSource_V1(
- const pd_VecLookupasStaticLookupSource_V1_t* v,
- char* outValue,
- uint16_t outValueLen,
- uint8_t pageIdx,
- uint8_t* pageCount);
-
-parser_error_t _toStringVestingInfo_V1(
- const pd_VestingInfo_V1_t* v,
- char* outValue,
- uint16_t outValueLen,
- uint8_t pageIdx,
- uint8_t* pageCount);
-
-parser_error_t _toStringVote_V1(
- const pd_Vote_V1_t* v,
- char* outValue,
- uint16_t outValueLen,
- uint8_t pageIdx,
- uint8_t* pageCount);
-
-parser_error_t _toStringWeight_V1(
- const pd_Weight_V1_t* v,
- char* outValue,
- uint16_t outValueLen,
- uint8_t pageIdx,
- uint8_t* pageCount);
+// Versioned types functions for tx version V19
#ifdef __cplusplus
}
diff --git a/app/src/substrate/substrate_methods_V1.h b/app/src/substrate/substrate_methods_V1.h
index 0b9b5d2..e432002 100644
--- a/app/src/substrate/substrate_methods_V1.h
+++ b/app/src/substrate/substrate_methods_V1.h
@@ -1,5 +1,20 @@
/*******************************************************************************
- * (c) 2019 - 2022 Zondax AG
+* (c) 2019 - 2023 Zondax AG
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+********************************************************************************/
+/** ******************************************************************************
+ * (c) 2023 CapsuleCorp
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -12,7 +27,7 @@
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
- ********************************************************************************/
+ ******************************************************************************* */
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wextern-c-compat"
#pragma once
@@ -25,67 +40,53 @@ extern "C" {
#include "substrate_types_V1.h"
#include
#include
-
+#ifdef LEDGER_SPECIFIC
+#include "bolos_target.h"
+#endif
+//get pallet ID from developer -> extrinsics -> first 2 digit as hex -> convert to number
#define PD_CALL_SYSTEM_V1 0
-#define PD_CALL_TIMESTAMP_V1 2
-#define PD_CALL_INDICES_V1 3
+#define PD_CALL_TIMESTAMP_V1 3
#define PD_CALL_BALANCES_V1 4
-#define PD_CALL_STAKING_V1 6
-#define PD_CALL_SESSION_V1 8
-#define PD_CALL_GRANDPA_V1 10
-#define PD_CALL_DEMOCRACY_V1 13
-#define PD_CALL_COUNCIL_V1 14
-#define PD_CALL_TECHNICALCOMMITTEE_V1 15
-#define PD_CALL_PHRAGMENELECTION_V1 16
-#define PD_CALL_TECHNICALMEMBERSHIP_V1 17
-#define PD_CALL_TREASURY_V1 18
-#define PD_CALL_CLAIMS_V1 19
-#define PD_CALL_UTILITY_V1 24
-#define PD_CALL_IDENTITY_V1 25
-#define PD_CALL_SOCIETY_V1 26
-#define PD_CALL_RECOVERY_V1 27
-#define PD_CALL_VESTING_V1 28
-#define PD_CALL_PROXY_V1 30
-#define PD_CALL_MULTISIG_V1 31
-#define PD_CALL_PREIMAGE_V1 32
-#define PD_CALL_BOUNTIES_V1 35
-#define PD_CALL_CHILDBOUNTIES_V1 40
-#define PD_CALL_TIPS_V1 36
-#define PD_CALL_ELECTIONPROVIDERMULTIPHASE_V1 37
-#define PD_CALL_GILT_V1 38
-#define PD_CALL_VOTERLIST_V1 39
-#define PD_CALL_NOMINATIONPOOLS_V1 41
-#define PD_CALL_CONFIGURATION_V1 51
-#define PD_CALL_INITIALIZER_V1 57
-#define PD_CALL_HRMP_V1 60
-#define PD_CALL_PARASDISPUTES_V1 62
-#define PD_CALL_REGISTRAR_V1 70
-#define PD_CALL_AUCTIONS_V1 72
-#define PD_CALL_CROWDLOAN_V1 73
+#define PD_CALL_SESSION_V1 9
+#define PD_CALL_STAKING_V1 13
+#define PD_CALL_TECHNICALCOMMITTEE_V1 17
+#define PD_CALL_TECHNICALMEMBERSHIP_V1 18
+#define PD_CALL_MANDATE_V1 19
+#define PD_CALL_TREASURY_V1 20
+#define PD_CALL_UTILITY_V1 21
+#define PD_CALL_COUNCIL_V1 24
+#define PD_CALL_PHRAGMENELECTION_V1 25
+#define PD_CALL_MULTISIG_V1 27
+#define PD_CALL_IDENTITY_V1 28
+
+//---- old IDs -----
+// #define PD_CALL_SYSTEM_V1 0
+// #define PD_CALL_TIMESTAMP_V1 2
+// #define PD_CALL_BALANCES_V1 4
+// #define PD_CALL_SESSION_V1 8
+// #define PD_CALL_STAKING_V1 6
+// #define PD_CALL_TECHNICALCOMMITTEE_V1 15
+// #define PD_CALL_TECHNICALMEMBERSHIP_V1 17
+// #define PD_CALL_TREASURY_V1 18
+// #define PD_CALL_UTILITY_V1 24
+// #define PD_CALL_COUNCIL_V1 14
+// #define PD_CALL_DEMOCRACY_V1 13
+// #define PD_CALL_PHRAGMENELECTION_V1 16
+// #define PD_CALL_MULTISIG_V1 31
+// #define PD_CALL_IDENTITY_V1 25
+
#define PD_CALL_BALANCES_TRANSFER_ALL_V1 4
typedef struct {
- pd_LookupasStaticLookupSource_V1_t dest;
+ pd_AccountIdLookupOfT_t dest;
pd_bool_t keep_alive;
} pd_balances_transfer_all_V1_t;
-#define PD_CALL_STAKING_BOND_V1 0
-typedef struct {
- pd_LookupasStaticLookupSource_V1_t controller;
- pd_CompactBalance_t amount;
- pd_RewardDestination_V1_t payee;
-} pd_staking_bond_V1_t;
-
#define PD_CALL_STAKING_BOND_EXTRA_V1 1
typedef struct {
pd_CompactBalance_t amount;
} pd_staking_bond_extra_V1_t;
-#define PD_CALL_STAKING_UNBOND_V1 2
-typedef struct {
- pd_CompactBalance_t amount;
-} pd_staking_unbond_V1_t;
-
#define PD_CALL_STAKING_WITHDRAW_UNBONDED_V1 3
typedef struct {
pd_u32_t num_slashing_spans;
@@ -93,32 +94,18 @@ typedef struct {
#define PD_CALL_STAKING_VALIDATE_V1 4
typedef struct {
- pd_ValidatorPrefs_V1_t prefs;
+ pd_ValidatorPrefs_t prefs;
} pd_staking_validate_V1_t;
-#define PD_CALL_STAKING_NOMINATE_V1 5
-typedef struct {
- pd_VecLookupasStaticLookupSource_V1_t targets;
-} pd_staking_nominate_V1_t;
-
-#define PD_CALL_STAKING_CHILL_V1 6
-typedef struct {
-} pd_staking_chill_V1_t;
-
#define PD_CALL_STAKING_SET_PAYEE_V1 7
typedef struct {
- pd_RewardDestination_V1_t payee;
+ pd_RewardDestination_t payee;
} pd_staking_set_payee_V1_t;
-#define PD_CALL_STAKING_SET_CONTROLLER_V1 8
-typedef struct {
- pd_LookupasStaticLookupSource_V1_t controller;
-} pd_staking_set_controller_V1_t;
-
#define PD_CALL_STAKING_PAYOUT_STAKERS_V1 18
typedef struct {
- pd_AccountId_V1_t validator_stash;
- pd_EraIndex_V1_t era;
+ pd_AccountId_t validator_stash;
+ pd_EraIndex_t era;
} pd_staking_payout_stakers_V1_t;
#define PD_CALL_STAKING_REBOND_V1 19
@@ -128,7 +115,7 @@ typedef struct {
#define PD_CALL_SESSION_SET_KEYS_V1 0
typedef struct {
- pd_Keys_V1_t keys;
+ pd_Keys_t keys;
pd_Bytes_t proof;
} pd_session_set_keys_V1_t;
@@ -151,104 +138,18 @@ typedef struct {
pd_VecCall_t calls;
} pd_utility_force_batch_V1_t;
-#define PD_CALL_CROWDLOAN_CREATE_V1 0
-typedef struct {
- pd_Compactu32_t index;
- pd_Compactu128_t cap;
- pd_Compactu32_t first_period;
- pd_Compactu32_t last_period;
- pd_Compactu32_t end;
- pd_OptionMultiSigner_V1_t verifier;
-} pd_crowdloan_create_V1_t;
-
-#define PD_CALL_CROWDLOAN_CONTRIBUTE_V1 1
-typedef struct {
- pd_Compactu32_t index;
- pd_Compactu128_t amount;
- pd_OptionMultiSignature_V1_t signature;
-} pd_crowdloan_contribute_V1_t;
-
-#define PD_CALL_CROWDLOAN_WITHDRAW_V1 2
-typedef struct {
- pd_AccountId_V1_t who;
- pd_Compactu32_t index;
-} pd_crowdloan_withdraw_V1_t;
-
-#define PD_CALL_CROWDLOAN_REFUND_V1 3
-typedef struct {
- pd_Compactu32_t index;
-} pd_crowdloan_refund_V1_t;
-
-#define PD_CALL_CROWDLOAN_DISSOLVE_V1 4
-typedef struct {
- pd_Compactu32_t index;
-} pd_crowdloan_dissolve_V1_t;
-
-#define PD_CALL_CROWDLOAN_EDIT_V1 5
-typedef struct {
- pd_Compactu32_t index;
- pd_Compactu128_t cap;
- pd_Compactu32_t first_period;
- pd_Compactu32_t last_period;
- pd_Compactu32_t end;
- pd_OptionMultiSigner_V1_t verifier;
-} pd_crowdloan_edit_V1_t;
-
-#define PD_CALL_CROWDLOAN_ADD_MEMO_V1 6
-typedef struct {
- pd_ParaId_V1_t index;
- pd_Vecu8_t memo;
-} pd_crowdloan_add_memo_V1_t;
-
-#define PD_CALL_CROWDLOAN_POKE_V1 7
-typedef struct {
- pd_ParaId_V1_t index;
-} pd_crowdloan_poke_V1_t;
-
-#define PD_CALL_CROWDLOAN_CONTRIBUTE_ALL_V1 8
-typedef struct {
- pd_Compactu32_t index;
- pd_OptionMultiSignature_V1_t signature;
-} pd_crowdloan_contribute_all_V1_t;
-
#ifdef SUBSTRATE_PARSER_FULL
+#ifndef TARGET_NANOS
+#endif
#define PD_CALL_TIMESTAMP_SET_V1 0
typedef struct {
pd_Compactu64_t now;
} pd_timestamp_set_V1_t;
-#define PD_CALL_INDICES_CLAIM_V1 0
-typedef struct {
- pd_AccountIndex_V1_t index;
-} pd_indices_claim_V1_t;
-
-#define PD_CALL_INDICES_TRANSFER_V1 1
-typedef struct {
- pd_AccountId_V1_t new_;
- pd_AccountIndex_V1_t index;
-} pd_indices_transfer_V1_t;
-
-#define PD_CALL_INDICES_FREE_V1 2
-typedef struct {
- pd_AccountIndex_V1_t index;
-} pd_indices_free_V1_t;
-
-#define PD_CALL_INDICES_FORCE_TRANSFER_V1 3
-typedef struct {
- pd_AccountId_V1_t new_;
- pd_AccountIndex_V1_t index;
- pd_bool_t freeze;
-} pd_indices_force_transfer_V1_t;
-
-#define PD_CALL_INDICES_FREEZE_V1 4
-typedef struct {
- pd_AccountIndex_V1_t index;
-} pd_indices_freeze_V1_t;
-
#define PD_CALL_BALANCES_FORCE_UNRESERVE_V1 5
typedef struct {
- pd_LookupasStaticLookupSource_V1_t who;
+ pd_AccountIdLookupOfT_t who;
pd_Balance_t amount;
} pd_balances_force_unreserve_V1_t;
@@ -262,6 +163,11 @@ typedef struct {
pd_Compactu32_t additional;
} pd_staking_increase_validator_count_V1_t;
+#define PD_CALL_STAKING_SCALE_VALIDATOR_COUNT_V1 11
+typedef struct {
+ pd_Percent_t factor;
+} pd_staking_scale_validator_count_V1_t;
+
#define PD_CALL_STAKING_FORCE_NO_ERAS_V1 12
typedef struct {
} pd_staking_force_no_eras_V1_t;
@@ -272,12 +178,12 @@ typedef struct {
#define PD_CALL_STAKING_SET_INVULNERABLES_V1 14
typedef struct {
- pd_VecAccountId_V1_t invulnerables;
+ pd_VecAccountId_t invulnerables;
} pd_staking_set_invulnerables_V1_t;
#define PD_CALL_STAKING_FORCE_UNSTAKE_V1 15
typedef struct {
- pd_AccountId_V1_t stash;
+ pd_AccountId_t stash;
pd_u32_t num_slashing_spans;
} pd_staking_force_unstake_V1_t;
@@ -285,70 +191,47 @@ typedef struct {
typedef struct {
} pd_staking_force_new_era_always_V1_t;
-#define PD_CALL_STAKING_CANCEL_DEFERRED_SLASH_V1 17
-typedef struct {
- pd_EraIndex_V1_t era;
- pd_Vecu32_t slash_indices;
-} pd_staking_cancel_deferred_slash_V1_t;
-
-#define PD_CALL_STAKING_SET_HISTORY_DEPTH_V1 20
-typedef struct {
- pd_Compactu32_t new_history_depth;
- pd_Compactu32_t era_items_deleted;
-} pd_staking_set_history_depth_V1_t;
-
-#define PD_CALL_STAKING_REAP_STASH_V1 21
+#define PD_CALL_STAKING_REAP_STASH_V1 20
typedef struct {
- pd_AccountId_V1_t stash;
+ pd_AccountId_t stash;
pd_u32_t num_slashing_spans;
} pd_staking_reap_stash_V1_t;
-#define PD_CALL_STAKING_KICK_V1 22
+#define PD_CALL_STAKING_KICK_V1 21
typedef struct {
- pd_VecLookupasStaticLookupSource_V1_t who;
+ pd_VecAccountIdLookupOfT_t who;
} pd_staking_kick_V1_t;
-#define PD_CALL_STAKING_CHILL_OTHER_V1 24
+#define PD_CALL_STAKING_SET_STAKING_CONFIGS_V1 22
typedef struct {
- pd_AccountId_V1_t controller;
-} pd_staking_chill_other_V1_t;
-
-#define PD_CALL_STAKING_FORCE_APPLY_MIN_COMMISSION_V1 25
-typedef struct {
- pd_AccountId_V1_t validator_stash;
-} pd_staking_force_apply_min_commission_V1_t;
+ pd_ConfigOpBalanceOfT_t min_nominator_bond;
+ pd_ConfigOpBalanceOfT_t min_validator_bond;
+ pd_ConfigOpu32_t max_nominator_count;
+ pd_ConfigOpu32_t max_validator_count;
+ pd_ConfigOpPercent_t chill_threshold;
+ pd_ConfigOpPerbill_t min_commission;
+} pd_staking_set_staking_configs_V1_t;
-#define PD_CALL_GRANDPA_NOTE_STALLED_V1 2
+#define PD_CALL_STAKING_CHILL_OTHER_V1 23
typedef struct {
- pd_BlockNumber_t delay;
- pd_BlockNumber_t best_finalized_block_number;
-} pd_grandpa_note_stalled_V1_t;
-
-#define PD_CALL_DEMOCRACY_NOTE_PREIMAGE_V1 14
-typedef struct {
- pd_Bytes_t encoded_proposal;
-} pd_democracy_note_preimage_V1_t;
-
-#define PD_CALL_DEMOCRACY_NOTE_PREIMAGE_OPERATIONAL_V1 15
-typedef struct {
- pd_Bytes_t encoded_proposal;
-} pd_democracy_note_preimage_operational_V1_t;
+ pd_AccountId_t controller;
+} pd_staking_chill_other_V1_t;
-#define PD_CALL_DEMOCRACY_NOTE_IMMINENT_PREIMAGE_V1 16
+#define PD_CALL_STAKING_FORCE_APPLY_MIN_COMMISSION_V1 24
typedef struct {
- pd_Bytes_t encoded_proposal;
-} pd_democracy_note_imminent_preimage_V1_t;
+ pd_AccountId_t validator_stash;
+} pd_staking_force_apply_min_commission_V1_t;
-#define PD_CALL_DEMOCRACY_NOTE_IMMINENT_PREIMAGE_OPERATIONAL_V1 17
+#define PD_CALL_STAKING_SET_MIN_COMMISSION_V1 25
typedef struct {
- pd_Bytes_t encoded_proposal;
-} pd_democracy_note_imminent_preimage_operational_V1_t;
+ pd_Perbill_t new_;
+} pd_staking_set_min_commission_V1_t;
#define PD_CALL_COUNCIL_SET_MEMBERS_V1 0
typedef struct {
- pd_VecAccountId_V1_t new_members;
- pd_OptionAccountId_V1_t prime;
- pd_MemberCount_V1_t old_count;
+ pd_VecAccountId_t new_members;
+ pd_OptionAccountId_t prime;
+ pd_MemberCount_t old_count;
} pd_council_set_members_V1_t;
#define PD_CALL_COUNCIL_EXECUTE_V1 1
@@ -371,24 +254,32 @@ typedef struct {
pd_bool_t approve;
} pd_council_vote_V1_t;
-#define PD_CALL_COUNCIL_CLOSE_V1 4
+#define PD_CALL_COUNCIL_CLOSE_OLD_WEIGHT_V1 4
typedef struct {
pd_Hash_t proposal_hash;
pd_Compactu32_t index;
pd_Compactu64_t proposal_weight_bound;
pd_Compactu32_t length_bound;
-} pd_council_close_V1_t;
+} pd_council_close_old_weight_V1_t;
#define PD_CALL_COUNCIL_DISAPPROVE_PROPOSAL_V1 5
typedef struct {
pd_Hash_t proposal_hash;
} pd_council_disapprove_proposal_V1_t;
+#define PD_CALL_COUNCIL_CLOSE_V1 6
+typedef struct {
+ pd_Hash_t proposal_hash;
+ pd_Compactu32_t index;
+ pd_Weight_t proposal_weight_bound;
+ pd_Compactu32_t length_bound;
+} pd_council_close_V1_t;
+
#define PD_CALL_TECHNICALCOMMITTEE_SET_MEMBERS_V1 0
typedef struct {
- pd_VecAccountId_V1_t new_members;
- pd_OptionAccountId_V1_t prime;
- pd_MemberCount_V1_t old_count;
+ pd_VecAccountId_t new_members;
+ pd_OptionAccountId_t prime;
+ pd_MemberCount_t old_count;
} pd_technicalcommittee_set_members_V1_t;
#define PD_CALL_TECHNICALCOMMITTEE_EXECUTE_V1 1
@@ -411,23 +302,31 @@ typedef struct {
pd_bool_t approve;
} pd_technicalcommittee_vote_V1_t;
-#define PD_CALL_TECHNICALCOMMITTEE_CLOSE_V1 4
+#define PD_CALL_TECHNICALCOMMITTEE_CLOSE_OLD_WEIGHT_V1 4
typedef struct {
pd_Hash_t proposal_hash;
pd_Compactu32_t index;
pd_Compactu64_t proposal_weight_bound;
pd_Compactu32_t length_bound;
-} pd_technicalcommittee_close_V1_t;
+} pd_technicalcommittee_close_old_weight_V1_t;
#define PD_CALL_TECHNICALCOMMITTEE_DISAPPROVE_PROPOSAL_V1 5
typedef struct {
pd_Hash_t proposal_hash;
} pd_technicalcommittee_disapprove_proposal_V1_t;
+#define PD_CALL_TECHNICALCOMMITTEE_CLOSE_V1 6
+typedef struct {
+ pd_Hash_t proposal_hash;
+ pd_Compactu32_t index;
+ pd_Weight_t proposal_weight_bound;
+ pd_Compactu32_t length_bound;
+} pd_technicalcommittee_close_V1_t;
+
#define PD_CALL_PHRAGMENELECTION_VOTE_V1 0
typedef struct {
- pd_VecAccountId_V1_t votes;
- pd_Compactu128_t amount;
+ pd_VecAccountId_t votes;
+ pd_CompactBalance_t amount;
} pd_phragmenelection_vote_V1_t;
#define PD_CALL_PHRAGMENELECTION_REMOVE_VOTER_V1 1
@@ -441,7 +340,7 @@ typedef struct {
#define PD_CALL_PHRAGMENELECTION_REMOVE_MEMBER_V1 4
typedef struct {
- pd_LookupasStaticLookupSource_V1_t who;
+ pd_AccountIdLookupOfT_t who;
pd_bool_t slash_bond;
pd_bool_t rerun_election;
} pd_phragmenelection_remove_member_V1_t;
@@ -454,33 +353,33 @@ typedef struct {
#define PD_CALL_TECHNICALMEMBERSHIP_ADD_MEMBER_V1 0
typedef struct {
- pd_AccountId_V1_t who;
+ pd_AccountIdLookupOfT_t who;
} pd_technicalmembership_add_member_V1_t;
#define PD_CALL_TECHNICALMEMBERSHIP_REMOVE_MEMBER_V1 1
typedef struct {
- pd_AccountId_V1_t who;
+ pd_AccountIdLookupOfT_t who;
} pd_technicalmembership_remove_member_V1_t;
#define PD_CALL_TECHNICALMEMBERSHIP_SWAP_MEMBER_V1 2
typedef struct {
- pd_AccountId_V1_t remove;
- pd_AccountId_V1_t add;
+ pd_AccountIdLookupOfT_t remove;
+ pd_AccountIdLookupOfT_t add;
} pd_technicalmembership_swap_member_V1_t;
#define PD_CALL_TECHNICALMEMBERSHIP_RESET_MEMBERS_V1 3
typedef struct {
- pd_VecAccountId_V1_t members;
+ pd_VecAccountId_t members;
} pd_technicalmembership_reset_members_V1_t;
#define PD_CALL_TECHNICALMEMBERSHIP_CHANGE_KEY_V1 4
typedef struct {
- pd_AccountId_V1_t new_;
+ pd_AccountIdLookupOfT_t new_;
} pd_technicalmembership_change_key_V1_t;
#define PD_CALL_TECHNICALMEMBERSHIP_SET_PRIME_V1 5
typedef struct {
- pd_AccountId_V1_t who;
+ pd_AccountIdLookupOfT_t who;
} pd_technicalmembership_set_prime_V1_t;
#define PD_CALL_TECHNICALMEMBERSHIP_CLEAR_PRIME_V1 6
@@ -490,7 +389,7 @@ typedef struct {
#define PD_CALL_TREASURY_PROPOSE_SPEND_V1 0
typedef struct {
pd_CompactBalance_t amount;
- pd_LookupasStaticLookupSource_V1_t beneficiary;
+ pd_AccountIdLookupOfT_t beneficiary;
} pd_treasury_propose_spend_V1_t;
#define PD_CALL_TREASURY_REJECT_PROPOSAL_V1 1
@@ -506,7 +405,7 @@ typedef struct {
#define PD_CALL_TREASURY_SPEND_V1 3
typedef struct {
pd_CompactBalance_t amount;
- pd_LookupasStaticLookupSource_V1_t beneficiary;
+ pd_AccountIdLookupOfT_t beneficiary;
} pd_treasury_spend_V1_t;
#define PD_CALL_TREASURY_REMOVE_APPROVAL_V1 4
@@ -514,35 +413,31 @@ typedef struct {
pd_Compactu32_t proposal_id;
} pd_treasury_remove_approval_V1_t;
-#define PD_CALL_CLAIMS_CLAIM_V1 0
+#define PD_CALL_MANDATE_MANDATE_V1 0
typedef struct {
- pd_AccountId_V1_t dest;
- pd_EcdsaSignature_V1_t ethereum_signature;
-} pd_claims_claim_V1_t;
+ pd_Call_t call;
+} pd_mandate_mandate_V1_t;
-#define PD_CALL_CLAIMS_CLAIM_ATTEST_V1 2
+#define PD_CALL_UTILITY_WITH_WEIGHT_V1 5
typedef struct {
- pd_AccountId_V1_t dest;
- pd_EcdsaSignature_V1_t ethereum_signature;
- pd_Bytes_t statement;
-} pd_claims_claim_attest_V1_t;
+ pd_Call_t call;
+ pd_Weight_t weight;
+} pd_utility_with_weight_V1_t;
-#define PD_CALL_CLAIMS_ATTEST_V1 3
+#define PD_CALL_IDENTITY_ADD_REGISTRAR_V1 0
typedef struct {
- pd_Bytes_t statement;
-} pd_claims_attest_V1_t;
+ pd_AccountIdLookupOfT_t account;
+} pd_identity_add_registrar_V1_t;
-#define PD_CALL_CLAIMS_MOVE_CLAIM_V1 4
+#define PD_CALL_IDENTITY_SET_IDENTITY_V1 1
typedef struct {
- pd_EthereumAddress_V1_t old;
- pd_EthereumAddress_V1_t new_;
- pd_OptionAccountId_V1_t maybe_preclaim;
-} pd_claims_move_claim_V1_t;
+ pd_IdentityInfo_t info;
+} pd_identity_set_identity_V1_t;
-#define PD_CALL_IDENTITY_ADD_REGISTRAR_V1 0
+#define PD_CALL_IDENTITY_SET_SUBS_V1 2
typedef struct {
- pd_AccountId_V1_t account;
-} pd_identity_add_registrar_V1_t;
+ pd_VecTupleAccountIdData_t subs;
+} pd_identity_set_subs_V1_t;
#define PD_CALL_IDENTITY_CLEAR_IDENTITY_V1 3
typedef struct {
@@ -556,7 +451,7 @@ typedef struct {
#define PD_CALL_IDENTITY_CANCEL_REQUEST_V1 5
typedef struct {
- pd_RegistrarIndex_V1_t reg_index;
+ pd_RegistrarIndex_t reg_index;
} pd_identity_cancel_request_V1_t;
#define PD_CALL_IDENTITY_SET_FEE_V1 6
@@ -568,737 +463,51 @@ typedef struct {
#define PD_CALL_IDENTITY_SET_ACCOUNT_ID_V1 7
typedef struct {
pd_Compactu32_t index;
- pd_AccountId_V1_t new_;
+ pd_AccountIdLookupOfT_t new_;
} pd_identity_set_account_id_V1_t;
-#define PD_CALL_IDENTITY_KILL_IDENTITY_V1 10
-typedef struct {
- pd_LookupasStaticLookupSource_V1_t target;
-} pd_identity_kill_identity_V1_t;
-
-#define PD_CALL_IDENTITY_REMOVE_SUB_V1 13
-typedef struct {
- pd_LookupasStaticLookupSource_V1_t sub;
-} pd_identity_remove_sub_V1_t;
-
-#define PD_CALL_IDENTITY_QUIT_SUB_V1 14
-typedef struct {
-} pd_identity_quit_sub_V1_t;
-
-#define PD_CALL_SOCIETY_BID_V1 0
-typedef struct {
- pd_BalanceOf_t amount;
-} pd_society_bid_V1_t;
-
-#define PD_CALL_SOCIETY_UNBID_V1 1
-typedef struct {
- pd_u32_t pos;
-} pd_society_unbid_V1_t;
-
-#define PD_CALL_SOCIETY_VOUCH_V1 2
-typedef struct {
- pd_AccountId_V1_t who;
- pd_BalanceOf_t amount;
- pd_BalanceOf_t tip;
-} pd_society_vouch_V1_t;
-
-#define PD_CALL_SOCIETY_UNVOUCH_V1 3
-typedef struct {
- pd_u32_t pos;
-} pd_society_unvouch_V1_t;
-
-#define PD_CALL_SOCIETY_VOTE_V1 4
-typedef struct {
- pd_LookupasStaticLookupSource_V1_t candidate;
- pd_bool_t approve;
-} pd_society_vote_V1_t;
-
-#define PD_CALL_SOCIETY_DEFENDER_VOTE_V1 5
-typedef struct {
- pd_bool_t approve;
-} pd_society_defender_vote_V1_t;
-
-#define PD_CALL_SOCIETY_PAYOUT_V1 6
-typedef struct {
-} pd_society_payout_V1_t;
-
-#define PD_CALL_SOCIETY_FOUND_V1 7
-typedef struct {
- pd_AccountId_V1_t founder;
- pd_u32_t max_members;
- pd_Bytes_t rules;
-} pd_society_found_V1_t;
-
-#define PD_CALL_SOCIETY_UNFOUND_V1 8
-typedef struct {
-} pd_society_unfound_V1_t;
-
-#define PD_CALL_SOCIETY_JUDGE_SUSPENDED_MEMBER_V1 9
-typedef struct {
- pd_AccountId_V1_t who;
- pd_bool_t forgive;
-} pd_society_judge_suspended_member_V1_t;
-
-#define PD_CALL_SOCIETY_SET_MAX_MEMBERS_V1 11
-typedef struct {
- pd_u32_t max;
-} pd_society_set_max_members_V1_t;
-
-#define PD_CALL_RECOVERY_SET_RECOVERED_V1 1
-typedef struct {
- pd_AccountId_V1_t lost;
- pd_AccountId_V1_t rescuer;
-} pd_recovery_set_recovered_V1_t;
-
-#define PD_CALL_RECOVERY_INITIATE_RECOVERY_V1 3
-typedef struct {
- pd_AccountId_V1_t account;
-} pd_recovery_initiate_recovery_V1_t;
-
-#define PD_CALL_RECOVERY_VOUCH_RECOVERY_V1 4
-typedef struct {
- pd_AccountId_V1_t lost;
- pd_AccountId_V1_t rescuer;
-} pd_recovery_vouch_recovery_V1_t;
-
-#define PD_CALL_RECOVERY_CLAIM_RECOVERY_V1 5
-typedef struct {
- pd_AccountId_V1_t account;
-} pd_recovery_claim_recovery_V1_t;
-
-#define PD_CALL_RECOVERY_CLOSE_RECOVERY_V1 6
-typedef struct {
- pd_AccountId_V1_t rescuer;
-} pd_recovery_close_recovery_V1_t;
-
-#define PD_CALL_RECOVERY_REMOVE_RECOVERY_V1 7
-typedef struct {
-} pd_recovery_remove_recovery_V1_t;
-
-#define PD_CALL_RECOVERY_CANCEL_RECOVERED_V1 8
-typedef struct {
- pd_AccountId_V1_t account;
-} pd_recovery_cancel_recovered_V1_t;
-
-#define PD_CALL_VESTING_VEST_V1 0
-typedef struct {
-} pd_vesting_vest_V1_t;
-
-#define PD_CALL_VESTING_VEST_OTHER_V1 1
-typedef struct {
- pd_LookupasStaticLookupSource_V1_t target;
-} pd_vesting_vest_other_V1_t;
-
-#define PD_CALL_VESTING_VESTED_TRANSFER_V1 2
-typedef struct {
- pd_LookupasStaticLookupSource_V1_t target;
- pd_VestingInfo_V1_t schedule;
-} pd_vesting_vested_transfer_V1_t;
-
-#define PD_CALL_VESTING_FORCE_VESTED_TRANSFER_V1 3
-typedef struct {
- pd_LookupasStaticLookupSource_V1_t source;
- pd_LookupasStaticLookupSource_V1_t target;
- pd_VestingInfo_V1_t schedule;
-} pd_vesting_force_vested_transfer_V1_t;
-
-#define PD_CALL_VESTING_MERGE_SCHEDULES_V1 4
-typedef struct {
- pd_u32_t schedule1_index;
- pd_u32_t schedule2_index;
-} pd_vesting_merge_schedules_V1_t;
-
-#define PD_CALL_PROXY_ADD_PROXY_V1 1
-typedef struct {
- pd_AccountId_V1_t delegate;
- pd_ProxyType_V1_t proxy_type;
- pd_BlockNumber_t delay;
-} pd_proxy_add_proxy_V1_t;
-
-#define PD_CALL_PROXY_REMOVE_PROXY_V1 2
-typedef struct {
- pd_AccountId_V1_t delegate;
- pd_ProxyType_V1_t proxy_type;
- pd_BlockNumber_t delay;
-} pd_proxy_remove_proxy_V1_t;
-
-#define PD_CALL_PROXY_REMOVE_PROXIES_V1 3
-typedef struct {
-} pd_proxy_remove_proxies_V1_t;
-
-#define PD_CALL_PROXY_ANONYMOUS_V1 4
-typedef struct {
- pd_ProxyType_V1_t proxy_type;
- pd_BlockNumber_t delay;
- pd_u16_t index;
-} pd_proxy_anonymous_V1_t;
-
-#define PD_CALL_PROXY_KILL_ANONYMOUS_V1 5
-typedef struct {
- pd_AccountId_V1_t spawner;
- pd_ProxyType_V1_t proxy_type;
- pd_u16_t index;
- pd_Compactu32_t height;
- pd_Compactu32_t ext_index;
-} pd_proxy_kill_anonymous_V1_t;
-
-#define PD_CALL_PROXY_PROXY_ANNOUNCED_V1 9
-typedef struct {
- pd_AccountId_V1_t delegate;
- pd_AccountId_V1_t real;
- pd_OptionProxyType_V1_t force_proxy_type;
- pd_Call_t call;
-} pd_proxy_proxy_announced_V1_t;
-
-#define PD_CALL_PREIMAGE_NOTE_PREIMAGE_V1 0
-typedef struct {
- pd_Vecu8_t bytes;
-} pd_preimage_note_preimage_V1_t;
-
-#define PD_CALL_PREIMAGE_UNNOTE_PREIMAGE_V1 1
-typedef struct {
- pd_Hash_t hash;
-} pd_preimage_unnote_preimage_V1_t;
-
-#define PD_CALL_PREIMAGE_REQUEST_PREIMAGE_V1 2
-typedef struct {
- pd_Hash_t hash;
-} pd_preimage_request_preimage_V1_t;
-
-#define PD_CALL_PREIMAGE_UNREQUEST_PREIMAGE_V1 3
-typedef struct {
- pd_Hash_t hash;
-} pd_preimage_unrequest_preimage_V1_t;
-
-#define PD_CALL_BOUNTIES_PROPOSE_BOUNTY_V1 0
-typedef struct {
- pd_CompactBalance_t amount;
- pd_Bytes_t description;
-} pd_bounties_propose_bounty_V1_t;
-
-#define PD_CALL_BOUNTIES_APPROVE_BOUNTY_V1 1
-typedef struct {
- pd_Compactu32_t bounty_id;
-} pd_bounties_approve_bounty_V1_t;
-
-#define PD_CALL_BOUNTIES_PROPOSE_CURATOR_V1 2
-typedef struct {
- pd_Compactu32_t bounty_id;
- pd_LookupasStaticLookupSource_V1_t curator;
- pd_CompactBalance_t fee;
-} pd_bounties_propose_curator_V1_t;
-
-#define PD_CALL_BOUNTIES_UNASSIGN_CURATOR_V1 3
-typedef struct {
- pd_Compactu32_t bounty_id;
-} pd_bounties_unassign_curator_V1_t;
-
-#define PD_CALL_BOUNTIES_ACCEPT_CURATOR_V1 4
-typedef struct {
- pd_Compactu32_t bounty_id;
-} pd_bounties_accept_curator_V1_t;
-
-#define PD_CALL_BOUNTIES_AWARD_BOUNTY_V1 5
-typedef struct {
- pd_Compactu32_t bounty_id;
- pd_LookupasStaticLookupSource_V1_t beneficiary;
-} pd_bounties_award_bounty_V1_t;
-
-#define PD_CALL_BOUNTIES_CLAIM_BOUNTY_V1 6
-typedef struct {
- pd_Compactu32_t bounty_id;
-} pd_bounties_claim_bounty_V1_t;
-
-#define PD_CALL_BOUNTIES_CLOSE_BOUNTY_V1 7
-typedef struct {
- pd_Compactu32_t bounty_id;
-} pd_bounties_close_bounty_V1_t;
-
-#define PD_CALL_BOUNTIES_EXTEND_BOUNTY_EXPIRY_V1 8
-typedef struct {
- pd_Compactu32_t bounty_id;
- pd_Bytes_t remark;
-} pd_bounties_extend_bounty_expiry_V1_t;
-
-#define PD_CALL_CHILDBOUNTIES_ADD_CHILD_BOUNTY_V1 0
-typedef struct {
- pd_Compactu32_t parent_bounty_id;
- pd_CompactBalance_t amount;
- pd_Vecu8_t description;
-} pd_childbounties_add_child_bounty_V1_t;
-
-#define PD_CALL_CHILDBOUNTIES_PROPOSE_CURATOR_V1 1
-typedef struct {
- pd_Compactu32_t parent_bounty_id;
- pd_Compactu32_t child_bounty_id;
- pd_LookupasStaticLookupSource_V1_t curator;
- pd_CompactBalance_t fee;
-} pd_childbounties_propose_curator_V1_t;
-
-#define PD_CALL_CHILDBOUNTIES_ACCEPT_CURATOR_V1 2
-typedef struct {
- pd_Compactu32_t parent_bounty_id;
- pd_Compactu32_t child_bounty_id;
-} pd_childbounties_accept_curator_V1_t;
-
-#define PD_CALL_CHILDBOUNTIES_UNASSIGN_CURATOR_V1 3
-typedef struct {
- pd_Compactu32_t parent_bounty_id;
- pd_Compactu32_t child_bounty_id;
-} pd_childbounties_unassign_curator_V1_t;
-
-#define PD_CALL_CHILDBOUNTIES_AWARD_CHILD_BOUNTY_V1 4
-typedef struct {
- pd_Compactu32_t parent_bounty_id;
- pd_Compactu32_t child_bounty_id;
- pd_LookupasStaticLookupSource_V1_t beneficiary;
-} pd_childbounties_award_child_bounty_V1_t;
-
-#define PD_CALL_CHILDBOUNTIES_CLAIM_CHILD_BOUNTY_V1 5
-typedef struct {
- pd_Compactu32_t parent_bounty_id;
- pd_Compactu32_t child_bounty_id;
-} pd_childbounties_claim_child_bounty_V1_t;
-
-#define PD_CALL_CHILDBOUNTIES_CLOSE_CHILD_BOUNTY_V1 6
-typedef struct {
- pd_Compactu32_t parent_bounty_id;
- pd_Compactu32_t child_bounty_id;
-} pd_childbounties_close_child_bounty_V1_t;
-
-#define PD_CALL_TIPS_REPORT_AWESOME_V1 0
-typedef struct {
- pd_Bytes_t reason;
- pd_AccountId_V1_t who;
-} pd_tips_report_awesome_V1_t;
-
-#define PD_CALL_TIPS_RETRACT_TIP_V1 1
-typedef struct {
- pd_Hash_t hash;
-} pd_tips_retract_tip_V1_t;
-
-#define PD_CALL_TIPS_TIP_NEW_V1 2
-typedef struct {
- pd_Bytes_t reason;
- pd_AccountId_V1_t who;
- pd_Compactu128_t tip_value;
-} pd_tips_tip_new_V1_t;
-
-#define PD_CALL_TIPS_TIP_V1 3
-typedef struct {
- pd_Hash_t hash;
- pd_Compactu128_t tip_value;
-} pd_tips_tip_V1_t;
-
-#define PD_CALL_TIPS_CLOSE_TIP_V1 4
-typedef struct {
- pd_Hash_t hash;
-} pd_tips_close_tip_V1_t;
-
-#define PD_CALL_TIPS_SLASH_TIP_V1 5
-typedef struct {
- pd_Hash_t hash;
-} pd_tips_slash_tip_V1_t;
-
-#define PD_CALL_ELECTIONPROVIDERMULTIPHASE_GOVERNANCE_FALLBACK_V1 4
-typedef struct {
- pd_Optionu32_t maybe_max_voters;
- pd_Optionu32_t maybe_max_targets;
-} pd_electionprovidermultiphase_governance_fallback_V1_t;
-
-#define PD_CALL_GILT_PLACE_BID_V1 0
-typedef struct {
- pd_CompactBalance_t amount;
- pd_u32_t duration;
-} pd_gilt_place_bid_V1_t;
-
-#define PD_CALL_GILT_RETRACT_BID_V1 1
-typedef struct {
- pd_CompactBalance_t amount;
- pd_u32_t duration;
-} pd_gilt_retract_bid_V1_t;
-
-#define PD_CALL_GILT_SET_TARGET_V1 2
+#define PD_CALL_IDENTITY_PROVIDE_JUDGEMENT_V1 9
typedef struct {
- pd_Compactu64_t target;
-} pd_gilt_set_target_V1_t;
-
-#define PD_CALL_GILT_THAW_V1 3
-typedef struct {
- pd_Compactu32_t index;
-} pd_gilt_thaw_V1_t;
-
-#define PD_CALL_VOTERLIST_REBAG_V1 0
-typedef struct {
- pd_AccountId_V1_t dislocated;
-} pd_voterlist_rebag_V1_t;
-
-#define PD_CALL_VOTERLIST_PUT_IN_FRONT_OF_V1 1
-typedef struct {
- pd_AccountId_V1_t lighter;
-} pd_voterlist_put_in_front_of_V1_t;
-
-#define PD_CALL_NOMINATIONPOOLS_JOIN_V1 0
-typedef struct {
- pd_Compactu128_t amount;
- pd_PoolId_V1_t pool_id;
-} pd_nominationpools_join_V1_t;
-
-#define PD_CALL_NOMINATIONPOOLS_BOND_EXTRA_V1 1
-typedef struct {
- pd_BondExtraBalanceOfT_V1_t extra;
-} pd_nominationpools_bond_extra_V1_t;
-
-#define PD_CALL_NOMINATIONPOOLS_CLAIM_PAYOUT_V1 2
-typedef struct {
-} pd_nominationpools_claim_payout_V1_t;
-
-#define PD_CALL_NOMINATIONPOOLS_UNBOND_V1 3
-typedef struct {
- pd_AccountId_V1_t member_account;
- pd_Compactu128_t unbonding_points;
-} pd_nominationpools_unbond_V1_t;
-
-#define PD_CALL_NOMINATIONPOOLS_POOL_WITHDRAW_UNBONDED_V1 4
-typedef struct {
- pd_PoolId_V1_t pool_id;
- pd_u32_t num_slashing_spans;
-} pd_nominationpools_pool_withdraw_unbonded_V1_t;
-
-#define PD_CALL_NOMINATIONPOOLS_WITHDRAW_UNBONDED_V1 5
-typedef struct {
- pd_AccountId_V1_t member_account;
- pd_u32_t num_slashing_spans;
-} pd_nominationpools_withdraw_unbonded_V1_t;
-
-#define PD_CALL_NOMINATIONPOOLS_CREATE_V1 6
-typedef struct {
- pd_Compactu128_t amount;
- pd_AccountId_V1_t root;
- pd_AccountId_V1_t nominator;
- pd_AccountId_V1_t state_toggler;
-} pd_nominationpools_create_V1_t;
-
-#define PD_CALL_NOMINATIONPOOLS_NOMINATE_V1 7
-typedef struct {
- pd_PoolId_V1_t pool_id;
- pd_VecAccountId_V1_t validators;
-} pd_nominationpools_nominate_V1_t;
-
-#define PD_CALL_NOMINATIONPOOLS_SET_STATE_V1 8
-typedef struct {
- pd_PoolId_V1_t pool_id;
- pd_PoolState_V1_t state;
-} pd_nominationpools_set_state_V1_t;
-
-#define PD_CALL_NOMINATIONPOOLS_SET_METADATA_V1 9
-typedef struct {
- pd_PoolId_V1_t pool_id;
- pd_Vecu8_t metadata;
-} pd_nominationpools_set_metadata_V1_t;
-
-#define PD_CALL_NOMINATIONPOOLS_SET_CONFIGS_V1 10
-typedef struct {
- pd_ConfigOpBalanceOfT_V1_t min_join_bond;
- pd_ConfigOpBalanceOfT_V1_t min_create_bond;
- pd_ConfigOpu32_V1_t max_pools;
- pd_ConfigOpu32_V1_t max_members;
- pd_ConfigOpu32_V1_t max_members_per_pool;
-} pd_nominationpools_set_configs_V1_t;
-
-#define PD_CALL_NOMINATIONPOOLS_UPDATE_ROLES_V1 11
-typedef struct {
- pd_PoolId_V1_t pool_id;
- pd_ConfigOpAccountId_V1_t new_root;
- pd_ConfigOpAccountId_V1_t new_nominator;
- pd_ConfigOpAccountId_V1_t new_state_toggler;
-} pd_nominationpools_update_roles_V1_t;
-
-#define PD_CALL_NOMINATIONPOOLS_CHILL_V1 12
-typedef struct {
- pd_PoolId_V1_t pool_id;
-} pd_nominationpools_chill_V1_t;
-
-#define PD_CALL_CONFIGURATION_SET_VALIDATION_UPGRADE_COOLDOWN_V1 0
-typedef struct {
- pd_BlockNumber_t new_;
-} pd_configuration_set_validation_upgrade_cooldown_V1_t;
-
-#define PD_CALL_CONFIGURATION_SET_VALIDATION_UPGRADE_DELAY_V1 1
-typedef struct {
- pd_BlockNumber_t new_;
-} pd_configuration_set_validation_upgrade_delay_V1_t;
-
-#define PD_CALL_CONFIGURATION_SET_CODE_RETENTION_PERIOD_V1 2
-typedef struct {
- pd_BlockNumber_t new_;
-} pd_configuration_set_code_retention_period_V1_t;
-
-#define PD_CALL_CONFIGURATION_SET_MAX_CODE_SIZE_V1 3
-typedef struct {
- pd_u32_t new_;
-} pd_configuration_set_max_code_size_V1_t;
-
-#define PD_CALL_CONFIGURATION_SET_MAX_POV_SIZE_V1 4
-typedef struct {
- pd_u32_t new_;
-} pd_configuration_set_max_pov_size_V1_t;
-
-#define PD_CALL_CONFIGURATION_SET_MAX_HEAD_DATA_SIZE_V1 5
-typedef struct {
- pd_u32_t new_;
-} pd_configuration_set_max_head_data_size_V1_t;
-
-#define PD_CALL_CONFIGURATION_SET_PARATHREAD_CORES_V1 6
-typedef struct {
- pd_u32_t new_;
-} pd_configuration_set_parathread_cores_V1_t;
-
-#define PD_CALL_CONFIGURATION_SET_PARATHREAD_RETRIES_V1 7
-typedef struct {
- pd_u32_t new_;
-} pd_configuration_set_parathread_retries_V1_t;
-
-#define PD_CALL_CONFIGURATION_SET_GROUP_ROTATION_FREQUENCY_V1 8
-typedef struct {
- pd_BlockNumber_t new_;
-} pd_configuration_set_group_rotation_frequency_V1_t;
-
-#define PD_CALL_CONFIGURATION_SET_CHAIN_AVAILABILITY_PERIOD_V1 9
-typedef struct {
- pd_BlockNumber_t new_;
-} pd_configuration_set_chain_availability_period_V1_t;
-
-#define PD_CALL_CONFIGURATION_SET_THREAD_AVAILABILITY_PERIOD_V1 10
-typedef struct {
- pd_BlockNumber_t new_;
-} pd_configuration_set_thread_availability_period_V1_t;
-
-#define PD_CALL_CONFIGURATION_SET_SCHEDULING_LOOKAHEAD_V1 11
-typedef struct {
- pd_u32_t new_;
-} pd_configuration_set_scheduling_lookahead_V1_t;
-
-#define PD_CALL_CONFIGURATION_SET_MAX_VALIDATORS_PER_CORE_V1 12
-typedef struct {
- pd_Optionu32_t new_;
-} pd_configuration_set_max_validators_per_core_V1_t;
-
-#define PD_CALL_CONFIGURATION_SET_MAX_VALIDATORS_V1 13
-typedef struct {
- pd_Optionu32_t new_;
-} pd_configuration_set_max_validators_V1_t;
-
-#define PD_CALL_CONFIGURATION_SET_DISPUTE_PERIOD_V1 14
-typedef struct {
- pd_SessionIndex_V1_t new_;
-} pd_configuration_set_dispute_period_V1_t;
-
-#define PD_CALL_CONFIGURATION_SET_DISPUTE_POST_CONCLUSION_ACCEPTANCE_PERIOD_V1 15
-typedef struct {
- pd_BlockNumber_t new_;
-} pd_configuration_set_dispute_post_conclusion_acceptance_period_V1_t;
-
-#define PD_CALL_CONFIGURATION_SET_DISPUTE_MAX_SPAM_SLOTS_V1 16
-typedef struct {
- pd_u32_t new_;
-} pd_configuration_set_dispute_max_spam_slots_V1_t;
-
-#define PD_CALL_CONFIGURATION_SET_DISPUTE_CONCLUSION_BY_TIME_OUT_PERIOD_V1 17
-typedef struct {
- pd_BlockNumber_t new_;
-} pd_configuration_set_dispute_conclusion_by_time_out_period_V1_t;
-
-#define PD_CALL_CONFIGURATION_SET_NO_SHOW_SLOTS_V1 18
-typedef struct {
- pd_u32_t new_;
-} pd_configuration_set_no_show_slots_V1_t;
-
-#define PD_CALL_CONFIGURATION_SET_N_DELAY_TRANCHES_V1 19
-typedef struct {
- pd_u32_t new_;
-} pd_configuration_set_n_delay_tranches_V1_t;
-
-#define PD_CALL_CONFIGURATION_SET_ZEROTH_DELAY_TRANCHE_WIDTH_V1 20
-typedef struct {
- pd_u32_t new_;
-} pd_configuration_set_zeroth_delay_tranche_width_V1_t;
-
-#define PD_CALL_CONFIGURATION_SET_NEEDED_APPROVALS_V1 21
-typedef struct {
- pd_u32_t new_;
-} pd_configuration_set_needed_approvals_V1_t;
-
-#define PD_CALL_CONFIGURATION_SET_RELAY_VRF_MODULO_SAMPLES_V1 22
-typedef struct {
- pd_u32_t new_;
-} pd_configuration_set_relay_vrf_modulo_samples_V1_t;
-
-#define PD_CALL_CONFIGURATION_SET_MAX_UPWARD_QUEUE_COUNT_V1 23
-typedef struct {
- pd_u32_t new_;
-} pd_configuration_set_max_upward_queue_count_V1_t;
-
-#define PD_CALL_CONFIGURATION_SET_MAX_UPWARD_QUEUE_SIZE_V1 24
-typedef struct {
- pd_u32_t new_;
-} pd_configuration_set_max_upward_queue_size_V1_t;
-
-#define PD_CALL_CONFIGURATION_SET_MAX_DOWNWARD_MESSAGE_SIZE_V1 25
-typedef struct {
- pd_u32_t new_;
-} pd_configuration_set_max_downward_message_size_V1_t;
-
-#define PD_CALL_CONFIGURATION_SET_UMP_SERVICE_TOTAL_WEIGHT_V1 26
-typedef struct {
- pd_Weight_V1_t new_;
-} pd_configuration_set_ump_service_total_weight_V1_t;
-
-#define PD_CALL_CONFIGURATION_SET_MAX_UPWARD_MESSAGE_SIZE_V1 27
-typedef struct {
- pd_u32_t new_;
-} pd_configuration_set_max_upward_message_size_V1_t;
-
-#define PD_CALL_CONFIGURATION_SET_MAX_UPWARD_MESSAGE_NUM_PER_CANDIDATE_V1 28
-typedef struct {
- pd_u32_t new_;
-} pd_configuration_set_max_upward_message_num_per_candidate_V1_t;
-
-#define PD_CALL_CONFIGURATION_SET_HRMP_OPEN_REQUEST_TTL_V1 29
-typedef struct {
- pd_u32_t new_;
-} pd_configuration_set_hrmp_open_request_ttl_V1_t;
-
-#define PD_CALL_CONFIGURATION_SET_HRMP_SENDER_DEPOSIT_V1 30
-typedef struct {
- pd_Balance_t new_;
-} pd_configuration_set_hrmp_sender_deposit_V1_t;
-
-#define PD_CALL_CONFIGURATION_SET_HRMP_RECIPIENT_DEPOSIT_V1 31
-typedef struct {
- pd_Balance_t new_;
-} pd_configuration_set_hrmp_recipient_deposit_V1_t;
-
-#define PD_CALL_CONFIGURATION_SET_HRMP_CHANNEL_MAX_CAPACITY_V1 32
-typedef struct {
- pd_u32_t new_;
-} pd_configuration_set_hrmp_channel_max_capacity_V1_t;
-
-#define PD_CALL_CONFIGURATION_SET_HRMP_CHANNEL_MAX_TOTAL_SIZE_V1 33
-typedef struct {
- pd_u32_t new_;
-} pd_configuration_set_hrmp_channel_max_total_size_V1_t;
-
-#define PD_CALL_CONFIGURATION_SET_HRMP_MAX_PARACHAIN_INBOUND_CHANNELS_V1 34
-typedef struct {
- pd_u32_t new_;
-} pd_configuration_set_hrmp_max_parachain_inbound_channels_V1_t;
-
-#define PD_CALL_CONFIGURATION_SET_HRMP_MAX_PARATHREAD_INBOUND_CHANNELS_V1 35
-typedef struct {
- pd_u32_t new_;
-} pd_configuration_set_hrmp_max_parathread_inbound_channels_V1_t;
-
-#define PD_CALL_CONFIGURATION_SET_HRMP_CHANNEL_MAX_MESSAGE_SIZE_V1 36
-typedef struct {
- pd_u32_t new_;
-} pd_configuration_set_hrmp_channel_max_message_size_V1_t;
-
-#define PD_CALL_CONFIGURATION_SET_HRMP_MAX_PARACHAIN_OUTBOUND_CHANNELS_V1 37
-typedef struct {
- pd_u32_t new_;
-} pd_configuration_set_hrmp_max_parachain_outbound_channels_V1_t;
-
-#define PD_CALL_CONFIGURATION_SET_HRMP_MAX_PARATHREAD_OUTBOUND_CHANNELS_V1 38
-typedef struct {
- pd_u32_t new_;
-} pd_configuration_set_hrmp_max_parathread_outbound_channels_V1_t;
-
-#define PD_CALL_CONFIGURATION_SET_HRMP_MAX_MESSAGE_NUM_PER_CANDIDATE_V1 39
-typedef struct {
- pd_u32_t new_;
-} pd_configuration_set_hrmp_max_message_num_per_candidate_V1_t;
-
-#define PD_CALL_CONFIGURATION_SET_UMP_MAX_INDIVIDUAL_WEIGHT_V1 40
-typedef struct {
- pd_Weight_V1_t new_;
-} pd_configuration_set_ump_max_individual_weight_V1_t;
-
-#define PD_CALL_CONFIGURATION_SET_PVF_CHECKING_ENABLED_V1 41
-typedef struct {
- pd_bool_t new_;
-} pd_configuration_set_pvf_checking_enabled_V1_t;
-
-#define PD_CALL_CONFIGURATION_SET_PVF_VOTING_TTL_V1 42
-typedef struct {
- pd_SessionIndex_V1_t new_;
-} pd_configuration_set_pvf_voting_ttl_V1_t;
-
-#define PD_CALL_CONFIGURATION_SET_MINIMUM_VALIDATION_UPGRADE_DELAY_V1 43
-typedef struct {
- pd_BlockNumber_t new_;
-} pd_configuration_set_minimum_validation_upgrade_delay_V1_t;
-
-#define PD_CALL_CONFIGURATION_SET_BYPASS_CONSISTENCY_CHECK_V1 44
-typedef struct {
- pd_bool_t new_;
-} pd_configuration_set_bypass_consistency_check_V1_t;
-
-#define PD_CALL_INITIALIZER_FORCE_APPROVE_V1 0
-typedef struct {
- pd_BlockNumber_t up_to;
-} pd_initializer_force_approve_V1_t;
-
-#define PD_CALL_HRMP_FORCE_PROCESS_HRMP_OPEN_V1 4
-typedef struct {
- pd_u32_t channels;
-} pd_hrmp_force_process_hrmp_open_V1_t;
-
-#define PD_CALL_HRMP_FORCE_PROCESS_HRMP_CLOSE_V1 5
-typedef struct {
- pd_u32_t channels;
-} pd_hrmp_force_process_hrmp_close_V1_t;
+ pd_Compactu32_t reg_index;
+ pd_AccountIdLookupOfT_t target;
+ pd_JudgementBalanceOfT_t judgement;
+ pd_Hash_t identity;
+} pd_identity_provide_judgement_V1_t;
-#define PD_CALL_PARASDISPUTES_FORCE_UNFREEZE_V1 0
+#define PD_CALL_IDENTITY_KILL_IDENTITY_V1 10
typedef struct {
-} pd_parasdisputes_force_unfreeze_V1_t;
+ pd_AccountIdLookupOfT_t target;
+} pd_identity_kill_identity_V1_t;
-#define PD_CALL_REGISTRAR_RESERVE_V1 5
+#define PD_CALL_IDENTITY_ADD_SUB_V1 11
typedef struct {
-} pd_registrar_reserve_V1_t;
+ pd_AccountIdLookupOfT_t sub;
+ pd_Data_t data;
+} pd_identity_add_sub_V1_t;
-#define PD_CALL_AUCTIONS_NEW_AUCTION_V1 0
+#define PD_CALL_IDENTITY_RENAME_SUB_V1 12
typedef struct {
- pd_Compactu32_t duration;
- pd_Compactu32_t lease_period_index;
-} pd_auctions_new_auction_V1_t;
+ pd_AccountIdLookupOfT_t sub;
+ pd_Data_t data;
+} pd_identity_rename_sub_V1_t;
-#define PD_CALL_AUCTIONS_BID_V1 1
+#define PD_CALL_IDENTITY_REMOVE_SUB_V1 13
typedef struct {
- pd_Compactu32_t para;
- pd_Compactu32_t auction_index;
- pd_Compactu32_t first_slot;
- pd_Compactu32_t last_slot;
- pd_CompactBalance_t amount;
-} pd_auctions_bid_V1_t;
+ pd_AccountIdLookupOfT_t sub;
+} pd_identity_remove_sub_V1_t;
-#define PD_CALL_AUCTIONS_CANCEL_AUCTION_V1 2
+#define PD_CALL_IDENTITY_QUIT_SUB_V1 14
typedef struct {
-} pd_auctions_cancel_auction_V1_t;
+} pd_identity_quit_sub_V1_t;
#endif
typedef union {
pd_balances_transfer_all_V1_t balances_transfer_all_V1;
- pd_staking_bond_V1_t staking_bond_V1;
pd_staking_bond_extra_V1_t staking_bond_extra_V1;
- pd_staking_unbond_V1_t staking_unbond_V1;
pd_staking_withdraw_unbonded_V1_t staking_withdraw_unbonded_V1;
pd_staking_validate_V1_t staking_validate_V1;
- pd_staking_nominate_V1_t staking_nominate_V1;
- pd_staking_chill_V1_t staking_chill_V1;
pd_staking_set_payee_V1_t staking_set_payee_V1;
- pd_staking_set_controller_V1_t staking_set_controller_V1;
pd_staking_payout_stakers_V1_t staking_payout_stakers_V1;
pd_staking_rebond_V1_t staking_rebond_V1;
pd_session_set_keys_V1_t session_set_keys_V1;
@@ -1306,53 +515,39 @@ typedef union {
pd_utility_batch_V1_t utility_batch_V1;
pd_utility_batch_all_V1_t utility_batch_all_V1;
pd_utility_force_batch_V1_t utility_force_batch_V1;
- pd_crowdloan_create_V1_t crowdloan_create_V1;
- pd_crowdloan_contribute_V1_t crowdloan_contribute_V1;
- pd_crowdloan_withdraw_V1_t crowdloan_withdraw_V1;
- pd_crowdloan_refund_V1_t crowdloan_refund_V1;
- pd_crowdloan_dissolve_V1_t crowdloan_dissolve_V1;
- pd_crowdloan_edit_V1_t crowdloan_edit_V1;
- pd_crowdloan_add_memo_V1_t crowdloan_add_memo_V1;
- pd_crowdloan_poke_V1_t crowdloan_poke_V1;
- pd_crowdloan_contribute_all_V1_t crowdloan_contribute_all_V1;
#ifdef SUBSTRATE_PARSER_FULL
+#ifndef TARGET_NANOS
+#endif
pd_timestamp_set_V1_t timestamp_set_V1;
- pd_indices_claim_V1_t indices_claim_V1;
- pd_indices_transfer_V1_t indices_transfer_V1;
- pd_indices_free_V1_t indices_free_V1;
- pd_indices_force_transfer_V1_t indices_force_transfer_V1;
- pd_indices_freeze_V1_t indices_freeze_V1;
pd_balances_force_unreserve_V1_t balances_force_unreserve_V1;
pd_staking_set_validator_count_V1_t staking_set_validator_count_V1;
pd_staking_increase_validator_count_V1_t staking_increase_validator_count_V1;
+ pd_staking_scale_validator_count_V1_t staking_scale_validator_count_V1;
pd_staking_force_no_eras_V1_t staking_force_no_eras_V1;
pd_staking_force_new_era_V1_t staking_force_new_era_V1;
pd_staking_set_invulnerables_V1_t staking_set_invulnerables_V1;
pd_staking_force_unstake_V1_t staking_force_unstake_V1;
pd_staking_force_new_era_always_V1_t staking_force_new_era_always_V1;
- pd_staking_cancel_deferred_slash_V1_t staking_cancel_deferred_slash_V1;
- pd_staking_set_history_depth_V1_t staking_set_history_depth_V1;
pd_staking_reap_stash_V1_t staking_reap_stash_V1;
pd_staking_kick_V1_t staking_kick_V1;
+ pd_staking_set_staking_configs_V1_t staking_set_staking_configs_V1;
pd_staking_chill_other_V1_t staking_chill_other_V1;
pd_staking_force_apply_min_commission_V1_t staking_force_apply_min_commission_V1;
- pd_grandpa_note_stalled_V1_t grandpa_note_stalled_V1;
- pd_democracy_note_preimage_V1_t democracy_note_preimage_V1;
- pd_democracy_note_preimage_operational_V1_t democracy_note_preimage_operational_V1;
- pd_democracy_note_imminent_preimage_V1_t democracy_note_imminent_preimage_V1;
- pd_democracy_note_imminent_preimage_operational_V1_t democracy_note_imminent_preimage_operational_V1;
+ pd_staking_set_min_commission_V1_t staking_set_min_commission_V1;
pd_council_set_members_V1_t council_set_members_V1;
pd_council_execute_V1_t council_execute_V1;
pd_council_propose_V1_t council_propose_V1;
pd_council_vote_V1_t council_vote_V1;
- pd_council_close_V1_t council_close_V1;
+ pd_council_close_old_weight_V1_t council_close_old_weight_V1;
pd_council_disapprove_proposal_V1_t council_disapprove_proposal_V1;
+ pd_council_close_V1_t council_close_V1;
pd_technicalcommittee_set_members_V1_t technicalcommittee_set_members_V1;
pd_technicalcommittee_execute_V1_t technicalcommittee_execute_V1;
pd_technicalcommittee_propose_V1_t technicalcommittee_propose_V1;
pd_technicalcommittee_vote_V1_t technicalcommittee_vote_V1;
- pd_technicalcommittee_close_V1_t technicalcommittee_close_V1;
+ pd_technicalcommittee_close_old_weight_V1_t technicalcommittee_close_old_weight_V1;
pd_technicalcommittee_disapprove_proposal_V1_t technicalcommittee_disapprove_proposal_V1;
+ pd_technicalcommittee_close_V1_t technicalcommittee_close_V1;
pd_phragmenelection_vote_V1_t phragmenelection_vote_V1;
pd_phragmenelection_remove_voter_V1_t phragmenelection_remove_voter_V1;
pd_phragmenelection_submit_candidacy_V1_t phragmenelection_submit_candidacy_V1;
@@ -1370,178 +565,75 @@ typedef union {
pd_treasury_approve_proposal_V1_t treasury_approve_proposal_V1;
pd_treasury_spend_V1_t treasury_spend_V1;
pd_treasury_remove_approval_V1_t treasury_remove_approval_V1;
- pd_claims_claim_V1_t claims_claim_V1;
- pd_claims_claim_attest_V1_t claims_claim_attest_V1;
- pd_claims_attest_V1_t claims_attest_V1;
- pd_claims_move_claim_V1_t claims_move_claim_V1;
+ pd_utility_with_weight_V1_t utility_with_weight_V1;
pd_identity_add_registrar_V1_t identity_add_registrar_V1;
+ pd_identity_set_identity_V1_t identity_set_identity_V1;
+ pd_identity_set_subs_V1_t identity_set_subs_V1;
pd_identity_clear_identity_V1_t identity_clear_identity_V1;
pd_identity_request_judgement_V1_t identity_request_judgement_V1;
pd_identity_cancel_request_V1_t identity_cancel_request_V1;
pd_identity_set_fee_V1_t identity_set_fee_V1;
pd_identity_set_account_id_V1_t identity_set_account_id_V1;
+ pd_identity_provide_judgement_V1_t identity_provide_judgement_V1;
pd_identity_kill_identity_V1_t identity_kill_identity_V1;
+ pd_identity_add_sub_V1_t identity_add_sub_V1;
+ pd_identity_rename_sub_V1_t identity_rename_sub_V1;
pd_identity_remove_sub_V1_t identity_remove_sub_V1;
pd_identity_quit_sub_V1_t identity_quit_sub_V1;
- pd_society_bid_V1_t society_bid_V1;
- pd_society_unbid_V1_t society_unbid_V1;
- pd_society_vouch_V1_t society_vouch_V1;
- pd_society_unvouch_V1_t society_unvouch_V1;
- pd_society_vote_V1_t society_vote_V1;
- pd_society_defender_vote_V1_t society_defender_vote_V1;
- pd_society_payout_V1_t society_payout_V1;
- pd_society_found_V1_t society_found_V1;
- pd_society_unfound_V1_t society_unfound_V1;
- pd_society_judge_suspended_member_V1_t society_judge_suspended_member_V1;
- pd_society_set_max_members_V1_t society_set_max_members_V1;
- pd_recovery_set_recovered_V1_t recovery_set_recovered_V1;
- pd_recovery_initiate_recovery_V1_t recovery_initiate_recovery_V1;
- pd_recovery_vouch_recovery_V1_t recovery_vouch_recovery_V1;
- pd_recovery_claim_recovery_V1_t recovery_claim_recovery_V1;
- pd_recovery_close_recovery_V1_t recovery_close_recovery_V1;
- pd_recovery_remove_recovery_V1_t recovery_remove_recovery_V1;
- pd_recovery_cancel_recovered_V1_t recovery_cancel_recovered_V1;
- pd_vesting_vest_V1_t vesting_vest_V1;
- pd_vesting_vest_other_V1_t vesting_vest_other_V1;
- pd_vesting_vested_transfer_V1_t vesting_vested_transfer_V1;
- pd_vesting_force_vested_transfer_V1_t vesting_force_vested_transfer_V1;
- pd_vesting_merge_schedules_V1_t vesting_merge_schedules_V1;
- pd_proxy_add_proxy_V1_t proxy_add_proxy_V1;
- pd_proxy_remove_proxy_V1_t proxy_remove_proxy_V1;
- pd_proxy_remove_proxies_V1_t proxy_remove_proxies_V1;
- pd_proxy_anonymous_V1_t proxy_anonymous_V1;
- pd_proxy_kill_anonymous_V1_t proxy_kill_anonymous_V1;
- pd_proxy_proxy_announced_V1_t proxy_proxy_announced_V1;
- pd_preimage_note_preimage_V1_t preimage_note_preimage_V1;
- pd_preimage_unnote_preimage_V1_t preimage_unnote_preimage_V1;
- pd_preimage_request_preimage_V1_t preimage_request_preimage_V1;
- pd_preimage_unrequest_preimage_V1_t preimage_unrequest_preimage_V1;
- pd_bounties_propose_bounty_V1_t bounties_propose_bounty_V1;
- pd_bounties_approve_bounty_V1_t bounties_approve_bounty_V1;
- pd_bounties_propose_curator_V1_t bounties_propose_curator_V1;
- pd_bounties_unassign_curator_V1_t bounties_unassign_curator_V1;
- pd_bounties_accept_curator_V1_t bounties_accept_curator_V1;
- pd_bounties_award_bounty_V1_t bounties_award_bounty_V1;
- pd_bounties_claim_bounty_V1_t bounties_claim_bounty_V1;
- pd_bounties_close_bounty_V1_t bounties_close_bounty_V1;
- pd_bounties_extend_bounty_expiry_V1_t bounties_extend_bounty_expiry_V1;
- pd_childbounties_add_child_bounty_V1_t childbounties_add_child_bounty_V1;
- pd_childbounties_propose_curator_V1_t childbounties_propose_curator_V1;
- pd_childbounties_accept_curator_V1_t childbounties_accept_curator_V1;
- pd_childbounties_unassign_curator_V1_t childbounties_unassign_curator_V1;
- pd_childbounties_award_child_bounty_V1_t childbounties_award_child_bounty_V1;
- pd_childbounties_claim_child_bounty_V1_t childbounties_claim_child_bounty_V1;
- pd_childbounties_close_child_bounty_V1_t childbounties_close_child_bounty_V1;
- pd_tips_report_awesome_V1_t tips_report_awesome_V1;
- pd_tips_retract_tip_V1_t tips_retract_tip_V1;
- pd_tips_tip_new_V1_t tips_tip_new_V1;
- pd_tips_tip_V1_t tips_tip_V1;
- pd_tips_close_tip_V1_t tips_close_tip_V1;
- pd_tips_slash_tip_V1_t tips_slash_tip_V1;
- pd_electionprovidermultiphase_governance_fallback_V1_t electionprovidermultiphase_governance_fallback_V1;
- pd_gilt_place_bid_V1_t gilt_place_bid_V1;
- pd_gilt_retract_bid_V1_t gilt_retract_bid_V1;
- pd_gilt_set_target_V1_t gilt_set_target_V1;
- pd_gilt_thaw_V1_t gilt_thaw_V1;
- pd_voterlist_rebag_V1_t voterlist_rebag_V1;
- pd_voterlist_put_in_front_of_V1_t voterlist_put_in_front_of_V1;
- pd_nominationpools_join_V1_t nominationpools_join_V1;
- pd_nominationpools_bond_extra_V1_t nominationpools_bond_extra_V1;
- pd_nominationpools_claim_payout_V1_t nominationpools_claim_payout_V1;
- pd_nominationpools_unbond_V1_t nominationpools_unbond_V1;
- pd_nominationpools_pool_withdraw_unbonded_V1_t nominationpools_pool_withdraw_unbonded_V1;
- pd_nominationpools_withdraw_unbonded_V1_t nominationpools_withdraw_unbonded_V1;
- pd_nominationpools_create_V1_t nominationpools_create_V1;
- pd_nominationpools_nominate_V1_t nominationpools_nominate_V1;
- pd_nominationpools_set_state_V1_t nominationpools_set_state_V1;
- pd_nominationpools_set_metadata_V1_t nominationpools_set_metadata_V1;
- pd_nominationpools_set_configs_V1_t nominationpools_set_configs_V1;
- pd_nominationpools_update_roles_V1_t nominationpools_update_roles_V1;
- pd_nominationpools_chill_V1_t nominationpools_chill_V1;
- pd_configuration_set_validation_upgrade_cooldown_V1_t configuration_set_validation_upgrade_cooldown_V1;
- pd_configuration_set_validation_upgrade_delay_V1_t configuration_set_validation_upgrade_delay_V1;
- pd_configuration_set_code_retention_period_V1_t configuration_set_code_retention_period_V1;
- pd_configuration_set_max_code_size_V1_t configuration_set_max_code_size_V1;
- pd_configuration_set_max_pov_size_V1_t configuration_set_max_pov_size_V1;
- pd_configuration_set_max_head_data_size_V1_t configuration_set_max_head_data_size_V1;
- pd_configuration_set_parathread_cores_V1_t configuration_set_parathread_cores_V1;
- pd_configuration_set_parathread_retries_V1_t configuration_set_parathread_retries_V1;
- pd_configuration_set_group_rotation_frequency_V1_t configuration_set_group_rotation_frequency_V1;
- pd_configuration_set_chain_availability_period_V1_t configuration_set_chain_availability_period_V1;
- pd_configuration_set_thread_availability_period_V1_t configuration_set_thread_availability_period_V1;
- pd_configuration_set_scheduling_lookahead_V1_t configuration_set_scheduling_lookahead_V1;
- pd_configuration_set_max_validators_per_core_V1_t configuration_set_max_validators_per_core_V1;
- pd_configuration_set_max_validators_V1_t configuration_set_max_validators_V1;
- pd_configuration_set_dispute_period_V1_t configuration_set_dispute_period_V1;
- pd_configuration_set_dispute_post_conclusion_acceptance_period_V1_t configuration_set_dispute_post_conclusion_acceptance_period_V1;
- pd_configuration_set_dispute_max_spam_slots_V1_t configuration_set_dispute_max_spam_slots_V1;
- pd_configuration_set_dispute_conclusion_by_time_out_period_V1_t configuration_set_dispute_conclusion_by_time_out_period_V1;
- pd_configuration_set_no_show_slots_V1_t configuration_set_no_show_slots_V1;
- pd_configuration_set_n_delay_tranches_V1_t configuration_set_n_delay_tranches_V1;
- pd_configuration_set_zeroth_delay_tranche_width_V1_t configuration_set_zeroth_delay_tranche_width_V1;
- pd_configuration_set_needed_approvals_V1_t configuration_set_needed_approvals_V1;
- pd_configuration_set_relay_vrf_modulo_samples_V1_t configuration_set_relay_vrf_modulo_samples_V1;
- pd_configuration_set_max_upward_queue_count_V1_t configuration_set_max_upward_queue_count_V1;
- pd_configuration_set_max_upward_queue_size_V1_t configuration_set_max_upward_queue_size_V1;
- pd_configuration_set_max_downward_message_size_V1_t configuration_set_max_downward_message_size_V1;
- pd_configuration_set_ump_service_total_weight_V1_t configuration_set_ump_service_total_weight_V1;
- pd_configuration_set_max_upward_message_size_V1_t configuration_set_max_upward_message_size_V1;
- pd_configuration_set_max_upward_message_num_per_candidate_V1_t configuration_set_max_upward_message_num_per_candidate_V1;
- pd_configuration_set_hrmp_open_request_ttl_V1_t configuration_set_hrmp_open_request_ttl_V1;
- pd_configuration_set_hrmp_sender_deposit_V1_t configuration_set_hrmp_sender_deposit_V1;
- pd_configuration_set_hrmp_recipient_deposit_V1_t configuration_set_hrmp_recipient_deposit_V1;
- pd_configuration_set_hrmp_channel_max_capacity_V1_t configuration_set_hrmp_channel_max_capacity_V1;
- pd_configuration_set_hrmp_channel_max_total_size_V1_t configuration_set_hrmp_channel_max_total_size_V1;
- pd_configuration_set_hrmp_max_parachain_inbound_channels_V1_t configuration_set_hrmp_max_parachain_inbound_channels_V1;
- pd_configuration_set_hrmp_max_parathread_inbound_channels_V1_t configuration_set_hrmp_max_parathread_inbound_channels_V1;
- pd_configuration_set_hrmp_channel_max_message_size_V1_t configuration_set_hrmp_channel_max_message_size_V1;
- pd_configuration_set_hrmp_max_parachain_outbound_channels_V1_t configuration_set_hrmp_max_parachain_outbound_channels_V1;
- pd_configuration_set_hrmp_max_parathread_outbound_channels_V1_t configuration_set_hrmp_max_parathread_outbound_channels_V1;
- pd_configuration_set_hrmp_max_message_num_per_candidate_V1_t configuration_set_hrmp_max_message_num_per_candidate_V1;
- pd_configuration_set_ump_max_individual_weight_V1_t configuration_set_ump_max_individual_weight_V1;
- pd_configuration_set_pvf_checking_enabled_V1_t configuration_set_pvf_checking_enabled_V1;
- pd_configuration_set_pvf_voting_ttl_V1_t configuration_set_pvf_voting_ttl_V1;
- pd_configuration_set_minimum_validation_upgrade_delay_V1_t configuration_set_minimum_validation_upgrade_delay_V1;
- pd_configuration_set_bypass_consistency_check_V1_t configuration_set_bypass_consistency_check_V1;
- pd_initializer_force_approve_V1_t initializer_force_approve_V1;
- pd_hrmp_force_process_hrmp_open_V1_t hrmp_force_process_hrmp_open_V1;
- pd_hrmp_force_process_hrmp_close_V1_t hrmp_force_process_hrmp_close_V1;
- pd_parasdisputes_force_unfreeze_V1_t parasdisputes_force_unfreeze_V1;
- pd_registrar_reserve_V1_t registrar_reserve_V1;
- pd_auctions_new_auction_V1_t auctions_new_auction_V1;
- pd_auctions_bid_V1_t auctions_bid_V1;
- pd_auctions_cancel_auction_V1_t auctions_cancel_auction_V1;
#endif
} pd_MethodBasic_V1_t;
#define PD_CALL_BALANCES_TRANSFER_V1 0
typedef struct {
- pd_LookupasStaticLookupSource_V1_t dest;
+ pd_AccountIdLookupOfT_t dest;
pd_CompactBalance_t amount;
} pd_balances_transfer_V1_t;
#define PD_CALL_BALANCES_FORCE_TRANSFER_V1 2
typedef struct {
- pd_LookupasStaticLookupSource_V1_t source;
- pd_LookupasStaticLookupSource_V1_t dest;
+ pd_AccountIdLookupOfT_t source;
+ pd_AccountIdLookupOfT_t dest;
pd_CompactBalance_t amount;
} pd_balances_force_transfer_V1_t;
#define PD_CALL_BALANCES_TRANSFER_KEEP_ALIVE_V1 3
typedef struct {
- pd_LookupasStaticLookupSource_V1_t dest;
+ pd_AccountIdLookupOfT_t dest;
pd_CompactBalance_t amount;
} pd_balances_transfer_keep_alive_V1_t;
-#ifdef SUBSTRATE_PARSER_FULL
-#define PD_CALL_SYSTEM_FILL_BLOCK_V1 0
+#define PD_CALL_STAKING_BOND_V1 0
typedef struct {
- pd_Perbill_V1_t ratio;
-} pd_system_fill_block_V1_t;
+ pd_AccountIdLookupOfT_t controller;
+ pd_CompactBalance_t amount;
+ pd_RewardDestination_t payee;
+} pd_staking_bond_V1_t;
+#define PD_CALL_STAKING_UNBOND_V1 2
+typedef struct {
+ pd_CompactBalance_t amount;
+} pd_staking_unbond_V1_t;
+
+#define PD_CALL_STAKING_NOMINATE_V1 5
+typedef struct {
+ pd_VecAccountIdLookupOfT_t targets;
+} pd_staking_nominate_V1_t;
+
+#define PD_CALL_STAKING_CHILL_V1 6
+typedef struct {
+} pd_staking_chill_V1_t;
+
+#define PD_CALL_STAKING_SET_CONTROLLER_V1 8
+typedef struct {
+ pd_AccountIdLookupOfT_t controller;
+} pd_staking_set_controller_V1_t;
+
+#ifdef SUBSTRATE_PARSER_FULL
+#ifndef TARGET_NANOS
+#endif
#define PD_CALL_SYSTEM_REMARK_V1 1
typedef struct {
- pd_Vecu8_t remark;
+ pd_Bytes_t remark;
} pd_system_remark_V1_t;
#define PD_CALL_SYSTEM_SET_HEAP_PAGES_V1 2
@@ -1561,161 +653,45 @@ typedef struct {
#define PD_CALL_SYSTEM_REMARK_WITH_EVENT_V1 8
typedef struct {
- pd_Vecu8_t remark;
+ pd_Bytes_t remark;
} pd_system_remark_with_event_V1_t;
#define PD_CALL_BALANCES_SET_BALANCE_V1 1
typedef struct {
- pd_LookupasStaticLookupSource_V1_t who;
+ pd_AccountIdLookupOfT_t who;
pd_CompactBalance_t new_free;
pd_CompactBalance_t new_reserved;
} pd_balances_set_balance_V1_t;
-#define PD_CALL_DEMOCRACY_PROPOSE_V1 0
-typedef struct {
- pd_Hash_t proposal_hash;
- pd_CompactBalance_t amount;
-} pd_democracy_propose_V1_t;
-
-#define PD_CALL_DEMOCRACY_SECOND_V1 1
-typedef struct {
- pd_Compactu32_t proposal;
- pd_Compactu32_t seconds_upper_bound;
-} pd_democracy_second_V1_t;
-
-#define PD_CALL_DEMOCRACY_VOTE_V1 2
-typedef struct {
- pd_Compactu32_t ref_index;
- pd_AccountVote_V1_t vote;
-} pd_democracy_vote_V1_t;
-
-#define PD_CALL_DEMOCRACY_EMERGENCY_CANCEL_V1 3
-typedef struct {
- pd_ReferendumIndex_V1_t ref_index;
-} pd_democracy_emergency_cancel_V1_t;
-
-#define PD_CALL_DEMOCRACY_EXTERNAL_PROPOSE_V1 4
-typedef struct {
- pd_Hash_t proposal_hash;
-} pd_democracy_external_propose_V1_t;
-
-#define PD_CALL_DEMOCRACY_EXTERNAL_PROPOSE_MAJORITY_V1 5
-typedef struct {
- pd_Hash_t proposal_hash;
-} pd_democracy_external_propose_majority_V1_t;
-
-#define PD_CALL_DEMOCRACY_EXTERNAL_PROPOSE_DEFAULT_V1 6
-typedef struct {
- pd_Hash_t proposal_hash;
-} pd_democracy_external_propose_default_V1_t;
-
-#define PD_CALL_DEMOCRACY_FAST_TRACK_V1 7
-typedef struct {
- pd_Hash_t proposal_hash;
- pd_BlockNumber_t voting_period;
- pd_BlockNumber_t delay;
-} pd_democracy_fast_track_V1_t;
-
-#define PD_CALL_DEMOCRACY_VETO_EXTERNAL_V1 8
-typedef struct {
- pd_Hash_t proposal_hash;
-} pd_democracy_veto_external_V1_t;
-
-#define PD_CALL_DEMOCRACY_CANCEL_REFERENDUM_V1 9
-typedef struct {
- pd_Compactu32_t ref_index;
-} pd_democracy_cancel_referendum_V1_t;
-
-#define PD_CALL_DEMOCRACY_CANCEL_QUEUED_V1 10
-typedef struct {
- pd_ReferendumIndex_V1_t which;
-} pd_democracy_cancel_queued_V1_t;
-
-#define PD_CALL_DEMOCRACY_DELEGATE_V1 11
-typedef struct {
- pd_AccountId_V1_t to;
- pd_Conviction_V1_t conviction;
- pd_Balance_t balance;
-} pd_democracy_delegate_V1_t;
-
-#define PD_CALL_DEMOCRACY_UNDELEGATE_V1 12
-typedef struct {
-} pd_democracy_undelegate_V1_t;
-
-#define PD_CALL_DEMOCRACY_CLEAR_PUBLIC_PROPOSALS_V1 13
-typedef struct {
-} pd_democracy_clear_public_proposals_V1_t;
-
-#define PD_CALL_DEMOCRACY_REAP_PREIMAGE_V1 18
-typedef struct {
- pd_Hash_t proposal_hash;
- pd_Compactu32_t proposal_len_upper_bound;
-} pd_democracy_reap_preimage_V1_t;
-
-#define PD_CALL_DEMOCRACY_UNLOCK_V1 19
-typedef struct {
- pd_AccountId_V1_t target;
-} pd_democracy_unlock_V1_t;
-
-#define PD_CALL_DEMOCRACY_REMOVE_VOTE_V1 20
-typedef struct {
- pd_ReferendumIndex_V1_t index;
-} pd_democracy_remove_vote_V1_t;
-
-#define PD_CALL_DEMOCRACY_REMOVE_OTHER_VOTE_V1 21
-typedef struct {
- pd_AccountId_V1_t target;
- pd_ReferendumIndex_V1_t index;
-} pd_democracy_remove_other_vote_V1_t;
-
-#define PD_CALL_DEMOCRACY_ENACT_PROPOSAL_V1 22
-typedef struct {
- pd_Hash_t proposal_hash;
- pd_ReferendumIndex_V1_t index;
-} pd_democracy_enact_proposal_V1_t;
-
-#define PD_CALL_DEMOCRACY_CANCEL_PROPOSAL_V1 24
-typedef struct {
- pd_Compactu32_t prop_index;
-} pd_democracy_cancel_proposal_V1_t;
-
-#define PD_CALL_PROXY_PROXY_V1 0
-typedef struct {
- pd_AccountId_V1_t real;
- pd_OptionProxyType_V1_t force_proxy_type;
- pd_Call_t call;
-} pd_proxy_proxy_V1_t;
-
#define PD_CALL_MULTISIG_AS_MULTI_THRESHOLD_1_V1 0
typedef struct {
- pd_VecAccountId_V1_t other_signatories;
+ pd_VecAccountId_t other_signatories;
pd_Call_t call;
} pd_multisig_as_multi_threshold_1_V1_t;
#define PD_CALL_MULTISIG_AS_MULTI_V1 1
typedef struct {
pd_u16_t threshold;
- pd_VecAccountId_V1_t other_signatories;
- pd_OptionTimepoint_V1_t maybe_timepoint;
- pd_OpaqueCall_V1_t call;
- pd_bool_t store_call;
- pd_Weight_V1_t max_weight;
+ pd_VecAccountId_t other_signatories;
+ pd_OptionTimepoint_t maybe_timepoint;
+ pd_Call_t call;
+ pd_Weight_t max_weight;
} pd_multisig_as_multi_V1_t;
#define PD_CALL_MULTISIG_APPROVE_AS_MULTI_V1 2
typedef struct {
pd_u16_t threshold;
- pd_VecAccountId_V1_t other_signatories;
- pd_OptionTimepoint_V1_t maybe_timepoint;
+ pd_VecAccountId_t other_signatories;
+ pd_OptionTimepoint_t maybe_timepoint;
pd_H256_t call_hash;
- pd_Weight_V1_t max_weight;
+ pd_Weight_t max_weight;
} pd_multisig_approve_as_multi_V1_t;
#define PD_CALL_MULTISIG_CANCEL_AS_MULTI_V1 3
typedef struct {
pd_u16_t threshold;
- pd_VecAccountId_V1_t other_signatories;
- pd_Timepoint_V1_t timepoint;
+ pd_VecAccountId_t other_signatories;
+ pd_Timepoint_t timepoint;
pd_H256_t call_hash;
} pd_multisig_cancel_as_multi_V1_t;
@@ -1725,35 +701,21 @@ typedef union {
pd_balances_transfer_V1_t balances_transfer_V1;
pd_balances_force_transfer_V1_t balances_force_transfer_V1;
pd_balances_transfer_keep_alive_V1_t balances_transfer_keep_alive_V1;
+ pd_staking_bond_V1_t staking_bond_V1;
+ pd_staking_unbond_V1_t staking_unbond_V1;
+ pd_staking_nominate_V1_t staking_nominate_V1;
+ pd_staking_chill_V1_t staking_chill_V1;
+ pd_staking_set_controller_V1_t staking_set_controller_V1;
#ifdef SUBSTRATE_PARSER_FULL
- pd_system_fill_block_V1_t system_fill_block_V1;
+#ifndef TARGET_NANOS
+#endif
pd_system_remark_V1_t system_remark_V1;
pd_system_set_heap_pages_V1_t system_set_heap_pages_V1;
pd_system_set_code_V1_t system_set_code_V1;
pd_system_set_code_without_checks_V1_t system_set_code_without_checks_V1;
pd_system_remark_with_event_V1_t system_remark_with_event_V1;
pd_balances_set_balance_V1_t balances_set_balance_V1;
- pd_democracy_propose_V1_t democracy_propose_V1;
- pd_democracy_second_V1_t democracy_second_V1;
- pd_democracy_vote_V1_t democracy_vote_V1;
- pd_democracy_emergency_cancel_V1_t democracy_emergency_cancel_V1;
- pd_democracy_external_propose_V1_t democracy_external_propose_V1;
- pd_democracy_external_propose_majority_V1_t democracy_external_propose_majority_V1;
- pd_democracy_external_propose_default_V1_t democracy_external_propose_default_V1;
- pd_democracy_fast_track_V1_t democracy_fast_track_V1;
- pd_democracy_veto_external_V1_t democracy_veto_external_V1;
- pd_democracy_cancel_referendum_V1_t democracy_cancel_referendum_V1;
- pd_democracy_cancel_queued_V1_t democracy_cancel_queued_V1;
- pd_democracy_delegate_V1_t democracy_delegate_V1;
- pd_democracy_undelegate_V1_t democracy_undelegate_V1;
- pd_democracy_clear_public_proposals_V1_t democracy_clear_public_proposals_V1;
- pd_democracy_reap_preimage_V1_t democracy_reap_preimage_V1;
- pd_democracy_unlock_V1_t democracy_unlock_V1;
- pd_democracy_remove_vote_V1_t democracy_remove_vote_V1;
- pd_democracy_remove_other_vote_V1_t democracy_remove_other_vote_V1;
- pd_democracy_enact_proposal_V1_t democracy_enact_proposal_V1;
- pd_democracy_cancel_proposal_V1_t democracy_cancel_proposal_V1;
- pd_proxy_proxy_V1_t proxy_proxy_V1;
+ pd_mandate_mandate_V1_t mandate_mandate_V1;
pd_multisig_as_multi_threshold_1_V1_t multisig_as_multi_threshold_1_V1;
pd_multisig_as_multi_V1_t multisig_as_multi_V1;
pd_multisig_approve_as_multi_V1_t multisig_approve_as_multi_V1;
diff --git a/app/src/substrate/substrate_strings.h b/app/src/substrate/substrate_strings.h
index e0c89fe..02e057e 100644
--- a/app/src/substrate/substrate_strings.h
+++ b/app/src/substrate/substrate_strings.h
@@ -1,5 +1,21 @@
+
/*******************************************************************************
- * (c) 2019 - 2022 Zondax AG
+* (c) 2019 - 2023 Zondax AG
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+********************************************************************************/
+/** ******************************************************************************
+ * (c) 2023 CapsuleCorp
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -12,7 +28,7 @@
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
- ********************************************************************************/
+ ******************************************************************************* */
#pragma once
#ifdef __cplusplus
@@ -22,54 +38,29 @@ extern "C" {
// Modules names
static const char* STR_MO_SYSTEM = "System";
static const char* STR_MO_TIMESTAMP = "Timestamp";
-static const char* STR_MO_INDICES = "Indices";
static const char* STR_MO_BALANCES = "Balances";
static const char* STR_MO_STAKING = "Staking";
static const char* STR_MO_SESSION = "Session";
-static const char* STR_MO_GRANDPA = "Grandpa";
static const char* STR_MO_DEMOCRACY = "Democracy";
static const char* STR_MO_COUNCIL = "Council";
static const char* STR_MO_TECHNICALCOMMITTEE = "Technicalcommittee";
-static const char* STR_MO_PHRAGMENELECTION = "Phragmenelection";
+static const char* STR_MO_MANDATE = "Mandate";
static const char* STR_MO_TECHNICALMEMBERSHIP = "Technicalmembership";
static const char* STR_MO_TREASURY = "Treasury";
-static const char* STR_MO_CLAIMS = "Claims";
+static const char* STR_MO_PHRAGMENELECTION = "Phragmenelection";
static const char* STR_MO_UTILITY = "Utility";
static const char* STR_MO_IDENTITY = "Identity";
-static const char* STR_MO_SOCIETY = "Society";
-static const char* STR_MO_RECOVERY = "Recovery";
-static const char* STR_MO_VESTING = "Vesting";
-static const char* STR_MO_PROXY = "Proxy";
static const char* STR_MO_MULTISIG = "Multisig";
-static const char* STR_MO_PREIMAGE = "Preimage";
-static const char* STR_MO_BOUNTIES = "Bounties";
-static const char* STR_MO_CHILDBOUNTIES = "Childbounties";
-static const char* STR_MO_TIPS = "Tips";
-static const char* STR_MO_ELECTIONPROVIDERMULTIPHASE = "Electionprovidermultiphase";
-static const char* STR_MO_GILT = "Gilt";
-static const char* STR_MO_VOTERLIST = "Voterlist";
-static const char* STR_MO_NOMINATIONPOOLS = "Nominationpools";
-static const char* STR_MO_CONFIGURATION = "Configuration";
-static const char* STR_MO_INITIALIZER = "Initializer";
-static const char* STR_MO_HRMP = "Hrmp";
-static const char* STR_MO_PARASDISPUTES = "Parasdisputes";
-static const char* STR_MO_REGISTRAR = "Registrar";
-static const char* STR_MO_AUCTIONS = "Auctions";
-static const char* STR_MO_CROWDLOAN = "Crowdloan";
// Methods names
-static const char* STR_ME_FILL_BLOCK = "Fill block";
static const char* STR_ME_REMARK = "Remark";
static const char* STR_ME_SET_HEAP_PAGES = "Set heap pages";
static const char* STR_ME_SET_CODE = "Set code";
static const char* STR_ME_SET_CODE_WITHOUT_CHECKS = "Set code without checks";
static const char* STR_ME_REMARK_WITH_EVENT = "Remark with event";
static const char* STR_ME_SET = "Set";
-static const char* STR_ME_CLAIM = "Claim";
static const char* STR_ME_TRANSFER = "Transfer";
-static const char* STR_ME_FREE = "Free";
static const char* STR_ME_FORCE_TRANSFER = "Force transfer";
-static const char* STR_ME_FREEZE = "Freeze";
static const char* STR_ME_SET_BALANCE = "Set balance";
static const char* STR_ME_TRANSFER_KEEP_ALIVE = "Transfer keep alive";
static const char* STR_ME_TRANSFER_ALL = "Transfer all";
@@ -85,50 +76,45 @@ static const char* STR_ME_SET_PAYEE = "Set payee";
static const char* STR_ME_SET_CONTROLLER = "Set controller";
static const char* STR_ME_SET_VALIDATOR_COUNT = "Set validator count";
static const char* STR_ME_INCREASE_VALIDATOR_COUNT = "Increase validator count";
+static const char* STR_ME_SCALE_VALIDATOR_COUNT = "Scale validator count";
static const char* STR_ME_FORCE_NO_ERAS = "Force no eras";
static const char* STR_ME_FORCE_NEW_ERA = "Force new era";
static const char* STR_ME_SET_INVULNERABLES = "Set invulnerables";
static const char* STR_ME_FORCE_UNSTAKE = "Force unstake";
static const char* STR_ME_FORCE_NEW_ERA_ALWAYS = "Force new era always";
-static const char* STR_ME_CANCEL_DEFERRED_SLASH = "Cancel deferred slash";
static const char* STR_ME_PAYOUT_STAKERS = "Payout stakers";
static const char* STR_ME_REBOND = "Rebond";
-static const char* STR_ME_SET_HISTORY_DEPTH = "Set history depth";
static const char* STR_ME_REAP_STASH = "Reap stash";
static const char* STR_ME_KICK = "Kick";
+static const char* STR_ME_SET_STAKING_CONFIGS = "Set staking configs";
static const char* STR_ME_CHILL_OTHER = "Chill other";
static const char* STR_ME_FORCE_APPLY_MIN_COMMISSION = "Force apply min commission";
static const char* STR_ME_SET_KEYS = "Set keys";
static const char* STR_ME_PURGE_KEYS = "Purge keys";
-static const char* STR_ME_NOTE_STALLED = "Note stalled";
static const char* STR_ME_PROPOSE = "Propose";
static const char* STR_ME_SECOND = "Second";
static const char* STR_ME_VOTE = "Vote";
static const char* STR_ME_EMERGENCY_CANCEL = "Emergency cancel";
+static const char* STR_ME_MANDATE = "Mandate";
static const char* STR_ME_EXTERNAL_PROPOSE = "External propose";
static const char* STR_ME_EXTERNAL_PROPOSE_MAJORITY = "External propose majority";
static const char* STR_ME_EXTERNAL_PROPOSE_DEFAULT = "External propose default";
static const char* STR_ME_FAST_TRACK = "Fast track";
static const char* STR_ME_VETO_EXTERNAL = "Veto external";
static const char* STR_ME_CANCEL_REFERENDUM = "Cancel referendum";
-static const char* STR_ME_CANCEL_QUEUED = "Cancel queued";
static const char* STR_ME_DELEGATE = "Delegate";
static const char* STR_ME_UNDELEGATE = "Undelegate";
static const char* STR_ME_CLEAR_PUBLIC_PROPOSALS = "Clear public proposals";
-static const char* STR_ME_NOTE_PREIMAGE = "Note preimage";
-static const char* STR_ME_NOTE_PREIMAGE_OPERATIONAL = "Note preimage operational";
-static const char* STR_ME_NOTE_IMMINENT_PREIMAGE = "Note imminent preimage";
-static const char* STR_ME_NOTE_IMMINENT_PREIMAGE_OPERATIONAL = "Note imminent preimage operational";
-static const char* STR_ME_REAP_PREIMAGE = "Reap preimage";
static const char* STR_ME_UNLOCK = "Unlock";
static const char* STR_ME_REMOVE_VOTE = "Remove vote";
static const char* STR_ME_REMOVE_OTHER_VOTE = "Remove other vote";
-static const char* STR_ME_ENACT_PROPOSAL = "Enact proposal";
+static const char* STR_ME_BLACKLIST = "Blacklist";
static const char* STR_ME_CANCEL_PROPOSAL = "Cancel proposal";
static const char* STR_ME_SET_MEMBERS = "Set members";
static const char* STR_ME_EXECUTE = "Execute";
-static const char* STR_ME_CLOSE = "Close";
+static const char* STR_ME_CLOSE_OLD_WEIGHT = "Close old weight";
static const char* STR_ME_DISAPPROVE_PROPOSAL = "Disapprove proposal";
+static const char* STR_ME_CLOSE = "Close";
static const char* STR_ME_REMOVE_VOTER = "Remove voter";
static const char* STR_ME_SUBMIT_CANDIDACY = "Submit candidacy";
static const char* STR_ME_REMOVE_MEMBER = "Remove member";
@@ -144,165 +130,36 @@ static const char* STR_ME_REJECT_PROPOSAL = "Reject proposal";
static const char* STR_ME_APPROVE_PROPOSAL = "Approve proposal";
static const char* STR_ME_SPEND = "Spend";
static const char* STR_ME_REMOVE_APPROVAL = "Remove approval";
-static const char* STR_ME_CLAIM_ATTEST = "Claim attest";
-static const char* STR_ME_ATTEST = "Attest";
-static const char* STR_ME_MOVE_CLAIM = "Move claim";
static const char* STR_ME_BATCH = "Batch";
static const char* STR_ME_BATCH_ALL = "Batch all";
static const char* STR_ME_FORCE_BATCH = "Force batch";
static const char* STR_ME_ADD_REGISTRAR = "Add registrar";
+static const char* STR_ME_SET_IDENTITY = "Set identity";
+static const char* STR_ME_SET_SUBS = "Set subs";
static const char* STR_ME_CLEAR_IDENTITY = "Clear identity";
static const char* STR_ME_REQUEST_JUDGEMENT = "Request judgement";
static const char* STR_ME_CANCEL_REQUEST = "Cancel request";
static const char* STR_ME_SET_FEE = "Set fee";
static const char* STR_ME_SET_ACCOUNT_ID = "Set account id";
+static const char* STR_ME_PROVIDE_JUDGEMENT = "Provide judgement";
static const char* STR_ME_KILL_IDENTITY = "Kill identity";
+static const char* STR_ME_ADD_SUB = "Add sub";
+static const char* STR_ME_RENAME_SUB = "Rename sub";
static const char* STR_ME_REMOVE_SUB = "Remove sub";
static const char* STR_ME_QUIT_SUB = "Quit sub";
-static const char* STR_ME_BID = "Bid";
-static const char* STR_ME_UNBID = "Unbid";
-static const char* STR_ME_VOUCH = "Vouch";
-static const char* STR_ME_UNVOUCH = "Unvouch";
-static const char* STR_ME_DEFENDER_VOTE = "Defender vote";
-static const char* STR_ME_PAYOUT = "Payout";
-static const char* STR_ME_FOUND = "Found";
-static const char* STR_ME_UNFOUND = "Unfound";
-static const char* STR_ME_JUDGE_SUSPENDED_MEMBER = "Judge suspended member";
-static const char* STR_ME_SET_MAX_MEMBERS = "Set max members";
-static const char* STR_ME_SET_RECOVERED = "Set recovered";
-static const char* STR_ME_INITIATE_RECOVERY = "Initiate recovery";
-static const char* STR_ME_VOUCH_RECOVERY = "Vouch recovery";
-static const char* STR_ME_CLAIM_RECOVERY = "Claim recovery";
-static const char* STR_ME_CLOSE_RECOVERY = "Close recovery";
-static const char* STR_ME_REMOVE_RECOVERY = "Remove recovery";
-static const char* STR_ME_CANCEL_RECOVERED = "Cancel recovered";
-static const char* STR_ME_VEST = "Vest";
-static const char* STR_ME_VEST_OTHER = "Vest other";
-static const char* STR_ME_VESTED_TRANSFER = "Vested transfer";
-static const char* STR_ME_FORCE_VESTED_TRANSFER = "Force vested transfer";
-static const char* STR_ME_MERGE_SCHEDULES = "Merge schedules";
-static const char* STR_ME_PROXY = "Proxy";
-static const char* STR_ME_ADD_PROXY = "Add proxy";
-static const char* STR_ME_REMOVE_PROXY = "Remove proxy";
-static const char* STR_ME_REMOVE_PROXIES = "Remove proxies";
-static const char* STR_ME_ANONYMOUS = "Anonymous";
-static const char* STR_ME_KILL_ANONYMOUS = "Kill anonymous";
-static const char* STR_ME_PROXY_ANNOUNCED = "Proxy announced";
static const char* STR_ME_AS_MULTI_THRESHOLD_1 = "As multi threshold 1";
static const char* STR_ME_AS_MULTI = "As multi";
static const char* STR_ME_APPROVE_AS_MULTI = "Approve as multi";
static const char* STR_ME_CANCEL_AS_MULTI = "Cancel as multi";
-static const char* STR_ME_UNNOTE_PREIMAGE = "Unnote preimage";
-static const char* STR_ME_REQUEST_PREIMAGE = "Request preimage";
-static const char* STR_ME_UNREQUEST_PREIMAGE = "Unrequest preimage";
-static const char* STR_ME_PROPOSE_BOUNTY = "Propose bounty";
-static const char* STR_ME_APPROVE_BOUNTY = "Approve bounty";
-static const char* STR_ME_PROPOSE_CURATOR = "Propose curator";
-static const char* STR_ME_UNASSIGN_CURATOR = "Unassign curator";
-static const char* STR_ME_ACCEPT_CURATOR = "Accept curator";
-static const char* STR_ME_AWARD_BOUNTY = "Award bounty";
-static const char* STR_ME_CLAIM_BOUNTY = "Claim bounty";
-static const char* STR_ME_CLOSE_BOUNTY = "Close bounty";
-static const char* STR_ME_EXTEND_BOUNTY_EXPIRY = "Extend bounty expiry";
-static const char* STR_ME_ADD_CHILD_BOUNTY = "Add child bounty";
-static const char* STR_ME_AWARD_CHILD_BOUNTY = "Award child bounty";
-static const char* STR_ME_CLAIM_CHILD_BOUNTY = "Claim child bounty";
-static const char* STR_ME_CLOSE_CHILD_BOUNTY = "Close child bounty";
-static const char* STR_ME_REPORT_AWESOME = "Report awesome";
-static const char* STR_ME_RETRACT_TIP = "Retract tip";
-static const char* STR_ME_TIP_NEW = "Tip new";
-static const char* STR_ME_TIP = "Tip";
-static const char* STR_ME_CLOSE_TIP = "Close tip";
-static const char* STR_ME_SLASH_TIP = "Slash tip";
-static const char* STR_ME_GOVERNANCE_FALLBACK = "Governance fallback";
-static const char* STR_ME_PLACE_BID = "Place bid";
-static const char* STR_ME_RETRACT_BID = "Retract bid";
-static const char* STR_ME_SET_TARGET = "Set target";
-static const char* STR_ME_THAW = "Thaw";
-static const char* STR_ME_REBAG = "Rebag";
-static const char* STR_ME_PUT_IN_FRONT_OF = "Put in front of";
-static const char* STR_ME_JOIN = "Join";
-static const char* STR_ME_CLAIM_PAYOUT = "Claim payout";
-static const char* STR_ME_POOL_WITHDRAW_UNBONDED = "Pool withdraw unbonded";
-static const char* STR_ME_CREATE = "Create";
-static const char* STR_ME_SET_STATE = "Set state";
-static const char* STR_ME_SET_METADATA = "Set metadata";
-static const char* STR_ME_SET_CONFIGS = "Set configs";
-static const char* STR_ME_UPDATE_ROLES = "Update roles";
-static const char* STR_ME_SET_VALIDATION_UPGRADE_COOLDOWN = "Set validation upgrade cooldown";
-static const char* STR_ME_SET_VALIDATION_UPGRADE_DELAY = "Set validation upgrade delay";
-static const char* STR_ME_SET_CODE_RETENTION_PERIOD = "Set code retention period";
-static const char* STR_ME_SET_MAX_CODE_SIZE = "Set max code size";
-static const char* STR_ME_SET_MAX_POV_SIZE = "Set max pov size";
-static const char* STR_ME_SET_MAX_HEAD_DATA_SIZE = "Set max head data size";
-static const char* STR_ME_SET_PARATHREAD_CORES = "Set parathread cores";
-static const char* STR_ME_SET_PARATHREAD_RETRIES = "Set parathread retries";
-static const char* STR_ME_SET_GROUP_ROTATION_FREQUENCY = "Set group rotation frequency";
-static const char* STR_ME_SET_CHAIN_AVAILABILITY_PERIOD = "Set chain availability period";
-static const char* STR_ME_SET_THREAD_AVAILABILITY_PERIOD = "Set thread availability period";
-static const char* STR_ME_SET_SCHEDULING_LOOKAHEAD = "Set scheduling lookahead";
-static const char* STR_ME_SET_MAX_VALIDATORS_PER_CORE = "Set max validators per core";
-static const char* STR_ME_SET_MAX_VALIDATORS = "Set max validators";
-static const char* STR_ME_SET_DISPUTE_PERIOD = "Set dispute period";
-static const char* STR_ME_SET_DISPUTE_POST_CONCLUSION_ACCEPTANCE_PERIOD = "Set dispute post conclusion acceptance period";
-static const char* STR_ME_SET_DISPUTE_MAX_SPAM_SLOTS = "Set dispute max spam slots";
-static const char* STR_ME_SET_DISPUTE_CONCLUSION_BY_TIME_OUT_PERIOD = "Set dispute conclusion by time out period";
-static const char* STR_ME_SET_NO_SHOW_SLOTS = "Set no show slots";
-static const char* STR_ME_SET_N_DELAY_TRANCHES = "Set n delay tranches";
-static const char* STR_ME_SET_ZEROTH_DELAY_TRANCHE_WIDTH = "Set zeroth delay tranche width";
-static const char* STR_ME_SET_NEEDED_APPROVALS = "Set needed approvals";
-static const char* STR_ME_SET_RELAY_VRF_MODULO_SAMPLES = "Set relay vrf modulo samples";
-static const char* STR_ME_SET_MAX_UPWARD_QUEUE_COUNT = "Set max upward queue count";
-static const char* STR_ME_SET_MAX_UPWARD_QUEUE_SIZE = "Set max upward queue size";
-static const char* STR_ME_SET_MAX_DOWNWARD_MESSAGE_SIZE = "Set max downward message size";
-static const char* STR_ME_SET_UMP_SERVICE_TOTAL_WEIGHT = "Set ump service total weight";
-static const char* STR_ME_SET_MAX_UPWARD_MESSAGE_SIZE = "Set max upward message size";
-static const char* STR_ME_SET_MAX_UPWARD_MESSAGE_NUM_PER_CANDIDATE = "Set max upward message num per candidate";
-static const char* STR_ME_SET_HRMP_OPEN_REQUEST_TTL = "Set hrmp open request ttl";
-static const char* STR_ME_SET_HRMP_SENDER_DEPOSIT = "Set hrmp sender deposit";
-static const char* STR_ME_SET_HRMP_RECIPIENT_DEPOSIT = "Set hrmp recipient deposit";
-static const char* STR_ME_SET_HRMP_CHANNEL_MAX_CAPACITY = "Set hrmp channel max capacity";
-static const char* STR_ME_SET_HRMP_CHANNEL_MAX_TOTAL_SIZE = "Set hrmp channel max total size";
-static const char* STR_ME_SET_HRMP_MAX_PARACHAIN_INBOUND_CHANNELS = "Set hrmp max parachain inbound channels";
-static const char* STR_ME_SET_HRMP_MAX_PARATHREAD_INBOUND_CHANNELS = "Set hrmp max parathread inbound channels";
-static const char* STR_ME_SET_HRMP_CHANNEL_MAX_MESSAGE_SIZE = "Set hrmp channel max message size";
-static const char* STR_ME_SET_HRMP_MAX_PARACHAIN_OUTBOUND_CHANNELS = "Set hrmp max parachain outbound channels";
-static const char* STR_ME_SET_HRMP_MAX_PARATHREAD_OUTBOUND_CHANNELS = "Set hrmp max parathread outbound channels";
-static const char* STR_ME_SET_HRMP_MAX_MESSAGE_NUM_PER_CANDIDATE = "Set hrmp max message num per candidate";
-static const char* STR_ME_SET_UMP_MAX_INDIVIDUAL_WEIGHT = "Set ump max individual weight";
-static const char* STR_ME_SET_PVF_CHECKING_ENABLED = "Set pvf checking enabled";
-static const char* STR_ME_SET_PVF_VOTING_TTL = "Set pvf voting ttl";
-static const char* STR_ME_SET_MINIMUM_VALIDATION_UPGRADE_DELAY = "Set minimum validation upgrade delay";
-static const char* STR_ME_SET_BYPASS_CONSISTENCY_CHECK = "Set bypass consistency check";
-static const char* STR_ME_FORCE_APPROVE = "Force approve";
-static const char* STR_ME_FORCE_PROCESS_HRMP_OPEN = "Force process hrmp open";
-static const char* STR_ME_FORCE_PROCESS_HRMP_CLOSE = "Force process hrmp close";
-static const char* STR_ME_FORCE_UNFREEZE = "Force unfreeze";
-static const char* STR_ME_RESERVE = "Reserve";
-static const char* STR_ME_NEW_AUCTION = "New auction";
-static const char* STR_ME_CANCEL_AUCTION = "Cancel auction";
-static const char* STR_ME_CONTRIBUTE = "Contribute";
-static const char* STR_ME_WITHDRAW = "Withdraw";
-static const char* STR_ME_REFUND = "Refund";
-static const char* STR_ME_DISSOLVE = "Dissolve";
-static const char* STR_ME_EDIT = "Edit";
-static const char* STR_ME_ADD_MEMO = "Add memo";
-static const char* STR_ME_POKE = "Poke";
-static const char* STR_ME_CONTRIBUTE_ALL = "Contribute all";
// Items names
-static const char* STR_IT_ratio = "Ratio";
static const char* STR_IT_remark = "Remark";
static const char* STR_IT_pages = "Pages";
static const char* STR_IT_code = "Code";
-static const char* STR_IT_items = "Items";
static const char* STR_IT_keys = "Keys";
-static const char* STR_IT_prefix = "Prefix";
-static const char* STR_IT_subkeys = "Subkeys";
static const char* STR_IT_now = "Now";
static const char* STR_IT_index = "Index";
static const char* STR_IT_new_ = "New";
-static const char* STR_IT_freeze = "Freeze";
static const char* STR_IT_dest = "Dest";
static const char* STR_IT_amount = "Amount";
static const char* STR_IT_who = "Who";
@@ -322,8 +179,6 @@ static const char* STR_IT_stash = "Stash";
static const char* STR_IT_era = "Era";
static const char* STR_IT_slash_indices = "Slash indices";
static const char* STR_IT_validator_stash = "Validator stash";
-static const char* STR_IT_new_history_depth = "New history depth";
-static const char* STR_IT_era_items_deleted = "Era items deleted";
static const char* STR_IT_min_nominator_bond = "Min nominator bond";
static const char* STR_IT_min_validator_bond = "Min validator bond";
static const char* STR_IT_max_nominator_count = "Max nominator count";
@@ -331,22 +186,15 @@ static const char* STR_IT_max_validator_count = "Max validator count";
static const char* STR_IT_chill_threshold = "Chill threshold";
static const char* STR_IT_min_commission = "Min commission";
static const char* STR_IT_proof = "Proof";
-static const char* STR_IT_equivocation_proof = "Equivocation proof";
-static const char* STR_IT_key_owner_proof = "Key owner proof";
-static const char* STR_IT_delay = "Delay";
-static const char* STR_IT_best_finalized_block_number = "Best finalized block number";
-static const char* STR_IT_proposal_hash = "Proposal hash";
static const char* STR_IT_proposal = "Proposal";
-static const char* STR_IT_seconds_upper_bound = "Seconds upper bound";
static const char* STR_IT_ref_index = "Ref index";
static const char* STR_IT_vote = "Vote";
+static const char* STR_IT_proposal_hash = "Proposal hash";
static const char* STR_IT_voting_period = "Voting period";
-static const char* STR_IT_which = "Which";
+static const char* STR_IT_delay = "Delay";
static const char* STR_IT_to = "To";
static const char* STR_IT_conviction = "Conviction";
static const char* STR_IT_balance = "Balance";
-static const char* STR_IT_encoded_proposal = "Encoded proposal";
-static const char* STR_IT_proposal_len_upper_bound = "Proposal len upper bound";
static const char* STR_IT_target = "Target";
static const char* STR_IT_maybe_ref_index = "Maybe ref index";
static const char* STR_IT_prop_index = "Prop index";
@@ -359,7 +207,6 @@ static const char* STR_IT_approve = "Approve";
static const char* STR_IT_proposal_weight_bound = "Proposal weight bound";
static const char* STR_IT_votes = "Votes";
static const char* STR_IT_candidate_count = "Candidate count";
-static const char* STR_IT_renouncing = "Renouncing";
static const char* STR_IT_slash_bond = "Slash bond";
static const char* STR_IT_rerun_election = "Rerun election";
static const char* STR_IT_num_voters = "Num voters";
@@ -369,115 +216,25 @@ static const char* STR_IT_add = "Add";
static const char* STR_IT_members = "Members";
static const char* STR_IT_beneficiary = "Beneficiary";
static const char* STR_IT_proposal_id = "Proposal id";
-static const char* STR_IT_ethereum_signature = "Ethereum signature";
-static const char* STR_IT_vesting_schedule = "Vesting schedule";
-static const char* STR_IT_statement = "Statement";
-static const char* STR_IT_old = "Old";
-static const char* STR_IT_maybe_preclaim = "Maybe preclaim";
-static const char* STR_IT_calls = "Calls";
+static const char* STR_IT_call_hash = "Call hash";
static const char* STR_IT_call = "Call";
-static const char* STR_IT_as_origin = "As origin";
+static const char* STR_IT_calls = "Calls";
static const char* STR_IT_account = "Account";
static const char* STR_IT_info = "Info";
static const char* STR_IT_subs = "Subs";
static const char* STR_IT_reg_index = "Reg index";
static const char* STR_IT_max_fee = "Max fee";
static const char* STR_IT_fee = "Fee";
-static const char* STR_IT_fields = "Fields";
static const char* STR_IT_judgement = "Judgement";
+static const char* STR_IT_identity = "Identity";
static const char* STR_IT_sub = "Sub";
static const char* STR_IT_data = "Data";
-static const char* STR_IT_pos = "Pos";
-static const char* STR_IT_tip = "Tip";
-static const char* STR_IT_candidate = "Candidate";
-static const char* STR_IT_founder = "Founder";
-static const char* STR_IT_max_members = "Max members";
-static const char* STR_IT_rules = "Rules";
-static const char* STR_IT_forgive = "Forgive";
-static const char* STR_IT_max = "Max";
-static const char* STR_IT_lost = "Lost";
-static const char* STR_IT_rescuer = "Rescuer";
-static const char* STR_IT_friends = "Friends";
-static const char* STR_IT_delay_period = "Delay period";
-static const char* STR_IT_schedule = "Schedule";
-static const char* STR_IT_schedule1_index = "Schedule1 index";
-static const char* STR_IT_schedule2_index = "Schedule2 index";
-static const char* STR_IT_real = "Real";
-static const char* STR_IT_force_proxy_type = "Force proxy type";
-static const char* STR_IT_delegate = "Delegate";
-static const char* STR_IT_proxy_type = "Proxy type";
-static const char* STR_IT_spawner = "Spawner";
-static const char* STR_IT_height = "Height";
-static const char* STR_IT_ext_index = "Ext index";
-static const char* STR_IT_call_hash = "Call hash";
static const char* STR_IT_other_signatories = "Other signatories";
static const char* STR_IT_maybe_timepoint = "Maybe timepoint";
-static const char* STR_IT_store_call = "Store call";
static const char* STR_IT_max_weight = "Max weight";
static const char* STR_IT_timepoint = "Timepoint";
-static const char* STR_IT_bytes = "Bytes";
-static const char* STR_IT_hash = "Hash";
-static const char* STR_IT_description = "Description";
-static const char* STR_IT_bounty_id = "Bounty id";
-static const char* STR_IT_curator = "Curator";
-static const char* STR_IT_parent_bounty_id = "Parent bounty id";
-static const char* STR_IT_child_bounty_id = "Child bounty id";
-static const char* STR_IT_reason = "Reason";
-static const char* STR_IT_tip_value = "Tip value";
-static const char* STR_IT_raw_solution = "Raw solution";
-static const char* STR_IT_witness = "Witness";
-static const char* STR_IT_maybe_next_score = "Maybe next score";
-static const char* STR_IT_supports = "Supports";
-static const char* STR_IT_maybe_max_voters = "Maybe max voters";
-static const char* STR_IT_maybe_max_targets = "Maybe max targets";
-static const char* STR_IT_duration = "Duration";
-static const char* STR_IT_dislocated = "Dislocated";
-static const char* STR_IT_lighter = "Lighter";
-static const char* STR_IT_pool_id = "Pool id";
-static const char* STR_IT_extra = "Extra";
-static const char* STR_IT_member_account = "Member account";
-static const char* STR_IT_unbonding_points = "Unbonding points";
-static const char* STR_IT_root = "Root";
-static const char* STR_IT_nominator = "Nominator";
-static const char* STR_IT_state_toggler = "State toggler";
-static const char* STR_IT_validators = "Validators";
-static const char* STR_IT_state = "State";
-static const char* STR_IT_metadata = "Metadata";
-static const char* STR_IT_min_join_bond = "Min join bond";
-static const char* STR_IT_min_create_bond = "Min create bond";
-static const char* STR_IT_max_pools = "Max pools";
-static const char* STR_IT_max_members_per_pool = "Max members per pool";
-static const char* STR_IT_new_root = "New root";
-static const char* STR_IT_new_nominator = "New nominator";
-static const char* STR_IT_new_state_toggler = "New state toggler";
-static const char* STR_IT_up_to = "Up to";
-static const char* STR_IT_recipient = "Recipient";
-static const char* STR_IT_proposed_max_capacity = "Proposed max capacity";
-static const char* STR_IT_proposed_max_message_size = "Proposed max message size";
-static const char* STR_IT_sender = "Sender";
-static const char* STR_IT_channel_id = "Channel id";
-static const char* STR_IT_para = "Para";
-static const char* STR_IT_inbound = "Inbound";
-static const char* STR_IT_outbound = "Outbound";
-static const char* STR_IT_channels = "Channels";
-static const char* STR_IT_open_requests = "Open requests";
-static const char* STR_IT_id = "Id";
-static const char* STR_IT_genesis_head = "Genesis head";
-static const char* STR_IT_validation_code = "Validation code";
-static const char* STR_IT_deposit = "Deposit";
-static const char* STR_IT_other = "Other";
-static const char* STR_IT_lease_period_index = "Lease period index";
-static const char* STR_IT_auction_index = "Auction index";
-static const char* STR_IT_first_slot = "First slot";
-static const char* STR_IT_last_slot = "Last slot";
-static const char* STR_IT_cap = "Cap";
-static const char* STR_IT_first_period = "First period";
-static const char* STR_IT_last_period = "Last period";
-static const char* STR_IT_end = "End";
-static const char* STR_IT_verifier = "Verifier";
-static const char* STR_IT_signature = "Signature";
-static const char* STR_IT_memo = "Memo";
#ifdef __cplusplus
}
#endif
+
diff --git a/app/src/substrate/substrate_types.c b/app/src/substrate/substrate_types.c
index 3ae913e..930c637 100644
--- a/app/src/substrate/substrate_types.c
+++ b/app/src/substrate/substrate_types.c
@@ -1,5 +1,5 @@
/*******************************************************************************
- * (c) 2019 - 2022 Zondax AG
+ * (c) 2019 - 2023 Zondax AG
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -112,15 +112,6 @@ parser_error_t _readCompactu128(parser_context_t* c, pd_Compactu128_t* v)
return _readCompactInt(c, v);
}
-parser_error_t _readBalance(parser_context_t* c, pd_Balance_t* v) {
- GEN_DEF_READARRAY(16)
-}
-
-parser_error_t _readBalanceOf(parser_context_t* c, pd_BalanceOf_t* v)
-{
- return _readBalance(c, &v->value);
-}
-
parser_error_t _readBytes(parser_context_t* c, pd_Bytes_t* v)
{
CHECK_INPUT()
@@ -134,249 +125,3228 @@ parser_error_t _readBytes(parser_context_t* c, pd_Bytes_t* v)
return parser_ok;
}
-parser_error_t _readCall(parser_context_t* c, pd_Call_t* v)
+parser_error_t _readFraction(parser_context_t* c, pd_Fraction_t* v)
{
- pd_MethodNested_t _method;
- if (c->tx_obj->nestCallIdx.isTail) {
- c->tx_obj->nestCallIdx.isTail = false;
- v->nestCallIdx.isTail = true;
- } else {
- v->nestCallIdx.isTail = false;
- }
-
- CHECK_ERROR(_readCallImpl(c, v, &_method))
- if (c->tx_obj->nestCallIdx._ptr != NULL && c->tx_obj->nestCallIdx._nextPtr != NULL) {
- v->nestCallIdx._ptr = c->tx_obj->nestCallIdx._ptr;
- v->nestCallIdx._nextPtr = c->tx_obj->nestCallIdx._nextPtr;
- }
- v->nestCallIdx.slotIdx = c->tx_obj->nestCallIdx.slotIdx;
+ CHECK_INPUT()
+ CHECK_ERROR(_readCompactu32(c, &v->nom))
+ CHECK_ERROR(_readCompactu32(c, &v->denom))
return parser_ok;
}
-parser_error_t _readProposal(parser_context_t* c, pd_Proposal_t* v)
+parser_error_t _readBodyId(parser_context_t* c, pd_BodyId_t* v)
{
- return _readCall(c, &v->call);
+ CHECK_INPUT()
+ CHECK_ERROR(_readUInt8(c, &v->value))
+ switch (v->value) {
+ case 0: // Unit
+ break;
+ case 1: // Named
+ CHECK_ERROR(_readBytes(c, &v->named))
+ break;
+ case 2: // Index
+ CHECK_ERROR(_readCompactu32(c, &v->index))
+ break;
+ case 3: // Executive
+ case 4: // Technical
+ case 5: // Legislative
+ case 6: // Judicial
+ break;
+ default:
+ return parser_unexpected_value;
+ }
+ return parser_ok;
}
-parser_error_t _readVecCall(parser_context_t* c, pd_VecCall_t* v)
+parser_error_t _readBodyPart(parser_context_t* c, pd_BodyPart_t* v)
{
- compactInt_t clen;
- pd_Call_t dummy;
- CHECK_PARSER_ERR(_readCompactInt(c, &clen));
- CHECK_PARSER_ERR(_getValue(&clen, &v->_len));
-
- if (v->_len > MAX_CALL_VEC_SIZE) {
- return parser_tx_call_vec_too_large;
- }
-
- v->_ptr = c->buffer + c->offset;
- v->_lenBuffer = c->offset;
- if (v->_len == 0) {
- return parser_unexpected_buffer_end;
+ CHECK_INPUT()
+ CHECK_ERROR(_readUInt8(c, &v->value))
+ switch (v->value) {
+ case 0: // Voice
+ break;
+ case 1: // Members
+ CHECK_ERROR(_readCompactu32(c, &v->count))
+ break;
+ case 2: // Fraction
+ case 3: // AtleastProportion
+ case 4: // MoreThanProportion
+ CHECK_ERROR(_readFraction(c, &v->fraction))
+ break;
+ default:
+ return parser_unexpected_value;
}
+ return parser_ok;
+}
- for (uint64_t i = 0; i < v->_len; i++) {
- c->tx_obj->nestCallIdx.slotIdx = 0;
- CHECK_ERROR(_readCall(c, &dummy))
+parser_error_t _readNetworkId(parser_context_t* c, pd_NetworkId_t* v)
+{
+ CHECK_INPUT()
+ CHECK_ERROR(_readUInt8(c, &v->value))
+ switch (v->value) {
+ case 0: // Any
+ case 2: // Polkadot
+ case 3: // Kusama
+ break;
+ case 1: // Index
+ CHECK_ERROR(_readBytes(c, &v->named))
+ break;
+ default:
+ return parser_unexpected_value;
}
- v->_lenBuffer = c->offset - v->_lenBuffer;
- v->callTxVersion = c->tx_obj->transactionVersion;
return parser_ok;
}
-parser_error_t _readH256(parser_context_t* c, pd_H256_t* v) {
- GEN_DEF_READARRAY(32)
+parser_error_t _readu8_array_20(parser_context_t* c, pd_u8_array_20_t* v) {
+ GEN_DEF_READARRAY(20)
}
-parser_error_t _readHash(parser_context_t* c, pd_Hash_t* v) {
+parser_error_t _readu8_array_32(parser_context_t* c, pd_u8_array_32_t* v) {
GEN_DEF_READARRAY(32)
}
-parser_error_t _readVecu32(parser_context_t* c, pd_Vecu32_t* v) {
- GEN_DEF_READVECTOR(u32)
+parser_error_t _readAccountId32(parser_context_t* c, pd_AccountId32_t* v)
+{
+ CHECK_INPUT()
+ CHECK_ERROR(_readNetworkId(c, &v->networkId))
+ CHECK_ERROR(_readu8_array_32(c, &v->key))
+ return parser_ok;
}
-parser_error_t _readVecu8(parser_context_t* c, pd_Vecu8_t* v) {
- GEN_DEF_READVECTOR(u8)
+parser_error_t _readAccountIndex64(parser_context_t* c, pd_AccountIndex64_t* v)
+{
+ CHECK_INPUT()
+ CHECK_ERROR(_readNetworkId(c, &v->networkId))
+ CHECK_ERROR(_readCompactu64(c, &v->index))
+ return parser_ok;
}
-parser_error_t _readOptionu32(parser_context_t* c, pd_Optionu32_t* v)
+parser_error_t _readAccountKey20(parser_context_t* c, pd_AccountKey20_t* v)
{
- CHECK_ERROR(_readUInt8(c, &v->some))
- if (v->some > 0) {
- CHECK_ERROR(_readu32(c, &v->contained))
- }
+ CHECK_INPUT()
+ CHECK_ERROR(_readNetworkId(c, &v->networkId))
+ CHECK_ERROR(_readu8_array_20(c, &v->key))
return parser_ok;
}
-///////////////////////////////////
-///////////////////////////////////
-///////////////////////////////////
-
-parser_error_t _toStringbool(
- const pd_bool_t* v,
- char* outValue,
- uint16_t outValueLen,
- uint8_t pageIdx,
- uint8_t* pageCount)
+parser_error_t _readPlurality(parser_context_t* c, pd_Plurality_t* v)
{
- CLEAN_AND_CHECK()
+ CHECK_INPUT()
+ CHECK_ERROR(_readBodyId(c, &v->id))
+ CHECK_ERROR(_readBodyPart(c, &v->part))
+ return parser_ok;
+}
- *pageCount = 1;
- switch (*v) {
- case 0:
- snprintf(outValue, outValueLen, "False");
- return parser_ok;
- case 1:
- snprintf(outValue, outValueLen, "True");
- return parser_ok;
+parser_error_t _readJunctionV0(parser_context_t* c, pd_JunctionV0_t* v)
+{
+ CHECK_INPUT()
+ CHECK_ERROR(_readUInt8(c, &v->value))
+ switch (v->value) {
+ case 0: // Parent
+ break;
+ case 1: // Parachain
+ CHECK_ERROR(_readCompactu32(c, &v->parachain))
+ break;
+ case 2: // AccountId32
+ CHECK_ERROR(_readAccountId32(c, &v->accountId32))
+ break;
+ case 3: // AccountIndex64
+ CHECK_ERROR(_readAccountIndex64(c, &v->accountIndex64))
+ break;
+ case 4: // AccountKey20
+ CHECK_ERROR(_readAccountKey20(c, &v->accountKey20))
+ break;
+ case 5: // PalletInstance
+ CHECK_ERROR(_readUInt8(c, &v->palletInstance))
+ break;
+ case 6: // GeneralIndex
+ CHECK_ERROR(_readCompactu128(c, &v->generalIndex))
+ break;
+ case 7: // GeneralKey
+ CHECK_ERROR(_readBytes(c, &v->generalKey))
+ break;
+ case 8: // OnlyChild
+ break;
+ case 9: // Plurality
+ CHECK_ERROR(_readPlurality(c, &v->plurality))
+ break;
+ default:
+ return parser_unexpected_value;
}
-
- return parser_not_supported;
+ return parser_ok;
}
-parser_error_t _toStringu8(
- const pd_u8_t* v,
- char* outValue,
- uint16_t outValueLen,
- uint8_t pageIdx,
- uint8_t* pageCount)
+parser_error_t _readJunctionV1(parser_context_t* c, pd_JunctionV1_t* v)
{
- CLEAN_AND_CHECK()
- char bufferUI[50];
+ CHECK_INPUT()
+ CHECK_ERROR(_readUInt8(c, &v->value))
+ switch (v->value) {
+ case 0: // Parachain
+ CHECK_ERROR(_readCompactu32(c, &v->parachain))
+ break;
+ case 1: // AccountId32
+ CHECK_ERROR(_readAccountId32(c, &v->accountId32))
+ break;
+ case 2: // AccountIndex64
+ CHECK_ERROR(_readAccountIndex64(c, &v->accountIndex64))
+ break;
+ case 3: // AccountKey20
+ CHECK_ERROR(_readAccountKey20(c, &v->accountKey20))
+ break;
+ case 4: // PalletInstance
+ CHECK_ERROR(_readUInt8(c, &v->palletInstance))
+ break;
+ case 5: // GeneralIndex
+ CHECK_ERROR(_readCompactu128(c, &v->generalIndex))
+ break;
+ case 6: // GeneralKey
+ CHECK_ERROR(_readBytes(c, &v->generalKey))
+ break;
+ case 7: // OnlyChild
+ break;
+ case 8: // Plurality
+ CHECK_ERROR(_readPlurality(c, &v->plurality))
+ break;
+ default:
+ return parser_unexpected_value;
+ }
+ return parser_ok;
+}
- uint64_to_str(bufferUI, sizeof(bufferUI), *v);
- pageString(outValue, outValueLen, bufferUI, pageIdx, pageCount);
+parser_error_t _readJunctionV0X1(parser_context_t* c, pd_JunctionV0X1_t* v)
+{
+ CHECK_INPUT()
+ CHECK_ERROR(_readJunctionV0(c, &v->junction))
return parser_ok;
}
-parser_error_t _toStringu16(
- const pd_u16_t* v,
- char* outValue,
- uint16_t outValueLen,
- uint8_t pageIdx,
- uint8_t* pageCount)
+parser_error_t _readJunctionV0X2(parser_context_t* c, pd_JunctionV0X2_t* v)
{
- CLEAN_AND_CHECK()
- char bufferUI[50];
+ CHECK_INPUT()
+ CHECK_ERROR(_readJunctionV0(c, &v->junction0))
+ CHECK_ERROR(_readJunctionV0(c, &v->junction1))
+ return parser_ok;
+}
- uint64_to_str(bufferUI, sizeof(bufferUI), *v);
- pageString(outValue, outValueLen, bufferUI, pageIdx, pageCount);
+parser_error_t _readJunctionV0X3(parser_context_t* c, pd_JunctionV0X3_t* v)
+{
+ CHECK_INPUT()
+ CHECK_ERROR(_readJunctionV0(c, &v->junction0))
+ CHECK_ERROR(_readJunctionV0(c, &v->junction1))
+ CHECK_ERROR(_readJunctionV0(c, &v->junction2))
return parser_ok;
}
-parser_error_t _toStringu32(
- const pd_u32_t* v,
- char* outValue,
- uint16_t outValueLen,
- uint8_t pageIdx,
- uint8_t* pageCount)
+parser_error_t _readJunctionV0X4(parser_context_t* c, pd_JunctionV0X4_t* v)
{
- CLEAN_AND_CHECK()
- char bufferUI[100];
+ CHECK_INPUT()
+ CHECK_ERROR(_readJunctionV0(c, &v->junction0))
+ CHECK_ERROR(_readJunctionV0(c, &v->junction1))
+ CHECK_ERROR(_readJunctionV0(c, &v->junction2))
+ CHECK_ERROR(_readJunctionV0(c, &v->junction3))
+ return parser_ok;
+}
- uint64_to_str(bufferUI, sizeof(bufferUI), *v);
- pageString(outValue, outValueLen, bufferUI, pageIdx, pageCount);
+parser_error_t _readJunctionV0X5(parser_context_t* c, pd_JunctionV0X5_t* v)
+{
+ CHECK_INPUT()
+ CHECK_ERROR(_readJunctionV0(c, &v->junction0))
+ CHECK_ERROR(_readJunctionV0(c, &v->junction1))
+ CHECK_ERROR(_readJunctionV0(c, &v->junction2))
+ CHECK_ERROR(_readJunctionV0(c, &v->junction3))
+ CHECK_ERROR(_readJunctionV0(c, &v->junction4))
return parser_ok;
}
-parser_error_t _toStringu64(
- const pd_u64_t* v,
- char* outValue,
- uint16_t outValueLen,
- uint8_t pageIdx,
- uint8_t* pageCount)
+parser_error_t _readJunctionV0X6(parser_context_t* c, pd_JunctionV0X6_t* v)
{
- CLEAN_AND_CHECK()
- char bufferUI[100];
+ CHECK_INPUT()
+ CHECK_ERROR(_readJunctionV0(c, &v->junction0))
+ CHECK_ERROR(_readJunctionV0(c, &v->junction1))
+ CHECK_ERROR(_readJunctionV0(c, &v->junction2))
+ CHECK_ERROR(_readJunctionV0(c, &v->junction3))
+ CHECK_ERROR(_readJunctionV0(c, &v->junction4))
+ CHECK_ERROR(_readJunctionV0(c, &v->junction5))
+ return parser_ok;
+}
- uint64_to_str(bufferUI, sizeof(bufferUI), *v);
- pageString(outValue, outValueLen, bufferUI, pageIdx, pageCount);
+parser_error_t _readJunctionV0X7(parser_context_t* c, pd_JunctionV0X7_t* v)
+{
+ CHECK_INPUT()
+ CHECK_ERROR(_readJunctionV0(c, &v->junction0))
+ CHECK_ERROR(_readJunctionV0(c, &v->junction1))
+ CHECK_ERROR(_readJunctionV0(c, &v->junction2))
+ CHECK_ERROR(_readJunctionV0(c, &v->junction3))
+ CHECK_ERROR(_readJunctionV0(c, &v->junction4))
+ CHECK_ERROR(_readJunctionV0(c, &v->junction5))
+ CHECK_ERROR(_readJunctionV0(c, &v->junction6))
return parser_ok;
}
-parser_error_t _toStringBlockNumber(
- const pd_BlockNumber_t* v,
- char* outValue,
- uint16_t outValueLen,
- uint8_t pageIdx,
- uint8_t* pageCount)
+parser_error_t _readJunctionV0X8(parser_context_t* c, pd_JunctionV0X8_t* v)
{
- return _toStringu32(v, outValue, outValueLen, pageIdx, pageCount);
+ CHECK_INPUT()
+ CHECK_ERROR(_readJunctionV0(c, &v->junction0))
+ CHECK_ERROR(_readJunctionV0(c, &v->junction1))
+ CHECK_ERROR(_readJunctionV0(c, &v->junction2))
+ CHECK_ERROR(_readJunctionV0(c, &v->junction3))
+ CHECK_ERROR(_readJunctionV0(c, &v->junction4))
+ CHECK_ERROR(_readJunctionV0(c, &v->junction5))
+ CHECK_ERROR(_readJunctionV0(c, &v->junction6))
+ CHECK_ERROR(_readJunctionV0(c, &v->junction7))
+ return parser_ok;
}
-parser_error_t _toStringCompactu32(
- const pd_Compactu32_t* v,
- char* outValue,
- uint16_t outValueLen,
- uint8_t pageIdx,
- uint8_t* pageCount)
+parser_error_t _readJunctionV1X1(parser_context_t* c, pd_JunctionV1X1_t* v)
{
- return _toStringCompactInt(v, 0, false, "", "", outValue, outValueLen, pageIdx, pageCount);
+ CHECK_INPUT()
+ CHECK_ERROR(_readJunctionV1(c, &v->junction))
+ return parser_ok;
}
-parser_error_t _toStringCompactu64(
- const pd_Compactu64_t* v,
- char* outValue,
- uint16_t outValueLen,
- uint8_t pageIdx,
- uint8_t* pageCount)
+parser_error_t _readJunctionV1X2(parser_context_t* c, pd_JunctionV1X2_t* v)
{
- return _toStringCompactInt(v, 0, false, "", "", outValue, outValueLen, pageIdx, pageCount);
+ CHECK_INPUT()
+ CHECK_ERROR(_readJunctionV1(c, &v->junction0))
+ CHECK_ERROR(_readJunctionV1(c, &v->junction1))
+ return parser_ok;
}
-///////////////////////////////////
-///////////////////////////////////
-///////////////////////////////////
+parser_error_t _readJunctionV1X3(parser_context_t* c, pd_JunctionV1X3_t* v)
+{
+ CHECK_INPUT()
+ CHECK_ERROR(_readJunctionV1(c, &v->junction0))
+ CHECK_ERROR(_readJunctionV1(c, &v->junction1))
+ CHECK_ERROR(_readJunctionV1(c, &v->junction2))
+ return parser_ok;
+}
-parser_error_t _toStringCompactu128(
- const pd_Compactu128_t* v,
- char* outValue,
- uint16_t outValueLen,
- uint8_t pageIdx,
- uint8_t* pageCount)
+parser_error_t _readJunctionV1X4(parser_context_t* c, pd_JunctionV1X4_t* v)
{
- return _toStringCompactInt(v, 0, false, "", "", outValue, outValueLen, pageIdx, pageCount);
+ CHECK_INPUT()
+ CHECK_ERROR(_readJunctionV1(c, &v->junction0))
+ CHECK_ERROR(_readJunctionV1(c, &v->junction1))
+ CHECK_ERROR(_readJunctionV1(c, &v->junction2))
+ CHECK_ERROR(_readJunctionV1(c, &v->junction3))
+ return parser_ok;
}
-parser_error_t _toStringBalance(
- const pd_Balance_t* v,
- char* outValue,
- uint16_t outValueLen,
- uint8_t pageIdx,
- uint8_t* pageCount)
+parser_error_t _readJunctionV1X5(parser_context_t* c, pd_JunctionV1X5_t* v)
{
- CLEAN_AND_CHECK()
+ CHECK_INPUT()
+ CHECK_ERROR(_readJunctionV1(c, &v->junction0))
+ CHECK_ERROR(_readJunctionV1(c, &v->junction1))
+ CHECK_ERROR(_readJunctionV1(c, &v->junction2))
+ CHECK_ERROR(_readJunctionV1(c, &v->junction3))
+ CHECK_ERROR(_readJunctionV1(c, &v->junction4))
+ return parser_ok;
+}
- char bufferUI[200];
- memset(outValue, 0, outValueLen);
- memset(bufferUI, 0, sizeof(bufferUI));
- *pageCount = 1;
+parser_error_t _readJunctionV1X6(parser_context_t* c, pd_JunctionV1X6_t* v)
+{
+ CHECK_INPUT()
+ CHECK_ERROR(_readJunctionV1(c, &v->junction0))
+ CHECK_ERROR(_readJunctionV1(c, &v->junction1))
+ CHECK_ERROR(_readJunctionV1(c, &v->junction2))
+ CHECK_ERROR(_readJunctionV1(c, &v->junction3))
+ CHECK_ERROR(_readJunctionV1(c, &v->junction4))
+ CHECK_ERROR(_readJunctionV1(c, &v->junction5))
+ return parser_ok;
+}
- uint8_t bcdOut[100];
- const uint16_t bcdOutLen = sizeof(bcdOut);
+parser_error_t _readJunctionV1X7(parser_context_t* c, pd_JunctionV1X7_t* v)
+{
+ CHECK_INPUT()
+ CHECK_ERROR(_readJunctionV1(c, &v->junction0))
+ CHECK_ERROR(_readJunctionV1(c, &v->junction1))
+ CHECK_ERROR(_readJunctionV1(c, &v->junction2))
+ CHECK_ERROR(_readJunctionV1(c, &v->junction3))
+ CHECK_ERROR(_readJunctionV1(c, &v->junction4))
+ CHECK_ERROR(_readJunctionV1(c, &v->junction5))
+ CHECK_ERROR(_readJunctionV1(c, &v->junction6))
+ return parser_ok;
+}
- bignumLittleEndian_to_bcd(bcdOut, bcdOutLen, v->_ptr, 16);
- if (!bignumLittleEndian_bcdprint(bufferUI, sizeof(bufferUI), bcdOut, bcdOutLen)) {
- return parser_unexpected_buffer_end;
- }
+parser_error_t _readJunctionV1X8(parser_context_t* c, pd_JunctionV1X8_t* v)
+{
+ CHECK_INPUT()
+ CHECK_ERROR(_readJunctionV1(c, &v->junction0))
+ CHECK_ERROR(_readJunctionV1(c, &v->junction1))
+ CHECK_ERROR(_readJunctionV1(c, &v->junction2))
+ CHECK_ERROR(_readJunctionV1(c, &v->junction3))
+ CHECK_ERROR(_readJunctionV1(c, &v->junction4))
+ CHECK_ERROR(_readJunctionV1(c, &v->junction5))
+ CHECK_ERROR(_readJunctionV1(c, &v->junction6))
+ CHECK_ERROR(_readJunctionV1(c, &v->junction7))
+ return parser_ok;
+}
- // Format number
- if (intstr_to_fpstr_inplace(bufferUI, sizeof(bufferUI), COIN_AMOUNT_DECIMAL_PLACES) == 0) {
+parser_error_t _readJunctionsV0(parser_context_t* c, pd_JunctionsV0_t* v)
+{
+ CHECK_INPUT()
+ CHECK_ERROR(_readUInt8(c, &v->value))
+ switch (v->value) {
+ case 0: // Null
+ break;
+ case 1: // X1
+ CHECK_ERROR(_readJunctionV0X1(c, &v->x1))
+ break;
+ case 2: // X2
+ CHECK_ERROR(_readJunctionV0X2(c, &v->x2))
+ break;
+ case 3: // X3
+ CHECK_ERROR(_readJunctionV0X3(c, &v->x3))
+ break;
+ case 4: // X4
+ CHECK_ERROR(_readJunctionV0X4(c, &v->x4))
+ break;
+ case 5: // X5
+ CHECK_ERROR(_readJunctionV0X5(c, &v->x5))
+ break;
+ case 6: // X6
+ CHECK_ERROR(_readJunctionV0X6(c, &v->x6))
+ break;
+ case 7: // X7
+ CHECK_ERROR(_readJunctionV0X7(c, &v->x7))
+ break;
+ case 8: // X8
+ CHECK_ERROR(_readJunctionV0X8(c, &v->x8))
+ break;
+ default:
return parser_unexpected_value;
}
+ return parser_ok;
+}
- number_inplace_trimming(bufferUI, 1);
- number_inplace_trimming(bufferUI, 1);
- if (z_str3join(bufferUI, sizeof(bufferUI), COIN_TICKER, "") != zxerr_ok) {
- return parser_print_not_supported;
+parser_error_t _readJunctionsV1(parser_context_t* c, pd_JunctionsV1_t* v)
+{
+ CHECK_INPUT()
+ CHECK_ERROR(_readUInt8(c, &v->value))
+ switch (v->value) {
+ case 0: // Here
+ break;
+ case 1: // X1
+ CHECK_ERROR(_readJunctionV1X1(c, &v->x1))
+ break;
+ case 2: // X2
+ CHECK_ERROR(_readJunctionV1X2(c, &v->x2))
+ break;
+ case 3: // X3
+ CHECK_ERROR(_readJunctionV1X3(c, &v->x3))
+ break;
+ case 4: // X4
+ CHECK_ERROR(_readJunctionV1X4(c, &v->x4))
+ break;
+ case 5: // X5
+ CHECK_ERROR(_readJunctionV1X5(c, &v->x5))
+ break;
+ case 6: // X6
+ CHECK_ERROR(_readJunctionV1X6(c, &v->x6))
+ break;
+ case 7: // X7
+ CHECK_ERROR(_readJunctionV1X7(c, &v->x7))
+ break;
+ case 8: // X8
+ CHECK_ERROR(_readJunctionV1X8(c, &v->x8))
+ break;
+ default:
+ return parser_unexpected_value;
}
-
- pageString(outValue, outValueLen, bufferUI, pageIdx, pageCount);
return parser_ok;
}
+parser_error_t _readAssetInstance(parser_context_t* c, pd_AssetInstance_t* v)
+{
+ CHECK_INPUT()
+ CHECK_ERROR(_readUInt8(c, &v->value))
+ switch (v->value) {
+ case 0: // Undefined
+ // Empty
+ break;
+ case 1: // Index
+ CHECK_ERROR(_readCompactu128(c, &v->index))
+ break;
+ case 2: // array4
+ GEN_DEF_READARRAY(4)
+ break;
+ case 3: // array8
+ GEN_DEF_READARRAY(8)
+ break;
+ case 4: // array16
+ GEN_DEF_READARRAY(16)
+ break;
+ case 5: // array32
+ GEN_DEF_READARRAY(32)
+ break;
+ case 6: // blob
+ CHECK_ERROR(_readBytes(c, &v->blob))
+ break;
+ default:
+ return parser_unexpected_value;
+ }
+
+ return parser_ok;
+}
+
+parser_error_t _readMultiLocationV0(parser_context_t* c, pd_MultiLocationV0_t* v)
+{
+ CHECK_INPUT()
+ CHECK_ERROR(_readJunctionsV0(c, &v->junctions))
+ return parser_ok;
+}
+
+parser_error_t _readMultiLocationV1(parser_context_t* c, pd_MultiLocationV1_t* v)
+{
+ CHECK_INPUT()
+ CHECK_ERROR(_readUInt8(c, &v->parents))
+ CHECK_ERROR(_readJunctionsV1(c, &v->interior))
+ return parser_ok;
+}
+
+parser_error_t _readAbstractFungible(parser_context_t* c, pd_AbstractFungible_t* v)
+{
+ CHECK_INPUT()
+ CHECK_ERROR(_readBytes(c, &v->id))
+ CHECK_ERROR(_readCompactu128(c, &v->amount))
+ return parser_ok;
+}
+
+parser_error_t _readAbstractNonFungible(parser_context_t* c, pd_AbstractNonFungible_t* v)
+{
+ CHECK_INPUT()
+ CHECK_ERROR(_readBytes(c, &v->_class))
+ CHECK_ERROR(_readAssetInstance(c, &v->instance))
+ return parser_ok;
+}
+
+parser_error_t _readBalance(parser_context_t* c, pd_Balance_t* v) {
+ GEN_DEF_READARRAY(16)
+}
+
+parser_error_t _readConcreteFungible(parser_context_t* c, pd_ConcreteFungible_t* v)
+{
+ CHECK_INPUT()
+ CHECK_ERROR(_readMultiLocationV0(c, &v->id))
+ CHECK_ERROR(_readCompactBalance(c, &v->amount))
+ return parser_ok;
+}
+
+parser_error_t _readConcreteNonFungible(parser_context_t* c, pd_ConcreteNonFungible_t* v)
+{
+ CHECK_INPUT()
+ CHECK_ERROR(_readMultiLocationV0(c, &v->_class))
+ CHECK_ERROR(_readAssetInstance(c, &v->instance))
+ return parser_ok;
+}
+
+parser_error_t _readData(parser_context_t* c, pd_Data_t* v)
+{
+ CHECK_INPUT()
+ CHECK_ERROR(_readUInt8(c, &v->value))
+ if (v->value <= 1) {
+ return parser_ok;
+ } else if (v->value <= 37) {
+ const uint8_t length = v->value <= 32 ? v->value - 1 : 32;
+ GEN_DEF_READARRAY(length)
+ } else {
+ return parser_unexpected_value;
+ }
+ return parser_ok;
+}
+
+parser_error_t _readFungibility(parser_context_t* c, pd_Fungibility_t* v)
+{
+ CHECK_INPUT()
+ CHECK_ERROR(_readUInt8(c, &v->value))
+ switch (v->value) {
+ case 0: // Undefined
+ CHECK_ERROR(_readCompactu128(c, &v->fungible))
+ break;
+ case 1: // Index
+ CHECK_ERROR(_readAssetInstance(c, &v->nonFungible))
+ break;
+ default:
+ return parser_unexpected_value;
+ }
+
+ return parser_ok;
+}
+
+parser_error_t _readMultiAssetId(parser_context_t* c, pd_MultiAssetId_t* v)
+{
+ CHECK_INPUT()
+ CHECK_ERROR(_readUInt8(c, &v->value))
+ switch (v->value) {
+ case 0: // Concrete
+ CHECK_ERROR(_readMultiLocationV1(c, &v->concrete))
+ break;
+ case 1: // Abstract
+ CHECK_ERROR(_readBytes(c, &v->abstract))
+ break;
+ default:
+ return parser_unexpected_value;
+ }
+ return parser_ok;
+}
+
+parser_error_t _readAccountId(parser_context_t* c, pd_AccountId_t* v) {
+ GEN_DEF_READARRAY(32)
+}
+
+parser_error_t _readBalanceOf(parser_context_t* c, pd_BalanceOf_t* v)
+{
+ return _readBalance(c, &v->value);
+}
+
+parser_error_t _readCompactAccountIndex(parser_context_t* c, pd_CompactAccountIndex_t* v)
+{
+ return _readCompactInt(c, &v->value);
+}
+
+parser_error_t _readEcdsaPublic(parser_context_t* c, pd_EcdsaPublic_t* v) {
+ GEN_DEF_READARRAY(33)
+}
+
+parser_error_t _readEcdsaSignature(parser_context_t* c, pd_EcdsaSignature_t* v) {
+ GEN_DEF_READARRAY(65)
+}
+
+parser_error_t _readEd25519Public(parser_context_t* c, pd_Ed25519Public_t* v) {
+ GEN_DEF_READARRAY(32)
+}
+
+parser_error_t _readEd25519Signature(parser_context_t* c, pd_Ed25519Signature_t* v) {
+ GEN_DEF_READARRAY(64)
+}
+
+parser_error_t _readH256(parser_context_t* c, pd_H256_t* v) {
+ GEN_DEF_READARRAY(32)
+}
+
+parser_error_t _readMultiAssetV0(parser_context_t* c, pd_MultiAssetV0_t* v)
+{
+ CHECK_INPUT()
+ CHECK_ERROR(_readUInt8(c, &v->value))
+ switch (v->value) {
+ case 0: // None
+ case 1: // All
+ case 2: // AllFungible
+ case 3: // AllNonFungible
+ break;
+ case 4: // AllAbstractFungible
+ case 5: // AllAbstractNonFungible
+ CHECK_ERROR(_readBytes(c, &v->abstract))
+ break;
+ case 6: // AllConcreteFungible
+ case 7: // AllConcreteNonFungible
+ CHECK_ERROR(_readMultiLocationV0(c, &v->concrete))
+ break;
+ case 8: // AbstractFungible
+ CHECK_ERROR(_readAbstractFungible(c, &v->abstractFungible))
+ break;
+ case 9: // AbstractNonFungible
+ CHECK_ERROR(_readAbstractNonFungible(c, &v->abstractNonFungible))
+ break;
+ case 10: // ConcreteFungible
+ CHECK_ERROR(_readConcreteFungible(c, &v->concreteFungible))
+ break;
+ case 11: // ConcreteNonFungible
+ CHECK_ERROR(_readConcreteNonFungible(c, &v->concreteNonFungible))
+ break;
+ default:
+ return parser_unexpected_value;
+ }
+ return parser_ok;
+}
+
+parser_error_t _readMultiAssetV1(parser_context_t* c, pd_MultiAssetV1_t* v)
+{
+ CHECK_INPUT()
+ CHECK_ERROR(_readMultiAssetId(c, &v->assetId))
+ CHECK_ERROR(_readFungibility(c, &v->fungibility))
+ return parser_ok;
+}
+
+parser_error_t _readSr25519Public(parser_context_t* c, pd_Sr25519Public_t* v) {
+ GEN_DEF_READARRAY(32)
+}
+
+parser_error_t _readSr25519Signature(parser_context_t* c, pd_Sr25519Signature_t* v) {
+ GEN_DEF_READARRAY(64)
+}
+
+parser_error_t _readTupleDataData(parser_context_t* c, pd_TupleDataData_t* v)
+{
+ CHECK_INPUT()
+ CHECK_ERROR(_readData(c, &v->data1))
+ CHECK_ERROR(_readData(c, &v->data2))
+ return parser_ok;
+}
+
+parser_error_t _readVote(parser_context_t* c, pd_Vote_t* v)
+{
+ CHECK_INPUT()
+ CHECK_ERROR(_readUInt8(c, &v->value))
+ const uint8_t aye = v->value & 0xF0;
+ const uint8_t conviction = v->value & 0x0F;
+ if ((aye == 0x80 || aye == 0x00) && conviction <= 0x06) {
+ return parser_ok;
+ }
+ return parser_value_out_of_range;
+}
+
+parser_error_t _readAccountIdLookupOfT(parser_context_t* c, pd_AccountIdLookupOfT_t* v)
+{
+ CHECK_INPUT()
+ CHECK_ERROR(_readUInt8(c, &v->value))
+ switch (v->value) {
+ case 0: // Id
+ CHECK_ERROR(_readAccountId(c, &v->id))
+ break;
+ case 1: // Index
+ CHECK_ERROR(_readCompactAccountIndex(c, &v->index))
+ break;
+ case 2: // Raw
+ CHECK_ERROR(_readBytes(c, &v->raw))
+ break;
+ case 3: // Address32
+ GEN_DEF_READARRAY(32)
+ break;
+ case 4: // Address20
+ GEN_DEF_READARRAY(20)
+ break;
+ default:
+ return parser_unexpected_value;
+ }
+
+ return parser_ok;
+}
+
+parser_error_t _readAccountVoteSplit(parser_context_t* c, pd_AccountVoteSplit_t* v)
+{
+ CHECK_ERROR(_readBalanceOf(c, &v->aye));
+ CHECK_ERROR(_readBalanceOf(c, &v->nay));
+ return parser_ok;
+}
+
+parser_error_t _readAccountVoteStandard(parser_context_t* c, pd_AccountVoteStandard_t* v)
+{
+ CHECK_ERROR(_readVote(c, &v->vote));
+ CHECK_ERROR(_readBalanceOf(c, &v->balance));
+ return parser_ok;
+}
+
+parser_error_t _readCall(parser_context_t* c, pd_Call_t* v)
+{
+ pd_MethodNested_t _method;
+ if (c->tx_obj->nestCallIdx.isTail) {
+ c->tx_obj->nestCallIdx.isTail = false;
+ v->nestCallIdx.isTail = true;
+ } else {
+ v->nestCallIdx.isTail = false;
+ }
+
+ CHECK_ERROR(_readCallImpl(c, v, &_method))
+ if (c->tx_obj->nestCallIdx._ptr != NULL && c->tx_obj->nestCallIdx._nextPtr != NULL) {
+ v->nestCallIdx._ptr = c->tx_obj->nestCallIdx._ptr;
+ v->nestCallIdx._nextPtr = c->tx_obj->nestCallIdx._nextPtr;
+ }
+ v->nestCallIdx.slotIdx = c->tx_obj->nestCallIdx.slotIdx;
+ return parser_ok;
+}
+
+parser_error_t _readClassOf(parser_context_t* c, pd_ClassOf_t* v)
+{
+ CHECK_INPUT()
+ CHECK_ERROR(_readUInt16(c, &v->value))
+ return parser_ok;
+}
+
+parser_error_t _readCompactPerBill(parser_context_t* c, pd_CompactPerBill_t* v)
+{
+ return _readCompactInt(c, &v->value);
+}
+
+parser_error_t _readMultiSignature(parser_context_t* c, pd_MultiSignature_t* v)
+{
+ CHECK_INPUT()
+ CHECK_ERROR(_readUInt8(c, &v->value))
+ switch (v->value) {
+ case 0: // Ed25519
+ CHECK_ERROR(_readEd25519Signature(c, &v->ed25519))
+ break;
+ case 1: // Sr25519
+ CHECK_ERROR(_readSr25519Signature(c, &v->sr25519))
+ break;
+ case 2: // Ecdsa
+ CHECK_ERROR(_readEcdsaSignature(c, &v->ecdsa))
+ break;
+ default:
+ return parser_unexpected_value;
+ }
+
+ return parser_ok;
+}
+
+parser_error_t _readMultiSigner(parser_context_t* c, pd_MultiSigner_t* v)
+{
+ CHECK_INPUT()
+ CHECK_ERROR(_readUInt8(c, &v->value))
+ switch (v->value) {
+ case 0: // Ed25519
+ CHECK_ERROR(_readEd25519Public(c, &v->ed25519))
+ break;
+ case 1: // Sr25519
+ CHECK_ERROR(_readSr25519Public(c, &v->sr25519))
+ break;
+ case 2: // Ecdsa
+ CHECK_ERROR(_readEcdsaPublic(c, &v->ecdsa))
+ break;
+ default:
+ return parser_unexpected_value;
+ }
+
+ return parser_ok;
+}
+
+parser_error_t _readPerbill(parser_context_t* c, pd_Perbill_t* v)
+{
+ CHECK_INPUT()
+ CHECK_ERROR(_readUInt32(c, &v->value))
+ return parser_ok;
+}
+
+parser_error_t _readPercent(parser_context_t* c, pd_Percent_t* v)
+{
+ CHECK_INPUT()
+ CHECK_ERROR(_readUInt8(c, &v->value))
+ return parser_ok;
+}
+
+parser_error_t _readProxyType(parser_context_t* c, pd_ProxyType_t* v)
+{
+ CHECK_ERROR(_readUInt8(c, &v->value))
+ if (v->value > 7) {
+ return parser_unexpected_value;
+ }
+ return parser_ok;
+}
+
+parser_error_t _readReferendumIndex(parser_context_t* c, pd_ReferendumIndex_t* v)
+{
+ CHECK_INPUT()
+ CHECK_ERROR(_readUInt32(c, &v->value))
+ return parser_ok;
+}
+
+parser_error_t _readTimepoint(parser_context_t* c, pd_Timepoint_t* v)
+{
+ CHECK_ERROR(_readBlockNumber(c, &v->height))
+ CHECK_ERROR(_readu32(c, &v->index))
+ return parser_ok;
+}
+
+parser_error_t _readTupleAccountIdData(parser_context_t* c, pd_TupleAccountIdData_t* v)
+{
+ CHECK_INPUT()
+ CHECK_ERROR(_readAccountId(c, &v->id));
+ CHECK_ERROR(_readData(c, &v->data));
+ return parser_ok;
+}
+
+parser_error_t _readTupleH256u32(parser_context_t* c, pd_TupleH256u32_t* v)
+{
+ CHECK_INPUT()
+ CHECK_ERROR(_readH256(c, &v->h256))
+ CHECK_ERROR(_readUInt32(c, &v->u32))
+ return parser_ok;
+}
+
+parser_error_t _readu128(parser_context_t* c, pd_u128_t* v) {
+ GEN_DEF_READARRAY(16)
+}
+
+parser_error_t _readAccountVote(parser_context_t* c, pd_AccountVote_t* v)
+{
+ CHECK_INPUT()
+ CHECK_ERROR(_readUInt8(c, &v->value))
+
+ switch (v->value) {
+ case 0:
+ CHECK_ERROR(_readAccountVoteStandard(c, &v->voteStandard))
+ break;
+ case 1:
+ CHECK_ERROR(_readAccountVoteSplit(c, &v->voteSplit))
+ break;
+ default:
+ break;
+ }
+
+ return parser_ok;
+}
+
+parser_error_t _readBondExtraBalanceOfT(parser_context_t* c, pd_BondExtraBalanceOfT_t* v)
+{
+ CHECK_INPUT()
+ CHECK_ERROR(_readUInt8(c, &v->value))
+ switch (v->value) {
+ case 0:
+ CHECK_ERROR(_readBalance(c, &v->freeBalance))
+ break;
+ case 1: // Rewards
+ break;
+ default:
+ return parser_unexpected_value;
+ }
+ return parser_ok;
+}
+
+parser_error_t _readBoundedCallOfT(parser_context_t* c, pd_BoundedCallOfT_t* v)
+{
+ CHECK_INPUT()
+ CHECK_ERROR(_readUInt8(c, &v->value))
+ switch (v->value) {
+ case 0:
+ CHECK_ERROR(_readH256(c, &v->legacy))
+ break;
+ case 1:
+ CHECK_ERROR(_readBytes(c, &v->_inline))
+ break;
+ case 2:
+ CHECK_ERROR(_readTupleH256u32(c, &v->lookup))
+ break;
+ default:
+ return parser_unexpected_value;
+ }
+ return parser_ok;
+}
+
+parser_error_t _readBoxVersionedMultiAssets(parser_context_t* c, pd_BoxVersionedMultiAssets_t* v)
+{
+ CHECK_INPUT()
+ CHECK_ERROR(_readUInt8(c, &v->value))
+ switch (v->value) {
+ case 0: // V0
+ CHECK_ERROR(_readVecMultiAssetV0(c, &v->vecMultiassetV0))
+ break;
+ case 1: // V1
+ CHECK_ERROR(_readVecMultiAssetV1(c, &v->vecMultiassetV1))
+ break;
+ default:
+ return parser_unexpected_value;
+ }
+
+ return parser_ok;
+}
+
+parser_error_t _readBoxVersionedMultiLocation(parser_context_t* c, pd_BoxVersionedMultiLocation_t* v)
+{
+ CHECK_INPUT()
+ CHECK_ERROR(_readUInt8(c, &v->value))
+ switch (v->value) {
+ case 0: // V0
+ CHECK_ERROR(_readMultiLocationV0(c, &v->multilocationV0))
+ break;
+ case 1: // V1
+ CHECK_ERROR(_readMultiLocationV1(c, &v->multilocationV1))
+ break;
+ default:
+ return parser_unexpected_value;
+ }
+
+ return parser_ok;
+}
+
+parser_error_t _readConfigOpAccountId(parser_context_t* c, pd_ConfigOpAccountId_t* v)
+{
+ CHECK_INPUT()
+ CHECK_ERROR(_readUInt8(c, &v->value))
+ switch (v->value) {
+ case 0: // Noop
+ case 2: // Remove
+ break;
+ case 1:
+ CHECK_ERROR(_readAccountId(c, &v->set))
+ break;
+ default:
+ return parser_unexpected_value;
+ }
+ return parser_ok;
+}
+
+parser_error_t _readConfigOpBalanceOfT(parser_context_t* c, pd_ConfigOpBalanceOfT_t* v)
+{
+ CHECK_INPUT()
+ CHECK_ERROR(_readUInt8(c, &v->value))
+ switch (v->value) {
+ case 0: // Noop
+ case 2: // Remove
+ break;
+ case 1:
+ CHECK_ERROR(_readBalance(c, &v->set))
+ break;
+ default:
+ return parser_unexpected_value;
+ }
+ return parser_ok;
+}
+
+parser_error_t _readConfigOpPerbill(parser_context_t* c, pd_ConfigOpPerbill_t* v)
+{
+ CHECK_INPUT()
+ CHECK_ERROR(_readUInt8(c, &v->value))
+ switch (v->value) {
+ case 0: // Noop
+ case 2: // Remove
+ break;
+ case 1:
+ CHECK_ERROR(_readPerbill(c, &v->set))
+ break;
+ default:
+ return parser_unexpected_value;
+ }
+ return parser_ok;
+}
+
+parser_error_t _readConfigOpPercent(parser_context_t* c, pd_ConfigOpPercent_t* v)
+{
+ CHECK_INPUT()
+ CHECK_ERROR(_readUInt8(c, &v->value))
+ switch (v->value) {
+ case 0: // Noop
+ case 2: // Remove
+ break;
+ case 1:
+ CHECK_ERROR(_readPercent(c, &v->set))
+ break;
+ default:
+ return parser_unexpected_value;
+ }
+ return parser_ok;
+}
+
+parser_error_t _readIdentityInfo(parser_context_t* c, pd_IdentityInfo_t* v)
+{
+ CHECK_INPUT()
+ CHECK_ERROR(_readVecTupleDataData(c, &v->additional));
+ CHECK_ERROR(_readData(c, &v->display));
+ CHECK_ERROR(_readData(c, &v->legal));
+ CHECK_ERROR(_readData(c, &v->web));
+ CHECK_ERROR(_readData(c, &v->riot));
+ CHECK_ERROR(_readData(c, &v->email));
+ CHECK_ERROR(_readOptionu8_array_20(c, &v->pgp_fingerprint));
+ CHECK_ERROR(_readData(c, &v->image));
+ CHECK_ERROR(_readData(c, &v->twitter));
+ return parser_ok;
+}
+
+parser_error_t _readJudgementBalanceOfT(parser_context_t* c, pd_JudgementBalanceOfT_t* v)
+{
+ CHECK_INPUT()
+ CHECK_ERROR(_readUInt8(c, &v->value))
+ switch (v->value) {
+ case 0: // Unknown
+ case 2: // Reasonable
+ case 3: // KnownGood
+ case 4: // OutOfDate
+ case 5: // LowQuality
+ case 6: // Erroneous
+ break;
+ case 1: // FeePaid
+ CHECK_ERROR(_readBalance(c, &v->feePaid))
+ break;
+ default:
+ return parser_unexpected_value;
+ }
+ return parser_ok;
+}
+
+parser_error_t _readOptionMultiSigner(parser_context_t* c, pd_OptionMultiSigner_t* v)
+{
+ CHECK_ERROR(_readUInt8(c, &v->some))
+ if (v->some > 0) {
+ CHECK_ERROR(_readMultiSigner(c, &v->verifier))
+ }
+ return parser_ok;
+}
+
+parser_error_t _readProposal(parser_context_t* c, pd_Proposal_t* v)
+{
+ return _readCall(c, &v->call);
+}
+
+parser_error_t _readRewardDestination(parser_context_t* c, pd_RewardDestination_t* v)
+{
+ CHECK_INPUT()
+ CHECK_ERROR(_readUInt8(c, &v->value))
+
+ if (v->value == 3) {
+ CHECK_ERROR(_readAccountId(c, &v->accountId))
+ } else if (v->value > 4) {
+ return parser_value_out_of_range;
+ }
+ return parser_ok;
+}
+
+parser_error_t _readValidatorPrefs(parser_context_t* c, pd_ValidatorPrefs_t* v)
+{
+ CHECK_INPUT()
+ CHECK_ERROR(_readCompactPerBill(c, &v->commission));
+ CHECK_ERROR(_readbool(c, &v->blocked))
+ return parser_ok;
+}
+
+parser_error_t _readVecCall(parser_context_t* c, pd_VecCall_t* v)
+{
+ compactInt_t clen;
+ pd_Call_t dummy;
+ CHECK_PARSER_ERR(_readCompactInt(c, &clen));
+ CHECK_PARSER_ERR(_getValue(&clen, &v->_len));
+
+ if (v->_len > MAX_CALL_VEC_SIZE) {
+ return parser_tx_call_vec_too_large;
+ }
+
+ v->_ptr = c->buffer + c->offset;
+ v->_lenBuffer = c->offset;
+ if (v->_len == 0) {
+ return parser_unexpected_buffer_end;
+ }
+
+ for (uint64_t i = 0; i < v->_len; i++) {
+ c->tx_obj->nestCallIdx.slotIdx = 0;
+ CHECK_ERROR(_readCall(c, &dummy))
+ }
+ v->_lenBuffer = c->offset - v->_lenBuffer;
+ v->callTxVersion = c->tx_obj->transactionVersion;
+
+ return parser_ok;
+}
+
+parser_error_t _readVestingInfo(parser_context_t* c, pd_VestingInfo_t* v)
+{
+ CHECK_ERROR(_readBalanceOf(c, &v->locked))
+ CHECK_ERROR(_readBalanceOf(c, &v->per_block))
+ CHECK_ERROR(_readBlockNumber(c, &v->starting_block))
+ return parser_ok;
+}
+
+parser_error_t _readWeightLimit(parser_context_t* c, pd_WeightLimit_t* v)
+{
+ CHECK_INPUT()
+ CHECK_ERROR(_readUInt8(c, &v->value))
+ switch (v->value) {
+ case 0: // Unlimited
+ break;
+ case 1: // Limited
+ CHECK_ERROR(_readCompactu64(c, &v->limited))
+ break;
+ default:
+ return parser_unexpected_value;
+ }
+ return parser_ok;
+}
+
+parser_error_t _readWeight(parser_context_t* c, pd_Weight_t* v)
+{
+ CHECK_INPUT()
+ CHECK_ERROR(_readCompactu64(c, &v->refTime))
+ CHECK_ERROR(_readCompactu64(c, &v->proofSize))
+ return parser_ok;
+}
+
+parser_error_t _readAccountIndex(parser_context_t* c, pd_AccountIndex_t* v)
+{
+ CHECK_INPUT()
+ CHECK_ERROR(_readUInt32(c, &v->value))
+ return parser_ok;
+}
+
+parser_error_t _readConfigOpu32(parser_context_t* c, pd_ConfigOpu32_t* v)
+{
+ CHECK_INPUT()
+ CHECK_ERROR(_readUInt8(c, &v->value))
+ switch (v->value) {
+ case 0: // Noop
+ case 2: // Remove
+ break;
+ case 1:
+ CHECK_ERROR(_readUInt32(c, &v->set))
+ break;
+ default:
+ return parser_unexpected_value;
+ }
+ return parser_ok;
+}
+
+parser_error_t _readConviction(parser_context_t* c, pd_Conviction_t* v)
+{
+ CHECK_INPUT()
+ CHECK_ERROR(_readUInt8(c, &v->value))
+ if (v->value > 5) {
+ return parser_value_out_of_range;
+ }
+ return parser_ok;
+}
+
+parser_error_t _readEraIndex(parser_context_t* c, pd_EraIndex_t* v)
+{
+ CHECK_INPUT()
+ CHECK_ERROR(_readUInt32(c, &v->value))
+ return parser_ok;
+}
+
+parser_error_t _readEthereumAddress(parser_context_t* c, pd_EthereumAddress_t* v) {
+ GEN_DEF_READARRAY(20)
+}
+
+parser_error_t _readHash(parser_context_t* c, pd_Hash_t* v) {
+ GEN_DEF_READARRAY(32)
+}
+
+parser_error_t _readKeys(parser_context_t* c, pd_Keys_t* v) {
+ GEN_DEF_READARRAY(6 * 32)
+}
+
+parser_error_t _readMemberCount(parser_context_t* c, pd_MemberCount_t* v)
+{
+ CHECK_INPUT()
+ CHECK_ERROR(_readUInt32(c, &v->value))
+ return parser_ok;
+}
+
+parser_error_t _readOverweightIndex(parser_context_t* c, pd_OverweightIndex_t* v)
+{
+ CHECK_INPUT()
+ CHECK_ERROR(_readUInt64(c, &v->value))
+ return parser_ok;
+}
+
+parser_error_t _readParaId(parser_context_t* c, pd_ParaId_t* v)
+{
+ CHECK_INPUT()
+ CHECK_ERROR(_readUInt32(c, &v->value))
+ return parser_ok;
+}
+
+parser_error_t _readPollIndexOf(parser_context_t* c, pd_PollIndexOf_t* v)
+{
+ CHECK_INPUT()
+ CHECK_ERROR(_readUInt32(c, &v->value))
+ return parser_ok;
+}
+
+parser_error_t _readPoolId(parser_context_t* c, pd_PoolId_t* v)
+{
+ CHECK_INPUT()
+ CHECK_ERROR(_readUInt32(c, &v->value))
+ return parser_ok;
+}
+
+parser_error_t _readPoolState(parser_context_t* c, pd_PoolState_t* v)
+{
+ CHECK_INPUT()
+ CHECK_ERROR(_readUInt8(c, &v->value))
+ return parser_ok;
+}
+
+parser_error_t _readPreimageHash(parser_context_t* c, pd_PreimageHash_t* v) {
+ GEN_DEF_READARRAY(32)
+}
+
+parser_error_t _readRank(parser_context_t* c, pd_Rank_t* v)
+{
+ CHECK_INPUT()
+ CHECK_ERROR(_readUInt16(c, &v->value))
+ return parser_ok;
+}
+
+parser_error_t _readRegistrarIndex(parser_context_t* c, pd_RegistrarIndex_t* v)
+{
+ CHECK_INPUT()
+ CHECK_ERROR(_readUInt32(c, &v->value))
+ return parser_ok;
+}
+
+parser_error_t _readSessionIndex(parser_context_t* c, pd_SessionIndex_t* v)
+{
+ return _readUInt32(c, &v->value);
+}
+
+parser_error_t _readTrackIdOf(parser_context_t* c, pd_TrackIdOf_t* v)
+{
+ CHECK_INPUT()
+ CHECK_ERROR(_readUInt16(c, &v->value))
+ return parser_ok;
+}
+
+parser_error_t _readVecMultiAssetV0(parser_context_t* c, pd_VecMultiAssetV0_t* v) {
+ GEN_DEF_READVECTOR(MultiAssetV0)
+}
+
+parser_error_t _readVecMultiAssetV1(parser_context_t* c, pd_VecMultiAssetV1_t* v) {
+ GEN_DEF_READVECTOR(MultiAssetV1)
+}
+
+parser_error_t _readVecTupleDataData(parser_context_t* c, pd_VecTupleDataData_t* v) {
+ GEN_DEF_READVECTOR(TupleDataData)
+}
+
+parser_error_t _readVecAccountIdLookupOfT(parser_context_t* c, pd_VecAccountIdLookupOfT_t* v) {
+ GEN_DEF_READVECTOR(AccountIdLookupOfT)
+}
+
+parser_error_t _readVecTupleAccountIdData(parser_context_t* c, pd_VecTupleAccountIdData_t* v) {
+ GEN_DEF_READVECTOR(TupleAccountIdData)
+}
+
+parser_error_t _readVecAccountId(parser_context_t* c, pd_VecAccountId_t* v) {
+ GEN_DEF_READVECTOR(AccountId)
+}
+
+parser_error_t _readVecu32(parser_context_t* c, pd_Vecu32_t* v) {
+ GEN_DEF_READVECTOR(u32)
+}
+
+parser_error_t _readVecu8(parser_context_t* c, pd_Vecu8_t* v) {
+ GEN_DEF_READVECTOR(u8)
+}
+
+parser_error_t _readOptionu8_array_20(parser_context_t* c, pd_Optionu8_array_20_t* v)
+{
+ CHECK_ERROR(_readUInt8(c, &v->some))
+ if (v->some > 0) {
+ CHECK_ERROR(_readu8_array_20(c, &v->contained))
+ }
+ return parser_ok;
+}
+
+parser_error_t _readOptionMultiSignature(parser_context_t* c, pd_OptionMultiSignature_t* v)
+{
+ CHECK_ERROR(_readUInt8(c, &v->some))
+ if (v->some > 0) {
+ CHECK_ERROR(_readMultiSignature(c, &v->contained))
+ }
+ return parser_ok;
+}
+
+parser_error_t _readOptionTimepoint(parser_context_t* c, pd_OptionTimepoint_t* v)
+{
+ CHECK_ERROR(_readUInt8(c, &v->some))
+ if (v->some > 0) {
+ CHECK_ERROR(_readTimepoint(c, &v->contained))
+ }
+ return parser_ok;
+}
+
+parser_error_t _readOptionAccountId(parser_context_t* c, pd_OptionAccountId_t* v)
+{
+ CHECK_ERROR(_readUInt8(c, &v->some))
+ if (v->some > 0) {
+ CHECK_ERROR(_readAccountId(c, &v->contained))
+ }
+ return parser_ok;
+}
+
+parser_error_t _readOptionClassOf(parser_context_t* c, pd_OptionClassOf_t* v)
+{
+ CHECK_ERROR(_readUInt8(c, &v->some))
+ if (v->some > 0) {
+ CHECK_ERROR(_readClassOf(c, &v->contained))
+ }
+ return parser_ok;
+}
+
+parser_error_t _readOptionProxyType(parser_context_t* c, pd_OptionProxyType_t* v)
+{
+ CHECK_ERROR(_readUInt8(c, &v->some))
+ if (v->some > 0) {
+ CHECK_ERROR(_readProxyType(c, &v->contained))
+ }
+ return parser_ok;
+}
+
+parser_error_t _readOptionReferendumIndex(parser_context_t* c, pd_OptionReferendumIndex_t* v)
+{
+ CHECK_ERROR(_readUInt8(c, &v->some))
+ if (v->some > 0) {
+ CHECK_ERROR(_readReferendumIndex(c, &v->contained))
+ }
+ return parser_ok;
+}
+
+parser_error_t _readOptionu128(parser_context_t* c, pd_Optionu128_t* v)
+{
+ CHECK_ERROR(_readUInt8(c, &v->some))
+ if (v->some > 0) {
+ CHECK_ERROR(_readu128(c, &v->contained))
+ }
+ return parser_ok;
+}
+
+parser_error_t _readOptionu32(parser_context_t* c, pd_Optionu32_t* v)
+{
+ CHECK_ERROR(_readUInt8(c, &v->some))
+ if (v->some > 0) {
+ CHECK_ERROR(_readu32(c, &v->contained))
+ }
+ return parser_ok;
+}
+
+///////////////////////////////////
+///////////////////////////////////
+///////////////////////////////////
+
+parser_error_t _toStringbool(
+ const pd_bool_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount)
+{
+ CLEAN_AND_CHECK()
+
+ *pageCount = 1;
+ switch (*v) {
+ case 0:
+ snprintf(outValue, outValueLen, "False");
+ return parser_ok;
+ case 1:
+ snprintf(outValue, outValueLen, "True");
+ return parser_ok;
+ }
+
+ return parser_not_supported;
+}
+
+parser_error_t _toStringu8(
+ const pd_u8_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount)
+{
+ CLEAN_AND_CHECK()
+ char bufferUI[50];
+
+ uint64_to_str(bufferUI, sizeof(bufferUI), *v);
+ pageString(outValue, outValueLen, bufferUI, pageIdx, pageCount);
+ return parser_ok;
+}
+
+parser_error_t _toStringu16(
+ const pd_u16_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount)
+{
+ CLEAN_AND_CHECK()
+ char bufferUI[50];
+
+ uint64_to_str(bufferUI, sizeof(bufferUI), *v);
+ pageString(outValue, outValueLen, bufferUI, pageIdx, pageCount);
+ return parser_ok;
+}
+
+parser_error_t _toStringu32(
+ const pd_u32_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount)
+{
+ CLEAN_AND_CHECK()
+ char bufferUI[100];
+
+ uint64_to_str(bufferUI, sizeof(bufferUI), *v);
+ pageString(outValue, outValueLen, bufferUI, pageIdx, pageCount);
+ return parser_ok;
+}
+
+parser_error_t _toStringu64(
+ const pd_u64_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount)
+{
+ CLEAN_AND_CHECK()
+ char bufferUI[100];
+
+ uint64_to_str(bufferUI, sizeof(bufferUI), *v);
+ pageString(outValue, outValueLen, bufferUI, pageIdx, pageCount);
+ return parser_ok;
+}
+
+parser_error_t _toStringBlockNumber(
+ const pd_BlockNumber_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount)
+{
+ return _toStringu32(v, outValue, outValueLen, pageIdx, pageCount);
+}
+
+parser_error_t _toStringCompactu32(
+ const pd_Compactu32_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount)
+{
+ return _toStringCompactInt(v, 0, false, "", "", outValue, outValueLen, pageIdx, pageCount);
+}
+
+parser_error_t _toStringCompactu64(
+ const pd_Compactu64_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount)
+{
+ return _toStringCompactInt(v, 0, false, "", "", outValue, outValueLen, pageIdx, pageCount);
+}
+
+///////////////////////////////////
+///////////////////////////////////
+///////////////////////////////////
+
+parser_error_t _toStringCompactu128(
+ const pd_Compactu128_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount)
+{
+ return _toStringCompactInt(v, 0, false, "", "", outValue, outValueLen, pageIdx, pageCount);
+}
+
+parser_error_t _toStringBytes(
+ const pd_Bytes_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount)
+{
+ GEN_DEF_TOSTRING_ARRAY(v->_len);
+}
+
+parser_error_t _toStringFraction(
+ const pd_Fraction_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount)
+{
+ CLEAN_AND_CHECK()
+
+ // First measure number of pages
+ uint8_t pages[2] = { 0 };
+ CHECK_ERROR(_toStringCompactu32(&v->nom, outValue, outValueLen, 0, &pages[0]))
+ CHECK_ERROR(_toStringCompactu32(&v->denom, outValue, outValueLen, 0, &pages[1]))
+
+ *pageCount = 0;
+ for (uint8_t i = 0; i < (uint8_t)sizeof(pages); i++) {
+ *pageCount += pages[i];
+ }
+
+ if (pageIdx > *pageCount) {
+ return parser_display_idx_out_of_range;
+ }
+
+ if (pageIdx < pages[0]) {
+ CHECK_ERROR(_toStringCompactu32(&v->nom, outValue, outValueLen, pageIdx, &pages[0]))
+ return parser_ok;
+ }
+ pageIdx -= pages[0];
+
+ if (pageIdx < pages[1]) {
+ CHECK_ERROR(_toStringCompactu32(&v->denom, outValue, outValueLen, pageIdx, &pages[1]))
+ return parser_ok;
+ }
+
+ return parser_display_idx_out_of_range;
+}
+
+parser_error_t _toStringBodyId(
+ const pd_BodyId_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount)
+{
+ CLEAN_AND_CHECK()
+ *pageCount = 1;
+ switch (v->value) {
+ case 0: // Unit
+ snprintf(outValue, outValueLen, "Unit");
+ break;
+ case 1: // Named
+ CHECK_ERROR(_toStringBytes(&v->named, outValue, outValueLen, pageIdx, pageCount))
+ break;
+ case 2: // Index
+ CHECK_ERROR(_toStringCompactu32(&v->index, outValue, outValueLen, pageIdx, pageCount))
+ break;
+ case 3: // Executive
+ snprintf(outValue, outValueLen, "Executive");
+ break;
+ case 4: // Technical
+ snprintf(outValue, outValueLen, "Technical");
+ break;
+ case 5: // Legislative
+ snprintf(outValue, outValueLen, "Legislative");
+ break;
+ case 6: // Judicial
+ snprintf(outValue, outValueLen, "Judicial");
+ break;
+ default:
+ return parser_unexpected_value;
+ }
+ return parser_ok;
+}
+
+parser_error_t _toStringBodyPart(
+ const pd_BodyPart_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount)
+{
+ CLEAN_AND_CHECK()
+ *pageCount = 1;
+ switch (v->value) {
+ case 0: // Voice
+ snprintf(outValue, outValueLen, "Voice");
+ break;
+ case 1: // Members
+ CHECK_ERROR(_toStringCompactu32(&v->count, outValue, outValueLen, pageIdx, pageCount))
+ break;
+ case 2: // Fraction
+ CHECK_ERROR(_toStringFraction(&v->fraction, outValue, outValueLen, pageIdx, pageCount))
+ break;
+ case 3: // AtLeastProportion
+ CHECK_ERROR(_toStringFraction(&v->fraction, outValue, outValueLen, pageIdx, pageCount))
+ break;
+ case 4: // MoreThanProportion
+ CHECK_ERROR(_toStringFraction(&v->fraction, outValue, outValueLen, pageIdx, pageCount))
+ break;
+ default:
+ return parser_unexpected_value;
+ }
+ return parser_ok;
+}
+
+parser_error_t _toStringNetworkId(
+ const pd_NetworkId_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount)
+{
+ CLEAN_AND_CHECK()
+ *pageCount = 1;
+ switch (v->value) {
+ case 0: // Any
+ snprintf(outValue, outValueLen, "Any");
+ break;
+ case 1: // Named
+ CHECK_ERROR(_toStringBytes(&v->named, outValue, outValueLen, pageIdx, pageCount))
+ break;
+ case 2: // Polkadot
+ snprintf(outValue, outValueLen, "Polkadot");
+ break;
+ case 3: // Kusama
+ snprintf(outValue, outValueLen, "Kusama");
+ break;
+ default:
+ return parser_not_supported;
+ }
+
+ return parser_ok;
+}
+
+parser_error_t _toStringu8_array_20(
+ const pd_u8_array_20_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount) {
+ GEN_DEF_TOSTRING_ARRAY(20)
+}
+
+parser_error_t _toStringu8_array_32(
+ const pd_u8_array_32_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount) {
+ GEN_DEF_TOSTRING_ARRAY(32)
+}
+
+parser_error_t _toStringAccountId32(
+ const pd_AccountId32_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount)
+{
+ CLEAN_AND_CHECK()
+
+ // First measure number of pages
+ uint8_t pages[2] = { 0 };
+ CHECK_ERROR(_toStringNetworkId(&v->networkId, outValue, outValueLen, 0, &pages[0]))
+ CHECK_ERROR(_toStringu8_array_32(&v->key, outValue, outValueLen, 0, &pages[1]))
+
+ *pageCount = 0;
+ for (uint8_t i = 0; i < (uint8_t)sizeof(pages); i++) {
+ *pageCount += pages[i];
+ }
+
+ if (pageIdx > *pageCount) {
+ return parser_display_idx_out_of_range;
+ }
+
+ if (pageIdx < pages[0]) {
+ CHECK_ERROR(_toStringNetworkId(&v->networkId, outValue, outValueLen, pageIdx, &pages[0]))
+ return parser_ok;
+ }
+ pageIdx -= pages[0];
+
+ if (pageIdx < pages[1]) {
+ CHECK_ERROR(_toStringu8_array_32(&v->key, outValue, outValueLen, pageIdx, &pages[1]))
+ return parser_ok;
+ }
+
+ return parser_display_idx_out_of_range;
+}
+
+parser_error_t _toStringAccountIndex64(
+ const pd_AccountIndex64_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount)
+{
+ CLEAN_AND_CHECK()
+
+ // First measure number of pages
+ uint8_t pages[2] = { 0 };
+ CHECK_ERROR(_toStringNetworkId(&v->networkId, outValue, outValueLen, 0, &pages[0]))
+ CHECK_ERROR(_toStringCompactu64(&v->index, outValue, outValueLen, 0, &pages[1]))
+
+ *pageCount = 0;
+ for (uint8_t i = 0; i < (uint8_t)sizeof(pages); i++) {
+ *pageCount += pages[i];
+ }
+
+ if (pageIdx > *pageCount) {
+ return parser_display_idx_out_of_range;
+ }
+
+ if (pageIdx < pages[0]) {
+ CHECK_ERROR(_toStringNetworkId(&v->networkId, outValue, outValueLen, pageIdx, &pages[0]))
+ return parser_ok;
+ }
+ pageIdx -= pages[0];
+
+ if (pageIdx < pages[1]) {
+ CHECK_ERROR(_toStringCompactu64(&v->index, outValue, outValueLen, pageIdx, &pages[1]))
+ return parser_ok;
+ }
+
+ return parser_display_idx_out_of_range;
+}
+
+parser_error_t _toStringAccountKey20(
+ const pd_AccountKey20_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount)
+{
+ CLEAN_AND_CHECK()
+
+ // First measure number of pages
+ uint8_t pages[2] = { 0 };
+ CHECK_ERROR(_toStringNetworkId(&v->networkId, outValue, outValueLen, 0, &pages[0]))
+ CHECK_ERROR(_toStringu8_array_20(&v->key, outValue, outValueLen, 0, &pages[1]))
+
+ *pageCount = 0;
+ for (uint8_t i = 0; i < (uint8_t)sizeof(pages); i++) {
+ *pageCount += pages[i];
+ }
+
+ if (pageIdx > *pageCount) {
+ return parser_display_idx_out_of_range;
+ }
+
+ if (pageIdx < pages[0]) {
+ CHECK_ERROR(_toStringNetworkId(&v->networkId, outValue, outValueLen, pageIdx, &pages[0]))
+ return parser_ok;
+ }
+ pageIdx -= pages[0];
+
+ if (pageIdx < pages[1]) {
+ CHECK_ERROR(_toStringu8_array_20(&v->key, outValue, outValueLen, pageIdx, &pages[1]))
+ return parser_ok;
+ }
+
+ return parser_display_idx_out_of_range;
+}
+
+parser_error_t _toStringPlurality(
+ const pd_Plurality_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount)
+{
+ CLEAN_AND_CHECK()
+
+ // First measure number of pages
+ uint8_t pages[2] = { 0 };
+ CHECK_ERROR(_toStringBodyId(&v->id, outValue, outValueLen, 0, &pages[0]))
+ CHECK_ERROR(_toStringBodyPart(&v->part, outValue, outValueLen, 0, &pages[1]))
+
+ *pageCount = 0;
+ for (uint8_t i = 0; i < (uint8_t)sizeof(pages); i++) {
+ *pageCount += pages[i];
+ }
+
+ if (pageIdx > *pageCount) {
+ return parser_display_idx_out_of_range;
+ }
+
+ if (pageIdx < pages[0]) {
+ CHECK_ERROR(_toStringBodyId(&v->id, outValue, outValueLen, pageIdx, &pages[0]))
+ return parser_ok;
+ }
+ pageIdx -= pages[0];
+
+ if (pageIdx < pages[1]) {
+ CHECK_ERROR(_toStringBodyPart(&v->part, outValue, outValueLen, pageIdx, &pages[1]))
+ return parser_ok;
+ }
+
+ return parser_display_idx_out_of_range;
+}
+
+parser_error_t _toStringJunctionV0(
+ const pd_JunctionV0_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount)
+{
+ CLEAN_AND_CHECK()
+ *pageCount = 1;
+ switch (v->value) {
+ case 0: // Parent
+ snprintf(outValue, outValueLen, "Parent");
+ break;
+ case 1: // Parachain
+ CHECK_ERROR(_toStringCompactu32(&v->parachain, outValue, outValueLen, pageIdx, pageCount))
+ break;
+ case 2: // AccountId32
+ CHECK_ERROR(_toStringAccountId32(&v->accountId32, outValue, outValueLen, pageIdx, pageCount))
+ break;
+ case 3: // AccountIndex64
+ CHECK_ERROR(_toStringAccountIndex64(&v->accountIndex64, outValue, outValueLen, pageIdx, pageCount))
+ break;
+ case 4: // AccountKey20
+ CHECK_ERROR(_toStringAccountKey20(&v->accountKey20, outValue, outValueLen, pageIdx, pageCount))
+ break;
+ case 5: // PalletInstance
+ CHECK_ERROR(_toStringu8(&v->palletInstance, outValue, outValueLen, pageIdx, pageCount))
+ break;
+ case 6: // GeneralIndex
+ CHECK_ERROR(_toStringCompactu128(&v->generalIndex, outValue, outValueLen, pageIdx, pageCount))
+ break;
+ case 7: // GeneralKey
+ CHECK_ERROR(_toStringBytes(&v->generalKey, outValue, outValueLen, pageIdx, pageCount))
+ break;
+ case 8: // OnlyChild
+ snprintf(outValue, outValueLen, "OnlyChild");
+ break;
+ case 9: // Plurality
+ CHECK_ERROR(_toStringPlurality(&v->plurality, outValue, outValueLen, pageIdx, pageCount))
+ break;
+ default:
+ return parser_unexpected_value;
+ }
+ return parser_ok;
+}
+
+parser_error_t _toStringJunctionV1(
+ const pd_JunctionV1_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount)
+{
+ CLEAN_AND_CHECK()
+ *pageCount = 1;
+ switch (v->value) {
+ case 0: // Parachain
+ CHECK_ERROR(_toStringCompactu32(&v->parachain, outValue, outValueLen, pageIdx, pageCount))
+ break;
+ case 1: // AccountId32
+ CHECK_ERROR(_toStringAccountId32(&v->accountId32, outValue, outValueLen, pageIdx, pageCount))
+ break;
+ case 2: // AccountIndex64
+ CHECK_ERROR(_toStringAccountIndex64(&v->accountIndex64, outValue, outValueLen, pageIdx, pageCount))
+ break;
+ case 3: // AccountKey20
+ CHECK_ERROR(_toStringAccountKey20(&v->accountKey20, outValue, outValueLen, pageIdx, pageCount))
+ break;
+ case 4: // PalletInstance
+ CHECK_ERROR(_toStringu8(&v->palletInstance, outValue, outValueLen, pageIdx, pageCount))
+ break;
+ case 5: // GeneralIndex
+ CHECK_ERROR(_toStringCompactu128(&v->generalIndex, outValue, outValueLen, pageIdx, pageCount))
+ break;
+ case 6: // GeneralKey
+ CHECK_ERROR(_toStringBytes(&v->generalKey, outValue, outValueLen, pageIdx, pageCount))
+ break;
+ case 7: // OnlyChild
+ snprintf(outValue, outValueLen, "OnlyChild");
+ break;
+ case 8: // Plurality
+ CHECK_ERROR(_toStringPlurality(&v->plurality, outValue, outValueLen, pageIdx, pageCount))
+ break;
+ default:
+ return parser_unexpected_value;
+ }
+ return parser_ok;
+}
+
+parser_error_t _toStringJunctionV0X1(
+ const pd_JunctionV0X1_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount)
+{
+ CLEAN_AND_CHECK()
+
+ // First measure number of pages
+ uint8_t pages[1] = { 0 };
+ CHECK_ERROR(_toStringJunctionV0(&v->junction, outValue, outValueLen, 0, &pages[0]))
+
+ *pageCount = 0;
+ for (uint8_t i = 0; i < (uint8_t)sizeof(pages); i++) {
+ *pageCount += pages[i];
+ }
+
+ if (pageIdx > *pageCount) {
+ return parser_display_idx_out_of_range;
+ }
+
+ if (pageIdx < pages[0]) {
+ CHECK_ERROR(_toStringJunctionV0(&v->junction, outValue, outValueLen, pageIdx, &pages[0]))
+ return parser_ok;
+ }
+
+ return parser_display_idx_out_of_range;
+}
+
+parser_error_t _toStringJunctionV0X2(
+ const pd_JunctionV0X2_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount)
+{
+ CLEAN_AND_CHECK()
+
+ // First measure number of pages
+ uint8_t pages[2] = { 0 };
+ CHECK_ERROR(_toStringJunctionV0(&v->junction0, outValue, outValueLen, 0, &pages[0]))
+ CHECK_ERROR(_toStringJunctionV0(&v->junction1, outValue, outValueLen, 0, &pages[1]))
+
+ *pageCount = 0;
+ for (uint8_t i = 0; i < (uint8_t)sizeof(pages); i++) {
+ *pageCount += pages[i];
+ }
+
+ if (pageIdx > *pageCount) {
+ return parser_display_idx_out_of_range;
+ }
+
+ if (pageIdx < pages[0]) {
+ CHECK_ERROR(_toStringJunctionV0(&v->junction0, outValue, outValueLen, pageIdx, &pages[0]))
+ return parser_ok;
+ }
+ pageIdx -= pages[0];
+
+ if (pageIdx < pages[1]) {
+ CHECK_ERROR(_toStringJunctionV0(&v->junction1, outValue, outValueLen, pageIdx, &pages[1]))
+ return parser_ok;
+ }
+
+ return parser_display_idx_out_of_range;
+}
+
+parser_error_t _toStringJunctionV0X3(
+ const pd_JunctionV0X3_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount)
+{
+ CLEAN_AND_CHECK()
+
+ // First measure number of pages
+ uint8_t pages[3] = { 0 };
+ CHECK_ERROR(_toStringJunctionV0(&v->junction0, outValue, outValueLen, 0, &pages[0]))
+ CHECK_ERROR(_toStringJunctionV0(&v->junction1, outValue, outValueLen, 0, &pages[1]))
+ CHECK_ERROR(_toStringJunctionV0(&v->junction2, outValue, outValueLen, 0, &pages[2]))
+
+ *pageCount = 0;
+ for (uint8_t i = 0; i < (uint8_t)sizeof(pages); i++) {
+ *pageCount += pages[i];
+ }
+
+ if (pageIdx > *pageCount) {
+ return parser_display_idx_out_of_range;
+ }
+
+ if (pageIdx < pages[0]) {
+ CHECK_ERROR(_toStringJunctionV0(&v->junction0, outValue, outValueLen, pageIdx, &pages[0]))
+ return parser_ok;
+ }
+ pageIdx -= pages[0];
+
+ if (pageIdx < pages[1]) {
+ CHECK_ERROR(_toStringJunctionV0(&v->junction1, outValue, outValueLen, pageIdx, &pages[1]))
+ return parser_ok;
+ }
+ pageIdx -= pages[1];
+
+ if (pageIdx < pages[2]) {
+ CHECK_ERROR(_toStringJunctionV0(&v->junction2, outValue, outValueLen, pageIdx, &pages[2]))
+ return parser_ok;
+ }
+
+ return parser_display_idx_out_of_range;
+}
+
+parser_error_t _toStringJunctionV0X4(
+ const pd_JunctionV0X4_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount)
+{
+ CLEAN_AND_CHECK()
+
+ // First measure number of pages
+ uint8_t pages[4] = { 0 };
+ CHECK_ERROR(_toStringJunctionV0(&v->junction0, outValue, outValueLen, 0, &pages[0]))
+ CHECK_ERROR(_toStringJunctionV0(&v->junction1, outValue, outValueLen, 0, &pages[1]))
+ CHECK_ERROR(_toStringJunctionV0(&v->junction2, outValue, outValueLen, 0, &pages[2]))
+ CHECK_ERROR(_toStringJunctionV0(&v->junction3, outValue, outValueLen, 0, &pages[3]))
+
+ *pageCount = 0;
+ for (uint8_t i = 0; i < (uint8_t)sizeof(pages); i++) {
+ *pageCount += pages[i];
+ }
+
+ if (pageIdx > *pageCount) {
+ return parser_display_idx_out_of_range;
+ }
+
+ if (pageIdx < pages[0]) {
+ CHECK_ERROR(_toStringJunctionV0(&v->junction0, outValue, outValueLen, pageIdx, &pages[0]))
+ return parser_ok;
+ }
+ pageIdx -= pages[0];
+
+ if (pageIdx < pages[1]) {
+ CHECK_ERROR(_toStringJunctionV0(&v->junction1, outValue, outValueLen, pageIdx, &pages[1]))
+ return parser_ok;
+ }
+ pageIdx -= pages[1];
+
+ if (pageIdx < pages[2]) {
+ CHECK_ERROR(_toStringJunctionV0(&v->junction2, outValue, outValueLen, pageIdx, &pages[2]))
+ return parser_ok;
+ }
+ pageIdx -= pages[2];
+
+ if (pageIdx < pages[3]) {
+ CHECK_ERROR(_toStringJunctionV0(&v->junction3, outValue, outValueLen, pageIdx, &pages[3]))
+ return parser_ok;
+ }
+
+ return parser_display_idx_out_of_range;
+}
+
+parser_error_t _toStringJunctionV0X5(
+ const pd_JunctionV0X5_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount)
+{
+ CLEAN_AND_CHECK()
+
+ // First measure number of pages
+ uint8_t pages[5] = { 0 };
+ CHECK_ERROR(_toStringJunctionV0(&v->junction0, outValue, outValueLen, 0, &pages[0]))
+ CHECK_ERROR(_toStringJunctionV0(&v->junction1, outValue, outValueLen, 0, &pages[1]))
+ CHECK_ERROR(_toStringJunctionV0(&v->junction2, outValue, outValueLen, 0, &pages[2]))
+ CHECK_ERROR(_toStringJunctionV0(&v->junction3, outValue, outValueLen, 0, &pages[3]))
+ CHECK_ERROR(_toStringJunctionV0(&v->junction4, outValue, outValueLen, 0, &pages[4]))
+
+ *pageCount = 0;
+ for (uint8_t i = 0; i < (uint8_t)sizeof(pages); i++) {
+ *pageCount += pages[i];
+ }
+
+ if (pageIdx > *pageCount) {
+ return parser_display_idx_out_of_range;
+ }
+
+ if (pageIdx < pages[0]) {
+ CHECK_ERROR(_toStringJunctionV0(&v->junction0, outValue, outValueLen, pageIdx, &pages[0]))
+ return parser_ok;
+ }
+ pageIdx -= pages[0];
+
+ if (pageIdx < pages[1]) {
+ CHECK_ERROR(_toStringJunctionV0(&v->junction1, outValue, outValueLen, pageIdx, &pages[1]))
+ return parser_ok;
+ }
+ pageIdx -= pages[1];
+
+ if (pageIdx < pages[2]) {
+ CHECK_ERROR(_toStringJunctionV0(&v->junction2, outValue, outValueLen, pageIdx, &pages[2]))
+ return parser_ok;
+ }
+ pageIdx -= pages[2];
+
+ if (pageIdx < pages[3]) {
+ CHECK_ERROR(_toStringJunctionV0(&v->junction3, outValue, outValueLen, pageIdx, &pages[3]))
+ return parser_ok;
+ }
+ pageIdx -= pages[3];
+
+ if (pageIdx < pages[4]) {
+ CHECK_ERROR(_toStringJunctionV0(&v->junction4, outValue, outValueLen, pageIdx, &pages[4]))
+ return parser_ok;
+ }
+
+ return parser_display_idx_out_of_range;
+}
+
+parser_error_t _toStringJunctionV0X6(
+ const pd_JunctionV0X6_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount)
+{
+ CLEAN_AND_CHECK()
+
+ // First measure number of pages
+ uint8_t pages[6] = { 0 };
+ CHECK_ERROR(_toStringJunctionV0(&v->junction0, outValue, outValueLen, 0, &pages[0]))
+ CHECK_ERROR(_toStringJunctionV0(&v->junction1, outValue, outValueLen, 0, &pages[1]))
+ CHECK_ERROR(_toStringJunctionV0(&v->junction2, outValue, outValueLen, 0, &pages[2]))
+ CHECK_ERROR(_toStringJunctionV0(&v->junction3, outValue, outValueLen, 0, &pages[3]))
+ CHECK_ERROR(_toStringJunctionV0(&v->junction4, outValue, outValueLen, 0, &pages[4]))
+ CHECK_ERROR(_toStringJunctionV0(&v->junction5, outValue, outValueLen, 0, &pages[5]))
+
+ *pageCount = 0;
+ for (uint8_t i = 0; i < (uint8_t)sizeof(pages); i++) {
+ *pageCount += pages[i];
+ }
+
+ if (pageIdx > *pageCount) {
+ return parser_display_idx_out_of_range;
+ }
+
+ if (pageIdx < pages[0]) {
+ CHECK_ERROR(_toStringJunctionV0(&v->junction0, outValue, outValueLen, pageIdx, &pages[0]))
+ return parser_ok;
+ }
+ pageIdx -= pages[0];
+
+ if (pageIdx < pages[1]) {
+ CHECK_ERROR(_toStringJunctionV0(&v->junction1, outValue, outValueLen, pageIdx, &pages[1]))
+ return parser_ok;
+ }
+ pageIdx -= pages[1];
+
+ if (pageIdx < pages[2]) {
+ CHECK_ERROR(_toStringJunctionV0(&v->junction2, outValue, outValueLen, pageIdx, &pages[2]))
+ return parser_ok;
+ }
+ pageIdx -= pages[2];
+
+ if (pageIdx < pages[3]) {
+ CHECK_ERROR(_toStringJunctionV0(&v->junction3, outValue, outValueLen, pageIdx, &pages[3]))
+ return parser_ok;
+ }
+ pageIdx -= pages[3];
+
+ if (pageIdx < pages[4]) {
+ CHECK_ERROR(_toStringJunctionV0(&v->junction4, outValue, outValueLen, pageIdx, &pages[4]))
+ return parser_ok;
+ }
+ pageIdx -= pages[4];
+
+ if (pageIdx < pages[5]) {
+ CHECK_ERROR(_toStringJunctionV0(&v->junction5, outValue, outValueLen, pageIdx, &pages[5]))
+ return parser_ok;
+ }
+
+ return parser_display_idx_out_of_range;
+}
+
+parser_error_t _toStringJunctionV0X7(
+ const pd_JunctionV0X7_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount)
+{
+ CLEAN_AND_CHECK()
+
+ // First measure number of pages
+ uint8_t pages[7] = { 0 };
+ CHECK_ERROR(_toStringJunctionV0(&v->junction0, outValue, outValueLen, 0, &pages[0]))
+ CHECK_ERROR(_toStringJunctionV0(&v->junction1, outValue, outValueLen, 0, &pages[1]))
+ CHECK_ERROR(_toStringJunctionV0(&v->junction2, outValue, outValueLen, 0, &pages[2]))
+ CHECK_ERROR(_toStringJunctionV0(&v->junction3, outValue, outValueLen, 0, &pages[3]))
+ CHECK_ERROR(_toStringJunctionV0(&v->junction4, outValue, outValueLen, 0, &pages[4]))
+ CHECK_ERROR(_toStringJunctionV0(&v->junction5, outValue, outValueLen, 0, &pages[5]))
+ CHECK_ERROR(_toStringJunctionV0(&v->junction6, outValue, outValueLen, 0, &pages[6]))
+
+ *pageCount = 0;
+ for (uint8_t i = 0; i < (uint8_t)sizeof(pages); i++) {
+ *pageCount += pages[i];
+ }
+
+ if (pageIdx > *pageCount) {
+ return parser_display_idx_out_of_range;
+ }
+
+ if (pageIdx < pages[0]) {
+ CHECK_ERROR(_toStringJunctionV0(&v->junction0, outValue, outValueLen, pageIdx, &pages[0]))
+ return parser_ok;
+ }
+ pageIdx -= pages[0];
+
+ if (pageIdx < pages[1]) {
+ CHECK_ERROR(_toStringJunctionV0(&v->junction1, outValue, outValueLen, pageIdx, &pages[1]))
+ return parser_ok;
+ }
+ pageIdx -= pages[1];
+
+ if (pageIdx < pages[2]) {
+ CHECK_ERROR(_toStringJunctionV0(&v->junction2, outValue, outValueLen, pageIdx, &pages[2]))
+ return parser_ok;
+ }
+ pageIdx -= pages[2];
+
+ if (pageIdx < pages[3]) {
+ CHECK_ERROR(_toStringJunctionV0(&v->junction3, outValue, outValueLen, pageIdx, &pages[3]))
+ return parser_ok;
+ }
+ pageIdx -= pages[3];
+
+ if (pageIdx < pages[4]) {
+ CHECK_ERROR(_toStringJunctionV0(&v->junction4, outValue, outValueLen, pageIdx, &pages[4]))
+ return parser_ok;
+ }
+ pageIdx -= pages[4];
+
+ if (pageIdx < pages[5]) {
+ CHECK_ERROR(_toStringJunctionV0(&v->junction5, outValue, outValueLen, pageIdx, &pages[5]))
+ return parser_ok;
+ }
+ pageIdx -= pages[5];
+
+ if (pageIdx < pages[6]) {
+ CHECK_ERROR(_toStringJunctionV0(&v->junction6, outValue, outValueLen, pageIdx, &pages[6]))
+ return parser_ok;
+ }
+
+ return parser_display_idx_out_of_range;
+}
+
+parser_error_t _toStringJunctionV0X8(
+ const pd_JunctionV0X8_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount)
+{
+ CLEAN_AND_CHECK()
+
+ // First measure number of pages
+ uint8_t pages[8] = { 0 };
+ CHECK_ERROR(_toStringJunctionV0(&v->junction0, outValue, outValueLen, 0, &pages[0]))
+ CHECK_ERROR(_toStringJunctionV0(&v->junction1, outValue, outValueLen, 0, &pages[1]))
+ CHECK_ERROR(_toStringJunctionV0(&v->junction2, outValue, outValueLen, 0, &pages[2]))
+ CHECK_ERROR(_toStringJunctionV0(&v->junction3, outValue, outValueLen, 0, &pages[3]))
+ CHECK_ERROR(_toStringJunctionV0(&v->junction4, outValue, outValueLen, 0, &pages[4]))
+ CHECK_ERROR(_toStringJunctionV0(&v->junction5, outValue, outValueLen, 0, &pages[5]))
+ CHECK_ERROR(_toStringJunctionV0(&v->junction6, outValue, outValueLen, 0, &pages[6]))
+ CHECK_ERROR(_toStringJunctionV0(&v->junction7, outValue, outValueLen, 0, &pages[7]))
+
+ *pageCount = 0;
+ for (uint8_t i = 0; i < (uint8_t)sizeof(pages); i++) {
+ *pageCount += pages[i];
+ }
+
+ if (pageIdx > *pageCount) {
+ return parser_display_idx_out_of_range;
+ }
+
+ if (pageIdx < pages[0]) {
+ CHECK_ERROR(_toStringJunctionV0(&v->junction0, outValue, outValueLen, pageIdx, &pages[0]))
+ return parser_ok;
+ }
+ pageIdx -= pages[0];
+
+ if (pageIdx < pages[1]) {
+ CHECK_ERROR(_toStringJunctionV0(&v->junction1, outValue, outValueLen, pageIdx, &pages[1]))
+ return parser_ok;
+ }
+ pageIdx -= pages[1];
+
+ if (pageIdx < pages[2]) {
+ CHECK_ERROR(_toStringJunctionV0(&v->junction2, outValue, outValueLen, pageIdx, &pages[2]))
+ return parser_ok;
+ }
+ pageIdx -= pages[2];
+
+ if (pageIdx < pages[3]) {
+ CHECK_ERROR(_toStringJunctionV0(&v->junction3, outValue, outValueLen, pageIdx, &pages[3]))
+ return parser_ok;
+ }
+ pageIdx -= pages[3];
+
+ if (pageIdx < pages[4]) {
+ CHECK_ERROR(_toStringJunctionV0(&v->junction4, outValue, outValueLen, pageIdx, &pages[4]))
+ return parser_ok;
+ }
+ pageIdx -= pages[4];
+
+ if (pageIdx < pages[5]) {
+ CHECK_ERROR(_toStringJunctionV0(&v->junction5, outValue, outValueLen, pageIdx, &pages[5]))
+ return parser_ok;
+ }
+ pageIdx -= pages[5];
+
+ if (pageIdx < pages[6]) {
+ CHECK_ERROR(_toStringJunctionV0(&v->junction6, outValue, outValueLen, pageIdx, &pages[6]))
+ return parser_ok;
+ }
+ pageIdx -= pages[6];
+
+ if (pageIdx < pages[7]) {
+ CHECK_ERROR(_toStringJunctionV0(&v->junction7, outValue, outValueLen, pageIdx, &pages[7]))
+ return parser_ok;
+ }
+
+ return parser_display_idx_out_of_range;
+}
+
+parser_error_t _toStringJunctionV1X1(
+ const pd_JunctionV1X1_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount)
+{
+ CLEAN_AND_CHECK()
+
+ // First measure number of pages
+ uint8_t pages[1] = { 0 };
+ CHECK_ERROR(_toStringJunctionV1(&v->junction, outValue, outValueLen, 0, &pages[0]))
+
+ *pageCount = 0;
+ for (uint8_t i = 0; i < (uint8_t)sizeof(pages); i++) {
+ *pageCount += pages[i];
+ }
+
+ if (pageIdx > *pageCount) {
+ return parser_display_idx_out_of_range;
+ }
+
+ if (pageIdx < pages[0]) {
+ CHECK_ERROR(_toStringJunctionV1(&v->junction, outValue, outValueLen, pageIdx, &pages[0]))
+ return parser_ok;
+ }
+
+ return parser_display_idx_out_of_range;
+}
+
+parser_error_t _toStringJunctionV1X2(
+ const pd_JunctionV1X2_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount)
+{
+ CLEAN_AND_CHECK()
+
+ // First measure number of pages
+ uint8_t pages[2] = { 0 };
+ CHECK_ERROR(_toStringJunctionV1(&v->junction0, outValue, outValueLen, 0, &pages[0]))
+ CHECK_ERROR(_toStringJunctionV1(&v->junction1, outValue, outValueLen, 0, &pages[1]))
+
+ *pageCount = 0;
+ for (uint8_t i = 0; i < (uint8_t)sizeof(pages); i++) {
+ *pageCount += pages[i];
+ }
+
+ if (pageIdx > *pageCount) {
+ return parser_display_idx_out_of_range;
+ }
+
+ if (pageIdx < pages[0]) {
+ CHECK_ERROR(_toStringJunctionV1(&v->junction0, outValue, outValueLen, pageIdx, &pages[0]))
+ return parser_ok;
+ }
+ pageIdx -= pages[0];
+
+ if (pageIdx < pages[1]) {
+ CHECK_ERROR(_toStringJunctionV1(&v->junction1, outValue, outValueLen, pageIdx, &pages[1]))
+ return parser_ok;
+ }
+
+ return parser_display_idx_out_of_range;
+}
+
+parser_error_t _toStringJunctionV1X3(
+ const pd_JunctionV1X3_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount)
+{
+ CLEAN_AND_CHECK()
+
+ // First measure number of pages
+ uint8_t pages[3] = { 0 };
+ CHECK_ERROR(_toStringJunctionV1(&v->junction0, outValue, outValueLen, 0, &pages[0]))
+ CHECK_ERROR(_toStringJunctionV1(&v->junction1, outValue, outValueLen, 0, &pages[1]))
+ CHECK_ERROR(_toStringJunctionV1(&v->junction2, outValue, outValueLen, 0, &pages[2]))
+
+ *pageCount = 0;
+ for (uint8_t i = 0; i < (uint8_t)sizeof(pages); i++) {
+ *pageCount += pages[i];
+ }
+
+ if (pageIdx > *pageCount) {
+ return parser_display_idx_out_of_range;
+ }
+
+ if (pageIdx < pages[0]) {
+ CHECK_ERROR(_toStringJunctionV1(&v->junction0, outValue, outValueLen, pageIdx, &pages[0]))
+ return parser_ok;
+ }
+ pageIdx -= pages[0];
+
+ if (pageIdx < pages[1]) {
+ CHECK_ERROR(_toStringJunctionV1(&v->junction1, outValue, outValueLen, pageIdx, &pages[1]))
+ return parser_ok;
+ }
+ pageIdx -= pages[1];
+
+ if (pageIdx < pages[2]) {
+ CHECK_ERROR(_toStringJunctionV1(&v->junction2, outValue, outValueLen, pageIdx, &pages[2]))
+ return parser_ok;
+ }
+
+ return parser_display_idx_out_of_range;
+}
+
+parser_error_t _toStringJunctionV1X4(
+ const pd_JunctionV1X4_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount)
+{
+ CLEAN_AND_CHECK()
+
+ // First measure number of pages
+ uint8_t pages[4] = { 0 };
+ CHECK_ERROR(_toStringJunctionV1(&v->junction0, outValue, outValueLen, 0, &pages[0]))
+ CHECK_ERROR(_toStringJunctionV1(&v->junction1, outValue, outValueLen, 0, &pages[1]))
+ CHECK_ERROR(_toStringJunctionV1(&v->junction2, outValue, outValueLen, 0, &pages[2]))
+ CHECK_ERROR(_toStringJunctionV1(&v->junction3, outValue, outValueLen, 0, &pages[3]))
+
+ *pageCount = 0;
+ for (uint8_t i = 0; i < (uint8_t)sizeof(pages); i++) {
+ *pageCount += pages[i];
+ }
+
+ if (pageIdx > *pageCount) {
+ return parser_display_idx_out_of_range;
+ }
+
+ if (pageIdx < pages[0]) {
+ CHECK_ERROR(_toStringJunctionV1(&v->junction0, outValue, outValueLen, pageIdx, &pages[0]))
+ return parser_ok;
+ }
+ pageIdx -= pages[0];
+
+ if (pageIdx < pages[1]) {
+ CHECK_ERROR(_toStringJunctionV1(&v->junction1, outValue, outValueLen, pageIdx, &pages[1]))
+ return parser_ok;
+ }
+ pageIdx -= pages[1];
+
+ if (pageIdx < pages[2]) {
+ CHECK_ERROR(_toStringJunctionV1(&v->junction2, outValue, outValueLen, pageIdx, &pages[2]))
+ return parser_ok;
+ }
+ pageIdx -= pages[2];
+
+ if (pageIdx < pages[3]) {
+ CHECK_ERROR(_toStringJunctionV1(&v->junction3, outValue, outValueLen, pageIdx, &pages[3]))
+ return parser_ok;
+ }
+
+ return parser_display_idx_out_of_range;
+}
+
+parser_error_t _toStringJunctionV1X5(
+ const pd_JunctionV1X5_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount)
+{
+ CLEAN_AND_CHECK()
+
+ // First measure number of pages
+ uint8_t pages[5] = { 0 };
+ CHECK_ERROR(_toStringJunctionV1(&v->junction0, outValue, outValueLen, 0, &pages[0]))
+ CHECK_ERROR(_toStringJunctionV1(&v->junction1, outValue, outValueLen, 0, &pages[1]))
+ CHECK_ERROR(_toStringJunctionV1(&v->junction2, outValue, outValueLen, 0, &pages[2]))
+ CHECK_ERROR(_toStringJunctionV1(&v->junction3, outValue, outValueLen, 0, &pages[3]))
+ CHECK_ERROR(_toStringJunctionV1(&v->junction4, outValue, outValueLen, 0, &pages[4]))
+
+ *pageCount = 0;
+ for (uint8_t i = 0; i < (uint8_t)sizeof(pages); i++) {
+ *pageCount += pages[i];
+ }
+
+ if (pageIdx > *pageCount) {
+ return parser_display_idx_out_of_range;
+ }
+
+ if (pageIdx < pages[0]) {
+ CHECK_ERROR(_toStringJunctionV1(&v->junction0, outValue, outValueLen, pageIdx, &pages[0]))
+ return parser_ok;
+ }
+ pageIdx -= pages[0];
+
+ if (pageIdx < pages[1]) {
+ CHECK_ERROR(_toStringJunctionV1(&v->junction1, outValue, outValueLen, pageIdx, &pages[1]))
+ return parser_ok;
+ }
+ pageIdx -= pages[1];
+
+ if (pageIdx < pages[2]) {
+ CHECK_ERROR(_toStringJunctionV1(&v->junction2, outValue, outValueLen, pageIdx, &pages[2]))
+ return parser_ok;
+ }
+ pageIdx -= pages[2];
+
+ if (pageIdx < pages[3]) {
+ CHECK_ERROR(_toStringJunctionV1(&v->junction3, outValue, outValueLen, pageIdx, &pages[3]))
+ return parser_ok;
+ }
+ pageIdx -= pages[3];
+
+ if (pageIdx < pages[4]) {
+ CHECK_ERROR(_toStringJunctionV1(&v->junction4, outValue, outValueLen, pageIdx, &pages[4]))
+ return parser_ok;
+ }
+
+ return parser_display_idx_out_of_range;
+}
+
+parser_error_t _toStringJunctionV1X6(
+ const pd_JunctionV1X6_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount)
+{
+ CLEAN_AND_CHECK()
+
+ // First measure number of pages
+ uint8_t pages[6] = { 0 };
+ CHECK_ERROR(_toStringJunctionV1(&v->junction0, outValue, outValueLen, 0, &pages[0]))
+ CHECK_ERROR(_toStringJunctionV1(&v->junction1, outValue, outValueLen, 0, &pages[1]))
+ CHECK_ERROR(_toStringJunctionV1(&v->junction2, outValue, outValueLen, 0, &pages[2]))
+ CHECK_ERROR(_toStringJunctionV1(&v->junction3, outValue, outValueLen, 0, &pages[3]))
+ CHECK_ERROR(_toStringJunctionV1(&v->junction4, outValue, outValueLen, 0, &pages[4]))
+ CHECK_ERROR(_toStringJunctionV1(&v->junction5, outValue, outValueLen, 0, &pages[5]))
+
+ *pageCount = 0;
+ for (uint8_t i = 0; i < (uint8_t)sizeof(pages); i++) {
+ *pageCount += pages[i];
+ }
+
+ if (pageIdx > *pageCount) {
+ return parser_display_idx_out_of_range;
+ }
+
+ if (pageIdx < pages[0]) {
+ CHECK_ERROR(_toStringJunctionV1(&v->junction0, outValue, outValueLen, pageIdx, &pages[0]))
+ return parser_ok;
+ }
+ pageIdx -= pages[0];
+
+ if (pageIdx < pages[1]) {
+ CHECK_ERROR(_toStringJunctionV1(&v->junction1, outValue, outValueLen, pageIdx, &pages[1]))
+ return parser_ok;
+ }
+ pageIdx -= pages[1];
+
+ if (pageIdx < pages[2]) {
+ CHECK_ERROR(_toStringJunctionV1(&v->junction2, outValue, outValueLen, pageIdx, &pages[2]))
+ return parser_ok;
+ }
+ pageIdx -= pages[2];
+
+ if (pageIdx < pages[3]) {
+ CHECK_ERROR(_toStringJunctionV1(&v->junction3, outValue, outValueLen, pageIdx, &pages[3]))
+ return parser_ok;
+ }
+ pageIdx -= pages[3];
+
+ if (pageIdx < pages[4]) {
+ CHECK_ERROR(_toStringJunctionV1(&v->junction4, outValue, outValueLen, pageIdx, &pages[4]))
+ return parser_ok;
+ }
+ pageIdx -= pages[4];
+
+ if (pageIdx < pages[5]) {
+ CHECK_ERROR(_toStringJunctionV1(&v->junction5, outValue, outValueLen, pageIdx, &pages[5]))
+ return parser_ok;
+ }
+
+ return parser_display_idx_out_of_range;
+}
+
+parser_error_t _toStringJunctionV1X7(
+ const pd_JunctionV1X7_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount)
+{
+ CLEAN_AND_CHECK()
+
+ // First measure number of pages
+ uint8_t pages[7] = { 0 };
+ CHECK_ERROR(_toStringJunctionV1(&v->junction0, outValue, outValueLen, 0, &pages[0]))
+ CHECK_ERROR(_toStringJunctionV1(&v->junction1, outValue, outValueLen, 0, &pages[1]))
+ CHECK_ERROR(_toStringJunctionV1(&v->junction2, outValue, outValueLen, 0, &pages[2]))
+ CHECK_ERROR(_toStringJunctionV1(&v->junction3, outValue, outValueLen, 0, &pages[3]))
+ CHECK_ERROR(_toStringJunctionV1(&v->junction4, outValue, outValueLen, 0, &pages[4]))
+ CHECK_ERROR(_toStringJunctionV1(&v->junction5, outValue, outValueLen, 0, &pages[5]))
+ CHECK_ERROR(_toStringJunctionV1(&v->junction6, outValue, outValueLen, 0, &pages[6]))
+
+ *pageCount = 0;
+ for (uint8_t i = 0; i < (uint8_t)sizeof(pages); i++) {
+ *pageCount += pages[i];
+ }
+
+ if (pageIdx > *pageCount) {
+ return parser_display_idx_out_of_range;
+ }
+
+ if (pageIdx < pages[0]) {
+ CHECK_ERROR(_toStringJunctionV1(&v->junction0, outValue, outValueLen, pageIdx, &pages[0]))
+ return parser_ok;
+ }
+ pageIdx -= pages[0];
+
+ if (pageIdx < pages[1]) {
+ CHECK_ERROR(_toStringJunctionV1(&v->junction1, outValue, outValueLen, pageIdx, &pages[1]))
+ return parser_ok;
+ }
+ pageIdx -= pages[1];
+
+ if (pageIdx < pages[2]) {
+ CHECK_ERROR(_toStringJunctionV1(&v->junction2, outValue, outValueLen, pageIdx, &pages[2]))
+ return parser_ok;
+ }
+ pageIdx -= pages[2];
+
+ if (pageIdx < pages[3]) {
+ CHECK_ERROR(_toStringJunctionV1(&v->junction3, outValue, outValueLen, pageIdx, &pages[3]))
+ return parser_ok;
+ }
+ pageIdx -= pages[3];
+
+ if (pageIdx < pages[4]) {
+ CHECK_ERROR(_toStringJunctionV1(&v->junction4, outValue, outValueLen, pageIdx, &pages[4]))
+ return parser_ok;
+ }
+ pageIdx -= pages[4];
+
+ if (pageIdx < pages[5]) {
+ CHECK_ERROR(_toStringJunctionV1(&v->junction5, outValue, outValueLen, pageIdx, &pages[5]))
+ return parser_ok;
+ }
+ pageIdx -= pages[5];
+
+ if (pageIdx < pages[6]) {
+ CHECK_ERROR(_toStringJunctionV1(&v->junction6, outValue, outValueLen, pageIdx, &pages[6]))
+ return parser_ok;
+ }
+
+ return parser_display_idx_out_of_range;
+}
+
+parser_error_t _toStringJunctionV1X8(
+ const pd_JunctionV1X8_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount)
+{
+ CLEAN_AND_CHECK()
+
+ // First measure number of pages
+ uint8_t pages[8] = { 0 };
+ CHECK_ERROR(_toStringJunctionV1(&v->junction0, outValue, outValueLen, 0, &pages[0]))
+ CHECK_ERROR(_toStringJunctionV1(&v->junction1, outValue, outValueLen, 0, &pages[1]))
+ CHECK_ERROR(_toStringJunctionV1(&v->junction2, outValue, outValueLen, 0, &pages[2]))
+ CHECK_ERROR(_toStringJunctionV1(&v->junction3, outValue, outValueLen, 0, &pages[3]))
+ CHECK_ERROR(_toStringJunctionV1(&v->junction4, outValue, outValueLen, 0, &pages[4]))
+ CHECK_ERROR(_toStringJunctionV1(&v->junction5, outValue, outValueLen, 0, &pages[5]))
+ CHECK_ERROR(_toStringJunctionV1(&v->junction6, outValue, outValueLen, 0, &pages[6]))
+ CHECK_ERROR(_toStringJunctionV1(&v->junction7, outValue, outValueLen, 0, &pages[7]))
+
+ *pageCount = 0;
+ for (uint8_t i = 0; i < (uint8_t)sizeof(pages); i++) {
+ *pageCount += pages[i];
+ }
+
+ if (pageIdx > *pageCount) {
+ return parser_display_idx_out_of_range;
+ }
+
+ if (pageIdx < pages[0]) {
+ CHECK_ERROR(_toStringJunctionV1(&v->junction0, outValue, outValueLen, pageIdx, &pages[0]))
+ return parser_ok;
+ }
+ pageIdx -= pages[0];
+
+ if (pageIdx < pages[1]) {
+ CHECK_ERROR(_toStringJunctionV1(&v->junction1, outValue, outValueLen, pageIdx, &pages[1]))
+ return parser_ok;
+ }
+ pageIdx -= pages[1];
+
+ if (pageIdx < pages[2]) {
+ CHECK_ERROR(_toStringJunctionV1(&v->junction2, outValue, outValueLen, pageIdx, &pages[2]))
+ return parser_ok;
+ }
+ pageIdx -= pages[2];
+
+ if (pageIdx < pages[3]) {
+ CHECK_ERROR(_toStringJunctionV1(&v->junction3, outValue, outValueLen, pageIdx, &pages[3]))
+ return parser_ok;
+ }
+ pageIdx -= pages[3];
+
+ if (pageIdx < pages[4]) {
+ CHECK_ERROR(_toStringJunctionV1(&v->junction4, outValue, outValueLen, pageIdx, &pages[4]))
+ return parser_ok;
+ }
+ pageIdx -= pages[4];
+
+ if (pageIdx < pages[5]) {
+ CHECK_ERROR(_toStringJunctionV1(&v->junction5, outValue, outValueLen, pageIdx, &pages[5]))
+ return parser_ok;
+ }
+ pageIdx -= pages[5];
+
+ if (pageIdx < pages[6]) {
+ CHECK_ERROR(_toStringJunctionV1(&v->junction6, outValue, outValueLen, pageIdx, &pages[6]))
+ return parser_ok;
+ }
+ pageIdx -= pages[6];
+
+ if (pageIdx < pages[7]) {
+ CHECK_ERROR(_toStringJunctionV1(&v->junction7, outValue, outValueLen, pageIdx, &pages[7]))
+ return parser_ok;
+ }
+
+ return parser_display_idx_out_of_range;
+}
+
+parser_error_t _toStringJunctionsV0(
+ const pd_JunctionsV0_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount)
+{
+ CLEAN_AND_CHECK()
+ switch (v->value) {
+ case 0: // Null
+ *pageCount = 1;
+ snprintf(outValue, outValueLen, "Null");
+ break;
+ case 1: // X1
+ CHECK_ERROR(_toStringJunctionV0X1(&v->x1, outValue, outValueLen, pageIdx, pageCount))
+ break;
+ case 2: // X2
+ CHECK_ERROR(_toStringJunctionV0X2(&v->x2, outValue, outValueLen, pageIdx, pageCount))
+ break;
+ case 3: // X3
+ CHECK_ERROR(_toStringJunctionV0X3(&v->x3, outValue, outValueLen, pageIdx, pageCount))
+ break;
+ case 4: // X4
+ CHECK_ERROR(_toStringJunctionV0X4(&v->x4, outValue, outValueLen, pageIdx, pageCount))
+ break;
+ case 5: // X5
+ CHECK_ERROR(_toStringJunctionV0X5(&v->x5, outValue, outValueLen, pageIdx, pageCount))
+ break;
+ case 6: // X6
+ CHECK_ERROR(_toStringJunctionV0X6(&v->x6, outValue, outValueLen, pageIdx, pageCount))
+ break;
+ case 7: // X7
+ CHECK_ERROR(_toStringJunctionV0X7(&v->x7, outValue, outValueLen, pageIdx, pageCount))
+ break;
+ case 8: // X8
+ CHECK_ERROR(_toStringJunctionV0X8(&v->x8, outValue, outValueLen, pageIdx, pageCount))
+ break;
+ default:
+ return parser_unexpected_value;
+ }
+ return parser_ok;
+}
+
+parser_error_t _toStringJunctionsV1(
+ const pd_JunctionsV1_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount)
+{
+ CLEAN_AND_CHECK()
+ switch (v->value) {
+ case 0: // Here
+ *pageCount = 1;
+ snprintf(outValue, outValueLen, "Here");
+ break;
+ case 1: // X1
+ CHECK_ERROR(_toStringJunctionV1X1(&v->x1, outValue, outValueLen, pageIdx, pageCount))
+ break;
+ case 2: // X2
+ CHECK_ERROR(_toStringJunctionV1X2(&v->x2, outValue, outValueLen, pageIdx, pageCount))
+ break;
+ case 3: // X3
+ CHECK_ERROR(_toStringJunctionV1X3(&v->x3, outValue, outValueLen, pageIdx, pageCount))
+ break;
+ case 4: // X4
+ CHECK_ERROR(_toStringJunctionV1X4(&v->x4, outValue, outValueLen, pageIdx, pageCount))
+ break;
+ case 5: // X5
+ CHECK_ERROR(_toStringJunctionV1X5(&v->x5, outValue, outValueLen, pageIdx, pageCount))
+ break;
+ case 6: // X6
+ CHECK_ERROR(_toStringJunctionV1X6(&v->x6, outValue, outValueLen, pageIdx, pageCount))
+ break;
+ case 7: // X7
+ CHECK_ERROR(_toStringJunctionV1X7(&v->x7, outValue, outValueLen, pageIdx, pageCount))
+ break;
+ case 8: // X8
+ CHECK_ERROR(_toStringJunctionV1X8(&v->x8, outValue, outValueLen, pageIdx, pageCount))
+ break;
+ default:
+ return parser_unexpected_value;
+ }
+ return parser_ok;
+}
+
+parser_error_t _toStringAssetInstance(
+ const pd_AssetInstance_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount)
+{
+ CLEAN_AND_CHECK()
+ switch (v->value) {
+ case 0: // Undefined
+ *pageCount = 1;
+ snprintf(outValue, outValueLen, "Undefined");
+ break;
+ case 1: // Index
+ CHECK_ERROR(_toStringCompactu128(&v->index, outValue, outValueLen, pageIdx, pageCount))
+ break;
+ case 2: // Array4
+ {
+ GEN_DEF_TOSTRING_ARRAY(4)
+ }
+ case 3: // Array8
+ {
+ GEN_DEF_TOSTRING_ARRAY(8)
+ }
+ case 4: // Array16
+ {
+ GEN_DEF_TOSTRING_ARRAY(16)
+ }
+ case 5: // Array32
+ {
+ GEN_DEF_TOSTRING_ARRAY(32)
+ }
+ case 6: // Blob
+ {
+ CHECK_ERROR(_toStringBytes(&v->blob, outValue, outValueLen, pageIdx, pageCount))
+ break;
+ }
+ default:
+ return parser_not_supported;
+ }
+
+ return parser_ok;
+}
+
+parser_error_t _toStringMultiLocationV0(
+ const pd_MultiLocationV0_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount)
+{
+ CLEAN_AND_CHECK()
+ CHECK_ERROR(_toStringJunctionsV0(&v->junctions, outValue, outValueLen, pageIdx, pageCount))
+ return parser_ok;
+}
+
+parser_error_t _toStringMultiLocationV1(
+ const pd_MultiLocationV1_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount)
+{
+ CLEAN_AND_CHECK()
+
+ // First measure number of pages
+ uint8_t pages[2] = { 0 };
+ CHECK_ERROR(_toStringu8(&v->parents, outValue, outValueLen, 0, &pages[0]))
+ CHECK_ERROR(_toStringJunctionsV1(&v->interior, outValue, outValueLen, 0, &pages[1]))
+
+ *pageCount = 0;
+ for (uint8_t i = 0; i < (uint8_t)sizeof(pages); i++) {
+ *pageCount += pages[i];
+ }
+
+ if (pageIdx > *pageCount) {
+ return parser_display_idx_out_of_range;
+ }
+
+ if (pageIdx < pages[0]) {
+ CHECK_ERROR(_toStringu8(&v->parents, outValue, outValueLen, pageIdx, &pages[0]))
+ return parser_ok;
+ }
+ pageIdx -= pages[0];
+
+ if (pageIdx < pages[1]) {
+ CHECK_ERROR(_toStringJunctionsV1(&v->interior, outValue, outValueLen, pageIdx, &pages[1]))
+ return parser_ok;
+ }
+
+ return parser_display_idx_out_of_range;
+}
+
+parser_error_t _toStringAbstractFungible(
+ const pd_AbstractFungible_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount)
+{
+ CLEAN_AND_CHECK()
+
+ // First measure number of pages
+ uint8_t pages[2] = { 0 };
+ CHECK_ERROR(_toStringBytes(&v->id, outValue, outValueLen, 0, &pages[0]))
+ CHECK_ERROR(_toStringCompactu128(&v->amount, outValue, outValueLen, 0, &pages[1]))
+
+ *pageCount = 0;
+ for (uint8_t i = 0; i < (uint8_t)sizeof(pages); i++) {
+ *pageCount += pages[i];
+ }
+
+ if (pageIdx > *pageCount) {
+ return parser_display_idx_out_of_range;
+ }
+
+ if (pageIdx < pages[0]) {
+ CHECK_ERROR(_toStringBytes(&v->id, outValue, outValueLen, pageIdx, &pages[0]))
+ return parser_ok;
+ }
+ pageIdx -= pages[0];
+
+ if (pageIdx < pages[1]) {
+ CHECK_ERROR(_toStringCompactu128(&v->amount, outValue, outValueLen, pageIdx, &pages[1]))
+ return parser_ok;
+ }
+
+ return parser_display_idx_out_of_range;
+}
+
+parser_error_t _toStringAbstractNonFungible(
+ const pd_AbstractNonFungible_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount)
+{
+ CLEAN_AND_CHECK()
+
+ // First measure number of pages
+ uint8_t pages[2] = { 0 };
+ CHECK_ERROR(_toStringBytes(&v->_class, outValue, outValueLen, 0, &pages[0]))
+ CHECK_ERROR(_toStringAssetInstance(&v->instance, outValue, outValueLen, 0, &pages[1]))
+
+ *pageCount = 0;
+ for (uint8_t i = 0; i < (uint8_t)sizeof(pages); i++) {
+ *pageCount += pages[i];
+ }
+
+ if (pageIdx > *pageCount) {
+ return parser_display_idx_out_of_range;
+ }
+
+ if (pageIdx < pages[0]) {
+ CHECK_ERROR(_toStringBytes(&v->_class, outValue, outValueLen, pageIdx, &pages[0]))
+ return parser_ok;
+ }
+ pageIdx -= pages[0];
+
+ if (pageIdx < pages[1]) {
+ CHECK_ERROR(_toStringAssetInstance(&v->instance, outValue, outValueLen, pageIdx, &pages[1]))
+ return parser_ok;
+ }
+
+ return parser_display_idx_out_of_range;
+}
+
+parser_error_t _toStringBalance(
+ const pd_Balance_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount)
+{
+ CLEAN_AND_CHECK()
+
+ char bufferUI[200];
+ memset(outValue, 0, outValueLen);
+ memset(bufferUI, 0, sizeof(bufferUI));
+ *pageCount = 1;
+
+ uint8_t bcdOut[100];
+ const uint16_t bcdOutLen = sizeof(bcdOut);
+
+ bignumLittleEndian_to_bcd(bcdOut, bcdOutLen, v->_ptr, 16);
+ if (!bignumLittleEndian_bcdprint(bufferUI, sizeof(bufferUI), bcdOut, bcdOutLen)) {
+ return parser_unexpected_buffer_end;
+ }
+
+ // Format number
+ if (intstr_to_fpstr_inplace(bufferUI, sizeof(bufferUI), COIN_AMOUNT_DECIMAL_PLACES) == 0) {
+ return parser_unexpected_value;
+ }
+
+ number_inplace_trimming(bufferUI, 1);
+ number_inplace_trimming(bufferUI, 1);
+ if (z_str3join(bufferUI, sizeof(bufferUI), COIN_TICKER, "") != zxerr_ok) {
+ return parser_print_not_supported;
+ }
+
+ pageString(outValue, outValueLen, bufferUI, pageIdx, pageCount);
+ return parser_ok;
+}
+
+parser_error_t _toStringConcreteFungible(
+ const pd_ConcreteFungible_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount)
+{
+ CLEAN_AND_CHECK()
+
+ // First measure number of pages
+ uint8_t pages[2] = { 0 };
+ CHECK_ERROR(_toStringMultiLocationV0(&v->id, outValue, outValueLen, 0, &pages[0]))
+ CHECK_ERROR(_toStringCompactBalance(&v->amount, outValue, outValueLen, 0, &pages[1]))
+
+ *pageCount = 0;
+ for (uint8_t i = 0; i < (uint8_t)sizeof(pages); i++) {
+ *pageCount += pages[i];
+ }
+
+ if (pageIdx > *pageCount) {
+ return parser_display_idx_out_of_range;
+ }
+
+ if (pageIdx < pages[0]) {
+ CHECK_ERROR(_toStringMultiLocationV0(&v->id, outValue, outValueLen, pageIdx, &pages[0]))
+ return parser_ok;
+ }
+ pageIdx -= pages[0];
+
+ if (pageIdx < pages[1]) {
+ CHECK_ERROR(_toStringCompactBalance(&v->amount, outValue, outValueLen, pageIdx, &pages[1]))
+ return parser_ok;
+ }
+
+ return parser_display_idx_out_of_range;
+}
+
+parser_error_t _toStringConcreteNonFungible(
+ const pd_ConcreteNonFungible_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount)
+{
+ CLEAN_AND_CHECK()
+
+ // First measure number of pages
+ uint8_t pages[2] = { 0 };
+ CHECK_ERROR(_toStringMultiLocationV0(&v->_class, outValue, outValueLen, 0, &pages[0]))
+ CHECK_ERROR(_toStringAssetInstance(&v->instance, outValue, outValueLen, 0, &pages[1]))
+
+ *pageCount = 0;
+ for (uint8_t i = 0; i < (uint8_t)sizeof(pages); i++) {
+ *pageCount += pages[i];
+ }
+
+ if (pageIdx > *pageCount) {
+ return parser_display_idx_out_of_range;
+ }
+
+ if (pageIdx < pages[0]) {
+ CHECK_ERROR(_toStringMultiLocationV0(&v->_class, outValue, outValueLen, pageIdx, &pages[0]))
+ return parser_ok;
+ }
+ pageIdx -= pages[0];
+
+ if (pageIdx < pages[1]) {
+ CHECK_ERROR(_toStringAssetInstance(&v->instance, outValue, outValueLen, pageIdx, &pages[1]))
+ return parser_ok;
+ }
+
+ return parser_display_idx_out_of_range;
+}
+
+parser_error_t _toStringData(
+ const pd_Data_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount)
+{
+ CLEAN_AND_CHECK()
+ *pageCount = 1;
+ if (v->value == 0) {
+ snprintf(outValue, outValueLen, "None");
+ return parser_ok;
+ } else if (v->value == 1) {
+ snprintf(outValue, outValueLen, "Empty raw");
+ return parser_ok;
+ } else if (v->value > 37) {
+ return parser_unexpected_value;
+ }
+ const uint8_t length = v->value <= 32 ? v->value - 1 : 32;
+ bool allPrintable = true;
+ if (v->value <= 33) {
+ for (uint8_t i = 0; i < length; i++) {
+ allPrintable &= IS_PRINTABLE(v->_ptr[i]);
+ }
+ }
+ if (v->value <= 33 && allPrintable) {
+ char bufferUI[40] = { 0 };
+ snprintf(bufferUI, length + 1, "%s", v->_ptr); // it counts null terminator
+ pageString(outValue, outValueLen, (const char*)bufferUI, pageIdx, pageCount);
+ } else {
+ GEN_DEF_TOSTRING_ARRAY(length)
+ }
+ return parser_ok;
+}
+
+parser_error_t _toStringFungibility(
+ const pd_Fungibility_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount)
+{
+ CLEAN_AND_CHECK()
+ switch (v->value) {
+ case 0: // Undefined
+ CHECK_ERROR(_toStringCompactu128(&v->fungible, outValue, outValueLen, pageIdx, pageCount))
+ break;
+ case 1: // Index
+ CHECK_ERROR(_toStringAssetInstance(&v->nonFungible, outValue, outValueLen, pageIdx, pageCount))
+ break;
+ default:
+ return parser_not_supported;
+ }
+
+ return parser_ok;
+}
+
+parser_error_t _toStringMultiAssetId(
+ const pd_MultiAssetId_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount)
+{
+ CLEAN_AND_CHECK()
+ switch (v->value) {
+ case 0: // Concrete
+ CHECK_ERROR(_toStringMultiLocationV1(&v->concrete, outValue, outValueLen, pageIdx, pageCount))
+ break;
+ case 1: // Abstract
+ CHECK_ERROR(_toStringBytes(&v->abstract, outValue, outValueLen, pageIdx, pageCount))
+ break;
+ default:
+ return parser_not_supported;
+ }
+
+ return parser_ok;
+}
+
+parser_error_t _toStringAccountId(
+ const pd_AccountId_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount)
+{
+ return _toStringPubkeyAsAddress(v->_ptr, outValue, outValueLen, pageIdx, pageCount);
+}
+
parser_error_t _toStringBalanceOf(
const pd_BalanceOf_t* v,
char* outValue,
@@ -384,206 +3354,1827 @@ parser_error_t _toStringBalanceOf(
uint8_t pageIdx,
uint8_t* pageCount)
{
- return _toStringBalance(&v->value, outValue, outValueLen, pageIdx, pageCount);
+ return _toStringBalance(&v->value, outValue, outValueLen, pageIdx, pageCount);
+}
+
+parser_error_t _toStringCompactAccountIndex(
+ const pd_CompactAccountIndex_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount)
+{
+ return _toStringCompactInt(&v->value, 0, false, "", "", outValue, outValueLen, pageIdx, pageCount);
+}
+
+parser_error_t _toStringEcdsaPublic(
+ const pd_EcdsaPublic_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount) {
+ GEN_DEF_TOSTRING_ARRAY(33)
+}
+
+parser_error_t _toStringEcdsaSignature(
+ const pd_EcdsaSignature_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount) {
+ GEN_DEF_TOSTRING_ARRAY(65)
+}
+
+parser_error_t _toStringEd25519Public(
+ const pd_Ed25519Public_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount) {
+ GEN_DEF_TOSTRING_ARRAY(32)
+}
+
+parser_error_t _toStringEd25519Signature(
+ const pd_Ed25519Signature_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount) {
+ GEN_DEF_TOSTRING_ARRAY(64)
+}
+
+parser_error_t _toStringH256(
+ const pd_H256_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount)
+{
+ GEN_DEF_TOSTRING_ARRAY(32);
+}
+
+parser_error_t _toStringMultiAssetV0(
+ const pd_MultiAssetV0_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount)
+{
+ CLEAN_AND_CHECK()
+ *pageCount = 1;
+ switch (v->value) {
+ case 0: // None
+ snprintf(outValue, outValueLen, "None");
+ break;
+ case 1: // All
+ snprintf(outValue, outValueLen, "All");
+ break;
+ case 2: // AllFungible
+ snprintf(outValue, outValueLen, "AllFungible");
+ break;
+ case 3: // AllNonFungible
+ snprintf(outValue, outValueLen, "AllNonFungible");
+ break;
+ case 4: // AllAbstractFungible
+ case 5: // AllAbstractNonFungible
+ CHECK_ERROR(_toStringBytes(&v->abstract, outValue, outValueLen, pageIdx, pageCount))
+ break;
+ case 6: // AllConcreteFungible
+ case 7: // AllConcreteNonFungible
+ CHECK_ERROR(_toStringMultiLocationV0(&v->concrete, outValue, outValueLen, pageIdx, pageCount))
+ break;
+ case 8: // AbstractFungible
+ CHECK_ERROR(_toStringAbstractFungible(&v->abstractFungible, outValue, outValueLen, pageIdx, pageCount))
+ break;
+ case 9: // AbstractNonFungible
+ CHECK_ERROR(_toStringAbstractNonFungible(&v->abstractNonFungible, outValue, outValueLen, pageIdx, pageCount))
+ break;
+ case 10: // ConcreteFungible
+ CHECK_ERROR(_toStringConcreteFungible(&v->concreteFungible, outValue, outValueLen, pageIdx, pageCount))
+ break;
+ case 11: // ConcreteNonFungible
+ CHECK_ERROR(_toStringConcreteNonFungible(&v->concreteNonFungible, outValue, outValueLen, pageIdx, pageCount))
+ break;
+ default:
+ return parser_unexpected_value;
+ }
+ return parser_ok;
+}
+
+parser_error_t _toStringMultiAssetV1(
+ const pd_MultiAssetV1_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount)
+{
+ CLEAN_AND_CHECK()
+
+ // First measure number of pages
+ uint8_t pages[2] = { 0 };
+ CHECK_ERROR(_toStringMultiAssetId(&v->assetId, outValue, outValueLen, 0, &pages[0]))
+ CHECK_ERROR(_toStringFungibility(&v->fungibility, outValue, outValueLen, 0, &pages[1]))
+
+ *pageCount = 0;
+ for (uint8_t i = 0; i < (uint8_t)sizeof(pages); i++) {
+ *pageCount += pages[i];
+ }
+
+ if (pageIdx > *pageCount) {
+ return parser_display_idx_out_of_range;
+ }
+
+ if (pageIdx < pages[0]) {
+ CHECK_ERROR(_toStringMultiAssetId(&v->assetId, outValue, outValueLen, pageIdx, &pages[0]))
+ return parser_ok;
+ }
+ pageIdx -= pages[0];
+
+ if (pageIdx < pages[1]) {
+ CHECK_ERROR(_toStringFungibility(&v->fungibility, outValue, outValueLen, pageIdx, &pages[1]))
+ return parser_ok;
+ }
+
+ return parser_display_idx_out_of_range;
+}
+
+parser_error_t _toStringSr25519Public(
+ const pd_Sr25519Public_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount) {
+ GEN_DEF_TOSTRING_ARRAY(32)
+}
+
+parser_error_t _toStringSr25519Signature(
+ const pd_Sr25519Signature_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount) {
+ GEN_DEF_TOSTRING_ARRAY(64)
+}
+
+parser_error_t _toStringTupleDataData(
+ const pd_TupleDataData_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount)
+{
+ CLEAN_AND_CHECK()
+
+ // First measure number of pages
+ uint8_t pages[2] = { 0 };
+ CHECK_ERROR(_toStringData(&v->data1, outValue, outValueLen, 0, &pages[0]))
+ CHECK_ERROR(_toStringData(&v->data2, outValue, outValueLen, 0, &pages[1]))
+
+ *pageCount = 0;
+ for (uint8_t i = 0; i < (uint8_t)sizeof(pages); i++) {
+ *pageCount += pages[i];
+ }
+
+ if (pageIdx > *pageCount) {
+ return parser_display_idx_out_of_range;
+ }
+
+ if (pageIdx < pages[0]) {
+ CHECK_ERROR(_toStringData(&v->data1, outValue, outValueLen, pageIdx, &pages[0]))
+ return parser_ok;
+ }
+ pageIdx -= pages[0];
+
+ if (pageIdx < pages[1]) {
+ CHECK_ERROR(_toStringData(&v->data2, outValue, outValueLen, pageIdx, &pages[1]))
+ return parser_ok;
+ }
+
+ return parser_display_idx_out_of_range;
+}
+
+parser_error_t _toStringVote(
+ const pd_Vote_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount)
+{
+ CLEAN_AND_CHECK()
+ *pageCount = 1;
+ const uint8_t conviction = v->value & 0x0F;
+
+ switch (v->value & 0xF0) {
+ case 0x80:
+ snprintf(outValue, outValueLen, "Aye - ");
+ break;
+ case 0x00:
+ snprintf(outValue, outValueLen, "Nay - ");
+ break;
+ default:
+ return parser_unexpected_value;
+ }
+
+ switch (conviction) {
+ case 0:
+ snprintf(outValue + 6, outValueLen - 6, "None");
+ break;
+ case 1:
+ case 2:
+ case 3:
+ case 4:
+ case 5:
+ case 6:
+ snprintf(outValue + 6, outValueLen - 6, "Locked%dx", conviction);
+ break;
+ default:
+ return parser_unexpected_value;
+ }
+ return parser_ok;
+}
+
+parser_error_t _toStringAccountIdLookupOfT(
+ const pd_AccountIdLookupOfT_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount)
+{
+ CLEAN_AND_CHECK()
+ switch (v->value) {
+ case 0: // Id
+ CHECK_ERROR(_toStringAccountId(&v->id, outValue, outValueLen, pageIdx, pageCount))
+ break;
+ case 1: // Index
+ CHECK_ERROR(_toStringCompactAccountIndex(&v->index, outValue, outValueLen, pageIdx, pageCount))
+ break;
+ case 2: // Raw
+ CHECK_ERROR(_toStringBytes(&v->raw, outValue, outValueLen, pageIdx, pageCount))
+ break;
+ case 3: // Address32
+ {
+ GEN_DEF_TOSTRING_ARRAY(32)
+ }
+ case 4: // Address20
+ {
+ GEN_DEF_TOSTRING_ARRAY(20)
+ }
+ default:
+ return parser_not_supported;
+ }
+
+ return parser_ok;
+}
+
+parser_error_t _toStringAccountVoteSplit(
+ const pd_AccountVoteSplit_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount)
+{
+ CLEAN_AND_CHECK()
+ // First measure number of pages
+ uint8_t pages[3];
+
+ pages[0] = 1;
+ CHECK_ERROR(_toStringBalanceOf(&v->aye, outValue, outValueLen, 0, &pages[1]))
+ CHECK_ERROR(_toStringBalanceOf(&v->nay, outValue, outValueLen, 0, &pages[2]));
+
+ *pageCount = 0;
+ for (uint8_t i = 0; i < (uint8_t)sizeof(pages); i++) {
+ *pageCount += pages[i];
+ }
+
+ if (pageIdx < pages[0]) {
+ snprintf(outValue, outValueLen, "Split");
+ return parser_ok;
+ }
+ pageIdx -= pages[0];
+
+ /////////
+ /////////
+
+ if (pageIdx < pages[1]) {
+ CHECK_ERROR(_toStringBalanceOf(&v->aye, outValue, outValueLen, pageIdx, &pages[1]));
+ return parser_ok;
+ }
+ pageIdx -= pages[1];
+
+ /////////
+ /////////
+
+ if (pageIdx < pages[2]) {
+ CHECK_ERROR(_toStringBalanceOf(&v->nay, outValue, outValueLen, pageIdx, &pages[2]));
+ return parser_ok;
+ }
+
+ /////////
+ /////////
+
+ return parser_display_idx_out_of_range;
+}
+
+parser_error_t _toStringAccountVoteStandard(
+ const pd_AccountVoteStandard_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount)
+{
+ CLEAN_AND_CHECK()
+ // First measure number of pages
+ uint8_t pages[3];
+
+ pages[0] = 1;
+ CHECK_ERROR(_toStringVote(&v->vote, outValue, outValueLen, 0, &pages[1]))
+ CHECK_ERROR(_toStringBalanceOf(&v->balance, outValue, outValueLen, 0, &pages[2]));
+
+ *pageCount = 0;
+ for (uint8_t i = 0; i < (uint8_t)sizeof(pages); i++) {
+ *pageCount += pages[i];
+ }
+
+ if (pageIdx > *pageCount) {
+ return parser_display_idx_out_of_range;
+ }
+
+ if (pageIdx < pages[0]) {
+ snprintf(outValue, outValueLen, "Standard");
+ return parser_ok;
+ }
+ pageIdx -= pages[0];
+
+ if (pageIdx < pages[1]) {
+ CHECK_ERROR(_toStringVote(&v->vote, outValue, outValueLen, pageIdx, &pages[1]));
+ return parser_ok;
+ }
+ pageIdx -= pages[1];
+
+ if (pageIdx < pages[2]) {
+ CHECK_ERROR(_toStringBalanceOf(&v->balance, outValue, outValueLen, pageIdx, &pages[2]));
+ return parser_ok;
+ }
+
+ return parser_display_idx_out_of_range;
+}
+
+parser_error_t _toStringCall(
+ const pd_Call_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount)
+{
+ CLEAN_AND_CHECK()
+ *pageCount = 1;
+
+ parser_context_t ctx;
+
+ const uint8_t* buffer;
+ if (v->nestCallIdx.isTail) {
+ buffer = v->nestCallIdx._ptr;
+ } else {
+ buffer = v->nestCallIdx._nextPtr;
+ }
+
+ parser_init(&ctx, buffer, v->nestCallIdx._lenBuffer);
+ parser_tx_t _txObj;
+
+ pd_Call_t _call;
+ _call.nestCallIdx.isTail = false;
+
+ ctx.tx_obj = &_txObj;
+ _txObj.transactionVersion = *v->_txVerPtr;
+
+ ctx.tx_obj->nestCallIdx._ptr = NULL;
+ ctx.tx_obj->nestCallIdx._nextPtr = NULL;
+ ctx.tx_obj->nestCallIdx._lenBuffer = 0;
+ ctx.tx_obj->nestCallIdx.slotIdx = 0;
+ ctx.tx_obj->nestCallIdx.isTail = false;
+
+ // Read the Call, so we get the contained Method
+ parser_error_t err = _readCallImpl(&ctx, &_call, (pd_MethodNested_t*)&_txObj.method);
+ if (err != parser_ok) {
+ return err;
+ }
+
+ // Get num items of this current Call
+ uint8_t callNumItems = _getMethod_NumItems(*v->_txVerPtr, v->callIndex.moduleIdx, v->callIndex.idx);
+
+ // Count how many pages this call has (including nested ones if they exists)
+ for (uint8_t i = 0; i < callNumItems; i++) {
+ uint8_t itemPages = 0;
+ _getMethod_ItemValue(*v->_txVerPtr, &_txObj.method, _call.callIndex.moduleIdx, _call.callIndex.idx, i,
+ outValue, outValueLen, 0, &itemPages);
+ (*pageCount) += itemPages;
+ }
+
+ if (pageIdx == 0) {
+ snprintf(outValue, outValueLen, "%s", _getMethod_Name(*v->_txVerPtr, v->callIndex.moduleIdx, v->callIndex.idx));
+ return parser_ok;
+ }
+
+ pageIdx--;
+
+ if (pageIdx > *pageCount) {
+ return parser_display_idx_out_of_range;
+ }
+
+ for (uint8_t i = 0; i < callNumItems; i++) {
+ uint8_t itemPages = 0;
+ _getMethod_ItemValue(*v->_txVerPtr, &_txObj.method, v->callIndex.moduleIdx, v->callIndex.idx, i,
+ outValue, outValueLen, 0, &itemPages);
+
+ if (pageIdx < itemPages) {
+ uint8_t tmp;
+ _getMethod_ItemValue(*v->_txVerPtr, &_txObj.method, v->callIndex.moduleIdx, v->callIndex.idx, i,
+ outValue, outValueLen, pageIdx, &tmp);
+ return parser_ok;
+ }
+
+ pageIdx -= itemPages;
+ }
+
+ return parser_display_idx_out_of_range;
+}
+
+parser_error_t _toStringClassOf(
+ const pd_ClassOf_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount)
+{
+ return _toStringu16(&v->value, outValue, outValueLen, pageIdx, pageCount);
+}
+
+parser_error_t _toStringCompactPerBill(
+ const pd_CompactPerBill_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount)
+{
+ // 9 but shift 2 to show as percentage
+ return _toStringCompactInt(&v->value, 7, false, "%", "", outValue, outValueLen, pageIdx, pageCount);
+}
+
+parser_error_t _toStringMultiSignature(
+ const pd_MultiSignature_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount)
+{
+ CLEAN_AND_CHECK()
+ switch (v->value) {
+ case 0: // Ed25519
+ CHECK_ERROR(_toStringEd25519Signature(&v->ed25519, outValue, outValueLen, pageIdx, pageCount))
+ break;
+ case 1: // Sr25519
+ CHECK_ERROR(_toStringSr25519Signature(&v->sr25519, outValue, outValueLen, pageIdx, pageCount))
+ break;
+ case 2: // Ecdsa
+ CHECK_ERROR(_toStringEcdsaSignature(&v->ecdsa, outValue, outValueLen, pageIdx, pageCount))
+ break;
+ default:
+ return parser_not_supported;
+ }
+
+ return parser_ok;
+}
+
+parser_error_t _toStringMultiSigner(
+ const pd_MultiSigner_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount)
+{
+ CLEAN_AND_CHECK()
+ switch (v->value) {
+ case 0: // Ed25519
+ CHECK_ERROR(_toStringEd25519Public(&v->ed25519, outValue, outValueLen, pageIdx, pageCount))
+ break;
+ case 1: // Sr25519
+ CHECK_ERROR(_toStringSr25519Public(&v->sr25519, outValue, outValueLen, pageIdx, pageCount))
+ break;
+ case 2: // Ecdsa
+ CHECK_ERROR(_toStringEcdsaPublic(&v->ecdsa, outValue, outValueLen, pageIdx, pageCount))
+ break;
+ default:
+ return parser_not_supported;
+ }
+
+ return parser_ok;
+}
+
+parser_error_t _toStringPerbill(
+ const pd_Perbill_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount)
+{
+ char bufferUI[100];
+ char ratioBuffer[80];
+ memset(outValue, 0, outValueLen);
+ memset(ratioBuffer, 0, sizeof(ratioBuffer));
+ memset(bufferUI, 0, sizeof(bufferUI));
+ *pageCount = 1;
+
+ if (fpuint64_to_str(ratioBuffer, sizeof(ratioBuffer), v->value, 7) == 0) {
+ return parser_unexpected_value;
+ }
+
+ snprintf(bufferUI, sizeof(bufferUI), "%s%%", ratioBuffer);
+ pageString(outValue, outValueLen, bufferUI, pageIdx, pageCount);
+ return parser_ok;
+}
+
+parser_error_t _toStringPercent(
+ const pd_Percent_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount)
+{
+ char bufferUI[50];
+ char bufferRatio[50];
+
+ uint64_to_str(bufferRatio, sizeof(bufferRatio), v->value);
+
+ snprintf(bufferUI, sizeof(bufferUI), "%s%%", bufferRatio);
+ pageString(outValue, outValueLen, bufferUI, pageIdx, pageCount);
+ return parser_ok;
+}
+
+parser_error_t _toStringProxyType(
+ const pd_ProxyType_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount)
+{
+ CLEAN_AND_CHECK()
+
+ *pageCount = 1;
+ switch (v->value) {
+ case 0:
+ snprintf(outValue, outValueLen, "Any");
+ break;
+ case 1:
+ snprintf(outValue, outValueLen, "NonTransfer");
+ break;
+ case 2:
+ snprintf(outValue, outValueLen, "Governance");
+ break;
+ case 3:
+ snprintf(outValue, outValueLen, "Staking");
+ break;
+ case 4:
+ snprintf(outValue, outValueLen, "IdentityJudgement");
+ break;
+ case 5:
+ snprintf(outValue, outValueLen, "CancelProxy");
+ break;
+ case 6:
+ snprintf(outValue, outValueLen, "Auction");
+ break;
+ case 7:
+ snprintf(outValue, outValueLen, "Society");
+ break;
+ default:
+ return parser_print_not_supported;
+ }
+
+ return parser_ok;
+}
+
+parser_error_t _toStringReferendumIndex(
+ const pd_ReferendumIndex_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount)
+{
+ return _toStringu32(&v->value, outValue, outValueLen, pageIdx, pageCount);
+}
+
+parser_error_t _toStringTimepoint(
+ const pd_Timepoint_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount)
+{
+ CLEAN_AND_CHECK()
+
+ // First measure number of pages
+ uint8_t pages[2] = { 0 };
+ CHECK_ERROR(_toStringBlockNumber(&v->height, outValue, outValueLen, 0, &pages[0]))
+ CHECK_ERROR(_toStringu32(&v->index, outValue, outValueLen, 0, &pages[1]))
+
+ *pageCount = 0;
+ for (uint8_t i = 0; i < (uint8_t)sizeof(pages); i++) {
+ *pageCount += pages[i];
+ }
+
+ if (pageIdx > *pageCount) {
+ return parser_display_idx_out_of_range;
+ }
+
+ if (pageIdx < pages[0]) {
+ CHECK_ERROR(_toStringBlockNumber(&v->height, outValue, outValueLen, pageIdx, &pages[0]))
+ return parser_ok;
+ }
+ pageIdx -= pages[0];
+
+ if (pageIdx < pages[1]) {
+ CHECK_ERROR(_toStringu32(&v->index, outValue, outValueLen, pageIdx, &pages[1]))
+ return parser_ok;
+ }
+
+ return parser_display_idx_out_of_range;
+}
+
+parser_error_t _toStringTupleAccountIdData(
+ const pd_TupleAccountIdData_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount)
+{
+ CLEAN_AND_CHECK()
+
+ // First measure number of pages
+ uint8_t pages[2] = { 0 };
+ CHECK_ERROR(_toStringAccountId(&v->id, outValue, outValueLen, 0, &pages[0]))
+ CHECK_ERROR(_toStringData(&v->data, outValue, outValueLen, 0, &pages[1]))
+
+ *pageCount = 0;
+ for (uint8_t i = 0; i < (uint8_t)sizeof(pages); i++) {
+ *pageCount += pages[i];
+ }
+
+ if (pageIdx > *pageCount) {
+ return parser_display_idx_out_of_range;
+ }
+
+ if (pageIdx < pages[0]) {
+ CHECK_ERROR(_toStringAccountId(&v->id, outValue, outValueLen, pageIdx, &pages[0]))
+ return parser_ok;
+ }
+ pageIdx -= pages[0];
+
+ if (pageIdx < pages[1]) {
+ CHECK_ERROR(_toStringData(&v->data, outValue, outValueLen, pageIdx, &pages[1]))
+ return parser_ok;
+ }
+
+ return parser_display_idx_out_of_range;
+}
+
+parser_error_t _toStringTupleH256u32(
+ const pd_TupleH256u32_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount)
+{
+ CLEAN_AND_CHECK()
+
+ // First measure number of pages
+ uint8_t pages[2] = { 0 };
+ CHECK_ERROR(_toStringH256(&v->h256, outValue, outValueLen, 0, &pages[0]))
+ CHECK_ERROR(_toStringu32(&v->u32, outValue, outValueLen, 0, &pages[1]))
+
+ *pageCount = 0;
+ for (uint8_t i = 0; i < (uint8_t)sizeof(pages); i++) {
+ *pageCount += pages[i];
+ }
+
+ if (pageIdx > *pageCount) {
+ return parser_display_idx_out_of_range;
+ }
+
+ if (pageIdx < pages[0]) {
+ CHECK_ERROR(_toStringH256(&v->h256, outValue, outValueLen, pageIdx, &pages[0]))
+ return parser_ok;
+ }
+ pageIdx -= pages[0];
+
+ if (pageIdx < pages[1]) {
+ CHECK_ERROR(_toStringu32(&v->u32, outValue, outValueLen, pageIdx, &pages[1]))
+ return parser_ok;
+ }
+
+ return parser_display_idx_out_of_range;
+}
+
+parser_error_t _toStringu128(
+ const pd_u128_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount)
+{
+ CLEAN_AND_CHECK()
+
+ char bufferUI[200];
+ MEMZERO(outValue, outValueLen);
+ MEMZERO(bufferUI, sizeof(bufferUI));
+ *pageCount = 1;
+
+ uint8_t bcdOut[100];
+ const uint16_t bcdOutLen = sizeof(bcdOut);
+ bignumLittleEndian_to_bcd(bcdOut, bcdOutLen, v->_ptr, 16);
+ if (!bignumLittleEndian_bcdprint(bufferUI, sizeof(bufferUI), bcdOut, bcdOutLen))
+ return parser_unexpected_buffer_end;
+
+ // Format number
+ if (intstr_to_fpstr_inplace(bufferUI, sizeof(bufferUI), 0) == 0) {
+ return parser_unexpected_value;
+ }
+
+ pageString(outValue, outValueLen, bufferUI, pageIdx, pageCount);
+
+ return parser_ok;
+}
+
+parser_error_t _toStringAccountVote(
+ const pd_AccountVote_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount)
+{
+ CLEAN_AND_CHECK()
+ switch (v->value) {
+ case 0:
+ CHECK_ERROR(_toStringAccountVoteStandard(&v->voteStandard, outValue, outValueLen, pageIdx, pageCount));
+ break;
+ case 1:
+ CHECK_ERROR(_toStringAccountVoteSplit(&v->voteSplit, outValue, outValueLen, pageIdx, pageCount));
+ break;
+ default:
+ return parser_unexpected_value;
+ }
+
+ return parser_ok;
+}
+
+parser_error_t _toStringBondExtraBalanceOfT(
+ const pd_BondExtraBalanceOfT_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount)
+{
+ CLEAN_AND_CHECK()
+ *pageCount = 1;
+ switch (v->value) {
+ case 0:
+ CHECK_ERROR(_toStringBalance(&v->freeBalance, outValue, outValueLen, pageIdx, pageCount))
+ break;
+ case 1:
+ snprintf(outValue, outValueLen, "Rewards");
+ break;
+ default:
+ return parser_unexpected_value;
+ }
+ return parser_ok;
+}
+
+parser_error_t _toStringBoundedCallOfT(
+ const pd_BoundedCallOfT_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount)
+{
+ CLEAN_AND_CHECK()
+ switch (v->value) {
+ case 0:
+ CHECK_ERROR(_toStringH256(&v->legacy, outValue, outValueLen, pageIdx, pageCount))
+ break;
+ case 1:
+ CHECK_ERROR(_toStringBytes(&v->_inline, outValue, outValueLen, pageIdx, pageCount))
+ break;
+ case 2:
+ CHECK_ERROR(_toStringTupleH256u32(&v->lookup, outValue, outValueLen, pageIdx, pageCount))
+ break;
+ default:
+ return parser_unexpected_value;
+ }
+ return parser_ok;
+}
+
+parser_error_t _toStringBoxVersionedMultiAssets(
+ const pd_BoxVersionedMultiAssets_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount)
+{
+ CLEAN_AND_CHECK()
+ switch (v->value) {
+ case 0: // V0
+ CHECK_ERROR(_toStringVecMultiAssetV0(&v->vecMultiassetV0, outValue, outValueLen, pageIdx, pageCount))
+ break;
+ case 1: // V1
+ CHECK_ERROR(_toStringVecMultiAssetV1(&v->vecMultiassetV1, outValue, outValueLen, pageIdx, pageCount))
+ break;
+ default:
+ return parser_not_supported;
+ }
+
+ return parser_ok;
+}
+
+parser_error_t _toStringBoxVersionedMultiLocation(
+ const pd_BoxVersionedMultiLocation_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount)
+{
+ CLEAN_AND_CHECK()
+ switch (v->value) {
+ case 0: // V0
+ CHECK_ERROR(_toStringMultiLocationV0(&v->multilocationV0, outValue, outValueLen, pageIdx, pageCount))
+ break;
+ case 1: // V1
+ CHECK_ERROR(_toStringMultiLocationV1(&v->multilocationV1, outValue, outValueLen, pageIdx, pageCount))
+ break;
+ default:
+ return parser_not_supported;
+ }
+
+ return parser_ok;
+}
+
+parser_error_t _toStringConfigOpAccountId(
+ const pd_ConfigOpAccountId_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount)
+{
+ CLEAN_AND_CHECK()
+ *pageCount = 1;
+ switch (v->value) {
+ case 0:
+ snprintf(outValue, outValueLen, "Noop");
+ break;
+ case 1:
+ CHECK_ERROR(_toStringAccountId(&v->set, outValue, outValueLen, pageIdx, pageCount))
+ break;
+ case 2:
+ snprintf(outValue, outValueLen, "Remove");
+ break;
+ default:
+ return parser_unexpected_value;
+ }
+ return parser_ok;
+}
+
+parser_error_t _toStringConfigOpBalanceOfT(
+ const pd_ConfigOpBalanceOfT_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount)
+{
+ CLEAN_AND_CHECK()
+ *pageCount = 1;
+ switch (v->value) {
+ case 0:
+ snprintf(outValue, outValueLen, "Noop");
+ break;
+ case 1:
+ CHECK_ERROR(_toStringBalance(&v->set, outValue, outValueLen, pageIdx, pageCount))
+ break;
+ case 2:
+ snprintf(outValue, outValueLen, "Remove");
+ break;
+ default:
+ return parser_unexpected_value;
+ }
+ return parser_ok;
+}
+
+parser_error_t _toStringConfigOpPerbill(
+ const pd_ConfigOpPerbill_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount)
+{
+ CLEAN_AND_CHECK()
+ *pageCount = 1;
+ switch (v->value) {
+ case 0:
+ snprintf(outValue, outValueLen, "Noop");
+ break;
+ case 1:
+ CHECK_ERROR(_toStringPerbill(&v->set, outValue, outValueLen, pageIdx, pageCount))
+ break;
+ case 2:
+ snprintf(outValue, outValueLen, "Remove");
+ break;
+ default:
+ return parser_unexpected_value;
+ }
+ return parser_ok;
+}
+
+parser_error_t _toStringConfigOpPercent(
+ const pd_ConfigOpPercent_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount)
+{
+ CLEAN_AND_CHECK()
+ *pageCount = 1;
+ switch (v->value) {
+ case 0:
+ snprintf(outValue, outValueLen, "Noop");
+ break;
+ case 1:
+ CHECK_ERROR(_toStringPercent(&v->set, outValue, outValueLen, pageIdx, pageCount))
+ break;
+ case 2:
+ snprintf(outValue, outValueLen, "Remove");
+ break;
+ default:
+ return parser_unexpected_value;
+ }
+ return parser_ok;
+}
+
+parser_error_t _toStringIdentityInfo(
+ const pd_IdentityInfo_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount)
+{
+ CLEAN_AND_CHECK()
+
+ // First measure number of pages
+ uint8_t pages[9] = { 0 };
+ CHECK_ERROR(_toStringVecTupleDataData(&v->additional, outValue, outValueLen, 0, &pages[0]))
+ CHECK_ERROR(_toStringData(&v->display, outValue, outValueLen, 0, &pages[1]))
+ CHECK_ERROR(_toStringData(&v->legal, outValue, outValueLen, 0, &pages[2]))
+ CHECK_ERROR(_toStringData(&v->web, outValue, outValueLen, 0, &pages[3]))
+ CHECK_ERROR(_toStringData(&v->riot, outValue, outValueLen, 0, &pages[4]))
+ CHECK_ERROR(_toStringData(&v->email, outValue, outValueLen, 0, &pages[5]))
+ CHECK_ERROR(_toStringOptionu8_array_20(&v->pgp_fingerprint, outValue, outValueLen, 0, &pages[6]))
+ CHECK_ERROR(_toStringData(&v->image, outValue, outValueLen, 0, &pages[7]))
+ CHECK_ERROR(_toStringData(&v->twitter, outValue, outValueLen, 0, &pages[8]))
+
+ *pageCount = 0;
+ for (uint8_t i = 0; i < (uint8_t)sizeof(pages); i++) {
+ *pageCount += pages[i];
+ }
+
+ if (pageIdx > *pageCount) {
+ return parser_display_idx_out_of_range;
+ }
+
+ if (pageIdx < pages[0]) {
+ CHECK_ERROR(_toStringVecTupleDataData(&v->additional, outValue, outValueLen, pageIdx, &pages[0]))
+ return parser_ok;
+ }
+ pageIdx -= pages[0];
+
+ if (pageIdx < pages[1]) {
+ CHECK_ERROR(_toStringData(&v->display, outValue, outValueLen, pageIdx, &pages[1]))
+ return parser_ok;
+ }
+ pageIdx -= pages[1];
+
+ if (pageIdx < pages[2]) {
+ CHECK_ERROR(_toStringData(&v->legal, outValue, outValueLen, pageIdx, &pages[2]))
+ return parser_ok;
+ }
+ pageIdx -= pages[2];
+
+ if (pageIdx < pages[3]) {
+ CHECK_ERROR(_toStringData(&v->web, outValue, outValueLen, pageIdx, &pages[3]))
+ return parser_ok;
+ }
+ pageIdx -= pages[3];
+
+ if (pageIdx < pages[4]) {
+ CHECK_ERROR(_toStringData(&v->riot, outValue, outValueLen, pageIdx, &pages[4]))
+ return parser_ok;
+ }
+ pageIdx -= pages[4];
+
+ if (pageIdx < pages[5]) {
+ CHECK_ERROR(_toStringData(&v->email, outValue, outValueLen, pageIdx, &pages[5]))
+ return parser_ok;
+ }
+ pageIdx -= pages[5];
+
+ if (pageIdx < pages[6]) {
+ CHECK_ERROR(_toStringOptionu8_array_20(&v->pgp_fingerprint, outValue, outValueLen, pageIdx, &pages[6]))
+ return parser_ok;
+ }
+ pageIdx -= pages[6];
+
+ if (pageIdx < pages[7]) {
+ CHECK_ERROR(_toStringData(&v->image, outValue, outValueLen, pageIdx, &pages[7]))
+ return parser_ok;
+ }
+ pageIdx -= pages[7];
+
+ if (pageIdx < pages[8]) {
+ CHECK_ERROR(_toStringData(&v->twitter, outValue, outValueLen, pageIdx, &pages[8]))
+ return parser_ok;
+ }
+
+ return parser_display_idx_out_of_range;
+}
+
+parser_error_t _toStringJudgementBalanceOfT(
+ const pd_JudgementBalanceOfT_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount)
+{
+ CLEAN_AND_CHECK()
+ *pageCount = 1;
+ switch (v->value) {
+ case 0: // Unknown
+ snprintf(outValue, outValueLen, "Unknown");
+ break;
+ case 2: // Reasonable
+ snprintf(outValue, outValueLen, "Reasonable");
+ break;
+ case 3: // KnownGood
+ snprintf(outValue, outValueLen, "KnownGood");
+ break;
+ case 4: // OutOfDate
+ snprintf(outValue, outValueLen, "OutOfDate");
+ break;
+ case 5: // LowQuality
+ snprintf(outValue, outValueLen, "LowQuality");
+ break;
+ case 6: // Erroneous
+ snprintf(outValue, outValueLen, "Erroneous");
+ break;
+ case 1: // FeePaid
+ CHECK_ERROR(_toStringBalance(&v->feePaid, outValue, outValueLen, pageIdx, pageCount))
+ break;
+ default:
+ return parser_unexpected_value;
+ }
+ return parser_ok;
+}
+
+parser_error_t _toStringOptionMultiSigner(
+ const pd_OptionMultiSigner_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount)
+{
+ CLEAN_AND_CHECK()
+
+ if (v->some == 0) {
+ snprintf(outValue, outValueLen, "None");
+ return parser_ok;
+ }
+ return _toStringMultiSigner(&v->verifier, outValue, outValueLen, pageIdx, pageCount);
+}
+
+parser_error_t _toStringProposal(
+ const pd_Proposal_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount)
+{
+ return _toStringCall(&v->call, outValue, outValueLen, pageIdx, pageCount);
+}
+
+parser_error_t _toStringRewardDestination(
+ const pd_RewardDestination_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount)
+{
+ CLEAN_AND_CHECK()
+
+ *pageCount = 1;
+ switch (v->value) {
+ case 0:
+ snprintf(outValue, outValueLen, "Staked");
+ break;
+ case 1:
+ snprintf(outValue, outValueLen, "Stash");
+ break;
+ case 2:
+ snprintf(outValue, outValueLen, "Controller");
+ break;
+ case 3:
+ CHECK_ERROR(_toStringAccountId(&v->accountId, outValue, outValueLen, pageIdx, pageCount));
+ break;
+ case 4:
+ snprintf(outValue, outValueLen, "None");
+ break;
+ default:
+ return parser_print_not_supported;
+ }
+
+ return parser_ok;
+}
+
+parser_error_t _toStringValidatorPrefs(
+ const pd_ValidatorPrefs_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount)
+{
+ CLEAN_AND_CHECK()
+
+ // First measure number of pages
+ uint8_t pages[2] = { 0 };
+ CHECK_ERROR(_toStringCompactPerBill(&v->commission, outValue, outValueLen, 0, &pages[0]))
+ CHECK_ERROR(_toStringbool(&v->blocked, outValue, outValueLen, 0, &pages[1]))
+
+ *pageCount = 0;
+ for (uint8_t i = 0; i < (uint8_t)sizeof(pages); i++) {
+ *pageCount += pages[i];
+ }
+
+ if (pageIdx > *pageCount) {
+ return parser_display_idx_out_of_range;
+ }
+
+ if (pageIdx < pages[0]) {
+ CHECK_ERROR(_toStringCompactPerBill(&v->commission, outValue, outValueLen, pageIdx, &pages[0]))
+ return parser_ok;
+ }
+ pageIdx -= pages[0];
+
+ if (pageIdx < pages[1]) {
+ CHECK_ERROR(_toStringbool(&v->blocked, outValue, outValueLen, pageIdx, &pages[1]))
+ return parser_ok;
+ }
+
+ return parser_display_idx_out_of_range;
+}
+
+parser_error_t _toStringVecCall(
+ const pd_VecCall_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount)
+{
+ CLEAN_AND_CHECK()
+ /* count number of pages, then output specific */
+ *pageCount = 0;
+ uint8_t chunkPageCount;
+ uint16_t currentPage, currentTotalPage = 0;
+ /* We need to do it twice because there is no memory to keep intermediate results*/
+ /* First count*/
+ parser_context_t ctx;
+ parser_init(&ctx, v->_ptr, v->_lenBuffer);
+ parser_tx_t _txObj;
+ pd_Call_t _call;
+ ctx.tx_obj = &_txObj;
+ _txObj.transactionVersion = v->callTxVersion;
+ _call._txVerPtr = &v->callTxVersion;
+ _call.nestCallIdx.isTail = true;
+
+ ctx.tx_obj->nestCallIdx.slotIdx = 0;
+ ctx.tx_obj->nestCallIdx._lenBuffer = 0;
+ ctx.tx_obj->nestCallIdx._ptr = NULL;
+ ctx.tx_obj->nestCallIdx._nextPtr = NULL;
+ ctx.tx_obj->nestCallIdx.isTail = true;
+
+ for (uint16_t i = 0; i < v->_len; i++) {
+ ctx.tx_obj->nestCallIdx._ptr = NULL;
+ ctx.tx_obj->nestCallIdx._nextPtr = NULL;
+ ctx.tx_obj->nestCallIdx.slotIdx = 0;
+ CHECK_ERROR(_readCallImpl(&ctx, &_call, (pd_MethodNested_t*)&_txObj.method));
+ CHECK_ERROR(_toStringCall(&_call, outValue, outValueLen, 0, &chunkPageCount));
+ (*pageCount) += chunkPageCount;
+ }
+
+ /* Then iterate until we can print the corresponding chunk*/
+ parser_init(&ctx, v->_ptr, v->_lenBuffer);
+ for (uint16_t i = 0; i < v->_len; i++) {
+ ctx.tx_obj->nestCallIdx._ptr = NULL;
+ ctx.tx_obj->nestCallIdx._nextPtr = NULL;
+ ctx.tx_obj->nestCallIdx.slotIdx = 0;
+ CHECK_ERROR(_readCallImpl(&ctx, &_call, (pd_MethodNested_t*)&_txObj.method));
+ chunkPageCount = 1;
+ currentPage = 0;
+ while (currentPage < chunkPageCount) {
+ CHECK_ERROR(_toStringCall(&_call, outValue, outValueLen, currentPage, &chunkPageCount));
+ if (currentTotalPage == pageIdx) {
+ return parser_ok;
+ }
+ currentPage++;
+ currentTotalPage++;
+ }
+ }
+
+ return parser_print_not_supported;
+}
+
+parser_error_t _toStringVestingInfo(
+ const pd_VestingInfo_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount)
+{
+ CLEAN_AND_CHECK()
+
+ // First measure number of pages
+ uint8_t pages[3] = { 0 };
+ CHECK_ERROR(_toStringBalanceOf(&v->locked, outValue, outValueLen, 0, &pages[0]))
+ CHECK_ERROR(_toStringBalanceOf(&v->per_block, outValue, outValueLen, 0, &pages[1]))
+ CHECK_ERROR(_toStringBlockNumber(&v->starting_block, outValue, outValueLen, 0, &pages[2]))
+
+ *pageCount = 0;
+ for (uint8_t i = 0; i < (uint8_t)sizeof(pages); i++) {
+ *pageCount += pages[i];
+ }
+
+ if (pageIdx > *pageCount) {
+ return parser_display_idx_out_of_range;
+ }
+
+ if (pageIdx < pages[0]) {
+ CHECK_ERROR(_toStringBalanceOf(&v->locked, outValue, outValueLen, pageIdx, &pages[0]))
+ return parser_ok;
+ }
+ pageIdx -= pages[0];
+
+ if (pageIdx < pages[1]) {
+ CHECK_ERROR(_toStringBalanceOf(&v->per_block, outValue, outValueLen, pageIdx, &pages[1]))
+ return parser_ok;
+ }
+ pageIdx -= pages[1];
+
+ if (pageIdx < pages[2]) {
+ CHECK_ERROR(_toStringBlockNumber(&v->starting_block, outValue, outValueLen, pageIdx, &pages[2]))
+ return parser_ok;
+ }
+
+ return parser_display_idx_out_of_range;
+}
+
+parser_error_t _toStringWeightLimit(
+ const pd_WeightLimit_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount)
+{
+ CLEAN_AND_CHECK()
+ switch (v->value) {
+ case 0: // Unlimited
+ *pageCount = 1;
+ snprintf(outValue, outValueLen, "Unlimited");
+ break;
+ case 1: // Limited
+ CHECK_ERROR(_toStringCompactu64(&v->limited, outValue, outValueLen, pageIdx, pageCount))
+ break;
+ default:
+ return parser_unexpected_value;
+ }
+ return parser_ok;
+}
+
+parser_error_t _toStringWeight(
+ const pd_Weight_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount)
+{
+ CLEAN_AND_CHECK()
+
+ // First measure number of pages
+ uint8_t pages[2] = { 0 };
+ CHECK_ERROR(_toStringCompactu64(&v->refTime, outValue, outValueLen, 0, &pages[0]))
+ CHECK_ERROR(_toStringCompactu64(&v->proofSize, outValue, outValueLen, 0, &pages[1]))
+
+ *pageCount = 0;
+ for (uint8_t i = 0; i < (uint8_t)sizeof(pages); i++) {
+ *pageCount += pages[i];
+ }
+
+ if (pageIdx > *pageCount) {
+ return parser_display_idx_out_of_range;
+ }
+
+ if (pageIdx < pages[0]) {
+ CHECK_ERROR(_toStringCompactu64(&v->refTime, outValue, outValueLen, pageIdx, &pages[0]))
+ return parser_ok;
+ }
+ pageIdx -= pages[0];
+
+ if (pageIdx < pages[1]) {
+ CHECK_ERROR(_toStringCompactu64(&v->proofSize, outValue, outValueLen, pageIdx, &pages[1]))
+ return parser_ok;
+ }
+
+ return parser_display_idx_out_of_range;
+}
+
+parser_error_t _toStringAccountIndex(
+ const pd_AccountIndex_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount)
+{
+ return _toStringu32(&v->value, outValue, outValueLen, pageIdx, pageCount);
+}
+
+parser_error_t _toStringConfigOpu32(
+ const pd_ConfigOpu32_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount)
+{
+ CLEAN_AND_CHECK()
+ *pageCount = 1;
+ switch (v->value) {
+ case 0:
+ snprintf(outValue, outValueLen, "Noop");
+ break;
+ case 1:
+ CHECK_ERROR(_toStringu32(&v->set, outValue, outValueLen, pageIdx, pageCount))
+ break;
+ case 2:
+ snprintf(outValue, outValueLen, "Remove");
+ break;
+ default:
+ return parser_unexpected_value;
+ }
+ return parser_ok;
+}
+
+parser_error_t _toStringConviction(
+ const pd_Conviction_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount)
+{
+ CLEAN_AND_CHECK()
+
+ *pageCount = 1;
+ switch (v->value) {
+ case 0:
+ snprintf(outValue, outValueLen, "None");
+ break;
+ case 1:
+ snprintf(outValue, outValueLen, "Locked1x");
+ break;
+ case 2:
+ snprintf(outValue, outValueLen, "Locked2x");
+ break;
+ case 3:
+ snprintf(outValue, outValueLen, "Locked3x");
+ break;
+ case 4:
+ snprintf(outValue, outValueLen, "Locked4x");
+ break;
+ case 5:
+ snprintf(outValue, outValueLen, "Locked5x");
+ break;
+ default:
+ return parser_print_not_supported;
+ }
+
+ return parser_ok;
+}
+
+parser_error_t _toStringEraIndex(
+ const pd_EraIndex_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount)
+{
+ return _toStringu32(&v->value, outValue, outValueLen, pageIdx, pageCount);
+}
+
+parser_error_t _toStringEthereumAddress(
+ const pd_EthereumAddress_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount) {
+ GEN_DEF_TOSTRING_ARRAY(20)
+}
+
+parser_error_t _toStringHash(
+ const pd_Hash_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount) {
+ GEN_DEF_TOSTRING_ARRAY(32)
+}
+
+parser_error_t _toStringKeys(
+ const pd_Keys_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount) {
+ GEN_DEF_TOSTRING_ARRAY(6 * 32)
+}
+
+parser_error_t _toStringMemberCount(
+ const pd_MemberCount_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount)
+{
+ return _toStringu32(&v->value, outValue, outValueLen, pageIdx, pageCount);
+}
+
+parser_error_t _toStringOverweightIndex(
+ const pd_OverweightIndex_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount)
+{
+ return _toStringu64(&v->value, outValue, outValueLen, pageIdx, pageCount);
+}
+
+parser_error_t _toStringParaId(
+ const pd_ParaId_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount)
+{
+ return _toStringu32(&v->value, outValue, outValueLen, pageIdx, pageCount);
+}
+
+parser_error_t _toStringPollIndexOf(
+ const pd_PollIndexOf_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount)
+{
+ return _toStringu32(&v->value, outValue, outValueLen, pageIdx, pageCount);
+}
+
+parser_error_t _toStringPoolId(
+ const pd_PoolId_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount)
+{
+ return _toStringu32(&v->value, outValue, outValueLen, pageIdx, pageCount);
+}
+
+parser_error_t _toStringPoolState(
+ const pd_PoolState_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount)
+{
+ CLEAN_AND_CHECK()
+ *pageCount = 1;
+ switch (v->value) {
+ case 0:
+ snprintf(outValue, outValueLen, "Open");
+ break;
+ case 1:
+ snprintf(outValue, outValueLen, "Blocked");
+ break;
+ case 2:
+ snprintf(outValue, outValueLen, "Destroying");
+ break;
+ default:
+ return parser_unexpected_value;
+ }
+ return parser_ok;
+}
+
+parser_error_t _toStringPreimageHash(
+ const pd_PreimageHash_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount) {
+ GEN_DEF_TOSTRING_ARRAY(32)
+}
+
+parser_error_t _toStringRank(
+ const pd_Rank_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount)
+{
+ return _toStringu16(&v->value, outValue, outValueLen, pageIdx, pageCount);
+}
+
+parser_error_t _toStringRegistrarIndex(
+ const pd_RegistrarIndex_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount)
+{
+ return _toStringu32(&v->value, outValue, outValueLen, pageIdx, pageCount);
+}
+
+parser_error_t _toStringSessionIndex(
+ const pd_SessionIndex_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount)
+{
+ return _toStringu32(&v->value, outValue, outValueLen, pageIdx, pageCount);
+}
+
+parser_error_t _toStringTrackIdOf(
+ const pd_TrackIdOf_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount)
+{
+ return _toStringu16(&v->value, outValue, outValueLen, pageIdx, pageCount);
+}
+
+parser_error_t _toStringVecMultiAssetV0(
+ const pd_VecMultiAssetV0_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount)
+{
+ GEN_DEF_TOSTRING_VECTOR(MultiAssetV0);
+}
+
+parser_error_t _toStringVecMultiAssetV1(
+ const pd_VecMultiAssetV1_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount)
+{
+ GEN_DEF_TOSTRING_VECTOR(MultiAssetV1);
+}
+
+parser_error_t _toStringVecTupleDataData(
+ const pd_VecTupleDataData_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount)
+{
+ GEN_DEF_TOSTRING_VECTOR(TupleDataData);
}
-parser_error_t _toStringBytes(
- const pd_Bytes_t* v,
+parser_error_t _toStringVecAccountIdLookupOfT(
+ const pd_VecAccountIdLookupOfT_t* v,
char* outValue,
uint16_t outValueLen,
uint8_t pageIdx,
uint8_t* pageCount)
{
- GEN_DEF_TOSTRING_ARRAY(v->_len);
+ GEN_DEF_TOSTRING_VECTOR(AccountIdLookupOfT);
}
-parser_error_t _toStringCall(
- const pd_Call_t* v,
+parser_error_t _toStringVecTupleAccountIdData(
+ const pd_VecTupleAccountIdData_t* v,
char* outValue,
uint16_t outValueLen,
uint8_t pageIdx,
uint8_t* pageCount)
{
- CLEAN_AND_CHECK()
- *pageCount = 1;
-
- parser_context_t ctx;
-
- const uint8_t* buffer;
- if (v->nestCallIdx.isTail) {
- buffer = v->nestCallIdx._ptr;
- } else {
- buffer = v->nestCallIdx._nextPtr;
- }
-
- parser_init(&ctx, buffer, v->nestCallIdx._lenBuffer);
- parser_tx_t _txObj;
-
- pd_Call_t _call;
- _call.nestCallIdx.isTail = false;
-
- ctx.tx_obj = &_txObj;
- _txObj.transactionVersion = *v->_txVerPtr;
-
- ctx.tx_obj->nestCallIdx._ptr = NULL;
- ctx.tx_obj->nestCallIdx._nextPtr = NULL;
- ctx.tx_obj->nestCallIdx._lenBuffer = 0;
- ctx.tx_obj->nestCallIdx.slotIdx = 0;
- ctx.tx_obj->nestCallIdx.isTail = false;
-
- // Read the Call, so we get the contained Method
- parser_error_t err = _readCallImpl(&ctx, &_call, (pd_MethodNested_t*)&_txObj.method);
- if (err != parser_ok) {
- return err;
- }
+ GEN_DEF_TOSTRING_VECTOR(TupleAccountIdData);
+}
- // Get num items of this current Call
- uint8_t callNumItems = _getMethod_NumItems(*v->_txVerPtr, v->callIndex.moduleIdx, v->callIndex.idx);
+parser_error_t _toStringVecAccountId(
+ const pd_VecAccountId_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount)
+{
+ GEN_DEF_TOSTRING_VECTOR(AccountId);
+}
- // Count how many pages this call has (including nested ones if they exists)
- for (uint8_t i = 0; i < callNumItems; i++) {
- uint8_t itemPages = 0;
- _getMethod_ItemValue(*v->_txVerPtr, &_txObj.method, _call.callIndex.moduleIdx, _call.callIndex.idx, i,
- outValue, outValueLen, 0, &itemPages);
- (*pageCount) += itemPages;
- }
+parser_error_t _toStringVecu32(
+ const pd_Vecu32_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount)
+{
+ GEN_DEF_TOSTRING_VECTOR(u32);
+}
- if (pageIdx == 0) {
- snprintf(outValue, outValueLen, "%s", _getMethod_Name(*v->_txVerPtr, v->callIndex.moduleIdx, v->callIndex.idx));
- return parser_ok;
- }
+parser_error_t _toStringVecu8(
+ const pd_Vecu8_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount)
+{
+ GEN_DEF_TOSTRING_VECTOR(u8);
+}
- pageIdx--;
+parser_error_t _toStringOptionu8_array_20(
+ const pd_Optionu8_array_20_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount)
+{
+ CLEAN_AND_CHECK()
- if (pageIdx > *pageCount) {
- return parser_display_idx_out_of_range;
+ *pageCount = 1;
+ if (v->some > 0) {
+ CHECK_ERROR(_toStringu8_array_20(
+ &v->contained,
+ outValue, outValueLen,
+ pageIdx, pageCount));
+ } else {
+ snprintf(outValue, outValueLen, "None");
}
+ return parser_ok;
+}
- for (uint8_t i = 0; i < callNumItems; i++) {
- uint8_t itemPages = 0;
- _getMethod_ItemValue(*v->_txVerPtr, &_txObj.method, v->callIndex.moduleIdx, v->callIndex.idx, i,
- outValue, outValueLen, 0, &itemPages);
-
- if (pageIdx < itemPages) {
- uint8_t tmp;
- _getMethod_ItemValue(*v->_txVerPtr, &_txObj.method, v->callIndex.moduleIdx, v->callIndex.idx, i,
- outValue, outValueLen, pageIdx, &tmp);
- return parser_ok;
- }
+parser_error_t _toStringOptionMultiSignature(
+ const pd_OptionMultiSignature_t* v,
+ char* outValue,
+ uint16_t outValueLen,
+ uint8_t pageIdx,
+ uint8_t* pageCount)
+{
+ CLEAN_AND_CHECK()
- pageIdx -= itemPages;
+ *pageCount = 1;
+ if (v->some > 0) {
+ CHECK_ERROR(_toStringMultiSignature(
+ &v->contained,
+ outValue, outValueLen,
+ pageIdx, pageCount));
+ } else {
+ snprintf(outValue, outValueLen, "None");
}
-
- return parser_display_idx_out_of_range;
+ return parser_ok;
}
-parser_error_t _toStringProposal(
- const pd_Proposal_t* v,
+parser_error_t _toStringOptionTimepoint(
+ const pd_OptionTimepoint_t* v,
char* outValue,
uint16_t outValueLen,
uint8_t pageIdx,
uint8_t* pageCount)
{
- return _toStringCall(&v->call, outValue, outValueLen, pageIdx, pageCount);
+ CLEAN_AND_CHECK()
+
+ *pageCount = 1;
+ if (v->some > 0) {
+ CHECK_ERROR(_toStringTimepoint(
+ &v->contained,
+ outValue, outValueLen,
+ pageIdx, pageCount));
+ } else {
+ snprintf(outValue, outValueLen, "None");
+ }
+ return parser_ok;
}
-parser_error_t _toStringVecCall(
- const pd_VecCall_t* v,
+parser_error_t _toStringOptionAccountId(
+ const pd_OptionAccountId_t* v,
char* outValue,
uint16_t outValueLen,
uint8_t pageIdx,
uint8_t* pageCount)
{
CLEAN_AND_CHECK()
- /* count number of pages, then output specific */
- *pageCount = 0;
- uint8_t chunkPageCount;
- uint16_t currentPage, currentTotalPage = 0;
- /* We need to do it twice because there is no memory to keep intermediate results*/
- /* First count*/
- parser_context_t ctx;
- parser_init(&ctx, v->_ptr, v->_lenBuffer);
- parser_tx_t _txObj;
- pd_Call_t _call;
- ctx.tx_obj = &_txObj;
- _txObj.transactionVersion = v->callTxVersion;
- _call._txVerPtr = &v->callTxVersion;
- _call.nestCallIdx.isTail = true;
-
- ctx.tx_obj->nestCallIdx.slotIdx = 0;
- ctx.tx_obj->nestCallIdx._lenBuffer = 0;
- ctx.tx_obj->nestCallIdx._ptr = NULL;
- ctx.tx_obj->nestCallIdx._nextPtr = NULL;
- ctx.tx_obj->nestCallIdx.isTail = true;
-
- for (uint16_t i = 0; i < v->_len; i++) {
- ctx.tx_obj->nestCallIdx._ptr = NULL;
- ctx.tx_obj->nestCallIdx._nextPtr = NULL;
- ctx.tx_obj->nestCallIdx.slotIdx = 0;
- CHECK_ERROR(_readCallImpl(&ctx, &_call, (pd_MethodNested_t*)&_txObj.method));
- CHECK_ERROR(_toStringCall(&_call, outValue, outValueLen, 0, &chunkPageCount));
- (*pageCount) += chunkPageCount;
- }
- /* Then iterate until we can print the corresponding chunk*/
- parser_init(&ctx, v->_ptr, v->_lenBuffer);
- for (uint16_t i = 0; i < v->_len; i++) {
- ctx.tx_obj->nestCallIdx._ptr = NULL;
- ctx.tx_obj->nestCallIdx._nextPtr = NULL;
- ctx.tx_obj->nestCallIdx.slotIdx = 0;
- CHECK_ERROR(_readCallImpl(&ctx, &_call, (pd_MethodNested_t*)&_txObj.method));
- chunkPageCount = 1;
- currentPage = 0;
- while (currentPage < chunkPageCount) {
- CHECK_ERROR(_toStringCall(&_call, outValue, outValueLen, currentPage, &chunkPageCount));
- if (currentTotalPage == pageIdx) {
- return parser_ok;
- }
- currentPage++;
- currentTotalPage++;
- }
+ *pageCount = 1;
+ if (v->some > 0) {
+ CHECK_ERROR(_toStringAccountId(
+ &v->contained,
+ outValue, outValueLen,
+ pageIdx, pageCount));
+ } else {
+ snprintf(outValue, outValueLen, "None");
}
-
- return parser_print_not_supported;
+ return parser_ok;
}
-parser_error_t _toStringH256(
- const pd_H256_t* v,
+parser_error_t _toStringOptionClassOf(
+ const pd_OptionClassOf_t* v,
char* outValue,
uint16_t outValueLen,
uint8_t pageIdx,
uint8_t* pageCount)
{
- GEN_DEF_TOSTRING_ARRAY(32);
+ CLEAN_AND_CHECK()
+
+ *pageCount = 1;
+ if (v->some > 0) {
+ CHECK_ERROR(_toStringClassOf(
+ &v->contained,
+ outValue, outValueLen,
+ pageIdx, pageCount));
+ } else {
+ snprintf(outValue, outValueLen, "None");
+ }
+ return parser_ok;
}
-parser_error_t _toStringHash(
- const pd_Hash_t* v,
+parser_error_t _toStringOptionProxyType(
+ const pd_OptionProxyType_t* v,
char* outValue,
uint16_t outValueLen,
uint8_t pageIdx,
- uint8_t* pageCount) {
- GEN_DEF_TOSTRING_ARRAY(32)
+ uint8_t* pageCount)
+{
+ CLEAN_AND_CHECK()
+
+ *pageCount = 1;
+ if (v->some > 0) {
+ CHECK_ERROR(_toStringProxyType(
+ &v->contained,
+ outValue, outValueLen,
+ pageIdx, pageCount));
+ } else {
+ snprintf(outValue, outValueLen, "None");
+ }
+ return parser_ok;
}
-parser_error_t _toStringVecu32(
- const pd_Vecu32_t* v,
+parser_error_t _toStringOptionReferendumIndex(
+ const pd_OptionReferendumIndex_t* v,
char* outValue,
uint16_t outValueLen,
uint8_t pageIdx,
uint8_t* pageCount)
{
- GEN_DEF_TOSTRING_VECTOR(u32);
+ CLEAN_AND_CHECK()
+
+ *pageCount = 1;
+ if (v->some > 0) {
+ CHECK_ERROR(_toStringReferendumIndex(
+ &v->contained,
+ outValue, outValueLen,
+ pageIdx, pageCount));
+ } else {
+ snprintf(outValue, outValueLen, "None");
+ }
+ return parser_ok;
}
-parser_error_t _toStringVecu8(
- const pd_Vecu8_t* v,
+parser_error_t _toStringOptionu128(
+ const pd_Optionu128_t* v,
char* outValue,
uint16_t outValueLen,
uint8_t pageIdx,
uint8_t* pageCount)
{
- GEN_DEF_TOSTRING_VECTOR(u8);
+ CLEAN_AND_CHECK()
+
+ *pageCount = 1;
+ if (v->some > 0) {
+ CHECK_ERROR(_toStringu128(
+ &v->contained,
+ outValue, outValueLen,
+ pageIdx, pageCount));
+ } else {
+ snprintf(outValue, outValueLen, "None");
+ }
+ return parser_ok;
}
parser_error_t _toStringOptionu32(
diff --git a/app/src/substrate/substrate_types.h b/app/src/substrate/substrate_types.h
index d76b93d..75c0fc9 100644
--- a/app/src/substrate/substrate_types.h
+++ b/app/src/substrate/substrate_types.h
@@ -1,5 +1,5 @@
/*******************************************************************************
- * (c) 2019 - 2022 Zondax AG
+ * (c) 2019 - 2023 Zondax AG
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -23,6 +23,10 @@ extern "C" {
#include
#include
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wextern-c-compat"
+#pragma clang diagnostic pop
+
// https://github.com/paritytech/substrate/blob/effe489951d1edab9d34846b1eefdfaf9511dab9/frame/identity/src/lib.rs
#define Data_e_NONE 0
#define Data_e_RAW_VECU8 33
@@ -80,18 +84,423 @@ typedef struct {
// Common types
////////////////////////
+typedef compactInt_t pd_Compactu32_t; // u32
+typedef compactInt_t pd_Compactu64_t; // u64
+typedef compactInt_t pd_CompactAssignments_t;
+typedef compactInt_t pd_CompactBountyIndex_t;
+typedef compactInt_t pd_CompactEraIndex_t;
+typedef compactInt_t pd_CompactMemberCount_t;
+typedef compactInt_t pd_CompactMoment_t;
+typedef compactInt_t pd_CompactPropIndex_t;
+typedef compactInt_t pd_CompactProposalIndex_t;
+typedef compactInt_t pd_CompactReferendumIndex_t;
+typedef compactInt_t pd_CompactRegistrarIndex_t;
+typedef compactInt_t pd_CompactWeight_t;
+
+typedef enum {
+ eAddressIndex = 0,
+ eAddressId = 1
+} pd_Address_e;
+
+typedef struct {
+ pd_Address_e type;
+ uint64_t idx;
+ const uint8_t* idPtr;
+} pd_Address_t;
+
+typedef struct {
+ compactInt_t index;
+} pd_CompactIndex_t;
+
+typedef struct {
+ compactInt_t value;
+} pd_CompactBalance_t;
+
+typedef struct {
+ uint64_t _len;
+ const uint8_t* _ptr;
+} pd_Bytes_t;
+
+typedef struct {
+ pd_Compactu32_t nom;
+ pd_Compactu32_t denom;
+} pd_Fraction_t;
+
+typedef struct {
+ uint8_t value;
+ union {
+ pd_Bytes_t named;
+ pd_Compactu32_t index;
+ };
+} pd_BodyId_t;
+
+typedef struct {
+ uint8_t value;
+ union {
+ pd_Compactu32_t count;
+ pd_Fraction_t fraction;
+ };
+} pd_BodyPart_t;
+
+typedef struct {
+ uint8_t value;
+ pd_Bytes_t named;
+} pd_NetworkId_t;
+
+typedef struct {
+ const uint8_t* _ptr;
+} pd_u8_array_20_t;
+
+typedef struct {
+ const uint8_t* _ptr;
+} pd_u8_array_32_t;
+
+typedef struct {
+ pd_NetworkId_t networkId;
+ pd_u8_array_32_t key;
+} pd_AccountId32_t;
+
+typedef struct {
+ pd_NetworkId_t networkId;
+ pd_Compactu64_t index;
+} pd_AccountIndex64_t;
+
+typedef struct {
+ pd_NetworkId_t networkId;
+ pd_u8_array_20_t key;
+} pd_AccountKey20_t;
+
+typedef compactInt_t pd_Compactu128_t;
+
+typedef struct {
+ pd_BodyId_t id;
+ pd_BodyPart_t part;
+} pd_Plurality_t;
+
+typedef struct {
+ uint8_t value;
+ union {
+ pd_Compactu32_t parachain;
+ pd_AccountId32_t accountId32;
+ pd_AccountIndex64_t accountIndex64;
+ pd_AccountKey20_t accountKey20;
+ uint8_t palletInstance;
+ pd_Compactu128_t generalIndex;
+ pd_Bytes_t generalKey;
+ pd_Plurality_t plurality;
+ };
+} pd_JunctionV0_t;
+
+typedef struct {
+ uint8_t value;
+ union {
+ pd_Compactu32_t parachain;
+ pd_AccountId32_t accountId32;
+ pd_AccountIndex64_t accountIndex64;
+ pd_AccountKey20_t accountKey20;
+ uint8_t palletInstance;
+ pd_Compactu128_t generalIndex;
+ pd_Bytes_t generalKey;
+ pd_Plurality_t plurality;
+ };
+} pd_JunctionV1_t;
+
+typedef struct {
+ pd_JunctionV0_t junction;
+} pd_JunctionV0X1_t;
+
+typedef struct {
+ pd_JunctionV0_t junction0;
+ pd_JunctionV0_t junction1;
+} pd_JunctionV0X2_t;
+
+typedef struct {
+ pd_JunctionV0_t junction0;
+ pd_JunctionV0_t junction1;
+ pd_JunctionV0_t junction2;
+} pd_JunctionV0X3_t;
+
+typedef struct {
+ pd_JunctionV0_t junction0;
+ pd_JunctionV0_t junction1;
+ pd_JunctionV0_t junction2;
+ pd_JunctionV0_t junction3;
+} pd_JunctionV0X4_t;
+
+typedef struct {
+ pd_JunctionV0_t junction0;
+ pd_JunctionV0_t junction1;
+ pd_JunctionV0_t junction2;
+ pd_JunctionV0_t junction3;
+ pd_JunctionV0_t junction4;
+} pd_JunctionV0X5_t;
+
+typedef struct {
+ pd_JunctionV0_t junction0;
+ pd_JunctionV0_t junction1;
+ pd_JunctionV0_t junction2;
+ pd_JunctionV0_t junction3;
+ pd_JunctionV0_t junction4;
+ pd_JunctionV0_t junction5;
+} pd_JunctionV0X6_t;
+
+typedef struct {
+ pd_JunctionV0_t junction0;
+ pd_JunctionV0_t junction1;
+ pd_JunctionV0_t junction2;
+ pd_JunctionV0_t junction3;
+ pd_JunctionV0_t junction4;
+ pd_JunctionV0_t junction5;
+ pd_JunctionV0_t junction6;
+} pd_JunctionV0X7_t;
+
+typedef struct {
+ pd_JunctionV0_t junction0;
+ pd_JunctionV0_t junction1;
+ pd_JunctionV0_t junction2;
+ pd_JunctionV0_t junction3;
+ pd_JunctionV0_t junction4;
+ pd_JunctionV0_t junction5;
+ pd_JunctionV0_t junction6;
+ pd_JunctionV0_t junction7;
+} pd_JunctionV0X8_t;
+
+typedef struct {
+ pd_JunctionV1_t junction;
+} pd_JunctionV1X1_t;
+
+typedef struct {
+ pd_JunctionV1_t junction0;
+ pd_JunctionV1_t junction1;
+} pd_JunctionV1X2_t;
+
+typedef struct {
+ pd_JunctionV1_t junction0;
+ pd_JunctionV1_t junction1;
+ pd_JunctionV1_t junction2;
+} pd_JunctionV1X3_t;
+
+typedef struct {
+ pd_JunctionV1_t junction0;
+ pd_JunctionV1_t junction1;
+ pd_JunctionV1_t junction2;
+ pd_JunctionV1_t junction3;
+} pd_JunctionV1X4_t;
+
+typedef struct {
+ pd_JunctionV1_t junction0;
+ pd_JunctionV1_t junction1;
+ pd_JunctionV1_t junction2;
+ pd_JunctionV1_t junction3;
+ pd_JunctionV1_t junction4;
+} pd_JunctionV1X5_t;
+
+typedef struct {
+ pd_JunctionV1_t junction0;
+ pd_JunctionV1_t junction1;
+ pd_JunctionV1_t junction2;
+ pd_JunctionV1_t junction3;
+ pd_JunctionV1_t junction4;
+ pd_JunctionV1_t junction5;
+} pd_JunctionV1X6_t;
+
+typedef struct {
+ pd_JunctionV1_t junction0;
+ pd_JunctionV1_t junction1;
+ pd_JunctionV1_t junction2;
+ pd_JunctionV1_t junction3;
+ pd_JunctionV1_t junction4;
+ pd_JunctionV1_t junction5;
+ pd_JunctionV1_t junction6;
+} pd_JunctionV1X7_t;
+
+typedef struct {
+ pd_JunctionV1_t junction0;
+ pd_JunctionV1_t junction1;
+ pd_JunctionV1_t junction2;
+ pd_JunctionV1_t junction3;
+ pd_JunctionV1_t junction4;
+ pd_JunctionV1_t junction5;
+ pd_JunctionV1_t junction6;
+ pd_JunctionV1_t junction7;
+} pd_JunctionV1X8_t;
+
+typedef struct {
+ uint8_t value;
+ union {
+ pd_JunctionV0X1_t x1;
+ pd_JunctionV0X2_t x2;
+ pd_JunctionV0X3_t x3;
+ pd_JunctionV0X4_t x4;
+ pd_JunctionV0X5_t x5;
+ pd_JunctionV0X6_t x6;
+ pd_JunctionV0X7_t x7;
+ pd_JunctionV0X8_t x8;
+ };
+} pd_JunctionsV0_t;
+
+typedef struct {
+ uint8_t value;
+ union {
+ pd_JunctionV1X1_t x1;
+ pd_JunctionV1X2_t x2;
+ pd_JunctionV1X3_t x3;
+ pd_JunctionV1X4_t x4;
+ pd_JunctionV1X5_t x5;
+ pd_JunctionV1X6_t x6;
+ pd_JunctionV1X7_t x7;
+ pd_JunctionV1X8_t x8;
+ };
+} pd_JunctionsV1_t;
+
+typedef struct {
+ uint8_t value;
+ union {
+ const uint8_t* _ptr;
+ pd_Compactu128_t index;
+ pd_Bytes_t blob;
+ };
+} pd_AssetInstance_t;
+
+typedef struct {
+ pd_JunctionsV0_t junctions;
+} pd_MultiLocationV0_t;
+
+typedef struct {
+ uint8_t parents;
+ pd_JunctionsV1_t interior;
+} pd_MultiLocationV1_t;
+
+typedef struct {
+ pd_Bytes_t id;
+ pd_Compactu128_t amount;
+} pd_AbstractFungible_t;
+
+typedef struct {
+ pd_Bytes_t _class;
+ pd_AssetInstance_t instance;
+} pd_AbstractNonFungible_t;
+
typedef struct {
const uint8_t* _ptr;
} pd_Balance_t;
+typedef struct {
+ pd_MultiLocationV0_t id;
+ pd_CompactBalance_t amount;
+} pd_ConcreteFungible_t;
+
+typedef struct {
+ pd_MultiLocationV0_t _class;
+ pd_AssetInstance_t instance;
+} pd_ConcreteNonFungible_t;
+
+typedef struct {
+ uint8_t value;
+ const uint8_t* _ptr;
+} pd_Data_t;
+
+typedef struct {
+ uint8_t value;
+ union {
+ pd_Compactu128_t fungible;
+ pd_AssetInstance_t nonFungible;
+ };
+} pd_Fungibility_t;
+
+typedef struct {
+ uint8_t value;
+ union {
+ pd_MultiLocationV1_t concrete;
+ pd_Bytes_t abstract;
+ };
+} pd_MultiAssetId_t;
+
+typedef struct {
+ const uint8_t* _ptr;
+} pd_AccountId_t;
+
typedef struct {
pd_Balance_t value;
} pd_BalanceOf_t;
typedef struct {
- uint64_t _len;
+ compactInt_t value;
+} pd_CompactAccountIndex_t;
+
+typedef struct {
const uint8_t* _ptr;
-} pd_Bytes_t;
+} pd_EcdsaPublic_t;
+
+typedef struct {
+ const uint8_t* _ptr;
+} pd_EcdsaSignature_t;
+
+typedef struct {
+ const uint8_t* _ptr;
+} pd_Ed25519Public_t;
+
+typedef struct {
+ const uint8_t* _ptr;
+} pd_Ed25519Signature_t;
+
+typedef struct {
+ const uint8_t* _ptr;
+} pd_H256_t;
+
+typedef struct {
+ uint8_t value;
+ union {
+ pd_Bytes_t abstract;
+ pd_MultiLocationV0_t concrete;
+ pd_AbstractFungible_t abstractFungible;
+ pd_AbstractNonFungible_t abstractNonFungible;
+ pd_ConcreteFungible_t concreteFungible;
+ pd_ConcreteNonFungible_t concreteNonFungible;
+ };
+} pd_MultiAssetV0_t;
+
+typedef struct {
+ pd_MultiAssetId_t assetId;
+ pd_Fungibility_t fungibility;
+} pd_MultiAssetV1_t;
+
+typedef struct {
+ const uint8_t* _ptr;
+} pd_Sr25519Public_t;
+
+typedef struct {
+ const uint8_t* _ptr;
+} pd_Sr25519Signature_t;
+
+typedef struct {
+ pd_Data_t data1;
+ pd_Data_t data2;
+} pd_TupleDataData_t;
+
+typedef struct {
+ uint8_t value;
+} pd_Vote_t;
+
+typedef struct {
+ uint8_t value;
+ union {
+ pd_AccountId_t id;
+ pd_CompactAccountIndex_t index;
+ pd_Bytes_t raw;
+ const uint8_t* _ptr;
+ };
+} pd_AccountIdLookupOfT_t;
+
+typedef struct {
+ pd_BalanceOf_t aye;
+ pd_BalanceOf_t nay;
+} pd_AccountVoteSplit_t;
+
+typedef struct {
+ pd_Vote_t vote;
+ pd_BalanceOf_t balance;
+} pd_AccountVoteStandard_t;
typedef struct {
pd_CallIndex_t callIndex;
@@ -99,10 +508,200 @@ typedef struct {
pd_NestCallIdx_t nestCallIdx;
} pd_Call_t;
+typedef struct {
+ uint16_t value;
+} pd_ClassOf_t;
+
+typedef struct {
+ compactInt_t value;
+} pd_CompactPerBill_t;
+
+typedef struct {
+ uint8_t value;
+ union {
+ pd_Ed25519Signature_t ed25519;
+ pd_Sr25519Signature_t sr25519;
+ pd_EcdsaSignature_t ecdsa;
+ };
+} pd_MultiSignature_t;
+
+typedef struct {
+ uint8_t value;
+ union {
+ pd_Ed25519Public_t ed25519;
+ pd_Sr25519Public_t sr25519;
+ pd_EcdsaPublic_t ecdsa;
+ };
+} pd_MultiSigner_t;
+
+typedef struct {
+ uint8_t some;
+ pd_u8_array_20_t contained;
+} pd_Optionu8_array_20_t;
+
+typedef struct {
+ uint32_t value;
+} pd_Perbill_t;
+
+typedef struct {
+ uint8_t value;
+} pd_Percent_t;
+
+typedef struct {
+ uint8_t value;
+} pd_ProxyType_t;
+
+typedef struct {
+ uint32_t value;
+} pd_ReferendumIndex_t;
+
+typedef struct {
+ pd_BlockNumber_t height;
+ uint32_t index;
+} pd_Timepoint_t;
+
+typedef struct {
+ pd_AccountId_t id;
+ pd_Data_t data;
+} pd_TupleAccountIdData_t;
+
+typedef struct {
+ pd_H256_t h256;
+ uint32_t u32;
+} pd_TupleH256u32_t;
+
+typedef struct {
+ uint64_t _len;
+ const uint8_t* _ptr;
+ uint64_t _lenBuffer;
+} pd_VecMultiAssetV0_t;
+
+typedef struct {
+ uint64_t _len;
+ const uint8_t* _ptr;
+ uint64_t _lenBuffer;
+} pd_VecMultiAssetV1_t;
+
+typedef struct {
+ uint64_t _len;
+ const uint8_t* _ptr;
+ uint64_t _lenBuffer;
+} pd_VecTupleDataData_t;
+
+typedef struct {
+ const uint8_t* _ptr;
+} pd_u128_t;
+
+typedef struct {
+ uint8_t value;
+ union {
+ pd_AccountVoteStandard_t voteStandard;
+ pd_AccountVoteSplit_t voteSplit;
+ };
+} pd_AccountVote_t;
+
+typedef struct {
+ uint8_t value;
+ pd_Balance_t freeBalance;
+} pd_BondExtraBalanceOfT_t;
+
+typedef struct {
+ uint8_t value;
+ union {
+ pd_H256_t legacy;
+ pd_Bytes_t _inline;
+ pd_TupleH256u32_t lookup;
+ };
+} pd_BoundedCallOfT_t;
+
+typedef struct {
+ uint8_t value;
+ union {
+ pd_VecMultiAssetV0_t vecMultiassetV0;
+ pd_VecMultiAssetV1_t vecMultiassetV1;
+ };
+} pd_BoxVersionedMultiAssets_t;
+
+typedef struct {
+ uint8_t value;
+ union {
+ pd_MultiLocationV0_t multilocationV0;
+ pd_MultiLocationV1_t multilocationV1;
+ };
+} pd_BoxVersionedMultiLocation_t;
+
+typedef struct {
+ uint8_t value;
+ pd_AccountId_t set;
+} pd_ConfigOpAccountId_t;
+
+typedef struct {
+ uint8_t value;
+ pd_Balance_t set;
+} pd_ConfigOpBalanceOfT_t;
+
+typedef struct {
+ uint8_t value;
+ pd_Perbill_t set;
+} pd_ConfigOpPerbill_t;
+
+typedef struct {
+ uint8_t value;
+ pd_Percent_t set;
+} pd_ConfigOpPercent_t;
+
+typedef struct {
+ pd_VecTupleDataData_t additional;
+ pd_Data_t display;
+ pd_Data_t legal;
+ pd_Data_t web;
+ pd_Data_t riot;
+ pd_Data_t email;
+ pd_Optionu8_array_20_t pgp_fingerprint;
+ pd_Data_t image;
+ pd_Data_t twitter;
+} pd_IdentityInfo_t;
+
+typedef struct {
+ uint8_t value;
+ pd_Balance_t feePaid;
+} pd_JudgementBalanceOfT_t;
+
+typedef struct {
+ uint8_t some;
+ pd_MultiSignature_t contained;
+} pd_OptionMultiSignature_t;
+
+typedef struct {
+ uint8_t some;
+ pd_MultiSigner_t verifier;
+} pd_OptionMultiSigner_t;
+
+typedef struct {
+ uint8_t some;
+ pd_Timepoint_t contained;
+} pd_OptionTimepoint_t;
+
typedef struct {
pd_Call_t call;
} pd_Proposal_t;
+typedef struct {
+ uint8_t value;
+ pd_AccountId_t accountId;
+} pd_RewardDestination_t;
+
+typedef struct {
+ pd_CompactPerBill_t commission;
+ pd_bool_t blocked;
+} pd_ValidatorPrefs_t;
+
+typedef struct {
+ uint64_t _len;
+ const uint8_t* _ptr;
+ uint64_t _lenBuffer;
+} pd_VecAccountIdLookupOfT_t;
+
typedef struct {
uint64_t _len;
const uint8_t* _ptr;
@@ -110,81 +709,148 @@ typedef struct {
uint32_t callTxVersion;
} pd_VecCall_t;
-typedef compactInt_t pd_Compactu128_t;
+typedef struct {
+ uint64_t _len;
+ const uint8_t* _ptr;
+ uint64_t _lenBuffer;
+} pd_VecTupleAccountIdData_t;
+
+typedef struct {
+ pd_BalanceOf_t locked;
+ pd_BalanceOf_t per_block;
+ pd_BlockNumber_t starting_block;
+} pd_VestingInfo_t;
+
+typedef struct {
+ uint8_t value;
+ pd_Compactu64_t limited;
+} pd_WeightLimit_t;
+
+typedef struct {
+ pd_Compactu64_t refTime;
+ pd_Compactu64_t proofSize;
+} pd_Weight_t;
+
+typedef struct {
+ uint32_t value;
+} pd_AccountIndex_t;
+
+typedef struct {
+ uint8_t value;
+ uint32_t set;
+} pd_ConfigOpu32_t;
+
+typedef struct {
+ uint8_t value;
+} pd_Conviction_t;
+
+typedef struct {
+ uint32_t value;
+} pd_EraIndex_t;
typedef struct {
const uint8_t* _ptr;
-} pd_H256_t;
+} pd_EthereumAddress_t;
typedef struct {
const uint8_t* _ptr;
} pd_Hash_t;
+typedef struct {
+ const uint8_t* _ptr;
+} pd_Keys_t;
+
+typedef struct {
+ uint32_t value;
+} pd_MemberCount_t;
+
+typedef struct {
+ uint8_t some;
+ pd_AccountId_t contained;
+} pd_OptionAccountId_t;
+
+typedef struct {
+ uint8_t some;
+ pd_ClassOf_t contained;
+} pd_OptionClassOf_t;
+
+typedef struct {
+ uint8_t some;
+ pd_ProxyType_t contained;
+} pd_OptionProxyType_t;
+
+typedef struct {
+ uint8_t some;
+ pd_ReferendumIndex_t contained;
+} pd_OptionReferendumIndex_t;
+
+typedef struct {
+ uint8_t some;
+ pd_u128_t contained;
+} pd_Optionu128_t;
+
typedef struct {
uint8_t some;
pd_u32_t contained;
} pd_Optionu32_t;
typedef struct {
- uint64_t _len;
- const uint8_t* _ptr;
- uint64_t _lenBuffer;
-} pd_Vecu32_t;
+ uint64_t value;
+} pd_OverweightIndex_t;
typedef struct {
- uint64_t _len;
- const uint8_t* _ptr;
- uint64_t _lenBuffer;
-} pd_Vecu8_t;
+ uint32_t value;
+} pd_ParaId_t;
-////////////////////////
-// /Common types
-////////////////////////
+typedef struct {
+ uint32_t value;
+} pd_PollIndexOf_t;
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wextern-c-compat"
-#pragma clang diagnostic pop
+typedef struct {
+ uint32_t value;
+} pd_PoolId_t;
-////////////////////////
-// Types that require out of order declaration
-////////////////////////
+typedef struct {
+ uint8_t value;
+} pd_PoolState_t;
-typedef enum {
- eAddressIndex = 0,
- eAddressId = 1
-} pd_Address_e;
+typedef struct {
+ const uint8_t* _ptr;
+} pd_PreimageHash_t;
typedef struct {
- pd_Address_e type;
- uint64_t idx;
- const uint8_t* idPtr;
-} pd_Address_t;
+ uint16_t value;
+} pd_Rank_t;
typedef struct {
- compactInt_t index;
-} pd_CompactIndex_t;
+ uint32_t value;
+} pd_RegistrarIndex_t;
typedef struct {
- compactInt_t value;
-} pd_CompactBalance_t;
+ uint32_t value;
+} pd_SessionIndex_t;
-////////////////////////
-////////////////////////
-////////////////////////
-////////////////////////
+typedef struct {
+ uint16_t value;
+} pd_TrackIdOf_t;
-typedef compactInt_t pd_Compactu32_t; // u32
-typedef compactInt_t pd_Compactu64_t; // u64
-typedef compactInt_t pd_CompactAssignments_t;
-typedef compactInt_t pd_CompactBountyIndex_t;
-typedef compactInt_t pd_CompactEraIndex_t;
-typedef compactInt_t pd_CompactMemberCount_t;
-typedef compactInt_t pd_CompactMoment_t;
-typedef compactInt_t pd_CompactPropIndex_t;
-typedef compactInt_t pd_CompactProposalIndex_t;
-typedef compactInt_t pd_CompactReferendumIndex_t;
-typedef compactInt_t pd_CompactRegistrarIndex_t;
-typedef compactInt_t pd_CompactWeight_t;
+typedef struct {
+ uint64_t _len;
+ const uint8_t* _ptr;
+ uint64_t _lenBuffer;
+} pd_VecAccountId_t;
+
+typedef struct {
+ uint64_t _len;
+ const uint8_t* _ptr;
+ uint64_t _lenBuffer;
+} pd_Vecu32_t;
+
+typedef struct {
+ uint64_t _len;
+ const uint8_t* _ptr;
+ uint64_t _lenBuffer;
+} pd_Vecu8_t;
#ifdef __cplusplus
}
diff --git a/app/src/substrate/substrate_types_V1.c b/app/src/substrate/substrate_types_V1.c
deleted file mode 100644
index d063ef6..0000000
--- a/app/src/substrate/substrate_types_V1.c
+++ /dev/null
@@ -1,1372 +0,0 @@
-/*******************************************************************************
- * (c) 2019 - 2022 Zondax AG
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- ********************************************************************************/
-#include "bignum.h"
-#include "coin.h"
-#include "parser_impl.h"
-#include "substrate_dispatch_V1.h"
-#include "substrate_strings.h"
-
-#include
-#include
-#include
-#include
-
-parser_error_t _readAccountId_V1(parser_context_t* c, pd_AccountId_V1_t* v) {
- GEN_DEF_READARRAY(32)
-}
-
-parser_error_t _readAccountIndex_V1(parser_context_t* c, pd_AccountIndex_V1_t* v)
-{
- CHECK_INPUT()
- CHECK_ERROR(_readUInt32(c, &v->value))
- return parser_ok;
-}
-
-parser_error_t _readAccountVoteSplit_V1(parser_context_t* c, pd_AccountVoteSplit_V1_t* v)
-{
- CHECK_ERROR(_readBalanceOf(c, &v->aye));
- CHECK_ERROR(_readBalanceOf(c, &v->nay));
- return parser_ok;
-}
-
-parser_error_t _readAccountVoteStandard_V1(parser_context_t* c, pd_AccountVoteStandard_V1_t* v)
-{
- CHECK_ERROR(_readVote_V1(c, &v->vote));
- CHECK_ERROR(_readBalanceOf(c, &v->balance));
- return parser_ok;
-}
-
-parser_error_t _readAccountVote_V1(parser_context_t* c, pd_AccountVote_V1_t* v)
-{
- CHECK_INPUT()
- CHECK_ERROR(_readUInt8(c, &v->value))
-
- switch (v->value) {
- case 0:
- CHECK_ERROR(_readAccountVoteStandard_V1(c, &v->voteStandard))
- break;
- case 1:
- CHECK_ERROR(_readAccountVoteSplit_V1(c, &v->voteSplit))
- break;
- default:
- break;
- }
-
- return parser_ok;
-}
-
-parser_error_t _readBondExtraBalanceOfT_V1(parser_context_t* c, pd_BondExtraBalanceOfT_V1_t* v)
-{
- CHECK_INPUT()
- CHECK_ERROR(_readUInt8(c, &v->value))
- switch (v->value) {
- case 0:
- CHECK_ERROR(_readBalance(c, &v->freeBalance))
- break;
- case 1: // Rewards
- break;
- default:
- return parser_unexpected_value;
- }
- return parser_ok;
-}
-
-parser_error_t _readCompactAccountIndex_V1(parser_context_t* c, pd_CompactAccountIndex_V1_t* v)
-{
- return _readCompactInt(c, &v->value);
-}
-
-parser_error_t _readCompactPerBill_V1(parser_context_t* c, pd_CompactPerBill_V1_t* v)
-{
- return _readCompactInt(c, &v->value);
-}
-
-parser_error_t _readConfigOpAccountId_V1(parser_context_t* c, pd_ConfigOpAccountId_V1_t* v)
-{
- CHECK_INPUT()
- CHECK_ERROR(_readUInt8(c, &v->value))
- switch (v->value) {
- case 0: // Noop
- case 2: // Remove
- break;
- case 1:
- CHECK_ERROR(_readAccountId_V1(c, &v->set))
- break;
- default:
- return parser_unexpected_value;
- }
- return parser_ok;
-}
-
-parser_error_t _readConfigOpBalanceOfT_V1(parser_context_t* c, pd_ConfigOpBalanceOfT_V1_t* v)
-{
- CHECK_INPUT()
- CHECK_ERROR(_readUInt8(c, &v->value))
- switch (v->value) {
- case 0: // Noop
- case 2: // Remove
- break;
- case 1:
- CHECK_ERROR(_readBalance(c, &v->set))
- break;
- default:
- return parser_unexpected_value;
- }
- return parser_ok;
-}
-
-parser_error_t _readConfigOpu32_V1(parser_context_t* c, pd_ConfigOpu32_V1_t* v)
-{
- CHECK_INPUT()
- CHECK_ERROR(_readUInt8(c, &v->value))
- switch (v->value) {
- case 0: // Noop
- case 2: // Remove
- break;
- case 1:
- CHECK_ERROR(_readUInt32(c, &v->set))
- break;
- default:
- return parser_unexpected_value;
- }
- return parser_ok;
-}
-
-parser_error_t _readConviction_V1(parser_context_t* c, pd_Conviction_V1_t* v)
-{
- CHECK_INPUT()
- CHECK_ERROR(_readUInt8(c, &v->value))
- if (v->value > 5) {
- return parser_value_out_of_range;
- }
- return parser_ok;
-}
-
-parser_error_t _readEcdsaPublic_V1(parser_context_t* c, pd_EcdsaPublic_V1_t* v) {
- GEN_DEF_READARRAY(33)
-}
-
-parser_error_t _readEcdsaSignature_V1(parser_context_t* c, pd_EcdsaSignature_V1_t* v) {
- GEN_DEF_READARRAY(65)
-}
-
-parser_error_t _readEd25519Public_V1(parser_context_t* c, pd_Ed25519Public_V1_t* v) {
- GEN_DEF_READARRAY(32)
-}
-
-parser_error_t _readEd25519Signature_V1(parser_context_t* c, pd_Ed25519Signature_V1_t* v) {
- GEN_DEF_READARRAY(64)
-}
-
-parser_error_t _readEraIndex_V1(parser_context_t* c, pd_EraIndex_V1_t* v)
-{
- CHECK_INPUT()
- CHECK_ERROR(_readUInt32(c, &v->value))
- return parser_ok;
-}
-
-parser_error_t _readEthereumAddress_V1(parser_context_t* c, pd_EthereumAddress_V1_t* v) {
- GEN_DEF_READARRAY(20)
-}
-
-parser_error_t _readKeys_V1(parser_context_t* c, pd_Keys_V1_t* v) {
- GEN_DEF_READARRAY(6 * 32)
-}
-
-parser_error_t _readLookupasStaticLookupSource_V1(parser_context_t* c, pd_LookupasStaticLookupSource_V1_t* v)
-{
- CHECK_INPUT()
- CHECK_ERROR(_readUInt8(c, &v->value))
- switch (v->value) {
- case 0: // Id
- CHECK_ERROR(_readAccountId_V1(c, &v->id))
- break;
- case 1: // Index
- CHECK_ERROR(_readCompactAccountIndex_V1(c, &v->index))
- break;
- case 2: // Raw
- CHECK_ERROR(_readBytes(c, &v->raw))
- break;
- case 3: // Address32
- GEN_DEF_READARRAY(32)
- break;
- case 4: // Address20
- GEN_DEF_READARRAY(20)
- break;
- default:
- return parser_unexpected_value;
- }
-
- return parser_ok;
-}
-
-parser_error_t _readMemberCount_V1(parser_context_t* c, pd_MemberCount_V1_t* v)
-{
- CHECK_INPUT()
- CHECK_ERROR(_readUInt32(c, &v->value))
- return parser_ok;
-}
-
-parser_error_t _readMultiSignature_V1(parser_context_t* c, pd_MultiSignature_V1_t* v)
-{
- CHECK_INPUT()
- CHECK_ERROR(_readUInt8(c, &v->value))
- switch (v->value) {
- case 0: // Ed25519
- CHECK_ERROR(_readEd25519Signature_V1(c, &v->ed25519))
- break;
- case 1: // Sr25519
- CHECK_ERROR(_readSr25519Signature_V1(c, &v->sr25519))
- break;
- case 2: // Ecdsa
- CHECK_ERROR(_readEcdsaSignature_V1(c, &v->ecdsa))
- break;
- default:
- return parser_unexpected_value;
- }
-
- return parser_ok;
-}
-
-parser_error_t _readMultiSigner_V1(parser_context_t* c, pd_MultiSigner_V1_t* v)
-{
- CHECK_INPUT()
- CHECK_ERROR(_readUInt8(c, &v->value))
- switch (v->value) {
- case 0: // Ed25519
- CHECK_ERROR(_readEd25519Public_V1(c, &v->ed25519))
- break;
- case 1: // Sr25519
- CHECK_ERROR(_readSr25519Public_V1(c, &v->sr25519))
- break;
- case 2: // Ecdsa
- CHECK_ERROR(_readEcdsaPublic_V1(c, &v->ecdsa))
- break;
- default:
- return parser_unexpected_value;
- }
-
- return parser_ok;
-}
-
-parser_error_t _readOpaqueCall_V1(parser_context_t* c, pd_OpaqueCall_V1_t* v)
-{
- // Encoded as Byte[], array size comes first
- uint8_t size;
- CHECK_ERROR(_readUInt8(c, &size))
- return _readCall(c, &v->call);
-}
-
-parser_error_t _readParaId_V1(parser_context_t* c, pd_ParaId_V1_t* v)
-{
- CHECK_INPUT()
- CHECK_ERROR(_readUInt32(c, &v->value))
- return parser_ok;
-}
-
-parser_error_t _readPerbill_V1(parser_context_t* c, pd_Perbill_V1_t* v)
-{
- CHECK_INPUT()
- CHECK_ERROR(_readUInt32(c, &v->value))
- return parser_ok;
-}
-
-parser_error_t _readPoolId_V1(parser_context_t* c, pd_PoolId_V1_t* v)
-{
- CHECK_INPUT()
- CHECK_ERROR(_readUInt32(c, &v->value))
- return parser_ok;
-}
-
-parser_error_t _readPoolState_V1(parser_context_t* c, pd_PoolState_V1_t* v)
-{
- CHECK_INPUT()
- CHECK_ERROR(_readUInt8(c, &v->value))
- return parser_ok;
-}
-
-parser_error_t _readProxyType_V1(parser_context_t* c, pd_ProxyType_V1_t* v)
-{
- CHECK_ERROR(_readUInt8(c, &v->value))
- if (v->value > 7) {
- return parser_unexpected_value;
- }
- return parser_ok;
-}
-
-parser_error_t _readReferendumIndex_V1(parser_context_t* c, pd_ReferendumIndex_V1_t* v)
-{
- CHECK_INPUT()
- CHECK_ERROR(_readUInt32(c, &v->value))
- return parser_ok;
-}
-
-parser_error_t _readRegistrarIndex_V1(parser_context_t* c, pd_RegistrarIndex_V1_t* v)
-{
- CHECK_INPUT()
- CHECK_ERROR(_readUInt32(c, &v->value))
- return parser_ok;
-}
-
-parser_error_t _readRewardDestination_V1(parser_context_t* c, pd_RewardDestination_V1_t* v)
-{
- CHECK_INPUT()
- CHECK_ERROR(_readUInt8(c, &v->value))
-
- if (v->value == 3) {
- CHECK_ERROR(_readAccountId_V1(c, &v->accountId))
- } else if (v->value > 4) {
- return parser_value_out_of_range;
- }
- return parser_ok;
-}
-
-parser_error_t _readSessionIndex_V1(parser_context_t* c, pd_SessionIndex_V1_t* v)
-{
- return _readUInt32(c, &v->value);
-}
-
-parser_error_t _readSr25519Public_V1(parser_context_t* c, pd_Sr25519Public_V1_t* v) {
- GEN_DEF_READARRAY(32)
-}
-
-parser_error_t _readSr25519Signature_V1(parser_context_t* c, pd_Sr25519Signature_V1_t* v) {
- GEN_DEF_READARRAY(64)
-}
-
-parser_error_t _readTimepoint_V1(parser_context_t* c, pd_Timepoint_V1_t* v)
-{
- CHECK_ERROR(_readBlockNumber(c, &v->height))
- CHECK_ERROR(_readu32(c, &v->index))
- return parser_ok;
-}
-
-parser_error_t _readValidatorPrefs_V1(parser_context_t* c, pd_ValidatorPrefs_V1_t* v)
-{
- CHECK_INPUT()
- CHECK_ERROR(_readCompactPerBill_V1(c, &v->commission));
- CHECK_ERROR(_readbool(c, &v->blocked))
- return parser_ok;
-}
-
-parser_error_t _readVestingInfo_V1(parser_context_t* c, pd_VestingInfo_V1_t* v)
-{
- CHECK_ERROR(_readBalanceOf(c, &v->locked))
- CHECK_ERROR(_readBalanceOf(c, &v->per_block))
- CHECK_ERROR(_readBlockNumber(c, &v->starting_block))
- return parser_ok;
-}
-
-parser_error_t _readVote_V1(parser_context_t* c, pd_Vote_V1_t* v)
-{
- CHECK_INPUT()
- CHECK_ERROR(_readUInt8(c, &v->value))
-
- if (v->value & 0x7F) {
- return parser_value_out_of_range;
- }
- v->value = (v->value & 0x80u) >> 7u;
-
- return parser_ok;
-}
-
-parser_error_t _readWeight_V1(parser_context_t* c, pd_Weight_V1_t* v)
-{
- CHECK_INPUT()
- CHECK_ERROR(_readUInt64(c, &v->value))
- return parser_ok;
-}
-
-parser_error_t _readVecAccountId_V1(parser_context_t* c, pd_VecAccountId_V1_t* v) {
- GEN_DEF_READVECTOR(AccountId_V1)
-}
-
-parser_error_t _readVecLookupasStaticLookupSource_V1(parser_context_t* c, pd_VecLookupasStaticLookupSource_V1_t* v) {
- GEN_DEF_READVECTOR(LookupasStaticLookupSource_V1)
-}
-
-parser_error_t _readOptionAccountId_V1(parser_context_t* c, pd_OptionAccountId_V1_t* v)
-{
- CHECK_ERROR(_readUInt8(c, &v->some))
- if (v->some > 0) {
- CHECK_ERROR(_readAccountId_V1(c, &v->contained))
- }
- return parser_ok;
-}
-
-parser_error_t _readOptionMultiSignature_V1(parser_context_t* c, pd_OptionMultiSignature_V1_t* v)
-{
- CHECK_ERROR(_readUInt8(c, &v->some))
- if (v->some > 0) {
- CHECK_ERROR(_readMultiSignature_V1(c, &v->contained))
- }
- return parser_ok;
-}
-
-parser_error_t _readOptionMultiSigner_V1(parser_context_t* c, pd_OptionMultiSigner_V1_t* v)
-{
- CHECK_ERROR(_readUInt8(c, &v->some))
- if (v->some > 0) {
- CHECK_ERROR(_readMultiSigner_V1(c, &v->contained))
- }
- return parser_ok;
-}
-
-parser_error_t _readOptionProxyType_V1(parser_context_t* c, pd_OptionProxyType_V1_t* v)
-{
- CHECK_ERROR(_readUInt8(c, &v->some))
- if (v->some > 0) {
- CHECK_ERROR(_readProxyType_V1(c, &v->contained))
- }
- return parser_ok;
-}
-
-parser_error_t _readOptionTimepoint_V1(parser_context_t* c, pd_OptionTimepoint_V1_t* v)
-{
- CHECK_ERROR(_readUInt8(c, &v->some))
- if (v->some > 0) {
- CHECK_ERROR(_readTimepoint_V1(c, &v->contained))
- }
- return parser_ok;
-}
-
-///////////////////////////////////
-///////////////////////////////////
-///////////////////////////////////
-
-parser_error_t _toStringAccountId_V1(
- const pd_AccountId_V1_t* v,
- char* outValue,
- uint16_t outValueLen,
- uint8_t pageIdx,
- uint8_t* pageCount)
-{
- return _toStringPubkeyAsAddress(v->_ptr, outValue, outValueLen, pageIdx, pageCount);
-}
-
-parser_error_t _toStringAccountIndex_V1(
- const pd_AccountIndex_V1_t* v,
- char* outValue,
- uint16_t outValueLen,
- uint8_t pageIdx,
- uint8_t* pageCount)
-{
- return _toStringu32(&v->value, outValue, outValueLen, pageIdx, pageCount);
-}
-
-parser_error_t _toStringAccountVoteSplit_V1(
- const pd_AccountVoteSplit_V1_t* v,
- char* outValue,
- uint16_t outValueLen,
- uint8_t pageIdx,
- uint8_t* pageCount)
-{
- CLEAN_AND_CHECK()
- // First measure number of pages
- uint8_t pages[3];
-
- pages[0] = 1;
- CHECK_ERROR(_toStringBalanceOf(&v->aye, outValue, outValueLen, 0, &pages[1]))
- CHECK_ERROR(_toStringBalanceOf(&v->nay, outValue, outValueLen, 0, &pages[2]));
-
- *pageCount = 0;
- for (uint8_t i = 0; i < (uint8_t)sizeof(pages); i++) {
- *pageCount += pages[i];
- }
-
- if (pageIdx < pages[0]) {
- snprintf(outValue, outValueLen, "Split");
- return parser_ok;
- }
- pageIdx -= pages[0];
-
- /////////
- /////////
-
- if (pageIdx < pages[1]) {
- CHECK_ERROR(_toStringBalanceOf(&v->aye, outValue, outValueLen, pageIdx, &pages[1]));
- return parser_ok;
- }
- pageIdx -= pages[1];
-
- /////////
- /////////
-
- if (pageIdx < pages[2]) {
- CHECK_ERROR(_toStringBalanceOf(&v->nay, outValue, outValueLen, pageIdx, &pages[2]));
- return parser_ok;
- }
-
- /////////
- /////////
-
- return parser_display_idx_out_of_range;
-}
-
-parser_error_t _toStringAccountVoteStandard_V1(
- const pd_AccountVoteStandard_V1_t* v,
- char* outValue,
- uint16_t outValueLen,
- uint8_t pageIdx,
- uint8_t* pageCount)
-{
- CLEAN_AND_CHECK()
- // First measure number of pages
- uint8_t pages[3];
-
- pages[0] = 1;
- CHECK_ERROR(_toStringVote_V1(&v->vote, outValue, outValueLen, 0, &pages[1]))
- CHECK_ERROR(_toStringBalanceOf(&v->balance, outValue, outValueLen, 0, &pages[2]));
-
- *pageCount = 0;
- for (uint8_t i = 0; i < (uint8_t)sizeof(pages); i++) {
- *pageCount += pages[i];
- }
-
- if (pageIdx > *pageCount) {
- return parser_display_idx_out_of_range;
- }
-
- if (pageIdx < pages[0]) {
- snprintf(outValue, outValueLen, "Standard");
- return parser_ok;
- }
- pageIdx -= pages[0];
-
- if (pageIdx < pages[1]) {
- CHECK_ERROR(_toStringVote_V1(&v->vote, outValue, outValueLen, pageIdx, &pages[1]));
- return parser_ok;
- }
- pageIdx -= pages[1];
-
- if (pageIdx < pages[2]) {
- CHECK_ERROR(_toStringBalanceOf(&v->balance, outValue, outValueLen, pageIdx, &pages[2]));
- return parser_ok;
- }
-
- return parser_display_idx_out_of_range;
-}
-
-parser_error_t _toStringAccountVote_V1(
- const pd_AccountVote_V1_t* v,
- char* outValue,
- uint16_t outValueLen,
- uint8_t pageIdx,
- uint8_t* pageCount)
-{
- CLEAN_AND_CHECK()
- switch (v->value) {
- case 0:
- CHECK_ERROR(_toStringAccountVoteStandard_V1(&v->voteStandard, outValue, outValueLen, pageIdx, pageCount));
- break;
- case 1:
- CHECK_ERROR(_toStringAccountVoteSplit_V1(&v->voteSplit, outValue, outValueLen, pageIdx, pageCount));
- break;
- default:
- return parser_unexpected_value;
- }
-
- return parser_ok;
-}
-
-parser_error_t _toStringBondExtraBalanceOfT_V1(
- const pd_BondExtraBalanceOfT_V1_t* v,
- char* outValue,
- uint16_t outValueLen,
- uint8_t pageIdx,
- uint8_t* pageCount)
-{
- CLEAN_AND_CHECK()
- *pageCount = 1;
- switch (v->value) {
- case 0:
- CHECK_ERROR(_toStringBalance(&v->freeBalance, outValue, outValueLen, pageIdx, pageCount))
- break;
- case 1:
- snprintf(outValue, outValueLen, "Rewards");
- break;
- default:
- return parser_unexpected_value;
- }
- return parser_ok;
-}
-
-parser_error_t _toStringCompactAccountIndex_V1(
- const pd_CompactAccountIndex_V1_t* v,
- char* outValue,
- uint16_t outValueLen,
- uint8_t pageIdx,
- uint8_t* pageCount)
-{
- return _toStringCompactInt(&v->value, 0, false, "", "", outValue, outValueLen, pageIdx, pageCount);
-}
-
-parser_error_t _toStringCompactPerBill_V1(
- const pd_CompactPerBill_V1_t* v,
- char* outValue,
- uint16_t outValueLen,
- uint8_t pageIdx,
- uint8_t* pageCount)
-{
- // 9 but shift 2 to show as percentage
- return _toStringCompactInt(&v->value, 7, false, "%", "", outValue, outValueLen, pageIdx, pageCount);
-}
-
-parser_error_t _toStringConfigOpAccountId_V1(
- const pd_ConfigOpAccountId_V1_t* v,
- char* outValue,
- uint16_t outValueLen,
- uint8_t pageIdx,
- uint8_t* pageCount)
-{
- CLEAN_AND_CHECK()
- *pageCount = 1;
- switch (v->value) {
- case 0:
- snprintf(outValue, outValueLen, "Noop");
- break;
- case 1:
- CHECK_ERROR(_toStringAccountId_V1(&v->set, outValue, outValueLen, pageIdx, pageCount))
- break;
- case 2:
- snprintf(outValue, outValueLen, "Remove");
- break;
- default:
- return parser_unexpected_value;
- }
- return parser_ok;
-}
-
-parser_error_t _toStringConfigOpBalanceOfT_V1(
- const pd_ConfigOpBalanceOfT_V1_t* v,
- char* outValue,
- uint16_t outValueLen,
- uint8_t pageIdx,
- uint8_t* pageCount)
-{
- CLEAN_AND_CHECK()
- *pageCount = 1;
- switch (v->value) {
- case 0:
- snprintf(outValue, outValueLen, "Noop");
- break;
- case 1:
- CHECK_ERROR(_toStringBalance(&v->set, outValue, outValueLen, pageIdx, pageCount))
- break;
- case 2:
- snprintf(outValue, outValueLen, "Remove");
- break;
- default:
- return parser_unexpected_value;
- }
- return parser_ok;
-}
-
-parser_error_t _toStringConfigOpu32_V1(
- const pd_ConfigOpu32_V1_t* v,
- char* outValue,
- uint16_t outValueLen,
- uint8_t pageIdx,
- uint8_t* pageCount)
-{
- CLEAN_AND_CHECK()
- *pageCount = 1;
- switch (v->value) {
- case 0:
- snprintf(outValue, outValueLen, "Noop");
- break;
- case 1:
- CHECK_ERROR(_toStringu32(&v->set, outValue, outValueLen, pageIdx, pageCount))
- break;
- case 2:
- snprintf(outValue, outValueLen, "Remove");
- break;
- default:
- return parser_unexpected_value;
- }
- return parser_ok;
-}
-
-parser_error_t _toStringConviction_V1(
- const pd_Conviction_V1_t* v,
- char* outValue,
- uint16_t outValueLen,
- uint8_t pageIdx,
- uint8_t* pageCount)
-{
- CLEAN_AND_CHECK()
-
- *pageCount = 1;
- switch (v->value) {
- case 0:
- snprintf(outValue, outValueLen, "None");
- break;
- case 1:
- snprintf(outValue, outValueLen, "Locked1x");
- break;
- case 2:
- snprintf(outValue, outValueLen, "Locked2x");
- break;
- case 3:
- snprintf(outValue, outValueLen, "Locked3x");
- break;
- case 4:
- snprintf(outValue, outValueLen, "Locked4x");
- break;
- case 5:
- snprintf(outValue, outValueLen, "Locked5x");
- break;
- default:
- return parser_print_not_supported;
- }
-
- return parser_ok;
-}
-
-parser_error_t _toStringEcdsaPublic_V1(
- const pd_EcdsaPublic_V1_t* v,
- char* outValue,
- uint16_t outValueLen,
- uint8_t pageIdx,
- uint8_t* pageCount) {
- GEN_DEF_TOSTRING_ARRAY(33)
-}
-
-parser_error_t _toStringEcdsaSignature_V1(
- const pd_EcdsaSignature_V1_t* v,
- char* outValue,
- uint16_t outValueLen,
- uint8_t pageIdx,
- uint8_t* pageCount) {
- GEN_DEF_TOSTRING_ARRAY(65)
-}
-
-parser_error_t _toStringEd25519Public_V1(
- const pd_Ed25519Public_V1_t* v,
- char* outValue,
- uint16_t outValueLen,
- uint8_t pageIdx,
- uint8_t* pageCount) {
- GEN_DEF_TOSTRING_ARRAY(32)
-}
-
-parser_error_t _toStringEd25519Signature_V1(
- const pd_Ed25519Signature_V1_t* v,
- char* outValue,
- uint16_t outValueLen,
- uint8_t pageIdx,
- uint8_t* pageCount) {
- GEN_DEF_TOSTRING_ARRAY(64)
-}
-
-parser_error_t _toStringEraIndex_V1(
- const pd_EraIndex_V1_t* v,
- char* outValue,
- uint16_t outValueLen,
- uint8_t pageIdx,
- uint8_t* pageCount)
-{
- return _toStringu32(&v->value, outValue, outValueLen, pageIdx, pageCount);
-}
-
-parser_error_t _toStringEthereumAddress_V1(
- const pd_EthereumAddress_V1_t* v,
- char* outValue,
- uint16_t outValueLen,
- uint8_t pageIdx,
- uint8_t* pageCount) {
- GEN_DEF_TOSTRING_ARRAY(20)
-}
-
-parser_error_t _toStringKeys_V1(
- const pd_Keys_V1_t* v,
- char* outValue,
- uint16_t outValueLen,
- uint8_t pageIdx,
- uint8_t* pageCount) {
- GEN_DEF_TOSTRING_ARRAY(6 * 32)
-}
-
-parser_error_t _toStringLookupasStaticLookupSource_V1(
- const pd_LookupasStaticLookupSource_V1_t* v,
- char* outValue,
- uint16_t outValueLen,
- uint8_t pageIdx,
- uint8_t* pageCount)
-{
- CLEAN_AND_CHECK()
- switch (v->value) {
- case 0: // Id
- CHECK_ERROR(_toStringAccountId_V1(&v->id, outValue, outValueLen, pageIdx, pageCount))
- break;
- case 1: // Index
- CHECK_ERROR(_toStringCompactAccountIndex_V1(&v->index, outValue, outValueLen, pageIdx, pageCount))
- break;
- case 2: // Raw
- CHECK_ERROR(_toStringBytes(&v->raw, outValue, outValueLen, pageIdx, pageCount))
- break;
- case 3: // Address32
- {
- GEN_DEF_TOSTRING_ARRAY(32)
- }
- case 4: // Address20
- {
- GEN_DEF_TOSTRING_ARRAY(20)
- }
- default:
- return parser_not_supported;
- }
-
- return parser_ok;
-}
-
-parser_error_t _toStringMemberCount_V1(
- const pd_MemberCount_V1_t* v,
- char* outValue,
- uint16_t outValueLen,
- uint8_t pageIdx,
- uint8_t* pageCount)
-{
- return _toStringu32(&v->value, outValue, outValueLen, pageIdx, pageCount);
-}
-
-parser_error_t _toStringMultiSignature_V1(
- const pd_MultiSignature_V1_t* v,
- char* outValue,
- uint16_t outValueLen,
- uint8_t pageIdx,
- uint8_t* pageCount)
-{
- CLEAN_AND_CHECK()
- switch (v->value) {
- case 0: // Ed25519
- CHECK_ERROR(_toStringEd25519Signature_V1(&v->ed25519, outValue, outValueLen, pageIdx, pageCount))
- break;
- case 1: // Sr25519
- CHECK_ERROR(_toStringSr25519Signature_V1(&v->sr25519, outValue, outValueLen, pageIdx, pageCount))
- break;
- case 2: // Ecdsa
- CHECK_ERROR(_toStringEcdsaSignature_V1(&v->ecdsa, outValue, outValueLen, pageIdx, pageCount))
- break;
- default:
- return parser_not_supported;
- }
-
- return parser_ok;
-}
-
-parser_error_t _toStringMultiSigner_V1(
- const pd_MultiSigner_V1_t* v,
- char* outValue,
- uint16_t outValueLen,
- uint8_t pageIdx,
- uint8_t* pageCount)
-{
- CLEAN_AND_CHECK()
- switch (v->value) {
- case 0: // Ed25519
- CHECK_ERROR(_toStringEd25519Public_V1(&v->ed25519, outValue, outValueLen, pageIdx, pageCount))
- break;
- case 1: // Sr25519
- CHECK_ERROR(_toStringSr25519Public_V1(&v->sr25519, outValue, outValueLen, pageIdx, pageCount))
- break;
- case 2: // Ecdsa
- CHECK_ERROR(_toStringEcdsaPublic_V1(&v->ecdsa, outValue, outValueLen, pageIdx, pageCount))
- break;
- default:
- return parser_not_supported;
- }
-
- return parser_ok;
-}
-
-parser_error_t _toStringOpaqueCall_V1(
- const pd_OpaqueCall_V1_t* v,
- char* outValue,
- uint16_t outValueLen,
- uint8_t pageIdx,
- uint8_t* pageCount)
-{
- return _toStringCall(&v->call, outValue, outValueLen, pageIdx, pageCount);
-}
-
-parser_error_t _toStringParaId_V1(
- const pd_ParaId_V1_t* v,
- char* outValue,
- uint16_t outValueLen,
- uint8_t pageIdx,
- uint8_t* pageCount)
-{
- return _toStringu32(&v->value, outValue, outValueLen, pageIdx, pageCount);
-}
-
-parser_error_t _toStringPerbill_V1(
- const pd_Perbill_V1_t* v,
- char* outValue,
- uint16_t outValueLen,
- uint8_t pageIdx,
- uint8_t* pageCount)
-{
- char bufferUI[100];
- char ratioBuffer[80];
- memset(outValue, 0, outValueLen);
- memset(ratioBuffer, 0, sizeof(ratioBuffer));
- memset(bufferUI, 0, sizeof(bufferUI));
- *pageCount = 1;
-
- if (fpuint64_to_str(ratioBuffer, sizeof(ratioBuffer), v->value, 7) == 0) {
- return parser_unexpected_value;
- }
-
- snprintf(bufferUI, sizeof(bufferUI), "%s%%", ratioBuffer);
- pageString(outValue, outValueLen, bufferUI, pageIdx, pageCount);
- return parser_ok;
-}
-
-parser_error_t _toStringPoolId_V1(
- const pd_PoolId_V1_t* v,
- char* outValue,
- uint16_t outValueLen,
- uint8_t pageIdx,
- uint8_t* pageCount)
-{
- return _toStringu32(&v->value, outValue, outValueLen, pageIdx, pageCount);
-}
-
-parser_error_t _toStringPoolState_V1(
- const pd_PoolState_V1_t* v,
- char* outValue,
- uint16_t outValueLen,
- uint8_t pageIdx,
- uint8_t* pageCount)
-{
- CLEAN_AND_CHECK()
- *pageCount = 1;
- switch (v->value) {
- case 0:
- snprintf(outValue, outValueLen, "Open");
- break;
- case 1:
- snprintf(outValue, outValueLen, "Blocked");
- break;
- case 2:
- snprintf(outValue, outValueLen, "Destroying");
- break;
- default:
- return parser_unexpected_value;
- }
- return parser_ok;
-}
-
-parser_error_t _toStringProxyType_V1(
- const pd_ProxyType_V1_t* v,
- char* outValue,
- uint16_t outValueLen,
- uint8_t pageIdx,
- uint8_t* pageCount)
-{
- CLEAN_AND_CHECK()
-
- *pageCount = 1;
- switch (v->value) {
- case 0:
- snprintf(outValue, outValueLen, "Any");
- break;
- case 1:
- snprintf(outValue, outValueLen, "NonTransfer");
- break;
- case 2:
- snprintf(outValue, outValueLen, "Governance");
- break;
- case 3:
- snprintf(outValue, outValueLen, "Staking");
- break;
- case 4:
- snprintf(outValue, outValueLen, "IdentityJudgement");
- break;
- case 5:
- snprintf(outValue, outValueLen, "CancelProxy");
- break;
- case 6:
- snprintf(outValue, outValueLen, "Auction");
- break;
- case 7:
- snprintf(outValue, outValueLen, "Society");
- break;
- default:
- return parser_print_not_supported;
- }
-
- return parser_ok;
-}
-
-parser_error_t _toStringReferendumIndex_V1(
- const pd_ReferendumIndex_V1_t* v,
- char* outValue,
- uint16_t outValueLen,
- uint8_t pageIdx,
- uint8_t* pageCount)
-{
- return _toStringu32(&v->value, outValue, outValueLen, pageIdx, pageCount);
-}
-
-parser_error_t _toStringRegistrarIndex_V1(
- const pd_RegistrarIndex_V1_t* v,
- char* outValue,
- uint16_t outValueLen,
- uint8_t pageIdx,
- uint8_t* pageCount)
-{
- return _toStringu32(&v->value, outValue, outValueLen, pageIdx, pageCount);
-}
-
-parser_error_t _toStringRewardDestination_V1(
- const pd_RewardDestination_V1_t* v,
- char* outValue,
- uint16_t outValueLen,
- uint8_t pageIdx,
- uint8_t* pageCount)
-{
- CLEAN_AND_CHECK()
-
- *pageCount = 1;
- switch (v->value) {
- case 0:
- snprintf(outValue, outValueLen, "Staked");
- break;
- case 1:
- snprintf(outValue, outValueLen, "Stash");
- break;
- case 2:
- snprintf(outValue, outValueLen, "Controller");
- break;
- case 3:
- CHECK_ERROR(_toStringAccountId_V1(&v->accountId, outValue, outValueLen, pageIdx, pageCount));
- break;
- case 4:
- snprintf(outValue, outValueLen, "None");
- break;
- default:
- return parser_print_not_supported;
- }
-
- return parser_ok;
-}
-
-parser_error_t _toStringSessionIndex_V1(
- const pd_SessionIndex_V1_t* v,
- char* outValue,
- uint16_t outValueLen,
- uint8_t pageIdx,
- uint8_t* pageCount)
-{
- return _toStringu32(&v->value, outValue, outValueLen, pageIdx, pageCount);
-}
-
-parser_error_t _toStringSr25519Public_V1(
- const pd_Sr25519Public_V1_t* v,
- char* outValue,
- uint16_t outValueLen,
- uint8_t pageIdx,
- uint8_t* pageCount) {
- GEN_DEF_TOSTRING_ARRAY(32)
-}
-
-parser_error_t _toStringSr25519Signature_V1(
- const pd_Sr25519Signature_V1_t* v,
- char* outValue,
- uint16_t outValueLen,
- uint8_t pageIdx,
- uint8_t* pageCount) {
- GEN_DEF_TOSTRING_ARRAY(64)
-}
-
-parser_error_t _toStringTimepoint_V1(
- const pd_Timepoint_V1_t* v,
- char* outValue,
- uint16_t outValueLen,
- uint8_t pageIdx,
- uint8_t* pageCount)
-{
- CLEAN_AND_CHECK()
-
- // First measure number of pages
- uint8_t pages[2] = { 0 };
- CHECK_ERROR(_toStringBlockNumber(&v->height, outValue, outValueLen, 0, &pages[0]))
- CHECK_ERROR(_toStringu32(&v->index, outValue, outValueLen, 0, &pages[1]))
-
- *pageCount = 0;
- for (uint8_t i = 0; i < (uint8_t)sizeof(pages); i++) {
- *pageCount += pages[i];
- }
-
- if (pageIdx > *pageCount) {
- return parser_display_idx_out_of_range;
- }
-
- if (pageIdx < pages[0]) {
- CHECK_ERROR(_toStringBlockNumber(&v->height, outValue, outValueLen, pageIdx, &pages[0]))
- return parser_ok;
- }
- pageIdx -= pages[0];
-
- if (pageIdx < pages[1]) {
- CHECK_ERROR(_toStringu32(&v->index, outValue, outValueLen, pageIdx, &pages[1]))
- return parser_ok;
- }
-
- return parser_display_idx_out_of_range;
-}
-
-parser_error_t _toStringValidatorPrefs_V1(
- const pd_ValidatorPrefs_V1_t* v,
- char* outValue,
- uint16_t outValueLen,
- uint8_t pageIdx,
- uint8_t* pageCount)
-{
- CLEAN_AND_CHECK()
-
- // First measure number of pages
- uint8_t pages[2] = { 0 };
- CHECK_ERROR(_toStringCompactPerBill_V1(&v->commission, outValue, outValueLen, 0, &pages[0]))
- CHECK_ERROR(_toStringbool(&v->blocked, outValue, outValueLen, 0, &pages[1]))
-
- *pageCount = 0;
- for (uint8_t i = 0; i < (uint8_t)sizeof(pages); i++) {
- *pageCount += pages[i];
- }
-
- if (pageIdx > *pageCount) {
- return parser_display_idx_out_of_range;
- }
-
- if (pageIdx < pages[0]) {
- CHECK_ERROR(_toStringCompactPerBill_V1(&v->commission, outValue, outValueLen, pageIdx, &pages[0]))
- return parser_ok;
- }
- pageIdx -= pages[0];
-
- if (pageIdx < pages[1]) {
- CHECK_ERROR(_toStringbool(&v->blocked, outValue, outValueLen, pageIdx, &pages[1]))
- return parser_ok;
- }
-
- return parser_display_idx_out_of_range;
-}
-
-parser_error_t _toStringVestingInfo_V1(
- const pd_VestingInfo_V1_t* v,
- char* outValue,
- uint16_t outValueLen,
- uint8_t pageIdx,
- uint8_t* pageCount)
-{
- CLEAN_AND_CHECK()
-
- // First measure number of pages
- uint8_t pages[3] = { 0 };
- CHECK_ERROR(_toStringBalanceOf(&v->locked, outValue, outValueLen, 0, &pages[0]))
- CHECK_ERROR(_toStringBalanceOf(&v->per_block, outValue, outValueLen, 0, &pages[1]))
- CHECK_ERROR(_toStringBlockNumber(&v->starting_block, outValue, outValueLen, 0, &pages[2]))
-
- *pageCount = 0;
- for (uint8_t i = 0; i < (uint8_t)sizeof(pages); i++) {
- *pageCount += pages[i];
- }
-
- if (pageIdx > *pageCount) {
- return parser_display_idx_out_of_range;
- }
-
- if (pageIdx < pages[0]) {
- CHECK_ERROR(_toStringBalanceOf(&v->locked, outValue, outValueLen, pageIdx, &pages[0]))
- return parser_ok;
- }
- pageIdx -= pages[0];
-
- if (pageIdx < pages[1]) {
- CHECK_ERROR(_toStringBalanceOf(&v->per_block, outValue, outValueLen, pageIdx, &pages[1]))
- return parser_ok;
- }
- pageIdx -= pages[1];
-
- if (pageIdx < pages[2]) {
- CHECK_ERROR(_toStringBlockNumber(&v->starting_block, outValue, outValueLen, pageIdx, &pages[2]))
- return parser_ok;
- }
-
- return parser_display_idx_out_of_range;
-}
-
-parser_error_t _toStringVote_V1(
- const pd_Vote_V1_t* v,
- char* outValue,
- uint16_t outValueLen,
- uint8_t pageIdx,
- uint8_t* pageCount)
-{
- CLEAN_AND_CHECK()
-
- *pageCount = 1;
- switch (v->value) {
- case 0:
- snprintf(outValue, outValueLen, "Nay");
- break;
- case 1:
- snprintf(outValue, outValueLen, "Aye");
- break;
- default:
- return parser_unexpected_value;
- }
-
- return parser_ok;
-}
-
-parser_error_t _toStringWeight_V1(
- const pd_Weight_V1_t* v,
- char* outValue,
- uint16_t outValueLen,
- uint8_t pageIdx,
- uint8_t* pageCount)
-{
- return _toStringu64(&v->value, outValue, outValueLen, pageIdx, pageCount);
-}
-
-parser_error_t _toStringVecAccountId_V1(
- const pd_VecAccountId_V1_t* v,
- char* outValue,
- uint16_t outValueLen,
- uint8_t pageIdx,
- uint8_t* pageCount)
-{
- GEN_DEF_TOSTRING_VECTOR(AccountId_V1);
-}
-
-parser_error_t _toStringVecLookupasStaticLookupSource_V1(
- const pd_VecLookupasStaticLookupSource_V1_t* v,
- char* outValue,
- uint16_t outValueLen,
- uint8_t pageIdx,
- uint8_t* pageCount)
-{
- GEN_DEF_TOSTRING_VECTOR(LookupasStaticLookupSource_V1);
-}
-
-parser_error_t _toStringOptionAccountId_V1(
- const pd_OptionAccountId_V1_t* v,
- char* outValue,
- uint16_t outValueLen,
- uint8_t pageIdx,
- uint8_t* pageCount)
-{
- CLEAN_AND_CHECK()
-
- *pageCount = 1;
- if (v->some > 0) {
- CHECK_ERROR(_toStringAccountId_V1(
- &v->contained,
- outValue, outValueLen,
- pageIdx, pageCount));
- } else {
- snprintf(outValue, outValueLen, "None");
- }
- return parser_ok;
-}
-
-parser_error_t _toStringOptionMultiSignature_V1(
- const pd_OptionMultiSignature_V1_t* v,
- char* outValue,
- uint16_t outValueLen,
- uint8_t pageIdx,
- uint8_t* pageCount)
-{
- CLEAN_AND_CHECK()
-
- *pageCount = 1;
- if (v->some > 0) {
- CHECK_ERROR(_toStringMultiSignature_V1(
- &v->contained,
- outValue, outValueLen,
- pageIdx, pageCount));
- } else {
- snprintf(outValue, outValueLen, "None");
- }
- return parser_ok;
-}
-
-parser_error_t _toStringOptionMultiSigner_V1(
- const pd_OptionMultiSigner_V1_t* v,
- char* outValue,
- uint16_t outValueLen,
- uint8_t pageIdx,
- uint8_t* pageCount)
-{
- CLEAN_AND_CHECK()
-
- *pageCount = 1;
- if (v->some > 0) {
- CHECK_ERROR(_toStringMultiSigner_V1(
- &v->contained,
- outValue, outValueLen,
- pageIdx, pageCount));
- } else {
- snprintf(outValue, outValueLen, "None");
- }
- return parser_ok;
-}
-
-parser_error_t _toStringOptionProxyType_V1(
- const pd_OptionProxyType_V1_t* v,
- char* outValue,
- uint16_t outValueLen,
- uint8_t pageIdx,
- uint8_t* pageCount)
-{
- CLEAN_AND_CHECK()
-
- *pageCount = 1;
- if (v->some > 0) {
- CHECK_ERROR(_toStringProxyType_V1(
- &v->contained,
- outValue, outValueLen,
- pageIdx, pageCount));
- } else {
- snprintf(outValue, outValueLen, "None");
- }
- return parser_ok;
-}
-
-parser_error_t _toStringOptionTimepoint_V1(
- const pd_OptionTimepoint_V1_t* v,
- char* outValue,
- uint16_t outValueLen,
- uint8_t pageIdx,
- uint8_t* pageCount)
-{
- CLEAN_AND_CHECK()
-
- *pageCount = 1;
- if (v->some > 0) {
- CHECK_ERROR(_toStringTimepoint_V1(
- &v->contained,
- outValue, outValueLen,
- pageIdx, pageCount));
- } else {
- snprintf(outValue, outValueLen, "None");
- }
- return parser_ok;
-}
diff --git a/app/src/substrate/substrate_types_V1.h b/app/src/substrate/substrate_types_V1.h
index 812cdb9..e5ce7cd 100644
--- a/app/src/substrate/substrate_types_V1.h
+++ b/app/src/substrate/substrate_types_V1.h
@@ -1,5 +1,5 @@
/*******************************************************************************
- * (c) 2019 - 2022 Zondax AG
+ * (c) 2019 - 2023 Zondax AG
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -23,236 +23,7 @@ extern "C" {
#include
#include
-// Based
-// https://github.com/paritytech/substrate/blob/master/node/primitives/src/lib.rs
-
-typedef struct {
- const uint8_t* _ptr;
-} pd_AccountId_V1_t;
-
-typedef struct {
- compactInt_t value;
-} pd_CompactAccountIndex_V1_t;
-
-typedef struct {
- const uint8_t* _ptr;
-} pd_EcdsaPublic_V1_t;
-
-typedef struct {
- const uint8_t* _ptr;
-} pd_EcdsaSignature_V1_t;
-
-typedef struct {
- const uint8_t* _ptr;
-} pd_Ed25519Public_V1_t;
-
-typedef struct {
- const uint8_t* _ptr;
-} pd_Ed25519Signature_V1_t;
-
-typedef struct {
- const uint8_t* _ptr;
-} pd_Sr25519Public_V1_t;
-
-typedef struct {
- const uint8_t* _ptr;
-} pd_Sr25519Signature_V1_t;
-
-typedef struct {
- uint8_t value;
-} pd_Vote_V1_t;
-
-typedef struct {
- pd_BalanceOf_t aye;
- pd_BalanceOf_t nay;
-} pd_AccountVoteSplit_V1_t;
-
-typedef struct {
- pd_Vote_V1_t vote;
- pd_BalanceOf_t balance;
-} pd_AccountVoteStandard_V1_t;
-
-typedef struct {
- compactInt_t value;
-} pd_CompactPerBill_V1_t;
-
-typedef struct {
- uint8_t value;
- union {
- pd_AccountId_V1_t id;
- pd_CompactAccountIndex_V1_t index;
- pd_Bytes_t raw;
- const uint8_t* _ptr;
- };
-} pd_LookupasStaticLookupSource_V1_t;
-
-typedef struct {
- uint8_t value;
- union {
- pd_Ed25519Signature_V1_t ed25519;
- pd_Sr25519Signature_V1_t sr25519;
- pd_EcdsaSignature_V1_t ecdsa;
- };
-} pd_MultiSignature_V1_t;
-
-typedef struct {
- uint8_t value;
- union {
- pd_Ed25519Public_V1_t ed25519;
- pd_Sr25519Public_V1_t sr25519;
- pd_EcdsaPublic_V1_t ecdsa;
- };
-} pd_MultiSigner_V1_t;
-
-typedef struct {
- uint8_t value;
-} pd_ProxyType_V1_t;
-
-typedef struct {
- pd_BlockNumber_t height;
- uint32_t index;
-} pd_Timepoint_V1_t;
-
-typedef struct {
- uint8_t value;
- union {
- pd_AccountVoteStandard_V1_t voteStandard;
- pd_AccountVoteSplit_V1_t voteSplit;
- };
-} pd_AccountVote_V1_t;
-
-typedef struct {
- uint8_t value;
- pd_Balance_t freeBalance;
-} pd_BondExtraBalanceOfT_V1_t;
-
-typedef struct {
- uint8_t value;
- pd_AccountId_V1_t set;
-} pd_ConfigOpAccountId_V1_t;
-
-typedef struct {
- uint8_t value;
- pd_Balance_t set;
-} pd_ConfigOpBalanceOfT_V1_t;
-
-typedef struct {
- pd_Call_t call;
-} pd_OpaqueCall_V1_t;
-
-typedef struct {
- uint8_t some;
- pd_MultiSignature_V1_t contained;
-} pd_OptionMultiSignature_V1_t;
-
-typedef struct {
- uint8_t some;
- pd_MultiSigner_V1_t contained;
-} pd_OptionMultiSigner_V1_t;
-
-typedef struct {
- uint8_t some;
- pd_Timepoint_V1_t contained;
-} pd_OptionTimepoint_V1_t;
-
-typedef struct {
- uint8_t value;
- pd_AccountId_V1_t accountId;
-} pd_RewardDestination_V1_t;
-
-typedef struct {
- pd_CompactPerBill_V1_t commission;
- pd_bool_t blocked;
-} pd_ValidatorPrefs_V1_t;
-
-typedef struct {
- uint64_t _len;
- const uint8_t* _ptr;
- uint64_t _lenBuffer;
-} pd_VecLookupasStaticLookupSource_V1_t;
-
-typedef struct {
- pd_BalanceOf_t locked;
- pd_BalanceOf_t per_block;
- pd_BlockNumber_t starting_block;
-} pd_VestingInfo_V1_t;
-
-typedef struct {
- uint32_t value;
-} pd_AccountIndex_V1_t;
-
-typedef struct {
- uint8_t value;
- uint32_t set;
-} pd_ConfigOpu32_V1_t;
-
-typedef struct {
- uint8_t value;
-} pd_Conviction_V1_t;
-
-typedef struct {
- uint32_t value;
-} pd_EraIndex_V1_t;
-
-typedef struct {
- const uint8_t* _ptr;
-} pd_EthereumAddress_V1_t;
-
-typedef struct {
- const uint8_t* _ptr;
-} pd_Keys_V1_t;
-
-typedef struct {
- uint32_t value;
-} pd_MemberCount_V1_t;
-
-typedef struct {
- uint8_t some;
- pd_AccountId_V1_t contained;
-} pd_OptionAccountId_V1_t;
-
-typedef struct {
- uint8_t some;
- pd_ProxyType_V1_t contained;
-} pd_OptionProxyType_V1_t;
-
-typedef struct {
- uint32_t value;
-} pd_ParaId_V1_t;
-
-typedef struct {
- uint32_t value;
-} pd_Perbill_V1_t;
-
-typedef struct {
- uint32_t value;
-} pd_PoolId_V1_t;
-
-typedef struct {
- uint8_t value;
-} pd_PoolState_V1_t;
-
-typedef struct {
- uint32_t value;
-} pd_ReferendumIndex_V1_t;
-
-typedef struct {
- uint32_t value;
-} pd_RegistrarIndex_V1_t;
-
-typedef struct {
- uint32_t value;
-} pd_SessionIndex_V1_t;
-
-typedef struct {
- uint64_t _len;
- const uint8_t* _ptr;
- uint64_t _lenBuffer;
-} pd_VecAccountId_V1_t;
-
-typedef struct {
- uint64_t value;
-} pd_Weight_V1_t;
+// Versioned types functions for tx version V19
#ifdef __cplusplus
}
diff --git a/cmake/cmake-modules/CodeCoverage.cmake b/cmake/cmake-modules/CodeCoverage.cmake
index aef3d94..d4a039f 100644
--- a/cmake/cmake-modules/CodeCoverage.cmake
+++ b/cmake/cmake-modules/CodeCoverage.cmake
@@ -83,6 +83,10 @@
# - Change gcovr output from -o for --xml and --html output respectively.
# This will allow for Multiple Output Formats at the same time by making use of GCOVR_ADDITIONAL_ARGS, e.g. GCOVR_ADDITIONAL_ARGS "--txt".
#
+# 2022-09-28, Sebastian Mueller
+# - fix append_coverage_compiler_flags_to_target to correctly add flags
+# - replace "-fprofile-arcs -ftest-coverage" with "--coverage" (equivalent)
+#
# USAGE:
#
# 1. Copy this file into your cmake modules path.
@@ -147,24 +151,20 @@ if(NOT GCOV_PATH)
message(FATAL_ERROR "gcov not found! Aborting...")
endif() # NOT GCOV_PATH
+# Check supported compiler (Clang, GNU and Flang)
get_property(LANGUAGES GLOBAL PROPERTY ENABLED_LANGUAGES)
-list(GET LANGUAGES 0 LANG)
-
-if("${CMAKE_${LANG}_COMPILER_ID}" MATCHES "(Apple)?[Cc]lang")
+foreach(LANG ${LANGUAGES})
+ if("${CMAKE_${LANG}_COMPILER_ID}" MATCHES "(Apple)?[Cc]lang")
if("${CMAKE_${LANG}_COMPILER_VERSION}" VERSION_LESS 3)
- message(FATAL_ERROR "Clang version must be 3.0.0 or greater! Aborting...")
- endif()
-elseif(NOT CMAKE_COMPILER_IS_GNUCXX)
- if("${CMAKE_Fortran_COMPILER_ID}" MATCHES "[Ff]lang")
- # Do nothing; exit conditional without error if true
- elseif("${CMAKE_Fortran_COMPILER_ID}" MATCHES "GNU")
- # Do nothing; exit conditional without error if true
- else()
- message(FATAL_ERROR "Compiler is not GNU gcc! Aborting...")
+ message(FATAL_ERROR "Clang version must be 3.0.0 or greater! Aborting...")
endif()
-endif()
+ elseif(NOT "${CMAKE_${LANG}_COMPILER_ID}" MATCHES "GNU"
+ AND NOT "${CMAKE_${LANG}_COMPILER_ID}" MATCHES "(LLVM)?[Ff]lang")
+ message(FATAL_ERROR "Compiler is not GNU or Flang! Aborting...")
+ endif()
+endforeach()
-set(COVERAGE_COMPILER_FLAGS "-g -fprofile-arcs -ftest-coverage"
+set(COVERAGE_COMPILER_FLAGS "-g --coverage"
CACHE INTERNAL "")
if(CMAKE_CXX_COMPILER_ID MATCHES "(GNU|Clang)")
include(CheckCXXCompilerFlag)
@@ -228,7 +228,7 @@ endif()
# )
function(setup_target_for_coverage_lcov)
- set(options NO_DEMANGLE)
+ set(options NO_DEMANGLE SONARQUBE)
set(oneValueArgs BASE_DIRECTORY NAME)
set(multiValueArgs EXCLUDE EXECUTABLE EXECUTABLE_ARGS DEPENDENCIES LCOV_ARGS GENHTML_ARGS)
cmake_parse_arguments(Coverage "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
@@ -262,43 +262,55 @@ function(setup_target_for_coverage_lcov)
if(CPPFILT_PATH AND NOT ${Coverage_NO_DEMANGLE})
set(GENHTML_EXTRA_ARGS "--demangle-cpp")
endif()
-
+
# Setting up commands which will be run to generate coverage data.
# Cleanup lcov
- set(LCOV_CLEAN_CMD
- ${LCOV_PATH} ${Coverage_LCOV_ARGS} --gcov-tool ${GCOV_PATH} -directory .
+ set(LCOV_CLEAN_CMD
+ ${LCOV_PATH} ${Coverage_LCOV_ARGS} --gcov-tool ${GCOV_PATH} -directory .
-b ${BASEDIR} --zerocounters
)
# Create baseline to make sure untouched files show up in the report
- set(LCOV_BASELINE_CMD
- ${LCOV_PATH} ${Coverage_LCOV_ARGS} --gcov-tool ${GCOV_PATH} -c -i -d . -b
+ set(LCOV_BASELINE_CMD
+ ${LCOV_PATH} ${Coverage_LCOV_ARGS} --gcov-tool ${GCOV_PATH} -c -i -d . -b
${BASEDIR} -o ${Coverage_NAME}.base
)
# Run tests
- set(LCOV_EXEC_TESTS_CMD
+ set(LCOV_EXEC_TESTS_CMD
${Coverage_EXECUTABLE} ${Coverage_EXECUTABLE_ARGS}
- )
+ )
# Capturing lcov counters and generating report
- set(LCOV_CAPTURE_CMD
- ${LCOV_PATH} ${Coverage_LCOV_ARGS} --gcov-tool ${GCOV_PATH} --directory . -b
+ set(LCOV_CAPTURE_CMD
+ ${LCOV_PATH} ${Coverage_LCOV_ARGS} --gcov-tool ${GCOV_PATH} --directory . -b
${BASEDIR} --capture --output-file ${Coverage_NAME}.capture
)
# add baseline counters
set(LCOV_BASELINE_COUNT_CMD
- ${LCOV_PATH} ${Coverage_LCOV_ARGS} --gcov-tool ${GCOV_PATH} -a ${Coverage_NAME}.base
+ ${LCOV_PATH} ${Coverage_LCOV_ARGS} --gcov-tool ${GCOV_PATH} -a ${Coverage_NAME}.base
-a ${Coverage_NAME}.capture --output-file ${Coverage_NAME}.total
- )
+ )
# filter collected data to final coverage report
- set(LCOV_FILTER_CMD
- ${LCOV_PATH} ${Coverage_LCOV_ARGS} --gcov-tool ${GCOV_PATH} --remove
+ set(LCOV_FILTER_CMD
+ ${LCOV_PATH} ${Coverage_LCOV_ARGS} --gcov-tool ${GCOV_PATH} --remove
${Coverage_NAME}.total ${LCOV_EXCLUDES} --output-file ${Coverage_NAME}.info
- )
+ )
# Generate HTML output
set(LCOV_GEN_HTML_CMD
- ${GENHTML_PATH} ${GENHTML_EXTRA_ARGS} ${Coverage_GENHTML_ARGS} -o
+ ${GENHTML_PATH} ${GENHTML_EXTRA_ARGS} ${Coverage_GENHTML_ARGS} -o
${Coverage_NAME} ${Coverage_NAME}.info
)
-
+ if(${Coverage_SONARQUBE})
+ # Generate SonarQube output
+ set(GCOVR_XML_CMD
+ ${GCOVR_PATH} --sonarqube ${Coverage_NAME}_sonarqube.xml -r ${BASEDIR} ${GCOVR_ADDITIONAL_ARGS}
+ ${GCOVR_EXCLUDE_ARGS} --object-directory=${PROJECT_BINARY_DIR}
+ )
+ set(GCOVR_XML_CMD_COMMAND
+ COMMAND ${GCOVR_XML_CMD}
+ )
+ set(GCOVR_XML_CMD_BYPRODUCTS ${Coverage_NAME}_sonarqube.xml)
+ set(GCOVR_XML_CMD_COMMENT COMMENT "SonarQube code coverage info report saved in ${Coverage_NAME}_sonarqube.xml.")
+ endif()
+
if(CODE_COVERAGE_VERBOSE)
message(STATUS "Executed command report")
@@ -329,17 +341,24 @@ function(setup_target_for_coverage_lcov)
message(STATUS "Command to generate lcov HTML output: ")
string(REPLACE ";" " " LCOV_GEN_HTML_CMD_SPACED "${LCOV_GEN_HTML_CMD}")
message(STATUS "${LCOV_GEN_HTML_CMD_SPACED}")
+
+ if(${Coverage_SONARQUBE})
+ message(STATUS "Command to generate SonarQube XML output: ")
+ string(REPLACE ";" " " GCOVR_XML_CMD_SPACED "${GCOVR_XML_CMD}")
+ message(STATUS "${GCOVR_XML_CMD_SPACED}")
+ endif()
endif()
# Setup target
add_custom_target(${Coverage_NAME}
COMMAND ${LCOV_CLEAN_CMD}
- COMMAND ${LCOV_BASELINE_CMD}
+ COMMAND ${LCOV_BASELINE_CMD}
COMMAND ${LCOV_EXEC_TESTS_CMD}
COMMAND ${LCOV_CAPTURE_CMD}
COMMAND ${LCOV_BASELINE_COUNT_CMD}
- COMMAND ${LCOV_FILTER_CMD}
+ COMMAND ${LCOV_FILTER_CMD}
COMMAND ${LCOV_GEN_HTML_CMD}
+ ${GCOVR_XML_CMD_COMMAND}
# Set output files as GENERATED (will be removed on 'make clean')
BYPRODUCTS
@@ -347,6 +366,7 @@ function(setup_target_for_coverage_lcov)
${Coverage_NAME}.capture
${Coverage_NAME}.total
${Coverage_NAME}.info
+ ${GCOVR_XML_CMD_BYPRODUCTS}
${Coverage_NAME}/index.html
WORKING_DIRECTORY ${PROJECT_BINARY_DIR}
DEPENDS ${Coverage_DEPENDENCIES}
@@ -358,6 +378,7 @@ function(setup_target_for_coverage_lcov)
add_custom_command(TARGET ${Coverage_NAME} POST_BUILD
COMMAND ;
COMMENT "Lcov code coverage info report saved in ${Coverage_NAME}.info."
+ ${GCOVR_XML_CMD_COMMENT}
)
# Show info where to find the report
@@ -418,7 +439,7 @@ function(setup_target_for_coverage_gcovr_xml)
list(APPEND GCOVR_EXCLUDE_ARGS "-e")
list(APPEND GCOVR_EXCLUDE_ARGS "${EXCLUDE}")
endforeach()
-
+
# Set up commands which will be run to generate coverage data
# Run tests
set(GCOVR_XML_EXEC_TESTS_CMD
@@ -429,7 +450,7 @@ function(setup_target_for_coverage_gcovr_xml)
${GCOVR_PATH} --xml ${Coverage_NAME}.xml -r ${BASEDIR} ${GCOVR_ADDITIONAL_ARGS}
${GCOVR_EXCLUDE_ARGS} --object-directory=${PROJECT_BINARY_DIR}
)
-
+
if(CODE_COVERAGE_VERBOSE)
message(STATUS "Executed command report")
@@ -445,7 +466,7 @@ function(setup_target_for_coverage_gcovr_xml)
add_custom_target(${Coverage_NAME}
COMMAND ${GCOVR_XML_EXEC_TESTS_CMD}
COMMAND ${GCOVR_XML_CMD}
-
+
BYPRODUCTS ${Coverage_NAME}.xml
WORKING_DIRECTORY ${PROJECT_BINARY_DIR}
DEPENDS ${Coverage_DEPENDENCIES}
@@ -621,9 +642,8 @@ function(setup_target_for_coverage_fastcov)
--process-gcno
--output ${Coverage_NAME}.json
--exclude ${FASTCOV_EXCLUDES}
- --exclude ${FASTCOV_EXCLUDES}
)
-
+
set(FASTCOV_CONVERT_CMD ${FASTCOV_PATH}
-C ${Coverage_NAME}.json --lcov --output ${Coverage_NAME}.info
)
@@ -714,6 +734,9 @@ endfunction() # append_coverage_compiler_flags
# Setup coverage for specific library
function(append_coverage_compiler_flags_to_target name)
- target_compile_options(${name}
- PRIVATE ${COVERAGE_COMPILER_FLAGS})
+ separate_arguments(_flag_list NATIVE_COMMAND "${COVERAGE_COMPILER_FLAGS}")
+ target_compile_options(${name} PRIVATE ${_flag_list})
+ if(CMAKE_C_COMPILER_ID STREQUAL "GNU" OR CMAKE_Fortran_COMPILER_ID STREQUAL "GNU")
+ target_link_libraries(${name} PRIVATE gcov)
+ endif()
endfunction()
diff --git a/deps/.DS_Store b/deps/.DS_Store
new file mode 100644
index 0000000..78a2415
Binary files /dev/null and b/deps/.DS_Store differ
diff --git a/deps/BLAKE2 b/deps/BLAKE2
new file mode 160000
index 0000000..54f4faa
--- /dev/null
+++ b/deps/BLAKE2
@@ -0,0 +1 @@
+Subproject commit 54f4faa4c16ea34bcd59d16e8da46a64b259fc07
diff --git a/deps/BLAKE2/.gitignore b/deps/BLAKE2/.gitignore
deleted file mode 100644
index da7808f..0000000
--- a/deps/BLAKE2/.gitignore
+++ /dev/null
@@ -1,27 +0,0 @@
-b2sum/b2sum
-bench/blake2b
-bench/blake2b.data
-bench/blake2s
-bench/blake2s.data
-bench/md5
-bench/md5.data
-bench/plotcycles.pdf
-ref/blake2b
-ref/blake2bp
-ref/blake2s
-ref/blake2sp
-sse/blake2b
-sse/blake2bp
-sse/blake2s
-sse/blake2sp
-ref/blake2xs
-ref/blake2xb
-sse/blake2xs
-sse/blake2xb
-neon/blake2s
-neon/blake2b
-neon/blake2sp
-neon/blake2bp
-neon/blake2xs
-neon/blake2xb
-**tags
diff --git a/deps/BLAKE2/.travis.yml b/deps/BLAKE2/.travis.yml
deleted file mode 100644
index a551231..0000000
--- a/deps/BLAKE2/.travis.yml
+++ /dev/null
@@ -1,231 +0,0 @@
-# BLAKE2 reference source code package - Travis testing configuration
-#
-# Copyright 2020, Samuel Neves . You may use this under the
-# terms of the CC0, the OpenSSL Licence, or the Apache Public License 2.0, at
-# your option. The terms of these licenses can be found at:
-#
-# - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0
-# - OpenSSL license : https://www.openssl.org/source/license.html
-# - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0
-#
-# More information about the BLAKE2 hash function can be found at
-# https://blake2.net.
-
-# DO NOT create top level (global) keys like env, arch, os, compiler.
-# The top level/global keys invoke [unwanted] matrix expansion. Also
-# see https://stackoverflow.com/q/58473000/608639 and
-# https://docs.travis-ci.com/user/reference/overview/ and
-# https://docs.travis-ci.com/user/multi-cpu-architectures and
-# https://github.com/travis-ci/travis-yml/blob/master/schema.json.
-
-language: c
-dist: bionic
-
-git:
- depth: 5
-
-# Use jobs rather than matrix since we are precisely specifiying our
-# test cases. Do not move any of the keys (env, os, arch, compiler, etc)
-# into global. Putting them in global invokes the matrix expansion.
-jobs:
- include:
- # AMD64 testing
- - name: GCC, amd64 (ref)
- os: linux
- arch: amd64
- compiler: gcc
- env:
- - BUILD_DIR=ref
- - MAKEFILE=makefile
- - name: GCC, amd64 (sse)
- os: linux
- arch: amd64
- compiler: gcc
- env:
- - BUILD_DIR=sse
- - MAKEFILE=makefile
- - name: Clang, amd64 (ref)
- os: linux
- arch: amd64
- compiler: clang
- env:
- - CC=clang-8
- - BUILD_DIR=ref
- - MAKEFILE=makefile
- - name: Clang, amd64 (sse)
- os: linux
- arch: amd64
- compiler: clang
- env:
- - CC=clang-8
- - BUILD_DIR=sse
- - MAKEFILE=makefile
- # OS X testing
- # - OS X 10.15.4 uses Xcode 11.6
- # - OS X 10.11 uses Xcode 7.3
- - name: Clang, OS X, amd64 (ref)
- os: osx
- osx_image: xcode11.6
- arch: amd64
- compiler: clang
- env:
- - BUILD_DIR=ref
- - MAKEFILE=makefile
- - name: Clang, OS X, amd64 (sse)
- os: osx
- osx_image: xcode11.6
- arch: amd64
- compiler: clang
- env:
- - BUILD_DIR=ref
- - MAKEFILE=makefile
- - name: Clang, OS X, amd64 (ref)
- os: osx
- osx_image: xcode7.3
- arch: amd64
- compiler: clang
- env:
- - BUILD_DIR=ref
- - MAKEFILE=makefile
- - name: Clang, OS X, amd64 (sse)
- os: osx
- osx_image: xcode7.3
- arch: amd64
- compiler: clang
- env:
- - BUILD_DIR=ref
- - MAKEFILE=makefile
- # Aarch64 testing
- - name: GCC, aarch64 (ref)
- os: linux
- arch: arm64
- compiler: gcc
- dist: bionic
- env:
- - BUILD_DIR=ref
- - MAKEFILE=makefile
- - name: GCC, aarch64 (neon)
- os: linux
- arch: arm64
- compiler: gcc
- dist: bionic
- env:
- - BUILD_DIR=neon
- - MAKEFILE=makefile-aarch64
- - name: Clang, aarch64 (ref)
- os: linux
- arch: arm64
- compiler: clang
- dist: bionic
- env:
- - CC=clang-8
- - BUILD_DIR=ref
- - MAKEFILE=makefile
- - name: Clang, aarch64 (neon)
- os: linux
- arch: arm64
- compiler: clang
- dist: bionic
- env:
- - CC=clang-8
- - BUILD_DIR=neon
- - MAKEFILE=makefile-aarch64
- # PowerPC testing
- - name: GCC, ppc64le (ref)
- os: linux
- arch: ppc64le
- compiler: gcc
- dist: bionic
- env:
- - BUILD_DIR=ref
- - MAKEFILE=makefile
- - name: GCC, ppc64le (power8)
- os: linux
- arch: ppc64le
- compiler: gcc
- env:
- - BUILD_DIR=power8
- - MAKEFILE=makefile
- - name: Clang, ppc64le (ref)
- os: linux
- arch: ppc64le
- compiler: clang
- dist: bionic
- env:
- - CC=clang-8
- - BUILD_DIR=ref
- - MAKEFILE=makefile
- - name: Clang, ppc64le (power8)
- os: linux
- arch: ppc64le
- compiler: clang
- dist: bionic
- env:
- - CC=clang-8
- - BUILD_DIR=power8
- - MAKEFILE=makefile
- # s390x testing
- - name: GCC, s390x (ref)
- os: linux
- arch: s390x
- compiler: gcc
- dist: bionic
- env:
- - BUILD_DIR=ref
- - MAKEFILE=makefile
- - name: Clang, s390x (ref)
- os: linux
- arch: s390x
- compiler: clang
- dist: bionic
- env:
- - CC=clang-8
- - BUILD_DIR=ref
- - MAKEFILE=makefile
-
- allow_failures:
- # Clang has a fair amount of trouble
- # on platforms Apple does not support
- - os: linux
- arch: s390x
- compiler: clang
- # Clang 7.0 and below will likely have trouble on ppc64le
- # due to https://bugs.llvm.org/show_bug.cgi?id=39704.
- # Also see https://bugs.llvm.org/show_bug.cgi?id=46571.
- - os: linux
- arch: ppc64le
- compiler: clang
- # And https://bugs.llvm.org/show_bug.cgi?id=46572
- - os: linux
- arch: arm64
- compiler: clang
-
-before_install:
- - |
- # Clang 7 compiler is completely broken on PPC64 and s390x
- # Clang 8 is needed for OpenMP on Aarch64
- if [[ "$TRAVIS_OS_NAME" == "linux" ]] && [[ "$TRAVIS_COMPILER" == "clang" ]]; then
- # https://github.com/travis-ci/travis-ci/issues/9037
- sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 0C49F3730359A145
- sudo apt-get -qq -y install --no-install-recommends clang-8 || true
- sudo apt-get -qq -y install --no-install-recommends libomp-8-dev || true
- sudo apt-get -qq -y install --no-install-recommends libomp5-8 || true
- fi
-
-script:
- - |
- cd "${BUILD_DIR}"
- make CC="${CC}" -f "${MAKEFILE}" -j 3
-
-# Whitelist branches to avoid testing feature branches twice
-branches:
- only:
- - master
- - /\/ci$/
-
-#notifications:
-# email:
-# recipients:
-# - blake2-build@example.com
-# on_success: always # default: change
-# on_failure: always # default: always
diff --git a/deps/BLAKE2/COPYING b/deps/BLAKE2/COPYING
deleted file mode 100644
index 0e259d4..0000000
--- a/deps/BLAKE2/COPYING
+++ /dev/null
@@ -1,121 +0,0 @@
-Creative Commons Legal Code
-
-CC0 1.0 Universal
-
- CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE
- LEGAL SERVICES. DISTRIBUTION OF THIS DOCUMENT DOES NOT CREATE AN
- ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS
- INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES
- REGARDING THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS
- PROVIDED HEREUNDER, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM
- THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED
- HEREUNDER.
-
-Statement of Purpose
-
-The laws of most jurisdictions throughout the world automatically confer
-exclusive Copyright and Related Rights (defined below) upon the creator
-and subsequent owner(s) (each and all, an "owner") of an original work of
-authorship and/or a database (each, a "Work").
-
-Certain owners wish to permanently relinquish those rights to a Work for
-the purpose of contributing to a commons of creative, cultural and
-scientific works ("Commons") that the public can reliably and without fear
-of later claims of infringement build upon, modify, incorporate in other
-works, reuse and redistribute as freely as possible in any form whatsoever
-and for any purposes, including without limitation commercial purposes.
-These owners may contribute to the Commons to promote the ideal of a free
-culture and the further production of creative, cultural and scientific
-works, or to gain reputation or greater distribution for their Work in
-part through the use and efforts of others.
-
-For these and/or other purposes and motivations, and without any
-expectation of additional consideration or compensation, the person
-associating CC0 with a Work (the "Affirmer"), to the extent that he or she
-is an owner of Copyright and Related Rights in the Work, voluntarily
-elects to apply CC0 to the Work and publicly distribute the Work under its
-terms, with knowledge of his or her Copyright and Related Rights in the
-Work and the meaning and intended legal effect of CC0 on those rights.
-
-1. Copyright and Related Rights. A Work made available under CC0 may be
-protected by copyright and related or neighboring rights ("Copyright and
-Related Rights"). Copyright and Related Rights include, but are not
-limited to, the following:
-
- i. the right to reproduce, adapt, distribute, perform, display,
- communicate, and translate a Work;
- ii. moral rights retained by the original author(s) and/or performer(s);
-iii. publicity and privacy rights pertaining to a person's image or
- likeness depicted in a Work;
- iv. rights protecting against unfair competition in regards to a Work,
- subject to the limitations in paragraph 4(a), below;
- v. rights protecting the extraction, dissemination, use and reuse of data
- in a Work;
- vi. database rights (such as those arising under Directive 96/9/EC of the
- European Parliament and of the Council of 11 March 1996 on the legal
- protection of databases, and under any national implementation
- thereof, including any amended or successor version of such
- directive); and
-vii. other similar, equivalent or corresponding rights throughout the
- world based on applicable law or treaty, and any national
- implementations thereof.
-
-2. Waiver. To the greatest extent permitted by, but not in contravention
-of, applicable law, Affirmer hereby overtly, fully, permanently,
-irrevocably and unconditionally waives, abandons, and surrenders all of
-Affirmer's Copyright and Related Rights and associated claims and causes
-of action, whether now known or unknown (including existing as well as
-future claims and causes of action), in the Work (i) in all territories
-worldwide, (ii) for the maximum duration provided by applicable law or
-treaty (including future time extensions), (iii) in any current or future
-medium and for any number of copies, and (iv) for any purpose whatsoever,
-including without limitation commercial, advertising or promotional
-purposes (the "Waiver"). Affirmer makes the Waiver for the benefit of each
-member of the public at large and to the detriment of Affirmer's heirs and
-successors, fully intending that such Waiver shall not be subject to
-revocation, rescission, cancellation, termination, or any other legal or
-equitable action to disrupt the quiet enjoyment of the Work by the public
-as contemplated by Affirmer's express Statement of Purpose.
-
-3. Public License Fallback. Should any part of the Waiver for any reason
-be judged legally invalid or ineffective under applicable law, then the
-Waiver shall be preserved to the maximum extent permitted taking into
-account Affirmer's express Statement of Purpose. In addition, to the
-extent the Waiver is so judged Affirmer hereby grants to each affected
-person a royalty-free, non transferable, non sublicensable, non exclusive,
-irrevocable and unconditional license to exercise Affirmer's Copyright and
-Related Rights in the Work (i) in all territories worldwide, (ii) for the
-maximum duration provided by applicable law or treaty (including future
-time extensions), (iii) in any current or future medium and for any number
-of copies, and (iv) for any purpose whatsoever, including without
-limitation commercial, advertising or promotional purposes (the
-"License"). The License shall be deemed effective as of the date CC0 was
-applied by Affirmer to the Work. Should any part of the License for any
-reason be judged legally invalid or ineffective under applicable law, such
-partial invalidity or ineffectiveness shall not invalidate the remainder
-of the License, and in such case Affirmer hereby affirms that he or she
-will not (i) exercise any of his or her remaining Copyright and Related
-Rights in the Work or (ii) assert any associated claims and causes of
-action with respect to the Work, in either case contrary to Affirmer's
-express Statement of Purpose.
-
-4. Limitations and Disclaimers.
-
- a. No trademark or patent rights held by Affirmer are waived, abandoned,
- surrendered, licensed or otherwise affected by this document.
- b. Affirmer offers the Work as-is and makes no representations or
- warranties of any kind concerning the Work, express, implied,
- statutory or otherwise, including without limitation warranties of
- title, merchantability, fitness for a particular purpose, non
- infringement, or the absence of latent or other defects, accuracy, or
- the present or absence of errors, whether or not discoverable, all to
- the greatest extent permissible under applicable law.
- c. Affirmer disclaims responsibility for clearing rights of other persons
- that may apply to the Work or any use thereof, including without
- limitation any person's Copyright and Related Rights in the Work.
- Further, Affirmer disclaims responsibility for obtaining any necessary
- consents, permissions or other rights required for any use of the
- Work.
- d. Affirmer understands and acknowledges that Creative Commons is not a
- party to this document and has no duty or obligation with respect to
- this CC0 or use of the Work.
diff --git a/deps/BLAKE2/README.md b/deps/BLAKE2/README.md
deleted file mode 100644
index 821d256..0000000
--- a/deps/BLAKE2/README.md
+++ /dev/null
@@ -1,29 +0,0 @@
-# BLAKE2
-
-This is the reference source code package of BLAKE2, which includes
-
-* `ref/`: C implementations of BLAKE2b, BLAKE2bp, BLAKE2s, BLAKE2sp,
- aimed at portability and simplicity.
-
-* `sse/`: C implementations of BLAKE2b, BLAKE2bp, BLAKE2s, BLAKE2sp,
- optimized for speed on CPUs supporting SSE2, SSSE3, SSE4.1, AVX, or
- XOP.
-
-* `neon/`: Implementations of BLAKE2{s,b} using the NEON/ASIMD ARM instruction set.
-
-* `power8/`: Implementations of BLAKE2{s,b} for POWER8, using the VSX and Altivec extensions.
-
-* `csharp/`: C# implementation of BLAKE2b.
-
-* `b2sum/`: Command line utility to hash files, based on the `sse/`
- implementations.
-
-* `bench/`: Benchmark tool to measure cycles-per-byte speeds and produce
- graphs copyright.
-
-All code is triple-licensed under the [CC0](http://creativecommons.org/publicdomain/zero/1.0), the [OpenSSL Licence](https://www.openssl.org/source/license.html), or the [Apache Public License 2.0](http://www.apache.org/licenses/LICENSE-2.0),
-at your choosing.
-
-More: [https://blake2.net](https://blake2.net).
-
-Contact: contact@blake2.net
diff --git a/deps/BLAKE2/b2sum/README.md b/deps/BLAKE2/b2sum/README.md
deleted file mode 100644
index 1fdaa17..0000000
--- a/deps/BLAKE2/b2sum/README.md
+++ /dev/null
@@ -1,12 +0,0 @@
-# b2sum #
-
-This is a simple tool to create BLAKE2 hashes of files or streams. For more usage information refer to the manpage, e.g., `man b2sum.1`.
-
-## Building and Installing ##
-
-To build `b2sum`, just run `make`. To install, run `make install`. The install path can be altered using the `PREFIX` variable, which defaults to `/usr/local`. Use `PREFIX=/some/path make install` to install somewhere else.
-
-`b2sum` makes use of OpenMP by default. Some compilers do not support this technology, in which case `b2sum` can be built without it using the `NO_OPENMP` variable. Use `NO_OPENMP=1 make` to build without OpenMP.
-
-For OS X, there is a prebuilt [Homebrew formula](https://github.com/Homebrew/homebrew-core/commit/e016cda47dfa298c6628de3e9d0fd976eecd91be) which may be installed with `brew install b2sum`.
-
diff --git a/deps/BLAKE2/b2sum/b2sum.1 b/deps/BLAKE2/b2sum/b2sum.1
deleted file mode 100644
index 36c91cd..0000000
--- a/deps/BLAKE2/b2sum/b2sum.1
+++ /dev/null
@@ -1,93 +0,0 @@
-.Dd February 20, 2016
-.Dt B2SUM 1
-.Os
-.Sh NAME
-.Nm b2sum
-.Nd generate checksums using the BLAKE2 hash function
-.Sh SYNOPSIS
-.Nm
-.Op Fl a Ar algorithm
-.Op Fl l Ar length
-.Op Fl -tag
-.Op Ar file ...
-.Nm
-.Op Fl -help
-.Sh DESCRIPTION
-The
-.Nm
-command generates checksums for files using the BLAKE2 cryptographic
-hash function and writes them to standard output.
-.Pp
-When
-.Op Ar file ...
-is empty or -,
-.Nm
-reads from standard input.
-.Bl -tag -width Ar
-.It Fl a Ar algorithm
-Specify a variant of BLAKE2 to use when generating checksums. The
-variants are listed under the algorithms section, and the default
-is blake2b.
-.It Fl l Ar length
-Specify the digest length in bits. It must not exceed the maximum
-for the variant of BLAKE2 being used, and must be a multiple of 8.
-.It Fl -tag
-Prepend the checksums with
-.Qq "ALGORITHM-NAME (file) =" ,
-a format common on BSD systems.
-.It Fl -help
-Display usage.
-.El
-.Sh ALGORITHMS
-.Bl -tag -width blake2xx
-.It blake2b
-optimized for 64-bit platforms and NEON-enabled ARMs, produces digests
-of any size between 1 and 64 bytes
-.It blake2s
-optimized for 8 to 32-bit platforms, produces digests of any size
-between 1 and 32 bytes
-.It blake2bp
-4-way parallel BLAKE2b
-.It blake2sp
-8-way parallel BLAKE2s
-.El
-.Sh SEE ALSO
-.Xr shasum 1
-.Sh STANDARDS
-.Bl -tag -width "RFC XXXX"
-.It RFC 7693
-The BLAKE2 Cryptographic Hash and Message Authentication Code
-.El
-.Sh AUTHORS
-.Nm
-is part of the
-.Em BLAKE2
-official implementation. BLAKE2 was designed by
-.An -nosplit
-.An "Jean-Philippe Aumasson" ,
-.An "Samuel Neves" ,
-.An "Zooko Wilcox-O'Hearn" , and
-.An "Christian Winnerlein" .
-.Pp
-BLAKE2 is based on the SHA-3 proposal
-.Em BLAKE
-which was designed by
-.An "Jean-Philippe Aumasson" ,
-.An "Luca Henzen" ,
-.An "Willi Meier" , and
-.An "Raphael C.-W. Phan" .
-.Pp
-BLAKE2, like BLAKE, relies on the
-.Em ChaCha20
-stream cipher, designed by
-.An Daniel J. Bernstein .
-.Pp
-A mailing list for BLAKE2 can be subscribed to by sending an empty
-message to
-.Mt info-subscribe@blake2.net .
-.Pp
-The four designers of BLAKE2 can be contacted at
-.Mt contact@blake2.net .
-.Pp
-This manual page was written by
-.Lk https://github.com/Scarletts Scarlett .
diff --git a/deps/BLAKE2/b2sum/b2sum.c b/deps/BLAKE2/b2sum/b2sum.c
deleted file mode 100644
index 7ce2712..0000000
--- a/deps/BLAKE2/b2sum/b2sum.c
+++ /dev/null
@@ -1,387 +0,0 @@
-/*
- BLAKE2 reference source code package - b2sum tool
-
- Copyright 2012, Samuel Neves . You may use this under the
- terms of the CC0, the OpenSSL Licence, or the Apache Public License 2.0, at
- your option. The terms of these licenses can be found at:
-
- - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0
- - OpenSSL license : https://www.openssl.org/source/license.html
- - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0
-
- More information about the BLAKE2 hash function can be found at
- https://blake2.net.
-*/
-
-#include
-#include
-#include
-#include
-#include
-
-#include
-#include
-#include
-#include
-
-#include "blake2.h"
-
-/* This will help compatibility with coreutils */
-int blake2s_stream( FILE *stream, void *resstream, size_t outbytes )
-{
- int ret = -1;
- size_t sum, n;
- blake2s_state S[1];
- static const size_t buffer_length = 32768;
- uint8_t *buffer = ( uint8_t * )malloc( buffer_length );
-
- if( !buffer ) return -1;
-
- blake2s_init( S, outbytes );
-
- while( 1 )
- {
- sum = 0;
-
- while( 1 )
- {
- n = fread( buffer + sum, 1, buffer_length - sum, stream );
- sum += n;
-
- if( buffer_length == sum )
- break;
-
- if( 0 == n )
- {
- if( ferror( stream ) )
- goto cleanup_buffer;
-
- goto final_process;
- }
-
- if( feof( stream ) )
- goto final_process;
- }
-
- blake2s_update( S, buffer, buffer_length );
- }
-
-final_process:;
-
- if( sum > 0 ) blake2s_update( S, buffer, sum );
-
- blake2s_final( S, resstream, outbytes );
- ret = 0;
-cleanup_buffer:
- free( buffer );
- return ret;
-}
-
-int blake2b_stream( FILE *stream, void *resstream, size_t outbytes )
-{
- int ret = -1;
- size_t sum, n;
- blake2b_state S[1];
- static const size_t buffer_length = 32768;
- uint8_t *buffer = ( uint8_t * )malloc( buffer_length );
-
- if( !buffer ) return -1;
-
- blake2b_init( S, outbytes );
-
- while( 1 )
- {
- sum = 0;
-
- while( 1 )
- {
- n = fread( buffer + sum, 1, buffer_length - sum, stream );
- sum += n;
-
- if( buffer_length == sum )
- break;
-
- if( 0 == n )
- {
- if( ferror( stream ) )
- goto cleanup_buffer;
-
- goto final_process;
- }
-
- if( feof( stream ) )
- goto final_process;
- }
-
- blake2b_update( S, buffer, buffer_length );
- }
-
-final_process:;
-
- if( sum > 0 ) blake2b_update( S, buffer, sum );
-
- blake2b_final( S, resstream, outbytes );
- ret = 0;
-cleanup_buffer:
- free( buffer );
- return ret;
-}
-
-int blake2sp_stream( FILE *stream, void *resstream, size_t outbytes )
-{
- int ret = -1;
- size_t sum, n;
- blake2sp_state S[1];
- static const size_t buffer_length = 16 * ( 1UL << 20 );
- uint8_t *buffer = ( uint8_t * )malloc( buffer_length );
-
- if( !buffer ) return -1;
-
- blake2sp_init( S, outbytes );
-
- while( 1 )
- {
- sum = 0;
-
- while( 1 )
- {
- n = fread( buffer + sum, 1, buffer_length - sum, stream );
- sum += n;
-
- if( buffer_length == sum )
- break;
-
- if( 0 == n )
- {
- if( ferror( stream ) )
- goto cleanup_buffer;
-
- goto final_process;
- }
-
- if( feof( stream ) )
- goto final_process;
- }
-
- blake2sp_update( S, buffer, buffer_length );
- }
-
-final_process:;
-
- if( sum > 0 ) blake2sp_update( S, buffer, sum );
-
- blake2sp_final( S, resstream, outbytes );
- ret = 0;
-cleanup_buffer:
- free( buffer );
- return ret;
-}
-
-
-int blake2bp_stream( FILE *stream, void *resstream, size_t outbytes )
-{
- int ret = -1;
- size_t sum, n;
- blake2bp_state S[1];
- static const size_t buffer_length = 16 * ( 1UL << 20 );
- uint8_t *buffer = ( uint8_t * )malloc( buffer_length );
-
- if( !buffer ) return -1;
-
- blake2bp_init( S, outbytes );
-
- while( 1 )
- {
- sum = 0;
-
- while( 1 )
- {
- n = fread( buffer + sum, 1, buffer_length - sum, stream );
- sum += n;
-
- if( buffer_length == sum )
- break;
-
- if( 0 == n )
- {
- if( ferror( stream ) )
- goto cleanup_buffer;
-
- goto final_process;
- }
-
- if( feof( stream ) )
- goto final_process;
- }
-
- blake2bp_update( S, buffer, buffer_length );
- }
-
-final_process:;
-
- if( sum > 0 ) blake2bp_update( S, buffer, sum );
-
- blake2bp_final( S, resstream, outbytes );
- ret = 0;
-cleanup_buffer:
- free( buffer );
- return ret;
-}
-
-typedef int ( *blake2fn )( FILE *, void *, size_t );
-
-
-static void usage( char **argv, int errcode )
-{
- FILE *out = errcode ? stderr : stdout;
- fprintf( out, "Usage: %s [OPTION]... [FILE]...\n", argv[0] );
- fprintf( out, "\n" );
- fprintf( out, "With no FILE, or when FILE is -, read standard input.\n" );
- fprintf( out, "\n" );
- fprintf( out, " -a hash algorithm (blake2b is default): \n"
- " [blake2b|blake2s|blake2bp|blake2sp]\n" );
- fprintf( out, " -l digest length in bits, must not exceed the maximum for\n"
- " the selected algorithm and must be a multiple of 8\n" );
- fprintf( out, " --tag create a BSD-style checksum\n" );
- fprintf( out, " --help display this help and exit\n" );
- exit( errcode );
-}
-
-
-int main( int argc, char **argv )
-{
- blake2fn blake2_stream = blake2b_stream;
- unsigned long maxbytes = BLAKE2B_OUTBYTES;
- const char *algorithm = "BLAKE2b";
- unsigned long outbytes = 0;
- unsigned char hash[BLAKE2B_OUTBYTES] = {0};
- bool bsdstyle = false;
- int c, i;
- opterr = 1;
-
- while( 1 )
- {
- int option_index = 0;
- char *end = NULL;
- unsigned long outbits;
- static struct option long_options[] = {
- { "help", no_argument, 0, 0 },
- { "tag", no_argument, 0, 0 },
- { NULL, 0, NULL, 0 }
- };
-
- c = getopt_long( argc, argv, "a:l:", long_options, &option_index );
- if( c == -1 ) break;
- switch( c )
- {
- case 'a':
- if( 0 == strcmp( optarg, "blake2b" ) )
- {
- blake2_stream = blake2b_stream;
- maxbytes = BLAKE2B_OUTBYTES;
- algorithm = "BLAKE2b";
- }
- else if ( 0 == strcmp( optarg, "blake2s" ) )
- {
- blake2_stream = blake2s_stream;
- maxbytes = BLAKE2S_OUTBYTES;
- algorithm = "BLAKE2s";
- }
- else if ( 0 == strcmp( optarg, "blake2bp" ) )
- {
- blake2_stream = blake2bp_stream;
- maxbytes = BLAKE2B_OUTBYTES;
- algorithm = "BLAKE2bp";
- }
- else if ( 0 == strcmp( optarg, "blake2sp" ) )
- {
- blake2_stream = blake2sp_stream;
- maxbytes = BLAKE2S_OUTBYTES;
- algorithm = "BLAKE2sp";
- }
- else
- {
- printf( "Invalid function name: `%s'\n", optarg );
- usage( argv, 111 );
- }
-
- break;
-
- case 'l':
- outbits = strtoul(optarg, &end, 10);
- if( !end || *end != '\0' || outbits % 8 != 0)
- {
- printf( "Invalid length argument: `%s'\n", optarg);
- usage( argv, 111 );
- }
- outbytes = outbits / 8;
- break;
-
- case 0:
- if( 0 == strcmp( "help", long_options[option_index].name ) )
- usage( argv, 0 );
- else if( 0 == strcmp( "tag", long_options[option_index].name ) )
- bsdstyle = true;
- break;
-
- case '?':
- usage( argv, 1 );
- break;
- }
- }
-
- if(outbytes > maxbytes)
- {
- printf( "Invalid length argument: %lu\n", outbytes * 8 );
- printf( "Maximum digest length for %s is %lu\n", algorithm, maxbytes * 8 );
- usage( argv, 111 );
- }
- else if( outbytes == 0 )
- outbytes = maxbytes;
-
- if( optind == argc )
- argv[argc++] = (char *) "-";
-
- for( i = optind; i < argc; ++i )
- {
- FILE *f = NULL;
- if( argv[i][0] == '-' && argv[i][1] == '\0' )
- f = stdin;
- else
- f = fopen( argv[i], "rb" );
-
- if( !f )
- {
- fprintf( stderr, "Could not open `%s': %s\n", argv[i], strerror( errno ) );
- continue;
- }
-
- if( blake2_stream( f, hash, outbytes ) < 0 )
- {
- fprintf( stderr, "Failed to hash `%s'\n", argv[i] );
- }
- else
- {
- size_t j;
- if( bsdstyle )
- {
- if( outbytes < maxbytes )
- printf( "%s-%lu (%s) = ", algorithm, outbytes * 8, argv[i] );
- else
- printf( "%s (%s) = ", algorithm, argv[i] );
- }
-
- for( j = 0; j < outbytes; ++j )
- printf( "%02x", hash[j] );
-
- if( bsdstyle )
- printf( "\n" );
- else
- printf( " %s\n", argv[i] );
- }
-
- if( f != stdin ) fclose( f );
- }
-
- return 0;
-}
diff --git a/deps/BLAKE2/b2sum/makefile b/deps/BLAKE2/b2sum/makefile
deleted file mode 100644
index c14b9a9..0000000
--- a/deps/BLAKE2/b2sum/makefile
+++ /dev/null
@@ -1,24 +0,0 @@
-PROG=b2sum
-PREFIX?=/usr/local
-MANDIR?=$(PREFIX)/man
-NO_OPENMP?=0
-NO_OPENMP_0=-fopenmp
-NO_OPENMP_1=
-CC?=gcc
-CFLAGS?=-O3 -march=native
-CFLAGS+=-std=c89 -Wall -Wextra -pedantic -Wno-long-long -I../sse
-CFLAGS+=$(NO_OPENMP_$(NO_OPENMP))
-LIBS=
-#FILES=b2sum.c ../ref/blake2b-ref.c ../ref/blake2s-ref.c ../ref/blake2bp-ref.c ../ref/blake2sp-ref.c
-FILES=b2sum.c ../sse/blake2b.c ../sse/blake2s.c ../sse/blake2bp.c ../sse/blake2sp.c
-all: $(FILES)
- $(CC) $(FILES) $(CFLAGS) $(LIBS) -o $(PROG)
-
-clean:
- rm -f $(PROG)
-
-install:
- install -d $(DESTDIR)$(PREFIX)/bin
- install -d $(DESTDIR)$(MANDIR)/man1
- install -m 755 $(PROG) $(DESTDIR)$(PREFIX)/bin
- install -m 644 b2sum.1 $(DESTDIR)$(MANDIR)/man1/$(PROG).1
diff --git a/deps/BLAKE2/bench/bench.c b/deps/BLAKE2/bench/bench.c
deleted file mode 100644
index eeb059f..0000000
--- a/deps/BLAKE2/bench/bench.c
+++ /dev/null
@@ -1,94 +0,0 @@
-/*
- BLAKE2 reference source code package - benchmark tool
-
- Copyright 2012, Samuel Neves . You may use this under the
- terms of the CC0, the OpenSSL Licence, or the Apache Public License 2.0, at
- your option. The terms of these licenses can be found at:
-
- - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0
- - OpenSSL license : https://www.openssl.org/source/license.html
- - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0
-
- More information about the BLAKE2 hash function can be found at
- https://blake2.net.
-*/
-#include
-#include
-#include
-#include
-
-int crypto_hash( unsigned char *out, const unsigned char *in, unsigned long long inlen );
-
-static int bench_cmp( const void *x, const void *y )
-{
- const int64_t *ix = ( const int64_t * )x;
- const int64_t *iy = ( const int64_t * )y;
- return *ix - *iy;
-}
-
-#if defined(__amd64__) || defined(__x86_64__)
-static unsigned long long cpucycles( void ) {
- unsigned long long result;
- __asm__ __volatile__(
- ".byte 15;.byte 49\n"
- "shlq $32,%%rdx\n"
- "orq %%rdx,%%rax\n"
- : "=a" ( result ) :: "%rdx"
- );
- return result;
-}
-#elif defined(__i386__)
-static unsigned long long cpucycles( void ) {
- unsigned long long result;
- __asm__ __volatile__( ".byte 15;.byte 49;" : "=A" ( result ) );
- return result;
-}
-#elif defined(_MSC_VER)
-#include
-static unsigned long long cpucycles( void ) {
- return __rdtsc();
-}
-#else
-#error "Don't know how to count cycles on this platform!"
-#endif
-
-void bench()
-{
-#define BENCH_TRIALS 32
-#define BENCH_MAXLEN 1536
- static unsigned char in[4096];
- static unsigned long long median[4096 + 1];
- int i, j;
- printf( "#bytes median per byte\n" );
-
- /* 1 ... BENCH_MAXLEN */
- for( j = 0; j <= 4096; ++j )
- {
- uint64_t cycles[BENCH_TRIALS + 1];
-
- for( i = 0; i <= BENCH_TRIALS; ++i )
- {
- cycles[i] = cpucycles();
- crypto_hash( in, in, j );
- }
-
- for( i = 0; i < BENCH_TRIALS; ++i )
- cycles[i] = cycles[i + 1] - cycles[i];
-
- qsort( cycles, BENCH_TRIALS, sizeof( uint64_t ), bench_cmp );
- median[j] = cycles[BENCH_TRIALS / 2];
- }
-
- for( j = 0; j <= BENCH_MAXLEN; j += 8 )
- printf( "%5d, %7.2f\n", j, ( double )median[j] / j );
-
- printf( "#2048 %6llu %7.2f\n", median[2048], ( double )median[2048] / 2048.0 );
- printf( "#4096 %6llu %7.2f\n", median[4096], ( double )median[4096] / 4096.0 );
- printf( "#long long %7.2f\n", ( double )( median[4096] - median[2048] ) / 2048.0 );
-}
-
-int main()
-{
- bench();
- return 0;
-}
diff --git a/deps/BLAKE2/bench/do.gplot b/deps/BLAKE2/bench/do.gplot
deleted file mode 100644
index bb7575e..0000000
--- a/deps/BLAKE2/bench/do.gplot
+++ /dev/null
@@ -1,19 +0,0 @@
-maxx = 256
-set xrange [1:maxx]
-set xlabel "bytes "
-set ylabel "cycles"
-set xtics 0,32,maxx
-set grid
-set key left
-
-#set terminal png
-#set output "plotcycles.png"
-set terminal pdfcairo
-set output "plotcycles.pdf"
-
-plot "blake2b.data" using 1:2 with lines title "BLAKE2b"
-replot "blake2s.data" using 1:2 with lines title "BLAKE2s"
-replot "md5.data" using 1:2 with lines title "MD5"
-
-set output "plotcycles.pdf"
-replot
\ No newline at end of file
diff --git a/deps/BLAKE2/bench/makefile b/deps/BLAKE2/bench/makefile
deleted file mode 100644
index b637c82..0000000
--- a/deps/BLAKE2/bench/makefile
+++ /dev/null
@@ -1,20 +0,0 @@
-CC=gcc
-# std to gnu99 to support inline asm
-CFLAGS=-O3 -march=native -Wall -Wextra -DSUPERCOP # -DHAVE_XOP # uncomment on XOP-enabled CPUs
-FILES=bench.c
-
-all: bench
-
-bench: bench.c
- $(CC) $(FILES) $(CFLAGS) ../sse/blake2b.c -o blake2b
- $(CC) $(FILES) $(CFLAGS) ../sse/blake2s.c -o blake2s
- $(CC) $(FILES) $(CFLAGS) md5.c -o md5 -lcrypto -lz
-
-plot: bench
- ./blake2b > blake2b.data
- ./blake2s > blake2s.data
- ./md5 > md5.data
- gnuplot do.gplot
-
-clean:
- rm -f blake2b blake2s md5 plotcycles.pdf blake2b.data blake2s.data md5.data
diff --git a/deps/BLAKE2/bench/md5.c b/deps/BLAKE2/bench/md5.c
deleted file mode 100644
index 14b28d7..0000000
--- a/deps/BLAKE2/bench/md5.c
+++ /dev/null
@@ -1,22 +0,0 @@
-/*
- BLAKE2 reference source code package - benchmark tool
-
- Copyright 2012, Samuel Neves . You may use this under the
- terms of the CC0, the OpenSSL Licence, or the Apache Public License 2.0, at
- your option. The terms of these licenses can be found at:
-
- - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0
- - OpenSSL license : https://www.openssl.org/source/license.html
- - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0
-
- More information about the BLAKE2 hash function can be found at
- https://blake2.net.
-*/
-#include
-#include
-
-int crypto_hash( unsigned char *out, const unsigned char *in, unsigned long long inlen )
-{
- MD5( in, inlen, out );
- return 0;
-}
diff --git a/deps/BLAKE2/csharp/Blake2Sharp.CompressionCodeGen/Blake2Sharp.CompressionCodeGen.csproj b/deps/BLAKE2/csharp/Blake2Sharp.CompressionCodeGen/Blake2Sharp.CompressionCodeGen.csproj
deleted file mode 100644
index e6e2e39..0000000
--- a/deps/BLAKE2/csharp/Blake2Sharp.CompressionCodeGen/Blake2Sharp.CompressionCodeGen.csproj
+++ /dev/null
@@ -1,54 +0,0 @@
-
-
-
-
- Debug
- AnyCPU
- {17466328-5736-4EA1-A88D-CE016CCA2E80}
- Exe
- Properties
- Blake2Sharp.CompressionCodeGen
- Blake2Sharp.CompressionCodeGen
- v3.5
- 512
-
-
- AnyCPU
- true
- full
- false
- bin\Debug\
- DEBUG;TRACE
- prompt
- 4
-
-
- AnyCPU
- pdbonly
- true
- bin\Release\
- TRACE
- prompt
- 4
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/deps/BLAKE2/csharp/Blake2Sharp.CompressionCodeGen/Program.cs b/deps/BLAKE2/csharp/Blake2Sharp.CompressionCodeGen/Program.cs
deleted file mode 100644
index 832abb8..0000000
--- a/deps/BLAKE2/csharp/Blake2Sharp.CompressionCodeGen/Program.cs
+++ /dev/null
@@ -1,93 +0,0 @@
-
-/// BLAKE2 reference source code package - C# implementation
-
-/// Written in 2012 by Christian Winnerlein
-
-/// To the extent possible under law, the author(s) have dedicated all copyright
-/// and related and neighboring rights to this software to the public domain
-/// worldwide. This software is distributed without any warranty.
-
-/// You should have received a copy of the CC0 Public Domain Dedication along with
-/// this software. If not, see .
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-
-namespace Blake2Sharp.CompressionCodeGen
-{
- class Program
- {
- private const int NumberOfRounds = 12;
-
- private static readonly int[] Sigma = new int[NumberOfRounds * 16] {
- 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
- 14, 10, 4, 8, 9, 15, 13, 6, 1, 12, 0, 2, 11, 7, 5, 3,
- 11, 8, 12, 0, 5, 2, 15, 13, 10, 14, 3, 6, 7, 1, 9, 4,
- 7, 9, 3, 1, 13, 12, 11, 14, 2, 6, 5, 10, 4, 0, 15, 8,
- 9, 0, 5, 7, 2, 4, 10, 15, 14, 1, 11, 12, 6, 8, 3, 13,
- 2, 12, 6, 10, 0, 11, 8, 3, 4, 13, 7, 5, 15, 14, 1, 9,
- 12, 5, 1, 15, 14, 13, 4, 10, 0, 7, 6, 3, 9, 2, 8, 11,
- 13, 11, 7, 14, 12, 1, 3, 9, 5, 0, 15, 4, 8, 6, 2, 10,
- 6, 15, 14, 9, 11, 3, 0, 8, 12, 2, 13, 7, 1, 4, 10, 5,
- 10, 2, 8, 4, 7, 6, 1, 5, 15, 11, 9, 14, 3, 12, 13, 0,
- 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
- 14, 10, 4, 8, 9, 15, 13, 6, 1, 12, 0, 2, 11, 7, 5, 3
- };
-
- static void Round(int r)
- {
- Console.WriteLine("// ##### Round({0}) #####", r);
- G(r, 0, 0, 4, 8, 12);
- G(r, 1, 1, 5, 9, 13);
- G(r, 2, 2, 6, 10, 14);
- G(r, 3, 3, 7, 11, 15);
- G(r, 4, 0, 5, 10, 15);
- G(r, 5, 1, 6, 11, 12);
- G(r, 6, 2, 7, 8, 13);
- G(r, 7, 3, 4, 9, 14);
- Console.WriteLine();
- }
-
- static void G(int r, int i, int a, int b, int c, int d)
- {
- int p = (r << 4) + 2 * i;
- int p0 = Sigma[p];
- int p1 = Sigma[p + 1];
-
- string s = @"// G(r, i, a, b, c, d)
- a = a + b + m[" + p0 + @"];
- d ^= a;
- d = " + RotateRight("d", 32) + @";
- c = c + d;
- b ^= c;
- b = " + RotateRight("b", 24) + @";
- a = a + b + m[" + p1 + @"];
- d ^= a;
- d = " + RotateRight("d", 16) + @";
- c = c + d;
- b ^= c;
- b = " + RotateRight("b", 63) + @";";
- s = s.Replace("a", "v" + a);
- s = s.Replace("b", "v" + b);
- s = s.Replace("c", "v" + c);
- s = s.Replace("d", "v" + d);
- s = s.Replace("r", r.ToString());
- s = s.Replace("i", i.ToString());
- s = s.Replace("\t", "");
- Console.WriteLine(s);
- Console.WriteLine();
- }
-
- static string RotateRight(string name, int offset)
- {
- return "((" + name + " >>" + offset + ")|(" + name + " << (64-" + offset + ")))";
- }
-
- static void Main(string[] args)
- {
- for (int r = 0; r < NumberOfRounds; r++)
- Round(r);
- }
- }
-}
diff --git a/deps/BLAKE2/csharp/Blake2Sharp.CompressionCodeGen/Properties/AssemblyInfo.cs b/deps/BLAKE2/csharp/Blake2Sharp.CompressionCodeGen/Properties/AssemblyInfo.cs
deleted file mode 100644
index 8123645..0000000
--- a/deps/BLAKE2/csharp/Blake2Sharp.CompressionCodeGen/Properties/AssemblyInfo.cs
+++ /dev/null
@@ -1,47 +0,0 @@
-
-/// BLAKE2 reference source code package - C# implementation
-
-/// Written in 2012 by Christian Winnerlein
-
-/// To the extent possible under law, the author(s) have dedicated all copyright
-/// and related and neighboring rights to this software to the public domain
-/// worldwide. This software is distributed without any warranty.
-
-/// You should have received a copy of the CC0 Public Domain Dedication along with
-/// this software. If not, see .
-using System.Reflection;
-using System.Runtime.CompilerServices;
-using System.Runtime.InteropServices;
-
-// General Information about an assembly is controlled through the following
-// set of attributes. Change these attribute values to modify the information
-// associated with an assembly.
-[assembly: AssemblyTitle("Blake2Sharp.CompressionCodeGen")]
-[assembly: AssemblyDescription("")]
-[assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("")]
-[assembly: AssemblyProduct("Blake2Sharp.CompressionCodeGen")]
-[assembly: AssemblyCopyright("Copyright © 2012")]
-[assembly: AssemblyTrademark("")]
-[assembly: AssemblyCulture("")]
-
-// Setting ComVisible to false makes the types in this assembly not visible
-// to COM components. If you need to access a type in this assembly from
-// COM, set the ComVisible attribute to true on that type.
-[assembly: ComVisible(false)]
-
-// The following GUID is for the ID of the typelib if this project is exposed to COM
-[assembly: Guid("4af5636c-d52d-464f-a707-94464397988a")]
-
-// Version information for an assembly consists of the following four values:
-//
-// Major Version
-// Minor Version
-// Build Number
-// Revision
-//
-// You can specify all the values or you can default the Build and Revision Numbers
-// by using the '*' as shown below:
-// [assembly: AssemblyVersion("1.0.*")]
-[assembly: AssemblyVersion("1.0.0.0")]
-[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/deps/BLAKE2/csharp/Blake2Sharp.Tests/Blake2Sharp.Tests.csproj b/deps/BLAKE2/csharp/Blake2Sharp.Tests/Blake2Sharp.Tests.csproj
deleted file mode 100644
index 32ac1be..0000000
--- a/deps/BLAKE2/csharp/Blake2Sharp.Tests/Blake2Sharp.Tests.csproj
+++ /dev/null
@@ -1,94 +0,0 @@
-
-
-
- Debug
- AnyCPU
- {A32451B3-03A3-4CB3-AD9F-1408143D6AB7}
- Library
- Properties
- Blake2Sharp.Tests
- Blake2Sharp.Tests
- v3.5
- 512
- {3AC096D0-A1C2-E12C-1390-A8335801FDAB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
- 10.0
- $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)
- $(ProgramFiles)\Common Files\microsoft shared\VSTT\$(VisualStudioVersion)\UITestExtensionPackages
- False
- UnitTest
-
-
- true
- full
- false
- bin\Debug\
- DEBUG;TRACE
- prompt
- 4
-
-
- pdbonly
- true
- bin\Release\
- TRACE
- prompt
- 4
-
-
-
-
- 3.5
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {e21ab364-9130-4f14-abe1-18fa0c089130}
- Blake2Sharp
-
-
-
-
-
-
- False
-
-
- False
-
-
- False
-
-
- False
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/deps/BLAKE2/csharp/Blake2Sharp.Tests/DebugNodeHasher.cs b/deps/BLAKE2/csharp/Blake2Sharp.Tests/DebugNodeHasher.cs
deleted file mode 100644
index d82891a..0000000
--- a/deps/BLAKE2/csharp/Blake2Sharp.Tests/DebugNodeHasher.cs
+++ /dev/null
@@ -1,39 +0,0 @@
-
-/// BLAKE2 reference source code package - C# implementation
-
-/// Written in 2012 by Christian Winnerlein
-
-/// To the extent possible under law, the author(s) have dedicated all copyright
-/// and related and neighboring rights to this software to the public domain
-/// worldwide. This software is distributed without any warranty.
-
-/// You should have received a copy of the CC0 Public Domain Dedication along with
-/// this software. If not, see .
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-
-namespace Blake2Sharp.Tests
-{
- /*class DebugNodeHasher : NodeHasher
- {
- StringBuilder data = new StringBuilder();
-
- public override void Init(int depth, long nodeOffset)
- {
- data.AppendFormat("({0}-{1}", depth, nodeOffset);
- }
-
- public override byte[] Finish(bool isEndOfLayer)
- {
- data.Append(")");
- return Encoding.ASCII.GetBytes(data.ToString());
- }
-
- public override void Update(byte[] data, int start, int count)
- {
- data.Append(Encoding.ASCII.GetString(data, start, count));
- }
- }*/
-}
diff --git a/deps/BLAKE2/csharp/Blake2Sharp.Tests/Properties/AssemblyInfo.cs b/deps/BLAKE2/csharp/Blake2Sharp.Tests/Properties/AssemblyInfo.cs
deleted file mode 100644
index 4162ac5..0000000
--- a/deps/BLAKE2/csharp/Blake2Sharp.Tests/Properties/AssemblyInfo.cs
+++ /dev/null
@@ -1,47 +0,0 @@
-
-/// BLAKE2 reference source code package - C# implementation
-
-/// Written in 2012 by Christian Winnerlein
-
-/// To the extent possible under law, the author(s) have dedicated all copyright
-/// and related and neighboring rights to this software to the public domain
-/// worldwide. This software is distributed without any warranty.
-
-/// You should have received a copy of the CC0 Public Domain Dedication along with
-/// this software. If not, see .
-using System.Reflection;
-using System.Runtime.CompilerServices;
-using System.Runtime.InteropServices;
-
-// General Information about an assembly is controlled through the following
-// set of attributes. Change these attribute values to modify the information
-// associated with an assembly.
-[assembly: AssemblyTitle("Blake2Sharp.Tests")]
-[assembly: AssemblyDescription("")]
-[assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("")]
-[assembly: AssemblyProduct("Blake2Sharp.Tests")]
-[assembly: AssemblyCopyright("Copyright © 2012")]
-[assembly: AssemblyTrademark("")]
-[assembly: AssemblyCulture("")]
-
-// Setting ComVisible to false makes the types in this assembly not visible
-// to COM components. If you need to access a type in this assembly from
-// COM, set the ComVisible attribute to true on that type.
-[assembly: ComVisible(false)]
-
-// The following GUID is for the ID of the typelib if this project is exposed to COM
-[assembly: Guid("4e74ef44-28bc-4b91-9ae9-355e132081ad")]
-
-// Version information for an assembly consists of the following four values:
-//
-// Major Version
-// Minor Version
-// Build Number
-// Revision
-//
-// You can specify all the values or you can default the Build and Revision Numbers
-// by using the '*' as shown below:
-// [assembly: AssemblyVersion("1.0.*")]
-[assembly: AssemblyVersion("1.0.0.0")]
-[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/deps/BLAKE2/csharp/Blake2Sharp.Tests/SequentialTests.cs b/deps/BLAKE2/csharp/Blake2Sharp.Tests/SequentialTests.cs
deleted file mode 100644
index 8863930..0000000
--- a/deps/BLAKE2/csharp/Blake2Sharp.Tests/SequentialTests.cs
+++ /dev/null
@@ -1,76 +0,0 @@
-
-/// BLAKE2 reference source code package - C# implementation
-
-/// Written in 2012 by Christian Winnerlein
-
-/// To the extent possible under law, the author(s) have dedicated all copyright
-/// and related and neighboring rights to this software to the public domain
-/// worldwide. This software is distributed without any warranty.
-
-/// You should have received a copy of the CC0 Public Domain Dedication along with
-/// this software. If not, see .
-using System;
-using System.Linq;
-using Microsoft.VisualStudio.TestTools.UnitTesting;
-
-namespace Blake2Sharp.Tests
-{
- [TestClass]
- public class SequentialTests
- {
- byte[] input = Enumerable.Range(0, 256).Select(i => (byte)i).ToArray();
-
-
- [TestMethod]
- public void CheckTestVectors()
- {
- for (int len = 0; len < TestVectors.UnkeyedBlake2B.Length; len++)
- {
- var input = Enumerable.Range(0, len).Select(i => (byte)i).ToArray();
- var hash = Blake2B.ComputeHash(input);
- string actual = BitConverter.ToString(hash).Replace("-", "");
- string expected = TestVectors.UnkeyedBlake2B[len];
- Assert.AreEqual(expected, actual);
- }
- }
-
- [TestMethod]
- public void CheckKeyedTestVectors()
- {
- var key = Enumerable.Range(0, 64).Select(i => (byte)i).ToArray();
- for (int len = 0; len < TestVectors.KeyedBlake2B.Length; len++)
- {
- var input = Enumerable.Range(0, len).Select(i => (byte)i).ToArray();
- var hash = Blake2B.ComputeHash(input, new Blake2BConfig { Key = key });
- string actual = BitConverter.ToString(hash).Replace("-", "");
- string expected = TestVectors.KeyedBlake2B[len];
- Assert.AreEqual(expected, actual);
- }
- }
-
- [TestMethod]
- public void Splits()
- {
- var hasher = Blake2B.Create();
- for (int len = 0; len <= 256; len++)
- {
- hasher.Init();
- hasher.Update(input, 0, len);
- string hash0 = BitConverter.ToString(hasher.Finish());
-
- for (int split1 = 0; split1 <= len; split1++)
- {
- for (int split2 = split1; split2 <= len; split2++)
- {
- hasher.Init();
- hasher.Update(input, 0, split1);
- hasher.Update(input, split1, split2 - split1);
- hasher.Update(input, split2, len - split2);
- string hash1 = BitConverter.ToString(hasher.Finish());
- Assert.AreEqual(hash0, hash1);
- }
- }
- }
- }
- }
-}
diff --git a/deps/BLAKE2/csharp/Blake2Sharp.Tests/TestVectors.cs b/deps/BLAKE2/csharp/Blake2Sharp.Tests/TestVectors.cs
deleted file mode 100644
index f64ae13..0000000
--- a/deps/BLAKE2/csharp/Blake2Sharp.Tests/TestVectors.cs
+++ /dev/null
@@ -1,539 +0,0 @@
-
-/// BLAKE2 reference source code package - C# implementation
-
-/// Written in 2012 by Christian Winnerlein
-
-/// To the extent possible under law, the author(s) have dedicated all copyright
-/// and related and neighboring rights to this software to the public domain
-/// worldwide. This software is distributed without any warranty.
-
-/// You should have received a copy of the CC0 Public Domain Dedication along with
-/// this software. If not, see .
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-
-namespace Blake2Sharp.Tests
-{
- internal static class TestVectors
- {
- public static string[] UnkeyedBlake2B = new string[]{
- "786A02F742015903C6C6FD852552D272912F4740E15847618A86E217F71F5419D25E1031AFEE585313896444934EB04B903A685B1448B755D56F701AFE9BE2CE",
- "2FA3F686DF876995167E7C2E5D74C4C7B6E48F8068FE0E44208344D480F7904C36963E44115FE3EB2A3AC8694C28BCB4F5A0F3276F2E79487D8219057A506E4B",
- "1C08798DC641ABA9DEE435E22519A4729A09B2BFE0FF00EF2DCD8ED6F8A07D15EAF4AEE52BBF18AB5608A6190F70B90486C8A7D4873710B1115D3DEBBB4327B5",
- "40A374727302D9A4769C17B5F409FF32F58AA24FF122D7603E4FDA1509E919D4107A52C57570A6D94E50967AEA573B11F86F473F537565C66F7039830A85D186",
- "77DDF4B14425EB3D053C1E84E3469D92C4CD910ED20F92035E0C99D8A7A86CECAF69F9663C20A7AA230BC82F60D22FB4A00B09D3EB8FC65EF547FE63C8D3DDCE",
- "CBAA0BA7D482B1F301109AE41051991A3289BC1198005AF226C5E4F103B66579F461361044C8BA3439FF12C515FB29C52161B7EB9C2837B76A5DC33F7CB2E2E8",
- "F95D45CF69AF5C2023BDB505821E62E85D7CAEDF7BEDA12C0248775B0C88205EEB35AF3A90816F6608CE7DD44EC28DB1140614E1DDEBF3AA9CD1843E0FAD2C36",
- "8F945BA700F2530E5C2A7DF7D5DCE0F83F9EFC78C073FE71AE1F88204A4FD1CF70A073F5D1F942ED623AA16E90A871246C90C45B621B3401A5DDBD9DF6264165",
- "E998E0DC03EC30EB99BB6BFAAF6618ACC620320D7220B3AF2B23D112D8E9CB1262F3C0D60D183B1EE7F096D12DAE42C958418600214D04F5ED6F5E718BE35566",
- "6A9A090C61B3410AEDE7EC9138146CEB2C69662F460C3DA53C6515C1EB31F41CA3D280E567882F95CF664A94147D78F42CFC714A40D22EF19470E053493508A2",
- "29102511D749DB3CC9B4E335FA1F5E8FACA8421D558F6A3F3321D50D044A248BA595CFC3EFD3D2ADC97334DA732413F5CBF4751C362BA1D53862AC1E8DABEEE8",
- "C97A4779D47E6F77729B5917D0138ABB35980AB641BD73A8859EB1AC98C05362ED7D608F2E9587D6BA9E271D343125D40D933A8ED04EC1FE75EC407C7A53C34E",
- "10F0DC91B9F845FB95FAD6860E6CE1ADFA002C7FC327116D44D047CD7D5870D772BB12B5FAC00E02B08AC2A0174D0446C36AB35F14CA31894CD61C78C849B48A",
- "DEA9101CAC62B8F6A3C650F90EEA5BFAE2653A4EAFD63A6D1F0F132DB9E4F2B1B662432EC85B17BCAC41E775637881F6AAB38DD66DCBD080F0990A7A6E9854FE",
- "441FFAA08CD79DFF4AFC9B9E5B5620EEC086730C25F661B1D6FBFBD1CEC3148DD72258C65641F2FCA5EB155FADBCABB13C6E21DC11FAF72C2A281B7D56145F19",
- "444B240FE3ED86D0E2EF4CE7D851EDDE22155582AA0914797B726CD058B6F45932E0E129516876527B1DD88FC66D7119F4AB3BED93A61A0E2D2D2AEAC336D958",
- "BFBABBEF45554CCFA0DC83752A19CC35D5920956B301D558D772282BC867009168E9E98606BB5BA73A385DE5749228C925A85019B71F72FE29B3CD37CA52EFE6",
- "9C4D0C3E1CDBBF485BEC86F41CEC7C98373F0E09F392849AAA229EBFBF397B22085529CB7EF39F9C7C2222A514182B1EFFAA178CC3687B1B2B6CBCB6FDEB96F8",
- "477176B3BFCBADD7657C23C24625E4D0D674D1868F006006398AF97AA41877C8E70D3D14C3BBC9BBCDCEA801BD0E1599AF1F3EEC67405170F4E26C964A57A8B7",
- "A78C490EDA3173BB3F10DEE52F110FB1C08E0302230B85DDD7C11257D92DE148785EF00C039C0BB8EB9808A35B2D8C080F572859714C9D4069C5BCAF090E898E",
- "58D023397BEB5B4145CB2255B07D74290B36D9FD1E594AFBD8EEA47C205B2EFBFE6F46190FAF95AF504AB072E36F6C85D767A321BFD7F22687A4ABBF494A689C",
- "4001EC74D5A46FD29C2C3CDBE5D1B9F20E51A941BE98D2A4E1E2FBF866A672121DB6F81A514CFD10E7358D571BDBA48E4CE708B9D124894BC0B5ED554935F73A",
- "CCD1B22DAB6511225D2401EA2D8625D206A12473CC732B615E5640CEFFF0A4ADF971B0E827A619E0A80F5DB9CCD0962329010D07E34A2064E731C520817B2183",
- "B4A0A9E3574EDB9E1E72AA31E39CC5F30DBF943F8CABC408449654A39131E66D718A18819143E3EA96B4A1895988A1C0056CF2B6E04F9AC19D657383C2910C44",
- "447BECAB16630608D39F4F058B16F7AF95B85A76AA0FA7CEA2B80755FB76E9C804F2CA78F02643C915FBF2FCE5E19DE86000DE03B18861815A83126071F8A37B",
- "54E6DAB9977380A5665822DB93374EDA528D9BEB626F9B94027071CB26675E112B4A7FEC941EE60A81E4D2EA3FF7BC52CFC45DFBFE735A1C646B2CF6D6A49B62",
- "3EA62625949E3646704D7E3C906F82F6C028F540F5F72A794B0C57BF97B7649BFEB90B01D3CA3E829DE21B3826E6F87014D3C77350CB5A15FF5D468A81BEC160",
- "213CFE145C54A33691569980E5938C8883A46D84D149C8FF1A67CD287B4D49C6DA69D3A035443DB085983D0EFE63706BD5B6F15A7DA459E8D50A19093DB55E80",
- "5716C4A38F38DB104E494A0A27CBE89A26A6BB6F499EC01C8C01AA7CB88497E75148CD6EEE12A7168B6F78AB74E4BE749251A1A74C38C86D6129177E2889E0B6",
- "030460A98BDF9FF17CD96404F28FC304F2B7C04EAADE53677FD28F788CA22186B8BC80DD21D17F8549C711AFF0E514E19D4E15F5990252A03E082F28DC2052F6",
- "19E7F1CCEE88A10672333E390CF22013A8C734C6CB9EAB41F17C3C8032A2E4ACA0569EA36F0860C7A1AF28FA476840D66011168859334A9E4EF9CC2E61A0E29E",
- "29F8B8C78C80F2FCB4BDF7825ED90A70D625FF785D262677E250C04F3720C888D03F8045E4EDF3F5285BD39D928A10A7D0A5DF00B8484AC2868142A1E8BEA351",
- "5C52920A7263E39D57920CA0CB752AC6D79A04FEF8A7A216A1ECB7115CE06D89FD7D735BD6F4272555DBA22C2D1C96E6352322C62C5630FDE0F4777A76C3DE2C",
- "83B098F262251BF660064A9D3511CE7687A09E6DFBB878299C30E93DFB43A9314DB9A600337DB26EBEEDAF2256A96DABE9B29E7573AD11C3523D874DDE5BE7ED",
- "9447D98AA5C9331352F43D3E56D0A9A9F9581865998E2885CC56DD0A0BD5A7B50595BD10F7529BCD31F37DC16A1465D594079667DA2A3FCB70401498837CEDEB",
- "867732F2FEEB23893097561AC710A4BFF453BE9CFBEDBA8BA324F9D312A82D732E1B83B829FDCD177B882CA0C1BF544B223BE529924A246A63CF059BFDC50A1B",
- "F15AB26D4CDFCF56E196BB6BA170A8FCCC414DE9285AFD98A3D3CF2FB88FCBC0F19832AC433A5B2CC2392A4CE34332987D8D2C2BEF6C3466138DB0C6E42FA47B",
- "2813516D68ED4A08B39D648AA6AACD81E9D655ECD5F0C13556C60FDF0D333EA38464B36C02BACCD746E9575E96C63014F074AE34A0A25B320F0FBEDD6ACF7665",
- "D3259AFCA8A48962FA892E145ACF547F26923AE8D4924C8A531581526B04B44C7AF83C643EF5A0BC282D36F3FB04C84E28B351F40C74B69DC7840BC717B6F15F",
- "F14B061AE359FA31B989E30332BFE8DE8CC8CDB568E14BE214A2223B84CAAB7419549ECFCC96CE2ACEC119485D87D157D3A8734FC426597D64F36570CEAF224D",
- "55E70B01D1FBF8B23B57FB62E26C2CE54F13F8FA2464E6EB98D16A6117026D8B90819012496D4071EBE2E59557ECE3519A7AA45802F9615374877332B73490B3",
- "25261EB296971D6E4A71B2928E64839C67D422872BF9F3C31993615222DE9F8F0B2C4BE8548559B4B354E736416E3218D4E8A1E219A4A6D43E1A9A521D0E75FC",
- "08307F347C41294E34BB54CB42B1522D22F824F7B6E5DB50FDA096798E181A8F026FA27B4AE45D52A62CAF9D5198E24A4913C6671775B2D723C1239BFBF016D7",
- "1E5C62E7E9BFA1B118747A2DE08B3CA10112AF96A46E4B22C3FC06F9BFEE4EB5C49E057A4A4886234324572576BB9B5ECFDE0D99B0DE4F98EC16E4D1B85FA947",
- "C74A77395FB8BC126447454838E561E962853DC7EB49A1E3CB67C3D0851F3E39517BE8C350AC910903D49CD2BFDF545C99316D0346170B739F0ADD5D533C2CFC",
- "0DD57B423CC01EB2861391EB886A0D17079B933FC76EB3FC08A19F8A74952CB68F6BCDC644F77370966E4D13E80560BCF082EF0479D48FBBAB4DF03B53A4E178",
- "4D8DC3923EDCCDFCE70072398B8A3DA5C31FCB3EE3B645C85F717CBAEB4B673A19394425A585BFB464D92F1597D0B754D163F97CED343B25DB5A70EF48EBB34F",
- "F0A50553E4DFB0C4E3E3D3BA82034857E3B1E50918F5B8A7D698E10D242B0FB544AF6C92D0C3AAF9932220416117B4E78ECB8A8F430E13B82A5915290A5819C5",
- "B15543F3F736086627CC5365E7E8988C2EF155C0FD4F428961B00D1526F04D6D6A658B4B8ED32C5D8621E7F4F8E8A933D9ECC9DD1B8333CBE28CFC37D9719E1C",
- "7B4FA158E415FEF023247264CBBE15D16D91A44424A8DB707EB1E2033C30E9E1E7C8C0864595D2CB8C580EB47E9D16ABBD7E44E824F7CEDB7DEF57130E52CFE9",
- "60424FF23234C34DC9687AD502869372CC31A59380186BC2361C835D972F49666EB1AC69629DE646F03F9B4DB9E2ACE093FBFDF8F20AB5F98541978BE8EF549F",
- "7406018CE704D84F5EB9C79FEA97DA345699468A350EE0B2D0F3A4BF2070304EA862D72A51C57D3064947286F531E0EAF7563702262E6C724ABF5ED8C8398D17",
- "14EF5C6D647B3BD1E6E32006C231199810DE5C4DC88E70240273B0EA18E651A3EB4F5CA3114B8A56716969C7CDA27E0C8DB832AD5E89A2DC6CB0ADBE7D93ABD1",
- "38CF6C24E3E08BCF1F6CF3D1B1F65B905239A3118033249E448113EC632EA6DC346FEEB2571C38BD9A7398B2221280328002B23E1A45ADAFFE66D93F6564EAA2",
- "6CD7208A4BC7E7E56201BBBA02A0F489CD384ABE40AFD4222F158B3D986EE72A54C50FB64FD4ED2530EDA2C8AF2928A0DA6D4F830AE1C9DB469DFD970F12A56F",
- "659858F0B5C9EDAB5B94FD732F6E6B17C51CC096104F09BEB3AFC3AA467C2ECF885C4C6541EFFA9023D3B5738AE5A14D867E15DB06FE1F9D1127B77E1AABB516",
- "26CCA0126F5D1A813C62E5C71001C046F9C92095704550BE5873A495A999AD010A4F79491F24F286500ADCE1A137BC2084E4949F5B7294CEFE51ECAFF8E95CBA",
- "4147C1F55172788C5567C561FEEF876F621FFF1CE87786B8467637E70DFBCD0DBDB6415CB600954AB9C04C0E457E625B407222C0FE1AE21B2143688ADA94DC58",
- "5B1BF154C62A8AF6E93D35F18F7F90ABB16A6EF0E8D1AECD118BF70167BAB2AF08935C6FDC0663CE74482D17A8E54B546D1C296631C65F3B522A515839D43D71",
- "9F600419A4E8F4FB834C24B0F7FC13BF4E279D98E8A3C765EE934917403E3A66097182EA21453CB63EBBE8B73A9C2167596446438C57627F330BADD4F569F7D6",
- "457EF6466A8924FD8011A34471A5A1AC8CCD9BD0D07A97414AC943021CE4B9E4B9C8DB0A28F016ED43B1542481990022147B313E194671131E708DD43A3ED7DC",
- "9997B2194D9AF6DFCB9143F41C0ED83D3A3F4388361103D38C2A49B280A581212715FD908D41C651F5C715CA38C0CE2830A37E00E508CED1BCDC320E5E4D1E2E",
- "5C6BBF16BAA180F986BD40A1287ED4C549770E7284858FC47BC21AB95EBBF3374B4EE3FD9F2AF60F3395221B2ACC76F2D34C132954049F8A3A996F1E32EC84E5",
- "D10BF9A15B1C9FC8D41F89BB140BF0BE08D2F3666176D13BAAC4D381358AD074C9D4748C300520EB026DAEAEA7C5B158892FDE4E8EC17DC998DCD507DF26EB63",
- "2FC6E69FA26A89A5ED269092CB9B2A449A4409A7A44011EECAD13D7C4B0456602D402FA5844F1A7A758136CE3D5D8D0E8B86921FFFF4F692DD95BDC8E5FF0052",
- "FCBE8BE7DCB49A32DBDF239459E26308B84DFF1EA480DF8D104EEFF34B46FAE98627B450C2267D48C0946A697C5B59531452AC0484F1C84E3A33D0C339BB2E28",
- "A19093A6E3BCF5952F850F2030F69B9606F147F90B8BAEE3362DA71D9F35B44EF9D8F0A7712BA1877FDDCD2D8EA8F1E5A773D0B745D4725605983A2DE901F803",
- "3C2006423F73E268FA59D2920377EB29A4F9A8B462BE15983EE3B85AE8A78E992633581A9099893B63DB30241C34F643027DC878279AF5850D7E2D4A2653073A",
- "D0F2F2E3787653F77CCE2FA24835785BBD0C433FC779465A115149905A9DD1CB827A628506D457FCF124A0C2AEF9CE2D2A0A0F63545570D8667FF9E2EBA07334",
- "78A9FC048E25C6DCB5DE45667DE8FFDD3A93711141D594E9FA62A959475DA6075EA8F0916E84E45AD911B75467077EE52D2C9AEBF4D58F20CE4A3A00458B05D4",
- "45813F441769AB6ED37D349FF6E72267D76AE6BB3E3C612EC05C6E02A12AF5A37C918B52BF74267C3F6A3F183A8064FF84C07B193D08066789A01ACCDB6F9340",
- "956DA1C68D83A7B881E01B9A966C3C0BF27F68606A8B71D457BD016D4C41DD8A380C709A296CB4C6544792920FD788835771A07D4A16FB52ED48050331DC4C8B",
- "DF186C2DC09CAA48E14E942F75DE5AC1B7A21E4F9F072A5B371E09E07345B0740C76177B01278808FEC025EDED9822C122AFD1C63E6F0CE2E32631041063145C",
- "87475640966A9FDCD6D3A3B5A2CCA5C08F0D882B10243C0EC1BF3C6B1C37F2CD3212F19A057864477D5EAF8FAED73F2937C768A0AF415E84BBCE6BD7DE23B660",
- "C3B573BBE10949A0FBD4FF884C446F2229B76902F9DFDBB8A0353DA5C83CA14E8151BBAAC82FD1576A009ADC6F1935CF26EDD4F1FB8DA483E6C5CD9D8923ADC3",
- "B09D8D0BBA8A7286E43568F7907550E42036D674E3C8FC34D8CA46F771D6466B70FB605875F6A863C877D12F07063FDC2E90CCD459B1910DCD52D8F10B2B0A15",
- "AF3A22BF75B21ABFB0ACD54422BA1B7300A952EFF02EBEB65B5C234471A98DF32F4F9643CE1904108A168767924280BD76C83F8C82D9A79D9259B195362A2A04",
- "BF4FF2221B7E6957A724CD964AA3D5D0D9941F540413752F4699D8101B3E537508BF09F8508B317736FFD265F2847AA7D84BD2D97569C49D632AED9945E5FA5E",
- "9C6B6B78199B1BDACB4300E31479FA622A6B5BC80D4678A6078F88A8268CD7206A2799E8D4621A464EF6B43DD8ADFFE97CAF221B22B6B8778B149A822AEFBB09",
- "890656F09C99D280B5ECB381F56427B813751BC652C7828078B23A4AF83B4E3A61FDBAC61F89BEE84EA6BEE760C047F25C6B0A201C69A38FD6FD971AF18588BB",
- "31A046F7882FFE6F83CE472E9A0701832EC7B3F76FBCFD1DF60FE3EA48FDE1651254247C3FD95E100F9172731E17FD5297C11F4BB328363CA361624A81AF797C",
- "27A60B2D00E7A671D47D0AEC2A686A0AC04B52F40AB6629028EB7D13F4BAA99AC0FE46EE6C814944F2F4B4D20E9378E4847EA44C13178091E277B87EA7A55711",
- "8B5CCEF194162C1F19D68F91E0B0928F289EC5283720840C2F73D253111238DCFE94AF2B59C2C1CA2591901A7BC060E7459B6C47DF0F71701A35CC0AA831B5B6",
- "57AB6C4B2229AEB3B70476D803CD63812F107CE6DA17FED9B17875E8F86C724F49E024CBF3A1B8B119C50357652B81879D2ADE2D588B9E4F7CEDBA0E4644C9EE",
- "0190A8DAC320A739F322E15731AA140DDAF5BED294D5C82E54FEF29F214E18AAFAA84F8BE99AF62950266B8F901F15DD4C5D35516FC35B4CAB2E96E4695BBE1C",
- "D14D7C4C415EEB0E10B159224BEA127EBD84F9591C702A330F5BB7BB7AA44EA39DE6ED01F18DA7ADF40CFB97C5D152C27528824B21E239526AF8F36B214E0CFB",
- "BE28C4BE706970488FAC7D29C3BD5C4E986085C4C3332F1F3FD30973DB614164BA2F31A78875FFDC150325C88327A9443ED04FDFE5BE93876D1628560C764A80",
- "031DA1069E3A2E9C3382E436FFD79DF74B1CA6A8ADB2DEABE676AB45994CBC054F037D2F0EACE858D32C14E2D1C8B46077308E3BDC2C1B53172ECF7A8C14E349",
- "4665CEF8BA4DB4D0ACB118F2987F0BB09F8F86AA445AA3D5FC9A8B346864787489E8FCECC125D17E9B56E12988EAC5ECC7286883DB0661B8FF05DA2AFFF30FE4",
- "63B7032E5F930CC9939517F9E986816CFBEC2BE59B9568B13F2EAD05BAE7777CAB620C6659404F7409E4199A3BE5F7865AA7CBDF8C4253F7E8219B1BD5F46FEA",
- "9F09BF093A2B0FF8C2634B49E37F1B2135B447AA9144C9787DBFD92129316C99E88AAB8A21FDEF2372D1189AEC500F95775F1F92BFB45545E4259FB9B7B02D14",
- "F9F8493C68088807DF7F6A2693D64EA59F03E9E05A223E68524CA32195A4734B654FCEA4D2734C866CF95C889FB10C49159BE2F5043DC98BB55E02EF7BDCB082",
- "3C9A7359AB4FEBCE07B20AC447B06A240B7FE1DAE5439C49B60B5819F7812E4C172406C1AAC316713CF0DDED1038077258E2EFF5B33913D9D95CAEB4E6C6B970",
- "AD6AAB8084510E822CFCE8625D62CF4DE655F4763884C71E80BAB9AC9D5318DBA4A6033ED29084E65216C031606CA17615DCFE3BA11D26851AE0999CA6E232CF",
- "156E9E6261374C9DC884F36E70F0FE1AB9297997B836FA7D170A9C9EBF575B881E7BCEA44D6C0248D35597907154828955BE19135852F9228815ECA024A8ADFB",
- "4215407633F4CCA9B6788BE93E6AA3D963C7D6CE4B147247099F46A3ACB500A30038CB3E788C3D29F132AD844E80E9E99251F6DB96ACD8A091CFC770AF53847B",
- "1C077E279DE6548523502B6DF800FFDAB5E2C3E9442EB838F58C295F3B147CEF9D701C41C321283F00C71AFFA0619310399126295B78DD4D1A74572EF9ED5135",
- "F07A555F49FE481CF4CD0A87B71B82E4A95064D06677FDD90A0EB598877BA1C83D4677B393C3A3B6661C421F5B12CB99D20376BA7275C2F3A8F5A9B7821720DA",
- "B5911B380D20C7B04323E4026B38E200F534259233B581E02C1E3E2D8438D6C66D5A4EB201D5A8B75072C4EC29106334DA70BC79521B0CED2CFD533F5FF84F95",
- "01F070A09BAE911296361F91AA0E8E0D09A7725478536D9D48C5FE1E5E7C3C5B9B9D6EB07796F6DA57AE562A7D70E882E37ADFDE83F0C433C2CD363536BB22C8",
- "6F793EB4374A48B0775ACAF9ADCF8E45E54270C9475F004AD8D5973E2ACA52747FF4ED04AE967275B9F9EB0E1FF75FB4F794FA8BE9ADD7A41304868D103FAB10",
- "965F20F139765FCC4CE4BA3794675863CAC24DB472CD2B799D035BCE3DBEA502DA7B524865F6B811D8C5828D3A889646FE64A380DA1AA7C7044E9F245DCED128",
- "EC295B5783601244C30E4641E3B45BE222C4DCE77A58700F53BC8EC52A941690B4D0B087FB6FCB3F39832B9DE8F75EC20BD43079811749CDC907EDB94157D180",
- "61C72F8CCC91DBB54CA6750BC489672DE09FAEDB8FDD4F94FF2320909A303F5D5A98481C0BC1A625419FB4DEBFBF7F8A53BB07EC3D985E8EA11E72D559940780",
- "AFD8145B259EEFC8D12620C3C5B03E1ED8FD2CCEFE0365078C80FD42C1770E28B44948F27E65A1886690110DB814397B68E43D80D1BA16DFA358E739C898CFA3",
- "552FC7893CF1CE933ADA35C0DA98844E41545E244C3157A1428D7B4C21F9CD7E4071AED77B7CA9F1C38FBA32237412EF21A342742EC8324378F21E507FAFDD88",
- "467A33FBADF5EBC52596EF86AAAEFC6FABA8EE651B1CE04DE368A03A5A9040EF2835E00ADB09ABB3FBD2BCE818A2413D0B0253B5BDA4FC5B2F6F85F3FD5B55F2",
- "22EFF8E6DD5236F5F57D94EDE874D6C9428E8F5D566F17CD6D1848CD752FE13C655CB10FBAAFF76872F2BF2DA99E15DC624075E1EC2F58A3F64072121838569E",
- "9CEC6BBF62C4BCE4138ABAE1CBEC8DAD31950444E90321B1347196834C114B864AF3F3CC3508F83751FFB4EDA7C84D140734BB4263C3625C00F04F4C8068981B",
- "A8B60FA4FC2442F6F1514AD7402626920CC7C2C9F72124B8CBA8EE2CB7C4586F658A4410CFFCC0AB88343955E094C6AF0D20D0C714FB0A988F543F300F58D389",
- "8271CC45DFA5E4170E847E8630B952CF9C2AA777D06F26A7585B8381F188DACC7337391CFCC94B053DC4EC29CC17F077870428F1AC23FDDDA165EF5A3F155F39",
- "BF23C0C25C8060E4F6995F1623A3BEBECAA96E308680000A8AA3CD56BB1A6DA099E10D9231B37F4519B2EFD2C24DE72F31A5F19535241B4A59FA3C03CEB790E7",
- "877FD652C05281009C0A5250E7A3A671F8B18C108817FE4A874DE22DA8E45DB11958A600C5F62E67D36CBF84474CF244A9C2B03A9FB9DC711CD1A2CAB6F3FAE0",
- "29DF4D87EA444BAF5BCDF5F4E41579E28A67DE84149F06C03F110EA84F572A9F676ADDD04C4878F49C5C00ACCDA441B1A387CACEB2E993BB7A10CD8C2D6717E1",
- "710DACB166844639CD7B637C274209424E2449DC35D790BBFA4F76177054A36B3B76FAC0CA6E61DF1E687000678AC0746DF75D0A3954897681FD393A155A1BB4",
- "C1D5F93B8DEA1F2571BABCCBC01764541A0CDA87E444D673C50966CA559C33354B3ACB26E5D5781FFB28847A4B4754D77008C62A835835F500DEA7C3B58BDAE2",
- "A41E41271CDAB8AF4D72B104BFB2AD041AC4DF14677DA671D85640C4B187F50C2B66513C4619FBD5D5DC4FE65DD37B9042E9848DDA556A504CAA2B1C6AFE4730",
- "E7BCBACDC379C43D81EBADCB37781552FC1D753E8CF310D968392D06C91F1D64CC9E90CE1D22C32D277FC6CDA433A4D442C762E9EACF2C259F32D64CF9DA3A22",
- "51755B4AC5456B13218A19C5B9242F57C4A981E4D4ECDCE09A3193362B808A579345D4881C2607A56534DD7F21956AFF72C2F4173A6E7B6CC2212BA0E3DAEE1F",
- "DCC2C4BEB9C1F2607B786C20C631972347034C1CC02FCC7D02FF01099CFE1C6989840AC213923629113AA8BAD713CCF0FE4CE13264FB32B8B0FE372DA382544A",
- "3D55176ACEA4A7E3A65FFA9FB10A7A1767199CF077CEE9F71532D67CD7C73C9F93CFC37CCDCC1FDEF50AAD46A504A650D298D597A3A9FA95C6C40CB71FA5E725",
- "D07713C005DE96DD21D2EB8BBECA66746EA51A31AE922A3E74864889540A48DB27D7E4C90311638B224BF0201B501891754848113C266108D0ADB13DB71909C7",
- "58983C21433D950CAA23E4BC18543B8E601C204318532152DAF5E159A0CD1480183D29285C05F129CB0CC3164687928086FFE380158DF1D394C6AC0D4288BCA8",
- "8100A8DC528D2B682AB4250801BA33F02A3E94C54DAC0AE1482AA21F51EF3A82F3807E6FACB0AEB05947BF7AA2ADCB034356F90FA4560EDE02201A37E411EC1A",
- "07025F1BB6C784F3FE49DE5C14B936A5ACACACAAB33F6AC4D0E00AB6A12483D6BEC00B4FE67C7CA5CC508C2A53EFB5BFA5398769D843FF0D9E8B14D36A01A77F",
- "BA6AEFD972B6186E027A76273A4A723321A3F580CFA894DA5A9CE8E721C828552C64DACEE3A7FD2D743B5C35AD0C8EFA71F8CE99BF96334710E2C2346E8F3C52",
- "E0721E02517AEDFA4E7E9BA503E025FD46E714566DC889A84CBFE56A55DFBE2FC4938AC4120588335DEAC8EF3FA229ADC9647F54AD2E3472234F9B34EFC46543",
- "B6292669CCD38D5F01CAAE96BA272C76A879A45743AFA0725D83B9EBB26665B731F1848C52F11972B6644F554C064FA90780DBBBF3A89D4FC31F67DF3E5857EF",
- "2319E3789C47E2DAA5FE807F61BEC2A1A6537FA03F19FF32E87EECBFD64B7E0E8CCFF439AC333B040F19B0C4DDD11A61E24AC1FE0F10A039806C5DCC0DA3D115",
- "F59711D44A031D5F97A9413C065D1E614C417EDE998590325F49BAD2FD444D3E4418BE19AEC4E11449AC1A57207898BC57D76A1BCF3566292C20C683A5C4648F",
- "DF0A9D0C212843A6A934E3902B2DD30D17FBA5F969D2030B12A546D8A6A45E80CF5635F071F0452E9C919275DA99BED51EB1173C1AF0518726B75B0EC3BAE2B5",
- "A3EB6E6C7BF2FB8B28BFE8B15E15BB500F781ECC86F778C3A4E655FC5869BF2846A245D4E33B7B14436A17E63BE79B36655C226A50FFBC7124207B0202342DB5",
- "56D4CBCD070563426A017069425C2CD2AE540668287A5FB9DAC432EB8AB1A353A30F2FE1F40D83333AFE696A267795408A92FE7DA07A0C1814CF77F36E105EE8",
- "E59B9987D428B3EDA37D80ABDB16CD2B0AEF674C2B1DDA4432EA91EE6C935C684B48B4428A8CC740E579A30DEFF35A803013820DD23F14AE1D8413B5C8672AEC",
- "CD9FCC99F99D4CC16D031900B2A736E1508DB4B586814E6345857F354A70CCECB1DF3B50A19ADAF43C278EFA423FF4BB6C523EC7FD7859B97B168A7EBFF8467C",
- "0602185D8C3A78738B99164B8BC6FFB21C7DEBEBBF806372E0DA44D121545597B9C662A255DC31542CF995ECBE6A50FB5E6E0EE4EF240FE557EDED1188087E86",
- "C08AFA5B927BF08097AFC5FFF9CA4E7800125C1F52F2AF3553FA2B89E1E3015C4F87D5E0A48956AD31450B083DAD147FFB5EC03434A26830CF37D103AB50C5DA",
- "36F1E1C11D6EF6BC3B536D505D544A871522C5C2A253067EC9933B6EC25464DAF985525F5B9560A16D890259AC1BB5CC67C0C469CDE133DEF000EA1D686F4F5D",
- "BF2AB2E2470F5438C3B689E66E7686FFFA0CB1E1798AD3A86FF99075BF6138E33D9C0CE59AFB24AC67A02AF34428191A9A0A6041C07471B7C3B1A752D6FC0B8B",
- "D400601F9728CCC4C92342D9787D8D28AB323AF375CA5624B4BB91D17271FBAE862E413BE73F1F68E615B8C5C391BE0DBD9144746EB339AD541547BA9C468A17",
- "79FE2FE157EB85A038ABB8EBBC647731D2C83F51B0AC6EE14AA284CB6A3549A4DCCEB300740A825F52F5FB30B03B8C4D8B0F4AA67A63F4A94E3303C4EDA4C02B",
- "75351313B52A8529298D8C186B1768666DCCA8595317D7A4816EB88C062020C0C8EFC554BB341B64688DB5CCAFC35F3C3CD09D6564B36D7B04A248E146980D4B",
- "E3128B1D311D02179D7F25F97A5A8BEE2CC8C86303644FCD664E157D1FEF00F23E46F9A5E8E5C890CE565BB6ABD4302CE06469D52A5BD53E1C5A54D04649DC03",
- "C2382A72D2D3ACE9D5933D00B60827ED380CDA08D0BA5F6DD41E29EE6DBE8ECB9235F06BE95D83B6816A2FB7A5AD47035E8A4B69A4884B99E4BECE58CAB25D44",
- "6B1C69460BBD50AC2ED6F32E6E887CFED407D47DCF0AAA60387FE320D780BD03EAB6D7BAEB2A07D10CD552A300341354EA9A5F03183A623F92A2D4D9F00926AF",
- "6CDA206C80CDC9C44BA990E0328C314F819B142D00630404C48C05DC76D1B00CE4D72FC6A48E1469DDEF609412C364820854214B4869AF090F00D3C1BA443E1B",
- "7FFC8C26FBD6A0F7A609E6E1939F6A9EDF1B0B066641FB76C4F9602ED748D11602496B35355B1AA255850A509D2F8EE18C8F3E1D7DCBC37A136598F56A59ED17",
- "70DE1F08DD4E09D5FC151F17FC991A23ABFC05104290D50468882EFAF582B6EC2F14F577C0D68C3AD06626916E3C86E6DAAB6C53E5163E82B6BD0CE49FC0D8DF",
- "4F81935756ED35EE2058EE0C6A6110D6FAC5CB6A4F46AA9411603F99965823B6DA4838276C5C06BC7880E376D92758369EE7305BCEC8D3CFD28CCABB7B4F0579",
- "ABCB61CB3683D18F27AD527908ED2D32A0426CB7BB4BF18061903A7DC42E7E76F982382304D18AF8C80D91DD58DD47AF76F8E2C36E28AF2476B4BCCF82E89FDF",
- "02D261AD56A526331B643DD2186DE9A82E72A58223CD1E723686C53D869B83B94632B7B647AB2AFC0D522E29DA3A5615B741D82852E0DF41B66007DBCBA90543",
- "C5832741FA30C5436823015383D297FF4C4A5D7276C3F902122066E04BE5431B1A85FAF73B918434F9300963D1DEA9E8AC3924EF490226EDEEA5F743E410669F",
- "CFAEAB268CD075A5A6AED515023A032D54F2F2FF733CE0CBC78DB51DB4504D675923F82746D6594606AD5D67734B11A67CC6A468C2032E43CA1A94C6273A985E",
- "860850F92EB268272B67D133609BD64E34F61BF03F4C1738645C17FEC818465D7ECD2BE2907641130025FDA79470AB731646E7F69440E8367EA76AC4CEE8A1DF",
- "84B154ED29BBEDEFA648286839046F4B5AA34430E2D67F7496E4C39F2C7EA78995F69E1292200016F16AC3B37700E6C7E7861AFC396B64A59A1DBF47A55C4BBC",
- "AEEEC260A5D8EFF5CCAB8B95DA435A63ED7A21EA7FC7559413FD617E33609F8C290E64BBACC528F6C080262288B0F0A3219BE223C991BEE92E72349593E67638",
- "8AD78A9F26601D127E8D2F2F976E63D19A054A17DCF59E0F013AB54A6887BBDFFDE7AAAE117E0FBF3271016595B9D9C712C01B2C53E9655A382BC4522E616645",
- "8934159DADE1AC74147DFA282C75954FCEF443EF25F80DFE9FB6EA633B8545111D08B34EF43FFF17026C7964F5DEAC6D2B3C29DACF2747F022DF5967DFDC1A0A",
- "CD36DD0B240614CF2FA2B9E959679DCDD72EC0CD58A43DA3790A92F6CDEB9E1E795E478A0A47D371100D340C5CEDCDBBC9E68B3F460818E5BDFF7B4CDA4C2744",
- "00DF4E099B807137A85990F49D3A94315E5A5F7F7A6076B303E96B056FB93800111F479628E2F8DB59AEB6AC70C3B61F51F9B46E80FFDEAE25EBDDB4AF6CB4EE",
- "2B9C955E6CAED4B7C9E246B86F9A1726E810C59D126CEE66ED71BF015B83558A4B6D84D18DC3FF4620C2FFB722359FDEF85BA0D4E2D22ECBE0ED784F99AFE587",
- "181DF0A261A2F7D29EA5A15772715105D450A4B6C236F699F462D60CA76487FEEDFC9F5EB92DF838E8FB5DC3694E84C5E0F4A10B761F506762BE052C745A6EE8",
- "21FB203458BF3A7E9A80439F9A902899CD5DE0139DFD56F7110C9DEC8437B26BDA63DE2F565926D85EDB1D6C6825669743DD9992653D13979544D5DC8228BFAA",
- "EF021F29C5FFB830E64B9AA9058DD660FD2FCB81C497A7E698BCFBF59DE5AD4A86FF93C10A4B9D1AE5774725F9072DCDE9E1F199BAB91F8BFF921864AA502EEE",
- "B3CFDA40526B7F1D37569BDFCDF911E5A6EFE6B2EC90A0454C47B2C046BF130FC3B352B34DF4813D48D33AB8E269B69B075676CB6D00A8DCF9E1F967EC191B2C",
- "B4C6C3B267071EEFB9C8C72E0E2B941293641F8673CB70C1CC26AD1E73CF141755860AD19B34C2F34ED35BB52EC4507CC1FE59047743A5F0C6FEBDE625E26091",
- "57A34F2BCCA60D4B85103B830C9D7952A416BE5263AE429C9E5E53FE8590A8F78EC65A51109EA85DCDF7B6223F9F2B340539FAD81923DBF8EDABF95129E4DFF6",
- "9CF46662FCD61A232277B685663B8B5DA832DFD9A3B8CCFEEC993EC6AC415AD07E048ADFE414DF272770DBA867DA5C1224C6FD0AA0C2187D426AC647E9887361",
- "5CE1042AB4D542C2F9EE9D17262AF8164098935BEF173D0E18489B04841746CD2F2DF866BD7DA6E5EF9024C648023EC723AB9C62FD80285739D84F15D2AB515A",
- "8488396BD4A8729B7A473178F232DADF3F0F8E22678BA5A43E041E72DA1E2CF82194C307207A54CB8156293339EAEC693FF66BFCD5EFC65E95E4ECAF54530ABD",
- "F598DA901C3835BCA560779037DFDE9F0C51DC61C0B760FC1522D7B470EE63F5BDC6498476E86049AD86E4E21AF2854A984CC905427D2F17F66B1F41C3DA6F61",
- "5F93269798CF02132107337660A8D7A177354C0212EB93E555E7C37A08AEF3D8DCE01217011CD965C04DD2C105F2E2B6CAE5E4E6BCAF09DFBEE3E0A6A6357C37",
- "0ECF581D47BAC9230986FAABD70C2F5B80E91066F0EC55A842937882286D2CA007BB4E973B0B091D52167FF7C4009C7AB4AD38FFF1DCEACDB7BE81EF4A452952",
- "5AECA8ABE1528582B2A307B4009585498A3D467CA6101CB0C5126F9976056E9FFC123CC20C302B2A737F492C75D21F01512C90CA0541DFA56E950A321DCB28D8",
- "732FBF8F1CB2B8329263EDE27858FE46F8D3354D376BCDA0548E7CE1FA9DD11F85EB661FE950B543AA635CA4D3F04EDE5B32D6B656E5CE1C44D35C4A6C56CFF8",
- "D5E938735D63788C80100AEFD18648D18CF272F69F20FF24CFE2895C088AD08B0104DA1672A4EB26FC52545CC7D7A01B266CF546C403C45BD129EB41BDD9200B",
- "65A245B49352EE297D91AF8C8BE00528AC6E046DD83AC7BD465A98816DD68F3E00E1AE8F895327A7E9A8C9326598379A29C9FC91EC0C6EEF08F3E2B216C11008",
- "C95654B63019130AB45DD0FB4941B98AEB3AF2A123913ECA2CE99B3E97410A7BF8661CC7FBAA2BC1CF2B13113B1ED40A0118B88E5FFFC3542759EA007ED4C58D",
- "1EB262F38FA494431F017DAD44C0DFB69324AC032F04B657FC91A88647BB74760F24E7C956514F0CF002990B182C1642B9B2426E96A61187E4E012F00E217D84",
- "3B955AEEBFA5151AC1AB8E3F5CC1E3767084C842A575D36269836E97353D41622B731DDDCD5F269550A3A5B87BE1E90326340B6E0E62555815D9600597AC6EF9",
- "68289F6605473BA0E4F241BAF7477A9885426A858F19EF2A18B0D40EF8E41282ED5526B519799E270F13881327918278755711071D8511FE963E3B5606AA3716",
- "80A33787542612C38F6BCD7CD86CAB460227509B1CBAD5EC408A91413D51155A0476DADBF3A2518E4A6E77CC346622E347A469BF8BAA5F04EB2D98705355D063",
- "34629BC6D831391C4CDF8AF1B4B7B6B8E8EE17CF98C70E5DD586CD99F14B11DF945166236A9571E6D591BB83EE4D164D46F6B9D8EF86FF865A81BFB91B00424B",
- "8B7CC339163863BB4383E542B0EF0E7CF36B84AD932CDF5A80419EC9AD692E7A7E784D2C7CB3796A18B8F800035F3AA06C824100611120A7BDEB35618CCB81B7",
- "4F084E4939DD5A7F5A658FAD58A18A15C25C32EC1C7FD5C5C6C3E892B3971AEAAC308304EF17B1C47239EA4BB398B3FD6D4528D8DE8E768AE0F1A5A5C6B5C297",
- "48F407A1AF5B8009B2051742E8CF5CD5656669E7D722EE8E7BD202060849442168D8FACC117C012BFB7BF449D99BEFFF6A34AEA203F1D8D352722BE5014EC818",
- "A6AA82CD1E426F9A73BFA39A29037876114655B8C22D6D3FF8B638AE7DEA6B17843E09E52EB66FA1E475E4A8A3DE429B7D0F4A776FCB8BDC9B9FEDE7D52E815F",
- "5817027D6BDD00C5DD10AC593CD560372270775A18526D7E6F13872A2E20EAB664625BE7168AC4BD7C9E0CE7FC4099E0F48442E2C767191C6E1284E9B2CCEA8C",
- "08E41028340A45C74E4052B3A8D6389E22E043A1ADAB5E28D97619450D723469B620CAA519B81C14523854F619FD3027E3847BD03276E60604A80DDB4DE876D6",
- "130B8420537EB07D72ABDA07C85ACBD8B9A44F16321DD0422145F809673D30F2B5321326E2BFF317EF3FEF983C51C4F8AB24A325D298E34AFCE569A82555774C",
- "AC49B844AFAA012E31C474CA263648844FD2F6307992C2F752ACA02C3828965175794DEEE2D2EE95C61CD284F6B5A2D75E2EF2B29EE8149E77FB81447B2FD04B",
- "B9D7CA81CC60BB9578E44024E5A0A0BE80F27336A6A9F4E53DF3999CB191280B090E2AC2D29C5BAAD9D71415BDC129E69AA2667AF6A7FD5E189FCCDCEE817340",
- "A755E113386572C75CED61D719706070B9146048E42A9F8CD35667A088B42F08808ABDF77E618ABD959AFC757379CA2C00BCC1A48390FA2BFF618B1E0078A613",
- "A73C7DEBED326F1C0DB0795EE7D6E3946894B826B1F8101C56C823BA17168312E7F53FC7DBE52C3E11E69852C40485E2EF182477862EA6A34EC136E2DFEEA6F4",
- "6CB8F9D52C56D82CAC28F39EA1593E8BB2506293AC0D68376A1709B62A46DF14A4AE64B2D8FAB76733A1CED2D548E3F3C6FCB49D40C3D5808E449CD83D1C2AA2",
- "683FA2B2369A10162C1C1C7B24BC970EE67DA220564F32203F625696C0352A0B9AD96624362D952D84463C1106A2DBA7A092599884B35A0B89C8F1B6A9B5A61E",
- "AAD9AD44610118B77D508AEB1BBCD1C1B7D0171397FB510A401BBC0EC34623670D86A2DC3C8F3AB5A2044DF730256727545F0860CE21A1EAC717DFC48F5D228E",
- "C42578DE23B4C987D5E1AC4D689ED5DE4B0417F9704BC6BCE969FA13471585D62C2CB1212A944F397FC9CA2C3747C3BEB694EC4C5BE68828DDA53EF43FAEC6C0",
- "470F00841EE8244E63ED2C7EA30E2E419897C197462ECCCECF713B42A5065FFF5914BC9B79AFFE8F6B657875E789AE213BD914CD35BD174D46E9D18BD843773D",
- "34FC4213730F47A5E9A3580F643E12945CFCB31BF206F6AD450CE528DA3FA432E005D6B0ECCE10DCA7C5995F6AACC5150E1B009E19751E8309F8859531844374",
- "FB3C1F0F56A56F8E316FDF5D853C8C872C39635D083634C3904FC3AC07D1B578E85FF0E480E92D44ADE33B62E893EE32343E79DDF6EF292E89B582D312502314",
- "C7C97FC65DD2B9E3D3D607D31598D3F84261E9919251E9C8E57BB5F829377D5F73EABBED55C6C381180F29AD02E5BE797FFEC7E57BDECBC50AD3D062F0993AB0",
- "A57A49CDBE67AE7D9F797BB5CC7EFC2DF07F4E1B15955F85DAE74B76E2ECB85AFB6CD9EEED8888D5CA3EC5AB65D27A7B19E578475760A045AC3C92E13A938E77",
- "C7143FCE9614A17FD653AEB140726DC9C3DBB1DE6CC581B2726897EC24B7A50359AD492243BE66D9EDD8C933B5B80E0B91BB61EA98056006516976FAE8D99A35",
- "65BB58D07F937E2D3C7E65385F9C54730B704105CCDB691F6E146D4EE8F6C086F49511035110A9AD6031FDCEB943E0F9613BCB276DD40F0624EF0F924F809783",
- "E540277F683B1186DD3B5B3F61433396581A35FEB12002BE8C6A6231FC40FFA70F08081BC58B2D94F7649543614A435FAA2D62110E13DABC7B86629B63AF9C24",
- "418500878C5FBCB584C432F4285E05E49F2E3E075399A0DBFCF874EBF8C03D02BF16BC6989D161C77CA0786B05053C6C709433712319192128835CF0B660595B",
- "889090DBB1944BDC9433EE5EF1010C7A4A24A8E71ECEA8E12A31318CE49DCAB0ACA5C3802334AAB2CC84B14C6B9321FE586BF3F876F19CD406EB1127FB944801",
- "53B6A28910AA92E27E536FB549CF9B9918791060898E0B9FE183577FF43B5E9C7689C745B32E412269837C31B89E6CC12BF76E13CAD366B74ECE48BB85FD09E9",
- "7C092080C6A80D672409D081D3D177106BCD63567785140719490950AE07AE8FCAABBAAAB330CFBCF7374482C220AF2EADEEB73DCBB35ED823344E144E7D4899",
- "9CCDE566D2400509181111F32DDE4CD63209FE59A30C114546AD2776D889A41BAD8FA1BB468CB2F9D42CA9928A7770FEF8E8BA4D0C812D9A1E75C3D8D2CCD75A",
- "6E293BF5D03FE43977CFE3F57CCDB3AE282A85455DCA33F37F4B74F8398CC612433D755CBEC412F8F82A3BD3BC4A278F7ECD0DFA9BBDC40BE7A787C8F159B2DF",
- "C56546FB2178456F336164C18B90DEFFC83AE2B5A3ACA77B6884D36D2C1DB39501B3E65E36C758C66E3188451FDB3515EE162C001F06C3E8CB573ADF30F7A101",
- "6F82F89F299EBCA2FE014B59BFFE1AA84E88B1915FE256AFB646FD8448AF2B8891A7FAB37A4EA6F9A50E6C317039D8CF878F4C8E1A0DD464F0B4D6FF1C7EA853",
- "2B8599FF9C3D6198637AD51E57D1998B0D75313FE2DD61A533C964A6DD9607C6F723E9452CE46E014B1C1D6DE77BA5B88C914D1C597BF1EAE13474B4290E89B2",
- "08BF346D38E1DF06C8260EDB1DA75579275948D5C0A0AA9ED2886F8856DE5417A156998758F5B17E52F101CA957A71137473DFD18D7D209C4C10D9233C93691D",
- "6DF2156D773114D310B63DB9EE5350D77E6BCF25B05FCD910F9B31BC42BB13FE8225EBCB2A23A62280777B6BF74E2CD0917C7640B43DEFE468CD1E18C943C66A",
- "7C7038BC13A91151828A5BA82B4A96040F258A4DFB1B1373F0D359168AFB0517A20B28A12D3644046BE66B8D08D8AE7F6A923EA1C00187C6D11DC502BAC71305",
- "BCD1B30D808FB739B987CBF154BEA00DA9D40380B861D4C1D6377122DADD61C0E59018B71941CFB62E00DCD70AEB9ABF0473E80F0A7ECA6B6DEA246AB229DD2B",
- "7ED4468D968530FE7AB2C33540B26D8C3BD3ED44B34FBE8C2A9D7F805B5ADA0EA252EEADE4FCE97F89728AD85BC8BB2430B1BEF2CDDD32C8446E59B8E8BA3C67",
- "6D30B7C6CE8A3236C0CA2F8D728B1088CA06983A8043E621D5DCF0C537D13B08791EDEB01A3CF0943EC1C890AB6E29B146A236CD46BCB9D93BF516FB67C63FE5",
- "97FE03CEF31438508911BDED975980A66029305DC5E3FA8AD1B4FB22FCDF5A19A733320327D8F71CCF496CB3A44A77AF56E3DDE73D3A5F176896CC57C9A5AD99",
- "785A9D0FBD21136DBCE8FA7EAFD63C9DAD220052978416B31D9753EAA149097847ED9B30A65C70507EFF01879149ED5CF0471D37798EDC05ABD56AD4A2CCCB1D",
- "AD408D2ABDDFD37B3BF34794C1A3371D928ED7FC8D966225333584C5665817832A37C07F0DC7CB5AA874CD7D20FE8FAB8EABCB9B33D2E0841F6E200960899D95",
- "97668F745B6032FC815D9579322769DCCD9501A5080029B8AE826BEFB6742331BD9F76EFEB3E2B8E81A9786B282F5068A3A2424697A77C41876B7E753F4C7767",
- "26BB985F47E7FEE0CFD252D4EF96BED42B9C370C1C6A3E8C9EB04EF7F7818B833A0D1F043EBAFB911DC779E02740A02A44D3A1EA45ED4AD55E686C927CAFE97E",
- "5BFE2B1DCF7FE9B95088ACEDB575C19016C743B2E763BF5851AC407C9EDA43715EDFA48B4825492C5179593FFF21351B76E8B7E034E4C53C79F61F29C479BD08",
- "C76509EF72F4A6F9C9C40618ED52B2084F83502232E0AC8BDAF3264368E4D0180F6854C4ABF4F6509C79CAAFC44CF3194AFC57BD077BD7B3C9BDA3D4B8775816",
- "D66F2BEAB990E354CCB910E4E9C7AC618C7B63EF292A96B552341DE78DC46D3EC8CFABC699B50AF41FDA39CF1B0173660923510AD67FAEDEF5207CFFE8641D20",
- "7D8F0672992B79BE3A364D8E5904F4AB713BBC8AB01B4F309AD8CCF223CE1034A860DCB0B00550612CC2FA17F2969E18F22E1427D254B4A82B3A03A3EB394ADF",
- "A56D6725BFB3DE47C1414ADF25FC8F0FC9846F6987722BC06366D5CA4E89722925EBBC881418844075397A0CA89842C7B9E9E07E1D9D183EBEB39E120B483BF7",
- "AF5E03D7FE60C67E10313344434E79485A03A758D6DCE985574745763C1C5C77D4FB3E6FB12230368370993BF90FEED0C5D1607524562D7C09C0C210ED393D7C",
- "7A20540CC07BF72B582421FC342E82F52134B69841EC28ED189E2EA6A29DD2F82A640352D222B52F2911DC72A7DAB31CAADD80C6118F13C56B2A1E4373BE0EA3",
- "486F02C63E5467EA1FDDE7E82BFACC2C1BA5D636D9F3D08B210DA3F372F706EC218CC17FF60AEF703BBE0C15C38AE55D286A684F864C78211CCAB4178C92ADBA",
- "1C7A5C1DEDCD04A921788F7EB23361CA1953B04B9C7AEC35D65EA3E4996DB26F281278EA4AE666AD81027D98AF57262CDBFA4C085F4210568C7E15EEC7805114",
- "9CE3FA9A860BDBD5378FD6D7B8B671C6CB7692910CE8F9B6CB4122CBCBE6AC06CA0422CEF1225935053B7D193A81B9E972EB85A1D3074F14CBB5EC9F0573892D",
- "A91187BE5C371C4265C174FD4653B8AB708551F83D1FEE1CC1479581BC006D6FB78FCC9A5DEE1DB3666F508F9780A37593EBCCCF5FBED39667DC6361E921F779",
- "4625767D7B1D3D3ED2FBC674AF14E0244152F2A4021FCF3311505D89BD81E2F9F9A500C3B199914DB49500B3C98D03EA93286751A686A3B875DAAB0CCD63B44F",
- "43DFDFE1B014FED3A2ACABB7F3E9A182F2AA18019D27E3E6CDCF31A15B428E91E7B08CF5E5C376FCE2D8A28FF85AB0A0A1656EDB4A0A91532620096D9A5A652D",
- "279E3202BE3989BA3112772585177487E4FE3EE3EAB49C2F7FA7FE87CFE7B80D3E0355EDFF6D031E6C96C795DB1C6F041880EC3824DEFACF9263820A8E7327DE",
- "EA2D066AC229D4D4B616A8BEDEC734325224E4B4E58F1AE6DAD7E40C2DA29196C3B1EA9571DACC81E87328CAA0211E09027B0524AA3F4A849917B3586747EBBB",
- "49F014F5C61822C899AB5CAE51BE4044A4495E777DEB7DA9B6D8490EFBB87530ADF293DAF079F94C33B7044EF62E2E5BB3EB11E17304F8453EE6CE24F033DDB0",
- "9233490344E5B0DC5912671B7AE54CEE7730DBE1F4C7D92A4D3E3AAB50571708DB51DCF9C2944591DB651DB32D22935B86944969BE77D5B5FEAE6C3840A8DB26",
- "B6E75E6F4C7F453B7465D25B5AC8C7196902EAA953875228C8634E16E2AE1F38BC3275304335F5989ECCC1E34167D4E68D7719968FBA8E2FE67947C35C48E806",
- "CC14CA665AF1483EFBC3AF80080E650D5046A3932F4F51F3FE90A0705EC25104ADF07839265DC51D43401411246E474F0D5E5637AF94767283D53E0617E981F4",
- "230A1C857CB2E7852E41B647E90E4585D2D881E1734DC38955356E8DD7BFF39053092C6B38E236E1899525647073DDDF6895D64206325E7647F275567B255909",
- "CBB65321AC436E2FFDAB2936359CE49023F7DEE7614EF28D173C3D27C5D1BFFA51553D433F8EE3C9E49C05A2B883CCE954C9A8093B80612A0CDD4732E041F995",
- "3E7E570074337275EFB51315588034C3CF0DDDCA20B4612E0BD5B881E7E5476D319CE4FE9F19186E4C0826F44F131EB048E65BE242B1172C63BADB123AB0CBE8",
- "D32E9EC02D38D4E1B8249DF8DCB00C5B9C68EB8922672E3505393B6A210BA56F9496E5EE0490EF387C3CDEC061F06BC0382D9304CAFBB8E0CD33D57029E62DF2",
- "8C1512466089F05B3775C262B62D22B83854A83218130B4EC91B3CCBD293D2A54302CECAAB9B100C68D1E6DDC8F07CDDBDFE6FDAAAF099CC09D6B725879C6369",
- "91A7F61C97C2911E4C812EF71D780AD8FA788794561D08303FD1C1CB608A46A12563086EC5B39D471AED94FB0F6C678A43B8792932F9028D772A22768EA23A9B",
- "4F6BB222A395E8B18F6BA155477AED3F0729AC9E83E16D31A2A8BC655422B837C891C6199E6F0D75799E3B691525C581953517F252C4B9E3A27A28FBAF49644C",
- "5D06C07E7A646C413A501C3F4BB2FC38127DE7509B7077C4D9B5613201C1AA02FD5F79D2745915DD57FBCB4CE08695F6EFC0CB3D2D330E19B4B0E6004EA6471E",
- "B96756E57909968F14B796A5D30F4C9D671472CF82C8CFB2CACA7AC7A44CA0A14C9842D00C82E337502C94D5960ACA4C492EA7B0DF919DDF1AADA2A275BB10D4",
- "FF0A015E98DB9C99F03977710AAC3E658C0D896F6D71D618BA79DC6CF72AC75B7C038EB6862DEDE4543E145413A6368D69F5722C827BA3EF25B6AE6440D39276",
- "5B21C5FD8868367612474FA2E70E9CFA2201FFEEE8FAFAB5797AD58FEFA17C9B5B107DA4A3DB6320BAAF2C8617D5A51DF914AE88DA3867C2D41F0CC14FA67928"
- };
-
- public static string[] KeyedBlake2B = new string[]{
- "10EBB67700B1868EFB4417987ACF4690AE9D972FB7A590C2F02871799AAA4786B5E996E8F0F4EB981FC214B005F42D2FF4233499391653DF7AEFCBC13FC51568",
- "961F6DD1E4DD30F63901690C512E78E4B45E4742ED197C3C5E45C549FD25F2E4187B0BC9FE30492B16B0D0BC4EF9B0F34C7003FAC09A5EF1532E69430234CEBD",
- "DA2CFBE2D8409A0F38026113884F84B50156371AE304C4430173D08A99D9FB1B983164A3770706D537F49E0C916D9F32B95CC37A95B99D857436F0232C88A965",
- "33D0825DDDF7ADA99B0E7E307104AD07CA9CFD9692214F1561356315E784F3E5A17E364AE9DBB14CB2036DF932B77F4B292761365FB328DE7AFDC6D8998F5FC1",
- "BEAA5A3D08F3807143CF621D95CD690514D0B49EFFF9C91D24B59241EC0EEFA5F60196D407048BBA8D2146828EBCB0488D8842FD56BB4F6DF8E19C4B4DAAB8AC",
- "098084B51FD13DEAE5F4320DE94A688EE07BAEA2800486689A8636117B46C1F4C1F6AF7F74AE7C857600456A58A3AF251DC4723A64CC7C0A5AB6D9CAC91C20BB",
- "6044540D560853EB1C57DF0077DD381094781CDB9073E5B1B3D3F6C7829E12066BBACA96D989A690DE72CA3133A83652BA284A6D62942B271FFA2620C9E75B1F",
- "7A8CFE9B90F75F7ECB3ACC053AAED6193112B6F6A4AEEB3F65D3DE541942DEB9E2228152A3C4BBBE72FC3B12629528CFBB09FE630F0474339F54ABF453E2ED52",
- "380BEAF6EA7CC9365E270EF0E6F3A64FB902ACAE51DD5512F84259AD2C91F4BC4108DB73192A5BBFB0CBCF71E46C3E21AEE1C5E860DC96E8EB0B7B8426E6ABE9",
- "60FE3C4535E1B59D9A61EA8500BFAC41A69DFFB1CEADD9ACA323E9A625B64DA5763BAD7226DA02B9C8C4F1A5DE140AC5A6C1124E4F718CE0B28EA47393AA6637",
- "4FE181F54AD63A2983FEAAF77D1E7235C2BEB17FA328B6D9505BDA327DF19FC37F02C4B6F0368CE23147313A8E5738B5FA2A95B29DE1C7F8264EB77B69F585CD",
- "F228773CE3F3A42B5F144D63237A72D99693ADB8837D0E112A8A0F8FFFF2C362857AC49C11EC740D1500749DAC9B1F4548108BF3155794DCC9E4082849E2B85B",
- "962452A8455CC56C8511317E3B1F3B2C37DF75F588E94325FDD77070359CF63A9AE6E930936FDF8E1E08FFCA440CFB72C28F06D89A2151D1C46CD5B268EF8563",
- "43D44BFA18768C59896BF7ED1765CB2D14AF8C260266039099B25A603E4DDC5039D6EF3A91847D1088D401C0C7E847781A8A590D33A3C6CB4DF0FAB1C2F22355",
- "DCFFA9D58C2A4CA2CDBB0C7AA4C4C1D45165190089F4E983BB1C2CAB4AAEFF1FA2B5EE516FECD780540240BF37E56C8BCCA7FAB980E1E61C9400D8A9A5B14AC6",
- "6FBF31B45AB0C0B8DAD1C0F5F4061379912DDE5AA922099A030B725C73346C524291ADEF89D2F6FD8DFCDA6D07DAD811A9314536C2915ED45DA34947E83DE34E",
- "A0C65BDDDE8ADEF57282B04B11E7BC8AAB105B99231B750C021F4A735CB1BCFAB87553BBA3ABB0C3E64A0B6955285185A0BD35FB8CFDE557329BEBB1F629EE93",
- "F99D815550558E81ECA2F96718AED10D86F3F1CFB675CCE06B0EFF02F617C5A42C5AA760270F2679DA2677C5AEB94F1142277F21C7F79F3C4F0CCE4ED8EE62B1",
- "95391DA8FC7B917A2044B3D6F5374E1CA072B41454D572C7356C05FD4BC1E0F40B8BB8B4A9F6BCE9BE2C4623C399B0DCA0DAB05CB7281B71A21B0EBCD9E55670",
- "04B9CD3D20D221C09AC86913D3DC63041989A9A1E694F1E639A3BA7E451840F750C2FC191D56AD61F2E7936BC0AC8E094B60CAEED878C18799045402D61CEAF9",
- "EC0E0EF707E4ED6C0C66F9E089E4954B058030D2DD86398FE84059631F9EE591D9D77375355149178C0CF8F8E7C49ED2A5E4F95488A2247067C208510FADC44C",
- "9A37CCE273B79C09913677510EAF7688E89B3314D3532FD2764C39DE022A2945B5710D13517AF8DDC0316624E73BEC1CE67DF15228302036F330AB0CB4D218DD",
- "4CF9BB8FB3D4DE8B38B2F262D3C40F46DFE747E8FC0A414C193D9FCF753106CE47A18F172F12E8A2F1C26726545358E5EE28C9E2213A8787AAFBC516D2343152",
- "64E0C63AF9C808FD893137129867FD91939D53F2AF04BE4FA268006100069B2D69DAA5C5D8ED7FDDCB2A70EEECDF2B105DD46A1E3B7311728F639AB489326BC9",
- "5E9C93158D659B2DEF06B0C3C7565045542662D6EEE8A96A89B78ADE09FE8B3DCC096D4FE48815D88D8F82620156602AF541955E1F6CA30DCE14E254C326B88F",
- "7775DFF889458DD11AEF417276853E21335EB88E4DEC9CFB4E9EDB49820088551A2CA60339F12066101169F0DFE84B098FDDB148D9DA6B3D613DF263889AD64B",
- "F0D2805AFBB91F743951351A6D024F9353A23C7CE1FC2B051B3A8B968C233F46F50F806ECB1568FFAA0B60661E334B21DDE04F8FA155AC740EEB42E20B60D764",
- "86A2AF316E7D7754201B942E275364AC12EA8962AB5BD8D7FB276DC5FBFFC8F9A28CAE4E4867DF6780D9B72524160927C855DA5B6078E0B554AA91E31CB9CA1D",
- "10BDF0CAA0802705E706369BAF8A3F79D72C0A03A80675A7BBB00BE3A45E516424D1EE88EFB56F6D5777545AE6E27765C3A8F5E493FC308915638933A1DFEE55",
- "B01781092B1748459E2E4EC178696627BF4EBAFEBBA774ECF018B79A68AEB84917BF0B84BB79D17B743151144CD66B7B33A4B9E52C76C4E112050FF5385B7F0B",
- "C6DBC61DEC6EAEAC81E3D5F755203C8E220551534A0B2FD105A91889945A638550204F44093DD998C076205DFFAD703A0E5CD3C7F438A7E634CD59FEDEDB539E",
- "EBA51ACFFB4CEA31DB4B8D87E9BF7DD48FE97B0253AE67AA580F9AC4A9D941F2BEA518EE286818CC9F633F2A3B9FB68E594B48CDD6D515BF1D52BA6C85A203A7",
- "86221F3ADA52037B72224F105D7999231C5E5534D03DA9D9C0A12ACB68460CD375DAF8E24386286F9668F72326DBF99BA094392437D398E95BB8161D717F8991",
- "5595E05C13A7EC4DC8F41FB70CB50A71BCE17C024FF6DE7AF618D0CC4E9C32D9570D6D3EA45B86525491030C0D8F2B1836D5778C1CE735C17707DF364D054347",
- "CE0F4F6ACA89590A37FE034DD74DD5FA65EB1CBD0A41508AADDC09351A3CEA6D18CB2189C54B700C009F4CBF0521C7EA01BE61C5AE09CB54F27BC1B44D658C82",
- "7EE80B06A215A3BCA970C77CDA8761822BC103D44FA4B33F4D07DCB997E36D55298BCEAE12241B3FA07FA63BE5576068DA387B8D5859AEAB701369848B176D42",
- "940A84B6A84D109AAB208C024C6CE9647676BA0AAA11F86DBB7018F9FD2220A6D901A9027F9ABCF935372727CBF09EBD61A2A2EEB87653E8ECAD1BAB85DC8327",
- "2020B78264A82D9F4151141ADBA8D44BF20C5EC062EEE9B595A11F9E84901BF148F298E0C9F8777DCDBC7CC4670AAC356CC2AD8CCB1629F16F6A76BCEFBEE760",
- "D1B897B0E075BA68AB572ADF9D9C436663E43EB3D8E62D92FC49C9BE214E6F27873FE215A65170E6BEA902408A25B49506F47BABD07CECF7113EC10C5DD31252",
- "B14D0C62ABFA469A357177E594C10C194243ED2025AB8AA5AD2FA41AD318E0FF48CD5E60BEC07B13634A711D2326E488A985F31E31153399E73088EFC86A5C55",
- "4169C5CC808D2697DC2A82430DC23E3CD356DC70A94566810502B8D655B39ABF9E7F902FE717E0389219859E1945DF1AF6ADA42E4CCDA55A197B7100A30C30A1",
- "258A4EDB113D66C839C8B1C91F15F35ADE609F11CD7F8681A4045B9FEF7B0B24C82CDA06A5F2067B368825E3914E53D6948EDE92EFD6E8387FA2E537239B5BEE",
- "79D2D8696D30F30FB34657761171A11E6C3F1E64CBE7BEBEE159CB95BFAF812B4F411E2F26D9C421DC2C284A3342D823EC293849E42D1E46B0A4AC1E3C86ABAA",
- "8B9436010DC5DEE992AE38AEA97F2CD63B946D94FEDD2EC9671DCDE3BD4CE9564D555C66C15BB2B900DF72EDB6B891EBCADFEFF63C9EA4036A998BE7973981E7",
- "C8F68E696ED28242BF997F5B3B34959508E42D613810F1E2A435C96ED2FF560C7022F361A9234B9837FEEE90BF47922EE0FD5F8DDF823718D86D1E16C6090071",
- "B02D3EEE4860D5868B2C39CE39BFE81011290564DD678C85E8783F29302DFC1399BA95B6B53CD9EBBF400CCA1DB0AB67E19A325F2D115812D25D00978AD1BCA4",
- "7693EA73AF3AC4DAD21CA0D8DA85B3118A7D1C6024CFAF557699868217BC0C2F44A199BC6C0EDD519798BA05BD5B1B4484346A47C2CADF6BF30B785CC88B2BAF",
- "A0E5C1C0031C02E48B7F09A5E896EE9AEF2F17FC9E18E997D7F6CAC7AE316422C2B1E77984E5F3A73CB45DEED5D3F84600105E6EE38F2D090C7D0442EA34C46D",
- "41DAA6ADCFDB69F1440C37B596440165C15ADA596813E2E22F060FCD551F24DEE8E04BA6890387886CEEC4A7A0D7FC6B44506392EC3822C0D8C1ACFC7D5AEBE8",
- "14D4D40D5984D84C5CF7523B7798B254E275A3A8CC0A1BD06EBC0BEE726856ACC3CBF516FF667CDA2058AD5C3412254460A82C92187041363CC77A4DC215E487",
- "D0E7A1E2B9A447FEE83E2277E9FF8010C2F375AE12FA7AAA8CA5A6317868A26A367A0B69FBC1CF32A55D34EB370663016F3D2110230EBA754028A56F54ACF57C",
- "E771AA8DB5A3E043E8178F39A0857BA04A3F18E4AA05743CF8D222B0B095825350BA422F63382A23D92E4149074E816A36C1CD28284D146267940B31F8818EA2",
- "FEB4FD6F9E87A56BEF398B3284D2BDA5B5B0E166583A66B61E538457FF0584872C21A32962B9928FFAB58DE4AF2EDD4E15D8B35570523207FF4E2A5AA7754CAA",
- "462F17BF005FB1C1B9E671779F665209EC2873E3E411F98DABF240A1D5EC3F95CE6796B6FC23FE171903B502023467DEC7273FF74879B92967A2A43A5A183D33",
- "D3338193B64553DBD38D144BEA71C5915BB110E2D88180DBC5DB364FD6171DF317FC7268831B5AEF75E4342B2FAD8797BA39EDDCEF80E6EC08159350B1AD696D",
- "E1590D585A3D39F7CB599ABD479070966409A6846D4377ACF4471D065D5DB94129CC9BE92573B05ED226BE1E9B7CB0CABE87918589F80DADD4EF5EF25A93D28E",
- "F8F3726AC5A26CC80132493A6FEDCB0E60760C09CFC84CAD178175986819665E76842D7B9FEDF76DDDEBF5D3F56FAAAD4477587AF21606D396AE570D8E719AF2",
- "30186055C07949948183C850E9A756CC09937E247D9D928E869E20BAFC3CD9721719D34E04A0899B92C736084550186886EFBA2E790D8BE6EBF040B209C439A4",
- "F3C4276CB863637712C241C444C5CC1E3554E0FDDB174D035819DD83EB700B4CE88DF3AB3841BA02085E1A99B4E17310C5341075C0458BA376C95A6818FBB3E2",
- "0AA007C4DD9D5832393040A1583C930BCA7DC5E77EA53ADD7E2B3F7C8E231368043520D4A3EF53C969B6BBFD025946F632BD7F765D53C21003B8F983F75E2A6A",
- "08E9464720533B23A04EC24F7AE8C103145F765387D738777D3D343477FD1C58DB052142CAB754EA674378E18766C53542F71970171CC4F81694246B717D7564",
- "D37FF7AD297993E7EC21E0F1B4B5AE719CDC83C5DB687527F27516CBFFA822888A6810EE5C1CA7BFE3321119BE1AB7BFA0A502671C8329494DF7AD6F522D440F",
- "DD9042F6E464DCF86B1262F6ACCFAFBD8CFD902ED3ED89ABF78FFA482DBDEEB6969842394C9A1168AE3D481A017842F660002D42447C6B22F7B72F21AAE021C9",
- "BD965BF31E87D70327536F2A341CEBC4768ECA275FA05EF98F7F1B71A0351298DE006FBA73FE6733ED01D75801B4A928E54231B38E38C562B2E33EA1284992FA",
- "65676D800617972FBD87E4B9514E1C67402B7A331096D3BFAC22F1ABB95374ABC942F16E9AB0EAD33B87C91968A6E509E119FF07787B3EF483E1DCDCCF6E3022",
- "939FA189699C5D2C81DDD1FFC1FA207C970B6A3685BB29CE1D3E99D42F2F7442DA53E95A72907314F4588399A3FF5B0A92BEB3F6BE2694F9F86ECF2952D5B41C",
- "C516541701863F91005F314108CEECE3C643E04FC8C42FD2FF556220E616AAA6A48AEB97A84BAD74782E8DFF96A1A2FA949339D722EDCAA32B57067041DF88CC",
- "987FD6E0D6857C553EAEBB3D34970A2C2F6E89A3548F492521722B80A1C21A153892346D2CBA6444212D56DA9A26E324DCCBC0DCDE85D4D2EE4399EEC5A64E8F",
- "AE56DEB1C2328D9C4017706BCE6E99D41349053BA9D336D677C4C27D9FD50AE6AEE17E853154E1F4FE7672346DA2EAA31EEA53FCF24A22804F11D03DA6ABFC2B",
- "49D6A608C9BDE4491870498572AC31AAC3FA40938B38A7818F72383EB040AD39532BC06571E13D767E6945AB77C0BDC3B0284253343F9F6C1244EBF2FF0DF866",
- "DA582AD8C5370B4469AF862AA6467A2293B2B28BD80AE0E91F425AD3D47249FDF98825CC86F14028C3308C9804C78BFEEEEE461444CE243687E1A50522456A1D",
- "D5266AA3331194AEF852EED86D7B5B2633A0AF1C735906F2E13279F14931A9FC3B0EAC5CE9245273BD1AA92905ABE16278EF7EFD47694789A7283B77DA3C70F8",
- "2962734C28252186A9A1111C732AD4DE4506D4B4480916303EB7991D659CCDA07A9911914BC75C418AB7A4541757AD054796E26797FEAF36E9F6AD43F14B35A4",
- "E8B79EC5D06E111BDFAFD71E9F5760F00AC8AC5D8BF768F9FF6F08B8F026096B1CC3A4C973333019F1E3553E77DA3F98CB9F542E0A90E5F8A940CC58E59844B3",
- "DFB320C44F9D41D1EFDCC015F08DD5539E526E39C87D509AE6812A969E5431BF4FA7D91FFD03B981E0D544CF72D7B1C0374F8801482E6DEA2EF903877EBA675E",
- "D88675118FDB55A5FB365AC2AF1D217BF526CE1EE9C94B2F0090B2C58A06CA58187D7FE57C7BED9D26FCA067B4110EEFCD9A0A345DE872ABE20DE368001B0745",
- "B893F2FC41F7B0DD6E2F6AA2E0370C0CFF7DF09E3ACFCC0E920B6E6FAD0EF747C40668417D342B80D2351E8C175F20897A062E9765E6C67B539B6BA8B9170545",
- "6C67EC5697ACCD235C59B486D7B70BAEEDCBD4AA64EBD4EEF3C7EAC189561A726250AEC4D48CADCAFBBE2CE3C16CE2D691A8CCE06E8879556D4483ED7165C063",
- "F1AA2B044F8F0C638A3F362E677B5D891D6FD2AB0765F6EE1E4987DE057EAD357883D9B405B9D609EEA1B869D97FB16D9B51017C553F3B93C0A1E0F1296FEDCD",
- "CBAA259572D4AEBFC1917ACDDC582B9F8DFAA928A198CA7ACD0F2AA76A134A90252E6298A65B08186A350D5B7626699F8CB721A3EA5921B753AE3A2DCE24BA3A",
- "FA1549C9796CD4D303DCF452C1FBD5744FD9B9B47003D920B92DE34839D07EF2A29DED68F6FC9E6C45E071A2E48BD50C5084E96B657DD0404045A1DDEFE282ED",
- "5CF2AC897AB444DCB5C8D87C495DBDB34E1838B6B629427CAA51702AD0F9688525F13BEC503A3C3A2C80A65E0B5715E8AFAB00FFA56EC455A49A1AD30AA24FCD",
- "9AAF80207BACE17BB7AB145757D5696BDE32406EF22B44292EF65D4519C3BB2AD41A59B62CC3E94B6FA96D32A7FAADAE28AF7D35097219AA3FD8CDA31E40C275",
- "AF88B163402C86745CB650C2988FB95211B94B03EF290EED9662034241FD51CF398F8073E369354C43EAE1052F9B63B08191CAA138AA54FEA889CC7024236897",
- "48FA7D64E1CEEE27B9864DB5ADA4B53D00C9BC7626555813D3CD6730AB3CC06FF342D727905E33171BDE6E8476E77FB1720861E94B73A2C538D254746285F430",
- "0E6FD97A85E904F87BFE85BBEB34F69E1F18105CF4ED4F87AEC36C6E8B5F68BD2A6F3DC8A9ECB2B61DB4EEDB6B2EA10BF9CB0251FB0F8B344ABF7F366B6DE5AB",
- "06622DA5787176287FDC8FED440BAD187D830099C94E6D04C8E9C954CDA70C8BB9E1FC4A6D0BAA831B9B78EF6648681A4867A11DA93EE36E5E6A37D87FC63F6F",
- "1DA6772B58FABF9C61F68D412C82F182C0236D7D575EF0B58DD22458D643CD1DFC93B03871C316D8430D312995D4197F0874C99172BA004A01EE295ABAC24E46",
- "3CD2D9320B7B1D5FB9AAB951A76023FA667BE14A9124E394513918A3F44096AE4904BA0FFC150B63BC7AB1EEB9A6E257E5C8F000A70394A5AFD842715DE15F29",
- "04CDC14F7434E0B4BE70CB41DB4C779A88EAEF6ACCEBCB41F2D42FFFE7F32A8E281B5C103A27021D0D08362250753CDF70292195A53A48728CEB5844C2D98BAB",
- "9071B7A8A075D0095B8FB3AE5113785735AB98E2B52FAF91D5B89E44AAC5B5D4EBBF91223B0FF4C71905DA55342E64655D6EF8C89A4768C3F93A6DC0366B5BC8",
- "EBB30240DD96C7BC8D0ABE49AA4EDCBB4AFDC51FF9AAF720D3F9E7FBB0F9C6D6571350501769FC4EBD0B2141247FF400D4FD4BE414EDF37757BB90A32AC5C65A",
- "8532C58BF3C8015D9D1CBE00EEF1F5082F8F3632FBE9F1ED4F9DFB1FA79E8283066D77C44C4AF943D76B300364AECBD0648C8A8939BD204123F4B56260422DEC",
- "FE9846D64F7C7708696F840E2D76CB4408B6595C2F81EC6A28A7F2F20CB88CFE6AC0B9E9B8244F08BD7095C350C1D0842F64FB01BB7F532DFCD47371B0AEEB79",
- "28F17EA6FB6C42092DC264257E29746321FB5BDAEA9873C2A7FA9D8F53818E899E161BC77DFE8090AFD82BF2266C5C1BC930A8D1547624439E662EF695F26F24",
- "EC6B7D7F030D4850ACAE3CB615C21DD25206D63E84D1DB8D957370737BA0E98467EA0CE274C66199901EAEC18A08525715F53BFDB0AACB613D342EBDCEEDDC3B",
- "B403D3691C03B0D3418DF327D5860D34BBFCC4519BFBCE36BF33B208385FADB9186BC78A76C489D89FD57E7DC75412D23BCD1DAE8470CE9274754BB8585B13C5",
- "31FC79738B8772B3F55CD8178813B3B52D0DB5A419D30BA9495C4B9DA0219FAC6DF8E7C23A811551A62B827F256ECDB8124AC8A6792CCFECC3B3012722E94463",
- "BB2039EC287091BCC9642FC90049E73732E02E577E2862B32216AE9BEDCD730C4C284EF3968C368B7D37584F97BD4B4DC6EF6127ACFE2E6AE2509124E66C8AF4",
- "F53D68D13F45EDFCB9BD415E2831E938350D5380D3432278FC1C0C381FCB7C65C82DAFE051D8C8B0D44E0974A0E59EC7BF7ED0459F86E96F329FC79752510FD3",
- "8D568C7984F0ECDF7640FBC483B5D8C9F86634F6F43291841B309A350AB9C1137D24066B09DA9944BAC54D5BB6580D836047AAC74AB724B887EBF93D4B32ECA9",
- "C0B65CE5A96FF774C456CAC3B5F2C4CD359B4FF53EF93A3DA0778BE4900D1E8DA1601E769E8F1B02D2A2F8C5B9FA10B44F1C186985468FEEB008730283A6657D",
- "4900BBA6F5FB103ECE8EC96ADA13A5C3C85488E05551DA6B6B33D988E611EC0FE2E3C2AA48EA6AE8986A3A231B223C5D27CEC2EADDE91CE07981EE652862D1E4",
- "C7F5C37C7285F927F76443414D4357FF789647D7A005A5A787E03C346B57F49F21B64FA9CF4B7E45573E23049017567121A9C3D4B2B73EC5E9413577525DB45A",
- "EC7096330736FDB2D64B5653E7475DA746C23A4613A82687A28062D3236364284AC01720FFB406CFE265C0DF626A188C9E5963ACE5D3D5BB363E32C38C2190A6",
- "82E744C75F4649EC52B80771A77D475A3BC091989556960E276A5F9EAD92A03F718742CDCFEAEE5CB85C44AF198ADC43A4A428F5F0C2DDB0BE36059F06D7DF73",
- "2834B7A7170F1F5B68559AB78C1050EC21C919740B784A9072F6E5D69F828D70C919C5039FB148E39E2C8A52118378B064CA8D5001CD10A5478387B966715ED6",
- "16B4ADA883F72F853BB7EF253EFCAB0C3E2161687AD61543A0D2824F91C1F81347D86BE709B16996E17F2DD486927B0288AD38D13063C4A9672C39397D3789B6",
- "78D048F3A69D8B54AE0ED63A573AE350D89F7C6CF1F3688930DE899AFA037697629B314E5CD303AA62FEEA72A25BF42B304B6C6BCB27FAE21C16D925E1FBDAC3",
- "0F746A48749287ADA77A82961F05A4DA4ABDB7D77B1220F836D09EC814359C0EC0239B8C7B9FF9E02F569D1B301EF67C4612D1DE4F730F81C12C40CC063C5CAA",
- "F0FC859D3BD195FBDC2D591E4CDAC15179EC0F1DC821C11DF1F0C1D26E6260AAA65B79FAFACAFD7D3AD61E600F250905F5878C87452897647A35B995BCADC3A3",
- "2620F687E8625F6A412460B42E2CEF67634208CE10A0CBD4DFF7044A41B7880077E9F8DC3B8D1216D3376A21E015B58FB279B521D83F9388C7382C8505590B9B",
- "227E3AED8D2CB10B918FCB04F9DE3E6D0A57E08476D93759CD7B2ED54A1CBF0239C528FB04BBF288253E601D3BC38B21794AFEF90B17094A182CAC557745E75F",
- "1A929901B09C25F27D6B35BE7B2F1C4745131FDEBCA7F3E2451926720434E0DB6E74FD693AD29B777DC3355C592A361C4873B01133A57C2E3B7075CBDB86F4FC",
- "5FD7968BC2FE34F220B5E3DC5AF9571742D73B7D60819F2888B629072B96A9D8AB2D91B82D0A9AABA61BBD39958132FCC4257023D1ECA591B3054E2DC81C8200",
- "DFCCE8CF32870CC6A503EADAFC87FD6F78918B9B4D0737DB6810BE996B5497E7E5CC80E312F61E71FF3E9624436073156403F735F56B0B01845C18F6CAF772E6",
- "02F7EF3A9CE0FFF960F67032B296EFCA3061F4934D690749F2D01C35C81C14F39A67FA350BC8A0359BF1724BFFC3BCA6D7C7BBA4791FD522A3AD353C02EC5AA8",
- "64BE5C6ABA65D594844AE78BB022E5BEBE127FD6B6FFA5A13703855AB63B624DCD1A363F99203F632EC386F3EA767FC992E8ED9686586AA27555A8599D5B808F",
- "F78585505C4EAA54A8B5BE70A61E735E0FF97AF944DDB3001E35D86C4E2199D976104B6AE31750A36A726ED285064F5981B503889FEF822FCDC2898DDDB7889A",
- "E4B5566033869572EDFD87479A5BB73C80E8759B91232879D96B1DDA36C012076EE5A2ED7AE2DE63EF8406A06AEA82C188031B560BEAFB583FB3DE9E57952A7E",
- "E1B3E7ED867F6C9484A2A97F7715F25E25294E992E41F6A7C161FFC2ADC6DAAEB7113102D5E6090287FE6AD94CE5D6B739C6CA240B05C76FB73F25DD024BF935",
- "85FD085FDC12A080983DF07BD7012B0D402A0F4043FCB2775ADF0BAD174F9B08D1676E476985785C0A5DCC41DBFF6D95EF4D66A3FBDC4A74B82BA52DA0512B74",
- "AED8FA764B0FBFF821E05233D2F7B0900EC44D826F95E93C343C1BC3BA5A24374B1D616E7E7ABA453A0ADA5E4FAB5382409E0D42CE9C2BC7FB39A99C340C20F0",
- "7BA3B2E297233522EEB343BD3EBCFD835A04007735E87F0CA300CBEE6D416565162171581E4020FF4CF176450F1291EA2285CB9EBFFE4C56660627685145051C",
- "DE748BCF89EC88084721E16B85F30ADB1A6134D664B5843569BABC5BBD1A15CA9B61803C901A4FEF32965A1749C9F3A4E243E173939DC5A8DC495C671AB52145",
- "AAF4D2BDF200A919706D9842DCE16C98140D34BC433DF320ABA9BD429E549AA7A3397652A4D768277786CF993CDE2338673ED2E6B66C961FEFB82CD20C93338F",
- "C408218968B788BF864F0997E6BC4C3DBA68B276E2125A4843296052FF93BF5767B8CDCE7131F0876430C1165FEC6C4F47ADAA4FD8BCFACEF463B5D3D0FA61A0",
- "76D2D819C92BCE55FA8E092AB1BF9B9EAB237A25267986CACF2B8EE14D214D730DC9A5AA2D7B596E86A1FD8FA0804C77402D2FCD45083688B218B1CDFA0DCBCB",
- "72065EE4DD91C2D8509FA1FC28A37C7FC9FA7D5B3F8AD3D0D7A25626B57B1B44788D4CAF806290425F9890A3A2A35A905AB4B37ACFD0DA6E4517B2525C9651E4",
- "64475DFE7600D7171BEA0B394E27C9B00D8E74DD1E416A79473682AD3DFDBB706631558055CFC8A40E07BD015A4540DCDEA15883CBBF31412DF1DE1CD4152B91",
- "12CD1674A4488A5D7C2B3160D2E2C4B58371BEDAD793418D6F19C6EE385D70B3E06739369D4DF910EDB0B0A54CBFF43D54544CD37AB3A06CFA0A3DDAC8B66C89",
- "60756966479DEDC6DD4BCFF8EA7D1D4CE4D4AF2E7B097E32E3763518441147CC12B3C0EE6D2ECABF1198CEC92E86A3616FBA4F4E872F5825330ADBB4C1DEE444",
- "A7803BCB71BC1D0F4383DDE1E0612E04F872B715AD30815C2249CF34ABB8B024915CB2FC9F4E7CC4C8CFD45BE2D5A91EAB0941C7D270E2DA4CA4A9F7AC68663A",
- "B84EF6A7229A34A750D9A98EE2529871816B87FBE3BC45B45FA5AE82D5141540211165C3C5D7A7476BA5A4AA06D66476F0D9DC49A3F1EE72C3ACABD498967414",
- "FAE4B6D8EFC3F8C8E64D001DABEC3A21F544E82714745251B2B4B393F2F43E0DA3D403C64DB95A2CB6E23EBB7B9E94CDD5DDAC54F07C4A61BD3CB10AA6F93B49",
- "34F7286605A122369540141DED79B8957255DA2D4155ABBF5A8DBB89C8EB7EDE8EEEF1DAA46DC29D751D045DC3B1D658BB64B80FF8589EDDB3824B13DA235A6B",
- "3B3B48434BE27B9EABABBA43BF6B35F14B30F6A88DC2E750C358470D6B3AA3C18E47DB4017FA55106D8252F016371A00F5F8B070B74BA5F23CFFC5511C9F09F0",
- "BA289EBD6562C48C3E10A8AD6CE02E73433D1E93D7C9279D4D60A7E879EE11F441A000F48ED9F7C4ED87A45136D7DCCDCA482109C78A51062B3BA4044ADA2469",
- "022939E2386C5A37049856C850A2BB10A13DFEA4212B4C732A8840A9FFA5FAF54875C5448816B2785A007DA8A8D2BC7D71A54E4E6571F10B600CBDB25D13EDE3",
- "E6FEC19D89CE8717B1A087024670FE026F6C7CBDA11CAEF959BB2D351BF856F8055D1C0EBDAAA9D1B17886FC2C562B5E99642FC064710C0D3488A02B5ED7F6FD",
- "94C96F02A8F576ACA32BA61C2B206F907285D9299B83AC175C209A8D43D53BFE683DD1D83E7549CB906C28F59AB7C46F8751366A28C39DD5FE2693C9019666C8",
- "31A0CD215EBD2CB61DE5B9EDC91E6195E31C59A5648D5C9F737E125B2605708F2E325AB3381C8DCE1A3E958886F1ECDC60318F882CFE20A24191352E617B0F21",
- "91AB504A522DCE78779F4C6C6BA2E6B6DB5565C76D3E7E7C920CAF7F757EF9DB7C8FCF10E57F03379EA9BF75EB59895D96E149800B6AAE01DB778BB90AFBC989",
- "D85CABC6BD5B1A01A5AFD8C6734740DA9FD1C1ACC6DB29BFC8A2E5B668B028B6B3154BFB8703FA3180251D589AD38040CEB707C4BAD1B5343CB426B61EAA49C1",
- "D62EFBEC2CA9C1F8BD66CE8B3F6A898CB3F7566BA6568C618AD1FEB2B65B76C3CE1DD20F7395372FAF28427F61C9278049CF0140DF434F5633048C86B81E0399",
- "7C8FDC6175439E2C3DB15BAFA7FB06143A6A23BC90F449E79DEEF73C3D492A671715C193B6FEA9F036050B946069856B897E08C00768F5EE5DDCF70B7CD6D0E0",
- "58602EE7468E6BC9DF21BD51B23C005F72D6CB013F0A1B48CBEC5ECA299299F97F09F54A9A01483EAEB315A6478BAD37BA47CA1347C7C8FC9E6695592C91D723",
- "27F5B79ED256B050993D793496EDF4807C1D85A7B0A67C9C4FA99860750B0AE66989670A8FFD7856D7CE411599E58C4D77B232A62BEF64D15275BE46A68235FF",
- "3957A976B9F1887BF004A8DCA942C92D2B37EA52600F25E0C9BC5707D0279C00C6E85A839B0D2D8EB59C51D94788EBE62474A791CADF52CCCF20F5070B6573FC",
- "EAA2376D55380BF772ECCA9CB0AA4668C95C707162FA86D518C8CE0CA9BF7362B9F2A0ADC3FF59922DF921B94567E81E452F6C1A07FC817CEBE99604B3505D38",
- "C1E2C78B6B2734E2480EC550434CB5D613111ADCC21D475545C3B1B7E6FF12444476E5C055132E2229DC0F807044BB919B1A5662DD38A9EE65E243A3911AED1A",
- "8AB48713389DD0FCF9F965D3CE66B1E559A1F8C58741D67683CD971354F452E62D0207A65E436C5D5D8F8EE71C6ABFE50E669004C302B31A7EA8311D4A916051",
- "24CE0ADDAA4C65038BD1B1C0F1452A0B128777AABC94A29DF2FD6C7E2F85F8AB9AC7EFF516B0E0A825C84A24CFE492EAAD0A6308E46DD42FE8333AB971BB30CA",
- "5154F929EE03045B6B0C0004FA778EDEE1D139893267CC84825AD7B36C63DE32798E4A166D24686561354F63B00709A1364B3C241DE3FEBF0754045897467CD4",
- "E74E907920FD87BD5AD636DD11085E50EE70459C443E1CE5809AF2BC2EBA39F9E6D7128E0E3712C316DA06F4705D78A4838E28121D4344A2C79C5E0DB307A677",
- "BF91A22334BAC20F3FD80663B3CD06C4E8802F30E6B59F90D3035CC9798A217ED5A31ABBDA7FA6842827BDF2A7A1C21F6FCFCCBB54C6C52926F32DA816269BE1",
- "D9D5C74BE5121B0BD742F26BFFB8C89F89171F3F934913492B0903C271BBE2B3395EF259669BEF43B57F7FCC3027DB01823F6BAEE66E4F9FEAD4D6726C741FCE",
- "50C8B8CF34CD879F80E2FAAB3230B0C0E1CC3E9DCADEB1B9D97AB923415DD9A1FE38ADDD5C11756C67990B256E95AD6D8F9FEDCE10BF1C90679CDE0ECF1BE347",
- "0A386E7CD5DD9B77A035E09FE6FEE2C8CE61B5383C87EA43205059C5E4CD4F4408319BB0A82360F6A58E6C9CE3F487C446063BF813BC6BA535E17FC1826CFC91",
- "1F1459CB6B61CBAC5F0EFE8FC487538F42548987FCD56221CFA7BEB22504769E792C45ADFB1D6B3D60D7B749C8A75B0BDF14E8EA721B95DCA538CA6E25711209",
- "E58B3836B7D8FEDBB50CA5725C6571E74C0785E97821DAB8B6298C10E4C079D4A6CDF22F0FEDB55032925C16748115F01A105E77E00CEE3D07924DC0D8F90659",
- "B929CC6505F020158672DEDA56D0DB081A2EE34C00C1100029BDF8EA98034FA4BF3E8655EC697FE36F40553C5BB46801644A627D3342F4FC92B61F03290FB381",
- "72D353994B49D3E03153929A1E4D4F188EE58AB9E72EE8E512F29BC773913819CE057DDD7002C0433EE0A16114E3D156DD2C4A7E80EE53378B8670F23E33EF56",
- "C70EF9BFD775D408176737A0736D68517CE1AAAD7E81A93C8C1ED967EA214F56C8A377B1763E676615B60F3988241EAE6EAB9685A5124929D28188F29EAB06F7",
- "C230F0802679CB33822EF8B3B21BF7A9A28942092901D7DAC3760300831026CF354C9232DF3E084D9903130C601F63C1F4A4A4B8106E468CD443BBE5A734F45F",
- "6F43094CAFB5EBF1F7A4937EC50F56A4C9DA303CBB55AC1F27F1F1976CD96BEDA9464F0E7B9C54620B8A9FBA983164B8BE3578425A024F5FE199C36356B88972",
- "3745273F4C38225DB2337381871A0C6AAFD3AF9B018C88AA02025850A5DC3A42A1A3E03E56CBF1B0876D63A441F1D2856A39B8801EB5AF325201C415D65E97FE",
- "C50C44CCA3EC3EDAAE779A7E179450EBDDA2F97067C690AA6C5A4AC7C30139BB27C0DF4DB3220E63CB110D64F37FFE078DB72653E2DAACF93AE3F0A2D1A7EB2E",
- "8AEF263E385CBC61E19B28914243262AF5AFE8726AF3CE39A79C27028CF3ECD3F8D2DFD9CFC9AD91B58F6F20778FD5F02894A3D91C7D57D1E4B866A7F364B6BE",
- "28696141DE6E2D9BCB3235578A66166C1448D3E905A1B482D423BE4BC5369BC8C74DAE0ACC9CC123E1D8DDCE9F97917E8C019C552DA32D39D2219B9ABF0FA8C8",
- "2FB9EB2085830181903A9DAFE3DB428EE15BE7662224EFD643371FB25646AEE716E531ECA69B2BDC8233F1A8081FA43DA1500302975A77F42FA592136710E9DC",
- "66F9A7143F7A3314A669BF2E24BBB35014261D639F495B6C9C1F104FE8E320ACA60D4550D69D52EDBD5A3CDEB4014AE65B1D87AA770B69AE5C15F4330B0B0AD8",
- "F4C4DD1D594C3565E3E25CA43DAD82F62ABEA4835ED4CD811BCD975E46279828D44D4C62C3679F1B7F7B9DD4571D7B49557347B8C5460CBDC1BEF690FB2A08C0",
- "8F1DC9649C3A84551F8F6E91CAC68242A43B1F8F328EE92280257387FA7559AA6DB12E4AEADC2D26099178749C6864B357F3F83B2FB3EFA8D2A8DB056BED6BCC",
- "3139C1A7F97AFD1675D460EBBC07F2728AA150DF849624511EE04B743BA0A833092F18C12DC91B4DD243F333402F59FE28ABDBBBAE301E7B659C7A26D5C0F979",
- "06F94A2996158A819FE34C40DE3CF0379FD9FB85B3E363BA3926A0E7D960E3F4C2E0C70C7CE0CCB2A64FC29869F6E7AB12BD4D3F14FCE943279027E785FB5C29",
- "C29C399EF3EEE8961E87565C1CE263925FC3D0CE267D13E48DD9E732EE67B0F69FAD56401B0F10FCAAC119201046CCA28C5B14ABDEA3212AE65562F7F138DB3D",
- "4CEC4C9DF52EEF05C3F6FAAA9791BC7445937183224ECC37A1E58D0132D35617531D7E795F52AF7B1EB9D147DE1292D345FE341823F8E6BC1E5BADCA5C656108",
- "898BFBAE93B3E18D00697EAB7D9704FA36EC339D076131CEFDF30EDBE8D9CC81C3A80B129659B163A323BAB9793D4FEED92D54DAE966C77529764A09BE88DB45",
- "EE9BD0469D3AAF4F14035BE48A2C3B84D9B4B1FFF1D945E1F1C1D38980A951BE197B25FE22C731F20AEACC930BA9C4A1F4762227617AD350FDABB4E80273A0F4",
- "3D4D3113300581CD96ACBF091C3D0F3C310138CD6979E6026CDE623E2DD1B24D4A8638BED1073344783AD0649CC6305CCEC04BEB49F31C633088A99B65130267",
- "95C0591AD91F921AC7BE6D9CE37E0663ED8011C1CFD6D0162A5572E94368BAC02024485E6A39854AA46FE38E97D6C6B1947CD272D86B06BB5B2F78B9B68D559D",
- "227B79DED368153BF46C0A3CA978BFDBEF31F3024A5665842468490B0FF748AE04E7832ED4C9F49DE9B1706709D623E5C8C15E3CAECAE8D5E433430FF72F20EB",
- "5D34F3952F0105EEF88AE8B64C6CE95EBFADE0E02C69B08762A8712D2E4911AD3F941FC4034DC9B2E479FDBCD279B902FAF5D838BB2E0C6495D372B5B7029813",
- "7F939BF8353ABCE49E77F14F3750AF20B7B03902E1A1E7FB6AAF76D0259CD401A83190F15640E74F3E6C5A90E839C7821F6474757F75C7BF9002084DDC7A62DC",
- "062B61A2F9A33A71D7D0A06119644C70B0716A504DE7E5E1BE49BD7B86E7ED6817714F9F0FC313D06129597E9A2235EC8521DE36F7290A90CCFC1FFA6D0AEE29",
- "F29E01EEAE64311EB7F1C6422F946BF7BEA36379523E7B2BBABA7D1D34A22D5EA5F1C5A09D5CE1FE682CCED9A4798D1A05B46CD72DFF5C1B355440B2A2D476BC",
- "EC38CD3BBAB3EF35D7CB6D5C914298351D8A9DC97FCEE051A8A02F58E3ED6184D0B7810A5615411AB1B95209C3C810114FDEB22452084E77F3F847C6DBAAFE16",
- "C2AEF5E0CA43E82641565B8CB943AA8BA53550CAEF793B6532FAFAD94B816082F0113A3EA2F63608AB40437ECC0F0229CB8FA224DCF1C478A67D9B64162B92D1",
- "15F534EFFF7105CD1C254D074E27D5898B89313B7D366DC2D7D87113FA7D53AAE13F6DBA487AD8103D5E854C91FDB6E1E74B2EF6D1431769C30767DDE067A35C",
- "89ACBCA0B169897A0A2714C2DF8C95B5B79CB69390142B7D6018BB3E3076B099B79A964152A9D912B1B86412B7E372E9CECAD7F25D4CBAB8A317BE36492A67D7",
- "E3C0739190ED849C9C962FD9DBB55E207E624FCAC1EB417691515499EEA8D8267B7E8F1287A63633AF5011FDE8C4DDF55BFDF722EDF88831414F2CFAED59CB9A",
- "8D6CF87C08380D2D1506EEE46FD4222D21D8C04E585FBFD08269C98F702833A156326A0724656400EE09351D57B440175E2A5DE93CC5F80DB6DAF83576CF75FA",
- "DA24BEDE383666D563EEED37F6319BAF20D5C75D1635A6BA5EF4CFA1AC95487E96F8C08AF600AAB87C986EBAD49FC70A58B4890B9C876E091016DAF49E1D322E",
- "F9D1D1B1E87EA7AE753A029750CC1CF3D0157D41805E245C5617BB934E732F0AE3180B78E05BFE76C7C3051E3E3AC78B9B50C05142657E1E03215D6EC7BFD0FC",
- "11B7BC1668032048AA43343DE476395E814BBBC223678DB951A1B03A021EFAC948CFBE215F97FE9A72A2F6BC039E3956BFA417C1A9F10D6D7BA5D3D32FF323E5",
- "B8D9000E4FC2B066EDB91AFEE8E7EB0F24E3A201DB8B6793C0608581E628ED0BCC4E5AA6787992A4BCC44E288093E63EE83ABD0BC3EC6D0934A674A4DA13838A",
- "CE325E294F9B6719D6B61278276AE06A2564C03BB0B783FAFE785BDF89C7D5ACD83E78756D301B445699024EAEB77B54D477336EC2A4F332F2B3F88765DDB0C3",
- "29ACC30E9603AE2FCCF90BF97E6CC463EBE28C1B2F9B4B765E70537C25C702A29DCBFBF14C99C54345BA2B51F17B77B5F15DB92BBAD8FA95C471F5D070A137CC",
- "3379CBAAE562A87B4C0425550FFDD6BFE1203F0D666CC7EA095BE407A5DFE61EE91441CD5154B3E53B4F5FB31AD4C7A9AD5C7AF4AE679AA51A54003A54CA6B2D",
- "3095A349D245708C7CF550118703D7302C27B60AF5D4E67FC978F8A4E60953C7A04F92FCF41AEE64321CCB707A895851552B1E37B00BC5E6B72FA5BCEF9E3FFF",
- "07262D738B09321F4DBCCEC4BB26F48CB0F0ED246CE0B31B9A6E7BC683049F1F3E5545F28CE932DD985C5AB0F43BD6DE0770560AF329065ED2E49D34624C2CBB",
- "B6405ECA8EE3316C87061CC6EC18DBA53E6C250C63BA1F3BAE9E55DD3498036AF08CD272AA24D713C6020D77AB2F3919AF1A32F307420618AB97E73953994FB4",
- "7EE682F63148EE45F6E5315DA81E5C6E557C2C34641FC509C7A5701088C38A74756168E2CD8D351E88FD1A451F360A01F5B2580F9B5A2E8CFC138F3DD59A3FFC",
- "1D263C179D6B268F6FA016F3A4F29E943891125ED8593C81256059F5A7B44AF2DCB2030D175C00E62ECAF7EE96682AA07AB20A611024A28532B1C25B86657902",
- "106D132CBDB4CD2597812846E2BC1BF732FEC5F0A5F65DBB39EC4E6DC64AB2CE6D24630D0F15A805C3540025D84AFA98E36703C3DBEE713E72DDE8465BC1BE7E",
- "0E79968226650667A8D862EA8DA4891AF56A4E3A8B6D1750E394F0DEA76D640D85077BCEC2CC86886E506751B4F6A5838F7F0B5FEF765D9DC90DCDCBAF079F08",
- "521156A82AB0C4E566E5844D5E31AD9AAF144BBD5A464FDCA34DBD5717E8FF711D3FFEBBFA085D67FE996A34F6D3E4E60B1396BF4B1610C263BDBB834D560816",
- "1ABA88BEFC55BC25EFBCE02DB8B9933E46F57661BAEABEB21CC2574D2A518A3CBA5DC5A38E49713440B25F9C744E75F6B85C9D8F4681F676160F6105357B8406",
- "5A9949FCB2C473CDA968AC1B5D08566DC2D816D960F57E63B898FA701CF8EBD3F59B124D95BFBBEDC5F1CF0E17D5EAED0C02C50B69D8A402CABCCA4433B51FD4",
- "B0CEAD09807C672AF2EB2B0F06DDE46CF5370E15A4096B1A7D7CBB36EC31C205FBEFCA00B7A4162FA89FB4FB3EB78D79770C23F44E7206664CE3CD931C291E5D",
- "BB6664931EC97044E45B2AE420AE1C551A8874BC937D08E969399C3964EBDBA8346CDD5D09CAAFE4C28BA7EC788191CECA65DDD6F95F18583E040D0F30D0364D",
- "65BC770A5FAA3792369803683E844B0BE7EE96F29F6D6A35568006BD5590F9A4EF639B7A8061C7B0424B66B60AC34AF3119905F33A9D8C3AE18382CA9B689900",
- "EA9B4DCA333336AAF839A45C6EAA48B8CB4C7DDABFFEA4F643D6357EA6628A480A5B45F2B052C1B07D1FEDCA918B6F1139D80F74C24510DCBAA4BE70EACC1B06",
- "E6342FB4A780AD975D0E24BCE149989B91D360557E87994F6B457B895575CC02D0C15BAD3CE7577F4C63927FF13F3E381FF7E72BDBE745324844A9D27E3F1C01",
- "3E209C9B33E8E461178AB46B1C64B49A07FB745F1C8BC95FBFB94C6B87C69516651B264EF980937FAD41238B91DDC011A5DD777C7EFD4494B4B6ECD3A9C22AC0",
- "FD6A3D5B1875D80486D6E69694A56DBB04A99A4D051F15DB2689776BA1C4882E6D462A603B7015DC9F4B7450F05394303B8652CFB404A266962C41BAE6E18A94",
- "951E27517E6BAD9E4195FC8671DEE3E7E9BE69CEE1422CB9FECFCE0DBA875F7B310B93EE3A3D558F941F635F668FF832D2C1D033C5E2F0997E4C66F147344E02",
- "8EBA2F874F1AE84041903C7C4253C82292530FC8509550BFDC34C95C7E2889D5650B0AD8CB988E5C4894CB87FBFBB19612EA93CCC4C5CAD17158B9763464B492",
- "16F712EAA1B7C6354719A8E7DBDFAF55E4063A4D277D947550019B38DFB564830911057D50506136E2394C3B28945CC964967D54E3000C2181626CFB9B73EFD2",
- "C39639E7D5C7FB8CDD0FD3E6A52096039437122F21C78F1679CEA9D78A734C56ECBEB28654B4F18E342C331F6F7229EC4B4BC281B2D80A6EB50043F31796C88C",
- "72D081AF99F8A173DCC9A0AC4EB3557405639A29084B54A40172912A2F8A395129D5536F0918E902F9E8FA6000995F4168DDC5F893011BE6A0DBC9B8A1A3F5BB",
- "C11AA81E5EFD24D5FC27EE586CFD8847FBB0E27601CCECE5ECCA0198E3C7765393BB74457C7E7A27EB9170350E1FB53857177506BE3E762CC0F14D8C3AFE9077",
- "C28F2150B452E6C0C424BCDE6F8D72007F9310FED7F2F87DE0DBB64F4479D6C1441BA66F44B2ACCEE61609177ED340128B407ECEC7C64BBE50D63D22D8627727",
- "F63D88122877EC30B8C8B00D22E89000A966426112BD44166E2F525B769CCBE9B286D437A0129130DDE1A86C43E04BEDB594E671D98283AFE64CE331DE9828FD",
- "348B0532880B88A6614A8D7408C3F913357FBB60E995C60205BE9139E74998AEDE7F4581E42F6B52698F7FA1219708C14498067FD1E09502DE83A77DD281150C",
- "5133DC8BEF725359DFF59792D85EAF75B7E1DCD1978B01C35B1B85FCEBC63388AD99A17B6346A217DC1A9622EBD122ECF6913C4D31A6B52A695B86AF00D741A0",
- "2753C4C0E98ECAD806E88780EC27FCCD0F5C1AB547F9E4BF1659D192C23AA2CC971B58B6802580BAEF8ADC3B776EF7086B2545C2987F348EE3719CDEF258C403",
- "B1663573CE4B9D8CAEFC865012F3E39714B9898A5DA6CE17C25A6A47931A9DDB9BBE98ADAA553BEED436E89578455416C2A52A525CF2862B8D1D49A2531B7391",
- "64F58BD6BFC856F5E873B2A2956EA0EDA0D6DB0DA39C8C7FC67C9F9FEEFCFF3072CDF9E6EA37F69A44F0C61AA0DA3693C2DB5B54960C0281A088151DB42B11E8",
- "0764C7BE28125D9065C4B98A69D60AEDE703547C66A12E17E1C618994132F5EF82482C1E3FE3146CC65376CC109F0138ED9A80E49F1F3C7D610D2F2432F20605",
- "F748784398A2FF03EBEB07E155E66116A839741A336E32DA71EC696001F0AD1B25CD48C69CFCA7265ECA1DD71904A0CE748AC4124F3571076DFA7116A9CF00E9",
- "3F0DBC0186BCEB6B785BA78D2A2A013C910BE157BDAFFAE81BB6663B1A73722F7F1228795F3ECADA87CF6EF0078474AF73F31ECA0CC200ED975B6893F761CB6D",
- "D4762CD4599876CA75B2B8FE249944DBD27ACE741FDAB93616CBC6E425460FEB51D4E7ADCC38180E7FC47C89024A7F56191ADB878DFDE4EAD62223F5A2610EFE",
- "CD36B3D5B4C91B90FCBBA79513CFEE1907D8645A162AFD0CD4CF4192D4A5F4C892183A8EACDB2B6B6A9D9AA8C11AC1B261B380DBEE24CA468F1BFD043C58EEFE",
- "98593452281661A53C48A9D8CD790826C1A1CE567738053D0BEE4A91A3D5BD92EEFDBABEBE3204F2031CA5F781BDA99EF5D8AE56E5B04A9E1ECD21B0EB05D3E1",
- "771F57DD2775CCDAB55921D3E8E30CCF484D61FE1C1B9C2AE819D0FB2A12FAB9BE70C4A7A138DA84E8280435DAADE5BBE66AF0836A154F817FB17F3397E725A3",
- "C60897C6F828E21F16FBB5F15B323F87B6C8955EABF1D38061F707F608ABDD993FAC3070633E286CF8339CE295DD352DF4B4B40B2F29DA1DD50B3A05D079E6BB",
- "8210CD2C2D3B135C2CF07FA0D1433CD771F325D075C6469D9C7F1BA0943CD4AB09808CABF4ACB9CE5BB88B498929B4B847F681AD2C490D042DB2AEC94214B06B",
- "1D4EDFFFD8FD80F7E4107840FA3AA31E32598491E4AF7013C197A65B7F36DD3AC4B478456111CD4309D9243510782FA31B7C4C95FA951520D020EB7E5C36E4EF",
- "AF8E6E91FAB46CE4873E1A50A8EF448CC29121F7F74DEEF34A71EF89CC00D9274BC6C2454BBB3230D8B2EC94C62B1DEC85F3593BFA30EA6F7A44D7C09465A253",
- "29FD384ED4906F2D13AA9FE7AF905990938BED807F1832454A372AB412EEA1F5625A1FCC9AC8343B7C67C5ABA6E0B1CC4644654913692C6B39EB9187CEACD3EC",
- "A268C7885D9874A51C44DFFED8EA53E94F78456E0B2ED99FF5A3924760813826D960A15EDBEDBB5DE5226BA4B074E71B05C55B9756BB79E55C02754C2C7B6C8A",
- "0CF8545488D56A86817CD7ECB10F7116B7EA530A45B6EA497B6C72C997E09E3D0DA8698F46BB006FC977C2CD3D1177463AC9057FDD1662C85D0C126443C10473",
- "B39614268FDD8781515E2CFEBF89B4D5402BAB10C226E6344E6B9AE000FB0D6C79CB2F3EC80E80EAEB1980D2F8698916BD2E9F747236655116649CD3CA23A837",
- "74BEF092FC6F1E5DBA3663A3FB003B2A5BA257496536D99F62B9D73F8F9EB3CE9FF3EEC709EB883655EC9EB896B9128F2AFC89CF7D1AB58A72F4A3BF034D2B4A",
- "3A988D38D75611F3EF38B8774980B33E573B6C57BEE0469BA5EED9B44F29945E7347967FBA2C162E1C3BE7F310F2F75EE2381E7BFD6B3F0BAEA8D95DFB1DAFB1",
- "58AEDFCE6F67DDC85A28C992F1C0BD0969F041E66F1EE88020A125CBFCFEBCD61709C9C4EBA192C15E69F020D462486019FA8DEA0CD7A42921A19D2FE546D43D",
- "9347BD291473E6B4E368437B8E561E065F649A6D8ADA479AD09B1999A8F26B91CF6120FD3BFE014E83F23ACFA4C0AD7B3712B2C3C0733270663112CCD9285CD9",
- "B32163E7C5DBB5F51FDC11D2EAC875EFBBCB7E7699090A7E7FF8A8D50795AF5D74D9FF98543EF8CDF89AC13D0485278756E0EF00C817745661E1D59FE38E7537",
- "1085D78307B1C4B008C57A2E7E5B234658A0A82E4FF1E4AAAC72B312FDA0FE27D233BC5B10E9CC17FDC7697B540C7D95EB215A19A1A0E20E1ABFA126EFD568C7",
- "4E5C734C7DDE011D83EAC2B7347B373594F92D7091B9CA34CB9C6F39BDF5A8D2F134379E16D822F6522170CCF2DDD55C84B9E6C64FC927AC4CF8DFB2A17701F2",
- "695D83BD990A1117B3D0CE06CC888027D12A054C2677FD82F0D4FBFC93575523E7991A5E35A3752E9B70CE62992E268A877744CDD435F5F130869C9A2074B338",
- "A6213743568E3B3158B9184301F3690847554C68457CB40FC9A4B8CFD8D4A118C301A07737AEDA0F929C68913C5F51C80394F53BFF1C3E83B2E40CA97EBA9E15",
- "D444BFA2362A96DF213D070E33FA841F51334E4E76866B8139E8AF3BB3398BE2DFADDCBC56B9146DE9F68118DC5829E74B0C28D7711907B121F9161CB92B69A9",
- "142709D62E28FCCCD0AF97FAD0F8465B971E82201DC51070FAA0372AA43E92484BE1C1E73BA10906D5D1853DB6A4106E0A7BF9800D373D6DEE2D46D62EF2A461"
- };
- }
-}
diff --git a/deps/BLAKE2/csharp/Blake2Sharp.sln b/deps/BLAKE2/csharp/Blake2Sharp.sln
deleted file mode 100644
index 8063f7a..0000000
--- a/deps/BLAKE2/csharp/Blake2Sharp.sln
+++ /dev/null
@@ -1,34 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio 2012
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{98C3F5AC-1FDF-4AAF-B067-A9E9C663D87B}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Blake2Sharp", "Blake2Sharp\Blake2Sharp.csproj", "{E21AB364-9130-4F14-ABE1-18FA0C089130}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Blake2Sharp.Tests", "Blake2Sharp.Tests\Blake2Sharp.Tests.csproj", "{A32451B3-03A3-4CB3-AD9F-1408143D6AB7}"
-EndProject
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Blake2Sharp.CompressionCodeGen", "Blake2Sharp.CompressionCodeGen\Blake2Sharp.CompressionCodeGen.csproj", "{17466328-5736-4EA1-A88D-CE016CCA2E80}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Any CPU = Debug|Any CPU
- Release|Any CPU = Release|Any CPU
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {E21AB364-9130-4F14-ABE1-18FA0C089130}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {E21AB364-9130-4F14-ABE1-18FA0C089130}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {E21AB364-9130-4F14-ABE1-18FA0C089130}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {E21AB364-9130-4F14-ABE1-18FA0C089130}.Release|Any CPU.Build.0 = Release|Any CPU
- {A32451B3-03A3-4CB3-AD9F-1408143D6AB7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {A32451B3-03A3-4CB3-AD9F-1408143D6AB7}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {A32451B3-03A3-4CB3-AD9F-1408143D6AB7}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {A32451B3-03A3-4CB3-AD9F-1408143D6AB7}.Release|Any CPU.Build.0 = Release|Any CPU
- {17466328-5736-4EA1-A88D-CE016CCA2E80}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {17466328-5736-4EA1-A88D-CE016CCA2E80}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {17466328-5736-4EA1-A88D-CE016CCA2E80}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {17466328-5736-4EA1-A88D-CE016CCA2E80}.Release|Any CPU.Build.0 = Release|Any CPU
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
-EndGlobal
diff --git a/deps/BLAKE2/csharp/Blake2Sharp/Blake2B.cs b/deps/BLAKE2/csharp/Blake2Sharp/Blake2B.cs
deleted file mode 100644
index 5654fe0..0000000
--- a/deps/BLAKE2/csharp/Blake2Sharp/Blake2B.cs
+++ /dev/null
@@ -1,72 +0,0 @@
-// BLAKE2 reference source code package - C# implementation
-
-// Written in 2012 by Christian Winnerlein
-
-// To the extent possible under law, the author(s) have dedicated all copyright
-// and related and neighboring rights to this software to the public domain
-// worldwide. This software is distributed without any warranty.
-
-// You should have received a copy of the CC0 Public Domain Dedication along with
-// this software. If not, see .
-
-using System;
-
-namespace Blake2Sharp
-{
- public static class Blake2B
- {
- public static Hasher Create()
- {
- return Create(new Blake2BConfig());
- }
-
- public static Hasher Create(Blake2BConfig config)
- {
- return new Blake2BHasher(config);
- }
-
- /*public static Hasher CreateParallel(int parallelism = 4)
- {
- return CreateParallel(null, parallelism);
- }
-
- public static Hasher CreateParallel(Blake2Config config, int parallelism = 4)
- {
- if (parallelism < 2)
- throw new ArgumentOutOfRangeException("parallelism", "parallism must be at least 2");
- throw new NotImplementedException();
- }
-
- public static Hasher CreateTreeHasher(Blake2BConfig config, Blake2TreeConfig treeConfig)
- {
- }
-
- public static NodeHasher CreateNodeHasher(Blake2BConfig config, Blake2TreeConfig treeConfig)
- {
- }*/
-
- public static byte[] ComputeHash(byte[] data, int start, int count)
- {
- return ComputeHash(data, start, count, null);
- }
-
- public static byte[] ComputeHash(byte[] data)
- {
- return ComputeHash(data, 0, data.Length, null);
- }
-
- public static byte[] ComputeHash(byte[] data, Blake2BConfig config)
- {
- return ComputeHash(data, 0, data.Length, config);
- }
-
- public static byte[] ComputeHash(byte[] data, int start, int count, Blake2BConfig config)
- {
- var hasher = Create(config);
- hasher.Update(data, start, count);
- return hasher.Finish();
- }
- //public static byte[] ComputeParallelHash(byte[] data);
- //public static byte[] ComputeParallelHash(byte[] data, Blake2Config config);
- }
-}
diff --git a/deps/BLAKE2/csharp/Blake2Sharp/Blake2BConfig.cs b/deps/BLAKE2/csharp/Blake2Sharp/Blake2BConfig.cs
deleted file mode 100644
index 0bb2ada..0000000
--- a/deps/BLAKE2/csharp/Blake2Sharp/Blake2BConfig.cs
+++ /dev/null
@@ -1,57 +0,0 @@
-// BLAKE2 reference source code package - C# implementation
-
-// Written in 2012 by Christian Winnerlein
-
-// To the extent possible under law, the author(s) have dedicated all copyright
-// and related and neighboring rights to this software to the public domain
-// worldwide. This software is distributed without any warranty.
-
-// You should have received a copy of the CC0 Public Domain Dedication along with
-// this software. If not, see .
-
-using System;
-using System.Text;
-
-namespace Blake2Sharp
-{
- public sealed class Blake2BConfig : ICloneable
- {
- public byte[] Personalization { get; set; }
- public byte[] Salt { get; set; }
- public byte[] Key { get; set; }
- public int OutputSizeInBytes { get; set; }
- public int OutputSizeInBits
- {
- get { return OutputSizeInBytes * 8; }
- set
- {
- if (value % 8 != 0)
- throw new ArgumentException("Output size must be a multiple of 8 bits");
- OutputSizeInBytes = value / 8;
- }
- }
-
- public Blake2BConfig()
- {
- OutputSizeInBytes = 64;
- }
-
- public Blake2BConfig Clone()
- {
- var result = new Blake2BConfig();
- result.OutputSizeInBytes = OutputSizeInBytes;
- if (Key != null)
- result.Key = (byte[])Key.Clone();
- if (Personalization != null)
- result.Personalization = (byte[])Personalization.Clone();
- if (Salt != null)
- result.Salt = (byte[])Salt.Clone();
- return result;
- }
-
- object ICloneable.Clone()
- {
- return Clone();
- }
- }
-}
diff --git a/deps/BLAKE2/csharp/Blake2Sharp/Blake2BCore-FullyUnrolled.cs b/deps/BLAKE2/csharp/Blake2Sharp/Blake2BCore-FullyUnrolled.cs
deleted file mode 100644
index 623fc9a..0000000
--- a/deps/BLAKE2/csharp/Blake2Sharp/Blake2BCore-FullyUnrolled.cs
+++ /dev/null
@@ -1,1455 +0,0 @@
-// BLAKE2 reference source code package - C# implementation
-
-// Written in 2012 by Christian Winnerlein
-
-// To the extent possible under law, the author(s) have dedicated all copyright
-// and related and neighboring rights to this software to the public domain
-// worldwide. This software is distributed without any warranty.
-
-// You should have received a copy of the CC0 Public Domain Dedication along with
-// this software. If not, see .
-
-using System;
-
-namespace Blake2Sharp
-{
-#if true
- public sealed partial class Blake2BCore
- {
- partial void Compress(byte[] block, int start)
- {
- var h = _h;
- var m = _m;
-
- if (BitConverter.IsLittleEndian)
- {
- Buffer.BlockCopy(block, start, m, 0, BlockSizeInBytes);
- }
- else
- {
- for (int i = 0; i < 16; ++i)
- m[i] = BytesToUInt64(block, start + (i << 3));
- }
-
- /*var m0 = m[0];
- var m1 = m[1];
- var m2 = m[2];
- var m3 = m[3];
- var m4 = m[4];
- var m5 = m[5];
- var m6 = m[6];
- var m7 = m[7];
- var m8 = m[8];
- var m9 = m[9];
- var m10 = m[10];
- var m11 = m[11];
- var m12 = m[12];
- var m13 = m[13];
- var m14 = m[14];
- var m15 = m[15];*/
-
- var v0 = h[0];
- var v1 = h[1];
- var v2 = h[2];
- var v3 = h[3];
- var v4 = h[4];
- var v5 = h[5];
- var v6 = h[6];
- var v7 = h[7];
-
- var v8 = IV0;
- var v9 = IV1;
- var v10 = IV2;
- var v11 = IV3;
- var v12 = IV4 ^ _counter0;
- var v13 = IV5 ^ _counter1;
- var v14 = IV6 ^ _finalizationFlag0;
- var v15 = IV7 ^ _finalizationFlag1;
-
- // Rounds
-
- //System.Diagnostics.Debugger.Break();
-
- // ##### Round(0) #####
- // G(0, 0, v0, v4, v8, v12)
- v0 = v0 + v4 + m[0];
- v12 ^= v0;
- v12 = ((v12 >> 32) | (v12 << (64 - 32)));
- v8 = v8 + v12;
- v4 ^= v8;
- v4 = ((v4 >> 24) | (v4 << (64 - 24)));
- v0 = v0 + v4 + m[1];
- v12 ^= v0;
- v12 = ((v12 >> 16) | (v12 << (64 - 16)));
- v8 = v8 + v12;
- v4 ^= v8;
- v4 = ((v4 >> 63) | (v4 << (64 - 63)));
-
- // G(0, 1, v1, v5, v9, v13)
- v1 = v1 + v5 + m[2];
- v13 ^= v1;
- v13 = ((v13 >> 32) | (v13 << (64 - 32)));
- v9 = v9 + v13;
- v5 ^= v9;
- v5 = ((v5 >> 24) | (v5 << (64 - 24)));
- v1 = v1 + v5 + m[3];
- v13 ^= v1;
- v13 = ((v13 >> 16) | (v13 << (64 - 16)));
- v9 = v9 + v13;
- v5 ^= v9;
- v5 = ((v5 >> 63) | (v5 << (64 - 63)));
-
- // G(0, 2, v2, v6, v10, v14)
- v2 = v2 + v6 + m[4];
- v14 ^= v2;
- v14 = ((v14 >> 32) | (v14 << (64 - 32)));
- v10 = v10 + v14;
- v6 ^= v10;
- v6 = ((v6 >> 24) | (v6 << (64 - 24)));
- v2 = v2 + v6 + m[5];
- v14 ^= v2;
- v14 = ((v14 >> 16) | (v14 << (64 - 16)));
- v10 = v10 + v14;
- v6 ^= v10;
- v6 = ((v6 >> 63) | (v6 << (64 - 63)));
-
- // G(0, 3, v3, v7, v11, v15)
- v3 = v3 + v7 + m[6];
- v15 ^= v3;
- v15 = ((v15 >> 32) | (v15 << (64 - 32)));
- v11 = v11 + v15;
- v7 ^= v11;
- v7 = ((v7 >> 24) | (v7 << (64 - 24)));
- v3 = v3 + v7 + m[7];
- v15 ^= v3;
- v15 = ((v15 >> 16) | (v15 << (64 - 16)));
- v11 = v11 + v15;
- v7 ^= v11;
- v7 = ((v7 >> 63) | (v7 << (64 - 63)));
-
- // G(0, 4, v0, v5, v10, v15)
- v0 = v0 + v5 + m[8];
- v15 ^= v0;
- v15 = ((v15 >> 32) | (v15 << (64 - 32)));
- v10 = v10 + v15;
- v5 ^= v10;
- v5 = ((v5 >> 24) | (v5 << (64 - 24)));
- v0 = v0 + v5 + m[9];
- v15 ^= v0;
- v15 = ((v15 >> 16) | (v15 << (64 - 16)));
- v10 = v10 + v15;
- v5 ^= v10;
- v5 = ((v5 >> 63) | (v5 << (64 - 63)));
-
- // G(0, 5, v1, v6, v11, v12)
- v1 = v1 + v6 + m[10];
- v12 ^= v1;
- v12 = ((v12 >> 32) | (v12 << (64 - 32)));
- v11 = v11 + v12;
- v6 ^= v11;
- v6 = ((v6 >> 24) | (v6 << (64 - 24)));
- v1 = v1 + v6 + m[11];
- v12 ^= v1;
- v12 = ((v12 >> 16) | (v12 << (64 - 16)));
- v11 = v11 + v12;
- v6 ^= v11;
- v6 = ((v6 >> 63) | (v6 << (64 - 63)));
-
- // G(0, 6, v2, v7, v8, v13)
- v2 = v2 + v7 + m[12];
- v13 ^= v2;
- v13 = ((v13 >> 32) | (v13 << (64 - 32)));
- v8 = v8 + v13;
- v7 ^= v8;
- v7 = ((v7 >> 24) | (v7 << (64 - 24)));
- v2 = v2 + v7 + m[13];
- v13 ^= v2;
- v13 = ((v13 >> 16) | (v13 << (64 - 16)));
- v8 = v8 + v13;
- v7 ^= v8;
- v7 = ((v7 >> 63) | (v7 << (64 - 63)));
-
- // G(0, 7, v3, v4, v9, v14)
- v3 = v3 + v4 + m[14];
- v14 ^= v3;
- v14 = ((v14 >> 32) | (v14 << (64 - 32)));
- v9 = v9 + v14;
- v4 ^= v9;
- v4 = ((v4 >> 24) | (v4 << (64 - 24)));
- v3 = v3 + v4 + m[15];
- v14 ^= v3;
- v14 = ((v14 >> 16) | (v14 << (64 - 16)));
- v9 = v9 + v14;
- v4 ^= v9;
- v4 = ((v4 >> 63) | (v4 << (64 - 63)));
-
-
- // ##### Round(1) #####
- // G(1, 0, v0, v4, v8, v12)
- v0 = v0 + v4 + m[14];
- v12 ^= v0;
- v12 = ((v12 >> 32) | (v12 << (64 - 32)));
- v8 = v8 + v12;
- v4 ^= v8;
- v4 = ((v4 >> 24) | (v4 << (64 - 24)));
- v0 = v0 + v4 + m[10];
- v12 ^= v0;
- v12 = ((v12 >> 16) | (v12 << (64 - 16)));
- v8 = v8 + v12;
- v4 ^= v8;
- v4 = ((v4 >> 63) | (v4 << (64 - 63)));
-
- // G(1, 1, v1, v5, v9, v13)
- v1 = v1 + v5 + m[4];
- v13 ^= v1;
- v13 = ((v13 >> 32) | (v13 << (64 - 32)));
- v9 = v9 + v13;
- v5 ^= v9;
- v5 = ((v5 >> 24) | (v5 << (64 - 24)));
- v1 = v1 + v5 + m[8];
- v13 ^= v1;
- v13 = ((v13 >> 16) | (v13 << (64 - 16)));
- v9 = v9 + v13;
- v5 ^= v9;
- v5 = ((v5 >> 63) | (v5 << (64 - 63)));
-
- // G(1, 2, v2, v6, v10, v14)
- v2 = v2 + v6 + m[9];
- v14 ^= v2;
- v14 = ((v14 >> 32) | (v14 << (64 - 32)));
- v10 = v10 + v14;
- v6 ^= v10;
- v6 = ((v6 >> 24) | (v6 << (64 - 24)));
- v2 = v2 + v6 + m[15];
- v14 ^= v2;
- v14 = ((v14 >> 16) | (v14 << (64 - 16)));
- v10 = v10 + v14;
- v6 ^= v10;
- v6 = ((v6 >> 63) | (v6 << (64 - 63)));
-
- // G(1, 3, v3, v7, v11, v15)
- v3 = v3 + v7 + m[13];
- v15 ^= v3;
- v15 = ((v15 >> 32) | (v15 << (64 - 32)));
- v11 = v11 + v15;
- v7 ^= v11;
- v7 = ((v7 >> 24) | (v7 << (64 - 24)));
- v3 = v3 + v7 + m[6];
- v15 ^= v3;
- v15 = ((v15 >> 16) | (v15 << (64 - 16)));
- v11 = v11 + v15;
- v7 ^= v11;
- v7 = ((v7 >> 63) | (v7 << (64 - 63)));
-
- // G(1, 4, v0, v5, v10, v15)
- v0 = v0 + v5 + m[1];
- v15 ^= v0;
- v15 = ((v15 >> 32) | (v15 << (64 - 32)));
- v10 = v10 + v15;
- v5 ^= v10;
- v5 = ((v5 >> 24) | (v5 << (64 - 24)));
- v0 = v0 + v5 + m[12];
- v15 ^= v0;
- v15 = ((v15 >> 16) | (v15 << (64 - 16)));
- v10 = v10 + v15;
- v5 ^= v10;
- v5 = ((v5 >> 63) | (v5 << (64 - 63)));
-
- // G(1, 5, v1, v6, v11, v12)
- v1 = v1 + v6 + m[0];
- v12 ^= v1;
- v12 = ((v12 >> 32) | (v12 << (64 - 32)));
- v11 = v11 + v12;
- v6 ^= v11;
- v6 = ((v6 >> 24) | (v6 << (64 - 24)));
- v1 = v1 + v6 + m[2];
- v12 ^= v1;
- v12 = ((v12 >> 16) | (v12 << (64 - 16)));
- v11 = v11 + v12;
- v6 ^= v11;
- v6 = ((v6 >> 63) | (v6 << (64 - 63)));
-
- // G(1, 6, v2, v7, v8, v13)
- v2 = v2 + v7 + m[11];
- v13 ^= v2;
- v13 = ((v13 >> 32) | (v13 << (64 - 32)));
- v8 = v8 + v13;
- v7 ^= v8;
- v7 = ((v7 >> 24) | (v7 << (64 - 24)));
- v2 = v2 + v7 + m[7];
- v13 ^= v2;
- v13 = ((v13 >> 16) | (v13 << (64 - 16)));
- v8 = v8 + v13;
- v7 ^= v8;
- v7 = ((v7 >> 63) | (v7 << (64 - 63)));
-
- // G(1, 7, v3, v4, v9, v14)
- v3 = v3 + v4 + m[5];
- v14 ^= v3;
- v14 = ((v14 >> 32) | (v14 << (64 - 32)));
- v9 = v9 + v14;
- v4 ^= v9;
- v4 = ((v4 >> 24) | (v4 << (64 - 24)));
- v3 = v3 + v4 + m[3];
- v14 ^= v3;
- v14 = ((v14 >> 16) | (v14 << (64 - 16)));
- v9 = v9 + v14;
- v4 ^= v9;
- v4 = ((v4 >> 63) | (v4 << (64 - 63)));
-
-
- // ##### Round(2) #####
- // G(2, 0, v0, v4, v8, v12)
- v0 = v0 + v4 + m[11];
- v12 ^= v0;
- v12 = ((v12 >> 32) | (v12 << (64 - 32)));
- v8 = v8 + v12;
- v4 ^= v8;
- v4 = ((v4 >> 24) | (v4 << (64 - 24)));
- v0 = v0 + v4 + m[8];
- v12 ^= v0;
- v12 = ((v12 >> 16) | (v12 << (64 - 16)));
- v8 = v8 + v12;
- v4 ^= v8;
- v4 = ((v4 >> 63) | (v4 << (64 - 63)));
-
- // G(2, 1, v1, v5, v9, v13)
- v1 = v1 + v5 + m[12];
- v13 ^= v1;
- v13 = ((v13 >> 32) | (v13 << (64 - 32)));
- v9 = v9 + v13;
- v5 ^= v9;
- v5 = ((v5 >> 24) | (v5 << (64 - 24)));
- v1 = v1 + v5 + m[0];
- v13 ^= v1;
- v13 = ((v13 >> 16) | (v13 << (64 - 16)));
- v9 = v9 + v13;
- v5 ^= v9;
- v5 = ((v5 >> 63) | (v5 << (64 - 63)));
-
- // G(2, 2, v2, v6, v10, v14)
- v2 = v2 + v6 + m[5];
- v14 ^= v2;
- v14 = ((v14 >> 32) | (v14 << (64 - 32)));
- v10 = v10 + v14;
- v6 ^= v10;
- v6 = ((v6 >> 24) | (v6 << (64 - 24)));
- v2 = v2 + v6 + m[2];
- v14 ^= v2;
- v14 = ((v14 >> 16) | (v14 << (64 - 16)));
- v10 = v10 + v14;
- v6 ^= v10;
- v6 = ((v6 >> 63) | (v6 << (64 - 63)));
-
- // G(2, 3, v3, v7, v11, v15)
- v3 = v3 + v7 + m[15];
- v15 ^= v3;
- v15 = ((v15 >> 32) | (v15 << (64 - 32)));
- v11 = v11 + v15;
- v7 ^= v11;
- v7 = ((v7 >> 24) | (v7 << (64 - 24)));
- v3 = v3 + v7 + m[13];
- v15 ^= v3;
- v15 = ((v15 >> 16) | (v15 << (64 - 16)));
- v11 = v11 + v15;
- v7 ^= v11;
- v7 = ((v7 >> 63) | (v7 << (64 - 63)));
-
- // G(2, 4, v0, v5, v10, v15)
- v0 = v0 + v5 + m[10];
- v15 ^= v0;
- v15 = ((v15 >> 32) | (v15 << (64 - 32)));
- v10 = v10 + v15;
- v5 ^= v10;
- v5 = ((v5 >> 24) | (v5 << (64 - 24)));
- v0 = v0 + v5 + m[14];
- v15 ^= v0;
- v15 = ((v15 >> 16) | (v15 << (64 - 16)));
- v10 = v10 + v15;
- v5 ^= v10;
- v5 = ((v5 >> 63) | (v5 << (64 - 63)));
-
- // G(2, 5, v1, v6, v11, v12)
- v1 = v1 + v6 + m[3];
- v12 ^= v1;
- v12 = ((v12 >> 32) | (v12 << (64 - 32)));
- v11 = v11 + v12;
- v6 ^= v11;
- v6 = ((v6 >> 24) | (v6 << (64 - 24)));
- v1 = v1 + v6 + m[6];
- v12 ^= v1;
- v12 = ((v12 >> 16) | (v12 << (64 - 16)));
- v11 = v11 + v12;
- v6 ^= v11;
- v6 = ((v6 >> 63) | (v6 << (64 - 63)));
-
- // G(2, 6, v2, v7, v8, v13)
- v2 = v2 + v7 + m[7];
- v13 ^= v2;
- v13 = ((v13 >> 32) | (v13 << (64 - 32)));
- v8 = v8 + v13;
- v7 ^= v8;
- v7 = ((v7 >> 24) | (v7 << (64 - 24)));
- v2 = v2 + v7 + m[1];
- v13 ^= v2;
- v13 = ((v13 >> 16) | (v13 << (64 - 16)));
- v8 = v8 + v13;
- v7 ^= v8;
- v7 = ((v7 >> 63) | (v7 << (64 - 63)));
-
- // G(2, 7, v3, v4, v9, v14)
- v3 = v3 + v4 + m[9];
- v14 ^= v3;
- v14 = ((v14 >> 32) | (v14 << (64 - 32)));
- v9 = v9 + v14;
- v4 ^= v9;
- v4 = ((v4 >> 24) | (v4 << (64 - 24)));
- v3 = v3 + v4 + m[4];
- v14 ^= v3;
- v14 = ((v14 >> 16) | (v14 << (64 - 16)));
- v9 = v9 + v14;
- v4 ^= v9;
- v4 = ((v4 >> 63) | (v4 << (64 - 63)));
-
-
- // ##### Round(3) #####
- // G(3, 0, v0, v4, v8, v12)
- v0 = v0 + v4 + m[7];
- v12 ^= v0;
- v12 = ((v12 >> 32) | (v12 << (64 - 32)));
- v8 = v8 + v12;
- v4 ^= v8;
- v4 = ((v4 >> 24) | (v4 << (64 - 24)));
- v0 = v0 + v4 + m[9];
- v12 ^= v0;
- v12 = ((v12 >> 16) | (v12 << (64 - 16)));
- v8 = v8 + v12;
- v4 ^= v8;
- v4 = ((v4 >> 63) | (v4 << (64 - 63)));
-
- // G(3, 1, v1, v5, v9, v13)
- v1 = v1 + v5 + m[3];
- v13 ^= v1;
- v13 = ((v13 >> 32) | (v13 << (64 - 32)));
- v9 = v9 + v13;
- v5 ^= v9;
- v5 = ((v5 >> 24) | (v5 << (64 - 24)));
- v1 = v1 + v5 + m[1];
- v13 ^= v1;
- v13 = ((v13 >> 16) | (v13 << (64 - 16)));
- v9 = v9 + v13;
- v5 ^= v9;
- v5 = ((v5 >> 63) | (v5 << (64 - 63)));
-
- // G(3, 2, v2, v6, v10, v14)
- v2 = v2 + v6 + m[13];
- v14 ^= v2;
- v14 = ((v14 >> 32) | (v14 << (64 - 32)));
- v10 = v10 + v14;
- v6 ^= v10;
- v6 = ((v6 >> 24) | (v6 << (64 - 24)));
- v2 = v2 + v6 + m[12];
- v14 ^= v2;
- v14 = ((v14 >> 16) | (v14 << (64 - 16)));
- v10 = v10 + v14;
- v6 ^= v10;
- v6 = ((v6 >> 63) | (v6 << (64 - 63)));
-
- // G(3, 3, v3, v7, v11, v15)
- v3 = v3 + v7 + m[11];
- v15 ^= v3;
- v15 = ((v15 >> 32) | (v15 << (64 - 32)));
- v11 = v11 + v15;
- v7 ^= v11;
- v7 = ((v7 >> 24) | (v7 << (64 - 24)));
- v3 = v3 + v7 + m[14];
- v15 ^= v3;
- v15 = ((v15 >> 16) | (v15 << (64 - 16)));
- v11 = v11 + v15;
- v7 ^= v11;
- v7 = ((v7 >> 63) | (v7 << (64 - 63)));
-
- // G(3, 4, v0, v5, v10, v15)
- v0 = v0 + v5 + m[2];
- v15 ^= v0;
- v15 = ((v15 >> 32) | (v15 << (64 - 32)));
- v10 = v10 + v15;
- v5 ^= v10;
- v5 = ((v5 >> 24) | (v5 << (64 - 24)));
- v0 = v0 + v5 + m[6];
- v15 ^= v0;
- v15 = ((v15 >> 16) | (v15 << (64 - 16)));
- v10 = v10 + v15;
- v5 ^= v10;
- v5 = ((v5 >> 63) | (v5 << (64 - 63)));
-
- // G(3, 5, v1, v6, v11, v12)
- v1 = v1 + v6 + m[5];
- v12 ^= v1;
- v12 = ((v12 >> 32) | (v12 << (64 - 32)));
- v11 = v11 + v12;
- v6 ^= v11;
- v6 = ((v6 >> 24) | (v6 << (64 - 24)));
- v1 = v1 + v6 + m[10];
- v12 ^= v1;
- v12 = ((v12 >> 16) | (v12 << (64 - 16)));
- v11 = v11 + v12;
- v6 ^= v11;
- v6 = ((v6 >> 63) | (v6 << (64 - 63)));
-
- // G(3, 6, v2, v7, v8, v13)
- v2 = v2 + v7 + m[4];
- v13 ^= v2;
- v13 = ((v13 >> 32) | (v13 << (64 - 32)));
- v8 = v8 + v13;
- v7 ^= v8;
- v7 = ((v7 >> 24) | (v7 << (64 - 24)));
- v2 = v2 + v7 + m[0];
- v13 ^= v2;
- v13 = ((v13 >> 16) | (v13 << (64 - 16)));
- v8 = v8 + v13;
- v7 ^= v8;
- v7 = ((v7 >> 63) | (v7 << (64 - 63)));
-
- // G(3, 7, v3, v4, v9, v14)
- v3 = v3 + v4 + m[15];
- v14 ^= v3;
- v14 = ((v14 >> 32) | (v14 << (64 - 32)));
- v9 = v9 + v14;
- v4 ^= v9;
- v4 = ((v4 >> 24) | (v4 << (64 - 24)));
- v3 = v3 + v4 + m[8];
- v14 ^= v3;
- v14 = ((v14 >> 16) | (v14 << (64 - 16)));
- v9 = v9 + v14;
- v4 ^= v9;
- v4 = ((v4 >> 63) | (v4 << (64 - 63)));
-
-
- // ##### Round(4) #####
- // G(4, 0, v0, v4, v8, v12)
- v0 = v0 + v4 + m[9];
- v12 ^= v0;
- v12 = ((v12 >> 32) | (v12 << (64 - 32)));
- v8 = v8 + v12;
- v4 ^= v8;
- v4 = ((v4 >> 24) | (v4 << (64 - 24)));
- v0 = v0 + v4 + m[0];
- v12 ^= v0;
- v12 = ((v12 >> 16) | (v12 << (64 - 16)));
- v8 = v8 + v12;
- v4 ^= v8;
- v4 = ((v4 >> 63) | (v4 << (64 - 63)));
-
- // G(4, 1, v1, v5, v9, v13)
- v1 = v1 + v5 + m[5];
- v13 ^= v1;
- v13 = ((v13 >> 32) | (v13 << (64 - 32)));
- v9 = v9 + v13;
- v5 ^= v9;
- v5 = ((v5 >> 24) | (v5 << (64 - 24)));
- v1 = v1 + v5 + m[7];
- v13 ^= v1;
- v13 = ((v13 >> 16) | (v13 << (64 - 16)));
- v9 = v9 + v13;
- v5 ^= v9;
- v5 = ((v5 >> 63) | (v5 << (64 - 63)));
-
- // G(4, 2, v2, v6, v10, v14)
- v2 = v2 + v6 + m[2];
- v14 ^= v2;
- v14 = ((v14 >> 32) | (v14 << (64 - 32)));
- v10 = v10 + v14;
- v6 ^= v10;
- v6 = ((v6 >> 24) | (v6 << (64 - 24)));
- v2 = v2 + v6 + m[4];
- v14 ^= v2;
- v14 = ((v14 >> 16) | (v14 << (64 - 16)));
- v10 = v10 + v14;
- v6 ^= v10;
- v6 = ((v6 >> 63) | (v6 << (64 - 63)));
-
- // G(4, 3, v3, v7, v11, v15)
- v3 = v3 + v7 + m[10];
- v15 ^= v3;
- v15 = ((v15 >> 32) | (v15 << (64 - 32)));
- v11 = v11 + v15;
- v7 ^= v11;
- v7 = ((v7 >> 24) | (v7 << (64 - 24)));
- v3 = v3 + v7 + m[15];
- v15 ^= v3;
- v15 = ((v15 >> 16) | (v15 << (64 - 16)));
- v11 = v11 + v15;
- v7 ^= v11;
- v7 = ((v7 >> 63) | (v7 << (64 - 63)));
-
- // G(4, 4, v0, v5, v10, v15)
- v0 = v0 + v5 + m[14];
- v15 ^= v0;
- v15 = ((v15 >> 32) | (v15 << (64 - 32)));
- v10 = v10 + v15;
- v5 ^= v10;
- v5 = ((v5 >> 24) | (v5 << (64 - 24)));
- v0 = v0 + v5 + m[1];
- v15 ^= v0;
- v15 = ((v15 >> 16) | (v15 << (64 - 16)));
- v10 = v10 + v15;
- v5 ^= v10;
- v5 = ((v5 >> 63) | (v5 << (64 - 63)));
-
- // G(4, 5, v1, v6, v11, v12)
- v1 = v1 + v6 + m[11];
- v12 ^= v1;
- v12 = ((v12 >> 32) | (v12 << (64 - 32)));
- v11 = v11 + v12;
- v6 ^= v11;
- v6 = ((v6 >> 24) | (v6 << (64 - 24)));
- v1 = v1 + v6 + m[12];
- v12 ^= v1;
- v12 = ((v12 >> 16) | (v12 << (64 - 16)));
- v11 = v11 + v12;
- v6 ^= v11;
- v6 = ((v6 >> 63) | (v6 << (64 - 63)));
-
- // G(4, 6, v2, v7, v8, v13)
- v2 = v2 + v7 + m[6];
- v13 ^= v2;
- v13 = ((v13 >> 32) | (v13 << (64 - 32)));
- v8 = v8 + v13;
- v7 ^= v8;
- v7 = ((v7 >> 24) | (v7 << (64 - 24)));
- v2 = v2 + v7 + m[8];
- v13 ^= v2;
- v13 = ((v13 >> 16) | (v13 << (64 - 16)));
- v8 = v8 + v13;
- v7 ^= v8;
- v7 = ((v7 >> 63) | (v7 << (64 - 63)));
-
- // G(4, 7, v3, v4, v9, v14)
- v3 = v3 + v4 + m[3];
- v14 ^= v3;
- v14 = ((v14 >> 32) | (v14 << (64 - 32)));
- v9 = v9 + v14;
- v4 ^= v9;
- v4 = ((v4 >> 24) | (v4 << (64 - 24)));
- v3 = v3 + v4 + m[13];
- v14 ^= v3;
- v14 = ((v14 >> 16) | (v14 << (64 - 16)));
- v9 = v9 + v14;
- v4 ^= v9;
- v4 = ((v4 >> 63) | (v4 << (64 - 63)));
-
-
- // ##### Round(5) #####
- // G(5, 0, v0, v4, v8, v12)
- v0 = v0 + v4 + m[2];
- v12 ^= v0;
- v12 = ((v12 >> 32) | (v12 << (64 - 32)));
- v8 = v8 + v12;
- v4 ^= v8;
- v4 = ((v4 >> 24) | (v4 << (64 - 24)));
- v0 = v0 + v4 + m[12];
- v12 ^= v0;
- v12 = ((v12 >> 16) | (v12 << (64 - 16)));
- v8 = v8 + v12;
- v4 ^= v8;
- v4 = ((v4 >> 63) | (v4 << (64 - 63)));
-
- // G(5, 1, v1, v5, v9, v13)
- v1 = v1 + v5 + m[6];
- v13 ^= v1;
- v13 = ((v13 >> 32) | (v13 << (64 - 32)));
- v9 = v9 + v13;
- v5 ^= v9;
- v5 = ((v5 >> 24) | (v5 << (64 - 24)));
- v1 = v1 + v5 + m[10];
- v13 ^= v1;
- v13 = ((v13 >> 16) | (v13 << (64 - 16)));
- v9 = v9 + v13;
- v5 ^= v9;
- v5 = ((v5 >> 63) | (v5 << (64 - 63)));
-
- // G(5, 2, v2, v6, v10, v14)
- v2 = v2 + v6 + m[0];
- v14 ^= v2;
- v14 = ((v14 >> 32) | (v14 << (64 - 32)));
- v10 = v10 + v14;
- v6 ^= v10;
- v6 = ((v6 >> 24) | (v6 << (64 - 24)));
- v2 = v2 + v6 + m[11];
- v14 ^= v2;
- v14 = ((v14 >> 16) | (v14 << (64 - 16)));
- v10 = v10 + v14;
- v6 ^= v10;
- v6 = ((v6 >> 63) | (v6 << (64 - 63)));
-
- // G(5, 3, v3, v7, v11, v15)
- v3 = v3 + v7 + m[8];
- v15 ^= v3;
- v15 = ((v15 >> 32) | (v15 << (64 - 32)));
- v11 = v11 + v15;
- v7 ^= v11;
- v7 = ((v7 >> 24) | (v7 << (64 - 24)));
- v3 = v3 + v7 + m[3];
- v15 ^= v3;
- v15 = ((v15 >> 16) | (v15 << (64 - 16)));
- v11 = v11 + v15;
- v7 ^= v11;
- v7 = ((v7 >> 63) | (v7 << (64 - 63)));
-
- // G(5, 4, v0, v5, v10, v15)
- v0 = v0 + v5 + m[4];
- v15 ^= v0;
- v15 = ((v15 >> 32) | (v15 << (64 - 32)));
- v10 = v10 + v15;
- v5 ^= v10;
- v5 = ((v5 >> 24) | (v5 << (64 - 24)));
- v0 = v0 + v5 + m[13];
- v15 ^= v0;
- v15 = ((v15 >> 16) | (v15 << (64 - 16)));
- v10 = v10 + v15;
- v5 ^= v10;
- v5 = ((v5 >> 63) | (v5 << (64 - 63)));
-
- // G(5, 5, v1, v6, v11, v12)
- v1 = v1 + v6 + m[7];
- v12 ^= v1;
- v12 = ((v12 >> 32) | (v12 << (64 - 32)));
- v11 = v11 + v12;
- v6 ^= v11;
- v6 = ((v6 >> 24) | (v6 << (64 - 24)));
- v1 = v1 + v6 + m[5];
- v12 ^= v1;
- v12 = ((v12 >> 16) | (v12 << (64 - 16)));
- v11 = v11 + v12;
- v6 ^= v11;
- v6 = ((v6 >> 63) | (v6 << (64 - 63)));
-
- // G(5, 6, v2, v7, v8, v13)
- v2 = v2 + v7 + m[15];
- v13 ^= v2;
- v13 = ((v13 >> 32) | (v13 << (64 - 32)));
- v8 = v8 + v13;
- v7 ^= v8;
- v7 = ((v7 >> 24) | (v7 << (64 - 24)));
- v2 = v2 + v7 + m[14];
- v13 ^= v2;
- v13 = ((v13 >> 16) | (v13 << (64 - 16)));
- v8 = v8 + v13;
- v7 ^= v8;
- v7 = ((v7 >> 63) | (v7 << (64 - 63)));
-
- // G(5, 7, v3, v4, v9, v14)
- v3 = v3 + v4 + m[1];
- v14 ^= v3;
- v14 = ((v14 >> 32) | (v14 << (64 - 32)));
- v9 = v9 + v14;
- v4 ^= v9;
- v4 = ((v4 >> 24) | (v4 << (64 - 24)));
- v3 = v3 + v4 + m[9];
- v14 ^= v3;
- v14 = ((v14 >> 16) | (v14 << (64 - 16)));
- v9 = v9 + v14;
- v4 ^= v9;
- v4 = ((v4 >> 63) | (v4 << (64 - 63)));
-
-
- // ##### Round(6) #####
- // G(6, 0, v0, v4, v8, v12)
- v0 = v0 + v4 + m[12];
- v12 ^= v0;
- v12 = ((v12 >> 32) | (v12 << (64 - 32)));
- v8 = v8 + v12;
- v4 ^= v8;
- v4 = ((v4 >> 24) | (v4 << (64 - 24)));
- v0 = v0 + v4 + m[5];
- v12 ^= v0;
- v12 = ((v12 >> 16) | (v12 << (64 - 16)));
- v8 = v8 + v12;
- v4 ^= v8;
- v4 = ((v4 >> 63) | (v4 << (64 - 63)));
-
- // G(6, 1, v1, v5, v9, v13)
- v1 = v1 + v5 + m[1];
- v13 ^= v1;
- v13 = ((v13 >> 32) | (v13 << (64 - 32)));
- v9 = v9 + v13;
- v5 ^= v9;
- v5 = ((v5 >> 24) | (v5 << (64 - 24)));
- v1 = v1 + v5 + m[15];
- v13 ^= v1;
- v13 = ((v13 >> 16) | (v13 << (64 - 16)));
- v9 = v9 + v13;
- v5 ^= v9;
- v5 = ((v5 >> 63) | (v5 << (64 - 63)));
-
- // G(6, 2, v2, v6, v10, v14)
- v2 = v2 + v6 + m[14];
- v14 ^= v2;
- v14 = ((v14 >> 32) | (v14 << (64 - 32)));
- v10 = v10 + v14;
- v6 ^= v10;
- v6 = ((v6 >> 24) | (v6 << (64 - 24)));
- v2 = v2 + v6 + m[13];
- v14 ^= v2;
- v14 = ((v14 >> 16) | (v14 << (64 - 16)));
- v10 = v10 + v14;
- v6 ^= v10;
- v6 = ((v6 >> 63) | (v6 << (64 - 63)));
-
- // G(6, 3, v3, v7, v11, v15)
- v3 = v3 + v7 + m[4];
- v15 ^= v3;
- v15 = ((v15 >> 32) | (v15 << (64 - 32)));
- v11 = v11 + v15;
- v7 ^= v11;
- v7 = ((v7 >> 24) | (v7 << (64 - 24)));
- v3 = v3 + v7 + m[10];
- v15 ^= v3;
- v15 = ((v15 >> 16) | (v15 << (64 - 16)));
- v11 = v11 + v15;
- v7 ^= v11;
- v7 = ((v7 >> 63) | (v7 << (64 - 63)));
-
- // G(6, 4, v0, v5, v10, v15)
- v0 = v0 + v5 + m[0];
- v15 ^= v0;
- v15 = ((v15 >> 32) | (v15 << (64 - 32)));
- v10 = v10 + v15;
- v5 ^= v10;
- v5 = ((v5 >> 24) | (v5 << (64 - 24)));
- v0 = v0 + v5 + m[7];
- v15 ^= v0;
- v15 = ((v15 >> 16) | (v15 << (64 - 16)));
- v10 = v10 + v15;
- v5 ^= v10;
- v5 = ((v5 >> 63) | (v5 << (64 - 63)));
-
- // G(6, 5, v1, v6, v11, v12)
- v1 = v1 + v6 + m[6];
- v12 ^= v1;
- v12 = ((v12 >> 32) | (v12 << (64 - 32)));
- v11 = v11 + v12;
- v6 ^= v11;
- v6 = ((v6 >> 24) | (v6 << (64 - 24)));
- v1 = v1 + v6 + m[3];
- v12 ^= v1;
- v12 = ((v12 >> 16) | (v12 << (64 - 16)));
- v11 = v11 + v12;
- v6 ^= v11;
- v6 = ((v6 >> 63) | (v6 << (64 - 63)));
-
- // G(6, 6, v2, v7, v8, v13)
- v2 = v2 + v7 + m[9];
- v13 ^= v2;
- v13 = ((v13 >> 32) | (v13 << (64 - 32)));
- v8 = v8 + v13;
- v7 ^= v8;
- v7 = ((v7 >> 24) | (v7 << (64 - 24)));
- v2 = v2 + v7 + m[2];
- v13 ^= v2;
- v13 = ((v13 >> 16) | (v13 << (64 - 16)));
- v8 = v8 + v13;
- v7 ^= v8;
- v7 = ((v7 >> 63) | (v7 << (64 - 63)));
-
- // G(6, 7, v3, v4, v9, v14)
- v3 = v3 + v4 + m[8];
- v14 ^= v3;
- v14 = ((v14 >> 32) | (v14 << (64 - 32)));
- v9 = v9 + v14;
- v4 ^= v9;
- v4 = ((v4 >> 24) | (v4 << (64 - 24)));
- v3 = v3 + v4 + m[11];
- v14 ^= v3;
- v14 = ((v14 >> 16) | (v14 << (64 - 16)));
- v9 = v9 + v14;
- v4 ^= v9;
- v4 = ((v4 >> 63) | (v4 << (64 - 63)));
-
-
- // ##### Round(7) #####
- // G(7, 0, v0, v4, v8, v12)
- v0 = v0 + v4 + m[13];
- v12 ^= v0;
- v12 = ((v12 >> 32) | (v12 << (64 - 32)));
- v8 = v8 + v12;
- v4 ^= v8;
- v4 = ((v4 >> 24) | (v4 << (64 - 24)));
- v0 = v0 + v4 + m[11];
- v12 ^= v0;
- v12 = ((v12 >> 16) | (v12 << (64 - 16)));
- v8 = v8 + v12;
- v4 ^= v8;
- v4 = ((v4 >> 63) | (v4 << (64 - 63)));
-
- // G(7, 1, v1, v5, v9, v13)
- v1 = v1 + v5 + m[7];
- v13 ^= v1;
- v13 = ((v13 >> 32) | (v13 << (64 - 32)));
- v9 = v9 + v13;
- v5 ^= v9;
- v5 = ((v5 >> 24) | (v5 << (64 - 24)));
- v1 = v1 + v5 + m[14];
- v13 ^= v1;
- v13 = ((v13 >> 16) | (v13 << (64 - 16)));
- v9 = v9 + v13;
- v5 ^= v9;
- v5 = ((v5 >> 63) | (v5 << (64 - 63)));
-
- // G(7, 2, v2, v6, v10, v14)
- v2 = v2 + v6 + m[12];
- v14 ^= v2;
- v14 = ((v14 >> 32) | (v14 << (64 - 32)));
- v10 = v10 + v14;
- v6 ^= v10;
- v6 = ((v6 >> 24) | (v6 << (64 - 24)));
- v2 = v2 + v6 + m[1];
- v14 ^= v2;
- v14 = ((v14 >> 16) | (v14 << (64 - 16)));
- v10 = v10 + v14;
- v6 ^= v10;
- v6 = ((v6 >> 63) | (v6 << (64 - 63)));
-
- // G(7, 3, v3, v7, v11, v15)
- v3 = v3 + v7 + m[3];
- v15 ^= v3;
- v15 = ((v15 >> 32) | (v15 << (64 - 32)));
- v11 = v11 + v15;
- v7 ^= v11;
- v7 = ((v7 >> 24) | (v7 << (64 - 24)));
- v3 = v3 + v7 + m[9];
- v15 ^= v3;
- v15 = ((v15 >> 16) | (v15 << (64 - 16)));
- v11 = v11 + v15;
- v7 ^= v11;
- v7 = ((v7 >> 63) | (v7 << (64 - 63)));
-
- // G(7, 4, v0, v5, v10, v15)
- v0 = v0 + v5 + m[5];
- v15 ^= v0;
- v15 = ((v15 >> 32) | (v15 << (64 - 32)));
- v10 = v10 + v15;
- v5 ^= v10;
- v5 = ((v5 >> 24) | (v5 << (64 - 24)));
- v0 = v0 + v5 + m[0];
- v15 ^= v0;
- v15 = ((v15 >> 16) | (v15 << (64 - 16)));
- v10 = v10 + v15;
- v5 ^= v10;
- v5 = ((v5 >> 63) | (v5 << (64 - 63)));
-
- // G(7, 5, v1, v6, v11, v12)
- v1 = v1 + v6 + m[15];
- v12 ^= v1;
- v12 = ((v12 >> 32) | (v12 << (64 - 32)));
- v11 = v11 + v12;
- v6 ^= v11;
- v6 = ((v6 >> 24) | (v6 << (64 - 24)));
- v1 = v1 + v6 + m[4];
- v12 ^= v1;
- v12 = ((v12 >> 16) | (v12 << (64 - 16)));
- v11 = v11 + v12;
- v6 ^= v11;
- v6 = ((v6 >> 63) | (v6 << (64 - 63)));
-
- // G(7, 6, v2, v7, v8, v13)
- v2 = v2 + v7 + m[8];
- v13 ^= v2;
- v13 = ((v13 >> 32) | (v13 << (64 - 32)));
- v8 = v8 + v13;
- v7 ^= v8;
- v7 = ((v7 >> 24) | (v7 << (64 - 24)));
- v2 = v2 + v7 + m[6];
- v13 ^= v2;
- v13 = ((v13 >> 16) | (v13 << (64 - 16)));
- v8 = v8 + v13;
- v7 ^= v8;
- v7 = ((v7 >> 63) | (v7 << (64 - 63)));
-
- // G(7, 7, v3, v4, v9, v14)
- v3 = v3 + v4 + m[2];
- v14 ^= v3;
- v14 = ((v14 >> 32) | (v14 << (64 - 32)));
- v9 = v9 + v14;
- v4 ^= v9;
- v4 = ((v4 >> 24) | (v4 << (64 - 24)));
- v3 = v3 + v4 + m[10];
- v14 ^= v3;
- v14 = ((v14 >> 16) | (v14 << (64 - 16)));
- v9 = v9 + v14;
- v4 ^= v9;
- v4 = ((v4 >> 63) | (v4 << (64 - 63)));
-
-
- // ##### Round(8) #####
- // G(8, 0, v0, v4, v8, v12)
- v0 = v0 + v4 + m[6];
- v12 ^= v0;
- v12 = ((v12 >> 32) | (v12 << (64 - 32)));
- v8 = v8 + v12;
- v4 ^= v8;
- v4 = ((v4 >> 24) | (v4 << (64 - 24)));
- v0 = v0 + v4 + m[15];
- v12 ^= v0;
- v12 = ((v12 >> 16) | (v12 << (64 - 16)));
- v8 = v8 + v12;
- v4 ^= v8;
- v4 = ((v4 >> 63) | (v4 << (64 - 63)));
-
- // G(8, 1, v1, v5, v9, v13)
- v1 = v1 + v5 + m[14];
- v13 ^= v1;
- v13 = ((v13 >> 32) | (v13 << (64 - 32)));
- v9 = v9 + v13;
- v5 ^= v9;
- v5 = ((v5 >> 24) | (v5 << (64 - 24)));
- v1 = v1 + v5 + m[9];
- v13 ^= v1;
- v13 = ((v13 >> 16) | (v13 << (64 - 16)));
- v9 = v9 + v13;
- v5 ^= v9;
- v5 = ((v5 >> 63) | (v5 << (64 - 63)));
-
- // G(8, 2, v2, v6, v10, v14)
- v2 = v2 + v6 + m[11];
- v14 ^= v2;
- v14 = ((v14 >> 32) | (v14 << (64 - 32)));
- v10 = v10 + v14;
- v6 ^= v10;
- v6 = ((v6 >> 24) | (v6 << (64 - 24)));
- v2 = v2 + v6 + m[3];
- v14 ^= v2;
- v14 = ((v14 >> 16) | (v14 << (64 - 16)));
- v10 = v10 + v14;
- v6 ^= v10;
- v6 = ((v6 >> 63) | (v6 << (64 - 63)));
-
- // G(8, 3, v3, v7, v11, v15)
- v3 = v3 + v7 + m[0];
- v15 ^= v3;
- v15 = ((v15 >> 32) | (v15 << (64 - 32)));
- v11 = v11 + v15;
- v7 ^= v11;
- v7 = ((v7 >> 24) | (v7 << (64 - 24)));
- v3 = v3 + v7 + m[8];
- v15 ^= v3;
- v15 = ((v15 >> 16) | (v15 << (64 - 16)));
- v11 = v11 + v15;
- v7 ^= v11;
- v7 = ((v7 >> 63) | (v7 << (64 - 63)));
-
- // G(8, 4, v0, v5, v10, v15)
- v0 = v0 + v5 + m[12];
- v15 ^= v0;
- v15 = ((v15 >> 32) | (v15 << (64 - 32)));
- v10 = v10 + v15;
- v5 ^= v10;
- v5 = ((v5 >> 24) | (v5 << (64 - 24)));
- v0 = v0 + v5 + m[2];
- v15 ^= v0;
- v15 = ((v15 >> 16) | (v15 << (64 - 16)));
- v10 = v10 + v15;
- v5 ^= v10;
- v5 = ((v5 >> 63) | (v5 << (64 - 63)));
-
- // G(8, 5, v1, v6, v11, v12)
- v1 = v1 + v6 + m[13];
- v12 ^= v1;
- v12 = ((v12 >> 32) | (v12 << (64 - 32)));
- v11 = v11 + v12;
- v6 ^= v11;
- v6 = ((v6 >> 24) | (v6 << (64 - 24)));
- v1 = v1 + v6 + m[7];
- v12 ^= v1;
- v12 = ((v12 >> 16) | (v12 << (64 - 16)));
- v11 = v11 + v12;
- v6 ^= v11;
- v6 = ((v6 >> 63) | (v6 << (64 - 63)));
-
- // G(8, 6, v2, v7, v8, v13)
- v2 = v2 + v7 + m[1];
- v13 ^= v2;
- v13 = ((v13 >> 32) | (v13 << (64 - 32)));
- v8 = v8 + v13;
- v7 ^= v8;
- v7 = ((v7 >> 24) | (v7 << (64 - 24)));
- v2 = v2 + v7 + m[4];
- v13 ^= v2;
- v13 = ((v13 >> 16) | (v13 << (64 - 16)));
- v8 = v8 + v13;
- v7 ^= v8;
- v7 = ((v7 >> 63) | (v7 << (64 - 63)));
-
- // G(8, 7, v3, v4, v9, v14)
- v3 = v3 + v4 + m[10];
- v14 ^= v3;
- v14 = ((v14 >> 32) | (v14 << (64 - 32)));
- v9 = v9 + v14;
- v4 ^= v9;
- v4 = ((v4 >> 24) | (v4 << (64 - 24)));
- v3 = v3 + v4 + m[5];
- v14 ^= v3;
- v14 = ((v14 >> 16) | (v14 << (64 - 16)));
- v9 = v9 + v14;
- v4 ^= v9;
- v4 = ((v4 >> 63) | (v4 << (64 - 63)));
-
-
- // ##### Round(9) #####
- // G(9, 0, v0, v4, v8, v12)
- v0 = v0 + v4 + m[10];
- v12 ^= v0;
- v12 = ((v12 >> 32) | (v12 << (64 - 32)));
- v8 = v8 + v12;
- v4 ^= v8;
- v4 = ((v4 >> 24) | (v4 << (64 - 24)));
- v0 = v0 + v4 + m[2];
- v12 ^= v0;
- v12 = ((v12 >> 16) | (v12 << (64 - 16)));
- v8 = v8 + v12;
- v4 ^= v8;
- v4 = ((v4 >> 63) | (v4 << (64 - 63)));
-
- // G(9, 1, v1, v5, v9, v13)
- v1 = v1 + v5 + m[8];
- v13 ^= v1;
- v13 = ((v13 >> 32) | (v13 << (64 - 32)));
- v9 = v9 + v13;
- v5 ^= v9;
- v5 = ((v5 >> 24) | (v5 << (64 - 24)));
- v1 = v1 + v5 + m[4];
- v13 ^= v1;
- v13 = ((v13 >> 16) | (v13 << (64 - 16)));
- v9 = v9 + v13;
- v5 ^= v9;
- v5 = ((v5 >> 63) | (v5 << (64 - 63)));
-
- // G(9, 2, v2, v6, v10, v14)
- v2 = v2 + v6 + m[7];
- v14 ^= v2;
- v14 = ((v14 >> 32) | (v14 << (64 - 32)));
- v10 = v10 + v14;
- v6 ^= v10;
- v6 = ((v6 >> 24) | (v6 << (64 - 24)));
- v2 = v2 + v6 + m[6];
- v14 ^= v2;
- v14 = ((v14 >> 16) | (v14 << (64 - 16)));
- v10 = v10 + v14;
- v6 ^= v10;
- v6 = ((v6 >> 63) | (v6 << (64 - 63)));
-
- // G(9, 3, v3, v7, v11, v15)
- v3 = v3 + v7 + m[1];
- v15 ^= v3;
- v15 = ((v15 >> 32) | (v15 << (64 - 32)));
- v11 = v11 + v15;
- v7 ^= v11;
- v7 = ((v7 >> 24) | (v7 << (64 - 24)));
- v3 = v3 + v7 + m[5];
- v15 ^= v3;
- v15 = ((v15 >> 16) | (v15 << (64 - 16)));
- v11 = v11 + v15;
- v7 ^= v11;
- v7 = ((v7 >> 63) | (v7 << (64 - 63)));
-
- // G(9, 4, v0, v5, v10, v15)
- v0 = v0 + v5 + m[15];
- v15 ^= v0;
- v15 = ((v15 >> 32) | (v15 << (64 - 32)));
- v10 = v10 + v15;
- v5 ^= v10;
- v5 = ((v5 >> 24) | (v5 << (64 - 24)));
- v0 = v0 + v5 + m[11];
- v15 ^= v0;
- v15 = ((v15 >> 16) | (v15 << (64 - 16)));
- v10 = v10 + v15;
- v5 ^= v10;
- v5 = ((v5 >> 63) | (v5 << (64 - 63)));
-
- // G(9, 5, v1, v6, v11, v12)
- v1 = v1 + v6 + m[9];
- v12 ^= v1;
- v12 = ((v12 >> 32) | (v12 << (64 - 32)));
- v11 = v11 + v12;
- v6 ^= v11;
- v6 = ((v6 >> 24) | (v6 << (64 - 24)));
- v1 = v1 + v6 + m[14];
- v12 ^= v1;
- v12 = ((v12 >> 16) | (v12 << (64 - 16)));
- v11 = v11 + v12;
- v6 ^= v11;
- v6 = ((v6 >> 63) | (v6 << (64 - 63)));
-
- // G(9, 6, v2, v7, v8, v13)
- v2 = v2 + v7 + m[3];
- v13 ^= v2;
- v13 = ((v13 >> 32) | (v13 << (64 - 32)));
- v8 = v8 + v13;
- v7 ^= v8;
- v7 = ((v7 >> 24) | (v7 << (64 - 24)));
- v2 = v2 + v7 + m[12];
- v13 ^= v2;
- v13 = ((v13 >> 16) | (v13 << (64 - 16)));
- v8 = v8 + v13;
- v7 ^= v8;
- v7 = ((v7 >> 63) | (v7 << (64 - 63)));
-
- // G(9, 7, v3, v4, v9, v14)
- v3 = v3 + v4 + m[13];
- v14 ^= v3;
- v14 = ((v14 >> 32) | (v14 << (64 - 32)));
- v9 = v9 + v14;
- v4 ^= v9;
- v4 = ((v4 >> 24) | (v4 << (64 - 24)));
- v3 = v3 + v4 + m[0];
- v14 ^= v3;
- v14 = ((v14 >> 16) | (v14 << (64 - 16)));
- v9 = v9 + v14;
- v4 ^= v9;
- v4 = ((v4 >> 63) | (v4 << (64 - 63)));
-
-
- // ##### Round(10) #####
- // G(10, 0, v0, v4, v8, v12)
- v0 = v0 + v4 + m[0];
- v12 ^= v0;
- v12 = ((v12 >> 32) | (v12 << (64 - 32)));
- v8 = v8 + v12;
- v4 ^= v8;
- v4 = ((v4 >> 24) | (v4 << (64 - 24)));
- v0 = v0 + v4 + m[1];
- v12 ^= v0;
- v12 = ((v12 >> 16) | (v12 << (64 - 16)));
- v8 = v8 + v12;
- v4 ^= v8;
- v4 = ((v4 >> 63) | (v4 << (64 - 63)));
-
- // G(10, 1, v1, v5, v9, v13)
- v1 = v1 + v5 + m[2];
- v13 ^= v1;
- v13 = ((v13 >> 32) | (v13 << (64 - 32)));
- v9 = v9 + v13;
- v5 ^= v9;
- v5 = ((v5 >> 24) | (v5 << (64 - 24)));
- v1 = v1 + v5 + m[3];
- v13 ^= v1;
- v13 = ((v13 >> 16) | (v13 << (64 - 16)));
- v9 = v9 + v13;
- v5 ^= v9;
- v5 = ((v5 >> 63) | (v5 << (64 - 63)));
-
- // G(10, 2, v2, v6, v10, v14)
- v2 = v2 + v6 + m[4];
- v14 ^= v2;
- v14 = ((v14 >> 32) | (v14 << (64 - 32)));
- v10 = v10 + v14;
- v6 ^= v10;
- v6 = ((v6 >> 24) | (v6 << (64 - 24)));
- v2 = v2 + v6 + m[5];
- v14 ^= v2;
- v14 = ((v14 >> 16) | (v14 << (64 - 16)));
- v10 = v10 + v14;
- v6 ^= v10;
- v6 = ((v6 >> 63) | (v6 << (64 - 63)));
-
- // G(10, 3, v3, v7, v11, v15)
- v3 = v3 + v7 + m[6];
- v15 ^= v3;
- v15 = ((v15 >> 32) | (v15 << (64 - 32)));
- v11 = v11 + v15;
- v7 ^= v11;
- v7 = ((v7 >> 24) | (v7 << (64 - 24)));
- v3 = v3 + v7 + m[7];
- v15 ^= v3;
- v15 = ((v15 >> 16) | (v15 << (64 - 16)));
- v11 = v11 + v15;
- v7 ^= v11;
- v7 = ((v7 >> 63) | (v7 << (64 - 63)));
-
- // G(10, 4, v0, v5, v10, v15)
- v0 = v0 + v5 + m[8];
- v15 ^= v0;
- v15 = ((v15 >> 32) | (v15 << (64 - 32)));
- v10 = v10 + v15;
- v5 ^= v10;
- v5 = ((v5 >> 24) | (v5 << (64 - 24)));
- v0 = v0 + v5 + m[9];
- v15 ^= v0;
- v15 = ((v15 >> 16) | (v15 << (64 - 16)));
- v10 = v10 + v15;
- v5 ^= v10;
- v5 = ((v5 >> 63) | (v5 << (64 - 63)));
-
- // G(10, 5, v1, v6, v11, v12)
- v1 = v1 + v6 + m[10];
- v12 ^= v1;
- v12 = ((v12 >> 32) | (v12 << (64 - 32)));
- v11 = v11 + v12;
- v6 ^= v11;
- v6 = ((v6 >> 24) | (v6 << (64 - 24)));
- v1 = v1 + v6 + m[11];
- v12 ^= v1;
- v12 = ((v12 >> 16) | (v12 << (64 - 16)));
- v11 = v11 + v12;
- v6 ^= v11;
- v6 = ((v6 >> 63) | (v6 << (64 - 63)));
-
- // G(10, 6, v2, v7, v8, v13)
- v2 = v2 + v7 + m[12];
- v13 ^= v2;
- v13 = ((v13 >> 32) | (v13 << (64 - 32)));
- v8 = v8 + v13;
- v7 ^= v8;
- v7 = ((v7 >> 24) | (v7 << (64 - 24)));
- v2 = v2 + v7 + m[13];
- v13 ^= v2;
- v13 = ((v13 >> 16) | (v13 << (64 - 16)));
- v8 = v8 + v13;
- v7 ^= v8;
- v7 = ((v7 >> 63) | (v7 << (64 - 63)));
-
- // G(10, 7, v3, v4, v9, v14)
- v3 = v3 + v4 + m[14];
- v14 ^= v3;
- v14 = ((v14 >> 32) | (v14 << (64 - 32)));
- v9 = v9 + v14;
- v4 ^= v9;
- v4 = ((v4 >> 24) | (v4 << (64 - 24)));
- v3 = v3 + v4 + m[15];
- v14 ^= v3;
- v14 = ((v14 >> 16) | (v14 << (64 - 16)));
- v9 = v9 + v14;
- v4 ^= v9;
- v4 = ((v4 >> 63) | (v4 << (64 - 63)));
-
-
- // ##### Round(11) #####
- // G(11, 0, v0, v4, v8, v12)
- v0 = v0 + v4 + m[14];
- v12 ^= v0;
- v12 = ((v12 >> 32) | (v12 << (64 - 32)));
- v8 = v8 + v12;
- v4 ^= v8;
- v4 = ((v4 >> 24) | (v4 << (64 - 24)));
- v0 = v0 + v4 + m[10];
- v12 ^= v0;
- v12 = ((v12 >> 16) | (v12 << (64 - 16)));
- v8 = v8 + v12;
- v4 ^= v8;
- v4 = ((v4 >> 63) | (v4 << (64 - 63)));
-
- // G(11, 1, v1, v5, v9, v13)
- v1 = v1 + v5 + m[4];
- v13 ^= v1;
- v13 = ((v13 >> 32) | (v13 << (64 - 32)));
- v9 = v9 + v13;
- v5 ^= v9;
- v5 = ((v5 >> 24) | (v5 << (64 - 24)));
- v1 = v1 + v5 + m[8];
- v13 ^= v1;
- v13 = ((v13 >> 16) | (v13 << (64 - 16)));
- v9 = v9 + v13;
- v5 ^= v9;
- v5 = ((v5 >> 63) | (v5 << (64 - 63)));
-
- // G(11, 2, v2, v6, v10, v14)
- v2 = v2 + v6 + m[9];
- v14 ^= v2;
- v14 = ((v14 >> 32) | (v14 << (64 - 32)));
- v10 = v10 + v14;
- v6 ^= v10;
- v6 = ((v6 >> 24) | (v6 << (64 - 24)));
- v2 = v2 + v6 + m[15];
- v14 ^= v2;
- v14 = ((v14 >> 16) | (v14 << (64 - 16)));
- v10 = v10 + v14;
- v6 ^= v10;
- v6 = ((v6 >> 63) | (v6 << (64 - 63)));
-
- // G(11, 3, v3, v7, v11, v15)
- v3 = v3 + v7 + m[13];
- v15 ^= v3;
- v15 = ((v15 >> 32) | (v15 << (64 - 32)));
- v11 = v11 + v15;
- v7 ^= v11;
- v7 = ((v7 >> 24) | (v7 << (64 - 24)));
- v3 = v3 + v7 + m[6];
- v15 ^= v3;
- v15 = ((v15 >> 16) | (v15 << (64 - 16)));
- v11 = v11 + v15;
- v7 ^= v11;
- v7 = ((v7 >> 63) | (v7 << (64 - 63)));
-
- // G(11, 4, v0, v5, v10, v15)
- v0 = v0 + v5 + m[1];
- v15 ^= v0;
- v15 = ((v15 >> 32) | (v15 << (64 - 32)));
- v10 = v10 + v15;
- v5 ^= v10;
- v5 = ((v5 >> 24) | (v5 << (64 - 24)));
- v0 = v0 + v5 + m[12];
- v15 ^= v0;
- v15 = ((v15 >> 16) | (v15 << (64 - 16)));
- v10 = v10 + v15;
- v5 ^= v10;
- v5 = ((v5 >> 63) | (v5 << (64 - 63)));
-
- // G(11, 5, v1, v6, v11, v12)
- v1 = v1 + v6 + m[0];
- v12 ^= v1;
- v12 = ((v12 >> 32) | (v12 << (64 - 32)));
- v11 = v11 + v12;
- v6 ^= v11;
- v6 = ((v6 >> 24) | (v6 << (64 - 24)));
- v1 = v1 + v6 + m[2];
- v12 ^= v1;
- v12 = ((v12 >> 16) | (v12 << (64 - 16)));
- v11 = v11 + v12;
- v6 ^= v11;
- v6 = ((v6 >> 63) | (v6 << (64 - 63)));
-
- // G(11, 6, v2, v7, v8, v13)
- v2 = v2 + v7 + m[11];
- v13 ^= v2;
- v13 = ((v13 >> 32) | (v13 << (64 - 32)));
- v8 = v8 + v13;
- v7 ^= v8;
- v7 = ((v7 >> 24) | (v7 << (64 - 24)));
- v2 = v2 + v7 + m[7];
- v13 ^= v2;
- v13 = ((v13 >> 16) | (v13 << (64 - 16)));
- v8 = v8 + v13;
- v7 ^= v8;
- v7 = ((v7 >> 63) | (v7 << (64 - 63)));
-
- // G(11, 7, v3, v4, v9, v14)
- v3 = v3 + v4 + m[5];
- v14 ^= v3;
- v14 = ((v14 >> 32) | (v14 << (64 - 32)));
- v9 = v9 + v14;
- v4 ^= v9;
- v4 = ((v4 >> 24) | (v4 << (64 - 24)));
- v3 = v3 + v4 + m[3];
- v14 ^= v3;
- v14 = ((v14 >> 16) | (v14 << (64 - 16)));
- v9 = v9 + v14;
- v4 ^= v9;
- v4 = ((v4 >> 63) | (v4 << (64 - 63)));
-
-
-
-
- //Finalization
- h[0] ^= v0 ^ v8;
- h[1] ^= v1 ^ v9;
- h[2] ^= v2 ^ v10;
- h[3] ^= v3 ^ v11;
- h[4] ^= v4 ^ v12;
- h[5] ^= v5 ^ v13;
- h[6] ^= v6 ^ v14;
- h[7] ^= v7 ^ v15;
- }
- }
-#endif
-}
diff --git a/deps/BLAKE2/csharp/Blake2Sharp/Blake2BCore-Inline.cs b/deps/BLAKE2/csharp/Blake2Sharp/Blake2BCore-Inline.cs
deleted file mode 100644
index e09b2fc..0000000
--- a/deps/BLAKE2/csharp/Blake2Sharp/Blake2BCore-Inline.cs
+++ /dev/null
@@ -1,177 +0,0 @@
-// BLAKE2 reference source code package - C# implementation
-
-// Written in 2012 by Christian Winnerlein
-
-// To the extent possible under law, the author(s) have dedicated all copyright
-// and related and neighboring rights to this software to the public domain
-// worldwide. This software is distributed without any warranty.
-
-// You should have received a copy of the CC0 Public Domain Dedication along with
-// this software. If not, see .
-using System;
-
-namespace Blake2Sharp
-{
-#if false
- public sealed partial class Blake2BCore
- {
- partial void Compress(byte[] block, int start)
- {
- var h = _h;
- var m = _m;
-
- if (BitConverter.IsLittleEndian)
- {
- Buffer.BlockCopy(block, start, m, 0, BlockSizeInBytes);
- }
- else
- {
- for (int i = 0; i < 16; ++i)
- m[i] = BytesToUInt64(block, start + (i << 3));
- }
-
- var v0 = h[0];
- var v1 = h[1];
- var v2 = h[2];
- var v3 = h[3];
- var v4 = h[4];
- var v5 = h[5];
- var v6 = h[6];
- var v7 = h[7];
-
- var v8 = IV0;
- var v9 = IV1;
- var v10 = IV2;
- var v11 = IV3;
- var v12 = IV4 ^ _counter0;
- var v13 = IV5 ^ _counter1;
- var v14 = IV6 ^ _finaliziationFlag0;
- var v15 = IV7 ^ _finaliziationFlag1;
-
- for (int r = 0; r < NumberOfRounds; ++r)
- {
- // G(r,0,v0,v4,v8,v12)
- v0 = v0 + v4 + m[Sigma[16 * r + 2 * 0 + 0]];
- v12 ^= v0;
- v12 = ((v12 >> 32) | (v12 << (64 - 32)));
- v8 = v8 + v12;
- v4 ^= v8;
- v4 = ((v4 >> 24) | (v4 << (64 - 24)));
- v0 = v0 + v4 + m[Sigma[16 * r + 2 * 0 + 1]];
- v12 ^= v0;
- v12 = ((v12 >> 16) | (v12 << (64 - 16)));
- v8 = v8 + v12;
- v4 ^= v8;
- v4 = ((v4 >> 63) | (v4 << (64 - 63)));
-
- // G(r,1,v1,v5,v9,v13)
- v1 = v1 + v5 + m[Sigma[16 * r + 2 * 1 + 0]];
- v13 ^= v1;
- v13 = ((v13 >> 32) | (v13 << (64 - 32)));
- v9 = v9 + v13;
- v5 ^= v9;
- v5 = ((v5 >> 24) | (v5 << (64 - 24)));
- v1 = v1 + v5 + m[Sigma[16 * r + 2 * 1 + 1]];
- v13 ^= v1;
- v13 = ((v13 >> 16) | (v13 << (64 - 16)));
- v9 = v9 + v13;
- v5 ^= v9;
- v5 = ((v5 >> 63) | (v5 << (64 - 63)));
-
- // G(r,2,v2,v6,v10,v14)
- v2 = v2 + v6 + m[Sigma[16 * r + 2 * 2 + 0]];
- v14 ^= v2;
- v14 = ((v14 >> 32) | (v14 << (64 - 32)));
- v10 = v10 + v14;
- v6 ^= v10;
- v6 = ((v6 >> 24) | (v6 << (64 - 24)));
- v2 = v2 + v6 + m[Sigma[16 * r + 2 * 2 + 1]];
- v14 ^= v2;
- v14 = ((v14 >> 16) | (v14 << (64 - 16)));
- v10 = v10 + v14;
- v6 ^= v10;
- v6 = ((v6 >> 63) | (v6 << (64 - 63)));
-
- // G(r,3,v3,v7,v11,v15)
- v3 = v3 + v7 + m[Sigma[16 * r + 2 * 3 + 0]];
- v15 ^= v3;
- v15 = ((v15 >> 32) | (v15 << (64 - 32)));
- v11 = v11 + v15;
- v7 ^= v11;
- v7 = ((v7 >> 24) | (v7 << (64 - 24)));
- v3 = v3 + v7 + m[Sigma[16 * r + 2 * 3 + 1]];
- v15 ^= v3;
- v15 = ((v15 >> 16) | (v15 << (64 - 16)));
- v11 = v11 + v15;
- v7 ^= v11;
- v7 = ((v7 >> 63) | (v7 << (64 - 63)));
-
- // G(r,4,v0,v5,v10,v15)
- v0 = v0 + v5 + m[Sigma[16 * r + 2 * 4 + 0]];
- v15 ^= v0;
- v15 = ((v15 >> 32) | (v15 << (64 - 32)));
- v10 = v10 + v15;
- v5 ^= v10;
- v5 = ((v5 >> 24) | (v5 << (64 - 24)));
- v0 = v0 + v5 + m[Sigma[16 * r + 2 * 4 + 1]];
- v15 ^= v0;
- v15 = ((v15 >> 16) | (v15 << (64 - 16)));
- v10 = v10 + v15;
- v5 ^= v10;
- v5 = ((v5 >> 63) | (v5 << (64 - 63)));
-
- // G(r,5,v1,v6,v11,v12)
- v1 = v1 + v6 + m[Sigma[16 * r + 2 * 5 + 0]];
- v12 ^= v1;
- v12 = ((v12 >> 32) | (v12 << (64 - 32)));
- v11 = v11 + v12;
- v6 ^= v11;
- v6 = ((v6 >> 24) | (v6 << (64 - 24)));
- v1 = v1 + v6 + m[Sigma[16 * r + 2 * 5 + 1]];
- v12 ^= v1;
- v12 = ((v12 >> 16) | (v12 << (64 - 16)));
- v11 = v11 + v12;
- v6 ^= v11;
- v6 = ((v6 >> 63) | (v6 << (64 - 63)));
-
- // G(r,6,v2,v7,v8,v13)
- v2 = v2 + v7 + m[Sigma[16 * r + 2 * 6 + 0]];
- v13 ^= v2;
- v13 = ((v13 >> 32) | (v13 << (64 - 32)));
- v8 = v8 + v13;
- v7 ^= v8;
- v7 = ((v7 >> 24) | (v7 << (64 - 24)));
- v2 = v2 + v7 + m[Sigma[16 * r + 2 * 6 + 1]];
- v13 ^= v2;
- v13 = ((v13 >> 16) | (v13 << (64 - 16)));
- v8 = v8 + v13;
- v7 ^= v8;
- v7 = ((v7 >> 63) | (v7 << (64 - 63)));
-
- // G(r,7,v3,v4,v9,v14)
- v3 = v3 + v4 + m[Sigma[16 * r + 2 * 7 + 0]];
- v14 ^= v3;
- v14 = ((v14 >> 32) | (v14 << (64 - 32)));
- v9 = v9 + v14;
- v4 ^= v9;
- v4 = ((v4 >> 24) | (v4 << (64 - 24)));
- v3 = v3 + v4 + m[Sigma[16 * r + 2 * 7 + 1]];
- v14 ^= v3;
- v14 = ((v14 >> 16) | (v14 << (64 - 16)));
- v9 = v9 + v14;
- v4 ^= v9;
- v4 = ((v4 >> 63) | (v4 << (64 - 63)));
- }
-
- h[0] ^= v0 ^ v8;
- h[1] ^= v1 ^ v9;
- h[2] ^= v2 ^ v10;
- h[3] ^= v3 ^ v11;
- h[4] ^= v4 ^ v12;
- h[5] ^= v5 ^ v13;
- h[6] ^= v6 ^ v14;
- h[7] ^= v7 ^ v15;
- }
- }
-#endif
-}
diff --git a/deps/BLAKE2/csharp/Blake2Sharp/Blake2BCore-Simple.cs b/deps/BLAKE2/csharp/Blake2Sharp/Blake2BCore-Simple.cs
deleted file mode 100644
index 6121a6a..0000000
--- a/deps/BLAKE2/csharp/Blake2Sharp/Blake2BCore-Simple.cs
+++ /dev/null
@@ -1,88 +0,0 @@
-// BLAKE2 reference source code package - C# implementation
-
-// Written in 2012 by Christian Winnerlein
-
-// To the extent possible under law, the author(s) have dedicated all copyright
-// and related and neighboring rights to this software to the public domain
-// worldwide. This software is distributed without any warranty.
-
-// You should have received a copy of the CC0 Public Domain Dedication along with
-// this software. If not, see .
-
-using System;
-
-namespace Blake2Sharp
-{
-#if false
- public sealed partial class Blake2BCore
- {
- private ulong[] _v = new ulong[16];
-
- private static ulong RotateRight(ulong value, int nBits)
- {
- return (value >> nBits) | (value << (64 - nBits));
- }
-
- private void G(int a, int b, int c, int d, int r, int i)
- {
- int p = (r << 4) + i;
- int p0 = Sigma[p];
- int p1 = Sigma[p + 1];
- var v = _v;
- var m = _m;
-
- v[a] += v[b] + m[p0];
- v[d] = RotateRight(v[d] ^ v[a], 32);
- v[c] += v[d];
- v[b] = RotateRight(v[b] ^ v[c], 24);
- v[a] += v[b] + m[p1];
- v[d] = RotateRight(v[d] ^ v[a], 16);
- v[c] += v[d];
- v[b] = RotateRight(v[b] ^ v[c], 63);
- }
-
- partial void Compress(byte[] block, int start)
- {
- var v = _v;
- var h = _h;
- var m = _m;
-
- for (int i = 0; i < 16; ++i)
- m[i] = BytesToUInt64(block, start + (i << 3));
-
- v[0] = h[0];
- v[1] = h[1];
- v[2] = h[2];
- v[3] = h[3];
- v[4] = h[4];
- v[5] = h[5];
- v[6] = h[6];
- v[7] = h[7];
-
- v[8] = IV0;
- v[9] = IV1;
- v[10] = IV2;
- v[11] = IV3;
- v[12] = IV4 ^ _counter0;
- v[13] = IV5 ^ _counter1;
- v[14] = IV6 ^ _finaliziationFlag0;
- v[15] = IV7 ^ _finaliziationFlag1;
-
- for (int r = 0; r < NumberOfRounds; ++r)
- {
- G(0, 4, 8, 12, r, 0);
- G(1, 5, 9, 13, r, 2);
- G(2, 6, 10, 14, r, 4);
- G(3, 7, 11, 15, r, 6);
- G(3, 4, 9, 14, r, 14);
- G(2, 7, 8, 13, r, 12);
- G(0, 5, 10, 15, r, 8);
- G(1, 6, 11, 12, r, 10);
- }
-
- for (int i = 0; i < 8; ++i)
- h[i] ^= v[i] ^ v[i + 8];
- }
- }
-#endif
-}
diff --git a/deps/BLAKE2/csharp/Blake2Sharp/Blake2BCore.cs b/deps/BLAKE2/csharp/Blake2Sharp/Blake2BCore.cs
deleted file mode 100644
index 3b250da..0000000
--- a/deps/BLAKE2/csharp/Blake2Sharp/Blake2BCore.cs
+++ /dev/null
@@ -1,198 +0,0 @@
-// BLAKE2 reference source code package - C# implementation
-
-// Written in 2012 by Christian Winnerlein
-
-// To the extent possible under law, the author(s) have dedicated all copyright
-// and related and neighboring rights to this software to the public domain
-// worldwide. This software is distributed without any warranty.
-
-// You should have received a copy of the CC0 Public Domain Dedication along with
-// this software. If not, see .
-//
-/*
- Based on BlakeSharp
- by Dominik Reichl
- Web: http://www.dominik-reichl.de/
- If you're using this class, it would be nice if you'd mention
- me somewhere in the documentation of your program, but it's
- not required.
-
- BLAKE was designed by Jean-Philippe Aumasson, Luca Henzen,
- Willi Meier and Raphael C.-W. Phan.
- BlakeSharp was derived from the reference C implementation.
-*/
-
-using System;
-
-namespace Blake2Sharp
-{
- public sealed partial class Blake2BCore
- {
- private bool _isInitialized = false;
-
- private int _bufferFilled;
- private byte[] _buf = new byte[128];
-
- private ulong[] _m = new ulong[16];
- private ulong[] _h = new ulong[8];
- private ulong _counter0;
- private ulong _counter1;
- private ulong _finalizationFlag0;
- private ulong _finalizationFlag1;
-
- private const int NumberOfRounds = 12;
- private const int BlockSizeInBytes = 128;
-
- const ulong IV0 = 0x6A09E667F3BCC908UL;
- const ulong IV1 = 0xBB67AE8584CAA73BUL;
- const ulong IV2 = 0x3C6EF372FE94F82BUL;
- const ulong IV3 = 0xA54FF53A5F1D36F1UL;
- const ulong IV4 = 0x510E527FADE682D1UL;
- const ulong IV5 = 0x9B05688C2B3E6C1FUL;
- const ulong IV6 = 0x1F83D9ABFB41BD6BUL;
- const ulong IV7 = 0x5BE0CD19137E2179UL;
-
- private static readonly int[] Sigma = new int[NumberOfRounds * 16] {
- 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
- 14, 10, 4, 8, 9, 15, 13, 6, 1, 12, 0, 2, 11, 7, 5, 3,
- 11, 8, 12, 0, 5, 2, 15, 13, 10, 14, 3, 6, 7, 1, 9, 4,
- 7, 9, 3, 1, 13, 12, 11, 14, 2, 6, 5, 10, 4, 0, 15, 8,
- 9, 0, 5, 7, 2, 4, 10, 15, 14, 1, 11, 12, 6, 8, 3, 13,
- 2, 12, 6, 10, 0, 11, 8, 3, 4, 13, 7, 5, 15, 14, 1, 9,
- 12, 5, 1, 15, 14, 13, 4, 10, 0, 7, 6, 3, 9, 2, 8, 11,
- 13, 11, 7, 14, 12, 1, 3, 9, 5, 0, 15, 4, 8, 6, 2, 10,
- 6, 15, 14, 9, 11, 3, 0, 8, 12, 2, 13, 7, 1, 4, 10, 5,
- 10, 2, 8, 4, 7, 6, 1, 5, 15, 11, 9, 14, 3, 12, 13, 0,
- 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
- 14, 10, 4, 8, 9, 15, 13, 6, 1, 12, 0, 2, 11, 7, 5, 3
- };
-
- internal static ulong BytesToUInt64(byte[] buf, int offset)
- {
- return
- ((ulong)buf[offset + 7] << 7 * 8 |
- ((ulong)buf[offset + 6] << 6 * 8) |
- ((ulong)buf[offset + 5] << 5 * 8) |
- ((ulong)buf[offset + 4] << 4 * 8) |
- ((ulong)buf[offset + 3] << 3 * 8) |
- ((ulong)buf[offset + 2] << 2 * 8) |
- ((ulong)buf[offset + 1] << 1 * 8) |
- ((ulong)buf[offset]));
- }
-
- private static void UInt64ToBytes(ulong value, byte[] buf, int offset)
- {
- buf[offset + 7] = (byte)(value >> 7 * 8);
- buf[offset + 6] = (byte)(value >> 6 * 8);
- buf[offset + 5] = (byte)(value >> 5 * 8);
- buf[offset + 4] = (byte)(value >> 4 * 8);
- buf[offset + 3] = (byte)(value >> 3 * 8);
- buf[offset + 2] = (byte)(value >> 2 * 8);
- buf[offset + 1] = (byte)(value >> 1 * 8);
- buf[offset] = (byte)value;
- }
-
- partial void Compress(byte[] block, int start);
-
- public void Initialize(ulong[] config)
- {
- if (config == null)
- throw new ArgumentNullException("config");
- if (config.Length != 8)
- throw new ArgumentException("config length must be 8 words");
- _isInitialized = true;
-
- _h[0] = IV0;
- _h[1] = IV1;
- _h[2] = IV2;
- _h[3] = IV3;
- _h[4] = IV4;
- _h[5] = IV5;
- _h[6] = IV6;
- _h[7] = IV7;
-
- _counter0 = 0;
- _counter1 = 0;
- _finalizationFlag0 = 0;
- _finalizationFlag1 = 0;
-
- _bufferFilled = 0;
-
- Array.Clear(_buf, 0, _buf.Length);
-
- for (int i = 0; i < 8; i++)
- _h[i] ^= config[i];
- }
-
- public void HashCore(byte[] array, int start, int count)
- {
- if (!_isInitialized)
- throw new InvalidOperationException("Not initialized");
- if (array == null)
- throw new ArgumentNullException("array");
- if (start < 0)
- throw new ArgumentOutOfRangeException("start");
- if (count < 0)
- throw new ArgumentOutOfRangeException("count");
- if ((long)start + (long)count > array.Length)
- throw new ArgumentOutOfRangeException("start+count");
- int offset = start;
- int bufferRemaining = BlockSizeInBytes - _bufferFilled;
-
- if ((_bufferFilled > 0) && (count > bufferRemaining))
- {
- Array.Copy(array, offset, _buf, _bufferFilled, bufferRemaining);
- _counter0 += BlockSizeInBytes;
- if (_counter0 == 0)
- _counter1++;
- Compress(_buf, 0);
- offset += bufferRemaining;
- count -= bufferRemaining;
- _bufferFilled = 0;
- }
-
- while (count > BlockSizeInBytes)
- {
- _counter0 += BlockSizeInBytes;
- if (_counter0 == 0)
- _counter1++;
- Compress(array, offset);
- offset += BlockSizeInBytes;
- count -= BlockSizeInBytes;
- }
-
- if (count > 0)
- {
- Array.Copy(array, offset, _buf, _bufferFilled, count);
- _bufferFilled += count;
- }
- }
-
- public byte[] HashFinal()
- {
- return HashFinal(false);
- }
-
- public byte[] HashFinal(bool isEndOfLayer)
- {
- if (!_isInitialized)
- throw new InvalidOperationException("Not initialized");
- _isInitialized = false;
-
- //Last compression
- _counter0 += (uint)_bufferFilled;
- _finalizationFlag0 = ulong.MaxValue;
- if (isEndOfLayer)
- _finalizationFlag1 = ulong.MaxValue;
- for (int i = _bufferFilled; i < _buf.Length; i++)
- _buf[i] = 0;
- Compress(_buf, 0);
-
- //Output
- byte[] hash = new byte[64];
- for (int i = 0; i < 8; ++i)
- UInt64ToBytes(_h[i], hash, i << 3);
- return hash;
- }
- }
-}
diff --git a/deps/BLAKE2/csharp/Blake2Sharp/Blake2BHasher.cs b/deps/BLAKE2/csharp/Blake2Sharp/Blake2BHasher.cs
deleted file mode 100644
index 18b6bb0..0000000
--- a/deps/BLAKE2/csharp/Blake2Sharp/Blake2BHasher.cs
+++ /dev/null
@@ -1,66 +0,0 @@
-// BLAKE2 reference source code package - C# implementation
-
-// Written in 2012 by Christian Winnerlein
-
-// To the extent possible under law, the author(s) have dedicated all copyright
-// and related and neighboring rights to this software to the public domain
-// worldwide. This software is distributed without any warranty.
-
-// You should have received a copy of the CC0 Public Domain Dedication along with
-// this software. If not, see .
-
-using System;
-using System.Collections.Generic;
-using System.Text;
-
-namespace Blake2Sharp
-{
- internal class Blake2BHasher : Hasher
- {
- private readonly Blake2BCore core = new Blake2BCore();
- private readonly ulong[] rawConfig;
- private readonly byte[] key;
- private readonly int outputSizeInBytes;
- private static readonly Blake2BConfig DefaultConfig = new Blake2BConfig();
-
- public override void Init()
- {
- core.Initialize(rawConfig);
- if (key != null)
- {
- core.HashCore(key, 0, key.Length);
- }
- }
-
- public override byte[] Finish()
- {
- var fullResult = core.HashFinal();
- if (outputSizeInBytes != fullResult.Length)
- {
- var result = new byte[outputSizeInBytes];
- Array.Copy(fullResult, result, result.Length);
- return result;
- }
- else return fullResult;
- }
-
- public Blake2BHasher(Blake2BConfig config)
- {
- if (config == null)
- config = DefaultConfig;
- rawConfig = Blake2IvBuilder.ConfigB(config, null);
- if (config.Key != null && config.Key.Length != 0)
- {
- key = new byte[128];
- Array.Copy(config.Key, key, config.Key.Length);
- }
- outputSizeInBytes = config.OutputSizeInBytes;
- Init();
- }
-
- public override void Update(byte[] data, int start, int count)
- {
- core.HashCore(data, start, count);
- }
- }
-}
diff --git a/deps/BLAKE2/csharp/Blake2Sharp/Blake2BNodeHasher.cs b/deps/BLAKE2/csharp/Blake2Sharp/Blake2BNodeHasher.cs
deleted file mode 100644
index 02d9cbc..0000000
--- a/deps/BLAKE2/csharp/Blake2Sharp/Blake2BNodeHasher.cs
+++ /dev/null
@@ -1,52 +0,0 @@
-// BLAKE2 reference source code package - C# implementation
-
-// Written in 2012 by Christian Winnerlein
-
-// To the extent possible under law, the author(s) have dedicated all copyright
-// and related and neighboring rights to this software to the public domain
-// worldwide. This software is distributed without any warranty.
-
-// You should have received a copy of the CC0 Public Domain Dedication along with
-// this software. If not, see .
-
-using System;
-using System.Collections.Generic;
-using System.Text;
-
-namespace Blake2Sharp
-{
- /*public class Blake2BNodeHasher : NodeHasher
- {
- ulong[] rawConfig;
- byte[] key;
- Blake2BCore core = new Blake2BCore();
-
- public override void Init(int depth, long nodeOffset)
- {
- throw new NotImplementedException();
- }
-
- public override byte[] Finish(bool isEndOfLayer)
- {
- throw new NotImplementedException();
- }
-
- public override void Update(byte[] data, int start, int count)
- {
- throw new NotImplementedException();
- }
-
- public Blake2BNodeHasher(Blake2BConfig config, Blake2BTreeConfig treeConfig)
- {
- if (config == null)
- config = DefaultConfig;
- rawConfig = Blake2IvBuilder.ConfigB(config, null);
- if (config.Key != null && config.Key.Length != 0)
- {
- key = new byte[128];
- Array.Copy(config.Key, key, config.Key.Length);
- }
- Init(0, 0);
- }
- }*/
-}
diff --git a/deps/BLAKE2/csharp/Blake2Sharp/Blake2BTreeConfig.cs b/deps/BLAKE2/csharp/Blake2Sharp/Blake2BTreeConfig.cs
deleted file mode 100644
index 5a45d66..0000000
--- a/deps/BLAKE2/csharp/Blake2Sharp/Blake2BTreeConfig.cs
+++ /dev/null
@@ -1,52 +0,0 @@
-// BLAKE2 reference source code package - C# implementation
-
-// Written in 2012 by Christian Winnerlein
-
-// To the extent possible under law, the author(s) have dedicated all copyright
-// and related and neighboring rights to this software to the public domain
-// worldwide. This software is distributed without any warranty.
-
-// You should have received a copy of the CC0 Public Domain Dedication along with
-// this software. If not, see .
-
-using System;
-
-namespace Blake2Sharp
-{
- public sealed class Blake2BTreeConfig : ICloneable
- {
- public int IntermediateHashSize { get; set; }
- public int MaxHeight { get; set; }
- public long LeafSize { get; set; }
- public int FanOut { get; set; }
-
- public Blake2BTreeConfig()
- {
- IntermediateHashSize = 64;
- }
-
- public Blake2BTreeConfig Clone()
- {
- var result = new Blake2BTreeConfig();
- result.IntermediateHashSize = IntermediateHashSize;
- result.MaxHeight = MaxHeight;
- result.LeafSize = LeafSize;
- result.FanOut = FanOut;
- return result;
- }
-
- public static Blake2BTreeConfig CreateInterleaved(int parallelism)
- {
- var result = new Blake2BTreeConfig();
- result.FanOut = parallelism;
- result.MaxHeight = 2;
- result.IntermediateHashSize = 64;
- return result;
- }
-
- object ICloneable.Clone()
- {
- return Clone();
- }
- }
-}
diff --git a/deps/BLAKE2/csharp/Blake2Sharp/Blake2IvBuilder.cs b/deps/BLAKE2/csharp/Blake2Sharp/Blake2IvBuilder.cs
deleted file mode 100644
index f2da9dd..0000000
--- a/deps/BLAKE2/csharp/Blake2Sharp/Blake2IvBuilder.cs
+++ /dev/null
@@ -1,76 +0,0 @@
-// BLAKE2 reference source code package - C# implementation
-
-// Written in 2012 by Christian Winnerlein
-
-// To the extent possible under law, the author(s) have dedicated all copyright
-// and related and neighboring rights to this software to the public domain
-// worldwide. This software is distributed without any warranty.
-
-// You should have received a copy of the CC0 Public Domain Dedication along with
-// this software. If not, see .
-
-using System;
-
-namespace Blake2Sharp
-{
- internal static class Blake2IvBuilder
- {
- private static readonly Blake2BTreeConfig SequentialTreeConfig = new Blake2BTreeConfig() { IntermediateHashSize = 0, LeafSize = 0, FanOut = 1, MaxHeight = 1 };
-
- public static ulong[] ConfigB(Blake2BConfig config, Blake2BTreeConfig treeConfig)
- {
- bool isSequential = treeConfig == null;
- if (isSequential)
- treeConfig = SequentialTreeConfig;
- var rawConfig = new ulong[8];
- var result = new ulong[8];
-
- //digest length
- if (config.OutputSizeInBytes <= 0 | config.OutputSizeInBytes > 64)
- throw new ArgumentOutOfRangeException("config.OutputSize");
- rawConfig[0] |= (ulong)(uint)config.OutputSizeInBytes;
-
- //Key length
- if (config.Key != null)
- {
- if (config.Key.Length > 64)
- throw new ArgumentException("config.Key", "Key too long");
- rawConfig[0] |= (ulong)((uint)config.Key.Length << 8);
- }
- // FanOut
- rawConfig[0] |= (uint)treeConfig.FanOut << 16;
- // Depth
- rawConfig[0] |= (uint)treeConfig.MaxHeight << 24;
- // Leaf length
- rawConfig[0] |= ((ulong)(uint)treeConfig.LeafSize) << 32;
- // Inner length
- if (!isSequential && (treeConfig.IntermediateHashSize <= 0 || treeConfig.IntermediateHashSize > 64))
- throw new ArgumentOutOfRangeException("treeConfig.TreeIntermediateHashSize");
- rawConfig[2] |= (uint)treeConfig.IntermediateHashSize << 8;
- // Salt
- if (config.Salt != null)
- {
- if (config.Salt.Length != 16)
- throw new ArgumentException("config.Salt has invalid length");
- rawConfig[4] = Blake2BCore.BytesToUInt64(config.Salt, 0);
- rawConfig[5] = Blake2BCore.BytesToUInt64(config.Salt, 8);
- }
- // Personalization
- if (config.Personalization != null)
- {
- if (config.Personalization.Length != 16)
- throw new ArgumentException("config.Personalization has invalid length");
- rawConfig[6] = Blake2BCore.BytesToUInt64(config.Personalization, 0);
- rawConfig[7] = Blake2BCore.BytesToUInt64(config.Personalization, 8);
- }
-
- return rawConfig;
- }
-
- public static void ConfigBSetNode(ulong[] rawConfig, byte depth, ulong nodeOffset)
- {
- rawConfig[1] = nodeOffset;
- rawConfig[2] = (rawConfig[2] & ~0xFFul) | depth;
- }
- }
-}
diff --git a/deps/BLAKE2/csharp/Blake2Sharp/Blake2Sharp.csproj b/deps/BLAKE2/csharp/Blake2Sharp/Blake2Sharp.csproj
deleted file mode 100644
index 634cbca..0000000
--- a/deps/BLAKE2/csharp/Blake2Sharp/Blake2Sharp.csproj
+++ /dev/null
@@ -1,60 +0,0 @@
-
-
-
-
- Debug
- AnyCPU
- {E21AB364-9130-4F14-ABE1-18FA0C089130}
- Library
- Properties
- Blake2Sharp
- Blake2Sharp
- v2.0
- 512
-
-
-
- true
- full
- false
- bin\Debug\
- DEBUG;TRACE
- prompt
- 4
-
-
- pdbonly
- true
- bin\Release\
- TRACE
- prompt
- 4
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/deps/BLAKE2/csharp/Blake2Sharp/Hasher.cs b/deps/BLAKE2/csharp/Blake2Sharp/Hasher.cs
deleted file mode 100644
index 5b5a11a..0000000
--- a/deps/BLAKE2/csharp/Blake2Sharp/Hasher.cs
+++ /dev/null
@@ -1,60 +0,0 @@
-// BLAKE2 reference source code package - C# implementation
-
-// Written in 2012 by Christian Winnerlein
-
-// To the extent possible under law, the author(s) have dedicated all copyright
-// and related and neighboring rights to this software to the public domain
-// worldwide. This software is distributed without any warranty.
-
-// You should have received a copy of the CC0 Public Domain Dedication along with
-// this software. If not, see .
-
-using System;
-using System.Collections.Generic;
-using System.Security.Cryptography;
-using System.Text;
-
-namespace Blake2Sharp
-{
- public abstract class Hasher
- {
- public abstract void Init();
- public abstract byte[] Finish();
- public abstract void Update(byte[] data, int start, int count);
-
- public void Update(byte[] data)
- {
- Update(data, 0, data.Length);
- }
-
- public HashAlgorithm AsHashAlgorithm()
- {
- return new HashAlgorithmAdapter(this);
- }
-
- internal class HashAlgorithmAdapter : HashAlgorithm
- {
- private readonly Hasher _hasher;
-
- protected override void HashCore(byte[] array, int ibStart, int cbSize)
- {
- _hasher.Update(array, ibStart, cbSize);
- }
-
- protected override byte[] HashFinal()
- {
- return _hasher.Finish();
- }
-
- public override void Initialize()
- {
- _hasher.Init();
- }
-
- public HashAlgorithmAdapter(Hasher hasher)
- {
- _hasher = hasher;
- }
- }
- }
-}
diff --git a/deps/BLAKE2/csharp/Blake2Sharp/NodeHasher.cs b/deps/BLAKE2/csharp/Blake2Sharp/NodeHasher.cs
deleted file mode 100644
index 593eb0b..0000000
--- a/deps/BLAKE2/csharp/Blake2Sharp/NodeHasher.cs
+++ /dev/null
@@ -1,30 +0,0 @@
-// BLAKE2 reference source code package - C# implementation
-
-// Written in 2012 by Christian Winnerlein
-
-// To the extent possible under law, the author(s) have dedicated all copyright
-// and related and neighboring rights to this software to the public domain
-// worldwide. This software is distributed without any warranty.
-
-// You should have received a copy of the CC0 Public Domain Dedication along with
-// this software. If not, see .
-
-using System;
-using System.Collections.Generic;
-using System.Security.Cryptography;
-using System.Text;
-
-namespace Blake2Sharp
-{
- public abstract class NodeHasher
- {
- public abstract void Init(int depth, long nodeOffset);
- public abstract byte[] Finish(bool isEndOfLayer);
- public abstract void Update(byte[] data, int start, int count);
-
- public void Update(byte[] data)
- {
- Update(data, 0, data.Length);
- }
- }
-}
diff --git a/deps/BLAKE2/csharp/Blake2Sharp/Properties/AssemblyInfo.cs b/deps/BLAKE2/csharp/Blake2Sharp/Properties/AssemblyInfo.cs
deleted file mode 100644
index e01fb49..0000000
--- a/deps/BLAKE2/csharp/Blake2Sharp/Properties/AssemblyInfo.cs
+++ /dev/null
@@ -1,36 +0,0 @@
-using System.Reflection;
-using System.Runtime.CompilerServices;
-using System.Runtime.InteropServices;
-
-// General Information about an assembly is controlled through the following
-// set of attributes. Change these attribute values to modify the information
-// associated with an assembly.
-[assembly: AssemblyTitle("Blake2Sharp")]
-[assembly: AssemblyDescription("Blake2 Hashfunction")]
-[assembly: AssemblyConfiguration("")]
-[assembly: AssemblyCompany("CodesInChaos")]
-[assembly: AssemblyProduct("Blake2Sharp")]
-[assembly: AssemblyCopyright("Public Domain")]
-[assembly: AssemblyTrademark("")]
-[assembly: AssemblyCulture("")]
-
-// Setting ComVisible to false makes the types in this assembly not visible
-// to COM components. If you need to access a type in this assembly from
-// COM, set the ComVisible attribute to true on that type.
-[assembly: ComVisible(false)]
-
-// The following GUID is for the ID of the typelib if this project is exposed to COM
-[assembly: Guid("b7361e6c-1a16-4653-9afb-134066503c8f")]
-
-// Version information for an assembly consists of the following four values:
-//
-// Major Version
-// Minor Version
-// Build Number
-// Revision
-//
-// You can specify all the values or you can default the Build and Revision Numbers
-// by using the '*' as shown below:
-// [assembly: AssemblyVersion("1.0.*")]
-[assembly: AssemblyVersion("1.0.0.0")]
-[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/deps/BLAKE2/csharp/Blake2Sharp/TreeHasher.cs b/deps/BLAKE2/csharp/Blake2Sharp/TreeHasher.cs
deleted file mode 100644
index 15d8bfe..0000000
--- a/deps/BLAKE2/csharp/Blake2Sharp/TreeHasher.cs
+++ /dev/null
@@ -1,77 +0,0 @@
-// BLAKE2 reference source code package - C# implementation
-
-// Written in 2012 by Christian Winnerlein
-
-// To the extent possible under law, the author(s) have dedicated all copyright
-// and related and neighboring rights to this software to the public domain
-// worldwide. This software is distributed without any warranty.
-
-// You should have received a copy of the CC0 Public Domain Dedication along with
-// this software. If not, see .
-
-using System;
-using System.Collections.Generic;
-using System.Text;
-
-namespace Blake2Sharp
-{
- /*public class TreeHasher : Hasher
- {
- NodeHasher nodeHasher;
- int maxDepth;
- int maxLeafSize;
- int currentLeafSize;
- int fanOut;
- List[] intermediateHashes;
- long[] counts;
-
- public override void Init()
- {
- intermediateHashes = new List[maxDepth];
- counts = new long[maxDepth];
- }
-
- public override byte[] Finish()
- {
- for (int layer = 0; layer < intermediateHashes.Length; layer++)
- {
- if (intermediateHashes[layer].Count > 0)
- {
- nodeHasher.Init(layer, counts[layer]);
- foreach (var hash in intermediateHashes[layer])
- nodeHasher.Update(hash);
- }
- }
- intermediateHashes = null;
- }
-
- public override void Update(byte[] data, int start, int count)
- {
- while (count > 0)
- {
- int toHash = Math.Min(maxLeafSize - currentLeafSize, count);
- nodeHasher.Update(data, start, toHash);
- start += toHash;
- count -= toHash;
- if (count > 0)
- {
- intermediateHashes[0].Add(nodeHasher.Finish(false));
- for (int layer = 0; layer < intermediateHashes.Length; layer++)
- {
- if ((layer + 1 < maxDepth) && (intermediateHashes[layer].Count == fanOut))
- {
- nodeHasher.Init(layer, counts[layer]);
- foreach (var hash in intermediateHashes[layer])
- nodeHasher.Update(hash);
- intermediateHashes[layer + 1].Add(nodeHasher.Finish);
- intermediateHashes[layer].Clear();
- counts[layer + 1]++;
- }
- }
- counts[0]++;
- nodeHasher.Init(0, counts[0]);
- }
- }
- }
- }*/
-}
diff --git a/deps/BLAKE2/csharp/Blake2Sharp/compression.c b/deps/BLAKE2/csharp/Blake2Sharp/compression.c
deleted file mode 100644
index 592914e..0000000
--- a/deps/BLAKE2/csharp/Blake2Sharp/compression.c
+++ /dev/null
@@ -1,26 +0,0 @@
-#define ROT(x, y)\
- ((x >> y)|(x << (64-y)))
-
-#define G(r,i,a,b,c,d) \
- YY G(r,i,a,b,c,d) XXX\
- a = a + b + m[Sigma[16*r+2*i+0]]; XXX\
- d ^= a; XXX\
- d = ROT(d, 32); XXX\
- c = c + d; XXX\
- b ^= c; XXX\
- b = ROT(b, 24); XXX\
- a = a + b + m[Sigma[16*r+2*i+1]]; XXX\
- d ^= a; XXX\
- d = ROT(d, 16); XXX\
- c = c + d; XXX\
- b ^= c; XXX\
- b = ROT(b, 63); XXX
-
-G( r, 0, v0, v4, v8, v12 )
-G( r, 1, v1, v5, v9, v13 )
-G( r, 2, v2, v6, v10, v14 )
-G( r, 3, v3, v7, v11, v15 )
-G( r, 4, v0, v5, v10, v15 )
-G( r, 5, v1, v6, v11, v12 )
-G( r, 6, v2, v7, v8, v13 )
-G( r, 7, v3, v4, v9, v14 )
\ No newline at end of file
diff --git a/deps/BLAKE2/neon/blake2-impl.h b/deps/BLAKE2/neon/blake2-impl.h
deleted file mode 100644
index c1df82e..0000000
--- a/deps/BLAKE2/neon/blake2-impl.h
+++ /dev/null
@@ -1,160 +0,0 @@
-/*
- BLAKE2 reference source code package - reference C implementations
-
- Copyright 2012, Samuel Neves . You may use this under the
- terms of the CC0, the OpenSSL Licence, or the Apache Public License 2.0, at
- your option. The terms of these licenses can be found at:
-
- - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0
- - OpenSSL license : https://www.openssl.org/source/license.html
- - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0
-
- More information about the BLAKE2 hash function can be found at
- https://blake2.net.
-*/
-#ifndef BLAKE2_IMPL_H
-#define BLAKE2_IMPL_H
-
-#include
-#include
-
-#if !defined(__cplusplus) && (!defined(__STDC_VERSION__) || __STDC_VERSION__ < 199901L)
- #if defined(_MSC_VER)
- #define BLAKE2_INLINE __inline
- #elif defined(__GNUC__)
- #define BLAKE2_INLINE __inline__
- #else
- #define BLAKE2_INLINE
- #endif
-#else
- #define BLAKE2_INLINE inline
-#endif
-
-static BLAKE2_INLINE uint32_t load32( const void *src )
-{
-#if defined(NATIVE_LITTLE_ENDIAN)
- uint32_t w;
- memcpy(&w, src, sizeof w);
- return w;
-#else
- const uint8_t *p = ( const uint8_t * )src;
- return (( uint32_t )( p[0] ) << 0) |
- (( uint32_t )( p[1] ) << 8) |
- (( uint32_t )( p[2] ) << 16) |
- (( uint32_t )( p[3] ) << 24) ;
-#endif
-}
-
-static BLAKE2_INLINE uint64_t load64( const void *src )
-{
-#if defined(NATIVE_LITTLE_ENDIAN)
- uint64_t w;
- memcpy(&w, src, sizeof w);
- return w;
-#else
- const uint8_t *p = ( const uint8_t * )src;
- return (( uint64_t )( p[0] ) << 0) |
- (( uint64_t )( p[1] ) << 8) |
- (( uint64_t )( p[2] ) << 16) |
- (( uint64_t )( p[3] ) << 24) |
- (( uint64_t )( p[4] ) << 32) |
- (( uint64_t )( p[5] ) << 40) |
- (( uint64_t )( p[6] ) << 48) |
- (( uint64_t )( p[7] ) << 56) ;
-#endif
-}
-
-static BLAKE2_INLINE uint16_t load16( const void *src )
-{
-#if defined(NATIVE_LITTLE_ENDIAN)
- uint16_t w;
- memcpy(&w, src, sizeof w);
- return w;
-#else
- const uint8_t *p = ( const uint8_t * )src;
- return ( uint16_t )((( uint32_t )( p[0] ) << 0) |
- (( uint32_t )( p[1] ) << 8));
-#endif
-}
-
-static BLAKE2_INLINE void store16( void *dst, uint16_t w )
-{
-#if defined(NATIVE_LITTLE_ENDIAN)
- memcpy(dst, &w, sizeof w);
-#else
- uint8_t *p = ( uint8_t * )dst;
- *p++ = ( uint8_t )w; w >>= 8;
- *p++ = ( uint8_t )w;
-#endif
-}
-
-static BLAKE2_INLINE void store32( void *dst, uint32_t w )
-{
-#if defined(NATIVE_LITTLE_ENDIAN)
- memcpy(dst, &w, sizeof w);
-#else
- uint8_t *p = ( uint8_t * )dst;
- p[0] = (uint8_t)(w >> 0);
- p[1] = (uint8_t)(w >> 8);
- p[2] = (uint8_t)(w >> 16);
- p[3] = (uint8_t)(w >> 24);
-#endif
-}
-
-static BLAKE2_INLINE void store64( void *dst, uint64_t w )
-{
-#if defined(NATIVE_LITTLE_ENDIAN)
- memcpy(dst, &w, sizeof w);
-#else
- uint8_t *p = ( uint8_t * )dst;
- p[0] = (uint8_t)(w >> 0);
- p[1] = (uint8_t)(w >> 8);
- p[2] = (uint8_t)(w >> 16);
- p[3] = (uint8_t)(w >> 24);
- p[4] = (uint8_t)(w >> 32);
- p[5] = (uint8_t)(w >> 40);
- p[6] = (uint8_t)(w >> 48);
- p[7] = (uint8_t)(w >> 56);
-#endif
-}
-
-static BLAKE2_INLINE uint64_t load48( const void *src )
-{
- const uint8_t *p = ( const uint8_t * )src;
- return (( uint64_t )( p[0] ) << 0) |
- (( uint64_t )( p[1] ) << 8) |
- (( uint64_t )( p[2] ) << 16) |
- (( uint64_t )( p[3] ) << 24) |
- (( uint64_t )( p[4] ) << 32) |
- (( uint64_t )( p[5] ) << 40) ;
-}
-
-static BLAKE2_INLINE void store48( void *dst, uint64_t w )
-{
- uint8_t *p = ( uint8_t * )dst;
- p[0] = (uint8_t)(w >> 0);
- p[1] = (uint8_t)(w >> 8);
- p[2] = (uint8_t)(w >> 16);
- p[3] = (uint8_t)(w >> 24);
- p[4] = (uint8_t)(w >> 32);
- p[5] = (uint8_t)(w >> 40);
-}
-
-static BLAKE2_INLINE uint32_t rotr32( const uint32_t w, const unsigned c )
-{
- return ( w >> c ) | ( w << ( 32 - c ) );
-}
-
-static BLAKE2_INLINE uint64_t rotr64( const uint64_t w, const unsigned c )
-{
- return ( w >> c ) | ( w << ( 64 - c ) );
-}
-
-/* prevents compiler optimizing out memset() */
-static BLAKE2_INLINE void secure_zero_memory(void *v, size_t n)
-{
- static void *(*const volatile memset_v)(void *, int, size_t) = &memset;
- memset_v(v, 0, n);
-}
-
-#endif
diff --git a/deps/BLAKE2/neon/blake2.h b/deps/BLAKE2/neon/blake2.h
deleted file mode 100644
index ca39030..0000000
--- a/deps/BLAKE2/neon/blake2.h
+++ /dev/null
@@ -1,195 +0,0 @@
-/*
- BLAKE2 reference source code package - reference C implementations
-
- Copyright 2012, Samuel Neves . You may use this under the
- terms of the CC0, the OpenSSL Licence, or the Apache Public License 2.0, at
- your option. The terms of these licenses can be found at:
-
- - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0
- - OpenSSL license : https://www.openssl.org/source/license.html
- - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0
-
- More information about the BLAKE2 hash function can be found at
- https://blake2.net.
-*/
-#ifndef BLAKE2_H
-#define BLAKE2_H
-
-#include
-#include
-
-#if defined(_MSC_VER)
-#define BLAKE2_PACKED(x) __pragma(pack(push, 1)) x __pragma(pack(pop))
-#else
-#define BLAKE2_PACKED(x) x __attribute__((packed))
-#endif
-
-#if defined(__cplusplus)
-extern "C" {
-#endif
-
- enum blake2s_constant
- {
- BLAKE2S_BLOCKBYTES = 64,
- BLAKE2S_OUTBYTES = 32,
- BLAKE2S_KEYBYTES = 32,
- BLAKE2S_SALTBYTES = 8,
- BLAKE2S_PERSONALBYTES = 8
- };
-
- enum blake2b_constant
- {
- BLAKE2B_BLOCKBYTES = 128,
- BLAKE2B_OUTBYTES = 64,
- BLAKE2B_KEYBYTES = 64,
- BLAKE2B_SALTBYTES = 16,
- BLAKE2B_PERSONALBYTES = 16
- };
-
- typedef struct blake2s_state__
- {
- uint32_t h[8];
- uint32_t t[2];
- uint32_t f[2];
- uint8_t buf[BLAKE2S_BLOCKBYTES];
- size_t buflen;
- size_t outlen;
- uint8_t last_node;
- } blake2s_state;
-
- typedef struct blake2b_state__
- {
- uint64_t h[8];
- uint64_t t[2];
- uint64_t f[2];
- uint8_t buf[BLAKE2B_BLOCKBYTES];
- size_t buflen;
- size_t outlen;
- uint8_t last_node;
- } blake2b_state;
-
- typedef struct blake2sp_state__
- {
- blake2s_state S[8][1];
- blake2s_state R[1];
- uint8_t buf[8 * BLAKE2S_BLOCKBYTES];
- size_t buflen;
- size_t outlen;
- } blake2sp_state;
-
- typedef struct blake2bp_state__
- {
- blake2b_state S[4][1];
- blake2b_state R[1];
- uint8_t buf[4 * BLAKE2B_BLOCKBYTES];
- size_t buflen;
- size_t outlen;
- } blake2bp_state;
-
-
- BLAKE2_PACKED(struct blake2s_param__
- {
- uint8_t digest_length; /* 1 */
- uint8_t key_length; /* 2 */
- uint8_t fanout; /* 3 */
- uint8_t depth; /* 4 */
- uint32_t leaf_length; /* 8 */
- uint32_t node_offset; /* 12 */
- uint16_t xof_length; /* 14 */
- uint8_t node_depth; /* 15 */
- uint8_t inner_length; /* 16 */
- /* uint8_t reserved[0]; */
- uint8_t salt[BLAKE2S_SALTBYTES]; /* 24 */
- uint8_t personal[BLAKE2S_PERSONALBYTES]; /* 32 */
- });
-
- typedef struct blake2s_param__ blake2s_param;
-
- BLAKE2_PACKED(struct blake2b_param__
- {
- uint8_t digest_length; /* 1 */
- uint8_t key_length; /* 2 */
- uint8_t fanout; /* 3 */
- uint8_t depth; /* 4 */
- uint32_t leaf_length; /* 8 */
- uint32_t node_offset; /* 12 */
- uint32_t xof_length; /* 16 */
- uint8_t node_depth; /* 17 */
- uint8_t inner_length; /* 18 */
- uint8_t reserved[14]; /* 32 */
- uint8_t salt[BLAKE2B_SALTBYTES]; /* 48 */
- uint8_t personal[BLAKE2B_PERSONALBYTES]; /* 64 */
- });
-
- typedef struct blake2b_param__ blake2b_param;
-
- typedef struct blake2xs_state__
- {
- blake2s_state S[1];
- blake2s_param P[1];
- } blake2xs_state;
-
- typedef struct blake2xb_state__
- {
- blake2b_state S[1];
- blake2b_param P[1];
- } blake2xb_state;
-
- /* Padded structs result in a compile-time error */
- enum {
- BLAKE2_DUMMY_1 = 1/(int)(sizeof(blake2s_param) == BLAKE2S_OUTBYTES),
- BLAKE2_DUMMY_2 = 1/(int)(sizeof(blake2b_param) == BLAKE2B_OUTBYTES)
- };
-
- /* Streaming API */
- int blake2s_init( blake2s_state *S, size_t outlen );
- int blake2s_init_key( blake2s_state *S, size_t outlen, const void *key, size_t keylen );
- int blake2s_init_param( blake2s_state *S, const blake2s_param *P );
- int blake2s_update( blake2s_state *S, const void *in, size_t inlen );
- int blake2s_final( blake2s_state *S, void *out, size_t outlen );
-
- int blake2b_init( blake2b_state *S, size_t outlen );
- int blake2b_init_key( blake2b_state *S, size_t outlen, const void *key, size_t keylen );
- int blake2b_init_param( blake2b_state *S, const blake2b_param *P );
- int blake2b_update( blake2b_state *S, const void *in, size_t inlen );
- int blake2b_final( blake2b_state *S, void *out, size_t outlen );
-
- int blake2sp_init( blake2sp_state *S, size_t outlen );
- int blake2sp_init_key( blake2sp_state *S, size_t outlen, const void *key, size_t keylen );
- int blake2sp_update( blake2sp_state *S, const void *in, size_t inlen );
- int blake2sp_final( blake2sp_state *S, void *out, size_t outlen );
-
- int blake2bp_init( blake2bp_state *S, size_t outlen );
- int blake2bp_init_key( blake2bp_state *S, size_t outlen, const void *key, size_t keylen );
- int blake2bp_update( blake2bp_state *S, const void *in, size_t inlen );
- int blake2bp_final( blake2bp_state *S, void *out, size_t outlen );
-
- /* Variable output length API */
- int blake2xs_init( blake2xs_state *S, const size_t outlen );
- int blake2xs_init_key( blake2xs_state *S, const size_t outlen, const void *key, size_t keylen );
- int blake2xs_update( blake2xs_state *S, const void *in, size_t inlen );
- int blake2xs_final(blake2xs_state *S, void *out, size_t outlen);
-
- int blake2xb_init( blake2xb_state *S, const size_t outlen );
- int blake2xb_init_key( blake2xb_state *S, const size_t outlen, const void *key, size_t keylen );
- int blake2xb_update( blake2xb_state *S, const void *in, size_t inlen );
- int blake2xb_final(blake2xb_state *S, void *out, size_t outlen);
-
- /* Simple API */
- int blake2s( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen );
- int blake2b( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen );
-
- int blake2sp( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen );
- int blake2bp( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen );
-
- int blake2xs( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen );
- int blake2xb( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen );
-
- /* This is simply an alias for blake2b */
- int blake2( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen );
-
-#if defined(__cplusplus)
-}
-#endif
-
-#endif
diff --git a/deps/BLAKE2/neon/blake2b-load-neon.h b/deps/BLAKE2/neon/blake2b-load-neon.h
deleted file mode 100644
index 5f75a05..0000000
--- a/deps/BLAKE2/neon/blake2b-load-neon.h
+++ /dev/null
@@ -1,211 +0,0 @@
-/*
- BLAKE2 reference source code package - reference C implementations
-
- Copyright 2012, Samuel Neves . You may use this under the
- terms of the CC0, the OpenSSL Licence, or the Apache Public License 2.0, at
- your option. The terms of these licenses can be found at:
-
- - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0
- - OpenSSL license : https://www.openssl.org/source/license.html
- - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0
-
- More information about the BLAKE2 hash function can be found at
- https://blake2.net.
-*/
-#ifndef BLAKE2B_LOAD_NEON_H
-#define BLAKE2B_LOAD_NEON_H
-
-#define LOAD_MSG_0_1(b0, b1) \
- b0 = vcombine_u64(vget_low_u64(m0), vget_low_u64(m1)); \
- b1 = vcombine_u64(vget_low_u64(m2), vget_low_u64(m3));
-
-#define LOAD_MSG_0_2(b0, b1) \
- b0 = vcombine_u64(vget_high_u64(m0), vget_high_u64(m1)); \
- b1 = vcombine_u64(vget_high_u64(m2), vget_high_u64(m3));
-
-#define LOAD_MSG_0_3(b0, b1) \
- b0 = vcombine_u64(vget_low_u64(m4), vget_low_u64(m5)); \
- b1 = vcombine_u64(vget_low_u64(m6), vget_low_u64(m7));
-
-#define LOAD_MSG_0_4(b0, b1) \
- b0 = vcombine_u64(vget_high_u64(m4), vget_high_u64(m5)); \
- b1 = vcombine_u64(vget_high_u64(m6), vget_high_u64(m7));
-
-#define LOAD_MSG_1_1(b0, b1) \
- b0 = vcombine_u64(vget_low_u64(m7), vget_low_u64(m2)); \
- b1 = vcombine_u64(vget_high_u64(m4), vget_high_u64(m6));
-
-#define LOAD_MSG_1_2(b0, b1) \
- b0 = vcombine_u64(vget_low_u64(m5), vget_low_u64(m4)); \
- b1 = vextq_u64(m7, m3, 1);
-
-#define LOAD_MSG_1_3(b0, b1) \
- b0 = vextq_u64(m0, m0, 1); \
- b1 = vcombine_u64(vget_high_u64(m5), vget_high_u64(m2));
-
-#define LOAD_MSG_1_4(b0, b1) \
- b0 = vcombine_u64(vget_low_u64(m6), vget_low_u64(m1)); \
- b1 = vcombine_u64(vget_high_u64(m3), vget_high_u64(m1));
-
-#define LOAD_MSG_2_1(b0, b1) \
- b0 = vextq_u64(m5, m6, 1); \
- b1 = vcombine_u64(vget_high_u64(m2), vget_high_u64(m7));
-
-#define LOAD_MSG_2_2(b0, b1) \
- b0 = vcombine_u64(vget_low_u64(m4), vget_low_u64(m0)); \
- b1 = vcombine_u64(vget_low_u64(m1), vget_high_u64(m6));
-
-#define LOAD_MSG_2_3(b0, b1) \
- b0 = vcombine_u64(vget_low_u64(m5), vget_high_u64(m1)); \
- b1 = vcombine_u64(vget_high_u64(m3), vget_high_u64(m4));
-
-#define LOAD_MSG_2_4(b0, b1) \
- b0 = vcombine_u64(vget_low_u64(m7), vget_low_u64(m3)); \
- b1 = vextq_u64(m0, m2, 1);
-
-#define LOAD_MSG_3_1(b0, b1) \
- b0 = vcombine_u64(vget_high_u64(m3), vget_high_u64(m1)); \
- b1 = vcombine_u64(vget_high_u64(m6), vget_high_u64(m5));
-
-#define LOAD_MSG_3_2(b0, b1) \
- b0 = vcombine_u64(vget_high_u64(m4), vget_high_u64(m0)); \
- b1 = vcombine_u64(vget_low_u64(m6), vget_low_u64(m7));
-
-#define LOAD_MSG_3_3(b0, b1) \
- b0 = vcombine_u64(vget_low_u64(m1), vget_high_u64(m2)); \
- b1 = vcombine_u64(vget_low_u64(m2), vget_high_u64(m7));
-
-#define LOAD_MSG_3_4(b0, b1) \
- b0 = vcombine_u64(vget_low_u64(m3), vget_low_u64(m5)); \
- b1 = vcombine_u64(vget_low_u64(m0), vget_low_u64(m4));
-
-#define LOAD_MSG_4_1(b0, b1) \
- b0 = vcombine_u64(vget_high_u64(m4), vget_high_u64(m2)); \
- b1 = vcombine_u64(vget_low_u64(m1), vget_low_u64(m5));
-
-#define LOAD_MSG_4_2(b0, b1) \
- b0 = vcombine_u64(vget_low_u64(m0), vget_high_u64(m3)); \
- b1 = vcombine_u64(vget_low_u64(m2), vget_high_u64(m7));
-
-#define LOAD_MSG_4_3(b0, b1) \
- b0 = vcombine_u64(vget_low_u64(m7), vget_high_u64(m5)); \
- b1 = vcombine_u64(vget_low_u64(m3), vget_high_u64(m1));
-
-#define LOAD_MSG_4_4(b0, b1) \
- b0 = vextq_u64(m0, m6, 1); \
- b1 = vcombine_u64(vget_low_u64(m4), vget_high_u64(m6));
-
-#define LOAD_MSG_5_1(b0, b1) \
- b0 = vcombine_u64(vget_low_u64(m1), vget_low_u64(m3)); \
- b1 = vcombine_u64(vget_low_u64(m0), vget_low_u64(m4));
-
-#define LOAD_MSG_5_2(b0, b1) \
- b0 = vcombine_u64(vget_low_u64(m6), vget_low_u64(m5)); \
- b1 = vcombine_u64(vget_high_u64(m5), vget_high_u64(m1));
-
-#define LOAD_MSG_5_3(b0, b1) \
- b0 = vcombine_u64(vget_low_u64(m2), vget_high_u64(m3)); \
- b1 = vcombine_u64(vget_high_u64(m7), vget_high_u64(m0));
-
-#define LOAD_MSG_5_4(b0, b1) \
- b0 = vcombine_u64(vget_high_u64(m6), vget_high_u64(m2)); \
- b1 = vcombine_u64(vget_low_u64(m7), vget_high_u64(m4));
-
-#define LOAD_MSG_6_1(b0, b1) \
- b0 = vcombine_u64(vget_low_u64(m6), vget_high_u64(m0)); \
- b1 = vcombine_u64(vget_low_u64(m7), vget_low_u64(m2));
-
-#define LOAD_MSG_6_2(b0, b1) \
- b0 = vcombine_u64(vget_high_u64(m2), vget_high_u64(m7)); \
- b1 = vextq_u64(m6, m5, 1);
-
-#define LOAD_MSG_6_3(b0, b1) \
- b0 = vcombine_u64(vget_low_u64(m0), vget_low_u64(m3)); \
- b1 = vextq_u64(m4, m4, 1);
-
-#define LOAD_MSG_6_4(b0, b1) \
- b0 = vcombine_u64(vget_high_u64(m3), vget_high_u64(m1)); \
- b1 = vcombine_u64(vget_low_u64(m1), vget_high_u64(m5));
-
-#define LOAD_MSG_7_1(b0, b1) \
- b0 = vcombine_u64(vget_high_u64(m6), vget_high_u64(m3)); \
- b1 = vcombine_u64(vget_low_u64(m6), vget_high_u64(m1));
-
-#define LOAD_MSG_7_2(b0, b1) \
- b0 = vextq_u64(m5, m7, 1); \
- b1 = vcombine_u64(vget_high_u64(m0), vget_high_u64(m4));
-
-#define LOAD_MSG_7_3(b0, b1) \
- b0 = vcombine_u64(vget_high_u64(m2), vget_high_u64(m7)); \
- b1 = vcombine_u64(vget_low_u64(m4), vget_low_u64(m1));
-
-#define LOAD_MSG_7_4(b0, b1) \
- b0 = vcombine_u64(vget_low_u64(m0), vget_low_u64(m2)); \
- b1 = vcombine_u64(vget_low_u64(m3), vget_low_u64(m5));
-
-#define LOAD_MSG_8_1(b0, b1) \
- b0 = vcombine_u64(vget_low_u64(m3), vget_low_u64(m7)); \
- b1 = vextq_u64(m5, m0, 1);
-
-#define LOAD_MSG_8_2(b0, b1) \
- b0 = vcombine_u64(vget_high_u64(m7), vget_high_u64(m4)); \
- b1 = vextq_u64(m1, m4, 1);
-
-#define LOAD_MSG_8_3(b0, b1) \
- b0 = m6; \
- b1 = vextq_u64(m0, m5, 1);
-
-#define LOAD_MSG_8_4(b0, b1) \
- b0 = vcombine_u64(vget_low_u64(m1), vget_high_u64(m3)); \
- b1 = m2;
-
-#define LOAD_MSG_9_1(b0, b1) \
- b0 = vcombine_u64(vget_low_u64(m5), vget_low_u64(m4)); \
- b1 = vcombine_u64(vget_high_u64(m3), vget_high_u64(m0));
-
-#define LOAD_MSG_9_2(b0, b1) \
- b0 = vcombine_u64(vget_low_u64(m1), vget_low_u64(m2)); \
- b1 = vcombine_u64(vget_low_u64(m3), vget_high_u64(m2));
-
-#define LOAD_MSG_9_3(b0, b1) \
- b0 = vcombine_u64(vget_high_u64(m7), vget_high_u64(m4)); \
- b1 = vcombine_u64(vget_high_u64(m1), vget_high_u64(m6));
-
-#define LOAD_MSG_9_4(b0, b1) \
- b0 = vextq_u64(m5, m7, 1); \
- b1 = vcombine_u64(vget_low_u64(m6), vget_low_u64(m0));
-
-#define LOAD_MSG_10_1(b0, b1) \
- b0 = vcombine_u64(vget_low_u64(m0), vget_low_u64(m1)); \
- b1 = vcombine_u64(vget_low_u64(m2), vget_low_u64(m3));
-
-#define LOAD_MSG_10_2(b0, b1) \
- b0 = vcombine_u64(vget_high_u64(m0), vget_high_u64(m1)); \
- b1 = vcombine_u64(vget_high_u64(m2), vget_high_u64(m3));
-
-#define LOAD_MSG_10_3(b0, b1) \
- b0 = vcombine_u64(vget_low_u64(m4), vget_low_u64(m5)); \
- b1 = vcombine_u64(vget_low_u64(m6), vget_low_u64(m7));
-
-#define LOAD_MSG_10_4(b0, b1) \
- b0 = vcombine_u64(vget_high_u64(m4), vget_high_u64(m5)); \
- b1 = vcombine_u64(vget_high_u64(m6), vget_high_u64(m7));
-
-#define LOAD_MSG_11_1(b0, b1) \
- b0 = vcombine_u64(vget_low_u64(m7), vget_low_u64(m2)); \
- b1 = vcombine_u64(vget_high_u64(m4), vget_high_u64(m6));
-
-#define LOAD_MSG_11_2(b0, b1) \
- b0 = vcombine_u64(vget_low_u64(m5), vget_low_u64(m4)); \
- b1 = vextq_u64(m7, m3, 1);
-
-#define LOAD_MSG_11_3(b0, b1) \
- b0 = vextq_u64(m0, m0, 1); \
- b1 = vcombine_u64(vget_high_u64(m5), vget_high_u64(m2));
-
-#define LOAD_MSG_11_4(b0, b1) \
- b0 = vcombine_u64(vget_low_u64(m6), vget_low_u64(m1)); \
- b1 = vcombine_u64(vget_high_u64(m3), vget_high_u64(m1));
-
-
-#endif
diff --git a/deps/BLAKE2/neon/blake2b-neon.c b/deps/BLAKE2/neon/blake2b-neon.c
deleted file mode 100644
index f202f07..0000000
--- a/deps/BLAKE2/neon/blake2b-neon.c
+++ /dev/null
@@ -1,621 +0,0 @@
-/*
- BLAKE2 reference source code package - reference C implementations
-
- Copyright 2012, Samuel Neves . You may use this under the
- terms of the CC0, the OpenSSL Licence, or the Apache Public License 2.0, at
- your option. The terms of these licenses can be found at:
-
- - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0
- - OpenSSL license : https://www.openssl.org/source/license.html
- - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0
-
- More information about the BLAKE2 hash function can be found at
- https://blake2.net.
-*/
-
-#include
-#include
-#include
-#include
-
-#include "blake2.h"
-#include "blake2-impl.h"
-
-static const uint64_t blake2b_IV[8] =
-{
- 0x6a09e667f3bcc908ULL, 0xbb67ae8584caa73bULL,
- 0x3c6ef372fe94f82bULL, 0xa54ff53a5f1d36f1ULL,
- 0x510e527fade682d1ULL, 0x9b05688c2b3e6c1fULL,
- 0x1f83d9abfb41bd6bULL, 0x5be0cd19137e2179ULL
-};
-
-/*
-static const uint8_t blake2b_sigma[12][16] =
-{
- { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 } ,
- { 14, 10, 4, 8, 9, 15, 13, 6, 1, 12, 0, 2, 11, 7, 5, 3 } ,
- { 11, 8, 12, 0, 5, 2, 15, 13, 10, 14, 3, 6, 7, 1, 9, 4 } ,
- { 7, 9, 3, 1, 13, 12, 11, 14, 2, 6, 5, 10, 4, 0, 15, 8 } ,
- { 9, 0, 5, 7, 2, 4, 10, 15, 14, 1, 11, 12, 6, 8, 3, 13 } ,
- { 2, 12, 6, 10, 0, 11, 8, 3, 4, 13, 7, 5, 15, 14, 1, 9 } ,
- { 12, 5, 1, 15, 14, 13, 4, 10, 0, 7, 6, 3, 9, 2, 8, 11 } ,
- { 13, 11, 7, 14, 12, 1, 3, 9, 5, 0, 15, 4, 8, 6, 2, 10 } ,
- { 6, 15, 14, 9, 11, 3, 0, 8, 12, 2, 13, 7, 1, 4, 10, 5 } ,
- { 10, 2, 8, 4, 7, 6, 1, 5, 15, 11, 9, 14, 3, 12, 13 , 0 } ,
- { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 } ,
- { 14, 10, 4, 8, 9, 15, 13, 6, 1, 12, 0, 2, 11, 7, 5, 3 }
-};
-*/
-
-static void blake2b_set_lastnode( blake2b_state *S )
-{
- S->f[1] = (uint64_t)-1;
-}
-
-/* Some helper functions, not necessarily useful */
-static int blake2b_is_lastblock( const blake2b_state *S )
-{
- return S->f[0] != 0;
-}
-
-static void blake2b_set_lastblock( blake2b_state *S )
-{
- if( S->last_node ) blake2b_set_lastnode( S );
-
- S->f[0] = (uint64_t)-1;
-}
-
-static void blake2b_increment_counter( blake2b_state *S, const uint64_t inc )
-{
- S->t[0] += inc;
- S->t[1] += ( S->t[0] < inc );
-}
-
-static void blake2b_init0( blake2b_state *S )
-{
- size_t i;
- memset( S, 0, sizeof( blake2b_state ) );
-
- for( i = 0; i < 8; ++i ) S->h[i] = blake2b_IV[i];
-}
-
-/* init xors IV with input parameter block */
-int blake2b_init_param( blake2b_state *S, const blake2b_param *P )
-{
- const uint8_t *p = ( const uint8_t * )( P );
- size_t i;
-
- blake2b_init0( S );
-
- /* IV XOR ParamBlock */
- for( i = 0; i < 8; ++i )
- S->h[i] ^= load64( p + sizeof( S->h[i] ) * i );
-
- S->outlen = P->digest_length;
- return 0;
-}
-
-
-
-int blake2b_init( blake2b_state *S, size_t outlen )
-{
- blake2b_param P[1];
-
- if ( ( !outlen ) || ( outlen > BLAKE2B_OUTBYTES ) ) return -1;
-
- P->digest_length = (uint8_t)outlen;
- P->key_length = 0;
- P->fanout = 1;
- P->depth = 1;
- store32( &P->leaf_length, 0 );
- store32( &P->node_offset, 0 );
- store32( &P->xof_length, 0 );
- P->node_depth = 0;
- P->inner_length = 0;
- memset( P->reserved, 0, sizeof( P->reserved ) );
- memset( P->salt, 0, sizeof( P->salt ) );
- memset( P->personal, 0, sizeof( P->personal ) );
- return blake2b_init_param( S, P );
-}
-
-
-int blake2b_init_key( blake2b_state *S, size_t outlen, const void *key, size_t keylen )
-{
- blake2b_param P[1];
-
- if ( ( !outlen ) || ( outlen > BLAKE2B_OUTBYTES ) ) return -1;
-
- if ( !key || !keylen || keylen > BLAKE2B_KEYBYTES ) return -1;
-
- P->digest_length = (uint8_t)outlen;
- P->key_length = (uint8_t)keylen;
- P->fanout = 1;
- P->depth = 1;
- store32( &P->leaf_length, 0 );
- store32( &P->node_offset, 0 );
- store32( &P->xof_length, 0 );
- P->node_depth = 0;
- P->inner_length = 0;
- memset( P->reserved, 0, sizeof( P->reserved ) );
- memset( P->salt, 0, sizeof( P->salt ) );
- memset( P->personal, 0, sizeof( P->personal ) );
-
- if( blake2b_init_param( S, P ) < 0 ) return -1;
-
- {
- uint8_t block[BLAKE2B_BLOCKBYTES];
- memset( block, 0, BLAKE2B_BLOCKBYTES );
- memcpy( block, key, keylen );
- blake2b_update( S, block, BLAKE2B_BLOCKBYTES );
- secure_zero_memory( block, BLAKE2B_BLOCKBYTES ); /* Burn the key from stack */
- }
- return 0;
-}
-
-#undef LOAD_MSG_0_1
-#define LOAD_MSG_0_1(b0, b1) \
-do { b0 = vcombine_u64(vget_low_u64(m0), vget_low_u64(m1)); b1 = vcombine_u64(vget_low_u64(m2), vget_low_u64(m3)); } while(0)
-
-#undef LOAD_MSG_0_2
-#define LOAD_MSG_0_2(b0, b1) \
- do { b0 = vcombine_u64(vget_high_u64(m0), vget_high_u64(m1)); b1 = vcombine_u64(vget_high_u64(m2), vget_high_u64(m3)); } while(0)
-
-#undef LOAD_MSG_0_3
-#define LOAD_MSG_0_3(b0, b1) \
- do { b0 = vcombine_u64(vget_low_u64(m4), vget_low_u64(m5)); b1 = vcombine_u64(vget_low_u64(m6), vget_low_u64(m7)); } while(0)
-
-#undef LOAD_MSG_0_4
-#define LOAD_MSG_0_4(b0, b1) \
- do { b0 = vcombine_u64(vget_high_u64(m4), vget_high_u64(m5)); b1 = vcombine_u64(vget_high_u64(m6), vget_high_u64(m7)); } while(0)
-
-#undef LOAD_MSG_1_1
-#define LOAD_MSG_1_1(b0, b1) \
- do { b0 = vcombine_u64(vget_low_u64(m7), vget_low_u64(m2)); b1 = vcombine_u64(vget_high_u64(m4), vget_high_u64(m6)); } while(0)
-
-#undef LOAD_MSG_1_2
-#define LOAD_MSG_1_2(b0, b1) \
- do { b0 = vcombine_u64(vget_low_u64(m5), vget_low_u64(m4)); b1 = vextq_u64(m7, m3, 1); } while(0)
-
-#undef LOAD_MSG_1_3
-#define LOAD_MSG_1_3(b0, b1) \
- do { b0 = vextq_u64(m0, m0, 1); b1 = vcombine_u64(vget_high_u64(m5), vget_high_u64(m2)); } while(0)
-
-#undef LOAD_MSG_1_4
-#define LOAD_MSG_1_4(b0, b1) \
- do { b0 = vcombine_u64(vget_low_u64(m6), vget_low_u64(m1)); b1 = vcombine_u64(vget_high_u64(m3), vget_high_u64(m1)); } while(0)
-
-#undef LOAD_MSG_2_1
-#define LOAD_MSG_2_1(b0, b1) \
- do { b0 = vextq_u64(m5, m6, 1); b1 = vcombine_u64(vget_high_u64(m2), vget_high_u64(m7)); } while(0)
-
-#undef LOAD_MSG_2_2
-#define LOAD_MSG_2_2(b0, b1) \
- do { b0 = vcombine_u64(vget_low_u64(m4), vget_low_u64(m0)); b1 = vcombine_u64(vget_low_u64(m1), vget_high_u64(m6)); } while(0)
-
-#undef LOAD_MSG_2_3
-#define LOAD_MSG_2_3(b0, b1) \
- do { b0 = vcombine_u64(vget_low_u64(m5), vget_high_u64(m1)); b1 = vcombine_u64(vget_high_u64(m3), vget_high_u64(m4)); } while(0)
-
-#undef LOAD_MSG_2_4
-#define LOAD_MSG_2_4(b0, b1) \
- do { b0 = vcombine_u64(vget_low_u64(m7), vget_low_u64(m3)); b1 = vextq_u64(m0, m2, 1); } while(0)
-
-#undef LOAD_MSG_3_1
-#define LOAD_MSG_3_1(b0, b1) \
- do { b0 = vcombine_u64(vget_high_u64(m3), vget_high_u64(m1)); b1 = vcombine_u64(vget_high_u64(m6), vget_high_u64(m5)); } while(0)
-
-#undef LOAD_MSG_3_2
-#define LOAD_MSG_3_2(b0, b1) \
- do { b0 = vcombine_u64(vget_high_u64(m4), vget_high_u64(m0)); b1 = vcombine_u64(vget_low_u64(m6), vget_low_u64(m7)); } while(0)
-
-#undef LOAD_MSG_3_3
-#define LOAD_MSG_3_3(b0, b1) \
- do { b0 = vcombine_u64(vget_low_u64(m1), vget_high_u64(m2)); b1 = vcombine_u64(vget_low_u64(m2), vget_high_u64(m7)); } while(0)
-
-#undef LOAD_MSG_3_4
-#define LOAD_MSG_3_4(b0, b1) \
- do { b0 = vcombine_u64(vget_low_u64(m3), vget_low_u64(m5)); b1 = vcombine_u64(vget_low_u64(m0), vget_low_u64(m4)); } while(0)
-
-#undef LOAD_MSG_4_1
-#define LOAD_MSG_4_1(b0, b1) \
- do { b0 = vcombine_u64(vget_high_u64(m4), vget_high_u64(m2)); b1 = vcombine_u64(vget_low_u64(m1), vget_low_u64(m5)); } while(0)
-
-#undef LOAD_MSG_4_2
-#define LOAD_MSG_4_2(b0, b1) \
- do { b0 = vcombine_u64(vget_low_u64(m0), vget_high_u64(m3)); b1 = vcombine_u64(vget_low_u64(m2), vget_high_u64(m7)); } while(0)
-
-#undef LOAD_MSG_4_3
-#define LOAD_MSG_4_3(b0, b1) \
- do { b0 = vcombine_u64(vget_low_u64(m7), vget_high_u64(m5)); b1 = vcombine_u64(vget_low_u64(m3), vget_high_u64(m1)); } while(0)
-
-#undef LOAD_MSG_4_4
-#define LOAD_MSG_4_4(b0, b1) \
- do { b0 = vextq_u64(m0, m6, 1); b1 = vcombine_u64(vget_low_u64(m4), vget_high_u64(m6)); } while(0)
-
-#undef LOAD_MSG_5_1
-#define LOAD_MSG_5_1(b0, b1) \
- do { b0 = vcombine_u64(vget_low_u64(m1), vget_low_u64(m3)); b1 = vcombine_u64(vget_low_u64(m0), vget_low_u64(m4)); } while(0)
-
-#undef LOAD_MSG_5_2
-#define LOAD_MSG_5_2(b0, b1) \
- do { b0 = vcombine_u64(vget_low_u64(m6), vget_low_u64(m5)); b1 = vcombine_u64(vget_high_u64(m5), vget_high_u64(m1)); } while(0)
-
-#undef LOAD_MSG_5_3
-#define LOAD_MSG_5_3(b0, b1) \
- do { b0 = vcombine_u64(vget_low_u64(m2), vget_high_u64(m3)); b1 = vcombine_u64(vget_high_u64(m7), vget_high_u64(m0)); } while(0)
-
-#undef LOAD_MSG_5_4
-#define LOAD_MSG_5_4(b0, b1) \
- do { b0 = vcombine_u64(vget_high_u64(m6), vget_high_u64(m2)); b1 = vcombine_u64(vget_low_u64(m7), vget_high_u64(m4)); } while(0)
-
-#undef LOAD_MSG_6_1
-#define LOAD_MSG_6_1(b0, b1) \
- do { b0 = vcombine_u64(vget_low_u64(m6), vget_high_u64(m0)); b1 = vcombine_u64(vget_low_u64(m7), vget_low_u64(m2)); } while(0)
-
-#undef LOAD_MSG_6_2
-#define LOAD_MSG_6_2(b0, b1) \
- do { b0 = vcombine_u64(vget_high_u64(m2), vget_high_u64(m7)); b1 = vextq_u64(m6, m5, 1); } while(0)
-
-#undef LOAD_MSG_6_3
-#define LOAD_MSG_6_3(b0, b1) \
- do { b0 = vcombine_u64(vget_low_u64(m0), vget_low_u64(m3)); b1 = vextq_u64(m4, m4, 1); } while(0)
-
-#undef LOAD_MSG_6_4
-#define LOAD_MSG_6_4(b0, b1) \
- do { b0 = vcombine_u64(vget_high_u64(m3), vget_high_u64(m1)); b1 = vcombine_u64(vget_low_u64(m1), vget_high_u64(m5)); } while(0)
-
-#undef LOAD_MSG_7_1
-#define LOAD_MSG_7_1(b0, b1) \
- do { b0 = vcombine_u64(vget_high_u64(m6), vget_high_u64(m3)); b1 = vcombine_u64(vget_low_u64(m6), vget_high_u64(m1)); } while(0)
-
-#undef LOAD_MSG_7_2
-#define LOAD_MSG_7_2(b0, b1) \
- do { b0 = vextq_u64(m5, m7, 1); b1 = vcombine_u64(vget_high_u64(m0), vget_high_u64(m4)); } while(0)
-
-#undef LOAD_MSG_7_3
-#define LOAD_MSG_7_3(b0, b1) \
- do { b0 = vcombine_u64(vget_high_u64(m2), vget_high_u64(m7)); b1 = vcombine_u64(vget_low_u64(m4), vget_low_u64(m1)); } while(0)
-
-#undef LOAD_MSG_7_4
-#define LOAD_MSG_7_4(b0, b1) \
- do { b0 = vcombine_u64(vget_low_u64(m0), vget_low_u64(m2)); b1 = vcombine_u64(vget_low_u64(m3), vget_low_u64(m5)); } while(0)
-
-#undef LOAD_MSG_8_1
-#define LOAD_MSG_8_1(b0, b1) \
- do { b0 = vcombine_u64(vget_low_u64(m3), vget_low_u64(m7)); b1 = vextq_u64(m5, m0, 1); } while(0)
-
-#undef LOAD_MSG_8_2
-#define LOAD_MSG_8_2(b0, b1) \
- do { b0 = vcombine_u64(vget_high_u64(m7), vget_high_u64(m4)); b1 = vextq_u64(m1, m4, 1); } while(0)
-
-#undef LOAD_MSG_8_3
-#define LOAD_MSG_8_3(b0, b1) \
- do { b0 = m6; b1 = vextq_u64(m0, m5, 1); } while(0)
-
-#undef LOAD_MSG_8_4
-#define LOAD_MSG_8_4(b0, b1) \
- do { b0 = vcombine_u64(vget_low_u64(m1), vget_high_u64(m3)); b1 = m2; } while(0)
-
-#undef LOAD_MSG_9_1
-#define LOAD_MSG_9_1(b0, b1) \
- do { b0 = vcombine_u64(vget_low_u64(m5), vget_low_u64(m4)); b1 = vcombine_u64(vget_high_u64(m3), vget_high_u64(m0)); } while(0)
-
-#undef LOAD_MSG_9_2
-#define LOAD_MSG_9_2(b0, b1) \
- do { b0 = vcombine_u64(vget_low_u64(m1), vget_low_u64(m2)); b1 = vcombine_u64(vget_low_u64(m3), vget_high_u64(m2)); } while(0)
-
-#undef LOAD_MSG_9_3
-#define LOAD_MSG_9_3(b0, b1) \
- do { b0 = vcombine_u64(vget_high_u64(m7), vget_high_u64(m4)); b1 = vcombine_u64(vget_high_u64(m1), vget_high_u64(m6)); } while(0)
-
-#undef LOAD_MSG_9_4
-#define LOAD_MSG_9_4(b0, b1) \
- do { b0 = vextq_u64(m5, m7, 1); b1 = vcombine_u64(vget_low_u64(m6), vget_low_u64(m0)); } while(0)
-
-#undef LOAD_MSG_10_1
-#define LOAD_MSG_10_1(b0, b1) \
- do { b0 = vcombine_u64(vget_low_u64(m0), vget_low_u64(m1)); b1 = vcombine_u64(vget_low_u64(m2), vget_low_u64(m3)); } while(0)
-
-#undef LOAD_MSG_10_2
-#define LOAD_MSG_10_2(b0, b1) \
- do { b0 = vcombine_u64(vget_high_u64(m0), vget_high_u64(m1)); b1 = vcombine_u64(vget_high_u64(m2), vget_high_u64(m3)); } while(0)
-
-#undef LOAD_MSG_10_3
-#define LOAD_MSG_10_3(b0, b1) \
- do { b0 = vcombine_u64(vget_low_u64(m4), vget_low_u64(m5)); b1 = vcombine_u64(vget_low_u64(m6), vget_low_u64(m7)); } while(0)
-
-#undef LOAD_MSG_10_4
-#define LOAD_MSG_10_4(b0, b1) \
- do { b0 = vcombine_u64(vget_high_u64(m4), vget_high_u64(m5)); b1 = vcombine_u64(vget_high_u64(m6), vget_high_u64(m7)); } while(0)
-
-#undef LOAD_MSG_11_1
-#define LOAD_MSG_11_1(b0, b1) \
- do { b0 = vcombine_u64(vget_low_u64(m7), vget_low_u64(m2)); b1 = vcombine_u64(vget_high_u64(m4), vget_high_u64(m6)); } while(0)
-
-#undef LOAD_MSG_11_2
-#define LOAD_MSG_11_2(b0, b1) \
- do { b0 = vcombine_u64(vget_low_u64(m5), vget_low_u64(m4)); b1 = vextq_u64(m7, m3, 1); } while(0)
-
-#undef LOAD_MSG_11_3
-#define LOAD_MSG_11_3(b0, b1) \
- do { b0 = vextq_u64(m0, m0, 1); b1 = vcombine_u64(vget_high_u64(m5), vget_high_u64(m2)); } while(0)
-
-#undef LOAD_MSG_11_4
-#define LOAD_MSG_11_4(b0, b1) \
- do { b0 = vcombine_u64(vget_low_u64(m6), vget_low_u64(m1)); b1 = vcombine_u64(vget_high_u64(m3), vget_high_u64(m1)); } while(0)
-
-#define vrorq_n_u64_32(x) vreinterpretq_u64_u32(vrev64q_u32(vreinterpretq_u32_u64((x))))
-
-#define vrorq_n_u64_24(x) vcombine_u64( \
- vreinterpret_u64_u8(vext_u8(vreinterpret_u8_u64(vget_low_u64(x)), vreinterpret_u8_u64(vget_low_u64(x)), 3)), \
- vreinterpret_u64_u8(vext_u8(vreinterpret_u8_u64(vget_high_u64(x)), vreinterpret_u8_u64(vget_high_u64(x)), 3)))
-
-#define vrorq_n_u64_16(x) vcombine_u64( \
- vreinterpret_u64_u8(vext_u8(vreinterpret_u8_u64(vget_low_u64(x)), vreinterpret_u8_u64(vget_low_u64(x)), 2)), \
- vreinterpret_u64_u8(vext_u8(vreinterpret_u8_u64(vget_high_u64(x)), vreinterpret_u8_u64(vget_high_u64(x)), 2)))
-
-#define vrorq_n_u64_63(x) veorq_u64(vaddq_u64(x, x), vshrq_n_u64(x, 63))
-
-#undef G1
-#define G1(row1l,row2l,row3l,row4l,row1h,row2h,row3h,row4h,b0,b1) \
- do { \
- row1l = vaddq_u64(vaddq_u64(row1l, b0), row2l); \
- row1h = vaddq_u64(vaddq_u64(row1h, b1), row2h); \
- row4l = veorq_u64(row4l, row1l); row4h = veorq_u64(row4h, row1h); \
- row4l = vrorq_n_u64_32(row4l); row4h = vrorq_n_u64_32(row4h); \
- row3l = vaddq_u64(row3l, row4l); row3h = vaddq_u64(row3h, row4h); \
- row2l = veorq_u64(row2l, row3l); row2h = veorq_u64(row2h, row3h); \
- row2l = vrorq_n_u64_24(row2l); row2h = vrorq_n_u64_24(row2h); \
- } while(0)
-
-#undef G2
-#define G2(row1l,row2l,row3l,row4l,row1h,row2h,row3h,row4h,b0,b1) \
- do { \
- row1l = vaddq_u64(vaddq_u64(row1l, b0), row2l); \
- row1h = vaddq_u64(vaddq_u64(row1h, b1), row2h); \
- row4l = veorq_u64(row4l, row1l); row4h = veorq_u64(row4h, row1h); \
- row4l = vrorq_n_u64_16(row4l); row4h = vrorq_n_u64_16(row4h); \
- row3l = vaddq_u64(row3l, row4l); row3h = vaddq_u64(row3h, row4h); \
- row2l = veorq_u64(row2l, row3l); row2h = veorq_u64(row2h, row3h); \
- row2l = vrorq_n_u64_63(row2l); row2h = vrorq_n_u64_63(row2h); \
- } while(0)
-
-#define DIAGONALIZE(row1l,row2l,row3l,row4l,row1h,row2h,row3h,row4h) \
- do { \
- uint64x2_t t0 = vextq_u64(row2l, row2h, 1); \
- uint64x2_t t1 = vextq_u64(row2h, row2l, 1); \
- row2l = t0; row2h = t1; t0 = row3l; row3l = row3h; row3h = t0; \
- t0 = vextq_u64(row4h, row4l, 1); t1 = vextq_u64(row4l, row4h, 1); \
- row4l = t0; row4h = t1; \
- } while(0)
-
-#define UNDIAGONALIZE(row1l,row2l,row3l,row4l,row1h,row2h,row3h,row4h) \
- do { \
- uint64x2_t t0 = vextq_u64(row2h, row2l, 1); \
- uint64x2_t t1 = vextq_u64(row2l, row2h, 1); \
- row2l = t0; row2h = t1; t0 = row3l; row3l = row3h; row3h = t0; \
- t0 = vextq_u64(row4l, row4h, 1); t1 = vextq_u64(row4h, row4l, 1); \
- row4l = t0; row4h = t1; \
- } while(0)
-
-#undef ROUND
-#define ROUND(r) \
- do { \
- uint64x2_t b0, b1; \
- LOAD_MSG_ ##r ##_1(b0, b1); \
- G1(row1l,row2l,row3l,row4l,row1h,row2h,row3h,row4h,b0,b1); \
- LOAD_MSG_ ##r ##_2(b0, b1); \
- G2(row1l,row2l,row3l,row4l,row1h,row2h,row3h,row4h,b0,b1); \
- DIAGONALIZE(row1l,row2l,row3l,row4l,row1h,row2h,row3h,row4h); \
- LOAD_MSG_ ##r ##_3(b0, b1); \
- G1(row1l,row2l,row3l,row4l,row1h,row2h,row3h,row4h,b0,b1); \
- LOAD_MSG_ ##r ##_4(b0, b1); \
- G2(row1l,row2l,row3l,row4l,row1h,row2h,row3h,row4h,b0,b1); \
- UNDIAGONALIZE(row1l,row2l,row3l,row4l,row1h,row2h,row3h,row4h); \
- } while(0)
-
-static void blake2b_compress( blake2b_state *S, const uint8_t block[BLAKE2B_BLOCKBYTES] )
-{
- const uint64x2_t m0 = vreinterpretq_u64_u8(vld1q_u8(&block[ 0]));
- const uint64x2_t m1 = vreinterpretq_u64_u8(vld1q_u8(&block[ 16]));
- const uint64x2_t m2 = vreinterpretq_u64_u8(vld1q_u8(&block[ 32]));
- const uint64x2_t m3 = vreinterpretq_u64_u8(vld1q_u8(&block[ 48]));
- const uint64x2_t m4 = vreinterpretq_u64_u8(vld1q_u8(&block[ 64]));
- const uint64x2_t m5 = vreinterpretq_u64_u8(vld1q_u8(&block[ 80]));
- const uint64x2_t m6 = vreinterpretq_u64_u8(vld1q_u8(&block[ 96]));
- const uint64x2_t m7 = vreinterpretq_u64_u8(vld1q_u8(&block[112]));
-
- uint64x2_t row1l, row1h, row2l, row2h;
- uint64x2_t row3l, row3h, row4l, row4h;
-
- const uint64x2_t h0 = row1l = vld1q_u64(&S->h[0]);
- const uint64x2_t h1 = row1h = vld1q_u64(&S->h[2]);
- const uint64x2_t h2 = row2l = vld1q_u64(&S->h[4]);
- const uint64x2_t h3 = row2h = vld1q_u64(&S->h[6]);
-
- row3l = vld1q_u64(&blake2b_IV[0]);
- row3h = vld1q_u64(&blake2b_IV[2]);
- row4l = veorq_u64(vld1q_u64(&blake2b_IV[4]), vld1q_u64(&S->t[0]));
- row4h = veorq_u64(vld1q_u64(&blake2b_IV[6]), vld1q_u64(&S->f[0]));
-
- ROUND( 0 );
- ROUND( 1 );
- ROUND( 2 );
- ROUND( 3 );
- ROUND( 4 );
- ROUND( 5 );
- ROUND( 6 );
- ROUND( 7 );
- ROUND( 8 );
- ROUND( 9 );
- ROUND( 10 );
- ROUND( 11 );
-
- vst1q_u64(&S->h[0], veorq_u64(h0, veorq_u64(row1l, row3l)));
- vst1q_u64(&S->h[2], veorq_u64(h1, veorq_u64(row1h, row3h)));
- vst1q_u64(&S->h[4], veorq_u64(h2, veorq_u64(row2l, row4l)));
- vst1q_u64(&S->h[6], veorq_u64(h3, veorq_u64(row2h, row4h)));
-}
-
-#undef G
-#undef ROUND
-
-int blake2b_update( blake2b_state *S, const void *pin, size_t inlen )
-{
- const unsigned char * in = (const unsigned char *)pin;
- if( inlen > 0 )
- {
- size_t left = S->buflen;
- size_t fill = BLAKE2B_BLOCKBYTES - left;
- if( inlen > fill )
- {
- S->buflen = 0;
- memcpy( S->buf + left, in, fill ); /* Fill buffer */
- blake2b_increment_counter( S, BLAKE2B_BLOCKBYTES );
- blake2b_compress( S, S->buf ); /* Compress */
- in += fill; inlen -= fill;
- while(inlen > BLAKE2B_BLOCKBYTES) {
- blake2b_increment_counter(S, BLAKE2B_BLOCKBYTES);
- blake2b_compress( S, in );
- in += BLAKE2B_BLOCKBYTES;
- inlen -= BLAKE2B_BLOCKBYTES;
- }
- }
- memcpy( S->buf + S->buflen, in, inlen );
- S->buflen += inlen;
- }
- return 0;
-}
-
-int blake2b_final( blake2b_state *S, void *out, size_t outlen )
-{
- uint8_t buffer[BLAKE2B_OUTBYTES] = {0};
- size_t i;
-
- if( out == NULL || outlen < S->outlen )
- return -1;
-
- if( blake2b_is_lastblock( S ) )
- return -1;
-
- blake2b_increment_counter( S, S->buflen );
- blake2b_set_lastblock( S );
- memset( S->buf + S->buflen, 0, BLAKE2B_BLOCKBYTES - S->buflen ); /* Padding */
- blake2b_compress( S, S->buf );
-
- for( i = 0; i < 8; ++i ) /* Output full hash to temp buffer */
- store64( buffer + sizeof( S->h[i] ) * i, S->h[i] );
-
- memcpy( out, buffer, S->outlen );
- secure_zero_memory(buffer, sizeof(buffer));
- return 0;
-}
-
-/* inlen, at least, should be uint64_t. Others can be size_t. */
-int blake2b( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen )
-{
- blake2b_state S[1];
-
- /* Verify parameters */
- if ( NULL == in && inlen > 0 ) return -1;
-
- if ( NULL == out ) return -1;
-
- if( NULL == key && keylen > 0 ) return -1;
-
- if( !outlen || outlen > BLAKE2B_OUTBYTES ) return -1;
-
- if( keylen > BLAKE2B_KEYBYTES ) return -1;
-
- if( keylen > 0 )
- {
- if( blake2b_init_key( S, outlen, key, keylen ) < 0 ) return -1;
- }
- else
- {
- if( blake2b_init( S, outlen ) < 0 ) return -1;
- }
-
- blake2b_update( S, ( const uint8_t * )in, inlen );
- blake2b_final( S, out, outlen );
- return 0;
-}
-
-int blake2( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen ) {
- return blake2b(out, outlen, in, inlen, key, keylen);
-}
-
-#if defined(SUPERCOP)
-int crypto_hash( unsigned char *out, unsigned char *in, unsigned long long inlen )
-{
- return blake2b( out, BLAKE2B_OUTBYTES, in, inlen, NULL, 0 );
-}
-#endif
-
-#if defined(BLAKE2B_SELFTEST)
-#include
-#include "blake2-kat.h"
-int main( void )
-{
- uint8_t key[BLAKE2B_KEYBYTES];
- uint8_t buf[BLAKE2_KAT_LENGTH];
- size_t i, step;
-
- for( i = 0; i < BLAKE2B_KEYBYTES; ++i )
- key[i] = ( uint8_t )i;
-
- for( i = 0; i < BLAKE2_KAT_LENGTH; ++i )
- buf[i] = ( uint8_t )i;
-
- /* Test simple API */
- for( i = 0; i < BLAKE2_KAT_LENGTH; ++i )
- {
- uint8_t hash[BLAKE2B_OUTBYTES];
- blake2b( hash, BLAKE2B_OUTBYTES, buf, i, key, BLAKE2B_KEYBYTES );
-
- if( 0 != memcmp( hash, blake2b_keyed_kat[i], BLAKE2B_OUTBYTES ) )
- {
- goto fail;
- }
- }
-
- /* Test streaming API */
- for(step = 1; step < BLAKE2B_BLOCKBYTES; ++step) {
- for (i = 0; i < BLAKE2_KAT_LENGTH; ++i) {
- uint8_t hash[BLAKE2B_OUTBYTES];
- blake2b_state S;
- uint8_t * p = buf;
- size_t mlen = i;
- int err = 0;
-
- if( (err = blake2b_init_key(&S, BLAKE2B_OUTBYTES, key, BLAKE2B_KEYBYTES)) < 0 ) {
- goto fail;
- }
-
- while (mlen >= step) {
- if ( (err = blake2b_update(&S, p, step)) < 0 ) {
- goto fail;
- }
- mlen -= step;
- p += step;
- }
- if ( (err = blake2b_update(&S, p, mlen)) < 0) {
- goto fail;
- }
- if ( (err = blake2b_final(&S, hash, BLAKE2B_OUTBYTES)) < 0) {
- goto fail;
- }
-
- if (0 != memcmp(hash, blake2b_keyed_kat[i], BLAKE2B_OUTBYTES)) {
- goto fail;
- }
- }
- }
-
- puts( "ok" );
- return 0;
-fail:
- puts("error");
- return -1;
-}
-#endif
diff --git a/deps/BLAKE2/neon/blake2b-round.h b/deps/BLAKE2/neon/blake2b-round.h
deleted file mode 100644
index 9abf25b..0000000
--- a/deps/BLAKE2/neon/blake2b-round.h
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- BLAKE2 reference source code package - reference C implementations
-
- Copyright 2012, Samuel Neves . You may use this under the
- terms of the CC0, the OpenSSL Licence, or the Apache Public License 2.0, at
- your option. The terms of these licenses can be found at:
-
- - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0
- - OpenSSL license : https://www.openssl.org/source/license.html
- - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0
-
- More information about the BLAKE2 hash function can be found at
- https://blake2.net.
-*/
-#ifndef BLAKE2B_ROUND_H
-#define BLAKE2B_ROUND_H
-
-#define vrorq_n_u64_32(x) vreinterpretq_u64_u32(vrev64q_u32(vreinterpretq_u32_u64((x))))
-
-#define vrorq_n_u64_24(x) vcombine_u64( \
- vreinterpret_u64_u8(vext_u8(vreinterpret_u8_u64(vget_low_u64(x)), vreinterpret_u8_u64(vget_low_u64(x)), 3)), \
- vreinterpret_u64_u8(vext_u8(vreinterpret_u8_u64(vget_high_u64(x)), vreinterpret_u8_u64(vget_high_u64(x)), 3)))
-
-#define vrorq_n_u64_16(x) vcombine_u64( \
- vreinterpret_u64_u8(vext_u8(vreinterpret_u8_u64(vget_low_u64(x)), vreinterpret_u8_u64(vget_low_u64(x)), 2)), \
- vreinterpret_u64_u8(vext_u8(vreinterpret_u8_u64(vget_high_u64(x)), vreinterpret_u8_u64(vget_high_u64(x)), 2)))
-
-#define vrorq_n_u64_63(x) veorq_u64(vaddq_u64(x, x), vshrq_n_u64(x, 63))
-
-#define G1(row1l,row2l,row3l,row4l,row1h,row2h,row3h,row4h,b0,b1) \
- row1l = vaddq_u64(vaddq_u64(row1l, b0), row2l); \
- row1h = vaddq_u64(vaddq_u64(row1h, b1), row2h); \
- row4l = veorq_u64(row4l, row1l); row4h = veorq_u64(row4h, row1h); \
- row4l = vrorq_n_u64_32(row4l); row4h = vrorq_n_u64_32(row4h); \
- row3l = vaddq_u64(row3l, row4l); row3h = vaddq_u64(row3h, row4h); \
- row2l = veorq_u64(row2l, row3l); row2h = veorq_u64(row2h, row3h); \
- row2l = vrorq_n_u64_24(row2l); row2h = vrorq_n_u64_24(row2h);
-
-#define G2(row1l,row2l,row3l,row4l,row1h,row2h,row3h,row4h,b0,b1) \
- row1l = vaddq_u64(vaddq_u64(row1l, b0), row2l); \
- row1h = vaddq_u64(vaddq_u64(row1h, b1), row2h); \
- row4l = veorq_u64(row4l, row1l); row4h = veorq_u64(row4h, row1h); \
- row4l = vrorq_n_u64_16(row4l); row4h = vrorq_n_u64_16(row4h); \
- row3l = vaddq_u64(row3l, row4l); row3h = vaddq_u64(row3h, row4h); \
- row2l = veorq_u64(row2l, row3l); row2h = veorq_u64(row2h, row3h); \
- row2l = vrorq_n_u64_63(row2l); row2h = vrorq_n_u64_63(row2h);
-
-#define DIAGONALIZE(row1l,row2l,row3l,row4l,row1h,row2h,row3h,row4h) \
- t0 = vextq_u64(row2l, row2h, 1); \
- t1 = vextq_u64(row2h, row2l, 1); \
- row2l = t0; row2h = t1; t0 = row3l; row3l = row3h; row3h = t0; \
- t0 = vextq_u64(row4h, row4l, 1); t1 = vextq_u64(row4l, row4h, 1); \
- row4l = t0; row4h = t1;
-
-#define UNDIAGONALIZE(row1l,row2l,row3l,row4l,row1h,row2h,row3h,row4h) \
- t0 = vextq_u64(row2h, row2l, 1); \
- t1 = vextq_u64(row2l, row2h, 1); \
- row2l = t0; row2h = t1; t0 = row3l; row3l = row3h; row3h = t0; \
- t0 = vextq_u64(row4l, row4h, 1); t1 = vextq_u64(row4h, row4l, 1); \
- row4l = t0; row4h = t1;
-
-#include "blake2b-load-neon.h"
-
-#define ROUND(r) \
- LOAD_MSG_ ##r ##_1(b0, b1); \
- G1(row1l,row2l,row3l,row4l,row1h,row2h,row3h,row4h,b0,b1); \
- LOAD_MSG_ ##r ##_2(b0, b1); \
- G2(row1l,row2l,row3l,row4l,row1h,row2h,row3h,row4h,b0,b1); \
- DIAGONALIZE(row1l,row2l,row3l,row4l,row1h,row2h,row3h,row4h); \
- LOAD_MSG_ ##r ##_3(b0, b1); \
- G1(row1l,row2l,row3l,row4l,row1h,row2h,row3h,row4h,b0,b1); \
- LOAD_MSG_ ##r ##_4(b0, b1); \
- G2(row1l,row2l,row3l,row4l,row1h,row2h,row3h,row4h,b0,b1); \
- UNDIAGONALIZE(row1l,row2l,row3l,row4l,row1h,row2h,row3h,row4h);
-
-#endif
diff --git a/deps/BLAKE2/neon/blake2b.c b/deps/BLAKE2/neon/blake2b.c
deleted file mode 100644
index b8c8ad0..0000000
--- a/deps/BLAKE2/neon/blake2b.c
+++ /dev/null
@@ -1,342 +0,0 @@
-/*
- BLAKE2 reference source code package - reference C implementations
-
- Copyright 2012, Samuel Neves . You may use this under the
- terms of the CC0, the OpenSSL Licence, or the Apache Public License 2.0, at
- your option. The terms of these licenses can be found at:
-
- - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0
- - OpenSSL license : https://www.openssl.org/source/license.html
- - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0
-
- More information about the BLAKE2 hash function can be found at
- https://blake2.net.
-*/
-
-#include
-#include
-#include
-#include
-
-#include "blake2.h"
-#include "blake2-impl.h"
-
-#include "blake2b-round.h"
-
-static const uint64_t blake2b_IV[8] =
-{
- 0x6a09e667f3bcc908ULL, 0xbb67ae8584caa73bULL,
- 0x3c6ef372fe94f82bULL, 0xa54ff53a5f1d36f1ULL,
- 0x510e527fade682d1ULL, 0x9b05688c2b3e6c1fULL,
- 0x1f83d9abfb41bd6bULL, 0x5be0cd19137e2179ULL
-};
-
-/* Some helper functions */
-static void blake2b_set_lastnode( blake2b_state *S )
-{
- S->f[1] = (uint64_t)-1;
-}
-
-static int blake2b_is_lastblock( const blake2b_state *S )
-{
- return S->f[0] != 0;
-}
-
-static void blake2b_set_lastblock( blake2b_state *S )
-{
- if( S->last_node ) blake2b_set_lastnode( S );
-
- S->f[0] = (uint64_t)-1;
-}
-
-static void blake2b_increment_counter( blake2b_state *S, const uint64_t inc )
-{
- S->t[0] += inc;
- S->t[1] += ( S->t[0] < inc );
-}
-
-static void blake2b_init0( blake2b_state *S )
-{
- size_t i;
- memset( S, 0, sizeof( blake2b_state ) );
-
- for( i = 0; i < 8; ++i ) S->h[i] = blake2b_IV[i];
-}
-
-/* init xors IV with input parameter block */
-int blake2b_init_param( blake2b_state *S, const blake2b_param *P )
-{
- const uint8_t *p = ( const uint8_t * )( P );
- size_t i;
-
- blake2b_init0( S );
-
- /* IV XOR ParamBlock */
- for( i = 0; i < 8; ++i )
- S->h[i] ^= load64( p + sizeof( S->h[i] ) * i );
-
- S->outlen = P->digest_length;
- return 0;
-}
-
-
-
-int blake2b_init( blake2b_state *S, size_t outlen )
-{
- blake2b_param P[1];
-
- if ( ( !outlen ) || ( outlen > BLAKE2B_OUTBYTES ) ) return -1;
-
- P->digest_length = (uint8_t)outlen;
- P->key_length = 0;
- P->fanout = 1;
- P->depth = 1;
- store32( &P->leaf_length, 0 );
- store32( &P->node_offset, 0 );
- store32( &P->xof_length, 0 );
- P->node_depth = 0;
- P->inner_length = 0;
- memset( P->reserved, 0, sizeof( P->reserved ) );
- memset( P->salt, 0, sizeof( P->salt ) );
- memset( P->personal, 0, sizeof( P->personal ) );
- return blake2b_init_param( S, P );
-}
-
-
-int blake2b_init_key( blake2b_state *S, size_t outlen, const void *key, size_t keylen )
-{
- blake2b_param P[1];
-
- if ( ( !outlen ) || ( outlen > BLAKE2B_OUTBYTES ) ) return -1;
-
- if ( !key || !keylen || keylen > BLAKE2B_KEYBYTES ) return -1;
-
- P->digest_length = (uint8_t)outlen;
- P->key_length = (uint8_t)keylen;
- P->fanout = 1;
- P->depth = 1;
- store32( &P->leaf_length, 0 );
- store32( &P->node_offset, 0 );
- store32( &P->xof_length, 0 );
- P->node_depth = 0;
- P->inner_length = 0;
- memset( P->reserved, 0, sizeof( P->reserved ) );
- memset( P->salt, 0, sizeof( P->salt ) );
- memset( P->personal, 0, sizeof( P->personal ) );
-
- if( blake2b_init_param( S, P ) < 0 ) return -1;
-
- {
- uint8_t block[BLAKE2B_BLOCKBYTES];
- memset( block, 0, BLAKE2B_BLOCKBYTES );
- memcpy( block, key, keylen );
- blake2b_update( S, block, BLAKE2B_BLOCKBYTES );
- secure_zero_memory( block, BLAKE2B_BLOCKBYTES ); /* Burn the key from stack */
- }
- return 0;
-}
-
-static void blake2b_compress( blake2b_state *S, const uint8_t block[BLAKE2B_BLOCKBYTES] )
-{
- const uint64x2_t m0 = vreinterpretq_u64_u8(vld1q_u8(&block[ 0]));
- const uint64x2_t m1 = vreinterpretq_u64_u8(vld1q_u8(&block[ 16]));
- const uint64x2_t m2 = vreinterpretq_u64_u8(vld1q_u8(&block[ 32]));
- const uint64x2_t m3 = vreinterpretq_u64_u8(vld1q_u8(&block[ 48]));
- const uint64x2_t m4 = vreinterpretq_u64_u8(vld1q_u8(&block[ 64]));
- const uint64x2_t m5 = vreinterpretq_u64_u8(vld1q_u8(&block[ 80]));
- const uint64x2_t m6 = vreinterpretq_u64_u8(vld1q_u8(&block[ 96]));
- const uint64x2_t m7 = vreinterpretq_u64_u8(vld1q_u8(&block[112]));
-
- uint64x2_t row1l, row1h, row2l, row2h;
- uint64x2_t row3l, row3h, row4l, row4h;
- uint64x2_t t0, t1, b0, b1;
-
- const uint64x2_t h0 = row1l = vld1q_u64(&S->h[0]);
- const uint64x2_t h1 = row1h = vld1q_u64(&S->h[2]);
- const uint64x2_t h2 = row2l = vld1q_u64(&S->h[4]);
- const uint64x2_t h3 = row2h = vld1q_u64(&S->h[6]);
-
- row3l = vld1q_u64(&blake2b_IV[0]);
- row3h = vld1q_u64(&blake2b_IV[2]);
- row4l = veorq_u64(vld1q_u64(&blake2b_IV[4]), vld1q_u64(&S->t[0]));
- row4h = veorq_u64(vld1q_u64(&blake2b_IV[6]), vld1q_u64(&S->f[0]));
-
- ROUND( 0 );
- ROUND( 1 );
- ROUND( 2 );
- ROUND( 3 );
- ROUND( 4 );
- ROUND( 5 );
- ROUND( 6 );
- ROUND( 7 );
- ROUND( 8 );
- ROUND( 9 );
- ROUND( 10 );
- ROUND( 11 );
-
- vst1q_u64(&S->h[0], veorq_u64(h0, veorq_u64(row1l, row3l)));
- vst1q_u64(&S->h[2], veorq_u64(h1, veorq_u64(row1h, row3h)));
- vst1q_u64(&S->h[4], veorq_u64(h2, veorq_u64(row2l, row4l)));
- vst1q_u64(&S->h[6], veorq_u64(h3, veorq_u64(row2h, row4h)));
-}
-
-
-int blake2b_update( blake2b_state *S, const void *pin, size_t inlen )
-{
- const unsigned char * in = (const unsigned char *)pin;
- if( inlen > 0 )
- {
- size_t left = S->buflen;
- size_t fill = BLAKE2B_BLOCKBYTES - left;
- if( inlen > fill )
- {
- S->buflen = 0;
- memcpy( S->buf + left, in, fill ); /* Fill buffer */
- blake2b_increment_counter( S, BLAKE2B_BLOCKBYTES );
- blake2b_compress( S, S->buf ); /* Compress */
- in += fill; inlen -= fill;
- while(inlen > BLAKE2B_BLOCKBYTES) {
- blake2b_increment_counter(S, BLAKE2B_BLOCKBYTES);
- blake2b_compress( S, in );
- in += BLAKE2B_BLOCKBYTES;
- inlen -= BLAKE2B_BLOCKBYTES;
- }
- }
- memcpy( S->buf + S->buflen, in, inlen );
- S->buflen += inlen;
- }
- return 0;
-}
-
-int blake2b_final( blake2b_state *S, void *out, size_t outlen )
-{
- uint8_t buffer[BLAKE2B_OUTBYTES] = {0};
- size_t i;
-
- if( out == NULL || outlen < S->outlen )
- return -1;
-
- if( blake2b_is_lastblock( S ) )
- return -1;
-
- blake2b_increment_counter( S, S->buflen );
- blake2b_set_lastblock( S );
- memset( S->buf + S->buflen, 0, BLAKE2B_BLOCKBYTES - S->buflen ); /* Padding */
- blake2b_compress( S, S->buf );
-
- for( i = 0; i < 8; ++i ) /* Output full hash to temp buffer */
- store64( buffer + sizeof( S->h[i] ) * i, S->h[i] );
-
- memcpy( out, buffer, S->outlen );
- secure_zero_memory(buffer, sizeof(buffer));
- return 0;
-}
-
-/* inlen, at least, should be uint64_t. Others can be size_t. */
-int blake2b( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen )
-{
- blake2b_state S[1];
-
- /* Verify parameters */
- if ( NULL == in && inlen > 0 ) return -1;
-
- if ( NULL == out ) return -1;
-
- if( NULL == key && keylen > 0 ) return -1;
-
- if( !outlen || outlen > BLAKE2B_OUTBYTES ) return -1;
-
- if( keylen > BLAKE2B_KEYBYTES ) return -1;
-
- if( keylen > 0 )
- {
- if( blake2b_init_key( S, outlen, key, keylen ) < 0 ) return -1;
- }
- else
- {
- if( blake2b_init( S, outlen ) < 0 ) return -1;
- }
-
- blake2b_update( S, ( const uint8_t * )in, inlen );
- blake2b_final( S, out, outlen );
- return 0;
-}
-
-int blake2( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen ) {
- return blake2b(out, outlen, in, inlen, key, keylen);
-}
-
-#if defined(SUPERCOP)
-int crypto_hash( unsigned char *out, unsigned char *in, unsigned long long inlen )
-{
- return blake2b( out, BLAKE2B_OUTBYTES, in, inlen, NULL, 0 );
-}
-#endif
-
-#if defined(BLAKE2B_SELFTEST)
-#include
-#include "blake2-kat.h"
-int main( void )
-{
- uint8_t key[BLAKE2B_KEYBYTES];
- uint8_t buf[BLAKE2_KAT_LENGTH];
- size_t i, step;
-
- for( i = 0; i < BLAKE2B_KEYBYTES; ++i )
- key[i] = ( uint8_t )i;
-
- for( i = 0; i < BLAKE2_KAT_LENGTH; ++i )
- buf[i] = ( uint8_t )i;
-
- /* Test simple API */
- for( i = 0; i < BLAKE2_KAT_LENGTH; ++i )
- {
- uint8_t hash[BLAKE2B_OUTBYTES];
- blake2b( hash, BLAKE2B_OUTBYTES, buf, i, key, BLAKE2B_KEYBYTES );
-
- if( 0 != memcmp( hash, blake2b_keyed_kat[i], BLAKE2B_OUTBYTES ) )
- {
- goto fail;
- }
- }
-
- /* Test streaming API */
- for(step = 1; step < BLAKE2B_BLOCKBYTES; ++step) {
- for (i = 0; i < BLAKE2_KAT_LENGTH; ++i) {
- uint8_t hash[BLAKE2B_OUTBYTES];
- blake2b_state S;
- uint8_t * p = buf;
- size_t mlen = i;
- int err = 0;
-
- if( (err = blake2b_init_key(&S, BLAKE2B_OUTBYTES, key, BLAKE2B_KEYBYTES)) < 0 ) {
- goto fail;
- }
-
- while (mlen >= step) {
- if ( (err = blake2b_update(&S, p, step)) < 0 ) {
- goto fail;
- }
- mlen -= step;
- p += step;
- }
- if ( (err = blake2b_update(&S, p, mlen)) < 0) {
- goto fail;
- }
- if ( (err = blake2b_final(&S, hash, BLAKE2B_OUTBYTES)) < 0) {
- goto fail;
- }
-
- if (0 != memcmp(hash, blake2b_keyed_kat[i], BLAKE2B_OUTBYTES)) {
- goto fail;
- }
- }
- }
-
- puts( "ok" );
- return 0;
-fail:
- puts("error");
- return -1;
-}
-#endif
diff --git a/deps/BLAKE2/neon/blake2bp.c b/deps/BLAKE2/neon/blake2bp.c
deleted file mode 100644
index 3eb95d0..0000000
--- a/deps/BLAKE2/neon/blake2bp.c
+++ /dev/null
@@ -1,361 +0,0 @@
-/*
- BLAKE2 reference source code package - optimized C implementations
-
- Copyright 2012, Samuel Neves . You may use this under the
- terms of the CC0, the OpenSSL Licence, or the Apache Public License 2.0, at
- your option. The terms of these licenses can be found at:
-
- - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0
- - OpenSSL license : https://www.openssl.org/source/license.html
- - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0
-
- More information about the BLAKE2 hash function can be found at
- https://blake2.net.
-*/
-
-#include
-#include
-#include
-#include
-
-#if defined(_OPENMP)
-#include
-#endif
-
-#include "blake2.h"
-#include "blake2-impl.h"
-
-#define PARALLELISM_DEGREE 4
-
-/*
- blake2b_init_param defaults to setting the expecting output length
- from the digest_length parameter block field.
-
- In some cases, however, we do not want this, as the output length
- of these instances is given by inner_length instead.
-*/
-static int blake2bp_init_leaf_param( blake2b_state *S, const blake2b_param *P )
-{
- int err = blake2b_init_param(S, P);
- S->outlen = P->inner_length;
- return err;
-}
-
-static int blake2bp_init_leaf( blake2b_state *S, size_t outlen, size_t keylen, uint64_t offset )
-{
- blake2b_param P[1];
- P->digest_length = (uint8_t)outlen;
- P->key_length = (uint8_t)keylen;
- P->fanout = PARALLELISM_DEGREE;
- P->depth = 2;
- P->leaf_length = 0;
- P->node_offset = offset;
- P->xof_length = 0;
- P->node_depth = 0;
- P->inner_length = BLAKE2B_OUTBYTES;
- memset( P->reserved, 0, sizeof( P->reserved ) );
- memset( P->salt, 0, sizeof( P->salt ) );
- memset( P->personal, 0, sizeof( P->personal ) );
- return blake2bp_init_leaf_param( S, P );
-}
-
-static int blake2bp_init_root( blake2b_state *S, size_t outlen, size_t keylen )
-{
- blake2b_param P[1];
- P->digest_length = (uint8_t)outlen;
- P->key_length = (uint8_t)keylen;
- P->fanout = PARALLELISM_DEGREE;
- P->depth = 2;
- P->leaf_length = 0;
- P->node_offset = 0;
- P->xof_length = 0;
- P->node_depth = 1;
- P->inner_length = BLAKE2B_OUTBYTES;
- memset( P->reserved, 0, sizeof( P->reserved ) );
- memset( P->salt, 0, sizeof( P->salt ) );
- memset( P->personal, 0, sizeof( P->personal ) );
- return blake2b_init_param( S, P );
-}
-
-
-int blake2bp_init( blake2bp_state *S, size_t outlen )
-{
- size_t i;
- if( !outlen || outlen > BLAKE2B_OUTBYTES ) return -1;
-
- memset( S->buf, 0, sizeof( S->buf ) );
- S->buflen = 0;
- S->outlen = outlen;
-
- if( blake2bp_init_root( S->R, outlen, 0 ) < 0 )
- return -1;
-
- for( i = 0; i < PARALLELISM_DEGREE; ++i )
- if( blake2bp_init_leaf( S->S[i], outlen, 0, i ) < 0 ) return -1;
-
- S->R->last_node = 1;
- S->S[PARALLELISM_DEGREE - 1]->last_node = 1;
- return 0;
-}
-
-int blake2bp_init_key( blake2bp_state *S, size_t outlen, const void *key, size_t keylen )
-{
- size_t i;
-
- if( !outlen || outlen > BLAKE2B_OUTBYTES ) return -1;
-
- if( !key || !keylen || keylen > BLAKE2B_KEYBYTES ) return -1;
-
- memset( S->buf, 0, sizeof( S->buf ) );
- S->buflen = 0;
- S->outlen = outlen;
-
- if( blake2bp_init_root( S->R, outlen, keylen ) < 0 )
- return -1;
-
- for( i = 0; i < PARALLELISM_DEGREE; ++i )
- if( blake2bp_init_leaf( S->S[i], outlen, keylen, i ) < 0 ) return -1;
-
- S->R->last_node = 1;
- S->S[PARALLELISM_DEGREE - 1]->last_node = 1;
- {
- uint8_t block[BLAKE2B_BLOCKBYTES];
- memset( block, 0, BLAKE2B_BLOCKBYTES );
- memcpy( block, key, keylen );
-
- for( i = 0; i < PARALLELISM_DEGREE; ++i )
- blake2b_update( S->S[i], block, BLAKE2B_BLOCKBYTES );
-
- secure_zero_memory( block, BLAKE2B_BLOCKBYTES ); /* Burn the key from stack */
- }
- return 0;
-}
-
-
-int blake2bp_update( blake2bp_state *S, const void *pin, size_t inlen )
-{
- const unsigned char * in = (const unsigned char *)pin;
- size_t left = S->buflen;
- size_t fill = sizeof( S->buf ) - left;
- size_t i;
-
- if( left && inlen >= fill )
- {
- memcpy( S->buf + left, in, fill );
-
- for( i = 0; i < PARALLELISM_DEGREE; ++i )
- blake2b_update( S->S[i], S->buf + i * BLAKE2B_BLOCKBYTES, BLAKE2B_BLOCKBYTES );
-
- in += fill;
- inlen -= fill;
- left = 0;
- }
-
-#if defined(_OPENMP)
- #pragma omp parallel shared(S), num_threads(PARALLELISM_DEGREE)
-#else
-
- for( i = 0; i < PARALLELISM_DEGREE; ++i )
-#endif
- {
-#if defined(_OPENMP)
- size_t i = omp_get_thread_num();
-#endif
- size_t inlen__ = inlen;
- const unsigned char *in__ = ( const unsigned char * )in;
- in__ += i * BLAKE2B_BLOCKBYTES;
-
- while( inlen__ >= PARALLELISM_DEGREE * BLAKE2B_BLOCKBYTES )
- {
- blake2b_update( S->S[i], in__, BLAKE2B_BLOCKBYTES );
- in__ += PARALLELISM_DEGREE * BLAKE2B_BLOCKBYTES;
- inlen__ -= PARALLELISM_DEGREE * BLAKE2B_BLOCKBYTES;
- }
- }
-
- in += inlen - inlen % ( PARALLELISM_DEGREE * BLAKE2B_BLOCKBYTES );
- inlen %= PARALLELISM_DEGREE * BLAKE2B_BLOCKBYTES;
-
- if( inlen > 0 )
- memcpy( S->buf + left, in, inlen );
-
- S->buflen = left + inlen;
- return 0;
-}
-
-
-
-int blake2bp_final( blake2bp_state *S, void *out, size_t outlen )
-{
- uint8_t hash[PARALLELISM_DEGREE][BLAKE2B_OUTBYTES];
- size_t i;
-
- if(out == NULL || outlen < S->outlen) {
- return -1;
- }
-
- for( i = 0; i < PARALLELISM_DEGREE; ++i )
- {
- if( S->buflen > i * BLAKE2B_BLOCKBYTES )
- {
- size_t left = S->buflen - i * BLAKE2B_BLOCKBYTES;
-
- if( left > BLAKE2B_BLOCKBYTES ) left = BLAKE2B_BLOCKBYTES;
-
- blake2b_update( S->S[i], S->buf + i * BLAKE2B_BLOCKBYTES, left );
- }
-
- blake2b_final( S->S[i], hash[i], BLAKE2B_OUTBYTES );
- }
-
- for( i = 0; i < PARALLELISM_DEGREE; ++i )
- blake2b_update( S->R, hash[i], BLAKE2B_OUTBYTES );
-
- return blake2b_final( S->R, out, S->outlen );
-}
-
-int blake2bp( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen )
-{
- uint8_t hash[PARALLELISM_DEGREE][BLAKE2B_OUTBYTES];
- blake2b_state S[PARALLELISM_DEGREE][1];
- blake2b_state FS[1];
- size_t i;
-
- /* Verify parameters */
- if ( NULL == in && inlen > 0 ) return -1;
-
- if ( NULL == out ) return -1;
-
- if( NULL == key && keylen > 0 ) return -1;
-
- if( !outlen || outlen > BLAKE2B_OUTBYTES ) return -1;
-
- if( keylen > BLAKE2B_KEYBYTES ) return -1;
-
- for( i = 0; i < PARALLELISM_DEGREE; ++i )
- if( blake2bp_init_leaf( S[i], outlen, keylen, i ) < 0 ) return -1;
-
- S[PARALLELISM_DEGREE - 1]->last_node = 1; /* mark last node */
-
- if( keylen > 0 )
- {
- uint8_t block[BLAKE2B_BLOCKBYTES];
- memset( block, 0, BLAKE2B_BLOCKBYTES );
- memcpy( block, key, keylen );
-
- for( i = 0; i < PARALLELISM_DEGREE; ++i )
- blake2b_update( S[i], block, BLAKE2B_BLOCKBYTES );
-
- secure_zero_memory( block, BLAKE2B_BLOCKBYTES ); /* Burn the key from stack */
- }
-
-#if defined(_OPENMP)
- #pragma omp parallel shared(S,hash), num_threads(PARALLELISM_DEGREE)
-#else
-
- for( i = 0; i < PARALLELISM_DEGREE; ++i )
-#endif
- {
-#if defined(_OPENMP)
- size_t i = omp_get_thread_num();
-#endif
- size_t inlen__ = inlen;
- const unsigned char *in__ = ( const unsigned char * )in;
- in__ += i * BLAKE2B_BLOCKBYTES;
-
- while( inlen__ >= PARALLELISM_DEGREE * BLAKE2B_BLOCKBYTES )
- {
- blake2b_update( S[i], in__, BLAKE2B_BLOCKBYTES );
- in__ += PARALLELISM_DEGREE * BLAKE2B_BLOCKBYTES;
- inlen__ -= PARALLELISM_DEGREE * BLAKE2B_BLOCKBYTES;
- }
-
- if( inlen__ > i * BLAKE2B_BLOCKBYTES )
- {
- const size_t left = inlen__ - i * BLAKE2B_BLOCKBYTES;
- const size_t len = left <= BLAKE2B_BLOCKBYTES ? left : BLAKE2B_BLOCKBYTES;
- blake2b_update( S[i], in__, len );
- }
-
- blake2b_final( S[i], hash[i], BLAKE2B_OUTBYTES );
- }
-
- if( blake2bp_init_root( FS, outlen, keylen ) < 0 )
- return -1;
-
- FS->last_node = 1; /* Mark as last node */
-
- for( i = 0; i < PARALLELISM_DEGREE; ++i )
- blake2b_update( FS, hash[i], BLAKE2B_OUTBYTES );
-
- return blake2b_final( FS, out, outlen );
-}
-
-
-#if defined(BLAKE2BP_SELFTEST)
-#include
-#include "blake2-kat.h"
-int main( void )
-{
- uint8_t key[BLAKE2B_KEYBYTES];
- uint8_t buf[BLAKE2_KAT_LENGTH];
- size_t i, step;
-
- for( i = 0; i < BLAKE2B_KEYBYTES; ++i )
- key[i] = ( uint8_t )i;
-
- for( i = 0; i < BLAKE2_KAT_LENGTH; ++i )
- buf[i] = ( uint8_t )i;
-
- /* Test simple API */
- for( i = 0; i < BLAKE2_KAT_LENGTH; ++i )
- {
- uint8_t hash[BLAKE2B_OUTBYTES];
- blake2bp( hash, BLAKE2B_OUTBYTES, buf, i, key, BLAKE2B_KEYBYTES );
-
- if( 0 != memcmp( hash, blake2bp_keyed_kat[i], BLAKE2B_OUTBYTES ) )
- {
- goto fail;
- }
- }
-
- /* Test streaming API */
- for(step = 1; step < BLAKE2B_BLOCKBYTES; ++step) {
- for (i = 0; i < BLAKE2_KAT_LENGTH; ++i) {
- uint8_t hash[BLAKE2B_OUTBYTES];
- blake2bp_state S;
- uint8_t * p = buf;
- size_t mlen = i;
- int err = 0;
-
- if( (err = blake2bp_init_key(&S, BLAKE2B_OUTBYTES, key, BLAKE2B_KEYBYTES)) < 0 ) {
- goto fail;
- }
-
- while (mlen >= step) {
- if ( (err = blake2bp_update(&S, p, step)) < 0 ) {
- goto fail;
- }
- mlen -= step;
- p += step;
- }
- if ( (err = blake2bp_update(&S, p, mlen)) < 0) {
- goto fail;
- }
- if ( (err = blake2bp_final(&S, hash, BLAKE2B_OUTBYTES)) < 0) {
- goto fail;
- }
-
- if (0 != memcmp(hash, blake2bp_keyed_kat[i], BLAKE2B_OUTBYTES)) {
- goto fail;
- }
- }
- }
-
- puts( "ok" );
- return 0;
-fail:
- puts("error");
- return -1;
-}
-#endif
diff --git a/deps/BLAKE2/neon/blake2s-load-neon.h b/deps/BLAKE2/neon/blake2s-load-neon.h
deleted file mode 100644
index 852197e..0000000
--- a/deps/BLAKE2/neon/blake2s-load-neon.h
+++ /dev/null
@@ -1,193 +0,0 @@
-/*
- BLAKE2 reference source code package - optimized C implementations
-
- Copyright 2012, Samuel Neves . You may use this under the
- terms of the CC0, the OpenSSL Licence, or the Apache Public License 2.0, at
- your option. The terms of these licenses can be found at:
-
- - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0
- - OpenSSL license : https://www.openssl.org/source/license.html
- - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0
-
- More information about the BLAKE2 hash function can be found at
- https://blake2.net.
-*/
-#ifndef BLAKE2S_LOAD_NEON_H
-#define BLAKE2S_LOAD_NEON_H
-
-#define LOAD_MSG_0_1(buf) \
- t1 = vzip_u32(m0, m1); \
- t2 = vzip_u32(m2, m3); \
- buf = vcombine_u32(t1.val[0], t2.val[0]);
-
-#define LOAD_MSG_0_2(buf) \
- t1 = vzip_u32(m0, m1); \
- t2 = vzip_u32(m2, m3); \
- buf = vcombine_u32(t1.val[1], t2.val[1]);
-
-#define LOAD_MSG_0_3(buf) \
- t1 = vzip_u32(m4, m5); \
- t2 = vzip_u32(m6, m7); \
- buf = vcombine_u32(t1.val[0], t2.val[0]);
-
-#define LOAD_MSG_0_4(buf) \
- t1 = vzip_u32(m4, m5); \
- t2 = vzip_u32(m6, m7); \
- buf = vcombine_u32(t1.val[1], t2.val[1]);
-
-#define LOAD_MSG_1_1(buf) \
- t1 = vzip_u32(m7, m2); \
- t2 = vzip_u32(m4, m6); \
- buf = vcombine_u32(t1.val[0], t2.val[1]);
-
-#define LOAD_MSG_1_2(buf) \
- t1 = vzip_u32(m5, m4); \
- buf = vcombine_u32(t1.val[0], vext_u32(m7, m3, 1));
-
-#define LOAD_MSG_1_3(buf) \
- t2 = vzip_u32(m5, m2); \
- buf = vcombine_u32(vrev64_u32(m0), t2.val[1]);
-
-#define LOAD_MSG_1_4(buf) \
- t1 = vzip_u32(m6, m1); \
- t2 = vzip_u32(m3, m1); \
- buf = vcombine_u32(t1.val[0], t2.val[1]);
-
-#define LOAD_MSG_2_1(buf) \
- t2 = vzip_u32(m2, m7); \
- buf = vcombine_u32(vext_u32(m5, m6, 1), t2.val[1]);
-
-#define LOAD_MSG_2_2(buf) \
- t1 = vzip_u32(m4, m0); \
- buf = vcombine_u32(t1.val[0], vrev64_u32(vext_u32(m6, m1, 1)));
-
-#define LOAD_MSG_2_3(buf) \
- t2 = vzip_u32(m3, m4); \
- buf = vcombine_u32(vrev64_u32(vext_u32(m1, m5, 1)), t2.val[1]);
-
-#define LOAD_MSG_2_4(buf) \
- t1 = vzip_u32(m7, m3); \
- buf = vcombine_u32(t1.val[0], vext_u32(m0, m2, 1));
-
-#define LOAD_MSG_3_1(buf) \
- t1 = vzip_u32(m3, m1); \
- t2 = vzip_u32(m6, m5); \
- buf = vcombine_u32(t1.val[1], t2.val[1]);
-
-#define LOAD_MSG_3_2(buf) \
- t1 = vzip_u32(m4, m0); \
- t2 = vzip_u32(m6, m7); \
- buf = vcombine_u32(t1.val[1], t2.val[0]);
-
-#define LOAD_MSG_3_3(buf) \
- buf = vcombine_u32(vrev64_u32(vext_u32(m2, m1, 1)), \
- vrev64_u32(vext_u32(m7, m2, 1)));
-
-#define LOAD_MSG_3_4(buf) \
- t1 = vzip_u32(m3, m5); \
- t2 = vzip_u32(m0, m4); \
- buf = vcombine_u32(t1.val[0], t2.val[0]);
-
-#define LOAD_MSG_4_1(buf) \
- t1 = vzip_u32(m4, m2); \
- t2 = vzip_u32(m1, m5); \
- buf = vcombine_u32(t1.val[1], t2.val[0]);
-
-#define LOAD_MSG_4_2(buf) \
- buf = vcombine_u32(vrev64_u32(vext_u32(m3, m0, 1)), \
- vrev64_u32(vext_u32(m7, m2, 1)));
-
-#define LOAD_MSG_4_3(buf) \
- buf = vcombine_u32(vrev64_u32(vext_u32(m5, m7, 1)), \
- vrev64_u32(vext_u32(m1, m3, 1)));
-
-#define LOAD_MSG_4_4(buf) \
- buf = vcombine_u32(vext_u32(m0, m6, 1), \
- vrev64_u32(vext_u32(m6, m4, 1)));
-
-#define LOAD_MSG_5_1(buf) \
- t1 = vzip_u32(m1, m3); \
- t2 = vzip_u32(m0, m4); \
- buf = vcombine_u32(t1.val[0], t2.val[0]);
-
-#define LOAD_MSG_5_2(buf) \
- t1 = vzip_u32(m6, m5); \
- t2 = vzip_u32(m5, m1); \
- buf = vcombine_u32(t1.val[0], t2.val[1]);
-
-#define LOAD_MSG_5_3(buf) \
- t2 = vzip_u32(m7, m0); \
- buf = vcombine_u32(vrev64_u32(vext_u32(m3, m2, 1)), t2.val[1]);
-
-#define LOAD_MSG_5_4(buf) \
- t1 = vzip_u32(m6, m2); \
- buf = vcombine_u32(t1.val[1], vrev64_u32(vext_u32(m4, m7, 1)));
-
-#define LOAD_MSG_6_1(buf) \
- t2 = vzip_u32(m7, m2); \
- buf = vcombine_u32(vrev64_u32(vext_u32(m0, m6, 1)), t2.val[0]);
-
-#define LOAD_MSG_6_2(buf) \
- t1 = vzip_u32(m2, m7); \
- buf = vcombine_u32(t1.val[1], vext_u32(m6, m5, 1));
-
-#define LOAD_MSG_6_3(buf) \
- t1 = vzip_u32(m0, m3); \
- buf = vcombine_u32(t1.val[0], vrev64_u32(m4));
-
-#define LOAD_MSG_6_4(buf) \
- t1 = vzip_u32(m3, m1); \
- buf = vcombine_u32(t1.val[1], vrev64_u32(vext_u32(m5, m1, 1)));
-
-#define LOAD_MSG_7_1(buf) \
- t1 = vzip_u32(m6, m3); \
- buf = vcombine_u32(t1.val[1], vrev64_u32(vext_u32(m1, m6, 1)));
-
-#define LOAD_MSG_7_2(buf) \
- t2 = vzip_u32(m0, m4); \
- buf = vcombine_u32(vext_u32(m5, m7, 1), t2.val[1]);
-
-#define LOAD_MSG_7_3(buf) \
- t1 = vzip_u32(m2, m7); \
- t2 = vzip_u32(m4, m1); \
- buf = vcombine_u32(t1.val[1], t2.val[0]);
-
-#define LOAD_MSG_7_4(buf) \
- t1 = vzip_u32(m0, m2); \
- t2 = vzip_u32(m3, m5); \
- buf = vcombine_u32(t1.val[0], t2.val[0]);
-
-#define LOAD_MSG_8_1(buf) \
- t1 = vzip_u32(m3, m7); \
- buf = vcombine_u32(t1.val[0], vext_u32(m5, m0, 1));
-
-#define LOAD_MSG_8_2(buf) \
- t1 = vzip_u32(m7, m4); \
- buf = vcombine_u32(t1.val[1], vext_u32(m1, m4, 1));
-
-#define LOAD_MSG_8_3(buf) \
- buf = vcombine_u32(m6, vext_u32(m0, m5, 1));
-
-#define LOAD_MSG_8_4(buf) \
- buf = vcombine_u32(vrev64_u32(vext_u32(m3, m1, 1)), m2);
-
-#define LOAD_MSG_9_1(buf) \
- t1 = vzip_u32(m5, m4); \
- t2 = vzip_u32(m3, m0); \
- buf = vcombine_u32(t1.val[0], t2.val[1]);
-
-#define LOAD_MSG_9_2(buf) \
- t1 = vzip_u32(m1, m2); \
- buf = vcombine_u32(t1.val[0], vrev64_u32(vext_u32(m2, m3, 1)));
-
-#define LOAD_MSG_9_3(buf) \
- t1 = vzip_u32(m7, m4); \
- t2 = vzip_u32(m1, m6); \
- buf = vcombine_u32(t1.val[1], t2.val[1]);
-
-#define LOAD_MSG_9_4(buf) \
- t2 = vzip_u32(m6, m0); \
- buf = vcombine_u32(vext_u32(m5, m7, 1), t2.val[0]);
-
-
-#endif
diff --git a/deps/BLAKE2/neon/blake2s-neon.c b/deps/BLAKE2/neon/blake2s-neon.c
deleted file mode 100644
index 96265b6..0000000
--- a/deps/BLAKE2/neon/blake2s-neon.c
+++ /dev/null
@@ -1,693 +0,0 @@
-/*
- BLAKE2 reference source code package - reference C implementations
-
- Copyright 2012, Samuel Neves . You may use this under the
- terms of the CC0, the OpenSSL Licence, or the Apache Public License 2.0, at
- your option. The terms of these licenses can be found at:
-
- - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0
- - OpenSSL license : https://www.openssl.org/source/license.html
- - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0
-
- More information about the BLAKE2 hash function can be found at
- https://blake2.net.
-*/
-
-#include
-#include
-#include
-#include
-
-#include "blake2.h"
-#include "blake2-impl.h"
-
-static const uint32_t blake2s_IV[8] =
-{
- 0x6A09E667UL, 0xBB67AE85UL, 0x3C6EF372UL, 0xA54FF53AUL,
- 0x510E527FUL, 0x9B05688CUL, 0x1F83D9ABUL, 0x5BE0CD19UL
-};
-
-static void blake2s_set_lastnode( blake2s_state *S )
-{
- S->f[1] = (uint32_t)-1;
-}
-
-/* Some helper functions, not necessarily useful */
-static int blake2s_is_lastblock( const blake2s_state *S )
-{
- return S->f[0] != 0;
-}
-
-static void blake2s_set_lastblock( blake2s_state *S )
-{
- if( S->last_node ) blake2s_set_lastnode( S );
-
- S->f[0] = (uint32_t)-1;
-}
-
-static void blake2s_increment_counter( blake2s_state *S, const uint32_t inc )
-{
- S->t[0] += inc;
- S->t[1] += ( S->t[0] < inc );
-}
-
-static void blake2s_init0( blake2s_state *S )
-{
- size_t i;
- memset( S, 0, sizeof( blake2s_state ) );
-
- for( i = 0; i < 8; ++i ) S->h[i] = blake2s_IV[i];
-}
-
-/* init2 xors IV with input parameter block */
-int blake2s_init_param( blake2s_state *S, const blake2s_param *P )
-{
- const unsigned char *p = ( const unsigned char * )( P );
- size_t i;
-
- blake2s_init0( S );
-
- /* IV XOR ParamBlock */
- for( i = 0; i < 8; ++i )
- S->h[i] ^= load32( &p[i * 4] );
-
- S->outlen = P->digest_length;
- return 0;
-}
-
-
-/* Sequential blake2s initialization */
-int blake2s_init( blake2s_state *S, size_t outlen )
-{
- blake2s_param P[1];
-
- /* Move interval verification here? */
- if ( ( !outlen ) || ( outlen > BLAKE2S_OUTBYTES ) ) return -1;
-
- P->digest_length = (uint8_t)outlen;
- P->key_length = 0;
- P->fanout = 1;
- P->depth = 1;
- store32( &P->leaf_length, 0 );
- store32( &P->node_offset, 0 );
- store16( &P->xof_length, 0 );
- P->node_depth = 0;
- P->inner_length = 0;
- /* memset(P->reserved, 0, sizeof(P->reserved) ); */
- memset( P->salt, 0, sizeof( P->salt ) );
- memset( P->personal, 0, sizeof( P->personal ) );
- return blake2s_init_param( S, P );
-}
-
-int blake2s_init_key( blake2s_state *S, size_t outlen, const void *key, size_t keylen )
-{
- blake2s_param P[1];
-
- if ( ( !outlen ) || ( outlen > BLAKE2S_OUTBYTES ) ) return -1;
-
- if ( !key || !keylen || keylen > BLAKE2S_KEYBYTES ) return -1;
-
- P->digest_length = (uint8_t)outlen;
- P->key_length = (uint8_t)keylen;
- P->fanout = 1;
- P->depth = 1;
- store32( &P->leaf_length, 0 );
- store32( &P->node_offset, 0 );
- store16( &P->xof_length, 0 );
- P->node_depth = 0;
- P->inner_length = 0;
- /* memset(P->reserved, 0, sizeof(P->reserved) ); */
- memset( P->salt, 0, sizeof( P->salt ) );
- memset( P->personal, 0, sizeof( P->personal ) );
-
- if( blake2s_init_param( S, P ) < 0 ) return -1;
-
- {
- uint8_t block[BLAKE2S_BLOCKBYTES];
- memset( block, 0, BLAKE2S_BLOCKBYTES );
- memcpy( block, key, keylen );
- blake2s_update( S, block, BLAKE2S_BLOCKBYTES );
- secure_zero_memory( block, BLAKE2S_BLOCKBYTES ); /* Burn the key from stack */
- }
- return 0;
-}
-
-/* Round 0 */
-#undef LOAD_MSG_0_1_
-#define LOAD_MSG_0_1_(x) \
- do { \
- t1 = vzip_u32(m0, m1); \
- t2 = vzip_u32(m2, m3); \
- x = vcombine_u32(t1.val[0], t2.val[0]); \
- } while(0)
-
-#undef LOAD_MSG_0_2_
-#define LOAD_MSG_0_2_(x) \
- do { \
- t1 = vzip_u32(m0, m1); \
- t2 = vzip_u32(m2, m3); \
- x = vcombine_u32(t1.val[1], t2.val[1]); \
- } while(0)
-
-#undef LOAD_MSG_0_3_
-#define LOAD_MSG_0_3_(x) \
- do { \
- t1 = vzip_u32(m4, m5); \
- t2 = vzip_u32(m6, m7); \
- x = vcombine_u32(t1.val[0], t2.val[0]); \
- } while(0)
-
-#undef LOAD_MSG_0_4_
-#define LOAD_MSG_0_4_(x) \
- do { \
- t1 = vzip_u32(m4, m5); \
- t2 = vzip_u32(m6, m7); \
- x = vcombine_u32(t1.val[1], t2.val[1]); \
- } while(0)
-
-/* Round 1 */
-#undef LOAD_MSG_1_1_
-#define LOAD_MSG_1_1_(x) \
- do { \
- t1 = vzip_u32(m7, m2); \
- t2 = vzip_u32(m4, m6); \
- x = vcombine_u32(t1.val[0], t2.val[1]); \
- } while(0)
-
-#undef LOAD_MSG_1_2_
-#define LOAD_MSG_1_2_(x) \
- do { \
- t1 = vzip_u32(m5, m4); \
- x = vcombine_u32(t1.val[0], vext_u32(m7, m3, 1)); \
- } while(0)
-
-#undef LOAD_MSG_1_3_
-#define LOAD_MSG_1_3_(x) \
- do { \
- t2 = vzip_u32(m5, m2); \
- x = vcombine_u32(vrev64_u32(m0), t2.val[1]); \
- } while(0)
-
-#undef LOAD_MSG_1_4_
-#define LOAD_MSG_1_4_(x) \
- do { \
- t1 = vzip_u32(m6, m1); \
- t2 = vzip_u32(m3, m1); \
- x = vcombine_u32(t1.val[0], t2.val[1]); \
- } while(0)
-
-/* Round 2 */
-#undef LOAD_MSG_2_1_
-#define LOAD_MSG_2_1_(x) \
- do { \
- t2 = vzip_u32(m2, m7); \
- x = vcombine_u32(vext_u32(m5, m6, 1), t2.val[1]); \
- } while(0)
-
-#undef LOAD_MSG_2_2_
-#define LOAD_MSG_2_2_(x) \
- do { \
- t1 = vzip_u32(m4, m0); \
- x = vcombine_u32(t1.val[0], vrev64_u32(vext_u32(m6, m1, 1))); \
- } while(0)
-
-#undef LOAD_MSG_2_3_
-#define LOAD_MSG_2_3_(x) \
- do { \
- t2 = vzip_u32(m3, m4); \
- x = vcombine_u32(vrev64_u32(vext_u32(m1, m5, 1)), t2.val[1]); \
- } while(0)
-
-#undef LOAD_MSG_2_4_
-#define LOAD_MSG_2_4_(x) \
- do { \
- t1 = vzip_u32(m7, m3); \
- x = vcombine_u32(t1.val[0], vext_u32(m0, m2, 1)); \
- } while(0)
-
-/* Round 3 */
-#undef LOAD_MSG_3_1_
-#define LOAD_MSG_3_1_(x) \
- do { \
- t1 = vzip_u32(m3, m1); \
- t2 = vzip_u32(m6, m5); \
- x = vcombine_u32(t1.val[1], t2.val[1]); \
- } while(0)
-
-#undef LOAD_MSG_3_2_
-#define LOAD_MSG_3_2_(x) \
- do { \
- t1 = vzip_u32(m4, m0); \
- t2 = vzip_u32(m6, m7); \
- x = vcombine_u32(t1.val[1], t2.val[0]); \
- } while(0)
-
-#undef LOAD_MSG_3_3_
-#define LOAD_MSG_3_3_(x) \
- do { \
- x = vcombine_u32(vrev64_u32(vext_u32(m2, m1, 1)), \
- vrev64_u32(vext_u32(m7, m2, 1))); \
- } while(0)
-
-#undef LOAD_MSG_3_4_
-#define LOAD_MSG_3_4_(x) \
- do { \
- t1 = vzip_u32(m3, m5); \
- t2 = vzip_u32(m0, m4); \
- x = vcombine_u32(t1.val[0], t2.val[0]); \
- } while(0)
-
-/* Round 4 */
-#undef LOAD_MSG_4_1_
-#define LOAD_MSG_4_1_(x) \
- do { \
- t1 = vzip_u32(m4, m2); \
- t2 = vzip_u32(m1, m5); \
- x = vcombine_u32(t1.val[1], t2.val[0]); \
- } while(0)
-
-#undef LOAD_MSG_4_2_
-#define LOAD_MSG_4_2_(x) \
- do { \
- x = vcombine_u32(vrev64_u32(vext_u32(m3, m0, 1)), \
- vrev64_u32(vext_u32(m7, m2, 1))); \
- } while(0)
-
-#undef LOAD_MSG_4_3_
-#define LOAD_MSG_4_3_(x) \
- do { \
- x = vcombine_u32(vrev64_u32(vext_u32(m5, m7, 1)), \
- vrev64_u32(vext_u32(m1, m3, 1))); \
- } while(0)
-
-#undef LOAD_MSG_4_4_
-#define LOAD_MSG_4_4_(x) \
- do { \
- x = vcombine_u32(vext_u32(m0, m6, 1), \
- vrev64_u32(vext_u32(m6, m4, 1))); \
- } while(0)
-
-/* Round 5 */
-#undef LOAD_MSG_5_1_
-#define LOAD_MSG_5_1_(x) \
- do { \
- t1 = vzip_u32(m1, m3); \
- t2 = vzip_u32(m0, m4); \
- x = vcombine_u32(t1.val[0], t2.val[0]); \
- } while(0)
-
-#undef LOAD_MSG_5_2_
-#define LOAD_MSG_5_2_(x) \
- do { \
- t1 = vzip_u32(m6, m5); \
- t2 = vzip_u32(m5, m1); \
- x = vcombine_u32(t1.val[0], t2.val[1]); \
- } while(0)
-
-#undef LOAD_MSG_5_3_
-#define LOAD_MSG_5_3_(x) \
- do { \
- t2 = vzip_u32(m7, m0); \
- x = vcombine_u32(vrev64_u32(vext_u32(m3, m2, 1)), t2.val[1]); \
- } while(0)
-
-#undef LOAD_MSG_5_4_
-#define LOAD_MSG_5_4_(x) \
- do { \
- t1 = vzip_u32(m6, m2); \
- x = vcombine_u32(t1.val[1], vrev64_u32(vext_u32(m4, m7, 1))); \
- } while(0)
-
-/* Round 6 */
-#undef LOAD_MSG_6_1_
-#define LOAD_MSG_6_1_(x) \
- do { \
- t2 = vzip_u32(m7, m2); \
- x = vcombine_u32(vrev64_u32(vext_u32(m0, m6, 1)), t2.val[0]); \
- } while(0)
-
-#undef LOAD_MSG_6_2_
-#define LOAD_MSG_6_2_(x) \
- do { \
- t1 = vzip_u32(m2, m7); \
- x = vcombine_u32(t1.val[1], vext_u32(m6, m5, 1)); \
- } while(0)
-
-#undef LOAD_MSG_6_3_
-#define LOAD_MSG_6_3_(x) \
- do { \
- t1 = vzip_u32(m0, m3); \
- x = vcombine_u32(t1.val[0], vrev64_u32(m4)); \
- } while(0)
-
-#undef LOAD_MSG_6_4_
-#define LOAD_MSG_6_4_(x) \
- do { \
- t1 = vzip_u32(m3, m1); \
- x = vcombine_u32(t1.val[1], vrev64_u32(vext_u32(m5, m1, 1))); \
- } while(0)
-
-/* Round 7 */
-#undef LOAD_MSG_7_1_
-#define LOAD_MSG_7_1_(x) \
- do { \
- t1 = vzip_u32(m6, m3); \
- x = vcombine_u32(t1.val[1], vrev64_u32(vext_u32(m1, m6, 1))); \
- } while(0)
-
-#undef LOAD_MSG_7_2_
-#define LOAD_MSG_7_2_(x) \
- do { \
- t2 = vzip_u32(m0, m4); \
- x = vcombine_u32(vext_u32(m5, m7, 1), t2.val[1]); \
- } while(0)
-
-#undef LOAD_MSG_7_3_
-#define LOAD_MSG_7_3_(x) \
- do { \
- t1 = vzip_u32(m2, m7); \
- t2 = vzip_u32(m4, m1); \
- x = vcombine_u32(t1.val[1], t2.val[0]); \
- } while(0)
-
-#undef LOAD_MSG_7_4_
-#define LOAD_MSG_7_4_(x) \
- do { \
- t1 = vzip_u32(m0, m2); \
- t2 = vzip_u32(m3, m5); \
- x = vcombine_u32(t1.val[0], t2.val[0]); \
- } while(0)
-
-/* Round 8 */
-#undef LOAD_MSG_8_1_
-#define LOAD_MSG_8_1_(x) \
- do { \
- t1 = vzip_u32(m3, m7); \
- x = vcombine_u32(t1.val[0], vext_u32(m5, m0, 1)); \
- } while(0)
-
-#undef LOAD_MSG_8_2_
-#define LOAD_MSG_8_2_(x) \
- do { \
- t1 = vzip_u32(m7, m4); \
- x = vcombine_u32(t1.val[1], vext_u32(m1, m4, 1)); \
- } while(0)
-
-#undef LOAD_MSG_8_3_
-#define LOAD_MSG_8_3_(x) \
- do { \
- x = vcombine_u32(m6, vext_u32(m0, m5, 1)); \
- } while(0)
-
-#undef LOAD_MSG_8_4_
-#define LOAD_MSG_8_4_(x) \
- do { \
- x = vcombine_u32(vrev64_u32(vext_u32(m3, m1, 1)), m2); \
- } while(0)
-
-/* Round 9 */
-#undef LOAD_MSG_9_1_
-#define LOAD_MSG_9_1_(x) \
- do { \
- t1 = vzip_u32(m5, m4); \
- t2 = vzip_u32(m3, m0); \
- x = vcombine_u32(t1.val[0], t2.val[1]); \
- } while(0)
-
-#undef LOAD_MSG_9_2_
-#define LOAD_MSG_9_2_(x) \
- do { \
- t1 = vzip_u32(m1, m2); \
- x = vcombine_u32(t1.val[0], vrev64_u32(vext_u32(m2, m3, 1))); \
- } while(0)
-
-#undef LOAD_MSG_9_3_
-#define LOAD_MSG_9_3_(x) \
- do { \
- t1 = vzip_u32(m7, m4); \
- t2 = vzip_u32(m1, m6); \
- x = vcombine_u32(t1.val[1], t2.val[1]); \
- } while(0)
-
-#undef LOAD_MSG_9_4_
-#define LOAD_MSG_9_4_(x) \
- do { \
- t2 = vzip_u32(m6, m0); \
- x = vcombine_u32(vext_u32(m5, m7, 1), t2.val[0]); \
- } while(0)
-
-#define vrorq_n_u32_16(x) vreinterpretq_u32_u16( \
- vrev32q_u16( \
- vreinterpretq_u16_u32(x)))
-
-#define vrorq_n_u32_12(x) vorrq_u32( \
- vshrq_n_u32(x, 12), \
- vshlq_n_u32(x, 20));
-
-#define vrorq_n_u32_8(x) vorrq_u32( \
- vshrq_n_u32(x, 8), \
- vshlq_n_u32(x, 24));
-
-#define vrorq_n_u32_7(x) vorrq_u32( \
- vshrq_n_u32(x, 7), \
- vshlq_n_u32(x, 25));
-
-#define DIAGONALIZE(row1, row2, row3, row4) \
- do { \
- /* do nothing to row1 */ \
- row2 = vextq_u32(row2, row2, 1); \
- row3 = vextq_u32(row3, row3, 2); \
- row4 = vextq_u32(row4, row4, 3); \
- } while(0)
-
-#define UNDIAGONALIZE(row1, row2, row3, row4) \
- do { \
- /* do nothing to row1 */ \
- row2 = vextq_u32(row2, row2, 3); \
- row3 = vextq_u32(row3, row3, 2); \
- row4 = vextq_u32(row4, row4, 1); \
- } while(0)
-
-#define G1(r, i, row1, row2, row3, row4) \
- do { \
- LOAD_MSG_##r##_##i##_(e1234); \
- row1 = vaddq_u32(row1, vaddq_u32(row2, e1234)); \
- row4 = vrorq_n_u32_16(veorq_u32(row4, row1)); \
- row3 = vaddq_u32(row3, row4); \
- row2 = vrorq_n_u32_12(veorq_u32(row2, row3)); \
- } while(0)
-
-
-#define G2(r, i, row1, row2, row3, row4) \
- do { \
- LOAD_MSG_##r##_##i##_(e1234); \
- row1 = vaddq_u32(row1, vaddq_u32(row2, e1234)); \
- row4 = vrorq_n_u32_8(veorq_u32(row4, row1)); \
- row3 = vaddq_u32(row3, row4); \
- row2 = vrorq_n_u32_7(veorq_u32(row2, row3)); \
- } while(0)
-
-#define ROUND(r) \
- do { \
- G1(r, 1, row1, row2, row3, row4); \
- G2(r, 2, row1, row2, row3, row4); \
- DIAGONALIZE(row1, row2, row3, row4); \
- G1(r, 3, row1, row2, row3, row4); \
- G2(r, 4, row1, row2, row3, row4); \
- UNDIAGONALIZE(row1, row2, row3, row4); \
- } while(0)
-
-static void blake2s_compress( blake2s_state *S,
- const uint8_t in[BLAKE2S_BLOCKBYTES] )
-{
- uint32x4_t row1, row2, row3, row4, e1234;
- uint32x2x2_t t1, t2;
- const uint32x4_t h1234 = row1 = vld1q_u32(&S->h[0]);
- const uint32x4_t h5678 = row2 = vld1q_u32(&S->h[4]);
-
- const uint32x2_t m0 = vreinterpret_u32_u8(vld1_u8(&in[ 0]));
- const uint32x2_t m1 = vreinterpret_u32_u8(vld1_u8(&in[ 8]));
- const uint32x2_t m2 = vreinterpret_u32_u8(vld1_u8(&in[16]));
- const uint32x2_t m3 = vreinterpret_u32_u8(vld1_u8(&in[24]));
- const uint32x2_t m4 = vreinterpret_u32_u8(vld1_u8(&in[32]));
- const uint32x2_t m5 = vreinterpret_u32_u8(vld1_u8(&in[40]));
- const uint32x2_t m6 = vreinterpret_u32_u8(vld1_u8(&in[48]));
- const uint32x2_t m7 = vreinterpret_u32_u8(vld1_u8(&in[56]));
-
- row3 = vld1q_u32(&blake2s_IV[0]);
-
- row4 = veorq_u32(vcombine_u32(vld1_u32(&S->t[0]), vld1_u32(&S->f[0])),
- vld1q_u32(&blake2s_IV[4]));
-
- ROUND( 0 );
- ROUND( 1 );
- ROUND( 2 );
- ROUND( 3 );
- ROUND( 4 );
- ROUND( 5 );
- ROUND( 6 );
- ROUND( 7 );
- ROUND( 8 );
- ROUND( 9 );
-
- vst1q_u32(&S->h[0], veorq_u32(h1234, veorq_u32(row1, row3)));
- vst1q_u32(&S->h[4], veorq_u32(h5678, veorq_u32(row2, row4)));
-}
-
-#undef G1234
-#undef ROUND
-
-int blake2s_update( blake2s_state *S, const void *pin, size_t inlen )
-{
- const unsigned char * in = (const unsigned char *)pin;
- if( inlen > 0 )
- {
- size_t left = S->buflen;
- size_t fill = BLAKE2S_BLOCKBYTES - left;
- if( inlen > fill )
- {
- S->buflen = 0;
- memcpy( S->buf + left, in, fill ); /* Fill buffer */
- blake2s_increment_counter( S, BLAKE2S_BLOCKBYTES );
- blake2s_compress( S, S->buf ); /* Compress */
- in += fill; inlen -= fill;
- while(inlen > BLAKE2S_BLOCKBYTES) {
- blake2s_increment_counter(S, BLAKE2S_BLOCKBYTES);
- blake2s_compress( S, in );
- in += BLAKE2S_BLOCKBYTES;
- inlen -= BLAKE2S_BLOCKBYTES;
- }
- }
- memcpy( S->buf + S->buflen, in, inlen );
- S->buflen += inlen;
- }
- return 0;
-}
-
-int blake2s_final( blake2s_state *S, void *out, size_t outlen )
-{
- uint8_t buffer[BLAKE2S_OUTBYTES] = {0};
- size_t i;
-
- if( out == NULL || outlen < S->outlen )
- return -1;
-
- if( blake2s_is_lastblock( S ) )
- return -1;
-
- blake2s_increment_counter( S, ( uint32_t )S->buflen );
- blake2s_set_lastblock( S );
- memset( S->buf + S->buflen, 0, BLAKE2S_BLOCKBYTES - S->buflen ); /* Padding */
- blake2s_compress( S, S->buf );
-
- for( i = 0; i < 8; ++i ) /* Output full hash to temp buffer */
- store32( buffer + sizeof( S->h[i] ) * i, S->h[i] );
-
- memcpy( out, buffer, outlen );
- secure_zero_memory(buffer, sizeof(buffer));
- return 0;
-}
-
-int blake2s( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen )
-{
- blake2s_state S[1];
-
- /* Verify parameters */
- if ( NULL == in && inlen > 0 ) return -1;
-
- if ( NULL == out ) return -1;
-
- if ( NULL == key && keylen > 0) return -1;
-
- if( !outlen || outlen > BLAKE2S_OUTBYTES ) return -1;
-
- if( keylen > BLAKE2S_KEYBYTES ) return -1;
-
- if( keylen > 0 )
- {
- if( blake2s_init_key( S, outlen, key, keylen ) < 0 ) return -1;
- }
- else
- {
- if( blake2s_init( S, outlen ) < 0 ) return -1;
- }
-
- blake2s_update( S, ( const uint8_t * )in, inlen );
- blake2s_final( S, out, outlen );
- return 0;
-}
-
-#if defined(SUPERCOP)
-int crypto_hash( unsigned char *out, unsigned char *in, unsigned long long inlen )
-{
- return blake2s( out, BLAKE2S_OUTBYTES, in, inlen, NULL, 0 );
-}
-#endif
-
-#if defined(BLAKE2S_SELFTEST)
-#include
-#include "blake2-kat.h"
-int main( void )
-{
- uint8_t key[BLAKE2S_KEYBYTES];
- uint8_t buf[BLAKE2_KAT_LENGTH];
- size_t i, step;
-
- for( i = 0; i < BLAKE2S_KEYBYTES; ++i )
- key[i] = ( uint8_t )i;
-
- for( i = 0; i < BLAKE2_KAT_LENGTH; ++i )
- buf[i] = ( uint8_t )i;
-
- /* Test simple API */
- for( i = 0; i < BLAKE2_KAT_LENGTH; ++i )
- {
- uint8_t hash[BLAKE2S_OUTBYTES];
- blake2s( hash, BLAKE2S_OUTBYTES, buf, i, key, BLAKE2S_KEYBYTES );
-
- if( 0 != memcmp( hash, blake2s_keyed_kat[i], BLAKE2S_OUTBYTES ) )
- {
- goto fail;
- }
- }
-
- /* Test streaming API */
- for(step = 1; step < BLAKE2S_BLOCKBYTES; ++step) {
- for (i = 0; i < BLAKE2_KAT_LENGTH; ++i) {
- uint8_t hash[BLAKE2S_OUTBYTES];
- blake2s_state S;
- uint8_t * p = buf;
- size_t mlen = i;
- int err = 0;
-
- if( (err = blake2s_init_key(&S, BLAKE2S_OUTBYTES, key, BLAKE2S_KEYBYTES)) < 0 ) {
- goto fail;
- }
-
- while (mlen >= step) {
- if ( (err = blake2s_update(&S, p, step)) < 0 ) {
- goto fail;
- }
- mlen -= step;
- p += step;
- }
- if ( (err = blake2s_update(&S, p, mlen)) < 0) {
- goto fail;
- }
- if ( (err = blake2s_final(&S, hash, BLAKE2S_OUTBYTES)) < 0) {
- goto fail;
- }
-
- if (0 != memcmp(hash, blake2s_keyed_kat[i], BLAKE2S_OUTBYTES)) {
- goto fail;
- }
- }
- }
-
- puts( "ok" );
- return 0;
-fail:
- puts("error");
- return -1;
-}
-#endif
diff --git a/deps/BLAKE2/neon/blake2s-round.h b/deps/BLAKE2/neon/blake2s-round.h
deleted file mode 100644
index b32c3ad..0000000
--- a/deps/BLAKE2/neon/blake2s-round.h
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- BLAKE2 reference source code package - optimized C implementations
-
- Copyright 2012, Samuel Neves . You may use this under the
- terms of the CC0, the OpenSSL Licence, or the Apache Public License 2.0, at
- your option. The terms of these licenses can be found at:
-
- - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0
- - OpenSSL license : https://www.openssl.org/source/license.html
- - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0
-
- More information about the BLAKE2 hash function can be found at
- https://blake2.net.
-*/
-#ifndef BLAKE2S_ROUND_H
-#define BLAKE2S_ROUND_H
-
-#define vrorq_n_u32_16(x) vreinterpretq_u32_u16( \
- vrev32q_u16( \
- vreinterpretq_u16_u32(x)))
-
-#define vrorq_n_u32_12(x) vorrq_u32( \
- vshrq_n_u32(x, 12), \
- vshlq_n_u32(x, 20));
-
-#define vrorq_n_u32_8(x) vorrq_u32( \
- vshrq_n_u32(x, 8), \
- vshlq_n_u32(x, 24));
-
-#define vrorq_n_u32_7(x) vorrq_u32( \
- vshrq_n_u32(x, 7), \
- vshlq_n_u32(x, 25));
-
-#define G1(row1,row2,row3,row4,buf) \
- row1 = vaddq_u32(row1, vaddq_u32(row2, buf)); \
- row4 = vrorq_n_u32_16(veorq_u32(row4, row1)); \
- row3 = vaddq_u32(row3, row4); \
- row2 = vrorq_n_u32_12(veorq_u32(row2, row3));
-
-#define G2(row1, row2, row3, row4,buf) \
- row1 = vaddq_u32(row1, vaddq_u32(row2, buf)); \
- row4 = vrorq_n_u32_8(veorq_u32(row4, row1)); \
- row3 = vaddq_u32(row3, row4); \
- row2 = vrorq_n_u32_7(veorq_u32(row2, row3));
-
-#define DIAGONALIZE(row1,row2,row3,row4) \
- row2 = vextq_u32(row2, row2, 1); \
- row3 = vextq_u32(row3, row3, 2); \
- row4 = vextq_u32(row4, row4, 3);
-
-#define UNDIAGONALIZE(row1,row2,row3,row4) \
- row2 = vextq_u32(row2, row2, 3); \
- row3 = vextq_u32(row3, row3, 2); \
- row4 = vextq_u32(row4, row4, 1);
-
-#include "blake2s-load-neon.h"
-
-#define ROUND(r) \
- LOAD_MSG_ ##r ##_1(buf1); \
- G1(row1, row2, row3, row4, buf1); \
- LOAD_MSG_ ##r ##_2(buf2); \
- G2(row1, row2, row3, row4, buf2); \
- DIAGONALIZE(row1, row2, row3, row4); \
- LOAD_MSG_ ##r ##_3(buf3); \
- G1(row1, row2, row3, row4, buf3); \
- LOAD_MSG_ ##r ##_4(buf4); \
- G2(row1, row2, row3, row4, buf4); \
- UNDIAGONALIZE(row1, row2, row3, row4);
-
-#endif
diff --git a/deps/BLAKE2/neon/blake2s.c b/deps/BLAKE2/neon/blake2s.c
deleted file mode 100644
index 1b52420..0000000
--- a/deps/BLAKE2/neon/blake2s.c
+++ /dev/null
@@ -1,331 +0,0 @@
-/*
- BLAKE2 reference source code package - reference C implementations
-
- Copyright 2012, Samuel Neves . You may use this under the
- terms of the CC0, the OpenSSL Licence, or the Apache Public License 2.0, at
- your option. The terms of these licenses can be found at:
-
- - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0
- - OpenSSL license : https://www.openssl.org/source/license.html
- - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0
-
- More information about the BLAKE2 hash function can be found at
- https://blake2.net.
-*/
-
-#include
-#include
-#include
-#include
-
-#include "blake2.h"
-#include "blake2-impl.h"
-
-#include "blake2s-round.h"
-
-static const uint32_t blake2s_IV[8] =
-{
- 0x6A09E667UL, 0xBB67AE85UL, 0x3C6EF372UL, 0xA54FF53AUL,
- 0x510E527FUL, 0x9B05688CUL, 0x1F83D9ABUL, 0x5BE0CD19UL
-};
-
-static void blake2s_set_lastnode( blake2s_state *S )
-{
- S->f[1] = (uint32_t)-1;
-}
-
-/* Some helper functions, not necessarily useful */
-static int blake2s_is_lastblock( const blake2s_state *S )
-{
- return S->f[0] != 0;
-}
-
-static void blake2s_set_lastblock( blake2s_state *S )
-{
- if( S->last_node ) blake2s_set_lastnode( S );
-
- S->f[0] = (uint32_t)-1;
-}
-
-static void blake2s_increment_counter( blake2s_state *S, const uint32_t inc )
-{
- S->t[0] += inc;
- S->t[1] += ( S->t[0] < inc );
-}
-
-static void blake2s_init0( blake2s_state *S )
-{
- size_t i;
- memset( S, 0, sizeof( blake2s_state ) );
-
- for( i = 0; i < 8; ++i ) S->h[i] = blake2s_IV[i];
-}
-
-/* init2 xors IV with input parameter block */
-int blake2s_init_param( blake2s_state *S, const blake2s_param *P )
-{
- const unsigned char *p = ( const unsigned char * )( P );
- size_t i;
-
- blake2s_init0( S );
-
- /* IV XOR ParamBlock */
- for( i = 0; i < 8; ++i )
- S->h[i] ^= load32( &p[i * 4] );
-
- S->outlen = P->digest_length;
- return 0;
-}
-
-
-/* Sequential blake2s initialization */
-int blake2s_init( blake2s_state *S, size_t outlen )
-{
- blake2s_param P[1];
-
- /* Move interval verification here? */
- if ( ( !outlen ) || ( outlen > BLAKE2S_OUTBYTES ) ) return -1;
-
- P->digest_length = (uint8_t)outlen;
- P->key_length = 0;
- P->fanout = 1;
- P->depth = 1;
- store32( &P->leaf_length, 0 );
- store32( &P->node_offset, 0 );
- store16( &P->xof_length, 0 );
- P->node_depth = 0;
- P->inner_length = 0;
- /* memset(P->reserved, 0, sizeof(P->reserved) ); */
- memset( P->salt, 0, sizeof( P->salt ) );
- memset( P->personal, 0, sizeof( P->personal ) );
- return blake2s_init_param( S, P );
-}
-
-
-int blake2s_init_key( blake2s_state *S, size_t outlen, const void *key, size_t keylen )
-{
- blake2s_param P[1];
-
- if ( ( !outlen ) || ( outlen > BLAKE2S_OUTBYTES ) ) return -1;
-
- if ( !key || !keylen || keylen > BLAKE2S_KEYBYTES ) return -1;
-
- P->digest_length = (uint8_t)outlen;
- P->key_length = (uint8_t)keylen;
- P->fanout = 1;
- P->depth = 1;
- store32( &P->leaf_length, 0 );
- store32( &P->node_offset, 0 );
- store16( &P->xof_length, 0 );
- P->node_depth = 0;
- P->inner_length = 0;
- /* memset(P->reserved, 0, sizeof(P->reserved) ); */
- memset( P->salt, 0, sizeof( P->salt ) );
- memset( P->personal, 0, sizeof( P->personal ) );
-
- if( blake2s_init_param( S, P ) < 0 ) return -1;
-
- {
- uint8_t block[BLAKE2S_BLOCKBYTES];
- memset( block, 0, BLAKE2S_BLOCKBYTES );
- memcpy( block, key, keylen );
- blake2s_update( S, block, BLAKE2S_BLOCKBYTES );
- secure_zero_memory( block, BLAKE2S_BLOCKBYTES ); /* Burn the key from stack */
- }
- return 0;
-}
-
-
-static void blake2s_compress( blake2s_state *S,
- const uint8_t in[BLAKE2S_BLOCKBYTES] )
-{
- uint32x4_t row1, row2, row3, row4;
- uint32x4_t buf1, buf2, buf3, buf4;
- uint32x2x2_t t1, t2;
- const uint32x4_t h1234 = row1 = vld1q_u32(&S->h[0]);
- const uint32x4_t h5678 = row2 = vld1q_u32(&S->h[4]);
-
- const uint32x2_t m0 = vreinterpret_u32_u8(vld1_u8(&in[ 0]));
- const uint32x2_t m1 = vreinterpret_u32_u8(vld1_u8(&in[ 8]));
- const uint32x2_t m2 = vreinterpret_u32_u8(vld1_u8(&in[16]));
- const uint32x2_t m3 = vreinterpret_u32_u8(vld1_u8(&in[24]));
- const uint32x2_t m4 = vreinterpret_u32_u8(vld1_u8(&in[32]));
- const uint32x2_t m5 = vreinterpret_u32_u8(vld1_u8(&in[40]));
- const uint32x2_t m6 = vreinterpret_u32_u8(vld1_u8(&in[48]));
- const uint32x2_t m7 = vreinterpret_u32_u8(vld1_u8(&in[56]));
-
- row3 = vld1q_u32(&blake2s_IV[0]);
-
- row4 = veorq_u32(vcombine_u32(vld1_u32(&S->t[0]), vld1_u32(&S->f[0])),
- vld1q_u32(&blake2s_IV[4]));
-
- ROUND( 0 );
- ROUND( 1 );
- ROUND( 2 );
- ROUND( 3 );
- ROUND( 4 );
- ROUND( 5 );
- ROUND( 6 );
- ROUND( 7 );
- ROUND( 8 );
- ROUND( 9 );
-
- vst1q_u32(&S->h[0], veorq_u32(h1234, veorq_u32(row1, row3)));
- vst1q_u32(&S->h[4], veorq_u32(h5678, veorq_u32(row2, row4)));
-}
-
-
-int blake2s_update( blake2s_state *S, const void *pin, size_t inlen )
-{
- const unsigned char * in = (const unsigned char *)pin;
- if( inlen > 0 )
- {
- size_t left = S->buflen;
- size_t fill = BLAKE2S_BLOCKBYTES - left;
- if( inlen > fill )
- {
- S->buflen = 0;
- memcpy( S->buf + left, in, fill ); /* Fill buffer */
- blake2s_increment_counter( S, BLAKE2S_BLOCKBYTES );
- blake2s_compress( S, S->buf ); /* Compress */
- in += fill; inlen -= fill;
- while(inlen > BLAKE2S_BLOCKBYTES) {
- blake2s_increment_counter(S, BLAKE2S_BLOCKBYTES);
- blake2s_compress( S, in );
- in += BLAKE2S_BLOCKBYTES;
- inlen -= BLAKE2S_BLOCKBYTES;
- }
- }
- memcpy( S->buf + S->buflen, in, inlen );
- S->buflen += inlen;
- }
- return 0;
-}
-
-int blake2s_final( blake2s_state *S, void *out, size_t outlen )
-{
- uint8_t buffer[BLAKE2S_OUTBYTES] = {0};
- size_t i;
-
- if( out == NULL || outlen < S->outlen )
- return -1;
-
- if( blake2s_is_lastblock( S ) )
- return -1;
-
- blake2s_increment_counter( S, ( uint32_t )S->buflen );
- blake2s_set_lastblock( S );
- memset( S->buf + S->buflen, 0, BLAKE2S_BLOCKBYTES - S->buflen ); /* Padding */
- blake2s_compress( S, S->buf );
-
- for( i = 0; i < 8; ++i ) /* Output full hash to temp buffer */
- store32( buffer + sizeof( S->h[i] ) * i, S->h[i] );
-
- memcpy( out, buffer, outlen );
- secure_zero_memory(buffer, sizeof(buffer));
- return 0;
-}
-
-int blake2s( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen )
-{
- blake2s_state S[1];
-
- /* Verify parameters */
- if ( NULL == in && inlen > 0 ) return -1;
-
- if ( NULL == out ) return -1;
-
- if ( NULL == key && keylen > 0) return -1;
-
- if( !outlen || outlen > BLAKE2S_OUTBYTES ) return -1;
-
- if( keylen > BLAKE2S_KEYBYTES ) return -1;
-
- if( keylen > 0 )
- {
- if( blake2s_init_key( S, outlen, key, keylen ) < 0 ) return -1;
- }
- else
- {
- if( blake2s_init( S, outlen ) < 0 ) return -1;
- }
-
- blake2s_update( S, ( const uint8_t * )in, inlen );
- blake2s_final( S, out, outlen );
- return 0;
-}
-
-#if defined(SUPERCOP)
-int crypto_hash( unsigned char *out, unsigned char *in, unsigned long long inlen )
-{
- return blake2s( out, BLAKE2S_OUTBYTES, in, inlen, NULL, 0 );
-}
-#endif
-
-#if defined(BLAKE2S_SELFTEST)
-#include
-#include "blake2-kat.h"
-int main( void )
-{
- uint8_t key[BLAKE2S_KEYBYTES];
- uint8_t buf[BLAKE2_KAT_LENGTH];
- size_t i, step;
-
- for( i = 0; i < BLAKE2S_KEYBYTES; ++i )
- key[i] = ( uint8_t )i;
-
- for( i = 0; i < BLAKE2_KAT_LENGTH; ++i )
- buf[i] = ( uint8_t )i;
-
- /* Test simple API */
- for( i = 0; i < BLAKE2_KAT_LENGTH; ++i )
- {
- uint8_t hash[BLAKE2S_OUTBYTES];
- blake2s( hash, BLAKE2S_OUTBYTES, buf, i, key, BLAKE2S_KEYBYTES );
-
- if( 0 != memcmp( hash, blake2s_keyed_kat[i], BLAKE2S_OUTBYTES ) )
- {
- goto fail;
- }
- }
-
- /* Test streaming API */
- for(step = 1; step < BLAKE2S_BLOCKBYTES; ++step) {
- for (i = 0; i < BLAKE2_KAT_LENGTH; ++i) {
- uint8_t hash[BLAKE2S_OUTBYTES];
- blake2s_state S;
- uint8_t * p = buf;
- size_t mlen = i;
- int err = 0;
-
- if( (err = blake2s_init_key(&S, BLAKE2S_OUTBYTES, key, BLAKE2S_KEYBYTES)) < 0 ) {
- goto fail;
- }
-
- while (mlen >= step) {
- if ( (err = blake2s_update(&S, p, step)) < 0 ) {
- goto fail;
- }
- mlen -= step;
- p += step;
- }
- if ( (err = blake2s_update(&S, p, mlen)) < 0) {
- goto fail;
- }
- if ( (err = blake2s_final(&S, hash, BLAKE2S_OUTBYTES)) < 0) {
- goto fail;
- }
-
- if (0 != memcmp(hash, blake2s_keyed_kat[i], BLAKE2S_OUTBYTES)) {
- goto fail;
- }
- }
- }
-
- puts( "ok" );
- return 0;
-fail:
- puts("error");
- return -1;
-}
-#endif
diff --git a/deps/BLAKE2/neon/blake2sp.c b/deps/BLAKE2/neon/blake2sp.c
deleted file mode 100644
index ed0e1ad..0000000
--- a/deps/BLAKE2/neon/blake2sp.c
+++ /dev/null
@@ -1,358 +0,0 @@
-/*
- BLAKE2 reference source code package - optimized C implementations
-
- Copyright 2012, Samuel Neves . You may use this under the
- terms of the CC0, the OpenSSL Licence, or the Apache Public License 2.0, at
- your option. The terms of these licenses can be found at:
-
- - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0
- - OpenSSL license : https://www.openssl.org/source/license.html
- - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0
-
- More information about the BLAKE2 hash function can be found at
- https://blake2.net.
-*/
-
-#include
-#include
-#include
-
-#if defined(_OPENMP)
-#include
-#endif
-
-#include "blake2.h"
-#include "blake2-impl.h"
-
-#define PARALLELISM_DEGREE 8
-
-/*
- blake2sp_init_param defaults to setting the expecting output length
- from the digest_length parameter block field.
-
- In some cases, however, we do not want this, as the output length
- of these instances is given by inner_length instead.
-*/
-static int blake2sp_init_leaf_param( blake2s_state *S, const blake2s_param *P )
-{
- int err = blake2s_init_param(S, P);
- S->outlen = P->inner_length;
- return err;
-}
-
-static int blake2sp_init_leaf( blake2s_state *S, size_t outlen, size_t keylen, uint64_t offset )
-{
- blake2s_param P[1];
- P->digest_length = (uint8_t)outlen;
- P->key_length = (uint8_t)keylen;
- P->fanout = PARALLELISM_DEGREE;
- P->depth = 2;
- P->leaf_length = 0;
- P->node_offset = offset;
- P->xof_length = 0;
- P->node_depth = 0;
- P->inner_length = BLAKE2S_OUTBYTES;
- memset( P->salt, 0, sizeof( P->salt ) );
- memset( P->personal, 0, sizeof( P->personal ) );
- return blake2sp_init_leaf_param( S, P );
-}
-
-static int blake2sp_init_root( blake2s_state *S, size_t outlen, size_t keylen )
-{
- blake2s_param P[1];
- P->digest_length = (uint8_t)outlen;
- P->key_length = (uint8_t)keylen;
- P->fanout = PARALLELISM_DEGREE;
- P->depth = 2;
- P->leaf_length = 0;
- P->node_offset = 0;
- P->xof_length = 0;
- P->node_depth = 1;
- P->inner_length = BLAKE2S_OUTBYTES;
- memset( P->salt, 0, sizeof( P->salt ) );
- memset( P->personal, 0, sizeof( P->personal ) );
- return blake2s_init_param( S, P );
-}
-
-
-int blake2sp_init( blake2sp_state *S, size_t outlen )
-{
- size_t i;
-
- if( !outlen || outlen > BLAKE2S_OUTBYTES ) return -1;
-
- memset( S->buf, 0, sizeof( S->buf ) );
- S->buflen = 0;
- S->outlen = outlen;
-
- if( blake2sp_init_root( S->R, outlen, 0 ) < 0 )
- return -1;
-
- for( i = 0; i < PARALLELISM_DEGREE; ++i )
- if( blake2sp_init_leaf( S->S[i], outlen, 0, i ) < 0 ) return -1;
-
- S->R->last_node = 1;
- S->S[PARALLELISM_DEGREE - 1]->last_node = 1;
- return 0;
-}
-
-int blake2sp_init_key( blake2sp_state *S, size_t outlen, const void *key, size_t keylen )
-{
- size_t i;
-
- if( !outlen || outlen > BLAKE2S_OUTBYTES ) return -1;
-
- if( !key || !keylen || keylen > BLAKE2S_KEYBYTES ) return -1;
-
- memset( S->buf, 0, sizeof( S->buf ) );
- S->buflen = 0;
- S->outlen = outlen;
-
- if( blake2sp_init_root( S->R, outlen, keylen ) < 0 )
- return -1;
-
- for( i = 0; i < PARALLELISM_DEGREE; ++i )
- if( blake2sp_init_leaf( S->S[i], outlen, keylen, i ) < 0 ) return -1;
-
- S->R->last_node = 1;
- S->S[PARALLELISM_DEGREE - 1]->last_node = 1;
- {
- uint8_t block[BLAKE2S_BLOCKBYTES];
- memset( block, 0, BLAKE2S_BLOCKBYTES );
- memcpy( block, key, keylen );
-
- for( i = 0; i < PARALLELISM_DEGREE; ++i )
- blake2s_update( S->S[i], block, BLAKE2S_BLOCKBYTES );
-
- secure_zero_memory( block, BLAKE2S_BLOCKBYTES ); /* Burn the key from stack */
- }
- return 0;
-}
-
-
-int blake2sp_update( blake2sp_state *S, const void *pin, size_t inlen )
-{
- const unsigned char * in = (const unsigned char *)pin;
- size_t left = S->buflen;
- size_t fill = sizeof( S->buf ) - left;
- size_t i;
-
- if( left && inlen >= fill )
- {
- memcpy( S->buf + left, in, fill );
-
- for( i = 0; i < PARALLELISM_DEGREE; ++i )
- blake2s_update( S->S[i], S->buf + i * BLAKE2S_BLOCKBYTES, BLAKE2S_BLOCKBYTES );
-
- in += fill;
- inlen -= fill;
- left = 0;
- }
-
-#if defined(_OPENMP)
- #pragma omp parallel shared(S), num_threads(PARALLELISM_DEGREE)
-#else
-
- for( i = 0; i < PARALLELISM_DEGREE; ++i )
-#endif
- {
-#if defined(_OPENMP)
- size_t i = omp_get_thread_num();
-#endif
- size_t inlen__ = inlen;
- const unsigned char *in__ = ( const unsigned char * )in;
- in__ += i * BLAKE2S_BLOCKBYTES;
-
- while( inlen__ >= PARALLELISM_DEGREE * BLAKE2S_BLOCKBYTES )
- {
- blake2s_update( S->S[i], in__, BLAKE2S_BLOCKBYTES );
- in__ += PARALLELISM_DEGREE * BLAKE2S_BLOCKBYTES;
- inlen__ -= PARALLELISM_DEGREE * BLAKE2S_BLOCKBYTES;
- }
- }
-
- in += inlen - inlen % ( PARALLELISM_DEGREE * BLAKE2S_BLOCKBYTES );
- inlen %= PARALLELISM_DEGREE * BLAKE2S_BLOCKBYTES;
-
- if( inlen > 0 )
- memcpy( S->buf + left, in, inlen );
-
- S->buflen = left + inlen;
- return 0;
-}
-
-
-int blake2sp_final( blake2sp_state *S, void *out, size_t outlen )
-{
- uint8_t hash[PARALLELISM_DEGREE][BLAKE2S_OUTBYTES];
- size_t i;
-
- if(out == NULL || outlen < S->outlen) {
- return -1;
- }
-
- for( i = 0; i < PARALLELISM_DEGREE; ++i )
- {
- if( S->buflen > i * BLAKE2S_BLOCKBYTES )
- {
- size_t left = S->buflen - i * BLAKE2S_BLOCKBYTES;
-
- if( left > BLAKE2S_BLOCKBYTES ) left = BLAKE2S_BLOCKBYTES;
-
- blake2s_update( S->S[i], S->buf + i * BLAKE2S_BLOCKBYTES, left );
- }
-
- blake2s_final( S->S[i], hash[i], BLAKE2S_OUTBYTES );
- }
-
- for( i = 0; i < PARALLELISM_DEGREE; ++i )
- blake2s_update( S->R, hash[i], BLAKE2S_OUTBYTES );
-
- return blake2s_final( S->R, out, S->outlen );
-}
-
-
-int blake2sp( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen )
-{
- uint8_t hash[PARALLELISM_DEGREE][BLAKE2S_OUTBYTES];
- blake2s_state S[PARALLELISM_DEGREE][1];
- blake2s_state FS[1];
- size_t i;
-
- /* Verify parameters */
- if ( NULL == in && inlen > 0 ) return -1;
-
- if ( NULL == out ) return -1;
-
- if ( NULL == key && keylen > 0) return -1;
-
- if( !outlen || outlen > BLAKE2S_OUTBYTES ) return -1;
-
- if( keylen > BLAKE2S_KEYBYTES ) return -1;
-
- for( i = 0; i < PARALLELISM_DEGREE; ++i )
- if( blake2sp_init_leaf( S[i], outlen, keylen, i ) < 0 ) return -1;
-
- S[PARALLELISM_DEGREE - 1]->last_node = 1; /* mark last node */
-
- if( keylen > 0 )
- {
- uint8_t block[BLAKE2S_BLOCKBYTES];
- memset( block, 0, BLAKE2S_BLOCKBYTES );
- memcpy( block, key, keylen );
-
- for( i = 0; i < PARALLELISM_DEGREE; ++i )
- blake2s_update( S[i], block, BLAKE2S_BLOCKBYTES );
-
- secure_zero_memory( block, BLAKE2S_BLOCKBYTES ); /* Burn the key from stack */
- }
-
-#if defined(_OPENMP)
- #pragma omp parallel shared(S,hash), num_threads(PARALLELISM_DEGREE)
-#else
-
- for( i = 0; i < PARALLELISM_DEGREE; ++i )
-#endif
- {
-#if defined(_OPENMP)
- size_t i = omp_get_thread_num();
-#endif
- size_t inlen__ = inlen;
- const unsigned char *in__ = ( const unsigned char * )in;
- in__ += i * BLAKE2S_BLOCKBYTES;
-
- while( inlen__ >= PARALLELISM_DEGREE * BLAKE2S_BLOCKBYTES )
- {
- blake2s_update( S[i], in__, BLAKE2S_BLOCKBYTES );
- in__ += PARALLELISM_DEGREE * BLAKE2S_BLOCKBYTES;
- inlen__ -= PARALLELISM_DEGREE * BLAKE2S_BLOCKBYTES;
- }
-
- if( inlen__ > i * BLAKE2S_BLOCKBYTES )
- {
- const size_t left = inlen__ - i * BLAKE2S_BLOCKBYTES;
- const size_t len = left <= BLAKE2S_BLOCKBYTES ? left : BLAKE2S_BLOCKBYTES;
- blake2s_update( S[i], in__, len );
- }
-
- blake2s_final( S[i], hash[i], BLAKE2S_OUTBYTES );
- }
-
- if( blake2sp_init_root( FS, outlen, keylen ) < 0 )
- return -1;
-
- FS->last_node = 1;
-
- for( i = 0; i < PARALLELISM_DEGREE; ++i )
- blake2s_update( FS, hash[i], BLAKE2S_OUTBYTES );
-
- return blake2s_final( FS, out, outlen );
-}
-
-#if defined(BLAKE2SP_SELFTEST)
-#include
-#include "blake2-kat.h"
-int main( void )
-{
- uint8_t key[BLAKE2S_KEYBYTES];
- uint8_t buf[BLAKE2_KAT_LENGTH];
- size_t i, step;
-
- for( i = 0; i < BLAKE2S_KEYBYTES; ++i )
- key[i] = ( uint8_t )i;
-
- for( i = 0; i < BLAKE2_KAT_LENGTH; ++i )
- buf[i] = ( uint8_t )i;
-
- /* Test simple API */
- for( i = 0; i < BLAKE2_KAT_LENGTH; ++i )
- {
- uint8_t hash[BLAKE2S_OUTBYTES];
- blake2sp( hash, BLAKE2S_OUTBYTES, buf, i, key, BLAKE2S_KEYBYTES );
-
- if( 0 != memcmp( hash, blake2sp_keyed_kat[i], BLAKE2S_OUTBYTES ) )
- {
- goto fail;
- }
- }
-
- /* Test streaming API */
- for(step = 1; step < BLAKE2S_BLOCKBYTES; ++step) {
- for (i = 0; i < BLAKE2_KAT_LENGTH; ++i) {
- uint8_t hash[BLAKE2S_OUTBYTES];
- blake2sp_state S;
- uint8_t * p = buf;
- size_t mlen = i;
- int err = 0;
-
- if( (err = blake2sp_init_key(&S, BLAKE2S_OUTBYTES, key, BLAKE2S_KEYBYTES)) < 0 ) {
- goto fail;
- }
-
- while (mlen >= step) {
- if ( (err = blake2sp_update(&S, p, step)) < 0 ) {
- goto fail;
- }
- mlen -= step;
- p += step;
- }
- if ( (err = blake2sp_update(&S, p, mlen)) < 0) {
- goto fail;
- }
- if ( (err = blake2sp_final(&S, hash, BLAKE2S_OUTBYTES)) < 0) {
- goto fail;
- }
-
- if (0 != memcmp(hash, blake2sp_keyed_kat[i], BLAKE2S_OUTBYTES)) {
- goto fail;
- }
- }
- }
-
- puts( "ok" );
- return 0;
-fail:
- puts("error");
- return -1;
-}
-#endif
diff --git a/deps/BLAKE2/neon/blake2xb.c b/deps/BLAKE2/neon/blake2xb.c
deleted file mode 100644
index 2da56ae..0000000
--- a/deps/BLAKE2/neon/blake2xb.c
+++ /dev/null
@@ -1,241 +0,0 @@
-/*
- BLAKE2 reference source code package - reference C implementations
-
- Copyright 2016, JP Aumasson .
- Copyright 2016, Samuel Neves .
-
- You may use this under the terms of the CC0, the OpenSSL Licence, or
- the Apache Public License 2.0, at your option. The terms of these
- licenses can be found at:
-
- - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0
- - OpenSSL license : https://www.openssl.org/source/license.html
- - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0
-
- More information about the BLAKE2 hash function can be found at
- https://blake2.net.
-*/
-
-#include
-#include
-#include
-
-#include "blake2.h"
-#include "blake2-impl.h"
-
-int blake2xb_init( blake2xb_state *S, const size_t outlen ) {
- return blake2xb_init_key(S, outlen, NULL, 0);
-}
-
-int blake2xb_init_key( blake2xb_state *S, const size_t outlen, const void *key, size_t keylen)
-{
- if ( outlen == 0 || outlen > 0xFFFFFFFFUL ) {
- return -1;
- }
-
- if (NULL != key && keylen > BLAKE2B_KEYBYTES) {
- return -1;
- }
-
- if (NULL == key && keylen > 0) {
- return -1;
- }
-
- /* Initialize parameter block */
- S->P->digest_length = BLAKE2B_OUTBYTES;
- S->P->key_length = keylen;
- S->P->fanout = 1;
- S->P->depth = 1;
- store32( &S->P->leaf_length, 0 );
- store32( &S->P->node_offset, 0 );
- store32( &S->P->xof_length, outlen );
- S->P->node_depth = 0;
- S->P->inner_length = 0;
- memset( S->P->reserved, 0, sizeof( S->P->reserved ) );
- memset( S->P->salt, 0, sizeof( S->P->salt ) );
- memset( S->P->personal, 0, sizeof( S->P->personal ) );
-
- if( blake2b_init_param( S->S, S->P ) < 0 ) {
- return -1;
- }
-
- if (keylen > 0) {
- uint8_t block[BLAKE2B_BLOCKBYTES];
- memset(block, 0, BLAKE2B_BLOCKBYTES);
- memcpy(block, key, keylen);
- blake2b_update(S->S, block, BLAKE2B_BLOCKBYTES);
- secure_zero_memory(block, BLAKE2B_BLOCKBYTES);
- }
- return 0;
-}
-
-int blake2xb_update( blake2xb_state *S, const void *in, size_t inlen ) {
- return blake2b_update( S->S, in, inlen );
-}
-
-int blake2xb_final( blake2xb_state *S, void *out, size_t outlen) {
-
- blake2b_state C[1];
- blake2b_param P[1];
- uint32_t xof_length = load32(&S->P->xof_length);
- uint8_t root[BLAKE2B_BLOCKBYTES];
- size_t i;
-
- if (NULL == out) {
- return -1;
- }
-
- /* outlen must match the output size defined in xof_length, */
- /* unless it was -1, in which case anything goes except 0. */
- if(xof_length == 0xFFFFFFFFUL) {
- if(outlen == 0) {
- return -1;
- }
- } else {
- if(outlen != xof_length) {
- return -1;
- }
- }
-
- /* Finalize the root hash */
- if (blake2b_final(S->S, root, BLAKE2B_OUTBYTES) < 0) {
- return -1;
- }
-
- /* Set common block structure values */
- /* Copy values from parent instance, and only change the ones below */
- memcpy(P, S->P, sizeof(blake2b_param));
- P->key_length = 0;
- P->fanout = 0;
- P->depth = 0;
- store32(&P->leaf_length, BLAKE2B_OUTBYTES);
- P->inner_length = BLAKE2B_OUTBYTES;
- P->node_depth = 0;
-
- for (i = 0; outlen > 0; ++i) {
- const size_t block_size = (outlen < BLAKE2B_OUTBYTES) ? outlen : BLAKE2B_OUTBYTES;
- /* Initialize state */
- P->digest_length = block_size;
- store32(&P->node_offset, i);
- blake2b_init_param(C, P);
- /* Process key if needed */
- blake2b_update(C, root, BLAKE2B_OUTBYTES);
- if (blake2b_final(C, (uint8_t *)out + i * BLAKE2B_OUTBYTES, block_size) < 0 ) {
- return -1;
- }
- outlen -= block_size;
- }
- secure_zero_memory(root, sizeof(root));
- secure_zero_memory(P, sizeof(P));
- secure_zero_memory(C, sizeof(C));
- /* Put blake2xb in an invalid state? cf. blake2s_is_lastblock */
- return 0;
-
-}
-
-int blake2xb(void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen)
-{
- blake2xb_state S[1];
-
- /* Verify parameters */
- if (NULL == in && inlen > 0)
- return -1;
-
- if (NULL == out)
- return -1;
-
- if (NULL == key && keylen > 0)
- return -1;
-
- if (keylen > BLAKE2B_KEYBYTES)
- return -1;
-
- if (outlen == 0)
- return -1;
-
- /* Initialize the root block structure */
- if (blake2xb_init_key(S, outlen, key, keylen) < 0) {
- return -1;
- }
-
- /* Absorb the input message */
- blake2xb_update(S, in, inlen);
-
- /* Compute the root node of the tree and the final hash using the counter construction */
- return blake2xb_final(S, out, outlen);
-}
-
-#if defined(BLAKE2XB_SELFTEST)
-#include
-#include "blake2-kat.h"
-int main( void )
-{
- uint8_t key[BLAKE2B_KEYBYTES];
- uint8_t buf[BLAKE2_KAT_LENGTH];
- size_t i, step, outlen;
-
- for( i = 0; i < BLAKE2B_KEYBYTES; ++i ) {
- key[i] = ( uint8_t )i;
- }
-
- for( i = 0; i < BLAKE2_KAT_LENGTH; ++i ) {
- buf[i] = ( uint8_t )i;
- }
-
- /* Testing length of ouputs rather than inputs */
- /* (Test of input lengths mostly covered by blake2s tests) */
-
- /* Test simple API */
- for( outlen = 1; outlen <= BLAKE2_KAT_LENGTH; ++outlen )
- {
- uint8_t hash[BLAKE2_KAT_LENGTH] = {0};
- if( blake2xb( hash, outlen, buf, BLAKE2_KAT_LENGTH, key, BLAKE2B_KEYBYTES ) < 0 ) {
- goto fail;
- }
-
- if( 0 != memcmp( hash, blake2xb_keyed_kat[outlen-1], outlen ) )
- {
- goto fail;
- }
- }
-
- /* Test streaming API */
- for(step = 1; step < BLAKE2B_BLOCKBYTES; ++step) {
- for (outlen = 1; outlen <= BLAKE2_KAT_LENGTH; ++outlen) {
- uint8_t hash[BLAKE2_KAT_LENGTH];
- blake2xb_state S;
- uint8_t * p = buf;
- size_t mlen = BLAKE2_KAT_LENGTH;
- int err = 0;
-
- if( (err = blake2xb_init_key(&S, outlen, key, BLAKE2B_KEYBYTES)) < 0 ) {
- goto fail;
- }
-
- while (mlen >= step) {
- if ( (err = blake2xb_update(&S, p, step)) < 0 ) {
- goto fail;
- }
- mlen -= step;
- p += step;
- }
- if ( (err = blake2xb_update(&S, p, mlen)) < 0) {
- goto fail;
- }
- if ( (err = blake2xb_final(&S, hash, outlen)) < 0) {
- goto fail;
- }
-
- if (0 != memcmp(hash, blake2xb_keyed_kat[outlen-1], outlen)) {
- goto fail;
- }
- }
- }
-
- puts( "ok" );
- return 0;
-fail:
- puts("error");
- return -1;
-}
-#endif
diff --git a/deps/BLAKE2/neon/blake2xs.c b/deps/BLAKE2/neon/blake2xs.c
deleted file mode 100644
index 625693e..0000000
--- a/deps/BLAKE2/neon/blake2xs.c
+++ /dev/null
@@ -1,239 +0,0 @@
-/*
- BLAKE2 reference source code package - reference C implementations
-
- Copyright 2016, JP Aumasson .
- Copyright 2016, Samuel Neves .
-
- You may use this under the terms of the CC0, the OpenSSL Licence, or
- the Apache Public License 2.0, at your option. The terms of these
- licenses can be found at:
-
- - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0
- - OpenSSL license : https://www.openssl.org/source/license.html
- - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0
-
- More information about the BLAKE2 hash function can be found at
- https://blake2.net.
-*/
-
-#include
-#include
-#include
-
-#include "blake2.h"
-#include "blake2-impl.h"
-
-int blake2xs_init( blake2xs_state *S, const size_t outlen ) {
- return blake2xs_init_key(S, outlen, NULL, 0);
-}
-
-int blake2xs_init_key( blake2xs_state *S, const size_t outlen, const void *key, size_t keylen )
-{
- if ( outlen == 0 || outlen > 0xFFFFUL ) {
- return -1;
- }
-
- if (NULL != key && keylen > BLAKE2B_KEYBYTES) {
- return -1;
- }
-
- if (NULL == key && keylen > 0) {
- return -1;
- }
-
- /* Initialize parameter block */
- S->P->digest_length = BLAKE2S_OUTBYTES;
- S->P->key_length = keylen;
- S->P->fanout = 1;
- S->P->depth = 1;
- store32( &S->P->leaf_length, 0 );
- store32( &S->P->node_offset, 0 );
- store16( &S->P->xof_length, outlen );
- S->P->node_depth = 0;
- S->P->inner_length = 0;
- memset( S->P->salt, 0, sizeof( S->P->salt ) );
- memset( S->P->personal, 0, sizeof( S->P->personal ) );
-
- if( blake2s_init_param( S->S, S->P ) < 0 ) {
- return -1;
- }
-
- if (keylen > 0) {
- uint8_t block[BLAKE2S_BLOCKBYTES];
- memset(block, 0, BLAKE2S_BLOCKBYTES);
- memcpy(block, key, keylen);
- blake2s_update(S->S, block, BLAKE2S_BLOCKBYTES);
- secure_zero_memory(block, BLAKE2S_BLOCKBYTES);
- }
- return 0;
-}
-
-int blake2xs_update( blake2xs_state *S, const void *in, size_t inlen ) {
- return blake2s_update( S->S, in, inlen );
-}
-
-int blake2xs_final(blake2xs_state *S, void *out, size_t outlen) {
-
- blake2s_state C[1];
- blake2s_param P[1];
- uint16_t xof_length = load16(&S->P->xof_length);
- uint8_t root[BLAKE2S_BLOCKBYTES];
- size_t i;
-
- if (NULL == out) {
- return -1;
- }
-
- /* outlen must match the output size defined in xof_length, */
- /* unless it was -1, in which case anything goes except 0. */
- if(xof_length == 0xFFFFUL) {
- if(outlen == 0) {
- return -1;
- }
- } else {
- if(outlen != xof_length) {
- return -1;
- }
- }
-
- /* Finalize the root hash */
- if (blake2s_final(S->S, root, BLAKE2S_OUTBYTES) < 0) {
- return -1;
- }
-
- /* Set common block structure values */
- /* Copy values from parent instance, and only change the ones below */
- memcpy(P, S->P, sizeof(blake2s_param));
- P->key_length = 0;
- P->fanout = 0;
- P->depth = 0;
- store32(&P->leaf_length, BLAKE2S_OUTBYTES);
- P->inner_length = BLAKE2S_OUTBYTES;
- P->node_depth = 0;
-
- for (i = 0; outlen > 0; ++i) {
- const size_t block_size = (outlen < BLAKE2S_OUTBYTES) ? outlen : BLAKE2S_OUTBYTES;
- /* Initialize state */
- P->digest_length = block_size;
- store32(&P->node_offset, i);
- blake2s_init_param(C, P);
- /* Process key if needed */
- blake2s_update(C, root, BLAKE2S_OUTBYTES);
- if (blake2s_final(C, (uint8_t *)out + i * BLAKE2S_OUTBYTES, block_size) < 0) {
- return -1;
- }
- outlen -= block_size;
- }
- secure_zero_memory(root, sizeof(root));
- secure_zero_memory(P, sizeof(P));
- secure_zero_memory(C, sizeof(C));
- /* Put blake2xs in an invalid state? cf. blake2s_is_lastblock */
- return 0;
-}
-
-int blake2xs(void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen)
-{
- blake2xs_state S[1];
-
- /* Verify parameters */
- if (NULL == in && inlen > 0)
- return -1;
-
- if (NULL == out)
- return -1;
-
- if (NULL == key && keylen > 0)
- return -1;
-
- if (keylen > BLAKE2S_KEYBYTES)
- return -1;
-
- if (outlen == 0)
- return -1;
-
- /* Initialize the root block structure */
- if (blake2xs_init_key(S, outlen, key, keylen) < 0) {
- return -1;
- }
-
- /* Absorb the input message */
- blake2xs_update(S, in, inlen);
-
- /* Compute the root node of the tree and the final hash using the counter construction */
- return blake2xs_final(S, out, outlen);
-}
-
-#if defined(BLAKE2XS_SELFTEST)
-#include
-#include "blake2-kat.h"
-int main( void )
-{
- uint8_t key[BLAKE2S_KEYBYTES];
- uint8_t buf[BLAKE2_KAT_LENGTH];
- size_t i, step, outlen;
-
- for( i = 0; i < BLAKE2S_KEYBYTES; ++i ) {
- key[i] = ( uint8_t )i;
- }
-
- for( i = 0; i < BLAKE2_KAT_LENGTH; ++i ) {
- buf[i] = ( uint8_t )i;
- }
-
- /* Testing length of ouputs rather than inputs */
- /* (Test of input lengths mostly covered by blake2s tests) */
-
- /* Test simple API */
- for( outlen = 1; outlen <= BLAKE2_KAT_LENGTH; ++outlen )
- {
- uint8_t hash[BLAKE2_KAT_LENGTH] = {0};
- if( blake2xs( hash, outlen, buf, BLAKE2_KAT_LENGTH, key, BLAKE2S_KEYBYTES ) < 0 ) {
- goto fail;
- }
-
- if( 0 != memcmp( hash, blake2xs_keyed_kat[outlen-1], outlen ) )
- {
- goto fail;
- }
- }
-
- /* Test streaming API */
- for(step = 1; step < BLAKE2S_BLOCKBYTES; ++step) {
- for (outlen = 1; outlen <= BLAKE2_KAT_LENGTH; ++outlen) {
- uint8_t hash[BLAKE2_KAT_LENGTH];
- blake2xs_state S;
- uint8_t * p = buf;
- size_t mlen = BLAKE2_KAT_LENGTH;
- int err = 0;
-
- if( (err = blake2xs_init_key(&S, outlen, key, BLAKE2S_KEYBYTES)) < 0 ) {
- goto fail;
- }
-
- while (mlen >= step) {
- if ( (err = blake2xs_update(&S, p, step)) < 0 ) {
- goto fail;
- }
- mlen -= step;
- p += step;
- }
- if ( (err = blake2xs_update(&S, p, mlen)) < 0) {
- goto fail;
- }
- if ( (err = blake2xs_final(&S, hash, outlen)) < 0) {
- goto fail;
- }
-
- if (0 != memcmp(hash, blake2xs_keyed_kat[outlen-1], outlen)) {
- goto fail;
- }
- }
- }
-
- puts( "ok" );
- return 0;
-fail:
- puts("error");
- return -1;
-}
-#endif
diff --git a/deps/BLAKE2/neon/genkat-c.c b/deps/BLAKE2/neon/genkat-c.c
deleted file mode 100644
index 58a48fd..0000000
--- a/deps/BLAKE2/neon/genkat-c.c
+++ /dev/null
@@ -1,139 +0,0 @@
-/*
- BLAKE2 reference source code package - reference C implementations
-
- Copyright 2012, Samuel Neves . You may use this under the
- terms of the CC0, the OpenSSL Licence, or the Apache Public License 2.0, at
- your option. The terms of these licenses can be found at:
-
- - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0
- - OpenSSL license : https://www.openssl.org/source/license.html
- - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0
-
- More information about the BLAKE2 hash function can be found at
- https://blake2.net.
-*/
-
-#include
-#include
-#include
-#include
-
-#include "blake2.h"
-
-#define STR_(x) #x
-#define STR(x) STR_(x)
-
-#define LENGTH 256
-
-#define MAKE_KAT(name, size_prefix) \
- do { \
- printf("static const uint8_t " #name "_kat[BLAKE2_KAT_LENGTH][" #size_prefix \
- "_OUTBYTES] = \n{\n"); \
- \
- for (i = 0; i < LENGTH; ++i) { \
- name(hash, size_prefix##_OUTBYTES, in, i, NULL, 0); \
- printf("\t{\n\t\t"); \
- \
- for (j = 0; j < size_prefix##_OUTBYTES; ++j) \
- printf("0x%02X%s", hash[j], \
- (j + 1) == size_prefix##_OUTBYTES ? "\n" : j && !((j + 1) % 8) ? ",\n\t\t" : ", "); \
- \
- printf("\t},\n"); \
- } \
- \
- printf("};\n\n\n\n\n"); \
- } while (0)
-
-#define MAKE_KEYED_KAT(name, size_prefix) \
- do { \
- printf("static const uint8_t " #name "_keyed_kat[BLAKE2_KAT_LENGTH][" #size_prefix \
- "_OUTBYTES] = \n{\n"); \
- \
- for (i = 0; i < LENGTH; ++i) { \
- name(hash, size_prefix##_OUTBYTES, in, i, key, size_prefix##_KEYBYTES); \
- printf("\t{\n\t\t"); \
- \
- for (j = 0; j < size_prefix##_OUTBYTES; ++j) \
- printf("0x%02X%s", hash[j], \
- (j + 1) == size_prefix##_OUTBYTES ? "\n" : j && !((j + 1) % 8) ? ",\n\t\t" : ", "); \
- \
- printf("\t},\n"); \
- } \
- \
- printf("};\n\n\n\n\n"); \
- } while (0)
-
-#define MAKE_XOF_KAT(name) \
- do { \
- printf("static const uint8_t " #name "_kat[BLAKE2_KAT_LENGTH][BLAKE2_KAT_LENGTH] = \n{\n"); \
- \
- for (i = 1; i <= LENGTH; ++i) { \
- name(hash, i, in, LENGTH, NULL, 0); \
- printf("\t{\n\t\t"); \
- \
- for (j = 0; j < i; ++j) \
- printf("0x%02X%s", hash[j], \
- (j + 1) == LENGTH ? "\n" : j && !((j + 1) % 8) ? ",\n\t\t" : ", "); \
- \
- for (j = i; j < LENGTH; ++j) \
- printf("0x00%s", (j + 1) == LENGTH ? "\n" : j && !((j + 1) % 8) ? ",\n\t\t" : ", "); \
- \
- printf("\t},\n"); \
- } \
- \
- printf("};\n\n\n\n\n"); \
- } while (0)
-
-#define MAKE_XOF_KEYED_KAT(name, size_prefix) \
- do { \
- printf("static const uint8_t " #name \
- "_keyed_kat[BLAKE2_KAT_LENGTH][BLAKE2_KAT_LENGTH] = \n{\n"); \
- \
- for (i = 1; i <= LENGTH; ++i) { \
- name(hash, i, in, LENGTH, key, size_prefix##_KEYBYTES); \
- printf("\t{\n\t\t"); \
- \
- for (j = 0; j < i; ++j) \
- printf("0x%02X%s", hash[j], \
- (j + 1) == LENGTH ? "\n" : j && !((j + 1) % 8) ? ",\n\t\t" : ", "); \
- \
- for (j = i; j < LENGTH; ++j) \
- printf("0x00%s", (j + 1) == LENGTH ? "\n" : j && !((j + 1) % 8) ? ",\n\t\t" : ", "); \
- \
- printf("\t},\n"); \
- } \
- \
- printf("};\n\n\n\n\n"); \
- } while (0)
-
-int main() {
- uint8_t key[64] = {0};
- uint8_t in[LENGTH] = {0};
- uint8_t hash[LENGTH] = {0};
- size_t i, j;
-
- for (i = 0; i < sizeof(in); ++i)
- in[i] = i;
-
- for (i = 0; i < sizeof(key); ++i)
- key[i] = i;
-
- puts("#ifndef BLAKE2_KAT_H\n"
- "#define BLAKE2_KAT_H\n\n\n"
- "#include \n\n"
- "#define BLAKE2_KAT_LENGTH " STR(LENGTH) "\n\n\n");
- MAKE_KAT(blake2s, BLAKE2S);
- MAKE_KEYED_KAT(blake2s, BLAKE2S);
- MAKE_KAT(blake2b, BLAKE2B);
- MAKE_KEYED_KAT(blake2b, BLAKE2B);
- MAKE_KAT(blake2sp, BLAKE2S);
- MAKE_KEYED_KAT(blake2sp, BLAKE2S);
- MAKE_KAT(blake2bp, BLAKE2B);
- MAKE_KEYED_KAT(blake2bp, BLAKE2B);
- MAKE_XOF_KAT(blake2xs);
- MAKE_XOF_KEYED_KAT(blake2xs, BLAKE2S);
- MAKE_XOF_KAT(blake2xb);
- MAKE_XOF_KEYED_KAT(blake2xb, BLAKE2B);
- puts("#endif");
- return 0;
-}
diff --git a/deps/BLAKE2/neon/genkat-json.c b/deps/BLAKE2/neon/genkat-json.c
deleted file mode 100644
index 0275fb5..0000000
--- a/deps/BLAKE2/neon/genkat-json.c
+++ /dev/null
@@ -1,154 +0,0 @@
-/*
- BLAKE2 reference source code package - reference C implementations
-
- Copyright 2012, Samuel Neves . You may use this under the
- terms of the CC0, the OpenSSL Licence, or the Apache Public License 2.0, at
- your option. The terms of these licenses can be found at:
-
- - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0
- - OpenSSL license : https://www.openssl.org/source/license.html
- - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0
-
- More information about the BLAKE2 hash function can be found at
- https://blake2.net.
-*/
-
-#include
-#include
-#include
-#include
-
-#include "blake2.h"
-
-#define STR_(x) #x
-#define STR(x) STR_(x)
-
-#define LENGTH 256
-
-#define MAKE_KAT(name, size_prefix, first) \
- do { \
- for (i = 0; i < LENGTH; ++i) { \
- printf("%s\n{\n", i == 0 && first ? "" : ","); \
- \
- printf(" \"hash\": \"" #name "\",\n"); \
- printf(" \"in\": \""); \
- for (j = 0; j < i; ++j) \
- printf("%02x", in[j]); \
- \
- printf("\",\n"); \
- printf(" \"key\": \"\",\n"); \
- printf(" \"out\": \""); \
- \
- name(hash, size_prefix##_OUTBYTES, in, i, NULL, 0); \
- \
- for (j = 0; j < size_prefix##_OUTBYTES; ++j) \
- printf("%02x", hash[j]); \
- printf("\"\n"); \
- printf("}"); \
- } \
- } while (0)
-
-#define MAKE_KEYED_KAT(name, size_prefix, first) \
- do { \
- for (i = 0; i < LENGTH; ++i) { \
- printf("%s\n{\n", i == 0 && first ? "" : ","); \
- \
- printf(" \"hash\": \"" #name "\",\n"); \
- printf(" \"in\": \""); \
- for (j = 0; j < i; ++j) \
- printf("%02x", in[j]); \
- \
- printf("\",\n"); \
- printf(" \"key\": \""); \
- for (j = 0; j < size_prefix##_KEYBYTES; ++j) \
- printf("%02x", key[j]); \
- printf("\",\n"); \
- printf(" \"out\": \""); \
- \
- name(hash, size_prefix##_OUTBYTES, in, i, key, size_prefix##_KEYBYTES); \
- \
- for (j = 0; j < size_prefix##_OUTBYTES; ++j) \
- printf("%02x", hash[j]); \
- printf("\"\n"); \
- printf("}"); \
- } \
- } while (0)
-
-#define MAKE_XOF_KAT(name, first) \
- do { \
- for (i = 1; i <= LENGTH; ++i) { \
- printf("%s\n{\n", i == 1 && first ? "" : ","); \
- \
- printf(" \"hash\": \"" #name "\",\n"); \
- printf(" \"in\": \""); \
- for (j = 0; j < LENGTH; ++j) \
- printf("%02x", in[j]); \
- \
- printf("\",\n"); \
- printf(" \"key\": \"\",\n"); \
- printf(" \"out\": \""); \
- \
- name(hash, i, in, LENGTH, NULL, 0); \
- \
- for (j = 0; j < i; ++j) \
- printf("%02x", hash[j]); \
- printf("\"\n"); \
- printf("}"); \
- } \
- } while (0)
-
-#define MAKE_XOF_KEYED_KAT(name, size_prefix, first) \
- do { \
- for (i = 1; i <= LENGTH; ++i) { \
- printf("%s\n{\n", i == 1 && first ? "" : ","); \
- \
- printf(" \"hash\": \"" #name "\",\n"); \
- printf(" \"in\": \""); \
- for (j = 0; j < LENGTH; ++j) \
- printf("%02x", in[j]); \
- \
- printf("\",\n"); \
- printf(" \"key\": \""); \
- for (j = 0; j < size_prefix##_KEYBYTES; ++j) \
- printf("%02x", key[j]); \
- printf("\",\n"); \
- printf(" \"out\": \""); \
- \
- name(hash, i, in, LENGTH, key, size_prefix##_KEYBYTES); \
- \
- for (j = 0; j < i; ++j) \
- printf("%02x", hash[j]); \
- printf("\"\n"); \
- printf("}"); \
- } \
- } while (0)
-
-int main() {
- uint8_t key[64] = {0};
- uint8_t in[LENGTH] = {0};
- uint8_t hash[LENGTH] = {0};
- size_t i, j;
-
- for (i = 0; i < sizeof(in); ++i)
- in[i] = i;
-
- for (i = 0; i < sizeof(key); ++i)
- key[i] = i;
-
- printf("[");
- MAKE_KAT(blake2s, BLAKE2S, 1);
- MAKE_KEYED_KAT(blake2s, BLAKE2S, 0);
- MAKE_KAT(blake2b, BLAKE2B, 0);
- MAKE_KEYED_KAT(blake2b, BLAKE2B, 0);
- MAKE_KAT(blake2sp, BLAKE2S, 0);
- MAKE_KEYED_KAT(blake2sp, BLAKE2S, 0);
- MAKE_KAT(blake2bp, BLAKE2B, 0);
- MAKE_KEYED_KAT(blake2bp, BLAKE2B, 0);
- MAKE_XOF_KAT(blake2xs, 0);
- MAKE_XOF_KEYED_KAT(blake2xs, BLAKE2S, 0);
- MAKE_XOF_KAT(blake2xb, 0);
- MAKE_XOF_KEYED_KAT(blake2xb, BLAKE2B, 0);
- printf("\n]\n");
- fflush(stdout);
- return 0;
-}
diff --git a/deps/BLAKE2/neon/makefile b/deps/BLAKE2/neon/makefile
deleted file mode 100644
index de5c259..0000000
--- a/deps/BLAKE2/neon/makefile
+++ /dev/null
@@ -1,40 +0,0 @@
-CC=gcc
-CFLAGS=-march=armv7-a -mfpu=neon-vfpv4 -mfloat-abi=hard -O3 -I../testvectors -Wall -Wextra -std=c89 -pedantic -Wno-long-long
-BLAKEBINS=blake2s blake2b blake2sp blake2bp blake2xs blake2xb
-
-all: $(BLAKEBINS) check
-
-blake2s: blake2s.c blake2s-round.h blake2s-load-neon.h
- $(CC) blake2s.c -o $@ $(CFLAGS) -DBLAKE2S_SELFTEST
-
-blake2b: blake2b.c blake2b-round.h blake2b-load-neon.h
- $(CC) blake2b.c -o $@ $(CFLAGS) -DBLAKE2B_SELFTEST
-
-blake2sp: blake2sp.c blake2s.c blake2s-round.h blake2s-load-neon.h
- $(CC) blake2sp.c blake2s.c -o $@ $(CFLAGS) -fopenmp -DBLAKE2SP_SELFTEST
-
-blake2bp: blake2bp.c blake2b.c blake2b-round.h blake2b-load-neon.h
- $(CC) blake2bp.c blake2b.c -o $@ $(CFLAGS) -fopenmp -DBLAKE2BP_SELFTEST
-
-blake2xs: blake2xs.c blake2s.c blake2s-round.h blake2s-load-neon.h
- $(CC) blake2xs.c blake2s.c -o $@ $(CFLAGS) -DBLAKE2XS_SELFTEST
-
-blake2xb: blake2xb.c blake2b.c blake2b-round.h blake2b-load-neon.h
- $(CC) blake2xb.c blake2b.c -o $@ $(CFLAGS) -DBLAKE2XB_SELFTEST
-
-check: blake2s blake2b blake2sp blake2bp blake2xs blake2xb
- ./blake2s
- ./blake2b
- ./blake2sp
- ./blake2bp
- ./blake2xs
- ./blake2xb
-
-kat:
- $(CC) $(CFLAGS) -o genkat-c genkat-c.c blake2b.c blake2s.c blake2sp.c blake2bp.c blake2xs.c blake2xb.c
- $(CC) $(CFLAGS) -o genkat-json genkat-json.c blake2b.c blake2s.c blake2sp.c blake2bp.c blake2xs.c blake2xb.c
- ./genkat-c > blake2-kat.h
- ./genkat-json > blake2-kat.json
-
-clean:
- rm -rf *.o genkat-c genkat-json blake2-kat.h blake2-kat.json $(BLAKEBINS)
diff --git a/deps/BLAKE2/neon/makefile-aarch64 b/deps/BLAKE2/neon/makefile-aarch64
deleted file mode 100644
index c12b4f1..0000000
--- a/deps/BLAKE2/neon/makefile-aarch64
+++ /dev/null
@@ -1,40 +0,0 @@
-CC=gcc
-CFLAGS=-march=armv8-a -O3 -I../testvectors -Wall -Wextra -std=c89 -pedantic -Wno-long-long
-BLAKEBINS=blake2s blake2b blake2sp blake2bp blake2xs blake2xb
-
-all: $(BLAKEBINS) check
-
-blake2s: blake2s.c blake2s-round.h blake2s-load-neon.h
- $(CC) blake2s.c -o $@ $(CFLAGS) -DBLAKE2S_SELFTEST
-
-blake2b: blake2b.c blake2b-round.h blake2b-load-neon.h
- $(CC) blake2b.c -o $@ $(CFLAGS) -DBLAKE2B_SELFTEST
-
-blake2sp: blake2sp.c blake2s.c blake2s-round.h blake2s-load-neon.h
- $(CC) blake2sp.c blake2s.c -o $@ $(CFLAGS) -fopenmp -DBLAKE2SP_SELFTEST
-
-blake2bp: blake2bp.c blake2b.c blake2b-round.h blake2b-load-neon.h
- $(CC) blake2bp.c blake2b.c -o $@ $(CFLAGS) -fopenmp -DBLAKE2BP_SELFTEST
-
-blake2xs: blake2xs.c blake2s.c blake2s-round.h blake2s-load-neon.h
- $(CC) blake2xs.c blake2s.c -o $@ $(CFLAGS) -DBLAKE2XS_SELFTEST
-
-blake2xb: blake2xb.c blake2b.c blake2b-round.h blake2b-load-neon.h
- $(CC) blake2xb.c blake2b.c -o $@ $(CFLAGS) -DBLAKE2XB_SELFTEST
-
-check: blake2s blake2b blake2sp blake2bp blake2xs blake2xb
- ./blake2s
- ./blake2b
- ./blake2sp
- ./blake2bp
- ./blake2xs
- ./blake2xb
-
-kat:
- $(CC) $(CFLAGS) -o genkat-c genkat-c.c blake2b.c blake2s.c blake2sp.c blake2bp.c blake2xs.c blake2xb.c
- $(CC) $(CFLAGS) -o genkat-json genkat-json.c blake2b.c blake2s.c blake2sp.c blake2bp.c blake2xs.c blake2xb.c
- ./genkat-c > blake2-kat.h
- ./genkat-json > blake2-kat.json
-
-clean:
- rm -rf *.o genkat-c genkat-json blake2-kat.h blake2-kat.json $(BLAKEBINS)
diff --git a/deps/BLAKE2/power8/blake2-config.h b/deps/BLAKE2/power8/blake2-config.h
deleted file mode 100644
index 7fe3a65..0000000
--- a/deps/BLAKE2/power8/blake2-config.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- BLAKE2 reference source code package - optimized C implementations
-
- Copyright 2012, Samuel Neves . You may use this under the
- terms of the CC0, the OpenSSL Licence, or the Apache Public License 2.0, at
- your option. The terms of these licenses can be found at:
-
- - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0
- - OpenSSL license : https://www.openssl.org/source/license.html
- - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0
-
- More information about the BLAKE2 hash function can be found at
- https://blake2.net.
-*/
-#ifndef BLAKE2_CONFIG_H
-#define BLAKE2_CONFIG_H
-
-#if !defined(__ALTIVEC__)
-# error "This code requires at least Altivec."
-#endif
-
-#if !defined(_ARCH_PWR8)
-# error "This code requires at least POWER8."
-#endif
-
-/* https://gcc.gnu.org/onlinedocs/cpp/Common-Predefined-Macros.html */
-
-#if (defined(__GNUC__) && (__BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__)) || \
- ((defined(__xlc__) || defined(__xlC__)) && defined(__LITTLE_ENDIAN__))
-# define NATIVE_LITTLE_ENDIAN 1
-#endif
-
-#if (defined(__GNUC__) && (__BYTE_ORDER__ == __ORDER_BIG_ENDIAN__)) || \
- ((defined(__xlc__) || defined(__xlC__)) && defined(__BIG_ENDIAN__))
-# define NATIVE_BIG_ENDIAN 1
-#endif
-
-#endif
diff --git a/deps/BLAKE2/power8/blake2-impl.h b/deps/BLAKE2/power8/blake2-impl.h
deleted file mode 100644
index 75b16b5..0000000
--- a/deps/BLAKE2/power8/blake2-impl.h
+++ /dev/null
@@ -1,244 +0,0 @@
-/*
- BLAKE2 reference source code package - reference C implementations
-
- Copyright 2012, Samuel Neves . You may use this under the
- terms of the CC0, the OpenSSL Licence, or the Apache Public License 2.0, at
- your option. The terms of these licenses can be found at:
-
- - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0
- - OpenSSL license : https://www.openssl.org/source/license.html
- - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0
-
- More information about the BLAKE2 hash function can be found at
- https://blake2.net.
-*/
-#ifndef BLAKE2_IMPL_H
-#define BLAKE2_IMPL_H
-
-#include
-#include
-#include
-
-#include "blake2-config.h"
-
-#if !defined(__cplusplus) && (!defined(__STDC_VERSION__) || __STDC_VERSION__ < 199901L)
- #if defined(__GNUC__)
- #define BLAKE2_INLINE __inline__
- #else
- #define BLAKE2_INLINE
- #endif
-#else
- #define BLAKE2_INLINE inline
-#endif
-
-#if defined(__ALTIVEC__)
-# include
-# undef vector
-# undef pixel
-# undef bool
-#endif
-
-/* The PowerPC ABI says loads are non-const. Ugh... */
-#ifndef CONST_V8_CAST
-#define CONST_V8_CAST(x) ((unsigned char*)(x))
-#endif
-#ifndef CONST_V32_CAST
-#define CONST_V32_CAST(x) ((unsigned int*)(x))
-#endif
-#ifndef NCONST_V8_CAST
-#define NCONST_V8_CAST(x) ((unsigned char*)(x))
-#endif
-#ifndef NCONST_V32_CAST
-#define NCONST_V32_CAST(x) ((unsigned int*)(x))
-#endif
-
-#ifndef BLAKE2_UNUSED
-#define BLAKE2_UNUSED(x) ((void)(x))
-#endif
-
-#if defined(__ALTIVEC__)
-typedef __vector unsigned char uint8x16_p;
-typedef __vector unsigned int uint32x4_p;
-#if defined(__VSX__) || defined(_ARCH_PWR8)
-typedef __vector unsigned long long uint64x2_p;
-#endif
-#endif
-
-static BLAKE2_INLINE uint32_t load32( const void *src )
-{
-#if defined(NATIVE_LITTLE_ENDIAN)
- uint32_t w;
- memcpy(&w, src, sizeof w);
- return w;
-#else
- const uint8_t *p = ( const uint8_t * )src;
- return (( uint32_t )( p[0] ) << 0) |
- (( uint32_t )( p[1] ) << 8) |
- (( uint32_t )( p[2] ) << 16) |
- (( uint32_t )( p[3] ) << 24) ;
-#endif
-}
-
-static BLAKE2_INLINE uint64_t load64( const void *src )
-{
-#if defined(NATIVE_LITTLE_ENDIAN)
- uint64_t w;
- memcpy(&w, src, sizeof w);
- return w;
-#else
- const uint8_t *p = ( const uint8_t * )src;
- return (( uint64_t )( p[0] ) << 0) |
- (( uint64_t )( p[1] ) << 8) |
- (( uint64_t )( p[2] ) << 16) |
- (( uint64_t )( p[3] ) << 24) |
- (( uint64_t )( p[4] ) << 32) |
- (( uint64_t )( p[5] ) << 40) |
- (( uint64_t )( p[6] ) << 48) |
- (( uint64_t )( p[7] ) << 56) ;
-#endif
-}
-
-static BLAKE2_INLINE uint16_t load16( const void *src )
-{
-#if defined(NATIVE_LITTLE_ENDIAN)
- uint16_t w;
- memcpy(&w, src, sizeof w);
- return w;
-#else
- const uint8_t *p = ( const uint8_t * )src;
- return ( uint16_t )((( uint32_t )( p[0] ) << 0) |
- (( uint32_t )( p[1] ) << 8));
-#endif
-}
-
-static BLAKE2_INLINE void store16( void *dst, uint16_t w )
-{
-#if defined(NATIVE_LITTLE_ENDIAN)
- memcpy(dst, &w, sizeof w);
-#else
- uint8_t *p = ( uint8_t * )dst;
- *p++ = ( uint8_t )w; w >>= 8;
- *p++ = ( uint8_t )w;
-#endif
-}
-
-static BLAKE2_INLINE void store32( void *dst, uint32_t w )
-{
-#if defined(NATIVE_LITTLE_ENDIAN)
- memcpy(dst, &w, sizeof w);
-#else
- uint8_t *p = ( uint8_t * )dst;
- p[0] = (uint8_t)(w >> 0);
- p[1] = (uint8_t)(w >> 8);
- p[2] = (uint8_t)(w >> 16);
- p[3] = (uint8_t)(w >> 24);
-#endif
-}
-
-static BLAKE2_INLINE void store64( void *dst, uint64_t w )
-{
-#if defined(NATIVE_LITTLE_ENDIAN)
- memcpy(dst, &w, sizeof w);
-#else
- uint8_t *p = ( uint8_t * )dst;
- p[0] = (uint8_t)(w >> 0);
- p[1] = (uint8_t)(w >> 8);
- p[2] = (uint8_t)(w >> 16);
- p[3] = (uint8_t)(w >> 24);
- p[4] = (uint8_t)(w >> 32);
- p[5] = (uint8_t)(w >> 40);
- p[6] = (uint8_t)(w >> 48);
- p[7] = (uint8_t)(w >> 56);
-#endif
-}
-
-static BLAKE2_INLINE uint64_t load48( const void *src )
-{
- const uint8_t *p = ( const uint8_t * )src;
- return (( uint64_t )( p[0] ) << 0) |
- (( uint64_t )( p[1] ) << 8) |
- (( uint64_t )( p[2] ) << 16) |
- (( uint64_t )( p[3] ) << 24) |
- (( uint64_t )( p[4] ) << 32) |
- (( uint64_t )( p[5] ) << 40) ;
-}
-
-static BLAKE2_INLINE void store48( void *dst, uint64_t w )
-{
- uint8_t *p = ( uint8_t * )dst;
- p[0] = (uint8_t)(w >> 0);
- p[1] = (uint8_t)(w >> 8);
- p[2] = (uint8_t)(w >> 16);
- p[3] = (uint8_t)(w >> 24);
- p[4] = (uint8_t)(w >> 32);
- p[5] = (uint8_t)(w >> 40);
-}
-
-static BLAKE2_INLINE uint32_t rotr32( const uint32_t w, const unsigned c )
-{
- return ( w >> c ) | ( w << ( 32 - c ) );
-}
-
-static BLAKE2_INLINE uint64_t rotr64( const uint64_t w, const unsigned c )
-{
- return ( w >> c ) | ( w << ( 64 - c ) );
-}
-
-/* prevents compiler optimizing out memset() */
-static BLAKE2_INLINE void secure_zero_memory(void *v, size_t n)
-{
- static void *(*const volatile memset_v)(void *, int, size_t) = &memset;
- memset_v(v, 0, n);
-}
-
-static BLAKE2_INLINE uint64x2_p vec_load64( const void *src )
-{
-#if defined(_ARCH_PWR9)
- assert((uintptr_t)src % 2 == 0);
- return (uint64x2_p) vec_xl(0, CONST_V8_CAST(src))
-#elif defined(__VSX__) || defined(_ARCH_PWR8)
- assert((uintptr_t)src % 4 == 0);
- return (uint64x2_p) vec_xl(0, CONST_V32_CAST(src));
-#else
- assert((uintptr_t)src % 16 == 0);
- return (uint64x2_p) vec_ld(0, CONST_V8_CAST(src));
-#endif
-}
-
-static BLAKE2_INLINE uint64x2_p vec_load64_le( const void *src, const uint8x16_p le_mask )
-{
-#if defined(NATIVE_BIG_ENDIAN)
- const uint64x2_p v = vec_load64(src);
- return vec_perm(v, v, le_mask);
-#else
- BLAKE2_UNUSED(le_mask);
- return vec_load64(src);
-#endif
-}
-
-static BLAKE2_INLINE void vec_store64( void *dst, uint64x2_p w )
-{
-#if defined(_ARCH_PWR9)
- assert((uintptr_t)dst % 2 == 0);
- vec_xst((uint8x16_p)w, 0, NCONST_V8_CAST(dst));
-#elif defined(__VSX__) || defined(_ARCH_PWR8)
- assert((uintptr_t)dst % 4 == 0);
- vec_xst((uint32x4_p)w, 0, NCONST_V32_CAST(dst));
-#else
- assert((uintptr_t)dst % 16 == 0);
- vec_st(w, 0, NCONST_V32_CAST(dst));
-#endif
-}
-
-static BLAKE2_INLINE void vec_store64_le( void *dst, uint64x2_p w, const uint8x16_p le_mask)
-{
-#if defined(NATIVE_BIG_ENDIAN)
- uint64x2_p v = vec_perm(w, w, le_mask);
- vec_store64(dst, v);
-#else
- BLAKE2_UNUSED(le_mask);
- vec_store64(dst, w);
-#endif
-}
-
-#endif
diff --git a/deps/BLAKE2/power8/blake2.h b/deps/BLAKE2/power8/blake2.h
deleted file mode 100644
index 2f93e9e..0000000
--- a/deps/BLAKE2/power8/blake2.h
+++ /dev/null
@@ -1,191 +0,0 @@
-/*
- BLAKE2 reference source code package - reference C implementations
-
- Copyright 2012, Samuel Neves . You may use this under the
- terms of the CC0, the OpenSSL Licence, or the Apache Public License 2.0, at
- your option. The terms of these licenses can be found at:
-
- - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0
- - OpenSSL license : https://www.openssl.org/source/license.html
- - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0
-
- More information about the BLAKE2 hash function can be found at
- https://blake2.net.
-*/
-#ifndef BLAKE2_H
-#define BLAKE2_H
-
-#include
-#include
-
-#if defined(__cplusplus)
-extern "C" {
-#endif
-
- #define BLAKE2_PACKED(x) x __attribute__((packed))
-
- enum blake2s_constant
- {
- BLAKE2S_BLOCKBYTES = 64,
- BLAKE2S_OUTBYTES = 32,
- BLAKE2S_KEYBYTES = 32,
- BLAKE2S_SALTBYTES = 8,
- BLAKE2S_PERSONALBYTES = 8
- };
-
- enum blake2b_constant
- {
- BLAKE2B_BLOCKBYTES = 128,
- BLAKE2B_OUTBYTES = 64,
- BLAKE2B_KEYBYTES = 64,
- BLAKE2B_SALTBYTES = 16,
- BLAKE2B_PERSONALBYTES = 16
- };
-
- typedef struct blake2s_state__
- {
- uint32_t h[8];
- uint32_t t[2];
- uint32_t f[2];
- uint8_t buf[BLAKE2S_BLOCKBYTES];
- size_t buflen;
- size_t outlen;
- uint8_t last_node;
- } blake2s_state;
-
- typedef struct blake2b_state__
- {
- uint64_t h[8];
- uint64_t t[2];
- uint64_t f[2];
- uint8_t buf[BLAKE2B_BLOCKBYTES];
- size_t buflen;
- size_t outlen;
- uint8_t last_node;
- } blake2b_state;
-
- typedef struct blake2sp_state__
- {
- blake2s_state S[8][1];
- blake2s_state R[1];
- uint8_t buf[8 * BLAKE2S_BLOCKBYTES];
- size_t buflen;
- size_t outlen;
- } blake2sp_state;
-
- typedef struct blake2bp_state__
- {
- blake2b_state S[4][1];
- blake2b_state R[1];
- uint8_t buf[4 * BLAKE2B_BLOCKBYTES];
- size_t buflen;
- size_t outlen;
- } blake2bp_state;
-
-
- BLAKE2_PACKED(struct blake2s_param__
- {
- uint8_t digest_length; /* 1 */
- uint8_t key_length; /* 2 */
- uint8_t fanout; /* 3 */
- uint8_t depth; /* 4 */
- uint32_t leaf_length; /* 8 */
- uint32_t node_offset; /* 12 */
- uint16_t xof_length; /* 14 */
- uint8_t node_depth; /* 15 */
- uint8_t inner_length; /* 16 */
- /* uint8_t reserved[0]; */
- uint8_t salt[BLAKE2S_SALTBYTES]; /* 24 */
- uint8_t personal[BLAKE2S_PERSONALBYTES]; /* 32 */
- });
-
- typedef struct blake2s_param__ blake2s_param;
-
- BLAKE2_PACKED(struct blake2b_param__
- {
- uint8_t digest_length; /* 1 */
- uint8_t key_length; /* 2 */
- uint8_t fanout; /* 3 */
- uint8_t depth; /* 4 */
- uint32_t leaf_length; /* 8 */
- uint32_t node_offset; /* 12 */
- uint32_t xof_length; /* 16 */
- uint8_t node_depth; /* 17 */
- uint8_t inner_length; /* 18 */
- uint8_t reserved[14]; /* 32 */
- uint8_t salt[BLAKE2B_SALTBYTES]; /* 48 */
- uint8_t personal[BLAKE2B_PERSONALBYTES]; /* 64 */
- });
-
- typedef struct blake2b_param__ blake2b_param;
-
- typedef struct blake2xs_state__
- {
- blake2s_state S[1];
- blake2s_param P[1];
- } blake2xs_state;
-
- typedef struct blake2xb_state__
- {
- blake2b_state S[1];
- blake2b_param P[1];
- } blake2xb_state;
-
- /* Padded structs result in a compile-time error */
- enum {
- BLAKE2_DUMMY_1 = 1/(int)(sizeof(blake2s_param) == BLAKE2S_OUTBYTES),
- BLAKE2_DUMMY_2 = 1/(int)(sizeof(blake2b_param) == BLAKE2B_OUTBYTES)
- };
-
- /* Streaming API */
- int blake2s_init( blake2s_state *S, size_t outlen );
- int blake2s_init_key( blake2s_state *S, size_t outlen, const void *key, size_t keylen );
- int blake2s_init_param( blake2s_state *S, const blake2s_param *P );
- int blake2s_update( blake2s_state *S, const void *in, size_t inlen );
- int blake2s_final( blake2s_state *S, void *out, size_t outlen );
-
- int blake2b_init( blake2b_state *S, size_t outlen );
- int blake2b_init_key( blake2b_state *S, size_t outlen, const void *key, size_t keylen );
- int blake2b_init_param( blake2b_state *S, const blake2b_param *P );
- int blake2b_update( blake2b_state *S, const void *in, size_t inlen );
- int blake2b_final( blake2b_state *S, void *out, size_t outlen );
-
- int blake2sp_init( blake2sp_state *S, size_t outlen );
- int blake2sp_init_key( blake2sp_state *S, size_t outlen, const void *key, size_t keylen );
- int blake2sp_update( blake2sp_state *S, const void *in, size_t inlen );
- int blake2sp_final( blake2sp_state *S, void *out, size_t outlen );
-
- int blake2bp_init( blake2bp_state *S, size_t outlen );
- int blake2bp_init_key( blake2bp_state *S, size_t outlen, const void *key, size_t keylen );
- int blake2bp_update( blake2bp_state *S, const void *in, size_t inlen );
- int blake2bp_final( blake2bp_state *S, void *out, size_t outlen );
-
- /* Variable output length API */
- int blake2xs_init( blake2xs_state *S, const size_t outlen );
- int blake2xs_init_key( blake2xs_state *S, const size_t outlen, const void *key, size_t keylen );
- int blake2xs_update( blake2xs_state *S, const void *in, size_t inlen );
- int blake2xs_final(blake2xs_state *S, void *out, size_t outlen);
-
- int blake2xb_init( blake2xb_state *S, const size_t outlen );
- int blake2xb_init_key( blake2xb_state *S, const size_t outlen, const void *key, size_t keylen );
- int blake2xb_update( blake2xb_state *S, const void *in, size_t inlen );
- int blake2xb_final(blake2xb_state *S, void *out, size_t outlen);
-
- /* Simple API */
- int blake2s( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen );
- int blake2b( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen );
-
- int blake2sp( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen );
- int blake2bp( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen );
-
- int blake2xs( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen );
- int blake2xb( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen );
-
- /* This is simply an alias for blake2b */
- int blake2( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen );
-
-#if defined(__cplusplus)
-}
-#endif
-
-#endif
diff --git a/deps/BLAKE2/power8/blake2b-load-pwr8.h b/deps/BLAKE2/power8/blake2b-load-pwr8.h
deleted file mode 100644
index f1e0f02..0000000
--- a/deps/BLAKE2/power8/blake2b-load-pwr8.h
+++ /dev/null
@@ -1,316 +0,0 @@
-/*
- BLAKE2 reference source code package - optimized C implementations
-
- Copyright 2012, Samuel Neves . You may use this under the
- terms of the CC0, the OpenSSL Licence, or the Apache Public License 2.0, at
- your option. The terms of these licenses can be found at:
-
- - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0
- - OpenSSL license : https://www.openssl.org/source/license.html
- - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0
-
- More information about the BLAKE2 hash function can be found at
- https://blake2.net.
-*/
-#ifndef BLAKE2B_LOAD_SSE2_H
-#define BLAKE2B_LOAD_SSE2_H
-
-#define vec_merge_hi(a, b) vec_mergeh(a,b)
-#define vec_merge_hi_lo(a, b) vec_mergeh(a,(uint64x2_p)vec_sld((uint8x16_p)b,(uint8x16_p)b,8))
-#define vec_merge_lo(a, b) vec_mergel(a,b)
-
-#if defined(NATIVE_BIG_ENDIAN)
-# define vec_shl_8(a,b) (uint64x2_p)vec_sld((uint8x16_p)a, (uint8x16_p)b, 8);
-#else
-# define vec_shl_8(a,b) (uint64x2_p)vec_sld((uint8x16_p)b, (uint8x16_p)a, 16-8);
-#endif
-
-#define LOAD_MSG_0_1(b0, b1) \
-do { \
- b0 = vec_merge_hi(m0, m1); \
- b1 = vec_merge_hi(m2, m3); \
-} while(0)
-
-#define LOAD_MSG_0_2(b0, b1) \
-do { \
- b0 = vec_merge_lo(m0, m1); \
- b1 = vec_merge_lo(m2, m3); \
-} while(0)
-
-#define LOAD_MSG_0_3(b0, b1) \
-do { \
- b0 = vec_merge_hi(m4, m5); \
- b1 = vec_merge_hi(m6, m7); \
-} while(0)
-
-#define LOAD_MSG_0_4(b0, b1) \
-do { \
- b0 = vec_merge_lo(m4, m5); \
- b1 = vec_merge_lo(m6, m7); \
-} while(0)
-
-#define LOAD_MSG_1_1(b0, b1) \
-do { \
- b0 = vec_merge_hi(m7, m2); \
- b1 = vec_merge_lo(m4, m6); \
-} while(0)
-
-#define LOAD_MSG_1_2(b0, b1) \
-do { \
- b0 = vec_merge_hi(m5, m4); \
- b1 = vec_shl_8(m7, m3); \
-} while(0)
-
-#define LOAD_MSG_1_3(b0, b1) \
-do { \
- b0 = vec_shl_8(m0, m0); \
- b1 = vec_merge_lo(m5, m2); \
-} while(0)
-
-#define LOAD_MSG_1_4(b0, b1) \
-do { \
- b0 = vec_merge_hi(m6, m1); \
- b1 = vec_merge_lo(m3, m1); \
-} while(0)
-
-#define LOAD_MSG_2_1(b0, b1) \
-do { \
- b0 = vec_shl_8(m5, m6); \
- b1 = vec_merge_lo(m2, m7); \
-} while(0)
-
-#define LOAD_MSG_2_2(b0, b1) \
-do { \
- b0 = vec_merge_hi(m4, m0); \
- b1 = vec_merge_hi_lo(m1, m6); \
-} while(0)
-
-#define LOAD_MSG_2_3(b0, b1) \
- do { \
- b0 = vec_merge_hi_lo(m5, m1); \
- b1 = vec_merge_lo(m3, m4); \
-} while(0)
-
-#define LOAD_MSG_2_4(b0, b1) \
- do { \
- b0 = vec_merge_hi(m7, m3); \
- b1 = vec_shl_8(m0, m2); \
-} while(0)
-
-#define LOAD_MSG_3_1(b0, b1) \
- do { \
- b0 = vec_merge_lo(m3, m1); \
- b1 = vec_merge_lo(m6, m5); \
-} while(0)
-
-#define LOAD_MSG_3_2(b0, b1) \
- do { \
- b0 = vec_merge_lo(m4, m0); \
- b1 = vec_merge_hi(m6, m7); \
-} while(0)
-
-#define LOAD_MSG_3_3(b0, b1) \
- do { \
- b0 = vec_merge_hi_lo(m1, m2); \
- b1 = vec_merge_hi_lo(m2, m7); \
-} while(0)
-
-#define LOAD_MSG_3_4(b0, b1) \
- do { \
- b0 = vec_merge_hi(m3, m5); \
- b1 = vec_merge_hi(m0, m4); \
-} while(0)
-
-#define LOAD_MSG_4_1(b0, b1) \
- do { \
- b0 = vec_merge_lo(m4, m2); \
- b1 = vec_merge_hi(m1, m5); \
-} while(0)
-
-#define LOAD_MSG_4_2(b0, b1) \
- do { \
- b0 = vec_merge_hi_lo(m0, m3); \
- b1 = vec_merge_hi_lo(m2, m7); \
-} while(0)
-
-#define LOAD_MSG_4_3(b0, b1) \
- do { \
- b0 = vec_merge_hi_lo(m7, m5); \
- b1 = vec_merge_hi_lo(m3, m1); \
-} while(0)
-
-#define LOAD_MSG_4_4(b0, b1) \
- do { \
- b0 = vec_shl_8(m0, m6); \
- b1 = vec_merge_hi_lo(m4, m6); \
-} while(0)
-
-#define LOAD_MSG_5_1(b0, b1) \
- do { \
- b0 = vec_merge_hi(m1, m3); \
- b1 = vec_merge_hi(m0, m4); \
-} while(0)
-
-#define LOAD_MSG_5_2(b0, b1) \
- do { \
- b0 = vec_merge_hi(m6, m5); \
- b1 = vec_merge_lo(m5, m1); \
-} while(0)
-
-#define LOAD_MSG_5_3(b0, b1) \
- do { \
- b0 = vec_merge_hi_lo(m2, m3); \
- b1 = vec_merge_lo(m7, m0); \
-} while(0)
-
-#define LOAD_MSG_5_4(b0, b1) \
- do { \
- b0 = vec_merge_lo(m6, m2); \
- b1 = vec_merge_hi_lo(m7, m4); \
-} while(0)
-
-#define LOAD_MSG_6_1(b0, b1) \
- do { \
- b0 = vec_merge_hi_lo(m6, m0); \
- b1 = vec_merge_hi(m7, m2); \
-} while(0)
-
-#define LOAD_MSG_6_2(b0, b1) \
- do { \
- b0 = vec_merge_lo(m2, m7); \
- b1 = vec_shl_8(m6, m5); \
-} while(0)
-
-#define LOAD_MSG_6_3(b0, b1) \
- do { \
- b0 = vec_merge_hi(m0, m3); \
- b1 = vec_shl_8(m4, m4); \
-} while(0)
-
-#define LOAD_MSG_6_4(b0, b1) \
- do { \
- b0 = vec_merge_lo(m3, m1); \
- b1 = vec_merge_hi_lo(m1, m5); \
-} while(0)
-
-#define LOAD_MSG_7_1(b0, b1) \
- do { \
- b0 = vec_merge_lo(m6, m3); \
- b1 = vec_merge_hi_lo(m6, m1); \
-} while(0)
-
-#define LOAD_MSG_7_2(b0, b1) \
- do { \
- b0 = vec_shl_8(m5, m7); \
- b1 = vec_merge_lo(m0, m4); \
-} while(0)
-
-#define LOAD_MSG_7_3(b0, b1) \
- do { \
- b0 = vec_merge_lo(m2, m7); \
- b1 = vec_merge_hi(m4, m1); \
-} while(0)
-
-#define LOAD_MSG_7_4(b0, b1) \
- do { \
- b0 = vec_merge_hi(m0, m2); \
- b1 = vec_merge_hi(m3, m5); \
-} while(0)
-
-#define LOAD_MSG_8_1(b0, b1) \
- do { \
- b0 = vec_merge_hi(m3, m7); \
- b1 = vec_shl_8(m5, m0); \
-} while(0)
-
-#define LOAD_MSG_8_2(b0, b1) \
- do { \
- b0 = vec_merge_lo(m7, m4); \
- b1 = vec_shl_8(m1, m4); \
-} while(0)
-
-#define LOAD_MSG_8_3(b0, b1) \
- do { \
- b0 = m6; \
- b1 = vec_shl_8(m0, m5); \
-} while(0)
-
-#define LOAD_MSG_8_4(b0, b1) \
- do { \
- b0 = vec_merge_hi_lo(m1, m3); \
- b1 = m2; \
-} while(0)
-
-#define LOAD_MSG_9_1(b0, b1) \
- do { \
- b0 = vec_merge_hi(m5, m4); \
- b1 = vec_merge_lo(m3, m0); \
-} while(0)
-
-#define LOAD_MSG_9_2(b0, b1) \
- do { \
- b0 = vec_merge_hi(m1, m2); \
- b1 = vec_merge_hi_lo(m3, m2); \
-} while(0)
-
-#define LOAD_MSG_9_3(b0, b1) \
- do { \
- b0 = vec_merge_lo(m7, m4); \
- b1 = vec_merge_lo(m1, m6); \
-} while(0)
-
-#define LOAD_MSG_9_4(b0, b1) \
- do { \
- b0 = vec_shl_8(m5, m7); \
- b1 = vec_merge_hi(m6, m0); \
-} while(0)
-
-#define LOAD_MSG_10_1(b0, b1) \
- do { \
- b0 = vec_merge_hi(m0, m1); \
- b1 = vec_merge_hi(m2, m3); \
-} while(0)
-
-#define LOAD_MSG_10_2(b0, b1) \
- do { \
- b0 = vec_merge_lo(m0, m1); \
- b1 = vec_merge_lo(m2, m3); \
-} while(0)
-
-#define LOAD_MSG_10_3(b0, b1) \
- do { \
- b0 = vec_merge_hi(m4, m5); \
- b1 = vec_merge_hi(m6, m7); \
-} while(0)
-
-#define LOAD_MSG_10_4(b0, b1) \
- do { \
- b0 = vec_merge_lo(m4, m5); \
- b1 = vec_merge_lo(m6, m7); \
-} while(0)
-
-#define LOAD_MSG_11_1(b0, b1) \
- do { \
- b0 = vec_merge_hi(m7, m2); \
- b1 = vec_merge_lo(m4, m6); \
-} while(0)
-
-#define LOAD_MSG_11_2(b0, b1) \
- do { \
- b0 = vec_merge_hi(m5, m4); \
- b1 = vec_shl_8(m7, m3); \
-} while(0)
-
-#define LOAD_MSG_11_3(b0, b1) \
- do { \
- b0 = vec_shl_8(m0, m0); \
- b1 = vec_merge_lo(m5, m2); \
-} while(0)
-
-#define LOAD_MSG_11_4(b0, b1) \
- do { \
- b0 = vec_merge_hi(m6, m1); \
- b1 = vec_merge_lo(m3, m1); \
-} while(0)
-
-#endif
diff --git a/deps/BLAKE2/power8/blake2b-round.h b/deps/BLAKE2/power8/blake2b-round.h
deleted file mode 100644
index 9be2ab9..0000000
--- a/deps/BLAKE2/power8/blake2b-round.h
+++ /dev/null
@@ -1,108 +0,0 @@
-/*
- BLAKE2 reference source code package - optimized C implementations
-
- Copyright 2012, Samuel Neves . You may use this under the
- terms of the CC0, the OpenSSL Licence, or the Apache Public License 2.0, at
- your option. The terms of these licenses can be found at:
-
- - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0
- - OpenSSL license : https://www.openssl.org/source/license.html
- - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0
-
- More information about the BLAKE2 hash function can be found at
- https://blake2.net.
-*/
-#ifndef ROUND_H
-#define ROUND_H
-
-#define LIKELY(x) __builtin_expect((x),1)
-
-#define vec_ror_16(x) vec_rl(x, mask_ror_16)
-#define vec_ror_24(x) vec_rl(x, mask_ror_24)
-#define vec_ror_32(x) vec_rl(x, mask_ror_32)
-#define vec_ror_63(x) vec_rl(x, mask_ror_63)
-
-
-#define G1(row1l,row2l,row3l,row4l,row1h,row2h,row3h,row4h,b0,b1) \
-do { \
- row1l = vec_add(vec_add(row1l, b0), row2l); \
- row1h = vec_add(vec_add(row1h, b1), row2h); \
- row4l = vec_xor(row4l, row1l); \
- row4h = vec_xor(row4h, row1h); \
- row4l = vec_ror_32(row4l); \
- row4h = vec_ror_32(row4h); \
- row3l = vec_add(row3l, row4l); \
- row3h = vec_add(row3h, row4h); \
- row2l = vec_xor(row2l, row3l); \
- row2h = vec_xor(row2h, row3h); \
- row2l = vec_ror_24(row2l); \
- row2h = vec_ror_24(row2h); \
-} while(0)
-
-#define G2(row1l,row2l,row3l,row4l,row1h,row2h,row3h,row4h,b0,b1) \
-do { \
- row1l = vec_add(vec_add(row1l, b0), row2l); \
- row1h = vec_add(vec_add(row1h, b1), row2h); \
- row4l = vec_xor(row4l, row1l); \
- row4h = vec_xor(row4h, row1h); \
- row4l = vec_ror_16(row4l); \
- row4h = vec_ror_16(row4h); \
- row3l = vec_add(row3l, row4l); \
- row3h = vec_add(row3h, row4h); \
- row2l = vec_xor(row2l, row3l); \
- row2h = vec_xor(row2h, row3h); \
- row2l = vec_ror_63(row2l); \
- row2h = vec_ror_63(row2h); \
-} while(0)
-
-#define DIAGONALIZE(row1l,row2l,row3l,row4l,row1h,row2h,row3h,row4h) \
-do { \
- uint64x2_p t0, t1; \
- t0 = vec_shl_8(row2l, row2h); \
- t1 = vec_shl_8(row2h, row2l); \
- row2l = t0; \
- row2h = t1; \
- t0 = row3l; \
- row3l = row3h; \
- row3h = t0; \
- t0 = vec_shl_8(row4h, row4l); \
- t1 = vec_shl_8(row4l, row4h); \
- row4l = t0; \
- row4h = t1; \
-} while(0)
-
-#define UNDIAGONALIZE(row1l,row2l,row3l,row4l,row1h,row2h,row3h,row4h) \
-do { \
- uint64x2_p t0, t1; \
- t0 = vec_shl_8(row2h, row2l); \
- t1 = vec_shl_8(row2l, row2h); \
- row2l = t0; \
- row2h = t1; \
- t0 = row3l; \
- row3l = row3h; row3h = t0; \
- t0 = vec_shl_8(row4l, row4h); \
- t1 = vec_shl_8(row4h, row4l); \
- row4l = t0; \
- row4h = t1; \
-} while(0)
-
-#if defined(__VSX__) || defined(_ARCH_PWR8)
-#include "blake2b-load-pwr8.h"
-#endif
-
-#define ROUND(r) \
-do { \
- uint64x2_p b0, b1; \
- LOAD_MSG_ ##r ##_1(b0, b1); \
- G1(row1l,row2l,row3l,row4l,row1h,row2h,row3h,row4h,b0,b1); \
- LOAD_MSG_ ##r ##_2(b0, b1); \
- G2(row1l,row2l,row3l,row4l,row1h,row2h,row3h,row4h,b0,b1); \
- DIAGONALIZE(row1l,row2l,row3l,row4l,row1h,row2h,row3h,row4h); \
- LOAD_MSG_ ##r ##_3(b0, b1); \
- G1(row1l,row2l,row3l,row4l,row1h,row2h,row3h,row4h,b0,b1); \
- LOAD_MSG_ ##r ##_4(b0, b1); \
- G2(row1l,row2l,row3l,row4l,row1h,row2h,row3h,row4h,b0,b1); \
- UNDIAGONALIZE(row1l,row2l,row3l,row4l,row1h,row2h,row3h,row4h); \
-} while(0)
-
-#endif
diff --git a/deps/BLAKE2/power8/blake2b.c b/deps/BLAKE2/power8/blake2b.c
deleted file mode 100644
index df6f4c1..0000000
--- a/deps/BLAKE2/power8/blake2b.c
+++ /dev/null
@@ -1,430 +0,0 @@
-/*
- BLAKE2 reference source code package - optimized C implementations
-
- Copyright 2012, Samuel Neves . You may use this under the
- terms of the CC0, the OpenSSL Licence, or the Apache Public License 2.0, at
- your option. The terms of these licenses can be found at:
-
- - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0
- - OpenSSL license : https://www.openssl.org/source/license.html
- - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0
-
- More information about the BLAKE2 hash function can be found at
- https://blake2.net.
-*/
-
-#include
-#include
-#include
-
-#include "blake2.h"
-#include "blake2-impl.h"
-
-#include "blake2b-round.h"
-
-#if defined(__GNUC__)
-/* Ignore "warning: vec_lvsl is deprecated..." */
-# pragma GCC diagnostic ignored "-Wdeprecated"
-#endif
-
-static const uint64_t blake2b_IV[8] =
-{
- 0x6a09e667f3bcc908ULL, 0xbb67ae8584caa73bULL,
- 0x3c6ef372fe94f82bULL, 0xa54ff53a5f1d36f1ULL,
- 0x510e527fade682d1ULL, 0x9b05688c2b3e6c1fULL,
- 0x1f83d9abfb41bd6bULL, 0x5be0cd19137e2179ULL
-};
-
-/* Some helper functions */
-static void blake2b_set_lastnode( blake2b_state *S )
-{
- S->f[1] = (uint64_t)-1;
-}
-
-static int blake2b_is_lastblock( const blake2b_state *S )
-{
- return S->f[0] != 0;
-}
-
-static void blake2b_set_lastblock( blake2b_state *S )
-{
- if( S->last_node ) blake2b_set_lastnode( S );
-
- S->f[0] = (uint64_t)-1;
-}
-
-static void blake2b_increment_counter( blake2b_state *S, const uint64_t inc )
-{
- S->t[0] += inc;
- S->t[1] += ( S->t[0] < inc );
-}
-
-/* init xors IV with input parameter block */
-int blake2b_init_param( blake2b_state *S, const blake2b_param *P )
-{
- const uint8_t *p = ( const uint8_t * )( P );
- size_t i;
-
- memset( S, 0, sizeof( blake2b_state ) );
-
- /* IV XOR ParamBlock */
- for( i = 0; i < 8; ++i )
- S->h[i] = load64( p + sizeof( S->h[i] ) * i ) ^ blake2b_IV[i];
-
-#if defined(NATIVE_BIG_ENDIAN)
- for( i = 0; i < 8; ++i )
- S->h[i] = __builtin_bswap64(S->h[i]);
-#endif
-
- S->outlen = P->digest_length;
- return 0;
-}
-
-
-/* Some sort of default parameter block initialization, for sequential blake2b */
-int blake2b_init( blake2b_state *S, size_t outlen )
-{
- blake2b_param P[1];
-
- if ( ( !outlen ) || ( outlen > BLAKE2B_OUTBYTES ) ) return -1;
-
- P->digest_length = (uint8_t)outlen;
- P->key_length = 0;
- P->fanout = 1;
- P->depth = 1;
- store32( &P->leaf_length, 0 );
- store32( &P->node_offset, 0 );
- store32( &P->xof_length, 0 );
- P->node_depth = 0;
- P->inner_length = 0;
- memset( P->reserved, 0, sizeof( P->reserved ) );
- memset( P->salt, 0, sizeof( P->salt ) );
- memset( P->personal, 0, sizeof( P->personal ) );
-
- return blake2b_init_param( S, P );
-}
-
-int blake2b_init_key( blake2b_state *S, size_t outlen, const void *key, size_t keylen )
-{
- blake2b_param P[1];
-
- if ( ( !outlen ) || ( outlen > BLAKE2B_OUTBYTES ) ) return -1;
-
- if ( ( !keylen ) || keylen > BLAKE2B_KEYBYTES ) return -1;
-
- P->digest_length = (uint8_t)outlen;
- P->key_length = (uint8_t)keylen;
- P->fanout = 1;
- P->depth = 1;
- store32( &P->leaf_length, 0 );
- store32( &P->node_offset, 0 );
- store32( &P->xof_length, 0 );
- P->node_depth = 0;
- P->inner_length = 0;
- memset( P->reserved, 0, sizeof( P->reserved ) );
- memset( P->salt, 0, sizeof( P->salt ) );
- memset( P->personal, 0, sizeof( P->personal ) );
-
- if( blake2b_init_param( S, P ) < 0 )
- return 0;
-
- {
- uint8_t block[BLAKE2B_BLOCKBYTES];
- memset( block, 0, BLAKE2B_BLOCKBYTES );
- memcpy( block, key, keylen );
- blake2b_update( S, block, BLAKE2B_BLOCKBYTES );
- secure_zero_memory( block, BLAKE2B_BLOCKBYTES ); /* Burn the key from stack */
- }
- return 0;
-}
-
-static void blake2b_compress( blake2b_state *S, const uint8_t block[BLAKE2B_BLOCKBYTES] )
-{
- /* Possibly unaligned user messages */
- uint64x2_p m0, m1, m2, m3, m4, m5, m6, m7;
-
- /* State variables */
- uint64x2_p row1l, row1h;
- uint64x2_p row2l, row2h;
- uint64x2_p row3l, row3h;
- uint64x2_p row4l, row4h;
- uint64x2_p h0, h2, h4, h6;
-
- /* Alignment check for message buffer load */
- const uintptr_t addr = (uintptr_t)block;
-
- /* Masks used for right rotates */
- const uint64x2_p mask_ror_16 = {64-16, 64-16};
- const uint64x2_p mask_ror_24 = {64-24, 64-24};
- const uint64x2_p mask_ror_32 = {64-32, 64-32};
- const uint64x2_p mask_ror_63 = {64-63, 64-63};
-
-#if defined(NATIVE_BIG_ENDIAN)
- /* Mask to permute between big-endian and little-endian dword arrays */
- const uint8x16_p mask_le = {7,6,5,4, 3,2,1,0, 15,14,13,12, 11,10,9,8};
-#endif
-
-#if defined(_ARCH_PWR9)
- /* POWER9 provides loads for char's and short's */
- m0 = (uint64x2_p) vec_xl( 0, CONST_V8_CAST( block ));
- m1 = (uint64x2_p) vec_xl( 16, CONST_V8_CAST( block ));
- m2 = (uint64x2_p) vec_xl( 32, CONST_V8_CAST( block ));
- m3 = (uint64x2_p) vec_xl( 48, CONST_V8_CAST( block ));
- m4 = (uint64x2_p) vec_xl( 64, CONST_V8_CAST( block ));
- m5 = (uint64x2_p) vec_xl( 80, CONST_V8_CAST( block ));
- m6 = (uint64x2_p) vec_xl( 96, CONST_V8_CAST( block ));
- m7 = (uint64x2_p) vec_xl(112, CONST_V8_CAST( block ));
-#else
- /* Altivec only provides 16-byte aligned loads. Low-order address bits */
- /* are masked. Linux provides 16-byte aligned buffers, AIX typically */
- /* provides 4-byte aligned buffers. */
- /* http://www.nxp.com/docs/en/reference-manual/ALTIVECPEM.pdf */
- const size_t off = addr%16;
-
- m0 = (uint64x2_p) vec_ld( 0, CONST_V8_CAST( block ));
- m1 = (uint64x2_p) vec_ld( 16, CONST_V8_CAST( block ));
- m2 = (uint64x2_p) vec_ld( 32, CONST_V8_CAST( block ));
- m3 = (uint64x2_p) vec_ld( 48, CONST_V8_CAST( block ));
- m4 = (uint64x2_p) vec_ld( 64, CONST_V8_CAST( block ));
- m5 = (uint64x2_p) vec_ld( 80, CONST_V8_CAST( block ));
- m6 = (uint64x2_p) vec_ld( 96, CONST_V8_CAST( block ));
- m7 = (uint64x2_p) vec_ld(112, CONST_V8_CAST( block ));
-
- if (off != 0)
- {
- /* User buffer not 16-byte aligned. Fix the vectors spread across loads */
- /* http://mirror.informatimago.com/next/developer.apple.com/ */
- /* hardwaredrivers/ve/code_optimization.html */
- uint64x2_p ex; uint8x16_p perm;
- ex = (uint64x2_p) vec_ld(112+15, CONST_V8_CAST( block ));
- perm = vec_lvsl(0, CONST_V8_CAST( addr ));
-
- m0 = vec_perm(m0, m1, perm);
- m1 = vec_perm(m1, m2, perm);
- m2 = vec_perm(m2, m3, perm);
- m3 = vec_perm(m3, m4, perm);
- m4 = vec_perm(m4, m5, perm);
- m5 = vec_perm(m5, m6, perm);
- m6 = vec_perm(m6, m7, perm);
- m7 = vec_perm(m7, ex, perm);
- }
-#endif
-
-#if defined(NATIVE_BIG_ENDIAN)
- m0 = vec_perm(m0, m0, mask_le);
- m1 = vec_perm(m1, m1, mask_le);
- m2 = vec_perm(m2, m2, mask_le);
- m3 = vec_perm(m3, m3, mask_le);
- m4 = vec_perm(m4, m4, mask_le);
- m5 = vec_perm(m5, m5, mask_le);
- m6 = vec_perm(m6, m6, mask_le);
- m7 = vec_perm(m7, m7, mask_le);
-#endif
-
-#if defined(NATIVE_BIG_ENDIAN)
- h0 = row1l = vec_load64_le( &S->h[0], mask_le);
- h2 = row1h = vec_load64_le( &S->h[2], mask_le);
- h4 = row2l = vec_load64_le( &S->h[4], mask_le);
- h6 = row2h = vec_load64_le( &S->h[6], mask_le);
-#else
- h0 = row1l = vec_load64( &S->h[0] );
- h2 = row1h = vec_load64( &S->h[2] );
- h4 = row2l = vec_load64( &S->h[4] );
- h6 = row2h = vec_load64( &S->h[6] );
-#endif
-
- row3l = vec_load64( &blake2b_IV[0] );
- row3h = vec_load64( &blake2b_IV[2] );
- row4l = vec_xor( vec_load64( &blake2b_IV[4] ), vec_load64( &S->t[0] ) );
- row4h = vec_xor( vec_load64( &blake2b_IV[6] ), vec_load64( &S->f[0] ) );
-
- ROUND( 0 );
- ROUND( 1 );
- ROUND( 2 );
- ROUND( 3 );
- ROUND( 4 );
- ROUND( 5 );
- ROUND( 6 );
- ROUND( 7 );
- ROUND( 8 );
- ROUND( 9 );
- ROUND( 10 );
- ROUND( 11 );
-
- row1l = vec_xor( row3l, row1l );
- row1h = vec_xor( row3h, row1h );
-
-#if defined(NATIVE_BIG_ENDIAN)
- vec_store64_le( &S->h[0], vec_xor( h0, row1l ), mask_le );
- vec_store64_le( &S->h[2], vec_xor( h2, row1h ), mask_le );
-#else
- vec_store64( &S->h[0], vec_xor( h0, row1l ) );
- vec_store64( &S->h[2], vec_xor( h2, row1h ) );
-#endif
-
- row2l = vec_xor( row4l, row2l );
- row2h = vec_xor( row4h, row2h );
-
-#if defined(NATIVE_BIG_ENDIAN)
- vec_store64_le( &S->h[4], vec_xor( h4, row2l ), mask_le );
- vec_store64_le( &S->h[6], vec_xor( h6, row2h ), mask_le );
-#else
- vec_store64( &S->h[4], vec_xor( h4, row2l ) );
- vec_store64( &S->h[6], vec_xor( h6, row2h ) );
-#endif
-}
-
-
-int blake2b_update( blake2b_state *S, const void *pin, size_t inlen )
-{
- const unsigned char * in = (const unsigned char *)pin;
- if( inlen > 0 )
- {
- size_t left = S->buflen;
- size_t fill = BLAKE2B_BLOCKBYTES - left;
- if( inlen > fill )
- {
- S->buflen = 0;
- memcpy( S->buf + left, in, fill ); /* Fill buffer */
- blake2b_increment_counter( S, BLAKE2B_BLOCKBYTES );
- blake2b_compress( S, S->buf ); /* Compress */
- in += fill; inlen -= fill;
- while(inlen > BLAKE2B_BLOCKBYTES) {
- blake2b_increment_counter(S, BLAKE2B_BLOCKBYTES);
- blake2b_compress( S, in );
- in += BLAKE2B_BLOCKBYTES;
- inlen -= BLAKE2B_BLOCKBYTES;
- }
- }
- memcpy( S->buf + S->buflen, in, inlen );
- S->buflen += inlen;
- }
- return 0;
-}
-
-
-int blake2b_final( blake2b_state *S, void *out, size_t outlen )
-{
- if( out == NULL || outlen < S->outlen )
- return -1;
-
- if( blake2b_is_lastblock( S ) )
- return -1;
-
- blake2b_increment_counter( S, S->buflen );
- blake2b_set_lastblock( S );
- memset( S->buf + S->buflen, 0, BLAKE2B_BLOCKBYTES - S->buflen ); /* Padding */
- blake2b_compress( S, S->buf );
-
- memcpy( out, &S->h[0], S->outlen );
- return 0;
-}
-
-
-int blake2b( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen )
-{
- blake2b_state S[1];
-
- /* Verify parameters */
- if ( NULL == in && inlen > 0 ) return -1;
-
- if ( NULL == out ) return -1;
-
- if( NULL == key && keylen > 0 ) return -1;
-
- if( !outlen || outlen > BLAKE2B_OUTBYTES ) return -1;
-
- if( keylen > BLAKE2B_KEYBYTES ) return -1;
-
- if( keylen )
- {
- if( blake2b_init_key( S, outlen, key, keylen ) < 0 ) return -1;
- }
- else
- {
- if( blake2b_init( S, outlen ) < 0 ) return -1;
- }
-
- blake2b_update( S, ( const uint8_t * )in, inlen );
- blake2b_final( S, out, outlen );
- return 0;
-}
-
-int blake2( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen ) {
- return blake2b(out, outlen, in, inlen, key, keylen);
-}
-
-#if defined(SUPERCOP)
-int crypto_hash( unsigned char *out, unsigned char *in, unsigned long long inlen )
-{
- return blake2b( out, BLAKE2B_OUTBYTES, in, inlen, NULL, 0 );
-}
-#endif
-
-#if defined(BLAKE2B_SELFTEST)
-#include
-#include "blake2-kat.h"
-int main( void )
-{
- uint8_t key[BLAKE2B_KEYBYTES];
- uint8_t buf[BLAKE2_KAT_LENGTH];
- size_t i, step;
-
- for( i = 0; i < BLAKE2B_KEYBYTES; ++i )
- key[i] = ( uint8_t )i;
-
- for( i = 0; i < BLAKE2_KAT_LENGTH; ++i )
- buf[i] = ( uint8_t )i;
-
- /* Test simple API */
- for( i = 0; i < BLAKE2_KAT_LENGTH; ++i )
- {
- uint8_t hash[BLAKE2B_OUTBYTES];
- blake2b( hash, BLAKE2B_OUTBYTES, buf, i, key, BLAKE2B_KEYBYTES );
-
- if( 0 != memcmp( hash, blake2b_keyed_kat[i], BLAKE2B_OUTBYTES ) )
- {
- goto fail;
- }
- }
-
- /* Test streaming API */
- for(step = 1; step < BLAKE2B_BLOCKBYTES; ++step) {
- for (i = 0; i < BLAKE2_KAT_LENGTH; ++i) {
- uint8_t hash[BLAKE2B_OUTBYTES];
- blake2b_state S;
- uint8_t * p = buf;
- size_t mlen = i;
- int err = 0;
-
- if( (err = blake2b_init_key(&S, BLAKE2B_OUTBYTES, key, BLAKE2B_KEYBYTES)) < 0 ) {
- goto fail;
- }
-
- while (mlen >= step) {
- if ( (err = blake2b_update(&S, p, step)) < 0 ) {
- goto fail;
- }
- mlen -= step;
- p += step;
- }
- if ( (err = blake2b_update(&S, p, mlen)) < 0) {
- goto fail;
- }
- if ( (err = blake2b_final(&S, hash, BLAKE2B_OUTBYTES)) < 0) {
- goto fail;
- }
-
- if (0 != memcmp(hash, blake2b_keyed_kat[i], BLAKE2B_OUTBYTES)) {
- goto fail;
- }
- }
- }
-
- puts( "ok" );
- return 0;
-fail:
- puts("error");
- return -1;
-}
-#endif
diff --git a/deps/BLAKE2/power8/blake2bp.c b/deps/BLAKE2/power8/blake2bp.c
deleted file mode 100644
index d58a152..0000000
--- a/deps/BLAKE2/power8/blake2bp.c
+++ /dev/null
@@ -1,359 +0,0 @@
-/*
- BLAKE2 reference source code package - reference C implementations
-
- Copyright 2012, Samuel Neves . You may use this under the
- terms of the CC0, the OpenSSL Licence, or the Apache Public License 2.0, at
- your option. The terms of these licenses can be found at:
-
- - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0
- - OpenSSL license : https://www.openssl.org/source/license.html
- - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0
-
- More information about the BLAKE2 hash function can be found at
- https://blake2.net.
-*/
-
-#include
-#include
-#include
-#include
-
-#if defined(_OPENMP)
-#include
-#endif
-
-#include "blake2.h"
-#include "blake2-impl.h"
-
-#define PARALLELISM_DEGREE 4
-
-/*
- blake2b_init_param defaults to setting the expecting output length
- from the digest_length parameter block field.
-
- In some cases, however, we do not want this, as the output length
- of these instances is given by inner_length instead.
-*/
-static int blake2bp_init_leaf_param( blake2b_state *S, const blake2b_param *P )
-{
- int err = blake2b_init_param(S, P);
- S->outlen = P->inner_length;
- return err;
-}
-
-static int blake2bp_init_leaf( blake2b_state *S, size_t outlen, size_t keylen, uint64_t offset )
-{
- blake2b_param P[1];
- P->digest_length = (uint8_t)outlen;
- P->key_length = (uint8_t)keylen;
- P->fanout = PARALLELISM_DEGREE;
- P->depth = 2;
- store32( &P->leaf_length, 0 );
- store32( &P->node_offset, offset );
- store32( &P->xof_length, 0 );
- P->node_depth = 0;
- P->inner_length = BLAKE2B_OUTBYTES;
- memset( P->reserved, 0, sizeof( P->reserved ) );
- memset( P->salt, 0, sizeof( P->salt ) );
- memset( P->personal, 0, sizeof( P->personal ) );
- return blake2bp_init_leaf_param( S, P );
-}
-
-static int blake2bp_init_root( blake2b_state *S, size_t outlen, size_t keylen )
-{
- blake2b_param P[1];
- P->digest_length = (uint8_t)outlen;
- P->key_length = (uint8_t)keylen;
- P->fanout = PARALLELISM_DEGREE;
- P->depth = 2;
- store32( &P->leaf_length, 0 );
- store32( &P->node_offset, 0 );
- store32( &P->xof_length, 0 );
- P->node_depth = 1;
- P->inner_length = BLAKE2B_OUTBYTES;
- memset( P->reserved, 0, sizeof( P->reserved ) );
- memset( P->salt, 0, sizeof( P->salt ) );
- memset( P->personal, 0, sizeof( P->personal ) );
- return blake2b_init_param( S, P );
-}
-
-
-int blake2bp_init( blake2bp_state *S, size_t outlen )
-{
- size_t i;
-
- if( !outlen || outlen > BLAKE2B_OUTBYTES ) return -1;
-
- memset( S->buf, 0, sizeof( S->buf ) );
- S->buflen = 0;
- S->outlen = outlen;
-
- if( blake2bp_init_root( S->R, outlen, 0 ) < 0 )
- return -1;
-
- for( i = 0; i < PARALLELISM_DEGREE; ++i )
- if( blake2bp_init_leaf( S->S[i], outlen, 0, i ) < 0 ) return -1;
-
- S->R->last_node = 1;
- S->S[PARALLELISM_DEGREE - 1]->last_node = 1;
- return 0;
-}
-
-int blake2bp_init_key( blake2bp_state *S, size_t outlen, const void *key, size_t keylen )
-{
- size_t i;
-
- if( !outlen || outlen > BLAKE2B_OUTBYTES ) return -1;
-
- if( !key || !keylen || keylen > BLAKE2B_KEYBYTES ) return -1;
-
- memset( S->buf, 0, sizeof( S->buf ) );
- S->buflen = 0;
- S->outlen = outlen;
-
- if( blake2bp_init_root( S->R, outlen, keylen ) < 0 )
- return -1;
-
- for( i = 0; i < PARALLELISM_DEGREE; ++i )
- if( blake2bp_init_leaf( S->S[i], outlen, keylen, i ) < 0 ) return -1;
-
- S->R->last_node = 1;
- S->S[PARALLELISM_DEGREE - 1]->last_node = 1;
- {
- uint8_t block[BLAKE2B_BLOCKBYTES];
- memset( block, 0, BLAKE2B_BLOCKBYTES );
- memcpy( block, key, keylen );
-
- for( i = 0; i < PARALLELISM_DEGREE; ++i )
- blake2b_update( S->S[i], block, BLAKE2B_BLOCKBYTES );
-
- secure_zero_memory( block, BLAKE2B_BLOCKBYTES ); /* Burn the key from stack */
- }
- return 0;
-}
-
-
-int blake2bp_update( blake2bp_state *S, const void *pin, size_t inlen )
-{
- const unsigned char * in = (const unsigned char *)pin;
- size_t left = S->buflen;
- size_t fill = sizeof( S->buf ) - left;
- size_t i;
-
- if( left && inlen >= fill )
- {
- memcpy( S->buf + left, in, fill );
-
- for( i = 0; i < PARALLELISM_DEGREE; ++i )
- blake2b_update( S->S[i], S->buf + i * BLAKE2B_BLOCKBYTES, BLAKE2B_BLOCKBYTES );
-
- in += fill;
- inlen -= fill;
- left = 0;
- }
-
-#if defined(_OPENMP)
- #pragma omp parallel shared(S), num_threads(PARALLELISM_DEGREE)
-#else
-
- for( i = 0; i < PARALLELISM_DEGREE; ++i )
-#endif
- {
-#if defined(_OPENMP)
- size_t i = omp_get_thread_num();
-#endif
- size_t inlen__ = inlen;
- const unsigned char *in__ = ( const unsigned char * )in;
- in__ += i * BLAKE2B_BLOCKBYTES;
-
- while( inlen__ >= PARALLELISM_DEGREE * BLAKE2B_BLOCKBYTES )
- {
- blake2b_update( S->S[i], in__, BLAKE2B_BLOCKBYTES );
- in__ += PARALLELISM_DEGREE * BLAKE2B_BLOCKBYTES;
- inlen__ -= PARALLELISM_DEGREE * BLAKE2B_BLOCKBYTES;
- }
- }
-
- in += inlen - inlen % ( PARALLELISM_DEGREE * BLAKE2B_BLOCKBYTES );
- inlen %= PARALLELISM_DEGREE * BLAKE2B_BLOCKBYTES;
-
- if( inlen > 0 )
- memcpy( S->buf + left, in, inlen );
-
- S->buflen = left + inlen;
- return 0;
-}
-
-int blake2bp_final( blake2bp_state *S, void *out, size_t outlen )
-{
- uint8_t hash[PARALLELISM_DEGREE][BLAKE2B_OUTBYTES];
- size_t i;
-
- if(out == NULL || outlen < S->outlen) {
- return -1;
- }
-
- for( i = 0; i < PARALLELISM_DEGREE; ++i )
- {
- if( S->buflen > i * BLAKE2B_BLOCKBYTES )
- {
- size_t left = S->buflen - i * BLAKE2B_BLOCKBYTES;
-
- if( left > BLAKE2B_BLOCKBYTES ) left = BLAKE2B_BLOCKBYTES;
-
- blake2b_update( S->S[i], S->buf + i * BLAKE2B_BLOCKBYTES, left );
- }
-
- blake2b_final( S->S[i], hash[i], BLAKE2B_OUTBYTES );
- }
-
- for( i = 0; i < PARALLELISM_DEGREE; ++i )
- blake2b_update( S->R, hash[i], BLAKE2B_OUTBYTES );
-
- return blake2b_final( S->R, out, S->outlen );
-}
-
-int blake2bp( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen )
-{
- uint8_t hash[PARALLELISM_DEGREE][BLAKE2B_OUTBYTES];
- blake2b_state S[PARALLELISM_DEGREE][1];
- blake2b_state FS[1];
- size_t i;
-
- /* Verify parameters */
- if ( NULL == in && inlen > 0 ) return -1;
-
- if ( NULL == out ) return -1;
-
- if( NULL == key && keylen > 0 ) return -1;
-
- if( !outlen || outlen > BLAKE2B_OUTBYTES ) return -1;
-
- if( keylen > BLAKE2B_KEYBYTES ) return -1;
-
- for( i = 0; i < PARALLELISM_DEGREE; ++i )
- if( blake2bp_init_leaf( S[i], outlen, keylen, i ) < 0 ) return -1;
-
- S[PARALLELISM_DEGREE - 1]->last_node = 1; /* mark last node */
-
- if( keylen > 0 )
- {
- uint8_t block[BLAKE2B_BLOCKBYTES];
- memset( block, 0, BLAKE2B_BLOCKBYTES );
- memcpy( block, key, keylen );
-
- for( i = 0; i < PARALLELISM_DEGREE; ++i )
- blake2b_update( S[i], block, BLAKE2B_BLOCKBYTES );
-
- secure_zero_memory( block, BLAKE2B_BLOCKBYTES ); /* Burn the key from stack */
- }
-
-#if defined(_OPENMP)
- #pragma omp parallel shared(S,hash), num_threads(PARALLELISM_DEGREE)
-#else
-
- for( i = 0; i < PARALLELISM_DEGREE; ++i )
-#endif
- {
-#if defined(_OPENMP)
- size_t i = omp_get_thread_num();
-#endif
- size_t inlen__ = inlen;
- const unsigned char *in__ = ( const unsigned char * )in;
- in__ += i * BLAKE2B_BLOCKBYTES;
-
- while( inlen__ >= PARALLELISM_DEGREE * BLAKE2B_BLOCKBYTES )
- {
- blake2b_update( S[i], in__, BLAKE2B_BLOCKBYTES );
- in__ += PARALLELISM_DEGREE * BLAKE2B_BLOCKBYTES;
- inlen__ -= PARALLELISM_DEGREE * BLAKE2B_BLOCKBYTES;
- }
-
- if( inlen__ > i * BLAKE2B_BLOCKBYTES )
- {
- const size_t left = inlen__ - i * BLAKE2B_BLOCKBYTES;
- const size_t len = left <= BLAKE2B_BLOCKBYTES ? left : BLAKE2B_BLOCKBYTES;
- blake2b_update( S[i], in__, len );
- }
-
- blake2b_final( S[i], hash[i], BLAKE2B_OUTBYTES );
- }
-
- if( blake2bp_init_root( FS, outlen, keylen ) < 0 )
- return -1;
-
- FS->last_node = 1; /* Mark as last node */
-
- for( i = 0; i < PARALLELISM_DEGREE; ++i )
- blake2b_update( FS, hash[i], BLAKE2B_OUTBYTES );
-
- return blake2b_final( FS, out, outlen );;
-}
-
-#if defined(BLAKE2BP_SELFTEST)
-#include
-#include "blake2-kat.h"
-int main( void )
-{
- uint8_t key[BLAKE2B_KEYBYTES];
- uint8_t buf[BLAKE2_KAT_LENGTH];
- size_t i, step;
-
- for( i = 0; i < BLAKE2B_KEYBYTES; ++i )
- key[i] = ( uint8_t )i;
-
- for( i = 0; i < BLAKE2_KAT_LENGTH; ++i )
- buf[i] = ( uint8_t )i;
-
- /* Test simple API */
- for( i = 0; i < BLAKE2_KAT_LENGTH; ++i )
- {
- uint8_t hash[BLAKE2B_OUTBYTES];
- blake2bp( hash, BLAKE2B_OUTBYTES, buf, i, key, BLAKE2B_KEYBYTES );
-
- if( 0 != memcmp( hash, blake2bp_keyed_kat[i], BLAKE2B_OUTBYTES ) )
- {
- goto fail;
- }
- }
-
- /* Test streaming API */
- for(step = 1; step < BLAKE2B_BLOCKBYTES; ++step) {
- for (i = 0; i < BLAKE2_KAT_LENGTH; ++i) {
- uint8_t hash[BLAKE2B_OUTBYTES];
- blake2bp_state S;
- uint8_t * p = buf;
- size_t mlen = i;
- int err = 0;
-
- if( (err = blake2bp_init_key(&S, BLAKE2B_OUTBYTES, key, BLAKE2B_KEYBYTES)) < 0 ) {
- goto fail;
- }
-
- while (mlen >= step) {
- if ( (err = blake2bp_update(&S, p, step)) < 0 ) {
- goto fail;
- }
- mlen -= step;
- p += step;
- }
- if ( (err = blake2bp_update(&S, p, mlen)) < 0) {
- goto fail;
- }
- if ( (err = blake2bp_final(&S, hash, BLAKE2B_OUTBYTES)) < 0) {
- goto fail;
- }
-
- if (0 != memcmp(hash, blake2bp_keyed_kat[i], BLAKE2B_OUTBYTES)) {
- goto fail;
- }
- }
- }
-
- puts( "ok" );
- return 0;
-fail:
- puts("error");
- return -1;
-}
-#endif
diff --git a/deps/BLAKE2/power8/blake2s.c b/deps/BLAKE2/power8/blake2s.c
deleted file mode 100644
index c8b035f..0000000
--- a/deps/BLAKE2/power8/blake2s.c
+++ /dev/null
@@ -1,367 +0,0 @@
-/*
- BLAKE2 reference source code package - reference C implementations
-
- Copyright 2012, Samuel Neves . You may use this under the
- terms of the CC0, the OpenSSL Licence, or the Apache Public License 2.0, at
- your option. The terms of these licenses can be found at:
-
- - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0
- - OpenSSL license : https://www.openssl.org/source/license.html
- - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0
-
- More information about the BLAKE2 hash function can be found at
- https://blake2.net.
-*/
-
-#include
-#include
-#include
-
-#include "blake2.h"
-#include "blake2-impl.h"
-
-static const uint32_t blake2s_IV[8] =
-{
- 0x6A09E667UL, 0xBB67AE85UL, 0x3C6EF372UL, 0xA54FF53AUL,
- 0x510E527FUL, 0x9B05688CUL, 0x1F83D9ABUL, 0x5BE0CD19UL
-};
-
-static const uint8_t blake2s_sigma[10][16] =
-{
- { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 } ,
- { 14, 10, 4, 8, 9, 15, 13, 6, 1, 12, 0, 2, 11, 7, 5, 3 } ,
- { 11, 8, 12, 0, 5, 2, 15, 13, 10, 14, 3, 6, 7, 1, 9, 4 } ,
- { 7, 9, 3, 1, 13, 12, 11, 14, 2, 6, 5, 10, 4, 0, 15, 8 } ,
- { 9, 0, 5, 7, 2, 4, 10, 15, 14, 1, 11, 12, 6, 8, 3, 13 } ,
- { 2, 12, 6, 10, 0, 11, 8, 3, 4, 13, 7, 5, 15, 14, 1, 9 } ,
- { 12, 5, 1, 15, 14, 13, 4, 10, 0, 7, 6, 3, 9, 2, 8, 11 } ,
- { 13, 11, 7, 14, 12, 1, 3, 9, 5, 0, 15, 4, 8, 6, 2, 10 } ,
- { 6, 15, 14, 9, 11, 3, 0, 8, 12, 2, 13, 7, 1, 4, 10, 5 } ,
- { 10, 2, 8, 4, 7, 6, 1, 5, 15, 11, 9, 14, 3, 12, 13 , 0 } ,
-};
-
-static void blake2s_set_lastnode( blake2s_state *S )
-{
- S->f[1] = (uint32_t)-1;
-}
-
-/* Some helper functions, not necessarily useful */
-static int blake2s_is_lastblock( const blake2s_state *S )
-{
- return S->f[0] != 0;
-}
-
-static void blake2s_set_lastblock( blake2s_state *S )
-{
- if( S->last_node ) blake2s_set_lastnode( S );
-
- S->f[0] = (uint32_t)-1;
-}
-
-static void blake2s_increment_counter( blake2s_state *S, const uint32_t inc )
-{
- S->t[0] += inc;
- S->t[1] += ( S->t[0] < inc );
-}
-
-static void blake2s_init0( blake2s_state *S )
-{
- size_t i;
- memset( S, 0, sizeof( blake2s_state ) );
-
- for( i = 0; i < 8; ++i ) S->h[i] = blake2s_IV[i];
-}
-
-/* init2 xors IV with input parameter block */
-int blake2s_init_param( blake2s_state *S, const blake2s_param *P )
-{
- const unsigned char *p = ( const unsigned char * )( P );
- size_t i;
-
- blake2s_init0( S );
-
- /* IV XOR ParamBlock */
- for( i = 0; i < 8; ++i )
- S->h[i] ^= load32( &p[i * 4] );
-
- S->outlen = P->digest_length;
- return 0;
-}
-
-
-/* Sequential blake2s initialization */
-int blake2s_init( blake2s_state *S, size_t outlen )
-{
- blake2s_param P[1];
-
- /* Move interval verification here? */
- if ( ( !outlen ) || ( outlen > BLAKE2S_OUTBYTES ) ) return -1;
-
- P->digest_length = (uint8_t)outlen;
- P->key_length = 0;
- P->fanout = 1;
- P->depth = 1;
- store32( &P->leaf_length, 0 );
- store32( &P->node_offset, 0 );
- store16( &P->xof_length, 0 );
- P->node_depth = 0;
- P->inner_length = 0;
- /* memset(P->reserved, 0, sizeof(P->reserved) ); */
- memset( P->salt, 0, sizeof( P->salt ) );
- memset( P->personal, 0, sizeof( P->personal ) );
- return blake2s_init_param( S, P );
-}
-
-int blake2s_init_key( blake2s_state *S, size_t outlen, const void *key, size_t keylen )
-{
- blake2s_param P[1];
-
- if ( ( !outlen ) || ( outlen > BLAKE2S_OUTBYTES ) ) return -1;
-
- if ( !key || !keylen || keylen > BLAKE2S_KEYBYTES ) return -1;
-
- P->digest_length = (uint8_t)outlen;
- P->key_length = (uint8_t)keylen;
- P->fanout = 1;
- P->depth = 1;
- store32( &P->leaf_length, 0 );
- store32( &P->node_offset, 0 );
- store16( &P->xof_length, 0 );
- P->node_depth = 0;
- P->inner_length = 0;
- /* memset(P->reserved, 0, sizeof(P->reserved) ); */
- memset( P->salt, 0, sizeof( P->salt ) );
- memset( P->personal, 0, sizeof( P->personal ) );
-
- if( blake2s_init_param( S, P ) < 0 ) return -1;
-
- {
- uint8_t block[BLAKE2S_BLOCKBYTES];
- memset( block, 0, BLAKE2S_BLOCKBYTES );
- memcpy( block, key, keylen );
- blake2s_update( S, block, BLAKE2S_BLOCKBYTES );
- secure_zero_memory( block, BLAKE2S_BLOCKBYTES ); /* Burn the key from stack */
- }
- return 0;
-}
-
-#define G(r,i,a,b,c,d) \
- do { \
- a = a + b + m[blake2s_sigma[r][2*i+0]]; \
- d = rotr32(d ^ a, 16); \
- c = c + d; \
- b = rotr32(b ^ c, 12); \
- a = a + b + m[blake2s_sigma[r][2*i+1]]; \
- d = rotr32(d ^ a, 8); \
- c = c + d; \
- b = rotr32(b ^ c, 7); \
- } while(0)
-
-#define ROUND(r) \
- do { \
- G(r,0,v[ 0],v[ 4],v[ 8],v[12]); \
- G(r,1,v[ 1],v[ 5],v[ 9],v[13]); \
- G(r,2,v[ 2],v[ 6],v[10],v[14]); \
- G(r,3,v[ 3],v[ 7],v[11],v[15]); \
- G(r,4,v[ 0],v[ 5],v[10],v[15]); \
- G(r,5,v[ 1],v[ 6],v[11],v[12]); \
- G(r,6,v[ 2],v[ 7],v[ 8],v[13]); \
- G(r,7,v[ 3],v[ 4],v[ 9],v[14]); \
- } while(0)
-
-static void blake2s_compress( blake2s_state *S, const uint8_t in[BLAKE2S_BLOCKBYTES] )
-{
- uint32_t m[16];
- uint32_t v[16];
- size_t i;
-
- for( i = 0; i < 16; ++i ) {
- m[i] = load32( in + i * sizeof( m[i] ) );
- }
-
- for( i = 0; i < 8; ++i ) {
- v[i] = S->h[i];
- }
-
- v[ 8] = blake2s_IV[0];
- v[ 9] = blake2s_IV[1];
- v[10] = blake2s_IV[2];
- v[11] = blake2s_IV[3];
- v[12] = S->t[0] ^ blake2s_IV[4];
- v[13] = S->t[1] ^ blake2s_IV[5];
- v[14] = S->f[0] ^ blake2s_IV[6];
- v[15] = S->f[1] ^ blake2s_IV[7];
-
- ROUND( 0 );
- ROUND( 1 );
- ROUND( 2 );
- ROUND( 3 );
- ROUND( 4 );
- ROUND( 5 );
- ROUND( 6 );
- ROUND( 7 );
- ROUND( 8 );
- ROUND( 9 );
-
- for( i = 0; i < 8; ++i ) {
- S->h[i] = S->h[i] ^ v[i] ^ v[i + 8];
- }
-}
-
-#undef G
-#undef ROUND
-
-int blake2s_update( blake2s_state *S, const void *pin, size_t inlen )
-{
- const unsigned char * in = (const unsigned char *)pin;
- if( inlen > 0 )
- {
- size_t left = S->buflen;
- size_t fill = BLAKE2S_BLOCKBYTES - left;
- if( inlen > fill )
- {
- S->buflen = 0;
- memcpy( S->buf + left, in, fill ); /* Fill buffer */
- blake2s_increment_counter( S, BLAKE2S_BLOCKBYTES );
- blake2s_compress( S, S->buf ); /* Compress */
- in += fill; inlen -= fill;
- while(inlen > BLAKE2S_BLOCKBYTES) {
- blake2s_increment_counter(S, BLAKE2S_BLOCKBYTES);
- blake2s_compress( S, in );
- in += BLAKE2S_BLOCKBYTES;
- inlen -= BLAKE2S_BLOCKBYTES;
- }
- }
- memcpy( S->buf + S->buflen, in, inlen );
- S->buflen += inlen;
- }
- return 0;
-}
-
-int blake2s_final( blake2s_state *S, void *out, size_t outlen )
-{
- uint8_t buffer[BLAKE2S_OUTBYTES] = {0};
- size_t i;
-
- if( out == NULL || outlen < S->outlen )
- return -1;
-
- if( blake2s_is_lastblock( S ) )
- return -1;
-
- blake2s_increment_counter( S, ( uint32_t )S->buflen );
- blake2s_set_lastblock( S );
- memset( S->buf + S->buflen, 0, BLAKE2S_BLOCKBYTES - S->buflen ); /* Padding */
- blake2s_compress( S, S->buf );
-
- for( i = 0; i < 8; ++i ) /* Output full hash to temp buffer */
- store32( buffer + sizeof( S->h[i] ) * i, S->h[i] );
-
- memcpy( out, buffer, outlen );
- secure_zero_memory(buffer, sizeof(buffer));
- return 0;
-}
-
-int blake2s( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen )
-{
- blake2s_state S[1];
-
- /* Verify parameters */
- if ( NULL == in && inlen > 0 ) return -1;
-
- if ( NULL == out ) return -1;
-
- if ( NULL == key && keylen > 0) return -1;
-
- if( !outlen || outlen > BLAKE2S_OUTBYTES ) return -1;
-
- if( keylen > BLAKE2S_KEYBYTES ) return -1;
-
- if( keylen > 0 )
- {
- if( blake2s_init_key( S, outlen, key, keylen ) < 0 ) return -1;
- }
- else
- {
- if( blake2s_init( S, outlen ) < 0 ) return -1;
- }
-
- blake2s_update( S, ( const uint8_t * )in, inlen );
- blake2s_final( S, out, outlen );
- return 0;
-}
-
-#if defined(SUPERCOP)
-int crypto_hash( unsigned char *out, unsigned char *in, unsigned long long inlen )
-{
- return blake2s( out, BLAKE2S_OUTBYTES, in, inlen, NULL, 0 );
-}
-#endif
-
-#if defined(BLAKE2S_SELFTEST)
-#include
-#include "blake2-kat.h"
-int main( void )
-{
- uint8_t key[BLAKE2S_KEYBYTES];
- uint8_t buf[BLAKE2_KAT_LENGTH];
- size_t i, step;
-
- for( i = 0; i < BLAKE2S_KEYBYTES; ++i )
- key[i] = ( uint8_t )i;
-
- for( i = 0; i < BLAKE2_KAT_LENGTH; ++i )
- buf[i] = ( uint8_t )i;
-
- /* Test simple API */
- for( i = 0; i < BLAKE2_KAT_LENGTH; ++i )
- {
- uint8_t hash[BLAKE2S_OUTBYTES];
- blake2s( hash, BLAKE2S_OUTBYTES, buf, i, key, BLAKE2S_KEYBYTES );
-
- if( 0 != memcmp( hash, blake2s_keyed_kat[i], BLAKE2S_OUTBYTES ) )
- {
- goto fail;
- }
- }
-
- /* Test streaming API */
- for(step = 1; step < BLAKE2S_BLOCKBYTES; ++step) {
- for (i = 0; i < BLAKE2_KAT_LENGTH; ++i) {
- uint8_t hash[BLAKE2S_OUTBYTES];
- blake2s_state S;
- uint8_t * p = buf;
- size_t mlen = i;
- int err = 0;
-
- if( (err = blake2s_init_key(&S, BLAKE2S_OUTBYTES, key, BLAKE2S_KEYBYTES)) < 0 ) {
- goto fail;
- }
-
- while (mlen >= step) {
- if ( (err = blake2s_update(&S, p, step)) < 0 ) {
- goto fail;
- }
- mlen -= step;
- p += step;
- }
- if ( (err = blake2s_update(&S, p, mlen)) < 0) {
- goto fail;
- }
- if ( (err = blake2s_final(&S, hash, BLAKE2S_OUTBYTES)) < 0) {
- goto fail;
- }
-
- if (0 != memcmp(hash, blake2s_keyed_kat[i], BLAKE2S_OUTBYTES)) {
- goto fail;
- }
- }
- }
-
- puts( "ok" );
- return 0;
-fail:
- puts("error");
- return -1;
-}
-#endif
diff --git a/deps/BLAKE2/power8/blake2sp.c b/deps/BLAKE2/power8/blake2sp.c
deleted file mode 100644
index b0e9bae..0000000
--- a/deps/BLAKE2/power8/blake2sp.c
+++ /dev/null
@@ -1,359 +0,0 @@
-/*
- BLAKE2 reference source code package - reference C implementations
-
- Copyright 2012, Samuel Neves . You may use this under the
- terms of the CC0, the OpenSSL Licence, or the Apache Public License 2.0, at
- your option. The terms of these licenses can be found at:
-
- - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0
- - OpenSSL license : https://www.openssl.org/source/license.html
- - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0
-
- More information about the BLAKE2 hash function can be found at
- https://blake2.net.
-*/
-
-#include
-#include
-#include
-
-#if defined(_OPENMP)
-#include
-#endif
-
-#include "blake2.h"
-#include "blake2-impl.h"
-
-#define PARALLELISM_DEGREE 8
-
-/*
- blake2sp_init_param defaults to setting the expecting output length
- from the digest_length parameter block field.
-
- In some cases, however, we do not want this, as the output length
- of these instances is given by inner_length instead.
-*/
-static int blake2sp_init_leaf_param( blake2s_state *S, const blake2s_param *P )
-{
- int err = blake2s_init_param(S, P);
- S->outlen = P->inner_length;
- return err;
-}
-
-static int blake2sp_init_leaf( blake2s_state *S, size_t outlen, size_t keylen, uint64_t offset )
-{
- blake2s_param P[1];
- P->digest_length = (uint8_t)outlen;
- P->key_length = (uint8_t)keylen;
- P->fanout = PARALLELISM_DEGREE;
- P->depth = 2;
- store32( &P->leaf_length, 0 );
- store32( &P->node_offset, offset );
- store16( &P->xof_length, 0 );
- P->node_depth = 0;
- P->inner_length = BLAKE2S_OUTBYTES;
- memset( P->salt, 0, sizeof( P->salt ) );
- memset( P->personal, 0, sizeof( P->personal ) );
- return blake2sp_init_leaf_param( S, P );
-}
-
-static int blake2sp_init_root( blake2s_state *S, size_t outlen, size_t keylen )
-{
- blake2s_param P[1];
- P->digest_length = (uint8_t)outlen;
- P->key_length = (uint8_t)keylen;
- P->fanout = PARALLELISM_DEGREE;
- P->depth = 2;
- store32( &P->leaf_length, 0 );
- store32( &P->node_offset, 0 );
- store16( &P->xof_length, 0 );
- P->node_depth = 1;
- P->inner_length = BLAKE2S_OUTBYTES;
- memset( P->salt, 0, sizeof( P->salt ) );
- memset( P->personal, 0, sizeof( P->personal ) );
- return blake2s_init_param( S, P );
-}
-
-
-int blake2sp_init( blake2sp_state *S, size_t outlen )
-{
- size_t i;
-
- if( !outlen || outlen > BLAKE2S_OUTBYTES ) return -1;
-
- memset( S->buf, 0, sizeof( S->buf ) );
- S->buflen = 0;
- S->outlen = outlen;
-
- if( blake2sp_init_root( S->R, outlen, 0 ) < 0 )
- return -1;
-
- for( i = 0; i < PARALLELISM_DEGREE; ++i )
- if( blake2sp_init_leaf( S->S[i], outlen, 0, i ) < 0 ) return -1;
-
- S->R->last_node = 1;
- S->S[PARALLELISM_DEGREE - 1]->last_node = 1;
- return 0;
-}
-
-int blake2sp_init_key( blake2sp_state *S, size_t outlen, const void *key, size_t keylen )
-{
- size_t i;
-
- if( !outlen || outlen > BLAKE2S_OUTBYTES ) return -1;
-
- if( !key || !keylen || keylen > BLAKE2S_KEYBYTES ) return -1;
-
- memset( S->buf, 0, sizeof( S->buf ) );
- S->buflen = 0;
- S->outlen = outlen;
-
- if( blake2sp_init_root( S->R, outlen, keylen ) < 0 )
- return -1;
-
- for( i = 0; i < PARALLELISM_DEGREE; ++i )
- if( blake2sp_init_leaf( S->S[i], outlen, keylen, i ) < 0 ) return -1;
-
- S->R->last_node = 1;
- S->S[PARALLELISM_DEGREE - 1]->last_node = 1;
- {
- uint8_t block[BLAKE2S_BLOCKBYTES];
- memset( block, 0, BLAKE2S_BLOCKBYTES );
- memcpy( block, key, keylen );
-
- for( i = 0; i < PARALLELISM_DEGREE; ++i )
- blake2s_update( S->S[i], block, BLAKE2S_BLOCKBYTES );
-
- secure_zero_memory( block, BLAKE2S_BLOCKBYTES ); /* Burn the key from stack */
- }
- return 0;
-}
-
-
-int blake2sp_update( blake2sp_state *S, const void *pin, size_t inlen )
-{
- const unsigned char * in = (const unsigned char *)pin;
- size_t left = S->buflen;
- size_t fill = sizeof( S->buf ) - left;
- size_t i;
-
- if( left && inlen >= fill )
- {
- memcpy( S->buf + left, in, fill );
-
- for( i = 0; i < PARALLELISM_DEGREE; ++i )
- blake2s_update( S->S[i], S->buf + i * BLAKE2S_BLOCKBYTES, BLAKE2S_BLOCKBYTES );
-
- in += fill;
- inlen -= fill;
- left = 0;
- }
-
-#if defined(_OPENMP)
- #pragma omp parallel shared(S), num_threads(PARALLELISM_DEGREE)
-#else
- for( i = 0; i < PARALLELISM_DEGREE; ++i )
-#endif
- {
-#if defined(_OPENMP)
- size_t i = omp_get_thread_num();
-#endif
- size_t inlen__ = inlen;
- const unsigned char *in__ = ( const unsigned char * )in;
- in__ += i * BLAKE2S_BLOCKBYTES;
-
- while( inlen__ >= PARALLELISM_DEGREE * BLAKE2S_BLOCKBYTES )
- {
- blake2s_update( S->S[i], in__, BLAKE2S_BLOCKBYTES );
- in__ += PARALLELISM_DEGREE * BLAKE2S_BLOCKBYTES;
- inlen__ -= PARALLELISM_DEGREE * BLAKE2S_BLOCKBYTES;
- }
- }
-
- in += inlen - inlen % ( PARALLELISM_DEGREE * BLAKE2S_BLOCKBYTES );
- inlen %= PARALLELISM_DEGREE * BLAKE2S_BLOCKBYTES;
-
- if( inlen > 0 )
- memcpy( S->buf + left, in, inlen );
-
- S->buflen = left + inlen;
- return 0;
-}
-
-
-int blake2sp_final( blake2sp_state *S, void *out, size_t outlen )
-{
- uint8_t hash[PARALLELISM_DEGREE][BLAKE2S_OUTBYTES];
- size_t i;
-
- if(out == NULL || outlen < S->outlen) {
- return -1;
- }
-
- for( i = 0; i < PARALLELISM_DEGREE; ++i )
- {
- if( S->buflen > i * BLAKE2S_BLOCKBYTES )
- {
- size_t left = S->buflen - i * BLAKE2S_BLOCKBYTES;
-
- if( left > BLAKE2S_BLOCKBYTES ) left = BLAKE2S_BLOCKBYTES;
-
- blake2s_update( S->S[i], S->buf + i * BLAKE2S_BLOCKBYTES, left );
- }
-
- blake2s_final( S->S[i], hash[i], BLAKE2S_OUTBYTES );
- }
-
- for( i = 0; i < PARALLELISM_DEGREE; ++i )
- blake2s_update( S->R, hash[i], BLAKE2S_OUTBYTES );
-
- return blake2s_final( S->R, out, S->outlen );
-}
-
-
-int blake2sp( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen )
-{
- uint8_t hash[PARALLELISM_DEGREE][BLAKE2S_OUTBYTES];
- blake2s_state S[PARALLELISM_DEGREE][1];
- blake2s_state FS[1];
- size_t i;
-
- /* Verify parameters */
- if ( NULL == in && inlen > 0 ) return -1;
-
- if ( NULL == out ) return -1;
-
- if ( NULL == key && keylen > 0) return -1;
-
- if( !outlen || outlen > BLAKE2S_OUTBYTES ) return -1;
-
- if( keylen > BLAKE2S_KEYBYTES ) return -1;
-
- for( i = 0; i < PARALLELISM_DEGREE; ++i )
- if( blake2sp_init_leaf( S[i], outlen, keylen, i ) < 0 ) return -1;
-
- S[PARALLELISM_DEGREE - 1]->last_node = 1; /* mark last node */
-
- if( keylen > 0 )
- {
- uint8_t block[BLAKE2S_BLOCKBYTES];
- memset( block, 0, BLAKE2S_BLOCKBYTES );
- memcpy( block, key, keylen );
-
- for( i = 0; i < PARALLELISM_DEGREE; ++i )
- blake2s_update( S[i], block, BLAKE2S_BLOCKBYTES );
-
- secure_zero_memory( block, BLAKE2S_BLOCKBYTES ); /* Burn the key from stack */
- }
-
-#if defined(_OPENMP)
- #pragma omp parallel shared(S,hash), num_threads(PARALLELISM_DEGREE)
-#else
-
- for( i = 0; i < PARALLELISM_DEGREE; ++i )
-#endif
- {
-#if defined(_OPENMP)
- size_t i = omp_get_thread_num();
-#endif
- size_t inlen__ = inlen;
- const unsigned char *in__ = ( const unsigned char * )in;
- in__ += i * BLAKE2S_BLOCKBYTES;
-
- while( inlen__ >= PARALLELISM_DEGREE * BLAKE2S_BLOCKBYTES )
- {
- blake2s_update( S[i], in__, BLAKE2S_BLOCKBYTES );
- in__ += PARALLELISM_DEGREE * BLAKE2S_BLOCKBYTES;
- inlen__ -= PARALLELISM_DEGREE * BLAKE2S_BLOCKBYTES;
- }
-
- if( inlen__ > i * BLAKE2S_BLOCKBYTES )
- {
- const size_t left = inlen__ - i * BLAKE2S_BLOCKBYTES;
- const size_t len = left <= BLAKE2S_BLOCKBYTES ? left : BLAKE2S_BLOCKBYTES;
- blake2s_update( S[i], in__, len );
- }
-
- blake2s_final( S[i], hash[i], BLAKE2S_OUTBYTES );
- }
-
- if( blake2sp_init_root( FS, outlen, keylen ) < 0 )
- return -1;
-
- FS->last_node = 1;
-
- for( i = 0; i < PARALLELISM_DEGREE; ++i )
- blake2s_update( FS, hash[i], BLAKE2S_OUTBYTES );
-
- return blake2s_final( FS, out, outlen );
-}
-
-
-
-#if defined(BLAKE2SP_SELFTEST)
-#include
-#include "blake2-kat.h"
-int main( void )
-{
- uint8_t key[BLAKE2S_KEYBYTES];
- uint8_t buf[BLAKE2_KAT_LENGTH];
- size_t i, step;
-
- for( i = 0; i < BLAKE2S_KEYBYTES; ++i )
- key[i] = ( uint8_t )i;
-
- for( i = 0; i < BLAKE2_KAT_LENGTH; ++i )
- buf[i] = ( uint8_t )i;
-
- /* Test simple API */
- for( i = 0; i < BLAKE2_KAT_LENGTH; ++i )
- {
- uint8_t hash[BLAKE2S_OUTBYTES];
- blake2sp( hash, BLAKE2S_OUTBYTES, buf, i, key, BLAKE2S_KEYBYTES );
-
- if( 0 != memcmp( hash, blake2sp_keyed_kat[i], BLAKE2S_OUTBYTES ) )
- {
- goto fail;
- }
- }
-
- /* Test streaming API */
- for(step = 1; step < BLAKE2S_BLOCKBYTES; ++step) {
- for (i = 0; i < BLAKE2_KAT_LENGTH; ++i) {
- uint8_t hash[BLAKE2S_OUTBYTES];
- blake2sp_state S;
- uint8_t * p = buf;
- size_t mlen = i;
- int err = 0;
-
- if( (err = blake2sp_init_key(&S, BLAKE2S_OUTBYTES, key, BLAKE2S_KEYBYTES)) < 0 ) {
- goto fail;
- }
-
- while (mlen >= step) {
- if ( (err = blake2sp_update(&S, p, step)) < 0 ) {
- goto fail;
- }
- mlen -= step;
- p += step;
- }
- if ( (err = blake2sp_update(&S, p, mlen)) < 0) {
- goto fail;
- }
- if ( (err = blake2sp_final(&S, hash, BLAKE2S_OUTBYTES)) < 0) {
- goto fail;
- }
-
- if (0 != memcmp(hash, blake2sp_keyed_kat[i], BLAKE2S_OUTBYTES)) {
- goto fail;
- }
- }
- }
-
- puts( "ok" );
- return 0;
-fail:
- puts("error");
- return -1;
-}
-#endif
diff --git a/deps/BLAKE2/power8/blake2xb.c b/deps/BLAKE2/power8/blake2xb.c
deleted file mode 100644
index b369ee7..0000000
--- a/deps/BLAKE2/power8/blake2xb.c
+++ /dev/null
@@ -1,241 +0,0 @@
-/*
- BLAKE2 reference source code package - reference C implementations
-
- Copyright 2016, JP Aumasson .
- Copyright 2016, Samuel Neves .
-
- You may use this under the terms of the CC0, the OpenSSL Licence, or
- the Apache Public License 2.0, at your option. The terms of these
- licenses can be found at:
-
- - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0
- - OpenSSL license : https://www.openssl.org/source/license.html
- - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0
-
- More information about the BLAKE2 hash function can be found at
- https://blake2.net.
-*/
-
-#include
-#include
-#include
-
-#include "blake2.h"
-#include "blake2-impl.h"
-
-int blake2xb_init( blake2xb_state *S, const size_t outlen ) {
- return blake2xb_init_key(S, outlen, NULL, 0);
-}
-
-int blake2xb_init_key( blake2xb_state *S, const size_t outlen, const void *key, size_t keylen)
-{
- if ( outlen == 0 || outlen > 0xFFFFFFFFUL ) {
- return -1;
- }
-
- if (NULL != key && keylen > BLAKE2B_KEYBYTES) {
- return -1;
- }
-
- if (NULL == key && keylen > 0) {
- return -1;
- }
-
- /* Initialize parameter block */
- S->P->digest_length = BLAKE2B_OUTBYTES;
- S->P->key_length = keylen;
- S->P->fanout = 1;
- S->P->depth = 1;
- store32( &S->P->leaf_length, 0 );
- store32( &S->P->node_offset, 0 );
- store32( &S->P->xof_length, outlen );
- S->P->node_depth = 0;
- S->P->inner_length = 0;
- memset( S->P->reserved, 0, sizeof( S->P->reserved ) );
- memset( S->P->salt, 0, sizeof( S->P->salt ) );
- memset( S->P->personal, 0, sizeof( S->P->personal ) );
-
- if( blake2b_init_param( S->S, S->P ) < 0 ) {
- return -1;
- }
-
- if (keylen > 0) {
- uint8_t block[BLAKE2B_BLOCKBYTES];
- memset(block, 0, BLAKE2B_BLOCKBYTES);
- memcpy(block, key, keylen);
- blake2b_update(S->S, block, BLAKE2B_BLOCKBYTES);
- secure_zero_memory(block, BLAKE2B_BLOCKBYTES);
- }
- return 0;
-}
-
-int blake2xb_update( blake2xb_state *S, const void *in, size_t inlen ) {
- return blake2b_update( S->S, in, inlen );
-}
-
-int blake2xb_final( blake2xb_state *S, void *out, size_t outlen) {
-
- blake2b_state C[1];
- blake2b_param P[1];
- uint32_t xof_length = load32(&S->P->xof_length);
- uint8_t root[BLAKE2B_BLOCKBYTES];
- size_t i;
-
- if (NULL == out) {
- return -1;
- }
-
- /* outlen must match the output size defined in xof_length, */
- /* unless it was -1, in which case anything goes except 0. */
- if(xof_length == 0xFFFFFFFFUL) {
- if(outlen == 0) {
- return -1;
- }
- } else {
- if(outlen != xof_length) {
- return -1;
- }
- }
-
- /* Finalize the root hash */
- if (blake2b_final(S->S, root, BLAKE2B_OUTBYTES) < 0) {
- return -1;
- }
-
- /* Set common block structure values */
- /* Copy values from parent instance, and only change the ones below */
- memcpy(P, S->P, sizeof(blake2b_param));
- P->key_length = 0;
- P->fanout = 0;
- P->depth = 0;
- store32(&P->leaf_length, BLAKE2B_OUTBYTES);
- P->inner_length = BLAKE2B_OUTBYTES;
- P->node_depth = 0;
-
- for (i = 0; outlen > 0; ++i) {
- const size_t block_size = (outlen < BLAKE2B_OUTBYTES) ? outlen : BLAKE2B_OUTBYTES;
- /* Initialize state */
- P->digest_length = block_size;
- store32(&P->node_offset, i);
- blake2b_init_param(C, P);
- /* Process key if needed */
- blake2b_update(C, root, BLAKE2B_OUTBYTES);
- if (blake2b_final(C, (uint8_t *)out + i * BLAKE2B_OUTBYTES, block_size) < 0 ) {
- return -1;
- }
- outlen -= block_size;
- }
- secure_zero_memory(root, sizeof(root));
- secure_zero_memory(P, sizeof(P));
- secure_zero_memory(C, sizeof(C));
- /* Put blake2xb in an invalid state? cf. blake2s_is_lastblock */
- return 0;
-
-}
-
-int blake2xb(void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen)
-{
- blake2xb_state S[1];
-
- /* Verify parameters */
- if (NULL == in && inlen > 0)
- return -1;
-
- if (NULL == out)
- return -1;
-
- if (NULL == key && keylen > 0)
- return -1;
-
- if (keylen > BLAKE2B_KEYBYTES)
- return -1;
-
- if (outlen == 0)
- return -1;
-
- /* Initialize the root block structure */
- if (blake2xb_init_key(S, outlen, key, keylen) < 0) {
- return -1;
- }
-
- /* Absorb the input message */
- blake2xb_update(S, in, inlen);
-
- /* Compute the root node of the tree and the final hash using the counter construction */
- return blake2xb_final(S, out, outlen);
-}
-
-#if defined(BLAKE2XB_SELFTEST)
-#include
-#include "blake2-kat.h"
-int main( void )
-{
- uint8_t key[BLAKE2B_KEYBYTES];
- uint8_t buf[BLAKE2_KAT_LENGTH];
- size_t i, step, outlen;
-
- for( i = 0; i < BLAKE2B_KEYBYTES; ++i ) {
- key[i] = ( uint8_t )i;
- }
-
- for( i = 0; i < BLAKE2_KAT_LENGTH; ++i ) {
- buf[i] = ( uint8_t )i;
- }
-
- /* Testing length of outputs rather than inputs */
- /* (Test of input lengths mostly covered by blake2b tests) */
-
- /* Test simple API */
- for( outlen = 1; outlen <= BLAKE2_KAT_LENGTH; ++outlen )
- {
- uint8_t hash[BLAKE2_KAT_LENGTH] = {0};
- if( blake2xb( hash, outlen, buf, BLAKE2_KAT_LENGTH, key, BLAKE2B_KEYBYTES ) < 0 ) {
- goto fail;
- }
-
- if( 0 != memcmp( hash, blake2xb_keyed_kat[outlen-1], outlen ) )
- {
- goto fail;
- }
- }
-
- /* Test streaming API */
- for(step = 1; step < BLAKE2B_BLOCKBYTES; ++step) {
- for (outlen = 1; outlen <= BLAKE2_KAT_LENGTH; ++outlen) {
- uint8_t hash[BLAKE2_KAT_LENGTH];
- blake2xb_state S;
- uint8_t * p = buf;
- size_t mlen = BLAKE2_KAT_LENGTH;
- int err = 0;
-
- if( (err = blake2xb_init_key(&S, outlen, key, BLAKE2B_KEYBYTES)) < 0 ) {
- goto fail;
- }
-
- while (mlen >= step) {
- if ( (err = blake2xb_update(&S, p, step)) < 0 ) {
- goto fail;
- }
- mlen -= step;
- p += step;
- }
- if ( (err = blake2xb_update(&S, p, mlen)) < 0) {
- goto fail;
- }
- if ( (err = blake2xb_final(&S, hash, outlen)) < 0) {
- goto fail;
- }
-
- if (0 != memcmp(hash, blake2xb_keyed_kat[outlen-1], outlen)) {
- goto fail;
- }
- }
- }
-
- puts( "ok" );
- return 0;
-fail:
- puts("error");
- return -1;
-}
-#endif
diff --git a/deps/BLAKE2/power8/blake2xs.c b/deps/BLAKE2/power8/blake2xs.c
deleted file mode 100644
index 625693e..0000000
--- a/deps/BLAKE2/power8/blake2xs.c
+++ /dev/null
@@ -1,239 +0,0 @@
-/*
- BLAKE2 reference source code package - reference C implementations
-
- Copyright 2016, JP Aumasson .
- Copyright 2016, Samuel Neves .
-
- You may use this under the terms of the CC0, the OpenSSL Licence, or
- the Apache Public License 2.0, at your option. The terms of these
- licenses can be found at:
-
- - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0
- - OpenSSL license : https://www.openssl.org/source/license.html
- - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0
-
- More information about the BLAKE2 hash function can be found at
- https://blake2.net.
-*/
-
-#include
-#include
-#include
-
-#include "blake2.h"
-#include "blake2-impl.h"
-
-int blake2xs_init( blake2xs_state *S, const size_t outlen ) {
- return blake2xs_init_key(S, outlen, NULL, 0);
-}
-
-int blake2xs_init_key( blake2xs_state *S, const size_t outlen, const void *key, size_t keylen )
-{
- if ( outlen == 0 || outlen > 0xFFFFUL ) {
- return -1;
- }
-
- if (NULL != key && keylen > BLAKE2B_KEYBYTES) {
- return -1;
- }
-
- if (NULL == key && keylen > 0) {
- return -1;
- }
-
- /* Initialize parameter block */
- S->P->digest_length = BLAKE2S_OUTBYTES;
- S->P->key_length = keylen;
- S->P->fanout = 1;
- S->P->depth = 1;
- store32( &S->P->leaf_length, 0 );
- store32( &S->P->node_offset, 0 );
- store16( &S->P->xof_length, outlen );
- S->P->node_depth = 0;
- S->P->inner_length = 0;
- memset( S->P->salt, 0, sizeof( S->P->salt ) );
- memset( S->P->personal, 0, sizeof( S->P->personal ) );
-
- if( blake2s_init_param( S->S, S->P ) < 0 ) {
- return -1;
- }
-
- if (keylen > 0) {
- uint8_t block[BLAKE2S_BLOCKBYTES];
- memset(block, 0, BLAKE2S_BLOCKBYTES);
- memcpy(block, key, keylen);
- blake2s_update(S->S, block, BLAKE2S_BLOCKBYTES);
- secure_zero_memory(block, BLAKE2S_BLOCKBYTES);
- }
- return 0;
-}
-
-int blake2xs_update( blake2xs_state *S, const void *in, size_t inlen ) {
- return blake2s_update( S->S, in, inlen );
-}
-
-int blake2xs_final(blake2xs_state *S, void *out, size_t outlen) {
-
- blake2s_state C[1];
- blake2s_param P[1];
- uint16_t xof_length = load16(&S->P->xof_length);
- uint8_t root[BLAKE2S_BLOCKBYTES];
- size_t i;
-
- if (NULL == out) {
- return -1;
- }
-
- /* outlen must match the output size defined in xof_length, */
- /* unless it was -1, in which case anything goes except 0. */
- if(xof_length == 0xFFFFUL) {
- if(outlen == 0) {
- return -1;
- }
- } else {
- if(outlen != xof_length) {
- return -1;
- }
- }
-
- /* Finalize the root hash */
- if (blake2s_final(S->S, root, BLAKE2S_OUTBYTES) < 0) {
- return -1;
- }
-
- /* Set common block structure values */
- /* Copy values from parent instance, and only change the ones below */
- memcpy(P, S->P, sizeof(blake2s_param));
- P->key_length = 0;
- P->fanout = 0;
- P->depth = 0;
- store32(&P->leaf_length, BLAKE2S_OUTBYTES);
- P->inner_length = BLAKE2S_OUTBYTES;
- P->node_depth = 0;
-
- for (i = 0; outlen > 0; ++i) {
- const size_t block_size = (outlen < BLAKE2S_OUTBYTES) ? outlen : BLAKE2S_OUTBYTES;
- /* Initialize state */
- P->digest_length = block_size;
- store32(&P->node_offset, i);
- blake2s_init_param(C, P);
- /* Process key if needed */
- blake2s_update(C, root, BLAKE2S_OUTBYTES);
- if (blake2s_final(C, (uint8_t *)out + i * BLAKE2S_OUTBYTES, block_size) < 0) {
- return -1;
- }
- outlen -= block_size;
- }
- secure_zero_memory(root, sizeof(root));
- secure_zero_memory(P, sizeof(P));
- secure_zero_memory(C, sizeof(C));
- /* Put blake2xs in an invalid state? cf. blake2s_is_lastblock */
- return 0;
-}
-
-int blake2xs(void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen)
-{
- blake2xs_state S[1];
-
- /* Verify parameters */
- if (NULL == in && inlen > 0)
- return -1;
-
- if (NULL == out)
- return -1;
-
- if (NULL == key && keylen > 0)
- return -1;
-
- if (keylen > BLAKE2S_KEYBYTES)
- return -1;
-
- if (outlen == 0)
- return -1;
-
- /* Initialize the root block structure */
- if (blake2xs_init_key(S, outlen, key, keylen) < 0) {
- return -1;
- }
-
- /* Absorb the input message */
- blake2xs_update(S, in, inlen);
-
- /* Compute the root node of the tree and the final hash using the counter construction */
- return blake2xs_final(S, out, outlen);
-}
-
-#if defined(BLAKE2XS_SELFTEST)
-#include
-#include "blake2-kat.h"
-int main( void )
-{
- uint8_t key[BLAKE2S_KEYBYTES];
- uint8_t buf[BLAKE2_KAT_LENGTH];
- size_t i, step, outlen;
-
- for( i = 0; i < BLAKE2S_KEYBYTES; ++i ) {
- key[i] = ( uint8_t )i;
- }
-
- for( i = 0; i < BLAKE2_KAT_LENGTH; ++i ) {
- buf[i] = ( uint8_t )i;
- }
-
- /* Testing length of ouputs rather than inputs */
- /* (Test of input lengths mostly covered by blake2s tests) */
-
- /* Test simple API */
- for( outlen = 1; outlen <= BLAKE2_KAT_LENGTH; ++outlen )
- {
- uint8_t hash[BLAKE2_KAT_LENGTH] = {0};
- if( blake2xs( hash, outlen, buf, BLAKE2_KAT_LENGTH, key, BLAKE2S_KEYBYTES ) < 0 ) {
- goto fail;
- }
-
- if( 0 != memcmp( hash, blake2xs_keyed_kat[outlen-1], outlen ) )
- {
- goto fail;
- }
- }
-
- /* Test streaming API */
- for(step = 1; step < BLAKE2S_BLOCKBYTES; ++step) {
- for (outlen = 1; outlen <= BLAKE2_KAT_LENGTH; ++outlen) {
- uint8_t hash[BLAKE2_KAT_LENGTH];
- blake2xs_state S;
- uint8_t * p = buf;
- size_t mlen = BLAKE2_KAT_LENGTH;
- int err = 0;
-
- if( (err = blake2xs_init_key(&S, outlen, key, BLAKE2S_KEYBYTES)) < 0 ) {
- goto fail;
- }
-
- while (mlen >= step) {
- if ( (err = blake2xs_update(&S, p, step)) < 0 ) {
- goto fail;
- }
- mlen -= step;
- p += step;
- }
- if ( (err = blake2xs_update(&S, p, mlen)) < 0) {
- goto fail;
- }
- if ( (err = blake2xs_final(&S, hash, outlen)) < 0) {
- goto fail;
- }
-
- if (0 != memcmp(hash, blake2xs_keyed_kat[outlen-1], outlen)) {
- goto fail;
- }
- }
- }
-
- puts( "ok" );
- return 0;
-fail:
- puts("error");
- return -1;
-}
-#endif
diff --git a/deps/BLAKE2/power8/genkat-c.c b/deps/BLAKE2/power8/genkat-c.c
deleted file mode 100644
index 58a48fd..0000000
--- a/deps/BLAKE2/power8/genkat-c.c
+++ /dev/null
@@ -1,139 +0,0 @@
-/*
- BLAKE2 reference source code package - reference C implementations
-
- Copyright 2012, Samuel Neves . You may use this under the
- terms of the CC0, the OpenSSL Licence, or the Apache Public License 2.0, at
- your option. The terms of these licenses can be found at:
-
- - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0
- - OpenSSL license : https://www.openssl.org/source/license.html
- - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0
-
- More information about the BLAKE2 hash function can be found at
- https://blake2.net.
-*/
-
-#include
-#include
-#include
-#include
-
-#include "blake2.h"
-
-#define STR_(x) #x
-#define STR(x) STR_(x)
-
-#define LENGTH 256
-
-#define MAKE_KAT(name, size_prefix) \
- do { \
- printf("static const uint8_t " #name "_kat[BLAKE2_KAT_LENGTH][" #size_prefix \
- "_OUTBYTES] = \n{\n"); \
- \
- for (i = 0; i < LENGTH; ++i) { \
- name(hash, size_prefix##_OUTBYTES, in, i, NULL, 0); \
- printf("\t{\n\t\t"); \
- \
- for (j = 0; j < size_prefix##_OUTBYTES; ++j) \
- printf("0x%02X%s", hash[j], \
- (j + 1) == size_prefix##_OUTBYTES ? "\n" : j && !((j + 1) % 8) ? ",\n\t\t" : ", "); \
- \
- printf("\t},\n"); \
- } \
- \
- printf("};\n\n\n\n\n"); \
- } while (0)
-
-#define MAKE_KEYED_KAT(name, size_prefix) \
- do { \
- printf("static const uint8_t " #name "_keyed_kat[BLAKE2_KAT_LENGTH][" #size_prefix \
- "_OUTBYTES] = \n{\n"); \
- \
- for (i = 0; i < LENGTH; ++i) { \
- name(hash, size_prefix##_OUTBYTES, in, i, key, size_prefix##_KEYBYTES); \
- printf("\t{\n\t\t"); \
- \
- for (j = 0; j < size_prefix##_OUTBYTES; ++j) \
- printf("0x%02X%s", hash[j], \
- (j + 1) == size_prefix##_OUTBYTES ? "\n" : j && !((j + 1) % 8) ? ",\n\t\t" : ", "); \
- \
- printf("\t},\n"); \
- } \
- \
- printf("};\n\n\n\n\n"); \
- } while (0)
-
-#define MAKE_XOF_KAT(name) \
- do { \
- printf("static const uint8_t " #name "_kat[BLAKE2_KAT_LENGTH][BLAKE2_KAT_LENGTH] = \n{\n"); \
- \
- for (i = 1; i <= LENGTH; ++i) { \
- name(hash, i, in, LENGTH, NULL, 0); \
- printf("\t{\n\t\t"); \
- \
- for (j = 0; j < i; ++j) \
- printf("0x%02X%s", hash[j], \
- (j + 1) == LENGTH ? "\n" : j && !((j + 1) % 8) ? ",\n\t\t" : ", "); \
- \
- for (j = i; j < LENGTH; ++j) \
- printf("0x00%s", (j + 1) == LENGTH ? "\n" : j && !((j + 1) % 8) ? ",\n\t\t" : ", "); \
- \
- printf("\t},\n"); \
- } \
- \
- printf("};\n\n\n\n\n"); \
- } while (0)
-
-#define MAKE_XOF_KEYED_KAT(name, size_prefix) \
- do { \
- printf("static const uint8_t " #name \
- "_keyed_kat[BLAKE2_KAT_LENGTH][BLAKE2_KAT_LENGTH] = \n{\n"); \
- \
- for (i = 1; i <= LENGTH; ++i) { \
- name(hash, i, in, LENGTH, key, size_prefix##_KEYBYTES); \
- printf("\t{\n\t\t"); \
- \
- for (j = 0; j < i; ++j) \
- printf("0x%02X%s", hash[j], \
- (j + 1) == LENGTH ? "\n" : j && !((j + 1) % 8) ? ",\n\t\t" : ", "); \
- \
- for (j = i; j < LENGTH; ++j) \
- printf("0x00%s", (j + 1) == LENGTH ? "\n" : j && !((j + 1) % 8) ? ",\n\t\t" : ", "); \
- \
- printf("\t},\n"); \
- } \
- \
- printf("};\n\n\n\n\n"); \
- } while (0)
-
-int main() {
- uint8_t key[64] = {0};
- uint8_t in[LENGTH] = {0};
- uint8_t hash[LENGTH] = {0};
- size_t i, j;
-
- for (i = 0; i < sizeof(in); ++i)
- in[i] = i;
-
- for (i = 0; i < sizeof(key); ++i)
- key[i] = i;
-
- puts("#ifndef BLAKE2_KAT_H\n"
- "#define BLAKE2_KAT_H\n\n\n"
- "#include \n\n"
- "#define BLAKE2_KAT_LENGTH " STR(LENGTH) "\n\n\n");
- MAKE_KAT(blake2s, BLAKE2S);
- MAKE_KEYED_KAT(blake2s, BLAKE2S);
- MAKE_KAT(blake2b, BLAKE2B);
- MAKE_KEYED_KAT(blake2b, BLAKE2B);
- MAKE_KAT(blake2sp, BLAKE2S);
- MAKE_KEYED_KAT(blake2sp, BLAKE2S);
- MAKE_KAT(blake2bp, BLAKE2B);
- MAKE_KEYED_KAT(blake2bp, BLAKE2B);
- MAKE_XOF_KAT(blake2xs);
- MAKE_XOF_KEYED_KAT(blake2xs, BLAKE2S);
- MAKE_XOF_KAT(blake2xb);
- MAKE_XOF_KEYED_KAT(blake2xb, BLAKE2B);
- puts("#endif");
- return 0;
-}
diff --git a/deps/BLAKE2/power8/genkat-json.c b/deps/BLAKE2/power8/genkat-json.c
deleted file mode 100644
index 0275fb5..0000000
--- a/deps/BLAKE2/power8/genkat-json.c
+++ /dev/null
@@ -1,154 +0,0 @@
-/*
- BLAKE2 reference source code package - reference C implementations
-
- Copyright 2012, Samuel Neves . You may use this under the
- terms of the CC0, the OpenSSL Licence, or the Apache Public License 2.0, at
- your option. The terms of these licenses can be found at:
-
- - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0
- - OpenSSL license : https://www.openssl.org/source/license.html
- - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0
-
- More information about the BLAKE2 hash function can be found at
- https://blake2.net.
-*/
-
-#include
-#include
-#include
-#include
-
-#include "blake2.h"
-
-#define STR_(x) #x
-#define STR(x) STR_(x)
-
-#define LENGTH 256
-
-#define MAKE_KAT(name, size_prefix, first) \
- do { \
- for (i = 0; i < LENGTH; ++i) { \
- printf("%s\n{\n", i == 0 && first ? "" : ","); \
- \
- printf(" \"hash\": \"" #name "\",\n"); \
- printf(" \"in\": \""); \
- for (j = 0; j < i; ++j) \
- printf("%02x", in[j]); \
- \
- printf("\",\n"); \
- printf(" \"key\": \"\",\n"); \
- printf(" \"out\": \""); \
- \
- name(hash, size_prefix##_OUTBYTES, in, i, NULL, 0); \
- \
- for (j = 0; j < size_prefix##_OUTBYTES; ++j) \
- printf("%02x", hash[j]); \
- printf("\"\n"); \
- printf("}"); \
- } \
- } while (0)
-
-#define MAKE_KEYED_KAT(name, size_prefix, first) \
- do { \
- for (i = 0; i < LENGTH; ++i) { \
- printf("%s\n{\n", i == 0 && first ? "" : ","); \
- \
- printf(" \"hash\": \"" #name "\",\n"); \
- printf(" \"in\": \""); \
- for (j = 0; j < i; ++j) \
- printf("%02x", in[j]); \
- \
- printf("\",\n"); \
- printf(" \"key\": \""); \
- for (j = 0; j < size_prefix##_KEYBYTES; ++j) \
- printf("%02x", key[j]); \
- printf("\",\n"); \
- printf(" \"out\": \""); \
- \
- name(hash, size_prefix##_OUTBYTES, in, i, key, size_prefix##_KEYBYTES); \
- \
- for (j = 0; j < size_prefix##_OUTBYTES; ++j) \
- printf("%02x", hash[j]); \
- printf("\"\n"); \
- printf("}"); \
- } \
- } while (0)
-
-#define MAKE_XOF_KAT(name, first) \
- do { \
- for (i = 1; i <= LENGTH; ++i) { \
- printf("%s\n{\n", i == 1 && first ? "" : ","); \
- \
- printf(" \"hash\": \"" #name "\",\n"); \
- printf(" \"in\": \""); \
- for (j = 0; j < LENGTH; ++j) \
- printf("%02x", in[j]); \
- \
- printf("\",\n"); \
- printf(" \"key\": \"\",\n"); \
- printf(" \"out\": \""); \
- \
- name(hash, i, in, LENGTH, NULL, 0); \
- \
- for (j = 0; j < i; ++j) \
- printf("%02x", hash[j]); \
- printf("\"\n"); \
- printf("}"); \
- } \
- } while (0)
-
-#define MAKE_XOF_KEYED_KAT(name, size_prefix, first) \
- do { \
- for (i = 1; i <= LENGTH; ++i) { \
- printf("%s\n{\n", i == 1 && first ? "" : ","); \
- \
- printf(" \"hash\": \"" #name "\",\n"); \
- printf(" \"in\": \""); \
- for (j = 0; j < LENGTH; ++j) \
- printf("%02x", in[j]); \
- \
- printf("\",\n"); \
- printf(" \"key\": \""); \
- for (j = 0; j < size_prefix##_KEYBYTES; ++j) \
- printf("%02x", key[j]); \
- printf("\",\n"); \
- printf(" \"out\": \""); \
- \
- name(hash, i, in, LENGTH, key, size_prefix##_KEYBYTES); \
- \
- for (j = 0; j < i; ++j) \
- printf("%02x", hash[j]); \
- printf("\"\n"); \
- printf("}"); \
- } \
- } while (0)
-
-int main() {
- uint8_t key[64] = {0};
- uint8_t in[LENGTH] = {0};
- uint8_t hash[LENGTH] = {0};
- size_t i, j;
-
- for (i = 0; i < sizeof(in); ++i)
- in[i] = i;
-
- for (i = 0; i < sizeof(key); ++i)
- key[i] = i;
-
- printf("[");
- MAKE_KAT(blake2s, BLAKE2S, 1);
- MAKE_KEYED_KAT(blake2s, BLAKE2S, 0);
- MAKE_KAT(blake2b, BLAKE2B, 0);
- MAKE_KEYED_KAT(blake2b, BLAKE2B, 0);
- MAKE_KAT(blake2sp, BLAKE2S, 0);
- MAKE_KEYED_KAT(blake2sp, BLAKE2S, 0);
- MAKE_KAT(blake2bp, BLAKE2B, 0);
- MAKE_KEYED_KAT(blake2bp, BLAKE2B, 0);
- MAKE_XOF_KAT(blake2xs, 0);
- MAKE_XOF_KEYED_KAT(blake2xs, BLAKE2S, 0);
- MAKE_XOF_KAT(blake2xb, 0);
- MAKE_XOF_KEYED_KAT(blake2xb, BLAKE2B, 0);
- printf("\n]\n");
- fflush(stdout);
- return 0;
-}
diff --git a/deps/BLAKE2/power8/makefile b/deps/BLAKE2/power8/makefile
deleted file mode 100644
index 06b6d37..0000000
--- a/deps/BLAKE2/power8/makefile
+++ /dev/null
@@ -1,53 +0,0 @@
-# IBM XLC compiler options. -qinfo=all is -Wall, but it is noisy
-# CC=xlc
-# CFLAGS=-O3 -I../testvectors
-# POWER8_CFLAG=-qarch=pwr8 -qaltivec
-
-CC=gcc
-CFLAGS=-O3 -I../testvectors -Wall -Wextra -std=c89 -pedantic -Wno-long-long
-POWER8_CFLAG=-mcpu=power8
-BLAKEBINS=blake2s blake2b blake2sp blake2bp blake2xs blake2xb
-
-all: $(BLAKEBINS) check
-
-blake2s: blake2s.c
- $(CC) blake2s.c -o $@ $(CFLAGS) $(POWER8_CFLAG) -DBLAKE2S_SELFTEST
-
-blake2b: blake2b.c
- $(CC) blake2b.c -o $@ $(CFLAGS) $(POWER8_CFLAG) -DBLAKE2B_SELFTEST
-
-#blake2b: blake2b.c
-# $(CC) -E blake2b.c -o blake2b.i.c $(CFLAGS) $(POWER8_CFLAG) -DBLAKE2B_SELFTEST
-# sed -e '/^# [0-9]/d' blake2b.i.c > blake2b.i.c.t && mv blake2b.i.c.t blake2b.i.c
-# perl -pne "s/while(0);/while(0);\n/g" blake2b.i.c > blake2b.i.c.t && mv blake2b.i.c.t blake2b.i.c
-# cat -s blake2b.i.c > blake2b.i.c.t && mv blake2b.i.c.t blake2b.i.c
-# $(CC) blake2b.i.c -o $@ $(CFLAGS) $(POWER8_CFLAG) -DBLAKE2B_SELFTEST
-
-blake2sp: blake2sp.c blake2s.c
- $(CC) blake2sp.c blake2s.c -o $@ $(CFLAGS) $(POWER8_CFLAG) -DBLAKE2SP_SELFTEST
-
-blake2bp: blake2bp.c blake2b.c
- $(CC) blake2bp.c blake2b.c -o $@ $(CFLAGS) $(POWER8_CFLAG) -DBLAKE2BP_SELFTEST
-
-blake2xs: blake2xs.c blake2s.c
- $(CC) blake2xs.c blake2s.c -o $@ $(CFLAGS) $(POWER8_CFLAG) -DBLAKE2XS_SELFTEST
-
-blake2xb: blake2xb.c blake2b.c
- $(CC) blake2xb.c blake2b.c -o $@ $(CFLAGS) $(POWER8_CFLAG) -DBLAKE2XB_SELFTEST
-
-check: blake2s blake2b blake2sp blake2bp blake2xs blake2xb
- ./blake2s
- ./blake2b
- ./blake2sp
- ./blake2bp
- ./blake2xs
- ./blake2xb
-
-kat:
- $(CC) $(CFLAGS) -o genkat-c genkat-c.c blake2b.c blake2s.c blake2sp.c blake2bp.c blake2xs.c blake2xb.c
- $(CC) $(CFLAGS) -g -o genkat-json genkat-json.c blake2b.c blake2s.c blake2sp.c blake2bp.c blake2xs.c blake2xb.c
- ./genkat-c > blake2-kat.h
- ./genkat-json > blake2-kat.json
-
-clean:
- rm -rf *.o *.i.c genkat-c genkat-json blake2-kat.h blake2-kat.json $(BLAKEBINS)
diff --git a/deps/BLAKE2/ref/blake2-impl.h b/deps/BLAKE2/ref/blake2-impl.h
deleted file mode 100644
index c1df82e..0000000
--- a/deps/BLAKE2/ref/blake2-impl.h
+++ /dev/null
@@ -1,160 +0,0 @@
-/*
- BLAKE2 reference source code package - reference C implementations
-
- Copyright 2012, Samuel Neves . You may use this under the
- terms of the CC0, the OpenSSL Licence, or the Apache Public License 2.0, at
- your option. The terms of these licenses can be found at:
-
- - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0
- - OpenSSL license : https://www.openssl.org/source/license.html
- - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0
-
- More information about the BLAKE2 hash function can be found at
- https://blake2.net.
-*/
-#ifndef BLAKE2_IMPL_H
-#define BLAKE2_IMPL_H
-
-#include
-#include
-
-#if !defined(__cplusplus) && (!defined(__STDC_VERSION__) || __STDC_VERSION__ < 199901L)
- #if defined(_MSC_VER)
- #define BLAKE2_INLINE __inline
- #elif defined(__GNUC__)
- #define BLAKE2_INLINE __inline__
- #else
- #define BLAKE2_INLINE
- #endif
-#else
- #define BLAKE2_INLINE inline
-#endif
-
-static BLAKE2_INLINE uint32_t load32( const void *src )
-{
-#if defined(NATIVE_LITTLE_ENDIAN)
- uint32_t w;
- memcpy(&w, src, sizeof w);
- return w;
-#else
- const uint8_t *p = ( const uint8_t * )src;
- return (( uint32_t )( p[0] ) << 0) |
- (( uint32_t )( p[1] ) << 8) |
- (( uint32_t )( p[2] ) << 16) |
- (( uint32_t )( p[3] ) << 24) ;
-#endif
-}
-
-static BLAKE2_INLINE uint64_t load64( const void *src )
-{
-#if defined(NATIVE_LITTLE_ENDIAN)
- uint64_t w;
- memcpy(&w, src, sizeof w);
- return w;
-#else
- const uint8_t *p = ( const uint8_t * )src;
- return (( uint64_t )( p[0] ) << 0) |
- (( uint64_t )( p[1] ) << 8) |
- (( uint64_t )( p[2] ) << 16) |
- (( uint64_t )( p[3] ) << 24) |
- (( uint64_t )( p[4] ) << 32) |
- (( uint64_t )( p[5] ) << 40) |
- (( uint64_t )( p[6] ) << 48) |
- (( uint64_t )( p[7] ) << 56) ;
-#endif
-}
-
-static BLAKE2_INLINE uint16_t load16( const void *src )
-{
-#if defined(NATIVE_LITTLE_ENDIAN)
- uint16_t w;
- memcpy(&w, src, sizeof w);
- return w;
-#else
- const uint8_t *p = ( const uint8_t * )src;
- return ( uint16_t )((( uint32_t )( p[0] ) << 0) |
- (( uint32_t )( p[1] ) << 8));
-#endif
-}
-
-static BLAKE2_INLINE void store16( void *dst, uint16_t w )
-{
-#if defined(NATIVE_LITTLE_ENDIAN)
- memcpy(dst, &w, sizeof w);
-#else
- uint8_t *p = ( uint8_t * )dst;
- *p++ = ( uint8_t )w; w >>= 8;
- *p++ = ( uint8_t )w;
-#endif
-}
-
-static BLAKE2_INLINE void store32( void *dst, uint32_t w )
-{
-#if defined(NATIVE_LITTLE_ENDIAN)
- memcpy(dst, &w, sizeof w);
-#else
- uint8_t *p = ( uint8_t * )dst;
- p[0] = (uint8_t)(w >> 0);
- p[1] = (uint8_t)(w >> 8);
- p[2] = (uint8_t)(w >> 16);
- p[3] = (uint8_t)(w >> 24);
-#endif
-}
-
-static BLAKE2_INLINE void store64( void *dst, uint64_t w )
-{
-#if defined(NATIVE_LITTLE_ENDIAN)
- memcpy(dst, &w, sizeof w);
-#else
- uint8_t *p = ( uint8_t * )dst;
- p[0] = (uint8_t)(w >> 0);
- p[1] = (uint8_t)(w >> 8);
- p[2] = (uint8_t)(w >> 16);
- p[3] = (uint8_t)(w >> 24);
- p[4] = (uint8_t)(w >> 32);
- p[5] = (uint8_t)(w >> 40);
- p[6] = (uint8_t)(w >> 48);
- p[7] = (uint8_t)(w >> 56);
-#endif
-}
-
-static BLAKE2_INLINE uint64_t load48( const void *src )
-{
- const uint8_t *p = ( const uint8_t * )src;
- return (( uint64_t )( p[0] ) << 0) |
- (( uint64_t )( p[1] ) << 8) |
- (( uint64_t )( p[2] ) << 16) |
- (( uint64_t )( p[3] ) << 24) |
- (( uint64_t )( p[4] ) << 32) |
- (( uint64_t )( p[5] ) << 40) ;
-}
-
-static BLAKE2_INLINE void store48( void *dst, uint64_t w )
-{
- uint8_t *p = ( uint8_t * )dst;
- p[0] = (uint8_t)(w >> 0);
- p[1] = (uint8_t)(w >> 8);
- p[2] = (uint8_t)(w >> 16);
- p[3] = (uint8_t)(w >> 24);
- p[4] = (uint8_t)(w >> 32);
- p[5] = (uint8_t)(w >> 40);
-}
-
-static BLAKE2_INLINE uint32_t rotr32( const uint32_t w, const unsigned c )
-{
- return ( w >> c ) | ( w << ( 32 - c ) );
-}
-
-static BLAKE2_INLINE uint64_t rotr64( const uint64_t w, const unsigned c )
-{
- return ( w >> c ) | ( w << ( 64 - c ) );
-}
-
-/* prevents compiler optimizing out memset() */
-static BLAKE2_INLINE void secure_zero_memory(void *v, size_t n)
-{
- static void *(*const volatile memset_v)(void *, int, size_t) = &memset;
- memset_v(v, 0, n);
-}
-
-#endif
diff --git a/deps/BLAKE2/ref/blake2.h b/deps/BLAKE2/ref/blake2.h
deleted file mode 100644
index ca39030..0000000
--- a/deps/BLAKE2/ref/blake2.h
+++ /dev/null
@@ -1,195 +0,0 @@
-/*
- BLAKE2 reference source code package - reference C implementations
-
- Copyright 2012, Samuel Neves . You may use this under the
- terms of the CC0, the OpenSSL Licence, or the Apache Public License 2.0, at
- your option. The terms of these licenses can be found at:
-
- - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0
- - OpenSSL license : https://www.openssl.org/source/license.html
- - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0
-
- More information about the BLAKE2 hash function can be found at
- https://blake2.net.
-*/
-#ifndef BLAKE2_H
-#define BLAKE2_H
-
-#include
-#include
-
-#if defined(_MSC_VER)
-#define BLAKE2_PACKED(x) __pragma(pack(push, 1)) x __pragma(pack(pop))
-#else
-#define BLAKE2_PACKED(x) x __attribute__((packed))
-#endif
-
-#if defined(__cplusplus)
-extern "C" {
-#endif
-
- enum blake2s_constant
- {
- BLAKE2S_BLOCKBYTES = 64,
- BLAKE2S_OUTBYTES = 32,
- BLAKE2S_KEYBYTES = 32,
- BLAKE2S_SALTBYTES = 8,
- BLAKE2S_PERSONALBYTES = 8
- };
-
- enum blake2b_constant
- {
- BLAKE2B_BLOCKBYTES = 128,
- BLAKE2B_OUTBYTES = 64,
- BLAKE2B_KEYBYTES = 64,
- BLAKE2B_SALTBYTES = 16,
- BLAKE2B_PERSONALBYTES = 16
- };
-
- typedef struct blake2s_state__
- {
- uint32_t h[8];
- uint32_t t[2];
- uint32_t f[2];
- uint8_t buf[BLAKE2S_BLOCKBYTES];
- size_t buflen;
- size_t outlen;
- uint8_t last_node;
- } blake2s_state;
-
- typedef struct blake2b_state__
- {
- uint64_t h[8];
- uint64_t t[2];
- uint64_t f[2];
- uint8_t buf[BLAKE2B_BLOCKBYTES];
- size_t buflen;
- size_t outlen;
- uint8_t last_node;
- } blake2b_state;
-
- typedef struct blake2sp_state__
- {
- blake2s_state S[8][1];
- blake2s_state R[1];
- uint8_t buf[8 * BLAKE2S_BLOCKBYTES];
- size_t buflen;
- size_t outlen;
- } blake2sp_state;
-
- typedef struct blake2bp_state__
- {
- blake2b_state S[4][1];
- blake2b_state R[1];
- uint8_t buf[4 * BLAKE2B_BLOCKBYTES];
- size_t buflen;
- size_t outlen;
- } blake2bp_state;
-
-
- BLAKE2_PACKED(struct blake2s_param__
- {
- uint8_t digest_length; /* 1 */
- uint8_t key_length; /* 2 */
- uint8_t fanout; /* 3 */
- uint8_t depth; /* 4 */
- uint32_t leaf_length; /* 8 */
- uint32_t node_offset; /* 12 */
- uint16_t xof_length; /* 14 */
- uint8_t node_depth; /* 15 */
- uint8_t inner_length; /* 16 */
- /* uint8_t reserved[0]; */
- uint8_t salt[BLAKE2S_SALTBYTES]; /* 24 */
- uint8_t personal[BLAKE2S_PERSONALBYTES]; /* 32 */
- });
-
- typedef struct blake2s_param__ blake2s_param;
-
- BLAKE2_PACKED(struct blake2b_param__
- {
- uint8_t digest_length; /* 1 */
- uint8_t key_length; /* 2 */
- uint8_t fanout; /* 3 */
- uint8_t depth; /* 4 */
- uint32_t leaf_length; /* 8 */
- uint32_t node_offset; /* 12 */
- uint32_t xof_length; /* 16 */
- uint8_t node_depth; /* 17 */
- uint8_t inner_length; /* 18 */
- uint8_t reserved[14]; /* 32 */
- uint8_t salt[BLAKE2B_SALTBYTES]; /* 48 */
- uint8_t personal[BLAKE2B_PERSONALBYTES]; /* 64 */
- });
-
- typedef struct blake2b_param__ blake2b_param;
-
- typedef struct blake2xs_state__
- {
- blake2s_state S[1];
- blake2s_param P[1];
- } blake2xs_state;
-
- typedef struct blake2xb_state__
- {
- blake2b_state S[1];
- blake2b_param P[1];
- } blake2xb_state;
-
- /* Padded structs result in a compile-time error */
- enum {
- BLAKE2_DUMMY_1 = 1/(int)(sizeof(blake2s_param) == BLAKE2S_OUTBYTES),
- BLAKE2_DUMMY_2 = 1/(int)(sizeof(blake2b_param) == BLAKE2B_OUTBYTES)
- };
-
- /* Streaming API */
- int blake2s_init( blake2s_state *S, size_t outlen );
- int blake2s_init_key( blake2s_state *S, size_t outlen, const void *key, size_t keylen );
- int blake2s_init_param( blake2s_state *S, const blake2s_param *P );
- int blake2s_update( blake2s_state *S, const void *in, size_t inlen );
- int blake2s_final( blake2s_state *S, void *out, size_t outlen );
-
- int blake2b_init( blake2b_state *S, size_t outlen );
- int blake2b_init_key( blake2b_state *S, size_t outlen, const void *key, size_t keylen );
- int blake2b_init_param( blake2b_state *S, const blake2b_param *P );
- int blake2b_update( blake2b_state *S, const void *in, size_t inlen );
- int blake2b_final( blake2b_state *S, void *out, size_t outlen );
-
- int blake2sp_init( blake2sp_state *S, size_t outlen );
- int blake2sp_init_key( blake2sp_state *S, size_t outlen, const void *key, size_t keylen );
- int blake2sp_update( blake2sp_state *S, const void *in, size_t inlen );
- int blake2sp_final( blake2sp_state *S, void *out, size_t outlen );
-
- int blake2bp_init( blake2bp_state *S, size_t outlen );
- int blake2bp_init_key( blake2bp_state *S, size_t outlen, const void *key, size_t keylen );
- int blake2bp_update( blake2bp_state *S, const void *in, size_t inlen );
- int blake2bp_final( blake2bp_state *S, void *out, size_t outlen );
-
- /* Variable output length API */
- int blake2xs_init( blake2xs_state *S, const size_t outlen );
- int blake2xs_init_key( blake2xs_state *S, const size_t outlen, const void *key, size_t keylen );
- int blake2xs_update( blake2xs_state *S, const void *in, size_t inlen );
- int blake2xs_final(blake2xs_state *S, void *out, size_t outlen);
-
- int blake2xb_init( blake2xb_state *S, const size_t outlen );
- int blake2xb_init_key( blake2xb_state *S, const size_t outlen, const void *key, size_t keylen );
- int blake2xb_update( blake2xb_state *S, const void *in, size_t inlen );
- int blake2xb_final(blake2xb_state *S, void *out, size_t outlen);
-
- /* Simple API */
- int blake2s( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen );
- int blake2b( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen );
-
- int blake2sp( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen );
- int blake2bp( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen );
-
- int blake2xs( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen );
- int blake2xb( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen );
-
- /* This is simply an alias for blake2b */
- int blake2( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen );
-
-#if defined(__cplusplus)
-}
-#endif
-
-#endif
diff --git a/deps/BLAKE2/ref/blake2b-ref.c b/deps/BLAKE2/ref/blake2b-ref.c
deleted file mode 100644
index cd38b1b..0000000
--- a/deps/BLAKE2/ref/blake2b-ref.c
+++ /dev/null
@@ -1,379 +0,0 @@
-/*
- BLAKE2 reference source code package - reference C implementations
-
- Copyright 2012, Samuel Neves . You may use this under the
- terms of the CC0, the OpenSSL Licence, or the Apache Public License 2.0, at
- your option. The terms of these licenses can be found at:
-
- - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0
- - OpenSSL license : https://www.openssl.org/source/license.html
- - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0
-
- More information about the BLAKE2 hash function can be found at
- https://blake2.net.
-*/
-
-#include
-#include
-#include
-
-#include "blake2.h"
-#include "blake2-impl.h"
-
-static const uint64_t blake2b_IV[8] =
-{
- 0x6a09e667f3bcc908ULL, 0xbb67ae8584caa73bULL,
- 0x3c6ef372fe94f82bULL, 0xa54ff53a5f1d36f1ULL,
- 0x510e527fade682d1ULL, 0x9b05688c2b3e6c1fULL,
- 0x1f83d9abfb41bd6bULL, 0x5be0cd19137e2179ULL
-};
-
-static const uint8_t blake2b_sigma[12][16] =
-{
- { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 } ,
- { 14, 10, 4, 8, 9, 15, 13, 6, 1, 12, 0, 2, 11, 7, 5, 3 } ,
- { 11, 8, 12, 0, 5, 2, 15, 13, 10, 14, 3, 6, 7, 1, 9, 4 } ,
- { 7, 9, 3, 1, 13, 12, 11, 14, 2, 6, 5, 10, 4, 0, 15, 8 } ,
- { 9, 0, 5, 7, 2, 4, 10, 15, 14, 1, 11, 12, 6, 8, 3, 13 } ,
- { 2, 12, 6, 10, 0, 11, 8, 3, 4, 13, 7, 5, 15, 14, 1, 9 } ,
- { 12, 5, 1, 15, 14, 13, 4, 10, 0, 7, 6, 3, 9, 2, 8, 11 } ,
- { 13, 11, 7, 14, 12, 1, 3, 9, 5, 0, 15, 4, 8, 6, 2, 10 } ,
- { 6, 15, 14, 9, 11, 3, 0, 8, 12, 2, 13, 7, 1, 4, 10, 5 } ,
- { 10, 2, 8, 4, 7, 6, 1, 5, 15, 11, 9, 14, 3, 12, 13 , 0 } ,
- { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 } ,
- { 14, 10, 4, 8, 9, 15, 13, 6, 1, 12, 0, 2, 11, 7, 5, 3 }
-};
-
-
-static void blake2b_set_lastnode( blake2b_state *S )
-{
- S->f[1] = (uint64_t)-1;
-}
-
-/* Some helper functions, not necessarily useful */
-static int blake2b_is_lastblock( const blake2b_state *S )
-{
- return S->f[0] != 0;
-}
-
-static void blake2b_set_lastblock( blake2b_state *S )
-{
- if( S->last_node ) blake2b_set_lastnode( S );
-
- S->f[0] = (uint64_t)-1;
-}
-
-static void blake2b_increment_counter( blake2b_state *S, const uint64_t inc )
-{
- S->t[0] += inc;
- S->t[1] += ( S->t[0] < inc );
-}
-
-static void blake2b_init0( blake2b_state *S )
-{
- size_t i;
- memset( S, 0, sizeof( blake2b_state ) );
-
- for( i = 0; i < 8; ++i ) S->h[i] = blake2b_IV[i];
-}
-
-/* init xors IV with input parameter block */
-int blake2b_init_param( blake2b_state *S, const blake2b_param *P )
-{
- const uint8_t *p = ( const uint8_t * )( P );
- size_t i;
-
- blake2b_init0( S );
-
- /* IV XOR ParamBlock */
- for( i = 0; i < 8; ++i )
- S->h[i] ^= load64( p + sizeof( S->h[i] ) * i );
-
- S->outlen = P->digest_length;
- return 0;
-}
-
-
-
-int blake2b_init( blake2b_state *S, size_t outlen )
-{
- blake2b_param P[1];
-
- if ( ( !outlen ) || ( outlen > BLAKE2B_OUTBYTES ) ) return -1;
-
- P->digest_length = (uint8_t)outlen;
- P->key_length = 0;
- P->fanout = 1;
- P->depth = 1;
- store32( &P->leaf_length, 0 );
- store32( &P->node_offset, 0 );
- store32( &P->xof_length, 0 );
- P->node_depth = 0;
- P->inner_length = 0;
- memset( P->reserved, 0, sizeof( P->reserved ) );
- memset( P->salt, 0, sizeof( P->salt ) );
- memset( P->personal, 0, sizeof( P->personal ) );
- return blake2b_init_param( S, P );
-}
-
-
-int blake2b_init_key( blake2b_state *S, size_t outlen, const void *key, size_t keylen )
-{
- blake2b_param P[1];
-
- if ( ( !outlen ) || ( outlen > BLAKE2B_OUTBYTES ) ) return -1;
-
- if ( !key || !keylen || keylen > BLAKE2B_KEYBYTES ) return -1;
-
- P->digest_length = (uint8_t)outlen;
- P->key_length = (uint8_t)keylen;
- P->fanout = 1;
- P->depth = 1;
- store32( &P->leaf_length, 0 );
- store32( &P->node_offset, 0 );
- store32( &P->xof_length, 0 );
- P->node_depth = 0;
- P->inner_length = 0;
- memset( P->reserved, 0, sizeof( P->reserved ) );
- memset( P->salt, 0, sizeof( P->salt ) );
- memset( P->personal, 0, sizeof( P->personal ) );
-
- if( blake2b_init_param( S, P ) < 0 ) return -1;
-
- {
- uint8_t block[BLAKE2B_BLOCKBYTES];
- memset( block, 0, BLAKE2B_BLOCKBYTES );
- memcpy( block, key, keylen );
- blake2b_update( S, block, BLAKE2B_BLOCKBYTES );
- secure_zero_memory( block, BLAKE2B_BLOCKBYTES ); /* Burn the key from stack */
- }
- return 0;
-}
-
-#define G(r,i,a,b,c,d) \
- do { \
- a = a + b + m[blake2b_sigma[r][2*i+0]]; \
- d = rotr64(d ^ a, 32); \
- c = c + d; \
- b = rotr64(b ^ c, 24); \
- a = a + b + m[blake2b_sigma[r][2*i+1]]; \
- d = rotr64(d ^ a, 16); \
- c = c + d; \
- b = rotr64(b ^ c, 63); \
- } while(0)
-
-#define ROUND(r) \
- do { \
- G(r,0,v[ 0],v[ 4],v[ 8],v[12]); \
- G(r,1,v[ 1],v[ 5],v[ 9],v[13]); \
- G(r,2,v[ 2],v[ 6],v[10],v[14]); \
- G(r,3,v[ 3],v[ 7],v[11],v[15]); \
- G(r,4,v[ 0],v[ 5],v[10],v[15]); \
- G(r,5,v[ 1],v[ 6],v[11],v[12]); \
- G(r,6,v[ 2],v[ 7],v[ 8],v[13]); \
- G(r,7,v[ 3],v[ 4],v[ 9],v[14]); \
- } while(0)
-
-static void blake2b_compress( blake2b_state *S, const uint8_t block[BLAKE2B_BLOCKBYTES] )
-{
- uint64_t m[16];
- uint64_t v[16];
- size_t i;
-
- for( i = 0; i < 16; ++i ) {
- m[i] = load64( block + i * sizeof( m[i] ) );
- }
-
- for( i = 0; i < 8; ++i ) {
- v[i] = S->h[i];
- }
-
- v[ 8] = blake2b_IV[0];
- v[ 9] = blake2b_IV[1];
- v[10] = blake2b_IV[2];
- v[11] = blake2b_IV[3];
- v[12] = blake2b_IV[4] ^ S->t[0];
- v[13] = blake2b_IV[5] ^ S->t[1];
- v[14] = blake2b_IV[6] ^ S->f[0];
- v[15] = blake2b_IV[7] ^ S->f[1];
-
- ROUND( 0 );
- ROUND( 1 );
- ROUND( 2 );
- ROUND( 3 );
- ROUND( 4 );
- ROUND( 5 );
- ROUND( 6 );
- ROUND( 7 );
- ROUND( 8 );
- ROUND( 9 );
- ROUND( 10 );
- ROUND( 11 );
-
- for( i = 0; i < 8; ++i ) {
- S->h[i] = S->h[i] ^ v[i] ^ v[i + 8];
- }
-}
-
-#undef G
-#undef ROUND
-
-int blake2b_update( blake2b_state *S, const void *pin, size_t inlen )
-{
- const unsigned char * in = (const unsigned char *)pin;
- if( inlen > 0 )
- {
- size_t left = S->buflen;
- size_t fill = BLAKE2B_BLOCKBYTES - left;
- if( inlen > fill )
- {
- S->buflen = 0;
- memcpy( S->buf + left, in, fill ); /* Fill buffer */
- blake2b_increment_counter( S, BLAKE2B_BLOCKBYTES );
- blake2b_compress( S, S->buf ); /* Compress */
- in += fill; inlen -= fill;
- while(inlen > BLAKE2B_BLOCKBYTES) {
- blake2b_increment_counter(S, BLAKE2B_BLOCKBYTES);
- blake2b_compress( S, in );
- in += BLAKE2B_BLOCKBYTES;
- inlen -= BLAKE2B_BLOCKBYTES;
- }
- }
- memcpy( S->buf + S->buflen, in, inlen );
- S->buflen += inlen;
- }
- return 0;
-}
-
-int blake2b_final( blake2b_state *S, void *out, size_t outlen )
-{
- uint8_t buffer[BLAKE2B_OUTBYTES] = {0};
- size_t i;
-
- if( out == NULL || outlen < S->outlen )
- return -1;
-
- if( blake2b_is_lastblock( S ) )
- return -1;
-
- blake2b_increment_counter( S, S->buflen );
- blake2b_set_lastblock( S );
- memset( S->buf + S->buflen, 0, BLAKE2B_BLOCKBYTES - S->buflen ); /* Padding */
- blake2b_compress( S, S->buf );
-
- for( i = 0; i < 8; ++i ) /* Output full hash to temp buffer */
- store64( buffer + sizeof( S->h[i] ) * i, S->h[i] );
-
- memcpy( out, buffer, S->outlen );
- secure_zero_memory(buffer, sizeof(buffer));
- return 0;
-}
-
-/* inlen, at least, should be uint64_t. Others can be size_t. */
-int blake2b( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen )
-{
- blake2b_state S[1];
-
- /* Verify parameters */
- if ( NULL == in && inlen > 0 ) return -1;
-
- if ( NULL == out ) return -1;
-
- if( NULL == key && keylen > 0 ) return -1;
-
- if( !outlen || outlen > BLAKE2B_OUTBYTES ) return -1;
-
- if( keylen > BLAKE2B_KEYBYTES ) return -1;
-
- if( keylen > 0 )
- {
- if( blake2b_init_key( S, outlen, key, keylen ) < 0 ) return -1;
- }
- else
- {
- if( blake2b_init( S, outlen ) < 0 ) return -1;
- }
-
- blake2b_update( S, ( const uint8_t * )in, inlen );
- blake2b_final( S, out, outlen );
- return 0;
-}
-
-int blake2( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen ) {
- return blake2b(out, outlen, in, inlen, key, keylen);
-}
-
-#if defined(SUPERCOP)
-int crypto_hash( unsigned char *out, unsigned char *in, unsigned long long inlen )
-{
- return blake2b( out, BLAKE2B_OUTBYTES, in, inlen, NULL, 0 );
-}
-#endif
-
-#if defined(BLAKE2B_SELFTEST)
-#include
-#include "blake2-kat.h"
-int main( void )
-{
- uint8_t key[BLAKE2B_KEYBYTES];
- uint8_t buf[BLAKE2_KAT_LENGTH];
- size_t i, step;
-
- for( i = 0; i < BLAKE2B_KEYBYTES; ++i )
- key[i] = ( uint8_t )i;
-
- for( i = 0; i < BLAKE2_KAT_LENGTH; ++i )
- buf[i] = ( uint8_t )i;
-
- /* Test simple API */
- for( i = 0; i < BLAKE2_KAT_LENGTH; ++i )
- {
- uint8_t hash[BLAKE2B_OUTBYTES];
- blake2b( hash, BLAKE2B_OUTBYTES, buf, i, key, BLAKE2B_KEYBYTES );
-
- if( 0 != memcmp( hash, blake2b_keyed_kat[i], BLAKE2B_OUTBYTES ) )
- {
- goto fail;
- }
- }
-
- /* Test streaming API */
- for(step = 1; step < BLAKE2B_BLOCKBYTES; ++step) {
- for (i = 0; i < BLAKE2_KAT_LENGTH; ++i) {
- uint8_t hash[BLAKE2B_OUTBYTES];
- blake2b_state S;
- uint8_t * p = buf;
- size_t mlen = i;
- int err = 0;
-
- if( (err = blake2b_init_key(&S, BLAKE2B_OUTBYTES, key, BLAKE2B_KEYBYTES)) < 0 ) {
- goto fail;
- }
-
- while (mlen >= step) {
- if ( (err = blake2b_update(&S, p, step)) < 0 ) {
- goto fail;
- }
- mlen -= step;
- p += step;
- }
- if ( (err = blake2b_update(&S, p, mlen)) < 0) {
- goto fail;
- }
- if ( (err = blake2b_final(&S, hash, BLAKE2B_OUTBYTES)) < 0) {
- goto fail;
- }
-
- if (0 != memcmp(hash, blake2b_keyed_kat[i], BLAKE2B_OUTBYTES)) {
- goto fail;
- }
- }
- }
-
- puts( "ok" );
- return 0;
-fail:
- puts("error");
- return -1;
-}
-#endif
diff --git a/deps/BLAKE2/ref/blake2bp-ref.c b/deps/BLAKE2/ref/blake2bp-ref.c
deleted file mode 100644
index d58a152..0000000
--- a/deps/BLAKE2/ref/blake2bp-ref.c
+++ /dev/null
@@ -1,359 +0,0 @@
-/*
- BLAKE2 reference source code package - reference C implementations
-
- Copyright 2012, Samuel Neves . You may use this under the
- terms of the CC0, the OpenSSL Licence, or the Apache Public License 2.0, at
- your option. The terms of these licenses can be found at:
-
- - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0
- - OpenSSL license : https://www.openssl.org/source/license.html
- - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0
-
- More information about the BLAKE2 hash function can be found at
- https://blake2.net.
-*/
-
-#include
-#include
-#include
-#include
-
-#if defined(_OPENMP)
-#include
-#endif
-
-#include "blake2.h"
-#include "blake2-impl.h"
-
-#define PARALLELISM_DEGREE 4
-
-/*
- blake2b_init_param defaults to setting the expecting output length
- from the digest_length parameter block field.
-
- In some cases, however, we do not want this, as the output length
- of these instances is given by inner_length instead.
-*/
-static int blake2bp_init_leaf_param( blake2b_state *S, const blake2b_param *P )
-{
- int err = blake2b_init_param(S, P);
- S->outlen = P->inner_length;
- return err;
-}
-
-static int blake2bp_init_leaf( blake2b_state *S, size_t outlen, size_t keylen, uint64_t offset )
-{
- blake2b_param P[1];
- P->digest_length = (uint8_t)outlen;
- P->key_length = (uint8_t)keylen;
- P->fanout = PARALLELISM_DEGREE;
- P->depth = 2;
- store32( &P->leaf_length, 0 );
- store32( &P->node_offset, offset );
- store32( &P->xof_length, 0 );
- P->node_depth = 0;
- P->inner_length = BLAKE2B_OUTBYTES;
- memset( P->reserved, 0, sizeof( P->reserved ) );
- memset( P->salt, 0, sizeof( P->salt ) );
- memset( P->personal, 0, sizeof( P->personal ) );
- return blake2bp_init_leaf_param( S, P );
-}
-
-static int blake2bp_init_root( blake2b_state *S, size_t outlen, size_t keylen )
-{
- blake2b_param P[1];
- P->digest_length = (uint8_t)outlen;
- P->key_length = (uint8_t)keylen;
- P->fanout = PARALLELISM_DEGREE;
- P->depth = 2;
- store32( &P->leaf_length, 0 );
- store32( &P->node_offset, 0 );
- store32( &P->xof_length, 0 );
- P->node_depth = 1;
- P->inner_length = BLAKE2B_OUTBYTES;
- memset( P->reserved, 0, sizeof( P->reserved ) );
- memset( P->salt, 0, sizeof( P->salt ) );
- memset( P->personal, 0, sizeof( P->personal ) );
- return blake2b_init_param( S, P );
-}
-
-
-int blake2bp_init( blake2bp_state *S, size_t outlen )
-{
- size_t i;
-
- if( !outlen || outlen > BLAKE2B_OUTBYTES ) return -1;
-
- memset( S->buf, 0, sizeof( S->buf ) );
- S->buflen = 0;
- S->outlen = outlen;
-
- if( blake2bp_init_root( S->R, outlen, 0 ) < 0 )
- return -1;
-
- for( i = 0; i < PARALLELISM_DEGREE; ++i )
- if( blake2bp_init_leaf( S->S[i], outlen, 0, i ) < 0 ) return -1;
-
- S->R->last_node = 1;
- S->S[PARALLELISM_DEGREE - 1]->last_node = 1;
- return 0;
-}
-
-int blake2bp_init_key( blake2bp_state *S, size_t outlen, const void *key, size_t keylen )
-{
- size_t i;
-
- if( !outlen || outlen > BLAKE2B_OUTBYTES ) return -1;
-
- if( !key || !keylen || keylen > BLAKE2B_KEYBYTES ) return -1;
-
- memset( S->buf, 0, sizeof( S->buf ) );
- S->buflen = 0;
- S->outlen = outlen;
-
- if( blake2bp_init_root( S->R, outlen, keylen ) < 0 )
- return -1;
-
- for( i = 0; i < PARALLELISM_DEGREE; ++i )
- if( blake2bp_init_leaf( S->S[i], outlen, keylen, i ) < 0 ) return -1;
-
- S->R->last_node = 1;
- S->S[PARALLELISM_DEGREE - 1]->last_node = 1;
- {
- uint8_t block[BLAKE2B_BLOCKBYTES];
- memset( block, 0, BLAKE2B_BLOCKBYTES );
- memcpy( block, key, keylen );
-
- for( i = 0; i < PARALLELISM_DEGREE; ++i )
- blake2b_update( S->S[i], block, BLAKE2B_BLOCKBYTES );
-
- secure_zero_memory( block, BLAKE2B_BLOCKBYTES ); /* Burn the key from stack */
- }
- return 0;
-}
-
-
-int blake2bp_update( blake2bp_state *S, const void *pin, size_t inlen )
-{
- const unsigned char * in = (const unsigned char *)pin;
- size_t left = S->buflen;
- size_t fill = sizeof( S->buf ) - left;
- size_t i;
-
- if( left && inlen >= fill )
- {
- memcpy( S->buf + left, in, fill );
-
- for( i = 0; i < PARALLELISM_DEGREE; ++i )
- blake2b_update( S->S[i], S->buf + i * BLAKE2B_BLOCKBYTES, BLAKE2B_BLOCKBYTES );
-
- in += fill;
- inlen -= fill;
- left = 0;
- }
-
-#if defined(_OPENMP)
- #pragma omp parallel shared(S), num_threads(PARALLELISM_DEGREE)
-#else
-
- for( i = 0; i < PARALLELISM_DEGREE; ++i )
-#endif
- {
-#if defined(_OPENMP)
- size_t i = omp_get_thread_num();
-#endif
- size_t inlen__ = inlen;
- const unsigned char *in__ = ( const unsigned char * )in;
- in__ += i * BLAKE2B_BLOCKBYTES;
-
- while( inlen__ >= PARALLELISM_DEGREE * BLAKE2B_BLOCKBYTES )
- {
- blake2b_update( S->S[i], in__, BLAKE2B_BLOCKBYTES );
- in__ += PARALLELISM_DEGREE * BLAKE2B_BLOCKBYTES;
- inlen__ -= PARALLELISM_DEGREE * BLAKE2B_BLOCKBYTES;
- }
- }
-
- in += inlen - inlen % ( PARALLELISM_DEGREE * BLAKE2B_BLOCKBYTES );
- inlen %= PARALLELISM_DEGREE * BLAKE2B_BLOCKBYTES;
-
- if( inlen > 0 )
- memcpy( S->buf + left, in, inlen );
-
- S->buflen = left + inlen;
- return 0;
-}
-
-int blake2bp_final( blake2bp_state *S, void *out, size_t outlen )
-{
- uint8_t hash[PARALLELISM_DEGREE][BLAKE2B_OUTBYTES];
- size_t i;
-
- if(out == NULL || outlen < S->outlen) {
- return -1;
- }
-
- for( i = 0; i < PARALLELISM_DEGREE; ++i )
- {
- if( S->buflen > i * BLAKE2B_BLOCKBYTES )
- {
- size_t left = S->buflen - i * BLAKE2B_BLOCKBYTES;
-
- if( left > BLAKE2B_BLOCKBYTES ) left = BLAKE2B_BLOCKBYTES;
-
- blake2b_update( S->S[i], S->buf + i * BLAKE2B_BLOCKBYTES, left );
- }
-
- blake2b_final( S->S[i], hash[i], BLAKE2B_OUTBYTES );
- }
-
- for( i = 0; i < PARALLELISM_DEGREE; ++i )
- blake2b_update( S->R, hash[i], BLAKE2B_OUTBYTES );
-
- return blake2b_final( S->R, out, S->outlen );
-}
-
-int blake2bp( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen )
-{
- uint8_t hash[PARALLELISM_DEGREE][BLAKE2B_OUTBYTES];
- blake2b_state S[PARALLELISM_DEGREE][1];
- blake2b_state FS[1];
- size_t i;
-
- /* Verify parameters */
- if ( NULL == in && inlen > 0 ) return -1;
-
- if ( NULL == out ) return -1;
-
- if( NULL == key && keylen > 0 ) return -1;
-
- if( !outlen || outlen > BLAKE2B_OUTBYTES ) return -1;
-
- if( keylen > BLAKE2B_KEYBYTES ) return -1;
-
- for( i = 0; i < PARALLELISM_DEGREE; ++i )
- if( blake2bp_init_leaf( S[i], outlen, keylen, i ) < 0 ) return -1;
-
- S[PARALLELISM_DEGREE - 1]->last_node = 1; /* mark last node */
-
- if( keylen > 0 )
- {
- uint8_t block[BLAKE2B_BLOCKBYTES];
- memset( block, 0, BLAKE2B_BLOCKBYTES );
- memcpy( block, key, keylen );
-
- for( i = 0; i < PARALLELISM_DEGREE; ++i )
- blake2b_update( S[i], block, BLAKE2B_BLOCKBYTES );
-
- secure_zero_memory( block, BLAKE2B_BLOCKBYTES ); /* Burn the key from stack */
- }
-
-#if defined(_OPENMP)
- #pragma omp parallel shared(S,hash), num_threads(PARALLELISM_DEGREE)
-#else
-
- for( i = 0; i < PARALLELISM_DEGREE; ++i )
-#endif
- {
-#if defined(_OPENMP)
- size_t i = omp_get_thread_num();
-#endif
- size_t inlen__ = inlen;
- const unsigned char *in__ = ( const unsigned char * )in;
- in__ += i * BLAKE2B_BLOCKBYTES;
-
- while( inlen__ >= PARALLELISM_DEGREE * BLAKE2B_BLOCKBYTES )
- {
- blake2b_update( S[i], in__, BLAKE2B_BLOCKBYTES );
- in__ += PARALLELISM_DEGREE * BLAKE2B_BLOCKBYTES;
- inlen__ -= PARALLELISM_DEGREE * BLAKE2B_BLOCKBYTES;
- }
-
- if( inlen__ > i * BLAKE2B_BLOCKBYTES )
- {
- const size_t left = inlen__ - i * BLAKE2B_BLOCKBYTES;
- const size_t len = left <= BLAKE2B_BLOCKBYTES ? left : BLAKE2B_BLOCKBYTES;
- blake2b_update( S[i], in__, len );
- }
-
- blake2b_final( S[i], hash[i], BLAKE2B_OUTBYTES );
- }
-
- if( blake2bp_init_root( FS, outlen, keylen ) < 0 )
- return -1;
-
- FS->last_node = 1; /* Mark as last node */
-
- for( i = 0; i < PARALLELISM_DEGREE; ++i )
- blake2b_update( FS, hash[i], BLAKE2B_OUTBYTES );
-
- return blake2b_final( FS, out, outlen );;
-}
-
-#if defined(BLAKE2BP_SELFTEST)
-#include
-#include "blake2-kat.h"
-int main( void )
-{
- uint8_t key[BLAKE2B_KEYBYTES];
- uint8_t buf[BLAKE2_KAT_LENGTH];
- size_t i, step;
-
- for( i = 0; i < BLAKE2B_KEYBYTES; ++i )
- key[i] = ( uint8_t )i;
-
- for( i = 0; i < BLAKE2_KAT_LENGTH; ++i )
- buf[i] = ( uint8_t )i;
-
- /* Test simple API */
- for( i = 0; i < BLAKE2_KAT_LENGTH; ++i )
- {
- uint8_t hash[BLAKE2B_OUTBYTES];
- blake2bp( hash, BLAKE2B_OUTBYTES, buf, i, key, BLAKE2B_KEYBYTES );
-
- if( 0 != memcmp( hash, blake2bp_keyed_kat[i], BLAKE2B_OUTBYTES ) )
- {
- goto fail;
- }
- }
-
- /* Test streaming API */
- for(step = 1; step < BLAKE2B_BLOCKBYTES; ++step) {
- for (i = 0; i < BLAKE2_KAT_LENGTH; ++i) {
- uint8_t hash[BLAKE2B_OUTBYTES];
- blake2bp_state S;
- uint8_t * p = buf;
- size_t mlen = i;
- int err = 0;
-
- if( (err = blake2bp_init_key(&S, BLAKE2B_OUTBYTES, key, BLAKE2B_KEYBYTES)) < 0 ) {
- goto fail;
- }
-
- while (mlen >= step) {
- if ( (err = blake2bp_update(&S, p, step)) < 0 ) {
- goto fail;
- }
- mlen -= step;
- p += step;
- }
- if ( (err = blake2bp_update(&S, p, mlen)) < 0) {
- goto fail;
- }
- if ( (err = blake2bp_final(&S, hash, BLAKE2B_OUTBYTES)) < 0) {
- goto fail;
- }
-
- if (0 != memcmp(hash, blake2bp_keyed_kat[i], BLAKE2B_OUTBYTES)) {
- goto fail;
- }
- }
- }
-
- puts( "ok" );
- return 0;
-fail:
- puts("error");
- return -1;
-}
-#endif
diff --git a/deps/BLAKE2/ref/blake2s-ref.c b/deps/BLAKE2/ref/blake2s-ref.c
deleted file mode 100644
index c8b035f..0000000
--- a/deps/BLAKE2/ref/blake2s-ref.c
+++ /dev/null
@@ -1,367 +0,0 @@
-/*
- BLAKE2 reference source code package - reference C implementations
-
- Copyright 2012, Samuel Neves . You may use this under the
- terms of the CC0, the OpenSSL Licence, or the Apache Public License 2.0, at
- your option. The terms of these licenses can be found at:
-
- - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0
- - OpenSSL license : https://www.openssl.org/source/license.html
- - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0
-
- More information about the BLAKE2 hash function can be found at
- https://blake2.net.
-*/
-
-#include
-#include
-#include
-
-#include "blake2.h"
-#include "blake2-impl.h"
-
-static const uint32_t blake2s_IV[8] =
-{
- 0x6A09E667UL, 0xBB67AE85UL, 0x3C6EF372UL, 0xA54FF53AUL,
- 0x510E527FUL, 0x9B05688CUL, 0x1F83D9ABUL, 0x5BE0CD19UL
-};
-
-static const uint8_t blake2s_sigma[10][16] =
-{
- { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 } ,
- { 14, 10, 4, 8, 9, 15, 13, 6, 1, 12, 0, 2, 11, 7, 5, 3 } ,
- { 11, 8, 12, 0, 5, 2, 15, 13, 10, 14, 3, 6, 7, 1, 9, 4 } ,
- { 7, 9, 3, 1, 13, 12, 11, 14, 2, 6, 5, 10, 4, 0, 15, 8 } ,
- { 9, 0, 5, 7, 2, 4, 10, 15, 14, 1, 11, 12, 6, 8, 3, 13 } ,
- { 2, 12, 6, 10, 0, 11, 8, 3, 4, 13, 7, 5, 15, 14, 1, 9 } ,
- { 12, 5, 1, 15, 14, 13, 4, 10, 0, 7, 6, 3, 9, 2, 8, 11 } ,
- { 13, 11, 7, 14, 12, 1, 3, 9, 5, 0, 15, 4, 8, 6, 2, 10 } ,
- { 6, 15, 14, 9, 11, 3, 0, 8, 12, 2, 13, 7, 1, 4, 10, 5 } ,
- { 10, 2, 8, 4, 7, 6, 1, 5, 15, 11, 9, 14, 3, 12, 13 , 0 } ,
-};
-
-static void blake2s_set_lastnode( blake2s_state *S )
-{
- S->f[1] = (uint32_t)-1;
-}
-
-/* Some helper functions, not necessarily useful */
-static int blake2s_is_lastblock( const blake2s_state *S )
-{
- return S->f[0] != 0;
-}
-
-static void blake2s_set_lastblock( blake2s_state *S )
-{
- if( S->last_node ) blake2s_set_lastnode( S );
-
- S->f[0] = (uint32_t)-1;
-}
-
-static void blake2s_increment_counter( blake2s_state *S, const uint32_t inc )
-{
- S->t[0] += inc;
- S->t[1] += ( S->t[0] < inc );
-}
-
-static void blake2s_init0( blake2s_state *S )
-{
- size_t i;
- memset( S, 0, sizeof( blake2s_state ) );
-
- for( i = 0; i < 8; ++i ) S->h[i] = blake2s_IV[i];
-}
-
-/* init2 xors IV with input parameter block */
-int blake2s_init_param( blake2s_state *S, const blake2s_param *P )
-{
- const unsigned char *p = ( const unsigned char * )( P );
- size_t i;
-
- blake2s_init0( S );
-
- /* IV XOR ParamBlock */
- for( i = 0; i < 8; ++i )
- S->h[i] ^= load32( &p[i * 4] );
-
- S->outlen = P->digest_length;
- return 0;
-}
-
-
-/* Sequential blake2s initialization */
-int blake2s_init( blake2s_state *S, size_t outlen )
-{
- blake2s_param P[1];
-
- /* Move interval verification here? */
- if ( ( !outlen ) || ( outlen > BLAKE2S_OUTBYTES ) ) return -1;
-
- P->digest_length = (uint8_t)outlen;
- P->key_length = 0;
- P->fanout = 1;
- P->depth = 1;
- store32( &P->leaf_length, 0 );
- store32( &P->node_offset, 0 );
- store16( &P->xof_length, 0 );
- P->node_depth = 0;
- P->inner_length = 0;
- /* memset(P->reserved, 0, sizeof(P->reserved) ); */
- memset( P->salt, 0, sizeof( P->salt ) );
- memset( P->personal, 0, sizeof( P->personal ) );
- return blake2s_init_param( S, P );
-}
-
-int blake2s_init_key( blake2s_state *S, size_t outlen, const void *key, size_t keylen )
-{
- blake2s_param P[1];
-
- if ( ( !outlen ) || ( outlen > BLAKE2S_OUTBYTES ) ) return -1;
-
- if ( !key || !keylen || keylen > BLAKE2S_KEYBYTES ) return -1;
-
- P->digest_length = (uint8_t)outlen;
- P->key_length = (uint8_t)keylen;
- P->fanout = 1;
- P->depth = 1;
- store32( &P->leaf_length, 0 );
- store32( &P->node_offset, 0 );
- store16( &P->xof_length, 0 );
- P->node_depth = 0;
- P->inner_length = 0;
- /* memset(P->reserved, 0, sizeof(P->reserved) ); */
- memset( P->salt, 0, sizeof( P->salt ) );
- memset( P->personal, 0, sizeof( P->personal ) );
-
- if( blake2s_init_param( S, P ) < 0 ) return -1;
-
- {
- uint8_t block[BLAKE2S_BLOCKBYTES];
- memset( block, 0, BLAKE2S_BLOCKBYTES );
- memcpy( block, key, keylen );
- blake2s_update( S, block, BLAKE2S_BLOCKBYTES );
- secure_zero_memory( block, BLAKE2S_BLOCKBYTES ); /* Burn the key from stack */
- }
- return 0;
-}
-
-#define G(r,i,a,b,c,d) \
- do { \
- a = a + b + m[blake2s_sigma[r][2*i+0]]; \
- d = rotr32(d ^ a, 16); \
- c = c + d; \
- b = rotr32(b ^ c, 12); \
- a = a + b + m[blake2s_sigma[r][2*i+1]]; \
- d = rotr32(d ^ a, 8); \
- c = c + d; \
- b = rotr32(b ^ c, 7); \
- } while(0)
-
-#define ROUND(r) \
- do { \
- G(r,0,v[ 0],v[ 4],v[ 8],v[12]); \
- G(r,1,v[ 1],v[ 5],v[ 9],v[13]); \
- G(r,2,v[ 2],v[ 6],v[10],v[14]); \
- G(r,3,v[ 3],v[ 7],v[11],v[15]); \
- G(r,4,v[ 0],v[ 5],v[10],v[15]); \
- G(r,5,v[ 1],v[ 6],v[11],v[12]); \
- G(r,6,v[ 2],v[ 7],v[ 8],v[13]); \
- G(r,7,v[ 3],v[ 4],v[ 9],v[14]); \
- } while(0)
-
-static void blake2s_compress( blake2s_state *S, const uint8_t in[BLAKE2S_BLOCKBYTES] )
-{
- uint32_t m[16];
- uint32_t v[16];
- size_t i;
-
- for( i = 0; i < 16; ++i ) {
- m[i] = load32( in + i * sizeof( m[i] ) );
- }
-
- for( i = 0; i < 8; ++i ) {
- v[i] = S->h[i];
- }
-
- v[ 8] = blake2s_IV[0];
- v[ 9] = blake2s_IV[1];
- v[10] = blake2s_IV[2];
- v[11] = blake2s_IV[3];
- v[12] = S->t[0] ^ blake2s_IV[4];
- v[13] = S->t[1] ^ blake2s_IV[5];
- v[14] = S->f[0] ^ blake2s_IV[6];
- v[15] = S->f[1] ^ blake2s_IV[7];
-
- ROUND( 0 );
- ROUND( 1 );
- ROUND( 2 );
- ROUND( 3 );
- ROUND( 4 );
- ROUND( 5 );
- ROUND( 6 );
- ROUND( 7 );
- ROUND( 8 );
- ROUND( 9 );
-
- for( i = 0; i < 8; ++i ) {
- S->h[i] = S->h[i] ^ v[i] ^ v[i + 8];
- }
-}
-
-#undef G
-#undef ROUND
-
-int blake2s_update( blake2s_state *S, const void *pin, size_t inlen )
-{
- const unsigned char * in = (const unsigned char *)pin;
- if( inlen > 0 )
- {
- size_t left = S->buflen;
- size_t fill = BLAKE2S_BLOCKBYTES - left;
- if( inlen > fill )
- {
- S->buflen = 0;
- memcpy( S->buf + left, in, fill ); /* Fill buffer */
- blake2s_increment_counter( S, BLAKE2S_BLOCKBYTES );
- blake2s_compress( S, S->buf ); /* Compress */
- in += fill; inlen -= fill;
- while(inlen > BLAKE2S_BLOCKBYTES) {
- blake2s_increment_counter(S, BLAKE2S_BLOCKBYTES);
- blake2s_compress( S, in );
- in += BLAKE2S_BLOCKBYTES;
- inlen -= BLAKE2S_BLOCKBYTES;
- }
- }
- memcpy( S->buf + S->buflen, in, inlen );
- S->buflen += inlen;
- }
- return 0;
-}
-
-int blake2s_final( blake2s_state *S, void *out, size_t outlen )
-{
- uint8_t buffer[BLAKE2S_OUTBYTES] = {0};
- size_t i;
-
- if( out == NULL || outlen < S->outlen )
- return -1;
-
- if( blake2s_is_lastblock( S ) )
- return -1;
-
- blake2s_increment_counter( S, ( uint32_t )S->buflen );
- blake2s_set_lastblock( S );
- memset( S->buf + S->buflen, 0, BLAKE2S_BLOCKBYTES - S->buflen ); /* Padding */
- blake2s_compress( S, S->buf );
-
- for( i = 0; i < 8; ++i ) /* Output full hash to temp buffer */
- store32( buffer + sizeof( S->h[i] ) * i, S->h[i] );
-
- memcpy( out, buffer, outlen );
- secure_zero_memory(buffer, sizeof(buffer));
- return 0;
-}
-
-int blake2s( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen )
-{
- blake2s_state S[1];
-
- /* Verify parameters */
- if ( NULL == in && inlen > 0 ) return -1;
-
- if ( NULL == out ) return -1;
-
- if ( NULL == key && keylen > 0) return -1;
-
- if( !outlen || outlen > BLAKE2S_OUTBYTES ) return -1;
-
- if( keylen > BLAKE2S_KEYBYTES ) return -1;
-
- if( keylen > 0 )
- {
- if( blake2s_init_key( S, outlen, key, keylen ) < 0 ) return -1;
- }
- else
- {
- if( blake2s_init( S, outlen ) < 0 ) return -1;
- }
-
- blake2s_update( S, ( const uint8_t * )in, inlen );
- blake2s_final( S, out, outlen );
- return 0;
-}
-
-#if defined(SUPERCOP)
-int crypto_hash( unsigned char *out, unsigned char *in, unsigned long long inlen )
-{
- return blake2s( out, BLAKE2S_OUTBYTES, in, inlen, NULL, 0 );
-}
-#endif
-
-#if defined(BLAKE2S_SELFTEST)
-#include
-#include "blake2-kat.h"
-int main( void )
-{
- uint8_t key[BLAKE2S_KEYBYTES];
- uint8_t buf[BLAKE2_KAT_LENGTH];
- size_t i, step;
-
- for( i = 0; i < BLAKE2S_KEYBYTES; ++i )
- key[i] = ( uint8_t )i;
-
- for( i = 0; i < BLAKE2_KAT_LENGTH; ++i )
- buf[i] = ( uint8_t )i;
-
- /* Test simple API */
- for( i = 0; i < BLAKE2_KAT_LENGTH; ++i )
- {
- uint8_t hash[BLAKE2S_OUTBYTES];
- blake2s( hash, BLAKE2S_OUTBYTES, buf, i, key, BLAKE2S_KEYBYTES );
-
- if( 0 != memcmp( hash, blake2s_keyed_kat[i], BLAKE2S_OUTBYTES ) )
- {
- goto fail;
- }
- }
-
- /* Test streaming API */
- for(step = 1; step < BLAKE2S_BLOCKBYTES; ++step) {
- for (i = 0; i < BLAKE2_KAT_LENGTH; ++i) {
- uint8_t hash[BLAKE2S_OUTBYTES];
- blake2s_state S;
- uint8_t * p = buf;
- size_t mlen = i;
- int err = 0;
-
- if( (err = blake2s_init_key(&S, BLAKE2S_OUTBYTES, key, BLAKE2S_KEYBYTES)) < 0 ) {
- goto fail;
- }
-
- while (mlen >= step) {
- if ( (err = blake2s_update(&S, p, step)) < 0 ) {
- goto fail;
- }
- mlen -= step;
- p += step;
- }
- if ( (err = blake2s_update(&S, p, mlen)) < 0) {
- goto fail;
- }
- if ( (err = blake2s_final(&S, hash, BLAKE2S_OUTBYTES)) < 0) {
- goto fail;
- }
-
- if (0 != memcmp(hash, blake2s_keyed_kat[i], BLAKE2S_OUTBYTES)) {
- goto fail;
- }
- }
- }
-
- puts( "ok" );
- return 0;
-fail:
- puts("error");
- return -1;
-}
-#endif
diff --git a/deps/BLAKE2/ref/blake2sp-ref.c b/deps/BLAKE2/ref/blake2sp-ref.c
deleted file mode 100644
index b0e9bae..0000000
--- a/deps/BLAKE2/ref/blake2sp-ref.c
+++ /dev/null
@@ -1,359 +0,0 @@
-/*
- BLAKE2 reference source code package - reference C implementations
-
- Copyright 2012, Samuel Neves . You may use this under the
- terms of the CC0, the OpenSSL Licence, or the Apache Public License 2.0, at
- your option. The terms of these licenses can be found at:
-
- - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0
- - OpenSSL license : https://www.openssl.org/source/license.html
- - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0
-
- More information about the BLAKE2 hash function can be found at
- https://blake2.net.
-*/
-
-#include
-#include
-#include
-
-#if defined(_OPENMP)
-#include
-#endif
-
-#include "blake2.h"
-#include "blake2-impl.h"
-
-#define PARALLELISM_DEGREE 8
-
-/*
- blake2sp_init_param defaults to setting the expecting output length
- from the digest_length parameter block field.
-
- In some cases, however, we do not want this, as the output length
- of these instances is given by inner_length instead.
-*/
-static int blake2sp_init_leaf_param( blake2s_state *S, const blake2s_param *P )
-{
- int err = blake2s_init_param(S, P);
- S->outlen = P->inner_length;
- return err;
-}
-
-static int blake2sp_init_leaf( blake2s_state *S, size_t outlen, size_t keylen, uint64_t offset )
-{
- blake2s_param P[1];
- P->digest_length = (uint8_t)outlen;
- P->key_length = (uint8_t)keylen;
- P->fanout = PARALLELISM_DEGREE;
- P->depth = 2;
- store32( &P->leaf_length, 0 );
- store32( &P->node_offset, offset );
- store16( &P->xof_length, 0 );
- P->node_depth = 0;
- P->inner_length = BLAKE2S_OUTBYTES;
- memset( P->salt, 0, sizeof( P->salt ) );
- memset( P->personal, 0, sizeof( P->personal ) );
- return blake2sp_init_leaf_param( S, P );
-}
-
-static int blake2sp_init_root( blake2s_state *S, size_t outlen, size_t keylen )
-{
- blake2s_param P[1];
- P->digest_length = (uint8_t)outlen;
- P->key_length = (uint8_t)keylen;
- P->fanout = PARALLELISM_DEGREE;
- P->depth = 2;
- store32( &P->leaf_length, 0 );
- store32( &P->node_offset, 0 );
- store16( &P->xof_length, 0 );
- P->node_depth = 1;
- P->inner_length = BLAKE2S_OUTBYTES;
- memset( P->salt, 0, sizeof( P->salt ) );
- memset( P->personal, 0, sizeof( P->personal ) );
- return blake2s_init_param( S, P );
-}
-
-
-int blake2sp_init( blake2sp_state *S, size_t outlen )
-{
- size_t i;
-
- if( !outlen || outlen > BLAKE2S_OUTBYTES ) return -1;
-
- memset( S->buf, 0, sizeof( S->buf ) );
- S->buflen = 0;
- S->outlen = outlen;
-
- if( blake2sp_init_root( S->R, outlen, 0 ) < 0 )
- return -1;
-
- for( i = 0; i < PARALLELISM_DEGREE; ++i )
- if( blake2sp_init_leaf( S->S[i], outlen, 0, i ) < 0 ) return -1;
-
- S->R->last_node = 1;
- S->S[PARALLELISM_DEGREE - 1]->last_node = 1;
- return 0;
-}
-
-int blake2sp_init_key( blake2sp_state *S, size_t outlen, const void *key, size_t keylen )
-{
- size_t i;
-
- if( !outlen || outlen > BLAKE2S_OUTBYTES ) return -1;
-
- if( !key || !keylen || keylen > BLAKE2S_KEYBYTES ) return -1;
-
- memset( S->buf, 0, sizeof( S->buf ) );
- S->buflen = 0;
- S->outlen = outlen;
-
- if( blake2sp_init_root( S->R, outlen, keylen ) < 0 )
- return -1;
-
- for( i = 0; i < PARALLELISM_DEGREE; ++i )
- if( blake2sp_init_leaf( S->S[i], outlen, keylen, i ) < 0 ) return -1;
-
- S->R->last_node = 1;
- S->S[PARALLELISM_DEGREE - 1]->last_node = 1;
- {
- uint8_t block[BLAKE2S_BLOCKBYTES];
- memset( block, 0, BLAKE2S_BLOCKBYTES );
- memcpy( block, key, keylen );
-
- for( i = 0; i < PARALLELISM_DEGREE; ++i )
- blake2s_update( S->S[i], block, BLAKE2S_BLOCKBYTES );
-
- secure_zero_memory( block, BLAKE2S_BLOCKBYTES ); /* Burn the key from stack */
- }
- return 0;
-}
-
-
-int blake2sp_update( blake2sp_state *S, const void *pin, size_t inlen )
-{
- const unsigned char * in = (const unsigned char *)pin;
- size_t left = S->buflen;
- size_t fill = sizeof( S->buf ) - left;
- size_t i;
-
- if( left && inlen >= fill )
- {
- memcpy( S->buf + left, in, fill );
-
- for( i = 0; i < PARALLELISM_DEGREE; ++i )
- blake2s_update( S->S[i], S->buf + i * BLAKE2S_BLOCKBYTES, BLAKE2S_BLOCKBYTES );
-
- in += fill;
- inlen -= fill;
- left = 0;
- }
-
-#if defined(_OPENMP)
- #pragma omp parallel shared(S), num_threads(PARALLELISM_DEGREE)
-#else
- for( i = 0; i < PARALLELISM_DEGREE; ++i )
-#endif
- {
-#if defined(_OPENMP)
- size_t i = omp_get_thread_num();
-#endif
- size_t inlen__ = inlen;
- const unsigned char *in__ = ( const unsigned char * )in;
- in__ += i * BLAKE2S_BLOCKBYTES;
-
- while( inlen__ >= PARALLELISM_DEGREE * BLAKE2S_BLOCKBYTES )
- {
- blake2s_update( S->S[i], in__, BLAKE2S_BLOCKBYTES );
- in__ += PARALLELISM_DEGREE * BLAKE2S_BLOCKBYTES;
- inlen__ -= PARALLELISM_DEGREE * BLAKE2S_BLOCKBYTES;
- }
- }
-
- in += inlen - inlen % ( PARALLELISM_DEGREE * BLAKE2S_BLOCKBYTES );
- inlen %= PARALLELISM_DEGREE * BLAKE2S_BLOCKBYTES;
-
- if( inlen > 0 )
- memcpy( S->buf + left, in, inlen );
-
- S->buflen = left + inlen;
- return 0;
-}
-
-
-int blake2sp_final( blake2sp_state *S, void *out, size_t outlen )
-{
- uint8_t hash[PARALLELISM_DEGREE][BLAKE2S_OUTBYTES];
- size_t i;
-
- if(out == NULL || outlen < S->outlen) {
- return -1;
- }
-
- for( i = 0; i < PARALLELISM_DEGREE; ++i )
- {
- if( S->buflen > i * BLAKE2S_BLOCKBYTES )
- {
- size_t left = S->buflen - i * BLAKE2S_BLOCKBYTES;
-
- if( left > BLAKE2S_BLOCKBYTES ) left = BLAKE2S_BLOCKBYTES;
-
- blake2s_update( S->S[i], S->buf + i * BLAKE2S_BLOCKBYTES, left );
- }
-
- blake2s_final( S->S[i], hash[i], BLAKE2S_OUTBYTES );
- }
-
- for( i = 0; i < PARALLELISM_DEGREE; ++i )
- blake2s_update( S->R, hash[i], BLAKE2S_OUTBYTES );
-
- return blake2s_final( S->R, out, S->outlen );
-}
-
-
-int blake2sp( void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen )
-{
- uint8_t hash[PARALLELISM_DEGREE][BLAKE2S_OUTBYTES];
- blake2s_state S[PARALLELISM_DEGREE][1];
- blake2s_state FS[1];
- size_t i;
-
- /* Verify parameters */
- if ( NULL == in && inlen > 0 ) return -1;
-
- if ( NULL == out ) return -1;
-
- if ( NULL == key && keylen > 0) return -1;
-
- if( !outlen || outlen > BLAKE2S_OUTBYTES ) return -1;
-
- if( keylen > BLAKE2S_KEYBYTES ) return -1;
-
- for( i = 0; i < PARALLELISM_DEGREE; ++i )
- if( blake2sp_init_leaf( S[i], outlen, keylen, i ) < 0 ) return -1;
-
- S[PARALLELISM_DEGREE - 1]->last_node = 1; /* mark last node */
-
- if( keylen > 0 )
- {
- uint8_t block[BLAKE2S_BLOCKBYTES];
- memset( block, 0, BLAKE2S_BLOCKBYTES );
- memcpy( block, key, keylen );
-
- for( i = 0; i < PARALLELISM_DEGREE; ++i )
- blake2s_update( S[i], block, BLAKE2S_BLOCKBYTES );
-
- secure_zero_memory( block, BLAKE2S_BLOCKBYTES ); /* Burn the key from stack */
- }
-
-#if defined(_OPENMP)
- #pragma omp parallel shared(S,hash), num_threads(PARALLELISM_DEGREE)
-#else
-
- for( i = 0; i < PARALLELISM_DEGREE; ++i )
-#endif
- {
-#if defined(_OPENMP)
- size_t i = omp_get_thread_num();
-#endif
- size_t inlen__ = inlen;
- const unsigned char *in__ = ( const unsigned char * )in;
- in__ += i * BLAKE2S_BLOCKBYTES;
-
- while( inlen__ >= PARALLELISM_DEGREE * BLAKE2S_BLOCKBYTES )
- {
- blake2s_update( S[i], in__, BLAKE2S_BLOCKBYTES );
- in__ += PARALLELISM_DEGREE * BLAKE2S_BLOCKBYTES;
- inlen__ -= PARALLELISM_DEGREE * BLAKE2S_BLOCKBYTES;
- }
-
- if( inlen__ > i * BLAKE2S_BLOCKBYTES )
- {
- const size_t left = inlen__ - i * BLAKE2S_BLOCKBYTES;
- const size_t len = left <= BLAKE2S_BLOCKBYTES ? left : BLAKE2S_BLOCKBYTES;
- blake2s_update( S[i], in__, len );
- }
-
- blake2s_final( S[i], hash[i], BLAKE2S_OUTBYTES );
- }
-
- if( blake2sp_init_root( FS, outlen, keylen ) < 0 )
- return -1;
-
- FS->last_node = 1;
-
- for( i = 0; i < PARALLELISM_DEGREE; ++i )
- blake2s_update( FS, hash[i], BLAKE2S_OUTBYTES );
-
- return blake2s_final( FS, out, outlen );
-}
-
-
-
-#if defined(BLAKE2SP_SELFTEST)
-#include
-#include "blake2-kat.h"
-int main( void )
-{
- uint8_t key[BLAKE2S_KEYBYTES];
- uint8_t buf[BLAKE2_KAT_LENGTH];
- size_t i, step;
-
- for( i = 0; i < BLAKE2S_KEYBYTES; ++i )
- key[i] = ( uint8_t )i;
-
- for( i = 0; i < BLAKE2_KAT_LENGTH; ++i )
- buf[i] = ( uint8_t )i;
-
- /* Test simple API */
- for( i = 0; i < BLAKE2_KAT_LENGTH; ++i )
- {
- uint8_t hash[BLAKE2S_OUTBYTES];
- blake2sp( hash, BLAKE2S_OUTBYTES, buf, i, key, BLAKE2S_KEYBYTES );
-
- if( 0 != memcmp( hash, blake2sp_keyed_kat[i], BLAKE2S_OUTBYTES ) )
- {
- goto fail;
- }
- }
-
- /* Test streaming API */
- for(step = 1; step < BLAKE2S_BLOCKBYTES; ++step) {
- for (i = 0; i < BLAKE2_KAT_LENGTH; ++i) {
- uint8_t hash[BLAKE2S_OUTBYTES];
- blake2sp_state S;
- uint8_t * p = buf;
- size_t mlen = i;
- int err = 0;
-
- if( (err = blake2sp_init_key(&S, BLAKE2S_OUTBYTES, key, BLAKE2S_KEYBYTES)) < 0 ) {
- goto fail;
- }
-
- while (mlen >= step) {
- if ( (err = blake2sp_update(&S, p, step)) < 0 ) {
- goto fail;
- }
- mlen -= step;
- p += step;
- }
- if ( (err = blake2sp_update(&S, p, mlen)) < 0) {
- goto fail;
- }
- if ( (err = blake2sp_final(&S, hash, BLAKE2S_OUTBYTES)) < 0) {
- goto fail;
- }
-
- if (0 != memcmp(hash, blake2sp_keyed_kat[i], BLAKE2S_OUTBYTES)) {
- goto fail;
- }
- }
- }
-
- puts( "ok" );
- return 0;
-fail:
- puts("error");
- return -1;
-}
-#endif
diff --git a/deps/BLAKE2/ref/blake2xb-ref.c b/deps/BLAKE2/ref/blake2xb-ref.c
deleted file mode 100644
index b369ee7..0000000
--- a/deps/BLAKE2/ref/blake2xb-ref.c
+++ /dev/null
@@ -1,241 +0,0 @@
-/*
- BLAKE2 reference source code package - reference C implementations
-
- Copyright 2016, JP Aumasson .
- Copyright 2016, Samuel Neves .
-
- You may use this under the terms of the CC0, the OpenSSL Licence, or
- the Apache Public License 2.0, at your option. The terms of these
- licenses can be found at:
-
- - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0
- - OpenSSL license : https://www.openssl.org/source/license.html
- - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0
-
- More information about the BLAKE2 hash function can be found at
- https://blake2.net.
-*/
-
-#include
-#include
-#include
-
-#include "blake2.h"
-#include "blake2-impl.h"
-
-int blake2xb_init( blake2xb_state *S, const size_t outlen ) {
- return blake2xb_init_key(S, outlen, NULL, 0);
-}
-
-int blake2xb_init_key( blake2xb_state *S, const size_t outlen, const void *key, size_t keylen)
-{
- if ( outlen == 0 || outlen > 0xFFFFFFFFUL ) {
- return -1;
- }
-
- if (NULL != key && keylen > BLAKE2B_KEYBYTES) {
- return -1;
- }
-
- if (NULL == key && keylen > 0) {
- return -1;
- }
-
- /* Initialize parameter block */
- S->P->digest_length = BLAKE2B_OUTBYTES;
- S->P->key_length = keylen;
- S->P->fanout = 1;
- S->P->depth = 1;
- store32( &S->P->leaf_length, 0 );
- store32( &S->P->node_offset, 0 );
- store32( &S->P->xof_length, outlen );
- S->P->node_depth = 0;
- S->P->inner_length = 0;
- memset( S->P->reserved, 0, sizeof( S->P->reserved ) );
- memset( S->P->salt, 0, sizeof( S->P->salt ) );
- memset( S->P->personal, 0, sizeof( S->P->personal ) );
-
- if( blake2b_init_param( S->S, S->P ) < 0 ) {
- return -1;
- }
-
- if (keylen > 0) {
- uint8_t block[BLAKE2B_BLOCKBYTES];
- memset(block, 0, BLAKE2B_BLOCKBYTES);
- memcpy(block, key, keylen);
- blake2b_update(S->S, block, BLAKE2B_BLOCKBYTES);
- secure_zero_memory(block, BLAKE2B_BLOCKBYTES);
- }
- return 0;
-}
-
-int blake2xb_update( blake2xb_state *S, const void *in, size_t inlen ) {
- return blake2b_update( S->S, in, inlen );
-}
-
-int blake2xb_final( blake2xb_state *S, void *out, size_t outlen) {
-
- blake2b_state C[1];
- blake2b_param P[1];
- uint32_t xof_length = load32(&S->P->xof_length);
- uint8_t root[BLAKE2B_BLOCKBYTES];
- size_t i;
-
- if (NULL == out) {
- return -1;
- }
-
- /* outlen must match the output size defined in xof_length, */
- /* unless it was -1, in which case anything goes except 0. */
- if(xof_length == 0xFFFFFFFFUL) {
- if(outlen == 0) {
- return -1;
- }
- } else {
- if(outlen != xof_length) {
- return -1;
- }
- }
-
- /* Finalize the root hash */
- if (blake2b_final(S->S, root, BLAKE2B_OUTBYTES) < 0) {
- return -1;
- }
-
- /* Set common block structure values */
- /* Copy values from parent instance, and only change the ones below */
- memcpy(P, S->P, sizeof(blake2b_param));
- P->key_length = 0;
- P->fanout = 0;
- P->depth = 0;
- store32(&P->leaf_length, BLAKE2B_OUTBYTES);
- P->inner_length = BLAKE2B_OUTBYTES;
- P->node_depth = 0;
-
- for (i = 0; outlen > 0; ++i) {
- const size_t block_size = (outlen < BLAKE2B_OUTBYTES) ? outlen : BLAKE2B_OUTBYTES;
- /* Initialize state */
- P->digest_length = block_size;
- store32(&P->node_offset, i);
- blake2b_init_param(C, P);
- /* Process key if needed */
- blake2b_update(C, root, BLAKE2B_OUTBYTES);
- if (blake2b_final(C, (uint8_t *)out + i * BLAKE2B_OUTBYTES, block_size) < 0 ) {
- return -1;
- }
- outlen -= block_size;
- }
- secure_zero_memory(root, sizeof(root));
- secure_zero_memory(P, sizeof(P));
- secure_zero_memory(C, sizeof(C));
- /* Put blake2xb in an invalid state? cf. blake2s_is_lastblock */
- return 0;
-
-}
-
-int blake2xb(void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen)
-{
- blake2xb_state S[1];
-
- /* Verify parameters */
- if (NULL == in && inlen > 0)
- return -1;
-
- if (NULL == out)
- return -1;
-
- if (NULL == key && keylen > 0)
- return -1;
-
- if (keylen > BLAKE2B_KEYBYTES)
- return -1;
-
- if (outlen == 0)
- return -1;
-
- /* Initialize the root block structure */
- if (blake2xb_init_key(S, outlen, key, keylen) < 0) {
- return -1;
- }
-
- /* Absorb the input message */
- blake2xb_update(S, in, inlen);
-
- /* Compute the root node of the tree and the final hash using the counter construction */
- return blake2xb_final(S, out, outlen);
-}
-
-#if defined(BLAKE2XB_SELFTEST)
-#include
-#include "blake2-kat.h"
-int main( void )
-{
- uint8_t key[BLAKE2B_KEYBYTES];
- uint8_t buf[BLAKE2_KAT_LENGTH];
- size_t i, step, outlen;
-
- for( i = 0; i < BLAKE2B_KEYBYTES; ++i ) {
- key[i] = ( uint8_t )i;
- }
-
- for( i = 0; i < BLAKE2_KAT_LENGTH; ++i ) {
- buf[i] = ( uint8_t )i;
- }
-
- /* Testing length of outputs rather than inputs */
- /* (Test of input lengths mostly covered by blake2b tests) */
-
- /* Test simple API */
- for( outlen = 1; outlen <= BLAKE2_KAT_LENGTH; ++outlen )
- {
- uint8_t hash[BLAKE2_KAT_LENGTH] = {0};
- if( blake2xb( hash, outlen, buf, BLAKE2_KAT_LENGTH, key, BLAKE2B_KEYBYTES ) < 0 ) {
- goto fail;
- }
-
- if( 0 != memcmp( hash, blake2xb_keyed_kat[outlen-1], outlen ) )
- {
- goto fail;
- }
- }
-
- /* Test streaming API */
- for(step = 1; step < BLAKE2B_BLOCKBYTES; ++step) {
- for (outlen = 1; outlen <= BLAKE2_KAT_LENGTH; ++outlen) {
- uint8_t hash[BLAKE2_KAT_LENGTH];
- blake2xb_state S;
- uint8_t * p = buf;
- size_t mlen = BLAKE2_KAT_LENGTH;
- int err = 0;
-
- if( (err = blake2xb_init_key(&S, outlen, key, BLAKE2B_KEYBYTES)) < 0 ) {
- goto fail;
- }
-
- while (mlen >= step) {
- if ( (err = blake2xb_update(&S, p, step)) < 0 ) {
- goto fail;
- }
- mlen -= step;
- p += step;
- }
- if ( (err = blake2xb_update(&S, p, mlen)) < 0) {
- goto fail;
- }
- if ( (err = blake2xb_final(&S, hash, outlen)) < 0) {
- goto fail;
- }
-
- if (0 != memcmp(hash, blake2xb_keyed_kat[outlen-1], outlen)) {
- goto fail;
- }
- }
- }
-
- puts( "ok" );
- return 0;
-fail:
- puts("error");
- return -1;
-}
-#endif
diff --git a/deps/BLAKE2/ref/blake2xs-ref.c b/deps/BLAKE2/ref/blake2xs-ref.c
deleted file mode 100644
index e7a89f8..0000000
--- a/deps/BLAKE2/ref/blake2xs-ref.c
+++ /dev/null
@@ -1,239 +0,0 @@
-/*
- BLAKE2 reference source code package - reference C implementations
-
- Copyright 2016, JP Aumasson .
- Copyright 2016, Samuel Neves .
-
- You may use this under the terms of the CC0, the OpenSSL Licence, or
- the Apache Public License 2.0, at your option. The terms of these
- licenses can be found at:
-
- - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0
- - OpenSSL license : https://www.openssl.org/source/license.html
- - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0
-
- More information about the BLAKE2 hash function can be found at
- https://blake2.net.
-*/
-
-#include
-#include
-#include
-
-#include "blake2.h"
-#include "blake2-impl.h"
-
-int blake2xs_init( blake2xs_state *S, const size_t outlen ) {
- return blake2xs_init_key(S, outlen, NULL, 0);
-}
-
-int blake2xs_init_key( blake2xs_state *S, const size_t outlen, const void *key, size_t keylen )
-{
- if ( outlen == 0 || outlen > 0xFFFFUL ) {
- return -1;
- }
-
- if (NULL != key && keylen > BLAKE2B_KEYBYTES) {
- return -1;
- }
-
- if (NULL == key && keylen > 0) {
- return -1;
- }
-
- /* Initialize parameter block */
- S->P->digest_length = BLAKE2S_OUTBYTES;
- S->P->key_length = keylen;
- S->P->fanout = 1;
- S->P->depth = 1;
- store32( &S->P->leaf_length, 0 );
- store32( &S->P->node_offset, 0 );
- store16( &S->P->xof_length, outlen );
- S->P->node_depth = 0;
- S->P->inner_length = 0;
- memset( S->P->salt, 0, sizeof( S->P->salt ) );
- memset( S->P->personal, 0, sizeof( S->P->personal ) );
-
- if( blake2s_init_param( S->S, S->P ) < 0 ) {
- return -1;
- }
-
- if (keylen > 0) {
- uint8_t block[BLAKE2S_BLOCKBYTES];
- memset(block, 0, BLAKE2S_BLOCKBYTES);
- memcpy(block, key, keylen);
- blake2s_update(S->S, block, BLAKE2S_BLOCKBYTES);
- secure_zero_memory(block, BLAKE2S_BLOCKBYTES);
- }
- return 0;
-}
-
-int blake2xs_update( blake2xs_state *S, const void *in, size_t inlen ) {
- return blake2s_update( S->S, in, inlen );
-}
-
-int blake2xs_final(blake2xs_state *S, void *out, size_t outlen) {
-
- blake2s_state C[1];
- blake2s_param P[1];
- uint16_t xof_length = load16(&S->P->xof_length);
- uint8_t root[BLAKE2S_BLOCKBYTES];
- size_t i;
-
- if (NULL == out) {
- return -1;
- }
-
- /* outlen must match the output size defined in xof_length, */
- /* unless it was -1, in which case anything goes except 0. */
- if(xof_length == 0xFFFFUL) {
- if(outlen == 0) {
- return -1;
- }
- } else {
- if(outlen != xof_length) {
- return -1;
- }
- }
-
- /* Finalize the root hash */
- if (blake2s_final(S->S, root, BLAKE2S_OUTBYTES) < 0) {
- return -1;
- }
-
- /* Set common block structure values */
- /* Copy values from parent instance, and only change the ones below */
- memcpy(P, S->P, sizeof(blake2s_param));
- P->key_length = 0;
- P->fanout = 0;
- P->depth = 0;
- store32(&P->leaf_length, BLAKE2S_OUTBYTES);
- P->inner_length = BLAKE2S_OUTBYTES;
- P->node_depth = 0;
-
- for (i = 0; outlen > 0; ++i) {
- const size_t block_size = (outlen < BLAKE2S_OUTBYTES) ? outlen : BLAKE2S_OUTBYTES;
- /* Initialize state */
- P->digest_length = block_size;
- store32(&P->node_offset, i);
- blake2s_init_param(C, P);
- /* Process key if needed */
- blake2s_update(C, root, BLAKE2S_OUTBYTES);
- if (blake2s_final(C, (uint8_t *)out + i * BLAKE2S_OUTBYTES, block_size) < 0) {
- return -1;
- }
- outlen -= block_size;
- }
- secure_zero_memory(root, sizeof(root));
- secure_zero_memory(P, sizeof(P));
- secure_zero_memory(C, sizeof(C));
- /* Put blake2xs in an invalid state? cf. blake2s_is_lastblock */
- return 0;
-}
-
-int blake2xs(void *out, size_t outlen, const void *in, size_t inlen, const void *key, size_t keylen)
-{
- blake2xs_state S[1];
-
- /* Verify parameters */
- if (NULL == in && inlen > 0)
- return -1;
-
- if (NULL == out)
- return -1;
-
- if (NULL == key && keylen > 0)
- return -1;
-
- if (keylen > BLAKE2S_KEYBYTES)
- return -1;
-
- if (outlen == 0)
- return -1;
-
- /* Initialize the root block structure */
- if (blake2xs_init_key(S, outlen, key, keylen) < 0) {
- return -1;
- }
-
- /* Absorb the input message */
- blake2xs_update(S, in, inlen);
-
- /* Compute the root node of the tree and the final hash using the counter construction */
- return blake2xs_final(S, out, outlen);
-}
-
-#if defined(BLAKE2XS_SELFTEST)
-#include
-#include "blake2-kat.h"
-int main( void )
-{
- uint8_t key[BLAKE2S_KEYBYTES];
- uint8_t buf[BLAKE2_KAT_LENGTH];
- size_t i, step, outlen;
-
- for( i = 0; i < BLAKE2S_KEYBYTES; ++i ) {
- key[i] = ( uint8_t )i;
- }
-
- for( i = 0; i < BLAKE2_KAT_LENGTH; ++i ) {
- buf[i] = ( uint8_t )i;
- }
-
- /* Testing length of outputs rather than inputs */
- /* (Test of input lengths mostly covered by blake2s tests) */
-
- /* Test simple API */
- for( outlen = 1; outlen <= BLAKE2_KAT_LENGTH; ++outlen )
- {
- uint8_t hash[BLAKE2_KAT_LENGTH] = {0};
- if( blake2xs( hash, outlen, buf, BLAKE2_KAT_LENGTH, key, BLAKE2S_KEYBYTES ) < 0 ) {
- goto fail;
- }
-
- if( 0 != memcmp( hash, blake2xs_keyed_kat[outlen-1], outlen ) )
- {
- goto fail;
- }
- }
-
- /* Test streaming API */
- for(step = 1; step < BLAKE2S_BLOCKBYTES; ++step) {
- for (outlen = 1; outlen <= BLAKE2_KAT_LENGTH; ++outlen) {
- uint8_t hash[BLAKE2_KAT_LENGTH];
- blake2xs_state S;
- uint8_t * p = buf;
- size_t mlen = BLAKE2_KAT_LENGTH;
- int err = 0;
-
- if( (err = blake2xs_init_key(&S, outlen, key, BLAKE2S_KEYBYTES)) < 0 ) {
- goto fail;
- }
-
- while (mlen >= step) {
- if ( (err = blake2xs_update(&S, p, step)) < 0 ) {
- goto fail;
- }
- mlen -= step;
- p += step;
- }
- if ( (err = blake2xs_update(&S, p, mlen)) < 0) {
- goto fail;
- }
- if ( (err = blake2xs_final(&S, hash, outlen)) < 0) {
- goto fail;
- }
-
- if (0 != memcmp(hash, blake2xs_keyed_kat[outlen-1], outlen)) {
- goto fail;
- }
- }
- }
-
- puts( "ok" );
- return 0;
-fail:
- puts("error");
- return -1;
-}
-#endif
diff --git a/deps/BLAKE2/ref/genkat-c.c b/deps/BLAKE2/ref/genkat-c.c
deleted file mode 100644
index 58a48fd..0000000
--- a/deps/BLAKE2/ref/genkat-c.c
+++ /dev/null
@@ -1,139 +0,0 @@
-/*
- BLAKE2 reference source code package - reference C implementations
-
- Copyright 2012, Samuel Neves . You may use this under the
- terms of the CC0, the OpenSSL Licence, or the Apache Public License 2.0, at
- your option. The terms of these licenses can be found at:
-
- - CC0 1.0 Universal : http://creativecommons.org/publicdomain/zero/1.0
- - OpenSSL license : https://www.openssl.org/source/license.html
- - Apache 2.0 : http://www.apache.org/licenses/LICENSE-2.0
-
- More information about the BLAKE2 hash function can be found at
- https://blake2.net.
-*/
-
-#include
-#include
-#include
-#include
-
-#include "blake2.h"
-
-#define STR_(x) #x
-#define STR(x) STR_(x)
-
-#define LENGTH 256
-
-#define MAKE_KAT(name, size_prefix) \
- do { \
- printf("static const uint8_t " #name "_kat[BLAKE2_KAT_LENGTH][" #size_prefix \
- "_OUTBYTES] = \n{\n"); \
- \
- for (i = 0; i < LENGTH; ++i) { \
- name(hash, size_prefix##_OUTBYTES, in, i, NULL, 0); \
- printf("\t{\n\t\t"); \
- \
- for (j = 0; j < size_prefix##_OUTBYTES; ++j) \
- printf("0x%02X%s", hash[j], \
- (j + 1) == size_prefix##_OUTBYTES ? "\n" : j && !((j + 1) % 8) ? ",\n\t\t" : ", "); \
- \
- printf("\t},\n"); \
- } \
- \
- printf("};\n\n\n\n\n"); \
- } while (0)
-
-#define MAKE_KEYED_KAT(name, size_prefix) \
- do { \
- printf("static const uint8_t " #name "_keyed_kat[BLAKE2_KAT_LENGTH][" #size_prefix \
- "_OUTBYTES] = \n{\n"); \
- \
- for (i = 0; i < LENGTH; ++i) { \
- name(hash, size_prefix##_OUTBYTES, in, i, key, size_prefix##_KEYBYTES); \
- printf("\t{\n\t\t"); \
- \
- for (j = 0; j < size_prefix##_OUTBYTES; ++j) \
- printf("0x%02X%s", hash[j], \
- (j + 1) == size_prefix##_OUTBYTES ? "\n" : j && !((j + 1) % 8) ? ",\n\t\t" : ", "); \
- \
- printf("\t},\n"); \
- } \
- \
- printf("};\n\n\n\n\n"); \
- } while (0)
-
-#define MAKE_XOF_KAT(name) \
- do { \
- printf("static const uint8_t " #name "_kat[BLAKE2_KAT_LENGTH][BLAKE2_KAT_LENGTH] = \n{\n"); \
- \
- for (i = 1; i <= LENGTH; ++i) { \
- name(hash, i, in, LENGTH, NULL, 0); \
- printf("\t{\n\t\t"); \
- \
- for (j = 0; j < i; ++j) \
- printf("0x%02X%s", hash[j], \
- (j + 1) == LENGTH ? "\n" : j && !((j + 1) % 8) ? ",\n\t\t" : ", "); \
- \
- for (j = i; j < LENGTH; ++j) \
- printf("0x00%s", (j + 1) == LENGTH ? "\n" : j && !((j + 1) % 8) ? ",\n\t\t" : ", "); \
- \
- printf("\t},\n"); \
- } \
- \
- printf("};\n\n\n\n\n"); \
- } while (0)
-
-#define MAKE_XOF_KEYED_KAT(name, size_prefix) \
- do { \
- printf("static const uint8_t " #name \
- "_keyed_kat[BLAKE2_KAT_LENGTH][BLAKE2_KAT_LENGTH] = \n{\n"); \
- \
- for (i = 1; i <= LENGTH; ++i) { \
- name(hash, i, in, LENGTH, key, size_prefix##_KEYBYTES); \
- printf("\t{\n\t\t"); \
- \
- for (j = 0; j < i; ++j) \
- printf("0x%02X%s", hash[j], \
- (j + 1) == LENGTH ? "\n" : j && !((j + 1) % 8) ? ",\n\t\t" : ", "); \
- \
- for (j = i; j < LENGTH; ++j) \
- printf("0x00%s", (j + 1) == LENGTH ? "\n" : j && !((j + 1) % 8) ? ",\n\t\t" : ", "); \
- \
- printf("\t},\n"); \
- } \
- \
- printf("};\n\n\n\n\n"); \
- } while (0)
-
-int main() {
- uint8_t key[64] = {0};
- uint8_t in[LENGTH] = {0};
- uint8_t hash[LENGTH] = {0};
- size_t i, j;
-
- for (i = 0; i < sizeof(in); ++i)
- in[i] = i;
-
- for (i = 0; i < sizeof(key); ++i)
- key[i] = i;
-
- puts("#ifndef BLAKE2_KAT_H\n"
- "#define BLAKE2_KAT_H\n\n\n"
- "#include