diff --git a/.github/scripts/check-python-release.py b/.github/scripts/check-python-release.py new file mode 100644 index 0000000000..fc24b233e2 --- /dev/null +++ b/.github/scripts/check-python-release.py @@ -0,0 +1,344 @@ +#!/usr/bin/env python3 +"""Check whether the complete, attested stable Python release exists on PyPI.""" + +from __future__ import annotations + +import argparse +import base64 +import json +import re +import sys +from collections.abc import Callable +from typing import Any +from urllib.error import HTTPError, URLError +from urllib.parse import quote +from urllib.request import Request, urlopen + + +VERSION_RE = re.compile(r"^[0-9]+\.[0-9]+\.[0-9]+$") +SHA256_RE = re.compile(r"^[0-9a-f]{64}$") +MAX_RESPONSE_SIZE = 10 * 1024 * 1024 +PUBLISH_PREDICATE = "https://docs.pypi.org/attestations/publish/v1" +STATEMENT_TYPE = "https://in-toto.io/Statement/v1" + + +class ApiError(RuntimeError): + """PyPI could not provide authoritative state.""" + + +class IncompleteRelease(RuntimeError): + """One or more required, correctly attested files are not yet on PyPI.""" + + +def fetch_json(url: str, *, timeout: int = 30) -> dict[str, Any] | None: + request = Request( + url, + headers={ + "Accept": "application/json", + "User-Agent": "subtensor-release-watcher/1", + }, + ) + try: + with urlopen(request, timeout=timeout) as response: + data = response.read(MAX_RESPONSE_SIZE + 1) + except HTTPError as error: + if error.code == 404: + return None + raise ApiError(f"{url} returned HTTP {error.code}") from error + except (OSError, URLError) as error: + raise ApiError(f"could not fetch {url}: {error}") from error + if len(data) > MAX_RESPONSE_SIZE: + raise ApiError(f"{url} exceeded the response size limit") + try: + value = json.loads(data) + except (UnicodeDecodeError, json.JSONDecodeError) as error: + raise ApiError(f"{url} did not return valid JSON") from error + if not isinstance(value, dict): + raise ApiError(f"{url} did not return a JSON object") + return value + + +def _valid_file(entry: object, *, package_type: str) -> bool: + if not isinstance(entry, dict): + return False + digest = entry.get("digests") + return ( + entry.get("packagetype") == package_type + and entry.get("yanked") is False + and isinstance(entry.get("filename"), str) + and isinstance(digest, dict) + and isinstance(digest.get("sha256"), str) + and SHA256_RE.fullmatch(digest["sha256"]) is not None + ) + + +def _core_platform(filename: str, version: str) -> str | None: + prefix = f"bittensor_core-{version}-" + if not filename.startswith(prefix) or not filename.endswith(".whl"): + return None + wheel_tags = filename[len(prefix) : -4].split("-", 2) + if len(wheel_tags) != 3 or wheel_tags[0] != "cp310" or wheel_tags[1] != "abi3": + return None + platform = wheel_tags[2] + if "manylinux" in platform and platform.endswith("_x86_64"): + return "linux-x86_64" + if "manylinux" in platform and platform.endswith("_aarch64"): + return "linux-aarch64" + if platform.startswith("macosx_") and platform.endswith("_x86_64"): + return "macos-x86_64" + if platform.startswith("macosx_") and platform.endswith("_arm64"): + return "macos-arm64" + return None + + +def _release_files( + metadata: dict[str, Any], *, package: str +) -> dict[str, dict[str, Any]]: + entries = metadata.get("urls") + if not isinstance(entries, list): + raise ApiError(f"PyPI metadata for {package} has no file list") + + files: dict[str, dict[str, Any]] = {} + for entry in entries: + if not isinstance(entry, dict): + raise ApiError(f"PyPI metadata for {package} has an invalid file entry") + if entry.get("yanked") is not False: + filename = entry.get("filename", "") + raise IncompleteRelease(f"{package} has yanked distribution {filename}") + package_type = entry.get("packagetype") + if package_type not in {"bdist_wheel", "sdist"} or not _valid_file( + entry, package_type=package_type + ): + filename = entry.get("filename", "") + raise IncompleteRelease( + f"{package} has invalid non-yanked distribution metadata for {filename}" + ) + filename = entry["filename"] + if filename in files: + raise IncompleteRelease( + f"{package} has duplicate non-yanked distribution {filename}" + ) + files[filename] = entry + return files + + +def _required_files( + sdk_metadata: dict[str, Any], core_metadata: dict[str, Any], sdk: str, core: str +) -> dict[str, dict[str, Any]]: + required: dict[str, dict[str, Any]] = {} + expected_sdk = { + f"bittensor-{sdk}-py3-none-any.whl": "bdist_wheel", + f"bittensor-{sdk}.tar.gz": "sdist", + } + sdk_files = _release_files(sdk_metadata, package="bittensor") + if set(sdk_files) != set(expected_sdk): + missing = sorted(set(expected_sdk) - set(sdk_files)) + unexpected = sorted(set(sdk_files) - set(expected_sdk)) + details = [] + if missing: + details.append(f"missing {', '.join(missing)}") + if unexpected: + details.append(f"unexpected {', '.join(unexpected)}") + raise IncompleteRelease( + f"bittensor {sdk} distribution set is incomplete or unsafe: " + + "; ".join(details) + ) + for filename, package_type in expected_sdk.items(): + entry = sdk_files[filename] + if entry["packagetype"] != package_type: + raise IncompleteRelease( + f"{filename} has package type {entry['packagetype']}, expected {package_type}" + ) + required[f"sdk:{filename}"] = entry + + core_sdist = f"bittensor_core-{core}.tar.gz" + core_files = _release_files(core_metadata, package="bittensor-core") + core_sdist_entry = core_files.pop(core_sdist, None) + if core_sdist_entry is None: + raise IncompleteRelease(f"missing non-yanked {core_sdist}") + if core_sdist_entry["packagetype"] != "sdist": + raise IncompleteRelease( + f"{core_sdist} has package type {core_sdist_entry['packagetype']}, expected sdist" + ) + required[f"core:{core_sdist}"] = core_sdist_entry + + expected_platforms = { + "linux-x86_64", + "linux-aarch64", + "macos-x86_64", + "macos-arm64", + } + platform_files: dict[str, dict[str, Any]] = {} + unexpected_core: list[str] = [] + for filename, entry in sorted(core_files.items()): + platform = ( + _core_platform(filename, core) + if entry["packagetype"] == "bdist_wheel" + else None + ) + if platform is None or platform not in expected_platforms: + unexpected_core.append(filename) + continue + if platform in platform_files: + raise IncompleteRelease( + f"multiple non-yanked bittensor-core {platform} cp310-abi3 wheels" + ) + platform_files[platform] = entry + if unexpected_core: + raise IncompleteRelease( + "bittensor-core has unexpected non-yanked distributions: " + + ", ".join(unexpected_core) + ) + missing_platforms = sorted(expected_platforms - set(platform_files)) + if missing_platforms: + raise IncompleteRelease( + "missing non-yanked bittensor-core cp310-abi3 wheels for " + + ", ".join(missing_platforms) + ) + for platform, entry in sorted(platform_files.items()): + required[f"core:{platform}"] = entry + return required + + +def _matching_publish_attestation( + provenance: dict[str, Any], + *, + filename: str, + sha256: str, + repository: str, + workflow: str, + environment: str, +) -> bool: + if provenance.get("version") != 1: + return False + bundles = provenance.get("attestation_bundles") + if not isinstance(bundles, list): + return False + for bundle in bundles: + if not isinstance(bundle, dict): + continue + publisher = bundle.get("publisher") + if not isinstance(publisher, dict) or any( + ( + publisher.get("kind") != "GitHub", + publisher.get("repository") != repository, + publisher.get("workflow") != workflow, + publisher.get("environment") != environment, + ) + ): + continue + attestations = bundle.get("attestations") + if not isinstance(attestations, list): + continue + for attestation in attestations: + try: + encoded = attestation["envelope"]["statement"] + statement = json.loads(base64.b64decode(encoded, validate=True)) + except ( + KeyError, + TypeError, + ValueError, + UnicodeDecodeError, + json.JSONDecodeError, + ): + continue + if not isinstance(statement, dict): + continue + if ( + statement.get("_type") != STATEMENT_TYPE + or statement.get("predicateType") != PUBLISH_PREDICATE + ): + continue + subjects = statement.get("subject") + if not isinstance(subjects, list): + continue + for subject in subjects: + if ( + isinstance(subject, dict) + and subject.get("name") == filename + and isinstance(subject.get("digest"), dict) + and subject["digest"].get("sha256") == sha256 + ): + return True + return False + + +def check_release( + *, + sdk_version: str, + core_version: str, + repository: str, + workflow: str, + environment: str, + base_url: str = "https://pypi.org", + get_json: Callable[[str], dict[str, Any] | None] = fetch_json, +) -> list[str]: + for version in (sdk_version, core_version): + if VERSION_RE.fullmatch(version) is None: + raise ValueError(f"{version!r} is not a stable X.Y.Z version") + + sdk_url = f"{base_url}/pypi/bittensor/{quote(sdk_version, safe='')}/json" + core_url = f"{base_url}/pypi/bittensor-core/{quote(core_version, safe='')}/json" + sdk_metadata = get_json(sdk_url) + core_metadata = get_json(core_url) + if sdk_metadata is None: + raise IncompleteRelease(f"bittensor {sdk_version} is not published") + if core_metadata is None: + raise IncompleteRelease(f"bittensor-core {core_version} is not published") + + required = _required_files(sdk_metadata, core_metadata, sdk_version, core_version) + verified: list[str] = [] + for key, entry in sorted(required.items()): + package = "bittensor" if key.startswith("sdk:") else "bittensor-core" + filename = entry["filename"] + provenance_url = ( + f"{base_url}/integrity/{package}/" + f"{quote(sdk_version if package == 'bittensor' else core_version, safe='')}/" + f"{quote(filename, safe='')}/provenance" + ) + provenance = get_json(provenance_url) + if provenance is None or not _matching_publish_attestation( + provenance, + filename=filename, + sha256=entry["digests"]["sha256"], + repository=repository, + workflow=workflow, + environment=environment, + ): + raise IncompleteRelease( + f"{filename} has no matching trusted-publisher attestation" + ) + verified.append(filename) + return verified + + +def main() -> int: + parser = argparse.ArgumentParser() + parser.add_argument("--sdk-version", required=True) + parser.add_argument("--core-version", required=True) + parser.add_argument("--repository", required=True) + parser.add_argument("--workflow", default="watch-mainnet-release.yml") + parser.add_argument("--environment", default="mainnet") + parser.add_argument("--base-url", default="https://pypi.org") + arguments = parser.parse_args() + try: + verified = check_release( + sdk_version=arguments.sdk_version, + core_version=arguments.core_version, + repository=arguments.repository, + workflow=arguments.workflow, + environment=arguments.environment, + base_url=arguments.base_url.rstrip("/"), + ) + except IncompleteRelease as error: + print(f"Python release incomplete: {error}", file=sys.stderr) + return 1 + except (ApiError, ValueError) as error: + print(f"could not verify Python release: {error}", file=sys.stderr) + return 2 + print(f"verified {len(verified)} attested Python release files") + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/.github/scripts/classify-runtime-changes.sh b/.github/scripts/classify-runtime-changes.sh index e383974927..336e4ec802 100755 --- a/.github/scripts/classify-runtime-changes.sh +++ b/.github/scripts/classify-runtime-changes.sh @@ -39,7 +39,7 @@ while IFS= read -r path; do runtime=true snapshot_ci=true ;; - *.md|LICENSE|docs/*|website/*|sdk/*|ts-tests/*|eco-tests/*|ink-contract/*|.maintain/*|.vscode/*|.agents/*|.claude/*) + *.md|LICENSE|docs/*|website/*|sdk/*|ts-tests/*|eco-tests/*|ink-contract/*|.maintain/*|.vscode/*|.agents/*|.claude/*|.github/scripts/prepare-sdk-dist.py|.github/scripts/test_prepare_sdk_dist.py) ;; .github/*) runtime=true @@ -57,7 +57,7 @@ while IFS= read -r path; do esac case "$path" in - sdk/python/*|sdk/bittensor-core/*|sdk/bittensor-core-py/*|sdk/bittensor-core-wasm/*|Cargo.lock|.github/workflows/runtime-checks.yml) + sdk/python/*|sdk/bittensor-core/*|sdk/bittensor-core-py/*|sdk/bittensor-core-wasm/*|Cargo.lock|.github/workflows/runtime-checks.yml|.github/scripts/prepare-sdk-dist.py|.github/scripts/test_prepare_sdk_dist.py) python_sdk=true ;; esac diff --git a/.github/scripts/prepare-sdk-dist.py b/.github/scripts/prepare-sdk-dist.py new file mode 100644 index 0000000000..2411d24eb6 --- /dev/null +++ b/.github/scripts/prepare-sdk-dist.py @@ -0,0 +1,30 @@ +#!/usr/bin/env python3 +"""Stamp the SDK's committed development version for a stable PyPI build.""" + +from __future__ import annotations + +import re +from pathlib import Path + + +def main() -> None: + root = Path("sdk/python") + manifest = root / "pyproject.toml" + text = manifest.read_text() + match = re.search(r'^version = "([0-9]+\.[0-9]+\.[0-9]+)\.dev0"$', text, flags=re.M) + if match is None: + raise SystemExit("SDK manifest must declare version X.Y.Z.dev0") + version = match.group(1) + text = text[: match.start()] + f'version = "{version}"' + text[match.end() :] + + # These are monorepo-only development inputs. They must not appear in an + # extracted sdist, where the sibling path and development lock do not exist. + text, count = re.subn(r"\n\[tool\.uv\.sources\]\n.*?(?=\n\[|\Z)", "\n", text, flags=re.S) + if count != 1: + raise SystemExit("tool.uv.sources table not found") + manifest.write_text(text) + (root / "uv.lock").unlink(missing_ok=True) + + +if __name__ == "__main__": + main() diff --git a/.github/scripts/release-python-versions.py b/.github/scripts/release-python-versions.py new file mode 100644 index 0000000000..092daa019a --- /dev/null +++ b/.github/scripts/release-python-versions.py @@ -0,0 +1,46 @@ +#!/usr/bin/env python3 +"""Read the stable Python versions expected from an immutable release commit.""" + +from __future__ import annotations + +import argparse +import json +import re +import sys +from pathlib import Path + + +SDK_VERSION_RE = re.compile( + r'^version = "([0-9]+\.[0-9]+\.[0-9]+)\.dev0"$', re.MULTILINE +) +CORE_VERSION_RE = re.compile(r'^version = "([0-9]+\.[0-9]+\.[0-9]+)"$', re.MULTILINE) + + +def release_versions(sdk_manifest: str, core_manifest: str) -> tuple[str, str]: + sdk = SDK_VERSION_RE.search(sdk_manifest) + if sdk is None: + raise ValueError("SDK manifest must declare version X.Y.Z.dev0") + core = CORE_VERSION_RE.search(core_manifest) + if core is None: + raise ValueError("core manifest must declare stable version X.Y.Z") + return sdk.group(1), core.group(1) + + +def main() -> int: + parser = argparse.ArgumentParser() + parser.add_argument("sdk_manifest", type=Path) + parser.add_argument("core_manifest", type=Path) + arguments = parser.parse_args() + try: + sdk, core = release_versions( + arguments.sdk_manifest.read_text(), arguments.core_manifest.read_text() + ) + except (OSError, ValueError) as error: + print(f"could not determine release versions: {error}", file=sys.stderr) + return 1 + print(json.dumps({"sdk": sdk, "core": core}, sort_keys=True)) + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/.github/scripts/resolve-release-artifact.sh b/.github/scripts/resolve-release-artifact.sh index cacb121c7b..7cc0940b83 100755 --- a/.github/scripts/resolve-release-artifact.sh +++ b/.github/scripts/resolve-release-artifact.sh @@ -1,6 +1,7 @@ #!/usr/bin/env bash # Resolve the id of the `mainnet-upgrade-` workflow artifact, but only -# accept one whose provenance proves the release train produced it. +# accept one whose provenance and contents match the immutable release tag and +# the runtime bytes finalized on chain. # # Why this matters: GitHub stores artifacts uploaded by *fork* pull requests in # the *base* repository's artifact store. The artifact name is attacker- @@ -14,25 +15,37 @@ # # We require the artifact's producing run to be: # * from this repository (not a fork) — head_repository_id == repo id -# * a push to the trunk — event == push, head_branch == main +# * a train run on the trunk — push/workflow_dispatch on main # * the release train workflow — path == release-train.yml +# * built from the immutable release tag — head_sha == expected commit # * built from a commit on main — head_sha is an ancestor of main +# * the exact finalized runtime — BLAKE2b-256(wasm) == :code hash # # Prints the resolved artifact id to stdout on success; exits non-zero if no # trustworthy artifact exists. set -euo pipefail spec="${1:?spec_version required}" +expected_commit="${2:?expected commit required}" +expected_code_hash="${3:?expected finalized code hash required}" : "${GITHUB_REPOSITORY:?GITHUB_REPOSITORY required}" : "${GH_TOKEN:?GH_TOKEN required}" +[[ "$spec" =~ ^[0-9]+$ ]] || { echo "spec_version must be an integer" >&2; exit 1; } +[[ "$expected_commit" =~ ^[0-9a-f]{40}$ ]] \ + || { echo "expected commit must be a lowercase 40-byte Git SHA" >&2; exit 1; } +[[ "$expected_code_hash" =~ ^0x[0-9a-f]{64}$ ]] \ + || { echo "expected code hash must be a lowercase 32-byte hex digest" >&2; exit 1; } + repo_id=$(gh api "repos/$GITHUB_REPOSITORY" --jq '.id') +temp_dir=$(mktemp -d) +trap 'rm -rf "$temp_dir"' EXIT # Newest-first so that, among equally-trusted artifacts, we take the latest. artifacts=$(gh api \ "repos/$GITHUB_REPOSITORY/actions/artifacts?name=mainnet-upgrade-${spec}&per_page=100" \ - --paginate --slurp \ - | jq -c '[.[].artifacts[]] | sort_by(.created_at) | reverse') + --paginate \ + | jq -sc '[.[].artifacts[]] | sort_by(.created_at) | reverse') count=$(jq 'length' <<<"$artifacts") i=0 @@ -51,12 +64,18 @@ while (( i < count )); do [[ -n "$run_id" ]] || continue [[ "$head_repo_id" == "$repo_id" ]] || { echo "skip artifact $art_id: not from this repo (head_repository_id=$head_repo_id)" >&2; continue; } [[ "$head_branch" == "main" ]] || { echo "skip artifact $art_id: head_branch=$head_branch != main" >&2; continue; } + [[ "$head_sha" == "$expected_commit" ]] || { echo "skip artifact $art_id: head_sha=$head_sha != release tag $expected_commit" >&2; continue; } run=$(gh api "repos/$GITHUB_REPOSITORY/actions/runs/${run_id}") event=$(jq -r '.event' <<<"$run") wf_path=$(jq -r '.path' <<<"$run") - [[ "$event" == "push" ]] || { echo "skip artifact $art_id: run event=$event != push" >&2; continue; } + run_sha=$(jq -r '.head_sha // empty' <<<"$run") + run_repo_id=$(jq -r '.head_repository.id // empty' <<<"$run") + [[ "$run_repo_id" == "$repo_id" ]] || { echo "skip artifact $art_id: run is not from this repo" >&2; continue; } + [[ "$event" == "push" || "$event" == "workflow_dispatch" ]] \ + || { echo "skip artifact $art_id: unsupported run event=$event" >&2; continue; } [[ "$wf_path" == ".github/workflows/release-train.yml" ]] || { echo "skip artifact $art_id: run workflow=$wf_path" >&2; continue; } + [[ "$run_sha" == "$expected_commit" ]] || { echo "skip artifact $art_id: run head_sha=$run_sha != release tag $expected_commit" >&2; continue; } # head_sha must be reachable from main. Use the compare API so we do not need # a full local clone: main is "ahead"/"identical" iff head_sha is an ancestor. @@ -66,9 +85,22 @@ while (( i < count )); do *) echo "skip artifact $art_id: head_sha $head_sha not an ancestor of main (compare status=$status)" >&2; continue ;; esac + archive="$temp_dir/artifact-${art_id}.zip" + if ! gh api "repos/$GITHUB_REPOSITORY/actions/artifacts/${art_id}/zip" > "$archive"; then + echo "skip artifact $art_id: could not download archive" >&2 + continue + fi + if ! python3 .github/scripts/verify-release-artifact.py "$archive" \ + --spec "$spec" \ + --commit "$expected_commit" \ + --code-hash "$expected_code_hash" >&2; then + echo "skip artifact $art_id: contents do not match finalized release" >&2 + continue + fi + echo "$art_id" exit 0 done -echo "no trustworthy mainnet-upgrade-${spec} artifact found (must be produced by a push to main of release-train.yml in this repo)" >&2 +echo "no trustworthy mainnet-upgrade-${spec} artifact matches tag commit ${expected_commit} and finalized code hash ${expected_code_hash}" >&2 exit 1 diff --git a/.github/scripts/test-runtime-change-filter.sh b/.github/scripts/test-runtime-change-filter.sh index 543013ac96..e24706e60b 100755 --- a/.github/scripts/test-runtime-change-filter.sh +++ b/.github/scripts/test-runtime-change-filter.sh @@ -59,6 +59,8 @@ assert_classification .github/workflows/runtime-checks.yml "$runtime_and_snapsho assert_classification website/apps/bittensor-website/scripts/generate-metadata.mjs "$runtime_and_docs" assert_classification docs/concepts/client.mdx "$docs_only" assert_classification sdk/bittensor-core/src/lib.rs "$python_only" +assert_classification .github/scripts/prepare-sdk-dist.py "$python_only" +assert_classification .github/scripts/test_prepare_sdk_dist.py "$python_only" assert_classification Cargo.lock "$runtime_sdk_python" assert_classification .cargo/config.toml "$runtime_and_sdk" assert_classification future-runtime-crate/src/lib.rs "$runtime_and_sdk" diff --git a/.github/scripts/test_prepare_sdk_dist.py b/.github/scripts/test_prepare_sdk_dist.py new file mode 100644 index 0000000000..041b774722 --- /dev/null +++ b/.github/scripts/test_prepare_sdk_dist.py @@ -0,0 +1,43 @@ +#!/usr/bin/env python3 + +from __future__ import annotations + +import re +import shutil +import subprocess +import sys +import tempfile +import unittest +from pathlib import Path + + +class PrepareSdkDistributionTests(unittest.TestCase): + def test_stamps_stable_version_and_removes_monorepo_inputs(self) -> None: + repository = Path(__file__).resolve().parents[2] + script = Path(__file__).with_name("prepare-sdk-dist.py") + with tempfile.TemporaryDirectory() as directory: + root = Path(directory) + package = root / "sdk/python" + package.mkdir(parents=True) + source_manifest = repository / "sdk/python/pyproject.toml" + source_text = source_manifest.read_text() + version = re.search( + r'^version = "([0-9]+\.[0-9]+\.[0-9]+)\.dev0"$', source_text, flags=re.M + ) + self.assertIsNotNone(version) + shutil.copy(source_manifest, package / "pyproject.toml") + shutil.copy(repository / "sdk/python/uv.lock", package / "uv.lock") + subprocess.run( + [sys.executable, str(script)], + cwd=root, + check=True, + ) + + manifest = (package / "pyproject.toml").read_text() + self.assertIn(f'version = "{version.group(1)}"', manifest) + self.assertNotIn("[tool.uv.sources]", manifest) + self.assertFalse((package / "uv.lock").exists()) + + +if __name__ == "__main__": + unittest.main() diff --git a/.github/scripts/verify-release-artifact.py b/.github/scripts/verify-release-artifact.py new file mode 100644 index 0000000000..bd57138961 --- /dev/null +++ b/.github/scripts/verify-release-artifact.py @@ -0,0 +1,177 @@ +#!/usr/bin/env python3 +"""Verify that a release-train artifact is the runtime finalized on chain.""" + +from __future__ import annotations + +import argparse +import hashlib +import json +import re +import sys +import zipfile +from pathlib import Path +from typing import Any + + +SHA_RE = re.compile(r"^[0-9a-f]{40}$") +HASH_RE = re.compile(r"^(?:0x)?([0-9a-f]{64})$") +MAX_ARCHIVE_SIZE = 100 * 1024 * 1024 +MAX_JSON_SIZE = 2 * 1024 * 1024 +MAX_WASM_SIZE = 50 * 1024 * 1024 +MAX_CALL_DATA_SIZE = 20 * 1024 * 1024 + + +class ValidationError(ValueError): + """The artifact does not match the expected immutable release identity.""" + + +def _hash(value: str, name: str) -> str: + match = HASH_RE.fullmatch(value) + if match is None: + raise ValidationError(f"{name} must be a lowercase 32-byte hex digest") + return match.group(1) + + +def _object(data: bytes, name: str) -> dict[str, Any]: + if len(data) > MAX_JSON_SIZE: + raise ValidationError(f"{name} is unexpectedly large") + try: + value = json.loads(data) + except (UnicodeDecodeError, json.JSONDecodeError) as error: + raise ValidationError(f"{name} is not valid JSON") from error + if not isinstance(value, dict): + raise ValidationError(f"{name} must contain a JSON object") + return value + + +def _require_equal(actual: object, expected: object, name: str) -> None: + if actual != expected: + raise ValidationError(f"{name} is {actual!r}, expected {expected!r}") + + +def verify_archive( + archive: Path, + *, + expected_spec: int, + expected_commit: str, + expected_code_hash: str, +) -> dict[str, object]: + """Validate an Actions artifact zip and return its verified identity.""" + if expected_spec < 0: + raise ValidationError("expected spec_version must be non-negative") + if SHA_RE.fullmatch(expected_commit) is None: + raise ValidationError("expected commit must be a lowercase 40-byte Git SHA") + code_hash = _hash(expected_code_hash, "expected code hash") + + try: + artifact = zipfile.ZipFile(archive) + except (OSError, zipfile.BadZipFile) as error: + raise ValidationError("artifact is not a readable zip file") from error + + with artifact: + files: dict[str, zipfile.ZipInfo] = {} + total_size = 0 + for member in artifact.infolist(): + if member.is_dir(): + continue + name = member.filename + parts = Path(name).parts + if ( + name.startswith(("/", "\\")) + or "\\" in name + or ".." in parts + or len(parts) != 1 + ): + raise ValidationError(f"artifact contains unsafe member {name!r}") + if name in files: + raise ValidationError(f"artifact contains duplicate member {name!r}") + total_size += member.file_size + files[name] = member + if total_size > MAX_ARCHIVE_SIZE: + raise ValidationError("artifact expands beyond the size limit") + + required = { + "subtensor.wasm", + "subtensor-digest.json", + "proxy_proxy_blob.hex", + "pending-release.json", + "upgrade-manifest.json", + } + missing = sorted(required - files.keys()) + if missing: + raise ValidationError(f"artifact is missing: {', '.join(missing)}") + + wasm_info = files["subtensor.wasm"] + if not 0 < wasm_info.file_size <= MAX_WASM_SIZE: + raise ValidationError("subtensor.wasm has an invalid size") + wasm = artifact.read(wasm_info) + + call_data_info = files["proxy_proxy_blob.hex"] + if not 0 < call_data_info.file_size <= MAX_CALL_DATA_SIZE: + raise ValidationError("proxy_proxy_blob.hex has an invalid size") + + pending = _object( + artifact.read(files["pending-release.json"]), "pending-release.json" + ) + digest = _object( + artifact.read(files["subtensor-digest.json"]), "subtensor-digest.json" + ) + manifest = _object( + artifact.read(files["upgrade-manifest.json"]), "upgrade-manifest.json" + ) + + _require_equal( + pending.get("expected_spec_version"), + expected_spec, + "pending release spec_version", + ) + _require_equal(pending.get("commit"), expected_commit, "pending release commit") + + wasm_sha256 = hashlib.sha256(wasm).hexdigest() + wasm_code_hash = hashlib.blake2b(wasm, digest_size=32).hexdigest() + _require_equal(wasm_code_hash, code_hash, "runtime code hash") + _require_equal( + _hash(str(digest.get("sha256", "")), "srtool sha256"), + wasm_sha256, + "srtool sha256", + ) + + _require_equal(manifest.get("spec_version"), expected_spec, "manifest spec_version") + _require_equal(manifest.get("commit"), expected_commit, "manifest commit") + _require_equal( + _hash(str(manifest.get("wasm_sha256", "")), "manifest wasm_sha256"), + wasm_sha256, + "manifest wasm_sha256", + ) + + return { + "spec_version": expected_spec, + "commit": expected_commit, + "code_hash": f"0x{wasm_code_hash}", + "wasm_sha256": wasm_sha256, + } + + +def main() -> int: + parser = argparse.ArgumentParser() + parser.add_argument("archive", type=Path) + parser.add_argument("--spec", type=int, required=True) + parser.add_argument("--commit", required=True) + parser.add_argument("--code-hash", required=True) + arguments = parser.parse_args() + try: + result = verify_archive( + arguments.archive, + expected_spec=arguments.spec, + expected_commit=arguments.commit, + expected_code_hash=arguments.code_hash, + ) + except ValidationError as error: + print(f"invalid release artifact: {error}", file=sys.stderr) + return 1 + print(json.dumps(result, sort_keys=True)) + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index 2132bc0829..ed59a983eb 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -1,16 +1,17 @@ name: Publish Docker Image -# Node images publish when a network mirror moves, on runtime releases, and on -# demand. Releases cut by watch-mainnet-release.yml use the default -# GITHUB_TOKEN, which never emits `release: published`; the watcher therefore -# dispatches this workflow directly with the release tag. Release-version tags -# (vN) move :latest; network mirror tags do not. +# Node images publish whenever main or a network mirror moves, on runtime +# releases, and on demand. Main advances the development-facing :main tag. +# Releases cut by watch-mainnet-release.yml use the default GITHUB_TOKEN, which +# never emits `release: published`; the watcher therefore dispatches this +# workflow directly with the release tag. Release-version tags (vN) move +# :latest; branch tags do not. on: release: types: [published] push: - branches: [devnet, testnet] + branches: [main, devnet, testnet] workflow_dispatch: inputs: tag: diff --git a/.github/workflows/release-train.yml b/.github/workflows/release-train.yml index 868e236c19..35346d7d7c 100644 --- a/.github/workflows/release-train.yml +++ b/.github/workflows/release-train.yml @@ -321,6 +321,29 @@ jobs: : ${base:?could not parse base version from sdk/python/pyproject.toml} core_base=$(sed -n 's/^version = "\([0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\).*/\1/p' sdk/bittensor-core-py/pyproject.toml | head -n 1) : ${core_base:?could not parse base version from sdk/bittensor-core-py/pyproject.toml} + + # PyPI versions are immutable. Reject an already-published stable + # base before producing more release candidates that can never be + # promoted to a final release. + for package_version in "bittensor:${base}" "bittensor-core:${core_base}"; do + package=${package_version%%:*} + version=${package_version#*:} + status=$(curl -sS --connect-timeout 10 --max-time 30 \ + -o /dev/null -w '%{http_code}' \ + "https://pypi.org/pypi/${package}/${version}/json") + case "$status" in + 404) ;; + 200) + echo "${package} ${version} is already published; bump the base version." + exit 1 + ;; + *) + echo "PyPI availability check for ${package} ${version} returned HTTP ${status}." + exit 1 + ;; + esac + done + echo "sdk=${base}rc${GITHUB_RUN_NUMBER}" >> $GITHUB_OUTPUT echo "core=${core_base}rc${GITHUB_RUN_NUMBER}" >> $GITHUB_OUTPUT @@ -441,6 +464,45 @@ jobs: working-directory: .github/scripts/deploy run: npm ci --ignore-scripts + # Reserve the release identity before any on-chain side effect. Tag + # rules make v immutable; a retry from the same commit is safe, + # while changed code must bump spec_version rather than retargeting a + # proposal that signers may already be reviewing. + - name: Reserve immutable release tag + if: steps.guard.outputs.should_propose == 'true' + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + set -euo pipefail + tag="v${{ needs.build.outputs.spec_version }}" + tag_ref="repos/$GITHUB_REPOSITORY/git/ref/tags/$tag" + + if tag_json=$(gh api "$tag_ref" 2>/dev/null); then + tag_type=$(jq -er '.object.type' <<<"$tag_json") + [ "$tag_type" = commit ] \ + || { echo "release tag $tag must be a lightweight Git tag, found $tag_type"; exit 1; } + tag_sha=$(jq -er '.object.sha' <<<"$tag_json") + echo "release tag $tag already exists at $tag_sha" + else + if gh api --method POST "repos/$GITHUB_REPOSITORY/git/refs" \ + -f ref="refs/tags/$tag" -f sha="$GITHUB_SHA" >/dev/null; then + echo "reserved release tag $tag" + else + # Handle a concurrent same-commit reservation without making + # tag creation racy. Any other failure remains fatal here. + echo "tag creation raced; verifying the exact tag ref" + fi + tag_json=$(gh api "$tag_ref") + tag_type=$(jq -er '.object.type' <<<"$tag_json") + [ "$tag_type" = commit ] \ + || { echo "release tag $tag must be a lightweight Git tag, found $tag_type"; exit 1; } + tag_sha=$(jq -er '.object.sha' <<<"$tag_json") + fi + [[ "$tag_sha" =~ ^[0-9a-f]{40}$ ]] \ + || { echo "tag $tag did not resolve to a Git commit"; exit 1; } + [ "$tag_sha" = "$GITHUB_SHA" ] \ + || { echo "tag $tag is reserved for $tag_sha, not $GITHUB_SHA; bump spec_version"; exit 1; } + - name: Submit multisig proposal (CI half of deployment multisig) if: steps.guard.outputs.should_propose == 'true' working-directory: .github/scripts/deploy @@ -534,19 +596,15 @@ jobs: tag="v${spec}" url="https://github.com/${GITHUB_REPOSITORY}/releases/tag/${tag}" - # A published (non-prerelease) v means this spec already - # shipped; never touch it. A pre-release for the same spec is a - # respun proposal (e.g. the first train failed mid-way): replace it. - if existing=$(gh release view "$tag" --json isPrerelease --jq '.isPrerelease' 2>/dev/null); then - if [ "$existing" != "true" ]; then - echo "release $tag already published as a final release; refusing to overwrite" - exit 1 - fi - echo "replacing existing proposal pre-release $tag" - gh release delete "$tag" --cleanup-tag --yes - fi - commit=$(jq -r '.commit' wasm/pending-release.json) + tag_json=$(gh api \ + "repos/$GITHUB_REPOSITORY/git/ref/tags/$tag") + tag_type=$(jq -er '.object.type' <<<"$tag_json") + [ "$tag_type" = commit ] \ + || { echo "release tag $tag must be a lightweight Git tag, found $tag_type"; exit 1; } + tag_sha=$(jq -er '.object.sha' <<<"$tag_json") + [ "$tag_sha" = "$commit" ] \ + || { echo "immutable tag $tag points at $tag_sha, expected $commit"; exit 1; } call_hash=$(jq -r '.proposal.callHash' wasm/pending-release.json) height=$(jq -r '.proposal.blockHeight' wasm/pending-release.json) index=$(jq -r '.proposal.extrinsicIndex' wasm/pending-release.json) @@ -602,17 +660,39 @@ jobs: | wasm sha256 | \`${sha256}\` | EOF - gh release create "$tag" \ - --repo "$GITHUB_REPOSITORY" \ - --target "$commit" \ - --prerelease \ - --title "Runtime ${spec} (proposed)" \ - --notes-file release-body.md \ - wasm/subtensor.wasm \ - wasm/subtensor-digest.json \ - wasm/proxy_proxy_blob.hex \ - wasm/pending-release.json \ + assets=( + wasm/subtensor.wasm + wasm/subtensor-digest.json + wasm/proxy_proxy_blob.hex + wasm/pending-release.json wasm/upgrade-manifest.json + ) + if release_json=$(gh api \ + "repos/$GITHUB_REPOSITORY/releases/tags/$tag" 2>/dev/null); then + is_prerelease=$(jq -er '.prerelease | booleans' <<<"$release_json") + [ "$is_prerelease" = true ] \ + || { echo "release $tag is already final; refusing to overwrite it"; exit 1; } + target_sha=$(jq -er \ + '.target_commitish | strings | select(test("^[0-9a-f]{40}$"))' \ + <<<"$release_json") + [ "$target_sha" = "$commit" ] \ + || { echo "pre-release target $target_sha does not match $commit"; exit 1; } + gh release upload "$tag" \ + --repo "$GITHUB_REPOSITORY" --clobber "${assets[@]}" + gh release edit "$tag" \ + --repo "$GITHUB_REPOSITORY" \ + --title "Runtime ${spec} (proposed)" \ + --notes-file release-body.md \ + --prerelease + else + gh release create "$tag" \ + --repo "$GITHUB_REPOSITORY" \ + --target "$commit" \ + --prerelease \ + --title "Runtime ${spec} (proposed)" \ + --notes-file release-body.md \ + "${assets[@]}" + fi { echo "## Share this with the other signers" diff --git a/.github/workflows/runtime-checks.yml b/.github/workflows/runtime-checks.yml index 292cb4d41b..3e2bd43dec 100644 --- a/.github/workflows/runtime-checks.yml +++ b/.github/workflows/runtime-checks.yml @@ -494,7 +494,9 @@ jobs: - name: SDK offline checks (same as just check) working-directory: sdk/python run: | - uv sync --locked --all-extras --dev + python3 ../../.github/scripts/test_prepare_sdk_dist.py + uv sync --python 3.14 --locked --all-extras --dev + uv run btcli --version uv run ruff check . uv run ruff format --check . uv run ty check --exit-zero-on-warning bittensor diff --git a/.github/workflows/watch-mainnet-release.yml b/.github/workflows/watch-mainnet-release.yml index b00f1de0e5..166ade623f 100644 --- a/.github/workflows/watch-mainnet-release.yml +++ b/.github/workflows/watch-mainnet-release.yml @@ -2,8 +2,11 @@ name: Watch Mainnet Release # The mainnet upgrade is executed by the triumvirate signing the multisig # proposal submitted by the release train (release-train.yml). This watcher -# polls the chain; once the on-chain spec_version matches main and no -# release exists for it yet, it cuts the release: +# polls the finalized chain state; once an upgrade executes, it cuts the +# release. The immutable release tag, protected mainnet mirror, and finalized +# runtime hash must all identify the same release-train commit. PyPI itself is +# the terminal state for stable Python publication, so a later run can retry a +# failed or partial upload: # 1. GitHub release v, with the srtool wasm + digest and # multisig call data from the release train attached as assets # 2. Docker images via explicit dispatch of docker.yml and @@ -13,9 +16,10 @@ name: Watch Mainnet Release # 3. Python SDK + bittensor-core wheels to PyPI # 4. Publishable Rust crates to crates.io # 5. Production website/docs deployment on Vercel -# 6. The `mainnet` branch is force-updated to the release-train commit, -# so it always contains the code running on mainnet (the devnet and -# testnet branches are updated by release-train.yml at deploy time) +# 6. Before finalizing the GitHub release, the `mainnet` branch is +# force-updated to the release-train commit, so it always contains the +# code running on mainnet (the devnet and testnet branches are updated by +# release-train.yml at deploy time) on: schedule: @@ -40,72 +44,176 @@ jobs: contents: read actions: read # list/download the release-train artifact outputs: - ready: ${{ steps.compare.outputs.ready }} + release_needed: ${{ steps.compare.outputs.release_needed }} + python_needed: ${{ steps.compare.outputs.python_needed }} spec_version: ${{ steps.compare.outputs.spec_version }} + release_tag: ${{ steps.compare.outputs.release_tag }} sha: ${{ steps.compare.outputs.sha }} + artifact_id: ${{ steps.compare.outputs.artifact_id }} + code_hash: ${{ steps.compare.outputs.code_hash }} + sdk_version: ${{ steps.compare.outputs.sdk_version }} + core_version: ${{ steps.compare.outputs.core_version }} steps: - uses: actions/checkout@v4 - - name: Compare spec versions and existing releases + - name: Compare mainnet with release state id: compare env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | + set -euo pipefail + local_spec=$(grep -Eo 'spec_version: *[0-9]+' runtime/src/lib.rs | head -n 1 | grep -Eo '[0-9]+') : ${local_spec:?could not parse spec_version from runtime/src/lib.rs} + finalized_head=$(curl -sf -H "Content-Type: application/json" \ + -d '{"id":1,"jsonrpc":"2.0","method":"chain_getFinalizedHead","params":[]}' \ + "$MAINNET_HTTP" | jq -er \ + '.result | strings | select(test("^0x[0-9a-f]{64}$"))') + runtime_request=$(jq -cn --arg block "$finalized_head" \ + '{id: 1, jsonrpc: "2.0", method: "state_getRuntimeVersion", params: [$block]}') chain_spec=$(curl -sf -H "Content-Type: application/json" \ - -d '{"id":1,"jsonrpc":"2.0","method":"state_getRuntimeVersion","params":[]}' \ - "$MAINNET_HTTP" | jq -r '.result.specVersion') - : ${chain_spec:?could not fetch chain spec_version} + -d "$runtime_request" "$MAINNET_HTTP" | jq -er '.result.specVersion') + code_hash_request=$(jq -cn --arg block "$finalized_head" \ + '{id: 1, jsonrpc: "2.0", method: "state_getStorageHash", + params: ["0x3a636f6465", $block]}') + chain_code_hash=$(curl -sf -H "Content-Type: application/json" \ + -d "$code_hash_request" "$MAINNET_HTTP" | jq -er \ + '.result | strings | select(test("^0x[0-9a-f]{64}$"))') + [[ "$local_spec" =~ ^[0-9]+$ && "$chain_spec" =~ ^[0-9]+$ ]] \ + || { echo "spec_version values must be integers"; exit 1; } echo "main spec_version: $local_spec" echo "on-chain spec_version: $chain_spec" + echo "finalized block: $finalized_head" + echo "runtime code hash: $chain_code_hash" - echo "spec_version=$local_spec" >> $GITHUB_OUTPUT - - if [[ "$chain_spec" != "$local_spec" ]]; then - echo "Upgrade not executed yet (or main is ahead); nothing to do." - echo "ready=false" >> $GITHUB_OUTPUT + if [ "$chain_spec" -gt "$local_spec" ]; then + echo "Main does not contain the on-chain runtime yet; refusing to publish." + echo "release_needed=false" >> "$GITHUB_OUTPUT" + echo "python_needed=false" >> "$GITHUB_OUTPUT" exit 0 fi - - # Match both this workflow's tags (v424) and the legacy scheme - # inherited from upstream (v3.4.9-424) so an already-released - # runtime is never released twice. Pre-releases don't count: the - # release train publishes the proposal as a pre-release v, - # which this workflow promotes to the final release below. - if gh release list --repo "$GITHUB_REPOSITORY" --limit 300 \ - --json tagName,isPrerelease \ - --jq '.[] | select(.isPrerelease | not) | .tagName' \ - | grep -Eq "^v${local_spec}$|-${local_spec}$"; then - echo "A release for spec_version $local_spec already exists; nothing to do." - echo "ready=false" >> $GITHUB_OUTPUT + echo "spec_version=$chain_spec" >> "$GITHUB_OUTPUT" + echo "code_hash=$chain_code_hash" >> "$GITHUB_OUTPUT" + + # Old releases used several tag formats and predate automated stable + # Python publication. They are terminal historical state, not inputs + # to the immutable release flow below. + if [ "$chain_spec" -le 432 ]; then + release_tag=$(gh release list --repo "$GITHUB_REPOSITORY" --limit 300 \ + --json tagName,isDraft,isPrerelease \ + | jq -r --arg exact "v${chain_spec}" --arg suffix "-${chain_spec}" \ + '.[] | + select(.isDraft == false and .isPrerelease == false) | + select(.tagName == $exact or (.tagName | endswith($suffix))) | + .tagName' \ + | head -n 1) + : ${release_tag:?historical runtime v${chain_spec} has no final GitHub release} + echo "Historical release $release_tag is complete; Python was handled manually." + echo "release_tag=$release_tag" >> "$GITHUB_OUTPUT" + echo "release_needed=false" >> "$GITHUB_OUTPUT" + echo "python_needed=false" >> "$GITHUB_OUTPUT" exit 0 fi - # Use the commit recorded by the release train, not HEAD — main may - # have advanced with docs-only merges after the multisig proposal. - # Resolve the artifact through the provenance gate: fork PRs can plant - # a `mainnet-upgrade-` artifact in this repo's store, and this - # commit is what we later publish to PyPI/crates.io and push to - # `mainnet`, so it must come from a push of release-train.yml to main. - artifact_id=$(.github/scripts/resolve-release-artifact.sh "$local_spec") - : ${artifact_id:?no trustworthy mainnet-upgrade-${local_spec} artifact found — did the release train run?} - gh api "repos/$GITHUB_REPOSITORY/actions/artifacts/${artifact_id}/zip" > /tmp/release-artifact.zip - unzip -o /tmp/release-artifact.zip -d /tmp/release-artifact - release_sha=$(jq -r '.commit' /tmp/release-artifact/pending-release.json) - : ${release_sha:?pending-release.json missing commit field} - echo "Release train commit: $release_sha" - echo "sha=$release_sha" >> $GITHUB_OUTPUT - - echo "Chain is upgraded to $local_spec and no release exists yet." - echo "ready=true" >> $GITHUB_OUTPUT + release_tag="v${chain_spec}" + echo "release_tag=$release_tag" >> "$GITHUB_OUTPUT" + + # The release train reserves this exact lightweight tag before + # submitting the multisig. Never accept an ambiguously named branch. + tag_json=$(gh api \ + "repos/$GITHUB_REPOSITORY/git/ref/tags/${release_tag}") + tag_type=$(jq -er '.object.type' <<<"$tag_json") + [ "$tag_type" = commit ] \ + || { echo "release tag must be a lightweight Git tag, found $tag_type"; exit 1; } + release_sha=$(jq -er '.object.sha' <<<"$tag_json") + [[ "$release_sha" =~ ^[0-9a-f]{40}$ ]] \ + || { echo "release tag did not resolve to a Git commit"; exit 1; } + status=$(gh api \ + "repos/$GITHUB_REPOSITORY/compare/${release_sha}...main" --jq '.status') + case "$status" in + ahead|identical) ;; + *) echo "tagged commit $release_sha is not an ancestor of main"; exit 1 ;; + esac + echo "sha=$release_sha" >> "$GITHUB_OUTPUT" + + release_needed=true + release_json="" + if release_json=$(gh api \ + "repos/$GITHUB_REPOSITORY/releases/tags/${release_tag}" 2>/dev/null); then + is_draft=$(jq -er '.draft | booleans' <<<"$release_json") + is_prerelease=$(jq -er '.prerelease | booleans' <<<"$release_json") + if [ "$is_draft" = false ] && [ "$is_prerelease" = false ]; then + release_needed=false + target_sha=$(jq -er \ + '.target_commitish | strings | select(test("^[0-9a-f]{40}$"))' \ + <<<"$release_json") + [ "$target_sha" = "$release_sha" ] \ + || { echo "release target $target_sha does not match tag $release_sha"; exit 1; } + fi + fi + + # Once final, the independently protected mainnet branch must point + # to the tag before any downstream publication is considered. + if [ "$release_needed" = false ]; then + mainnet_json=$(gh api \ + "repos/$GITHUB_REPOSITORY/git/ref/heads/mainnet") + mainnet_type=$(jq -er '.object.type' <<<"$mainnet_json") + [ "$mainnet_type" = commit ] \ + || { echo "protected mainnet mirror did not resolve to a commit"; exit 1; } + mainnet_sha=$(jq -er '.object.sha' <<<"$mainnet_json") + [ "$release_sha" = "$mainnet_sha" ] \ + || { echo "protected mainnet mirror $mainnet_sha does not match release commit $release_sha"; exit 1; } + fi + + # Derive the exact stable Python versions from the immutable tag, + # never from the moving default branch or mutable release metadata. + gh api -H "Accept: application/vnd.github.raw+json" \ + "repos/$GITHUB_REPOSITORY/contents/sdk/python/pyproject.toml?ref=${release_sha}" \ + > /tmp/release-sdk-pyproject.toml + gh api -H "Accept: application/vnd.github.raw+json" \ + "repos/$GITHUB_REPOSITORY/contents/sdk/bittensor-core-py/pyproject.toml?ref=${release_sha}" \ + > /tmp/release-core-pyproject.toml + versions=$(python3 .github/scripts/release-python-versions.py \ + /tmp/release-sdk-pyproject.toml /tmp/release-core-pyproject.toml) + sdk_version=$(jq -er '.sdk' <<<"$versions") + core_version=$(jq -er '.core' <<<"$versions") + echo "sdk_version=$sdk_version" >> "$GITHUB_OUTPUT" + echo "core_version=$core_version" >> "$GITHUB_OUTPUT" + + if [ "$release_needed" = true ]; then + # The exact artifact is needed only until its bytes have been + # verified and attached to the final release. + artifact_id=$(.github/scripts/resolve-release-artifact.sh \ + "$chain_spec" "$release_sha" "$chain_code_hash") + : ${artifact_id:?no artifact matches the immutable tag and finalized runtime} + echo "artifact_id=$artifact_id" >> "$GITHUB_OUTPUT" + python_needed=true + elif python3 .github/scripts/check-python-release.py \ + --sdk-version "$sdk_version" \ + --core-version "$core_version" \ + --repository "$GITHUB_REPOSITORY"; then + echo "Stable Python packages are complete on PyPI." + python_needed=false + else + python_status=$? + if [ "$python_status" -eq 1 ]; then + echo "Stable Python publication is incomplete and will be retried." + python_needed=true + else + echo "PyPI could not provide authoritative release state." + exit "$python_status" + fi + fi + + echo "release_needed=$release_needed" >> "$GITHUB_OUTPUT" + echo "python_needed=$python_needed" >> "$GITHUB_OUTPUT" release: name: Cut GitHub release needs: check - if: needs.check.outputs.ready == 'true' + if: needs.check.outputs.release_needed == 'true' runs-on: [self-hosted, fireactions-turbo-8] # MIRROR_DEPLOY_KEY lives in the mainnet environment secrets; one # approval of the run covers this and the publish jobs below. @@ -132,13 +240,27 @@ jobs: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | spec="${{ needs.check.outputs.spec_version }}" - artifact_id=$(.github/scripts/resolve-release-artifact.sh "$spec") - : ${artifact_id:?no trustworthy mainnet-upgrade-${spec} artifact found — did the release train run?} + artifact_id="${{ needs.check.outputs.artifact_id }}" + : ${artifact_id:?check job did not resolve a release artifact} gh api "repos/$GITHUB_REPOSITORY/actions/artifacts/${artifact_id}/zip" > artifact.zip + python3 .github/scripts/verify-release-artifact.py artifact.zip \ + --spec "$spec" \ + --commit "${{ needs.check.outputs.sha }}" \ + --code-hash "${{ needs.check.outputs.code_hash }}" mkdir -p wasm unzip -o artifact.zip -d wasm ls -la wasm + # Mirror first. If this protected push fails, the proposal stays a + # pre-release and the next scheduled watcher run can retry safely. + - name: Point mainnet branch at released commit + run: | + release_sha="${{ needs.check.outputs.sha }}" + git push --force origin "${release_sha}:refs/heads/mainnet" + mirrored_sha=$(git ls-remote origin refs/heads/mainnet | awk '{print $1}') + [ "$mirrored_sha" = "$release_sha" ] \ + || { echo "mainnet mirror is $mirrored_sha, expected $release_sha"; exit 1; } + - name: Create or promote release with runtime assets env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} @@ -154,48 +276,56 @@ jobs: ) [ -f wasm/upgrade-manifest.json ] && assets+=(wasm/upgrade-manifest.json) - # The release train published the proposal as a pre-release at this - # tag; the upgrade has now executed on chain, so promote it to the - # final release. Assets are re-uploaded from the provenance-gated - # workflow artifact so the release always carries the trusted bytes. - # Fall back to creating the release for trains that predate the - # proposal pre-release flow. - if gh release view "$tag" --repo "$GITHUB_REPOSITORY" >/dev/null 2>&1; then - tag_sha=$(gh api "repos/$GITHUB_REPOSITORY/git/ref/tags/$tag" --jq '.object.sha' || true) - if [ -n "$tag_sha" ] && [ "$tag_sha" != "$RELEASE_SHA" ]; then - echo "tag $tag points at $tag_sha but the released commit is $RELEASE_SHA;" - echo "the proposal pre-release does not match the executed upgrade — resolve manually." - exit 1 - fi - notes=$(gh api "repos/$GITHUB_REPOSITORY/releases/generate-notes" \ - -f tag_name="$tag" -f target_commitish="$RELEASE_SHA" --jq '.body' || true) - gh release upload "$tag" --repo "$GITHUB_REPOSITORY" --clobber "${assets[@]}" - gh release edit "$tag" \ - --repo "$GITHUB_REPOSITORY" \ - --title "Runtime ${SPEC_VERSION}" \ - ${notes:+--notes "$notes"} \ - --prerelease=false \ - --latest + tag_json=$(gh api \ + "repos/$GITHUB_REPOSITORY/git/ref/tags/$tag") + tag_type=$(jq -er '.object.type' <<<"$tag_json") + [ "$tag_type" = commit ] \ + || { echo "release tag $tag must be a lightweight Git tag, found $tag_type"; exit 1; } + tag_sha=$(jq -er '.object.sha' <<<"$tag_json") + [ "$tag_sha" = "$RELEASE_SHA" ] \ + || { echo "tag $tag points at $tag_sha, expected $RELEASE_SHA"; exit 1; } + + # The release train published the proposal as a pre-release. Assets + # are re-uploaded from the exact artifact verified against finalized + # on-chain bytes, then the same release is promoted. A missing + # pre-release is recoverable, but an existing final release is not + # rewritten by a retry. + if release_json=$(gh api \ + "repos/$GITHUB_REPOSITORY/releases/tags/$tag" 2>/dev/null); then + is_prerelease=$(jq -er '.prerelease | booleans' <<<"$release_json") + [ "$is_prerelease" = true ] \ + || { echo "release $tag is already final; refusing to rewrite it"; exit 1; } + target_sha=$(jq -er \ + '.target_commitish | strings | select(test("^[0-9a-f]{40}$"))' \ + <<<"$release_json") + [ "$target_sha" = "$RELEASE_SHA" ] \ + || { echo "release target $target_sha does not match $RELEASE_SHA"; exit 1; } else + # Create only a pre-release here. If a later asset upload fails, + # the next watcher run can safely resume instead of finding an + # incomplete final release. gh release create "$tag" \ --repo "$GITHUB_REPOSITORY" \ --target "$RELEASE_SHA" \ - --title "Runtime ${SPEC_VERSION}" \ - --generate-notes \ - "${assets[@]}" + --prerelease \ + --title "Runtime ${SPEC_VERSION} (finalizing)" \ + --notes "Runtime finalized on chain; release assets are being attached." fi - # Mirror: the mainnet branch always points at the code now running on - # mainnet (the release-train commit, not HEAD of main). Pushed over - # SSH with the mirror deploy key configured by the checkout above, - # the only actor allowed past the network-branch-mirrors ruleset. - - name: Point mainnet branch at released commit - run: git push --force origin "${{ needs.check.outputs.sha }}:refs/heads/mainnet" + notes=$(gh api "repos/$GITHUB_REPOSITORY/releases/generate-notes" \ + -f tag_name="$tag" -f target_commitish="$RELEASE_SHA" --jq '.body' || true) + gh release upload "$tag" --repo "$GITHUB_REPOSITORY" --clobber "${assets[@]}" + gh release edit "$tag" \ + --repo "$GITHUB_REPOSITORY" \ + --title "Runtime ${SPEC_VERSION}" \ + ${notes:+--notes "$notes"} \ + --prerelease=false \ + --latest publish-docker: name: Dispatch Docker image publishing needs: [check, release] - if: needs.check.outputs.ready == 'true' + if: needs.check.outputs.release_needed == 'true' runs-on: [self-hosted, fireactions-turbo-8] permissions: actions: write @@ -213,19 +343,23 @@ jobs: --repo "$GITHUB_REPOSITORY" --ref "$tag" -f branch-or-tag="$tag" # Full platform matrix (manylinux x86_64/aarch64, macOS arm64/x86_64, - # sdist) at the released commit; the committed version is published as-is. + # sdist) at the released commit; the SDK's committed .dev0 is stamped stable. build-core: name: Build bittensor-core wheels - needs: [check, release] - if: needs.check.outputs.ready == 'true' + needs: check + if: needs.check.outputs.python_needed == 'true' uses: ./.github/workflows/build-core-wheels.yml with: ref: ${{ needs.check.outputs.sha }} publish-sdk: - name: Publish Python SDK to PyPI + name: Publish Python packages to PyPI needs: [check, release, build-core] - if: needs.check.outputs.ready == 'true' + if: >- + always() && + needs.check.outputs.python_needed == 'true' && + needs.build-core.result == 'success' && + (needs.release.result == 'success' || needs.release.result == 'skipped') runs-on: [self-hosted, fireactions-turbo-8] # PyPI trusted publishing (OIDC); publishers for `bittensor` and # bittensor-core are registered against this workflow + mainnet environment. @@ -263,27 +397,37 @@ jobs: path: dist merge-multiple: true + - name: Prepare stable SDK distribution + run: python3 .github/scripts/prepare-sdk-dist.py + - name: Build SDK wheel and sdist working-directory: sdk/python run: uv build --out-dir ../../dist - # Second half of the v432 recovery: refuse to publish anything but the - # intended stable artifacts, so a failed stamp can never leak - # 11.0.0.dev0 to PyPI. - - name: Verify stable artifacts (v432 recovery) - if: needs.check.outputs.spec_version == '432' && needs.check.outputs.sha == '8586e65ec279644a6837cf25b12333064c77474e' + # Refuse to publish development or release-candidate artifacts from the + # stable channel. Also require the complete SDK/core platform set. + - name: Verify stable artifacts + env: + EXPECTED_SDK_VERSION: ${{ needs.check.outputs.sdk_version }} + EXPECTED_CORE_VERSION: ${{ needs.check.outputs.core_version }} run: | + sdk_version=$(sed -n 's/^version = "\(.*\)"/\1/p' sdk/python/pyproject.toml | head -n 1) + core_version=$(sed -n 's/^version = "\(.*\)"/\1/p' sdk/bittensor-core-py/pyproject.toml | head -n 1) + : ${sdk_version:?could not parse stable SDK version} + : ${core_version:?could not parse stable core version} + [[ "$sdk_version" =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]] \ + || { echo "SDK version is not stable: $sdk_version"; exit 1; } + [[ "$core_version" =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]] \ + || { echo "core version is not stable: $core_version"; exit 1; } + [ "$sdk_version" = "$EXPECTED_SDK_VERSION" ] \ + || { echo "SDK version $sdk_version != expected $EXPECTED_SDK_VERSION"; exit 1; } + [ "$core_version" = "$EXPECTED_CORE_VERSION" ] \ + || { echo "core version $core_version != expected $EXPECTED_CORE_VERSION"; exit 1; } ls -la dist - test -f dist/bittensor-11.0.0-py3-none-any.whl - test -f dist/bittensor-11.0.0.tar.gz - compgen -G 'dist/bittensor_core-0.1.0-*.whl' >/dev/null - test -f dist/bittensor_core-0.1.0.tar.gz - for f in dist/*; do - # *0rc* not *rc*: "aarch64" in wheel platform tags contains "rc" - case "$f" in - *dev*|*0rc*) echo "unexpected pre-release artifact: $f"; exit 1 ;; - esac - done + test -f "dist/bittensor-${sdk_version}-py3-none-any.whl" + test -f "dist/bittensor-${sdk_version}.tar.gz" + compgen -G "dist/bittensor_core-${core_version}-*.whl" >/dev/null + test -f "dist/bittensor_core-${core_version}.tar.gz" # PEP 740 provenance: sign every dist with this job's OIDC identity. # Must happen here, not in build-core-wheels.yml — PyPI only accepts @@ -302,10 +446,35 @@ jobs: uv publish --trusted-publishing always \ --check-url https://pypi.org/simple/ dist/* + # PyPI is the authoritative terminal state. Its JSON and Integrity APIs + # can lag an upload briefly, so poll for the complete SDK/core platform + # set and the trusted-publisher attestation on every file. + - name: Verify complete publication on PyPI + env: + SDK_VERSION: ${{ needs.check.outputs.sdk_version }} + CORE_VERSION: ${{ needs.check.outputs.core_version }} + run: | + for attempt in $(seq 1 12); do + status=0 + python3 .github/scripts/check-python-release.py \ + --sdk-version "$SDK_VERSION" \ + --core-version "$CORE_VERSION" \ + --repository "$GITHUB_REPOSITORY" || status=$? + if [ "$status" -eq 0 ]; then + exit 0 + fi + if [ "$attempt" -lt 12 ]; then + echo "PyPI state not authoritative yet (attempt $attempt/12); retrying." + sleep 10 + fi + done + echo "PyPI did not expose the complete attested release within two minutes." + exit 1 + publish-crates: name: Publish Rust crates to crates.io needs: [check, release] - if: needs.check.outputs.ready == 'true' + if: needs.check.outputs.release_needed == 'true' runs-on: [self-hosted, fireactions-turbo-8] environment: mainnet steps: @@ -341,7 +510,7 @@ jobs: promote-website: name: Deploy production website and docs needs: [check, release] - if: needs.check.outputs.ready == 'true' + if: needs.check.outputs.release_needed == 'true' runs-on: [self-hosted, fireactions-turbo-8] environment: mainnet steps: diff --git a/.openai/hosting.json b/.openai/hosting.json new file mode 100644 index 0000000000..3a1ebd240a --- /dev/null +++ b/.openai/hosting.json @@ -0,0 +1,3 @@ +{ + "project_id": "appgprj_6a62521dc1d48191b692008a17c5aa1a" +} diff --git a/Cargo.lock b/Cargo.lock index 8b6486ba4e..8e1e1e611a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1114,7 +1114,7 @@ checksum = "9b34d609dfbaf33d6889b2b7106d3ca345eacad44200913df5ba02bfd31d2ba9" [[package]] name = "assets-common" version = "0.22.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "cumulus-primitives-core", "ethereum-standards", @@ -1499,7 +1499,7 @@ checksum = "5a45f9771ced8a774de5e5ebffbe520f52e3943bf5a9a6baa3a5d14a5de1afe6" [[package]] name = "binary-merkle-tree" version = "16.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "hash-db", "log", @@ -1870,7 +1870,7 @@ dependencies = [ [[package]] name = "bp-header-chain" version = "0.21.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "bp-runtime", "finality-grandpa", @@ -1887,7 +1887,7 @@ dependencies = [ [[package]] name = "bp-messages" version = "0.21.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "bp-header-chain", "bp-runtime", @@ -1903,7 +1903,7 @@ dependencies = [ [[package]] name = "bp-parachains" version = "0.21.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "bp-header-chain", "bp-polkadot-core", @@ -1920,7 +1920,7 @@ dependencies = [ [[package]] name = "bp-polkadot-core" version = "0.21.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "bp-messages", "bp-runtime", @@ -1936,7 +1936,7 @@ dependencies = [ [[package]] name = "bp-relayers" version = "0.21.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "bp-header-chain", "bp-messages", @@ -1954,7 +1954,7 @@ dependencies = [ [[package]] name = "bp-runtime" version = "0.21.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "frame-support", "frame-system", @@ -1977,7 +1977,7 @@ dependencies = [ [[package]] name = "bp-test-utils" version = "0.21.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "bp-header-chain", "bp-parachains", @@ -1997,7 +1997,7 @@ dependencies = [ [[package]] name = "bp-xcm-bridge-hub" version = "0.7.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "bp-messages", "bp-runtime", @@ -2014,7 +2014,7 @@ dependencies = [ [[package]] name = "bp-xcm-bridge-hub-router" version = "0.18.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "parity-scale-codec", "scale-info", @@ -2026,7 +2026,7 @@ dependencies = [ [[package]] name = "bridge-hub-common" version = "0.14.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -2045,7 +2045,7 @@ dependencies = [ [[package]] name = "bridge-runtime-common" version = "0.22.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "bp-header-chain", "bp-messages", @@ -2090,7 +2090,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "63044e1ae8e69f3b5a92c736ca6269b8d12fa7efe39bf34ddb06d102cf0e2cab" dependencies = [ "memchr", - "regex-automata", + "regex-automata 0.4.11", "serde", ] @@ -2958,7 +2958,7 @@ dependencies = [ [[package]] name = "cumulus-client-bootnodes" version = "0.2.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "array-bytes 6.2.3", "async-channel 1.9.0", @@ -2984,7 +2984,7 @@ dependencies = [ [[package]] name = "cumulus-client-cli" version = "0.24.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "clap", "parity-scale-codec", @@ -3001,7 +3001,7 @@ dependencies = [ [[package]] name = "cumulus-client-collator" version = "0.24.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "cumulus-client-consensus-common", "cumulus-client-network", @@ -3024,7 +3024,7 @@ dependencies = [ [[package]] name = "cumulus-client-consensus-aura" version = "0.24.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "async-trait", "cumulus-client-collator", @@ -3071,7 +3071,7 @@ dependencies = [ [[package]] name = "cumulus-client-consensus-common" version = "0.24.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "async-trait", "cumulus-client-pov-recovery", @@ -3103,7 +3103,7 @@ dependencies = [ [[package]] name = "cumulus-client-consensus-proposer" version = "0.20.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "anyhow", "async-trait", @@ -3118,7 +3118,7 @@ dependencies = [ [[package]] name = "cumulus-client-consensus-relay-chain" version = "0.24.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "async-trait", "cumulus-client-consensus-common", @@ -3141,7 +3141,7 @@ dependencies = [ [[package]] name = "cumulus-client-network" version = "0.24.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "async-trait", "cumulus-relay-chain-interface", @@ -3168,7 +3168,7 @@ dependencies = [ [[package]] name = "cumulus-client-parachain-inherent" version = "0.18.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -3178,7 +3178,7 @@ dependencies = [ "parity-scale-codec", "sc-client-api", "sc-consensus-babe", - "sp-crypto-hashing 0.1.0 (git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38)", "sp-inherents", "sp-runtime", "sp-state-machine", @@ -3189,7 +3189,7 @@ dependencies = [ [[package]] name = "cumulus-client-pov-recovery" version = "0.24.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -3217,7 +3217,7 @@ dependencies = [ [[package]] name = "cumulus-client-service" version = "0.25.1" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "async-channel 1.9.0", "cumulus-client-cli", @@ -3257,7 +3257,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-aura-ext" version = "0.21.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "cumulus-pallet-parachain-system", "frame-support", @@ -3274,7 +3274,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-dmp-queue" version = "0.21.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "cumulus-primitives-core", "frame-benchmarking", @@ -3291,7 +3291,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-parachain-system" version = "0.21.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "bytes", "cumulus-pallet-parachain-system-proc-macro", @@ -3328,7 +3328,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-parachain-system-proc-macro" version = "0.6.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "proc-macro-crate 3.4.0", "proc-macro2", @@ -3339,7 +3339,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-session-benchmarking" version = "22.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "frame-benchmarking", "frame-support", @@ -3352,7 +3352,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-solo-to-para" version = "0.21.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "cumulus-pallet-parachain-system", "frame-support", @@ -3367,7 +3367,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-weight-reclaim" version = "0.3.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "cumulus-primitives-storage-weight-reclaim", "derive-where", @@ -3386,7 +3386,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-xcm" version = "0.20.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -3401,7 +3401,7 @@ dependencies = [ [[package]] name = "cumulus-pallet-xcmp-queue" version = "0.21.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "approx", "bounded-collections 0.2.4", @@ -3426,7 +3426,7 @@ dependencies = [ [[package]] name = "cumulus-ping" version = "0.21.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "cumulus-pallet-xcm", "cumulus-primitives-core", @@ -3441,7 +3441,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-aura" version = "0.18.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "sp-api", "sp-consensus-aura", @@ -3450,7 +3450,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-core" version = "0.19.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "parity-scale-codec", "polkadot-core-primitives", @@ -3467,7 +3467,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-parachain-inherent" version = "0.19.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -3481,7 +3481,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-proof-size-hostfunction" version = "0.13.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "sp-externalities", "sp-runtime-interface", @@ -3491,7 +3491,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-storage-weight-reclaim" version = "12.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "cumulus-primitives-core", "cumulus-primitives-proof-size-hostfunction", @@ -3508,7 +3508,7 @@ dependencies = [ [[package]] name = "cumulus-primitives-utility" version = "0.21.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -3525,7 +3525,7 @@ dependencies = [ [[package]] name = "cumulus-relay-chain-inprocess-interface" version = "0.25.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "async-channel 1.9.0", "async-trait", @@ -3553,7 +3553,7 @@ dependencies = [ [[package]] name = "cumulus-relay-chain-interface" version = "0.24.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -3573,7 +3573,7 @@ dependencies = [ [[package]] name = "cumulus-relay-chain-minimal-node" version = "0.25.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "array-bytes 6.2.3", "async-channel 1.9.0", @@ -3609,7 +3609,7 @@ dependencies = [ [[package]] name = "cumulus-relay-chain-rpc-interface" version = "0.24.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "async-trait", "cumulus-primitives-core", @@ -3650,7 +3650,7 @@ dependencies = [ [[package]] name = "cumulus-relay-chain-streams" version = "0.2.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "cumulus-relay-chain-interface", "futures", @@ -3664,7 +3664,7 @@ dependencies = [ [[package]] name = "cumulus-test-relay-sproof-builder" version = "0.20.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "cumulus-primitives-core", "parity-scale-codec", @@ -4431,7 +4431,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" dependencies = [ "libc", - "windows-sys 0.59.0", + "windows-sys 0.61.2", ] [[package]] @@ -4471,7 +4471,7 @@ dependencies = [ [[package]] name = "ethereum-standards" version = "0.1.1" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "alloy-core", ] @@ -4853,7 +4853,7 @@ dependencies = [ "rustc-hex", "serde", "serde_json", - "sp-crypto-hashing 0.1.0 (git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38)", ] [[package]] @@ -5036,7 +5036,7 @@ checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" [[package]] name = "fork-tree" version = "13.0.1" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "parity-scale-codec", ] @@ -5156,7 +5156,7 @@ checksum = "28dd6caf6059519a65843af8fe2a3ae298b14b80179855aeb4adc2c1934ee619" [[package]] name = "frame-benchmarking" version = "41.0.1" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "frame-support", "frame-support-procedural", @@ -5180,7 +5180,7 @@ dependencies = [ [[package]] name = "frame-benchmarking-cli" version = "49.1.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "Inflector", "array-bytes 6.2.3", @@ -5245,7 +5245,7 @@ dependencies = [ [[package]] name = "frame-benchmarking-pallet-pov" version = "31.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "frame-benchmarking", "frame-support", @@ -5273,7 +5273,7 @@ dependencies = [ [[package]] name = "frame-election-provider-solution-type" version = "16.1.1" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "proc-macro-crate 3.4.0", "proc-macro2", @@ -5284,7 +5284,7 @@ dependencies = [ [[package]] name = "frame-election-provider-support" version = "41.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "frame-election-provider-solution-type", "frame-support", @@ -5301,7 +5301,7 @@ dependencies = [ [[package]] name = "frame-executive" version = "41.0.1" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "aquamarine", "frame-support", @@ -5354,7 +5354,7 @@ dependencies = [ [[package]] name = "frame-metadata-hash-extension" version = "0.9.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "array-bytes 6.2.3", "const-hex", @@ -5370,7 +5370,7 @@ dependencies = [ [[package]] name = "frame-storage-access-test-runtime" version = "0.2.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "cumulus-pallet-parachain-system", "parity-scale-codec", @@ -5384,7 +5384,7 @@ dependencies = [ [[package]] name = "frame-support" version = "41.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "aquamarine", "array-bytes 6.2.3", @@ -5425,20 +5425,33 @@ dependencies = [ [[package]] name = "frame-support-procedural" version = "34.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "Inflector", "cfg-expr", "derive-syn-parse", "docify", "expander", + "frame-support-procedural-core", "frame-support-procedural-tools 13.0.1", "itertools 0.11.0", "macro_magic", "proc-macro-warning", "proc-macro2", "quote", - "sp-crypto-hashing 0.1.0 (git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38)", + "syn 2.0.106", +] + +[[package]] +name = "frame-support-procedural-core" +version = "34.0.0" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" +dependencies = [ + "cfg-expr", + "frame-support-procedural-tools 13.0.1", + "proc-macro2", + "quote", "syn 2.0.106", ] @@ -5458,7 +5471,7 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools" version = "13.0.1" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "frame-support-procedural-tools-derive 12.0.0", "proc-macro-crate 3.4.0", @@ -5481,7 +5494,7 @@ dependencies = [ [[package]] name = "frame-support-procedural-tools-derive" version = "12.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "proc-macro2", "quote", @@ -5491,7 +5504,7 @@ dependencies = [ [[package]] name = "frame-system" version = "41.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "cfg-if", "docify", @@ -5510,7 +5523,7 @@ dependencies = [ [[package]] name = "frame-system-benchmarking" version = "41.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "frame-benchmarking", "frame-support", @@ -5524,7 +5537,7 @@ dependencies = [ [[package]] name = "frame-system-rpc-runtime-api" version = "37.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "docify", "parity-scale-codec", @@ -5534,7 +5547,7 @@ dependencies = [ [[package]] name = "frame-try-runtime" version = "0.47.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "frame-support", "parity-scale-codec", @@ -8102,11 +8115,11 @@ dependencies = [ [[package]] name = "matchers" -version = "0.2.0" +version = "0.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d1525a2a28c7f4fa0fc98bb91ae755d1e2d1505079e05539e35bc876b5d65ae9" +checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" dependencies = [ - "regex-automata", + "regex-automata 0.1.10", ] [[package]] @@ -8274,7 +8287,7 @@ dependencies = [ [[package]] name = "mmr-gadget" version = "46.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "futures", "log", @@ -8293,7 +8306,7 @@ dependencies = [ [[package]] name = "mmr-rpc" version = "41.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "jsonrpsee", "parity-scale-codec", @@ -8682,6 +8695,7 @@ dependencies = [ "frame-system-rpc-runtime-api", "futures", "hex", + "hex-literal", "jsonrpsee", "log", "memmap2 0.9.8", @@ -8918,11 +8932,12 @@ dependencies = [ [[package]] name = "nu-ansi-term" -version = "0.50.3" +version = "0.46.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7957b9740744892f114936ab4a57b3f487491bbeafaf8083688b16841a4240e5" +checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" dependencies = [ - "windows-sys 0.59.0", + "overload", + "winapi", ] [[package]] @@ -9226,6 +9241,12 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "overload" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" + [[package]] name = "pallet-admin-utils" version = "4.0.0-dev" @@ -9263,7 +9284,7 @@ dependencies = [ [[package]] name = "pallet-alliance" version = "40.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "array-bytes 6.2.3", "frame-benchmarking", @@ -9275,7 +9296,7 @@ dependencies = [ "parity-scale-codec", "scale-info", "sp-core", - "sp-crypto-hashing 0.1.0 (git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38)", "sp-io", "sp-runtime", ] @@ -9299,7 +9320,7 @@ dependencies = [ [[package]] name = "pallet-asset-conversion" version = "23.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "frame-benchmarking", "frame-support", @@ -9317,7 +9338,7 @@ dependencies = [ [[package]] name = "pallet-asset-conversion-ops" version = "0.9.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "frame-benchmarking", "frame-support", @@ -9335,7 +9356,7 @@ dependencies = [ [[package]] name = "pallet-asset-conversion-tx-payment" version = "23.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "frame-benchmarking", "frame-support", @@ -9350,7 +9371,7 @@ dependencies = [ [[package]] name = "pallet-asset-rate" version = "20.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "frame-benchmarking", "frame-support", @@ -9364,7 +9385,7 @@ dependencies = [ [[package]] name = "pallet-asset-rewards" version = "0.3.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "frame-benchmarking", "frame-support", @@ -9382,7 +9403,7 @@ dependencies = [ [[package]] name = "pallet-asset-tx-payment" version = "41.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "frame-benchmarking", "frame-support", @@ -9398,7 +9419,7 @@ dependencies = [ [[package]] name = "pallet-assets" version = "43.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "ethereum-standards", "frame-benchmarking", @@ -9416,7 +9437,7 @@ dependencies = [ [[package]] name = "pallet-assets-freezer" version = "0.8.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "log", "pallet-assets", @@ -9428,7 +9449,7 @@ dependencies = [ [[package]] name = "pallet-assets-holder" version = "0.3.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "frame-benchmarking", "frame-support", @@ -9443,7 +9464,7 @@ dependencies = [ [[package]] name = "pallet-atomic-swap" version = "41.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "parity-scale-codec", "polkadot-sdk-frame", @@ -9453,7 +9474,7 @@ dependencies = [ [[package]] name = "pallet-aura" version = "40.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "frame-support", "frame-system", @@ -9469,7 +9490,7 @@ dependencies = [ [[package]] name = "pallet-authority-discovery" version = "41.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "frame-support", "frame-system", @@ -9484,7 +9505,7 @@ dependencies = [ [[package]] name = "pallet-authorship" version = "41.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "frame-support", "frame-system", @@ -9497,7 +9518,7 @@ dependencies = [ [[package]] name = "pallet-babe" version = "41.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "frame-benchmarking", "frame-support", @@ -9520,7 +9541,7 @@ dependencies = [ [[package]] name = "pallet-bags-list" version = "40.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "aquamarine", "docify", @@ -9541,7 +9562,7 @@ dependencies = [ [[package]] name = "pallet-balances" version = "42.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "docify", "frame-benchmarking", @@ -9570,7 +9591,7 @@ dependencies = [ [[package]] name = "pallet-beefy" version = "42.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "frame-support", "frame-system", @@ -9589,7 +9610,7 @@ dependencies = [ [[package]] name = "pallet-beefy-mmr" version = "42.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "array-bytes 6.2.3", "binary-merkle-tree", @@ -9614,7 +9635,7 @@ dependencies = [ [[package]] name = "pallet-bounties" version = "40.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "frame-benchmarking", "frame-support", @@ -9631,7 +9652,7 @@ dependencies = [ [[package]] name = "pallet-bridge-grandpa" version = "0.21.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "bp-header-chain", "bp-runtime", @@ -9650,7 +9671,7 @@ dependencies = [ [[package]] name = "pallet-bridge-messages" version = "0.21.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "bp-header-chain", "bp-messages", @@ -9669,7 +9690,7 @@ dependencies = [ [[package]] name = "pallet-bridge-parachains" version = "0.21.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "bp-header-chain", "bp-parachains", @@ -9689,7 +9710,7 @@ dependencies = [ [[package]] name = "pallet-bridge-relayers" version = "0.21.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "bp-header-chain", "bp-messages", @@ -9712,7 +9733,7 @@ dependencies = [ [[package]] name = "pallet-broker" version = "0.20.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "bitvec", "frame-benchmarking", @@ -9730,7 +9751,7 @@ dependencies = [ [[package]] name = "pallet-child-bounties" version = "40.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "frame-benchmarking", "frame-support", @@ -9748,7 +9769,7 @@ dependencies = [ [[package]] name = "pallet-collator-selection" version = "22.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "frame-benchmarking", "frame-support", @@ -9767,7 +9788,7 @@ dependencies = [ [[package]] name = "pallet-collective" version = "41.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "docify", "frame-benchmarking", @@ -9784,7 +9805,7 @@ dependencies = [ [[package]] name = "pallet-collective-content" version = "0.19.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "frame-benchmarking", "frame-support", @@ -9825,7 +9846,7 @@ dependencies = [ [[package]] name = "pallet-contracts" version = "41.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "environmental", "frame-benchmarking", @@ -9856,7 +9877,7 @@ dependencies = [ [[package]] name = "pallet-contracts-mock-network" version = "18.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "frame-support", "frame-system", @@ -9887,7 +9908,7 @@ dependencies = [ [[package]] name = "pallet-contracts-proc-macro" version = "23.0.3" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "proc-macro2", "quote", @@ -9897,7 +9918,7 @@ dependencies = [ [[package]] name = "pallet-contracts-uapi" version = "14.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "bitflags 1.3.2", "parity-scale-codec", @@ -9908,7 +9929,7 @@ dependencies = [ [[package]] name = "pallet-conviction-voting" version = "41.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "assert_matches", "frame-benchmarking", @@ -9924,7 +9945,7 @@ dependencies = [ [[package]] name = "pallet-core-fellowship" version = "25.0.1" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "frame-benchmarking", "frame-support", @@ -9962,7 +9983,7 @@ dependencies = [ [[package]] name = "pallet-delegated-staking" version = "8.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "frame-support", "frame-system", @@ -9977,7 +9998,7 @@ dependencies = [ [[package]] name = "pallet-democracy" version = "41.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "frame-benchmarking", "frame-support", @@ -9994,7 +10015,7 @@ dependencies = [ [[package]] name = "pallet-dev-mode" version = "23.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "frame-support", "frame-system", @@ -10043,7 +10064,7 @@ dependencies = [ [[package]] name = "pallet-dummy-dim" version = "0.2.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "frame-benchmarking", "frame-support", @@ -10061,7 +10082,7 @@ dependencies = [ [[package]] name = "pallet-election-provider-multi-block" version = "0.2.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -10082,7 +10103,7 @@ dependencies = [ [[package]] name = "pallet-election-provider-multi-phase" version = "40.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -10103,7 +10124,7 @@ dependencies = [ [[package]] name = "pallet-election-provider-support-benchmarking" version = "40.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -10116,7 +10137,7 @@ dependencies = [ [[package]] name = "pallet-elections-phragmen" version = "42.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "frame-benchmarking", "frame-support", @@ -10235,7 +10256,7 @@ dependencies = [ [[package]] name = "pallet-fast-unstake" version = "40.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "docify", "frame-benchmarking", @@ -10253,7 +10274,7 @@ dependencies = [ [[package]] name = "pallet-glutton" version = "27.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "blake2 0.10.6", "frame-benchmarking", @@ -10271,7 +10292,7 @@ dependencies = [ [[package]] name = "pallet-grandpa" version = "41.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "frame-benchmarking", "frame-support", @@ -10307,7 +10328,7 @@ dependencies = [ [[package]] name = "pallet-identity" version = "41.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "enumflags2", "frame-benchmarking", @@ -10323,7 +10344,7 @@ dependencies = [ [[package]] name = "pallet-im-online" version = "40.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "frame-benchmarking", "frame-support", @@ -10342,7 +10363,7 @@ dependencies = [ [[package]] name = "pallet-indices" version = "41.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "frame-benchmarking", "frame-support", @@ -10357,7 +10378,7 @@ dependencies = [ [[package]] name = "pallet-insecure-randomness-collective-flip" version = "29.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "parity-scale-codec", "polkadot-sdk-frame", @@ -10390,7 +10411,7 @@ dependencies = [ [[package]] name = "pallet-lottery" version = "41.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "frame-benchmarking", "frame-support", @@ -10403,7 +10424,7 @@ dependencies = [ [[package]] name = "pallet-membership" version = "41.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "frame-benchmarking", "frame-support", @@ -10419,7 +10440,7 @@ dependencies = [ [[package]] name = "pallet-message-queue" version = "44.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "environmental", "frame-benchmarking", @@ -10438,7 +10459,7 @@ dependencies = [ [[package]] name = "pallet-meta-tx" version = "0.3.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "docify", "frame-benchmarking", @@ -10456,7 +10477,7 @@ dependencies = [ [[package]] name = "pallet-migrations" version = "11.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "docify", "frame-benchmarking", @@ -10475,7 +10496,7 @@ dependencies = [ [[package]] name = "pallet-mixnet" version = "0.17.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "log", "parity-scale-codec", @@ -10489,7 +10510,7 @@ dependencies = [ [[package]] name = "pallet-mmr" version = "41.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "log", "parity-scale-codec", @@ -10501,7 +10522,7 @@ dependencies = [ [[package]] name = "pallet-multisig" version = "41.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "log", "parity-scale-codec", @@ -10512,7 +10533,7 @@ dependencies = [ [[package]] name = "pallet-nft-fractionalization" version = "24.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "log", "pallet-assets", @@ -10525,7 +10546,7 @@ dependencies = [ [[package]] name = "pallet-nfts" version = "35.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "enumflags2", "frame-benchmarking", @@ -10542,7 +10563,7 @@ dependencies = [ [[package]] name = "pallet-nis" version = "41.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "parity-scale-codec", "polkadot-sdk-frame", @@ -10552,7 +10573,7 @@ dependencies = [ [[package]] name = "pallet-node-authorization" version = "41.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "log", "parity-scale-codec", @@ -10563,7 +10584,7 @@ dependencies = [ [[package]] name = "pallet-nomination-pools" version = "39.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "frame-support", "frame-system", @@ -10581,7 +10602,7 @@ dependencies = [ [[package]] name = "pallet-nomination-pools-benchmarking" version = "39.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -10601,7 +10622,7 @@ dependencies = [ [[package]] name = "pallet-nomination-pools-runtime-api" version = "37.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "pallet-nomination-pools", "parity-scale-codec", @@ -10611,7 +10632,7 @@ dependencies = [ [[package]] name = "pallet-offences" version = "40.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "frame-support", "frame-system", @@ -10626,7 +10647,7 @@ dependencies = [ [[package]] name = "pallet-offences-benchmarking" version = "41.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -10649,7 +10670,7 @@ dependencies = [ [[package]] name = "pallet-origin-restriction" version = "0.2.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "frame-benchmarking", "frame-support", @@ -10667,7 +10688,7 @@ dependencies = [ [[package]] name = "pallet-paged-list" version = "0.19.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "docify", "parity-scale-codec", @@ -10678,7 +10699,7 @@ dependencies = [ [[package]] name = "pallet-parameters" version = "0.12.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "docify", "frame-benchmarking", @@ -10695,7 +10716,7 @@ dependencies = [ [[package]] name = "pallet-people" version = "0.2.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "frame-benchmarking", "frame-support", @@ -10713,7 +10734,7 @@ dependencies = [ [[package]] name = "pallet-preimage" version = "41.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "frame-benchmarking", "frame-support", @@ -10729,8 +10750,10 @@ dependencies = [ [[package]] name = "pallet-proxy" version = "41.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ + "frame-support", + "frame-system", "parity-scale-codec", "polkadot-sdk-frame", "scale-info", @@ -10739,7 +10762,7 @@ dependencies = [ [[package]] name = "pallet-ranked-collective" version = "41.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "frame-benchmarking", "frame-support", @@ -10757,7 +10780,7 @@ dependencies = [ [[package]] name = "pallet-recovery" version = "41.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "parity-scale-codec", "polkadot-sdk-frame", @@ -10767,7 +10790,7 @@ dependencies = [ [[package]] name = "pallet-referenda" version = "41.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "assert_matches", "frame-benchmarking", @@ -10785,7 +10808,7 @@ dependencies = [ [[package]] name = "pallet-remark" version = "41.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "frame-benchmarking", "frame-support", @@ -10800,7 +10823,7 @@ dependencies = [ [[package]] name = "pallet-revive" version = "0.7.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "alloy-core", "derive_more 0.99.20", @@ -10846,7 +10869,7 @@ dependencies = [ [[package]] name = "pallet-revive-fixtures" version = "0.4.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "anyhow", "cargo_metadata", @@ -10860,7 +10883,7 @@ dependencies = [ [[package]] name = "pallet-revive-proc-macro" version = "0.3.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "proc-macro2", "quote", @@ -10870,7 +10893,7 @@ dependencies = [ [[package]] name = "pallet-revive-uapi" version = "0.5.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "bitflags 1.3.2", "pallet-revive-proc-macro", @@ -10882,7 +10905,7 @@ dependencies = [ [[package]] name = "pallet-root-offences" version = "38.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "frame-support", "frame-system", @@ -10898,7 +10921,7 @@ dependencies = [ [[package]] name = "pallet-root-testing" version = "17.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "frame-support", "frame-system", @@ -10911,7 +10934,7 @@ dependencies = [ [[package]] name = "pallet-safe-mode" version = "22.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "docify", "pallet-balances", @@ -10925,7 +10948,7 @@ dependencies = [ [[package]] name = "pallet-salary" version = "26.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "log", "pallet-ranked-collective", @@ -10937,7 +10960,7 @@ dependencies = [ [[package]] name = "pallet-scheduler" version = "42.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "docify", "frame-benchmarking", @@ -10954,7 +10977,7 @@ dependencies = [ [[package]] name = "pallet-scored-pool" version = "41.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "frame-support", "frame-system", @@ -10967,7 +10990,7 @@ dependencies = [ [[package]] name = "pallet-session" version = "41.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "frame-support", "frame-system", @@ -10988,7 +11011,7 @@ dependencies = [ [[package]] name = "pallet-session-benchmarking" version = "41.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "frame-benchmarking", "frame-support", @@ -11034,7 +11057,7 @@ dependencies = [ [[package]] name = "pallet-skip-feeless-payment" version = "16.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "frame-support", "frame-system", @@ -11046,7 +11069,7 @@ dependencies = [ [[package]] name = "pallet-society" version = "41.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "frame-benchmarking", "frame-support", @@ -11063,7 +11086,7 @@ dependencies = [ [[package]] name = "pallet-staking" version = "41.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -11085,7 +11108,7 @@ dependencies = [ [[package]] name = "pallet-staking-async" version = "0.2.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -11108,7 +11131,7 @@ dependencies = [ [[package]] name = "pallet-staking-async-ah-client" version = "0.2.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "frame-support", "frame-system", @@ -11127,7 +11150,7 @@ dependencies = [ [[package]] name = "pallet-staking-async-rc-client" version = "0.2.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "frame-support", "frame-system", @@ -11144,7 +11167,7 @@ dependencies = [ [[package]] name = "pallet-staking-reward-curve" version = "12.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "proc-macro-crate 3.4.0", "proc-macro2", @@ -11155,7 +11178,7 @@ dependencies = [ [[package]] name = "pallet-staking-reward-fn" version = "23.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "log", "sp-arithmetic", @@ -11164,7 +11187,7 @@ dependencies = [ [[package]] name = "pallet-staking-runtime-api" version = "27.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "parity-scale-codec", "sp-api", @@ -11174,7 +11197,7 @@ dependencies = [ [[package]] name = "pallet-state-trie-migration" version = "46.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "frame-benchmarking", "frame-support", @@ -11190,7 +11213,7 @@ dependencies = [ [[package]] name = "pallet-statement" version = "23.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "frame-support", "frame-system", @@ -11256,7 +11279,7 @@ dependencies = [ "tle", "tracing", "tracing-log", - "tracing-subscriber 0.3.20", + "tracing-subscriber 0.3.19", "w3f-bls 0.1.3", ] @@ -11354,7 +11377,7 @@ dependencies = [ [[package]] name = "pallet-sudo" version = "41.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "docify", "frame-benchmarking", @@ -11369,7 +11392,7 @@ dependencies = [ [[package]] name = "pallet-timestamp" version = "40.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "docify", "frame-benchmarking", @@ -11387,7 +11410,7 @@ dependencies = [ [[package]] name = "pallet-tips" version = "40.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "frame-benchmarking", "frame-support", @@ -11405,7 +11428,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment" version = "41.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "frame-benchmarking", "frame-support", @@ -11420,7 +11443,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc" version = "44.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "jsonrpsee", "pallet-transaction-payment-rpc-runtime-api", @@ -11436,7 +11459,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc-runtime-api" version = "41.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "pallet-transaction-payment", "parity-scale-codec", @@ -11448,7 +11471,7 @@ dependencies = [ [[package]] name = "pallet-transaction-storage" version = "40.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "array-bytes 6.2.3", "frame-benchmarking", @@ -11467,7 +11490,7 @@ dependencies = [ [[package]] name = "pallet-treasury" version = "40.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "docify", "frame-benchmarking", @@ -11486,7 +11509,7 @@ dependencies = [ [[package]] name = "pallet-tx-pause" version = "22.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "docify", "parity-scale-codec", @@ -11497,7 +11520,7 @@ dependencies = [ [[package]] name = "pallet-uniques" version = "41.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "frame-benchmarking", "frame-support", @@ -11511,7 +11534,7 @@ dependencies = [ [[package]] name = "pallet-utility" version = "41.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "frame-benchmarking", "frame-support", @@ -11526,7 +11549,7 @@ dependencies = [ [[package]] name = "pallet-verify-signature" version = "0.4.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "frame-benchmarking", "frame-support", @@ -11541,7 +11564,7 @@ dependencies = [ [[package]] name = "pallet-vesting" version = "41.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "frame-benchmarking", "frame-support", @@ -11555,7 +11578,7 @@ dependencies = [ [[package]] name = "pallet-whitelist" version = "40.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "parity-scale-codec", "polkadot-sdk-frame", @@ -11565,7 +11588,7 @@ dependencies = [ [[package]] name = "pallet-xcm" version = "20.1.3" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "bounded-collections 0.2.4", "frame-benchmarking", @@ -11591,7 +11614,7 @@ dependencies = [ [[package]] name = "pallet-xcm-benchmarks" version = "21.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "frame-benchmarking", "frame-support", @@ -11608,7 +11631,7 @@ dependencies = [ [[package]] name = "pallet-xcm-bridge-hub" version = "0.17.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "bp-messages", "bp-runtime", @@ -11630,7 +11653,7 @@ dependencies = [ [[package]] name = "pallet-xcm-bridge-hub-router" version = "0.19.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "bp-xcm-bridge-hub-router", "frame-benchmarking", @@ -11650,7 +11673,7 @@ dependencies = [ [[package]] name = "parachains-common" version = "22.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "cumulus-primitives-core", "cumulus-primitives-utility", @@ -12012,7 +12035,7 @@ checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" [[package]] name = "polkadot-approval-distribution" version = "24.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "futures", "futures-timer", @@ -12030,7 +12053,7 @@ dependencies = [ [[package]] name = "polkadot-availability-bitfield-distribution" version = "24.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "futures", "futures-timer", @@ -12045,7 +12068,7 @@ dependencies = [ [[package]] name = "polkadot-availability-distribution" version = "24.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "fatality", "futures", @@ -12068,7 +12091,7 @@ dependencies = [ [[package]] name = "polkadot-availability-recovery" version = "24.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "async-trait", "fatality", @@ -12101,7 +12124,7 @@ dependencies = [ [[package]] name = "polkadot-cli" version = "25.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "clap", "frame-benchmarking-cli", @@ -12125,7 +12148,7 @@ dependencies = [ [[package]] name = "polkadot-collator-protocol" version = "24.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "bitvec", "fatality", @@ -12148,7 +12171,7 @@ dependencies = [ [[package]] name = "polkadot-core-primitives" version = "18.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "parity-scale-codec", "scale-info", @@ -12159,7 +12182,7 @@ dependencies = [ [[package]] name = "polkadot-dispute-distribution" version = "24.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "fatality", "futures", @@ -12181,7 +12204,7 @@ dependencies = [ [[package]] name = "polkadot-erasure-coding" version = "20.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "parity-scale-codec", "polkadot-node-primitives", @@ -12195,7 +12218,7 @@ dependencies = [ [[package]] name = "polkadot-gossip-support" version = "24.0.1" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "futures", "futures-timer", @@ -12208,7 +12231,7 @@ dependencies = [ "sc-network", "sp-application-crypto", "sp-core", - "sp-crypto-hashing 0.1.0 (git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38)", "sp-keystore", "tracing-gum", ] @@ -12216,7 +12239,7 @@ dependencies = [ [[package]] name = "polkadot-network-bridge" version = "24.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "always-assert", "async-trait", @@ -12239,7 +12262,7 @@ dependencies = [ [[package]] name = "polkadot-node-collation-generation" version = "24.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "futures", "parity-scale-codec", @@ -12257,7 +12280,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-approval-voting" version = "24.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "async-trait", "bitvec", @@ -12289,7 +12312,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-approval-voting-parallel" version = "0.7.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "async-trait", "futures", @@ -12313,7 +12336,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-av-store" version = "24.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "bitvec", "futures", @@ -12332,7 +12355,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-backing" version = "24.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "bitvec", "fatality", @@ -12353,7 +12376,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-bitfield-signing" version = "24.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "futures", "polkadot-node-subsystem", @@ -12368,7 +12391,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-candidate-validation" version = "24.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "async-trait", "futures", @@ -12390,7 +12413,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-chain-api" version = "24.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "futures", "polkadot-node-metrics", @@ -12404,7 +12427,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-chain-selection" version = "24.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "futures", "futures-timer", @@ -12420,7 +12443,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-dispute-coordinator" version = "24.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "fatality", "futures", @@ -12438,7 +12461,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-parachains-inherent" version = "24.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "async-trait", "futures", @@ -12455,7 +12478,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-prospective-parachains" version = "23.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "fatality", "futures", @@ -12469,7 +12492,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-provisioner" version = "24.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "bitvec", "fatality", @@ -12486,7 +12509,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-pvf" version = "24.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "always-assert", "array-bytes 6.2.3", @@ -12514,7 +12537,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-pvf-checker" version = "24.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "futures", "polkadot-node-subsystem", @@ -12527,7 +12550,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-pvf-common" version = "20.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "cpu-time", "futures", @@ -12542,7 +12565,7 @@ dependencies = [ "sc-executor-wasmtime", "seccompiler", "sp-core", - "sp-crypto-hashing 0.1.0 (git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38)", "sp-externalities", "sp-io", "sp-tracing", @@ -12553,7 +12576,7 @@ dependencies = [ [[package]] name = "polkadot-node-core-runtime-api" version = "24.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "futures", "polkadot-node-metrics", @@ -12568,7 +12591,7 @@ dependencies = [ [[package]] name = "polkadot-node-metrics" version = "24.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "bs58", "futures", @@ -12585,7 +12608,7 @@ dependencies = [ [[package]] name = "polkadot-node-network-protocol" version = "24.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "async-channel 1.9.0", "async-trait", @@ -12610,7 +12633,7 @@ dependencies = [ [[package]] name = "polkadot-node-primitives" version = "20.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "bitvec", "bounded-vec", @@ -12634,7 +12657,7 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem" version = "24.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "polkadot-node-subsystem-types", "polkadot-overseer", @@ -12643,7 +12666,7 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem-types" version = "24.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "async-trait", "derive_more 0.99.20", @@ -12671,7 +12694,7 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem-util" version = "24.0.1" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "fatality", "futures", @@ -12702,7 +12725,7 @@ dependencies = [ [[package]] name = "polkadot-omni-node-lib" version = "0.7.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "async-trait", "clap", @@ -12790,7 +12813,7 @@ dependencies = [ [[package]] name = "polkadot-overseer" version = "24.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "async-trait", "futures", @@ -12810,7 +12833,7 @@ dependencies = [ [[package]] name = "polkadot-parachain-primitives" version = "17.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "bounded-collections 0.2.4", "derive_more 0.99.20", @@ -12826,7 +12849,7 @@ dependencies = [ [[package]] name = "polkadot-primitives" version = "19.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "bitvec", "bounded-collections 0.2.4", @@ -12855,7 +12878,7 @@ dependencies = [ [[package]] name = "polkadot-rpc" version = "25.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "jsonrpsee", "mmr-rpc", @@ -12888,7 +12911,7 @@ dependencies = [ [[package]] name = "polkadot-runtime-common" version = "20.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "bitvec", "frame-benchmarking", @@ -12938,7 +12961,7 @@ dependencies = [ [[package]] name = "polkadot-runtime-metrics" version = "21.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "bs58", "frame-benchmarking", @@ -12950,7 +12973,7 @@ dependencies = [ [[package]] name = "polkadot-runtime-parachains" version = "20.0.2" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "bitflags 1.3.2", "bitvec", @@ -12998,7 +13021,7 @@ dependencies = [ [[package]] name = "polkadot-sdk" version = "2506.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "assets-common", "bridge-hub-common", @@ -13156,7 +13179,7 @@ dependencies = [ [[package]] name = "polkadot-sdk-frame" version = "0.10.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "docify", "frame-benchmarking", @@ -13191,7 +13214,7 @@ dependencies = [ [[package]] name = "polkadot-service" version = "25.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "async-trait", "frame-benchmarking", @@ -13301,7 +13324,7 @@ dependencies = [ [[package]] name = "polkadot-statement-distribution" version = "24.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "bitvec", "fatality", @@ -13321,7 +13344,7 @@ dependencies = [ [[package]] name = "polkadot-statement-table" version = "20.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "parity-scale-codec", "polkadot-primitives", @@ -13628,7 +13651,7 @@ dependencies = [ "prettyplease", "proc-macro2", "quote", - "sp-crypto-hashing 0.1.0 (git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38)", "syn 2.0.106", ] @@ -13810,7 +13833,7 @@ dependencies = [ "proc-macro2", "quote", "regex", - "sp-crypto-hashing 0.1.0 (git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38)", "syn 2.0.106", ] @@ -13865,7 +13888,7 @@ dependencies = [ "rand 0.9.4", "rand_chacha 0.9.0", "rand_xorshift", - "regex-syntax", + "regex-syntax 0.8.6", "rusty-fork", "tempfile", "unarray", @@ -14437,8 +14460,17 @@ checksum = "8b5288124840bee7b386bc413c487869b360b2b4ec421ea56425128692f2a82c" dependencies = [ "aho-corasick", "memchr", - "regex-automata", - "regex-syntax", + "regex-automata 0.4.11", + "regex-syntax 0.8.6", +] + +[[package]] +name = "regex-automata" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" +dependencies = [ + "regex-syntax 0.6.29", ] [[package]] @@ -14449,9 +14481,15 @@ checksum = "833eb9ce86d40ef33cb1306d8accf7bc8ec2bfea4355cbdebb3df68b40925cad" dependencies = [ "aho-corasick", "memchr", - "regex-syntax", + "regex-syntax 0.8.6", ] +[[package]] +name = "regex-syntax" +version = "0.6.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" + [[package]] name = "regex-syntax" version = "0.8.6" @@ -14635,7 +14673,7 @@ dependencies = [ [[package]] name = "rococo-runtime" version = "24.0.1" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "binary-merkle-tree", "bitvec", @@ -14733,7 +14771,7 @@ dependencies = [ [[package]] name = "rococo-runtime-constants" version = "21.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "frame-support", "polkadot-primitives", @@ -14952,7 +14990,7 @@ dependencies = [ "errno", "libc", "linux-raw-sys 0.11.0", - "windows-sys 0.59.0", + "windows-sys 0.61.2", ] [[package]] @@ -15163,7 +15201,7 @@ dependencies = [ [[package]] name = "sc-allocator" version = "32.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "log", "sp-core", @@ -15174,7 +15212,7 @@ dependencies = [ [[package]] name = "sc-authority-discovery" version = "0.51.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "async-trait", "futures", @@ -15205,7 +15243,7 @@ dependencies = [ [[package]] name = "sc-basic-authorship" version = "0.50.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "futures", "log", @@ -15227,7 +15265,7 @@ dependencies = [ [[package]] name = "sc-block-builder" version = "0.45.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "parity-scale-codec", "sp-api", @@ -15242,7 +15280,7 @@ dependencies = [ [[package]] name = "sc-chain-spec" version = "44.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "array-bytes 6.2.3", "clap", @@ -15258,7 +15296,7 @@ dependencies = [ "serde_json", "sp-blockchain", "sp-core", - "sp-crypto-hashing 0.1.0 (git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38)", "sp-genesis-builder", "sp-io", "sp-runtime", @@ -15269,7 +15307,7 @@ dependencies = [ [[package]] name = "sc-chain-spec-derive" version = "12.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "proc-macro-crate 3.4.0", "proc-macro2", @@ -15280,7 +15318,7 @@ dependencies = [ [[package]] name = "sc-cli" version = "0.53.1" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "array-bytes 6.2.3", "chrono", @@ -15322,7 +15360,7 @@ dependencies = [ [[package]] name = "sc-client-api" version = "40.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "fnv", "futures", @@ -15348,7 +15386,7 @@ dependencies = [ [[package]] name = "sc-client-db" version = "0.47.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "hash-db", "kvdb", @@ -15376,7 +15414,7 @@ dependencies = [ [[package]] name = "sc-consensus" version = "0.50.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "async-trait", "futures", @@ -15399,7 +15437,7 @@ dependencies = [ [[package]] name = "sc-consensus-aura" version = "0.51.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "async-trait", "futures", @@ -15428,7 +15466,7 @@ dependencies = [ [[package]] name = "sc-consensus-babe" version = "0.51.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "async-trait", "fork-tree", @@ -15453,7 +15491,7 @@ dependencies = [ "sp-consensus-babe", "sp-consensus-slots", "sp-core", - "sp-crypto-hashing 0.1.0 (git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38)", "sp-inherents", "sp-keystore", "sp-runtime", @@ -15464,7 +15502,7 @@ dependencies = [ [[package]] name = "sc-consensus-babe-rpc" version = "0.51.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "futures", "jsonrpsee", @@ -15486,7 +15524,7 @@ dependencies = [ [[package]] name = "sc-consensus-beefy" version = "30.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "array-bytes 6.2.3", "async-channel 1.9.0", @@ -15520,7 +15558,7 @@ dependencies = [ [[package]] name = "sc-consensus-beefy-rpc" version = "30.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "futures", "jsonrpsee", @@ -15540,7 +15578,7 @@ dependencies = [ [[package]] name = "sc-consensus-epochs" version = "0.50.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "fork-tree", "parity-scale-codec", @@ -15553,7 +15591,7 @@ dependencies = [ [[package]] name = "sc-consensus-grandpa" version = "0.36.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "ahash 0.8.12", "array-bytes 6.2.3", @@ -15587,7 +15625,7 @@ dependencies = [ "sp-consensus", "sp-consensus-grandpa", "sp-core", - "sp-crypto-hashing 0.1.0 (git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38)", "sp-keystore", "sp-runtime", "substrate-prometheus-endpoint", @@ -15597,7 +15635,7 @@ dependencies = [ [[package]] name = "sc-consensus-grandpa-rpc" version = "0.36.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "finality-grandpa", "futures", @@ -15617,7 +15655,7 @@ dependencies = [ [[package]] name = "sc-consensus-manual-seal" version = "0.52.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "assert_matches", "async-trait", @@ -15652,7 +15690,7 @@ dependencies = [ [[package]] name = "sc-consensus-slots" version = "0.50.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "async-trait", "futures", @@ -15675,7 +15713,7 @@ dependencies = [ [[package]] name = "sc-executor" version = "0.43.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "parity-scale-codec", "parking_lot 0.12.5", @@ -15698,7 +15736,7 @@ dependencies = [ [[package]] name = "sc-executor-common" version = "0.39.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "polkavm 0.24.0", "sc-allocator", @@ -15711,7 +15749,7 @@ dependencies = [ [[package]] name = "sc-executor-polkavm" version = "0.36.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "log", "polkavm 0.24.0", @@ -15722,7 +15760,7 @@ dependencies = [ [[package]] name = "sc-executor-wasmtime" version = "0.39.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "anyhow", "log", @@ -15738,7 +15776,7 @@ dependencies = [ [[package]] name = "sc-informant" version = "0.50.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "console", "futures", @@ -15754,7 +15792,7 @@ dependencies = [ [[package]] name = "sc-keystore" version = "36.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "array-bytes 6.2.3", "parking_lot 0.12.5", @@ -15768,7 +15806,7 @@ dependencies = [ [[package]] name = "sc-mixnet" version = "0.21.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "array-bytes 6.2.3", "arrayvec 0.7.6", @@ -15796,7 +15834,7 @@ dependencies = [ [[package]] name = "sc-network" version = "0.51.1" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "array-bytes 6.2.3", "async-channel 1.9.0", @@ -15846,7 +15884,7 @@ dependencies = [ [[package]] name = "sc-network-common" version = "0.49.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "bitflags 1.3.2", "parity-scale-codec", @@ -15856,7 +15894,7 @@ dependencies = [ [[package]] name = "sc-network-gossip" version = "0.51.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "ahash 0.8.12", "futures", @@ -15875,7 +15913,7 @@ dependencies = [ [[package]] name = "sc-network-light" version = "0.50.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "array-bytes 6.2.3", "async-channel 1.9.0", @@ -15896,7 +15934,7 @@ dependencies = [ [[package]] name = "sc-network-statement" version = "0.33.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "array-bytes 6.2.3", "async-channel 1.9.0", @@ -15916,7 +15954,7 @@ dependencies = [ [[package]] name = "sc-network-sync" version = "0.50.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "array-bytes 6.2.3", "async-channel 1.9.0", @@ -15951,7 +15989,7 @@ dependencies = [ [[package]] name = "sc-network-transactions" version = "0.50.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "array-bytes 6.2.3", "futures", @@ -15970,7 +16008,7 @@ dependencies = [ [[package]] name = "sc-network-types" version = "0.17.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "bs58", "bytes", @@ -15991,7 +16029,7 @@ dependencies = [ [[package]] name = "sc-offchain" version = "46.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "bytes", "fnv", @@ -16025,7 +16063,7 @@ dependencies = [ [[package]] name = "sc-proposer-metrics" version = "0.20.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "log", "substrate-prometheus-endpoint", @@ -16034,7 +16072,7 @@ dependencies = [ [[package]] name = "sc-rpc" version = "46.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "futures", "jsonrpsee", @@ -16066,7 +16104,7 @@ dependencies = [ [[package]] name = "sc-rpc-api" version = "0.50.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "jsonrpsee", "parity-scale-codec", @@ -16086,7 +16124,7 @@ dependencies = [ [[package]] name = "sc-rpc-server" version = "23.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "dyn-clone", "forwarded-header-value", @@ -16110,7 +16148,7 @@ dependencies = [ [[package]] name = "sc-rpc-spec-v2" version = "0.51.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "array-bytes 6.2.3", "futures", @@ -16143,13 +16181,13 @@ dependencies = [ [[package]] name = "sc-runtime-utilities" version = "0.3.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "parity-scale-codec", "sc-executor", "sc-executor-common", "sp-core", - "sp-crypto-hashing 0.1.0 (git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38)", "sp-state-machine", "sp-wasm-interface", "thiserror 1.0.69", @@ -16158,7 +16196,7 @@ dependencies = [ [[package]] name = "sc-service" version = "0.52.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "async-trait", "directories", @@ -16222,7 +16260,7 @@ dependencies = [ [[package]] name = "sc-state-db" version = "0.39.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "log", "parity-scale-codec", @@ -16233,7 +16271,7 @@ dependencies = [ [[package]] name = "sc-statement-store" version = "22.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "log", "parity-db", @@ -16252,7 +16290,7 @@ dependencies = [ [[package]] name = "sc-storage-monitor" version = "0.25.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "clap", "fs4", @@ -16265,7 +16303,7 @@ dependencies = [ [[package]] name = "sc-sync-state-rpc" version = "0.51.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "jsonrpsee", "parity-scale-codec", @@ -16284,7 +16322,7 @@ dependencies = [ [[package]] name = "sc-sysinfo" version = "43.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "derive_more 0.99.20", "futures", @@ -16297,14 +16335,14 @@ dependencies = [ "serde", "serde_json", "sp-core", - "sp-crypto-hashing 0.1.0 (git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38)", "sp-io", ] [[package]] name = "sc-telemetry" version = "29.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "chrono", "futures", @@ -16323,7 +16361,7 @@ dependencies = [ [[package]] name = "sc-tracing" version = "40.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "chrono", "console", @@ -16345,13 +16383,13 @@ dependencies = [ "thiserror 1.0.69", "tracing", "tracing-log", - "tracing-subscriber 0.3.20", + "tracing-subscriber 0.3.19", ] [[package]] name = "sc-tracing-proc-macro" version = "11.1.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "proc-macro-crate 3.4.0", "proc-macro2", @@ -16362,7 +16400,7 @@ dependencies = [ [[package]] name = "sc-transaction-pool" version = "40.1.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "async-trait", "futures", @@ -16379,7 +16417,7 @@ dependencies = [ "sp-api", "sp-blockchain", "sp-core", - "sp-crypto-hashing 0.1.0 (git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38)", "sp-runtime", "sp-tracing", "sp-transaction-pool", @@ -16393,7 +16431,7 @@ dependencies = [ [[package]] name = "sc-transaction-pool-api" version = "40.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "async-trait", "futures", @@ -16410,7 +16448,7 @@ dependencies = [ [[package]] name = "sc-utils" version = "19.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "async-channel 1.9.0", "futures", @@ -17166,7 +17204,7 @@ checksum = "826167069c09b99d56f31e9ae5c99049e932a98c9dc2dac47645b08dbbf76ba7" [[package]] name = "slot-range-helper" version = "18.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "enumn", "parity-scale-codec", @@ -17450,7 +17488,7 @@ dependencies = [ [[package]] name = "snowbridge-core" version = "0.14.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "bp-relayers", "frame-support", @@ -17545,7 +17583,7 @@ dependencies = [ [[package]] name = "sp-api" version = "37.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "docify", "hash-db", @@ -17567,7 +17605,7 @@ dependencies = [ [[package]] name = "sp-api-proc-macro" version = "23.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "Inflector", "blake2 0.10.6", @@ -17581,7 +17619,7 @@ dependencies = [ [[package]] name = "sp-application-crypto" version = "41.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "parity-scale-codec", "scale-info", @@ -17593,7 +17631,7 @@ dependencies = [ [[package]] name = "sp-arithmetic" version = "27.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "docify", "integer-sqrt", @@ -17607,7 +17645,7 @@ dependencies = [ [[package]] name = "sp-authority-discovery" version = "37.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "parity-scale-codec", "scale-info", @@ -17619,7 +17657,7 @@ dependencies = [ [[package]] name = "sp-block-builder" version = "37.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "sp-api", "sp-inherents", @@ -17629,7 +17667,7 @@ dependencies = [ [[package]] name = "sp-blockchain" version = "40.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "futures", "parity-scale-codec", @@ -17648,7 +17686,7 @@ dependencies = [ [[package]] name = "sp-consensus" version = "0.43.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "async-trait", "futures", @@ -17662,7 +17700,7 @@ dependencies = [ [[package]] name = "sp-consensus-aura" version = "0.43.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "async-trait", "parity-scale-codec", @@ -17678,7 +17716,7 @@ dependencies = [ [[package]] name = "sp-consensus-babe" version = "0.43.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "async-trait", "parity-scale-codec", @@ -17696,7 +17734,7 @@ dependencies = [ [[package]] name = "sp-consensus-beefy" version = "25.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "parity-scale-codec", "scale-info", @@ -17704,7 +17742,7 @@ dependencies = [ "sp-api", "sp-application-crypto", "sp-core", - "sp-crypto-hashing 0.1.0 (git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38)", "sp-io", "sp-keystore", "sp-mmr-primitives", @@ -17716,7 +17754,7 @@ dependencies = [ [[package]] name = "sp-consensus-grandpa" version = "24.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "finality-grandpa", "log", @@ -17733,7 +17771,7 @@ dependencies = [ [[package]] name = "sp-consensus-slots" version = "0.43.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "parity-scale-codec", "scale-info", @@ -17744,7 +17782,7 @@ dependencies = [ [[package]] name = "sp-core" version = "37.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "ark-vrf", "array-bytes 6.2.3", @@ -17775,7 +17813,7 @@ dependencies = [ "secrecy 0.8.0", "serde", "sha2 0.10.9", - "sp-crypto-hashing 0.1.0 (git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38)", "sp-debug-derive", "sp-externalities", "sp-runtime-interface", @@ -17792,7 +17830,7 @@ dependencies = [ [[package]] name = "sp-crypto-ec-utils" version = "0.16.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "ark-bls12-377", "ark-bls12-377-ext", @@ -17826,7 +17864,7 @@ dependencies = [ [[package]] name = "sp-crypto-hashing" version = "0.1.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "blake2b_simd", "byteorder", @@ -17839,17 +17877,17 @@ dependencies = [ [[package]] name = "sp-crypto-hashing-proc-macro" version = "0.1.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "quote", - "sp-crypto-hashing 0.1.0 (git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38)", "syn 2.0.106", ] [[package]] name = "sp-database" version = "10.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "kvdb", "parking_lot 0.12.5", @@ -17858,7 +17896,7 @@ dependencies = [ [[package]] name = "sp-debug-derive" version = "14.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "proc-macro2", "quote", @@ -17868,7 +17906,7 @@ dependencies = [ [[package]] name = "sp-externalities" version = "0.30.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "environmental", "parity-scale-codec", @@ -17878,7 +17916,7 @@ dependencies = [ [[package]] name = "sp-genesis-builder" version = "0.18.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "parity-scale-codec", "scale-info", @@ -17890,7 +17928,7 @@ dependencies = [ [[package]] name = "sp-inherents" version = "37.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "async-trait", "impl-trait-for-tuples", @@ -17903,7 +17941,7 @@ dependencies = [ [[package]] name = "sp-io" version = "41.0.1" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "bytes", "docify", @@ -17915,7 +17953,7 @@ dependencies = [ "rustversion", "secp256k1 0.28.2", "sp-core", - "sp-crypto-hashing 0.1.0 (git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38)", "sp-externalities", "sp-keystore", "sp-runtime-interface", @@ -17929,7 +17967,7 @@ dependencies = [ [[package]] name = "sp-keyring" version = "42.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "sp-core", "sp-runtime", @@ -17939,7 +17977,7 @@ dependencies = [ [[package]] name = "sp-keystore" version = "0.43.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "parity-scale-codec", "parking_lot 0.12.5", @@ -17950,7 +17988,7 @@ dependencies = [ [[package]] name = "sp-maybe-compressed-blob" version = "11.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "thiserror 1.0.69", "zstd 0.12.4", @@ -17959,7 +17997,7 @@ dependencies = [ [[package]] name = "sp-metadata-ir" version = "0.11.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "frame-metadata 23.0.0", "parity-scale-codec", @@ -17969,7 +18007,7 @@ dependencies = [ [[package]] name = "sp-mixnet" version = "0.15.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "parity-scale-codec", "scale-info", @@ -17980,7 +18018,7 @@ dependencies = [ [[package]] name = "sp-mmr-primitives" version = "37.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "log", "parity-scale-codec", @@ -17997,7 +18035,7 @@ dependencies = [ [[package]] name = "sp-npos-elections" version = "37.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "parity-scale-codec", "scale-info", @@ -18010,7 +18048,7 @@ dependencies = [ [[package]] name = "sp-offchain" version = "37.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "sp-api", "sp-core", @@ -18020,7 +18058,7 @@ dependencies = [ [[package]] name = "sp-panic-handler" version = "13.0.2" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "backtrace", "regex", @@ -18029,7 +18067,7 @@ dependencies = [ [[package]] name = "sp-rpc" version = "35.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "rustc-hash 1.1.0", "serde", @@ -18039,7 +18077,7 @@ dependencies = [ [[package]] name = "sp-runtime" version = "42.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "binary-merkle-tree", "docify", @@ -18068,7 +18106,7 @@ dependencies = [ [[package]] name = "sp-runtime-interface" version = "30.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "bytes", "impl-trait-for-tuples", @@ -18087,7 +18125,7 @@ dependencies = [ [[package]] name = "sp-runtime-interface-proc-macro" version = "19.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "Inflector", "expander", @@ -18100,7 +18138,7 @@ dependencies = [ [[package]] name = "sp-session" version = "39.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "parity-scale-codec", "scale-info", @@ -18114,7 +18152,7 @@ dependencies = [ [[package]] name = "sp-staking" version = "39.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "impl-trait-for-tuples", "parity-scale-codec", @@ -18127,7 +18165,7 @@ dependencies = [ [[package]] name = "sp-state-machine" version = "0.46.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "hash-db", "log", @@ -18147,7 +18185,7 @@ dependencies = [ [[package]] name = "sp-statement-store" version = "21.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "aes-gcm", "curve25519-dalek", @@ -18160,7 +18198,7 @@ dependencies = [ "sp-api", "sp-application-crypto", "sp-core", - "sp-crypto-hashing 0.1.0 (git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7)", + "sp-crypto-hashing 0.1.0 (git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38)", "sp-externalities", "sp-runtime", "sp-runtime-interface", @@ -18171,12 +18209,12 @@ dependencies = [ [[package]] name = "sp-std" version = "14.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" [[package]] name = "sp-storage" version = "22.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "impl-serde", "parity-scale-codec", @@ -18188,7 +18226,7 @@ dependencies = [ [[package]] name = "sp-timestamp" version = "37.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "async-trait", "parity-scale-codec", @@ -18200,18 +18238,18 @@ dependencies = [ [[package]] name = "sp-tracing" version = "17.1.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "parity-scale-codec", "tracing", "tracing-core", - "tracing-subscriber 0.3.20", + "tracing-subscriber 0.3.19", ] [[package]] name = "sp-transaction-pool" version = "37.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "sp-api", "sp-runtime", @@ -18220,7 +18258,7 @@ dependencies = [ [[package]] name = "sp-transaction-storage-proof" version = "37.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "async-trait", "parity-scale-codec", @@ -18234,7 +18272,7 @@ dependencies = [ [[package]] name = "sp-trie" version = "40.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "ahash 0.8.12", "foldhash 0.1.5", @@ -18259,7 +18297,7 @@ dependencies = [ [[package]] name = "sp-version" version = "40.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "impl-serde", "parity-scale-codec", @@ -18276,7 +18314,7 @@ dependencies = [ [[package]] name = "sp-version-proc-macro" version = "15.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "parity-scale-codec", "proc-macro-warning", @@ -18288,7 +18326,7 @@ dependencies = [ [[package]] name = "sp-wasm-interface" version = "22.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "anyhow", "impl-trait-for-tuples", @@ -18300,7 +18338,7 @@ dependencies = [ [[package]] name = "sp-weights" version = "32.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "bounded-collections 0.2.4", "parity-scale-codec", @@ -18474,7 +18512,7 @@ checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" [[package]] name = "staging-chain-spec-builder" version = "12.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "clap", "docify", @@ -18487,7 +18525,7 @@ dependencies = [ [[package]] name = "staging-node-inspect" version = "0.29.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "clap", "parity-scale-codec", @@ -18505,7 +18543,7 @@ dependencies = [ [[package]] name = "staging-parachain-info" version = "0.21.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "cumulus-primitives-core", "frame-support", @@ -18518,7 +18556,7 @@ dependencies = [ [[package]] name = "staging-xcm" version = "17.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "array-bytes 6.2.3", "bounded-collections 0.2.4", @@ -18539,7 +18577,7 @@ dependencies = [ [[package]] name = "staging-xcm-builder" version = "21.1.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "environmental", "frame-support", @@ -18563,7 +18601,7 @@ dependencies = [ [[package]] name = "staging-xcm-executor" version = "20.0.1" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "environmental", "frame-benchmarking", @@ -18617,7 +18655,7 @@ dependencies = [ [[package]] name = "stc-shield" version = "0.1.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "anyhow", "async-trait", @@ -18638,7 +18676,7 @@ dependencies = [ [[package]] name = "stp-shield" version = "0.1.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "parity-scale-codec", "scale-info", @@ -18708,7 +18746,7 @@ dependencies = [ [[package]] name = "substrate-bip39" version = "0.6.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "hmac 0.12.1", "pbkdf2 0.12.2", @@ -18733,7 +18771,7 @@ dependencies = [ [[package]] name = "substrate-build-script-utils" version = "11.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" [[package]] name = "substrate-fixed" @@ -18749,7 +18787,7 @@ dependencies = [ [[package]] name = "substrate-frame-rpc-system" version = "45.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "docify", "frame-system-rpc-runtime-api", @@ -18769,7 +18807,7 @@ dependencies = [ [[package]] name = "substrate-prometheus-endpoint" version = "0.17.6" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "http-body-util", "hyper 1.7.0", @@ -18783,7 +18821,7 @@ dependencies = [ [[package]] name = "substrate-state-trie-migration-rpc" version = "44.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "jsonrpsee", "parity-scale-codec", @@ -18810,7 +18848,7 @@ dependencies = [ [[package]] name = "substrate-wasm-builder" version = "27.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "array-bytes 6.2.3", "build-helper", @@ -19399,7 +19437,7 @@ dependencies = [ "getrandom 0.3.3", "once_cell", "rustix 1.1.2", - "windows-sys 0.59.0", + "windows-sys 0.61.2", ] [[package]] @@ -19919,7 +19957,7 @@ dependencies = [ [[package]] name = "tracing-gum" version = "20.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "coarsetime", "polkadot-primitives", @@ -19930,7 +19968,7 @@ dependencies = [ [[package]] name = "tracing-gum-proc-macro" version = "5.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "expander", "proc-macro-crate 3.4.0", @@ -19961,15 +19999,15 @@ dependencies = [ [[package]] name = "tracing-subscriber" -version = "0.3.20" +version = "0.3.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2054a14f5307d601f88daf0553e1cbf472acc4f2c51afab632431cdcd72124d5" +checksum = "e8189decb5ac0fa7bc8b96b7cb9b2701d60d48805aca84a238004d665fcc4008" dependencies = [ "matchers", "nu-ansi-term", "once_cell", "parking_lot 0.12.5", - "regex-automata", + "regex", "sharded-slab", "smallvec", "thread_local", @@ -20935,7 +20973,7 @@ checksum = "5f20c57d8d7db6d3b86154206ae5d8fba62dd39573114de97c2cb0578251f8e1" [[package]] name = "westend-runtime" version = "24.0.1" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "binary-merkle-tree", "bitvec", @@ -21042,7 +21080,7 @@ dependencies = [ [[package]] name = "westend-runtime-constants" version = "21.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "frame-support", "polkadot-primitives", @@ -21093,7 +21131,7 @@ version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" dependencies = [ - "windows-sys 0.48.0", + "windows-sys 0.61.2", ] [[package]] @@ -21692,7 +21730,7 @@ dependencies = [ [[package]] name = "xcm-procedural" version = "11.0.2" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "Inflector", "proc-macro2", @@ -21703,7 +21741,7 @@ dependencies = [ [[package]] name = "xcm-runtime-apis" version = "0.8.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "frame-support", "parity-scale-codec", @@ -21717,7 +21755,7 @@ dependencies = [ [[package]] name = "xcm-simulator" version = "21.0.0" -source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=7cc54bf2d50ae3921d718736dfeb0de9468539c7#7cc54bf2d50ae3921d718736dfeb0de9468539c7" +source = "git+https://github.com/RaoFoundation/polkadot-sdk.git?rev=a08c7b0f0b6429910a953cbbaec4b4138294fa38#a08c7b0f0b6429910a953cbbaec4b4138294fa38" dependencies = [ "frame-support", "frame-system", diff --git a/Cargo.toml b/Cargo.toml index 2de9093cbb..ecd5b0997e 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -79,8 +79,8 @@ subtensor-runtime-common = { default-features = false, path = "common" } subtensor-swap-interface = { default-features = false, path = "primitives/swap-interface" } subtensor-transaction-fee = { default-features = false, path = "pallets/transaction-fee" } subtensor-chain-extensions = { default-features = false, path = "chain-extensions" } -stp-shield = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7", default-features = false } -stc-shield = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7", default-features = false } +stp-shield = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38", default-features = false } +stc-shield = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38", default-features = false } ed25519-dalek = { version = "2.1.0", default-features = false } async-trait = "0.1" @@ -108,7 +108,9 @@ serde_with = { version = "3.14.0", default-features = false } smallvec = "1.13.2" tracing = "0.1" tracing-log = "0.2" -tracing-subscriber = { version = "=0.3.20" } +# Keep this pinned: 0.3.20 escapes ANSI sequences embedded by Substrate's +# informant, causing color codes such as `\x1b[37m` to be printed literally. +tracing-subscriber = { version = "=0.3.19" } litep2p = { git = "https://github.com/paritytech/litep2p", tag = "v0.7.0", default-features = false } syn = { version = "2.0.106", default-features = false } quote = { version = "1", default-features = false } @@ -136,122 +138,122 @@ num_enum = { version = "0.7.4", default-features = false } environmental = { version = "1.1.4", default-features = false } tokio = { version = "1.38", default-features = false } -frame = { package = "polkadot-sdk-frame", git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7", default-features = false } -frame-support = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7", default-features = false } -frame-system = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7", default-features = false } -frame-executive = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7", default-features = false } -frame-system-rpc-runtime-api = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7", default-features = false } -frame-system-benchmarking = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7", default-features = false } -frame-try-runtime = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7", default-features = false } -frame-benchmarking = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7", default-features = false } -frame-benchmarking-cli = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7", default-features = false } -frame-metadata-hash-extension = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7", default-features = false } +frame = { package = "polkadot-sdk-frame", git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38", default-features = false } +frame-support = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38", default-features = false } +frame-system = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38", default-features = false } +frame-executive = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38", default-features = false } +frame-system-rpc-runtime-api = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38", default-features = false } +frame-system-benchmarking = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38", default-features = false } +frame-try-runtime = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38", default-features = false } +frame-benchmarking = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38", default-features = false } +frame-benchmarking-cli = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38", default-features = false } +frame-metadata-hash-extension = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38", default-features = false } frame-metadata = { version = "23.0.0", default-features = false } pallet-subtensor-proxy = { path = "pallets/proxy", default-features = false } pallet-subtensor-utility = { path = "pallets/utility", default-features = false } -pallet-babe = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7", default-features = false } -pallet-aura = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7", default-features = false } -pallet-balances = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7", default-features = false } -pallet-grandpa = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7", default-features = false } -pallet-insecure-randomness-collective-flip = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7", default-features = false } -pallet-multisig = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7", default-features = false } -pallet-preimage = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7", default-features = false } -pallet-safe-mode = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7", default-features = false } -pallet-scheduler = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7", default-features = false } -pallet-sudo = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7", default-features = false } -pallet-timestamp = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7", default-features = false } -pallet-transaction-payment = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7", default-features = false } -pallet-transaction-payment-rpc = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7", default-features = false } -pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7", default-features = false } -pallet-root-testing = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7", default-features = false } -pallet-contracts = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7", default-features = false } +pallet-babe = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38", default-features = false } +pallet-aura = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38", default-features = false } +pallet-balances = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38", default-features = false } +pallet-grandpa = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38", default-features = false } +pallet-insecure-randomness-collective-flip = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38", default-features = false } +pallet-multisig = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38", default-features = false } +pallet-preimage = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38", default-features = false } +pallet-safe-mode = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38", default-features = false } +pallet-scheduler = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38", default-features = false } +pallet-sudo = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38", default-features = false } +pallet-timestamp = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38", default-features = false } +pallet-transaction-payment = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38", default-features = false } +pallet-transaction-payment-rpc = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38", default-features = false } +pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38", default-features = false } +pallet-root-testing = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38", default-features = false } +pallet-contracts = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38", default-features = false } # NPoS -frame-election-provider-support = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7", default-features = false } -pallet-authority-discovery = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7", default-features = false } -pallet-authorship = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7", default-features = false } -pallet-bags-list = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7", default-features = false } -pallet-election-provider-multi-phase = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7", default-features = false } -pallet-fast-unstake = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7", default-features = false } -pallet-nomination-pools = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7", default-features = false } -pallet-nomination-pools-runtime-api = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7", default-features = false } -pallet-session = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7", default-features = false } -pallet-staking = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7", default-features = false } -pallet-staking-runtime-api = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7", default-features = false } -pallet-staking-reward-fn = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7", default-features = false } -pallet-staking-reward-curve = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7", default-features = false } -pallet-offences = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7", default-features = false } +frame-election-provider-support = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38", default-features = false } +pallet-authority-discovery = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38", default-features = false } +pallet-authorship = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38", default-features = false } +pallet-bags-list = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38", default-features = false } +pallet-election-provider-multi-phase = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38", default-features = false } +pallet-fast-unstake = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38", default-features = false } +pallet-nomination-pools = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38", default-features = false } +pallet-nomination-pools-runtime-api = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38", default-features = false } +pallet-session = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38", default-features = false } +pallet-staking = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38", default-features = false } +pallet-staking-runtime-api = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38", default-features = false } +pallet-staking-reward-fn = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38", default-features = false } +pallet-staking-reward-curve = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38", default-features = false } +pallet-offences = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38", default-features = false } -sc-basic-authorship = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7", default-features = false } -sc-cli = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7", default-features = false } -sc-client-api = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7", default-features = false } -sc-consensus = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7", default-features = false } -sc-consensus-aura = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7", default-features = false } -sc-consensus-babe = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7", default-features = false } -sc-consensus-babe-rpc = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7", default-features = false } -sc-consensus-grandpa = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7", default-features = false } -sc-consensus-grandpa-rpc = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7", default-features = false } -sc-consensus-epochs = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7", default-features = false } -sc-chain-spec-derive = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7", default-features = false } -sc-chain-spec = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7", default-features = false } -sc-consensus-slots = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7", default-features = false } -sc-executor = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7", default-features = false } -sc-keystore = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7", default-features = false } -sc-network = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7", default-features = false } -sc-offchain = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7", default-features = false } -sc-rpc = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7", default-features = false } -sc-rpc-api = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7", default-features = false } -sc-service = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7", default-features = false } -sc-telemetry = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7", default-features = false } -sc-transaction-pool = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7", default-features = false } -sc-transaction-pool-api = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7", default-features = false } -sc-consensus-manual-seal = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7", default-features = false } -sc-network-sync = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7", default-features = false } +sc-basic-authorship = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38", default-features = false } +sc-cli = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38", default-features = false } +sc-client-api = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38", default-features = false } +sc-consensus = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38", default-features = false } +sc-consensus-aura = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38", default-features = false } +sc-consensus-babe = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38", default-features = false } +sc-consensus-babe-rpc = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38", default-features = false } +sc-consensus-grandpa = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38", default-features = false } +sc-consensus-grandpa-rpc = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38", default-features = false } +sc-consensus-epochs = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38", default-features = false } +sc-chain-spec-derive = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38", default-features = false } +sc-chain-spec = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38", default-features = false } +sc-consensus-slots = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38", default-features = false } +sc-executor = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38", default-features = false } +sc-keystore = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38", default-features = false } +sc-network = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38", default-features = false } +sc-offchain = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38", default-features = false } +sc-rpc = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38", default-features = false } +sc-rpc-api = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38", default-features = false } +sc-service = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38", default-features = false } +sc-telemetry = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38", default-features = false } +sc-transaction-pool = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38", default-features = false } +sc-transaction-pool-api = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38", default-features = false } +sc-consensus-manual-seal = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38", default-features = false } +sc-network-sync = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38", default-features = false } -sp-api = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7", default-features = false } -sp-authority-discovery = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7", default-features = false } -sp-arithmetic = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7", default-features = false } -sp-block-builder = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7", default-features = false } -sp-blockchain = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7", default-features = false } -sp-staking = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7", default-features = false } -sp-consensus = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7", default-features = false } -sp-consensus-aura = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7", default-features = false } -sp-consensus-babe = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7", default-features = false } -sp-consensus-slots = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7", default-features = false } -sp-npos-elections = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7", default-features = false } -sp-consensus-grandpa = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7", default-features = false } -sp-genesis-builder = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7", default-features = false } -sp-core = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7", default-features = false } -sp-inherents = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7", default-features = false } -sp-io = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7", default-features = false } -sp-keyring = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7", default-features = false } -sp-offchain = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7", default-features = false } -sp-rpc = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7", default-features = false } -sp-runtime = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7", default-features = false } -sp-session = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7", default-features = false } -sp-std = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7", default-features = false } -sp-storage = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7", default-features = false } -sp-timestamp = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7", default-features = false } -sp-tracing = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7", default-features = false } -sp-transaction-pool = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7", default-features = false } -sp-version = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7", default-features = false } -sp-weights = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7", default-features = false } -sp-crypto-hashing = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7", default-features = false } -sp-application-crypto = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7", default-features = false } -sp-debug-derive = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7", default-features = false } -sp-externalities = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7", default-features = false } -sp-runtime-interface = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7", default-features = false } +sp-api = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38", default-features = false } +sp-authority-discovery = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38", default-features = false } +sp-arithmetic = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38", default-features = false } +sp-block-builder = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38", default-features = false } +sp-blockchain = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38", default-features = false } +sp-staking = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38", default-features = false } +sp-consensus = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38", default-features = false } +sp-consensus-aura = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38", default-features = false } +sp-consensus-babe = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38", default-features = false } +sp-consensus-slots = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38", default-features = false } +sp-npos-elections = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38", default-features = false } +sp-consensus-grandpa = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38", default-features = false } +sp-genesis-builder = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38", default-features = false } +sp-core = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38", default-features = false } +sp-inherents = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38", default-features = false } +sp-io = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38", default-features = false } +sp-keyring = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38", default-features = false } +sp-offchain = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38", default-features = false } +sp-rpc = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38", default-features = false } +sp-runtime = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38", default-features = false } +sp-session = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38", default-features = false } +sp-std = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38", default-features = false } +sp-storage = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38", default-features = false } +sp-timestamp = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38", default-features = false } +sp-tracing = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38", default-features = false } +sp-transaction-pool = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38", default-features = false } +sp-version = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38", default-features = false } +sp-weights = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38", default-features = false } +sp-crypto-hashing = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38", default-features = false } +sp-application-crypto = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38", default-features = false } +sp-debug-derive = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38", default-features = false } +sp-externalities = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38", default-features = false } +sp-runtime-interface = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38", default-features = false } -substrate-build-script-utils = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7", default-features = false } +substrate-build-script-utils = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38", default-features = false } substrate-fixed = { git = "https://github.com/encointer/substrate-fixed.git", tag = "v0.6.0", default-features = false } -substrate-frame-rpc-system = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7", default-features = false } -substrate-wasm-builder = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7", default-features = false } -substrate-prometheus-endpoint = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7", default-features = false } +substrate-frame-rpc-system = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38", default-features = false } +substrate-wasm-builder = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38", default-features = false } +substrate-prometheus-endpoint = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38", default-features = false } -polkadot-sdk = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7", default-features = false } +polkadot-sdk = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38", default-features = false } -runtime-common = { package = "polkadot-runtime-common", git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7", default-features = false } +runtime-common = { package = "polkadot-runtime-common", git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38", default-features = false } # Frontier # Vendored via `git subtree` from RaoFoundation/frontier @@ -290,8 +292,8 @@ pallet-hotfix-sufficients = { path = "vendor/frontier/frame/hotfix-sufficients", #DRAND pallet-drand = { path = "pallets/drand", default-features = false } -sp-crypto-ec-utils = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7", default-features = false } -sp-keystore = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7", default-features = false } +sp-crypto-ec-utils = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38", default-features = false } +sp-keystore = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38", default-features = false } w3f-bls = { path = "vendor/w3f-bls", default-features = false } ark-crypto-primitives = { version = "0.4.0", default-features = false } ark-scale = { version = "0.0.11", default-features = false } @@ -342,104 +344,104 @@ zstd-safe = { git = "https://github.com/gztensor/zstd-safe", rev = "42cc34ef6abe # build. Redirect the frontier-side polkadot-sdk crates to the RaoFoundation # remote at the same rev so the whole graph resolves to a single copy. [patch."https://github.com/opentensor/polkadot-sdk"] -binary-merkle-tree = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7" } -cumulus-primitives-core = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7" } -cumulus-primitives-proof-size-hostfunction = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7" } -cumulus-primitives-storage-weight-reclaim = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7" } -fork-tree = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7" } -frame-benchmarking = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7" } -frame-support = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7" } -frame-support-procedural = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7" } -frame-support-procedural-tools = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7" } -frame-support-procedural-tools-derive = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7" } -frame-system = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7" } -polkadot-core-primitives = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7" } -polkadot-parachain-primitives = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7" } -polkadot-primitives = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7" } -sc-allocator = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7" } -sc-block-builder = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7" } -sc-chain-spec = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7" } -sc-chain-spec-derive = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7" } -sc-client-api = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7" } -sc-client-db = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7" } -sc-consensus = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7" } -sc-consensus-aura = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7" } -sc-consensus-babe = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7" } -sc-consensus-epochs = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7" } -sc-consensus-slots = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7" } -sc-executor = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7" } -sc-executor-common = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7" } -sc-executor-polkavm = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7" } -sc-executor-wasmtime = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7" } -sc-informant = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7" } -sc-keystore = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7" } -sc-mixnet = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7" } -sc-network = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7" } -sc-network-common = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7" } -sc-network-light = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7" } -sc-network-sync = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7" } -sc-network-transactions = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7" } -sc-network-types = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7" } -sc-rpc = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7" } -sc-rpc-api = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7" } -sc-rpc-server = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7" } -sc-rpc-spec-v2 = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7" } -sc-service = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7" } -sc-state-db = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7" } -sc-sysinfo = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7" } -sc-telemetry = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7" } -sc-tracing = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7" } -sc-tracing-proc-macro = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7" } -sc-transaction-pool = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7" } -sc-transaction-pool-api = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7" } -sc-utils = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7" } -sp-api = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7" } -sp-api-proc-macro = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7" } -sp-application-crypto = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7" } -sp-arithmetic = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7" } -sp-authority-discovery = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7" } -sp-block-builder = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7" } -sp-blockchain = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7" } -sp-consensus = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7" } -sp-consensus-aura = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7" } -sp-consensus-babe = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7" } -sp-consensus-grandpa = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7" } -sp-consensus-slots = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7" } -sp-core = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7" } -sp-crypto-hashing = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7" } -sp-crypto-hashing-proc-macro = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7" } -sp-database = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7" } -sp-debug-derive = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7" } -sp-externalities = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7" } -sp-genesis-builder = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7" } -sp-inherents = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7" } -sp-io = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7" } -sp-keystore = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7" } -sp-maybe-compressed-blob = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7" } -sp-metadata-ir = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7" } -sp-mixnet = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7" } -sp-offchain = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7" } -sp-panic-handler = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7" } -sp-rpc = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7" } -sp-runtime = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7" } -sp-runtime-interface = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7" } -sp-runtime-interface-proc-macro = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7" } -sp-session = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7" } -sp-staking = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7" } -sp-state-machine = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7" } -sp-statement-store = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7" } -sp-std = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7" } -sp-storage = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7" } -sp-timestamp = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7" } -sp-tracing = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7" } -sp-transaction-pool = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7" } -sp-transaction-storage-proof = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7" } -sp-trie = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7" } -sp-version = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7" } -sp-version-proc-macro = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7" } -sp-wasm-interface = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7" } -sp-weights = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7" } -staging-xcm = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7" } -substrate-bip39 = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7" } -substrate-prometheus-endpoint = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7" } -xcm-procedural = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7" } +binary-merkle-tree = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38" } +cumulus-primitives-core = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38" } +cumulus-primitives-proof-size-hostfunction = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38" } +cumulus-primitives-storage-weight-reclaim = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38" } +fork-tree = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38" } +frame-benchmarking = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38" } +frame-support = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38" } +frame-support-procedural = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38" } +frame-support-procedural-tools = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38" } +frame-support-procedural-tools-derive = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38" } +frame-system = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38" } +polkadot-core-primitives = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38" } +polkadot-parachain-primitives = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38" } +polkadot-primitives = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38" } +sc-allocator = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38" } +sc-block-builder = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38" } +sc-chain-spec = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38" } +sc-chain-spec-derive = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38" } +sc-client-api = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38" } +sc-client-db = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38" } +sc-consensus = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38" } +sc-consensus-aura = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38" } +sc-consensus-babe = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38" } +sc-consensus-epochs = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38" } +sc-consensus-slots = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38" } +sc-executor = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38" } +sc-executor-common = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38" } +sc-executor-polkavm = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38" } +sc-executor-wasmtime = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38" } +sc-informant = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38" } +sc-keystore = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38" } +sc-mixnet = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38" } +sc-network = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38" } +sc-network-common = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38" } +sc-network-light = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38" } +sc-network-sync = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38" } +sc-network-transactions = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38" } +sc-network-types = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38" } +sc-rpc = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38" } +sc-rpc-api = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38" } +sc-rpc-server = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38" } +sc-rpc-spec-v2 = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38" } +sc-service = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38" } +sc-state-db = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38" } +sc-sysinfo = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38" } +sc-telemetry = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38" } +sc-tracing = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38" } +sc-tracing-proc-macro = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38" } +sc-transaction-pool = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38" } +sc-transaction-pool-api = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38" } +sc-utils = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38" } +sp-api = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38" } +sp-api-proc-macro = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38" } +sp-application-crypto = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38" } +sp-arithmetic = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38" } +sp-authority-discovery = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38" } +sp-block-builder = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38" } +sp-blockchain = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38" } +sp-consensus = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38" } +sp-consensus-aura = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38" } +sp-consensus-babe = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38" } +sp-consensus-grandpa = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38" } +sp-consensus-slots = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38" } +sp-core = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38" } +sp-crypto-hashing = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38" } +sp-crypto-hashing-proc-macro = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38" } +sp-database = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38" } +sp-debug-derive = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38" } +sp-externalities = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38" } +sp-genesis-builder = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38" } +sp-inherents = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38" } +sp-io = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38" } +sp-keystore = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38" } +sp-maybe-compressed-blob = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38" } +sp-metadata-ir = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38" } +sp-mixnet = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38" } +sp-offchain = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38" } +sp-panic-handler = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38" } +sp-rpc = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38" } +sp-runtime = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38" } +sp-runtime-interface = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38" } +sp-runtime-interface-proc-macro = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38" } +sp-session = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38" } +sp-staking = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38" } +sp-state-machine = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38" } +sp-statement-store = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38" } +sp-std = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38" } +sp-storage = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38" } +sp-timestamp = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38" } +sp-tracing = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38" } +sp-transaction-pool = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38" } +sp-transaction-storage-proof = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38" } +sp-trie = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38" } +sp-version = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38" } +sp-version-proc-macro = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38" } +sp-wasm-interface = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38" } +sp-weights = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38" } +staging-xcm = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38" } +substrate-bip39 = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38" } +substrate-prometheus-endpoint = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38" } +xcm-procedural = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38" } diff --git a/chainspecs/plain_spec_testfinney.json b/chainspecs/plain_spec_testfinney.json index 1390fe92f2..3b141e5f59 100644 --- a/chainspecs/plain_spec_testfinney.json +++ b/chainspecs/plain_spec_testfinney.json @@ -6,7 +6,7 @@ "/dns/bootnode.test.chain.opentensor.ai/tcp/30333/p2p/12D3KooWPM4mLcKJGtyVtkggqdG84zWrd7Rij6PGQDoijh1X86Vr" ], "telemetryEndpoints": null, - "protocolId": "bittensor", + "protocolId": "bittensor-testnet", "properties": { "ss58Format": 42, "tokenDecimals": 9, diff --git a/chainspecs/raw_spec_testfinney.json b/chainspecs/raw_spec_testfinney.json index 08eabf415c..4d9305a156 100644 --- a/chainspecs/raw_spec_testfinney.json +++ b/chainspecs/raw_spec_testfinney.json @@ -6,7 +6,7 @@ "/dns/bootnode.test.chain.opentensor.ai/tcp/30333/p2p/12D3KooWPM4mLcKJGtyVtkggqdG84zWrd7Rij6PGQDoijh1X86Vr" ], "telemetryEndpoints": null, - "protocolId": "bittensor", + "protocolId": "bittensor-testnet", "properties": { "ss58Format": 42, "tokenDecimals": 9, diff --git a/docs/index.mdx b/docs/index.mdx index 820792b9ff..5f6a4dad5b 100644 --- a/docs/index.mdx +++ b/docs/index.mdx @@ -35,7 +35,7 @@ perform every user-facing operation on the chain. ## Install -Requires Python 3.10–3.13. Using [uv](https://docs.astral.sh/uv/): +Requires Python 3.10–3.14. Using [uv](https://docs.astral.sh/uv/): ```bash uv venv && source .venv/bin/activate diff --git a/docs/internals/release-process.mdx b/docs/internals/release-process.mdx index d7abc97483..94210c0ded 100644 --- a/docs/internals/release-process.mdx +++ b/docs/internals/release-process.mdx @@ -62,11 +62,13 @@ independent image builds run. ### The mainnet multisig ceremony -CI never upgrades mainnet directly. The train's final job submits a **multisig -proposal**: the CI key is one half of a 2-of-2 deployment multisig that holds -a `SudoUncheckedSetCode` proxy on the sudo key. The triumvirate then approves -the proposal 2-of-3 **out-of-band** — no GitHub credential can unilaterally -change the mainnet runtime. Until they sign, nothing happens on chain. +CI never upgrades mainnet directly. Before any on-chain action, the train +reserves the immutable `v` tag at the exact source commit. Its +final job then submits a **multisig proposal**: the CI key is one half of a +2-of-2 deployment multisig that holds a `SudoUncheckedSetCode` proxy on the +sudo key. The triumvirate then approves the proposal 2-of-3 **out-of-band** — +no GitHub credential can unilaterally change the mainnet runtime. Until they +sign, nothing happens on chain. For rehearsal, the `mainnet-clone` PR label spins up a live clone of mainnet running your runtime with a public endpoint @@ -74,9 +76,11 @@ running your runtime with a public endpoint ## The release watcher -`watch-mainnet-release.yml` polls mainnet every 10 minutes. When the on-chain -`spec_version` matches the `main` branch and no GitHub release exists for it -yet, it cuts the release train's artifacts: +`watch-mainnet-release.yml` polls mainnet every 10 minutes. When an upgrade +executes, it resolves the release-train artifact whose commit matches the +immutable tag and whose runtime hash matches the finalized on-chain `:code`. +It moves the protected `mainnet` mirror to that exact commit before cutting +the release: 1. **GitHub release** `v` 2. **Production Docker images** tagged `v` and `latest` @@ -89,12 +93,28 @@ yet, it cuts the release train's artifacts: This ordering means the release always reflects what is *actually running on mainnet*, not what was merged. +PyPI is the terminal state for stable Python publication. The watcher requires +the SDK wheel and source distribution plus the full `bittensor-core` Linux and +macOS wheel matrix and source distribution. Every file must carry a PEP 740 +attestation from this repository's mainnet release workflow. A failed or +partial upload is retried on the next watcher run even if the GitHub release +already exists or the release-train artifact has expired. Retries require the +release target, immutable tag, protected `mainnet` mirror, and finalized +runtime bytes to agree. The SDK's committed `X.Y.Z.dev0` version is stamped to +`X.Y.Z` for this build. The release train rejects a base SDK or core version +that already exists on PyPI before publishing release candidates. Releases +through v432 predate automated stable Python publication and are handled as +historical state. + The watcher explicitly dispatches `docker.yml` and `docker-localnet.yml` because releases created with the default `GITHUB_TOKEN` do not emit another workflow event. The production build publishes both the immutable release tag -and `:latest`. The localnet build publishes the immutable release tag in its -separate package; localnet `:latest` remains an alias for the current `:main` -branch image, while `:devnet` and `:testnet` follow their respective branches. +and `:latest`. Independently, every merge to `main` publishes the moving +production `:main` tag, so developers can prepare against merged features +before they reach mainnet without changing the deployed `:latest` image. The +localnet build publishes the immutable release tag in its separate package; +localnet `:latest` remains an alias for the current `:main` branch image, while +`:devnet` and `:testnet` follow their respective branches. ## Hotfixes diff --git a/docs/migration.mdx b/docs/migration.mdx index fdb293a7ca..9508b8ced0 100644 --- a/docs/migration.mdx +++ b/docs/migration.mdx @@ -36,7 +36,7 @@ equivalent. | SDK | `bittensor` 10.x | `bittensor` 11.x | | CLI | `bittensor-cli` 9.x (separate package) | included in `bittensor` | | Wallet | `bittensor_wallet` (separate package) | included: `bittensor.wallet` | -| Python | 3.10+ | 3.10–3.13 | +| Python | 3.10+ | 3.10–3.14 | ```bash uv pip install bittensor # library + btcli, one package @@ -70,18 +70,14 @@ pip install --force-reinstall --no-deps bittensor While a stale `bittensor-cli` is still installed, the v11 `btcli` prints a warning with this fix on every run. -Two version pitfalls that fail *silently*: +One version pitfall fails *silently*: -- **Python 3.14**: v10 allowed it, v11 supports 3.10–3.13. On a 3.14 - interpreter `pip install -U bittensor` quietly keeps 10.x (pip picks the - newest release whose `requires-python` matches). If `btcli --version` - still says 9.x/10.x after upgrading, check `python --version` first. - **Pinned requirements**: anything pinning `bittensor<11` or `bittensor~=10` keeps working against v10 untouched — the new package changes nothing until you move the pin. Platform support: wheels ship for Linux (x86_64, aarch64) and macOS -(Apple Silicon and Intel), Python 3.10–3.13 — the same coverage as the old +(Apple Silicon and Intel), Python 3.10–3.14 — the same coverage as the old stack. Windows is unsupported natively (as before); use WSL. On any other platform pip falls back to a source build, which requires a Rust toolchain. diff --git a/docs/query/blocks-until-next-epoch.mdx b/docs/query/blocks-until-next-epoch.mdx index c551a6397f..8402c8c392 100644 --- a/docs/query/blocks-until-next-epoch.mdx +++ b/docs/query/blocks-until-next-epoch.mdx @@ -45,6 +45,6 @@ Async is the same surface awaited: `async with bt.Subtensor() as client:`. ## On-chain implementation -- Runtime API [`SubnetInfoRuntimeApi.get_next_epoch_start_block`](/code/pallets/subtensor/src/coinbase/run_coinbase.rs#L1183-L1197) +- Runtime API [`SubnetInfoRuntimeApi.get_next_epoch_start_block`](/code/pallets/subtensor/src/coinbase/run_coinbase.rs#L1196-L1210) Every file is browsable under [/code](/code) exactly as built into the runtime. diff --git a/docs/query/epoch-status.mdx b/docs/query/epoch-status.mdx index 74ae5c58e2..3461ed694a 100644 --- a/docs/query/epoch-status.mdx +++ b/docs/query/epoch-status.mdx @@ -50,6 +50,6 @@ Async is the same surface awaited: `async with bt.Subtensor() as client:`. - Storage [`SubtensorModule.BlocksSinceLastStep`](/code/pallets/subtensor/src/lib.rs#L2094) - Storage [`SubtensorModule.PendingEpochAt`](/code/pallets/subtensor/src/lib.rs#L1983) - Storage [`SubtensorModule.SubnetEpochIndex`](/code/pallets/subtensor/src/lib.rs#L1989) -- Runtime API [`SubnetInfoRuntimeApi.get_next_epoch_start_block`](/code/pallets/subtensor/src/coinbase/run_coinbase.rs#L1183-L1197) +- Runtime API [`SubnetInfoRuntimeApi.get_next_epoch_start_block`](/code/pallets/subtensor/src/coinbase/run_coinbase.rs#L1196-L1210) Every file is browsable under [/code](/code) exactly as built into the runtime. diff --git a/docs/query/next-epoch-start-block.mdx b/docs/query/next-epoch-start-block.mdx index 47189a56a8..245eba3002 100644 --- a/docs/query/next-epoch-start-block.mdx +++ b/docs/query/next-epoch-start-block.mdx @@ -45,6 +45,6 @@ Async is the same surface awaited: `async with bt.Subtensor() as client:`. ## On-chain implementation -- Runtime API [`SubnetInfoRuntimeApi.get_next_epoch_start_block`](/code/pallets/subtensor/src/coinbase/run_coinbase.rs#L1183-L1197) +- Runtime API [`SubnetInfoRuntimeApi.get_next_epoch_start_block`](/code/pallets/subtensor/src/coinbase/run_coinbase.rs#L1196-L1210) Every file is browsable under [/code](/code) exactly as built into the runtime. diff --git a/docs/quickstart.mdx b/docs/quickstart.mdx index 9e1a156ab6..56afac9286 100644 --- a/docs/quickstart.mdx +++ b/docs/quickstart.mdx @@ -5,7 +5,7 @@ description: Install, connect, read chain state, and submit your first transacti ## 1. Install -Requires Python 3.10–3.13: +Requires Python 3.10–3.14: ```bash uv venv && source .venv/bin/activate diff --git a/docs/tx/add-collateral.mdx b/docs/tx/add-collateral.mdx index 2c279a8487..7431a44d7a 100644 --- a/docs/tx/add-collateral.mdx +++ b/docs/tx/add-collateral.mdx @@ -23,7 +23,7 @@ to clear unshielded at an unbounded AMM price. | Signer | Origin | Pallet | Wraps | | --- | --- | --- | --- | -| `coldkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.add_collateral`](/code/pallets/subtensor/src/macros/dispatches.rs#L2441-L2451) | +| `coldkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.add_collateral`](/code/pallets/subtensor/src/macros/dispatches.rs#L2450-L2460) | ## Parameters @@ -77,7 +77,7 @@ result = sub.execute_tool("add_collateral", {...}, wallet) ## On-chain implementation -`SubtensorModule.add_collateral` — [`pallets/subtensor/src/macros/dispatches.rs#L2443`](/code/pallets/subtensor/src/macros/dispatches.rs#L2441-L2451): +`SubtensorModule.add_collateral` — [`pallets/subtensor/src/macros/dispatches.rs#L2452`](/code/pallets/subtensor/src/macros/dispatches.rs#L2450-L2460): ```rust #[pallet::call_index(144)] diff --git a/docs/tx/add-stake-limit.mdx b/docs/tx/add-stake-limit.mdx index 9f0f59418e..9f02e57544 100644 --- a/docs/tx/add-stake-limit.mdx +++ b/docs/tx/add-stake-limit.mdx @@ -15,7 +15,7 @@ for large amounts or thin pools, where the swap itself moves the price. | Signer | Origin | Pallet | Wraps | | --- | --- | --- | --- | -| `coldkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.add_stake_limit`](/code/pallets/subtensor/src/macros/dispatches.rs#L1391-L1410) | +| `coldkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.add_stake_limit`](/code/pallets/subtensor/src/macros/dispatches.rs#L1392-L1411) | ## Parameters @@ -74,7 +74,7 @@ result = sub.execute_tool("add_stake_limit", {...}, wallet) ## On-chain implementation -`SubtensorModule.add_stake_limit` — [`pallets/subtensor/src/macros/dispatches.rs#L1393`](/code/pallets/subtensor/src/macros/dispatches.rs#L1391-L1410): +`SubtensorModule.add_stake_limit` — [`pallets/subtensor/src/macros/dispatches.rs#L1394`](/code/pallets/subtensor/src/macros/dispatches.rs#L1392-L1411): ```rust #[pallet::call_index(88)] diff --git a/docs/tx/add-stake.mdx b/docs/tx/add-stake.mdx index 8f4e083943..51c68bfb6f 100644 --- a/docs/tx/add-stake.mdx +++ b/docs/tx/add-stake.mdx @@ -22,7 +22,7 @@ reserve (`InsufficientLiquidity`). | Signer | Origin | Pallet | Wraps | | --- | --- | --- | --- | -| `coldkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.add_stake`](/code/pallets/subtensor/src/macros/dispatches.rs#L559-L568), [`SubtensorModule.add_stake_limit`](/code/pallets/subtensor/src/macros/dispatches.rs#L1391-L1410) | +| `coldkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.add_stake`](/code/pallets/subtensor/src/macros/dispatches.rs#L559-L568), [`SubtensorModule.add_stake_limit`](/code/pallets/subtensor/src/macros/dispatches.rs#L1392-L1411) | ## Parameters @@ -96,7 +96,7 @@ pub fn add_stake( Delegates to [`do_add_stake`](/code/pallets/subtensor/src/staking/add_stake.rs#L30). -`SubtensorModule.add_stake_limit` — [`pallets/subtensor/src/macros/dispatches.rs#L1393`](/code/pallets/subtensor/src/macros/dispatches.rs#L1391-L1410): +`SubtensorModule.add_stake_limit` — [`pallets/subtensor/src/macros/dispatches.rs#L1394`](/code/pallets/subtensor/src/macros/dispatches.rs#L1392-L1411): ```rust #[pallet::call_index(88)] diff --git a/docs/tx/announce-coldkey-swap.mdx b/docs/tx/announce-coldkey-swap.mdx index 933286cee2..26d4081d16 100644 --- a/docs/tx/announce-coldkey-swap.mdx +++ b/docs/tx/announce-coldkey-swap.mdx @@ -23,7 +23,7 @@ an unauthorized one with `dispute_coldkey_swap`. | Signer | Origin | Pallet | Wraps | | --- | --- | --- | --- | -| `coldkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.announce_coldkey_swap`](/code/pallets/subtensor/src/macros/dispatches.rs#L1985-L2013) | +| `coldkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.announce_coldkey_swap`](/code/pallets/subtensor/src/macros/dispatches.rs#L1986-L2014) | ## Parameters @@ -72,7 +72,7 @@ result = sub.execute_tool("announce_coldkey_swap", {...}, wallet) ## On-chain implementation -`SubtensorModule.announce_coldkey_swap` — [`pallets/subtensor/src/macros/dispatches.rs#L1987`](/code/pallets/subtensor/src/macros/dispatches.rs#L1985-L2013): +`SubtensorModule.announce_coldkey_swap` — [`pallets/subtensor/src/macros/dispatches.rs#L1988`](/code/pallets/subtensor/src/macros/dispatches.rs#L1986-L2014): ```rust #[pallet::call_index(125)] diff --git a/docs/tx/associate-evm-key.mdx b/docs/tx/associate-evm-key.mdx index fe28b04086..067ad382d0 100644 --- a/docs/tx/associate-evm-key.mdx +++ b/docs/tx/associate-evm-key.mdx @@ -20,7 +20,7 @@ neuron. | Signer | Origin | Pallet | Wraps | | --- | --- | --- | --- | -| `hotkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.associate_evm_key`](/code/pallets/subtensor/src/macros/dispatches.rs#L1573-L1587) | +| `hotkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.associate_evm_key`](/code/pallets/subtensor/src/macros/dispatches.rs#L1574-L1588) | ## Parameters @@ -78,7 +78,7 @@ result = sub.execute_tool("associate_evm_key", {...}, wallet) ## On-chain implementation -`SubtensorModule.associate_evm_key` — [`pallets/subtensor/src/macros/dispatches.rs#L1579`](/code/pallets/subtensor/src/macros/dispatches.rs#L1573-L1587): +`SubtensorModule.associate_evm_key` — [`pallets/subtensor/src/macros/dispatches.rs#L1580`](/code/pallets/subtensor/src/macros/dispatches.rs#L1574-L1588): ```rust #[pallet::call_index(93)] diff --git a/docs/tx/associate-hotkey.mdx b/docs/tx/associate-hotkey.mdx index cc1b956395..e8ff711891 100644 --- a/docs/tx/associate-hotkey.mdx +++ b/docs/tx/associate-hotkey.mdx @@ -15,7 +15,7 @@ take over the hotkey. | Signer | Origin | Pallet | Wraps | | --- | --- | --- | --- | -| `coldkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.try_associate_hotkey`](/code/pallets/subtensor/src/macros/dispatches.rs#L1519-L1527) | +| `coldkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.try_associate_hotkey`](/code/pallets/subtensor/src/macros/dispatches.rs#L1520-L1528) | ## Parameters @@ -62,7 +62,7 @@ result = sub.execute_tool("associate_hotkey", {...}, wallet) ## On-chain implementation -`SubtensorModule.try_associate_hotkey` — [`pallets/subtensor/src/macros/dispatches.rs#L1521`](/code/pallets/subtensor/src/macros/dispatches.rs#L1519-L1527): +`SubtensorModule.try_associate_hotkey` — [`pallets/subtensor/src/macros/dispatches.rs#L1522`](/code/pallets/subtensor/src/macros/dispatches.rs#L1520-L1528): ```rust #[pallet::call_index(91)] diff --git a/docs/tx/claim-root.mdx b/docs/tx/claim-root.mdx index e796701d54..3a41959421 100644 --- a/docs/tx/claim-root.mdx +++ b/docs/tx/claim-root.mdx @@ -17,7 +17,7 @@ deadline — but each call pays out only the subnets listed. | Signer | Origin | Pallet | Wraps | | --- | --- | --- | --- | -| `coldkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.claim_root`](/code/pallets/subtensor/src/macros/dispatches.rs#L1889-L1907) | +| `coldkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.claim_root`](/code/pallets/subtensor/src/macros/dispatches.rs#L1890-L1908) | ## Parameters @@ -66,7 +66,7 @@ result = sub.execute_tool("claim_root", {...}, wallet) ## On-chain implementation -`SubtensorModule.claim_root` — [`pallets/subtensor/src/macros/dispatches.rs#L1891`](/code/pallets/subtensor/src/macros/dispatches.rs#L1889-L1907): +`SubtensorModule.claim_root` — [`pallets/subtensor/src/macros/dispatches.rs#L1892`](/code/pallets/subtensor/src/macros/dispatches.rs#L1890-L1908): ```rust #[pallet::call_index(121)] diff --git a/docs/tx/clear-coldkey-swap-announcement.mdx b/docs/tx/clear-coldkey-swap-announcement.mdx index de60b529c5..0cf073a023 100644 --- a/docs/tx/clear-coldkey-swap-announcement.mdx +++ b/docs/tx/clear-coldkey-swap-announcement.mdx @@ -17,7 +17,7 @@ right call instead. | Signer | Origin | Pallet | Wraps | | --- | --- | --- | --- | -| `coldkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.clear_coldkey_swap_announcement`](/code/pallets/subtensor/src/macros/dispatches.rs#L2184-L2201) | +| `coldkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.clear_coldkey_swap_announcement`](/code/pallets/subtensor/src/macros/dispatches.rs#L2185-L2202) | ## Parameters @@ -62,7 +62,7 @@ result = sub.execute_tool("clear_coldkey_swap_announcement", {...}, wallet) ## On-chain implementation -`SubtensorModule.clear_coldkey_swap_announcement` — [`pallets/subtensor/src/macros/dispatches.rs#L2186`](/code/pallets/subtensor/src/macros/dispatches.rs#L2184-L2201): +`SubtensorModule.clear_coldkey_swap_announcement` — [`pallets/subtensor/src/macros/dispatches.rs#L2187`](/code/pallets/subtensor/src/macros/dispatches.rs#L2185-L2202): ```rust #[pallet::call_index(133)] diff --git a/docs/tx/commit-weights.mdx b/docs/tx/commit-weights.mdx index 90db606353..cae59e3f30 100644 --- a/docs/tx/commit-weights.mdx +++ b/docs/tx/commit-weights.mdx @@ -16,7 +16,7 @@ commit-reveal setting. | Signer | Origin | Pallet | Wraps | | --- | --- | --- | --- | -| `hotkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.commit_timelocked_mechanism_weights`](/code/pallets/subtensor/src/macros/dispatches.rs#L1850-L1868) | +| `hotkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.commit_timelocked_mechanism_weights`](/code/pallets/subtensor/src/macros/dispatches.rs#L1851-L1869) | ## Parameters @@ -70,7 +70,7 @@ result = sub.execute_tool("commit_weights", {...}, wallet) ## On-chain implementation -`SubtensorModule.commit_timelocked_mechanism_weights` — [`pallets/subtensor/src/macros/dispatches.rs#L1852`](/code/pallets/subtensor/src/macros/dispatches.rs#L1850-L1868): +`SubtensorModule.commit_timelocked_mechanism_weights` — [`pallets/subtensor/src/macros/dispatches.rs#L1853`](/code/pallets/subtensor/src/macros/dispatches.rs#L1851-L1869): ```rust #[pallet::call_index(118)] diff --git a/docs/tx/dispute-coldkey-swap.mdx b/docs/tx/dispute-coldkey-swap.mdx index 75a54c84c2..a55a96619e 100644 --- a/docs/tx/dispute-coldkey-swap.mdx +++ b/docs/tx/dispute-coldkey-swap.mdx @@ -18,7 +18,7 @@ you made yourself. | Signer | Origin | Pallet | Wraps | | --- | --- | --- | --- | -| `coldkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.dispute_coldkey_swap`](/code/pallets/subtensor/src/macros/dispatches.rs#L2054-L2073) | +| `coldkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.dispute_coldkey_swap`](/code/pallets/subtensor/src/macros/dispatches.rs#L2055-L2074) | ## Parameters @@ -63,7 +63,7 @@ result = sub.execute_tool("dispute_coldkey_swap", {...}, wallet) ## On-chain implementation -`SubtensorModule.dispute_coldkey_swap` — [`pallets/subtensor/src/macros/dispatches.rs#L2056`](/code/pallets/subtensor/src/macros/dispatches.rs#L2054-L2073): +`SubtensorModule.dispute_coldkey_swap` — [`pallets/subtensor/src/macros/dispatches.rs#L2057`](/code/pallets/subtensor/src/macros/dispatches.rs#L2055-L2074): ```rust #[pallet::call_index(127)] diff --git a/docs/tx/lock-stake.mdx b/docs/tx/lock-stake.mdx index b769d762dc..79fcf19da5 100644 --- a/docs/tx/lock-stake.mdx +++ b/docs/tx/lock-stake.mdx @@ -21,7 +21,7 @@ persists is controlled per coldkey per subnet with | Signer | Origin | Pallet | Wraps | | --- | --- | --- | --- | -| `coldkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.lock_stake`](/code/pallets/subtensor/src/macros/dispatches.rs#L2256-L2266) | +| `coldkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.lock_stake`](/code/pallets/subtensor/src/macros/dispatches.rs#L2257-L2267) | ## Parameters @@ -74,7 +74,7 @@ result = sub.execute_tool("lock_stake", {...}, wallet) ## On-chain implementation -`SubtensorModule.lock_stake` — [`pallets/subtensor/src/macros/dispatches.rs#L2258`](/code/pallets/subtensor/src/macros/dispatches.rs#L2256-L2266): +`SubtensorModule.lock_stake` — [`pallets/subtensor/src/macros/dispatches.rs#L2259`](/code/pallets/subtensor/src/macros/dispatches.rs#L2257-L2267): ```rust #[pallet::call_index(136)] diff --git a/docs/tx/move-lock.mdx b/docs/tx/move-lock.mdx index c836c0ce51..c08b3f59e5 100644 --- a/docs/tx/move-lock.mdx +++ b/docs/tx/move-lock.mdx @@ -16,7 +16,7 @@ existing lock on the subnet to move. | Signer | Origin | Pallet | Wraps | | --- | --- | --- | --- | -| `coldkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.move_lock`](/code/pallets/subtensor/src/macros/dispatches.rs#L2280-L2289) | +| `coldkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.move_lock`](/code/pallets/subtensor/src/macros/dispatches.rs#L2281-L2290) | ## Parameters @@ -68,7 +68,7 @@ result = sub.execute_tool("move_lock", {...}, wallet) ## On-chain implementation -`SubtensorModule.move_lock` — [`pallets/subtensor/src/macros/dispatches.rs#L2282`](/code/pallets/subtensor/src/macros/dispatches.rs#L2280-L2289): +`SubtensorModule.move_lock` — [`pallets/subtensor/src/macros/dispatches.rs#L2283`](/code/pallets/subtensor/src/macros/dispatches.rs#L2281-L2290): ```rust #[pallet::call_index(137)] diff --git a/docs/tx/move-stake.mdx b/docs/tx/move-stake.mdx index da8ff73c30..26b664b268 100644 --- a/docs/tx/move-stake.mdx +++ b/docs/tx/move-stake.mdx @@ -16,7 +16,7 @@ changes. | Signer | Origin | Pallet | Wraps | | --- | --- | --- | --- | -| `coldkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.move_stake`](/code/pallets/subtensor/src/macros/dispatches.rs#L1255-L1273) | +| `coldkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.move_stake`](/code/pallets/subtensor/src/macros/dispatches.rs#L1256-L1274) | ## Parameters @@ -77,7 +77,7 @@ result = sub.execute_tool("move_stake", {...}, wallet) ## On-chain implementation -`SubtensorModule.move_stake` — [`pallets/subtensor/src/macros/dispatches.rs#L1257`](/code/pallets/subtensor/src/macros/dispatches.rs#L1255-L1273): +`SubtensorModule.move_stake` — [`pallets/subtensor/src/macros/dispatches.rs#L1258`](/code/pallets/subtensor/src/macros/dispatches.rs#L1256-L1274): ```rust #[pallet::call_index(85)] diff --git a/docs/tx/register-leased-network.mdx b/docs/tx/register-leased-network.mdx index 99421d16b5..71ff678c13 100644 --- a/docs/tx/register-leased-network.mdx +++ b/docs/tx/register-leased-network.mdx @@ -19,7 +19,7 @@ perpetual and ownership never transfers. | Signer | Origin | Pallet | Wraps | | --- | --- | --- | --- | -| `coldkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.register_leased_network`](/code/pallets/subtensor/src/macros/dispatches.rs#L1671-L1679) | +| `coldkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.register_leased_network`](/code/pallets/subtensor/src/macros/dispatches.rs#L1672-L1680) | ## Parameters @@ -69,7 +69,7 @@ result = sub.execute_tool("register_leased_network", {...}, wallet) ## On-chain implementation -`SubtensorModule.register_leased_network` — [`pallets/subtensor/src/macros/dispatches.rs#L1673`](/code/pallets/subtensor/src/macros/dispatches.rs#L1671-L1679): +`SubtensorModule.register_leased_network` — [`pallets/subtensor/src/macros/dispatches.rs#L1674`](/code/pallets/subtensor/src/macros/dispatches.rs#L1672-L1680): ```rust #[pallet::call_index(110)] diff --git a/docs/tx/register-subnet.mdx b/docs/tx/register-subnet.mdx index b05d0414ca..e6024e0a04 100644 --- a/docs/tx/register-subnet.mdx +++ b/docs/tx/register-subnet.mdx @@ -27,7 +27,7 @@ current cost before sending. | Signer | Origin | Pallet | Wraps | | --- | --- | --- | --- | -| `coldkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.register_network`](/code/pallets/subtensor/src/macros/dispatches.rs#L1002-L1006) | +| `coldkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.register_network`](/code/pallets/subtensor/src/macros/dispatches.rs#L1003-L1007) | ## Parameters @@ -74,7 +74,7 @@ result = sub.execute_tool("register_subnet", {...}, wallet) ## On-chain implementation -`SubtensorModule.register_network` — [`pallets/subtensor/src/macros/dispatches.rs#L1004`](/code/pallets/subtensor/src/macros/dispatches.rs#L1002-L1006): +`SubtensorModule.register_network` — [`pallets/subtensor/src/macros/dispatches.rs#L1005`](/code/pallets/subtensor/src/macros/dispatches.rs#L1003-L1007): ```rust #[pallet::call_index(59)] diff --git a/docs/tx/remove-stake-limit.mdx b/docs/tx/remove-stake-limit.mdx index 4ca751ef24..0fa466bc2a 100644 --- a/docs/tx/remove-stake-limit.mdx +++ b/docs/tx/remove-stake-limit.mdx @@ -16,7 +16,7 @@ this over plain `remove_stake` when exiting large positions. | Signer | Origin | Pallet | Wraps | | --- | --- | --- | --- | -| `coldkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.remove_stake_limit`](/code/pallets/subtensor/src/macros/dispatches.rs#L1444-L1462) | +| `coldkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.remove_stake_limit`](/code/pallets/subtensor/src/macros/dispatches.rs#L1445-L1463) | ## Parameters @@ -75,7 +75,7 @@ result = sub.execute_tool("remove_stake_limit", {...}, wallet) ## On-chain implementation -`SubtensorModule.remove_stake_limit` — [`pallets/subtensor/src/macros/dispatches.rs#L1446`](/code/pallets/subtensor/src/macros/dispatches.rs#L1444-L1462): +`SubtensorModule.remove_stake_limit` — [`pallets/subtensor/src/macros/dispatches.rs#L1447`](/code/pallets/subtensor/src/macros/dispatches.rs#L1445-L1463): ```rust #[pallet::call_index(89)] diff --git a/docs/tx/remove-stake.mdx b/docs/tx/remove-stake.mdx index c58b7012fe..928e8ade62 100644 --- a/docs/tx/remove-stake.mdx +++ b/docs/tx/remove-stake.mdx @@ -22,7 +22,7 @@ position instead of leaving dust (`AmountTooLow`). | Signer | Origin | Pallet | Wraps | | --- | --- | --- | --- | -| `coldkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.remove_stake`](/code/pallets/subtensor/src/macros/dispatches.rs#L593-L602), [`SubtensorModule.remove_stake_limit`](/code/pallets/subtensor/src/macros/dispatches.rs#L1444-L1462) | +| `coldkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.remove_stake`](/code/pallets/subtensor/src/macros/dispatches.rs#L593-L602), [`SubtensorModule.remove_stake_limit`](/code/pallets/subtensor/src/macros/dispatches.rs#L1445-L1463) | ## Parameters @@ -96,7 +96,7 @@ pub fn remove_stake( Delegates to [`do_remove_stake`](/code/pallets/subtensor/src/staking/remove_stake.rs#L35). -`SubtensorModule.remove_stake_limit` — [`pallets/subtensor/src/macros/dispatches.rs#L1446`](/code/pallets/subtensor/src/macros/dispatches.rs#L1444-L1462): +`SubtensorModule.remove_stake_limit` — [`pallets/subtensor/src/macros/dispatches.rs#L1447`](/code/pallets/subtensor/src/macros/dispatches.rs#L1445-L1463): ```rust #[pallet::call_index(89)] diff --git a/docs/tx/set-auto-stake.mdx b/docs/tx/set-auto-stake.mdx index cd5466b78f..c098db4fd6 100644 --- a/docs/tx/set-auto-stake.mdx +++ b/docs/tx/set-auto-stake.mdx @@ -17,7 +17,7 @@ back with the `auto_stake` read. | Signer | Origin | Pallet | Wraps | | --- | --- | --- | --- | -| `coldkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.set_coldkey_auto_stake_hotkey`](/code/pallets/subtensor/src/macros/dispatches.rs#L1784-L1826) | +| `coldkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.set_coldkey_auto_stake_hotkey`](/code/pallets/subtensor/src/macros/dispatches.rs#L1785-L1827) | ## Parameters @@ -67,7 +67,7 @@ result = sub.execute_tool("set_auto_stake", {...}, wallet) ## On-chain implementation -`SubtensorModule.set_coldkey_auto_stake_hotkey` — [`pallets/subtensor/src/macros/dispatches.rs#L1786`](/code/pallets/subtensor/src/macros/dispatches.rs#L1784-L1826): +`SubtensorModule.set_coldkey_auto_stake_hotkey` — [`pallets/subtensor/src/macros/dispatches.rs#L1787`](/code/pallets/subtensor/src/macros/dispatches.rs#L1785-L1827): ```rust #[pallet::call_index(114)] diff --git a/docs/tx/set-childkey-take.mdx b/docs/tx/set-childkey-take.mdx index d7d8ce6026..627f399d34 100644 --- a/docs/tx/set-childkey-take.mdx +++ b/docs/tx/set-childkey-take.mdx @@ -14,7 +14,7 @@ minimum and maximum childkey take bounds, and rate-limits only increases | Signer | Origin | Pallet | Wraps | | --- | --- | --- | --- | -| `coldkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.set_childkey_take`](/code/pallets/subtensor/src/macros/dispatches.rs#L925-L937) | +| `coldkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.set_childkey_take`](/code/pallets/subtensor/src/macros/dispatches.rs#L926-L938) | ## Parameters @@ -67,7 +67,7 @@ result = sub.execute_tool("set_childkey_take", {...}, wallet) ## On-chain implementation -`SubtensorModule.set_childkey_take` — [`pallets/subtensor/src/macros/dispatches.rs#L927`](/code/pallets/subtensor/src/macros/dispatches.rs#L925-L937): +`SubtensorModule.set_childkey_take` — [`pallets/subtensor/src/macros/dispatches.rs#L928`](/code/pallets/subtensor/src/macros/dispatches.rs#L926-L938): ```rust #[pallet::call_index(75)] diff --git a/docs/tx/set-children.mdx b/docs/tx/set-children.mdx index 2af6e252a3..7bd80dc4c6 100644 --- a/docs/tx/set-children.mdx +++ b/docs/tx/set-children.mdx @@ -26,7 +26,7 @@ is not yet enabled, where they apply immediately. | Signer | Origin | Pallet | Wraps | | --- | --- | --- | --- | -| `coldkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.set_children`](/code/pallets/subtensor/src/macros/dispatches.rs#L1077-L1087) | +| `coldkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.set_children`](/code/pallets/subtensor/src/macros/dispatches.rs#L1078-L1088) | ## Parameters @@ -79,7 +79,7 @@ result = sub.execute_tool("set_children", {...}, wallet) ## On-chain implementation -`SubtensorModule.set_children` — [`pallets/subtensor/src/macros/dispatches.rs#L1079`](/code/pallets/subtensor/src/macros/dispatches.rs#L1077-L1087): +`SubtensorModule.set_children` — [`pallets/subtensor/src/macros/dispatches.rs#L1080`](/code/pallets/subtensor/src/macros/dispatches.rs#L1078-L1088): ```rust #[pallet::call_index(67)] diff --git a/docs/tx/set-identity.mdx b/docs/tx/set-identity.mdx index 4c465c8e71..ce6fd88233 100644 --- a/docs/tx/set-identity.mdx +++ b/docs/tx/set-identity.mdx @@ -17,7 +17,7 @@ cosmetic: no effect on balances, stake, or permissions. | Signer | Origin | Pallet | Wraps | | --- | --- | --- | --- | -| `coldkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.set_identity`](/code/pallets/subtensor/src/macros/dispatches.rs#L1118-L1140) | +| `coldkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.set_identity`](/code/pallets/subtensor/src/macros/dispatches.rs#L1119-L1141) | ## Parameters @@ -72,7 +72,7 @@ result = sub.execute_tool("set_identity", {...}, wallet) ## On-chain implementation -`SubtensorModule.set_identity` — [`pallets/subtensor/src/macros/dispatches.rs#L1120`](/code/pallets/subtensor/src/macros/dispatches.rs#L1118-L1140): +`SubtensorModule.set_identity` — [`pallets/subtensor/src/macros/dispatches.rs#L1121`](/code/pallets/subtensor/src/macros/dispatches.rs#L1119-L1141): ```rust #[pallet::call_index(68)] diff --git a/docs/tx/set-min-collateral.mdx b/docs/tx/set-min-collateral.mdx index 94b649747b..2231be96c2 100644 --- a/docs/tx/set-min-collateral.mdx +++ b/docs/tx/set-min-collateral.mdx @@ -15,7 +15,7 @@ immediately). Zero clears the floor and restores pure drain behavior. | Signer | Origin | Pallet | Wraps | | --- | --- | --- | --- | -| `coldkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.set_min_collateral`](/code/pallets/subtensor/src/macros/dispatches.rs#L2476-L2485) | +| `coldkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.set_min_collateral`](/code/pallets/subtensor/src/macros/dispatches.rs#L2485-L2494) | ## Parameters @@ -68,7 +68,7 @@ result = sub.execute_tool("set_min_collateral", {...}, wallet) ## On-chain implementation -`SubtensorModule.set_min_collateral` — [`pallets/subtensor/src/macros/dispatches.rs#L2478`](/code/pallets/subtensor/src/macros/dispatches.rs#L2476-L2485): +`SubtensorModule.set_min_collateral` — [`pallets/subtensor/src/macros/dispatches.rs#L2487`](/code/pallets/subtensor/src/macros/dispatches.rs#L2485-L2494): ```rust #[pallet::call_index(145)] diff --git a/docs/tx/set-perpetual-lock.mdx b/docs/tx/set-perpetual-lock.mdx index a8d181b8c6..ccf168fe20 100644 --- a/docs/tx/set-perpetual-lock.mdx +++ b/docs/tx/set-perpetual-lock.mdx @@ -15,7 +15,7 @@ illiquid until you switch back to decaying and the lock runs off. | Signer | Origin | Pallet | Wraps | | --- | --- | --- | --- | -| `coldkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.set_perpetual_lock`](/code/pallets/subtensor/src/macros/dispatches.rs#L2296-L2305) | +| `coldkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.set_perpetual_lock`](/code/pallets/subtensor/src/macros/dispatches.rs#L2297-L2306) | ## Parameters @@ -67,7 +67,7 @@ result = sub.execute_tool("set_perpetual_lock", {...}, wallet) ## On-chain implementation -`SubtensorModule.set_perpetual_lock` — [`pallets/subtensor/src/macros/dispatches.rs#L2298`](/code/pallets/subtensor/src/macros/dispatches.rs#L2296-L2305): +`SubtensorModule.set_perpetual_lock` — [`pallets/subtensor/src/macros/dispatches.rs#L2299`](/code/pallets/subtensor/src/macros/dispatches.rs#L2297-L2306): ```rust #[pallet::call_index(138)] diff --git a/docs/tx/set-root-claim-type.mdx b/docs/tx/set-root-claim-type.mdx index 950389749c..e6284cbac3 100644 --- a/docs/tx/set-root-claim-type.mdx +++ b/docs/tx/set-root-claim-type.mdx @@ -14,7 +14,7 @@ already claimed. Read it back with the `root_claim_type` read. | Signer | Origin | Pallet | Wraps | | --- | --- | --- | --- | -| `coldkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.set_root_claim_type`](/code/pallets/subtensor/src/macros/dispatches.rs#L1916-L1932) | +| `coldkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.set_root_claim_type`](/code/pallets/subtensor/src/macros/dispatches.rs#L1917-L1933) | ## Parameters @@ -62,7 +62,7 @@ result = sub.execute_tool("set_root_claim_type", {...}, wallet) ## On-chain implementation -`SubtensorModule.set_root_claim_type` — [`pallets/subtensor/src/macros/dispatches.rs#L1918`](/code/pallets/subtensor/src/macros/dispatches.rs#L1916-L1932): +`SubtensorModule.set_root_claim_type` — [`pallets/subtensor/src/macros/dispatches.rs#L1919`](/code/pallets/subtensor/src/macros/dispatches.rs#L1917-L1933): ```rust #[pallet::call_index(122)] diff --git a/docs/tx/set-subnet-identity.mdx b/docs/tx/set-subnet-identity.mdx index 29787a19c7..30f4a60250 100644 --- a/docs/tx/set-subnet-identity.mdx +++ b/docs/tx/set-subnet-identity.mdx @@ -15,7 +15,7 @@ for economics use `set_hyperparameter`. | Signer | Origin | Pallet | Wraps | | --- | --- | --- | --- | -| `coldkey` | subnet owner | SubtensorModule | [`SubtensorModule.set_subnet_identity`](/code/pallets/subtensor/src/macros/dispatches.rs#L1153-L1179) | +| `coldkey` | subnet owner | SubtensorModule | [`SubtensorModule.set_subnet_identity`](/code/pallets/subtensor/src/macros/dispatches.rs#L1154-L1180) | ## Parameters @@ -74,7 +74,7 @@ result = sub.execute_tool("set_subnet_identity", {...}, wallet) ## On-chain implementation -`SubtensorModule.set_subnet_identity` — [`pallets/subtensor/src/macros/dispatches.rs#L1155`](/code/pallets/subtensor/src/macros/dispatches.rs#L1153-L1179): +`SubtensorModule.set_subnet_identity` — [`pallets/subtensor/src/macros/dispatches.rs#L1156`](/code/pallets/subtensor/src/macros/dispatches.rs#L1154-L1180): ```rust #[pallet::call_index(78)] diff --git a/docs/tx/set-weights.mdx b/docs/tx/set-weights.mdx index 960d7b1934..b11e1db90a 100644 --- a/docs/tx/set-weights.mdx +++ b/docs/tx/set-weights.mdx @@ -22,7 +22,7 @@ unless you specifically need to force one path. | Signer | Origin | Pallet | Wraps | | --- | --- | --- | --- | -| `hotkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.set_mechanism_weights`](/code/pallets/subtensor/src/macros/dispatches.rs#L128-L143), [`SubtensorModule.commit_timelocked_mechanism_weights`](/code/pallets/subtensor/src/macros/dispatches.rs#L1850-L1868) | +| `hotkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.set_mechanism_weights`](/code/pallets/subtensor/src/macros/dispatches.rs#L128-L143), [`SubtensorModule.commit_timelocked_mechanism_weights`](/code/pallets/subtensor/src/macros/dispatches.rs#L1851-L1869) | ## Parameters @@ -98,7 +98,7 @@ pub fn set_mechanism_weights( Delegates to [`get_commit_reveal_weights_enabled`](/code/pallets/subtensor/src/utils/misc.rs#L607), [`do_set_mechanism_weights`](/code/pallets/subtensor/src/subnets/weights.rs#L916). -`SubtensorModule.commit_timelocked_mechanism_weights` — [`pallets/subtensor/src/macros/dispatches.rs#L1852`](/code/pallets/subtensor/src/macros/dispatches.rs#L1850-L1868): +`SubtensorModule.commit_timelocked_mechanism_weights` — [`pallets/subtensor/src/macros/dispatches.rs#L1853`](/code/pallets/subtensor/src/macros/dispatches.rs#L1851-L1869): ```rust #[pallet::call_index(118)] diff --git a/docs/tx/stake-burn.mdx b/docs/tx/stake-burn.mdx index 7847d3cc5d..d8766cd125 100644 --- a/docs/tx/stake-burn.mdx +++ b/docs/tx/stake-burn.mdx @@ -18,7 +18,7 @@ cap. | Signer | Origin | Pallet | Wraps | | --- | --- | --- | --- | -| `coldkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.add_stake_burn`](/code/pallets/subtensor/src/macros/dispatches.rs#L2168-L2178) | +| `coldkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.add_stake_burn`](/code/pallets/subtensor/src/macros/dispatches.rs#L2169-L2179) | ## Parameters @@ -74,7 +74,7 @@ result = sub.execute_tool("stake_burn", {...}, wallet) ## On-chain implementation -`SubtensorModule.add_stake_burn` — [`pallets/subtensor/src/macros/dispatches.rs#L2170`](/code/pallets/subtensor/src/macros/dispatches.rs#L2168-L2178): +`SubtensorModule.add_stake_burn` — [`pallets/subtensor/src/macros/dispatches.rs#L2171`](/code/pallets/subtensor/src/macros/dispatches.rs#L2169-L2179): ```rust #[pallet::call_index(132)] diff --git a/docs/tx/start-call.mdx b/docs/tx/start-call.mdx index 0032293dae..a9878949f8 100644 --- a/docs/tx/start-call.mdx +++ b/docs/tx/start-call.mdx @@ -16,7 +16,7 @@ as soon as the delay allows. | Signer | Origin | Pallet | Wraps | | --- | --- | --- | --- | -| `coldkey` | subnet owner | SubtensorModule | [`SubtensorModule.start_call`](/code/pallets/subtensor/src/macros/dispatches.rs#L1537-L1542) | +| `coldkey` | subnet owner | SubtensorModule | [`SubtensorModule.start_call`](/code/pallets/subtensor/src/macros/dispatches.rs#L1538-L1543) | ## Parameters @@ -65,7 +65,7 @@ result = sub.execute_tool("start_call", {...}, wallet) ## On-chain implementation -`SubtensorModule.start_call` — [`pallets/subtensor/src/macros/dispatches.rs#L1539`](/code/pallets/subtensor/src/macros/dispatches.rs#L1537-L1542): +`SubtensorModule.start_call` — [`pallets/subtensor/src/macros/dispatches.rs#L1540`](/code/pallets/subtensor/src/macros/dispatches.rs#L1538-L1543): ```rust #[pallet::call_index(92)] diff --git a/docs/tx/swap-coldkey-announced.mdx b/docs/tx/swap-coldkey-announced.mdx index dda3943675..e48ba8ec55 100644 --- a/docs/tx/swap-coldkey-announced.mdx +++ b/docs/tx/swap-coldkey-announced.mdx @@ -15,7 +15,7 @@ future operations sign with the new coldkey. | Signer | Origin | Pallet | Wraps | | --- | --- | --- | --- | -| `coldkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.swap_coldkey_announced`](/code/pallets/subtensor/src/macros/dispatches.rs#L2023-L2045) | +| `coldkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.swap_coldkey_announced`](/code/pallets/subtensor/src/macros/dispatches.rs#L2024-L2046) | ## Parameters @@ -64,7 +64,7 @@ result = sub.execute_tool("swap_coldkey_announced", {...}, wallet) ## On-chain implementation -`SubtensorModule.swap_coldkey_announced` — [`pallets/subtensor/src/macros/dispatches.rs#L2025`](/code/pallets/subtensor/src/macros/dispatches.rs#L2023-L2045): +`SubtensorModule.swap_coldkey_announced` — [`pallets/subtensor/src/macros/dispatches.rs#L2026`](/code/pallets/subtensor/src/macros/dispatches.rs#L2024-L2046): ```rust #[pallet::call_index(126)] diff --git a/docs/tx/swap-stake.mdx b/docs/tx/swap-stake.mdx index 76efc6d28e..10a7bace0c 100644 --- a/docs/tx/swap-stake.mdx +++ b/docs/tx/swap-stake.mdx @@ -18,7 +18,7 @@ only if you want to control each leg separately. | Signer | Origin | Pallet | Wraps | | --- | --- | --- | --- | -| `coldkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.swap_stake`](/code/pallets/subtensor/src/macros/dispatches.rs#L1341-L1357), [`SubtensorModule.swap_stake_limit`](/code/pallets/subtensor/src/macros/dispatches.rs#L1489-L1509) | +| `coldkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.swap_stake`](/code/pallets/subtensor/src/macros/dispatches.rs#L1342-L1358), [`SubtensorModule.swap_stake_limit`](/code/pallets/subtensor/src/macros/dispatches.rs#L1490-L1510) | ## Parameters @@ -78,7 +78,7 @@ result = sub.execute_tool("swap_stake", {...}, wallet) ## On-chain implementation -`SubtensorModule.swap_stake` — [`pallets/subtensor/src/macros/dispatches.rs#L1343`](/code/pallets/subtensor/src/macros/dispatches.rs#L1341-L1357): +`SubtensorModule.swap_stake` — [`pallets/subtensor/src/macros/dispatches.rs#L1344`](/code/pallets/subtensor/src/macros/dispatches.rs#L1342-L1358): ```rust #[pallet::call_index(87)] @@ -102,7 +102,7 @@ pub fn swap_stake( Delegates to [`do_swap_stake`](/code/pallets/subtensor/src/staking/move_stake.rs#L260). -`SubtensorModule.swap_stake_limit` — [`pallets/subtensor/src/macros/dispatches.rs#L1491`](/code/pallets/subtensor/src/macros/dispatches.rs#L1489-L1509): +`SubtensorModule.swap_stake_limit` — [`pallets/subtensor/src/macros/dispatches.rs#L1492`](/code/pallets/subtensor/src/macros/dispatches.rs#L1490-L1510): ```rust #[pallet::call_index(90)] diff --git a/docs/tx/terminate-lease.mdx b/docs/tx/terminate-lease.mdx index a8a49297c1..978da36226 100644 --- a/docs/tx/terminate-lease.mdx +++ b/docs/tx/terminate-lease.mdx @@ -14,7 +14,7 @@ block with the `lease` read before calling. | Signer | Origin | Pallet | Wraps | | --- | --- | --- | --- | -| `coldkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.terminate_lease`](/code/pallets/subtensor/src/macros/dispatches.rs#L1694-L1702) | +| `coldkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.terminate_lease`](/code/pallets/subtensor/src/macros/dispatches.rs#L1695-L1703) | ## Parameters @@ -64,7 +64,7 @@ result = sub.execute_tool("terminate_lease", {...}, wallet) ## On-chain implementation -`SubtensorModule.terminate_lease` — [`pallets/subtensor/src/macros/dispatches.rs#L1696`](/code/pallets/subtensor/src/macros/dispatches.rs#L1694-L1702): +`SubtensorModule.terminate_lease` — [`pallets/subtensor/src/macros/dispatches.rs#L1697`](/code/pallets/subtensor/src/macros/dispatches.rs#L1695-L1703): ```rust #[pallet::call_index(111)] diff --git a/docs/tx/transfer-stake.mdx b/docs/tx/transfer-stake.mdx index d4cd7aec91..3b948f2e6d 100644 --- a/docs/tx/transfer-stake.mdx +++ b/docs/tx/transfer-stake.mdx @@ -19,7 +19,7 @@ this as an unbounded spend and blocks it until the cap is raised. Use | Signer | Origin | Pallet | Wraps | | --- | --- | --- | --- | -| `coldkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.transfer_stake`](/code/pallets/subtensor/src/macros/dispatches.rs#L1299-L1317), [`SubtensorModule.transfer_stake_and_hotkey`](/code/pallets/subtensor/src/macros/dispatches.rs#L2383-L2403) | +| `coldkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.transfer_stake`](/code/pallets/subtensor/src/macros/dispatches.rs#L1300-L1318), [`SubtensorModule.transfer_stake_and_hotkey`](/code/pallets/subtensor/src/macros/dispatches.rs#L2392-L2412) | ## Parameters @@ -81,7 +81,7 @@ result = sub.execute_tool("transfer_stake", {...}, wallet) ## On-chain implementation -`SubtensorModule.transfer_stake` — [`pallets/subtensor/src/macros/dispatches.rs#L1301`](/code/pallets/subtensor/src/macros/dispatches.rs#L1299-L1317): +`SubtensorModule.transfer_stake` — [`pallets/subtensor/src/macros/dispatches.rs#L1302`](/code/pallets/subtensor/src/macros/dispatches.rs#L1300-L1318): ```rust #[pallet::call_index(86)] @@ -107,7 +107,7 @@ pub fn transfer_stake( Delegates to [`do_transfer_stake`](/code/pallets/subtensor/src/staking/move_stake.rs#L120). -`SubtensorModule.transfer_stake_and_hotkey` — [`pallets/subtensor/src/macros/dispatches.rs#L2385`](/code/pallets/subtensor/src/macros/dispatches.rs#L2383-L2403): +`SubtensorModule.transfer_stake_and_hotkey` — [`pallets/subtensor/src/macros/dispatches.rs#L2394`](/code/pallets/subtensor/src/macros/dispatches.rs#L2392-L2412): ```rust #[pallet::call_index(143)] diff --git a/docs/tx/unstake-all-alpha.mdx b/docs/tx/unstake-all-alpha.mdx index 16ed95e4f7..6c96c92213 100644 --- a/docs/tx/unstake-all-alpha.mdx +++ b/docs/tx/unstake-all-alpha.mdx @@ -16,7 +16,7 @@ incur slippage. | Signer | Origin | Pallet | Wraps | | --- | --- | --- | --- | -| `coldkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.unstake_all_alpha`](/code/pallets/subtensor/src/macros/dispatches.rs#L1234-L1238) | +| `coldkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.unstake_all_alpha`](/code/pallets/subtensor/src/macros/dispatches.rs#L1235-L1239) | ## Parameters @@ -65,7 +65,7 @@ result = sub.execute_tool("unstake_all_alpha", {...}, wallet) ## On-chain implementation -`SubtensorModule.unstake_all_alpha` — [`pallets/subtensor/src/macros/dispatches.rs#L1236`](/code/pallets/subtensor/src/macros/dispatches.rs#L1234-L1238): +`SubtensorModule.unstake_all_alpha` — [`pallets/subtensor/src/macros/dispatches.rs#L1237`](/code/pallets/subtensor/src/macros/dispatches.rs#L1235-L1239): ```rust #[pallet::call_index(84)] diff --git a/docs/tx/unstake-all.mdx b/docs/tx/unstake-all.mdx index 074ef43900..59c75bb442 100644 --- a/docs/tx/unstake-all.mdx +++ b/docs/tx/unstake-all.mdx @@ -17,7 +17,7 @@ staked. | Signer | Origin | Pallet | Wraps | | --- | --- | --- | --- | -| `coldkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.unstake_all`](/code/pallets/subtensor/src/macros/dispatches.rs#L1210-L1214) | +| `coldkey` | signed account (pallet role may apply) | SubtensorModule | [`SubtensorModule.unstake_all`](/code/pallets/subtensor/src/macros/dispatches.rs#L1211-L1215) | ## Parameters @@ -66,7 +66,7 @@ result = sub.execute_tool("unstake_all", {...}, wallet) ## On-chain implementation -`SubtensorModule.unstake_all` — [`pallets/subtensor/src/macros/dispatches.rs#L1212`](/code/pallets/subtensor/src/macros/dispatches.rs#L1210-L1214): +`SubtensorModule.unstake_all` — [`pallets/subtensor/src/macros/dispatches.rs#L1213`](/code/pallets/subtensor/src/macros/dispatches.rs#L1211-L1215): ```rust #[pallet::call_index(83)] diff --git a/docs/tx/update-symbol.mdx b/docs/tx/update-symbol.mdx index 2e61f1fe28..e028138654 100644 --- a/docs/tx/update-symbol.mdx +++ b/docs/tx/update-symbol.mdx @@ -15,7 +15,7 @@ stake, and emissions are untouched. | Signer | Origin | Pallet | Wraps | | --- | --- | --- | --- | -| `coldkey` | subnet owner | SubtensorModule | [`SubtensorModule.update_symbol`](/code/pallets/subtensor/src/macros/dispatches.rs#L1719-L1736) | +| `coldkey` | subnet owner | SubtensorModule | [`SubtensorModule.update_symbol`](/code/pallets/subtensor/src/macros/dispatches.rs#L1720-L1737) | ## Parameters @@ -67,7 +67,7 @@ result = sub.execute_tool("update_symbol", {...}, wallet) ## On-chain implementation -`SubtensorModule.update_symbol` — [`pallets/subtensor/src/macros/dispatches.rs#L1721`](/code/pallets/subtensor/src/macros/dispatches.rs#L1719-L1736): +`SubtensorModule.update_symbol` — [`pallets/subtensor/src/macros/dispatches.rs#L1722`](/code/pallets/subtensor/src/macros/dispatches.rs#L1720-L1737): ```rust #[pallet::call_index(112)] diff --git a/eco-tests/Cargo.toml b/eco-tests/Cargo.toml index 4fc67467af..e8b88598d2 100644 --- a/eco-tests/Cargo.toml +++ b/eco-tests/Cargo.toml @@ -23,22 +23,22 @@ useless_conversion = "allow" time = { version = "0.3.47", default-features = false } pallet-subtensor = { path = "../pallets/subtensor", default-features = false, features = ["std"] } pallet-alpha-assets = { path = "../pallets/alpha-assets", default-features = false, features = ["std"] } -frame-support = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7", default-features = false, features = ["std"] } -frame-system = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7", default-features = false, features = ["std"] } -sp-core = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7", default-features = false, features = ["std"] } -sp-io = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7", default-features = false, features = ["std"] } -sp-runtime = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7", default-features = false, features = ["std"] } -sp-std = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7", default-features = false, features = ["std"] } +frame-support = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38", default-features = false, features = ["std"] } +frame-system = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38", default-features = false, features = ["std"] } +sp-core = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38", default-features = false, features = ["std"] } +sp-io = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38", default-features = false, features = ["std"] } +sp-runtime = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38", default-features = false, features = ["std"] } +sp-std = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38", default-features = false, features = ["std"] } codec = { package = "parity-scale-codec", version = "3.7.5", default-features = false, features = ["derive", "std"] } scale-info = { version = "2.11.2", default-features = false, features = ["derive", "std"] } -pallet-balances = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7", default-features = false, features = ["std"] } -pallet-scheduler = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7", default-features = false, features = ["std"] } -pallet-preimage = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7", default-features = false, features = ["std"] } +pallet-balances = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38", default-features = false, features = ["std"] } +pallet-scheduler = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38", default-features = false, features = ["std"] } +pallet-preimage = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38", default-features = false, features = ["std"] } pallet-drand = { path = "../pallets/drand", default-features = false, features = ["std"] } pallet-subtensor-swap = { path = "../pallets/swap", default-features = false, features = ["std"] } pallet-subtensor-swap-runtime-api = { path = "../pallets/swap/runtime-api", default-features = false, features = ["std"] } subtensor-custom-rpc-runtime-api = { path = "../pallets/subtensor/runtime-api", default-features = false, features = ["std"] } -sp-api = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7", default-features = false, features = ["std"] } +sp-api = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38", default-features = false, features = ["std"] } pallet-crowdloan = { path = "../pallets/crowdloan", default-features = false, features = ["std"] } pallet-subtensor-proxy = { path = "../pallets/proxy", default-features = false, features = ["std"] } pallet-subtensor-utility = { path = "../pallets/utility", default-features = false, features = ["std"] } @@ -50,7 +50,7 @@ substrate-fixed = { git = "https://github.com/encointer/substrate-fixed.git", ta safe-math = { path = "../primitives/safe-math", default-features = false, features = ["std"] } log = { version = "0.4.21", default-features = false, features = ["std"] } approx = "0.5" -sp-tracing = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "7cc54bf2d50ae3921d718736dfeb0de9468539c7", default-features = false, features = ["std"] } +sp-tracing = { git = "https://github.com/RaoFoundation/polkadot-sdk.git", rev = "a08c7b0f0b6429910a953cbbaec4b4138294fa38", default-features = false, features = ["std"] } tracing = "0.1" tracing-log = "0.2" tracing-subscriber = { version = "0.3.20", features = ["fmt", "env-filter"] } diff --git a/node/Cargo.toml b/node/Cargo.toml index da20b81641..0d465eb5c0 100644 --- a/node/Cargo.toml +++ b/node/Cargo.toml @@ -26,6 +26,7 @@ clap = { workspace = true, features = ["derive"] } futures = { workspace = true, features = ["thread-pool"] } serde = { workspace = true, features = ["derive"] } hex.workspace = true +hex-literal.workspace = true tokio = { workspace = true, features = ["time", "rt", "net"] } # Storage import diff --git a/node/src/chain_spec/testnet.rs b/node/src/chain_spec/testnet.rs index a3b3d8b627..a092dbfc85 100644 --- a/node/src/chain_spec/testnet.rs +++ b/node/src/chain_spec/testnet.rs @@ -3,6 +3,8 @@ use super::*; +const TESTNET_PROTOCOL_ID: &str = "bittensor-testnet"; + pub fn finney_testnet_config() -> Result { let path: PathBuf = std::path::PathBuf::from("./snapshot.json"); let wasm_binary = WASM_BINARY.ok_or_else(|| "Development wasm not available".to_string())?; @@ -55,7 +57,7 @@ pub fn finney_testnet_config() -> Result { .parse() .unwrap(), ]) - .with_protocol_id("bittensor") + .with_protocol_id(TESTNET_PROTOCOL_ID) .with_id("bittensor") .with_chain_type(ChainType::Development) .with_genesis_config_patch(testnet_genesis( @@ -132,3 +134,30 @@ fn testnet_genesis( }, }) } + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn checked_in_specs_use_testnet_protocol_id() { + for (name, spec) in [ + ( + "plain", + include_str!("../../../chainspecs/plain_spec_testfinney.json"), + ), + ( + "raw", + include_str!("../../../chainspecs/raw_spec_testfinney.json"), + ), + ] { + let spec: serde_json::Value = + serde_json::from_str(spec).expect("checked-in chain spec should be valid"); + assert_eq!( + spec.get("protocolId").and_then(serde_json::Value::as_str), + Some(TESTNET_PROTOCOL_ID), + "{name} testnet chain spec has an unexpected protocol ID" + ); + } + } +} diff --git a/node/src/service.rs b/node/src/service.rs index f7d277eed2..4210a6fa20 100644 --- a/node/src/service.rs +++ b/node/src/service.rs @@ -1,5 +1,7 @@ //! Service and ServiceFactory implementation. Specialized wrapper over substrate service. +mod grandpa_warp_sync; + use crate::consensus::ConsensusMechanism; use futures::{FutureExt, StreamExt as _, channel::mpsc}; use node_subtensor_runtime::{RuntimeApi, TransactionConverter, opaque::Block}; @@ -305,10 +307,9 @@ where let peer_store_handle = net_config.peer_store_handle(); let metrics = NB::register_notification_metrics(maybe_registry); - let grandpa_protocol_name = sc_consensus_grandpa::protocol_standard_name( - &client.block_hash(0u32)?.expect("Genesis block exists; qed"), - &config.chain_spec, - ); + let genesis_hash = client.block_hash(0u32)?.expect("Genesis block exists; qed"); + let grandpa_protocol_name = + sc_consensus_grandpa::protocol_standard_name(&genesis_hash, &config.chain_spec); let (grandpa_protocol_config, grandpa_notification_service) = sc_consensus_grandpa::grandpa_peers_set_config::<_, NB>( @@ -320,24 +321,15 @@ where let warp_sync_config = if sealing.is_some() { None } else { - let set_id = match config.chain_spec.chain_type() { - // Finney patch - ChainType::Live => 3, - // Testnet patch - ChainType::Development => 2, - // All others (e.g. localnet) - _ => 0, - }; - log::warn!( - "Grandpa warp sync patch enabled. Chain type = {:?}. Set ID = {set_id}", - config.chain_spec.chain_type() - ); net_config.add_notification_protocol(grandpa_protocol_config); + let warp_sync_config = + grandpa_warp_sync::config(genesis_hash, config.chain_spec.chain_type()); + log::warn!("{}", warp_sync_config.log_message()); let warp_sync: Arc> = Arc::new(sc_consensus_grandpa::warp_proof::NetworkProvider::new( backend.clone(), grandpa_link.shared_authority_set().clone(), - sc_consensus_grandpa::warp_proof::HardForks::new_initial_set_id(set_id), + warp_sync_config.into_hard_forks(), )); Some(WarpSyncConfig::WithProvider(warp_sync)) diff --git a/node/src/service/grandpa_warp_sync.rs b/node/src/service/grandpa_warp_sync.rs new file mode 100644 index 0000000000..79b5cc05a1 --- /dev/null +++ b/node/src/service/grandpa_warp_sync.rs @@ -0,0 +1,160 @@ +use node_subtensor_runtime::opaque::Block; +use sc_chain_spec::ChainType; +use sc_consensus_grandpa::{AuthoritySetHardFork, warp_proof::HardForks}; +use sp_consensus_grandpa::{AuthorityId, AuthorityList}; +use sp_core::{ByteArray, H256}; + +const TESTNET_GENESIS: H256 = H256(hex_literal::hex!( + "8f9cf856bf558a14440e75569c9e58594757048d7b3a84b5d25f6bd978263105" +)); + +pub(super) enum Config { + TestnetCheckpoints(Vec>), + InitialSetId(u64), +} + +pub(super) fn config(genesis_hash: H256, chain_type: ChainType) -> Config { + if genesis_hash == TESTNET_GENESIS { + Config::TestnetCheckpoints(testnet_checkpoints()) + } else { + let set_id = match chain_type { + ChainType::Live => 3, + ChainType::Development => 2, + _ => 0, + }; + Config::InitialSetId(set_id) + } +} + +impl Config { + pub(super) fn log_message(&self) -> String { + match self { + Self::TestnetCheckpoints(_) => "Testnet GRANDPA warp sync checkpoints enabled.".into(), + Self::InitialSetId(set_id) => { + format!("GRANDPA warp sync initial set ID patch enabled. Set ID = {set_id}") + } + } + } + + pub(super) fn into_hard_forks(self) -> HardForks { + match self { + Self::TestnetCheckpoints(checkpoints) => { + HardForks::new_hard_forked_authorities(checkpoints) + } + Self::InitialSetId(set_id) => HardForks::new_initial_set_id(set_id), + } + } +} + +#[allow(clippy::expect_used)] +fn testnet_authorities() -> AuthorityList { + [ + hex_literal::hex!("dc832c3b7bdfc721e90e5ee9e532c06b62a0def3c79dab5324460d938db6600a"), + hex_literal::hex!("c8a00ef71912b3868b101cb70ebd029999d1c9b6a1390122a98f60d72b9a0fc4"), + hex_literal::hex!("ee70f7b52998c2b4f3d42e509e8360cda92b0cd4ca100cd4d32be5a1ac297909"), + hex_literal::hex!("b57a038c9139a060358f3b654df74a1cb6d15bcdb8438bcebd64ce67ec4301eb"), + hex_literal::hex!("755f75dfc66aaa3b1e761a8845249509b8bd2fdf0d94cb74e1e12e1e0f4d3519"), + hex_literal::hex!("d97a64267f177505b0565a18677c9f5d4284d7f2eb96d515556e7e52217f82e9"), + ] + .into_iter() + .map(|bytes| { + ( + AuthorityId::from_slice(&bytes).expect("authority IDs are exactly 32 bytes"), + 1, + ) + }) + .collect() +} + +fn testnet_checkpoints() -> Vec> { + let authorities = testnet_authorities(); + + [ + ( + 1, + 4_589_686, + hex_literal::hex!("2b001bfdec34d007ab2ac07f712e64d0cb1a6fb4b51f7d47bfb3c7d7336a689b"), + ), + ( + 3, + 5_534_451, + hex_literal::hex!("4d643da5fd7cd2b9ceb795091643e7223819e2a01f942ac049c5b928f7e30dc4"), + ), + ] + .into_iter() + .map(|(set_id, number, hash)| AuthoritySetHardFork { + set_id, + block: (H256::from(hash), number), + authorities: authorities.clone(), + last_finalized: None, + }) + .collect() +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn checkpoints_are_exactly_testnet_genesis_scoped() { + assert!(matches!( + config(TESTNET_GENESIS, ChainType::Live), + Config::TestnetCheckpoints(_) + )); + assert!(matches!( + config(H256::zero(), ChainType::Live), + Config::InitialSetId(3) + )); + assert!(matches!( + config(H256::zero(), ChainType::Development), + Config::InitialSetId(2) + )); + assert!(matches!( + config(H256::zero(), ChainType::Local), + Config::InitialSetId(0) + )); + } + + #[test] + fn testnet_checkpoints_are_ordered_and_share_authorities() { + let checkpoints = testnet_checkpoints(); + let [first, second] = checkpoints.as_slice() else { + panic!("expected exactly two testnet warp checkpoints"); + }; + + assert_eq!((first.set_id, first.block.1), (1, 4_589_686)); + assert_eq!( + first.block.0, + H256::from(hex_literal::hex!( + "2b001bfdec34d007ab2ac07f712e64d0cb1a6fb4b51f7d47bfb3c7d7336a689b" + )) + ); + assert_eq!((second.set_id, second.block.1), (3, 5_534_451)); + assert_eq!( + second.block.0, + H256::from(hex_literal::hex!( + "4d643da5fd7cd2b9ceb795091643e7223819e2a01f942ac049c5b928f7e30dc4" + )) + ); + assert_eq!(first.authorities.len(), 6); + assert_eq!(first.authorities, second.authorities); + let authority_ids: Vec<&[u8]> = first + .authorities + .iter() + .map(|(authority_id, _)| AsRef::<[u8]>::as_ref(authority_id)) + .collect(); + let expected_authority_ids = [ + hex_literal::hex!("dc832c3b7bdfc721e90e5ee9e532c06b62a0def3c79dab5324460d938db6600a"), + hex_literal::hex!("c8a00ef71912b3868b101cb70ebd029999d1c9b6a1390122a98f60d72b9a0fc4"), + hex_literal::hex!("ee70f7b52998c2b4f3d42e509e8360cda92b0cd4ca100cd4d32be5a1ac297909"), + hex_literal::hex!("b57a038c9139a060358f3b654df74a1cb6d15bcdb8438bcebd64ce67ec4301eb"), + hex_literal::hex!("755f75dfc66aaa3b1e761a8845249509b8bd2fdf0d94cb74e1e12e1e0f4d3519"), + hex_literal::hex!("d97a64267f177505b0565a18677c9f5d4284d7f2eb96d515556e7e52217f82e9"), + ]; + let expected_authority_ids = expected_authority_ids + .iter() + .map(|id| id.as_slice()) + .collect::>(); + assert_eq!(authority_ids, expected_authority_ids); + } +} diff --git a/pallets/limit-orders/README.md b/pallets/limit-orders/README.md index 669980739a..511a019d5c 100644 --- a/pallets/limit-orders/README.md +++ b/pallets/limit-orders/README.md @@ -85,9 +85,11 @@ encoding (`OrderId`) is persisted. ### `SignedOrder` Envelope submitted by the relayer: the `VersionedOrder` payload plus the user's -sr25519 signature over the SCALE encoding of the `VersionedOrder` (including the -version discriminant). Only sr25519 signatures are accepted. Signature -verification uses the inner `order.signer` as the expected public key. +sr25519 or ed25519 signature. The signature may cover either the SCALE encoding +of the `VersionedOrder` (including the version discriminant), or `` plus +its blake2-256 hash plus `` for Ledger compatibility. Signature +verification uses the inner `order.signer` as the expected public key; ECDSA is +not accepted. ### `OrderStatus` diff --git a/pallets/limit-orders/src/benchmarking.rs b/pallets/limit-orders/src/benchmarking.rs index 7de2a7b3d1..937cc3ee7e 100644 --- a/pallets/limit-orders/src/benchmarking.rs +++ b/pallets/limit-orders/src/benchmarking.rs @@ -21,12 +21,10 @@ fn sign_order( public: sp_core::sr25519::Public, order: &crate::VersionedOrder, ) -> crate::SignedOrder { - let sig = sp_io::crypto::sr25519_sign( - sp_core::crypto::key_types::ACCOUNT, - &public, - &order.encode(), - ) - .unwrap(); + let order_hash = sp_io::hashing::blake2_256(&order.encode()); + let payload = [b"".as_slice(), &order_hash, b"".as_slice()].concat(); + let sig = sp_io::crypto::sr25519_sign(sp_core::crypto::key_types::ACCOUNT, &public, &payload) + .unwrap(); crate::SignedOrder { order: order.clone(), signature: MultiSignature::Sr25519(sig), diff --git a/pallets/limit-orders/src/lib.rs b/pallets/limit-orders/src/lib.rs index 1d5548c529..f7a7c2a07e 100644 --- a/pallets/limit-orders/src/lib.rs +++ b/pallets/limit-orders/src/lib.rs @@ -131,18 +131,18 @@ impl VersionedOrd } /// The envelope the admin submits on-chain: the versioned order payload plus -/// the user's signature over the SCALE-encoded `VersionedOrder`. +/// the user's signature over the order. /// /// Signature verification is performed against `order.inner().signer` (the AccountId) -/// directly. Only sr25519 signatures are accepted; ed25519 and ecdsa variants -/// of `MultiSignature` are rejected at validation time. +/// directly. Sr25519 and ed25519 signatures over either the SCALE-encoded order or its +/// ``-wrapped blake2-256 hash are accepted; ecdsa is rejected at validation time. #[freeze_struct("9dd5a8ac812dc504")] #[derive( Encode, Decode, DecodeWithMemTracking, TypeInfo, MaxEncodedLen, Clone, PartialEq, Eq, Debug, )] pub struct SignedOrder { pub order: VersionedOrder, - /// Sr25519 signature over `SCALE_ENCODE(VersionedOrder)`. + /// Sr25519 or ed25519 signature over the raw order or its wrapped hash. pub signature: MultiSignature, /// Whether we want a partial fill for this order pub partial_fill: Option, @@ -614,10 +614,22 @@ pub mod pallet { Error::::ChainIdMismatch ); ensure!( - matches!(signed_order.signature, MultiSignature::Sr25519(_)) - && signed_order - .signature - .verify(signed_order.order.encode().as_slice(), &order.signer), + matches!( + signed_order.signature, + MultiSignature::Sr25519(_) | MultiSignature::Ed25519(_) + ) && (signed_order + .signature + .verify(signed_order.order.encode().as_slice(), &order.signer) + || signed_order.signature.verify( + [ + b"".as_slice(), + order_id.as_bytes(), + b"".as_slice(), + ] + .concat() + .as_slice(), + &order.signer, + )), Error::::InvalidSignature ); let order_status = Orders::::get(order_id); diff --git a/pallets/limit-orders/src/tests/auxiliary.rs b/pallets/limit-orders/src/tests/auxiliary.rs index 1049c84f74..351859a291 100644 --- a/pallets/limit-orders/src/tests/auxiliary.rs +++ b/pallets/limit-orders/src/tests/auxiliary.rs @@ -1409,7 +1409,10 @@ fn collect_fees_no_transfer_when_zero_fees() { use crate::Error; use codec::Encode; use sp_core::Pair; -use sp_runtime::MultiSignature; +use sp_runtime::{ + MultiSignature, MultiSigner, + traits::{IdentifyAccount, Verify}, +}; use subtensor_swap_interface::OrderSwapInterface; fn make_valid_signed_order() -> (crate::SignedOrder, sp_core::H256) { @@ -1474,14 +1477,102 @@ fn is_order_valid_invalid_signature_returns_error() { } #[test] -fn is_order_valid_non_sr25519_signature_returns_error() { +fn is_order_valid_accepts_raw_ed25519_signature() { + new_test_ext().execute_with(|| { + MockTime::set(1_000_000); + MockSwap::set_price(1.0); + let (signed, _) = make_valid_signed_order(); + let ed_pair = sp_core::ed25519::Pair::from_legacy_string("//Alice", None); + let order = crate::VersionedOrder::V1(crate::Order { + signer: AccountId::from(ed_pair.public()), + ..signed.order.inner().clone() + }); + let id = H256(sp_io::hashing::blake2_256(&order.encode())); + let signature = ed_pair.sign(&order.encode()); + let signed = crate::SignedOrder { + order, + signature: MultiSignature::Ed25519(signature), + partial_fill: None, + }; + let price = MockSwap::current_alpha_price(netuid()); + assert_ok!(LimitOrders::::is_order_valid( + &signed, + id, + 1_000_000, + price, + &bob() + )); + }); +} + +#[test] +fn is_order_valid_accepts_wrapped_sr25519_signature() { new_test_ext().execute_with(|| { MockTime::set(1_000_000); MockSwap::set_price(1.0); let (mut signed, id) = make_valid_signed_order(); + let payload = [b"".as_slice(), id.as_bytes(), b"".as_slice()].concat(); + signed.signature = MultiSignature::Sr25519(AccountKeyring::Alice.pair().sign(&payload)); + let price = MockSwap::current_alpha_price(netuid()); + assert_ok!(LimitOrders::::is_order_valid( + &signed, + id, + 1_000_000, + price, + &bob() + )); + }); +} + +#[test] +fn is_order_valid_accepts_wrapped_ed25519_signature() { + new_test_ext().execute_with(|| { + MockTime::set(1_000_000); + MockSwap::set_price(1.0); + let (signed, _) = make_valid_signed_order(); let ed_pair = sp_core::ed25519::Pair::from_legacy_string("//Alice", None); - let ed_sig = ed_pair.sign(&signed.order.encode()); - signed.signature = MultiSignature::Ed25519(ed_sig); + let order = crate::VersionedOrder::V1(crate::Order { + signer: AccountId::from(ed_pair.public()), + ..signed.order.inner().clone() + }); + let id = H256(sp_io::hashing::blake2_256(&order.encode())); + let payload = [b"".as_slice(), id.as_bytes(), b"".as_slice()].concat(); + let signed = crate::SignedOrder { + order, + signature: MultiSignature::Ed25519(ed_pair.sign(&payload)), + partial_fill: None, + }; + let price = MockSwap::current_alpha_price(netuid()); + assert_ok!(LimitOrders::::is_order_valid( + &signed, + id, + 1_000_000, + price, + &bob() + )); + }); +} + +#[test] +fn is_order_valid_ecdsa_signature_returns_error() { + new_test_ext().execute_with(|| { + MockTime::set(1_000_000); + MockSwap::set_price(1.0); + let (signed, _) = make_valid_signed_order(); + let pair = sp_core::ecdsa::Pair::from_legacy_string("//Alice", None); + let signer = MultiSigner::from(pair.public()).into_account(); + let order = crate::VersionedOrder::V1(crate::Order { + signer, + ..signed.order.inner().clone() + }); + let id = H256(sp_io::hashing::blake2_256(&order.encode())); + let signature = MultiSignature::Ecdsa(pair.sign(&order.encode())); + assert!(signature.verify(order.encode().as_slice(), &order.inner().signer)); + let signed = crate::SignedOrder { + order, + signature, + partial_fill: None, + }; let price = MockSwap::current_alpha_price(netuid()); assert_noop!( LimitOrders::::is_order_valid(&signed, id, 1_000_000, price, &bob()), diff --git a/pallets/subtensor/src/benchmarks/benchmarks.rs b/pallets/subtensor/src/benchmarks/benchmarks.rs index 4f9e020511..375bdb61ea 100644 --- a/pallets/subtensor/src/benchmarks/benchmarks.rs +++ b/pallets/subtensor/src/benchmarks/benchmarks.rs @@ -2887,6 +2887,22 @@ mod pallet_benchmarks { _(RawOrigin::Signed(coldkey.clone()), netuid, true); } + #[benchmark] + fn set_tempo() { + let caller: T::AccountId = whitelisted_caller(); + + #[extrinsic_call] + _(RawOrigin::Signed(caller), NetUid::from(1), u16::MAX); + } + + #[benchmark] + fn set_activity_cutoff_factor() { + let caller: T::AccountId = whitelisted_caller(); + + #[extrinsic_call] + _(RawOrigin::Signed(caller), NetUid::from(1), u32::MAX); + } + #[benchmark] fn set_reject_locked_alpha() { let coldkey: T::AccountId = whitelisted_caller(); diff --git a/pallets/subtensor/src/coinbase/run_coinbase.rs b/pallets/subtensor/src/coinbase/run_coinbase.rs index 70c1657830..e3425addba 100644 --- a/pallets/subtensor/src/coinbase/run_coinbase.rs +++ b/pallets/subtensor/src/coinbase/run_coinbase.rs @@ -391,10 +391,17 @@ impl Pallet { let mut epochs_run_this_block: u32 = 0; for &netuid in subnets.iter() { - // Increment blocks since last *successful* step (existing semantics). - BlocksSinceLastStep::::mutate(netuid, |total| *total = total.saturating_add(1)); + // Keep the scheduler age bounded per subnet. `tempo + 1` is enough to + // record that a due epoch missed its slot while avoiding an unbounded + // public counter when the epoch is repeatedly deferred or its input + // state remains inconsistent. + let tempo = Self::get_tempo(netuid); + let max_blocks_since_last_step = u64::from(tempo).saturating_add(1); + BlocksSinceLastStep::::mutate(netuid, |total| { + *total = total.saturating_add(1).min(max_blocks_since_last_step) + }); - if !Self::should_run_epoch(netuid, current_block) { + if !Self::should_run_epoch_with_tempo(netuid, current_block, tempo) { continue; } @@ -1143,6 +1150,12 @@ impl Pallet { /// * `bool`: True if the epoch should run, false otherwise. pub fn should_run_epoch(netuid: NetUid, current_block: u64) -> bool { let tempo = Self::get_tempo(netuid); + Self::should_run_epoch_with_tempo(netuid, current_block, tempo) + } + + /// Same predicate as `should_run_epoch`, using an already-loaded tempo so + /// callers that also need the tempo do not charge a duplicate storage read. + fn should_run_epoch_with_tempo(netuid: NetUid, current_block: u64, tempo: u16) -> bool { if tempo == 0 { return false; } @@ -1150,7 +1163,7 @@ impl Pallet { if pending > 0 && current_block >= pending { return true; } - if BlocksSinceLastStep::::get(netuid) > MAX_TEMPO as u64 { + if BlocksSinceLastStep::::get(netuid) > u64::from(tempo) { return true; } let last = LastEpochBlock::::get(netuid); @@ -1161,7 +1174,7 @@ impl Pallet { /// Returns the number of blocks remaining before the next automatic epoch under the /// stateful scheduler (period `tempo`, anchored on `LastEpochBlock`). Does NOT account for: /// - `PendingEpochAt` (owner-triggered manual fire — could happen sooner), - /// - `BlocksSinceLastStep > MAX_TEMPO` safety-net, + /// - `BlocksSinceLastStep > tempo` safety-net, /// - per-block-cap defer (could push the actual fire one or more blocks later) /// Used by the admin-freeze-window predicate and external tooling. Returns `u64::MAX` when /// `tempo == 0` (legacy defensive short-circuit). @@ -1178,7 +1191,7 @@ impl Pallet { /// Returns the absolute block number at which the next epoch is expected to fire for the /// given subnet, considering both the automatic schedule (`LastEpochBlock + tempo`) and /// any owner-triggered `PendingEpochAt`. Returns `None` if `tempo == 0` (subnet does not run). - /// Does NOT account for the per-block cap deferral or the `BlocksSinceLastStep > MAX_TEMPO` + /// Does NOT account for the per-block cap deferral or the `BlocksSinceLastStep > tempo` /// safety-net (which can fire earlier under extreme drift). pub fn get_next_epoch_start_block(netuid: NetUid) -> Option { let tempo = Self::get_tempo(netuid); diff --git a/pallets/subtensor/src/lib.rs b/pallets/subtensor/src/lib.rs index 87f1bedd96..a39ec97424 100644 --- a/pallets/subtensor/src/lib.rs +++ b/pallets/subtensor/src/lib.rs @@ -2089,7 +2089,7 @@ pub mod pallet { pub type MinerBurned = StorageMap<_, Identity, NetUid, U96F32, ValueQuery, DefaultMinerBurned>; - /// MAP ( netuid ) --> blocks_since_last_step + /// MAP ( netuid ) --> blocks_since_last_step, capped at the subnet's `tempo + 1` #[pallet::storage] pub type BlocksSinceLastStep = StorageMap<_, Identity, NetUid, u64, ValueQuery, DefaultBlocksSinceLastStep>; diff --git a/pallets/subtensor/src/macros/dispatches.rs b/pallets/subtensor/src/macros/dispatches.rs index 3a15a1b151..4ce0c69be6 100644 --- a/pallets/subtensor/src/macros/dispatches.rs +++ b/pallets/subtensor/src/macros/dispatches.rs @@ -859,6 +859,7 @@ mod dispatches { /// * `netuid`: Optional subnet ID. If `Some`, swap only on that subnet; if `None`, swap on all subnets. /// * `keep_stake`: If `true`, stake remains on the old hotkey and the rest metadata /// is transferred to the new hotkey. + #[allow(unknown_lints, benchmarked_weight_not_plugged)] #[pallet::call_index(72)] #[pallet::weight(( crate::Pallet::::swap_hotkey_v2_dispatch_weight(netuid, *keep_stake), @@ -2309,7 +2310,11 @@ mod dispatches { /// Use `AdminUtils::sudo_set_tempo` to change subnet tempo. #[deprecated(note = "Use `AdminUtils::sudo_set_tempo` instead")] #[pallet::call_index(139)] - #[pallet::weight((Weight::from_parts(0, 0), DispatchClass::Normal, Pays::Yes))] + #[pallet::weight(( + ::WeightInfo::set_tempo(), + DispatchClass::Normal, + Pays::Yes + ))] pub fn set_tempo(_origin: OriginFor, _netuid: NetUid, _tempo: u16) -> DispatchResult { Ok(()) } @@ -2319,7 +2324,11 @@ mod dispatches { /// Use `AdminUtils::sudo_set_activity_cutoff_factor` to change the factor. #[deprecated(note = "Use `AdminUtils::sudo_set_activity_cutoff_factor` instead")] #[pallet::call_index(140)] - #[pallet::weight((Weight::from_parts(0, 0), DispatchClass::Normal, Pays::Yes))] + #[pallet::weight(( + ::WeightInfo::set_activity_cutoff_factor(), + DispatchClass::Normal, + Pays::Yes + ))] pub fn set_activity_cutoff_factor( _origin: OriginFor, _netuid: NetUid, diff --git a/pallets/subtensor/src/subnets/mechanism.rs b/pallets/subtensor/src/subnets/mechanism.rs index de99eca7f7..30c4e90086 100644 --- a/pallets/subtensor/src/subnets/mechanism.rs +++ b/pallets/subtensor/src/subnets/mechanism.rs @@ -208,7 +208,7 @@ impl Pallet { // Check the length ensure!(!split.is_empty(), Error::::InvalidValue); ensure!( - split.len() <= u8::from(MechanismCountCurrent::::get(netuid)) as usize, + split.len() == u8::from(MechanismCountCurrent::::get(netuid)) as usize, Error::::InvalidValue ); @@ -229,9 +229,10 @@ impl Pallet { /// pub fn split_emissions(netuid: NetUid, alpha: AlphaBalance) -> Vec { let mechanism_count = u64::from(MechanismCountCurrent::::get(netuid)); - let maybe_split = MechanismEmissionSplit::::get(netuid); + let maybe_split = MechanismEmissionSplit::::get(netuid) + .filter(|split| split.len() == mechanism_count as usize); - // Unset split means even distribution + // Unset or legacy malformed split means even distribution let mut result: Vec = if let Some(split) = maybe_split { split .iter() @@ -248,11 +249,6 @@ impl Pallet { vec![AlphaBalance::from(per_mechanism); mechanism_count as usize] }; - // Trim / extend and pad with zeroes if result is shorter than mechanism_count - if result.len() != mechanism_count as usize { - result.resize(mechanism_count as usize, 0u64.into()); // pad with AlphaBalance::from(0) - } - // If there's any rounding error or lost due to truncation emission, credit it to mechanism 0 let rounding_err = u64::from(alpha).saturating_sub(result.iter().map(|s| u64::from(*s)).sum()); diff --git a/pallets/subtensor/src/tests/children.rs b/pallets/subtensor/src/tests/children.rs index 1dc7bf4a86..703ecb4807 100644 --- a/pallets/subtensor/src/tests/children.rs +++ b/pallets/subtensor/src/tests/children.rs @@ -3713,7 +3713,7 @@ fn test_dynamic_parent_child_relationships() { assert!((rel_stake_child1_0 - I96F32::from_num(50_000) / total_tao).abs() <= epsilon); assert!((rel_stake_child2_0 - I96F32::from_num(30_000) / total_tao).abs() <= epsilon); - mock_set_children(&coldkey_parent, &parent, netuid, &[(u64::MAX / 2, child1)]); + mock_set_children_no_epochs(netuid, &parent, &[(u64::MAX / 2, child1)]); step_block(2); @@ -3736,7 +3736,6 @@ fn test_dynamic_parent_child_relationships() { // Step blocks to allow for emission distribution step_block(11); - step_rate_limit(&TransactionType::SetChildren, netuid); // Get total stake after first payout let total_stake_1 = SubtensorModule::get_stake_for_hotkey_on_subnet(&parent, netuid) @@ -3745,10 +3744,9 @@ fn test_dynamic_parent_child_relationships() { log::info!("total_stake_1: {total_stake_1:?}"); // Change parent-child relationships - mock_set_children( - &coldkey_parent, - &parent, + mock_set_children_no_epochs( netuid, + &parent, &[(u64::MAX / 4, child1), (u64::MAX / 3, child2)], ); @@ -3766,8 +3764,8 @@ fn test_dynamic_parent_child_relationships() { let stake_child1_2 = SubtensorModule::get_inherited_for_hotkey_on_subnet(&child1, netuid); let stake_child2_2 = SubtensorModule::get_inherited_for_hotkey_on_subnet(&child2, netuid); let total_parent_stake = SubtensorModule::get_stake_for_hotkey_on_subnet(&parent, netuid); - let _total_child1_stake = SubtensorModule::get_stake_for_hotkey_on_subnet(&child1, netuid); - let _total_child2_stake = SubtensorModule::get_stake_for_hotkey_on_subnet(&child2, netuid); + let total_child1_stake = SubtensorModule::get_stake_for_hotkey_on_subnet(&child1, netuid); + let total_child2_stake = SubtensorModule::get_stake_for_hotkey_on_subnet(&child2, netuid); log::info!("Final stakes:"); log::info!("Parent stake: {stake_parent_2}"); @@ -3789,46 +3787,36 @@ fn test_dynamic_parent_child_relationships() { // Precise assertions with tolerance log::info!("total_emission: {total_emission:?}"); - let expected_parent_stake = ((I96F32::from_num(u64::from(stake_parent_0)) - + total_emission * rel_stake_parent_0) - * I96F32::from_num(5)) - / I96F32::from_num(12); + let expected_parent_stake = + I96F32::from_num(total_parent_stake) * I96F32::from_num(5) / I96F32::from_num(12); assert!( (I96F32::from_num(stake_parent_2) - expected_parent_stake).abs() / expected_parent_stake <= TOLERANCE, "Parent stake should be close to {expected_parent_stake:?}, but was {stake_parent_2}" ); - // Parent stake calculation: - // Initial stake: 500,000 - // First epoch: 1/2 parent_stake - // Second epoch: 5/12 parent_stake + // The final relationship leaves the parent with 1 - 1/4 - 1/3 = 5/12 + // of its current direct stake. - let expected_child1_stake = total_emission * rel_stake_child1_0 - + I96F32::from_num(stake_child1_0 + total_parent_stake / 4.into()); + let expected_child1_stake = I96F32::from_num(total_child1_stake) + + I96F32::from_num(total_parent_stake) / I96F32::from_num(4); assert!( (I96F32::from_num(stake_child1_2) - expected_child1_stake).abs() / expected_child1_stake <= TOLERANCE, "Child1 stake should be close to {expected_child1_stake:?}, but was {stake_child1_2}" ); - // Child1 stake calculation: - // Initial stake: 50,000 - // First epoch: 1/2 parent_stake + child1_stake - // Second epoch: 1/4 parent_stake + child1_stake + // Child1 inherits 1/4 of the parent's current direct stake. - let expected_child2_stake = total_emission * rel_stake_child2_0 - + I96F32::from_num(u64::from(stake_child2_0 + total_parent_stake / 3.into())); + let expected_child2_stake = I96F32::from_num(total_child2_stake) + + I96F32::from_num(total_parent_stake) / I96F32::from_num(3); assert!( (I96F32::from_num(stake_child2_2) - expected_child2_stake).abs() / expected_child2_stake <= TOLERANCE, "Child2 stake should be close to {expected_child2_stake:?}, but was {stake_child2_2}" ); - // Child2 stake calculation: - // Initial stake: 30,000 - // First epoch: child2_stake - // Second epoch: 1/3 parent_stake + child2_stake + // Child2 inherits 1/3 of the parent's current direct stake. // Additional checks for parent-child relationships let parent_children: Vec<(u64, U256)> = SubtensorModule::get_children(&parent, netuid); diff --git a/pallets/subtensor/src/tests/coinbase.rs b/pallets/subtensor/src/tests/coinbase.rs index ec54891b2d..fafa689661 100644 --- a/pallets/subtensor/src/tests/coinbase.rs +++ b/pallets/subtensor/src/tests/coinbase.rs @@ -3849,6 +3849,66 @@ fn test_coinbase_drain_pending_increments_blockssincelaststep() { }); } +#[test] +fn test_coinbase_drain_pending_caps_blockssincelaststep_when_epoch_is_deferred() { + new_test_ext(1).execute_with(|| { + let netuid = add_dynamic_network(&U256::from(1), &U256::from(2)); + let tempo = 1; + Tempo::::insert(netuid, tempo); + PendingEpochAt::::insert(netuid, 1); + SubtensorModule::set_max_epochs_per_block(0); + + for block in 1..=10 { + SubtensorModule::drain_pending(&[netuid], block); + } + + assert_eq!( + BlocksSinceLastStep::::get(netuid), + u64::from(tempo) + 1 + ); + assert!(SubtensorModule::should_run_epoch(netuid, 11)); + }); +} + +#[test] +fn test_coinbase_drain_pending_caps_blockssincelaststep_for_inconsistent_epoch() { + new_test_ext(1).execute_with(|| { + let netuid = add_dynamic_network(&U256::from(1), &U256::from(2)); + let tempo = 1; + Tempo::::insert(netuid, tempo); + PendingEpochAt::::insert(netuid, 1); + + let duplicate_hotkey = U256::from(99); + Keys::::insert(netuid, 0, duplicate_hotkey); + Keys::::insert(netuid, 1, duplicate_hotkey); + assert!(!SubtensorModule::is_epoch_input_state_consistent(netuid)); + + for block in 1..=10 { + SubtensorModule::drain_pending(&[netuid], block); + } + + assert_eq!( + BlocksSinceLastStep::::get(netuid), + u64::from(tempo) + 1 + ); + assert!(SubtensorModule::should_run_epoch(netuid, 11)); + }); +} + +#[test] +fn test_should_run_epoch_uses_subnet_tempo_for_step_age_safety_net() { + new_test_ext(1).execute_with(|| { + let netuid = add_dynamic_network(&U256::from(1), &U256::from(2)); + let tempo = 1; + Tempo::::insert(netuid, tempo); + LastEpochBlock::::insert(netuid, 100); + PendingEpochAt::::insert(netuid, 0); + BlocksSinceLastStep::::insert(netuid, u64::from(tempo) + 1); + + assert!(SubtensorModule::should_run_epoch(netuid, 2)); + }); +} + #[test] fn test_coinbase_drain_pending_resets_blockssincelaststep() { new_test_ext(1).execute_with(|| { diff --git a/pallets/subtensor/src/tests/mechanism.rs b/pallets/subtensor/src/tests/mechanism.rs index 5fb48c409d..764e67617e 100644 --- a/pallets/subtensor/src/tests/mechanism.rs +++ b/pallets/subtensor/src/tests/mechanism.rs @@ -392,6 +392,28 @@ fn update_mechanism_counts_increases() { }); } +#[test] +fn emission_split_requires_one_entry_per_mechanism() { + new_test_ext(1).execute_with(|| { + let netuid = NetUid::from(42u16); + NetworksAdded::::insert(netuid, true); + MechanismCountCurrent::::insert(netuid, MechId::from(2u8)); + + assert_noop!( + SubtensorModule::do_set_emission_split(netuid, Some(vec![u16::MAX])), + Error::::InvalidValue + ); + assert!(MechanismEmissionSplit::::get(netuid).is_none()); + + let split = vec![u16::MAX / 2, u16::MAX - u16::MAX / 2]; + assert_ok!(SubtensorModule::do_set_emission_split( + netuid, + Some(split.clone()) + )); + assert_eq!(MechanismEmissionSplit::::get(netuid), Some(split)); + }); +} + #[test] fn split_emissions_even_division() { new_test_ext(1).execute_with(|| { @@ -402,6 +424,30 @@ fn split_emissions_even_division() { }); } +#[test] +fn split_emissions_treats_legacy_malformed_split_as_unset() { + new_test_ext(1).execute_with(|| { + let netuid = NetUid::from(5u16); + MechanismCountCurrent::::insert(netuid, MechId::from(3u8)); + + for split in [vec![u16::MAX], vec![u16::MAX, 0, 0, 0]] { + MechanismEmissionSplit::::insert(netuid, split.clone()); + + let out = SubtensorModule::split_emissions(netuid, AlphaBalance::from(10u64)); + + assert_eq!( + out, + vec![ + AlphaBalance::from(4u64), + AlphaBalance::from(3u64), + AlphaBalance::from(3u64), + ] + ); + assert_eq!(MechanismEmissionSplit::::get(netuid), Some(split)); + } + }); +} + #[test] fn split_emissions_rounding_to_first() { new_test_ext(1).execute_with(|| { diff --git a/pallets/subtensor/src/tests/migration.rs b/pallets/subtensor/src/tests/migration.rs index fb66a2ed31..c9d8b51b9b 100644 --- a/pallets/subtensor/src/tests/migration.rs +++ b/pallets/subtensor/src/tests/migration.rs @@ -2965,9 +2965,12 @@ fn do_setup_unactive_sn() -> (Vec, Vec) { let hotkey_account_id = U256::from(1111); let burn_cost = SubtensorModule::get_burn(*netuid); // Registration requires keep-alive coverage above the burn (Preservation::Preserve). - let fund = burn_cost - .saturating_add(ExistentialDeposit::get()) - .saturating_add(10.into()); + let fund = TaoBalance::from( + u64::from(burn_cost) + .checked_add(u64::from(ExistentialDeposit::get())) + .and_then(|value| value.checked_add(10)) + .expect("burn funding overflow"), + ); add_balance_to_coldkey_account(&coldkey_account_id, fund); TotalIssuance::::mutate(|total_issuance| { let updated_total = u64::from(*total_issuance) diff --git a/pallets/subtensor/src/weights.rs b/pallets/subtensor/src/weights.rs index 6239c31428..dcae372b81 100644 --- a/pallets/subtensor/src/weights.rs +++ b/pallets/subtensor/src/weights.rs @@ -121,6 +121,8 @@ pub trait WeightInfo { fn sudo_set_voting_power_ema_alpha() -> Weight; fn register_limit() -> Weight; fn set_perpetual_lock() -> Weight; + fn set_tempo() -> Weight; + fn set_activity_cutoff_factor() -> Weight; fn set_reject_locked_alpha() -> Weight; } @@ -3712,6 +3714,20 @@ impl WeightInfo for SubstrateWeight { .saturating_add(T::DbWeight::get().reads(11_u64)) .saturating_add(T::DbWeight::get().writes(4_u64)) } + fn set_tempo() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 783_000 picoseconds. + Weight::from_parts(887_000, 0) + } + fn set_activity_cutoff_factor() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 803_000 picoseconds. + Weight::from_parts(891_000, 0) + } /// Storage: `SubtensorModule::AccountFlags` (r:1 w:1) /// Proof: `SubtensorModule::AccountFlags` (`max_values`: None, `max_size`: None, mode: `Measured`) fn set_reject_locked_alpha() -> Weight { @@ -7312,6 +7328,20 @@ impl WeightInfo for () { .saturating_add(RocksDbWeight::get().reads(11_u64)) .saturating_add(RocksDbWeight::get().writes(4_u64)) } + fn set_tempo() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 783_000 picoseconds. + Weight::from_parts(887_000, 0) + } + fn set_activity_cutoff_factor() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 803_000 picoseconds. + Weight::from_parts(891_000, 0) + } /// Storage: `SubtensorModule::AccountFlags` (r:1 w:1) /// Proof: `SubtensorModule::AccountFlags` (`max_values`: None, `max_size`: None, mode: `Measured`) fn set_reject_locked_alpha() -> Weight { diff --git a/precompiles/src/solidity/stakingV2.abi b/precompiles/src/solidity/stakingV2.abi index 69c1e339f2..c410d0a936 100644 --- a/precompiles/src/solidity/stakingV2.abi +++ b/precompiles/src/solidity/stakingV2.abi @@ -92,6 +92,47 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "coldkey", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "netuid", + "type": "uint256" + }, + { + "internalType": "bytes32[]", + "name": "hotkeys", + "type": "bytes32[]" + } + ], + "name": "getStakeInfoForColdkeyAndNetuid", + "outputs": [ + { + "components": [ + { + "internalType": "bytes32", + "name": "hotkey", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "stake", + "type": "uint256" + } + ], + "internalType": "struct IStaking.StakeInfo[]", + "name": "positions", + "type": "tuple[]" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [ { @@ -196,6 +237,19 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [], + "name": "getDefaultMinStake", + "outputs": [ + { + "internalType": "uint256", + "name": "defaultMinStake", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [ { diff --git a/precompiles/src/solidity/stakingV2.sol b/precompiles/src/solidity/stakingV2.sol index 7cc3c89a7c..f1964416eb 100644 --- a/precompiles/src/solidity/stakingV2.sol +++ b/precompiles/src/solidity/stakingV2.sol @@ -3,6 +3,12 @@ pragma solidity ^0.8.0; address constant ISTAKING_ADDRESS = 0x0000000000000000000000000000000000000805; interface IStaking { + /// A coldkey's non-zero alpha stake position on a subnet. + struct StakeInfo { + bytes32 hotkey; + uint256 stake; + } + /** * @dev Adds a subtensor stake `amount` associated with the `hotkey`. * @@ -151,6 +157,23 @@ interface IStaking { uint256 netuid ) external view returns (uint256); + /** + * @dev Returns non-zero alpha stake positions for up to 64 caller-supplied + * distinct hotkeys. Duplicate hotkeys revert. Callers that need more must + * split their hotkeys across calls. + * This function does not read the coldkey's unbounded historical hotkey index. + * + * @param coldkey The coldkey public key (32 bytes). + * @param netuid The subnet to query. + * @param hotkeys The distinct candidate hotkeys to query (maximum 64). + * @return positions Non-zero hotkey and alpha stake pairs. + */ + function getStakeInfoForColdkeyAndNetuid( + bytes32 coldkey, + uint256 netuid, + bytes32[] calldata hotkeys + ) external view returns (StakeInfo[] memory positions); + /** * @dev Delegates staking to a proxy account. * @@ -205,6 +228,17 @@ interface IStaking { */ function getNominatorMinRequiredStake() external view returns (uint256); + /** + * @dev Returns DefaultMinStake. This is a base value only; operation fees, + * price conversion, and full-unstake rules can change the accepted amount. + * + * @return defaultMinStake The current DefaultMinStake value in rao. + */ + function getDefaultMinStake() + external + view + returns (uint256 defaultMinStake); + /** * @dev Adds a subtensor stake `amount` associated with the `hotkey` within a price limit. * @@ -340,7 +374,7 @@ interface IStaking { function allowance( address sourceAddress, address spenderAddress, - uint256 netuid, + uint256 netuid ) external view returns (uint256); /** diff --git a/precompiles/src/staking.rs b/precompiles/src/staking.rs index 554115ddf0..66db22a075 100644 --- a/precompiles/src/staking.rs +++ b/precompiles/src/staking.rs @@ -30,12 +30,13 @@ // The allowance is specific to a pair of `(spender, netuid)`, but doesn't specify the `hotkey` which is instead // provided only in `transferStakeFrom`. +use alloc::collections::BTreeSet; use alloc::vec::Vec; use core::marker::PhantomData; use frame_support::Blake2_128Concat; use frame_support::dispatch::{DispatchInfo, GetDispatchInfo, PostDispatchInfo}; use frame_support::pallet_prelude::{StorageDoubleMap, ValueQuery}; -use frame_support::traits::{IsSubType, StorageInstance}; +use frame_support::traits::{ConstU32, Get, IsSubType, StorageInstance}; use frame_system::RawOrigin; use pallet_evm::{ AddressMapping, BalanceConverter, EvmBalance, ExitError, PrecompileFailure, PrecompileHandle, @@ -43,7 +44,7 @@ use pallet_evm::{ }; use pallet_subtensor_proxy as pallet_proxy; use precompile_utils::EvmResult; -use precompile_utils::prelude::{Address, revert}; +use precompile_utils::prelude::{Address, BoundedVec, revert}; use sp_core::{H160, H256, U256}; use sp_runtime::traits::{AsSystemOriginSigner, Dispatchable, StaticLookup, UniqueSaturatedInto}; use sp_std::vec; @@ -51,6 +52,14 @@ use subtensor_runtime_common::{NetUid, ProxyType, Token}; use crate::{PrecompileExt, PrecompileHandleExt}; +// `get_stake_for_hotkey_and_coldkey_on_subnet` reads the transitional V1/V2 +// share storage. In the V2 fallback case it performs two reads for the initial +// share lookup, then five more for the value, share, and denominator. +const STAKE_INFO_READS_PER_HOTKEY: u64 = 7; +// Conservative charge for decoding and validating each 32-byte hotkey. +const STAKE_INFO_INPUT_GAS_PER_HOTKEY: u64 = 64; +const MAX_STAKE_INFO_HOTKEYS: usize = 64; + /// Prefix for the Allowances map in Substrate storage. pub struct AllowancesPrefix; impl StorageInstance for AllowancesPrefix { @@ -326,8 +335,8 @@ where coldkey: H256, netuid: U256, ) -> EvmResult { - // Alpha share pool reads - handle.record_db_reads::(2)?; + // Worst-case V2 fallback reads for the alpha share pool. + handle.record_db_reads::(STAKE_INFO_READS_PER_HOTKEY)?; let hotkey = R::AccountId::from(hotkey.0); let coldkey = R::AccountId::from(coldkey.0); let netuid = try_u16_from_u256(netuid)?; @@ -340,6 +349,52 @@ where Ok(u64::from(stake).into()) } + #[precompile::public("getStakeInfoForColdkeyAndNetuid(bytes32,uint256,bytes32[])")] + #[precompile::view] + fn get_stake_info_for_coldkey_and_netuid( + handle: &mut impl PrecompileHandle, + coldkey: H256, + netuid: U256, + hotkeys: BoundedVec>, + ) -> EvmResult> { + let hotkey_count: u64 = hotkeys.len().unique_saturated_into(); + handle.record_cost(hotkey_count.saturating_mul(STAKE_INFO_INPUT_GAS_PER_HOTKEY))?; + let hotkeys: Vec = hotkeys.into(); + + let coldkey = R::AccountId::from(coldkey.0); + let netuid = NetUid::from(try_u16_from_u256(netuid)?); + + let mut seen = BTreeSet::new(); + for hotkey in &hotkeys { + if !seen.insert(hotkey) { + return Err(revert("duplicate stake info hotkey")); + } + } + + // Charge the conservative V2 fallback cost for the complete bounded + // batch before performing any stake reads. + handle.record_db_reads::(hotkey_count.saturating_mul(STAKE_INFO_READS_PER_HOTKEY))?; + + Ok(hotkeys + .into_iter() + .filter_map(|hotkey| { + let hotkey_account = R::AccountId::from(hotkey.0); + let stake = + pallet_subtensor::Pallet::::get_stake_for_hotkey_and_coldkey_on_subnet( + &hotkey_account, + &coldkey, + netuid, + ) + .to_u64(); + if stake == 0 { + return None; + } + + Some((hotkey, stake.into())) + }) + .collect()) + } + #[precompile::public("getAlphaStakedValidators(bytes32,uint256)")] #[precompile::view] fn get_alpha_staked_validators( @@ -389,6 +444,15 @@ where Ok(stake.into()) } + #[precompile::public("getDefaultMinStake()")] + #[precompile::view] + fn get_default_min_stake(handle: &mut impl PrecompileHandle) -> EvmResult { + handle.record_db_reads::(1)?; + Ok(pallet_subtensor::DefaultMinStake::::get() + .to_u64() + .into()) + } + #[precompile::public("addProxy(bytes32)")] #[precompile::payable] fn add_proxy(handle: &mut impl PrecompileHandle, delegate: H256) -> EvmResult<()> { @@ -831,8 +895,8 @@ where coldkey: H256, netuid: U256, ) -> EvmResult { - // Alpha share pool reads - handle.record_db_reads::(2)?; + // Worst-case V2 fallback reads for the alpha share pool. + handle.record_db_reads::(STAKE_INFO_READS_PER_HOTKEY)?; let hotkey = R::AccountId::from(hotkey.0); let coldkey = R::AccountId::from(coldkey.0); let netuid = try_u16_from_u256(netuid)?; @@ -942,6 +1006,7 @@ mod tests { execute_precompile, fund_account, mapped_account, new_test_ext, precompiles, selector_u32, substrate_to_evm, }; + use precompile_utils::prelude::RuntimeHelper; use precompile_utils::solidity::{encode_return_value, encode_with_selector}; use precompile_utils::testing::PrecompileTesterExt; use sp_core::{H160, H256}; @@ -949,6 +1014,7 @@ mod tests { use subtensor_runtime_common::{AlphaBalance, TaoBalance}; const TEST_NETUID_U16: u16 = 1; + const SECOND_NETUID_U16: u16 = 2; const INVALID_NETUID_U16: u16 = 12_345; const TEMPO: u16 = 100; const RESERVE_TAO: u64 = 200_000_000_000; @@ -962,7 +1028,11 @@ mod tests { const ALLOWANCE_DECREASE_RAO: u64 = 2_000_000_000; fn setup_staking_subnet() -> NetUid { - let netuid = NetUid::from(TEST_NETUID_U16); + setup_staking_subnet_id(TEST_NETUID_U16) + } + + fn setup_staking_subnet_id(netuid: u16) -> NetUid { + let netuid = NetUid::from(netuid); pallet_subtensor::Pallet::::init_new_network(netuid, TEMPO); pallet_subtensor::Pallet::::set_network_registration_allowed(netuid, true); pallet_subtensor::Pallet::::set_max_allowed_uids(netuid, 4096); @@ -978,6 +1048,21 @@ mod tests { netuid } + fn stake_read_cost(hotkey_count: usize) -> u64 { + let hotkey_count = u64::try_from(hotkey_count).expect("hotkey count fits in u64"); + let reads = hotkey_count.saturating_mul(STAKE_INFO_READS_PER_HOTKEY); + RuntimeHelper::::db_read_gas_cost().saturating_mul(reads) + } + + fn stake_info_validation_cost(hotkey_count: usize) -> u64 { + let hotkey_count = u64::try_from(hotkey_count).expect("hotkey count fits in u64"); + STAKE_INFO_INPUT_GAS_PER_HOTKEY.saturating_mul(hotkey_count) + } + + fn stake_info_cost(hotkey_count: usize) -> u64 { + stake_info_validation_cost(hotkey_count).saturating_add(stake_read_cost(hotkey_count)) + } + fn hotkey() -> AccountId { AccountId::from([0x11; 32]) } @@ -1106,6 +1191,262 @@ mod tests { ); } + #[test] + fn staking_precompile_v2_returns_non_zero_stake_positions_for_requested_hotkeys() { + new_test_ext().execute_with(|| { + let netuid = setup_staking_subnet(); + setup_staking_subnet_id(SECOND_NETUID_U16); + let caller = addr_from_index(0x1101); + let coldkey = mapped_account(caller); + let hotkey_a = AccountId::from([0x31; 32]); + let hotkey_b = AccountId::from([0x32; 32]); + let hotkey_c = AccountId::from([0x33; 32]); + + fund_account(&coldkey, COLDKEY_BALANCE); + add_stake_v2(caller, &hotkey_a, TEST_NETUID_U16, INITIAL_STAKE_RAO); + add_stake_v2(caller, &hotkey_b, SECOND_NETUID_U16, INITIAL_STAKE_RAO); + add_stake_v2(caller, &hotkey_c, TEST_NETUID_U16, INITIAL_STAKE_RAO); + + let requested_hotkeys = vec![ + H256::from_slice(hotkey_a.as_ref()), + H256::from_slice(hotkey_b.as_ref()), + H256::from_slice(hotkey_c.as_ref()), + ]; + let expected: Vec<(H256, U256)> = [&hotkey_a, &hotkey_b, &hotkey_c] + .into_iter() + .filter_map(|hotkey| { + let stake = stake_for(hotkey, &coldkey, netuid); + (stake > 0).then(|| (H256::from_slice(hotkey.as_ref()), U256::from(stake))) + }) + .collect(); + assert_eq!(expected.len(), 2); + + precompiles::>() + .prepare_test( + caller, + addr_from_index(StakingPrecompileV2::::INDEX), + encode_with_selector( + selector_u32("getStakeInfoForColdkeyAndNetuid(bytes32,uint256,bytes32[])"), + ( + H256::from_slice(coldkey.as_ref()), + U256::from(TEST_NETUID_U16), + requested_hotkeys, + ), + ), + ) + .with_static_call(true) + .expect_cost(stake_info_cost(3)) + .execute_returns_raw(encode_return_value(expected)); + }); + } + + #[test] + fn staking_precompile_v2_returns_empty_stake_info_for_unknown_coldkey() { + new_test_ext().execute_with(|| { + setup_staking_subnet(); + let caller = addr_from_index(0x1102); + let coldkey = AccountId::from([0x41; 32]); + let hotkeys = vec![H256::repeat_byte(0x51), H256::repeat_byte(0x52)]; + + precompiles::>() + .prepare_test( + caller, + addr_from_index(StakingPrecompileV2::::INDEX), + encode_with_selector( + selector_u32("getStakeInfoForColdkeyAndNetuid(bytes32,uint256,bytes32[])"), + ( + H256::from_slice(coldkey.as_ref()), + U256::from(TEST_NETUID_U16), + hotkeys, + ), + ), + ) + .with_static_call(true) + .expect_cost(stake_info_cost(2)) + .execute_returns_raw(encode_return_value(Vec::<(H256, U256)>::new())); + }); + } + + #[test] + fn staking_precompile_v2_rejects_out_of_range_stake_info_netuid() { + new_test_ext().execute_with(|| { + let caller = addr_from_index(0x1103); + let coldkey = AccountId::from([0x42; 32]); + let invalid_netuid = U256::from(u32::from(u16::MAX) + 1); + + let result = execute_precompile( + &precompiles::>(), + addr_from_index(StakingPrecompileV2::::INDEX), + caller, + encode_with_selector( + selector_u32("getStakeInfoForColdkeyAndNetuid(bytes32,uint256,bytes32[])"), + ( + H256::from_slice(coldkey.as_ref()), + invalid_netuid, + Vec::::new(), + ), + ), + U256::zero(), + ) + .expect("staking V2 call routes to the precompile"); + + assert!(result.is_err()); + }); + } + + #[test] + fn staking_precompile_v2_only_reads_caller_supplied_hotkeys() { + new_test_ext().execute_with(|| { + let netuid = setup_staking_subnet(); + let caller = addr_from_index(0x1105); + let coldkey = mapped_account(caller); + let historical_hotkeys: Vec = (0..=MAX_STAKE_INFO_HOTKEYS) + .map(|index| { + let mut account = [0u8; 32]; + let index = u64::try_from(index).expect("test index fits in u64"); + account[..8].copy_from_slice(&index.to_le_bytes()); + AccountId::from(account) + }) + .collect(); + let active_hotkey = historical_hotkeys + .last() + .expect("historical hotkeys is non-empty") + .clone(); + + pallet_subtensor::StakingHotkeys::::insert( + &coldkey, + historical_hotkeys.clone(), + ); + pallet_subtensor::Pallet::::increase_stake_for_hotkey_and_coldkey_on_subnet( + &active_hotkey, + &coldkey, + netuid, + AlphaBalance::from(INITIAL_STAKE_RAO), + ); + let active_stake = stake_for(&active_hotkey, &coldkey, netuid); + assert!(active_stake > 0); + + precompiles::>() + .prepare_test( + caller, + addr_from_index(StakingPrecompileV2::::INDEX), + encode_with_selector( + selector_u32("getStakeInfoForColdkeyAndNetuid(bytes32,uint256,bytes32[])"), + ( + H256::from_slice(coldkey.as_ref()), + U256::from(TEST_NETUID_U16), + vec![H256::from_slice(active_hotkey.as_ref())], + ), + ), + ) + .with_static_call(true) + .expect_cost(stake_info_cost(1)) + .execute_returns_raw(encode_return_value(vec![( + H256::from_slice(active_hotkey.as_ref()), + U256::from(active_stake), + )])); + }); + } + + #[test] + fn staking_precompile_v2_codec_rejects_more_than_64_requested_hotkeys() { + new_test_ext().execute_with(|| { + setup_staking_subnet(); + let caller = addr_from_index(0x1106); + let coldkey = AccountId::from([0x43; 32]); + let hotkeys: Vec = (0..=MAX_STAKE_INFO_HOTKEYS) + .map(|index| { + let mut hotkey = [0u8; 32]; + hotkey[..8].copy_from_slice(&index.to_le_bytes()); + H256::from(hotkey) + }) + .collect(); + + precompiles::>() + .prepare_test( + caller, + addr_from_index(StakingPrecompileV2::::INDEX), + encode_with_selector( + selector_u32("getStakeInfoForColdkeyAndNetuid(bytes32,uint256,bytes32[])"), + ( + H256::from_slice(coldkey.as_ref()), + U256::from(TEST_NETUID_U16), + hotkeys[..MAX_STAKE_INFO_HOTKEYS].to_vec(), + ), + ), + ) + .with_static_call(true) + .expect_cost(stake_info_cost(MAX_STAKE_INFO_HOTKEYS)) + .execute_returns_raw(encode_return_value(Vec::<(H256, U256)>::new())); + + precompiles::>() + .prepare_test( + caller, + addr_from_index(StakingPrecompileV2::::INDEX), + encode_with_selector( + selector_u32("getStakeInfoForColdkeyAndNetuid(bytes32,uint256,bytes32[])"), + ( + H256::from_slice(coldkey.as_ref()), + U256::from(TEST_NETUID_U16), + hotkeys, + ), + ), + ) + .with_static_call(true) + .expect_cost(0) + .execute_reverts(|output| output == b"hotkeys: Value is too large for length"); + }); + } + + #[test] + fn staking_precompile_v2_rejects_duplicate_requested_hotkeys() { + new_test_ext().execute_with(|| { + let netuid = setup_staking_subnet(); + let caller = addr_from_index(0x1107); + let coldkey = mapped_account(caller); + let hotkey = AccountId::from([0x54; 32]); + let requested_hotkey = H256::from_slice(hotkey.as_ref()); + + fund_account(&coldkey, COLDKEY_BALANCE); + add_stake_v2(caller, &hotkey, TEST_NETUID_U16, INITIAL_STAKE_RAO); + assert!(stake_for(&hotkey, &coldkey, netuid) > 0); + + precompiles::>() + .prepare_test( + caller, + addr_from_index(StakingPrecompileV2::::INDEX), + encode_with_selector( + selector_u32("getStakeInfoForColdkeyAndNetuid(bytes32,uint256,bytes32[])"), + ( + H256::from_slice(coldkey.as_ref()), + U256::from(TEST_NETUID_U16), + vec![requested_hotkey, H256::repeat_byte(0x55), requested_hotkey], + ), + ), + ) + .with_static_call(true) + .expect_cost(stake_info_validation_cost(3)) + .execute_reverts(|output| output == b"duplicate stake info hotkey"); + }); + } + + #[test] + fn staking_precompile_v2_returns_default_min_stake() { + new_test_ext().execute_with(|| { + let threshold = pallet_subtensor::DefaultMinStake::::get(); + + precompiles::>() + .prepare_test( + addr_from_index(0x1104), + addr_from_index(StakingPrecompileV2::::INDEX), + encode_with_selector(selector_u32("getDefaultMinStake()"), ()), + ) + .with_static_call(true) + .expect_cost(RuntimeHelper::::db_read_gas_cost()) + .execute_returns(U256::from(threshold.to_u64())); + }); + } + #[test] fn staking_precompile_v1_add_stake_and_reads_match_runtime_state() { new_test_ext().execute_with(|| { @@ -1122,20 +1463,22 @@ mod tests { let stake_after = stake_for(&hotkey, &caller_account, netuid); assert!(stake_after > stake_before); - assert_static_call( - &precompiles::>(), - caller, - addr_from_index(StakingPrecompile::::INDEX), - encode_with_selector( - selector_u32("getStake(bytes32,bytes32,uint256)"), - ( - H256::from_slice(hotkey.as_ref()), - H256::from_slice(caller_account.as_ref()), - U256::from(TEST_NETUID_U16), + precompiles::>() + .prepare_test( + caller, + addr_from_index(StakingPrecompile::::INDEX), + encode_with_selector( + selector_u32("getStake(bytes32,bytes32,uint256)"), + ( + H256::from_slice(hotkey.as_ref()), + H256::from_slice(caller_account.as_ref()), + U256::from(TEST_NETUID_U16), + ), ), - ), - substrate_to_evm(stake_after), - ); + ) + .with_static_call(true) + .expect_cost(stake_read_cost(1)) + .execute_returns(substrate_to_evm(stake_after)); }); } @@ -1161,20 +1504,22 @@ mod tests { let precompiles = precompiles::>(); let precompile_addr = addr_from_index(StakingPrecompileV2::::INDEX); - assert_static_call( - &precompiles, - caller, - precompile_addr, - encode_with_selector( - selector_u32("getStake(bytes32,bytes32,uint256)"), - ( - H256::from_slice(hotkey.as_ref()), - H256::from_slice(caller_account.as_ref()), - U256::from(TEST_NETUID_U16), + precompiles + .prepare_test( + caller, + precompile_addr, + encode_with_selector( + selector_u32("getStake(bytes32,bytes32,uint256)"), + ( + H256::from_slice(hotkey.as_ref()), + H256::from_slice(caller_account.as_ref()), + U256::from(TEST_NETUID_U16), + ), ), - ), - U256::from(stake_after), - ); + ) + .with_static_call(true) + .expect_cost(stake_read_cost(1)) + .execute_returns(U256::from(stake_after)); assert_static_call( &precompiles, caller, diff --git a/runtime/src/lib.rs b/runtime/src/lib.rs index 04c1a61e89..545d4d700d 100644 --- a/runtime/src/lib.rs +++ b/runtime/src/lib.rs @@ -235,7 +235,7 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { // `spec_version`, and `authoring_version` are the same between Wasm and native. // This value is set to 100 to notify Polkadot-JS App (https://polkadot.js.org/apps) to use // the compatible custom types. - spec_version: 437, + spec_version: 438, impl_version: 1, apis: RUNTIME_API_VERSIONS, transaction_version: 1, diff --git a/runtime/tests/limit_orders.rs b/runtime/tests/limit_orders.rs index f68191fa29..1fcfc43be8 100644 --- a/runtime/tests/limit_orders.rs +++ b/runtime/tests/limit_orders.rs @@ -20,8 +20,8 @@ use pallet_limit_orders::{ use pallet_subtensor::{SubnetAlphaIn, SubnetMechanism, SubnetTAO}; use sp_core::{Get, H256, Pair}; use sp_keyring::Sr25519Keyring; -use sp_runtime::traits::AccountIdConversion; -use sp_runtime::{MultiSignature, Perbill}; +use sp_runtime::traits::{AccountIdConversion, IdentifyAccount, Verify}; +use sp_runtime::{MultiSignature, MultiSigner, Perbill}; use subtensor_runtime_common::{AccountId, AlphaBalance, NetUid, TaoBalance, Token}; fn new_test_ext() -> sp_io::TestExternalities { @@ -294,18 +294,19 @@ fn cancel_order_works() { }); } -/// An order signed with an Ed25519 key is rejected at validation time even +/// An order signed with an ECDSA key is rejected at validation time even /// though the signature itself is cryptographically valid. The order must not /// appear in the Orders storage map after the batch runs. #[test] -fn execute_orders_ed25519_signature_rejected() { +fn execute_orders_ecdsa_signature_rejected() { new_test_ext().execute_with(|| { - let alice_id = Sr25519Keyring::Alice.to_account_id(); + let pair = sp_core::ecdsa::Pair::from_legacy_string("//Alice", None); + let ecdsa_id = MultiSigner::from(pair.public()).into_account(); let bob_id = Sr25519Keyring::Bob.to_account_id(); let fee_recipient = Sr25519Keyring::Charlie.to_account_id(); let order = VersionedOrder::V1(Order { - signer: alice_id.clone(), + signer: ecdsa_id.clone(), hotkey: bob_id, netuid: NetUid::from(1u16), order_type: OrderType::LimitBuy, @@ -322,19 +323,19 @@ fn execute_orders_ed25519_signature_rejected() { }); let id = order_id(&order); - // Sign with ed25519 — valid signature, wrong scheme. - let ed_pair = sp_core::ed25519::Pair::from_legacy_string("//Alice", None); - let ed_sig = ed_pair.sign(&order.encode()); + // The signature matches the order signer; only the scheme is unsupported. + let signature = MultiSignature::Ecdsa(pair.sign(&order.encode())); + assert!(signature.verify(order.encode().as_slice(), &ecdsa_id)); let signed = SignedOrder { order, - signature: MultiSignature::Ed25519(ed_sig), + signature, partial_fill: None, }; let orders = make_order_batch(vec![signed]); assert_ok!(LimitOrders::execute_orders( - RuntimeOrigin::signed(alice_id), + RuntimeOrigin::signed(ecdsa_id), orders, false, )); @@ -450,6 +451,45 @@ fn limit_buy_order_executes_and_stakes_alpha() { }); } +/// A Ledger-style, wrapped Sr25519 signature is accepted by the runtime and +/// executes the signed order. +#[test] +fn execute_orders_wrapped_sr25519_signature_executes() { + new_test_ext().execute_with(|| { + let netuid = NetUid::from(1u16); + let alice = Sr25519Keyring::Alice; + let alice_id = alice.to_account_id(); + let bob_id = Sr25519Keyring::Bob.to_account_id(); + let relayer = Sr25519Keyring::Charlie.to_account_id(); + + setup_subnet(netuid); + fund_account(&alice_id); + let _ = SubtensorModule::create_account_if_non_existent(&alice_id, &bob_id); + + let mut signed = make_signed_order( + alice, + bob_id, + netuid, + OrderType::LimitBuy, + min_default_stake().into(), + u64::MAX, + u64::MAX, + Perbill::zero(), + relayer.clone(), + ); + let id = order_id(&signed.order); + let payload = [b"".as_slice(), id.as_bytes(), b"".as_slice()].concat(); + signed.signature = MultiSignature::Sr25519(alice.pair().sign(&payload)); + + assert_ok!(LimitOrders::execute_orders( + RuntimeOrigin::signed(relayer), + make_order_batch(vec![signed]), + false, + )); + assert_eq!(Orders::::get(id), Some(OrderStatus::Fulfilled)); + }); +} + /// A TakeProfit order whose price condition is satisfied executes against the pool, /// marks the order as Fulfilled, and burns the seller's staked alpha position. #[test] diff --git a/sdk/bittensor-core-py/pyproject.toml b/sdk/bittensor-core-py/pyproject.toml index 9f5306119c..b0781c3453 100644 --- a/sdk/bittensor-core-py/pyproject.toml +++ b/sdk/bittensor-core-py/pyproject.toml @@ -6,7 +6,7 @@ build-backend = "maturin" name = "bittensor-core" # Static (not read from Cargo.toml) so the release train can stamp PEP 440 # rc/dev suffixes that cargo's semver would reject. -version = "0.1.0" +version = "0.1.1" description = "The chain-defined compute core for Bittensor clients: sp-core keys, keyfiles, drand timelock, ML-KEM, SCALE codec, and RFC-0078 metadata digest, built from the bittensor monorepo" readme = "README.md" requires-python = ">=3.10" diff --git a/sdk/python/README.md b/sdk/python/README.md index 1f89ef2c3c..89745d42d8 100644 --- a/sdk/python/README.md +++ b/sdk/python/README.md @@ -32,7 +32,7 @@ Almost everything is a projection of the chain's own runtime metadata: ## Install -Requires Python 3.10–3.13. Using [uv](https://docs.astral.sh/uv/): +Requires Python 3.10–3.14. Using [uv](https://docs.astral.sh/uv/): ```bash uv venv && source .venv/bin/activate diff --git a/sdk/python/bittensor/_generated/calls.py b/sdk/python/bittensor/_generated/calls.py index fe145a0c42..2119e91fa7 100644 --- a/sdk/python/bittensor/_generated/calls.py +++ b/sdk/python/bittensor/_generated/calls.py @@ -1,7 +1,7 @@ """Generated from runtime metadata by codegen. DO NOT EDIT BY HAND. Regenerate with: python -m codegen -Spec version: 437 +Spec version: 438 """ from typing import Any, NamedTuple diff --git a/sdk/python/bittensor/_generated/constants.py b/sdk/python/bittensor/_generated/constants.py index a07a7c6a14..002b2ad00a 100644 --- a/sdk/python/bittensor/_generated/constants.py +++ b/sdk/python/bittensor/_generated/constants.py @@ -1,7 +1,7 @@ """Generated from runtime metadata by codegen. DO NOT EDIT BY HAND. Regenerate with: python -m codegen -Spec version: 437 +Spec version: 438 Pallet constant descriptors: unpack into substrate.constant. """ diff --git a/sdk/python/bittensor/_generated/errors.py b/sdk/python/bittensor/_generated/errors.py index 7654c4a338..3a326b5dd1 100644 --- a/sdk/python/bittensor/_generated/errors.py +++ b/sdk/python/bittensor/_generated/errors.py @@ -1,7 +1,7 @@ """Generated from runtime metadata by codegen. DO NOT EDIT BY HAND. Regenerate with: python -m codegen -Spec version: 437 +Spec version: 438 """ from dataclasses import dataclass diff --git a/sdk/python/bittensor/_generated/runtime_apis.py b/sdk/python/bittensor/_generated/runtime_apis.py index 3a10bc849d..19e961afb2 100644 --- a/sdk/python/bittensor/_generated/runtime_apis.py +++ b/sdk/python/bittensor/_generated/runtime_apis.py @@ -1,7 +1,7 @@ """Generated from runtime metadata by codegen. DO NOT EDIT BY HAND. Regenerate with: python -m codegen -Spec version: 437 +Spec version: 438 Runtime API method descriptors: unpack into substrate.runtime_call. """ diff --git a/sdk/python/bittensor/_generated/storage.py b/sdk/python/bittensor/_generated/storage.py index 823e11897f..cd76e7ec71 100644 --- a/sdk/python/bittensor/_generated/storage.py +++ b/sdk/python/bittensor/_generated/storage.py @@ -1,7 +1,7 @@ """Generated from runtime metadata by codegen. DO NOT EDIT BY HAND. Regenerate with: python -m codegen -Spec version: 437 +Spec version: 438 Storage item descriptors: unpack into substrate.query/query_map. Each carries its VALUE's type identity (value_type_ident) so normalization can key on the runtime's own type names without a node round-trip. """ diff --git a/sdk/python/bittensor/evm/abi/stakingV2.json b/sdk/python/bittensor/evm/abi/stakingV2.json index 69c1e339f2..c410d0a936 100644 --- a/sdk/python/bittensor/evm/abi/stakingV2.json +++ b/sdk/python/bittensor/evm/abi/stakingV2.json @@ -92,6 +92,47 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "coldkey", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "netuid", + "type": "uint256" + }, + { + "internalType": "bytes32[]", + "name": "hotkeys", + "type": "bytes32[]" + } + ], + "name": "getStakeInfoForColdkeyAndNetuid", + "outputs": [ + { + "components": [ + { + "internalType": "bytes32", + "name": "hotkey", + "type": "bytes32" + }, + { + "internalType": "uint256", + "name": "stake", + "type": "uint256" + } + ], + "internalType": "struct IStaking.StakeInfo[]", + "name": "positions", + "type": "tuple[]" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [ { @@ -196,6 +237,19 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [], + "name": "getDefaultMinStake", + "outputs": [ + { + "internalType": "uint256", + "name": "defaultMinStake", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [ { diff --git a/sdk/python/pyproject.toml b/sdk/python/pyproject.toml index 7c2667331b..26baf7f9f0 100644 --- a/sdk/python/pyproject.toml +++ b/sdk/python/pyproject.toml @@ -4,10 +4,10 @@ build-backend = "hatchling.build" [project] name = "bittensor" -version = "11.0.0.dev0" +version = "11.0.1.dev0" description = "A lean Python SDK (import bittensor) and CLI (btcli) for the Bittensor chain." readme = "README.md" -requires-python = ">=3.10,<3.14" +requires-python = ">=3.10,<3.15" license = { text = "Apache-2.0" } authors = [{ name = "RaoFoundation" }] dependencies = [ @@ -18,7 +18,7 @@ dependencies = [ # Keys, keyfiles, timelock, ML-KEM crypto, and the SCALE codec/runtime # engine: the in-repo Rust core, built against the same crate revisions # as the runtime. - "bittensor-core>=0.1.0,<0.2.0", + "bittensor-core>=0.1.1,<0.2.0", # `btcli` terminal UI. The CLI is a first-class part of the package, so # its dependencies are unconditional. "typer>=0.12.0", @@ -65,7 +65,7 @@ dev = [ "pytest-asyncio>=0.24", "pytest-cov>=6.0", "pytest-xdist>=3.6", - "hypothesis>=6.100", + "hypothesis>=6.161.0", "ruff>=0.14", "ty", ] diff --git a/sdk/python/tests/unit/test_cli.py b/sdk/python/tests/unit/test_cli.py index f89274ce9e..a39178f2c8 100644 --- a/sdk/python/tests/unit/test_cli.py +++ b/sdk/python/tests/unit/test_cli.py @@ -15,7 +15,7 @@ from typer.testing import CliRunner import bittensor.cli.context as cli_context -from bittensor import wallets +from bittensor import __version__, wallets from bittensor.cli.main import app from bittensor.client import Client from bittensor.intents import REGISTRY @@ -77,7 +77,7 @@ def test_help(self): def test_version(self): result = invoke("--version") assert result.exit_code == 0 - assert "11.0.0" in result.output + assert result.output.strip() == __version__ def test_tools_catalog(self): result = invoke("tools") diff --git a/sdk/python/uv.lock b/sdk/python/uv.lock index d58ced3cb9..b68f49f14a 100644 --- a/sdk/python/uv.lock +++ b/sdk/python/uv.lock @@ -1,96 +1,123 @@ version = 1 -requires-python = ">=3.10, <3.14" +revision = 3 +requires-python = ">=3.10, <3.15" [[package]] name = "annotated-doc" version = "0.0.4" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/57/ba/046ceea27344560984e26a590f90bc7f4a75b06701f653222458922b558c/annotated_doc-0.0.4.tar.gz", hash = "sha256:fbcda96e87e9c92ad167c2e53839e57503ecfda18804ea28102353485033faa4", size = 7288 } +sdist = { url = "https://files.pythonhosted.org/packages/57/ba/046ceea27344560984e26a590f90bc7f4a75b06701f653222458922b558c/annotated_doc-0.0.4.tar.gz", hash = "sha256:fbcda96e87e9c92ad167c2e53839e57503ecfda18804ea28102353485033faa4", size = 7288, upload-time = "2025-11-10T22:07:42.062Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/1e/d3/26bf1008eb3d2daa8ef4cacc7f3bfdc11818d111f7e2d0201bc6e3b49d45/annotated_doc-0.0.4-py3-none-any.whl", hash = "sha256:571ac1dc6991c450b25a9c2d84a3705e2ae7a53467b5d111c24fa8baabbed320", size = 5303 }, + { url = "https://files.pythonhosted.org/packages/1e/d3/26bf1008eb3d2daa8ef4cacc7f3bfdc11818d111f7e2d0201bc6e3b49d45/annotated_doc-0.0.4-py3-none-any.whl", hash = "sha256:571ac1dc6991c450b25a9c2d84a3705e2ae7a53467b5d111c24fa8baabbed320", size = 5303, upload-time = "2025-11-10T22:07:40.673Z" }, ] [[package]] name = "annotated-types" version = "0.7.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/ee/67/531ea369ba64dcff5ec9c3402f9f51bf748cec26dde048a2f973a4eea7f5/annotated_types-0.7.0.tar.gz", hash = "sha256:aff07c09a53a08bc8cfccb9c85b05f1aa9a2a6f23728d790723543408344ce89", size = 16081 } +sdist = { url = "https://files.pythonhosted.org/packages/ee/67/531ea369ba64dcff5ec9c3402f9f51bf748cec26dde048a2f973a4eea7f5/annotated_types-0.7.0.tar.gz", hash = "sha256:aff07c09a53a08bc8cfccb9c85b05f1aa9a2a6f23728d790723543408344ce89", size = 16081, upload-time = "2024-05-20T21:33:25.928Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/78/b6/6307fbef88d9b5ee7421e68d78a9f162e0da4900bc5f5793f6d3d0e34fb8/annotated_types-0.7.0-py3-none-any.whl", hash = "sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53", size = 13643 }, + { url = "https://files.pythonhosted.org/packages/78/b6/6307fbef88d9b5ee7421e68d78a9f162e0da4900bc5f5793f6d3d0e34fb8/annotated_types-0.7.0-py3-none-any.whl", hash = "sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53", size = 13643, upload-time = "2024-05-20T21:33:24.1Z" }, ] [[package]] name = "backports-asyncio-runner" version = "1.2.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/8e/ff/70dca7d7cb1cbc0edb2c6cc0c38b65cba36cccc491eca64cabd5fe7f8670/backports_asyncio_runner-1.2.0.tar.gz", hash = "sha256:a5aa7b2b7d8f8bfcaa2b57313f70792df84e32a2a746f585213373f900b42162", size = 69893 } +sdist = { url = "https://files.pythonhosted.org/packages/8e/ff/70dca7d7cb1cbc0edb2c6cc0c38b65cba36cccc491eca64cabd5fe7f8670/backports_asyncio_runner-1.2.0.tar.gz", hash = "sha256:a5aa7b2b7d8f8bfcaa2b57313f70792df84e32a2a746f585213373f900b42162", size = 69893, upload-time = "2025-07-02T02:27:15.685Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/a0/59/76ab57e3fe74484f48a53f8e337171b4a2349e506eabe136d7e01d059086/backports_asyncio_runner-1.2.0-py3-none-any.whl", hash = "sha256:0da0a936a8aeb554eccb426dc55af3ba63bcdc69fa1a600b5bb305413a4477b5", size = 12313 }, + { url = "https://files.pythonhosted.org/packages/a0/59/76ab57e3fe74484f48a53f8e337171b4a2349e506eabe136d7e01d059086/backports_asyncio_runner-1.2.0-py3-none-any.whl", hash = "sha256:0da0a936a8aeb554eccb426dc55af3ba63bcdc69fa1a600b5bb305413a4477b5", size = 12313, upload-time = "2025-07-02T02:27:14.263Z" }, ] [[package]] name = "bitarray" version = "3.8.2" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/bb/9b/ca307b554eaa233d004cae07d5594f9d45affd1f8e118687059aa06fcc6b/bitarray-3.8.2.tar.gz", hash = "sha256:2675a0c17c0b2d12d0fbcf3b27eb833f96936a588da47ac445c0743c5aa69e6b", size = 153516 } +sdist = { url = "https://files.pythonhosted.org/packages/bb/9b/ca307b554eaa233d004cae07d5594f9d45affd1f8e118687059aa06fcc6b/bitarray-3.8.2.tar.gz", hash = "sha256:2675a0c17c0b2d12d0fbcf3b27eb833f96936a588da47ac445c0743c5aa69e6b", size = 153516, upload-time = "2026-06-17T17:22:23.921Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/48/f7/f3dc5577d53e311c7a7650472e847a29361fbd79a5c8c7a34b4be4eae974/bitarray-3.8.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:99f5930731b736e3f9654029f3e9082bfb1721d81f04bff9e6eab8eb38b4dfed", size = 150023 }, - { url = "https://files.pythonhosted.org/packages/74/56/b847e84d0310c19b8a127eda77be2e3429d548d485a6a81ef1ee32a6d91e/bitarray-3.8.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:2e835f33ab5aa297a9ce21b7813222c22ff1618b8f8c5e6f921e54b4ae8b8f43", size = 146927 }, - { url = "https://files.pythonhosted.org/packages/90/71/1aa47086b72034b25b55388335765a6640bc232a5e0aad5dabb4ea677d68/bitarray-3.8.2-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1061cb959efbe3b747c38d550d8d7f0794090a757dd552eae8cf614a5f8d76b6", size = 325474 }, - { url = "https://files.pythonhosted.org/packages/9f/f5/1092c5a3e34a09bbe11149bc9e19c6c23b82c7383ac61d2aef8bb205eda6/bitarray-3.8.2-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:82a6574e98bdddfb7fdac4d41c1176e90e1fcaaed97fda39836a9e0d8b247ec3", size = 353442 }, - { url = "https://files.pythonhosted.org/packages/f7/c0/99755ded6bcde8e577374722f1d14bf43d98a9ceb8bae07e5ad445ff10b8/bitarray-3.8.2-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:9a34663e05bf79ccb92e931e720fbd281e84007ed996d38754aadfbc33e71c24", size = 363901 }, - { url = "https://files.pythonhosted.org/packages/51/b3/312207693283b29d59c9a28ee662e6daa1d762a475dce21811929fb3bd77/bitarray-3.8.2-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:819f93a1aa7e711ccbb083647a8995bbb0da8f741c8b691576ff1bf5b5018c51", size = 331861 }, - { url = "https://files.pythonhosted.org/packages/cc/70/83e0698a8d32322e0ed5c35eda339f85e5a828d8e30e24cbafcaa36e74d9/bitarray-3.8.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:07c20505dc8935b55d6de0bb1cc7e0e35de792d5f118d60b177dee53771a474f", size = 323169 }, - { url = "https://files.pythonhosted.org/packages/28/55/c77597c5d5fab09a24b67b7e626d9de505d91fa03dac728d153663ab8149/bitarray-3.8.2-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:874c6806c2c7b861da0f0e9eead173bb3b9b7a62fcfadc01be51c32d50d7f71c", size = 351476 }, - { url = "https://files.pythonhosted.org/packages/b6/17/fff630b5584985f9f203f89eb16f50a860e5198265eb94e6f4c3af482c96/bitarray-3.8.2-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:4403e5b4da88ec195afe3eab5969b34358157d196e1c63e93328e64e632abbed", size = 347982 }, - { url = "https://files.pythonhosted.org/packages/39/60/7e0c8c84d25251a93a0f56419738a914efe3134923e17f8ead6dbbb336a0/bitarray-3.8.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:8a23e06e87cfa2ba361040eae87479ac197502ba10533c0f2de03d3d93cce91b", size = 328606 }, - { url = "https://files.pythonhosted.org/packages/c6/15/77d9d43e478f2bf9fc84ce2414b845a97369ebfb46d1a3c3e8da72cb4e5a/bitarray-3.8.2-cp310-cp310-win32.whl", hash = "sha256:e65b91b68aa072732d144fa11d86518324b8b27af7e2474bd7a50c88648dc5d4", size = 143238 }, - { url = "https://files.pythonhosted.org/packages/18/8f/17808e4980e88ec314fb40404308d49b648e41092c19e2fb71d2a9e0d058/bitarray-3.8.2-cp310-cp310-win_amd64.whl", hash = "sha256:156c6d964111e1c0029c5bb41148a73aa870ca10c03a03279b5597fa68ac6761", size = 149868 }, - { url = "https://files.pythonhosted.org/packages/42/75/285f2c9315a6ca19fec9281737f2fb31a3401584ccf82e4d689f6142d266/bitarray-3.8.2-cp310-cp310-win_arm64.whl", hash = "sha256:1b7c6fd8755dda32bc83b171e0a0f625fea545bb6f8a70a7481244dc847b1c9e", size = 147722 }, - { url = "https://files.pythonhosted.org/packages/48/85/c19b7928447d4259418b915857200f7a471920e88241d5a27083a4ceedb2/bitarray-3.8.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:7540de3e7609693b208020cb3cb28cb16395eb915dff742bdcdd9909d475bf3d", size = 150025 }, - { url = "https://files.pythonhosted.org/packages/27/a2/3faeec7783733b596f63b887eb29fd6abfda6937195a269dc1fc6236ac76/bitarray-3.8.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:c073cd936904e520990339745a2d561ceabc9daa1cefcaf9592196a3355eb1cd", size = 146925 }, - { url = "https://files.pythonhosted.org/packages/68/75/b8e778aaa9d184b1361560a96974d99400c43e70f389a17382951969165e/bitarray-3.8.2-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c4c1c97c5712ad45c6c1427b70bb6524f40532e4a544ca2b7e0375ca61c09244", size = 333297 }, - { url = "https://files.pythonhosted.org/packages/74/18/4c52fa2ec6dac3db01fd51ab2fdccba0a3e86b9b3eb9c76ab6e6e9190008/bitarray-3.8.2-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:7627bfa750a609f5df05c1da337984b8f3821927591aaf861ba70f38bc5f6da1", size = 361658 }, - { url = "https://files.pythonhosted.org/packages/8e/ff/3e34aef8ad52ef63eb426dada698de6240cf45a99a6949b4678954e96814/bitarray-3.8.2-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:ff06e0511682f117d0c24828f0ef1b4f2c3617d38984c7b3ce78d107bee016ab", size = 372260 }, - { url = "https://files.pythonhosted.org/packages/f2/26/6a7e0f9254753b7c81ef3a7465533e7de0aa7da882aec6c19e993329d4d7/bitarray-3.8.2-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:bcaeccab426b0a6e26c10bd8d8c21c15f81757320ad158a8c9e3e953ab81d223", size = 339446 }, - { url = "https://files.pythonhosted.org/packages/37/2f/e866171e3b4ab8f12378d8fbd0d24944a12af623c130126b1e8d145deecc/bitarray-3.8.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:385045390630f5f433c89caeed9bca9f5b40e3986ae2d7e829e93098c1a96b94", size = 331180 }, - { url = "https://files.pythonhosted.org/packages/be/ee/9371212756ab3e9c0f3247709ec3b341015ca8fc7d9de4a3a2f30c2b4439/bitarray-3.8.2-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:30541722bfa0f8213d8e621772bef538204fe9eeb4357f4261d404688c2281a5", size = 359108 }, - { url = "https://files.pythonhosted.org/packages/75/4c/97d2ced53249890cbb6f16569da2fd4c73f767faf70bbbc03bd7329caa02/bitarray-3.8.2-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:3daf8f1e040d48bf7ee664bd5c9df9d029c55780c671221d753f6f4fc769f10a", size = 356253 }, - { url = "https://files.pythonhosted.org/packages/a6/cc/68d2d511182c5cced2734086ca6b5b7fc778ce1babcfbe5e43d33fffde48/bitarray-3.8.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:c223cf53e4a458b05b9f78723d88d5a1221fa11fb00cd1a696ccd483dcae3f8c", size = 336632 }, - { url = "https://files.pythonhosted.org/packages/b6/b4/739981ea2ea25e8199c3f58e3ac6b52749d26f4999db5bf673dadabef83f/bitarray-3.8.2-cp311-cp311-win32.whl", hash = "sha256:d9367a5eb2a3dda6958a129ca939ce7dd1555a3b13967eb2e7c9dc8df2cdffa0", size = 143420 }, - { url = "https://files.pythonhosted.org/packages/52/f1/841be2f5c3d1c79ab319eaf52871afb6616f8c7e6ef916517ef13b7e4c47/bitarray-3.8.2-cp311-cp311-win_amd64.whl", hash = "sha256:2d0af077831aff8f44d8befe6459544bea1cd8fbce6b5b2a30ae1cb086a50620", size = 150060 }, - { url = "https://files.pythonhosted.org/packages/82/de/5d275dcb5abc23ccf3139b478e304efc41d7bd7dc78901bfcc5ef3f251ff/bitarray-3.8.2-cp311-cp311-win_arm64.whl", hash = "sha256:a78778a0899c682537ac612b1a03ecd4ad30063c118825d0138d0f7518270e54", size = 148006 }, - { url = "https://files.pythonhosted.org/packages/52/20/53916ba8d01bc92e01d89c03cd7745107df48923de091b5f957578ff38ff/bitarray-3.8.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:d5dcca2b64bbfce46dc43d77a2973d0b949e2260d74e8bd4e9a766de3afd0e70", size = 150156 }, - { url = "https://files.pythonhosted.org/packages/18/a8/bfa7c8f4141b3119decc54ff6656b8e2f6d4303dc71577021f2d4b42cf42/bitarray-3.8.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:c78dfbb8883133caeb11aa4ec375165ff1b456a28898cbe45536173369accb24", size = 146884 }, - { url = "https://files.pythonhosted.org/packages/f5/60/fb0e9118dce7e1858fc4f608d0c13460207b227fc13819a23c6f3c70ec78/bitarray-3.8.2-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c32189234e4206c3832f947ebdf1735926dea0dbe0e966effd62771884dedf63", size = 336496 }, - { url = "https://files.pythonhosted.org/packages/be/b5/8d50bb4d55113535919812adb66dcdb590a95a032d5975254d951146c2b4/bitarray-3.8.2-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:26490091d3ad8c039829b33ab1bc776941ce359ecdcf8beef3c1efc330fcf1a5", size = 364673 }, - { url = "https://files.pythonhosted.org/packages/f2/c2/90ca21488fb0ac791a00b98c49c3dbab7ca1aca59e8745dabe073133370f/bitarray-3.8.2-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:8ad858bd35dbb554de248c277ba9052f31d8e153c133195ef40c198303725dc8", size = 375966 }, - { url = "https://files.pythonhosted.org/packages/3b/39/f414699060068ef15b886353e6ae6d2f476715e5c7db205b47710e5e7b4c/bitarray-3.8.2-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:58aeaf943929716b411a4ff24422c2b8bbf2c2d8ef3e23bbf08dc7d47c49e2ae", size = 343994 }, - { url = "https://files.pythonhosted.org/packages/32/84/70a8ae25ba927f0b7656041c7cceea011296cbf6cc3770788bc331a5be88/bitarray-3.8.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:3b016d736e2b4aa8962962724b69893adce076622374cf4a275503049f5c7207", size = 334129 }, - { url = "https://files.pythonhosted.org/packages/4e/20/3ec71a1e9a8cab12e7306cbfcf0f6e6ae7726f11ca4a7aa2bd047d8d105e/bitarray-3.8.2-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:6871b2b1680580e54fbf0196b3ab7b40a417b4d1fdb3ebda0debf3948e9b8604", size = 361708 }, - { url = "https://files.pythonhosted.org/packages/90/fc/6cae06eac8a25e5715f5607de6bae4bc3ec3b0634f790d5e22debab1802d/bitarray-3.8.2-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:a4c6bb948d011bf18642e09a0a4d1dd067f0722db09d2d4b5d6cce292d71b448", size = 359888 }, - { url = "https://files.pythonhosted.org/packages/c0/cc/078932ee7b41862571e8b3cfb7dc4e03af5c4843b8246a5a663af8678773/bitarray-3.8.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:78622f067a89360e8acf146be7878f62deafe687db40feb16dabfc808a20717c", size = 340969 }, - { url = "https://files.pythonhosted.org/packages/f6/19/719edf77615864263a12351287832979b02a6277b4058ec6b53669ecbf7e/bitarray-3.8.2-cp312-cp312-win32.whl", hash = "sha256:75999de62a7c4686b901458d441bc3c6c03dade68d1dfbe808439e748d086ea3", size = 143759 }, - { url = "https://files.pythonhosted.org/packages/e9/af/6806f09441de299ccd42b361c2e25138425457331c0e59aef23aba0e901e/bitarray-3.8.2-cp312-cp312-win_amd64.whl", hash = "sha256:3e44247fcf5dffa86031d5412b20278a953e4dcef4033012c93ebd9985d48fec", size = 150393 }, - { url = "https://files.pythonhosted.org/packages/99/e0/b9c738cfc16a59fcb4b17dd4f699d235257d2d3074e403892d4cd37ccc53/bitarray-3.8.2-cp312-cp312-win_arm64.whl", hash = "sha256:f823fa67f074c0ede82014fd5c2020f301b88f351635f5ba7b802f53b5e0eade", size = 148168 }, - { url = "https://files.pythonhosted.org/packages/48/99/01fb3b90cbf8a930d2326945df2b28a5f046380c0f966ea78cada00dae45/bitarray-3.8.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:71d7350c801eea43afb0a8679fd7475b0fd9868fd15352f0d3069f335b44af06", size = 150167 }, - { url = "https://files.pythonhosted.org/packages/e7/ce/b26a94753fcfd9e7652805a539df60a83085997319be81ef6d59192ad37c/bitarray-3.8.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:aa3be101ed71c4e4989899da744a926d1f55f5d5f7f93242c32f727f7c11350b", size = 146882 }, - { url = "https://files.pythonhosted.org/packages/a9/8e/0bdf36618f4f585d5c35cb033f6a5611337d873d8718feca41d27453cc54/bitarray-3.8.2-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0f684eb138bae893a5d98c811d99ecd89fa4a1af4700b0e512b8e2b794c9cabd", size = 335677 }, - { url = "https://files.pythonhosted.org/packages/cc/99/5588cbe69640d7fa2386be315ddb0e1bde6de8e922c025dccee769cc6d9e/bitarray-3.8.2-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:94e7da622b723705caddd59ee681cee0355b444901cc6fb2bcdc24bafba85911", size = 363773 }, - { url = "https://files.pythonhosted.org/packages/80/4f/7d2946d88ae77306833bd5b91746d212404d5a86347341274b61d08c3f7e/bitarray-3.8.2-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:3110786b00b28a756fd948c8d63e6ca3a74810b2d115582d85593d9d48035c49", size = 375005 }, - { url = "https://files.pythonhosted.org/packages/fd/be/9a645b2e1bb0da4779dd9cab5a075d7c5bb68a16d8c90f051d47393bbcfe/bitarray-3.8.2-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:fd40cf27e2b54b5e30d0ce1da4f59bc16dd7c8363a20786b6e9deeb0b8ebe8e0", size = 343273 }, - { url = "https://files.pythonhosted.org/packages/98/8d/73c658d200671c5e023225163be6aa545f675a676e960e5a4e19ac21274b/bitarray-3.8.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:24c6b97f27bd3868e28b201e1d777f5e168805862b7d9528099138bbb8c6a636", size = 333403 }, - { url = "https://files.pythonhosted.org/packages/94/bc/819abd376bd6a892ce27840a1d5a4378be228be1ab3bca41845203ee672b/bitarray-3.8.2-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:786dedb4b1ced22dfeaaa89902561616f7edfa91774702b1aac31df3a6073c88", size = 360846 }, - { url = "https://files.pythonhosted.org/packages/83/59/b8ea1e31928d06db1f2b12187631b51bb3c83186b18581754bc008cec0aa/bitarray-3.8.2-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:01bf9ff247117533c11963a81f3529bc12283c600dd195cf3b28a97b095f5d1c", size = 359168 }, - { url = "https://files.pythonhosted.org/packages/6e/31/ef3b2f58517f7dbba8119f2592c1ea556a687bc8d405dd93c07f9c28d514/bitarray-3.8.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:cc7a76e77c158e793d7c1e0b6c2240374087ac690a8bcacc8f18c427e5d9e20c", size = 340091 }, - { url = "https://files.pythonhosted.org/packages/8f/83/bf92dcfec4eefd59fa4d8491504e100ae86e11b8cec353ae5532b25708e6/bitarray-3.8.2-cp313-cp313-win32.whl", hash = "sha256:db9add8dcc87154c0f011e0e1ce9b856e5948fbcf6faf44305aa140e525ec9a7", size = 143786 }, - { url = "https://files.pythonhosted.org/packages/1c/29/1f57913a96bffb27bed486a9ca592021dd8161f6c95fd632aad7d4f0bb95/bitarray-3.8.2-cp313-cp313-win_amd64.whl", hash = "sha256:cf4926098970d2d1a14156c0fbddb47554124347db4acf3ba616064fb021cd1e", size = 150414 }, - { url = "https://files.pythonhosted.org/packages/17/9c/f36b91fcb93af54c9a28e3bd1fbf39ef7706fc623a526f3450113c0a0dae/bitarray-3.8.2-cp313-cp313-win_arm64.whl", hash = "sha256:5c8281d0eb35e8685235e1d50f9b26156803dad398d0e7868ce9aae254c3777d", size = 148197 }, + { url = "https://files.pythonhosted.org/packages/48/f7/f3dc5577d53e311c7a7650472e847a29361fbd79a5c8c7a34b4be4eae974/bitarray-3.8.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:99f5930731b736e3f9654029f3e9082bfb1721d81f04bff9e6eab8eb38b4dfed", size = 150023, upload-time = "2026-06-17T17:19:57.898Z" }, + { url = "https://files.pythonhosted.org/packages/74/56/b847e84d0310c19b8a127eda77be2e3429d548d485a6a81ef1ee32a6d91e/bitarray-3.8.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:2e835f33ab5aa297a9ce21b7813222c22ff1618b8f8c5e6f921e54b4ae8b8f43", size = 146927, upload-time = "2026-06-17T17:19:59.585Z" }, + { url = "https://files.pythonhosted.org/packages/90/71/1aa47086b72034b25b55388335765a6640bc232a5e0aad5dabb4ea677d68/bitarray-3.8.2-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1061cb959efbe3b747c38d550d8d7f0794090a757dd552eae8cf614a5f8d76b6", size = 325474, upload-time = "2026-06-17T17:20:00.806Z" }, + { url = "https://files.pythonhosted.org/packages/9f/f5/1092c5a3e34a09bbe11149bc9e19c6c23b82c7383ac61d2aef8bb205eda6/bitarray-3.8.2-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:82a6574e98bdddfb7fdac4d41c1176e90e1fcaaed97fda39836a9e0d8b247ec3", size = 353442, upload-time = "2026-06-17T17:20:02.082Z" }, + { url = "https://files.pythonhosted.org/packages/f7/c0/99755ded6bcde8e577374722f1d14bf43d98a9ceb8bae07e5ad445ff10b8/bitarray-3.8.2-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:9a34663e05bf79ccb92e931e720fbd281e84007ed996d38754aadfbc33e71c24", size = 363901, upload-time = "2026-06-17T17:20:03.418Z" }, + { url = "https://files.pythonhosted.org/packages/51/b3/312207693283b29d59c9a28ee662e6daa1d762a475dce21811929fb3bd77/bitarray-3.8.2-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:819f93a1aa7e711ccbb083647a8995bbb0da8f741c8b691576ff1bf5b5018c51", size = 331861, upload-time = "2026-06-17T17:20:04.69Z" }, + { url = "https://files.pythonhosted.org/packages/cc/70/83e0698a8d32322e0ed5c35eda339f85e5a828d8e30e24cbafcaa36e74d9/bitarray-3.8.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:07c20505dc8935b55d6de0bb1cc7e0e35de792d5f118d60b177dee53771a474f", size = 323169, upload-time = "2026-06-17T17:20:05.986Z" }, + { url = "https://files.pythonhosted.org/packages/28/55/c77597c5d5fab09a24b67b7e626d9de505d91fa03dac728d153663ab8149/bitarray-3.8.2-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:874c6806c2c7b861da0f0e9eead173bb3b9b7a62fcfadc01be51c32d50d7f71c", size = 351476, upload-time = "2026-06-17T17:20:07.249Z" }, + { url = "https://files.pythonhosted.org/packages/b6/17/fff630b5584985f9f203f89eb16f50a860e5198265eb94e6f4c3af482c96/bitarray-3.8.2-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:4403e5b4da88ec195afe3eab5969b34358157d196e1c63e93328e64e632abbed", size = 347982, upload-time = "2026-06-17T17:20:08.616Z" }, + { url = "https://files.pythonhosted.org/packages/39/60/7e0c8c84d25251a93a0f56419738a914efe3134923e17f8ead6dbbb336a0/bitarray-3.8.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:8a23e06e87cfa2ba361040eae87479ac197502ba10533c0f2de03d3d93cce91b", size = 328606, upload-time = "2026-06-17T17:20:09.741Z" }, + { url = "https://files.pythonhosted.org/packages/c6/15/77d9d43e478f2bf9fc84ce2414b845a97369ebfb46d1a3c3e8da72cb4e5a/bitarray-3.8.2-cp310-cp310-win32.whl", hash = "sha256:e65b91b68aa072732d144fa11d86518324b8b27af7e2474bd7a50c88648dc5d4", size = 143238, upload-time = "2026-06-17T17:20:10.924Z" }, + { url = "https://files.pythonhosted.org/packages/18/8f/17808e4980e88ec314fb40404308d49b648e41092c19e2fb71d2a9e0d058/bitarray-3.8.2-cp310-cp310-win_amd64.whl", hash = "sha256:156c6d964111e1c0029c5bb41148a73aa870ca10c03a03279b5597fa68ac6761", size = 149868, upload-time = "2026-06-17T17:20:11.981Z" }, + { url = "https://files.pythonhosted.org/packages/42/75/285f2c9315a6ca19fec9281737f2fb31a3401584ccf82e4d689f6142d266/bitarray-3.8.2-cp310-cp310-win_arm64.whl", hash = "sha256:1b7c6fd8755dda32bc83b171e0a0f625fea545bb6f8a70a7481244dc847b1c9e", size = 147722, upload-time = "2026-06-17T17:20:13.038Z" }, + { url = "https://files.pythonhosted.org/packages/48/85/c19b7928447d4259418b915857200f7a471920e88241d5a27083a4ceedb2/bitarray-3.8.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:7540de3e7609693b208020cb3cb28cb16395eb915dff742bdcdd9909d475bf3d", size = 150025, upload-time = "2026-06-17T17:20:14.573Z" }, + { url = "https://files.pythonhosted.org/packages/27/a2/3faeec7783733b596f63b887eb29fd6abfda6937195a269dc1fc6236ac76/bitarray-3.8.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:c073cd936904e520990339745a2d561ceabc9daa1cefcaf9592196a3355eb1cd", size = 146925, upload-time = "2026-06-17T17:20:15.747Z" }, + { url = "https://files.pythonhosted.org/packages/68/75/b8e778aaa9d184b1361560a96974d99400c43e70f389a17382951969165e/bitarray-3.8.2-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c4c1c97c5712ad45c6c1427b70bb6524f40532e4a544ca2b7e0375ca61c09244", size = 333297, upload-time = "2026-06-17T17:20:16.851Z" }, + { url = "https://files.pythonhosted.org/packages/74/18/4c52fa2ec6dac3db01fd51ab2fdccba0a3e86b9b3eb9c76ab6e6e9190008/bitarray-3.8.2-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:7627bfa750a609f5df05c1da337984b8f3821927591aaf861ba70f38bc5f6da1", size = 361658, upload-time = "2026-06-17T17:20:18.242Z" }, + { url = "https://files.pythonhosted.org/packages/8e/ff/3e34aef8ad52ef63eb426dada698de6240cf45a99a6949b4678954e96814/bitarray-3.8.2-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:ff06e0511682f117d0c24828f0ef1b4f2c3617d38984c7b3ce78d107bee016ab", size = 372260, upload-time = "2026-06-17T17:20:19.438Z" }, + { url = "https://files.pythonhosted.org/packages/f2/26/6a7e0f9254753b7c81ef3a7465533e7de0aa7da882aec6c19e993329d4d7/bitarray-3.8.2-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:bcaeccab426b0a6e26c10bd8d8c21c15f81757320ad158a8c9e3e953ab81d223", size = 339446, upload-time = "2026-06-17T17:20:20.794Z" }, + { url = "https://files.pythonhosted.org/packages/37/2f/e866171e3b4ab8f12378d8fbd0d24944a12af623c130126b1e8d145deecc/bitarray-3.8.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:385045390630f5f433c89caeed9bca9f5b40e3986ae2d7e829e93098c1a96b94", size = 331180, upload-time = "2026-06-17T17:20:21.904Z" }, + { url = "https://files.pythonhosted.org/packages/be/ee/9371212756ab3e9c0f3247709ec3b341015ca8fc7d9de4a3a2f30c2b4439/bitarray-3.8.2-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:30541722bfa0f8213d8e621772bef538204fe9eeb4357f4261d404688c2281a5", size = 359108, upload-time = "2026-06-17T17:20:23.112Z" }, + { url = "https://files.pythonhosted.org/packages/75/4c/97d2ced53249890cbb6f16569da2fd4c73f767faf70bbbc03bd7329caa02/bitarray-3.8.2-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:3daf8f1e040d48bf7ee664bd5c9df9d029c55780c671221d753f6f4fc769f10a", size = 356253, upload-time = "2026-06-17T17:20:24.447Z" }, + { url = "https://files.pythonhosted.org/packages/a6/cc/68d2d511182c5cced2734086ca6b5b7fc778ce1babcfbe5e43d33fffde48/bitarray-3.8.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:c223cf53e4a458b05b9f78723d88d5a1221fa11fb00cd1a696ccd483dcae3f8c", size = 336632, upload-time = "2026-06-17T17:20:25.786Z" }, + { url = "https://files.pythonhosted.org/packages/b6/b4/739981ea2ea25e8199c3f58e3ac6b52749d26f4999db5bf673dadabef83f/bitarray-3.8.2-cp311-cp311-win32.whl", hash = "sha256:d9367a5eb2a3dda6958a129ca939ce7dd1555a3b13967eb2e7c9dc8df2cdffa0", size = 143420, upload-time = "2026-06-17T17:20:26.906Z" }, + { url = "https://files.pythonhosted.org/packages/52/f1/841be2f5c3d1c79ab319eaf52871afb6616f8c7e6ef916517ef13b7e4c47/bitarray-3.8.2-cp311-cp311-win_amd64.whl", hash = "sha256:2d0af077831aff8f44d8befe6459544bea1cd8fbce6b5b2a30ae1cb086a50620", size = 150060, upload-time = "2026-06-17T17:20:28.094Z" }, + { url = "https://files.pythonhosted.org/packages/82/de/5d275dcb5abc23ccf3139b478e304efc41d7bd7dc78901bfcc5ef3f251ff/bitarray-3.8.2-cp311-cp311-win_arm64.whl", hash = "sha256:a78778a0899c682537ac612b1a03ecd4ad30063c118825d0138d0f7518270e54", size = 148006, upload-time = "2026-06-17T17:20:29.193Z" }, + { url = "https://files.pythonhosted.org/packages/52/20/53916ba8d01bc92e01d89c03cd7745107df48923de091b5f957578ff38ff/bitarray-3.8.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:d5dcca2b64bbfce46dc43d77a2973d0b949e2260d74e8bd4e9a766de3afd0e70", size = 150156, upload-time = "2026-06-17T17:20:30.372Z" }, + { url = "https://files.pythonhosted.org/packages/18/a8/bfa7c8f4141b3119decc54ff6656b8e2f6d4303dc71577021f2d4b42cf42/bitarray-3.8.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:c78dfbb8883133caeb11aa4ec375165ff1b456a28898cbe45536173369accb24", size = 146884, upload-time = "2026-06-17T17:20:31.615Z" }, + { url = "https://files.pythonhosted.org/packages/f5/60/fb0e9118dce7e1858fc4f608d0c13460207b227fc13819a23c6f3c70ec78/bitarray-3.8.2-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c32189234e4206c3832f947ebdf1735926dea0dbe0e966effd62771884dedf63", size = 336496, upload-time = "2026-06-17T17:20:32.944Z" }, + { url = "https://files.pythonhosted.org/packages/be/b5/8d50bb4d55113535919812adb66dcdb590a95a032d5975254d951146c2b4/bitarray-3.8.2-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:26490091d3ad8c039829b33ab1bc776941ce359ecdcf8beef3c1efc330fcf1a5", size = 364673, upload-time = "2026-06-17T17:20:34.394Z" }, + { url = "https://files.pythonhosted.org/packages/f2/c2/90ca21488fb0ac791a00b98c49c3dbab7ca1aca59e8745dabe073133370f/bitarray-3.8.2-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:8ad858bd35dbb554de248c277ba9052f31d8e153c133195ef40c198303725dc8", size = 375966, upload-time = "2026-06-17T17:20:35.555Z" }, + { url = "https://files.pythonhosted.org/packages/3b/39/f414699060068ef15b886353e6ae6d2f476715e5c7db205b47710e5e7b4c/bitarray-3.8.2-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:58aeaf943929716b411a4ff24422c2b8bbf2c2d8ef3e23bbf08dc7d47c49e2ae", size = 343994, upload-time = "2026-06-17T17:20:37.24Z" }, + { url = "https://files.pythonhosted.org/packages/32/84/70a8ae25ba927f0b7656041c7cceea011296cbf6cc3770788bc331a5be88/bitarray-3.8.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:3b016d736e2b4aa8962962724b69893adce076622374cf4a275503049f5c7207", size = 334129, upload-time = "2026-06-17T17:20:38.476Z" }, + { url = "https://files.pythonhosted.org/packages/4e/20/3ec71a1e9a8cab12e7306cbfcf0f6e6ae7726f11ca4a7aa2bd047d8d105e/bitarray-3.8.2-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:6871b2b1680580e54fbf0196b3ab7b40a417b4d1fdb3ebda0debf3948e9b8604", size = 361708, upload-time = "2026-06-17T17:20:40.302Z" }, + { url = "https://files.pythonhosted.org/packages/90/fc/6cae06eac8a25e5715f5607de6bae4bc3ec3b0634f790d5e22debab1802d/bitarray-3.8.2-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:a4c6bb948d011bf18642e09a0a4d1dd067f0722db09d2d4b5d6cce292d71b448", size = 359888, upload-time = "2026-06-17T17:20:42.132Z" }, + { url = "https://files.pythonhosted.org/packages/c0/cc/078932ee7b41862571e8b3cfb7dc4e03af5c4843b8246a5a663af8678773/bitarray-3.8.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:78622f067a89360e8acf146be7878f62deafe687db40feb16dabfc808a20717c", size = 340969, upload-time = "2026-06-17T17:20:43.326Z" }, + { url = "https://files.pythonhosted.org/packages/f6/19/719edf77615864263a12351287832979b02a6277b4058ec6b53669ecbf7e/bitarray-3.8.2-cp312-cp312-win32.whl", hash = "sha256:75999de62a7c4686b901458d441bc3c6c03dade68d1dfbe808439e748d086ea3", size = 143759, upload-time = "2026-06-17T17:20:44.753Z" }, + { url = "https://files.pythonhosted.org/packages/e9/af/6806f09441de299ccd42b361c2e25138425457331c0e59aef23aba0e901e/bitarray-3.8.2-cp312-cp312-win_amd64.whl", hash = "sha256:3e44247fcf5dffa86031d5412b20278a953e4dcef4033012c93ebd9985d48fec", size = 150393, upload-time = "2026-06-17T17:20:45.983Z" }, + { url = "https://files.pythonhosted.org/packages/99/e0/b9c738cfc16a59fcb4b17dd4f699d235257d2d3074e403892d4cd37ccc53/bitarray-3.8.2-cp312-cp312-win_arm64.whl", hash = "sha256:f823fa67f074c0ede82014fd5c2020f301b88f351635f5ba7b802f53b5e0eade", size = 148168, upload-time = "2026-06-17T17:20:47.169Z" }, + { url = "https://files.pythonhosted.org/packages/48/99/01fb3b90cbf8a930d2326945df2b28a5f046380c0f966ea78cada00dae45/bitarray-3.8.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:71d7350c801eea43afb0a8679fd7475b0fd9868fd15352f0d3069f335b44af06", size = 150167, upload-time = "2026-06-17T17:20:48.408Z" }, + { url = "https://files.pythonhosted.org/packages/e7/ce/b26a94753fcfd9e7652805a539df60a83085997319be81ef6d59192ad37c/bitarray-3.8.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:aa3be101ed71c4e4989899da744a926d1f55f5d5f7f93242c32f727f7c11350b", size = 146882, upload-time = "2026-06-17T17:20:49.58Z" }, + { url = "https://files.pythonhosted.org/packages/a9/8e/0bdf36618f4f585d5c35cb033f6a5611337d873d8718feca41d27453cc54/bitarray-3.8.2-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0f684eb138bae893a5d98c811d99ecd89fa4a1af4700b0e512b8e2b794c9cabd", size = 335677, upload-time = "2026-06-17T17:20:50.856Z" }, + { url = "https://files.pythonhosted.org/packages/cc/99/5588cbe69640d7fa2386be315ddb0e1bde6de8e922c025dccee769cc6d9e/bitarray-3.8.2-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:94e7da622b723705caddd59ee681cee0355b444901cc6fb2bcdc24bafba85911", size = 363773, upload-time = "2026-06-17T17:20:52.143Z" }, + { url = "https://files.pythonhosted.org/packages/80/4f/7d2946d88ae77306833bd5b91746d212404d5a86347341274b61d08c3f7e/bitarray-3.8.2-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:3110786b00b28a756fd948c8d63e6ca3a74810b2d115582d85593d9d48035c49", size = 375005, upload-time = "2026-06-17T17:20:53.525Z" }, + { url = "https://files.pythonhosted.org/packages/fd/be/9a645b2e1bb0da4779dd9cab5a075d7c5bb68a16d8c90f051d47393bbcfe/bitarray-3.8.2-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:fd40cf27e2b54b5e30d0ce1da4f59bc16dd7c8363a20786b6e9deeb0b8ebe8e0", size = 343273, upload-time = "2026-06-17T17:20:54.938Z" }, + { url = "https://files.pythonhosted.org/packages/98/8d/73c658d200671c5e023225163be6aa545f675a676e960e5a4e19ac21274b/bitarray-3.8.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:24c6b97f27bd3868e28b201e1d777f5e168805862b7d9528099138bbb8c6a636", size = 333403, upload-time = "2026-06-17T17:20:56.533Z" }, + { url = "https://files.pythonhosted.org/packages/94/bc/819abd376bd6a892ce27840a1d5a4378be228be1ab3bca41845203ee672b/bitarray-3.8.2-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:786dedb4b1ced22dfeaaa89902561616f7edfa91774702b1aac31df3a6073c88", size = 360846, upload-time = "2026-06-17T17:20:57.862Z" }, + { url = "https://files.pythonhosted.org/packages/83/59/b8ea1e31928d06db1f2b12187631b51bb3c83186b18581754bc008cec0aa/bitarray-3.8.2-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:01bf9ff247117533c11963a81f3529bc12283c600dd195cf3b28a97b095f5d1c", size = 359168, upload-time = "2026-06-17T17:20:59.48Z" }, + { url = "https://files.pythonhosted.org/packages/6e/31/ef3b2f58517f7dbba8119f2592c1ea556a687bc8d405dd93c07f9c28d514/bitarray-3.8.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:cc7a76e77c158e793d7c1e0b6c2240374087ac690a8bcacc8f18c427e5d9e20c", size = 340091, upload-time = "2026-06-17T17:21:01.183Z" }, + { url = "https://files.pythonhosted.org/packages/8f/83/bf92dcfec4eefd59fa4d8491504e100ae86e11b8cec353ae5532b25708e6/bitarray-3.8.2-cp313-cp313-win32.whl", hash = "sha256:db9add8dcc87154c0f011e0e1ce9b856e5948fbcf6faf44305aa140e525ec9a7", size = 143786, upload-time = "2026-06-17T17:21:02.43Z" }, + { url = "https://files.pythonhosted.org/packages/1c/29/1f57913a96bffb27bed486a9ca592021dd8161f6c95fd632aad7d4f0bb95/bitarray-3.8.2-cp313-cp313-win_amd64.whl", hash = "sha256:cf4926098970d2d1a14156c0fbddb47554124347db4acf3ba616064fb021cd1e", size = 150414, upload-time = "2026-06-17T17:21:03.649Z" }, + { url = "https://files.pythonhosted.org/packages/17/9c/f36b91fcb93af54c9a28e3bd1fbf39ef7706fc623a526f3450113c0a0dae/bitarray-3.8.2-cp313-cp313-win_arm64.whl", hash = "sha256:5c8281d0eb35e8685235e1d50f9b26156803dad398d0e7868ce9aae254c3777d", size = 148197, upload-time = "2026-06-17T17:21:04.892Z" }, + { url = "https://files.pythonhosted.org/packages/c6/86/aa2f29699763f4867359289a946ff3597d45239470c20f6ccb8dba48e7af/bitarray-3.8.2-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:cbe96e7384e36963a2cdf5bc4ac9d0a78ae0d87fc78c53159cd5ac08c661ff34", size = 150139, upload-time = "2026-06-17T17:21:06.258Z" }, + { url = "https://files.pythonhosted.org/packages/56/1f/0d759c53a7129e4979c3c03b3f2372291c4c5a1cc851d9e749273b34ddf8/bitarray-3.8.2-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:8b4fcecbbd0969988cc115bee74119c767636e48606fad318361eb9fe40a13c6", size = 146888, upload-time = "2026-06-17T17:21:07.515Z" }, + { url = "https://files.pythonhosted.org/packages/49/2e/0611d057e6cb010ccaf55ec6630ef41d3e7546a285383dfa2a99f545e440/bitarray-3.8.2-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:48798fc274e8a0329ca75185a0dc1e0a93ff627ea8f30c339bdf0a2ef26b1723", size = 335581, upload-time = "2026-06-17T17:21:08.808Z" }, + { url = "https://files.pythonhosted.org/packages/11/0d/201befb06fbb6275046ffe2d21cbe3b059e4f5c6b258da6e6b41f53dd9af/bitarray-3.8.2-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:f4205ae045129e58e7b7a9abe929ea0b9a3c63fad39d760e6e3b90062b6e5aa5", size = 363929, upload-time = "2026-06-17T17:21:10.225Z" }, + { url = "https://files.pythonhosted.org/packages/b6/3c/2639aaa97eb81cabc453f78277493ea31ff49b3514e17eca56129d613279/bitarray-3.8.2-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:49c16cdedbd3c4d6bf64aca7b370ea02456e9be030201e80c282d8df6af36d19", size = 374562, upload-time = "2026-06-17T17:21:11.771Z" }, + { url = "https://files.pythonhosted.org/packages/52/1d/f11ba5b55f6a0f0007985f435c0e32c7a3459775cdee308cfb5938628670/bitarray-3.8.2-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a5cad241cd0ceb79a0e4f76e86b36660c22d36c32efb364badcf7609ed5a9e5c", size = 343166, upload-time = "2026-06-17T17:21:13.101Z" }, + { url = "https://files.pythonhosted.org/packages/4b/b9/2f8f62e1cd42f60f20ca55ed3de57ff2295b85a70eff119501ae2f0e8c48/bitarray-3.8.2-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:e3b44650aba323cb1c2285c310ffa6b1adfd5293acecd7f84aaa91afa27c802c", size = 333564, upload-time = "2026-06-17T17:21:14.629Z" }, + { url = "https://files.pythonhosted.org/packages/22/de/1525e32e7663980b82098ae0c6e032823782b9190cabed6a1f09e67c7831/bitarray-3.8.2-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:5fc8fa50c6a89b1e75edcea4ae17787a0a9b424cdbaa03485e73a837262eca27", size = 361034, upload-time = "2026-06-17T17:21:16.318Z" }, + { url = "https://files.pythonhosted.org/packages/df/55/7bfe6af3fa577f5132380209c3f3ec560149c0af4e540ce16d84f8b76599/bitarray-3.8.2-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:5f246319a26221e36eaf3f6aed9cd98172f81e91740bbf5cdf31b4490ecfb87a", size = 358728, upload-time = "2026-06-17T17:21:17.598Z" }, + { url = "https://files.pythonhosted.org/packages/9d/c8/85898711f7b4cf5b06c49d8e36a6702a303f1990cb21cbb39dbe186730a0/bitarray-3.8.2-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:e76c01ae0f191c5572c12b1fda333243bfe4d58ad1d601048f9e4928d94db0c5", size = 339747, upload-time = "2026-06-17T17:21:19.092Z" }, + { url = "https://files.pythonhosted.org/packages/5b/56/94cc5250be3d530c52d15e41bdbf5f891a492aeebb9e978914aa4559c00a/bitarray-3.8.2-cp314-cp314-win32.whl", hash = "sha256:a1df20419ccc23a0326ee0cb391d1c524ee3c338856e66528d73f4dcec0389d0", size = 142830, upload-time = "2026-06-17T17:21:20.347Z" }, + { url = "https://files.pythonhosted.org/packages/b4/eb/b9ba05ae59d56a9e5cb8e812072d33be38076717db6579302e1ee85fd688/bitarray-3.8.2-cp314-cp314-win_amd64.whl", hash = "sha256:4bfbeba9156834455ab107936ebd461728f1ed35ded8f15aafde2c3dac9badf5", size = 148912, upload-time = "2026-06-17T17:21:21.556Z" }, + { url = "https://files.pythonhosted.org/packages/b6/07/e279a5ba7cd114398f00d853026e6c72e198035b925c74866e3c1973daca/bitarray-3.8.2-cp314-cp314-win_arm64.whl", hash = "sha256:4149aeb7c8cad12f9ea13783550ab5508e6d553eeefead5e3da659ce6724c5a5", size = 147373, upload-time = "2026-06-17T17:21:23.051Z" }, + { url = "https://files.pythonhosted.org/packages/94/a4/4014952965ef7edf80076f8004df31484bccecba97af7b3e9c99269a053d/bitarray-3.8.2-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:f6f6cf5ec3be7e1bd32bfe1f4b24f7d1de28d72394d7f58789b9f9042d19f5f6", size = 151073, upload-time = "2026-06-17T17:21:24.285Z" }, + { url = "https://files.pythonhosted.org/packages/ff/00/850095c3bc551797c97a4b54c7755fc46eb115ce288fcf6962d8e8c5b678/bitarray-3.8.2-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:b2b9790847024cf1de275c8b2495331fe0982d099e407be1c1413ed40ddf2b5d", size = 148009, upload-time = "2026-06-17T17:21:25.595Z" }, + { url = "https://files.pythonhosted.org/packages/dd/4d/74f0440d95d00f086a80e6c429e3333ebb29cecf55a8d401ceb0c65a3b4b/bitarray-3.8.2-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c172161b8847f91e9f9ea9ae2e31fcfa784ec5d0cd413900c82574999e21ad05", size = 343487, upload-time = "2026-06-17T17:21:26.96Z" }, + { url = "https://files.pythonhosted.org/packages/78/e9/ea9c182ff0edb671853bb7a54b790572dc0b73d4a3b13e358f42aa34dca0/bitarray-3.8.2-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:5fcc57961bc78885091a45b9ced5a5924b3b1fdd439a0e1d4b7e3aedf0c31ae2", size = 372305, upload-time = "2026-06-17T17:21:28.399Z" }, + { url = "https://files.pythonhosted.org/packages/d5/ff/307cacc432e2ec304b870676189852c3f34a803d15b26f73bb36c549166b/bitarray-3.8.2-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:b5fdb5399f0f2c42abcca87f8167d7ad746cf6ca7decadb4f5ad432280cc3a2f", size = 382242, upload-time = "2026-06-17T17:21:29.77Z" }, + { url = "https://files.pythonhosted.org/packages/b8/ae/757a10ce90e2090dd2dff8c5059a47439122a8d68f5fa9cf06ed07a1dc74/bitarray-3.8.2-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8bb6195a2edafceee0e9ee12c13aad2162e9578d91a24e7c501c3bd4ab90511a", size = 348509, upload-time = "2026-06-17T17:21:31.195Z" }, + { url = "https://files.pythonhosted.org/packages/ef/d3/a035bb2c459e1f7bc86974fd43057aa8bb76466dd6bd75787d8eb9c534ed/bitarray-3.8.2-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:ce3b3dd599d4eca214f9c7fb7ac2343ccab41d91f3da7aa3b75ddbbea49ec2d5", size = 340539, upload-time = "2026-06-17T17:21:32.652Z" }, + { url = "https://files.pythonhosted.org/packages/bc/6d/e7af02d167c227d143d208cd1c54d8e4f024d8d0bb59a0f2c38c32d56ad0/bitarray-3.8.2-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:11cd9766ce95199bef5010ff63f73c880d9c0b6ba9c4c233aeeebc11ab1dfbb3", size = 369505, upload-time = "2026-06-17T17:21:34.115Z" }, + { url = "https://files.pythonhosted.org/packages/9d/1d/29d0538ac245941127a25735d33f7b6658be6612c35115bcac60ef7c3c1c/bitarray-3.8.2-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:7a4bbbad17d3db92615497302b74cf77504f821eb9585b7948d92093017d5e70", size = 365262, upload-time = "2026-06-17T17:21:35.829Z" }, + { url = "https://files.pythonhosted.org/packages/1c/c8/2feabadbbc365e000821c7af82906e71366b29719329ef5709d64707fd4c/bitarray-3.8.2-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:e715498f3dc9af954b9d0977470aa352cb3fe1c39e80c32f5ac4c0348e461f6d", size = 344014, upload-time = "2026-06-17T17:21:37.228Z" }, + { url = "https://files.pythonhosted.org/packages/6c/88/dc465cbfe5c74b7da8c19b9dc2565d8a4391fad418c48e1559a0267fd00b/bitarray-3.8.2-cp314-cp314t-win32.whl", hash = "sha256:c85569fb99cf9d4aa964d2dbba3c095c7580b4368f63f51252e85b939fcd0a2c", size = 143775, upload-time = "2026-06-17T17:21:38.789Z" }, + { url = "https://files.pythonhosted.org/packages/08/75/50f2ef697d8ce46ba0986830f2d1288bff883e7f4833590076956a073496/bitarray-3.8.2-cp314-cp314t-win_amd64.whl", hash = "sha256:7de416b313fc8e8aa1e323b83d2ba86b7c84161f7ebbaf986bdab80f9d06a2fb", size = 149884, upload-time = "2026-06-17T17:21:40.315Z" }, + { url = "https://files.pythonhosted.org/packages/df/0e/6aa2133fffbac3efcb468c7c12163eff7bbe55b86a0d6a1c687ef57e2654/bitarray-3.8.2-cp314-cp314t-win_arm64.whl", hash = "sha256:7199451493d34a5c62cb7c9077fcfd238499af4e0d13a32d33760afe73054135", size = 148321, upload-time = "2026-06-17T17:21:41.804Z" }, ] [[package]] name = "bittensor" -version = "11.0.0.dev0" +version = "11.0.1.dev0" source = { editable = "." } dependencies = [ { name = "bittensor-core" }, @@ -123,10 +150,11 @@ requires-dist = [ { name = "typing-extensions", marker = "python_full_version < '3.11'", specifier = ">=4.0.0" }, { name = "websockets", specifier = ">=14.1,<17" }, ] +provides-extras = ["evm", "cli"] [package.metadata.requires-dev] dev = [ - { name = "hypothesis", specifier = ">=6.100" }, + { name = "hypothesis", specifier = ">=6.161.0" }, { name = "pytest", specifier = ">=8.0" }, { name = "pytest-asyncio", specifier = ">=0.24" }, { name = "pytest-cov", specifier = ">=6.0" }, @@ -137,124 +165,170 @@ dev = [ [[package]] name = "bittensor-core" -version = "0.1.0" +version = "0.1.1" source = { directory = "../bittensor-core-py" } [[package]] name = "ckzg" version = "2.1.7" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/12/44/fdb579a0d035a1e510511e3c3b9ca98ba2ea240a24f112b1882478bfc2ff/ckzg-2.1.7.tar.gz", hash = "sha256:a0c61c5fd573af0267bcb435ef0f499911289ceb05e863480779ea284a3bb928", size = 1127878 } +sdist = { url = "https://files.pythonhosted.org/packages/12/44/fdb579a0d035a1e510511e3c3b9ca98ba2ea240a24f112b1882478bfc2ff/ckzg-2.1.7.tar.gz", hash = "sha256:a0c61c5fd573af0267bcb435ef0f499911289ceb05e863480779ea284a3bb928", size = 1127878, upload-time = "2026-03-11T14:11:13.745Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/e4/13/543f474f03dc293828abbfc8a2efed2c3bd5bb10c78d0b6527d4cc880140/ckzg-2.1.7-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:21fbb7f5689413994d224046c0c06cb8385fb8de33c5171b2c057151710cffed", size = 96363 }, - { url = "https://files.pythonhosted.org/packages/ca/6e/8fb39b7aa945da20652e9ca5f44a2186a3b65564b106bacaf8b9fdf317df/ckzg-2.1.7-cp310-cp310-manylinux2010_i686.manylinux_2_12_i686.manylinux_2_28_i686.whl", hash = "sha256:83f56b03c54fd9a610aeefd9fd241bb2af960cb703f208c7806b37ccc9fb7fb8", size = 179526 }, - { url = "https://files.pythonhosted.org/packages/15/4c/47e3865ffe4ae97232b67c4757b8a633f73465955d819e9d82ceb75029d7/ckzg-2.1.7-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:8bfa41d97ee31a2053d0b2f2a53793f67745bfa694f48b6d091ae499a04c272f", size = 165238 }, - { url = "https://files.pythonhosted.org/packages/33/0f/8c809f835702a1f0c519ff35d9085783155ba44f921704fd5869b499ccc6/ckzg-2.1.7-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:244acf422fb727dbc376a082f71d66f6f2787b570ec27d17d20c3c3b85aef6fb", size = 174946 }, - { url = "https://files.pythonhosted.org/packages/77/e6/e61ba4caa703a84a9535c10c78180cec0c39279fd21361931dc147dab96a/ckzg-2.1.7-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:8705f73a7efe0f01b8ce67677320be99c7d7c7077311d255bbf2d4e55fdc6a9b", size = 172853 }, - { url = "https://files.pythonhosted.org/packages/a1/c0/b76384bf8716acb7115a6a032c7e3362cb0466dd93a7567bde5c17a5b9b2/ckzg-2.1.7-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:c6b29572b2a4f678991a1edc2426f1802e9190eb763510cf1e9bafe797f004ba", size = 187908 }, - { url = "https://files.pythonhosted.org/packages/51/32/86f473ee8b6cb9f7ffdf0007ee54fc30431d9bdf79f10240d6af2b4ab0f9/ckzg-2.1.7-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:6ce04e32c1c459afae80edd32304956340a1dc5464a9f732f115f1119e3ec51d", size = 182481 }, - { url = "https://files.pythonhosted.org/packages/3b/59/bdbd795e51402e654652693cbaa44573b7bc2b91cb9a662b7575d46bc5aa/ckzg-2.1.7-cp310-cp310-win_amd64.whl", hash = "sha256:f537529bebfc58de21a6326100ad33e7d7ee98b0d49e44ee7f53d17ef899dfd5", size = 99827 }, - { url = "https://files.pythonhosted.org/packages/78/f1/aa4fac509f986ada4718517a2d167b7ce7efae9624c0f7f71c113c4debbd/ckzg-2.1.7-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:c9172f571ac7ec6d90207ad1903d921c38e48482bc028f723d6908720af1add6", size = 96366 }, - { url = "https://files.pythonhosted.org/packages/96/c6/30cdc5b43928221c67b3853c10c54a21c525802a10af23cbfc188f6ad2d8/ckzg-2.1.7-cp311-cp311-manylinux2010_i686.manylinux_2_12_i686.manylinux_2_28_i686.whl", hash = "sha256:c5494f39edeffedfa085fe85614a1c05ddd895ceb9d6c1800dc5355f9132a8f9", size = 180266 }, - { url = "https://files.pythonhosted.org/packages/e5/97/86f6030cb6daff6d87b8d0c2a666f09360b5b179fdc3507bcc60ef26318e/ckzg-2.1.7-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:fb67250207b93d2df7f694bb74bd6b4a15fb2bb67d6a78977ae8ff431678c7e7", size = 165983 }, - { url = "https://files.pythonhosted.org/packages/19/85/547814b4c6a09ebd27af9f682b7066c5c4569acd4fea74841cfe8964e5ab/ckzg-2.1.7-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d7828cb549e2e8368e966c9dab87f3a51456647f1a3e79bdac9194e17bbc4d54", size = 175698 }, - { url = "https://files.pythonhosted.org/packages/30/a0/890e33ac991222aaa919a092e0de397e59df75baa92ec17f89370062863d/ckzg-2.1.7-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:23eacac20c6d3be2c87e592c11d02e4a1912e799d77e2559502455e85113e7b4", size = 173516 }, - { url = "https://files.pythonhosted.org/packages/a8/71/ec6f713fb1056a647d4a7fad4ced15faedcd5d7b2a6f34ece81a9d1dbdd8/ckzg-2.1.7-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:4dd2afdc41f063e57eb569034b81088ba724240d3247ca78ea6591a1e04df50d", size = 188621 }, - { url = "https://files.pythonhosted.org/packages/d8/86/04572a67546e66b809946a7234cac0e3aa67bfa4a256d8440eefb1deaf87/ckzg-2.1.7-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:b3af91c230982d59afe6f42c9c2a4c74412424a566bd09a42ffdfb451872335a", size = 183257 }, - { url = "https://files.pythonhosted.org/packages/da/c1/3060e997955e61699e4f6a431ff3cd3f780cd8ccfab0a2e0462848680185/ckzg-2.1.7-cp311-cp311-win_amd64.whl", hash = "sha256:f959a3bbc6d7aa7a653946e67dadaa78c0c79828aaa93b125a26f171a602b8fa", size = 99823 }, - { url = "https://files.pythonhosted.org/packages/09/40/8c2d610066a2efd4048553ff12aa832c916822ec9c888ca924565e520a7b/ckzg-2.1.7-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:126050ffb23b504c34c4c2073c54bd8b42f4a3034798a631c9e85911e26caf47", size = 96386 }, - { url = "https://files.pythonhosted.org/packages/29/b6/092bd10eb35e9fe3d316410791d9055039c5dd29caf03c72cc86fce45624/ckzg-2.1.7-cp312-cp312-manylinux2010_i686.manylinux_2_12_i686.manylinux_2_28_i686.whl", hash = "sha256:936b4bffc1a6fa2bf261eb5e673f4fcc59feaf70c6c07aac1b02e3e1f942fdb6", size = 180447 }, - { url = "https://files.pythonhosted.org/packages/53/7e/f1c15ec078bee7660a2cafa103c4efdf9686256a348565ef6a1cb70ff1c4/ckzg-2.1.7-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:902c03b689d13684cd8b61c8e1b7a65528fdd5e1ab9d76338ddb2e902b5fd1ea", size = 166242 }, - { url = "https://files.pythonhosted.org/packages/bf/de/c22535e16163a836f76d7c3606a6e579a7a02862b4797b832cd6de5f6a1d/ckzg-2.1.7-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8e635e5e1f6ff8ffc05d2961ccfc4b3e8c95e50c87d9765b2dfe09e32474c402", size = 176015 }, - { url = "https://files.pythonhosted.org/packages/af/4f/56c303eab20d92e5d140f96881c8c7e2eaa05976d6cb887ab574d780d09d/ckzg-2.1.7-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:cbedb5e4732d37c87fe45a2b25891d00f434d4e0f4dd612daa034fe2011e5939", size = 173682 }, - { url = "https://files.pythonhosted.org/packages/85/0a/0feb878383e9c83d6dcd760b8de2f3095546cc09b1717ae65cbb47f90b20/ckzg-2.1.7-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:665d0094466b576e390b4a5e1caf199f1165841e99bf7b3cc65117f12ba4ea74", size = 188873 }, - { url = "https://files.pythonhosted.org/packages/48/29/c2eb07882465c32478e575334311ad6cea21c5d76d54da6c900dd6cb8e62/ckzg-2.1.7-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:f5d4d1fb20eda15b901fc393a4bfd39b1be661008218f9f0db47d4e143d25d62", size = 183566 }, - { url = "https://files.pythonhosted.org/packages/c8/48/4d1f5c470cc6eb73aaba30125e6fb62759ce69bbdb2a74c160f69f601236/ckzg-2.1.7-cp312-cp312-win_amd64.whl", hash = "sha256:b580f65e61f3d89a99bfeeac0e256cf68c63d29df1c1e5e788785085083a303b", size = 99811 }, - { url = "https://files.pythonhosted.org/packages/87/32/495600f43a277bcb413d08f23f594dc548ac0d7927ad1ce7db28e58afadd/ckzg-2.1.7-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:e23e10b227209bfae11f6f1f88ff2a8b0a2232248f985321e5e844c9dd7a4c5f", size = 96394 }, - { url = "https://files.pythonhosted.org/packages/e4/fe/c3708cfdbc228298c0f5fa4d08ceee7cc01cb7f7d105bfc9ebc68c39060d/ckzg-2.1.7-cp313-cp313-manylinux2010_i686.manylinux_2_12_i686.manylinux_2_28_i686.whl", hash = "sha256:382c015860e7159b1ec5a85642127d4b55f6b36eef5f73d664fc409d26a3b367", size = 180484 }, - { url = "https://files.pythonhosted.org/packages/28/55/d689769ea0f9b2c2c16d8390f4c3cf7cd7dea0df68542b2a435c341df0b0/ckzg-2.1.7-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6666801e925d2f1d7c045fe943c1265c39b90444f88288735cc1245c4fa8018a", size = 166301 }, - { url = "https://files.pythonhosted.org/packages/16/ff/e172b4ae4bef05bf88bb8f27d2b9858b56c9984ad1708eeef82ac787fe7c/ckzg-2.1.7-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:3e823de2fd4103abc4b51512d27aa3e14107e84718e11a596eefcddc6f313b25", size = 176052 }, - { url = "https://files.pythonhosted.org/packages/61/0a/dcf28e0126e5a6f8f8b7505b4b5b637ca25e1095272fbee73f8967e3a545/ckzg-2.1.7-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a65c7be0bb72a159c5a4b98cc3c759b868274697de11d8248f5dde32f2400776", size = 173691 }, - { url = "https://files.pythonhosted.org/packages/2a/d2/fe404ad0bd79aaeb1e75fb4981d21e37364e59517813f7f085914026a7f6/ckzg-2.1.7-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:62523b275f74f2729fc788d02b26e447dabfd7706ffe8882ee96d776db54b920", size = 188909 }, - { url = "https://files.pythonhosted.org/packages/55/d7/ef2d30c88270ab1a0daffa8a0f8453b72035569d3295ad3dcaba9b5250a6/ckzg-2.1.7-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:5d998cd6d0f8e37e969c96315ac8c1e87fcf581cf27ab970bd33e62dc1c43357", size = 183597 }, - { url = "https://files.pythonhosted.org/packages/93/77/1e04840c866284bec3489154caec22855829b0c2d028bd1de771655175e3/ckzg-2.1.7-cp313-cp313-win_amd64.whl", hash = "sha256:d48b75fca9e928b2ea288fc079b0522fb91af5742b5eb4f2fdea4fc33a1b7b4e", size = 99808 }, + { url = "https://files.pythonhosted.org/packages/e4/13/543f474f03dc293828abbfc8a2efed2c3bd5bb10c78d0b6527d4cc880140/ckzg-2.1.7-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:21fbb7f5689413994d224046c0c06cb8385fb8de33c5171b2c057151710cffed", size = 96363, upload-time = "2026-03-11T14:10:06.585Z" }, + { url = "https://files.pythonhosted.org/packages/ca/6e/8fb39b7aa945da20652e9ca5f44a2186a3b65564b106bacaf8b9fdf317df/ckzg-2.1.7-cp310-cp310-manylinux2010_i686.manylinux_2_12_i686.manylinux_2_28_i686.whl", hash = "sha256:83f56b03c54fd9a610aeefd9fd241bb2af960cb703f208c7806b37ccc9fb7fb8", size = 179526, upload-time = "2026-03-11T14:10:07.936Z" }, + { url = "https://files.pythonhosted.org/packages/15/4c/47e3865ffe4ae97232b67c4757b8a633f73465955d819e9d82ceb75029d7/ckzg-2.1.7-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:8bfa41d97ee31a2053d0b2f2a53793f67745bfa694f48b6d091ae499a04c272f", size = 165238, upload-time = "2026-03-11T14:10:09.031Z" }, + { url = "https://files.pythonhosted.org/packages/33/0f/8c809f835702a1f0c519ff35d9085783155ba44f921704fd5869b499ccc6/ckzg-2.1.7-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:244acf422fb727dbc376a082f71d66f6f2787b570ec27d17d20c3c3b85aef6fb", size = 174946, upload-time = "2026-03-11T14:10:10.096Z" }, + { url = "https://files.pythonhosted.org/packages/77/e6/e61ba4caa703a84a9535c10c78180cec0c39279fd21361931dc147dab96a/ckzg-2.1.7-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:8705f73a7efe0f01b8ce67677320be99c7d7c7077311d255bbf2d4e55fdc6a9b", size = 172853, upload-time = "2026-03-11T14:10:11.048Z" }, + { url = "https://files.pythonhosted.org/packages/a1/c0/b76384bf8716acb7115a6a032c7e3362cb0466dd93a7567bde5c17a5b9b2/ckzg-2.1.7-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:c6b29572b2a4f678991a1edc2426f1802e9190eb763510cf1e9bafe797f004ba", size = 187908, upload-time = "2026-03-11T14:10:12.018Z" }, + { url = "https://files.pythonhosted.org/packages/51/32/86f473ee8b6cb9f7ffdf0007ee54fc30431d9bdf79f10240d6af2b4ab0f9/ckzg-2.1.7-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:6ce04e32c1c459afae80edd32304956340a1dc5464a9f732f115f1119e3ec51d", size = 182481, upload-time = "2026-03-11T14:10:13.013Z" }, + { url = "https://files.pythonhosted.org/packages/3b/59/bdbd795e51402e654652693cbaa44573b7bc2b91cb9a662b7575d46bc5aa/ckzg-2.1.7-cp310-cp310-win_amd64.whl", hash = "sha256:f537529bebfc58de21a6326100ad33e7d7ee98b0d49e44ee7f53d17ef899dfd5", size = 99827, upload-time = "2026-03-11T14:10:14.224Z" }, + { url = "https://files.pythonhosted.org/packages/78/f1/aa4fac509f986ada4718517a2d167b7ce7efae9624c0f7f71c113c4debbd/ckzg-2.1.7-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:c9172f571ac7ec6d90207ad1903d921c38e48482bc028f723d6908720af1add6", size = 96366, upload-time = "2026-03-11T14:10:15.098Z" }, + { url = "https://files.pythonhosted.org/packages/96/c6/30cdc5b43928221c67b3853c10c54a21c525802a10af23cbfc188f6ad2d8/ckzg-2.1.7-cp311-cp311-manylinux2010_i686.manylinux_2_12_i686.manylinux_2_28_i686.whl", hash = "sha256:c5494f39edeffedfa085fe85614a1c05ddd895ceb9d6c1800dc5355f9132a8f9", size = 180266, upload-time = "2026-03-11T14:10:16.142Z" }, + { url = "https://files.pythonhosted.org/packages/e5/97/86f6030cb6daff6d87b8d0c2a666f09360b5b179fdc3507bcc60ef26318e/ckzg-2.1.7-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:fb67250207b93d2df7f694bb74bd6b4a15fb2bb67d6a78977ae8ff431678c7e7", size = 165983, upload-time = "2026-03-11T14:10:17.407Z" }, + { url = "https://files.pythonhosted.org/packages/19/85/547814b4c6a09ebd27af9f682b7066c5c4569acd4fea74841cfe8964e5ab/ckzg-2.1.7-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d7828cb549e2e8368e966c9dab87f3a51456647f1a3e79bdac9194e17bbc4d54", size = 175698, upload-time = "2026-03-11T14:10:18.35Z" }, + { url = "https://files.pythonhosted.org/packages/30/a0/890e33ac991222aaa919a092e0de397e59df75baa92ec17f89370062863d/ckzg-2.1.7-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:23eacac20c6d3be2c87e592c11d02e4a1912e799d77e2559502455e85113e7b4", size = 173516, upload-time = "2026-03-11T14:10:19.615Z" }, + { url = "https://files.pythonhosted.org/packages/a8/71/ec6f713fb1056a647d4a7fad4ced15faedcd5d7b2a6f34ece81a9d1dbdd8/ckzg-2.1.7-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:4dd2afdc41f063e57eb569034b81088ba724240d3247ca78ea6591a1e04df50d", size = 188621, upload-time = "2026-03-11T14:10:20.865Z" }, + { url = "https://files.pythonhosted.org/packages/d8/86/04572a67546e66b809946a7234cac0e3aa67bfa4a256d8440eefb1deaf87/ckzg-2.1.7-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:b3af91c230982d59afe6f42c9c2a4c74412424a566bd09a42ffdfb451872335a", size = 183257, upload-time = "2026-03-11T14:10:21.808Z" }, + { url = "https://files.pythonhosted.org/packages/da/c1/3060e997955e61699e4f6a431ff3cd3f780cd8ccfab0a2e0462848680185/ckzg-2.1.7-cp311-cp311-win_amd64.whl", hash = "sha256:f959a3bbc6d7aa7a653946e67dadaa78c0c79828aaa93b125a26f171a602b8fa", size = 99823, upload-time = "2026-03-11T14:10:22.674Z" }, + { url = "https://files.pythonhosted.org/packages/09/40/8c2d610066a2efd4048553ff12aa832c916822ec9c888ca924565e520a7b/ckzg-2.1.7-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:126050ffb23b504c34c4c2073c54bd8b42f4a3034798a631c9e85911e26caf47", size = 96386, upload-time = "2026-03-11T14:10:23.532Z" }, + { url = "https://files.pythonhosted.org/packages/29/b6/092bd10eb35e9fe3d316410791d9055039c5dd29caf03c72cc86fce45624/ckzg-2.1.7-cp312-cp312-manylinux2010_i686.manylinux_2_12_i686.manylinux_2_28_i686.whl", hash = "sha256:936b4bffc1a6fa2bf261eb5e673f4fcc59feaf70c6c07aac1b02e3e1f942fdb6", size = 180447, upload-time = "2026-03-11T14:10:24.368Z" }, + { url = "https://files.pythonhosted.org/packages/53/7e/f1c15ec078bee7660a2cafa103c4efdf9686256a348565ef6a1cb70ff1c4/ckzg-2.1.7-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:902c03b689d13684cd8b61c8e1b7a65528fdd5e1ab9d76338ddb2e902b5fd1ea", size = 166242, upload-time = "2026-03-11T14:10:25.671Z" }, + { url = "https://files.pythonhosted.org/packages/bf/de/c22535e16163a836f76d7c3606a6e579a7a02862b4797b832cd6de5f6a1d/ckzg-2.1.7-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8e635e5e1f6ff8ffc05d2961ccfc4b3e8c95e50c87d9765b2dfe09e32474c402", size = 176015, upload-time = "2026-03-11T14:10:26.976Z" }, + { url = "https://files.pythonhosted.org/packages/af/4f/56c303eab20d92e5d140f96881c8c7e2eaa05976d6cb887ab574d780d09d/ckzg-2.1.7-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:cbedb5e4732d37c87fe45a2b25891d00f434d4e0f4dd612daa034fe2011e5939", size = 173682, upload-time = "2026-03-11T14:10:27.857Z" }, + { url = "https://files.pythonhosted.org/packages/85/0a/0feb878383e9c83d6dcd760b8de2f3095546cc09b1717ae65cbb47f90b20/ckzg-2.1.7-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:665d0094466b576e390b4a5e1caf199f1165841e99bf7b3cc65117f12ba4ea74", size = 188873, upload-time = "2026-03-11T14:10:28.85Z" }, + { url = "https://files.pythonhosted.org/packages/48/29/c2eb07882465c32478e575334311ad6cea21c5d76d54da6c900dd6cb8e62/ckzg-2.1.7-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:f5d4d1fb20eda15b901fc393a4bfd39b1be661008218f9f0db47d4e143d25d62", size = 183566, upload-time = "2026-03-11T14:10:29.777Z" }, + { url = "https://files.pythonhosted.org/packages/c8/48/4d1f5c470cc6eb73aaba30125e6fb62759ce69bbdb2a74c160f69f601236/ckzg-2.1.7-cp312-cp312-win_amd64.whl", hash = "sha256:b580f65e61f3d89a99bfeeac0e256cf68c63d29df1c1e5e788785085083a303b", size = 99811, upload-time = "2026-03-11T14:10:30.719Z" }, + { url = "https://files.pythonhosted.org/packages/87/32/495600f43a277bcb413d08f23f594dc548ac0d7927ad1ce7db28e58afadd/ckzg-2.1.7-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:e23e10b227209bfae11f6f1f88ff2a8b0a2232248f985321e5e844c9dd7a4c5f", size = 96394, upload-time = "2026-03-11T14:10:31.535Z" }, + { url = "https://files.pythonhosted.org/packages/e4/fe/c3708cfdbc228298c0f5fa4d08ceee7cc01cb7f7d105bfc9ebc68c39060d/ckzg-2.1.7-cp313-cp313-manylinux2010_i686.manylinux_2_12_i686.manylinux_2_28_i686.whl", hash = "sha256:382c015860e7159b1ec5a85642127d4b55f6b36eef5f73d664fc409d26a3b367", size = 180484, upload-time = "2026-03-11T14:10:32.418Z" }, + { url = "https://files.pythonhosted.org/packages/28/55/d689769ea0f9b2c2c16d8390f4c3cf7cd7dea0df68542b2a435c341df0b0/ckzg-2.1.7-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6666801e925d2f1d7c045fe943c1265c39b90444f88288735cc1245c4fa8018a", size = 166301, upload-time = "2026-03-11T14:10:33.363Z" }, + { url = "https://files.pythonhosted.org/packages/16/ff/e172b4ae4bef05bf88bb8f27d2b9858b56c9984ad1708eeef82ac787fe7c/ckzg-2.1.7-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:3e823de2fd4103abc4b51512d27aa3e14107e84718e11a596eefcddc6f313b25", size = 176052, upload-time = "2026-03-11T14:10:34.621Z" }, + { url = "https://files.pythonhosted.org/packages/61/0a/dcf28e0126e5a6f8f8b7505b4b5b637ca25e1095272fbee73f8967e3a545/ckzg-2.1.7-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a65c7be0bb72a159c5a4b98cc3c759b868274697de11d8248f5dde32f2400776", size = 173691, upload-time = "2026-03-11T14:10:35.577Z" }, + { url = "https://files.pythonhosted.org/packages/2a/d2/fe404ad0bd79aaeb1e75fb4981d21e37364e59517813f7f085914026a7f6/ckzg-2.1.7-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:62523b275f74f2729fc788d02b26e447dabfd7706ffe8882ee96d776db54b920", size = 188909, upload-time = "2026-03-11T14:10:36.798Z" }, + { url = "https://files.pythonhosted.org/packages/55/d7/ef2d30c88270ab1a0daffa8a0f8453b72035569d3295ad3dcaba9b5250a6/ckzg-2.1.7-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:5d998cd6d0f8e37e969c96315ac8c1e87fcf581cf27ab970bd33e62dc1c43357", size = 183597, upload-time = "2026-03-11T14:10:37.812Z" }, + { url = "https://files.pythonhosted.org/packages/93/77/1e04840c866284bec3489154caec22855829b0c2d028bd1de771655175e3/ckzg-2.1.7-cp313-cp313-win_amd64.whl", hash = "sha256:d48b75fca9e928b2ea288fc079b0522fb91af5742b5eb4f2fdea4fc33a1b7b4e", size = 99808, upload-time = "2026-03-11T14:10:38.701Z" }, + { url = "https://files.pythonhosted.org/packages/24/ab/11eb63c520cae074195b05cd644bf45be061b910b5c97abdaae02876a50e/ckzg-2.1.7-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:c19b98f29f4459587e1ec4cce3e2e10963a6974293cf3143d13ce43c30542806", size = 96400, upload-time = "2026-03-11T14:10:39.59Z" }, + { url = "https://files.pythonhosted.org/packages/31/7d/3678cbb22f31a50dd354b9d3efcb9366dd5b97cdddbf270213a66b03ad41/ckzg-2.1.7-cp314-cp314-manylinux2010_i686.manylinux_2_12_i686.manylinux_2_28_i686.whl", hash = "sha256:d31583a24cf8166d81c36f1e424de1f343c1d604dbc8c68d938a908236ae11a3", size = 180492, upload-time = "2026-03-11T14:10:40.766Z" }, + { url = "https://files.pythonhosted.org/packages/48/a5/355f898c75e19ac6426798c28a9767bdc734bebb40c4cd15572f644745ba/ckzg-2.1.7-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:baf6ac696e6a40b33ddb57aa0729d5e39230bd13fa4f1e40fe9236e8920d83fe", size = 166322, upload-time = "2026-03-11T14:10:41.752Z" }, + { url = "https://files.pythonhosted.org/packages/ff/f5/7ffc482dc628c43d9c7a1b19392e1a920ccfd1da8d2e07d7dcc79c3e3bd2/ckzg-2.1.7-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8bbdf89f9327e442415a810beca692729c35664e154a6830296124a5c6f05470", size = 176061, upload-time = "2026-03-11T14:10:42.649Z" }, + { url = "https://files.pythonhosted.org/packages/26/56/f79ee2a177b4522fe47709e9f7e48407cd54a63c3d7bc1ca3002c705b3a7/ckzg-2.1.7-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:716c2dde0a91c0095797b843f78a6425e20a3d8945ecb4f90550b5c681b6be05", size = 173746, upload-time = "2026-03-11T14:10:43.657Z" }, + { url = "https://files.pythonhosted.org/packages/b9/a7/95b160707b22161817245de8b9e44ea143b9a2083b0c625e5e5cd4a2e20a/ckzg-2.1.7-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:2a9f1a05ed44512b80581e47918b1f4546974e8e924ee0e8de84ab32de197326", size = 188923, upload-time = "2026-03-11T14:10:44.635Z" }, + { url = "https://files.pythonhosted.org/packages/33/d4/ecfbecf763d42606dba8ab9d7de557d01816afad1e2f3cb1cc7efd6fc254/ckzg-2.1.7-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:42005c188e37c2f65d44f3a2585e89de18e0e229bc667a600d8716808ea2c33b", size = 183607, upload-time = "2026-03-11T14:10:45.846Z" }, + { url = "https://files.pythonhosted.org/packages/4a/72/becb801d8f1224de265f299790f5b2c95e71546ab7ab24a1fd3ebb99519e/ckzg-2.1.7-cp314-cp314-win_amd64.whl", hash = "sha256:14fbc642b1e81893df76a1636fddc169173da5dcdb55fc08a030658cd186150e", size = 102517, upload-time = "2026-03-11T14:10:47.079Z" }, + { url = "https://files.pythonhosted.org/packages/a8/6c/b310f05a6a27baaa53915b43483cc061080e3245c7facaa3c5b3a3cd7c5e/ckzg-2.1.7-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:da1a07e25ecaeb341ad4caf583fdec12c6af1ef3642289bb7dfcad2ca1b73dd3", size = 96609, upload-time = "2026-03-11T14:10:48.019Z" }, + { url = "https://files.pythonhosted.org/packages/0d/96/e1ccbf3f90595d50aa98a8a9c3c1327e6be0575ddbf8292b26b0cfa69b06/ckzg-2.1.7-cp314-cp314t-manylinux2010_i686.manylinux_2_12_i686.manylinux_2_28_i686.whl", hash = "sha256:c657892f93eb70e3295b4f385e25380644c40f8bfebfcd55659f5017257c5b8c", size = 183315, upload-time = "2026-03-11T14:10:49.224Z" }, + { url = "https://files.pythonhosted.org/packages/bc/94/2c7ff1983f82756b29011ad612bc0e1d8f4a1989073c94fd66868bc296d3/ckzg-2.1.7-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:03af4cf053be82c22a893c8ef971d17687182dd2e75bcc2fab320bc27a62b7cb", size = 169457, upload-time = "2026-03-11T14:10:50.601Z" }, + { url = "https://files.pythonhosted.org/packages/98/cd/8c7247181843185ff5e34ebd400594e0fbe2d81e03324f124834f377ea74/ckzg-2.1.7-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6ecd9c44427a0035a8a9cb3dc18b4b3c72347f7be7c9f6866b8eddd6598bf0a9", size = 178841, upload-time = "2026-03-11T14:10:51.598Z" }, + { url = "https://files.pythonhosted.org/packages/da/cb/cf2ed4cf461bd2891792317615075745053e2585d8a2cf26a8414ad01983/ckzg-2.1.7-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:16e313e6029e88a564724217dd8eddd6226fbf0a0c07bf65a210bf3512c7b8ad", size = 176489, upload-time = "2026-03-11T14:10:52.905Z" }, + { url = "https://files.pythonhosted.org/packages/50/65/8b7d9cf8883f0df1a15cb20ecec99dfc02fc7bf05bf53509bb270e3a1db0/ckzg-2.1.7-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:8461ec7d69ccb450d4a4d031494a86dc6c15ad54b671967d4a8bdcd8158155b2", size = 191690, upload-time = "2026-03-11T14:10:53.855Z" }, + { url = "https://files.pythonhosted.org/packages/83/56/a1fba1b4a2f90d5fc48d3e62f59f0791c90e85b6ebb600ffeee81ea9cfa6/ckzg-2.1.7-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:53f420a3fa55a92265e23394caa2aac5b0e1e63ee6489d414cafeb0accde9a9e", size = 186204, upload-time = "2026-03-11T14:10:54.821Z" }, + { url = "https://files.pythonhosted.org/packages/c7/a9/a3284a64216f31a886ff216621c6b3806ca7ad7388908f68fcab9007c881/ckzg-2.1.7-cp314-cp314t-win_amd64.whl", hash = "sha256:2cdcc023d842900564d6070e397cab0d04fd393e6af07d60bdd1c97dc3ff09fd", size = 102660, upload-time = "2026-03-11T14:10:55.974Z" }, ] [[package]] name = "colorama" version = "0.4.6" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/d8/53/6f443c9a4a8358a93a6792e2acffb9d9d5cb0a5cfd8802644b7b1c9a02e4/colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44", size = 27697 } +sdist = { url = "https://files.pythonhosted.org/packages/d8/53/6f443c9a4a8358a93a6792e2acffb9d9d5cb0a5cfd8802644b7b1c9a02e4/colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44", size = 27697, upload-time = "2022-10-25T02:36:22.414Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6", size = 25335 }, + { url = "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6", size = 25335, upload-time = "2022-10-25T02:36:20.889Z" }, ] [[package]] name = "coverage" version = "7.15.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/cc/8b/adeb62ea8951f13c4c7fef2e7a85e1a06b499c8d8237ea589d496029e53f/coverage-7.15.0.tar.gz", hash = "sha256:9ac3fe7a1435986463eaa8ee253ae2f2a268709ba4ae5c7dd1f52a05391ad78f", size = 925362 } +sdist = { url = "https://files.pythonhosted.org/packages/cc/8b/adeb62ea8951f13c4c7fef2e7a85e1a06b499c8d8237ea589d496029e53f/coverage-7.15.0.tar.gz", hash = "sha256:9ac3fe7a1435986463eaa8ee253ae2f2a268709ba4ae5c7dd1f52a05391ad78f", size = 925362, upload-time = "2026-07-02T13:10:50.535Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/2a/97/c52dc440c390b6cfa87be9432b141a956e2d56d9b9f5fc8bd71c5f471722/coverage-7.15.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:50913d4bf5ddafa6ca3693da5e4dd833dd1b772e0283c99ca7f7d287db67331a", size = 220539 }, - { url = "https://files.pythonhosted.org/packages/3f/26/602de8c2aec7e2e3e99ebfb8e04ba65598f746275396eea5f6794ff4673f/coverage-7.15.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:359e141ccd33893ce3f1ad5525f8b96083003677c82182e5907d62d4ea5799fc", size = 221058 }, - { url = "https://files.pythonhosted.org/packages/fc/13/ebab0743138891c1d646d61e247ec29639afcbb6c4e1905e6a0f0c75291a/coverage-7.15.0-cp310-cp310-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:3200b6204935f928c64b2ca1f923ab8c1acb7c9de45ec61569711b34d25cccaf", size = 247797 }, - { url = "https://files.pythonhosted.org/packages/d3/b7/b6ffb9e042aa48dc4144a8a65529affaec8dca0685309353614a2a7386ad/coverage-7.15.0-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:be616bf61346883b2cfdc5178669647e03531d81ab761a7e378558b7e8bcb628", size = 249626 }, - { url = "https://files.pythonhosted.org/packages/9c/06/243ff05b652333d8e3d060c11223efc2723b19cacf6605e433fa686ab5d4/coverage-7.15.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:cc7bafc3fe1059463a8fdd97ca79972d6e2bf819d775c7d54991b5b1971201d6", size = 251493 }, - { url = "https://files.pythonhosted.org/packages/d3/2b/867faa17030a806114dae388b32a3fa929d8cd4bf39226fbc11f6e6bb705/coverage-7.15.0-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:b713aa7fcf325a01d4184d848acb46fd84f78fdb0978470c636b23a06a753d91", size = 253406 }, - { url = "https://files.pythonhosted.org/packages/94/c0/d789ce18f6605afc4895db75723424be2ef494282f77f61d8e5832923183/coverage-7.15.0-cp310-cp310-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:e38e6fba2d56652fdfaf0231f8f78aeb805234a912de25dc291ee5cce5b8faa4", size = 248512 }, - { url = "https://files.pythonhosted.org/packages/c9/b6/b2673c30739f4a2e06649a0a38ad8b093c4d865462dc7bab0e9524a2c3b1/coverage-7.15.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:884499f42e382675be80770391983b90e0c0c774d87dbeeebf5f991cf6612b20", size = 249532 }, - { url = "https://files.pythonhosted.org/packages/3c/2e/acd79e9a41beabee92b623afe4f30b549916f48566271475f2907e752828/coverage-7.15.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:840481b12e083dbcbafab14794a8781a958edf327c8d3d70b4eee42f9b8253aa", size = 247537 }, - { url = "https://files.pythonhosted.org/packages/12/d4/2d301c4d1b3238d7c88b70ab9d13fd53ed9505662a7ff1b46ba1e2e4e3c3/coverage-7.15.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:276646e9481703d09f854f3b2f018f24e19fd7049ae670a92570043eb97203b1", size = 251348 }, - { url = "https://files.pythonhosted.org/packages/35/bb/c67708b2bc00f32e12805ec23d5fa677a0a51652f449341a89f9d6b1b715/coverage-7.15.0-cp310-cp310-musllinux_1_2_riscv64.whl", hash = "sha256:4de4b4d3f5545aa6c60dc4efd9c63b5b5dcc3bf00fe83146b2bdfffb8f6613bd", size = 247806 }, - { url = "https://files.pythonhosted.org/packages/eb/6c/57c4f653c47a6e917748f8938e389e72fbcae44e3643cd906664f0477a13/coverage-7.15.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:5c504097b2a89b1e85bc6070d920df77daec701337e3aeef2c17775a5dd0ca90", size = 248410 }, - { url = "https://files.pythonhosted.org/packages/6c/94/bb083041aef828903668f134273f319f2bd49224962875359c52faa5497f/coverage-7.15.0-cp310-cp310-win32.whl", hash = "sha256:f6e80ed91f98316e86b9c137206b04b2bcfbffccbdff49bd2eb09dddb1cf14e0", size = 222588 }, - { url = "https://files.pythonhosted.org/packages/ef/94/a09d8ee618956f626741b0734854bac4425a00e10c0565f5abca64e7e751/coverage-7.15.0-cp310-cp310-win_amd64.whl", hash = "sha256:b3b3e22030f3f6f5e01a5ce69936552a5c0f6992b7698777377b99041961031f", size = 223214 }, - { url = "https://files.pythonhosted.org/packages/ae/23/82e910835ef4b8391047025e1d53aa48d66029f444eb8b25373c849bf503/coverage-7.15.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:003fff99412ea848c0aaebcc78ed2b6ce7d8a1227ed17e68470672770b78a02a", size = 220662 }, - { url = "https://files.pythonhosted.org/packages/6d/0d/c7b213dde2f1579de5231062b386d8413f79c11667eb58c39319b25991da/coverage-7.15.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:5cbd804bf2784ce7b45114516050f346ecd50f960c4bb630a7ee9e1d78fa2118", size = 221168 }, - { url = "https://files.pythonhosted.org/packages/33/77/d000aeedfac085088337b3c7becdad328474b1f8a9e4c9368a0c99605d68/coverage-7.15.0-cp311-cp311-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:8773e15c23305b58882a4611fb9b2755977eae0dc2e515366a1b6c98866cc4c2", size = 251587 }, - { url = "https://files.pythonhosted.org/packages/cc/e0/86787c56b9df17afd370d5e293515dd4d9a107a561d13054873eefad8ecc/coverage-7.15.0-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:f50e40081494c1dc4239ebb202014cbcc3306ea96fb6302a34c8cc0967fc5ae8", size = 253497 }, - { url = "https://files.pythonhosted.org/packages/3f/02/181bc917359299c07dead6270f94e411151c8b60cec905c33499da69afe6/coverage-7.15.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:daf96f37f5fc3a7b6c6da862eb4aee61c426bd63da236ed4a73ef0e503b4bca5", size = 255607 }, - { url = "https://files.pythonhosted.org/packages/b9/35/ca5e7427699913da6788c4f910e73ab16c5f4b59ec5d3a999dce2a45112f/coverage-7.15.0-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:51aa20f6ae2788fd197747766edf4cd8234fd9423309b934257fa6b21a592723", size = 257563 }, - { url = "https://files.pythonhosted.org/packages/0b/4d/b8220bacc2fc3c4e9078e27c32e99fb411479a4718a72bdd00036a9891c8/coverage-7.15.0-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:03d1f922757662eb7af586e77834792274cff776bc7b1d1a0b66a49ea9d84735", size = 251726 }, - { url = "https://files.pythonhosted.org/packages/c4/e4/2e145da1991d72189b9c3cf7eca05c716ee7080d099aaea6757cfc7df008/coverage-7.15.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:a6d6acc9a7666245e6133dd15144ca038a85a9cd5026bb06d6bbae9e77440dc9", size = 253301 }, - { url = "https://files.pythonhosted.org/packages/72/28/d2c841d698bf762e481f08bd4839d370246b6d9b61dab085a7b20b201a08/coverage-7.15.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:1ac2c4c27c7df851dc9a017c2d7de00b69147e84ba3d96f37a530b0b6fb51035", size = 251361 }, - { url = "https://files.pythonhosted.org/packages/9d/ed/55d9ffde994fba3897c0c783f77a7d053b0c18787f6892ed5b0aed73f469/coverage-7.15.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:b761a1d504fd4bd1f20f418753964dca9f5862a511fc854dac58296b3b223671", size = 255129 }, - { url = "https://files.pythonhosted.org/packages/1d/c0/ecbf33b8c460ea2718aeb813e2df8140d0370e5f67261c31524ceb0a2a8d/coverage-7.15.0-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:e43b045e11c16e897895758ae90e4a90cf99e93d58549e2f90c0e2272e155695", size = 251081 }, - { url = "https://files.pythonhosted.org/packages/a9/de/fb87b4261f54448dd2b9504ef19a58be42cef0d9520595fbfe1219b15234/coverage-7.15.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:589b54513e901739f4b4582c705ce96b80c96f57641b1464607e2367a270e540", size = 251988 }, - { url = "https://files.pythonhosted.org/packages/df/27/3494d5f291b9a4cb868f73c11221a8bd2d5bd761a8f9acea61ff57128dd1/coverage-7.15.0-cp311-cp311-win32.whl", hash = "sha256:106781b8482749162d0b47056937ba0933508e5d9447f65a5e7d5c422f0d6bb4", size = 222754 }, - { url = "https://files.pythonhosted.org/packages/2a/ee/cd4847ebc9be6a9c0123d763645a6f1f3be6b8c58c962706368b79cbac07/coverage-7.15.0-cp311-cp311-win_amd64.whl", hash = "sha256:821e92b3631d762a339695824cadbbc73020354eba2a23a551a99ad34938fbe6", size = 223225 }, - { url = "https://files.pythonhosted.org/packages/57/37/5011581aa7f2be498b97dcc7c9902192442a42f4f9a748aeadb3d6506b42/coverage-7.15.0-cp311-cp311-win_arm64.whl", hash = "sha256:309990eb5fb8014b9f67cb211f7fd41876ec8a88a88d3ae76de0ed1d611e3640", size = 222774 }, - { url = "https://files.pythonhosted.org/packages/2a/74/fd4c0901137c4f8d81a76ada99e43c65163b4c94a02ece107a4ec0c6b615/coverage-7.15.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:b75ee5e8cb7575636ac598719b4307ac529ec8fcd79608a35c3cd4d4dada812d", size = 220838 }, - { url = "https://files.pythonhosted.org/packages/0f/2e/2347583467bd7f0402635101a916961915cc68fce652cd0db5f173ea04fc/coverage-7.15.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ffb31267816b93b075302248cc1737506081b4f163df4401e9df1a6424aafabe", size = 221197 }, - { url = "https://files.pythonhosted.org/packages/f0/17/99fa688541ae1d6e84543a0e544f83de0c944815b63e9e7b1ed411d15036/coverage-7.15.0-cp312-cp312-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:e4d0bb73455bf97ab243a8f12c37c686ccf1c13bb614b7b85f1d062f06f42b2c", size = 252705 }, - { url = "https://files.pythonhosted.org/packages/fb/02/6a95a5cd83b74839017ef9cf48d2d8c9ae60af919e17a3f336e6f9f1b7bd/coverage-7.15.0-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:20d9ccc4ebd0edc434d86dfd2a1dd2a8efa6b6b3073d0485a394fee86459ebb4", size = 255441 }, - { url = "https://files.pythonhosted.org/packages/67/f2/406f6c57d600f68185942422c4c00f1a3255d60aee6e5fd961425cd9987e/coverage-7.15.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:20c8a976c365c8cb12f0cbd099508772ea41fb5fa80657a8506df0e11bd278c5", size = 256556 }, - { url = "https://files.pythonhosted.org/packages/74/8e/d3fa48489c15ecdec1ba48fd61f68798555dddd2f6716f9ad42adeb1a2a9/coverage-7.15.0-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:f948fd5ba1b9cbca91f0ae08b4c1ce2b139509149a435e2585d056d57d70bf01", size = 258815 }, - { url = "https://files.pythonhosted.org/packages/47/2e/2d40ddd110462c6a2769677cf7f1c119a52b45f568978fc6c98e4cc0dd0f/coverage-7.15.0-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:f58185f06edf6ad68ec9fb155d63ef650c82f3fbd7e1770e2867751fb13158f4", size = 253117 }, - { url = "https://files.pythonhosted.org/packages/51/c0/310782f0d7c3cb2b5ac05ba8d205fe91f24a36f6bf3256098f1782181c38/coverage-7.15.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:02adc79a920c73c647c5d117f55747df7f2de94571884758ce8bc58e04f0a796", size = 254475 }, - { url = "https://files.pythonhosted.org/packages/86/f7/702da6c275f8ae6ade423d2877243122932c9b27f5403003b9ef8c927d12/coverage-7.15.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:6eb7c300fbed667fd6e3588eba71c1904cdb06110ca6fdf908c26bdd88b8e382", size = 252619 }, - { url = "https://files.pythonhosted.org/packages/fb/84/c5b15a7e5ecba4e56218d772d99fe80a63e63f8d11f12783723a6005ab45/coverage-7.15.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:b5fb23fa2de9dce1f5c36c09066d8fcda16cd96e8e26686caa2d7cb9b567d65c", size = 256689 }, - { url = "https://files.pythonhosted.org/packages/95/2f/c8b07559b57701230c61b23a953858c052890c12ef568d81780c6c46e92e/coverage-7.15.0-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:cec79341dbe6281484024979976d0c7f22beae08b4a254655decd25d42cbe766", size = 252189 }, - { url = "https://files.pythonhosted.org/packages/6b/80/6d2f049dd3fd3dbfd60b62ba6b2162a04009e2c002ce70b24cf3878dec7a/coverage-7.15.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:6c664c5444b1d970b1b2a450e21fb19ee5c9cfdf151ded2dda37260031cca0da", size = 254059 }, - { url = "https://files.pythonhosted.org/packages/ce/92/b0287a2c42031d25c628f815f89a3cd9f8268ee78bb1252c9356cda1c689/coverage-7.15.0-cp312-cp312-win32.whl", hash = "sha256:5f764a3fa339bde6b3aa97657f5a6a3a9451e4a5b4ea98a2892c773a43525f77", size = 222893 }, - { url = "https://files.pythonhosted.org/packages/a9/69/e34c481915fecb499b3146975061dac528752e37706edc1804f32c822469/coverage-7.15.0-cp312-cp312-win_amd64.whl", hash = "sha256:52f9a4d2c4c56c8848bc2f524916698354b0211488b38c49ad9ae54f6cafbff6", size = 223429 }, - { url = "https://files.pythonhosted.org/packages/fe/98/6e878f0b571d32684ef3f38d7c03db241ca5b82a5da8a5391596a8f209c4/coverage-7.15.0-cp312-cp312-win_arm64.whl", hash = "sha256:31e5c3e70c85307ea35a12964e2e40f56ca2ee4b1c8c721ccf4609d17071080b", size = 222810 }, - { url = "https://files.pythonhosted.org/packages/76/04/145a3748098bcc86b631a85408d2c3dc5c104e0bd86d605468239b25b6c4/coverage-7.15.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:5be4caf3b28836f078abe700f8944dac4a65d78f16d6c600c89cb624e5535782", size = 220863 }, - { url = "https://files.pythonhosted.org/packages/a4/5c/4ed55708fed2c64b63c9bc5715daef670872202101938869b7fe5d5fbb8f/coverage-7.15.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:dd58ad1404704303ca8d4f4b8a1095e7cbc7040ef17a66df1e6619aa10176430", size = 221230 }, - { url = "https://files.pythonhosted.org/packages/7b/19/3a80b97d3b2a5c77a01ae359c6bed20c13738fe3d9380f08616d4fec0281/coverage-7.15.0-cp313-cp313-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:bbcbb317c2e5ded5b21104af81c29f391be2af98d065693ffbe8d23949b948e5", size = 252227 }, - { url = "https://files.pythonhosted.org/packages/a1/fa/b70062750686bd7da454da27927622f48bbac6990ac7a4c4a4653e7b0036/coverage-7.15.0-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:27f31ecb458da3f859aab3f15ada871eb7a7768807d88df4a9f186bb17737970", size = 254823 }, - { url = "https://files.pythonhosted.org/packages/a9/09/dad6a75a2e561b9dc5086a8c5257a7591d584246f67e23e70d2995b89ab6/coverage-7.15.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:13fb759be317fdc62e0f56bffdf61cfcb45c7761ad6b71e3e583e71a67ae753c", size = 256059 }, - { url = "https://files.pythonhosted.org/packages/e6/e7/b5d2941fa9564573d44b693a871ff3156f0c42cbefe977a09fa7fdc59971/coverage-7.15.0-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:d5cf007add5ab4bb8fa9f4c77e3732127c9e6cad501d7db43355fbfafca0be84", size = 258190 }, - { url = "https://files.pythonhosted.org/packages/7c/1d/8e895bcde3c57ccd46d896dda5f2b3d5df761a1b0c6c9d450d175dedc632/coverage-7.15.0-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:cc78d9843bd576fbe2118248258d485e968dc535f95ed504a7b0867ba9b51389", size = 252456 }, - { url = "https://files.pythonhosted.org/packages/14/4c/f6997da343ddeb959be82c3b05322793f92c071ad45f7cb8a96336e2dd5f/coverage-7.15.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a263060f1de0b4b74b4e089c2a70b8003b3781c733329a9c8fd54995328f9950", size = 254192 }, - { url = "https://files.pythonhosted.org/packages/17/27/a0bc09d032267b9da89d95a2d874cfbef2a5aebbf0e87cf7aba221d79a99/coverage-7.15.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:c48decf16e0dfd5b049c7d5e82200c23c08126719142998d4f172444e3d0529e", size = 252153 }, - { url = "https://files.pythonhosted.org/packages/54/c0/77fc233d9fba07b244c40948c53fe27308b8f21732fb3417f87fbd6fd992/coverage-7.15.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:08fb028000ed0aaa0a4cbdfbb98be7cb42f370db973fbbb469733505ab20e13e", size = 256310 }, - { url = "https://files.pythonhosted.org/packages/d5/24/601cecfb5825becacb8d45219a018a3b55b9dbaec624efdb0ea249d08be2/coverage-7.15.0-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:fb7dc0c3b7d8a1077abea0b8546ebc5e26d6ef6ecefc2f0f5ad2b8a53bdad837", size = 251974 }, - { url = "https://files.pythonhosted.org/packages/47/1e/6f45e5a5b3d5484318d368702af6716b5ab8913b0428bec981a562fcf296/coverage-7.15.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:6cb3602054ccbe9f0d8c2dc04bbeba90d5719236e2cd06e042ddd6d3fc7b6e37", size = 253745 }, - { url = "https://files.pythonhosted.org/packages/8e/db/4df027a77bd11d0e527f44c53557c76e54ad027413d0304252ea3a78d67e/coverage-7.15.0-cp313-cp313-win32.whl", hash = "sha256:0bf781da64326b677be344df505171435b6f58716108606621d5d27d964fff8b", size = 222902 }, - { url = "https://files.pythonhosted.org/packages/a0/10/0355894d34e231f2c5449e71287e81a50793a325df2e2b027b7bcd9dfd19/coverage-7.15.0-cp313-cp313-win_amd64.whl", hash = "sha256:2c57a275078ee3fa185f83e400f765bc764a549de66d99b47881645cbd4ea629", size = 223444 }, - { url = "https://files.pythonhosted.org/packages/06/ef/bb725f263befaaff851203ab338e68af15e195d7f7b5f323162532d9b6a8/coverage-7.15.0-cp313-cp313-win_arm64.whl", hash = "sha256:3812c61afc6685c7999b39320779ab8f43b7a3081fdb0def39976e56fbdb9a21", size = 222839 }, - { url = "https://files.pythonhosted.org/packages/52/30/21b2ad45959cd50e909e02ebac1e30b4ceb7162e91c11d4c570223a458b7/coverage-7.15.0-py3-none-any.whl", hash = "sha256:56da6a4cbe8f7e9e80bd072ca9cefe67d7106a440a7ec06519ec6507ac94ad19", size = 212632 }, + { url = "https://files.pythonhosted.org/packages/2a/97/c52dc440c390b6cfa87be9432b141a956e2d56d9b9f5fc8bd71c5f471722/coverage-7.15.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:50913d4bf5ddafa6ca3693da5e4dd833dd1b772e0283c99ca7f7d287db67331a", size = 220539, upload-time = "2026-07-02T13:08:19.252Z" }, + { url = "https://files.pythonhosted.org/packages/3f/26/602de8c2aec7e2e3e99ebfb8e04ba65598f746275396eea5f6794ff4673f/coverage-7.15.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:359e141ccd33893ce3f1ad5525f8b96083003677c82182e5907d62d4ea5799fc", size = 221058, upload-time = "2026-07-02T13:08:21.013Z" }, + { url = "https://files.pythonhosted.org/packages/fc/13/ebab0743138891c1d646d61e247ec29639afcbb6c4e1905e6a0f0c75291a/coverage-7.15.0-cp310-cp310-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:3200b6204935f928c64b2ca1f923ab8c1acb7c9de45ec61569711b34d25cccaf", size = 247797, upload-time = "2026-07-02T13:08:22.474Z" }, + { url = "https://files.pythonhosted.org/packages/d3/b7/b6ffb9e042aa48dc4144a8a65529affaec8dca0685309353614a2a7386ad/coverage-7.15.0-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:be616bf61346883b2cfdc5178669647e03531d81ab761a7e378558b7e8bcb628", size = 249626, upload-time = "2026-07-02T13:08:23.803Z" }, + { url = "https://files.pythonhosted.org/packages/9c/06/243ff05b652333d8e3d060c11223efc2723b19cacf6605e433fa686ab5d4/coverage-7.15.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:cc7bafc3fe1059463a8fdd97ca79972d6e2bf819d775c7d54991b5b1971201d6", size = 251493, upload-time = "2026-07-02T13:08:25.397Z" }, + { url = "https://files.pythonhosted.org/packages/d3/2b/867faa17030a806114dae388b32a3fa929d8cd4bf39226fbc11f6e6bb705/coverage-7.15.0-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:b713aa7fcf325a01d4184d848acb46fd84f78fdb0978470c636b23a06a753d91", size = 253406, upload-time = "2026-07-02T13:08:26.842Z" }, + { url = "https://files.pythonhosted.org/packages/94/c0/d789ce18f6605afc4895db75723424be2ef494282f77f61d8e5832923183/coverage-7.15.0-cp310-cp310-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:e38e6fba2d56652fdfaf0231f8f78aeb805234a912de25dc291ee5cce5b8faa4", size = 248512, upload-time = "2026-07-02T13:08:28.398Z" }, + { url = "https://files.pythonhosted.org/packages/c9/b6/b2673c30739f4a2e06649a0a38ad8b093c4d865462dc7bab0e9524a2c3b1/coverage-7.15.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:884499f42e382675be80770391983b90e0c0c774d87dbeeebf5f991cf6612b20", size = 249532, upload-time = "2026-07-02T13:08:29.731Z" }, + { url = "https://files.pythonhosted.org/packages/3c/2e/acd79e9a41beabee92b623afe4f30b549916f48566271475f2907e752828/coverage-7.15.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:840481b12e083dbcbafab14794a8781a958edf327c8d3d70b4eee42f9b8253aa", size = 247537, upload-time = "2026-07-02T13:08:31.173Z" }, + { url = "https://files.pythonhosted.org/packages/12/d4/2d301c4d1b3238d7c88b70ab9d13fd53ed9505662a7ff1b46ba1e2e4e3c3/coverage-7.15.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:276646e9481703d09f854f3b2f018f24e19fd7049ae670a92570043eb97203b1", size = 251348, upload-time = "2026-07-02T13:08:32.63Z" }, + { url = "https://files.pythonhosted.org/packages/35/bb/c67708b2bc00f32e12805ec23d5fa677a0a51652f449341a89f9d6b1b715/coverage-7.15.0-cp310-cp310-musllinux_1_2_riscv64.whl", hash = "sha256:4de4b4d3f5545aa6c60dc4efd9c63b5b5dcc3bf00fe83146b2bdfffb8f6613bd", size = 247806, upload-time = "2026-07-02T13:08:33.931Z" }, + { url = "https://files.pythonhosted.org/packages/eb/6c/57c4f653c47a6e917748f8938e389e72fbcae44e3643cd906664f0477a13/coverage-7.15.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:5c504097b2a89b1e85bc6070d920df77daec701337e3aeef2c17775a5dd0ca90", size = 248410, upload-time = "2026-07-02T13:08:35.189Z" }, + { url = "https://files.pythonhosted.org/packages/6c/94/bb083041aef828903668f134273f319f2bd49224962875359c52faa5497f/coverage-7.15.0-cp310-cp310-win32.whl", hash = "sha256:f6e80ed91f98316e86b9c137206b04b2bcfbffccbdff49bd2eb09dddb1cf14e0", size = 222588, upload-time = "2026-07-02T13:08:36.486Z" }, + { url = "https://files.pythonhosted.org/packages/ef/94/a09d8ee618956f626741b0734854bac4425a00e10c0565f5abca64e7e751/coverage-7.15.0-cp310-cp310-win_amd64.whl", hash = "sha256:b3b3e22030f3f6f5e01a5ce69936552a5c0f6992b7698777377b99041961031f", size = 223214, upload-time = "2026-07-02T13:08:37.885Z" }, + { url = "https://files.pythonhosted.org/packages/ae/23/82e910835ef4b8391047025e1d53aa48d66029f444eb8b25373c849bf503/coverage-7.15.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:003fff99412ea848c0aaebcc78ed2b6ce7d8a1227ed17e68470672770b78a02a", size = 220662, upload-time = "2026-07-02T13:08:39.205Z" }, + { url = "https://files.pythonhosted.org/packages/6d/0d/c7b213dde2f1579de5231062b386d8413f79c11667eb58c39319b25991da/coverage-7.15.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:5cbd804bf2784ce7b45114516050f346ecd50f960c4bb630a7ee9e1d78fa2118", size = 221168, upload-time = "2026-07-02T13:08:40.471Z" }, + { url = "https://files.pythonhosted.org/packages/33/77/d000aeedfac085088337b3c7becdad328474b1f8a9e4c9368a0c99605d68/coverage-7.15.0-cp311-cp311-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:8773e15c23305b58882a4611fb9b2755977eae0dc2e515366a1b6c98866cc4c2", size = 251587, upload-time = "2026-07-02T13:08:42.033Z" }, + { url = "https://files.pythonhosted.org/packages/cc/e0/86787c56b9df17afd370d5e293515dd4d9a107a561d13054873eefad8ecc/coverage-7.15.0-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:f50e40081494c1dc4239ebb202014cbcc3306ea96fb6302a34c8cc0967fc5ae8", size = 253497, upload-time = "2026-07-02T13:08:43.387Z" }, + { url = "https://files.pythonhosted.org/packages/3f/02/181bc917359299c07dead6270f94e411151c8b60cec905c33499da69afe6/coverage-7.15.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:daf96f37f5fc3a7b6c6da862eb4aee61c426bd63da236ed4a73ef0e503b4bca5", size = 255607, upload-time = "2026-07-02T13:08:44.897Z" }, + { url = "https://files.pythonhosted.org/packages/b9/35/ca5e7427699913da6788c4f910e73ab16c5f4b59ec5d3a999dce2a45112f/coverage-7.15.0-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:51aa20f6ae2788fd197747766edf4cd8234fd9423309b934257fa6b21a592723", size = 257563, upload-time = "2026-07-02T13:08:46.334Z" }, + { url = "https://files.pythonhosted.org/packages/0b/4d/b8220bacc2fc3c4e9078e27c32e99fb411479a4718a72bdd00036a9891c8/coverage-7.15.0-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:03d1f922757662eb7af586e77834792274cff776bc7b1d1a0b66a49ea9d84735", size = 251726, upload-time = "2026-07-02T13:08:47.941Z" }, + { url = "https://files.pythonhosted.org/packages/c4/e4/2e145da1991d72189b9c3cf7eca05c716ee7080d099aaea6757cfc7df008/coverage-7.15.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:a6d6acc9a7666245e6133dd15144ca038a85a9cd5026bb06d6bbae9e77440dc9", size = 253301, upload-time = "2026-07-02T13:08:49.5Z" }, + { url = "https://files.pythonhosted.org/packages/72/28/d2c841d698bf762e481f08bd4839d370246b6d9b61dab085a7b20b201a08/coverage-7.15.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:1ac2c4c27c7df851dc9a017c2d7de00b69147e84ba3d96f37a530b0b6fb51035", size = 251361, upload-time = "2026-07-02T13:08:51.304Z" }, + { url = "https://files.pythonhosted.org/packages/9d/ed/55d9ffde994fba3897c0c783f77a7d053b0c18787f6892ed5b0aed73f469/coverage-7.15.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:b761a1d504fd4bd1f20f418753964dca9f5862a511fc854dac58296b3b223671", size = 255129, upload-time = "2026-07-02T13:08:52.661Z" }, + { url = "https://files.pythonhosted.org/packages/1d/c0/ecbf33b8c460ea2718aeb813e2df8140d0370e5f67261c31524ceb0a2a8d/coverage-7.15.0-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:e43b045e11c16e897895758ae90e4a90cf99e93d58549e2f90c0e2272e155695", size = 251081, upload-time = "2026-07-02T13:08:54.188Z" }, + { url = "https://files.pythonhosted.org/packages/a9/de/fb87b4261f54448dd2b9504ef19a58be42cef0d9520595fbfe1219b15234/coverage-7.15.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:589b54513e901739f4b4582c705ce96b80c96f57641b1464607e2367a270e540", size = 251988, upload-time = "2026-07-02T13:08:55.726Z" }, + { url = "https://files.pythonhosted.org/packages/df/27/3494d5f291b9a4cb868f73c11221a8bd2d5bd761a8f9acea61ff57128dd1/coverage-7.15.0-cp311-cp311-win32.whl", hash = "sha256:106781b8482749162d0b47056937ba0933508e5d9447f65a5e7d5c422f0d6bb4", size = 222754, upload-time = "2026-07-02T13:08:57.091Z" }, + { url = "https://files.pythonhosted.org/packages/2a/ee/cd4847ebc9be6a9c0123d763645a6f1f3be6b8c58c962706368b79cbac07/coverage-7.15.0-cp311-cp311-win_amd64.whl", hash = "sha256:821e92b3631d762a339695824cadbbc73020354eba2a23a551a99ad34938fbe6", size = 223225, upload-time = "2026-07-02T13:08:58.594Z" }, + { url = "https://files.pythonhosted.org/packages/57/37/5011581aa7f2be498b97dcc7c9902192442a42f4f9a748aeadb3d6506b42/coverage-7.15.0-cp311-cp311-win_arm64.whl", hash = "sha256:309990eb5fb8014b9f67cb211f7fd41876ec8a88a88d3ae76de0ed1d611e3640", size = 222774, upload-time = "2026-07-02T13:09:00.074Z" }, + { url = "https://files.pythonhosted.org/packages/2a/74/fd4c0901137c4f8d81a76ada99e43c65163b4c94a02ece107a4ec0c6b615/coverage-7.15.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:b75ee5e8cb7575636ac598719b4307ac529ec8fcd79608a35c3cd4d4dada812d", size = 220838, upload-time = "2026-07-02T13:09:02.084Z" }, + { url = "https://files.pythonhosted.org/packages/0f/2e/2347583467bd7f0402635101a916961915cc68fce652cd0db5f173ea04fc/coverage-7.15.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ffb31267816b93b075302248cc1737506081b4f163df4401e9df1a6424aafabe", size = 221197, upload-time = "2026-07-02T13:09:03.617Z" }, + { url = "https://files.pythonhosted.org/packages/f0/17/99fa688541ae1d6e84543a0e544f83de0c944815b63e9e7b1ed411d15036/coverage-7.15.0-cp312-cp312-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:e4d0bb73455bf97ab243a8f12c37c686ccf1c13bb614b7b85f1d062f06f42b2c", size = 252705, upload-time = "2026-07-02T13:09:05.059Z" }, + { url = "https://files.pythonhosted.org/packages/fb/02/6a95a5cd83b74839017ef9cf48d2d8c9ae60af919e17a3f336e6f9f1b7bd/coverage-7.15.0-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:20d9ccc4ebd0edc434d86dfd2a1dd2a8efa6b6b3073d0485a394fee86459ebb4", size = 255441, upload-time = "2026-07-02T13:09:06.559Z" }, + { url = "https://files.pythonhosted.org/packages/67/f2/406f6c57d600f68185942422c4c00f1a3255d60aee6e5fd961425cd9987e/coverage-7.15.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:20c8a976c365c8cb12f0cbd099508772ea41fb5fa80657a8506df0e11bd278c5", size = 256556, upload-time = "2026-07-02T13:09:08.197Z" }, + { url = "https://files.pythonhosted.org/packages/74/8e/d3fa48489c15ecdec1ba48fd61f68798555dddd2f6716f9ad42adeb1a2a9/coverage-7.15.0-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:f948fd5ba1b9cbca91f0ae08b4c1ce2b139509149a435e2585d056d57d70bf01", size = 258815, upload-time = "2026-07-02T13:09:09.691Z" }, + { url = "https://files.pythonhosted.org/packages/47/2e/2d40ddd110462c6a2769677cf7f1c119a52b45f568978fc6c98e4cc0dd0f/coverage-7.15.0-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:f58185f06edf6ad68ec9fb155d63ef650c82f3fbd7e1770e2867751fb13158f4", size = 253117, upload-time = "2026-07-02T13:09:11.212Z" }, + { url = "https://files.pythonhosted.org/packages/51/c0/310782f0d7c3cb2b5ac05ba8d205fe91f24a36f6bf3256098f1782181c38/coverage-7.15.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:02adc79a920c73c647c5d117f55747df7f2de94571884758ce8bc58e04f0a796", size = 254475, upload-time = "2026-07-02T13:09:13.029Z" }, + { url = "https://files.pythonhosted.org/packages/86/f7/702da6c275f8ae6ade423d2877243122932c9b27f5403003b9ef8c927d12/coverage-7.15.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:6eb7c300fbed667fd6e3588eba71c1904cdb06110ca6fdf908c26bdd88b8e382", size = 252619, upload-time = "2026-07-02T13:09:14.699Z" }, + { url = "https://files.pythonhosted.org/packages/fb/84/c5b15a7e5ecba4e56218d772d99fe80a63e63f8d11f12783723a6005ab45/coverage-7.15.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:b5fb23fa2de9dce1f5c36c09066d8fcda16cd96e8e26686caa2d7cb9b567d65c", size = 256689, upload-time = "2026-07-02T13:09:16.103Z" }, + { url = "https://files.pythonhosted.org/packages/95/2f/c8b07559b57701230c61b23a953858c052890c12ef568d81780c6c46e92e/coverage-7.15.0-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:cec79341dbe6281484024979976d0c7f22beae08b4a254655decd25d42cbe766", size = 252189, upload-time = "2026-07-02T13:09:17.828Z" }, + { url = "https://files.pythonhosted.org/packages/6b/80/6d2f049dd3fd3dbfd60b62ba6b2162a04009e2c002ce70b24cf3878dec7a/coverage-7.15.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:6c664c5444b1d970b1b2a450e21fb19ee5c9cfdf151ded2dda37260031cca0da", size = 254059, upload-time = "2026-07-02T13:09:19.304Z" }, + { url = "https://files.pythonhosted.org/packages/ce/92/b0287a2c42031d25c628f815f89a3cd9f8268ee78bb1252c9356cda1c689/coverage-7.15.0-cp312-cp312-win32.whl", hash = "sha256:5f764a3fa339bde6b3aa97657f5a6a3a9451e4a5b4ea98a2892c773a43525f77", size = 222893, upload-time = "2026-07-02T13:09:20.812Z" }, + { url = "https://files.pythonhosted.org/packages/a9/69/e34c481915fecb499b3146975061dac528752e37706edc1804f32c822469/coverage-7.15.0-cp312-cp312-win_amd64.whl", hash = "sha256:52f9a4d2c4c56c8848bc2f524916698354b0211488b38c49ad9ae54f6cafbff6", size = 223429, upload-time = "2026-07-02T13:09:22.315Z" }, + { url = "https://files.pythonhosted.org/packages/fe/98/6e878f0b571d32684ef3f38d7c03db241ca5b82a5da8a5391596a8f209c4/coverage-7.15.0-cp312-cp312-win_arm64.whl", hash = "sha256:31e5c3e70c85307ea35a12964e2e40f56ca2ee4b1c8c721ccf4609d17071080b", size = 222810, upload-time = "2026-07-02T13:09:23.812Z" }, + { url = "https://files.pythonhosted.org/packages/76/04/145a3748098bcc86b631a85408d2c3dc5c104e0bd86d605468239b25b6c4/coverage-7.15.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:5be4caf3b28836f078abe700f8944dac4a65d78f16d6c600c89cb624e5535782", size = 220863, upload-time = "2026-07-02T13:09:25.371Z" }, + { url = "https://files.pythonhosted.org/packages/a4/5c/4ed55708fed2c64b63c9bc5715daef670872202101938869b7fe5d5fbb8f/coverage-7.15.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:dd58ad1404704303ca8d4f4b8a1095e7cbc7040ef17a66df1e6619aa10176430", size = 221230, upload-time = "2026-07-02T13:09:26.897Z" }, + { url = "https://files.pythonhosted.org/packages/7b/19/3a80b97d3b2a5c77a01ae359c6bed20c13738fe3d9380f08616d4fec0281/coverage-7.15.0-cp313-cp313-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:bbcbb317c2e5ded5b21104af81c29f391be2af98d065693ffbe8d23949b948e5", size = 252227, upload-time = "2026-07-02T13:09:28.543Z" }, + { url = "https://files.pythonhosted.org/packages/a1/fa/b70062750686bd7da454da27927622f48bbac6990ac7a4c4a4653e7b0036/coverage-7.15.0-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:27f31ecb458da3f859aab3f15ada871eb7a7768807d88df4a9f186bb17737970", size = 254823, upload-time = "2026-07-02T13:09:30.177Z" }, + { url = "https://files.pythonhosted.org/packages/a9/09/dad6a75a2e561b9dc5086a8c5257a7591d584246f67e23e70d2995b89ab6/coverage-7.15.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:13fb759be317fdc62e0f56bffdf61cfcb45c7761ad6b71e3e583e71a67ae753c", size = 256059, upload-time = "2026-07-02T13:09:31.979Z" }, + { url = "https://files.pythonhosted.org/packages/e6/e7/b5d2941fa9564573d44b693a871ff3156f0c42cbefe977a09fa7fdc59971/coverage-7.15.0-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:d5cf007add5ab4bb8fa9f4c77e3732127c9e6cad501d7db43355fbfafca0be84", size = 258190, upload-time = "2026-07-02T13:09:34.035Z" }, + { url = "https://files.pythonhosted.org/packages/7c/1d/8e895bcde3c57ccd46d896dda5f2b3d5df761a1b0c6c9d450d175dedc632/coverage-7.15.0-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:cc78d9843bd576fbe2118248258d485e968dc535f95ed504a7b0867ba9b51389", size = 252456, upload-time = "2026-07-02T13:09:35.765Z" }, + { url = "https://files.pythonhosted.org/packages/14/4c/f6997da343ddeb959be82c3b05322793f92c071ad45f7cb8a96336e2dd5f/coverage-7.15.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a263060f1de0b4b74b4e089c2a70b8003b3781c733329a9c8fd54995328f9950", size = 254192, upload-time = "2026-07-02T13:09:37.445Z" }, + { url = "https://files.pythonhosted.org/packages/17/27/a0bc09d032267b9da89d95a2d874cfbef2a5aebbf0e87cf7aba221d79a99/coverage-7.15.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:c48decf16e0dfd5b049c7d5e82200c23c08126719142998d4f172444e3d0529e", size = 252153, upload-time = "2026-07-02T13:09:39.422Z" }, + { url = "https://files.pythonhosted.org/packages/54/c0/77fc233d9fba07b244c40948c53fe27308b8f21732fb3417f87fbd6fd992/coverage-7.15.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:08fb028000ed0aaa0a4cbdfbb98be7cb42f370db973fbbb469733505ab20e13e", size = 256310, upload-time = "2026-07-02T13:09:41.006Z" }, + { url = "https://files.pythonhosted.org/packages/d5/24/601cecfb5825becacb8d45219a018a3b55b9dbaec624efdb0ea249d08be2/coverage-7.15.0-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:fb7dc0c3b7d8a1077abea0b8546ebc5e26d6ef6ecefc2f0f5ad2b8a53bdad837", size = 251974, upload-time = "2026-07-02T13:09:42.733Z" }, + { url = "https://files.pythonhosted.org/packages/47/1e/6f45e5a5b3d5484318d368702af6716b5ab8913b0428bec981a562fcf296/coverage-7.15.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:6cb3602054ccbe9f0d8c2dc04bbeba90d5719236e2cd06e042ddd6d3fc7b6e37", size = 253745, upload-time = "2026-07-02T13:09:44.376Z" }, + { url = "https://files.pythonhosted.org/packages/8e/db/4df027a77bd11d0e527f44c53557c76e54ad027413d0304252ea3a78d67e/coverage-7.15.0-cp313-cp313-win32.whl", hash = "sha256:0bf781da64326b677be344df505171435b6f58716108606621d5d27d964fff8b", size = 222902, upload-time = "2026-07-02T13:09:46.122Z" }, + { url = "https://files.pythonhosted.org/packages/a0/10/0355894d34e231f2c5449e71287e81a50793a325df2e2b027b7bcd9dfd19/coverage-7.15.0-cp313-cp313-win_amd64.whl", hash = "sha256:2c57a275078ee3fa185f83e400f765bc764a549de66d99b47881645cbd4ea629", size = 223444, upload-time = "2026-07-02T13:09:47.687Z" }, + { url = "https://files.pythonhosted.org/packages/06/ef/bb725f263befaaff851203ab338e68af15e195d7f7b5f323162532d9b6a8/coverage-7.15.0-cp313-cp313-win_arm64.whl", hash = "sha256:3812c61afc6685c7999b39320779ab8f43b7a3081fdb0def39976e56fbdb9a21", size = 222839, upload-time = "2026-07-02T13:09:49.717Z" }, + { url = "https://files.pythonhosted.org/packages/4f/9c/1e3ca54f72a3185ece06c58d871099898c48f0ed6430d17b6ab75f0d180a/coverage-7.15.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:41cb79af843222e11da87127ad0ecbfa878abadd0f770a4a99391a27d3887324", size = 220906, upload-time = "2026-07-02T13:09:51.339Z" }, + { url = "https://files.pythonhosted.org/packages/09/37/f718613d83b274880382f6b67e78f3802549ae39b0b3e65ae5b5974df56e/coverage-7.15.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:7d2008989ef8fe54188d3f3bfa2e3099b025af11e90a6a1b9e7dc433d04263d8", size = 221239, upload-time = "2026-07-02T13:09:53.138Z" }, + { url = "https://files.pythonhosted.org/packages/a7/ce/22bae91e0b75445f68d365c7643ed0aa4880bbf77450ee74ca65bdae53a7/coverage-7.15.0-cp314-cp314-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:769e8ece11a596315ebf5aa7ec383aeeed016c091d2bf6363ffb996d41529092", size = 252286, upload-time = "2026-07-02T13:09:54.996Z" }, + { url = "https://files.pythonhosted.org/packages/dd/1e/bec5e32aa508615d9d7a2790effb25fb4dc28606e995816afe400b25ece3/coverage-7.15.0-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:65a6b6164ee5c39e2f3803f314292d6c61a607ba7fee253d1e03c42dc3903502", size = 254789, upload-time = "2026-07-02T13:09:56.678Z" }, + { url = "https://files.pythonhosted.org/packages/17/29/0e865435b4354e4a7c03b1b7920046d31d0a273d55decefea27e011cb9bf/coverage-7.15.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:75128817f95a5c45bb01d65fd2d8b9cb54bbe03d81608fb70e3e14b437ad56c2", size = 256135, upload-time = "2026-07-02T13:09:58.343Z" }, + { url = "https://files.pythonhosted.org/packages/84/ff/33a870b58a13325d62fc0a6c8f01fa0ff667cef60c7498e2382a147dfa18/coverage-7.15.0-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:9887bb428fe2d4cd4bee89bac1a6c9932f484afd5b36fbd4ff6ea5f825bb1f5e", size = 258449, upload-time = "2026-07-02T13:10:00.057Z" }, + { url = "https://files.pythonhosted.org/packages/18/7b/6fffe596bf3ddba8462758d02c5dad730fd91055a6634aa2e4226229181a/coverage-7.15.0-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:0bfc0be1f702042207a93a00523b1065ee1fe951e96edf311581c0bbc2e34888", size = 252313, upload-time = "2026-07-02T13:10:01.946Z" }, + { url = "https://files.pythonhosted.org/packages/58/1b/11468dd6c1676ab831a70cb9a8d4e198e8607fa0b7220ab918b73fe9bfbd/coverage-7.15.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:f64627d55def5a43282d70e08396672692f77e4da610a5bb8bb4060b432b6859", size = 254142, upload-time = "2026-07-02T13:10:04.065Z" }, + { url = "https://files.pythonhosted.org/packages/79/41/29328e21d16b1b95092c30dd700e08cf915bd3734f836df8f3bdb0e8fa9f/coverage-7.15.0-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:2c6f0fa473003905c6d5bac328ee4eba9fbea654f15bc24b8a3274b23363fa99", size = 252108, upload-time = "2026-07-02T13:10:06.11Z" }, + { url = "https://files.pythonhosted.org/packages/9b/de/05ccfb990439655b35afbfd8e0d13fe66677565a7d4eb38c3f5ef2635e1c/coverage-7.15.0-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:2bcf9afaf064172c6ec3c58a325a9957ad1178c05dd934e25f253321776e0676", size = 256385, upload-time = "2026-07-02T13:10:08.141Z" }, + { url = "https://files.pythonhosted.org/packages/51/0e/486828a3d2695ea7a2609f17ff572f6b01905e608379440a11da4b8dffbe/coverage-7.15.0-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:baf06bc987115d6fb938d403f7eab684a057766c490367999a2b71a6883110c6", size = 251923, upload-time = "2026-07-02T13:10:10.179Z" }, + { url = "https://files.pythonhosted.org/packages/18/c7/03582b6715f078e5e558354c87616d945b9894cda2dace8e4009b17035e4/coverage-7.15.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:f0405f2ff97b1c4c0e782cb32e02f32369bcf2e6b618b591d67e1ea754575dfe", size = 253580, upload-time = "2026-07-02T13:10:12.052Z" }, + { url = "https://files.pythonhosted.org/packages/db/dc/9e578bbaf2ecb4959a81b7e7601ad8cca772cba2892e8d144cb749b4a71a/coverage-7.15.0-cp314-cp314-win32.whl", hash = "sha256:ab282853ed5fbd64bbb162f19cb8fcb7087187508a6374b4f9c34ec1577c4e8f", size = 223107, upload-time = "2026-07-02T13:10:13.994Z" }, + { url = "https://files.pythonhosted.org/packages/ae/3e/c8c3b75d8dbe0e35f7b0cc3ff5e949fc59500f70b21d0398813f66740664/coverage-7.15.0-cp314-cp314-win_amd64.whl", hash = "sha256:3bb3040e9f4bbe26fcb0cd7cc85ac63e630d3f3a9c74f027abf4caa27e706663", size = 223597, upload-time = "2026-07-02T13:10:15.906Z" }, + { url = "https://files.pythonhosted.org/packages/cd/bc/3cbc9fb036eb388519bccd521f783499c39b64256013fbc362782f196fe1/coverage-7.15.0-cp314-cp314-win_arm64.whl", hash = "sha256:346771144d34f7fa84ec28386f78e0f31653f33cf35e19d253d5b35f9e8201da", size = 223020, upload-time = "2026-07-02T13:10:17.844Z" }, + { url = "https://files.pythonhosted.org/packages/28/00/199c4a8d656dff63102577a056c0fce2ff6a79e40adac092fc986c49cbf1/coverage-7.15.0-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:d34a010905fb6401324ba016b5da03d574967f7b21ce48ea41e66f0f1f95f641", size = 221638, upload-time = "2026-07-02T13:10:19.703Z" }, + { url = "https://files.pythonhosted.org/packages/ba/8e/9d0092c96a3d3a26951ecc7020826aa57bcb1b119ca81acbba996884ab13/coverage-7.15.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:bb25d825d885ca8036795dacfc3924d33091fc76d71ebc99420c6b79e77d96fa", size = 221903, upload-time = "2026-07-02T13:10:21.514Z" }, + { url = "https://files.pythonhosted.org/packages/6d/b4/c0ca3028f42c9a08e51feb4561ef1192e5de99797cd1db5b04590c215bda/coverage-7.15.0-cp314-cp314t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:94c9686bfe8a9a6810297aecbd99beaa3445f9e8dc2f80b1382cca0d86b64461", size = 263267, upload-time = "2026-07-02T13:10:23.261Z" }, + { url = "https://files.pythonhosted.org/packages/5f/aa/a375e3846e5d3c013dc600b2a3231089055c73d77f5393dd2192a8d64da6/coverage-7.15.0-cp314-cp314t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:9bd671c25f9d85f09d7ec481d0e43d5139f486c06a37139847a7ce569788af72", size = 265390, upload-time = "2026-07-02T13:10:25.152Z" }, + { url = "https://files.pythonhosted.org/packages/92/e1/5783cdabb797305e1c9e4809fea496d31834c51fa772514f73dc148bcfc9/coverage-7.15.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:110cbdf8d2e216577312cf06ccf85539c0e5a5420ef747e4a4719b5e483c88cd", size = 267811, upload-time = "2026-07-02T13:10:27.249Z" }, + { url = "https://files.pythonhosted.org/packages/85/31/96d8bbf58b8e9193bc8389574a91a0db48355ee98feb66aa6bf8d1b32eea/coverage-7.15.0-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:2c5d4619214f1d9993e7b00a8600d14614b7e9d84e89507460b126aa5e6559e5", size = 268928, upload-time = "2026-07-02T13:10:29.242Z" }, + { url = "https://files.pythonhosted.org/packages/5e/7a/5294567e811a1cb7eda93140c628fa050d66189da28da320f93d1d815c73/coverage-7.15.0-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:781a704516e2d8346fbbd5be6c6f3412dd824785146528b3a01816f26c081007", size = 262378, upload-time = "2026-07-02T13:10:31.107Z" }, + { url = "https://files.pythonhosted.org/packages/69/3f/3f48538421f899f28946f90a3d272136a4686e1abf461cc9249a783ee0f3/coverage-7.15.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:bd4a1b44bcb65ee29e947ac92bbee04956df3a6bfc6143641bb6cae7ede00fc9", size = 265263, upload-time = "2026-07-02T13:10:32.942Z" }, + { url = "https://files.pythonhosted.org/packages/ce/d3/092df15efcab8a9c1467ee960eb8019bbad3f9300d115d89ea6195f369ff/coverage-7.15.0-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:0e4950c9d6d3e39c64c991814ff315e2d0b9cb8152363594212c9e55208c0a8f", size = 262866, upload-time = "2026-07-02T13:10:35.104Z" }, + { url = "https://files.pythonhosted.org/packages/e5/ab/0254d2b88665efb2c57ad368cc77ab5de3435bd8d5add4729c1b0e79431e/coverage-7.15.0-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:fe9c87ff42e5472d80d21704972e1f96e104a0a599d77c5e35db5a3c562e2571", size = 266599, upload-time = "2026-07-02T13:10:37.05Z" }, + { url = "https://files.pythonhosted.org/packages/a8/79/1cfa4023e489ce6fbc7be4a5d442dbc375edb4f4fda39a352cedb53263c2/coverage-7.15.0-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:f00d5ae1dd2fe13fb8186e3e7d37bcbd8b25c0d764ff7d1b32cef9be058510a8", size = 261714, upload-time = "2026-07-02T13:10:38.966Z" }, + { url = "https://files.pythonhosted.org/packages/b7/eb/fee5c8665656be63f497418d410484637c438172568688e8ac92e06574e7/coverage-7.15.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:363ab38cc78b615f11c9cac3cf1d7eef950c18b9fdedfb9066f59461dcf84d68", size = 264025, upload-time = "2026-07-02T13:10:40.789Z" }, + { url = "https://files.pythonhosted.org/packages/ab/99/63005db722f91edc81abc16302f9cc2f6228c1679e46e15be9ae144b14d0/coverage-7.15.0-cp314-cp314t-win32.whl", hash = "sha256:54fd9c53a5fafff509195f1b6a3f9be615d8e8362a3629ff1de23d270c03c86b", size = 223413, upload-time = "2026-07-02T13:10:42.597Z" }, + { url = "https://files.pythonhosted.org/packages/c1/e8/2bc6181c4fb06f1a6b981eb85330cc57bfad7e3f710fc9c9d350013ba228/coverage-7.15.0-cp314-cp314t-win_amd64.whl", hash = "sha256:87b47553097ba185ed964866078e7e63adea9f5f51b5f39691c34f30afd21080", size = 224245, upload-time = "2026-07-02T13:10:44.47Z" }, + { url = "https://files.pythonhosted.org/packages/79/b8/4d959bf9cc45d0cfed2f4d35cafcab978cdb6ea02eb5100009cd740632a3/coverage-7.15.0-cp314-cp314t-win_arm64.whl", hash = "sha256:aeefb2dd178fe7eee79f0ad25d75855cb35ee9ed472db2c5ea06f5b4fd00cec5", size = 223558, upload-time = "2026-07-02T13:10:46.368Z" }, + { url = "https://files.pythonhosted.org/packages/52/30/21b2ad45959cd50e909e02ebac1e30b4ceb7162e91c11d4c570223a458b7/coverage-7.15.0-py3-none-any.whl", hash = "sha256:56da6a4cbe8f7e9e80bd072ca9cefe67d7106a440a7ec06519ec6507ac94ad19", size = 212632, upload-time = "2026-07-02T13:10:48.641Z" }, ] [package.optional-dependencies] @@ -269,117 +343,160 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "toolz" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/bd/d4/16916f3dc20a3f5455b63c35dcb260b3716f59ce27a93586804e70e431d5/cytoolz-1.1.0.tar.gz", hash = "sha256:13a7bf254c3c0d28b12e2290b82aed0f0977a4c2a2bf84854fcdc7796a29f3b0", size = 642510 } +sdist = { url = "https://files.pythonhosted.org/packages/bd/d4/16916f3dc20a3f5455b63c35dcb260b3716f59ce27a93586804e70e431d5/cytoolz-1.1.0.tar.gz", hash = "sha256:13a7bf254c3c0d28b12e2290b82aed0f0977a4c2a2bf84854fcdc7796a29f3b0", size = 642510, upload-time = "2025-10-19T00:44:56.174Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/a7/7a/3244e6e3587be9abfee3b1c320e43a279831b3c3a31fe5d08c1ee6193e6b/cytoolz-1.1.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:72d7043a88ea5e61ba9d17ea0d1c1eff10f645d7edfcc4e56a31ef78be287644", size = 1307813 }, - { url = "https://files.pythonhosted.org/packages/32/7e/eaf504ca59addce323ef4d4ffedc2913d83c121ec19f6419bc402f7702dc/cytoolz-1.1.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d759e9ed421bacfeb456d47af8d734c057b9912b5f2441f95b27ca35e5efab07", size = 985777 }, - { url = "https://files.pythonhosted.org/packages/d4/a1/ec95443f0cf4cd0dbc574fa26ac85a0442d35f3b601a90a0e3dda077f614/cytoolz-1.1.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:fdb5be8fbcc0396141189022724155a4c1c93712ac4aef8c03829af0c2a816d7", size = 982865 }, - { url = "https://files.pythonhosted.org/packages/a7/1b/8503604b0c0534977363fb77d371019395dfa031a216f9b1d8729d1280e4/cytoolz-1.1.0-cp310-cp310-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:c8c0a513dc89bc05cc72893609118815bced5ef201f1a317b4cc3423b3a0e750", size = 2597969 }, - { url = "https://files.pythonhosted.org/packages/4e/e5/30748da06417cb2d4bc58e380b0c11d8c6539f4e289dc1e4f4b4fc248d0e/cytoolz-1.1.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ce94db4f8ebe842c30c0ece42ff5de977c47859088c2c363dede5a68f6906484", size = 2692230 }, - { url = "https://files.pythonhosted.org/packages/d6/84/e06580b74deb97dfd3513e4e6b660c2dedc220c7653f5bd3e4f772f4d885/cytoolz-1.1.0-cp310-cp310-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:b622d4f54e370c853ded94a668f94fe72c6d70e06ac102f17a2746661c27ab52", size = 2565243 }, - { url = "https://files.pythonhosted.org/packages/91/5e/79c0122a34c33afcb5aaee1fec35be24fe16cecefb9bb8890f2908feae56/cytoolz-1.1.0-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:375a65baa5a5b4ff6a0c5ff17e170cf23312e4c710755771ca966144c24216b5", size = 2868602 }, - { url = "https://files.pythonhosted.org/packages/3f/84/404698ff02b32292db1e39cc4a2fbdabe15164b092cc364902984c3ce0f4/cytoolz-1.1.0-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:c0d51bcdb3203a062a78f66bbe33db5e3123048e24a5f0e1402422d79df8ee2d", size = 2905121 }, - { url = "https://files.pythonhosted.org/packages/9f/33/afad6593829ba73fc87b5ae64441e380fc937f79f24a1cda60d23cb99b8c/cytoolz-1.1.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1010869529bb05dc9802b6d776a34ca1b6d48b9deec70ad5e2918ae175be5c2f", size = 2684382 }, - { url = "https://files.pythonhosted.org/packages/ce/86/7900013a82ca9c6cadbfb22bf50d0fbfc3b192915d2bdd9fab3f69a9afba/cytoolz-1.1.0-cp310-cp310-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:11a8f2e83295bdb33f35454d6bafcb7845b03b5881dcaed66ecbd726c7f16772", size = 2518183 }, - { url = "https://files.pythonhosted.org/packages/c3/4b/acf9be2953fed6a6d795fb66de37c367915037a998a5b3d3b69476cf91fe/cytoolz-1.1.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:0499c5e0a8e688ed367a2e51cc13792ae8f08226c15f7d168589fc44b9b9cada", size = 2609368 }, - { url = "https://files.pythonhosted.org/packages/fd/ec/3e30455fd526f5cc37bd3dd2a0e2aafb803ae4d271e50ce53bfc30810053/cytoolz-1.1.0-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:87d44e6033d4c5e95a7d39ba59b8e105ba1c29b1ccd1d215f26477cc1d64be39", size = 2561458 }, - { url = "https://files.pythonhosted.org/packages/49/27/e5815c85bb18cdf95780f9596dcfd76dee910a4d635a1924648cb8a636c6/cytoolz-1.1.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:a68cef396a7de237f7b97422a6a450dfb111722296ba217ba5b34551832f1f6e", size = 2578236 }, - { url = "https://files.pythonhosted.org/packages/17/db/588e266eff397670398ea335a809152e77b02ee92e0ec42091115b42f09b/cytoolz-1.1.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:06ad4c95b258141f138a93ebfdc1d76ac087afc1a82f1401100a1f44b44ba656", size = 2770523 }, - { url = "https://files.pythonhosted.org/packages/ab/ad/82be0b999c7a0a0b362cedfc183eb090b872fd42937af2d6e97d58bc70f8/cytoolz-1.1.0-cp310-cp310-musllinux_1_2_riscv64.whl", hash = "sha256:ada59a4b3c59d4ac7162e0ed08667ffa78abf48e975c8a9f9d5b9bc50720f4fd", size = 2512909 }, - { url = "https://files.pythonhosted.org/packages/25/21/45f07ab0339a20c518bc9006100922babc397ab7ea5ef40a395db83b9cdd/cytoolz-1.1.0-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:a8957bcaea1ba01327a9b219d2adb84144377684f51444253890dab500ca171f", size = 2755345 }, - { url = "https://files.pythonhosted.org/packages/8b/a7/e530bf2b304206f79b36d793caba1ff9448348713a41bb1ad0197714a0f2/cytoolz-1.1.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:6d8cdc299d67eb0f3b9ecdafeeb55eb3b7b7470e2d950ac34b05ed4c7a5572b8", size = 2617790 }, - { url = "https://files.pythonhosted.org/packages/9f/77/7f53092121d7431589344c7d65c3d43c4111547aafabb21d3ca9032d126c/cytoolz-1.1.0-cp310-cp310-win32.whl", hash = "sha256:d8e08464c5cdea4f6df31e84b11ed6bfd79cedb99fbcbfdc15eb9361a6053c5a", size = 900209 }, - { url = "https://files.pythonhosted.org/packages/84/e4/902578658303b9bc76b1704d3ed85e6d307d311bd9fa0b919581bea56e62/cytoolz-1.1.0-cp310-cp310-win_amd64.whl", hash = "sha256:7e49922a7ed54262d41960bf3b835a7700327bf79cff1e9bfc73d79021132ff8", size = 944802 }, - { url = "https://files.pythonhosted.org/packages/71/9f/56a7003617b4eabd8ddfb470aacc240425cbe6ddeb756adfbbaadaa175f1/cytoolz-1.1.0-cp310-cp310-win_arm64.whl", hash = "sha256:943a662d2e72ffc4438d43ab5a1de8d852237775a423236594a3b3e381b8032c", size = 904835 }, - { url = "https://files.pythonhosted.org/packages/69/82/edf1d0c32b6222f2c22e5618d6db855d44eb59f9b6f22436ff963c5d0a5c/cytoolz-1.1.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:dba8e5a8c6e3c789d27b0eb5e7ce5ed7d032a7a9aae17ca4ba5147b871f6e327", size = 1314345 }, - { url = "https://files.pythonhosted.org/packages/2d/b5/0e3c1edaa26c2bd9db90cba0ac62c85bbca84224c7ae1c2e0072c4ea64c5/cytoolz-1.1.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:44b31c05addb0889167a720123b3b497b28dd86f8a0aeaf3ae4ffa11e2c85d55", size = 989259 }, - { url = "https://files.pythonhosted.org/packages/09/aa/e2b2ee9fc684867e817640764ea5807f9d25aa1e7bdba02dd4b249aab0f7/cytoolz-1.1.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:653cb18c4fc5d8a8cfce2bce650aabcbe82957cd0536827367d10810566d5294", size = 986551 }, - { url = "https://files.pythonhosted.org/packages/39/9f/4e8ee41acf6674f10a9c2c9117b2f219429a5a0f09bba6135f34ca4f08a6/cytoolz-1.1.0-cp311-cp311-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:853a5b4806915020c890e1ce70cc056bbc1dd8bc44f2d74d555cccfd7aefba7d", size = 2688378 }, - { url = "https://files.pythonhosted.org/packages/78/94/ef006f3412bc22444d855a0fc9ecb81424237fb4e5c1a1f8f5fb79ac978f/cytoolz-1.1.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c7b44e9de86bea013fe84fd8c399d6016bbb96c37c5290769e5c99460b9c53e5", size = 2798299 }, - { url = "https://files.pythonhosted.org/packages/df/aa/365953926ee8b4f2e07df7200c0d73632155908c8867af14b2d19cc9f1f7/cytoolz-1.1.0-cp311-cp311-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:098d628a801dc142e9740126be5624eb7aef1d732bc7a5719f60a2095547b485", size = 2639311 }, - { url = "https://files.pythonhosted.org/packages/7c/ee/62beaaee7df208f22590ad07ef8875519af49c52ca39d99460b14a00f15a/cytoolz-1.1.0-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:779ee4096ed7a82cffab89372ffc339631c285079dbf33dbe7aff1f6174985df", size = 2979532 }, - { url = "https://files.pythonhosted.org/packages/c5/04/2211251e450bed111ada1194dc42c461da9aea441de62a01e4085ea6de9f/cytoolz-1.1.0-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:f2ce18dd99533d077e9712f9faa852f389f560351b1efd2f2bdb193a95eddde2", size = 3018632 }, - { url = "https://files.pythonhosted.org/packages/ed/a2/4a3400e4d07d3916172bf74fede08020d7b4df01595d8a97f1e9507af5ae/cytoolz-1.1.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ac266a34437812cf841cecbfe19f355ab9c3dd1ef231afc60415d40ff12a76e4", size = 2788579 }, - { url = "https://files.pythonhosted.org/packages/fe/82/bb88caa53a41f600e7763c517d50e2efbbe6427ea395716a92b83f44882a/cytoolz-1.1.0-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:1920b9b9c13d60d0bb6cd14594b3bce0870022eccb430618c37156da5f2b7a55", size = 2593024 }, - { url = "https://files.pythonhosted.org/packages/09/a8/8b25e59570da16c7a0f173b8c6ec0aa6f3abd47fd385c007485acb459896/cytoolz-1.1.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:47caa376dafd2bdc29f8a250acf59c810ec9105cd6f7680b9a9d070aae8490ec", size = 2715304 }, - { url = "https://files.pythonhosted.org/packages/d4/56/faec7696f235521b926ffdf92c102f5b029f072d28e1020364e55b084820/cytoolz-1.1.0-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:5ab2c97d8aaa522b038cca9187b1153347af22309e7c998b14750c6fdec7b1cb", size = 2654461 }, - { url = "https://files.pythonhosted.org/packages/aa/82/f790ed167c04b8d2a33bed30770a9b7066fc4f573321d797190e5f05685f/cytoolz-1.1.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:4bce006121b120e8b359244ee140bb0b1093908efc8b739db8dbaa3f8fb42139", size = 2672077 }, - { url = "https://files.pythonhosted.org/packages/d9/b3/80b8183e7eee44f45bfa3cdd3ebdadf3dd43ffc686f96d442a6c4dded45d/cytoolz-1.1.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:7fc0f1e4e9bb384d26e73c6657bbc26abdae4ff66a95933c00f3d578be89181b", size = 2881589 }, - { url = "https://files.pythonhosted.org/packages/8f/05/ac5ba5ddb88a3ba7ecea4bf192194a838af564d22ea7a4812cbb6bd106ce/cytoolz-1.1.0-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:dd3f894ff972da1994d06ac6157d74e40dda19eb31fe5e9b7863ca4278c3a167", size = 2589924 }, - { url = "https://files.pythonhosted.org/packages/8e/cd/100483cae3849d24351c8333a815dc6adaf3f04912486e59386d86d9db9a/cytoolz-1.1.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:0846f49cf8a4496bd42659040e68bd0484ce6af819709cae234938e039203ba0", size = 2868059 }, - { url = "https://files.pythonhosted.org/packages/34/6e/3a7c56b325772d39397fc3aafb4dc054273982097178b6c3917c6dad48de/cytoolz-1.1.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:16a3af394ade1973226d64bb2f9eb3336adbdea03ed5b134c1bbec5a3b20028e", size = 2721692 }, - { url = "https://files.pythonhosted.org/packages/fa/ca/9fdaee32c3bc769dfb7e7991d9499136afccea67e423d097b8fb3c5acbc1/cytoolz-1.1.0-cp311-cp311-win32.whl", hash = "sha256:b786c9c8aeab76cc2f76011e986f7321a23a56d985b77d14f155d5e5514ea781", size = 899349 }, - { url = "https://files.pythonhosted.org/packages/fd/04/2ab98edeea90311e4029e1643e43d2027b54da61453292d9ea51a103ee87/cytoolz-1.1.0-cp311-cp311-win_amd64.whl", hash = "sha256:ebf06d1c5344fb22fee71bf664234733e55db72d74988f2ecb7294b05e4db30c", size = 945831 }, - { url = "https://files.pythonhosted.org/packages/b4/8d/777d86ea6bcc68b0fc926b0ef8ab51819e2176b37aadea072aac949d5231/cytoolz-1.1.0-cp311-cp311-win_arm64.whl", hash = "sha256:b63f5f025fac893393b186e132e3e242de8ee7265d0cd3f5bdd4dda93f6616c9", size = 904076 }, - { url = "https://files.pythonhosted.org/packages/c6/ec/01426224f7acf60183d3921b25e1a8e71713d3d39cb464d64ac7aace6ea6/cytoolz-1.1.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:99f8e134c9be11649342853ec8c90837af4089fc8ff1e8f9a024a57d1fa08514", size = 1327800 }, - { url = "https://files.pythonhosted.org/packages/b4/07/e07e8fedd332ac9626ad58bea31416dda19bfd14310731fa38b16a97e15f/cytoolz-1.1.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:0a6f44cf9319c30feb9a50aa513d777ef51efec16f31c404409e7deb8063df64", size = 997118 }, - { url = "https://files.pythonhosted.org/packages/ab/72/c0f766d63ed2f9ea8dc8e1628d385d99b41fb834ce17ac3669e3f91e115d/cytoolz-1.1.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:945580dc158c557172fca899a35a99a16fbcebf6db0c77cb6621084bc82189f9", size = 991169 }, - { url = "https://files.pythonhosted.org/packages/df/4b/1f757353d1bf33e56a7391ecc9bc49c1e529803b93a9d2f67fe5f92906fe/cytoolz-1.1.0-cp312-cp312-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:257905ec050d04f2f856854620d1e25556fd735064cebd81b460f54939b9f9d5", size = 2700680 }, - { url = "https://files.pythonhosted.org/packages/25/73/9b25bb7ed8d419b9d6ff2ae0b3d06694de79a3f98f5169a1293ff7ad3a3f/cytoolz-1.1.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:82779049f352fb3ab5e8c993ab45edbb6e02efb1f17f0b50f4972c706cc51d76", size = 2824951 }, - { url = "https://files.pythonhosted.org/packages/0c/93/9c787f7c909e75670fff467f2504725d06d8c3f51d6dfe22c55a08c8ccd4/cytoolz-1.1.0-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:7d3e405e435320e08c5a1633afaf285a392e2d9cef35c925d91e2a31dfd7a688", size = 2679635 }, - { url = "https://files.pythonhosted.org/packages/50/aa/9ee92c302cccf7a41a7311b325b51ebeff25d36c1f82bdc1bbe3f58dc947/cytoolz-1.1.0-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:923df8f5591e0d20543060c29909c149ab1963a7267037b39eee03a83dbc50a8", size = 2938352 }, - { url = "https://files.pythonhosted.org/packages/6a/a3/3b58c5c1692c3bacd65640d0d5c7267a7ebb76204f7507aec29de7063d2f/cytoolz-1.1.0-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:25db9e4862f22ea0ae2e56c8bec9fc9fd756b655ae13e8c7b5625d7ed1c582d4", size = 3022121 }, - { url = "https://files.pythonhosted.org/packages/e1/93/c647bc3334355088c57351a536c2d4a83dd45f7de591fab383975e45bff9/cytoolz-1.1.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c7a98deb11ccd8e5d9f9441ef2ff3352aab52226a2b7d04756caaa53cd612363", size = 2857656 }, - { url = "https://files.pythonhosted.org/packages/b2/c2/43fea146bf4141deea959e19dcddf268c5ed759dec5c2ed4a6941d711933/cytoolz-1.1.0-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:dce4ee9fc99104bc77efdea80f32ca5a650cd653bcc8a1d984a931153d3d9b58", size = 2551284 }, - { url = "https://files.pythonhosted.org/packages/6f/df/cdc7a81ce5cfcde7ef523143d545635fc37e80ccacce140ae58483a21da3/cytoolz-1.1.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:80d6da158f7d20c15819701bbda1c041f0944ede2f564f5c739b1bc80a9ffb8b", size = 2721673 }, - { url = "https://files.pythonhosted.org/packages/45/be/f8524bb9ad8812ad375e61238dcaa3177628234d1b908ad0b74e3657cafd/cytoolz-1.1.0-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:3b5c5a192abda123ad45ef716ec9082b4cf7d95e9ada8291c5c2cc5558be858b", size = 2722884 }, - { url = "https://files.pythonhosted.org/packages/23/e6/6bb8e4f9c267ad42d1ff77b6d2e4984665505afae50a216290e1d7311431/cytoolz-1.1.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:5b399ce7d967b1cb6280250818b786be652aa8ddffd3c0bb5c48c6220d945ab5", size = 2685486 }, - { url = "https://files.pythonhosted.org/packages/d7/dd/88619f9c8d2b682562c0c886bbb7c35720cb83fda2ac9a41bdd14073d9bd/cytoolz-1.1.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:e7e29a1a03f00b4322196cfe8e2c38da9a6c8d573566052c586df83aacc5663c", size = 2839661 }, - { url = "https://files.pythonhosted.org/packages/b8/8d/4478ebf471ee78dd496d254dc0f4ad729cd8e6ba8257de4f0a98a2838ef2/cytoolz-1.1.0-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:5291b117d71652a817ec164e7011f18e6a51f8a352cc9a70ed5b976c51102fda", size = 2547095 }, - { url = "https://files.pythonhosted.org/packages/e6/68/f1dea33367b0b3f64e199c230a14a6b6f243c189020effafd31e970ca527/cytoolz-1.1.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:8caef62f846a9011676c51bda9189ae394cdd6bb17f2946ecaedc23243268320", size = 2870901 }, - { url = "https://files.pythonhosted.org/packages/4a/9a/33591c09dfe799b8fb692cf2ad383e2c41ab6593cc960b00d1fc8a145655/cytoolz-1.1.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:de425c5a8e3be7bb3a195e19191d28d9eb3c2038046064a92edc4505033ec9cb", size = 2765422 }, - { url = "https://files.pythonhosted.org/packages/60/2b/a8aa233c9416df87f004e57ae4280bd5e1f389b4943d179f01020c6ec629/cytoolz-1.1.0-cp312-cp312-win32.whl", hash = "sha256:296440a870e8d1f2e1d1edf98f60f1532b9d3ab8dfbd4b25ec08cd76311e79e5", size = 901933 }, - { url = "https://files.pythonhosted.org/packages/ad/33/4c9bdf8390dc01d2617c7f11930697157164a52259b6818ddfa2f94f89f4/cytoolz-1.1.0-cp312-cp312-win_amd64.whl", hash = "sha256:07156987f224c6dac59aa18fb8bf91e1412f5463961862716a3381bf429c8699", size = 947989 }, - { url = "https://files.pythonhosted.org/packages/35/ac/6e2708835875f5acb52318462ed296bf94ed0cb8c7cb70e62fbd03f709e3/cytoolz-1.1.0-cp312-cp312-win_arm64.whl", hash = "sha256:23e616b38f5b3160c7bb45b0f84a8f3deb4bd26b29fb2dfc716f241c738e27b8", size = 903913 }, - { url = "https://files.pythonhosted.org/packages/71/4a/b3ddb3ee44fe0045e95dd973746f93f033b6f92cce1fc3cbbe24b329943c/cytoolz-1.1.0-cp313-cp313-ios_13_0_arm64_iphoneos.whl", hash = "sha256:76c9b58555300be6dde87a41faf1f97966d79b9a678b7a526fcff75d28ef4945", size = 976728 }, - { url = "https://files.pythonhosted.org/packages/42/21/a3681434aa425875dd828bb515924b0f12c37a55c7d2bc5c0c5de3aeb0b4/cytoolz-1.1.0-cp313-cp313-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:d1d638b10d3144795655e9395566ce35807df09219fd7cacd9e6acbdef67946a", size = 986057 }, - { url = "https://files.pythonhosted.org/packages/d9/cb/efc1b29e211e0670a6953222afaac84dcbba5cb940b130c0e49858978040/cytoolz-1.1.0-cp313-cp313-ios_13_0_x86_64_iphonesimulator.whl", hash = "sha256:26801c1a165e84786a99e03c9c9973356caaca002d66727b761fb1042878ef06", size = 992632 }, - { url = "https://files.pythonhosted.org/packages/be/b0/e50621d21e939338c97faab651f58ea7fa32101226a91de79ecfb89d71e1/cytoolz-1.1.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:2a9a464542912d3272f6dccc5142df057c71c6a5cbd30439389a732df401afb7", size = 1317534 }, - { url = "https://files.pythonhosted.org/packages/0d/6b/25aa9739b0235a5bc4c1ea293186bc6822a4c6607acfe1422423287e7400/cytoolz-1.1.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:ed6104fa942aa5784bf54f339563de637557e3443b105760bc4de8f16a7fc79b", size = 992336 }, - { url = "https://files.pythonhosted.org/packages/e1/53/5f4deb0ff958805309d135d899c764364c1e8a632ce4994bd7c45fb98df2/cytoolz-1.1.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:56161f0ab60dc4159ec343509abaf809dc88e85c7e420e354442c62e3e7cbb77", size = 986118 }, - { url = "https://files.pythonhosted.org/packages/1c/e3/f6255b76c8cc0debbe1c0779130777dc0434da6d9b28a90d9f76f8cb67cd/cytoolz-1.1.0-cp313-cp313-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:832bd36cc9123535f1945acf6921f8a2a15acc19cfe4065b1c9b985a28671886", size = 2679563 }, - { url = "https://files.pythonhosted.org/packages/59/8a/acc6e39a84e930522b965586ad3a36694f9bf247b23188ee0eb47b1c9ed1/cytoolz-1.1.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1842636b6e034f229bf084c2bcdcfd36c8437e752eefd2c74ce9e2f10415cb6e", size = 2813020 }, - { url = "https://files.pythonhosted.org/packages/db/f5/0083608286ad1716eda7c41f868e85ac549f6fd6b7646993109fa0bdfd98/cytoolz-1.1.0-cp313-cp313-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:823df012ab90d2f2a0f92fea453528539bf71ac1879e518524cd0c86aa6df7b9", size = 2669312 }, - { url = "https://files.pythonhosted.org/packages/47/a8/d16080b575520fe5da00cede1ece4e0a4180ec23f88dcdc6a2f5a90a7f7f/cytoolz-1.1.0-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:2f1fcf9e7e7b3487883ff3f815abc35b89dcc45c4cf81c72b7ee457aa72d197b", size = 2922147 }, - { url = "https://files.pythonhosted.org/packages/7e/bc/716c9c1243701e58cad511eb3937fd550e645293c5ed1907639c5d66f194/cytoolz-1.1.0-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:4cdb3fa1772116827f263f25b0cdd44c663b6701346a56411960534a06c082de", size = 2981602 }, - { url = "https://files.pythonhosted.org/packages/14/bc/571b232996846b27f4ac0c957dc8bf60261e9b4d0d01c8d955e82329544e/cytoolz-1.1.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d1b5c95041741b81430454db65183e133976f45ac3c03454cfa8147952568529", size = 2830103 }, - { url = "https://files.pythonhosted.org/packages/5b/55/c594afb46ecd78e4b7e1fb92c947ed041807875661ceda73baaf61baba4f/cytoolz-1.1.0-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:b2079fd9f1a65f4c61e6278c8a6d4f85edf30c606df8d5b32f1add88cbbe2286", size = 2533802 }, - { url = "https://files.pythonhosted.org/packages/93/83/1edcf95832555a78fc43b975f3ebe8ceadcc9664dd47fd33747a14df5069/cytoolz-1.1.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a92a320d72bef1c7e2d4c6d875125cf57fc38be45feb3fac1bfa64ea401f54a4", size = 2706071 }, - { url = "https://files.pythonhosted.org/packages/e2/df/035a408df87f25cfe3611557818b250126cd2281b2104cd88395de205583/cytoolz-1.1.0-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:06d1c79aa51e6a92a90b0e456ebce2288f03dd6a76c7f582bfaa3eda7692e8a5", size = 2707575 }, - { url = "https://files.pythonhosted.org/packages/7a/a4/ef78e13e16e93bf695a9331321d75fbc834a088d941f1c19e6b63314e257/cytoolz-1.1.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:e1d7be25f6971e986a52b6d3a0da28e1941850985417c35528f6823aef2cfec5", size = 2660486 }, - { url = "https://files.pythonhosted.org/packages/30/7a/2c3d60682b26058d435416c4e90d4a94db854de5be944dfd069ed1be648a/cytoolz-1.1.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:964b248edc31efc50a65e9eaa0c845718503823439d2fa5f8d2c7e974c2b5409", size = 2819605 }, - { url = "https://files.pythonhosted.org/packages/45/92/19b722a1d83cc443fbc0c16e0dc376f8a451437890d3d9ee370358cf0709/cytoolz-1.1.0-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:c9ff2b3c57c79b65cb5be14a18c6fd4a06d5036fb3f33e973a9f70e9ac13ca28", size = 2533559 }, - { url = "https://files.pythonhosted.org/packages/1d/15/fa3b7891da51115204416f14192081d3dea0eaee091f123fdc1347de8dd1/cytoolz-1.1.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:22290b73086af600042d99f5ce52a43d4ad9872c382610413176e19fc1d4fd2d", size = 2839171 }, - { url = "https://files.pythonhosted.org/packages/46/40/d3519d5cd86eebebf1e8b7174ec32dfb6ecec67b48b0cfb92bf226659b5a/cytoolz-1.1.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:a2ade74fccd080ea793382968913ee38d7a35c921df435bbf0a6aeecf0d17574", size = 2743379 }, - { url = "https://files.pythonhosted.org/packages/93/e2/a9e7511f0a13fdbefa5bf73cf8e4763878140de9453fd3e50d6ac57b6be7/cytoolz-1.1.0-cp313-cp313-win32.whl", hash = "sha256:db5dbcfda1c00e937426cbf9bdc63c24ebbc358c3263bfcbc1ab4a88dc52aa8e", size = 900844 }, - { url = "https://files.pythonhosted.org/packages/d6/a4/fb7eb403c6a4c81e5a30363f34a71adcc8bf5292dc8ea32e2440aa5668f2/cytoolz-1.1.0-cp313-cp313-win_amd64.whl", hash = "sha256:9e2d3fe3b45c3eb7233746f7aca37789be3dceec3e07dcc406d3e045ea0f7bdc", size = 946461 }, - { url = "https://files.pythonhosted.org/packages/93/bb/1c8c33d353548d240bc6e8677ee8c3560ce5fa2f084e928facf7c35a6dcf/cytoolz-1.1.0-cp313-cp313-win_arm64.whl", hash = "sha256:32c559f95ff44a9ebcbd934acaa1e6dc8f3e6ffce4762a79a88528064873d6d5", size = 902673 }, - { url = "https://files.pythonhosted.org/packages/c4/ba/4a53acc60f59030fcaf48c7766e3c4c81bd997379425aa45b129396557b5/cytoolz-1.1.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:9e2cd93b28f667c5870a070ab2b8bb4397470a85c4b204f2454b0ad001cd1ca3", size = 1372336 }, - { url = "https://files.pythonhosted.org/packages/ac/90/f28fd8ad8319d8f5c8da69a2c29b8cf52a6d2c0161602d92b366d58926ab/cytoolz-1.1.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:f494124e141a9361f31d79875fe7ea459a3be2b9dadd90480427c0c52a0943d4", size = 1011930 }, - { url = "https://files.pythonhosted.org/packages/c9/95/4561c4e0ad1c944f7673d6d916405d68080f10552cfc5d69a1cf2475a9a1/cytoolz-1.1.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:53a3262bf221f19437ed544bf8c0e1980c81ac8e2a53d87a9bc075dba943d36f", size = 1020610 }, - { url = "https://files.pythonhosted.org/packages/c3/14/b2e1ffa4995ec36e1372e243411ff36325e4e6d7ffa34eb4098f5357d176/cytoolz-1.1.0-cp313-cp313t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:47663e57d3f3f124921f38055e86a1022d0844c444ede2e8f090d3bbf80deb65", size = 2917327 }, - { url = "https://files.pythonhosted.org/packages/4a/29/7cab6c609b4514ac84cca2f7dca6c509977a8fc16d27c3a50e97f105fa6a/cytoolz-1.1.0-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a5a8755c4104ee4e3d5ba434c543b5f85fdee6a1f1df33d93f518294da793a60", size = 3108951 }, - { url = "https://files.pythonhosted.org/packages/9a/71/1d1103b819458679277206ad07d78ca6b31c4bb88d6463fd193e19bfb270/cytoolz-1.1.0-cp313-cp313t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:4d96ff3d381423af1b105295f97de86d1db51732c9566eb37378bab6670c5010", size = 2807149 }, - { url = "https://files.pythonhosted.org/packages/1a/d4/3d83a05a21e7d2ed2b9e6daf489999c29934b005de9190272b8a2e3735d0/cytoolz-1.1.0-cp313-cp313t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:0ec96b3d537cdf47d4e76ded199f7440715f4c71029b45445cff92c1248808c2", size = 3111608 }, - { url = "https://files.pythonhosted.org/packages/51/88/96f68354c3d4af68de41f0db4fe41a23b96a50a4a416636cea325490cfeb/cytoolz-1.1.0-cp313-cp313t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:208e2f2ef90a32b0acbff3303d90d89b13570a228d491d2e622a7883a3c68148", size = 3179373 }, - { url = "https://files.pythonhosted.org/packages/ce/50/ed87a5cd8e6f27ffbb64c39e9730e18ec66c37631db2888ae711909f10c9/cytoolz-1.1.0-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0d416a81bb0bd517558668e49d30a7475b5445f9bbafaab7dcf066f1e9adba36", size = 3003120 }, - { url = "https://files.pythonhosted.org/packages/d3/a7/acde155b050d6eaa8e9c7845c98fc5fb28501568e78e83ebbf44f8855274/cytoolz-1.1.0-cp313-cp313t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:f32e94c91ffe49af04835ee713ebd8e005c85ebe83e7e1fdcc00f27164c2d636", size = 2703225 }, - { url = "https://files.pythonhosted.org/packages/1b/b6/9d518597c5bdea626b61101e8d2ff94124787a42259dafd9f5fc396f346a/cytoolz-1.1.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:15d0c6405efc040499c46df44056a5c382f551a7624a41cf3e4c84a96b988a15", size = 2956033 }, - { url = "https://files.pythonhosted.org/packages/89/7a/93e5f860926165538c85e1c5e1670ad3424f158df810f8ccd269da652138/cytoolz-1.1.0-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:bf069c5381d757debae891401b88b3a346ba3a28ca45ba9251103b282463fad8", size = 2862950 }, - { url = "https://files.pythonhosted.org/packages/76/e6/99d6af00487bedc27597b54c9fcbfd5c833a69c6b7a9b9f0fff777bfc7aa/cytoolz-1.1.0-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:7d5cf15892e63411ec1bd67deff0e84317d974e6ab2cdfefdd4a7cea2989df66", size = 2861757 }, - { url = "https://files.pythonhosted.org/packages/71/ca/adfa1fb7949478135a37755cb8e88c20cd6b75c22a05f1128f05f3ab2c60/cytoolz-1.1.0-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:3e3872c21170f8341656f8692f8939e8800dcee6549ad2474d4c817bdefd62cd", size = 2979049 }, - { url = "https://files.pythonhosted.org/packages/70/4c/7bf47a03a4497d500bc73d4204e2d907771a017fa4457741b2a1d7c09319/cytoolz-1.1.0-cp313-cp313t-musllinux_1_2_riscv64.whl", hash = "sha256:b9ddeff8e8fd65eb1fcefa61018100b2b627e759ea6ad275d2e2a93ffac147bf", size = 2699492 }, - { url = "https://files.pythonhosted.org/packages/7e/e7/3d034b0e4817314f07aa465d5864e9b8df9d25cb260a53dd84583e491558/cytoolz-1.1.0-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:02feeeda93e1fa3b33414eb57c2b0aefd1db8f558dd33fdfcce664a0f86056e4", size = 2995646 }, - { url = "https://files.pythonhosted.org/packages/c1/62/be357181c71648d9fe1d1ce91cd42c63457dcf3c158e144416fd51dced83/cytoolz-1.1.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:d08154ad45349162b6c37f12d5d1b2e6eef338e657b85e1621e4e6a4a69d64cb", size = 2919481 }, - { url = "https://files.pythonhosted.org/packages/62/d5/bf5434fde726c4f80cb99912b2d8e0afa1587557e2a2d7e0315eb942f2de/cytoolz-1.1.0-cp313-cp313t-win32.whl", hash = "sha256:10ae4718a056948d73ca3e1bb9ab1f95f897ec1e362f829b9d37cc29ab566c60", size = 951595 }, - { url = "https://files.pythonhosted.org/packages/64/29/39c161e9204a9715321ddea698cbd0abc317e78522c7c642363c20589e71/cytoolz-1.1.0-cp313-cp313t-win_amd64.whl", hash = "sha256:1bb77bc6197e5cb19784b6a42bb0f8427e81737a630d9d7dda62ed31733f9e6c", size = 1004445 }, - { url = "https://files.pythonhosted.org/packages/e2/5a/7cbff5e9a689f558cb0bdf277f9562b2ac51acf7cd15e055b8c3efb0e1ef/cytoolz-1.1.0-cp313-cp313t-win_arm64.whl", hash = "sha256:563dda652c6ff52d215704fbe6b491879b78d7bbbb3a9524ec8e763483cb459f", size = 926207 }, - { url = "https://files.pythonhosted.org/packages/84/32/0522207170294cf691112a93c70a8ef942f60fa9ff8e793b63b1f09cedc0/cytoolz-1.1.0-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:f32e93a55681d782fc6af939f6df36509d65122423cbc930be39b141064adff8", size = 922014 }, - { url = "https://files.pythonhosted.org/packages/4c/49/9be2d24adaa18fa307ff14e3e43f02b2ae4b69c4ce51cee6889eb2114990/cytoolz-1.1.0-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:5d9bc596751cbda8073e65be02ca11706f00029768fbbbc81e11a8c290bb41aa", size = 918134 }, - { url = "https://files.pythonhosted.org/packages/5c/b3/6a76c3b94c6c87c72ea822e7e67405be6b649c2e37778eeac7c0c0c69de8/cytoolz-1.1.0-pp311-pypy311_pp73-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:9b16660d01c3931951fab49db422c627897c38c1a1f0393a97582004019a4887", size = 981970 }, - { url = "https://files.pythonhosted.org/packages/f6/8a/606e4c7ed14aa6a86aee6ca84a2cb804754dc6c4905b8f94e09e49f1ce60/cytoolz-1.1.0-pp311-pypy311_pp73-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:b7de5718e2113d4efccea3f06055758cdbc17388ecc3341ba4d1d812837d7c1a", size = 978877 }, - { url = "https://files.pythonhosted.org/packages/97/ec/ad474dcb1f6c1ebfdda3c2ad2edbb1af122a0e79c9ff2cb901ffb5f59662/cytoolz-1.1.0-pp311-pypy311_pp73-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a12a2a1a6bc44099491c05a12039efa08cc33a3d0f8c7b0566185e085e139283", size = 964279 }, - { url = "https://files.pythonhosted.org/packages/68/8c/d245fd416c69d27d51f14d5ad62acc4ee5971088ee31c40ffe1cc109af68/cytoolz-1.1.0-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:047defa7f5f9a32f82373dbc3957289562e8a3fa58ae02ec8e4dca4f43a33a21", size = 916630 }, + { url = "https://files.pythonhosted.org/packages/a7/7a/3244e6e3587be9abfee3b1c320e43a279831b3c3a31fe5d08c1ee6193e6b/cytoolz-1.1.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:72d7043a88ea5e61ba9d17ea0d1c1eff10f645d7edfcc4e56a31ef78be287644", size = 1307813, upload-time = "2025-10-19T00:39:34.198Z" }, + { url = "https://files.pythonhosted.org/packages/32/7e/eaf504ca59addce323ef4d4ffedc2913d83c121ec19f6419bc402f7702dc/cytoolz-1.1.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d759e9ed421bacfeb456d47af8d734c057b9912b5f2441f95b27ca35e5efab07", size = 985777, upload-time = "2025-10-19T00:39:36.545Z" }, + { url = "https://files.pythonhosted.org/packages/d4/a1/ec95443f0cf4cd0dbc574fa26ac85a0442d35f3b601a90a0e3dda077f614/cytoolz-1.1.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:fdb5be8fbcc0396141189022724155a4c1c93712ac4aef8c03829af0c2a816d7", size = 982865, upload-time = "2025-10-19T00:39:38.19Z" }, + { url = "https://files.pythonhosted.org/packages/a7/1b/8503604b0c0534977363fb77d371019395dfa031a216f9b1d8729d1280e4/cytoolz-1.1.0-cp310-cp310-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:c8c0a513dc89bc05cc72893609118815bced5ef201f1a317b4cc3423b3a0e750", size = 2597969, upload-time = "2025-10-19T00:39:40.26Z" }, + { url = "https://files.pythonhosted.org/packages/4e/e5/30748da06417cb2d4bc58e380b0c11d8c6539f4e289dc1e4f4b4fc248d0e/cytoolz-1.1.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ce94db4f8ebe842c30c0ece42ff5de977c47859088c2c363dede5a68f6906484", size = 2692230, upload-time = "2025-10-19T00:39:42.327Z" }, + { url = "https://files.pythonhosted.org/packages/d6/84/e06580b74deb97dfd3513e4e6b660c2dedc220c7653f5bd3e4f772f4d885/cytoolz-1.1.0-cp310-cp310-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:b622d4f54e370c853ded94a668f94fe72c6d70e06ac102f17a2746661c27ab52", size = 2565243, upload-time = "2025-10-19T00:39:44.403Z" }, + { url = "https://files.pythonhosted.org/packages/91/5e/79c0122a34c33afcb5aaee1fec35be24fe16cecefb9bb8890f2908feae56/cytoolz-1.1.0-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:375a65baa5a5b4ff6a0c5ff17e170cf23312e4c710755771ca966144c24216b5", size = 2868602, upload-time = "2025-10-19T00:39:46.051Z" }, + { url = "https://files.pythonhosted.org/packages/3f/84/404698ff02b32292db1e39cc4a2fbdabe15164b092cc364902984c3ce0f4/cytoolz-1.1.0-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:c0d51bcdb3203a062a78f66bbe33db5e3123048e24a5f0e1402422d79df8ee2d", size = 2905121, upload-time = "2025-10-19T00:39:48.078Z" }, + { url = "https://files.pythonhosted.org/packages/9f/33/afad6593829ba73fc87b5ae64441e380fc937f79f24a1cda60d23cb99b8c/cytoolz-1.1.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1010869529bb05dc9802b6d776a34ca1b6d48b9deec70ad5e2918ae175be5c2f", size = 2684382, upload-time = "2025-10-19T00:39:49.766Z" }, + { url = "https://files.pythonhosted.org/packages/ce/86/7900013a82ca9c6cadbfb22bf50d0fbfc3b192915d2bdd9fab3f69a9afba/cytoolz-1.1.0-cp310-cp310-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:11a8f2e83295bdb33f35454d6bafcb7845b03b5881dcaed66ecbd726c7f16772", size = 2518183, upload-time = "2025-10-19T00:39:51.433Z" }, + { url = "https://files.pythonhosted.org/packages/c3/4b/acf9be2953fed6a6d795fb66de37c367915037a998a5b3d3b69476cf91fe/cytoolz-1.1.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:0499c5e0a8e688ed367a2e51cc13792ae8f08226c15f7d168589fc44b9b9cada", size = 2609368, upload-time = "2025-10-19T00:39:53.458Z" }, + { url = "https://files.pythonhosted.org/packages/fd/ec/3e30455fd526f5cc37bd3dd2a0e2aafb803ae4d271e50ce53bfc30810053/cytoolz-1.1.0-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:87d44e6033d4c5e95a7d39ba59b8e105ba1c29b1ccd1d215f26477cc1d64be39", size = 2561458, upload-time = "2025-10-19T00:39:55.493Z" }, + { url = "https://files.pythonhosted.org/packages/49/27/e5815c85bb18cdf95780f9596dcfd76dee910a4d635a1924648cb8a636c6/cytoolz-1.1.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:a68cef396a7de237f7b97422a6a450dfb111722296ba217ba5b34551832f1f6e", size = 2578236, upload-time = "2025-10-19T00:39:57.512Z" }, + { url = "https://files.pythonhosted.org/packages/17/db/588e266eff397670398ea335a809152e77b02ee92e0ec42091115b42f09b/cytoolz-1.1.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:06ad4c95b258141f138a93ebfdc1d76ac087afc1a82f1401100a1f44b44ba656", size = 2770523, upload-time = "2025-10-19T00:39:59.194Z" }, + { url = "https://files.pythonhosted.org/packages/ab/ad/82be0b999c7a0a0b362cedfc183eb090b872fd42937af2d6e97d58bc70f8/cytoolz-1.1.0-cp310-cp310-musllinux_1_2_riscv64.whl", hash = "sha256:ada59a4b3c59d4ac7162e0ed08667ffa78abf48e975c8a9f9d5b9bc50720f4fd", size = 2512909, upload-time = "2025-10-19T00:40:01.199Z" }, + { url = "https://files.pythonhosted.org/packages/25/21/45f07ab0339a20c518bc9006100922babc397ab7ea5ef40a395db83b9cdd/cytoolz-1.1.0-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:a8957bcaea1ba01327a9b219d2adb84144377684f51444253890dab500ca171f", size = 2755345, upload-time = "2025-10-19T00:40:03.322Z" }, + { url = "https://files.pythonhosted.org/packages/8b/a7/e530bf2b304206f79b36d793caba1ff9448348713a41bb1ad0197714a0f2/cytoolz-1.1.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:6d8cdc299d67eb0f3b9ecdafeeb55eb3b7b7470e2d950ac34b05ed4c7a5572b8", size = 2617790, upload-time = "2025-10-19T00:40:05.03Z" }, + { url = "https://files.pythonhosted.org/packages/9f/77/7f53092121d7431589344c7d65c3d43c4111547aafabb21d3ca9032d126c/cytoolz-1.1.0-cp310-cp310-win32.whl", hash = "sha256:d8e08464c5cdea4f6df31e84b11ed6bfd79cedb99fbcbfdc15eb9361a6053c5a", size = 900209, upload-time = "2025-10-19T00:40:06.647Z" }, + { url = "https://files.pythonhosted.org/packages/84/e4/902578658303b9bc76b1704d3ed85e6d307d311bd9fa0b919581bea56e62/cytoolz-1.1.0-cp310-cp310-win_amd64.whl", hash = "sha256:7e49922a7ed54262d41960bf3b835a7700327bf79cff1e9bfc73d79021132ff8", size = 944802, upload-time = "2025-10-19T00:40:08.983Z" }, + { url = "https://files.pythonhosted.org/packages/71/9f/56a7003617b4eabd8ddfb470aacc240425cbe6ddeb756adfbbaadaa175f1/cytoolz-1.1.0-cp310-cp310-win_arm64.whl", hash = "sha256:943a662d2e72ffc4438d43ab5a1de8d852237775a423236594a3b3e381b8032c", size = 904835, upload-time = "2025-10-19T00:40:11.024Z" }, + { url = "https://files.pythonhosted.org/packages/69/82/edf1d0c32b6222f2c22e5618d6db855d44eb59f9b6f22436ff963c5d0a5c/cytoolz-1.1.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:dba8e5a8c6e3c789d27b0eb5e7ce5ed7d032a7a9aae17ca4ba5147b871f6e327", size = 1314345, upload-time = "2025-10-19T00:40:13.273Z" }, + { url = "https://files.pythonhosted.org/packages/2d/b5/0e3c1edaa26c2bd9db90cba0ac62c85bbca84224c7ae1c2e0072c4ea64c5/cytoolz-1.1.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:44b31c05addb0889167a720123b3b497b28dd86f8a0aeaf3ae4ffa11e2c85d55", size = 989259, upload-time = "2025-10-19T00:40:15.196Z" }, + { url = "https://files.pythonhosted.org/packages/09/aa/e2b2ee9fc684867e817640764ea5807f9d25aa1e7bdba02dd4b249aab0f7/cytoolz-1.1.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:653cb18c4fc5d8a8cfce2bce650aabcbe82957cd0536827367d10810566d5294", size = 986551, upload-time = "2025-10-19T00:40:16.831Z" }, + { url = "https://files.pythonhosted.org/packages/39/9f/4e8ee41acf6674f10a9c2c9117b2f219429a5a0f09bba6135f34ca4f08a6/cytoolz-1.1.0-cp311-cp311-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:853a5b4806915020c890e1ce70cc056bbc1dd8bc44f2d74d555cccfd7aefba7d", size = 2688378, upload-time = "2025-10-19T00:40:18.552Z" }, + { url = "https://files.pythonhosted.org/packages/78/94/ef006f3412bc22444d855a0fc9ecb81424237fb4e5c1a1f8f5fb79ac978f/cytoolz-1.1.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c7b44e9de86bea013fe84fd8c399d6016bbb96c37c5290769e5c99460b9c53e5", size = 2798299, upload-time = "2025-10-19T00:40:20.191Z" }, + { url = "https://files.pythonhosted.org/packages/df/aa/365953926ee8b4f2e07df7200c0d73632155908c8867af14b2d19cc9f1f7/cytoolz-1.1.0-cp311-cp311-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:098d628a801dc142e9740126be5624eb7aef1d732bc7a5719f60a2095547b485", size = 2639311, upload-time = "2025-10-19T00:40:22.289Z" }, + { url = "https://files.pythonhosted.org/packages/7c/ee/62beaaee7df208f22590ad07ef8875519af49c52ca39d99460b14a00f15a/cytoolz-1.1.0-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:779ee4096ed7a82cffab89372ffc339631c285079dbf33dbe7aff1f6174985df", size = 2979532, upload-time = "2025-10-19T00:40:24.006Z" }, + { url = "https://files.pythonhosted.org/packages/c5/04/2211251e450bed111ada1194dc42c461da9aea441de62a01e4085ea6de9f/cytoolz-1.1.0-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:f2ce18dd99533d077e9712f9faa852f389f560351b1efd2f2bdb193a95eddde2", size = 3018632, upload-time = "2025-10-19T00:40:26.175Z" }, + { url = "https://files.pythonhosted.org/packages/ed/a2/4a3400e4d07d3916172bf74fede08020d7b4df01595d8a97f1e9507af5ae/cytoolz-1.1.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ac266a34437812cf841cecbfe19f355ab9c3dd1ef231afc60415d40ff12a76e4", size = 2788579, upload-time = "2025-10-19T00:40:27.878Z" }, + { url = "https://files.pythonhosted.org/packages/fe/82/bb88caa53a41f600e7763c517d50e2efbbe6427ea395716a92b83f44882a/cytoolz-1.1.0-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:1920b9b9c13d60d0bb6cd14594b3bce0870022eccb430618c37156da5f2b7a55", size = 2593024, upload-time = "2025-10-19T00:40:29.601Z" }, + { url = "https://files.pythonhosted.org/packages/09/a8/8b25e59570da16c7a0f173b8c6ec0aa6f3abd47fd385c007485acb459896/cytoolz-1.1.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:47caa376dafd2bdc29f8a250acf59c810ec9105cd6f7680b9a9d070aae8490ec", size = 2715304, upload-time = "2025-10-19T00:40:31.151Z" }, + { url = "https://files.pythonhosted.org/packages/d4/56/faec7696f235521b926ffdf92c102f5b029f072d28e1020364e55b084820/cytoolz-1.1.0-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:5ab2c97d8aaa522b038cca9187b1153347af22309e7c998b14750c6fdec7b1cb", size = 2654461, upload-time = "2025-10-19T00:40:32.884Z" }, + { url = "https://files.pythonhosted.org/packages/aa/82/f790ed167c04b8d2a33bed30770a9b7066fc4f573321d797190e5f05685f/cytoolz-1.1.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:4bce006121b120e8b359244ee140bb0b1093908efc8b739db8dbaa3f8fb42139", size = 2672077, upload-time = "2025-10-19T00:40:34.543Z" }, + { url = "https://files.pythonhosted.org/packages/d9/b3/80b8183e7eee44f45bfa3cdd3ebdadf3dd43ffc686f96d442a6c4dded45d/cytoolz-1.1.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:7fc0f1e4e9bb384d26e73c6657bbc26abdae4ff66a95933c00f3d578be89181b", size = 2881589, upload-time = "2025-10-19T00:40:36.315Z" }, + { url = "https://files.pythonhosted.org/packages/8f/05/ac5ba5ddb88a3ba7ecea4bf192194a838af564d22ea7a4812cbb6bd106ce/cytoolz-1.1.0-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:dd3f894ff972da1994d06ac6157d74e40dda19eb31fe5e9b7863ca4278c3a167", size = 2589924, upload-time = "2025-10-19T00:40:38.317Z" }, + { url = "https://files.pythonhosted.org/packages/8e/cd/100483cae3849d24351c8333a815dc6adaf3f04912486e59386d86d9db9a/cytoolz-1.1.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:0846f49cf8a4496bd42659040e68bd0484ce6af819709cae234938e039203ba0", size = 2868059, upload-time = "2025-10-19T00:40:40.025Z" }, + { url = "https://files.pythonhosted.org/packages/34/6e/3a7c56b325772d39397fc3aafb4dc054273982097178b6c3917c6dad48de/cytoolz-1.1.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:16a3af394ade1973226d64bb2f9eb3336adbdea03ed5b134c1bbec5a3b20028e", size = 2721692, upload-time = "2025-10-19T00:40:41.621Z" }, + { url = "https://files.pythonhosted.org/packages/fa/ca/9fdaee32c3bc769dfb7e7991d9499136afccea67e423d097b8fb3c5acbc1/cytoolz-1.1.0-cp311-cp311-win32.whl", hash = "sha256:b786c9c8aeab76cc2f76011e986f7321a23a56d985b77d14f155d5e5514ea781", size = 899349, upload-time = "2025-10-19T00:40:43.183Z" }, + { url = "https://files.pythonhosted.org/packages/fd/04/2ab98edeea90311e4029e1643e43d2027b54da61453292d9ea51a103ee87/cytoolz-1.1.0-cp311-cp311-win_amd64.whl", hash = "sha256:ebf06d1c5344fb22fee71bf664234733e55db72d74988f2ecb7294b05e4db30c", size = 945831, upload-time = "2025-10-19T00:40:44.693Z" }, + { url = "https://files.pythonhosted.org/packages/b4/8d/777d86ea6bcc68b0fc926b0ef8ab51819e2176b37aadea072aac949d5231/cytoolz-1.1.0-cp311-cp311-win_arm64.whl", hash = "sha256:b63f5f025fac893393b186e132e3e242de8ee7265d0cd3f5bdd4dda93f6616c9", size = 904076, upload-time = "2025-10-19T00:40:46.678Z" }, + { url = "https://files.pythonhosted.org/packages/c6/ec/01426224f7acf60183d3921b25e1a8e71713d3d39cb464d64ac7aace6ea6/cytoolz-1.1.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:99f8e134c9be11649342853ec8c90837af4089fc8ff1e8f9a024a57d1fa08514", size = 1327800, upload-time = "2025-10-19T00:40:48.674Z" }, + { url = "https://files.pythonhosted.org/packages/b4/07/e07e8fedd332ac9626ad58bea31416dda19bfd14310731fa38b16a97e15f/cytoolz-1.1.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:0a6f44cf9319c30feb9a50aa513d777ef51efec16f31c404409e7deb8063df64", size = 997118, upload-time = "2025-10-19T00:40:50.919Z" }, + { url = "https://files.pythonhosted.org/packages/ab/72/c0f766d63ed2f9ea8dc8e1628d385d99b41fb834ce17ac3669e3f91e115d/cytoolz-1.1.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:945580dc158c557172fca899a35a99a16fbcebf6db0c77cb6621084bc82189f9", size = 991169, upload-time = "2025-10-19T00:40:52.887Z" }, + { url = "https://files.pythonhosted.org/packages/df/4b/1f757353d1bf33e56a7391ecc9bc49c1e529803b93a9d2f67fe5f92906fe/cytoolz-1.1.0-cp312-cp312-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:257905ec050d04f2f856854620d1e25556fd735064cebd81b460f54939b9f9d5", size = 2700680, upload-time = "2025-10-19T00:40:54.597Z" }, + { url = "https://files.pythonhosted.org/packages/25/73/9b25bb7ed8d419b9d6ff2ae0b3d06694de79a3f98f5169a1293ff7ad3a3f/cytoolz-1.1.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:82779049f352fb3ab5e8c993ab45edbb6e02efb1f17f0b50f4972c706cc51d76", size = 2824951, upload-time = "2025-10-19T00:40:56.137Z" }, + { url = "https://files.pythonhosted.org/packages/0c/93/9c787f7c909e75670fff467f2504725d06d8c3f51d6dfe22c55a08c8ccd4/cytoolz-1.1.0-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:7d3e405e435320e08c5a1633afaf285a392e2d9cef35c925d91e2a31dfd7a688", size = 2679635, upload-time = "2025-10-19T00:40:57.799Z" }, + { url = "https://files.pythonhosted.org/packages/50/aa/9ee92c302cccf7a41a7311b325b51ebeff25d36c1f82bdc1bbe3f58dc947/cytoolz-1.1.0-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:923df8f5591e0d20543060c29909c149ab1963a7267037b39eee03a83dbc50a8", size = 2938352, upload-time = "2025-10-19T00:40:59.49Z" }, + { url = "https://files.pythonhosted.org/packages/6a/a3/3b58c5c1692c3bacd65640d0d5c7267a7ebb76204f7507aec29de7063d2f/cytoolz-1.1.0-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:25db9e4862f22ea0ae2e56c8bec9fc9fd756b655ae13e8c7b5625d7ed1c582d4", size = 3022121, upload-time = "2025-10-19T00:41:01.209Z" }, + { url = "https://files.pythonhosted.org/packages/e1/93/c647bc3334355088c57351a536c2d4a83dd45f7de591fab383975e45bff9/cytoolz-1.1.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c7a98deb11ccd8e5d9f9441ef2ff3352aab52226a2b7d04756caaa53cd612363", size = 2857656, upload-time = "2025-10-19T00:41:03.456Z" }, + { url = "https://files.pythonhosted.org/packages/b2/c2/43fea146bf4141deea959e19dcddf268c5ed759dec5c2ed4a6941d711933/cytoolz-1.1.0-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:dce4ee9fc99104bc77efdea80f32ca5a650cd653bcc8a1d984a931153d3d9b58", size = 2551284, upload-time = "2025-10-19T00:41:05.347Z" }, + { url = "https://files.pythonhosted.org/packages/6f/df/cdc7a81ce5cfcde7ef523143d545635fc37e80ccacce140ae58483a21da3/cytoolz-1.1.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:80d6da158f7d20c15819701bbda1c041f0944ede2f564f5c739b1bc80a9ffb8b", size = 2721673, upload-time = "2025-10-19T00:41:07.528Z" }, + { url = "https://files.pythonhosted.org/packages/45/be/f8524bb9ad8812ad375e61238dcaa3177628234d1b908ad0b74e3657cafd/cytoolz-1.1.0-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:3b5c5a192abda123ad45ef716ec9082b4cf7d95e9ada8291c5c2cc5558be858b", size = 2722884, upload-time = "2025-10-19T00:41:09.698Z" }, + { url = "https://files.pythonhosted.org/packages/23/e6/6bb8e4f9c267ad42d1ff77b6d2e4984665505afae50a216290e1d7311431/cytoolz-1.1.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:5b399ce7d967b1cb6280250818b786be652aa8ddffd3c0bb5c48c6220d945ab5", size = 2685486, upload-time = "2025-10-19T00:41:11.349Z" }, + { url = "https://files.pythonhosted.org/packages/d7/dd/88619f9c8d2b682562c0c886bbb7c35720cb83fda2ac9a41bdd14073d9bd/cytoolz-1.1.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:e7e29a1a03f00b4322196cfe8e2c38da9a6c8d573566052c586df83aacc5663c", size = 2839661, upload-time = "2025-10-19T00:41:13.053Z" }, + { url = "https://files.pythonhosted.org/packages/b8/8d/4478ebf471ee78dd496d254dc0f4ad729cd8e6ba8257de4f0a98a2838ef2/cytoolz-1.1.0-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:5291b117d71652a817ec164e7011f18e6a51f8a352cc9a70ed5b976c51102fda", size = 2547095, upload-time = "2025-10-19T00:41:16.054Z" }, + { url = "https://files.pythonhosted.org/packages/e6/68/f1dea33367b0b3f64e199c230a14a6b6f243c189020effafd31e970ca527/cytoolz-1.1.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:8caef62f846a9011676c51bda9189ae394cdd6bb17f2946ecaedc23243268320", size = 2870901, upload-time = "2025-10-19T00:41:17.727Z" }, + { url = "https://files.pythonhosted.org/packages/4a/9a/33591c09dfe799b8fb692cf2ad383e2c41ab6593cc960b00d1fc8a145655/cytoolz-1.1.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:de425c5a8e3be7bb3a195e19191d28d9eb3c2038046064a92edc4505033ec9cb", size = 2765422, upload-time = "2025-10-19T00:41:20.075Z" }, + { url = "https://files.pythonhosted.org/packages/60/2b/a8aa233c9416df87f004e57ae4280bd5e1f389b4943d179f01020c6ec629/cytoolz-1.1.0-cp312-cp312-win32.whl", hash = "sha256:296440a870e8d1f2e1d1edf98f60f1532b9d3ab8dfbd4b25ec08cd76311e79e5", size = 901933, upload-time = "2025-10-19T00:41:21.646Z" }, + { url = "https://files.pythonhosted.org/packages/ad/33/4c9bdf8390dc01d2617c7f11930697157164a52259b6818ddfa2f94f89f4/cytoolz-1.1.0-cp312-cp312-win_amd64.whl", hash = "sha256:07156987f224c6dac59aa18fb8bf91e1412f5463961862716a3381bf429c8699", size = 947989, upload-time = "2025-10-19T00:41:23.288Z" }, + { url = "https://files.pythonhosted.org/packages/35/ac/6e2708835875f5acb52318462ed296bf94ed0cb8c7cb70e62fbd03f709e3/cytoolz-1.1.0-cp312-cp312-win_arm64.whl", hash = "sha256:23e616b38f5b3160c7bb45b0f84a8f3deb4bd26b29fb2dfc716f241c738e27b8", size = 903913, upload-time = "2025-10-19T00:41:24.992Z" }, + { url = "https://files.pythonhosted.org/packages/71/4a/b3ddb3ee44fe0045e95dd973746f93f033b6f92cce1fc3cbbe24b329943c/cytoolz-1.1.0-cp313-cp313-ios_13_0_arm64_iphoneos.whl", hash = "sha256:76c9b58555300be6dde87a41faf1f97966d79b9a678b7a526fcff75d28ef4945", size = 976728, upload-time = "2025-10-19T00:41:26.5Z" }, + { url = "https://files.pythonhosted.org/packages/42/21/a3681434aa425875dd828bb515924b0f12c37a55c7d2bc5c0c5de3aeb0b4/cytoolz-1.1.0-cp313-cp313-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:d1d638b10d3144795655e9395566ce35807df09219fd7cacd9e6acbdef67946a", size = 986057, upload-time = "2025-10-19T00:41:28.911Z" }, + { url = "https://files.pythonhosted.org/packages/d9/cb/efc1b29e211e0670a6953222afaac84dcbba5cb940b130c0e49858978040/cytoolz-1.1.0-cp313-cp313-ios_13_0_x86_64_iphonesimulator.whl", hash = "sha256:26801c1a165e84786a99e03c9c9973356caaca002d66727b761fb1042878ef06", size = 992632, upload-time = "2025-10-19T00:41:30.612Z" }, + { url = "https://files.pythonhosted.org/packages/be/b0/e50621d21e939338c97faab651f58ea7fa32101226a91de79ecfb89d71e1/cytoolz-1.1.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:2a9a464542912d3272f6dccc5142df057c71c6a5cbd30439389a732df401afb7", size = 1317534, upload-time = "2025-10-19T00:41:32.625Z" }, + { url = "https://files.pythonhosted.org/packages/0d/6b/25aa9739b0235a5bc4c1ea293186bc6822a4c6607acfe1422423287e7400/cytoolz-1.1.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:ed6104fa942aa5784bf54f339563de637557e3443b105760bc4de8f16a7fc79b", size = 992336, upload-time = "2025-10-19T00:41:34.073Z" }, + { url = "https://files.pythonhosted.org/packages/e1/53/5f4deb0ff958805309d135d899c764364c1e8a632ce4994bd7c45fb98df2/cytoolz-1.1.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:56161f0ab60dc4159ec343509abaf809dc88e85c7e420e354442c62e3e7cbb77", size = 986118, upload-time = "2025-10-19T00:41:35.7Z" }, + { url = "https://files.pythonhosted.org/packages/1c/e3/f6255b76c8cc0debbe1c0779130777dc0434da6d9b28a90d9f76f8cb67cd/cytoolz-1.1.0-cp313-cp313-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:832bd36cc9123535f1945acf6921f8a2a15acc19cfe4065b1c9b985a28671886", size = 2679563, upload-time = "2025-10-19T00:41:37.926Z" }, + { url = "https://files.pythonhosted.org/packages/59/8a/acc6e39a84e930522b965586ad3a36694f9bf247b23188ee0eb47b1c9ed1/cytoolz-1.1.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1842636b6e034f229bf084c2bcdcfd36c8437e752eefd2c74ce9e2f10415cb6e", size = 2813020, upload-time = "2025-10-19T00:41:39.935Z" }, + { url = "https://files.pythonhosted.org/packages/db/f5/0083608286ad1716eda7c41f868e85ac549f6fd6b7646993109fa0bdfd98/cytoolz-1.1.0-cp313-cp313-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:823df012ab90d2f2a0f92fea453528539bf71ac1879e518524cd0c86aa6df7b9", size = 2669312, upload-time = "2025-10-19T00:41:41.55Z" }, + { url = "https://files.pythonhosted.org/packages/47/a8/d16080b575520fe5da00cede1ece4e0a4180ec23f88dcdc6a2f5a90a7f7f/cytoolz-1.1.0-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:2f1fcf9e7e7b3487883ff3f815abc35b89dcc45c4cf81c72b7ee457aa72d197b", size = 2922147, upload-time = "2025-10-19T00:41:43.252Z" }, + { url = "https://files.pythonhosted.org/packages/7e/bc/716c9c1243701e58cad511eb3937fd550e645293c5ed1907639c5d66f194/cytoolz-1.1.0-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:4cdb3fa1772116827f263f25b0cdd44c663b6701346a56411960534a06c082de", size = 2981602, upload-time = "2025-10-19T00:41:45.354Z" }, + { url = "https://files.pythonhosted.org/packages/14/bc/571b232996846b27f4ac0c957dc8bf60261e9b4d0d01c8d955e82329544e/cytoolz-1.1.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d1b5c95041741b81430454db65183e133976f45ac3c03454cfa8147952568529", size = 2830103, upload-time = "2025-10-19T00:41:47.959Z" }, + { url = "https://files.pythonhosted.org/packages/5b/55/c594afb46ecd78e4b7e1fb92c947ed041807875661ceda73baaf61baba4f/cytoolz-1.1.0-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:b2079fd9f1a65f4c61e6278c8a6d4f85edf30c606df8d5b32f1add88cbbe2286", size = 2533802, upload-time = "2025-10-19T00:41:49.683Z" }, + { url = "https://files.pythonhosted.org/packages/93/83/1edcf95832555a78fc43b975f3ebe8ceadcc9664dd47fd33747a14df5069/cytoolz-1.1.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a92a320d72bef1c7e2d4c6d875125cf57fc38be45feb3fac1bfa64ea401f54a4", size = 2706071, upload-time = "2025-10-19T00:41:51.386Z" }, + { url = "https://files.pythonhosted.org/packages/e2/df/035a408df87f25cfe3611557818b250126cd2281b2104cd88395de205583/cytoolz-1.1.0-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:06d1c79aa51e6a92a90b0e456ebce2288f03dd6a76c7f582bfaa3eda7692e8a5", size = 2707575, upload-time = "2025-10-19T00:41:53.305Z" }, + { url = "https://files.pythonhosted.org/packages/7a/a4/ef78e13e16e93bf695a9331321d75fbc834a088d941f1c19e6b63314e257/cytoolz-1.1.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:e1d7be25f6971e986a52b6d3a0da28e1941850985417c35528f6823aef2cfec5", size = 2660486, upload-time = "2025-10-19T00:41:55.542Z" }, + { url = "https://files.pythonhosted.org/packages/30/7a/2c3d60682b26058d435416c4e90d4a94db854de5be944dfd069ed1be648a/cytoolz-1.1.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:964b248edc31efc50a65e9eaa0c845718503823439d2fa5f8d2c7e974c2b5409", size = 2819605, upload-time = "2025-10-19T00:41:58.257Z" }, + { url = "https://files.pythonhosted.org/packages/45/92/19b722a1d83cc443fbc0c16e0dc376f8a451437890d3d9ee370358cf0709/cytoolz-1.1.0-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:c9ff2b3c57c79b65cb5be14a18c6fd4a06d5036fb3f33e973a9f70e9ac13ca28", size = 2533559, upload-time = "2025-10-19T00:42:00.324Z" }, + { url = "https://files.pythonhosted.org/packages/1d/15/fa3b7891da51115204416f14192081d3dea0eaee091f123fdc1347de8dd1/cytoolz-1.1.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:22290b73086af600042d99f5ce52a43d4ad9872c382610413176e19fc1d4fd2d", size = 2839171, upload-time = "2025-10-19T00:42:01.881Z" }, + { url = "https://files.pythonhosted.org/packages/46/40/d3519d5cd86eebebf1e8b7174ec32dfb6ecec67b48b0cfb92bf226659b5a/cytoolz-1.1.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:a2ade74fccd080ea793382968913ee38d7a35c921df435bbf0a6aeecf0d17574", size = 2743379, upload-time = "2025-10-19T00:42:03.809Z" }, + { url = "https://files.pythonhosted.org/packages/93/e2/a9e7511f0a13fdbefa5bf73cf8e4763878140de9453fd3e50d6ac57b6be7/cytoolz-1.1.0-cp313-cp313-win32.whl", hash = "sha256:db5dbcfda1c00e937426cbf9bdc63c24ebbc358c3263bfcbc1ab4a88dc52aa8e", size = 900844, upload-time = "2025-10-19T00:42:05.967Z" }, + { url = "https://files.pythonhosted.org/packages/d6/a4/fb7eb403c6a4c81e5a30363f34a71adcc8bf5292dc8ea32e2440aa5668f2/cytoolz-1.1.0-cp313-cp313-win_amd64.whl", hash = "sha256:9e2d3fe3b45c3eb7233746f7aca37789be3dceec3e07dcc406d3e045ea0f7bdc", size = 946461, upload-time = "2025-10-19T00:42:07.983Z" }, + { url = "https://files.pythonhosted.org/packages/93/bb/1c8c33d353548d240bc6e8677ee8c3560ce5fa2f084e928facf7c35a6dcf/cytoolz-1.1.0-cp313-cp313-win_arm64.whl", hash = "sha256:32c559f95ff44a9ebcbd934acaa1e6dc8f3e6ffce4762a79a88528064873d6d5", size = 902673, upload-time = "2025-10-19T00:42:09.982Z" }, + { url = "https://files.pythonhosted.org/packages/c4/ba/4a53acc60f59030fcaf48c7766e3c4c81bd997379425aa45b129396557b5/cytoolz-1.1.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:9e2cd93b28f667c5870a070ab2b8bb4397470a85c4b204f2454b0ad001cd1ca3", size = 1372336, upload-time = "2025-10-19T00:42:12.104Z" }, + { url = "https://files.pythonhosted.org/packages/ac/90/f28fd8ad8319d8f5c8da69a2c29b8cf52a6d2c0161602d92b366d58926ab/cytoolz-1.1.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:f494124e141a9361f31d79875fe7ea459a3be2b9dadd90480427c0c52a0943d4", size = 1011930, upload-time = "2025-10-19T00:42:14.231Z" }, + { url = "https://files.pythonhosted.org/packages/c9/95/4561c4e0ad1c944f7673d6d916405d68080f10552cfc5d69a1cf2475a9a1/cytoolz-1.1.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:53a3262bf221f19437ed544bf8c0e1980c81ac8e2a53d87a9bc075dba943d36f", size = 1020610, upload-time = "2025-10-19T00:42:15.877Z" }, + { url = "https://files.pythonhosted.org/packages/c3/14/b2e1ffa4995ec36e1372e243411ff36325e4e6d7ffa34eb4098f5357d176/cytoolz-1.1.0-cp313-cp313t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:47663e57d3f3f124921f38055e86a1022d0844c444ede2e8f090d3bbf80deb65", size = 2917327, upload-time = "2025-10-19T00:42:17.706Z" }, + { url = "https://files.pythonhosted.org/packages/4a/29/7cab6c609b4514ac84cca2f7dca6c509977a8fc16d27c3a50e97f105fa6a/cytoolz-1.1.0-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a5a8755c4104ee4e3d5ba434c543b5f85fdee6a1f1df33d93f518294da793a60", size = 3108951, upload-time = "2025-10-19T00:42:19.363Z" }, + { url = "https://files.pythonhosted.org/packages/9a/71/1d1103b819458679277206ad07d78ca6b31c4bb88d6463fd193e19bfb270/cytoolz-1.1.0-cp313-cp313t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:4d96ff3d381423af1b105295f97de86d1db51732c9566eb37378bab6670c5010", size = 2807149, upload-time = "2025-10-19T00:42:20.964Z" }, + { url = "https://files.pythonhosted.org/packages/1a/d4/3d83a05a21e7d2ed2b9e6daf489999c29934b005de9190272b8a2e3735d0/cytoolz-1.1.0-cp313-cp313t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:0ec96b3d537cdf47d4e76ded199f7440715f4c71029b45445cff92c1248808c2", size = 3111608, upload-time = "2025-10-19T00:42:22.684Z" }, + { url = "https://files.pythonhosted.org/packages/51/88/96f68354c3d4af68de41f0db4fe41a23b96a50a4a416636cea325490cfeb/cytoolz-1.1.0-cp313-cp313t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:208e2f2ef90a32b0acbff3303d90d89b13570a228d491d2e622a7883a3c68148", size = 3179373, upload-time = "2025-10-19T00:42:24.395Z" }, + { url = "https://files.pythonhosted.org/packages/ce/50/ed87a5cd8e6f27ffbb64c39e9730e18ec66c37631db2888ae711909f10c9/cytoolz-1.1.0-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0d416a81bb0bd517558668e49d30a7475b5445f9bbafaab7dcf066f1e9adba36", size = 3003120, upload-time = "2025-10-19T00:42:26.18Z" }, + { url = "https://files.pythonhosted.org/packages/d3/a7/acde155b050d6eaa8e9c7845c98fc5fb28501568e78e83ebbf44f8855274/cytoolz-1.1.0-cp313-cp313t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:f32e94c91ffe49af04835ee713ebd8e005c85ebe83e7e1fdcc00f27164c2d636", size = 2703225, upload-time = "2025-10-19T00:42:27.93Z" }, + { url = "https://files.pythonhosted.org/packages/1b/b6/9d518597c5bdea626b61101e8d2ff94124787a42259dafd9f5fc396f346a/cytoolz-1.1.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:15d0c6405efc040499c46df44056a5c382f551a7624a41cf3e4c84a96b988a15", size = 2956033, upload-time = "2025-10-19T00:42:29.993Z" }, + { url = "https://files.pythonhosted.org/packages/89/7a/93e5f860926165538c85e1c5e1670ad3424f158df810f8ccd269da652138/cytoolz-1.1.0-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:bf069c5381d757debae891401b88b3a346ba3a28ca45ba9251103b282463fad8", size = 2862950, upload-time = "2025-10-19T00:42:31.803Z" }, + { url = "https://files.pythonhosted.org/packages/76/e6/99d6af00487bedc27597b54c9fcbfd5c833a69c6b7a9b9f0fff777bfc7aa/cytoolz-1.1.0-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:7d5cf15892e63411ec1bd67deff0e84317d974e6ab2cdfefdd4a7cea2989df66", size = 2861757, upload-time = "2025-10-19T00:42:33.625Z" }, + { url = "https://files.pythonhosted.org/packages/71/ca/adfa1fb7949478135a37755cb8e88c20cd6b75c22a05f1128f05f3ab2c60/cytoolz-1.1.0-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:3e3872c21170f8341656f8692f8939e8800dcee6549ad2474d4c817bdefd62cd", size = 2979049, upload-time = "2025-10-19T00:42:35.377Z" }, + { url = "https://files.pythonhosted.org/packages/70/4c/7bf47a03a4497d500bc73d4204e2d907771a017fa4457741b2a1d7c09319/cytoolz-1.1.0-cp313-cp313t-musllinux_1_2_riscv64.whl", hash = "sha256:b9ddeff8e8fd65eb1fcefa61018100b2b627e759ea6ad275d2e2a93ffac147bf", size = 2699492, upload-time = "2025-10-19T00:42:37.133Z" }, + { url = "https://files.pythonhosted.org/packages/7e/e7/3d034b0e4817314f07aa465d5864e9b8df9d25cb260a53dd84583e491558/cytoolz-1.1.0-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:02feeeda93e1fa3b33414eb57c2b0aefd1db8f558dd33fdfcce664a0f86056e4", size = 2995646, upload-time = "2025-10-19T00:42:38.912Z" }, + { url = "https://files.pythonhosted.org/packages/c1/62/be357181c71648d9fe1d1ce91cd42c63457dcf3c158e144416fd51dced83/cytoolz-1.1.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:d08154ad45349162b6c37f12d5d1b2e6eef338e657b85e1621e4e6a4a69d64cb", size = 2919481, upload-time = "2025-10-19T00:42:40.85Z" }, + { url = "https://files.pythonhosted.org/packages/62/d5/bf5434fde726c4f80cb99912b2d8e0afa1587557e2a2d7e0315eb942f2de/cytoolz-1.1.0-cp313-cp313t-win32.whl", hash = "sha256:10ae4718a056948d73ca3e1bb9ab1f95f897ec1e362f829b9d37cc29ab566c60", size = 951595, upload-time = "2025-10-19T00:42:42.877Z" }, + { url = "https://files.pythonhosted.org/packages/64/29/39c161e9204a9715321ddea698cbd0abc317e78522c7c642363c20589e71/cytoolz-1.1.0-cp313-cp313t-win_amd64.whl", hash = "sha256:1bb77bc6197e5cb19784b6a42bb0f8427e81737a630d9d7dda62ed31733f9e6c", size = 1004445, upload-time = "2025-10-19T00:42:44.855Z" }, + { url = "https://files.pythonhosted.org/packages/e2/5a/7cbff5e9a689f558cb0bdf277f9562b2ac51acf7cd15e055b8c3efb0e1ef/cytoolz-1.1.0-cp313-cp313t-win_arm64.whl", hash = "sha256:563dda652c6ff52d215704fbe6b491879b78d7bbbb3a9524ec8e763483cb459f", size = 926207, upload-time = "2025-10-19T00:42:46.456Z" }, + { url = "https://files.pythonhosted.org/packages/b7/e8/297a85ba700f437c01eba962428e6ab4572f6c3e68e8ff442ce5c9d3a496/cytoolz-1.1.0-cp314-cp314-ios_13_0_arm64_iphoneos.whl", hash = "sha256:d542cee7c7882d2a914a33dec4d3600416fb336734df979473249d4c53d207a1", size = 980613, upload-time = "2025-10-19T00:42:47.988Z" }, + { url = "https://files.pythonhosted.org/packages/e8/d7/2b02c9d18e9cc263a0e22690f78080809f1eafe72f26b29ccc115d3bf5c8/cytoolz-1.1.0-cp314-cp314-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:31922849b701b0f24bb62e56eb2488dcd3aa6ae3057694bd6b3b7c4c2bc27c2f", size = 990476, upload-time = "2025-10-19T00:42:49.653Z" }, + { url = "https://files.pythonhosted.org/packages/89/26/b6b159d2929310fca0eff8a4989cd4b1ecbdf7c46fdff46c7a20fcae55c8/cytoolz-1.1.0-cp314-cp314-ios_13_0_x86_64_iphonesimulator.whl", hash = "sha256:e68308d32afd31943314735c1335e4ab5696110e96b405f6bdb8f2a8dc771a16", size = 992712, upload-time = "2025-10-19T00:42:51.306Z" }, + { url = "https://files.pythonhosted.org/packages/42/a0/f7c572aa151ed466b0fce4a327c3cc916d3ef3c82e341be59ea4b9bee9e4/cytoolz-1.1.0-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:fc4bb48b3b866e1867f7c6411a4229e5b44be3989060663713e10efc24c9bd5f", size = 1322596, upload-time = "2025-10-19T00:42:52.978Z" }, + { url = "https://files.pythonhosted.org/packages/72/7c/a55d035e20b77b6725e85c8f1a418b3a4c23967288b8b0c2d1a40f158cbe/cytoolz-1.1.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:456f77207d1445025d7ef262b8370a05492dcb1490cb428b0f3bf1bd744a89b0", size = 992825, upload-time = "2025-10-19T00:42:55.026Z" }, + { url = "https://files.pythonhosted.org/packages/03/af/39d2d3db322136e12e9336a1f13bab51eab88b386bfb11f91d3faff8ba34/cytoolz-1.1.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:174ebc71ebb20a9baeffce6ee07ee2cd913754325c93f99d767380d8317930f7", size = 990525, upload-time = "2025-10-19T00:42:56.666Z" }, + { url = "https://files.pythonhosted.org/packages/a6/bd/65d7a869d307f9b10ad45c2c1cbb40b81a8d0ed1138fa17fd904f5c83298/cytoolz-1.1.0-cp314-cp314-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:8b3604fef602bcd53415055a4f68468339192fd17be39e687ae24f476d23d56e", size = 2672409, upload-time = "2025-10-19T00:42:58.81Z" }, + { url = "https://files.pythonhosted.org/packages/2d/fb/74dfd844bfd67e810bd36e8e3903a143035447245828e7fcd7c81351d775/cytoolz-1.1.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3604b959a01f64c366e7d10ec7634d5f5cfe10301e27a8f090f6eb3b2a628a18", size = 2808477, upload-time = "2025-10-19T00:43:00.577Z" }, + { url = "https://files.pythonhosted.org/packages/d6/1f/587686c43e31c19241ec317da66438d093523921ea7749bbc65558a30df9/cytoolz-1.1.0-cp314-cp314-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:6db2127a3c1bc2f59f08010d2ae53a760771a9de2f67423ad8d400e9ba4276e8", size = 2636881, upload-time = "2025-10-19T00:43:02.24Z" }, + { url = "https://files.pythonhosted.org/packages/bc/6d/90468cd34f77cb38a11af52c4dc6199efcc97a486395a21bef72e9b7602e/cytoolz-1.1.0-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:56584745ac647993a016a21bc76399113b7595e312f8d0a1b140c9fcf9b58a27", size = 2937315, upload-time = "2025-10-19T00:43:03.954Z" }, + { url = "https://files.pythonhosted.org/packages/d9/50/7b92cd78c613b92e3509e6291d3fb7e0d72ebda999a8df806a96c40ca9ab/cytoolz-1.1.0-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:db2c4c3a7f7bd7e03bb1a236a125c8feb86c75802f4ecda6ecfaf946610b2930", size = 2959988, upload-time = "2025-10-19T00:43:05.758Z" }, + { url = "https://files.pythonhosted.org/packages/44/d5/34b5a28a8d9bb329f984b4c2259407ca3f501d1abeb01bacea07937d85d1/cytoolz-1.1.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:48cb8a692111a285d2b9acd16d185428176bfbffa8a7c274308525fccd01dd42", size = 2795116, upload-time = "2025-10-19T00:43:07.411Z" }, + { url = "https://files.pythonhosted.org/packages/f5/d9/5dd829e33273ec03bdc3c812e6c3281987ae2c5c91645582f6c331544a64/cytoolz-1.1.0-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:d2f344ba5eb17dcf38ee37fdde726f69053f54927db8f8a1bed6ac61e5b1890d", size = 2535390, upload-time = "2025-10-19T00:43:09.104Z" }, + { url = "https://files.pythonhosted.org/packages/87/1f/7f9c58068a8eec2183110df051bc6b69dd621143f84473eeb6dc1b32905a/cytoolz-1.1.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:abf76b1c1abd031f098f293b6d90ee08bdaa45f8b5678430e331d991b82684b1", size = 2704834, upload-time = "2025-10-19T00:43:10.942Z" }, + { url = "https://files.pythonhosted.org/packages/d2/90/667def5665333575d01a65fe3ec0ca31b897895f6e3bc1a42d6ea3659369/cytoolz-1.1.0-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:ddf9a38a5b686091265ff45b53d142e44a538cd6c2e70610d3bc6be094219032", size = 2658441, upload-time = "2025-10-19T00:43:12.655Z" }, + { url = "https://files.pythonhosted.org/packages/23/79/6615f9a14960bd29ac98b823777b6589357833f65cf1a11b5abc1587c120/cytoolz-1.1.0-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:946786755274f07bb2be0400f28adb31d7d85a7c7001873c0a8e24a503428fb3", size = 2654766, upload-time = "2025-10-19T00:43:14.325Z" }, + { url = "https://files.pythonhosted.org/packages/b0/99/be59c6e0ae02153ef10ae1ff0f380fb19d973c651b50cf829a731f6c9e79/cytoolz-1.1.0-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:d5b8f78b9fed79cf185ad4ddec099abeef45951bdcb416c5835ba05f0a1242c7", size = 2827649, upload-time = "2025-10-19T00:43:16.132Z" }, + { url = "https://files.pythonhosted.org/packages/19/b7/854ddcf9f9618844108677c20d48f4611b5c636956adea0f0e85e027608f/cytoolz-1.1.0-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:fccde6efefdbc02e676ccb352a2ccc8a8e929f59a1c6d3d60bb78e923a49ca44", size = 2533456, upload-time = "2025-10-19T00:43:17.764Z" }, + { url = "https://files.pythonhosted.org/packages/45/66/bfe6fbb2bdcf03c8377c8c2f542576e15f3340c905a09d78a6cb3badd39a/cytoolz-1.1.0-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:717b7775313da5f51b0fbf50d865aa9c39cb241bd4cb605df3cf2246d6567397", size = 2826455, upload-time = "2025-10-19T00:43:19.561Z" }, + { url = "https://files.pythonhosted.org/packages/c3/0c/cce4047bd927e95f59e73319c02c9bc86bd3d76392e0eb9e41a1147a479c/cytoolz-1.1.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:5158744a09d0e0e4a4f82225e3a3c4ebf38f9ae74467aaa905467270e52f2794", size = 2714897, upload-time = "2025-10-19T00:43:21.291Z" }, + { url = "https://files.pythonhosted.org/packages/ac/9a/061323bb289b565802bad14fb7ab59fcd8713105df142bcf4dd9ff64f8ac/cytoolz-1.1.0-cp314-cp314-win32.whl", hash = "sha256:1ed534bdbbf063b2bb28fca7d0f6723a3e5a72b086e7c7fe6d74ae8c3e4d00e2", size = 901490, upload-time = "2025-10-19T00:43:22.895Z" }, + { url = "https://files.pythonhosted.org/packages/a3/20/1f3a733d710d2a25d6f10b463bef55ada52fe6392a5d233c8d770191f48a/cytoolz-1.1.0-cp314-cp314-win_amd64.whl", hash = "sha256:472c1c9a085f5ad973ec0ad7f0b9ba0969faea6f96c9e397f6293d386f3a25ec", size = 946730, upload-time = "2025-10-19T00:43:24.838Z" }, + { url = "https://files.pythonhosted.org/packages/f2/22/2d657db4a5d1c10a152061800f812caba9ef20d7bd2406f51a5fd800c180/cytoolz-1.1.0-cp314-cp314-win_arm64.whl", hash = "sha256:a7ad7ca3386fa86bd301be3fa36e7f0acb024f412f665937955acfc8eb42deff", size = 905722, upload-time = "2025-10-19T00:43:26.439Z" }, + { url = "https://files.pythonhosted.org/packages/19/97/b4a8c76796a9a8b9bc90c7992840fa1589a1af8e0426562dea4ce9b384a7/cytoolz-1.1.0-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:64b63ed4b71b1ba813300ad0f06b8aff19a12cf51116e0e4f1ed837cea4debcf", size = 1372606, upload-time = "2025-10-19T00:43:28.491Z" }, + { url = "https://files.pythonhosted.org/packages/08/d4/a1bb1a32b454a2d650db8374ff3bf875ba0fc1c36e6446ec02a83b9140a1/cytoolz-1.1.0-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:a60ba6f2ed9eb0003a737e1ee1e9fa2258e749da6477946008d4324efa25149f", size = 1012189, upload-time = "2025-10-19T00:43:30.177Z" }, + { url = "https://files.pythonhosted.org/packages/21/4b/2f5cbbd81588918ee7dd70cffb66731608f578a9b72166aafa991071af7d/cytoolz-1.1.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:1aa58e2434d732241f7f051e6f17657e969a89971025e24578b5cbc6f1346485", size = 1020624, upload-time = "2025-10-19T00:43:31.712Z" }, + { url = "https://files.pythonhosted.org/packages/f5/99/c4954dd86cd593cd776a038b36795a259b8b5c12cbab6363edf5f6d9c909/cytoolz-1.1.0-cp314-cp314t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:6965af3fc7214645970e312deb9bd35a213a1eaabcfef4f39115e60bf2f76867", size = 2917016, upload-time = "2025-10-19T00:43:33.531Z" }, + { url = "https://files.pythonhosted.org/packages/b2/7c/f1f70a17e272b433232bc8a27df97e46b202d6cc07e3b0d63f7f41ba0f2d/cytoolz-1.1.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ddd2863f321d67527d3b67a93000a378ad6f967056f68c06467fe011278a6d0e", size = 3107634, upload-time = "2025-10-19T00:43:35.57Z" }, + { url = "https://files.pythonhosted.org/packages/8f/bd/c3226a57474b4aef1f90040510cba30d0decd3515fed48dc229b37c2f898/cytoolz-1.1.0-cp314-cp314t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:4e6b428e9eb5126053c2ae0efa62512ff4b38ed3951f4d0888ca7005d63e56f5", size = 2806221, upload-time = "2025-10-19T00:43:37.707Z" }, + { url = "https://files.pythonhosted.org/packages/c3/47/2f7bfe4aaa1e07dc9828bea228ed744faf73b26aee0c1bdf3b5520bf1909/cytoolz-1.1.0-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:d758e5ef311d2671e0ae8c214c52e44617cf1e58bef8f022b547b9802a5a7f30", size = 3107671, upload-time = "2025-10-19T00:43:39.401Z" }, + { url = "https://files.pythonhosted.org/packages/4d/12/6ff3b04fbd1369d0fcd5f8b5910ba6e427e33bf113754c4c35ec3f747924/cytoolz-1.1.0-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:a95416eca473e6c1179b48d86adcf528b59c63ce78f4cb9934f2e413afa9b56b", size = 3176350, upload-time = "2025-10-19T00:43:41.148Z" }, + { url = "https://files.pythonhosted.org/packages/e6/8c/6691d986b728e77b5d2872743ebcd962d37a2d0f7e9ad95a81b284fbf905/cytoolz-1.1.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:36c8ede93525cf11e2cc787b7156e5cecd7340193ef800b816a16f1404a8dc6d", size = 3001173, upload-time = "2025-10-19T00:43:42.923Z" }, + { url = "https://files.pythonhosted.org/packages/7a/cb/f59d83a5058e1198db5a1f04e4a124c94d60390e4fa89b6d2e38ee8288a0/cytoolz-1.1.0-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:c0c949755b6d8a649c5fbc888bc30915926f1b09fe42fea9f289e297c2f6ddd3", size = 2701374, upload-time = "2025-10-19T00:43:44.716Z" }, + { url = "https://files.pythonhosted.org/packages/b7/f0/1ae6d28df503b0bdae094879da2072b8ba13db5919cd3798918761578411/cytoolz-1.1.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:e1b6d37545816905a76d9ed59fa4e332f929e879f062a39ea0f6f620405cdc27", size = 2953081, upload-time = "2025-10-19T00:43:47.103Z" }, + { url = "https://files.pythonhosted.org/packages/f4/06/d86fe811c6222dc32d3e08f5d88d2be598a6055b4d0590e7c1428d55c386/cytoolz-1.1.0-cp314-cp314t-musllinux_1_2_armv7l.whl", hash = "sha256:05332112d4087904842b36954cd1d3fc0e463a2f4a7ef9477bd241427c593c3b", size = 2862228, upload-time = "2025-10-19T00:43:49.353Z" }, + { url = "https://files.pythonhosted.org/packages/ae/32/978ef6f42623be44a0a03ae9de875ab54aa26c7e38c5c4cd505460b0927d/cytoolz-1.1.0-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:31538ca2fad2d688cbd962ccc3f1da847329e2258a52940f10a2ac0719e526be", size = 2861971, upload-time = "2025-10-19T00:43:51.028Z" }, + { url = "https://files.pythonhosted.org/packages/ee/f7/74c69497e756b752b359925d1feef68b91df024a4124a823740f675dacd3/cytoolz-1.1.0-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:747562aa70abf219ea16f07d50ac0157db856d447f7f498f592e097cbc77df0b", size = 2975304, upload-time = "2025-10-19T00:43:52.99Z" }, + { url = "https://files.pythonhosted.org/packages/5b/2b/3ce0e6889a6491f3418ad4d84ae407b8456b02169a5a1f87990dbba7433b/cytoolz-1.1.0-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:3dc15c48b20c0f467e15e341e102896c8422dccf8efc6322def5c1b02f074629", size = 2697371, upload-time = "2025-10-19T00:43:55.312Z" }, + { url = "https://files.pythonhosted.org/packages/15/87/c616577f0891d97860643c845f7221e95240aa589586de727e28a5eb6e52/cytoolz-1.1.0-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:3c03137ee6103ba92d5d6ad6a510e86fded69cd67050bd8a1843f15283be17ac", size = 2992436, upload-time = "2025-10-19T00:43:57.253Z" }, + { url = "https://files.pythonhosted.org/packages/e7/9f/490c81bffb3428ab1fa114051fbb5ba18aaa2e2fe4da5bf4170ca524e6b3/cytoolz-1.1.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:be8e298d88f88bd172b59912240558be3b7a04959375646e7fd4996401452941", size = 2917612, upload-time = "2025-10-19T00:43:59.423Z" }, + { url = "https://files.pythonhosted.org/packages/66/35/0fec2769660ca6472bbf3317ab634675827bb706d193e3240aaf20eab961/cytoolz-1.1.0-cp314-cp314t-win32.whl", hash = "sha256:3d407140f5604a89578285d4aac7b18b8eafa055cf776e781aabb89c48738fad", size = 960842, upload-time = "2025-10-19T00:44:01.143Z" }, + { url = "https://files.pythonhosted.org/packages/46/b4/b7ce3d3cd20337becfec978ecfa6d0ef64884d0cf32d44edfed8700914b9/cytoolz-1.1.0-cp314-cp314t-win_amd64.whl", hash = "sha256:56e5afb69eb6e1b3ffc34716ee5f92ffbdb5cb003b3a5ca4d4b0fe700e217162", size = 1020835, upload-time = "2025-10-19T00:44:03.246Z" }, + { url = "https://files.pythonhosted.org/packages/2c/1f/0498009aa563a9c5d04f520aadc6e1c0942434d089d0b2f51ea986470f55/cytoolz-1.1.0-cp314-cp314t-win_arm64.whl", hash = "sha256:27b19b4a286b3ff52040efa42dbe403730aebe5fdfd2def704eb285e2125c63e", size = 927963, upload-time = "2025-10-19T00:44:04.85Z" }, + { url = "https://files.pythonhosted.org/packages/84/32/0522207170294cf691112a93c70a8ef942f60fa9ff8e793b63b1f09cedc0/cytoolz-1.1.0-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:f32e93a55681d782fc6af939f6df36509d65122423cbc930be39b141064adff8", size = 922014, upload-time = "2025-10-19T00:44:44.911Z" }, + { url = "https://files.pythonhosted.org/packages/4c/49/9be2d24adaa18fa307ff14e3e43f02b2ae4b69c4ce51cee6889eb2114990/cytoolz-1.1.0-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:5d9bc596751cbda8073e65be02ca11706f00029768fbbbc81e11a8c290bb41aa", size = 918134, upload-time = "2025-10-19T00:44:47.122Z" }, + { url = "https://files.pythonhosted.org/packages/5c/b3/6a76c3b94c6c87c72ea822e7e67405be6b649c2e37778eeac7c0c0c69de8/cytoolz-1.1.0-pp311-pypy311_pp73-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:9b16660d01c3931951fab49db422c627897c38c1a1f0393a97582004019a4887", size = 981970, upload-time = "2025-10-19T00:44:48.906Z" }, + { url = "https://files.pythonhosted.org/packages/f6/8a/606e4c7ed14aa6a86aee6ca84a2cb804754dc6c4905b8f94e09e49f1ce60/cytoolz-1.1.0-pp311-pypy311_pp73-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:b7de5718e2113d4efccea3f06055758cdbc17388ecc3341ba4d1d812837d7c1a", size = 978877, upload-time = "2025-10-19T00:44:50.819Z" }, + { url = "https://files.pythonhosted.org/packages/97/ec/ad474dcb1f6c1ebfdda3c2ad2edbb1af122a0e79c9ff2cb901ffb5f59662/cytoolz-1.1.0-pp311-pypy311_pp73-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a12a2a1a6bc44099491c05a12039efa08cc33a3d0f8c7b0566185e085e139283", size = 964279, upload-time = "2025-10-19T00:44:52.476Z" }, + { url = "https://files.pythonhosted.org/packages/68/8c/d245fd416c69d27d51f14d5ad62acc4ee5971088ee31c40ffe1cc109af68/cytoolz-1.1.0-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:047defa7f5f9a32f82373dbc3957289562e8a3fa58ae02ec8e4dca4f43a33a21", size = 916630, upload-time = "2025-10-19T00:44:54.059Z" }, ] [[package]] @@ -391,9 +508,9 @@ dependencies = [ { name = "eth-utils" }, { name = "parsimonious" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/00/71/d9e1380bd77fd22f98b534699af564f189b56d539cc2b9dab908d4e4c242/eth_abi-5.2.0.tar.gz", hash = "sha256:178703fa98c07d8eecd5ae569e7e8d159e493ebb6eeb534a8fe973fbc4e40ef0", size = 49797 } +sdist = { url = "https://files.pythonhosted.org/packages/00/71/d9e1380bd77fd22f98b534699af564f189b56d539cc2b9dab908d4e4c242/eth_abi-5.2.0.tar.gz", hash = "sha256:178703fa98c07d8eecd5ae569e7e8d159e493ebb6eeb534a8fe973fbc4e40ef0", size = 49797, upload-time = "2025-01-14T16:29:34.629Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/7a/b4/2f3982c4cbcbf5eeb6aec62df1533c0e63c653b3021ff338d44944405676/eth_abi-5.2.0-py3-none-any.whl", hash = "sha256:17abe47560ad753f18054f5b3089fcb588f3e3a092136a416b6c1502cb7e8877", size = 28511 }, + { url = "https://files.pythonhosted.org/packages/7a/b4/2f3982c4cbcbf5eeb6aec62df1533c0e63c653b3021ff338d44944405676/eth_abi-5.2.0-py3-none-any.whl", hash = "sha256:17abe47560ad753f18054f5b3089fcb588f3e3a092136a416b6c1502cb7e8877", size = 28511, upload-time = "2025-01-14T16:29:31.862Z" }, ] [[package]] @@ -412,18 +529,18 @@ dependencies = [ { name = "pydantic" }, { name = "rlp" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/74/cf/20f76a29be97339c969fd765f1237154286a565a1d61be98e76bb7af946a/eth_account-0.13.7.tar.gz", hash = "sha256:5853ecbcbb22e65411176f121f5f24b8afeeaf13492359d254b16d8b18c77a46", size = 935998 } +sdist = { url = "https://files.pythonhosted.org/packages/74/cf/20f76a29be97339c969fd765f1237154286a565a1d61be98e76bb7af946a/eth_account-0.13.7.tar.gz", hash = "sha256:5853ecbcbb22e65411176f121f5f24b8afeeaf13492359d254b16d8b18c77a46", size = 935998, upload-time = "2025-04-21T21:11:21.204Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/46/18/088fb250018cbe665bc2111974301b2d59f294a565aff7564c4df6878da2/eth_account-0.13.7-py3-none-any.whl", hash = "sha256:39727de8c94d004ff61d10da7587509c04d2dc7eac71e04830135300bdfc6d24", size = 587452 }, + { url = "https://files.pythonhosted.org/packages/46/18/088fb250018cbe665bc2111974301b2d59f294a565aff7564c4df6878da2/eth_account-0.13.7-py3-none-any.whl", hash = "sha256:39727de8c94d004ff61d10da7587509c04d2dc7eac71e04830135300bdfc6d24", size = 587452, upload-time = "2025-04-21T21:11:18.346Z" }, ] [[package]] name = "eth-hash" version = "0.8.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/3c/f5/c67fc24f2f676aa9b7ab29679d44f113f314c817207cd4319353356f62da/eth_hash-0.8.0.tar.gz", hash = "sha256:b009752b620da2e9c7668014849d1f5fadbe4f138603f1871cc5d4ca706896b1", size = 12225 } +sdist = { url = "https://files.pythonhosted.org/packages/3c/f5/c67fc24f2f676aa9b7ab29679d44f113f314c817207cd4319353356f62da/eth_hash-0.8.0.tar.gz", hash = "sha256:b009752b620da2e9c7668014849d1f5fadbe4f138603f1871cc5d4ca706896b1", size = 12225, upload-time = "2026-03-25T16:36:55.099Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/87/87/b36792150ca0b28e4df683a34be15a61461ca0e349e5b5cf3ec8f694edb9/eth_hash-0.8.0-py3-none-any.whl", hash = "sha256:523718a51b369ab89866b929a5c93c52978cd866ea309192ad980dd8271f9fac", size = 7965 }, + { url = "https://files.pythonhosted.org/packages/87/87/b36792150ca0b28e4df683a34be15a61461ca0e349e5b5cf3ec8f694edb9/eth_hash-0.8.0-py3-none-any.whl", hash = "sha256:523718a51b369ab89866b929a5c93c52978cd866ea309192ad980dd8271f9fac", size = 7965, upload-time = "2026-03-25T16:36:54.205Z" }, ] [[package]] @@ -435,9 +552,9 @@ dependencies = [ { name = "eth-utils" }, { name = "pycryptodome" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/35/66/dd823b1537befefbbff602e2ada88f1477c5b40ec3731e3d9bc676c5f716/eth_keyfile-0.8.1.tar.gz", hash = "sha256:9708bc31f386b52cca0969238ff35b1ac72bd7a7186f2a84b86110d3c973bec1", size = 12267 } +sdist = { url = "https://files.pythonhosted.org/packages/35/66/dd823b1537befefbbff602e2ada88f1477c5b40ec3731e3d9bc676c5f716/eth_keyfile-0.8.1.tar.gz", hash = "sha256:9708bc31f386b52cca0969238ff35b1ac72bd7a7186f2a84b86110d3c973bec1", size = 12267, upload-time = "2024-04-23T20:28:53.862Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/88/fc/48a586175f847dd9e05e5b8994d2fe8336098781ec2e9836a2ad94280281/eth_keyfile-0.8.1-py3-none-any.whl", hash = "sha256:65387378b82fe7e86d7cb9f8d98e6d639142661b2f6f490629da09fddbef6d64", size = 7510 }, + { url = "https://files.pythonhosted.org/packages/88/fc/48a586175f847dd9e05e5b8994d2fe8336098781ec2e9836a2ad94280281/eth_keyfile-0.8.1-py3-none-any.whl", hash = "sha256:65387378b82fe7e86d7cb9f8d98e6d639142661b2f6f490629da09fddbef6d64", size = 7510, upload-time = "2024-04-23T20:28:51.063Z" }, ] [[package]] @@ -448,9 +565,9 @@ dependencies = [ { name = "eth-typing" }, { name = "eth-utils" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/58/11/1ed831c50bd74f57829aa06e58bd82a809c37e070ee501c953b9ac1f1552/eth_keys-0.7.0.tar.gz", hash = "sha256:79d24fd876201df67741de3e3fefb3f4dbcbb6ace66e47e6fe662851a4547814", size = 30166 } +sdist = { url = "https://files.pythonhosted.org/packages/58/11/1ed831c50bd74f57829aa06e58bd82a809c37e070ee501c953b9ac1f1552/eth_keys-0.7.0.tar.gz", hash = "sha256:79d24fd876201df67741de3e3fefb3f4dbcbb6ace66e47e6fe662851a4547814", size = 30166, upload-time = "2025-04-07T17:40:21.697Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/4d/25/0ae00f2b0095e559d61ad3dc32171bd5a29dfd95ab04b4edd641f7c75f72/eth_keys-0.7.0-py3-none-any.whl", hash = "sha256:b0cdda8ffe8e5ba69c7c5ca33f153828edcace844f67aabd4542d7de38b159cf", size = 20656 }, + { url = "https://files.pythonhosted.org/packages/4d/25/0ae00f2b0095e559d61ad3dc32171bd5a29dfd95ab04b4edd641f7c75f72/eth_keys-0.7.0-py3-none-any.whl", hash = "sha256:b0cdda8ffe8e5ba69c7c5ca33f153828edcace844f67aabd4542d7de38b159cf", size = 20656, upload-time = "2025-04-07T17:40:20.441Z" }, ] [[package]] @@ -463,9 +580,9 @@ dependencies = [ { name = "rlp" }, { name = "typing-extensions", marker = "python_full_version < '3.11'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/7f/ea/ad39d001fa9fed07fad66edb00af701e29b48be0ed44a3bcf58cb3adf130/eth_rlp-2.2.0.tar.gz", hash = "sha256:5e4b2eb1b8213e303d6a232dfe35ab8c29e2d3051b86e8d359def80cd21db83d", size = 7720 } +sdist = { url = "https://files.pythonhosted.org/packages/7f/ea/ad39d001fa9fed07fad66edb00af701e29b48be0ed44a3bcf58cb3adf130/eth_rlp-2.2.0.tar.gz", hash = "sha256:5e4b2eb1b8213e303d6a232dfe35ab8c29e2d3051b86e8d359def80cd21db83d", size = 7720, upload-time = "2025-02-04T21:51:08.134Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/99/3b/57efe2bc2df0980680d57c01a36516cd3171d2319ceb30e675de19fc2cc5/eth_rlp-2.2.0-py3-none-any.whl", hash = "sha256:5692d595a741fbaef1203db6a2fedffbd2506d31455a6ad378c8449ee5985c47", size = 4446 }, + { url = "https://files.pythonhosted.org/packages/99/3b/57efe2bc2df0980680d57c01a36516cd3171d2319ceb30e675de19fc2cc5/eth_rlp-2.2.0-py3-none-any.whl", hash = "sha256:5692d595a741fbaef1203db6a2fedffbd2506d31455a6ad378c8449ee5985c47", size = 4446, upload-time = "2025-02-04T21:51:05.823Z" }, ] [[package]] @@ -475,9 +592,9 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/37/e7/06c5af99ad40494f6d10126a9030ff4eb14c5b773f2a4076017efb0a163a/eth_typing-6.0.0.tar.gz", hash = "sha256:315dd460dc0b71c15a6cd51e3c0b70d237eec8771beb844144f3a1fb4adb2392", size = 21852 } +sdist = { url = "https://files.pythonhosted.org/packages/37/e7/06c5af99ad40494f6d10126a9030ff4eb14c5b773f2a4076017efb0a163a/eth_typing-6.0.0.tar.gz", hash = "sha256:315dd460dc0b71c15a6cd51e3c0b70d237eec8771beb844144f3a1fb4adb2392", size = 21852, upload-time = "2026-03-25T16:41:57.444Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/aa/0d/e756622fab29f404d846d7464f929d642a7ee6eff5b38bcc79e7c64ac630/eth_typing-6.0.0-py3-none-any.whl", hash = "sha256:ee74fb641eb36dd885e1c42c2a3055314efa532b3e71480816df70a94d35cfb9", size = 19191 }, + { url = "https://files.pythonhosted.org/packages/aa/0d/e756622fab29f404d846d7464f929d642a7ee6eff5b38bcc79e7c64ac630/eth_typing-6.0.0-py3-none-any.whl", hash = "sha256:ee74fb641eb36dd885e1c42c2a3055314efa532b3e71480816df70a94d35cfb9", size = 19191, upload-time = "2026-03-25T16:41:55.544Z" }, ] [[package]] @@ -491,9 +608,9 @@ dependencies = [ { name = "pydantic" }, { name = "toolz", marker = "implementation_name == 'pypy'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/e9/1b/0b8548da7b31eba87ed58bca1d0de5dcb13a6c113e02c09019ec5a6716ed/eth_utils-6.0.0.tar.gz", hash = "sha256:eb54b2f82dd300d3142c49a89da195e823f5e5284d43203593f87c67bad92a96", size = 123457 } +sdist = { url = "https://files.pythonhosted.org/packages/e9/1b/0b8548da7b31eba87ed58bca1d0de5dcb13a6c113e02c09019ec5a6716ed/eth_utils-6.0.0.tar.gz", hash = "sha256:eb54b2f82dd300d3142c49a89da195e823f5e5284d43203593f87c67bad92a96", size = 123457, upload-time = "2026-03-25T17:11:51.433Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/53/45/a20b907227b9d1aea2e36f7b12818d055629ca9bc65fc282b45738f28ca3/eth_utils-6.0.0-py3-none-any.whl", hash = "sha256:63cf48ee32c45541cb5748751909a8345c470432fb6f0fed4bd7c53fd6400469", size = 102473 }, + { url = "https://files.pythonhosted.org/packages/53/45/a20b907227b9d1aea2e36f7b12818d055629ca9bc65fc282b45738f28ca3/eth_utils-6.0.0-py3-none-any.whl", hash = "sha256:63cf48ee32c45541cb5748751909a8345c470432fb6f0fed4bd7c53fd6400469", size = 102473, upload-time = "2026-03-25T17:11:49.953Z" }, ] [[package]] @@ -503,80 +620,105 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "typing-extensions", marker = "python_full_version < '3.13'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/50/79/66800aadf48771f6b62f7eb014e352e5d06856655206165d775e675a02c9/exceptiongroup-1.3.1.tar.gz", hash = "sha256:8b412432c6055b0b7d14c310000ae93352ed6754f70fa8f7c34141f91c4e3219", size = 30371 } +sdist = { url = "https://files.pythonhosted.org/packages/50/79/66800aadf48771f6b62f7eb014e352e5d06856655206165d775e675a02c9/exceptiongroup-1.3.1.tar.gz", hash = "sha256:8b412432c6055b0b7d14c310000ae93352ed6754f70fa8f7c34141f91c4e3219", size = 30371, upload-time = "2025-11-21T23:01:54.787Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/8a/0e/97c33bf5009bdbac74fd2beace167cab3f978feb69cc36f1ef79360d6c4e/exceptiongroup-1.3.1-py3-none-any.whl", hash = "sha256:a7a39a3bd276781e98394987d3a5701d0c4edffb633bb7a5144577f82c773598", size = 16740 }, + { url = "https://files.pythonhosted.org/packages/8a/0e/97c33bf5009bdbac74fd2beace167cab3f978feb69cc36f1ef79360d6c4e/exceptiongroup-1.3.1-py3-none-any.whl", hash = "sha256:a7a39a3bd276781e98394987d3a5701d0c4edffb633bb7a5144577f82c773598", size = 16740, upload-time = "2025-11-21T23:01:53.443Z" }, ] [[package]] name = "execnet" version = "2.1.2" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/bf/89/780e11f9588d9e7128a3f87788354c7946a9cbb1401ad38a48c4db9a4f07/execnet-2.1.2.tar.gz", hash = "sha256:63d83bfdd9a23e35b9c6a3261412324f964c2ec8dcd8d3c6916ee9373e0befcd", size = 166622 } +sdist = { url = "https://files.pythonhosted.org/packages/bf/89/780e11f9588d9e7128a3f87788354c7946a9cbb1401ad38a48c4db9a4f07/execnet-2.1.2.tar.gz", hash = "sha256:63d83bfdd9a23e35b9c6a3261412324f964c2ec8dcd8d3c6916ee9373e0befcd", size = 166622, upload-time = "2025-11-12T09:56:37.75Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/ab/84/02fc1827e8cdded4aa65baef11296a9bbe595c474f0d6d758af082d849fd/execnet-2.1.2-py3-none-any.whl", hash = "sha256:67fba928dd5a544b783f6056f449e5e3931a5c378b128bc18501f7ea79e296ec", size = 40708 }, + { url = "https://files.pythonhosted.org/packages/ab/84/02fc1827e8cdded4aa65baef11296a9bbe595c474f0d6d758af082d849fd/execnet-2.1.2-py3-none-any.whl", hash = "sha256:67fba928dd5a544b783f6056f449e5e3931a5c378b128bc18501f7ea79e296ec", size = 40708, upload-time = "2025-11-12T09:56:36.333Z" }, ] [[package]] name = "hexbytes" version = "1.3.1" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/7f/87/adf4635b4b8c050283d74e6db9a81496063229c9263e6acc1903ab79fbec/hexbytes-1.3.1.tar.gz", hash = "sha256:a657eebebdfe27254336f98d8af6e2236f3f83aed164b87466b6cf6c5f5a4765", size = 8633 } +sdist = { url = "https://files.pythonhosted.org/packages/7f/87/adf4635b4b8c050283d74e6db9a81496063229c9263e6acc1903ab79fbec/hexbytes-1.3.1.tar.gz", hash = "sha256:a657eebebdfe27254336f98d8af6e2236f3f83aed164b87466b6cf6c5f5a4765", size = 8633, upload-time = "2025-05-14T16:45:17.5Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/8d/e0/3b31492b1c89da3c5a846680517871455b30c54738486fc57ac79a5761bd/hexbytes-1.3.1-py3-none-any.whl", hash = "sha256:da01ff24a1a9a2b1881c4b85f0e9f9b0f51b526b379ffa23832ae7899d29c2c7", size = 5074 }, + { url = "https://files.pythonhosted.org/packages/8d/e0/3b31492b1c89da3c5a846680517871455b30c54738486fc57ac79a5761bd/hexbytes-1.3.1-py3-none-any.whl", hash = "sha256:da01ff24a1a9a2b1881c4b85f0e9f9b0f51b526b379ffa23832ae7899d29c2c7", size = 5074, upload-time = "2025-05-14T16:45:16.179Z" }, ] [[package]] name = "hypothesis" -version = "6.156.2" +version = "6.161.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "exceptiongroup", marker = "python_full_version < '3.11'" }, { name = "sortedcontainers" }, ] +sdist = { url = "https://files.pythonhosted.org/packages/41/96/35022710908b82d20af0c57ab8be4d4a3e4045a74d3ae9c806eb4443297c/hypothesis-6.161.0.tar.gz", hash = "sha256:c357150f826fc7492304621d535a23e8f1b7440a3b10a337c23bea52102e2e7f", size = 485855, upload-time = "2026-07-23T07:17:40.745Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/b6/21/a2952857336f5ea65a390314d8cd25f21fab3d27574c3f593190fb14783d/hypothesis-6.156.2-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:daed1365bc2bcbc4a182b4e5e5f058bc9c87c8d2ef3ec7659e5b874f1b6284c5", size = 749510 }, - { url = "https://files.pythonhosted.org/packages/90/ff/608c6124d3d581e5eba00735458bba89ec3acc93848f6ecdcb5af3d1d8da/hypothesis-6.156.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:6f7df4266316f775b2364ce0528428106629de6d9ad37f780ac502de024b7367", size = 743935 }, - { url = "https://files.pythonhosted.org/packages/66/c2/afa64507b819f3f8fe208d3b3ec08a2a51b68dcd07542e5b689ac021e1a4/hypothesis-6.156.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:40dc8d28287a82568283575808bde2caa0499cadfabf50d70a95a7d697ae39d0", size = 1071102 }, - { url = "https://files.pythonhosted.org/packages/52/21/d47f87f6fd1515c3a3c2b80334cc0c8c20233af43b9630bfd09a02bd92d3/hypothesis-6.156.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:371c08669e26cc31044d4cddddae3d0d229813dcd3d2809e0e4e705f8275102f", size = 1120823 }, - { url = "https://files.pythonhosted.org/packages/b0/2f/70e93e5f8976087b4971464c34211874348e9252768f56451a5a6f78add6/hypothesis-6.156.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:9d4eddc3d62dfa44e2c97c6c80546441df2cf7b1234fec1dd9c6480e6bbd1c51", size = 1245796 }, - { url = "https://files.pythonhosted.org/packages/69/f1/985c0a29ad5d2cfdb76f8e46854526c299ce0ab5803ec9c96f9bb0940ec2/hypothesis-6.156.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:41a32e9b6a1271fe6fa1ea95384379fedbb9ca45355dc2e18064a4fe4ea9dd73", size = 1288182 }, - { url = "https://files.pythonhosted.org/packages/a8/52/9ebb10e98b220cac229035c5c03dec7c3c1e7095438722e4c3443fe692e7/hypothesis-6.156.2-cp310-cp310-win_amd64.whl", hash = "sha256:9763271f4deaeb999dc9969d89c1a9e897bb903feb80f26e750bcc13dac73800", size = 640343 }, - { url = "https://files.pythonhosted.org/packages/41/28/58a8f25b5fd61ade0ed400d0fa6b0416dcffbcfaf0e8be3a937c32b4f924/hypothesis-6.156.2-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:e4ce83092be96243097134a8012629a9a07e282588e697cb8957680ac2b55456", size = 749187 }, - { url = "https://files.pythonhosted.org/packages/8e/5e/295e6ed2d81acb61623ea4a489a6cd323f6d6a15b9c4632e5f98ecda5aaf/hypothesis-6.156.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:e351ecc5046ded68e51fe4b196f626e5e7918a8330f1b971bb20e66652089469", size = 743702 }, - { url = "https://files.pythonhosted.org/packages/80/d7/7a3e409998ab996e5ed8146cdb8904cac1dbcb3cbce94a1eda7b1420b3d5/hypothesis-6.156.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dabfc6c77eca309a8fe9fe71afd9cf12cb9bd3a569e8de48dddcbf7d2ad40f59", size = 1071010 }, - { url = "https://files.pythonhosted.org/packages/78/62/244cdd3dd502312891276ba64245fabac6c61f6214c4aafb141bef432f28/hypothesis-6.156.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4f97801a57b2c712e80acc2376deb6c08e3dbae11076c0a7bebc7d8c6306ff4a", size = 1120628 }, - { url = "https://files.pythonhosted.org/packages/f7/14/1dabaa47f0c9e88687ed0336aec07bc8b4a33f528c1c687834f710994722/hypothesis-6.156.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:82f2761177b3c25f51f5f7788c7eb985c9c4ade4d92077b7171f21c15db4e44b", size = 1245250 }, - { url = "https://files.pythonhosted.org/packages/8a/48/995841c9f7d080d33070397f4968180dab1d78215769e41d3bc6944d0ff3/hypothesis-6.156.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:20098b742fdc238c5c47fc7c686ae790b9830e1910c8a3da98a17ea6e3192d52", size = 1287868 }, - { url = "https://files.pythonhosted.org/packages/78/07/58acb4724f584d9e2239ed7b4c83294c34e69b5e8b457d73b5a2e3410af8/hypothesis-6.156.2-cp311-cp311-win_amd64.whl", hash = "sha256:04f64cea5bb80c775cba24e50602d0c4d695ece74e0576c60047ac2a897afadc", size = 640180 }, - { url = "https://files.pythonhosted.org/packages/2a/04/cba9692e3ba6802a7f881ee1000634bc327c50999eff31c848a89572b94e/hypothesis-6.156.2-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:089abb5f72c980c7d3a8fd6986c08743cbb9105fab826a8a3d4e34dcf4b3c446", size = 749034 }, - { url = "https://files.pythonhosted.org/packages/be/a6/023e521d053b9b99d70f6c493d626f4f1b51a87d9a6f6cdb286b0c8532f5/hypothesis-6.156.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:94e027517e435d0bda48557ef736552cf14a06af76961375e48a3c2c48afb502", size = 741911 }, - { url = "https://files.pythonhosted.org/packages/cd/d9/1822df320ce0ea4cbfa1cbeb888f88d5dbd3b8ecfcb1fd7236cd2cbcbf64/hypothesis-6.156.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:74f49b87e367d9ac844350b617eab9846126d45c57d3062d5515545e5d3854cf", size = 1069816 }, - { url = "https://files.pythonhosted.org/packages/dd/1a/33682e317f96ff04d101782ba174d2eb9c70b709b51cb4c22de4a1cc48d0/hypothesis-6.156.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f8f3ab2c0b70231c73fe3bc686f3ecf827882a132dbd44758fdfe562b92b725a", size = 1119540 }, - { url = "https://files.pythonhosted.org/packages/45/9d/96d39aa32fc5a53a0598bafae9fdd7150e0d1679b37ca820df85ddecd166/hypothesis-6.156.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:94fddaef961465db10201e385366366d7a394073a3e5915d402c38e184a30490", size = 1243862 }, - { url = "https://files.pythonhosted.org/packages/47/41/c0272ca96dff030d7e4119c35feac4cd388395f4317739273a11f1f57378/hypothesis-6.156.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:32cbdbbdf9bd4416270e0849db90791bf43128c616f44af498140ed8c6b13ef1", size = 1286413 }, - { url = "https://files.pythonhosted.org/packages/1b/0f/22b5a9f54b08f989d694c61c5aef7dff20fd4e377029d88f67072e307f35/hypothesis-6.156.2-cp312-cp312-win_amd64.whl", hash = "sha256:5ba8941f566c6efae9db4cb77a77ba4132b330f410d503842f6fb5c32e7a50b7", size = 637645 }, - { url = "https://files.pythonhosted.org/packages/5f/f1/40b782791455411d09eb181fd688d615b0f46945f50a2b8ad1525a9aa0e2/hypothesis-6.156.2-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:5ebeddf95d2d60283d079e9e3ee434ec2654868d35deb8d7de01221d86b9bd67", size = 749445 }, - { url = "https://files.pythonhosted.org/packages/33/92/e92493ff3903a57d84618d379a180566e6e77b3a8e14fab0e6e15d6958b8/hypothesis-6.156.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:082f81fb0697d42809b9ca9b7d2b01e319363f9b6b368dded0f7cf29574228f8", size = 742078 }, - { url = "https://files.pythonhosted.org/packages/0c/fb/3c9ae5cdc9e2c296bbd08a00f6a369df509b4ec19443d099d59258f02738/hypothesis-6.156.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:82a23eede8f93ae5768b6161e51511e40fd0b3e6f08f25d94f17e476827a3e3f", size = 1069980 }, - { url = "https://files.pythonhosted.org/packages/f8/0d/b9cd9bb75beeda4dc520b81d818db300c67659bb15d4c0d1eaac7b5818dd/hypothesis-6.156.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0cc703d7f8d16006f2afb8b5c9de79d145888e1bc917431edef7ab058447910a", size = 1119942 }, - { url = "https://files.pythonhosted.org/packages/63/b7/590bda127ac08d5ca03787f530093d9a97746550bded6cbe11c38cc33526/hypothesis-6.156.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:8bc6a9801926b34d124628e54166c4f5e466831456349c1b32b3abb4320c5588", size = 1244026 }, - { url = "https://files.pythonhosted.org/packages/ba/f2/45416c2fa565a6d9df9f1ee3844123c6332cc2f5444e65d0089cd4250d8b/hypothesis-6.156.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:9494e7dfdcbafa1fb0b109929500e1f2ee71e58cc531919cc7721acb3ea0e0a9", size = 1286715 }, - { url = "https://files.pythonhosted.org/packages/cf/15/c973adc18512e74da8e9deba457019b19b142f6e6b0fae432637ed7c3ce2/hypothesis-6.156.2-cp313-cp313-win_amd64.whl", hash = "sha256:e1778a7446a7aff9420367241740d021bc9093f6f38f39ebdd45c3737fa7fcb4", size = 637936 }, - { url = "https://files.pythonhosted.org/packages/64/8f/348c3f4846ac2c08efea75170f6947554781ec243e60f6ec03dd664ac038/hypothesis-6.156.2-pp311-pypy311_pp73-macosx_10_12_x86_64.whl", hash = "sha256:db6b62ac14b799e52522f0878ec6fdc82944a700b708c4b0d8ba667d2c811fa4", size = 749749 }, - { url = "https://files.pythonhosted.org/packages/f3/18/ebeedf919e845ebe59750dbfae72846086e10635f9fabe4c8573dc10a7f2/hypothesis-6.156.2-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:43457c97a8572d41b411066ad104c2688e88d889b4bd887c4789ce52f140df76", size = 744373 }, - { url = "https://files.pythonhosted.org/packages/50/a5/5b1e8cc1f08ea0fdbb87e7062c66b3613b9b1fc65c3512b255724c21e8a1/hypothesis-6.156.2-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8a7ed48c2693536460b6161cb30cb064542e1a702b51df94202bedc477b17915", size = 1071365 }, - { url = "https://files.pythonhosted.org/packages/49/7e/0d2a19de897a129be4e2907f3c1171f8f1f918bde13c703d1be2ccdf3023/hypothesis-6.156.2-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1f23fbfa240f75a2dd234011a8bc4dab8cfd68aba8299c2cc8a4e6684d73c6ab", size = 1121412 }, - { url = "https://files.pythonhosted.org/packages/25/92/a3a2b7298925fe7308df52bcb41dcd47d25e76c18f984acebf1fbd79d18e/hypothesis-6.156.2-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:229e19f43e151cad06fa6566c31e847b39b171cfbb5d6aefba9274b048cbeb81", size = 640760 }, + { url = "https://files.pythonhosted.org/packages/f5/b9/c8b80fb7517e6f3039d0ef9a5df6aaee53667935e62c6c9d9d635436708d/hypothesis-6.161.0-cp310-abi3-macosx_10_12_x86_64.whl", hash = "sha256:c9f877e288dfb46207b5c3bfcc8ab28e2613e529be8621816423960403377286", size = 766230, upload-time = "2026-07-23T07:16:54.313Z" }, + { url = "https://files.pythonhosted.org/packages/90/16/e5c1287fee682f7c1e9afccc91c07ae36a6855a5863d0b3c15d7bfa0b322/hypothesis-6.161.0-cp310-abi3-macosx_11_0_arm64.whl", hash = "sha256:b7b6980265cb04605b2b42132dc8ef5735917fc482869298611a49d2e06dc322", size = 761883, upload-time = "2026-07-23T07:17:05.884Z" }, + { url = "https://files.pythonhosted.org/packages/c9/b8/d9792e24e53f82bb1455935f79cf3b56ccf556fac325c8a90f7968180706/hypothesis-6.161.0-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f10253cac459922cad3bc09e397718188e57dffefe810e5db1d444e7113d7fb5", size = 1091083, upload-time = "2026-07-23T07:17:10.987Z" }, + { url = "https://files.pythonhosted.org/packages/f7/15/33cba9c6bee8a80ab18f48e40669038275bf4b82e8dfb0fa9fe716925265/hypothesis-6.161.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:232ab78dd8cb0a891914d20697e0fd340ca1e6d4d8d5855df5e433d8161173e2", size = 1140530, upload-time = "2026-07-23T07:16:14.195Z" }, + { url = "https://files.pythonhosted.org/packages/bb/f6/30c421822cd65b8edd56b2b90a5e1acf4a624d5619067957668027ab7e46/hypothesis-6.161.0-cp310-abi3-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:264336ca1e9f31edd24a8885c4020db8e18986c51a255613db28c076ac4289a8", size = 1132680, upload-time = "2026-07-23T07:16:49.73Z" }, + { url = "https://files.pythonhosted.org/packages/e9/db/d18e45339b2ffda57a52395e03df6166bc4e428bc90e878dd3f20a7423c0/hypothesis-6.161.0-cp310-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:323aac4347e6ffa86929407b7f386cbf54e1c66faf923ffd6b4b86c21815d117", size = 1264892, upload-time = "2026-07-23T07:16:21.657Z" }, + { url = "https://files.pythonhosted.org/packages/c7/7e/f4b7600272fbc9a2b28c95b96059d89cf5093ae705e52360a818df8154a5/hypothesis-6.161.0-cp310-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:5dc83c8e83b9d133babcf9468703cece0ddb25413983561f2516927edddcc52d", size = 1307563, upload-time = "2026-07-23T07:16:43.15Z" }, + { url = "https://files.pythonhosted.org/packages/d6/28/fa4f2d50c7434076ec7653a8372750531576e4d11cd5f3316ad83e12a553/hypothesis-6.161.0-cp310-abi3-win32.whl", hash = "sha256:75a3036121e6ae2cf55b7433f1953834cc9eca97c2e4e4be3369fe080c86b237", size = 652098, upload-time = "2026-07-23T07:16:24.134Z" }, + { url = "https://files.pythonhosted.org/packages/93/5c/6811eee772a5cc33f9bf863326983f493977e9aee9535c8dbb6c172575d3/hypothesis-6.161.0-cp310-abi3-win_amd64.whl", hash = "sha256:e3f5b2527789a748b54d6ef46b2b042f3225164d54c24ba74a137ddb10a39407", size = 658272, upload-time = "2026-07-23T07:16:51.173Z" }, + { url = "https://files.pythonhosted.org/packages/97/97/49216c1087962033451cc6e3093deb765b0d14eed7dda2980f6d8dfc9062/hypothesis-6.161.0-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:38eea270b81398c9e2c7eed028f53ba51dc7005eb97fa681c7c90007ba029423", size = 766930, upload-time = "2026-07-23T07:17:33.625Z" }, + { url = "https://files.pythonhosted.org/packages/9a/6d/766a280bea353045ae7311ba847a50ebb939155e2a990fd08040be2b6b5b/hypothesis-6.161.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:b6b7183980c7729d7cf084ab26c127e4c591876536278ecb84ed2449d4d93f4e", size = 762699, upload-time = "2026-07-23T07:17:38.977Z" }, + { url = "https://files.pythonhosted.org/packages/62/86/f28648668b5ce18bba7ae846c629c54427aa622a76280309c3bc3dca4f2d/hypothesis-6.161.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d3e60bbe528d6005373146808bd0b5e618bf1a20e912c0568ae56802e8c455fc", size = 1091551, upload-time = "2026-07-23T07:16:28.499Z" }, + { url = "https://files.pythonhosted.org/packages/52/e3/3ae24ad1056e1c992dade22e9c784c93d57ea0dc3ff9fa6a48683548489d/hypothesis-6.161.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e3167e3153a9b8a8ad43284a22cbe1e3c1819d6d944f727f9810bb115a9c2ade", size = 1141106, upload-time = "2026-07-23T07:17:19.854Z" }, + { url = "https://files.pythonhosted.org/packages/c4/37/fa3a21edcd7c4a104d6782ee98135af8ef86ae42d39ea9eb55072f84b668/hypothesis-6.161.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:1489ef3b86688fc0051d0c86db238ff8f3732bd353dc4b6b28a81c3897bd756e", size = 1265529, upload-time = "2026-07-23T07:16:44.815Z" }, + { url = "https://files.pythonhosted.org/packages/6e/2e/f377a5ea8aba231213da1b26f333a6af29c43fcdac7dda790304dd9c3ffc/hypothesis-6.161.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:28a450d338067845870b03a8c61ba6d83cccf5d1ed360a6b1cfebb4f42818791", size = 1307881, upload-time = "2026-07-23T07:16:18.438Z" }, + { url = "https://files.pythonhosted.org/packages/8f/73/276defee614d45462a1512888283d4a9bdf852e3f9d74f564bd8d6cecd09/hypothesis-6.161.0-cp310-cp310-win_amd64.whl", hash = "sha256:170fc6fe2157c8e813818a08709d78c79ffa9171b015389c50f5538eab3de1bb", size = 658159, upload-time = "2026-07-23T07:16:38.473Z" }, + { url = "https://files.pythonhosted.org/packages/dc/1f/07054e18c7696fe5aa127952e1ff2b74c7917100e0998d77405f9aea7bbf/hypothesis-6.161.0-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:2658a95ac7cf1943b9397725d58481373a1709e79b6867628108f695b202ff3f", size = 766737, upload-time = "2026-07-23T07:16:27.055Z" }, + { url = "https://files.pythonhosted.org/packages/21/1b/6a04fbda729f5889b486aa3b20912ee6c7391c8db0a2926346a1b3ad0834/hypothesis-6.161.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:584906b4f8f9504d7c9d6fd3c42bf991fa42ab64c3a4490a84d6e4acf69fe7fe", size = 762514, upload-time = "2026-07-23T07:17:25.025Z" }, + { url = "https://files.pythonhosted.org/packages/35/12/609a956b716ab20cb81263d8e0cecfe442fb46e4d54ae9b82b453f2465fe/hypothesis-6.161.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:87a996d0a1c865173ed67a0b3537efbe6736bcf9f58ac28826712a48ed8d2d23", size = 1091414, upload-time = "2026-07-23T07:16:40.248Z" }, + { url = "https://files.pythonhosted.org/packages/fc/99/093bc8aca6dddc05e88dd0baa64c5586e031737d798c66e770fbeb034510/hypothesis-6.161.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0250e209ed2401cf6c80c956c5c1906097b537d05fa748f03e9c53060a837d3f", size = 1140888, upload-time = "2026-07-23T07:17:07.579Z" }, + { url = "https://files.pythonhosted.org/packages/65/fc/f681828dc1ca13243622eb6ddc3f7370efb1cb7931ea7505f8ade4d37ba6/hypothesis-6.161.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:210024a6e84c361803545ca055218bcae06e17fcb53d5956db7db6a1e14d7769", size = 1265245, upload-time = "2026-07-23T07:16:56.103Z" }, + { url = "https://files.pythonhosted.org/packages/53/d4/98deace31c31369196ece4d6f32bb8c1820bf5cf5584721bda791bffa0cc/hypothesis-6.161.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:c3e39be8141496a73115f1ea2c8fd7146f78d26f148e884f3d4a68dec06418a0", size = 1307841, upload-time = "2026-07-23T07:16:59.457Z" }, + { url = "https://files.pythonhosted.org/packages/c3/5d/d9bbe1fc769e46b21d368497d4739375fcb17270eba611bac1117473e337/hypothesis-6.161.0-cp311-cp311-win_amd64.whl", hash = "sha256:e234937af9de105e28dc7ffdac5d7932265abb5881f0264aff01d3515baee732", size = 657953, upload-time = "2026-07-23T07:17:18.224Z" }, + { url = "https://files.pythonhosted.org/packages/01/f5/b01692ea422f9995260435a5c2a425dd558ceb0b6544cf4037d312b52927/hypothesis-6.161.0-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:8cf6149e5bcb1deaa3d029280c2c9a47fede2186ea58d8dc3e71864428b748b5", size = 767859, upload-time = "2026-07-23T07:16:31.301Z" }, + { url = "https://files.pythonhosted.org/packages/1e/ea/147f96f352a1c62f4fa4d46ec2d8b103d39cafce236826531aba9dfbf6fc/hypothesis-6.161.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:439b9ccefc2b87b9752752d2ec6c9d40f92de2acaf07f4da94c2ebcbde4eb660", size = 759491, upload-time = "2026-07-23T07:17:37.046Z" }, + { url = "https://files.pythonhosted.org/packages/44/05/c1ddd72ca9af054332a05bdb19b666b1dbb4ff904cac2b6e04bc483518fa/hypothesis-6.161.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:35c577d4b635b914e2cdd59d144448e0de82e47f8422d8373cbb48daa5571686", size = 1089838, upload-time = "2026-07-23T07:16:52.774Z" }, + { url = "https://files.pythonhosted.org/packages/46/79/0d9adc2ca7fe226e4f81e0e9ff88ab9a2025395a705e55e8447e8833b2e2/hypothesis-6.161.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:894af9777f2fd51bca9625fd07573456c1fa67b6bed3f6aa1659cb60255594e0", size = 1139915, upload-time = "2026-07-23T07:16:11.769Z" }, + { url = "https://files.pythonhosted.org/packages/50/48/c557ee9899ab58e6d373712dcfe019b4eb65035f5bbffcb7624201984bd4/hypothesis-6.161.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:c9f15d18d3041216d80d2a3203c1b8881efb7c20296f068651e2ad34f3852392", size = 1262692, upload-time = "2026-07-23T07:17:09.328Z" }, + { url = "https://files.pythonhosted.org/packages/1c/37/8eede820af48d8f7a73c0741c659b4839ffe9825b020affe43d52f58acb5/hypothesis-6.161.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:f5588bde17a517c943b5ef6172cacfce6ef2d542c9249cc1bd86ce3c4c07161b", size = 1306904, upload-time = "2026-07-23T07:16:32.698Z" }, + { url = "https://files.pythonhosted.org/packages/ba/6b/16282f58b92b6698dbed7b23d7015fb9f7d5dfb78e7ba2e4b44c88116bca/hypothesis-6.161.0-cp312-cp312-win_amd64.whl", hash = "sha256:c7994d32bcca19b7cbf3c087172245fe9f4d55b21bccef81693efd5a0637d4d9", size = 655392, upload-time = "2026-07-23T07:16:16.988Z" }, + { url = "https://files.pythonhosted.org/packages/27/13/50b3fabaa9a52f82905d6bf70b0027cbc61972f0b60dcf68506e4a85674f/hypothesis-6.161.0-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:d5217e3df508ab71303bf1288b412548e96483eef195f6008b6472770e4fe4ed", size = 767734, upload-time = "2026-07-23T07:16:35.638Z" }, + { url = "https://files.pythonhosted.org/packages/72/0c/0176f7722896dffef2aa677699df75cd2a53ed00d4dc6b2959c40c1c8389/hypothesis-6.161.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:ad4899908abec1888d0d16eb70acd54c9d8198b58410ec26a346ba35d384fc0d", size = 759394, upload-time = "2026-07-23T07:16:57.551Z" }, + { url = "https://files.pythonhosted.org/packages/97/1d/5ade6e0c80ce8160bbcd55c300d95a5450cdb82fa04fdcdd8a33f6198441/hypothesis-6.161.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fee553e5150af6d66ee058f3ccbc3b5b83e6df62139e8935abd0510254a2d4a7", size = 1089752, upload-time = "2026-07-23T07:16:34.18Z" }, + { url = "https://files.pythonhosted.org/packages/99/02/14c6d54e60159ba9991a52b14ea5a9b6935d4878ffe9d0a8fabd2d166767/hypothesis-6.161.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0f8110cd815f3a79e2351700654c21771eec47d98a78db56cc81879d41f08ed1", size = 1139731, upload-time = "2026-07-23T07:17:28.51Z" }, + { url = "https://files.pythonhosted.org/packages/36/98/c099c382b0fbf6dfd209d35961e6ee9739ad1d787288a40eb364b278217a/hypothesis-6.161.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:16aacb26a277d25da7466f0588c2687811334455753d513c55d8ca4dbbc5174e", size = 1262736, upload-time = "2026-07-23T07:16:07.875Z" }, + { url = "https://files.pythonhosted.org/packages/f1/3a/6b1fbde6e2a1c9bd54acb1e5d8fa866c6fef59a829a67ca310f5d12a8fbe/hypothesis-6.161.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:eb24cf5f7f301ad3db14caa4462ebc2e693fe38815d793ff6dbc116820b18dff", size = 1306628, upload-time = "2026-07-23T07:16:29.965Z" }, + { url = "https://files.pythonhosted.org/packages/8b/c2/033da1694f956f0c566b12a1f0667138ad06a3b0a67837f17c6873cc2513/hypothesis-6.161.0-cp313-cp313-win_amd64.whl", hash = "sha256:e4f715f5598444a0d569aa8a3e74ebc14a46c67a873193db38c8542b2838e91f", size = 655355, upload-time = "2026-07-23T07:16:48.054Z" }, + { url = "https://files.pythonhosted.org/packages/2b/26/29582b8ba467eedf270515422f41cb564d06b4eef38bdf06e236cc841546/hypothesis-6.161.0-cp314-cp314-macosx_10_12_x86_64.whl", hash = "sha256:a046954e17a1edd20b6c95e9d29f1df7bc20ccab94c01aa8b4177552896230fb", size = 767928, upload-time = "2026-07-23T07:17:12.935Z" }, + { url = "https://files.pythonhosted.org/packages/f7/25/bb7cfd851f6b0f4b0130485785a3447621523116b89f8d82042fb9897752/hypothesis-6.161.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:2d503b0fdb916371d536b33fad0c4f909846af2fc4273d3049ca6fe661aa81ff", size = 759542, upload-time = "2026-07-23T07:16:41.736Z" }, + { url = "https://files.pythonhosted.org/packages/d9/ab/bc31d4aa5840c2438e011a615095b0e2fae5de94c3abfc18a01686825ea7/hypothesis-6.161.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:df011a94870dc3e1b5fb4fb8d2c68dd641b412a3b73050288d85af1467c9a689", size = 1090304, upload-time = "2026-07-23T07:16:19.817Z" }, + { url = "https://files.pythonhosted.org/packages/51/ee/6304f6184aee6a1b91fff746a767b4f3aab58c29e48e64cc16d56fc6dedc/hypothesis-6.161.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4678e3988503b3bd5be0ed995f84cc15ac4f99c168bade32456a08c04868f3f3", size = 1139915, upload-time = "2026-07-23T07:17:14.565Z" }, + { url = "https://files.pythonhosted.org/packages/f5/6d/23efce26bf7f1773346732c58a23cbe33ed4f171da1bb3aa11bf349fdb4c/hypothesis-6.161.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:74c6e5b5623f37eb6af8be6f861d138fac3ee3528ee30c3b48ff11c39f7be4b7", size = 1263070, upload-time = "2026-07-23T07:16:15.695Z" }, + { url = "https://files.pythonhosted.org/packages/0b/a2/e0b4bf410630f16661eea6fdf9c3970e47c749a837de12098d63c81bb01b/hypothesis-6.161.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:b841c25267ab360812a523d1861e0b0ed0f5cc4e6d7bcecc9d9eddd3f835aa0f", size = 1306929, upload-time = "2026-07-23T07:16:37.086Z" }, + { url = "https://files.pythonhosted.org/packages/03/13/58047eb148a31ae7cce26ec0b2f0e980c46874c6673c1110c53684ba181a/hypothesis-6.161.0-cp314-cp314-pyemscripten_2026_0_wasm32.whl", hash = "sha256:a0f3830c1e816e34bd8cd940244c8c877dedc2ecfea771d2ecea252bc35eb21d", size = 599455, upload-time = "2026-07-23T07:16:25.552Z" }, + { url = "https://files.pythonhosted.org/packages/f0/0e/a206013edd7dfd44b9a81ae1946a1ea30d878974850d60a61fa128cc170d/hypothesis-6.161.0-cp314-cp314-win_amd64.whl", hash = "sha256:d1d38f05acb9c25181157f1756f5faaa1759b4641ff6b32cb1d2ab1d55d6af2d", size = 655306, upload-time = "2026-07-23T07:17:30.273Z" }, + { url = "https://files.pythonhosted.org/packages/e2/74/32d224a0ccf4ca9af6acc1d805047e12cd13105e0769d54ac00a86f25850/hypothesis-6.161.0-cp314-cp314t-macosx_10_12_x86_64.whl", hash = "sha256:81570959521eebd0172ea9132ffab71b90050e7cd44d045da67210aa9a594376", size = 766503, upload-time = "2026-07-23T07:16:10.253Z" }, + { url = "https://files.pythonhosted.org/packages/ce/5d/8b61c3490fd8195a25fdc37e951ccba3ae4df2c74839ffe6a6d5720fdb79/hypothesis-6.161.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:46a6039181337b85a995666e9bf87cc2390282720ba345479bb9be9c867914da", size = 758013, upload-time = "2026-07-23T07:17:26.71Z" }, + { url = "https://files.pythonhosted.org/packages/d9/11/ac4ab15ec4586a23bb4e2acdcbed814517e341f2940eeb74fbf428dac243/hypothesis-6.161.0-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7f2d4141c952f522d6aae0e493d170f9b0127c001319bd312ee9cfba7ed419d4", size = 1088871, upload-time = "2026-07-23T07:17:02.884Z" }, + { url = "https://files.pythonhosted.org/packages/27/13/fd83965bcdd44dc5002c67fe8e8e2e974ed45c82dc6864e104c1c70093d5/hypothesis-6.161.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a6ed3e1b9c036954bfabe64899072a18e6b5113703d32a96645c6656a8cfc43e", size = 1138801, upload-time = "2026-07-23T07:17:35.354Z" }, + { url = "https://files.pythonhosted.org/packages/2d/e7/a4ad5f3b0b805fd2e583d193e2a762cd413465b524ef07829452521dca6d/hypothesis-6.161.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:aba1508da6c317819305e875bf6c4d4dd0922193c76416d4cc907447ebe08fea", size = 1261305, upload-time = "2026-07-23T07:17:23.201Z" }, + { url = "https://files.pythonhosted.org/packages/38/54/35e1b62ece96c24921e9a1e811179d54a6429d9611a2cd49504f5b95382e/hypothesis-6.161.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:981acb3efa88df363a0d31e0f4bacd36ef739104eee789a6b12c7f7200a457fc", size = 1305689, upload-time = "2026-07-23T07:17:21.476Z" }, + { url = "https://files.pythonhosted.org/packages/04/87/6491e9a36d8e8df67a3b9c3eeb5a85c12c6b0d5302b5ce395b5427698b52/hypothesis-6.161.0-cp314-cp314t-win_amd64.whl", hash = "sha256:e71e229f2dec694685245b8e55e908855b475c17ab8337bcf848768b4c32aa97", size = 655436, upload-time = "2026-07-23T07:17:04.424Z" }, + { url = "https://files.pythonhosted.org/packages/54/e2/0782e45562fb091cd75bd12f69932c8aa55a9e3bb699599f43e5258d013c/hypothesis-6.161.0-pp311-pypy311_pp73-macosx_10_12_x86_64.whl", hash = "sha256:33a19886dc05b489f0ab632c89b8ca9dc6f89a0b380b6405671cecb2b0d5b5c4", size = 767674, upload-time = "2026-07-23T07:17:16.37Z" }, + { url = "https://files.pythonhosted.org/packages/03/46/eaccb5375ed83396be3153857f9de808b5d5ecc001fab8e30bf8e30d33d4/hypothesis-6.161.0-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:b4fd38d0e757ae290583774b3695ab0d7f0da80e924c6473de84483449c6da8d", size = 763579, upload-time = "2026-07-23T07:16:46.309Z" }, + { url = "https://files.pythonhosted.org/packages/99/48/31ca6b9414cf30388ba825c740b13ab74f6afcf856a194a9256f7f1ca38d/hypothesis-6.161.0-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:59dc6871e2fbbfd2d28e7e6f33d19bd8513a3b7510bd0b224a59bbebdd5cc1b3", size = 1092394, upload-time = "2026-07-23T07:17:01.136Z" }, + { url = "https://files.pythonhosted.org/packages/75/1d/709c03af162418c0b3e0cf624549b13ecacd8df0f2ca09d53214702cb1f8/hypothesis-6.161.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:55ff16ec4b4e98bfd97e9a2a44905eaf7a3ec8f3f157d8c7eac2385a88059a29", size = 1142170, upload-time = "2026-07-23T07:17:32.044Z" }, + { url = "https://files.pythonhosted.org/packages/3a/ae/63458a5f80db8433beb7556482e3de1a6789b6c469a5f2f99c21aaa7fdef/hypothesis-6.161.0-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:77ae374d9ed7046b15443053b11f5b05e185bca24b3b849c3f473a9e4cc85451", size = 659069, upload-time = "2026-07-23T07:16:12.922Z" }, ] [[package]] name = "iniconfig" version = "2.3.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/72/34/14ca021ce8e5dfedc35312d08ba8bf51fdd999c576889fc2c24cb97f4f10/iniconfig-2.3.0.tar.gz", hash = "sha256:c76315c77db068650d49c5b56314774a7804df16fee4402c1f19d6d15d8c4730", size = 20503 } +sdist = { url = "https://files.pythonhosted.org/packages/72/34/14ca021ce8e5dfedc35312d08ba8bf51fdd999c576889fc2c24cb97f4f10/iniconfig-2.3.0.tar.gz", hash = "sha256:c76315c77db068650d49c5b56314774a7804df16fee4402c1f19d6d15d8c4730", size = 20503, upload-time = "2025-10-18T21:55:43.219Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/cb/b1/3846dd7f199d53cb17f49cba7e651e9ce294d8497c8c150530ed11865bb8/iniconfig-2.3.0-py3-none-any.whl", hash = "sha256:f631c04d2c48c52b84d0d0549c99ff3859c98df65b3101406327ecc7d53fbf12", size = 7484 }, + { url = "https://files.pythonhosted.org/packages/cb/b1/3846dd7f199d53cb17f49cba7e651e9ce294d8497c8c150530ed11865bb8/iniconfig-2.3.0-py3-none-any.whl", hash = "sha256:f631c04d2c48c52b84d0d0549c99ff3859c98df65b3101406327ecc7d53fbf12", size = 7484, upload-time = "2025-10-18T21:55:41.639Z" }, ] [[package]] @@ -586,27 +728,27 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "mdurl" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/06/ff/7841249c247aa650a76b9ee4bbaeae59370dc8bfd2f6c01f3630c35eb134/markdown_it_py-4.2.0.tar.gz", hash = "sha256:04a21681d6fbb623de53f6f364d352309d4094dd4194040a10fd51833e418d49", size = 82454 } +sdist = { url = "https://files.pythonhosted.org/packages/06/ff/7841249c247aa650a76b9ee4bbaeae59370dc8bfd2f6c01f3630c35eb134/markdown_it_py-4.2.0.tar.gz", hash = "sha256:04a21681d6fbb623de53f6f364d352309d4094dd4194040a10fd51833e418d49", size = 82454, upload-time = "2026-05-07T12:08:28.36Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/b3/81/4da04ced5a082363ecfa159c010d200ecbd959ae410c10c0264a38cac0f5/markdown_it_py-4.2.0-py3-none-any.whl", hash = "sha256:9f7ebbcd14fe59494226453aed97c1070d83f8d24b6fc3a3bcf9a38092641c4a", size = 91687 }, + { url = "https://files.pythonhosted.org/packages/b3/81/4da04ced5a082363ecfa159c010d200ecbd959ae410c10c0264a38cac0f5/markdown_it_py-4.2.0-py3-none-any.whl", hash = "sha256:9f7ebbcd14fe59494226453aed97c1070d83f8d24b6fc3a3bcf9a38092641c4a", size = 91687, upload-time = "2026-05-07T12:08:27.182Z" }, ] [[package]] name = "mdurl" version = "0.1.2" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/d6/54/cfe61301667036ec958cb99bd3efefba235e65cdeb9c84d24a8293ba1d90/mdurl-0.1.2.tar.gz", hash = "sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba", size = 8729 } +sdist = { url = "https://files.pythonhosted.org/packages/d6/54/cfe61301667036ec958cb99bd3efefba235e65cdeb9c84d24a8293ba1d90/mdurl-0.1.2.tar.gz", hash = "sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba", size = 8729, upload-time = "2022-08-14T12:40:10.846Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/b3/38/89ba8ad64ae25be8de66a6d463314cf1eb366222074cfda9ee839c56a4b4/mdurl-0.1.2-py3-none-any.whl", hash = "sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8", size = 9979 }, + { url = "https://files.pythonhosted.org/packages/b3/38/89ba8ad64ae25be8de66a6d463314cf1eb366222074cfda9ee839c56a4b4/mdurl-0.1.2-py3-none-any.whl", hash = "sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8", size = 9979, upload-time = "2022-08-14T12:40:09.779Z" }, ] [[package]] name = "packaging" version = "26.2" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/d7/f1/e7a6dd94a8d4a5626c03e4e99c87f241ba9e350cd9e6d75123f992427270/packaging-26.2.tar.gz", hash = "sha256:ff452ff5a3e828ce110190feff1178bb1f2ea2281fa2075aadb987c2fb221661", size = 228134 } +sdist = { url = "https://files.pythonhosted.org/packages/d7/f1/e7a6dd94a8d4a5626c03e4e99c87f241ba9e350cd9e6d75123f992427270/packaging-26.2.tar.gz", hash = "sha256:ff452ff5a3e828ce110190feff1178bb1f2ea2281fa2075aadb987c2fb221661", size = 228134, upload-time = "2026-04-24T20:15:23.917Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/df/b2/87e62e8c3e2f4b32e5fe99e0b86d576da1312593b39f47d8ceef365e95ed/packaging-26.2-py3-none-any.whl", hash = "sha256:5fc45236b9446107ff2415ce77c807cee2862cb6fac22b8a73826d0693b0980e", size = 100195 }, + { url = "https://files.pythonhosted.org/packages/df/b2/87e62e8c3e2f4b32e5fe99e0b86d576da1312593b39f47d8ceef365e95ed/packaging-26.2-py3-none-any.whl", hash = "sha256:5fc45236b9446107ff2415ce77c807cee2862cb6fac22b8a73826d0693b0980e", size = 100195, upload-time = "2026-04-24T20:15:22.081Z" }, ] [[package]] @@ -616,55 +758,53 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "regex" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/7b/91/abdc50c4ef06fdf8d047f60ee777ca9b2a7885e1a9cea81343fbecda52d7/parsimonious-0.10.0.tar.gz", hash = "sha256:8281600da180ec8ae35427a4ab4f7b82bfec1e3d1e52f80cb60ea82b9512501c", size = 52172 } +sdist = { url = "https://files.pythonhosted.org/packages/7b/91/abdc50c4ef06fdf8d047f60ee777ca9b2a7885e1a9cea81343fbecda52d7/parsimonious-0.10.0.tar.gz", hash = "sha256:8281600da180ec8ae35427a4ab4f7b82bfec1e3d1e52f80cb60ea82b9512501c", size = 52172, upload-time = "2022-09-03T17:01:17.004Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/aa/0f/c8b64d9b54ea631fcad4e9e3c8dbe8c11bb32a623be94f22974c88e71eaf/parsimonious-0.10.0-py3-none-any.whl", hash = "sha256:982ab435fabe86519b57f6b35610aa4e4e977e9f02a14353edf4bbc75369fc0f", size = 48427 }, + { url = "https://files.pythonhosted.org/packages/aa/0f/c8b64d9b54ea631fcad4e9e3c8dbe8c11bb32a623be94f22974c88e71eaf/parsimonious-0.10.0-py3-none-any.whl", hash = "sha256:982ab435fabe86519b57f6b35610aa4e4e977e9f02a14353edf4bbc75369fc0f", size = 48427, upload-time = "2022-09-03T17:01:13.814Z" }, ] [[package]] name = "pluggy" version = "1.6.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/f9/e2/3e91f31a7d2b083fe6ef3fa267035b518369d9511ffab804f839851d2779/pluggy-1.6.0.tar.gz", hash = "sha256:7dcc130b76258d33b90f61b658791dede3486c3e6bfb003ee5c9bfb396dd22f3", size = 69412 } +sdist = { url = "https://files.pythonhosted.org/packages/f9/e2/3e91f31a7d2b083fe6ef3fa267035b518369d9511ffab804f839851d2779/pluggy-1.6.0.tar.gz", hash = "sha256:7dcc130b76258d33b90f61b658791dede3486c3e6bfb003ee5c9bfb396dd22f3", size = 69412, upload-time = "2025-05-15T12:30:07.975Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/54/20/4d324d65cc6d9205fabedc306948156824eb9f0ee1633355a8f7ec5c66bf/pluggy-1.6.0-py3-none-any.whl", hash = "sha256:e920276dd6813095e9377c0bc5566d94c932c33b27a3e3945d8389c374dd4746", size = 20538 }, + { url = "https://files.pythonhosted.org/packages/54/20/4d324d65cc6d9205fabedc306948156824eb9f0ee1633355a8f7ec5c66bf/pluggy-1.6.0-py3-none-any.whl", hash = "sha256:e920276dd6813095e9377c0bc5566d94c932c33b27a3e3945d8389c374dd4746", size = 20538, upload-time = "2025-05-15T12:30:06.134Z" }, ] [[package]] name = "pycryptodome" version = "3.23.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/8e/a6/8452177684d5e906854776276ddd34eca30d1b1e15aa1ee9cefc289a33f5/pycryptodome-3.23.0.tar.gz", hash = "sha256:447700a657182d60338bab09fdb27518f8856aecd80ae4c6bdddb67ff5da44ef", size = 4921276 } +sdist = { url = "https://files.pythonhosted.org/packages/8e/a6/8452177684d5e906854776276ddd34eca30d1b1e15aa1ee9cefc289a33f5/pycryptodome-3.23.0.tar.gz", hash = "sha256:447700a657182d60338bab09fdb27518f8856aecd80ae4c6bdddb67ff5da44ef", size = 4921276, upload-time = "2025-05-17T17:21:45.242Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/04/5d/bdb09489b63cd34a976cc9e2a8d938114f7a53a74d3dd4f125ffa49dce82/pycryptodome-3.23.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:0011f7f00cdb74879142011f95133274741778abba114ceca229adbf8e62c3e4", size = 2495152 }, - { url = "https://files.pythonhosted.org/packages/a7/ce/7840250ed4cc0039c433cd41715536f926d6e86ce84e904068eb3244b6a6/pycryptodome-3.23.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:90460fc9e088ce095f9ee8356722d4f10f86e5be06e2354230a9880b9c549aae", size = 1639348 }, - { url = "https://files.pythonhosted.org/packages/ee/f0/991da24c55c1f688d6a3b5a11940567353f74590734ee4a64294834ae472/pycryptodome-3.23.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4764e64b269fc83b00f682c47443c2e6e85b18273712b98aa43bcb77f8570477", size = 2184033 }, - { url = "https://files.pythonhosted.org/packages/54/16/0e11882deddf00f68b68dd4e8e442ddc30641f31afeb2bc25588124ac8de/pycryptodome-3.23.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eb8f24adb74984aa0e5d07a2368ad95276cf38051fe2dc6605cbcf482e04f2a7", size = 2270142 }, - { url = "https://files.pythonhosted.org/packages/d5/fc/4347fea23a3f95ffb931f383ff28b3f7b1fe868739182cb76718c0da86a1/pycryptodome-3.23.0-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d97618c9c6684a97ef7637ba43bdf6663a2e2e77efe0f863cce97a76af396446", size = 2309384 }, - { url = "https://files.pythonhosted.org/packages/6e/d9/c5261780b69ce66d8cfab25d2797bd6e82ba0241804694cd48be41add5eb/pycryptodome-3.23.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:9a53a4fe5cb075075d515797d6ce2f56772ea7e6a1e5e4b96cf78a14bac3d265", size = 2183237 }, - { url = "https://files.pythonhosted.org/packages/5a/6f/3af2ffedd5cfa08c631f89452c6648c4d779e7772dfc388c77c920ca6bbf/pycryptodome-3.23.0-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:763d1d74f56f031788e5d307029caef067febf890cd1f8bf61183ae142f1a77b", size = 2343898 }, - { url = "https://files.pythonhosted.org/packages/9a/dc/9060d807039ee5de6e2f260f72f3d70ac213993a804f5e67e0a73a56dd2f/pycryptodome-3.23.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:954af0e2bd7cea83ce72243b14e4fb518b18f0c1649b576d114973e2073b273d", size = 2269197 }, - { url = "https://files.pythonhosted.org/packages/f9/34/e6c8ca177cb29dcc4967fef73f5de445912f93bd0343c9c33c8e5bf8cde8/pycryptodome-3.23.0-cp313-cp313t-win32.whl", hash = "sha256:257bb3572c63ad8ba40b89f6fc9d63a2a628e9f9708d31ee26560925ebe0210a", size = 1768600 }, - { url = "https://files.pythonhosted.org/packages/e4/1d/89756b8d7ff623ad0160f4539da571d1f594d21ee6d68be130a6eccb39a4/pycryptodome-3.23.0-cp313-cp313t-win_amd64.whl", hash = "sha256:6501790c5b62a29fcb227bd6b62012181d886a767ce9ed03b303d1f22eb5c625", size = 1799740 }, - { url = "https://files.pythonhosted.org/packages/5d/61/35a64f0feaea9fd07f0d91209e7be91726eb48c0f1bfc6720647194071e4/pycryptodome-3.23.0-cp313-cp313t-win_arm64.whl", hash = "sha256:9a77627a330ab23ca43b48b130e202582e91cc69619947840ea4d2d1be21eb39", size = 1703685 }, - { url = "https://files.pythonhosted.org/packages/db/6c/a1f71542c969912bb0e106f64f60a56cc1f0fabecf9396f45accbe63fa68/pycryptodome-3.23.0-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:187058ab80b3281b1de11c2e6842a357a1f71b42cb1e15bce373f3d238135c27", size = 2495627 }, - { url = "https://files.pythonhosted.org/packages/6e/4e/a066527e079fc5002390c8acdd3aca431e6ea0a50ffd7201551175b47323/pycryptodome-3.23.0-cp37-abi3-macosx_10_9_x86_64.whl", hash = "sha256:cfb5cd445280c5b0a4e6187a7ce8de5a07b5f3f897f235caa11f1f435f182843", size = 1640362 }, - { url = "https://files.pythonhosted.org/packages/50/52/adaf4c8c100a8c49d2bd058e5b551f73dfd8cb89eb4911e25a0c469b6b4e/pycryptodome-3.23.0-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:67bd81fcbe34f43ad9422ee8fd4843c8e7198dd88dd3d40e6de42ee65fbe1490", size = 2182625 }, - { url = "https://files.pythonhosted.org/packages/5f/e9/a09476d436d0ff1402ac3867d933c61805ec2326c6ea557aeeac3825604e/pycryptodome-3.23.0-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c8987bd3307a39bc03df5c8e0e3d8be0c4c3518b7f044b0f4c15d1aa78f52575", size = 2268954 }, - { url = "https://files.pythonhosted.org/packages/f9/c5/ffe6474e0c551d54cab931918127c46d70cab8f114e0c2b5a3c071c2f484/pycryptodome-3.23.0-cp37-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:aa0698f65e5b570426fc31b8162ed4603b0c2841cbb9088e2b01641e3065915b", size = 2308534 }, - { url = "https://files.pythonhosted.org/packages/18/28/e199677fc15ecf43010f2463fde4c1a53015d1fe95fb03bca2890836603a/pycryptodome-3.23.0-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:53ecbafc2b55353edcebd64bf5da94a2a2cdf5090a6915bcca6eca6cc452585a", size = 2181853 }, - { url = "https://files.pythonhosted.org/packages/ce/ea/4fdb09f2165ce1365c9eaefef36625583371ee514db58dc9b65d3a255c4c/pycryptodome-3.23.0-cp37-abi3-musllinux_1_2_i686.whl", hash = "sha256:156df9667ad9f2ad26255926524e1c136d6664b741547deb0a86a9acf5ea631f", size = 2342465 }, - { url = "https://files.pythonhosted.org/packages/22/82/6edc3fc42fe9284aead511394bac167693fb2b0e0395b28b8bedaa07ef04/pycryptodome-3.23.0-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:dea827b4d55ee390dc89b2afe5927d4308a8b538ae91d9c6f7a5090f397af1aa", size = 2267414 }, - { url = "https://files.pythonhosted.org/packages/59/fe/aae679b64363eb78326c7fdc9d06ec3de18bac68be4b612fc1fe8902693c/pycryptodome-3.23.0-cp37-abi3-win32.whl", hash = "sha256:507dbead45474b62b2bbe318eb1c4c8ee641077532067fec9c1aa82c31f84886", size = 1768484 }, - { url = "https://files.pythonhosted.org/packages/54/2f/e97a1b8294db0daaa87012c24a7bb714147c7ade7656973fd6c736b484ff/pycryptodome-3.23.0-cp37-abi3-win_amd64.whl", hash = "sha256:c75b52aacc6c0c260f204cbdd834f76edc9fb0d8e0da9fbf8352ef58202564e2", size = 1799636 }, - { url = "https://files.pythonhosted.org/packages/18/3d/f9441a0d798bf2b1e645adc3265e55706aead1255ccdad3856dbdcffec14/pycryptodome-3.23.0-cp37-abi3-win_arm64.whl", hash = "sha256:11eeeb6917903876f134b56ba11abe95c0b0fd5e3330def218083c7d98bbcb3c", size = 1703675 }, - { url = "https://files.pythonhosted.org/packages/9f/7c/f5b0556590e7b4e710509105e668adb55aa9470a9f0e4dea9c40a4a11ce1/pycryptodome-3.23.0-pp27-pypy_73-manylinux2010_x86_64.whl", hash = "sha256:350ebc1eba1da729b35ab7627a833a1a355ee4e852d8ba0447fafe7b14504d56", size = 1705791 }, - { url = "https://files.pythonhosted.org/packages/33/38/dcc795578d610ea1aaffef4b148b8cafcfcf4d126b1e58231ddc4e475c70/pycryptodome-3.23.0-pp27-pypy_73-win32.whl", hash = "sha256:93837e379a3e5fd2bb00302a47aee9fdf7940d83595be3915752c74033d17ca7", size = 1780265 }, - { url = "https://files.pythonhosted.org/packages/d9/12/e33935a0709c07de084d7d58d330ec3f4daf7910a18e77937affdb728452/pycryptodome-3.23.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:ddb95b49df036ddd264a0ad246d1be5b672000f12d6961ea2c267083a5e19379", size = 1623886 }, - { url = "https://files.pythonhosted.org/packages/22/0b/aa8f9419f25870889bebf0b26b223c6986652bdf071f000623df11212c90/pycryptodome-3.23.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d8e95564beb8782abfd9e431c974e14563a794a4944c29d6d3b7b5ea042110b4", size = 1672151 }, - { url = "https://files.pythonhosted.org/packages/d4/5e/63f5cbde2342b7f70a39e591dbe75d9809d6338ce0b07c10406f1a140cdc/pycryptodome-3.23.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:14e15c081e912c4b0d75632acd8382dfce45b258667aa3c67caf7a4d4c13f630", size = 1664461 }, - { url = "https://files.pythonhosted.org/packages/d6/92/608fbdad566ebe499297a86aae5f2a5263818ceeecd16733006f1600403c/pycryptodome-3.23.0-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a7fc76bf273353dc7e5207d172b83f569540fc9a28d63171061c42e361d22353", size = 1702440 }, - { url = "https://files.pythonhosted.org/packages/d1/92/2eadd1341abd2989cce2e2740b4423608ee2014acb8110438244ee97d7ff/pycryptodome-3.23.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:45c69ad715ca1a94f778215a11e66b7ff989d792a4d63b68dc586a1da1392ff5", size = 1803005 }, + { url = "https://files.pythonhosted.org/packages/04/5d/bdb09489b63cd34a976cc9e2a8d938114f7a53a74d3dd4f125ffa49dce82/pycryptodome-3.23.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:0011f7f00cdb74879142011f95133274741778abba114ceca229adbf8e62c3e4", size = 2495152, upload-time = "2025-05-17T17:20:20.833Z" }, + { url = "https://files.pythonhosted.org/packages/a7/ce/7840250ed4cc0039c433cd41715536f926d6e86ce84e904068eb3244b6a6/pycryptodome-3.23.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:90460fc9e088ce095f9ee8356722d4f10f86e5be06e2354230a9880b9c549aae", size = 1639348, upload-time = "2025-05-17T17:20:23.171Z" }, + { url = "https://files.pythonhosted.org/packages/ee/f0/991da24c55c1f688d6a3b5a11940567353f74590734ee4a64294834ae472/pycryptodome-3.23.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4764e64b269fc83b00f682c47443c2e6e85b18273712b98aa43bcb77f8570477", size = 2184033, upload-time = "2025-05-17T17:20:25.424Z" }, + { url = "https://files.pythonhosted.org/packages/54/16/0e11882deddf00f68b68dd4e8e442ddc30641f31afeb2bc25588124ac8de/pycryptodome-3.23.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eb8f24adb74984aa0e5d07a2368ad95276cf38051fe2dc6605cbcf482e04f2a7", size = 2270142, upload-time = "2025-05-17T17:20:27.808Z" }, + { url = "https://files.pythonhosted.org/packages/d5/fc/4347fea23a3f95ffb931f383ff28b3f7b1fe868739182cb76718c0da86a1/pycryptodome-3.23.0-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d97618c9c6684a97ef7637ba43bdf6663a2e2e77efe0f863cce97a76af396446", size = 2309384, upload-time = "2025-05-17T17:20:30.765Z" }, + { url = "https://files.pythonhosted.org/packages/6e/d9/c5261780b69ce66d8cfab25d2797bd6e82ba0241804694cd48be41add5eb/pycryptodome-3.23.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:9a53a4fe5cb075075d515797d6ce2f56772ea7e6a1e5e4b96cf78a14bac3d265", size = 2183237, upload-time = "2025-05-17T17:20:33.736Z" }, + { url = "https://files.pythonhosted.org/packages/5a/6f/3af2ffedd5cfa08c631f89452c6648c4d779e7772dfc388c77c920ca6bbf/pycryptodome-3.23.0-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:763d1d74f56f031788e5d307029caef067febf890cd1f8bf61183ae142f1a77b", size = 2343898, upload-time = "2025-05-17T17:20:36.086Z" }, + { url = "https://files.pythonhosted.org/packages/9a/dc/9060d807039ee5de6e2f260f72f3d70ac213993a804f5e67e0a73a56dd2f/pycryptodome-3.23.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:954af0e2bd7cea83ce72243b14e4fb518b18f0c1649b576d114973e2073b273d", size = 2269197, upload-time = "2025-05-17T17:20:38.414Z" }, + { url = "https://files.pythonhosted.org/packages/f9/34/e6c8ca177cb29dcc4967fef73f5de445912f93bd0343c9c33c8e5bf8cde8/pycryptodome-3.23.0-cp313-cp313t-win32.whl", hash = "sha256:257bb3572c63ad8ba40b89f6fc9d63a2a628e9f9708d31ee26560925ebe0210a", size = 1768600, upload-time = "2025-05-17T17:20:40.688Z" }, + { url = "https://files.pythonhosted.org/packages/e4/1d/89756b8d7ff623ad0160f4539da571d1f594d21ee6d68be130a6eccb39a4/pycryptodome-3.23.0-cp313-cp313t-win_amd64.whl", hash = "sha256:6501790c5b62a29fcb227bd6b62012181d886a767ce9ed03b303d1f22eb5c625", size = 1799740, upload-time = "2025-05-17T17:20:42.413Z" }, + { url = "https://files.pythonhosted.org/packages/5d/61/35a64f0feaea9fd07f0d91209e7be91726eb48c0f1bfc6720647194071e4/pycryptodome-3.23.0-cp313-cp313t-win_arm64.whl", hash = "sha256:9a77627a330ab23ca43b48b130e202582e91cc69619947840ea4d2d1be21eb39", size = 1703685, upload-time = "2025-05-17T17:20:44.388Z" }, + { url = "https://files.pythonhosted.org/packages/db/6c/a1f71542c969912bb0e106f64f60a56cc1f0fabecf9396f45accbe63fa68/pycryptodome-3.23.0-cp37-abi3-macosx_10_9_universal2.whl", hash = "sha256:187058ab80b3281b1de11c2e6842a357a1f71b42cb1e15bce373f3d238135c27", size = 2495627, upload-time = "2025-05-17T17:20:47.139Z" }, + { url = "https://files.pythonhosted.org/packages/6e/4e/a066527e079fc5002390c8acdd3aca431e6ea0a50ffd7201551175b47323/pycryptodome-3.23.0-cp37-abi3-macosx_10_9_x86_64.whl", hash = "sha256:cfb5cd445280c5b0a4e6187a7ce8de5a07b5f3f897f235caa11f1f435f182843", size = 1640362, upload-time = "2025-05-17T17:20:50.392Z" }, + { url = "https://files.pythonhosted.org/packages/50/52/adaf4c8c100a8c49d2bd058e5b551f73dfd8cb89eb4911e25a0c469b6b4e/pycryptodome-3.23.0-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:67bd81fcbe34f43ad9422ee8fd4843c8e7198dd88dd3d40e6de42ee65fbe1490", size = 2182625, upload-time = "2025-05-17T17:20:52.866Z" }, + { url = "https://files.pythonhosted.org/packages/5f/e9/a09476d436d0ff1402ac3867d933c61805ec2326c6ea557aeeac3825604e/pycryptodome-3.23.0-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c8987bd3307a39bc03df5c8e0e3d8be0c4c3518b7f044b0f4c15d1aa78f52575", size = 2268954, upload-time = "2025-05-17T17:20:55.027Z" }, + { url = "https://files.pythonhosted.org/packages/f9/c5/ffe6474e0c551d54cab931918127c46d70cab8f114e0c2b5a3c071c2f484/pycryptodome-3.23.0-cp37-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:aa0698f65e5b570426fc31b8162ed4603b0c2841cbb9088e2b01641e3065915b", size = 2308534, upload-time = "2025-05-17T17:20:57.279Z" }, + { url = "https://files.pythonhosted.org/packages/18/28/e199677fc15ecf43010f2463fde4c1a53015d1fe95fb03bca2890836603a/pycryptodome-3.23.0-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:53ecbafc2b55353edcebd64bf5da94a2a2cdf5090a6915bcca6eca6cc452585a", size = 2181853, upload-time = "2025-05-17T17:20:59.322Z" }, + { url = "https://files.pythonhosted.org/packages/ce/ea/4fdb09f2165ce1365c9eaefef36625583371ee514db58dc9b65d3a255c4c/pycryptodome-3.23.0-cp37-abi3-musllinux_1_2_i686.whl", hash = "sha256:156df9667ad9f2ad26255926524e1c136d6664b741547deb0a86a9acf5ea631f", size = 2342465, upload-time = "2025-05-17T17:21:03.83Z" }, + { url = "https://files.pythonhosted.org/packages/22/82/6edc3fc42fe9284aead511394bac167693fb2b0e0395b28b8bedaa07ef04/pycryptodome-3.23.0-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:dea827b4d55ee390dc89b2afe5927d4308a8b538ae91d9c6f7a5090f397af1aa", size = 2267414, upload-time = "2025-05-17T17:21:06.72Z" }, + { url = "https://files.pythonhosted.org/packages/59/fe/aae679b64363eb78326c7fdc9d06ec3de18bac68be4b612fc1fe8902693c/pycryptodome-3.23.0-cp37-abi3-win32.whl", hash = "sha256:507dbead45474b62b2bbe318eb1c4c8ee641077532067fec9c1aa82c31f84886", size = 1768484, upload-time = "2025-05-17T17:21:08.535Z" }, + { url = "https://files.pythonhosted.org/packages/54/2f/e97a1b8294db0daaa87012c24a7bb714147c7ade7656973fd6c736b484ff/pycryptodome-3.23.0-cp37-abi3-win_amd64.whl", hash = "sha256:c75b52aacc6c0c260f204cbdd834f76edc9fb0d8e0da9fbf8352ef58202564e2", size = 1799636, upload-time = "2025-05-17T17:21:10.393Z" }, + { url = "https://files.pythonhosted.org/packages/18/3d/f9441a0d798bf2b1e645adc3265e55706aead1255ccdad3856dbdcffec14/pycryptodome-3.23.0-cp37-abi3-win_arm64.whl", hash = "sha256:11eeeb6917903876f134b56ba11abe95c0b0fd5e3330def218083c7d98bbcb3c", size = 1703675, upload-time = "2025-05-17T17:21:13.146Z" }, + { url = "https://files.pythonhosted.org/packages/d9/12/e33935a0709c07de084d7d58d330ec3f4daf7910a18e77937affdb728452/pycryptodome-3.23.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:ddb95b49df036ddd264a0ad246d1be5b672000f12d6961ea2c267083a5e19379", size = 1623886, upload-time = "2025-05-17T17:21:20.614Z" }, + { url = "https://files.pythonhosted.org/packages/22/0b/aa8f9419f25870889bebf0b26b223c6986652bdf071f000623df11212c90/pycryptodome-3.23.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d8e95564beb8782abfd9e431c974e14563a794a4944c29d6d3b7b5ea042110b4", size = 1672151, upload-time = "2025-05-17T17:21:22.666Z" }, + { url = "https://files.pythonhosted.org/packages/d4/5e/63f5cbde2342b7f70a39e591dbe75d9809d6338ce0b07c10406f1a140cdc/pycryptodome-3.23.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:14e15c081e912c4b0d75632acd8382dfce45b258667aa3c67caf7a4d4c13f630", size = 1664461, upload-time = "2025-05-17T17:21:25.225Z" }, + { url = "https://files.pythonhosted.org/packages/d6/92/608fbdad566ebe499297a86aae5f2a5263818ceeecd16733006f1600403c/pycryptodome-3.23.0-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a7fc76bf273353dc7e5207d172b83f569540fc9a28d63171061c42e361d22353", size = 1702440, upload-time = "2025-05-17T17:21:27.991Z" }, + { url = "https://files.pythonhosted.org/packages/d1/92/2eadd1341abd2989cce2e2740b4423608ee2014acb8110438244ee97d7ff/pycryptodome-3.23.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:45c69ad715ca1a94f778215a11e66b7ff989d792a4d63b68dc586a1da1392ff5", size = 1803005, upload-time = "2025-05-17T17:21:31.37Z" }, ] [[package]] @@ -677,9 +817,9 @@ dependencies = [ { name = "typing-extensions" }, { name = "typing-inspection" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/18/a5/b60d21ac674192f8ab0ba4e9fd860690f9b4a6e51ca5df118733b487d8d6/pydantic-2.13.4.tar.gz", hash = "sha256:c40756b57adaa8b1efeeced5c196f3f3b7c435f90e84ea7f443901bec8099ef6", size = 844775 } +sdist = { url = "https://files.pythonhosted.org/packages/18/a5/b60d21ac674192f8ab0ba4e9fd860690f9b4a6e51ca5df118733b487d8d6/pydantic-2.13.4.tar.gz", hash = "sha256:c40756b57adaa8b1efeeced5c196f3f3b7c435f90e84ea7f443901bec8099ef6", size = 844775, upload-time = "2026-05-06T13:43:05.343Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/fd/7b/122376b1fd3c62c1ed9dc80c931ace4844b3c55407b6fb2d199377c9736f/pydantic-2.13.4-py3-none-any.whl", hash = "sha256:45a282cde31d808236fd7ea9d919b128653c8b38b393d1c4ab335c62924d9aba", size = 472262 }, + { url = "https://files.pythonhosted.org/packages/fd/7b/122376b1fd3c62c1ed9dc80c931ace4844b3c55407b6fb2d199377c9736f/pydantic-2.13.4-py3-none-any.whl", hash = "sha256:45a282cde31d808236fd7ea9d919b128653c8b38b393d1c4ab335c62924d9aba", size = 472262, upload-time = "2026-05-06T13:43:02.641Z" }, ] [[package]] @@ -689,92 +829,122 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/9d/56/921726b776ace8d8f5db44c4ef961006580d91dc52b803c489fafd1aa249/pydantic_core-2.46.4.tar.gz", hash = "sha256:62f875393d7f270851f20523dd2e29f082bcc82292d66db2b64ea71f64b6e1c1", size = 471464 } +sdist = { url = "https://files.pythonhosted.org/packages/9d/56/921726b776ace8d8f5db44c4ef961006580d91dc52b803c489fafd1aa249/pydantic_core-2.46.4.tar.gz", hash = "sha256:62f875393d7f270851f20523dd2e29f082bcc82292d66db2b64ea71f64b6e1c1", size = 471464, upload-time = "2026-05-06T13:37:06.98Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/e7/08/f1ba952f1c8ae5581c70fa9c6da89f247b83e3dd8c09c035d5d7931fc23d/pydantic_core-2.46.4-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:a396dcc17e5a0b164dbe026896245a4fa9ff402edca1dff0be3d53a517f74de4", size = 2113146 }, - { url = "https://files.pythonhosted.org/packages/56/c6/65f646c7ff09bd257f660434adb45c4dfcbbcebcc030562fecf6f5bf887d/pydantic_core-2.46.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:da4b951fe36dc7c3a1ccb4e3cd1747c3542b8c9ceede8fc86cae054e764485f5", size = 1949769 }, - { url = "https://files.pythonhosted.org/packages/64/ba/bfb1d928fd5b49e1258935ff104ae356e9fd89384a55bf9f847e9193ad40/pydantic_core-2.46.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bb63e0198ca18aad131c089b9204c23079c3afa95487e561f4c522d519e55aba", size = 1974958 }, - { url = "https://files.pythonhosted.org/packages/4e/74/76223bfb117b64af743c9b6670d1364516f5c0604f96b48f3272f6af6cc6/pydantic_core-2.46.4-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:f47286a97f0bc9b8859519809077b91b2cefe4ae47fcbf5e466a009c1c5d742b", size = 2042118 }, - { url = "https://files.pythonhosted.org/packages/cb/7b/848732968bc8f48f3187542f08358b9d842db564147b256669426ebb1652/pydantic_core-2.46.4-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:905a0ed8ea6f2d61c1738835f99b699348d7857379083e5fc497fa0c967a407c", size = 2222876 }, - { url = "https://files.pythonhosted.org/packages/b5/2f/e90b63ee2e14bd8d3db8f705a6d75d64e6ee1b7c2c8833747ce706e1e0ce/pydantic_core-2.46.4-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ea793e075b70290d89d8142074262885d3f7da19634845135751bd6344f73b50", size = 2286703 }, - { url = "https://files.pythonhosted.org/packages/ba/1e/acc4d70f88a0a277e4a1fa77ebb985ceabaf900430f875bf9338e11c9420/pydantic_core-2.46.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:395aebd9183f9d112f569aeb5b2214d1a10a33bec8456447f7fbdfa51d38d4cd", size = 2092042 }, - { url = "https://files.pythonhosted.org/packages/a9/da/0a422b57bf8504102bf3c4ccea9c41bab5a5cee6a54650acf8faf67f5a24/pydantic_core-2.46.4-cp310-cp310-manylinux_2_31_riscv64.whl", hash = "sha256:b078afbc25f3a1436c7a1d2cd3e322497ee99615ba97c563566fdf46aff1ee01", size = 2117231 }, - { url = "https://files.pythonhosted.org/packages/bd/2a/2ac13c3af305843e23c5078c53d135656b3f05a2fd78cb7bbbb12e97b473/pydantic_core-2.46.4-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:f747929cf940cddb5b3668a390056ddd5ba2e5010615ea2dcf4f9c4f3ab8791d", size = 2168388 }, - { url = "https://files.pythonhosted.org/packages/72/04/2beacf7e1607e93eefe4aed1b4709f079b905fb77530179d4f7c71745f22/pydantic_core-2.46.4-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:daa27d92c36f24388fe3ad306b174781c747627f134452e4f128ea00ce1fe8c4", size = 2184769 }, - { url = "https://files.pythonhosted.org/packages/9e/29/d2b9fd9f539133548eaf622c06a4ce176cb46ac59f32d0359c4abc0de047/pydantic_core-2.46.4-cp310-cp310-musllinux_1_1_armv7l.whl", hash = "sha256:19e51f073cd3df251856a8a4189fbdf1de4012c3ebacfb1884f94f1eb406079f", size = 2319312 }, - { url = "https://files.pythonhosted.org/packages/7c/af/0f7a5b85fec6075bea96e3ef9187de38fccced0de92c1e7feda8d5cc7bb9/pydantic_core-2.46.4-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:c1747f85cee84c26985853c6f3d9bd3e75da5212912443fa111c113b9c246f39", size = 2361817 }, - { url = "https://files.pythonhosted.org/packages/25/a4/73363fec545fd3ec025490bdda2743c56d0dd5b6266b1a53bbe9e4265375/pydantic_core-2.46.4-cp310-cp310-win32.whl", hash = "sha256:2f84c03c8607173d16b5a854ec68a2f9079ae03237a54fb506d13af47e1d018d", size = 1987085 }, - { url = "https://files.pythonhosted.org/packages/01/aa/62f082da2c91fac1c234bc9ee0066257ce83f0604abd72e4c9d5991f2d84/pydantic_core-2.46.4-cp310-cp310-win_amd64.whl", hash = "sha256:8358a950c8909158e3df31538a7e4edc2d7265a7c54b47f0864d9e5bae9dcebf", size = 2074311 }, - { url = "https://files.pythonhosted.org/packages/5c/fa/6d7708d2cfc1a832acb6aeb0cd16e801902df8a0f583bb3b4b527fde022e/pydantic_core-2.46.4-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:0e96592440881c74a213e5ad528e2b24d3d4f940de2766bed9010ab1d9e51594", size = 2111872 }, - { url = "https://files.pythonhosted.org/packages/ae/6f/aa064a3e74b5745afbdf250594f38e7ead05e2d651bcb35994b9417a0d4d/pydantic_core-2.46.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:e0d65b8c354be7fb5f720c3caa8bc940bc2d20ce749c8e06135f07f8ed95dd7c", size = 1948255 }, - { url = "https://files.pythonhosted.org/packages/43/3a/41114a9f7569b84b4d84e7a018c57c56347dac30c0d4a872946ec4e36c46/pydantic_core-2.46.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7bfb192b3f4b9e8a89b6277b6ce787564f62cfd272055f6e685726b111dc7826", size = 1972827 }, - { url = "https://files.pythonhosted.org/packages/ef/25/1ab42e8048fe551934d9884e8d64daa7e990ad386f310a15981aeb6a5b08/pydantic_core-2.46.4-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:9037063db01f09b09e237c282b6792bd4da634b5402c4e7f0c61effed7701a04", size = 2041051 }, - { url = "https://files.pythonhosted.org/packages/94/c2/1a934597ddf08da410385b3b7aae91956a5a76c635effef456074fad7e88/pydantic_core-2.46.4-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fc010ab034c8c7452522748bf937df58020d256ccae0874463d1f4d01758af8e", size = 2221314 }, - { url = "https://files.pythonhosted.org/packages/02/6d/9e8ad178c9c4df27ad3c8f25d1fe2a7ab0d2ba0559fad4aee5d3d1f16771/pydantic_core-2.46.4-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8c5dac79fa1614d1e06ca695109c6105923bd9c7d1d6c918d4e637b7e6b32fd3", size = 2285146 }, - { url = "https://files.pythonhosted.org/packages/80/50/540cd3aeefc041beb111125c4bff779831a2111fc6b15a9138cda277d32c/pydantic_core-2.46.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f9fa868638bf362d3d138ea55829cefb3d5f4b0d7f142234382a15e2485dbec4", size = 2089685 }, - { url = "https://files.pythonhosted.org/packages/6b/a4/b440ad35f05f6a38f89fa0f149accb3f0e02be94ca5e15f3c449a61b4bc9/pydantic_core-2.46.4-cp311-cp311-manylinux_2_31_riscv64.whl", hash = "sha256:17299feefe090f2caa5b8e37222bb5f663e4935a8bfa6931d4102e5df1a9f398", size = 2115420 }, - { url = "https://files.pythonhosted.org/packages/99/61/de4f55db8dfd57bfdfa9a12ec90fe1b57c4f41062f7ca86f08586b3e0ac0/pydantic_core-2.46.4-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:4c63ebc82684aa89d9a3bcbd13d515b3be44250dc68dd3bd81526c1cb31286c3", size = 2165122 }, - { url = "https://files.pythonhosted.org/packages/f7/52/7c529d7bdb2d1068bd52f51fe32572c8301f9a4febf1948f10639f1436f5/pydantic_core-2.46.4-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:aaa2a54443eff1950ba5ddc6b6ccda0d9c84a364276a62f969bdf2a390650848", size = 2182573 }, - { url = "https://files.pythonhosted.org/packages/37/b3/7c40325848ba78247f2812dcf9c7274e38cd801820ca6dd9fe63bcfb0eb4/pydantic_core-2.46.4-cp311-cp311-musllinux_1_1_armv7l.whl", hash = "sha256:18e5ceec2ab67e6d5f1a9085e5a24c9c4e2ac4545730bfe668680bca05e555f3", size = 2317139 }, - { url = "https://files.pythonhosted.org/packages/d9/37/f913f81a657c865b75da6c0dbed79876073c2a43b5bd9edbe8da785e4d49/pydantic_core-2.46.4-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:a0f62d0a58f4e7da165457e995725421e0064f2255d8eccebc49f41bbc23b109", size = 2360433 }, - { url = "https://files.pythonhosted.org/packages/c4/67/6acaa1be2567f9256b056d8477158cac7240813956ce86e49deae8e173b4/pydantic_core-2.46.4-cp311-cp311-win32.whl", hash = "sha256:041bde0a48fd37cf71cab1c9d56d3e8625a3793fef1f7dd232b3ff37e978ecda", size = 1985513 }, - { url = "https://files.pythonhosted.org/packages/aa/e6/c505f83dfeda9a2e5c995cfd872949e4d05e12f7feb3dca72f633daefa94/pydantic_core-2.46.4-cp311-cp311-win_amd64.whl", hash = "sha256:6f2eeda33a839975441c86a4119e1383c50b47faf0cbb5176985565c6bb02c33", size = 2071114 }, - { url = "https://files.pythonhosted.org/packages/0f/da/7a263a96d965d9d0df5e8de8a475f33495451117035b09acb110288c381f/pydantic_core-2.46.4-cp311-cp311-win_arm64.whl", hash = "sha256:14f4c5d6db102bd796a627bbb3a17b4cf4574b9ae861d8b7c9a9661c6dd3362d", size = 2044298 }, - { url = "https://files.pythonhosted.org/packages/ce/8c/af022f0af448d7747c5154288d46b5f2bc5f17366eaa0e23e9aa04d59f3b/pydantic_core-2.46.4-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:3245406455a5d98187ec35530fd772b1d799b26667980872c8d4614991e2c4a2", size = 2106158 }, - { url = "https://files.pythonhosted.org/packages/19/95/6195171e385007300f0f5574592e467c568becce2d937a0b6804f218bc49/pydantic_core-2.46.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:962ccbab7b642487b1d8b7df90ef677e03134cf1fd8880bf698649b22a69371f", size = 1951724 }, - { url = "https://files.pythonhosted.org/packages/8e/bc/f47d1ff9cbb1620e1b5b697eef06010035735f07820180e74178226b27b3/pydantic_core-2.46.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8233f2947cf85404441fd7e0085f53b10c93e0ee78611099b5c7237e36aacbf7", size = 1975742 }, - { url = "https://files.pythonhosted.org/packages/5b/11/9b9a5b0306345664a2da6410877af6e8082481b5884b3ddd78d47c6013ce/pydantic_core-2.46.4-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:3a233125ac121aa3ffba9a2b59edfc4a985a76092dc8279586ab4b71390875e7", size = 2052418 }, - { url = "https://files.pythonhosted.org/packages/f1/b7/a65fec226f5d78fc39f4a13c4cc0c768c22b113438f60c14adc9d2865038/pydantic_core-2.46.4-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5b712b53160b79a5850310b912a5ef8e57e56947c8ad690c227f5c9d7e561712", size = 2232274 }, - { url = "https://files.pythonhosted.org/packages/68/f0/92039db98b907ef49269a8271f67db9cb78ae2fc68062ef7e4e77adb5f61/pydantic_core-2.46.4-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9401557acd873c3a7f3eb9383edef8ac4968f9510e340f4808d427e75667e7b4", size = 2309940 }, - { url = "https://files.pythonhosted.org/packages/5f/97/2aab507d3d00ca626e8e57c1eac6a79e4e5fbcc63eb99733ff55d1717f65/pydantic_core-2.46.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:926c9541b14b12b1681dca8a0b75feb510b06c6341b70a8e500c2fdcff837cce", size = 2094516 }, - { url = "https://files.pythonhosted.org/packages/22/37/a8aca44d40d737dde2bc05b3c6c07dff0de07ce6f82e9f3167aeaf4d5dea/pydantic_core-2.46.4-cp312-cp312-manylinux_2_31_riscv64.whl", hash = "sha256:56cb4851bcaf3d117eddcef4fe66afd750a50274b0da8e22be256d10e5611987", size = 2136854 }, - { url = "https://files.pythonhosted.org/packages/24/99/fcef1b79238c06a8cbec70819ac722ba76e02bc8ada9b0fd66eba40da01b/pydantic_core-2.46.4-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:c68fcd102d71ea85c5b2dfac3f4f8476eff42a9e078fd5faefff6d145063536b", size = 2180306 }, - { url = "https://files.pythonhosted.org/packages/ae/6c/fc44000918855b42779d007ae63b0532794739027b2f417321cddbc44f6a/pydantic_core-2.46.4-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:b2f69dec1725e79a012d920df1707de5caf7ed5e08f3be4435e25803efc47458", size = 2190044 }, - { url = "https://files.pythonhosted.org/packages/6b/65/d9cadc9f1920d7a127ad2edba16c1db7916e59719285cd6c94600b0080ba/pydantic_core-2.46.4-cp312-cp312-musllinux_1_1_armv7l.whl", hash = "sha256:8d0820e8192167f80d88d64038e609c31452eeca865b4e1d9950a27a4609b00b", size = 2329133 }, - { url = "https://files.pythonhosted.org/packages/d0/cf/c873d91679f3a30bcf5e7ac280ce5573483e72295307685120d0d5ad3416/pydantic_core-2.46.4-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:fbdb89b3e1c94a30cc5edfce477c6e6a5dc4d8f84665b455c27582f211a1c72c", size = 2374464 }, - { url = "https://files.pythonhosted.org/packages/47/bd/6f2fc8188f31bf10590f1e98e7b306336161fac930a8c514cd7bd828c7dc/pydantic_core-2.46.4-cp312-cp312-win32.whl", hash = "sha256:9aa768456404a8bf48a4406685ac2bec8e72b62c69313734fa3b73cf33b3a894", size = 1974823 }, - { url = "https://files.pythonhosted.org/packages/40/8c/985c1d41ea1107c2534abd9870e4ed5c8e7669b5c308297835c001e7a1c4/pydantic_core-2.46.4-cp312-cp312-win_amd64.whl", hash = "sha256:e9c26f834c65f5752f3f06cb08cb86a913ceb7274d0db6e267808a708b46bc89", size = 2072919 }, - { url = "https://files.pythonhosted.org/packages/c4/ba/f463d006e0c47373ca7ec5e1a261c59dc01ef4d62b2657af925fb0deee3a/pydantic_core-2.46.4-cp312-cp312-win_arm64.whl", hash = "sha256:4fc73cb559bdb54b1134a706a2802a4cddd27a0633f5abb7e53056268751ac6a", size = 2027604 }, - { url = "https://files.pythonhosted.org/packages/51/a2/5d30b469c5267a17b39dec53208222f76a8d351dfac4af661888c5aee77d/pydantic_core-2.46.4-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:5d5902252db0d3cedf8d4a1bc68f70eeb430f7e4c7104c8c476753519b423008", size = 2106306 }, - { url = "https://files.pythonhosted.org/packages/c1/81/4fa520eaffa8bd7d1525e644cd6d39e7d60b1592bc5b516693c7340b50f1/pydantic_core-2.46.4-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:c94f0688e7b8d0a67abf40e57a7eaaecd17cc9586706a31b76c031f63df052b4", size = 1951906 }, - { url = "https://files.pythonhosted.org/packages/03/d5/fd02da45b659668b05923b17ba3a0100a0a3d5541e3bd8fcc4ecb711309e/pydantic_core-2.46.4-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f027324c56cd5406ca49c124b0db10e56c69064fec039acc571c29020cc87c76", size = 1976802 }, - { url = "https://files.pythonhosted.org/packages/21/f2/95727e1368be3d3ed485eaab7adbd7dda408f33f7a36e8b48e0144002b91/pydantic_core-2.46.4-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e739fee756ba1010f8bcccb534252e85a35fe45ae92c295a06059ce58b74ccd3", size = 2052446 }, - { url = "https://files.pythonhosted.org/packages/9c/86/5d99feea3f77c7234b8718075b23db11532773c1a0dbd9b9490215dc2eeb/pydantic_core-2.46.4-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9d56801be94b86a9da183e5f3766e6310752b99ff647e38b09a9500d88e46e76", size = 2232757 }, - { url = "https://files.pythonhosted.org/packages/d2/3a/508ac615935ef7588cf6d9e9b91309fdc2da751af865e02a9098de88258c/pydantic_core-2.46.4-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2412e734dcb48da14d4e4006b82b46b74f2518b8a26ee7e58c6844a6cd6d03c4", size = 2309275 }, - { url = "https://files.pythonhosted.org/packages/07/f8/41db9de19d7987d6b04715a02b3b40aea467000275d9d758ffaa31af7d50/pydantic_core-2.46.4-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9551187363ffc0de2a00b2e47c25aeaeb1020b69b668762966df15fc5659dd5a", size = 2094467 }, - { url = "https://files.pythonhosted.org/packages/2c/e2/f35033184cb11d0052daf4416e8e10a502ea2ac006fc4f459aee872727d1/pydantic_core-2.46.4-cp313-cp313-manylinux_2_31_riscv64.whl", hash = "sha256:0186750b482eefa11d7f435892b09c5c606193ef3375bcf94aa00ae6bfb66262", size = 2134417 }, - { url = "https://files.pythonhosted.org/packages/7e/7b/6ceeb1cc90e193862f444ebe373d8fdf613f0a82572dde03fb10734c6c71/pydantic_core-2.46.4-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:5855698a4856556d86e8e6cd8434bc3ac0314ee8e12089ae0e143f64c6256e4e", size = 2179782 }, - { url = "https://files.pythonhosted.org/packages/5a/f2/c8d7773ede6af08036423a00ae0ceffce266c3c52a096c435d68c896083f/pydantic_core-2.46.4-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:cbaf13819775b7f769bf4a1f066cb6df7a28d4480081a589828ef190226881cd", size = 2188782 }, - { url = "https://files.pythonhosted.org/packages/59/31/0c864784e31f09f05cdd87606f08923b9c9e7f6e51dd27f20f62f975ce9f/pydantic_core-2.46.4-cp313-cp313-musllinux_1_1_armv7l.whl", hash = "sha256:633147d34cf4550417f12e2b1a0383973bdf5cdfde212cb09e9a581cf10820be", size = 2328334 }, - { url = "https://files.pythonhosted.org/packages/c2/eb/4f6c8a41efa30baa755590f4141abf3a8c370fab610915733e74134a7270/pydantic_core-2.46.4-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:82cf5301172168103724d49a1444d3378cb20cdee30b116a1bd6031236298a5d", size = 2372986 }, - { url = "https://files.pythonhosted.org/packages/5b/24/b375a480d53113860c299764bfe9f349a3dc9108b3adc0d7f0d786492ebf/pydantic_core-2.46.4-cp313-cp313-win32.whl", hash = "sha256:9fa8ae11da9e2b3126c6426f147e0fba88d96d65921799bb30c6abd1cb2c97fb", size = 1973693 }, - { url = "https://files.pythonhosted.org/packages/7e/e8/cff247591966f2d22ec8c003cd7587e27b7ba7b81ab2fb888e3ab75dc285/pydantic_core-2.46.4-cp313-cp313-win_amd64.whl", hash = "sha256:6b3ace8194b0e5204818c92802dcdca7fc6d88aabbb799d7c795540d9cd6d292", size = 2071819 }, - { url = "https://files.pythonhosted.org/packages/c6/1a/f4aee670d5670e9e148e0c82c7db98d780be566c6e6a97ee8035528ca0b3/pydantic_core-2.46.4-cp313-cp313-win_arm64.whl", hash = "sha256:184c081504d17f1c1066e430e117142b2c77d9448a97f7b65c6ac9fd9aee238d", size = 2027411 }, - { url = "https://files.pythonhosted.org/packages/ee/a4/73995fd4ebbb46ba0ee51e6fa049b8f02c40daebb762208feda8a6b7894d/pydantic_core-2.46.4-graalpy311-graalpy242_311_native-macosx_10_12_x86_64.whl", hash = "sha256:14d4edf427bdcf950a8a02d7cb44a08614388dd6e1bdcbf4f67504fa7887da9c", size = 2111589 }, - { url = "https://files.pythonhosted.org/packages/fb/7f/f37d3a5e8bfcc2e403f5c57a730f2d815693fb42119e8ea48b3789335af1/pydantic_core-2.46.4-graalpy311-graalpy242_311_native-macosx_11_0_arm64.whl", hash = "sha256:0ce40cd7b21210e99342afafbd4d0f76d784eb5b1d60f3bdc566be4983c6c73b", size = 1944552 }, - { url = "https://files.pythonhosted.org/packages/15/3c/d7eb777b3ff43e8433a4efb39a17aa8fd98a4ee8561a24a67ef5db07b2d6/pydantic_core-2.46.4-graalpy311-graalpy242_311_native-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:90884113d8b48f760e9587002789ddd741e76ab9f89518cd1e43b1f1a52ec44b", size = 1982984 }, - { url = "https://files.pythonhosted.org/packages/63/87/70b9f40170a81afd55ca26c9b2acb25c20d64bcfbf888fafecb3ba077d4c/pydantic_core-2.46.4-graalpy311-graalpy242_311_native-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:66ce7632c22d837c95301830e111ad0128a32b8207533b60896a96c4915192ea", size = 2138417 }, - { url = "https://files.pythonhosted.org/packages/9d/1d/8987ad40f65ae1432753072f214fb5c74fe47ffbd0698bb9cbbb585664f8/pydantic_core-2.46.4-graalpy312-graalpy250_312_native-macosx_10_12_x86_64.whl", hash = "sha256:1d8ba486450b14f3b1d63bc521d410ec7565e52f887b9fb671791886436a42f7", size = 2095527 }, - { url = "https://files.pythonhosted.org/packages/64/d3/84c282a7eee1d3ac4c0377546ef5a1ea436ce26840d9ac3b7ed54a377507/pydantic_core-2.46.4-graalpy312-graalpy250_312_native-macosx_11_0_arm64.whl", hash = "sha256:3009f12e4e90b7f88b4f9adb1b0c4a3d58fe7820f3238c190047209d148026df", size = 1936024 }, - { url = "https://files.pythonhosted.org/packages/d7/ca/eac61596cdeb4d7e174d3dc0bd8a6238f14f75f97a24e7b7db4c7e7340a0/pydantic_core-2.46.4-graalpy312-graalpy250_312_native-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ad785e92e6dc634c21555edc8bd6b64957ab844541bcb96a1366c202951ae526", size = 1990696 }, - { url = "https://files.pythonhosted.org/packages/fa/c3/7c8b240552251faf6b3a957db200fcfbbcec36763c050428b601e0c9b83b/pydantic_core-2.46.4-graalpy312-graalpy250_312_native-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:00c603d540afdd6b80eb39f078f33ebd46211f02f33e34a32d9f053bba711de0", size = 2147590 }, - { url = "https://files.pythonhosted.org/packages/11/cb/428de0385b6c8d44b716feba566abfacfbd23ee3c4439faa789a1456242f/pydantic_core-2.46.4-pp311-pypy311_pp73-macosx_10_12_x86_64.whl", hash = "sha256:0c563b08bca408dc7f65f700633d8442fffb2421fc47b8101377e9fd65051ff0", size = 2112782 }, - { url = "https://files.pythonhosted.org/packages/0b/b5/6a17bdadd0fc1f170adfd05a20d37c832f52b117b4d9131da1f41bb097ce/pydantic_core-2.46.4-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:db06ffe51636ffe9ca531fe9023dd64bdd794be8754cb5df57c5498ae5b518a7", size = 1952146 }, - { url = "https://files.pythonhosted.org/packages/2a/dc/03734d80e362cd43ef65428e9de77c730ce7f2f11c60d2b1e1b39f0fbf99/pydantic_core-2.46.4-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:133878133d271ade3d41d1bfb2a45ec38dbdbda40bc065921c6b04e4630127e2", size = 2134492 }, - { url = "https://files.pythonhosted.org/packages/de/df/5e5ffc085ed07cc22d298134d3d911c63e91f6a0eb91fe646750a3209910/pydantic_core-2.46.4-pp311-pypy311_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:9bc519fbf2b7578398853d815009ae5e4d4603d12f4e3f91da8c06852d3da3e9", size = 2156604 }, - { url = "https://files.pythonhosted.org/packages/81/44/6e112a4253e56f5705467cbab7ab5e91ee7398ba3d56d358635958893d3e/pydantic_core-2.46.4-pp311-pypy311_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:c7a7bd4e39e8e4c12c39cd480356842b6a8a06e41b23a55a5e3e191718838ddf", size = 2183828 }, - { url = "https://files.pythonhosted.org/packages/ac/ad/5565071e937d8e752842ac241463944c9eb14c87e2d269f2658a5bd05e98/pydantic_core-2.46.4-pp311-pypy311_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:d396ec2b979760aaf3218e76c24e65bd0aca24983298653b3a9d7a45f9e47b30", size = 2310000 }, - { url = "https://files.pythonhosted.org/packages/4f/c3/66883a5cec183e7fba4d024b4cbbe61851a63750ef606b0afecc46d1f2bf/pydantic_core-2.46.4-pp311-pypy311_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:86e1a4418c6cd97d60c95c71164158eaf7324fae7b0923264016baa993eba6fc", size = 2361286 }, - { url = "https://files.pythonhosted.org/packages/4b/2d/69abac8f838090bbecd5df894befb2c2619e7996a98ddb949db9f3b93225/pydantic_core-2.46.4-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:d51026d73fcfd93610abc7b27789c26b313920fcfb20e27462d74a7f8b06e983", size = 2193071 }, + { url = "https://files.pythonhosted.org/packages/e7/08/f1ba952f1c8ae5581c70fa9c6da89f247b83e3dd8c09c035d5d7931fc23d/pydantic_core-2.46.4-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:a396dcc17e5a0b164dbe026896245a4fa9ff402edca1dff0be3d53a517f74de4", size = 2113146, upload-time = "2026-05-06T13:37:36.537Z" }, + { url = "https://files.pythonhosted.org/packages/56/c6/65f646c7ff09bd257f660434adb45c4dfcbbcebcc030562fecf6f5bf887d/pydantic_core-2.46.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:da4b951fe36dc7c3a1ccb4e3cd1747c3542b8c9ceede8fc86cae054e764485f5", size = 1949769, upload-time = "2026-05-06T13:37:46.365Z" }, + { url = "https://files.pythonhosted.org/packages/64/ba/bfb1d928fd5b49e1258935ff104ae356e9fd89384a55bf9f847e9193ad40/pydantic_core-2.46.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bb63e0198ca18aad131c089b9204c23079c3afa95487e561f4c522d519e55aba", size = 1974958, upload-time = "2026-05-06T13:37:28.611Z" }, + { url = "https://files.pythonhosted.org/packages/4e/74/76223bfb117b64af743c9b6670d1364516f5c0604f96b48f3272f6af6cc6/pydantic_core-2.46.4-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:f47286a97f0bc9b8859519809077b91b2cefe4ae47fcbf5e466a009c1c5d742b", size = 2042118, upload-time = "2026-05-06T13:36:55.216Z" }, + { url = "https://files.pythonhosted.org/packages/cb/7b/848732968bc8f48f3187542f08358b9d842db564147b256669426ebb1652/pydantic_core-2.46.4-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:905a0ed8ea6f2d61c1738835f99b699348d7857379083e5fc497fa0c967a407c", size = 2222876, upload-time = "2026-05-06T13:38:25.455Z" }, + { url = "https://files.pythonhosted.org/packages/b5/2f/e90b63ee2e14bd8d3db8f705a6d75d64e6ee1b7c2c8833747ce706e1e0ce/pydantic_core-2.46.4-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ea793e075b70290d89d8142074262885d3f7da19634845135751bd6344f73b50", size = 2286703, upload-time = "2026-05-06T13:37:53.304Z" }, + { url = "https://files.pythonhosted.org/packages/ba/1e/acc4d70f88a0a277e4a1fa77ebb985ceabaf900430f875bf9338e11c9420/pydantic_core-2.46.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:395aebd9183f9d112f569aeb5b2214d1a10a33bec8456447f7fbdfa51d38d4cd", size = 2092042, upload-time = "2026-05-06T13:38:46.981Z" }, + { url = "https://files.pythonhosted.org/packages/a9/da/0a422b57bf8504102bf3c4ccea9c41bab5a5cee6a54650acf8faf67f5a24/pydantic_core-2.46.4-cp310-cp310-manylinux_2_31_riscv64.whl", hash = "sha256:b078afbc25f3a1436c7a1d2cd3e322497ee99615ba97c563566fdf46aff1ee01", size = 2117231, upload-time = "2026-05-06T13:39:23.146Z" }, + { url = "https://files.pythonhosted.org/packages/bd/2a/2ac13c3af305843e23c5078c53d135656b3f05a2fd78cb7bbbb12e97b473/pydantic_core-2.46.4-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:f747929cf940cddb5b3668a390056ddd5ba2e5010615ea2dcf4f9c4f3ab8791d", size = 2168388, upload-time = "2026-05-06T13:40:08.06Z" }, + { url = "https://files.pythonhosted.org/packages/72/04/2beacf7e1607e93eefe4aed1b4709f079b905fb77530179d4f7c71745f22/pydantic_core-2.46.4-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:daa27d92c36f24388fe3ad306b174781c747627f134452e4f128ea00ce1fe8c4", size = 2184769, upload-time = "2026-05-06T13:38:13.901Z" }, + { url = "https://files.pythonhosted.org/packages/9e/29/d2b9fd9f539133548eaf622c06a4ce176cb46ac59f32d0359c4abc0de047/pydantic_core-2.46.4-cp310-cp310-musllinux_1_1_armv7l.whl", hash = "sha256:19e51f073cd3df251856a8a4189fbdf1de4012c3ebacfb1884f94f1eb406079f", size = 2319312, upload-time = "2026-05-06T13:39:08.24Z" }, + { url = "https://files.pythonhosted.org/packages/7c/af/0f7a5b85fec6075bea96e3ef9187de38fccced0de92c1e7feda8d5cc7bb9/pydantic_core-2.46.4-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:c1747f85cee84c26985853c6f3d9bd3e75da5212912443fa111c113b9c246f39", size = 2361817, upload-time = "2026-05-06T13:38:43.2Z" }, + { url = "https://files.pythonhosted.org/packages/25/a4/73363fec545fd3ec025490bdda2743c56d0dd5b6266b1a53bbe9e4265375/pydantic_core-2.46.4-cp310-cp310-win32.whl", hash = "sha256:2f84c03c8607173d16b5a854ec68a2f9079ae03237a54fb506d13af47e1d018d", size = 1987085, upload-time = "2026-05-06T13:39:25.497Z" }, + { url = "https://files.pythonhosted.org/packages/01/aa/62f082da2c91fac1c234bc9ee0066257ce83f0604abd72e4c9d5991f2d84/pydantic_core-2.46.4-cp310-cp310-win_amd64.whl", hash = "sha256:8358a950c8909158e3df31538a7e4edc2d7265a7c54b47f0864d9e5bae9dcebf", size = 2074311, upload-time = "2026-05-06T13:39:59.922Z" }, + { url = "https://files.pythonhosted.org/packages/5c/fa/6d7708d2cfc1a832acb6aeb0cd16e801902df8a0f583bb3b4b527fde022e/pydantic_core-2.46.4-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:0e96592440881c74a213e5ad528e2b24d3d4f940de2766bed9010ab1d9e51594", size = 2111872, upload-time = "2026-05-06T13:40:27.596Z" }, + { url = "https://files.pythonhosted.org/packages/ae/6f/aa064a3e74b5745afbdf250594f38e7ead05e2d651bcb35994b9417a0d4d/pydantic_core-2.46.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:e0d65b8c354be7fb5f720c3caa8bc940bc2d20ce749c8e06135f07f8ed95dd7c", size = 1948255, upload-time = "2026-05-06T13:39:12.574Z" }, + { url = "https://files.pythonhosted.org/packages/43/3a/41114a9f7569b84b4d84e7a018c57c56347dac30c0d4a872946ec4e36c46/pydantic_core-2.46.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7bfb192b3f4b9e8a89b6277b6ce787564f62cfd272055f6e685726b111dc7826", size = 1972827, upload-time = "2026-05-06T13:38:19.841Z" }, + { url = "https://files.pythonhosted.org/packages/ef/25/1ab42e8048fe551934d9884e8d64daa7e990ad386f310a15981aeb6a5b08/pydantic_core-2.46.4-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:9037063db01f09b09e237c282b6792bd4da634b5402c4e7f0c61effed7701a04", size = 2041051, upload-time = "2026-05-06T13:38:10.447Z" }, + { url = "https://files.pythonhosted.org/packages/94/c2/1a934597ddf08da410385b3b7aae91956a5a76c635effef456074fad7e88/pydantic_core-2.46.4-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fc010ab034c8c7452522748bf937df58020d256ccae0874463d1f4d01758af8e", size = 2221314, upload-time = "2026-05-06T13:40:13.089Z" }, + { url = "https://files.pythonhosted.org/packages/02/6d/9e8ad178c9c4df27ad3c8f25d1fe2a7ab0d2ba0559fad4aee5d3d1f16771/pydantic_core-2.46.4-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8c5dac79fa1614d1e06ca695109c6105923bd9c7d1d6c918d4e637b7e6b32fd3", size = 2285146, upload-time = "2026-05-06T13:38:59.224Z" }, + { url = "https://files.pythonhosted.org/packages/80/50/540cd3aeefc041beb111125c4bff779831a2111fc6b15a9138cda277d32c/pydantic_core-2.46.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f9fa868638bf362d3d138ea55829cefb3d5f4b0d7f142234382a15e2485dbec4", size = 2089685, upload-time = "2026-05-06T13:38:17.762Z" }, + { url = "https://files.pythonhosted.org/packages/6b/a4/b440ad35f05f6a38f89fa0f149accb3f0e02be94ca5e15f3c449a61b4bc9/pydantic_core-2.46.4-cp311-cp311-manylinux_2_31_riscv64.whl", hash = "sha256:17299feefe090f2caa5b8e37222bb5f663e4935a8bfa6931d4102e5df1a9f398", size = 2115420, upload-time = "2026-05-06T13:37:58.195Z" }, + { url = "https://files.pythonhosted.org/packages/99/61/de4f55db8dfd57bfdfa9a12ec90fe1b57c4f41062f7ca86f08586b3e0ac0/pydantic_core-2.46.4-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:4c63ebc82684aa89d9a3bcbd13d515b3be44250dc68dd3bd81526c1cb31286c3", size = 2165122, upload-time = "2026-05-06T13:37:01.167Z" }, + { url = "https://files.pythonhosted.org/packages/f7/52/7c529d7bdb2d1068bd52f51fe32572c8301f9a4febf1948f10639f1436f5/pydantic_core-2.46.4-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:aaa2a54443eff1950ba5ddc6b6ccda0d9c84a364276a62f969bdf2a390650848", size = 2182573, upload-time = "2026-05-06T13:38:45.04Z" }, + { url = "https://files.pythonhosted.org/packages/37/b3/7c40325848ba78247f2812dcf9c7274e38cd801820ca6dd9fe63bcfb0eb4/pydantic_core-2.46.4-cp311-cp311-musllinux_1_1_armv7l.whl", hash = "sha256:18e5ceec2ab67e6d5f1a9085e5a24c9c4e2ac4545730bfe668680bca05e555f3", size = 2317139, upload-time = "2026-05-06T13:37:15.539Z" }, + { url = "https://files.pythonhosted.org/packages/d9/37/f913f81a657c865b75da6c0dbed79876073c2a43b5bd9edbe8da785e4d49/pydantic_core-2.46.4-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:a0f62d0a58f4e7da165457e995725421e0064f2255d8eccebc49f41bbc23b109", size = 2360433, upload-time = "2026-05-06T13:37:30.099Z" }, + { url = "https://files.pythonhosted.org/packages/c4/67/6acaa1be2567f9256b056d8477158cac7240813956ce86e49deae8e173b4/pydantic_core-2.46.4-cp311-cp311-win32.whl", hash = "sha256:041bde0a48fd37cf71cab1c9d56d3e8625a3793fef1f7dd232b3ff37e978ecda", size = 1985513, upload-time = "2026-05-06T13:38:15.669Z" }, + { url = "https://files.pythonhosted.org/packages/aa/e6/c505f83dfeda9a2e5c995cfd872949e4d05e12f7feb3dca72f633daefa94/pydantic_core-2.46.4-cp311-cp311-win_amd64.whl", hash = "sha256:6f2eeda33a839975441c86a4119e1383c50b47faf0cbb5176985565c6bb02c33", size = 2071114, upload-time = "2026-05-06T13:40:35.416Z" }, + { url = "https://files.pythonhosted.org/packages/0f/da/7a263a96d965d9d0df5e8de8a475f33495451117035b09acb110288c381f/pydantic_core-2.46.4-cp311-cp311-win_arm64.whl", hash = "sha256:14f4c5d6db102bd796a627bbb3a17b4cf4574b9ae861d8b7c9a9661c6dd3362d", size = 2044298, upload-time = "2026-05-06T13:38:29.754Z" }, + { url = "https://files.pythonhosted.org/packages/ce/8c/af022f0af448d7747c5154288d46b5f2bc5f17366eaa0e23e9aa04d59f3b/pydantic_core-2.46.4-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:3245406455a5d98187ec35530fd772b1d799b26667980872c8d4614991e2c4a2", size = 2106158, upload-time = "2026-05-06T13:38:57.215Z" }, + { url = "https://files.pythonhosted.org/packages/19/95/6195171e385007300f0f5574592e467c568becce2d937a0b6804f218bc49/pydantic_core-2.46.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:962ccbab7b642487b1d8b7df90ef677e03134cf1fd8880bf698649b22a69371f", size = 1951724, upload-time = "2026-05-06T13:37:02.697Z" }, + { url = "https://files.pythonhosted.org/packages/8e/bc/f47d1ff9cbb1620e1b5b697eef06010035735f07820180e74178226b27b3/pydantic_core-2.46.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8233f2947cf85404441fd7e0085f53b10c93e0ee78611099b5c7237e36aacbf7", size = 1975742, upload-time = "2026-05-06T13:37:09.448Z" }, + { url = "https://files.pythonhosted.org/packages/5b/11/9b9a5b0306345664a2da6410877af6e8082481b5884b3ddd78d47c6013ce/pydantic_core-2.46.4-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:3a233125ac121aa3ffba9a2b59edfc4a985a76092dc8279586ab4b71390875e7", size = 2052418, upload-time = "2026-05-06T13:37:38.234Z" }, + { url = "https://files.pythonhosted.org/packages/f1/b7/a65fec226f5d78fc39f4a13c4cc0c768c22b113438f60c14adc9d2865038/pydantic_core-2.46.4-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5b712b53160b79a5850310b912a5ef8e57e56947c8ad690c227f5c9d7e561712", size = 2232274, upload-time = "2026-05-06T13:38:27.753Z" }, + { url = "https://files.pythonhosted.org/packages/68/f0/92039db98b907ef49269a8271f67db9cb78ae2fc68062ef7e4e77adb5f61/pydantic_core-2.46.4-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9401557acd873c3a7f3eb9383edef8ac4968f9510e340f4808d427e75667e7b4", size = 2309940, upload-time = "2026-05-06T13:38:05.353Z" }, + { url = "https://files.pythonhosted.org/packages/5f/97/2aab507d3d00ca626e8e57c1eac6a79e4e5fbcc63eb99733ff55d1717f65/pydantic_core-2.46.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:926c9541b14b12b1681dca8a0b75feb510b06c6341b70a8e500c2fdcff837cce", size = 2094516, upload-time = "2026-05-06T13:39:10.577Z" }, + { url = "https://files.pythonhosted.org/packages/22/37/a8aca44d40d737dde2bc05b3c6c07dff0de07ce6f82e9f3167aeaf4d5dea/pydantic_core-2.46.4-cp312-cp312-manylinux_2_31_riscv64.whl", hash = "sha256:56cb4851bcaf3d117eddcef4fe66afd750a50274b0da8e22be256d10e5611987", size = 2136854, upload-time = "2026-05-06T13:40:22.59Z" }, + { url = "https://files.pythonhosted.org/packages/24/99/fcef1b79238c06a8cbec70819ac722ba76e02bc8ada9b0fd66eba40da01b/pydantic_core-2.46.4-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:c68fcd102d71ea85c5b2dfac3f4f8476eff42a9e078fd5faefff6d145063536b", size = 2180306, upload-time = "2026-05-06T13:40:10.666Z" }, + { url = "https://files.pythonhosted.org/packages/ae/6c/fc44000918855b42779d007ae63b0532794739027b2f417321cddbc44f6a/pydantic_core-2.46.4-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:b2f69dec1725e79a012d920df1707de5caf7ed5e08f3be4435e25803efc47458", size = 2190044, upload-time = "2026-05-06T13:40:43.231Z" }, + { url = "https://files.pythonhosted.org/packages/6b/65/d9cadc9f1920d7a127ad2edba16c1db7916e59719285cd6c94600b0080ba/pydantic_core-2.46.4-cp312-cp312-musllinux_1_1_armv7l.whl", hash = "sha256:8d0820e8192167f80d88d64038e609c31452eeca865b4e1d9950a27a4609b00b", size = 2329133, upload-time = "2026-05-06T13:39:57.365Z" }, + { url = "https://files.pythonhosted.org/packages/d0/cf/c873d91679f3a30bcf5e7ac280ce5573483e72295307685120d0d5ad3416/pydantic_core-2.46.4-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:fbdb89b3e1c94a30cc5edfce477c6e6a5dc4d8f84665b455c27582f211a1c72c", size = 2374464, upload-time = "2026-05-06T13:38:06.976Z" }, + { url = "https://files.pythonhosted.org/packages/47/bd/6f2fc8188f31bf10590f1e98e7b306336161fac930a8c514cd7bd828c7dc/pydantic_core-2.46.4-cp312-cp312-win32.whl", hash = "sha256:9aa768456404a8bf48a4406685ac2bec8e72b62c69313734fa3b73cf33b3a894", size = 1974823, upload-time = "2026-05-06T13:40:47.985Z" }, + { url = "https://files.pythonhosted.org/packages/40/8c/985c1d41ea1107c2534abd9870e4ed5c8e7669b5c308297835c001e7a1c4/pydantic_core-2.46.4-cp312-cp312-win_amd64.whl", hash = "sha256:e9c26f834c65f5752f3f06cb08cb86a913ceb7274d0db6e267808a708b46bc89", size = 2072919, upload-time = "2026-05-06T13:39:21.153Z" }, + { url = "https://files.pythonhosted.org/packages/c4/ba/f463d006e0c47373ca7ec5e1a261c59dc01ef4d62b2657af925fb0deee3a/pydantic_core-2.46.4-cp312-cp312-win_arm64.whl", hash = "sha256:4fc73cb559bdb54b1134a706a2802a4cddd27a0633f5abb7e53056268751ac6a", size = 2027604, upload-time = "2026-05-06T13:39:03.753Z" }, + { url = "https://files.pythonhosted.org/packages/51/a2/5d30b469c5267a17b39dec53208222f76a8d351dfac4af661888c5aee77d/pydantic_core-2.46.4-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:5d5902252db0d3cedf8d4a1bc68f70eeb430f7e4c7104c8c476753519b423008", size = 2106306, upload-time = "2026-05-06T13:37:48.029Z" }, + { url = "https://files.pythonhosted.org/packages/c1/81/4fa520eaffa8bd7d1525e644cd6d39e7d60b1592bc5b516693c7340b50f1/pydantic_core-2.46.4-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:c94f0688e7b8d0a67abf40e57a7eaaecd17cc9586706a31b76c031f63df052b4", size = 1951906, upload-time = "2026-05-06T13:37:17.012Z" }, + { url = "https://files.pythonhosted.org/packages/03/d5/fd02da45b659668b05923b17ba3a0100a0a3d5541e3bd8fcc4ecb711309e/pydantic_core-2.46.4-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f027324c56cd5406ca49c124b0db10e56c69064fec039acc571c29020cc87c76", size = 1976802, upload-time = "2026-05-06T13:37:35.113Z" }, + { url = "https://files.pythonhosted.org/packages/21/f2/95727e1368be3d3ed485eaab7adbd7dda408f33f7a36e8b48e0144002b91/pydantic_core-2.46.4-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e739fee756ba1010f8bcccb534252e85a35fe45ae92c295a06059ce58b74ccd3", size = 2052446, upload-time = "2026-05-06T13:37:12.313Z" }, + { url = "https://files.pythonhosted.org/packages/9c/86/5d99feea3f77c7234b8718075b23db11532773c1a0dbd9b9490215dc2eeb/pydantic_core-2.46.4-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9d56801be94b86a9da183e5f3766e6310752b99ff647e38b09a9500d88e46e76", size = 2232757, upload-time = "2026-05-06T13:39:01.149Z" }, + { url = "https://files.pythonhosted.org/packages/d2/3a/508ac615935ef7588cf6d9e9b91309fdc2da751af865e02a9098de88258c/pydantic_core-2.46.4-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2412e734dcb48da14d4e4006b82b46b74f2518b8a26ee7e58c6844a6cd6d03c4", size = 2309275, upload-time = "2026-05-06T13:37:41.406Z" }, + { url = "https://files.pythonhosted.org/packages/07/f8/41db9de19d7987d6b04715a02b3b40aea467000275d9d758ffaa31af7d50/pydantic_core-2.46.4-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9551187363ffc0de2a00b2e47c25aeaeb1020b69b668762966df15fc5659dd5a", size = 2094467, upload-time = "2026-05-06T13:39:18.847Z" }, + { url = "https://files.pythonhosted.org/packages/2c/e2/f35033184cb11d0052daf4416e8e10a502ea2ac006fc4f459aee872727d1/pydantic_core-2.46.4-cp313-cp313-manylinux_2_31_riscv64.whl", hash = "sha256:0186750b482eefa11d7f435892b09c5c606193ef3375bcf94aa00ae6bfb66262", size = 2134417, upload-time = "2026-05-06T13:40:17.944Z" }, + { url = "https://files.pythonhosted.org/packages/7e/7b/6ceeb1cc90e193862f444ebe373d8fdf613f0a82572dde03fb10734c6c71/pydantic_core-2.46.4-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:5855698a4856556d86e8e6cd8434bc3ac0314ee8e12089ae0e143f64c6256e4e", size = 2179782, upload-time = "2026-05-06T13:40:32.618Z" }, + { url = "https://files.pythonhosted.org/packages/5a/f2/c8d7773ede6af08036423a00ae0ceffce266c3c52a096c435d68c896083f/pydantic_core-2.46.4-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:cbaf13819775b7f769bf4a1f066cb6df7a28d4480081a589828ef190226881cd", size = 2188782, upload-time = "2026-05-06T13:36:51.018Z" }, + { url = "https://files.pythonhosted.org/packages/59/31/0c864784e31f09f05cdd87606f08923b9c9e7f6e51dd27f20f62f975ce9f/pydantic_core-2.46.4-cp313-cp313-musllinux_1_1_armv7l.whl", hash = "sha256:633147d34cf4550417f12e2b1a0383973bdf5cdfde212cb09e9a581cf10820be", size = 2328334, upload-time = "2026-05-06T13:40:37.764Z" }, + { url = "https://files.pythonhosted.org/packages/c2/eb/4f6c8a41efa30baa755590f4141abf3a8c370fab610915733e74134a7270/pydantic_core-2.46.4-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:82cf5301172168103724d49a1444d3378cb20cdee30b116a1bd6031236298a5d", size = 2372986, upload-time = "2026-05-06T13:39:34.152Z" }, + { url = "https://files.pythonhosted.org/packages/5b/24/b375a480d53113860c299764bfe9f349a3dc9108b3adc0d7f0d786492ebf/pydantic_core-2.46.4-cp313-cp313-win32.whl", hash = "sha256:9fa8ae11da9e2b3126c6426f147e0fba88d96d65921799bb30c6abd1cb2c97fb", size = 1973693, upload-time = "2026-05-06T13:37:55.072Z" }, + { url = "https://files.pythonhosted.org/packages/7e/e8/cff247591966f2d22ec8c003cd7587e27b7ba7b81ab2fb888e3ab75dc285/pydantic_core-2.46.4-cp313-cp313-win_amd64.whl", hash = "sha256:6b3ace8194b0e5204818c92802dcdca7fc6d88aabbb799d7c795540d9cd6d292", size = 2071819, upload-time = "2026-05-06T13:38:49.139Z" }, + { url = "https://files.pythonhosted.org/packages/c6/1a/f4aee670d5670e9e148e0c82c7db98d780be566c6e6a97ee8035528ca0b3/pydantic_core-2.46.4-cp313-cp313-win_arm64.whl", hash = "sha256:184c081504d17f1c1066e430e117142b2c77d9448a97f7b65c6ac9fd9aee238d", size = 2027411, upload-time = "2026-05-06T13:40:45.796Z" }, + { url = "https://files.pythonhosted.org/packages/8d/74/228a26ddad29c6672b805d9fd78e8d251cd04004fa7eed0e622096cd0250/pydantic_core-2.46.4-cp314-cp314-macosx_10_12_x86_64.whl", hash = "sha256:428e04521a40150c85216fc8b85e8d39fece235a9cf5e383761238c7fa9b96fb", size = 2102079, upload-time = "2026-05-06T13:38:41.019Z" }, + { url = "https://files.pythonhosted.org/packages/ad/1f/8970b150a4b4365623ae00fc88603491f763c627311ae8031e3111356d6e/pydantic_core-2.46.4-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:23ace664830ee0bfe014a0c7bc248b1f7f25ed7ad103852c317624a1083af462", size = 1952179, upload-time = "2026-05-06T13:36:59.812Z" }, + { url = "https://files.pythonhosted.org/packages/95/30/5211a831ae054928054b2f79731661087a2bc5c01e825c672b3a4a8f1b3e/pydantic_core-2.46.4-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ce5c1d2a8b27468f433ca974829c44060b8097eedc39933e3c206a90ee49c4a9", size = 1978926, upload-time = "2026-05-06T13:37:39.933Z" }, + { url = "https://files.pythonhosted.org/packages/57/e9/689668733b1eb67adeef047db3c2e8788fcf65a7fd9c9e2b46b7744fe245/pydantic_core-2.46.4-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:7283d57845ecf5a163403eb0702dfc220cc4fbdd18919cb5ccea4f95ee1cdab4", size = 2046785, upload-time = "2026-05-06T13:38:01.995Z" }, + { url = "https://files.pythonhosted.org/packages/60/d9/6715260422ff50a2109878fd24d948a6c3446bb2664f34ee78cd972b3acd/pydantic_core-2.46.4-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8daafc69c93ee8a0204506a3b6b30f586ef54028f52aeeeb5c4cfc5184fd5914", size = 2228733, upload-time = "2026-05-06T13:40:50.371Z" }, + { url = "https://files.pythonhosted.org/packages/18/ae/fdb2f64316afca925640f8e70bb1a564b0ec2721c1389e25b8eb4bf9a299/pydantic_core-2.46.4-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cd2213145bcc2ba85884d0ac63d222fece9209678f77b9b4d76f054c561adb28", size = 2307534, upload-time = "2026-05-06T13:37:21.531Z" }, + { url = "https://files.pythonhosted.org/packages/89/1d/8eff589b45bb8190a9d12c49cfad0f176a5cbd1534908a6b5125e2886239/pydantic_core-2.46.4-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7a5f930472650a82629163023e630d160863fce524c616f4e5186e5de9d9a49b", size = 2099732, upload-time = "2026-05-06T13:39:31.942Z" }, + { url = "https://files.pythonhosted.org/packages/06/d5/ee5a3366637fee41dee51a1fc91562dcf12ddbc68fda34e6b253da2324bb/pydantic_core-2.46.4-cp314-cp314-manylinux_2_31_riscv64.whl", hash = "sha256:c1b3f518abeca3aa13c712fd202306e145abf59a18b094a6bafb2d2bbf59192c", size = 2129627, upload-time = "2026-05-06T13:37:25.033Z" }, + { url = "https://files.pythonhosted.org/packages/94/33/2414be571d2c6a6c4d08be21f9292b6d3fdb08949a97b6dfe985017821db/pydantic_core-2.46.4-cp314-cp314-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:1a7dd0b3ee80d90150e3495a3a13ac34dbcbfd4f012996a6a1d8900e91b5c0fb", size = 2179141, upload-time = "2026-05-06T13:37:14.046Z" }, + { url = "https://files.pythonhosted.org/packages/7b/79/7daa95be995be0eecc4cf75064cb33f9bbbfe3fe0158caf2f0d4a996a5c7/pydantic_core-2.46.4-cp314-cp314-musllinux_1_1_aarch64.whl", hash = "sha256:3fb702cd90b0446a3a1c5e470bfa0dd23c0233b676a9099ddcc964fa6ca13898", size = 2184325, upload-time = "2026-05-06T13:36:53.615Z" }, + { url = "https://files.pythonhosted.org/packages/9f/cb/d0a382f5c0de8a222dc61c65348e0ce831b1f68e0a018450d31c2cace3a5/pydantic_core-2.46.4-cp314-cp314-musllinux_1_1_armv7l.whl", hash = "sha256:b8458003118a712e66286df6a707db01c52c0f52f7db8e4a38f0da1d3b94fc4e", size = 2323990, upload-time = "2026-05-06T13:40:29.971Z" }, + { url = "https://files.pythonhosted.org/packages/05/db/d9ba624cc4a5aced1598e88c04fdbd8310c8a69b9d38b9a3d39ce3a61ed7/pydantic_core-2.46.4-cp314-cp314-musllinux_1_1_x86_64.whl", hash = "sha256:372429a130e469c9cd698925ce5fc50940b7a1336b0d82038e63d5bbc4edc519", size = 2369978, upload-time = "2026-05-06T13:37:23.027Z" }, + { url = "https://files.pythonhosted.org/packages/f2/20/d15df15ba918c423461905802bfd2981c3af0bfa0e40d05e13edbfa48bc3/pydantic_core-2.46.4-cp314-cp314-win32.whl", hash = "sha256:85bb3611ff1802f3ee7fdd7dbff26b56f343fb432d57a4728fdd49b6ef35e2f4", size = 1966354, upload-time = "2026-05-06T13:38:03.499Z" }, + { url = "https://files.pythonhosted.org/packages/fc/b6/6b8de4c0a7d7ab3004c439c80c5c1e0a3e8d78bbae19379b01960383d9e5/pydantic_core-2.46.4-cp314-cp314-win_amd64.whl", hash = "sha256:811ff8e9c313ab425368bcbb36e5c4ebd7108c2bbf4e4089cfbb0b01eff63fac", size = 2072238, upload-time = "2026-05-06T13:39:40.807Z" }, + { url = "https://files.pythonhosted.org/packages/32/36/51eb763beec1f4cf59b1db243a7dcc39cbb41230f050a09b9d69faaf0a48/pydantic_core-2.46.4-cp314-cp314-win_arm64.whl", hash = "sha256:bfec22eab3c8cc2ceec0248aec886624116dc079afa027ecc8ad4a7e62010f8a", size = 2018251, upload-time = "2026-05-06T13:37:26.72Z" }, + { url = "https://files.pythonhosted.org/packages/e8/91/855af51d625b23aa987116a19e231d2aaef9c4a415273ddc189b79a45fee/pydantic_core-2.46.4-cp314-cp314t-macosx_10_12_x86_64.whl", hash = "sha256:af8244b2bef6aaad6d92cda81372de7f8c8d36c9f0c3ea36e827c60e7d9467a0", size = 2099593, upload-time = "2026-05-06T13:39:47.682Z" }, + { url = "https://files.pythonhosted.org/packages/fb/1b/8784a54c65edb5f49f0a14d6977cf1b209bba85a4c77445b255c2de58ab3/pydantic_core-2.46.4-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:5a4330cdbc57162e4b3aa303f588ba752257694c9c9be3e7ebb11b4aca659b5d", size = 1935226, upload-time = "2026-05-06T13:40:40.428Z" }, + { url = "https://files.pythonhosted.org/packages/e8/e7/1955d28d1afc56dd4b3ad7cc0cf39df1b9852964cf16e5d13912756d6d6b/pydantic_core-2.46.4-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:29c61fc04a3d840155ff08e475a04809278972fe6aef51e2720554e96367e34b", size = 1974605, upload-time = "2026-05-06T13:37:32.029Z" }, + { url = "https://files.pythonhosted.org/packages/93/e2/3fedbf0ba7a22850e6e9fd78117f1c0f10f950182344d8a6c535d468fdd8/pydantic_core-2.46.4-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:c50f2528cf200c5eed56faf3f4e22fcd5f38c157a8b78576e6ba3168ec35f000", size = 2030777, upload-time = "2026-05-06T13:38:55.239Z" }, + { url = "https://files.pythonhosted.org/packages/f8/61/46be275fcaaba0b4f5b9669dd852267ce1ff616592dccf7a7845588df091/pydantic_core-2.46.4-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:0cbe8b01f948de4286c74cdd6c667aceb38f5c1e26f0693b3983d9d74887c65e", size = 2236641, upload-time = "2026-05-06T13:37:08.096Z" }, + { url = "https://files.pythonhosted.org/packages/60/db/12e93e46a8bac9988be3c016860f83293daea8c716c029c9ace279036f2f/pydantic_core-2.46.4-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:617d7e2ca7dcb8c5cf6bcb8c59b8832c94b36196bbf1cbd1bfb56ed341905edd", size = 2286404, upload-time = "2026-05-06T13:40:20.221Z" }, + { url = "https://files.pythonhosted.org/packages/e2/4a/4d8b19008f38d31c53b8219cfedc2e3d5de5fe99d90076b7e767de29274f/pydantic_core-2.46.4-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7027560ee92211647d0d34e3f7cd6f50da56399d26a9c8ad0da286d3869a53f3", size = 2109219, upload-time = "2026-05-06T13:38:12.153Z" }, + { url = "https://files.pythonhosted.org/packages/88/70/3cbc40978fefb7bb09c6708d40d4ad1a5d70fd7213c3d17f971de868ec1f/pydantic_core-2.46.4-cp314-cp314t-manylinux_2_31_riscv64.whl", hash = "sha256:f99626688942fb746e545232e7726926f3be91b5975f8b55327665fafda991c7", size = 2110594, upload-time = "2026-05-06T13:40:02.971Z" }, + { url = "https://files.pythonhosted.org/packages/9d/20/b8d36736216e29491125531685b2f9e61aa5b4b2599893f8268551da3338/pydantic_core-2.46.4-cp314-cp314t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:fc3e9034a63de20e15e8ade85358bc6efc614008cab72898b4b4952bea0509ff", size = 2159542, upload-time = "2026-05-06T13:39:27.506Z" }, + { url = "https://files.pythonhosted.org/packages/1d/a2/367df868eb584dacf6bf82a389272406d7178e301c4ac82545ab98bc2dd9/pydantic_core-2.46.4-cp314-cp314t-musllinux_1_1_aarch64.whl", hash = "sha256:97e7cf2be5c77b7d1a9713a05605d49460d02c6078d38d8bef3cbe323c548424", size = 2168146, upload-time = "2026-05-06T13:38:31.93Z" }, + { url = "https://files.pythonhosted.org/packages/c1/b8/4460f77f7e201893f649a29ab355dddd3beee8a97bcb1a320db414f9a06e/pydantic_core-2.46.4-cp314-cp314t-musllinux_1_1_armv7l.whl", hash = "sha256:3bf92c5d0e00fefaab325a4d27828fe6b6e2a21848686b5b60d2d9eeb09d76c6", size = 2306309, upload-time = "2026-05-06T13:37:44.717Z" }, + { url = "https://files.pythonhosted.org/packages/64/c4/be2639293acd87dc8ddbcec41a73cee9b2ebf996fe6d892a1a74e88ad3f7/pydantic_core-2.46.4-cp314-cp314t-musllinux_1_1_x86_64.whl", hash = "sha256:3ecbc122d18468d06ca279dc26a8c2e2d5acb10943bb35e36ae92096dc3b5565", size = 2369736, upload-time = "2026-05-06T13:37:05.645Z" }, + { url = "https://files.pythonhosted.org/packages/30/a6/9f9f380dbb301f67023bf8f707aaa75daadf84f7152d95c410fd7e81d994/pydantic_core-2.46.4-cp314-cp314t-win32.whl", hash = "sha256:e846ae7835bf0703ae43f534ab79a867146dadd59dc9ca5c8b53d5c8f7c9ef02", size = 1955575, upload-time = "2026-05-06T13:38:51.116Z" }, + { url = "https://files.pythonhosted.org/packages/40/1f/f1eb9eb350e795d1af8586289746f5c5677d16043040d63710e22abc43c9/pydantic_core-2.46.4-cp314-cp314t-win_amd64.whl", hash = "sha256:2108ba5c1c1eca18030634489dc544844144ee36357f2f9f780b93e7ddbb44b5", size = 2051624, upload-time = "2026-05-06T13:38:21.672Z" }, + { url = "https://files.pythonhosted.org/packages/f6/d2/42dd53d0a85c27606f316d3aa5d2869c4e8470a5ed6dec30e4a1abe19192/pydantic_core-2.46.4-cp314-cp314t-win_arm64.whl", hash = "sha256:4fcbe087dbc2068af7eda3aa87634eba216dbda64d1ae73c8684b621d33f6596", size = 2017325, upload-time = "2026-05-06T13:40:52.723Z" }, + { url = "https://files.pythonhosted.org/packages/ee/a4/73995fd4ebbb46ba0ee51e6fa049b8f02c40daebb762208feda8a6b7894d/pydantic_core-2.46.4-graalpy311-graalpy242_311_native-macosx_10_12_x86_64.whl", hash = "sha256:14d4edf427bdcf950a8a02d7cb44a08614388dd6e1bdcbf4f67504fa7887da9c", size = 2111589, upload-time = "2026-05-06T13:37:10.817Z" }, + { url = "https://files.pythonhosted.org/packages/fb/7f/f37d3a5e8bfcc2e403f5c57a730f2d815693fb42119e8ea48b3789335af1/pydantic_core-2.46.4-graalpy311-graalpy242_311_native-macosx_11_0_arm64.whl", hash = "sha256:0ce40cd7b21210e99342afafbd4d0f76d784eb5b1d60f3bdc566be4983c6c73b", size = 1944552, upload-time = "2026-05-06T13:36:56.717Z" }, + { url = "https://files.pythonhosted.org/packages/15/3c/d7eb777b3ff43e8433a4efb39a17aa8fd98a4ee8561a24a67ef5db07b2d6/pydantic_core-2.46.4-graalpy311-graalpy242_311_native-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:90884113d8b48f760e9587002789ddd741e76ab9f89518cd1e43b1f1a52ec44b", size = 1982984, upload-time = "2026-05-06T13:39:06.207Z" }, + { url = "https://files.pythonhosted.org/packages/63/87/70b9f40170a81afd55ca26c9b2acb25c20d64bcfbf888fafecb3ba077d4c/pydantic_core-2.46.4-graalpy311-graalpy242_311_native-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:66ce7632c22d837c95301830e111ad0128a32b8207533b60896a96c4915192ea", size = 2138417, upload-time = "2026-05-06T13:39:45.476Z" }, + { url = "https://files.pythonhosted.org/packages/9d/1d/8987ad40f65ae1432753072f214fb5c74fe47ffbd0698bb9cbbb585664f8/pydantic_core-2.46.4-graalpy312-graalpy250_312_native-macosx_10_12_x86_64.whl", hash = "sha256:1d8ba486450b14f3b1d63bc521d410ec7565e52f887b9fb671791886436a42f7", size = 2095527, upload-time = "2026-05-06T13:39:52.283Z" }, + { url = "https://files.pythonhosted.org/packages/64/d3/84c282a7eee1d3ac4c0377546ef5a1ea436ce26840d9ac3b7ed54a377507/pydantic_core-2.46.4-graalpy312-graalpy250_312_native-macosx_11_0_arm64.whl", hash = "sha256:3009f12e4e90b7f88b4f9adb1b0c4a3d58fe7820f3238c190047209d148026df", size = 1936024, upload-time = "2026-05-06T13:40:15.671Z" }, + { url = "https://files.pythonhosted.org/packages/d7/ca/eac61596cdeb4d7e174d3dc0bd8a6238f14f75f97a24e7b7db4c7e7340a0/pydantic_core-2.46.4-graalpy312-graalpy250_312_native-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ad785e92e6dc634c21555edc8bd6b64957ab844541bcb96a1366c202951ae526", size = 1990696, upload-time = "2026-05-06T13:38:34.717Z" }, + { url = "https://files.pythonhosted.org/packages/fa/c3/7c8b240552251faf6b3a957db200fcfbbcec36763c050428b601e0c9b83b/pydantic_core-2.46.4-graalpy312-graalpy250_312_native-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:00c603d540afdd6b80eb39f078f33ebd46211f02f33e34a32d9f053bba711de0", size = 2147590, upload-time = "2026-05-06T13:39:29.883Z" }, + { url = "https://files.pythonhosted.org/packages/11/cb/428de0385b6c8d44b716feba566abfacfbd23ee3c4439faa789a1456242f/pydantic_core-2.46.4-pp311-pypy311_pp73-macosx_10_12_x86_64.whl", hash = "sha256:0c563b08bca408dc7f65f700633d8442fffb2421fc47b8101377e9fd65051ff0", size = 2112782, upload-time = "2026-05-06T13:37:04.016Z" }, + { url = "https://files.pythonhosted.org/packages/0b/b5/6a17bdadd0fc1f170adfd05a20d37c832f52b117b4d9131da1f41bb097ce/pydantic_core-2.46.4-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:db06ffe51636ffe9ca531fe9023dd64bdd794be8754cb5df57c5498ae5b518a7", size = 1952146, upload-time = "2026-05-06T13:39:43.092Z" }, + { url = "https://files.pythonhosted.org/packages/2a/dc/03734d80e362cd43ef65428e9de77c730ce7f2f11c60d2b1e1b39f0fbf99/pydantic_core-2.46.4-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:133878133d271ade3d41d1bfb2a45ec38dbdbda40bc065921c6b04e4630127e2", size = 2134492, upload-time = "2026-05-06T13:36:58.124Z" }, + { url = "https://files.pythonhosted.org/packages/de/df/5e5ffc085ed07cc22d298134d3d911c63e91f6a0eb91fe646750a3209910/pydantic_core-2.46.4-pp311-pypy311_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:9bc519fbf2b7578398853d815009ae5e4d4603d12f4e3f91da8c06852d3da3e9", size = 2156604, upload-time = "2026-05-06T13:37:49.88Z" }, + { url = "https://files.pythonhosted.org/packages/81/44/6e112a4253e56f5705467cbab7ab5e91ee7398ba3d56d358635958893d3e/pydantic_core-2.46.4-pp311-pypy311_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:c7a7bd4e39e8e4c12c39cd480356842b6a8a06e41b23a55a5e3e191718838ddf", size = 2183828, upload-time = "2026-05-06T13:37:43.053Z" }, + { url = "https://files.pythonhosted.org/packages/ac/ad/5565071e937d8e752842ac241463944c9eb14c87e2d269f2658a5bd05e98/pydantic_core-2.46.4-pp311-pypy311_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:d396ec2b979760aaf3218e76c24e65bd0aca24983298653b3a9d7a45f9e47b30", size = 2310000, upload-time = "2026-05-06T13:37:56.694Z" }, + { url = "https://files.pythonhosted.org/packages/4f/c3/66883a5cec183e7fba4d024b4cbbe61851a63750ef606b0afecc46d1f2bf/pydantic_core-2.46.4-pp311-pypy311_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:86e1a4418c6cd97d60c95c71164158eaf7324fae7b0923264016baa993eba6fc", size = 2361286, upload-time = "2026-05-06T13:40:05.667Z" }, + { url = "https://files.pythonhosted.org/packages/4b/2d/69abac8f838090bbecd5df894befb2c2619e7996a98ddb949db9f3b93225/pydantic_core-2.46.4-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:d51026d73fcfd93610abc7b27789c26b313920fcfb20e27462d74a7f8b06e983", size = 2193071, upload-time = "2026-05-06T13:38:08.682Z" }, ] [[package]] name = "pygments" version = "2.20.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/c3/b2/bc9c9196916376152d655522fdcebac55e66de6603a76a02bca1b6414f6c/pygments-2.20.0.tar.gz", hash = "sha256:6757cd03768053ff99f3039c1a36d6c0aa0b263438fcab17520b30a303a82b5f", size = 4955991 } +sdist = { url = "https://files.pythonhosted.org/packages/c3/b2/bc9c9196916376152d655522fdcebac55e66de6603a76a02bca1b6414f6c/pygments-2.20.0.tar.gz", hash = "sha256:6757cd03768053ff99f3039c1a36d6c0aa0b263438fcab17520b30a303a82b5f", size = 4955991, upload-time = "2026-03-29T13:29:33.898Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/f4/7e/a72dd26f3b0f4f2bf1dd8923c85f7ceb43172af56d63c7383eb62b332364/pygments-2.20.0-py3-none-any.whl", hash = "sha256:81a9e26dd42fd28a23a2d169d86d7ac03b46e2f8b59ed4698fb4785f946d0176", size = 1231151 }, + { url = "https://files.pythonhosted.org/packages/f4/7e/a72dd26f3b0f4f2bf1dd8923c85f7ceb43172af56d63c7383eb62b332364/pygments-2.20.0-py3-none-any.whl", hash = "sha256:81a9e26dd42fd28a23a2d169d86d7ac03b46e2f8b59ed4698fb4785f946d0176", size = 1231151, upload-time = "2026-03-29T13:29:30.038Z" }, ] [[package]] @@ -790,9 +960,9 @@ dependencies = [ { name = "pygments" }, { name = "tomli", marker = "python_full_version < '3.11'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/e4/47/b9efed96c114afcfa3c9d3fe98a76a1d14c74a9e266d397cf6eb64be5e01/pytest-9.1.1.tar.gz", hash = "sha256:1088fbde8f2b49d95a549a195707afa7a76a3ce9bcadc26b6d71f0ffda5fe313", size = 1636369 } +sdist = { url = "https://files.pythonhosted.org/packages/e4/47/b9efed96c114afcfa3c9d3fe98a76a1d14c74a9e266d397cf6eb64be5e01/pytest-9.1.1.tar.gz", hash = "sha256:1088fbde8f2b49d95a549a195707afa7a76a3ce9bcadc26b6d71f0ffda5fe313", size = 1636369, upload-time = "2026-06-19T10:58:32.857Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/24/25/1de2678b631f5a49215c6c96fff41ba892b0a34df68d6d80292b1b48aa7f/pytest-9.1.1-py3-none-any.whl", hash = "sha256:37a86b45efb9a47a61a36449063e8e18d0cab3161329fc099eb21783169c4f0c", size = 386536 }, + { url = "https://files.pythonhosted.org/packages/24/25/1de2678b631f5a49215c6c96fff41ba892b0a34df68d6d80292b1b48aa7f/pytest-9.1.1-py3-none-any.whl", hash = "sha256:37a86b45efb9a47a61a36449063e8e18d0cab3161329fc099eb21783169c4f0c", size = 386536, upload-time = "2026-06-19T10:58:31.347Z" }, ] [[package]] @@ -804,9 +974,9 @@ dependencies = [ { name = "pytest" }, { name = "typing-extensions", marker = "python_full_version < '3.13'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/43/7c/d36d04db312ecf4298932ef77e6e4a9e8ad017906e24e34f0b0c361a2473/pytest_asyncio-1.4.0.tar.gz", hash = "sha256:c6c0d2259945122819f171a32ecea2c349ead889ee28176caaf492143424be42", size = 58514 } +sdist = { url = "https://files.pythonhosted.org/packages/43/7c/d36d04db312ecf4298932ef77e6e4a9e8ad017906e24e34f0b0c361a2473/pytest_asyncio-1.4.0.tar.gz", hash = "sha256:c6c0d2259945122819f171a32ecea2c349ead889ee28176caaf492143424be42", size = 58514, upload-time = "2026-05-26T09:56:04.083Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/03/e2/08a497ef684b88559c9cc5f4ad53a37e7b99e727094a86d6ea32536d5d3c/pytest_asyncio-1.4.0-py3-none-any.whl", hash = "sha256:933ca923a23075a87fb7070c0ec272a6848489824d887c85c812670932835aa1", size = 16930 }, + { url = "https://files.pythonhosted.org/packages/03/e2/08a497ef684b88559c9cc5f4ad53a37e7b99e727094a86d6ea32536d5d3c/pytest_asyncio-1.4.0-py3-none-any.whl", hash = "sha256:933ca923a23075a87fb7070c0ec272a6848489824d887c85c812670932835aa1", size = 16930, upload-time = "2026-05-26T09:56:02.576Z" }, ] [[package]] @@ -818,9 +988,9 @@ dependencies = [ { name = "pluggy" }, { name = "pytest" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/b1/51/a849f96e117386044471c8ec2bd6cfebacda285da9525c9106aeb28da671/pytest_cov-7.1.0.tar.gz", hash = "sha256:30674f2b5f6351aa09702a9c8c364f6a01c27aae0c1366ae8016160d1efc56b2", size = 55592 } +sdist = { url = "https://files.pythonhosted.org/packages/b1/51/a849f96e117386044471c8ec2bd6cfebacda285da9525c9106aeb28da671/pytest_cov-7.1.0.tar.gz", hash = "sha256:30674f2b5f6351aa09702a9c8c364f6a01c27aae0c1366ae8016160d1efc56b2", size = 55592, upload-time = "2026-03-21T20:11:16.284Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/9d/7a/d968e294073affff457b041c2be9868a40c1c71f4a35fcc1e45e5493067b/pytest_cov-7.1.0-py3-none-any.whl", hash = "sha256:a0461110b7865f9a271aa1b51e516c9a95de9d696734a2f71e3e78f46e1d4678", size = 22876 }, + { url = "https://files.pythonhosted.org/packages/9d/7a/d968e294073affff457b041c2be9868a40c1c71f4a35fcc1e45e5493067b/pytest_cov-7.1.0-py3-none-any.whl", hash = "sha256:a0461110b7865f9a271aa1b51e516c9a95de9d696734a2f71e3e78f46e1d4678", size = 22876, upload-time = "2026-03-21T20:11:14.438Z" }, ] [[package]] @@ -831,9 +1001,9 @@ dependencies = [ { name = "execnet" }, { name = "pytest" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/78/b4/439b179d1ff526791eb921115fca8e44e596a13efeda518b9d845a619450/pytest_xdist-3.8.0.tar.gz", hash = "sha256:7e578125ec9bc6050861aa93f2d59f1d8d085595d6551c2c90b6f4fad8d3a9f1", size = 88069 } +sdist = { url = "https://files.pythonhosted.org/packages/78/b4/439b179d1ff526791eb921115fca8e44e596a13efeda518b9d845a619450/pytest_xdist-3.8.0.tar.gz", hash = "sha256:7e578125ec9bc6050861aa93f2d59f1d8d085595d6551c2c90b6f4fad8d3a9f1", size = 88069, upload-time = "2025-07-01T13:30:59.346Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/ca/31/d4e37e9e550c2b92a9cbc2e4d0b7420a27224968580b5a447f420847c975/pytest_xdist-3.8.0-py3-none-any.whl", hash = "sha256:202ca578cfeb7370784a8c33d6d05bc6e13b4f25b5053c30a152269fd10f0b88", size = 46396 }, + { url = "https://files.pythonhosted.org/packages/ca/31/d4e37e9e550c2b92a9cbc2e4d0b7420a27224968580b5a447f420847c975/pytest_xdist-3.8.0-py3-none-any.whl", hash = "sha256:202ca578cfeb7370784a8c33d6d05bc6e13b4f25b5053c30a152269fd10f0b88", size = 46396, upload-time = "2025-07-01T13:30:56.632Z" }, ] [[package]] @@ -843,98 +1013,130 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "colorama", marker = "sys_platform == 'win32'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/8f/b2/7fc2931bfae0af02d5f53b174e9cf701adbb35f39d69c2af63d4a39f81a9/qrcode-8.2.tar.gz", hash = "sha256:35c3f2a4172b33136ab9f6b3ef1c00260dd2f66f858f24d88418a015f446506c", size = 43317 } +sdist = { url = "https://files.pythonhosted.org/packages/8f/b2/7fc2931bfae0af02d5f53b174e9cf701adbb35f39d69c2af63d4a39f81a9/qrcode-8.2.tar.gz", hash = "sha256:35c3f2a4172b33136ab9f6b3ef1c00260dd2f66f858f24d88418a015f446506c", size = 43317, upload-time = "2025-05-01T15:44:24.726Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/dd/b8/d2d6d731733f51684bbf76bf34dab3b70a9148e8f2cef2bb544fccec681a/qrcode-8.2-py3-none-any.whl", hash = "sha256:16e64e0716c14960108e85d853062c9e8bba5ca8252c0b4d0231b9df4060ff4f", size = 45986 }, + { url = "https://files.pythonhosted.org/packages/dd/b8/d2d6d731733f51684bbf76bf34dab3b70a9148e8f2cef2bb544fccec681a/qrcode-8.2-py3-none-any.whl", hash = "sha256:16e64e0716c14960108e85d853062c9e8bba5ca8252c0b4d0231b9df4060ff4f", size = 45986, upload-time = "2025-05-01T15:44:22.781Z" }, ] [[package]] name = "regex" version = "2026.6.28" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/f1/05/e4f219230e11e774a6c9987d2ab0d0c6b8573e13a17e143d0015bee710ef/regex-2026.6.28.tar.gz", hash = "sha256:3cb4b6c5cb3060cc31efdc1fbb27c25fb9b29044afd87e40601a1c4d9db54342", size = 416101 } +sdist = { url = "https://files.pythonhosted.org/packages/f1/05/e4f219230e11e774a6c9987d2ab0d0c6b8573e13a17e143d0015bee710ef/regex-2026.6.28.tar.gz", hash = "sha256:3cb4b6c5cb3060cc31efdc1fbb27c25fb9b29044afd87e40601a1c4d9db54342", size = 416101, upload-time = "2026-06-28T19:56:55.302Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/d8/dc/f7a8c9cf0768f704153d358fae2bc883199bc4ea1e4aa458f1be9d0ef2ce/regex-2026.6.28-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:b83932645630965fd860fdb70ebbf964bf3e8007f08851ea424d01f8d35454a8", size = 489471 }, - { url = "https://files.pythonhosted.org/packages/44/b3/9786a4a2133e2f1cc5897ed3d2da3da29ff54b775ffa38bc5935fc24be82/regex-2026.6.28-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:e81f1952355042e517dc9861ce65c676e4a098f42402993c40461786d1f794d4", size = 291294 }, - { url = "https://files.pythonhosted.org/packages/dd/1f/bfe5b529257f0853aa6b94146e0f6462f4d45aa4f3c05d5a828f415dfd40/regex-2026.6.28-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:2097591101d70bcc108af64c46f6066bb698ee067fec5f75beac0be317639311", size = 289216 }, - { url = "https://files.pythonhosted.org/packages/25/56/f615165e90ac5f3b72b249240643439520bbac0ac60a9de06868528eba4c/regex-2026.6.28-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:31d7538a614b5842bf53ce329d07b43f97754ca7e6db8d69f347e071bce1c953", size = 784787 }, - { url = "https://files.pythonhosted.org/packages/04/94/c9e3ad31b3d5fbe1228fee8319e0c02a5460296624f220d08764547fe6ae/regex-2026.6.28-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:f5561e47bbe2b75373b695326507743fcdd4d2cc7f5022312024ccf39fa094e0", size = 852137 }, - { url = "https://files.pythonhosted.org/packages/c0/77/d506a428e446466ee298f5425a774737d0671d070425ed794bb3314d60c6/regex-2026.6.28-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:c10f2c5a55ab3dd8318d8ad5f11b530e2691c0edebebde7713066f484902c3fb", size = 899525 }, - { url = "https://files.pythonhosted.org/packages/aa/72/becc00d839f19401f10a20168b44711c7b02f7f62bba875b2d8f98417435/regex-2026.6.28-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:23f7e0cc60c72486b42a685f1ff4eec90d50d4fb05e4f9c7d5363b03aa02600d", size = 794116 }, - { url = "https://files.pythonhosted.org/packages/fa/11/ea2ca423eeaac2e18077a18b058614e9201f130750df2126d444e39acab2/regex-2026.6.28-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:76493755f79a88d5ed2c9e63a41d3c05997e0a7ffbe76ed8c4ded8be35b8b14c", size = 786257 }, - { url = "https://files.pythonhosted.org/packages/6d/9e/f5bf7ecbd14ff2086f015c54dc24fd0d74ba5327fef0de479213f8128615/regex-2026.6.28-cp310-cp310-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:ff0f41a00f23ea5054acb61901380c41813d813eee3f80f800995710bcc52ecd", size = 769914 }, - { url = "https://files.pythonhosted.org/packages/43/04/f9040a5360a06241ba5b7f2e6f1c6184e104a84e6f6522535700e94bf8e2/regex-2026.6.28-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:3c60b297292e7e1ef5d02a4759f9e452ee4c8bb95e168d8fd0b5db01bd806f9f", size = 775013 }, - { url = "https://files.pythonhosted.org/packages/73/97/4e46f7abf2f864319d2bcac609af3c0532968c66a3364337778fd232b83c/regex-2026.6.28-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:a7cf03c87f7b9cbc25a8894cf9be83818406677b6b391b003ec7c884923387b5", size = 848814 }, - { url = "https://files.pythonhosted.org/packages/f7/b8/3d1f995727799a1e2e693e397acb7358094606e5591b6b5fd3128d2d1409/regex-2026.6.28-cp310-cp310-musllinux_1_2_riscv64.whl", hash = "sha256:418208ea0af51cfed4f46eb9b1ea7cfc990ca284f0084ecbd951460fb089421e", size = 757702 }, - { url = "https://files.pythonhosted.org/packages/20/10/fd5653b8572910a4fe9055f8959b070d7d9443c94ce986529fcdb5fb2a3c/regex-2026.6.28-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:7635fa2cddb917a6bbfac7890602573d2d8c4e470703b0640e6f86a988817ec3", size = 837140 }, - { url = "https://files.pythonhosted.org/packages/5d/31/da77e3ef7b594a2aacbd03ce3d0050f33ab3e021df50c6901467c9006511/regex-2026.6.28-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:7bb96c13d6cf5880d31bbef84ca701a64d738aa491c2b79975cc33f8ad00a31e", size = 782105 }, - { url = "https://files.pythonhosted.org/packages/cd/4d/c379001448d0f58b6946f168d4af96ad60a16c1553259c27b0df8701b640/regex-2026.6.28-cp310-cp310-win32.whl", hash = "sha256:56f05194c4843957dd8b3af87eb0c52d8cf0509e7f18e172d727f5f8ff840646", size = 266728 }, - { url = "https://files.pythonhosted.org/packages/f3/8f/cb656529efa87d74cce0d69e606c745537016da3bdfae78f342af2242ee3/regex-2026.6.28-cp310-cp310-win_amd64.whl", hash = "sha256:70710927033af3b54369f17aaba1343b97a23d0b1aa994fa1512b08b1b8c136a", size = 277901 }, - { url = "https://files.pythonhosted.org/packages/7b/ac/d35ccc309c9409406445ab2ef0b56f6a341a916ccff49ff9ac5cc6bb8e9b/regex-2026.6.28-cp310-cp310-win_arm64.whl", hash = "sha256:ed7b30185ee3f8b9b053b0be567b4d226016e2afbebc17fde1c6a4580937b688", size = 276880 }, - { url = "https://files.pythonhosted.org/packages/72/db/9051b36294bdbabaa9c7db57db0fbcdfbd17f7a106c539bb423d0323faea/regex-2026.6.28-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:a71b51dd08b9b62f055fafab3dee8af8bd2ec81b373a44caef18d6c5ca28f43a", size = 489481 }, - { url = "https://files.pythonhosted.org/packages/35/3f/24097a3c3ff30f9a639888900faaecabcf5f54a5bc9c851c297e11b349ef/regex-2026.6.28-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:9c26a47770d30a0f85c01e261d2a3ebc342c4af6fd666dbd8c1fe4cbf3adf726", size = 291292 }, - { url = "https://files.pythonhosted.org/packages/5e/cc/e0d762a189cfb4e8926d16e691720690d139a977b38fdb80230c259332ab/regex-2026.6.28-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:e5efbc1af38f97e300d43028e5a92e752d924bcfb7f465d8669d5d5a6e78c233", size = 289232 }, - { url = "https://files.pythonhosted.org/packages/4b/c8/ca0ac7f09cc88ca61e0c61c53f7db29334f660ffba5d0b52378e7c44723c/regex-2026.6.28-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f1758df6fdd8c800620a5638958720e8a635e1da49a2f09df2dd63e94a24ec4a", size = 792332 }, - { url = "https://files.pythonhosted.org/packages/8e/92/04ae94cbe0dd1f478b2aef6c46f995bb6946d3e338d4b28605478b66a2b7/regex-2026.6.28-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:ad73ecf20c1ef5c975639f8bf845a9370fcf7dada7edc1e3b0bca20e2f8202f6", size = 861743 }, - { url = "https://files.pythonhosted.org/packages/4c/ec/024d7638c807679ff8a0e6081d01d66c7762339af1cac71e45911587ff9a/regex-2026.6.28-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:4d80c798b0eec6ea3d45f8816a1e8886c5664615d347d89e8c075b576a1b5a5d", size = 906481 }, - { url = "https://files.pythonhosted.org/packages/cd/fd/93bfe5af45f0be4fa8983945455c0e6924e1aeb879cde227958869c1e71c/regex-2026.6.28-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a361feeaf1b6ba1df060f2ff5c5947092edf537a35ce78e76387ac56d3e0f4a4", size = 799867 }, - { url = "https://files.pythonhosted.org/packages/ee/fd/e5d965d41f2398c8ce0f37a4652f03bb297fd009bb796d390134225dda12/regex-2026.6.28-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:8b92366d9c8bba9642989534073662abdd9b41faf7603a7ae71597833f3b88f0", size = 773632 }, - { url = "https://files.pythonhosted.org/packages/eb/d9/ff39afaec92b9ee2dba0302a4783976005091681069808938c31cf8df3b6/regex-2026.6.28-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:11251768cc23f097dd61b18f67966e70f74da822784d17e12a444eb6b29d4288", size = 781669 }, - { url = "https://files.pythonhosted.org/packages/45/4e/e2fd4bb8228e10c24af2d7ff867182372190e498eab9fd29cbe54c403c95/regex-2026.6.28-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:ad5c67786145ec28a71a267d9f9d92bdc8d70d65541eea852c253f520a01f918", size = 854497 }, - { url = "https://files.pythonhosted.org/packages/72/7c/f0340384a973082979064156d05f3d2cc1dced7371efcd7a1b45726a1a8a/regex-2026.6.28-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:f1da438e739765c3e85175ede05816cbede3caaacb1e0680568bda6119bfdfca", size = 763335 }, - { url = "https://files.pythonhosted.org/packages/e1/32/90ce0d0898e205506cc22b9c81cfb16b722e06ca5f50fad51c053c2a727b/regex-2026.6.28-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:d98b639046e51c5de64d9f77351532105e99ca271cb6f7640e1f903d6ab63032", size = 844615 }, - { url = "https://files.pythonhosted.org/packages/6a/ef/55abb149599dce1ade687170557129524011eeb3d92afe02429cea7754a2/regex-2026.6.28-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:1e164ace4dbab5c6ad4a4ac7c41a2638fe226d0c770a86f2eb041f594bac6ee7", size = 789193 }, - { url = "https://files.pythonhosted.org/packages/f8/ea/cf7f6f6f152e52fdad978b913bf24c14df647eca0f81ef31f3aee0be8982/regex-2026.6.28-cp311-cp311-win32.whl", hash = "sha256:3169a3159e4d99d9ae85ff0ed90ef3b8906cc3152653b6078b842ace6c8f72c3", size = 266731 }, - { url = "https://files.pythonhosted.org/packages/c6/cf/a48d8e8d406b22481cad146f48fa0dfca3c5f402b91f26d8e5a0fe4f513d/regex-2026.6.28-cp311-cp311-win_amd64.whl", hash = "sha256:5977295b0a74e8241df8a4b3b27b12412a831f6fa32ee8b755039592cd768c3d", size = 277918 }, - { url = "https://files.pythonhosted.org/packages/89/b2/a222392207db7ed86281a732a99f7cf7f2bb35d332799e892b8510be000e/regex-2026.6.28-cp311-cp311-win_arm64.whl", hash = "sha256:f5fbaef40c3e9282ccee4b075f5600a0d858aa0c34147732f1baa69c8188a95d", size = 276876 }, - { url = "https://files.pythonhosted.org/packages/da/21/44aa415873032056c43eac21c67285deb2cf66cddb2a964c3cdc8f803efc/regex-2026.6.28-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:81cc5793ad33a10444445e8d29d3c73e752c8fb2e120772d70fcb6d41df40fe1", size = 490480 }, - { url = "https://files.pythonhosted.org/packages/8b/5f/30d4116093c2128099f78b6990dfc1698fdbf3ee528f1e1c647378034c79/regex-2026.6.28-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:e18225243250a1f7d7e5e5d883f3b96465cd79031acf5c6db902b7025f2125d9", size = 292137 }, - { url = "https://files.pythonhosted.org/packages/cb/0e/ca20a0e0de49837e6337603a91ab77556aa27033ac5b975615d98698cfb3/regex-2026.6.28-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ecd1638b1c2db1f2d01c182a4b0d3e2e88b0e99910320a745c1727ee3638ddab", size = 289623 }, - { url = "https://files.pythonhosted.org/packages/50/11/c013422a7e2c59946df8ac93e792a4922c98287f2a2181341603c78a5d98/regex-2026.6.28-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4303ebe16b74eeb3fe2715745023266fea92fd44a23f3e7bb2fb48c7a7bbc195", size = 796756 }, - { url = "https://files.pythonhosted.org/packages/b0/95/1309645a0e1ee6fb91d954501da57a0b33d50ad2a9acb313702851a7054e/regex-2026.6.28-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:56b856b70b96c381d837f609eee442a1bd320cd2159f5c294b679552fb1a7eaf", size = 865465 }, - { url = "https://files.pythonhosted.org/packages/20/06/491802db47c6f5e2904ffa2518ad3ac27fe6bbf5a66d73210a95cc080d47/regex-2026.6.28-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:f74675ab76ab1d005ffba4dee308e53e89efc22be6e9f9fae5b539a3f81bdff2", size = 912350 }, - { url = "https://files.pythonhosted.org/packages/5e/60/3ba57840bcc7e2367090360de0c15a5ba6ad22be89314251105f2e943f43/regex-2026.6.28-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:90581684565a93f7258af1e5d3f41ef20d7d7c61f2a428183a342bcb65485e38", size = 801261 }, - { url = "https://files.pythonhosted.org/packages/eb/27/af1eb74e9a78c782b3e450b611a595e44906da8a5107e1227f4a7fd0480b/regex-2026.6.28-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:28f9e6c28f9b90f6f784595a33240a57e181e61b6ee3dc259b25c61e356d1aa3", size = 777072 }, - { url = "https://files.pythonhosted.org/packages/20/18/fdd4c883a39e3ed00d669062af1135809bfd3281bf528150849fbd68825b/regex-2026.6.28-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:378a71d861fc7c8806b04ac5b133d53c0e774f92f5d9663a539872d3fa2b0417", size = 785119 }, - { url = "https://files.pythonhosted.org/packages/1c/79/0aabe34b8482dcadf64355f70f96e22eba5ec6c1efb33563f89654f4061c/regex-2026.6.28-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:4cc199874ecd6267a49b111052250825bfe19b5101b23b2ba80f54efa3e0994e", size = 860118 }, - { url = "https://files.pythonhosted.org/packages/a8/2c/c973323306a27c9db7d160e9584eb7e0ece2a96224ccb0d39060558b31f9/regex-2026.6.28-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:b916a10431494ef4b4d62c6c89cab6426af7873125b8cd6c15811bf5fc58eec8", size = 765786 }, - { url = "https://files.pythonhosted.org/packages/e3/df/9ca3e378e352242a4cb45573a5e9162c3ee791507702a23966fa559e36b5/regex-2026.6.28-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:2e27727fba075f1e4409416d2f537d4c30fc11f012ea507f7bd74d3e19ecb57a", size = 852120 }, - { url = "https://files.pythonhosted.org/packages/a2/3e/3e31e255c4971f53cbce6306b5e3c76cbd3735a54f419bb3b2f194e9f68c/regex-2026.6.28-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:700fc6a7844bb2c4149292ac79d1df8841a00acd4d45cd32c1ebc7bcc1fd0da8", size = 789503 }, - { url = "https://files.pythonhosted.org/packages/72/01/d36561c21c3033d7eeb31d51b491916817de7861acefccc5fc9db8a5037c/regex-2026.6.28-cp312-cp312-win32.whl", hash = "sha256:03376d60b6a11aecb88a79fa2be06b40faa01c6693bc31ef69435cd4818b9463", size = 267109 }, - { url = "https://files.pythonhosted.org/packages/a0/59/bbbb0591f38b18c65977cd65ce64749eba1c1996c99ac04e900fc30c0dcb/regex-2026.6.28-cp312-cp312-win_amd64.whl", hash = "sha256:fbd2ded482bf99e6651992bbfcde460272724d4bbc49ef3d6b46d9312867ec84", size = 277711 }, - { url = "https://files.pythonhosted.org/packages/86/06/be4f6b337d773ae5739a1bc238f97c16926e72017243735853c030f4c628/regex-2026.6.28-cp312-cp312-win_arm64.whl", hash = "sha256:37294d3d7ddb64c7e89184b2894e0f8f0a19c514bc59513d71fe692c3a8d5fc6", size = 277022 }, - { url = "https://files.pythonhosted.org/packages/b6/53/d5c1b3cc0b5a0c985563ad6fac93d73ff2b300cb84342d89f044625d6bc7/regex-2026.6.28-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:b295a83426e0e44e9e60fde99789e181bd26788a1890ae7fe2a24c69bb6246ca", size = 490329 }, - { url = "https://files.pythonhosted.org/packages/8d/9f/0c3503e819e91ca0e7a901a8e989ebf840ac7c7aea20b1fc7f31b6759f77/regex-2026.6.28-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:0c31665c0deb5c111557a1cac8c27bd5629e2f9e7fd5058900a03576c33b601c", size = 292039 }, - { url = "https://files.pythonhosted.org/packages/bb/7f/cd004e13fcad23b3794a82307dfd222e6365eb7f598bd3caab148a830bff/regex-2026.6.28-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:6bf295f2c59de77d1ea7de053607ae4dc9ceb3d57bbb6c7ec51ef4acc4ccff94", size = 289488 }, - { url = "https://files.pythonhosted.org/packages/73/4c/293fb34586fbcdc47eac436069e9c11f71fae5dadfd4889b475d7d2e5f7a/regex-2026.6.28-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:17c077586770f67e05bbffeba07fbee6b2b22244f4d4caf8d94e59d574befe04", size = 796772 }, - { url = "https://files.pythonhosted.org/packages/92/fa/c0cd1a90b7d12d9dc155cfc8bdea8df9720988ea5b07e8fa1eccbd0ab2dd/regex-2026.6.28-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:0e6cb5a61486f9062397d2e189573b39d38ecfaed698fd9fb6e2756a8ebb8762", size = 865467 }, - { url = "https://files.pythonhosted.org/packages/4e/db/0b479973046d005a1eaea299d5d536aeecb9488a16d9cbb8286338102e2d/regex-2026.6.28-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:e86e91a2664f44c3a4e363a7d78fb17c27d5046882e30ea5a877f5e89b28d2ba", size = 912345 }, - { url = "https://files.pythonhosted.org/packages/5b/5b/d65adfbd02f32212431bca1f06d1e2eb763a20b12978b454bafaf23dacb7/regex-2026.6.28-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4dfd1331c49233998d84fc5f1f4436cf7a435a7655f6cf0f490229bb5c7254e5", size = 801291 }, - { url = "https://files.pythonhosted.org/packages/fc/09/2103686defaf9a0a31c1663782359d5b45f42524c64cca681f5481e44a5e/regex-2026.6.28-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:cadea12805a1bce0b091c302b814207be26fb60a9c0e7f9ad2f9e21790a429fe", size = 777106 }, - { url = "https://files.pythonhosted.org/packages/85/5a/b57593c0aa23ed269ec332fbcf07852abcb6b746e811d9464e0d09b4e25f/regex-2026.6.28-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:5f2c1682b67ad5d2376498f2a5a2a8f782fa2e4a06d0465b5e357799806e8a20", size = 785175 }, - { url = "https://files.pythonhosted.org/packages/79/59/c36e756ad29bf14d7b6c6d7138952476b21f6160286cedb98ac13481c993/regex-2026.6.28-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:64e142eb55e84868087da1375d7c36ff97d55010951849f515322a91d5fef1b4", size = 860186 }, - { url = "https://files.pythonhosted.org/packages/61/66/49808aea0da9649c300139360708fb91b7144be1f962fcebf96755fde948/regex-2026.6.28-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:abb4daabe7be63273787a62dfd6164dadf8f7a63fbec3d2730e5e5e7126d858c", size = 765754 }, - { url = "https://files.pythonhosted.org/packages/be/c5/52bbd436cf2200decdf48825fa38363eaaeebb77011ea9928a1ef9e0b9f2/regex-2026.6.28-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:ec2b2ad00ab8c16a2798cc8db80c53c4d5b8b3a2441f6cbaef06625f5ca25854", size = 852085 }, - { url = "https://files.pythonhosted.org/packages/f9/c3/0390b66e3019497143fe768b3ba567b64d8b24f3812d09506deb86f4a0f0/regex-2026.6.28-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:bfc9677982c914d9085b8e1c3b3ae6e88f139fb56531c2416d6c8f338093c22b", size = 789600 }, - { url = "https://files.pythonhosted.org/packages/88/fd/ab5b03653a244975069fed93d73f4f5f7484c03a84cedb238292510d7182/regex-2026.6.28-cp313-cp313-win32.whl", hash = "sha256:bf54bc693fc4e0530e666ba5ec4bcba14dbe8f66b7cfc15c27317d1a6e40b9a5", size = 267088 }, - { url = "https://files.pythonhosted.org/packages/68/55/21022f7d3143210ae8d4ff905c45306237b657375cc0b97883f49db3d423/regex-2026.6.28-cp313-cp313-win_amd64.whl", hash = "sha256:e128feaf65bf3d9eb91bec92322a8f7e4835e9c798f3e9ea4b69f4def85620e3", size = 277680 }, - { url = "https://files.pythonhosted.org/packages/b6/99/7f664804f1aef924542b0b233996b78b3e4d0a52d9951358aac99f129f51/regex-2026.6.28-cp313-cp313-win_arm64.whl", hash = "sha256:695873e0ea8d3815ea9e92e2c68faf039cc450e2c0a62a31afe2049eb11be767", size = 277017 }, - { url = "https://files.pythonhosted.org/packages/cb/e1/9eb83518e159d719fd681c4932dc2aaff855ce72451e1d05d69466f25a96/regex-2026.6.28-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:189dbf9fc4252d9f1352bf4bd1bef885edb6cc4b7341df202a65f821aaa3891c", size = 494195 }, - { url = "https://files.pythonhosted.org/packages/fd/e2/e259c5f2f7be269d0e2fb54275c1fa6a13fb47019f389c3f3ae457447825/regex-2026.6.28-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:9277a4c6503390aa39cb4483b87ec0384faee0850a23b5cea33d008b5d8d83f1", size = 293976 }, - { url = "https://files.pythonhosted.org/packages/8d/4e/9bdf444014d22b045d0c82ca114fac7e07a597b5b5331b7c4ce6328426e2/regex-2026.6.28-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:17eddca4e8ea9af0b5739314776cdf0172a49731ab61f2e1ea66e066ddd46c97", size = 292340 }, - { url = "https://files.pythonhosted.org/packages/fd/3a/f49b11e59cbfe187ace0053a460bd72a0169b8cd52e7db9421a074ce7a43/regex-2026.6.28-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e4466b8641e00c697aab5a73150150d2b2ea96b131c595691f42031abafd9f4d", size = 811704 }, - { url = "https://files.pythonhosted.org/packages/2f/fb/ad04c39e149bf8b6cf357df5fff78341733ec366780a00c803a36735818c/regex-2026.6.28-cp313-cp313t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:9cfcd4b0bdcf768c498415c170d1ed2a25a99bf0b65fa253bbd02f68ceba6475", size = 871157 }, - { url = "https://files.pythonhosted.org/packages/7f/64/0e5ba31c11eb8ef7aac19a690c1211fc9aa9990caf09565785ebb0081b9a/regex-2026.6.28-cp313-cp313t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:80c7adf1ef647f6b1e8aa2ca280e517174cd08bdf7a2e412cdfb68bd6a0917cb", size = 917287 }, - { url = "https://files.pythonhosted.org/packages/11/75/6b78df2b858c2fcbbc4858fdc3f2975cf2703be374b2842db7d2c32591a7/regex-2026.6.28-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a043f5770e82283a22aed4cefef1a4e0f9dd8fd7184cb6ce0ad2e579e2134a9e", size = 816333 }, - { url = "https://files.pythonhosted.org/packages/b4/01/ecfe665a3694d5eda9f3ec686c856438ada0943947b6005e90556a1e2cdf/regex-2026.6.28-cp313-cp313t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:3bd630a8dba06b55254ea5ee862194edab52ec783100d2ef1cd15a9c512fee27", size = 785518 }, - { url = "https://files.pythonhosted.org/packages/b4/0a/88f9cd88ff1e82881605c4ffd62d77ee67d051232cfe6f8e9a64b86cf0e8/regex-2026.6.28-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:b77207e3cee13086f1906a6a2a12b41244c577e8ad9370d4b35ae1d548d354f3", size = 801371 }, - { url = "https://files.pythonhosted.org/packages/a8/97/601483732f93275482ceb9fed57813dfed7c47d3a019db6ec4a3bb6e23e0/regex-2026.6.28-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:6de82c268e5d101ee9e3ffd869924aa9a371e3a21e752cf4fa17b6ce50d219f7", size = 866517 }, - { url = "https://files.pythonhosted.org/packages/81/ed/385c2a0351b994a693453c1d1a6e9af9eb35db3c9460d76b5078acd70c62/regex-2026.6.28-cp313-cp313t-musllinux_1_2_riscv64.whl", hash = "sha256:b15859e3908544fb99cf47341dcf0bfd089147d258c4c4d8a29e5b087f8085cb", size = 772834 }, - { url = "https://files.pythonhosted.org/packages/06/bc/bbf4a5b3b29770d7f307d3c28b5b1bca0105b0cb424be0a4eb1339bc92cf/regex-2026.6.28-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:c91487a917edd48a1ea646fdf60d7936d304f0e686fa7ea8326e47efca51d816", size = 856606 }, - { url = "https://files.pythonhosted.org/packages/28/26/51d74fff82f682819979249f8d700267108ba5dc4eb284b0e11b9c85e4b3/regex-2026.6.28-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:c4ac65f3e3a99fd8f3a4a74e7a6610acd1ce9dfe9b8a03d346a4922380d68aeb", size = 803475 }, - { url = "https://files.pythonhosted.org/packages/7c/3e/6be10cefdc813533fe604dbf5d3c77d2638e7ee658b2749ebadc113b6b2e/regex-2026.6.28-cp313-cp313t-win32.whl", hash = "sha256:3f6316f258bc7e6c9c2acbe9954947bbd397a81be3742a637a555f1855d6618d", size = 269126 }, - { url = "https://files.pythonhosted.org/packages/3c/3c/32cda905ea1a6eeeb798291c294d8ec66ee0efe0cdba28b061e248b1d396/regex-2026.6.28-cp313-cp313t-win_amd64.whl", hash = "sha256:1484bdd6fba28422df9b5ebb04055b2e1b680e8e4f08490bb21ff0f3cc50d0ab", size = 279961 }, - { url = "https://files.pythonhosted.org/packages/ea/b9/69f4e5cd6fbe0bb420cb2dbae441ca118f2495bdda522a74da75aa9829e7/regex-2026.6.28-cp313-cp313t-win_arm64.whl", hash = "sha256:3f15020f0b69cafe57baa067ff65b29acef68ff6b1670a53bef1ca11d708e02d", size = 279266 }, + { url = "https://files.pythonhosted.org/packages/d8/dc/f7a8c9cf0768f704153d358fae2bc883199bc4ea1e4aa458f1be9d0ef2ce/regex-2026.6.28-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:b83932645630965fd860fdb70ebbf964bf3e8007f08851ea424d01f8d35454a8", size = 489471, upload-time = "2026-06-28T19:53:06.385Z" }, + { url = "https://files.pythonhosted.org/packages/44/b3/9786a4a2133e2f1cc5897ed3d2da3da29ff54b775ffa38bc5935fc24be82/regex-2026.6.28-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:e81f1952355042e517dc9861ce65c676e4a098f42402993c40461786d1f794d4", size = 291294, upload-time = "2026-06-28T19:53:09.232Z" }, + { url = "https://files.pythonhosted.org/packages/dd/1f/bfe5b529257f0853aa6b94146e0f6462f4d45aa4f3c05d5a828f415dfd40/regex-2026.6.28-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:2097591101d70bcc108af64c46f6066bb698ee067fec5f75beac0be317639311", size = 289216, upload-time = "2026-06-28T19:53:10.682Z" }, + { url = "https://files.pythonhosted.org/packages/25/56/f615165e90ac5f3b72b249240643439520bbac0ac60a9de06868528eba4c/regex-2026.6.28-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:31d7538a614b5842bf53ce329d07b43f97754ca7e6db8d69f347e071bce1c953", size = 784787, upload-time = "2026-06-28T19:53:12.393Z" }, + { url = "https://files.pythonhosted.org/packages/04/94/c9e3ad31b3d5fbe1228fee8319e0c02a5460296624f220d08764547fe6ae/regex-2026.6.28-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:f5561e47bbe2b75373b695326507743fcdd4d2cc7f5022312024ccf39fa094e0", size = 852137, upload-time = "2026-06-28T19:53:14.287Z" }, + { url = "https://files.pythonhosted.org/packages/c0/77/d506a428e446466ee298f5425a774737d0671d070425ed794bb3314d60c6/regex-2026.6.28-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:c10f2c5a55ab3dd8318d8ad5f11b530e2691c0edebebde7713066f484902c3fb", size = 899525, upload-time = "2026-06-28T19:53:15.987Z" }, + { url = "https://files.pythonhosted.org/packages/aa/72/becc00d839f19401f10a20168b44711c7b02f7f62bba875b2d8f98417435/regex-2026.6.28-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:23f7e0cc60c72486b42a685f1ff4eec90d50d4fb05e4f9c7d5363b03aa02600d", size = 794116, upload-time = "2026-06-28T19:53:17.372Z" }, + { url = "https://files.pythonhosted.org/packages/fa/11/ea2ca423eeaac2e18077a18b058614e9201f130750df2126d444e39acab2/regex-2026.6.28-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:76493755f79a88d5ed2c9e63a41d3c05997e0a7ffbe76ed8c4ded8be35b8b14c", size = 786257, upload-time = "2026-06-28T19:53:18.712Z" }, + { url = "https://files.pythonhosted.org/packages/6d/9e/f5bf7ecbd14ff2086f015c54dc24fd0d74ba5327fef0de479213f8128615/regex-2026.6.28-cp310-cp310-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:ff0f41a00f23ea5054acb61901380c41813d813eee3f80f800995710bcc52ecd", size = 769914, upload-time = "2026-06-28T19:53:20.564Z" }, + { url = "https://files.pythonhosted.org/packages/43/04/f9040a5360a06241ba5b7f2e6f1c6184e104a84e6f6522535700e94bf8e2/regex-2026.6.28-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:3c60b297292e7e1ef5d02a4759f9e452ee4c8bb95e168d8fd0b5db01bd806f9f", size = 775013, upload-time = "2026-06-28T19:53:22.067Z" }, + { url = "https://files.pythonhosted.org/packages/73/97/4e46f7abf2f864319d2bcac609af3c0532968c66a3364337778fd232b83c/regex-2026.6.28-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:a7cf03c87f7b9cbc25a8894cf9be83818406677b6b391b003ec7c884923387b5", size = 848814, upload-time = "2026-06-28T19:53:24.575Z" }, + { url = "https://files.pythonhosted.org/packages/f7/b8/3d1f995727799a1e2e693e397acb7358094606e5591b6b5fd3128d2d1409/regex-2026.6.28-cp310-cp310-musllinux_1_2_riscv64.whl", hash = "sha256:418208ea0af51cfed4f46eb9b1ea7cfc990ca284f0084ecbd951460fb089421e", size = 757702, upload-time = "2026-06-28T19:53:26.215Z" }, + { url = "https://files.pythonhosted.org/packages/20/10/fd5653b8572910a4fe9055f8959b070d7d9443c94ce986529fcdb5fb2a3c/regex-2026.6.28-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:7635fa2cddb917a6bbfac7890602573d2d8c4e470703b0640e6f86a988817ec3", size = 837140, upload-time = "2026-06-28T19:53:27.655Z" }, + { url = "https://files.pythonhosted.org/packages/5d/31/da77e3ef7b594a2aacbd03ce3d0050f33ab3e021df50c6901467c9006511/regex-2026.6.28-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:7bb96c13d6cf5880d31bbef84ca701a64d738aa491c2b79975cc33f8ad00a31e", size = 782105, upload-time = "2026-06-28T19:53:29.375Z" }, + { url = "https://files.pythonhosted.org/packages/cd/4d/c379001448d0f58b6946f168d4af96ad60a16c1553259c27b0df8701b640/regex-2026.6.28-cp310-cp310-win32.whl", hash = "sha256:56f05194c4843957dd8b3af87eb0c52d8cf0509e7f18e172d727f5f8ff840646", size = 266728, upload-time = "2026-06-28T19:53:31.813Z" }, + { url = "https://files.pythonhosted.org/packages/f3/8f/cb656529efa87d74cce0d69e606c745537016da3bdfae78f342af2242ee3/regex-2026.6.28-cp310-cp310-win_amd64.whl", hash = "sha256:70710927033af3b54369f17aaba1343b97a23d0b1aa994fa1512b08b1b8c136a", size = 277901, upload-time = "2026-06-28T19:53:33.293Z" }, + { url = "https://files.pythonhosted.org/packages/7b/ac/d35ccc309c9409406445ab2ef0b56f6a341a916ccff49ff9ac5cc6bb8e9b/regex-2026.6.28-cp310-cp310-win_arm64.whl", hash = "sha256:ed7b30185ee3f8b9b053b0be567b4d226016e2afbebc17fde1c6a4580937b688", size = 276880, upload-time = "2026-06-28T19:53:35.029Z" }, + { url = "https://files.pythonhosted.org/packages/72/db/9051b36294bdbabaa9c7db57db0fbcdfbd17f7a106c539bb423d0323faea/regex-2026.6.28-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:a71b51dd08b9b62f055fafab3dee8af8bd2ec81b373a44caef18d6c5ca28f43a", size = 489481, upload-time = "2026-06-28T19:53:36.684Z" }, + { url = "https://files.pythonhosted.org/packages/35/3f/24097a3c3ff30f9a639888900faaecabcf5f54a5bc9c851c297e11b349ef/regex-2026.6.28-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:9c26a47770d30a0f85c01e261d2a3ebc342c4af6fd666dbd8c1fe4cbf3adf726", size = 291292, upload-time = "2026-06-28T19:53:38.39Z" }, + { url = "https://files.pythonhosted.org/packages/5e/cc/e0d762a189cfb4e8926d16e691720690d139a977b38fdb80230c259332ab/regex-2026.6.28-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:e5efbc1af38f97e300d43028e5a92e752d924bcfb7f465d8669d5d5a6e78c233", size = 289232, upload-time = "2026-06-28T19:53:40.181Z" }, + { url = "https://files.pythonhosted.org/packages/4b/c8/ca0ac7f09cc88ca61e0c61c53f7db29334f660ffba5d0b52378e7c44723c/regex-2026.6.28-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f1758df6fdd8c800620a5638958720e8a635e1da49a2f09df2dd63e94a24ec4a", size = 792332, upload-time = "2026-06-28T19:53:41.782Z" }, + { url = "https://files.pythonhosted.org/packages/8e/92/04ae94cbe0dd1f478b2aef6c46f995bb6946d3e338d4b28605478b66a2b7/regex-2026.6.28-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:ad73ecf20c1ef5c975639f8bf845a9370fcf7dada7edc1e3b0bca20e2f8202f6", size = 861743, upload-time = "2026-06-28T19:53:43.261Z" }, + { url = "https://files.pythonhosted.org/packages/4c/ec/024d7638c807679ff8a0e6081d01d66c7762339af1cac71e45911587ff9a/regex-2026.6.28-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:4d80c798b0eec6ea3d45f8816a1e8886c5664615d347d89e8c075b576a1b5a5d", size = 906481, upload-time = "2026-06-28T19:53:44.948Z" }, + { url = "https://files.pythonhosted.org/packages/cd/fd/93bfe5af45f0be4fa8983945455c0e6924e1aeb879cde227958869c1e71c/regex-2026.6.28-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a361feeaf1b6ba1df060f2ff5c5947092edf537a35ce78e76387ac56d3e0f4a4", size = 799867, upload-time = "2026-06-28T19:53:46.997Z" }, + { url = "https://files.pythonhosted.org/packages/ee/fd/e5d965d41f2398c8ce0f37a4652f03bb297fd009bb796d390134225dda12/regex-2026.6.28-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:8b92366d9c8bba9642989534073662abdd9b41faf7603a7ae71597833f3b88f0", size = 773632, upload-time = "2026-06-28T19:53:48.892Z" }, + { url = "https://files.pythonhosted.org/packages/eb/d9/ff39afaec92b9ee2dba0302a4783976005091681069808938c31cf8df3b6/regex-2026.6.28-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:11251768cc23f097dd61b18f67966e70f74da822784d17e12a444eb6b29d4288", size = 781669, upload-time = "2026-06-28T19:53:50.693Z" }, + { url = "https://files.pythonhosted.org/packages/45/4e/e2fd4bb8228e10c24af2d7ff867182372190e498eab9fd29cbe54c403c95/regex-2026.6.28-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:ad5c67786145ec28a71a267d9f9d92bdc8d70d65541eea852c253f520a01f918", size = 854497, upload-time = "2026-06-28T19:53:52.323Z" }, + { url = "https://files.pythonhosted.org/packages/72/7c/f0340384a973082979064156d05f3d2cc1dced7371efcd7a1b45726a1a8a/regex-2026.6.28-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:f1da438e739765c3e85175ede05816cbede3caaacb1e0680568bda6119bfdfca", size = 763335, upload-time = "2026-06-28T19:53:54.024Z" }, + { url = "https://files.pythonhosted.org/packages/e1/32/90ce0d0898e205506cc22b9c81cfb16b722e06ca5f50fad51c053c2a727b/regex-2026.6.28-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:d98b639046e51c5de64d9f77351532105e99ca271cb6f7640e1f903d6ab63032", size = 844615, upload-time = "2026-06-28T19:53:56.216Z" }, + { url = "https://files.pythonhosted.org/packages/6a/ef/55abb149599dce1ade687170557129524011eeb3d92afe02429cea7754a2/regex-2026.6.28-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:1e164ace4dbab5c6ad4a4ac7c41a2638fe226d0c770a86f2eb041f594bac6ee7", size = 789193, upload-time = "2026-06-28T19:53:57.791Z" }, + { url = "https://files.pythonhosted.org/packages/f8/ea/cf7f6f6f152e52fdad978b913bf24c14df647eca0f81ef31f3aee0be8982/regex-2026.6.28-cp311-cp311-win32.whl", hash = "sha256:3169a3159e4d99d9ae85ff0ed90ef3b8906cc3152653b6078b842ace6c8f72c3", size = 266731, upload-time = "2026-06-28T19:53:59.938Z" }, + { url = "https://files.pythonhosted.org/packages/c6/cf/a48d8e8d406b22481cad146f48fa0dfca3c5f402b91f26d8e5a0fe4f513d/regex-2026.6.28-cp311-cp311-win_amd64.whl", hash = "sha256:5977295b0a74e8241df8a4b3b27b12412a831f6fa32ee8b755039592cd768c3d", size = 277918, upload-time = "2026-06-28T19:54:01.502Z" }, + { url = "https://files.pythonhosted.org/packages/89/b2/a222392207db7ed86281a732a99f7cf7f2bb35d332799e892b8510be000e/regex-2026.6.28-cp311-cp311-win_arm64.whl", hash = "sha256:f5fbaef40c3e9282ccee4b075f5600a0d858aa0c34147732f1baa69c8188a95d", size = 276876, upload-time = "2026-06-28T19:54:03.411Z" }, + { url = "https://files.pythonhosted.org/packages/da/21/44aa415873032056c43eac21c67285deb2cf66cddb2a964c3cdc8f803efc/regex-2026.6.28-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:81cc5793ad33a10444445e8d29d3c73e752c8fb2e120772d70fcb6d41df40fe1", size = 490480, upload-time = "2026-06-28T19:54:05.392Z" }, + { url = "https://files.pythonhosted.org/packages/8b/5f/30d4116093c2128099f78b6990dfc1698fdbf3ee528f1e1c647378034c79/regex-2026.6.28-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:e18225243250a1f7d7e5e5d883f3b96465cd79031acf5c6db902b7025f2125d9", size = 292137, upload-time = "2026-06-28T19:54:07.088Z" }, + { url = "https://files.pythonhosted.org/packages/cb/0e/ca20a0e0de49837e6337603a91ab77556aa27033ac5b975615d98698cfb3/regex-2026.6.28-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ecd1638b1c2db1f2d01c182a4b0d3e2e88b0e99910320a745c1727ee3638ddab", size = 289623, upload-time = "2026-06-28T19:54:08.762Z" }, + { url = "https://files.pythonhosted.org/packages/50/11/c013422a7e2c59946df8ac93e792a4922c98287f2a2181341603c78a5d98/regex-2026.6.28-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4303ebe16b74eeb3fe2715745023266fea92fd44a23f3e7bb2fb48c7a7bbc195", size = 796756, upload-time = "2026-06-28T19:54:10.616Z" }, + { url = "https://files.pythonhosted.org/packages/b0/95/1309645a0e1ee6fb91d954501da57a0b33d50ad2a9acb313702851a7054e/regex-2026.6.28-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:56b856b70b96c381d837f609eee442a1bd320cd2159f5c294b679552fb1a7eaf", size = 865465, upload-time = "2026-06-28T19:54:12.742Z" }, + { url = "https://files.pythonhosted.org/packages/20/06/491802db47c6f5e2904ffa2518ad3ac27fe6bbf5a66d73210a95cc080d47/regex-2026.6.28-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:f74675ab76ab1d005ffba4dee308e53e89efc22be6e9f9fae5b539a3f81bdff2", size = 912350, upload-time = "2026-06-28T19:54:14.508Z" }, + { url = "https://files.pythonhosted.org/packages/5e/60/3ba57840bcc7e2367090360de0c15a5ba6ad22be89314251105f2e943f43/regex-2026.6.28-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:90581684565a93f7258af1e5d3f41ef20d7d7c61f2a428183a342bcb65485e38", size = 801261, upload-time = "2026-06-28T19:54:16.432Z" }, + { url = "https://files.pythonhosted.org/packages/eb/27/af1eb74e9a78c782b3e450b611a595e44906da8a5107e1227f4a7fd0480b/regex-2026.6.28-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:28f9e6c28f9b90f6f784595a33240a57e181e61b6ee3dc259b25c61e356d1aa3", size = 777072, upload-time = "2026-06-28T19:54:18.128Z" }, + { url = "https://files.pythonhosted.org/packages/20/18/fdd4c883a39e3ed00d669062af1135809bfd3281bf528150849fbd68825b/regex-2026.6.28-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:378a71d861fc7c8806b04ac5b133d53c0e774f92f5d9663a539872d3fa2b0417", size = 785119, upload-time = "2026-06-28T19:54:20.314Z" }, + { url = "https://files.pythonhosted.org/packages/1c/79/0aabe34b8482dcadf64355f70f96e22eba5ec6c1efb33563f89654f4061c/regex-2026.6.28-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:4cc199874ecd6267a49b111052250825bfe19b5101b23b2ba80f54efa3e0994e", size = 860118, upload-time = "2026-06-28T19:54:22.368Z" }, + { url = "https://files.pythonhosted.org/packages/a8/2c/c973323306a27c9db7d160e9584eb7e0ece2a96224ccb0d39060558b31f9/regex-2026.6.28-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:b916a10431494ef4b4d62c6c89cab6426af7873125b8cd6c15811bf5fc58eec8", size = 765786, upload-time = "2026-06-28T19:54:24.265Z" }, + { url = "https://files.pythonhosted.org/packages/e3/df/9ca3e378e352242a4cb45573a5e9162c3ee791507702a23966fa559e36b5/regex-2026.6.28-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:2e27727fba075f1e4409416d2f537d4c30fc11f012ea507f7bd74d3e19ecb57a", size = 852120, upload-time = "2026-06-28T19:54:25.972Z" }, + { url = "https://files.pythonhosted.org/packages/a2/3e/3e31e255c4971f53cbce6306b5e3c76cbd3735a54f419bb3b2f194e9f68c/regex-2026.6.28-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:700fc6a7844bb2c4149292ac79d1df8841a00acd4d45cd32c1ebc7bcc1fd0da8", size = 789503, upload-time = "2026-06-28T19:54:27.678Z" }, + { url = "https://files.pythonhosted.org/packages/72/01/d36561c21c3033d7eeb31d51b491916817de7861acefccc5fc9db8a5037c/regex-2026.6.28-cp312-cp312-win32.whl", hash = "sha256:03376d60b6a11aecb88a79fa2be06b40faa01c6693bc31ef69435cd4818b9463", size = 267109, upload-time = "2026-06-28T19:54:29.316Z" }, + { url = "https://files.pythonhosted.org/packages/a0/59/bbbb0591f38b18c65977cd65ce64749eba1c1996c99ac04e900fc30c0dcb/regex-2026.6.28-cp312-cp312-win_amd64.whl", hash = "sha256:fbd2ded482bf99e6651992bbfcde460272724d4bbc49ef3d6b46d9312867ec84", size = 277711, upload-time = "2026-06-28T19:54:31.143Z" }, + { url = "https://files.pythonhosted.org/packages/86/06/be4f6b337d773ae5739a1bc238f97c16926e72017243735853c030f4c628/regex-2026.6.28-cp312-cp312-win_arm64.whl", hash = "sha256:37294d3d7ddb64c7e89184b2894e0f8f0a19c514bc59513d71fe692c3a8d5fc6", size = 277022, upload-time = "2026-06-28T19:54:32.97Z" }, + { url = "https://files.pythonhosted.org/packages/b6/53/d5c1b3cc0b5a0c985563ad6fac93d73ff2b300cb84342d89f044625d6bc7/regex-2026.6.28-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:b295a83426e0e44e9e60fde99789e181bd26788a1890ae7fe2a24c69bb6246ca", size = 490329, upload-time = "2026-06-28T19:54:35.775Z" }, + { url = "https://files.pythonhosted.org/packages/8d/9f/0c3503e819e91ca0e7a901a8e989ebf840ac7c7aea20b1fc7f31b6759f77/regex-2026.6.28-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:0c31665c0deb5c111557a1cac8c27bd5629e2f9e7fd5058900a03576c33b601c", size = 292039, upload-time = "2026-06-28T19:54:37.977Z" }, + { url = "https://files.pythonhosted.org/packages/bb/7f/cd004e13fcad23b3794a82307dfd222e6365eb7f598bd3caab148a830bff/regex-2026.6.28-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:6bf295f2c59de77d1ea7de053607ae4dc9ceb3d57bbb6c7ec51ef4acc4ccff94", size = 289488, upload-time = "2026-06-28T19:54:39.545Z" }, + { url = "https://files.pythonhosted.org/packages/73/4c/293fb34586fbcdc47eac436069e9c11f71fae5dadfd4889b475d7d2e5f7a/regex-2026.6.28-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:17c077586770f67e05bbffeba07fbee6b2b22244f4d4caf8d94e59d574befe04", size = 796772, upload-time = "2026-06-28T19:54:41.347Z" }, + { url = "https://files.pythonhosted.org/packages/92/fa/c0cd1a90b7d12d9dc155cfc8bdea8df9720988ea5b07e8fa1eccbd0ab2dd/regex-2026.6.28-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:0e6cb5a61486f9062397d2e189573b39d38ecfaed698fd9fb6e2756a8ebb8762", size = 865467, upload-time = "2026-06-28T19:54:43.485Z" }, + { url = "https://files.pythonhosted.org/packages/4e/db/0b479973046d005a1eaea299d5d536aeecb9488a16d9cbb8286338102e2d/regex-2026.6.28-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:e86e91a2664f44c3a4e363a7d78fb17c27d5046882e30ea5a877f5e89b28d2ba", size = 912345, upload-time = "2026-06-28T19:54:46.091Z" }, + { url = "https://files.pythonhosted.org/packages/5b/5b/d65adfbd02f32212431bca1f06d1e2eb763a20b12978b454bafaf23dacb7/regex-2026.6.28-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4dfd1331c49233998d84fc5f1f4436cf7a435a7655f6cf0f490229bb5c7254e5", size = 801291, upload-time = "2026-06-28T19:54:48.3Z" }, + { url = "https://files.pythonhosted.org/packages/fc/09/2103686defaf9a0a31c1663782359d5b45f42524c64cca681f5481e44a5e/regex-2026.6.28-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:cadea12805a1bce0b091c302b814207be26fb60a9c0e7f9ad2f9e21790a429fe", size = 777106, upload-time = "2026-06-28T19:54:50.326Z" }, + { url = "https://files.pythonhosted.org/packages/85/5a/b57593c0aa23ed269ec332fbcf07852abcb6b746e811d9464e0d09b4e25f/regex-2026.6.28-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:5f2c1682b67ad5d2376498f2a5a2a8f782fa2e4a06d0465b5e357799806e8a20", size = 785175, upload-time = "2026-06-28T19:54:52.172Z" }, + { url = "https://files.pythonhosted.org/packages/79/59/c36e756ad29bf14d7b6c6d7138952476b21f6160286cedb98ac13481c993/regex-2026.6.28-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:64e142eb55e84868087da1375d7c36ff97d55010951849f515322a91d5fef1b4", size = 860186, upload-time = "2026-06-28T19:54:54.11Z" }, + { url = "https://files.pythonhosted.org/packages/61/66/49808aea0da9649c300139360708fb91b7144be1f962fcebf96755fde948/regex-2026.6.28-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:abb4daabe7be63273787a62dfd6164dadf8f7a63fbec3d2730e5e5e7126d858c", size = 765754, upload-time = "2026-06-28T19:54:56.04Z" }, + { url = "https://files.pythonhosted.org/packages/be/c5/52bbd436cf2200decdf48825fa38363eaaeebb77011ea9928a1ef9e0b9f2/regex-2026.6.28-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:ec2b2ad00ab8c16a2798cc8db80c53c4d5b8b3a2441f6cbaef06625f5ca25854", size = 852085, upload-time = "2026-06-28T19:54:57.988Z" }, + { url = "https://files.pythonhosted.org/packages/f9/c3/0390b66e3019497143fe768b3ba567b64d8b24f3812d09506deb86f4a0f0/regex-2026.6.28-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:bfc9677982c914d9085b8e1c3b3ae6e88f139fb56531c2416d6c8f338093c22b", size = 789600, upload-time = "2026-06-28T19:54:59.977Z" }, + { url = "https://files.pythonhosted.org/packages/88/fd/ab5b03653a244975069fed93d73f4f5f7484c03a84cedb238292510d7182/regex-2026.6.28-cp313-cp313-win32.whl", hash = "sha256:bf54bc693fc4e0530e666ba5ec4bcba14dbe8f66b7cfc15c27317d1a6e40b9a5", size = 267088, upload-time = "2026-06-28T19:55:02.159Z" }, + { url = "https://files.pythonhosted.org/packages/68/55/21022f7d3143210ae8d4ff905c45306237b657375cc0b97883f49db3d423/regex-2026.6.28-cp313-cp313-win_amd64.whl", hash = "sha256:e128feaf65bf3d9eb91bec92322a8f7e4835e9c798f3e9ea4b69f4def85620e3", size = 277680, upload-time = "2026-06-28T19:55:04.185Z" }, + { url = "https://files.pythonhosted.org/packages/b6/99/7f664804f1aef924542b0b233996b78b3e4d0a52d9951358aac99f129f51/regex-2026.6.28-cp313-cp313-win_arm64.whl", hash = "sha256:695873e0ea8d3815ea9e92e2c68faf039cc450e2c0a62a31afe2049eb11be767", size = 277017, upload-time = "2026-06-28T19:55:06.29Z" }, + { url = "https://files.pythonhosted.org/packages/cb/e1/9eb83518e159d719fd681c4932dc2aaff855ce72451e1d05d69466f25a96/regex-2026.6.28-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:189dbf9fc4252d9f1352bf4bd1bef885edb6cc4b7341df202a65f821aaa3891c", size = 494195, upload-time = "2026-06-28T19:55:08.292Z" }, + { url = "https://files.pythonhosted.org/packages/fd/e2/e259c5f2f7be269d0e2fb54275c1fa6a13fb47019f389c3f3ae457447825/regex-2026.6.28-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:9277a4c6503390aa39cb4483b87ec0384faee0850a23b5cea33d008b5d8d83f1", size = 293976, upload-time = "2026-06-28T19:55:10.014Z" }, + { url = "https://files.pythonhosted.org/packages/8d/4e/9bdf444014d22b045d0c82ca114fac7e07a597b5b5331b7c4ce6328426e2/regex-2026.6.28-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:17eddca4e8ea9af0b5739314776cdf0172a49731ab61f2e1ea66e066ddd46c97", size = 292340, upload-time = "2026-06-28T19:55:11.88Z" }, + { url = "https://files.pythonhosted.org/packages/fd/3a/f49b11e59cbfe187ace0053a460bd72a0169b8cd52e7db9421a074ce7a43/regex-2026.6.28-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e4466b8641e00c697aab5a73150150d2b2ea96b131c595691f42031abafd9f4d", size = 811704, upload-time = "2026-06-28T19:55:13.612Z" }, + { url = "https://files.pythonhosted.org/packages/2f/fb/ad04c39e149bf8b6cf357df5fff78341733ec366780a00c803a36735818c/regex-2026.6.28-cp313-cp313t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:9cfcd4b0bdcf768c498415c170d1ed2a25a99bf0b65fa253bbd02f68ceba6475", size = 871157, upload-time = "2026-06-28T19:55:15.797Z" }, + { url = "https://files.pythonhosted.org/packages/7f/64/0e5ba31c11eb8ef7aac19a690c1211fc9aa9990caf09565785ebb0081b9a/regex-2026.6.28-cp313-cp313t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:80c7adf1ef647f6b1e8aa2ca280e517174cd08bdf7a2e412cdfb68bd6a0917cb", size = 917287, upload-time = "2026-06-28T19:55:18.692Z" }, + { url = "https://files.pythonhosted.org/packages/11/75/6b78df2b858c2fcbbc4858fdc3f2975cf2703be374b2842db7d2c32591a7/regex-2026.6.28-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a043f5770e82283a22aed4cefef1a4e0f9dd8fd7184cb6ce0ad2e579e2134a9e", size = 816333, upload-time = "2026-06-28T19:55:20.973Z" }, + { url = "https://files.pythonhosted.org/packages/b4/01/ecfe665a3694d5eda9f3ec686c856438ada0943947b6005e90556a1e2cdf/regex-2026.6.28-cp313-cp313t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:3bd630a8dba06b55254ea5ee862194edab52ec783100d2ef1cd15a9c512fee27", size = 785518, upload-time = "2026-06-28T19:55:23.003Z" }, + { url = "https://files.pythonhosted.org/packages/b4/0a/88f9cd88ff1e82881605c4ffd62d77ee67d051232cfe6f8e9a64b86cf0e8/regex-2026.6.28-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:b77207e3cee13086f1906a6a2a12b41244c577e8ad9370d4b35ae1d548d354f3", size = 801371, upload-time = "2026-06-28T19:55:24.888Z" }, + { url = "https://files.pythonhosted.org/packages/a8/97/601483732f93275482ceb9fed57813dfed7c47d3a019db6ec4a3bb6e23e0/regex-2026.6.28-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:6de82c268e5d101ee9e3ffd869924aa9a371e3a21e752cf4fa17b6ce50d219f7", size = 866517, upload-time = "2026-06-28T19:55:27.232Z" }, + { url = "https://files.pythonhosted.org/packages/81/ed/385c2a0351b994a693453c1d1a6e9af9eb35db3c9460d76b5078acd70c62/regex-2026.6.28-cp313-cp313t-musllinux_1_2_riscv64.whl", hash = "sha256:b15859e3908544fb99cf47341dcf0bfd089147d258c4c4d8a29e5b087f8085cb", size = 772834, upload-time = "2026-06-28T19:55:29.154Z" }, + { url = "https://files.pythonhosted.org/packages/06/bc/bbf4a5b3b29770d7f307d3c28b5b1bca0105b0cb424be0a4eb1339bc92cf/regex-2026.6.28-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:c91487a917edd48a1ea646fdf60d7936d304f0e686fa7ea8326e47efca51d816", size = 856606, upload-time = "2026-06-28T19:55:32.186Z" }, + { url = "https://files.pythonhosted.org/packages/28/26/51d74fff82f682819979249f8d700267108ba5dc4eb284b0e11b9c85e4b3/regex-2026.6.28-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:c4ac65f3e3a99fd8f3a4a74e7a6610acd1ce9dfe9b8a03d346a4922380d68aeb", size = 803475, upload-time = "2026-06-28T19:55:34.328Z" }, + { url = "https://files.pythonhosted.org/packages/7c/3e/6be10cefdc813533fe604dbf5d3c77d2638e7ee658b2749ebadc113b6b2e/regex-2026.6.28-cp313-cp313t-win32.whl", hash = "sha256:3f6316f258bc7e6c9c2acbe9954947bbd397a81be3742a637a555f1855d6618d", size = 269126, upload-time = "2026-06-28T19:55:36.565Z" }, + { url = "https://files.pythonhosted.org/packages/3c/3c/32cda905ea1a6eeeb798291c294d8ec66ee0efe0cdba28b061e248b1d396/regex-2026.6.28-cp313-cp313t-win_amd64.whl", hash = "sha256:1484bdd6fba28422df9b5ebb04055b2e1b680e8e4f08490bb21ff0f3cc50d0ab", size = 279961, upload-time = "2026-06-28T19:55:38.456Z" }, + { url = "https://files.pythonhosted.org/packages/ea/b9/69f4e5cd6fbe0bb420cb2dbae441ca118f2495bdda522a74da75aa9829e7/regex-2026.6.28-cp313-cp313t-win_arm64.whl", hash = "sha256:3f15020f0b69cafe57baa067ff65b29acef68ff6b1670a53bef1ca11d708e02d", size = 279266, upload-time = "2026-06-28T19:55:40.62Z" }, + { url = "https://files.pythonhosted.org/packages/3b/fb/fad3b810a5bb1e09b9e5d6913fc6ba88cab738fdf283196827a3c59a4c10/regex-2026.6.28-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:f7c032b0c8a73739ff8ff1aaf30c281fa19c17bf7f1543256c8507390db7807c", size = 490407, upload-time = "2026-06-28T19:55:42.724Z" }, + { url = "https://files.pythonhosted.org/packages/d6/52/b8c79d12276d93e90e707e939b396034c04980caf1235312ef790f8e11fc/regex-2026.6.28-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:f6710f512c57b84f127a23d0f59560a03b64136eff419ae1be5ab557577fe5e3", size = 291988, upload-time = "2026-06-28T19:55:44.549Z" }, + { url = "https://files.pythonhosted.org/packages/23/d2/6a911f18279daa8d7bb8b20d771ddb6ef31fabd35f5921f9d3ba21640e80/regex-2026.6.28-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:c0013958f427bd82509a186b9ff206d66cb8d60a81fc797a4c717afd18c5b0ba", size = 289704, upload-time = "2026-06-28T19:55:46.365Z" }, + { url = "https://files.pythonhosted.org/packages/fd/22/ad1955c47c669291a05804d53d7071cc0732dfdf166857be38003cedc2d1/regex-2026.6.28-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:94f06cdcd6421f8e194ad312ea608020381250df9b8a57661c1b57e9e5273878", size = 797017, upload-time = "2026-06-28T19:55:48.166Z" }, + { url = "https://files.pythonhosted.org/packages/e5/67/a83159ff8703ab4d0c2cf99e76ebf289b7b4a501623241d09f88f3614f80/regex-2026.6.28-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:ec9689392f7494ff4e3f8e7e8522f9158f11023f337eaaf04a64542fc45bbf26", size = 866112, upload-time = "2026-06-28T19:55:51.047Z" }, + { url = "https://files.pythonhosted.org/packages/b9/09/7bff2d6dbbd77421b3274aa51db1c887381cbc5b6eda93598c3e882ea345/regex-2026.6.28-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:aa084684e6d2078bf6139e374d1fc2af5ddc1ac7122759a2db716d68169f6fd0", size = 911554, upload-time = "2026-06-28T19:55:53.707Z" }, + { url = "https://files.pythonhosted.org/packages/29/44/ae59c3826e7ba492e56795cdf74ea2a7b5b7c5ea116afb79ee4956a5dff1/regex-2026.6.28-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:40455e6840dc4e96a6fe50f4cedc957de2752c954d91e789812be55d49be199a", size = 800665, upload-time = "2026-06-28T19:55:55.875Z" }, + { url = "https://files.pythonhosted.org/packages/d6/19/6fd033d2ab00f35d445aaeaf3307c1e721424dcbfd48f6f65c857cb939cf/regex-2026.6.28-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:530b5c223b9ca5dd8370ac502e080aee0e4ded32be987c6564b425fb5523d581", size = 777243, upload-time = "2026-06-28T19:55:57.909Z" }, + { url = "https://files.pythonhosted.org/packages/4e/9d/99730f26df4938049ab1e652ca75e967b4c6739444e18d9707bfdb8af20c/regex-2026.6.28-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:8e0ed273ecd1a89be84466c1749bfe58609cc2a32b5d5e05006c4625ba96411b", size = 785784, upload-time = "2026-06-28T19:56:00.072Z" }, + { url = "https://files.pythonhosted.org/packages/48/49/105cd57162f5fc5c04cc917a1388a060cf8427e5c14353cd9044660fbf4d/regex-2026.6.28-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:0ab0d5344311fc8e8667078942056c3b9c9b4a4b1cc99f2eb8a5af54554f4acc", size = 860914, upload-time = "2026-06-28T19:56:02.017Z" }, + { url = "https://files.pythonhosted.org/packages/a2/a5/788245a95b69018f58bff2f4fd27d007cacaea088cdb390979743f1b2571/regex-2026.6.28-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:eacb79625323d9f7e7925366b917f492b8356fad58f5dc4fa12ff8c21d8f4ca9", size = 765915, upload-time = "2026-06-28T19:56:05.021Z" }, + { url = "https://files.pythonhosted.org/packages/ca/01/292065a39a004b05e67a337b18213670a7cb919d6856ac2d7df7f1a10dbb/regex-2026.6.28-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:20f4d87702702aa1d572721e146f301660c50eef6fd6cb596e48a22b0ace17db", size = 851404, upload-time = "2026-06-28T19:56:07.251Z" }, + { url = "https://files.pythonhosted.org/packages/98/9e/a93d865db0e13483ae1a01d81e2ce16d4a7fe2f9b9fe4aac4cc08590b136/regex-2026.6.28-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:1e693940a3b9e6d6e4dc2a54ecaa74b74934f77af1ef95f518a74261ef7cc1bc", size = 789373, upload-time = "2026-06-28T19:56:09.894Z" }, + { url = "https://files.pythonhosted.org/packages/82/0c/38b1685ad4017d78efbc8fa7dbbf96d8113b53750c8aa2d3609defd46605/regex-2026.6.28-cp314-cp314-win32.whl", hash = "sha256:234a51e20ebc18ab83b2c0600cf28f2e884560a0e00f743878f0b7d8e7c4cf03", size = 272496, upload-time = "2026-06-28T19:56:11.83Z" }, + { url = "https://files.pythonhosted.org/packages/55/50/e19f261ff9ba9b50722a529e09b1743ecf65eb348be99d0fd2cd7fcede1c/regex-2026.6.28-cp314-cp314-win_amd64.whl", hash = "sha256:7b15c437bc4604f03ceb3f8d37eae2f8930e320e1bc556b259848c639d9eec1a", size = 280754, upload-time = "2026-06-28T19:56:13.758Z" }, + { url = "https://files.pythonhosted.org/packages/36/b8/c9e68f3a9e33be73f20990b2c065b144ff2d0aa242608a950d8c4f3b56e8/regex-2026.6.28-cp314-cp314-win_arm64.whl", hash = "sha256:c6e6f790d01380a74ad564f216c533b86504afb61bf66f2b2e11e7f1a3e287a7", size = 280979, upload-time = "2026-06-28T19:56:15.928Z" }, + { url = "https://files.pythonhosted.org/packages/03/e6/21c425a37880c650d007c4171c6a80325446d830d85f5fbf335e7205b1e7/regex-2026.6.28-cp314-cp314t-macosx_10_13_universal2.whl", hash = "sha256:3527a72adcbe9e3600f1553b497d397c1a371d227580d41d96c3c5964109b65c", size = 494282, upload-time = "2026-06-28T19:56:18.049Z" }, + { url = "https://files.pythonhosted.org/packages/07/50/6647a7ccf5ffff995ba955a0b7d766440f4e58ce1666549c8ee998f2b972/regex-2026.6.28-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:a644f6408692812f5ead82519eed680e08d5d546fddbd9f7d9514e3c73899aa5", size = 293977, upload-time = "2026-06-28T19:56:20.145Z" }, + { url = "https://files.pythonhosted.org/packages/8c/dc/a3e141a4eaf125e50f63105570c01fa477c06ac5259dcfa95e9b90760e84/regex-2026.6.28-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:8e2fae6bb883648346f84db270dc9aafc29d8e895f62b88a75ccc83b09519820", size = 292432, upload-time = "2026-06-28T19:56:22.345Z" }, + { url = "https://files.pythonhosted.org/packages/35/ee/2ac1a6b9f167f8ff69f5a789938cc103b60cff41b24a6990daced8b88e34/regex-2026.6.28-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:debe623e09cee97ef9404575e936c610aac9bb08358c5099aaef14644a6871f2", size = 811877, upload-time = "2026-06-28T19:56:25.056Z" }, + { url = "https://files.pythonhosted.org/packages/df/7b/9a5505ee92180bcae300b1018b9ff3d3c19962436e66f2505f255e9fde35/regex-2026.6.28-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:cc579c91fb4605773483a8d940b136bcc5b854fff44fa14a1572a038f46563f1", size = 871212, upload-time = "2026-06-28T19:56:27.352Z" }, + { url = "https://files.pythonhosted.org/packages/24/4d/d61a702a9f9d1bd29b22cbef1aed6d477baa961232a7eb4d91b7775b0b3e/regex-2026.6.28-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:e7c42be203d84ecf7d487ff23f8a61ef0eb0534fa0fc317a2fce8c065d20618f", size = 917507, upload-time = "2026-06-28T19:56:29.762Z" }, + { url = "https://files.pythonhosted.org/packages/d4/60/1308066f5966b65fbb6905b99ba37e9f1cd753dd0ac08485f8257334ee92/regex-2026.6.28-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:e8184b4e2fdaf9cdfe77e38f15a4d9dc149168c9c29eb0ea17c5481d3bb80546", size = 816389, upload-time = "2026-06-28T19:56:32.043Z" }, + { url = "https://files.pythonhosted.org/packages/bd/5c/57ce2cb8d714ee0b7f11c7ee4cfe2af66df2b90f147feadcb538609a3a02/regex-2026.6.28-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:697f103104f5872d64078d8eeac59979960be8ee76115a2d3f31096312e2a400", size = 785890, upload-time = "2026-06-28T19:56:34.492Z" }, + { url = "https://files.pythonhosted.org/packages/ff/fd/1d5350d3a8a327bff0fccacb911732baf7b5b6f5529c0e3fa602a23e7dad/regex-2026.6.28-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:714d2b1aa29beef0ddfcdc72ad0771c05326551a8bb0680b0ddf74bfaad87387", size = 801451, upload-time = "2026-06-28T19:56:36.749Z" }, + { url = "https://files.pythonhosted.org/packages/f3/79/3c9e4f8a0306e030ad5a43bbbc01625fb28d58a813bc52d42fd1cc63fb2e/regex-2026.6.28-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:0f09f62e450cc2f113018cc8412aeea3a120a04e1ca7e801a0d441583f9a3b06", size = 866504, upload-time = "2026-06-28T19:56:38.994Z" }, + { url = "https://files.pythonhosted.org/packages/65/12/f747de475b54f4709efb24dd0fbc8467c64cec91f5db0d047b079646ee78/regex-2026.6.28-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:731ea12d5aeb2577eaef2393d6428b995f76eb35f68a89e03e15a97719d1de19", size = 773047, upload-time = "2026-06-28T19:56:41.061Z" }, + { url = "https://files.pythonhosted.org/packages/58/3c/f02f860e0500c1b2d61a79dec7e214b37fb9656281dcddc92397edf96678/regex-2026.6.28-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:51e952c8783eabd4706d0f63922f219bcfc1bef9b8cb35941c0d1a0396578858", size = 856665, upload-time = "2026-06-28T19:56:43.466Z" }, + { url = "https://files.pythonhosted.org/packages/4d/6c/28b3fa222513484be9dee26b7222bda109056c43ea28aa2314262ca48816/regex-2026.6.28-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:43248fe4c0ab8fbb223588a0795b11268940072c97bba30ea8f9b49d8cdfde34", size = 803573, upload-time = "2026-06-28T19:56:45.791Z" }, + { url = "https://files.pythonhosted.org/packages/fa/f0/8f86cf1a1fd85c5ab0c503c9fe4607ad4ad48978b2d8b435d94465e134c7/regex-2026.6.28-cp314-cp314t-win32.whl", hash = "sha256:fc1eddc25ad23c0f1344ab280d961ac595ead48292d7c779497975942373f493", size = 274515, upload-time = "2026-06-28T19:56:47.948Z" }, + { url = "https://files.pythonhosted.org/packages/0f/de/f8613c03b36786ddef2c930d28f9bcae861fcd541cc9203a870956cf1e83/regex-2026.6.28-cp314-cp314t-win_amd64.whl", hash = "sha256:ede8d8e53b6dde0a50f7eca902f0af76d87ab02a55aba7542da68ae3e5dfe83d", size = 283650, upload-time = "2026-06-28T19:56:50.614Z" }, + { url = "https://files.pythonhosted.org/packages/4d/f3/f5ec86839bbabe33b6dee649b62ff9a445d43de6b0ad780cf6b83c56f61e/regex-2026.6.28-cp314-cp314t-win_arm64.whl", hash = "sha256:4da6f6a72f8700b97a1a765e837fb7d5750bfd9f13acea7bae498f573e3a70a8", size = 283338, upload-time = "2026-06-28T19:56:52.879Z" }, ] [[package]] @@ -945,9 +1147,9 @@ dependencies = [ { name = "markdown-it-py" }, { name = "pygments" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/c0/8f/0722ca900cc807c13a6a0c696dacf35430f72e0ec571c4275d2371fca3e9/rich-15.0.0.tar.gz", hash = "sha256:edd07a4824c6b40189fb7ac9bc4c52536e9780fbbfbddf6f1e2502c31b068c36", size = 230680 } +sdist = { url = "https://files.pythonhosted.org/packages/c0/8f/0722ca900cc807c13a6a0c696dacf35430f72e0ec571c4275d2371fca3e9/rich-15.0.0.tar.gz", hash = "sha256:edd07a4824c6b40189fb7ac9bc4c52536e9780fbbfbddf6f1e2502c31b068c36", size = 230680, upload-time = "2026-04-12T08:24:00.75Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/82/3b/64d4899d73f91ba49a8c18a8ff3f0ea8f1c1d75481760df8c68ef5235bf5/rich-15.0.0-py3-none-any.whl", hash = "sha256:33bd4ef74232fb73fe9279a257718407f169c09b78a87ad3d296f548e27de0bb", size = 310654 }, + { url = "https://files.pythonhosted.org/packages/82/3b/64d4899d73f91ba49a8c18a8ff3f0ea8f1c1d75481760df8c68ef5235bf5/rich-15.0.0-py3-none-any.whl", hash = "sha256:33bd4ef74232fb73fe9279a257718407f169c09b78a87ad3d296f548e27de0bb", size = 310654, upload-time = "2026-04-12T08:24:02.83Z" }, ] [[package]] @@ -957,122 +1159,140 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "eth-utils" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/1b/2d/439b0728a92964a04d9c88ea1ca9ebb128893fbbd5834faa31f987f2fd4c/rlp-4.1.0.tar.gz", hash = "sha256:be07564270a96f3e225e2c107db263de96b5bc1f27722d2855bd3459a08e95a9", size = 33429 } +sdist = { url = "https://files.pythonhosted.org/packages/1b/2d/439b0728a92964a04d9c88ea1ca9ebb128893fbbd5834faa31f987f2fd4c/rlp-4.1.0.tar.gz", hash = "sha256:be07564270a96f3e225e2c107db263de96b5bc1f27722d2855bd3459a08e95a9", size = 33429, upload-time = "2025-02-04T22:05:59.089Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/99/fb/e4c0ced9893b84ac95b7181d69a9786ce5879aeb3bbbcbba80a164f85d6a/rlp-4.1.0-py3-none-any.whl", hash = "sha256:8eca394c579bad34ee0b937aecb96a57052ff3716e19c7a578883e767bc5da6f", size = 19973 }, + { url = "https://files.pythonhosted.org/packages/99/fb/e4c0ced9893b84ac95b7181d69a9786ce5879aeb3bbbcbba80a164f85d6a/rlp-4.1.0-py3-none-any.whl", hash = "sha256:8eca394c579bad34ee0b937aecb96a57052ff3716e19c7a578883e767bc5da6f", size = 19973, upload-time = "2025-02-04T22:05:57.05Z" }, ] [[package]] name = "ruff" version = "0.15.20" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/43/dc/35b341fc554ba02f217fc10da57d1a75168cfbcf75b0ef2202176d4c4f2d/ruff-0.15.20.tar.gz", hash = "sha256:1416eb04349192646b54de98f146c4f59afe37d0decfc02c3cbbf396f3a28566", size = 4755489 } +sdist = { url = "https://files.pythonhosted.org/packages/43/dc/35b341fc554ba02f217fc10da57d1a75168cfbcf75b0ef2202176d4c4f2d/ruff-0.15.20.tar.gz", hash = "sha256:1416eb04349192646b54de98f146c4f59afe37d0decfc02c3cbbf396f3a28566", size = 4755489, upload-time = "2026-06-25T17:20:37.578Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/94/d9/2d5014f0253ba541d2061d9fa7193f48e941c8b21bb88a7ff9bbe0bd0596/ruff-0.15.20-py3-none-linux_armv6l.whl", hash = "sha256:00e188c53e499c3c1637f73c91dcf2fb56d576cab76ce1be50a27c4e80e37078", size = 10839665 }, - { url = "https://files.pythonhosted.org/packages/c6/d3/ac1798ba64f670698867fcfc591d50e7e421bef137db564858f619a30fcf/ruff-0.15.20-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:9ebd1fd9b9c95fc0bd7b2761aebec1f030013d2e193a2901b224af68fe47251b", size = 11208649 }, - { url = "https://files.pythonhosted.org/packages/47/47/d3ac899991202095dfcf3d5176be4272642be3cf981a2f1a30f72a2afb95/ruff-0.15.20-py3-none-macosx_11_0_arm64.whl", hash = "sha256:c5b16cdd67ca108185cd36dce98c576350c03b1660a751de725fb049193a0632", size = 10622638 }, - { url = "https://files.pythonhosted.org/packages/33/13/4e043fe30aa94d4ff5213a9881fc296d12960f5971b234a5263fdc225312/ruff-0.15.20-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3413bb3c3d2ca6a8208f1f4809cd2dca3c6de6d0b491c0e70847672bde6e6efd", size = 10984227 }, - { url = "https://files.pythonhosted.org/packages/76/e6/92e7bf40388bc5800073b96564f56264f7e48bfd1a498f5ced6ae6d5a769/ruff-0.15.20-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:bd7ec42b3bb3da066488db093308a69c4ac5ee6d2af333a86ba6e2eb2e7dd44b", size = 10622882 }, - { url = "https://files.pythonhosted.org/packages/13/7a/43460be3f24495a3aa46d4b16873e2c4941b3b5f0b00cf88c03b7b94b339/ruff-0.15.20-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e1a36ad0eb77fba9aabfb69ede54de6f376d04ac18ebea022847046d340a8267", size = 11474808 }, - { url = "https://files.pythonhosted.org/packages/27/a0/f37077884873221c6b33b4ab49eb18f9f88e54a16a25a5bca59bef46dd66/ruff-0.15.20-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b6df3b1e4610432f0386dba04d853b5f08cbbc903410c6fcc02f620f05aff53c", size = 12293094 }, - { url = "https://files.pythonhosted.org/packages/a6/74/165545b60256a9704c21ac0ec4a0d07933b320812f9584836c9f4aca4292/ruff-0.15.20-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e89f198a1ea6ef0d727c1cf16088bc91a6cb0ab947dedc966715691647186eae", size = 11526176 }, - { url = "https://files.pythonhosted.org/packages/86/b1/a976a136d40ade83ce743578399865f57001003a409acadc0ecbb3051082/ruff-0.15.20-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:309809086c2acb67624950a3c8133e80f32d0d3e27106c0cd60ff26657c9f24b", size = 11520767 }, - { url = "https://files.pythonhosted.org/packages/19/0f/f032696cb01c9b54c0263fa393474d7758f1cdc021a01b04e3cbc2500999/ruff-0.15.20-py3-none-manylinux_2_31_riscv64.whl", hash = "sha256:2d2374caa2f2c2f9e2b7da0a50802cfb8b79f55a9b5e49379f564544fbf56487", size = 11500132 }, - { url = "https://files.pythonhosted.org/packages/4b/f4/51b1a14bc69e8c224b15dab9cce8e99b425e0455d462caa2b3c9be2b6a8e/ruff-0.15.20-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:a1ed17b65293e0c2f22fc387bc13198a5de94bf4429589b0ff6946b0feaf21a3", size = 10943828 }, - { url = "https://files.pythonhosted.org/packages/71/4b/fe267640783cd02bf6c5cc290b1df1051be2ec294c678b5c15fe19e52343/ruff-0.15.20-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:f701305e66b38ea6c91882490eb73459796808e4c6362a1b765255e0cdcd4053", size = 10645418 }, - { url = "https://files.pythonhosted.org/packages/b0/c0/a65aa4ec2f5e87a1df32dc3ec1fede434fe3dfd5cbcf3b503cafc676ab54/ruff-0.15.20-py3-none-musllinux_1_2_i686.whl", hash = "sha256:5b9c0c367ad8e5d0d5b5b8537864c469a0a0e55417aadfbeca41fa61333be9f4", size = 11211770 }, - { url = "https://files.pythonhosted.org/packages/5a/a4/0caa331d954ae2723d729d351c989cb4ca8b6077d5c6c2cb6de75e98c041/ruff-0.15.20-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:01cc00dd58f0df339d0e902219dd53990ea99996a0344e5d9cc8d45d5307e460", size = 11618698 }, - { url = "https://files.pythonhosted.org/packages/10/9b/5f14927848d2fd4aa891fd88d883788c5a7baba561c7874732364045708c/ruff-0.15.20-py3-none-win32.whl", hash = "sha256:ed65ef510e43a137207e0f01cfcf998aeddb1aeeda5c9d35023e910284d7cf21", size = 10857322 }, - { url = "https://files.pythonhosted.org/packages/fa/f0/fe47c501f9dea92a26d788ff98bb5d92ed4cb4c88792c5c88af6b697dc8e/ruff-0.15.20-py3-none-win_amd64.whl", hash = "sha256:a525c81c70fb0380344dd1d8745d8cc1c890b7fc94a58d5a07bd8eb9557b8415", size = 11993274 }, - { url = "https://files.pythonhosted.org/packages/d7/2b/9555445e1201d92b3195f45cdb153a0b68f24e0a4273f6e3d5ab46e212bb/ruff-0.15.20-py3-none-win_arm64.whl", hash = "sha256:2f5b2a6d614e8700388806a14996c40fab2c47b819ef57d790a34878858ed9ca", size = 11343498 }, + { url = "https://files.pythonhosted.org/packages/94/d9/2d5014f0253ba541d2061d9fa7193f48e941c8b21bb88a7ff9bbe0bd0596/ruff-0.15.20-py3-none-linux_armv6l.whl", hash = "sha256:00e188c53e499c3c1637f73c91dcf2fb56d576cab76ce1be50a27c4e80e37078", size = 10839665, upload-time = "2026-06-25T17:19:44.702Z" }, + { url = "https://files.pythonhosted.org/packages/c6/d3/ac1798ba64f670698867fcfc591d50e7e421bef137db564858f619a30fcf/ruff-0.15.20-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:9ebd1fd9b9c95fc0bd7b2761aebec1f030013d2e193a2901b224af68fe47251b", size = 11208649, upload-time = "2026-06-25T17:19:48.787Z" }, + { url = "https://files.pythonhosted.org/packages/47/47/d3ac899991202095dfcf3d5176be4272642be3cf981a2f1a30f72a2afb95/ruff-0.15.20-py3-none-macosx_11_0_arm64.whl", hash = "sha256:c5b16cdd67ca108185cd36dce98c576350c03b1660a751de725fb049193a0632", size = 10622638, upload-time = "2026-06-25T17:19:51.354Z" }, + { url = "https://files.pythonhosted.org/packages/33/13/4e043fe30aa94d4ff5213a9881fc296d12960f5971b234a5263fdc225312/ruff-0.15.20-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3413bb3c3d2ca6a8208f1f4809cd2dca3c6de6d0b491c0e70847672bde6e6efd", size = 10984227, upload-time = "2026-06-25T17:19:54.044Z" }, + { url = "https://files.pythonhosted.org/packages/76/e6/92e7bf40388bc5800073b96564f56264f7e48bfd1a498f5ced6ae6d5a769/ruff-0.15.20-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:bd7ec42b3bb3da066488db093308a69c4ac5ee6d2af333a86ba6e2eb2e7dd44b", size = 10622882, upload-time = "2026-06-25T17:19:57.037Z" }, + { url = "https://files.pythonhosted.org/packages/13/7a/43460be3f24495a3aa46d4b16873e2c4941b3b5f0b00cf88c03b7b94b339/ruff-0.15.20-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e1a36ad0eb77fba9aabfb69ede54de6f376d04ac18ebea022847046d340a8267", size = 11474808, upload-time = "2026-06-25T17:20:00.357Z" }, + { url = "https://files.pythonhosted.org/packages/27/a0/f37077884873221c6b33b4ab49eb18f9f88e54a16a25a5bca59bef46dd66/ruff-0.15.20-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b6df3b1e4610432f0386dba04d853b5f08cbbc903410c6fcc02f620f05aff53c", size = 12293094, upload-time = "2026-06-25T17:20:03.446Z" }, + { url = "https://files.pythonhosted.org/packages/a6/74/165545b60256a9704c21ac0ec4a0d07933b320812f9584836c9f4aca4292/ruff-0.15.20-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e89f198a1ea6ef0d727c1cf16088bc91a6cb0ab947dedc966715691647186eae", size = 11526176, upload-time = "2026-06-25T17:20:06.301Z" }, + { url = "https://files.pythonhosted.org/packages/86/b1/a976a136d40ade83ce743578399865f57001003a409acadc0ecbb3051082/ruff-0.15.20-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:309809086c2acb67624950a3c8133e80f32d0d3e27106c0cd60ff26657c9f24b", size = 11520767, upload-time = "2026-06-25T17:20:09.191Z" }, + { url = "https://files.pythonhosted.org/packages/19/0f/f032696cb01c9b54c0263fa393474d7758f1cdc021a01b04e3cbc2500999/ruff-0.15.20-py3-none-manylinux_2_31_riscv64.whl", hash = "sha256:2d2374caa2f2c2f9e2b7da0a50802cfb8b79f55a9b5e49379f564544fbf56487", size = 11500132, upload-time = "2026-06-25T17:20:13.602Z" }, + { url = "https://files.pythonhosted.org/packages/4b/f4/51b1a14bc69e8c224b15dab9cce8e99b425e0455d462caa2b3c9be2b6a8e/ruff-0.15.20-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:a1ed17b65293e0c2f22fc387bc13198a5de94bf4429589b0ff6946b0feaf21a3", size = 10943828, upload-time = "2026-06-25T17:20:16.635Z" }, + { url = "https://files.pythonhosted.org/packages/71/4b/fe267640783cd02bf6c5cc290b1df1051be2ec294c678b5c15fe19e52343/ruff-0.15.20-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:f701305e66b38ea6c91882490eb73459796808e4c6362a1b765255e0cdcd4053", size = 10645418, upload-time = "2026-06-25T17:20:19.4Z" }, + { url = "https://files.pythonhosted.org/packages/b0/c0/a65aa4ec2f5e87a1df32dc3ec1fede434fe3dfd5cbcf3b503cafc676ab54/ruff-0.15.20-py3-none-musllinux_1_2_i686.whl", hash = "sha256:5b9c0c367ad8e5d0d5b5b8537864c469a0a0e55417aadfbeca41fa61333be9f4", size = 11211770, upload-time = "2026-06-25T17:20:22.033Z" }, + { url = "https://files.pythonhosted.org/packages/5a/a4/0caa331d954ae2723d729d351c989cb4ca8b6077d5c6c2cb6de75e98c041/ruff-0.15.20-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:01cc00dd58f0df339d0e902219dd53990ea99996a0344e5d9cc8d45d5307e460", size = 11618698, upload-time = "2026-06-25T17:20:25.259Z" }, + { url = "https://files.pythonhosted.org/packages/10/9b/5f14927848d2fd4aa891fd88d883788c5a7baba561c7874732364045708c/ruff-0.15.20-py3-none-win32.whl", hash = "sha256:ed65ef510e43a137207e0f01cfcf998aeddb1aeeda5c9d35023e910284d7cf21", size = 10857322, upload-time = "2026-06-25T17:20:28.612Z" }, + { url = "https://files.pythonhosted.org/packages/fa/f0/fe47c501f9dea92a26d788ff98bb5d92ed4cb4c88792c5c88af6b697dc8e/ruff-0.15.20-py3-none-win_amd64.whl", hash = "sha256:a525c81c70fb0380344dd1d8745d8cc1c890b7fc94a58d5a07bd8eb9557b8415", size = 11993274, upload-time = "2026-06-25T17:20:31.871Z" }, + { url = "https://files.pythonhosted.org/packages/d7/2b/9555445e1201d92b3195f45cdb153a0b68f24e0a4273f6e3d5ab46e212bb/ruff-0.15.20-py3-none-win_arm64.whl", hash = "sha256:2f5b2a6d614e8700388806a14996c40fab2c47b819ef57d790a34878858ed9ca", size = 11343498, upload-time = "2026-06-25T17:20:35.03Z" }, ] [[package]] name = "shellingham" version = "1.5.4" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/58/15/8b3609fd3830ef7b27b655beb4b4e9c62313a4e8da8c676e142cc210d58e/shellingham-1.5.4.tar.gz", hash = "sha256:8dbca0739d487e5bd35ab3ca4b36e11c4078f3a234bfce294b0a0291363404de", size = 10310 } +sdist = { url = "https://files.pythonhosted.org/packages/58/15/8b3609fd3830ef7b27b655beb4b4e9c62313a4e8da8c676e142cc210d58e/shellingham-1.5.4.tar.gz", hash = "sha256:8dbca0739d487e5bd35ab3ca4b36e11c4078f3a234bfce294b0a0291363404de", size = 10310, upload-time = "2023-10-24T04:13:40.426Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/e0/f9/0595336914c5619e5f28a1fb793285925a8cd4b432c9da0a987836c7f822/shellingham-1.5.4-py2.py3-none-any.whl", hash = "sha256:7ecfff8f2fd72616f7481040475a65b2bf8af90a56c89140852d1120324e8686", size = 9755 }, + { url = "https://files.pythonhosted.org/packages/e0/f9/0595336914c5619e5f28a1fb793285925a8cd4b432c9da0a987836c7f822/shellingham-1.5.4-py2.py3-none-any.whl", hash = "sha256:7ecfff8f2fd72616f7481040475a65b2bf8af90a56c89140852d1120324e8686", size = 9755, upload-time = "2023-10-24T04:13:38.866Z" }, ] [[package]] name = "sortedcontainers" version = "2.4.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/e8/c4/ba2f8066cceb6f23394729afe52f3bf7adec04bf9ed2c820b39e19299111/sortedcontainers-2.4.0.tar.gz", hash = "sha256:25caa5a06cc30b6b83d11423433f65d1f9d76c4c6a0c90e3379eaa43b9bfdb88", size = 30594 } +sdist = { url = "https://files.pythonhosted.org/packages/e8/c4/ba2f8066cceb6f23394729afe52f3bf7adec04bf9ed2c820b39e19299111/sortedcontainers-2.4.0.tar.gz", hash = "sha256:25caa5a06cc30b6b83d11423433f65d1f9d76c4c6a0c90e3379eaa43b9bfdb88", size = 30594, upload-time = "2021-05-16T22:03:42.897Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/32/46/9cb0e58b2deb7f82b84065f37f3bffeb12413f947f9388e4cac22c4621ce/sortedcontainers-2.4.0-py2.py3-none-any.whl", hash = "sha256:a163dcaede0f1c021485e957a39245190e74249897e2ae4b2aa38595db237ee0", size = 29575 }, + { url = "https://files.pythonhosted.org/packages/32/46/9cb0e58b2deb7f82b84065f37f3bffeb12413f947f9388e4cac22c4621ce/sortedcontainers-2.4.0-py2.py3-none-any.whl", hash = "sha256:a163dcaede0f1c021485e957a39245190e74249897e2ae4b2aa38595db237ee0", size = 29575, upload-time = "2021-05-16T22:03:41.177Z" }, ] [[package]] name = "tomli" version = "2.4.1" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/22/de/48c59722572767841493b26183a0d1cc411d54fd759c5607c4590b6563a6/tomli-2.4.1.tar.gz", hash = "sha256:7c7e1a961a0b2f2472c1ac5b69affa0ae1132c39adcb67aba98568702b9cc23f", size = 17543 } +sdist = { url = "https://files.pythonhosted.org/packages/22/de/48c59722572767841493b26183a0d1cc411d54fd759c5607c4590b6563a6/tomli-2.4.1.tar.gz", hash = "sha256:7c7e1a961a0b2f2472c1ac5b69affa0ae1132c39adcb67aba98568702b9cc23f", size = 17543, upload-time = "2026-03-25T20:22:03.828Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/f4/11/db3d5885d8528263d8adc260bb2d28ebf1270b96e98f0e0268d32b8d9900/tomli-2.4.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:f8f0fc26ec2cc2b965b7a3b87cd19c5c6b8c5e5f436b984e85f486d652285c30", size = 154704 }, - { url = "https://files.pythonhosted.org/packages/6d/f7/675db52c7e46064a9aa928885a9b20f4124ecb9bc2e1ce74c9106648d202/tomli-2.4.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:4ab97e64ccda8756376892c53a72bd1f964e519c77236368527f758fbc36a53a", size = 149454 }, - { url = "https://files.pythonhosted.org/packages/61/71/81c50943cf953efa35bce7646caab3cf457a7d8c030b27cfb40d7235f9ee/tomli-2.4.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:96481a5786729fd470164b47cdb3e0e58062a496f455ee41b4403be77cb5a076", size = 237561 }, - { url = "https://files.pythonhosted.org/packages/48/c1/f41d9cb618acccca7df82aaf682f9b49013c9397212cb9f53219e3abac37/tomli-2.4.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5a881ab208c0baf688221f8cecc5401bd291d67e38a1ac884d6736cbcd8247e9", size = 243824 }, - { url = "https://files.pythonhosted.org/packages/22/e4/5a816ecdd1f8ca51fb756ef684b90f2780afc52fc67f987e3c61d800a46d/tomli-2.4.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:47149d5bd38761ac8be13a84864bf0b7b70bc051806bc3669ab1cbc56216b23c", size = 242227 }, - { url = "https://files.pythonhosted.org/packages/6b/49/2b2a0ef529aa6eec245d25f0c703e020a73955ad7edf73e7f54ddc608aa5/tomli-2.4.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:ec9bfaf3ad2df51ace80688143a6a4ebc09a248f6ff781a9945e51937008fcbc", size = 247859 }, - { url = "https://files.pythonhosted.org/packages/83/bd/6c1a630eaca337e1e78c5903104f831bda934c426f9231429396ce3c3467/tomli-2.4.1-cp311-cp311-win32.whl", hash = "sha256:ff2983983d34813c1aeb0fa89091e76c3a22889ee83ab27c5eeb45100560c049", size = 97204 }, - { url = "https://files.pythonhosted.org/packages/42/59/71461df1a885647e10b6bb7802d0b8e66480c61f3f43079e0dcd315b3954/tomli-2.4.1-cp311-cp311-win_amd64.whl", hash = "sha256:5ee18d9ebdb417e384b58fe414e8d6af9f4e7a0ae761519fb50f721de398dd4e", size = 108084 }, - { url = "https://files.pythonhosted.org/packages/b8/83/dceca96142499c069475b790e7913b1044c1a4337e700751f48ed723f883/tomli-2.4.1-cp311-cp311-win_arm64.whl", hash = "sha256:c2541745709bad0264b7d4705ad453b76ccd191e64aa6f0fc66b69a293a45ece", size = 95285 }, - { url = "https://files.pythonhosted.org/packages/c1/ba/42f134a3fe2b370f555f44b1d72feebb94debcab01676bf918d0cb70e9aa/tomli-2.4.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:c742f741d58a28940ce01d58f0ab2ea3ced8b12402f162f4d534dfe18ba1cd6a", size = 155924 }, - { url = "https://files.pythonhosted.org/packages/dc/c7/62d7a17c26487ade21c5422b646110f2162f1fcc95980ef7f63e73c68f14/tomli-2.4.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:7f86fd587c4ed9dd76f318225e7d9b29cfc5a9d43de44e5754db8d1128487085", size = 150018 }, - { url = "https://files.pythonhosted.org/packages/5c/05/79d13d7c15f13bdef410bdd49a6485b1c37d28968314eabee452c22a7fda/tomli-2.4.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ff18e6a727ee0ab0388507b89d1bc6a22b138d1e2fa56d1ad494586d61d2eae9", size = 244948 }, - { url = "https://files.pythonhosted.org/packages/10/90/d62ce007a1c80d0b2c93e02cab211224756240884751b94ca72df8a875ca/tomli-2.4.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:136443dbd7e1dee43c68ac2694fde36b2849865fa258d39bf822c10e8068eac5", size = 253341 }, - { url = "https://files.pythonhosted.org/packages/1a/7e/caf6496d60152ad4ed09282c1885cca4eea150bfd007da84aea07bcc0a3e/tomli-2.4.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:5e262d41726bc187e69af7825504c933b6794dc3fbd5945e41a79bb14c31f585", size = 248159 }, - { url = "https://files.pythonhosted.org/packages/99/e7/c6f69c3120de34bbd882c6fba7975f3d7a746e9218e56ab46a1bc4b42552/tomli-2.4.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:5cb41aa38891e073ee49d55fbc7839cfdb2bc0e600add13874d048c94aadddd1", size = 253290 }, - { url = "https://files.pythonhosted.org/packages/d6/2f/4a3c322f22c5c66c4b836ec58211641a4067364f5dcdd7b974b4c5da300c/tomli-2.4.1-cp312-cp312-win32.whl", hash = "sha256:da25dc3563bff5965356133435b757a795a17b17d01dbc0f42fb32447ddfd917", size = 98141 }, - { url = "https://files.pythonhosted.org/packages/24/22/4daacd05391b92c55759d55eaee21e1dfaea86ce5c571f10083360adf534/tomli-2.4.1-cp312-cp312-win_amd64.whl", hash = "sha256:52c8ef851d9a240f11a88c003eacb03c31fc1c9c4ec64a99a0f922b93874fda9", size = 108847 }, - { url = "https://files.pythonhosted.org/packages/68/fd/70e768887666ddd9e9f5d85129e84910f2db2796f9096aa02b721a53098d/tomli-2.4.1-cp312-cp312-win_arm64.whl", hash = "sha256:f758f1b9299d059cc3f6546ae2af89670cb1c4d48ea29c3cacc4fe7de3058257", size = 95088 }, - { url = "https://files.pythonhosted.org/packages/07/06/b823a7e818c756d9a7123ba2cda7d07bc2dd32835648d1a7b7b7a05d848d/tomli-2.4.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:36d2bd2ad5fb9eaddba5226aa02c8ec3fa4f192631e347b3ed28186d43be6b54", size = 155866 }, - { url = "https://files.pythonhosted.org/packages/14/6f/12645cf7f08e1a20c7eb8c297c6f11d31c1b50f316a7e7e1e1de6e2e7b7e/tomli-2.4.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:eb0dc4e38e6a1fd579e5d50369aa2e10acfc9cace504579b2faabb478e76941a", size = 149887 }, - { url = "https://files.pythonhosted.org/packages/5c/e0/90637574e5e7212c09099c67ad349b04ec4d6020324539297b634a0192b0/tomli-2.4.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c7f2c7f2b9ca6bdeef8f0fa897f8e05085923eb091721675170254cbc5b02897", size = 243704 }, - { url = "https://files.pythonhosted.org/packages/10/8f/d3ddb16c5a4befdf31a23307f72828686ab2096f068eaf56631e136c1fdd/tomli-2.4.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f3c6818a1a86dd6dca7ddcaaf76947d5ba31aecc28cb1b67009a5877c9a64f3f", size = 251628 }, - { url = "https://files.pythonhosted.org/packages/e3/f1/dbeeb9116715abee2485bf0a12d07a8f31af94d71608c171c45f64c0469d/tomli-2.4.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:d312ef37c91508b0ab2cee7da26ec0b3ed2f03ce12bd87a588d771ae15dcf82d", size = 247180 }, - { url = "https://files.pythonhosted.org/packages/d3/74/16336ffd19ed4da28a70959f92f506233bd7cfc2332b20bdb01591e8b1d1/tomli-2.4.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:51529d40e3ca50046d7606fa99ce3956a617f9b36380da3b7f0dd3dd28e68cb5", size = 251674 }, - { url = "https://files.pythonhosted.org/packages/16/f9/229fa3434c590ddf6c0aa9af64d3af4b752540686cace29e6281e3458469/tomli-2.4.1-cp313-cp313-win32.whl", hash = "sha256:2190f2e9dd7508d2a90ded5ed369255980a1bcdd58e52f7fe24b8162bf9fedbd", size = 97976 }, - { url = "https://files.pythonhosted.org/packages/6a/1e/71dfd96bcc1c775420cb8befe7a9d35f2e5b1309798f009dca17b7708c1e/tomli-2.4.1-cp313-cp313-win_amd64.whl", hash = "sha256:8d65a2fbf9d2f8352685bc1364177ee3923d6baf5e7f43ea4959d7d8bc326a36", size = 108755 }, - { url = "https://files.pythonhosted.org/packages/83/7a/d34f422a021d62420b78f5c538e5b102f62bea616d1d75a13f0a88acb04a/tomli-2.4.1-cp313-cp313-win_arm64.whl", hash = "sha256:4b605484e43cdc43f0954ddae319fb75f04cc10dd80d830540060ee7cd0243cd", size = 95265 }, - { url = "https://files.pythonhosted.org/packages/7b/61/cceae43728b7de99d9b847560c262873a1f6c98202171fd5ed62640b494b/tomli-2.4.1-py3-none-any.whl", hash = "sha256:0d85819802132122da43cb86656f8d1f8c6587d54ae7dcaf30e90533028b49fe", size = 14583 }, + { url = "https://files.pythonhosted.org/packages/f4/11/db3d5885d8528263d8adc260bb2d28ebf1270b96e98f0e0268d32b8d9900/tomli-2.4.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:f8f0fc26ec2cc2b965b7a3b87cd19c5c6b8c5e5f436b984e85f486d652285c30", size = 154704, upload-time = "2026-03-25T20:21:10.473Z" }, + { url = "https://files.pythonhosted.org/packages/6d/f7/675db52c7e46064a9aa928885a9b20f4124ecb9bc2e1ce74c9106648d202/tomli-2.4.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:4ab97e64ccda8756376892c53a72bd1f964e519c77236368527f758fbc36a53a", size = 149454, upload-time = "2026-03-25T20:21:12.036Z" }, + { url = "https://files.pythonhosted.org/packages/61/71/81c50943cf953efa35bce7646caab3cf457a7d8c030b27cfb40d7235f9ee/tomli-2.4.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:96481a5786729fd470164b47cdb3e0e58062a496f455ee41b4403be77cb5a076", size = 237561, upload-time = "2026-03-25T20:21:13.098Z" }, + { url = "https://files.pythonhosted.org/packages/48/c1/f41d9cb618acccca7df82aaf682f9b49013c9397212cb9f53219e3abac37/tomli-2.4.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5a881ab208c0baf688221f8cecc5401bd291d67e38a1ac884d6736cbcd8247e9", size = 243824, upload-time = "2026-03-25T20:21:14.569Z" }, + { url = "https://files.pythonhosted.org/packages/22/e4/5a816ecdd1f8ca51fb756ef684b90f2780afc52fc67f987e3c61d800a46d/tomli-2.4.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:47149d5bd38761ac8be13a84864bf0b7b70bc051806bc3669ab1cbc56216b23c", size = 242227, upload-time = "2026-03-25T20:21:15.712Z" }, + { url = "https://files.pythonhosted.org/packages/6b/49/2b2a0ef529aa6eec245d25f0c703e020a73955ad7edf73e7f54ddc608aa5/tomli-2.4.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:ec9bfaf3ad2df51ace80688143a6a4ebc09a248f6ff781a9945e51937008fcbc", size = 247859, upload-time = "2026-03-25T20:21:17.001Z" }, + { url = "https://files.pythonhosted.org/packages/83/bd/6c1a630eaca337e1e78c5903104f831bda934c426f9231429396ce3c3467/tomli-2.4.1-cp311-cp311-win32.whl", hash = "sha256:ff2983983d34813c1aeb0fa89091e76c3a22889ee83ab27c5eeb45100560c049", size = 97204, upload-time = "2026-03-25T20:21:18.079Z" }, + { url = "https://files.pythonhosted.org/packages/42/59/71461df1a885647e10b6bb7802d0b8e66480c61f3f43079e0dcd315b3954/tomli-2.4.1-cp311-cp311-win_amd64.whl", hash = "sha256:5ee18d9ebdb417e384b58fe414e8d6af9f4e7a0ae761519fb50f721de398dd4e", size = 108084, upload-time = "2026-03-25T20:21:18.978Z" }, + { url = "https://files.pythonhosted.org/packages/b8/83/dceca96142499c069475b790e7913b1044c1a4337e700751f48ed723f883/tomli-2.4.1-cp311-cp311-win_arm64.whl", hash = "sha256:c2541745709bad0264b7d4705ad453b76ccd191e64aa6f0fc66b69a293a45ece", size = 95285, upload-time = "2026-03-25T20:21:20.309Z" }, + { url = "https://files.pythonhosted.org/packages/c1/ba/42f134a3fe2b370f555f44b1d72feebb94debcab01676bf918d0cb70e9aa/tomli-2.4.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:c742f741d58a28940ce01d58f0ab2ea3ced8b12402f162f4d534dfe18ba1cd6a", size = 155924, upload-time = "2026-03-25T20:21:21.626Z" }, + { url = "https://files.pythonhosted.org/packages/dc/c7/62d7a17c26487ade21c5422b646110f2162f1fcc95980ef7f63e73c68f14/tomli-2.4.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:7f86fd587c4ed9dd76f318225e7d9b29cfc5a9d43de44e5754db8d1128487085", size = 150018, upload-time = "2026-03-25T20:21:23.002Z" }, + { url = "https://files.pythonhosted.org/packages/5c/05/79d13d7c15f13bdef410bdd49a6485b1c37d28968314eabee452c22a7fda/tomli-2.4.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ff18e6a727ee0ab0388507b89d1bc6a22b138d1e2fa56d1ad494586d61d2eae9", size = 244948, upload-time = "2026-03-25T20:21:24.04Z" }, + { url = "https://files.pythonhosted.org/packages/10/90/d62ce007a1c80d0b2c93e02cab211224756240884751b94ca72df8a875ca/tomli-2.4.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:136443dbd7e1dee43c68ac2694fde36b2849865fa258d39bf822c10e8068eac5", size = 253341, upload-time = "2026-03-25T20:21:25.177Z" }, + { url = "https://files.pythonhosted.org/packages/1a/7e/caf6496d60152ad4ed09282c1885cca4eea150bfd007da84aea07bcc0a3e/tomli-2.4.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:5e262d41726bc187e69af7825504c933b6794dc3fbd5945e41a79bb14c31f585", size = 248159, upload-time = "2026-03-25T20:21:26.364Z" }, + { url = "https://files.pythonhosted.org/packages/99/e7/c6f69c3120de34bbd882c6fba7975f3d7a746e9218e56ab46a1bc4b42552/tomli-2.4.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:5cb41aa38891e073ee49d55fbc7839cfdb2bc0e600add13874d048c94aadddd1", size = 253290, upload-time = "2026-03-25T20:21:27.46Z" }, + { url = "https://files.pythonhosted.org/packages/d6/2f/4a3c322f22c5c66c4b836ec58211641a4067364f5dcdd7b974b4c5da300c/tomli-2.4.1-cp312-cp312-win32.whl", hash = "sha256:da25dc3563bff5965356133435b757a795a17b17d01dbc0f42fb32447ddfd917", size = 98141, upload-time = "2026-03-25T20:21:28.492Z" }, + { url = "https://files.pythonhosted.org/packages/24/22/4daacd05391b92c55759d55eaee21e1dfaea86ce5c571f10083360adf534/tomli-2.4.1-cp312-cp312-win_amd64.whl", hash = "sha256:52c8ef851d9a240f11a88c003eacb03c31fc1c9c4ec64a99a0f922b93874fda9", size = 108847, upload-time = "2026-03-25T20:21:29.386Z" }, + { url = "https://files.pythonhosted.org/packages/68/fd/70e768887666ddd9e9f5d85129e84910f2db2796f9096aa02b721a53098d/tomli-2.4.1-cp312-cp312-win_arm64.whl", hash = "sha256:f758f1b9299d059cc3f6546ae2af89670cb1c4d48ea29c3cacc4fe7de3058257", size = 95088, upload-time = "2026-03-25T20:21:30.677Z" }, + { url = "https://files.pythonhosted.org/packages/07/06/b823a7e818c756d9a7123ba2cda7d07bc2dd32835648d1a7b7b7a05d848d/tomli-2.4.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:36d2bd2ad5fb9eaddba5226aa02c8ec3fa4f192631e347b3ed28186d43be6b54", size = 155866, upload-time = "2026-03-25T20:21:31.65Z" }, + { url = "https://files.pythonhosted.org/packages/14/6f/12645cf7f08e1a20c7eb8c297c6f11d31c1b50f316a7e7e1e1de6e2e7b7e/tomli-2.4.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:eb0dc4e38e6a1fd579e5d50369aa2e10acfc9cace504579b2faabb478e76941a", size = 149887, upload-time = "2026-03-25T20:21:33.028Z" }, + { url = "https://files.pythonhosted.org/packages/5c/e0/90637574e5e7212c09099c67ad349b04ec4d6020324539297b634a0192b0/tomli-2.4.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c7f2c7f2b9ca6bdeef8f0fa897f8e05085923eb091721675170254cbc5b02897", size = 243704, upload-time = "2026-03-25T20:21:34.51Z" }, + { url = "https://files.pythonhosted.org/packages/10/8f/d3ddb16c5a4befdf31a23307f72828686ab2096f068eaf56631e136c1fdd/tomli-2.4.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f3c6818a1a86dd6dca7ddcaaf76947d5ba31aecc28cb1b67009a5877c9a64f3f", size = 251628, upload-time = "2026-03-25T20:21:36.012Z" }, + { url = "https://files.pythonhosted.org/packages/e3/f1/dbeeb9116715abee2485bf0a12d07a8f31af94d71608c171c45f64c0469d/tomli-2.4.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:d312ef37c91508b0ab2cee7da26ec0b3ed2f03ce12bd87a588d771ae15dcf82d", size = 247180, upload-time = "2026-03-25T20:21:37.136Z" }, + { url = "https://files.pythonhosted.org/packages/d3/74/16336ffd19ed4da28a70959f92f506233bd7cfc2332b20bdb01591e8b1d1/tomli-2.4.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:51529d40e3ca50046d7606fa99ce3956a617f9b36380da3b7f0dd3dd28e68cb5", size = 251674, upload-time = "2026-03-25T20:21:38.298Z" }, + { url = "https://files.pythonhosted.org/packages/16/f9/229fa3434c590ddf6c0aa9af64d3af4b752540686cace29e6281e3458469/tomli-2.4.1-cp313-cp313-win32.whl", hash = "sha256:2190f2e9dd7508d2a90ded5ed369255980a1bcdd58e52f7fe24b8162bf9fedbd", size = 97976, upload-time = "2026-03-25T20:21:39.316Z" }, + { url = "https://files.pythonhosted.org/packages/6a/1e/71dfd96bcc1c775420cb8befe7a9d35f2e5b1309798f009dca17b7708c1e/tomli-2.4.1-cp313-cp313-win_amd64.whl", hash = "sha256:8d65a2fbf9d2f8352685bc1364177ee3923d6baf5e7f43ea4959d7d8bc326a36", size = 108755, upload-time = "2026-03-25T20:21:40.248Z" }, + { url = "https://files.pythonhosted.org/packages/83/7a/d34f422a021d62420b78f5c538e5b102f62bea616d1d75a13f0a88acb04a/tomli-2.4.1-cp313-cp313-win_arm64.whl", hash = "sha256:4b605484e43cdc43f0954ddae319fb75f04cc10dd80d830540060ee7cd0243cd", size = 95265, upload-time = "2026-03-25T20:21:41.219Z" }, + { url = "https://files.pythonhosted.org/packages/3c/fb/9a5c8d27dbab540869f7c1f8eb0abb3244189ce780ba9cd73f3770662072/tomli-2.4.1-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:fd0409a3653af6c147209d267a0e4243f0ae46b011aa978b1080359fddc9b6cf", size = 155726, upload-time = "2026-03-25T20:21:42.23Z" }, + { url = "https://files.pythonhosted.org/packages/62/05/d2f816630cc771ad836af54f5001f47a6f611d2d39535364f148b6a92d6b/tomli-2.4.1-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:a120733b01c45e9a0c34aeef92bf0cf1d56cfe81ed9d47d562f9ed591a9828ac", size = 149859, upload-time = "2026-03-25T20:21:43.386Z" }, + { url = "https://files.pythonhosted.org/packages/ce/48/66341bdb858ad9bd0ceab5a86f90eddab127cf8b046418009f2125630ecb/tomli-2.4.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:559db847dc486944896521f68d8190be1c9e719fced785720d2216fe7022b662", size = 244713, upload-time = "2026-03-25T20:21:44.474Z" }, + { url = "https://files.pythonhosted.org/packages/df/6d/c5fad00d82b3c7a3ab6189bd4b10e60466f22cfe8a08a9394185c8a8111c/tomli-2.4.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:01f520d4f53ef97964a240a035ec2a869fe1a37dde002b57ebc4417a27ccd853", size = 252084, upload-time = "2026-03-25T20:21:45.62Z" }, + { url = "https://files.pythonhosted.org/packages/00/71/3a69e86f3eafe8c7a59d008d245888051005bd657760e96d5fbfb0b740c2/tomli-2.4.1-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:7f94b27a62cfad8496c8d2513e1a222dd446f095fca8987fceef261225538a15", size = 247973, upload-time = "2026-03-25T20:21:46.937Z" }, + { url = "https://files.pythonhosted.org/packages/67/50/361e986652847fec4bd5e4a0208752fbe64689c603c7ae5ea7cb16b1c0ca/tomli-2.4.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:ede3e6487c5ef5d28634ba3f31f989030ad6af71edfb0055cbbd14189ff240ba", size = 256223, upload-time = "2026-03-25T20:21:48.467Z" }, + { url = "https://files.pythonhosted.org/packages/8c/9a/b4173689a9203472e5467217e0154b00e260621caa227b6fa01feab16998/tomli-2.4.1-cp314-cp314-win32.whl", hash = "sha256:3d48a93ee1c9b79c04bb38772ee1b64dcf18ff43085896ea460ca8dec96f35f6", size = 98973, upload-time = "2026-03-25T20:21:49.526Z" }, + { url = "https://files.pythonhosted.org/packages/14/58/640ac93bf230cd27d002462c9af0d837779f8773bc03dee06b5835208214/tomli-2.4.1-cp314-cp314-win_amd64.whl", hash = "sha256:88dceee75c2c63af144e456745e10101eb67361050196b0b6af5d717254dddf7", size = 109082, upload-time = "2026-03-25T20:21:50.506Z" }, + { url = "https://files.pythonhosted.org/packages/d5/2f/702d5e05b227401c1068f0d386d79a589bb12bf64c3d2c72ce0631e3bc49/tomli-2.4.1-cp314-cp314-win_arm64.whl", hash = "sha256:b8c198f8c1805dc42708689ed6864951fd2494f924149d3e4bce7710f8eb5232", size = 96490, upload-time = "2026-03-25T20:21:51.474Z" }, + { url = "https://files.pythonhosted.org/packages/45/4b/b877b05c8ba62927d9865dd980e34a755de541eb65fffba52b4cc495d4d2/tomli-2.4.1-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:d4d8fe59808a54658fcc0160ecfb1b30f9089906c50b23bcb4c69eddc19ec2b4", size = 164263, upload-time = "2026-03-25T20:21:52.543Z" }, + { url = "https://files.pythonhosted.org/packages/24/79/6ab420d37a270b89f7195dec5448f79400d9e9c1826df982f3f8e97b24fd/tomli-2.4.1-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:7008df2e7655c495dd12d2a4ad038ff878d4ca4b81fccaf82b714e07eae4402c", size = 160736, upload-time = "2026-03-25T20:21:53.674Z" }, + { url = "https://files.pythonhosted.org/packages/02/e0/3630057d8eb170310785723ed5adcdfb7d50cb7e6455f85ba8a3deed642b/tomli-2.4.1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1d8591993e228b0c930c4bb0db464bdad97b3289fb981255d6c9a41aedc84b2d", size = 270717, upload-time = "2026-03-25T20:21:55.129Z" }, + { url = "https://files.pythonhosted.org/packages/7a/b4/1613716072e544d1a7891f548d8f9ec6ce2faf42ca65acae01d76ea06bb0/tomli-2.4.1-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:734e20b57ba95624ecf1841e72b53f6e186355e216e5412de414e3c51e5e3c41", size = 278461, upload-time = "2026-03-25T20:21:56.228Z" }, + { url = "https://files.pythonhosted.org/packages/05/38/30f541baf6a3f6df77b3df16b01ba319221389e2da59427e221ef417ac0c/tomli-2.4.1-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:8a650c2dbafa08d42e51ba0b62740dae4ecb9338eefa093aa5c78ceb546fcd5c", size = 274855, upload-time = "2026-03-25T20:21:57.653Z" }, + { url = "https://files.pythonhosted.org/packages/77/a3/ec9dd4fd2c38e98de34223b995a3b34813e6bdadf86c75314c928350ed14/tomli-2.4.1-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:504aa796fe0569bb43171066009ead363de03675276d2d121ac1a4572397870f", size = 283144, upload-time = "2026-03-25T20:21:59.089Z" }, + { url = "https://files.pythonhosted.org/packages/ef/be/605a6261cac79fba2ec0c9827e986e00323a1945700969b8ee0b30d85453/tomli-2.4.1-cp314-cp314t-win32.whl", hash = "sha256:b1d22e6e9387bf4739fbe23bfa80e93f6b0373a7f1b96c6227c32bef95a4d7a8", size = 108683, upload-time = "2026-03-25T20:22:00.214Z" }, + { url = "https://files.pythonhosted.org/packages/12/64/da524626d3b9cc40c168a13da8335fe1c51be12c0a63685cc6db7308daae/tomli-2.4.1-cp314-cp314t-win_amd64.whl", hash = "sha256:2c1c351919aca02858f740c6d33adea0c5deea37f9ecca1cc1ef9e884a619d26", size = 121196, upload-time = "2026-03-25T20:22:01.169Z" }, + { url = "https://files.pythonhosted.org/packages/5a/cd/e80b62269fc78fc36c9af5a6b89c835baa8af28ff5ad28c7028d60860320/tomli-2.4.1-cp314-cp314t-win_arm64.whl", hash = "sha256:eab21f45c7f66c13f2a9e0e1535309cee140182a9cdae1e041d02e47291e8396", size = 100393, upload-time = "2026-03-25T20:22:02.137Z" }, + { url = "https://files.pythonhosted.org/packages/7b/61/cceae43728b7de99d9b847560c262873a1f6c98202171fd5ed62640b494b/tomli-2.4.1-py3-none-any.whl", hash = "sha256:0d85819802132122da43cb86656f8d1f8c6587d54ae7dcaf30e90533028b49fe", size = 14583, upload-time = "2026-03-25T20:22:03.012Z" }, ] [[package]] name = "toolz" version = "1.1.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/11/d6/114b492226588d6ff54579d95847662fc69196bdeec318eb45393b24c192/toolz-1.1.0.tar.gz", hash = "sha256:27a5c770d068c110d9ed9323f24f1543e83b2f300a687b7891c1a6d56b697b5b", size = 52613 } +sdist = { url = "https://files.pythonhosted.org/packages/11/d6/114b492226588d6ff54579d95847662fc69196bdeec318eb45393b24c192/toolz-1.1.0.tar.gz", hash = "sha256:27a5c770d068c110d9ed9323f24f1543e83b2f300a687b7891c1a6d56b697b5b", size = 52613, upload-time = "2025-10-17T04:03:21.661Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/fb/12/5911ae3eeec47800503a238d971e51722ccea5feb8569b735184d5fcdbc0/toolz-1.1.0-py3-none-any.whl", hash = "sha256:15ccc861ac51c53696de0a5d6d4607f99c210739caf987b5d2054f3efed429d8", size = 58093 }, + { url = "https://files.pythonhosted.org/packages/fb/12/5911ae3eeec47800503a238d971e51722ccea5feb8569b735184d5fcdbc0/toolz-1.1.0-py3-none-any.whl", hash = "sha256:15ccc861ac51c53696de0a5d6d4607f99c210739caf987b5d2054f3efed429d8", size = 58093, upload-time = "2025-10-17T04:03:20.435Z" }, ] [[package]] name = "ty" version = "0.0.56" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/55/07/fb29aea5235b0aa8ecfc4d1cc6ddf9fba8b863d67d96c6d345694d644c43/ty-0.0.56.tar.gz", hash = "sha256:84d114dc3796361c0fc72945016eabd74d46b9ee64f198cb0e485719704681e5", size = 6050123 } +sdist = { url = "https://files.pythonhosted.org/packages/55/07/fb29aea5235b0aa8ecfc4d1cc6ddf9fba8b863d67d96c6d345694d644c43/ty-0.0.56.tar.gz", hash = "sha256:84d114dc3796361c0fc72945016eabd74d46b9ee64f198cb0e485719704681e5", size = 6050123, upload-time = "2026-07-01T16:44:56.036Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/dc/48/bce79e7ca5c1cc529d3e0d37ddd1121aea4b68a4f749974ad1cc77161871/ty-0.0.56-py3-none-linux_armv6l.whl", hash = "sha256:186d4a53e15747c947e1ec3d7eec8e345d8e40a1ca10e634c585db52497e87dd", size = 11643066 }, - { url = "https://files.pythonhosted.org/packages/80/d1/22555d8a1d719661f10050f3865d877bbf497da908961c75fe22217dd18a/ty-0.0.56-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:aae1a980fd9535da0469b7ba2b2e1b54a907743a5e0f442dd57eee9f5bfd034c", size = 11407487 }, - { url = "https://files.pythonhosted.org/packages/cf/2d/b3b7a74ce8bc59ef48843ad80179bb0d9598bbd6cfc0d11d519bdf6b1352/ty-0.0.56-py3-none-macosx_11_0_arm64.whl", hash = "sha256:afd3058c0a6c5f241e814734f133008c93ee805f61c9cf4ce7412b8822b5d9ad", size = 10962270 }, - { url = "https://files.pythonhosted.org/packages/64/ac/6c2fd7de0304a8a7218a756af74f7e62a5e8540fdb175e0a869e51042345/ty-0.0.56-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:058b52f7a823ac13aae3cae30809dd6b5145794b64d8478f9ef38c75d79b4483", size = 11471406 }, - { url = "https://files.pythonhosted.org/packages/50/b6/11d861156861c03c7726b74558f9a0e0092661aff83a4fda1279df28c425/ty-0.0.56-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:2c66e00c1522add1f2bbdd2e45828c953b35c306b7bef03ec9169c75a63699a0", size = 11445612 }, - { url = "https://files.pythonhosted.org/packages/fb/ba/09df108582090f3c0770ec4bc8675affed60248f6793a78d909be16211d9/ty-0.0.56-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:40903d71c669a30691b5a5d5728056c7877a1bd6be4f233a38883a8b28cf34d7", size = 12093889 }, - { url = "https://files.pythonhosted.org/packages/d7/f7/dbb4b4ccb69cd64c209ae55b1ab788ace8222c2bc1f6845be9e7cbedbf25/ty-0.0.56-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:63fe3947fe0c46c69a7d950e6832ee70a9ec17321fefbff3d2e3c20baf9e5bd0", size = 12666337 }, - { url = "https://files.pythonhosted.org/packages/86/e9/73f903fe4a3d9ea02f26f57c1eb07e3b1029ec92b0e8c2364718893440e3/ty-0.0.56-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:71a0c1a72f9854532e710e119b6871ffe4542c8a65146f1f65dcd78fecd885b4", size = 12280247 }, - { url = "https://files.pythonhosted.org/packages/d6/90/cebd222495832f1a00dcd321ba25f3cab804221a4991b992c2178bec68ee/ty-0.0.56-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:70d1665596494e24d8ebd198438872b5a56ec3cae5f2bcf6c673be797acc4e3c", size = 11991107 }, - { url = "https://files.pythonhosted.org/packages/b7/07/8f7337a07250f42d975cdb6decf47fc5b421e6c7da5e3e7be1e85f63a7e5/ty-0.0.56-py3-none-manylinux_2_31_riscv64.whl", hash = "sha256:778f99e51558afc1dbbe48ee38ab6aae7b31390ed8c1a1ef1499b295e9f1e82f", size = 12298970 }, - { url = "https://files.pythonhosted.org/packages/3c/b9/a52cd59034a48f5f18c6b155cc2cc36861d874b6d0af204b12c898024c3d/ty-0.0.56-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:867bc5708e0066bb4ff6c7db524bd5deea2676c62bfe71d3303138b3be850af0", size = 11425683 }, - { url = "https://files.pythonhosted.org/packages/1d/2e/48e42d33357d52eefb695c0c3fcfc96879b73668a7447d1d1e0ad774fedc/ty-0.0.56-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:a6012f4189c928edb330a37deb9930f982380bd4aa7c4b8e0428eec9651c7551", size = 11469258 }, - { url = "https://files.pythonhosted.org/packages/d5/01/ad1b4138be1e3fa97863af3925aa2134f17a593240c35dc38c3429fb5ad1/ty-0.0.56-py3-none-musllinux_1_2_i686.whl", hash = "sha256:8ee83de1a7ff4cc32837ec06134ce391d441bc5b35ecd8d3cfe053f120f3e4c1", size = 11758736 }, - { url = "https://files.pythonhosted.org/packages/09/34/9d81967ff240eaa57e9249728ef7b7790747cf6d3c9a98ec86b2cfdcc8ee/ty-0.0.56-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:62619b3b0e2c6248ef30d3f0e2f2217ae9893040585be07f32324242f197cd6f", size = 12100242 }, - { url = "https://files.pythonhosted.org/packages/c3/36/f51d4666d2de6cf33c1f3a1fcc4bb6b70b197dd6ceaa491eef71d78fe8e8/ty-0.0.56-py3-none-win32.whl", hash = "sha256:b30687bb5cd9729d34c889a289edf32770388d9bb05243e534e723fb45e0381b", size = 11093759 }, - { url = "https://files.pythonhosted.org/packages/5e/b4/8fb5d4acfa4afb152245b20fa263069a7547bd1f8e4bfca4eda280c897d7/ty-0.0.56-py3-none-win_amd64.whl", hash = "sha256:ad4c8c47b6f4e3f9ed3fc0b1a5d650088d229e17dd8f63c1826d6bbe94cc3235", size = 12100327 }, - { url = "https://files.pythonhosted.org/packages/b8/fc/6a183e71edde90d0c35c2303f23f7a45b6891d1a2c45daf7b8f869831e19/ty-0.0.56-py3-none-win_arm64.whl", hash = "sha256:57538f273d444a5f1293fa7860e967178afe3917611fc5eff16b64e1204fe0d6", size = 11538780 }, + { url = "https://files.pythonhosted.org/packages/dc/48/bce79e7ca5c1cc529d3e0d37ddd1121aea4b68a4f749974ad1cc77161871/ty-0.0.56-py3-none-linux_armv6l.whl", hash = "sha256:186d4a53e15747c947e1ec3d7eec8e345d8e40a1ca10e634c585db52497e87dd", size = 11643066, upload-time = "2026-07-01T16:44:18.374Z" }, + { url = "https://files.pythonhosted.org/packages/80/d1/22555d8a1d719661f10050f3865d877bbf497da908961c75fe22217dd18a/ty-0.0.56-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:aae1a980fd9535da0469b7ba2b2e1b54a907743a5e0f442dd57eee9f5bfd034c", size = 11407487, upload-time = "2026-07-01T16:44:20.956Z" }, + { url = "https://files.pythonhosted.org/packages/cf/2d/b3b7a74ce8bc59ef48843ad80179bb0d9598bbd6cfc0d11d519bdf6b1352/ty-0.0.56-py3-none-macosx_11_0_arm64.whl", hash = "sha256:afd3058c0a6c5f241e814734f133008c93ee805f61c9cf4ce7412b8822b5d9ad", size = 10962270, upload-time = "2026-07-01T16:44:22.959Z" }, + { url = "https://files.pythonhosted.org/packages/64/ac/6c2fd7de0304a8a7218a756af74f7e62a5e8540fdb175e0a869e51042345/ty-0.0.56-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:058b52f7a823ac13aae3cae30809dd6b5145794b64d8478f9ef38c75d79b4483", size = 11471406, upload-time = "2026-07-01T16:44:25.327Z" }, + { url = "https://files.pythonhosted.org/packages/50/b6/11d861156861c03c7726b74558f9a0e0092661aff83a4fda1279df28c425/ty-0.0.56-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:2c66e00c1522add1f2bbdd2e45828c953b35c306b7bef03ec9169c75a63699a0", size = 11445612, upload-time = "2026-07-01T16:44:27.531Z" }, + { url = "https://files.pythonhosted.org/packages/fb/ba/09df108582090f3c0770ec4bc8675affed60248f6793a78d909be16211d9/ty-0.0.56-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:40903d71c669a30691b5a5d5728056c7877a1bd6be4f233a38883a8b28cf34d7", size = 12093889, upload-time = "2026-07-01T16:44:29.548Z" }, + { url = "https://files.pythonhosted.org/packages/d7/f7/dbb4b4ccb69cd64c209ae55b1ab788ace8222c2bc1f6845be9e7cbedbf25/ty-0.0.56-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:63fe3947fe0c46c69a7d950e6832ee70a9ec17321fefbff3d2e3c20baf9e5bd0", size = 12666337, upload-time = "2026-07-01T16:44:31.586Z" }, + { url = "https://files.pythonhosted.org/packages/86/e9/73f903fe4a3d9ea02f26f57c1eb07e3b1029ec92b0e8c2364718893440e3/ty-0.0.56-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:71a0c1a72f9854532e710e119b6871ffe4542c8a65146f1f65dcd78fecd885b4", size = 12280247, upload-time = "2026-07-01T16:44:33.637Z" }, + { url = "https://files.pythonhosted.org/packages/d6/90/cebd222495832f1a00dcd321ba25f3cab804221a4991b992c2178bec68ee/ty-0.0.56-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:70d1665596494e24d8ebd198438872b5a56ec3cae5f2bcf6c673be797acc4e3c", size = 11991107, upload-time = "2026-07-01T16:44:36.122Z" }, + { url = "https://files.pythonhosted.org/packages/b7/07/8f7337a07250f42d975cdb6decf47fc5b421e6c7da5e3e7be1e85f63a7e5/ty-0.0.56-py3-none-manylinux_2_31_riscv64.whl", hash = "sha256:778f99e51558afc1dbbe48ee38ab6aae7b31390ed8c1a1ef1499b295e9f1e82f", size = 12298970, upload-time = "2026-07-01T16:44:38.243Z" }, + { url = "https://files.pythonhosted.org/packages/3c/b9/a52cd59034a48f5f18c6b155cc2cc36861d874b6d0af204b12c898024c3d/ty-0.0.56-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:867bc5708e0066bb4ff6c7db524bd5deea2676c62bfe71d3303138b3be850af0", size = 11425683, upload-time = "2026-07-01T16:44:40.473Z" }, + { url = "https://files.pythonhosted.org/packages/1d/2e/48e42d33357d52eefb695c0c3fcfc96879b73668a7447d1d1e0ad774fedc/ty-0.0.56-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:a6012f4189c928edb330a37deb9930f982380bd4aa7c4b8e0428eec9651c7551", size = 11469258, upload-time = "2026-07-01T16:44:42.513Z" }, + { url = "https://files.pythonhosted.org/packages/d5/01/ad1b4138be1e3fa97863af3925aa2134f17a593240c35dc38c3429fb5ad1/ty-0.0.56-py3-none-musllinux_1_2_i686.whl", hash = "sha256:8ee83de1a7ff4cc32837ec06134ce391d441bc5b35ecd8d3cfe053f120f3e4c1", size = 11758736, upload-time = "2026-07-01T16:44:44.567Z" }, + { url = "https://files.pythonhosted.org/packages/09/34/9d81967ff240eaa57e9249728ef7b7790747cf6d3c9a98ec86b2cfdcc8ee/ty-0.0.56-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:62619b3b0e2c6248ef30d3f0e2f2217ae9893040585be07f32324242f197cd6f", size = 12100242, upload-time = "2026-07-01T16:44:46.584Z" }, + { url = "https://files.pythonhosted.org/packages/c3/36/f51d4666d2de6cf33c1f3a1fcc4bb6b70b197dd6ceaa491eef71d78fe8e8/ty-0.0.56-py3-none-win32.whl", hash = "sha256:b30687bb5cd9729d34c889a289edf32770388d9bb05243e534e723fb45e0381b", size = 11093759, upload-time = "2026-07-01T16:44:49.171Z" }, + { url = "https://files.pythonhosted.org/packages/5e/b4/8fb5d4acfa4afb152245b20fa263069a7547bd1f8e4bfca4eda280c897d7/ty-0.0.56-py3-none-win_amd64.whl", hash = "sha256:ad4c8c47b6f4e3f9ed3fc0b1a5d650088d229e17dd8f63c1826d6bbe94cc3235", size = 12100327, upload-time = "2026-07-01T16:44:51.26Z" }, + { url = "https://files.pythonhosted.org/packages/b8/fc/6a183e71edde90d0c35c2303f23f7a45b6891d1a2c45daf7b8f869831e19/ty-0.0.56-py3-none-win_arm64.whl", hash = "sha256:57538f273d444a5f1293fa7860e967178afe3917611fc5eff16b64e1204fe0d6", size = 11538780, upload-time = "2026-07-01T16:44:53.8Z" }, ] [[package]] @@ -1081,22 +1301,22 @@ version = "0.26.8" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "annotated-doc" }, - { name = "colorama", marker = "platform_system == 'Windows'" }, + { name = "colorama", marker = "sys_platform == 'win32'" }, { name = "rich" }, { name = "shellingham" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/7c/f7/68adc395201b20b872d68e975386832e8005ffeacedd43a1d837a32815be/typer-0.26.8.tar.gz", hash = "sha256:c244a6bd558886fe3f8780efb6bdd28bb9aff005a94eedebaa5cb32926fe2f7e", size = 202097 } +sdist = { url = "https://files.pythonhosted.org/packages/7c/f7/68adc395201b20b872d68e975386832e8005ffeacedd43a1d837a32815be/typer-0.26.8.tar.gz", hash = "sha256:c244a6bd558886fe3f8780efb6bdd28bb9aff005a94eedebaa5cb32926fe2f7e", size = 202097, upload-time = "2026-06-26T09:22:45.705Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/80/87/b9fd69c92c6102a066e1b86a35243f53e70bd4c709f2a26d9f4fee4f4dc0/typer-0.26.8-py3-none-any.whl", hash = "sha256:3512ca79ac5c11113414b36e80281b872884477722440691c89d1112e321a49c", size = 122564 }, + { url = "https://files.pythonhosted.org/packages/80/87/b9fd69c92c6102a066e1b86a35243f53e70bd4c709f2a26d9f4fee4f4dc0/typer-0.26.8-py3-none-any.whl", hash = "sha256:3512ca79ac5c11113414b36e80281b872884477722440691c89d1112e321a49c", size = 122564, upload-time = "2026-06-26T09:22:44.72Z" }, ] [[package]] name = "typing-extensions" version = "4.16.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/f6/cc/6253133b5bb138fc3306cebfbda2c520f545d36b5be2c7255cc528bb45d6/typing_extensions-4.16.0.tar.gz", hash = "sha256:dc983d19a509c94dba722ee6abd33940f7c05a89e243c47e907eb4db6f1a43e5", size = 113555 } +sdist = { url = "https://files.pythonhosted.org/packages/f6/cc/6253133b5bb138fc3306cebfbda2c520f545d36b5be2c7255cc528bb45d6/typing_extensions-4.16.0.tar.gz", hash = "sha256:dc983d19a509c94dba722ee6abd33940f7c05a89e243c47e907eb4db6f1a43e5", size = 113555, upload-time = "2026-07-02T08:40:05.92Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/49/d3/b8441a820a491ddfc024b0b0cf0393375b75ea13866d9c66727e54c2fc80/typing_extensions-4.16.0-py3-none-any.whl", hash = "sha256:481caa481374e813c1b176ada14e97f1f67a4539ce9cfeb3f350d78d6370c2e8", size = 45571 }, + { url = "https://files.pythonhosted.org/packages/49/d3/b8441a820a491ddfc024b0b0cf0393375b75ea13866d9c66727e54c2fc80/typing_extensions-4.16.0-py3-none-any.whl", hash = "sha256:481caa481374e813c1b176ada14e97f1f67a4539ce9cfeb3f350d78d6370c2e8", size = 45571, upload-time = "2026-07-02T08:40:04.659Z" }, ] [[package]] @@ -1106,57 +1326,75 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/55/e3/70399cb7dd41c10ac53367ae42139cf4b1ca5f36bb3dc6c9d33acdb43655/typing_inspection-0.4.2.tar.gz", hash = "sha256:ba561c48a67c5958007083d386c3295464928b01faa735ab8547c5692e87f464", size = 75949 } +sdist = { url = "https://files.pythonhosted.org/packages/55/e3/70399cb7dd41c10ac53367ae42139cf4b1ca5f36bb3dc6c9d33acdb43655/typing_inspection-0.4.2.tar.gz", hash = "sha256:ba561c48a67c5958007083d386c3295464928b01faa735ab8547c5692e87f464", size = 75949, upload-time = "2025-10-01T02:14:41.687Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/dc/9b/47798a6c91d8bdb567fe2698fe81e0c6b7cb7ef4d13da4114b41d239f65d/typing_inspection-0.4.2-py3-none-any.whl", hash = "sha256:4ed1cacbdc298c220f1bd249ed5287caa16f34d44ef4e9c3d0cbad5b521545e7", size = 14611 }, + { url = "https://files.pythonhosted.org/packages/dc/9b/47798a6c91d8bdb567fe2698fe81e0c6b7cb7ef4d13da4114b41d239f65d/typing_inspection-0.4.2-py3-none-any.whl", hash = "sha256:4ed1cacbdc298c220f1bd249ed5287caa16f34d44ef4e9c3d0cbad5b521545e7", size = 14611, upload-time = "2025-10-01T02:14:40.154Z" }, ] [[package]] name = "websockets" version = "16.0" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/04/24/4b2031d72e840ce4c1ccb255f693b15c334757fc50023e4db9537080b8c4/websockets-16.0.tar.gz", hash = "sha256:5f6261a5e56e8d5c42a4497b364ea24d94d9563e8fbd44e78ac40879c60179b5", size = 179346 } +sdist = { url = "https://files.pythonhosted.org/packages/04/24/4b2031d72e840ce4c1ccb255f693b15c334757fc50023e4db9537080b8c4/websockets-16.0.tar.gz", hash = "sha256:5f6261a5e56e8d5c42a4497b364ea24d94d9563e8fbd44e78ac40879c60179b5", size = 179346, upload-time = "2026-01-10T09:23:47.181Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/20/74/221f58decd852f4b59cc3354cccaf87e8ef695fede361d03dc9a7396573b/websockets-16.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:04cdd5d2d1dacbad0a7bf36ccbcd3ccd5a30ee188f2560b7a62a30d14107b31a", size = 177343 }, - { url = "https://files.pythonhosted.org/packages/19/0f/22ef6107ee52ab7f0b710d55d36f5a5d3ef19e8a205541a6d7ffa7994e5a/websockets-16.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:8ff32bb86522a9e5e31439a58addbb0166f0204d64066fb955265c4e214160f0", size = 175021 }, - { url = "https://files.pythonhosted.org/packages/10/40/904a4cb30d9b61c0e278899bf36342e9b0208eb3c470324a9ecbaac2a30f/websockets-16.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:583b7c42688636f930688d712885cf1531326ee05effd982028212ccc13e5957", size = 175320 }, - { url = "https://files.pythonhosted.org/packages/9d/2f/4b3ca7e106bc608744b1cdae041e005e446124bebb037b18799c2d356864/websockets-16.0-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:7d837379b647c0c4c2355c2499723f82f1635fd2c26510e1f587d89bc2199e72", size = 183815 }, - { url = "https://files.pythonhosted.org/packages/86/26/d40eaa2a46d4302becec8d15b0fc5e45bdde05191e7628405a19cf491ccd/websockets-16.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:df57afc692e517a85e65b72e165356ed1df12386ecb879ad5693be08fac65dde", size = 185054 }, - { url = "https://files.pythonhosted.org/packages/b0/ba/6500a0efc94f7373ee8fefa8c271acdfd4dca8bd49a90d4be7ccabfc397e/websockets-16.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:2b9f1e0d69bc60a4a87349d50c09a037a2607918746f07de04df9e43252c77a3", size = 184565 }, - { url = "https://files.pythonhosted.org/packages/04/b4/96bf2cee7c8d8102389374a2616200574f5f01128d1082f44102140344cc/websockets-16.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:335c23addf3d5e6a8633f9f8eda77efad001671e80b95c491dd0924587ece0b3", size = 183848 }, - { url = "https://files.pythonhosted.org/packages/02/8e/81f40fb00fd125357814e8c3025738fc4ffc3da4b6b4a4472a82ba304b41/websockets-16.0-cp310-cp310-win32.whl", hash = "sha256:37b31c1623c6605e4c00d466c9d633f9b812ea430c11c8a278774a1fde1acfa9", size = 178249 }, - { url = "https://files.pythonhosted.org/packages/b4/5f/7e40efe8df57db9b91c88a43690ac66f7b7aa73a11aa6a66b927e44f26fa/websockets-16.0-cp310-cp310-win_amd64.whl", hash = "sha256:8e1dab317b6e77424356e11e99a432b7cb2f3ec8c5ab4dabbcee6add48f72b35", size = 178685 }, - { url = "https://files.pythonhosted.org/packages/f2/db/de907251b4ff46ae804ad0409809504153b3f30984daf82a1d84a9875830/websockets-16.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:31a52addea25187bde0797a97d6fc3d2f92b6f72a9370792d65a6e84615ac8a8", size = 177340 }, - { url = "https://files.pythonhosted.org/packages/f3/fa/abe89019d8d8815c8781e90d697dec52523fb8ebe308bf11664e8de1877e/websockets-16.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:417b28978cdccab24f46400586d128366313e8a96312e4b9362a4af504f3bbad", size = 175022 }, - { url = "https://files.pythonhosted.org/packages/58/5d/88ea17ed1ded2079358b40d31d48abe90a73c9e5819dbcde1606e991e2ad/websockets-16.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:af80d74d4edfa3cb9ed973a0a5ba2b2a549371f8a741e0800cb07becdd20f23d", size = 175319 }, - { url = "https://files.pythonhosted.org/packages/d2/ae/0ee92b33087a33632f37a635e11e1d99d429d3d323329675a6022312aac2/websockets-16.0-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:08d7af67b64d29823fed316505a89b86705f2b7981c07848fb5e3ea3020c1abe", size = 184631 }, - { url = "https://files.pythonhosted.org/packages/c8/c5/27178df583b6c5b31b29f526ba2da5e2f864ecc79c99dae630a85d68c304/websockets-16.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:7be95cfb0a4dae143eaed2bcba8ac23f4892d8971311f1b06f3c6b78952ee70b", size = 185870 }, - { url = "https://files.pythonhosted.org/packages/87/05/536652aa84ddc1c018dbb7e2c4cbcd0db884580bf8e95aece7593fde526f/websockets-16.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:d6297ce39ce5c2e6feb13c1a996a2ded3b6832155fcfc920265c76f24c7cceb5", size = 185361 }, - { url = "https://files.pythonhosted.org/packages/6d/e2/d5332c90da12b1e01f06fb1b85c50cfc489783076547415bf9f0a659ec19/websockets-16.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:1c1b30e4f497b0b354057f3467f56244c603a79c0d1dafce1d16c283c25f6e64", size = 184615 }, - { url = "https://files.pythonhosted.org/packages/77/fb/d3f9576691cae9253b51555f841bc6600bf0a983a461c79500ace5a5b364/websockets-16.0-cp311-cp311-win32.whl", hash = "sha256:5f451484aeb5cafee1ccf789b1b66f535409d038c56966d6101740c1614b86c6", size = 178246 }, - { url = "https://files.pythonhosted.org/packages/54/67/eaff76b3dbaf18dcddabc3b8c1dba50b483761cccff67793897945b37408/websockets-16.0-cp311-cp311-win_amd64.whl", hash = "sha256:8d7f0659570eefb578dacde98e24fb60af35350193e4f56e11190787bee77dac", size = 178684 }, - { url = "https://files.pythonhosted.org/packages/84/7b/bac442e6b96c9d25092695578dda82403c77936104b5682307bd4deb1ad4/websockets-16.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:71c989cbf3254fbd5e84d3bff31e4da39c43f884e64f2551d14bb3c186230f00", size = 177365 }, - { url = "https://files.pythonhosted.org/packages/b0/fe/136ccece61bd690d9c1f715baaeefd953bb2360134de73519d5df19d29ca/websockets-16.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:8b6e209ffee39ff1b6d0fa7bfef6de950c60dfb91b8fcead17da4ee539121a79", size = 175038 }, - { url = "https://files.pythonhosted.org/packages/40/1e/9771421ac2286eaab95b8575b0cb701ae3663abf8b5e1f64f1fd90d0a673/websockets-16.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:86890e837d61574c92a97496d590968b23c2ef0aeb8a9bc9421d174cd378ae39", size = 175328 }, - { url = "https://files.pythonhosted.org/packages/18/29/71729b4671f21e1eaa5d6573031ab810ad2936c8175f03f97f3ff164c802/websockets-16.0-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:9b5aca38b67492ef518a8ab76851862488a478602229112c4b0d58d63a7a4d5c", size = 184915 }, - { url = "https://files.pythonhosted.org/packages/97/bb/21c36b7dbbafc85d2d480cd65df02a1dc93bf76d97147605a8e27ff9409d/websockets-16.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e0334872c0a37b606418ac52f6ab9cfd17317ac26365f7f65e203e2d0d0d359f", size = 186152 }, - { url = "https://files.pythonhosted.org/packages/4a/34/9bf8df0c0cf88fa7bfe36678dc7b02970c9a7d5e065a3099292db87b1be2/websockets-16.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:a0b31e0b424cc6b5a04b8838bbaec1688834b2383256688cf47eb97412531da1", size = 185583 }, - { url = "https://files.pythonhosted.org/packages/47/88/4dd516068e1a3d6ab3c7c183288404cd424a9a02d585efbac226cb61ff2d/websockets-16.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:485c49116d0af10ac698623c513c1cc01c9446c058a4e61e3bf6c19dff7335a2", size = 184880 }, - { url = "https://files.pythonhosted.org/packages/91/d6/7d4553ad4bf1c0421e1ebd4b18de5d9098383b5caa1d937b63df8d04b565/websockets-16.0-cp312-cp312-win32.whl", hash = "sha256:eaded469f5e5b7294e2bdca0ab06becb6756ea86894a47806456089298813c89", size = 178261 }, - { url = "https://files.pythonhosted.org/packages/c3/f0/f3a17365441ed1c27f850a80b2bc680a0fa9505d733fe152fdf5e98c1c0b/websockets-16.0-cp312-cp312-win_amd64.whl", hash = "sha256:5569417dc80977fc8c2d43a86f78e0a5a22fee17565d78621b6bb264a115d4ea", size = 178693 }, - { url = "https://files.pythonhosted.org/packages/cc/9c/baa8456050d1c1b08dd0ec7346026668cbc6f145ab4e314d707bb845bf0d/websockets-16.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:878b336ac47938b474c8f982ac2f7266a540adc3fa4ad74ae96fea9823a02cc9", size = 177364 }, - { url = "https://files.pythonhosted.org/packages/7e/0c/8811fc53e9bcff68fe7de2bcbe75116a8d959ac699a3200f4847a8925210/websockets-16.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:52a0fec0e6c8d9a784c2c78276a48a2bdf099e4ccc2a4cad53b27718dbfd0230", size = 175039 }, - { url = "https://files.pythonhosted.org/packages/aa/82/39a5f910cb99ec0b59e482971238c845af9220d3ab9fa76dd9162cda9d62/websockets-16.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:e6578ed5b6981005df1860a56e3617f14a6c307e6a71b4fff8c48fdc50f3ed2c", size = 175323 }, - { url = "https://files.pythonhosted.org/packages/bd/28/0a25ee5342eb5d5f297d992a77e56892ecb65e7854c7898fb7d35e9b33bd/websockets-16.0-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:95724e638f0f9c350bb1c2b0a7ad0e83d9cc0c9259f3ea94e40d7b02a2179ae5", size = 184975 }, - { url = "https://files.pythonhosted.org/packages/f9/66/27ea52741752f5107c2e41fda05e8395a682a1e11c4e592a809a90c6a506/websockets-16.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c0204dc62a89dc9d50d682412c10b3542d748260d743500a85c13cd1ee4bde82", size = 186203 }, - { url = "https://files.pythonhosted.org/packages/37/e5/8e32857371406a757816a2b471939d51c463509be73fa538216ea52b792a/websockets-16.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:52ac480f44d32970d66763115edea932f1c5b1312de36df06d6b219f6741eed8", size = 185653 }, - { url = "https://files.pythonhosted.org/packages/9b/67/f926bac29882894669368dc73f4da900fcdf47955d0a0185d60103df5737/websockets-16.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:6e5a82b677f8f6f59e8dfc34ec06ca6b5b48bc4fcda346acd093694cc2c24d8f", size = 184920 }, - { url = "https://files.pythonhosted.org/packages/3c/a1/3d6ccdcd125b0a42a311bcd15a7f705d688f73b2a22d8cf1c0875d35d34a/websockets-16.0-cp313-cp313-win32.whl", hash = "sha256:abf050a199613f64c886ea10f38b47770a65154dc37181bfaff70c160f45315a", size = 178255 }, - { url = "https://files.pythonhosted.org/packages/6b/ae/90366304d7c2ce80f9b826096a9e9048b4bb760e44d3b873bb272cba696b/websockets-16.0-cp313-cp313-win_amd64.whl", hash = "sha256:3425ac5cf448801335d6fdc7ae1eb22072055417a96cc6b31b3861f455fbc156", size = 178689 }, - { url = "https://files.pythonhosted.org/packages/72/07/c98a68571dcf256e74f1f816b8cc5eae6eb2d3d5cfa44d37f801619d9166/websockets-16.0-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:349f83cd6c9a415428ee1005cadb5c2c56f4389bc06a9af16103c3bc3dcc8b7d", size = 174947 }, - { url = "https://files.pythonhosted.org/packages/7e/52/93e166a81e0305b33fe416338be92ae863563fe7bce446b0f687b9df5aea/websockets-16.0-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:4a1aba3340a8dca8db6eb5a7986157f52eb9e436b74813764241981ca4888f03", size = 175260 }, - { url = "https://files.pythonhosted.org/packages/56/0c/2dbf513bafd24889d33de2ff0368190a0e69f37bcfa19009ef819fe4d507/websockets-16.0-pp311-pypy311_pp73-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:f4a32d1bd841d4bcbffdcb3d2ce50c09c3909fbead375ab28d0181af89fd04da", size = 176071 }, - { url = "https://files.pythonhosted.org/packages/a5/8f/aea9c71cc92bf9b6cc0f7f70df8f0b420636b6c96ef4feee1e16f80f75dd/websockets-16.0-pp311-pypy311_pp73-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0298d07ee155e2e9fda5be8a9042200dd2e3bb0b8a38482156576f863a9d457c", size = 176968 }, - { url = "https://files.pythonhosted.org/packages/9a/3f/f70e03f40ffc9a30d817eef7da1be72ee4956ba8d7255c399a01b135902a/websockets-16.0-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:a653aea902e0324b52f1613332ddf50b00c06fdaf7e92624fbf8c77c78fa5767", size = 178735 }, - { url = "https://files.pythonhosted.org/packages/6f/28/258ebab549c2bf3e64d2b0217b973467394a9cea8c42f70418ca2c5d0d2e/websockets-16.0-py3-none-any.whl", hash = "sha256:1637db62fad1dc833276dded54215f2c7fa46912301a24bd94d45d46a011ceec", size = 171598 }, + { url = "https://files.pythonhosted.org/packages/20/74/221f58decd852f4b59cc3354cccaf87e8ef695fede361d03dc9a7396573b/websockets-16.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:04cdd5d2d1dacbad0a7bf36ccbcd3ccd5a30ee188f2560b7a62a30d14107b31a", size = 177343, upload-time = "2026-01-10T09:22:21.28Z" }, + { url = "https://files.pythonhosted.org/packages/19/0f/22ef6107ee52ab7f0b710d55d36f5a5d3ef19e8a205541a6d7ffa7994e5a/websockets-16.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:8ff32bb86522a9e5e31439a58addbb0166f0204d64066fb955265c4e214160f0", size = 175021, upload-time = "2026-01-10T09:22:22.696Z" }, + { url = "https://files.pythonhosted.org/packages/10/40/904a4cb30d9b61c0e278899bf36342e9b0208eb3c470324a9ecbaac2a30f/websockets-16.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:583b7c42688636f930688d712885cf1531326ee05effd982028212ccc13e5957", size = 175320, upload-time = "2026-01-10T09:22:23.94Z" }, + { url = "https://files.pythonhosted.org/packages/9d/2f/4b3ca7e106bc608744b1cdae041e005e446124bebb037b18799c2d356864/websockets-16.0-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:7d837379b647c0c4c2355c2499723f82f1635fd2c26510e1f587d89bc2199e72", size = 183815, upload-time = "2026-01-10T09:22:25.469Z" }, + { url = "https://files.pythonhosted.org/packages/86/26/d40eaa2a46d4302becec8d15b0fc5e45bdde05191e7628405a19cf491ccd/websockets-16.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:df57afc692e517a85e65b72e165356ed1df12386ecb879ad5693be08fac65dde", size = 185054, upload-time = "2026-01-10T09:22:27.101Z" }, + { url = "https://files.pythonhosted.org/packages/b0/ba/6500a0efc94f7373ee8fefa8c271acdfd4dca8bd49a90d4be7ccabfc397e/websockets-16.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:2b9f1e0d69bc60a4a87349d50c09a037a2607918746f07de04df9e43252c77a3", size = 184565, upload-time = "2026-01-10T09:22:28.293Z" }, + { url = "https://files.pythonhosted.org/packages/04/b4/96bf2cee7c8d8102389374a2616200574f5f01128d1082f44102140344cc/websockets-16.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:335c23addf3d5e6a8633f9f8eda77efad001671e80b95c491dd0924587ece0b3", size = 183848, upload-time = "2026-01-10T09:22:30.394Z" }, + { url = "https://files.pythonhosted.org/packages/02/8e/81f40fb00fd125357814e8c3025738fc4ffc3da4b6b4a4472a82ba304b41/websockets-16.0-cp310-cp310-win32.whl", hash = "sha256:37b31c1623c6605e4c00d466c9d633f9b812ea430c11c8a278774a1fde1acfa9", size = 178249, upload-time = "2026-01-10T09:22:32.083Z" }, + { url = "https://files.pythonhosted.org/packages/b4/5f/7e40efe8df57db9b91c88a43690ac66f7b7aa73a11aa6a66b927e44f26fa/websockets-16.0-cp310-cp310-win_amd64.whl", hash = "sha256:8e1dab317b6e77424356e11e99a432b7cb2f3ec8c5ab4dabbcee6add48f72b35", size = 178685, upload-time = "2026-01-10T09:22:33.345Z" }, + { url = "https://files.pythonhosted.org/packages/f2/db/de907251b4ff46ae804ad0409809504153b3f30984daf82a1d84a9875830/websockets-16.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:31a52addea25187bde0797a97d6fc3d2f92b6f72a9370792d65a6e84615ac8a8", size = 177340, upload-time = "2026-01-10T09:22:34.539Z" }, + { url = "https://files.pythonhosted.org/packages/f3/fa/abe89019d8d8815c8781e90d697dec52523fb8ebe308bf11664e8de1877e/websockets-16.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:417b28978cdccab24f46400586d128366313e8a96312e4b9362a4af504f3bbad", size = 175022, upload-time = "2026-01-10T09:22:36.332Z" }, + { url = "https://files.pythonhosted.org/packages/58/5d/88ea17ed1ded2079358b40d31d48abe90a73c9e5819dbcde1606e991e2ad/websockets-16.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:af80d74d4edfa3cb9ed973a0a5ba2b2a549371f8a741e0800cb07becdd20f23d", size = 175319, upload-time = "2026-01-10T09:22:37.602Z" }, + { url = "https://files.pythonhosted.org/packages/d2/ae/0ee92b33087a33632f37a635e11e1d99d429d3d323329675a6022312aac2/websockets-16.0-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:08d7af67b64d29823fed316505a89b86705f2b7981c07848fb5e3ea3020c1abe", size = 184631, upload-time = "2026-01-10T09:22:38.789Z" }, + { url = "https://files.pythonhosted.org/packages/c8/c5/27178df583b6c5b31b29f526ba2da5e2f864ecc79c99dae630a85d68c304/websockets-16.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:7be95cfb0a4dae143eaed2bcba8ac23f4892d8971311f1b06f3c6b78952ee70b", size = 185870, upload-time = "2026-01-10T09:22:39.893Z" }, + { url = "https://files.pythonhosted.org/packages/87/05/536652aa84ddc1c018dbb7e2c4cbcd0db884580bf8e95aece7593fde526f/websockets-16.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:d6297ce39ce5c2e6feb13c1a996a2ded3b6832155fcfc920265c76f24c7cceb5", size = 185361, upload-time = "2026-01-10T09:22:41.016Z" }, + { url = "https://files.pythonhosted.org/packages/6d/e2/d5332c90da12b1e01f06fb1b85c50cfc489783076547415bf9f0a659ec19/websockets-16.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:1c1b30e4f497b0b354057f3467f56244c603a79c0d1dafce1d16c283c25f6e64", size = 184615, upload-time = "2026-01-10T09:22:42.442Z" }, + { url = "https://files.pythonhosted.org/packages/77/fb/d3f9576691cae9253b51555f841bc6600bf0a983a461c79500ace5a5b364/websockets-16.0-cp311-cp311-win32.whl", hash = "sha256:5f451484aeb5cafee1ccf789b1b66f535409d038c56966d6101740c1614b86c6", size = 178246, upload-time = "2026-01-10T09:22:43.654Z" }, + { url = "https://files.pythonhosted.org/packages/54/67/eaff76b3dbaf18dcddabc3b8c1dba50b483761cccff67793897945b37408/websockets-16.0-cp311-cp311-win_amd64.whl", hash = "sha256:8d7f0659570eefb578dacde98e24fb60af35350193e4f56e11190787bee77dac", size = 178684, upload-time = "2026-01-10T09:22:44.941Z" }, + { url = "https://files.pythonhosted.org/packages/84/7b/bac442e6b96c9d25092695578dda82403c77936104b5682307bd4deb1ad4/websockets-16.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:71c989cbf3254fbd5e84d3bff31e4da39c43f884e64f2551d14bb3c186230f00", size = 177365, upload-time = "2026-01-10T09:22:46.787Z" }, + { url = "https://files.pythonhosted.org/packages/b0/fe/136ccece61bd690d9c1f715baaeefd953bb2360134de73519d5df19d29ca/websockets-16.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:8b6e209ffee39ff1b6d0fa7bfef6de950c60dfb91b8fcead17da4ee539121a79", size = 175038, upload-time = "2026-01-10T09:22:47.999Z" }, + { url = "https://files.pythonhosted.org/packages/40/1e/9771421ac2286eaab95b8575b0cb701ae3663abf8b5e1f64f1fd90d0a673/websockets-16.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:86890e837d61574c92a97496d590968b23c2ef0aeb8a9bc9421d174cd378ae39", size = 175328, upload-time = "2026-01-10T09:22:49.809Z" }, + { url = "https://files.pythonhosted.org/packages/18/29/71729b4671f21e1eaa5d6573031ab810ad2936c8175f03f97f3ff164c802/websockets-16.0-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:9b5aca38b67492ef518a8ab76851862488a478602229112c4b0d58d63a7a4d5c", size = 184915, upload-time = "2026-01-10T09:22:51.071Z" }, + { url = "https://files.pythonhosted.org/packages/97/bb/21c36b7dbbafc85d2d480cd65df02a1dc93bf76d97147605a8e27ff9409d/websockets-16.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e0334872c0a37b606418ac52f6ab9cfd17317ac26365f7f65e203e2d0d0d359f", size = 186152, upload-time = "2026-01-10T09:22:52.224Z" }, + { url = "https://files.pythonhosted.org/packages/4a/34/9bf8df0c0cf88fa7bfe36678dc7b02970c9a7d5e065a3099292db87b1be2/websockets-16.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:a0b31e0b424cc6b5a04b8838bbaec1688834b2383256688cf47eb97412531da1", size = 185583, upload-time = "2026-01-10T09:22:53.443Z" }, + { url = "https://files.pythonhosted.org/packages/47/88/4dd516068e1a3d6ab3c7c183288404cd424a9a02d585efbac226cb61ff2d/websockets-16.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:485c49116d0af10ac698623c513c1cc01c9446c058a4e61e3bf6c19dff7335a2", size = 184880, upload-time = "2026-01-10T09:22:55.033Z" }, + { url = "https://files.pythonhosted.org/packages/91/d6/7d4553ad4bf1c0421e1ebd4b18de5d9098383b5caa1d937b63df8d04b565/websockets-16.0-cp312-cp312-win32.whl", hash = "sha256:eaded469f5e5b7294e2bdca0ab06becb6756ea86894a47806456089298813c89", size = 178261, upload-time = "2026-01-10T09:22:56.251Z" }, + { url = "https://files.pythonhosted.org/packages/c3/f0/f3a17365441ed1c27f850a80b2bc680a0fa9505d733fe152fdf5e98c1c0b/websockets-16.0-cp312-cp312-win_amd64.whl", hash = "sha256:5569417dc80977fc8c2d43a86f78e0a5a22fee17565d78621b6bb264a115d4ea", size = 178693, upload-time = "2026-01-10T09:22:57.478Z" }, + { url = "https://files.pythonhosted.org/packages/cc/9c/baa8456050d1c1b08dd0ec7346026668cbc6f145ab4e314d707bb845bf0d/websockets-16.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:878b336ac47938b474c8f982ac2f7266a540adc3fa4ad74ae96fea9823a02cc9", size = 177364, upload-time = "2026-01-10T09:22:59.333Z" }, + { url = "https://files.pythonhosted.org/packages/7e/0c/8811fc53e9bcff68fe7de2bcbe75116a8d959ac699a3200f4847a8925210/websockets-16.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:52a0fec0e6c8d9a784c2c78276a48a2bdf099e4ccc2a4cad53b27718dbfd0230", size = 175039, upload-time = "2026-01-10T09:23:01.171Z" }, + { url = "https://files.pythonhosted.org/packages/aa/82/39a5f910cb99ec0b59e482971238c845af9220d3ab9fa76dd9162cda9d62/websockets-16.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:e6578ed5b6981005df1860a56e3617f14a6c307e6a71b4fff8c48fdc50f3ed2c", size = 175323, upload-time = "2026-01-10T09:23:02.341Z" }, + { url = "https://files.pythonhosted.org/packages/bd/28/0a25ee5342eb5d5f297d992a77e56892ecb65e7854c7898fb7d35e9b33bd/websockets-16.0-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:95724e638f0f9c350bb1c2b0a7ad0e83d9cc0c9259f3ea94e40d7b02a2179ae5", size = 184975, upload-time = "2026-01-10T09:23:03.756Z" }, + { url = "https://files.pythonhosted.org/packages/f9/66/27ea52741752f5107c2e41fda05e8395a682a1e11c4e592a809a90c6a506/websockets-16.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c0204dc62a89dc9d50d682412c10b3542d748260d743500a85c13cd1ee4bde82", size = 186203, upload-time = "2026-01-10T09:23:05.01Z" }, + { url = "https://files.pythonhosted.org/packages/37/e5/8e32857371406a757816a2b471939d51c463509be73fa538216ea52b792a/websockets-16.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:52ac480f44d32970d66763115edea932f1c5b1312de36df06d6b219f6741eed8", size = 185653, upload-time = "2026-01-10T09:23:06.301Z" }, + { url = "https://files.pythonhosted.org/packages/9b/67/f926bac29882894669368dc73f4da900fcdf47955d0a0185d60103df5737/websockets-16.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:6e5a82b677f8f6f59e8dfc34ec06ca6b5b48bc4fcda346acd093694cc2c24d8f", size = 184920, upload-time = "2026-01-10T09:23:07.492Z" }, + { url = "https://files.pythonhosted.org/packages/3c/a1/3d6ccdcd125b0a42a311bcd15a7f705d688f73b2a22d8cf1c0875d35d34a/websockets-16.0-cp313-cp313-win32.whl", hash = "sha256:abf050a199613f64c886ea10f38b47770a65154dc37181bfaff70c160f45315a", size = 178255, upload-time = "2026-01-10T09:23:09.245Z" }, + { url = "https://files.pythonhosted.org/packages/6b/ae/90366304d7c2ce80f9b826096a9e9048b4bb760e44d3b873bb272cba696b/websockets-16.0-cp313-cp313-win_amd64.whl", hash = "sha256:3425ac5cf448801335d6fdc7ae1eb22072055417a96cc6b31b3861f455fbc156", size = 178689, upload-time = "2026-01-10T09:23:10.483Z" }, + { url = "https://files.pythonhosted.org/packages/f3/1d/e88022630271f5bd349ed82417136281931e558d628dd52c4d8621b4a0b2/websockets-16.0-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:8cc451a50f2aee53042ac52d2d053d08bf89bcb31ae799cb4487587661c038a0", size = 177406, upload-time = "2026-01-10T09:23:12.178Z" }, + { url = "https://files.pythonhosted.org/packages/f2/78/e63be1bf0724eeb4616efb1ae1c9044f7c3953b7957799abb5915bffd38e/websockets-16.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:daa3b6ff70a9241cf6c7fc9e949d41232d9d7d26fd3522b1ad2b4d62487e9904", size = 175085, upload-time = "2026-01-10T09:23:13.511Z" }, + { url = "https://files.pythonhosted.org/packages/bb/f4/d3c9220d818ee955ae390cf319a7c7a467beceb24f05ee7aaaa2414345ba/websockets-16.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:fd3cb4adb94a2a6e2b7c0d8d05cb94e6f1c81a0cf9dc2694fb65c7e8d94c42e4", size = 175328, upload-time = "2026-01-10T09:23:14.727Z" }, + { url = "https://files.pythonhosted.org/packages/63/bc/d3e208028de777087e6fb2b122051a6ff7bbcca0d6df9d9c2bf1dd869ae9/websockets-16.0-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:781caf5e8eee67f663126490c2f96f40906594cb86b408a703630f95550a8c3e", size = 185044, upload-time = "2026-01-10T09:23:15.939Z" }, + { url = "https://files.pythonhosted.org/packages/ad/6e/9a0927ac24bd33a0a9af834d89e0abc7cfd8e13bed17a86407a66773cc0e/websockets-16.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:caab51a72c51973ca21fa8a18bd8165e1a0183f1ac7066a182ff27107b71e1a4", size = 186279, upload-time = "2026-01-10T09:23:17.148Z" }, + { url = "https://files.pythonhosted.org/packages/b9/ca/bf1c68440d7a868180e11be653c85959502efd3a709323230314fda6e0b3/websockets-16.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:19c4dc84098e523fd63711e563077d39e90ec6702aff4b5d9e344a60cb3c0cb1", size = 185711, upload-time = "2026-01-10T09:23:18.372Z" }, + { url = "https://files.pythonhosted.org/packages/c4/f8/fdc34643a989561f217bb477cbc47a3a07212cbda91c0e4389c43c296ebf/websockets-16.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:a5e18a238a2b2249c9a9235466b90e96ae4795672598a58772dd806edc7ac6d3", size = 184982, upload-time = "2026-01-10T09:23:19.652Z" }, + { url = "https://files.pythonhosted.org/packages/dd/d1/574fa27e233764dbac9c52730d63fcf2823b16f0856b3329fc6268d6ae4f/websockets-16.0-cp314-cp314-win32.whl", hash = "sha256:a069d734c4a043182729edd3e9f247c3b2a4035415a9172fd0f1b71658a320a8", size = 177915, upload-time = "2026-01-10T09:23:21.458Z" }, + { url = "https://files.pythonhosted.org/packages/8a/f1/ae6b937bf3126b5134ce1f482365fde31a357c784ac51852978768b5eff4/websockets-16.0-cp314-cp314-win_amd64.whl", hash = "sha256:c0ee0e63f23914732c6d7e0cce24915c48f3f1512ec1d079ed01fc629dab269d", size = 178381, upload-time = "2026-01-10T09:23:22.715Z" }, + { url = "https://files.pythonhosted.org/packages/06/9b/f791d1db48403e1f0a27577a6beb37afae94254a8c6f08be4a23e4930bc0/websockets-16.0-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:a35539cacc3febb22b8f4d4a99cc79b104226a756aa7400adc722e83b0d03244", size = 177737, upload-time = "2026-01-10T09:23:24.523Z" }, + { url = "https://files.pythonhosted.org/packages/bd/40/53ad02341fa33b3ce489023f635367a4ac98b73570102ad2cdd770dacc9a/websockets-16.0-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:b784ca5de850f4ce93ec85d3269d24d4c82f22b7212023c974c401d4980ebc5e", size = 175268, upload-time = "2026-01-10T09:23:25.781Z" }, + { url = "https://files.pythonhosted.org/packages/74/9b/6158d4e459b984f949dcbbb0c5d270154c7618e11c01029b9bbd1bb4c4f9/websockets-16.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:569d01a4e7fba956c5ae4fc988f0d4e187900f5497ce46339c996dbf24f17641", size = 175486, upload-time = "2026-01-10T09:23:27.033Z" }, + { url = "https://files.pythonhosted.org/packages/e5/2d/7583b30208b639c8090206f95073646c2c9ffd66f44df967981a64f849ad/websockets-16.0-cp314-cp314t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:50f23cdd8343b984957e4077839841146f67a3d31ab0d00e6b824e74c5b2f6e8", size = 185331, upload-time = "2026-01-10T09:23:28.259Z" }, + { url = "https://files.pythonhosted.org/packages/45/b0/cce3784eb519b7b5ad680d14b9673a31ab8dcb7aad8b64d81709d2430aa8/websockets-16.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:152284a83a00c59b759697b7f9e9cddf4e3c7861dd0d964b472b70f78f89e80e", size = 186501, upload-time = "2026-01-10T09:23:29.449Z" }, + { url = "https://files.pythonhosted.org/packages/19/60/b8ebe4c7e89fb5f6cdf080623c9d92789a53636950f7abacfc33fe2b3135/websockets-16.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:bc59589ab64b0022385f429b94697348a6a234e8ce22544e3681b2e9331b5944", size = 186062, upload-time = "2026-01-10T09:23:31.368Z" }, + { url = "https://files.pythonhosted.org/packages/88/a8/a080593f89b0138b6cba1b28f8df5673b5506f72879322288b031337c0b8/websockets-16.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:32da954ffa2814258030e5a57bc73a3635463238e797c7375dc8091327434206", size = 185356, upload-time = "2026-01-10T09:23:32.627Z" }, + { url = "https://files.pythonhosted.org/packages/c2/b6/b9afed2afadddaf5ebb2afa801abf4b0868f42f8539bfe4b071b5266c9fe/websockets-16.0-cp314-cp314t-win32.whl", hash = "sha256:5a4b4cc550cb665dd8a47f868c8d04c8230f857363ad3c9caf7a0c3bf8c61ca6", size = 178085, upload-time = "2026-01-10T09:23:33.816Z" }, + { url = "https://files.pythonhosted.org/packages/9f/3e/28135a24e384493fa804216b79a6a6759a38cc4ff59118787b9fb693df93/websockets-16.0-cp314-cp314t-win_amd64.whl", hash = "sha256:b14dc141ed6d2dde437cddb216004bcac6a1df0935d79656387bd41632ba0bbd", size = 178531, upload-time = "2026-01-10T09:23:35.016Z" }, + { url = "https://files.pythonhosted.org/packages/72/07/c98a68571dcf256e74f1f816b8cc5eae6eb2d3d5cfa44d37f801619d9166/websockets-16.0-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:349f83cd6c9a415428ee1005cadb5c2c56f4389bc06a9af16103c3bc3dcc8b7d", size = 174947, upload-time = "2026-01-10T09:23:36.166Z" }, + { url = "https://files.pythonhosted.org/packages/7e/52/93e166a81e0305b33fe416338be92ae863563fe7bce446b0f687b9df5aea/websockets-16.0-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:4a1aba3340a8dca8db6eb5a7986157f52eb9e436b74813764241981ca4888f03", size = 175260, upload-time = "2026-01-10T09:23:37.409Z" }, + { url = "https://files.pythonhosted.org/packages/56/0c/2dbf513bafd24889d33de2ff0368190a0e69f37bcfa19009ef819fe4d507/websockets-16.0-pp311-pypy311_pp73-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:f4a32d1bd841d4bcbffdcb3d2ce50c09c3909fbead375ab28d0181af89fd04da", size = 176071, upload-time = "2026-01-10T09:23:39.158Z" }, + { url = "https://files.pythonhosted.org/packages/a5/8f/aea9c71cc92bf9b6cc0f7f70df8f0b420636b6c96ef4feee1e16f80f75dd/websockets-16.0-pp311-pypy311_pp73-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0298d07ee155e2e9fda5be8a9042200dd2e3bb0b8a38482156576f863a9d457c", size = 176968, upload-time = "2026-01-10T09:23:41.031Z" }, + { url = "https://files.pythonhosted.org/packages/9a/3f/f70e03f40ffc9a30d817eef7da1be72ee4956ba8d7255c399a01b135902a/websockets-16.0-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:a653aea902e0324b52f1613332ddf50b00c06fdaf7e92624fbf8c77c78fa5767", size = 178735, upload-time = "2026-01-10T09:23:42.259Z" }, + { url = "https://files.pythonhosted.org/packages/6f/28/258ebab549c2bf3e64d2b0217b973467394a9cea8c42f70418ca2c5d0d2e/websockets-16.0-py3-none-any.whl", hash = "sha256:1637db62fad1dc833276dded54215f2c7fa46912301a24bd94d45d46a011ceec", size = 171598, upload-time = "2026-01-10T09:23:45.395Z" }, ] diff --git a/ts-tests/suites/dev/subtensor/limit-orders/test-execute-orders-ed25519-wrapped.ts b/ts-tests/suites/dev/subtensor/limit-orders/test-execute-orders-ed25519-wrapped.ts new file mode 100644 index 0000000000..4e08f580a0 --- /dev/null +++ b/ts-tests/suites/dev/subtensor/limit-orders/test-execute-orders-ed25519-wrapped.ts @@ -0,0 +1,116 @@ +import { beforeAll, describeSuite, expect } from "@moonwall/cli"; +import type { KeyringPair } from "@moonwall/util"; +import type { ApiPromise } from "@polkadot/api"; +import { generateKeyringPair, tao } from "../../../../utils"; +import { + devAssociateHotKey, + devEnableSubtoken, + devExecuteOrders, + devForceSetBalance, + devGetAlphaStake, + devRegisterSubnet, + devSudoSetLockReductionInterval, +} from "../../../../utils/dev-helpers.js"; +import { + FAR_FUTURE, + buildWrappedSignedOrder, + fetchChainId, + filterEvents, + getOrderStatus, + orderId, + registerLimitOrderTypes, +} from "../../../../utils/limit-orders.js"; + +// One subnet per file — this test submits a real buy order signed by an +// ed25519 key over the ``-wrapped order hash (the Ledger / signRaw +// form). It exercises the runtime's alternative `is_order_valid` path: +// signature.verify(b"" ++ blake2_256(SCALE(VersionedOrder)) ++ b"", signer) +// with an Ed25519 signature. + +describeSuite({ + id: "DEV_SUB_LIMIT_ORDERS_ED25519_WRAPPED", + title: "execute_orders — ed25519 + -wrapped LimitBuy execution", + foundationMethods: "dev", + testCases: ({ it, context }) => { + let polkadotJs: ApiPromise; + let alice: KeyringPair; + let aliceHotKey: KeyringPair; + let edSigner: KeyringPair; + let edHotKey: KeyringPair; + let netuid: number; + let chainId: bigint; + + beforeAll(async () => { + polkadotJs = context.polkadotJs(); + + alice = context.keyring.alice; + aliceHotKey = generateKeyringPair("sr25519"); + + // ed25519 coldkey/signer that signs the wrapped order hash, with an + // sr25519 hotkey associated to it. + edSigner = generateKeyringPair("ed25519"); + edHotKey = generateKeyringPair("sr25519"); + + registerLimitOrderTypes(polkadotJs); + chainId = await fetchChainId(polkadotJs); + + await devForceSetBalance(polkadotJs, context, alice.address, tao(10_000)); + await devForceSetBalance(polkadotJs, context, edSigner.address, tao(10_000)); + + await devSudoSetLockReductionInterval(polkadotJs, context, alice, 1); + + netuid = await devRegisterSubnet(polkadotJs, context, alice, aliceHotKey); + + // Enable subtoken + await devEnableSubtoken(polkadotJs, context, alice, netuid); + // Associate hotkeys — the ed25519 signer associates its own hotkey. + await devAssociateHotKey(polkadotJs, context, alice, aliceHotKey.address); + await devAssociateHotKey(polkadotJs, context, edSigner, edHotKey.address); + }); + + it({ + id: "T01", + title: "LimitBuy executes with an ed25519 -wrapped signature", + test: async () => { + const stakeBefore = await devGetAlphaStake(polkadotJs, edHotKey.address, edSigner.address, netuid); + const taoBalanceBefore = ( + (await polkadotJs.query.system.account(edSigner.address)) as any + ).data.free.toBigInt(); + + const signed = buildWrappedSignedOrder(polkadotJs, { + signer: edSigner, + hotkey: edHotKey.address, + netuid, + orderType: "LimitBuy", + amount: tao(100), + limitPrice: FAR_FUTURE, + expiry: FAR_FUTURE, + feeRate: 0, + feeRecipient: edSigner.address, + chainId, + }); + + // Alice relays/submits the ed25519-signed order. + await devExecuteOrders(polkadotJs, context, alice, [signed]); + + const events = await polkadotJs.query.system.events(); + const executed = filterEvents(events, "OrderExecuted"); + expect(executed.length).toBe(1); + + // OrderId should be stored as Fulfilled + const id = orderId(polkadotJs, signed.order); + expect(await getOrderStatus(polkadotJs, id)).toBe("Fulfilled"); + + // Alpha stake for the ed25519 signer's hotkey should have increased + const stakeAfter = await devGetAlphaStake(polkadotJs, edHotKey.address, edSigner.address, netuid); + expect(stakeAfter).toBeGreaterThan(stakeBefore); + + // ed25519 signer's TAO balance should have decreased + const taoBalanceAfter = ( + (await polkadotJs.query.system.account(edSigner.address)) as any + ).data.free.toBigInt(); + expect(taoBalanceAfter).toBeLessThan(taoBalanceBefore); + }, + }); + }, +}); diff --git a/ts-tests/utils/evm-config.ts b/ts-tests/utils/evm-config.ts index 7ea940d572..f6c4554339 100644 --- a/ts-tests/utils/evm-config.ts +++ b/ts-tests/utils/evm-config.ts @@ -162,6 +162,47 @@ export const IStakingV2ABI = [ stateMutability: "view", type: "function", }, + { + inputs: [ + { + internalType: "bytes32", + name: "coldkey", + type: "bytes32", + }, + { + internalType: "uint256", + name: "netuid", + type: "uint256", + }, + { + internalType: "bytes32[]", + name: "hotkeys", + type: "bytes32[]", + }, + ], + name: "getStakeInfoForColdkeyAndNetuid", + outputs: [ + { + components: [ + { + internalType: "bytes32", + name: "hotkey", + type: "bytes32", + }, + { + internalType: "uint256", + name: "stake", + type: "uint256", + }, + ], + internalType: "struct IStaking.StakeInfo[]", + name: "positions", + type: "tuple[]", + }, + ], + stateMutability: "view", + type: "function", + }, { inputs: [ { @@ -290,6 +331,19 @@ export const IStakingV2ABI = [ stateMutability: "view", type: "function", }, + { + inputs: [], + name: "getDefaultMinStake", + outputs: [ + { + internalType: "uint256", + name: "defaultMinStake", + type: "uint256", + }, + ], + stateMutability: "view", + type: "function", + }, { inputs: [ { diff --git a/ts-tests/utils/limit-orders.ts b/ts-tests/utils/limit-orders.ts index 0ffbe177e0..e9ba6816c0 100644 --- a/ts-tests/utils/limit-orders.ts +++ b/ts-tests/utils/limit-orders.ts @@ -2,8 +2,8 @@ import type { KeyringPair } from "@moonwall/util"; import type { TypedApi } from "polkadot-api"; import type { subtensor } from "@polkadot-api/descriptors"; import { Keyring } from "@polkadot/keyring"; -import { u8aToHex } from "@polkadot/util"; -import { blake2AsHex } from "@polkadot/util-crypto"; +import { u8aToHex, u8aWrapBytes } from "@polkadot/util"; +import { blake2AsHex, blake2AsU8a } from "@polkadot/util-crypto"; import { waitForTransactionWithRetry } from "./transactions.js"; import { MultiAddress } from "@polkadot-api/descriptors"; @@ -62,11 +62,11 @@ export const EXPIRED = BigInt(1); // 1ms — always in the past // ── Order building & signing ────────────────────────────────────────────────── /** - * Build a SignedOrder ready for submission to execute_orders / - * execute_batched_orders. The Order struct is SCALE-encoded via the - * polkadot.js registry and then signed with the signer's sr25519 key. + * Build the `VersionedOrder` (V1) struct from the supplied params. Shared by + * `buildSignedOrder` (raw signing) and `buildWrappedSignedOrder` (Ledger / + * signRaw ``-wrapped signing) so the field mapping stays identical. */ -export function buildSignedOrder(api: any, params: OrderParams): SignedOrder { +function buildVersionedOrder(params: OrderParams): VersionedOrder { const inner: Order = { signer: params.signer.address, hotkey: params.hotkey, @@ -83,7 +83,16 @@ export function buildSignedOrder(api: any, params: OrderParams): SignedOrder { partial_fills_enabled: params.partialFillsEnabled ?? false, }; - const versionedOrder: VersionedOrder = { V1: inner }; + return { V1: inner }; +} + +/** + * Build a SignedOrder ready for submission to execute_orders / + * execute_batched_orders. The Order struct is SCALE-encoded via the + * polkadot.js registry and then signed with the signer's sr25519 key. + */ +export function buildSignedOrder(api: any, params: OrderParams): SignedOrder { + const versionedOrder = buildVersionedOrder(params); // SCALE-encode the VersionedOrder so the signature covers the version tag. const encoded = api.registry.createType("LimitVersionedOrder", versionedOrder); @@ -96,6 +105,46 @@ export function buildSignedOrder(api: any, params: OrderParams): SignedOrder { }; } +/** + * Build a SignedOrder whose signature is over the ``-wrapped order hash + * (the Ledger / `signRaw` form). This exercises the runtime's alternative + * verification path: + * + * signature.verify(b"" ++ blake2_256(SCALE(VersionedOrder)) ++ b"", signer) + * + * The signed payload is the raw 32-byte blake2-256 hash of the SCALE-encoded + * VersionedOrder, wrapped by `u8aWrapBytes` (which prepends `` and + * appends ``). This is byte-for-byte what the runtime reconstructs + * from `order_id.as_bytes()`, so the hash must be wrapped raw — never + * hex-encoded before wrapping. + * + * The signature scheme tag (`Sr25519` vs `Ed25519`) follows the signer's + * keypair type, so the same helper works for both schemes. + */ +export function buildWrappedSignedOrder(api: any, params: OrderParams): SignedOrder { + const versionedOrder = buildVersionedOrder(params); + + // SCALE-encode the VersionedOrder, then hash it (this is the OrderId). + const encoded = api.registry.createType("LimitVersionedOrder", versionedOrder); + const hash = blake2AsU8a(encoded.toU8a(), 256); + + // Wrap the raw 32-byte hash in the signRaw envelope: ..hash... + const wrapped = u8aWrapBytes(hash); + const sig = params.signer.sign(wrapped); + + // Tag the signature variant from the keypair type. + const signature = + params.signer.type === "ed25519" + ? { Ed25519: u8aToHex(sig) as `0x${string}` } + : { Sr25519: u8aToHex(sig) as `0x${string}` }; + + return { + order: versionedOrder, + signature, + partial_fill: null, + }; +} + /** * Compute the on-chain OrderId (blake2_256 of SCALE-encoded VersionedOrder). * Mirrors `Pallet::derive_order_id` in Rust. diff --git a/website/apps/bittensor-website/public/catalog/intents.json b/website/apps/bittensor-website/public/catalog/intents.json index f9f7504515..d8e31171a1 100644 --- a/website/apps/bittensor-website/public/catalog/intents.json +++ b/website/apps/bittensor-website/public/catalog/intents.json @@ -56,9 +56,9 @@ "pallet": "SubtensorModule", "call": "add_collateral", "path": "pallets/subtensor/src/macros/dispatches.rs", - "line": 2443, - "end_line": 2451, - "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L2441-L2451", + "line": 2452, + "end_line": 2460, + "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L2450-L2460", "raw_url": "/code/raw/pallets/subtensor/src/macros/dispatches.rs" } ] @@ -188,9 +188,9 @@ "pallet": "SubtensorModule", "call": "add_stake_limit", "path": "pallets/subtensor/src/macros/dispatches.rs", - "line": 1393, - "end_line": 1410, - "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L1391-L1410", + "line": 1394, + "end_line": 1411, + "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L1392-L1411", "raw_url": "/code/raw/pallets/subtensor/src/macros/dispatches.rs" } ] @@ -258,9 +258,9 @@ "pallet": "SubtensorModule", "call": "add_stake_limit", "path": "pallets/subtensor/src/macros/dispatches.rs", - "line": 1393, - "end_line": 1410, - "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L1391-L1410", + "line": 1394, + "end_line": 1411, + "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L1392-L1411", "raw_url": "/code/raw/pallets/subtensor/src/macros/dispatches.rs" } ] @@ -300,9 +300,9 @@ "pallet": "SubtensorModule", "call": "announce_coldkey_swap", "path": "pallets/subtensor/src/macros/dispatches.rs", - "line": 1987, - "end_line": 2013, - "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L1985-L2013", + "line": 1988, + "end_line": 2014, + "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L1986-L2014", "raw_url": "/code/raw/pallets/subtensor/src/macros/dispatches.rs" } ] @@ -357,9 +357,9 @@ "pallet": "SubtensorModule", "call": "associate_evm_key", "path": "pallets/subtensor/src/macros/dispatches.rs", - "line": 1579, - "end_line": 1587, - "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L1573-L1587", + "line": 1580, + "end_line": 1588, + "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L1574-L1588", "raw_url": "/code/raw/pallets/subtensor/src/macros/dispatches.rs" } ] @@ -397,9 +397,9 @@ "pallet": "SubtensorModule", "call": "try_associate_hotkey", "path": "pallets/subtensor/src/macros/dispatches.rs", - "line": 1521, - "end_line": 1527, - "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L1519-L1527", + "line": 1522, + "end_line": 1528, + "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L1520-L1528", "raw_url": "/code/raw/pallets/subtensor/src/macros/dispatches.rs" } ] @@ -530,9 +530,9 @@ "pallet": "SubtensorModule", "call": "claim_root", "path": "pallets/subtensor/src/macros/dispatches.rs", - "line": 1891, - "end_line": 1907, - "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L1889-L1907", + "line": 1892, + "end_line": 1908, + "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L1890-L1908", "raw_url": "/code/raw/pallets/subtensor/src/macros/dispatches.rs" } ] @@ -565,9 +565,9 @@ "pallet": "SubtensorModule", "call": "clear_coldkey_swap_announcement", "path": "pallets/subtensor/src/macros/dispatches.rs", - "line": 2186, - "end_line": 2201, - "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L2184-L2201", + "line": 2187, + "end_line": 2202, + "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L2185-L2202", "raw_url": "/code/raw/pallets/subtensor/src/macros/dispatches.rs" } ] @@ -633,9 +633,9 @@ "pallet": "SubtensorModule", "call": "commit_timelocked_mechanism_weights", "path": "pallets/subtensor/src/macros/dispatches.rs", - "line": 1852, - "end_line": 1868, - "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L1850-L1868", + "line": 1853, + "end_line": 1869, + "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L1851-L1869", "raw_url": "/code/raw/pallets/subtensor/src/macros/dispatches.rs" } ] @@ -914,9 +914,9 @@ "pallet": "SubtensorModule", "call": "dispute_coldkey_swap", "path": "pallets/subtensor/src/macros/dispatches.rs", - "line": 2056, - "end_line": 2073, - "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L2054-L2073", + "line": 2057, + "end_line": 2074, + "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L2055-L2074", "raw_url": "/code/raw/pallets/subtensor/src/macros/dispatches.rs" } ] @@ -1318,9 +1318,9 @@ "pallet": "SubtensorModule", "call": "lock_stake", "path": "pallets/subtensor/src/macros/dispatches.rs", - "line": 2258, - "end_line": 2266, - "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L2256-L2266", + "line": 2259, + "end_line": 2267, + "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L2257-L2267", "raw_url": "/code/raw/pallets/subtensor/src/macros/dispatches.rs" } ] @@ -1365,9 +1365,9 @@ "pallet": "SubtensorModule", "call": "move_lock", "path": "pallets/subtensor/src/macros/dispatches.rs", - "line": 2282, - "end_line": 2289, - "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L2280-L2289", + "line": 2283, + "end_line": 2290, + "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L2281-L2290", "raw_url": "/code/raw/pallets/subtensor/src/macros/dispatches.rs" } ] @@ -1436,9 +1436,9 @@ "pallet": "SubtensorModule", "call": "move_stake", "path": "pallets/subtensor/src/macros/dispatches.rs", - "line": 1257, - "end_line": 1273, - "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L1255-L1273", + "line": 1258, + "end_line": 1274, + "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L1256-L1274", "raw_url": "/code/raw/pallets/subtensor/src/macros/dispatches.rs" } ] @@ -1700,9 +1700,9 @@ "pallet": "SubtensorModule", "call": "register_leased_network", "path": "pallets/subtensor/src/macros/dispatches.rs", - "line": 1673, - "end_line": 1679, - "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L1671-L1679", + "line": 1674, + "end_line": 1680, + "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L1672-L1680", "raw_url": "/code/raw/pallets/subtensor/src/macros/dispatches.rs" } ] @@ -1740,9 +1740,9 @@ "pallet": "SubtensorModule", "call": "register_network", "path": "pallets/subtensor/src/macros/dispatches.rs", - "line": 1004, - "end_line": 1006, - "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L1002-L1006", + "line": 1005, + "end_line": 1007, + "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L1003-L1007", "raw_url": "/code/raw/pallets/subtensor/src/macros/dispatches.rs" } ] @@ -1913,9 +1913,9 @@ "pallet": "SubtensorModule", "call": "remove_stake_limit", "path": "pallets/subtensor/src/macros/dispatches.rs", - "line": 1446, - "end_line": 1462, - "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L1444-L1462", + "line": 1447, + "end_line": 1463, + "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L1445-L1463", "raw_url": "/code/raw/pallets/subtensor/src/macros/dispatches.rs" } ] @@ -1989,9 +1989,9 @@ "pallet": "SubtensorModule", "call": "remove_stake_limit", "path": "pallets/subtensor/src/macros/dispatches.rs", - "line": 1446, - "end_line": 1462, - "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L1444-L1462", + "line": 1447, + "end_line": 1463, + "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L1445-L1463", "raw_url": "/code/raw/pallets/subtensor/src/macros/dispatches.rs" } ] @@ -2368,9 +2368,9 @@ "pallet": "SubtensorModule", "call": "set_coldkey_auto_stake_hotkey", "path": "pallets/subtensor/src/macros/dispatches.rs", - "line": 1786, - "end_line": 1826, - "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L1784-L1826", + "line": 1787, + "end_line": 1827, + "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L1785-L1827", "raw_url": "/code/raw/pallets/subtensor/src/macros/dispatches.rs" } ] @@ -2423,9 +2423,9 @@ "pallet": "SubtensorModule", "call": "set_childkey_take", "path": "pallets/subtensor/src/macros/dispatches.rs", - "line": 927, - "end_line": 937, - "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L925-L937", + "line": 928, + "end_line": 938, + "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L926-L938", "raw_url": "/code/raw/pallets/subtensor/src/macros/dispatches.rs" } ] @@ -2474,9 +2474,9 @@ "pallet": "SubtensorModule", "call": "set_children", "path": "pallets/subtensor/src/macros/dispatches.rs", - "line": 1079, - "end_line": 1087, - "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L1077-L1087", + "line": 1080, + "end_line": 1088, + "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L1078-L1088", "raw_url": "/code/raw/pallets/subtensor/src/macros/dispatches.rs" } ] @@ -3041,9 +3041,9 @@ "pallet": "SubtensorModule", "call": "set_identity", "path": "pallets/subtensor/src/macros/dispatches.rs", - "line": 1120, - "end_line": 1140, - "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L1118-L1140", + "line": 1121, + "end_line": 1141, + "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L1119-L1141", "raw_url": "/code/raw/pallets/subtensor/src/macros/dispatches.rs" } ] @@ -3148,9 +3148,9 @@ "pallet": "SubtensorModule", "call": "set_min_collateral", "path": "pallets/subtensor/src/macros/dispatches.rs", - "line": 2478, - "end_line": 2485, - "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L2476-L2485", + "line": 2487, + "end_line": 2494, + "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L2485-L2494", "raw_url": "/code/raw/pallets/subtensor/src/macros/dispatches.rs" } ] @@ -3195,9 +3195,9 @@ "pallet": "SubtensorModule", "call": "set_perpetual_lock", "path": "pallets/subtensor/src/macros/dispatches.rs", - "line": 2298, - "end_line": 2305, - "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L2296-L2305", + "line": 2299, + "end_line": 2306, + "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L2297-L2306", "raw_url": "/code/raw/pallets/subtensor/src/macros/dispatches.rs" } ] @@ -3239,9 +3239,9 @@ "pallet": "SubtensorModule", "call": "set_root_claim_type", "path": "pallets/subtensor/src/macros/dispatches.rs", - "line": 1918, - "end_line": 1932, - "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L1916-L1932", + "line": 1919, + "end_line": 1933, + "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L1917-L1933", "raw_url": "/code/raw/pallets/subtensor/src/macros/dispatches.rs" } ] @@ -3368,9 +3368,9 @@ "pallet": "SubtensorModule", "call": "set_subnet_identity", "path": "pallets/subtensor/src/macros/dispatches.rs", - "line": 1155, - "end_line": 1179, - "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L1153-L1179", + "line": 1156, + "end_line": 1180, + "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L1154-L1180", "raw_url": "/code/raw/pallets/subtensor/src/macros/dispatches.rs" } ] @@ -3508,9 +3508,9 @@ "pallet": "SubtensorModule", "call": "commit_timelocked_mechanism_weights", "path": "pallets/subtensor/src/macros/dispatches.rs", - "line": 1852, - "end_line": 1868, - "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L1850-L1868", + "line": 1853, + "end_line": 1869, + "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L1851-L1869", "raw_url": "/code/raw/pallets/subtensor/src/macros/dispatches.rs" } ] @@ -3573,9 +3573,9 @@ "pallet": "SubtensorModule", "call": "add_stake_burn", "path": "pallets/subtensor/src/macros/dispatches.rs", - "line": 2170, - "end_line": 2178, - "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L2168-L2178", + "line": 2171, + "end_line": 2179, + "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L2169-L2179", "raw_url": "/code/raw/pallets/subtensor/src/macros/dispatches.rs" } ] @@ -3615,9 +3615,9 @@ "pallet": "SubtensorModule", "call": "start_call", "path": "pallets/subtensor/src/macros/dispatches.rs", - "line": 1539, - "end_line": 1542, - "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L1537-L1542", + "line": 1540, + "end_line": 1543, + "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L1538-L1543", "raw_url": "/code/raw/pallets/subtensor/src/macros/dispatches.rs" } ] @@ -3657,9 +3657,9 @@ "pallet": "SubtensorModule", "call": "swap_coldkey_announced", "path": "pallets/subtensor/src/macros/dispatches.rs", - "line": 2025, - "end_line": 2045, - "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L2023-L2045", + "line": 2026, + "end_line": 2046, + "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L2024-L2046", "raw_url": "/code/raw/pallets/subtensor/src/macros/dispatches.rs" } ] @@ -3785,18 +3785,18 @@ "pallet": "SubtensorModule", "call": "swap_stake", "path": "pallets/subtensor/src/macros/dispatches.rs", - "line": 1343, - "end_line": 1357, - "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L1341-L1357", + "line": 1344, + "end_line": 1358, + "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L1342-L1358", "raw_url": "/code/raw/pallets/subtensor/src/macros/dispatches.rs" }, { "pallet": "SubtensorModule", "call": "swap_stake_limit", "path": "pallets/subtensor/src/macros/dispatches.rs", - "line": 1491, - "end_line": 1509, - "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L1489-L1509", + "line": 1492, + "end_line": 1510, + "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L1490-L1510", "raw_url": "/code/raw/pallets/subtensor/src/macros/dispatches.rs" } ] @@ -3840,9 +3840,9 @@ "pallet": "SubtensorModule", "call": "terminate_lease", "path": "pallets/subtensor/src/macros/dispatches.rs", - "line": 1696, - "end_line": 1702, - "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L1694-L1702", + "line": 1697, + "end_line": 1703, + "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L1695-L1703", "raw_url": "/code/raw/pallets/subtensor/src/macros/dispatches.rs" } ] @@ -4017,18 +4017,18 @@ "pallet": "SubtensorModule", "call": "transfer_stake", "path": "pallets/subtensor/src/macros/dispatches.rs", - "line": 1301, - "end_line": 1317, - "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L1299-L1317", + "line": 1302, + "end_line": 1318, + "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L1300-L1318", "raw_url": "/code/raw/pallets/subtensor/src/macros/dispatches.rs" }, { "pallet": "SubtensorModule", "call": "transfer_stake_and_hotkey", "path": "pallets/subtensor/src/macros/dispatches.rs", - "line": 2385, - "end_line": 2403, - "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L2383-L2403", + "line": 2394, + "end_line": 2412, + "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L2392-L2412", "raw_url": "/code/raw/pallets/subtensor/src/macros/dispatches.rs" } ] @@ -4115,9 +4115,9 @@ "pallet": "SubtensorModule", "call": "unstake_all", "path": "pallets/subtensor/src/macros/dispatches.rs", - "line": 1212, - "end_line": 1214, - "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L1210-L1214", + "line": 1213, + "end_line": 1215, + "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L1211-L1215", "raw_url": "/code/raw/pallets/subtensor/src/macros/dispatches.rs" } ] @@ -4157,9 +4157,9 @@ "pallet": "SubtensorModule", "call": "unstake_all_alpha", "path": "pallets/subtensor/src/macros/dispatches.rs", - "line": 1236, - "end_line": 1238, - "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L1234-L1238", + "line": 1237, + "end_line": 1239, + "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L1235-L1239", "raw_url": "/code/raw/pallets/subtensor/src/macros/dispatches.rs" } ] @@ -4363,9 +4363,9 @@ "pallet": "SubtensorModule", "call": "update_symbol", "path": "pallets/subtensor/src/macros/dispatches.rs", - "line": 1721, - "end_line": 1736, - "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L1719-L1736", + "line": 1722, + "end_line": 1737, + "url": "/code/pallets/subtensor/src/macros/dispatches.rs#L1720-L1737", "raw_url": "/code/raw/pallets/subtensor/src/macros/dispatches.rs" } ] diff --git a/website/apps/bittensor-website/public/catalog/reads.json b/website/apps/bittensor-website/public/catalog/reads.json index 0ea01dbe5f..ef8ee1e2e9 100644 --- a/website/apps/bittensor-website/public/catalog/reads.json +++ b/website/apps/bittensor-website/public/catalog/reads.json @@ -275,9 +275,9 @@ "container": "SubnetInfoRuntimeApi", "name": "get_next_epoch_start_block", "path": "pallets/subtensor/src/coinbase/run_coinbase.rs", - "line": 1183, - "end_line": 1197, - "url": "/code/pallets/subtensor/src/coinbase/run_coinbase.rs#L1183-L1197", + "line": 1196, + "end_line": 1210, + "url": "/code/pallets/subtensor/src/coinbase/run_coinbase.rs#L1196-L1210", "raw_url": "/code/raw/pallets/subtensor/src/coinbase/run_coinbase.rs" } ] @@ -797,9 +797,9 @@ "container": "SubnetInfoRuntimeApi", "name": "get_next_epoch_start_block", "path": "pallets/subtensor/src/coinbase/run_coinbase.rs", - "line": 1183, - "end_line": 1197, - "url": "/code/pallets/subtensor/src/coinbase/run_coinbase.rs#L1183-L1197", + "line": 1196, + "end_line": 1210, + "url": "/code/pallets/subtensor/src/coinbase/run_coinbase.rs#L1196-L1210", "raw_url": "/code/raw/pallets/subtensor/src/coinbase/run_coinbase.rs" } ] @@ -1398,9 +1398,9 @@ "container": "SubnetInfoRuntimeApi", "name": "get_next_epoch_start_block", "path": "pallets/subtensor/src/coinbase/run_coinbase.rs", - "line": 1183, - "end_line": 1197, - "url": "/code/pallets/subtensor/src/coinbase/run_coinbase.rs#L1183-L1197", + "line": 1196, + "end_line": 1210, + "url": "/code/pallets/subtensor/src/coinbase/run_coinbase.rs#L1196-L1210", "raw_url": "/code/raw/pallets/subtensor/src/coinbase/run_coinbase.rs" } ] diff --git a/website/apps/bittensor-website/src/app/(pages-without-footer)/releases/page.tsx b/website/apps/bittensor-website/src/app/(pages-without-footer)/releases/page.tsx index 50b936b8b2..b28a23c90e 100644 --- a/website/apps/bittensor-website/src/app/(pages-without-footer)/releases/page.tsx +++ b/website/apps/bittensor-website/src/app/(pages-without-footer)/releases/page.tsx @@ -22,6 +22,16 @@ type Release = { // Newest first. Add new releases to the top. const releases: Release[] = [ + { + tag: 'v438', + date: 'July 2026', + title: 'Interfaces & Reliability', + summary: + 'Bounded EVM staking views, Ledger-friendly limit-order signatures, exact mechanism ' + + 'emission splits, predictable epoch counters, repaired testnet warp sync, and a more ' + + 'recoverable release train.', + href: '/releases/v438-upgrade', + }, { tag: 'v437', date: 'July 2026', diff --git a/website/apps/bittensor-website/src/app/(pages-without-footer)/releases/v438-upgrade/page.tsx b/website/apps/bittensor-website/src/app/(pages-without-footer)/releases/v438-upgrade/page.tsx new file mode 100644 index 0000000000..00b47c4922 --- /dev/null +++ b/website/apps/bittensor-website/src/app/(pages-without-footer)/releases/v438-upgrade/page.tsx @@ -0,0 +1,392 @@ +import FadeInWrapper from '@/app/components/FadeInWrapper'; +import {Code} from '@/app/components/Code/Code'; +import {Link} from '@raofoundation/ui'; +import type {Metadata} from 'next'; +import {Suspense} from 'react'; +import styles from '../v436-upgrade/page.module.css'; + +export const metadata: Metadata = { + title: 'The V438 Upgrade — Interfaces & Reliability', + description: + 'Bounded EVM staking views, Ledger-friendly limit-order signatures, exact mechanism ' + + 'emission splits, predictable epoch counters, testnet warp-sync repair, and a more ' + + 'recoverable release train.', + alternates: {canonical: '/releases/v438-upgrade'}, +}; + +const DocLink = ({href, children}: {href: string; children: React.ReactNode}) => ( + + {children} + +); + +const GRAPH_TEXT = { + fontFamily: 'FiraCode', + fontSize: 10, + fill: 'rgb(41, 41, 41)', +} as const; + +const INK = 'rgb(41, 41, 41)'; +const MUTED = 'rgba(41, 41, 41, 0.5)'; +const ACCENT = '#d15168'; + +const EvmStakeReadDiagram = () => ( + + + + EVM CONTRACT + + + COLDKEY · NETUID + + + ≤ 64 HOTKEYS + + + + + + STATICCALL + + + + + STAKING PRECOMPILE + + + 0x…0805 + + + + DISTINCT INPUTS + + + BOUNDED READS + + + NON-ZERO OUTPUTS + + + + + + + + STAKEINFO[] + + + HOTKEY + + + ALPHA STAKE + + + GAS-BOUNDED + + + + CALLER CHOOSES THE SEARCH SET · THE RUNTIME NEVER WALKS AN UNBOUNDED HISTORY + + +); + +const SignatureCompatibilityDiagram = () => ( + + + LIMIT ORDER + + + + SCALE BYTES + + + + + + DIRECT + + + + + + + BLAKE2-256 + + + <BYTES>…</BYTES> + + + LEDGER SIGNRAW + + + + + RUNTIME VERIFIER + + + + SR25519 ✓ + + + ED25519 ✓ + + + ECDSA ✕ + + + SAME ORDER ID + + + + + + + + EXECUTABLE + + +); + +const page = () => { + return ( + }> + +
+

The V438 Upgrade

+

+ Interfaces & Reliability · July 2026 +

+
+ +
+

Introduction

+

+ Spec 438 is a focused compatibility and correctness release after{' '} + v437. It gives smart contracts a + bounded way to inspect staking positions, lets Ledger-style signatures authorize limit + orders, closes two small but important gaps in mechanism and epoch accounting, repairs + testnet warp sync, and makes the release pipeline recover cleanly from a partial Python + publication. There is no new token model or migration for ordinary wallets: v438 + tightens the surfaces that applications, operators, and automation already use. +

+
+ +
+

Staking data, directly from EVM

+

+ Contracts can now read a coldkey's non-zero alpha positions on one subnet through + the staking precompile at 0x…0805.{' '} + + getStakeInfoForColdkeyAndNetuid + {' '} + accepts a coldkey, netuid, and up to 64 distinct candidate hotkeys, then returns only + the candidates with stake. The caller supplies the search set deliberately: the + precompile never walks the coldkey's unbounded historical hotkey index, so its work + and gas remain proportional to the request. +

+ + +

+ The contract chooses at most 64 distinct candidate hotkeys. The precompile charges for + the bounded reads and returns only non-zero (hotkey, stake) pairs. +

+

+ The companion getDefaultMinStake() view exposes the runtime's base + staking minimum. It is intentionally a primitive, not a quote: operation fees, subnet + price conversion, and full-unstake rules can still change what a particular transaction + accepts. Both selectors are added to the Solidity interface, JSON ABI, Rust precompile, + and gas-accounting tests, so Solidity and SDK callers share one contract. +

+
+ +
+

Limit orders meet hardware wallets

+

+ A signed limit order can now use either sr25519 or ed25519 and can cover either the raw + SCALE-encoded order or the Ledger-compatible{' '} + <Bytes>blake2_256(order)</Bytes> payload produced by + signRaw. The order ID is unchanged: it remains the blake2-256 hash of the + versioned order, so cancellation, replay protection, partial fills, and relayer + restrictions behave exactly as before. ECDSA remains rejected because its account + recovery model does not map to the 32-byte signer identity used by the pallet. +

+ +

+ Software keys can continue signing the order bytes directly. Ledger and compatible + signers can sign the wrapped order hash; both paths verify against the same signer and + derive the same on-chain order ID. +

+ " + +accepted = sr25519(raw | wrapped) or ed25519(raw | wrapped) +rejected = ecdsa`} + /> +
+ +
+

Mechanism emission splits are exact

+

+ A custom mechanism split must now contain{' '} + one entry for every active mechanism, and the entries must still sum to + 65,535. Previously, a shorter vector passed validation and was padded with zeroes, which + could silently starve trailing mechanisms while rounding residue was assigned to + mechanism zero. Owners that want an even split can continue clearing the custom value; + owners that set one explicitly must describe the full mechanism set. +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ConfigurationBefore v438v438
No custom splitEven distributionEven distribution
Full vector, sum = 65,535AcceptedAccepted
Short vectorZero-paddedRejected
Wrong sumRejectedRejected
+
+ +
+

Epoch observability stays bounded

+

+ + BlocksSinceLastStep + {' '} + is now capped at the subnet's tempo + 1. The scheduler's safety + check uses that same subnet-specific tempo instead of a global maximum. Deferred epochs + can still report the one-block-overdue state that triggers the fallback, but dashboards + and clients no longer see a counter grow indefinitely during inconsistent or delayed + state. The related epoch-status and next-epoch queries use the same model. +

+
+ +
+

Testnet warp sync, repaired

+

+ Testnet nodes now start GRANDPA warp sync from two trusted, genesis-scoped authority + checkpoints. The checkpoints are enabled only when the node sees the testnet genesis + hash; mainnet and development chains retain their existing initial set-ID behavior. This + repairs fast synchronization across historical authority-set changes without weakening + checkpoint selection on any other network. The release also aligns the Polkadot SDK + revision needed to verify those proofs and corrects dependency features that affected + node log decoding. +

+
+ +
+

Release train, recoverable

+

+ The mainnet watcher now tracks GitHub release completion and stable Python publication + independently. A release can exist while a failed or partial PyPI upload is retried on + the next watcher run; a provenance-bound completion marker is written only after every + expected distribution is accepted. That removes the old failure mode where a successful + GitHub release prevented the SDK publication from being retried. +

+

+ Every merge to main also publishes the moving development image{' '} + ghcr.io/raofoundation/subtensor:main. The deployed :latest tag + remains tied to an executed mainnet release, while + :devnet and :testnet continue following their network mirrors. + Developers can therefore test merged code without mistaking it for the version running + on mainnet. The complete promotion sequence is documented in the{' '} + release process. +

+
+ +
+

What to do

+
    +
  • + Node operators: wait for the on-chain spec_version to + move to 438, then update to the matching release. Testnet operators should update + promptly to pick up the warp-sync checkpoints. +
  • +
  • + EVM integrators: refresh stakingV2.abi and use a + bounded, duplicate-free hotkey list when calling the new stake-position view. +
  • +
  • + Limit-order clients: raw sr25519 signatures remain valid. + Ledger-style wrapped sr25519 and ed25519 signatures are now valid; do not emit ECDSA + orders. +
  • +
  • + Subnet owners: when setting a custom mechanism emission split, send + exactly one value per active mechanism and keep the total at 65,535. +
  • +
  • + Indexers: treat BlocksSinceLastStep as a bounded status + counter, not an elapsed-time source beyond tempo + 1. +
  • +
+

+ Signers: after the release train proposes, use{' '} + btcli upgrade sign --url <v438 release URL> -w <wallet>. +

+
+ + + Read the release process + +
+
+ ); +}; + +export default page; diff --git a/website/apps/bittensor-website/src/app/components/Code/Code.tsx b/website/apps/bittensor-website/src/app/components/Code/Code.tsx index fd325a29b7..fe80d790cb 100644 --- a/website/apps/bittensor-website/src/app/components/Code/Code.tsx +++ b/website/apps/bittensor-website/src/app/components/Code/Code.tsx @@ -1,3 +1,5 @@ +'use client'; + import SyntaxHighlighter from 'react-syntax-highlighter'; import syntaxStyles from './syntaxStyles'; import {Icon} from '@raofoundation/ui'; diff --git a/website/apps/bittensor-website/src/app/sitemap.ts b/website/apps/bittensor-website/src/app/sitemap.ts index 8177c50b22..30df6844b7 100644 --- a/website/apps/bittensor-website/src/app/sitemap.ts +++ b/website/apps/bittensor-website/src/app/sitemap.ts @@ -14,15 +14,13 @@ const staticRoutes = [ '/releases', '/releases/v431-upgrade', '/releases/v436-upgrade', + '/releases/v438-upgrade', '/wallet', '/whitepaper', ]; export default function sitemap(): MetadataRoute.Sitemap { - const pages = [ - ...staticRoutes, - ...source.getPages().map((page) => page.url), - ]; + const pages = [...staticRoutes, ...source.getPages().map((page) => page.url)]; return pages.map((path) => ({ url: `${siteUrl}${path === '/' ? '' : path}`,