diff --git a/.github/actions/build-binaries/action.yaml b/.github/actions/build-binaries/action.yaml new file mode 100644 index 00000000..2d371183 --- /dev/null +++ b/.github/actions/build-binaries/action.yaml @@ -0,0 +1,67 @@ +name: "Setup, Build, and Test" +description: "Set up Python with Poetry, build and test binaries" +inputs: + package_name: + description: "The name of the package to build and test" + required: true + upload_binaries: + description: "Flag to determine if this is a production release" + required: true + operating_system: + description: "Operating system to set the correct binary path and extension" + required: true + build_command: + description: "Command to build the binaries" + required: true + python_version: + description: "Python version to use" + required: true + +runs: + using: "composite" + steps: + - name: Build Executable + run: ${{ inputs.build_command }} + shell: bash + + - name: Test Executable + run: | + ls -l dist + ./dist/${{ inputs.package_name }}/${{ inputs.package_name }}${{ inputs.operating_system == 'windows-latest' && '.exe' || '' }} --help + shell: bash + + - name: Set release version + shell: bash + continue-on-error: true + if: ${{ inputs.upload_binaries == 'true' }} + run: | + echo "RELEASE_VERSION=$(git describe --tags $(git rev-list --tags --max-count=1))" >> $GITHUB_ENV + git describe --tags $(git rev-list --tags --max-count=1) + + - name: Zip binaries + shell: bash + continue-on-error: true + if: ${{ inputs.upload_binaries == 'true' }} + run: | + ls -l dist + cd dist/algokit/ + tar -zcvf ../../algokit-${{ env.RELEASE_VERSION }}-${{ inputs.operating_system }}-py${{ inputs.python_version }}.tar.gz * + cd ../.. + ls -l + + - name: Upload binary as artifact + if: ${{ inputs.upload_binaries == 'true' }} + uses: actions/upload-artifact@v4 + with: + name: algokit-cli-${{ inputs.operating_system }}-py${{ inputs.python_version }} + path: algokit-${{ env.RELEASE_VERSION }}-${{ inputs.operating_system }}-py${{ inputs.python_version }}.tar.gz + + - name: Append binary to release + continue-on-error: true + if: ${{ inputs.upload_binaries == 'true' }} + uses: softprops/action-gh-release@v1 + with: + files: | + algokit-${{ env.RELEASE_VERSION }}-${{ inputs.operating_system }}-py${{ inputs.python_version }}.tar.gz + tag_name: ${{ env.RELEASE_VERSION }} + prerelease: ${{ contains(env.RELEASE_VERSION, 'beta') }} diff --git a/.github/actions/setup-poetry/action.yaml b/.github/actions/setup-poetry/action.yaml new file mode 100644 index 00000000..050f83d7 --- /dev/null +++ b/.github/actions/setup-poetry/action.yaml @@ -0,0 +1,22 @@ +name: "Python Poetry Action" +description: "An action to setup Poetry" +inputs: + poetry-version: + description: "The version of poetry to install" + required: false + default: "latest" +runs: + using: "composite" + steps: + - run: | + pip install --user pipx + pipx ensurepath + shell: bash + - if: ${{ inputs.poetry-version == 'latest' }} + run: | + pipx install poetry + shell: bash + - if: ${{ inputs.poetry-version != 'latest' }} + run: | + pipx install poetry==${{ inputs.poetry-version }} + shell: bash diff --git a/.github/workflows/build-binaries.yaml b/.github/workflows/build-binaries.yaml new file mode 100644 index 00000000..e3b2e471 --- /dev/null +++ b/.github/workflows/build-binaries.yaml @@ -0,0 +1,135 @@ +name: Build, Test and Publish Pyinstaller Binaries + +on: + workflow_call: + inputs: + upload_binaries: + required: true + type: string + python_version: + required: true + type: string + +jobs: + build-binaries-ubuntu: + runs-on: ubuntu-latest + steps: + - name: Checkout source code (for release) + uses: actions/checkout@v4 + if: ${{ inputs.upload_binaries == 'true' }} + with: + fetch-depth: 0 + + - name: Checkout source code (for build) + uses: actions/checkout@v4 + if: ${{ inputs.upload_binaries != 'true' }} + with: + fetch-depth: 1 + + - name: Set up Python + uses: actions/setup-python@v4 + with: + python-version: ${{ inputs.python_version }} + + - name: Set up Poetry + uses: ./.github/actions/setup-poetry + + - uses: actions/cache@v4 + name: Setup poetry cache + with: + path: ./.venv + key: venv-${{ hashFiles('poetry.lock') }}-${{ runner.os }}-${{ inputs.python_version }} + + - name: Install dependencies + run: poetry install --no-interaction + + - name: Build linux binary + uses: ./.github/actions/build-binaries + with: + python_version: ${{ inputs.python_version }} + package_name: "algokit" + upload_binaries: ${{ inputs.upload_binaries }} + operating_system: ${{ runner.os }} + build_command: "poetry run poe package_unix" + + build-binaries-windows: + runs-on: windows-latest + steps: + - name: Checkout source code (for release) + uses: actions/checkout@v4 + if: ${{ inputs.upload_binaries == 'true' }} + with: + fetch-depth: 0 + + - name: Checkout source code (for build) + uses: actions/checkout@v4 + if: ${{ inputs.upload_binaries != 'true' }} + with: + fetch-depth: 1 + + - name: Set up Python + uses: actions/setup-python@v4 + with: + python-version: ${{ inputs.python_version }} + + - name: Set up Poetry + uses: ./.github/actions/setup-poetry + + - uses: actions/cache@v4 + name: Setup poetry cache + with: + path: ./.venv + key: venv-${{ hashFiles('poetry.lock') }}-${{ runner.os }}-${{ inputs.python_version }} + + - name: Install dependencies + run: poetry install --no-interaction + + - name: Build windows binary + uses: ./.github/actions/build-binaries + with: + python_version: ${{ inputs.python_version }} + package_name: "algokit" + upload_binaries: ${{ inputs.upload_binaries }} + operating_system: ${{ runner.os }} + build_command: "poetry run poe package_windows" + + build-binaries-macos: + runs-on: macos-latest + steps: + - name: Checkout source code (for release) + uses: actions/checkout@v4 + if: ${{ inputs.upload_binaries == 'true' }} + with: + fetch-depth: 0 + + - name: Checkout source code (for build) + uses: actions/checkout@v4 + if: ${{ inputs.upload_binaries != 'true' }} + with: + fetch-depth: 1 + + - name: Set up Python + uses: actions/setup-python@v4 + with: + python-version: ${{ inputs.python_version }} + + - name: Set up Poetry + uses: ./.github/actions/setup-poetry + + - uses: actions/cache@v4 + name: Setup poetry cache + with: + path: ./.venv + key: venv-${{ hashFiles('poetry.lock') }}-${{ runner.os }}-${{ inputs.python_version }} + + - name: Install dependencies + run: poetry install --no-interaction + + - name: Build macos binary + uses: ./.github/actions/build-binaries + with: + python_version: ${{ inputs.python_version }} + package_name: "algokit" + upload_binaries: ${{ inputs.upload_binaries }} + operating_system: ${{ runner.os }} + build_command: "poetry run poe package_unix" diff --git a/.github/workflows/build-python.yaml b/.github/workflows/build-python.yaml index 719c56bf..6f96ab3d 100644 --- a/.github/workflows/build-python.yaml +++ b/.github/workflows/build-python.yaml @@ -6,35 +6,49 @@ jobs: build-python: strategy: matrix: - #os: ["ubuntu-latest", "macos-latest", "windows-latest"] + os: ["ubuntu-latest", "macos-latest", "windows-latest"] # Mac and Windows chew through build minutes - waiting until repo is public to enable - os: ["ubuntu-latest", "windows-latest"] - python: ["3.10"] + python: ["3.10", "3.11", "3.12"] runs-on: ${{ matrix.os }} steps: - name: Checkout source code - uses: actions/checkout@v3 + uses: actions/checkout@v4 - - name: Install poetry - run: pipx install poetry - - - name: Set up Python ${{ matrix.python }} + - name: Set up Python uses: actions/setup-python@v4 with: python-version: ${{ matrix.python }} - cache: "poetry" + + - name: Set up Poetry + uses: ./.github/actions/setup-poetry + + - uses: actions/cache@v4 + name: Setup poetry cache + with: + path: ./.venv + key: venv-${{ hashFiles('poetry.lock') }}-${{ matrix.os }}-${{ matrix.python }} - name: Install dependencies - run: poetry install --no-interaction && pipx install tealer==0.1.1 + # TODO: remove fixed pipx dependency once 3.12 compatibility is addressed + # track here -> https://github.com/crytic/tealer/pull/209 + run: poetry install --no-interaction && pipx install git+https://github.com/algorandfoundation/tealer@3-12 - name: pytest + coverage shell: bash run: | set -o pipefail poetry run pytest -n auto --junitxml=pytest-junit.xml --cov-report=term-missing:skip-covered --cov=src | tee pytest-coverage.txt + id: pytest + + - name: Upload received snapshots (in case of failure) + if: failure() && steps.pytest.outcome == 'failure' + uses: actions/upload-artifact@v4 + with: + name: test-artifacts-${{ matrix.os }}-python${{ matrix.python }} + path: tests/**/*.received.txt - - name: pytest coverage comment - using Python 3.10 on ubuntu-latest - if: matrix.python == '3.10' && matrix.os == 'ubuntu-latest' + - name: pytest coverage comment - using Python 3.12 on ubuntu-latest + if: matrix.python == '3.12' && matrix.os == 'ubuntu-latest' continue-on-error: true # forks fail to add a comment, so continue any way uses: MishaKav/pytest-coverage-comment@main with: diff --git a/.github/workflows/cd.yaml b/.github/workflows/cd.yaml index 871269be..40647744 100644 --- a/.github/workflows/cd.yaml +++ b/.github/workflows/cd.yaml @@ -38,17 +38,19 @@ jobs: # Fetch entire repository history so we can determine version number from it fetch-depth: 0 - - name: Install poetry - run: pipx install poetry - - name: Set up Python uses: actions/setup-python@v4 with: python-version: "3.10" - cache: "poetry" - - name: Install dependencies - run: poetry install --no-interaction --no-root + - name: Set up Poetry + uses: ./.github/actions/setup-poetry + + - uses: actions/cache@v4 + name: Setup poetry cache + with: + path: ./.venv + key: venv-${{ hashFiles('poetry.lock') }}-${{ runner.os }}-3.10 - name: Get branch name shell: bash @@ -112,6 +114,15 @@ jobs: path: dist/algokit*-py3-none-any.whl if-no-files-found: error + upload-binaries: + name: Build and Upload Binaries + if: ${{ github.ref_name == 'main' }} + uses: ./.github/workflows/build-binaries.yaml + needs: release + with: + upload_binaries: "true" + python_version: "3.12" + cd-publish-release-packages: name: Publish Release Packages needs: release diff --git a/.github/workflows/check-python.yaml b/.github/workflows/check-python.yaml index 1842b45f..7fb5c839 100644 --- a/.github/workflows/check-python.yaml +++ b/.github/workflows/check-python.yaml @@ -8,16 +8,21 @@ jobs: runs-on: "ubuntu-latest" steps: - name: Checkout source code - uses: actions/checkout@v3 + uses: actions/checkout@v4 - - name: Install poetry - run: pipx install poetry - - - name: Set up Python 3.10 + - name: Set up Python 3.12 uses: actions/setup-python@v4 with: - python-version: "3.10" - cache: "poetry" + python-version: "3.12" + + - name: Set up Poetry + uses: ./.github/actions/setup-poetry + + - uses: actions/cache@v4 + name: Setup poetry cache + with: + path: ./.venv + key: venv-${{ hashFiles('poetry.lock') }}-${{ runner.os }}-3.12 - name: Install dependencies run: poetry install --no-interaction diff --git a/.github/workflows/issue_closed.yml b/.github/workflows/issue_closed.yml deleted file mode 100644 index 80399eac..00000000 --- a/.github/workflows/issue_closed.yml +++ /dev/null @@ -1,12 +0,0 @@ -name: Solve zendesk ticket when the issue is closed -on: - issues: - types: [closed] -jobs: - issue_closed: - uses: algorandfoundation/gh_zendesk_sync/.github/workflows/github_zendesk_issue_closed.yml@main - with: - ZENDESK_TENANT_NAME: ${{ vars.ZENDESK_TENANT_NAME }} - ISSUE_LABEL: makerx - secrets: - ZENDESK_AUTH_TOKEN: ${{ secrets.ZENDESK_AUTH_TOKEN }} diff --git a/.github/workflows/issue_commented.yml b/.github/workflows/issue_commented.yml deleted file mode 100644 index 17c7c292..00000000 --- a/.github/workflows/issue_commented.yml +++ /dev/null @@ -1,12 +0,0 @@ -name: Add comment to zendesk ticket on GitHub issue commented -on: - issue_comment: - types: [created] -jobs: - issue_closed: - uses: algorandfoundation/gh_zendesk_sync/.github/workflows/github_zendesk_issue_commented.yml@main - with: - ZENDESK_TENANT_NAME: ${{ vars.ZENDESK_TENANT_NAME }} - ISSUE_LABEL: makerx - secrets: - ZENDESK_AUTH_TOKEN: ${{ secrets.ZENDESK_AUTH_TOKEN }} diff --git a/.github/workflows/issue_labelled.yml b/.github/workflows/issue_labelled.yml deleted file mode 100644 index d8689d11..00000000 --- a/.github/workflows/issue_labelled.yml +++ /dev/null @@ -1,12 +0,0 @@ -name: Create Zendesk ticket when an issue is labelled with makerx -on: - issues: - types: [labeled] -jobs: - issue_created: - uses: algorandfoundation/gh_zendesk_sync/.github/workflows/github_zendesk_issue_labelled.yml@main - with: - ZENDESK_TENANT_NAME: ${{ vars.ZENDESK_TENANT_NAME }} - ISSUE_LABEL: makerx - secrets: - ZENDESK_AUTH_TOKEN: ${{ secrets.ZENDESK_AUTH_TOKEN }} diff --git a/.github/workflows/pr.yaml b/.github/workflows/pr.yaml index 285ec3dd..02e732bf 100644 --- a/.github/workflows/pr.yaml +++ b/.github/workflows/pr.yaml @@ -2,6 +2,10 @@ name: Pull Request validation on: [pull_request] +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} + cancel-in-progress: true + jobs: pr-check: name: Check Python @@ -11,3 +15,11 @@ jobs: name: Build and Test Python needs: pr-check uses: ./.github/workflows/build-python.yaml + + pr-binaries-build: + name: Build Binaries + needs: pr-check + uses: ./.github/workflows/build-binaries.yaml + with: + upload_binaries: "false" + python_version: "3.12" diff --git a/.github/workflows/zendesk_github_add_comment.yml b/.github/workflows/zendesk_github_add_comment.yml deleted file mode 100644 index 07f0c1b4..00000000 --- a/.github/workflows/zendesk_github_add_comment.yml +++ /dev/null @@ -1,11 +0,0 @@ -name: Add comment to GitHub issue on Zendesk ticket commented -on: - repository_dispatch: - types: - - zendesk_github_add_comment -permissions: - issues: write -jobs: - add-comment: - name: Add comment to issue - uses: algorandfoundation/gh_zendesk_sync/.github/workflows/zendesk_github_add_comment.yml@main diff --git a/.github/workflows/zendesk_github_close_issue.yml b/.github/workflows/zendesk_github_close_issue.yml deleted file mode 100644 index 42d33d73..00000000 --- a/.github/workflows/zendesk_github_close_issue.yml +++ /dev/null @@ -1,11 +0,0 @@ -name: Close GitHub issue on Zendesk ticket solved -on: - repository_dispatch: - types: - - zendesk_github_close_issue -permissions: - issues: write -jobs: - close_issue: - name: Close GitHub issue - uses: algorandfoundation/gh_zendesk_sync/.github/workflows/zendesk_github_close_issue.yml@main diff --git a/.vscode/settings.json b/.vscode/settings.json index 8f1a5ed6..2e5d4c82 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -2,7 +2,6 @@ // General - see also /.editorconfig "editor.formatOnSave": true, "editor.codeActionsOnSave": { - "source.organizeImports": "explicit", "source.fixAll": "explicit" }, "editor.defaultFormatter": "esbenp.prettier-vscode", diff --git a/misc/multiformats_config/multibase-table.json b/misc/multiformats_config/multibase-table.json new file mode 100644 index 00000000..49e2b930 --- /dev/null +++ b/misc/multiformats_config/multibase-table.json @@ -0,0 +1,152 @@ +[ + { + "name": "identity", + "code": "0x00", + "status": "reserved", + "description": "(No base encoding)" + }, + { + "name": "base2", + "code": "0", + "status": "experimental", + "description": "Binary (01010101)" + }, + { + "name": "base8", + "code": "7", + "status": "draft", + "description": "Octal" + }, + { + "name": "base10", + "code": "9", + "status": "draft", + "description": "Decimal" + }, + { + "name": "base32upper", + "code": "B", + "status": "final", + "description": "RFC4648 case-insensitive - no padding" + }, + { + "name": "base32padupper", + "code": "C", + "status": "draft", + "description": "RFC4648 case-insensitive - with padding" + }, + { + "name": "base16upper", + "code": "F", + "status": "final", + "description": "Hexadecimal (uppercase)" + }, + { + "name": "base36upper", + "code": "K", + "status": "draft", + "description": "Base36 [0-9a-z] case-insensitive - no padding" + }, + { + "name": "base64pad", + "code": "M", + "status": "experimental", + "description": "RFC4648 with padding - MIME encoding" + }, + { + "name": "base32hexpadupper", + "code": "T", + "status": "experimental", + "description": "RFC4648 case-insensitive - with padding" + }, + { + "name": "base64urlpad", + "code": "U", + "status": "final", + "description": "RFC4648 with padding" + }, + { + "name": "base32hexupper", + "code": "V", + "status": "experimental", + "description": "RFC4648 case-insensitive - no padding - highest char" + }, + { + "name": "base58flickr", + "code": "Z", + "status": "experimental", + "description": "Base58 Flicker" + }, + { + "name": "base32", + "code": "b", + "status": "final", + "description": "RFC4648 case-insensitive - no padding" + }, + { + "name": "base32pad", + "code": "c", + "status": "draft", + "description": "RFC4648 case-insensitive - with padding" + }, + { + "name": "base16", + "code": "f", + "status": "final", + "description": "Hexadecimal (lowercase)" + }, + { + "name": "base32z", + "code": "h", + "status": "draft", + "description": "z-base-32 (used by Tahoe-LAFS)" + }, + { + "name": "base36", + "code": "k", + "status": "draft", + "description": "Base36 [0-9a-z] case-insensitive - no padding" + }, + { + "name": "base64", + "code": "m", + "status": "final", + "description": "RFC4648 no padding" + }, + { + "name": "proquint", + "code": "p", + "status": "experimental", + "description": "Proquint (https://arxiv.org/html/0901.4016)" + }, + { + "name": "base32hexpad", + "code": "t", + "status": "experimental", + "description": "RFC4648 case-insensitive - with padding" + }, + { + "name": "base64url", + "code": "u", + "status": "final", + "description": "RFC4648 no padding" + }, + { + "name": "base32hex", + "code": "v", + "status": "experimental", + "description": "RFC4648 case-insensitive - no padding - highest char" + }, + { + "name": "base58btc", + "code": "z", + "status": "final", + "description": "Base58 Bitcoin" + }, + { + "name": "base256emoji", + "code": "0x01F680", + "status": "experimental", + "description": "base256 with custom alphabet using variable-sized-codepoints" + } +] \ No newline at end of file diff --git a/misc/multiformats_config/multicodec-table.json b/misc/multiformats_config/multicodec-table.json new file mode 100644 index 00000000..5ad8cabc --- /dev/null +++ b/misc/multiformats_config/multicodec-table.json @@ -0,0 +1,3775 @@ +[ + { + "name": "identity", + "tag": "multihash", + "code": "0x00", + "status": "permanent", + "description": "raw binary" + }, + { + "name": "cidv1", + "tag": "cid", + "code": "0x01", + "status": "permanent", + "description": "CIDv1" + }, + { + "name": "cidv2", + "tag": "cid", + "code": "0x02", + "status": "draft", + "description": "CIDv2" + }, + { + "name": "cidv3", + "tag": "cid", + "code": "0x03", + "status": "draft", + "description": "CIDv3" + }, + { + "name": "ip4", + "tag": "multiaddr", + "code": "0x04", + "status": "permanent", + "description": "" + }, + { + "name": "tcp", + "tag": "multiaddr", + "code": "0x06", + "status": "permanent", + "description": "" + }, + { + "name": "sha1", + "tag": "multihash", + "code": "0x11", + "status": "permanent", + "description": "" + }, + { + "name": "sha2-256", + "tag": "multihash", + "code": "0x12", + "status": "permanent", + "description": "" + }, + { + "name": "sha2-512", + "tag": "multihash", + "code": "0x13", + "status": "permanent", + "description": "" + }, + { + "name": "sha3-512", + "tag": "multihash", + "code": "0x14", + "status": "permanent", + "description": "" + }, + { + "name": "sha3-384", + "tag": "multihash", + "code": "0x15", + "status": "permanent", + "description": "" + }, + { + "name": "sha3-256", + "tag": "multihash", + "code": "0x16", + "status": "permanent", + "description": "" + }, + { + "name": "sha3-224", + "tag": "multihash", + "code": "0x17", + "status": "permanent", + "description": "" + }, + { + "name": "shake-128", + "tag": "multihash", + "code": "0x18", + "status": "draft", + "description": "" + }, + { + "name": "shake-256", + "tag": "multihash", + "code": "0x19", + "status": "draft", + "description": "" + }, + { + "name": "keccak-224", + "tag": "multihash", + "code": "0x1a", + "status": "draft", + "description": "keccak has variable output length. The number specifies the core length" + }, + { + "name": "keccak-256", + "tag": "multihash", + "code": "0x1b", + "status": "draft", + "description": "" + }, + { + "name": "keccak-384", + "tag": "multihash", + "code": "0x1c", + "status": "draft", + "description": "" + }, + { + "name": "keccak-512", + "tag": "multihash", + "code": "0x1d", + "status": "draft", + "description": "" + }, + { + "name": "blake3", + "tag": "multihash", + "code": "0x1e", + "status": "draft", + "description": "BLAKE3 has a default 32 byte output length. The maximum length is (2^64)-1 bytes." + }, + { + "name": "sha2-384", + "tag": "multihash", + "code": "0x20", + "status": "permanent", + "description": "aka SHA-384; as specified by FIPS 180-4." + }, + { + "name": "dccp", + "tag": "multiaddr", + "code": "0x21", + "status": "draft", + "description": "" + }, + { + "name": "murmur3-x64-64", + "tag": "hash", + "code": "0x22", + "status": "permanent", + "description": "The first 64-bits of a murmur3-x64-128 - used for UnixFS directory sharding." + }, + { + "name": "murmur3-32", + "tag": "hash", + "code": "0x23", + "status": "draft", + "description": "" + }, + { + "name": "ip6", + "tag": "multiaddr", + "code": "0x29", + "status": "permanent", + "description": "" + }, + { + "name": "ip6zone", + "tag": "multiaddr", + "code": "0x2a", + "status": "draft", + "description": "" + }, + { + "name": "ipcidr", + "tag": "multiaddr", + "code": "0x2b", + "status": "draft", + "description": "CIDR mask for IP addresses" + }, + { + "name": "path", + "tag": "namespace", + "code": "0x2f", + "status": "permanent", + "description": "Namespace for string paths. Corresponds to `/` in ASCII." + }, + { + "name": "multicodec", + "tag": "multiformat", + "code": "0x30", + "status": "draft", + "description": "" + }, + { + "name": "multihash", + "tag": "multiformat", + "code": "0x31", + "status": "draft", + "description": "" + }, + { + "name": "multiaddr", + "tag": "multiformat", + "code": "0x32", + "status": "draft", + "description": "" + }, + { + "name": "multibase", + "tag": "multiformat", + "code": "0x33", + "status": "draft", + "description": "" + }, + { + "name": "varsig", + "tag": "multiformat", + "code": "0x34", + "status": "draft", + "description": "Variable signature (varsig) multiformat" + }, + { + "name": "dns", + "tag": "multiaddr", + "code": "0x35", + "status": "permanent", + "description": "" + }, + { + "name": "dns4", + "tag": "multiaddr", + "code": "0x36", + "status": "permanent", + "description": "" + }, + { + "name": "dns6", + "tag": "multiaddr", + "code": "0x37", + "status": "permanent", + "description": "" + }, + { + "name": "dnsaddr", + "tag": "multiaddr", + "code": "0x38", + "status": "permanent", + "description": "" + }, + { + "name": "protobuf", + "tag": "serialization", + "code": "0x50", + "status": "draft", + "description": "Protocol Buffers" + }, + { + "name": "cbor", + "tag": "ipld", + "code": "0x51", + "status": "permanent", + "description": "CBOR" + }, + { + "name": "raw", + "tag": "ipld", + "code": "0x55", + "status": "permanent", + "description": "raw binary" + }, + { + "name": "dbl-sha2-256", + "tag": "multihash", + "code": "0x56", + "status": "draft", + "description": "" + }, + { + "name": "rlp", + "tag": "serialization", + "code": "0x60", + "status": "draft", + "description": "recursive length prefix" + }, + { + "name": "bencode", + "tag": "serialization", + "code": "0x63", + "status": "draft", + "description": "bencode" + }, + { + "name": "dag-pb", + "tag": "ipld", + "code": "0x70", + "status": "permanent", + "description": "MerkleDAG protobuf" + }, + { + "name": "dag-cbor", + "tag": "ipld", + "code": "0x71", + "status": "permanent", + "description": "MerkleDAG cbor" + }, + { + "name": "libp2p-key", + "tag": "ipld", + "code": "0x72", + "status": "permanent", + "description": "Libp2p Public Key" + }, + { + "name": "git-raw", + "tag": "ipld", + "code": "0x78", + "status": "permanent", + "description": "Raw Git object" + }, + { + "name": "torrent-info", + "tag": "ipld", + "code": "0x7b", + "status": "draft", + "description": "Torrent file info field (bencoded)" + }, + { + "name": "torrent-file", + "tag": "ipld", + "code": "0x7c", + "status": "draft", + "description": "Torrent file (bencoded)" + }, + { + "name": "leofcoin-block", + "tag": "ipld", + "code": "0x81", + "status": "draft", + "description": "Leofcoin Block" + }, + { + "name": "leofcoin-tx", + "tag": "ipld", + "code": "0x82", + "status": "draft", + "description": "Leofcoin Transaction" + }, + { + "name": "leofcoin-pr", + "tag": "ipld", + "code": "0x83", + "status": "draft", + "description": "Leofcoin Peer Reputation" + }, + { + "name": "sctp", + "tag": "multiaddr", + "code": "0x84", + "status": "draft", + "description": "" + }, + { + "name": "dag-jose", + "tag": "ipld", + "code": "0x85", + "status": "draft", + "description": "MerkleDAG JOSE" + }, + { + "name": "dag-cose", + "tag": "ipld", + "code": "0x86", + "status": "draft", + "description": "MerkleDAG COSE" + }, + { + "name": "lbry", + "tag": "namespace", + "code": "0x8c", + "status": "draft", + "description": "LBRY Address" + }, + { + "name": "eth-block", + "tag": "ipld", + "code": "0x90", + "status": "permanent", + "description": "Ethereum Header (RLP)" + }, + { + "name": "eth-block-list", + "tag": "ipld", + "code": "0x91", + "status": "permanent", + "description": "Ethereum Header List (RLP)" + }, + { + "name": "eth-tx-trie", + "tag": "ipld", + "code": "0x92", + "status": "permanent", + "description": "Ethereum Transaction Trie (Eth-Trie)" + }, + { + "name": "eth-tx", + "tag": "ipld", + "code": "0x93", + "status": "permanent", + "description": "Ethereum Transaction (MarshalBinary)" + }, + { + "name": "eth-tx-receipt-trie", + "tag": "ipld", + "code": "0x94", + "status": "permanent", + "description": "Ethereum Transaction Receipt Trie (Eth-Trie)" + }, + { + "name": "eth-tx-receipt", + "tag": "ipld", + "code": "0x95", + "status": "permanent", + "description": "Ethereum Transaction Receipt (MarshalBinary)" + }, + { + "name": "eth-state-trie", + "tag": "ipld", + "code": "0x96", + "status": "permanent", + "description": "Ethereum State Trie (Eth-Secure-Trie)" + }, + { + "name": "eth-account-snapshot", + "tag": "ipld", + "code": "0x97", + "status": "permanent", + "description": "Ethereum Account Snapshot (RLP)" + }, + { + "name": "eth-storage-trie", + "tag": "ipld", + "code": "0x98", + "status": "permanent", + "description": "Ethereum Contract Storage Trie (Eth-Secure-Trie)" + }, + { + "name": "eth-receipt-log-trie", + "tag": "ipld", + "code": "0x99", + "status": "draft", + "description": "Ethereum Transaction Receipt Log Trie (Eth-Trie)" + }, + { + "name": "eth-receipt-log", + "tag": "ipld", + "code": "0x9a", + "status": "draft", + "description": "Ethereum Transaction Receipt Log (RLP)" + }, + { + "name": "aes-128", + "tag": "key", + "code": "0xa0", + "status": "draft", + "description": "128-bit AES symmetric key" + }, + { + "name": "aes-192", + "tag": "key", + "code": "0xa1", + "status": "draft", + "description": "192-bit AES symmetric key" + }, + { + "name": "aes-256", + "tag": "key", + "code": "0xa2", + "status": "draft", + "description": "256-bit AES symmetric key" + }, + { + "name": "chacha-128", + "tag": "key", + "code": "0xa3", + "status": "draft", + "description": "128-bit ChaCha symmetric key" + }, + { + "name": "chacha-256", + "tag": "key", + "code": "0xa4", + "status": "draft", + "description": "256-bit ChaCha symmetric key" + }, + { + "name": "bitcoin-block", + "tag": "ipld", + "code": "0xb0", + "status": "permanent", + "description": "Bitcoin Block" + }, + { + "name": "bitcoin-tx", + "tag": "ipld", + "code": "0xb1", + "status": "permanent", + "description": "Bitcoin Tx" + }, + { + "name": "bitcoin-witness-commitment", + "tag": "ipld", + "code": "0xb2", + "status": "permanent", + "description": "Bitcoin Witness Commitment" + }, + { + "name": "zcash-block", + "tag": "ipld", + "code": "0xc0", + "status": "permanent", + "description": "Zcash Block" + }, + { + "name": "zcash-tx", + "tag": "ipld", + "code": "0xc1", + "status": "permanent", + "description": "Zcash Tx" + }, + { + "name": "caip-50", + "tag": "multiformat", + "code": "0xca", + "status": "draft", + "description": "CAIP-50 multi-chain account id" + }, + { + "name": "streamid", + "tag": "namespace", + "code": "0xce", + "status": "draft", + "description": "Ceramic Stream Id" + }, + { + "name": "stellar-block", + "tag": "ipld", + "code": "0xd0", + "status": "draft", + "description": "Stellar Block" + }, + { + "name": "stellar-tx", + "tag": "ipld", + "code": "0xd1", + "status": "draft", + "description": "Stellar Tx" + }, + { + "name": "md4", + "tag": "multihash", + "code": "0xd4", + "status": "draft", + "description": "" + }, + { + "name": "md5", + "tag": "multihash", + "code": "0xd5", + "status": "draft", + "description": "" + }, + { + "name": "decred-block", + "tag": "ipld", + "code": "0xe0", + "status": "draft", + "description": "Decred Block" + }, + { + "name": "decred-tx", + "tag": "ipld", + "code": "0xe1", + "status": "draft", + "description": "Decred Tx" + }, + { + "name": "ipld", + "tag": "namespace", + "code": "0xe2", + "status": "draft", + "description": "IPLD path" + }, + { + "name": "ipfs", + "tag": "namespace", + "code": "0xe3", + "status": "draft", + "description": "IPFS path" + }, + { + "name": "swarm", + "tag": "namespace", + "code": "0xe4", + "status": "draft", + "description": "Swarm path" + }, + { + "name": "ipns", + "tag": "namespace", + "code": "0xe5", + "status": "draft", + "description": "IPNS path" + }, + { + "name": "zeronet", + "tag": "namespace", + "code": "0xe6", + "status": "draft", + "description": "ZeroNet site address" + }, + { + "name": "secp256k1-pub", + "tag": "key", + "code": "0xe7", + "status": "draft", + "description": "Secp256k1 public key (compressed)" + }, + { + "name": "dnslink", + "tag": "namespace", + "code": "0xe8", + "status": "permanent", + "description": "DNSLink path" + }, + { + "name": "bls12_381-g1-pub", + "tag": "key", + "code": "0xea", + "status": "draft", + "description": "BLS12-381 public key in the G1 field" + }, + { + "name": "bls12_381-g2-pub", + "tag": "key", + "code": "0xeb", + "status": "draft", + "description": "BLS12-381 public key in the G2 field" + }, + { + "name": "x25519-pub", + "tag": "key", + "code": "0xec", + "status": "draft", + "description": "Curve25519 public key" + }, + { + "name": "ed25519-pub", + "tag": "key", + "code": "0xed", + "status": "draft", + "description": "Ed25519 public key" + }, + { + "name": "bls12_381-g1g2-pub", + "tag": "key", + "code": "0xee", + "status": "draft", + "description": "BLS12-381 concatenated public keys in both the G1 and G2 fields" + }, + { + "name": "sr25519-pub", + "tag": "key", + "code": "0xef", + "status": "draft", + "description": "Sr25519 public key" + }, + { + "name": "dash-block", + "tag": "ipld", + "code": "0xf0", + "status": "draft", + "description": "Dash Block" + }, + { + "name": "dash-tx", + "tag": "ipld", + "code": "0xf1", + "status": "draft", + "description": "Dash Tx" + }, + { + "name": "swarm-manifest", + "tag": "ipld", + "code": "0xfa", + "status": "draft", + "description": "Swarm Manifest" + }, + { + "name": "swarm-feed", + "tag": "ipld", + "code": "0xfb", + "status": "draft", + "description": "Swarm Feed" + }, + { + "name": "beeson", + "tag": "ipld", + "code": "0xfc", + "status": "draft", + "description": "Swarm BeeSon" + }, + { + "name": "udp", + "tag": "multiaddr", + "code": "0x0111", + "status": "draft", + "description": "" + }, + { + "name": "p2p-webrtc-star", + "tag": "multiaddr", + "code": "0x0113", + "status": "deprecated", + "description": "Use webrtc or webrtc-direct instead" + }, + { + "name": "p2p-webrtc-direct", + "tag": "multiaddr", + "code": "0x0114", + "status": "deprecated", + "description": "Use webrtc or webrtc-direct instead" + }, + { + "name": "p2p-stardust", + "tag": "multiaddr", + "code": "0x0115", + "status": "deprecated", + "description": "" + }, + { + "name": "webrtc-direct", + "tag": "multiaddr", + "code": "0x0118", + "status": "draft", + "description": "ICE-lite webrtc transport with SDP munging during connection establishment and without use of a STUN server" + }, + { + "name": "webrtc", + "tag": "multiaddr", + "code": "0x0119", + "status": "draft", + "description": "webrtc transport where connection establishment is according to w3c spec" + }, + { + "name": "p2p-circuit", + "tag": "multiaddr", + "code": "0x0122", + "status": "permanent", + "description": "" + }, + { + "name": "dag-json", + "tag": "ipld", + "code": "0x0129", + "status": "permanent", + "description": "MerkleDAG json" + }, + { + "name": "udt", + "tag": "multiaddr", + "code": "0x012d", + "status": "draft", + "description": "" + }, + { + "name": "utp", + "tag": "multiaddr", + "code": "0x012e", + "status": "draft", + "description": "" + }, + { + "name": "crc32", + "tag": "hash", + "code": "0x0132", + "status": "draft", + "description": "CRC-32 non-cryptographic hash algorithm (IEEE 802.3)" + }, + { + "name": "crc64-ecma", + "tag": "hash", + "code": "0x0164", + "status": "draft", + "description": "CRC-64 non-cryptographic hash algorithm (ECMA-182 - Annex B)" + }, + { + "name": "unix", + "tag": "multiaddr", + "code": "0x0190", + "status": "permanent", + "description": "" + }, + { + "name": "thread", + "tag": "multiaddr", + "code": "0x0196", + "status": "draft", + "description": "Textile Thread" + }, + { + "name": "p2p", + "tag": "multiaddr", + "code": "0x01a5", + "status": "permanent", + "description": "libp2p" + }, + { + "name": "https", + "tag": "multiaddr", + "code": "0x01bb", + "status": "draft", + "description": "" + }, + { + "name": "onion", + "tag": "multiaddr", + "code": "0x01bc", + "status": "draft", + "description": "" + }, + { + "name": "onion3", + "tag": "multiaddr", + "code": "0x01bd", + "status": "draft", + "description": "" + }, + { + "name": "garlic64", + "tag": "multiaddr", + "code": "0x01be", + "status": "draft", + "description": "I2P base64 (raw public key)" + }, + { + "name": "garlic32", + "tag": "multiaddr", + "code": "0x01bf", + "status": "draft", + "description": "I2P base32 (hashed public key or encoded public key/checksum+optional secret)" + }, + { + "name": "tls", + "tag": "multiaddr", + "code": "0x01c0", + "status": "draft", + "description": "" + }, + { + "name": "sni", + "tag": "multiaddr", + "code": "0x01c1", + "status": "draft", + "description": "Server Name Indication RFC 6066 \u00a7 3" + }, + { + "name": "noise", + "tag": "multiaddr", + "code": "0x01c6", + "status": "draft", + "description": "" + }, + { + "name": "shs", + "tag": "multiaddr", + "code": "0x01c8", + "status": "draft", + "description": "Secure Scuttlebutt - Secret Handshake Stream" + }, + { + "name": "quic", + "tag": "multiaddr", + "code": "0x01cc", + "status": "permanent", + "description": "" + }, + { + "name": "quic-v1", + "tag": "multiaddr", + "code": "0x01cd", + "status": "permanent", + "description": "" + }, + { + "name": "webtransport", + "tag": "multiaddr", + "code": "0x01d1", + "status": "draft", + "description": "" + }, + { + "name": "certhash", + "tag": "multiaddr", + "code": "0x01d2", + "status": "draft", + "description": "TLS certificate's fingerprint as a multihash" + }, + { + "name": "ws", + "tag": "multiaddr", + "code": "0x01dd", + "status": "permanent", + "description": "" + }, + { + "name": "wss", + "tag": "multiaddr", + "code": "0x01de", + "status": "permanent", + "description": "" + }, + { + "name": "p2p-websocket-star", + "tag": "multiaddr", + "code": "0x01df", + "status": "permanent", + "description": "" + }, + { + "name": "http", + "tag": "multiaddr", + "code": "0x01e0", + "status": "draft", + "description": "" + }, + { + "name": "swhid-1-snp", + "tag": "ipld", + "code": "0x01f0", + "status": "draft", + "description": "SoftWare Heritage persistent IDentifier version 1 snapshot" + }, + { + "name": "json", + "tag": "ipld", + "code": "0x0200", + "status": "permanent", + "description": "JSON (UTF-8-encoded)" + }, + { + "name": "messagepack", + "tag": "serialization", + "code": "0x0201", + "status": "draft", + "description": "MessagePack" + }, + { + "name": "car", + "tag": "serialization", + "code": "0x0202", + "status": "draft", + "description": "Content Addressable aRchive (CAR)" + }, + { + "name": "ipns-record", + "tag": "serialization", + "code": "0x0300", + "status": "permanent", + "description": "Signed IPNS Record" + }, + { + "name": "libp2p-peer-record", + "tag": "libp2p", + "code": "0x0301", + "status": "permanent", + "description": "libp2p peer record type" + }, + { + "name": "libp2p-relay-rsvp", + "tag": "libp2p", + "code": "0x0302", + "status": "permanent", + "description": "libp2p relay reservation voucher" + }, + { + "name": "memorytransport", + "tag": "libp2p", + "code": "0x0309", + "status": "permanent", + "description": "in memory transport for self-dialing and testing; arbitrary" + }, + { + "name": "car-index-sorted", + "tag": "serialization", + "code": "0x0400", + "status": "draft", + "description": "CARv2 IndexSorted index format" + }, + { + "name": "car-multihash-index-sorted", + "tag": "serialization", + "code": "0x0401", + "status": "draft", + "description": "CARv2 MultihashIndexSorted index format" + }, + { + "name": "transport-bitswap", + "tag": "transport", + "code": "0x0900", + "status": "draft", + "description": "Bitswap datatransfer" + }, + { + "name": "transport-graphsync-filecoinv1", + "tag": "transport", + "code": "0x0910", + "status": "draft", + "description": "Filecoin graphsync datatransfer" + }, + { + "name": "transport-ipfs-gateway-http", + "tag": "transport", + "code": "0x0920", + "status": "draft", + "description": "HTTP IPFS Gateway trustless datatransfer" + }, + { + "name": "multidid", + "tag": "multiformat", + "code": "0x0d1d", + "status": "draft", + "description": "Compact encoding for Decentralized Identifers" + }, + { + "name": "sha2-256-trunc254-padded", + "tag": "multihash", + "code": "0x1012", + "status": "permanent", + "description": "SHA2-256 with the two most significant bits from the last byte zeroed (as via a mask with 0b00111111) - used for proving trees as in Filecoin" + }, + { + "name": "sha2-224", + "tag": "multihash", + "code": "0x1013", + "status": "permanent", + "description": "aka SHA-224; as specified by FIPS 180-4." + }, + { + "name": "sha2-512-224", + "tag": "multihash", + "code": "0x1014", + "status": "permanent", + "description": "aka SHA-512/224; as specified by FIPS 180-4." + }, + { + "name": "sha2-512-256", + "tag": "multihash", + "code": "0x1015", + "status": "permanent", + "description": "aka SHA-512/256; as specified by FIPS 180-4." + }, + { + "name": "murmur3-x64-128", + "tag": "hash", + "code": "0x1022", + "status": "draft", + "description": "" + }, + { + "name": "ripemd-128", + "tag": "multihash", + "code": "0x1052", + "status": "draft", + "description": "" + }, + { + "name": "ripemd-160", + "tag": "multihash", + "code": "0x1053", + "status": "draft", + "description": "" + }, + { + "name": "ripemd-256", + "tag": "multihash", + "code": "0x1054", + "status": "draft", + "description": "" + }, + { + "name": "ripemd-320", + "tag": "multihash", + "code": "0x1055", + "status": "draft", + "description": "" + }, + { + "name": "x11", + "tag": "multihash", + "code": "0x1100", + "status": "draft", + "description": "" + }, + { + "name": "p256-pub", + "tag": "key", + "code": "0x1200", + "status": "draft", + "description": "P-256 public Key (compressed)" + }, + { + "name": "p384-pub", + "tag": "key", + "code": "0x1201", + "status": "draft", + "description": "P-384 public Key (compressed)" + }, + { + "name": "p521-pub", + "tag": "key", + "code": "0x1202", + "status": "draft", + "description": "P-521 public Key (compressed)" + }, + { + "name": "ed448-pub", + "tag": "key", + "code": "0x1203", + "status": "draft", + "description": "Ed448 public Key" + }, + { + "name": "x448-pub", + "tag": "key", + "code": "0x1204", + "status": "draft", + "description": "X448 public Key" + }, + { + "name": "rsa-pub", + "tag": "key", + "code": "0x1205", + "status": "draft", + "description": "RSA public key. DER-encoded ASN.1 type RSAPublicKey according to IETF RFC 8017 (PKCS #1)" + }, + { + "name": "sm2-pub", + "tag": "key", + "code": "0x1206", + "status": "draft", + "description": "SM2 public key (compressed)" + }, + { + "name": "ed25519-priv", + "tag": "key", + "code": "0x1300", + "status": "draft", + "description": "Ed25519 private key" + }, + { + "name": "secp256k1-priv", + "tag": "key", + "code": "0x1301", + "status": "draft", + "description": "Secp256k1 private key" + }, + { + "name": "x25519-priv", + "tag": "key", + "code": "0x1302", + "status": "draft", + "description": "Curve25519 private key" + }, + { + "name": "sr25519-priv", + "tag": "key", + "code": "0x1303", + "status": "draft", + "description": "Sr25519 private key" + }, + { + "name": "rsa-priv", + "tag": "key", + "code": "0x1305", + "status": "draft", + "description": "RSA private key" + }, + { + "name": "p256-priv", + "tag": "key", + "code": "0x1306", + "status": "draft", + "description": "P-256 private key" + }, + { + "name": "p384-priv", + "tag": "key", + "code": "0x1307", + "status": "draft", + "description": "P-384 private key" + }, + { + "name": "p521-priv", + "tag": "key", + "code": "0x1308", + "status": "draft", + "description": "P-521 private key" + }, + { + "name": "bls12_381-g1-priv", + "tag": "key", + "code": "0x1309", + "status": "draft", + "description": "BLS12-381 G1 private key" + }, + { + "name": "bls12_381-g2-priv", + "tag": "key", + "code": "0x130a", + "status": "draft", + "description": "BLS12-381 G2 private key" + }, + { + "name": "bls12_381-g1g2-priv", + "tag": "key", + "code": "0x130b", + "status": "draft", + "description": "BLS12-381 G1 and G2 private key" + }, + { + "name": "kangarootwelve", + "tag": "multihash", + "code": "0x1d01", + "status": "draft", + "description": "KangarooTwelve is an extendable-output hash function based on Keccak-p" + }, + { + "name": "aes-gcm-256", + "tag": "encryption", + "code": "0x2000", + "status": "draft", + "description": "AES Galois/Counter Mode with 256-bit key and 12-byte IV" + }, + { + "name": "silverpine", + "tag": "multiaddr", + "code": "0x3f42", + "status": "draft", + "description": "Experimental QUIC over yggdrasil and ironwood routing protocol" + }, + { + "name": "sm3-256", + "tag": "multihash", + "code": "0x534d", + "status": "draft", + "description": "" + }, + { + "name": "sha256a", + "tag": "hash", + "code": "0x7012", + "status": "draft", + "description": "The sum of multiple sha2-256 hashes; as specified by Ceramic CIP-124." + }, + { + "name": "blake2b-8", + "tag": "multihash", + "code": "0xb201", + "status": "draft", + "description": "Blake2b consists of 64 output lengths that give different hashes" + }, + { + "name": "blake2b-16", + "tag": "multihash", + "code": "0xb202", + "status": "draft", + "description": "" + }, + { + "name": "blake2b-24", + "tag": "multihash", + "code": "0xb203", + "status": "draft", + "description": "" + }, + { + "name": "blake2b-32", + "tag": "multihash", + "code": "0xb204", + "status": "draft", + "description": "" + }, + { + "name": "blake2b-40", + "tag": "multihash", + "code": "0xb205", + "status": "draft", + "description": "" + }, + { + "name": "blake2b-48", + "tag": "multihash", + "code": "0xb206", + "status": "draft", + "description": "" + }, + { + "name": "blake2b-56", + "tag": "multihash", + "code": "0xb207", + "status": "draft", + "description": "" + }, + { + "name": "blake2b-64", + "tag": "multihash", + "code": "0xb208", + "status": "draft", + "description": "" + }, + { + "name": "blake2b-72", + "tag": "multihash", + "code": "0xb209", + "status": "draft", + "description": "" + }, + { + "name": "blake2b-80", + "tag": "multihash", + "code": "0xb20a", + "status": "draft", + "description": "" + }, + { + "name": "blake2b-88", + "tag": "multihash", + "code": "0xb20b", + "status": "draft", + "description": "" + }, + { + "name": "blake2b-96", + "tag": "multihash", + "code": "0xb20c", + "status": "draft", + "description": "" + }, + { + "name": "blake2b-104", + "tag": "multihash", + "code": "0xb20d", + "status": "draft", + "description": "" + }, + { + "name": "blake2b-112", + "tag": "multihash", + "code": "0xb20e", + "status": "draft", + "description": "" + }, + { + "name": "blake2b-120", + "tag": "multihash", + "code": "0xb20f", + "status": "draft", + "description": "" + }, + { + "name": "blake2b-128", + "tag": "multihash", + "code": "0xb210", + "status": "draft", + "description": "" + }, + { + "name": "blake2b-136", + "tag": "multihash", + "code": "0xb211", + "status": "draft", + "description": "" + }, + { + "name": "blake2b-144", + "tag": "multihash", + "code": "0xb212", + "status": "draft", + "description": "" + }, + { + "name": "blake2b-152", + "tag": "multihash", + "code": "0xb213", + "status": "draft", + "description": "" + }, + { + "name": "blake2b-160", + "tag": "multihash", + "code": "0xb214", + "status": "draft", + "description": "" + }, + { + "name": "blake2b-168", + "tag": "multihash", + "code": "0xb215", + "status": "draft", + "description": "" + }, + { + "name": "blake2b-176", + "tag": "multihash", + "code": "0xb216", + "status": "draft", + "description": "" + }, + { + "name": "blake2b-184", + "tag": "multihash", + "code": "0xb217", + "status": "draft", + "description": "" + }, + { + "name": "blake2b-192", + "tag": "multihash", + "code": "0xb218", + "status": "draft", + "description": "" + }, + { + "name": "blake2b-200", + "tag": "multihash", + "code": "0xb219", + "status": "draft", + "description": "" + }, + { + "name": "blake2b-208", + "tag": "multihash", + "code": "0xb21a", + "status": "draft", + "description": "" + }, + { + "name": "blake2b-216", + "tag": "multihash", + "code": "0xb21b", + "status": "draft", + "description": "" + }, + { + "name": "blake2b-224", + "tag": "multihash", + "code": "0xb21c", + "status": "draft", + "description": "" + }, + { + "name": "blake2b-232", + "tag": "multihash", + "code": "0xb21d", + "status": "draft", + "description": "" + }, + { + "name": "blake2b-240", + "tag": "multihash", + "code": "0xb21e", + "status": "draft", + "description": "" + }, + { + "name": "blake2b-248", + "tag": "multihash", + "code": "0xb21f", + "status": "draft", + "description": "" + }, + { + "name": "blake2b-256", + "tag": "multihash", + "code": "0xb220", + "status": "permanent", + "description": "" + }, + { + "name": "blake2b-264", + "tag": "multihash", + "code": "0xb221", + "status": "draft", + "description": "" + }, + { + "name": "blake2b-272", + "tag": "multihash", + "code": "0xb222", + "status": "draft", + "description": "" + }, + { + "name": "blake2b-280", + "tag": "multihash", + "code": "0xb223", + "status": "draft", + "description": "" + }, + { + "name": "blake2b-288", + "tag": "multihash", + "code": "0xb224", + "status": "draft", + "description": "" + }, + { + "name": "blake2b-296", + "tag": "multihash", + "code": "0xb225", + "status": "draft", + "description": "" + }, + { + "name": "blake2b-304", + "tag": "multihash", + "code": "0xb226", + "status": "draft", + "description": "" + }, + { + "name": "blake2b-312", + "tag": "multihash", + "code": "0xb227", + "status": "draft", + "description": "" + }, + { + "name": "blake2b-320", + "tag": "multihash", + "code": "0xb228", + "status": "draft", + "description": "" + }, + { + "name": "blake2b-328", + "tag": "multihash", + "code": "0xb229", + "status": "draft", + "description": "" + }, + { + "name": "blake2b-336", + "tag": "multihash", + "code": "0xb22a", + "status": "draft", + "description": "" + }, + { + "name": "blake2b-344", + "tag": "multihash", + "code": "0xb22b", + "status": "draft", + "description": "" + }, + { + "name": "blake2b-352", + "tag": "multihash", + "code": "0xb22c", + "status": "draft", + "description": "" + }, + { + "name": "blake2b-360", + "tag": "multihash", + "code": "0xb22d", + "status": "draft", + "description": "" + }, + { + "name": "blake2b-368", + "tag": "multihash", + "code": "0xb22e", + "status": "draft", + "description": "" + }, + { + "name": "blake2b-376", + "tag": "multihash", + "code": "0xb22f", + "status": "draft", + "description": "" + }, + { + "name": "blake2b-384", + "tag": "multihash", + "code": "0xb230", + "status": "draft", + "description": "" + }, + { + "name": "blake2b-392", + "tag": "multihash", + "code": "0xb231", + "status": "draft", + "description": "" + }, + { + "name": "blake2b-400", + "tag": "multihash", + "code": "0xb232", + "status": "draft", + "description": "" + }, + { + "name": "blake2b-408", + "tag": "multihash", + "code": "0xb233", + "status": "draft", + "description": "" + }, + { + "name": "blake2b-416", + "tag": "multihash", + "code": "0xb234", + "status": "draft", + "description": "" + }, + { + "name": "blake2b-424", + "tag": "multihash", + "code": "0xb235", + "status": "draft", + "description": "" + }, + { + "name": "blake2b-432", + "tag": "multihash", + "code": "0xb236", + "status": "draft", + "description": "" + }, + { + "name": "blake2b-440", + "tag": "multihash", + "code": "0xb237", + "status": "draft", + "description": "" + }, + { + "name": "blake2b-448", + "tag": "multihash", + "code": "0xb238", + "status": "draft", + "description": "" + }, + { + "name": "blake2b-456", + "tag": "multihash", + "code": "0xb239", + "status": "draft", + "description": "" + }, + { + "name": "blake2b-464", + "tag": "multihash", + "code": "0xb23a", + "status": "draft", + "description": "" + }, + { + "name": "blake2b-472", + "tag": "multihash", + "code": "0xb23b", + "status": "draft", + "description": "" + }, + { + "name": "blake2b-480", + "tag": "multihash", + "code": "0xb23c", + "status": "draft", + "description": "" + }, + { + "name": "blake2b-488", + "tag": "multihash", + "code": "0xb23d", + "status": "draft", + "description": "" + }, + { + "name": "blake2b-496", + "tag": "multihash", + "code": "0xb23e", + "status": "draft", + "description": "" + }, + { + "name": "blake2b-504", + "tag": "multihash", + "code": "0xb23f", + "status": "draft", + "description": "" + }, + { + "name": "blake2b-512", + "tag": "multihash", + "code": "0xb240", + "status": "draft", + "description": "" + }, + { + "name": "blake2s-8", + "tag": "multihash", + "code": "0xb241", + "status": "draft", + "description": "Blake2s consists of 32 output lengths that give different hashes" + }, + { + "name": "blake2s-16", + "tag": "multihash", + "code": "0xb242", + "status": "draft", + "description": "" + }, + { + "name": "blake2s-24", + "tag": "multihash", + "code": "0xb243", + "status": "draft", + "description": "" + }, + { + "name": "blake2s-32", + "tag": "multihash", + "code": "0xb244", + "status": "draft", + "description": "" + }, + { + "name": "blake2s-40", + "tag": "multihash", + "code": "0xb245", + "status": "draft", + "description": "" + }, + { + "name": "blake2s-48", + "tag": "multihash", + "code": "0xb246", + "status": "draft", + "description": "" + }, + { + "name": "blake2s-56", + "tag": "multihash", + "code": "0xb247", + "status": "draft", + "description": "" + }, + { + "name": "blake2s-64", + "tag": "multihash", + "code": "0xb248", + "status": "draft", + "description": "" + }, + { + "name": "blake2s-72", + "tag": "multihash", + "code": "0xb249", + "status": "draft", + "description": "" + }, + { + "name": "blake2s-80", + "tag": "multihash", + "code": "0xb24a", + "status": "draft", + "description": "" + }, + { + "name": "blake2s-88", + "tag": "multihash", + "code": "0xb24b", + "status": "draft", + "description": "" + }, + { + "name": "blake2s-96", + "tag": "multihash", + "code": "0xb24c", + "status": "draft", + "description": "" + }, + { + "name": "blake2s-104", + "tag": "multihash", + "code": "0xb24d", + "status": "draft", + "description": "" + }, + { + "name": "blake2s-112", + "tag": "multihash", + "code": "0xb24e", + "status": "draft", + "description": "" + }, + { + "name": "blake2s-120", + "tag": "multihash", + "code": "0xb24f", + "status": "draft", + "description": "" + }, + { + "name": "blake2s-128", + "tag": "multihash", + "code": "0xb250", + "status": "draft", + "description": "" + }, + { + "name": "blake2s-136", + "tag": "multihash", + "code": "0xb251", + "status": "draft", + "description": "" + }, + { + "name": "blake2s-144", + "tag": "multihash", + "code": "0xb252", + "status": "draft", + "description": "" + }, + { + "name": "blake2s-152", + "tag": "multihash", + "code": "0xb253", + "status": "draft", + "description": "" + }, + { + "name": "blake2s-160", + "tag": "multihash", + "code": "0xb254", + "status": "draft", + "description": "" + }, + { + "name": "blake2s-168", + "tag": "multihash", + "code": "0xb255", + "status": "draft", + "description": "" + }, + { + "name": "blake2s-176", + "tag": "multihash", + "code": "0xb256", + "status": "draft", + "description": "" + }, + { + "name": "blake2s-184", + "tag": "multihash", + "code": "0xb257", + "status": "draft", + "description": "" + }, + { + "name": "blake2s-192", + "tag": "multihash", + "code": "0xb258", + "status": "draft", + "description": "" + }, + { + "name": "blake2s-200", + "tag": "multihash", + "code": "0xb259", + "status": "draft", + "description": "" + }, + { + "name": "blake2s-208", + "tag": "multihash", + "code": "0xb25a", + "status": "draft", + "description": "" + }, + { + "name": "blake2s-216", + "tag": "multihash", + "code": "0xb25b", + "status": "draft", + "description": "" + }, + { + "name": "blake2s-224", + "tag": "multihash", + "code": "0xb25c", + "status": "draft", + "description": "" + }, + { + "name": "blake2s-232", + "tag": "multihash", + "code": "0xb25d", + "status": "draft", + "description": "" + }, + { + "name": "blake2s-240", + "tag": "multihash", + "code": "0xb25e", + "status": "draft", + "description": "" + }, + { + "name": "blake2s-248", + "tag": "multihash", + "code": "0xb25f", + "status": "draft", + "description": "" + }, + { + "name": "blake2s-256", + "tag": "multihash", + "code": "0xb260", + "status": "draft", + "description": "" + }, + { + "name": "skein256-8", + "tag": "multihash", + "code": "0xb301", + "status": "draft", + "description": "Skein256 consists of 32 output lengths that give different hashes" + }, + { + "name": "skein256-16", + "tag": "multihash", + "code": "0xb302", + "status": "draft", + "description": "" + }, + { + "name": "skein256-24", + "tag": "multihash", + "code": "0xb303", + "status": "draft", + "description": "" + }, + { + "name": "skein256-32", + "tag": "multihash", + "code": "0xb304", + "status": "draft", + "description": "" + }, + { + "name": "skein256-40", + "tag": "multihash", + "code": "0xb305", + "status": "draft", + "description": "" + }, + { + "name": "skein256-48", + "tag": "multihash", + "code": "0xb306", + "status": "draft", + "description": "" + }, + { + "name": "skein256-56", + "tag": "multihash", + "code": "0xb307", + "status": "draft", + "description": "" + }, + { + "name": "skein256-64", + "tag": "multihash", + "code": "0xb308", + "status": "draft", + "description": "" + }, + { + "name": "skein256-72", + "tag": "multihash", + "code": "0xb309", + "status": "draft", + "description": "" + }, + { + "name": "skein256-80", + "tag": "multihash", + "code": "0xb30a", + "status": "draft", + "description": "" + }, + { + "name": "skein256-88", + "tag": "multihash", + "code": "0xb30b", + "status": "draft", + "description": "" + }, + { + "name": "skein256-96", + "tag": "multihash", + "code": "0xb30c", + "status": "draft", + "description": "" + }, + { + "name": "skein256-104", + "tag": "multihash", + "code": "0xb30d", + "status": "draft", + "description": "" + }, + { + "name": "skein256-112", + "tag": "multihash", + "code": "0xb30e", + "status": "draft", + "description": "" + }, + { + "name": "skein256-120", + "tag": "multihash", + "code": "0xb30f", + "status": "draft", + "description": "" + }, + { + "name": "skein256-128", + "tag": "multihash", + "code": "0xb310", + "status": "draft", + "description": "" + }, + { + "name": "skein256-136", + "tag": "multihash", + "code": "0xb311", + "status": "draft", + "description": "" + }, + { + "name": "skein256-144", + "tag": "multihash", + "code": "0xb312", + "status": "draft", + "description": "" + }, + { + "name": "skein256-152", + "tag": "multihash", + "code": "0xb313", + "status": "draft", + "description": "" + }, + { + "name": "skein256-160", + "tag": "multihash", + "code": "0xb314", + "status": "draft", + "description": "" + }, + { + "name": "skein256-168", + "tag": "multihash", + "code": "0xb315", + "status": "draft", + "description": "" + }, + { + "name": "skein256-176", + "tag": "multihash", + "code": "0xb316", + "status": "draft", + "description": "" + }, + { + "name": "skein256-184", + "tag": "multihash", + "code": "0xb317", + "status": "draft", + "description": "" + }, + { + "name": "skein256-192", + "tag": "multihash", + "code": "0xb318", + "status": "draft", + "description": "" + }, + { + "name": "skein256-200", + "tag": "multihash", + "code": "0xb319", + "status": "draft", + "description": "" + }, + { + "name": "skein256-208", + "tag": "multihash", + "code": "0xb31a", + "status": "draft", + "description": "" + }, + { + "name": "skein256-216", + "tag": "multihash", + "code": "0xb31b", + "status": "draft", + "description": "" + }, + { + "name": "skein256-224", + "tag": "multihash", + "code": "0xb31c", + "status": "draft", + "description": "" + }, + { + "name": "skein256-232", + "tag": "multihash", + "code": "0xb31d", + "status": "draft", + "description": "" + }, + { + "name": "skein256-240", + "tag": "multihash", + "code": "0xb31e", + "status": "draft", + "description": "" + }, + { + "name": "skein256-248", + "tag": "multihash", + "code": "0xb31f", + "status": "draft", + "description": "" + }, + { + "name": "skein256-256", + "tag": "multihash", + "code": "0xb320", + "status": "draft", + "description": "" + }, + { + "name": "skein512-8", + "tag": "multihash", + "code": "0xb321", + "status": "draft", + "description": "Skein512 consists of 64 output lengths that give different hashes" + }, + { + "name": "skein512-16", + "tag": "multihash", + "code": "0xb322", + "status": "draft", + "description": "" + }, + { + "name": "skein512-24", + "tag": "multihash", + "code": "0xb323", + "status": "draft", + "description": "" + }, + { + "name": "skein512-32", + "tag": "multihash", + "code": "0xb324", + "status": "draft", + "description": "" + }, + { + "name": "skein512-40", + "tag": "multihash", + "code": "0xb325", + "status": "draft", + "description": "" + }, + { + "name": "skein512-48", + "tag": "multihash", + "code": "0xb326", + "status": "draft", + "description": "" + }, + { + "name": "skein512-56", + "tag": "multihash", + "code": "0xb327", + "status": "draft", + "description": "" + }, + { + "name": "skein512-64", + "tag": "multihash", + "code": "0xb328", + "status": "draft", + "description": "" + }, + { + "name": "skein512-72", + "tag": "multihash", + "code": "0xb329", + "status": "draft", + "description": "" + }, + { + "name": "skein512-80", + "tag": "multihash", + "code": "0xb32a", + "status": "draft", + "description": "" + }, + { + "name": "skein512-88", + "tag": "multihash", + "code": "0xb32b", + "status": "draft", + "description": "" + }, + { + "name": "skein512-96", + "tag": "multihash", + "code": "0xb32c", + "status": "draft", + "description": "" + }, + { + "name": "skein512-104", + "tag": "multihash", + "code": "0xb32d", + "status": "draft", + "description": "" + }, + { + "name": "skein512-112", + "tag": "multihash", + "code": "0xb32e", + "status": "draft", + "description": "" + }, + { + "name": "skein512-120", + "tag": "multihash", + "code": "0xb32f", + "status": "draft", + "description": "" + }, + { + "name": "skein512-128", + "tag": "multihash", + "code": "0xb330", + "status": "draft", + "description": "" + }, + { + "name": "skein512-136", + "tag": "multihash", + "code": "0xb331", + "status": "draft", + "description": "" + }, + { + "name": "skein512-144", + "tag": "multihash", + "code": "0xb332", + "status": "draft", + "description": "" + }, + { + "name": "skein512-152", + "tag": "multihash", + "code": "0xb333", + "status": "draft", + "description": "" + }, + { + "name": "skein512-160", + "tag": "multihash", + "code": "0xb334", + "status": "draft", + "description": "" + }, + { + "name": "skein512-168", + "tag": "multihash", + "code": "0xb335", + "status": "draft", + "description": "" + }, + { + "name": "skein512-176", + "tag": "multihash", + "code": "0xb336", + "status": "draft", + "description": "" + }, + { + "name": "skein512-184", + "tag": "multihash", + "code": "0xb337", + "status": "draft", + "description": "" + }, + { + "name": "skein512-192", + "tag": "multihash", + "code": "0xb338", + "status": "draft", + "description": "" + }, + { + "name": "skein512-200", + "tag": "multihash", + "code": "0xb339", + "status": "draft", + "description": "" + }, + { + "name": "skein512-208", + "tag": "multihash", + "code": "0xb33a", + "status": "draft", + "description": "" + }, + { + "name": "skein512-216", + "tag": "multihash", + "code": "0xb33b", + "status": "draft", + "description": "" + }, + { + "name": "skein512-224", + "tag": "multihash", + "code": "0xb33c", + "status": "draft", + "description": "" + }, + { + "name": "skein512-232", + "tag": "multihash", + "code": "0xb33d", + "status": "draft", + "description": "" + }, + { + "name": "skein512-240", + "tag": "multihash", + "code": "0xb33e", + "status": "draft", + "description": "" + }, + { + "name": "skein512-248", + "tag": "multihash", + "code": "0xb33f", + "status": "draft", + "description": "" + }, + { + "name": "skein512-256", + "tag": "multihash", + "code": "0xb340", + "status": "draft", + "description": "" + }, + { + "name": "skein512-264", + "tag": "multihash", + "code": "0xb341", + "status": "draft", + "description": "" + }, + { + "name": "skein512-272", + "tag": "multihash", + "code": "0xb342", + "status": "draft", + "description": "" + }, + { + "name": "skein512-280", + "tag": "multihash", + "code": "0xb343", + "status": "draft", + "description": "" + }, + { + "name": "skein512-288", + "tag": "multihash", + "code": "0xb344", + "status": "draft", + "description": "" + }, + { + "name": "skein512-296", + "tag": "multihash", + "code": "0xb345", + "status": "draft", + "description": "" + }, + { + "name": "skein512-304", + "tag": "multihash", + "code": "0xb346", + "status": "draft", + "description": "" + }, + { + "name": "skein512-312", + "tag": "multihash", + "code": "0xb347", + "status": "draft", + "description": "" + }, + { + "name": "skein512-320", + "tag": "multihash", + "code": "0xb348", + "status": "draft", + "description": "" + }, + { + "name": "skein512-328", + "tag": "multihash", + "code": "0xb349", + "status": "draft", + "description": "" + }, + { + "name": "skein512-336", + "tag": "multihash", + "code": "0xb34a", + "status": "draft", + "description": "" + }, + { + "name": "skein512-344", + "tag": "multihash", + "code": "0xb34b", + "status": "draft", + "description": "" + }, + { + "name": "skein512-352", + "tag": "multihash", + "code": "0xb34c", + "status": "draft", + "description": "" + }, + { + "name": "skein512-360", + "tag": "multihash", + "code": "0xb34d", + "status": "draft", + "description": "" + }, + { + "name": "skein512-368", + "tag": "multihash", + "code": "0xb34e", + "status": "draft", + "description": "" + }, + { + "name": "skein512-376", + "tag": "multihash", + "code": "0xb34f", + "status": "draft", + "description": "" + }, + { + "name": "skein512-384", + "tag": "multihash", + "code": "0xb350", + "status": "draft", + "description": "" + }, + { + "name": "skein512-392", + "tag": "multihash", + "code": "0xb351", + "status": "draft", + "description": "" + }, + { + "name": "skein512-400", + "tag": "multihash", + "code": "0xb352", + "status": "draft", + "description": "" + }, + { + "name": "skein512-408", + "tag": "multihash", + "code": "0xb353", + "status": "draft", + "description": "" + }, + { + "name": "skein512-416", + "tag": "multihash", + "code": "0xb354", + "status": "draft", + "description": "" + }, + { + "name": "skein512-424", + "tag": "multihash", + "code": "0xb355", + "status": "draft", + "description": "" + }, + { + "name": "skein512-432", + "tag": "multihash", + "code": "0xb356", + "status": "draft", + "description": "" + }, + { + "name": "skein512-440", + "tag": "multihash", + "code": "0xb357", + "status": "draft", + "description": "" + }, + { + "name": "skein512-448", + "tag": "multihash", + "code": "0xb358", + "status": "draft", + "description": "" + }, + { + "name": "skein512-456", + "tag": "multihash", + "code": "0xb359", + "status": "draft", + "description": "" + }, + { + "name": "skein512-464", + "tag": "multihash", + "code": "0xb35a", + "status": "draft", + "description": "" + }, + { + "name": "skein512-472", + "tag": "multihash", + "code": "0xb35b", + "status": "draft", + "description": "" + }, + { + "name": "skein512-480", + "tag": "multihash", + "code": "0xb35c", + "status": "draft", + "description": "" + }, + { + "name": "skein512-488", + "tag": "multihash", + "code": "0xb35d", + "status": "draft", + "description": "" + }, + { + "name": "skein512-496", + "tag": "multihash", + "code": "0xb35e", + "status": "draft", + "description": "" + }, + { + "name": "skein512-504", + "tag": "multihash", + "code": "0xb35f", + "status": "draft", + "description": "" + }, + { + "name": "skein512-512", + "tag": "multihash", + "code": "0xb360", + "status": "draft", + "description": "" + }, + { + "name": "skein1024-8", + "tag": "multihash", + "code": "0xb361", + "status": "draft", + "description": "Skein1024 consists of 128 output lengths that give different hashes" + }, + { + "name": "skein1024-16", + "tag": "multihash", + "code": "0xb362", + "status": "draft", + "description": "" + }, + { + "name": "skein1024-24", + "tag": "multihash", + "code": "0xb363", + "status": "draft", + "description": "" + }, + { + "name": "skein1024-32", + "tag": "multihash", + "code": "0xb364", + "status": "draft", + "description": "" + }, + { + "name": "skein1024-40", + "tag": "multihash", + "code": "0xb365", + "status": "draft", + "description": "" + }, + { + "name": "skein1024-48", + "tag": "multihash", + "code": "0xb366", + "status": "draft", + "description": "" + }, + { + "name": "skein1024-56", + "tag": "multihash", + "code": "0xb367", + "status": "draft", + "description": "" + }, + { + "name": "skein1024-64", + "tag": "multihash", + "code": "0xb368", + "status": "draft", + "description": "" + }, + { + "name": "skein1024-72", + "tag": "multihash", + "code": "0xb369", + "status": "draft", + "description": "" + }, + { + "name": "skein1024-80", + "tag": "multihash", + "code": "0xb36a", + "status": "draft", + "description": "" + }, + { + "name": "skein1024-88", + "tag": "multihash", + "code": "0xb36b", + "status": "draft", + "description": "" + }, + { + "name": "skein1024-96", + "tag": "multihash", + "code": "0xb36c", + "status": "draft", + "description": "" + }, + { + "name": "skein1024-104", + "tag": "multihash", + "code": "0xb36d", + "status": "draft", + "description": "" + }, + { + "name": "skein1024-112", + "tag": "multihash", + "code": "0xb36e", + "status": "draft", + "description": "" + }, + { + "name": "skein1024-120", + "tag": "multihash", + "code": "0xb36f", + "status": "draft", + "description": "" + }, + { + "name": "skein1024-128", + "tag": "multihash", + "code": "0xb370", + "status": "draft", + "description": "" + }, + { + "name": "skein1024-136", + "tag": "multihash", + "code": "0xb371", + "status": "draft", + "description": "" + }, + { + "name": "skein1024-144", + "tag": "multihash", + "code": "0xb372", + "status": "draft", + "description": "" + }, + { + "name": "skein1024-152", + "tag": "multihash", + "code": "0xb373", + "status": "draft", + "description": "" + }, + { + "name": "skein1024-160", + "tag": "multihash", + "code": "0xb374", + "status": "draft", + "description": "" + }, + { + "name": "skein1024-168", + "tag": "multihash", + "code": "0xb375", + "status": "draft", + "description": "" + }, + { + "name": "skein1024-176", + "tag": "multihash", + "code": "0xb376", + "status": "draft", + "description": "" + }, + { + "name": "skein1024-184", + "tag": "multihash", + "code": "0xb377", + "status": "draft", + "description": "" + }, + { + "name": "skein1024-192", + "tag": "multihash", + "code": "0xb378", + "status": "draft", + "description": "" + }, + { + "name": "skein1024-200", + "tag": "multihash", + "code": "0xb379", + "status": "draft", + "description": "" + }, + { + "name": "skein1024-208", + "tag": "multihash", + "code": "0xb37a", + "status": "draft", + "description": "" + }, + { + "name": "skein1024-216", + "tag": "multihash", + "code": "0xb37b", + "status": "draft", + "description": "" + }, + { + "name": "skein1024-224", + "tag": "multihash", + "code": "0xb37c", + "status": "draft", + "description": "" + }, + { + "name": "skein1024-232", + "tag": "multihash", + "code": "0xb37d", + "status": "draft", + "description": "" + }, + { + "name": "skein1024-240", + "tag": "multihash", + "code": "0xb37e", + "status": "draft", + "description": "" + }, + { + "name": "skein1024-248", + "tag": "multihash", + "code": "0xb37f", + "status": "draft", + "description": "" + }, + { + "name": "skein1024-256", + "tag": "multihash", + "code": "0xb380", + "status": "draft", + "description": "" + }, + { + "name": "skein1024-264", + "tag": "multihash", + "code": "0xb381", + "status": "draft", + "description": "" + }, + { + "name": "skein1024-272", + "tag": "multihash", + "code": "0xb382", + "status": "draft", + "description": "" + }, + { + "name": "skein1024-280", + "tag": "multihash", + "code": "0xb383", + "status": "draft", + "description": "" + }, + { + "name": "skein1024-288", + "tag": "multihash", + "code": "0xb384", + "status": "draft", + "description": "" + }, + { + "name": "skein1024-296", + "tag": "multihash", + "code": "0xb385", + "status": "draft", + "description": "" + }, + { + "name": "skein1024-304", + "tag": "multihash", + "code": "0xb386", + "status": "draft", + "description": "" + }, + { + "name": "skein1024-312", + "tag": "multihash", + "code": "0xb387", + "status": "draft", + "description": "" + }, + { + "name": "skein1024-320", + "tag": "multihash", + "code": "0xb388", + "status": "draft", + "description": "" + }, + { + "name": "skein1024-328", + "tag": "multihash", + "code": "0xb389", + "status": "draft", + "description": "" + }, + { + "name": "skein1024-336", + "tag": "multihash", + "code": "0xb38a", + "status": "draft", + "description": "" + }, + { + "name": "skein1024-344", + "tag": "multihash", + "code": "0xb38b", + "status": "draft", + "description": "" + }, + { + "name": "skein1024-352", + "tag": "multihash", + "code": "0xb38c", + "status": "draft", + "description": "" + }, + { + "name": "skein1024-360", + "tag": "multihash", + "code": "0xb38d", + "status": "draft", + "description": "" + }, + { + "name": "skein1024-368", + "tag": "multihash", + "code": "0xb38e", + "status": "draft", + "description": "" + }, + { + "name": "skein1024-376", + "tag": "multihash", + "code": "0xb38f", + "status": "draft", + "description": "" + }, + { + "name": "skein1024-384", + "tag": "multihash", + "code": "0xb390", + "status": "draft", + "description": "" + }, + { + "name": "skein1024-392", + "tag": "multihash", + "code": "0xb391", + "status": "draft", + "description": "" + }, + { + "name": "skein1024-400", + "tag": "multihash", + "code": "0xb392", + "status": "draft", + "description": "" + }, + { + "name": "skein1024-408", + "tag": "multihash", + "code": "0xb393", + "status": "draft", + "description": "" + }, + { + "name": "skein1024-416", + "tag": "multihash", + "code": "0xb394", + "status": "draft", + "description": "" + }, + { + "name": "skein1024-424", + "tag": "multihash", + "code": "0xb395", + "status": "draft", + "description": "" + }, + { + "name": "skein1024-432", + "tag": "multihash", + "code": "0xb396", + "status": "draft", + "description": "" + }, + { + "name": "skein1024-440", + "tag": "multihash", + "code": "0xb397", + "status": "draft", + "description": "" + }, + { + "name": "skein1024-448", + "tag": "multihash", + "code": "0xb398", + "status": "draft", + "description": "" + }, + { + "name": "skein1024-456", + "tag": "multihash", + "code": "0xb399", + "status": "draft", + "description": "" + }, + { + "name": "skein1024-464", + "tag": "multihash", + "code": "0xb39a", + "status": "draft", + "description": "" + }, + { + "name": "skein1024-472", + "tag": "multihash", + "code": "0xb39b", + "status": "draft", + "description": "" + }, + { + "name": "skein1024-480", + "tag": "multihash", + "code": "0xb39c", + "status": "draft", + "description": "" + }, + { + "name": "skein1024-488", + "tag": "multihash", + "code": "0xb39d", + "status": "draft", + "description": "" + }, + { + "name": "skein1024-496", + "tag": "multihash", + "code": "0xb39e", + "status": "draft", + "description": "" + }, + { + "name": "skein1024-504", + "tag": "multihash", + "code": "0xb39f", + "status": "draft", + "description": "" + }, + { + "name": "skein1024-512", + "tag": "multihash", + "code": "0xb3a0", + "status": "draft", + "description": "" + }, + { + "name": "skein1024-520", + "tag": "multihash", + "code": "0xb3a1", + "status": "draft", + "description": "" + }, + { + "name": "skein1024-528", + "tag": "multihash", + "code": "0xb3a2", + "status": "draft", + "description": "" + }, + { + "name": "skein1024-536", + "tag": "multihash", + "code": "0xb3a3", + "status": "draft", + "description": "" + }, + { + "name": "skein1024-544", + "tag": "multihash", + "code": "0xb3a4", + "status": "draft", + "description": "" + }, + { + "name": "skein1024-552", + "tag": "multihash", + "code": "0xb3a5", + "status": "draft", + "description": "" + }, + { + "name": "skein1024-560", + "tag": "multihash", + "code": "0xb3a6", + "status": "draft", + "description": "" + }, + { + "name": "skein1024-568", + "tag": "multihash", + "code": "0xb3a7", + "status": "draft", + "description": "" + }, + { + "name": "skein1024-576", + "tag": "multihash", + "code": "0xb3a8", + "status": "draft", + "description": "" + }, + { + "name": "skein1024-584", + "tag": "multihash", + "code": "0xb3a9", + "status": "draft", + "description": "" + }, + { + "name": "skein1024-592", + "tag": "multihash", + "code": "0xb3aa", + "status": "draft", + "description": "" + }, + { + "name": "skein1024-600", + "tag": "multihash", + "code": "0xb3ab", + "status": "draft", + "description": "" + }, + { + "name": "skein1024-608", + "tag": "multihash", + "code": "0xb3ac", + "status": "draft", + "description": "" + }, + { + "name": "skein1024-616", + "tag": "multihash", + "code": "0xb3ad", + "status": "draft", + "description": "" + }, + { + "name": "skein1024-624", + "tag": "multihash", + "code": "0xb3ae", + "status": "draft", + "description": "" + }, + { + "name": "skein1024-632", + "tag": "multihash", + "code": "0xb3af", + "status": "draft", + "description": "" + }, + { + "name": "skein1024-640", + "tag": "multihash", + "code": "0xb3b0", + "status": "draft", + "description": "" + }, + { + "name": "skein1024-648", + "tag": "multihash", + "code": "0xb3b1", + "status": "draft", + "description": "" + }, + { + "name": "skein1024-656", + "tag": "multihash", + "code": "0xb3b2", + "status": "draft", + "description": "" + }, + { + "name": "skein1024-664", + "tag": "multihash", + "code": "0xb3b3", + "status": "draft", + "description": "" + }, + { + "name": "skein1024-672", + "tag": "multihash", + "code": "0xb3b4", + "status": "draft", + "description": "" + }, + { + "name": "skein1024-680", + "tag": "multihash", + "code": "0xb3b5", + "status": "draft", + "description": "" + }, + { + "name": "skein1024-688", + "tag": "multihash", + "code": "0xb3b6", + "status": "draft", + "description": "" + }, + { + "name": "skein1024-696", + "tag": "multihash", + "code": "0xb3b7", + "status": "draft", + "description": "" + }, + { + "name": "skein1024-704", + "tag": "multihash", + "code": "0xb3b8", + "status": "draft", + "description": "" + }, + { + "name": "skein1024-712", + "tag": "multihash", + "code": "0xb3b9", + "status": "draft", + "description": "" + }, + { + "name": "skein1024-720", + "tag": "multihash", + "code": "0xb3ba", + "status": "draft", + "description": "" + }, + { + "name": "skein1024-728", + "tag": "multihash", + "code": "0xb3bb", + "status": "draft", + "description": "" + }, + { + "name": "skein1024-736", + "tag": "multihash", + "code": "0xb3bc", + "status": "draft", + "description": "" + }, + { + "name": "skein1024-744", + "tag": "multihash", + "code": "0xb3bd", + "status": "draft", + "description": "" + }, + { + "name": "skein1024-752", + "tag": "multihash", + "code": "0xb3be", + "status": "draft", + "description": "" + }, + { + "name": "skein1024-760", + "tag": "multihash", + "code": "0xb3bf", + "status": "draft", + "description": "" + }, + { + "name": "skein1024-768", + "tag": "multihash", + "code": "0xb3c0", + "status": "draft", + "description": "" + }, + { + "name": "skein1024-776", + "tag": "multihash", + "code": "0xb3c1", + "status": "draft", + "description": "" + }, + { + "name": "skein1024-784", + "tag": "multihash", + "code": "0xb3c2", + "status": "draft", + "description": "" + }, + { + "name": "skein1024-792", + "tag": "multihash", + "code": "0xb3c3", + "status": "draft", + "description": "" + }, + { + "name": "skein1024-800", + "tag": "multihash", + "code": "0xb3c4", + "status": "draft", + "description": "" + }, + { + "name": "skein1024-808", + "tag": "multihash", + "code": "0xb3c5", + "status": "draft", + "description": "" + }, + { + "name": "skein1024-816", + "tag": "multihash", + "code": "0xb3c6", + "status": "draft", + "description": "" + }, + { + "name": "skein1024-824", + "tag": "multihash", + "code": "0xb3c7", + "status": "draft", + "description": "" + }, + { + "name": "skein1024-832", + "tag": "multihash", + "code": "0xb3c8", + "status": "draft", + "description": "" + }, + { + "name": "skein1024-840", + "tag": "multihash", + "code": "0xb3c9", + "status": "draft", + "description": "" + }, + { + "name": "skein1024-848", + "tag": "multihash", + "code": "0xb3ca", + "status": "draft", + "description": "" + }, + { + "name": "skein1024-856", + "tag": "multihash", + "code": "0xb3cb", + "status": "draft", + "description": "" + }, + { + "name": "skein1024-864", + "tag": "multihash", + "code": "0xb3cc", + "status": "draft", + "description": "" + }, + { + "name": "skein1024-872", + "tag": "multihash", + "code": "0xb3cd", + "status": "draft", + "description": "" + }, + { + "name": "skein1024-880", + "tag": "multihash", + "code": "0xb3ce", + "status": "draft", + "description": "" + }, + { + "name": "skein1024-888", + "tag": "multihash", + "code": "0xb3cf", + "status": "draft", + "description": "" + }, + { + "name": "skein1024-896", + "tag": "multihash", + "code": "0xb3d0", + "status": "draft", + "description": "" + }, + { + "name": "skein1024-904", + "tag": "multihash", + "code": "0xb3d1", + "status": "draft", + "description": "" + }, + { + "name": "skein1024-912", + "tag": "multihash", + "code": "0xb3d2", + "status": "draft", + "description": "" + }, + { + "name": "skein1024-920", + "tag": "multihash", + "code": "0xb3d3", + "status": "draft", + "description": "" + }, + { + "name": "skein1024-928", + "tag": "multihash", + "code": "0xb3d4", + "status": "draft", + "description": "" + }, + { + "name": "skein1024-936", + "tag": "multihash", + "code": "0xb3d5", + "status": "draft", + "description": "" + }, + { + "name": "skein1024-944", + "tag": "multihash", + "code": "0xb3d6", + "status": "draft", + "description": "" + }, + { + "name": "skein1024-952", + "tag": "multihash", + "code": "0xb3d7", + "status": "draft", + "description": "" + }, + { + "name": "skein1024-960", + "tag": "multihash", + "code": "0xb3d8", + "status": "draft", + "description": "" + }, + { + "name": "skein1024-968", + "tag": "multihash", + "code": "0xb3d9", + "status": "draft", + "description": "" + }, + { + "name": "skein1024-976", + "tag": "multihash", + "code": "0xb3da", + "status": "draft", + "description": "" + }, + { + "name": "skein1024-984", + "tag": "multihash", + "code": "0xb3db", + "status": "draft", + "description": "" + }, + { + "name": "skein1024-992", + "tag": "multihash", + "code": "0xb3dc", + "status": "draft", + "description": "" + }, + { + "name": "skein1024-1000", + "tag": "multihash", + "code": "0xb3dd", + "status": "draft", + "description": "" + }, + { + "name": "skein1024-1008", + "tag": "multihash", + "code": "0xb3de", + "status": "draft", + "description": "" + }, + { + "name": "skein1024-1016", + "tag": "multihash", + "code": "0xb3df", + "status": "draft", + "description": "" + }, + { + "name": "skein1024-1024", + "tag": "multihash", + "code": "0xb3e0", + "status": "draft", + "description": "" + }, + { + "name": "xxh-32", + "tag": "hash", + "code": "0xb3e1", + "status": "draft", + "description": "Extremely fast non-cryptographic hash algorithm" + }, + { + "name": "xxh-64", + "tag": "hash", + "code": "0xb3e2", + "status": "draft", + "description": "Extremely fast non-cryptographic hash algorithm" + }, + { + "name": "xxh3-64", + "tag": "hash", + "code": "0xb3e3", + "status": "draft", + "description": "Extremely fast non-cryptographic hash algorithm" + }, + { + "name": "xxh3-128", + "tag": "hash", + "code": "0xb3e4", + "status": "draft", + "description": "Extremely fast non-cryptographic hash algorithm" + }, + { + "name": "poseidon-bls12_381-a2-fc1", + "tag": "multihash", + "code": "0xb401", + "status": "permanent", + "description": "Poseidon using BLS12-381 and arity of 2 with Filecoin parameters" + }, + { + "name": "poseidon-bls12_381-a2-fc1-sc", + "tag": "multihash", + "code": "0xb402", + "status": "draft", + "description": "Poseidon using BLS12-381 and arity of 2 with Filecoin parameters - high-security variant" + }, + { + "name": "rdfc-1", + "tag": "ipld", + "code": "0xb403", + "status": "draft", + "description": "The result of canonicalizing an input according to RDFC-1.0 and then expressing its hash value as a multihash value." + }, + { + "name": "ssz", + "tag": "serialization", + "code": "0xb501", + "status": "draft", + "description": "SimpleSerialize (SSZ) serialization" + }, + { + "name": "ssz-sha2-256-bmt", + "tag": "multihash", + "code": "0xb502", + "status": "draft", + "description": "SSZ Merkle tree root using SHA2-256 as the hashing function and SSZ serialization for the block binary" + }, + { + "name": "json-jcs", + "tag": "ipld", + "code": "0xb601", + "status": "draft", + "description": "The result of canonicalizing an input according to JCS - JSON Canonicalisation Scheme (RFC 8785)" + }, + { + "name": "iscc", + "tag": "softhash", + "code": "0xcc01", + "status": "draft", + "description": "ISCC (International Standard Content Code) - similarity preserving hash" + }, + { + "name": "zeroxcert-imprint-256", + "tag": "zeroxcert", + "code": "0xce11", + "status": "draft", + "description": "0xcert Asset Imprint (root hash)" + }, + { + "name": "nonstandard-sig", + "tag": "varsig", + "code": "0xd000", + "status": "deprecated", + "description": "Namespace for all not yet standard signature algorithms" + }, + { + "name": "es256k", + "tag": "varsig", + "code": "0xd0e7", + "status": "draft", + "description": "ES256K Siganture Algorithm (secp256k1)" + }, + { + "name": "bls-12381-g1-sig", + "tag": "varsig", + "code": "0xd0ea", + "status": "draft", + "description": "G1 signature for BLS-12381-G2" + }, + { + "name": "bls-12381-g2-sig", + "tag": "varsig", + "code": "0xd0eb", + "status": "draft", + "description": "G2 signature for BLS-12381-G1" + }, + { + "name": "eddsa", + "tag": "varsig", + "code": "0xd0ed", + "status": "draft", + "description": "Edwards-Curve Digital Signature Algorithm" + }, + { + "name": "eip-191", + "tag": "varsig", + "code": "0xd191", + "status": "draft", + "description": "EIP-191 Ethereum Signed Data Standard" + }, + { + "name": "jwk_jcs-pub", + "tag": "key", + "code": "0xeb51", + "status": "draft", + "description": "JSON object containing only the required members of a JWK (RFC 7518 and RFC 7517) representing the public key. Serialisation based on JCS (RFC 8785)" + }, + { + "name": "fil-commitment-unsealed", + "tag": "filecoin", + "code": "0xf101", + "status": "permanent", + "description": "Filecoin piece or sector data commitment merkle node/root (CommP & CommD)" + }, + { + "name": "fil-commitment-sealed", + "tag": "filecoin", + "code": "0xf102", + "status": "permanent", + "description": "Filecoin sector data commitment merkle node/root - sealed and replicated (CommR)" + }, + { + "name": "plaintextv2", + "tag": "multiaddr", + "code": "0x706c61", + "status": "draft", + "description": "" + }, + { + "name": "holochain-adr-v0", + "tag": "holochain", + "code": "0x807124", + "status": "draft", + "description": "Holochain v0 address + 8 R-S (63 x Base-32)" + }, + { + "name": "holochain-adr-v1", + "tag": "holochain", + "code": "0x817124", + "status": "draft", + "description": "Holochain v1 address + 8 R-S (63 x Base-32)" + }, + { + "name": "holochain-key-v0", + "tag": "holochain", + "code": "0x947124", + "status": "draft", + "description": "Holochain v0 public key + 8 R-S (63 x Base-32)" + }, + { + "name": "holochain-key-v1", + "tag": "holochain", + "code": "0x957124", + "status": "draft", + "description": "Holochain v1 public key + 8 R-S (63 x Base-32)" + }, + { + "name": "holochain-sig-v0", + "tag": "holochain", + "code": "0xa27124", + "status": "draft", + "description": "Holochain v0 signature + 8 R-S (63 x Base-32)" + }, + { + "name": "holochain-sig-v1", + "tag": "holochain", + "code": "0xa37124", + "status": "draft", + "description": "Holochain v1 signature + 8 R-S (63 x Base-32)" + }, + { + "name": "skynet-ns", + "tag": "namespace", + "code": "0xb19910", + "status": "draft", + "description": "Skynet Namespace" + }, + { + "name": "arweave-ns", + "tag": "namespace", + "code": "0xb29910", + "status": "draft", + "description": "Arweave Namespace" + }, + { + "name": "subspace-ns", + "tag": "namespace", + "code": "0xb39910", + "status": "draft", + "description": "Subspace Network Namespace" + }, + { + "name": "kumandra-ns", + "tag": "namespace", + "code": "0xb49910", + "status": "draft", + "description": "Kumandra Network Namespace" + }, + { + "name": "es256", + "tag": "varsig", + "code": "0xd01200", + "status": "draft", + "description": "ES256 Signature Algorithm" + }, + { + "name": "es284", + "tag": "varsig", + "code": "0xd01201", + "status": "draft", + "description": "ES384 Signature Algorithm" + }, + { + "name": "es512", + "tag": "varsig", + "code": "0xd01202", + "status": "draft", + "description": "ES512 Signature Algorithm" + }, + { + "name": "rs256", + "tag": "varsig", + "code": "0xd01205", + "status": "draft", + "description": "RS256 Signature Algorithm" + }, + { + "name": "scion", + "tag": "multiaddr", + "code": "0xd02000", + "status": "draft", + "description": "SCION Internet architecture" + } +] \ No newline at end of file diff --git a/poetry.lock b/poetry.lock index 4c25b774..1e7f3b70 100644 --- a/poetry.lock +++ b/poetry.lock @@ -163,6 +163,17 @@ files = [ [package.extras] test = ["pytest (>=6.0.1)", "pytest-md-report (>=0.3)"] +[[package]] +name = "altgraph" +version = "0.17.4" +description = "Python graph (network) package" +optional = false +python-versions = "*" +files = [ + {file = "altgraph-0.17.4-py2.py3-none-any.whl", hash = "sha256:642743b4750de17e655e6711601b077bc6598dbfa3ba5fa2b2a35ce12b508dff"}, + {file = "altgraph-0.17.4.tar.gz", hash = "sha256:1b5afbb98f6c4dcadb2e2ae6ab9fa994bbb8c1d75f4fa96d340f9437ae454406"}, +] + [[package]] name = "annotated-types" version = "0.6.0" @@ -373,75 +384,63 @@ files = [ [[package]] name = "cffi" -version = "1.15.1" +version = "1.16.0" description = "Foreign Function Interface for Python calling C code." optional = false -python-versions = "*" +python-versions = ">=3.8" files = [ - {file = "cffi-1.15.1-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:a66d3508133af6e8548451b25058d5812812ec3798c886bf38ed24a98216fab2"}, - {file = "cffi-1.15.1-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:470c103ae716238bbe698d67ad020e1db9d9dba34fa5a899b5e21577e6d52ed2"}, - {file = "cffi-1.15.1-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:9ad5db27f9cabae298d151c85cf2bad1d359a1b9c686a275df03385758e2f914"}, - {file = "cffi-1.15.1-cp27-cp27m-win32.whl", hash = "sha256:b3bbeb01c2b273cca1e1e0c5df57f12dce9a4dd331b4fa1635b8bec26350bde3"}, - {file = "cffi-1.15.1-cp27-cp27m-win_amd64.whl", hash = "sha256:e00b098126fd45523dd056d2efba6c5a63b71ffe9f2bbe1a4fe1716e1d0c331e"}, - {file = "cffi-1.15.1-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:d61f4695e6c866a23a21acab0509af1cdfd2c013cf256bbf5b6b5e2695827162"}, - {file = "cffi-1.15.1-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:ed9cb427ba5504c1dc15ede7d516b84757c3e3d7868ccc85121d9310d27eed0b"}, - {file = "cffi-1.15.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:39d39875251ca8f612b6f33e6b1195af86d1b3e60086068be9cc053aa4376e21"}, - {file = "cffi-1.15.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:285d29981935eb726a4399badae8f0ffdff4f5050eaa6d0cfc3f64b857b77185"}, - {file = "cffi-1.15.1-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3eb6971dcff08619f8d91607cfc726518b6fa2a9eba42856be181c6d0d9515fd"}, - {file = "cffi-1.15.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:21157295583fe8943475029ed5abdcf71eb3911894724e360acff1d61c1d54bc"}, - {file = "cffi-1.15.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5635bd9cb9731e6d4a1132a498dd34f764034a8ce60cef4f5319c0541159392f"}, - {file = "cffi-1.15.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2012c72d854c2d03e45d06ae57f40d78e5770d252f195b93f581acf3ba44496e"}, - {file = "cffi-1.15.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dd86c085fae2efd48ac91dd7ccffcfc0571387fe1193d33b6394db7ef31fe2a4"}, - {file = "cffi-1.15.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:fa6693661a4c91757f4412306191b6dc88c1703f780c8234035eac011922bc01"}, - {file = "cffi-1.15.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:59c0b02d0a6c384d453fece7566d1c7e6b7bae4fc5874ef2ef46d56776d61c9e"}, - {file = "cffi-1.15.1-cp310-cp310-win32.whl", hash = "sha256:cba9d6b9a7d64d4bd46167096fc9d2f835e25d7e4c121fb2ddfc6528fb0413b2"}, - {file = "cffi-1.15.1-cp310-cp310-win_amd64.whl", hash = "sha256:ce4bcc037df4fc5e3d184794f27bdaab018943698f4ca31630bc7f84a7b69c6d"}, - {file = "cffi-1.15.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:3d08afd128ddaa624a48cf2b859afef385b720bb4b43df214f85616922e6a5ac"}, - {file = "cffi-1.15.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:3799aecf2e17cf585d977b780ce79ff0dc9b78d799fc694221ce814c2c19db83"}, - {file = "cffi-1.15.1-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a591fe9e525846e4d154205572a029f653ada1a78b93697f3b5a8f1f2bc055b9"}, - {file = "cffi-1.15.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3548db281cd7d2561c9ad9984681c95f7b0e38881201e157833a2342c30d5e8c"}, - {file = "cffi-1.15.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:91fc98adde3d7881af9b59ed0294046f3806221863722ba7d8d120c575314325"}, - {file = "cffi-1.15.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:94411f22c3985acaec6f83c6df553f2dbe17b698cc7f8ae751ff2237d96b9e3c"}, - {file = "cffi-1.15.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:03425bdae262c76aad70202debd780501fabeaca237cdfddc008987c0e0f59ef"}, - {file = "cffi-1.15.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:cc4d65aeeaa04136a12677d3dd0b1c0c94dc43abac5860ab33cceb42b801c1e8"}, - {file = "cffi-1.15.1-cp311-cp311-win32.whl", hash = "sha256:a0f100c8912c114ff53e1202d0078b425bee3649ae34d7b070e9697f93c5d52d"}, - {file = "cffi-1.15.1-cp311-cp311-win_amd64.whl", hash = "sha256:04ed324bda3cda42b9b695d51bb7d54b680b9719cfab04227cdd1e04e5de3104"}, - {file = "cffi-1.15.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:50a74364d85fd319352182ef59c5c790484a336f6db772c1a9231f1c3ed0cbd7"}, - {file = "cffi-1.15.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e263d77ee3dd201c3a142934a086a4450861778baaeeb45db4591ef65550b0a6"}, - {file = "cffi-1.15.1-cp36-cp36m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:cec7d9412a9102bdc577382c3929b337320c4c4c4849f2c5cdd14d7368c5562d"}, - {file = "cffi-1.15.1-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4289fc34b2f5316fbb762d75362931e351941fa95fa18789191b33fc4cf9504a"}, - {file = "cffi-1.15.1-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:173379135477dc8cac4bc58f45db08ab45d228b3363adb7af79436135d028405"}, - {file = "cffi-1.15.1-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:6975a3fac6bc83c4a65c9f9fcab9e47019a11d3d2cf7f3c0d03431bf145a941e"}, - {file = "cffi-1.15.1-cp36-cp36m-win32.whl", hash = "sha256:2470043b93ff09bf8fb1d46d1cb756ce6132c54826661a32d4e4d132e1977adf"}, - {file = "cffi-1.15.1-cp36-cp36m-win_amd64.whl", hash = "sha256:30d78fbc8ebf9c92c9b7823ee18eb92f2e6ef79b45ac84db507f52fbe3ec4497"}, - {file = "cffi-1.15.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:198caafb44239b60e252492445da556afafc7d1e3ab7a1fb3f0584ef6d742375"}, - {file = "cffi-1.15.1-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5ef34d190326c3b1f822a5b7a45f6c4535e2f47ed06fec77d3d799c450b2651e"}, - {file = "cffi-1.15.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8102eaf27e1e448db915d08afa8b41d6c7ca7a04b7d73af6514df10a3e74bd82"}, - {file = "cffi-1.15.1-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5df2768244d19ab7f60546d0c7c63ce1581f7af8b5de3eb3004b9b6fc8a9f84b"}, - {file = "cffi-1.15.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a8c4917bd7ad33e8eb21e9a5bbba979b49d9a97acb3a803092cbc1133e20343c"}, - {file = "cffi-1.15.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0e2642fe3142e4cc4af0799748233ad6da94c62a8bec3a6648bf8ee68b1c7426"}, - {file = "cffi-1.15.1-cp37-cp37m-win32.whl", hash = "sha256:e229a521186c75c8ad9490854fd8bbdd9a0c9aa3a524326b55be83b54d4e0ad9"}, - {file = "cffi-1.15.1-cp37-cp37m-win_amd64.whl", hash = "sha256:a0b71b1b8fbf2b96e41c4d990244165e2c9be83d54962a9a1d118fd8657d2045"}, - {file = "cffi-1.15.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:320dab6e7cb2eacdf0e658569d2575c4dad258c0fcc794f46215e1e39f90f2c3"}, - {file = "cffi-1.15.1-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1e74c6b51a9ed6589199c787bf5f9875612ca4a8a0785fb2d4a84429badaf22a"}, - {file = "cffi-1.15.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a5c84c68147988265e60416b57fc83425a78058853509c1b0629c180094904a5"}, - {file = "cffi-1.15.1-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3b926aa83d1edb5aa5b427b4053dc420ec295a08e40911296b9eb1b6170f6cca"}, - {file = "cffi-1.15.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:87c450779d0914f2861b8526e035c5e6da0a3199d8f1add1a665e1cbc6fc6d02"}, - {file = "cffi-1.15.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4f2c9f67e9821cad2e5f480bc8d83b8742896f1242dba247911072d4fa94c192"}, - {file = "cffi-1.15.1-cp38-cp38-win32.whl", hash = "sha256:8b7ee99e510d7b66cdb6c593f21c043c248537a32e0bedf02e01e9553a172314"}, - {file = "cffi-1.15.1-cp38-cp38-win_amd64.whl", hash = "sha256:00a9ed42e88df81ffae7a8ab6d9356b371399b91dbdf0c3cb1e84c03a13aceb5"}, - {file = "cffi-1.15.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:54a2db7b78338edd780e7ef7f9f6c442500fb0d41a5a4ea24fff1c929d5af585"}, - {file = "cffi-1.15.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:fcd131dd944808b5bdb38e6f5b53013c5aa4f334c5cad0c72742f6eba4b73db0"}, - {file = "cffi-1.15.1-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7473e861101c9e72452f9bf8acb984947aa1661a7704553a9f6e4baa5ba64415"}, - {file = "cffi-1.15.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6c9a799e985904922a4d207a94eae35c78ebae90e128f0c4e521ce339396be9d"}, - {file = "cffi-1.15.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3bcde07039e586f91b45c88f8583ea7cf7a0770df3a1649627bf598332cb6984"}, - {file = "cffi-1.15.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:33ab79603146aace82c2427da5ca6e58f2b3f2fb5da893ceac0c42218a40be35"}, - {file = "cffi-1.15.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5d598b938678ebf3c67377cdd45e09d431369c3b1a5b331058c338e201f12b27"}, - {file = "cffi-1.15.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:db0fbb9c62743ce59a9ff687eb5f4afbe77e5e8403d6697f7446e5f609976f76"}, - {file = "cffi-1.15.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:98d85c6a2bef81588d9227dde12db8a7f47f639f4a17c9ae08e773aa9c697bf3"}, - {file = "cffi-1.15.1-cp39-cp39-win32.whl", hash = "sha256:40f4774f5a9d4f5e344f31a32b5096977b5d48560c5592e2f3d2c4374bd543ee"}, - {file = "cffi-1.15.1-cp39-cp39-win_amd64.whl", hash = "sha256:70df4e3b545a17496c9b3f41f5115e69a4f2e77e94e1d2a8e1070bc0c38c8a3c"}, - {file = "cffi-1.15.1.tar.gz", hash = "sha256:d400bfb9a37b1351253cb402671cea7e89bdecc294e8016a707f6d1d8ac934f9"}, + {file = "cffi-1.16.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:6b3d6606d369fc1da4fd8c357d026317fbb9c9b75d36dc16e90e84c26854b088"}, + {file = "cffi-1.16.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ac0f5edd2360eea2f1daa9e26a41db02dd4b0451b48f7c318e217ee092a213e9"}, + {file = "cffi-1.16.0-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7e61e3e4fa664a8588aa25c883eab612a188c725755afff6289454d6362b9673"}, + {file = "cffi-1.16.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a72e8961a86d19bdb45851d8f1f08b041ea37d2bd8d4fd19903bc3083d80c896"}, + {file = "cffi-1.16.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5b50bf3f55561dac5438f8e70bfcdfd74543fd60df5fa5f62d94e5867deca684"}, + {file = "cffi-1.16.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7651c50c8c5ef7bdb41108b7b8c5a83013bfaa8a935590c5d74627c047a583c7"}, + {file = "cffi-1.16.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e4108df7fe9b707191e55f33efbcb2d81928e10cea45527879a4749cbe472614"}, + {file = "cffi-1.16.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:32c68ef735dbe5857c810328cb2481e24722a59a2003018885514d4c09af9743"}, + {file = "cffi-1.16.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:673739cb539f8cdaa07d92d02efa93c9ccf87e345b9a0b556e3ecc666718468d"}, + {file = "cffi-1.16.0-cp310-cp310-win32.whl", hash = "sha256:9f90389693731ff1f659e55c7d1640e2ec43ff725cc61b04b2f9c6d8d017df6a"}, + {file = "cffi-1.16.0-cp310-cp310-win_amd64.whl", hash = "sha256:e6024675e67af929088fda399b2094574609396b1decb609c55fa58b028a32a1"}, + {file = "cffi-1.16.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:b84834d0cf97e7d27dd5b7f3aca7b6e9263c56308ab9dc8aae9784abb774d404"}, + {file = "cffi-1.16.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1b8ebc27c014c59692bb2664c7d13ce7a6e9a629be20e54e7271fa696ff2b417"}, + {file = "cffi-1.16.0-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ee07e47c12890ef248766a6e55bd38ebfb2bb8edd4142d56db91b21ea68b7627"}, + {file = "cffi-1.16.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d8a9d3ebe49f084ad71f9269834ceccbf398253c9fac910c4fd7053ff1386936"}, + {file = "cffi-1.16.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e70f54f1796669ef691ca07d046cd81a29cb4deb1e5f942003f401c0c4a2695d"}, + {file = "cffi-1.16.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5bf44d66cdf9e893637896c7faa22298baebcd18d1ddb6d2626a6e39793a1d56"}, + {file = "cffi-1.16.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7b78010e7b97fef4bee1e896df8a4bbb6712b7f05b7ef630f9d1da00f6444d2e"}, + {file = "cffi-1.16.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:c6a164aa47843fb1b01e941d385aab7215563bb8816d80ff3a363a9f8448a8dc"}, + {file = "cffi-1.16.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:e09f3ff613345df5e8c3667da1d918f9149bd623cd9070c983c013792a9a62eb"}, + {file = "cffi-1.16.0-cp311-cp311-win32.whl", hash = "sha256:2c56b361916f390cd758a57f2e16233eb4f64bcbeee88a4881ea90fca14dc6ab"}, + {file = "cffi-1.16.0-cp311-cp311-win_amd64.whl", hash = "sha256:db8e577c19c0fda0beb7e0d4e09e0ba74b1e4c092e0e40bfa12fe05b6f6d75ba"}, + {file = "cffi-1.16.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:fa3a0128b152627161ce47201262d3140edb5a5c3da88d73a1b790a959126956"}, + {file = "cffi-1.16.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:68e7c44931cc171c54ccb702482e9fc723192e88d25a0e133edd7aff8fcd1f6e"}, + {file = "cffi-1.16.0-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:abd808f9c129ba2beda4cfc53bde801e5bcf9d6e0f22f095e45327c038bfe68e"}, + {file = "cffi-1.16.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:88e2b3c14bdb32e440be531ade29d3c50a1a59cd4e51b1dd8b0865c54ea5d2e2"}, + {file = "cffi-1.16.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fcc8eb6d5902bb1cf6dc4f187ee3ea80a1eba0a89aba40a5cb20a5087d961357"}, + {file = "cffi-1.16.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b7be2d771cdba2942e13215c4e340bfd76398e9227ad10402a8767ab1865d2e6"}, + {file = "cffi-1.16.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e715596e683d2ce000574bae5d07bd522c781a822866c20495e52520564f0969"}, + {file = "cffi-1.16.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:2d92b25dbf6cae33f65005baf472d2c245c050b1ce709cc4588cdcdd5495b520"}, + {file = "cffi-1.16.0-cp312-cp312-win32.whl", hash = "sha256:b2ca4e77f9f47c55c194982e10f058db063937845bb2b7a86c84a6cfe0aefa8b"}, + {file = "cffi-1.16.0-cp312-cp312-win_amd64.whl", hash = "sha256:68678abf380b42ce21a5f2abde8efee05c114c2fdb2e9eef2efdb0257fba1235"}, + {file = "cffi-1.16.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:0c9ef6ff37e974b73c25eecc13952c55bceed9112be2d9d938ded8e856138bcc"}, + {file = "cffi-1.16.0-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a09582f178759ee8128d9270cd1344154fd473bb77d94ce0aeb2a93ebf0feaf0"}, + {file = "cffi-1.16.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e760191dd42581e023a68b758769e2da259b5d52e3103c6060ddc02c9edb8d7b"}, + {file = "cffi-1.16.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:80876338e19c951fdfed6198e70bc88f1c9758b94578d5a7c4c91a87af3cf31c"}, + {file = "cffi-1.16.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a6a14b17d7e17fa0d207ac08642c8820f84f25ce17a442fd15e27ea18d67c59b"}, + {file = "cffi-1.16.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6602bc8dc6f3a9e02b6c22c4fc1e47aa50f8f8e6d3f78a5e16ac33ef5fefa324"}, + {file = "cffi-1.16.0-cp38-cp38-win32.whl", hash = "sha256:131fd094d1065b19540c3d72594260f118b231090295d8c34e19a7bbcf2e860a"}, + {file = "cffi-1.16.0-cp38-cp38-win_amd64.whl", hash = "sha256:31d13b0f99e0836b7ff893d37af07366ebc90b678b6664c955b54561fc36ef36"}, + {file = "cffi-1.16.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:582215a0e9adbe0e379761260553ba11c58943e4bbe9c36430c4ca6ac74b15ed"}, + {file = "cffi-1.16.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:b29ebffcf550f9da55bec9e02ad430c992a87e5f512cd63388abb76f1036d8d2"}, + {file = "cffi-1.16.0-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:dc9b18bf40cc75f66f40a7379f6a9513244fe33c0e8aa72e2d56b0196a7ef872"}, + {file = "cffi-1.16.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9cb4a35b3642fc5c005a6755a5d17c6c8b6bcb6981baf81cea8bfbc8903e8ba8"}, + {file = "cffi-1.16.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b86851a328eedc692acf81fb05444bdf1891747c25af7529e39ddafaf68a4f3f"}, + {file = "cffi-1.16.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c0f31130ebc2d37cdd8e44605fb5fa7ad59049298b3f745c74fa74c62fbfcfc4"}, + {file = "cffi-1.16.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8f8e709127c6c77446a8c0a8c8bf3c8ee706a06cd44b1e827c3e6a2ee6b8c098"}, + {file = "cffi-1.16.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:748dcd1e3d3d7cd5443ef03ce8685043294ad6bd7c02a38d1bd367cfd968e000"}, + {file = "cffi-1.16.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:8895613bcc094d4a1b2dbe179d88d7fb4a15cee43c052e8885783fac397d91fe"}, + {file = "cffi-1.16.0-cp39-cp39-win32.whl", hash = "sha256:ed86a35631f7bfbb28e108dd96773b9d5a6ce4811cf6ea468bb6a359b256b1e4"}, + {file = "cffi-1.16.0-cp39-cp39-win_amd64.whl", hash = "sha256:3686dffb02459559c74dd3d81748269ffb0eb027c39a6fc99502de37d501faa8"}, + {file = "cffi-1.16.0.tar.gz", hash = "sha256:bcb3ef43e58665bbda2fb198698fcae6776483e0c4a631aa5647806c25e02cc0"}, ] [package.dependencies] @@ -1268,6 +1267,20 @@ completion = ["shtab (>=1.1.0)"] docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (<7.2.5)", "sphinx (>=3.5)", "sphinx-lint"] testing = ["pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-mypy (>=0.9.1)", "pytest-ruff"] +[[package]] +name = "macholib" +version = "1.16.3" +description = "Mach-O header analysis and editing" +optional = false +python-versions = "*" +files = [ + {file = "macholib-1.16.3-py2.py3-none-any.whl", hash = "sha256:0e315d7583d38b8c77e815b1ecbdbf504a8258d8b3e17b61165c6feb60d18f2c"}, + {file = "macholib-1.16.3.tar.gz", hash = "sha256:07ae9e15e8e4cd9a788013d81f5908b3609aa76f9b1421bae9c4d7606ec86a30"}, +] + +[package.dependencies] +altgraph = ">=0.17" + [[package]] name = "markdown-it-py" version = "3.0.0" @@ -1728,6 +1741,17 @@ files = [ {file = "pathspec-0.11.2.tar.gz", hash = "sha256:e0d8d0ac2f12da61956eb2306b69f9469b42f4deb0f3cb6ed47b9cce9996ced3"}, ] +[[package]] +name = "pefile" +version = "2023.2.7" +description = "Python PE parsing module" +optional = false +python-versions = ">=3.6.0" +files = [ + {file = "pefile-2023.2.7-py3-none-any.whl", hash = "sha256:da185cd2af68c08a6cd4481f7325ed600a88f6a813bad9dea07ab3ef73d8d8d6"}, + {file = "pefile-2023.2.7.tar.gz", hash = "sha256:82e6114004b3d6911c77c3953e3838654b04511b8b66e8583db70c65998017dc"}, +] + [[package]] name = "pip" version = "23.3.1" @@ -2181,6 +2205,55 @@ files = [ [package.extras] plugins = ["importlib-metadata"] +[[package]] +name = "pyinstaller" +version = "6.3.0" +description = "PyInstaller bundles a Python application and all its dependencies into a single package." +optional = false +python-versions = "<3.13,>=3.8" +files = [ + {file = "pyinstaller-6.3.0-py3-none-macosx_10_13_universal2.whl", hash = "sha256:75a6f2a6f835a2e6e0899d10e60c10caf5defd25aced38b1dd48fbbabc89de07"}, + {file = "pyinstaller-6.3.0-py3-none-manylinux2014_aarch64.whl", hash = "sha256:de25beb176f73a944758553caacec46cc665bf3910ad8a174706d79cf6e95340"}, + {file = "pyinstaller-6.3.0-py3-none-manylinux2014_i686.whl", hash = "sha256:e436fcc0ea87c3f132baac916d508c24c84a8f6d8a06c3154fbc753f169b76c7"}, + {file = "pyinstaller-6.3.0-py3-none-manylinux2014_ppc64le.whl", hash = "sha256:b721d793a33b6d9946c7dd95d3ea7589c0424b51cf1b9fe580f03c544f1336b2"}, + {file = "pyinstaller-6.3.0-py3-none-manylinux2014_s390x.whl", hash = "sha256:96c37a1ee5b2fd5bb25c098ef510661d6d17b6515d0b86d8fc93727dd2475ba3"}, + {file = "pyinstaller-6.3.0-py3-none-manylinux2014_x86_64.whl", hash = "sha256:abe91106a3bbccc3f3a27af4325676ecdb6f46cb842ac663625002a870fc503b"}, + {file = "pyinstaller-6.3.0-py3-none-musllinux_1_1_aarch64.whl", hash = "sha256:41c937fe8f07ae02009b3b5a96ac3eb0800a4f8a97af142d4100060fe2135bb9"}, + {file = "pyinstaller-6.3.0-py3-none-musllinux_1_1_x86_64.whl", hash = "sha256:886b3b995b674905a20ad5b720b47cc395897d7b391117831027a4c8c5d67a58"}, + {file = "pyinstaller-6.3.0-py3-none-win32.whl", hash = "sha256:0597fb04337695e5cc5250253e0655530bf14f264b7a5b7d219cc65f6889c4bd"}, + {file = "pyinstaller-6.3.0-py3-none-win_amd64.whl", hash = "sha256:156b32ba943e0090bcc68e40ae1cb68fd92b7f1ab6fe0bdf8faf3d3cfc4e12dd"}, + {file = "pyinstaller-6.3.0-py3-none-win_arm64.whl", hash = "sha256:1eadbd1fae84e2e6c678d8b4ed6a232ec5c8fe3a839aea5a3071c4c0282f98cc"}, + {file = "pyinstaller-6.3.0.tar.gz", hash = "sha256:914d4c96cc99472e37ac552fdd82fbbe09e67bb592d0717fcffaa99ea74273df"}, +] + +[package.dependencies] +altgraph = "*" +macholib = {version = ">=1.8", markers = "sys_platform == \"darwin\""} +packaging = ">=22.0" +pefile = {version = ">=2022.5.30", markers = "sys_platform == \"win32\""} +pyinstaller-hooks-contrib = ">=2021.4" +pywin32-ctypes = {version = ">=0.2.1", markers = "sys_platform == \"win32\""} +setuptools = ">=42.0.0" + +[package.extras] +completion = ["argcomplete"] +hook-testing = ["execnet (>=1.5.0)", "psutil", "pytest (>=2.7.3)"] + +[[package]] +name = "pyinstaller-hooks-contrib" +version = "2023.12" +description = "Community maintained hooks for PyInstaller" +optional = false +python-versions = ">=3.7" +files = [ + {file = "pyinstaller-hooks-contrib-2023.12.tar.gz", hash = "sha256:11a9d59d903723dd693e8c10b054f3ea1ecad390623c9fa527c731d715fc5b3f"}, + {file = "pyinstaller_hooks_contrib-2023.12-py2.py3-none-any.whl", hash = "sha256:6a601a0d783fa725327fc6ac712779475dc8979f639419c7fcd460dd8d0a6d2a"}, +] + +[package.dependencies] +packaging = ">=22.0" +setuptools = ">=42.0.0" + [[package]] name = "pyjwt" version = "2.8.0" @@ -2618,28 +2691,28 @@ jupyter = ["ipywidgets (>=7.5.1,<9)"] [[package]] name = "ruff" -version = "0.1.6" +version = "0.1.14" description = "An extremely fast Python linter and code formatter, written in Rust." optional = false python-versions = ">=3.7" files = [ - {file = "ruff-0.1.6-py3-none-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:88b8cdf6abf98130991cbc9f6438f35f6e8d41a02622cc5ee130a02a0ed28703"}, - {file = "ruff-0.1.6-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:5c549ed437680b6105a1299d2cd30e4964211606eeb48a0ff7a93ef70b902248"}, - {file = "ruff-0.1.6-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1cf5f701062e294f2167e66d11b092bba7af6a057668ed618a9253e1e90cfd76"}, - {file = "ruff-0.1.6-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:05991ee20d4ac4bb78385360c684e4b417edd971030ab12a4fbd075ff535050e"}, - {file = "ruff-0.1.6-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:87455a0c1f739b3c069e2f4c43b66479a54dea0276dd5d4d67b091265f6fd1dc"}, - {file = "ruff-0.1.6-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:683aa5bdda5a48cb8266fcde8eea2a6af4e5700a392c56ea5fb5f0d4bfdc0240"}, - {file = "ruff-0.1.6-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:137852105586dcbf80c1717facb6781555c4e99f520c9c827bd414fac67ddfb6"}, - {file = "ruff-0.1.6-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:bd98138a98d48a1c36c394fd6b84cd943ac92a08278aa8ac8c0fdefcf7138f35"}, - {file = "ruff-0.1.6-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3a0cd909d25f227ac5c36d4e7e681577275fb74ba3b11d288aff7ec47e3ae745"}, - {file = "ruff-0.1.6-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:e8fd1c62a47aa88a02707b5dd20c5ff20d035d634aa74826b42a1da77861b5ff"}, - {file = "ruff-0.1.6-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:fd89b45d374935829134a082617954120d7a1470a9f0ec0e7f3ead983edc48cc"}, - {file = "ruff-0.1.6-py3-none-musllinux_1_2_i686.whl", hash = "sha256:491262006e92f825b145cd1e52948073c56560243b55fb3b4ecb142f6f0e9543"}, - {file = "ruff-0.1.6-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:ea284789861b8b5ca9d5443591a92a397ac183d4351882ab52f6296b4fdd5462"}, - {file = "ruff-0.1.6-py3-none-win32.whl", hash = "sha256:1610e14750826dfc207ccbcdd7331b6bd285607d4181df9c1c6ae26646d6848a"}, - {file = "ruff-0.1.6-py3-none-win_amd64.whl", hash = "sha256:4558b3e178145491e9bc3b2ee3c4b42f19d19384eaa5c59d10acf6e8f8b57e33"}, - {file = "ruff-0.1.6-py3-none-win_arm64.whl", hash = "sha256:03910e81df0d8db0e30050725a5802441c2022ea3ae4fe0609b76081731accbc"}, - {file = "ruff-0.1.6.tar.gz", hash = "sha256:1b09f29b16c6ead5ea6b097ef2764b42372aebe363722f1605ecbcd2b9207184"}, + {file = "ruff-0.1.14-py3-none-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:96f76536df9b26622755c12ed8680f159817be2f725c17ed9305b472a757cdbb"}, + {file = "ruff-0.1.14-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:ab3f71f64498c7241123bb5a768544cf42821d2a537f894b22457a543d3ca7a9"}, + {file = "ruff-0.1.14-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7060156ecc572b8f984fd20fd8b0fcb692dd5d837b7606e968334ab7ff0090ab"}, + {file = "ruff-0.1.14-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:a53d8e35313d7b67eb3db15a66c08434809107659226a90dcd7acb2afa55faea"}, + {file = "ruff-0.1.14-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bea9be712b8f5b4ebed40e1949379cfb2a7d907f42921cf9ab3aae07e6fba9eb"}, + {file = "ruff-0.1.14-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:2270504d629a0b064247983cbc495bed277f372fb9eaba41e5cf51f7ba705a6a"}, + {file = "ruff-0.1.14-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:80258bb3b8909b1700610dfabef7876423eed1bc930fe177c71c414921898efa"}, + {file = "ruff-0.1.14-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:653230dd00aaf449eb5ff25d10a6e03bc3006813e2cb99799e568f55482e5cae"}, + {file = "ruff-0.1.14-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:87b3acc6c4e6928459ba9eb7459dd4f0c4bf266a053c863d72a44c33246bfdbf"}, + {file = "ruff-0.1.14-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:6b3dadc9522d0eccc060699a9816e8127b27addbb4697fc0c08611e4e6aeb8b5"}, + {file = "ruff-0.1.14-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:1c8eca1a47b4150dc0fbec7fe68fc91c695aed798532a18dbb1424e61e9b721f"}, + {file = "ruff-0.1.14-py3-none-musllinux_1_2_i686.whl", hash = "sha256:62ce2ae46303ee896fc6811f63d6dabf8d9c389da0f3e3f2bce8bc7f15ef5488"}, + {file = "ruff-0.1.14-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:b2027dde79d217b211d725fc833e8965dc90a16d0d3213f1298f97465956661b"}, + {file = "ruff-0.1.14-py3-none-win32.whl", hash = "sha256:722bafc299145575a63bbd6b5069cb643eaa62546a5b6398f82b3e4403329cab"}, + {file = "ruff-0.1.14-py3-none-win_amd64.whl", hash = "sha256:e3d241aa61f92b0805a7082bd89a9990826448e4d0398f0e2bc8f05c75c63d99"}, + {file = "ruff-0.1.14-py3-none-win_arm64.whl", hash = "sha256:269302b31ade4cde6cf6f9dd58ea593773a37ed3f7b97e793c8594b262466b67"}, + {file = "ruff-0.1.14.tar.gz", hash = "sha256:ad3f8088b2dfd884820289a06ab718cde7d38b94972212cc4ba90d5fbc9955f3"}, ] [[package]] @@ -2670,19 +2743,19 @@ files = [ [[package]] name = "setuptools" -version = "68.0.0" +version = "69.0.3" description = "Easily download, build, install, upgrade, and uninstall Python packages" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "setuptools-68.0.0-py3-none-any.whl", hash = "sha256:11e52c67415a381d10d6b462ced9cfb97066179f0e871399e006c4ab101fc85f"}, - {file = "setuptools-68.0.0.tar.gz", hash = "sha256:baf1fdb41c6da4cd2eae722e135500da913332ab3f2f5c7d33af9b492acb5235"}, + {file = "setuptools-69.0.3-py3-none-any.whl", hash = "sha256:385eb4edd9c9d5c17540511303e39a147ce2fc04bc55289c322b9e5904fe2c05"}, + {file = "setuptools-69.0.3.tar.gz", hash = "sha256:be1af57fc409f93647f2e8e4573a142ed38724b8cdd389706a867bb4efcf1e78"}, ] [package.extras] -docs = ["furo", "jaraco.packaging (>=9)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-hoverxref (<2)", "sphinx-inline-tabs", "sphinx-lint", "sphinx-notfound-page (==0.8.3)", "sphinx-reredirects", "sphinxcontrib-towncrier"] -testing = ["build[virtualenv]", "filelock (>=3.4.0)", "flake8-2020", "ini2toml[lite] (>=0.9)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "pip (>=19.1)", "pip-run (>=8.8)", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=1.3)", "pytest-mypy (>=0.9.1)", "pytest-perf", "pytest-ruff", "pytest-timeout", "pytest-xdist", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel"] -testing-integration = ["build[virtualenv]", "filelock (>=3.4.0)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "pytest", "pytest-enabler", "pytest-xdist", "tomli", "virtualenv (>=13.0.0)", "wheel"] +docs = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "rst.linker (>=1.9)", "sphinx (<7.2.5)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-inline-tabs", "sphinx-lint", "sphinx-notfound-page (>=1,<2)", "sphinx-reredirects", "sphinxcontrib-towncrier"] +testing = ["build[virtualenv]", "filelock (>=3.4.0)", "flake8-2020", "ini2toml[lite] (>=0.9)", "jaraco.develop (>=7.21)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "pip (>=19.1)", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=2.2)", "pytest-mypy (>=0.9.1)", "pytest-perf", "pytest-ruff", "pytest-timeout", "pytest-xdist", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel"] +testing-integration = ["build[virtualenv] (>=1.0.3)", "filelock (>=3.4.0)", "jaraco.envs (>=2.2)", "jaraco.path (>=3.2.0)", "packaging (>=23.1)", "pytest", "pytest-enabler", "pytest-xdist", "tomli", "virtualenv (>=13.0.0)", "wheel"] [[package]] name = "shellingham" @@ -3337,5 +3410,5 @@ testing = ["big-O", "jaraco.functools", "jaraco.itertools", "more-itertools", "p [metadata] lock-version = "2.0" -python-versions = "^3.10" -content-hash = "765ddf1ca976b6e3bb4f17956b625378f118237dca5d76cb66986c4a47ff5c85" +python-versions = ">=3.10,<3.13" +content-hash = "2dcc39b0585a07b62b53feaf0e435ec5263815ea1089967b63fd4430baee70de" diff --git a/pyproject.toml b/pyproject.toml index f74a370b..587cdbaa 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -7,7 +7,7 @@ license = "MIT" readme = "README.md" [tool.poetry.dependencies] -python = "^3.10" +python = ">=3.10,<3.13" click = "^8.1.3" httpx = "^0.23.1" copier = "^9.0.0" @@ -28,6 +28,7 @@ aiohttp = "3.9.1" jsondiff = "^2.0.0" [tool.poetry.group.dev.dependencies] +pyinstaller = {version = "^6.3.0"} pytest = "^7.2.0" ruff = "^0.1.6" pip-audit = "^2.4.7" @@ -57,6 +58,9 @@ docs_generate = "sphinx-build -b markdown -E docs/sphinx docs/cli" docs_toc = "gfm-toc docs/cli/index.md -e 3" docs_title = {shell = "(echo \"# AlgoKit CLI Reference Documentation\\n\\n\"; cat docs/cli/index.md) > docs/cli/temp.md && mv docs/cli/temp.md docs/cli/index.md"} docs = ["docs_generate", "docs_toc", "docs_title"] +package_unix = "pyinstaller --onedir --hidden-import jinja2_ansible_filters --hidden-import multiformats_config --copy-metadata algokit --name algokit --noconfirm src/algokit/__main__.py --add-data './misc/multiformats_config/multibase-table.json:multiformats_config/' --add-data './misc/multiformats_config/multicodec-table.json:multiformats_config/'" +package_windows = "pyinstaller --onedir --hidden-import jinja2_ansible_filters --hidden-import multiformats_config --copy-metadata algokit --name algokit --noconfirm src/algokit/__main__.py --add-data ./misc/multiformats_config/multibase-table.json;multiformats_config/ --add-data ./misc/multiformats_config/multicodec-table.json;multiformats_config/" + [tool.ruff] line-length = 120 diff --git a/src/algokit/core/utils.py b/src/algokit/core/utils.py index c0fd8ff4..9ebb08f5 100644 --- a/src/algokit/core/utils.py +++ b/src/algokit/core/utils.py @@ -16,6 +16,7 @@ from algokit.core import proc CLEAR_LINE = "\033[K" +SPINNER_FRAMES = ["⠋", "⠙", "⠹", "⠸", "⠼", "⠴", "⠦", "⠧", "⠇", "⠏"] def extract_version_triple(version_str: str) -> str: @@ -47,7 +48,7 @@ def is_network_available(host: str = "8.8.8.8", port: int = 53, timeout: float = def animate(name: str, stop_event: threading.Event) -> None: spinner = { "interval": 100, - "frames": ["⠋", "⠙", "⠹", "⠸", "⠼", "⠴", "⠦", "⠧", "⠇", "⠏"], + "frames": SPINNER_FRAMES, } while not stop_event.is_set(): diff --git a/tests/tasks/TestIpfsUpload.test_ipfs_upload_http_error.approved.txt b/tests/tasks/TestIpfsUpload.test_ipfs_upload_http_error.approved.txt index b75254ab..6aeff915 100644 --- a/tests/tasks/TestIpfsUpload.test_ipfs_upload_http_error.approved.txt +++ b/tests/tasks/TestIpfsUpload.test_ipfs_upload_http_error.approved.txt @@ -1,5 +1,3 @@ - -⠋ UploadingHTTP Request: POST https://api.pinata.cloud/pinning/pinFileToIPFS "HTTP/1.1 500 Internal Server Error" - - DEBUG: Pinata error: 500. {"ok": false, "cid": "test"} +HTTP Request: POST https://api.pinata.cloud/pinning/pinFileToIPFS "HTTP/1.1 500 Internal Server Error" +DEBUG: Pinata error: 500. {"ok": false, "cid": "test"} Error: PinataInternalServerError('Pinata error: 500') diff --git a/tests/tasks/TestIpfsUpload.test_ipfs_upload_successful.approved.txt b/tests/tasks/TestIpfsUpload.test_ipfs_upload_successful.approved.txt index e8785ab3..5237b92c 100644 --- a/tests/tasks/TestIpfsUpload.test_ipfs_upload_successful.approved.txt +++ b/tests/tasks/TestIpfsUpload.test_ipfs_upload_successful.approved.txt @@ -1,5 +1,3 @@ - -⠋ UploadingHTTP Request: POST https://api.pinata.cloud/pinning/pinFileToIPFS "HTTP/1.1 200 OK" - - File uploaded successfully! +HTTP Request: POST https://api.pinata.cloud/pinning/pinFileToIPFS "HTTP/1.1 200 OK" +File uploaded successfully! CID: test diff --git a/tests/tasks/test_ipfs.py b/tests/tasks/test_ipfs.py index 6ec406c0..adad26d4 100644 --- a/tests/tasks/test_ipfs.py +++ b/tests/tasks/test_ipfs.py @@ -1,10 +1,18 @@ import pytest from algokit.core.tasks.ipfs import ALGOKIT_PINATA_TOKEN_KEY from pytest_httpx import HTTPXMock +from pytest_mock import MockerFixture -from tests.utils.approvals import verify +from tests.utils.approvals import TokenScrubber, verify from tests.utils.click_invoker import invoke +scrubber = TokenScrubber({}) + + +@pytest.fixture(autouse=True) +def _disable_animation(mocker: MockerFixture) -> None: + mocker.patch("algokit.core.utils.animate", return_value=None) + class TestIpfsLogin: def test_ipfs_login_exists(self, mock_keyring: dict[str, str]) -> None: @@ -50,7 +58,7 @@ def test_ipfs_upload_successful( # Assert assert result.exit_code == 0 - verify(result.output) + verify(result.output, scrubber=scrubber) def test_ipfs_not_logged_in( self, tmp_path_factory: pytest.TempPathFactory, mock_keyring: dict[str, str | None] @@ -80,4 +88,4 @@ def test_ipfs_upload_http_error( # Assert assert result.exit_code == 1 - verify(result.output) + verify(result.output, scrubber=scrubber) diff --git a/tests/utils/approvals.py b/tests/utils/approvals.py index a5c63723..7c8d6241 100644 --- a/tests/utils/approvals.py +++ b/tests/utils/approvals.py @@ -2,6 +2,7 @@ from typing import Any import approvaltests +from algokit.core.utils import CLEAR_LINE, SPINNER_FRAMES from approvaltests.scrubbers.scrubbers import Scrubber, combine_scrubbers __all__ = [ @@ -29,7 +30,11 @@ def __call__(self, data: str) -> str: result = data for token, search in self._tokens.items(): result = result.replace(search, "{" + token + "}") - return result + # Normalize SPINNER_FRAMES + for frame in SPINNER_FRAMES: + result = result.replace(frame, "") + # Normalize CLEAR_LINE + return result.replace(CLEAR_LINE, " ") def verify(