diff --git a/.eslintignore b/.eslintignore deleted file mode 100644 index 84c048a..0000000 --- a/.eslintignore +++ /dev/null @@ -1 +0,0 @@ -/build/ diff --git a/.eslintrc.json b/.eslintrc.json deleted file mode 100644 index 90c96b7..0000000 --- a/.eslintrc.json +++ /dev/null @@ -1,86 +0,0 @@ -{ - "env": { - "browser": true, - "es6": true - }, - "extends": [ - "standard", - "eslint:recommended", - "plugin:react/recommended" - ], - "globals": { - "Atomics": "readonly", - "SharedArrayBuffer": "readonly" - }, - "parser": "babel-eslint", - "parserOptions": { - "ecmaFeatures": { - "jsx": true - }, - "ecmaVersion": 2018, - "sourceType": "module", - "allowImportExportEverywhere": true - }, - "plugins": [ - "react" - ], - "settings": { - "react": { - "version": "detect" - } - }, - "rules": { - "indent": [ - 2, - 4 - ], - "arrow-parens": [ - 2, - "always" - ], - "semi": [ - 2, - "always" - ], - "comma-dangle": [ - 2, - "always-multiline" - ], - "jsx-quotes": [ - 2 - ], - "dot-notation": [ - 2, - { - "allowPattern": "^[0-9A-Za-z]+(_[0-9A-Za-z]+)+$" - } - ], - "curly": [ - 2, - "all" - ], - "react/jsx-first-prop-new-line": [ - 2, - "multiline-multiprop" - ], - "react/jsx-indent-props": [ - 2, - "first" - ], - "react/sort-prop-types": [ - 2, - { - "callbacksLast": true, - "requiredFirst": true - } - ], - "react/jsx-sort-props": [ - 2, - { - "callbacksLast": true, - "reservedFirst": true, - "shorthandFirst": true - } - ] - } -} diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml deleted file mode 100644 index ca38371..0000000 --- a/.github/workflows/deploy.yml +++ /dev/null @@ -1,19 +0,0 @@ -name: 'publish' - -on: - push: - tags: - - v* - -jobs: - build: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: build - run: | - echo "${{ secrets.GHCR_TOKEN }}" | docker login ghcr.io -u "${{ secrets.GHCR_USER }}" --password-stdin - docker build -f Dockerfile . --tag ghcr.io/cosmoscontracts/website:${GITHUB_REF#refs/tags/} - docker tag ghcr.io/cosmoscontracts/website:${GITHUB_REF#refs/tags/} ghcr.io/cosmoscontracts/website:latest - docker push ghcr.io/cosmoscontracts/website:${GITHUB_REF#refs/tags/} - docker push ghcr.io/cosmoscontracts/website:latest diff --git a/.gitignore b/.gitignore index 9fb70e5..31a23fe 100644 --- a/.gitignore +++ b/.gitignore @@ -1,30 +1,11 @@ -# dependencies -node_modules -www.tar - -.idea -# testing -/coverage - -# production -/build -# Gatbsy production -/public - # misc .DS_Store -.env.local -.env.development.local -.env.test.local -.env.production.local - -npm-debug.log* -yarn-debug.log* -yarn-error.log* - -# Gatsby -.cache - -#yarn -yarn.lock -package-lock.json +node_modules +.env* +*.bak +target* +__pycache__ +testdata +dist +soon +review \ No newline at end of file diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml deleted file mode 100644 index 14aaac2..0000000 --- a/.gitlab-ci.yml +++ /dev/null @@ -1,59 +0,0 @@ -image: node:14.5.0-alpine - -stages: - - test - - deploy - -lint_test: - stage: test - only: - - development - - staging - - master - - merge_requests - script: - - apk add g++ make python - - yarn - - $(pwd)/node_modules/.bin/eslint $(pwd) - cache: - paths: - - node_modules/ - -dev_deploy: - stage: deploy - only: - - development - script: - - apk add openssh-client - - eval $(ssh-agent -s) - - echo "${DEV_SSH_KEY}" | tr -d '\r' | ssh-add - > /dev/null - - mkdir -p ~/.ssh && chmod 700 ~/.ssh - - ssh -o "StrictHostKeyChecking=no" ${DEV_SSH_USER}@${DEV_SSH_SERVER} "mkdir -p /tmp/terpnetwork/website" - - scp -o "StrictHostKeyChecking=no" $(pwd)/scripts/dev_deploy.sh ${DEV_SSH_USER}@${DEV_SSH_SERVER}:/tmp/terpnetwork/website/dev_deploy.sh - - ssh -o "StrictHostKeyChecking=no" ${DEV_SSH_USER}@${DEV_SSH_SERVER} "bash /tmp/terpnetwork/website/dev_deploy.sh" - -staging_deploy: - stage: deploy - only: - - staging - script: - - apk add openssh-client - - eval $(ssh-agent -s) - - echo "${STAGING_SSH_KEY}" | tr -d '\r' | ssh-add - > /dev/null - - mkdir -p ~/.ssh && chmod 700 ~/.ssh - - ssh -o "StrictHostKeyChecking=no" ${STAGING_SSH_USER}@${STAGING_SSH_SERVER} "mkdir -p /tmp/terpnetwork/website" - - scp -o "StrictHostKeyChecking=no" $(pwd)/scripts/staging_deploy.sh ${STAGING_SSH_USER}@${STAGING_SSH_SERVER}:/tmp/terpnetwork/website/staging_deploy.sh - - ssh -o "StrictHostKeyChecking=no" ${STAGING_SSH_USER}@${STAGING_SSH_SERVER} "bash /tmp/terpnetwork/website/staging_deploy.sh" - -prod_deploy: - stage: deploy - only: - - master - script: - - apk add openssh-client - - eval $(ssh-agent -s) - - echo "${PROD_SSH_KEY}" | tr -d '\r' | ssh-add - > /dev/null - - mkdir -p ~/.ssh && chmod 700 ~/.ssh - - ssh -o "StrictHostKeyChecking=no" ${PROD_SSH_USER}@${PROD_SSH_SERVER} "mkdir -p /tmp/terpnetwork/website" - - scp -o "StrictHostKeyChecking=no" $(pwd)/scripts/prod_deploy.sh ${PROD_SSH_USER}@${PROD_SSH_SERVER}:/tmp/terpnetwork/website/prod_deploy.sh - - ssh -o "StrictHostKeyChecking=no" ${PROD_SSH_USER}@${PROD_SSH_SERVER} "bash /tmp/terpnetwork/website/prod_deploy.sh" diff --git a/Dockerfile b/Dockerfile deleted file mode 100644 index b56d6c9..0000000 --- a/Dockerfile +++ /dev/null @@ -1,22 +0,0 @@ -# Use official NGINX image as base -FROM nginx:alpine - -# Set working directory -WORKDIR /usr/share/nginx/html - -# Copy website files -COPY index.html /usr/share/nginx/html/ -COPY robots.txt /usr/share/nginx/html/ -COPY public /usr/share/nginx/html/public - -# Copy installer scripts -COPY install /usr/share/nginx/html/install - -# Copy nginx configuration -COPY nginx.conf /etc/nginx/nginx.conf - -# Expose port 80 -EXPOSE 80 - -# Start nginx -CMD ["nginx", "-g", "daemon off;"] diff --git a/Justfile b/Justfile new file mode 100644 index 0000000..a8250e1 --- /dev/null +++ b/Justfile @@ -0,0 +1,172 @@ +# terp.network website — development & operations +# usage: just or just --list + +set dotenv-load := false +set shell := ["bash", "-euo", "pipefail", "-c"] + +# project paths +website_dir := justfile_directory() +test_dir := website_dir / "tests" +lib_dir := website_dir / "lib" +config := website_dir / "public" / "config.json" + +# ─── Development ──────────────────────────────────────────────── + +# start the dev server on :3000 +serve: + python3 scripts/py/serve.py + +# start dev server on a custom port +serve-on port="3000": + WEBSITE_PORT={{port}} python3 scripts/py/serve.py + +# ─── Config & Checksums ──────────────────────────────────────── + +# compute SHA-256 checksums for installers and bundles into config.json +build-config: + ./scripts/sh/build-config.sh + +# verify file checksums match config.json +verify-config: + ./scripts/sh/build-config.sh --verify + +# ─── Bundles ──────────────────────────────────────────────────── + +# rebuild & sync all contract TS bundles into lib/ +sync-bundles: + ./scripts/sync-bundles.sh + +# copy existing bundle builds without re-running codegen +sync-bundles-copy: + ./scripts/sync-bundles.sh --copy-only + +# show what bundles would be synced (dry run) +sync-bundles-list: + ./scripts/sync-bundles.sh --list + +# ─── Testing (Rust — recommended) ──────────────────────────────── + +scripts_dir := website_dir / "scripts" + +# spawn local chain + deploy all suites via Rust, keep alive for testing +test-rs: + cd {{scripts_dir}} && RUST_LOG=info cargo run -- deploy --network local --keep-alive + +# spawn dual chain + Hermes IBC relayer, deploy on chain A, keep alive +test-rs-ibc: + cd {{scripts_dir}} && RUST_LOG=info cargo run -- deploy --network local --ibc --keep-alive + +# deploy to already-running chain (skip ict-rs spawn) +test-rs-attach: + cd {{scripts_dir}} && RUST_LOG=info cargo run -- deploy --network local --skip-spawn + +# full multi-collection deploy +test-rs-full: + cd {{scripts_dir}} && RUST_LOG=info cargo run -- deploy --network local --full --keep-alive + +# show deployed contract addresses from state.json +status: + cd {{scripts_dir}} && cargo run -- status + +# stop all ict-rs containers +stop: + cd {{scripts_dir}} && cargo run -- stop + +# check/build all WASM modules needed by the website (norick, oline, passkey) +wasm-build: + cd {{scripts_dir}} && cargo run -- wasm-build + +# show which WASM modules are present/missing in pkg/ +wasm-status: + cd {{scripts_dir}} && cargo run -- wasm-status + +# cargo check the scripts crate +check-scripts: + cd {{scripts_dir}} && cargo check + +# start e2e with local IBC (two terp chains + relayer) +test-local-ibc: + ENABLE_IBC=true ./tests/local-test-env.sh + +# ─── Production ───────────────────────────────────────────────── + +# inject mainnet contract addresses into config.json +configure-prod: + ./tests/configure_prod.sh + +# full static build → dist/ +build: + mkdir -p dist + node build.js + +# ─── Validation ───────────────────────────────────────────────── + +# check all HTML files exist and are non-empty +check-html: + #!/usr/bin/env bash + ok=0; fail=0 + for f in index.html mint.html tabs.html passkey.html tx.html admin.html ibc.html oline.html shell.html; do + if [ -s "{{website_dir}}/pages/$f" ]; then + echo " ok $f ($(wc -c < "{{website_dir}}/pages/$f" | tr -d ' ') bytes)" + ok=$((ok + 1)) + else + echo " MISSING $f" + fail=$((fail + 1)) + fi + done + echo "" + echo "$ok ok, $fail missing" + [ "$fail" -eq 0 ] + +# check all expected lib bundles are present +check-bundles: + #!/usr/bin/env bash + ok=0; fail=0 + for f in account-minter cw721-svg cw-svg-minter terp721-account \ + cw-infuser cw-infuser-factory cw-shitstrap cw-shitstrap-factory \ + whitelist-merkletree; do + if [ -s "{{lib_dir}}/${f}.js" ]; then + echo " ok ${f}.js" + ok=$((ok + 1)) + else + echo " MISSING ${f}.js" + fail=$((fail + 1)) + fi + done + echo "" + echo "$ok ok, $fail missing" + [ "$fail" -eq 0 ] + +# validate HTML syntax (requires tidy) +lint-html: + #!/usr/bin/env bash + if ! command -v tidy &>/dev/null; then + echo "install html-tidy: brew install tidy-html5" + exit 1 + fi + for f in index.html mint.html tabs.html passkey.html tx.html admin.html ibc.html oline.html shell.html; do + echo "── $f ──" + tidy -q -e "{{website_dir}}/pages/$f" 2>&1 || true + done + +# run all checks +check: check-html check-bundles verify-config + +# ─── Utilities ────────────────────────────────────────────────── + +# remove build artifacts and editor temp files +clean: + find {{website_dir}} -name '.DS_Store' -delete + find {{website_dir}} -name '*.bak' -delete + +# show project file tree (2 levels deep) +tree: + find {{website_dir}} -maxdepth 2 -not -path '*/\.git/*' -not -name '.DS_Store' | sort | head -60 + +# show current git status +git-status: + git status -sb + +# show lines of HTML per page +loc: + wc -l pages/index.html pages/mint.html pages/tabs.html pages/passkey.html pages/tx.html pages/admin.html pages/ibc.html pages/oline.html pages/shell.html lib/config-loader.js lib/tx-builder.js lib/auth.js lib/ibc-client.js lib/self-relay.js lib/query-cache.js diff --git a/README.md b/README.md index 326e207..3edc98d 100644 --- a/README.md +++ b/README.md @@ -17,10 +17,46 @@ python3 -m http.server 8000 ## Installation Scripts -The website serves two installation methods: +### Quick Install (Interactive) -1. **Shell Script** (macOS & Linux): `curl -sL https://terp.network/install | python3` -2. **UV Tool**: `uvx --from terp-core terpd` +**One-line install:** + +```bash +curl -fsSL https://terp.network/get | bash +``` + +The installer will automatically: + +1. Check/install Python 3.6+ +2. Guide you through selecting installation type (node/client/localterp) +3. Help you choose network (mainnet/testnet) +4. Configure your node settings +5. Optionally install cosmovisor and systemd service + +### Command-Line Options + +You can also use flags to skip certain prompts: + +```bash +curl -fsSL https://terp.network/get | bash -s -- --install node --network morocco-1 --moniker "my-node" +``` + +**Available flags:** + +- `--install ` - Installation type +- `--network ` - Network to join +- `--home ` - Installation directory (default: ~/.terp) +- `--moniker ` - Node moniker (default: terp) +- `--pruning ` - Pruning settings +- `--cosmovisor` - Install with cosmovisor +- `--service` - Setup systemd service (Linux only) +- `--overwrite` - Overwrite existing installation + +### Alternative: UV Tool + +```bash +uvx --from terp-core terpd +``` ### Verifying Installation Script Integrity @@ -45,21 +81,21 @@ a233f0863b439273e772b14d61b985c8a20e719c72506399adebff03551596c7 terp-installer **Using SHA256:** ```bash -# Download the script -curl -sL https://terp.network/install > terp-installer.py +# Download the shell script +curl -sL https://terp.network/get > terp-installer.sh # Verify with sha256sum (Linux) -echo "0e2743c117a3be8e5648427e0e1d8863b7ac59e1e1cff428152eda99cf9dc970 terp-installer.py" | sha256sum -c +echo "a233f0863b439273e772b14d61b985c8a20e719c72506399adebff03551596c7 terp-installer.sh" | sha256sum -c # Verify with shasum (macOS) -echo "0e2743c117a3be8e5648427e0e1d8863b7ac59e1e1cff428152eda99cf9dc970 terp-installer.py" | shasum -a 256 -c +echo "a233f0863b439273e772b14d61b985c8a20e719c72506399adebff03551596c7 terp-installer.sh" | shasum -a 256 -c ``` **Using BLAKE3:** ```bash -# Download the script -curl -sL https://terp.network/install > terp-installer.py +# Download the shell script +curl -sL https://terp.network/get > terp-installer.sh # Install b3sum if not already installed # macOS: brew install b3sum @@ -67,13 +103,13 @@ curl -sL https://terp.network/install > terp-installer.py # or download from: https://github.com/BLAKE3-team/BLAKE3 # Verify with b3sum -echo "3113805970499a614c8dda2b8d2730bade6f0b0a3d5a8fa99bac4e9856396cee terp-installer.py" | b3sum --check +echo "8c1826931f3c9c620dddabe6756881a2a51aa977c24b60842eca697dfd40ebb7 terp-installer.sh" | b3sum --check ``` **Expected output on successful verification:** ``` -terp-installer.py: OK +terp-installer.sh: OK ``` ⚠️ **Security Note:** Always verify checksums from multiple trusted sources (GitHub releases, official documentation, etc.) to ensure the checksums themselves haven't been tampered with. @@ -82,26 +118,42 @@ terp-installer.py: OK ### Using Docker -Build and run the Docker container: +Build and run the Docker container from repo root: ```bash -docker-compose up --build +docker-compose -f docker/docker-compose.yml up --build +``` + +Or from the docker directory: + +```bash +cd docker && docker-compose up --build ``` The website will be available at `http://localhost:8080` ### Manual Build -Build the Docker image manually: +Build the Docker image manually for single architecture: + +```bash +docker build -f docker/Dockerfile -t terpnetwork/terp-website:latest . +``` + +Build for multiple architectures (amd64 and arm64): ```bash -docker build -t terpnetwork/terp-network:latest . +# Create a builder instance (first time only) +docker buildx create --name multiarch --use + +# Build and push multi-architecture image +docker buildx build -f docker/Dockerfile --platform linux/amd64,linux/arm64 -t terpnetwork/terp-website:v2.0.4 --push . ``` Run the container: ```bash -docker run -p 8080:80 terpnetwork/terp-network:latest +docker run -p 8080:80 terpnetwork/terp-website:latest ``` ## Project Structure @@ -109,38 +161,59 @@ docker run -p 8080:80 terpnetwork/terp-network:latest ``` terp.network/ ├── index.html # Main website file -├── Dockerfile # Docker configuration -├── docker-compose.yml # Docker Compose configuration -├── nginx.conf # NGINX server configuration ├── robots.txt # SEO robots file +├── README.md # This file ├── public/ # Public assets │ ├── favicon/ # Favicon files │ ├── sitemap.xml # SEO sitemap │ └── site.webmanifest # PWA manifest -└── install/ # Installation scripts - ├── terp-installer.py # Python installer script - └── terp-installer.sh # Shell installer script +├── get/ # Installation scripts +│ ├── terp-installer.py # Python installer script +│ └── terp-installer.sh # Shell installer script +└── docker/ # Docker deployment files + ├── Dockerfile # Docker image configuration + ├── docker-compose.yml # Docker Compose setup + ├── nginx.conf # NGINX server configuration + ├── entrypoint.sh # Container entrypoint script + └── deploy.yaml # Akash deployment manifest ``` ## Deployment ### Docker Registry -Push to Docker registry: +Push single architecture to Docker registry: ```bash -docker-compose build -docker push terpnetwork/terp-network:latest +docker-compose -f docker/docker-compose.yml build +docker push terpnetwork/terp-website:latest +``` + +Push multi-architecture image to Docker registry: + +```bash +# Build and push for both amd64 and arm64 +docker buildx build -f docker/Dockerfile \ + --platform linux/amd64,linux/arm64 \ + -t terpnetwork/terp-website:latest \ + --push . ``` ### Akash Network -Deploy to Akash using the provided SDL (see terp-installer repo for SDL examples). +Deploy to Akash using the provided SDL: + +```bash +akash tx deployment create docker/deploy.yaml --from +``` + +See `docker/deploy.yaml` for the deployment manifest. ## Installation Script Endpoints -- `/run` - Shell installation script -- `/install` - Python installation script +- `/get` - Shell wrapper script (downloads and runs Python installer) +- `/run` - Python installer script (main installation logic) +- `/get/` - Directory access for individual files and checksum verification ## Development diff --git a/build.js b/build.js new file mode 100644 index 0000000..d0f7750 --- /dev/null +++ b/build.js @@ -0,0 +1,63 @@ +import { createRequire } from 'module'; +import fs from 'fs'; +import path from 'path'; + +const require = createRequire(import.meta.url); +const { minify } = require('html-minifier-terser'); + +async function build() { + const outdir = 'dist'; + await fs.mkdirSync(outdir, { recursive: true }); + + // Minify HTML — all live pages + const htmlFiles = fs.readdirSync('pages') + .filter(f => f.endsWith('.html')) + .map(f => path.join('pages', f)); + + for (const file of htmlFiles) { + const content = await fs.readFileSync(file, 'utf8'); + const minified = await minify(content, { collapseWhitespace: true }); + + // Write the minified content to the output directory + const outputPath = path.join(outdir, file); + await fs.mkdirSync(path.dirname(outputPath), { recursive: true }); + await fs.writeFileSync(outputPath, minified, 'utf8'); + } + + // Copy lib/ JS modules. + const libOut = path.join(outdir, 'lib'); + fs.mkdirSync(libOut, { recursive: true }); + for (const file of fs.readdirSync('lib')) { + if (file.endsWith('.js')) { + fs.copyFileSync(path.join('lib', file), path.join(libOut, file)); + } + } + + // // Copy get/ . + const getOut = path.join(outdir, 'get'); + fs.mkdirSync(getOut, { recursive: true }); + for (const file of fs.readdirSync('get')) { + fs.copyFileSync(path.join('get', file), path.join(getOut, file)); + } + + // // Copy pkg/ WASM (if built). + // if (fs.existsSync('pkg') && (fs.existsSync('pkg/passkey_wasm.js') || fs.existsSync('pkg/oline_wasm.js'))) { + // const pkgOut = path.join(outdir, 'pkg'); + // fs.mkdirSync(pkgOut, { recursive: true }); + // for (const file of fs.readdirSync('pkg')) { + // if (file.endsWith('.js') || file.endsWith('.wasm') || file.endsWith('.d.ts')) { + // fs.copyFileSync(path.join('pkg', file), path.join(pkgOut, file)); + // } + // } + // console.log('Copied WASM pkg/ to dist/pkg/'); + // } else { + // console.warn('No pkg/ — run: npm run wasm-build'); + // } + + // Copy public/. + fs.cpSync('public', path.join(outdir, 'public'), { recursive: true, force: true }); + + console.log('Build complete'); +} + +build(); diff --git a/deploy.yaml b/deploy.yaml deleted file mode 100644 index fe99070..0000000 --- a/deploy.yaml +++ /dev/null @@ -1,44 +0,0 @@ ---- -version: "2.0" - -services: - web: - # Use specific nginx:alpine version tag (never use :latest) - image: nginx:1.25.3-alpine - expose: - - port: 80 - as: 80 - to: - - global: true - accept: - - permissionless.money - -profiles: - compute: - web: - resources: - cpu: - units: 0.5 - memory: - size: 512Mi - storage: - size: 1Gi - - placement: - akash: - attributes: - host: akash - signedBy: - anyOf: - - "akash1365yvmc4s7awdyj3n2sav7xfx76adc6dnmlx63" - - "akash18qa2a2ltfyvkyj0ggj3hkvuj6twzyumuaru9s4" - pricing: - web: - denom: uakt - amount: 1000 - -deployment: - web: - akash: - profile: web - count: 1 diff --git a/docker-compose.yml b/docker-compose.yml deleted file mode 100644 index 5b72183..0000000 --- a/docker-compose.yml +++ /dev/null @@ -1,12 +0,0 @@ -version: '3.8' - -services: - terp-network: - build: - context: . - dockerfile: Dockerfile - image: terpnetwork/terp-network:latest - container_name: terp-network - ports: - - "8080:80" - restart: unless-stopped diff --git a/install/terp-installer.py b/get/terp-installer.py similarity index 85% rename from install/terp-installer.py rename to get/terp-installer.py index 1400091..196d036 100644 --- a/install/terp-installer.py +++ b/get/terp-installer.py @@ -11,15 +11,59 @@ import tempfile from enum import Enum +# ============================================================================ +# CONFIGURATION CONSTANTS - Update these for new releases or endpoints +# ============================================================================ + +# Default Settings DEFAUT_TERP_HOME = os.path.expanduser("~/.terp") DEFAULT_MONIKER = "terp" +# Network Choices NETWORK_CHOICES = ['morocco-1', '90u-4'] INSTALL_CHOICES = ['node', 'client', 'localterp'] PRUNING_CHOICES = ['default', 'nothing', 'everything'] -MAINNET_VERSION = "4.2.2" -TESTNET_VERSION = "4.2.2" +# Binary Versions +MAINNET_VERSION = "5.0.2" +TESTNET_VERSION = "5.0.2" + +# GitHub Repository +GITHUBURL = "https://github.com/terpnetwork/terp-core" +GITHUB_RELEASES_URL = f"{GITHUBURL}/releases/download" +NETWORKSURL = "https://raw.githubusercontent.com/terpnetwork/networks/refs/heads/main" + +# Binary Download URLs +MAINNET_BINARY_BASE_URL = f"{GITHUB_RELEASES_URL}/v{MAINNET_VERSION}" +TESTNET_BINARY_BASE_URL = f"{GITHUB_RELEASES_URL}/v{TESTNET_VERSION}" + +# Genesis Files +MAINNET_GENESIS_URL = f"{NETWORKSURL}/mainnet/morocco-1/genesis.json" +TESTNET_GENESIS_URL = f"{NETWORKSURL}/testnet/90u-4/genesis.json" + +# RPC Endpoints +MAINNET_RPC_ENDPOINT = "https://rpc.terp.network:443" +TESTNET_RPC_ENDPOINT = "https://rpc-testnet.terp.network:443" + +# Peer Nodes +MAINNET_PEERS = [] # Uses addrbook instead +TESTNET_PEERS = ["9e194721d68dd28d3c4b625c17b2cb287ef30327@peer-testnet.terp.network:26656"] + +# Addrbook URLs +MAINNET_ADDRBOOK_URL = "https://snapshot-mainnet.terp.network/addrbook.json" +TESTNET_ADDRBOOK_URL = "https://snapshot-testnet.terp.network/addrbook.json" + +# Snapshot URLs +MAINNET_SNAPSHOT_URL = "https://snapshot-mainnet.terp.network/terp_latest.tar.lz4" +TESTNET_SNAPSHOT_URL = "https://snapshot-testnet.terp.network/latest" + +# Cosmovisor URLs +COSMOVISOR_VERSION = "v1.2.0" +COSMOVISOR_BASE_URL = "https://snapshot-mainnet.terp.network/binaries/cosmovisor" + +# ============================================================================ +# END CONFIGURATION CONSTANTS +# ============================================================================ # CLI arguments parser = argparse.ArgumentParser(description="Terp Network Installer") @@ -133,57 +177,64 @@ def __init__(self, chain_id, version, genesis_url, binary_url, peers, rpc_node, TESTNET = Network( chain_id = "90u-4", - version = f"v${TESTNET_VERSION}", - genesis_url = "https://raw.githubusercontent.com/terpnetwork/networks/refs/heads/main/testnet/90u-4/genesis.json", + version = f"v{TESTNET_VERSION}", + genesis_url = TESTNET_GENESIS_URL, binary_url = { "linux": { - "amd64": f"https://github.com/terpnetwork/terp-core/releases/download/v{TESTNET_VERSION}/terpd-linux-amd64", - "arm64": f"https://github.com/terpnetwork/terp-core/releases/download/v{TESTNET_VERSION}/terpd-linux-arm64" + "amd64": f"{TESTNET_BINARY_BASE_URL}/terpd-linux-amd64", + "arm64": f"{TESTNET_BINARY_BASE_URL}/terpd-linux-arm64" }, "darwin": { - "amd64": f"https://github.com/terpnetwork/terp-core/releases/download/v{TESTNET_VERSION}/terpd-linux-amd64", - "arm64": f"https://github.com/terpnetwork/terp-core/releases/download/v{TESTNET_VERSION}/terpd-linux-arm64" + "amd64": f"{TESTNET_BINARY_BASE_URL}/terpd-linux-amd64", + "arm64": f"{TESTNET_BINARY_BASE_URL}/terpd-linux-arm64" }, }, - peers = [ - "9e194721d68dd28d3c4b625c17b2cb287ef30327@testnet-peer.terp.network:26656", - # "51d48be3809bb8907c1ef5f747e53cdd0c9ded1b@terp-testnet-peer.itrocket.net:443", - ], - rpc_node = "https://testnet-rpc.terp.network:443", - addrbook_url = "https://testnet-rpc.terp.network/addrbook", - snapshot_url = "https://snapshots.testnet.terp.network/latest" ## TODO: setup snapshot service + peers = TESTNET_PEERS, + rpc_node = TESTNET_RPC_ENDPOINT, + addrbook_url = TESTNET_ADDRBOOK_URL, + snapshot_url = TESTNET_SNAPSHOT_URL ) MAINNET = Network( chain_id = "morocco-1", version = f"v{MAINNET_VERSION}", - genesis_url = "https://raw.githubusercontent.com/terpnetwork/networks/refs/heads/main/mainnet/morocco-1/genesis.json", + genesis_url = MAINNET_GENESIS_URL, binary_url = { "linux": { - "amd64": f"https://github.com/terpnetwork/terp-core/releases/download/v{MAINNET_VERSION}/terpd-linux-amd64", - "arm64": f"https://github.com/terpnetwork/terp-core/releases/download/v{MAINNET_VERSION}/terpd-linux-arm64" + "amd64": f"{MAINNET_BINARY_BASE_URL}/terpd-linux-amd64", + "arm64": f"{MAINNET_BINARY_BASE_URL}/terpd-linux-arm64" }, "darwin": { - "amd64": f"https://github.com/terpnetwork/terp-core/releases/download/v{MAINNET_VERSION}/terpd-linux-amd64", - "arm64": f"https://github.com/terpnetwork/terp-core/releases/download/v{MAINNET_VERSION}/terpd-linux-arm64" + "amd64": f"{MAINNET_BINARY_BASE_URL}/terpd-linux-amd64", + "arm64": f"{MAINNET_BINARY_BASE_URL}/terpd-linux-arm64" }, }, - peers = None, - rpc_node = "https://rpc-terp.zenchainlabs.io:443", - addrbook_url = "https://server-3.itrocket.net/mainnet/terp/addrbook.json", - snapshot_url = "https://snapshots.nodejumper.io/terp/terp_latest.tar.lz4" + peers = MAINNET_PEERS if MAINNET_PEERS else None, + rpc_node = MAINNET_RPC_ENDPOINT, + addrbook_url = MAINNET_ADDRBOOK_URL, + snapshot_url = MAINNET_SNAPSHOT_URL ) COSMOVISOR_URL = { - # "darwin": { - # "amd64": "https://osmosis.fra1.digitaloceanspaces.com/binaries/cosmovisor/cosmovisor-v1.2.0-darwin-amd64", - # "arm64": "https://osmosis.fra1.digitaloceanspaces.com/binaries/cosmovisor/cosmovisor-v1.2.0-darwin-arm64" - # }, + "darwin": { + "amd64": "https://osmosis.fra1.digitaloceanspaces.com/binaries/cosmovisor/cosmovisor-v1.2.0-darwin-amd64", + "arm64": "https://osmosis.fra1.digitaloceanspaces.com/binaries/cosmovisor/cosmovisor-v1.2.0-darwin-arm64" + }, "linux": { "amd64": "https://osmosis.fra1.digitaloceanspaces.com/binaries/cosmovisor/cosmovisor-v1.2.0-linux-amd64", "arm64": "https://osmosis.fra1.digitaloceanspaces.com/binaries/cosmovisor/cosmovisor-v1.2.0-linux-arm64" } } +# COSMOVISOR_URL = { +# # "darwin": { +# # "amd64": f"{COSMOVISOR_BASE_URL}/cosmovisor-{COSMOVISOR_VERSION}-darwin-amd64", +# # "arm64": f"{COSMOVISOR_BASE_URL}/cosmovisor-{COSMOVISOR_VERSION}-darwin-arm64" +# # }, +# "linux": { +# "amd64": f"{COSMOVISOR_BASE_URL}/cosmovisor-{COSMOVISOR_VERSION}-linux-amd64", +# "arm64": f"{COSMOVISOR_BASE_URL}/cosmovisor-{COSMOVISOR_VERSION}-linux-arm64" +# } +# } # Terminal utils class bcolors: @@ -195,6 +246,33 @@ class bcolors: def clear_screen(): os.system('clear') +def safe_input(prompt): + """ + Wrapper around input() that handles EOFError and KeyboardInterrupt gracefully. + + Args: + prompt (str): The prompt to display to the user. + + Returns: + str: The user's input, or exits the program if EOF or Ctrl+C is encountered. + """ + try: + return input(prompt) + except EOFError: + print(bcolors.RED + "\n\nError: No input available (EOF detected)." + bcolors.ENDC) + print("This script requires interactive input. Please run it in an interactive terminal.") + print("If you want to run this non-interactively, use the command-line flags:") + print(" --install ") + print(" --network ") + print(" --home ") + print(" --moniker ") + print("\nFor full options, run: python3 terp-installer.py --help") + sys.exit(1) + except KeyboardInterrupt: + print(bcolors.OKGREEN + "\n\nInstallation cancelled by user." + bcolors.ENDC) + print("Exiting...") + sys.exit(0) + # Messages def welcome_message(): @@ -282,7 +360,7 @@ def select_install(): """ + bcolors.ENDC) while True: - choice = input("Enter your choice, or 'exit' to quit: ").strip() + choice = safe_input("Enter your choice, or 'exit' to quit: ").strip() if choice.lower() == "exit": print("Exiting the program...") @@ -334,7 +412,7 @@ def select_network(): """ + bcolors.ENDC) while True: - choice = input("Enter your choice, or 'exit' to quit: ").strip() + choice = safe_input("Enter your choice, or 'exit' to quit: ").strip() if choice.lower() == "exit": print("Exiting the program...") @@ -375,7 +453,7 @@ def select_terp_home(): """ + bcolors.ENDC) while True: - choice = input("Enter your choice, or 'exit' to quit: ").strip() + choice = safe_input("Enter your choice, or 'exit' to quit: ").strip() if choice.lower() == "exit": print("Exiting the program...") @@ -387,7 +465,7 @@ def select_terp_home(): elif choice == Answer.NO: while True: - custom_home = input("Enter the path for Terp-Core home: ").strip() + custom_home = safe_input("Enter the path for Terp-Core home: ").strip() if custom_home != "": terp_home = custom_home break @@ -422,7 +500,7 @@ def select_moniker(): """ + bcolors.ENDC) while True: - choice = input("Enter your choice, or 'exit' to quit: ").strip() + choice = safe_input("Enter your choice, or 'exit' to quit: ").strip() if choice.lower() == "exit": print("Exiting the program...") @@ -433,7 +511,7 @@ def select_moniker(): break elif choice == Answer.NO: while True: - custom_moniker = input("Enter the custom moniker: ") + custom_moniker = safe_input("Enter the custom moniker: ") if custom_moniker.strip() != "": moniker = custom_moniker break @@ -474,7 +552,7 @@ def initialize_terp_home(terp_home, moniker): 💡 You can overwrite the terp network home using --overwrite flag. """ + bcolors.ENDC) - choice = input("Enter your choice, or 'exit' to quit: ").strip() + choice = safe_input("Enter your choice, or 'exit' to quit: ").strip() if choice.lower() == "exit": print("Exiting the program...") @@ -541,7 +619,7 @@ def select_pruning(terp_home): """ + bcolors.ENDC) while True: - choice = input("Enter your choice, or 'exit' to quit: ").strip() + choice = safe_input("Enter your choice, or 'exit' to quit: ").strip() if choice.lower() == "exit": print("Exiting the program...") @@ -645,15 +723,20 @@ def download_binary(network): Raises: SystemExit: If the binary download URL is not available for the current operating system and architecture. """ - binary_path = os.path.join(args.binary_path, "terpd") + binary_path = os.path.expanduser(os.path.join(args.binary_path, "terpd")) if not args.overwrite: - # Check if terpd is already installed + # Check if terpd is already installed by sourcing ~/.profile first try: - subprocess.run([binary_path, "version"], check=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE) + subprocess.run( + ["sh", "-c", "source ~/.profile && terpd version"], + check=True, + stdout=subprocess.PIPE, + stderr=subprocess.PIPE + ) print("terpd is already installed at " + bcolors.OKGREEN + f"{binary_path}" + bcolors.ENDC) while True: - choice = input("Do you want to skip the download or overwrite the binary? (skip/overwrite): ").strip().lower() + choice = safe_input("Do you want to skip the download or overwrite the binary? (skip/overwrite): ").strip().lower() if choice == "skip": print("Skipping download.") return @@ -662,7 +745,7 @@ def download_binary(network): break else: print("Invalid input. Please enter 'skip' or 'overwrite'.") - except FileNotFoundError: + except (subprocess.CalledProcessError, FileNotFoundError): print("terpd is not installed. Proceeding with download.") operating_system = platform.system().lower() @@ -809,7 +892,7 @@ def install_snapshot_prerequisites(): 2) No, continue without installing lz4 """ + bcolors.ENDC) - choice = input("Enter your choice, or 'exit' to quit: ").strip() + choice = safe_input("Enter your choice, or 'exit' to quit: ").strip() if choice.lower() == "exit": print("Exiting the program...") @@ -943,7 +1026,7 @@ def print_snapshot_download_info(snapshot_info): while True: print_snapshot_download_info(snapshots) - choice = input("Enter your choice, or 'exit' to quit: ").strip() + choice = safe_input("Enter your choice, or 'exit' to quit: ").strip() if choice.lower() == "exit": print("Exiting the program...") @@ -993,7 +1076,7 @@ def download_cosmovisor(terp_home): """ + bcolors.ENDC) while True: - choice = input("Enter your choice, or 'exit' to quit: ").strip() + choice = safe_input("Enter your choice, or 'exit' to quit: ").strip() if choice.lower() == "exit": print("Exiting the program...") @@ -1028,7 +1111,7 @@ def download_cosmovisor(terp_home): sys.exit(0) try: - binary_path = os.path.join(args.binary_path, "cosmovisor") + binary_path = os.path.expanduser(os.path.join(args.binary_path, "cosmovisor")) print("Downloading " + bcolors.PURPLE+ "cosmovisor" + bcolors.ENDC, end="\n\n") print("from " + bcolors.OKGREEN + f"{binary_url}" + bcolors.ENDC, end=" ") @@ -1101,7 +1184,7 @@ def setup_cosmovisor_service(terp_home): """ + bcolors.ENDC) while True: - choice = input("Enter your choice, or 'exit' to quit: ").strip() + choice = safe_input("Enter your choice, or 'exit' to quit: ").strip() if choice.lower() == "exit": print("Exiting the program...") @@ -1170,7 +1253,7 @@ def setup_terpd_service(terp_home): """ + bcolors.ENDC) while True: - choice = input("Enter your choice, or 'exit' to quit: ").strip() + choice = safe_input("Enter your choice, or 'exit' to quit: ").strip() if choice.lower() == "exit": print("Exiting the program...") diff --git a/get/terp-installer.sh b/get/terp-installer.sh new file mode 100755 index 0000000..14f7064 --- /dev/null +++ b/get/terp-installer.sh @@ -0,0 +1,7 @@ +#!/bin/sh + +# Download and run terp.network python installer +curl -sL https://terp.network/run > i.py && python3 i.py < /dev/tty + +# After completion, source the profile +source ~/.profile \ No newline at end of file diff --git a/install/terp-installer.sh b/install/terp-installer.sh deleted file mode 100644 index 4ae1775..0000000 --- a/install/terp-installer.sh +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/sh - -# run get.terp.network python script -curl -sL https://get.terp.network/install > i.py && python3 i.py - -# after completion, source the profile -source ~/.profile diff --git a/lib/account-minter.js b/lib/account-minter.js new file mode 100644 index 0000000..e6f8323 --- /dev/null +++ b/lib/account-minter.js @@ -0,0 +1,2 @@ +var xr=Object.create;var Xe=Object.defineProperty;var Tr=Object.getOwnPropertyDescriptor;var Fr=Object.getOwnPropertyNames;var Ur=Object.getPrototypeOf,Mr=Object.prototype.hasOwnProperty;var Dr=(e,t,n)=>t in e?Xe(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var C=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var Hr=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of Fr(t))!Mr.call(e,i)&&i!==n&&Xe(e,i,{get:()=>t[i],enumerable:!(r=Tr(t,i))||r.enumerable});return e};var Ct=(e,t,n)=>(n=e!=null?xr(Ur(e)):{},Hr(t||!e||!e.__esModule?Xe(n,"default",{value:e,enumerable:!0}):n,e));var h=(e,t,n)=>Dr(e,typeof t!="symbol"?t+"":t,n);var ve=C((xi,Bt)=>{Bt.exports=O;var q=null;try{q=new WebAssembly.Instance(new WebAssembly.Module(new Uint8Array([0,97,115,109,1,0,0,0,1,13,2,96,0,1,127,96,4,127,127,127,127,1,127,3,7,6,0,1,1,1,1,1,6,6,1,127,1,65,0,11,7,50,6,3,109,117,108,0,1,5,100,105,118,95,115,0,2,5,100,105,118,95,117,0,3,5,114,101,109,95,115,0,4,5,114,101,109,95,117,0,5,8,103,101,116,95,104,105,103,104,0,0,10,191,1,6,4,0,35,0,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,126,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,127,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,128,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,129,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,130,34,4,66,32,135,167,36,0,32,4,167,11])),{}).exports}catch{}function O(e,t,n){this.low=e|0,this.high=t|0,this.unsigned=!!n}O.prototype.__isLong__;Object.defineProperty(O.prototype,"__isLong__",{value:!0});function M(e){return(e&&e.__isLong__)===!0}O.isLong=M;var Et={},bt={};function ue(e,t){var n,r,i;return t?(e>>>=0,(i=0<=e&&e<256)&&(r=bt[e],r)?r:(n=w(e,(e|0)<0?-1:0,!0),i&&(bt[e]=n),n)):(e|=0,(i=-128<=e&&e<128)&&(r=Et[e],r)?r:(n=w(e,e<0?-1:0,!1),i&&(Et[e]=n),n))}O.fromInt=ue;function L(e,t){if(isNaN(e))return t?de:Y;if(t){if(e<0)return de;if(e>=vt)return It}else{if(e<=-wt)return U;if(e+1>=wt)return Pt}return e<0?L(-e,t).neg():w(e%pe|0,e/pe|0,t)}O.fromNumber=L;function w(e,t,n){return new O(e,t,n)}O.fromBits=w;var Fe=Math.pow;function je(e,t,n){if(e.length===0)throw Error("empty string");if(e==="NaN"||e==="Infinity"||e==="+Infinity"||e==="-Infinity")return Y;if(typeof t=="number"?(n=t,t=!1):t=!!t,n=n||10,n<2||360)throw Error("interior hyphen");if(r===0)return je(e.substring(1),t,n).neg();for(var i=L(Fe(n,8)),o=Y,s=0;s>>0:this.low};c.toNumber=function(){return this.unsigned?(this.high>>>0)*pe+(this.low>>>0):this.high*pe+(this.low>>>0)};c.toString=function(t){if(t=t||10,t<2||36>>0,f=d.toString(t);if(s=a,s.isZero())return f+u;for(;f.length<6;)f="0"+f;u=""+f+u}};c.getHighBits=function(){return this.high};c.getHighBitsUnsigned=function(){return this.high>>>0};c.getLowBits=function(){return this.low};c.getLowBitsUnsigned=function(){return this.low>>>0};c.getNumBitsAbs=function(){if(this.isNegative())return this.eq(U)?64:this.neg().getNumBitsAbs();for(var t=this.high!=0?this.high:this.low,n=31;n>0&&(t&1<=0};c.isOdd=function(){return(this.low&1)===1};c.isEven=function(){return(this.low&1)===0};c.equals=function(t){return M(t)||(t=z(t)),this.unsigned!==t.unsigned&&this.high>>>31===1&&t.high>>>31===1?!1:this.high===t.high&&this.low===t.low};c.eq=c.equals;c.notEquals=function(t){return!this.eq(t)};c.neq=c.notEquals;c.ne=c.notEquals;c.lessThan=function(t){return this.comp(t)<0};c.lt=c.lessThan;c.lessThanOrEqual=function(t){return this.comp(t)<=0};c.lte=c.lessThanOrEqual;c.le=c.lessThanOrEqual;c.greaterThan=function(t){return this.comp(t)>0};c.gt=c.greaterThan;c.greaterThanOrEqual=function(t){return this.comp(t)>=0};c.gte=c.greaterThanOrEqual;c.ge=c.greaterThanOrEqual;c.compare=function(t){if(M(t)||(t=z(t)),this.eq(t))return 0;var n=this.isNegative(),r=t.isNegative();return n&&!r?-1:!n&&r?1:this.unsigned?t.high>>>0>this.high>>>0||t.high===this.high&&t.low>>>0>this.low>>>0?-1:1:this.sub(t).isNegative()?-1:1};c.comp=c.compare;c.negate=function(){return!this.unsigned&&this.eq(U)?U:this.not().add(me)};c.neg=c.negate;c.add=function(t){M(t)||(t=z(t));var n=this.high>>>16,r=this.high&65535,i=this.low>>>16,o=this.low&65535,s=t.high>>>16,u=t.high&65535,a=t.low>>>16,d=t.low&65535,f=0,y=0,E=0,N=0;return N+=o+d,E+=N>>>16,N&=65535,E+=i+a,y+=E>>>16,E&=65535,y+=r+u,f+=y>>>16,y&=65535,f+=n+s,f&=65535,w(E<<16|N,f<<16|y,this.unsigned)};c.subtract=function(t){return M(t)||(t=z(t)),this.add(t.neg())};c.sub=c.subtract;c.multiply=function(t){if(this.isZero())return Y;if(M(t)||(t=z(t)),q){var n=q.mul(this.low,this.high,t.low,t.high);return w(n,q.get_high(),this.unsigned)}if(t.isZero())return Y;if(this.eq(U))return t.isOdd()?U:Y;if(t.eq(U))return this.isOdd()?U:Y;if(this.isNegative())return t.isNegative()?this.neg().mul(t.neg()):this.neg().mul(t).neg();if(t.isNegative())return this.mul(t.neg()).neg();if(this.lt(St)&&t.lt(St))return L(this.toNumber()*t.toNumber(),this.unsigned);var r=this.high>>>16,i=this.high&65535,o=this.low>>>16,s=this.low&65535,u=t.high>>>16,a=t.high&65535,d=t.low>>>16,f=t.low&65535,y=0,E=0,N=0,Te=0;return Te+=s*f,N+=Te>>>16,Te&=65535,N+=o*f,E+=N>>>16,N&=65535,N+=s*d,E+=N>>>16,N&=65535,E+=i*f,y+=E>>>16,E&=65535,E+=o*d,y+=E>>>16,E&=65535,E+=s*a,y+=E>>>16,E&=65535,y+=r*f+i*d+o*a+s*u,y&=65535,w(N<<16|Te,y<<16|E,this.unsigned)};c.mul=c.multiply;c.divide=function(t){if(M(t)||(t=z(t)),t.isZero())throw Error("division by zero");if(q){if(!this.unsigned&&this.high===-2147483648&&t.low===-1&&t.high===-1)return this;var n=(this.unsigned?q.div_u:q.div_s)(this.low,this.high,t.low,t.high);return w(n,q.get_high(),this.unsigned)}if(this.isZero())return this.unsigned?de:Y;var r,i,o;if(this.unsigned){if(t.unsigned||(t=t.toUnsigned()),t.gt(this))return de;if(t.gt(this.shru(1)))return kt;o=de}else{if(this.eq(U)){if(t.eq(me)||t.eq(Ke))return U;if(t.eq(U))return me;var s=this.shr(1);return r=s.div(t).shl(1),r.eq(Y)?t.isNegative()?me:Ke:(i=this.sub(t.mul(r)),o=r.add(i.div(t)),o)}else if(t.eq(U))return this.unsigned?de:Y;if(this.isNegative())return t.isNegative()?this.neg().div(t.neg()):this.neg().div(t).neg();if(t.isNegative())return this.div(t.neg()).neg();o=Y}for(i=this;i.gte(t);){r=Math.max(1,Math.floor(i.toNumber()/t.toNumber()));for(var u=Math.ceil(Math.log(r)/Math.LN2),a=u<=48?1:Fe(2,u-48),d=L(r),f=d.mul(t);f.isNegative()||f.gt(i);)r-=a,d=L(r,this.unsigned),f=d.mul(t);d.isZero()&&(d=me),o=o.add(d),i=i.sub(f)}return o};c.div=c.divide;c.modulo=function(t){if(M(t)||(t=z(t)),q){var n=(this.unsigned?q.rem_u:q.rem_s)(this.low,this.high,t.low,t.high);return w(n,q.get_high(),this.unsigned)}return this.sub(this.div(t).mul(t))};c.mod=c.modulo;c.rem=c.modulo;c.not=function(){return w(~this.low,~this.high,this.unsigned)};c.and=function(t){return M(t)||(t=z(t)),w(this.low&t.low,this.high&t.high,this.unsigned)};c.or=function(t){return M(t)||(t=z(t)),w(this.low|t.low,this.high|t.high,this.unsigned)};c.xor=function(t){return M(t)||(t=z(t)),w(this.low^t.low,this.high^t.high,this.unsigned)};c.shiftLeft=function(t){return M(t)&&(t=t.toInt()),(t&=63)===0?this:t<32?w(this.low<>>32-t,this.unsigned):w(0,this.low<>>t|this.high<<32-t,this.high>>t,this.unsigned):w(this.high>>t-32,this.high>=0?0:-1,this.unsigned)};c.shr=c.shiftRight;c.shiftRightUnsigned=function(t){if(M(t)&&(t=t.toInt()),t&=63,t===0)return this;var n=this.high;if(t<32){var r=this.low;return w(r>>>t|n<<32-t,n>>>t,this.unsigned)}else return t===32?w(n,0,this.unsigned):w(n>>>t-32,0,this.unsigned)};c.shru=c.shiftRightUnsigned;c.shr_u=c.shiftRightUnsigned;c.toSigned=function(){return this.unsigned?w(this.low,this.high,!1):this};c.toUnsigned=function(){return this.unsigned?this:w(this.low,this.high,!0)};c.toBytes=function(t){return t?this.toBytesLE():this.toBytesBE()};c.toBytesLE=function(){var t=this.high,n=this.low;return[n&255,n>>>8&255,n>>>16&255,n>>>24,t&255,t>>>8&255,t>>>16&255,t>>>24]};c.toBytesBE=function(){var t=this.high,n=this.low;return[t>>>24,t>>>16&255,t>>>8&255,t&255,n>>>24,n>>>16&255,n>>>8&255,n&255]};O.fromBytes=function(t,n,r){return r?O.fromBytesLE(t,n):O.fromBytesBE(t,n)};O.fromBytesLE=function(t,n){return new O(t[0]|t[1]<<8|t[2]<<16|t[3]<<24,t[4]|t[5]<<8|t[6]<<16|t[7]<<24,n)};O.fromBytesBE=function(t,n){return new O(t[4]<<24|t[5]<<16|t[6]<<8|t[7],t[0]<<24|t[1]<<16|t[2]<<8|t[3],n)}});var Nt=C((Ti,Rt)=>{"use strict";Rt.exports=Lr;function Lr(e,t){for(var n=new Array(arguments.length-1),r=0,i=2,o=!0;i{"use strict";var Ue=Ft;Ue.length=function(t){var n=t.length;if(!n)return 0;for(var r=0;--n%4>1&&t.charAt(n)==="=";)++r;return Math.ceil(t.length*3)/4-r};var ye=new Array(64),Tt=new Array(123);for(V=0;V<64;)Tt[ye[V]=V<26?V+65:V<52?V+71:V<62?V-4:V-59|43]=V++;var V;Ue.encode=function(t,n,r){for(var i=null,o=[],s=0,u=0,a;n>2],a=(d&3)<<4,u=1;break;case 1:o[s++]=ye[a|d>>4],a=(d&15)<<2,u=2;break;case 2:o[s++]=ye[a|d>>6],o[s++]=ye[d&63],u=0;break}s>8191&&((i||(i=[])).push(String.fromCharCode.apply(String,o)),s=0)}return u&&(o[s++]=ye[a],o[s++]=61,u===1&&(o[s++]=61)),i?(s&&i.push(String.fromCharCode.apply(String,o.slice(0,s))),i.join("")):String.fromCharCode.apply(String,o.slice(0,s))};var xt="invalid encoding";Ue.decode=function(t,n,r){for(var i=r,o=0,s,u=0;u1)break;if((a=Tt[a])===void 0)throw Error(xt);switch(o){case 0:s=a,o=1;break;case 1:n[r++]=s<<2|(a&48)>>4,s=a,o=2;break;case 2:n[r++]=(s&15)<<4|(a&60)>>2,s=a,o=3;break;case 3:n[r++]=(s&3)<<6|a,o=0;break}}if(o===1)throw Error(xt);return r-i};Ue.test=function(t){return/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(t)}});var Dt=C((Ui,Mt)=>{"use strict";Mt.exports=Me;function Me(){this._listeners={}}Me.prototype.on=function(t,n,r){return(this._listeners[t]||(this._listeners[t]=[])).push({fn:n,ctx:r||this}),this};Me.prototype.off=function(t,n){if(t===void 0)this._listeners={};else if(n===void 0)this._listeners[t]=[];else for(var r=this._listeners[t],i=0;i{"use strict";Zt.exports=Ht(Ht);function Ht(e){return typeof Float32Array<"u"?(function(){var t=new Float32Array([-0]),n=new Uint8Array(t.buffer),r=n[3]===128;function i(a,d,f){t[0]=a,d[f]=n[0],d[f+1]=n[1],d[f+2]=n[2],d[f+3]=n[3]}function o(a,d,f){t[0]=a,d[f]=n[3],d[f+1]=n[2],d[f+2]=n[1],d[f+3]=n[0]}e.writeFloatLE=r?i:o,e.writeFloatBE=r?o:i;function s(a,d){return n[0]=a[d],n[1]=a[d+1],n[2]=a[d+2],n[3]=a[d+3],t[0]}function u(a,d){return n[3]=a[d],n[2]=a[d+1],n[1]=a[d+2],n[0]=a[d+3],t[0]}e.readFloatLE=r?s:u,e.readFloatBE=r?u:s})():(function(){function t(r,i,o,s){var u=i<0?1:0;if(u&&(i=-i),i===0)r(1/i>0?0:2147483648,o,s);else if(isNaN(i))r(2143289344,o,s);else if(i>34028234663852886e22)r((u<<31|2139095040)>>>0,o,s);else if(i<11754943508222875e-54)r((u<<31|Math.round(i/1401298464324817e-60))>>>0,o,s);else{var a=Math.floor(Math.log(i)/Math.LN2),d=Math.round(i*Math.pow(2,-a)*8388608)&8388607;r((u<<31|a+127<<23|d)>>>0,o,s)}}e.writeFloatLE=t.bind(null,qt),e.writeFloatBE=t.bind(null,Lt);function n(r,i,o){var s=r(i,o),u=(s>>31)*2+1,a=s>>>23&255,d=s&8388607;return a===255?d?NaN:u*(1/0):a===0?u*1401298464324817e-60*d:u*Math.pow(2,a-150)*(d+8388608)}e.readFloatLE=n.bind(null,Yt),e.readFloatBE=n.bind(null,Jt)})(),typeof Float64Array<"u"?(function(){var t=new Float64Array([-0]),n=new Uint8Array(t.buffer),r=n[7]===128;function i(a,d,f){t[0]=a,d[f]=n[0],d[f+1]=n[1],d[f+2]=n[2],d[f+3]=n[3],d[f+4]=n[4],d[f+5]=n[5],d[f+6]=n[6],d[f+7]=n[7]}function o(a,d,f){t[0]=a,d[f]=n[7],d[f+1]=n[6],d[f+2]=n[5],d[f+3]=n[4],d[f+4]=n[3],d[f+5]=n[2],d[f+6]=n[1],d[f+7]=n[0]}e.writeDoubleLE=r?i:o,e.writeDoubleBE=r?o:i;function s(a,d){return n[0]=a[d],n[1]=a[d+1],n[2]=a[d+2],n[3]=a[d+3],n[4]=a[d+4],n[5]=a[d+5],n[6]=a[d+6],n[7]=a[d+7],t[0]}function u(a,d){return n[7]=a[d],n[6]=a[d+1],n[5]=a[d+2],n[4]=a[d+3],n[3]=a[d+4],n[2]=a[d+5],n[1]=a[d+6],n[0]=a[d+7],t[0]}e.readDoubleLE=r?s:u,e.readDoubleBE=r?u:s})():(function(){function t(r,i,o,s,u,a){var d=s<0?1:0;if(d&&(s=-s),s===0)r(0,u,a+i),r(1/s>0?0:2147483648,u,a+o);else if(isNaN(s))r(0,u,a+i),r(2146959360,u,a+o);else if(s>17976931348623157e292)r(0,u,a+i),r((d<<31|2146435072)>>>0,u,a+o);else{var f;if(s<22250738585072014e-324)f=s/5e-324,r(f>>>0,u,a+i),r((d<<31|f/4294967296)>>>0,u,a+o);else{var y=Math.floor(Math.log(s)/Math.LN2);y===1024&&(y=1023),f=s*Math.pow(2,-y),r(f*4503599627370496>>>0,u,a+i),r((d<<31|y+1023<<20|f*1048576&1048575)>>>0,u,a+o)}}}e.writeDoubleLE=t.bind(null,qt,0,4),e.writeDoubleBE=t.bind(null,Lt,4,0);function n(r,i,o,s,u){var a=r(s,u+i),d=r(s,u+o),f=(d>>31)*2+1,y=d>>>20&2047,E=4294967296*(d&1048575)+a;return y===2047?E?NaN:f*(1/0):y===0?f*5e-324*E:f*Math.pow(2,y-1075)*(E+4503599627370496)}e.readDoubleLE=n.bind(null,Yt,0,4),e.readDoubleBE=n.bind(null,Jt,4,0)})(),e}function qt(e,t,n){t[n]=e&255,t[n+1]=e>>>8&255,t[n+2]=e>>>16&255,t[n+3]=e>>>24}function Lt(e,t,n){t[n]=e>>>24,t[n+1]=e>>>16&255,t[n+2]=e>>>8&255,t[n+3]=e&255}function Yt(e,t){return(e[t]|e[t+1]<<8|e[t+2]<<16|e[t+3]<<24)>>>0}function Jt(e,t){return(e[t]<<24|e[t+1]<<16|e[t+2]<<8|e[t+3])>>>0}});var zt=C((exports,module)=>{"use strict";module.exports=inquire;function inquire(moduleName){try{var mod=eval("quire".replace(/^/,"re"))(moduleName);if(mod&&(mod.length||Object.keys(mod).length))return mod}catch(e){}return null}});var Gt=C(Vt=>{"use strict";var et=Vt;et.length=function(t){for(var n=0,r=0,i=0;i191&&a<224?s[u++]=(a&31)<<6|t[n++]&63:a>239&&a<365?(a=((a&7)<<18|(t[n++]&63)<<12|(t[n++]&63)<<6|t[n++]&63)-65536,s[u++]=55296+(a>>10),s[u++]=56320+(a&1023)):s[u++]=(a&15)<<12|(t[n++]&63)<<6|t[n++]&63,u>8191&&((o||(o=[])).push(String.fromCharCode.apply(String,s)),u=0);return o?(u&&o.push(String.fromCharCode.apply(String,s.slice(0,u))),o.join("")):String.fromCharCode.apply(String,s.slice(0,u))};et.write=function(t,n,r){for(var i=r,o,s,u=0;u>6|192,n[r++]=o&63|128):(o&64512)===55296&&((s=t.charCodeAt(u+1))&64512)===56320?(o=65536+((o&1023)<<10)+(s&1023),++u,n[r++]=o>>18|240,n[r++]=o>>12&63|128,n[r++]=o>>6&63|128,n[r++]=o&63|128):(n[r++]=o>>12|224,n[r++]=o>>6&63|128,n[r++]=o&63|128);return r-i}});var Xt=C((Hi,$t)=>{"use strict";$t.exports=Yr;function Yr(e,t,n){var r=n||8192,i=r>>>1,o=null,s=r;return function(a){if(a<1||a>i)return e(a);s+a>r&&(o=e(r),s=0);var d=t.call(o,s,s+=a);return s&7&&(s=(s|7)+1),d}}});var Kt=C((qi,Qt)=>{"use strict";Qt.exports=B;var ke=ne();function B(e,t){this.lo=e>>>0,this.hi=t>>>0}var ce=B.zero=new B(0,0);ce.toNumber=function(){return 0};ce.zzEncode=ce.zzDecode=function(){return this};ce.length=function(){return 1};var Jr=B.zeroHash="\0\0\0\0\0\0\0\0";B.fromNumber=function(t){if(t===0)return ce;var n=t<0;n&&(t=-t);var r=t>>>0,i=(t-r)/4294967296>>>0;return n&&(i=~i>>>0,r=~r>>>0,++r>4294967295&&(r=0,++i>4294967295&&(i=0))),new B(r,i)};B.from=function(t){if(typeof t=="number")return B.fromNumber(t);if(ke.isString(t))if(ke.Long)t=ke.Long.fromString(t);else return B.fromNumber(parseInt(t,10));return t.low||t.high?new B(t.low>>>0,t.high>>>0):ce};B.prototype.toNumber=function(t){if(!t&&this.hi>>>31){var n=~this.lo+1>>>0,r=~this.hi>>>0;return n||(r=r+1>>>0),-(n+r*4294967296)}return this.lo+this.hi*4294967296};B.prototype.toLong=function(t){return ke.Long?new ke.Long(this.lo|0,this.hi|0,!!t):{low:this.lo|0,high:this.hi|0,unsigned:!!t}};var te=String.prototype.charCodeAt;B.fromHash=function(t){return t===Jr?ce:new B((te.call(t,0)|te.call(t,1)<<8|te.call(t,2)<<16|te.call(t,3)<<24)>>>0,(te.call(t,4)|te.call(t,5)<<8|te.call(t,6)<<16|te.call(t,7)<<24)>>>0)};B.prototype.toHash=function(){return String.fromCharCode(this.lo&255,this.lo>>>8&255,this.lo>>>16&255,this.lo>>>24,this.hi&255,this.hi>>>8&255,this.hi>>>16&255,this.hi>>>24)};B.prototype.zzEncode=function(){var t=this.hi>>31;return this.hi=((this.hi<<1|this.lo>>>31)^t)>>>0,this.lo=(this.lo<<1^t)>>>0,this};B.prototype.zzDecode=function(){var t=-(this.lo&1);return this.lo=((this.lo>>>1|this.hi<<31)^t)>>>0,this.hi=(this.hi>>>1^t)>>>0,this};B.prototype.length=function(){var t=this.lo,n=(this.lo>>>28|this.hi<<4)>>>0,r=this.hi>>>24;return r===0?n===0?t<16384?t<128?1:2:t<2097152?3:4:n<16384?n<128?5:6:n<2097152?7:8:r<128?9:10}});var ne=C(tt=>{"use strict";var l=tt;l.asPromise=Nt();l.base64=Ut();l.EventEmitter=Dt();l.float=Wt();l.inquire=zt();l.utf8=Gt();l.pool=Xt();l.LongBits=Kt();l.isNode=!!(typeof global<"u"&&global&&global.process&&global.process.versions&&global.process.versions.node);l.global=l.isNode&&global||typeof window<"u"&&window||typeof self<"u"&&self||tt;l.emptyArray=Object.freeze?Object.freeze([]):[];l.emptyObject=Object.freeze?Object.freeze({}):{};l.isInteger=Number.isInteger||function(t){return typeof t=="number"&&isFinite(t)&&Math.floor(t)===t};l.isString=function(t){return typeof t=="string"||t instanceof String};l.isObject=function(t){return t&&typeof t=="object"};l.isset=l.isSet=function(t,n){var r=t[n];return r!=null&&t.hasOwnProperty(n)?typeof r!="object"||(Array.isArray(r)?r.length:Object.keys(r).length)>0:!1};l.Buffer=(function(){try{var e=l.inquire("buffer").Buffer;return e.prototype.utf8Write?e:null}catch{return null}})();l._Buffer_from=null;l._Buffer_allocUnsafe=null;l.newBuffer=function(t){return typeof t=="number"?l.Buffer?l._Buffer_allocUnsafe(t):new l.Array(t):l.Buffer?l._Buffer_from(t):typeof Uint8Array>"u"?t:new Uint8Array(t)};l.Array=typeof Uint8Array<"u"?Uint8Array:Array;l.Long=l.global.dcodeIO&&l.global.dcodeIO.Long||l.global.Long||l.inquire("long");l.key2Re=/^true|false|0|1$/;l.key32Re=/^-?(?:0|[1-9][0-9]*)$/;l.key64Re=/^(?:[\\x00-\\xff]{8}|-?(?:0|[1-9][0-9]*))$/;l.longToHash=function(t){return t?l.LongBits.from(t).toHash():l.LongBits.zeroHash};l.longFromHash=function(t,n){var r=l.LongBits.fromHash(t);return l.Long?l.Long.fromBits(r.lo,r.hi,n):r.toNumber(!!n)};function jt(e,t,n){for(var r=Object.keys(t),i=0;i-1;--o)if(n[i[o]]===1&&this[i[o]]!==void 0&&this[i[o]]!==null)return i[o]}};l.oneOfSetter=function(t){return function(n){for(var r=0;r{"use strict";on.exports=_;var J=ne(),nt,De=J.LongBits,tn=J.base64,nn=J.utf8;function Pe(e,t,n){this.fn=e,this.len=t,this.next=void 0,this.val=n}function it(){}function Zr(e){this.head=e.head,this.tail=e.tail,this.len=e.len,this.next=e.states}function _(){this.len=0,this.head=new Pe(it,0,0),this.tail=this.head,this.states=null}var rn=function(){return J.Buffer?function(){return(_.create=function(){return new nt})()}:function(){return new _}};_.create=rn();_.alloc=function(t){return new J.Array(t)};J.Array!==Array&&(_.alloc=J.pool(_.alloc,J.Array.prototype.subarray));_.prototype._push=function(t,n,r){return this.tail=this.tail.next=new Pe(t,n,r),this.len+=n,this};function ot(e,t,n){t[n]=e&255}function Wr(e,t,n){for(;e>127;)t[n++]=e&127|128,e>>>=7;t[n]=e}function st(e,t){this.len=e,this.next=void 0,this.val=t}st.prototype=Object.create(Pe.prototype);st.prototype.fn=Wr;_.prototype.uint32=function(t){return this.len+=(this.tail=this.tail.next=new st((t=t>>>0)<128?1:t<16384?2:t<2097152?3:t<268435456?4:5,t)).len,this};_.prototype.int32=function(t){return t<0?this._push(at,10,De.fromNumber(t)):this.uint32(t)};_.prototype.sint32=function(t){return this.uint32((t<<1^t>>31)>>>0)};function at(e,t,n){for(;e.hi;)t[n++]=e.lo&127|128,e.lo=(e.lo>>>7|e.hi<<25)>>>0,e.hi>>>=7;for(;e.lo>127;)t[n++]=e.lo&127|128,e.lo=e.lo>>>7;t[n++]=e.lo}_.prototype.uint64=function(t){var n=De.from(t);return this._push(at,n.length(),n)};_.prototype.int64=_.prototype.uint64;_.prototype.sint64=function(t){var n=De.from(t).zzEncode();return this._push(at,n.length(),n)};_.prototype.bool=function(t){return this._push(ot,1,t?1:0)};function rt(e,t,n){t[n]=e&255,t[n+1]=e>>>8&255,t[n+2]=e>>>16&255,t[n+3]=e>>>24}_.prototype.fixed32=function(t){return this._push(rt,4,t>>>0)};_.prototype.sfixed32=_.prototype.fixed32;_.prototype.fixed64=function(t){var n=De.from(t);return this._push(rt,4,n.lo)._push(rt,4,n.hi)};_.prototype.sfixed64=_.prototype.fixed64;_.prototype.float=function(t){return this._push(J.float.writeFloatLE,4,t)};_.prototype.double=function(t){return this._push(J.float.writeDoubleLE,8,t)};var zr=J.Array.prototype.set?function(t,n,r){n.set(t,r)}:function(t,n,r){for(var i=0;i>>0;if(!n)return this._push(ot,1,0);if(J.isString(t)){var r=_.alloc(n=tn.length(t));tn.decode(t,r,0),t=r}return this.uint32(n)._push(zr,n,t)};_.prototype.string=function(t){var n=nn.length(t);return n?this.uint32(n)._push(nn.write,n,t):this._push(ot,1,0)};_.prototype.fork=function(){return this.states=new Zr(this),this.head=this.tail=new Pe(it,0,0),this.len=0,this};_.prototype.reset=function(){return this.states?(this.head=this.states.head,this.tail=this.states.tail,this.len=this.states.len,this.states=this.states.next):(this.head=this.tail=new Pe(it,0,0),this.len=0),this};_.prototype.ldelim=function(){var t=this.head,n=this.tail,r=this.len;return this.reset().uint32(r),r&&(this.tail.next=t.next,this.tail=n,this.len+=r),this};_.prototype.finish=function(){for(var t=this.head.next,n=this.constructor.alloc(this.len),r=0;t;)t.fn(t.val,n,r),r+=t.len,t=t.next;return n};_._configure=function(e){nt=e,_.create=rn(),nt._configure()}});var dn=C((Ji,an)=>{"use strict";an.exports=Q;var sn=dt();(Q.prototype=Object.create(sn.prototype)).constructor=Q;var re=ne();function Q(){sn.call(this)}Q._configure=function(){Q.alloc=re._Buffer_allocUnsafe,Q.writeBytesBuffer=re.Buffer&&re.Buffer.prototype instanceof Uint8Array&&re.Buffer.prototype.set.name==="set"?function(t,n,r){n.set(t,r)}:function(t,n,r){if(t.copy)t.copy(n,r,0,t.length);else for(var i=0;i>>0;return this.uint32(n),n&&this._push(Q.writeBytesBuffer,n,t),this};function Vr(e,t,n){e.length<40?re.utf8.write(e,t,n):t.utf8Write?t.utf8Write(e,n):t.write(e,n)}Q.prototype.string=function(t){var n=re.Buffer.byteLength(t);return this.uint32(n),n&&this._push(Vr,n,t),this};Q._configure()});var ft=C((Zi,hn)=>{"use strict";hn.exports=P;var K=ne(),ct,fn=K.LongBits,Gr=K.utf8;function G(e,t){return RangeError("index out of range: "+e.pos+" + "+(t||1)+" > "+e.len)}function P(e){this.buf=e,this.pos=0,this.len=e.length}var un=typeof Uint8Array<"u"?function(t){if(t instanceof Uint8Array||Array.isArray(t))return new P(t);throw Error("illegal buffer")}:function(t){if(Array.isArray(t))return new P(t);throw Error("illegal buffer")},ln=function(){return K.Buffer?function(n){return(P.create=function(i){return K.Buffer.isBuffer(i)?new ct(i):un(i)})(n)}:un};P.create=ln();P.prototype._slice=K.Array.prototype.subarray||K.Array.prototype.slice;P.prototype.uint32=(function(){var t=4294967295;return function(){if(t=(this.buf[this.pos]&127)>>>0,this.buf[this.pos++]<128||(t=(t|(this.buf[this.pos]&127)<<7)>>>0,this.buf[this.pos++]<128)||(t=(t|(this.buf[this.pos]&127)<<14)>>>0,this.buf[this.pos++]<128)||(t=(t|(this.buf[this.pos]&127)<<21)>>>0,this.buf[this.pos++]<128)||(t=(t|(this.buf[this.pos]&15)<<28)>>>0,this.buf[this.pos++]<128))return t;if((this.pos+=5)>this.len)throw this.pos=this.len,G(this,10);return t}})();P.prototype.int32=function(){return this.uint32()|0};P.prototype.sint32=function(){var t=this.uint32();return t>>>1^-(t&1)|0};function ut(){var e=new fn(0,0),t=0;if(this.len-this.pos>4){for(;t<4;++t)if(e.lo=(e.lo|(this.buf[this.pos]&127)<>>0,this.buf[this.pos++]<128)return e;if(e.lo=(e.lo|(this.buf[this.pos]&127)<<28)>>>0,e.hi=(e.hi|(this.buf[this.pos]&127)>>4)>>>0,this.buf[this.pos++]<128)return e;t=0}else{for(;t<3;++t){if(this.pos>=this.len)throw G(this);if(e.lo=(e.lo|(this.buf[this.pos]&127)<>>0,this.buf[this.pos++]<128)return e}return e.lo=(e.lo|(this.buf[this.pos++]&127)<>>0,e}if(this.len-this.pos>4){for(;t<5;++t)if(e.hi=(e.hi|(this.buf[this.pos]&127)<>>0,this.buf[this.pos++]<128)return e}else for(;t<5;++t){if(this.pos>=this.len)throw G(this);if(e.hi=(e.hi|(this.buf[this.pos]&127)<>>0,this.buf[this.pos++]<128)return e}throw Error("invalid varint encoding")}P.prototype.bool=function(){return this.uint32()!==0};function He(e,t){return(e[t-4]|e[t-3]<<8|e[t-2]<<16|e[t-1]<<24)>>>0}P.prototype.fixed32=function(){if(this.pos+4>this.len)throw G(this,4);return He(this.buf,this.pos+=4)};P.prototype.sfixed32=function(){if(this.pos+4>this.len)throw G(this,4);return He(this.buf,this.pos+=4)|0};function cn(){if(this.pos+8>this.len)throw G(this,8);return new fn(He(this.buf,this.pos+=4),He(this.buf,this.pos+=4))}P.prototype.float=function(){if(this.pos+4>this.len)throw G(this,4);var t=K.float.readFloatLE(this.buf,this.pos);return this.pos+=4,t};P.prototype.double=function(){if(this.pos+8>this.len)throw G(this,4);var t=K.float.readDoubleLE(this.buf,this.pos);return this.pos+=8,t};P.prototype.bytes=function(){var t=this.uint32(),n=this.pos,r=this.pos+t;if(r>this.len)throw G(this,t);return this.pos+=t,Array.isArray(this.buf)?this.buf.slice(n,r):n===r?new this.buf.constructor(0):this._slice.call(this.buf,n,r)};P.prototype.string=function(){var t=this.bytes();return Gr.read(t,0,t.length)};P.prototype.skip=function(t){if(typeof t=="number"){if(this.pos+t>this.len)throw G(this,t);this.pos+=t}else do if(this.pos>=this.len)throw G(this);while(this.buf[this.pos++]&128);return this};P.prototype.skipType=function(e){switch(e){case 0:this.skip();break;case 1:this.skip(8);break;case 2:this.skip(this.uint32());break;case 3:for(;(e=this.uint32()&7)!==4;)this.skipType(e);break;case 5:this.skip(4);break;default:throw Error("invalid wire type "+e+" at offset "+this.pos)}return this};P._configure=function(e){ct=e,P.create=ln(),ct._configure();var t=K.Long?"toLong":"toNumber";K.merge(P.prototype,{int64:function(){return ut.call(this)[t](!1)},uint64:function(){return ut.call(this)[t](!0)},sint64:function(){return ut.call(this).zzDecode()[t](!1)},fixed64:function(){return cn.call(this)[t](!0)},sfixed64:function(){return cn.call(this)[t](!1)}})}});var yn=C((Wi,pn)=>{"use strict";pn.exports=fe;var mn=ft();(fe.prototype=Object.create(mn.prototype)).constructor=fe;var gn=ne();function fe(e){mn.call(this,e)}fe._configure=function(){gn.Buffer&&(fe.prototype._slice=gn.Buffer.prototype.slice)};fe.prototype.string=function(){var t=this.uint32();return this.buf.utf8Slice?this.buf.utf8Slice(this.pos,this.pos=Math.min(this.pos+t,this.len)):this.buf.toString("utf-8",this.pos,this.pos=Math.min(this.pos+t,this.len))};fe._configure()});var Cn=C((zi,_n)=>{"use strict";_n.exports=Ie;var lt=ne();(Ie.prototype=Object.create(lt.EventEmitter.prototype)).constructor=Ie;function Ie(e,t,n){if(typeof e!="function")throw TypeError("rpcImpl must be a function");lt.EventEmitter.call(this),this.rpcImpl=e,this.requestDelimited=!!t,this.responseDelimited=!!n}Ie.prototype.rpcCall=function e(t,n,r,i,o){if(!i)throw TypeError("request must be specified");var s=this;if(!o)return lt.asPromise(e,s,t,n,r,i);if(!s.rpcImpl){setTimeout(function(){o(Error("already ended"))},0);return}try{return s.rpcImpl(t,n[s.requestDelimited?"encodeDelimited":"encode"](i).finish(),function(a,d){if(a)return s.emit("error",a,t),o(a);if(d===null){s.end(!0);return}if(!(d instanceof r))try{d=r[s.responseDelimited?"decodeDelimited":"decode"](d)}catch(f){return s.emit("error",f,t),o(f)}return s.emit("data",d,t),o(null,d)})}catch(u){s.emit("error",u,t),setTimeout(function(){o(u)},0);return}};Ie.prototype.end=function(t){return this.rpcImpl&&(t||this.rpcImpl(null,null,null),this.rpcImpl=null,this.emit("end").off()),this}});var En=C(An=>{"use strict";var $r=An;$r.Service=Cn()});var On=C((Gi,bn)=>{"use strict";bn.exports={}});var vn=C(Sn=>{"use strict";var D=Sn;D.build="minimal";D.Writer=dt();D.BufferWriter=dn();D.Reader=ft();D.BufferReader=yn();D.util=ne();D.rpc=En();D.roots=On();D.configure=wn;function wn(){D.util._configure(),D.Writer._configure(D.BufferWriter),D.Reader._configure(D.BufferReader)}wn()});var Be=C((Xi,kn)=>{"use strict";kn.exports=vn()});var Tn=C(H=>{"use strict";var xn=H&&H.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(H,"__esModule",{value:!0});H.DecProto=H.IntProto=H.DecCoin=H.Coin=H.protobufPackage=void 0;var Pn=xn(ve()),x=xn(Be());H.protobufPackage="cosmos.base.v1beta1";function In(){return{denom:"",amount:""}}H.Coin={encode(e,t=x.default.Writer.create()){return e.denom!==""&&t.uint32(10).string(e.denom),e.amount!==""&&t.uint32(18).string(e.amount),t},decode(e,t){let n=e instanceof x.default.Reader?e:new x.default.Reader(e),r=t===void 0?n.len:n.pos+t,i=In();for(;n.pos>>3){case 1:i.denom=n.string();break;case 2:i.amount=n.string();break;default:n.skipType(o&7);break}}return i},fromJSON(e){return{denom:_e(e.denom)?String(e.denom):"",amount:_e(e.amount)?String(e.amount):""}},toJSON(e){let t={};return e.denom!==void 0&&(t.denom=e.denom),e.amount!==void 0&&(t.amount=e.amount),t},fromPartial(e){var t,n;let r=In();return r.denom=(t=e.denom)!==null&&t!==void 0?t:"",r.amount=(n=e.amount)!==null&&n!==void 0?n:"",r}};function Bn(){return{denom:"",amount:""}}H.DecCoin={encode(e,t=x.default.Writer.create()){return e.denom!==""&&t.uint32(10).string(e.denom),e.amount!==""&&t.uint32(18).string(e.amount),t},decode(e,t){let n=e instanceof x.default.Reader?e:new x.default.Reader(e),r=t===void 0?n.len:n.pos+t,i=Bn();for(;n.pos>>3){case 1:i.denom=n.string();break;case 2:i.amount=n.string();break;default:n.skipType(o&7);break}}return i},fromJSON(e){return{denom:_e(e.denom)?String(e.denom):"",amount:_e(e.amount)?String(e.amount):""}},toJSON(e){let t={};return e.denom!==void 0&&(t.denom=e.denom),e.amount!==void 0&&(t.amount=e.amount),t},fromPartial(e){var t,n;let r=Bn();return r.denom=(t=e.denom)!==null&&t!==void 0?t:"",r.amount=(n=e.amount)!==null&&n!==void 0?n:"",r}};function Rn(){return{int:""}}H.IntProto={encode(e,t=x.default.Writer.create()){return e.int!==""&&t.uint32(10).string(e.int),t},decode(e,t){let n=e instanceof x.default.Reader?e:new x.default.Reader(e),r=t===void 0?n.len:n.pos+t,i=Rn();for(;n.pos>>3===1?i.int=n.string():n.skipType(o&7)}return i},fromJSON(e){return{int:_e(e.int)?String(e.int):""}},toJSON(e){let t={};return e.int!==void 0&&(t.int=e.int),t},fromPartial(e){var t;let n=Rn();return n.int=(t=e.int)!==null&&t!==void 0?t:"",n}};function Nn(){return{dec:""}}H.DecProto={encode(e,t=x.default.Writer.create()){return e.dec!==""&&t.uint32(10).string(e.dec),t},decode(e,t){let n=e instanceof x.default.Reader?e:new x.default.Reader(e),r=t===void 0?n.len:n.pos+t,i=Nn();for(;n.pos>>3===1?i.dec=n.string():n.skipType(o&7)}return i},fromJSON(e){return{dec:_e(e.dec)?String(e.dec):""}},toJSON(e){let t={};return e.dec!==void 0&&(t.dec=e.dec),t},fromPartial(e){var t;let n=Nn();return n.dec=(t=e.dec)!==null&&t!==void 0?t:"",n}};x.default.util.Long!==Pn.default&&(x.default.util.Long=Pn.default,x.default.configure());function _e(e){return e!=null}});var Hn=C(oe=>{"use strict";var Dn=oe&&oe.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(oe,"__esModule",{value:!0});oe.Any=oe.protobufPackage=void 0;var Fn=Dn(ve()),Ce=Dn(Be());oe.protobufPackage="google.protobuf";function Un(){return{typeUrl:"",value:new Uint8Array}}oe.Any={encode(e,t=Ce.default.Writer.create()){return e.typeUrl!==""&&t.uint32(10).string(e.typeUrl),e.value.length!==0&&t.uint32(18).bytes(e.value),t},decode(e,t){let n=e instanceof Ce.default.Reader?e:new Ce.default.Reader(e),r=t===void 0?n.len:n.pos+t,i=Un();for(;n.pos>>3){case 1:i.typeUrl=n.string();break;case 2:i.value=n.bytes();break;default:n.skipType(o&7);break}}return i},fromJSON(e){return{typeUrl:Mn(e.typeUrl)?String(e.typeUrl):"",value:Mn(e.value)?Xr(e.value):new Uint8Array}},toJSON(e){let t={};return e.typeUrl!==void 0&&(t.typeUrl=e.typeUrl),e.value!==void 0&&(t.value=Qr(e.value!==void 0?e.value:new Uint8Array)),t},fromPartial(e){var t,n;let r=Un();return r.typeUrl=(t=e.typeUrl)!==null&&t!==void 0?t:"",r.value=(n=e.value)!==null&&n!==void 0?n:new Uint8Array,r}};var ie=(()=>{if(typeof ie<"u")return ie;if(typeof self<"u")return self;if(typeof window<"u")return window;if(typeof global<"u")return global;throw"Unable to locate global object"})();function Xr(e){if(ie.Buffer)return Uint8Array.from(ie.Buffer.from(e,"base64"));{let t=ie.atob(e),n=new Uint8Array(t.length);for(let r=0;r{t.push(String.fromCharCode(n))}),ie.btoa(t.join(""))}}Ce.default.util.Long!==Fn.default&&(Ce.default.util.Long=Fn.default,Ce.default.configure());function Mn(e){return e!=null}});var Qn=C(g=>{"use strict";var Gn=g&&g.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(g,"__esModule",{value:!0});g.Model=g.AbsoluteTxPosition=g.ContractCodeHistoryEntry=g.ContractInfo=g.CodeInfo=g.Params=g.AccessConfig=g.AccessTypeParam=g.contractCodeHistoryOperationTypeToJSON=g.contractCodeHistoryOperationTypeFromJSON=g.ContractCodeHistoryOperationType=g.accessTypeToJSON=g.accessTypeFromJSON=g.AccessType=g.protobufPackage=void 0;var S=Gn(ve()),b=Gn(Be()),Re=Hn();g.protobufPackage="cosmwasm.wasm.v1";var $;(function(e){e[e.ACCESS_TYPE_UNSPECIFIED=0]="ACCESS_TYPE_UNSPECIFIED",e[e.ACCESS_TYPE_NOBODY=1]="ACCESS_TYPE_NOBODY",e[e.ACCESS_TYPE_ONLY_ADDRESS=2]="ACCESS_TYPE_ONLY_ADDRESS",e[e.ACCESS_TYPE_EVERYBODY=3]="ACCESS_TYPE_EVERYBODY",e[e.UNRECOGNIZED=-1]="UNRECOGNIZED"})($=g.AccessType||(g.AccessType={}));function Ye(e){switch(e){case 0:case"ACCESS_TYPE_UNSPECIFIED":return $.ACCESS_TYPE_UNSPECIFIED;case 1:case"ACCESS_TYPE_NOBODY":return $.ACCESS_TYPE_NOBODY;case 2:case"ACCESS_TYPE_ONLY_ADDRESS":return $.ACCESS_TYPE_ONLY_ADDRESS;case 3:case"ACCESS_TYPE_EVERYBODY":return $.ACCESS_TYPE_EVERYBODY;default:return $.UNRECOGNIZED}}g.accessTypeFromJSON=Ye;function Je(e){switch(e){case $.ACCESS_TYPE_UNSPECIFIED:return"ACCESS_TYPE_UNSPECIFIED";case $.ACCESS_TYPE_NOBODY:return"ACCESS_TYPE_NOBODY";case $.ACCESS_TYPE_ONLY_ADDRESS:return"ACCESS_TYPE_ONLY_ADDRESS";case $.ACCESS_TYPE_EVERYBODY:return"ACCESS_TYPE_EVERYBODY";case $.UNRECOGNIZED:default:return"UNRECOGNIZED"}}g.accessTypeToJSON=Je;var X;(function(e){e[e.CONTRACT_CODE_HISTORY_OPERATION_TYPE_UNSPECIFIED=0]="CONTRACT_CODE_HISTORY_OPERATION_TYPE_UNSPECIFIED",e[e.CONTRACT_CODE_HISTORY_OPERATION_TYPE_INIT=1]="CONTRACT_CODE_HISTORY_OPERATION_TYPE_INIT",e[e.CONTRACT_CODE_HISTORY_OPERATION_TYPE_MIGRATE=2]="CONTRACT_CODE_HISTORY_OPERATION_TYPE_MIGRATE",e[e.CONTRACT_CODE_HISTORY_OPERATION_TYPE_GENESIS=3]="CONTRACT_CODE_HISTORY_OPERATION_TYPE_GENESIS",e[e.UNRECOGNIZED=-1]="UNRECOGNIZED"})(X=g.ContractCodeHistoryOperationType||(g.ContractCodeHistoryOperationType={}));function $n(e){switch(e){case 0:case"CONTRACT_CODE_HISTORY_OPERATION_TYPE_UNSPECIFIED":return X.CONTRACT_CODE_HISTORY_OPERATION_TYPE_UNSPECIFIED;case 1:case"CONTRACT_CODE_HISTORY_OPERATION_TYPE_INIT":return X.CONTRACT_CODE_HISTORY_OPERATION_TYPE_INIT;case 2:case"CONTRACT_CODE_HISTORY_OPERATION_TYPE_MIGRATE":return X.CONTRACT_CODE_HISTORY_OPERATION_TYPE_MIGRATE;case 3:case"CONTRACT_CODE_HISTORY_OPERATION_TYPE_GENESIS":return X.CONTRACT_CODE_HISTORY_OPERATION_TYPE_GENESIS;default:return X.UNRECOGNIZED}}g.contractCodeHistoryOperationTypeFromJSON=$n;function Xn(e){switch(e){case X.CONTRACT_CODE_HISTORY_OPERATION_TYPE_UNSPECIFIED:return"CONTRACT_CODE_HISTORY_OPERATION_TYPE_UNSPECIFIED";case X.CONTRACT_CODE_HISTORY_OPERATION_TYPE_INIT:return"CONTRACT_CODE_HISTORY_OPERATION_TYPE_INIT";case X.CONTRACT_CODE_HISTORY_OPERATION_TYPE_MIGRATE:return"CONTRACT_CODE_HISTORY_OPERATION_TYPE_MIGRATE";case X.CONTRACT_CODE_HISTORY_OPERATION_TYPE_GENESIS:return"CONTRACT_CODE_HISTORY_OPERATION_TYPE_GENESIS";case X.UNRECOGNIZED:default:return"UNRECOGNIZED"}}g.contractCodeHistoryOperationTypeToJSON=Xn;function qn(){return{value:0}}g.AccessTypeParam={encode(e,t=b.default.Writer.create()){return e.value!==0&&t.uint32(8).int32(e.value),t},decode(e,t){let n=e instanceof b.default.Reader?e:new b.default.Reader(e),r=t===void 0?n.len:n.pos+t,i=qn();for(;n.pos>>3===1?i.value=n.int32():n.skipType(o&7)}return i},fromJSON(e){return{value:k(e.value)?Ye(e.value):0}},toJSON(e){let t={};return e.value!==void 0&&(t.value=Je(e.value)),t},fromPartial(e){var t;let n=qn();return n.value=(t=e.value)!==null&&t!==void 0?t:0,n}};function Ln(){return{permission:0,address:""}}g.AccessConfig={encode(e,t=b.default.Writer.create()){return e.permission!==0&&t.uint32(8).int32(e.permission),e.address!==""&&t.uint32(18).string(e.address),t},decode(e,t){let n=e instanceof b.default.Reader?e:new b.default.Reader(e),r=t===void 0?n.len:n.pos+t,i=Ln();for(;n.pos>>3){case 1:i.permission=n.int32();break;case 2:i.address=n.string();break;default:n.skipType(o&7);break}}return i},fromJSON(e){return{permission:k(e.permission)?Ye(e.permission):0,address:k(e.address)?String(e.address):""}},toJSON(e){let t={};return e.permission!==void 0&&(t.permission=Je(e.permission)),e.address!==void 0&&(t.address=e.address),t},fromPartial(e){var t,n;let r=Ln();return r.permission=(t=e.permission)!==null&&t!==void 0?t:0,r.address=(n=e.address)!==null&&n!==void 0?n:"",r}};function Yn(){return{codeUploadAccess:void 0,instantiateDefaultPermission:0}}g.Params={encode(e,t=b.default.Writer.create()){return e.codeUploadAccess!==void 0&&g.AccessConfig.encode(e.codeUploadAccess,t.uint32(10).fork()).ldelim(),e.instantiateDefaultPermission!==0&&t.uint32(16).int32(e.instantiateDefaultPermission),t},decode(e,t){let n=e instanceof b.default.Reader?e:new b.default.Reader(e),r=t===void 0?n.len:n.pos+t,i=Yn();for(;n.pos>>3){case 1:i.codeUploadAccess=g.AccessConfig.decode(n,n.uint32());break;case 2:i.instantiateDefaultPermission=n.int32();break;default:n.skipType(o&7);break}}return i},fromJSON(e){return{codeUploadAccess:k(e.codeUploadAccess)?g.AccessConfig.fromJSON(e.codeUploadAccess):void 0,instantiateDefaultPermission:k(e.instantiateDefaultPermission)?Ye(e.instantiateDefaultPermission):0}},toJSON(e){let t={};return e.codeUploadAccess!==void 0&&(t.codeUploadAccess=e.codeUploadAccess?g.AccessConfig.toJSON(e.codeUploadAccess):void 0),e.instantiateDefaultPermission!==void 0&&(t.instantiateDefaultPermission=Je(e.instantiateDefaultPermission)),t},fromPartial(e){var t;let n=Yn();return n.codeUploadAccess=e.codeUploadAccess!==void 0&&e.codeUploadAccess!==null?g.AccessConfig.fromPartial(e.codeUploadAccess):void 0,n.instantiateDefaultPermission=(t=e.instantiateDefaultPermission)!==null&&t!==void 0?t:0,n}};function Jn(){return{codeHash:new Uint8Array,creator:"",instantiateConfig:void 0}}g.CodeInfo={encode(e,t=b.default.Writer.create()){return e.codeHash.length!==0&&t.uint32(10).bytes(e.codeHash),e.creator!==""&&t.uint32(18).string(e.creator),e.instantiateConfig!==void 0&&g.AccessConfig.encode(e.instantiateConfig,t.uint32(42).fork()).ldelim(),t},decode(e,t){let n=e instanceof b.default.Reader?e:new b.default.Reader(e),r=t===void 0?n.len:n.pos+t,i=Jn();for(;n.pos>>3){case 1:i.codeHash=n.bytes();break;case 2:i.creator=n.string();break;case 5:i.instantiateConfig=g.AccessConfig.decode(n,n.uint32());break;default:n.skipType(o&7);break}}return i},fromJSON(e){return{codeHash:k(e.codeHash)?qe(e.codeHash):new Uint8Array,creator:k(e.creator)?String(e.creator):"",instantiateConfig:k(e.instantiateConfig)?g.AccessConfig.fromJSON(e.instantiateConfig):void 0}},toJSON(e){let t={};return e.codeHash!==void 0&&(t.codeHash=Le(e.codeHash!==void 0?e.codeHash:new Uint8Array)),e.creator!==void 0&&(t.creator=e.creator),e.instantiateConfig!==void 0&&(t.instantiateConfig=e.instantiateConfig?g.AccessConfig.toJSON(e.instantiateConfig):void 0),t},fromPartial(e){var t,n;let r=Jn();return r.codeHash=(t=e.codeHash)!==null&&t!==void 0?t:new Uint8Array,r.creator=(n=e.creator)!==null&&n!==void 0?n:"",r.instantiateConfig=e.instantiateConfig!==void 0&&e.instantiateConfig!==null?g.AccessConfig.fromPartial(e.instantiateConfig):void 0,r}};function Zn(){return{codeId:S.default.UZERO,creator:"",admin:"",label:"",created:void 0,ibcPortId:"",extension:void 0}}g.ContractInfo={encode(e,t=b.default.Writer.create()){return e.codeId.isZero()||t.uint32(8).uint64(e.codeId),e.creator!==""&&t.uint32(18).string(e.creator),e.admin!==""&&t.uint32(26).string(e.admin),e.label!==""&&t.uint32(34).string(e.label),e.created!==void 0&&g.AbsoluteTxPosition.encode(e.created,t.uint32(42).fork()).ldelim(),e.ibcPortId!==""&&t.uint32(50).string(e.ibcPortId),e.extension!==void 0&&Re.Any.encode(e.extension,t.uint32(58).fork()).ldelim(),t},decode(e,t){let n=e instanceof b.default.Reader?e:new b.default.Reader(e),r=t===void 0?n.len:n.pos+t,i=Zn();for(;n.pos>>3){case 1:i.codeId=n.uint64();break;case 2:i.creator=n.string();break;case 3:i.admin=n.string();break;case 4:i.label=n.string();break;case 5:i.created=g.AbsoluteTxPosition.decode(n,n.uint32());break;case 6:i.ibcPortId=n.string();break;case 7:i.extension=Re.Any.decode(n,n.uint32());break;default:n.skipType(o&7);break}}return i},fromJSON(e){return{codeId:k(e.codeId)?S.default.fromValue(e.codeId):S.default.UZERO,creator:k(e.creator)?String(e.creator):"",admin:k(e.admin)?String(e.admin):"",label:k(e.label)?String(e.label):"",created:k(e.created)?g.AbsoluteTxPosition.fromJSON(e.created):void 0,ibcPortId:k(e.ibcPortId)?String(e.ibcPortId):"",extension:k(e.extension)?Re.Any.fromJSON(e.extension):void 0}},toJSON(e){let t={};return e.codeId!==void 0&&(t.codeId=(e.codeId||S.default.UZERO).toString()),e.creator!==void 0&&(t.creator=e.creator),e.admin!==void 0&&(t.admin=e.admin),e.label!==void 0&&(t.label=e.label),e.created!==void 0&&(t.created=e.created?g.AbsoluteTxPosition.toJSON(e.created):void 0),e.ibcPortId!==void 0&&(t.ibcPortId=e.ibcPortId),e.extension!==void 0&&(t.extension=e.extension?Re.Any.toJSON(e.extension):void 0),t},fromPartial(e){var t,n,r,i;let o=Zn();return o.codeId=e.codeId!==void 0&&e.codeId!==null?S.default.fromValue(e.codeId):S.default.UZERO,o.creator=(t=e.creator)!==null&&t!==void 0?t:"",o.admin=(n=e.admin)!==null&&n!==void 0?n:"",o.label=(r=e.label)!==null&&r!==void 0?r:"",o.created=e.created!==void 0&&e.created!==null?g.AbsoluteTxPosition.fromPartial(e.created):void 0,o.ibcPortId=(i=e.ibcPortId)!==null&&i!==void 0?i:"",o.extension=e.extension!==void 0&&e.extension!==null?Re.Any.fromPartial(e.extension):void 0,o}};function Wn(){return{operation:0,codeId:S.default.UZERO,updated:void 0,msg:new Uint8Array}}g.ContractCodeHistoryEntry={encode(e,t=b.default.Writer.create()){return e.operation!==0&&t.uint32(8).int32(e.operation),e.codeId.isZero()||t.uint32(16).uint64(e.codeId),e.updated!==void 0&&g.AbsoluteTxPosition.encode(e.updated,t.uint32(26).fork()).ldelim(),e.msg.length!==0&&t.uint32(34).bytes(e.msg),t},decode(e,t){let n=e instanceof b.default.Reader?e:new b.default.Reader(e),r=t===void 0?n.len:n.pos+t,i=Wn();for(;n.pos>>3){case 1:i.operation=n.int32();break;case 2:i.codeId=n.uint64();break;case 3:i.updated=g.AbsoluteTxPosition.decode(n,n.uint32());break;case 4:i.msg=n.bytes();break;default:n.skipType(o&7);break}}return i},fromJSON(e){return{operation:k(e.operation)?$n(e.operation):0,codeId:k(e.codeId)?S.default.fromValue(e.codeId):S.default.UZERO,updated:k(e.updated)?g.AbsoluteTxPosition.fromJSON(e.updated):void 0,msg:k(e.msg)?qe(e.msg):new Uint8Array}},toJSON(e){let t={};return e.operation!==void 0&&(t.operation=Xn(e.operation)),e.codeId!==void 0&&(t.codeId=(e.codeId||S.default.UZERO).toString()),e.updated!==void 0&&(t.updated=e.updated?g.AbsoluteTxPosition.toJSON(e.updated):void 0),e.msg!==void 0&&(t.msg=Le(e.msg!==void 0?e.msg:new Uint8Array)),t},fromPartial(e){var t,n;let r=Wn();return r.operation=(t=e.operation)!==null&&t!==void 0?t:0,r.codeId=e.codeId!==void 0&&e.codeId!==null?S.default.fromValue(e.codeId):S.default.UZERO,r.updated=e.updated!==void 0&&e.updated!==null?g.AbsoluteTxPosition.fromPartial(e.updated):void 0,r.msg=(n=e.msg)!==null&&n!==void 0?n:new Uint8Array,r}};function zn(){return{blockHeight:S.default.UZERO,txIndex:S.default.UZERO}}g.AbsoluteTxPosition={encode(e,t=b.default.Writer.create()){return e.blockHeight.isZero()||t.uint32(8).uint64(e.blockHeight),e.txIndex.isZero()||t.uint32(16).uint64(e.txIndex),t},decode(e,t){let n=e instanceof b.default.Reader?e:new b.default.Reader(e),r=t===void 0?n.len:n.pos+t,i=zn();for(;n.pos>>3){case 1:i.blockHeight=n.uint64();break;case 2:i.txIndex=n.uint64();break;default:n.skipType(o&7);break}}return i},fromJSON(e){return{blockHeight:k(e.blockHeight)?S.default.fromValue(e.blockHeight):S.default.UZERO,txIndex:k(e.txIndex)?S.default.fromValue(e.txIndex):S.default.UZERO}},toJSON(e){let t={};return e.blockHeight!==void 0&&(t.blockHeight=(e.blockHeight||S.default.UZERO).toString()),e.txIndex!==void 0&&(t.txIndex=(e.txIndex||S.default.UZERO).toString()),t},fromPartial(e){let t=zn();return t.blockHeight=e.blockHeight!==void 0&&e.blockHeight!==null?S.default.fromValue(e.blockHeight):S.default.UZERO,t.txIndex=e.txIndex!==void 0&&e.txIndex!==null?S.default.fromValue(e.txIndex):S.default.UZERO,t}};function Vn(){return{key:new Uint8Array,value:new Uint8Array}}g.Model={encode(e,t=b.default.Writer.create()){return e.key.length!==0&&t.uint32(10).bytes(e.key),e.value.length!==0&&t.uint32(18).bytes(e.value),t},decode(e,t){let n=e instanceof b.default.Reader?e:new b.default.Reader(e),r=t===void 0?n.len:n.pos+t,i=Vn();for(;n.pos>>3){case 1:i.key=n.bytes();break;case 2:i.value=n.bytes();break;default:n.skipType(o&7);break}}return i},fromJSON(e){return{key:k(e.key)?qe(e.key):new Uint8Array,value:k(e.value)?qe(e.value):new Uint8Array}},toJSON(e){let t={};return e.key!==void 0&&(t.key=Le(e.key!==void 0?e.key:new Uint8Array)),e.value!==void 0&&(t.value=Le(e.value!==void 0?e.value:new Uint8Array)),t},fromPartial(e){var t,n;let r=Vn();return r.key=(t=e.key)!==null&&t!==void 0?t:new Uint8Array,r.value=(n=e.value)!==null&&n!==void 0?n:new Uint8Array,r}};var se=(()=>{if(typeof se<"u")return se;if(typeof self<"u")return self;if(typeof window<"u")return window;if(typeof global<"u")return global;throw"Unable to locate global object"})();function qe(e){if(se.Buffer)return Uint8Array.from(se.Buffer.from(e,"base64"));{let t=se.atob(e),n=new Uint8Array(t.length);for(let r=0;r{t.push(String.fromCharCode(n))}),se.btoa(t.join(""))}}b.default.util.Long!==S.default&&(b.default.util.Long=S.default,b.default.configure());function k(e){return e!=null}});var fr=C(p=>{"use strict";var cr=p&&p.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(p,"__esModule",{value:!0});p.MsgClientImpl=p.MsgClearAdminResponse=p.MsgClearAdmin=p.MsgUpdateAdminResponse=p.MsgUpdateAdmin=p.MsgMigrateContractResponse=p.MsgMigrateContract=p.MsgExecuteContractResponse=p.MsgExecuteContract=p.MsgInstantiateContractResponse=p.MsgInstantiateContract=p.MsgStoreCodeResponse=p.MsgStoreCode=p.protobufPackage=void 0;var I=cr(ve()),m=cr(Be()),j=Tn(),Ne=Qn();p.protobufPackage="cosmwasm.wasm.v1";function Kn(){return{sender:"",wasmByteCode:new Uint8Array,instantiatePermission:void 0}}p.MsgStoreCode={encode(e,t=m.default.Writer.create()){return e.sender!==""&&t.uint32(10).string(e.sender),e.wasmByteCode.length!==0&&t.uint32(18).bytes(e.wasmByteCode),e.instantiatePermission!==void 0&&Ne.AccessConfig.encode(e.instantiatePermission,t.uint32(42).fork()).ldelim(),t},decode(e,t){let n=e instanceof m.default.Reader?e:new m.default.Reader(e),r=t===void 0?n.len:n.pos+t,i=Kn();for(;n.pos>>3){case 1:i.sender=n.string();break;case 2:i.wasmByteCode=n.bytes();break;case 5:i.instantiatePermission=Ne.AccessConfig.decode(n,n.uint32());break;default:n.skipType(o&7);break}}return i},fromJSON(e){return{sender:v(e.sender)?String(e.sender):"",wasmByteCode:v(e.wasmByteCode)?le(e.wasmByteCode):new Uint8Array,instantiatePermission:v(e.instantiatePermission)?Ne.AccessConfig.fromJSON(e.instantiatePermission):void 0}},toJSON(e){let t={};return e.sender!==void 0&&(t.sender=e.sender),e.wasmByteCode!==void 0&&(t.wasmByteCode=he(e.wasmByteCode!==void 0?e.wasmByteCode:new Uint8Array)),e.instantiatePermission!==void 0&&(t.instantiatePermission=e.instantiatePermission?Ne.AccessConfig.toJSON(e.instantiatePermission):void 0),t},fromPartial(e){var t,n;let r=Kn();return r.sender=(t=e.sender)!==null&&t!==void 0?t:"",r.wasmByteCode=(n=e.wasmByteCode)!==null&&n!==void 0?n:new Uint8Array,r.instantiatePermission=e.instantiatePermission!==void 0&&e.instantiatePermission!==null?Ne.AccessConfig.fromPartial(e.instantiatePermission):void 0,r}};function jn(){return{codeId:I.default.UZERO}}p.MsgStoreCodeResponse={encode(e,t=m.default.Writer.create()){return e.codeId.isZero()||t.uint32(8).uint64(e.codeId),t},decode(e,t){let n=e instanceof m.default.Reader?e:new m.default.Reader(e),r=t===void 0?n.len:n.pos+t,i=jn();for(;n.pos>>3===1?i.codeId=n.uint64():n.skipType(o&7)}return i},fromJSON(e){return{codeId:v(e.codeId)?I.default.fromValue(e.codeId):I.default.UZERO}},toJSON(e){let t={};return e.codeId!==void 0&&(t.codeId=(e.codeId||I.default.UZERO).toString()),t},fromPartial(e){let t=jn();return t.codeId=e.codeId!==void 0&&e.codeId!==null?I.default.fromValue(e.codeId):I.default.UZERO,t}};function er(){return{sender:"",admin:"",codeId:I.default.UZERO,label:"",msg:new Uint8Array,funds:[]}}p.MsgInstantiateContract={encode(e,t=m.default.Writer.create()){e.sender!==""&&t.uint32(10).string(e.sender),e.admin!==""&&t.uint32(18).string(e.admin),e.codeId.isZero()||t.uint32(24).uint64(e.codeId),e.label!==""&&t.uint32(34).string(e.label),e.msg.length!==0&&t.uint32(42).bytes(e.msg);for(let n of e.funds)j.Coin.encode(n,t.uint32(50).fork()).ldelim();return t},decode(e,t){let n=e instanceof m.default.Reader?e:new m.default.Reader(e),r=t===void 0?n.len:n.pos+t,i=er();for(;n.pos>>3){case 1:i.sender=n.string();break;case 2:i.admin=n.string();break;case 3:i.codeId=n.uint64();break;case 4:i.label=n.string();break;case 5:i.msg=n.bytes();break;case 6:i.funds.push(j.Coin.decode(n,n.uint32()));break;default:n.skipType(o&7);break}}return i},fromJSON(e){return{sender:v(e.sender)?String(e.sender):"",admin:v(e.admin)?String(e.admin):"",codeId:v(e.codeId)?I.default.fromValue(e.codeId):I.default.UZERO,label:v(e.label)?String(e.label):"",msg:v(e.msg)?le(e.msg):new Uint8Array,funds:Array.isArray(e?.funds)?e.funds.map(t=>j.Coin.fromJSON(t)):[]}},toJSON(e){let t={};return e.sender!==void 0&&(t.sender=e.sender),e.admin!==void 0&&(t.admin=e.admin),e.codeId!==void 0&&(t.codeId=(e.codeId||I.default.UZERO).toString()),e.label!==void 0&&(t.label=e.label),e.msg!==void 0&&(t.msg=he(e.msg!==void 0?e.msg:new Uint8Array)),e.funds?t.funds=e.funds.map(n=>n?j.Coin.toJSON(n):void 0):t.funds=[],t},fromPartial(e){var t,n,r,i,o;let s=er();return s.sender=(t=e.sender)!==null&&t!==void 0?t:"",s.admin=(n=e.admin)!==null&&n!==void 0?n:"",s.codeId=e.codeId!==void 0&&e.codeId!==null?I.default.fromValue(e.codeId):I.default.UZERO,s.label=(r=e.label)!==null&&r!==void 0?r:"",s.msg=(i=e.msg)!==null&&i!==void 0?i:new Uint8Array,s.funds=((o=e.funds)===null||o===void 0?void 0:o.map(u=>j.Coin.fromPartial(u)))||[],s}};function tr(){return{address:"",data:new Uint8Array}}p.MsgInstantiateContractResponse={encode(e,t=m.default.Writer.create()){return e.address!==""&&t.uint32(10).string(e.address),e.data.length!==0&&t.uint32(18).bytes(e.data),t},decode(e,t){let n=e instanceof m.default.Reader?e:new m.default.Reader(e),r=t===void 0?n.len:n.pos+t,i=tr();for(;n.pos>>3){case 1:i.address=n.string();break;case 2:i.data=n.bytes();break;default:n.skipType(o&7);break}}return i},fromJSON(e){return{address:v(e.address)?String(e.address):"",data:v(e.data)?le(e.data):new Uint8Array}},toJSON(e){let t={};return e.address!==void 0&&(t.address=e.address),e.data!==void 0&&(t.data=he(e.data!==void 0?e.data:new Uint8Array)),t},fromPartial(e){var t,n;let r=tr();return r.address=(t=e.address)!==null&&t!==void 0?t:"",r.data=(n=e.data)!==null&&n!==void 0?n:new Uint8Array,r}};function nr(){return{sender:"",contract:"",msg:new Uint8Array,funds:[]}}p.MsgExecuteContract={encode(e,t=m.default.Writer.create()){e.sender!==""&&t.uint32(10).string(e.sender),e.contract!==""&&t.uint32(18).string(e.contract),e.msg.length!==0&&t.uint32(26).bytes(e.msg);for(let n of e.funds)j.Coin.encode(n,t.uint32(42).fork()).ldelim();return t},decode(e,t){let n=e instanceof m.default.Reader?e:new m.default.Reader(e),r=t===void 0?n.len:n.pos+t,i=nr();for(;n.pos>>3){case 1:i.sender=n.string();break;case 2:i.contract=n.string();break;case 3:i.msg=n.bytes();break;case 5:i.funds.push(j.Coin.decode(n,n.uint32()));break;default:n.skipType(o&7);break}}return i},fromJSON(e){return{sender:v(e.sender)?String(e.sender):"",contract:v(e.contract)?String(e.contract):"",msg:v(e.msg)?le(e.msg):new Uint8Array,funds:Array.isArray(e?.funds)?e.funds.map(t=>j.Coin.fromJSON(t)):[]}},toJSON(e){let t={};return e.sender!==void 0&&(t.sender=e.sender),e.contract!==void 0&&(t.contract=e.contract),e.msg!==void 0&&(t.msg=he(e.msg!==void 0?e.msg:new Uint8Array)),e.funds?t.funds=e.funds.map(n=>n?j.Coin.toJSON(n):void 0):t.funds=[],t},fromPartial(e){var t,n,r,i;let o=nr();return o.sender=(t=e.sender)!==null&&t!==void 0?t:"",o.contract=(n=e.contract)!==null&&n!==void 0?n:"",o.msg=(r=e.msg)!==null&&r!==void 0?r:new Uint8Array,o.funds=((i=e.funds)===null||i===void 0?void 0:i.map(s=>j.Coin.fromPartial(s)))||[],o}};function rr(){return{data:new Uint8Array}}p.MsgExecuteContractResponse={encode(e,t=m.default.Writer.create()){return e.data.length!==0&&t.uint32(10).bytes(e.data),t},decode(e,t){let n=e instanceof m.default.Reader?e:new m.default.Reader(e),r=t===void 0?n.len:n.pos+t,i=rr();for(;n.pos>>3===1?i.data=n.bytes():n.skipType(o&7)}return i},fromJSON(e){return{data:v(e.data)?le(e.data):new Uint8Array}},toJSON(e){let t={};return e.data!==void 0&&(t.data=he(e.data!==void 0?e.data:new Uint8Array)),t},fromPartial(e){var t;let n=rr();return n.data=(t=e.data)!==null&&t!==void 0?t:new Uint8Array,n}};function ir(){return{sender:"",contract:"",codeId:I.default.UZERO,msg:new Uint8Array}}p.MsgMigrateContract={encode(e,t=m.default.Writer.create()){return e.sender!==""&&t.uint32(10).string(e.sender),e.contract!==""&&t.uint32(18).string(e.contract),e.codeId.isZero()||t.uint32(24).uint64(e.codeId),e.msg.length!==0&&t.uint32(34).bytes(e.msg),t},decode(e,t){let n=e instanceof m.default.Reader?e:new m.default.Reader(e),r=t===void 0?n.len:n.pos+t,i=ir();for(;n.pos>>3){case 1:i.sender=n.string();break;case 2:i.contract=n.string();break;case 3:i.codeId=n.uint64();break;case 4:i.msg=n.bytes();break;default:n.skipType(o&7);break}}return i},fromJSON(e){return{sender:v(e.sender)?String(e.sender):"",contract:v(e.contract)?String(e.contract):"",codeId:v(e.codeId)?I.default.fromValue(e.codeId):I.default.UZERO,msg:v(e.msg)?le(e.msg):new Uint8Array}},toJSON(e){let t={};return e.sender!==void 0&&(t.sender=e.sender),e.contract!==void 0&&(t.contract=e.contract),e.codeId!==void 0&&(t.codeId=(e.codeId||I.default.UZERO).toString()),e.msg!==void 0&&(t.msg=he(e.msg!==void 0?e.msg:new Uint8Array)),t},fromPartial(e){var t,n,r;let i=ir();return i.sender=(t=e.sender)!==null&&t!==void 0?t:"",i.contract=(n=e.contract)!==null&&n!==void 0?n:"",i.codeId=e.codeId!==void 0&&e.codeId!==null?I.default.fromValue(e.codeId):I.default.UZERO,i.msg=(r=e.msg)!==null&&r!==void 0?r:new Uint8Array,i}};function or(){return{data:new Uint8Array}}p.MsgMigrateContractResponse={encode(e,t=m.default.Writer.create()){return e.data.length!==0&&t.uint32(10).bytes(e.data),t},decode(e,t){let n=e instanceof m.default.Reader?e:new m.default.Reader(e),r=t===void 0?n.len:n.pos+t,i=or();for(;n.pos>>3===1?i.data=n.bytes():n.skipType(o&7)}return i},fromJSON(e){return{data:v(e.data)?le(e.data):new Uint8Array}},toJSON(e){let t={};return e.data!==void 0&&(t.data=he(e.data!==void 0?e.data:new Uint8Array)),t},fromPartial(e){var t;let n=or();return n.data=(t=e.data)!==null&&t!==void 0?t:new Uint8Array,n}};function sr(){return{sender:"",newAdmin:"",contract:""}}p.MsgUpdateAdmin={encode(e,t=m.default.Writer.create()){return e.sender!==""&&t.uint32(10).string(e.sender),e.newAdmin!==""&&t.uint32(18).string(e.newAdmin),e.contract!==""&&t.uint32(26).string(e.contract),t},decode(e,t){let n=e instanceof m.default.Reader?e:new m.default.Reader(e),r=t===void 0?n.len:n.pos+t,i=sr();for(;n.pos>>3){case 1:i.sender=n.string();break;case 2:i.newAdmin=n.string();break;case 3:i.contract=n.string();break;default:n.skipType(o&7);break}}return i},fromJSON(e){return{sender:v(e.sender)?String(e.sender):"",newAdmin:v(e.newAdmin)?String(e.newAdmin):"",contract:v(e.contract)?String(e.contract):""}},toJSON(e){let t={};return e.sender!==void 0&&(t.sender=e.sender),e.newAdmin!==void 0&&(t.newAdmin=e.newAdmin),e.contract!==void 0&&(t.contract=e.contract),t},fromPartial(e){var t,n,r;let i=sr();return i.sender=(t=e.sender)!==null&&t!==void 0?t:"",i.newAdmin=(n=e.newAdmin)!==null&&n!==void 0?n:"",i.contract=(r=e.contract)!==null&&r!==void 0?r:"",i}};function ar(){return{}}p.MsgUpdateAdminResponse={encode(e,t=m.default.Writer.create()){return t},decode(e,t){let n=e instanceof m.default.Reader?e:new m.default.Reader(e),r=t===void 0?n.len:n.pos+t,i=ar();for(;n.pos>>3){default:n.skipType(o&7);break}}return i},fromJSON(e){return{}},toJSON(e){return{}},fromPartial(e){return ar()}};function dr(){return{sender:"",contract:""}}p.MsgClearAdmin={encode(e,t=m.default.Writer.create()){return e.sender!==""&&t.uint32(10).string(e.sender),e.contract!==""&&t.uint32(26).string(e.contract),t},decode(e,t){let n=e instanceof m.default.Reader?e:new m.default.Reader(e),r=t===void 0?n.len:n.pos+t,i=dr();for(;n.pos>>3){case 1:i.sender=n.string();break;case 3:i.contract=n.string();break;default:n.skipType(o&7);break}}return i},fromJSON(e){return{sender:v(e.sender)?String(e.sender):"",contract:v(e.contract)?String(e.contract):""}},toJSON(e){let t={};return e.sender!==void 0&&(t.sender=e.sender),e.contract!==void 0&&(t.contract=e.contract),t},fromPartial(e){var t,n;let r=dr();return r.sender=(t=e.sender)!==null&&t!==void 0?t:"",r.contract=(n=e.contract)!==null&&n!==void 0?n:"",r}};function ur(){return{}}p.MsgClearAdminResponse={encode(e,t=m.default.Writer.create()){return t},decode(e,t){let n=e instanceof m.default.Reader?e:new m.default.Reader(e),r=t===void 0?n.len:n.pos+t,i=ur();for(;n.pos>>3){default:n.skipType(o&7);break}}return i},fromJSON(e){return{}},toJSON(e){return{}},fromPartial(e){return ur()}};var ht=class{constructor(t){this.rpc=t,this.StoreCode=this.StoreCode.bind(this),this.InstantiateContract=this.InstantiateContract.bind(this),this.ExecuteContract=this.ExecuteContract.bind(this),this.MigrateContract=this.MigrateContract.bind(this),this.UpdateAdmin=this.UpdateAdmin.bind(this),this.ClearAdmin=this.ClearAdmin.bind(this)}StoreCode(t){let n=p.MsgStoreCode.encode(t).finish();return this.rpc.request("cosmwasm.wasm.v1.Msg","StoreCode",n).then(i=>p.MsgStoreCodeResponse.decode(new m.default.Reader(i)))}InstantiateContract(t){let n=p.MsgInstantiateContract.encode(t).finish();return this.rpc.request("cosmwasm.wasm.v1.Msg","InstantiateContract",n).then(i=>p.MsgInstantiateContractResponse.decode(new m.default.Reader(i)))}ExecuteContract(t){let n=p.MsgExecuteContract.encode(t).finish();return this.rpc.request("cosmwasm.wasm.v1.Msg","ExecuteContract",n).then(i=>p.MsgExecuteContractResponse.decode(new m.default.Reader(i)))}MigrateContract(t){let n=p.MsgMigrateContract.encode(t).finish();return this.rpc.request("cosmwasm.wasm.v1.Msg","MigrateContract",n).then(i=>p.MsgMigrateContractResponse.decode(new m.default.Reader(i)))}UpdateAdmin(t){let n=p.MsgUpdateAdmin.encode(t).finish();return this.rpc.request("cosmwasm.wasm.v1.Msg","UpdateAdmin",n).then(i=>p.MsgUpdateAdminResponse.decode(new m.default.Reader(i)))}ClearAdmin(t){let n=p.MsgClearAdmin.encode(t).finish();return this.rpc.request("cosmwasm.wasm.v1.Msg","ClearAdmin",n).then(i=>p.MsgClearAdminResponse.decode(new m.default.Reader(i)))}};p.MsgClientImpl=ht;var ae=(()=>{if(typeof ae<"u")return ae;if(typeof self<"u")return self;if(typeof window<"u")return window;if(typeof global<"u")return global;throw"Unable to locate global object"})();function le(e){if(ae.Buffer)return Uint8Array.from(ae.Buffer.from(e,"base64"));{let t=ae.atob(e),n=new Uint8Array(t.length);for(let r=0;r{t.push(String.fromCharCode(n))}),ae.btoa(t.join(""))}}m.default.util.Long!==I.default&&(m.default.util.Long=I.default,m.default.configure());function v(e){return e!=null}});var lr=C(Ae=>{"use strict";Object.defineProperty(Ae,"__esModule",{value:!0});Ae.fromAscii=Ae.toAscii=void 0;function Kr(e){return Uint8Array.from((n=>n.split("").map(r=>{let i=r.charCodeAt(0);if(i<32||i>126)throw new Error("Cannot encode character that is out of printable ASCII range: "+i);return i}))(e))}Ae.toAscii=Kr;function jr(e){return(n=>n.map(r=>{if(r<32||r>126)throw new Error("Cannot decode character that is out of printable ASCII range: "+r);return String.fromCharCode(r)}))(Array.from(e)).join("")}Ae.fromAscii=jr});var mr=C(Ze=>{"use strict";Ze.byteLength=ti;Ze.toByteArray=ri;Ze.fromByteArray=si;var ee=[],Z=[],ei=typeof Uint8Array<"u"?Uint8Array:Array,gt="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";for(ge=0,hr=gt.length;ge0)throw new Error("Invalid string. Length must be a multiple of 4");var n=e.indexOf("=");n===-1&&(n=t);var r=n===t?0:4-n%4;return[n,r]}function ti(e){var t=gr(e),n=t[0],r=t[1];return(n+r)*3/4-r}function ni(e,t,n){return(t+n)*3/4-n}function ri(e){var t,n=gr(e),r=n[0],i=n[1],o=new ei(ni(e,r,i)),s=0,u=i>0?r-4:r,a;for(a=0;a>16&255,o[s++]=t>>8&255,o[s++]=t&255;return i===2&&(t=Z[e.charCodeAt(a)]<<2|Z[e.charCodeAt(a+1)]>>4,o[s++]=t&255),i===1&&(t=Z[e.charCodeAt(a)]<<10|Z[e.charCodeAt(a+1)]<<4|Z[e.charCodeAt(a+2)]>>2,o[s++]=t>>8&255,o[s++]=t&255),o}function ii(e){return ee[e>>18&63]+ee[e>>12&63]+ee[e>>6&63]+ee[e&63]}function oi(e,t,n){for(var r,i=[],o=t;ou?u:s+o));return r===1?(t=e[n-1],i.push(ee[t>>2]+ee[t<<4&63]+"==")):r===2&&(t=(e[n-2]<<8)+e[n-1],i.push(ee[t>>10]+ee[t>>4&63]+ee[t<<2&63]+"=")),i.join("")}});var yr=C(W=>{"use strict";var ai=W&&W.__createBinding||(Object.create?(function(e,t,n,r){r===void 0&&(r=n);var i=Object.getOwnPropertyDescriptor(t,n);(!i||("get"in i?!t.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,i)}):(function(e,t,n,r){r===void 0&&(r=n),e[r]=t[n]})),di=W&&W.__setModuleDefault||(Object.create?(function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}):function(e,t){e.default=t}),ui=W&&W.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var n in e)n!=="default"&&Object.prototype.hasOwnProperty.call(e,n)&&ai(t,e,n);return di(t,e),t};Object.defineProperty(W,"__esModule",{value:!0});W.fromBase64=W.toBase64=void 0;var pr=ui(mr());function ci(e){return pr.fromByteArray(e)}W.toBase64=ci;function fi(e){if(!e.match(/^[a-zA-Z0-9+/]*={0,2}$/))throw new Error("Invalid base64 string format");return pr.toByteArray(e)}W.fromBase64=fi});var Er=C((io,Ar)=>{"use strict";var ze="qpzry9x8gf2tvdw0s3jn54khce6mua7l",mt={};for(xe=0;xe>25;return(e&33554431)<<5^-(t>>0&1)&996825010^-(t>>1&1)&642813549^-(t>>2&1)&513874426^-(t>>3&1)&1027748829^-(t>>4&1)&705979059}function _r(e){for(var t=1,n=0;n126)return"Invalid prefix ("+e+")";t=Ee(t)^r>>5}for(t=Ee(t),n=0;nn)throw new TypeError("Exceeds length limit");e=e.toLowerCase();var r=_r(e);if(typeof r=="string")throw new Error(r);for(var i=e+"1",o=0;o>5!==0)throw new Error("Non 5-bit word");r=Ee(r)^s,i+=ze.charAt(s)}for(o=0;o<6;++o)r=Ee(r);for(r^=1,o=0;o<6;++o){var u=r>>(5-o)*5&31;i+=ze.charAt(u)}return i}function Cr(e,t){if(t=t||90,e.length<8)return e+" too short";if(e.length>t)return"Exceeds length limit";var n=e.toLowerCase(),r=e.toUpperCase();if(e!==n&&e!==r)return"Mixed-case string "+e;e=n;var i=e.lastIndexOf("1");if(i===-1)return"No separator character for "+e;if(i===0)return"Missing prefix for "+e;var o=e.slice(0,i),s=e.slice(i+1);if(s.length<6)return"Data too short";var u=_r(o);if(typeof u=="string")return u;for(var a=[],d=0;d=s.length)&&a.push(y)}return u!==1?"Invalid checksum for "+e:{prefix:o,words:a}}function hi(){var e=Cr.apply(null,arguments);if(typeof e=="object")return e}function gi(e){var t=Cr.apply(null,arguments);if(typeof t=="object")return t;throw new Error(t)}function Ve(e,t,n,r){for(var i=0,o=0,s=(1<=n;)o-=n,u.push(i>>o&s);if(r)o>0&&u.push(i<=t)return"Excess padding";if(i<{"use strict";var Ci=R&&R.__createBinding||(Object.create?(function(e,t,n,r){r===void 0&&(r=n);var i=Object.getOwnPropertyDescriptor(t,n);(!i||("get"in i?!t.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,i)}):(function(e,t,n,r){r===void 0&&(r=n),e[r]=t[n]})),Ai=R&&R.__setModuleDefault||(Object.create?(function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}):function(e,t){e.default=t}),Ei=R&&R.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var n in e)n!=="default"&&Object.prototype.hasOwnProperty.call(e,n)&&Ci(t,e,n);return Ai(t,e),t};Object.defineProperty(R,"__esModule",{value:!0});R.Bech32=R.normalizeBech32=R.fromBech32=R.toBech32=void 0;var Ge=Ei(Er());function yt(e,t,n){return Ge.encode(e,Ge.toWords(t),n)}R.toBech32=yt;function _t(e,t=1/0){let n=Ge.decode(e,t);return{prefix:n.prefix,data:new Uint8Array(Ge.fromWords(n.words))}}R.fromBech32=_t;function bi(e){let{prefix:t,data:n}=_t(e);return yt(t,n)}R.normalizeBech32=bi;var pt=class{static encode(t,n,r){return yt(t,n,r)}static decode(t,n=1/0){return _t(t,n)}};R.Bech32=pt});var Or=C(be=>{"use strict";Object.defineProperty(be,"__esModule",{value:!0});be.fromHex=be.toHex=void 0;function Oi(e){let t="";for(let n of e)t+=("0"+n.toString(16)).slice(-2);return t}be.toHex=Oi;function wi(e){if(e.length%2!==0)throw new Error("hex string length must be a multiple of 2");let t=new Uint8Array(e.length/2);for(let n=0;n{"use strict";Object.defineProperty(we,"__esModule",{value:!0});we.toRfc3339=we.fromRfc3339=void 0;var Si=/^(\d{4})-(\d{2})-(\d{2})[T ](\d{2}):(\d{2}):(\d{2})(\.\d{1,9})?((?:[+-]\d{2}:\d{2})|Z)$/;function Oe(e,t=2){return e.toString().padStart(t,"0")}function vi(e){let t=Si.exec(e);if(!t)throw new Error("Date string is not in RFC3339 format");let n=+t[1],r=+t[2],i=+t[3],o=+t[4],s=+t[5],u=+t[6],a=t[7]?Math.floor(+t[7]*1e3):0,d,f,y;t[8]==="Z"?(d=1,f=0,y=0):(d=t[8].substring(0,1)==="-"?-1:1,f=+t[8].substring(1,3),y=+t[8].substring(4,6));let E=d*(f*60+y)*60,N=Date.UTC(n,r-1,i,o,s,u,a)-E*1e3;return new Date(N)}we.fromRfc3339=vi;function ki(e){let t=e.getUTCFullYear(),n=Oe(e.getUTCMonth()+1),r=Oe(e.getUTCDate()),i=Oe(e.getUTCHours()),o=Oe(e.getUTCMinutes()),s=Oe(e.getUTCSeconds()),u=Oe(e.getUTCMilliseconds(),3);return`${t}-${n}-${r}T${i}:${o}:${s}.${u}Z`}we.toRfc3339=ki});var Sr=C(Se=>{"use strict";Object.defineProperty(Se,"__esModule",{value:!0});Se.fromUtf8=Se.toUtf8=void 0;function Pi(e){return new TextEncoder().encode(e)}Se.toUtf8=Pi;function Ii(e,t=!1){let n=!t;return new TextDecoder("utf-8",{fatal:n}).decode(e)}Se.fromUtf8=Ii});var Rr=C(A=>{"use strict";Object.defineProperty(A,"__esModule",{value:!0});A.toUtf8=A.fromUtf8=A.toRfc3339=A.fromRfc3339=A.toHex=A.fromHex=A.toBech32=A.normalizeBech32=A.fromBech32=A.Bech32=A.toBase64=A.fromBase64=A.toAscii=A.fromAscii=void 0;var vr=lr();Object.defineProperty(A,"fromAscii",{enumerable:!0,get:function(){return vr.fromAscii}});Object.defineProperty(A,"toAscii",{enumerable:!0,get:function(){return vr.toAscii}});var kr=yr();Object.defineProperty(A,"fromBase64",{enumerable:!0,get:function(){return kr.fromBase64}});Object.defineProperty(A,"toBase64",{enumerable:!0,get:function(){return kr.toBase64}});var $e=br();Object.defineProperty(A,"Bech32",{enumerable:!0,get:function(){return $e.Bech32}});Object.defineProperty(A,"fromBech32",{enumerable:!0,get:function(){return $e.fromBech32}});Object.defineProperty(A,"normalizeBech32",{enumerable:!0,get:function(){return $e.normalizeBech32}});Object.defineProperty(A,"toBech32",{enumerable:!0,get:function(){return $e.toBech32}});var Pr=Or();Object.defineProperty(A,"fromHex",{enumerable:!0,get:function(){return Pr.fromHex}});Object.defineProperty(A,"toHex",{enumerable:!0,get:function(){return Pr.toHex}});var Ir=wr();Object.defineProperty(A,"fromRfc3339",{enumerable:!0,get:function(){return Ir.fromRfc3339}});Object.defineProperty(A,"toRfc3339",{enumerable:!0,get:function(){return Ir.toRfc3339}});var Br=Sr();Object.defineProperty(A,"fromUtf8",{enumerable:!0,get:function(){return Br.fromUtf8}});Object.defineProperty(A,"toUtf8",{enumerable:!0,get:function(){return Br.toUtf8}})});var Qe=class{constructor(t,n){h(this,"client");h(this,"contractAddress");h(this,"ownership",async()=>this.client.queryContractSmart(this.contractAddress,{ownership:{}}));h(this,"collection",async()=>this.client.queryContractSmart(this.contractAddress,{collection:{}}));h(this,"params",async()=>this.client.queryContractSmart(this.contractAddress,{params:{}}));h(this,"config",async()=>this.client.queryContractSmart(this.contractAddress,{config:{}}));h(this,"ask",async({tokenId:t})=>this.client.queryContractSmart(this.contractAddress,{ask:{token_id:t}}));h(this,"asks",async({limit:t,startAfter:n})=>this.client.queryContractSmart(this.contractAddress,{asks:{limit:t,start_after:n}}));h(this,"askCount",async()=>this.client.queryContractSmart(this.contractAddress,{ask_count:{}}));h(this,"asksBySeller",async({limit:t,seller:n,startAfter:r})=>this.client.queryContractSmart(this.contractAddress,{asks_by_seller:{limit:t,seller:n,start_after:r}}));h(this,"bid",async({bidder:t,tokenId:n})=>this.client.queryContractSmart(this.contractAddress,{bid:{bidder:t,token_id:n}}));h(this,"bidsByBidder",async({bidder:t,limit:n,startAfter:r})=>this.client.queryContractSmart(this.contractAddress,{bids_by_bidder:{bidder:t,limit:n,start_after:r}}));h(this,"bids",async({limit:t,startAfter:n,tokenId:r})=>this.client.queryContractSmart(this.contractAddress,{bids:{limit:t,start_after:n,token_id:r}}));h(this,"bidsSortedByPrice",async({limit:t,startAfter:n})=>this.client.queryContractSmart(this.contractAddress,{bids_sorted_by_price:{limit:t,start_after:n}}));h(this,"reverseBidsSortedByPrice",async({limit:t,startBefore:n})=>this.client.queryContractSmart(this.contractAddress,{reverse_bids_sorted_by_price:{limit:t,start_before:n}}));h(this,"bidsForSeller",async({limit:t,seller:n,startAfter:r})=>this.client.queryContractSmart(this.contractAddress,{bids_for_seller:{limit:t,seller:n,start_after:r}}));h(this,"highestBid",async({tokenId:t})=>this.client.queryContractSmart(this.contractAddress,{highest_bid:{token_id:t}}));h(this,"askHooks",async()=>this.client.queryContractSmart(this.contractAddress,{ask_hooks:{}}));h(this,"bidHooks",async()=>this.client.queryContractSmart(this.contractAddress,{bid_hooks:{}}));h(this,"saleHooks",async()=>this.client.queryContractSmart(this.contractAddress,{sale_hooks:{}}));h(this,"cooldown",async({tokenId:t})=>this.client.queryContractSmart(this.contractAddress,{cooldown:{token_id:t}}));this.client=t,this.contractAddress=n,this.ownership=this.ownership.bind(this),this.collection=this.collection.bind(this),this.params=this.params.bind(this),this.config=this.config.bind(this),this.ask=this.ask.bind(this),this.asks=this.asks.bind(this),this.askCount=this.askCount.bind(this),this.asksBySeller=this.asksBySeller.bind(this),this.bid=this.bid.bind(this),this.bidsByBidder=this.bidsByBidder.bind(this),this.bids=this.bids.bind(this),this.bidsSortedByPrice=this.bidsSortedByPrice.bind(this),this.reverseBidsSortedByPrice=this.reverseBidsSortedByPrice.bind(this),this.bidsForSeller=this.bidsForSeller.bind(this),this.highestBid=this.highestBid.bind(this),this.askHooks=this.askHooks.bind(this),this.bidHooks=this.bidHooks.bind(this),this.saleHooks=this.saleHooks.bind(this),this.cooldown=this.cooldown.bind(this)}},At=class extends Qe{constructor(n,r,i){super(n,i);h(this,"client");h(this,"sender");h(this,"contractAddress");h(this,"mintAndList",async({account:n},r="auto",i,o)=>await this.client.execute(this.sender,this.contractAddress,{mint_and_list:{account:n}},r,i,o));h(this,"pause",async({pause:n},r="auto",i,o)=>await this.client.execute(this.sender,this.contractAddress,{pause:{pause:n}},r,i,o));h(this,"updateConfig",async({config:n},r="auto",i,o)=>await this.client.execute(this.sender,this.contractAddress,{update_config:{config:n}},r,i,o));h(this,"removeAsk",async({tokenId:n},r="auto",i,o)=>await this.client.execute(this.sender,this.contractAddress,{remove_ask:{token_id:n}},r,i,o));h(this,"updateAsk",async({seller:n,tokenId:r},i="auto",o,s)=>await this.client.execute(this.sender,this.contractAddress,{update_ask:{seller:n,token_id:r}},i,o,s));h(this,"setBid",async({tokenId:n},r="auto",i,o)=>await this.client.execute(this.sender,this.contractAddress,{set_bid:{token_id:n}},r,i,o));h(this,"removeBid",async({tokenId:n},r="auto",i,o)=>await this.client.execute(this.sender,this.contractAddress,{remove_bid:{token_id:n}},r,i,o));h(this,"removeBids",async({tokenId:n},r="auto",i,o)=>await this.client.execute(this.sender,this.contractAddress,{remove_bids:{token_id:n}},r,i,o));h(this,"checkedRemoveBids",async({tokenId:n},r="auto",i,o)=>await this.client.execute(this.sender,this.contractAddress,{checked_remove_bids:{token_id:n}},r,i,o));h(this,"acceptBid",async({bidder:n,tokenId:r},i="auto",o,s)=>await this.client.execute(this.sender,this.contractAddress,{accept_bid:{bidder:n,token_id:r}},i,o,s));h(this,"finalizeBid",async({tokenId:n},r="auto",i,o)=>await this.client.execute(this.sender,this.contractAddress,{finalize_bid:{token_id:n}},r,i,o));h(this,"cancelCooldown",async({tokenId:n},r="auto",i,o)=>await this.client.execute(this.sender,this.contractAddress,{cancel_cooldown:{token_id:n}},r,i,o));h(this,"manageHooks",async(n="auto",r,i)=>await this.client.execute(this.sender,this.contractAddress,{manage_hooks:{}},n,r,i));h(this,"updateOwnership",async(n="auto",r,i)=>await this.client.execute(this.sender,this.contractAddress,{update_ownership:{}},n,r,i));this.client=n,this.sender=r,this.contractAddress=i,this.mintAndList=this.mintAndList.bind(this),this.pause=this.pause.bind(this),this.updateConfig=this.updateConfig.bind(this),this.removeAsk=this.removeAsk.bind(this),this.updateAsk=this.updateAsk.bind(this),this.setBid=this.setBid.bind(this),this.removeBid=this.removeBid.bind(this),this.removeBids=this.removeBids.bind(this),this.checkedRemoveBids=this.checkedRemoveBids.bind(this),this.acceptBid=this.acceptBid.bind(this),this.finalizeBid=this.finalizeBid.bind(this),this.cancelCooldown=this.cancelCooldown.bind(this),this.manageHooks=this.manageHooks.bind(this),this.updateOwnership=this.updateOwnership.bind(this)}};var T=Ct(fr()),F=Ct(Rr());var Nr=class{constructor(t,n){h(this,"sender");h(this,"contractAddress");h(this,"mintAndList",({account:t},n)=>({typeUrl:"/cosmwasm.wasm.v1.MsgExecuteContract",value:T.MsgExecuteContract.fromPartial({sender:this.sender,contract:this.contractAddress,msg:(0,F.toUtf8)(JSON.stringify({mint_and_list:{account:t}})),funds:n})}));h(this,"pause",({pause:t},n)=>({typeUrl:"/cosmwasm.wasm.v1.MsgExecuteContract",value:T.MsgExecuteContract.fromPartial({sender:this.sender,contract:this.contractAddress,msg:(0,F.toUtf8)(JSON.stringify({pause:{pause:t}})),funds:n})}));h(this,"updateConfig",({config:t},n)=>({typeUrl:"/cosmwasm.wasm.v1.MsgExecuteContract",value:T.MsgExecuteContract.fromPartial({sender:this.sender,contract:this.contractAddress,msg:(0,F.toUtf8)(JSON.stringify({update_config:{config:t}})),funds:n})}));h(this,"removeAsk",({tokenId:t},n)=>({typeUrl:"/cosmwasm.wasm.v1.MsgExecuteContract",value:T.MsgExecuteContract.fromPartial({sender:this.sender,contract:this.contractAddress,msg:(0,F.toUtf8)(JSON.stringify({remove_ask:{token_id:t}})),funds:n})}));h(this,"updateAsk",({seller:t,tokenId:n},r)=>({typeUrl:"/cosmwasm.wasm.v1.MsgExecuteContract",value:T.MsgExecuteContract.fromPartial({sender:this.sender,contract:this.contractAddress,msg:(0,F.toUtf8)(JSON.stringify({update_ask:{seller:t,token_id:n}})),funds:r})}));h(this,"setBid",({tokenId:t},n)=>({typeUrl:"/cosmwasm.wasm.v1.MsgExecuteContract",value:T.MsgExecuteContract.fromPartial({sender:this.sender,contract:this.contractAddress,msg:(0,F.toUtf8)(JSON.stringify({set_bid:{token_id:t}})),funds:n})}));h(this,"removeBid",({tokenId:t},n)=>({typeUrl:"/cosmwasm.wasm.v1.MsgExecuteContract",value:T.MsgExecuteContract.fromPartial({sender:this.sender,contract:this.contractAddress,msg:(0,F.toUtf8)(JSON.stringify({remove_bid:{token_id:t}})),funds:n})}));h(this,"removeBids",({tokenId:t},n)=>({typeUrl:"/cosmwasm.wasm.v1.MsgExecuteContract",value:T.MsgExecuteContract.fromPartial({sender:this.sender,contract:this.contractAddress,msg:(0,F.toUtf8)(JSON.stringify({remove_bids:{token_id:t}})),funds:n})}));h(this,"checkedRemoveBids",({tokenId:t},n)=>({typeUrl:"/cosmwasm.wasm.v1.MsgExecuteContract",value:T.MsgExecuteContract.fromPartial({sender:this.sender,contract:this.contractAddress,msg:(0,F.toUtf8)(JSON.stringify({checked_remove_bids:{token_id:t}})),funds:n})}));h(this,"acceptBid",({bidder:t,tokenId:n},r)=>({typeUrl:"/cosmwasm.wasm.v1.MsgExecuteContract",value:T.MsgExecuteContract.fromPartial({sender:this.sender,contract:this.contractAddress,msg:(0,F.toUtf8)(JSON.stringify({accept_bid:{bidder:t,token_id:n}})),funds:r})}));h(this,"finalizeBid",({tokenId:t},n)=>({typeUrl:"/cosmwasm.wasm.v1.MsgExecuteContract",value:T.MsgExecuteContract.fromPartial({sender:this.sender,contract:this.contractAddress,msg:(0,F.toUtf8)(JSON.stringify({finalize_bid:{token_id:t}})),funds:n})}));h(this,"cancelCooldown",({tokenId:t},n)=>({typeUrl:"/cosmwasm.wasm.v1.MsgExecuteContract",value:T.MsgExecuteContract.fromPartial({sender:this.sender,contract:this.contractAddress,msg:(0,F.toUtf8)(JSON.stringify({cancel_cooldown:{token_id:t}})),funds:n})}));h(this,"manageHooks",t=>({typeUrl:"/cosmwasm.wasm.v1.MsgExecuteContract",value:T.MsgExecuteContract.fromPartial({sender:this.sender,contract:this.contractAddress,msg:(0,F.toUtf8)(JSON.stringify({manage_hooks:{}})),funds:t})}));h(this,"updateOwnership",t=>({typeUrl:"/cosmwasm.wasm.v1.MsgExecuteContract",value:T.MsgExecuteContract.fromPartial({sender:this.sender,contract:this.contractAddress,msg:(0,F.toUtf8)(JSON.stringify({update_ownership:{}})),funds:t})}));this.sender=t,this.contractAddress=n,this.mintAndList=this.mintAndList.bind(this),this.pause=this.pause.bind(this),this.updateConfig=this.updateConfig.bind(this),this.removeAsk=this.removeAsk.bind(this),this.updateAsk=this.updateAsk.bind(this),this.setBid=this.setBid.bind(this),this.removeBid=this.removeBid.bind(this),this.removeBids=this.removeBids.bind(this),this.checkedRemoveBids=this.checkedRemoveBids.bind(this),this.acceptBid=this.acceptBid.bind(this),this.finalizeBid=this.finalizeBid.bind(this),this.cancelCooldown=this.cancelCooldown.bind(this),this.manageHooks=this.manageHooks.bind(this),this.updateOwnership=this.updateOwnership.bind(this)}};export{At as AccountMinterClient,Nr as AccountMinterMessageComposer,Qe as AccountMinterQueryClient}; +//# sourceMappingURL=account-minter.js.map diff --git a/lib/account-minter.js.map b/lib/account-minter.js.map new file mode 100644 index 0000000..3262e5a --- /dev/null +++ b/lib/account-minter.js.map @@ -0,0 +1,7 @@ +{ + "version": 3, + "sources": ["../../node_modules/.pnpm/long@4.0.0/node_modules/long/src/long.js", "../../node_modules/.pnpm/@protobufjs+aspromise@1.1.2/node_modules/@protobufjs/aspromise/index.js", "../../node_modules/.pnpm/@protobufjs+base64@1.1.2/node_modules/@protobufjs/base64/index.js", "../../node_modules/.pnpm/@protobufjs+eventemitter@1.1.0/node_modules/@protobufjs/eventemitter/index.js", "../../node_modules/.pnpm/@protobufjs+float@1.0.2/node_modules/@protobufjs/float/index.js", "../../node_modules/.pnpm/@protobufjs+inquire@1.1.0/node_modules/@protobufjs/inquire/index.js", "../../node_modules/.pnpm/@protobufjs+utf8@1.1.0/node_modules/@protobufjs/utf8/index.js", "../../node_modules/.pnpm/@protobufjs+pool@1.1.0/node_modules/@protobufjs/pool/index.js", "../../node_modules/.pnpm/protobufjs@6.11.4/node_modules/protobufjs/src/util/longbits.js", "../../node_modules/.pnpm/protobufjs@6.11.4/node_modules/protobufjs/src/util/minimal.js", "../../node_modules/.pnpm/protobufjs@6.11.4/node_modules/protobufjs/src/writer.js", "../../node_modules/.pnpm/protobufjs@6.11.4/node_modules/protobufjs/src/writer_buffer.js", "../../node_modules/.pnpm/protobufjs@6.11.4/node_modules/protobufjs/src/reader.js", "../../node_modules/.pnpm/protobufjs@6.11.4/node_modules/protobufjs/src/reader_buffer.js", "../../node_modules/.pnpm/protobufjs@6.11.4/node_modules/protobufjs/src/rpc/service.js", "../../node_modules/.pnpm/protobufjs@6.11.4/node_modules/protobufjs/src/rpc.js", "../../node_modules/.pnpm/protobufjs@6.11.4/node_modules/protobufjs/src/roots.js", "../../node_modules/.pnpm/protobufjs@6.11.4/node_modules/protobufjs/src/index-minimal.js", "../../node_modules/.pnpm/protobufjs@6.11.4/node_modules/protobufjs/minimal.js", "../../node_modules/.pnpm/cosmjs-types@0.5.2/node_modules/src/cosmos/base/v1beta1/coin.ts", "../../node_modules/.pnpm/cosmjs-types@0.5.2/node_modules/src/google/protobuf/any.ts", "../../node_modules/.pnpm/cosmjs-types@0.5.2/node_modules/src/cosmwasm/wasm/v1/types.ts", "../../node_modules/.pnpm/cosmjs-types@0.5.2/node_modules/src/cosmwasm/wasm/v1/tx.ts", "../../node_modules/.pnpm/@cosmjs+encoding@0.29.4/node_modules/@cosmjs/encoding/src/ascii.ts", "../../node_modules/.pnpm/base64-js@1.5.1/node_modules/base64-js/index.js", "../../node_modules/.pnpm/@cosmjs+encoding@0.29.4/node_modules/@cosmjs/encoding/src/base64.ts", "../../node_modules/.pnpm/bech32@1.1.4/node_modules/bech32/index.js", "../../node_modules/.pnpm/@cosmjs+encoding@0.29.4/node_modules/@cosmjs/encoding/src/bech32.ts", "../../node_modules/.pnpm/@cosmjs+encoding@0.29.4/node_modules/@cosmjs/encoding/src/hex.ts", "../../node_modules/.pnpm/@cosmjs+encoding@0.29.4/node_modules/@cosmjs/encoding/src/rfc3339.ts", "../../node_modules/.pnpm/@cosmjs+encoding@0.29.4/node_modules/@cosmjs/encoding/src/utf8.ts", "../../node_modules/.pnpm/@cosmjs+encoding@0.29.4/node_modules/@cosmjs/encoding/src/index.ts", "../../src/AccountMinter.client.ts", "../../src/AccountMinter.message-composer.ts"], + "sourcesContent": ["module.exports = Long;\r\n\r\n/**\r\n * wasm optimizations, to do native i64 multiplication and divide\r\n */\r\nvar wasm = null;\r\n\r\ntry {\r\n wasm = new WebAssembly.Instance(new WebAssembly.Module(new Uint8Array([\r\n 0, 97, 115, 109, 1, 0, 0, 0, 1, 13, 2, 96, 0, 1, 127, 96, 4, 127, 127, 127, 127, 1, 127, 3, 7, 6, 0, 1, 1, 1, 1, 1, 6, 6, 1, 127, 1, 65, 0, 11, 7, 50, 6, 3, 109, 117, 108, 0, 1, 5, 100, 105, 118, 95, 115, 0, 2, 5, 100, 105, 118, 95, 117, 0, 3, 5, 114, 101, 109, 95, 115, 0, 4, 5, 114, 101, 109, 95, 117, 0, 5, 8, 103, 101, 116, 95, 104, 105, 103, 104, 0, 0, 10, 191, 1, 6, 4, 0, 35, 0, 11, 36, 1, 1, 126, 32, 0, 173, 32, 1, 173, 66, 32, 134, 132, 32, 2, 173, 32, 3, 173, 66, 32, 134, 132, 126, 34, 4, 66, 32, 135, 167, 36, 0, 32, 4, 167, 11, 36, 1, 1, 126, 32, 0, 173, 32, 1, 173, 66, 32, 134, 132, 32, 2, 173, 32, 3, 173, 66, 32, 134, 132, 127, 34, 4, 66, 32, 135, 167, 36, 0, 32, 4, 167, 11, 36, 1, 1, 126, 32, 0, 173, 32, 1, 173, 66, 32, 134, 132, 32, 2, 173, 32, 3, 173, 66, 32, 134, 132, 128, 34, 4, 66, 32, 135, 167, 36, 0, 32, 4, 167, 11, 36, 1, 1, 126, 32, 0, 173, 32, 1, 173, 66, 32, 134, 132, 32, 2, 173, 32, 3, 173, 66, 32, 134, 132, 129, 34, 4, 66, 32, 135, 167, 36, 0, 32, 4, 167, 11, 36, 1, 1, 126, 32, 0, 173, 32, 1, 173, 66, 32, 134, 132, 32, 2, 173, 32, 3, 173, 66, 32, 134, 132, 130, 34, 4, 66, 32, 135, 167, 36, 0, 32, 4, 167, 11\r\n ])), {}).exports;\r\n} catch (e) {\r\n // no wasm support :(\r\n}\r\n\r\n/**\r\n * Constructs a 64 bit two's-complement integer, given its low and high 32 bit values as *signed* integers.\r\n * See the from* functions below for more convenient ways of constructing Longs.\r\n * @exports Long\r\n * @class A Long class for representing a 64 bit two's-complement integer value.\r\n * @param {number} low The low (signed) 32 bits of the long\r\n * @param {number} high The high (signed) 32 bits of the long\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\r\n * @constructor\r\n */\r\nfunction Long(low, high, unsigned) {\r\n\r\n /**\r\n * The low 32 bits as a signed value.\r\n * @type {number}\r\n */\r\n this.low = low | 0;\r\n\r\n /**\r\n * The high 32 bits as a signed value.\r\n * @type {number}\r\n */\r\n this.high = high | 0;\r\n\r\n /**\r\n * Whether unsigned or not.\r\n * @type {boolean}\r\n */\r\n this.unsigned = !!unsigned;\r\n}\r\n\r\n// The internal representation of a long is the two given signed, 32-bit values.\r\n// We use 32-bit pieces because these are the size of integers on which\r\n// Javascript performs bit-operations. For operations like addition and\r\n// multiplication, we split each number into 16 bit pieces, which can easily be\r\n// multiplied within Javascript's floating-point representation without overflow\r\n// or change in sign.\r\n//\r\n// In the algorithms below, we frequently reduce the negative case to the\r\n// positive case by negating the input(s) and then post-processing the result.\r\n// Note that we must ALWAYS check specially whether those values are MIN_VALUE\r\n// (-2^63) because -MIN_VALUE == MIN_VALUE (since 2^63 cannot be represented as\r\n// a positive number, it overflows back into a negative). Not handling this\r\n// case would often result in infinite recursion.\r\n//\r\n// Common constant values ZERO, ONE, NEG_ONE, etc. are defined below the from*\r\n// methods on which they depend.\r\n\r\n/**\r\n * An indicator used to reliably determine if an object is a Long or not.\r\n * @type {boolean}\r\n * @const\r\n * @private\r\n */\r\nLong.prototype.__isLong__;\r\n\r\nObject.defineProperty(Long.prototype, \"__isLong__\", { value: true });\r\n\r\n/**\r\n * @function\r\n * @param {*} obj Object\r\n * @returns {boolean}\r\n * @inner\r\n */\r\nfunction isLong(obj) {\r\n return (obj && obj[\"__isLong__\"]) === true;\r\n}\r\n\r\n/**\r\n * Tests if the specified object is a Long.\r\n * @function\r\n * @param {*} obj Object\r\n * @returns {boolean}\r\n */\r\nLong.isLong = isLong;\r\n\r\n/**\r\n * A cache of the Long representations of small integer values.\r\n * @type {!Object}\r\n * @inner\r\n */\r\nvar INT_CACHE = {};\r\n\r\n/**\r\n * A cache of the Long representations of small unsigned integer values.\r\n * @type {!Object}\r\n * @inner\r\n */\r\nvar UINT_CACHE = {};\r\n\r\n/**\r\n * @param {number} value\r\n * @param {boolean=} unsigned\r\n * @returns {!Long}\r\n * @inner\r\n */\r\nfunction fromInt(value, unsigned) {\r\n var obj, cachedObj, cache;\r\n if (unsigned) {\r\n value >>>= 0;\r\n if (cache = (0 <= value && value < 256)) {\r\n cachedObj = UINT_CACHE[value];\r\n if (cachedObj)\r\n return cachedObj;\r\n }\r\n obj = fromBits(value, (value | 0) < 0 ? -1 : 0, true);\r\n if (cache)\r\n UINT_CACHE[value] = obj;\r\n return obj;\r\n } else {\r\n value |= 0;\r\n if (cache = (-128 <= value && value < 128)) {\r\n cachedObj = INT_CACHE[value];\r\n if (cachedObj)\r\n return cachedObj;\r\n }\r\n obj = fromBits(value, value < 0 ? -1 : 0, false);\r\n if (cache)\r\n INT_CACHE[value] = obj;\r\n return obj;\r\n }\r\n}\r\n\r\n/**\r\n * Returns a Long representing the given 32 bit integer value.\r\n * @function\r\n * @param {number} value The 32 bit integer in question\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\r\n * @returns {!Long} The corresponding Long value\r\n */\r\nLong.fromInt = fromInt;\r\n\r\n/**\r\n * @param {number} value\r\n * @param {boolean=} unsigned\r\n * @returns {!Long}\r\n * @inner\r\n */\r\nfunction fromNumber(value, unsigned) {\r\n if (isNaN(value))\r\n return unsigned ? UZERO : ZERO;\r\n if (unsigned) {\r\n if (value < 0)\r\n return UZERO;\r\n if (value >= TWO_PWR_64_DBL)\r\n return MAX_UNSIGNED_VALUE;\r\n } else {\r\n if (value <= -TWO_PWR_63_DBL)\r\n return MIN_VALUE;\r\n if (value + 1 >= TWO_PWR_63_DBL)\r\n return MAX_VALUE;\r\n }\r\n if (value < 0)\r\n return fromNumber(-value, unsigned).neg();\r\n return fromBits((value % TWO_PWR_32_DBL) | 0, (value / TWO_PWR_32_DBL) | 0, unsigned);\r\n}\r\n\r\n/**\r\n * Returns a Long representing the given value, provided that it is a finite number. Otherwise, zero is returned.\r\n * @function\r\n * @param {number} value The number in question\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\r\n * @returns {!Long} The corresponding Long value\r\n */\r\nLong.fromNumber = fromNumber;\r\n\r\n/**\r\n * @param {number} lowBits\r\n * @param {number} highBits\r\n * @param {boolean=} unsigned\r\n * @returns {!Long}\r\n * @inner\r\n */\r\nfunction fromBits(lowBits, highBits, unsigned) {\r\n return new Long(lowBits, highBits, unsigned);\r\n}\r\n\r\n/**\r\n * Returns a Long representing the 64 bit integer that comes by concatenating the given low and high bits. Each is\r\n * assumed to use 32 bits.\r\n * @function\r\n * @param {number} lowBits The low 32 bits\r\n * @param {number} highBits The high 32 bits\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\r\n * @returns {!Long} The corresponding Long value\r\n */\r\nLong.fromBits = fromBits;\r\n\r\n/**\r\n * @function\r\n * @param {number} base\r\n * @param {number} exponent\r\n * @returns {number}\r\n * @inner\r\n */\r\nvar pow_dbl = Math.pow; // Used 4 times (4*8 to 15+4)\r\n\r\n/**\r\n * @param {string} str\r\n * @param {(boolean|number)=} unsigned\r\n * @param {number=} radix\r\n * @returns {!Long}\r\n * @inner\r\n */\r\nfunction fromString(str, unsigned, radix) {\r\n if (str.length === 0)\r\n throw Error('empty string');\r\n if (str === \"NaN\" || str === \"Infinity\" || str === \"+Infinity\" || str === \"-Infinity\")\r\n return ZERO;\r\n if (typeof unsigned === 'number') {\r\n // For goog.math.long compatibility\r\n radix = unsigned,\r\n unsigned = false;\r\n } else {\r\n unsigned = !! unsigned;\r\n }\r\n radix = radix || 10;\r\n if (radix < 2 || 36 < radix)\r\n throw RangeError('radix');\r\n\r\n var p;\r\n if ((p = str.indexOf('-')) > 0)\r\n throw Error('interior hyphen');\r\n else if (p === 0) {\r\n return fromString(str.substring(1), unsigned, radix).neg();\r\n }\r\n\r\n // Do several (8) digits each time through the loop, so as to\r\n // minimize the calls to the very expensive emulated div.\r\n var radixToPower = fromNumber(pow_dbl(radix, 8));\r\n\r\n var result = ZERO;\r\n for (var i = 0; i < str.length; i += 8) {\r\n var size = Math.min(8, str.length - i),\r\n value = parseInt(str.substring(i, i + size), radix);\r\n if (size < 8) {\r\n var power = fromNumber(pow_dbl(radix, size));\r\n result = result.mul(power).add(fromNumber(value));\r\n } else {\r\n result = result.mul(radixToPower);\r\n result = result.add(fromNumber(value));\r\n }\r\n }\r\n result.unsigned = unsigned;\r\n return result;\r\n}\r\n\r\n/**\r\n * Returns a Long representation of the given string, written using the specified radix.\r\n * @function\r\n * @param {string} str The textual representation of the Long\r\n * @param {(boolean|number)=} unsigned Whether unsigned or not, defaults to signed\r\n * @param {number=} radix The radix in which the text is written (2-36), defaults to 10\r\n * @returns {!Long} The corresponding Long value\r\n */\r\nLong.fromString = fromString;\r\n\r\n/**\r\n * @function\r\n * @param {!Long|number|string|!{low: number, high: number, unsigned: boolean}} val\r\n * @param {boolean=} unsigned\r\n * @returns {!Long}\r\n * @inner\r\n */\r\nfunction fromValue(val, unsigned) {\r\n if (typeof val === 'number')\r\n return fromNumber(val, unsigned);\r\n if (typeof val === 'string')\r\n return fromString(val, unsigned);\r\n // Throws for non-objects, converts non-instanceof Long:\r\n return fromBits(val.low, val.high, typeof unsigned === 'boolean' ? unsigned : val.unsigned);\r\n}\r\n\r\n/**\r\n * Converts the specified value to a Long using the appropriate from* function for its type.\r\n * @function\r\n * @param {!Long|number|string|!{low: number, high: number, unsigned: boolean}} val Value\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\r\n * @returns {!Long}\r\n */\r\nLong.fromValue = fromValue;\r\n\r\n// NOTE: the compiler should inline these constant values below and then remove these variables, so there should be\r\n// no runtime penalty for these.\r\n\r\n/**\r\n * @type {number}\r\n * @const\r\n * @inner\r\n */\r\nvar TWO_PWR_16_DBL = 1 << 16;\r\n\r\n/**\r\n * @type {number}\r\n * @const\r\n * @inner\r\n */\r\nvar TWO_PWR_24_DBL = 1 << 24;\r\n\r\n/**\r\n * @type {number}\r\n * @const\r\n * @inner\r\n */\r\nvar TWO_PWR_32_DBL = TWO_PWR_16_DBL * TWO_PWR_16_DBL;\r\n\r\n/**\r\n * @type {number}\r\n * @const\r\n * @inner\r\n */\r\nvar TWO_PWR_64_DBL = TWO_PWR_32_DBL * TWO_PWR_32_DBL;\r\n\r\n/**\r\n * @type {number}\r\n * @const\r\n * @inner\r\n */\r\nvar TWO_PWR_63_DBL = TWO_PWR_64_DBL / 2;\r\n\r\n/**\r\n * @type {!Long}\r\n * @const\r\n * @inner\r\n */\r\nvar TWO_PWR_24 = fromInt(TWO_PWR_24_DBL);\r\n\r\n/**\r\n * @type {!Long}\r\n * @inner\r\n */\r\nvar ZERO = fromInt(0);\r\n\r\n/**\r\n * Signed zero.\r\n * @type {!Long}\r\n */\r\nLong.ZERO = ZERO;\r\n\r\n/**\r\n * @type {!Long}\r\n * @inner\r\n */\r\nvar UZERO = fromInt(0, true);\r\n\r\n/**\r\n * Unsigned zero.\r\n * @type {!Long}\r\n */\r\nLong.UZERO = UZERO;\r\n\r\n/**\r\n * @type {!Long}\r\n * @inner\r\n */\r\nvar ONE = fromInt(1);\r\n\r\n/**\r\n * Signed one.\r\n * @type {!Long}\r\n */\r\nLong.ONE = ONE;\r\n\r\n/**\r\n * @type {!Long}\r\n * @inner\r\n */\r\nvar UONE = fromInt(1, true);\r\n\r\n/**\r\n * Unsigned one.\r\n * @type {!Long}\r\n */\r\nLong.UONE = UONE;\r\n\r\n/**\r\n * @type {!Long}\r\n * @inner\r\n */\r\nvar NEG_ONE = fromInt(-1);\r\n\r\n/**\r\n * Signed negative one.\r\n * @type {!Long}\r\n */\r\nLong.NEG_ONE = NEG_ONE;\r\n\r\n/**\r\n * @type {!Long}\r\n * @inner\r\n */\r\nvar MAX_VALUE = fromBits(0xFFFFFFFF|0, 0x7FFFFFFF|0, false);\r\n\r\n/**\r\n * Maximum signed value.\r\n * @type {!Long}\r\n */\r\nLong.MAX_VALUE = MAX_VALUE;\r\n\r\n/**\r\n * @type {!Long}\r\n * @inner\r\n */\r\nvar MAX_UNSIGNED_VALUE = fromBits(0xFFFFFFFF|0, 0xFFFFFFFF|0, true);\r\n\r\n/**\r\n * Maximum unsigned value.\r\n * @type {!Long}\r\n */\r\nLong.MAX_UNSIGNED_VALUE = MAX_UNSIGNED_VALUE;\r\n\r\n/**\r\n * @type {!Long}\r\n * @inner\r\n */\r\nvar MIN_VALUE = fromBits(0, 0x80000000|0, false);\r\n\r\n/**\r\n * Minimum signed value.\r\n * @type {!Long}\r\n */\r\nLong.MIN_VALUE = MIN_VALUE;\r\n\r\n/**\r\n * @alias Long.prototype\r\n * @inner\r\n */\r\nvar LongPrototype = Long.prototype;\r\n\r\n/**\r\n * Converts the Long to a 32 bit integer, assuming it is a 32 bit integer.\r\n * @returns {number}\r\n */\r\nLongPrototype.toInt = function toInt() {\r\n return this.unsigned ? this.low >>> 0 : this.low;\r\n};\r\n\r\n/**\r\n * Converts the Long to a the nearest floating-point representation of this value (double, 53 bit mantissa).\r\n * @returns {number}\r\n */\r\nLongPrototype.toNumber = function toNumber() {\r\n if (this.unsigned)\r\n return ((this.high >>> 0) * TWO_PWR_32_DBL) + (this.low >>> 0);\r\n return this.high * TWO_PWR_32_DBL + (this.low >>> 0);\r\n};\r\n\r\n/**\r\n * Converts the Long to a string written in the specified radix.\r\n * @param {number=} radix Radix (2-36), defaults to 10\r\n * @returns {string}\r\n * @override\r\n * @throws {RangeError} If `radix` is out of range\r\n */\r\nLongPrototype.toString = function toString(radix) {\r\n radix = radix || 10;\r\n if (radix < 2 || 36 < radix)\r\n throw RangeError('radix');\r\n if (this.isZero())\r\n return '0';\r\n if (this.isNegative()) { // Unsigned Longs are never negative\r\n if (this.eq(MIN_VALUE)) {\r\n // We need to change the Long value before it can be negated, so we remove\r\n // the bottom-most digit in this base and then recurse to do the rest.\r\n var radixLong = fromNumber(radix),\r\n div = this.div(radixLong),\r\n rem1 = div.mul(radixLong).sub(this);\r\n return div.toString(radix) + rem1.toInt().toString(radix);\r\n } else\r\n return '-' + this.neg().toString(radix);\r\n }\r\n\r\n // Do several (6) digits each time through the loop, so as to\r\n // minimize the calls to the very expensive emulated div.\r\n var radixToPower = fromNumber(pow_dbl(radix, 6), this.unsigned),\r\n rem = this;\r\n var result = '';\r\n while (true) {\r\n var remDiv = rem.div(radixToPower),\r\n intval = rem.sub(remDiv.mul(radixToPower)).toInt() >>> 0,\r\n digits = intval.toString(radix);\r\n rem = remDiv;\r\n if (rem.isZero())\r\n return digits + result;\r\n else {\r\n while (digits.length < 6)\r\n digits = '0' + digits;\r\n result = '' + digits + result;\r\n }\r\n }\r\n};\r\n\r\n/**\r\n * Gets the high 32 bits as a signed integer.\r\n * @returns {number} Signed high bits\r\n */\r\nLongPrototype.getHighBits = function getHighBits() {\r\n return this.high;\r\n};\r\n\r\n/**\r\n * Gets the high 32 bits as an unsigned integer.\r\n * @returns {number} Unsigned high bits\r\n */\r\nLongPrototype.getHighBitsUnsigned = function getHighBitsUnsigned() {\r\n return this.high >>> 0;\r\n};\r\n\r\n/**\r\n * Gets the low 32 bits as a signed integer.\r\n * @returns {number} Signed low bits\r\n */\r\nLongPrototype.getLowBits = function getLowBits() {\r\n return this.low;\r\n};\r\n\r\n/**\r\n * Gets the low 32 bits as an unsigned integer.\r\n * @returns {number} Unsigned low bits\r\n */\r\nLongPrototype.getLowBitsUnsigned = function getLowBitsUnsigned() {\r\n return this.low >>> 0;\r\n};\r\n\r\n/**\r\n * Gets the number of bits needed to represent the absolute value of this Long.\r\n * @returns {number}\r\n */\r\nLongPrototype.getNumBitsAbs = function getNumBitsAbs() {\r\n if (this.isNegative()) // Unsigned Longs are never negative\r\n return this.eq(MIN_VALUE) ? 64 : this.neg().getNumBitsAbs();\r\n var val = this.high != 0 ? this.high : this.low;\r\n for (var bit = 31; bit > 0; bit--)\r\n if ((val & (1 << bit)) != 0)\r\n break;\r\n return this.high != 0 ? bit + 33 : bit + 1;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value equals zero.\r\n * @returns {boolean}\r\n */\r\nLongPrototype.isZero = function isZero() {\r\n return this.high === 0 && this.low === 0;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value equals zero. This is an alias of {@link Long#isZero}.\r\n * @returns {boolean}\r\n */\r\nLongPrototype.eqz = LongPrototype.isZero;\r\n\r\n/**\r\n * Tests if this Long's value is negative.\r\n * @returns {boolean}\r\n */\r\nLongPrototype.isNegative = function isNegative() {\r\n return !this.unsigned && this.high < 0;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value is positive.\r\n * @returns {boolean}\r\n */\r\nLongPrototype.isPositive = function isPositive() {\r\n return this.unsigned || this.high >= 0;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value is odd.\r\n * @returns {boolean}\r\n */\r\nLongPrototype.isOdd = function isOdd() {\r\n return (this.low & 1) === 1;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value is even.\r\n * @returns {boolean}\r\n */\r\nLongPrototype.isEven = function isEven() {\r\n return (this.low & 1) === 0;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value equals the specified's.\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.equals = function equals(other) {\r\n if (!isLong(other))\r\n other = fromValue(other);\r\n if (this.unsigned !== other.unsigned && (this.high >>> 31) === 1 && (other.high >>> 31) === 1)\r\n return false;\r\n return this.high === other.high && this.low === other.low;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value equals the specified's. This is an alias of {@link Long#equals}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.eq = LongPrototype.equals;\r\n\r\n/**\r\n * Tests if this Long's value differs from the specified's.\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.notEquals = function notEquals(other) {\r\n return !this.eq(/* validates */ other);\r\n};\r\n\r\n/**\r\n * Tests if this Long's value differs from the specified's. This is an alias of {@link Long#notEquals}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.neq = LongPrototype.notEquals;\r\n\r\n/**\r\n * Tests if this Long's value differs from the specified's. This is an alias of {@link Long#notEquals}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.ne = LongPrototype.notEquals;\r\n\r\n/**\r\n * Tests if this Long's value is less than the specified's.\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.lessThan = function lessThan(other) {\r\n return this.comp(/* validates */ other) < 0;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value is less than the specified's. This is an alias of {@link Long#lessThan}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.lt = LongPrototype.lessThan;\r\n\r\n/**\r\n * Tests if this Long's value is less than or equal the specified's.\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.lessThanOrEqual = function lessThanOrEqual(other) {\r\n return this.comp(/* validates */ other) <= 0;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value is less than or equal the specified's. This is an alias of {@link Long#lessThanOrEqual}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.lte = LongPrototype.lessThanOrEqual;\r\n\r\n/**\r\n * Tests if this Long's value is less than or equal the specified's. This is an alias of {@link Long#lessThanOrEqual}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.le = LongPrototype.lessThanOrEqual;\r\n\r\n/**\r\n * Tests if this Long's value is greater than the specified's.\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.greaterThan = function greaterThan(other) {\r\n return this.comp(/* validates */ other) > 0;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value is greater than the specified's. This is an alias of {@link Long#greaterThan}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.gt = LongPrototype.greaterThan;\r\n\r\n/**\r\n * Tests if this Long's value is greater than or equal the specified's.\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.greaterThanOrEqual = function greaterThanOrEqual(other) {\r\n return this.comp(/* validates */ other) >= 0;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value is greater than or equal the specified's. This is an alias of {@link Long#greaterThanOrEqual}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.gte = LongPrototype.greaterThanOrEqual;\r\n\r\n/**\r\n * Tests if this Long's value is greater than or equal the specified's. This is an alias of {@link Long#greaterThanOrEqual}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.ge = LongPrototype.greaterThanOrEqual;\r\n\r\n/**\r\n * Compares this Long's value with the specified's.\r\n * @param {!Long|number|string} other Other value\r\n * @returns {number} 0 if they are the same, 1 if the this is greater and -1\r\n * if the given one is greater\r\n */\r\nLongPrototype.compare = function compare(other) {\r\n if (!isLong(other))\r\n other = fromValue(other);\r\n if (this.eq(other))\r\n return 0;\r\n var thisNeg = this.isNegative(),\r\n otherNeg = other.isNegative();\r\n if (thisNeg && !otherNeg)\r\n return -1;\r\n if (!thisNeg && otherNeg)\r\n return 1;\r\n // At this point the sign bits are the same\r\n if (!this.unsigned)\r\n return this.sub(other).isNegative() ? -1 : 1;\r\n // Both are positive if at least one is unsigned\r\n return (other.high >>> 0) > (this.high >>> 0) || (other.high === this.high && (other.low >>> 0) > (this.low >>> 0)) ? -1 : 1;\r\n};\r\n\r\n/**\r\n * Compares this Long's value with the specified's. This is an alias of {@link Long#compare}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {number} 0 if they are the same, 1 if the this is greater and -1\r\n * if the given one is greater\r\n */\r\nLongPrototype.comp = LongPrototype.compare;\r\n\r\n/**\r\n * Negates this Long's value.\r\n * @returns {!Long} Negated Long\r\n */\r\nLongPrototype.negate = function negate() {\r\n if (!this.unsigned && this.eq(MIN_VALUE))\r\n return MIN_VALUE;\r\n return this.not().add(ONE);\r\n};\r\n\r\n/**\r\n * Negates this Long's value. This is an alias of {@link Long#negate}.\r\n * @function\r\n * @returns {!Long} Negated Long\r\n */\r\nLongPrototype.neg = LongPrototype.negate;\r\n\r\n/**\r\n * Returns the sum of this and the specified Long.\r\n * @param {!Long|number|string} addend Addend\r\n * @returns {!Long} Sum\r\n */\r\nLongPrototype.add = function add(addend) {\r\n if (!isLong(addend))\r\n addend = fromValue(addend);\r\n\r\n // Divide each number into 4 chunks of 16 bits, and then sum the chunks.\r\n\r\n var a48 = this.high >>> 16;\r\n var a32 = this.high & 0xFFFF;\r\n var a16 = this.low >>> 16;\r\n var a00 = this.low & 0xFFFF;\r\n\r\n var b48 = addend.high >>> 16;\r\n var b32 = addend.high & 0xFFFF;\r\n var b16 = addend.low >>> 16;\r\n var b00 = addend.low & 0xFFFF;\r\n\r\n var c48 = 0, c32 = 0, c16 = 0, c00 = 0;\r\n c00 += a00 + b00;\r\n c16 += c00 >>> 16;\r\n c00 &= 0xFFFF;\r\n c16 += a16 + b16;\r\n c32 += c16 >>> 16;\r\n c16 &= 0xFFFF;\r\n c32 += a32 + b32;\r\n c48 += c32 >>> 16;\r\n c32 &= 0xFFFF;\r\n c48 += a48 + b48;\r\n c48 &= 0xFFFF;\r\n return fromBits((c16 << 16) | c00, (c48 << 16) | c32, this.unsigned);\r\n};\r\n\r\n/**\r\n * Returns the difference of this and the specified Long.\r\n * @param {!Long|number|string} subtrahend Subtrahend\r\n * @returns {!Long} Difference\r\n */\r\nLongPrototype.subtract = function subtract(subtrahend) {\r\n if (!isLong(subtrahend))\r\n subtrahend = fromValue(subtrahend);\r\n return this.add(subtrahend.neg());\r\n};\r\n\r\n/**\r\n * Returns the difference of this and the specified Long. This is an alias of {@link Long#subtract}.\r\n * @function\r\n * @param {!Long|number|string} subtrahend Subtrahend\r\n * @returns {!Long} Difference\r\n */\r\nLongPrototype.sub = LongPrototype.subtract;\r\n\r\n/**\r\n * Returns the product of this and the specified Long.\r\n * @param {!Long|number|string} multiplier Multiplier\r\n * @returns {!Long} Product\r\n */\r\nLongPrototype.multiply = function multiply(multiplier) {\r\n if (this.isZero())\r\n return ZERO;\r\n if (!isLong(multiplier))\r\n multiplier = fromValue(multiplier);\r\n\r\n // use wasm support if present\r\n if (wasm) {\r\n var low = wasm.mul(this.low,\r\n this.high,\r\n multiplier.low,\r\n multiplier.high);\r\n return fromBits(low, wasm.get_high(), this.unsigned);\r\n }\r\n\r\n if (multiplier.isZero())\r\n return ZERO;\r\n if (this.eq(MIN_VALUE))\r\n return multiplier.isOdd() ? MIN_VALUE : ZERO;\r\n if (multiplier.eq(MIN_VALUE))\r\n return this.isOdd() ? MIN_VALUE : ZERO;\r\n\r\n if (this.isNegative()) {\r\n if (multiplier.isNegative())\r\n return this.neg().mul(multiplier.neg());\r\n else\r\n return this.neg().mul(multiplier).neg();\r\n } else if (multiplier.isNegative())\r\n return this.mul(multiplier.neg()).neg();\r\n\r\n // If both longs are small, use float multiplication\r\n if (this.lt(TWO_PWR_24) && multiplier.lt(TWO_PWR_24))\r\n return fromNumber(this.toNumber() * multiplier.toNumber(), this.unsigned);\r\n\r\n // Divide each long into 4 chunks of 16 bits, and then add up 4x4 products.\r\n // We can skip products that would overflow.\r\n\r\n var a48 = this.high >>> 16;\r\n var a32 = this.high & 0xFFFF;\r\n var a16 = this.low >>> 16;\r\n var a00 = this.low & 0xFFFF;\r\n\r\n var b48 = multiplier.high >>> 16;\r\n var b32 = multiplier.high & 0xFFFF;\r\n var b16 = multiplier.low >>> 16;\r\n var b00 = multiplier.low & 0xFFFF;\r\n\r\n var c48 = 0, c32 = 0, c16 = 0, c00 = 0;\r\n c00 += a00 * b00;\r\n c16 += c00 >>> 16;\r\n c00 &= 0xFFFF;\r\n c16 += a16 * b00;\r\n c32 += c16 >>> 16;\r\n c16 &= 0xFFFF;\r\n c16 += a00 * b16;\r\n c32 += c16 >>> 16;\r\n c16 &= 0xFFFF;\r\n c32 += a32 * b00;\r\n c48 += c32 >>> 16;\r\n c32 &= 0xFFFF;\r\n c32 += a16 * b16;\r\n c48 += c32 >>> 16;\r\n c32 &= 0xFFFF;\r\n c32 += a00 * b32;\r\n c48 += c32 >>> 16;\r\n c32 &= 0xFFFF;\r\n c48 += a48 * b00 + a32 * b16 + a16 * b32 + a00 * b48;\r\n c48 &= 0xFFFF;\r\n return fromBits((c16 << 16) | c00, (c48 << 16) | c32, this.unsigned);\r\n};\r\n\r\n/**\r\n * Returns the product of this and the specified Long. This is an alias of {@link Long#multiply}.\r\n * @function\r\n * @param {!Long|number|string} multiplier Multiplier\r\n * @returns {!Long} Product\r\n */\r\nLongPrototype.mul = LongPrototype.multiply;\r\n\r\n/**\r\n * Returns this Long divided by the specified. The result is signed if this Long is signed or\r\n * unsigned if this Long is unsigned.\r\n * @param {!Long|number|string} divisor Divisor\r\n * @returns {!Long} Quotient\r\n */\r\nLongPrototype.divide = function divide(divisor) {\r\n if (!isLong(divisor))\r\n divisor = fromValue(divisor);\r\n if (divisor.isZero())\r\n throw Error('division by zero');\r\n\r\n // use wasm support if present\r\n if (wasm) {\r\n // guard against signed division overflow: the largest\r\n // negative number / -1 would be 1 larger than the largest\r\n // positive number, due to two's complement.\r\n if (!this.unsigned &&\r\n this.high === -0x80000000 &&\r\n divisor.low === -1 && divisor.high === -1) {\r\n // be consistent with non-wasm code path\r\n return this;\r\n }\r\n var low = (this.unsigned ? wasm.div_u : wasm.div_s)(\r\n this.low,\r\n this.high,\r\n divisor.low,\r\n divisor.high\r\n );\r\n return fromBits(low, wasm.get_high(), this.unsigned);\r\n }\r\n\r\n if (this.isZero())\r\n return this.unsigned ? UZERO : ZERO;\r\n var approx, rem, res;\r\n if (!this.unsigned) {\r\n // This section is only relevant for signed longs and is derived from the\r\n // closure library as a whole.\r\n if (this.eq(MIN_VALUE)) {\r\n if (divisor.eq(ONE) || divisor.eq(NEG_ONE))\r\n return MIN_VALUE; // recall that -MIN_VALUE == MIN_VALUE\r\n else if (divisor.eq(MIN_VALUE))\r\n return ONE;\r\n else {\r\n // At this point, we have |other| >= 2, so |this/other| < |MIN_VALUE|.\r\n var halfThis = this.shr(1);\r\n approx = halfThis.div(divisor).shl(1);\r\n if (approx.eq(ZERO)) {\r\n return divisor.isNegative() ? ONE : NEG_ONE;\r\n } else {\r\n rem = this.sub(divisor.mul(approx));\r\n res = approx.add(rem.div(divisor));\r\n return res;\r\n }\r\n }\r\n } else if (divisor.eq(MIN_VALUE))\r\n return this.unsigned ? UZERO : ZERO;\r\n if (this.isNegative()) {\r\n if (divisor.isNegative())\r\n return this.neg().div(divisor.neg());\r\n return this.neg().div(divisor).neg();\r\n } else if (divisor.isNegative())\r\n return this.div(divisor.neg()).neg();\r\n res = ZERO;\r\n } else {\r\n // The algorithm below has not been made for unsigned longs. It's therefore\r\n // required to take special care of the MSB prior to running it.\r\n if (!divisor.unsigned)\r\n divisor = divisor.toUnsigned();\r\n if (divisor.gt(this))\r\n return UZERO;\r\n if (divisor.gt(this.shru(1))) // 15 >>> 1 = 7 ; with divisor = 8 ; true\r\n return UONE;\r\n res = UZERO;\r\n }\r\n\r\n // Repeat the following until the remainder is less than other: find a\r\n // floating-point that approximates remainder / other *from below*, add this\r\n // into the result, and subtract it from the remainder. It is critical that\r\n // the approximate value is less than or equal to the real value so that the\r\n // remainder never becomes negative.\r\n rem = this;\r\n while (rem.gte(divisor)) {\r\n // Approximate the result of division. This may be a little greater or\r\n // smaller than the actual value.\r\n approx = Math.max(1, Math.floor(rem.toNumber() / divisor.toNumber()));\r\n\r\n // We will tweak the approximate result by changing it in the 48-th digit or\r\n // the smallest non-fractional digit, whichever is larger.\r\n var log2 = Math.ceil(Math.log(approx) / Math.LN2),\r\n delta = (log2 <= 48) ? 1 : pow_dbl(2, log2 - 48),\r\n\r\n // Decrease the approximation until it is smaller than the remainder. Note\r\n // that if it is too large, the product overflows and is negative.\r\n approxRes = fromNumber(approx),\r\n approxRem = approxRes.mul(divisor);\r\n while (approxRem.isNegative() || approxRem.gt(rem)) {\r\n approx -= delta;\r\n approxRes = fromNumber(approx, this.unsigned);\r\n approxRem = approxRes.mul(divisor);\r\n }\r\n\r\n // We know the answer can't be zero... and actually, zero would cause\r\n // infinite recursion since we would make no progress.\r\n if (approxRes.isZero())\r\n approxRes = ONE;\r\n\r\n res = res.add(approxRes);\r\n rem = rem.sub(approxRem);\r\n }\r\n return res;\r\n};\r\n\r\n/**\r\n * Returns this Long divided by the specified. This is an alias of {@link Long#divide}.\r\n * @function\r\n * @param {!Long|number|string} divisor Divisor\r\n * @returns {!Long} Quotient\r\n */\r\nLongPrototype.div = LongPrototype.divide;\r\n\r\n/**\r\n * Returns this Long modulo the specified.\r\n * @param {!Long|number|string} divisor Divisor\r\n * @returns {!Long} Remainder\r\n */\r\nLongPrototype.modulo = function modulo(divisor) {\r\n if (!isLong(divisor))\r\n divisor = fromValue(divisor);\r\n\r\n // use wasm support if present\r\n if (wasm) {\r\n var low = (this.unsigned ? wasm.rem_u : wasm.rem_s)(\r\n this.low,\r\n this.high,\r\n divisor.low,\r\n divisor.high\r\n );\r\n return fromBits(low, wasm.get_high(), this.unsigned);\r\n }\r\n\r\n return this.sub(this.div(divisor).mul(divisor));\r\n};\r\n\r\n/**\r\n * Returns this Long modulo the specified. This is an alias of {@link Long#modulo}.\r\n * @function\r\n * @param {!Long|number|string} divisor Divisor\r\n * @returns {!Long} Remainder\r\n */\r\nLongPrototype.mod = LongPrototype.modulo;\r\n\r\n/**\r\n * Returns this Long modulo the specified. This is an alias of {@link Long#modulo}.\r\n * @function\r\n * @param {!Long|number|string} divisor Divisor\r\n * @returns {!Long} Remainder\r\n */\r\nLongPrototype.rem = LongPrototype.modulo;\r\n\r\n/**\r\n * Returns the bitwise NOT of this Long.\r\n * @returns {!Long}\r\n */\r\nLongPrototype.not = function not() {\r\n return fromBits(~this.low, ~this.high, this.unsigned);\r\n};\r\n\r\n/**\r\n * Returns the bitwise AND of this Long and the specified.\r\n * @param {!Long|number|string} other Other Long\r\n * @returns {!Long}\r\n */\r\nLongPrototype.and = function and(other) {\r\n if (!isLong(other))\r\n other = fromValue(other);\r\n return fromBits(this.low & other.low, this.high & other.high, this.unsigned);\r\n};\r\n\r\n/**\r\n * Returns the bitwise OR of this Long and the specified.\r\n * @param {!Long|number|string} other Other Long\r\n * @returns {!Long}\r\n */\r\nLongPrototype.or = function or(other) {\r\n if (!isLong(other))\r\n other = fromValue(other);\r\n return fromBits(this.low | other.low, this.high | other.high, this.unsigned);\r\n};\r\n\r\n/**\r\n * Returns the bitwise XOR of this Long and the given one.\r\n * @param {!Long|number|string} other Other Long\r\n * @returns {!Long}\r\n */\r\nLongPrototype.xor = function xor(other) {\r\n if (!isLong(other))\r\n other = fromValue(other);\r\n return fromBits(this.low ^ other.low, this.high ^ other.high, this.unsigned);\r\n};\r\n\r\n/**\r\n * Returns this Long with bits shifted to the left by the given amount.\r\n * @param {number|!Long} numBits Number of bits\r\n * @returns {!Long} Shifted Long\r\n */\r\nLongPrototype.shiftLeft = function shiftLeft(numBits) {\r\n if (isLong(numBits))\r\n numBits = numBits.toInt();\r\n if ((numBits &= 63) === 0)\r\n return this;\r\n else if (numBits < 32)\r\n return fromBits(this.low << numBits, (this.high << numBits) | (this.low >>> (32 - numBits)), this.unsigned);\r\n else\r\n return fromBits(0, this.low << (numBits - 32), this.unsigned);\r\n};\r\n\r\n/**\r\n * Returns this Long with bits shifted to the left by the given amount. This is an alias of {@link Long#shiftLeft}.\r\n * @function\r\n * @param {number|!Long} numBits Number of bits\r\n * @returns {!Long} Shifted Long\r\n */\r\nLongPrototype.shl = LongPrototype.shiftLeft;\r\n\r\n/**\r\n * Returns this Long with bits arithmetically shifted to the right by the given amount.\r\n * @param {number|!Long} numBits Number of bits\r\n * @returns {!Long} Shifted Long\r\n */\r\nLongPrototype.shiftRight = function shiftRight(numBits) {\r\n if (isLong(numBits))\r\n numBits = numBits.toInt();\r\n if ((numBits &= 63) === 0)\r\n return this;\r\n else if (numBits < 32)\r\n return fromBits((this.low >>> numBits) | (this.high << (32 - numBits)), this.high >> numBits, this.unsigned);\r\n else\r\n return fromBits(this.high >> (numBits - 32), this.high >= 0 ? 0 : -1, this.unsigned);\r\n};\r\n\r\n/**\r\n * Returns this Long with bits arithmetically shifted to the right by the given amount. This is an alias of {@link Long#shiftRight}.\r\n * @function\r\n * @param {number|!Long} numBits Number of bits\r\n * @returns {!Long} Shifted Long\r\n */\r\nLongPrototype.shr = LongPrototype.shiftRight;\r\n\r\n/**\r\n * Returns this Long with bits logically shifted to the right by the given amount.\r\n * @param {number|!Long} numBits Number of bits\r\n * @returns {!Long} Shifted Long\r\n */\r\nLongPrototype.shiftRightUnsigned = function shiftRightUnsigned(numBits) {\r\n if (isLong(numBits))\r\n numBits = numBits.toInt();\r\n numBits &= 63;\r\n if (numBits === 0)\r\n return this;\r\n else {\r\n var high = this.high;\r\n if (numBits < 32) {\r\n var low = this.low;\r\n return fromBits((low >>> numBits) | (high << (32 - numBits)), high >>> numBits, this.unsigned);\r\n } else if (numBits === 32)\r\n return fromBits(high, 0, this.unsigned);\r\n else\r\n return fromBits(high >>> (numBits - 32), 0, this.unsigned);\r\n }\r\n};\r\n\r\n/**\r\n * Returns this Long with bits logically shifted to the right by the given amount. This is an alias of {@link Long#shiftRightUnsigned}.\r\n * @function\r\n * @param {number|!Long} numBits Number of bits\r\n * @returns {!Long} Shifted Long\r\n */\r\nLongPrototype.shru = LongPrototype.shiftRightUnsigned;\r\n\r\n/**\r\n * Returns this Long with bits logically shifted to the right by the given amount. This is an alias of {@link Long#shiftRightUnsigned}.\r\n * @function\r\n * @param {number|!Long} numBits Number of bits\r\n * @returns {!Long} Shifted Long\r\n */\r\nLongPrototype.shr_u = LongPrototype.shiftRightUnsigned;\r\n\r\n/**\r\n * Converts this Long to signed.\r\n * @returns {!Long} Signed long\r\n */\r\nLongPrototype.toSigned = function toSigned() {\r\n if (!this.unsigned)\r\n return this;\r\n return fromBits(this.low, this.high, false);\r\n};\r\n\r\n/**\r\n * Converts this Long to unsigned.\r\n * @returns {!Long} Unsigned long\r\n */\r\nLongPrototype.toUnsigned = function toUnsigned() {\r\n if (this.unsigned)\r\n return this;\r\n return fromBits(this.low, this.high, true);\r\n};\r\n\r\n/**\r\n * Converts this Long to its byte representation.\r\n * @param {boolean=} le Whether little or big endian, defaults to big endian\r\n * @returns {!Array.} Byte representation\r\n */\r\nLongPrototype.toBytes = function toBytes(le) {\r\n return le ? this.toBytesLE() : this.toBytesBE();\r\n};\r\n\r\n/**\r\n * Converts this Long to its little endian byte representation.\r\n * @returns {!Array.} Little endian byte representation\r\n */\r\nLongPrototype.toBytesLE = function toBytesLE() {\r\n var hi = this.high,\r\n lo = this.low;\r\n return [\r\n lo & 0xff,\r\n lo >>> 8 & 0xff,\r\n lo >>> 16 & 0xff,\r\n lo >>> 24 ,\r\n hi & 0xff,\r\n hi >>> 8 & 0xff,\r\n hi >>> 16 & 0xff,\r\n hi >>> 24\r\n ];\r\n};\r\n\r\n/**\r\n * Converts this Long to its big endian byte representation.\r\n * @returns {!Array.} Big endian byte representation\r\n */\r\nLongPrototype.toBytesBE = function toBytesBE() {\r\n var hi = this.high,\r\n lo = this.low;\r\n return [\r\n hi >>> 24 ,\r\n hi >>> 16 & 0xff,\r\n hi >>> 8 & 0xff,\r\n hi & 0xff,\r\n lo >>> 24 ,\r\n lo >>> 16 & 0xff,\r\n lo >>> 8 & 0xff,\r\n lo & 0xff\r\n ];\r\n};\r\n\r\n/**\r\n * Creates a Long from its byte representation.\r\n * @param {!Array.} bytes Byte representation\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\r\n * @param {boolean=} le Whether little or big endian, defaults to big endian\r\n * @returns {Long} The corresponding Long value\r\n */\r\nLong.fromBytes = function fromBytes(bytes, unsigned, le) {\r\n return le ? Long.fromBytesLE(bytes, unsigned) : Long.fromBytesBE(bytes, unsigned);\r\n};\r\n\r\n/**\r\n * Creates a Long from its little endian byte representation.\r\n * @param {!Array.} bytes Little endian byte representation\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\r\n * @returns {Long} The corresponding Long value\r\n */\r\nLong.fromBytesLE = function fromBytesLE(bytes, unsigned) {\r\n return new Long(\r\n bytes[0] |\r\n bytes[1] << 8 |\r\n bytes[2] << 16 |\r\n bytes[3] << 24,\r\n bytes[4] |\r\n bytes[5] << 8 |\r\n bytes[6] << 16 |\r\n bytes[7] << 24,\r\n unsigned\r\n );\r\n};\r\n\r\n/**\r\n * Creates a Long from its big endian byte representation.\r\n * @param {!Array.} bytes Big endian byte representation\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\r\n * @returns {Long} The corresponding Long value\r\n */\r\nLong.fromBytesBE = function fromBytesBE(bytes, unsigned) {\r\n return new Long(\r\n bytes[4] << 24 |\r\n bytes[5] << 16 |\r\n bytes[6] << 8 |\r\n bytes[7],\r\n bytes[0] << 24 |\r\n bytes[1] << 16 |\r\n bytes[2] << 8 |\r\n bytes[3],\r\n unsigned\r\n );\r\n};\r\n", "\"use strict\";\r\nmodule.exports = asPromise;\r\n\r\n/**\r\n * Callback as used by {@link util.asPromise}.\r\n * @typedef asPromiseCallback\r\n * @type {function}\r\n * @param {Error|null} error Error, if any\r\n * @param {...*} params Additional arguments\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Returns a promise from a node-style callback function.\r\n * @memberof util\r\n * @param {asPromiseCallback} fn Function to call\r\n * @param {*} ctx Function context\r\n * @param {...*} params Function arguments\r\n * @returns {Promise<*>} Promisified function\r\n */\r\nfunction asPromise(fn, ctx/*, varargs */) {\r\n var params = new Array(arguments.length - 1),\r\n offset = 0,\r\n index = 2,\r\n pending = true;\r\n while (index < arguments.length)\r\n params[offset++] = arguments[index++];\r\n return new Promise(function executor(resolve, reject) {\r\n params[offset] = function callback(err/*, varargs */) {\r\n if (pending) {\r\n pending = false;\r\n if (err)\r\n reject(err);\r\n else {\r\n var params = new Array(arguments.length - 1),\r\n offset = 0;\r\n while (offset < params.length)\r\n params[offset++] = arguments[offset];\r\n resolve.apply(null, params);\r\n }\r\n }\r\n };\r\n try {\r\n fn.apply(ctx || null, params);\r\n } catch (err) {\r\n if (pending) {\r\n pending = false;\r\n reject(err);\r\n }\r\n }\r\n });\r\n}\r\n", "\"use strict\";\r\n\r\n/**\r\n * A minimal base64 implementation for number arrays.\r\n * @memberof util\r\n * @namespace\r\n */\r\nvar base64 = exports;\r\n\r\n/**\r\n * Calculates the byte length of a base64 encoded string.\r\n * @param {string} string Base64 encoded string\r\n * @returns {number} Byte length\r\n */\r\nbase64.length = function length(string) {\r\n var p = string.length;\r\n if (!p)\r\n return 0;\r\n var n = 0;\r\n while (--p % 4 > 1 && string.charAt(p) === \"=\")\r\n ++n;\r\n return Math.ceil(string.length * 3) / 4 - n;\r\n};\r\n\r\n// Base64 encoding table\r\nvar b64 = new Array(64);\r\n\r\n// Base64 decoding table\r\nvar s64 = new Array(123);\r\n\r\n// 65..90, 97..122, 48..57, 43, 47\r\nfor (var i = 0; i < 64;)\r\n s64[b64[i] = i < 26 ? i + 65 : i < 52 ? i + 71 : i < 62 ? i - 4 : i - 59 | 43] = i++;\r\n\r\n/**\r\n * Encodes a buffer to a base64 encoded string.\r\n * @param {Uint8Array} buffer Source buffer\r\n * @param {number} start Source start\r\n * @param {number} end Source end\r\n * @returns {string} Base64 encoded string\r\n */\r\nbase64.encode = function encode(buffer, start, end) {\r\n var parts = null,\r\n chunk = [];\r\n var i = 0, // output index\r\n j = 0, // goto index\r\n t; // temporary\r\n while (start < end) {\r\n var b = buffer[start++];\r\n switch (j) {\r\n case 0:\r\n chunk[i++] = b64[b >> 2];\r\n t = (b & 3) << 4;\r\n j = 1;\r\n break;\r\n case 1:\r\n chunk[i++] = b64[t | b >> 4];\r\n t = (b & 15) << 2;\r\n j = 2;\r\n break;\r\n case 2:\r\n chunk[i++] = b64[t | b >> 6];\r\n chunk[i++] = b64[b & 63];\r\n j = 0;\r\n break;\r\n }\r\n if (i > 8191) {\r\n (parts || (parts = [])).push(String.fromCharCode.apply(String, chunk));\r\n i = 0;\r\n }\r\n }\r\n if (j) {\r\n chunk[i++] = b64[t];\r\n chunk[i++] = 61;\r\n if (j === 1)\r\n chunk[i++] = 61;\r\n }\r\n if (parts) {\r\n if (i)\r\n parts.push(String.fromCharCode.apply(String, chunk.slice(0, i)));\r\n return parts.join(\"\");\r\n }\r\n return String.fromCharCode.apply(String, chunk.slice(0, i));\r\n};\r\n\r\nvar invalidEncoding = \"invalid encoding\";\r\n\r\n/**\r\n * Decodes a base64 encoded string to a buffer.\r\n * @param {string} string Source string\r\n * @param {Uint8Array} buffer Destination buffer\r\n * @param {number} offset Destination offset\r\n * @returns {number} Number of bytes written\r\n * @throws {Error} If encoding is invalid\r\n */\r\nbase64.decode = function decode(string, buffer, offset) {\r\n var start = offset;\r\n var j = 0, // goto index\r\n t; // temporary\r\n for (var i = 0; i < string.length;) {\r\n var c = string.charCodeAt(i++);\r\n if (c === 61 && j > 1)\r\n break;\r\n if ((c = s64[c]) === undefined)\r\n throw Error(invalidEncoding);\r\n switch (j) {\r\n case 0:\r\n t = c;\r\n j = 1;\r\n break;\r\n case 1:\r\n buffer[offset++] = t << 2 | (c & 48) >> 4;\r\n t = c;\r\n j = 2;\r\n break;\r\n case 2:\r\n buffer[offset++] = (t & 15) << 4 | (c & 60) >> 2;\r\n t = c;\r\n j = 3;\r\n break;\r\n case 3:\r\n buffer[offset++] = (t & 3) << 6 | c;\r\n j = 0;\r\n break;\r\n }\r\n }\r\n if (j === 1)\r\n throw Error(invalidEncoding);\r\n return offset - start;\r\n};\r\n\r\n/**\r\n * Tests if the specified string appears to be base64 encoded.\r\n * @param {string} string String to test\r\n * @returns {boolean} `true` if probably base64 encoded, otherwise false\r\n */\r\nbase64.test = function test(string) {\r\n return /^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(string);\r\n};\r\n", "\"use strict\";\r\nmodule.exports = EventEmitter;\r\n\r\n/**\r\n * Constructs a new event emitter instance.\r\n * @classdesc A minimal event emitter.\r\n * @memberof util\r\n * @constructor\r\n */\r\nfunction EventEmitter() {\r\n\r\n /**\r\n * Registered listeners.\r\n * @type {Object.}\r\n * @private\r\n */\r\n this._listeners = {};\r\n}\r\n\r\n/**\r\n * Registers an event listener.\r\n * @param {string} evt Event name\r\n * @param {function} fn Listener\r\n * @param {*} [ctx] Listener context\r\n * @returns {util.EventEmitter} `this`\r\n */\r\nEventEmitter.prototype.on = function on(evt, fn, ctx) {\r\n (this._listeners[evt] || (this._listeners[evt] = [])).push({\r\n fn : fn,\r\n ctx : ctx || this\r\n });\r\n return this;\r\n};\r\n\r\n/**\r\n * Removes an event listener or any matching listeners if arguments are omitted.\r\n * @param {string} [evt] Event name. Removes all listeners if omitted.\r\n * @param {function} [fn] Listener to remove. Removes all listeners of `evt` if omitted.\r\n * @returns {util.EventEmitter} `this`\r\n */\r\nEventEmitter.prototype.off = function off(evt, fn) {\r\n if (evt === undefined)\r\n this._listeners = {};\r\n else {\r\n if (fn === undefined)\r\n this._listeners[evt] = [];\r\n else {\r\n var listeners = this._listeners[evt];\r\n for (var i = 0; i < listeners.length;)\r\n if (listeners[i].fn === fn)\r\n listeners.splice(i, 1);\r\n else\r\n ++i;\r\n }\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Emits an event by calling its listeners with the specified arguments.\r\n * @param {string} evt Event name\r\n * @param {...*} args Arguments\r\n * @returns {util.EventEmitter} `this`\r\n */\r\nEventEmitter.prototype.emit = function emit(evt) {\r\n var listeners = this._listeners[evt];\r\n if (listeners) {\r\n var args = [],\r\n i = 1;\r\n for (; i < arguments.length;)\r\n args.push(arguments[i++]);\r\n for (i = 0; i < listeners.length;)\r\n listeners[i].fn.apply(listeners[i++].ctx, args);\r\n }\r\n return this;\r\n};\r\n", "\"use strict\";\r\n\r\nmodule.exports = factory(factory);\r\n\r\n/**\r\n * Reads / writes floats / doubles from / to buffers.\r\n * @name util.float\r\n * @namespace\r\n */\r\n\r\n/**\r\n * Writes a 32 bit float to a buffer using little endian byte order.\r\n * @name util.float.writeFloatLE\r\n * @function\r\n * @param {number} val Value to write\r\n * @param {Uint8Array} buf Target buffer\r\n * @param {number} pos Target buffer offset\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Writes a 32 bit float to a buffer using big endian byte order.\r\n * @name util.float.writeFloatBE\r\n * @function\r\n * @param {number} val Value to write\r\n * @param {Uint8Array} buf Target buffer\r\n * @param {number} pos Target buffer offset\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Reads a 32 bit float from a buffer using little endian byte order.\r\n * @name util.float.readFloatLE\r\n * @function\r\n * @param {Uint8Array} buf Source buffer\r\n * @param {number} pos Source buffer offset\r\n * @returns {number} Value read\r\n */\r\n\r\n/**\r\n * Reads a 32 bit float from a buffer using big endian byte order.\r\n * @name util.float.readFloatBE\r\n * @function\r\n * @param {Uint8Array} buf Source buffer\r\n * @param {number} pos Source buffer offset\r\n * @returns {number} Value read\r\n */\r\n\r\n/**\r\n * Writes a 64 bit double to a buffer using little endian byte order.\r\n * @name util.float.writeDoubleLE\r\n * @function\r\n * @param {number} val Value to write\r\n * @param {Uint8Array} buf Target buffer\r\n * @param {number} pos Target buffer offset\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Writes a 64 bit double to a buffer using big endian byte order.\r\n * @name util.float.writeDoubleBE\r\n * @function\r\n * @param {number} val Value to write\r\n * @param {Uint8Array} buf Target buffer\r\n * @param {number} pos Target buffer offset\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Reads a 64 bit double from a buffer using little endian byte order.\r\n * @name util.float.readDoubleLE\r\n * @function\r\n * @param {Uint8Array} buf Source buffer\r\n * @param {number} pos Source buffer offset\r\n * @returns {number} Value read\r\n */\r\n\r\n/**\r\n * Reads a 64 bit double from a buffer using big endian byte order.\r\n * @name util.float.readDoubleBE\r\n * @function\r\n * @param {Uint8Array} buf Source buffer\r\n * @param {number} pos Source buffer offset\r\n * @returns {number} Value read\r\n */\r\n\r\n// Factory function for the purpose of node-based testing in modified global environments\r\nfunction factory(exports) {\r\n\r\n // float: typed array\r\n if (typeof Float32Array !== \"undefined\") (function() {\r\n\r\n var f32 = new Float32Array([ -0 ]),\r\n f8b = new Uint8Array(f32.buffer),\r\n le = f8b[3] === 128;\r\n\r\n function writeFloat_f32_cpy(val, buf, pos) {\r\n f32[0] = val;\r\n buf[pos ] = f8b[0];\r\n buf[pos + 1] = f8b[1];\r\n buf[pos + 2] = f8b[2];\r\n buf[pos + 3] = f8b[3];\r\n }\r\n\r\n function writeFloat_f32_rev(val, buf, pos) {\r\n f32[0] = val;\r\n buf[pos ] = f8b[3];\r\n buf[pos + 1] = f8b[2];\r\n buf[pos + 2] = f8b[1];\r\n buf[pos + 3] = f8b[0];\r\n }\r\n\r\n /* istanbul ignore next */\r\n exports.writeFloatLE = le ? writeFloat_f32_cpy : writeFloat_f32_rev;\r\n /* istanbul ignore next */\r\n exports.writeFloatBE = le ? writeFloat_f32_rev : writeFloat_f32_cpy;\r\n\r\n function readFloat_f32_cpy(buf, pos) {\r\n f8b[0] = buf[pos ];\r\n f8b[1] = buf[pos + 1];\r\n f8b[2] = buf[pos + 2];\r\n f8b[3] = buf[pos + 3];\r\n return f32[0];\r\n }\r\n\r\n function readFloat_f32_rev(buf, pos) {\r\n f8b[3] = buf[pos ];\r\n f8b[2] = buf[pos + 1];\r\n f8b[1] = buf[pos + 2];\r\n f8b[0] = buf[pos + 3];\r\n return f32[0];\r\n }\r\n\r\n /* istanbul ignore next */\r\n exports.readFloatLE = le ? readFloat_f32_cpy : readFloat_f32_rev;\r\n /* istanbul ignore next */\r\n exports.readFloatBE = le ? readFloat_f32_rev : readFloat_f32_cpy;\r\n\r\n // float: ieee754\r\n })(); else (function() {\r\n\r\n function writeFloat_ieee754(writeUint, val, buf, pos) {\r\n var sign = val < 0 ? 1 : 0;\r\n if (sign)\r\n val = -val;\r\n if (val === 0)\r\n writeUint(1 / val > 0 ? /* positive */ 0 : /* negative 0 */ 2147483648, buf, pos);\r\n else if (isNaN(val))\r\n writeUint(2143289344, buf, pos);\r\n else if (val > 3.4028234663852886e+38) // +-Infinity\r\n writeUint((sign << 31 | 2139095040) >>> 0, buf, pos);\r\n else if (val < 1.1754943508222875e-38) // denormal\r\n writeUint((sign << 31 | Math.round(val / 1.401298464324817e-45)) >>> 0, buf, pos);\r\n else {\r\n var exponent = Math.floor(Math.log(val) / Math.LN2),\r\n mantissa = Math.round(val * Math.pow(2, -exponent) * 8388608) & 8388607;\r\n writeUint((sign << 31 | exponent + 127 << 23 | mantissa) >>> 0, buf, pos);\r\n }\r\n }\r\n\r\n exports.writeFloatLE = writeFloat_ieee754.bind(null, writeUintLE);\r\n exports.writeFloatBE = writeFloat_ieee754.bind(null, writeUintBE);\r\n\r\n function readFloat_ieee754(readUint, buf, pos) {\r\n var uint = readUint(buf, pos),\r\n sign = (uint >> 31) * 2 + 1,\r\n exponent = uint >>> 23 & 255,\r\n mantissa = uint & 8388607;\r\n return exponent === 255\r\n ? mantissa\r\n ? NaN\r\n : sign * Infinity\r\n : exponent === 0 // denormal\r\n ? sign * 1.401298464324817e-45 * mantissa\r\n : sign * Math.pow(2, exponent - 150) * (mantissa + 8388608);\r\n }\r\n\r\n exports.readFloatLE = readFloat_ieee754.bind(null, readUintLE);\r\n exports.readFloatBE = readFloat_ieee754.bind(null, readUintBE);\r\n\r\n })();\r\n\r\n // double: typed array\r\n if (typeof Float64Array !== \"undefined\") (function() {\r\n\r\n var f64 = new Float64Array([-0]),\r\n f8b = new Uint8Array(f64.buffer),\r\n le = f8b[7] === 128;\r\n\r\n function writeDouble_f64_cpy(val, buf, pos) {\r\n f64[0] = val;\r\n buf[pos ] = f8b[0];\r\n buf[pos + 1] = f8b[1];\r\n buf[pos + 2] = f8b[2];\r\n buf[pos + 3] = f8b[3];\r\n buf[pos + 4] = f8b[4];\r\n buf[pos + 5] = f8b[5];\r\n buf[pos + 6] = f8b[6];\r\n buf[pos + 7] = f8b[7];\r\n }\r\n\r\n function writeDouble_f64_rev(val, buf, pos) {\r\n f64[0] = val;\r\n buf[pos ] = f8b[7];\r\n buf[pos + 1] = f8b[6];\r\n buf[pos + 2] = f8b[5];\r\n buf[pos + 3] = f8b[4];\r\n buf[pos + 4] = f8b[3];\r\n buf[pos + 5] = f8b[2];\r\n buf[pos + 6] = f8b[1];\r\n buf[pos + 7] = f8b[0];\r\n }\r\n\r\n /* istanbul ignore next */\r\n exports.writeDoubleLE = le ? writeDouble_f64_cpy : writeDouble_f64_rev;\r\n /* istanbul ignore next */\r\n exports.writeDoubleBE = le ? writeDouble_f64_rev : writeDouble_f64_cpy;\r\n\r\n function readDouble_f64_cpy(buf, pos) {\r\n f8b[0] = buf[pos ];\r\n f8b[1] = buf[pos + 1];\r\n f8b[2] = buf[pos + 2];\r\n f8b[3] = buf[pos + 3];\r\n f8b[4] = buf[pos + 4];\r\n f8b[5] = buf[pos + 5];\r\n f8b[6] = buf[pos + 6];\r\n f8b[7] = buf[pos + 7];\r\n return f64[0];\r\n }\r\n\r\n function readDouble_f64_rev(buf, pos) {\r\n f8b[7] = buf[pos ];\r\n f8b[6] = buf[pos + 1];\r\n f8b[5] = buf[pos + 2];\r\n f8b[4] = buf[pos + 3];\r\n f8b[3] = buf[pos + 4];\r\n f8b[2] = buf[pos + 5];\r\n f8b[1] = buf[pos + 6];\r\n f8b[0] = buf[pos + 7];\r\n return f64[0];\r\n }\r\n\r\n /* istanbul ignore next */\r\n exports.readDoubleLE = le ? readDouble_f64_cpy : readDouble_f64_rev;\r\n /* istanbul ignore next */\r\n exports.readDoubleBE = le ? readDouble_f64_rev : readDouble_f64_cpy;\r\n\r\n // double: ieee754\r\n })(); else (function() {\r\n\r\n function writeDouble_ieee754(writeUint, off0, off1, val, buf, pos) {\r\n var sign = val < 0 ? 1 : 0;\r\n if (sign)\r\n val = -val;\r\n if (val === 0) {\r\n writeUint(0, buf, pos + off0);\r\n writeUint(1 / val > 0 ? /* positive */ 0 : /* negative 0 */ 2147483648, buf, pos + off1);\r\n } else if (isNaN(val)) {\r\n writeUint(0, buf, pos + off0);\r\n writeUint(2146959360, buf, pos + off1);\r\n } else if (val > 1.7976931348623157e+308) { // +-Infinity\r\n writeUint(0, buf, pos + off0);\r\n writeUint((sign << 31 | 2146435072) >>> 0, buf, pos + off1);\r\n } else {\r\n var mantissa;\r\n if (val < 2.2250738585072014e-308) { // denormal\r\n mantissa = val / 5e-324;\r\n writeUint(mantissa >>> 0, buf, pos + off0);\r\n writeUint((sign << 31 | mantissa / 4294967296) >>> 0, buf, pos + off1);\r\n } else {\r\n var exponent = Math.floor(Math.log(val) / Math.LN2);\r\n if (exponent === 1024)\r\n exponent = 1023;\r\n mantissa = val * Math.pow(2, -exponent);\r\n writeUint(mantissa * 4503599627370496 >>> 0, buf, pos + off0);\r\n writeUint((sign << 31 | exponent + 1023 << 20 | mantissa * 1048576 & 1048575) >>> 0, buf, pos + off1);\r\n }\r\n }\r\n }\r\n\r\n exports.writeDoubleLE = writeDouble_ieee754.bind(null, writeUintLE, 0, 4);\r\n exports.writeDoubleBE = writeDouble_ieee754.bind(null, writeUintBE, 4, 0);\r\n\r\n function readDouble_ieee754(readUint, off0, off1, buf, pos) {\r\n var lo = readUint(buf, pos + off0),\r\n hi = readUint(buf, pos + off1);\r\n var sign = (hi >> 31) * 2 + 1,\r\n exponent = hi >>> 20 & 2047,\r\n mantissa = 4294967296 * (hi & 1048575) + lo;\r\n return exponent === 2047\r\n ? mantissa\r\n ? NaN\r\n : sign * Infinity\r\n : exponent === 0 // denormal\r\n ? sign * 5e-324 * mantissa\r\n : sign * Math.pow(2, exponent - 1075) * (mantissa + 4503599627370496);\r\n }\r\n\r\n exports.readDoubleLE = readDouble_ieee754.bind(null, readUintLE, 0, 4);\r\n exports.readDoubleBE = readDouble_ieee754.bind(null, readUintBE, 4, 0);\r\n\r\n })();\r\n\r\n return exports;\r\n}\r\n\r\n// uint helpers\r\n\r\nfunction writeUintLE(val, buf, pos) {\r\n buf[pos ] = val & 255;\r\n buf[pos + 1] = val >>> 8 & 255;\r\n buf[pos + 2] = val >>> 16 & 255;\r\n buf[pos + 3] = val >>> 24;\r\n}\r\n\r\nfunction writeUintBE(val, buf, pos) {\r\n buf[pos ] = val >>> 24;\r\n buf[pos + 1] = val >>> 16 & 255;\r\n buf[pos + 2] = val >>> 8 & 255;\r\n buf[pos + 3] = val & 255;\r\n}\r\n\r\nfunction readUintLE(buf, pos) {\r\n return (buf[pos ]\r\n | buf[pos + 1] << 8\r\n | buf[pos + 2] << 16\r\n | buf[pos + 3] << 24) >>> 0;\r\n}\r\n\r\nfunction readUintBE(buf, pos) {\r\n return (buf[pos ] << 24\r\n | buf[pos + 1] << 16\r\n | buf[pos + 2] << 8\r\n | buf[pos + 3]) >>> 0;\r\n}\r\n", "\"use strict\";\r\nmodule.exports = inquire;\r\n\r\n/**\r\n * Requires a module only if available.\r\n * @memberof util\r\n * @param {string} moduleName Module to require\r\n * @returns {?Object} Required module if available and not empty, otherwise `null`\r\n */\r\nfunction inquire(moduleName) {\r\n try {\r\n var mod = eval(\"quire\".replace(/^/,\"re\"))(moduleName); // eslint-disable-line no-eval\r\n if (mod && (mod.length || Object.keys(mod).length))\r\n return mod;\r\n } catch (e) {} // eslint-disable-line no-empty\r\n return null;\r\n}\r\n", "\"use strict\";\r\n\r\n/**\r\n * A minimal UTF8 implementation for number arrays.\r\n * @memberof util\r\n * @namespace\r\n */\r\nvar utf8 = exports;\r\n\r\n/**\r\n * Calculates the UTF8 byte length of a string.\r\n * @param {string} string String\r\n * @returns {number} Byte length\r\n */\r\nutf8.length = function utf8_length(string) {\r\n var len = 0,\r\n c = 0;\r\n for (var i = 0; i < string.length; ++i) {\r\n c = string.charCodeAt(i);\r\n if (c < 128)\r\n len += 1;\r\n else if (c < 2048)\r\n len += 2;\r\n else if ((c & 0xFC00) === 0xD800 && (string.charCodeAt(i + 1) & 0xFC00) === 0xDC00) {\r\n ++i;\r\n len += 4;\r\n } else\r\n len += 3;\r\n }\r\n return len;\r\n};\r\n\r\n/**\r\n * Reads UTF8 bytes as a string.\r\n * @param {Uint8Array} buffer Source buffer\r\n * @param {number} start Source start\r\n * @param {number} end Source end\r\n * @returns {string} String read\r\n */\r\nutf8.read = function utf8_read(buffer, start, end) {\r\n var len = end - start;\r\n if (len < 1)\r\n return \"\";\r\n var parts = null,\r\n chunk = [],\r\n i = 0, // char offset\r\n t; // temporary\r\n while (start < end) {\r\n t = buffer[start++];\r\n if (t < 128)\r\n chunk[i++] = t;\r\n else if (t > 191 && t < 224)\r\n chunk[i++] = (t & 31) << 6 | buffer[start++] & 63;\r\n else if (t > 239 && t < 365) {\r\n t = ((t & 7) << 18 | (buffer[start++] & 63) << 12 | (buffer[start++] & 63) << 6 | buffer[start++] & 63) - 0x10000;\r\n chunk[i++] = 0xD800 + (t >> 10);\r\n chunk[i++] = 0xDC00 + (t & 1023);\r\n } else\r\n chunk[i++] = (t & 15) << 12 | (buffer[start++] & 63) << 6 | buffer[start++] & 63;\r\n if (i > 8191) {\r\n (parts || (parts = [])).push(String.fromCharCode.apply(String, chunk));\r\n i = 0;\r\n }\r\n }\r\n if (parts) {\r\n if (i)\r\n parts.push(String.fromCharCode.apply(String, chunk.slice(0, i)));\r\n return parts.join(\"\");\r\n }\r\n return String.fromCharCode.apply(String, chunk.slice(0, i));\r\n};\r\n\r\n/**\r\n * Writes a string as UTF8 bytes.\r\n * @param {string} string Source string\r\n * @param {Uint8Array} buffer Destination buffer\r\n * @param {number} offset Destination offset\r\n * @returns {number} Bytes written\r\n */\r\nutf8.write = function utf8_write(string, buffer, offset) {\r\n var start = offset,\r\n c1, // character 1\r\n c2; // character 2\r\n for (var i = 0; i < string.length; ++i) {\r\n c1 = string.charCodeAt(i);\r\n if (c1 < 128) {\r\n buffer[offset++] = c1;\r\n } else if (c1 < 2048) {\r\n buffer[offset++] = c1 >> 6 | 192;\r\n buffer[offset++] = c1 & 63 | 128;\r\n } else if ((c1 & 0xFC00) === 0xD800 && ((c2 = string.charCodeAt(i + 1)) & 0xFC00) === 0xDC00) {\r\n c1 = 0x10000 + ((c1 & 0x03FF) << 10) + (c2 & 0x03FF);\r\n ++i;\r\n buffer[offset++] = c1 >> 18 | 240;\r\n buffer[offset++] = c1 >> 12 & 63 | 128;\r\n buffer[offset++] = c1 >> 6 & 63 | 128;\r\n buffer[offset++] = c1 & 63 | 128;\r\n } else {\r\n buffer[offset++] = c1 >> 12 | 224;\r\n buffer[offset++] = c1 >> 6 & 63 | 128;\r\n buffer[offset++] = c1 & 63 | 128;\r\n }\r\n }\r\n return offset - start;\r\n};\r\n", "\"use strict\";\r\nmodule.exports = pool;\r\n\r\n/**\r\n * An allocator as used by {@link util.pool}.\r\n * @typedef PoolAllocator\r\n * @type {function}\r\n * @param {number} size Buffer size\r\n * @returns {Uint8Array} Buffer\r\n */\r\n\r\n/**\r\n * A slicer as used by {@link util.pool}.\r\n * @typedef PoolSlicer\r\n * @type {function}\r\n * @param {number} start Start offset\r\n * @param {number} end End offset\r\n * @returns {Uint8Array} Buffer slice\r\n * @this {Uint8Array}\r\n */\r\n\r\n/**\r\n * A general purpose buffer pool.\r\n * @memberof util\r\n * @function\r\n * @param {PoolAllocator} alloc Allocator\r\n * @param {PoolSlicer} slice Slicer\r\n * @param {number} [size=8192] Slab size\r\n * @returns {PoolAllocator} Pooled allocator\r\n */\r\nfunction pool(alloc, slice, size) {\r\n var SIZE = size || 8192;\r\n var MAX = SIZE >>> 1;\r\n var slab = null;\r\n var offset = SIZE;\r\n return function pool_alloc(size) {\r\n if (size < 1 || size > MAX)\r\n return alloc(size);\r\n if (offset + size > SIZE) {\r\n slab = alloc(SIZE);\r\n offset = 0;\r\n }\r\n var buf = slice.call(slab, offset, offset += size);\r\n if (offset & 7) // align to 32 bit\r\n offset = (offset | 7) + 1;\r\n return buf;\r\n };\r\n}\r\n", "\"use strict\";\nmodule.exports = LongBits;\n\nvar util = require(\"../util/minimal\");\n\n/**\n * Constructs new long bits.\n * @classdesc Helper class for working with the low and high bits of a 64 bit value.\n * @memberof util\n * @constructor\n * @param {number} lo Low 32 bits, unsigned\n * @param {number} hi High 32 bits, unsigned\n */\nfunction LongBits(lo, hi) {\n\n // note that the casts below are theoretically unnecessary as of today, but older statically\n // generated converter code might still call the ctor with signed 32bits. kept for compat.\n\n /**\n * Low bits.\n * @type {number}\n */\n this.lo = lo >>> 0;\n\n /**\n * High bits.\n * @type {number}\n */\n this.hi = hi >>> 0;\n}\n\n/**\n * Zero bits.\n * @memberof util.LongBits\n * @type {util.LongBits}\n */\nvar zero = LongBits.zero = new LongBits(0, 0);\n\nzero.toNumber = function() { return 0; };\nzero.zzEncode = zero.zzDecode = function() { return this; };\nzero.length = function() { return 1; };\n\n/**\n * Zero hash.\n * @memberof util.LongBits\n * @type {string}\n */\nvar zeroHash = LongBits.zeroHash = \"\\0\\0\\0\\0\\0\\0\\0\\0\";\n\n/**\n * Constructs new long bits from the specified number.\n * @param {number} value Value\n * @returns {util.LongBits} Instance\n */\nLongBits.fromNumber = function fromNumber(value) {\n if (value === 0)\n return zero;\n var sign = value < 0;\n if (sign)\n value = -value;\n var lo = value >>> 0,\n hi = (value - lo) / 4294967296 >>> 0;\n if (sign) {\n hi = ~hi >>> 0;\n lo = ~lo >>> 0;\n if (++lo > 4294967295) {\n lo = 0;\n if (++hi > 4294967295)\n hi = 0;\n }\n }\n return new LongBits(lo, hi);\n};\n\n/**\n * Constructs new long bits from a number, long or string.\n * @param {Long|number|string} value Value\n * @returns {util.LongBits} Instance\n */\nLongBits.from = function from(value) {\n if (typeof value === \"number\")\n return LongBits.fromNumber(value);\n if (util.isString(value)) {\n /* istanbul ignore else */\n if (util.Long)\n value = util.Long.fromString(value);\n else\n return LongBits.fromNumber(parseInt(value, 10));\n }\n return value.low || value.high ? new LongBits(value.low >>> 0, value.high >>> 0) : zero;\n};\n\n/**\n * Converts this long bits to a possibly unsafe JavaScript number.\n * @param {boolean} [unsigned=false] Whether unsigned or not\n * @returns {number} Possibly unsafe number\n */\nLongBits.prototype.toNumber = function toNumber(unsigned) {\n if (!unsigned && this.hi >>> 31) {\n var lo = ~this.lo + 1 >>> 0,\n hi = ~this.hi >>> 0;\n if (!lo)\n hi = hi + 1 >>> 0;\n return -(lo + hi * 4294967296);\n }\n return this.lo + this.hi * 4294967296;\n};\n\n/**\n * Converts this long bits to a long.\n * @param {boolean} [unsigned=false] Whether unsigned or not\n * @returns {Long} Long\n */\nLongBits.prototype.toLong = function toLong(unsigned) {\n return util.Long\n ? new util.Long(this.lo | 0, this.hi | 0, Boolean(unsigned))\n /* istanbul ignore next */\n : { low: this.lo | 0, high: this.hi | 0, unsigned: Boolean(unsigned) };\n};\n\nvar charCodeAt = String.prototype.charCodeAt;\n\n/**\n * Constructs new long bits from the specified 8 characters long hash.\n * @param {string} hash Hash\n * @returns {util.LongBits} Bits\n */\nLongBits.fromHash = function fromHash(hash) {\n if (hash === zeroHash)\n return zero;\n return new LongBits(\n ( charCodeAt.call(hash, 0)\n | charCodeAt.call(hash, 1) << 8\n | charCodeAt.call(hash, 2) << 16\n | charCodeAt.call(hash, 3) << 24) >>> 0\n ,\n ( charCodeAt.call(hash, 4)\n | charCodeAt.call(hash, 5) << 8\n | charCodeAt.call(hash, 6) << 16\n | charCodeAt.call(hash, 7) << 24) >>> 0\n );\n};\n\n/**\n * Converts this long bits to a 8 characters long hash.\n * @returns {string} Hash\n */\nLongBits.prototype.toHash = function toHash() {\n return String.fromCharCode(\n this.lo & 255,\n this.lo >>> 8 & 255,\n this.lo >>> 16 & 255,\n this.lo >>> 24 ,\n this.hi & 255,\n this.hi >>> 8 & 255,\n this.hi >>> 16 & 255,\n this.hi >>> 24\n );\n};\n\n/**\n * Zig-zag encodes this long bits.\n * @returns {util.LongBits} `this`\n */\nLongBits.prototype.zzEncode = function zzEncode() {\n var mask = this.hi >> 31;\n this.hi = ((this.hi << 1 | this.lo >>> 31) ^ mask) >>> 0;\n this.lo = ( this.lo << 1 ^ mask) >>> 0;\n return this;\n};\n\n/**\n * Zig-zag decodes this long bits.\n * @returns {util.LongBits} `this`\n */\nLongBits.prototype.zzDecode = function zzDecode() {\n var mask = -(this.lo & 1);\n this.lo = ((this.lo >>> 1 | this.hi << 31) ^ mask) >>> 0;\n this.hi = ( this.hi >>> 1 ^ mask) >>> 0;\n return this;\n};\n\n/**\n * Calculates the length of this longbits when encoded as a varint.\n * @returns {number} Length\n */\nLongBits.prototype.length = function length() {\n var part0 = this.lo,\n part1 = (this.lo >>> 28 | this.hi << 4) >>> 0,\n part2 = this.hi >>> 24;\n return part2 === 0\n ? part1 === 0\n ? part0 < 16384\n ? part0 < 128 ? 1 : 2\n : part0 < 2097152 ? 3 : 4\n : part1 < 16384\n ? part1 < 128 ? 5 : 6\n : part1 < 2097152 ? 7 : 8\n : part2 < 128 ? 9 : 10;\n};\n", "\"use strict\";\nvar util = exports;\n\n// used to return a Promise where callback is omitted\nutil.asPromise = require(\"@protobufjs/aspromise\");\n\n// converts to / from base64 encoded strings\nutil.base64 = require(\"@protobufjs/base64\");\n\n// base class of rpc.Service\nutil.EventEmitter = require(\"@protobufjs/eventemitter\");\n\n// float handling accross browsers\nutil.float = require(\"@protobufjs/float\");\n\n// requires modules optionally and hides the call from bundlers\nutil.inquire = require(\"@protobufjs/inquire\");\n\n// converts to / from utf8 encoded strings\nutil.utf8 = require(\"@protobufjs/utf8\");\n\n// provides a node-like buffer pool in the browser\nutil.pool = require(\"@protobufjs/pool\");\n\n// utility to work with the low and high bits of a 64 bit value\nutil.LongBits = require(\"./longbits\");\n\n/**\n * Whether running within node or not.\n * @memberof util\n * @type {boolean}\n */\nutil.isNode = Boolean(typeof global !== \"undefined\"\n && global\n && global.process\n && global.process.versions\n && global.process.versions.node);\n\n/**\n * Global object reference.\n * @memberof util\n * @type {Object}\n */\nutil.global = util.isNode && global\n || typeof window !== \"undefined\" && window\n || typeof self !== \"undefined\" && self\n || this; // eslint-disable-line no-invalid-this\n\n/**\n * An immuable empty array.\n * @memberof util\n * @type {Array.<*>}\n * @const\n */\nutil.emptyArray = Object.freeze ? Object.freeze([]) : /* istanbul ignore next */ []; // used on prototypes\n\n/**\n * An immutable empty object.\n * @type {Object}\n * @const\n */\nutil.emptyObject = Object.freeze ? Object.freeze({}) : /* istanbul ignore next */ {}; // used on prototypes\n\n/**\n * Tests if the specified value is an integer.\n * @function\n * @param {*} value Value to test\n * @returns {boolean} `true` if the value is an integer\n */\nutil.isInteger = Number.isInteger || /* istanbul ignore next */ function isInteger(value) {\n return typeof value === \"number\" && isFinite(value) && Math.floor(value) === value;\n};\n\n/**\n * Tests if the specified value is a string.\n * @param {*} value Value to test\n * @returns {boolean} `true` if the value is a string\n */\nutil.isString = function isString(value) {\n return typeof value === \"string\" || value instanceof String;\n};\n\n/**\n * Tests if the specified value is a non-null object.\n * @param {*} value Value to test\n * @returns {boolean} `true` if the value is a non-null object\n */\nutil.isObject = function isObject(value) {\n return value && typeof value === \"object\";\n};\n\n/**\n * Checks if a property on a message is considered to be present.\n * This is an alias of {@link util.isSet}.\n * @function\n * @param {Object} obj Plain object or message instance\n * @param {string} prop Property name\n * @returns {boolean} `true` if considered to be present, otherwise `false`\n */\nutil.isset =\n\n/**\n * Checks if a property on a message is considered to be present.\n * @param {Object} obj Plain object or message instance\n * @param {string} prop Property name\n * @returns {boolean} `true` if considered to be present, otherwise `false`\n */\nutil.isSet = function isSet(obj, prop) {\n var value = obj[prop];\n if (value != null && obj.hasOwnProperty(prop)) // eslint-disable-line eqeqeq, no-prototype-builtins\n return typeof value !== \"object\" || (Array.isArray(value) ? value.length : Object.keys(value).length) > 0;\n return false;\n};\n\n/**\n * Any compatible Buffer instance.\n * This is a minimal stand-alone definition of a Buffer instance. The actual type is that exported by node's typings.\n * @interface Buffer\n * @extends Uint8Array\n */\n\n/**\n * Node's Buffer class if available.\n * @type {Constructor}\n */\nutil.Buffer = (function() {\n try {\n var Buffer = util.inquire(\"buffer\").Buffer;\n // refuse to use non-node buffers if not explicitly assigned (perf reasons):\n return Buffer.prototype.utf8Write ? Buffer : /* istanbul ignore next */ null;\n } catch (e) {\n /* istanbul ignore next */\n return null;\n }\n})();\n\n// Internal alias of or polyfull for Buffer.from.\nutil._Buffer_from = null;\n\n// Internal alias of or polyfill for Buffer.allocUnsafe.\nutil._Buffer_allocUnsafe = null;\n\n/**\n * Creates a new buffer of whatever type supported by the environment.\n * @param {number|number[]} [sizeOrArray=0] Buffer size or number array\n * @returns {Uint8Array|Buffer} Buffer\n */\nutil.newBuffer = function newBuffer(sizeOrArray) {\n /* istanbul ignore next */\n return typeof sizeOrArray === \"number\"\n ? util.Buffer\n ? util._Buffer_allocUnsafe(sizeOrArray)\n : new util.Array(sizeOrArray)\n : util.Buffer\n ? util._Buffer_from(sizeOrArray)\n : typeof Uint8Array === \"undefined\"\n ? sizeOrArray\n : new Uint8Array(sizeOrArray);\n};\n\n/**\n * Array implementation used in the browser. `Uint8Array` if supported, otherwise `Array`.\n * @type {Constructor}\n */\nutil.Array = typeof Uint8Array !== \"undefined\" ? Uint8Array /* istanbul ignore next */ : Array;\n\n/**\n * Any compatible Long instance.\n * This is a minimal stand-alone definition of a Long instance. The actual type is that exported by long.js.\n * @interface Long\n * @property {number} low Low bits\n * @property {number} high High bits\n * @property {boolean} unsigned Whether unsigned or not\n */\n\n/**\n * Long.js's Long class if available.\n * @type {Constructor}\n */\nutil.Long = /* istanbul ignore next */ util.global.dcodeIO && /* istanbul ignore next */ util.global.dcodeIO.Long\n || /* istanbul ignore next */ util.global.Long\n || util.inquire(\"long\");\n\n/**\n * Regular expression used to verify 2 bit (`bool`) map keys.\n * @type {RegExp}\n * @const\n */\nutil.key2Re = /^true|false|0|1$/;\n\n/**\n * Regular expression used to verify 32 bit (`int32` etc.) map keys.\n * @type {RegExp}\n * @const\n */\nutil.key32Re = /^-?(?:0|[1-9][0-9]*)$/;\n\n/**\n * Regular expression used to verify 64 bit (`int64` etc.) map keys.\n * @type {RegExp}\n * @const\n */\nutil.key64Re = /^(?:[\\\\x00-\\\\xff]{8}|-?(?:0|[1-9][0-9]*))$/;\n\n/**\n * Converts a number or long to an 8 characters long hash string.\n * @param {Long|number} value Value to convert\n * @returns {string} Hash\n */\nutil.longToHash = function longToHash(value) {\n return value\n ? util.LongBits.from(value).toHash()\n : util.LongBits.zeroHash;\n};\n\n/**\n * Converts an 8 characters long hash string to a long or number.\n * @param {string} hash Hash\n * @param {boolean} [unsigned=false] Whether unsigned or not\n * @returns {Long|number} Original value\n */\nutil.longFromHash = function longFromHash(hash, unsigned) {\n var bits = util.LongBits.fromHash(hash);\n if (util.Long)\n return util.Long.fromBits(bits.lo, bits.hi, unsigned);\n return bits.toNumber(Boolean(unsigned));\n};\n\n/**\n * Merges the properties of the source object into the destination object.\n * @memberof util\n * @param {Object.} dst Destination object\n * @param {Object.} src Source object\n * @param {boolean} [ifNotSet=false] Merges only if the key is not already set\n * @returns {Object.} Destination object\n */\nfunction merge(dst, src, ifNotSet) { // used by converters\n for (var keys = Object.keys(src), i = 0; i < keys.length; ++i)\n if (dst[keys[i]] === undefined || !ifNotSet)\n dst[keys[i]] = src[keys[i]];\n return dst;\n}\n\nutil.merge = merge;\n\n/**\n * Converts the first character of a string to lower case.\n * @param {string} str String to convert\n * @returns {string} Converted string\n */\nutil.lcFirst = function lcFirst(str) {\n return str.charAt(0).toLowerCase() + str.substring(1);\n};\n\n/**\n * Creates a custom error constructor.\n * @memberof util\n * @param {string} name Error name\n * @returns {Constructor} Custom error constructor\n */\nfunction newError(name) {\n\n function CustomError(message, properties) {\n\n if (!(this instanceof CustomError))\n return new CustomError(message, properties);\n\n // Error.call(this, message);\n // ^ just returns a new error instance because the ctor can be called as a function\n\n Object.defineProperty(this, \"message\", { get: function() { return message; } });\n\n /* istanbul ignore next */\n if (Error.captureStackTrace) // node\n Error.captureStackTrace(this, CustomError);\n else\n Object.defineProperty(this, \"stack\", { value: new Error().stack || \"\" });\n\n if (properties)\n merge(this, properties);\n }\n\n (CustomError.prototype = Object.create(Error.prototype)).constructor = CustomError;\n\n Object.defineProperty(CustomError.prototype, \"name\", { get: function() { return name; } });\n\n CustomError.prototype.toString = function toString() {\n return this.name + \": \" + this.message;\n };\n\n return CustomError;\n}\n\nutil.newError = newError;\n\n/**\n * Constructs a new protocol error.\n * @classdesc Error subclass indicating a protocol specifc error.\n * @memberof util\n * @extends Error\n * @template T extends Message\n * @constructor\n * @param {string} message Error message\n * @param {Object.} [properties] Additional properties\n * @example\n * try {\n * MyMessage.decode(someBuffer); // throws if required fields are missing\n * } catch (e) {\n * if (e instanceof ProtocolError && e.instance)\n * console.log(\"decoded so far: \" + JSON.stringify(e.instance));\n * }\n */\nutil.ProtocolError = newError(\"ProtocolError\");\n\n/**\n * So far decoded message instance.\n * @name util.ProtocolError#instance\n * @type {Message}\n */\n\n/**\n * A OneOf getter as returned by {@link util.oneOfGetter}.\n * @typedef OneOfGetter\n * @type {function}\n * @returns {string|undefined} Set field name, if any\n */\n\n/**\n * Builds a getter for a oneof's present field name.\n * @param {string[]} fieldNames Field names\n * @returns {OneOfGetter} Unbound getter\n */\nutil.oneOfGetter = function getOneOf(fieldNames) {\n var fieldMap = {};\n for (var i = 0; i < fieldNames.length; ++i)\n fieldMap[fieldNames[i]] = 1;\n\n /**\n * @returns {string|undefined} Set field name, if any\n * @this Object\n * @ignore\n */\n return function() { // eslint-disable-line consistent-return\n for (var keys = Object.keys(this), i = keys.length - 1; i > -1; --i)\n if (fieldMap[keys[i]] === 1 && this[keys[i]] !== undefined && this[keys[i]] !== null)\n return keys[i];\n };\n};\n\n/**\n * A OneOf setter as returned by {@link util.oneOfSetter}.\n * @typedef OneOfSetter\n * @type {function}\n * @param {string|undefined} value Field name\n * @returns {undefined}\n */\n\n/**\n * Builds a setter for a oneof's present field name.\n * @param {string[]} fieldNames Field names\n * @returns {OneOfSetter} Unbound setter\n */\nutil.oneOfSetter = function setOneOf(fieldNames) {\n\n /**\n * @param {string} name Field name\n * @returns {undefined}\n * @this Object\n * @ignore\n */\n return function(name) {\n for (var i = 0; i < fieldNames.length; ++i)\n if (fieldNames[i] !== name)\n delete this[fieldNames[i]];\n };\n};\n\n/**\n * Default conversion options used for {@link Message#toJSON} implementations.\n *\n * These options are close to proto3's JSON mapping with the exception that internal types like Any are handled just like messages. More precisely:\n *\n * - Longs become strings\n * - Enums become string keys\n * - Bytes become base64 encoded strings\n * - (Sub-)Messages become plain objects\n * - Maps become plain objects with all string keys\n * - Repeated fields become arrays\n * - NaN and Infinity for float and double fields become strings\n *\n * @type {IConversionOptions}\n * @see https://developers.google.com/protocol-buffers/docs/proto3?hl=en#json\n */\nutil.toJSONOptions = {\n longs: String,\n enums: String,\n bytes: String,\n json: true\n};\n\n// Sets up buffer utility according to the environment (called in index-minimal)\nutil._configure = function() {\n var Buffer = util.Buffer;\n /* istanbul ignore if */\n if (!Buffer) {\n util._Buffer_from = util._Buffer_allocUnsafe = null;\n return;\n }\n // because node 4.x buffers are incompatible & immutable\n // see: https://github.com/dcodeIO/protobuf.js/pull/665\n util._Buffer_from = Buffer.from !== Uint8Array.from && Buffer.from ||\n /* istanbul ignore next */\n function Buffer_from(value, encoding) {\n return new Buffer(value, encoding);\n };\n util._Buffer_allocUnsafe = Buffer.allocUnsafe ||\n /* istanbul ignore next */\n function Buffer_allocUnsafe(size) {\n return new Buffer(size);\n };\n};\n", "\"use strict\";\nmodule.exports = Writer;\n\nvar util = require(\"./util/minimal\");\n\nvar BufferWriter; // cyclic\n\nvar LongBits = util.LongBits,\n base64 = util.base64,\n utf8 = util.utf8;\n\n/**\n * Constructs a new writer operation instance.\n * @classdesc Scheduled writer operation.\n * @constructor\n * @param {function(*, Uint8Array, number)} fn Function to call\n * @param {number} len Value byte length\n * @param {*} val Value to write\n * @ignore\n */\nfunction Op(fn, len, val) {\n\n /**\n * Function to call.\n * @type {function(Uint8Array, number, *)}\n */\n this.fn = fn;\n\n /**\n * Value byte length.\n * @type {number}\n */\n this.len = len;\n\n /**\n * Next operation.\n * @type {Writer.Op|undefined}\n */\n this.next = undefined;\n\n /**\n * Value to write.\n * @type {*}\n */\n this.val = val; // type varies\n}\n\n/* istanbul ignore next */\nfunction noop() {} // eslint-disable-line no-empty-function\n\n/**\n * Constructs a new writer state instance.\n * @classdesc Copied writer state.\n * @memberof Writer\n * @constructor\n * @param {Writer} writer Writer to copy state from\n * @ignore\n */\nfunction State(writer) {\n\n /**\n * Current head.\n * @type {Writer.Op}\n */\n this.head = writer.head;\n\n /**\n * Current tail.\n * @type {Writer.Op}\n */\n this.tail = writer.tail;\n\n /**\n * Current buffer length.\n * @type {number}\n */\n this.len = writer.len;\n\n /**\n * Next state.\n * @type {State|null}\n */\n this.next = writer.states;\n}\n\n/**\n * Constructs a new writer instance.\n * @classdesc Wire format writer using `Uint8Array` if available, otherwise `Array`.\n * @constructor\n */\nfunction Writer() {\n\n /**\n * Current length.\n * @type {number}\n */\n this.len = 0;\n\n /**\n * Operations head.\n * @type {Object}\n */\n this.head = new Op(noop, 0, 0);\n\n /**\n * Operations tail\n * @type {Object}\n */\n this.tail = this.head;\n\n /**\n * Linked forked states.\n * @type {Object|null}\n */\n this.states = null;\n\n // When a value is written, the writer calculates its byte length and puts it into a linked\n // list of operations to perform when finish() is called. This both allows us to allocate\n // buffers of the exact required size and reduces the amount of work we have to do compared\n // to first calculating over objects and then encoding over objects. In our case, the encoding\n // part is just a linked list walk calling operations with already prepared values.\n}\n\nvar create = function create() {\n return util.Buffer\n ? function create_buffer_setup() {\n return (Writer.create = function create_buffer() {\n return new BufferWriter();\n })();\n }\n /* istanbul ignore next */\n : function create_array() {\n return new Writer();\n };\n};\n\n/**\n * Creates a new writer.\n * @function\n * @returns {BufferWriter|Writer} A {@link BufferWriter} when Buffers are supported, otherwise a {@link Writer}\n */\nWriter.create = create();\n\n/**\n * Allocates a buffer of the specified size.\n * @param {number} size Buffer size\n * @returns {Uint8Array} Buffer\n */\nWriter.alloc = function alloc(size) {\n return new util.Array(size);\n};\n\n// Use Uint8Array buffer pool in the browser, just like node does with buffers\n/* istanbul ignore else */\nif (util.Array !== Array)\n Writer.alloc = util.pool(Writer.alloc, util.Array.prototype.subarray);\n\n/**\n * Pushes a new operation to the queue.\n * @param {function(Uint8Array, number, *)} fn Function to call\n * @param {number} len Value byte length\n * @param {number} val Value to write\n * @returns {Writer} `this`\n * @private\n */\nWriter.prototype._push = function push(fn, len, val) {\n this.tail = this.tail.next = new Op(fn, len, val);\n this.len += len;\n return this;\n};\n\nfunction writeByte(val, buf, pos) {\n buf[pos] = val & 255;\n}\n\nfunction writeVarint32(val, buf, pos) {\n while (val > 127) {\n buf[pos++] = val & 127 | 128;\n val >>>= 7;\n }\n buf[pos] = val;\n}\n\n/**\n * Constructs a new varint writer operation instance.\n * @classdesc Scheduled varint writer operation.\n * @extends Op\n * @constructor\n * @param {number} len Value byte length\n * @param {number} val Value to write\n * @ignore\n */\nfunction VarintOp(len, val) {\n this.len = len;\n this.next = undefined;\n this.val = val;\n}\n\nVarintOp.prototype = Object.create(Op.prototype);\nVarintOp.prototype.fn = writeVarint32;\n\n/**\n * Writes an unsigned 32 bit value as a varint.\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.uint32 = function write_uint32(value) {\n // here, the call to this.push has been inlined and a varint specific Op subclass is used.\n // uint32 is by far the most frequently used operation and benefits significantly from this.\n this.len += (this.tail = this.tail.next = new VarintOp(\n (value = value >>> 0)\n < 128 ? 1\n : value < 16384 ? 2\n : value < 2097152 ? 3\n : value < 268435456 ? 4\n : 5,\n value)).len;\n return this;\n};\n\n/**\n * Writes a signed 32 bit value as a varint.\n * @function\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.int32 = function write_int32(value) {\n return value < 0\n ? this._push(writeVarint64, 10, LongBits.fromNumber(value)) // 10 bytes per spec\n : this.uint32(value);\n};\n\n/**\n * Writes a 32 bit value as a varint, zig-zag encoded.\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.sint32 = function write_sint32(value) {\n return this.uint32((value << 1 ^ value >> 31) >>> 0);\n};\n\nfunction writeVarint64(val, buf, pos) {\n while (val.hi) {\n buf[pos++] = val.lo & 127 | 128;\n val.lo = (val.lo >>> 7 | val.hi << 25) >>> 0;\n val.hi >>>= 7;\n }\n while (val.lo > 127) {\n buf[pos++] = val.lo & 127 | 128;\n val.lo = val.lo >>> 7;\n }\n buf[pos++] = val.lo;\n}\n\n/**\n * Writes an unsigned 64 bit value as a varint.\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.uint64 = function write_uint64(value) {\n var bits = LongBits.from(value);\n return this._push(writeVarint64, bits.length(), bits);\n};\n\n/**\n * Writes a signed 64 bit value as a varint.\n * @function\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.int64 = Writer.prototype.uint64;\n\n/**\n * Writes a signed 64 bit value as a varint, zig-zag encoded.\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.sint64 = function write_sint64(value) {\n var bits = LongBits.from(value).zzEncode();\n return this._push(writeVarint64, bits.length(), bits);\n};\n\n/**\n * Writes a boolish value as a varint.\n * @param {boolean} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.bool = function write_bool(value) {\n return this._push(writeByte, 1, value ? 1 : 0);\n};\n\nfunction writeFixed32(val, buf, pos) {\n buf[pos ] = val & 255;\n buf[pos + 1] = val >>> 8 & 255;\n buf[pos + 2] = val >>> 16 & 255;\n buf[pos + 3] = val >>> 24;\n}\n\n/**\n * Writes an unsigned 32 bit value as fixed 32 bits.\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.fixed32 = function write_fixed32(value) {\n return this._push(writeFixed32, 4, value >>> 0);\n};\n\n/**\n * Writes a signed 32 bit value as fixed 32 bits.\n * @function\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.sfixed32 = Writer.prototype.fixed32;\n\n/**\n * Writes an unsigned 64 bit value as fixed 64 bits.\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.fixed64 = function write_fixed64(value) {\n var bits = LongBits.from(value);\n return this._push(writeFixed32, 4, bits.lo)._push(writeFixed32, 4, bits.hi);\n};\n\n/**\n * Writes a signed 64 bit value as fixed 64 bits.\n * @function\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.sfixed64 = Writer.prototype.fixed64;\n\n/**\n * Writes a float (32 bit).\n * @function\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.float = function write_float(value) {\n return this._push(util.float.writeFloatLE, 4, value);\n};\n\n/**\n * Writes a double (64 bit float).\n * @function\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.double = function write_double(value) {\n return this._push(util.float.writeDoubleLE, 8, value);\n};\n\nvar writeBytes = util.Array.prototype.set\n ? function writeBytes_set(val, buf, pos) {\n buf.set(val, pos); // also works for plain array values\n }\n /* istanbul ignore next */\n : function writeBytes_for(val, buf, pos) {\n for (var i = 0; i < val.length; ++i)\n buf[pos + i] = val[i];\n };\n\n/**\n * Writes a sequence of bytes.\n * @param {Uint8Array|string} value Buffer or base64 encoded string to write\n * @returns {Writer} `this`\n */\nWriter.prototype.bytes = function write_bytes(value) {\n var len = value.length >>> 0;\n if (!len)\n return this._push(writeByte, 1, 0);\n if (util.isString(value)) {\n var buf = Writer.alloc(len = base64.length(value));\n base64.decode(value, buf, 0);\n value = buf;\n }\n return this.uint32(len)._push(writeBytes, len, value);\n};\n\n/**\n * Writes a string.\n * @param {string} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.string = function write_string(value) {\n var len = utf8.length(value);\n return len\n ? this.uint32(len)._push(utf8.write, len, value)\n : this._push(writeByte, 1, 0);\n};\n\n/**\n * Forks this writer's state by pushing it to a stack.\n * Calling {@link Writer#reset|reset} or {@link Writer#ldelim|ldelim} resets the writer to the previous state.\n * @returns {Writer} `this`\n */\nWriter.prototype.fork = function fork() {\n this.states = new State(this);\n this.head = this.tail = new Op(noop, 0, 0);\n this.len = 0;\n return this;\n};\n\n/**\n * Resets this instance to the last state.\n * @returns {Writer} `this`\n */\nWriter.prototype.reset = function reset() {\n if (this.states) {\n this.head = this.states.head;\n this.tail = this.states.tail;\n this.len = this.states.len;\n this.states = this.states.next;\n } else {\n this.head = this.tail = new Op(noop, 0, 0);\n this.len = 0;\n }\n return this;\n};\n\n/**\n * Resets to the last state and appends the fork state's current write length as a varint followed by its operations.\n * @returns {Writer} `this`\n */\nWriter.prototype.ldelim = function ldelim() {\n var head = this.head,\n tail = this.tail,\n len = this.len;\n this.reset().uint32(len);\n if (len) {\n this.tail.next = head.next; // skip noop\n this.tail = tail;\n this.len += len;\n }\n return this;\n};\n\n/**\n * Finishes the write operation.\n * @returns {Uint8Array} Finished buffer\n */\nWriter.prototype.finish = function finish() {\n var head = this.head.next, // skip noop\n buf = this.constructor.alloc(this.len),\n pos = 0;\n while (head) {\n head.fn(head.val, buf, pos);\n pos += head.len;\n head = head.next;\n }\n // this.head = this.tail = null;\n return buf;\n};\n\nWriter._configure = function(BufferWriter_) {\n BufferWriter = BufferWriter_;\n Writer.create = create();\n BufferWriter._configure();\n};\n", "\"use strict\";\nmodule.exports = BufferWriter;\n\n// extends Writer\nvar Writer = require(\"./writer\");\n(BufferWriter.prototype = Object.create(Writer.prototype)).constructor = BufferWriter;\n\nvar util = require(\"./util/minimal\");\n\n/**\n * Constructs a new buffer writer instance.\n * @classdesc Wire format writer using node buffers.\n * @extends Writer\n * @constructor\n */\nfunction BufferWriter() {\n Writer.call(this);\n}\n\nBufferWriter._configure = function () {\n /**\n * Allocates a buffer of the specified size.\n * @function\n * @param {number} size Buffer size\n * @returns {Buffer} Buffer\n */\n BufferWriter.alloc = util._Buffer_allocUnsafe;\n\n BufferWriter.writeBytesBuffer = util.Buffer && util.Buffer.prototype instanceof Uint8Array && util.Buffer.prototype.set.name === \"set\"\n ? function writeBytesBuffer_set(val, buf, pos) {\n buf.set(val, pos); // faster than copy (requires node >= 4 where Buffers extend Uint8Array and set is properly inherited)\n // also works for plain array values\n }\n /* istanbul ignore next */\n : function writeBytesBuffer_copy(val, buf, pos) {\n if (val.copy) // Buffer values\n val.copy(buf, pos, 0, val.length);\n else for (var i = 0; i < val.length;) // plain array values\n buf[pos++] = val[i++];\n };\n};\n\n\n/**\n * @override\n */\nBufferWriter.prototype.bytes = function write_bytes_buffer(value) {\n if (util.isString(value))\n value = util._Buffer_from(value, \"base64\");\n var len = value.length >>> 0;\n this.uint32(len);\n if (len)\n this._push(BufferWriter.writeBytesBuffer, len, value);\n return this;\n};\n\nfunction writeStringBuffer(val, buf, pos) {\n if (val.length < 40) // plain js is faster for short strings (probably due to redundant assertions)\n util.utf8.write(val, buf, pos);\n else if (buf.utf8Write)\n buf.utf8Write(val, pos);\n else\n buf.write(val, pos);\n}\n\n/**\n * @override\n */\nBufferWriter.prototype.string = function write_string_buffer(value) {\n var len = util.Buffer.byteLength(value);\n this.uint32(len);\n if (len)\n this._push(writeStringBuffer, len, value);\n return this;\n};\n\n\n/**\n * Finishes the write operation.\n * @name BufferWriter#finish\n * @function\n * @returns {Buffer} Finished buffer\n */\n\nBufferWriter._configure();\n", "\"use strict\";\nmodule.exports = Reader;\n\nvar util = require(\"./util/minimal\");\n\nvar BufferReader; // cyclic\n\nvar LongBits = util.LongBits,\n utf8 = util.utf8;\n\n/* istanbul ignore next */\nfunction indexOutOfRange(reader, writeLength) {\n return RangeError(\"index out of range: \" + reader.pos + \" + \" + (writeLength || 1) + \" > \" + reader.len);\n}\n\n/**\n * Constructs a new reader instance using the specified buffer.\n * @classdesc Wire format reader using `Uint8Array` if available, otherwise `Array`.\n * @constructor\n * @param {Uint8Array} buffer Buffer to read from\n */\nfunction Reader(buffer) {\n\n /**\n * Read buffer.\n * @type {Uint8Array}\n */\n this.buf = buffer;\n\n /**\n * Read buffer position.\n * @type {number}\n */\n this.pos = 0;\n\n /**\n * Read buffer length.\n * @type {number}\n */\n this.len = buffer.length;\n}\n\nvar create_array = typeof Uint8Array !== \"undefined\"\n ? function create_typed_array(buffer) {\n if (buffer instanceof Uint8Array || Array.isArray(buffer))\n return new Reader(buffer);\n throw Error(\"illegal buffer\");\n }\n /* istanbul ignore next */\n : function create_array(buffer) {\n if (Array.isArray(buffer))\n return new Reader(buffer);\n throw Error(\"illegal buffer\");\n };\n\nvar create = function create() {\n return util.Buffer\n ? function create_buffer_setup(buffer) {\n return (Reader.create = function create_buffer(buffer) {\n return util.Buffer.isBuffer(buffer)\n ? new BufferReader(buffer)\n /* istanbul ignore next */\n : create_array(buffer);\n })(buffer);\n }\n /* istanbul ignore next */\n : create_array;\n};\n\n/**\n * Creates a new reader using the specified buffer.\n * @function\n * @param {Uint8Array|Buffer} buffer Buffer to read from\n * @returns {Reader|BufferReader} A {@link BufferReader} if `buffer` is a Buffer, otherwise a {@link Reader}\n * @throws {Error} If `buffer` is not a valid buffer\n */\nReader.create = create();\n\nReader.prototype._slice = util.Array.prototype.subarray || /* istanbul ignore next */ util.Array.prototype.slice;\n\n/**\n * Reads a varint as an unsigned 32 bit value.\n * @function\n * @returns {number} Value read\n */\nReader.prototype.uint32 = (function read_uint32_setup() {\n var value = 4294967295; // optimizer type-hint, tends to deopt otherwise (?!)\n return function read_uint32() {\n value = ( this.buf[this.pos] & 127 ) >>> 0; if (this.buf[this.pos++] < 128) return value;\n value = (value | (this.buf[this.pos] & 127) << 7) >>> 0; if (this.buf[this.pos++] < 128) return value;\n value = (value | (this.buf[this.pos] & 127) << 14) >>> 0; if (this.buf[this.pos++] < 128) return value;\n value = (value | (this.buf[this.pos] & 127) << 21) >>> 0; if (this.buf[this.pos++] < 128) return value;\n value = (value | (this.buf[this.pos] & 15) << 28) >>> 0; if (this.buf[this.pos++] < 128) return value;\n\n /* istanbul ignore if */\n if ((this.pos += 5) > this.len) {\n this.pos = this.len;\n throw indexOutOfRange(this, 10);\n }\n return value;\n };\n})();\n\n/**\n * Reads a varint as a signed 32 bit value.\n * @returns {number} Value read\n */\nReader.prototype.int32 = function read_int32() {\n return this.uint32() | 0;\n};\n\n/**\n * Reads a zig-zag encoded varint as a signed 32 bit value.\n * @returns {number} Value read\n */\nReader.prototype.sint32 = function read_sint32() {\n var value = this.uint32();\n return value >>> 1 ^ -(value & 1) | 0;\n};\n\n/* eslint-disable no-invalid-this */\n\nfunction readLongVarint() {\n // tends to deopt with local vars for octet etc.\n var bits = new LongBits(0, 0);\n var i = 0;\n if (this.len - this.pos > 4) { // fast route (lo)\n for (; i < 4; ++i) {\n // 1st..4th\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << i * 7) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n }\n // 5th\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << 28) >>> 0;\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) >> 4) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n i = 0;\n } else {\n for (; i < 3; ++i) {\n /* istanbul ignore if */\n if (this.pos >= this.len)\n throw indexOutOfRange(this);\n // 1st..3th\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << i * 7) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n }\n // 4th\n bits.lo = (bits.lo | (this.buf[this.pos++] & 127) << i * 7) >>> 0;\n return bits;\n }\n if (this.len - this.pos > 4) { // fast route (hi)\n for (; i < 5; ++i) {\n // 6th..10th\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) << i * 7 + 3) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n }\n } else {\n for (; i < 5; ++i) {\n /* istanbul ignore if */\n if (this.pos >= this.len)\n throw indexOutOfRange(this);\n // 6th..10th\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) << i * 7 + 3) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n }\n }\n /* istanbul ignore next */\n throw Error(\"invalid varint encoding\");\n}\n\n/* eslint-enable no-invalid-this */\n\n/**\n * Reads a varint as a signed 64 bit value.\n * @name Reader#int64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads a varint as an unsigned 64 bit value.\n * @name Reader#uint64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads a zig-zag encoded varint as a signed 64 bit value.\n * @name Reader#sint64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads a varint as a boolean.\n * @returns {boolean} Value read\n */\nReader.prototype.bool = function read_bool() {\n return this.uint32() !== 0;\n};\n\nfunction readFixed32_end(buf, end) { // note that this uses `end`, not `pos`\n return (buf[end - 4]\n | buf[end - 3] << 8\n | buf[end - 2] << 16\n | buf[end - 1] << 24) >>> 0;\n}\n\n/**\n * Reads fixed 32 bits as an unsigned 32 bit integer.\n * @returns {number} Value read\n */\nReader.prototype.fixed32 = function read_fixed32() {\n\n /* istanbul ignore if */\n if (this.pos + 4 > this.len)\n throw indexOutOfRange(this, 4);\n\n return readFixed32_end(this.buf, this.pos += 4);\n};\n\n/**\n * Reads fixed 32 bits as a signed 32 bit integer.\n * @returns {number} Value read\n */\nReader.prototype.sfixed32 = function read_sfixed32() {\n\n /* istanbul ignore if */\n if (this.pos + 4 > this.len)\n throw indexOutOfRange(this, 4);\n\n return readFixed32_end(this.buf, this.pos += 4) | 0;\n};\n\n/* eslint-disable no-invalid-this */\n\nfunction readFixed64(/* this: Reader */) {\n\n /* istanbul ignore if */\n if (this.pos + 8 > this.len)\n throw indexOutOfRange(this, 8);\n\n return new LongBits(readFixed32_end(this.buf, this.pos += 4), readFixed32_end(this.buf, this.pos += 4));\n}\n\n/* eslint-enable no-invalid-this */\n\n/**\n * Reads fixed 64 bits.\n * @name Reader#fixed64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads zig-zag encoded fixed 64 bits.\n * @name Reader#sfixed64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads a float (32 bit) as a number.\n * @function\n * @returns {number} Value read\n */\nReader.prototype.float = function read_float() {\n\n /* istanbul ignore if */\n if (this.pos + 4 > this.len)\n throw indexOutOfRange(this, 4);\n\n var value = util.float.readFloatLE(this.buf, this.pos);\n this.pos += 4;\n return value;\n};\n\n/**\n * Reads a double (64 bit float) as a number.\n * @function\n * @returns {number} Value read\n */\nReader.prototype.double = function read_double() {\n\n /* istanbul ignore if */\n if (this.pos + 8 > this.len)\n throw indexOutOfRange(this, 4);\n\n var value = util.float.readDoubleLE(this.buf, this.pos);\n this.pos += 8;\n return value;\n};\n\n/**\n * Reads a sequence of bytes preceeded by its length as a varint.\n * @returns {Uint8Array} Value read\n */\nReader.prototype.bytes = function read_bytes() {\n var length = this.uint32(),\n start = this.pos,\n end = this.pos + length;\n\n /* istanbul ignore if */\n if (end > this.len)\n throw indexOutOfRange(this, length);\n\n this.pos += length;\n if (Array.isArray(this.buf)) // plain array\n return this.buf.slice(start, end);\n return start === end // fix for IE 10/Win8 and others' subarray returning array of size 1\n ? new this.buf.constructor(0)\n : this._slice.call(this.buf, start, end);\n};\n\n/**\n * Reads a string preceeded by its byte length as a varint.\n * @returns {string} Value read\n */\nReader.prototype.string = function read_string() {\n var bytes = this.bytes();\n return utf8.read(bytes, 0, bytes.length);\n};\n\n/**\n * Skips the specified number of bytes if specified, otherwise skips a varint.\n * @param {number} [length] Length if known, otherwise a varint is assumed\n * @returns {Reader} `this`\n */\nReader.prototype.skip = function skip(length) {\n if (typeof length === \"number\") {\n /* istanbul ignore if */\n if (this.pos + length > this.len)\n throw indexOutOfRange(this, length);\n this.pos += length;\n } else {\n do {\n /* istanbul ignore if */\n if (this.pos >= this.len)\n throw indexOutOfRange(this);\n } while (this.buf[this.pos++] & 128);\n }\n return this;\n};\n\n/**\n * Skips the next element of the specified wire type.\n * @param {number} wireType Wire type received\n * @returns {Reader} `this`\n */\nReader.prototype.skipType = function(wireType) {\n switch (wireType) {\n case 0:\n this.skip();\n break;\n case 1:\n this.skip(8);\n break;\n case 2:\n this.skip(this.uint32());\n break;\n case 3:\n while ((wireType = this.uint32() & 7) !== 4) {\n this.skipType(wireType);\n }\n break;\n case 5:\n this.skip(4);\n break;\n\n /* istanbul ignore next */\n default:\n throw Error(\"invalid wire type \" + wireType + \" at offset \" + this.pos);\n }\n return this;\n};\n\nReader._configure = function(BufferReader_) {\n BufferReader = BufferReader_;\n Reader.create = create();\n BufferReader._configure();\n\n var fn = util.Long ? \"toLong\" : /* istanbul ignore next */ \"toNumber\";\n util.merge(Reader.prototype, {\n\n int64: function read_int64() {\n return readLongVarint.call(this)[fn](false);\n },\n\n uint64: function read_uint64() {\n return readLongVarint.call(this)[fn](true);\n },\n\n sint64: function read_sint64() {\n return readLongVarint.call(this).zzDecode()[fn](false);\n },\n\n fixed64: function read_fixed64() {\n return readFixed64.call(this)[fn](true);\n },\n\n sfixed64: function read_sfixed64() {\n return readFixed64.call(this)[fn](false);\n }\n\n });\n};\n", "\"use strict\";\nmodule.exports = BufferReader;\n\n// extends Reader\nvar Reader = require(\"./reader\");\n(BufferReader.prototype = Object.create(Reader.prototype)).constructor = BufferReader;\n\nvar util = require(\"./util/minimal\");\n\n/**\n * Constructs a new buffer reader instance.\n * @classdesc Wire format reader using node buffers.\n * @extends Reader\n * @constructor\n * @param {Buffer} buffer Buffer to read from\n */\nfunction BufferReader(buffer) {\n Reader.call(this, buffer);\n\n /**\n * Read buffer.\n * @name BufferReader#buf\n * @type {Buffer}\n */\n}\n\nBufferReader._configure = function () {\n /* istanbul ignore else */\n if (util.Buffer)\n BufferReader.prototype._slice = util.Buffer.prototype.slice;\n};\n\n\n/**\n * @override\n */\nBufferReader.prototype.string = function read_string_buffer() {\n var len = this.uint32(); // modifies pos\n return this.buf.utf8Slice\n ? this.buf.utf8Slice(this.pos, this.pos = Math.min(this.pos + len, this.len))\n : this.buf.toString(\"utf-8\", this.pos, this.pos = Math.min(this.pos + len, this.len));\n};\n\n/**\n * Reads a sequence of bytes preceeded by its length as a varint.\n * @name BufferReader#bytes\n * @function\n * @returns {Buffer} Value read\n */\n\nBufferReader._configure();\n", "\"use strict\";\nmodule.exports = Service;\n\nvar util = require(\"../util/minimal\");\n\n// Extends EventEmitter\n(Service.prototype = Object.create(util.EventEmitter.prototype)).constructor = Service;\n\n/**\n * A service method callback as used by {@link rpc.ServiceMethod|ServiceMethod}.\n *\n * Differs from {@link RPCImplCallback} in that it is an actual callback of a service method which may not return `response = null`.\n * @typedef rpc.ServiceMethodCallback\n * @template TRes extends Message\n * @type {function}\n * @param {Error|null} error Error, if any\n * @param {TRes} [response] Response message\n * @returns {undefined}\n */\n\n/**\n * A service method part of a {@link rpc.Service} as created by {@link Service.create}.\n * @typedef rpc.ServiceMethod\n * @template TReq extends Message\n * @template TRes extends Message\n * @type {function}\n * @param {TReq|Properties} request Request message or plain object\n * @param {rpc.ServiceMethodCallback} [callback] Node-style callback called with the error, if any, and the response message\n * @returns {Promise>} Promise if `callback` has been omitted, otherwise `undefined`\n */\n\n/**\n * Constructs a new RPC service instance.\n * @classdesc An RPC service as returned by {@link Service#create}.\n * @exports rpc.Service\n * @extends util.EventEmitter\n * @constructor\n * @param {RPCImpl} rpcImpl RPC implementation\n * @param {boolean} [requestDelimited=false] Whether requests are length-delimited\n * @param {boolean} [responseDelimited=false] Whether responses are length-delimited\n */\nfunction Service(rpcImpl, requestDelimited, responseDelimited) {\n\n if (typeof rpcImpl !== \"function\")\n throw TypeError(\"rpcImpl must be a function\");\n\n util.EventEmitter.call(this);\n\n /**\n * RPC implementation. Becomes `null` once the service is ended.\n * @type {RPCImpl|null}\n */\n this.rpcImpl = rpcImpl;\n\n /**\n * Whether requests are length-delimited.\n * @type {boolean}\n */\n this.requestDelimited = Boolean(requestDelimited);\n\n /**\n * Whether responses are length-delimited.\n * @type {boolean}\n */\n this.responseDelimited = Boolean(responseDelimited);\n}\n\n/**\n * Calls a service method through {@link rpc.Service#rpcImpl|rpcImpl}.\n * @param {Method|rpc.ServiceMethod} method Reflected or static method\n * @param {Constructor} requestCtor Request constructor\n * @param {Constructor} responseCtor Response constructor\n * @param {TReq|Properties} request Request message or plain object\n * @param {rpc.ServiceMethodCallback} callback Service callback\n * @returns {undefined}\n * @template TReq extends Message\n * @template TRes extends Message\n */\nService.prototype.rpcCall = function rpcCall(method, requestCtor, responseCtor, request, callback) {\n\n if (!request)\n throw TypeError(\"request must be specified\");\n\n var self = this;\n if (!callback)\n return util.asPromise(rpcCall, self, method, requestCtor, responseCtor, request);\n\n if (!self.rpcImpl) {\n setTimeout(function() { callback(Error(\"already ended\")); }, 0);\n return undefined;\n }\n\n try {\n return self.rpcImpl(\n method,\n requestCtor[self.requestDelimited ? \"encodeDelimited\" : \"encode\"](request).finish(),\n function rpcCallback(err, response) {\n\n if (err) {\n self.emit(\"error\", err, method);\n return callback(err);\n }\n\n if (response === null) {\n self.end(/* endedByRPC */ true);\n return undefined;\n }\n\n if (!(response instanceof responseCtor)) {\n try {\n response = responseCtor[self.responseDelimited ? \"decodeDelimited\" : \"decode\"](response);\n } catch (err) {\n self.emit(\"error\", err, method);\n return callback(err);\n }\n }\n\n self.emit(\"data\", response, method);\n return callback(null, response);\n }\n );\n } catch (err) {\n self.emit(\"error\", err, method);\n setTimeout(function() { callback(err); }, 0);\n return undefined;\n }\n};\n\n/**\n * Ends this service and emits the `end` event.\n * @param {boolean} [endedByRPC=false] Whether the service has been ended by the RPC implementation.\n * @returns {rpc.Service} `this`\n */\nService.prototype.end = function end(endedByRPC) {\n if (this.rpcImpl) {\n if (!endedByRPC) // signal end to rpcImpl\n this.rpcImpl(null, null, null);\n this.rpcImpl = null;\n this.emit(\"end\").off();\n }\n return this;\n};\n", "\"use strict\";\n\n/**\n * Streaming RPC helpers.\n * @namespace\n */\nvar rpc = exports;\n\n/**\n * RPC implementation passed to {@link Service#create} performing a service request on network level, i.e. by utilizing http requests or websockets.\n * @typedef RPCImpl\n * @type {function}\n * @param {Method|rpc.ServiceMethod,Message<{}>>} method Reflected or static method being called\n * @param {Uint8Array} requestData Request data\n * @param {RPCImplCallback} callback Callback function\n * @returns {undefined}\n * @example\n * function rpcImpl(method, requestData, callback) {\n * if (protobuf.util.lcFirst(method.name) !== \"myMethod\") // compatible with static code\n * throw Error(\"no such method\");\n * asynchronouslyObtainAResponse(requestData, function(err, responseData) {\n * callback(err, responseData);\n * });\n * }\n */\n\n/**\n * Node-style callback as used by {@link RPCImpl}.\n * @typedef RPCImplCallback\n * @type {function}\n * @param {Error|null} error Error, if any, otherwise `null`\n * @param {Uint8Array|null} [response] Response data or `null` to signal end of stream, if there hasn't been an error\n * @returns {undefined}\n */\n\nrpc.Service = require(\"./rpc/service\");\n", "\"use strict\";\nmodule.exports = {};\n\n/**\n * Named roots.\n * This is where pbjs stores generated structures (the option `-r, --root` specifies a name).\n * Can also be used manually to make roots available accross modules.\n * @name roots\n * @type {Object.}\n * @example\n * // pbjs -r myroot -o compiled.js ...\n *\n * // in another module:\n * require(\"./compiled.js\");\n *\n * // in any subsequent module:\n * var root = protobuf.roots[\"myroot\"];\n */\n", "\"use strict\";\nvar protobuf = exports;\n\n/**\n * Build type, one of `\"full\"`, `\"light\"` or `\"minimal\"`.\n * @name build\n * @type {string}\n * @const\n */\nprotobuf.build = \"minimal\";\n\n// Serialization\nprotobuf.Writer = require(\"./writer\");\nprotobuf.BufferWriter = require(\"./writer_buffer\");\nprotobuf.Reader = require(\"./reader\");\nprotobuf.BufferReader = require(\"./reader_buffer\");\n\n// Utility\nprotobuf.util = require(\"./util/minimal\");\nprotobuf.rpc = require(\"./rpc\");\nprotobuf.roots = require(\"./roots\");\nprotobuf.configure = configure;\n\n/* istanbul ignore next */\n/**\n * Reconfigures the library according to the environment.\n * @returns {undefined}\n */\nfunction configure() {\n protobuf.util._configure();\n protobuf.Writer._configure(protobuf.BufferWriter);\n protobuf.Reader._configure(protobuf.BufferReader);\n}\n\n// Set up buffer utility according to the environment\nconfigure();\n", "// minimal library entry point.\n\n\"use strict\";\nmodule.exports = require(\"./src/index-minimal\");\n", null, null, null, null, null, "'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n", null, "'use strict'\nvar ALPHABET = 'qpzry9x8gf2tvdw0s3jn54khce6mua7l'\n\n// pre-compute lookup table\nvar ALPHABET_MAP = {}\nfor (var z = 0; z < ALPHABET.length; z++) {\n var x = ALPHABET.charAt(z)\n\n if (ALPHABET_MAP[x] !== undefined) throw new TypeError(x + ' is ambiguous')\n ALPHABET_MAP[x] = z\n}\n\nfunction polymodStep (pre) {\n var b = pre >> 25\n return ((pre & 0x1FFFFFF) << 5) ^\n (-((b >> 0) & 1) & 0x3b6a57b2) ^\n (-((b >> 1) & 1) & 0x26508e6d) ^\n (-((b >> 2) & 1) & 0x1ea119fa) ^\n (-((b >> 3) & 1) & 0x3d4233dd) ^\n (-((b >> 4) & 1) & 0x2a1462b3)\n}\n\nfunction prefixChk (prefix) {\n var chk = 1\n for (var i = 0; i < prefix.length; ++i) {\n var c = prefix.charCodeAt(i)\n if (c < 33 || c > 126) return 'Invalid prefix (' + prefix + ')'\n\n chk = polymodStep(chk) ^ (c >> 5)\n }\n chk = polymodStep(chk)\n\n for (i = 0; i < prefix.length; ++i) {\n var v = prefix.charCodeAt(i)\n chk = polymodStep(chk) ^ (v & 0x1f)\n }\n return chk\n}\n\nfunction encode (prefix, words, LIMIT) {\n LIMIT = LIMIT || 90\n if ((prefix.length + 7 + words.length) > LIMIT) throw new TypeError('Exceeds length limit')\n\n prefix = prefix.toLowerCase()\n\n // determine chk mod\n var chk = prefixChk(prefix)\n if (typeof chk === 'string') throw new Error(chk)\n\n var result = prefix + '1'\n for (var i = 0; i < words.length; ++i) {\n var x = words[i]\n if ((x >> 5) !== 0) throw new Error('Non 5-bit word')\n\n chk = polymodStep(chk) ^ x\n result += ALPHABET.charAt(x)\n }\n\n for (i = 0; i < 6; ++i) {\n chk = polymodStep(chk)\n }\n chk ^= 1\n\n for (i = 0; i < 6; ++i) {\n var v = (chk >> ((5 - i) * 5)) & 0x1f\n result += ALPHABET.charAt(v)\n }\n\n return result\n}\n\nfunction __decode (str, LIMIT) {\n LIMIT = LIMIT || 90\n if (str.length < 8) return str + ' too short'\n if (str.length > LIMIT) return 'Exceeds length limit'\n\n // don't allow mixed case\n var lowered = str.toLowerCase()\n var uppered = str.toUpperCase()\n if (str !== lowered && str !== uppered) return 'Mixed-case string ' + str\n str = lowered\n\n var split = str.lastIndexOf('1')\n if (split === -1) return 'No separator character for ' + str\n if (split === 0) return 'Missing prefix for ' + str\n\n var prefix = str.slice(0, split)\n var wordChars = str.slice(split + 1)\n if (wordChars.length < 6) return 'Data too short'\n\n var chk = prefixChk(prefix)\n if (typeof chk === 'string') return chk\n\n var words = []\n for (var i = 0; i < wordChars.length; ++i) {\n var c = wordChars.charAt(i)\n var v = ALPHABET_MAP[c]\n if (v === undefined) return 'Unknown character ' + c\n chk = polymodStep(chk) ^ v\n\n // not in the checksum?\n if (i + 6 >= wordChars.length) continue\n words.push(v)\n }\n\n if (chk !== 1) return 'Invalid checksum for ' + str\n return { prefix: prefix, words: words }\n}\n\nfunction decodeUnsafe () {\n var res = __decode.apply(null, arguments)\n if (typeof res === 'object') return res\n}\n\nfunction decode (str) {\n var res = __decode.apply(null, arguments)\n if (typeof res === 'object') return res\n\n throw new Error(res)\n}\n\nfunction convert (data, inBits, outBits, pad) {\n var value = 0\n var bits = 0\n var maxV = (1 << outBits) - 1\n\n var result = []\n for (var i = 0; i < data.length; ++i) {\n value = (value << inBits) | data[i]\n bits += inBits\n\n while (bits >= outBits) {\n bits -= outBits\n result.push((value >> bits) & maxV)\n }\n }\n\n if (pad) {\n if (bits > 0) {\n result.push((value << (outBits - bits)) & maxV)\n }\n } else {\n if (bits >= inBits) return 'Excess padding'\n if ((value << (outBits - bits)) & maxV) return 'Non-zero padding'\n }\n\n return result\n}\n\nfunction toWordsUnsafe (bytes) {\n var res = convert(bytes, 8, 5, true)\n if (Array.isArray(res)) return res\n}\n\nfunction toWords (bytes) {\n var res = convert(bytes, 8, 5, true)\n if (Array.isArray(res)) return res\n\n throw new Error(res)\n}\n\nfunction fromWordsUnsafe (words) {\n var res = convert(words, 5, 8, false)\n if (Array.isArray(res)) return res\n}\n\nfunction fromWords (words) {\n var res = convert(words, 5, 8, false)\n if (Array.isArray(res)) return res\n\n throw new Error(res)\n}\n\nmodule.exports = {\n decodeUnsafe: decodeUnsafe,\n decode: decode,\n encode: encode,\n toWordsUnsafe: toWordsUnsafe,\n toWords: toWords,\n fromWordsUnsafe: fromWordsUnsafe,\n fromWords: fromWords\n}\n", null, null, null, null, null, "/**\n* This file was automatically generated by @cosmwasm/ts-codegen@0.24.0.\n* DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,\n* and run the @cosmwasm/ts-codegen generate command to regenerate this file.\n*/\n\nimport { CosmWasmClient, SigningCosmWasmClient, ExecuteResult } from \"@cosmjs/cosmwasm-stargate\";\nimport { StdFee } from \"@cosmjs/amino\";\nimport { Uint128, OfSecondsToDelayAllowingMintingToOccurFromContractCreationDefaultsTo1Second, InstantiateMsg, Coin, ExecuteMsg, Timestamp, Uint64, ManageHooksAction, Action, Expiration, Config, QueryMsg, Addr, BidOffset, SudoMsg, NullableAsk, Ask, HooksResponse, ArrayOfAsk, NullableBid, Bid, ArrayOfBid, NullablePendingBid, PendingBid, OwnershipForAddr, Decimal, SudoParams } from \"./AccountMinter.types\";\nexport interface AccountMinterReadOnlyInterface {\n contractAddress: string;\n ownership: () => Promise;\n collection: () => Promise;\n params: () => Promise;\n config: () => Promise;\n ask: ({\n tokenId\n }: {\n tokenId: string;\n }) => Promise;\n asks: ({\n limit,\n startAfter\n }: {\n limit?: number;\n startAfter?: number;\n }) => Promise;\n askCount: () => Promise;\n asksBySeller: ({\n limit,\n seller,\n startAfter\n }: {\n limit?: number;\n seller: string;\n startAfter?: string;\n }) => Promise;\n bid: ({\n bidder,\n tokenId\n }: {\n bidder: string;\n tokenId: string;\n }) => Promise;\n bidsByBidder: ({\n bidder,\n limit,\n startAfter\n }: {\n bidder: string;\n limit?: number;\n startAfter?: string;\n }) => Promise;\n bids: ({\n limit,\n startAfter,\n tokenId\n }: {\n limit?: number;\n startAfter?: string;\n tokenId: string;\n }) => Promise;\n bidsSortedByPrice: ({\n limit,\n startAfter\n }: {\n limit?: number;\n startAfter?: BidOffset;\n }) => Promise;\n reverseBidsSortedByPrice: ({\n limit,\n startBefore\n }: {\n limit?: number;\n startBefore?: BidOffset;\n }) => Promise;\n bidsForSeller: ({\n limit,\n seller,\n startAfter\n }: {\n limit?: number;\n seller: string;\n startAfter?: BidOffset;\n }) => Promise;\n highestBid: ({\n tokenId\n }: {\n tokenId: string;\n }) => Promise;\n askHooks: () => Promise;\n bidHooks: () => Promise;\n saleHooks: () => Promise;\n cooldown: ({\n tokenId\n }: {\n tokenId: string;\n }) => Promise;\n}\nexport class AccountMinterQueryClient implements AccountMinterReadOnlyInterface {\n client: CosmWasmClient;\n contractAddress: string;\n\n constructor(client: CosmWasmClient, contractAddress: string) {\n this.client = client;\n this.contractAddress = contractAddress;\n this.ownership = this.ownership.bind(this);\n this.collection = this.collection.bind(this);\n this.params = this.params.bind(this);\n this.config = this.config.bind(this);\n this.ask = this.ask.bind(this);\n this.asks = this.asks.bind(this);\n this.askCount = this.askCount.bind(this);\n this.asksBySeller = this.asksBySeller.bind(this);\n this.bid = this.bid.bind(this);\n this.bidsByBidder = this.bidsByBidder.bind(this);\n this.bids = this.bids.bind(this);\n this.bidsSortedByPrice = this.bidsSortedByPrice.bind(this);\n this.reverseBidsSortedByPrice = this.reverseBidsSortedByPrice.bind(this);\n this.bidsForSeller = this.bidsForSeller.bind(this);\n this.highestBid = this.highestBid.bind(this);\n this.askHooks = this.askHooks.bind(this);\n this.bidHooks = this.bidHooks.bind(this);\n this.saleHooks = this.saleHooks.bind(this);\n this.cooldown = this.cooldown.bind(this);\n }\n\n ownership = async (): Promise => {\n return this.client.queryContractSmart(this.contractAddress, {\n ownership: {}\n });\n };\n collection = async (): Promise => {\n return this.client.queryContractSmart(this.contractAddress, {\n collection: {}\n });\n };\n params = async (): Promise => {\n return this.client.queryContractSmart(this.contractAddress, {\n params: {}\n });\n };\n config = async (): Promise => {\n return this.client.queryContractSmart(this.contractAddress, {\n config: {}\n });\n };\n ask = async ({\n tokenId\n }: {\n tokenId: string;\n }): Promise => {\n return this.client.queryContractSmart(this.contractAddress, {\n ask: {\n token_id: tokenId\n }\n });\n };\n asks = async ({\n limit,\n startAfter\n }: {\n limit?: number;\n startAfter?: number;\n }): Promise => {\n return this.client.queryContractSmart(this.contractAddress, {\n asks: {\n limit,\n start_after: startAfter\n }\n });\n };\n askCount = async (): Promise => {\n return this.client.queryContractSmart(this.contractAddress, {\n ask_count: {}\n });\n };\n asksBySeller = async ({\n limit,\n seller,\n startAfter\n }: {\n limit?: number;\n seller: string;\n startAfter?: string;\n }): Promise => {\n return this.client.queryContractSmart(this.contractAddress, {\n asks_by_seller: {\n limit,\n seller,\n start_after: startAfter\n }\n });\n };\n bid = async ({\n bidder,\n tokenId\n }: {\n bidder: string;\n tokenId: string;\n }): Promise => {\n return this.client.queryContractSmart(this.contractAddress, {\n bid: {\n bidder,\n token_id: tokenId\n }\n });\n };\n bidsByBidder = async ({\n bidder,\n limit,\n startAfter\n }: {\n bidder: string;\n limit?: number;\n startAfter?: string;\n }): Promise => {\n return this.client.queryContractSmart(this.contractAddress, {\n bids_by_bidder: {\n bidder,\n limit,\n start_after: startAfter\n }\n });\n };\n bids = async ({\n limit,\n startAfter,\n tokenId\n }: {\n limit?: number;\n startAfter?: string;\n tokenId: string;\n }): Promise => {\n return this.client.queryContractSmart(this.contractAddress, {\n bids: {\n limit,\n start_after: startAfter,\n token_id: tokenId\n }\n });\n };\n bidsSortedByPrice = async ({\n limit,\n startAfter\n }: {\n limit?: number;\n startAfter?: BidOffset;\n }): Promise => {\n return this.client.queryContractSmart(this.contractAddress, {\n bids_sorted_by_price: {\n limit,\n start_after: startAfter\n }\n });\n };\n reverseBidsSortedByPrice = async ({\n limit,\n startBefore\n }: {\n limit?: number;\n startBefore?: BidOffset;\n }): Promise => {\n return this.client.queryContractSmart(this.contractAddress, {\n reverse_bids_sorted_by_price: {\n limit,\n start_before: startBefore\n }\n });\n };\n bidsForSeller = async ({\n limit,\n seller,\n startAfter\n }: {\n limit?: number;\n seller: string;\n startAfter?: BidOffset;\n }): Promise => {\n return this.client.queryContractSmart(this.contractAddress, {\n bids_for_seller: {\n limit,\n seller,\n start_after: startAfter\n }\n });\n };\n highestBid = async ({\n tokenId\n }: {\n tokenId: string;\n }): Promise => {\n return this.client.queryContractSmart(this.contractAddress, {\n highest_bid: {\n token_id: tokenId\n }\n });\n };\n askHooks = async (): Promise => {\n return this.client.queryContractSmart(this.contractAddress, {\n ask_hooks: {}\n });\n };\n bidHooks = async (): Promise => {\n return this.client.queryContractSmart(this.contractAddress, {\n bid_hooks: {}\n });\n };\n saleHooks = async (): Promise => {\n return this.client.queryContractSmart(this.contractAddress, {\n sale_hooks: {}\n });\n };\n cooldown = async ({\n tokenId\n }: {\n tokenId: string;\n }): Promise => {\n return this.client.queryContractSmart(this.contractAddress, {\n cooldown: {\n token_id: tokenId\n }\n });\n };\n}\nexport interface AccountMinterInterface extends AccountMinterReadOnlyInterface {\n contractAddress: string;\n sender: string;\n mintAndList: ({\n account\n }: {\n account: string;\n }, fee?: number | StdFee | \"auto\", memo?: string, funds?: Coin[]) => Promise;\n pause: ({\n pause\n }: {\n pause: boolean;\n }, fee?: number | StdFee | \"auto\", memo?: string, funds?: Coin[]) => Promise;\n updateConfig: ({\n config\n }: {\n config: Config;\n }, fee?: number | StdFee | \"auto\", memo?: string, funds?: Coin[]) => Promise;\n removeAsk: ({\n tokenId\n }: {\n tokenId: string;\n }, fee?: number | StdFee | \"auto\", memo?: string, funds?: Coin[]) => Promise;\n updateAsk: ({\n seller,\n tokenId\n }: {\n seller: string;\n tokenId: string;\n }, fee?: number | StdFee | \"auto\", memo?: string, funds?: Coin[]) => Promise;\n setBid: ({\n tokenId\n }: {\n tokenId: string;\n }, fee?: number | StdFee | \"auto\", memo?: string, funds?: Coin[]) => Promise;\n removeBid: ({\n tokenId\n }: {\n tokenId: string;\n }, fee?: number | StdFee | \"auto\", memo?: string, funds?: Coin[]) => Promise;\n removeBids: ({\n tokenId\n }: {\n tokenId: string;\n }, fee?: number | StdFee | \"auto\", memo?: string, funds?: Coin[]) => Promise;\n checkedRemoveBids: ({\n tokenId\n }: {\n tokenId: string;\n }, fee?: number | StdFee | \"auto\", memo?: string, funds?: Coin[]) => Promise;\n acceptBid: ({\n bidder,\n tokenId\n }: {\n bidder: string;\n tokenId: string;\n }, fee?: number | StdFee | \"auto\", memo?: string, funds?: Coin[]) => Promise;\n finalizeBid: ({\n tokenId\n }: {\n tokenId: string;\n }, fee?: number | StdFee | \"auto\", memo?: string, funds?: Coin[]) => Promise;\n cancelCooldown: ({\n tokenId\n }: {\n tokenId: string;\n }, fee?: number | StdFee | \"auto\", memo?: string, funds?: Coin[]) => Promise;\n manageHooks: (fee?: number | StdFee | \"auto\", memo?: string, funds?: Coin[]) => Promise;\n updateOwnership: (fee?: number | StdFee | \"auto\", memo?: string, funds?: Coin[]) => Promise;\n}\nexport class AccountMinterClient extends AccountMinterQueryClient implements AccountMinterInterface {\n client: SigningCosmWasmClient;\n sender: string;\n contractAddress: string;\n\n constructor(client: SigningCosmWasmClient, sender: string, contractAddress: string) {\n super(client, contractAddress);\n this.client = client;\n this.sender = sender;\n this.contractAddress = contractAddress;\n this.mintAndList = this.mintAndList.bind(this);\n this.pause = this.pause.bind(this);\n this.updateConfig = this.updateConfig.bind(this);\n this.removeAsk = this.removeAsk.bind(this);\n this.updateAsk = this.updateAsk.bind(this);\n this.setBid = this.setBid.bind(this);\n this.removeBid = this.removeBid.bind(this);\n this.removeBids = this.removeBids.bind(this);\n this.checkedRemoveBids = this.checkedRemoveBids.bind(this);\n this.acceptBid = this.acceptBid.bind(this);\n this.finalizeBid = this.finalizeBid.bind(this);\n this.cancelCooldown = this.cancelCooldown.bind(this);\n this.manageHooks = this.manageHooks.bind(this);\n this.updateOwnership = this.updateOwnership.bind(this);\n }\n\n mintAndList = async ({\n account\n }: {\n account: string;\n }, fee: number | StdFee | \"auto\" = \"auto\", memo?: string, funds?: Coin[]): Promise => {\n return await this.client.execute(this.sender, this.contractAddress, {\n mint_and_list: {\n account\n }\n }, fee, memo, funds);\n };\n pause = async ({\n pause\n }: {\n pause: boolean;\n }, fee: number | StdFee | \"auto\" = \"auto\", memo?: string, funds?: Coin[]): Promise => {\n return await this.client.execute(this.sender, this.contractAddress, {\n pause: {\n pause\n }\n }, fee, memo, funds);\n };\n updateConfig = async ({\n config\n }: {\n config: Config;\n }, fee: number | StdFee | \"auto\" = \"auto\", memo?: string, funds?: Coin[]): Promise => {\n return await this.client.execute(this.sender, this.contractAddress, {\n update_config: {\n config\n }\n }, fee, memo, funds);\n };\n removeAsk = async ({\n tokenId\n }: {\n tokenId: string;\n }, fee: number | StdFee | \"auto\" = \"auto\", memo?: string, funds?: Coin[]): Promise => {\n return await this.client.execute(this.sender, this.contractAddress, {\n remove_ask: {\n token_id: tokenId\n }\n }, fee, memo, funds);\n };\n updateAsk = async ({\n seller,\n tokenId\n }: {\n seller: string;\n tokenId: string;\n }, fee: number | StdFee | \"auto\" = \"auto\", memo?: string, funds?: Coin[]): Promise => {\n return await this.client.execute(this.sender, this.contractAddress, {\n update_ask: {\n seller,\n token_id: tokenId\n }\n }, fee, memo, funds);\n };\n setBid = async ({\n tokenId\n }: {\n tokenId: string;\n }, fee: number | StdFee | \"auto\" = \"auto\", memo?: string, funds?: Coin[]): Promise => {\n return await this.client.execute(this.sender, this.contractAddress, {\n set_bid: {\n token_id: tokenId\n }\n }, fee, memo, funds);\n };\n removeBid = async ({\n tokenId\n }: {\n tokenId: string;\n }, fee: number | StdFee | \"auto\" = \"auto\", memo?: string, funds?: Coin[]): Promise => {\n return await this.client.execute(this.sender, this.contractAddress, {\n remove_bid: {\n token_id: tokenId\n }\n }, fee, memo, funds);\n };\n removeBids = async ({\n tokenId\n }: {\n tokenId: string;\n }, fee: number | StdFee | \"auto\" = \"auto\", memo?: string, funds?: Coin[]): Promise => {\n return await this.client.execute(this.sender, this.contractAddress, {\n remove_bids: {\n token_id: tokenId\n }\n }, fee, memo, funds);\n };\n checkedRemoveBids = async ({\n tokenId\n }: {\n tokenId: string;\n }, fee: number | StdFee | \"auto\" = \"auto\", memo?: string, funds?: Coin[]): Promise => {\n return await this.client.execute(this.sender, this.contractAddress, {\n checked_remove_bids: {\n token_id: tokenId\n }\n }, fee, memo, funds);\n };\n acceptBid = async ({\n bidder,\n tokenId\n }: {\n bidder: string;\n tokenId: string;\n }, fee: number | StdFee | \"auto\" = \"auto\", memo?: string, funds?: Coin[]): Promise => {\n return await this.client.execute(this.sender, this.contractAddress, {\n accept_bid: {\n bidder,\n token_id: tokenId\n }\n }, fee, memo, funds);\n };\n finalizeBid = async ({\n tokenId\n }: {\n tokenId: string;\n }, fee: number | StdFee | \"auto\" = \"auto\", memo?: string, funds?: Coin[]): Promise => {\n return await this.client.execute(this.sender, this.contractAddress, {\n finalize_bid: {\n token_id: tokenId\n }\n }, fee, memo, funds);\n };\n cancelCooldown = async ({\n tokenId\n }: {\n tokenId: string;\n }, fee: number | StdFee | \"auto\" = \"auto\", memo?: string, funds?: Coin[]): Promise => {\n return await this.client.execute(this.sender, this.contractAddress, {\n cancel_cooldown: {\n token_id: tokenId\n }\n }, fee, memo, funds);\n };\n manageHooks = async (fee: number | StdFee | \"auto\" = \"auto\", memo?: string, funds?: Coin[]): Promise => {\n return await this.client.execute(this.sender, this.contractAddress, {\n manage_hooks: {}\n }, fee, memo, funds);\n };\n updateOwnership = async (fee: number | StdFee | \"auto\" = \"auto\", memo?: string, funds?: Coin[]): Promise => {\n return await this.client.execute(this.sender, this.contractAddress, {\n update_ownership: {}\n }, fee, memo, funds);\n };\n}", "/**\n* This file was automatically generated by @cosmwasm/ts-codegen@0.24.0.\n* DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,\n* and run the @cosmwasm/ts-codegen generate command to regenerate this file.\n*/\n\nimport { MsgExecuteContractEncodeObject } from \"cosmwasm\";\nimport { MsgExecuteContract } from \"cosmjs-types/cosmwasm/wasm/v1/tx\";\nimport { toUtf8 } from \"@cosmjs/encoding\";\nimport { Uint128, OfSecondsToDelayAllowingMintingToOccurFromContractCreationDefaultsTo1Second, InstantiateMsg, Coin, ExecuteMsg, Timestamp, Uint64, ManageHooksAction, Action, Expiration, Config, QueryMsg, Addr, BidOffset, SudoMsg, NullableAsk, Ask, HooksResponse, ArrayOfAsk, NullableBid, Bid, ArrayOfBid, NullablePendingBid, PendingBid, OwnershipForAddr, Decimal, SudoParams } from \"./AccountMinter.types\";\nexport interface AccountMinterMessage {\n contractAddress: string;\n sender: string;\n mintAndList: ({\n account\n }: {\n account: string;\n }, funds?: Coin[]) => MsgExecuteContractEncodeObject;\n pause: ({\n pause\n }: {\n pause: boolean;\n }, funds?: Coin[]) => MsgExecuteContractEncodeObject;\n updateConfig: ({\n config\n }: {\n config: Config;\n }, funds?: Coin[]) => MsgExecuteContractEncodeObject;\n removeAsk: ({\n tokenId\n }: {\n tokenId: string;\n }, funds?: Coin[]) => MsgExecuteContractEncodeObject;\n updateAsk: ({\n seller,\n tokenId\n }: {\n seller: string;\n tokenId: string;\n }, funds?: Coin[]) => MsgExecuteContractEncodeObject;\n setBid: ({\n tokenId\n }: {\n tokenId: string;\n }, funds?: Coin[]) => MsgExecuteContractEncodeObject;\n removeBid: ({\n tokenId\n }: {\n tokenId: string;\n }, funds?: Coin[]) => MsgExecuteContractEncodeObject;\n removeBids: ({\n tokenId\n }: {\n tokenId: string;\n }, funds?: Coin[]) => MsgExecuteContractEncodeObject;\n checkedRemoveBids: ({\n tokenId\n }: {\n tokenId: string;\n }, funds?: Coin[]) => MsgExecuteContractEncodeObject;\n acceptBid: ({\n bidder,\n tokenId\n }: {\n bidder: string;\n tokenId: string;\n }, funds?: Coin[]) => MsgExecuteContractEncodeObject;\n finalizeBid: ({\n tokenId\n }: {\n tokenId: string;\n }, funds?: Coin[]) => MsgExecuteContractEncodeObject;\n cancelCooldown: ({\n tokenId\n }: {\n tokenId: string;\n }, funds?: Coin[]) => MsgExecuteContractEncodeObject;\n manageHooks: (funds?: Coin[]) => MsgExecuteContractEncodeObject;\n updateOwnership: (funds?: Coin[]) => MsgExecuteContractEncodeObject;\n}\nexport class AccountMinterMessageComposer implements AccountMinterMessage {\n sender: string;\n contractAddress: string;\n\n constructor(sender: string, contractAddress: string) {\n this.sender = sender;\n this.contractAddress = contractAddress;\n this.mintAndList = this.mintAndList.bind(this);\n this.pause = this.pause.bind(this);\n this.updateConfig = this.updateConfig.bind(this);\n this.removeAsk = this.removeAsk.bind(this);\n this.updateAsk = this.updateAsk.bind(this);\n this.setBid = this.setBid.bind(this);\n this.removeBid = this.removeBid.bind(this);\n this.removeBids = this.removeBids.bind(this);\n this.checkedRemoveBids = this.checkedRemoveBids.bind(this);\n this.acceptBid = this.acceptBid.bind(this);\n this.finalizeBid = this.finalizeBid.bind(this);\n this.cancelCooldown = this.cancelCooldown.bind(this);\n this.manageHooks = this.manageHooks.bind(this);\n this.updateOwnership = this.updateOwnership.bind(this);\n }\n\n mintAndList = ({\n account\n }: {\n account: string;\n }, funds?: Coin[]): MsgExecuteContractEncodeObject => {\n return {\n typeUrl: \"/cosmwasm.wasm.v1.MsgExecuteContract\",\n value: MsgExecuteContract.fromPartial({\n sender: this.sender,\n contract: this.contractAddress,\n msg: toUtf8(JSON.stringify({\n mint_and_list: {\n account\n }\n })),\n funds\n })\n };\n };\n pause = ({\n pause\n }: {\n pause: boolean;\n }, funds?: Coin[]): MsgExecuteContractEncodeObject => {\n return {\n typeUrl: \"/cosmwasm.wasm.v1.MsgExecuteContract\",\n value: MsgExecuteContract.fromPartial({\n sender: this.sender,\n contract: this.contractAddress,\n msg: toUtf8(JSON.stringify({\n pause: {\n pause\n }\n })),\n funds\n })\n };\n };\n updateConfig = ({\n config\n }: {\n config: Config;\n }, funds?: Coin[]): MsgExecuteContractEncodeObject => {\n return {\n typeUrl: \"/cosmwasm.wasm.v1.MsgExecuteContract\",\n value: MsgExecuteContract.fromPartial({\n sender: this.sender,\n contract: this.contractAddress,\n msg: toUtf8(JSON.stringify({\n update_config: {\n config\n }\n })),\n funds\n })\n };\n };\n removeAsk = ({\n tokenId\n }: {\n tokenId: string;\n }, funds?: Coin[]): MsgExecuteContractEncodeObject => {\n return {\n typeUrl: \"/cosmwasm.wasm.v1.MsgExecuteContract\",\n value: MsgExecuteContract.fromPartial({\n sender: this.sender,\n contract: this.contractAddress,\n msg: toUtf8(JSON.stringify({\n remove_ask: {\n token_id: tokenId\n }\n })),\n funds\n })\n };\n };\n updateAsk = ({\n seller,\n tokenId\n }: {\n seller: string;\n tokenId: string;\n }, funds?: Coin[]): MsgExecuteContractEncodeObject => {\n return {\n typeUrl: \"/cosmwasm.wasm.v1.MsgExecuteContract\",\n value: MsgExecuteContract.fromPartial({\n sender: this.sender,\n contract: this.contractAddress,\n msg: toUtf8(JSON.stringify({\n update_ask: {\n seller,\n token_id: tokenId\n }\n })),\n funds\n })\n };\n };\n setBid = ({\n tokenId\n }: {\n tokenId: string;\n }, funds?: Coin[]): MsgExecuteContractEncodeObject => {\n return {\n typeUrl: \"/cosmwasm.wasm.v1.MsgExecuteContract\",\n value: MsgExecuteContract.fromPartial({\n sender: this.sender,\n contract: this.contractAddress,\n msg: toUtf8(JSON.stringify({\n set_bid: {\n token_id: tokenId\n }\n })),\n funds\n })\n };\n };\n removeBid = ({\n tokenId\n }: {\n tokenId: string;\n }, funds?: Coin[]): MsgExecuteContractEncodeObject => {\n return {\n typeUrl: \"/cosmwasm.wasm.v1.MsgExecuteContract\",\n value: MsgExecuteContract.fromPartial({\n sender: this.sender,\n contract: this.contractAddress,\n msg: toUtf8(JSON.stringify({\n remove_bid: {\n token_id: tokenId\n }\n })),\n funds\n })\n };\n };\n removeBids = ({\n tokenId\n }: {\n tokenId: string;\n }, funds?: Coin[]): MsgExecuteContractEncodeObject => {\n return {\n typeUrl: \"/cosmwasm.wasm.v1.MsgExecuteContract\",\n value: MsgExecuteContract.fromPartial({\n sender: this.sender,\n contract: this.contractAddress,\n msg: toUtf8(JSON.stringify({\n remove_bids: {\n token_id: tokenId\n }\n })),\n funds\n })\n };\n };\n checkedRemoveBids = ({\n tokenId\n }: {\n tokenId: string;\n }, funds?: Coin[]): MsgExecuteContractEncodeObject => {\n return {\n typeUrl: \"/cosmwasm.wasm.v1.MsgExecuteContract\",\n value: MsgExecuteContract.fromPartial({\n sender: this.sender,\n contract: this.contractAddress,\n msg: toUtf8(JSON.stringify({\n checked_remove_bids: {\n token_id: tokenId\n }\n })),\n funds\n })\n };\n };\n acceptBid = ({\n bidder,\n tokenId\n }: {\n bidder: string;\n tokenId: string;\n }, funds?: Coin[]): MsgExecuteContractEncodeObject => {\n return {\n typeUrl: \"/cosmwasm.wasm.v1.MsgExecuteContract\",\n value: MsgExecuteContract.fromPartial({\n sender: this.sender,\n contract: this.contractAddress,\n msg: toUtf8(JSON.stringify({\n accept_bid: {\n bidder,\n token_id: tokenId\n }\n })),\n funds\n })\n };\n };\n finalizeBid = ({\n tokenId\n }: {\n tokenId: string;\n }, funds?: Coin[]): MsgExecuteContractEncodeObject => {\n return {\n typeUrl: \"/cosmwasm.wasm.v1.MsgExecuteContract\",\n value: MsgExecuteContract.fromPartial({\n sender: this.sender,\n contract: this.contractAddress,\n msg: toUtf8(JSON.stringify({\n finalize_bid: {\n token_id: tokenId\n }\n })),\n funds\n })\n };\n };\n cancelCooldown = ({\n tokenId\n }: {\n tokenId: string;\n }, funds?: Coin[]): MsgExecuteContractEncodeObject => {\n return {\n typeUrl: \"/cosmwasm.wasm.v1.MsgExecuteContract\",\n value: MsgExecuteContract.fromPartial({\n sender: this.sender,\n contract: this.contractAddress,\n msg: toUtf8(JSON.stringify({\n cancel_cooldown: {\n token_id: tokenId\n }\n })),\n funds\n })\n };\n };\n manageHooks = (funds?: Coin[]): MsgExecuteContractEncodeObject => {\n return {\n typeUrl: \"/cosmwasm.wasm.v1.MsgExecuteContract\",\n value: MsgExecuteContract.fromPartial({\n sender: this.sender,\n contract: this.contractAddress,\n msg: toUtf8(JSON.stringify({\n manage_hooks: {}\n })),\n funds\n })\n };\n };\n updateOwnership = (funds?: Coin[]): MsgExecuteContractEncodeObject => {\n return {\n typeUrl: \"/cosmwasm.wasm.v1.MsgExecuteContract\",\n value: MsgExecuteContract.fromPartial({\n sender: this.sender,\n contract: this.contractAddress,\n msg: toUtf8(JSON.stringify({\n update_ownership: {}\n })),\n funds\n })\n };\n };\n}"], + "mappings": "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", + "names": ["require_long", "__commonJSMin", "exports", "module", "Long", "wasm", "low", "high", "unsigned", "isLong", "obj", "INT_CACHE", "UINT_CACHE", "fromInt", "value", "cachedObj", "cache", "fromBits", "fromNumber", "UZERO", "ZERO", "TWO_PWR_64_DBL", "MAX_UNSIGNED_VALUE", "TWO_PWR_63_DBL", "MIN_VALUE", "MAX_VALUE", "TWO_PWR_32_DBL", "lowBits", "highBits", "pow_dbl", "fromString", "str", "radix", "p", "radixToPower", "result", "i", "size", "power", "fromValue", "val", "TWO_PWR_16_DBL", "TWO_PWR_24_DBL", "TWO_PWR_24", "ONE", "UONE", "NEG_ONE", "LongPrototype", "radixLong", "div", "rem1", "rem", "remDiv", "intval", "digits", "bit", "other", "thisNeg", "otherNeg", "addend", "a48", "a32", "a16", "a00", "b48", "b32", "b16", "b00", "c48", "c32", "c16", "c00", "subtrahend", "multiplier", "divisor", "approx", "res", "halfThis", "log2", "delta", "approxRes", "approxRem", "numBits", "le", "hi", "lo", "bytes", "require_aspromise", "__commonJSMin", "exports", "module", "asPromise", "fn", "ctx", "params", "offset", "index", "pending", "resolve", "reject", "err", "require_base64", "__commonJSMin", "exports", "base64", "string", "p", "n", "b64", "s64", "i", "buffer", "start", "end", "parts", "chunk", "j", "t", "b", "invalidEncoding", "offset", "c", "require_eventemitter", "__commonJSMin", "exports", "module", "EventEmitter", "evt", "fn", "ctx", "listeners", "args", "require_float", "__commonJSMin", "exports", "module", "factory", "f32", "f8b", "le", "writeFloat_f32_cpy", "val", "buf", "pos", "writeFloat_f32_rev", "readFloat_f32_cpy", "readFloat_f32_rev", "writeFloat_ieee754", "writeUint", "sign", "exponent", "mantissa", "writeUintLE", "writeUintBE", "readFloat_ieee754", "readUint", "uint", "readUintLE", "readUintBE", "f64", "writeDouble_f64_cpy", "writeDouble_f64_rev", "readDouble_f64_cpy", "readDouble_f64_rev", "writeDouble_ieee754", "off0", "off1", "readDouble_ieee754", "lo", "hi", "require_inquire", "__commonJSMin", "require_utf8", "__commonJSMin", "exports", "utf8", "string", "len", "c", "buffer", "start", "end", "parts", "chunk", "i", "t", "offset", "c1", "c2", "require_pool", "__commonJSMin", "exports", "module", "pool", "alloc", "slice", "size", "SIZE", "MAX", "slab", "offset", "buf", "require_longbits", "__commonJSMin", "exports", "module", "LongBits", "util", "lo", "hi", "zero", "zeroHash", "value", "sign", "unsigned", "charCodeAt", "hash", "mask", "part0", "part1", "part2", "require_minimal", "__commonJSMin", "exports", "util", "value", "obj", "prop", "Buffer", "sizeOrArray", "hash", "unsigned", "bits", "merge", "dst", "src", "ifNotSet", "keys", "str", "newError", "name", "CustomError", "message", "properties", "fieldNames", "fieldMap", "i", "encoding", "size", "require_writer", "__commonJSMin", "exports", "module", "Writer", "util", "BufferWriter", "LongBits", "base64", "utf8", "Op", "fn", "len", "val", "noop", "State", "writer", "create", "size", "writeByte", "buf", "pos", "writeVarint32", "VarintOp", "value", "writeVarint64", "bits", "writeFixed32", "writeBytes", "head", "tail", "BufferWriter_", "require_writer_buffer", "__commonJSMin", "exports", "module", "BufferWriter", "Writer", "util", "val", "buf", "pos", "value", "len", "writeStringBuffer", "require_reader", "__commonJSMin", "exports", "module", "Reader", "util", "BufferReader", "LongBits", "utf8", "indexOutOfRange", "reader", "writeLength", "buffer", "create_array", "create", "value", "readLongVarint", "bits", "i", "readFixed32_end", "buf", "end", "readFixed64", "length", "start", "bytes", "wireType", "BufferReader_", "fn", "require_reader_buffer", "__commonJSMin", "exports", "module", "BufferReader", "Reader", "util", "buffer", "len", "require_service", "__commonJSMin", "exports", "module", "Service", "util", "rpcImpl", "requestDelimited", "responseDelimited", "rpcCall", "method", "requestCtor", "responseCtor", "request", "callback", "self", "err", "response", "endedByRPC", "require_rpc", "__commonJSMin", "exports", "rpc", "require_roots", "__commonJSMin", "exports", "module", "require_index_minimal", "__commonJSMin", "exports", "protobuf", "configure", "require_minimal", "__commonJSMin", "exports", "module", "long_1", "__importDefault", "minimal_1", "exports", "createBaseCoin", "message", "writer", "input", "length", "reader", "end", "tag", "object", "isSet", "obj", "_a", "_b", "createBaseDecCoin", "createBaseIntProto", "createBaseDecProto", "value", "long_1", "__importDefault", "minimal_1", "exports", "createBaseAny", "message", "writer", "input", "length", "reader", "end", "tag", "object", "isSet", "bytesFromBase64", "obj", "base64FromBytes", "_a", "_b", "globalThis", "b64", "bin", "arr", "i", "byte", "value", "long_1", "__importDefault", "minimal_1", "any_1", "exports", "AccessType", "accessTypeFromJSON", "object", "accessTypeToJSON", "ContractCodeHistoryOperationType", "contractCodeHistoryOperationTypeFromJSON", "contractCodeHistoryOperationTypeToJSON", "createBaseAccessTypeParam", "message", "writer", "input", "length", "reader", "end", "tag", "isSet", "obj", "_a", "createBaseAccessConfig", "_b", "createBaseParams", "createBaseCodeInfo", "bytesFromBase64", "base64FromBytes", "createBaseContractInfo", "_c", "_d", "createBaseContractCodeHistoryEntry", "createBaseAbsoluteTxPosition", "createBaseModel", "globalThis", "b64", "bin", "arr", "i", "byte", "value", "long_1", "__importDefault", "minimal_1", "coin_1", "types_1", "exports", "createBaseMsgStoreCode", "message", "writer", "input", "length", "reader", "end", "tag", "object", "isSet", "bytesFromBase64", "obj", "base64FromBytes", "_a", "_b", "createBaseMsgStoreCodeResponse", "createBaseMsgInstantiateContract", "v", "e", "_c", "_d", "_e", "createBaseMsgInstantiateContractResponse", "createBaseMsgExecuteContract", "createBaseMsgExecuteContractResponse", "createBaseMsgMigrateContract", "createBaseMsgMigrateContractResponse", "createBaseMsgUpdateAdmin", "createBaseMsgUpdateAdminResponse", "_", "createBaseMsgClearAdmin", "createBaseMsgClearAdminResponse", "MsgClientImpl", "rpc", "request", "data", "globalThis", "b64", "bin", "arr", "i", "byte", "value", "toAscii", "input", "str", "x", "charCode", "exports", "fromAscii", "data", "listOfNumbers", "require_base64_js", "__commonJSMin", "exports", "byteLength", "toByteArray", "fromByteArray", "lookup", "revLookup", "Arr", "code", "i", "len", "getLens", "b64", "validLen", "placeHoldersLen", "lens", "_byteLength", "tmp", "arr", "curByte", "tripletToBase64", "num", "encodeChunk", "uint8", "start", "end", "output", "extraBytes", "parts", "maxChunkLength", "len2", "base64js", "__importStar", "toBase64", "data", "exports", "fromBase64", "base64String", "require_bech32", "__commonJSMin", "exports", "module", "ALPHABET", "ALPHABET_MAP", "z", "x", "polymodStep", "pre", "b", "prefixChk", "prefix", "chk", "i", "c", "v", "encode", "words", "LIMIT", "result", "__decode", "str", "lowered", "uppered", "split", "wordChars", "decodeUnsafe", "res", "decode", "convert", "data", "inBits", "outBits", "pad", "value", "bits", "maxV", "toWordsUnsafe", "bytes", "toWords", "fromWordsUnsafe", "fromWords", "bech32", "__importStar", "toBech32", "prefix", "data", "limit", "exports", "fromBech32", "address", "decodedAddress", "normalizeBech32", "Bech32", "toHex", "data", "out", "byte", "exports", "fromHex", "hexstring", "i", "j", "hexByteAsString", "rfc3339Matcher", "padded", "integer", "length", "fromRfc3339", "str", "matches", "year", "month", "day", "hour", "minute", "second", "milliSeconds", "tzOffsetSign", "tzOffsetHours", "tzOffsetMinutes", "tzOffset", "timestamp", "exports", "toRfc3339", "date", "ms", "toUtf8", "str", "exports", "fromUtf8", "data", "lossy", "fatal", "ascii_1", "exports", "base64_1", "bech32_1", "hex_1", "rfc3339_1", "utf8_1", "AccountMinterQueryClient", "client", "contractAddress", "__publicField", "tokenId", "limit", "startAfter", "seller", "bidder", "startBefore", "AccountMinterClient", "sender", "account", "fee", "memo", "funds", "pause", "config", "import_tx", "import_encoding", "AccountMinterMessageComposer", "sender", "contractAddress", "__publicField", "account", "funds", "pause", "config", "tokenId", "seller", "bidder"] +} diff --git a/lib/config-loader.js b/lib/config-loader.js new file mode 100644 index 0000000..0d0617d --- /dev/null +++ b/lib/config-loader.js @@ -0,0 +1,216 @@ +// config-loader.js — on-chain config via terp721-account text records +// Queries text records from a named account NFT, maps cfg:* keys to CONFIG fields, +// falls back to static config.json, then to hardcoded defaults. + +// Bootstrap constants — the one thing that must be known ahead of time +const DEFAULTS = { + "morocco-1": { + rest: "https://api.terp.network", + accountContract: "terp142kvnl56hs7jacmwysswlhp4f4eyt7ljclcy9ak7v3cgg3ldhzzs6ye4vu", + configAccount: "", + }, + "120u-1": { + rest: "http://localhost:1317", + accountContract: "terp1v7spuu4j7xu3eddfzzmnm4j37vmsqll775hgga93hy0wcyezhhgqtvcsag", + configAccount: "", + }, +}; + +// Text record key → CONFIG field mapping (dot-path notation) +const KEY_MAP = { + "cfg:rpc": "rpc", + "cfg:rest": "rest", + "cfg:explorer": "explorerBase", + "cfg:contracts.cw721Svg": "contracts.cw721Svg", + "cfg:contracts.accountMinter": "contracts.accountMinter", + "cfg:contracts.cwSvgMinter": "contracts.cwSvgMinter", + "cfg:contracts.shitstrapFactory": "contracts.shitstrapFactory", + "cfg:contracts.cwInfusionMinter": "contracts.cwInfusionMinter", + "cfg:contracts.terp721Account": "contracts.terp721Account", + "cfg:services.merkleServer": "services.merkleServer", + "cfg:services.indexer": "services.indexer", + "cfg:services.headstashServer": "services.headstashServer", + "cfg:contracts.headstash": "contracts.headstash", + "cfg:contracts.headstashManifold": "contracts.headstashManifold", + "cfg:apps": "apps", +}; + +function setNestedValue(obj, dotPath, value) { + const parts = dotPath.split("."); + let cur = obj; + for (let i = 0; i < parts.length - 1; i++) { + if (cur[parts[i]] == null || typeof cur[parts[i]] !== "object") { + cur[parts[i]] = {}; + } + cur = cur[parts[i]]; + } + cur[parts[parts.length - 1]] = value; +} + +function detectChainId() { + return location.hostname === "localhost" ? "120u-1" : "morocco-1"; +} + +async function queryTextRecordsRest(restUrl, contractAddr, account) { + const query = { text_records: { account } }; + const queryB64 = btoa(JSON.stringify(query)); + const url = `${restUrl}/cosmwasm/wasm/v1/contract/${contractAddr}/smart/${queryB64}`; + const res = await fetch(url); + if (!res.ok) throw new Error(`LCD query failed: ${res.status}`); + const json = await res.json(); + return json.data; +} + +// Cache for raw text records so index.html checksum verification can reuse them +let _cachedRecords = null; + +/** + * Load site config from on-chain text records + static config.json. + * Mutates `defaults` in-place and returns it. + * + * @param {object} defaults — the page's hardcoded CONFIG object + * @returns {object} the same object, merged with on-chain + static values + */ +export async function loadSiteConfig(defaults) { + const chainId = detectChainId(); + const bootstrap = DEFAULTS[chainId] || DEFAULTS["morocco-1"]; + + // 1. Fetch static config.json (non-blocking — we merge whatever we get) + let staticChain = null; + try { + const res = await fetch("/public/config.json"); + if (res.ok) { + const site = await res.json(); + staticChain = site.chains?.[chainId]; + // Expose checksums for installer verification + if (site.checksums) window._siteChecksums = site.checksums; + } + } catch {} + + // Merge static config into defaults + if (staticChain) { + if (staticChain.chainId) defaults.chainId = staticChain.chainId; + if (staticChain.chainName) defaults.chainName = staticChain.chainName; + if (staticChain.rpc) defaults.rpc = staticChain.rpc; + if (staticChain.rest) defaults.rest = staticChain.rest; + if (staticChain.explorer) defaults.explorerBase = staticChain.explorer; + if (staticChain.bech32Prefix) defaults.bech32Prefix = staticChain.bech32Prefix; + if (staticChain.denom) { + defaults.denom = staticChain.denom.fee; + defaults.denomDisplay = staticChain.denom.feeDisplay; + defaults.denomDecimals = staticChain.denom.decimals; + } + // Contract addresses + if (staticChain.contracts) { + for (const [k, v] of Object.entries(staticChain.contracts)) { + if (v) setNestedValue(defaults, `contracts.${k}`, v); + } + } + // Services + if (staticChain.services) { + for (const [k, v] of Object.entries(staticChain.services)) { + if (v) setNestedValue(defaults, `services.${k}`, v); + } + } + // Page-specific convenience aliases used by existing pages + if (staticChain.contracts?.cwSvgMinter) defaults.minterContract = staticChain.contracts.cwSvgMinter; + if (staticChain.contracts?.cw721Svg) defaults.staticCollections = [staticChain.contracts.cw721Svg]; + if (staticChain.contracts?.shitstrapFactory) defaults.shitstrapFactory = staticChain.contracts.shitstrapFactory; + if (staticChain.contracts?.accountMinter) defaults.accountMinterContract = staticChain.contracts.accountMinter; + if (staticChain.contracts?.terp721Account) defaults.accountContract = staticChain.contracts.terp721Account; + if (staticChain.services?.merkleServer) defaults.merkleServerUrl = staticChain.services.merkleServer; + if (staticChain.services?.indexer) defaults.indexerBase = staticChain.services.indexer; + if (staticChain.services?.headstashServer) defaults.headstashServerUrl = staticChain.services.headstashServer; + if (staticChain.contracts?.headstash) defaults.headstashContract = staticChain.contracts.headstash; + if (staticChain.contracts?.headstashManifold) defaults.headstashManifoldContract = staticChain.contracts.headstashManifold; + } + + // Determine contract address + account name for text record query + const contractAddr = staticChain?.contracts?.terp721Account || bootstrap.accountContract; + const configAccount = staticChain?.configAccount || bootstrap.configAccount; + + // 2. Query on-chain text records (highest priority) + if (contractAddr && configAccount) { + const restUrl = defaults.rest || staticChain?.rest || bootstrap.rest; + try { + const records = await queryTextRecordsRest(restUrl, contractAddr, configAccount); + _cachedRecords = records; + if (Array.isArray(records)) { + for (const rec of records) { + const field = KEY_MAP[rec.account]; + if (field) { + if (field === "apps") { + try { setNestedValue(defaults, field, JSON.parse(rec.value)); } catch {} + continue; + } + setNestedValue(defaults, field, rec.value); + // Also set convenience aliases + if (field === "contracts.cwSvgMinter") defaults.minterContract = rec.value; + if (field === "contracts.cw721Svg" && rec.value) defaults.staticCollections = [rec.value]; + if (field === "contracts.shitstrapFactory") defaults.shitstrapFactory = rec.value; + if (field === "contracts.accountMinter") defaults.accountMinterContract = rec.value; + if (field === "contracts.terp721Account") defaults.accountContract = rec.value; + if (field === "services.merkleServer") defaults.merkleServerUrl = rec.value; + if (field === "services.indexer") defaults.indexerBase = rec.value; + if (field === "services.headstashServer") defaults.headstashServerUrl = rec.value; + if (field === "contracts.headstash") defaults.headstashContract = rec.value; + if (field === "contracts.headstashManifold") defaults.headstashManifoldContract = rec.value; + } + } + } + } catch (err) { + console.warn("config-loader: on-chain text records unavailable:", err.message); + } + } + + return defaults; +} + +/** + * Get the bootstrap info for the config contract. + * Useful for admin pages that need to know which contract/account holds config. + */ +export function getConfigContract() { + const chainId = detectChainId(); + const bootstrap = DEFAULTS[chainId] || DEFAULTS["morocco-1"]; + return { + rest: bootstrap.rest, + contractAddress: bootstrap.accountContract, + configAccount: bootstrap.configAccount, + chainId, + }; +} + +/** + * Get cached raw text records (available after loadSiteConfig resolves). + * Used by index.html for checksum verification without double-fetching. + */ +export function getCachedTextRecords() { + return _cachedRecords; +} + +/** + * Look up a single text record by key from cached records. + */ +export function getTextRecord(name) { + if (!_cachedRecords) return null; + const rec = _cachedRecords.find(r => r.account === name); + return rec ? rec.value : null; +} + +const DEFAULT_APPS = [ + { id: "svg", title: "SVG", url: "/svg.html" }, + { id: "no-rick", title: "No Rick", url: "/no-rick.html" }, + { id: "tabs", title: "Names", url: "/tabs.html", disabled: true }, + { id: "ibc", title: "IBC", url: "/ibc.html", disabled: true }, + { id: "oline", title: "O-Line", url: "/oline.html", disabled: true }, + { id: "admin", title: "Admin", url: "/admin.html", disabled: true }, + { id: "tx", title: "Tx", url: "/tx.html", disabled: true }, + { id: "passkey", title: "Passkey", url: "/passkey.html", disabled: true }, + { id: "shell", title: "Shell", url: "/shell.html", disabled: true }, + { id: "headstash", title: "Headstash", url: "/headstash.html", disabled: true }, +]; + +export function getAppsRegistry(config) { + return config?.apps || DEFAULT_APPS; +} diff --git a/lib/cw-infuser-factory.js b/lib/cw-infuser-factory.js new file mode 100644 index 0000000..477e717 --- /dev/null +++ b/lib/cw-infuser-factory.js @@ -0,0 +1,2 @@ +var A=Object.defineProperty;var h=(s,e,t)=>e in s?A(s,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):s[e]=t;var n=(s,e,t)=>h(s,typeof e!="symbol"?e+"":e,t);var o=class{constructor(e,t){n(this,"client");n(this,"contractAddress");n(this,"listAvEventContracts",async({limit:e,startAfter:t})=>this.client.queryContractSmart(this.contractAddress,{list_av_event_contracts:{limit:e,start_after:t}}));n(this,"listAvEventContractsReverse",async({limit:e,startBefore:t})=>this.client.queryContractSmart(this.contractAddress,{list_av_event_contracts_reverse:{limit:e,start_before:t}}));n(this,"listAvEventContractsByInstantiator",async({instantiator:e,limit:t,startAfter:r})=>this.client.queryContractSmart(this.contractAddress,{list_av_event_contracts_by_instantiator:{instantiator:e,limit:t,start_after:r}}));n(this,"listAvEventContractsByInstantiatorReverse",async({instantiator:e,limit:t,startBefore:r})=>this.client.queryContractSmart(this.contractAddress,{list_av_event_contracts_by_instantiator_reverse:{instantiator:e,limit:t,start_before:r}}));n(this,"ownership",async()=>this.client.queryContractSmart(this.contractAddress,{ownership:{}}));n(this,"codeId",async()=>this.client.queryContractSmart(this.contractAddress,{code_id:{}}));this.client=e,this.contractAddress=t,this.listAvEventContracts=this.listAvEventContracts.bind(this),this.listAvEventContractsReverse=this.listAvEventContractsReverse.bind(this),this.listAvEventContractsByInstantiator=this.listAvEventContractsByInstantiator.bind(this),this.listAvEventContractsByInstantiatorReverse=this.listAvEventContractsByInstantiatorReverse.bind(this),this.ownership=this.ownership.bind(this),this.codeId=this.codeId.bind(this)}},v=class extends o{constructor(t,r,i){super(t,i);n(this,"client");n(this,"sender");n(this,"contractAddress");n(this,"createNativeAvEventContract",async({instantiateMsg:t,label:r},i="auto",a,u)=>await this.client.execute(this.sender,this.contractAddress,{create_native_av_event_contract:{instantiate_msg:t,label:r}},i,a,u));n(this,"updateCodeId",async({cwAveCodeId:t},r="auto",i,a)=>await this.client.execute(this.sender,this.contractAddress,{update_code_id:{cw_ave_code_id:t}},r,i,a));n(this,"updateOwnership",async(t,r="auto",i,a)=>await this.client.execute(this.sender,this.contractAddress,{update_ownership:t},r,i,a));this.client=t,this.sender=r,this.contractAddress=i,this.createNativeAvEventContract=this.createNativeAvEventContract.bind(this),this.updateCodeId=this.updateCodeId.bind(this),this.updateOwnership=this.updateOwnership.bind(this)}};import{MsgExecuteContract as c}from"interchainjs/cosmwasm/wasm/v1/tx";import{toUtf8 as d}from"@interchainjs/encoding";var m=class{constructor(e,t){n(this,"sender");n(this,"contractAddress");n(this,"createNativeAvEventContract",({instantiateMsg:e,label:t},r)=>({typeUrl:"/cosmwasm.wasm.v1.MsgExecuteContract",value:c.fromPartial({sender:this.sender,contract:this.contractAddress,msg:d(JSON.stringify({create_native_av_event_contract:{instantiate_msg:e,label:t}})),funds:r})}));n(this,"updateCodeId",({cwAveCodeId:e},t)=>({typeUrl:"/cosmwasm.wasm.v1.MsgExecuteContract",value:c.fromPartial({sender:this.sender,contract:this.contractAddress,msg:d(JSON.stringify({update_code_id:{cw_ave_code_id:e}})),funds:t})}));n(this,"updateOwnership",(e,t)=>({typeUrl:"/cosmwasm.wasm.v1.MsgExecuteContract",value:c.fromPartial({sender:this.sender,contract:this.contractAddress,msg:d(JSON.stringify({update_ownership:e})),funds:t})}));this.sender=e,this.contractAddress=t,this.createNativeAvEventContract=this.createNativeAvEventContract.bind(this),this.updateCodeId=this.updateCodeId.bind(this),this.updateOwnership=this.updateOwnership.bind(this)}};export{v as CwInfuserFactoryClient,m as CwInfuserFactoryMsgComposer,o as CwInfuserFactoryQueryClient}; +//# sourceMappingURL=cw-infuser-factory.js.map diff --git a/lib/cw-infuser-factory.js.map b/lib/cw-infuser-factory.js.map new file mode 100644 index 0000000..1175563 --- /dev/null +++ b/lib/cw-infuser-factory.js.map @@ -0,0 +1,7 @@ +{ + "version": 3, + "sources": ["../../src/CwInfuserFactory.client.ts", "../../src/CwInfuserFactory.message-composer.ts"], + "sourcesContent": ["/**\n* This file was automatically generated by @cosmwasm/ts-codegen@1.14.0.\n* DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,\n* and run the @cosmwasm/ts-codegen generate command to regenerate this file.\n*/\n\nimport { ICosmWasmClient, ISigningCosmWasmClient } from \"./baseClient\";\nimport { StdFee } from \"@interchainjs/types\";\nimport { InstantiateMsg, ExecuteMsg, Timestamp, Uint64, EventSegmentAccessType, Uint128, Action, Expiration, EventSegment, GuestDetails, Coin, Member, QueryMsg, ArrayOfAvEventContract, AvEventContract, Addr, OwnershipForAddr } from \"./CwInfuserFactory.types\";\nexport interface CwInfuserFactoryReadOnlyInterface {\n contractAddress: string;\n listAvEventContracts: ({\n limit,\n startAfter\n }: {\n limit?: number;\n startAfter?: string;\n }) => Promise;\n listAvEventContractsReverse: ({\n limit,\n startBefore\n }: {\n limit?: number;\n startBefore?: string;\n }) => Promise;\n listAvEventContractsByInstantiator: ({\n instantiator,\n limit,\n startAfter\n }: {\n instantiator: string;\n limit?: number;\n startAfter?: string;\n }) => Promise;\n listAvEventContractsByInstantiatorReverse: ({\n instantiator,\n limit,\n startBefore\n }: {\n instantiator: string;\n limit?: number;\n startBefore?: string;\n }) => Promise;\n ownership: () => Promise;\n codeId: () => Promise;\n}\nexport class CwInfuserFactoryQueryClient implements CwInfuserFactoryReadOnlyInterface {\n client: ICosmWasmClient;\n contractAddress: string;\n constructor(client: ICosmWasmClient, contractAddress: string) {\n this.client = client;\n this.contractAddress = contractAddress;\n this.listAvEventContracts = this.listAvEventContracts.bind(this);\n this.listAvEventContractsReverse = this.listAvEventContractsReverse.bind(this);\n this.listAvEventContractsByInstantiator = this.listAvEventContractsByInstantiator.bind(this);\n this.listAvEventContractsByInstantiatorReverse = this.listAvEventContractsByInstantiatorReverse.bind(this);\n this.ownership = this.ownership.bind(this);\n this.codeId = this.codeId.bind(this);\n }\n listAvEventContracts = async ({\n limit,\n startAfter\n }: {\n limit?: number;\n startAfter?: string;\n }): Promise => {\n return this.client.queryContractSmart(this.contractAddress, {\n list_av_event_contracts: {\n limit,\n start_after: startAfter\n }\n });\n };\n listAvEventContractsReverse = async ({\n limit,\n startBefore\n }: {\n limit?: number;\n startBefore?: string;\n }): Promise => {\n return this.client.queryContractSmart(this.contractAddress, {\n list_av_event_contracts_reverse: {\n limit,\n start_before: startBefore\n }\n });\n };\n listAvEventContractsByInstantiator = async ({\n instantiator,\n limit,\n startAfter\n }: {\n instantiator: string;\n limit?: number;\n startAfter?: string;\n }): Promise => {\n return this.client.queryContractSmart(this.contractAddress, {\n list_av_event_contracts_by_instantiator: {\n instantiator,\n limit,\n start_after: startAfter\n }\n });\n };\n listAvEventContractsByInstantiatorReverse = async ({\n instantiator,\n limit,\n startBefore\n }: {\n instantiator: string;\n limit?: number;\n startBefore?: string;\n }): Promise => {\n return this.client.queryContractSmart(this.contractAddress, {\n list_av_event_contracts_by_instantiator_reverse: {\n instantiator,\n limit,\n start_before: startBefore\n }\n });\n };\n ownership = async (): Promise => {\n return this.client.queryContractSmart(this.contractAddress, {\n ownership: {}\n });\n };\n codeId = async (): Promise => {\n return this.client.queryContractSmart(this.contractAddress, {\n code_id: {}\n });\n };\n}\nexport interface CwInfuserFactoryInterface extends CwInfuserFactoryReadOnlyInterface {\n contractAddress: string;\n sender: string;\n createNativeAvEventContract: ({\n instantiateMsg,\n label\n }: {\n instantiateMsg: InstantiateMsg;\n label: string;\n }, fee_?: number | StdFee | \"auto\", memo_?: string, funds_?: Coin[]) => Promise;\n updateCodeId: ({\n cwAveCodeId\n }: {\n cwAveCodeId: number;\n }, fee_?: number | StdFee | \"auto\", memo_?: string, funds_?: Coin[]) => Promise;\n updateOwnership: (action: Action, fee_?: number | StdFee | \"auto\", memo_?: string, funds_?: Coin[]) => Promise;\n}\nexport class CwInfuserFactoryClient extends CwInfuserFactoryQueryClient implements CwInfuserFactoryInterface {\n client: ISigningCosmWasmClient;\n sender: string;\n contractAddress: string;\n constructor(client: ISigningCosmWasmClient, sender: string, contractAddress: string) {\n super(client, contractAddress);\n this.client = client;\n this.sender = sender;\n this.contractAddress = contractAddress;\n this.createNativeAvEventContract = this.createNativeAvEventContract.bind(this);\n this.updateCodeId = this.updateCodeId.bind(this);\n this.updateOwnership = this.updateOwnership.bind(this);\n }\n createNativeAvEventContract = async ({\n instantiateMsg,\n label\n }: {\n instantiateMsg: InstantiateMsg;\n label: string;\n }, fee_: number | StdFee | \"auto\" = \"auto\", memo_?: string, funds_?: Coin[]): Promise => {\n return await this.client.execute(this.sender, this.contractAddress, {\n create_native_av_event_contract: {\n instantiate_msg: instantiateMsg,\n label\n }\n }, fee_, memo_, funds_);\n };\n updateCodeId = async ({\n cwAveCodeId\n }: {\n cwAveCodeId: number;\n }, fee_: number | StdFee | \"auto\" = \"auto\", memo_?: string, funds_?: Coin[]): Promise => {\n return await this.client.execute(this.sender, this.contractAddress, {\n update_code_id: {\n cw_ave_code_id: cwAveCodeId\n }\n }, fee_, memo_, funds_);\n };\n updateOwnership = async (action: Action, fee_: number | StdFee | \"auto\" = \"auto\", memo_?: string, funds_?: Coin[]): Promise => {\n return await this.client.execute(this.sender, this.contractAddress, {\n update_ownership: action\n }, fee_, memo_, funds_);\n };\n}", "/**\n* This file was automatically generated by @cosmwasm/ts-codegen@1.14.0.\n* DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,\n* and run the @cosmwasm/ts-codegen generate command to regenerate this file.\n*/\n\nimport { EncodeObject } from \"@interchainjs/cosmos-types\";\nimport { MsgExecuteContract } from \"interchainjs/cosmwasm/wasm/v1/tx\";\nimport { toUtf8 } from \"@interchainjs/encoding\";\nimport { InstantiateMsg, ExecuteMsg, Timestamp, Uint64, EventSegmentAccessType, Uint128, Action, Expiration, EventSegment, GuestDetails, Coin, Member, QueryMsg, ArrayOfAvEventContract, AvEventContract, Addr, OwnershipForAddr } from \"./CwInfuserFactory.types\";\nexport interface CwInfuserFactoryMsg {\n contractAddress: string;\n sender: string;\n createNativeAvEventContract: ({\n instantiateMsg,\n label\n }: {\n instantiateMsg: InstantiateMsg;\n label: string;\n }, funds_?: Coin[]) => EncodeObject;\n updateCodeId: ({\n cwAveCodeId\n }: {\n cwAveCodeId: number;\n }, funds_?: Coin[]) => EncodeObject;\n updateOwnership: (action: Action, funds_?: Coin[]) => EncodeObject;\n}\nexport class CwInfuserFactoryMsgComposer implements CwInfuserFactoryMsg {\n sender: string;\n contractAddress: string;\n constructor(sender: string, contractAddress: string) {\n this.sender = sender;\n this.contractAddress = contractAddress;\n this.createNativeAvEventContract = this.createNativeAvEventContract.bind(this);\n this.updateCodeId = this.updateCodeId.bind(this);\n this.updateOwnership = this.updateOwnership.bind(this);\n }\n createNativeAvEventContract = ({\n instantiateMsg,\n label\n }: {\n instantiateMsg: InstantiateMsg;\n label: string;\n }, funds_?: Coin[]): EncodeObject => {\n return {\n typeUrl: \"/cosmwasm.wasm.v1.MsgExecuteContract\",\n value: MsgExecuteContract.fromPartial({\n sender: this.sender,\n contract: this.contractAddress,\n msg: toUtf8(JSON.stringify({\n create_native_av_event_contract: {\n instantiate_msg: instantiateMsg,\n label\n }\n })),\n funds: funds_\n })\n };\n };\n updateCodeId = ({\n cwAveCodeId\n }: {\n cwAveCodeId: number;\n }, funds_?: Coin[]): EncodeObject => {\n return {\n typeUrl: \"/cosmwasm.wasm.v1.MsgExecuteContract\",\n value: MsgExecuteContract.fromPartial({\n sender: this.sender,\n contract: this.contractAddress,\n msg: toUtf8(JSON.stringify({\n update_code_id: {\n cw_ave_code_id: cwAveCodeId\n }\n })),\n funds: funds_\n })\n };\n };\n updateOwnership = (action: Action, funds_?: Coin[]): EncodeObject => {\n return {\n typeUrl: \"/cosmwasm.wasm.v1.MsgExecuteContract\",\n value: MsgExecuteContract.fromPartial({\n sender: this.sender,\n contract: this.contractAddress,\n msg: toUtf8(JSON.stringify({\n update_ownership: action\n })),\n funds: funds_\n })\n };\n };\n}"], + "mappings": "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", + "names": ["CwInfuserFactoryQueryClient", "client", "contractAddress", "__publicField", "limit", "startAfter", "startBefore", "instantiator", "CwInfuserFactoryClient", "sender", "instantiateMsg", "label", "fee_", "memo_", "funds_", "cwAveCodeId", "action", "MsgExecuteContract", "toUtf8", "CwInfuserFactoryMsgComposer", "sender", "contractAddress", "__publicField", "instantiateMsg", "label", "funds_", "MsgExecuteContract", "toUtf8", "cwAveCodeId", "action"] +} diff --git a/lib/cw-infuser.js b/lib/cw-infuser.js new file mode 100644 index 0000000..66c5f91 --- /dev/null +++ b/lib/cw-infuser.js @@ -0,0 +1,2 @@ +var b=Object.defineProperty;var h=(a,e,n)=>e in a?b(a,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):a[e]=n;var i=(a,e,n)=>h(a,typeof e!="symbol"?e+"":e,n);var c=class{constructor(e,n){i(this,"client");i(this,"contractAddress");i(this,"config",async()=>this.client.queryContractSmart(this.contractAddress,{config:{}}));i(this,"infusion",async({addr:e,id:n})=>this.client.queryContractSmart(this.contractAddress,{infusion:{addr:e,id:n}}));i(this,"infusionById",async({id:e})=>this.client.queryContractSmart(this.contractAddress,{infusion_by_id:{id:e}}));i(this,"infusions",async({addr:e,index:n})=>this.client.queryContractSmart(this.contractAddress,{infusions:{addr:e,index:n}}));i(this,"isInBundle",async({collectionAddr:e,infusionId:n})=>this.client.queryContractSmart(this.contractAddress,{is_in_bundle:{collection_addr:e,infusion_id:n}}));i(this,"infusionGenetics",async({id:e})=>this.client.queryContractSmart(this.contractAddress,{infusion_genetics:{id:e}}));i(this,"wavsRecord",async({burner:e,nfts:n})=>this.client.queryContractSmart(this.contractAddress,{wavs_record:{burner:e,nfts:n}}));this.client=e,this.contractAddress=n,this.config=this.config.bind(this),this.infusion=this.infusion.bind(this),this.infusionById=this.infusionById.bind(this),this.infusions=this.infusions.bind(this),this.isInBundle=this.isInBundle.bind(this),this.infusionGenetics=this.infusionGenetics.bind(this),this.wavsRecord=this.wavsRecord.bind(this)}},f=class extends c{constructor(n,s,t){super(n,t);i(this,"client");i(this,"sender");i(this,"contractAddress");i(this,"createInfusion",async({infusions:n},s="auto",t,o)=>await this.client.execute(this.sender,this.contractAddress,{create_infusion:{infusions:n}},s,t,o));i(this,"wavsEntryPoint",async({infusions:n},s="auto",t,o)=>await this.client.execute(this.sender,this.contractAddress,{wavs_entry_point:{infusions:n}},s,t,o));i(this,"infuse",async({bundle:n,id:s},t="auto",o,u)=>await this.client.execute(this.sender,this.contractAddress,{infuse:{bundle:n,id:s}},t,o,u));i(this,"endInfusion",async({id:n},s="auto",t,o)=>await this.client.execute(this.sender,this.contractAddress,{end_infusion:{id:n}},s,t,o));i(this,"updateInfusionBaseUri",async({baseUri:n,id:s},t="auto",o,u)=>await this.client.execute(this.sender,this.contractAddress,{update_infusion_base_uri:{base_uri:n,id:s}},t,o,u));i(this,"updateConfig",async({config:n},s="auto",t,o)=>await this.client.execute(this.sender,this.contractAddress,{update_config:{config:n}},s,t,o));i(this,"updateInfusionsEligibleCollections",async({id:n,toAdd:s,toRemove:t},o="auto",u,l)=>await this.client.execute(this.sender,this.contractAddress,{update_infusions_eligible_collections:{id:n,to_add:s,to_remove:t}},o,u,l));i(this,"updateInfusionMintFee",async({id:n,mintFee:s},t="auto",o,u)=>await this.client.execute(this.sender,this.contractAddress,{update_infusion_mint_fee:{id:n,mint_fee:s}},t,o,u));i(this,"updateInfusionBundleType",async({bundleType:n,id:s},t="auto",o,u)=>await this.client.execute(this.sender,this.contractAddress,{update_infusion_bundle_type:{bundle_type:n,id:s}},t,o,u));i(this,"shuffle",async({id:n},s="auto",t,o)=>await this.client.execute(this.sender,this.contractAddress,{shuffle:{id:n}},s,t,o));this.client=n,this.sender=s,this.contractAddress=t,this.createInfusion=this.createInfusion.bind(this),this.wavsEntryPoint=this.wavsEntryPoint.bind(this),this.infuse=this.infuse.bind(this),this.endInfusion=this.endInfusion.bind(this),this.updateInfusionBaseUri=this.updateInfusionBaseUri.bind(this),this.updateConfig=this.updateConfig.bind(this),this.updateInfusionsEligibleCollections=this.updateInfusionsEligibleCollections.bind(this),this.updateInfusionMintFee=this.updateInfusionMintFee.bind(this),this.updateInfusionBundleType=this.updateInfusionBundleType.bind(this),this.shuffle=this.shuffle.bind(this)}};import{MsgExecuteContract as r}from"interchainjs/cosmwasm/wasm/v1/tx";import{toUtf8 as d}from"@interchainjs/encoding";var m=class{constructor(e,n){i(this,"sender");i(this,"contractAddress");i(this,"createInfusion",({infusions:e},n)=>({typeUrl:"/cosmwasm.wasm.v1.MsgExecuteContract",value:r.fromPartial({sender:this.sender,contract:this.contractAddress,msg:d(JSON.stringify({create_infusion:{infusions:e}})),funds:n})}));i(this,"wavsEntryPoint",({infusions:e},n)=>({typeUrl:"/cosmwasm.wasm.v1.MsgExecuteContract",value:r.fromPartial({sender:this.sender,contract:this.contractAddress,msg:d(JSON.stringify({wavs_entry_point:{infusions:e}})),funds:n})}));i(this,"infuse",({bundle:e,id:n},s)=>({typeUrl:"/cosmwasm.wasm.v1.MsgExecuteContract",value:r.fromPartial({sender:this.sender,contract:this.contractAddress,msg:d(JSON.stringify({infuse:{bundle:e,id:n}})),funds:s})}));i(this,"endInfusion",({id:e},n)=>({typeUrl:"/cosmwasm.wasm.v1.MsgExecuteContract",value:r.fromPartial({sender:this.sender,contract:this.contractAddress,msg:d(JSON.stringify({end_infusion:{id:e}})),funds:n})}));i(this,"updateInfusionBaseUri",({baseUri:e,id:n},s)=>({typeUrl:"/cosmwasm.wasm.v1.MsgExecuteContract",value:r.fromPartial({sender:this.sender,contract:this.contractAddress,msg:d(JSON.stringify({update_infusion_base_uri:{base_uri:e,id:n}})),funds:s})}));i(this,"updateConfig",({config:e},n)=>({typeUrl:"/cosmwasm.wasm.v1.MsgExecuteContract",value:r.fromPartial({sender:this.sender,contract:this.contractAddress,msg:d(JSON.stringify({update_config:{config:e}})),funds:n})}));i(this,"updateInfusionsEligibleCollections",({id:e,toAdd:n,toRemove:s},t)=>({typeUrl:"/cosmwasm.wasm.v1.MsgExecuteContract",value:r.fromPartial({sender:this.sender,contract:this.contractAddress,msg:d(JSON.stringify({update_infusions_eligible_collections:{id:e,to_add:n,to_remove:s}})),funds:t})}));i(this,"updateInfusionMintFee",({id:e,mintFee:n},s)=>({typeUrl:"/cosmwasm.wasm.v1.MsgExecuteContract",value:r.fromPartial({sender:this.sender,contract:this.contractAddress,msg:d(JSON.stringify({update_infusion_mint_fee:{id:e,mint_fee:n}})),funds:s})}));i(this,"updateInfusionBundleType",({bundleType:e,id:n},s)=>({typeUrl:"/cosmwasm.wasm.v1.MsgExecuteContract",value:r.fromPartial({sender:this.sender,contract:this.contractAddress,msg:d(JSON.stringify({update_infusion_bundle_type:{bundle_type:e,id:n}})),funds:s})}));i(this,"shuffle",({id:e},n)=>({typeUrl:"/cosmwasm.wasm.v1.MsgExecuteContract",value:r.fromPartial({sender:this.sender,contract:this.contractAddress,msg:d(JSON.stringify({shuffle:{id:e}})),funds:n})}));this.sender=e,this.contractAddress=n,this.createInfusion=this.createInfusion.bind(this),this.wavsEntryPoint=this.wavsEntryPoint.bind(this),this.infuse=this.infuse.bind(this),this.endInfusion=this.endInfusion.bind(this),this.updateInfusionBaseUri=this.updateInfusionBaseUri.bind(this),this.updateConfig=this.updateConfig.bind(this),this.updateInfusionsEligibleCollections=this.updateInfusionsEligibleCollections.bind(this),this.updateInfusionMintFee=this.updateInfusionMintFee.bind(this),this.updateInfusionBundleType=this.updateInfusionBundleType.bind(this),this.shuffle=this.shuffle.bind(this)}};export{f as CwInfuserClient,m as CwInfuserMsgComposer,c as CwInfuserQueryClient}; +//# sourceMappingURL=cw-infuser.js.map diff --git a/lib/cw-infuser.js.map b/lib/cw-infuser.js.map new file mode 100644 index 0000000..15e061b --- /dev/null +++ b/lib/cw-infuser.js.map @@ -0,0 +1,7 @@ +{ + "version": 3, + "sources": ["../../src/CwInfuser.client.ts", "../../src/CwInfuser.message-composer.ts"], + "sourcesContent": ["/**\n* This file was automatically generated by @cosmwasm/ts-codegen@1.14.0.\n* DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,\n* and run the @cosmwasm/ts-codegen generate command to regenerate this file.\n*/\n\nimport { ICosmWasmClient, ISigningCosmWasmClient } from \"./baseClient\";\nimport { StdFee } from \"@interchainjs/types\";\nimport { Uint128, Decimal, InstantiateMsg, Coin, ExecuteMsg, Addr, Timestamp, Uint64, BundleType, Infusion, EligibleNFTCollection, InfusedCollection, RoyaltyInfoResponse, InfusionParamState, BundleBlend, BlendNFTs, BurnParams, CompatibleTraits, WavsBundle, Bundle, NFT, UpdatingConfig, QueryMsg, HexBinary, Config, InfusionState, ArrayOfCompatibleTraits, InfusionsResponse, Boolean, ArrayOfWavsRecordResponse, WavsRecordResponse } from \"./CwInfuser.types\";\nexport interface CwInfuserReadOnlyInterface {\n contractAddress: string;\n config: () => Promise;\n infusion: ({\n addr,\n id\n }: {\n addr: Addr;\n id: number;\n }) => Promise;\n infusionById: ({\n id\n }: {\n id: number;\n }) => Promise;\n infusions: ({\n addr,\n index\n }: {\n addr: Addr;\n index: number;\n }) => Promise;\n isInBundle: ({\n collectionAddr,\n infusionId\n }: {\n collectionAddr: Addr;\n infusionId: number;\n }) => Promise;\n infusionGenetics: ({\n id\n }: {\n id: number;\n }) => Promise;\n wavsRecord: ({\n burner,\n nfts\n }: {\n burner?: Addr;\n nfts: string[];\n }) => Promise;\n}\nexport class CwInfuserQueryClient implements CwInfuserReadOnlyInterface {\n client: ICosmWasmClient;\n contractAddress: string;\n constructor(client: ICosmWasmClient, contractAddress: string) {\n this.client = client;\n this.contractAddress = contractAddress;\n this.config = this.config.bind(this);\n this.infusion = this.infusion.bind(this);\n this.infusionById = this.infusionById.bind(this);\n this.infusions = this.infusions.bind(this);\n this.isInBundle = this.isInBundle.bind(this);\n this.infusionGenetics = this.infusionGenetics.bind(this);\n this.wavsRecord = this.wavsRecord.bind(this);\n }\n config = async (): Promise => {\n return this.client.queryContractSmart(this.contractAddress, {\n config: {}\n });\n };\n infusion = async ({\n addr,\n id\n }: {\n addr: Addr;\n id: number;\n }): Promise => {\n return this.client.queryContractSmart(this.contractAddress, {\n infusion: {\n addr,\n id\n }\n });\n };\n infusionById = async ({\n id\n }: {\n id: number;\n }): Promise => {\n return this.client.queryContractSmart(this.contractAddress, {\n infusion_by_id: {\n id\n }\n });\n };\n infusions = async ({\n addr,\n index\n }: {\n addr: Addr;\n index: number;\n }): Promise => {\n return this.client.queryContractSmart(this.contractAddress, {\n infusions: {\n addr,\n index\n }\n });\n };\n isInBundle = async ({\n collectionAddr,\n infusionId\n }: {\n collectionAddr: Addr;\n infusionId: number;\n }): Promise => {\n return this.client.queryContractSmart(this.contractAddress, {\n is_in_bundle: {\n collection_addr: collectionAddr,\n infusion_id: infusionId\n }\n });\n };\n infusionGenetics = async ({\n id\n }: {\n id: number;\n }): Promise => {\n return this.client.queryContractSmart(this.contractAddress, {\n infusion_genetics: {\n id\n }\n });\n };\n wavsRecord = async ({\n burner,\n nfts\n }: {\n burner?: Addr;\n nfts: string[];\n }): Promise => {\n return this.client.queryContractSmart(this.contractAddress, {\n wavs_record: {\n burner,\n nfts\n }\n });\n };\n}\nexport interface CwInfuserInterface extends CwInfuserReadOnlyInterface {\n contractAddress: string;\n sender: string;\n createInfusion: ({\n infusions\n }: {\n infusions: Infusion[];\n }, fee_?: number | StdFee | \"auto\", memo_?: string, funds_?: Coin[]) => Promise;\n wavsEntryPoint: ({\n infusions\n }: {\n infusions: WavsBundle[];\n }, fee_?: number | StdFee | \"auto\", memo_?: string, funds_?: Coin[]) => Promise;\n infuse: ({\n bundle,\n id\n }: {\n bundle: Bundle[];\n id: number;\n }, fee_?: number | StdFee | \"auto\", memo_?: string, funds_?: Coin[]) => Promise;\n endInfusion: ({\n id\n }: {\n id: number;\n }, fee_?: number | StdFee | \"auto\", memo_?: string, funds_?: Coin[]) => Promise;\n updateInfusionBaseUri: ({\n baseUri,\n id\n }: {\n baseUri: string;\n id: number;\n }, fee_?: number | StdFee | \"auto\", memo_?: string, funds_?: Coin[]) => Promise;\n updateConfig: ({\n config\n }: {\n config: UpdatingConfig;\n }, fee_?: number | StdFee | \"auto\", memo_?: string, funds_?: Coin[]) => Promise;\n updateInfusionsEligibleCollections: ({\n id,\n toAdd,\n toRemove\n }: {\n id: number;\n toAdd: EligibleNFTCollection[];\n toRemove: EligibleNFTCollection[];\n }, fee_?: number | StdFee | \"auto\", memo_?: string, funds_?: Coin[]) => Promise;\n updateInfusionMintFee: ({\n id,\n mintFee\n }: {\n id: number;\n mintFee?: Coin;\n }, fee_?: number | StdFee | \"auto\", memo_?: string, funds_?: Coin[]) => Promise;\n updateInfusionBundleType: ({\n bundleType,\n id\n }: {\n bundleType: BundleType;\n id: number;\n }, fee_?: number | StdFee | \"auto\", memo_?: string, funds_?: Coin[]) => Promise;\n shuffle: ({\n id\n }: {\n id: number;\n }, fee_?: number | StdFee | \"auto\", memo_?: string, funds_?: Coin[]) => Promise;\n}\nexport class CwInfuserClient extends CwInfuserQueryClient implements CwInfuserInterface {\n client: ISigningCosmWasmClient;\n sender: string;\n contractAddress: string;\n constructor(client: ISigningCosmWasmClient, sender: string, contractAddress: string) {\n super(client, contractAddress);\n this.client = client;\n this.sender = sender;\n this.contractAddress = contractAddress;\n this.createInfusion = this.createInfusion.bind(this);\n this.wavsEntryPoint = this.wavsEntryPoint.bind(this);\n this.infuse = this.infuse.bind(this);\n this.endInfusion = this.endInfusion.bind(this);\n this.updateInfusionBaseUri = this.updateInfusionBaseUri.bind(this);\n this.updateConfig = this.updateConfig.bind(this);\n this.updateInfusionsEligibleCollections = this.updateInfusionsEligibleCollections.bind(this);\n this.updateInfusionMintFee = this.updateInfusionMintFee.bind(this);\n this.updateInfusionBundleType = this.updateInfusionBundleType.bind(this);\n this.shuffle = this.shuffle.bind(this);\n }\n createInfusion = async ({\n infusions\n }: {\n infusions: Infusion[];\n }, fee_: number | StdFee | \"auto\" = \"auto\", memo_?: string, funds_?: Coin[]): Promise => {\n return await this.client.execute(this.sender, this.contractAddress, {\n create_infusion: {\n infusions\n }\n }, fee_, memo_, funds_);\n };\n wavsEntryPoint = async ({\n infusions\n }: {\n infusions: WavsBundle[];\n }, fee_: number | StdFee | \"auto\" = \"auto\", memo_?: string, funds_?: Coin[]): Promise => {\n return await this.client.execute(this.sender, this.contractAddress, {\n wavs_entry_point: {\n infusions\n }\n }, fee_, memo_, funds_);\n };\n infuse = async ({\n bundle,\n id\n }: {\n bundle: Bundle[];\n id: number;\n }, fee_: number | StdFee | \"auto\" = \"auto\", memo_?: string, funds_?: Coin[]): Promise => {\n return await this.client.execute(this.sender, this.contractAddress, {\n infuse: {\n bundle,\n id\n }\n }, fee_, memo_, funds_);\n };\n endInfusion = async ({\n id\n }: {\n id: number;\n }, fee_: number | StdFee | \"auto\" = \"auto\", memo_?: string, funds_?: Coin[]): Promise => {\n return await this.client.execute(this.sender, this.contractAddress, {\n end_infusion: {\n id\n }\n }, fee_, memo_, funds_);\n };\n updateInfusionBaseUri = async ({\n baseUri,\n id\n }: {\n baseUri: string;\n id: number;\n }, fee_: number | StdFee | \"auto\" = \"auto\", memo_?: string, funds_?: Coin[]): Promise => {\n return await this.client.execute(this.sender, this.contractAddress, {\n update_infusion_base_uri: {\n base_uri: baseUri,\n id\n }\n }, fee_, memo_, funds_);\n };\n updateConfig = async ({\n config\n }: {\n config: UpdatingConfig;\n }, fee_: number | StdFee | \"auto\" = \"auto\", memo_?: string, funds_?: Coin[]): Promise => {\n return await this.client.execute(this.sender, this.contractAddress, {\n update_config: {\n config\n }\n }, fee_, memo_, funds_);\n };\n updateInfusionsEligibleCollections = async ({\n id,\n toAdd,\n toRemove\n }: {\n id: number;\n toAdd: EligibleNFTCollection[];\n toRemove: EligibleNFTCollection[];\n }, fee_: number | StdFee | \"auto\" = \"auto\", memo_?: string, funds_?: Coin[]): Promise => {\n return await this.client.execute(this.sender, this.contractAddress, {\n update_infusions_eligible_collections: {\n id,\n to_add: toAdd,\n to_remove: toRemove\n }\n }, fee_, memo_, funds_);\n };\n updateInfusionMintFee = async ({\n id,\n mintFee\n }: {\n id: number;\n mintFee?: Coin;\n }, fee_: number | StdFee | \"auto\" = \"auto\", memo_?: string, funds_?: Coin[]): Promise => {\n return await this.client.execute(this.sender, this.contractAddress, {\n update_infusion_mint_fee: {\n id,\n mint_fee: mintFee\n }\n }, fee_, memo_, funds_);\n };\n updateInfusionBundleType = async ({\n bundleType,\n id\n }: {\n bundleType: BundleType;\n id: number;\n }, fee_: number | StdFee | \"auto\" = \"auto\", memo_?: string, funds_?: Coin[]): Promise => {\n return await this.client.execute(this.sender, this.contractAddress, {\n update_infusion_bundle_type: {\n bundle_type: bundleType,\n id\n }\n }, fee_, memo_, funds_);\n };\n shuffle = async ({\n id\n }: {\n id: number;\n }, fee_: number | StdFee | \"auto\" = \"auto\", memo_?: string, funds_?: Coin[]): Promise => {\n return await this.client.execute(this.sender, this.contractAddress, {\n shuffle: {\n id\n }\n }, fee_, memo_, funds_);\n };\n}", "/**\n* This file was automatically generated by @cosmwasm/ts-codegen@1.14.0.\n* DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,\n* and run the @cosmwasm/ts-codegen generate command to regenerate this file.\n*/\n\nimport { EncodeObject } from \"@interchainjs/cosmos-types\";\nimport { MsgExecuteContract } from \"interchainjs/cosmwasm/wasm/v1/tx\";\nimport { toUtf8 } from \"@interchainjs/encoding\";\nimport { Uint128, Decimal, InstantiateMsg, Coin, ExecuteMsg, Addr, Timestamp, Uint64, BundleType, Infusion, EligibleNFTCollection, InfusedCollection, RoyaltyInfoResponse, InfusionParamState, BundleBlend, BlendNFTs, BurnParams, CompatibleTraits, WavsBundle, Bundle, NFT, UpdatingConfig, QueryMsg, HexBinary, Config, InfusionState, ArrayOfCompatibleTraits, InfusionsResponse, Boolean, ArrayOfWavsRecordResponse, WavsRecordResponse } from \"./CwInfuser.types\";\nexport interface CwInfuserMsg {\n contractAddress: string;\n sender: string;\n createInfusion: ({\n infusions\n }: {\n infusions: Infusion[];\n }, funds_?: Coin[]) => EncodeObject;\n wavsEntryPoint: ({\n infusions\n }: {\n infusions: WavsBundle[];\n }, funds_?: Coin[]) => EncodeObject;\n infuse: ({\n bundle,\n id\n }: {\n bundle: Bundle[];\n id: number;\n }, funds_?: Coin[]) => EncodeObject;\n endInfusion: ({\n id\n }: {\n id: number;\n }, funds_?: Coin[]) => EncodeObject;\n updateInfusionBaseUri: ({\n baseUri,\n id\n }: {\n baseUri: string;\n id: number;\n }, funds_?: Coin[]) => EncodeObject;\n updateConfig: ({\n config\n }: {\n config: UpdatingConfig;\n }, funds_?: Coin[]) => EncodeObject;\n updateInfusionsEligibleCollections: ({\n id,\n toAdd,\n toRemove\n }: {\n id: number;\n toAdd: EligibleNFTCollection[];\n toRemove: EligibleNFTCollection[];\n }, funds_?: Coin[]) => EncodeObject;\n updateInfusionMintFee: ({\n id,\n mintFee\n }: {\n id: number;\n mintFee?: Coin;\n }, funds_?: Coin[]) => EncodeObject;\n updateInfusionBundleType: ({\n bundleType,\n id\n }: {\n bundleType: BundleType;\n id: number;\n }, funds_?: Coin[]) => EncodeObject;\n shuffle: ({\n id\n }: {\n id: number;\n }, funds_?: Coin[]) => EncodeObject;\n}\nexport class CwInfuserMsgComposer implements CwInfuserMsg {\n sender: string;\n contractAddress: string;\n constructor(sender: string, contractAddress: string) {\n this.sender = sender;\n this.contractAddress = contractAddress;\n this.createInfusion = this.createInfusion.bind(this);\n this.wavsEntryPoint = this.wavsEntryPoint.bind(this);\n this.infuse = this.infuse.bind(this);\n this.endInfusion = this.endInfusion.bind(this);\n this.updateInfusionBaseUri = this.updateInfusionBaseUri.bind(this);\n this.updateConfig = this.updateConfig.bind(this);\n this.updateInfusionsEligibleCollections = this.updateInfusionsEligibleCollections.bind(this);\n this.updateInfusionMintFee = this.updateInfusionMintFee.bind(this);\n this.updateInfusionBundleType = this.updateInfusionBundleType.bind(this);\n this.shuffle = this.shuffle.bind(this);\n }\n createInfusion = ({\n infusions\n }: {\n infusions: Infusion[];\n }, funds_?: Coin[]): EncodeObject => {\n return {\n typeUrl: \"/cosmwasm.wasm.v1.MsgExecuteContract\",\n value: MsgExecuteContract.fromPartial({\n sender: this.sender,\n contract: this.contractAddress,\n msg: toUtf8(JSON.stringify({\n create_infusion: {\n infusions\n }\n })),\n funds: funds_\n })\n };\n };\n wavsEntryPoint = ({\n infusions\n }: {\n infusions: WavsBundle[];\n }, funds_?: Coin[]): EncodeObject => {\n return {\n typeUrl: \"/cosmwasm.wasm.v1.MsgExecuteContract\",\n value: MsgExecuteContract.fromPartial({\n sender: this.sender,\n contract: this.contractAddress,\n msg: toUtf8(JSON.stringify({\n wavs_entry_point: {\n infusions\n }\n })),\n funds: funds_\n })\n };\n };\n infuse = ({\n bundle,\n id\n }: {\n bundle: Bundle[];\n id: number;\n }, funds_?: Coin[]): EncodeObject => {\n return {\n typeUrl: \"/cosmwasm.wasm.v1.MsgExecuteContract\",\n value: MsgExecuteContract.fromPartial({\n sender: this.sender,\n contract: this.contractAddress,\n msg: toUtf8(JSON.stringify({\n infuse: {\n bundle,\n id\n }\n })),\n funds: funds_\n })\n };\n };\n endInfusion = ({\n id\n }: {\n id: number;\n }, funds_?: Coin[]): EncodeObject => {\n return {\n typeUrl: \"/cosmwasm.wasm.v1.MsgExecuteContract\",\n value: MsgExecuteContract.fromPartial({\n sender: this.sender,\n contract: this.contractAddress,\n msg: toUtf8(JSON.stringify({\n end_infusion: {\n id\n }\n })),\n funds: funds_\n })\n };\n };\n updateInfusionBaseUri = ({\n baseUri,\n id\n }: {\n baseUri: string;\n id: number;\n }, funds_?: Coin[]): EncodeObject => {\n return {\n typeUrl: \"/cosmwasm.wasm.v1.MsgExecuteContract\",\n value: MsgExecuteContract.fromPartial({\n sender: this.sender,\n contract: this.contractAddress,\n msg: toUtf8(JSON.stringify({\n update_infusion_base_uri: {\n base_uri: baseUri,\n id\n }\n })),\n funds: funds_\n })\n };\n };\n updateConfig = ({\n config\n }: {\n config: UpdatingConfig;\n }, funds_?: Coin[]): EncodeObject => {\n return {\n typeUrl: \"/cosmwasm.wasm.v1.MsgExecuteContract\",\n value: MsgExecuteContract.fromPartial({\n sender: this.sender,\n contract: this.contractAddress,\n msg: toUtf8(JSON.stringify({\n update_config: {\n config\n }\n })),\n funds: funds_\n })\n };\n };\n updateInfusionsEligibleCollections = ({\n id,\n toAdd,\n toRemove\n }: {\n id: number;\n toAdd: EligibleNFTCollection[];\n toRemove: EligibleNFTCollection[];\n }, funds_?: Coin[]): EncodeObject => {\n return {\n typeUrl: \"/cosmwasm.wasm.v1.MsgExecuteContract\",\n value: MsgExecuteContract.fromPartial({\n sender: this.sender,\n contract: this.contractAddress,\n msg: toUtf8(JSON.stringify({\n update_infusions_eligible_collections: {\n id,\n to_add: toAdd,\n to_remove: toRemove\n }\n })),\n funds: funds_\n })\n };\n };\n updateInfusionMintFee = ({\n id,\n mintFee\n }: {\n id: number;\n mintFee?: Coin;\n }, funds_?: Coin[]): EncodeObject => {\n return {\n typeUrl: \"/cosmwasm.wasm.v1.MsgExecuteContract\",\n value: MsgExecuteContract.fromPartial({\n sender: this.sender,\n contract: this.contractAddress,\n msg: toUtf8(JSON.stringify({\n update_infusion_mint_fee: {\n id,\n mint_fee: mintFee\n }\n })),\n funds: funds_\n })\n };\n };\n updateInfusionBundleType = ({\n bundleType,\n id\n }: {\n bundleType: BundleType;\n id: number;\n }, funds_?: Coin[]): EncodeObject => {\n return {\n typeUrl: \"/cosmwasm.wasm.v1.MsgExecuteContract\",\n value: MsgExecuteContract.fromPartial({\n sender: this.sender,\n contract: this.contractAddress,\n msg: toUtf8(JSON.stringify({\n update_infusion_bundle_type: {\n bundle_type: bundleType,\n id\n }\n })),\n funds: funds_\n })\n };\n };\n shuffle = ({\n id\n }: {\n id: number;\n }, funds_?: Coin[]): EncodeObject => {\n return {\n typeUrl: \"/cosmwasm.wasm.v1.MsgExecuteContract\",\n value: MsgExecuteContract.fromPartial({\n sender: this.sender,\n contract: this.contractAddress,\n msg: toUtf8(JSON.stringify({\n shuffle: {\n id\n }\n })),\n funds: funds_\n })\n };\n };\n}"], + "mappings": "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", + "names": ["CwInfuserQueryClient", "client", "contractAddress", "__publicField", "addr", "id", "index", "collectionAddr", "infusionId", "burner", "nfts", "CwInfuserClient", "sender", "infusions", "fee_", "memo_", "funds_", "bundle", "baseUri", "config", "toAdd", "toRemove", "mintFee", "bundleType", "MsgExecuteContract", "toUtf8", "CwInfuserMsgComposer", "sender", "contractAddress", "__publicField", "infusions", "funds_", "MsgExecuteContract", "toUtf8", "bundle", "id", "baseUri", "config", "toAdd", "toRemove", "mintFee", "bundleType"] +} diff --git a/lib/cw-shitstrap-factory.js b/lib/cw-shitstrap-factory.js new file mode 100644 index 0000000..5a66a40 --- /dev/null +++ b/lib/cw-shitstrap-factory.js @@ -0,0 +1,2 @@ +var C=Object.defineProperty;var u=(e,r,t)=>r in e?C(e,r,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[r]=t;var s=(e,r,t)=>u(e,typeof r!="symbol"?r+"":r,t);var o=class{constructor(r,t){s(this,"client");s(this,"contractAddress");s(this,"listShitstrapContracts",async({limit:r,startAfter:t})=>this.client.queryContractSmart(this.contractAddress,{list_shitstrap_contracts:{limit:r,start_after:t}}));s(this,"listShitstrapContractsReverse",async({limit:r,startBefore:t})=>this.client.queryContractSmart(this.contractAddress,{list_shitstrap_contracts_reverse:{limit:r,start_before:t}}));s(this,"listShitstrapContractsByInstantiator",async({instantiator:r,limit:t,startAfter:i})=>this.client.queryContractSmart(this.contractAddress,{list_shitstrap_contracts_by_instantiator:{instantiator:r,limit:t,start_after:i}}));s(this,"listShitstrapContractsByInstantiatorReverse",async({instantiator:r,limit:t,startBefore:i})=>this.client.queryContractSmart(this.contractAddress,{list_shitstrap_contracts_by_instantiator_reverse:{instantiator:r,limit:t,start_before:i}}));s(this,"listShitstrapContractsByToken",async({limit:r,recipient:t,startAfter:i})=>this.client.queryContractSmart(this.contractAddress,{list_shitstrap_contracts_by_token:{limit:r,recipient:t,start_after:i}}));s(this,"listShitstrapContractsByTokenReverse",async({limit:r,recipient:t,startBefore:i})=>this.client.queryContractSmart(this.contractAddress,{list_shitstrap_contracts_by_token_reverse:{limit:r,recipient:t,start_before:i}}));s(this,"ownership",async()=>this.client.queryContractSmart(this.contractAddress,{ownership:{}}));s(this,"codeId",async()=>this.client.queryContractSmart(this.contractAddress,{code_id:{}}));this.client=r,this.contractAddress=t,this.listShitstrapContracts=this.listShitstrapContracts.bind(this),this.listShitstrapContractsReverse=this.listShitstrapContractsReverse.bind(this),this.listShitstrapContractsByInstantiator=this.listShitstrapContractsByInstantiator.bind(this),this.listShitstrapContractsByInstantiatorReverse=this.listShitstrapContractsByInstantiatorReverse.bind(this),this.listShitstrapContractsByToken=this.listShitstrapContractsByToken.bind(this),this.listShitstrapContractsByTokenReverse=this.listShitstrapContractsByTokenReverse.bind(this),this.ownership=this.ownership.bind(this),this.codeId=this.codeId.bind(this)}},h=class extends o{constructor(t,i,n){super(t,n);s(this,"client");s(this,"sender");s(this,"contractAddress");s(this,"createNativeShitStrapContract",async({instantiateMsg:t,label:i},n="auto",a,m)=>await this.client.execute(this.sender,this.contractAddress,{create_native_shit_strap_contract:{instantiate_msg:t,label:i}},n,a,m));s(this,"updateCodeId",async({shitstrapCodeId:t},i="auto",n,a)=>await this.client.execute(this.sender,this.contractAddress,{update_code_id:{shitstrap_code_id:t}},i,n,a));s(this,"updateOwnership",async(t,i="auto",n,a)=>await this.client.execute(this.sender,this.contractAddress,{update_ownership:t},i,n,a));this.client=t,this.sender=i,this.contractAddress=n,this.createNativeShitStrapContract=this.createNativeShitStrapContract.bind(this),this.updateCodeId=this.updateCodeId.bind(this),this.updateOwnership=this.updateOwnership.bind(this)}};import{MsgExecuteContract as c}from"interchainjs/cosmwasm/wasm/v1/tx";import{toUtf8 as d}from"@interchainjs/encoding";var p=class{constructor(r,t){s(this,"sender");s(this,"contractAddress");s(this,"createNativeShitStrapContract",({instantiateMsg:r,label:t},i)=>({typeUrl:"/cosmwasm.wasm.v1.MsgExecuteContract",value:c.fromPartial({sender:this.sender,contract:this.contractAddress,msg:d(JSON.stringify({create_native_shit_strap_contract:{instantiate_msg:r,label:t}})),funds:i})}));s(this,"updateCodeId",({shitstrapCodeId:r},t)=>({typeUrl:"/cosmwasm.wasm.v1.MsgExecuteContract",value:c.fromPartial({sender:this.sender,contract:this.contractAddress,msg:d(JSON.stringify({update_code_id:{shitstrap_code_id:r}})),funds:t})}));s(this,"updateOwnership",(r,t)=>({typeUrl:"/cosmwasm.wasm.v1.MsgExecuteContract",value:c.fromPartial({sender:this.sender,contract:this.contractAddress,msg:d(JSON.stringify({update_ownership:r})),funds:t})}));this.sender=r,this.contractAddress=t,this.createNativeShitStrapContract=this.createNativeShitStrapContract.bind(this),this.updateCodeId=this.updateCodeId.bind(this),this.updateOwnership=this.updateOwnership.bind(this)}};export{h as CwShitstrapFactoryClient,p as CwShitstrapFactoryMsgComposer,o as CwShitstrapFactoryQueryClient}; +//# sourceMappingURL=cw-shitstrap-factory.js.map diff --git a/lib/cw-shitstrap-factory.js.map b/lib/cw-shitstrap-factory.js.map new file mode 100644 index 0000000..a1af15f --- /dev/null +++ b/lib/cw-shitstrap-factory.js.map @@ -0,0 +1,7 @@ +{ + "version": 3, + "sources": ["../../src/CwShitstrapFactory.client.ts", "../../src/CwShitstrapFactory.message-composer.ts"], + "sourcesContent": ["/**\n* This file was automatically generated by @cosmwasm/ts-codegen@1.14.0.\n* DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,\n* and run the @cosmwasm/ts-codegen generate command to regenerate this file.\n*/\n\nimport { ICosmWasmClient, ISigningCosmWasmClient } from \"./baseClient\";\nimport { Coin, StdFee } from \"@interchainjs/types\";\nimport { InstantiateMsg, ExecuteMsg, Uint128, UncheckedDenom, Addr, Action, Expiration, Timestamp, Uint64, PossibleShit, DaoParams, QueryMsg, ArrayOfShitstrapContract, ShitstrapContract, OwnershipForAddr } from \"./CwShitstrapFactory.types\";\nexport interface CwShitstrapFactoryReadOnlyInterface {\n contractAddress: string;\n listShitstrapContracts: ({\n limit,\n startAfter\n }: {\n limit?: number;\n startAfter?: string;\n }) => Promise;\n listShitstrapContractsReverse: ({\n limit,\n startBefore\n }: {\n limit?: number;\n startBefore?: string;\n }) => Promise;\n listShitstrapContractsByInstantiator: ({\n instantiator,\n limit,\n startAfter\n }: {\n instantiator: string;\n limit?: number;\n startAfter?: string;\n }) => Promise;\n listShitstrapContractsByInstantiatorReverse: ({\n instantiator,\n limit,\n startBefore\n }: {\n instantiator: string;\n limit?: number;\n startBefore?: string;\n }) => Promise;\n listShitstrapContractsByToken: ({\n limit,\n recipient,\n startAfter\n }: {\n limit?: number;\n recipient: string;\n startAfter?: string;\n }) => Promise;\n listShitstrapContractsByTokenReverse: ({\n limit,\n recipient,\n startBefore\n }: {\n limit?: number;\n recipient: string;\n startBefore?: string;\n }) => Promise;\n ownership: () => Promise;\n codeId: () => Promise;\n}\nexport class CwShitstrapFactoryQueryClient implements CwShitstrapFactoryReadOnlyInterface {\n client: ICosmWasmClient;\n contractAddress: string;\n constructor(client: ICosmWasmClient, contractAddress: string) {\n this.client = client;\n this.contractAddress = contractAddress;\n this.listShitstrapContracts = this.listShitstrapContracts.bind(this);\n this.listShitstrapContractsReverse = this.listShitstrapContractsReverse.bind(this);\n this.listShitstrapContractsByInstantiator = this.listShitstrapContractsByInstantiator.bind(this);\n this.listShitstrapContractsByInstantiatorReverse = this.listShitstrapContractsByInstantiatorReverse.bind(this);\n this.listShitstrapContractsByToken = this.listShitstrapContractsByToken.bind(this);\n this.listShitstrapContractsByTokenReverse = this.listShitstrapContractsByTokenReverse.bind(this);\n this.ownership = this.ownership.bind(this);\n this.codeId = this.codeId.bind(this);\n }\n listShitstrapContracts = async ({\n limit,\n startAfter\n }: {\n limit?: number;\n startAfter?: string;\n }): Promise => {\n return this.client.queryContractSmart(this.contractAddress, {\n list_shitstrap_contracts: {\n limit,\n start_after: startAfter\n }\n });\n };\n listShitstrapContractsReverse = async ({\n limit,\n startBefore\n }: {\n limit?: number;\n startBefore?: string;\n }): Promise => {\n return this.client.queryContractSmart(this.contractAddress, {\n list_shitstrap_contracts_reverse: {\n limit,\n start_before: startBefore\n }\n });\n };\n listShitstrapContractsByInstantiator = async ({\n instantiator,\n limit,\n startAfter\n }: {\n instantiator: string;\n limit?: number;\n startAfter?: string;\n }): Promise => {\n return this.client.queryContractSmart(this.contractAddress, {\n list_shitstrap_contracts_by_instantiator: {\n instantiator,\n limit,\n start_after: startAfter\n }\n });\n };\n listShitstrapContractsByInstantiatorReverse = async ({\n instantiator,\n limit,\n startBefore\n }: {\n instantiator: string;\n limit?: number;\n startBefore?: string;\n }): Promise => {\n return this.client.queryContractSmart(this.contractAddress, {\n list_shitstrap_contracts_by_instantiator_reverse: {\n instantiator,\n limit,\n start_before: startBefore\n }\n });\n };\n listShitstrapContractsByToken = async ({\n limit,\n recipient,\n startAfter\n }: {\n limit?: number;\n recipient: string;\n startAfter?: string;\n }): Promise => {\n return this.client.queryContractSmart(this.contractAddress, {\n list_shitstrap_contracts_by_token: {\n limit,\n recipient,\n start_after: startAfter\n }\n });\n };\n listShitstrapContractsByTokenReverse = async ({\n limit,\n recipient,\n startBefore\n }: {\n limit?: number;\n recipient: string;\n startBefore?: string;\n }): Promise => {\n return this.client.queryContractSmart(this.contractAddress, {\n list_shitstrap_contracts_by_token_reverse: {\n limit,\n recipient,\n start_before: startBefore\n }\n });\n };\n ownership = async (): Promise => {\n return this.client.queryContractSmart(this.contractAddress, {\n ownership: {}\n });\n };\n codeId = async (): Promise => {\n return this.client.queryContractSmart(this.contractAddress, {\n code_id: {}\n });\n };\n}\nexport interface CwShitstrapFactoryInterface extends CwShitstrapFactoryReadOnlyInterface {\n contractAddress: string;\n sender: string;\n createNativeShitStrapContract: ({\n instantiateMsg,\n label\n }: {\n instantiateMsg: InstantiateMsg;\n label: string;\n }, fee_?: number | StdFee | \"auto\", memo_?: string, funds_?: Coin[]) => Promise;\n updateCodeId: ({\n shitstrapCodeId\n }: {\n shitstrapCodeId: number;\n }, fee_?: number | StdFee | \"auto\", memo_?: string, funds_?: Coin[]) => Promise;\n updateOwnership: (action: Action, fee_?: number | StdFee | \"auto\", memo_?: string, funds_?: Coin[]) => Promise;\n}\nexport class CwShitstrapFactoryClient extends CwShitstrapFactoryQueryClient implements CwShitstrapFactoryInterface {\n client: ISigningCosmWasmClient;\n sender: string;\n contractAddress: string;\n constructor(client: ISigningCosmWasmClient, sender: string, contractAddress: string) {\n super(client, contractAddress);\n this.client = client;\n this.sender = sender;\n this.contractAddress = contractAddress;\n this.createNativeShitStrapContract = this.createNativeShitStrapContract.bind(this);\n this.updateCodeId = this.updateCodeId.bind(this);\n this.updateOwnership = this.updateOwnership.bind(this);\n }\n createNativeShitStrapContract = async ({\n instantiateMsg,\n label\n }: {\n instantiateMsg: InstantiateMsg;\n label: string;\n }, fee_: number | StdFee | \"auto\" = \"auto\", memo_?: string, funds_?: Coin[]): Promise => {\n return await this.client.execute(this.sender, this.contractAddress, {\n create_native_shit_strap_contract: {\n instantiate_msg: instantiateMsg,\n label\n }\n }, fee_, memo_, funds_);\n };\n updateCodeId = async ({\n shitstrapCodeId\n }: {\n shitstrapCodeId: number;\n }, fee_: number | StdFee | \"auto\" = \"auto\", memo_?: string, funds_?: Coin[]): Promise => {\n return await this.client.execute(this.sender, this.contractAddress, {\n update_code_id: {\n shitstrap_code_id: shitstrapCodeId\n }\n }, fee_, memo_, funds_);\n };\n updateOwnership = async (action: Action, fee_: number | StdFee | \"auto\" = \"auto\", memo_?: string, funds_?: Coin[]): Promise => {\n return await this.client.execute(this.sender, this.contractAddress, {\n update_ownership: action\n }, fee_, memo_, funds_);\n };\n}", "/**\n* This file was automatically generated by @cosmwasm/ts-codegen@1.14.0.\n* DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,\n* and run the @cosmwasm/ts-codegen generate command to regenerate this file.\n*/\n\nimport { Coin } from \"@interchainjs/types\";\nimport { EncodeObject } from \"@interchainjs/cosmos-types\";\nimport { MsgExecuteContract } from \"interchainjs/cosmwasm/wasm/v1/tx\";\nimport { toUtf8 } from \"@interchainjs/encoding\";\nimport { InstantiateMsg, ExecuteMsg, Uint128, UncheckedDenom, Addr, Action, Expiration, Timestamp, Uint64, PossibleShit, DaoParams, QueryMsg, ArrayOfShitstrapContract, ShitstrapContract, OwnershipForAddr } from \"./CwShitstrapFactory.types\";\nexport interface CwShitstrapFactoryMsg {\n contractAddress: string;\n sender: string;\n createNativeShitStrapContract: ({\n instantiateMsg,\n label\n }: {\n instantiateMsg: InstantiateMsg;\n label: string;\n }, funds_?: Coin[]) => EncodeObject;\n updateCodeId: ({\n shitstrapCodeId\n }: {\n shitstrapCodeId: number;\n }, funds_?: Coin[]) => EncodeObject;\n updateOwnership: (action: Action, funds_?: Coin[]) => EncodeObject;\n}\nexport class CwShitstrapFactoryMsgComposer implements CwShitstrapFactoryMsg {\n sender: string;\n contractAddress: string;\n constructor(sender: string, contractAddress: string) {\n this.sender = sender;\n this.contractAddress = contractAddress;\n this.createNativeShitStrapContract = this.createNativeShitStrapContract.bind(this);\n this.updateCodeId = this.updateCodeId.bind(this);\n this.updateOwnership = this.updateOwnership.bind(this);\n }\n createNativeShitStrapContract = ({\n instantiateMsg,\n label\n }: {\n instantiateMsg: InstantiateMsg;\n label: string;\n }, funds_?: Coin[]): EncodeObject => {\n return {\n typeUrl: \"/cosmwasm.wasm.v1.MsgExecuteContract\",\n value: MsgExecuteContract.fromPartial({\n sender: this.sender,\n contract: this.contractAddress,\n msg: toUtf8(JSON.stringify({\n create_native_shit_strap_contract: {\n instantiate_msg: instantiateMsg,\n label\n }\n })),\n funds: funds_\n })\n };\n };\n updateCodeId = ({\n shitstrapCodeId\n }: {\n shitstrapCodeId: number;\n }, funds_?: Coin[]): EncodeObject => {\n return {\n typeUrl: \"/cosmwasm.wasm.v1.MsgExecuteContract\",\n value: MsgExecuteContract.fromPartial({\n sender: this.sender,\n contract: this.contractAddress,\n msg: toUtf8(JSON.stringify({\n update_code_id: {\n shitstrap_code_id: shitstrapCodeId\n }\n })),\n funds: funds_\n })\n };\n };\n updateOwnership = (action: Action, funds_?: Coin[]): EncodeObject => {\n return {\n typeUrl: \"/cosmwasm.wasm.v1.MsgExecuteContract\",\n value: MsgExecuteContract.fromPartial({\n sender: this.sender,\n contract: this.contractAddress,\n msg: toUtf8(JSON.stringify({\n update_ownership: action\n })),\n funds: funds_\n })\n };\n };\n}"], + "mappings": "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", + "names": ["CwShitstrapFactoryQueryClient", "client", "contractAddress", "__publicField", "limit", "startAfter", "startBefore", "instantiator", "recipient", "CwShitstrapFactoryClient", "sender", "instantiateMsg", "label", "fee_", "memo_", "funds_", "shitstrapCodeId", "action", "MsgExecuteContract", "toUtf8", "CwShitstrapFactoryMsgComposer", "sender", "contractAddress", "__publicField", "instantiateMsg", "label", "funds_", "MsgExecuteContract", "toUtf8", "shitstrapCodeId", "action"] +} diff --git a/lib/cw-shitstrap.js b/lib/cw-shitstrap.js new file mode 100644 index 0000000..ece779e --- /dev/null +++ b/lib/cw-shitstrap.js @@ -0,0 +1,2 @@ +var l=Object.defineProperty;var g=(n,e,t)=>e in n?l(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t;var s=(n,e,t)=>g(n,typeof e!="symbol"?e+"":e,t);var d=class{constructor(e,t){s(this,"client");s(this,"contractAddress");s(this,"config",async()=>this.client.queryContractSmart(this.contractAddress,{config:{}}));s(this,"hasShit",async()=>this.client.queryContractSmart(this.contractAddress,{has_shit:{}}));s(this,"toShit",async()=>this.client.queryContractSmart(this.contractAddress,{to_shit:{}}));s(this,"fullOfShit",async()=>this.client.queryContractSmart(this.contractAddress,{full_of_shit:{}}));s(this,"shitRate",async({asset:e})=>this.client.queryContractSmart(this.contractAddress,{shit_rate:{asset:e}}));s(this,"shitRates",async()=>this.client.queryContractSmart(this.contractAddress,{shit_rates:{}}));this.client=e,this.contractAddress=t,this.config=this.config.bind(this),this.hasShit=this.hasShit.bind(this),this.toShit=this.toShit.bind(this),this.fullOfShit=this.fullOfShit.bind(this),this.shitRate=this.shitRate.bind(this),this.shitRates=this.shitRates.bind(this)}},m=class extends d{constructor(t,i,r){super(t,r);s(this,"client");s(this,"sender");s(this,"contractAddress");s(this,"shitStrap",async({dao:t,shit:i},r="auto",c,h)=>await this.client.execute(this.sender,this.contractAddress,{shit_strap:{dao:t,shit:i}},r,c,h));s(this,"flush",async(t="auto",i,r)=>await this.client.execute(this.sender,this.contractAddress,{flush:{}},t,i,r));s(this,"receive",async({amount:t,msg:i,sender:r},c="auto",h,f)=>await this.client.execute(this.sender,this.contractAddress,{receive:{amount:t,msg:i,sender:r}},c,h,f));s(this,"refundShitter",async(t="auto",i,r)=>await this.client.execute(this.sender,this.contractAddress,{refund_shitter:{}},t,i,r));this.client=t,this.sender=i,this.contractAddress=r,this.shitStrap=this.shitStrap.bind(this),this.flush=this.flush.bind(this),this.receive=this.receive.bind(this),this.refundShitter=this.refundShitter.bind(this)}};import{MsgExecuteContract as o}from"interchainjs/cosmwasm/wasm/v1/tx";import{toUtf8 as a}from"@interchainjs/encoding";var u=class{constructor(e,t){s(this,"sender");s(this,"contractAddress");s(this,"shitStrap",({dao:e,shit:t},i)=>({typeUrl:"/cosmwasm.wasm.v1.MsgExecuteContract",value:o.fromPartial({sender:this.sender,contract:this.contractAddress,msg:a(JSON.stringify({shit_strap:{dao:e,shit:t}})),funds:i})}));s(this,"flush",e=>({typeUrl:"/cosmwasm.wasm.v1.MsgExecuteContract",value:o.fromPartial({sender:this.sender,contract:this.contractAddress,msg:a(JSON.stringify({flush:{}})),funds:e})}));s(this,"receive",({amount:e,msg:t,sender:i},r)=>({typeUrl:"/cosmwasm.wasm.v1.MsgExecuteContract",value:o.fromPartial({sender:this.sender,contract:this.contractAddress,msg:a(JSON.stringify({receive:{amount:e,msg:t,sender:i}})),funds:r})}));s(this,"refundShitter",e=>({typeUrl:"/cosmwasm.wasm.v1.MsgExecuteContract",value:o.fromPartial({sender:this.sender,contract:this.contractAddress,msg:a(JSON.stringify({refund_shitter:{}})),funds:e})}));this.sender=e,this.contractAddress=t,this.shitStrap=this.shitStrap.bind(this),this.flush=this.flush.bind(this),this.receive=this.receive.bind(this),this.refundShitter=this.refundShitter.bind(this)}};export{m as CwShitstrapClient,u as CwShitstrapMsgComposer,d as CwShitstrapQueryClient}; +//# sourceMappingURL=cw-shitstrap.js.map diff --git a/lib/cw-shitstrap.js.map b/lib/cw-shitstrap.js.map new file mode 100644 index 0000000..8e5a652 --- /dev/null +++ b/lib/cw-shitstrap.js.map @@ -0,0 +1,7 @@ +{ + "version": 3, + "sources": ["../../src/CwShitstrap.client.ts", "../../src/CwShitstrap.message-composer.ts"], + "sourcesContent": ["/**\n* This file was automatically generated by @cosmwasm/ts-codegen@1.14.0.\n* DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,\n* and run the @cosmwasm/ts-codegen generate command to regenerate this file.\n*/\n\nimport { ICosmWasmClient, ISigningCosmWasmClient } from \"./baseClient\";\nimport { Coin, StdFee } from \"@interchainjs/types\";\nimport { Uint128, UncheckedDenom, Addr, InstantiateMsg, PossibleShit, DaoParams, ExecuteMsg, Binary, AssetUnchecked, Cw20ReceiveMsg, QueryMsg, CheckedDenom, Config, Boolean, NullableArrayOfPossibleShit } from \"./CwShitstrap.types\";\nexport interface CwShitstrapReadOnlyInterface {\n contractAddress: string;\n config: () => Promise;\n hasShit: () => Promise;\n toShit: () => Promise;\n fullOfShit: () => Promise;\n shitRate: ({\n asset\n }: {\n asset: string;\n }) => Promise;\n shitRates: () => Promise;\n}\nexport class CwShitstrapQueryClient implements CwShitstrapReadOnlyInterface {\n client: ICosmWasmClient;\n contractAddress: string;\n constructor(client: ICosmWasmClient, contractAddress: string) {\n this.client = client;\n this.contractAddress = contractAddress;\n this.config = this.config.bind(this);\n this.hasShit = this.hasShit.bind(this);\n this.toShit = this.toShit.bind(this);\n this.fullOfShit = this.fullOfShit.bind(this);\n this.shitRate = this.shitRate.bind(this);\n this.shitRates = this.shitRates.bind(this);\n }\n config = async (): Promise => {\n return this.client.queryContractSmart(this.contractAddress, {\n config: {}\n });\n };\n hasShit = async (): Promise => {\n return this.client.queryContractSmart(this.contractAddress, {\n has_shit: {}\n });\n };\n toShit = async (): Promise => {\n return this.client.queryContractSmart(this.contractAddress, {\n to_shit: {}\n });\n };\n fullOfShit = async (): Promise => {\n return this.client.queryContractSmart(this.contractAddress, {\n full_of_shit: {}\n });\n };\n shitRate = async ({\n asset\n }: {\n asset: string;\n }): Promise => {\n return this.client.queryContractSmart(this.contractAddress, {\n shit_rate: {\n asset\n }\n });\n };\n shitRates = async (): Promise => {\n return this.client.queryContractSmart(this.contractAddress, {\n shit_rates: {}\n });\n };\n}\nexport interface CwShitstrapInterface extends CwShitstrapReadOnlyInterface {\n contractAddress: string;\n sender: string;\n shitStrap: ({\n dao,\n shit\n }: {\n dao?: Addr;\n shit: AssetUnchecked;\n }, fee_?: number | StdFee | \"auto\", memo_?: string, funds_?: Coin[]) => Promise;\n flush: (fee_?: number | StdFee | \"auto\", memo_?: string, funds_?: Coin[]) => Promise;\n receive: ({\n amount,\n msg,\n sender\n }: {\n amount: Uint128;\n msg: Binary;\n sender: string;\n }, fee_?: number | StdFee | \"auto\", memo_?: string, funds_?: Coin[]) => Promise;\n refundShitter: (fee_?: number | StdFee | \"auto\", memo_?: string, funds_?: Coin[]) => Promise;\n}\nexport class CwShitstrapClient extends CwShitstrapQueryClient implements CwShitstrapInterface {\n client: ISigningCosmWasmClient;\n sender: string;\n contractAddress: string;\n constructor(client: ISigningCosmWasmClient, sender: string, contractAddress: string) {\n super(client, contractAddress);\n this.client = client;\n this.sender = sender;\n this.contractAddress = contractAddress;\n this.shitStrap = this.shitStrap.bind(this);\n this.flush = this.flush.bind(this);\n this.receive = this.receive.bind(this);\n this.refundShitter = this.refundShitter.bind(this);\n }\n shitStrap = async ({\n dao,\n shit\n }: {\n dao?: Addr;\n shit: AssetUnchecked;\n }, fee_: number | StdFee | \"auto\" = \"auto\", memo_?: string, funds_?: Coin[]): Promise => {\n return await this.client.execute(this.sender, this.contractAddress, {\n shit_strap: {\n dao,\n shit\n }\n }, fee_, memo_, funds_);\n };\n flush = async (fee_: number | StdFee | \"auto\" = \"auto\", memo_?: string, funds_?: Coin[]): Promise => {\n return await this.client.execute(this.sender, this.contractAddress, {\n flush: {}\n }, fee_, memo_, funds_);\n };\n receive = async ({\n amount,\n msg,\n sender\n }: {\n amount: Uint128;\n msg: Binary;\n sender: string;\n }, fee_: number | StdFee | \"auto\" = \"auto\", memo_?: string, funds_?: Coin[]): Promise => {\n return await this.client.execute(this.sender, this.contractAddress, {\n receive: {\n amount,\n msg,\n sender\n }\n }, fee_, memo_, funds_);\n };\n refundShitter = async (fee_: number | StdFee | \"auto\" = \"auto\", memo_?: string, funds_?: Coin[]): Promise => {\n return await this.client.execute(this.sender, this.contractAddress, {\n refund_shitter: {}\n }, fee_, memo_, funds_);\n };\n}", "/**\n* This file was automatically generated by @cosmwasm/ts-codegen@1.14.0.\n* DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,\n* and run the @cosmwasm/ts-codegen generate command to regenerate this file.\n*/\n\nimport { Coin } from \"@interchainjs/types\";\nimport { EncodeObject } from \"@interchainjs/cosmos-types\";\nimport { MsgExecuteContract } from \"interchainjs/cosmwasm/wasm/v1/tx\";\nimport { toUtf8 } from \"@interchainjs/encoding\";\nimport { Uint128, UncheckedDenom, Addr, InstantiateMsg, PossibleShit, DaoParams, ExecuteMsg, Binary, AssetUnchecked, Cw20ReceiveMsg, QueryMsg, CheckedDenom, Config, Boolean, NullableArrayOfPossibleShit } from \"./CwShitstrap.types\";\nexport interface CwShitstrapMsg {\n contractAddress: string;\n sender: string;\n shitStrap: ({\n dao,\n shit\n }: {\n dao?: Addr;\n shit: AssetUnchecked;\n }, funds_?: Coin[]) => EncodeObject;\n flush: (funds_?: Coin[]) => EncodeObject;\n receive: ({\n amount,\n msg,\n sender\n }: {\n amount: Uint128;\n msg: Binary;\n sender: string;\n }, funds_?: Coin[]) => EncodeObject;\n refundShitter: (funds_?: Coin[]) => EncodeObject;\n}\nexport class CwShitstrapMsgComposer implements CwShitstrapMsg {\n sender: string;\n contractAddress: string;\n constructor(sender: string, contractAddress: string) {\n this.sender = sender;\n this.contractAddress = contractAddress;\n this.shitStrap = this.shitStrap.bind(this);\n this.flush = this.flush.bind(this);\n this.receive = this.receive.bind(this);\n this.refundShitter = this.refundShitter.bind(this);\n }\n shitStrap = ({\n dao,\n shit\n }: {\n dao?: Addr;\n shit: AssetUnchecked;\n }, funds_?: Coin[]): EncodeObject => {\n return {\n typeUrl: \"/cosmwasm.wasm.v1.MsgExecuteContract\",\n value: MsgExecuteContract.fromPartial({\n sender: this.sender,\n contract: this.contractAddress,\n msg: toUtf8(JSON.stringify({\n shit_strap: {\n dao,\n shit\n }\n })),\n funds: funds_\n })\n };\n };\n flush = (funds_?: Coin[]): EncodeObject => {\n return {\n typeUrl: \"/cosmwasm.wasm.v1.MsgExecuteContract\",\n value: MsgExecuteContract.fromPartial({\n sender: this.sender,\n contract: this.contractAddress,\n msg: toUtf8(JSON.stringify({\n flush: {}\n })),\n funds: funds_\n })\n };\n };\n receive = ({\n amount,\n msg,\n sender\n }: {\n amount: Uint128;\n msg: Binary;\n sender: string;\n }, funds_?: Coin[]): EncodeObject => {\n return {\n typeUrl: \"/cosmwasm.wasm.v1.MsgExecuteContract\",\n value: MsgExecuteContract.fromPartial({\n sender: this.sender,\n contract: this.contractAddress,\n msg: toUtf8(JSON.stringify({\n receive: {\n amount,\n msg,\n sender\n }\n })),\n funds: funds_\n })\n };\n };\n refundShitter = (funds_?: Coin[]): EncodeObject => {\n return {\n typeUrl: \"/cosmwasm.wasm.v1.MsgExecuteContract\",\n value: MsgExecuteContract.fromPartial({\n sender: this.sender,\n contract: this.contractAddress,\n msg: toUtf8(JSON.stringify({\n refund_shitter: {}\n })),\n funds: funds_\n })\n };\n };\n}"], + "mappings": "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", + "names": ["CwShitstrapQueryClient", "client", "contractAddress", "__publicField", "asset", "CwShitstrapClient", "sender", "dao", "shit", "fee_", "memo_", "funds_", "amount", "msg", "MsgExecuteContract", "toUtf8", "CwShitstrapMsgComposer", "sender", "contractAddress", "__publicField", "dao", "shit", "funds_", "MsgExecuteContract", "toUtf8", "amount", "msg"] +} diff --git a/lib/cw-svg-minter.js b/lib/cw-svg-minter.js new file mode 100644 index 0000000..a1a4a92 --- /dev/null +++ b/lib/cw-svg-minter.js @@ -0,0 +1,2 @@ +var u=Object.defineProperty;var h=(i,e,t)=>e in i?u(i,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):i[e]=t;var r=(i,e,t)=>h(i,typeof e!="symbol"?e+"":e,t);var a=class{constructor(e,t){r(this,"client");r(this,"contractAddress");r(this,"listSvgCollections",async({limit:e,startAfter:t})=>this.client.queryContractSmart(this.contractAddress,{list_svg_collections:{limit:e,start_after:t}}));r(this,"listSvgCollectionsReverse",async({limit:e,startBefore:t})=>this.client.queryContractSmart(this.contractAddress,{list_svg_collections_reverse:{limit:e,start_before:t}}));r(this,"listSvgCollectionsByCreator",async({creator:e,limit:t,startAfter:s})=>this.client.queryContractSmart(this.contractAddress,{list_svg_collections_by_creator:{creator:e,limit:t,start_after:s}}));r(this,"listSvgCollectionsByCreatorReverse",async({creator:e,limit:t,startBefore:s})=>this.client.queryContractSmart(this.contractAddress,{list_svg_collections_by_creator_reverse:{creator:e,limit:t,start_before:s}}));r(this,"ownership",async()=>this.client.queryContractSmart(this.contractAddress,{ownership:{}}));r(this,"codeId",async()=>this.client.queryContractSmart(this.contractAddress,{code_id:{}}));this.client=e,this.contractAddress=t,this.listSvgCollections=this.listSvgCollections.bind(this),this.listSvgCollectionsReverse=this.listSvgCollectionsReverse.bind(this),this.listSvgCollectionsByCreator=this.listSvgCollectionsByCreator.bind(this),this.listSvgCollectionsByCreatorReverse=this.listSvgCollectionsByCreatorReverse.bind(this),this.ownership=this.ownership.bind(this),this.codeId=this.codeId.bind(this)}},l=class extends a{constructor(t,s,n){super(t,n);r(this,"client");r(this,"sender");r(this,"contractAddress");r(this,"createSvgCollection",async({instantiateMsg:t,label:s},n="auto",o,m)=>await this.client.execute(this.sender,this.contractAddress,{create_svg_collection:{instantiate_msg:t,label:s}},n,o,m));r(this,"updateCodeId",async({codeId:t},s="auto",n,o)=>await this.client.execute(this.sender,this.contractAddress,{update_code_id:{code_id:t}},s,n,o));r(this,"updateOwnership",async(t,s="auto",n,o)=>await this.client.execute(this.sender,this.contractAddress,{update_ownership:t},s,n,o));this.client=t,this.sender=s,this.contractAddress=n,this.createSvgCollection=this.createSvgCollection.bind(this),this.updateCodeId=this.updateCodeId.bind(this),this.updateOwnership=this.updateOwnership.bind(this)}};import{MsgExecuteContract as c}from"interchainjs/cosmwasm/wasm/v1/tx";import{toUtf8 as d}from"@interchainjs/encoding";var g=class{constructor(e,t){r(this,"sender");r(this,"contractAddress");r(this,"createSvgCollection",({instantiateMsg:e,label:t},s)=>({typeUrl:"/cosmwasm.wasm.v1.MsgExecuteContract",value:c.fromPartial({sender:this.sender,contract:this.contractAddress,msg:d(JSON.stringify({create_svg_collection:{instantiate_msg:e,label:t}})),funds:s})}));r(this,"updateCodeId",({codeId:e},t)=>({typeUrl:"/cosmwasm.wasm.v1.MsgExecuteContract",value:c.fromPartial({sender:this.sender,contract:this.contractAddress,msg:d(JSON.stringify({update_code_id:{code_id:e}})),funds:t})}));r(this,"updateOwnership",(e,t)=>({typeUrl:"/cosmwasm.wasm.v1.MsgExecuteContract",value:c.fromPartial({sender:this.sender,contract:this.contractAddress,msg:d(JSON.stringify({update_ownership:e})),funds:t})}));this.sender=e,this.contractAddress=t,this.createSvgCollection=this.createSvgCollection.bind(this),this.updateCodeId=this.updateCodeId.bind(this),this.updateOwnership=this.updateOwnership.bind(this)}};export{l as CwSvgMinterClient,g as CwSvgMinterMsgComposer,a as CwSvgMinterQueryClient}; +//# sourceMappingURL=cw-svg-minter.js.map diff --git a/lib/cw-svg-minter.js.map b/lib/cw-svg-minter.js.map new file mode 100644 index 0000000..406c24f --- /dev/null +++ b/lib/cw-svg-minter.js.map @@ -0,0 +1,7 @@ +{ + "version": 3, + "sources": ["../../src/CwSvgMinter.client.ts", "../../src/CwSvgMinter.message-composer.ts"], + "sourcesContent": ["/**\n* This file was automatically generated by @cosmwasm/ts-codegen@1.14.0.\n* DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,\n* and run the @cosmwasm/ts-codegen generate command to regenerate this file.\n*/\n\nimport { ICosmWasmClient, ISigningCosmWasmClient } from \"./baseClient\";\nimport { StdFee } from \"@interchainjs/types\";\nimport { InstantiateMsg, ExecuteMsg, Uint128, Binary, VariableKind, Action, Expiration, Timestamp, Uint64, PriceTier, Coin, TemplateSlot, VariableDef, RgbRange, QueryMsg, ArrayOfSvgCollection, SvgCollection, Addr, OwnershipForAddr } from \"./CwSvgMinter.types\";\nexport interface CwSvgMinterReadOnlyInterface {\n contractAddress: string;\n listSvgCollections: ({\n limit,\n startAfter\n }: {\n limit?: number;\n startAfter?: string;\n }) => Promise;\n listSvgCollectionsReverse: ({\n limit,\n startBefore\n }: {\n limit?: number;\n startBefore?: string;\n }) => Promise;\n listSvgCollectionsByCreator: ({\n creator,\n limit,\n startAfter\n }: {\n creator: string;\n limit?: number;\n startAfter?: string;\n }) => Promise;\n listSvgCollectionsByCreatorReverse: ({\n creator,\n limit,\n startBefore\n }: {\n creator: string;\n limit?: number;\n startBefore?: string;\n }) => Promise;\n ownership: () => Promise;\n codeId: () => Promise;\n}\nexport class CwSvgMinterQueryClient implements CwSvgMinterReadOnlyInterface {\n client: ICosmWasmClient;\n contractAddress: string;\n constructor(client: ICosmWasmClient, contractAddress: string) {\n this.client = client;\n this.contractAddress = contractAddress;\n this.listSvgCollections = this.listSvgCollections.bind(this);\n this.listSvgCollectionsReverse = this.listSvgCollectionsReverse.bind(this);\n this.listSvgCollectionsByCreator = this.listSvgCollectionsByCreator.bind(this);\n this.listSvgCollectionsByCreatorReverse = this.listSvgCollectionsByCreatorReverse.bind(this);\n this.ownership = this.ownership.bind(this);\n this.codeId = this.codeId.bind(this);\n }\n listSvgCollections = async ({\n limit,\n startAfter\n }: {\n limit?: number;\n startAfter?: string;\n }): Promise => {\n return this.client.queryContractSmart(this.contractAddress, {\n list_svg_collections: {\n limit,\n start_after: startAfter\n }\n });\n };\n listSvgCollectionsReverse = async ({\n limit,\n startBefore\n }: {\n limit?: number;\n startBefore?: string;\n }): Promise => {\n return this.client.queryContractSmart(this.contractAddress, {\n list_svg_collections_reverse: {\n limit,\n start_before: startBefore\n }\n });\n };\n listSvgCollectionsByCreator = async ({\n creator,\n limit,\n startAfter\n }: {\n creator: string;\n limit?: number;\n startAfter?: string;\n }): Promise => {\n return this.client.queryContractSmart(this.contractAddress, {\n list_svg_collections_by_creator: {\n creator,\n limit,\n start_after: startAfter\n }\n });\n };\n listSvgCollectionsByCreatorReverse = async ({\n creator,\n limit,\n startBefore\n }: {\n creator: string;\n limit?: number;\n startBefore?: string;\n }): Promise => {\n return this.client.queryContractSmart(this.contractAddress, {\n list_svg_collections_by_creator_reverse: {\n creator,\n limit,\n start_before: startBefore\n }\n });\n };\n ownership = async (): Promise => {\n return this.client.queryContractSmart(this.contractAddress, {\n ownership: {}\n });\n };\n codeId = async (): Promise => {\n return this.client.queryContractSmart(this.contractAddress, {\n code_id: {}\n });\n };\n}\nexport interface CwSvgMinterInterface extends CwSvgMinterReadOnlyInterface {\n contractAddress: string;\n sender: string;\n createSvgCollection: ({\n instantiateMsg,\n label\n }: {\n instantiateMsg: InstantiateMsg;\n label: string;\n }, fee_?: number | StdFee | \"auto\", memo_?: string, funds_?: Coin[]) => Promise;\n updateCodeId: ({\n codeId\n }: {\n codeId: number;\n }, fee_?: number | StdFee | \"auto\", memo_?: string, funds_?: Coin[]) => Promise;\n updateOwnership: (action: Action, fee_?: number | StdFee | \"auto\", memo_?: string, funds_?: Coin[]) => Promise;\n}\nexport class CwSvgMinterClient extends CwSvgMinterQueryClient implements CwSvgMinterInterface {\n client: ISigningCosmWasmClient;\n sender: string;\n contractAddress: string;\n constructor(client: ISigningCosmWasmClient, sender: string, contractAddress: string) {\n super(client, contractAddress);\n this.client = client;\n this.sender = sender;\n this.contractAddress = contractAddress;\n this.createSvgCollection = this.createSvgCollection.bind(this);\n this.updateCodeId = this.updateCodeId.bind(this);\n this.updateOwnership = this.updateOwnership.bind(this);\n }\n createSvgCollection = async ({\n instantiateMsg,\n label\n }: {\n instantiateMsg: InstantiateMsg;\n label: string;\n }, fee_: number | StdFee | \"auto\" = \"auto\", memo_?: string, funds_?: Coin[]): Promise => {\n return await this.client.execute(this.sender, this.contractAddress, {\n create_svg_collection: {\n instantiate_msg: instantiateMsg,\n label\n }\n }, fee_, memo_, funds_);\n };\n updateCodeId = async ({\n codeId\n }: {\n codeId: number;\n }, fee_: number | StdFee | \"auto\" = \"auto\", memo_?: string, funds_?: Coin[]): Promise => {\n return await this.client.execute(this.sender, this.contractAddress, {\n update_code_id: {\n code_id: codeId\n }\n }, fee_, memo_, funds_);\n };\n updateOwnership = async (action: Action, fee_: number | StdFee | \"auto\" = \"auto\", memo_?: string, funds_?: Coin[]): Promise => {\n return await this.client.execute(this.sender, this.contractAddress, {\n update_ownership: action\n }, fee_, memo_, funds_);\n };\n}", "/**\n* This file was automatically generated by @cosmwasm/ts-codegen@1.14.0.\n* DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,\n* and run the @cosmwasm/ts-codegen generate command to regenerate this file.\n*/\n\nimport { EncodeObject } from \"@interchainjs/cosmos-types\";\nimport { MsgExecuteContract } from \"interchainjs/cosmwasm/wasm/v1/tx\";\nimport { toUtf8 } from \"@interchainjs/encoding\";\nimport { InstantiateMsg, ExecuteMsg, Uint128, Binary, VariableKind, Action, Expiration, Timestamp, Uint64, PriceTier, Coin, TemplateSlot, VariableDef, RgbRange, QueryMsg, ArrayOfSvgCollection, SvgCollection, Addr, OwnershipForAddr } from \"./CwSvgMinter.types\";\nexport interface CwSvgMinterMsg {\n contractAddress: string;\n sender: string;\n createSvgCollection: ({\n instantiateMsg,\n label\n }: {\n instantiateMsg: InstantiateMsg;\n label: string;\n }, funds_?: Coin[]) => EncodeObject;\n updateCodeId: ({\n codeId\n }: {\n codeId: number;\n }, funds_?: Coin[]) => EncodeObject;\n updateOwnership: (action: Action, funds_?: Coin[]) => EncodeObject;\n}\nexport class CwSvgMinterMsgComposer implements CwSvgMinterMsg {\n sender: string;\n contractAddress: string;\n constructor(sender: string, contractAddress: string) {\n this.sender = sender;\n this.contractAddress = contractAddress;\n this.createSvgCollection = this.createSvgCollection.bind(this);\n this.updateCodeId = this.updateCodeId.bind(this);\n this.updateOwnership = this.updateOwnership.bind(this);\n }\n createSvgCollection = ({\n instantiateMsg,\n label\n }: {\n instantiateMsg: InstantiateMsg;\n label: string;\n }, funds_?: Coin[]): EncodeObject => {\n return {\n typeUrl: \"/cosmwasm.wasm.v1.MsgExecuteContract\",\n value: MsgExecuteContract.fromPartial({\n sender: this.sender,\n contract: this.contractAddress,\n msg: toUtf8(JSON.stringify({\n create_svg_collection: {\n instantiate_msg: instantiateMsg,\n label\n }\n })),\n funds: funds_\n })\n };\n };\n updateCodeId = ({\n codeId\n }: {\n codeId: number;\n }, funds_?: Coin[]): EncodeObject => {\n return {\n typeUrl: \"/cosmwasm.wasm.v1.MsgExecuteContract\",\n value: MsgExecuteContract.fromPartial({\n sender: this.sender,\n contract: this.contractAddress,\n msg: toUtf8(JSON.stringify({\n update_code_id: {\n code_id: codeId\n }\n })),\n funds: funds_\n })\n };\n };\n updateOwnership = (action: Action, funds_?: Coin[]): EncodeObject => {\n return {\n typeUrl: \"/cosmwasm.wasm.v1.MsgExecuteContract\",\n value: MsgExecuteContract.fromPartial({\n sender: this.sender,\n contract: this.contractAddress,\n msg: toUtf8(JSON.stringify({\n update_ownership: action\n })),\n funds: funds_\n })\n };\n };\n}"], + "mappings": "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", + "names": ["CwSvgMinterQueryClient", "client", "contractAddress", "__publicField", "limit", "startAfter", "startBefore", "creator", "CwSvgMinterClient", "sender", "instantiateMsg", "label", "fee_", "memo_", "funds_", "codeId", "action", "MsgExecuteContract", "toUtf8", "CwSvgMinterMsgComposer", "sender", "contractAddress", "__publicField", "instantiateMsg", "label", "funds_", "MsgExecuteContract", "toUtf8", "codeId", "action"] +} diff --git a/lib/cw721-svg.js b/lib/cw721-svg.js new file mode 100644 index 0000000..ae23399 --- /dev/null +++ b/lib/cw721-svg.js @@ -0,0 +1,2 @@ +var h=Object.defineProperty;var g=(c,t,e)=>t in c?h(c,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):c[t]=e;var s=(c,t,e)=>g(c,typeof t!="symbol"?t+"":t,e);var l=class{constructor(t,e){s(this,"client");s(this,"contractAddress");s(this,"ownerOf",async({includeExpired:t,tokenId:e})=>this.client.queryContractSmart(this.contractAddress,{owner_of:{include_expired:t,token_id:e}}));s(this,"approval",async({includeExpired:t,spender:e,tokenId:n})=>this.client.queryContractSmart(this.contractAddress,{approval:{include_expired:t,spender:e,token_id:n}}));s(this,"approvals",async({includeExpired:t,tokenId:e})=>this.client.queryContractSmart(this.contractAddress,{approvals:{include_expired:t,token_id:e}}));s(this,"allOperators",async({includeExpired:t,limit:e,owner:n,startAfter:r})=>this.client.queryContractSmart(this.contractAddress,{all_operators:{include_expired:t,limit:e,owner:n,start_after:r}}));s(this,"numTokens",async()=>this.client.queryContractSmart(this.contractAddress,{num_tokens:{}}));s(this,"contractInfo",async()=>this.client.queryContractSmart(this.contractAddress,{contract_info:{}}));s(this,"nftInfo",async({tokenId:t})=>this.client.queryContractSmart(this.contractAddress,{nft_info:{token_id:t}}));s(this,"allNftInfo",async({includeExpired:t,tokenId:e})=>this.client.queryContractSmart(this.contractAddress,{all_nft_info:{include_expired:t,token_id:e}}));s(this,"tokens",async({limit:t,owner:e,startAfter:n})=>this.client.queryContractSmart(this.contractAddress,{tokens:{limit:t,owner:e,start_after:n}}));s(this,"allTokens",async({limit:t,startAfter:e})=>this.client.queryContractSmart(this.contractAddress,{all_tokens:{limit:t,start_after:e}}));s(this,"minter",async()=>this.client.queryContractSmart(this.contractAddress,{minter:{}}));s(this,"svgTokenUri",async({tokenId:t})=>this.client.queryContractSmart(this.contractAddress,{svg_token_uri:{token_id:t}}));s(this,"svgPlaceholder",async({seed:t})=>this.client.queryContractSmart(this.contractAddress,{svg_placeholder:{seed:t}}));s(this,"config",async()=>this.client.queryContractSmart(this.contractAddress,{config:{}}));s(this,"svgTemplate",async()=>this.client.queryContractSmart(this.contractAddress,{svg_template:{}}));s(this,"whitelist",async()=>this.client.queryContractSmart(this.contractAddress,{whitelist:{}}));s(this,"mintCount",async({address:t})=>this.client.queryContractSmart(this.contractAddress,{mint_count:{address:t}}));s(this,"wlMintCount",async({address:t})=>this.client.queryContractSmart(this.contractAddress,{wl_mint_count:{address:t}}));s(this,"ownership",async()=>this.client.queryContractSmart(this.contractAddress,{ownership:{}}));this.client=t,this.contractAddress=e,this.ownerOf=this.ownerOf.bind(this),this.approval=this.approval.bind(this),this.approvals=this.approvals.bind(this),this.allOperators=this.allOperators.bind(this),this.numTokens=this.numTokens.bind(this),this.contractInfo=this.contractInfo.bind(this),this.nftInfo=this.nftInfo.bind(this),this.allNftInfo=this.allNftInfo.bind(this),this.tokens=this.tokens.bind(this),this.allTokens=this.allTokens.bind(this),this.minter=this.minter.bind(this),this.svgTokenUri=this.svgTokenUri.bind(this),this.svgPlaceholder=this.svgPlaceholder.bind(this),this.config=this.config.bind(this),this.svgTemplate=this.svgTemplate.bind(this),this.whitelist=this.whitelist.bind(this),this.mintCount=this.mintCount.bind(this),this.wlMintCount=this.wlMintCount.bind(this),this.ownership=this.ownership.bind(this)}},m=class extends l{constructor(e,n,r){super(e,r);s(this,"client");s(this,"sender");s(this,"contractAddress");s(this,"mint",async({allocation:e,amount:n,proofHashes:r},i="auto",o,p)=>await this.client.execute(this.sender,this.contractAddress,{mint:{allocation:e,amount:n,proof_hashes:r}},i,o,p));s(this,"pause",async({pause:e},n="auto",r,i)=>await this.client.execute(this.sender,this.contractAddress,{pause:{pause:e}},n,r,i));s(this,"updateWhitelist",async({address:e},n="auto",r,i)=>await this.client.execute(this.sender,this.contractAddress,{update_whitelist:{address:e}},n,r,i));s(this,"transferNft",async({recipient:e,tokenId:n},r="auto",i,o)=>await this.client.execute(this.sender,this.contractAddress,{transfer_nft:{recipient:e,token_id:n}},r,i,o));s(this,"sendNft",async({contract:e,msg:n,tokenId:r},i="auto",o,p)=>await this.client.execute(this.sender,this.contractAddress,{send_nft:{contract:e,msg:n,token_id:r}},i,o,p));s(this,"approve",async({expires:e,spender:n,tokenId:r},i="auto",o,p)=>await this.client.execute(this.sender,this.contractAddress,{approve:{expires:e,spender:n,token_id:r}},i,o,p));s(this,"revoke",async({spender:e,tokenId:n},r="auto",i,o)=>await this.client.execute(this.sender,this.contractAddress,{revoke:{spender:e,token_id:n}},r,i,o));s(this,"approveAll",async({expires:e,operator:n},r="auto",i,o)=>await this.client.execute(this.sender,this.contractAddress,{approve_all:{expires:e,operator:n}},r,i,o));s(this,"revokeAll",async({operator:e},n="auto",r,i)=>await this.client.execute(this.sender,this.contractAddress,{revoke_all:{operator:e}},n,r,i));s(this,"updateOwnership",async(e,n="auto",r,i)=>await this.client.execute(this.sender,this.contractAddress,{update_ownership:e},n,r,i));this.client=e,this.sender=n,this.contractAddress=r,this.mint=this.mint.bind(this),this.pause=this.pause.bind(this),this.updateWhitelist=this.updateWhitelist.bind(this),this.transferNft=this.transferNft.bind(this),this.sendNft=this.sendNft.bind(this),this.approve=this.approve.bind(this),this.revoke=this.revoke.bind(this),this.approveAll=this.approveAll.bind(this),this.revokeAll=this.revokeAll.bind(this),this.updateOwnership=this.updateOwnership.bind(this)}};import{MsgExecuteContract as a}from"interchainjs/cosmwasm/wasm/v1/tx";import{toUtf8 as d}from"@interchainjs/encoding";var u=class{constructor(t,e){s(this,"sender");s(this,"contractAddress");s(this,"mint",({allocation:t,amount:e,proofHashes:n},r)=>({typeUrl:"/cosmwasm.wasm.v1.MsgExecuteContract",value:a.fromPartial({sender:this.sender,contract:this.contractAddress,msg:d(JSON.stringify({mint:{allocation:t,amount:e,proof_hashes:n}})),funds:r})}));s(this,"pause",({pause:t},e)=>({typeUrl:"/cosmwasm.wasm.v1.MsgExecuteContract",value:a.fromPartial({sender:this.sender,contract:this.contractAddress,msg:d(JSON.stringify({pause:{pause:t}})),funds:e})}));s(this,"updateWhitelist",({address:t},e)=>({typeUrl:"/cosmwasm.wasm.v1.MsgExecuteContract",value:a.fromPartial({sender:this.sender,contract:this.contractAddress,msg:d(JSON.stringify({update_whitelist:{address:t}})),funds:e})}));s(this,"transferNft",({recipient:t,tokenId:e},n)=>({typeUrl:"/cosmwasm.wasm.v1.MsgExecuteContract",value:a.fromPartial({sender:this.sender,contract:this.contractAddress,msg:d(JSON.stringify({transfer_nft:{recipient:t,token_id:e}})),funds:n})}));s(this,"sendNft",({contract:t,msg:e,tokenId:n},r)=>({typeUrl:"/cosmwasm.wasm.v1.MsgExecuteContract",value:a.fromPartial({sender:this.sender,contract:this.contractAddress,msg:d(JSON.stringify({send_nft:{contract:t,msg:e,token_id:n}})),funds:r})}));s(this,"approve",({expires:t,spender:e,tokenId:n},r)=>({typeUrl:"/cosmwasm.wasm.v1.MsgExecuteContract",value:a.fromPartial({sender:this.sender,contract:this.contractAddress,msg:d(JSON.stringify({approve:{expires:t,spender:e,token_id:n}})),funds:r})}));s(this,"revoke",({spender:t,tokenId:e},n)=>({typeUrl:"/cosmwasm.wasm.v1.MsgExecuteContract",value:a.fromPartial({sender:this.sender,contract:this.contractAddress,msg:d(JSON.stringify({revoke:{spender:t,token_id:e}})),funds:n})}));s(this,"approveAll",({expires:t,operator:e},n)=>({typeUrl:"/cosmwasm.wasm.v1.MsgExecuteContract",value:a.fromPartial({sender:this.sender,contract:this.contractAddress,msg:d(JSON.stringify({approve_all:{expires:t,operator:e}})),funds:n})}));s(this,"revokeAll",({operator:t},e)=>({typeUrl:"/cosmwasm.wasm.v1.MsgExecuteContract",value:a.fromPartial({sender:this.sender,contract:this.contractAddress,msg:d(JSON.stringify({revoke_all:{operator:t}})),funds:e})}));s(this,"updateOwnership",(t,e)=>({typeUrl:"/cosmwasm.wasm.v1.MsgExecuteContract",value:a.fromPartial({sender:this.sender,contract:this.contractAddress,msg:d(JSON.stringify({update_ownership:t})),funds:e})}));this.sender=t,this.contractAddress=e,this.mint=this.mint.bind(this),this.pause=this.pause.bind(this),this.updateWhitelist=this.updateWhitelist.bind(this),this.transferNft=this.transferNft.bind(this),this.sendNft=this.sendNft.bind(this),this.approve=this.approve.bind(this),this.revoke=this.revoke.bind(this),this.approveAll=this.approveAll.bind(this),this.revokeAll=this.revokeAll.bind(this),this.updateOwnership=this.updateOwnership.bind(this)}};export{m as Cw721SvgClient,u as Cw721SvgMsgComposer,l as Cw721SvgQueryClient}; +//# sourceMappingURL=cw721-svg.js.map diff --git a/lib/cw721-svg.js.map b/lib/cw721-svg.js.map new file mode 100644 index 0000000..4f827cc --- /dev/null +++ b/lib/cw721-svg.js.map @@ -0,0 +1,7 @@ +{ + "version": 3, + "sources": ["../../src/Cw721Svg.client.ts", "../../src/Cw721Svg.message-composer.ts"], + "sourcesContent": ["/**\n* This file was automatically generated by @cosmwasm/ts-codegen@1.14.0.\n* DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,\n* and run the @cosmwasm/ts-codegen generate command to regenerate this file.\n*/\n\nimport { ICosmWasmClient, ISigningCosmWasmClient } from \"./baseClient\";\nimport { StdFee } from \"@interchainjs/types\";\nimport { Uint128, Binary, VariableKind, InstantiateMsg, PriceTier, Coin, TemplateSlot, VariableDef, RgbRange, ExecuteMsg, Expiration, Timestamp, Uint64, Action, QueryMsg, Addr, AllNftInfoResponseForSvgMetadata, OwnerOfResponse, Approval, NftInfoResponseForSvgMetadata, SvgMetadata, TokenParam, OperatorsResponse, TokensResponse, ApprovalResponse, ApprovalsResponse, ConfigResponse, MintConfig, CollectionInfoAndExtensionResponseForNullable_Empty, Empty, MintCountResponse, OwnershipForAddr, NumTokensResponse, OwnershipForString, SvgTokenUriResponse, SvgTemplateResponse, NullableAddr } from \"./Cw721Svg.types\";\nexport interface Cw721SvgReadOnlyInterface {\n contractAddress: string;\n ownerOf: ({\n includeExpired,\n tokenId\n }: {\n includeExpired?: boolean;\n tokenId: string;\n }) => Promise;\n approval: ({\n includeExpired,\n spender,\n tokenId\n }: {\n includeExpired?: boolean;\n spender: string;\n tokenId: string;\n }) => Promise;\n approvals: ({\n includeExpired,\n tokenId\n }: {\n includeExpired?: boolean;\n tokenId: string;\n }) => Promise;\n allOperators: ({\n includeExpired,\n limit,\n owner,\n startAfter\n }: {\n includeExpired?: boolean;\n limit?: number;\n owner: string;\n startAfter?: string;\n }) => Promise;\n numTokens: () => Promise;\n contractInfo: () => Promise;\n nftInfo: ({\n tokenId\n }: {\n tokenId: string;\n }) => Promise;\n allNftInfo: ({\n includeExpired,\n tokenId\n }: {\n includeExpired?: boolean;\n tokenId: string;\n }) => Promise;\n tokens: ({\n limit,\n owner,\n startAfter\n }: {\n limit?: number;\n owner: string;\n startAfter?: string;\n }) => Promise;\n allTokens: ({\n limit,\n startAfter\n }: {\n limit?: number;\n startAfter?: string;\n }) => Promise;\n minter: () => Promise;\n svgTokenUri: ({\n tokenId\n }: {\n tokenId: string;\n }) => Promise;\n svgPlaceholder: ({\n seed\n }: {\n seed?: string;\n }) => Promise;\n config: () => Promise;\n svgTemplate: () => Promise;\n whitelist: () => Promise;\n mintCount: ({\n address\n }: {\n address: string;\n }) => Promise;\n wlMintCount: ({\n address\n }: {\n address: string;\n }) => Promise;\n ownership: () => Promise;\n}\nexport class Cw721SvgQueryClient implements Cw721SvgReadOnlyInterface {\n client: ICosmWasmClient;\n contractAddress: string;\n constructor(client: ICosmWasmClient, contractAddress: string) {\n this.client = client;\n this.contractAddress = contractAddress;\n this.ownerOf = this.ownerOf.bind(this);\n this.approval = this.approval.bind(this);\n this.approvals = this.approvals.bind(this);\n this.allOperators = this.allOperators.bind(this);\n this.numTokens = this.numTokens.bind(this);\n this.contractInfo = this.contractInfo.bind(this);\n this.nftInfo = this.nftInfo.bind(this);\n this.allNftInfo = this.allNftInfo.bind(this);\n this.tokens = this.tokens.bind(this);\n this.allTokens = this.allTokens.bind(this);\n this.minter = this.minter.bind(this);\n this.svgTokenUri = this.svgTokenUri.bind(this);\n this.svgPlaceholder = this.svgPlaceholder.bind(this);\n this.config = this.config.bind(this);\n this.svgTemplate = this.svgTemplate.bind(this);\n this.whitelist = this.whitelist.bind(this);\n this.mintCount = this.mintCount.bind(this);\n this.wlMintCount = this.wlMintCount.bind(this);\n this.ownership = this.ownership.bind(this);\n }\n ownerOf = async ({\n includeExpired,\n tokenId\n }: {\n includeExpired?: boolean;\n tokenId: string;\n }): Promise => {\n return this.client.queryContractSmart(this.contractAddress, {\n owner_of: {\n include_expired: includeExpired,\n token_id: tokenId\n }\n });\n };\n approval = async ({\n includeExpired,\n spender,\n tokenId\n }: {\n includeExpired?: boolean;\n spender: string;\n tokenId: string;\n }): Promise => {\n return this.client.queryContractSmart(this.contractAddress, {\n approval: {\n include_expired: includeExpired,\n spender,\n token_id: tokenId\n }\n });\n };\n approvals = async ({\n includeExpired,\n tokenId\n }: {\n includeExpired?: boolean;\n tokenId: string;\n }): Promise => {\n return this.client.queryContractSmart(this.contractAddress, {\n approvals: {\n include_expired: includeExpired,\n token_id: tokenId\n }\n });\n };\n allOperators = async ({\n includeExpired,\n limit,\n owner,\n startAfter\n }: {\n includeExpired?: boolean;\n limit?: number;\n owner: string;\n startAfter?: string;\n }): Promise => {\n return this.client.queryContractSmart(this.contractAddress, {\n all_operators: {\n include_expired: includeExpired,\n limit,\n owner,\n start_after: startAfter\n }\n });\n };\n numTokens = async (): Promise => {\n return this.client.queryContractSmart(this.contractAddress, {\n num_tokens: {}\n });\n };\n contractInfo = async (): Promise => {\n return this.client.queryContractSmart(this.contractAddress, {\n contract_info: {}\n });\n };\n nftInfo = async ({\n tokenId\n }: {\n tokenId: string;\n }): Promise => {\n return this.client.queryContractSmart(this.contractAddress, {\n nft_info: {\n token_id: tokenId\n }\n });\n };\n allNftInfo = async ({\n includeExpired,\n tokenId\n }: {\n includeExpired?: boolean;\n tokenId: string;\n }): Promise => {\n return this.client.queryContractSmart(this.contractAddress, {\n all_nft_info: {\n include_expired: includeExpired,\n token_id: tokenId\n }\n });\n };\n tokens = async ({\n limit,\n owner,\n startAfter\n }: {\n limit?: number;\n owner: string;\n startAfter?: string;\n }): Promise => {\n return this.client.queryContractSmart(this.contractAddress, {\n tokens: {\n limit,\n owner,\n start_after: startAfter\n }\n });\n };\n allTokens = async ({\n limit,\n startAfter\n }: {\n limit?: number;\n startAfter?: string;\n }): Promise => {\n return this.client.queryContractSmart(this.contractAddress, {\n all_tokens: {\n limit,\n start_after: startAfter\n }\n });\n };\n minter = async (): Promise => {\n return this.client.queryContractSmart(this.contractAddress, {\n minter: {}\n });\n };\n svgTokenUri = async ({\n tokenId\n }: {\n tokenId: string;\n }): Promise => {\n return this.client.queryContractSmart(this.contractAddress, {\n svg_token_uri: {\n token_id: tokenId\n }\n });\n };\n svgPlaceholder = async ({\n seed\n }: {\n seed?: string;\n }): Promise => {\n return this.client.queryContractSmart(this.contractAddress, {\n svg_placeholder: {\n seed\n }\n });\n };\n config = async (): Promise => {\n return this.client.queryContractSmart(this.contractAddress, {\n config: {}\n });\n };\n svgTemplate = async (): Promise => {\n return this.client.queryContractSmart(this.contractAddress, {\n svg_template: {}\n });\n };\n whitelist = async (): Promise => {\n return this.client.queryContractSmart(this.contractAddress, {\n whitelist: {}\n });\n };\n mintCount = async ({\n address\n }: {\n address: string;\n }): Promise => {\n return this.client.queryContractSmart(this.contractAddress, {\n mint_count: {\n address\n }\n });\n };\n wlMintCount = async ({\n address\n }: {\n address: string;\n }): Promise => {\n return this.client.queryContractSmart(this.contractAddress, {\n wl_mint_count: {\n address\n }\n });\n };\n ownership = async (): Promise => {\n return this.client.queryContractSmart(this.contractAddress, {\n ownership: {}\n });\n };\n}\nexport interface Cw721SvgInterface extends Cw721SvgReadOnlyInterface {\n contractAddress: string;\n sender: string;\n mint: ({\n allocation,\n amount,\n proofHashes\n }: {\n allocation?: number;\n amount: number;\n proofHashes?: string[];\n }, fee_?: number | StdFee | \"auto\", memo_?: string, funds_?: Coin[]) => Promise;\n pause: ({\n pause\n }: {\n pause: boolean;\n }, fee_?: number | StdFee | \"auto\", memo_?: string, funds_?: Coin[]) => Promise;\n updateWhitelist: ({\n address\n }: {\n address?: string;\n }, fee_?: number | StdFee | \"auto\", memo_?: string, funds_?: Coin[]) => Promise;\n transferNft: ({\n recipient,\n tokenId\n }: {\n recipient: string;\n tokenId: string;\n }, fee_?: number | StdFee | \"auto\", memo_?: string, funds_?: Coin[]) => Promise;\n sendNft: ({\n contract,\n msg,\n tokenId\n }: {\n contract: string;\n msg: Binary;\n tokenId: string;\n }, fee_?: number | StdFee | \"auto\", memo_?: string, funds_?: Coin[]) => Promise;\n approve: ({\n expires,\n spender,\n tokenId\n }: {\n expires?: Expiration;\n spender: string;\n tokenId: string;\n }, fee_?: number | StdFee | \"auto\", memo_?: string, funds_?: Coin[]) => Promise;\n revoke: ({\n spender,\n tokenId\n }: {\n spender: string;\n tokenId: string;\n }, fee_?: number | StdFee | \"auto\", memo_?: string, funds_?: Coin[]) => Promise;\n approveAll: ({\n expires,\n operator\n }: {\n expires?: Expiration;\n operator: string;\n }, fee_?: number | StdFee | \"auto\", memo_?: string, funds_?: Coin[]) => Promise;\n revokeAll: ({\n operator\n }: {\n operator: string;\n }, fee_?: number | StdFee | \"auto\", memo_?: string, funds_?: Coin[]) => Promise;\n updateOwnership: (action: Action, fee_?: number | StdFee | \"auto\", memo_?: string, funds_?: Coin[]) => Promise;\n}\nexport class Cw721SvgClient extends Cw721SvgQueryClient implements Cw721SvgInterface {\n client: ISigningCosmWasmClient;\n sender: string;\n contractAddress: string;\n constructor(client: ISigningCosmWasmClient, sender: string, contractAddress: string) {\n super(client, contractAddress);\n this.client = client;\n this.sender = sender;\n this.contractAddress = contractAddress;\n this.mint = this.mint.bind(this);\n this.pause = this.pause.bind(this);\n this.updateWhitelist = this.updateWhitelist.bind(this);\n this.transferNft = this.transferNft.bind(this);\n this.sendNft = this.sendNft.bind(this);\n this.approve = this.approve.bind(this);\n this.revoke = this.revoke.bind(this);\n this.approveAll = this.approveAll.bind(this);\n this.revokeAll = this.revokeAll.bind(this);\n this.updateOwnership = this.updateOwnership.bind(this);\n }\n mint = async ({\n allocation,\n amount,\n proofHashes\n }: {\n allocation?: number;\n amount: number;\n proofHashes?: string[];\n }, fee_: number | StdFee | \"auto\" = \"auto\", memo_?: string, funds_?: Coin[]): Promise => {\n return await this.client.execute(this.sender, this.contractAddress, {\n mint: {\n allocation,\n amount,\n proof_hashes: proofHashes\n }\n }, fee_, memo_, funds_);\n };\n pause = async ({\n pause\n }: {\n pause: boolean;\n }, fee_: number | StdFee | \"auto\" = \"auto\", memo_?: string, funds_?: Coin[]): Promise => {\n return await this.client.execute(this.sender, this.contractAddress, {\n pause: {\n pause\n }\n }, fee_, memo_, funds_);\n };\n updateWhitelist = async ({\n address\n }: {\n address?: string;\n }, fee_: number | StdFee | \"auto\" = \"auto\", memo_?: string, funds_?: Coin[]): Promise => {\n return await this.client.execute(this.sender, this.contractAddress, {\n update_whitelist: {\n address\n }\n }, fee_, memo_, funds_);\n };\n transferNft = async ({\n recipient,\n tokenId\n }: {\n recipient: string;\n tokenId: string;\n }, fee_: number | StdFee | \"auto\" = \"auto\", memo_?: string, funds_?: Coin[]): Promise => {\n return await this.client.execute(this.sender, this.contractAddress, {\n transfer_nft: {\n recipient,\n token_id: tokenId\n }\n }, fee_, memo_, funds_);\n };\n sendNft = async ({\n contract,\n msg,\n tokenId\n }: {\n contract: string;\n msg: Binary;\n tokenId: string;\n }, fee_: number | StdFee | \"auto\" = \"auto\", memo_?: string, funds_?: Coin[]): Promise => {\n return await this.client.execute(this.sender, this.contractAddress, {\n send_nft: {\n contract,\n msg,\n token_id: tokenId\n }\n }, fee_, memo_, funds_);\n };\n approve = async ({\n expires,\n spender,\n tokenId\n }: {\n expires?: Expiration;\n spender: string;\n tokenId: string;\n }, fee_: number | StdFee | \"auto\" = \"auto\", memo_?: string, funds_?: Coin[]): Promise => {\n return await this.client.execute(this.sender, this.contractAddress, {\n approve: {\n expires,\n spender,\n token_id: tokenId\n }\n }, fee_, memo_, funds_);\n };\n revoke = async ({\n spender,\n tokenId\n }: {\n spender: string;\n tokenId: string;\n }, fee_: number | StdFee | \"auto\" = \"auto\", memo_?: string, funds_?: Coin[]): Promise => {\n return await this.client.execute(this.sender, this.contractAddress, {\n revoke: {\n spender,\n token_id: tokenId\n }\n }, fee_, memo_, funds_);\n };\n approveAll = async ({\n expires,\n operator\n }: {\n expires?: Expiration;\n operator: string;\n }, fee_: number | StdFee | \"auto\" = \"auto\", memo_?: string, funds_?: Coin[]): Promise => {\n return await this.client.execute(this.sender, this.contractAddress, {\n approve_all: {\n expires,\n operator\n }\n }, fee_, memo_, funds_);\n };\n revokeAll = async ({\n operator\n }: {\n operator: string;\n }, fee_: number | StdFee | \"auto\" = \"auto\", memo_?: string, funds_?: Coin[]): Promise => {\n return await this.client.execute(this.sender, this.contractAddress, {\n revoke_all: {\n operator\n }\n }, fee_, memo_, funds_);\n };\n updateOwnership = async (action: Action, fee_: number | StdFee | \"auto\" = \"auto\", memo_?: string, funds_?: Coin[]): Promise => {\n return await this.client.execute(this.sender, this.contractAddress, {\n update_ownership: action\n }, fee_, memo_, funds_);\n };\n}", "/**\n* This file was automatically generated by @cosmwasm/ts-codegen@1.14.0.\n* DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,\n* and run the @cosmwasm/ts-codegen generate command to regenerate this file.\n*/\n\nimport { EncodeObject } from \"@interchainjs/cosmos-types\";\nimport { MsgExecuteContract } from \"interchainjs/cosmwasm/wasm/v1/tx\";\nimport { toUtf8 } from \"@interchainjs/encoding\";\nimport { Uint128, Binary, VariableKind, InstantiateMsg, PriceTier, Coin, TemplateSlot, VariableDef, RgbRange, ExecuteMsg, Expiration, Timestamp, Uint64, Action, QueryMsg, Addr, AllNftInfoResponseForSvgMetadata, OwnerOfResponse, Approval, NftInfoResponseForSvgMetadata, SvgMetadata, TokenParam, OperatorsResponse, TokensResponse, ApprovalResponse, ApprovalsResponse, ConfigResponse, MintConfig, CollectionInfoAndExtensionResponseForNullable_Empty, Empty, MintCountResponse, OwnershipForAddr, NumTokensResponse, OwnershipForString, SvgTokenUriResponse, SvgTemplateResponse, NullableAddr } from \"./Cw721Svg.types\";\nexport interface Cw721SvgMsg {\n contractAddress: string;\n sender: string;\n mint: ({\n allocation,\n amount,\n proofHashes\n }: {\n allocation?: number;\n amount: number;\n proofHashes?: string[];\n }, funds_?: Coin[]) => EncodeObject;\n pause: ({\n pause\n }: {\n pause: boolean;\n }, funds_?: Coin[]) => EncodeObject;\n updateWhitelist: ({\n address\n }: {\n address?: string;\n }, funds_?: Coin[]) => EncodeObject;\n transferNft: ({\n recipient,\n tokenId\n }: {\n recipient: string;\n tokenId: string;\n }, funds_?: Coin[]) => EncodeObject;\n sendNft: ({\n contract,\n msg,\n tokenId\n }: {\n contract: string;\n msg: Binary;\n tokenId: string;\n }, funds_?: Coin[]) => EncodeObject;\n approve: ({\n expires,\n spender,\n tokenId\n }: {\n expires?: Expiration;\n spender: string;\n tokenId: string;\n }, funds_?: Coin[]) => EncodeObject;\n revoke: ({\n spender,\n tokenId\n }: {\n spender: string;\n tokenId: string;\n }, funds_?: Coin[]) => EncodeObject;\n approveAll: ({\n expires,\n operator\n }: {\n expires?: Expiration;\n operator: string;\n }, funds_?: Coin[]) => EncodeObject;\n revokeAll: ({\n operator\n }: {\n operator: string;\n }, funds_?: Coin[]) => EncodeObject;\n updateOwnership: (action: Action, funds_?: Coin[]) => EncodeObject;\n}\nexport class Cw721SvgMsgComposer implements Cw721SvgMsg {\n sender: string;\n contractAddress: string;\n constructor(sender: string, contractAddress: string) {\n this.sender = sender;\n this.contractAddress = contractAddress;\n this.mint = this.mint.bind(this);\n this.pause = this.pause.bind(this);\n this.updateWhitelist = this.updateWhitelist.bind(this);\n this.transferNft = this.transferNft.bind(this);\n this.sendNft = this.sendNft.bind(this);\n this.approve = this.approve.bind(this);\n this.revoke = this.revoke.bind(this);\n this.approveAll = this.approveAll.bind(this);\n this.revokeAll = this.revokeAll.bind(this);\n this.updateOwnership = this.updateOwnership.bind(this);\n }\n mint = ({\n allocation,\n amount,\n proofHashes\n }: {\n allocation?: number;\n amount: number;\n proofHashes?: string[];\n }, funds_?: Coin[]): EncodeObject => {\n return {\n typeUrl: \"/cosmwasm.wasm.v1.MsgExecuteContract\",\n value: MsgExecuteContract.fromPartial({\n sender: this.sender,\n contract: this.contractAddress,\n msg: toUtf8(JSON.stringify({\n mint: {\n allocation,\n amount,\n proof_hashes: proofHashes\n }\n })),\n funds: funds_\n })\n };\n };\n pause = ({\n pause\n }: {\n pause: boolean;\n }, funds_?: Coin[]): EncodeObject => {\n return {\n typeUrl: \"/cosmwasm.wasm.v1.MsgExecuteContract\",\n value: MsgExecuteContract.fromPartial({\n sender: this.sender,\n contract: this.contractAddress,\n msg: toUtf8(JSON.stringify({\n pause: {\n pause\n }\n })),\n funds: funds_\n })\n };\n };\n updateWhitelist = ({\n address\n }: {\n address?: string;\n }, funds_?: Coin[]): EncodeObject => {\n return {\n typeUrl: \"/cosmwasm.wasm.v1.MsgExecuteContract\",\n value: MsgExecuteContract.fromPartial({\n sender: this.sender,\n contract: this.contractAddress,\n msg: toUtf8(JSON.stringify({\n update_whitelist: {\n address\n }\n })),\n funds: funds_\n })\n };\n };\n transferNft = ({\n recipient,\n tokenId\n }: {\n recipient: string;\n tokenId: string;\n }, funds_?: Coin[]): EncodeObject => {\n return {\n typeUrl: \"/cosmwasm.wasm.v1.MsgExecuteContract\",\n value: MsgExecuteContract.fromPartial({\n sender: this.sender,\n contract: this.contractAddress,\n msg: toUtf8(JSON.stringify({\n transfer_nft: {\n recipient,\n token_id: tokenId\n }\n })),\n funds: funds_\n })\n };\n };\n sendNft = ({\n contract,\n msg,\n tokenId\n }: {\n contract: string;\n msg: Binary;\n tokenId: string;\n }, funds_?: Coin[]): EncodeObject => {\n return {\n typeUrl: \"/cosmwasm.wasm.v1.MsgExecuteContract\",\n value: MsgExecuteContract.fromPartial({\n sender: this.sender,\n contract: this.contractAddress,\n msg: toUtf8(JSON.stringify({\n send_nft: {\n contract,\n msg,\n token_id: tokenId\n }\n })),\n funds: funds_\n })\n };\n };\n approve = ({\n expires,\n spender,\n tokenId\n }: {\n expires?: Expiration;\n spender: string;\n tokenId: string;\n }, funds_?: Coin[]): EncodeObject => {\n return {\n typeUrl: \"/cosmwasm.wasm.v1.MsgExecuteContract\",\n value: MsgExecuteContract.fromPartial({\n sender: this.sender,\n contract: this.contractAddress,\n msg: toUtf8(JSON.stringify({\n approve: {\n expires,\n spender,\n token_id: tokenId\n }\n })),\n funds: funds_\n })\n };\n };\n revoke = ({\n spender,\n tokenId\n }: {\n spender: string;\n tokenId: string;\n }, funds_?: Coin[]): EncodeObject => {\n return {\n typeUrl: \"/cosmwasm.wasm.v1.MsgExecuteContract\",\n value: MsgExecuteContract.fromPartial({\n sender: this.sender,\n contract: this.contractAddress,\n msg: toUtf8(JSON.stringify({\n revoke: {\n spender,\n token_id: tokenId\n }\n })),\n funds: funds_\n })\n };\n };\n approveAll = ({\n expires,\n operator\n }: {\n expires?: Expiration;\n operator: string;\n }, funds_?: Coin[]): EncodeObject => {\n return {\n typeUrl: \"/cosmwasm.wasm.v1.MsgExecuteContract\",\n value: MsgExecuteContract.fromPartial({\n sender: this.sender,\n contract: this.contractAddress,\n msg: toUtf8(JSON.stringify({\n approve_all: {\n expires,\n operator\n }\n })),\n funds: funds_\n })\n };\n };\n revokeAll = ({\n operator\n }: {\n operator: string;\n }, funds_?: Coin[]): EncodeObject => {\n return {\n typeUrl: \"/cosmwasm.wasm.v1.MsgExecuteContract\",\n value: MsgExecuteContract.fromPartial({\n sender: this.sender,\n contract: this.contractAddress,\n msg: toUtf8(JSON.stringify({\n revoke_all: {\n operator\n }\n })),\n funds: funds_\n })\n };\n };\n updateOwnership = (action: Action, funds_?: Coin[]): EncodeObject => {\n return {\n typeUrl: \"/cosmwasm.wasm.v1.MsgExecuteContract\",\n value: MsgExecuteContract.fromPartial({\n sender: this.sender,\n contract: this.contractAddress,\n msg: toUtf8(JSON.stringify({\n update_ownership: action\n })),\n funds: funds_\n })\n };\n };\n}"], + "mappings": "oKAqGO,IAAMA,EAAN,KAA+D,CAGpE,YAAYC,EAAyBC,EAAyB,CAF9DC,EAAA,eACAA,EAAA,wBAwBAA,EAAA,eAAU,MAAO,CACf,eAAAC,EACA,QAAAC,CACF,IAIS,KAAK,OAAO,mBAAmB,KAAK,gBAAiB,CAC1D,SAAU,CACR,gBAAiBD,EACjB,SAAUC,CACZ,CACF,CAAC,GAEHF,EAAA,gBAAW,MAAO,CAChB,eAAAC,EACA,QAAAE,EACA,QAAAD,CACF,IAKS,KAAK,OAAO,mBAAmB,KAAK,gBAAiB,CAC1D,SAAU,CACR,gBAAiBD,EACjB,QAAAE,EACA,SAAUD,CACZ,CACF,CAAC,GAEHF,EAAA,iBAAY,MAAO,CACjB,eAAAC,EACA,QAAAC,CACF,IAIS,KAAK,OAAO,mBAAmB,KAAK,gBAAiB,CAC1D,UAAW,CACT,gBAAiBD,EACjB,SAAUC,CACZ,CACF,CAAC,GAEHF,EAAA,oBAAe,MAAO,CACpB,eAAAC,EACA,MAAAG,EACA,MAAAC,EACA,WAAAC,CACF,IAMS,KAAK,OAAO,mBAAmB,KAAK,gBAAiB,CAC1D,cAAe,CACb,gBAAiBL,EACjB,MAAAG,EACA,MAAAC,EACA,YAAaC,CACf,CACF,CAAC,GAEHN,EAAA,iBAAY,SACH,KAAK,OAAO,mBAAmB,KAAK,gBAAiB,CAC1D,WAAY,CAAC,CACf,CAAC,GAEHA,EAAA,oBAAe,SACN,KAAK,OAAO,mBAAmB,KAAK,gBAAiB,CAC1D,cAAe,CAAC,CAClB,CAAC,GAEHA,EAAA,eAAU,MAAO,CACf,QAAAE,CACF,IAGS,KAAK,OAAO,mBAAmB,KAAK,gBAAiB,CAC1D,SAAU,CACR,SAAUA,CACZ,CACF,CAAC,GAEHF,EAAA,kBAAa,MAAO,CAClB,eAAAC,EACA,QAAAC,CACF,IAIS,KAAK,OAAO,mBAAmB,KAAK,gBAAiB,CAC1D,aAAc,CACZ,gBAAiBD,EACjB,SAAUC,CACZ,CACF,CAAC,GAEHF,EAAA,cAAS,MAAO,CACd,MAAAI,EACA,MAAAC,EACA,WAAAC,CACF,IAKS,KAAK,OAAO,mBAAmB,KAAK,gBAAiB,CAC1D,OAAQ,CACN,MAAAF,EACA,MAAAC,EACA,YAAaC,CACf,CACF,CAAC,GAEHN,EAAA,iBAAY,MAAO,CACjB,MAAAI,EACA,WAAAE,CACF,IAIS,KAAK,OAAO,mBAAmB,KAAK,gBAAiB,CAC1D,WAAY,CACV,MAAAF,EACA,YAAaE,CACf,CACF,CAAC,GAEHN,EAAA,cAAS,SACA,KAAK,OAAO,mBAAmB,KAAK,gBAAiB,CAC1D,OAAQ,CAAC,CACX,CAAC,GAEHA,EAAA,mBAAc,MAAO,CACnB,QAAAE,CACF,IAGS,KAAK,OAAO,mBAAmB,KAAK,gBAAiB,CAC1D,cAAe,CACb,SAAUA,CACZ,CACF,CAAC,GAEHF,EAAA,sBAAiB,MAAO,CACtB,KAAAO,CACF,IAGS,KAAK,OAAO,mBAAmB,KAAK,gBAAiB,CAC1D,gBAAiB,CACf,KAAAA,CACF,CACF,CAAC,GAEHP,EAAA,cAAS,SACA,KAAK,OAAO,mBAAmB,KAAK,gBAAiB,CAC1D,OAAQ,CAAC,CACX,CAAC,GAEHA,EAAA,mBAAc,SACL,KAAK,OAAO,mBAAmB,KAAK,gBAAiB,CAC1D,aAAc,CAAC,CACjB,CAAC,GAEHA,EAAA,iBAAY,SACH,KAAK,OAAO,mBAAmB,KAAK,gBAAiB,CAC1D,UAAW,CAAC,CACd,CAAC,GAEHA,EAAA,iBAAY,MAAO,CACjB,QAAAQ,CACF,IAGS,KAAK,OAAO,mBAAmB,KAAK,gBAAiB,CAC1D,WAAY,CACV,QAAAA,CACF,CACF,CAAC,GAEHR,EAAA,mBAAc,MAAO,CACnB,QAAAQ,CACF,IAGS,KAAK,OAAO,mBAAmB,KAAK,gBAAiB,CAC1D,cAAe,CACb,QAAAA,CACF,CACF,CAAC,GAEHR,EAAA,iBAAY,SACH,KAAK,OAAO,mBAAmB,KAAK,gBAAiB,CAC1D,UAAW,CAAC,CACd,CAAC,GA5ND,KAAK,OAASF,EACd,KAAK,gBAAkBC,EACvB,KAAK,QAAU,KAAK,QAAQ,KAAK,IAAI,EACrC,KAAK,SAAW,KAAK,SAAS,KAAK,IAAI,EACvC,KAAK,UAAY,KAAK,UAAU,KAAK,IAAI,EACzC,KAAK,aAAe,KAAK,aAAa,KAAK,IAAI,EAC/C,KAAK,UAAY,KAAK,UAAU,KAAK,IAAI,EACzC,KAAK,aAAe,KAAK,aAAa,KAAK,IAAI,EAC/C,KAAK,QAAU,KAAK,QAAQ,KAAK,IAAI,EACrC,KAAK,WAAa,KAAK,WAAW,KAAK,IAAI,EAC3C,KAAK,OAAS,KAAK,OAAO,KAAK,IAAI,EACnC,KAAK,UAAY,KAAK,UAAU,KAAK,IAAI,EACzC,KAAK,OAAS,KAAK,OAAO,KAAK,IAAI,EACnC,KAAK,YAAc,KAAK,YAAY,KAAK,IAAI,EAC7C,KAAK,eAAiB,KAAK,eAAe,KAAK,IAAI,EACnD,KAAK,OAAS,KAAK,OAAO,KAAK,IAAI,EACnC,KAAK,YAAc,KAAK,YAAY,KAAK,IAAI,EAC7C,KAAK,UAAY,KAAK,UAAU,KAAK,IAAI,EACzC,KAAK,UAAY,KAAK,UAAU,KAAK,IAAI,EACzC,KAAK,YAAc,KAAK,YAAY,KAAK,IAAI,EAC7C,KAAK,UAAY,KAAK,UAAU,KAAK,IAAI,CAC3C,CAyMF,EAqEaU,EAAN,cAA6BZ,CAAiD,CAInF,YAAYC,EAAgCY,EAAgBX,EAAyB,CACnF,MAAMD,EAAQC,CAAe,EAJ/BC,EAAA,eACAA,EAAA,eACAA,EAAA,wBAiBAA,EAAA,YAAO,MAAO,CACZ,WAAAW,EACA,OAAAC,EACA,YAAAC,CACF,EAIGC,EAAiC,OAAQC,EAAgBC,IACnD,MAAM,KAAK,OAAO,QAAQ,KAAK,OAAQ,KAAK,gBAAiB,CAClE,KAAM,CACJ,WAAAL,EACA,OAAAC,EACA,aAAcC,CAChB,CACF,EAAGC,EAAMC,EAAOC,CAAM,GAExBhB,EAAA,aAAQ,MAAO,CACb,MAAAiB,CACF,EAEGH,EAAiC,OAAQC,EAAgBC,IACnD,MAAM,KAAK,OAAO,QAAQ,KAAK,OAAQ,KAAK,gBAAiB,CAClE,MAAO,CACL,MAAAC,CACF,CACF,EAAGH,EAAMC,EAAOC,CAAM,GAExBhB,EAAA,uBAAkB,MAAO,CACvB,QAAAQ,CACF,EAEGM,EAAiC,OAAQC,EAAgBC,IACnD,MAAM,KAAK,OAAO,QAAQ,KAAK,OAAQ,KAAK,gBAAiB,CAClE,iBAAkB,CAChB,QAAAR,CACF,CACF,EAAGM,EAAMC,EAAOC,CAAM,GAExBhB,EAAA,mBAAc,MAAO,CACnB,UAAAkB,EACA,QAAAhB,CACF,EAGGY,EAAiC,OAAQC,EAAgBC,IACnD,MAAM,KAAK,OAAO,QAAQ,KAAK,OAAQ,KAAK,gBAAiB,CAClE,aAAc,CACZ,UAAAE,EACA,SAAUhB,CACZ,CACF,EAAGY,EAAMC,EAAOC,CAAM,GAExBhB,EAAA,eAAU,MAAO,CACf,SAAAmB,EACA,IAAAC,EACA,QAAAlB,CACF,EAIGY,EAAiC,OAAQC,EAAgBC,IACnD,MAAM,KAAK,OAAO,QAAQ,KAAK,OAAQ,KAAK,gBAAiB,CAClE,SAAU,CACR,SAAAG,EACA,IAAAC,EACA,SAAUlB,CACZ,CACF,EAAGY,EAAMC,EAAOC,CAAM,GAExBhB,EAAA,eAAU,MAAO,CACf,QAAAqB,EACA,QAAAlB,EACA,QAAAD,CACF,EAIGY,EAAiC,OAAQC,EAAgBC,IACnD,MAAM,KAAK,OAAO,QAAQ,KAAK,OAAQ,KAAK,gBAAiB,CAClE,QAAS,CACP,QAAAK,EACA,QAAAlB,EACA,SAAUD,CACZ,CACF,EAAGY,EAAMC,EAAOC,CAAM,GAExBhB,EAAA,cAAS,MAAO,CACd,QAAAG,EACA,QAAAD,CACF,EAGGY,EAAiC,OAAQC,EAAgBC,IACnD,MAAM,KAAK,OAAO,QAAQ,KAAK,OAAQ,KAAK,gBAAiB,CAClE,OAAQ,CACN,QAAAb,EACA,SAAUD,CACZ,CACF,EAAGY,EAAMC,EAAOC,CAAM,GAExBhB,EAAA,kBAAa,MAAO,CAClB,QAAAqB,EACA,SAAAC,CACF,EAGGR,EAAiC,OAAQC,EAAgBC,IACnD,MAAM,KAAK,OAAO,QAAQ,KAAK,OAAQ,KAAK,gBAAiB,CAClE,YAAa,CACX,QAAAK,EACA,SAAAC,CACF,CACF,EAAGR,EAAMC,EAAOC,CAAM,GAExBhB,EAAA,iBAAY,MAAO,CACjB,SAAAsB,CACF,EAEGR,EAAiC,OAAQC,EAAgBC,IACnD,MAAM,KAAK,OAAO,QAAQ,KAAK,OAAQ,KAAK,gBAAiB,CAClE,WAAY,CACV,SAAAM,CACF,CACF,EAAGR,EAAMC,EAAOC,CAAM,GAExBhB,EAAA,uBAAkB,MAAOuB,EAAgBT,EAAiC,OAAQC,EAAgBC,IACzF,MAAM,KAAK,OAAO,QAAQ,KAAK,OAAQ,KAAK,gBAAiB,CAClE,iBAAkBO,CACpB,EAAGT,EAAMC,EAAOC,CAAM,GA/ItB,KAAK,OAASlB,EACd,KAAK,OAASY,EACd,KAAK,gBAAkBX,EACvB,KAAK,KAAO,KAAK,KAAK,KAAK,IAAI,EAC/B,KAAK,MAAQ,KAAK,MAAM,KAAK,IAAI,EACjC,KAAK,gBAAkB,KAAK,gBAAgB,KAAK,IAAI,EACrD,KAAK,YAAc,KAAK,YAAY,KAAK,IAAI,EAC7C,KAAK,QAAU,KAAK,QAAQ,KAAK,IAAI,EACrC,KAAK,QAAU,KAAK,QAAQ,KAAK,IAAI,EACrC,KAAK,OAAS,KAAK,OAAO,KAAK,IAAI,EACnC,KAAK,WAAa,KAAK,WAAW,KAAK,IAAI,EAC3C,KAAK,UAAY,KAAK,UAAU,KAAK,IAAI,EACzC,KAAK,gBAAkB,KAAK,gBAAgB,KAAK,IAAI,CACvD,CAoIF,EC5hBA,OAAS,sBAAAyB,MAA0B,mCACnC,OAAS,UAAAC,MAAc,yBAsEhB,IAAMC,EAAN,KAAiD,CAGtD,YAAYC,EAAgBC,EAAyB,CAFrDC,EAAA,eACAA,EAAA,wBAeAA,EAAA,YAAO,CAAC,CACN,WAAAC,EACA,OAAAC,EACA,YAAAC,CACF,EAIGC,KACM,CACL,QAAS,uCACT,MAAOC,EAAmB,YAAY,CACpC,OAAQ,KAAK,OACb,SAAU,KAAK,gBACf,IAAKC,EAAO,KAAK,UAAU,CACzB,KAAM,CACJ,WAAAL,EACA,OAAAC,EACA,aAAcC,CAChB,CACF,CAAC,CAAC,EACF,MAAOC,CACT,CAAC,CACH,IAEFJ,EAAA,aAAQ,CAAC,CACP,MAAAO,CACF,EAEGH,KACM,CACL,QAAS,uCACT,MAAOC,EAAmB,YAAY,CACpC,OAAQ,KAAK,OACb,SAAU,KAAK,gBACf,IAAKC,EAAO,KAAK,UAAU,CACzB,MAAO,CACL,MAAAC,CACF,CACF,CAAC,CAAC,EACF,MAAOH,CACT,CAAC,CACH,IAEFJ,EAAA,uBAAkB,CAAC,CACjB,QAAAQ,CACF,EAEGJ,KACM,CACL,QAAS,uCACT,MAAOC,EAAmB,YAAY,CACpC,OAAQ,KAAK,OACb,SAAU,KAAK,gBACf,IAAKC,EAAO,KAAK,UAAU,CACzB,iBAAkB,CAChB,QAAAE,CACF,CACF,CAAC,CAAC,EACF,MAAOJ,CACT,CAAC,CACH,IAEFJ,EAAA,mBAAc,CAAC,CACb,UAAAS,EACA,QAAAC,CACF,EAGGN,KACM,CACL,QAAS,uCACT,MAAOC,EAAmB,YAAY,CACpC,OAAQ,KAAK,OACb,SAAU,KAAK,gBACf,IAAKC,EAAO,KAAK,UAAU,CACzB,aAAc,CACZ,UAAAG,EACA,SAAUC,CACZ,CACF,CAAC,CAAC,EACF,MAAON,CACT,CAAC,CACH,IAEFJ,EAAA,eAAU,CAAC,CACT,SAAAW,EACA,IAAAC,EACA,QAAAF,CACF,EAIGN,KACM,CACL,QAAS,uCACT,MAAOC,EAAmB,YAAY,CACpC,OAAQ,KAAK,OACb,SAAU,KAAK,gBACf,IAAKC,EAAO,KAAK,UAAU,CACzB,SAAU,CACR,SAAAK,EACA,IAAAC,EACA,SAAUF,CACZ,CACF,CAAC,CAAC,EACF,MAAON,CACT,CAAC,CACH,IAEFJ,EAAA,eAAU,CAAC,CACT,QAAAa,EACA,QAAAC,EACA,QAAAJ,CACF,EAIGN,KACM,CACL,QAAS,uCACT,MAAOC,EAAmB,YAAY,CACpC,OAAQ,KAAK,OACb,SAAU,KAAK,gBACf,IAAKC,EAAO,KAAK,UAAU,CACzB,QAAS,CACP,QAAAO,EACA,QAAAC,EACA,SAAUJ,CACZ,CACF,CAAC,CAAC,EACF,MAAON,CACT,CAAC,CACH,IAEFJ,EAAA,cAAS,CAAC,CACR,QAAAc,EACA,QAAAJ,CACF,EAGGN,KACM,CACL,QAAS,uCACT,MAAOC,EAAmB,YAAY,CACpC,OAAQ,KAAK,OACb,SAAU,KAAK,gBACf,IAAKC,EAAO,KAAK,UAAU,CACzB,OAAQ,CACN,QAAAQ,EACA,SAAUJ,CACZ,CACF,CAAC,CAAC,EACF,MAAON,CACT,CAAC,CACH,IAEFJ,EAAA,kBAAa,CAAC,CACZ,QAAAa,EACA,SAAAE,CACF,EAGGX,KACM,CACL,QAAS,uCACT,MAAOC,EAAmB,YAAY,CACpC,OAAQ,KAAK,OACb,SAAU,KAAK,gBACf,IAAKC,EAAO,KAAK,UAAU,CACzB,YAAa,CACX,QAAAO,EACA,SAAAE,CACF,CACF,CAAC,CAAC,EACF,MAAOX,CACT,CAAC,CACH,IAEFJ,EAAA,iBAAY,CAAC,CACX,SAAAe,CACF,EAEGX,KACM,CACL,QAAS,uCACT,MAAOC,EAAmB,YAAY,CACpC,OAAQ,KAAK,OACb,SAAU,KAAK,gBACf,IAAKC,EAAO,KAAK,UAAU,CACzB,WAAY,CACV,SAAAS,CACF,CACF,CAAC,CAAC,EACF,MAAOX,CACT,CAAC,CACH,IAEFJ,EAAA,uBAAkB,CAACgB,EAAgBZ,KAC1B,CACL,QAAS,uCACT,MAAOC,EAAmB,YAAY,CACpC,OAAQ,KAAK,OACb,SAAU,KAAK,gBACf,IAAKC,EAAO,KAAK,UAAU,CACzB,iBAAkBU,CACpB,CAAC,CAAC,EACF,MAAOZ,CACT,CAAC,CACH,IA9NA,KAAK,OAASN,EACd,KAAK,gBAAkBC,EACvB,KAAK,KAAO,KAAK,KAAK,KAAK,IAAI,EAC/B,KAAK,MAAQ,KAAK,MAAM,KAAK,IAAI,EACjC,KAAK,gBAAkB,KAAK,gBAAgB,KAAK,IAAI,EACrD,KAAK,YAAc,KAAK,YAAY,KAAK,IAAI,EAC7C,KAAK,QAAU,KAAK,QAAQ,KAAK,IAAI,EACrC,KAAK,QAAU,KAAK,QAAQ,KAAK,IAAI,EACrC,KAAK,OAAS,KAAK,OAAO,KAAK,IAAI,EACnC,KAAK,WAAa,KAAK,WAAW,KAAK,IAAI,EAC3C,KAAK,UAAY,KAAK,UAAU,KAAK,IAAI,EACzC,KAAK,gBAAkB,KAAK,gBAAgB,KAAK,IAAI,CACvD,CAoNF", + "names": ["Cw721SvgQueryClient", "client", "contractAddress", "__publicField", "includeExpired", "tokenId", "spender", "limit", "owner", "startAfter", "seed", "address", "Cw721SvgClient", "sender", "allocation", "amount", "proofHashes", "fee_", "memo_", "funds_", "pause", "recipient", "contract", "msg", "expires", "operator", "action", "MsgExecuteContract", "toUtf8", "Cw721SvgMsgComposer", "sender", "contractAddress", "__publicField", "allocation", "amount", "proofHashes", "funds_", "MsgExecuteContract", "toUtf8", "pause", "address", "recipient", "tokenId", "contract", "msg", "expires", "spender", "operator", "action"] +} diff --git a/lib/nav-guard.js b/lib/nav-guard.js new file mode 100644 index 0000000..bb78a6d --- /dev/null +++ b/lib/nav-guard.js @@ -0,0 +1,122 @@ +// nav-guard.js — reads config.json defaultApps, dims disabled nav links, +// overlays "Coming Soon" on disabled pages, injects CSS once. + +const STYLE_ID = 'nav-guard-styles'; + +function injectStyles() { + if (document.getElementById(STYLE_ID)) return; + const style = document.createElement('style'); + style.id = STYLE_ID; + style.textContent = ` + .nav-link.nav-disabled, + .page-nav-link.nav-disabled { + opacity: 0.25; + pointer-events: none; + filter: blur(1px); + user-select: none; + } + .nav-disabled-overlay { + position: fixed; + inset: 0; + z-index: 9999; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + background: rgba(0, 0, 0, 0.75); + backdrop-filter: blur(6px); + -webkit-backdrop-filter: blur(6px); + } + .nav-disabled-overlay .coming-soon { + font-family: 'Satoshi', sans-serif; + font-size: 1.6rem; + font-weight: 500; + color: #6272a4; + letter-spacing: 0.1em; + text-transform: uppercase; + margin-bottom: 0.75rem; + } + .nav-disabled-overlay .back-link { + font-family: 'Satoshi', sans-serif; + font-size: 0.85rem; + color: #98e8c1; + text-decoration: none; + padding: 0.5rem 1.2rem; + border: 1px solid rgba(152, 232, 193, 0.3); + border-radius: 4px; + transition: all 0.2s; + } + .nav-disabled-overlay .back-link:hover { + background: rgba(152, 232, 193, 0.1); + border-color: rgba(152, 232, 193, 0.5); + } + `; + document.head.appendChild(style); +} + +// Map page paths to app IDs +function pathToId(href) { + const path = href.replace(/^\//, '').replace(/\.html$/, ''); + // Normalize known aliases + const map = { + 'mint': 'mint', + 'tabs': 'tabs', + 'ibc': 'ibc', + 'no-rick': 'no-rick', + 'oline': 'oline', + 'admin': 'admin', + 'tx': 'tx', + 'passkey': 'passkey', + 'shell': 'shell', + 'headstash': 'headstash', + }; + return map[path] || path; +} + +function currentPageId() { + const path = location.pathname.replace(/^\//, '').replace(/\.html$/, ''); + return pathToId(path); +} + +export async function applyNavGuard() { + injectStyles(); + + let apps = []; + try { + const res = await fetch('/public/config.json'); + const cfg = await res.json(); + const chainId = location.hostname === 'localhost' ? '120u-1' : 'morocco-1'; + apps = cfg.chains?.[chainId]?.defaultApps || []; + } catch { + return; // Can't load config — skip guard + } + + const disabledIds = new Set( + apps.filter(a => a.disabled).map(a => a.id) + ); + + if (disabledIds.size === 0) return; + + // Dim disabled nav links + document.querySelectorAll('.nav-link, .page-nav-link').forEach(link => { + const href = link.getAttribute('href') || ''; + const id = pathToId(href); + if (disabledIds.has(id)) { + link.classList.add('nav-disabled'); + link.setAttribute('tabindex', '-1'); + link.setAttribute('aria-disabled', 'true'); + } + }); + + // If current page is disabled, overlay "Coming Soon" + const pageId = currentPageId(); + if (disabledIds.has(pageId)) { + const overlay = document.createElement('div'); + overlay.className = 'nav-disabled-overlay'; + overlay.innerHTML = ` +
Coming Soon
+ Back to Home + `; + document.body.appendChild(overlay); + } +} diff --git a/lib/norick.js b/lib/norick.js new file mode 100644 index 0000000..37e4c90 --- /dev/null +++ b/lib/norick.js @@ -0,0 +1,65 @@ +// lib/norick.js — No-Rick ZK proof client. Client-side halo2 proof generation via WASM. + +let wasm = null; +let wasmReady = false; + +/** + * Load the norick-wasm module (built by wasm-pack). + * Falls back gracefully if WASM is not available. + */ +export async function loadWasm() { + if (wasmReady) return wasm; + try { + const mod = await import('/pkg/norick_wasm.js'); + await mod.default(); + wasm = mod; + wasmReady = true; + return wasm; + } catch (e) { + console.warn('norick-wasm not available', e); + return null; + } +} + +export function isWasmReady() { return wasmReady; } + +/** + * Generate a halo2 proof that `secretWord` does not contain `forbidden`. + * Runs the full circuit + prover client-side in WASM. + * @param {string} secretWord — the user's secret (max 20 chars) + * @param {string} forbidden — the forbidden word (e.g. "rick") + * @returns {string} base64-encoded proof bytes + */ +export function generateProof(secretWord, forbidden) { + if (!wasmReady) throw new Error('WASM not loaded'); + return wasm.generate_proof(secretWord, forbidden); +} + +/** + * Encode circuit instances for the forbidden word. + * Returns Uint8Array of serialized field elements. + */ +export function encodeInstances(forbidden) { + if (!wasmReady) throw new Error('WASM not loaded'); + return wasm.encode_instances(forbidden); +} + +/** + * Build the JSON ExecuteMsg for the zk-wasmvm-test contract. + * @param {number} cid — circuit ID (code_id) + * @param {string} forbidden — the forbidden word + * @param {string} proofB64 — base64-encoded proof bytes + * @returns {string} JSON string of the execute message + */ +export function encodeProofMsg(cid, forbidden, proofB64) { + if (!wasmReady) throw new Error('WASM not loaded'); + return wasm.encode_proof_msg(BigInt(cid), forbidden, proofB64); +} + +/** + * Get hex representation of a string's field element (debugging). + */ +export function strToFieldHex(s) { + if (!wasmReady) throw new Error('WASM not loaded'); + return wasm.str_to_field_hex(s); +} diff --git a/lib/query-cache.js b/lib/query-cache.js new file mode 100644 index 0000000..f724765 --- /dev/null +++ b/lib/query-cache.js @@ -0,0 +1,174 @@ +// lib/query-cache.js — Lightweight query cache for vanilla JS ESM +// Minimal tanstack-query-like cache with staleTime, deduplication, and invalidation. + +/** + * @typedef {Object} CacheEntry + * @property {*} data - Cached result + * @property {number} updatedAt - Timestamp when data was fetched + * @property {Promise} inflight - In-flight promise (for dedup), or null + * @property {string} status - 'fresh' | 'stale' | 'fetching' | 'error' + * @property {Error} error - Last error, if any + */ + +export class QueryCache { + /** @param {{ staleTime?: number, gcTime?: number }} [defaults] */ + constructor(defaults = {}) { + /** @type {Map} */ + this._entries = new Map(); + this._staleTime = defaults.staleTime ?? 30_000; // 30 s default + this._gcTime = defaults.gcTime ?? 300_000; // 5 min default + this._gcHandle = null; + } + + /** + * Normalise a cache key. Accepts string or array. + * Arrays are JSON-stringified so `['route', {src:'a'}]` works. + * @param {string|Array} key + * @returns {string} + */ + static _key(key) { + return Array.isArray(key) ? JSON.stringify(key) : String(key); + } + + /** + * Query the cache. Returns cached data if fresh, otherwise calls fetcher. + * Concurrent calls with the same key share the same in-flight promise. + * + * @param {string|Array} key + * @param {() => Promise} fetcher + * @param {{ staleTime?: number, forceRefresh?: boolean }} [opts] + * @returns {Promise<*>} + */ + async query(key, fetcher, opts = {}) { + const k = QueryCache._key(key); + const staleTime = opts.staleTime ?? this._staleTime; + const entry = this._entries.get(k); + + // Return cached data if fresh + if (entry && !opts.forceRefresh) { + const age = Date.now() - entry.updatedAt; + if (age < staleTime && entry.status === 'fresh') { + return entry.data; + } + // De-duplicate: if a fetch is already in-flight, piggyback on it + if (entry.inflight) { + return entry.inflight; + } + } + + // Create or reuse entry + const current = entry || { data: null, updatedAt: 0, inflight: null, status: 'fetching', error: null }; + if (!entry) this._entries.set(k, current); + + current.status = 'fetching'; + current.inflight = fetcher() + .then(data => { + current.data = data; + current.updatedAt = Date.now(); + current.status = 'fresh'; + current.error = null; + current.inflight = null; + return data; + }) + .catch(err => { + current.status = 'error'; + current.error = err; + current.inflight = null; + throw err; + }); + + return current.inflight; + } + + /** + * Get cached data synchronously (may be stale or null). + * @param {string|Array} key + * @returns {*|null} + */ + peek(key) { + const entry = this._entries.get(QueryCache._key(key)); + return entry ? entry.data : null; + } + + /** + * Manually set data in the cache. + * @param {string|Array} key + * @param {*} data + */ + set(key, data) { + const k = QueryCache._key(key); + this._entries.set(k, { + data, + updatedAt: Date.now(), + inflight: null, + status: 'fresh', + error: null, + }); + } + + /** + * Invalidate a key — marks it stale so next query() re-fetches. + * @param {string|Array} key + */ + invalidate(key) { + const entry = this._entries.get(QueryCache._key(key)); + if (entry) { + entry.status = 'stale'; + entry.updatedAt = 0; + } + } + + /** + * Invalidate all keys whose normalised string starts with a prefix. + * Useful for invalidating `['chains']`, `['chains', 'morocco-1']`, etc. + * @param {string|Array} prefix + */ + invalidatePrefix(prefix) { + const p = QueryCache._key(prefix); + for (const [k, entry] of this._entries) { + if (k.startsWith(p)) { + entry.status = 'stale'; + entry.updatedAt = 0; + } + } + } + + /** Remove a single key from the cache entirely. */ + remove(key) { + this._entries.delete(QueryCache._key(key)); + } + + /** Clear the entire cache. */ + clear() { + this._entries.clear(); + } + + /** Number of entries currently cached. */ + get size() { + return this._entries.size; + } + + /** + * Start periodic garbage collection of entries older than gcTime. + * @param {number} [interval=60000] — check interval in ms + */ + startGC(interval = 60_000) { + this.stopGC(); + this._gcHandle = setInterval(() => { + const now = Date.now(); + for (const [k, entry] of this._entries) { + if (!entry.inflight && (now - entry.updatedAt) > this._gcTime) { + this._entries.delete(k); + } + } + }, interval); + } + + /** Stop periodic garbage collection. */ + stopGC() { + if (this._gcHandle) { + clearInterval(this._gcHandle); + this._gcHandle = null; + } + } +} diff --git a/lib/terp721-account.js b/lib/terp721-account.js new file mode 100644 index 0000000..40db898 --- /dev/null +++ b/lib/terp721-account.js @@ -0,0 +1,2 @@ +var kn=Object.create;var Ke=Object.defineProperty;var Fn=Object.getOwnPropertyDescriptor;var Mn=Object.getOwnPropertyNames;var Un=Object.getPrototypeOf,Bn=Object.prototype.hasOwnProperty;var Dn=(t,e,r)=>e in t?Ke(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r;var E=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var qn=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of Mn(e))!Bn.call(t,i)&&i!==r&&Ke(t,i,{get:()=>e[i],enumerable:!(n=Fn(e,i))||n.enumerable});return t};var Et=(t,e,r)=>(r=t!=null?kn(Un(t)):{},qn(e||!t||!t.__esModule?Ke(r,"default",{value:t,enumerable:!0}):r,t));var l=(t,e,r)=>Dn(t,typeof e!="symbol"?e+"":e,r);var xe=E((ki,Nt)=>{Nt.exports=w;var J=null;try{J=new WebAssembly.Instance(new WebAssembly.Module(new Uint8Array([0,97,115,109,1,0,0,0,1,13,2,96,0,1,127,96,4,127,127,127,127,1,127,3,7,6,0,1,1,1,1,1,6,6,1,127,1,65,0,11,7,50,6,3,109,117,108,0,1,5,100,105,118,95,115,0,2,5,100,105,118,95,117,0,3,5,114,101,109,95,115,0,4,5,114,101,109,95,117,0,5,8,103,101,116,95,104,105,103,104,0,0,10,191,1,6,4,0,35,0,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,126,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,127,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,128,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,129,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,130,34,4,66,32,135,167,36,0,32,4,167,11])),{}).exports}catch{}function w(t,e,r){this.low=t|0,this.high=e|0,this.unsigned=!!r}w.prototype.__isLong__;Object.defineProperty(w.prototype,"__isLong__",{value:!0});function B(t){return(t&&t.__isLong__)===!0}w.isLong=B;var At={},vt={};function ue(t,e){var r,n,i;return e?(t>>>=0,(i=0<=t&&t<256)&&(n=vt[t],n)?n:(r=b(t,(t|0)<0?-1:0,!0),i&&(vt[t]=r),r)):(t|=0,(i=-128<=t&&t<128)&&(n=At[t],n)?n:(r=b(t,t<0?-1:0,!1),i&&(At[t]=r),r))}w.fromInt=ue;function L(t,e){if(isNaN(t))return e?de:Y;if(e){if(t<0)return de;if(t>=xt)return It}else{if(t<=-bt)return U;if(t+1>=bt)return Rt}return t<0?L(-t,e).neg():b(t%me|0,t/me|0,e)}w.fromNumber=L;function b(t,e,r){return new w(t,e,r)}w.fromBits=b;var Me=Math.pow;function je(t,e,r){if(t.length===0)throw Error("empty string");if(t==="NaN"||t==="Infinity"||t==="+Infinity"||t==="-Infinity")return Y;if(typeof e=="number"?(r=e,e=!1):e=!!e,r=r||10,r<2||360)throw Error("interior hyphen");if(n===0)return je(t.substring(1),e,r).neg();for(var i=L(Me(r,8)),o=Y,s=0;s>>0:this.low};c.toNumber=function(){return this.unsigned?(this.high>>>0)*me+(this.low>>>0):this.high*me+(this.low>>>0)};c.toString=function(e){if(e=e||10,e<2||36>>0,f=d.toString(e);if(s=a,s.isZero())return f+u;for(;f.length<6;)f="0"+f;u=""+f+u}};c.getHighBits=function(){return this.high};c.getHighBitsUnsigned=function(){return this.high>>>0};c.getLowBits=function(){return this.low};c.getLowBitsUnsigned=function(){return this.low>>>0};c.getNumBitsAbs=function(){if(this.isNegative())return this.eq(U)?64:this.neg().getNumBitsAbs();for(var e=this.high!=0?this.high:this.low,r=31;r>0&&(e&1<=0};c.isOdd=function(){return(this.low&1)===1};c.isEven=function(){return(this.low&1)===0};c.equals=function(e){return B(e)||(e=V(e)),this.unsigned!==e.unsigned&&this.high>>>31===1&&e.high>>>31===1?!1:this.high===e.high&&this.low===e.low};c.eq=c.equals;c.notEquals=function(e){return!this.eq(e)};c.neq=c.notEquals;c.ne=c.notEquals;c.lessThan=function(e){return this.comp(e)<0};c.lt=c.lessThan;c.lessThanOrEqual=function(e){return this.comp(e)<=0};c.lte=c.lessThanOrEqual;c.le=c.lessThanOrEqual;c.greaterThan=function(e){return this.comp(e)>0};c.gt=c.greaterThan;c.greaterThanOrEqual=function(e){return this.comp(e)>=0};c.gte=c.greaterThanOrEqual;c.ge=c.greaterThanOrEqual;c.compare=function(e){if(B(e)||(e=V(e)),this.eq(e))return 0;var r=this.isNegative(),n=e.isNegative();return r&&!n?-1:!r&&n?1:this.unsigned?e.high>>>0>this.high>>>0||e.high===this.high&&e.low>>>0>this.low>>>0?-1:1:this.sub(e).isNegative()?-1:1};c.comp=c.compare;c.negate=function(){return!this.unsigned&&this.eq(U)?U:this.not().add(pe)};c.neg=c.negate;c.add=function(e){B(e)||(e=V(e));var r=this.high>>>16,n=this.high&65535,i=this.low>>>16,o=this.low&65535,s=e.high>>>16,u=e.high&65535,a=e.low>>>16,d=e.low&65535,f=0,y=0,A=0,F=0;return F+=o+d,A+=F>>>16,F&=65535,A+=i+a,y+=A>>>16,A&=65535,y+=n+u,f+=y>>>16,y&=65535,f+=r+s,f&=65535,b(A<<16|F,f<<16|y,this.unsigned)};c.subtract=function(e){return B(e)||(e=V(e)),this.add(e.neg())};c.sub=c.subtract;c.multiply=function(e){if(this.isZero())return Y;if(B(e)||(e=V(e)),J){var r=J.mul(this.low,this.high,e.low,e.high);return b(r,J.get_high(),this.unsigned)}if(e.isZero())return Y;if(this.eq(U))return e.isOdd()?U:Y;if(e.eq(U))return this.isOdd()?U:Y;if(this.isNegative())return e.isNegative()?this.neg().mul(e.neg()):this.neg().mul(e).neg();if(e.isNegative())return this.mul(e.neg()).neg();if(this.lt(Ot)&&e.lt(Ot))return L(this.toNumber()*e.toNumber(),this.unsigned);var n=this.high>>>16,i=this.high&65535,o=this.low>>>16,s=this.low&65535,u=e.high>>>16,a=e.high&65535,d=e.low>>>16,f=e.low&65535,y=0,A=0,F=0,Fe=0;return Fe+=s*f,F+=Fe>>>16,Fe&=65535,F+=o*f,A+=F>>>16,F&=65535,F+=s*d,A+=F>>>16,F&=65535,A+=i*f,y+=A>>>16,A&=65535,A+=o*d,y+=A>>>16,A&=65535,A+=s*a,y+=A>>>16,A&=65535,y+=n*f+i*d+o*a+s*u,y&=65535,b(F<<16|Fe,y<<16|A,this.unsigned)};c.mul=c.multiply;c.divide=function(e){if(B(e)||(e=V(e)),e.isZero())throw Error("division by zero");if(J){if(!this.unsigned&&this.high===-2147483648&&e.low===-1&&e.high===-1)return this;var r=(this.unsigned?J.div_u:J.div_s)(this.low,this.high,e.low,e.high);return b(r,J.get_high(),this.unsigned)}if(this.isZero())return this.unsigned?de:Y;var n,i,o;if(this.unsigned){if(e.unsigned||(e=e.toUnsigned()),e.gt(this))return de;if(e.gt(this.shru(1)))return St;o=de}else{if(this.eq(U)){if(e.eq(pe)||e.eq(Qe))return U;if(e.eq(U))return pe;var s=this.shr(1);return n=s.div(e).shl(1),n.eq(Y)?e.isNegative()?pe:Qe:(i=this.sub(e.mul(n)),o=n.add(i.div(e)),o)}else if(e.eq(U))return this.unsigned?de:Y;if(this.isNegative())return e.isNegative()?this.neg().div(e.neg()):this.neg().div(e).neg();if(e.isNegative())return this.div(e.neg()).neg();o=Y}for(i=this;i.gte(e);){n=Math.max(1,Math.floor(i.toNumber()/e.toNumber()));for(var u=Math.ceil(Math.log(n)/Math.LN2),a=u<=48?1:Me(2,u-48),d=L(n),f=d.mul(e);f.isNegative()||f.gt(i);)n-=a,d=L(n,this.unsigned),f=d.mul(e);d.isZero()&&(d=pe),o=o.add(d),i=i.sub(f)}return o};c.div=c.divide;c.modulo=function(e){if(B(e)||(e=V(e)),J){var r=(this.unsigned?J.rem_u:J.rem_s)(this.low,this.high,e.low,e.high);return b(r,J.get_high(),this.unsigned)}return this.sub(this.div(e).mul(e))};c.mod=c.modulo;c.rem=c.modulo;c.not=function(){return b(~this.low,~this.high,this.unsigned)};c.and=function(e){return B(e)||(e=V(e)),b(this.low&e.low,this.high&e.high,this.unsigned)};c.or=function(e){return B(e)||(e=V(e)),b(this.low|e.low,this.high|e.high,this.unsigned)};c.xor=function(e){return B(e)||(e=V(e)),b(this.low^e.low,this.high^e.high,this.unsigned)};c.shiftLeft=function(e){return B(e)&&(e=e.toInt()),(e&=63)===0?this:e<32?b(this.low<>>32-e,this.unsigned):b(0,this.low<>>e|this.high<<32-e,this.high>>e,this.unsigned):b(this.high>>e-32,this.high>=0?0:-1,this.unsigned)};c.shr=c.shiftRight;c.shiftRightUnsigned=function(e){if(B(e)&&(e=e.toInt()),e&=63,e===0)return this;var r=this.high;if(e<32){var n=this.low;return b(n>>>e|r<<32-e,r>>>e,this.unsigned)}else return e===32?b(r,0,this.unsigned):b(r>>>e-32,0,this.unsigned)};c.shru=c.shiftRightUnsigned;c.shr_u=c.shiftRightUnsigned;c.toSigned=function(){return this.unsigned?b(this.low,this.high,!1):this};c.toUnsigned=function(){return this.unsigned?this:b(this.low,this.high,!0)};c.toBytes=function(e){return e?this.toBytesLE():this.toBytesBE()};c.toBytesLE=function(){var e=this.high,r=this.low;return[r&255,r>>>8&255,r>>>16&255,r>>>24,e&255,e>>>8&255,e>>>16&255,e>>>24]};c.toBytesBE=function(){var e=this.high,r=this.low;return[e>>>24,e>>>16&255,e>>>8&255,e&255,r>>>24,r>>>16&255,r>>>8&255,r&255]};w.fromBytes=function(e,r,n){return n?w.fromBytesLE(e,r):w.fromBytesBE(e,r)};w.fromBytesLE=function(e,r){return new w(e[0]|e[1]<<8|e[2]<<16|e[3]<<24,e[4]|e[5]<<8|e[6]<<16|e[7]<<24,r)};w.fromBytesBE=function(e,r){return new w(e[4]<<24|e[5]<<16|e[6]<<8|e[7],e[0]<<24|e[1]<<16|e[2]<<8|e[3],r)}});var Tt=E((Fi,Pt)=>{"use strict";Pt.exports=Ln;function Ln(t,e){for(var r=new Array(arguments.length-1),n=0,i=2,o=!0;i{"use strict";var Ue=Mt;Ue.length=function(e){var r=e.length;if(!r)return 0;for(var n=0;--r%4>1&&e.charAt(r)==="=";)++n;return Math.ceil(e.length*3)/4-n};var ye=new Array(64),Ft=new Array(123);for(z=0;z<64;)Ft[ye[z]=z<26?z+65:z<52?z+71:z<62?z-4:z-59|43]=z++;var z;Ue.encode=function(e,r,n){for(var i=null,o=[],s=0,u=0,a;r>2],a=(d&3)<<4,u=1;break;case 1:o[s++]=ye[a|d>>4],a=(d&15)<<2,u=2;break;case 2:o[s++]=ye[a|d>>6],o[s++]=ye[d&63],u=0;break}s>8191&&((i||(i=[])).push(String.fromCharCode.apply(String,o)),s=0)}return u&&(o[s++]=ye[a],o[s++]=61,u===1&&(o[s++]=61)),i?(s&&i.push(String.fromCharCode.apply(String,o.slice(0,s))),i.join("")):String.fromCharCode.apply(String,o.slice(0,s))};var kt="invalid encoding";Ue.decode=function(e,r,n){for(var i=n,o=0,s,u=0;u1)break;if((a=Ft[a])===void 0)throw Error(kt);switch(o){case 0:s=a,o=1;break;case 1:r[n++]=s<<2|(a&48)>>4,s=a,o=2;break;case 2:r[n++]=(s&15)<<4|(a&60)>>2,s=a,o=3;break;case 3:r[n++]=(s&3)<<6|a,o=0;break}}if(o===1)throw Error(kt);return n-i};Ue.test=function(e){return/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(e)}});var Dt=E((Ui,Bt)=>{"use strict";Bt.exports=Be;function Be(){this._listeners={}}Be.prototype.on=function(e,r,n){return(this._listeners[e]||(this._listeners[e]=[])).push({fn:r,ctx:n||this}),this};Be.prototype.off=function(e,r){if(e===void 0)this._listeners={};else if(r===void 0)this._listeners[e]=[];else for(var n=this._listeners[e],i=0;i{"use strict";Zt.exports=qt(qt);function qt(t){return typeof Float32Array<"u"?(function(){var e=new Float32Array([-0]),r=new Uint8Array(e.buffer),n=r[3]===128;function i(a,d,f){e[0]=a,d[f]=r[0],d[f+1]=r[1],d[f+2]=r[2],d[f+3]=r[3]}function o(a,d,f){e[0]=a,d[f]=r[3],d[f+1]=r[2],d[f+2]=r[1],d[f+3]=r[0]}t.writeFloatLE=n?i:o,t.writeFloatBE=n?o:i;function s(a,d){return r[0]=a[d],r[1]=a[d+1],r[2]=a[d+2],r[3]=a[d+3],e[0]}function u(a,d){return r[3]=a[d],r[2]=a[d+1],r[1]=a[d+2],r[0]=a[d+3],e[0]}t.readFloatLE=n?s:u,t.readFloatBE=n?u:s})():(function(){function e(n,i,o,s){var u=i<0?1:0;if(u&&(i=-i),i===0)n(1/i>0?0:2147483648,o,s);else if(isNaN(i))n(2143289344,o,s);else if(i>34028234663852886e22)n((u<<31|2139095040)>>>0,o,s);else if(i<11754943508222875e-54)n((u<<31|Math.round(i/1401298464324817e-60))>>>0,o,s);else{var a=Math.floor(Math.log(i)/Math.LN2),d=Math.round(i*Math.pow(2,-a)*8388608)&8388607;n((u<<31|a+127<<23|d)>>>0,o,s)}}t.writeFloatLE=e.bind(null,Jt),t.writeFloatBE=e.bind(null,Lt);function r(n,i,o){var s=n(i,o),u=(s>>31)*2+1,a=s>>>23&255,d=s&8388607;return a===255?d?NaN:u*(1/0):a===0?u*1401298464324817e-60*d:u*Math.pow(2,a-150)*(d+8388608)}t.readFloatLE=r.bind(null,Yt),t.readFloatBE=r.bind(null,Ht)})(),typeof Float64Array<"u"?(function(){var e=new Float64Array([-0]),r=new Uint8Array(e.buffer),n=r[7]===128;function i(a,d,f){e[0]=a,d[f]=r[0],d[f+1]=r[1],d[f+2]=r[2],d[f+3]=r[3],d[f+4]=r[4],d[f+5]=r[5],d[f+6]=r[6],d[f+7]=r[7]}function o(a,d,f){e[0]=a,d[f]=r[7],d[f+1]=r[6],d[f+2]=r[5],d[f+3]=r[4],d[f+4]=r[3],d[f+5]=r[2],d[f+6]=r[1],d[f+7]=r[0]}t.writeDoubleLE=n?i:o,t.writeDoubleBE=n?o:i;function s(a,d){return r[0]=a[d],r[1]=a[d+1],r[2]=a[d+2],r[3]=a[d+3],r[4]=a[d+4],r[5]=a[d+5],r[6]=a[d+6],r[7]=a[d+7],e[0]}function u(a,d){return r[7]=a[d],r[6]=a[d+1],r[5]=a[d+2],r[4]=a[d+3],r[3]=a[d+4],r[2]=a[d+5],r[1]=a[d+6],r[0]=a[d+7],e[0]}t.readDoubleLE=n?s:u,t.readDoubleBE=n?u:s})():(function(){function e(n,i,o,s,u,a){var d=s<0?1:0;if(d&&(s=-s),s===0)n(0,u,a+i),n(1/s>0?0:2147483648,u,a+o);else if(isNaN(s))n(0,u,a+i),n(2146959360,u,a+o);else if(s>17976931348623157e292)n(0,u,a+i),n((d<<31|2146435072)>>>0,u,a+o);else{var f;if(s<22250738585072014e-324)f=s/5e-324,n(f>>>0,u,a+i),n((d<<31|f/4294967296)>>>0,u,a+o);else{var y=Math.floor(Math.log(s)/Math.LN2);y===1024&&(y=1023),f=s*Math.pow(2,-y),n(f*4503599627370496>>>0,u,a+i),n((d<<31|y+1023<<20|f*1048576&1048575)>>>0,u,a+o)}}}t.writeDoubleLE=e.bind(null,Jt,0,4),t.writeDoubleBE=e.bind(null,Lt,4,0);function r(n,i,o,s,u){var a=n(s,u+i),d=n(s,u+o),f=(d>>31)*2+1,y=d>>>20&2047,A=4294967296*(d&1048575)+a;return y===2047?A?NaN:f*(1/0):y===0?f*5e-324*A:f*Math.pow(2,y-1075)*(A+4503599627370496)}t.readDoubleLE=r.bind(null,Yt,0,4),t.readDoubleBE=r.bind(null,Ht,4,0)})(),t}function Jt(t,e,r){e[r]=t&255,e[r+1]=t>>>8&255,e[r+2]=t>>>16&255,e[r+3]=t>>>24}function Lt(t,e,r){e[r]=t>>>24,e[r+1]=t>>>16&255,e[r+2]=t>>>8&255,e[r+3]=t&255}function Yt(t,e){return(t[e]|t[e+1]<<8|t[e+2]<<16|t[e+3]<<24)>>>0}function Ht(t,e){return(t[e]<<24|t[e+1]<<16|t[e+2]<<8|t[e+3])>>>0}});var Vt=E((exports,module)=>{"use strict";module.exports=inquire;function inquire(moduleName){try{var mod=eval("quire".replace(/^/,"re"))(moduleName);if(mod&&(mod.length||Object.keys(mod).length))return mod}catch(t){}return null}});var Gt=E(zt=>{"use strict";var et=zt;et.length=function(e){for(var r=0,n=0,i=0;i191&&a<224?s[u++]=(a&31)<<6|e[r++]&63:a>239&&a<365?(a=((a&7)<<18|(e[r++]&63)<<12|(e[r++]&63)<<6|e[r++]&63)-65536,s[u++]=55296+(a>>10),s[u++]=56320+(a&1023)):s[u++]=(a&15)<<12|(e[r++]&63)<<6|e[r++]&63,u>8191&&((o||(o=[])).push(String.fromCharCode.apply(String,s)),u=0);return o?(u&&o.push(String.fromCharCode.apply(String,s.slice(0,u))),o.join("")):String.fromCharCode.apply(String,s.slice(0,u))};et.write=function(e,r,n){for(var i=n,o,s,u=0;u>6|192,r[n++]=o&63|128):(o&64512)===55296&&((s=e.charCodeAt(u+1))&64512)===56320?(o=65536+((o&1023)<<10)+(s&1023),++u,r[n++]=o>>18|240,r[n++]=o>>12&63|128,r[n++]=o>>6&63|128,r[n++]=o&63|128):(r[n++]=o>>12|224,r[n++]=o>>6&63|128,r[n++]=o&63|128);return n-i}});var Kt=E((qi,$t)=>{"use strict";$t.exports=Yn;function Yn(t,e,r){var n=r||8192,i=n>>>1,o=null,s=n;return function(a){if(a<1||a>i)return t(a);s+a>n&&(o=t(n),s=0);var d=e.call(o,s,s+=a);return s&7&&(s=(s|7)+1),d}}});var Qt=E((Ji,Xt)=>{"use strict";Xt.exports=T;var Se=re();function T(t,e){this.lo=t>>>0,this.hi=e>>>0}var ce=T.zero=new T(0,0);ce.toNumber=function(){return 0};ce.zzEncode=ce.zzDecode=function(){return this};ce.length=function(){return 1};var Hn=T.zeroHash="\0\0\0\0\0\0\0\0";T.fromNumber=function(e){if(e===0)return ce;var r=e<0;r&&(e=-e);var n=e>>>0,i=(e-n)/4294967296>>>0;return r&&(i=~i>>>0,n=~n>>>0,++n>4294967295&&(n=0,++i>4294967295&&(i=0))),new T(n,i)};T.from=function(e){if(typeof e=="number")return T.fromNumber(e);if(Se.isString(e))if(Se.Long)e=Se.Long.fromString(e);else return T.fromNumber(parseInt(e,10));return e.low||e.high?new T(e.low>>>0,e.high>>>0):ce};T.prototype.toNumber=function(e){if(!e&&this.hi>>>31){var r=~this.lo+1>>>0,n=~this.hi>>>0;return r||(n=n+1>>>0),-(r+n*4294967296)}return this.lo+this.hi*4294967296};T.prototype.toLong=function(e){return Se.Long?new Se.Long(this.lo|0,this.hi|0,!!e):{low:this.lo|0,high:this.hi|0,unsigned:!!e}};var te=String.prototype.charCodeAt;T.fromHash=function(e){return e===Hn?ce:new T((te.call(e,0)|te.call(e,1)<<8|te.call(e,2)<<16|te.call(e,3)<<24)>>>0,(te.call(e,4)|te.call(e,5)<<8|te.call(e,6)<<16|te.call(e,7)<<24)>>>0)};T.prototype.toHash=function(){return String.fromCharCode(this.lo&255,this.lo>>>8&255,this.lo>>>16&255,this.lo>>>24,this.hi&255,this.hi>>>8&255,this.hi>>>16&255,this.hi>>>24)};T.prototype.zzEncode=function(){var e=this.hi>>31;return this.hi=((this.hi<<1|this.lo>>>31)^e)>>>0,this.lo=(this.lo<<1^e)>>>0,this};T.prototype.zzDecode=function(){var e=-(this.lo&1);return this.lo=((this.lo>>>1|this.hi<<31)^e)>>>0,this.hi=(this.hi>>>1^e)>>>0,this};T.prototype.length=function(){var e=this.lo,r=(this.lo>>>28|this.hi<<4)>>>0,n=this.hi>>>24;return n===0?r===0?e<16384?e<128?1:2:e<2097152?3:4:r<16384?r<128?5:6:r<2097152?7:8:n<128?9:10}});var re=E(tt=>{"use strict";var h=tt;h.asPromise=Tt();h.base64=Ut();h.EventEmitter=Dt();h.float=Wt();h.inquire=Vt();h.utf8=Gt();h.pool=Kt();h.LongBits=Qt();h.isNode=!!(typeof global<"u"&&global&&global.process&&global.process.versions&&global.process.versions.node);h.global=h.isNode&&global||typeof window<"u"&&window||typeof self<"u"&&self||tt;h.emptyArray=Object.freeze?Object.freeze([]):[];h.emptyObject=Object.freeze?Object.freeze({}):{};h.isInteger=Number.isInteger||function(e){return typeof e=="number"&&isFinite(e)&&Math.floor(e)===e};h.isString=function(e){return typeof e=="string"||e instanceof String};h.isObject=function(e){return e&&typeof e=="object"};h.isset=h.isSet=function(e,r){var n=e[r];return n!=null&&e.hasOwnProperty(r)?typeof n!="object"||(Array.isArray(n)?n.length:Object.keys(n).length)>0:!1};h.Buffer=(function(){try{var t=h.inquire("buffer").Buffer;return t.prototype.utf8Write?t:null}catch{return null}})();h._Buffer_from=null;h._Buffer_allocUnsafe=null;h.newBuffer=function(e){return typeof e=="number"?h.Buffer?h._Buffer_allocUnsafe(e):new h.Array(e):h.Buffer?h._Buffer_from(e):typeof Uint8Array>"u"?e:new Uint8Array(e)};h.Array=typeof Uint8Array<"u"?Uint8Array:Array;h.Long=h.global.dcodeIO&&h.global.dcodeIO.Long||h.global.Long||h.inquire("long");h.key2Re=/^true|false|0|1$/;h.key32Re=/^-?(?:0|[1-9][0-9]*)$/;h.key64Re=/^(?:[\\x00-\\xff]{8}|-?(?:0|[1-9][0-9]*))$/;h.longToHash=function(e){return e?h.LongBits.from(e).toHash():h.LongBits.zeroHash};h.longFromHash=function(e,r){var n=h.LongBits.fromHash(e);return h.Long?h.Long.fromBits(n.lo,n.hi,r):n.toNumber(!!r)};function jt(t,e,r){for(var n=Object.keys(e),i=0;i-1;--o)if(r[i[o]]===1&&this[i[o]]!==void 0&&this[i[o]]!==null)return i[o]}};h.oneOfSetter=function(e){return function(r){for(var n=0;n{"use strict";ir.exports=_;var H=re(),rt,De=H.LongBits,tr=H.base64,rr=H.utf8;function Re(t,e,r){this.fn=t,this.len=e,this.next=void 0,this.val=r}function it(){}function Zn(t){this.head=t.head,this.tail=t.tail,this.len=t.len,this.next=t.states}function _(){this.len=0,this.head=new Re(it,0,0),this.tail=this.head,this.states=null}var nr=function(){return H.Buffer?function(){return(_.create=function(){return new rt})()}:function(){return new _}};_.create=nr();_.alloc=function(e){return new H.Array(e)};H.Array!==Array&&(_.alloc=H.pool(_.alloc,H.Array.prototype.subarray));_.prototype._push=function(e,r,n){return this.tail=this.tail.next=new Re(e,r,n),this.len+=r,this};function ot(t,e,r){e[r]=t&255}function Wn(t,e,r){for(;t>127;)e[r++]=t&127|128,t>>>=7;e[r]=t}function st(t,e){this.len=t,this.next=void 0,this.val=e}st.prototype=Object.create(Re.prototype);st.prototype.fn=Wn;_.prototype.uint32=function(e){return this.len+=(this.tail=this.tail.next=new st((e=e>>>0)<128?1:e<16384?2:e<2097152?3:e<268435456?4:5,e)).len,this};_.prototype.int32=function(e){return e<0?this._push(at,10,De.fromNumber(e)):this.uint32(e)};_.prototype.sint32=function(e){return this.uint32((e<<1^e>>31)>>>0)};function at(t,e,r){for(;t.hi;)e[r++]=t.lo&127|128,t.lo=(t.lo>>>7|t.hi<<25)>>>0,t.hi>>>=7;for(;t.lo>127;)e[r++]=t.lo&127|128,t.lo=t.lo>>>7;e[r++]=t.lo}_.prototype.uint64=function(e){var r=De.from(e);return this._push(at,r.length(),r)};_.prototype.int64=_.prototype.uint64;_.prototype.sint64=function(e){var r=De.from(e).zzEncode();return this._push(at,r.length(),r)};_.prototype.bool=function(e){return this._push(ot,1,e?1:0)};function nt(t,e,r){e[r]=t&255,e[r+1]=t>>>8&255,e[r+2]=t>>>16&255,e[r+3]=t>>>24}_.prototype.fixed32=function(e){return this._push(nt,4,e>>>0)};_.prototype.sfixed32=_.prototype.fixed32;_.prototype.fixed64=function(e){var r=De.from(e);return this._push(nt,4,r.lo)._push(nt,4,r.hi)};_.prototype.sfixed64=_.prototype.fixed64;_.prototype.float=function(e){return this._push(H.float.writeFloatLE,4,e)};_.prototype.double=function(e){return this._push(H.float.writeDoubleLE,8,e)};var Vn=H.Array.prototype.set?function(e,r,n){r.set(e,n)}:function(e,r,n){for(var i=0;i>>0;if(!r)return this._push(ot,1,0);if(H.isString(e)){var n=_.alloc(r=tr.length(e));tr.decode(e,n,0),e=n}return this.uint32(r)._push(Vn,r,e)};_.prototype.string=function(e){var r=rr.length(e);return r?this.uint32(r)._push(rr.write,r,e):this._push(ot,1,0)};_.prototype.fork=function(){return this.states=new Zn(this),this.head=this.tail=new Re(it,0,0),this.len=0,this};_.prototype.reset=function(){return this.states?(this.head=this.states.head,this.tail=this.states.tail,this.len=this.states.len,this.states=this.states.next):(this.head=this.tail=new Re(it,0,0),this.len=0),this};_.prototype.ldelim=function(){var e=this.head,r=this.tail,n=this.len;return this.reset().uint32(n),n&&(this.tail.next=e.next,this.tail=r,this.len+=n),this};_.prototype.finish=function(){for(var e=this.head.next,r=this.constructor.alloc(this.len),n=0;e;)e.fn(e.val,r,n),n+=e.len,e=e.next;return r};_._configure=function(t){rt=t,_.create=nr(),rt._configure()}});var ar=E((Hi,sr)=>{"use strict";sr.exports=X;var or=dt();(X.prototype=Object.create(or.prototype)).constructor=X;var ne=re();function X(){or.call(this)}X._configure=function(){X.alloc=ne._Buffer_allocUnsafe,X.writeBytesBuffer=ne.Buffer&&ne.Buffer.prototype instanceof Uint8Array&&ne.Buffer.prototype.set.name==="set"?function(e,r,n){r.set(e,n)}:function(e,r,n){if(e.copy)e.copy(r,n,0,e.length);else for(var i=0;i>>0;return this.uint32(r),r&&this._push(X.writeBytesBuffer,r,e),this};function zn(t,e,r){t.length<40?ne.utf8.write(t,e,r):e.utf8Write?e.utf8Write(t,r):e.write(t,r)}X.prototype.string=function(e){var r=ne.Buffer.byteLength(e);return this.uint32(r),r&&this._push(zn,r,e),this};X._configure()});var ft=E((Zi,lr)=>{"use strict";lr.exports=R;var Q=re(),ct,cr=Q.LongBits,Gn=Q.utf8;function G(t,e){return RangeError("index out of range: "+t.pos+" + "+(e||1)+" > "+t.len)}function R(t){this.buf=t,this.pos=0,this.len=t.length}var dr=typeof Uint8Array<"u"?function(e){if(e instanceof Uint8Array||Array.isArray(e))return new R(e);throw Error("illegal buffer")}:function(e){if(Array.isArray(e))return new R(e);throw Error("illegal buffer")},fr=function(){return Q.Buffer?function(r){return(R.create=function(i){return Q.Buffer.isBuffer(i)?new ct(i):dr(i)})(r)}:dr};R.create=fr();R.prototype._slice=Q.Array.prototype.subarray||Q.Array.prototype.slice;R.prototype.uint32=(function(){var e=4294967295;return function(){if(e=(this.buf[this.pos]&127)>>>0,this.buf[this.pos++]<128||(e=(e|(this.buf[this.pos]&127)<<7)>>>0,this.buf[this.pos++]<128)||(e=(e|(this.buf[this.pos]&127)<<14)>>>0,this.buf[this.pos++]<128)||(e=(e|(this.buf[this.pos]&127)<<21)>>>0,this.buf[this.pos++]<128)||(e=(e|(this.buf[this.pos]&15)<<28)>>>0,this.buf[this.pos++]<128))return e;if((this.pos+=5)>this.len)throw this.pos=this.len,G(this,10);return e}})();R.prototype.int32=function(){return this.uint32()|0};R.prototype.sint32=function(){var e=this.uint32();return e>>>1^-(e&1)|0};function ut(){var t=new cr(0,0),e=0;if(this.len-this.pos>4){for(;e<4;++e)if(t.lo=(t.lo|(this.buf[this.pos]&127)<>>0,this.buf[this.pos++]<128)return t;if(t.lo=(t.lo|(this.buf[this.pos]&127)<<28)>>>0,t.hi=(t.hi|(this.buf[this.pos]&127)>>4)>>>0,this.buf[this.pos++]<128)return t;e=0}else{for(;e<3;++e){if(this.pos>=this.len)throw G(this);if(t.lo=(t.lo|(this.buf[this.pos]&127)<>>0,this.buf[this.pos++]<128)return t}return t.lo=(t.lo|(this.buf[this.pos++]&127)<>>0,t}if(this.len-this.pos>4){for(;e<5;++e)if(t.hi=(t.hi|(this.buf[this.pos]&127)<>>0,this.buf[this.pos++]<128)return t}else for(;e<5;++e){if(this.pos>=this.len)throw G(this);if(t.hi=(t.hi|(this.buf[this.pos]&127)<>>0,this.buf[this.pos++]<128)return t}throw Error("invalid varint encoding")}R.prototype.bool=function(){return this.uint32()!==0};function qe(t,e){return(t[e-4]|t[e-3]<<8|t[e-2]<<16|t[e-1]<<24)>>>0}R.prototype.fixed32=function(){if(this.pos+4>this.len)throw G(this,4);return qe(this.buf,this.pos+=4)};R.prototype.sfixed32=function(){if(this.pos+4>this.len)throw G(this,4);return qe(this.buf,this.pos+=4)|0};function ur(){if(this.pos+8>this.len)throw G(this,8);return new cr(qe(this.buf,this.pos+=4),qe(this.buf,this.pos+=4))}R.prototype.float=function(){if(this.pos+4>this.len)throw G(this,4);var e=Q.float.readFloatLE(this.buf,this.pos);return this.pos+=4,e};R.prototype.double=function(){if(this.pos+8>this.len)throw G(this,4);var e=Q.float.readDoubleLE(this.buf,this.pos);return this.pos+=8,e};R.prototype.bytes=function(){var e=this.uint32(),r=this.pos,n=this.pos+e;if(n>this.len)throw G(this,e);return this.pos+=e,Array.isArray(this.buf)?this.buf.slice(r,n):r===n?new this.buf.constructor(0):this._slice.call(this.buf,r,n)};R.prototype.string=function(){var e=this.bytes();return Gn.read(e,0,e.length)};R.prototype.skip=function(e){if(typeof e=="number"){if(this.pos+e>this.len)throw G(this,e);this.pos+=e}else do if(this.pos>=this.len)throw G(this);while(this.buf[this.pos++]&128);return this};R.prototype.skipType=function(t){switch(t){case 0:this.skip();break;case 1:this.skip(8);break;case 2:this.skip(this.uint32());break;case 3:for(;(t=this.uint32()&7)!==4;)this.skipType(t);break;case 5:this.skip(4);break;default:throw Error("invalid wire type "+t+" at offset "+this.pos)}return this};R._configure=function(t){ct=t,R.create=fr(),ct._configure();var e=Q.Long?"toLong":"toNumber";Q.merge(R.prototype,{int64:function(){return ut.call(this)[e](!1)},uint64:function(){return ut.call(this)[e](!0)},sint64:function(){return ut.call(this).zzDecode()[e](!1)},fixed64:function(){return ur.call(this)[e](!0)},sfixed64:function(){return ur.call(this)[e](!1)}})}});var mr=E((Wi,pr)=>{"use strict";pr.exports=fe;var gr=ft();(fe.prototype=Object.create(gr.prototype)).constructor=fe;var hr=re();function fe(t){gr.call(this,t)}fe._configure=function(){hr.Buffer&&(fe.prototype._slice=hr.Buffer.prototype.slice)};fe.prototype.string=function(){var e=this.uint32();return this.buf.utf8Slice?this.buf.utf8Slice(this.pos,this.pos=Math.min(this.pos+e,this.len)):this.buf.toString("utf-8",this.pos,this.pos=Math.min(this.pos+e,this.len))};fe._configure()});var _r=E((Vi,yr)=>{"use strict";yr.exports=Ie;var lt=re();(Ie.prototype=Object.create(lt.EventEmitter.prototype)).constructor=Ie;function Ie(t,e,r){if(typeof t!="function")throw TypeError("rpcImpl must be a function");lt.EventEmitter.call(this),this.rpcImpl=t,this.requestDelimited=!!e,this.responseDelimited=!!r}Ie.prototype.rpcCall=function t(e,r,n,i,o){if(!i)throw TypeError("request must be specified");var s=this;if(!o)return lt.asPromise(t,s,e,r,n,i);if(!s.rpcImpl){setTimeout(function(){o(Error("already ended"))},0);return}try{return s.rpcImpl(e,r[s.requestDelimited?"encodeDelimited":"encode"](i).finish(),function(a,d){if(a)return s.emit("error",a,e),o(a);if(d===null){s.end(!0);return}if(!(d instanceof n))try{d=n[s.responseDelimited?"decodeDelimited":"decode"](d)}catch(f){return s.emit("error",f,e),o(f)}return s.emit("data",d,e),o(null,d)})}catch(u){s.emit("error",u,e),setTimeout(function(){o(u)},0);return}};Ie.prototype.end=function(e){return this.rpcImpl&&(e||this.rpcImpl(null,null,null),this.rpcImpl=null,this.emit("end").off()),this}});var Cr=E(Er=>{"use strict";var $n=Er;$n.Service=_r()});var vr=E((Gi,Ar)=>{"use strict";Ar.exports={}});var Or=E(br=>{"use strict";var D=br;D.build="minimal";D.Writer=dt();D.BufferWriter=ar();D.Reader=ft();D.BufferReader=mr();D.util=re();D.rpc=Cr();D.roots=vr();D.configure=wr;function wr(){D.util._configure(),D.Writer._configure(D.BufferWriter),D.Reader._configure(D.BufferReader)}wr()});var Ne=E((Ki,xr)=>{"use strict";xr.exports=Or()});var kr=E(q=>{"use strict";var Tr=q&&q.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(q,"__esModule",{value:!0});q.DecProto=q.IntProto=q.DecCoin=q.Coin=q.protobufPackage=void 0;var Sr=Tr(xe()),M=Tr(Ne());q.protobufPackage="cosmos.base.v1beta1";function Rr(){return{denom:"",amount:""}}q.Coin={encode(t,e=M.default.Writer.create()){return t.denom!==""&&e.uint32(10).string(t.denom),t.amount!==""&&e.uint32(18).string(t.amount),e},decode(t,e){let r=t instanceof M.default.Reader?t:new M.default.Reader(t),n=e===void 0?r.len:r.pos+e,i=Rr();for(;r.pos>>3){case 1:i.denom=r.string();break;case 2:i.amount=r.string();break;default:r.skipType(o&7);break}}return i},fromJSON(t){return{denom:_e(t.denom)?String(t.denom):"",amount:_e(t.amount)?String(t.amount):""}},toJSON(t){let e={};return t.denom!==void 0&&(e.denom=t.denom),t.amount!==void 0&&(e.amount=t.amount),e},fromPartial(t){var e,r;let n=Rr();return n.denom=(e=t.denom)!==null&&e!==void 0?e:"",n.amount=(r=t.amount)!==null&&r!==void 0?r:"",n}};function Ir(){return{denom:"",amount:""}}q.DecCoin={encode(t,e=M.default.Writer.create()){return t.denom!==""&&e.uint32(10).string(t.denom),t.amount!==""&&e.uint32(18).string(t.amount),e},decode(t,e){let r=t instanceof M.default.Reader?t:new M.default.Reader(t),n=e===void 0?r.len:r.pos+e,i=Ir();for(;r.pos>>3){case 1:i.denom=r.string();break;case 2:i.amount=r.string();break;default:r.skipType(o&7);break}}return i},fromJSON(t){return{denom:_e(t.denom)?String(t.denom):"",amount:_e(t.amount)?String(t.amount):""}},toJSON(t){let e={};return t.denom!==void 0&&(e.denom=t.denom),t.amount!==void 0&&(e.amount=t.amount),e},fromPartial(t){var e,r;let n=Ir();return n.denom=(e=t.denom)!==null&&e!==void 0?e:"",n.amount=(r=t.amount)!==null&&r!==void 0?r:"",n}};function Nr(){return{int:""}}q.IntProto={encode(t,e=M.default.Writer.create()){return t.int!==""&&e.uint32(10).string(t.int),e},decode(t,e){let r=t instanceof M.default.Reader?t:new M.default.Reader(t),n=e===void 0?r.len:r.pos+e,i=Nr();for(;r.pos>>3===1?i.int=r.string():r.skipType(o&7)}return i},fromJSON(t){return{int:_e(t.int)?String(t.int):""}},toJSON(t){let e={};return t.int!==void 0&&(e.int=t.int),e},fromPartial(t){var e;let r=Nr();return r.int=(e=t.int)!==null&&e!==void 0?e:"",r}};function Pr(){return{dec:""}}q.DecProto={encode(t,e=M.default.Writer.create()){return t.dec!==""&&e.uint32(10).string(t.dec),e},decode(t,e){let r=t instanceof M.default.Reader?t:new M.default.Reader(t),n=e===void 0?r.len:r.pos+e,i=Pr();for(;r.pos>>3===1?i.dec=r.string():r.skipType(o&7)}return i},fromJSON(t){return{dec:_e(t.dec)?String(t.dec):""}},toJSON(t){let e={};return t.dec!==void 0&&(e.dec=t.dec),e},fromPartial(t){var e;let r=Pr();return r.dec=(e=t.dec)!==null&&e!==void 0?e:"",r}};M.default.util.Long!==Sr.default&&(M.default.util.Long=Sr.default,M.default.configure());function _e(t){return t!=null}});var Dr=E(oe=>{"use strict";var Br=oe&&oe.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(oe,"__esModule",{value:!0});oe.Any=oe.protobufPackage=void 0;var Fr=Br(xe()),Ee=Br(Ne());oe.protobufPackage="google.protobuf";function Mr(){return{typeUrl:"",value:new Uint8Array}}oe.Any={encode(t,e=Ee.default.Writer.create()){return t.typeUrl!==""&&e.uint32(10).string(t.typeUrl),t.value.length!==0&&e.uint32(18).bytes(t.value),e},decode(t,e){let r=t instanceof Ee.default.Reader?t:new Ee.default.Reader(t),n=e===void 0?r.len:r.pos+e,i=Mr();for(;r.pos>>3){case 1:i.typeUrl=r.string();break;case 2:i.value=r.bytes();break;default:r.skipType(o&7);break}}return i},fromJSON(t){return{typeUrl:Ur(t.typeUrl)?String(t.typeUrl):"",value:Ur(t.value)?Kn(t.value):new Uint8Array}},toJSON(t){let e={};return t.typeUrl!==void 0&&(e.typeUrl=t.typeUrl),t.value!==void 0&&(e.value=Xn(t.value!==void 0?t.value:new Uint8Array)),e},fromPartial(t){var e,r;let n=Mr();return n.typeUrl=(e=t.typeUrl)!==null&&e!==void 0?e:"",n.value=(r=t.value)!==null&&r!==void 0?r:new Uint8Array,n}};var ie=(()=>{if(typeof ie<"u")return ie;if(typeof self<"u")return self;if(typeof window<"u")return window;if(typeof global<"u")return global;throw"Unable to locate global object"})();function Kn(t){if(ie.Buffer)return Uint8Array.from(ie.Buffer.from(t,"base64"));{let e=ie.atob(t),r=new Uint8Array(e.length);for(let n=0;n{e.push(String.fromCharCode(r))}),ie.btoa(e.join(""))}}Ee.default.util.Long!==Fr.default&&(Ee.default.util.Long=Fr.default,Ee.default.configure());function Ur(t){return t!=null}});var Kr=E(g=>{"use strict";var zr=g&&g.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(g,"__esModule",{value:!0});g.Model=g.AbsoluteTxPosition=g.ContractCodeHistoryEntry=g.ContractInfo=g.CodeInfo=g.Params=g.AccessConfig=g.AccessTypeParam=g.contractCodeHistoryOperationTypeToJSON=g.contractCodeHistoryOperationTypeFromJSON=g.ContractCodeHistoryOperationType=g.accessTypeToJSON=g.accessTypeFromJSON=g.AccessType=g.protobufPackage=void 0;var O=zr(xe()),v=zr(Ne()),Pe=Dr();g.protobufPackage="cosmwasm.wasm.v1";var $;(function(t){t[t.ACCESS_TYPE_UNSPECIFIED=0]="ACCESS_TYPE_UNSPECIFIED",t[t.ACCESS_TYPE_NOBODY=1]="ACCESS_TYPE_NOBODY",t[t.ACCESS_TYPE_ONLY_ADDRESS=2]="ACCESS_TYPE_ONLY_ADDRESS",t[t.ACCESS_TYPE_EVERYBODY=3]="ACCESS_TYPE_EVERYBODY",t[t.UNRECOGNIZED=-1]="UNRECOGNIZED"})($=g.AccessType||(g.AccessType={}));function Ye(t){switch(t){case 0:case"ACCESS_TYPE_UNSPECIFIED":return $.ACCESS_TYPE_UNSPECIFIED;case 1:case"ACCESS_TYPE_NOBODY":return $.ACCESS_TYPE_NOBODY;case 2:case"ACCESS_TYPE_ONLY_ADDRESS":return $.ACCESS_TYPE_ONLY_ADDRESS;case 3:case"ACCESS_TYPE_EVERYBODY":return $.ACCESS_TYPE_EVERYBODY;default:return $.UNRECOGNIZED}}g.accessTypeFromJSON=Ye;function He(t){switch(t){case $.ACCESS_TYPE_UNSPECIFIED:return"ACCESS_TYPE_UNSPECIFIED";case $.ACCESS_TYPE_NOBODY:return"ACCESS_TYPE_NOBODY";case $.ACCESS_TYPE_ONLY_ADDRESS:return"ACCESS_TYPE_ONLY_ADDRESS";case $.ACCESS_TYPE_EVERYBODY:return"ACCESS_TYPE_EVERYBODY";case $.UNRECOGNIZED:default:return"UNRECOGNIZED"}}g.accessTypeToJSON=He;var K;(function(t){t[t.CONTRACT_CODE_HISTORY_OPERATION_TYPE_UNSPECIFIED=0]="CONTRACT_CODE_HISTORY_OPERATION_TYPE_UNSPECIFIED",t[t.CONTRACT_CODE_HISTORY_OPERATION_TYPE_INIT=1]="CONTRACT_CODE_HISTORY_OPERATION_TYPE_INIT",t[t.CONTRACT_CODE_HISTORY_OPERATION_TYPE_MIGRATE=2]="CONTRACT_CODE_HISTORY_OPERATION_TYPE_MIGRATE",t[t.CONTRACT_CODE_HISTORY_OPERATION_TYPE_GENESIS=3]="CONTRACT_CODE_HISTORY_OPERATION_TYPE_GENESIS",t[t.UNRECOGNIZED=-1]="UNRECOGNIZED"})(K=g.ContractCodeHistoryOperationType||(g.ContractCodeHistoryOperationType={}));function Gr(t){switch(t){case 0:case"CONTRACT_CODE_HISTORY_OPERATION_TYPE_UNSPECIFIED":return K.CONTRACT_CODE_HISTORY_OPERATION_TYPE_UNSPECIFIED;case 1:case"CONTRACT_CODE_HISTORY_OPERATION_TYPE_INIT":return K.CONTRACT_CODE_HISTORY_OPERATION_TYPE_INIT;case 2:case"CONTRACT_CODE_HISTORY_OPERATION_TYPE_MIGRATE":return K.CONTRACT_CODE_HISTORY_OPERATION_TYPE_MIGRATE;case 3:case"CONTRACT_CODE_HISTORY_OPERATION_TYPE_GENESIS":return K.CONTRACT_CODE_HISTORY_OPERATION_TYPE_GENESIS;default:return K.UNRECOGNIZED}}g.contractCodeHistoryOperationTypeFromJSON=Gr;function $r(t){switch(t){case K.CONTRACT_CODE_HISTORY_OPERATION_TYPE_UNSPECIFIED:return"CONTRACT_CODE_HISTORY_OPERATION_TYPE_UNSPECIFIED";case K.CONTRACT_CODE_HISTORY_OPERATION_TYPE_INIT:return"CONTRACT_CODE_HISTORY_OPERATION_TYPE_INIT";case K.CONTRACT_CODE_HISTORY_OPERATION_TYPE_MIGRATE:return"CONTRACT_CODE_HISTORY_OPERATION_TYPE_MIGRATE";case K.CONTRACT_CODE_HISTORY_OPERATION_TYPE_GENESIS:return"CONTRACT_CODE_HISTORY_OPERATION_TYPE_GENESIS";case K.UNRECOGNIZED:default:return"UNRECOGNIZED"}}g.contractCodeHistoryOperationTypeToJSON=$r;function qr(){return{value:0}}g.AccessTypeParam={encode(t,e=v.default.Writer.create()){return t.value!==0&&e.uint32(8).int32(t.value),e},decode(t,e){let r=t instanceof v.default.Reader?t:new v.default.Reader(t),n=e===void 0?r.len:r.pos+e,i=qr();for(;r.pos>>3===1?i.value=r.int32():r.skipType(o&7)}return i},fromJSON(t){return{value:S(t.value)?Ye(t.value):0}},toJSON(t){let e={};return t.value!==void 0&&(e.value=He(t.value)),e},fromPartial(t){var e;let r=qr();return r.value=(e=t.value)!==null&&e!==void 0?e:0,r}};function Jr(){return{permission:0,address:""}}g.AccessConfig={encode(t,e=v.default.Writer.create()){return t.permission!==0&&e.uint32(8).int32(t.permission),t.address!==""&&e.uint32(18).string(t.address),e},decode(t,e){let r=t instanceof v.default.Reader?t:new v.default.Reader(t),n=e===void 0?r.len:r.pos+e,i=Jr();for(;r.pos>>3){case 1:i.permission=r.int32();break;case 2:i.address=r.string();break;default:r.skipType(o&7);break}}return i},fromJSON(t){return{permission:S(t.permission)?Ye(t.permission):0,address:S(t.address)?String(t.address):""}},toJSON(t){let e={};return t.permission!==void 0&&(e.permission=He(t.permission)),t.address!==void 0&&(e.address=t.address),e},fromPartial(t){var e,r;let n=Jr();return n.permission=(e=t.permission)!==null&&e!==void 0?e:0,n.address=(r=t.address)!==null&&r!==void 0?r:"",n}};function Lr(){return{codeUploadAccess:void 0,instantiateDefaultPermission:0}}g.Params={encode(t,e=v.default.Writer.create()){return t.codeUploadAccess!==void 0&&g.AccessConfig.encode(t.codeUploadAccess,e.uint32(10).fork()).ldelim(),t.instantiateDefaultPermission!==0&&e.uint32(16).int32(t.instantiateDefaultPermission),e},decode(t,e){let r=t instanceof v.default.Reader?t:new v.default.Reader(t),n=e===void 0?r.len:r.pos+e,i=Lr();for(;r.pos>>3){case 1:i.codeUploadAccess=g.AccessConfig.decode(r,r.uint32());break;case 2:i.instantiateDefaultPermission=r.int32();break;default:r.skipType(o&7);break}}return i},fromJSON(t){return{codeUploadAccess:S(t.codeUploadAccess)?g.AccessConfig.fromJSON(t.codeUploadAccess):void 0,instantiateDefaultPermission:S(t.instantiateDefaultPermission)?Ye(t.instantiateDefaultPermission):0}},toJSON(t){let e={};return t.codeUploadAccess!==void 0&&(e.codeUploadAccess=t.codeUploadAccess?g.AccessConfig.toJSON(t.codeUploadAccess):void 0),t.instantiateDefaultPermission!==void 0&&(e.instantiateDefaultPermission=He(t.instantiateDefaultPermission)),e},fromPartial(t){var e;let r=Lr();return r.codeUploadAccess=t.codeUploadAccess!==void 0&&t.codeUploadAccess!==null?g.AccessConfig.fromPartial(t.codeUploadAccess):void 0,r.instantiateDefaultPermission=(e=t.instantiateDefaultPermission)!==null&&e!==void 0?e:0,r}};function Yr(){return{codeHash:new Uint8Array,creator:"",instantiateConfig:void 0}}g.CodeInfo={encode(t,e=v.default.Writer.create()){return t.codeHash.length!==0&&e.uint32(10).bytes(t.codeHash),t.creator!==""&&e.uint32(18).string(t.creator),t.instantiateConfig!==void 0&&g.AccessConfig.encode(t.instantiateConfig,e.uint32(42).fork()).ldelim(),e},decode(t,e){let r=t instanceof v.default.Reader?t:new v.default.Reader(t),n=e===void 0?r.len:r.pos+e,i=Yr();for(;r.pos>>3){case 1:i.codeHash=r.bytes();break;case 2:i.creator=r.string();break;case 5:i.instantiateConfig=g.AccessConfig.decode(r,r.uint32());break;default:r.skipType(o&7);break}}return i},fromJSON(t){return{codeHash:S(t.codeHash)?Je(t.codeHash):new Uint8Array,creator:S(t.creator)?String(t.creator):"",instantiateConfig:S(t.instantiateConfig)?g.AccessConfig.fromJSON(t.instantiateConfig):void 0}},toJSON(t){let e={};return t.codeHash!==void 0&&(e.codeHash=Le(t.codeHash!==void 0?t.codeHash:new Uint8Array)),t.creator!==void 0&&(e.creator=t.creator),t.instantiateConfig!==void 0&&(e.instantiateConfig=t.instantiateConfig?g.AccessConfig.toJSON(t.instantiateConfig):void 0),e},fromPartial(t){var e,r;let n=Yr();return n.codeHash=(e=t.codeHash)!==null&&e!==void 0?e:new Uint8Array,n.creator=(r=t.creator)!==null&&r!==void 0?r:"",n.instantiateConfig=t.instantiateConfig!==void 0&&t.instantiateConfig!==null?g.AccessConfig.fromPartial(t.instantiateConfig):void 0,n}};function Hr(){return{codeId:O.default.UZERO,creator:"",admin:"",label:"",created:void 0,ibcPortId:"",extension:void 0}}g.ContractInfo={encode(t,e=v.default.Writer.create()){return t.codeId.isZero()||e.uint32(8).uint64(t.codeId),t.creator!==""&&e.uint32(18).string(t.creator),t.admin!==""&&e.uint32(26).string(t.admin),t.label!==""&&e.uint32(34).string(t.label),t.created!==void 0&&g.AbsoluteTxPosition.encode(t.created,e.uint32(42).fork()).ldelim(),t.ibcPortId!==""&&e.uint32(50).string(t.ibcPortId),t.extension!==void 0&&Pe.Any.encode(t.extension,e.uint32(58).fork()).ldelim(),e},decode(t,e){let r=t instanceof v.default.Reader?t:new v.default.Reader(t),n=e===void 0?r.len:r.pos+e,i=Hr();for(;r.pos>>3){case 1:i.codeId=r.uint64();break;case 2:i.creator=r.string();break;case 3:i.admin=r.string();break;case 4:i.label=r.string();break;case 5:i.created=g.AbsoluteTxPosition.decode(r,r.uint32());break;case 6:i.ibcPortId=r.string();break;case 7:i.extension=Pe.Any.decode(r,r.uint32());break;default:r.skipType(o&7);break}}return i},fromJSON(t){return{codeId:S(t.codeId)?O.default.fromValue(t.codeId):O.default.UZERO,creator:S(t.creator)?String(t.creator):"",admin:S(t.admin)?String(t.admin):"",label:S(t.label)?String(t.label):"",created:S(t.created)?g.AbsoluteTxPosition.fromJSON(t.created):void 0,ibcPortId:S(t.ibcPortId)?String(t.ibcPortId):"",extension:S(t.extension)?Pe.Any.fromJSON(t.extension):void 0}},toJSON(t){let e={};return t.codeId!==void 0&&(e.codeId=(t.codeId||O.default.UZERO).toString()),t.creator!==void 0&&(e.creator=t.creator),t.admin!==void 0&&(e.admin=t.admin),t.label!==void 0&&(e.label=t.label),t.created!==void 0&&(e.created=t.created?g.AbsoluteTxPosition.toJSON(t.created):void 0),t.ibcPortId!==void 0&&(e.ibcPortId=t.ibcPortId),t.extension!==void 0&&(e.extension=t.extension?Pe.Any.toJSON(t.extension):void 0),e},fromPartial(t){var e,r,n,i;let o=Hr();return o.codeId=t.codeId!==void 0&&t.codeId!==null?O.default.fromValue(t.codeId):O.default.UZERO,o.creator=(e=t.creator)!==null&&e!==void 0?e:"",o.admin=(r=t.admin)!==null&&r!==void 0?r:"",o.label=(n=t.label)!==null&&n!==void 0?n:"",o.created=t.created!==void 0&&t.created!==null?g.AbsoluteTxPosition.fromPartial(t.created):void 0,o.ibcPortId=(i=t.ibcPortId)!==null&&i!==void 0?i:"",o.extension=t.extension!==void 0&&t.extension!==null?Pe.Any.fromPartial(t.extension):void 0,o}};function Zr(){return{operation:0,codeId:O.default.UZERO,updated:void 0,msg:new Uint8Array}}g.ContractCodeHistoryEntry={encode(t,e=v.default.Writer.create()){return t.operation!==0&&e.uint32(8).int32(t.operation),t.codeId.isZero()||e.uint32(16).uint64(t.codeId),t.updated!==void 0&&g.AbsoluteTxPosition.encode(t.updated,e.uint32(26).fork()).ldelim(),t.msg.length!==0&&e.uint32(34).bytes(t.msg),e},decode(t,e){let r=t instanceof v.default.Reader?t:new v.default.Reader(t),n=e===void 0?r.len:r.pos+e,i=Zr();for(;r.pos>>3){case 1:i.operation=r.int32();break;case 2:i.codeId=r.uint64();break;case 3:i.updated=g.AbsoluteTxPosition.decode(r,r.uint32());break;case 4:i.msg=r.bytes();break;default:r.skipType(o&7);break}}return i},fromJSON(t){return{operation:S(t.operation)?Gr(t.operation):0,codeId:S(t.codeId)?O.default.fromValue(t.codeId):O.default.UZERO,updated:S(t.updated)?g.AbsoluteTxPosition.fromJSON(t.updated):void 0,msg:S(t.msg)?Je(t.msg):new Uint8Array}},toJSON(t){let e={};return t.operation!==void 0&&(e.operation=$r(t.operation)),t.codeId!==void 0&&(e.codeId=(t.codeId||O.default.UZERO).toString()),t.updated!==void 0&&(e.updated=t.updated?g.AbsoluteTxPosition.toJSON(t.updated):void 0),t.msg!==void 0&&(e.msg=Le(t.msg!==void 0?t.msg:new Uint8Array)),e},fromPartial(t){var e,r;let n=Zr();return n.operation=(e=t.operation)!==null&&e!==void 0?e:0,n.codeId=t.codeId!==void 0&&t.codeId!==null?O.default.fromValue(t.codeId):O.default.UZERO,n.updated=t.updated!==void 0&&t.updated!==null?g.AbsoluteTxPosition.fromPartial(t.updated):void 0,n.msg=(r=t.msg)!==null&&r!==void 0?r:new Uint8Array,n}};function Wr(){return{blockHeight:O.default.UZERO,txIndex:O.default.UZERO}}g.AbsoluteTxPosition={encode(t,e=v.default.Writer.create()){return t.blockHeight.isZero()||e.uint32(8).uint64(t.blockHeight),t.txIndex.isZero()||e.uint32(16).uint64(t.txIndex),e},decode(t,e){let r=t instanceof v.default.Reader?t:new v.default.Reader(t),n=e===void 0?r.len:r.pos+e,i=Wr();for(;r.pos>>3){case 1:i.blockHeight=r.uint64();break;case 2:i.txIndex=r.uint64();break;default:r.skipType(o&7);break}}return i},fromJSON(t){return{blockHeight:S(t.blockHeight)?O.default.fromValue(t.blockHeight):O.default.UZERO,txIndex:S(t.txIndex)?O.default.fromValue(t.txIndex):O.default.UZERO}},toJSON(t){let e={};return t.blockHeight!==void 0&&(e.blockHeight=(t.blockHeight||O.default.UZERO).toString()),t.txIndex!==void 0&&(e.txIndex=(t.txIndex||O.default.UZERO).toString()),e},fromPartial(t){let e=Wr();return e.blockHeight=t.blockHeight!==void 0&&t.blockHeight!==null?O.default.fromValue(t.blockHeight):O.default.UZERO,e.txIndex=t.txIndex!==void 0&&t.txIndex!==null?O.default.fromValue(t.txIndex):O.default.UZERO,e}};function Vr(){return{key:new Uint8Array,value:new Uint8Array}}g.Model={encode(t,e=v.default.Writer.create()){return t.key.length!==0&&e.uint32(10).bytes(t.key),t.value.length!==0&&e.uint32(18).bytes(t.value),e},decode(t,e){let r=t instanceof v.default.Reader?t:new v.default.Reader(t),n=e===void 0?r.len:r.pos+e,i=Vr();for(;r.pos>>3){case 1:i.key=r.bytes();break;case 2:i.value=r.bytes();break;default:r.skipType(o&7);break}}return i},fromJSON(t){return{key:S(t.key)?Je(t.key):new Uint8Array,value:S(t.value)?Je(t.value):new Uint8Array}},toJSON(t){let e={};return t.key!==void 0&&(e.key=Le(t.key!==void 0?t.key:new Uint8Array)),t.value!==void 0&&(e.value=Le(t.value!==void 0?t.value:new Uint8Array)),e},fromPartial(t){var e,r;let n=Vr();return n.key=(e=t.key)!==null&&e!==void 0?e:new Uint8Array,n.value=(r=t.value)!==null&&r!==void 0?r:new Uint8Array,n}};var se=(()=>{if(typeof se<"u")return se;if(typeof self<"u")return self;if(typeof window<"u")return window;if(typeof global<"u")return global;throw"Unable to locate global object"})();function Je(t){if(se.Buffer)return Uint8Array.from(se.Buffer.from(t,"base64"));{let e=se.atob(t),r=new Uint8Array(e.length);for(let n=0;n{e.push(String.fromCharCode(r))}),se.btoa(e.join(""))}}v.default.util.Long!==O.default&&(v.default.util.Long=O.default,v.default.configure());function S(t){return t!=null}});var fn=E(m=>{"use strict";var cn=m&&m.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(m,"__esModule",{value:!0});m.MsgClientImpl=m.MsgClearAdminResponse=m.MsgClearAdmin=m.MsgUpdateAdminResponse=m.MsgUpdateAdmin=m.MsgMigrateContractResponse=m.MsgMigrateContract=m.MsgExecuteContractResponse=m.MsgExecuteContract=m.MsgInstantiateContractResponse=m.MsgInstantiateContract=m.MsgStoreCodeResponse=m.MsgStoreCode=m.protobufPackage=void 0;var P=cn(xe()),p=cn(Ne()),j=kr(),Te=Kr();m.protobufPackage="cosmwasm.wasm.v1";function Xr(){return{sender:"",wasmByteCode:new Uint8Array,instantiatePermission:void 0}}m.MsgStoreCode={encode(t,e=p.default.Writer.create()){return t.sender!==""&&e.uint32(10).string(t.sender),t.wasmByteCode.length!==0&&e.uint32(18).bytes(t.wasmByteCode),t.instantiatePermission!==void 0&&Te.AccessConfig.encode(t.instantiatePermission,e.uint32(42).fork()).ldelim(),e},decode(t,e){let r=t instanceof p.default.Reader?t:new p.default.Reader(t),n=e===void 0?r.len:r.pos+e,i=Xr();for(;r.pos>>3){case 1:i.sender=r.string();break;case 2:i.wasmByteCode=r.bytes();break;case 5:i.instantiatePermission=Te.AccessConfig.decode(r,r.uint32());break;default:r.skipType(o&7);break}}return i},fromJSON(t){return{sender:x(t.sender)?String(t.sender):"",wasmByteCode:x(t.wasmByteCode)?le(t.wasmByteCode):new Uint8Array,instantiatePermission:x(t.instantiatePermission)?Te.AccessConfig.fromJSON(t.instantiatePermission):void 0}},toJSON(t){let e={};return t.sender!==void 0&&(e.sender=t.sender),t.wasmByteCode!==void 0&&(e.wasmByteCode=he(t.wasmByteCode!==void 0?t.wasmByteCode:new Uint8Array)),t.instantiatePermission!==void 0&&(e.instantiatePermission=t.instantiatePermission?Te.AccessConfig.toJSON(t.instantiatePermission):void 0),e},fromPartial(t){var e,r;let n=Xr();return n.sender=(e=t.sender)!==null&&e!==void 0?e:"",n.wasmByteCode=(r=t.wasmByteCode)!==null&&r!==void 0?r:new Uint8Array,n.instantiatePermission=t.instantiatePermission!==void 0&&t.instantiatePermission!==null?Te.AccessConfig.fromPartial(t.instantiatePermission):void 0,n}};function Qr(){return{codeId:P.default.UZERO}}m.MsgStoreCodeResponse={encode(t,e=p.default.Writer.create()){return t.codeId.isZero()||e.uint32(8).uint64(t.codeId),e},decode(t,e){let r=t instanceof p.default.Reader?t:new p.default.Reader(t),n=e===void 0?r.len:r.pos+e,i=Qr();for(;r.pos>>3===1?i.codeId=r.uint64():r.skipType(o&7)}return i},fromJSON(t){return{codeId:x(t.codeId)?P.default.fromValue(t.codeId):P.default.UZERO}},toJSON(t){let e={};return t.codeId!==void 0&&(e.codeId=(t.codeId||P.default.UZERO).toString()),e},fromPartial(t){let e=Qr();return e.codeId=t.codeId!==void 0&&t.codeId!==null?P.default.fromValue(t.codeId):P.default.UZERO,e}};function jr(){return{sender:"",admin:"",codeId:P.default.UZERO,label:"",msg:new Uint8Array,funds:[]}}m.MsgInstantiateContract={encode(t,e=p.default.Writer.create()){t.sender!==""&&e.uint32(10).string(t.sender),t.admin!==""&&e.uint32(18).string(t.admin),t.codeId.isZero()||e.uint32(24).uint64(t.codeId),t.label!==""&&e.uint32(34).string(t.label),t.msg.length!==0&&e.uint32(42).bytes(t.msg);for(let r of t.funds)j.Coin.encode(r,e.uint32(50).fork()).ldelim();return e},decode(t,e){let r=t instanceof p.default.Reader?t:new p.default.Reader(t),n=e===void 0?r.len:r.pos+e,i=jr();for(;r.pos>>3){case 1:i.sender=r.string();break;case 2:i.admin=r.string();break;case 3:i.codeId=r.uint64();break;case 4:i.label=r.string();break;case 5:i.msg=r.bytes();break;case 6:i.funds.push(j.Coin.decode(r,r.uint32()));break;default:r.skipType(o&7);break}}return i},fromJSON(t){return{sender:x(t.sender)?String(t.sender):"",admin:x(t.admin)?String(t.admin):"",codeId:x(t.codeId)?P.default.fromValue(t.codeId):P.default.UZERO,label:x(t.label)?String(t.label):"",msg:x(t.msg)?le(t.msg):new Uint8Array,funds:Array.isArray(t?.funds)?t.funds.map(e=>j.Coin.fromJSON(e)):[]}},toJSON(t){let e={};return t.sender!==void 0&&(e.sender=t.sender),t.admin!==void 0&&(e.admin=t.admin),t.codeId!==void 0&&(e.codeId=(t.codeId||P.default.UZERO).toString()),t.label!==void 0&&(e.label=t.label),t.msg!==void 0&&(e.msg=he(t.msg!==void 0?t.msg:new Uint8Array)),t.funds?e.funds=t.funds.map(r=>r?j.Coin.toJSON(r):void 0):e.funds=[],e},fromPartial(t){var e,r,n,i,o;let s=jr();return s.sender=(e=t.sender)!==null&&e!==void 0?e:"",s.admin=(r=t.admin)!==null&&r!==void 0?r:"",s.codeId=t.codeId!==void 0&&t.codeId!==null?P.default.fromValue(t.codeId):P.default.UZERO,s.label=(n=t.label)!==null&&n!==void 0?n:"",s.msg=(i=t.msg)!==null&&i!==void 0?i:new Uint8Array,s.funds=((o=t.funds)===null||o===void 0?void 0:o.map(u=>j.Coin.fromPartial(u)))||[],s}};function en(){return{address:"",data:new Uint8Array}}m.MsgInstantiateContractResponse={encode(t,e=p.default.Writer.create()){return t.address!==""&&e.uint32(10).string(t.address),t.data.length!==0&&e.uint32(18).bytes(t.data),e},decode(t,e){let r=t instanceof p.default.Reader?t:new p.default.Reader(t),n=e===void 0?r.len:r.pos+e,i=en();for(;r.pos>>3){case 1:i.address=r.string();break;case 2:i.data=r.bytes();break;default:r.skipType(o&7);break}}return i},fromJSON(t){return{address:x(t.address)?String(t.address):"",data:x(t.data)?le(t.data):new Uint8Array}},toJSON(t){let e={};return t.address!==void 0&&(e.address=t.address),t.data!==void 0&&(e.data=he(t.data!==void 0?t.data:new Uint8Array)),e},fromPartial(t){var e,r;let n=en();return n.address=(e=t.address)!==null&&e!==void 0?e:"",n.data=(r=t.data)!==null&&r!==void 0?r:new Uint8Array,n}};function tn(){return{sender:"",contract:"",msg:new Uint8Array,funds:[]}}m.MsgExecuteContract={encode(t,e=p.default.Writer.create()){t.sender!==""&&e.uint32(10).string(t.sender),t.contract!==""&&e.uint32(18).string(t.contract),t.msg.length!==0&&e.uint32(26).bytes(t.msg);for(let r of t.funds)j.Coin.encode(r,e.uint32(42).fork()).ldelim();return e},decode(t,e){let r=t instanceof p.default.Reader?t:new p.default.Reader(t),n=e===void 0?r.len:r.pos+e,i=tn();for(;r.pos>>3){case 1:i.sender=r.string();break;case 2:i.contract=r.string();break;case 3:i.msg=r.bytes();break;case 5:i.funds.push(j.Coin.decode(r,r.uint32()));break;default:r.skipType(o&7);break}}return i},fromJSON(t){return{sender:x(t.sender)?String(t.sender):"",contract:x(t.contract)?String(t.contract):"",msg:x(t.msg)?le(t.msg):new Uint8Array,funds:Array.isArray(t?.funds)?t.funds.map(e=>j.Coin.fromJSON(e)):[]}},toJSON(t){let e={};return t.sender!==void 0&&(e.sender=t.sender),t.contract!==void 0&&(e.contract=t.contract),t.msg!==void 0&&(e.msg=he(t.msg!==void 0?t.msg:new Uint8Array)),t.funds?e.funds=t.funds.map(r=>r?j.Coin.toJSON(r):void 0):e.funds=[],e},fromPartial(t){var e,r,n,i;let o=tn();return o.sender=(e=t.sender)!==null&&e!==void 0?e:"",o.contract=(r=t.contract)!==null&&r!==void 0?r:"",o.msg=(n=t.msg)!==null&&n!==void 0?n:new Uint8Array,o.funds=((i=t.funds)===null||i===void 0?void 0:i.map(s=>j.Coin.fromPartial(s)))||[],o}};function rn(){return{data:new Uint8Array}}m.MsgExecuteContractResponse={encode(t,e=p.default.Writer.create()){return t.data.length!==0&&e.uint32(10).bytes(t.data),e},decode(t,e){let r=t instanceof p.default.Reader?t:new p.default.Reader(t),n=e===void 0?r.len:r.pos+e,i=rn();for(;r.pos>>3===1?i.data=r.bytes():r.skipType(o&7)}return i},fromJSON(t){return{data:x(t.data)?le(t.data):new Uint8Array}},toJSON(t){let e={};return t.data!==void 0&&(e.data=he(t.data!==void 0?t.data:new Uint8Array)),e},fromPartial(t){var e;let r=rn();return r.data=(e=t.data)!==null&&e!==void 0?e:new Uint8Array,r}};function nn(){return{sender:"",contract:"",codeId:P.default.UZERO,msg:new Uint8Array}}m.MsgMigrateContract={encode(t,e=p.default.Writer.create()){return t.sender!==""&&e.uint32(10).string(t.sender),t.contract!==""&&e.uint32(18).string(t.contract),t.codeId.isZero()||e.uint32(24).uint64(t.codeId),t.msg.length!==0&&e.uint32(34).bytes(t.msg),e},decode(t,e){let r=t instanceof p.default.Reader?t:new p.default.Reader(t),n=e===void 0?r.len:r.pos+e,i=nn();for(;r.pos>>3){case 1:i.sender=r.string();break;case 2:i.contract=r.string();break;case 3:i.codeId=r.uint64();break;case 4:i.msg=r.bytes();break;default:r.skipType(o&7);break}}return i},fromJSON(t){return{sender:x(t.sender)?String(t.sender):"",contract:x(t.contract)?String(t.contract):"",codeId:x(t.codeId)?P.default.fromValue(t.codeId):P.default.UZERO,msg:x(t.msg)?le(t.msg):new Uint8Array}},toJSON(t){let e={};return t.sender!==void 0&&(e.sender=t.sender),t.contract!==void 0&&(e.contract=t.contract),t.codeId!==void 0&&(e.codeId=(t.codeId||P.default.UZERO).toString()),t.msg!==void 0&&(e.msg=he(t.msg!==void 0?t.msg:new Uint8Array)),e},fromPartial(t){var e,r,n;let i=nn();return i.sender=(e=t.sender)!==null&&e!==void 0?e:"",i.contract=(r=t.contract)!==null&&r!==void 0?r:"",i.codeId=t.codeId!==void 0&&t.codeId!==null?P.default.fromValue(t.codeId):P.default.UZERO,i.msg=(n=t.msg)!==null&&n!==void 0?n:new Uint8Array,i}};function on(){return{data:new Uint8Array}}m.MsgMigrateContractResponse={encode(t,e=p.default.Writer.create()){return t.data.length!==0&&e.uint32(10).bytes(t.data),e},decode(t,e){let r=t instanceof p.default.Reader?t:new p.default.Reader(t),n=e===void 0?r.len:r.pos+e,i=on();for(;r.pos>>3===1?i.data=r.bytes():r.skipType(o&7)}return i},fromJSON(t){return{data:x(t.data)?le(t.data):new Uint8Array}},toJSON(t){let e={};return t.data!==void 0&&(e.data=he(t.data!==void 0?t.data:new Uint8Array)),e},fromPartial(t){var e;let r=on();return r.data=(e=t.data)!==null&&e!==void 0?e:new Uint8Array,r}};function sn(){return{sender:"",newAdmin:"",contract:""}}m.MsgUpdateAdmin={encode(t,e=p.default.Writer.create()){return t.sender!==""&&e.uint32(10).string(t.sender),t.newAdmin!==""&&e.uint32(18).string(t.newAdmin),t.contract!==""&&e.uint32(26).string(t.contract),e},decode(t,e){let r=t instanceof p.default.Reader?t:new p.default.Reader(t),n=e===void 0?r.len:r.pos+e,i=sn();for(;r.pos>>3){case 1:i.sender=r.string();break;case 2:i.newAdmin=r.string();break;case 3:i.contract=r.string();break;default:r.skipType(o&7);break}}return i},fromJSON(t){return{sender:x(t.sender)?String(t.sender):"",newAdmin:x(t.newAdmin)?String(t.newAdmin):"",contract:x(t.contract)?String(t.contract):""}},toJSON(t){let e={};return t.sender!==void 0&&(e.sender=t.sender),t.newAdmin!==void 0&&(e.newAdmin=t.newAdmin),t.contract!==void 0&&(e.contract=t.contract),e},fromPartial(t){var e,r,n;let i=sn();return i.sender=(e=t.sender)!==null&&e!==void 0?e:"",i.newAdmin=(r=t.newAdmin)!==null&&r!==void 0?r:"",i.contract=(n=t.contract)!==null&&n!==void 0?n:"",i}};function an(){return{}}m.MsgUpdateAdminResponse={encode(t,e=p.default.Writer.create()){return e},decode(t,e){let r=t instanceof p.default.Reader?t:new p.default.Reader(t),n=e===void 0?r.len:r.pos+e,i=an();for(;r.pos>>3){default:r.skipType(o&7);break}}return i},fromJSON(t){return{}},toJSON(t){return{}},fromPartial(t){return an()}};function dn(){return{sender:"",contract:""}}m.MsgClearAdmin={encode(t,e=p.default.Writer.create()){return t.sender!==""&&e.uint32(10).string(t.sender),t.contract!==""&&e.uint32(26).string(t.contract),e},decode(t,e){let r=t instanceof p.default.Reader?t:new p.default.Reader(t),n=e===void 0?r.len:r.pos+e,i=dn();for(;r.pos>>3){case 1:i.sender=r.string();break;case 3:i.contract=r.string();break;default:r.skipType(o&7);break}}return i},fromJSON(t){return{sender:x(t.sender)?String(t.sender):"",contract:x(t.contract)?String(t.contract):""}},toJSON(t){let e={};return t.sender!==void 0&&(e.sender=t.sender),t.contract!==void 0&&(e.contract=t.contract),e},fromPartial(t){var e,r;let n=dn();return n.sender=(e=t.sender)!==null&&e!==void 0?e:"",n.contract=(r=t.contract)!==null&&r!==void 0?r:"",n}};function un(){return{}}m.MsgClearAdminResponse={encode(t,e=p.default.Writer.create()){return e},decode(t,e){let r=t instanceof p.default.Reader?t:new p.default.Reader(t),n=e===void 0?r.len:r.pos+e,i=un();for(;r.pos>>3){default:r.skipType(o&7);break}}return i},fromJSON(t){return{}},toJSON(t){return{}},fromPartial(t){return un()}};var ht=class{constructor(e){this.rpc=e,this.StoreCode=this.StoreCode.bind(this),this.InstantiateContract=this.InstantiateContract.bind(this),this.ExecuteContract=this.ExecuteContract.bind(this),this.MigrateContract=this.MigrateContract.bind(this),this.UpdateAdmin=this.UpdateAdmin.bind(this),this.ClearAdmin=this.ClearAdmin.bind(this)}StoreCode(e){let r=m.MsgStoreCode.encode(e).finish();return this.rpc.request("cosmwasm.wasm.v1.Msg","StoreCode",r).then(i=>m.MsgStoreCodeResponse.decode(new p.default.Reader(i)))}InstantiateContract(e){let r=m.MsgInstantiateContract.encode(e).finish();return this.rpc.request("cosmwasm.wasm.v1.Msg","InstantiateContract",r).then(i=>m.MsgInstantiateContractResponse.decode(new p.default.Reader(i)))}ExecuteContract(e){let r=m.MsgExecuteContract.encode(e).finish();return this.rpc.request("cosmwasm.wasm.v1.Msg","ExecuteContract",r).then(i=>m.MsgExecuteContractResponse.decode(new p.default.Reader(i)))}MigrateContract(e){let r=m.MsgMigrateContract.encode(e).finish();return this.rpc.request("cosmwasm.wasm.v1.Msg","MigrateContract",r).then(i=>m.MsgMigrateContractResponse.decode(new p.default.Reader(i)))}UpdateAdmin(e){let r=m.MsgUpdateAdmin.encode(e).finish();return this.rpc.request("cosmwasm.wasm.v1.Msg","UpdateAdmin",r).then(i=>m.MsgUpdateAdminResponse.decode(new p.default.Reader(i)))}ClearAdmin(e){let r=m.MsgClearAdmin.encode(e).finish();return this.rpc.request("cosmwasm.wasm.v1.Msg","ClearAdmin",r).then(i=>m.MsgClearAdminResponse.decode(new p.default.Reader(i)))}};m.MsgClientImpl=ht;var ae=(()=>{if(typeof ae<"u")return ae;if(typeof self<"u")return self;if(typeof window<"u")return window;if(typeof global<"u")return global;throw"Unable to locate global object"})();function le(t){if(ae.Buffer)return Uint8Array.from(ae.Buffer.from(t,"base64"));{let e=ae.atob(t),r=new Uint8Array(e.length);for(let n=0;n{e.push(String.fromCharCode(r))}),ae.btoa(e.join(""))}}p.default.util.Long!==P.default&&(p.default.util.Long=P.default,p.default.configure());function x(t){return t!=null}});var ln=E(Ce=>{"use strict";Object.defineProperty(Ce,"__esModule",{value:!0});Ce.fromAscii=Ce.toAscii=void 0;function Qn(t){return Uint8Array.from((r=>r.split("").map(n=>{let i=n.charCodeAt(0);if(i<32||i>126)throw new Error("Cannot encode character that is out of printable ASCII range: "+i);return i}))(t))}Ce.toAscii=Qn;function jn(t){return(r=>r.map(n=>{if(n<32||n>126)throw new Error("Cannot decode character that is out of printable ASCII range: "+n);return String.fromCharCode(n)}))(Array.from(t)).join("")}Ce.fromAscii=jn});var pn=E(Ze=>{"use strict";Ze.byteLength=ti;Ze.toByteArray=ni;Ze.fromByteArray=si;var ee=[],Z=[],ei=typeof Uint8Array<"u"?Uint8Array:Array,gt="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";for(ge=0,hn=gt.length;ge0)throw new Error("Invalid string. Length must be a multiple of 4");var r=t.indexOf("=");r===-1&&(r=e);var n=r===e?0:4-r%4;return[r,n]}function ti(t){var e=gn(t),r=e[0],n=e[1];return(r+n)*3/4-n}function ri(t,e,r){return(e+r)*3/4-r}function ni(t){var e,r=gn(t),n=r[0],i=r[1],o=new ei(ri(t,n,i)),s=0,u=i>0?n-4:n,a;for(a=0;a>16&255,o[s++]=e>>8&255,o[s++]=e&255;return i===2&&(e=Z[t.charCodeAt(a)]<<2|Z[t.charCodeAt(a+1)]>>4,o[s++]=e&255),i===1&&(e=Z[t.charCodeAt(a)]<<10|Z[t.charCodeAt(a+1)]<<4|Z[t.charCodeAt(a+2)]>>2,o[s++]=e>>8&255,o[s++]=e&255),o}function ii(t){return ee[t>>18&63]+ee[t>>12&63]+ee[t>>6&63]+ee[t&63]}function oi(t,e,r){for(var n,i=[],o=e;ou?u:s+o));return n===1?(e=t[r-1],i.push(ee[e>>2]+ee[e<<4&63]+"==")):n===2&&(e=(t[r-2]<<8)+t[r-1],i.push(ee[e>>10]+ee[e>>4&63]+ee[e<<2&63]+"=")),i.join("")}});var yn=E(W=>{"use strict";var ai=W&&W.__createBinding||(Object.create?(function(t,e,r,n){n===void 0&&(n=r);var i=Object.getOwnPropertyDescriptor(e,r);(!i||("get"in i?!e.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return e[r]}}),Object.defineProperty(t,n,i)}):(function(t,e,r,n){n===void 0&&(n=r),t[n]=e[r]})),di=W&&W.__setModuleDefault||(Object.create?(function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}):function(t,e){t.default=e}),ui=W&&W.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.prototype.hasOwnProperty.call(t,r)&&ai(e,t,r);return di(e,t),e};Object.defineProperty(W,"__esModule",{value:!0});W.fromBase64=W.toBase64=void 0;var mn=ui(pn());function ci(t){return mn.fromByteArray(t)}W.toBase64=ci;function fi(t){if(!t.match(/^[a-zA-Z0-9+/]*={0,2}$/))throw new Error("Invalid base64 string format");return mn.toByteArray(t)}W.fromBase64=fi});var An=E((io,Cn)=>{"use strict";var Ve="qpzry9x8gf2tvdw0s3jn54khce6mua7l",pt={};for(ke=0;ke>25;return(t&33554431)<<5^-(e>>0&1)&996825010^-(e>>1&1)&642813549^-(e>>2&1)&513874426^-(e>>3&1)&1027748829^-(e>>4&1)&705979059}function _n(t){for(var e=1,r=0;r126)return"Invalid prefix ("+t+")";e=Ae(e)^n>>5}for(e=Ae(e),r=0;rr)throw new TypeError("Exceeds length limit");t=t.toLowerCase();var n=_n(t);if(typeof n=="string")throw new Error(n);for(var i=t+"1",o=0;o>5!==0)throw new Error("Non 5-bit word");n=Ae(n)^s,i+=Ve.charAt(s)}for(o=0;o<6;++o)n=Ae(n);for(n^=1,o=0;o<6;++o){var u=n>>(5-o)*5&31;i+=Ve.charAt(u)}return i}function En(t,e){if(e=e||90,t.length<8)return t+" too short";if(t.length>e)return"Exceeds length limit";var r=t.toLowerCase(),n=t.toUpperCase();if(t!==r&&t!==n)return"Mixed-case string "+t;t=r;var i=t.lastIndexOf("1");if(i===-1)return"No separator character for "+t;if(i===0)return"Missing prefix for "+t;var o=t.slice(0,i),s=t.slice(i+1);if(s.length<6)return"Data too short";var u=_n(o);if(typeof u=="string")return u;for(var a=[],d=0;d=s.length)&&a.push(y)}return u!==1?"Invalid checksum for "+t:{prefix:o,words:a}}function hi(){var t=En.apply(null,arguments);if(typeof t=="object")return t}function gi(t){var e=En.apply(null,arguments);if(typeof e=="object")return e;throw new Error(e)}function ze(t,e,r,n){for(var i=0,o=0,s=(1<=r;)o-=r,u.push(i>>o&s);if(n)o>0&&u.push(i<=e)return"Excess padding";if(i<{"use strict";var Ei=k&&k.__createBinding||(Object.create?(function(t,e,r,n){n===void 0&&(n=r);var i=Object.getOwnPropertyDescriptor(e,r);(!i||("get"in i?!e.__esModule:i.writable||i.configurable))&&(i={enumerable:!0,get:function(){return e[r]}}),Object.defineProperty(t,n,i)}):(function(t,e,r,n){n===void 0&&(n=r),t[n]=e[r]})),Ci=k&&k.__setModuleDefault||(Object.create?(function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}):function(t,e){t.default=e}),Ai=k&&k.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.prototype.hasOwnProperty.call(t,r)&&Ei(e,t,r);return Ci(e,t),e};Object.defineProperty(k,"__esModule",{value:!0});k.Bech32=k.normalizeBech32=k.fromBech32=k.toBech32=void 0;var Ge=Ai(An());function yt(t,e,r){return Ge.encode(t,Ge.toWords(e),r)}k.toBech32=yt;function _t(t,e=1/0){let r=Ge.decode(t,e);return{prefix:r.prefix,data:new Uint8Array(Ge.fromWords(r.words))}}k.fromBech32=_t;function vi(t){let{prefix:e,data:r}=_t(t);return yt(e,r)}k.normalizeBech32=vi;var mt=class{static encode(e,r,n){return yt(e,r,n)}static decode(e,r=1/0){return _t(e,r)}};k.Bech32=mt});var wn=E(ve=>{"use strict";Object.defineProperty(ve,"__esModule",{value:!0});ve.fromHex=ve.toHex=void 0;function wi(t){let e="";for(let r of t)e+=("0"+r.toString(16)).slice(-2);return e}ve.toHex=wi;function bi(t){if(t.length%2!==0)throw new Error("hex string length must be a multiple of 2");let e=new Uint8Array(t.length/2);for(let r=0;r{"use strict";Object.defineProperty(be,"__esModule",{value:!0});be.toRfc3339=be.fromRfc3339=void 0;var Oi=/^(\d{4})-(\d{2})-(\d{2})[T ](\d{2}):(\d{2}):(\d{2})(\.\d{1,9})?((?:[+-]\d{2}:\d{2})|Z)$/;function we(t,e=2){return t.toString().padStart(e,"0")}function xi(t){let e=Oi.exec(t);if(!e)throw new Error("Date string is not in RFC3339 format");let r=+e[1],n=+e[2],i=+e[3],o=+e[4],s=+e[5],u=+e[6],a=e[7]?Math.floor(+e[7]*1e3):0,d,f,y;e[8]==="Z"?(d=1,f=0,y=0):(d=e[8].substring(0,1)==="-"?-1:1,f=+e[8].substring(1,3),y=+e[8].substring(4,6));let A=d*(f*60+y)*60,F=Date.UTC(r,n-1,i,o,s,u,a)-A*1e3;return new Date(F)}be.fromRfc3339=xi;function Si(t){let e=t.getUTCFullYear(),r=we(t.getUTCMonth()+1),n=we(t.getUTCDate()),i=we(t.getUTCHours()),o=we(t.getUTCMinutes()),s=we(t.getUTCSeconds()),u=we(t.getUTCMilliseconds(),3);return`${e}-${r}-${n}T${i}:${o}:${s}.${u}Z`}be.toRfc3339=Si});var On=E(Oe=>{"use strict";Object.defineProperty(Oe,"__esModule",{value:!0});Oe.fromUtf8=Oe.toUtf8=void 0;function Ri(t){return new TextEncoder().encode(t)}Oe.toUtf8=Ri;function Ii(t,e=!1){let r=!e;return new TextDecoder("utf-8",{fatal:r}).decode(t)}Oe.fromUtf8=Ii});var Pn=E(C=>{"use strict";Object.defineProperty(C,"__esModule",{value:!0});C.toUtf8=C.fromUtf8=C.toRfc3339=C.fromRfc3339=C.toHex=C.fromHex=C.toBech32=C.normalizeBech32=C.fromBech32=C.Bech32=C.toBase64=C.fromBase64=C.toAscii=C.fromAscii=void 0;var xn=ln();Object.defineProperty(C,"fromAscii",{enumerable:!0,get:function(){return xn.fromAscii}});Object.defineProperty(C,"toAscii",{enumerable:!0,get:function(){return xn.toAscii}});var Sn=yn();Object.defineProperty(C,"fromBase64",{enumerable:!0,get:function(){return Sn.fromBase64}});Object.defineProperty(C,"toBase64",{enumerable:!0,get:function(){return Sn.toBase64}});var $e=vn();Object.defineProperty(C,"Bech32",{enumerable:!0,get:function(){return $e.Bech32}});Object.defineProperty(C,"fromBech32",{enumerable:!0,get:function(){return $e.fromBech32}});Object.defineProperty(C,"normalizeBech32",{enumerable:!0,get:function(){return $e.normalizeBech32}});Object.defineProperty(C,"toBech32",{enumerable:!0,get:function(){return $e.toBech32}});var Rn=wn();Object.defineProperty(C,"fromHex",{enumerable:!0,get:function(){return Rn.fromHex}});Object.defineProperty(C,"toHex",{enumerable:!0,get:function(){return Rn.toHex}});var In=bn();Object.defineProperty(C,"fromRfc3339",{enumerable:!0,get:function(){return In.fromRfc3339}});Object.defineProperty(C,"toRfc3339",{enumerable:!0,get:function(){return In.toRfc3339}});var Nn=On();Object.defineProperty(C,"fromUtf8",{enumerable:!0,get:function(){return Nn.fromUtf8}});Object.defineProperty(C,"toUtf8",{enumerable:!0,get:function(){return Nn.toUtf8}})});var Xe=class{constructor(e,r){l(this,"client");l(this,"contractAddress");l(this,"params",async()=>this.client.queryContractSmart(this.contractAddress,{params:{}}));l(this,"account",async({address:e})=>this.client.queryContractSmart(this.contractAddress,{account:{address:e}}));l(this,"associatedAddress",async({account:e})=>this.client.queryContractSmart(this.contractAddress,{associated_address:{account:e}}));l(this,"reverseMapAddress",async({address:e})=>this.client.queryContractSmart(this.contractAddress,{reverse_map_address:{address:e}}));l(this,"reverseMapAccount",async({address:e})=>this.client.queryContractSmart(this.contractAddress,{reverse_map_account:{address:e}}));l(this,"imageNFT",async({account:e})=>this.client.queryContractSmart(this.contractAddress,{image_n_f_t:{account:e}}));l(this,"textRecords",async({account:e})=>this.client.queryContractSmart(this.contractAddress,{text_records:{account:e}}));l(this,"verifier",async()=>this.client.queryContractSmart(this.contractAddress,{verifier:{}}));l(this,"ownerOf",async({includeExpired:e,tokenId:r})=>this.client.queryContractSmart(this.contractAddress,{owner_of:{include_expired:e,token_id:r}}));l(this,"approval",async({includeExpired:e,spender:r,tokenId:n})=>this.client.queryContractSmart(this.contractAddress,{approval:{include_expired:e,spender:r,token_id:n}}));l(this,"numTokens",async()=>this.client.queryContractSmart(this.contractAddress,{num_tokens:{}}));l(this,"contractInfo",async()=>this.client.queryContractSmart(this.contractAddress,{contract_info:{}}));l(this,"nftInfo",async({tokenId:e})=>this.client.queryContractSmart(this.contractAddress,{nft_info:{token_id:e}}));l(this,"allNftInfo",async({includeExpired:e,tokenId:r})=>this.client.queryContractSmart(this.contractAddress,{all_nft_info:{include_expired:e,token_id:r}}));l(this,"tokens",async({limit:e,owner:r,startAfter:n})=>this.client.queryContractSmart(this.contractAddress,{tokens:{limit:e,owner:r,start_after:n}}));l(this,"allTokens",async({limit:e,startAfter:r})=>this.client.queryContractSmart(this.contractAddress,{all_tokens:{limit:e,start_after:r}}));l(this,"minter",async()=>this.client.queryContractSmart(this.contractAddress,{minter:{}}));l(this,"operator",async({includeExpired:e,operator:r,owner:n})=>this.client.queryContractSmart(this.contractAddress,{operator:{include_expired:e,operator:r,owner:n}}));l(this,"ownership",async()=>this.client.queryContractSmart(this.contractAddress,{ownership:{}}));this.client=e,this.contractAddress=r,this.params=this.params.bind(this),this.account=this.account.bind(this),this.associatedAddress=this.associatedAddress.bind(this),this.reverseMapAddress=this.reverseMapAddress.bind(this),this.reverseMapAccount=this.reverseMapAccount.bind(this),this.imageNFT=this.imageNFT.bind(this),this.textRecords=this.textRecords.bind(this),this.verifier=this.verifier.bind(this),this.ownerOf=this.ownerOf.bind(this),this.approval=this.approval.bind(this),this.numTokens=this.numTokens.bind(this),this.contractInfo=this.contractInfo.bind(this),this.nftInfo=this.nftInfo.bind(this),this.allNftInfo=this.allNftInfo.bind(this),this.tokens=this.tokens.bind(this),this.allTokens=this.allTokens.bind(this),this.minter=this.minter.bind(this),this.operator=this.operator.bind(this),this.ownership=this.ownership.bind(this)}},Ct=class extends Xe{constructor(r,n,i){super(r,i);l(this,"client");l(this,"sender");l(this,"contractAddress");l(this,"setMarketplace",async({address:r},n="auto",i,o)=>await this.client.execute(this.sender,this.contractAddress,{set_marketplace:{address:r}},n,i,o));l(this,"associateAddress",async({account:r,address:n},i="auto",o,s)=>await this.client.execute(this.sender,this.contractAddress,{associate_address:{account:r,address:n}},i,o,s));l(this,"updateImageNft",async({account:r,nft:n},i="auto",o,s)=>await this.client.execute(this.sender,this.contractAddress,{update_image_nft:{account:r,nft:n}},i,o,s));l(this,"addTextRecord",async({account:r,record:n},i="auto",o,s)=>await this.client.execute(this.sender,this.contractAddress,{add_text_record:{account:r,record:n}},i,o,s));l(this,"removeTextRecord",async({account:r,recordAccount:n},i="auto",o,s)=>await this.client.execute(this.sender,this.contractAddress,{remove_text_record:{account:r,record_account:n}},i,o,s));l(this,"updateTextRecord",async({account:r,record:n},i="auto",o,s)=>await this.client.execute(this.sender,this.contractAddress,{update_text_record:{account:r,record:n}},i,o,s));l(this,"verifyTextRecord",async({account:r,recordAccount:n,result:i},o="auto",s,u)=>await this.client.execute(this.sender,this.contractAddress,{verify_text_record:{account:r,record_account:n,result:i}},o,s,u));l(this,"updateVerifier",async({verifier:r},n="auto",i,o)=>await this.client.execute(this.sender,this.contractAddress,{update_verifier:{verifier:r}},n,i,o));l(this,"transferNft",async({recipient:r,tokenId:n},i="auto",o,s)=>await this.client.execute(this.sender,this.contractAddress,{transfer_nft:{recipient:r,token_id:n}},i,o,s));l(this,"sendNft",async({contract:r,msg:n,tokenId:i},o="auto",s,u)=>await this.client.execute(this.sender,this.contractAddress,{send_nft:{contract:r,msg:n,token_id:i}},o,s,u));l(this,"approve",async({expires:r,spender:n,tokenId:i},o="auto",s,u)=>await this.client.execute(this.sender,this.contractAddress,{approve:{expires:r,spender:n,token_id:i}},o,s,u));l(this,"revoke",async({spender:r,tokenId:n},i="auto",o,s)=>await this.client.execute(this.sender,this.contractAddress,{revoke:{spender:r,token_id:n}},i,o,s));l(this,"approveAllViaMarket",async({expires:r,owner:n},i="auto",o,s)=>await this.client.execute(this.sender,this.contractAddress,{approve_all_via_market:{expires:r,owner:n}},i,o,s));l(this,"approveAll",async({expires:r,operator:n},i="auto",o,s)=>await this.client.execute(this.sender,this.contractAddress,{approve_all:{expires:r,operator:n}},i,o,s));l(this,"updateAbsAccSupport",async({abstract:r,tokenId:n},i="auto",o,s)=>await this.client.execute(this.sender,this.contractAddress,{update_abs_acc_support:{abstract:r,token_id:n}},i,o,s));l(this,"revokeAll",async({operator:r},n="auto",i,o)=>await this.client.execute(this.sender,this.contractAddress,{revoke_all:{operator:r}},n,i,o));l(this,"mint",async({extension:r,owner:n,tokenId:i,tokenUri:o},s="auto",u,a)=>await this.client.execute(this.sender,this.contractAddress,{mint:{extension:r,owner:n,token_id:i,token_uri:o}},s,u,a));l(this,"burn",async({tokenId:r},n="auto",i,o)=>await this.client.execute(this.sender,this.contractAddress,{burn:{token_id:r}},n,i,o));l(this,"freezeCollectionInfo",async(r="auto",n,i)=>await this.client.execute(this.sender,this.contractAddress,{freeze_collection_info:{}},r,n,i));l(this,"updateMyReverseMapKey",async({toAdd:r,toRemove:n},i="auto",o,s)=>await this.client.execute(this.sender,this.contractAddress,{update_my_reverse_map_key:{to_add:r,to_remove:n}},i,o,s));this.client=r,this.sender=n,this.contractAddress=i,this.setMarketplace=this.setMarketplace.bind(this),this.associateAddress=this.associateAddress.bind(this),this.updateImageNft=this.updateImageNft.bind(this),this.addTextRecord=this.addTextRecord.bind(this),this.removeTextRecord=this.removeTextRecord.bind(this),this.updateTextRecord=this.updateTextRecord.bind(this),this.verifyTextRecord=this.verifyTextRecord.bind(this),this.updateVerifier=this.updateVerifier.bind(this),this.transferNft=this.transferNft.bind(this),this.sendNft=this.sendNft.bind(this),this.approve=this.approve.bind(this),this.revoke=this.revoke.bind(this),this.approveAllViaMarket=this.approveAllViaMarket.bind(this),this.approveAll=this.approveAll.bind(this),this.updateAbsAccSupport=this.updateAbsAccSupport.bind(this),this.revokeAll=this.revokeAll.bind(this),this.mint=this.mint.bind(this),this.burn=this.burn.bind(this),this.freezeCollectionInfo=this.freezeCollectionInfo.bind(this),this.updateMyReverseMapKey=this.updateMyReverseMapKey.bind(this)}};var I=Et(fn()),N=Et(Pn());var Tn=class{constructor(e,r){l(this,"sender");l(this,"contractAddress");l(this,"setMarketplace",({address:e},r)=>({typeUrl:"/cosmwasm.wasm.v1.MsgExecuteContract",value:I.MsgExecuteContract.fromPartial({sender:this.sender,contract:this.contractAddress,msg:(0,N.toUtf8)(JSON.stringify({set_marketplace:{address:e}})),funds:r})}));l(this,"associateAddress",({account:e,address:r},n)=>({typeUrl:"/cosmwasm.wasm.v1.MsgExecuteContract",value:I.MsgExecuteContract.fromPartial({sender:this.sender,contract:this.contractAddress,msg:(0,N.toUtf8)(JSON.stringify({associate_address:{account:e,address:r}})),funds:n})}));l(this,"updateImageNft",({account:e,nft:r},n)=>({typeUrl:"/cosmwasm.wasm.v1.MsgExecuteContract",value:I.MsgExecuteContract.fromPartial({sender:this.sender,contract:this.contractAddress,msg:(0,N.toUtf8)(JSON.stringify({update_image_nft:{account:e,nft:r}})),funds:n})}));l(this,"addTextRecord",({account:e,record:r},n)=>({typeUrl:"/cosmwasm.wasm.v1.MsgExecuteContract",value:I.MsgExecuteContract.fromPartial({sender:this.sender,contract:this.contractAddress,msg:(0,N.toUtf8)(JSON.stringify({add_text_record:{account:e,record:r}})),funds:n})}));l(this,"removeTextRecord",({account:e,recordAccount:r},n)=>({typeUrl:"/cosmwasm.wasm.v1.MsgExecuteContract",value:I.MsgExecuteContract.fromPartial({sender:this.sender,contract:this.contractAddress,msg:(0,N.toUtf8)(JSON.stringify({remove_text_record:{account:e,record_account:r}})),funds:n})}));l(this,"updateTextRecord",({account:e,record:r},n)=>({typeUrl:"/cosmwasm.wasm.v1.MsgExecuteContract",value:I.MsgExecuteContract.fromPartial({sender:this.sender,contract:this.contractAddress,msg:(0,N.toUtf8)(JSON.stringify({update_text_record:{account:e,record:r}})),funds:n})}));l(this,"verifyTextRecord",({account:e,recordAccount:r,result:n},i)=>({typeUrl:"/cosmwasm.wasm.v1.MsgExecuteContract",value:I.MsgExecuteContract.fromPartial({sender:this.sender,contract:this.contractAddress,msg:(0,N.toUtf8)(JSON.stringify({verify_text_record:{account:e,record_account:r,result:n}})),funds:i})}));l(this,"updateVerifier",({verifier:e},r)=>({typeUrl:"/cosmwasm.wasm.v1.MsgExecuteContract",value:I.MsgExecuteContract.fromPartial({sender:this.sender,contract:this.contractAddress,msg:(0,N.toUtf8)(JSON.stringify({update_verifier:{verifier:e}})),funds:r})}));l(this,"transferNft",({recipient:e,tokenId:r},n)=>({typeUrl:"/cosmwasm.wasm.v1.MsgExecuteContract",value:I.MsgExecuteContract.fromPartial({sender:this.sender,contract:this.contractAddress,msg:(0,N.toUtf8)(JSON.stringify({transfer_nft:{recipient:e,token_id:r}})),funds:n})}));l(this,"sendNft",({contract:e,msg:r,tokenId:n},i)=>({typeUrl:"/cosmwasm.wasm.v1.MsgExecuteContract",value:I.MsgExecuteContract.fromPartial({sender:this.sender,contract:this.contractAddress,msg:(0,N.toUtf8)(JSON.stringify({send_nft:{contract:e,msg:r,token_id:n}})),funds:i})}));l(this,"approve",({expires:e,spender:r,tokenId:n},i)=>({typeUrl:"/cosmwasm.wasm.v1.MsgExecuteContract",value:I.MsgExecuteContract.fromPartial({sender:this.sender,contract:this.contractAddress,msg:(0,N.toUtf8)(JSON.stringify({approve:{expires:e,spender:r,token_id:n}})),funds:i})}));l(this,"revoke",({spender:e,tokenId:r},n)=>({typeUrl:"/cosmwasm.wasm.v1.MsgExecuteContract",value:I.MsgExecuteContract.fromPartial({sender:this.sender,contract:this.contractAddress,msg:(0,N.toUtf8)(JSON.stringify({revoke:{spender:e,token_id:r}})),funds:n})}));l(this,"approveAllViaMarket",({expires:e,owner:r},n)=>({typeUrl:"/cosmwasm.wasm.v1.MsgExecuteContract",value:I.MsgExecuteContract.fromPartial({sender:this.sender,contract:this.contractAddress,msg:(0,N.toUtf8)(JSON.stringify({approve_all_via_market:{expires:e,owner:r}})),funds:n})}));l(this,"approveAll",({expires:e,operator:r},n)=>({typeUrl:"/cosmwasm.wasm.v1.MsgExecuteContract",value:I.MsgExecuteContract.fromPartial({sender:this.sender,contract:this.contractAddress,msg:(0,N.toUtf8)(JSON.stringify({approve_all:{expires:e,operator:r}})),funds:n})}));l(this,"updateAbsAccSupport",({abstract:e,tokenId:r},n)=>({typeUrl:"/cosmwasm.wasm.v1.MsgExecuteContract",value:I.MsgExecuteContract.fromPartial({sender:this.sender,contract:this.contractAddress,msg:(0,N.toUtf8)(JSON.stringify({update_abs_acc_support:{abstract:e,token_id:r}})),funds:n})}));l(this,"revokeAll",({operator:e},r)=>({typeUrl:"/cosmwasm.wasm.v1.MsgExecuteContract",value:I.MsgExecuteContract.fromPartial({sender:this.sender,contract:this.contractAddress,msg:(0,N.toUtf8)(JSON.stringify({revoke_all:{operator:e}})),funds:r})}));l(this,"mint",({extension:e,owner:r,tokenId:n,tokenUri:i},o)=>({typeUrl:"/cosmwasm.wasm.v1.MsgExecuteContract",value:I.MsgExecuteContract.fromPartial({sender:this.sender,contract:this.contractAddress,msg:(0,N.toUtf8)(JSON.stringify({mint:{extension:e,owner:r,token_id:n,token_uri:i}})),funds:o})}));l(this,"burn",({tokenId:e},r)=>({typeUrl:"/cosmwasm.wasm.v1.MsgExecuteContract",value:I.MsgExecuteContract.fromPartial({sender:this.sender,contract:this.contractAddress,msg:(0,N.toUtf8)(JSON.stringify({burn:{token_id:e}})),funds:r})}));l(this,"freezeCollectionInfo",e=>({typeUrl:"/cosmwasm.wasm.v1.MsgExecuteContract",value:I.MsgExecuteContract.fromPartial({sender:this.sender,contract:this.contractAddress,msg:(0,N.toUtf8)(JSON.stringify({freeze_collection_info:{}})),funds:e})}));l(this,"updateMyReverseMapKey",({toAdd:e,toRemove:r},n)=>({typeUrl:"/cosmwasm.wasm.v1.MsgExecuteContract",value:I.MsgExecuteContract.fromPartial({sender:this.sender,contract:this.contractAddress,msg:(0,N.toUtf8)(JSON.stringify({update_my_reverse_map_key:{to_add:e,to_remove:r}})),funds:n})}));this.sender=e,this.contractAddress=r,this.setMarketplace=this.setMarketplace.bind(this),this.associateAddress=this.associateAddress.bind(this),this.updateImageNft=this.updateImageNft.bind(this),this.addTextRecord=this.addTextRecord.bind(this),this.removeTextRecord=this.removeTextRecord.bind(this),this.updateTextRecord=this.updateTextRecord.bind(this),this.verifyTextRecord=this.verifyTextRecord.bind(this),this.updateVerifier=this.updateVerifier.bind(this),this.transferNft=this.transferNft.bind(this),this.sendNft=this.sendNft.bind(this),this.approve=this.approve.bind(this),this.revoke=this.revoke.bind(this),this.approveAllViaMarket=this.approveAllViaMarket.bind(this),this.approveAll=this.approveAll.bind(this),this.updateAbsAccSupport=this.updateAbsAccSupport.bind(this),this.revokeAll=this.revokeAll.bind(this),this.mint=this.mint.bind(this),this.burn=this.burn.bind(this),this.freezeCollectionInfo=this.freezeCollectionInfo.bind(this),this.updateMyReverseMapKey=this.updateMyReverseMapKey.bind(this)}};export{Ct as Terp721AccountClient,Tn as Terp721AccountMessageComposer,Xe as Terp721AccountQueryClient}; +//# sourceMappingURL=terp721-account.js.map diff --git a/lib/terp721-account.js.map b/lib/terp721-account.js.map new file mode 100644 index 0000000..69a16c6 --- /dev/null +++ b/lib/terp721-account.js.map @@ -0,0 +1,7 @@ +{ + "version": 3, + "sources": ["../../node_modules/.pnpm/long@4.0.0/node_modules/long/src/long.js", "../../node_modules/.pnpm/@protobufjs+aspromise@1.1.2/node_modules/@protobufjs/aspromise/index.js", "../../node_modules/.pnpm/@protobufjs+base64@1.1.2/node_modules/@protobufjs/base64/index.js", "../../node_modules/.pnpm/@protobufjs+eventemitter@1.1.0/node_modules/@protobufjs/eventemitter/index.js", "../../node_modules/.pnpm/@protobufjs+float@1.0.2/node_modules/@protobufjs/float/index.js", "../../node_modules/.pnpm/@protobufjs+inquire@1.1.0/node_modules/@protobufjs/inquire/index.js", "../../node_modules/.pnpm/@protobufjs+utf8@1.1.0/node_modules/@protobufjs/utf8/index.js", "../../node_modules/.pnpm/@protobufjs+pool@1.1.0/node_modules/@protobufjs/pool/index.js", "../../node_modules/.pnpm/protobufjs@6.11.4/node_modules/protobufjs/src/util/longbits.js", "../../node_modules/.pnpm/protobufjs@6.11.4/node_modules/protobufjs/src/util/minimal.js", "../../node_modules/.pnpm/protobufjs@6.11.4/node_modules/protobufjs/src/writer.js", "../../node_modules/.pnpm/protobufjs@6.11.4/node_modules/protobufjs/src/writer_buffer.js", "../../node_modules/.pnpm/protobufjs@6.11.4/node_modules/protobufjs/src/reader.js", "../../node_modules/.pnpm/protobufjs@6.11.4/node_modules/protobufjs/src/reader_buffer.js", "../../node_modules/.pnpm/protobufjs@6.11.4/node_modules/protobufjs/src/rpc/service.js", "../../node_modules/.pnpm/protobufjs@6.11.4/node_modules/protobufjs/src/rpc.js", "../../node_modules/.pnpm/protobufjs@6.11.4/node_modules/protobufjs/src/roots.js", "../../node_modules/.pnpm/protobufjs@6.11.4/node_modules/protobufjs/src/index-minimal.js", "../../node_modules/.pnpm/protobufjs@6.11.4/node_modules/protobufjs/minimal.js", "../../node_modules/.pnpm/cosmjs-types@0.5.2/node_modules/src/cosmos/base/v1beta1/coin.ts", "../../node_modules/.pnpm/cosmjs-types@0.5.2/node_modules/src/google/protobuf/any.ts", "../../node_modules/.pnpm/cosmjs-types@0.5.2/node_modules/src/cosmwasm/wasm/v1/types.ts", "../../node_modules/.pnpm/cosmjs-types@0.5.2/node_modules/src/cosmwasm/wasm/v1/tx.ts", "../../node_modules/.pnpm/@cosmjs+encoding@0.29.4/node_modules/@cosmjs/encoding/src/ascii.ts", "../../node_modules/.pnpm/base64-js@1.5.1/node_modules/base64-js/index.js", "../../node_modules/.pnpm/@cosmjs+encoding@0.29.4/node_modules/@cosmjs/encoding/src/base64.ts", "../../node_modules/.pnpm/bech32@1.1.4/node_modules/bech32/index.js", "../../node_modules/.pnpm/@cosmjs+encoding@0.29.4/node_modules/@cosmjs/encoding/src/bech32.ts", "../../node_modules/.pnpm/@cosmjs+encoding@0.29.4/node_modules/@cosmjs/encoding/src/hex.ts", "../../node_modules/.pnpm/@cosmjs+encoding@0.29.4/node_modules/@cosmjs/encoding/src/rfc3339.ts", "../../node_modules/.pnpm/@cosmjs+encoding@0.29.4/node_modules/@cosmjs/encoding/src/utf8.ts", "../../node_modules/.pnpm/@cosmjs+encoding@0.29.4/node_modules/@cosmjs/encoding/src/index.ts", "../../src/Terp721Account.client.ts", "../../src/Terp721Account.message-composer.ts"], + "sourcesContent": ["module.exports = Long;\r\n\r\n/**\r\n * wasm optimizations, to do native i64 multiplication and divide\r\n */\r\nvar wasm = null;\r\n\r\ntry {\r\n wasm = new WebAssembly.Instance(new WebAssembly.Module(new Uint8Array([\r\n 0, 97, 115, 109, 1, 0, 0, 0, 1, 13, 2, 96, 0, 1, 127, 96, 4, 127, 127, 127, 127, 1, 127, 3, 7, 6, 0, 1, 1, 1, 1, 1, 6, 6, 1, 127, 1, 65, 0, 11, 7, 50, 6, 3, 109, 117, 108, 0, 1, 5, 100, 105, 118, 95, 115, 0, 2, 5, 100, 105, 118, 95, 117, 0, 3, 5, 114, 101, 109, 95, 115, 0, 4, 5, 114, 101, 109, 95, 117, 0, 5, 8, 103, 101, 116, 95, 104, 105, 103, 104, 0, 0, 10, 191, 1, 6, 4, 0, 35, 0, 11, 36, 1, 1, 126, 32, 0, 173, 32, 1, 173, 66, 32, 134, 132, 32, 2, 173, 32, 3, 173, 66, 32, 134, 132, 126, 34, 4, 66, 32, 135, 167, 36, 0, 32, 4, 167, 11, 36, 1, 1, 126, 32, 0, 173, 32, 1, 173, 66, 32, 134, 132, 32, 2, 173, 32, 3, 173, 66, 32, 134, 132, 127, 34, 4, 66, 32, 135, 167, 36, 0, 32, 4, 167, 11, 36, 1, 1, 126, 32, 0, 173, 32, 1, 173, 66, 32, 134, 132, 32, 2, 173, 32, 3, 173, 66, 32, 134, 132, 128, 34, 4, 66, 32, 135, 167, 36, 0, 32, 4, 167, 11, 36, 1, 1, 126, 32, 0, 173, 32, 1, 173, 66, 32, 134, 132, 32, 2, 173, 32, 3, 173, 66, 32, 134, 132, 129, 34, 4, 66, 32, 135, 167, 36, 0, 32, 4, 167, 11, 36, 1, 1, 126, 32, 0, 173, 32, 1, 173, 66, 32, 134, 132, 32, 2, 173, 32, 3, 173, 66, 32, 134, 132, 130, 34, 4, 66, 32, 135, 167, 36, 0, 32, 4, 167, 11\r\n ])), {}).exports;\r\n} catch (e) {\r\n // no wasm support :(\r\n}\r\n\r\n/**\r\n * Constructs a 64 bit two's-complement integer, given its low and high 32 bit values as *signed* integers.\r\n * See the from* functions below for more convenient ways of constructing Longs.\r\n * @exports Long\r\n * @class A Long class for representing a 64 bit two's-complement integer value.\r\n * @param {number} low The low (signed) 32 bits of the long\r\n * @param {number} high The high (signed) 32 bits of the long\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\r\n * @constructor\r\n */\r\nfunction Long(low, high, unsigned) {\r\n\r\n /**\r\n * The low 32 bits as a signed value.\r\n * @type {number}\r\n */\r\n this.low = low | 0;\r\n\r\n /**\r\n * The high 32 bits as a signed value.\r\n * @type {number}\r\n */\r\n this.high = high | 0;\r\n\r\n /**\r\n * Whether unsigned or not.\r\n * @type {boolean}\r\n */\r\n this.unsigned = !!unsigned;\r\n}\r\n\r\n// The internal representation of a long is the two given signed, 32-bit values.\r\n// We use 32-bit pieces because these are the size of integers on which\r\n// Javascript performs bit-operations. For operations like addition and\r\n// multiplication, we split each number into 16 bit pieces, which can easily be\r\n// multiplied within Javascript's floating-point representation without overflow\r\n// or change in sign.\r\n//\r\n// In the algorithms below, we frequently reduce the negative case to the\r\n// positive case by negating the input(s) and then post-processing the result.\r\n// Note that we must ALWAYS check specially whether those values are MIN_VALUE\r\n// (-2^63) because -MIN_VALUE == MIN_VALUE (since 2^63 cannot be represented as\r\n// a positive number, it overflows back into a negative). Not handling this\r\n// case would often result in infinite recursion.\r\n//\r\n// Common constant values ZERO, ONE, NEG_ONE, etc. are defined below the from*\r\n// methods on which they depend.\r\n\r\n/**\r\n * An indicator used to reliably determine if an object is a Long or not.\r\n * @type {boolean}\r\n * @const\r\n * @private\r\n */\r\nLong.prototype.__isLong__;\r\n\r\nObject.defineProperty(Long.prototype, \"__isLong__\", { value: true });\r\n\r\n/**\r\n * @function\r\n * @param {*} obj Object\r\n * @returns {boolean}\r\n * @inner\r\n */\r\nfunction isLong(obj) {\r\n return (obj && obj[\"__isLong__\"]) === true;\r\n}\r\n\r\n/**\r\n * Tests if the specified object is a Long.\r\n * @function\r\n * @param {*} obj Object\r\n * @returns {boolean}\r\n */\r\nLong.isLong = isLong;\r\n\r\n/**\r\n * A cache of the Long representations of small integer values.\r\n * @type {!Object}\r\n * @inner\r\n */\r\nvar INT_CACHE = {};\r\n\r\n/**\r\n * A cache of the Long representations of small unsigned integer values.\r\n * @type {!Object}\r\n * @inner\r\n */\r\nvar UINT_CACHE = {};\r\n\r\n/**\r\n * @param {number} value\r\n * @param {boolean=} unsigned\r\n * @returns {!Long}\r\n * @inner\r\n */\r\nfunction fromInt(value, unsigned) {\r\n var obj, cachedObj, cache;\r\n if (unsigned) {\r\n value >>>= 0;\r\n if (cache = (0 <= value && value < 256)) {\r\n cachedObj = UINT_CACHE[value];\r\n if (cachedObj)\r\n return cachedObj;\r\n }\r\n obj = fromBits(value, (value | 0) < 0 ? -1 : 0, true);\r\n if (cache)\r\n UINT_CACHE[value] = obj;\r\n return obj;\r\n } else {\r\n value |= 0;\r\n if (cache = (-128 <= value && value < 128)) {\r\n cachedObj = INT_CACHE[value];\r\n if (cachedObj)\r\n return cachedObj;\r\n }\r\n obj = fromBits(value, value < 0 ? -1 : 0, false);\r\n if (cache)\r\n INT_CACHE[value] = obj;\r\n return obj;\r\n }\r\n}\r\n\r\n/**\r\n * Returns a Long representing the given 32 bit integer value.\r\n * @function\r\n * @param {number} value The 32 bit integer in question\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\r\n * @returns {!Long} The corresponding Long value\r\n */\r\nLong.fromInt = fromInt;\r\n\r\n/**\r\n * @param {number} value\r\n * @param {boolean=} unsigned\r\n * @returns {!Long}\r\n * @inner\r\n */\r\nfunction fromNumber(value, unsigned) {\r\n if (isNaN(value))\r\n return unsigned ? UZERO : ZERO;\r\n if (unsigned) {\r\n if (value < 0)\r\n return UZERO;\r\n if (value >= TWO_PWR_64_DBL)\r\n return MAX_UNSIGNED_VALUE;\r\n } else {\r\n if (value <= -TWO_PWR_63_DBL)\r\n return MIN_VALUE;\r\n if (value + 1 >= TWO_PWR_63_DBL)\r\n return MAX_VALUE;\r\n }\r\n if (value < 0)\r\n return fromNumber(-value, unsigned).neg();\r\n return fromBits((value % TWO_PWR_32_DBL) | 0, (value / TWO_PWR_32_DBL) | 0, unsigned);\r\n}\r\n\r\n/**\r\n * Returns a Long representing the given value, provided that it is a finite number. Otherwise, zero is returned.\r\n * @function\r\n * @param {number} value The number in question\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\r\n * @returns {!Long} The corresponding Long value\r\n */\r\nLong.fromNumber = fromNumber;\r\n\r\n/**\r\n * @param {number} lowBits\r\n * @param {number} highBits\r\n * @param {boolean=} unsigned\r\n * @returns {!Long}\r\n * @inner\r\n */\r\nfunction fromBits(lowBits, highBits, unsigned) {\r\n return new Long(lowBits, highBits, unsigned);\r\n}\r\n\r\n/**\r\n * Returns a Long representing the 64 bit integer that comes by concatenating the given low and high bits. Each is\r\n * assumed to use 32 bits.\r\n * @function\r\n * @param {number} lowBits The low 32 bits\r\n * @param {number} highBits The high 32 bits\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\r\n * @returns {!Long} The corresponding Long value\r\n */\r\nLong.fromBits = fromBits;\r\n\r\n/**\r\n * @function\r\n * @param {number} base\r\n * @param {number} exponent\r\n * @returns {number}\r\n * @inner\r\n */\r\nvar pow_dbl = Math.pow; // Used 4 times (4*8 to 15+4)\r\n\r\n/**\r\n * @param {string} str\r\n * @param {(boolean|number)=} unsigned\r\n * @param {number=} radix\r\n * @returns {!Long}\r\n * @inner\r\n */\r\nfunction fromString(str, unsigned, radix) {\r\n if (str.length === 0)\r\n throw Error('empty string');\r\n if (str === \"NaN\" || str === \"Infinity\" || str === \"+Infinity\" || str === \"-Infinity\")\r\n return ZERO;\r\n if (typeof unsigned === 'number') {\r\n // For goog.math.long compatibility\r\n radix = unsigned,\r\n unsigned = false;\r\n } else {\r\n unsigned = !! unsigned;\r\n }\r\n radix = radix || 10;\r\n if (radix < 2 || 36 < radix)\r\n throw RangeError('radix');\r\n\r\n var p;\r\n if ((p = str.indexOf('-')) > 0)\r\n throw Error('interior hyphen');\r\n else if (p === 0) {\r\n return fromString(str.substring(1), unsigned, radix).neg();\r\n }\r\n\r\n // Do several (8) digits each time through the loop, so as to\r\n // minimize the calls to the very expensive emulated div.\r\n var radixToPower = fromNumber(pow_dbl(radix, 8));\r\n\r\n var result = ZERO;\r\n for (var i = 0; i < str.length; i += 8) {\r\n var size = Math.min(8, str.length - i),\r\n value = parseInt(str.substring(i, i + size), radix);\r\n if (size < 8) {\r\n var power = fromNumber(pow_dbl(radix, size));\r\n result = result.mul(power).add(fromNumber(value));\r\n } else {\r\n result = result.mul(radixToPower);\r\n result = result.add(fromNumber(value));\r\n }\r\n }\r\n result.unsigned = unsigned;\r\n return result;\r\n}\r\n\r\n/**\r\n * Returns a Long representation of the given string, written using the specified radix.\r\n * @function\r\n * @param {string} str The textual representation of the Long\r\n * @param {(boolean|number)=} unsigned Whether unsigned or not, defaults to signed\r\n * @param {number=} radix The radix in which the text is written (2-36), defaults to 10\r\n * @returns {!Long} The corresponding Long value\r\n */\r\nLong.fromString = fromString;\r\n\r\n/**\r\n * @function\r\n * @param {!Long|number|string|!{low: number, high: number, unsigned: boolean}} val\r\n * @param {boolean=} unsigned\r\n * @returns {!Long}\r\n * @inner\r\n */\r\nfunction fromValue(val, unsigned) {\r\n if (typeof val === 'number')\r\n return fromNumber(val, unsigned);\r\n if (typeof val === 'string')\r\n return fromString(val, unsigned);\r\n // Throws for non-objects, converts non-instanceof Long:\r\n return fromBits(val.low, val.high, typeof unsigned === 'boolean' ? unsigned : val.unsigned);\r\n}\r\n\r\n/**\r\n * Converts the specified value to a Long using the appropriate from* function for its type.\r\n * @function\r\n * @param {!Long|number|string|!{low: number, high: number, unsigned: boolean}} val Value\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\r\n * @returns {!Long}\r\n */\r\nLong.fromValue = fromValue;\r\n\r\n// NOTE: the compiler should inline these constant values below and then remove these variables, so there should be\r\n// no runtime penalty for these.\r\n\r\n/**\r\n * @type {number}\r\n * @const\r\n * @inner\r\n */\r\nvar TWO_PWR_16_DBL = 1 << 16;\r\n\r\n/**\r\n * @type {number}\r\n * @const\r\n * @inner\r\n */\r\nvar TWO_PWR_24_DBL = 1 << 24;\r\n\r\n/**\r\n * @type {number}\r\n * @const\r\n * @inner\r\n */\r\nvar TWO_PWR_32_DBL = TWO_PWR_16_DBL * TWO_PWR_16_DBL;\r\n\r\n/**\r\n * @type {number}\r\n * @const\r\n * @inner\r\n */\r\nvar TWO_PWR_64_DBL = TWO_PWR_32_DBL * TWO_PWR_32_DBL;\r\n\r\n/**\r\n * @type {number}\r\n * @const\r\n * @inner\r\n */\r\nvar TWO_PWR_63_DBL = TWO_PWR_64_DBL / 2;\r\n\r\n/**\r\n * @type {!Long}\r\n * @const\r\n * @inner\r\n */\r\nvar TWO_PWR_24 = fromInt(TWO_PWR_24_DBL);\r\n\r\n/**\r\n * @type {!Long}\r\n * @inner\r\n */\r\nvar ZERO = fromInt(0);\r\n\r\n/**\r\n * Signed zero.\r\n * @type {!Long}\r\n */\r\nLong.ZERO = ZERO;\r\n\r\n/**\r\n * @type {!Long}\r\n * @inner\r\n */\r\nvar UZERO = fromInt(0, true);\r\n\r\n/**\r\n * Unsigned zero.\r\n * @type {!Long}\r\n */\r\nLong.UZERO = UZERO;\r\n\r\n/**\r\n * @type {!Long}\r\n * @inner\r\n */\r\nvar ONE = fromInt(1);\r\n\r\n/**\r\n * Signed one.\r\n * @type {!Long}\r\n */\r\nLong.ONE = ONE;\r\n\r\n/**\r\n * @type {!Long}\r\n * @inner\r\n */\r\nvar UONE = fromInt(1, true);\r\n\r\n/**\r\n * Unsigned one.\r\n * @type {!Long}\r\n */\r\nLong.UONE = UONE;\r\n\r\n/**\r\n * @type {!Long}\r\n * @inner\r\n */\r\nvar NEG_ONE = fromInt(-1);\r\n\r\n/**\r\n * Signed negative one.\r\n * @type {!Long}\r\n */\r\nLong.NEG_ONE = NEG_ONE;\r\n\r\n/**\r\n * @type {!Long}\r\n * @inner\r\n */\r\nvar MAX_VALUE = fromBits(0xFFFFFFFF|0, 0x7FFFFFFF|0, false);\r\n\r\n/**\r\n * Maximum signed value.\r\n * @type {!Long}\r\n */\r\nLong.MAX_VALUE = MAX_VALUE;\r\n\r\n/**\r\n * @type {!Long}\r\n * @inner\r\n */\r\nvar MAX_UNSIGNED_VALUE = fromBits(0xFFFFFFFF|0, 0xFFFFFFFF|0, true);\r\n\r\n/**\r\n * Maximum unsigned value.\r\n * @type {!Long}\r\n */\r\nLong.MAX_UNSIGNED_VALUE = MAX_UNSIGNED_VALUE;\r\n\r\n/**\r\n * @type {!Long}\r\n * @inner\r\n */\r\nvar MIN_VALUE = fromBits(0, 0x80000000|0, false);\r\n\r\n/**\r\n * Minimum signed value.\r\n * @type {!Long}\r\n */\r\nLong.MIN_VALUE = MIN_VALUE;\r\n\r\n/**\r\n * @alias Long.prototype\r\n * @inner\r\n */\r\nvar LongPrototype = Long.prototype;\r\n\r\n/**\r\n * Converts the Long to a 32 bit integer, assuming it is a 32 bit integer.\r\n * @returns {number}\r\n */\r\nLongPrototype.toInt = function toInt() {\r\n return this.unsigned ? this.low >>> 0 : this.low;\r\n};\r\n\r\n/**\r\n * Converts the Long to a the nearest floating-point representation of this value (double, 53 bit mantissa).\r\n * @returns {number}\r\n */\r\nLongPrototype.toNumber = function toNumber() {\r\n if (this.unsigned)\r\n return ((this.high >>> 0) * TWO_PWR_32_DBL) + (this.low >>> 0);\r\n return this.high * TWO_PWR_32_DBL + (this.low >>> 0);\r\n};\r\n\r\n/**\r\n * Converts the Long to a string written in the specified radix.\r\n * @param {number=} radix Radix (2-36), defaults to 10\r\n * @returns {string}\r\n * @override\r\n * @throws {RangeError} If `radix` is out of range\r\n */\r\nLongPrototype.toString = function toString(radix) {\r\n radix = radix || 10;\r\n if (radix < 2 || 36 < radix)\r\n throw RangeError('radix');\r\n if (this.isZero())\r\n return '0';\r\n if (this.isNegative()) { // Unsigned Longs are never negative\r\n if (this.eq(MIN_VALUE)) {\r\n // We need to change the Long value before it can be negated, so we remove\r\n // the bottom-most digit in this base and then recurse to do the rest.\r\n var radixLong = fromNumber(radix),\r\n div = this.div(radixLong),\r\n rem1 = div.mul(radixLong).sub(this);\r\n return div.toString(radix) + rem1.toInt().toString(radix);\r\n } else\r\n return '-' + this.neg().toString(radix);\r\n }\r\n\r\n // Do several (6) digits each time through the loop, so as to\r\n // minimize the calls to the very expensive emulated div.\r\n var radixToPower = fromNumber(pow_dbl(radix, 6), this.unsigned),\r\n rem = this;\r\n var result = '';\r\n while (true) {\r\n var remDiv = rem.div(radixToPower),\r\n intval = rem.sub(remDiv.mul(radixToPower)).toInt() >>> 0,\r\n digits = intval.toString(radix);\r\n rem = remDiv;\r\n if (rem.isZero())\r\n return digits + result;\r\n else {\r\n while (digits.length < 6)\r\n digits = '0' + digits;\r\n result = '' + digits + result;\r\n }\r\n }\r\n};\r\n\r\n/**\r\n * Gets the high 32 bits as a signed integer.\r\n * @returns {number} Signed high bits\r\n */\r\nLongPrototype.getHighBits = function getHighBits() {\r\n return this.high;\r\n};\r\n\r\n/**\r\n * Gets the high 32 bits as an unsigned integer.\r\n * @returns {number} Unsigned high bits\r\n */\r\nLongPrototype.getHighBitsUnsigned = function getHighBitsUnsigned() {\r\n return this.high >>> 0;\r\n};\r\n\r\n/**\r\n * Gets the low 32 bits as a signed integer.\r\n * @returns {number} Signed low bits\r\n */\r\nLongPrototype.getLowBits = function getLowBits() {\r\n return this.low;\r\n};\r\n\r\n/**\r\n * Gets the low 32 bits as an unsigned integer.\r\n * @returns {number} Unsigned low bits\r\n */\r\nLongPrototype.getLowBitsUnsigned = function getLowBitsUnsigned() {\r\n return this.low >>> 0;\r\n};\r\n\r\n/**\r\n * Gets the number of bits needed to represent the absolute value of this Long.\r\n * @returns {number}\r\n */\r\nLongPrototype.getNumBitsAbs = function getNumBitsAbs() {\r\n if (this.isNegative()) // Unsigned Longs are never negative\r\n return this.eq(MIN_VALUE) ? 64 : this.neg().getNumBitsAbs();\r\n var val = this.high != 0 ? this.high : this.low;\r\n for (var bit = 31; bit > 0; bit--)\r\n if ((val & (1 << bit)) != 0)\r\n break;\r\n return this.high != 0 ? bit + 33 : bit + 1;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value equals zero.\r\n * @returns {boolean}\r\n */\r\nLongPrototype.isZero = function isZero() {\r\n return this.high === 0 && this.low === 0;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value equals zero. This is an alias of {@link Long#isZero}.\r\n * @returns {boolean}\r\n */\r\nLongPrototype.eqz = LongPrototype.isZero;\r\n\r\n/**\r\n * Tests if this Long's value is negative.\r\n * @returns {boolean}\r\n */\r\nLongPrototype.isNegative = function isNegative() {\r\n return !this.unsigned && this.high < 0;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value is positive.\r\n * @returns {boolean}\r\n */\r\nLongPrototype.isPositive = function isPositive() {\r\n return this.unsigned || this.high >= 0;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value is odd.\r\n * @returns {boolean}\r\n */\r\nLongPrototype.isOdd = function isOdd() {\r\n return (this.low & 1) === 1;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value is even.\r\n * @returns {boolean}\r\n */\r\nLongPrototype.isEven = function isEven() {\r\n return (this.low & 1) === 0;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value equals the specified's.\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.equals = function equals(other) {\r\n if (!isLong(other))\r\n other = fromValue(other);\r\n if (this.unsigned !== other.unsigned && (this.high >>> 31) === 1 && (other.high >>> 31) === 1)\r\n return false;\r\n return this.high === other.high && this.low === other.low;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value equals the specified's. This is an alias of {@link Long#equals}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.eq = LongPrototype.equals;\r\n\r\n/**\r\n * Tests if this Long's value differs from the specified's.\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.notEquals = function notEquals(other) {\r\n return !this.eq(/* validates */ other);\r\n};\r\n\r\n/**\r\n * Tests if this Long's value differs from the specified's. This is an alias of {@link Long#notEquals}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.neq = LongPrototype.notEquals;\r\n\r\n/**\r\n * Tests if this Long's value differs from the specified's. This is an alias of {@link Long#notEquals}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.ne = LongPrototype.notEquals;\r\n\r\n/**\r\n * Tests if this Long's value is less than the specified's.\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.lessThan = function lessThan(other) {\r\n return this.comp(/* validates */ other) < 0;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value is less than the specified's. This is an alias of {@link Long#lessThan}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.lt = LongPrototype.lessThan;\r\n\r\n/**\r\n * Tests if this Long's value is less than or equal the specified's.\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.lessThanOrEqual = function lessThanOrEqual(other) {\r\n return this.comp(/* validates */ other) <= 0;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value is less than or equal the specified's. This is an alias of {@link Long#lessThanOrEqual}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.lte = LongPrototype.lessThanOrEqual;\r\n\r\n/**\r\n * Tests if this Long's value is less than or equal the specified's. This is an alias of {@link Long#lessThanOrEqual}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.le = LongPrototype.lessThanOrEqual;\r\n\r\n/**\r\n * Tests if this Long's value is greater than the specified's.\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.greaterThan = function greaterThan(other) {\r\n return this.comp(/* validates */ other) > 0;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value is greater than the specified's. This is an alias of {@link Long#greaterThan}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.gt = LongPrototype.greaterThan;\r\n\r\n/**\r\n * Tests if this Long's value is greater than or equal the specified's.\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.greaterThanOrEqual = function greaterThanOrEqual(other) {\r\n return this.comp(/* validates */ other) >= 0;\r\n};\r\n\r\n/**\r\n * Tests if this Long's value is greater than or equal the specified's. This is an alias of {@link Long#greaterThanOrEqual}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.gte = LongPrototype.greaterThanOrEqual;\r\n\r\n/**\r\n * Tests if this Long's value is greater than or equal the specified's. This is an alias of {@link Long#greaterThanOrEqual}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {boolean}\r\n */\r\nLongPrototype.ge = LongPrototype.greaterThanOrEqual;\r\n\r\n/**\r\n * Compares this Long's value with the specified's.\r\n * @param {!Long|number|string} other Other value\r\n * @returns {number} 0 if they are the same, 1 if the this is greater and -1\r\n * if the given one is greater\r\n */\r\nLongPrototype.compare = function compare(other) {\r\n if (!isLong(other))\r\n other = fromValue(other);\r\n if (this.eq(other))\r\n return 0;\r\n var thisNeg = this.isNegative(),\r\n otherNeg = other.isNegative();\r\n if (thisNeg && !otherNeg)\r\n return -1;\r\n if (!thisNeg && otherNeg)\r\n return 1;\r\n // At this point the sign bits are the same\r\n if (!this.unsigned)\r\n return this.sub(other).isNegative() ? -1 : 1;\r\n // Both are positive if at least one is unsigned\r\n return (other.high >>> 0) > (this.high >>> 0) || (other.high === this.high && (other.low >>> 0) > (this.low >>> 0)) ? -1 : 1;\r\n};\r\n\r\n/**\r\n * Compares this Long's value with the specified's. This is an alias of {@link Long#compare}.\r\n * @function\r\n * @param {!Long|number|string} other Other value\r\n * @returns {number} 0 if they are the same, 1 if the this is greater and -1\r\n * if the given one is greater\r\n */\r\nLongPrototype.comp = LongPrototype.compare;\r\n\r\n/**\r\n * Negates this Long's value.\r\n * @returns {!Long} Negated Long\r\n */\r\nLongPrototype.negate = function negate() {\r\n if (!this.unsigned && this.eq(MIN_VALUE))\r\n return MIN_VALUE;\r\n return this.not().add(ONE);\r\n};\r\n\r\n/**\r\n * Negates this Long's value. This is an alias of {@link Long#negate}.\r\n * @function\r\n * @returns {!Long} Negated Long\r\n */\r\nLongPrototype.neg = LongPrototype.negate;\r\n\r\n/**\r\n * Returns the sum of this and the specified Long.\r\n * @param {!Long|number|string} addend Addend\r\n * @returns {!Long} Sum\r\n */\r\nLongPrototype.add = function add(addend) {\r\n if (!isLong(addend))\r\n addend = fromValue(addend);\r\n\r\n // Divide each number into 4 chunks of 16 bits, and then sum the chunks.\r\n\r\n var a48 = this.high >>> 16;\r\n var a32 = this.high & 0xFFFF;\r\n var a16 = this.low >>> 16;\r\n var a00 = this.low & 0xFFFF;\r\n\r\n var b48 = addend.high >>> 16;\r\n var b32 = addend.high & 0xFFFF;\r\n var b16 = addend.low >>> 16;\r\n var b00 = addend.low & 0xFFFF;\r\n\r\n var c48 = 0, c32 = 0, c16 = 0, c00 = 0;\r\n c00 += a00 + b00;\r\n c16 += c00 >>> 16;\r\n c00 &= 0xFFFF;\r\n c16 += a16 + b16;\r\n c32 += c16 >>> 16;\r\n c16 &= 0xFFFF;\r\n c32 += a32 + b32;\r\n c48 += c32 >>> 16;\r\n c32 &= 0xFFFF;\r\n c48 += a48 + b48;\r\n c48 &= 0xFFFF;\r\n return fromBits((c16 << 16) | c00, (c48 << 16) | c32, this.unsigned);\r\n};\r\n\r\n/**\r\n * Returns the difference of this and the specified Long.\r\n * @param {!Long|number|string} subtrahend Subtrahend\r\n * @returns {!Long} Difference\r\n */\r\nLongPrototype.subtract = function subtract(subtrahend) {\r\n if (!isLong(subtrahend))\r\n subtrahend = fromValue(subtrahend);\r\n return this.add(subtrahend.neg());\r\n};\r\n\r\n/**\r\n * Returns the difference of this and the specified Long. This is an alias of {@link Long#subtract}.\r\n * @function\r\n * @param {!Long|number|string} subtrahend Subtrahend\r\n * @returns {!Long} Difference\r\n */\r\nLongPrototype.sub = LongPrototype.subtract;\r\n\r\n/**\r\n * Returns the product of this and the specified Long.\r\n * @param {!Long|number|string} multiplier Multiplier\r\n * @returns {!Long} Product\r\n */\r\nLongPrototype.multiply = function multiply(multiplier) {\r\n if (this.isZero())\r\n return ZERO;\r\n if (!isLong(multiplier))\r\n multiplier = fromValue(multiplier);\r\n\r\n // use wasm support if present\r\n if (wasm) {\r\n var low = wasm.mul(this.low,\r\n this.high,\r\n multiplier.low,\r\n multiplier.high);\r\n return fromBits(low, wasm.get_high(), this.unsigned);\r\n }\r\n\r\n if (multiplier.isZero())\r\n return ZERO;\r\n if (this.eq(MIN_VALUE))\r\n return multiplier.isOdd() ? MIN_VALUE : ZERO;\r\n if (multiplier.eq(MIN_VALUE))\r\n return this.isOdd() ? MIN_VALUE : ZERO;\r\n\r\n if (this.isNegative()) {\r\n if (multiplier.isNegative())\r\n return this.neg().mul(multiplier.neg());\r\n else\r\n return this.neg().mul(multiplier).neg();\r\n } else if (multiplier.isNegative())\r\n return this.mul(multiplier.neg()).neg();\r\n\r\n // If both longs are small, use float multiplication\r\n if (this.lt(TWO_PWR_24) && multiplier.lt(TWO_PWR_24))\r\n return fromNumber(this.toNumber() * multiplier.toNumber(), this.unsigned);\r\n\r\n // Divide each long into 4 chunks of 16 bits, and then add up 4x4 products.\r\n // We can skip products that would overflow.\r\n\r\n var a48 = this.high >>> 16;\r\n var a32 = this.high & 0xFFFF;\r\n var a16 = this.low >>> 16;\r\n var a00 = this.low & 0xFFFF;\r\n\r\n var b48 = multiplier.high >>> 16;\r\n var b32 = multiplier.high & 0xFFFF;\r\n var b16 = multiplier.low >>> 16;\r\n var b00 = multiplier.low & 0xFFFF;\r\n\r\n var c48 = 0, c32 = 0, c16 = 0, c00 = 0;\r\n c00 += a00 * b00;\r\n c16 += c00 >>> 16;\r\n c00 &= 0xFFFF;\r\n c16 += a16 * b00;\r\n c32 += c16 >>> 16;\r\n c16 &= 0xFFFF;\r\n c16 += a00 * b16;\r\n c32 += c16 >>> 16;\r\n c16 &= 0xFFFF;\r\n c32 += a32 * b00;\r\n c48 += c32 >>> 16;\r\n c32 &= 0xFFFF;\r\n c32 += a16 * b16;\r\n c48 += c32 >>> 16;\r\n c32 &= 0xFFFF;\r\n c32 += a00 * b32;\r\n c48 += c32 >>> 16;\r\n c32 &= 0xFFFF;\r\n c48 += a48 * b00 + a32 * b16 + a16 * b32 + a00 * b48;\r\n c48 &= 0xFFFF;\r\n return fromBits((c16 << 16) | c00, (c48 << 16) | c32, this.unsigned);\r\n};\r\n\r\n/**\r\n * Returns the product of this and the specified Long. This is an alias of {@link Long#multiply}.\r\n * @function\r\n * @param {!Long|number|string} multiplier Multiplier\r\n * @returns {!Long} Product\r\n */\r\nLongPrototype.mul = LongPrototype.multiply;\r\n\r\n/**\r\n * Returns this Long divided by the specified. The result is signed if this Long is signed or\r\n * unsigned if this Long is unsigned.\r\n * @param {!Long|number|string} divisor Divisor\r\n * @returns {!Long} Quotient\r\n */\r\nLongPrototype.divide = function divide(divisor) {\r\n if (!isLong(divisor))\r\n divisor = fromValue(divisor);\r\n if (divisor.isZero())\r\n throw Error('division by zero');\r\n\r\n // use wasm support if present\r\n if (wasm) {\r\n // guard against signed division overflow: the largest\r\n // negative number / -1 would be 1 larger than the largest\r\n // positive number, due to two's complement.\r\n if (!this.unsigned &&\r\n this.high === -0x80000000 &&\r\n divisor.low === -1 && divisor.high === -1) {\r\n // be consistent with non-wasm code path\r\n return this;\r\n }\r\n var low = (this.unsigned ? wasm.div_u : wasm.div_s)(\r\n this.low,\r\n this.high,\r\n divisor.low,\r\n divisor.high\r\n );\r\n return fromBits(low, wasm.get_high(), this.unsigned);\r\n }\r\n\r\n if (this.isZero())\r\n return this.unsigned ? UZERO : ZERO;\r\n var approx, rem, res;\r\n if (!this.unsigned) {\r\n // This section is only relevant for signed longs and is derived from the\r\n // closure library as a whole.\r\n if (this.eq(MIN_VALUE)) {\r\n if (divisor.eq(ONE) || divisor.eq(NEG_ONE))\r\n return MIN_VALUE; // recall that -MIN_VALUE == MIN_VALUE\r\n else if (divisor.eq(MIN_VALUE))\r\n return ONE;\r\n else {\r\n // At this point, we have |other| >= 2, so |this/other| < |MIN_VALUE|.\r\n var halfThis = this.shr(1);\r\n approx = halfThis.div(divisor).shl(1);\r\n if (approx.eq(ZERO)) {\r\n return divisor.isNegative() ? ONE : NEG_ONE;\r\n } else {\r\n rem = this.sub(divisor.mul(approx));\r\n res = approx.add(rem.div(divisor));\r\n return res;\r\n }\r\n }\r\n } else if (divisor.eq(MIN_VALUE))\r\n return this.unsigned ? UZERO : ZERO;\r\n if (this.isNegative()) {\r\n if (divisor.isNegative())\r\n return this.neg().div(divisor.neg());\r\n return this.neg().div(divisor).neg();\r\n } else if (divisor.isNegative())\r\n return this.div(divisor.neg()).neg();\r\n res = ZERO;\r\n } else {\r\n // The algorithm below has not been made for unsigned longs. It's therefore\r\n // required to take special care of the MSB prior to running it.\r\n if (!divisor.unsigned)\r\n divisor = divisor.toUnsigned();\r\n if (divisor.gt(this))\r\n return UZERO;\r\n if (divisor.gt(this.shru(1))) // 15 >>> 1 = 7 ; with divisor = 8 ; true\r\n return UONE;\r\n res = UZERO;\r\n }\r\n\r\n // Repeat the following until the remainder is less than other: find a\r\n // floating-point that approximates remainder / other *from below*, add this\r\n // into the result, and subtract it from the remainder. It is critical that\r\n // the approximate value is less than or equal to the real value so that the\r\n // remainder never becomes negative.\r\n rem = this;\r\n while (rem.gte(divisor)) {\r\n // Approximate the result of division. This may be a little greater or\r\n // smaller than the actual value.\r\n approx = Math.max(1, Math.floor(rem.toNumber() / divisor.toNumber()));\r\n\r\n // We will tweak the approximate result by changing it in the 48-th digit or\r\n // the smallest non-fractional digit, whichever is larger.\r\n var log2 = Math.ceil(Math.log(approx) / Math.LN2),\r\n delta = (log2 <= 48) ? 1 : pow_dbl(2, log2 - 48),\r\n\r\n // Decrease the approximation until it is smaller than the remainder. Note\r\n // that if it is too large, the product overflows and is negative.\r\n approxRes = fromNumber(approx),\r\n approxRem = approxRes.mul(divisor);\r\n while (approxRem.isNegative() || approxRem.gt(rem)) {\r\n approx -= delta;\r\n approxRes = fromNumber(approx, this.unsigned);\r\n approxRem = approxRes.mul(divisor);\r\n }\r\n\r\n // We know the answer can't be zero... and actually, zero would cause\r\n // infinite recursion since we would make no progress.\r\n if (approxRes.isZero())\r\n approxRes = ONE;\r\n\r\n res = res.add(approxRes);\r\n rem = rem.sub(approxRem);\r\n }\r\n return res;\r\n};\r\n\r\n/**\r\n * Returns this Long divided by the specified. This is an alias of {@link Long#divide}.\r\n * @function\r\n * @param {!Long|number|string} divisor Divisor\r\n * @returns {!Long} Quotient\r\n */\r\nLongPrototype.div = LongPrototype.divide;\r\n\r\n/**\r\n * Returns this Long modulo the specified.\r\n * @param {!Long|number|string} divisor Divisor\r\n * @returns {!Long} Remainder\r\n */\r\nLongPrototype.modulo = function modulo(divisor) {\r\n if (!isLong(divisor))\r\n divisor = fromValue(divisor);\r\n\r\n // use wasm support if present\r\n if (wasm) {\r\n var low = (this.unsigned ? wasm.rem_u : wasm.rem_s)(\r\n this.low,\r\n this.high,\r\n divisor.low,\r\n divisor.high\r\n );\r\n return fromBits(low, wasm.get_high(), this.unsigned);\r\n }\r\n\r\n return this.sub(this.div(divisor).mul(divisor));\r\n};\r\n\r\n/**\r\n * Returns this Long modulo the specified. This is an alias of {@link Long#modulo}.\r\n * @function\r\n * @param {!Long|number|string} divisor Divisor\r\n * @returns {!Long} Remainder\r\n */\r\nLongPrototype.mod = LongPrototype.modulo;\r\n\r\n/**\r\n * Returns this Long modulo the specified. This is an alias of {@link Long#modulo}.\r\n * @function\r\n * @param {!Long|number|string} divisor Divisor\r\n * @returns {!Long} Remainder\r\n */\r\nLongPrototype.rem = LongPrototype.modulo;\r\n\r\n/**\r\n * Returns the bitwise NOT of this Long.\r\n * @returns {!Long}\r\n */\r\nLongPrototype.not = function not() {\r\n return fromBits(~this.low, ~this.high, this.unsigned);\r\n};\r\n\r\n/**\r\n * Returns the bitwise AND of this Long and the specified.\r\n * @param {!Long|number|string} other Other Long\r\n * @returns {!Long}\r\n */\r\nLongPrototype.and = function and(other) {\r\n if (!isLong(other))\r\n other = fromValue(other);\r\n return fromBits(this.low & other.low, this.high & other.high, this.unsigned);\r\n};\r\n\r\n/**\r\n * Returns the bitwise OR of this Long and the specified.\r\n * @param {!Long|number|string} other Other Long\r\n * @returns {!Long}\r\n */\r\nLongPrototype.or = function or(other) {\r\n if (!isLong(other))\r\n other = fromValue(other);\r\n return fromBits(this.low | other.low, this.high | other.high, this.unsigned);\r\n};\r\n\r\n/**\r\n * Returns the bitwise XOR of this Long and the given one.\r\n * @param {!Long|number|string} other Other Long\r\n * @returns {!Long}\r\n */\r\nLongPrototype.xor = function xor(other) {\r\n if (!isLong(other))\r\n other = fromValue(other);\r\n return fromBits(this.low ^ other.low, this.high ^ other.high, this.unsigned);\r\n};\r\n\r\n/**\r\n * Returns this Long with bits shifted to the left by the given amount.\r\n * @param {number|!Long} numBits Number of bits\r\n * @returns {!Long} Shifted Long\r\n */\r\nLongPrototype.shiftLeft = function shiftLeft(numBits) {\r\n if (isLong(numBits))\r\n numBits = numBits.toInt();\r\n if ((numBits &= 63) === 0)\r\n return this;\r\n else if (numBits < 32)\r\n return fromBits(this.low << numBits, (this.high << numBits) | (this.low >>> (32 - numBits)), this.unsigned);\r\n else\r\n return fromBits(0, this.low << (numBits - 32), this.unsigned);\r\n};\r\n\r\n/**\r\n * Returns this Long with bits shifted to the left by the given amount. This is an alias of {@link Long#shiftLeft}.\r\n * @function\r\n * @param {number|!Long} numBits Number of bits\r\n * @returns {!Long} Shifted Long\r\n */\r\nLongPrototype.shl = LongPrototype.shiftLeft;\r\n\r\n/**\r\n * Returns this Long with bits arithmetically shifted to the right by the given amount.\r\n * @param {number|!Long} numBits Number of bits\r\n * @returns {!Long} Shifted Long\r\n */\r\nLongPrototype.shiftRight = function shiftRight(numBits) {\r\n if (isLong(numBits))\r\n numBits = numBits.toInt();\r\n if ((numBits &= 63) === 0)\r\n return this;\r\n else if (numBits < 32)\r\n return fromBits((this.low >>> numBits) | (this.high << (32 - numBits)), this.high >> numBits, this.unsigned);\r\n else\r\n return fromBits(this.high >> (numBits - 32), this.high >= 0 ? 0 : -1, this.unsigned);\r\n};\r\n\r\n/**\r\n * Returns this Long with bits arithmetically shifted to the right by the given amount. This is an alias of {@link Long#shiftRight}.\r\n * @function\r\n * @param {number|!Long} numBits Number of bits\r\n * @returns {!Long} Shifted Long\r\n */\r\nLongPrototype.shr = LongPrototype.shiftRight;\r\n\r\n/**\r\n * Returns this Long with bits logically shifted to the right by the given amount.\r\n * @param {number|!Long} numBits Number of bits\r\n * @returns {!Long} Shifted Long\r\n */\r\nLongPrototype.shiftRightUnsigned = function shiftRightUnsigned(numBits) {\r\n if (isLong(numBits))\r\n numBits = numBits.toInt();\r\n numBits &= 63;\r\n if (numBits === 0)\r\n return this;\r\n else {\r\n var high = this.high;\r\n if (numBits < 32) {\r\n var low = this.low;\r\n return fromBits((low >>> numBits) | (high << (32 - numBits)), high >>> numBits, this.unsigned);\r\n } else if (numBits === 32)\r\n return fromBits(high, 0, this.unsigned);\r\n else\r\n return fromBits(high >>> (numBits - 32), 0, this.unsigned);\r\n }\r\n};\r\n\r\n/**\r\n * Returns this Long with bits logically shifted to the right by the given amount. This is an alias of {@link Long#shiftRightUnsigned}.\r\n * @function\r\n * @param {number|!Long} numBits Number of bits\r\n * @returns {!Long} Shifted Long\r\n */\r\nLongPrototype.shru = LongPrototype.shiftRightUnsigned;\r\n\r\n/**\r\n * Returns this Long with bits logically shifted to the right by the given amount. This is an alias of {@link Long#shiftRightUnsigned}.\r\n * @function\r\n * @param {number|!Long} numBits Number of bits\r\n * @returns {!Long} Shifted Long\r\n */\r\nLongPrototype.shr_u = LongPrototype.shiftRightUnsigned;\r\n\r\n/**\r\n * Converts this Long to signed.\r\n * @returns {!Long} Signed long\r\n */\r\nLongPrototype.toSigned = function toSigned() {\r\n if (!this.unsigned)\r\n return this;\r\n return fromBits(this.low, this.high, false);\r\n};\r\n\r\n/**\r\n * Converts this Long to unsigned.\r\n * @returns {!Long} Unsigned long\r\n */\r\nLongPrototype.toUnsigned = function toUnsigned() {\r\n if (this.unsigned)\r\n return this;\r\n return fromBits(this.low, this.high, true);\r\n};\r\n\r\n/**\r\n * Converts this Long to its byte representation.\r\n * @param {boolean=} le Whether little or big endian, defaults to big endian\r\n * @returns {!Array.} Byte representation\r\n */\r\nLongPrototype.toBytes = function toBytes(le) {\r\n return le ? this.toBytesLE() : this.toBytesBE();\r\n};\r\n\r\n/**\r\n * Converts this Long to its little endian byte representation.\r\n * @returns {!Array.} Little endian byte representation\r\n */\r\nLongPrototype.toBytesLE = function toBytesLE() {\r\n var hi = this.high,\r\n lo = this.low;\r\n return [\r\n lo & 0xff,\r\n lo >>> 8 & 0xff,\r\n lo >>> 16 & 0xff,\r\n lo >>> 24 ,\r\n hi & 0xff,\r\n hi >>> 8 & 0xff,\r\n hi >>> 16 & 0xff,\r\n hi >>> 24\r\n ];\r\n};\r\n\r\n/**\r\n * Converts this Long to its big endian byte representation.\r\n * @returns {!Array.} Big endian byte representation\r\n */\r\nLongPrototype.toBytesBE = function toBytesBE() {\r\n var hi = this.high,\r\n lo = this.low;\r\n return [\r\n hi >>> 24 ,\r\n hi >>> 16 & 0xff,\r\n hi >>> 8 & 0xff,\r\n hi & 0xff,\r\n lo >>> 24 ,\r\n lo >>> 16 & 0xff,\r\n lo >>> 8 & 0xff,\r\n lo & 0xff\r\n ];\r\n};\r\n\r\n/**\r\n * Creates a Long from its byte representation.\r\n * @param {!Array.} bytes Byte representation\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\r\n * @param {boolean=} le Whether little or big endian, defaults to big endian\r\n * @returns {Long} The corresponding Long value\r\n */\r\nLong.fromBytes = function fromBytes(bytes, unsigned, le) {\r\n return le ? Long.fromBytesLE(bytes, unsigned) : Long.fromBytesBE(bytes, unsigned);\r\n};\r\n\r\n/**\r\n * Creates a Long from its little endian byte representation.\r\n * @param {!Array.} bytes Little endian byte representation\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\r\n * @returns {Long} The corresponding Long value\r\n */\r\nLong.fromBytesLE = function fromBytesLE(bytes, unsigned) {\r\n return new Long(\r\n bytes[0] |\r\n bytes[1] << 8 |\r\n bytes[2] << 16 |\r\n bytes[3] << 24,\r\n bytes[4] |\r\n bytes[5] << 8 |\r\n bytes[6] << 16 |\r\n bytes[7] << 24,\r\n unsigned\r\n );\r\n};\r\n\r\n/**\r\n * Creates a Long from its big endian byte representation.\r\n * @param {!Array.} bytes Big endian byte representation\r\n * @param {boolean=} unsigned Whether unsigned or not, defaults to signed\r\n * @returns {Long} The corresponding Long value\r\n */\r\nLong.fromBytesBE = function fromBytesBE(bytes, unsigned) {\r\n return new Long(\r\n bytes[4] << 24 |\r\n bytes[5] << 16 |\r\n bytes[6] << 8 |\r\n bytes[7],\r\n bytes[0] << 24 |\r\n bytes[1] << 16 |\r\n bytes[2] << 8 |\r\n bytes[3],\r\n unsigned\r\n );\r\n};\r\n", "\"use strict\";\r\nmodule.exports = asPromise;\r\n\r\n/**\r\n * Callback as used by {@link util.asPromise}.\r\n * @typedef asPromiseCallback\r\n * @type {function}\r\n * @param {Error|null} error Error, if any\r\n * @param {...*} params Additional arguments\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Returns a promise from a node-style callback function.\r\n * @memberof util\r\n * @param {asPromiseCallback} fn Function to call\r\n * @param {*} ctx Function context\r\n * @param {...*} params Function arguments\r\n * @returns {Promise<*>} Promisified function\r\n */\r\nfunction asPromise(fn, ctx/*, varargs */) {\r\n var params = new Array(arguments.length - 1),\r\n offset = 0,\r\n index = 2,\r\n pending = true;\r\n while (index < arguments.length)\r\n params[offset++] = arguments[index++];\r\n return new Promise(function executor(resolve, reject) {\r\n params[offset] = function callback(err/*, varargs */) {\r\n if (pending) {\r\n pending = false;\r\n if (err)\r\n reject(err);\r\n else {\r\n var params = new Array(arguments.length - 1),\r\n offset = 0;\r\n while (offset < params.length)\r\n params[offset++] = arguments[offset];\r\n resolve.apply(null, params);\r\n }\r\n }\r\n };\r\n try {\r\n fn.apply(ctx || null, params);\r\n } catch (err) {\r\n if (pending) {\r\n pending = false;\r\n reject(err);\r\n }\r\n }\r\n });\r\n}\r\n", "\"use strict\";\r\n\r\n/**\r\n * A minimal base64 implementation for number arrays.\r\n * @memberof util\r\n * @namespace\r\n */\r\nvar base64 = exports;\r\n\r\n/**\r\n * Calculates the byte length of a base64 encoded string.\r\n * @param {string} string Base64 encoded string\r\n * @returns {number} Byte length\r\n */\r\nbase64.length = function length(string) {\r\n var p = string.length;\r\n if (!p)\r\n return 0;\r\n var n = 0;\r\n while (--p % 4 > 1 && string.charAt(p) === \"=\")\r\n ++n;\r\n return Math.ceil(string.length * 3) / 4 - n;\r\n};\r\n\r\n// Base64 encoding table\r\nvar b64 = new Array(64);\r\n\r\n// Base64 decoding table\r\nvar s64 = new Array(123);\r\n\r\n// 65..90, 97..122, 48..57, 43, 47\r\nfor (var i = 0; i < 64;)\r\n s64[b64[i] = i < 26 ? i + 65 : i < 52 ? i + 71 : i < 62 ? i - 4 : i - 59 | 43] = i++;\r\n\r\n/**\r\n * Encodes a buffer to a base64 encoded string.\r\n * @param {Uint8Array} buffer Source buffer\r\n * @param {number} start Source start\r\n * @param {number} end Source end\r\n * @returns {string} Base64 encoded string\r\n */\r\nbase64.encode = function encode(buffer, start, end) {\r\n var parts = null,\r\n chunk = [];\r\n var i = 0, // output index\r\n j = 0, // goto index\r\n t; // temporary\r\n while (start < end) {\r\n var b = buffer[start++];\r\n switch (j) {\r\n case 0:\r\n chunk[i++] = b64[b >> 2];\r\n t = (b & 3) << 4;\r\n j = 1;\r\n break;\r\n case 1:\r\n chunk[i++] = b64[t | b >> 4];\r\n t = (b & 15) << 2;\r\n j = 2;\r\n break;\r\n case 2:\r\n chunk[i++] = b64[t | b >> 6];\r\n chunk[i++] = b64[b & 63];\r\n j = 0;\r\n break;\r\n }\r\n if (i > 8191) {\r\n (parts || (parts = [])).push(String.fromCharCode.apply(String, chunk));\r\n i = 0;\r\n }\r\n }\r\n if (j) {\r\n chunk[i++] = b64[t];\r\n chunk[i++] = 61;\r\n if (j === 1)\r\n chunk[i++] = 61;\r\n }\r\n if (parts) {\r\n if (i)\r\n parts.push(String.fromCharCode.apply(String, chunk.slice(0, i)));\r\n return parts.join(\"\");\r\n }\r\n return String.fromCharCode.apply(String, chunk.slice(0, i));\r\n};\r\n\r\nvar invalidEncoding = \"invalid encoding\";\r\n\r\n/**\r\n * Decodes a base64 encoded string to a buffer.\r\n * @param {string} string Source string\r\n * @param {Uint8Array} buffer Destination buffer\r\n * @param {number} offset Destination offset\r\n * @returns {number} Number of bytes written\r\n * @throws {Error} If encoding is invalid\r\n */\r\nbase64.decode = function decode(string, buffer, offset) {\r\n var start = offset;\r\n var j = 0, // goto index\r\n t; // temporary\r\n for (var i = 0; i < string.length;) {\r\n var c = string.charCodeAt(i++);\r\n if (c === 61 && j > 1)\r\n break;\r\n if ((c = s64[c]) === undefined)\r\n throw Error(invalidEncoding);\r\n switch (j) {\r\n case 0:\r\n t = c;\r\n j = 1;\r\n break;\r\n case 1:\r\n buffer[offset++] = t << 2 | (c & 48) >> 4;\r\n t = c;\r\n j = 2;\r\n break;\r\n case 2:\r\n buffer[offset++] = (t & 15) << 4 | (c & 60) >> 2;\r\n t = c;\r\n j = 3;\r\n break;\r\n case 3:\r\n buffer[offset++] = (t & 3) << 6 | c;\r\n j = 0;\r\n break;\r\n }\r\n }\r\n if (j === 1)\r\n throw Error(invalidEncoding);\r\n return offset - start;\r\n};\r\n\r\n/**\r\n * Tests if the specified string appears to be base64 encoded.\r\n * @param {string} string String to test\r\n * @returns {boolean} `true` if probably base64 encoded, otherwise false\r\n */\r\nbase64.test = function test(string) {\r\n return /^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(string);\r\n};\r\n", "\"use strict\";\r\nmodule.exports = EventEmitter;\r\n\r\n/**\r\n * Constructs a new event emitter instance.\r\n * @classdesc A minimal event emitter.\r\n * @memberof util\r\n * @constructor\r\n */\r\nfunction EventEmitter() {\r\n\r\n /**\r\n * Registered listeners.\r\n * @type {Object.}\r\n * @private\r\n */\r\n this._listeners = {};\r\n}\r\n\r\n/**\r\n * Registers an event listener.\r\n * @param {string} evt Event name\r\n * @param {function} fn Listener\r\n * @param {*} [ctx] Listener context\r\n * @returns {util.EventEmitter} `this`\r\n */\r\nEventEmitter.prototype.on = function on(evt, fn, ctx) {\r\n (this._listeners[evt] || (this._listeners[evt] = [])).push({\r\n fn : fn,\r\n ctx : ctx || this\r\n });\r\n return this;\r\n};\r\n\r\n/**\r\n * Removes an event listener or any matching listeners if arguments are omitted.\r\n * @param {string} [evt] Event name. Removes all listeners if omitted.\r\n * @param {function} [fn] Listener to remove. Removes all listeners of `evt` if omitted.\r\n * @returns {util.EventEmitter} `this`\r\n */\r\nEventEmitter.prototype.off = function off(evt, fn) {\r\n if (evt === undefined)\r\n this._listeners = {};\r\n else {\r\n if (fn === undefined)\r\n this._listeners[evt] = [];\r\n else {\r\n var listeners = this._listeners[evt];\r\n for (var i = 0; i < listeners.length;)\r\n if (listeners[i].fn === fn)\r\n listeners.splice(i, 1);\r\n else\r\n ++i;\r\n }\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Emits an event by calling its listeners with the specified arguments.\r\n * @param {string} evt Event name\r\n * @param {...*} args Arguments\r\n * @returns {util.EventEmitter} `this`\r\n */\r\nEventEmitter.prototype.emit = function emit(evt) {\r\n var listeners = this._listeners[evt];\r\n if (listeners) {\r\n var args = [],\r\n i = 1;\r\n for (; i < arguments.length;)\r\n args.push(arguments[i++]);\r\n for (i = 0; i < listeners.length;)\r\n listeners[i].fn.apply(listeners[i++].ctx, args);\r\n }\r\n return this;\r\n};\r\n", "\"use strict\";\r\n\r\nmodule.exports = factory(factory);\r\n\r\n/**\r\n * Reads / writes floats / doubles from / to buffers.\r\n * @name util.float\r\n * @namespace\r\n */\r\n\r\n/**\r\n * Writes a 32 bit float to a buffer using little endian byte order.\r\n * @name util.float.writeFloatLE\r\n * @function\r\n * @param {number} val Value to write\r\n * @param {Uint8Array} buf Target buffer\r\n * @param {number} pos Target buffer offset\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Writes a 32 bit float to a buffer using big endian byte order.\r\n * @name util.float.writeFloatBE\r\n * @function\r\n * @param {number} val Value to write\r\n * @param {Uint8Array} buf Target buffer\r\n * @param {number} pos Target buffer offset\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Reads a 32 bit float from a buffer using little endian byte order.\r\n * @name util.float.readFloatLE\r\n * @function\r\n * @param {Uint8Array} buf Source buffer\r\n * @param {number} pos Source buffer offset\r\n * @returns {number} Value read\r\n */\r\n\r\n/**\r\n * Reads a 32 bit float from a buffer using big endian byte order.\r\n * @name util.float.readFloatBE\r\n * @function\r\n * @param {Uint8Array} buf Source buffer\r\n * @param {number} pos Source buffer offset\r\n * @returns {number} Value read\r\n */\r\n\r\n/**\r\n * Writes a 64 bit double to a buffer using little endian byte order.\r\n * @name util.float.writeDoubleLE\r\n * @function\r\n * @param {number} val Value to write\r\n * @param {Uint8Array} buf Target buffer\r\n * @param {number} pos Target buffer offset\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Writes a 64 bit double to a buffer using big endian byte order.\r\n * @name util.float.writeDoubleBE\r\n * @function\r\n * @param {number} val Value to write\r\n * @param {Uint8Array} buf Target buffer\r\n * @param {number} pos Target buffer offset\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Reads a 64 bit double from a buffer using little endian byte order.\r\n * @name util.float.readDoubleLE\r\n * @function\r\n * @param {Uint8Array} buf Source buffer\r\n * @param {number} pos Source buffer offset\r\n * @returns {number} Value read\r\n */\r\n\r\n/**\r\n * Reads a 64 bit double from a buffer using big endian byte order.\r\n * @name util.float.readDoubleBE\r\n * @function\r\n * @param {Uint8Array} buf Source buffer\r\n * @param {number} pos Source buffer offset\r\n * @returns {number} Value read\r\n */\r\n\r\n// Factory function for the purpose of node-based testing in modified global environments\r\nfunction factory(exports) {\r\n\r\n // float: typed array\r\n if (typeof Float32Array !== \"undefined\") (function() {\r\n\r\n var f32 = new Float32Array([ -0 ]),\r\n f8b = new Uint8Array(f32.buffer),\r\n le = f8b[3] === 128;\r\n\r\n function writeFloat_f32_cpy(val, buf, pos) {\r\n f32[0] = val;\r\n buf[pos ] = f8b[0];\r\n buf[pos + 1] = f8b[1];\r\n buf[pos + 2] = f8b[2];\r\n buf[pos + 3] = f8b[3];\r\n }\r\n\r\n function writeFloat_f32_rev(val, buf, pos) {\r\n f32[0] = val;\r\n buf[pos ] = f8b[3];\r\n buf[pos + 1] = f8b[2];\r\n buf[pos + 2] = f8b[1];\r\n buf[pos + 3] = f8b[0];\r\n }\r\n\r\n /* istanbul ignore next */\r\n exports.writeFloatLE = le ? writeFloat_f32_cpy : writeFloat_f32_rev;\r\n /* istanbul ignore next */\r\n exports.writeFloatBE = le ? writeFloat_f32_rev : writeFloat_f32_cpy;\r\n\r\n function readFloat_f32_cpy(buf, pos) {\r\n f8b[0] = buf[pos ];\r\n f8b[1] = buf[pos + 1];\r\n f8b[2] = buf[pos + 2];\r\n f8b[3] = buf[pos + 3];\r\n return f32[0];\r\n }\r\n\r\n function readFloat_f32_rev(buf, pos) {\r\n f8b[3] = buf[pos ];\r\n f8b[2] = buf[pos + 1];\r\n f8b[1] = buf[pos + 2];\r\n f8b[0] = buf[pos + 3];\r\n return f32[0];\r\n }\r\n\r\n /* istanbul ignore next */\r\n exports.readFloatLE = le ? readFloat_f32_cpy : readFloat_f32_rev;\r\n /* istanbul ignore next */\r\n exports.readFloatBE = le ? readFloat_f32_rev : readFloat_f32_cpy;\r\n\r\n // float: ieee754\r\n })(); else (function() {\r\n\r\n function writeFloat_ieee754(writeUint, val, buf, pos) {\r\n var sign = val < 0 ? 1 : 0;\r\n if (sign)\r\n val = -val;\r\n if (val === 0)\r\n writeUint(1 / val > 0 ? /* positive */ 0 : /* negative 0 */ 2147483648, buf, pos);\r\n else if (isNaN(val))\r\n writeUint(2143289344, buf, pos);\r\n else if (val > 3.4028234663852886e+38) // +-Infinity\r\n writeUint((sign << 31 | 2139095040) >>> 0, buf, pos);\r\n else if (val < 1.1754943508222875e-38) // denormal\r\n writeUint((sign << 31 | Math.round(val / 1.401298464324817e-45)) >>> 0, buf, pos);\r\n else {\r\n var exponent = Math.floor(Math.log(val) / Math.LN2),\r\n mantissa = Math.round(val * Math.pow(2, -exponent) * 8388608) & 8388607;\r\n writeUint((sign << 31 | exponent + 127 << 23 | mantissa) >>> 0, buf, pos);\r\n }\r\n }\r\n\r\n exports.writeFloatLE = writeFloat_ieee754.bind(null, writeUintLE);\r\n exports.writeFloatBE = writeFloat_ieee754.bind(null, writeUintBE);\r\n\r\n function readFloat_ieee754(readUint, buf, pos) {\r\n var uint = readUint(buf, pos),\r\n sign = (uint >> 31) * 2 + 1,\r\n exponent = uint >>> 23 & 255,\r\n mantissa = uint & 8388607;\r\n return exponent === 255\r\n ? mantissa\r\n ? NaN\r\n : sign * Infinity\r\n : exponent === 0 // denormal\r\n ? sign * 1.401298464324817e-45 * mantissa\r\n : sign * Math.pow(2, exponent - 150) * (mantissa + 8388608);\r\n }\r\n\r\n exports.readFloatLE = readFloat_ieee754.bind(null, readUintLE);\r\n exports.readFloatBE = readFloat_ieee754.bind(null, readUintBE);\r\n\r\n })();\r\n\r\n // double: typed array\r\n if (typeof Float64Array !== \"undefined\") (function() {\r\n\r\n var f64 = new Float64Array([-0]),\r\n f8b = new Uint8Array(f64.buffer),\r\n le = f8b[7] === 128;\r\n\r\n function writeDouble_f64_cpy(val, buf, pos) {\r\n f64[0] = val;\r\n buf[pos ] = f8b[0];\r\n buf[pos + 1] = f8b[1];\r\n buf[pos + 2] = f8b[2];\r\n buf[pos + 3] = f8b[3];\r\n buf[pos + 4] = f8b[4];\r\n buf[pos + 5] = f8b[5];\r\n buf[pos + 6] = f8b[6];\r\n buf[pos + 7] = f8b[7];\r\n }\r\n\r\n function writeDouble_f64_rev(val, buf, pos) {\r\n f64[0] = val;\r\n buf[pos ] = f8b[7];\r\n buf[pos + 1] = f8b[6];\r\n buf[pos + 2] = f8b[5];\r\n buf[pos + 3] = f8b[4];\r\n buf[pos + 4] = f8b[3];\r\n buf[pos + 5] = f8b[2];\r\n buf[pos + 6] = f8b[1];\r\n buf[pos + 7] = f8b[0];\r\n }\r\n\r\n /* istanbul ignore next */\r\n exports.writeDoubleLE = le ? writeDouble_f64_cpy : writeDouble_f64_rev;\r\n /* istanbul ignore next */\r\n exports.writeDoubleBE = le ? writeDouble_f64_rev : writeDouble_f64_cpy;\r\n\r\n function readDouble_f64_cpy(buf, pos) {\r\n f8b[0] = buf[pos ];\r\n f8b[1] = buf[pos + 1];\r\n f8b[2] = buf[pos + 2];\r\n f8b[3] = buf[pos + 3];\r\n f8b[4] = buf[pos + 4];\r\n f8b[5] = buf[pos + 5];\r\n f8b[6] = buf[pos + 6];\r\n f8b[7] = buf[pos + 7];\r\n return f64[0];\r\n }\r\n\r\n function readDouble_f64_rev(buf, pos) {\r\n f8b[7] = buf[pos ];\r\n f8b[6] = buf[pos + 1];\r\n f8b[5] = buf[pos + 2];\r\n f8b[4] = buf[pos + 3];\r\n f8b[3] = buf[pos + 4];\r\n f8b[2] = buf[pos + 5];\r\n f8b[1] = buf[pos + 6];\r\n f8b[0] = buf[pos + 7];\r\n return f64[0];\r\n }\r\n\r\n /* istanbul ignore next */\r\n exports.readDoubleLE = le ? readDouble_f64_cpy : readDouble_f64_rev;\r\n /* istanbul ignore next */\r\n exports.readDoubleBE = le ? readDouble_f64_rev : readDouble_f64_cpy;\r\n\r\n // double: ieee754\r\n })(); else (function() {\r\n\r\n function writeDouble_ieee754(writeUint, off0, off1, val, buf, pos) {\r\n var sign = val < 0 ? 1 : 0;\r\n if (sign)\r\n val = -val;\r\n if (val === 0) {\r\n writeUint(0, buf, pos + off0);\r\n writeUint(1 / val > 0 ? /* positive */ 0 : /* negative 0 */ 2147483648, buf, pos + off1);\r\n } else if (isNaN(val)) {\r\n writeUint(0, buf, pos + off0);\r\n writeUint(2146959360, buf, pos + off1);\r\n } else if (val > 1.7976931348623157e+308) { // +-Infinity\r\n writeUint(0, buf, pos + off0);\r\n writeUint((sign << 31 | 2146435072) >>> 0, buf, pos + off1);\r\n } else {\r\n var mantissa;\r\n if (val < 2.2250738585072014e-308) { // denormal\r\n mantissa = val / 5e-324;\r\n writeUint(mantissa >>> 0, buf, pos + off0);\r\n writeUint((sign << 31 | mantissa / 4294967296) >>> 0, buf, pos + off1);\r\n } else {\r\n var exponent = Math.floor(Math.log(val) / Math.LN2);\r\n if (exponent === 1024)\r\n exponent = 1023;\r\n mantissa = val * Math.pow(2, -exponent);\r\n writeUint(mantissa * 4503599627370496 >>> 0, buf, pos + off0);\r\n writeUint((sign << 31 | exponent + 1023 << 20 | mantissa * 1048576 & 1048575) >>> 0, buf, pos + off1);\r\n }\r\n }\r\n }\r\n\r\n exports.writeDoubleLE = writeDouble_ieee754.bind(null, writeUintLE, 0, 4);\r\n exports.writeDoubleBE = writeDouble_ieee754.bind(null, writeUintBE, 4, 0);\r\n\r\n function readDouble_ieee754(readUint, off0, off1, buf, pos) {\r\n var lo = readUint(buf, pos + off0),\r\n hi = readUint(buf, pos + off1);\r\n var sign = (hi >> 31) * 2 + 1,\r\n exponent = hi >>> 20 & 2047,\r\n mantissa = 4294967296 * (hi & 1048575) + lo;\r\n return exponent === 2047\r\n ? mantissa\r\n ? NaN\r\n : sign * Infinity\r\n : exponent === 0 // denormal\r\n ? sign * 5e-324 * mantissa\r\n : sign * Math.pow(2, exponent - 1075) * (mantissa + 4503599627370496);\r\n }\r\n\r\n exports.readDoubleLE = readDouble_ieee754.bind(null, readUintLE, 0, 4);\r\n exports.readDoubleBE = readDouble_ieee754.bind(null, readUintBE, 4, 0);\r\n\r\n })();\r\n\r\n return exports;\r\n}\r\n\r\n// uint helpers\r\n\r\nfunction writeUintLE(val, buf, pos) {\r\n buf[pos ] = val & 255;\r\n buf[pos + 1] = val >>> 8 & 255;\r\n buf[pos + 2] = val >>> 16 & 255;\r\n buf[pos + 3] = val >>> 24;\r\n}\r\n\r\nfunction writeUintBE(val, buf, pos) {\r\n buf[pos ] = val >>> 24;\r\n buf[pos + 1] = val >>> 16 & 255;\r\n buf[pos + 2] = val >>> 8 & 255;\r\n buf[pos + 3] = val & 255;\r\n}\r\n\r\nfunction readUintLE(buf, pos) {\r\n return (buf[pos ]\r\n | buf[pos + 1] << 8\r\n | buf[pos + 2] << 16\r\n | buf[pos + 3] << 24) >>> 0;\r\n}\r\n\r\nfunction readUintBE(buf, pos) {\r\n return (buf[pos ] << 24\r\n | buf[pos + 1] << 16\r\n | buf[pos + 2] << 8\r\n | buf[pos + 3]) >>> 0;\r\n}\r\n", "\"use strict\";\r\nmodule.exports = inquire;\r\n\r\n/**\r\n * Requires a module only if available.\r\n * @memberof util\r\n * @param {string} moduleName Module to require\r\n * @returns {?Object} Required module if available and not empty, otherwise `null`\r\n */\r\nfunction inquire(moduleName) {\r\n try {\r\n var mod = eval(\"quire\".replace(/^/,\"re\"))(moduleName); // eslint-disable-line no-eval\r\n if (mod && (mod.length || Object.keys(mod).length))\r\n return mod;\r\n } catch (e) {} // eslint-disable-line no-empty\r\n return null;\r\n}\r\n", "\"use strict\";\r\n\r\n/**\r\n * A minimal UTF8 implementation for number arrays.\r\n * @memberof util\r\n * @namespace\r\n */\r\nvar utf8 = exports;\r\n\r\n/**\r\n * Calculates the UTF8 byte length of a string.\r\n * @param {string} string String\r\n * @returns {number} Byte length\r\n */\r\nutf8.length = function utf8_length(string) {\r\n var len = 0,\r\n c = 0;\r\n for (var i = 0; i < string.length; ++i) {\r\n c = string.charCodeAt(i);\r\n if (c < 128)\r\n len += 1;\r\n else if (c < 2048)\r\n len += 2;\r\n else if ((c & 0xFC00) === 0xD800 && (string.charCodeAt(i + 1) & 0xFC00) === 0xDC00) {\r\n ++i;\r\n len += 4;\r\n } else\r\n len += 3;\r\n }\r\n return len;\r\n};\r\n\r\n/**\r\n * Reads UTF8 bytes as a string.\r\n * @param {Uint8Array} buffer Source buffer\r\n * @param {number} start Source start\r\n * @param {number} end Source end\r\n * @returns {string} String read\r\n */\r\nutf8.read = function utf8_read(buffer, start, end) {\r\n var len = end - start;\r\n if (len < 1)\r\n return \"\";\r\n var parts = null,\r\n chunk = [],\r\n i = 0, // char offset\r\n t; // temporary\r\n while (start < end) {\r\n t = buffer[start++];\r\n if (t < 128)\r\n chunk[i++] = t;\r\n else if (t > 191 && t < 224)\r\n chunk[i++] = (t & 31) << 6 | buffer[start++] & 63;\r\n else if (t > 239 && t < 365) {\r\n t = ((t & 7) << 18 | (buffer[start++] & 63) << 12 | (buffer[start++] & 63) << 6 | buffer[start++] & 63) - 0x10000;\r\n chunk[i++] = 0xD800 + (t >> 10);\r\n chunk[i++] = 0xDC00 + (t & 1023);\r\n } else\r\n chunk[i++] = (t & 15) << 12 | (buffer[start++] & 63) << 6 | buffer[start++] & 63;\r\n if (i > 8191) {\r\n (parts || (parts = [])).push(String.fromCharCode.apply(String, chunk));\r\n i = 0;\r\n }\r\n }\r\n if (parts) {\r\n if (i)\r\n parts.push(String.fromCharCode.apply(String, chunk.slice(0, i)));\r\n return parts.join(\"\");\r\n }\r\n return String.fromCharCode.apply(String, chunk.slice(0, i));\r\n};\r\n\r\n/**\r\n * Writes a string as UTF8 bytes.\r\n * @param {string} string Source string\r\n * @param {Uint8Array} buffer Destination buffer\r\n * @param {number} offset Destination offset\r\n * @returns {number} Bytes written\r\n */\r\nutf8.write = function utf8_write(string, buffer, offset) {\r\n var start = offset,\r\n c1, // character 1\r\n c2; // character 2\r\n for (var i = 0; i < string.length; ++i) {\r\n c1 = string.charCodeAt(i);\r\n if (c1 < 128) {\r\n buffer[offset++] = c1;\r\n } else if (c1 < 2048) {\r\n buffer[offset++] = c1 >> 6 | 192;\r\n buffer[offset++] = c1 & 63 | 128;\r\n } else if ((c1 & 0xFC00) === 0xD800 && ((c2 = string.charCodeAt(i + 1)) & 0xFC00) === 0xDC00) {\r\n c1 = 0x10000 + ((c1 & 0x03FF) << 10) + (c2 & 0x03FF);\r\n ++i;\r\n buffer[offset++] = c1 >> 18 | 240;\r\n buffer[offset++] = c1 >> 12 & 63 | 128;\r\n buffer[offset++] = c1 >> 6 & 63 | 128;\r\n buffer[offset++] = c1 & 63 | 128;\r\n } else {\r\n buffer[offset++] = c1 >> 12 | 224;\r\n buffer[offset++] = c1 >> 6 & 63 | 128;\r\n buffer[offset++] = c1 & 63 | 128;\r\n }\r\n }\r\n return offset - start;\r\n};\r\n", "\"use strict\";\r\nmodule.exports = pool;\r\n\r\n/**\r\n * An allocator as used by {@link util.pool}.\r\n * @typedef PoolAllocator\r\n * @type {function}\r\n * @param {number} size Buffer size\r\n * @returns {Uint8Array} Buffer\r\n */\r\n\r\n/**\r\n * A slicer as used by {@link util.pool}.\r\n * @typedef PoolSlicer\r\n * @type {function}\r\n * @param {number} start Start offset\r\n * @param {number} end End offset\r\n * @returns {Uint8Array} Buffer slice\r\n * @this {Uint8Array}\r\n */\r\n\r\n/**\r\n * A general purpose buffer pool.\r\n * @memberof util\r\n * @function\r\n * @param {PoolAllocator} alloc Allocator\r\n * @param {PoolSlicer} slice Slicer\r\n * @param {number} [size=8192] Slab size\r\n * @returns {PoolAllocator} Pooled allocator\r\n */\r\nfunction pool(alloc, slice, size) {\r\n var SIZE = size || 8192;\r\n var MAX = SIZE >>> 1;\r\n var slab = null;\r\n var offset = SIZE;\r\n return function pool_alloc(size) {\r\n if (size < 1 || size > MAX)\r\n return alloc(size);\r\n if (offset + size > SIZE) {\r\n slab = alloc(SIZE);\r\n offset = 0;\r\n }\r\n var buf = slice.call(slab, offset, offset += size);\r\n if (offset & 7) // align to 32 bit\r\n offset = (offset | 7) + 1;\r\n return buf;\r\n };\r\n}\r\n", "\"use strict\";\nmodule.exports = LongBits;\n\nvar util = require(\"../util/minimal\");\n\n/**\n * Constructs new long bits.\n * @classdesc Helper class for working with the low and high bits of a 64 bit value.\n * @memberof util\n * @constructor\n * @param {number} lo Low 32 bits, unsigned\n * @param {number} hi High 32 bits, unsigned\n */\nfunction LongBits(lo, hi) {\n\n // note that the casts below are theoretically unnecessary as of today, but older statically\n // generated converter code might still call the ctor with signed 32bits. kept for compat.\n\n /**\n * Low bits.\n * @type {number}\n */\n this.lo = lo >>> 0;\n\n /**\n * High bits.\n * @type {number}\n */\n this.hi = hi >>> 0;\n}\n\n/**\n * Zero bits.\n * @memberof util.LongBits\n * @type {util.LongBits}\n */\nvar zero = LongBits.zero = new LongBits(0, 0);\n\nzero.toNumber = function() { return 0; };\nzero.zzEncode = zero.zzDecode = function() { return this; };\nzero.length = function() { return 1; };\n\n/**\n * Zero hash.\n * @memberof util.LongBits\n * @type {string}\n */\nvar zeroHash = LongBits.zeroHash = \"\\0\\0\\0\\0\\0\\0\\0\\0\";\n\n/**\n * Constructs new long bits from the specified number.\n * @param {number} value Value\n * @returns {util.LongBits} Instance\n */\nLongBits.fromNumber = function fromNumber(value) {\n if (value === 0)\n return zero;\n var sign = value < 0;\n if (sign)\n value = -value;\n var lo = value >>> 0,\n hi = (value - lo) / 4294967296 >>> 0;\n if (sign) {\n hi = ~hi >>> 0;\n lo = ~lo >>> 0;\n if (++lo > 4294967295) {\n lo = 0;\n if (++hi > 4294967295)\n hi = 0;\n }\n }\n return new LongBits(lo, hi);\n};\n\n/**\n * Constructs new long bits from a number, long or string.\n * @param {Long|number|string} value Value\n * @returns {util.LongBits} Instance\n */\nLongBits.from = function from(value) {\n if (typeof value === \"number\")\n return LongBits.fromNumber(value);\n if (util.isString(value)) {\n /* istanbul ignore else */\n if (util.Long)\n value = util.Long.fromString(value);\n else\n return LongBits.fromNumber(parseInt(value, 10));\n }\n return value.low || value.high ? new LongBits(value.low >>> 0, value.high >>> 0) : zero;\n};\n\n/**\n * Converts this long bits to a possibly unsafe JavaScript number.\n * @param {boolean} [unsigned=false] Whether unsigned or not\n * @returns {number} Possibly unsafe number\n */\nLongBits.prototype.toNumber = function toNumber(unsigned) {\n if (!unsigned && this.hi >>> 31) {\n var lo = ~this.lo + 1 >>> 0,\n hi = ~this.hi >>> 0;\n if (!lo)\n hi = hi + 1 >>> 0;\n return -(lo + hi * 4294967296);\n }\n return this.lo + this.hi * 4294967296;\n};\n\n/**\n * Converts this long bits to a long.\n * @param {boolean} [unsigned=false] Whether unsigned or not\n * @returns {Long} Long\n */\nLongBits.prototype.toLong = function toLong(unsigned) {\n return util.Long\n ? new util.Long(this.lo | 0, this.hi | 0, Boolean(unsigned))\n /* istanbul ignore next */\n : { low: this.lo | 0, high: this.hi | 0, unsigned: Boolean(unsigned) };\n};\n\nvar charCodeAt = String.prototype.charCodeAt;\n\n/**\n * Constructs new long bits from the specified 8 characters long hash.\n * @param {string} hash Hash\n * @returns {util.LongBits} Bits\n */\nLongBits.fromHash = function fromHash(hash) {\n if (hash === zeroHash)\n return zero;\n return new LongBits(\n ( charCodeAt.call(hash, 0)\n | charCodeAt.call(hash, 1) << 8\n | charCodeAt.call(hash, 2) << 16\n | charCodeAt.call(hash, 3) << 24) >>> 0\n ,\n ( charCodeAt.call(hash, 4)\n | charCodeAt.call(hash, 5) << 8\n | charCodeAt.call(hash, 6) << 16\n | charCodeAt.call(hash, 7) << 24) >>> 0\n );\n};\n\n/**\n * Converts this long bits to a 8 characters long hash.\n * @returns {string} Hash\n */\nLongBits.prototype.toHash = function toHash() {\n return String.fromCharCode(\n this.lo & 255,\n this.lo >>> 8 & 255,\n this.lo >>> 16 & 255,\n this.lo >>> 24 ,\n this.hi & 255,\n this.hi >>> 8 & 255,\n this.hi >>> 16 & 255,\n this.hi >>> 24\n );\n};\n\n/**\n * Zig-zag encodes this long bits.\n * @returns {util.LongBits} `this`\n */\nLongBits.prototype.zzEncode = function zzEncode() {\n var mask = this.hi >> 31;\n this.hi = ((this.hi << 1 | this.lo >>> 31) ^ mask) >>> 0;\n this.lo = ( this.lo << 1 ^ mask) >>> 0;\n return this;\n};\n\n/**\n * Zig-zag decodes this long bits.\n * @returns {util.LongBits} `this`\n */\nLongBits.prototype.zzDecode = function zzDecode() {\n var mask = -(this.lo & 1);\n this.lo = ((this.lo >>> 1 | this.hi << 31) ^ mask) >>> 0;\n this.hi = ( this.hi >>> 1 ^ mask) >>> 0;\n return this;\n};\n\n/**\n * Calculates the length of this longbits when encoded as a varint.\n * @returns {number} Length\n */\nLongBits.prototype.length = function length() {\n var part0 = this.lo,\n part1 = (this.lo >>> 28 | this.hi << 4) >>> 0,\n part2 = this.hi >>> 24;\n return part2 === 0\n ? part1 === 0\n ? part0 < 16384\n ? part0 < 128 ? 1 : 2\n : part0 < 2097152 ? 3 : 4\n : part1 < 16384\n ? part1 < 128 ? 5 : 6\n : part1 < 2097152 ? 7 : 8\n : part2 < 128 ? 9 : 10;\n};\n", "\"use strict\";\nvar util = exports;\n\n// used to return a Promise where callback is omitted\nutil.asPromise = require(\"@protobufjs/aspromise\");\n\n// converts to / from base64 encoded strings\nutil.base64 = require(\"@protobufjs/base64\");\n\n// base class of rpc.Service\nutil.EventEmitter = require(\"@protobufjs/eventemitter\");\n\n// float handling accross browsers\nutil.float = require(\"@protobufjs/float\");\n\n// requires modules optionally and hides the call from bundlers\nutil.inquire = require(\"@protobufjs/inquire\");\n\n// converts to / from utf8 encoded strings\nutil.utf8 = require(\"@protobufjs/utf8\");\n\n// provides a node-like buffer pool in the browser\nutil.pool = require(\"@protobufjs/pool\");\n\n// utility to work with the low and high bits of a 64 bit value\nutil.LongBits = require(\"./longbits\");\n\n/**\n * Whether running within node or not.\n * @memberof util\n * @type {boolean}\n */\nutil.isNode = Boolean(typeof global !== \"undefined\"\n && global\n && global.process\n && global.process.versions\n && global.process.versions.node);\n\n/**\n * Global object reference.\n * @memberof util\n * @type {Object}\n */\nutil.global = util.isNode && global\n || typeof window !== \"undefined\" && window\n || typeof self !== \"undefined\" && self\n || this; // eslint-disable-line no-invalid-this\n\n/**\n * An immuable empty array.\n * @memberof util\n * @type {Array.<*>}\n * @const\n */\nutil.emptyArray = Object.freeze ? Object.freeze([]) : /* istanbul ignore next */ []; // used on prototypes\n\n/**\n * An immutable empty object.\n * @type {Object}\n * @const\n */\nutil.emptyObject = Object.freeze ? Object.freeze({}) : /* istanbul ignore next */ {}; // used on prototypes\n\n/**\n * Tests if the specified value is an integer.\n * @function\n * @param {*} value Value to test\n * @returns {boolean} `true` if the value is an integer\n */\nutil.isInteger = Number.isInteger || /* istanbul ignore next */ function isInteger(value) {\n return typeof value === \"number\" && isFinite(value) && Math.floor(value) === value;\n};\n\n/**\n * Tests if the specified value is a string.\n * @param {*} value Value to test\n * @returns {boolean} `true` if the value is a string\n */\nutil.isString = function isString(value) {\n return typeof value === \"string\" || value instanceof String;\n};\n\n/**\n * Tests if the specified value is a non-null object.\n * @param {*} value Value to test\n * @returns {boolean} `true` if the value is a non-null object\n */\nutil.isObject = function isObject(value) {\n return value && typeof value === \"object\";\n};\n\n/**\n * Checks if a property on a message is considered to be present.\n * This is an alias of {@link util.isSet}.\n * @function\n * @param {Object} obj Plain object or message instance\n * @param {string} prop Property name\n * @returns {boolean} `true` if considered to be present, otherwise `false`\n */\nutil.isset =\n\n/**\n * Checks if a property on a message is considered to be present.\n * @param {Object} obj Plain object or message instance\n * @param {string} prop Property name\n * @returns {boolean} `true` if considered to be present, otherwise `false`\n */\nutil.isSet = function isSet(obj, prop) {\n var value = obj[prop];\n if (value != null && obj.hasOwnProperty(prop)) // eslint-disable-line eqeqeq, no-prototype-builtins\n return typeof value !== \"object\" || (Array.isArray(value) ? value.length : Object.keys(value).length) > 0;\n return false;\n};\n\n/**\n * Any compatible Buffer instance.\n * This is a minimal stand-alone definition of a Buffer instance. The actual type is that exported by node's typings.\n * @interface Buffer\n * @extends Uint8Array\n */\n\n/**\n * Node's Buffer class if available.\n * @type {Constructor}\n */\nutil.Buffer = (function() {\n try {\n var Buffer = util.inquire(\"buffer\").Buffer;\n // refuse to use non-node buffers if not explicitly assigned (perf reasons):\n return Buffer.prototype.utf8Write ? Buffer : /* istanbul ignore next */ null;\n } catch (e) {\n /* istanbul ignore next */\n return null;\n }\n})();\n\n// Internal alias of or polyfull for Buffer.from.\nutil._Buffer_from = null;\n\n// Internal alias of or polyfill for Buffer.allocUnsafe.\nutil._Buffer_allocUnsafe = null;\n\n/**\n * Creates a new buffer of whatever type supported by the environment.\n * @param {number|number[]} [sizeOrArray=0] Buffer size or number array\n * @returns {Uint8Array|Buffer} Buffer\n */\nutil.newBuffer = function newBuffer(sizeOrArray) {\n /* istanbul ignore next */\n return typeof sizeOrArray === \"number\"\n ? util.Buffer\n ? util._Buffer_allocUnsafe(sizeOrArray)\n : new util.Array(sizeOrArray)\n : util.Buffer\n ? util._Buffer_from(sizeOrArray)\n : typeof Uint8Array === \"undefined\"\n ? sizeOrArray\n : new Uint8Array(sizeOrArray);\n};\n\n/**\n * Array implementation used in the browser. `Uint8Array` if supported, otherwise `Array`.\n * @type {Constructor}\n */\nutil.Array = typeof Uint8Array !== \"undefined\" ? Uint8Array /* istanbul ignore next */ : Array;\n\n/**\n * Any compatible Long instance.\n * This is a minimal stand-alone definition of a Long instance. The actual type is that exported by long.js.\n * @interface Long\n * @property {number} low Low bits\n * @property {number} high High bits\n * @property {boolean} unsigned Whether unsigned or not\n */\n\n/**\n * Long.js's Long class if available.\n * @type {Constructor}\n */\nutil.Long = /* istanbul ignore next */ util.global.dcodeIO && /* istanbul ignore next */ util.global.dcodeIO.Long\n || /* istanbul ignore next */ util.global.Long\n || util.inquire(\"long\");\n\n/**\n * Regular expression used to verify 2 bit (`bool`) map keys.\n * @type {RegExp}\n * @const\n */\nutil.key2Re = /^true|false|0|1$/;\n\n/**\n * Regular expression used to verify 32 bit (`int32` etc.) map keys.\n * @type {RegExp}\n * @const\n */\nutil.key32Re = /^-?(?:0|[1-9][0-9]*)$/;\n\n/**\n * Regular expression used to verify 64 bit (`int64` etc.) map keys.\n * @type {RegExp}\n * @const\n */\nutil.key64Re = /^(?:[\\\\x00-\\\\xff]{8}|-?(?:0|[1-9][0-9]*))$/;\n\n/**\n * Converts a number or long to an 8 characters long hash string.\n * @param {Long|number} value Value to convert\n * @returns {string} Hash\n */\nutil.longToHash = function longToHash(value) {\n return value\n ? util.LongBits.from(value).toHash()\n : util.LongBits.zeroHash;\n};\n\n/**\n * Converts an 8 characters long hash string to a long or number.\n * @param {string} hash Hash\n * @param {boolean} [unsigned=false] Whether unsigned or not\n * @returns {Long|number} Original value\n */\nutil.longFromHash = function longFromHash(hash, unsigned) {\n var bits = util.LongBits.fromHash(hash);\n if (util.Long)\n return util.Long.fromBits(bits.lo, bits.hi, unsigned);\n return bits.toNumber(Boolean(unsigned));\n};\n\n/**\n * Merges the properties of the source object into the destination object.\n * @memberof util\n * @param {Object.} dst Destination object\n * @param {Object.} src Source object\n * @param {boolean} [ifNotSet=false] Merges only if the key is not already set\n * @returns {Object.} Destination object\n */\nfunction merge(dst, src, ifNotSet) { // used by converters\n for (var keys = Object.keys(src), i = 0; i < keys.length; ++i)\n if (dst[keys[i]] === undefined || !ifNotSet)\n dst[keys[i]] = src[keys[i]];\n return dst;\n}\n\nutil.merge = merge;\n\n/**\n * Converts the first character of a string to lower case.\n * @param {string} str String to convert\n * @returns {string} Converted string\n */\nutil.lcFirst = function lcFirst(str) {\n return str.charAt(0).toLowerCase() + str.substring(1);\n};\n\n/**\n * Creates a custom error constructor.\n * @memberof util\n * @param {string} name Error name\n * @returns {Constructor} Custom error constructor\n */\nfunction newError(name) {\n\n function CustomError(message, properties) {\n\n if (!(this instanceof CustomError))\n return new CustomError(message, properties);\n\n // Error.call(this, message);\n // ^ just returns a new error instance because the ctor can be called as a function\n\n Object.defineProperty(this, \"message\", { get: function() { return message; } });\n\n /* istanbul ignore next */\n if (Error.captureStackTrace) // node\n Error.captureStackTrace(this, CustomError);\n else\n Object.defineProperty(this, \"stack\", { value: new Error().stack || \"\" });\n\n if (properties)\n merge(this, properties);\n }\n\n (CustomError.prototype = Object.create(Error.prototype)).constructor = CustomError;\n\n Object.defineProperty(CustomError.prototype, \"name\", { get: function() { return name; } });\n\n CustomError.prototype.toString = function toString() {\n return this.name + \": \" + this.message;\n };\n\n return CustomError;\n}\n\nutil.newError = newError;\n\n/**\n * Constructs a new protocol error.\n * @classdesc Error subclass indicating a protocol specifc error.\n * @memberof util\n * @extends Error\n * @template T extends Message\n * @constructor\n * @param {string} message Error message\n * @param {Object.} [properties] Additional properties\n * @example\n * try {\n * MyMessage.decode(someBuffer); // throws if required fields are missing\n * } catch (e) {\n * if (e instanceof ProtocolError && e.instance)\n * console.log(\"decoded so far: \" + JSON.stringify(e.instance));\n * }\n */\nutil.ProtocolError = newError(\"ProtocolError\");\n\n/**\n * So far decoded message instance.\n * @name util.ProtocolError#instance\n * @type {Message}\n */\n\n/**\n * A OneOf getter as returned by {@link util.oneOfGetter}.\n * @typedef OneOfGetter\n * @type {function}\n * @returns {string|undefined} Set field name, if any\n */\n\n/**\n * Builds a getter for a oneof's present field name.\n * @param {string[]} fieldNames Field names\n * @returns {OneOfGetter} Unbound getter\n */\nutil.oneOfGetter = function getOneOf(fieldNames) {\n var fieldMap = {};\n for (var i = 0; i < fieldNames.length; ++i)\n fieldMap[fieldNames[i]] = 1;\n\n /**\n * @returns {string|undefined} Set field name, if any\n * @this Object\n * @ignore\n */\n return function() { // eslint-disable-line consistent-return\n for (var keys = Object.keys(this), i = keys.length - 1; i > -1; --i)\n if (fieldMap[keys[i]] === 1 && this[keys[i]] !== undefined && this[keys[i]] !== null)\n return keys[i];\n };\n};\n\n/**\n * A OneOf setter as returned by {@link util.oneOfSetter}.\n * @typedef OneOfSetter\n * @type {function}\n * @param {string|undefined} value Field name\n * @returns {undefined}\n */\n\n/**\n * Builds a setter for a oneof's present field name.\n * @param {string[]} fieldNames Field names\n * @returns {OneOfSetter} Unbound setter\n */\nutil.oneOfSetter = function setOneOf(fieldNames) {\n\n /**\n * @param {string} name Field name\n * @returns {undefined}\n * @this Object\n * @ignore\n */\n return function(name) {\n for (var i = 0; i < fieldNames.length; ++i)\n if (fieldNames[i] !== name)\n delete this[fieldNames[i]];\n };\n};\n\n/**\n * Default conversion options used for {@link Message#toJSON} implementations.\n *\n * These options are close to proto3's JSON mapping with the exception that internal types like Any are handled just like messages. More precisely:\n *\n * - Longs become strings\n * - Enums become string keys\n * - Bytes become base64 encoded strings\n * - (Sub-)Messages become plain objects\n * - Maps become plain objects with all string keys\n * - Repeated fields become arrays\n * - NaN and Infinity for float and double fields become strings\n *\n * @type {IConversionOptions}\n * @see https://developers.google.com/protocol-buffers/docs/proto3?hl=en#json\n */\nutil.toJSONOptions = {\n longs: String,\n enums: String,\n bytes: String,\n json: true\n};\n\n// Sets up buffer utility according to the environment (called in index-minimal)\nutil._configure = function() {\n var Buffer = util.Buffer;\n /* istanbul ignore if */\n if (!Buffer) {\n util._Buffer_from = util._Buffer_allocUnsafe = null;\n return;\n }\n // because node 4.x buffers are incompatible & immutable\n // see: https://github.com/dcodeIO/protobuf.js/pull/665\n util._Buffer_from = Buffer.from !== Uint8Array.from && Buffer.from ||\n /* istanbul ignore next */\n function Buffer_from(value, encoding) {\n return new Buffer(value, encoding);\n };\n util._Buffer_allocUnsafe = Buffer.allocUnsafe ||\n /* istanbul ignore next */\n function Buffer_allocUnsafe(size) {\n return new Buffer(size);\n };\n};\n", "\"use strict\";\nmodule.exports = Writer;\n\nvar util = require(\"./util/minimal\");\n\nvar BufferWriter; // cyclic\n\nvar LongBits = util.LongBits,\n base64 = util.base64,\n utf8 = util.utf8;\n\n/**\n * Constructs a new writer operation instance.\n * @classdesc Scheduled writer operation.\n * @constructor\n * @param {function(*, Uint8Array, number)} fn Function to call\n * @param {number} len Value byte length\n * @param {*} val Value to write\n * @ignore\n */\nfunction Op(fn, len, val) {\n\n /**\n * Function to call.\n * @type {function(Uint8Array, number, *)}\n */\n this.fn = fn;\n\n /**\n * Value byte length.\n * @type {number}\n */\n this.len = len;\n\n /**\n * Next operation.\n * @type {Writer.Op|undefined}\n */\n this.next = undefined;\n\n /**\n * Value to write.\n * @type {*}\n */\n this.val = val; // type varies\n}\n\n/* istanbul ignore next */\nfunction noop() {} // eslint-disable-line no-empty-function\n\n/**\n * Constructs a new writer state instance.\n * @classdesc Copied writer state.\n * @memberof Writer\n * @constructor\n * @param {Writer} writer Writer to copy state from\n * @ignore\n */\nfunction State(writer) {\n\n /**\n * Current head.\n * @type {Writer.Op}\n */\n this.head = writer.head;\n\n /**\n * Current tail.\n * @type {Writer.Op}\n */\n this.tail = writer.tail;\n\n /**\n * Current buffer length.\n * @type {number}\n */\n this.len = writer.len;\n\n /**\n * Next state.\n * @type {State|null}\n */\n this.next = writer.states;\n}\n\n/**\n * Constructs a new writer instance.\n * @classdesc Wire format writer using `Uint8Array` if available, otherwise `Array`.\n * @constructor\n */\nfunction Writer() {\n\n /**\n * Current length.\n * @type {number}\n */\n this.len = 0;\n\n /**\n * Operations head.\n * @type {Object}\n */\n this.head = new Op(noop, 0, 0);\n\n /**\n * Operations tail\n * @type {Object}\n */\n this.tail = this.head;\n\n /**\n * Linked forked states.\n * @type {Object|null}\n */\n this.states = null;\n\n // When a value is written, the writer calculates its byte length and puts it into a linked\n // list of operations to perform when finish() is called. This both allows us to allocate\n // buffers of the exact required size and reduces the amount of work we have to do compared\n // to first calculating over objects and then encoding over objects. In our case, the encoding\n // part is just a linked list walk calling operations with already prepared values.\n}\n\nvar create = function create() {\n return util.Buffer\n ? function create_buffer_setup() {\n return (Writer.create = function create_buffer() {\n return new BufferWriter();\n })();\n }\n /* istanbul ignore next */\n : function create_array() {\n return new Writer();\n };\n};\n\n/**\n * Creates a new writer.\n * @function\n * @returns {BufferWriter|Writer} A {@link BufferWriter} when Buffers are supported, otherwise a {@link Writer}\n */\nWriter.create = create();\n\n/**\n * Allocates a buffer of the specified size.\n * @param {number} size Buffer size\n * @returns {Uint8Array} Buffer\n */\nWriter.alloc = function alloc(size) {\n return new util.Array(size);\n};\n\n// Use Uint8Array buffer pool in the browser, just like node does with buffers\n/* istanbul ignore else */\nif (util.Array !== Array)\n Writer.alloc = util.pool(Writer.alloc, util.Array.prototype.subarray);\n\n/**\n * Pushes a new operation to the queue.\n * @param {function(Uint8Array, number, *)} fn Function to call\n * @param {number} len Value byte length\n * @param {number} val Value to write\n * @returns {Writer} `this`\n * @private\n */\nWriter.prototype._push = function push(fn, len, val) {\n this.tail = this.tail.next = new Op(fn, len, val);\n this.len += len;\n return this;\n};\n\nfunction writeByte(val, buf, pos) {\n buf[pos] = val & 255;\n}\n\nfunction writeVarint32(val, buf, pos) {\n while (val > 127) {\n buf[pos++] = val & 127 | 128;\n val >>>= 7;\n }\n buf[pos] = val;\n}\n\n/**\n * Constructs a new varint writer operation instance.\n * @classdesc Scheduled varint writer operation.\n * @extends Op\n * @constructor\n * @param {number} len Value byte length\n * @param {number} val Value to write\n * @ignore\n */\nfunction VarintOp(len, val) {\n this.len = len;\n this.next = undefined;\n this.val = val;\n}\n\nVarintOp.prototype = Object.create(Op.prototype);\nVarintOp.prototype.fn = writeVarint32;\n\n/**\n * Writes an unsigned 32 bit value as a varint.\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.uint32 = function write_uint32(value) {\n // here, the call to this.push has been inlined and a varint specific Op subclass is used.\n // uint32 is by far the most frequently used operation and benefits significantly from this.\n this.len += (this.tail = this.tail.next = new VarintOp(\n (value = value >>> 0)\n < 128 ? 1\n : value < 16384 ? 2\n : value < 2097152 ? 3\n : value < 268435456 ? 4\n : 5,\n value)).len;\n return this;\n};\n\n/**\n * Writes a signed 32 bit value as a varint.\n * @function\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.int32 = function write_int32(value) {\n return value < 0\n ? this._push(writeVarint64, 10, LongBits.fromNumber(value)) // 10 bytes per spec\n : this.uint32(value);\n};\n\n/**\n * Writes a 32 bit value as a varint, zig-zag encoded.\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.sint32 = function write_sint32(value) {\n return this.uint32((value << 1 ^ value >> 31) >>> 0);\n};\n\nfunction writeVarint64(val, buf, pos) {\n while (val.hi) {\n buf[pos++] = val.lo & 127 | 128;\n val.lo = (val.lo >>> 7 | val.hi << 25) >>> 0;\n val.hi >>>= 7;\n }\n while (val.lo > 127) {\n buf[pos++] = val.lo & 127 | 128;\n val.lo = val.lo >>> 7;\n }\n buf[pos++] = val.lo;\n}\n\n/**\n * Writes an unsigned 64 bit value as a varint.\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.uint64 = function write_uint64(value) {\n var bits = LongBits.from(value);\n return this._push(writeVarint64, bits.length(), bits);\n};\n\n/**\n * Writes a signed 64 bit value as a varint.\n * @function\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.int64 = Writer.prototype.uint64;\n\n/**\n * Writes a signed 64 bit value as a varint, zig-zag encoded.\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.sint64 = function write_sint64(value) {\n var bits = LongBits.from(value).zzEncode();\n return this._push(writeVarint64, bits.length(), bits);\n};\n\n/**\n * Writes a boolish value as a varint.\n * @param {boolean} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.bool = function write_bool(value) {\n return this._push(writeByte, 1, value ? 1 : 0);\n};\n\nfunction writeFixed32(val, buf, pos) {\n buf[pos ] = val & 255;\n buf[pos + 1] = val >>> 8 & 255;\n buf[pos + 2] = val >>> 16 & 255;\n buf[pos + 3] = val >>> 24;\n}\n\n/**\n * Writes an unsigned 32 bit value as fixed 32 bits.\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.fixed32 = function write_fixed32(value) {\n return this._push(writeFixed32, 4, value >>> 0);\n};\n\n/**\n * Writes a signed 32 bit value as fixed 32 bits.\n * @function\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.sfixed32 = Writer.prototype.fixed32;\n\n/**\n * Writes an unsigned 64 bit value as fixed 64 bits.\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.fixed64 = function write_fixed64(value) {\n var bits = LongBits.from(value);\n return this._push(writeFixed32, 4, bits.lo)._push(writeFixed32, 4, bits.hi);\n};\n\n/**\n * Writes a signed 64 bit value as fixed 64 bits.\n * @function\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.sfixed64 = Writer.prototype.fixed64;\n\n/**\n * Writes a float (32 bit).\n * @function\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.float = function write_float(value) {\n return this._push(util.float.writeFloatLE, 4, value);\n};\n\n/**\n * Writes a double (64 bit float).\n * @function\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.double = function write_double(value) {\n return this._push(util.float.writeDoubleLE, 8, value);\n};\n\nvar writeBytes = util.Array.prototype.set\n ? function writeBytes_set(val, buf, pos) {\n buf.set(val, pos); // also works for plain array values\n }\n /* istanbul ignore next */\n : function writeBytes_for(val, buf, pos) {\n for (var i = 0; i < val.length; ++i)\n buf[pos + i] = val[i];\n };\n\n/**\n * Writes a sequence of bytes.\n * @param {Uint8Array|string} value Buffer or base64 encoded string to write\n * @returns {Writer} `this`\n */\nWriter.prototype.bytes = function write_bytes(value) {\n var len = value.length >>> 0;\n if (!len)\n return this._push(writeByte, 1, 0);\n if (util.isString(value)) {\n var buf = Writer.alloc(len = base64.length(value));\n base64.decode(value, buf, 0);\n value = buf;\n }\n return this.uint32(len)._push(writeBytes, len, value);\n};\n\n/**\n * Writes a string.\n * @param {string} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.string = function write_string(value) {\n var len = utf8.length(value);\n return len\n ? this.uint32(len)._push(utf8.write, len, value)\n : this._push(writeByte, 1, 0);\n};\n\n/**\n * Forks this writer's state by pushing it to a stack.\n * Calling {@link Writer#reset|reset} or {@link Writer#ldelim|ldelim} resets the writer to the previous state.\n * @returns {Writer} `this`\n */\nWriter.prototype.fork = function fork() {\n this.states = new State(this);\n this.head = this.tail = new Op(noop, 0, 0);\n this.len = 0;\n return this;\n};\n\n/**\n * Resets this instance to the last state.\n * @returns {Writer} `this`\n */\nWriter.prototype.reset = function reset() {\n if (this.states) {\n this.head = this.states.head;\n this.tail = this.states.tail;\n this.len = this.states.len;\n this.states = this.states.next;\n } else {\n this.head = this.tail = new Op(noop, 0, 0);\n this.len = 0;\n }\n return this;\n};\n\n/**\n * Resets to the last state and appends the fork state's current write length as a varint followed by its operations.\n * @returns {Writer} `this`\n */\nWriter.prototype.ldelim = function ldelim() {\n var head = this.head,\n tail = this.tail,\n len = this.len;\n this.reset().uint32(len);\n if (len) {\n this.tail.next = head.next; // skip noop\n this.tail = tail;\n this.len += len;\n }\n return this;\n};\n\n/**\n * Finishes the write operation.\n * @returns {Uint8Array} Finished buffer\n */\nWriter.prototype.finish = function finish() {\n var head = this.head.next, // skip noop\n buf = this.constructor.alloc(this.len),\n pos = 0;\n while (head) {\n head.fn(head.val, buf, pos);\n pos += head.len;\n head = head.next;\n }\n // this.head = this.tail = null;\n return buf;\n};\n\nWriter._configure = function(BufferWriter_) {\n BufferWriter = BufferWriter_;\n Writer.create = create();\n BufferWriter._configure();\n};\n", "\"use strict\";\nmodule.exports = BufferWriter;\n\n// extends Writer\nvar Writer = require(\"./writer\");\n(BufferWriter.prototype = Object.create(Writer.prototype)).constructor = BufferWriter;\n\nvar util = require(\"./util/minimal\");\n\n/**\n * Constructs a new buffer writer instance.\n * @classdesc Wire format writer using node buffers.\n * @extends Writer\n * @constructor\n */\nfunction BufferWriter() {\n Writer.call(this);\n}\n\nBufferWriter._configure = function () {\n /**\n * Allocates a buffer of the specified size.\n * @function\n * @param {number} size Buffer size\n * @returns {Buffer} Buffer\n */\n BufferWriter.alloc = util._Buffer_allocUnsafe;\n\n BufferWriter.writeBytesBuffer = util.Buffer && util.Buffer.prototype instanceof Uint8Array && util.Buffer.prototype.set.name === \"set\"\n ? function writeBytesBuffer_set(val, buf, pos) {\n buf.set(val, pos); // faster than copy (requires node >= 4 where Buffers extend Uint8Array and set is properly inherited)\n // also works for plain array values\n }\n /* istanbul ignore next */\n : function writeBytesBuffer_copy(val, buf, pos) {\n if (val.copy) // Buffer values\n val.copy(buf, pos, 0, val.length);\n else for (var i = 0; i < val.length;) // plain array values\n buf[pos++] = val[i++];\n };\n};\n\n\n/**\n * @override\n */\nBufferWriter.prototype.bytes = function write_bytes_buffer(value) {\n if (util.isString(value))\n value = util._Buffer_from(value, \"base64\");\n var len = value.length >>> 0;\n this.uint32(len);\n if (len)\n this._push(BufferWriter.writeBytesBuffer, len, value);\n return this;\n};\n\nfunction writeStringBuffer(val, buf, pos) {\n if (val.length < 40) // plain js is faster for short strings (probably due to redundant assertions)\n util.utf8.write(val, buf, pos);\n else if (buf.utf8Write)\n buf.utf8Write(val, pos);\n else\n buf.write(val, pos);\n}\n\n/**\n * @override\n */\nBufferWriter.prototype.string = function write_string_buffer(value) {\n var len = util.Buffer.byteLength(value);\n this.uint32(len);\n if (len)\n this._push(writeStringBuffer, len, value);\n return this;\n};\n\n\n/**\n * Finishes the write operation.\n * @name BufferWriter#finish\n * @function\n * @returns {Buffer} Finished buffer\n */\n\nBufferWriter._configure();\n", "\"use strict\";\nmodule.exports = Reader;\n\nvar util = require(\"./util/minimal\");\n\nvar BufferReader; // cyclic\n\nvar LongBits = util.LongBits,\n utf8 = util.utf8;\n\n/* istanbul ignore next */\nfunction indexOutOfRange(reader, writeLength) {\n return RangeError(\"index out of range: \" + reader.pos + \" + \" + (writeLength || 1) + \" > \" + reader.len);\n}\n\n/**\n * Constructs a new reader instance using the specified buffer.\n * @classdesc Wire format reader using `Uint8Array` if available, otherwise `Array`.\n * @constructor\n * @param {Uint8Array} buffer Buffer to read from\n */\nfunction Reader(buffer) {\n\n /**\n * Read buffer.\n * @type {Uint8Array}\n */\n this.buf = buffer;\n\n /**\n * Read buffer position.\n * @type {number}\n */\n this.pos = 0;\n\n /**\n * Read buffer length.\n * @type {number}\n */\n this.len = buffer.length;\n}\n\nvar create_array = typeof Uint8Array !== \"undefined\"\n ? function create_typed_array(buffer) {\n if (buffer instanceof Uint8Array || Array.isArray(buffer))\n return new Reader(buffer);\n throw Error(\"illegal buffer\");\n }\n /* istanbul ignore next */\n : function create_array(buffer) {\n if (Array.isArray(buffer))\n return new Reader(buffer);\n throw Error(\"illegal buffer\");\n };\n\nvar create = function create() {\n return util.Buffer\n ? function create_buffer_setup(buffer) {\n return (Reader.create = function create_buffer(buffer) {\n return util.Buffer.isBuffer(buffer)\n ? new BufferReader(buffer)\n /* istanbul ignore next */\n : create_array(buffer);\n })(buffer);\n }\n /* istanbul ignore next */\n : create_array;\n};\n\n/**\n * Creates a new reader using the specified buffer.\n * @function\n * @param {Uint8Array|Buffer} buffer Buffer to read from\n * @returns {Reader|BufferReader} A {@link BufferReader} if `buffer` is a Buffer, otherwise a {@link Reader}\n * @throws {Error} If `buffer` is not a valid buffer\n */\nReader.create = create();\n\nReader.prototype._slice = util.Array.prototype.subarray || /* istanbul ignore next */ util.Array.prototype.slice;\n\n/**\n * Reads a varint as an unsigned 32 bit value.\n * @function\n * @returns {number} Value read\n */\nReader.prototype.uint32 = (function read_uint32_setup() {\n var value = 4294967295; // optimizer type-hint, tends to deopt otherwise (?!)\n return function read_uint32() {\n value = ( this.buf[this.pos] & 127 ) >>> 0; if (this.buf[this.pos++] < 128) return value;\n value = (value | (this.buf[this.pos] & 127) << 7) >>> 0; if (this.buf[this.pos++] < 128) return value;\n value = (value | (this.buf[this.pos] & 127) << 14) >>> 0; if (this.buf[this.pos++] < 128) return value;\n value = (value | (this.buf[this.pos] & 127) << 21) >>> 0; if (this.buf[this.pos++] < 128) return value;\n value = (value | (this.buf[this.pos] & 15) << 28) >>> 0; if (this.buf[this.pos++] < 128) return value;\n\n /* istanbul ignore if */\n if ((this.pos += 5) > this.len) {\n this.pos = this.len;\n throw indexOutOfRange(this, 10);\n }\n return value;\n };\n})();\n\n/**\n * Reads a varint as a signed 32 bit value.\n * @returns {number} Value read\n */\nReader.prototype.int32 = function read_int32() {\n return this.uint32() | 0;\n};\n\n/**\n * Reads a zig-zag encoded varint as a signed 32 bit value.\n * @returns {number} Value read\n */\nReader.prototype.sint32 = function read_sint32() {\n var value = this.uint32();\n return value >>> 1 ^ -(value & 1) | 0;\n};\n\n/* eslint-disable no-invalid-this */\n\nfunction readLongVarint() {\n // tends to deopt with local vars for octet etc.\n var bits = new LongBits(0, 0);\n var i = 0;\n if (this.len - this.pos > 4) { // fast route (lo)\n for (; i < 4; ++i) {\n // 1st..4th\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << i * 7) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n }\n // 5th\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << 28) >>> 0;\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) >> 4) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n i = 0;\n } else {\n for (; i < 3; ++i) {\n /* istanbul ignore if */\n if (this.pos >= this.len)\n throw indexOutOfRange(this);\n // 1st..3th\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << i * 7) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n }\n // 4th\n bits.lo = (bits.lo | (this.buf[this.pos++] & 127) << i * 7) >>> 0;\n return bits;\n }\n if (this.len - this.pos > 4) { // fast route (hi)\n for (; i < 5; ++i) {\n // 6th..10th\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) << i * 7 + 3) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n }\n } else {\n for (; i < 5; ++i) {\n /* istanbul ignore if */\n if (this.pos >= this.len)\n throw indexOutOfRange(this);\n // 6th..10th\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) << i * 7 + 3) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n }\n }\n /* istanbul ignore next */\n throw Error(\"invalid varint encoding\");\n}\n\n/* eslint-enable no-invalid-this */\n\n/**\n * Reads a varint as a signed 64 bit value.\n * @name Reader#int64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads a varint as an unsigned 64 bit value.\n * @name Reader#uint64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads a zig-zag encoded varint as a signed 64 bit value.\n * @name Reader#sint64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads a varint as a boolean.\n * @returns {boolean} Value read\n */\nReader.prototype.bool = function read_bool() {\n return this.uint32() !== 0;\n};\n\nfunction readFixed32_end(buf, end) { // note that this uses `end`, not `pos`\n return (buf[end - 4]\n | buf[end - 3] << 8\n | buf[end - 2] << 16\n | buf[end - 1] << 24) >>> 0;\n}\n\n/**\n * Reads fixed 32 bits as an unsigned 32 bit integer.\n * @returns {number} Value read\n */\nReader.prototype.fixed32 = function read_fixed32() {\n\n /* istanbul ignore if */\n if (this.pos + 4 > this.len)\n throw indexOutOfRange(this, 4);\n\n return readFixed32_end(this.buf, this.pos += 4);\n};\n\n/**\n * Reads fixed 32 bits as a signed 32 bit integer.\n * @returns {number} Value read\n */\nReader.prototype.sfixed32 = function read_sfixed32() {\n\n /* istanbul ignore if */\n if (this.pos + 4 > this.len)\n throw indexOutOfRange(this, 4);\n\n return readFixed32_end(this.buf, this.pos += 4) | 0;\n};\n\n/* eslint-disable no-invalid-this */\n\nfunction readFixed64(/* this: Reader */) {\n\n /* istanbul ignore if */\n if (this.pos + 8 > this.len)\n throw indexOutOfRange(this, 8);\n\n return new LongBits(readFixed32_end(this.buf, this.pos += 4), readFixed32_end(this.buf, this.pos += 4));\n}\n\n/* eslint-enable no-invalid-this */\n\n/**\n * Reads fixed 64 bits.\n * @name Reader#fixed64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads zig-zag encoded fixed 64 bits.\n * @name Reader#sfixed64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads a float (32 bit) as a number.\n * @function\n * @returns {number} Value read\n */\nReader.prototype.float = function read_float() {\n\n /* istanbul ignore if */\n if (this.pos + 4 > this.len)\n throw indexOutOfRange(this, 4);\n\n var value = util.float.readFloatLE(this.buf, this.pos);\n this.pos += 4;\n return value;\n};\n\n/**\n * Reads a double (64 bit float) as a number.\n * @function\n * @returns {number} Value read\n */\nReader.prototype.double = function read_double() {\n\n /* istanbul ignore if */\n if (this.pos + 8 > this.len)\n throw indexOutOfRange(this, 4);\n\n var value = util.float.readDoubleLE(this.buf, this.pos);\n this.pos += 8;\n return value;\n};\n\n/**\n * Reads a sequence of bytes preceeded by its length as a varint.\n * @returns {Uint8Array} Value read\n */\nReader.prototype.bytes = function read_bytes() {\n var length = this.uint32(),\n start = this.pos,\n end = this.pos + length;\n\n /* istanbul ignore if */\n if (end > this.len)\n throw indexOutOfRange(this, length);\n\n this.pos += length;\n if (Array.isArray(this.buf)) // plain array\n return this.buf.slice(start, end);\n return start === end // fix for IE 10/Win8 and others' subarray returning array of size 1\n ? new this.buf.constructor(0)\n : this._slice.call(this.buf, start, end);\n};\n\n/**\n * Reads a string preceeded by its byte length as a varint.\n * @returns {string} Value read\n */\nReader.prototype.string = function read_string() {\n var bytes = this.bytes();\n return utf8.read(bytes, 0, bytes.length);\n};\n\n/**\n * Skips the specified number of bytes if specified, otherwise skips a varint.\n * @param {number} [length] Length if known, otherwise a varint is assumed\n * @returns {Reader} `this`\n */\nReader.prototype.skip = function skip(length) {\n if (typeof length === \"number\") {\n /* istanbul ignore if */\n if (this.pos + length > this.len)\n throw indexOutOfRange(this, length);\n this.pos += length;\n } else {\n do {\n /* istanbul ignore if */\n if (this.pos >= this.len)\n throw indexOutOfRange(this);\n } while (this.buf[this.pos++] & 128);\n }\n return this;\n};\n\n/**\n * Skips the next element of the specified wire type.\n * @param {number} wireType Wire type received\n * @returns {Reader} `this`\n */\nReader.prototype.skipType = function(wireType) {\n switch (wireType) {\n case 0:\n this.skip();\n break;\n case 1:\n this.skip(8);\n break;\n case 2:\n this.skip(this.uint32());\n break;\n case 3:\n while ((wireType = this.uint32() & 7) !== 4) {\n this.skipType(wireType);\n }\n break;\n case 5:\n this.skip(4);\n break;\n\n /* istanbul ignore next */\n default:\n throw Error(\"invalid wire type \" + wireType + \" at offset \" + this.pos);\n }\n return this;\n};\n\nReader._configure = function(BufferReader_) {\n BufferReader = BufferReader_;\n Reader.create = create();\n BufferReader._configure();\n\n var fn = util.Long ? \"toLong\" : /* istanbul ignore next */ \"toNumber\";\n util.merge(Reader.prototype, {\n\n int64: function read_int64() {\n return readLongVarint.call(this)[fn](false);\n },\n\n uint64: function read_uint64() {\n return readLongVarint.call(this)[fn](true);\n },\n\n sint64: function read_sint64() {\n return readLongVarint.call(this).zzDecode()[fn](false);\n },\n\n fixed64: function read_fixed64() {\n return readFixed64.call(this)[fn](true);\n },\n\n sfixed64: function read_sfixed64() {\n return readFixed64.call(this)[fn](false);\n }\n\n });\n};\n", "\"use strict\";\nmodule.exports = BufferReader;\n\n// extends Reader\nvar Reader = require(\"./reader\");\n(BufferReader.prototype = Object.create(Reader.prototype)).constructor = BufferReader;\n\nvar util = require(\"./util/minimal\");\n\n/**\n * Constructs a new buffer reader instance.\n * @classdesc Wire format reader using node buffers.\n * @extends Reader\n * @constructor\n * @param {Buffer} buffer Buffer to read from\n */\nfunction BufferReader(buffer) {\n Reader.call(this, buffer);\n\n /**\n * Read buffer.\n * @name BufferReader#buf\n * @type {Buffer}\n */\n}\n\nBufferReader._configure = function () {\n /* istanbul ignore else */\n if (util.Buffer)\n BufferReader.prototype._slice = util.Buffer.prototype.slice;\n};\n\n\n/**\n * @override\n */\nBufferReader.prototype.string = function read_string_buffer() {\n var len = this.uint32(); // modifies pos\n return this.buf.utf8Slice\n ? this.buf.utf8Slice(this.pos, this.pos = Math.min(this.pos + len, this.len))\n : this.buf.toString(\"utf-8\", this.pos, this.pos = Math.min(this.pos + len, this.len));\n};\n\n/**\n * Reads a sequence of bytes preceeded by its length as a varint.\n * @name BufferReader#bytes\n * @function\n * @returns {Buffer} Value read\n */\n\nBufferReader._configure();\n", "\"use strict\";\nmodule.exports = Service;\n\nvar util = require(\"../util/minimal\");\n\n// Extends EventEmitter\n(Service.prototype = Object.create(util.EventEmitter.prototype)).constructor = Service;\n\n/**\n * A service method callback as used by {@link rpc.ServiceMethod|ServiceMethod}.\n *\n * Differs from {@link RPCImplCallback} in that it is an actual callback of a service method which may not return `response = null`.\n * @typedef rpc.ServiceMethodCallback\n * @template TRes extends Message\n * @type {function}\n * @param {Error|null} error Error, if any\n * @param {TRes} [response] Response message\n * @returns {undefined}\n */\n\n/**\n * A service method part of a {@link rpc.Service} as created by {@link Service.create}.\n * @typedef rpc.ServiceMethod\n * @template TReq extends Message\n * @template TRes extends Message\n * @type {function}\n * @param {TReq|Properties} request Request message or plain object\n * @param {rpc.ServiceMethodCallback} [callback] Node-style callback called with the error, if any, and the response message\n * @returns {Promise>} Promise if `callback` has been omitted, otherwise `undefined`\n */\n\n/**\n * Constructs a new RPC service instance.\n * @classdesc An RPC service as returned by {@link Service#create}.\n * @exports rpc.Service\n * @extends util.EventEmitter\n * @constructor\n * @param {RPCImpl} rpcImpl RPC implementation\n * @param {boolean} [requestDelimited=false] Whether requests are length-delimited\n * @param {boolean} [responseDelimited=false] Whether responses are length-delimited\n */\nfunction Service(rpcImpl, requestDelimited, responseDelimited) {\n\n if (typeof rpcImpl !== \"function\")\n throw TypeError(\"rpcImpl must be a function\");\n\n util.EventEmitter.call(this);\n\n /**\n * RPC implementation. Becomes `null` once the service is ended.\n * @type {RPCImpl|null}\n */\n this.rpcImpl = rpcImpl;\n\n /**\n * Whether requests are length-delimited.\n * @type {boolean}\n */\n this.requestDelimited = Boolean(requestDelimited);\n\n /**\n * Whether responses are length-delimited.\n * @type {boolean}\n */\n this.responseDelimited = Boolean(responseDelimited);\n}\n\n/**\n * Calls a service method through {@link rpc.Service#rpcImpl|rpcImpl}.\n * @param {Method|rpc.ServiceMethod} method Reflected or static method\n * @param {Constructor} requestCtor Request constructor\n * @param {Constructor} responseCtor Response constructor\n * @param {TReq|Properties} request Request message or plain object\n * @param {rpc.ServiceMethodCallback} callback Service callback\n * @returns {undefined}\n * @template TReq extends Message\n * @template TRes extends Message\n */\nService.prototype.rpcCall = function rpcCall(method, requestCtor, responseCtor, request, callback) {\n\n if (!request)\n throw TypeError(\"request must be specified\");\n\n var self = this;\n if (!callback)\n return util.asPromise(rpcCall, self, method, requestCtor, responseCtor, request);\n\n if (!self.rpcImpl) {\n setTimeout(function() { callback(Error(\"already ended\")); }, 0);\n return undefined;\n }\n\n try {\n return self.rpcImpl(\n method,\n requestCtor[self.requestDelimited ? \"encodeDelimited\" : \"encode\"](request).finish(),\n function rpcCallback(err, response) {\n\n if (err) {\n self.emit(\"error\", err, method);\n return callback(err);\n }\n\n if (response === null) {\n self.end(/* endedByRPC */ true);\n return undefined;\n }\n\n if (!(response instanceof responseCtor)) {\n try {\n response = responseCtor[self.responseDelimited ? \"decodeDelimited\" : \"decode\"](response);\n } catch (err) {\n self.emit(\"error\", err, method);\n return callback(err);\n }\n }\n\n self.emit(\"data\", response, method);\n return callback(null, response);\n }\n );\n } catch (err) {\n self.emit(\"error\", err, method);\n setTimeout(function() { callback(err); }, 0);\n return undefined;\n }\n};\n\n/**\n * Ends this service and emits the `end` event.\n * @param {boolean} [endedByRPC=false] Whether the service has been ended by the RPC implementation.\n * @returns {rpc.Service} `this`\n */\nService.prototype.end = function end(endedByRPC) {\n if (this.rpcImpl) {\n if (!endedByRPC) // signal end to rpcImpl\n this.rpcImpl(null, null, null);\n this.rpcImpl = null;\n this.emit(\"end\").off();\n }\n return this;\n};\n", "\"use strict\";\n\n/**\n * Streaming RPC helpers.\n * @namespace\n */\nvar rpc = exports;\n\n/**\n * RPC implementation passed to {@link Service#create} performing a service request on network level, i.e. by utilizing http requests or websockets.\n * @typedef RPCImpl\n * @type {function}\n * @param {Method|rpc.ServiceMethod,Message<{}>>} method Reflected or static method being called\n * @param {Uint8Array} requestData Request data\n * @param {RPCImplCallback} callback Callback function\n * @returns {undefined}\n * @example\n * function rpcImpl(method, requestData, callback) {\n * if (protobuf.util.lcFirst(method.name) !== \"myMethod\") // compatible with static code\n * throw Error(\"no such method\");\n * asynchronouslyObtainAResponse(requestData, function(err, responseData) {\n * callback(err, responseData);\n * });\n * }\n */\n\n/**\n * Node-style callback as used by {@link RPCImpl}.\n * @typedef RPCImplCallback\n * @type {function}\n * @param {Error|null} error Error, if any, otherwise `null`\n * @param {Uint8Array|null} [response] Response data or `null` to signal end of stream, if there hasn't been an error\n * @returns {undefined}\n */\n\nrpc.Service = require(\"./rpc/service\");\n", "\"use strict\";\nmodule.exports = {};\n\n/**\n * Named roots.\n * This is where pbjs stores generated structures (the option `-r, --root` specifies a name).\n * Can also be used manually to make roots available accross modules.\n * @name roots\n * @type {Object.}\n * @example\n * // pbjs -r myroot -o compiled.js ...\n *\n * // in another module:\n * require(\"./compiled.js\");\n *\n * // in any subsequent module:\n * var root = protobuf.roots[\"myroot\"];\n */\n", "\"use strict\";\nvar protobuf = exports;\n\n/**\n * Build type, one of `\"full\"`, `\"light\"` or `\"minimal\"`.\n * @name build\n * @type {string}\n * @const\n */\nprotobuf.build = \"minimal\";\n\n// Serialization\nprotobuf.Writer = require(\"./writer\");\nprotobuf.BufferWriter = require(\"./writer_buffer\");\nprotobuf.Reader = require(\"./reader\");\nprotobuf.BufferReader = require(\"./reader_buffer\");\n\n// Utility\nprotobuf.util = require(\"./util/minimal\");\nprotobuf.rpc = require(\"./rpc\");\nprotobuf.roots = require(\"./roots\");\nprotobuf.configure = configure;\n\n/* istanbul ignore next */\n/**\n * Reconfigures the library according to the environment.\n * @returns {undefined}\n */\nfunction configure() {\n protobuf.util._configure();\n protobuf.Writer._configure(protobuf.BufferWriter);\n protobuf.Reader._configure(protobuf.BufferReader);\n}\n\n// Set up buffer utility according to the environment\nconfigure();\n", "// minimal library entry point.\n\n\"use strict\";\nmodule.exports = require(\"./src/index-minimal\");\n", null, null, null, null, null, "'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n", null, "'use strict'\nvar ALPHABET = 'qpzry9x8gf2tvdw0s3jn54khce6mua7l'\n\n// pre-compute lookup table\nvar ALPHABET_MAP = {}\nfor (var z = 0; z < ALPHABET.length; z++) {\n var x = ALPHABET.charAt(z)\n\n if (ALPHABET_MAP[x] !== undefined) throw new TypeError(x + ' is ambiguous')\n ALPHABET_MAP[x] = z\n}\n\nfunction polymodStep (pre) {\n var b = pre >> 25\n return ((pre & 0x1FFFFFF) << 5) ^\n (-((b >> 0) & 1) & 0x3b6a57b2) ^\n (-((b >> 1) & 1) & 0x26508e6d) ^\n (-((b >> 2) & 1) & 0x1ea119fa) ^\n (-((b >> 3) & 1) & 0x3d4233dd) ^\n (-((b >> 4) & 1) & 0x2a1462b3)\n}\n\nfunction prefixChk (prefix) {\n var chk = 1\n for (var i = 0; i < prefix.length; ++i) {\n var c = prefix.charCodeAt(i)\n if (c < 33 || c > 126) return 'Invalid prefix (' + prefix + ')'\n\n chk = polymodStep(chk) ^ (c >> 5)\n }\n chk = polymodStep(chk)\n\n for (i = 0; i < prefix.length; ++i) {\n var v = prefix.charCodeAt(i)\n chk = polymodStep(chk) ^ (v & 0x1f)\n }\n return chk\n}\n\nfunction encode (prefix, words, LIMIT) {\n LIMIT = LIMIT || 90\n if ((prefix.length + 7 + words.length) > LIMIT) throw new TypeError('Exceeds length limit')\n\n prefix = prefix.toLowerCase()\n\n // determine chk mod\n var chk = prefixChk(prefix)\n if (typeof chk === 'string') throw new Error(chk)\n\n var result = prefix + '1'\n for (var i = 0; i < words.length; ++i) {\n var x = words[i]\n if ((x >> 5) !== 0) throw new Error('Non 5-bit word')\n\n chk = polymodStep(chk) ^ x\n result += ALPHABET.charAt(x)\n }\n\n for (i = 0; i < 6; ++i) {\n chk = polymodStep(chk)\n }\n chk ^= 1\n\n for (i = 0; i < 6; ++i) {\n var v = (chk >> ((5 - i) * 5)) & 0x1f\n result += ALPHABET.charAt(v)\n }\n\n return result\n}\n\nfunction __decode (str, LIMIT) {\n LIMIT = LIMIT || 90\n if (str.length < 8) return str + ' too short'\n if (str.length > LIMIT) return 'Exceeds length limit'\n\n // don't allow mixed case\n var lowered = str.toLowerCase()\n var uppered = str.toUpperCase()\n if (str !== lowered && str !== uppered) return 'Mixed-case string ' + str\n str = lowered\n\n var split = str.lastIndexOf('1')\n if (split === -1) return 'No separator character for ' + str\n if (split === 0) return 'Missing prefix for ' + str\n\n var prefix = str.slice(0, split)\n var wordChars = str.slice(split + 1)\n if (wordChars.length < 6) return 'Data too short'\n\n var chk = prefixChk(prefix)\n if (typeof chk === 'string') return chk\n\n var words = []\n for (var i = 0; i < wordChars.length; ++i) {\n var c = wordChars.charAt(i)\n var v = ALPHABET_MAP[c]\n if (v === undefined) return 'Unknown character ' + c\n chk = polymodStep(chk) ^ v\n\n // not in the checksum?\n if (i + 6 >= wordChars.length) continue\n words.push(v)\n }\n\n if (chk !== 1) return 'Invalid checksum for ' + str\n return { prefix: prefix, words: words }\n}\n\nfunction decodeUnsafe () {\n var res = __decode.apply(null, arguments)\n if (typeof res === 'object') return res\n}\n\nfunction decode (str) {\n var res = __decode.apply(null, arguments)\n if (typeof res === 'object') return res\n\n throw new Error(res)\n}\n\nfunction convert (data, inBits, outBits, pad) {\n var value = 0\n var bits = 0\n var maxV = (1 << outBits) - 1\n\n var result = []\n for (var i = 0; i < data.length; ++i) {\n value = (value << inBits) | data[i]\n bits += inBits\n\n while (bits >= outBits) {\n bits -= outBits\n result.push((value >> bits) & maxV)\n }\n }\n\n if (pad) {\n if (bits > 0) {\n result.push((value << (outBits - bits)) & maxV)\n }\n } else {\n if (bits >= inBits) return 'Excess padding'\n if ((value << (outBits - bits)) & maxV) return 'Non-zero padding'\n }\n\n return result\n}\n\nfunction toWordsUnsafe (bytes) {\n var res = convert(bytes, 8, 5, true)\n if (Array.isArray(res)) return res\n}\n\nfunction toWords (bytes) {\n var res = convert(bytes, 8, 5, true)\n if (Array.isArray(res)) return res\n\n throw new Error(res)\n}\n\nfunction fromWordsUnsafe (words) {\n var res = convert(words, 5, 8, false)\n if (Array.isArray(res)) return res\n}\n\nfunction fromWords (words) {\n var res = convert(words, 5, 8, false)\n if (Array.isArray(res)) return res\n\n throw new Error(res)\n}\n\nmodule.exports = {\n decodeUnsafe: decodeUnsafe,\n decode: decode,\n encode: encode,\n toWordsUnsafe: toWordsUnsafe,\n toWords: toWords,\n fromWordsUnsafe: fromWordsUnsafe,\n fromWords: fromWords\n}\n", null, null, null, null, null, "/**\n* This file was automatically generated by @cosmwasm/ts-codegen@0.24.0.\n* DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,\n* and run the @cosmwasm/ts-codegen generate command to regenerate this file.\n*/\n\nimport { CosmWasmClient, SigningCosmWasmClient, ExecuteResult } from \"@cosmjs/cosmwasm-stargate\";\nimport { Coin, StdFee } from \"@cosmjs/amino\";\nimport { Decimal, Timestamp, Uint64, InstantiateMsg, Cw721InstantiateMsgForNullable_CollectionExtensionMsgForRoyaltyInfoResponse, CollectionExtensionMsgForRoyaltyInfoResponse, RoyaltyInfoResponse, ExecuteMsg, Addr, Binary, Expiration, NFT, TextRecord, Metadata, CosmosArbitrary, QueryMsg, String, AllNftInfoResponseForMetadata, OwnerOfResponse, Approval, NftInfoResponseForMetadata, TokensResponse, ApprovalResponse, CollectionInfoAndExtensionResponseForNullable_CollectionExtensionForRoyaltyInfo, CollectionExtensionForRoyaltyInfo, RoyaltyInfo, NullableNFT, OwnershipForAddr, NumTokensResponse, OperatorResponse, OwnershipForString, SudoParams, ArrayOfTextRecord, NullableString } from \"./Terp721Account.types\";\nexport interface Terp721AccountReadOnlyInterface {\n contractAddress: string;\n params: () => Promise;\n account: ({\n address\n }: {\n address: string;\n }) => Promise;\n associatedAddress: ({\n account\n }: {\n account: string;\n }) => Promise;\n reverseMapAddress: ({\n address\n }: {\n address: string;\n }) => Promise;\n reverseMapAccount: ({\n address\n }: {\n address: string;\n }) => Promise;\n imageNFT: ({\n account\n }: {\n account: string;\n }) => Promise;\n textRecords: ({\n account\n }: {\n account: string;\n }) => Promise;\n verifier: () => Promise;\n ownerOf: ({\n includeExpired,\n tokenId\n }: {\n includeExpired?: boolean;\n tokenId: string;\n }) => Promise;\n approval: ({\n includeExpired,\n spender,\n tokenId\n }: {\n includeExpired?: boolean;\n spender: string;\n tokenId: string;\n }) => Promise;\n numTokens: () => Promise;\n contractInfo: () => Promise;\n nftInfo: ({\n tokenId\n }: {\n tokenId: string;\n }) => Promise;\n allNftInfo: ({\n includeExpired,\n tokenId\n }: {\n includeExpired?: boolean;\n tokenId: string;\n }) => Promise;\n tokens: ({\n limit,\n owner,\n startAfter\n }: {\n limit?: number;\n owner: string;\n startAfter?: string;\n }) => Promise;\n allTokens: ({\n limit,\n startAfter\n }: {\n limit?: number;\n startAfter?: string;\n }) => Promise;\n minter: () => Promise;\n operator: ({\n includeExpired,\n operator,\n owner\n }: {\n includeExpired?: boolean;\n operator: string;\n owner: string;\n }) => Promise;\n ownership: () => Promise;\n}\nexport class Terp721AccountQueryClient implements Terp721AccountReadOnlyInterface {\n client: CosmWasmClient;\n contractAddress: string;\n\n constructor(client: CosmWasmClient, contractAddress: string) {\n this.client = client;\n this.contractAddress = contractAddress;\n this.params = this.params.bind(this);\n this.account = this.account.bind(this);\n this.associatedAddress = this.associatedAddress.bind(this);\n this.reverseMapAddress = this.reverseMapAddress.bind(this);\n this.reverseMapAccount = this.reverseMapAccount.bind(this);\n this.imageNFT = this.imageNFT.bind(this);\n this.textRecords = this.textRecords.bind(this);\n this.verifier = this.verifier.bind(this);\n this.ownerOf = this.ownerOf.bind(this);\n this.approval = this.approval.bind(this);\n this.numTokens = this.numTokens.bind(this);\n this.contractInfo = this.contractInfo.bind(this);\n this.nftInfo = this.nftInfo.bind(this);\n this.allNftInfo = this.allNftInfo.bind(this);\n this.tokens = this.tokens.bind(this);\n this.allTokens = this.allTokens.bind(this);\n this.minter = this.minter.bind(this);\n this.operator = this.operator.bind(this);\n this.ownership = this.ownership.bind(this);\n }\n\n params = async (): Promise => {\n return this.client.queryContractSmart(this.contractAddress, {\n params: {}\n });\n };\n account = async ({\n address\n }: {\n address: string;\n }): Promise => {\n return this.client.queryContractSmart(this.contractAddress, {\n account: {\n address\n }\n });\n };\n associatedAddress = async ({\n account\n }: {\n account: string;\n }): Promise => {\n return this.client.queryContractSmart(this.contractAddress, {\n associated_address: {\n account\n }\n });\n };\n reverseMapAddress = async ({\n address\n }: {\n address: string;\n }): Promise => {\n return this.client.queryContractSmart(this.contractAddress, {\n reverse_map_address: {\n address\n }\n });\n };\n reverseMapAccount = async ({\n address\n }: {\n address: string;\n }): Promise => {\n return this.client.queryContractSmart(this.contractAddress, {\n reverse_map_account: {\n address\n }\n });\n };\n imageNFT = async ({\n account\n }: {\n account: string;\n }): Promise => {\n return this.client.queryContractSmart(this.contractAddress, {\n image_n_f_t: {\n account\n }\n });\n };\n textRecords = async ({\n account\n }: {\n account: string;\n }): Promise => {\n return this.client.queryContractSmart(this.contractAddress, {\n text_records: {\n account\n }\n });\n };\n verifier = async (): Promise => {\n return this.client.queryContractSmart(this.contractAddress, {\n verifier: {}\n });\n };\n ownerOf = async ({\n includeExpired,\n tokenId\n }: {\n includeExpired?: boolean;\n tokenId: string;\n }): Promise => {\n return this.client.queryContractSmart(this.contractAddress, {\n owner_of: {\n include_expired: includeExpired,\n token_id: tokenId\n }\n });\n };\n approval = async ({\n includeExpired,\n spender,\n tokenId\n }: {\n includeExpired?: boolean;\n spender: string;\n tokenId: string;\n }): Promise => {\n return this.client.queryContractSmart(this.contractAddress, {\n approval: {\n include_expired: includeExpired,\n spender,\n token_id: tokenId\n }\n });\n };\n numTokens = async (): Promise => {\n return this.client.queryContractSmart(this.contractAddress, {\n num_tokens: {}\n });\n };\n contractInfo = async (): Promise => {\n return this.client.queryContractSmart(this.contractAddress, {\n contract_info: {}\n });\n };\n nftInfo = async ({\n tokenId\n }: {\n tokenId: string;\n }): Promise => {\n return this.client.queryContractSmart(this.contractAddress, {\n nft_info: {\n token_id: tokenId\n }\n });\n };\n allNftInfo = async ({\n includeExpired,\n tokenId\n }: {\n includeExpired?: boolean;\n tokenId: string;\n }): Promise => {\n return this.client.queryContractSmart(this.contractAddress, {\n all_nft_info: {\n include_expired: includeExpired,\n token_id: tokenId\n }\n });\n };\n tokens = async ({\n limit,\n owner,\n startAfter\n }: {\n limit?: number;\n owner: string;\n startAfter?: string;\n }): Promise => {\n return this.client.queryContractSmart(this.contractAddress, {\n tokens: {\n limit,\n owner,\n start_after: startAfter\n }\n });\n };\n allTokens = async ({\n limit,\n startAfter\n }: {\n limit?: number;\n startAfter?: string;\n }): Promise => {\n return this.client.queryContractSmart(this.contractAddress, {\n all_tokens: {\n limit,\n start_after: startAfter\n }\n });\n };\n minter = async (): Promise => {\n return this.client.queryContractSmart(this.contractAddress, {\n minter: {}\n });\n };\n operator = async ({\n includeExpired,\n operator,\n owner\n }: {\n includeExpired?: boolean;\n operator: string;\n owner: string;\n }): Promise => {\n return this.client.queryContractSmart(this.contractAddress, {\n operator: {\n include_expired: includeExpired,\n operator,\n owner\n }\n });\n };\n ownership = async (): Promise => {\n return this.client.queryContractSmart(this.contractAddress, {\n ownership: {}\n });\n };\n}\nexport interface Terp721AccountInterface extends Terp721AccountReadOnlyInterface {\n contractAddress: string;\n sender: string;\n setMarketplace: ({\n address\n }: {\n address: string;\n }, fee?: number | StdFee | \"auto\", memo?: string, funds?: Coin[]) => Promise;\n associateAddress: ({\n account,\n address\n }: {\n account: string;\n address?: string;\n }, fee?: number | StdFee | \"auto\", memo?: string, funds?: Coin[]) => Promise;\n updateImageNft: ({\n account,\n nft\n }: {\n account: string;\n nft?: NFT;\n }, fee?: number | StdFee | \"auto\", memo?: string, funds?: Coin[]) => Promise;\n addTextRecord: ({\n account,\n record\n }: {\n account: string;\n record: TextRecord;\n }, fee?: number | StdFee | \"auto\", memo?: string, funds?: Coin[]) => Promise;\n removeTextRecord: ({\n account,\n recordAccount\n }: {\n account: string;\n recordAccount: string;\n }, fee?: number | StdFee | \"auto\", memo?: string, funds?: Coin[]) => Promise;\n updateTextRecord: ({\n account,\n record\n }: {\n account: string;\n record: TextRecord;\n }, fee?: number | StdFee | \"auto\", memo?: string, funds?: Coin[]) => Promise;\n verifyTextRecord: ({\n account,\n recordAccount,\n result\n }: {\n account: string;\n recordAccount: string;\n result: boolean;\n }, fee?: number | StdFee | \"auto\", memo?: string, funds?: Coin[]) => Promise;\n updateVerifier: ({\n verifier\n }: {\n verifier?: string;\n }, fee?: number | StdFee | \"auto\", memo?: string, funds?: Coin[]) => Promise;\n transferNft: ({\n recipient,\n tokenId\n }: {\n recipient: string;\n tokenId: string;\n }, fee?: number | StdFee | \"auto\", memo?: string, funds?: Coin[]) => Promise;\n sendNft: ({\n contract,\n msg,\n tokenId\n }: {\n contract: string;\n msg: Binary;\n tokenId: string;\n }, fee?: number | StdFee | \"auto\", memo?: string, funds?: Coin[]) => Promise;\n approve: ({\n expires,\n spender,\n tokenId\n }: {\n expires?: Expiration;\n spender: string;\n tokenId: string;\n }, fee?: number | StdFee | \"auto\", memo?: string, funds?: Coin[]) => Promise;\n revoke: ({\n spender,\n tokenId\n }: {\n spender: string;\n tokenId: string;\n }, fee?: number | StdFee | \"auto\", memo?: string, funds?: Coin[]) => Promise;\n approveAllViaMarket: ({\n expires,\n owner\n }: {\n expires?: Expiration;\n owner: string;\n }, fee?: number | StdFee | \"auto\", memo?: string, funds?: Coin[]) => Promise;\n approveAll: ({\n expires,\n operator\n }: {\n expires?: Expiration;\n operator: string;\n }, fee?: number | StdFee | \"auto\", memo?: string, funds?: Coin[]) => Promise;\n updateAbsAccSupport: ({\n abstract,\n tokenId\n }: {\n abstract?: string;\n tokenId: string;\n }, fee?: number | StdFee | \"auto\", memo?: string, funds?: Coin[]) => Promise;\n revokeAll: ({\n operator\n }: {\n operator: string;\n }, fee?: number | StdFee | \"auto\", memo?: string, funds?: Coin[]) => Promise;\n mint: ({\n extension,\n owner,\n tokenId,\n tokenUri\n }: {\n extension: Metadata;\n owner: string;\n tokenId: string;\n tokenUri?: string;\n }, fee?: number | StdFee | \"auto\", memo?: string, funds?: Coin[]) => Promise;\n burn: ({\n tokenId\n }: {\n tokenId: string;\n }, fee?: number | StdFee | \"auto\", memo?: string, funds?: Coin[]) => Promise;\n freezeCollectionInfo: (fee?: number | StdFee | \"auto\", memo?: string, funds?: Coin[]) => Promise;\n updateMyReverseMapKey: ({\n toAdd,\n toRemove\n }: {\n toAdd: CosmosArbitrary[];\n toRemove: string[];\n }, fee?: number | StdFee | \"auto\", memo?: string, funds?: Coin[]) => Promise;\n}\nexport class Terp721AccountClient extends Terp721AccountQueryClient implements Terp721AccountInterface {\n client: SigningCosmWasmClient;\n sender: string;\n contractAddress: string;\n\n constructor(client: SigningCosmWasmClient, sender: string, contractAddress: string) {\n super(client, contractAddress);\n this.client = client;\n this.sender = sender;\n this.contractAddress = contractAddress;\n this.setMarketplace = this.setMarketplace.bind(this);\n this.associateAddress = this.associateAddress.bind(this);\n this.updateImageNft = this.updateImageNft.bind(this);\n this.addTextRecord = this.addTextRecord.bind(this);\n this.removeTextRecord = this.removeTextRecord.bind(this);\n this.updateTextRecord = this.updateTextRecord.bind(this);\n this.verifyTextRecord = this.verifyTextRecord.bind(this);\n this.updateVerifier = this.updateVerifier.bind(this);\n this.transferNft = this.transferNft.bind(this);\n this.sendNft = this.sendNft.bind(this);\n this.approve = this.approve.bind(this);\n this.revoke = this.revoke.bind(this);\n this.approveAllViaMarket = this.approveAllViaMarket.bind(this);\n this.approveAll = this.approveAll.bind(this);\n this.updateAbsAccSupport = this.updateAbsAccSupport.bind(this);\n this.revokeAll = this.revokeAll.bind(this);\n this.mint = this.mint.bind(this);\n this.burn = this.burn.bind(this);\n this.freezeCollectionInfo = this.freezeCollectionInfo.bind(this);\n this.updateMyReverseMapKey = this.updateMyReverseMapKey.bind(this);\n }\n\n setMarketplace = async ({\n address\n }: {\n address: string;\n }, fee: number | StdFee | \"auto\" = \"auto\", memo?: string, funds?: Coin[]): Promise => {\n return await this.client.execute(this.sender, this.contractAddress, {\n set_marketplace: {\n address\n }\n }, fee, memo, funds);\n };\n associateAddress = async ({\n account,\n address\n }: {\n account: string;\n address?: string;\n }, fee: number | StdFee | \"auto\" = \"auto\", memo?: string, funds?: Coin[]): Promise => {\n return await this.client.execute(this.sender, this.contractAddress, {\n associate_address: {\n account,\n address\n }\n }, fee, memo, funds);\n };\n updateImageNft = async ({\n account,\n nft\n }: {\n account: string;\n nft?: NFT;\n }, fee: number | StdFee | \"auto\" = \"auto\", memo?: string, funds?: Coin[]): Promise => {\n return await this.client.execute(this.sender, this.contractAddress, {\n update_image_nft: {\n account,\n nft\n }\n }, fee, memo, funds);\n };\n addTextRecord = async ({\n account,\n record\n }: {\n account: string;\n record: TextRecord;\n }, fee: number | StdFee | \"auto\" = \"auto\", memo?: string, funds?: Coin[]): Promise => {\n return await this.client.execute(this.sender, this.contractAddress, {\n add_text_record: {\n account,\n record\n }\n }, fee, memo, funds);\n };\n removeTextRecord = async ({\n account,\n recordAccount\n }: {\n account: string;\n recordAccount: string;\n }, fee: number | StdFee | \"auto\" = \"auto\", memo?: string, funds?: Coin[]): Promise => {\n return await this.client.execute(this.sender, this.contractAddress, {\n remove_text_record: {\n account,\n record_account: recordAccount\n }\n }, fee, memo, funds);\n };\n updateTextRecord = async ({\n account,\n record\n }: {\n account: string;\n record: TextRecord;\n }, fee: number | StdFee | \"auto\" = \"auto\", memo?: string, funds?: Coin[]): Promise => {\n return await this.client.execute(this.sender, this.contractAddress, {\n update_text_record: {\n account,\n record\n }\n }, fee, memo, funds);\n };\n verifyTextRecord = async ({\n account,\n recordAccount,\n result\n }: {\n account: string;\n recordAccount: string;\n result: boolean;\n }, fee: number | StdFee | \"auto\" = \"auto\", memo?: string, funds?: Coin[]): Promise => {\n return await this.client.execute(this.sender, this.contractAddress, {\n verify_text_record: {\n account,\n record_account: recordAccount,\n result\n }\n }, fee, memo, funds);\n };\n updateVerifier = async ({\n verifier\n }: {\n verifier?: string;\n }, fee: number | StdFee | \"auto\" = \"auto\", memo?: string, funds?: Coin[]): Promise => {\n return await this.client.execute(this.sender, this.contractAddress, {\n update_verifier: {\n verifier\n }\n }, fee, memo, funds);\n };\n transferNft = async ({\n recipient,\n tokenId\n }: {\n recipient: string;\n tokenId: string;\n }, fee: number | StdFee | \"auto\" = \"auto\", memo?: string, funds?: Coin[]): Promise => {\n return await this.client.execute(this.sender, this.contractAddress, {\n transfer_nft: {\n recipient,\n token_id: tokenId\n }\n }, fee, memo, funds);\n };\n sendNft = async ({\n contract,\n msg,\n tokenId\n }: {\n contract: string;\n msg: Binary;\n tokenId: string;\n }, fee: number | StdFee | \"auto\" = \"auto\", memo?: string, funds?: Coin[]): Promise => {\n return await this.client.execute(this.sender, this.contractAddress, {\n send_nft: {\n contract,\n msg,\n token_id: tokenId\n }\n }, fee, memo, funds);\n };\n approve = async ({\n expires,\n spender,\n tokenId\n }: {\n expires?: Expiration;\n spender: string;\n tokenId: string;\n }, fee: number | StdFee | \"auto\" = \"auto\", memo?: string, funds?: Coin[]): Promise => {\n return await this.client.execute(this.sender, this.contractAddress, {\n approve: {\n expires,\n spender,\n token_id: tokenId\n }\n }, fee, memo, funds);\n };\n revoke = async ({\n spender,\n tokenId\n }: {\n spender: string;\n tokenId: string;\n }, fee: number | StdFee | \"auto\" = \"auto\", memo?: string, funds?: Coin[]): Promise => {\n return await this.client.execute(this.sender, this.contractAddress, {\n revoke: {\n spender,\n token_id: tokenId\n }\n }, fee, memo, funds);\n };\n approveAllViaMarket = async ({\n expires,\n owner\n }: {\n expires?: Expiration;\n owner: string;\n }, fee: number | StdFee | \"auto\" = \"auto\", memo?: string, funds?: Coin[]): Promise => {\n return await this.client.execute(this.sender, this.contractAddress, {\n approve_all_via_market: {\n expires,\n owner\n }\n }, fee, memo, funds);\n };\n approveAll = async ({\n expires,\n operator\n }: {\n expires?: Expiration;\n operator: string;\n }, fee: number | StdFee | \"auto\" = \"auto\", memo?: string, funds?: Coin[]): Promise => {\n return await this.client.execute(this.sender, this.contractAddress, {\n approve_all: {\n expires,\n operator\n }\n }, fee, memo, funds);\n };\n updateAbsAccSupport = async ({\n abstract,\n tokenId\n }: {\n abstract?: string;\n tokenId: string;\n }, fee: number | StdFee | \"auto\" = \"auto\", memo?: string, funds?: Coin[]): Promise => {\n return await this.client.execute(this.sender, this.contractAddress, {\n update_abs_acc_support: {\n abstract,\n token_id: tokenId\n }\n }, fee, memo, funds);\n };\n revokeAll = async ({\n operator\n }: {\n operator: string;\n }, fee: number | StdFee | \"auto\" = \"auto\", memo?: string, funds?: Coin[]): Promise => {\n return await this.client.execute(this.sender, this.contractAddress, {\n revoke_all: {\n operator\n }\n }, fee, memo, funds);\n };\n mint = async ({\n extension,\n owner,\n tokenId,\n tokenUri\n }: {\n extension: Metadata;\n owner: string;\n tokenId: string;\n tokenUri?: string;\n }, fee: number | StdFee | \"auto\" = \"auto\", memo?: string, funds?: Coin[]): Promise => {\n return await this.client.execute(this.sender, this.contractAddress, {\n mint: {\n extension,\n owner,\n token_id: tokenId,\n token_uri: tokenUri\n }\n }, fee, memo, funds);\n };\n burn = async ({\n tokenId\n }: {\n tokenId: string;\n }, fee: number | StdFee | \"auto\" = \"auto\", memo?: string, funds?: Coin[]): Promise => {\n return await this.client.execute(this.sender, this.contractAddress, {\n burn: {\n token_id: tokenId\n }\n }, fee, memo, funds);\n };\n freezeCollectionInfo = async (fee: number | StdFee | \"auto\" = \"auto\", memo?: string, funds?: Coin[]): Promise => {\n return await this.client.execute(this.sender, this.contractAddress, {\n freeze_collection_info: {}\n }, fee, memo, funds);\n };\n updateMyReverseMapKey = async ({\n toAdd,\n toRemove\n }: {\n toAdd: CosmosArbitrary[];\n toRemove: string[];\n }, fee: number | StdFee | \"auto\" = \"auto\", memo?: string, funds?: Coin[]): Promise => {\n return await this.client.execute(this.sender, this.contractAddress, {\n update_my_reverse_map_key: {\n to_add: toAdd,\n to_remove: toRemove\n }\n }, fee, memo, funds);\n };\n}", "/**\n* This file was automatically generated by @cosmwasm/ts-codegen@0.24.0.\n* DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,\n* and run the @cosmwasm/ts-codegen generate command to regenerate this file.\n*/\n\nimport { Coin } from \"@cosmjs/amino\";\nimport { MsgExecuteContractEncodeObject } from \"cosmwasm\";\nimport { MsgExecuteContract } from \"cosmjs-types/cosmwasm/wasm/v1/tx\";\nimport { toUtf8 } from \"@cosmjs/encoding\";\nimport { Decimal, Timestamp, Uint64, InstantiateMsg, Cw721InstantiateMsgForNullable_CollectionExtensionMsgForRoyaltyInfoResponse, CollectionExtensionMsgForRoyaltyInfoResponse, RoyaltyInfoResponse, ExecuteMsg, Addr, Binary, Expiration, NFT, TextRecord, Metadata, CosmosArbitrary, QueryMsg, String, AllNftInfoResponseForMetadata, OwnerOfResponse, Approval, NftInfoResponseForMetadata, TokensResponse, ApprovalResponse, CollectionInfoAndExtensionResponseForNullable_CollectionExtensionForRoyaltyInfo, CollectionExtensionForRoyaltyInfo, RoyaltyInfo, NullableNFT, OwnershipForAddr, NumTokensResponse, OperatorResponse, OwnershipForString, SudoParams, ArrayOfTextRecord, NullableString } from \"./Terp721Account.types\";\nexport interface Terp721AccountMessage {\n contractAddress: string;\n sender: string;\n setMarketplace: ({\n address\n }: {\n address: string;\n }, funds?: Coin[]) => MsgExecuteContractEncodeObject;\n associateAddress: ({\n account,\n address\n }: {\n account: string;\n address?: string;\n }, funds?: Coin[]) => MsgExecuteContractEncodeObject;\n updateImageNft: ({\n account,\n nft\n }: {\n account: string;\n nft?: NFT;\n }, funds?: Coin[]) => MsgExecuteContractEncodeObject;\n addTextRecord: ({\n account,\n record\n }: {\n account: string;\n record: TextRecord;\n }, funds?: Coin[]) => MsgExecuteContractEncodeObject;\n removeTextRecord: ({\n account,\n recordAccount\n }: {\n account: string;\n recordAccount: string;\n }, funds?: Coin[]) => MsgExecuteContractEncodeObject;\n updateTextRecord: ({\n account,\n record\n }: {\n account: string;\n record: TextRecord;\n }, funds?: Coin[]) => MsgExecuteContractEncodeObject;\n verifyTextRecord: ({\n account,\n recordAccount,\n result\n }: {\n account: string;\n recordAccount: string;\n result: boolean;\n }, funds?: Coin[]) => MsgExecuteContractEncodeObject;\n updateVerifier: ({\n verifier\n }: {\n verifier?: string;\n }, funds?: Coin[]) => MsgExecuteContractEncodeObject;\n transferNft: ({\n recipient,\n tokenId\n }: {\n recipient: string;\n tokenId: string;\n }, funds?: Coin[]) => MsgExecuteContractEncodeObject;\n sendNft: ({\n contract,\n msg,\n tokenId\n }: {\n contract: string;\n msg: Binary;\n tokenId: string;\n }, funds?: Coin[]) => MsgExecuteContractEncodeObject;\n approve: ({\n expires,\n spender,\n tokenId\n }: {\n expires?: Expiration;\n spender: string;\n tokenId: string;\n }, funds?: Coin[]) => MsgExecuteContractEncodeObject;\n revoke: ({\n spender,\n tokenId\n }: {\n spender: string;\n tokenId: string;\n }, funds?: Coin[]) => MsgExecuteContractEncodeObject;\n approveAllViaMarket: ({\n expires,\n owner\n }: {\n expires?: Expiration;\n owner: string;\n }, funds?: Coin[]) => MsgExecuteContractEncodeObject;\n approveAll: ({\n expires,\n operator\n }: {\n expires?: Expiration;\n operator: string;\n }, funds?: Coin[]) => MsgExecuteContractEncodeObject;\n updateAbsAccSupport: ({\n abstract,\n tokenId\n }: {\n abstract?: string;\n tokenId: string;\n }, funds?: Coin[]) => MsgExecuteContractEncodeObject;\n revokeAll: ({\n operator\n }: {\n operator: string;\n }, funds?: Coin[]) => MsgExecuteContractEncodeObject;\n mint: ({\n extension,\n owner,\n tokenId,\n tokenUri\n }: {\n extension: Metadata;\n owner: string;\n tokenId: string;\n tokenUri?: string;\n }, funds?: Coin[]) => MsgExecuteContractEncodeObject;\n burn: ({\n tokenId\n }: {\n tokenId: string;\n }, funds?: Coin[]) => MsgExecuteContractEncodeObject;\n freezeCollectionInfo: (funds?: Coin[]) => MsgExecuteContractEncodeObject;\n updateMyReverseMapKey: ({\n toAdd,\n toRemove\n }: {\n toAdd: CosmosArbitrary[];\n toRemove: string[];\n }, funds?: Coin[]) => MsgExecuteContractEncodeObject;\n}\nexport class Terp721AccountMessageComposer implements Terp721AccountMessage {\n sender: string;\n contractAddress: string;\n\n constructor(sender: string, contractAddress: string) {\n this.sender = sender;\n this.contractAddress = contractAddress;\n this.setMarketplace = this.setMarketplace.bind(this);\n this.associateAddress = this.associateAddress.bind(this);\n this.updateImageNft = this.updateImageNft.bind(this);\n this.addTextRecord = this.addTextRecord.bind(this);\n this.removeTextRecord = this.removeTextRecord.bind(this);\n this.updateTextRecord = this.updateTextRecord.bind(this);\n this.verifyTextRecord = this.verifyTextRecord.bind(this);\n this.updateVerifier = this.updateVerifier.bind(this);\n this.transferNft = this.transferNft.bind(this);\n this.sendNft = this.sendNft.bind(this);\n this.approve = this.approve.bind(this);\n this.revoke = this.revoke.bind(this);\n this.approveAllViaMarket = this.approveAllViaMarket.bind(this);\n this.approveAll = this.approveAll.bind(this);\n this.updateAbsAccSupport = this.updateAbsAccSupport.bind(this);\n this.revokeAll = this.revokeAll.bind(this);\n this.mint = this.mint.bind(this);\n this.burn = this.burn.bind(this);\n this.freezeCollectionInfo = this.freezeCollectionInfo.bind(this);\n this.updateMyReverseMapKey = this.updateMyReverseMapKey.bind(this);\n }\n\n setMarketplace = ({\n address\n }: {\n address: string;\n }, funds?: Coin[]): MsgExecuteContractEncodeObject => {\n return {\n typeUrl: \"/cosmwasm.wasm.v1.MsgExecuteContract\",\n value: MsgExecuteContract.fromPartial({\n sender: this.sender,\n contract: this.contractAddress,\n msg: toUtf8(JSON.stringify({\n set_marketplace: {\n address\n }\n })),\n funds\n })\n };\n };\n associateAddress = ({\n account,\n address\n }: {\n account: string;\n address?: string;\n }, funds?: Coin[]): MsgExecuteContractEncodeObject => {\n return {\n typeUrl: \"/cosmwasm.wasm.v1.MsgExecuteContract\",\n value: MsgExecuteContract.fromPartial({\n sender: this.sender,\n contract: this.contractAddress,\n msg: toUtf8(JSON.stringify({\n associate_address: {\n account,\n address\n }\n })),\n funds\n })\n };\n };\n updateImageNft = ({\n account,\n nft\n }: {\n account: string;\n nft?: NFT;\n }, funds?: Coin[]): MsgExecuteContractEncodeObject => {\n return {\n typeUrl: \"/cosmwasm.wasm.v1.MsgExecuteContract\",\n value: MsgExecuteContract.fromPartial({\n sender: this.sender,\n contract: this.contractAddress,\n msg: toUtf8(JSON.stringify({\n update_image_nft: {\n account,\n nft\n }\n })),\n funds\n })\n };\n };\n addTextRecord = ({\n account,\n record\n }: {\n account: string;\n record: TextRecord;\n }, funds?: Coin[]): MsgExecuteContractEncodeObject => {\n return {\n typeUrl: \"/cosmwasm.wasm.v1.MsgExecuteContract\",\n value: MsgExecuteContract.fromPartial({\n sender: this.sender,\n contract: this.contractAddress,\n msg: toUtf8(JSON.stringify({\n add_text_record: {\n account,\n record\n }\n })),\n funds\n })\n };\n };\n removeTextRecord = ({\n account,\n recordAccount\n }: {\n account: string;\n recordAccount: string;\n }, funds?: Coin[]): MsgExecuteContractEncodeObject => {\n return {\n typeUrl: \"/cosmwasm.wasm.v1.MsgExecuteContract\",\n value: MsgExecuteContract.fromPartial({\n sender: this.sender,\n contract: this.contractAddress,\n msg: toUtf8(JSON.stringify({\n remove_text_record: {\n account,\n record_account: recordAccount\n }\n })),\n funds\n })\n };\n };\n updateTextRecord = ({\n account,\n record\n }: {\n account: string;\n record: TextRecord;\n }, funds?: Coin[]): MsgExecuteContractEncodeObject => {\n return {\n typeUrl: \"/cosmwasm.wasm.v1.MsgExecuteContract\",\n value: MsgExecuteContract.fromPartial({\n sender: this.sender,\n contract: this.contractAddress,\n msg: toUtf8(JSON.stringify({\n update_text_record: {\n account,\n record\n }\n })),\n funds\n })\n };\n };\n verifyTextRecord = ({\n account,\n recordAccount,\n result\n }: {\n account: string;\n recordAccount: string;\n result: boolean;\n }, funds?: Coin[]): MsgExecuteContractEncodeObject => {\n return {\n typeUrl: \"/cosmwasm.wasm.v1.MsgExecuteContract\",\n value: MsgExecuteContract.fromPartial({\n sender: this.sender,\n contract: this.contractAddress,\n msg: toUtf8(JSON.stringify({\n verify_text_record: {\n account,\n record_account: recordAccount,\n result\n }\n })),\n funds\n })\n };\n };\n updateVerifier = ({\n verifier\n }: {\n verifier?: string;\n }, funds?: Coin[]): MsgExecuteContractEncodeObject => {\n return {\n typeUrl: \"/cosmwasm.wasm.v1.MsgExecuteContract\",\n value: MsgExecuteContract.fromPartial({\n sender: this.sender,\n contract: this.contractAddress,\n msg: toUtf8(JSON.stringify({\n update_verifier: {\n verifier\n }\n })),\n funds\n })\n };\n };\n transferNft = ({\n recipient,\n tokenId\n }: {\n recipient: string;\n tokenId: string;\n }, funds?: Coin[]): MsgExecuteContractEncodeObject => {\n return {\n typeUrl: \"/cosmwasm.wasm.v1.MsgExecuteContract\",\n value: MsgExecuteContract.fromPartial({\n sender: this.sender,\n contract: this.contractAddress,\n msg: toUtf8(JSON.stringify({\n transfer_nft: {\n recipient,\n token_id: tokenId\n }\n })),\n funds\n })\n };\n };\n sendNft = ({\n contract,\n msg,\n tokenId\n }: {\n contract: string;\n msg: Binary;\n tokenId: string;\n }, funds?: Coin[]): MsgExecuteContractEncodeObject => {\n return {\n typeUrl: \"/cosmwasm.wasm.v1.MsgExecuteContract\",\n value: MsgExecuteContract.fromPartial({\n sender: this.sender,\n contract: this.contractAddress,\n msg: toUtf8(JSON.stringify({\n send_nft: {\n contract,\n msg,\n token_id: tokenId\n }\n })),\n funds\n })\n };\n };\n approve = ({\n expires,\n spender,\n tokenId\n }: {\n expires?: Expiration;\n spender: string;\n tokenId: string;\n }, funds?: Coin[]): MsgExecuteContractEncodeObject => {\n return {\n typeUrl: \"/cosmwasm.wasm.v1.MsgExecuteContract\",\n value: MsgExecuteContract.fromPartial({\n sender: this.sender,\n contract: this.contractAddress,\n msg: toUtf8(JSON.stringify({\n approve: {\n expires,\n spender,\n token_id: tokenId\n }\n })),\n funds\n })\n };\n };\n revoke = ({\n spender,\n tokenId\n }: {\n spender: string;\n tokenId: string;\n }, funds?: Coin[]): MsgExecuteContractEncodeObject => {\n return {\n typeUrl: \"/cosmwasm.wasm.v1.MsgExecuteContract\",\n value: MsgExecuteContract.fromPartial({\n sender: this.sender,\n contract: this.contractAddress,\n msg: toUtf8(JSON.stringify({\n revoke: {\n spender,\n token_id: tokenId\n }\n })),\n funds\n })\n };\n };\n approveAllViaMarket = ({\n expires,\n owner\n }: {\n expires?: Expiration;\n owner: string;\n }, funds?: Coin[]): MsgExecuteContractEncodeObject => {\n return {\n typeUrl: \"/cosmwasm.wasm.v1.MsgExecuteContract\",\n value: MsgExecuteContract.fromPartial({\n sender: this.sender,\n contract: this.contractAddress,\n msg: toUtf8(JSON.stringify({\n approve_all_via_market: {\n expires,\n owner\n }\n })),\n funds\n })\n };\n };\n approveAll = ({\n expires,\n operator\n }: {\n expires?: Expiration;\n operator: string;\n }, funds?: Coin[]): MsgExecuteContractEncodeObject => {\n return {\n typeUrl: \"/cosmwasm.wasm.v1.MsgExecuteContract\",\n value: MsgExecuteContract.fromPartial({\n sender: this.sender,\n contract: this.contractAddress,\n msg: toUtf8(JSON.stringify({\n approve_all: {\n expires,\n operator\n }\n })),\n funds\n })\n };\n };\n updateAbsAccSupport = ({\n abstract,\n tokenId\n }: {\n abstract?: string;\n tokenId: string;\n }, funds?: Coin[]): MsgExecuteContractEncodeObject => {\n return {\n typeUrl: \"/cosmwasm.wasm.v1.MsgExecuteContract\",\n value: MsgExecuteContract.fromPartial({\n sender: this.sender,\n contract: this.contractAddress,\n msg: toUtf8(JSON.stringify({\n update_abs_acc_support: {\n abstract,\n token_id: tokenId\n }\n })),\n funds\n })\n };\n };\n revokeAll = ({\n operator\n }: {\n operator: string;\n }, funds?: Coin[]): MsgExecuteContractEncodeObject => {\n return {\n typeUrl: \"/cosmwasm.wasm.v1.MsgExecuteContract\",\n value: MsgExecuteContract.fromPartial({\n sender: this.sender,\n contract: this.contractAddress,\n msg: toUtf8(JSON.stringify({\n revoke_all: {\n operator\n }\n })),\n funds\n })\n };\n };\n mint = ({\n extension,\n owner,\n tokenId,\n tokenUri\n }: {\n extension: Metadata;\n owner: string;\n tokenId: string;\n tokenUri?: string;\n }, funds?: Coin[]): MsgExecuteContractEncodeObject => {\n return {\n typeUrl: \"/cosmwasm.wasm.v1.MsgExecuteContract\",\n value: MsgExecuteContract.fromPartial({\n sender: this.sender,\n contract: this.contractAddress,\n msg: toUtf8(JSON.stringify({\n mint: {\n extension,\n owner,\n token_id: tokenId,\n token_uri: tokenUri\n }\n })),\n funds\n })\n };\n };\n burn = ({\n tokenId\n }: {\n tokenId: string;\n }, funds?: Coin[]): MsgExecuteContractEncodeObject => {\n return {\n typeUrl: \"/cosmwasm.wasm.v1.MsgExecuteContract\",\n value: MsgExecuteContract.fromPartial({\n sender: this.sender,\n contract: this.contractAddress,\n msg: toUtf8(JSON.stringify({\n burn: {\n token_id: tokenId\n }\n })),\n funds\n })\n };\n };\n freezeCollectionInfo = (funds?: Coin[]): MsgExecuteContractEncodeObject => {\n return {\n typeUrl: \"/cosmwasm.wasm.v1.MsgExecuteContract\",\n value: MsgExecuteContract.fromPartial({\n sender: this.sender,\n contract: this.contractAddress,\n msg: toUtf8(JSON.stringify({\n freeze_collection_info: {}\n })),\n funds\n })\n };\n };\n updateMyReverseMapKey = ({\n toAdd,\n toRemove\n }: {\n toAdd: CosmosArbitrary[];\n toRemove: string[];\n }, funds?: Coin[]): MsgExecuteContractEncodeObject => {\n return {\n typeUrl: \"/cosmwasm.wasm.v1.MsgExecuteContract\",\n value: MsgExecuteContract.fromPartial({\n sender: this.sender,\n contract: this.contractAddress,\n msg: toUtf8(JSON.stringify({\n update_my_reverse_map_key: {\n to_add: toAdd,\n to_remove: toRemove\n }\n })),\n funds\n })\n };\n };\n}"], + "mappings": "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", + "names": ["require_long", "__commonJSMin", "exports", "module", "Long", "wasm", "low", "high", "unsigned", "isLong", "obj", "INT_CACHE", "UINT_CACHE", "fromInt", "value", "cachedObj", "cache", "fromBits", "fromNumber", "UZERO", "ZERO", "TWO_PWR_64_DBL", "MAX_UNSIGNED_VALUE", "TWO_PWR_63_DBL", "MIN_VALUE", "MAX_VALUE", "TWO_PWR_32_DBL", "lowBits", "highBits", "pow_dbl", "fromString", "str", "radix", "p", "radixToPower", "result", "i", "size", "power", "fromValue", "val", "TWO_PWR_16_DBL", "TWO_PWR_24_DBL", "TWO_PWR_24", "ONE", "UONE", "NEG_ONE", "LongPrototype", "radixLong", "div", "rem1", "rem", "remDiv", "intval", "digits", "bit", "other", "thisNeg", "otherNeg", "addend", "a48", "a32", "a16", "a00", "b48", "b32", "b16", "b00", "c48", "c32", "c16", "c00", "subtrahend", "multiplier", "divisor", "approx", "res", "halfThis", "log2", "delta", "approxRes", "approxRem", "numBits", "le", "hi", "lo", "bytes", "require_aspromise", "__commonJSMin", "exports", "module", "asPromise", "fn", "ctx", "params", "offset", "index", "pending", "resolve", "reject", "err", "require_base64", "__commonJSMin", "exports", "base64", "string", "p", "b64", "s64", "i", "buffer", "start", "end", "parts", "chunk", "j", "t", "b", "invalidEncoding", "offset", "c", "require_eventemitter", "__commonJSMin", "exports", "module", "EventEmitter", "evt", "fn", "ctx", "listeners", "args", "require_float", "__commonJSMin", "exports", "module", "factory", "f32", "f8b", "le", "writeFloat_f32_cpy", "val", "buf", "pos", "writeFloat_f32_rev", "readFloat_f32_cpy", "readFloat_f32_rev", "writeFloat_ieee754", "writeUint", "sign", "exponent", "mantissa", "writeUintLE", "writeUintBE", "readFloat_ieee754", "readUint", "uint", "readUintLE", "readUintBE", "f64", "writeDouble_f64_cpy", "writeDouble_f64_rev", "readDouble_f64_cpy", "readDouble_f64_rev", "writeDouble_ieee754", "off0", "off1", "readDouble_ieee754", "lo", "hi", "require_inquire", "__commonJSMin", "e", "require_utf8", "__commonJSMin", "exports", "utf8", "string", "len", "c", "buffer", "start", "end", "parts", "chunk", "i", "t", "offset", "c1", "c2", "require_pool", "__commonJSMin", "exports", "module", "pool", "alloc", "slice", "size", "SIZE", "MAX", "slab", "offset", "buf", "require_longbits", "__commonJSMin", "exports", "module", "LongBits", "util", "lo", "hi", "zero", "zeroHash", "value", "sign", "unsigned", "charCodeAt", "hash", "mask", "part0", "part1", "part2", "require_minimal", "__commonJSMin", "exports", "util", "value", "obj", "prop", "Buffer", "sizeOrArray", "hash", "unsigned", "bits", "merge", "dst", "src", "ifNotSet", "keys", "str", "newError", "name", "CustomError", "message", "properties", "fieldNames", "fieldMap", "i", "encoding", "size", "require_writer", "__commonJSMin", "exports", "module", "Writer", "util", "BufferWriter", "LongBits", "base64", "utf8", "Op", "fn", "len", "val", "noop", "State", "writer", "create", "size", "writeByte", "buf", "pos", "writeVarint32", "VarintOp", "value", "writeVarint64", "bits", "writeFixed32", "writeBytes", "head", "tail", "BufferWriter_", "require_writer_buffer", "__commonJSMin", "exports", "module", "BufferWriter", "Writer", "util", "val", "buf", "pos", "value", "len", "writeStringBuffer", "require_reader", "__commonJSMin", "exports", "module", "Reader", "util", "BufferReader", "LongBits", "utf8", "indexOutOfRange", "reader", "writeLength", "buffer", "create_array", "create", "value", "readLongVarint", "bits", "i", "readFixed32_end", "buf", "end", "readFixed64", "length", "start", "bytes", "wireType", "BufferReader_", "fn", "require_reader_buffer", "__commonJSMin", "exports", "module", "BufferReader", "Reader", "util", "buffer", "len", "require_service", "__commonJSMin", "exports", "module", "Service", "util", "rpcImpl", "requestDelimited", "responseDelimited", "rpcCall", "method", "requestCtor", "responseCtor", "request", "callback", "self", "err", "response", "endedByRPC", "require_rpc", "__commonJSMin", "exports", "rpc", "require_roots", "__commonJSMin", "exports", "module", "require_index_minimal", "__commonJSMin", "exports", "protobuf", "configure", "require_minimal", "__commonJSMin", "exports", "module", "long_1", "__importDefault", "minimal_1", "exports", "createBaseCoin", "message", "writer", "input", "length", "reader", "end", "tag", "object", "isSet", "obj", "_a", "_b", "createBaseDecCoin", "createBaseIntProto", "createBaseDecProto", "value", "long_1", "__importDefault", "minimal_1", "exports", "createBaseAny", "message", "writer", "input", "length", "reader", "end", "tag", "object", "isSet", "bytesFromBase64", "obj", "base64FromBytes", "_a", "_b", "globalThis", "b64", "bin", "arr", "i", "byte", "value", "long_1", "__importDefault", "minimal_1", "any_1", "exports", "AccessType", "accessTypeFromJSON", "object", "accessTypeToJSON", "ContractCodeHistoryOperationType", "contractCodeHistoryOperationTypeFromJSON", "contractCodeHistoryOperationTypeToJSON", "createBaseAccessTypeParam", "message", "writer", "input", "length", "reader", "end", "tag", "isSet", "obj", "_a", "createBaseAccessConfig", "_b", "createBaseParams", "createBaseCodeInfo", "bytesFromBase64", "base64FromBytes", "createBaseContractInfo", "_c", "_d", "createBaseContractCodeHistoryEntry", "createBaseAbsoluteTxPosition", "createBaseModel", "globalThis", "b64", "bin", "arr", "i", "byte", "value", "long_1", "__importDefault", "minimal_1", "coin_1", "types_1", "exports", "createBaseMsgStoreCode", "message", "writer", "input", "length", "reader", "end", "tag", "object", "isSet", "bytesFromBase64", "obj", "base64FromBytes", "_a", "_b", "createBaseMsgStoreCodeResponse", "createBaseMsgInstantiateContract", "v", "e", "_c", "_d", "_e", "createBaseMsgInstantiateContractResponse", "createBaseMsgExecuteContract", "createBaseMsgExecuteContractResponse", "createBaseMsgMigrateContract", "createBaseMsgMigrateContractResponse", "createBaseMsgUpdateAdmin", "createBaseMsgUpdateAdminResponse", "_", "createBaseMsgClearAdmin", "createBaseMsgClearAdminResponse", "MsgClientImpl", "rpc", "request", "data", "globalThis", "b64", "bin", "arr", "i", "byte", "value", "toAscii", "input", "str", "x", "charCode", "exports", "fromAscii", "data", "listOfNumbers", "require_base64_js", "__commonJSMin", "exports", "byteLength", "toByteArray", "fromByteArray", "lookup", "revLookup", "Arr", "code", "i", "len", "getLens", "b64", "validLen", "placeHoldersLen", "lens", "_byteLength", "tmp", "arr", "curByte", "tripletToBase64", "num", "encodeChunk", "uint8", "start", "end", "output", "extraBytes", "parts", "maxChunkLength", "len2", "base64js", "__importStar", "toBase64", "data", "exports", "fromBase64", "base64String", "require_bech32", "__commonJSMin", "exports", "module", "ALPHABET", "ALPHABET_MAP", "z", "x", "polymodStep", "pre", "b", "prefixChk", "prefix", "chk", "i", "c", "v", "encode", "words", "LIMIT", "result", "__decode", "str", "lowered", "uppered", "split", "wordChars", "decodeUnsafe", "res", "decode", "convert", "data", "inBits", "outBits", "pad", "value", "bits", "maxV", "toWordsUnsafe", "bytes", "toWords", "fromWordsUnsafe", "fromWords", "bech32", "__importStar", "toBech32", "prefix", "data", "limit", "exports", "fromBech32", "address", "decodedAddress", "normalizeBech32", "Bech32", "toHex", "data", "out", "byte", "exports", "fromHex", "hexstring", "i", "j", "hexByteAsString", "rfc3339Matcher", "padded", "integer", "length", "fromRfc3339", "str", "matches", "year", "month", "day", "hour", "minute", "second", "milliSeconds", "tzOffsetSign", "tzOffsetHours", "tzOffsetMinutes", "tzOffset", "timestamp", "exports", "toRfc3339", "date", "ms", "toUtf8", "str", "exports", "fromUtf8", "data", "lossy", "fatal", "ascii_1", "exports", "base64_1", "bech32_1", "hex_1", "rfc3339_1", "utf8_1", "Terp721AccountQueryClient", "client", "contractAddress", "__publicField", "address", "account", "includeExpired", "tokenId", "spender", "limit", "owner", "startAfter", "operator", "Terp721AccountClient", "sender", "fee", "memo", "funds", "nft", "record", "recordAccount", "result", "verifier", "recipient", "contract", "msg", "expires", "abstract", "extension", "tokenUri", "toAdd", "toRemove", "import_tx", "import_encoding", "Terp721AccountMessageComposer", "sender", "contractAddress", "__publicField", "address", "funds", "account", "nft", "record", "recordAccount", "result", "verifier", "recipient", "tokenId", "contract", "msg", "expires", "spender", "owner", "operator", "abstract", "extension", "tokenUri", "toAdd", "toRemove"] +} diff --git a/lib/whitelist-merkletree.js b/lib/whitelist-merkletree.js new file mode 100644 index 0000000..644e9e7 --- /dev/null +++ b/lib/whitelist-merkletree.js @@ -0,0 +1,2 @@ +var u=Object.defineProperty;var p=(i,s,t)=>s in i?u(i,s,{enumerable:!0,configurable:!0,writable:!0,value:t}):i[s]=t;var e=(i,s,t)=>p(i,typeof s!="symbol"?s+"":s,t);var d=class{constructor(s,t){e(this,"client");e(this,"contractAddress");e(this,"hasStarted",async()=>this.client.queryContractSmart(this.contractAddress,{has_started:{}}));e(this,"hasEnded",async()=>this.client.queryContractSmart(this.contractAddress,{has_ended:{}}));e(this,"isActive",async()=>this.client.queryContractSmart(this.contractAddress,{is_active:{}}));e(this,"hasMember",async({member:s,proofHashes:t})=>this.client.queryContractSmart(this.contractAddress,{has_member:{member:s,proof_hashes:t}}));e(this,"config",async()=>this.client.queryContractSmart(this.contractAddress,{config:{}}));e(this,"adminList",async()=>this.client.queryContractSmart(this.contractAddress,{admin_list:{}}));e(this,"canExecute",async({msg:s,sender:t})=>this.client.queryContractSmart(this.contractAddress,{can_execute:{msg:s,sender:t}}));e(this,"merkleRoot",async()=>this.client.queryContractSmart(this.contractAddress,{merkle_root:{}}));e(this,"merkleTreeURI",async()=>this.client.queryContractSmart(this.contractAddress,{merkle_tree_u_r_i:{}}));this.client=s,this.contractAddress=t,this.hasStarted=this.hasStarted.bind(this),this.hasEnded=this.hasEnded.bind(this),this.isActive=this.isActive.bind(this),this.hasMember=this.hasMember.bind(this),this.config=this.config.bind(this),this.adminList=this.adminList.bind(this),this.canExecute=this.canExecute.bind(this),this.merkleRoot=this.merkleRoot.bind(this),this.merkleTreeURI=this.merkleTreeURI.bind(this)}},m=class extends d{constructor(t,r,n){super(t,n);e(this,"client");e(this,"sender");e(this,"contractAddress");e(this,"updateStartTime",async(t="auto",r,n)=>await this.client.execute(this.sender,this.contractAddress,{update_start_time:{}},t,r,n));e(this,"updateEndTime",async(t="auto",r,n)=>await this.client.execute(this.sender,this.contractAddress,{update_end_time:{}},t,r,n));e(this,"updateAdmins",async({admins:t},r="auto",n,h)=>await this.client.execute(this.sender,this.contractAddress,{update_admins:{admins:t}},r,n,h));e(this,"freeze",async(t="auto",r,n)=>await this.client.execute(this.sender,this.contractAddress,{freeze:{}},t,r,n));this.client=t,this.sender=r,this.contractAddress=n,this.updateStartTime=this.updateStartTime.bind(this),this.updateEndTime=this.updateEndTime.bind(this),this.updateAdmins=this.updateAdmins.bind(this),this.freeze=this.freeze.bind(this)}};import{MsgExecuteContract as a}from"interchainjs/cosmwasm/wasm/v1/tx";import{toUtf8 as o}from"@interchainjs/encoding";var c=class{constructor(s,t){e(this,"sender");e(this,"contractAddress");e(this,"updateStartTime",s=>({typeUrl:"/cosmwasm.wasm.v1.MsgExecuteContract",value:a.fromPartial({sender:this.sender,contract:this.contractAddress,msg:o(JSON.stringify({update_start_time:{}})),funds:s})}));e(this,"updateEndTime",s=>({typeUrl:"/cosmwasm.wasm.v1.MsgExecuteContract",value:a.fromPartial({sender:this.sender,contract:this.contractAddress,msg:o(JSON.stringify({update_end_time:{}})),funds:s})}));e(this,"updateAdmins",({admins:s},t)=>({typeUrl:"/cosmwasm.wasm.v1.MsgExecuteContract",value:a.fromPartial({sender:this.sender,contract:this.contractAddress,msg:o(JSON.stringify({update_admins:{admins:s}})),funds:t})}));e(this,"freeze",s=>({typeUrl:"/cosmwasm.wasm.v1.MsgExecuteContract",value:a.fromPartial({sender:this.sender,contract:this.contractAddress,msg:o(JSON.stringify({freeze:{}})),funds:s})}));this.sender=s,this.contractAddress=t,this.updateStartTime=this.updateStartTime.bind(this),this.updateEndTime=this.updateEndTime.bind(this),this.updateAdmins=this.updateAdmins.bind(this),this.freeze=this.freeze.bind(this)}};export{m as WhitelistMerkletreeClient,c as WhitelistMerkletreeMsgComposer,d as WhitelistMerkletreeQueryClient}; +//# sourceMappingURL=whitelist-merkletree.js.map diff --git a/lib/whitelist-merkletree.js.map b/lib/whitelist-merkletree.js.map new file mode 100644 index 0000000..ff441da --- /dev/null +++ b/lib/whitelist-merkletree.js.map @@ -0,0 +1,7 @@ +{ + "version": 3, + "sources": ["../../src/WhitelistMerkletree.client.ts", "../../src/WhitelistMerkletree.message-composer.ts"], + "sourcesContent": ["/**\n* This file was automatically generated by @cosmwasm/ts-codegen@1.14.0.\n* DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,\n* and run the @cosmwasm/ts-codegen generate command to regenerate this file.\n*/\n\nimport { ICosmWasmClient, ISigningCosmWasmClient } from \"./baseClient\";\nimport { StdFee } from \"@interchainjs/types\";\nimport { Timestamp, Uint64, Uint128, InstantiateMsg, Coin, ExecuteMsg, QueryMsg, CosmosMsgForEmpty, BankMsg, WasmMsg, Binary, Empty, AdminListResponse, CanExecuteResponse, ConfigResponse, HasEndedResponse, HasMemberResponse, HasStartedResponse, IsActiveResponse, MerkleRootResponse, MerkleTreeURIResponse } from \"./WhitelistMerkletree.types\";\nexport interface WhitelistMerkletreeReadOnlyInterface {\n contractAddress: string;\n hasStarted: () => Promise;\n hasEnded: () => Promise;\n isActive: () => Promise;\n hasMember: ({\n member,\n proofHashes\n }: {\n member: string;\n proofHashes: string[];\n }) => Promise;\n config: () => Promise;\n adminList: () => Promise;\n canExecute: ({\n msg,\n sender\n }: {\n msg: CosmosMsgForEmpty;\n sender: string;\n }) => Promise;\n merkleRoot: () => Promise;\n merkleTreeURI: () => Promise;\n}\nexport class WhitelistMerkletreeQueryClient implements WhitelistMerkletreeReadOnlyInterface {\n client: ICosmWasmClient;\n contractAddress: string;\n constructor(client: ICosmWasmClient, contractAddress: string) {\n this.client = client;\n this.contractAddress = contractAddress;\n this.hasStarted = this.hasStarted.bind(this);\n this.hasEnded = this.hasEnded.bind(this);\n this.isActive = this.isActive.bind(this);\n this.hasMember = this.hasMember.bind(this);\n this.config = this.config.bind(this);\n this.adminList = this.adminList.bind(this);\n this.canExecute = this.canExecute.bind(this);\n this.merkleRoot = this.merkleRoot.bind(this);\n this.merkleTreeURI = this.merkleTreeURI.bind(this);\n }\n hasStarted = async (): Promise => {\n return this.client.queryContractSmart(this.contractAddress, {\n has_started: {}\n });\n };\n hasEnded = async (): Promise => {\n return this.client.queryContractSmart(this.contractAddress, {\n has_ended: {}\n });\n };\n isActive = async (): Promise => {\n return this.client.queryContractSmart(this.contractAddress, {\n is_active: {}\n });\n };\n hasMember = async ({\n member,\n proofHashes\n }: {\n member: string;\n proofHashes: string[];\n }): Promise => {\n return this.client.queryContractSmart(this.contractAddress, {\n has_member: {\n member,\n proof_hashes: proofHashes\n }\n });\n };\n config = async (): Promise => {\n return this.client.queryContractSmart(this.contractAddress, {\n config: {}\n });\n };\n adminList = async (): Promise => {\n return this.client.queryContractSmart(this.contractAddress, {\n admin_list: {}\n });\n };\n canExecute = async ({\n msg,\n sender\n }: {\n msg: CosmosMsgForEmpty;\n sender: string;\n }): Promise => {\n return this.client.queryContractSmart(this.contractAddress, {\n can_execute: {\n msg,\n sender\n }\n });\n };\n merkleRoot = async (): Promise => {\n return this.client.queryContractSmart(this.contractAddress, {\n merkle_root: {}\n });\n };\n merkleTreeURI = async (): Promise => {\n return this.client.queryContractSmart(this.contractAddress, {\n merkle_tree_u_r_i: {}\n });\n };\n}\nexport interface WhitelistMerkletreeInterface extends WhitelistMerkletreeReadOnlyInterface {\n contractAddress: string;\n sender: string;\n updateStartTime: (fee_?: number | StdFee | \"auto\", memo_?: string, funds_?: Coin[]) => Promise;\n updateEndTime: (fee_?: number | StdFee | \"auto\", memo_?: string, funds_?: Coin[]) => Promise;\n updateAdmins: ({\n admins\n }: {\n admins: string[];\n }, fee_?: number | StdFee | \"auto\", memo_?: string, funds_?: Coin[]) => Promise;\n freeze: (fee_?: number | StdFee | \"auto\", memo_?: string, funds_?: Coin[]) => Promise;\n}\nexport class WhitelistMerkletreeClient extends WhitelistMerkletreeQueryClient implements WhitelistMerkletreeInterface {\n client: ISigningCosmWasmClient;\n sender: string;\n contractAddress: string;\n constructor(client: ISigningCosmWasmClient, sender: string, contractAddress: string) {\n super(client, contractAddress);\n this.client = client;\n this.sender = sender;\n this.contractAddress = contractAddress;\n this.updateStartTime = this.updateStartTime.bind(this);\n this.updateEndTime = this.updateEndTime.bind(this);\n this.updateAdmins = this.updateAdmins.bind(this);\n this.freeze = this.freeze.bind(this);\n }\n updateStartTime = async (fee_: number | StdFee | \"auto\" = \"auto\", memo_?: string, funds_?: Coin[]): Promise => {\n return await this.client.execute(this.sender, this.contractAddress, {\n update_start_time: {}\n }, fee_, memo_, funds_);\n };\n updateEndTime = async (fee_: number | StdFee | \"auto\" = \"auto\", memo_?: string, funds_?: Coin[]): Promise => {\n return await this.client.execute(this.sender, this.contractAddress, {\n update_end_time: {}\n }, fee_, memo_, funds_);\n };\n updateAdmins = async ({\n admins\n }: {\n admins: string[];\n }, fee_: number | StdFee | \"auto\" = \"auto\", memo_?: string, funds_?: Coin[]): Promise => {\n return await this.client.execute(this.sender, this.contractAddress, {\n update_admins: {\n admins\n }\n }, fee_, memo_, funds_);\n };\n freeze = async (fee_: number | StdFee | \"auto\" = \"auto\", memo_?: string, funds_?: Coin[]): Promise => {\n return await this.client.execute(this.sender, this.contractAddress, {\n freeze: {}\n }, fee_, memo_, funds_);\n };\n}", "/**\n* This file was automatically generated by @cosmwasm/ts-codegen@1.14.0.\n* DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file,\n* and run the @cosmwasm/ts-codegen generate command to regenerate this file.\n*/\n\nimport { EncodeObject } from \"@interchainjs/cosmos-types\";\nimport { MsgExecuteContract } from \"interchainjs/cosmwasm/wasm/v1/tx\";\nimport { toUtf8 } from \"@interchainjs/encoding\";\nimport { Timestamp, Uint64, Uint128, InstantiateMsg, Coin, ExecuteMsg, QueryMsg, CosmosMsgForEmpty, BankMsg, WasmMsg, Binary, Empty, AdminListResponse, CanExecuteResponse, ConfigResponse, HasEndedResponse, HasMemberResponse, HasStartedResponse, IsActiveResponse, MerkleRootResponse, MerkleTreeURIResponse } from \"./WhitelistMerkletree.types\";\nexport interface WhitelistMerkletreeMsg {\n contractAddress: string;\n sender: string;\n updateStartTime: (funds_?: Coin[]) => EncodeObject;\n updateEndTime: (funds_?: Coin[]) => EncodeObject;\n updateAdmins: ({\n admins\n }: {\n admins: string[];\n }, funds_?: Coin[]) => EncodeObject;\n freeze: (funds_?: Coin[]) => EncodeObject;\n}\nexport class WhitelistMerkletreeMsgComposer implements WhitelistMerkletreeMsg {\n sender: string;\n contractAddress: string;\n constructor(sender: string, contractAddress: string) {\n this.sender = sender;\n this.contractAddress = contractAddress;\n this.updateStartTime = this.updateStartTime.bind(this);\n this.updateEndTime = this.updateEndTime.bind(this);\n this.updateAdmins = this.updateAdmins.bind(this);\n this.freeze = this.freeze.bind(this);\n }\n updateStartTime = (funds_?: Coin[]): EncodeObject => {\n return {\n typeUrl: \"/cosmwasm.wasm.v1.MsgExecuteContract\",\n value: MsgExecuteContract.fromPartial({\n sender: this.sender,\n contract: this.contractAddress,\n msg: toUtf8(JSON.stringify({\n update_start_time: {}\n })),\n funds: funds_\n })\n };\n };\n updateEndTime = (funds_?: Coin[]): EncodeObject => {\n return {\n typeUrl: \"/cosmwasm.wasm.v1.MsgExecuteContract\",\n value: MsgExecuteContract.fromPartial({\n sender: this.sender,\n contract: this.contractAddress,\n msg: toUtf8(JSON.stringify({\n update_end_time: {}\n })),\n funds: funds_\n })\n };\n };\n updateAdmins = ({\n admins\n }: {\n admins: string[];\n }, funds_?: Coin[]): EncodeObject => {\n return {\n typeUrl: \"/cosmwasm.wasm.v1.MsgExecuteContract\",\n value: MsgExecuteContract.fromPartial({\n sender: this.sender,\n contract: this.contractAddress,\n msg: toUtf8(JSON.stringify({\n update_admins: {\n admins\n }\n })),\n funds: funds_\n })\n };\n };\n freeze = (funds_?: Coin[]): EncodeObject => {\n return {\n typeUrl: \"/cosmwasm.wasm.v1.MsgExecuteContract\",\n value: MsgExecuteContract.fromPartial({\n sender: this.sender,\n contract: this.contractAddress,\n msg: toUtf8(JSON.stringify({\n freeze: {}\n })),\n funds: funds_\n })\n };\n };\n}"], + "mappings": "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", + "names": ["WhitelistMerkletreeQueryClient", "client", "contractAddress", "__publicField", "member", "proofHashes", "msg", "sender", "WhitelistMerkletreeClient", "fee_", "memo_", "funds_", "admins", "MsgExecuteContract", "toUtf8", "WhitelistMerkletreeMsgComposer", "sender", "contractAddress", "__publicField", "funds_", "MsgExecuteContract", "toUtf8", "admins"] +} diff --git a/nginx.conf b/nginx.conf deleted file mode 100644 index 8e6ef50..0000000 --- a/nginx.conf +++ /dev/null @@ -1,44 +0,0 @@ -# The 'events' block is required for NGINX to function correctly -events { - worker_connections 1024; -} - -http { - include /etc/nginx/mime.types; - default_type application/octet-stream; - - server { - listen 80; - server_name terp.network; - - root /usr/share/nginx/html; - index index.html; - - # Serve main website - location / { - try_files $uri $uri/ /index.html; - } - - # Serve shell installer script at /run - location /run { - default_type text/plain; - try_files /install/terp-installer.sh =404; - } - - # Serve Python installer script at /install - location /install { - default_type text/plain; - try_files /install/terp-installer.py =404; - } - - # Add caching headers for static content - location ~* \.(py|sh)$ { - add_header Cache-Control "public, max-age=3600"; - } - - # Serve public assets (favicons, manifests, etc.) - location /public/ { - try_files $uri =404; - } - } -} diff --git a/package.json b/package.json new file mode 100644 index 0000000..77585f2 --- /dev/null +++ b/package.json @@ -0,0 +1,27 @@ +{ + "name": "terp.network", + "version": "1.0.0", + "type": "module", + "scripts": { + "lint": "eslint lib/ pages/*.html", + "typecheck": "echo 'No TS; use JSDoc if needed'" + }, + "devDependencies": { + "eslint": "^8.57.1", + "html-minifier-terser": "^7.2.0" + }, + "eslintConfig": { + "env": { + "browser": true, + "es2021": true + }, + "extends": "eslint:recommended", + "parserOptions": { + "ecmaVersion": 12, + "sourceType": "module" + }, + "rules": { + "no-unused-vars": "warn" + } + } +} diff --git a/index.html b/pages/index.html similarity index 71% rename from index.html rename to pages/index.html index 8b2418a..d6b0f9f 100644 --- a/index.html +++ b/pages/index.html @@ -3,17 +3,17 @@ - + Terp Network - Respect the Hash - - - - - + + + + + @@ -26,45 +26,30 @@ + @@ -888,8 +1091,24 @@
+ +
+ + + + +
Desktop Installation Only
+
+ The Terp Network installer is designed for Linux and macOS servers or desktop environments. + Mobile devices are not supported for running validator nodes or blockchain infrastructure. +
+
+ Please visit this page from a desktop computer to access installation instructions. +
+
+
- To install the primary software for Terp-Network, copy and paste this script into your terminal: + To install the primary software for Terp-Network, copy and paste this script into your terminal:
macOS & Linux @@ -901,7 +1120,7 @@
+ + @@ -1028,10 +1284,36 @@
+ + + + +
+ + +
+ \ No newline at end of file diff --git a/pages/no-rick.html b/pages/no-rick.html new file mode 100644 index 0000000..bdaafad --- /dev/null +++ b/pages/no-rick.html @@ -0,0 +1,797 @@ + + + + + + + + No Rick | Terp Network — ZK Proof Demo + + + + + + + + + + + + + + + +
+

No Rick

+
Zero-Knowledge Proof Demo
+ +
+
Forbidden word
+
rick
+
+ +
+ + + +
+ +
+
+
Valid proof
+
+1 RANDY
+
Word is not "rick"
+
+
+
+
Invalid proof
+
+1 RICK
+
Word is "rick"
+
+
+
+ +
+ +
+

+ Enter a word and submit a zero-knowledge proof that it is not the forbidden word. + The proof is verified on-chain by the custom halo2 wasmvm. +

+
+ + + + + + + + + + + + +
+ +
Loading WASM...
+
+ + + +
+ + +
+
+ + +
+ + + diff --git a/pages/svg.html b/pages/svg.html new file mode 100644 index 0000000..69f5cb4 --- /dev/null +++ b/pages/svg.html @@ -0,0 +1,3036 @@ + + + + + + + + SVG | Terp Network — Generative On-Chain Art + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+
+ Loading collections... +
+ + + + + + + + +
+ + + + + + + + + + +
+ + + + + + +
+ + +
+
+ + +
+ + + + diff --git a/pages/tabs.html b/pages/tabs.html new file mode 100644 index 0000000..213e73c --- /dev/null +++ b/pages/tabs.html @@ -0,0 +1,866 @@ + + + + + + + + TABS | Terp Network + + + + + + + + + + + + + + + + + + + + + + + + +
+

TABS

+
Terp Account Billboards
+ +
+
+ + +
+ +
+ + + + +
+ + +
+ +
+ + + +
+ + +
+
+ + +
+ + + + diff --git a/pkg/norick_wasm.d.ts b/pkg/norick_wasm.d.ts new file mode 100644 index 0000000..d27bf78 --- /dev/null +++ b/pkg/norick_wasm.d.ts @@ -0,0 +1,64 @@ +/* tslint:disable */ +/* eslint-disable */ + +/** + * Encode circuit instance bytes for the forbidden word. + */ +export function encode_instances(forbidden: string): Uint8Array; + +/** + * Build the JSON ExecuteMsg::Proove for the zk-wasmvm-test contract. + */ +export function encode_proof_msg(cid: bigint, forbidden: string, proof_b64: string): string; + +/** + * Generate a halo2 proof that `secret_word` does not contain `forbidden`. + * + * Returns base64-encoded proof bytes. + */ +export function generate_proof(secret_word: string, forbidden: string): string; + +/** + * Convert a string to its field element hex (debugging). + */ +export function str_to_field_hex(s: string): string; + +export type InitInput = RequestInfo | URL | Response | BufferSource | WebAssembly.Module; + +export interface InitOutput { + readonly memory: WebAssembly.Memory; + readonly encode_instances: (a: number, b: number) => [number, number]; + readonly encode_proof_msg: (a: bigint, b: number, c: number, d: number, e: number) => [number, number]; + readonly generate_proof: (a: number, b: number, c: number, d: number) => [number, number, number, number]; + readonly str_to_field_hex: (a: number, b: number) => [number, number]; + readonly __wbindgen_exn_store: (a: number) => void; + readonly __externref_table_alloc: () => number; + readonly __wbindgen_externrefs: WebAssembly.Table; + readonly __wbindgen_malloc: (a: number, b: number) => number; + readonly __wbindgen_realloc: (a: number, b: number, c: number, d: number) => number; + readonly __wbindgen_free: (a: number, b: number, c: number) => void; + readonly __externref_table_dealloc: (a: number) => void; + readonly __wbindgen_start: () => void; +} + +export type SyncInitInput = BufferSource | WebAssembly.Module; + +/** + * Instantiates the given `module`, which can either be bytes or + * a precompiled `WebAssembly.Module`. + * + * @param {{ module: SyncInitInput }} module - Passing `SyncInitInput` directly is deprecated. + * + * @returns {InitOutput} + */ +export function initSync(module: { module: SyncInitInput } | SyncInitInput): InitOutput; + +/** + * If `module_or_path` is {RequestInfo} or {URL}, makes a request and + * for everything else, calls `WebAssembly.instantiate` directly. + * + * @param {{ module_or_path: InitInput | Promise }} module_or_path - Passing `InitInput` directly is deprecated. + * + * @returns {Promise} + */ +export default function __wbg_init (module_or_path?: { module_or_path: InitInput | Promise } | InitInput | Promise): Promise; diff --git a/pkg/norick_wasm.js b/pkg/norick_wasm.js new file mode 100644 index 0000000..6fa92b8 --- /dev/null +++ b/pkg/norick_wasm.js @@ -0,0 +1,405 @@ +/* @ts-self-types="./norick_wasm.d.ts" */ + +/** + * Encode circuit instance bytes for the forbidden word. + * @param {string} forbidden + * @returns {Uint8Array} + */ +export function encode_instances(forbidden) { + const ptr0 = passStringToWasm0(forbidden, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len0 = WASM_VECTOR_LEN; + const ret = wasm.encode_instances(ptr0, len0); + var v2 = getArrayU8FromWasm0(ret[0], ret[1]).slice(); + wasm.__wbindgen_free(ret[0], ret[1] * 1, 1); + return v2; +} + +/** + * Build the JSON ExecuteMsg::Proove for the zk-wasmvm-test contract. + * @param {bigint} cid + * @param {string} forbidden + * @param {string} proof_b64 + * @returns {string} + */ +export function encode_proof_msg(cid, forbidden, proof_b64) { + let deferred3_0; + let deferred3_1; + try { + const ptr0 = passStringToWasm0(forbidden, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len0 = WASM_VECTOR_LEN; + const ptr1 = passStringToWasm0(proof_b64, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len1 = WASM_VECTOR_LEN; + const ret = wasm.encode_proof_msg(cid, ptr0, len0, ptr1, len1); + deferred3_0 = ret[0]; + deferred3_1 = ret[1]; + return getStringFromWasm0(ret[0], ret[1]); + } finally { + wasm.__wbindgen_free(deferred3_0, deferred3_1, 1); + } +} + +/** + * Generate a halo2 proof that `secret_word` does not contain `forbidden`. + * + * Returns base64-encoded proof bytes. + * @param {string} secret_word + * @param {string} forbidden + * @returns {string} + */ +export function generate_proof(secret_word, forbidden) { + let deferred4_0; + let deferred4_1; + try { + const ptr0 = passStringToWasm0(secret_word, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len0 = WASM_VECTOR_LEN; + const ptr1 = passStringToWasm0(forbidden, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len1 = WASM_VECTOR_LEN; + const ret = wasm.generate_proof(ptr0, len0, ptr1, len1); + var ptr3 = ret[0]; + var len3 = ret[1]; + if (ret[3]) { + ptr3 = 0; len3 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred4_0 = ptr3; + deferred4_1 = len3; + return getStringFromWasm0(ptr3, len3); + } finally { + wasm.__wbindgen_free(deferred4_0, deferred4_1, 1); + } +} + +/** + * Convert a string to its field element hex (debugging). + * @param {string} s + * @returns {string} + */ +export function str_to_field_hex(s) { + let deferred2_0; + let deferred2_1; + try { + const ptr0 = passStringToWasm0(s, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len0 = WASM_VECTOR_LEN; + const ret = wasm.str_to_field_hex(ptr0, len0); + deferred2_0 = ret[0]; + deferred2_1 = ret[1]; + return getStringFromWasm0(ret[0], ret[1]); + } finally { + wasm.__wbindgen_free(deferred2_0, deferred2_1, 1); + } +} + +function __wbg_get_imports() { + const import0 = { + __proto__: null, + __wbg___wbindgen_is_function_2a95406423ea8626: function(arg0) { + const ret = typeof(arg0) === 'function'; + return ret; + }, + __wbg___wbindgen_is_object_59a002e76b059312: function(arg0) { + const val = arg0; + const ret = typeof(val) === 'object' && val !== null; + return ret; + }, + __wbg___wbindgen_is_string_624d5244bb2bc87c: function(arg0) { + const ret = typeof(arg0) === 'string'; + return ret; + }, + __wbg___wbindgen_is_undefined_87a3a837f331fef5: function(arg0) { + const ret = arg0 === undefined; + return ret; + }, + __wbg___wbindgen_throw_5549492daedad139: function(arg0, arg1) { + throw new Error(getStringFromWasm0(arg0, arg1)); + }, + __wbg_call_8f5d7bb070283508: function() { return handleError(function (arg0, arg1, arg2) { + const ret = arg0.call(arg1, arg2); + return ret; + }, arguments); }, + __wbg_crypto_38df2bab126b63dc: function(arg0) { + const ret = arg0.crypto; + return ret; + }, + __wbg_getRandomValues_c44a50d8cfdaebeb: function() { return handleError(function (arg0, arg1) { + arg0.getRandomValues(arg1); + }, arguments); }, + __wbg_length_e6e1633fbea6cfa9: function(arg0) { + const ret = arg0.length; + return ret; + }, + __wbg_msCrypto_bd5a034af96bcba6: function(arg0) { + const ret = arg0.msCrypto; + return ret; + }, + __wbg_new_with_length_0f3108b57e05ed7c: function(arg0) { + const ret = new Uint8Array(arg0 >>> 0); + return ret; + }, + __wbg_node_84ea875411254db1: function(arg0) { + const ret = arg0.node; + return ret; + }, + __wbg_process_44c7a14e11e9f69e: function(arg0) { + const ret = arg0.process; + return ret; + }, + __wbg_prototypesetcall_3875d54d12ef2eec: function(arg0, arg1, arg2) { + Uint8Array.prototype.set.call(getArrayU8FromWasm0(arg0, arg1), arg2); + }, + __wbg_randomFillSync_6c25eac9869eb53c: function() { return handleError(function (arg0, arg1) { + arg0.randomFillSync(arg1); + }, arguments); }, + __wbg_require_b4edbdcf3e2a1ef0: function() { return handleError(function () { + const ret = module.require; + return ret; + }, arguments); }, + __wbg_static_accessor_GLOBAL_8dfb7f5e26ebe523: function() { + const ret = typeof global === 'undefined' ? null : global; + return isLikeNone(ret) ? 0 : addToExternrefTable0(ret); + }, + __wbg_static_accessor_GLOBAL_THIS_941154efc8395cdd: function() { + const ret = typeof globalThis === 'undefined' ? null : globalThis; + return isLikeNone(ret) ? 0 : addToExternrefTable0(ret); + }, + __wbg_static_accessor_SELF_58dac9af822f561f: function() { + const ret = typeof self === 'undefined' ? null : self; + return isLikeNone(ret) ? 0 : addToExternrefTable0(ret); + }, + __wbg_static_accessor_WINDOW_ee64f0b3d8354c0b: function() { + const ret = typeof window === 'undefined' ? null : window; + return isLikeNone(ret) ? 0 : addToExternrefTable0(ret); + }, + __wbg_subarray_035d32bb24a7d55d: function(arg0, arg1, arg2) { + const ret = arg0.subarray(arg1 >>> 0, arg2 >>> 0); + return ret; + }, + __wbg_versions_276b2795b1c6a219: function(arg0) { + const ret = arg0.versions; + return ret; + }, + __wbindgen_cast_0000000000000001: function(arg0, arg1) { + // Cast intrinsic for `Ref(Slice(U8)) -> NamedExternref("Uint8Array")`. + const ret = getArrayU8FromWasm0(arg0, arg1); + return ret; + }, + __wbindgen_cast_0000000000000002: function(arg0, arg1) { + // Cast intrinsic for `Ref(String) -> Externref`. + const ret = getStringFromWasm0(arg0, arg1); + return ret; + }, + __wbindgen_init_externref_table: function() { + const table = wasm.__wbindgen_externrefs; + const offset = table.grow(4); + table.set(0, undefined); + table.set(offset + 0, undefined); + table.set(offset + 1, null); + table.set(offset + 2, true); + table.set(offset + 3, false); + }, + }; + return { + __proto__: null, + "./norick_wasm_bg.js": import0, + }; +} + +function addToExternrefTable0(obj) { + const idx = wasm.__externref_table_alloc(); + wasm.__wbindgen_externrefs.set(idx, obj); + return idx; +} + +function getArrayU8FromWasm0(ptr, len) { + ptr = ptr >>> 0; + return getUint8ArrayMemory0().subarray(ptr / 1, ptr / 1 + len); +} + +function getStringFromWasm0(ptr, len) { + ptr = ptr >>> 0; + return decodeText(ptr, len); +} + +let cachedUint8ArrayMemory0 = null; +function getUint8ArrayMemory0() { + if (cachedUint8ArrayMemory0 === null || cachedUint8ArrayMemory0.byteLength === 0) { + cachedUint8ArrayMemory0 = new Uint8Array(wasm.memory.buffer); + } + return cachedUint8ArrayMemory0; +} + +function handleError(f, args) { + try { + return f.apply(this, args); + } catch (e) { + const idx = addToExternrefTable0(e); + wasm.__wbindgen_exn_store(idx); + } +} + +function isLikeNone(x) { + return x === undefined || x === null; +} + +function passStringToWasm0(arg, malloc, realloc) { + if (realloc === undefined) { + const buf = cachedTextEncoder.encode(arg); + const ptr = malloc(buf.length, 1) >>> 0; + getUint8ArrayMemory0().subarray(ptr, ptr + buf.length).set(buf); + WASM_VECTOR_LEN = buf.length; + return ptr; + } + + let len = arg.length; + let ptr = malloc(len, 1) >>> 0; + + const mem = getUint8ArrayMemory0(); + + let offset = 0; + + for (; offset < len; offset++) { + const code = arg.charCodeAt(offset); + if (code > 0x7F) break; + mem[ptr + offset] = code; + } + if (offset !== len) { + if (offset !== 0) { + arg = arg.slice(offset); + } + ptr = realloc(ptr, len, len = offset + arg.length * 3, 1) >>> 0; + const view = getUint8ArrayMemory0().subarray(ptr + offset, ptr + len); + const ret = cachedTextEncoder.encodeInto(arg, view); + + offset += ret.written; + ptr = realloc(ptr, len, offset, 1) >>> 0; + } + + WASM_VECTOR_LEN = offset; + return ptr; +} + +function takeFromExternrefTable0(idx) { + const value = wasm.__wbindgen_externrefs.get(idx); + wasm.__externref_table_dealloc(idx); + return value; +} + +let cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true }); +cachedTextDecoder.decode(); +const MAX_SAFARI_DECODE_BYTES = 2146435072; +let numBytesDecoded = 0; +function decodeText(ptr, len) { + numBytesDecoded += len; + if (numBytesDecoded >= MAX_SAFARI_DECODE_BYTES) { + cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true }); + cachedTextDecoder.decode(); + numBytesDecoded = len; + } + return cachedTextDecoder.decode(getUint8ArrayMemory0().subarray(ptr, ptr + len)); +} + +const cachedTextEncoder = new TextEncoder(); + +if (!('encodeInto' in cachedTextEncoder)) { + cachedTextEncoder.encodeInto = function (arg, view) { + const buf = cachedTextEncoder.encode(arg); + view.set(buf); + return { + read: arg.length, + written: buf.length + }; + }; +} + +let WASM_VECTOR_LEN = 0; + +let wasmModule, wasm; +function __wbg_finalize_init(instance, module) { + wasm = instance.exports; + wasmModule = module; + cachedUint8ArrayMemory0 = null; + wasm.__wbindgen_start(); + return wasm; +} + +async function __wbg_load(module, imports) { + if (typeof Response === 'function' && module instanceof Response) { + if (typeof WebAssembly.instantiateStreaming === 'function') { + try { + return await WebAssembly.instantiateStreaming(module, imports); + } catch (e) { + const validResponse = module.ok && expectedResponseType(module.type); + + if (validResponse && module.headers.get('Content-Type') !== 'application/wasm') { + console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve Wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\n", e); + + } else { throw e; } + } + } + + const bytes = await module.arrayBuffer(); + return await WebAssembly.instantiate(bytes, imports); + } else { + const instance = await WebAssembly.instantiate(module, imports); + + if (instance instanceof WebAssembly.Instance) { + return { instance, module }; + } else { + return instance; + } + } + + function expectedResponseType(type) { + switch (type) { + case 'basic': case 'cors': case 'default': return true; + } + return false; + } +} + +function initSync(module) { + if (wasm !== undefined) return wasm; + + + if (module !== undefined) { + if (Object.getPrototypeOf(module) === Object.prototype) { + ({module} = module) + } else { + console.warn('using deprecated parameters for `initSync()`; pass a single object instead') + } + } + + const imports = __wbg_get_imports(); + if (!(module instanceof WebAssembly.Module)) { + module = new WebAssembly.Module(module); + } + const instance = new WebAssembly.Instance(module, imports); + return __wbg_finalize_init(instance, module); +} + +async function __wbg_init(module_or_path) { + if (wasm !== undefined) return wasm; + + + if (module_or_path !== undefined) { + if (Object.getPrototypeOf(module_or_path) === Object.prototype) { + ({module_or_path} = module_or_path) + } else { + console.warn('using deprecated parameters for the initialization function; pass a single object instead') + } + } + + if (module_or_path === undefined) { + module_or_path = new URL('norick_wasm_bg.wasm', import.meta.url); + } + const imports = __wbg_get_imports(); + + if (typeof module_or_path === 'string' || (typeof Request === 'function' && module_or_path instanceof Request) || (typeof URL === 'function' && module_or_path instanceof URL)) { + module_or_path = fetch(module_or_path); + } + + const { instance, module } = await __wbg_load(await module_or_path, imports); + + return __wbg_finalize_init(instance, module); +} + +export { initSync, __wbg_init as default }; diff --git a/pkg/norick_wasm_bg.wasm b/pkg/norick_wasm_bg.wasm new file mode 100644 index 0000000..2085cde Binary files /dev/null and b/pkg/norick_wasm_bg.wasm differ diff --git a/pkg/norick_wasm_bg.wasm.d.ts b/pkg/norick_wasm_bg.wasm.d.ts new file mode 100644 index 0000000..eacce17 --- /dev/null +++ b/pkg/norick_wasm_bg.wasm.d.ts @@ -0,0 +1,15 @@ +/* tslint:disable */ +/* eslint-disable */ +export const memory: WebAssembly.Memory; +export const encode_instances: (a: number, b: number) => [number, number]; +export const encode_proof_msg: (a: bigint, b: number, c: number, d: number, e: number) => [number, number]; +export const generate_proof: (a: number, b: number, c: number, d: number) => [number, number, number, number]; +export const str_to_field_hex: (a: number, b: number) => [number, number]; +export const __wbindgen_exn_store: (a: number) => void; +export const __externref_table_alloc: () => number; +export const __wbindgen_externrefs: WebAssembly.Table; +export const __wbindgen_malloc: (a: number, b: number) => number; +export const __wbindgen_realloc: (a: number, b: number, c: number, d: number) => number; +export const __wbindgen_free: (a: number, b: number, c: number) => void; +export const __externref_table_dealloc: (a: number) => void; +export const __wbindgen_start: () => void; diff --git a/public/config.json b/public/config.json new file mode 100644 index 0000000..32e6774 --- /dev/null +++ b/public/config.json @@ -0,0 +1,133 @@ +{ + "chains": { + "120u-1": { + "bech32Prefix": "terp", + "chainId": "120u-1", + "chainName": "Local Terp", + "configAccount": "terp-official", + "contracts": { + "accountMinter": "terp14ejqjyq8um4p3xfqj74yld5waqljf88fz25yxnma0cngspxe3les6vkktx", + "cw721Svg": "terp1sgnlczhpdhn7sv9dts4tcuy3tpu8srckrn5gpjnu7x96pw383z6spdylc3", + "cwInfusionMinter": "", + "cwSvgMinter": "terp1wug8sewp6cedgkmrmvhl3lf3tulagm9hnvy8p0rppz9yjw0g4wtqw39a47", + "daoCalendar": "", + "headstash": "", + "headstashManifold": "", + "shitstrapFactory": "terp16jzpxp0e8550c9aht6q9svcux30vtyyyyxv5w2l2djjra46580wsgp89hp", + "terp721Account": "terp1sfgdede70w7t0xj0qvm65p6pcmk9fh2qywf04rd228fhrrs77tps7xjkm2", + "zkWasmvmTest": "" + }, + "defaultApps": [ + { + "disabled": false, + "id": "tabs", + "title": "Names", + "url": "/tabs.html" + }, + { + "disabled": false, + "id": "tabs", + "title": "No Rick", + "url": "/no-rick.html" + } + ], + "denom": { + "decimals": 6, + "fee": "uthiol", + "feeDisplay": "THIOL", + "stake": "uterp", + "stakeDisplay": "TERP" + }, + "explorer": "", + "gasPriceStep": { + "average": 0.025, + "high": 0.04, + "low": 0.01 + }, + "grpc": "http://localhost:55007", + "rest": "http://localhost:55006", + "rpc": "http://localhost:3000/rpc", + "services": { + "headstashServer": "", + "indexer": "", + "merkleServer": "" + } + }, + "morocco-1": { + "bech32Prefix": "terp", + "chainId": "morocco-1", + "chainName": "Terp Network", + "configAccount": "terp-official", + "contracts": { + "accountMinter": "", + "cw721Svg": "", + "cwInfusionMinter": "", + "cwSvgMinter": "", + "daoCalendar": "", + "headstash": "", + "headstashManifold": "", + "shitstrapFactory": "", + "terp721Account": "", + "zkWasmvmTest": "" + }, + "defaultApps": [ + { + "id": "svg", + "title": "SVG NFTs", + "url": "/svg.html" + }, + { + "id": "no-rick", + "title": "No Rick", + "url": "/no-rick.html" + }, + { + "disabled": true, + "id": "tabs", + "title": "Terp Account Billboards", + "url": "/tabs.html" + } + ], + "denom": { + "decimals": 6, + "fee": "uthiol", + "feeDisplay": "THIOL", + "stake": "uterp", + "stakeDisplay": "TERP" + }, + "explorer": "https://ping.pub/terp", + "gasPriceStep": { + "average": 0.025, + "high": 0.04, + "low": 0.01 + }, + "grpc": "https://grpc.terp.network", + "rest": "https://api.terp.network", + "rpc": "https://rpc.terp.network", + "services": { + "headstashServer": "", + "indexer": "", + "merkleServer": "" + } + } + }, + "checksums": { + "bundles": { + "lib/account-minter.js": "8b9147543b2970dfa4e2bc0d679188119f7a2c4b586f0c55691ebfd8a9835df9", + "lib/cw-infuser-factory.js": "6be6eb065c48129aeb75c5e86138e67993e2f6b301efd7a2aba23d98c7240f7a", + "lib/cw-infuser.js": "9893655977c1b8155e7e6cef9d77e731dd08fe63f1d4572982efaa9b5f5393e9", + "lib/cw-shitstrap-factory.js": "415aabd65826e047ac5d89ecf8fa9b8c20249e85e57e6a068dbad5c77cb256de", + "lib/cw-shitstrap.js": "b375c9f8970fea6180b2e2d97ae0647cda83da26ff89c024b83c1628914ca616", + "lib/cw-svg-minter.js": "d5fd8bb9c685cf927efdbc2f3bab548472a18577738b1412423c670524a8b1dc", + "lib/cw721-svg.js": "2d83752b4763beacee3408aa8fd500bb8430cab4fe64acae9bdf61ef08d041ca", + "lib/oline.js": "13e3a495b202eab3c04db323be21281060906a486622b6cf780776d2f2342c32", + "lib/terp721-account.js": "3493d45a99c1ff1ce99bc4b9bcab52e4a54ea734b55f5f504e5dcbe69b6e8790", + "lib/whitelist-merkletree.js": "d78a1780b424b847840373be308477e94184c2caa1a11388c0a26b49d21fc036" + }, + "installers": { + "get/terp-installer.py": "6fc64444ce65e63a96ade2af4920481e51362f9b5513300300faf1bf48232485", + "get/terp-installer.sh": "8a1d26facf8bda472a6275ad94fe690eae0c25854131b341a509d5aeb3c09cc6" + } + }, + "version": "1.0.0" +} diff --git a/public/favicon/terp-128x128.png b/public/favicon/terp-128x128.png new file mode 100644 index 0000000..db95062 Binary files /dev/null and b/public/favicon/terp-128x128.png differ diff --git a/public/favicon/terp-16x16.png b/public/favicon/terp-16x16.png new file mode 100644 index 0000000..42ee5f3 Binary files /dev/null and b/public/favicon/terp-16x16.png differ diff --git a/public/favicon/terp-32x32.png b/public/favicon/terp-32x32.png new file mode 100644 index 0000000..4c70511 Binary files /dev/null and b/public/favicon/terp-32x32.png differ diff --git a/public/favicon/terp-apple-touch.png b/public/favicon/terp-apple-touch.png new file mode 100644 index 0000000..72bc8e4 Binary files /dev/null and b/public/favicon/terp-apple-touch.png differ diff --git a/public/favicons/p-128x128.png b/public/favicons/p-128x128.png new file mode 100644 index 0000000..f23de57 Binary files /dev/null and b/public/favicons/p-128x128.png differ diff --git a/public/favicons/p-16x16.png b/public/favicons/p-16x16.png new file mode 100644 index 0000000..f23de57 Binary files /dev/null and b/public/favicons/p-16x16.png differ diff --git a/public/favicons/p-32x32.png b/public/favicons/p-32x32.png new file mode 100644 index 0000000..f23de57 Binary files /dev/null and b/public/favicons/p-32x32.png differ diff --git a/public/favicons/p.ico b/public/favicons/p.ico new file mode 100644 index 0000000..f23de57 Binary files /dev/null and b/public/favicons/p.ico differ diff --git a/public/favicons/site.webmanifest b/public/favicons/site.webmanifest new file mode 100644 index 0000000..c4b9e75 --- /dev/null +++ b/public/favicons/site.webmanifest @@ -0,0 +1,26 @@ +{ + "name": "PermissionlessWeb", + "short_name": "Permissionless", + "description": "Building tools that value AND respect users", + "icons": [ + { + "src": "p-16x16.png", + "sizes": "16x16", + "type": "image/png" + }, + { + "src": "p-32x32.png", + "sizes": "32x32", + "type": "image/png" + }, + { + "src": "p-128x128.png", + "sizes": "128x128", + "type": "image/png" + } + ], + "theme_color": "#08090d", + "background_color": "#08090d", + "display": "standalone", + "start_url": "/" +} diff --git a/public/global.css b/public/global.css new file mode 100644 index 0000000..38c68cb --- /dev/null +++ b/public/global.css @@ -0,0 +1,141 @@ +/* ── Reset ────────────────────────────────────────────────────── */ +* { margin: 0; padding: 0; box-sizing: border-box; } +html { overflow-x: hidden; width: 100%; } + +/* ── Embedded mode (shell iframe) ─────────────────────────────── */ +.embedded .main { padding-top: 1rem; } +.embedded #glow-canvas { display: none; } +.embedded .fab-container { display: none !important; } + +/* ── Body ─────────────────────────────────────────────────────── */ +body { + background-color: #000000; + color: #f8f8f2; + font-family: 'Satoshi', sans-serif; + font-weight: 300; + min-height: 100vh; + overflow-x: hidden; + width: 100%; +} + +/* ── Links ────────────────────────────────────────────────────── */ +a { color: #bd93f9; text-decoration: none; transition: opacity 0.2s ease; } +a:hover { opacity: 0.8; } + +/* ── Canvas background ────────────────────────────────────────── */ +#glow-canvas { + position: fixed; top: 0; left: 0; + width: 100%; height: 100%; z-index: 0; + pointer-events: none; +} + +/* ── Wallet button ────────────────────────────────────────────── */ +.btn-wallet { + background: rgba(152, 232, 193, 0.1); + border: 1px solid rgba(152, 232, 193, 0.3); + color: #98e8c1; padding: 0.4rem 0.8rem; + font-family: 'Satoshi', sans-serif; font-size: 0.75rem; + cursor: pointer; border-radius: 4px; + transition: all 0.2s ease; + white-space: nowrap; +} +.btn-wallet:hover { + background: rgba(152, 232, 193, 0.2); + border-color: rgba(152, 232, 193, 0.5); +} +.btn-wallet.connected { + background: rgba(152, 232, 193, 0.15); + border-color: rgba(152, 232, 193, 0.4); +} + +/* ── FAB Navigation ───────────────────────────────────────────── */ +.fab-container { + position: fixed; + bottom: 1.5rem; + right: 1.5rem; + z-index: 9999; + pointer-events: auto; +} + +.fab-btn { + width: 48px; + height: 48px; + border-radius: 50%; + border: none; + background: #98e8c1; + color: #000000; + cursor: pointer; + display: flex; + align-items: center; + justify-content: center; + transition: all 0.3s ease; + box-shadow: 0 4px 20px rgba(152, 232, 193, 0.3); +} +.fab-btn:hover { + background: #b0f0d0; + box-shadow: 0 4px 25px rgba(152, 232, 193, 0.5); + transform: scale(1.08); +} +.fab-btn svg { + transition: transform 0.3s ease; +} +.fab-container.open .fab-btn svg { + transform: rotate(45deg); +} + +.fab-menu { + position: absolute; + bottom: 58px; + right: 0; + display: none; + flex-direction: column; + gap: 2px; + padding: 0.5rem; + background: rgba(10, 10, 15, 0.95); + backdrop-filter: blur(20px); + -webkit-backdrop-filter: blur(20px); + border: 1px solid rgba(152, 232, 193, 0.2); + border-radius: 12px; + min-width: 150px; + box-shadow: 0 8px 40px rgba(0, 0, 0, 0.7); +} +.fab-container.open .fab-menu { + display: flex; +} + +.fab-menu a { + display: block; + padding: 0.5rem 0.75rem; + border-radius: 6px; + color: #d2d3d8; + font-family: 'Satoshi', sans-serif; + font-size: 0.8rem; + font-weight: 400; + text-decoration: none; + transition: all 0.15s ease; +} +.fab-menu a:hover { + background: rgba(152, 232, 193, 0.1); + color: #f8f8f2; + opacity: 1; +} +.fab-menu a.active { + color: #98e8c1; + background: rgba(152, 232, 193, 0.08); +} +.fab-menu .fab-divider { + height: 1px; + background: rgba(152, 232, 193, 0.1); + margin: 0.15rem 0.5rem; +} +.fab-menu .fab-label { + font-size: 0.55rem; + text-transform: uppercase; + letter-spacing: 0.1em; + color: rgba(152, 232, 193, 0.4); + padding: 0.25rem 0.75rem 0.1rem; + font-family: 'Satoshi', sans-serif; +} + +/* ── Hide any legacy header ───────────────────────────────────── */ +.header { display: none !important; } diff --git a/robots.txt b/public/robots.txt similarity index 100% rename from robots.txt rename to public/robots.txt diff --git a/public/site.webmanifest b/public/site.webmanifest new file mode 100644 index 0000000..e198ac6 --- /dev/null +++ b/public/site.webmanifest @@ -0,0 +1,31 @@ +{ + "name": "Terp Network", + "short_name": "Terp", + "description": "A L1 Blockchain dedicated to programmable censorship-resistance", + "icons": [ + { + "src": "favicon/terp-16x16.png", + "sizes": "16x16", + "type": "image/png" + }, + { + "src": "favicon/terp-32x32.png", + "sizes": "32x32", + "type": "image/png" + }, + { + "src": "favicon/terp-128x128.png", + "sizes": "128x128", + "type": "image/png" + }, + { + "src": "favicon/terp-apple-touch.png", + "sizes": "180x180", + "type": "image/png" + } + ], + "theme_color": "#000000", + "background_color": "#000000", + "display": "standalone", + "start_url": "/" +} diff --git a/public/sitemap.xml b/public/sitemap.xml new file mode 100644 index 0000000..b6c9915 --- /dev/null +++ b/public/sitemap.xml @@ -0,0 +1,15 @@ + + + + https://terp.network/ + 2026-02-13 + weekly + 1.0 + + + https://terp.network/brain + 2026-04-20 + weekly + 0.9 + + diff --git a/public/terp-actions.json b/public/terp-actions.json new file mode 100644 index 0000000..e6d4fcb --- /dev/null +++ b/public/terp-actions.json @@ -0,0 +1,210 @@ +{ + "chain": { + "chainId": "morocco-1", + "bech32Prefix": "terp", + "denom": "uthiol", + "denomDisplay": "THIOL", + "stakeDenom": "uterp", + "stakeDisplay": "TERP", + "decimals": 6 + }, + "modules": { + "bank": { + "label": "Bank", + "icon": "B", + "actions": { + "send": { + "label": "Send Tokens", + "description": "Transfer tokens to another address", + "typeUrl": "/cosmos.bank.v1beta1.MsgSend", + "fields": [ + { "key": "toAddress", "label": "Recipient", "type": "address", "required": true, "placeholder": "terp1..." }, + { "key": "amount", "label": "Amount", "type": "coin", "required": true } + ] + } + } + }, + "staking": { + "label": "Staking", + "icon": "S", + "actions": { + "delegate": { + "label": "Delegate", + "description": "Delegate tokens to a validator", + "typeUrl": "/cosmos.staking.v1beta1.MsgDelegate", + "fields": [ + { "key": "validatorAddress", "label": "Validator", "type": "validator-address", "required": true, "placeholder": "terpvaloper1..." }, + { "key": "amount", "label": "Amount", "type": "stake-coin", "required": true } + ] + }, + "undelegate": { + "label": "Undelegate", + "description": "Undelegate tokens from a validator", + "typeUrl": "/cosmos.staking.v1beta1.MsgUndelegate", + "fields": [ + { "key": "validatorAddress", "label": "Validator", "type": "validator-address", "required": true, "placeholder": "terpvaloper1..." }, + { "key": "amount", "label": "Amount", "type": "stake-coin", "required": true } + ] + }, + "redelegate": { + "label": "Redelegate", + "description": "Move delegation from one validator to another", + "typeUrl": "/cosmos.staking.v1beta1.MsgBeginRedelegate", + "fields": [ + { "key": "validatorSrcAddress", "label": "From Validator", "type": "validator-address", "required": true, "placeholder": "terpvaloper1..." }, + { "key": "validatorDstAddress", "label": "To Validator", "type": "validator-address", "required": true, "placeholder": "terpvaloper1..." }, + { "key": "amount", "label": "Amount", "type": "stake-coin", "required": true } + ] + }, + "withdrawRewards": { + "label": "Withdraw Rewards", + "description": "Withdraw staking rewards from a validator", + "typeUrl": "/cosmos.distribution.v1beta1.MsgWithdrawDelegatorReward", + "fields": [ + { "key": "validatorAddress", "label": "Validator", "type": "validator-address", "required": true, "placeholder": "terpvaloper1..." } + ] + } + } + }, + "wasm": { + "label": "WASM", + "icon": "W", + "actions": { + "execute": { + "label": "Execute Contract", + "description": "Execute a message on a CosmWasm contract", + "typeUrl": "/cosmwasm.wasm.v1.MsgExecuteContract", + "fields": [ + { "key": "contract", "label": "Contract Address", "type": "address", "required": true, "placeholder": "terp1..." }, + { "key": "msg", "label": "Message (JSON)", "type": "json", "required": true, "placeholder": "{\"method\":{\"param\":\"value\"}}" }, + { "key": "funds", "label": "Funds", "type": "coins", "required": false } + ] + }, + "instantiate": { + "label": "Instantiate Contract", + "description": "Create a new contract instance from a stored code", + "typeUrl": "/cosmwasm.wasm.v1.MsgInstantiateContract", + "fields": [ + { "key": "codeId", "label": "Code ID", "type": "number", "required": true, "placeholder": "1" }, + { "key": "label", "label": "Label", "type": "text", "required": true, "placeholder": "My Contract" }, + { "key": "msg", "label": "Init Message (JSON)", "type": "json", "required": true, "placeholder": "{}" }, + { "key": "funds", "label": "Funds", "type": "coins", "required": false }, + { "key": "admin", "label": "Admin", "type": "address", "required": false, "placeholder": "terp1... (optional)" } + ] + }, + "migrate": { + "label": "Migrate Contract", + "description": "Migrate a contract to a new code version", + "typeUrl": "/cosmwasm.wasm.v1.MsgMigrateContract", + "fields": [ + { "key": "contract", "label": "Contract Address", "type": "address", "required": true, "placeholder": "terp1..." }, + { "key": "newCodeId", "label": "New Code ID", "type": "number", "required": true, "placeholder": "2" }, + { "key": "msg", "label": "Migrate Message (JSON)", "type": "json", "required": true, "placeholder": "{}" } + ] + }, + "updateAdmin": { + "label": "Update Admin", + "description": "Change the admin of a contract", + "typeUrl": "/cosmwasm.wasm.v1.MsgUpdateAdmin", + "fields": [ + { "key": "contract", "label": "Contract Address", "type": "address", "required": true, "placeholder": "terp1..." }, + { "key": "newAdmin", "label": "New Admin", "type": "address", "required": true, "placeholder": "terp1..." } + ] + } + } + }, + "ibc": { + "label": "IBC", + "icon": "I", + "actions": { + "transfer": { + "label": "IBC Transfer", + "description": "Transfer tokens to another chain via IBC", + "typeUrl": "/ibc.applications.transfer.v1.MsgTransfer", + "fields": [ + { "key": "sourceChannel", "label": "Source Channel", "type": "text", "required": true, "placeholder": "channel-0" }, + { "key": "receiver", "label": "Receiver", "type": "text", "required": true, "placeholder": "cosmos1..." }, + { "key": "token", "label": "Token", "type": "coin", "required": true }, + { "key": "timeoutMinutes", "label": "Timeout (minutes)", "type": "number", "required": false, "placeholder": "10" } + ] + } + } + }, + "gov": { + "label": "Gov", + "icon": "G", + "actions": { + "vote": { + "label": "Vote on Proposal", + "description": "Cast a vote on a governance proposal", + "typeUrl": "/cosmos.gov.v1beta1.MsgVote", + "fields": [ + { "key": "proposalId", "label": "Proposal ID", "type": "number", "required": true, "placeholder": "1" }, + { "key": "option", "label": "Vote Option", "type": "enum", "required": true, "options": [ + { "value": "1", "label": "Yes" }, + { "value": "2", "label": "Abstain" }, + { "value": "3", "label": "No" }, + { "value": "4", "label": "No With Veto" } + ]} + ] + } + } + }, + "feegrant": { + "label": "FeeGrant", + "icon": "F", + "actions": { + "grant": { + "label": "Grant Fee Allowance", + "description": "Grant fee spending allowance to another address", + "typeUrl": "/cosmos.feegrant.v1beta1.MsgGrantAllowance", + "fields": [ + { "key": "grantee", "label": "Grantee", "type": "address", "required": true, "placeholder": "terp1..." }, + { "key": "spendLimit", "label": "Spend Limit", "type": "coin", "required": false }, + { "key": "expiration", "label": "Expiration (ISO date)", "type": "text", "required": false, "placeholder": "2025-12-31T23:59:59Z" } + ] + }, + "revoke": { + "label": "Revoke Fee Allowance", + "description": "Revoke a fee spending allowance", + "typeUrl": "/cosmos.feegrant.v1beta1.MsgRevokeAllowance", + "fields": [ + { "key": "grantee", "label": "Grantee", "type": "address", "required": true, "placeholder": "terp1..." } + ] + } + } + }, + "tokenfactory": { + "label": "TokenFactory", + "icon": "T", + "actions": { + "createDenom": { + "label": "Create Denom", + "description": "Create a new token denomination", + "typeUrl": "/osmosis.tokenfactory.v1beta1.MsgCreateDenom", + "fields": [ + { "key": "subdenom", "label": "Subdenom", "type": "text", "required": true, "placeholder": "mytoken" } + ] + }, + "mint": { + "label": "Mint Tokens", + "description": "Mint tokens of a factory denomination", + "typeUrl": "/osmosis.tokenfactory.v1beta1.MsgMint", + "fields": [ + { "key": "amount", "label": "Amount", "type": "coin-factory", "required": true }, + { "key": "mintToAddress", "label": "Mint To", "type": "address", "required": false, "placeholder": "terp1... (defaults to sender)" } + ] + }, + "burn": { + "label": "Burn Tokens", + "description": "Burn tokens of a factory denomination", + "typeUrl": "/osmosis.tokenfactory.v1beta1.MsgBurn", + "fields": [ + { "key": "amount", "label": "Amount", "type": "coin-factory", "required": true }, + { "key": "burnFromAddress", "label": "Burn From", "type": "address", "required": false, "placeholder": "terp1... (defaults to sender)" } + ] + } + } + } + } +} diff --git a/scripts/Cargo.lock b/scripts/Cargo.lock new file mode 100644 index 0000000..40b456f --- /dev/null +++ b/scripts/Cargo.lock @@ -0,0 +1,10809 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "Inflector" +version = "0.11.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe438c63458706e03479442743baae6c88256498e6431708f6dfc520a26515d3" +dependencies = [ + "lazy_static", + "regex", +] + +[[package]] +name = "abstract-account" +version = "0.26.1" +dependencies = [ + "abstract-ica", + "abstract-macros", + "abstract-sdk", + "abstract-std", + "cosmwasm-schema 3.0.3-dev", + "cosmwasm-std 3.0.3-dev", + "cw-controllers", + "cw-storage-plus", + "cw2", + "semver 1.0.28", + "thiserror 1.0.69", +] + +[[package]] +name = "abstract-ans-host" +version = "0.26.1" +dependencies = [ + "abstract-macros", + "abstract-sdk", + "abstract-std", + "cosmwasm-std 3.0.3-dev", + "cw-asset", + "cw-ownable", + "cw-storage-plus", + "cw2", + "semver 1.0.28", + "thiserror 1.0.69", +] + +[[package]] +name = "abstract-cw-multi-test" +version = "3.0.0-rc" +dependencies = [ + "bech32", + "cosmwasm-schema 3.0.3-dev", + "cosmwasm-std 3.0.3-dev", + "cw-storage-plus", + "cw-utils", + "cw20-ics20", + "hex", + "itertools 0.14.0", + "log", + "prost", + "schemars 0.8.22", + "serde", + "serde_json", + "sha2 0.10.9", + "thiserror 1.0.69", + "tiny-keccak", +] + +[[package]] +name = "abstract-ibc-client" +version = "0.26.1" +dependencies = [ + "abstract-macros", + "abstract-sdk", + "abstract-std", + "anybuf", + "cosmwasm-std 3.0.3-dev", + "cw-ownable", + "cw-paginate", + "cw-storage-plus", + "cw-utils", + "cw2", + "semver 1.0.28", + "thiserror 1.0.69", +] + +[[package]] +name = "abstract-ibc-host" +version = "0.26.1" +dependencies = [ + "abstract-macros", + "abstract-sdk", + "abstract-std", + "cosmwasm-schema 3.0.3-dev", + "cosmwasm-std 3.0.3-dev", + "cw-orch", + "cw-ownable", + "cw-paginate", + "cw-storage-plus", + "cw-utils", + "cw2", + "semver 1.0.28", + "thiserror 1.0.69", +] + +[[package]] +name = "abstract-ica" +version = "0.26.1" +dependencies = [ + "abstract-sdk", + "cosmwasm-schema 3.0.3-dev", + "cosmwasm-std 3.0.3-dev", + "cw-orch", + "cw-ownable", + "map-macro", + "polytone-evm", +] + +[[package]] +name = "abstract-interface" +version = "0.26.1" +dependencies = [ + "abstract-account", + "abstract-ans-host", + "abstract-ibc-client", + "abstract-ibc-host", + "abstract-module-factory", + "abstract-registry", + "abstract-std", + "anyhow", + "bip32", + "cosmrs", + "cosmwasm-schema 3.0.3-dev", + "cosmwasm-std 3.0.3-dev", + "cw-address-like", + "cw-asset", + "cw-blob", + "cw-controllers", + "cw-orch", + "cw-storage-plus", + "cw2", + "cw20", + "log", + "rust-embed", + "schemars 0.8.22", + "semver 1.0.28", + "serde", + "serde_json", + "thiserror 1.0.69", +] + +[[package]] +name = "abstract-macros" +version = "0.26.1" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "abstract-module-factory" +version = "0.26.1" +dependencies = [ + "abstract-macros", + "abstract-sdk", + "abstract-std", + "cosmwasm-schema 3.0.3-dev", + "cosmwasm-std 3.0.3-dev", + "cw-ownable", + "cw2", + "semver 1.0.28", + "serde-cw-value", + "thiserror 1.0.69", +] + +[[package]] +name = "abstract-registry" +version = "0.26.1" +dependencies = [ + "abstract-macros", + "abstract-sdk", + "abstract-std", + "cosmwasm-schema 3.0.3-dev", + "cosmwasm-std 3.0.3-dev", + "cw-ownable", + "cw-storage-plus", + "cw2", + "semver 1.0.28", + "thiserror 1.0.69", +] + +[[package]] +name = "abstract-sdk" +version = "0.26.1" +dependencies = [ + "abstract-macros", + "abstract-std", + "cosmwasm-std 3.0.3-dev", + "cw-asset", + "cw-clearable", + "cw-storage-plus", + "cw2", + "cw20", + "schemars 0.8.22", + "serde", + "serde-cw-value", + "thiserror 1.0.69", +] + +[[package]] +name = "abstract-std" +version = "0.26.1" +dependencies = [ + "cosmwasm-schema 3.0.3-dev", + "cosmwasm-std 3.0.3-dev", + "cw-address-like", + "cw-asset", + "cw-blob", + "cw-clearable", + "cw-controllers", + "cw-orch", + "cw-ownable", + "cw-storage-plus", + "cw-utils", + "cw2", + "function_name", + "schemars 0.8.22", + "semver 1.0.28", + "serde", + "sha2 0.10.9", + "thiserror 1.0.69", +] + +[[package]] +name = "addr2line" +version = "0.25.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b5d307320b3181d6d7954e663bd7c774a838b8220fe0593c86d9fb09f498b4b" +dependencies = [ + "gimli 0.32.3", +] + +[[package]] +name = "adler2" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa" + +[[package]] +name = "aead" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d122413f284cf2d62fb1b7db97e02edb8cda96d769b16e443a4f6195e35662b0" +dependencies = [ + "crypto-common", + "generic-array", +] + +[[package]] +name = "aes" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0" +dependencies = [ + "cfg-if", + "cipher", + "cpufeatures 0.2.17", +] + +[[package]] +name = "ahash" +version = "0.8.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a15f179cd60c4584b8a8c596927aadc462e27f2ca70c04e0071964a73ba7a75" +dependencies = [ + "cfg-if", + "once_cell", + "version_check", + "zerocopy", +] + +[[package]] +name = "aho-corasick" +version = "1.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ddd31a130427c27518df266943a5308ed92d4b226cc639f5a8f1002816174301" +dependencies = [ + "memchr", +] + +[[package]] +name = "allocator-api2" +version = "0.2.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923" + +[[package]] +name = "alloy" +version = "1.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50ab0cd8afe573d1f7dc2353698a51b1f93aec362c8211e28cfd3948c6adba39" +dependencies = [ + "alloy-consensus", + "alloy-contract", + "alloy-core", + "alloy-eips", + "alloy-genesis", + "alloy-network", + "alloy-provider", + "alloy-rpc-client", + "alloy-rpc-types", + "alloy-serde", + "alloy-signer", + "alloy-signer-local", + "alloy-transport", + "alloy-transport-http", + "alloy-trie", +] + +[[package]] +name = "alloy-chains" +version = "0.2.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4e9e31d834fe25fe991b8884e4b9f0e59db4a97d86e05d1464d6899c013cd62" +dependencies = [ + "alloy-primitives 1.5.7", + "num_enum", + "strum 0.27.2", +] + +[[package]] +name = "alloy-consensus" +version = "1.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f16daaf7e1f95f62c6c3bf8a3fc3d78b08ae9777810c0bb5e94966c7cd57ef0" +dependencies = [ + "alloy-eips", + "alloy-primitives 1.5.7", + "alloy-rlp", + "alloy-serde", + "alloy-trie", + "alloy-tx-macros", + "auto_impl", + "borsh", + "c-kzg", + "derive_more 2.1.1", + "either", + "k256", + "once_cell", + "rand 0.8.5", + "secp256k1 0.30.0", + "serde", + "serde_json", + "serde_with", + "thiserror 2.0.18", +] + +[[package]] +name = "alloy-consensus-any" +version = "1.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "118998d9015332ab1b4720ae1f1e3009491966a0349938a1f43ff45a8a4c6299" +dependencies = [ + "alloy-consensus", + "alloy-eips", + "alloy-primitives 1.5.7", + "alloy-rlp", + "alloy-serde", + "serde", +] + +[[package]] +name = "alloy-contract" +version = "1.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ac9e0c34dc6bce643b182049cdfcca1b8ce7d9c260cbdd561f511873b7e26cd" +dependencies = [ + "alloy-consensus", + "alloy-dyn-abi", + "alloy-json-abi 1.5.7", + "alloy-network", + "alloy-network-primitives", + "alloy-primitives 1.5.7", + "alloy-provider", + "alloy-rpc-types-eth", + "alloy-sol-types", + "alloy-transport", + "futures", + "futures-util", + "serde_json", + "thiserror 2.0.18", + "tracing", +] + +[[package]] +name = "alloy-core" +version = "1.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23e8604b0c092fabc80d075ede181c9b9e596249c70b99253082d7e689836529" +dependencies = [ + "alloy-dyn-abi", + "alloy-json-abi 1.5.7", + "alloy-primitives 1.5.7", + "alloy-rlp", + "alloy-sol-types", +] + +[[package]] +name = "alloy-dyn-abi" +version = "1.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc2db5c583aaef0255aa63a4fe827f826090142528bba48d1bf4119b62780cad" +dependencies = [ + "alloy-json-abi 1.5.7", + "alloy-primitives 1.5.7", + "alloy-sol-type-parser 1.5.7", + "alloy-sol-types", + "itoa", + "serde", + "serde_json", + "winnow 0.7.15", +] + +[[package]] +name = "alloy-eip2124" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "741bdd7499908b3aa0b159bba11e71c8cddd009a2c2eb7a06e825f1ec87900a5" +dependencies = [ + "alloy-primitives 1.5.7", + "alloy-rlp", + "crc", + "serde", + "thiserror 2.0.18", +] + +[[package]] +name = "alloy-eip2930" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9441120fa82df73e8959ae0e4ab8ade03de2aaae61be313fbf5746277847ce25" +dependencies = [ + "alloy-primitives 1.5.7", + "alloy-rlp", + "borsh", + "serde", +] + +[[package]] +name = "alloy-eip7702" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2919c5a56a1007492da313e7a3b6d45ef5edc5d33416fdec63c0d7a2702a0d20" +dependencies = [ + "alloy-primitives 1.5.7", + "alloy-rlp", + "borsh", + "serde", + "thiserror 2.0.18", +] + +[[package]] +name = "alloy-eip7928" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8222b1d88f9a6d03be84b0f5e76bb60cd83991b43ad8ab6477f0e4a7809b98d" +dependencies = [ + "alloy-primitives 1.5.7", + "alloy-rlp", + "borsh", + "serde", +] + +[[package]] +name = "alloy-eips" +version = "1.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6ef28c9fdad22d4eec52d894f5f2673a0895f1e5ef196734568e68c0f6caca8" +dependencies = [ + "alloy-eip2124", + "alloy-eip2930", + "alloy-eip7702", + "alloy-eip7928", + "alloy-primitives 1.5.7", + "alloy-rlp", + "alloy-serde", + "auto_impl", + "borsh", + "c-kzg", + "derive_more 2.1.1", + "either", + "serde", + "serde_with", + "sha2 0.10.9", +] + +[[package]] +name = "alloy-genesis" +version = "1.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbf9480307b09d22876efb67d30cadd9013134c21f3a17ec9f93fd7536d38024" +dependencies = [ + "alloy-eips", + "alloy-primitives 1.5.7", + "alloy-serde", + "alloy-trie", + "borsh", + "serde", + "serde_with", +] + +[[package]] +name = "alloy-json-abi" +version = "0.8.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4584e3641181ff073e9d5bec5b3b8f78f9749d9fb108a1cfbc4399a4a139c72a" +dependencies = [ + "alloy-primitives 0.8.26", + "alloy-sol-type-parser 0.8.26", + "serde", + "serde_json", +] + +[[package]] +name = "alloy-json-abi" +version = "1.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e9dbe713da0c737d9e5e387b0ba790eb98b14dd207fe53eef50e19a5a8ec3dac" +dependencies = [ + "alloy-primitives 1.5.7", + "alloy-sol-type-parser 1.5.7", + "serde", + "serde_json", +] + +[[package]] +name = "alloy-json-rpc" +version = "1.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "422d110f1c40f1f8d0e5562b0b649c35f345fccb7093d9f02729943dcd1eef71" +dependencies = [ + "alloy-primitives 1.5.7", + "alloy-sol-types", + "http 1.4.0", + "serde", + "serde_json", + "thiserror 2.0.18", + "tracing", +] + +[[package]] +name = "alloy-network" +version = "1.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7197a66d94c4de1591cdc16a9bcea5f8cccd0da81b865b49aef97b1b4016e0fa" +dependencies = [ + "alloy-consensus", + "alloy-consensus-any", + "alloy-eips", + "alloy-json-rpc", + "alloy-network-primitives", + "alloy-primitives 1.5.7", + "alloy-rpc-types-any", + "alloy-rpc-types-eth", + "alloy-serde", + "alloy-signer", + "alloy-sol-types", + "async-trait", + "auto_impl", + "derive_more 2.1.1", + "futures-utils-wasm", + "serde", + "serde_json", + "thiserror 2.0.18", +] + +[[package]] +name = "alloy-network-primitives" +version = "1.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eb82711d59a43fdfd79727c99f270b974c784ec4eb5728a0d0d22f26716c87ef" +dependencies = [ + "alloy-consensus", + "alloy-eips", + "alloy-primitives 1.5.7", + "alloy-serde", + "serde", +] + +[[package]] +name = "alloy-primitives" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0628ec0ba5b98b3370bb6be17b12f23bfce8ee4ad83823325a20546d9b03b78" +dependencies = [ + "alloy-rlp", + "bytes", + "cfg-if", + "const-hex", + "derive_more 0.99.20", + "hex-literal", + "itoa", + "ruint", + "tiny-keccak", +] + +[[package]] +name = "alloy-primitives" +version = "0.8.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "777d58b30eb9a4db0e5f59bc30e8c2caef877fee7dc8734cf242a51a60f22e05" +dependencies = [ + "alloy-rlp", + "bytes", + "cfg-if", + "const-hex", + "derive_more 2.1.1", + "foldhash 0.1.5", + "getrandom 0.3.4", + "hashbrown 0.15.5", + "indexmap 2.14.0", + "itoa", + "k256", + "keccak-asm", + "paste", + "proptest", + "rand 0.8.5", + "ruint", + "rustc-hash 2.1.2", + "serde", + "sha3", + "tiny-keccak", +] + +[[package]] +name = "alloy-primitives" +version = "1.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "de3b431b4e72cd8bd0ec7a50b4be18e73dab74de0dba180eef171055e5d5926e" +dependencies = [ + "alloy-rlp", + "bytes", + "cfg-if", + "const-hex", + "derive_more 2.1.1", + "foldhash 0.2.0", + "hashbrown 0.16.1", + "indexmap 2.14.0", + "itoa", + "k256", + "keccak-asm", + "paste", + "proptest", + "rand 0.9.3", + "rapidhash", + "ruint", + "rustc-hash 2.1.2", + "serde", + "sha3", +] + +[[package]] +name = "alloy-provider" +version = "1.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf6b18b929ef1d078b834c3631e9c925177f3b23ddc6fa08a722d13047205876" +dependencies = [ + "alloy-chains", + "alloy-consensus", + "alloy-eips", + "alloy-json-rpc", + "alloy-network", + "alloy-network-primitives", + "alloy-primitives 1.5.7", + "alloy-rpc-client", + "alloy-rpc-types-eth", + "alloy-signer", + "alloy-sol-types", + "alloy-transport", + "alloy-transport-http", + "async-stream", + "async-trait", + "auto_impl", + "dashmap", + "either", + "futures", + "futures-utils-wasm", + "lru", + "parking_lot", + "pin-project", + "reqwest 0.13.2", + "serde", + "serde_json", + "thiserror 2.0.18", + "tokio", + "tracing", + "url", + "wasmtimer", +] + +[[package]] +name = "alloy-rlp" +version = "0.3.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc90b1e703d3c03f4ff7f48e82dd0bc1c8211ab7d079cd836a06fcfeb06651cb" +dependencies = [ + "alloy-rlp-derive", + "arrayvec", + "bytes", +] + +[[package]] +name = "alloy-rlp-derive" +version = "0.3.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f36834a5c0a2fa56e171bf256c34d70fca07d0c0031583edea1c4946b7889c9e" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "alloy-rpc-client" +version = "1.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94fcc9604042ca80bd37aa5e232ea1cd851f337e31e2babbbb345bc0b1c30de3" +dependencies = [ + "alloy-json-rpc", + "alloy-primitives 1.5.7", + "alloy-transport", + "alloy-transport-http", + "futures", + "pin-project", + "reqwest 0.13.2", + "serde", + "serde_json", + "tokio", + "tokio-stream", + "tower", + "tracing", + "url", + "wasmtimer", +] + +[[package]] +name = "alloy-rpc-types" +version = "1.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4faad925d3a669ffc15f43b3deec7fbdf2adeb28a4d6f9cf4bc661698c0f8f4b" +dependencies = [ + "alloy-primitives 1.5.7", + "alloy-rpc-types-eth", + "alloy-serde", + "serde", +] + +[[package]] +name = "alloy-rpc-types-any" +version = "1.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3823026d1ed239a40f12364fac50726c8daf1b6ab8077a97212c5123910429ed" +dependencies = [ + "alloy-consensus-any", + "alloy-rpc-types-eth", + "alloy-serde", +] + +[[package]] +name = "alloy-rpc-types-eth" +version = "1.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59c095f92c4e1ff4981d89e9aa02d5f98c762a1980ab66bec49c44be11349da2" +dependencies = [ + "alloy-consensus", + "alloy-consensus-any", + "alloy-eips", + "alloy-network-primitives", + "alloy-primitives 1.5.7", + "alloy-rlp", + "alloy-serde", + "alloy-sol-types", + "itertools 0.14.0", + "serde", + "serde_json", + "serde_with", + "thiserror 2.0.18", +] + +[[package]] +name = "alloy-serde" +version = "1.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11ece63b89294b8614ab3f483560c08d016930f842bf36da56bf0b764a15c11e" +dependencies = [ + "alloy-primitives 1.5.7", + "serde", + "serde_json", +] + +[[package]] +name = "alloy-signer" +version = "1.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43f447aefab0f1c0649f71edc33f590992d4e122bc35fb9cdbbf67d4421ace85" +dependencies = [ + "alloy-primitives 1.5.7", + "async-trait", + "auto_impl", + "either", + "elliptic-curve", + "k256", + "thiserror 2.0.18", +] + +[[package]] +name = "alloy-signer-local" +version = "1.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f721f4bf2e4812e5505aaf5de16ef3065a8e26b9139ac885862d00b5a55a659a" +dependencies = [ + "alloy-consensus", + "alloy-network", + "alloy-primitives 1.5.7", + "alloy-signer", + "async-trait", + "k256", + "rand 0.8.5", + "thiserror 2.0.18", +] + +[[package]] +name = "alloy-sol-macro" +version = "1.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab81bab693da9bb79f7a95b64b394718259fdd7e41dceeced4cad57cb71c4f6a" +dependencies = [ + "alloy-sol-macro-expander", + "alloy-sol-macro-input", + "proc-macro-error2", + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "alloy-sol-macro-expander" +version = "1.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "489f1620bb7e2483fb5819ed01ab6edc1d2f93939dce35a5695085a1afd1d699" +dependencies = [ + "alloy-json-abi 1.5.7", + "alloy-sol-macro-input", + "const-hex", + "heck", + "indexmap 2.14.0", + "proc-macro-error2", + "proc-macro2", + "quote", + "sha3", + "syn 2.0.117", + "syn-solidity", +] + +[[package]] +name = "alloy-sol-macro-input" +version = "1.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56cef806ad22d4392c5fc83cf8f2089f988eb99c7067b4e0c6f1971fc1cca318" +dependencies = [ + "alloy-json-abi 1.5.7", + "const-hex", + "dunce", + "heck", + "macro-string", + "proc-macro2", + "quote", + "serde_json", + "syn 2.0.117", + "syn-solidity", +] + +[[package]] +name = "alloy-sol-type-parser" +version = "0.8.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c13fc168b97411e04465f03e632f31ef94cad1c7c8951bf799237fd7870d535" +dependencies = [ + "serde", + "winnow 0.7.15", +] + +[[package]] +name = "alloy-sol-type-parser" +version = "1.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a6df77fea9d6a2a75c0ef8d2acbdfd92286cc599983d3175ccdc170d3433d249" +dependencies = [ + "serde", + "winnow 0.7.15", +] + +[[package]] +name = "alloy-sol-types" +version = "1.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64612d29379782a5dde6f4b6570d9c756d734d760c0c94c254d361e678a6591f" +dependencies = [ + "alloy-json-abi 1.5.7", + "alloy-primitives 1.5.7", + "alloy-sol-macro", + "serde", +] + +[[package]] +name = "alloy-transport" +version = "1.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8098f965442a9feb620965ba4b4be5e2b320f4ec5a3fff6bfa9e1ff7ef42bed1" +dependencies = [ + "alloy-json-rpc", + "auto_impl", + "base64 0.22.1", + "derive_more 2.1.1", + "futures", + "futures-utils-wasm", + "parking_lot", + "serde", + "serde_json", + "thiserror 2.0.18", + "tokio", + "tower", + "tracing", + "url", + "wasmtimer", +] + +[[package]] +name = "alloy-transport-http" +version = "1.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8597d36d546e1dab822345ad563243ec3920e199322cb554ce56c8ef1a1e2e7" +dependencies = [ + "alloy-json-rpc", + "alloy-transport", + "itertools 0.14.0", + "reqwest 0.13.2", + "serde_json", + "tower", + "tracing", + "url", +] + +[[package]] +name = "alloy-trie" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f14b5d9b2c2173980202c6ff470d96e7c5e202c65a9f67884ad565226df7fbb" +dependencies = [ + "alloy-primitives 1.5.7", + "alloy-rlp", + "derive_more 2.1.1", + "nybbles", + "serde", + "smallvec", + "thiserror 2.0.18", + "tracing", +] + +[[package]] +name = "alloy-tx-macros" +version = "1.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d69722eddcdf1ce096c3ab66cf8116999363f734eb36fe94a148f4f71c85da84" +dependencies = [ + "darling 0.23.0", + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "android_system_properties" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" +dependencies = [ + "libc", +] + +[[package]] +name = "anstream" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "824a212faf96e9acacdbd09febd34438f8f711fb84e09a8916013cd7815ca28d" +dependencies = [ + "anstyle", + "anstyle-parse", + "anstyle-query", + "anstyle-wincon", + "colorchoice", + "is_terminal_polyfill", + "utf8parse", +] + +[[package]] +name = "anstyle" +version = "1.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "940b3a0ca603d1eade50a4846a2afffd5ef57a9feac2c0e2ec2e14f9ead76000" + +[[package]] +name = "anstyle-parse" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52ce7f38b242319f7cabaa6813055467063ecdc9d355bbb4ce0c68908cd8130e" +dependencies = [ + "utf8parse", +] + +[[package]] +name = "anstyle-query" +version = "1.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "40c48f72fd53cd289104fc64099abca73db4166ad86ea0b4341abe65af83dadc" +dependencies = [ + "windows-sys 0.61.2", +] + +[[package]] +name = "anstyle-wincon" +version = "3.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "291e6a250ff86cd4a820112fb8898808a366d8f9f58ce16d1f538353ad55747d" +dependencies = [ + "anstyle", + "once_cell_polyfill", + "windows-sys 0.61.2", +] + +[[package]] +name = "anybuf" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7658b7ea4a6843aad293ca2d3b0ba4d200b9720b18a5db0cea478dace9a9716" + +[[package]] +name = "anyhow" +version = "1.0.102" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f202df86484c868dbad7eaa557ef785d5c66295e41b460ef922eca0723b842c" + +[[package]] +name = "arbitrary" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3d036a3c4ab069c7b410a2ce876bd74808d2d0888a82667669f8e783a898bf1" +dependencies = [ + "derive_arbitrary", +] + +[[package]] +name = "ark-bls12-381" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c775f0d12169cba7aae4caeb547bb6a50781c7449a8aa53793827c9ec4abf488" +dependencies = [ + "ark-ec 0.4.2", + "ark-ff 0.4.2", + "ark-serialize 0.4.2", + "ark-std 0.4.0", +] + +[[package]] +name = "ark-bls12-381" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3df4dcc01ff89867cd86b0da835f23c3f02738353aaee7dde7495af71363b8d5" +dependencies = [ + "ark-ec 0.5.0", + "ark-ff 0.5.0", + "ark-serialize 0.5.0", + "ark-std 0.5.0", +] + +[[package]] +name = "ark-ec" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "defd9a439d56ac24968cca0571f598a61bc8c55f71d50a89cda591cb750670ba" +dependencies = [ + "ark-ff 0.4.2", + "ark-poly 0.4.2", + "ark-serialize 0.4.2", + "ark-std 0.4.0", + "derivative", + "hashbrown 0.13.2", + "itertools 0.10.5", + "num-traits", + "rayon", + "zeroize", +] + +[[package]] +name = "ark-ec" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43d68f2d516162846c1238e755a7c4d131b892b70cc70c471a8e3ca3ed818fce" +dependencies = [ + "ahash", + "ark-ff 0.5.0", + "ark-poly 0.5.0", + "ark-serialize 0.5.0", + "ark-std 0.5.0", + "educe", + "fnv", + "hashbrown 0.15.5", + "itertools 0.13.0", + "num-bigint", + "num-integer", + "num-traits", + "rayon", + "zeroize", +] + +[[package]] +name = "ark-ff" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b3235cc41ee7a12aaaf2c575a2ad7b46713a8a50bda2fc3b003a04845c05dd6" +dependencies = [ + "ark-ff-asm 0.3.0", + "ark-ff-macros 0.3.0", + "ark-serialize 0.3.0", + "ark-std 0.3.0", + "derivative", + "num-bigint", + "num-traits", + "paste", + "rustc_version 0.3.3", + "zeroize", +] + +[[package]] +name = "ark-ff" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec847af850f44ad29048935519032c33da8aa03340876d351dfab5660d2966ba" +dependencies = [ + "ark-ff-asm 0.4.2", + "ark-ff-macros 0.4.2", + "ark-serialize 0.4.2", + "ark-std 0.4.0", + "derivative", + "digest 0.10.7", + "itertools 0.10.5", + "num-bigint", + "num-traits", + "paste", + "rayon", + "rustc_version 0.4.1", + "zeroize", +] + +[[package]] +name = "ark-ff" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a177aba0ed1e0fbb62aa9f6d0502e9b46dad8c2eab04c14258a1212d2557ea70" +dependencies = [ + "ark-ff-asm 0.5.0", + "ark-ff-macros 0.5.0", + "ark-serialize 0.5.0", + "ark-std 0.5.0", + "arrayvec", + "digest 0.10.7", + "educe", + "itertools 0.13.0", + "num-bigint", + "num-traits", + "paste", + "rayon", + "zeroize", +] + +[[package]] +name = "ark-ff-asm" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db02d390bf6643fb404d3d22d31aee1c4bc4459600aef9113833d17e786c6e44" +dependencies = [ + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ark-ff-asm" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ed4aa4fe255d0bc6d79373f7e31d2ea147bcf486cba1be5ba7ea85abdb92348" +dependencies = [ + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ark-ff-asm" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62945a2f7e6de02a31fe400aa489f0e0f5b2502e69f95f853adb82a96c7a6b60" +dependencies = [ + "quote", + "syn 2.0.117", +] + +[[package]] +name = "ark-ff-macros" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db2fd794a08ccb318058009eefdf15bcaaaaf6f8161eb3345f907222bac38b20" +dependencies = [ + "num-bigint", + "num-traits", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ark-ff-macros" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7abe79b0e4288889c4574159ab790824d0033b9fdcb2a112a3182fac2e514565" +dependencies = [ + "num-bigint", + "num-traits", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ark-ff-macros" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09be120733ee33f7693ceaa202ca41accd5653b779563608f1234f78ae07c4b3" +dependencies = [ + "num-bigint", + "num-traits", + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "ark-poly" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d320bfc44ee185d899ccbadfa8bc31aab923ce1558716e1997a1e74057fe86bf" +dependencies = [ + "ark-ff 0.4.2", + "ark-serialize 0.4.2", + "ark-std 0.4.0", + "derivative", + "hashbrown 0.13.2", +] + +[[package]] +name = "ark-poly" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "579305839da207f02b89cd1679e50e67b4331e2f9294a57693e5051b7703fe27" +dependencies = [ + "ahash", + "ark-ff 0.5.0", + "ark-serialize 0.5.0", + "ark-std 0.5.0", + "educe", + "fnv", + "hashbrown 0.15.5", +] + +[[package]] +name = "ark-serialize" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d6c2b318ee6e10f8c2853e73a83adc0ccb88995aa978d8a3408d492ab2ee671" +dependencies = [ + "ark-std 0.3.0", + "digest 0.9.0", +] + +[[package]] +name = "ark-serialize" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "adb7b85a02b83d2f22f89bd5cac66c9c89474240cb6207cb1efc16d098e822a5" +dependencies = [ + "ark-serialize-derive 0.4.2", + "ark-std 0.4.0", + "digest 0.10.7", + "num-bigint", +] + +[[package]] +name = "ark-serialize" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f4d068aaf107ebcd7dfb52bc748f8030e0fc930ac8e360146ca54c1203088f7" +dependencies = [ + "ark-serialize-derive 0.5.0", + "ark-std 0.5.0", + "arrayvec", + "digest 0.10.7", + "num-bigint", + "rayon", +] + +[[package]] +name = "ark-serialize-derive" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae3281bc6d0fd7e549af32b52511e1302185bd688fd3359fa36423346ff682ea" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ark-serialize-derive" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "213888f660fddcca0d257e88e54ac05bca01885f258ccdf695bafd77031bb69d" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "ark-std" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1df2c09229cbc5a028b1d70e00fdb2acee28b1055dfb5ca73eea49c5a25c4e7c" +dependencies = [ + "colored", + "num-traits", + "rand 0.8.5", +] + +[[package]] +name = "ark-std" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94893f1e0c6eeab764ade8dc4c0db24caf4fe7cbbaafc0eba0a9030f447b5185" +dependencies = [ + "num-traits", + "rand 0.8.5", + "rayon", +] + +[[package]] +name = "ark-std" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "246a225cc6131e9ee4f24619af0f19d67761fff15d7ccc22e42b80846e69449a" +dependencies = [ + "num-traits", + "rand 0.8.5", + "rayon", +] + +[[package]] +name = "arrayref" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76a2e8124351fda1ef8aaaa3bbd7ebbcb486bbcd4225aca0aa0d84bb2db8fecb" + +[[package]] +name = "arrayvec" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" + +[[package]] +name = "ascii-canvas" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8824ecca2e851cec16968d54a01dd372ef8f95b244fb84b84e70128be347c3c6" +dependencies = [ + "term", +] + +[[package]] +name = "async-recursion" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "async-stream" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b5a71a6f37880a80d1d7f19efd781e4b5de42c88f0722cc13bcb6cc2cfe8476" +dependencies = [ + "async-stream-impl", + "futures-core", + "pin-project-lite", +] + +[[package]] +name = "async-stream-impl" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7c24de15d275a1ecfd47a380fb4d5ec9bfe0933f309ed5e705b775596a3574d" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "async-trait" +version = "0.1.89" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "atomic" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a89cbf775b137e9b968e67227ef7f775587cde3fd31b0d8599dbd0f598a48340" +dependencies = [ + "bytemuck", +] + +[[package]] +name = "atomic-waker" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0" + +[[package]] +name = "auto_impl" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ffdcb70bdbc4d478427380519163274ac86e52916e10f0a8889adf0f96d3fee7" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "autocfg" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" + +[[package]] +name = "aws-lc-rs" +version = "1.16.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a054912289d18629dc78375ba2c3726a3afe3ff71b4edba9dedfca0e3446d1fc" +dependencies = [ + "aws-lc-sys", + "zeroize", +] + +[[package]] +name = "aws-lc-sys" +version = "0.39.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "83a25cf98105baa966497416dbd42565ce3a8cf8dbfd59803ec9ad46f3126399" +dependencies = [ + "cc", + "cmake", + "dunce", + "fs_extra", +] + +[[package]] +name = "axum" +version = "0.8.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b52af3cb4058c895d37317bb27508dccc8e5f2d39454016b297bf4a400597b8" +dependencies = [ + "axum-core", + "bytes", + "futures-util", + "http 1.4.0", + "http-body 1.0.1", + "http-body-util", + "itoa", + "matchit", + "memchr", + "mime", + "percent-encoding", + "pin-project-lite", + "serde_core", + "sync_wrapper 1.0.2", + "tower", + "tower-layer", + "tower-service", +] + +[[package]] +name = "axum-core" +version = "0.5.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08c78f31d7b1291f7ee735c1c6780ccde7785daae9a9206026862dab7d8792d1" +dependencies = [ + "bytes", + "futures-core", + "http 1.4.0", + "http-body 1.0.1", + "http-body-util", + "mime", + "pin-project-lite", + "sync_wrapper 1.0.2", + "tower-layer", + "tower-service", +] + +[[package]] +name = "backtrace" +version = "0.3.76" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb531853791a215d7c62a30daf0dde835f381ab5de4589cfe7c649d2cbe92bd6" +dependencies = [ + "addr2line", + "cfg-if", + "libc", + "miniz_oxide", + "object 0.37.3", + "rustc-demangle", + "windows-link", +] + +[[package]] +name = "base16" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d27c3610c36aee21ce8ac510e6224498de4228ad772a171ed65643a24693a5a8" + +[[package]] +name = "base16ct" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf" + +[[package]] +name = "base58ck" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c8d66485a3a2ea485c1913c4572ce0256067a5377ac8c75c4960e1cda98605f" +dependencies = [ + "bitcoin-internals", + "bitcoin_hashes", +] + +[[package]] +name = "base64" +version = "0.21.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" + +[[package]] +name = "base64" +version = "0.22.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" + +[[package]] +name = "base64ct" +version = "1.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2af50177e190e07a26ab74f8b1efbfe2ef87da2116221318cb1c2e82baf7de06" + +[[package]] +name = "bech32" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32637268377fc7b10a8c6d51de3e7fba1ce5dd371a96e342b34e6078db558e7f" + +[[package]] +name = "bindgen" +version = "0.70.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f49d8fed880d473ea71efb9bf597651e77201bdd4893efe54c9e5d65ae04ce6f" +dependencies = [ + "bitflags 2.11.0", + "cexpr", + "clang-sys", + "itertools 0.13.0", + "log", + "prettyplease", + "proc-macro2", + "quote", + "regex", + "rustc-hash 1.1.0", + "shlex", + "syn 2.0.117", +] + +[[package]] +name = "bip32" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db40d3dfbeab4e031d78c844642fa0caa0b0db11ce1607ac9d2986dff1405c69" +dependencies = [ + "bs58", + "hmac", + "k256", + "once_cell", + "pbkdf2 0.12.2", + "rand_core 0.6.4", + "ripemd", + "secp256k1 0.27.0", + "sha2 0.10.9", + "subtle", + "zeroize", +] + +[[package]] +name = "bip39" +version = "2.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90dbd31c98227229239363921e60fcf5e558e43ec69094d46fc4996f08d1d5bc" +dependencies = [ + "bitcoin_hashes", + "rand 0.8.5", + "rand_core 0.6.4", + "serde", + "unicode-normalization", +] + +[[package]] +name = "bit-set" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1" +dependencies = [ + "bit-vec 0.6.3", +] + +[[package]] +name = "bit-set" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08807e080ed7f9d5433fa9b275196cfc35414f66a0c79d864dc51a0d825231a3" +dependencies = [ + "bit-vec 0.8.0", +] + +[[package]] +name = "bit-vec" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb" + +[[package]] +name = "bit-vec" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e764a1d40d510daf35e07be9eb06e75770908c27d411ee6c92109c9840eaaf7" + +[[package]] +name = "bitcoin" +version = "0.32.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e499f9fc0407f50fe98af744ab44fa67d409f76b6772e1689ec8485eb0c0f66" +dependencies = [ + "base58ck", + "bech32", + "bitcoin-internals", + "bitcoin-io", + "bitcoin-units", + "bitcoin_hashes", + "hex-conservative", + "hex_lit", + "secp256k1 0.29.1", +] + +[[package]] +name = "bitcoin-internals" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30bdbe14aa07b06e6cfeffc529a1f099e5fbe249524f8125358604df99a4bed2" + +[[package]] +name = "bitcoin-io" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2dee39a0ee5b4095224a0cfc6bf4cc1baf0f9624b96b367e53b66d974e51d953" + +[[package]] +name = "bitcoin-units" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5285c8bcaa25876d07f37e3d30c303f2609179716e11d688f51e8f1fe70063e2" +dependencies = [ + "bitcoin-internals", +] + +[[package]] +name = "bitcoin_hashes" +version = "0.14.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26ec84b80c482df901772e931a9a681e26a1b9ee2302edeff23cb30328745c8b" +dependencies = [ + "bitcoin-io", + "hex-conservative", +] + +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + +[[package]] +name = "bitflags" +version = "2.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "843867be96c8daad0d758b57df9392b6d8d271134fce549de6ce169ff98a92af" + +[[package]] +name = "bitvec" +version = "0.17.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41262f11d771fd4a61aa3ce019fca363b4b6c282fca9da2a31186d3965a47a5c" +dependencies = [ + "either", + "radium 0.3.0", +] + +[[package]] +name = "bitvec" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bc2832c24239b0141d5674bb9174f9d68a8b5b3f2753311927c172ca46f7e9c" +dependencies = [ + "funty", + "radium 0.7.0", + "tap", + "wyz", +] + +[[package]] +name = "blake2" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "46502ad458c9a52b69d4d4d32775c788b7a1b85e8bc9d482d92250fc0e3f8efe" +dependencies = [ + "digest 0.10.7", +] + +[[package]] +name = "blake2b_simd" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b79834656f71332577234b50bfc009996f7449e0c056884e6a02492ded0ca2f3" +dependencies = [ + "arrayref", + "arrayvec", + "constant_time_eq 0.4.2", +] + +[[package]] +name = "blake3" +version = "1.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4d2d5991425dfd0785aed03aedcf0b321d61975c9b5b3689c774a2610ae0b51e" +dependencies = [ + "arrayref", + "arrayvec", + "cc", + "cfg-if", + "constant_time_eq 0.4.2", + "cpufeatures 0.3.0", +] + +[[package]] +name = "block-buffer" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" +dependencies = [ + "generic-array", +] + +[[package]] +name = "block-buffer" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" +dependencies = [ + "generic-array", +] + +[[package]] +name = "bls12_381" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d7bc6d6292be3a19e6379786dac800f551e5865a5bb51ebbe3064ab80433f403" +dependencies = [ + "ff", + "rand_core 0.6.4", + "subtle", +] + +[[package]] +name = "blst" +version = "0.3.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dcdb4c7013139a150f9fc55d123186dbfaba0d912817466282c73ac49e71fb45" +dependencies = [ + "cc", + "glob", + "threadpool", + "zeroize", +] + +[[package]] +name = "bnum" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e31ea183f6ee62ac8b8a8cf7feddd766317adfb13ff469de57ce033efd6a790" + +[[package]] +name = "bollard" +version = "0.18.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97ccca1260af6a459d75994ad5acc1651bcabcbdbc41467cc9786519ab854c30" +dependencies = [ + "base64 0.22.1", + "bollard-stubs", + "bytes", + "futures-core", + "futures-util", + "hex", + "http 1.4.0", + "http-body-util", + "hyper 1.9.0", + "hyper-named-pipe", + "hyper-util", + "hyperlocal", + "log", + "pin-project-lite", + "serde", + "serde_derive", + "serde_json", + "serde_repr", + "serde_urlencoded", + "thiserror 2.0.18", + "tokio", + "tokio-util", + "tower-service", + "url", + "winapi", +] + +[[package]] +name = "bollard-stubs" +version = "1.47.1-rc.27.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f179cfbddb6e77a5472703d4b30436bff32929c0aa8a9008ecf23d1d3cdd0da" +dependencies = [ + "serde", + "serde_repr", + "serde_with", +] + +[[package]] +name = "borsh" +version = "1.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfd1e3f8955a5d7de9fab72fc8373fade9fb8a703968cb200ae3dc6cf08e185a" +dependencies = [ + "borsh-derive", + "bytes", + "cfg_aliases", +] + +[[package]] +name = "borsh-derive" +version = "1.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfcfdc083699101d5a7965e49925975f2f55060f94f9a05e7187be95d530ca59" +dependencies = [ + "once_cell", + "proc-macro-crate", + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "bs58" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf88ba1141d185c399bee5288d850d63b8369520c1eafc32a0430b5b6c287bf4" +dependencies = [ + "sha2 0.10.9", +] + +[[package]] +name = "bstr" +version = "1.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "63044e1ae8e69f3b5a92c736ca6269b8d12fa7efe39bf34ddb06d102cf0e2cab" +dependencies = [ + "memchr", + "serde", +] + +[[package]] +name = "build_const" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4ae4235e6dac0694637c763029ecea1a2ec9e4e06ec2729bd21ba4d9c863eb7" + +[[package]] +name = "bumpalo" +version = "3.20.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d20789868f4b01b2f2caec9f5c4e0213b41e3e5702a50157d699ae31ced2fcb" + +[[package]] +name = "byte-slice-cast" +version = "1.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7575182f7272186991736b70173b0ea045398f984bf5ebbb3804736ce1330c9d" + +[[package]] +name = "bytecheck" +version = "0.6.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23cdc57ce23ac53c931e88a43d06d070a6fd142f2617be5855eb75efc9beb1c2" +dependencies = [ + "bytecheck_derive 0.6.12", + "ptr_meta 0.1.4", + "simdutf8", +] + +[[package]] +name = "bytecheck" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0caa33a2c0edca0419d15ac723dff03f1956f7978329b1e3b5fdaaaed9d3ca8b" +dependencies = [ + "bytecheck_derive 0.8.2", + "ptr_meta 0.3.1", + "rancor", + "simdutf8", +] + +[[package]] +name = "bytecheck_derive" +version = "0.6.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3db406d29fbcd95542e92559bed4d8ad92636d1ca8b3b72ede10b4bcc010e659" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "bytecheck_derive" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "89385e82b5d1821d2219e0b095efa2cc1f246cbf99080f3be46a1a85c0d392d9" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "bytemuck" +version = "1.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" + +[[package]] +name = "byteorder" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" + +[[package]] +name = "bytes" +version = "1.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e748733b7cbc798e1434b6ac524f0c1ff2ab456fe201501e6497c8417a4fc33" +dependencies = [ + "serde", +] + +[[package]] +name = "bzip2" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bdb116a6ef3f6c3698828873ad02c3014b3c85cadb88496095628e3ef1e347f8" +dependencies = [ + "bzip2-sys", + "libc", +] + +[[package]] +name = "bzip2-sys" +version = "0.1.13+1.0.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "225bff33b2141874fe80d71e07d6eec4f85c5c216453dd96388240f96e1acc14" +dependencies = [ + "cc", + "pkg-config", +] + +[[package]] +name = "c-kzg" +version = "2.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6648ed1e4ea8e8a1a4a2c78e1cda29a3fd500bc622899c340d8525ea9a76b24a" +dependencies = [ + "blst", + "cc", + "glob", + "hex", + "libc", + "once_cell", + "serde", +] + +[[package]] +name = "cbc" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26b52a9543ae338f279b96b0b9fed9c8093744685043739079ce85cd58f289a6" +dependencies = [ + "cipher", +] + +[[package]] +name = "cc" +version = "1.2.60" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43c5703da9466b66a946814e1adf53ea2c90f10063b86290cc9eb67ce3478a20" +dependencies = [ + "find-msvc-tools", + "jobserver", + "libc", + "shlex", +] + +[[package]] +name = "cesu8" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d43a04d8753f35258c91f8ec639f792891f748a1edbd759cf1dcea3382ad83c" + +[[package]] +name = "cexpr" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766" +dependencies = [ + "nom", +] + +[[package]] +name = "cfg-if" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" + +[[package]] +name = "cfg_aliases" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" + +[[package]] +name = "chacha20" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3613f74bd2eac03dad61bd53dbe620703d4371614fe0bc3b9f04dd36fe4e818" +dependencies = [ + "cfg-if", + "cipher", + "cpufeatures 0.2.17", +] + +[[package]] +name = "chacha20poly1305" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "10cd79432192d1c0f4e1a0fef9527696cc039165d729fb41b3f4f4f354c2dc35" +dependencies = [ + "aead", + "chacha20", + "cipher", + "poly1305", + "zeroize", +] + +[[package]] +name = "chrono" +version = "0.4.44" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c673075a2e0e5f4a1dde27ce9dee1ea4558c7ffe648f576438a20ca1d2acc4b0" +dependencies = [ + "iana-time-zone", + "js-sys", + "num-traits", + "serde", + "wasm-bindgen", + "windows-link", +] + +[[package]] +name = "cipher" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad" +dependencies = [ + "crypto-common", + "inout", + "zeroize", +] + +[[package]] +name = "clang-sys" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b023947811758c97c59bf9d1c188fd619ad4718dcaa767947df1cadb14f39f4" +dependencies = [ + "glob", + "libc", + "libloading", +] + +[[package]] +name = "clap" +version = "4.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b193af5b67834b676abd72466a96c1024e6a6ad978a1f484bd90b85c94041351" +dependencies = [ + "clap_builder", + "clap_derive", +] + +[[package]] +name = "clap_builder" +version = "4.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "714a53001bf66416adb0e2ef5ac857140e7dc3a0c48fb28b2f10762fc4b5069f" +dependencies = [ + "anstream", + "anstyle", + "clap_lex", + "strsim", +] + +[[package]] +name = "clap_derive" +version = "4.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1110bd8a634a1ab8cb04345d8d878267d57c3cf1b38d91b71af6686408bbca6a" +dependencies = [ + "heck", + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "clap_lex" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8d4a3bb8b1e0c1050499d1815f5ab16d04f0959b233085fb31653fbfc9d98f9" + +[[package]] +name = "cmake" +version = "0.1.58" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0f78a02292a74a88ac736019ab962ece0bc380e3f977bf72e376c5d78ff0678" +dependencies = [ + "cc", +] + +[[package]] +name = "colorchoice" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d07550c9036bf2ae0c684c4297d503f838287c83c53686d05370d0e139ae570" + +[[package]] +name = "colored" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "117725a109d387c937a1533ce01b450cbde6b88abceea8473c4d7a85853cda3c" +dependencies = [ + "lazy_static", + "windows-sys 0.59.0", +] + +[[package]] +name = "combine" +version = "4.6.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba5a308b75df32fe02788e748662718f03fde005016435c444eea572398219fd" +dependencies = [ + "bytes", + "memchr", +] + +[[package]] +name = "const-hex" +version = "1.18.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "531185e432bb31db1ecda541e9e7ab21468d4d844ad7505e0546a49b4945d49b" +dependencies = [ + "cfg-if", + "cpufeatures 0.2.17", + "proptest", + "serde_core", +] + +[[package]] +name = "const-oid" +version = "0.9.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" + +[[package]] +name = "const_format" +version = "0.2.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7faa7469a93a566e9ccc1c73fe783b4a65c274c5ace346038dca9c39fe0030ad" +dependencies = [ + "const_format_proc_macros", +] + +[[package]] +name = "const_format_proc_macros" +version = "0.2.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d57c2eccfb16dbac1f4e61e206105db5820c9d26c3c472bc17c774259ef7744" +dependencies = [ + "proc-macro2", + "quote", + "unicode-xid", +] + +[[package]] +name = "constant_time_eq" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc" + +[[package]] +name = "constant_time_eq" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d52eff69cd5e647efe296129160853a42795992097e8af39800e1060caeea9b" + +[[package]] +name = "convert_case" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" + +[[package]] +name = "convert_case" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec182b0ca2f35d8fc196cf3404988fd8b8c739a4d270ff118a398feb0cbec1ca" +dependencies = [ + "unicode-segmentation", +] + +[[package]] +name = "convert_case" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "633458d4ef8c78b72454de2d54fd6ab2e60f9e02be22f3c6104cdc8a4e0fceb9" +dependencies = [ + "unicode-segmentation", +] + +[[package]] +name = "core-foundation" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "core-foundation" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2a6cd9ae233e7f62ba4e9353e81a88df7fc8a5987b8d445b4d90c879bd156f6" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "core-foundation-sys" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" + +[[package]] +name = "core2" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "239fa3ae9b63c2dc74bd3fa852d4792b8b305ae64eeede946265b6af62f1fff3" +dependencies = [ + "memchr", +] + +[[package]] +name = "corosensei" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d1ea1c2a2f898d2a6ff149587b8a04f41ee708d248c723f01ac2f0f01edc0b3" +dependencies = [ + "autocfg", + "cfg-if", + "libc", + "scopeguard", + "windows-sys 0.59.0", +] + +[[package]] +name = "cosmos-sdk-proto" +version = "0.28.0" +dependencies = [ + "bytes", + "http-body-util", + "prost", + "tendermint-proto", + "tonic", + "tonic-prost", +] + +[[package]] +name = "cosmrs" +version = "0.23.0" +dependencies = [ + "bip32", + "cosmos-sdk-proto", + "ecdsa", + "eyre", + "k256", + "rand_core 0.6.4", + "serde", + "serde_json", + "signature", + "subtle-encoding", + "tendermint", + "tendermint-rpc", + "thiserror 1.0.69", + "tokio", +] + +[[package]] +name = "cosmwasm-core" +version = "2.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f96ba2dd3c228d9e04a901307502096f56e5a547980a30656118503773a25c7c" + +[[package]] +name = "cosmwasm-core" +version = "3.0.3-dev" + +[[package]] +name = "cosmwasm-crypto" +version = "2.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc2040bedb37918da4701f83dd8635749d99d7baa6c0129f290f503dcde90e5c" +dependencies = [ + "ark-bls12-381 0.4.0", + "ark-ec 0.4.2", + "ark-ff 0.4.2", + "ark-serialize 0.4.2", + "cosmwasm-core 2.3.2", + "curve25519-dalek", + "digest 0.10.7", + "ecdsa", + "ed25519-zebra", + "k256", + "num-traits", + "p256", + "rand_core 0.6.4", + "rayon", + "sha2 0.10.9", + "thiserror 1.0.69", +] + +[[package]] +name = "cosmwasm-crypto" +version = "3.0.3-dev" +dependencies = [ + "ark-bls12-381 0.5.0", + "ark-ec 0.5.0", + "ark-ff 0.5.0", + "ark-serialize 0.5.0", + "cosmwasm-core 3.0.3-dev", + "curve25519-dalek", + "digest 0.10.7", + "ecdsa", + "ed25519-zebra", + "k256", + "num-bigint", + "num-traits", + "p256", + "rand_core 0.6.4", + "rayon", + "sha2 0.10.9", + "thiserror 1.0.69", +] + +[[package]] +name = "cosmwasm-derive" +version = "2.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "82e8c609b837282a093d87f45099f648b5c2f36203c6223f67883f13c3c1453a" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "cosmwasm-derive" +version = "3.0.3-dev" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "cosmwasm-schema" +version = "2.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61d8debcf3b9cb23ed4c42a8c17fa224a422312d09f123816cc844c18c59246c" +dependencies = [ + "cosmwasm-schema-derive 2.3.2", + "schemars 0.8.22", + "serde", + "serde_json", + "thiserror 1.0.69", +] + +[[package]] +name = "cosmwasm-schema" +version = "3.0.3-dev" +dependencies = [ + "cosmwasm-schema-derive 3.0.3-dev", + "cw-schema", + "schemars 0.8.22", + "serde", + "serde_json", + "thiserror 1.0.69", +] + +[[package]] +name = "cosmwasm-schema-derive" +version = "2.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9efbbf2d78ec255fdae93ae363cc67490878fe5682f1266e4951321cd20888ef" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "cosmwasm-schema-derive" +version = "3.0.3-dev" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "cosmwasm-std" +version = "2.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "80d40d789c6d5d9b560927712c836237a3f29ea75fb09ef8718d4036bf2b8965" +dependencies = [ + "base64 0.22.1", + "bech32", + "bnum", + "cosmwasm-core 2.3.2", + "cosmwasm-crypto 2.3.2", + "cosmwasm-derive 2.3.2", + "derive_more 1.0.0", + "hex", + "rand_core 0.6.4", + "rmp-serde", + "schemars 0.8.22", + "serde", + "serde-json-wasm", + "sha2 0.10.9", + "static_assertions", + "thiserror 1.0.69", +] + +[[package]] +name = "cosmwasm-std" +version = "3.0.3-dev" +dependencies = [ + "base64 0.22.1", + "bech32", + "bnum", + "cosmwasm-core 3.0.3-dev", + "cosmwasm-crypto 3.0.3-dev", + "cosmwasm-derive 3.0.3-dev", + "cw-schema", + "derive_more 2.1.1", + "hex", + "rand_core 0.6.4", + "rmp-serde", + "schemars 0.8.22", + "serde", + "serde_json", + "sha2 0.10.9", + "static_assertions", + "thiserror 1.0.69", +] + +[[package]] +name = "cosmwasm-vm-derive" +version = "3.0.3-dev" +dependencies = [ + "blake2", + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "cpufeatures" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" +dependencies = [ + "libc", +] + +[[package]] +name = "cpufeatures" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b2a41393f66f16b0823bb79094d54ac5fbd34ab292ddafb9a0456ac9f87d201" +dependencies = [ + "libc", +] + +[[package]] +name = "crc" +version = "3.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5eb8a2a1cd12ab0d987a5d5e825195d372001a4094a0376319d5a0ad71c1ba0d" +dependencies = [ + "crc-catalog", +] + +[[package]] +name = "crc-catalog" +version = "2.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19d374276b40fb8bbdee95aef7c7fa6b5316ec764510eb64b8dd0e2ed0d7e7f5" + +[[package]] +name = "crc32fast" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "crossbeam" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1137cd7e7fc0fb5d3c5a8678be38ec56e819125d8d7907411fe24ccb943faca8" +dependencies = [ + "crossbeam-channel", + "crossbeam-deque", + "crossbeam-epoch", + "crossbeam-queue", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-channel" +version = "0.5.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "82b8f8f868b36967f9606790d1903570de9ceaf870a7bf9fbbd3016d636a2cb2" +dependencies = [ + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-deque" +version = "0.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9dd111b7b7f7d55b72c0a6ae361660ee5853c9af73f70c3c2ef6858b950e2e51" +dependencies = [ + "crossbeam-epoch", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-epoch" +version = "0.9.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" +dependencies = [ + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-queue" +version = "0.3.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f58bbc28f91df819d0aa2a2c00cd19754769c2fad90579b3592b1c9ba7a3115" +dependencies = [ + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-utils" +version = "0.8.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28" + +[[package]] +name = "crunchy" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "460fbee9c2c2f33933d720630a6a0bac33ba7053db5344fac858d4b8952d77d5" + +[[package]] +name = "crypto-bigint" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0dc92fb57ca44df6db8059111ab3af99a63d5d0f8375d9972e319a379c6bab76" +dependencies = [ + "generic-array", + "rand_core 0.6.4", + "subtle", + "zeroize", +] + +[[package]] +name = "crypto-common" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78c8292055d1c1df0cce5d180393dc8cce0abec0a7102adb6c7b1eef6016d60a" +dependencies = [ + "generic-array", + "typenum", +] + +[[package]] +name = "csv" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52cd9d68cf7efc6ddfaaee42e7288d3a99d613d4b50f76ce9827ae0c6e14f938" +dependencies = [ + "csv-core", + "itoa", + "ryu", + "serde_core", +] + +[[package]] +name = "csv-core" +version = "0.1.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "704a3c26996a80471189265814dbc2c257598b96b8a7feae2d31ace646bb9782" +dependencies = [ + "memchr", +] + +[[package]] +name = "curve25519-dalek" +version = "4.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97fb8b7c4503de7d6ae7b42ab72a5a59857b4c937ec27a3d4539dba95b5ab2be" +dependencies = [ + "cfg-if", + "cpufeatures 0.2.17", + "curve25519-dalek-derive", + "digest 0.10.7", + "fiat-crypto", + "rustc_version 0.4.1", + "subtle", + "zeroize", +] + +[[package]] +name = "curve25519-dalek-derive" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "curve25519-dalek-ng" +version = "4.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c359b7249347e46fb28804470d071c921156ad62b3eef5d34e2ba867533dec8" +dependencies = [ + "byteorder", + "digest 0.9.0", + "rand_core 0.6.4", + "subtle-ng", + "zeroize", +] + +[[package]] +name = "cw-address-like" +version = "3.0.1" +dependencies = [ + "cosmwasm-std 3.0.3-dev", +] + +[[package]] +name = "cw-asset" +version = "4.0.0" +dependencies = [ + "cosmwasm-schema 3.0.3-dev", + "cosmwasm-std 3.0.3-dev", + "cw-address-like", + "cw-storage-plus", + "cw20", + "thiserror 1.0.69", +] + +[[package]] +name = "cw-blob" +version = "0.2.0" +dependencies = [ + "cosmrs", + "cosmwasm-std 3.0.3-dev", + "cw-orch", +] + +[[package]] +name = "cw-clearable" +version = "0.2.0" +dependencies = [ + "cosmwasm-schema 3.0.3-dev", + "cosmwasm-std 3.0.3-dev", + "sha2 0.10.9", +] + +[[package]] +name = "cw-controllers" +version = "3.0.0" +dependencies = [ + "cosmwasm-schema 3.0.3-dev", + "cosmwasm-std 3.0.3-dev", + "cw-storage-plus", + "cw-utils", + "schemars 0.8.22", + "serde", + "thiserror 2.0.18", +] + +[[package]] +name = "cw-headstash" +version = "0.1.0" +dependencies = [ + "anyhow", + "ark-bls12-381 0.5.0", + "ark-ec 0.5.0", + "ark-ff 0.5.0", + "ark-serialize 0.5.0", + "blake3", + "cosmwasm-schema 3.0.3-dev", + "cosmwasm-std 3.0.3-dev", + "cw-orch", + "cw-ownable", + "cw-storage-plus", + "halo2_proofs", + "hex", + "pasta_curves", + "rand_core 0.6.4", + "serde", + "sha2 0.10.9", + "terp-account", + "terp-auth", + "zk-headstash", +] + +[[package]] +name = "cw-headstash-manifold" +version = "0.1.0" +dependencies = [ + "ark-bls12-381 0.5.0", + "cosmwasm-schema 3.0.3-dev", + "cosmwasm-std 3.0.3-dev", + "cw-headstash", + "cw-orch", + "cw-ownable", + "cw-storage-plus", + "serde", + "thiserror 1.0.69", +] + +[[package]] +name = "cw-infuser" +version = "0.7.3" +dependencies = [ + "cosmwasm-schema 3.0.3-dev", + "cosmwasm-std 3.0.3-dev", + "cw-controllers", + "cw-infusions", + "cw-orch", + "cw-storage-plus", + "cw2", + "cw721", + "nois", + "rand_xoshiro", + "semver 1.0.28", + "sha2 0.10.9", + "shuffle", + "thiserror 1.0.69", + "url", +] + +[[package]] +name = "cw-infuser-scripts" +version = "0.1.0" +dependencies = [ + "anyhow", + "bech32", + "blake3", + "clap", + "cosmwasm-std 3.0.3-dev", + "csv", + "cw-infuser", + "cw-infusions", + "cw-orch", + "cw-svg", + "cw-svg-minter", + "cw721", + "cw721-svg", + "dotenv", + "env_logger 0.11.10", + "hex", + "k256", + "rand 0.8.5", + "rs_merkle", + "serde", + "serde_json", + "sha2 0.10.9", + "shit-scripts", + "shlex", + "ureq", + "whitelist-mtree", +] + +[[package]] +name = "cw-infusions" +version = "0.7.3" +dependencies = [ + "base64 0.22.1", + "cosmwasm-schema 3.0.3-dev", + "cosmwasm-std 3.0.3-dev", + "sha2 0.10.9", +] + +[[package]] +name = "cw-orch" +version = "0.30.0" +dependencies = [ + "anyhow", + "cosmrs", + "cosmwasm-std 3.0.3-dev", + "cw-orch-contract-derive", + "cw-orch-core", + "cw-orch-daemon", + "cw-orch-fns-derive", + "cw-orch-mock", + "cw-orch-networks", + "cw-orch-traits", + "cw-utils", + "hex", + "log", + "schemars 0.8.22", + "serde", + "thiserror 1.0.69", + "tokio", +] + +[[package]] +name = "cw-orch-contract-derive" +version = "0.21.1" +dependencies = [ + "convert_case 0.6.0", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "cw-orch-core" +version = "2.1.4" +dependencies = [ + "abstract-cw-multi-test", + "anyhow", + "cosmos-sdk-proto", + "cosmwasm-std 3.0.3-dev", + "cw-storage-plus", + "cw-utils", + "dirs 5.0.1", + "log", + "serde", + "serde_json", + "sha2 0.10.9", + "thiserror 1.0.69", +] + +[[package]] +name = "cw-orch-daemon" +version = "0.29.0" +dependencies = [ + "anyhow", + "async-recursion", + "base16", + "base64 0.22.1", + "bech32", + "bip39", + "bitcoin", + "chrono", + "cosmrs", + "cosmwasm-std 3.0.3-dev", + "cw-orch-core", + "cw-orch-networks", + "cw-orch-traits", + "dirs 5.0.1", + "ed25519-dalek", + "eyre", + "file-lock", + "flate2", + "hex", + "http 1.4.0", + "ibc-proto", + "lazy_static", + "libc-print", + "log", + "once_cell", + "prost", + "prost-types", + "rand_core 0.6.4", + "reqwest 0.12.28", + "ring", + "ripemd", + "schemars 0.8.22", + "serde", + "serde_json", + "sha2 0.10.9", + "thiserror 1.0.69", + "tokio", + "toml 0.8.23", + "tonic", + "uid", +] + +[[package]] +name = "cw-orch-fns-derive" +version = "0.23.1" +dependencies = [ + "convert_case 0.6.0", + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "cw-orch-mock" +version = "0.24.4" +dependencies = [ + "abstract-cw-multi-test", + "cosmos-sdk-proto", + "cosmwasm-std 3.0.3-dev", + "cw-orch-core", + "cw-utils", + "log", + "serde", + "sha2 0.10.9", +] + +[[package]] +name = "cw-orch-networks" +version = "0.24.10" +dependencies = [ + "cw-orch-core", + "serde", +] + +[[package]] +name = "cw-orch-traits" +version = "0.25.0" +dependencies = [ + "cw-orch-core", + "prost-types", +] + +[[package]] +name = "cw-ownable" +version = "3.0.1" +dependencies = [ + "cosmwasm-schema 3.0.3-dev", + "cosmwasm-std 3.0.3-dev", + "cw-address-like", + "cw-ownable-derive", + "cw-storage-plus", + "cw-utils", + "thiserror 1.0.69", +] + +[[package]] +name = "cw-ownable-derive" +version = "3.0.1" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "cw-paginate" +version = "3.0.1" +dependencies = [ + "cosmwasm-std 3.0.3-dev", + "cw-storage-plus", + "serde", +] + +[[package]] +name = "cw-schema" +version = "3.0.3-dev" +dependencies = [ + "cw-schema-derive", + "indexmap 2.14.0", + "schemars 1.2.1", + "serde", + "serde_with", + "siphasher", + "typeid", +] + +[[package]] +name = "cw-schema-derive" +version = "3.0.3-dev" +dependencies = [ + "heck", + "itertools 0.13.0", + "owo-colors", + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "cw-shit-denom" +version = "0.1.0" +dependencies = [ + "cosmwasm-schema 3.0.3-dev", + "cosmwasm-std 3.0.3-dev", + "cw20", + "thiserror 1.0.69", +] + +[[package]] +name = "cw-shitstrap" +version = "0.1.0" +dependencies = [ + "cosmwasm-schema 3.0.3-dev", + "cosmwasm-std 3.0.3-dev", + "cw-orch", + "cw-shit-denom", + "cw-storage-plus", + "cw2", + "cw20", + "cw20-base", + "schemars 0.8.22", + "serde", + "thiserror 1.0.69", +] + +[[package]] +name = "cw-shitstrap-factory" +version = "0.1.0" +dependencies = [ + "cosmwasm-schema 3.0.3-dev", + "cosmwasm-std 3.0.3-dev", + "cw-orch", + "cw-ownable", + "cw-shit-denom", + "cw-shitstrap", + "cw-storage-plus", + "cw-utils", + "cw2", + "cw20", + "thiserror 1.0.69", +] + +[[package]] +name = "cw-storage-macro" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1d48b5f4d188a8df2a856fdb42f9d4ad1cec181220326b4b3cdab795b310574" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "cw-storage-plus" +version = "3.0.1" +dependencies = [ + "cosmwasm-std 3.0.3-dev", + "schemars 0.8.22", + "serde", +] + +[[package]] +name = "cw-svg" +version = "0.1.0" +dependencies = [ + "cosmwasm-schema 3.0.3-dev", + "cosmwasm-std 3.0.3-dev", + "cw721-svg", + "sha2 0.10.9", +] + +[[package]] +name = "cw-svg-minter" +version = "0.7.3" +dependencies = [ + "cosmwasm-schema 3.0.3-dev", + "cosmwasm-std 3.0.3-dev", + "cw-orch", + "cw-ownable", + "cw-storage-plus", + "cw2", + "cw721-svg", + "schemars 0.8.22", + "serde", + "sha2 0.10.9", + "thiserror 1.0.69", +] + +[[package]] +name = "cw-utils" +version = "3.0.0" +dependencies = [ + "cosmwasm-schema 3.0.3-dev", + "cosmwasm-std 3.0.3-dev", + "schemars 0.8.22", + "serde", + "thiserror 2.0.18", +] + +[[package]] +name = "cw2" +version = "3.0.0" +dependencies = [ + "cosmwasm-schema 3.0.3-dev", + "cosmwasm-std 3.0.3-dev", + "cw-storage-plus", + "schemars 0.8.22", + "semver 1.0.28", + "serde", + "thiserror 2.0.18", +] + +[[package]] +name = "cw20" +version = "3.0.0" +dependencies = [ + "cosmwasm-schema 3.0.3-dev", + "cosmwasm-std 3.0.3-dev", + "cw-utils", + "schemars 0.8.22", + "serde", +] + +[[package]] +name = "cw20-base" +version = "3.0.0" +dependencies = [ + "cosmwasm-schema 3.0.3-dev", + "cosmwasm-std 3.0.3-dev", + "cw-storage-plus", + "cw2", + "cw20", + "schemars 0.8.22", + "semver 1.0.28", + "serde", + "thiserror 1.0.69", +] + +[[package]] +name = "cw20-ics20" +version = "3.0.0" +dependencies = [ + "cosmwasm-schema 3.0.3-dev", + "cosmwasm-std 3.0.3-dev", + "cw-controllers", + "cw-storage-plus", + "cw-utils", + "cw2", + "cw20", + "schemars 0.8.22", + "semver 1.0.28", + "serde", + "thiserror 1.0.69", +] + +[[package]] +name = "cw721" +version = "0.22.0" +dependencies = [ + "cosmwasm-schema 3.0.3-dev", + "cosmwasm-std 3.0.3-dev", + "cw-ownable", + "cw-storage-plus", + "cw-utils", + "cw2", + "schemars 0.8.22", + "serde", + "thiserror 1.0.69", + "url", +] + +[[package]] +name = "cw721-svg" +version = "0.1.0" +dependencies = [ + "cosmwasm-schema 3.0.3-dev", + "cosmwasm-std 3.0.3-dev", + "cw-orch", + "cw-ownable", + "cw-storage-plus", + "cw-utils", + "cw2", + "cw721", + "schemars 0.8.22", + "serde", + "sha2 0.10.9", + "thiserror 1.0.69", + "whitelist-mtree", +] + +[[package]] +name = "darling" +version = "0.21.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9cdf337090841a411e2a7f3deb9187445851f91b309c0c0a29e05f74a00a48c0" +dependencies = [ + "darling_core 0.21.3", + "darling_macro 0.21.3", +] + +[[package]] +name = "darling" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25ae13da2f202d56bd7f91c25fba009e7717a1e4a1cc98a76d844b65ae912e9d" +dependencies = [ + "darling_core 0.23.0", + "darling_macro 0.23.0", +] + +[[package]] +name = "darling_core" +version = "0.21.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1247195ecd7e3c85f83c8d2a366e4210d588e802133e1e355180a9870b517ea4" +dependencies = [ + "fnv", + "ident_case", + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "darling_core" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9865a50f7c335f53564bb694ef660825eb8610e0a53d3e11bf1b0d3df31e03b0" +dependencies = [ + "ident_case", + "proc-macro2", + "quote", + "serde", + "strsim", + "syn 2.0.117", +] + +[[package]] +name = "darling_macro" +version = "0.21.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d38308df82d1080de0afee5d069fa14b0326a88c14f15c5ccda35b4a6c414c81" +dependencies = [ + "darling_core 0.21.3", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "darling_macro" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3984ec7bd6cfa798e62b4a642426a5be0e68f9401cfc2a01e3fa9ea2fcdb8d" +dependencies = [ + "darling_core 0.23.0", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "dashmap" +version = "6.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5041cc499144891f3790297212f32a74fb938e5136a14943f338ef9e0ae276cf" +dependencies = [ + "cfg-if", + "crossbeam-utils", + "hashbrown 0.14.5", + "lock_api", + "once_cell", + "parking_lot_core", +] + +[[package]] +name = "der" +version = "0.7.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7c1832837b905bbfb5101e07cc24c8deddf52f93225eee6ead5f4d63d53ddcb" +dependencies = [ + "const-oid", + "zeroize", +] + +[[package]] +name = "deranged" +version = "0.5.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7cd812cc2bc1d69d4764bd80df88b4317eaef9e773c75226407d9bc0876b211c" +dependencies = [ + "powerfmt", + "serde_core", +] + +[[package]] +name = "derivative" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "derive_arbitrary" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e567bd82dcff979e4b03460c307b3cdc9e96fde3d73bed1496d2bc75d9dd62a" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "derive_more" +version = "0.99.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6edb4b64a43d977b8e99788fe3a04d483834fba1215a7e02caa415b626497f7f" +dependencies = [ + "convert_case 0.4.0", + "proc-macro2", + "quote", + "rustc_version 0.4.1", + "syn 2.0.117", +] + +[[package]] +name = "derive_more" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a9b99b9cbbe49445b21764dc0625032a89b145a2642e67603e1c936f5458d05" +dependencies = [ + "derive_more-impl 1.0.0", +] + +[[package]] +name = "derive_more" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d751e9e49156b02b44f9c1815bcb94b984cdcc4396ecc32521c739452808b134" +dependencies = [ + "derive_more-impl 2.1.1", +] + +[[package]] +name = "derive_more-impl" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb7330aeadfbe296029522e6c40f315320aba36fc43a5b3632f3795348f3bd22" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", + "unicode-xid", +] + +[[package]] +name = "derive_more-impl" +version = "2.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "799a97264921d8623a957f6c3b9011f3b5492f557bbb7a5a19b7fa6d06ba8dcb" +dependencies = [ + "convert_case 0.10.0", + "proc-macro2", + "quote", + "rustc_version 0.4.1", + "syn 2.0.117", + "unicode-xid", +] + +[[package]] +name = "digest" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" +dependencies = [ + "generic-array", +] + +[[package]] +name = "digest" +version = "0.10.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" +dependencies = [ + "block-buffer 0.10.4", + "const-oid", + "crypto-common", + "subtle", +] + +[[package]] +name = "dirs" +version = "5.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44c45a9d03d6676652bcb5e724c7e988de1acad23a711b5217ab9cbecbec2225" +dependencies = [ + "dirs-sys 0.4.1", +] + +[[package]] +name = "dirs" +version = "6.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3e8aa94d75141228480295a7d0e7feb620b1a5ad9f12bc40be62411e38cce4e" +dependencies = [ + "dirs-sys 0.5.0", +] + +[[package]] +name = "dirs-next" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b98cf8ebf19c3d1b223e151f99a4f9f0690dca41414773390fc824184ac833e1" +dependencies = [ + "cfg-if", + "dirs-sys-next", +] + +[[package]] +name = "dirs-sys" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "520f05a5cbd335fae5a99ff7a6ab8627577660ee5cfd6a94a6a929b52ff0321c" +dependencies = [ + "libc", + "option-ext", + "redox_users 0.4.6", + "windows-sys 0.48.0", +] + +[[package]] +name = "dirs-sys" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e01a3366d27ee9890022452ee61b2b63a67e6f13f58900b651ff5665f0bb1fab" +dependencies = [ + "libc", + "option-ext", + "redox_users 0.5.2", + "windows-sys 0.61.2", +] + +[[package]] +name = "dirs-sys-next" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d" +dependencies = [ + "libc", + "redox_users 0.4.6", + "winapi", +] + +[[package]] +name = "displaydoc" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "dotenv" +version = "0.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77c90badedccf4105eca100756a0b1289e191f6fcbdadd3cee1d2f614f97da8f" + +[[package]] +name = "dunce" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813" + +[[package]] +name = "dyn-clone" +version = "1.0.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0881ea181b1df73ff77ffaaf9c7544ecc11e82fba9b5f27b262a3c73a332555" + +[[package]] +name = "dynasm" +version = "1.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "add9a102807b524ec050363f09e06f1504214b0e1c7797f64261c891022dce8b" +dependencies = [ + "bitflags 1.3.2", + "byteorder", + "lazy_static", + "proc-macro-error", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "dynasmrt" +version = "1.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64fba5a42bd76a17cad4bfa00de168ee1cbfa06a5e8ce992ae880218c05641a9" +dependencies = [ + "byteorder", + "dynasm", + "memmap2 0.5.10", +] + +[[package]] +name = "ecdsa" +version = "0.16.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee27f32b5c5292967d2d4a9d7f1e0b0aed2c15daded5a60300e4abb9d8020bca" +dependencies = [ + "der", + "digest 0.10.7", + "elliptic-curve", + "rfc6979", + "serdect", + "signature", + "spki", +] + +[[package]] +name = "ed25519" +version = "2.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "115531babc129696a58c64a4fef0a8bf9e9698629fb97e9e40767d235cfbcd53" +dependencies = [ + "pkcs8", + "serde", + "signature", +] + +[[package]] +name = "ed25519-consensus" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c8465edc8ee7436ffea81d21a019b16676ee3db267aa8d5a8d729581ecf998b" +dependencies = [ + "curve25519-dalek-ng", + "hex", + "rand_core 0.6.4", + "sha2 0.9.9", + "zeroize", +] + +[[package]] +name = "ed25519-dalek" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70e796c081cee67dc755e1a36a0a172b897fab85fc3f6bc48307991f64e4eca9" +dependencies = [ + "curve25519-dalek", + "ed25519", + "serde", + "sha2 0.10.9", + "subtle", + "zeroize", +] + +[[package]] +name = "ed25519-zebra" +version = "4.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d9ce6874da5d4415896cd45ffbc4d1cfc0c4f9c079427bd870742c30f2f65a9" +dependencies = [ + "curve25519-dalek", + "ed25519", + "hashbrown 0.14.5", + "hex", + "rand_core 0.6.4", + "sha2 0.10.9", + "zeroize", +] + +[[package]] +name = "educe" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d7bc049e1bd8cdeb31b68bbd586a9464ecf9f3944af3958a7a9d0f8b9799417" +dependencies = [ + "enum-ordinalize", + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "either" +version = "1.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" +dependencies = [ + "serde", +] + +[[package]] +name = "elliptic-curve" +version = "0.13.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5e6043086bf7973472e0c7dff2142ea0b680d30e18d9cc40f267efbf222bd47" +dependencies = [ + "base16ct", + "crypto-bigint", + "digest 0.10.7", + "ff", + "generic-array", + "group", + "pkcs8", + "rand_core 0.6.4", + "sec1", + "serdect", + "subtle", + "zeroize", +] + +[[package]] +name = "ena" +version = "0.14.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eabffdaee24bd1bf95c5ef7cec31260444317e72ea56c4c91750e8b7ee58d5f1" +dependencies = [ + "log", +] + +[[package]] +name = "encoding_rs" +version = "0.8.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "enum-iterator" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4eeac5c5edb79e4e39fe8439ef35207780a11f69c52cbe424ce3dfad4cb78de6" +dependencies = [ + "enum-iterator-derive", +] + +[[package]] +name = "enum-iterator-derive" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c134c37760b27a871ba422106eedbb8247da973a09e82558bf26d619c882b159" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "enum-ordinalize" +version = "4.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a1091a7bb1f8f2c4b28f1fe2cef4980ca2d410a3d727d67ecc3178c9b0800f0" +dependencies = [ + "enum-ordinalize-derive", +] + +[[package]] +name = "enum-ordinalize-derive" +version = "4.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ca9601fb2d62598ee17836250842873a413586e5d7ed88b356e38ddbb0ec631" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "enumn" +version = "0.1.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2f9ed6b3789237c8a0c1c505af1c7eb2c560df6186f01b098c3a1064ea532f38" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "enumset" +version = "1.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25b07a8dfbbbfc0064c0a6bdf9edcf966de6b1c33ce344bdeca3b41615452634" +dependencies = [ + "enumset_derive", +] + +[[package]] +name = "enumset_derive" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f43e744e4ea338060faee68ed933e46e722fb7f3617e722a5772d7e856d8b3ce" +dependencies = [ + "darling 0.21.3", + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "env_filter" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32e90c2accc4b07a8456ea0debdc2e7587bdd890680d71173a15d4ae604f6eef" +dependencies = [ + "log", + "regex", +] + +[[package]] +name = "env_logger" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4cd405aab171cb85d6735e5c8d9db038c17d3ca007a4d2c25f337935c3d90580" +dependencies = [ + "humantime", + "is-terminal", + "log", + "regex", + "termcolor", +] + +[[package]] +name = "env_logger" +version = "0.11.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0621c04f2196ac3f488dd583365b9c09be011a4ab8b9f37248ffcc8f6198b56a" +dependencies = [ + "anstream", + "anstyle", + "env_filter", + "jiff", + "log", +] + +[[package]] +name = "equivalent" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" + +[[package]] +name = "errno" +version = "0.3.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" +dependencies = [ + "libc", + "windows-sys 0.61.2", +] + +[[package]] +name = "ethabi" +version = "18.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7413c5f74cc903ea37386a8965a936cbeb334bd270862fdece542c1b2dcbc898" +dependencies = [ + "ethereum-types", + "hex", + "once_cell", + "regex", + "serde", + "serde_json", + "sha3", + "thiserror 1.0.69", + "uint", +] + +[[package]] +name = "ethbloom" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c22d4b5885b6aa2fe5e8b9329fb8d232bf739e434e6b87347c63bdd00c120f60" +dependencies = [ + "crunchy", + "fixed-hash", + "impl-codec", + "impl-rlp", + "impl-serde", + "scale-info", + "tiny-keccak", +] + +[[package]] +name = "ethereum-types" +version = "0.14.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02d215cbf040552efcbe99a38372fe80ab9d00268e20012b79fcd0f073edd8ee" +dependencies = [ + "ethbloom", + "fixed-hash", + "impl-codec", + "impl-rlp", + "impl-serde", + "primitive-types", + "scale-info", + "uint", +] + +[[package]] +name = "ethers-core" +version = "2.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "82d80cc6ad30b14a48ab786523af33b37f28a8623fc06afd55324816ef18fb1f" +dependencies = [ + "arrayvec", + "bytes", + "chrono", + "const-hex", + "elliptic-curve", + "ethabi", + "generic-array", + "k256", + "num_enum", + "open-fastrlp", + "rand 0.8.5", + "rlp", + "serde", + "serde_json", + "strum 0.26.3", + "tempfile", + "thiserror 1.0.69", + "tiny-keccak", + "unicode-xid", +] + +[[package]] +name = "ethers-etherscan" +version = "2.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e79e5973c26d4baf0ce55520bd732314328cabe53193286671b47144145b9649" +dependencies = [ + "chrono", + "ethers-core", + "reqwest 0.11.27", + "semver 1.0.28", + "serde", + "serde_json", + "thiserror 1.0.69", + "tracing", +] + +[[package]] +name = "ethers-solc" +version = "2.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "66244a771d9163282646dbeffe0e6eca4dda4146b6498644e678ac6089b11edd" +dependencies = [ + "cfg-if", + "const-hex", + "dirs 5.0.1", + "dunce", + "ethers-core", + "futures-util", + "glob", + "home", + "md-5", + "num_cpus", + "once_cell", + "path-slash", + "rayon", + "regex", + "semver 1.0.28", + "serde", + "serde_json", + "sha2 0.10.9", + "solang-parser", + "svm-rs 0.3.5", + "svm-rs-builds 0.2.3", + "thiserror 1.0.69", + "tiny-keccak", + "tokio", + "tracing", + "walkdir", + "yansi 0.5.1", +] + +[[package]] +name = "eyre" +version = "0.6.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7cd915d99f24784cdc19fd37ef22b97e3ff0ae756c7e492e9fbfe897d61e2aec" +dependencies = [ + "indenter", + "once_cell", +] + +[[package]] +name = "fallible-iterator" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2acce4a10f12dc2fb14a218589d4f1f62ef011b2d0cc4b3cb1bba8e94da14649" + +[[package]] +name = "fastrand" +version = "2.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f1f227452a390804cdb637b74a86990f2a7d7ba4b7d5693aac9b4dd6defd8d6" + +[[package]] +name = "fastrlp" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "139834ddba373bbdd213dffe02c8d110508dcf1726c2be27e8d1f7d7e1856418" +dependencies = [ + "arrayvec", + "auto_impl", + "bytes", +] + +[[package]] +name = "fastrlp" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce8dba4714ef14b8274c371879b175aa55b16b30f269663f19d576f380018dc4" +dependencies = [ + "arrayvec", + "auto_impl", + "bytes", +] + +[[package]] +name = "ff" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0b50bfb653653f9ca9095b427bed08ab8d75a137839d9ad64eb11810d5b6393" +dependencies = [ + "bitvec 1.0.1", + "rand_core 0.6.4", + "subtle", +] + +[[package]] +name = "fiat-crypto" +version = "0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28dea519a9695b9977216879a3ebfddf92f1c08c05d984f8996aecd6ecdc811d" + +[[package]] +name = "figment" +version = "0.10.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8cb01cd46b0cf372153850f4c6c272d9cbea2da513e07538405148f95bd789f3" +dependencies = [ + "atomic", + "pear", + "serde", + "toml 0.8.23", + "uncased", + "version_check", +] + +[[package]] +name = "file-lock" +version = "2.1.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "040b48f80a749da50292d0f47a1e2d5bf1d772f52836c07f64bfccc62ba6e664" +dependencies = [ + "cc", + "libc", +] + +[[package]] +name = "filetime" +version = "0.2.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f98844151eee8917efc50bd9e8318cb963ae8b297431495d3f758616ea5c57db" +dependencies = [ + "cfg-if", + "libc", + "libredox", +] + +[[package]] +name = "find-msvc-tools" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5baebc0774151f905a1a2cc41989300b1e6fbb29aff0ceffa1064fdd3088d582" + +[[package]] +name = "fixed-hash" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "835c052cb0c08c1acf6ffd71c022172e18723949c8282f2b9f27efbc51e64534" +dependencies = [ + "byteorder", + "rand 0.8.5", + "rustc-hex", + "static_assertions", +] + +[[package]] +name = "fixedbitset" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" + +[[package]] +name = "flate2" +version = "1.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "843fba2746e448b37e26a819579957415c8cef339bf08564fe8b7ddbd959573c" +dependencies = [ + "crc32fast", + "miniz_oxide", + "zlib-rs", +] + +[[package]] +name = "flex-error" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c606d892c9de11507fa0dcffc116434f94e105d0bbdc4e405b61519464c49d7b" +dependencies = [ + "eyre", + "paste", +] + +[[package]] +name = "fnv" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" + +[[package]] +name = "foldhash" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" + +[[package]] +name = "foldhash" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77ce24cb58228fbb8aa041425bb1050850ac19177686ea6e0f41a70416f56fdb" + +[[package]] +name = "foreign-types" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" +dependencies = [ + "foreign-types-shared", +] + +[[package]] +name = "foreign-types-shared" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" + +[[package]] +name = "form_urlencoded" +version = "1.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb4cb245038516f5f85277875cdaa4f7d2c9a0fa0468de06ed190163b1581fcf" +dependencies = [ + "percent-encoding", +] + +[[package]] +name = "foundry-compilers" +version = "0.11.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4754b3f3bb924202b29bd7f0584ea1446018926342884c86029a7d56ef1a22c1" +dependencies = [ + "alloy-json-abi 0.8.26", + "alloy-primitives 0.8.26", + "auto_impl", + "derivative", + "dirs 5.0.1", + "dyn-clone", + "foundry-compilers-artifacts", + "foundry-compilers-core", + "home", + "itertools 0.13.0", + "md-5", + "once_cell", + "path-slash", + "rayon", + "semver 1.0.28", + "serde", + "serde_json", + "sha2 0.10.9", + "solang-parser", + "svm-rs 0.5.24", + "svm-rs-builds 0.5.24", + "thiserror 1.0.69", + "tracing", + "winnow 0.6.26", + "yansi 1.0.1", +] + +[[package]] +name = "foundry-compilers-artifacts" +version = "0.11.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6289da0f17fdb5a0454020dce595502b0abd2a56c15a36d4f6c05bd6c4ff864" +dependencies = [ + "foundry-compilers-artifacts-solc", + "foundry-compilers-artifacts-vyper", +] + +[[package]] +name = "foundry-compilers-artifacts-solc" +version = "0.11.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1cf322ab7b726f2bafe9a7e6fb67db02801b35584a2b1d122b4feb52d8e9e7f" +dependencies = [ + "alloy-json-abi 0.8.26", + "alloy-primitives 0.8.26", + "foundry-compilers-core", + "md-5", + "path-slash", + "rayon", + "semver 1.0.28", + "serde", + "serde_json", + "serde_repr", + "thiserror 1.0.69", + "tracing", + "walkdir", + "yansi 1.0.1", +] + +[[package]] +name = "foundry-compilers-artifacts-vyper" +version = "0.11.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec47f94c7833adfe8049c819d9e31a60c3f440a68cf5baf34c318413d3eb0700" +dependencies = [ + "alloy-json-abi 0.8.26", + "alloy-primitives 0.8.26", + "foundry-compilers-artifacts-solc", + "foundry-compilers-core", + "path-slash", + "semver 1.0.28", + "serde", +] + +[[package]] +name = "foundry-compilers-core" +version = "0.11.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61971b34545e8ea01502df9d076e811ad3926f27d31adf2641e0c931ca646933" +dependencies = [ + "alloy-primitives 0.8.26", + "cfg-if", + "dunce", + "once_cell", + "path-slash", + "regex", + "semver 1.0.28", + "serde", + "serde_json", + "svm-rs 0.5.24", + "thiserror 1.0.69", + "tokio", + "walkdir", +] + +[[package]] +name = "foundry-config" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a64a9bdad47eb4d950523b8ff14e675db8f2226a2aef79063d9344449b3abd5" +dependencies = [ + "Inflector", + "dirs-next", + "ethers-core", + "ethers-etherscan", + "ethers-solc", + "eyre", + "figment", + "globset", + "number_prefix", + "once_cell", + "open-fastrlp", + "path-slash", + "regex", + "reqwest 0.11.27", + "revm-primitives", + "semver 1.0.28", + "serde", + "serde_json", + "serde_regex", + "thiserror 1.0.69", + "toml 0.7.8", + "toml_edit 0.19.15", + "tracing", + "walkdir", +] + +[[package]] +name = "fpe" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26c4b37de5ae15812a764c958297cfc50f5c010438f60c6ce75d11b802abd404" +dependencies = [ + "cbc", + "cipher", + "libm", + "num-bigint", + "num-integer", + "num-traits", +] + +[[package]] +name = "fs2" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9564fc758e15025b46aa6643b1b77d047d1a56a1aea6e01002ac0c7026876213" +dependencies = [ + "libc", + "winapi", +] + +[[package]] +name = "fs_extra" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42703706b716c37f96a77aea830392ad231f44c9e9a67872fa5548707e11b11c" + +[[package]] +name = "function_name" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1ab577a896d09940b5fe12ec5ae71f9d8211fff62c919c03a3750a9901e98a7" +dependencies = [ + "function_name-proc-macro", +] + +[[package]] +name = "function_name-proc-macro" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "673464e1e314dd67a0fd9544abc99e8eb28d0c7e3b69b033bcff9b2d00b87333" + +[[package]] +name = "funty" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" + +[[package]] +name = "futures" +version = "0.3.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b147ee9d1f6d097cef9ce628cd2ee62288d963e16fb287bd9286455b241382d" +dependencies = [ + "futures-channel", + "futures-core", + "futures-executor", + "futures-io", + "futures-sink", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-channel" +version = "0.3.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07bbe89c50d7a535e539b8c17bc0b49bdb77747034daa8087407d655f3f7cc1d" +dependencies = [ + "futures-core", + "futures-sink", +] + +[[package]] +name = "futures-core" +version = "0.3.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e3450815272ef58cec6d564423f6e755e25379b217b0bc688e295ba24df6b1d" + +[[package]] +name = "futures-executor" +version = "0.3.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf29c38818342a3b26b5b923639e7b1f4a61fc5e76102d4b1981c6dc7a7579d" +dependencies = [ + "futures-core", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-io" +version = "0.3.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cecba35d7ad927e23624b22ad55235f2239cfa44fd10428eecbeba6d6a717718" + +[[package]] +name = "futures-macro" +version = "0.3.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e835b70203e41293343137df5c0664546da5745f82ec9b84d40be8336958447b" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "futures-sink" +version = "0.3.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c39754e157331b013978ec91992bde1ac089843443c49cbc7f46150b0fad0893" + +[[package]] +name = "futures-task" +version = "0.3.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "037711b3d59c33004d3856fbdc83b99d4ff37a24768fa1be9ce3538a1cde4393" + +[[package]] +name = "futures-util" +version = "0.3.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "389ca41296e6190b48053de0321d02a77f32f8a5d2461dd38762c0593805c6d6" +dependencies = [ + "futures-channel", + "futures-core", + "futures-io", + "futures-macro", + "futures-sink", + "futures-task", + "memchr", + "pin-project-lite", + "slab", +] + +[[package]] +name = "futures-utils-wasm" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42012b0f064e01aa58b545fe3727f90f7dd4020f4a3ea735b50344965f5a57e9" + +[[package]] +name = "generic-array" +version = "0.14.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" +dependencies = [ + "typenum", + "version_check", + "zeroize", +] + +[[package]] +name = "getrandom" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff2abc00be7fca6ebc474524697ae276ad847ad0a6b3faa4bcb027e9a4614ad0" +dependencies = [ + "cfg-if", + "js-sys", + "libc", + "wasi", + "wasm-bindgen", +] + +[[package]] +name = "getrandom" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd" +dependencies = [ + "cfg-if", + "js-sys", + "libc", + "r-efi 5.3.0", + "wasip2", + "wasm-bindgen", +] + +[[package]] +name = "getrandom" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0de51e6874e94e7bf76d726fc5d13ba782deca734ff60d5bb2fb2607c7406555" +dependencies = [ + "cfg-if", + "libc", + "r-efi 6.0.0", + "wasip2", + "wasip3", +] + +[[package]] +name = "getset" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9cf0fc11e47561d47397154977bc219f4cf809b2974facc3ccb3b89e2436f912" +dependencies = [ + "proc-macro-error2", + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "gimli" +version = "0.28.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253" +dependencies = [ + "fallible-iterator", + "indexmap 2.14.0", + "stable_deref_trait", +] + +[[package]] +name = "gimli" +version = "0.32.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e629b9b98ef3dd8afe6ca2bd0f89306cec16d43d907889945bc5d6687f2f13c7" + +[[package]] +name = "glob" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0cc23270f6e1808e30a928bdc84dea0b9b4136a8bc82338574f23baf47bbd280" + +[[package]] +name = "globset" +version = "0.4.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52dfc19153a48bde0cbd630453615c8151bce3a5adfac7a0aebfbf0a1e1f57e3" +dependencies = [ + "aho-corasick", + "bstr", + "log", + "regex-automata", + "regex-syntax", +] + +[[package]] +name = "group" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63" +dependencies = [ + "ff", + "memuse", + "rand_core 0.6.4", + "subtle", +] + +[[package]] +name = "h2" +version = "0.3.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0beca50380b1fc32983fc1cb4587bfa4bb9e78fc259aad4a0032d2080309222d" +dependencies = [ + "bytes", + "fnv", + "futures-core", + "futures-sink", + "futures-util", + "http 0.2.12", + "indexmap 2.14.0", + "slab", + "tokio", + "tokio-util", + "tracing", +] + +[[package]] +name = "h2" +version = "0.4.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2f44da3a8150a6703ed5d34e164b875fd14c2cdab9af1252a9a1020bde2bdc54" +dependencies = [ + "atomic-waker", + "bytes", + "fnv", + "futures-core", + "futures-sink", + "http 1.4.0", + "indexmap 2.14.0", + "slab", + "tokio", + "tokio-util", + "tracing", +] + +[[package]] +name = "halo2-axiom" +version = "0.5.1" +dependencies = [ + "blake2b_simd", + "crossbeam", + "ff", + "group", + "halo2curves-axiom", + "itertools 0.11.0", + "maybe-rayon", + "pairing", + "rand 0.8.5", + "rand_core 0.6.4", + "rayon", + "rustc-hash 1.1.0", + "sha3", + "tracing", +] + +[[package]] +name = "halo2-base" +version = "0.4.1" +dependencies = [ + "ark-std 0.3.0", + "getset", + "halo2-axiom", + "itertools 0.11.0", + "log", + "num-bigint", + "num-integer", + "num-traits", + "poseidon-primitives", + "rand 0.8.5", + "rand_chacha 0.3.1", + "rayon", + "rustc-hash 1.1.0", + "serde", + "serde_json", +] + +[[package]] +name = "halo2_gadgets" +version = "0.4.0" +dependencies = [ + "arrayvec", + "bitvec 1.0.1", + "ff", + "group", + "halo2_poseidon", + "halo2_proofs", + "lazy_static", + "pasta_curves", + "proptest", + "rand 0.8.5", + "sinsemilla", + "subtle", + "uint", +] + +[[package]] +name = "halo2_poseidon" +version = "0.1.0" +dependencies = [ + "bitvec 1.0.1", + "ff", + "group", + "pasta_curves", +] + +[[package]] +name = "halo2_proofs" +version = "0.3.2" +dependencies = [ + "blake2b_simd", + "ff", + "group", + "indexmap 1.9.3", + "maybe-rayon", + "pasta_curves", + "rand_core 0.6.4", + "tracing", +] + +[[package]] +name = "halo2curves-axiom" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0cd39c0df23c8b72cb7158ccb106341b078d5019b5478b3bfdaf14e898177d3" +dependencies = [ + "blake2b_simd", + "digest 0.10.7", + "ff", + "group", + "hex", + "lazy_static", + "num-bigint", + "num-traits", + "pairing", + "pasta_curves", + "paste", + "rand 0.8.5", + "rand_core 0.6.4", + "rayon", + "serde", + "serde_arrays", + "sha2 0.10.9", + "static_assertions", + "subtle", + "unroll", +] + +[[package]] +name = "hashbrown" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" + +[[package]] +name = "hashbrown" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e" +dependencies = [ + "ahash", +] + +[[package]] +name = "hashbrown" +version = "0.14.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1" +dependencies = [ + "ahash", + "allocator-api2", +] + +[[package]] +name = "hashbrown" +version = "0.15.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" +dependencies = [ + "allocator-api2", + "foldhash 0.1.5", + "serde", +] + +[[package]] +name = "hashbrown" +version = "0.16.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100" +dependencies = [ + "allocator-api2", + "equivalent", + "foldhash 0.2.0", + "serde", + "serde_core", +] + +[[package]] +name = "hashbrown" +version = "0.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4f467dd6dccf739c208452f8014c75c18bb8301b050ad1cfb27153803edb0f51" + +[[package]] +name = "headstash-randomness" +version = "0.1.0" +dependencies = [ + "blake3", + "rand 0.8.5", +] + +[[package]] +name = "heck" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" + +[[package]] +name = "hermit-abi" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc0fef456e4baa96da950455cd02c081ca953b141298e41db3fc7e36b1da849c" + +[[package]] +name = "hex" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" +dependencies = [ + "serde", +] + +[[package]] +name = "hex-conservative" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fda06d18ac606267c40c04e41b9947729bf8b9efe74bd4e82b61a5f26a510b9f" +dependencies = [ + "arrayvec", +] + +[[package]] +name = "hex-literal" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6fe2267d4ed49bc07b63801559be28c718ea06c4738b7a03c94df7386d2cde46" + +[[package]] +name = "hex_lit" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3011d1213f159867b13cfd6ac92d2cd5f1345762c63be3554e84092d85a50bbd" + +[[package]] +name = "hmac" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" +dependencies = [ + "digest 0.10.7", +] + +[[package]] +name = "home" +version = "0.5.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc627f471c528ff0c4a49e1d5e60450c8f6461dd6d10ba9dcd3a61d3dff7728d" +dependencies = [ + "windows-sys 0.61.2", +] + +[[package]] +name = "http" +version = "0.2.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "601cbb57e577e2f5ef5be8e7b83f0f63994f25aa94d673e54a92d5c516d101f1" +dependencies = [ + "bytes", + "fnv", + "itoa", +] + +[[package]] +name = "http" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3ba2a386d7f85a81f119ad7498ebe444d2e22c2af0b86b069416ace48b3311a" +dependencies = [ + "bytes", + "itoa", +] + +[[package]] +name = "http-body" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" +dependencies = [ + "bytes", + "http 0.2.12", + "pin-project-lite", +] + +[[package]] +name = "http-body" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1efedce1fb8e6913f23e0c92de8e62cd5b772a67e7b3946df930a62566c93184" +dependencies = [ + "bytes", + "http 1.4.0", +] + +[[package]] +name = "http-body-util" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b021d93e26becf5dc7e1b75b1bed1fd93124b374ceb73f43d4d4eafec896a64a" +dependencies = [ + "bytes", + "futures-core", + "http 1.4.0", + "http-body 1.0.1", + "pin-project-lite", +] + +[[package]] +name = "httparse" +version = "1.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87" + +[[package]] +name = "httpdate" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" + +[[package]] +name = "humantime" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "135b12329e5e3ce057a9f972339ea52bc954fe1e9358ef27f95e89716fbc5424" + +[[package]] +name = "hyper" +version = "0.14.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41dfc780fdec9373c01bae43289ea34c972e40ee3c9f6b3c8801a35f35586ce7" +dependencies = [ + "bytes", + "futures-channel", + "futures-core", + "futures-util", + "h2 0.3.27", + "http 0.2.12", + "http-body 0.4.6", + "httparse", + "httpdate", + "itoa", + "pin-project-lite", + "socket2 0.5.10", + "tokio", + "tower-service", + "tracing", + "want", +] + +[[package]] +name = "hyper" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6299f016b246a94207e63da54dbe807655bf9e00044f73ded42c3ac5305fbcca" +dependencies = [ + "atomic-waker", + "bytes", + "futures-channel", + "futures-core", + "h2 0.4.13", + "http 1.4.0", + "http-body 1.0.1", + "httparse", + "httpdate", + "itoa", + "pin-project-lite", + "smallvec", + "tokio", + "want", +] + +[[package]] +name = "hyper-named-pipe" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73b7d8abf35697b81a825e386fc151e0d503e8cb5fcb93cc8669c376dfd6f278" +dependencies = [ + "hex", + "hyper 1.9.0", + "hyper-util", + "pin-project-lite", + "tokio", + "tower-service", + "winapi", +] + +[[package]] +name = "hyper-rustls" +version = "0.24.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec3efd23720e2049821a693cbc7e65ea87c72f1c58ff2f9522ff332b1491e590" +dependencies = [ + "futures-util", + "http 0.2.12", + "hyper 0.14.32", + "rustls 0.21.12", + "tokio", + "tokio-rustls 0.24.1", +] + +[[package]] +name = "hyper-rustls" +version = "0.27.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3c93eb611681b207e1fe55d5a71ecf91572ec8a6705cdb6857f7d8d5242cf58" +dependencies = [ + "http 1.4.0", + "hyper 1.9.0", + "hyper-util", + "rustls 0.23.37", + "rustls-pki-types", + "tokio", + "tokio-rustls 0.26.4", + "tower-service", +] + +[[package]] +name = "hyper-timeout" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b90d566bffbce6a75bd8b09a05aa8c2cb1fabb6cb348f8840c9e4c90a0d83b0" +dependencies = [ + "hyper 1.9.0", + "hyper-util", + "pin-project-lite", + "tokio", + "tower-service", +] + +[[package]] +name = "hyper-tls" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" +dependencies = [ + "bytes", + "hyper 0.14.32", + "native-tls", + "tokio", + "tokio-native-tls", +] + +[[package]] +name = "hyper-tls" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70206fc6890eaca9fde8a0bf71caa2ddfc9fe045ac9e5c70df101a7dbde866e0" +dependencies = [ + "bytes", + "http-body-util", + "hyper 1.9.0", + "hyper-util", + "native-tls", + "tokio", + "tokio-native-tls", + "tower-service", +] + +[[package]] +name = "hyper-util" +version = "0.1.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96547c2556ec9d12fb1578c4eaf448b04993e7fb79cbaad930a656880a6bdfa0" +dependencies = [ + "base64 0.22.1", + "bytes", + "futures-channel", + "futures-util", + "http 1.4.0", + "http-body 1.0.1", + "hyper 1.9.0", + "ipnet", + "libc", + "percent-encoding", + "pin-project-lite", + "socket2 0.6.3", + "system-configuration 0.7.0", + "tokio", + "tower-service", + "tracing", + "windows-registry", +] + +[[package]] +name = "hyperlocal" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "986c5ce3b994526b3cd75578e62554abd09f0899d6206de48b3e96ab34ccc8c7" +dependencies = [ + "hex", + "http-body-util", + "hyper 1.9.0", + "hyper-util", + "pin-project-lite", + "tokio", + "tower-service", +] + +[[package]] +name = "iana-time-zone" +version = "0.1.65" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e31bc9ad994ba00e440a8aa5c9ef0ec67d5cb5e5cb0cc7f8b744a35b389cc470" +dependencies = [ + "android_system_properties", + "core-foundation-sys", + "iana-time-zone-haiku", + "js-sys", + "log", + "wasm-bindgen", + "windows-core", +] + +[[package]] +name = "iana-time-zone-haiku" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" +dependencies = [ + "cc", +] + +[[package]] +name = "ibc-proto" +version = "0.52.0" +dependencies = [ + "base64 0.22.1", + "bytes", + "cosmos-sdk-proto", + "flex-error", + "ics23", + "informalsystems-pbjson", + "prost", + "subtle-encoding", + "tendermint-proto", + "tonic", + "tonic-prost", +] + +[[package]] +name = "ics23" +version = "0.12.0" +dependencies = [ + "anyhow", + "bytes", + "hex", + "informalsystems-pbjson", + "prost", + "serde", +] + +[[package]] +name = "ict-rs" +version = "0.1.0" +dependencies = [ + "anyhow", + "async-trait", + "bech32", + "bip32", + "bip39", + "bollard", + "cosmrs", + "cw-orch-core", + "futures", + "hex", + "ict-rs-derive", + "k256", + "log", + "prost", + "rand 0.8.5", + "ripemd", + "serde", + "serde_json", + "sha2 0.10.9", + "sha3", + "tendermint", + "tendermint-rpc", + "thiserror 2.0.18", + "tokio", + "toml 0.8.23", + "tracing", +] + +[[package]] +name = "ict-rs-derive" +version = "0.1.0" +dependencies = [ + "heck", + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "icu_collections" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2984d1cd16c883d7935b9e07e44071dca8d917fd52ecc02c04d5fa0b5a3f191c" +dependencies = [ + "displaydoc", + "potential_utf", + "utf8_iter", + "yoke", + "zerofrom", + "zerovec", +] + +[[package]] +name = "icu_locale_core" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92219b62b3e2b4d88ac5119f8904c10f8f61bf7e95b640d25ba3075e6cac2c29" +dependencies = [ + "displaydoc", + "litemap", + "tinystr", + "writeable", + "zerovec", +] + +[[package]] +name = "icu_normalizer" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c56e5ee99d6e3d33bd91c5d85458b6005a22140021cc324cea84dd0e72cff3b4" +dependencies = [ + "icu_collections", + "icu_normalizer_data", + "icu_properties", + "icu_provider", + "smallvec", + "zerovec", +] + +[[package]] +name = "icu_normalizer_data" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da3be0ae77ea334f4da67c12f149704f19f81d1adf7c51cf482943e84a2bad38" + +[[package]] +name = "icu_properties" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bee3b67d0ea5c2cca5003417989af8996f8604e34fb9ddf96208a033901e70de" +dependencies = [ + "icu_collections", + "icu_locale_core", + "icu_properties_data", + "icu_provider", + "zerotrie", + "zerovec", +] + +[[package]] +name = "icu_properties_data" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e2bbb201e0c04f7b4b3e14382af113e17ba4f63e2c9d2ee626b720cbce54a14" + +[[package]] +name = "icu_provider" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "139c4cf31c8b5f33d7e199446eff9c1e02decfc2f0eec2c8d71f65befa45b421" +dependencies = [ + "displaydoc", + "icu_locale_core", + "writeable", + "yoke", + "zerofrom", + "zerotrie", + "zerovec", +] + +[[package]] +name = "id-arena" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d3067d79b975e8844ca9eb072e16b31c3c1c36928edf9c6789548c524d0d954" + +[[package]] +name = "ident_case" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" + +[[package]] +name = "idna" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b0875f23caa03898994f6ddc501886a45c7d3d62d04d2d90788d47be1b1e4de" +dependencies = [ + "idna_adapter", + "smallvec", + "utf8_iter", +] + +[[package]] +name = "idna_adapter" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3acae9609540aa318d1bc588455225fb2085b9ed0c4f6bd0d9d5bcd86f1a0344" +dependencies = [ + "icu_normalizer", + "icu_properties", +] + +[[package]] +name = "impl-codec" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba6a270039626615617f3f36d15fc827041df3b78c439da2cadfa47455a77f2f" +dependencies = [ + "parity-scale-codec", +] + +[[package]] +name = "impl-rlp" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f28220f89297a075ddc7245cd538076ee98b01f2a9c23a53a4f1105d5a322808" +dependencies = [ + "rlp", +] + +[[package]] +name = "impl-serde" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebc88fc67028ae3db0c853baa36269d398d5f45b6982f95549ff5def78c935cd" +dependencies = [ + "serde", +] + +[[package]] +name = "impl-trait-for-tuples" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0eb5a3343abf848c0984fe4604b2b105da9539376e24fc0a3b0007411ae4fd9" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "incrementalmerkletree" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30821f91f0fa8660edca547918dc59812893b497d07c1144f326f07fdd94aba9" +dependencies = [ + "either", +] + +[[package]] +name = "indenter" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "964de6e86d545b246d84badc0fef527924ace5134f30641c203ef52ba83f58d5" + +[[package]] +name = "indexmap" +version = "1.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" +dependencies = [ + "autocfg", + "hashbrown 0.12.3", + "serde", +] + +[[package]] +name = "indexmap" +version = "2.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d466e9454f08e4a911e14806c24e16fba1b4c121d1ea474396f396069cf949d9" +dependencies = [ + "equivalent", + "hashbrown 0.17.0", + "serde", + "serde_core", +] + +[[package]] +name = "informalsystems-pbjson" +version = "0.7.0" +dependencies = [ + "base64 0.21.7", + "serde", +] + +[[package]] +name = "inlinable_string" +version = "0.1.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8fae54786f62fb2918dcfae3d568594e50eb9b5c25bf04371af6fe7516452fb" + +[[package]] +name = "inout" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "879f10e63c20629ecabbb64a8010319738c66a5cd0c29b02d63d272b03751d01" +dependencies = [ + "generic-array", +] + +[[package]] +name = "ipnet" +version = "2.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d98f6fed1fde3f8c21bc40a1abb88dd75e67924f9cffc3ef95607bad8017f8e2" + +[[package]] +name = "iri-string" +version = "0.7.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25e659a4bb38e810ebc252e53b5814ff908a8c58c2a9ce2fae1bbec24cbf4e20" +dependencies = [ + "memchr", + "serde", +] + +[[package]] +name = "is-terminal" +version = "0.4.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3640c1c38b8e4e43584d8df18be5fc6b0aa314ce6ebf51b53313d4306cca8e46" +dependencies = [ + "hermit-abi", + "libc", + "windows-sys 0.61.2", +] + +[[package]] +name = "is_ci" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7655c9839580ee829dfacba1d1278c2b7883e50a277ff7541299489d6bdfdc45" + +[[package]] +name = "is_terminal_polyfill" +version = "1.70.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a6cb138bb79a146c1bd460005623e142ef0181e3d0219cb493e02f7d08a35695" + +[[package]] +name = "itertools" +version = "0.10.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" +dependencies = [ + "either", +] + +[[package]] +name = "itertools" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57" +dependencies = [ + "either", +] + +[[package]] +name = "itertools" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "413ee7dfc52ee1a4949ceeb7dbc8a33f2d6c088194d9f922fb8318faf1f01186" +dependencies = [ + "either", +] + +[[package]] +name = "itertools" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b192c782037fadd9cfa75548310488aabdbf3d2da73885b31bd0abd03351285" +dependencies = [ + "either", +] + +[[package]] +name = "itoa" +version = "1.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682" + +[[package]] +name = "jiff" +version = "0.2.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a3546dc96b6d42c5f24902af9e2538e82e39ad350b0c766eb3fbf2d8f3d8359" +dependencies = [ + "jiff-static", + "log", + "portable-atomic", + "portable-atomic-util", + "serde_core", +] + +[[package]] +name = "jiff-static" +version = "0.2.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a8c8b344124222efd714b73bb41f8b5120b27a7cc1c75593a6ff768d9d05aa4" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "jni" +version = "0.21.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a87aa2bb7d2af34197c04845522473242e1aa17c12f4935d5856491a7fb8c97" +dependencies = [ + "cesu8", + "cfg-if", + "combine", + "jni-sys 0.3.1", + "log", + "thiserror 1.0.69", + "walkdir", + "windows-sys 0.45.0", +] + +[[package]] +name = "jni-sys" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41a652e1f9b6e0275df1f15b32661cf0d4b78d4d87ddec5e0c3c20f097433258" +dependencies = [ + "jni-sys 0.4.1", +] + +[[package]] +name = "jni-sys" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c6377a88cb3910bee9b0fa88d4f42e1d2da8e79915598f65fb0c7ee14c878af2" +dependencies = [ + "jni-sys-macros", +] + +[[package]] +name = "jni-sys-macros" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38c0b942f458fe50cdac086d2f946512305e5631e720728f2a61aabcd47a6264" +dependencies = [ + "quote", + "syn 2.0.117", +] + +[[package]] +name = "jobserver" +version = "0.1.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9afb3de4395d6b3e67a780b6de64b51c978ecf11cb9a462c66be7d4ca9039d33" +dependencies = [ + "getrandom 0.3.4", + "libc", +] + +[[package]] +name = "js-sys" +version = "0.3.95" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2964e92d1d9dc3364cae4d718d93f227e3abb088e747d92e0395bfdedf1c12ca" +dependencies = [ + "cfg-if", + "futures-util", + "once_cell", + "wasm-bindgen", +] + +[[package]] +name = "jubjub" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8499f7a74008aafbecb2a2e608a3e13e4dd3e84df198b604451efe93f2de6e61" +dependencies = [ + "bitvec 1.0.1", + "bls12_381", + "ff", + "group", + "rand_core 0.6.4", + "subtle", +] + +[[package]] +name = "k256" +version = "0.13.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6e3919bbaa2945715f0bb6d3934a173d1e9a59ac23767fbaaef277265a7411b" +dependencies = [ + "cfg-if", + "ecdsa", + "elliptic-curve", + "once_cell", + "serdect", + "sha2 0.10.9", + "signature", +] + +[[package]] +name = "keccak" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb26cec98cce3a3d96cbb7bced3c4b16e3d13f27ec56dbd62cbc8f39cfb9d653" +dependencies = [ + "cpufeatures 0.2.17", +] + +[[package]] +name = "keccak-asm" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa468878266ad91431012b3e5ef1bf9b170eab22883503a318d46857afa4579a" +dependencies = [ + "digest 0.10.7", + "sha3-asm", +] + +[[package]] +name = "lalrpop" +version = "0.20.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55cb077ad656299f160924eb2912aa147d7339ea7d69e1b5517326fdcec3c1ca" +dependencies = [ + "ascii-canvas", + "bit-set 0.5.3", + "ena", + "itertools 0.11.0", + "lalrpop-util", + "petgraph", + "regex", + "regex-syntax", + "string_cache", + "term", + "tiny-keccak", + "unicode-xid", + "walkdir", +] + +[[package]] +name = "lalrpop-util" +version = "0.20.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "507460a910eb7b32ee961886ff48539633b788a36b65692b95f225b844c82553" +dependencies = [ + "regex-automata", +] + +[[package]] +name = "lazy_static" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" +dependencies = [ + "spin", +] + +[[package]] +name = "leb128" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "884e2677b40cc8c339eaefcb701c32ef1fd2493d71118dc0ca4b6a736c93bd67" + +[[package]] +name = "leb128fmt" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09edd9e8b54e49e587e4f6295a7d29c3ea94d469cb40ab8ca70b288248a81db2" + +[[package]] +name = "libc" +version = "0.2.184" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48f5d2a454e16a5ea0f4ced81bd44e4cfc7bd3a507b61887c99fd3538b28e4af" + +[[package]] +name = "libc-print" +version = "0.1.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4a660208db49e35faf57b37484350f1a61072f2a5becf0592af6015d9ddd4b0" +dependencies = [ + "libc", +] + +[[package]] +name = "libloading" +version = "0.8.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d7c4b02199fee7c5d21a5ae7d8cfa79a6ef5bb2fc834d6e9058e89c825efdc55" +dependencies = [ + "cfg-if", + "windows-link", +] + +[[package]] +name = "libm" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6d2cec3eae94f9f509c767b45932f1ada8350c4bdb85af2fcab4a3c14807981" + +[[package]] +name = "libredox" +version = "0.1.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e02f3bb43d335493c96bf3fd3a321600bf6bd07ed34bc64118e9293bdffea46c" +dependencies = [ + "bitflags 2.11.0", + "libc", + "plain", + "redox_syscall 0.7.4", +] + +[[package]] +name = "linux-raw-sys" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32a66949e030da00e8c7d4434b251670a91556f4144941d37452769c25d58a53" + +[[package]] +name = "litemap" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92daf443525c4cce67b150400bc2316076100ce0b3686209eb8cf3c31612e6f0" + +[[package]] +name = "lock_api" +version = "0.4.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "224399e74b87b5f3557511d98dff8b14089b3dadafcab6bb93eab67d3aace965" +dependencies = [ + "scopeguard", +] + +[[package]] +name = "log" +version = "0.4.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897" + +[[package]] +name = "lru" +version = "0.16.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1dc47f592c06f33f8e3aea9591776ec7c9f9e4124778ff8a3c3b87159f7e593" +dependencies = [ + "hashbrown 0.16.1", +] + +[[package]] +name = "lru-slab" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "112b39cec0b298b6c1999fee3e31427f74f676e4cb9879ed1a121b43661a4154" + +[[package]] +name = "mach2" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d640282b302c0bb0a2a8e0233ead9035e3bed871f0b7e81fe4a1ec829765db44" +dependencies = [ + "libc", +] + +[[package]] +name = "macro-string" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b27834086c65ec3f9387b096d66e99f221cf081c2b738042aa252bcd41204e3" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "map-macro" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb950a42259642e5a3483115aca87eebed2a64886993463af9c9739c205b8d3a" + +[[package]] +name = "matchit" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47e1ffaa40ddd1f3ed91f717a33c8c0ee23fff369e3aa8772b9605cc1d22f4c3" + +[[package]] +name = "maybe-rayon" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ea1f30cedd69f0a2954655f7188c6a834246d2bcf1e315e2ac40c4b24dc9519" +dependencies = [ + "cfg-if", + "rayon", +] + +[[package]] +name = "md-5" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf" +dependencies = [ + "cfg-if", + "digest 0.10.7", +] + +[[package]] +name = "memchr" +version = "2.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8ca58f447f06ed17d5fc4043ce1b10dd205e060fb3ce5b979b8ed8e59ff3f79" + +[[package]] +name = "memmap2" +version = "0.5.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "83faa42c0a078c393f6b29d5db232d8be22776a891f8f56e5284faee4a20b327" +dependencies = [ + "libc", +] + +[[package]] +name = "memmap2" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d28bba84adfe6646737845bc5ebbfa2c08424eb1c37e94a1fd2a82adb56a872" +dependencies = [ + "libc", +] + +[[package]] +name = "memoffset" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a" +dependencies = [ + "autocfg", +] + +[[package]] +name = "memuse" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d97bbf43eb4f088f8ca469930cde17fa036207c9a5e02ccc5107c4e8b17c964" + +[[package]] +name = "mime" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" + +[[package]] +name = "minimal-lexical" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" + +[[package]] +name = "miniz_oxide" +version = "0.8.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316" +dependencies = [ + "adler2", + "simd-adler32", +] + +[[package]] +name = "mio" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50b7e5b27aa02a74bac8c3f23f448f8d87ff11f92d3aac1a6ed369ee08cc56c1" +dependencies = [ + "libc", + "wasi", + "windows-sys 0.61.2", +] + +[[package]] +name = "more-asserts" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7843ec2de400bcbc6a6328c958dc38e5359da6e93e72e37bc5246bf1ae776389" + +[[package]] +name = "mtree-tooling" +version = "0.7.3" +dependencies = [ + "blake3", + "cosmwasm-std 3.0.3-dev", + "hex", + "url", +] + +[[package]] +name = "munge" +version = "0.4.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e17401f259eba956ca16491461b6e8f72913a0a114e39736ce404410f915a0c" +dependencies = [ + "munge_macro", +] + +[[package]] +name = "munge_macro" +version = "0.4.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4568f25ccbd45ab5d5603dc34318c1ec56b117531781260002151b8530a9f931" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "native-tls" +version = "0.2.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "465500e14ea162429d264d44189adc38b199b62b1c21eea9f69e4b73cb03bbf2" +dependencies = [ + "libc", + "log", + "openssl", + "openssl-probe 0.2.1", + "openssl-sys", + "schannel", + "security-framework 3.7.0", + "security-framework-sys", + "tempfile", +] + +[[package]] +name = "new_debug_unreachable" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "650eef8c711430f1a879fdd01d4745a7deea475becfb90269c06775983bbf086" + +[[package]] +name = "nois" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fdccfb08f1341b4477f430df82e635a5f4efeeb199826d9c872e9bb27c877997" +dependencies = [ + "cosmwasm-schema 2.3.2", + "cosmwasm-std 2.3.2", + "hex", + "rand 0.8.5", + "rand_xoshiro", + "serde", + "sha2 0.10.9", + "thiserror 1.0.69", + "xxhash-rust", +] + +[[package]] +name = "nom" +version = "7.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" +dependencies = [ + "memchr", + "minimal-lexical", +] + +[[package]] +name = "nonempty" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "303e8749c804ccd6ca3b428de7fe0d86cb86bc7606bc15291f100fd487960bb8" + +[[package]] +name = "num-bigint" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9" +dependencies = [ + "num-integer", + "num-traits", + "rand 0.8.5", +] + +[[package]] +name = "num-conv" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c6673768db2d862beb9b39a78fdcb1a69439615d5794a1be50caa9bc92c81967" + +[[package]] +name = "num-integer" +version = "0.1.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" +dependencies = [ + "num-traits", +] + +[[package]] +name = "num-traits" +version = "0.2.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" +dependencies = [ + "autocfg", + "libm", +] + +[[package]] +name = "num_cpus" +version = "1.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91df4bbde75afed763b708b7eee1e8e7651e02d97f6d5dd763e89367e957b23b" +dependencies = [ + "hermit-abi", + "libc", +] + +[[package]] +name = "num_enum" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d0bca838442ec211fa11de3a8b0e0e8f3a4522575b5c4c06ed722e005036f26" +dependencies = [ + "num_enum_derive", + "rustversion", +] + +[[package]] +name = "num_enum_derive" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "680998035259dcfcafe653688bf2aa6d3e2dc05e98be6ab46afb089dc84f1df8" +dependencies = [ + "proc-macro-crate", + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "number_prefix" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3" + +[[package]] +name = "nybbles" +version = "0.4.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d49ff0c0d00d4a502b39df9af3a525e1efeb14b9dabb5bb83335284c1309210" +dependencies = [ + "alloy-rlp", + "cfg-if", + "proptest", + "ruint", + "serde", + "smallvec", +] + +[[package]] +name = "object" +version = "0.32.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441" +dependencies = [ + "crc32fast", + "flate2", + "hashbrown 0.14.5", + "indexmap 2.14.0", + "memchr", + "ruzstd", +] + +[[package]] +name = "object" +version = "0.37.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff76201f031d8863c38aa7f905eca4f53abbfa15f609db4277d44cd8938f33fe" +dependencies = [ + "memchr", +] + +[[package]] +name = "once_cell" +version = "1.21.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50" + +[[package]] +name = "once_cell_polyfill" +version = "1.70.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "384b8ab6d37215f3c5301a95a4accb5d64aa607f1fcb26a11b5303878451b4fe" + +[[package]] +name = "opaque-debug" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" + +[[package]] +name = "open-fastrlp" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "786393f80485445794f6043fd3138854dd109cc6c4bd1a6383db304c9ce9b9ce" +dependencies = [ + "arrayvec", + "auto_impl", + "bytes", + "ethereum-types", + "open-fastrlp-derive", +] + +[[package]] +name = "open-fastrlp-derive" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "003b2be5c6c53c1cfeb0a238b8a1c3915cd410feb684457a36c10038f764bb1c" +dependencies = [ + "bytes", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "openssl" +version = "0.10.76" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "951c002c75e16ea2c65b8c7e4d3d51d5530d8dfa7d060b4776828c88cfb18ecf" +dependencies = [ + "bitflags 2.11.0", + "cfg-if", + "foreign-types", + "libc", + "once_cell", + "openssl-macros", + "openssl-sys", +] + +[[package]] +name = "openssl-macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "openssl-probe" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d05e27ee213611ffe7d6348b942e8f942b37114c00cc03cec254295a4a17852e" + +[[package]] +name = "openssl-probe" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c87def4c32ab89d880effc9e097653c8da5d6ef28e6b539d313baaacfbafcbe" + +[[package]] +name = "openssl-sys" +version = "0.9.112" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57d55af3b3e226502be1526dfdba67ab0e9c96fc293004e79576b2b9edb0dbdb" +dependencies = [ + "cc", + "libc", + "pkg-config", + "vcpkg", +] + +[[package]] +name = "option-ext" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" + +[[package]] +name = "ownership-verifier" +version = "0.2.0" +dependencies = [ + "abstract-std", + "cosmwasm-schema 3.0.3-dev", + "cosmwasm-std 3.0.3-dev", + "cw-orch", + "cw-storage-plus", + "cw2", + "thiserror 1.0.69", +] + +[[package]] +name = "owo-colors" +version = "4.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d211803b9b6b570f68772237e415a029d5a50c65d382910b879fb19d3271f94d" +dependencies = [ + "supports-color 2.1.0", + "supports-color 3.0.2", +] + +[[package]] +name = "p256" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c9863ad85fa8f4460f9c48cb909d38a0d689dba1f6f6988a5e3e0d31071bcd4b" +dependencies = [ + "ecdsa", + "elliptic-curve", + "primeorder", + "sha2 0.10.9", +] + +[[package]] +name = "pairing" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81fec4625e73cf41ef4bb6846cafa6d44736525f442ba45e407c4a000a13996f" +dependencies = [ + "group", +] + +[[package]] +name = "parity-scale-codec" +version = "3.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "799781ae679d79a948e13d4824a40970bfa500058d245760dd857301059810fa" +dependencies = [ + "arrayvec", + "bitvec 1.0.1", + "byte-slice-cast", + "const_format", + "impl-trait-for-tuples", + "parity-scale-codec-derive", + "rustversion", + "serde", +] + +[[package]] +name = "parity-scale-codec-derive" +version = "3.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34b4653168b563151153c9e4c08ebed57fb8262bebfa79711552fa983c623e7a" +dependencies = [ + "proc-macro-crate", + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "parking_lot" +version = "0.12.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93857453250e3077bd71ff98b6a65ea6621a19bb0f559a85248955ac12c45a1a" +dependencies = [ + "lock_api", + "parking_lot_core", +] + +[[package]] +name = "parking_lot_core" +version = "0.9.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2621685985a2ebf1c516881c026032ac7deafcda1a2c9b7850dc81e3dfcb64c1" +dependencies = [ + "cfg-if", + "libc", + "redox_syscall 0.5.18", + "smallvec", + "windows-link", +] + +[[package]] +name = "password-hash" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7676374caaee8a325c9e7a2ae557f216c5563a171d6997b0ef8a65af35147700" +dependencies = [ + "base64ct", + "rand_core 0.6.4", + "subtle", +] + +[[package]] +name = "pasta_curves" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3e57598f73cc7e1b2ac63c79c517b31a0877cd7c402cdcaa311b5208de7a095" +dependencies = [ + "blake2b_simd", + "ff", + "group", + "lazy_static", + "rand 0.8.5", + "static_assertions", + "subtle", +] + +[[package]] +name = "paste" +version = "1.0.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57c0d7b74b563b49d38dae00a0c37d4d6de9b432382b2892f0574ddcae73fd0a" + +[[package]] +name = "path-slash" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e91099d4268b0e11973f036e885d652fb0b21fedcf69738c627f94db6a44f42" + +[[package]] +name = "pbkdf2" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "83a0692ec44e4cf1ef28ca317f14f8f07da2d95ec3fa01f86e4467b725e60917" +dependencies = [ + "digest 0.10.7", + "hmac", + "password-hash", + "sha2 0.10.9", +] + +[[package]] +name = "pbkdf2" +version = "0.12.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8ed6a7761f76e3b9f92dfb0a60a6a6477c61024b775147ff0973a02653abaf2" +dependencies = [ + "digest 0.10.7", + "hmac", +] + +[[package]] +name = "pear" +version = "0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bdeeaa00ce488657faba8ebf44ab9361f9365a97bd39ffb8a60663f57ff4b467" +dependencies = [ + "inlinable_string", + "pear_codegen", + "yansi 1.0.1", +] + +[[package]] +name = "pear_codegen" +version = "0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4bab5b985dc082b345f812b7df84e1bef27e7207b39e448439ba8bd69c93f147" +dependencies = [ + "proc-macro2", + "proc-macro2-diagnostics", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "peg" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9928cfca101b36ec5163e70049ee5368a8a1c3c6efc9ca9c5f9cc2f816152477" +dependencies = [ + "peg-macros", + "peg-runtime", +] + +[[package]] +name = "peg-macros" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6298ab04c202fa5b5d52ba03269fb7b74550b150323038878fe6c372d8280f71" +dependencies = [ + "peg-runtime", + "proc-macro2", + "quote", +] + +[[package]] +name = "peg-runtime" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "132dca9b868d927b35b5dd728167b2dee150eb1ad686008fc71ccb298b776fca" + +[[package]] +name = "percent-encoding" +version = "2.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" + +[[package]] +name = "pest" +version = "2.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0848c601009d37dfa3430c4666e147e49cdcf1b92ecd3e63657d8a5f19da662" +dependencies = [ + "memchr", + "ucd-trie", +] + +[[package]] +name = "petgraph" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4c5cc86750666a3ed20bdaf5ca2a0344f9c67674cae0515bec2da16fbaa47db" +dependencies = [ + "fixedbitset", + "indexmap 2.14.0", +] + +[[package]] +name = "phf" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fd6780a80ae0c52cc120a26a1a42c1ae51b247a253e4e06113d23d2c2edd078" +dependencies = [ + "phf_macros", + "phf_shared", +] + +[[package]] +name = "phf_generator" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c80231409c20246a13fddb31776fb942c38553c51e871f8cbd687a4cfb5843d" +dependencies = [ + "phf_shared", + "rand 0.8.5", +] + +[[package]] +name = "phf_macros" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f84ac04429c13a7ff43785d75ad27569f2951ce0ffd30a3321230db2fc727216" +dependencies = [ + "phf_generator", + "phf_shared", + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "phf_shared" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67eabc2ef2a60eb7faa00097bd1ffdb5bd28e62bf39990626a582201b7a754e5" +dependencies = [ + "siphasher", +] + +[[package]] +name = "pin-project" +version = "1.1.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1749c7ed4bcaf4c3d0a3efc28538844fb29bcdd7d2b67b2be7e20ba861ff517" +dependencies = [ + "pin-project-internal", +] + +[[package]] +name = "pin-project-internal" +version = "1.1.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9b20ed30f105399776b9c883e68e536ef602a16ae6f596d2c473591d6ad64c6" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "pin-project-lite" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a89322df9ebe1c1578d689c92318e070967d1042b512afbe49518723f4e6d5cd" + +[[package]] +name = "pin-utils" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" + +[[package]] +name = "pkcs8" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" +dependencies = [ + "der", + "spki", +] + +[[package]] +name = "pkg-config" +version = "0.3.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" + +[[package]] +name = "plain" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4596b6d070b27117e987119b4dac604f3c58cfb0b191112e24771b2faeac1a6" + +[[package]] +name = "poly1305" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8159bd90725d2df49889a078b54f4f79e87f1f8a8444194cdca81d38f5393abf" +dependencies = [ + "cpufeatures 0.2.17", + "opaque-debug", + "universal-hash", +] + +[[package]] +name = "polytone-evm" +version = "2.0.0" +dependencies = [ + "alloy", + "alloy-sol-types", + "cosmwasm-schema 3.0.3-dev", + "cosmwasm-std 3.0.3-dev", + "cw-asset", + "cw-storage-plus", + "cw-utils", + "cw2", + "foundry-compilers", + "foundry-config", + "thiserror 1.0.69", +] + +[[package]] +name = "portable-atomic" +version = "1.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c33a9471896f1c69cecef8d20cbe2f7accd12527ce60845ff44c153bb2a21b49" + +[[package]] +name = "portable-atomic-util" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "091397be61a01d4be58e7841595bd4bfedb15f1cd54977d79b8271e94ed799a3" +dependencies = [ + "portable-atomic", +] + +[[package]] +name = "poseidon-primitives" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e4aaeda7a092e21165cc5f0cbc738e72a46f31c03c3cbd87b71ceae9d2d93bc" +dependencies = [ + "bitvec 1.0.1", + "ff", + "lazy_static", + "log", + "rand 0.8.5", + "rand_xorshift 0.3.0", + "thiserror 1.0.69", +] + +[[package]] +name = "potential_utf" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0103b1cef7ec0cf76490e969665504990193874ea05c85ff9bab8b911d0a0564" +dependencies = [ + "zerovec", +] + +[[package]] +name = "powerfmt" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "439ee305def115ba05938db6eb1644ff94165c5ab5e9420d1c1bcedbba909391" + +[[package]] +name = "ppv-lite86" +version = "0.2.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9" +dependencies = [ + "zerocopy", +] + +[[package]] +name = "precomputed-hash" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c" + +[[package]] +name = "pretty_env_logger" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "865724d4dbe39d9f3dd3b52b88d859d66bcb2d6a0acfd5ea68a65fb66d4bdc1c" +dependencies = [ + "env_logger 0.10.2", + "log", +] + +[[package]] +name = "prettyplease" +version = "0.2.37" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b" +dependencies = [ + "proc-macro2", + "syn 2.0.117", +] + +[[package]] +name = "primeorder" +version = "0.13.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "353e1ca18966c16d9deb1c69278edbc5f194139612772bd9537af60ac231e1e6" +dependencies = [ + "elliptic-curve", +] + +[[package]] +name = "primitive-types" +version = "0.12.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b34d9fd68ae0b74a41b21c03c2f62847aa0ffea044eee893b4c140b37e244e2" +dependencies = [ + "fixed-hash", + "impl-codec", + "impl-rlp", + "impl-serde", + "scale-info", + "uint", +] + +[[package]] +name = "proc-macro-crate" +version = "3.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e67ba7e9b2b56446f1d419b1d807906278ffa1a658a8a5d8a39dcb1f5a78614f" +dependencies = [ + "toml_edit 0.25.11+spec-1.1.0", +] + +[[package]] +name = "proc-macro-error" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" +dependencies = [ + "proc-macro-error-attr", + "proc-macro2", + "quote", + "syn 1.0.109", + "version_check", +] + +[[package]] +name = "proc-macro-error-attr" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" +dependencies = [ + "proc-macro2", + "quote", + "version_check", +] + +[[package]] +name = "proc-macro-error-attr2" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96de42df36bb9bba5542fe9f1a054b8cc87e172759a1868aa05c1f3acc89dfc5" +dependencies = [ + "proc-macro2", + "quote", +] + +[[package]] +name = "proc-macro-error2" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11ec05c52be0a07b08061f7dd003e7d7092e0472bc731b4af7bb1ef876109802" +dependencies = [ + "proc-macro-error-attr2", + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "proc-macro2" +version = "1.0.106" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "proc-macro2-diagnostics" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af066a9c399a26e020ada66a034357a868728e72cd426f3adcd35f80d88d88c8" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", + "version_check", + "yansi 1.0.1", +] + +[[package]] +name = "proptest" +version = "1.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b45fcc2344c680f5025fe57779faef368840d0bd1f42f216291f0dc4ace4744" +dependencies = [ + "bit-set 0.8.0", + "bit-vec 0.8.0", + "bitflags 2.11.0", + "num-traits", + "rand 0.9.3", + "rand_chacha 0.9.0", + "rand_xorshift 0.4.0", + "regex-syntax", + "rusty-fork", + "tempfile", + "unarray", +] + +[[package]] +name = "prost" +version = "0.14.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2ea70524a2f82d518bce41317d0fae74151505651af45faf1ffbd6fd33f0568" +dependencies = [ + "bytes", + "prost-derive", +] + +[[package]] +name = "prost-derive" +version = "0.14.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "27c6023962132f4b30eb4c172c91ce92d933da334c59c23cddee82358ddafb0b" +dependencies = [ + "anyhow", + "itertools 0.14.0", + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "prost-types" +version = "0.14.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8991c4cbdb8bc5b11f0b074ffe286c30e523de90fee5ba8132f1399f23cb3dd7" +dependencies = [ + "prost", +] + +[[package]] +name = "ptr_meta" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0738ccf7ea06b608c10564b31debd4f5bc5e197fc8bfe088f68ae5ce81e7a4f1" +dependencies = [ + "ptr_meta_derive 0.1.4", +] + +[[package]] +name = "ptr_meta" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b9a0cf95a1196af61d4f1cbdab967179516d9a4a4312af1f31948f8f6224a79" +dependencies = [ + "ptr_meta_derive 0.3.1", +] + +[[package]] +name = "ptr_meta_derive" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16b845dbfca988fa33db069c0e230574d15a3088f147a87b64c7589eb662c9ac" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "ptr_meta_derive" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7347867d0a7e1208d93b46767be83e2b8f978c3dad35f775ac8d8847551d6fe1" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "quick-error" +version = "1.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" + +[[package]] +name = "quinn" +version = "0.11.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9e20a958963c291dc322d98411f541009df2ced7b5a4f2bd52337638cfccf20" +dependencies = [ + "bytes", + "cfg_aliases", + "pin-project-lite", + "quinn-proto", + "quinn-udp", + "rustc-hash 2.1.2", + "rustls 0.23.37", + "socket2 0.6.3", + "thiserror 2.0.18", + "tokio", + "tracing", + "web-time", +] + +[[package]] +name = "quinn-proto" +version = "0.11.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "434b42fec591c96ef50e21e886936e66d3cc3f737104fdb9b737c40ffb94c098" +dependencies = [ + "aws-lc-rs", + "bytes", + "getrandom 0.3.4", + "lru-slab", + "rand 0.9.3", + "ring", + "rustc-hash 2.1.2", + "rustls 0.23.37", + "rustls-pki-types", + "slab", + "thiserror 2.0.18", + "tinyvec", + "tracing", + "web-time", +] + +[[package]] +name = "quinn-udp" +version = "0.5.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "addec6a0dcad8a8d96a771f815f0eaf55f9d1805756410b39f5fa81332574cbd" +dependencies = [ + "cfg_aliases", + "libc", + "once_cell", + "socket2 0.6.3", + "tracing", + "windows-sys 0.60.2", +] + +[[package]] +name = "quote" +version = "1.0.45" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41f2619966050689382d2b44f664f4bc593e129785a36d6ee376ddf37259b924" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "r-efi" +version = "5.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" + +[[package]] +name = "r-efi" +version = "6.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8dcc9c7d52a811697d2151c701e0d08956f92b0e24136cf4cf27b57a6a0d9bf" + +[[package]] +name = "radium" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "def50a86306165861203e7f84ecffbbdfdea79f0e51039b33de1e952358c47ac" + +[[package]] +name = "radium" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" + +[[package]] +name = "rancor" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a063ea72381527c2a0561da9c80000ef822bdd7c3241b1cc1b12100e3df081ee" +dependencies = [ + "ptr_meta 0.3.1", +] + +[[package]] +name = "rand" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +dependencies = [ + "libc", + "rand_chacha 0.3.1", + "rand_core 0.6.4", + "serde", +] + +[[package]] +name = "rand" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ec095654a25171c2124e9e3393a930bddbffdc939556c914957a4c3e0a87166" +dependencies = [ + "rand_chacha 0.9.0", + "rand_core 0.9.5", + "serde", +] + +[[package]] +name = "rand_chacha" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" +dependencies = [ + "ppv-lite86", + "rand_core 0.6.4", +] + +[[package]] +name = "rand_chacha" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" +dependencies = [ + "ppv-lite86", + "rand_core 0.9.5", +] + +[[package]] +name = "rand_core" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" +dependencies = [ + "getrandom 0.2.17", +] + +[[package]] +name = "rand_core" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76afc826de14238e6e8c374ddcc1fa19e374fd8dd986b0d2af0d02377261d83c" +dependencies = [ + "getrandom 0.3.4", + "serde", +] + +[[package]] +name = "rand_xorshift" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d25bf25ec5ae4a3f1b92f929810509a2f53d7dca2f50b794ff57e3face536c8f" +dependencies = [ + "rand_core 0.6.4", +] + +[[package]] +name = "rand_xorshift" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "513962919efc330f829edb2535844d1b912b0fbe2ca165d613e4e8788bb05a5a" +dependencies = [ + "rand_core 0.9.5", +] + +[[package]] +name = "rand_xoshiro" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f97cdb2a36ed4183de61b2f824cc45c9f1037f28afe0a322e9fff4c108b5aaa" +dependencies = [ + "rand_core 0.6.4", +] + +[[package]] +name = "rapidhash" +version = "4.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5e48930979c155e2f33aa36ab3119b5ee81332beb6482199a8ecd6029b80b59" +dependencies = [ + "rustversion", +] + +[[package]] +name = "rayon" +version = "1.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "368f01d005bf8fd9b1206fb6fa653e6c4a81ceb1466406b81792d87c5677a58f" +dependencies = [ + "either", + "rayon-core", +] + +[[package]] +name = "rayon-core" +version = "1.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22e18b0f0062d30d4230b2e85ff77fdfe4326feb054b9783a3460d8435c8ab91" +dependencies = [ + "crossbeam-deque", + "crossbeam-utils", +] + +[[package]] +name = "reddsa" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78a5191930e84973293aa5f532b513404460cd2216c1cfb76d08748c15b40b02" +dependencies = [ + "blake2b_simd", + "byteorder", + "group", + "hex", + "jubjub", + "pasta_curves", + "rand_core 0.6.4", + "serde", + "thiserror 1.0.69", + "zeroize", +] + +[[package]] +name = "redox_syscall" +version = "0.5.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d" +dependencies = [ + "bitflags 2.11.0", +] + +[[package]] +name = "redox_syscall" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f450ad9c3b1da563fb6948a8e0fb0fb9269711c9c73d9ea1de5058c79c8d643a" +dependencies = [ + "bitflags 2.11.0", +] + +[[package]] +name = "redox_users" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba009ff324d1fc1b900bd1fdb31564febe58a8ccc8a6fdbb93b543d33b13ca43" +dependencies = [ + "getrandom 0.2.17", + "libredox", + "thiserror 1.0.69", +] + +[[package]] +name = "redox_users" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4e608c6638b9c18977b00b475ac1f28d14e84b27d8d42f70e0bf1e3dec127ac" +dependencies = [ + "getrandom 0.2.17", + "libredox", + "thiserror 2.0.18", +] + +[[package]] +name = "ref-cast" +version = "1.0.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f354300ae66f76f1c85c5f84693f0ce81d747e2c3f21a45fef496d89c960bf7d" +dependencies = [ + "ref-cast-impl", +] + +[[package]] +name = "ref-cast-impl" +version = "1.0.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b7186006dcb21920990093f30e3dea63b7d6e977bf1256be20c3563a5db070da" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "regex" +version = "1.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e10754a14b9137dd7b1e3e5b0493cc9171fdd105e0ab477f51b72e7f3ac0e276" +dependencies = [ + "aho-corasick", + "memchr", + "regex-automata", + "regex-syntax", +] + +[[package]] +name = "regex-automata" +version = "0.4.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e1dd4122fc1595e8162618945476892eefca7b88c52820e74af6262213cae8f" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax", +] + +[[package]] +name = "regex-syntax" +version = "0.8.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc897dd8d9e8bd1ed8cdad82b5966c3e0ecae09fb1907d58efaa013543185d0a" + +[[package]] +name = "region" +version = "3.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6b6ebd13bc009aef9cd476c1310d49ac354d36e240cf1bd753290f3dc7199a7" +dependencies = [ + "bitflags 1.3.2", + "libc", + "mach2", + "windows-sys 0.52.0", +] + +[[package]] +name = "rend" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cadadef317c2f20755a64d7fdc48f9e7178ee6b0e1f7fce33fa60f1d68a276e6" +dependencies = [ + "bytecheck 0.8.2", +] + +[[package]] +name = "reqwest" +version = "0.11.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd67538700a17451e7cba03ac727fb961abb7607553461627b97de0b89cf4a62" +dependencies = [ + "base64 0.21.7", + "bytes", + "encoding_rs", + "futures-core", + "futures-util", + "h2 0.3.27", + "http 0.2.12", + "http-body 0.4.6", + "hyper 0.14.32", + "hyper-rustls 0.24.2", + "hyper-tls 0.5.0", + "ipnet", + "js-sys", + "log", + "mime", + "native-tls", + "once_cell", + "percent-encoding", + "pin-project-lite", + "rustls 0.21.12", + "rustls-native-certs 0.6.3", + "rustls-pemfile", + "serde", + "serde_json", + "serde_urlencoded", + "sync_wrapper 0.1.2", + "system-configuration 0.5.1", + "tokio", + "tokio-native-tls", + "tokio-rustls 0.24.1", + "tower-service", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", + "webpki-roots 0.25.4", + "winreg", +] + +[[package]] +name = "reqwest" +version = "0.12.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eddd3ca559203180a307f12d114c268abf583f59b03cb906fd0b3ff8646c1147" +dependencies = [ + "base64 0.22.1", + "bytes", + "encoding_rs", + "futures-core", + "h2 0.4.13", + "http 1.4.0", + "http-body 1.0.1", + "http-body-util", + "hyper 1.9.0", + "hyper-rustls 0.27.7", + "hyper-tls 0.6.0", + "hyper-util", + "js-sys", + "log", + "mime", + "native-tls", + "percent-encoding", + "pin-project-lite", + "rustls-pki-types", + "serde", + "serde_json", + "serde_urlencoded", + "sync_wrapper 1.0.2", + "tokio", + "tokio-native-tls", + "tower", + "tower-http", + "tower-service", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", +] + +[[package]] +name = "reqwest" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab3f43e3283ab1488b624b44b0e988d0acea0b3214e694730a055cb6b2efa801" +dependencies = [ + "base64 0.22.1", + "bytes", + "futures-channel", + "futures-core", + "futures-util", + "http 1.4.0", + "http-body 1.0.1", + "http-body-util", + "hyper 1.9.0", + "hyper-rustls 0.27.7", + "hyper-util", + "js-sys", + "log", + "percent-encoding", + "pin-project-lite", + "quinn", + "rustls 0.23.37", + "rustls-pki-types", + "rustls-platform-verifier", + "serde", + "serde_json", + "sync_wrapper 1.0.2", + "tokio", + "tokio-rustls 0.26.4", + "tower", + "tower-http", + "tower-service", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", +] + +[[package]] +name = "revm-primitives" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51187b852d9e458816a2e19c81f1dd6c924077e1a8fccd16e4f044f865f299d7" +dependencies = [ + "alloy-primitives 0.4.2", + "alloy-rlp", + "auto_impl", + "bitflags 2.11.0", + "bitvec 1.0.1", + "enumn", + "hashbrown 0.14.5", + "hex", +] + +[[package]] +name = "rfc6979" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2" +dependencies = [ + "hmac", + "subtle", +] + +[[package]] +name = "ring" +version = "0.17.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4689e6c2294d81e88dc6261c768b63bc4fcdb852be6d1352498b114f61383b7" +dependencies = [ + "cc", + "cfg-if", + "getrandom 0.2.17", + "libc", + "untrusted", + "windows-sys 0.52.0", +] + +[[package]] +name = "ripemd" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd124222d17ad93a644ed9d011a40f4fb64aa54275c08cc216524a9ea82fb09f" +dependencies = [ + "digest 0.10.7", +] + +[[package]] +name = "rkyv" +version = "0.8.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a30e631b7f4a03dee9056b8ef6982e8ba371dd5bedb74d3ec86df4499132c70" +dependencies = [ + "bytecheck 0.8.2", + "bytes", + "hashbrown 0.16.1", + "indexmap 2.14.0", + "munge", + "ptr_meta 0.3.1", + "rancor", + "rend", + "rkyv_derive", + "tinyvec", + "uuid", +] + +[[package]] +name = "rkyv_derive" +version = "0.8.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8100bb34c0a1d0f907143db3149e6b4eea3c33b9ee8b189720168e818303986f" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "rlp" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb919243f34364b6bd2fc10ef797edbfa75f33c252e7998527479c6d6b47e1ec" +dependencies = [ + "bytes", + "rlp-derive", + "rustc-hex", +] + +[[package]] +name = "rlp-derive" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e33d7b2abe0c340d8797fe2907d3f20d3b5ea5908683618bfe80df7f621f672a" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "rmp" +version = "0.8.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ba8be72d372b2c9b35542551678538b562e7cf86c3315773cae48dfbfe7790c" +dependencies = [ + "num-traits", +] + +[[package]] +name = "rmp-serde" +version = "1.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72f81bee8c8ef9b577d1681a70ebbc962c232461e397b22c208c43c04b67a155" +dependencies = [ + "rmp", + "serde", +] + +[[package]] +name = "rs_merkle" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb09b49230ba22e8c676e7b75dfe2887dea8121f18b530ae0ba519ce442d2b21" +dependencies = [ + "sha2 0.10.9", +] + +[[package]] +name = "ruint" +version = "1.17.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c141e807189ad38a07276942c6623032d3753c8859c146104ac2e4d68865945a" +dependencies = [ + "alloy-rlp", + "ark-ff 0.3.0", + "ark-ff 0.4.2", + "ark-ff 0.5.0", + "bytes", + "fastrlp 0.3.1", + "fastrlp 0.4.0", + "num-bigint", + "num-integer", + "num-traits", + "parity-scale-codec", + "primitive-types", + "proptest", + "rand 0.8.5", + "rand 0.9.3", + "rlp", + "ruint-macro", + "serde_core", + "valuable", + "zeroize", +] + +[[package]] +name = "ruint-macro" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48fd7bd8a6377e15ad9d42a8ec25371b94ddc67abe7c8b9127bec79bebaaae18" + +[[package]] +name = "rust-embed" +version = "8.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04113cb9355a377d83f06ef1f0a45b8ab8cd7d8b1288160717d66df5c7988d27" +dependencies = [ + "rust-embed-impl", + "rust-embed-utils", + "walkdir", +] + +[[package]] +name = "rust-embed-impl" +version = "8.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da0902e4c7c8e997159ab384e6d0fc91c221375f6894346ae107f47dd0f3ccaa" +dependencies = [ + "proc-macro2", + "quote", + "rust-embed-utils", + "syn 2.0.117", + "walkdir", +] + +[[package]] +name = "rust-embed-utils" +version = "8.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5bcdef0be6fe7f6fa333b1073c949729274b05f123a0ad7efcb8efd878e5c3b1" +dependencies = [ + "globset", + "sha2 0.10.9", + "walkdir", +] + +[[package]] +name = "rustc-demangle" +version = "0.1.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b50b8869d9fc858ce7266cce0194bd74df58b9d0e3f6df3a9fc8eb470d95c09d" + +[[package]] +name = "rustc-hash" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" + +[[package]] +name = "rustc-hash" +version = "2.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94300abf3f1ae2e2b8ffb7b58043de3d399c73fa6f4b73826402a5c457614dbe" +dependencies = [ + "rand 0.8.5", +] + +[[package]] +name = "rustc-hex" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e75f6a532d0fd9f7f13144f392b6ad56a32696bfcd9c78f797f16bbb6f072d6" + +[[package]] +name = "rustc_version" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0dfe2087c51c460008730de8b57e6a320782fbfb312e1f4d520e6c6fae155ee" +dependencies = [ + "semver 0.11.0", +] + +[[package]] +name = "rustc_version" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" +dependencies = [ + "semver 1.0.28", +] + +[[package]] +name = "rustix" +version = "1.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6fe4565b9518b83ef4f91bb47ce29620ca828bd32cb7e408f0062e9930ba190" +dependencies = [ + "bitflags 2.11.0", + "errno", + "libc", + "linux-raw-sys", + "windows-sys 0.61.2", +] + +[[package]] +name = "rustls" +version = "0.21.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f56a14d1f48b391359b22f731fd4bd7e43c97f3c50eee276f3aa09c94784d3e" +dependencies = [ + "log", + "ring", + "rustls-webpki 0.101.7", + "sct", +] + +[[package]] +name = "rustls" +version = "0.23.37" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "758025cb5fccfd3bc2fd74708fd4682be41d99e5dff73c377c0646c6012c73a4" +dependencies = [ + "aws-lc-rs", + "log", + "once_cell", + "ring", + "rustls-pki-types", + "rustls-webpki 0.103.11", + "subtle", + "zeroize", +] + +[[package]] +name = "rustls-native-certs" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9aace74cb666635c918e9c12bc0d348266037aa8eb599b5cba565709a8dff00" +dependencies = [ + "openssl-probe 0.1.6", + "rustls-pemfile", + "schannel", + "security-framework 2.11.1", +] + +[[package]] +name = "rustls-native-certs" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "612460d5f7bea540c490b2b6395d8e34a953e52b491accd6c86c8164c5932a63" +dependencies = [ + "openssl-probe 0.2.1", + "rustls-pki-types", + "schannel", + "security-framework 3.7.0", +] + +[[package]] +name = "rustls-pemfile" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c" +dependencies = [ + "base64 0.21.7", +] + +[[package]] +name = "rustls-pki-types" +version = "1.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be040f8b0a225e40375822a563fa9524378b9d63112f53e19ffff34df5d33fdd" +dependencies = [ + "web-time", + "zeroize", +] + +[[package]] +name = "rustls-platform-verifier" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d99feebc72bae7ab76ba994bb5e121b8d83d910ca40b36e0921f53becc41784" +dependencies = [ + "core-foundation 0.10.1", + "core-foundation-sys", + "jni", + "log", + "once_cell", + "rustls 0.23.37", + "rustls-native-certs 0.8.3", + "rustls-platform-verifier-android", + "rustls-webpki 0.103.11", + "security-framework 3.7.0", + "security-framework-sys", + "webpki-root-certs", + "windows-sys 0.61.2", +] + +[[package]] +name = "rustls-platform-verifier-android" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f87165f0995f63a9fbeea62b64d10b4d9d8e78ec6d7d51fb2125fda7bb36788f" + +[[package]] +name = "rustls-webpki" +version = "0.101.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765" +dependencies = [ + "ring", + "untrusted", +] + +[[package]] +name = "rustls-webpki" +version = "0.103.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20a6af516fea4b20eccceaf166e8aa666ac996208e8a644ce3ef5aa783bc7cd4" +dependencies = [ + "aws-lc-rs", + "ring", + "rustls-pki-types", + "untrusted", +] + +[[package]] +name = "rustversion" +version = "1.0.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b39cdef0fa800fc44525c84ccb54a029961a8215f9619753635a9c0d2538d46d" + +[[package]] +name = "rusty-fork" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc6bf79ff24e648f6da1f8d1f011e9cac26491b619e6b9280f2b47f1774e6ee2" +dependencies = [ + "fnv", + "quick-error", + "tempfile", + "wait-timeout", +] + +[[package]] +name = "ruzstd" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "58c4eb8a81997cf040a091d1f7e1938aeab6749d3a0dfa73af43cdc32393483d" +dependencies = [ + "byteorder", + "derive_more 0.99.20", + "twox-hash", +] + +[[package]] +name = "ryu" +version = "1.0.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9774ba4a74de5f7b1c1451ed6cd5285a32eddb5cccb8cc655a4e50009e06477f" + +[[package]] +name = "same-file" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "scale-info" +version = "2.11.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "346a3b32eba2640d17a9cb5927056b08f3de90f65b72fe09402c2ad07d684d0b" +dependencies = [ + "cfg-if", + "derive_more 1.0.0", + "parity-scale-codec", + "scale-info-derive", +] + +[[package]] +name = "scale-info-derive" +version = "2.11.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c6630024bf739e2179b91fb424b28898baf819414262c5d376677dbff1fe7ebf" +dependencies = [ + "proc-macro-crate", + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "schannel" +version = "0.1.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91c1b7e4904c873ef0710c1f407dde2e6287de2bebc1bbbf7d430bb7cbffd939" +dependencies = [ + "windows-sys 0.61.2", +] + +[[package]] +name = "schemars" +version = "0.8.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fbf2ae1b8bc8e02df939598064d22402220cd5bbcca1c76f7d6a310974d5615" +dependencies = [ + "dyn-clone", + "schemars_derive 0.8.22", + "serde", + "serde_json", +] + +[[package]] +name = "schemars" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4cd191f9397d57d581cddd31014772520aa448f65ef991055d7f61582c65165f" +dependencies = [ + "dyn-clone", + "ref-cast", + "serde", + "serde_json", +] + +[[package]] +name = "schemars" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2b42f36aa1cd011945615b92222f6bf73c599a102a300334cd7f8dbeec726cc" +dependencies = [ + "dyn-clone", + "ref-cast", + "schemars_derive 1.2.1", + "serde", + "serde_json", +] + +[[package]] +name = "schemars_derive" +version = "0.8.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32e265784ad618884abaea0600a9adf15393368d840e0222d101a072f3f7534d" +dependencies = [ + "proc-macro2", + "quote", + "serde_derive_internals", + "syn 2.0.117", +] + +[[package]] +name = "schemars_derive" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d115b50f4aaeea07e79c1912f645c7513d81715d0420f8bc77a18c6260b307f" +dependencies = [ + "proc-macro2", + "quote", + "serde_derive_internals", + "syn 2.0.117", +] + +[[package]] +name = "scopeguard" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" + +[[package]] +name = "scripts" +version = "0.1.0" +dependencies = [ + "anyhow", + "base64 0.22.1", + "clap", + "cosmwasm-std 3.0.3-dev", + "cw-headstash", + "cw-headstash-manifold", + "cw-infuser-scripts", + "cw-orch", + "dotenv", + "env_logger 0.11.10", + "hex", + "ict-rs", + "rustls 0.23.37", + "serde", + "serde_json", + "shit-scripts", + "terp-account-scripts", + "tokio", + "tracing", + "zk-test-press", +] + +[[package]] +name = "sct" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414" +dependencies = [ + "ring", + "untrusted", +] + +[[package]] +name = "sec1" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc" +dependencies = [ + "base16ct", + "der", + "generic-array", + "pkcs8", + "serdect", + "subtle", + "zeroize", +] + +[[package]] +name = "secp256k1" +version = "0.27.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25996b82292a7a57ed3508f052cfff8640d38d32018784acd714758b43da9c8f" +dependencies = [ + "secp256k1-sys 0.8.2", +] + +[[package]] +name = "secp256k1" +version = "0.29.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9465315bc9d4566e1724f0fffcbcc446268cb522e60f9a27bcded6b19c108113" +dependencies = [ + "bitcoin_hashes", + "secp256k1-sys 0.10.1", +] + +[[package]] +name = "secp256k1" +version = "0.30.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b50c5943d326858130af85e049f2661ba3c78b26589b8ab98e65e80ae44a1252" +dependencies = [ + "bitcoin_hashes", + "rand 0.8.5", + "secp256k1-sys 0.10.1", + "serde", +] + +[[package]] +name = "secp256k1" +version = "0.31.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c3c81b43dc2d8877c216a3fccf76677ee1ebccd429566d3e67447290d0c42b2" +dependencies = [ + "bitcoin_hashes", + "rand 0.9.3", + "secp256k1-sys 0.11.0", +] + +[[package]] +name = "secp256k1-sys" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4473013577ec77b4ee3668179ef1186df3146e2cf2d927bd200974c6fe60fd99" +dependencies = [ + "cc", +] + +[[package]] +name = "secp256k1-sys" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4387882333d3aa8cb20530a17c69a3752e97837832f34f6dccc760e715001d9" +dependencies = [ + "cc", +] + +[[package]] +name = "secp256k1-sys" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dcb913707158fadaf0d8702c2db0e857de66eb003ccfdda5924b5f5ac98efb38" +dependencies = [ + "cc", +] + +[[package]] +name = "security-framework" +version = "2.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "897b2245f0b511c87893af39b033e5ca9cce68824c4d7e7630b5a1d339658d02" +dependencies = [ + "bitflags 2.11.0", + "core-foundation 0.9.4", + "core-foundation-sys", + "libc", + "security-framework-sys", +] + +[[package]] +name = "security-framework" +version = "3.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b7f4bc775c73d9a02cde8bf7b2ec4c9d12743edf609006c7facc23998404cd1d" +dependencies = [ + "bitflags 2.11.0", + "core-foundation 0.10.1", + "core-foundation-sys", + "libc", + "security-framework-sys", +] + +[[package]] +name = "security-framework-sys" +version = "2.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ce2691df843ecc5d231c0b14ece2acc3efb62c0a398c7e1d875f3983ce020e3" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "self_cell" +version = "1.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b12e76d157a900eb52e81bc6e9f3069344290341720e9178cde2407113ac8d89" + +[[package]] +name = "semver" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f301af10236f6df4160f7c3f04eec6dbc70ace82d23326abad5edee88801c6b6" +dependencies = [ + "semver-parser", +] + +[[package]] +name = "semver" +version = "1.0.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a7852d02fc848982e0c167ef163aaff9cd91dc640ba85e263cb1ce46fae51cd" +dependencies = [ + "serde", + "serde_core", +] + +[[package]] +name = "semver-parser" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9900206b54a3527fdc7b8a938bffd94a568bac4f4aa8113b209df75a09c0dec2" +dependencies = [ + "pest", +] + +[[package]] +name = "serde" +version = "1.0.228" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e" +dependencies = [ + "serde_core", + "serde_derive", +] + +[[package]] +name = "serde-cw-value" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75d32da6b8ed758b7d850b6c3c08f1d7df51a4df3cb201296e63e34a78e99d4" +dependencies = [ + "serde", +] + +[[package]] +name = "serde-json-wasm" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f05da0d153dd4595bdffd5099dc0e9ce425b205ee648eb93437ff7302af8c9a5" +dependencies = [ + "serde", +] + +[[package]] +name = "serde-wasm-bindgen" +version = "0.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3b4c031cd0d9014307d82b8abf653c0290fbdaeb4c02d00c63cf52f728628bf" +dependencies = [ + "js-sys", + "serde", + "wasm-bindgen", +] + +[[package]] +name = "serde_arrays" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38636132857f68ec3d5f3eb121166d2af33cb55174c4d5ff645db6165cbef0fd" +dependencies = [ + "serde", +] + +[[package]] +name = "serde_bytes" +version = "0.11.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a5d440709e79d88e51ac01c4b72fc6cb7314017bb7da9eeff678aa94c10e3ea8" +dependencies = [ + "serde", + "serde_core", +] + +[[package]] +name = "serde_core" +version = "1.0.228" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.228" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "serde_derive_internals" +version = "0.29.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "18d26a20a969b9e3fdf2fc2d9f21eda6c40e2de84c9408bb5d3b05d499aae711" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "serde_json" +version = "1.0.149" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "83fc039473c5595ace860d8c4fafa220ff474b3fc6bfdb4293327f1a37e94d86" +dependencies = [ + "itoa", + "memchr", + "serde", + "serde_core", + "zmij", +] + +[[package]] +name = "serde_regex" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8136f1a4ea815d7eac4101cfd0b16dc0cb5e1fe1b8609dfd728058656b7badf" +dependencies = [ + "regex", + "serde", +] + +[[package]] +name = "serde_repr" +version = "0.1.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "175ee3e80ae9982737ca543e96133087cbd9a485eecc3bc4de9c1a37b47ea59c" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "serde_spanned" +version = "0.6.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf41e0cfaf7226dca15e8197172c295a782857fcb97fad1808a166870dee75a3" +dependencies = [ + "serde", +] + +[[package]] +name = "serde_urlencoded" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" +dependencies = [ + "form_urlencoded", + "itoa", + "ryu", + "serde", +] + +[[package]] +name = "serde_with" +version = "3.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd5414fad8e6907dbdd5bc441a50ae8d6e26151a03b1de04d89a5576de61d01f" +dependencies = [ + "base64 0.22.1", + "chrono", + "hex", + "indexmap 1.9.3", + "indexmap 2.14.0", + "schemars 0.9.0", + "schemars 1.2.1", + "serde_core", + "serde_json", + "serde_with_macros", + "time", +] + +[[package]] +name = "serde_with_macros" +version = "3.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3db8978e608f1fe7357e211969fd9abdcae80bac1ba7a3369bb7eb6b404eb65" +dependencies = [ + "darling 0.23.0", + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "serdect" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a84f14a19e9a014bb9f4512488d9829a68e04ecabffb0f9904cd1ace94598177" +dependencies = [ + "base16ct", + "serde", +] + +[[package]] +name = "sha1" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" +dependencies = [ + "cfg-if", + "cpufeatures 0.2.17", + "digest 0.10.7", +] + +[[package]] +name = "sha2" +version = "0.9.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4d58a1e1bf39749807d89cf2d98ac2dfa0ff1cb3faa38fbb64dd88ac8013d800" +dependencies = [ + "block-buffer 0.9.0", + "cfg-if", + "cpufeatures 0.2.17", + "digest 0.9.0", + "opaque-debug", +] + +[[package]] +name = "sha2" +version = "0.10.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283" +dependencies = [ + "cfg-if", + "cpufeatures 0.2.17", + "digest 0.10.7", +] + +[[package]] +name = "sha3" +version = "0.10.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75872d278a8f37ef87fa0ddbda7802605cb18344497949862c0d4dcb291eba60" +dependencies = [ + "digest 0.10.7", + "keccak", +] + +[[package]] +name = "sha3-asm" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59cbb88c189d6352cc8ae96a39d19c7ecad8f7330b29461187f2587fdc2988d5" +dependencies = [ + "cc", + "cfg-if", +] + +[[package]] +name = "shared-buffer" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6c99835bad52957e7aa241d3975ed17c1e5f8c92026377d117a606f36b84b16" +dependencies = [ + "bytes", + "memmap2 0.6.2", +] + +[[package]] +name = "shit-scripts" +version = "0.1.0" +dependencies = [ + "cw-orch", + "cw-shit-denom", + "cw-shitstrap", + "cw-shitstrap-factory", +] + +[[package]] +name = "shlex" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" + +[[package]] +name = "shuffle" +version = "0.1.7" +source = "git+https://github.com/webmaster128/shuffle?branch=rm-getrandom#2c267f41a590c85a327c9ffd8796cf06fa5cb9e9" +dependencies = [ + "bitvec 0.17.4", + "rand 0.8.5", +] + +[[package]] +name = "signal-hook-registry" +version = "1.4.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4db69cba1110affc0e9f7bcd48bbf87b3f4fc7c61fc9155afd4c469eb3d6c1b" +dependencies = [ + "errno", + "libc", +] + +[[package]] +name = "signature" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" +dependencies = [ + "digest 0.10.7", + "rand_core 0.6.4", +] + +[[package]] +name = "simd-adler32" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "703d5c7ef118737c72f1af64ad2f6f8c5e1921f818cdcb97b8fe6fc69bf66214" + +[[package]] +name = "simdutf8" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3a9fe34e3e7a50316060351f37187a3f546bce95496156754b601a5fa71b76e" + +[[package]] +name = "sinsemilla" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d268ae0ea06faafe1662e9967cd4f9022014f5eeb798e0c302c876df8b7af9c" +dependencies = [ + "group", + "pasta_curves", + "subtle", +] + +[[package]] +name = "siphasher" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2aa850e253778c88a04c3d7323b043aeda9d3e30d5971937c1855769763678e" + +[[package]] +name = "slab" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c790de23124f9ab44544d7ac05d60440adc586479ce501c1d6d7da3cd8c9cf5" + +[[package]] +name = "smallvec" +version = "1.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" +dependencies = [ + "serde", +] + +[[package]] +name = "socket2" +version = "0.5.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e22376abed350d73dd1cd119b57ffccad95b4e585a7cda43e286245ce23c0678" +dependencies = [ + "libc", + "windows-sys 0.52.0", +] + +[[package]] +name = "socket2" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a766e1110788c36f4fa1c2b71b387a7815aa65f88ce0229841826633d93723e" +dependencies = [ + "libc", + "windows-sys 0.61.2", +] + +[[package]] +name = "solang-parser" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c425ce1c59f4b154717592f0bdf4715c3a1d55058883622d3157e1f0908a5b26" +dependencies = [ + "itertools 0.11.0", + "lalrpop", + "lalrpop-util", + "phf", + "thiserror 1.0.69", + "unicode-xid", +] + +[[package]] +name = "spin" +version = "0.9.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" + +[[package]] +name = "spki" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d" +dependencies = [ + "base64ct", + "der", +] + +[[package]] +name = "stable_deref_trait" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596" + +[[package]] +name = "static_assertions" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" + +[[package]] +name = "string_cache" +version = "0.8.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf776ba3fa74f83bf4b63c3dcbbf82173db2632ed8452cb2d891d33f459de70f" +dependencies = [ + "new_debug_unreachable", + "parking_lot", + "phf_shared", + "precomputed-hash", +] + +[[package]] +name = "strsim" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" + +[[package]] +name = "strum" +version = "0.26.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fec0f0aef304996cf250b31b5a10dee7980c85da9d759361292b8bca5a18f06" +dependencies = [ + "strum_macros 0.26.4", +] + +[[package]] +name = "strum" +version = "0.27.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af23d6f6c1a224baef9d3f61e287d2761385a5b88fdab4eb4c6f11aeb54c4bcf" +dependencies = [ + "strum_macros 0.27.2", +] + +[[package]] +name = "strum_macros" +version = "0.26.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c6bee85a5a24955dc440386795aa378cd9cf82acd5f764469152d2270e581be" +dependencies = [ + "heck", + "proc-macro2", + "quote", + "rustversion", + "syn 2.0.117", +] + +[[package]] +name = "strum_macros" +version = "0.27.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7695ce3845ea4b33927c055a39dc438a45b059f7c1b3d91d38d10355fb8cbca7" +dependencies = [ + "heck", + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "subtle" +version = "2.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" + +[[package]] +name = "subtle-encoding" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7dcb1ed7b8330c5eed5441052651dd7a12c75e2ed88f2ec024ae1fa3a5e59945" +dependencies = [ + "zeroize", +] + +[[package]] +name = "subtle-ng" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "734676eb262c623cec13c3155096e08d1f8f29adce39ba17948b18dad1e54142" + +[[package]] +name = "supports-color" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6398cde53adc3c4557306a96ce67b302968513830a77a95b2b17305d9719a89" +dependencies = [ + "is-terminal", + "is_ci", +] + +[[package]] +name = "supports-color" +version = "3.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c64fc7232dd8d2e4ac5ce4ef302b1d81e0b80d055b9d77c7c4f51f6aa4c867d6" +dependencies = [ + "is_ci", +] + +[[package]] +name = "svm-rs" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11297baafe5fa0c99d5722458eac6a5e25c01eb1b8e5cd137f54079093daa7a4" +dependencies = [ + "dirs 5.0.1", + "fs2", + "hex", + "once_cell", + "reqwest 0.11.27", + "semver 1.0.28", + "serde", + "serde_json", + "sha2 0.10.9", + "thiserror 1.0.69", + "url", + "zip 0.6.6", +] + +[[package]] +name = "svm-rs" +version = "0.5.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "230df06b463c7251e4d1b39b1b3e6f25a9b3a42630179053a1e5f919e6e15534" +dependencies = [ + "const-hex", + "dirs 6.0.0", + "reqwest 0.13.2", + "semver 1.0.28", + "serde", + "serde_json", + "sha2 0.10.9", + "tempfile", + "thiserror 2.0.18", + "url", + "zip 4.6.1", +] + +[[package]] +name = "svm-rs-builds" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa64b5e8eecd3a8af7cfc311e29db31a268a62d5953233d3e8243ec77a71c4e3" +dependencies = [ + "build_const", + "hex", + "semver 1.0.28", + "serde_json", + "svm-rs 0.3.5", +] + +[[package]] +name = "svm-rs-builds" +version = "0.5.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b271921143e5b12947a526de464db02b00363919d582a7ea712374840f928328" +dependencies = [ + "const-hex", + "semver 1.0.28", + "serde_json", + "svm-rs 0.5.24", +] + +[[package]] +name = "syn" +version = "1.0.109" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "syn" +version = "2.0.117" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e665b8803e7b1d2a727f4023456bbbbe74da67099c585258af0ad9c5013b9b99" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "syn-solidity" +version = "1.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53f425ae0b12e2f5ae65542e00898d500d4d318b4baf09f40fd0d410454e9947" +dependencies = [ + "paste", + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "sync_wrapper" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" + +[[package]] +name = "sync_wrapper" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263" +dependencies = [ + "futures-core", +] + +[[package]] +name = "synstructure" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "system-configuration" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba3a3adc5c275d719af8cb4272ea1c4a6d668a777f37e115f6d11ddbc1c8e0e7" +dependencies = [ + "bitflags 1.3.2", + "core-foundation 0.9.4", + "system-configuration-sys 0.5.0", +] + +[[package]] +name = "system-configuration" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a13f3d0daba03132c0aa9767f98351b3488edc2c100cda2d2ec2b04f3d8d3c8b" +dependencies = [ + "bitflags 2.11.0", + "core-foundation 0.9.4", + "system-configuration-sys 0.6.0", +] + +[[package]] +name = "system-configuration-sys" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75fb188eb626b924683e3b95e3a48e63551fcfb51949de2f06a9d91dbee93c9" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "system-configuration-sys" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e1d1b10ced5ca923a1fcb8d03e96b8d3268065d724548c0211415ff6ac6bac4" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "tap" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" + +[[package]] +name = "tar" +version = "0.4.45" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22692a6476a21fa75fdfc11d452fda482af402c008cdbaf3476414e122040973" +dependencies = [ + "filetime", + "libc", + "xattr", +] + +[[package]] +name = "target-lexicon" +version = "0.12.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1" + +[[package]] +name = "tempfile" +version = "3.27.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32497e9a4c7b38532efcdebeef879707aa9f794296a4f0244f6f69e9bc8574bd" +dependencies = [ + "fastrand", + "getrandom 0.4.2", + "once_cell", + "rustix", + "windows-sys 0.61.2", +] + +[[package]] +name = "tendermint" +version = "0.40.4" +dependencies = [ + "bytes", + "digest 0.10.7", + "ed25519", + "ed25519-consensus", + "flex-error", + "futures", + "k256", + "num-traits", + "once_cell", + "prost", + "ripemd", + "serde", + "serde_bytes", + "serde_json", + "serde_repr", + "sha2 0.10.9", + "signature", + "subtle", + "subtle-encoding", + "tendermint-proto", + "time", + "zeroize", +] + +[[package]] +name = "tendermint-config" +version = "0.40.4" +dependencies = [ + "flex-error", + "serde", + "serde_json", + "tendermint", + "toml 0.8.23", + "url", +] + +[[package]] +name = "tendermint-proto" +version = "0.40.4" +dependencies = [ + "bytes", + "flex-error", + "prost", + "serde", + "serde_bytes", + "subtle-encoding", + "time", +] + +[[package]] +name = "tendermint-rpc" +version = "0.40.4" +dependencies = [ + "async-trait", + "bytes", + "flex-error", + "futures", + "getrandom 0.2.17", + "peg", + "pin-project", + "rand 0.8.5", + "reqwest 0.11.27", + "semver 1.0.28", + "serde", + "serde_bytes", + "serde_json", + "subtle", + "subtle-encoding", + "tendermint", + "tendermint-config", + "tendermint-proto", + "thiserror 1.0.69", + "time", + "tokio", + "tracing", + "url", + "uuid", + "walkdir", +] + +[[package]] +name = "term" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c59df8ac95d96ff9bede18eb7300b0fda5e5d8d90960e76f8e14ae765eedbf1f" +dependencies = [ + "dirs-next", + "rustversion", + "winapi", +] + +[[package]] +name = "termcolor" +version = "1.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "terp-account" +version = "0.2.0" +dependencies = [ + "abstract-std", + "bech32", + "cosmwasm-crypto 3.0.3-dev", + "cosmwasm-schema 3.0.3-dev", + "cosmwasm-std 3.0.3-dev", + "cw-controllers", + "cw-orch", + "cw-ownable", + "cw721", + "ripemd", + "sha2 0.10.9", +] + +[[package]] +name = "terp-account-scripts" +version = "0.2.0" +dependencies = [ + "abstract-interface", + "abstract-std", + "anyhow", + "clap", + "cosmrs", + "cosmwasm-crypto 3.0.3-dev", + "cosmwasm-schema 3.0.3-dev", + "cosmwasm-std 3.0.3-dev", + "csv", + "cw-blob", + "cw-orch", + "cw-ownable", + "cw721", + "dirs 5.0.1", + "dotenv", + "ecdsa", + "env_logger 0.11.10", + "k256", + "log", + "ownership-verifier", + "pretty_env_logger", + "reqwest 0.11.27", + "ripemd", + "serde", + "serde_json", + "sha2 0.10.9", + "terp-account", + "terp-auth", + "terp721-account", + "terp721-account-manifold", + "tokio", +] + +[[package]] +name = "terp-auth" +version = "0.2.0" +dependencies = [ + "cosmwasm-schema 3.0.3-dev", + "cosmwasm-std 3.0.3-dev", + "cw-utils", + "schemars 0.8.22", + "serde", + "serde_json", + "sha2 0.10.9", + "thiserror 1.0.69", +] + +[[package]] +name = "terp721-account" +version = "0.2.0" +dependencies = [ + "cosmwasm-schema 3.0.3-dev", + "cosmwasm-std 3.0.3-dev", + "cw-controllers", + "cw-orch", + "cw-ownable", + "cw-storage-plus", + "cw-utils", + "cw2", + "cw721", + "serde", + "terp-account", + "thiserror 1.0.69", +] + +[[package]] +name = "terp721-account-manifold" +version = "0.2.0" +dependencies = [ + "cosmwasm-schema 3.0.3-dev", + "cosmwasm-std 3.0.3-dev", + "cw-controllers", + "cw-orch", + "cw-ownable", + "cw-storage-macro", + "cw-storage-plus", + "cw-utils", + "cw2", + "cw721", + "terp-account", + "terp721-account", + "thiserror 1.0.69", +] + +[[package]] +name = "thiserror" +version = "1.0.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" +dependencies = [ + "thiserror-impl 1.0.69", +] + +[[package]] +name = "thiserror" +version = "2.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4288b5bcbc7920c07a1149a35cf9590a2aa808e0bc1eafaade0b80947865fbc4" +dependencies = [ + "thiserror-impl 2.0.18", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "thiserror-impl" +version = "2.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebc4ee7f67670e9b64d05fa4253e753e016c6c95ff35b89b7941d6b856dec1d5" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "threadpool" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d050e60b33d41c19108b32cea32164033a9013fe3b46cbd4457559bfbf77afaa" +dependencies = [ + "num_cpus", +] + +[[package]] +name = "time" +version = "0.3.47" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "743bd48c283afc0388f9b8827b976905fb217ad9e647fae3a379a9283c4def2c" +dependencies = [ + "deranged", + "itoa", + "num-conv", + "powerfmt", + "serde_core", + "time-core", + "time-macros", +] + +[[package]] +name = "time-core" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7694e1cfe791f8d31026952abf09c69ca6f6fa4e1a1229e18988f06a04a12dca" + +[[package]] +name = "time-macros" +version = "0.2.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e70e4c5a0e0a8a4823ad65dfe1a6930e4f4d756dcd9dd7939022b5e8c501215" +dependencies = [ + "num-conv", + "time-core", +] + +[[package]] +name = "tiny-keccak" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c9d3793400a45f954c52e73d068316d76b6f4e36977e3fcebb13a2721e80237" +dependencies = [ + "crunchy", +] + +[[package]] +name = "tinystr" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8323304221c2a851516f22236c5722a72eaa19749016521d6dff0824447d96d" +dependencies = [ + "displaydoc", + "zerovec", +] + +[[package]] +name = "tinyvec" +version = "1.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e61e67053d25a4e82c844e8424039d9745781b3fc4f32b8d55ed50f5f667ef3" +dependencies = [ + "tinyvec_macros", +] + +[[package]] +name = "tinyvec_macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" + +[[package]] +name = "tokio" +version = "1.51.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f66bf9585cda4b724d3e78ab34b73fb2bbaba9011b9bfdf69dc836382ea13b8c" +dependencies = [ + "bytes", + "libc", + "mio", + "parking_lot", + "pin-project-lite", + "signal-hook-registry", + "socket2 0.6.3", + "tokio-macros", + "windows-sys 0.61.2", +] + +[[package]] +name = "tokio-macros" +version = "2.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "385a6cb71ab9ab790c5fe8d67f1645e6c450a7ce006a33de03daa956cf70a496" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "tokio-native-tls" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2" +dependencies = [ + "native-tls", + "tokio", +] + +[[package]] +name = "tokio-rustls" +version = "0.24.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081" +dependencies = [ + "rustls 0.21.12", + "tokio", +] + +[[package]] +name = "tokio-rustls" +version = "0.26.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1729aa945f29d91ba541258c8df89027d5792d85a8841fb65e8bf0f4ede4ef61" +dependencies = [ + "rustls 0.23.37", + "tokio", +] + +[[package]] +name = "tokio-stream" +version = "0.1.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32da49809aab5c3bc678af03902d4ccddea2a87d028d86392a4b1560c6906c70" +dependencies = [ + "futures-core", + "pin-project-lite", + "tokio", + "tokio-util", +] + +[[package]] +name = "tokio-util" +version = "0.7.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ae9cec805b01e8fc3fd2fe289f89149a9b66dd16786abd8b19cfa7b48cb0098" +dependencies = [ + "bytes", + "futures-core", + "futures-sink", + "pin-project-lite", + "tokio", +] + +[[package]] +name = "toml" +version = "0.7.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd79e69d3b627db300ff956027cc6c3798cef26d22526befdfcd12feeb6d2257" +dependencies = [ + "indexmap 2.14.0", + "serde", + "serde_spanned", + "toml_datetime 0.6.11", + "toml_edit 0.19.15", +] + +[[package]] +name = "toml" +version = "0.8.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc1beb996b9d83529a9e75c17a1686767d148d70663143c7854d8b4a09ced362" +dependencies = [ + "serde", + "serde_spanned", + "toml_datetime 0.6.11", + "toml_edit 0.22.27", +] + +[[package]] +name = "toml_datetime" +version = "0.6.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22cddaf88f4fbc13c51aebbf5f8eceb5c7c5a9da2ac40a13519eb5b0a0e8f11c" +dependencies = [ + "serde", +] + +[[package]] +name = "toml_datetime" +version = "1.1.1+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3165f65f62e28e0115a00b2ebdd37eb6f3b641855f9d636d3cd4103767159ad7" +dependencies = [ + "serde_core", +] + +[[package]] +name = "toml_edit" +version = "0.19.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" +dependencies = [ + "indexmap 2.14.0", + "serde", + "serde_spanned", + "toml_datetime 0.6.11", + "winnow 0.5.40", +] + +[[package]] +name = "toml_edit" +version = "0.22.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41fe8c660ae4257887cf66394862d21dbca4a6ddd26f04a3560410406a2f819a" +dependencies = [ + "indexmap 2.14.0", + "serde", + "serde_spanned", + "toml_datetime 0.6.11", + "toml_write", + "winnow 0.7.15", +] + +[[package]] +name = "toml_edit" +version = "0.25.11+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b59c4d22ed448339746c59b905d24568fcbb3ab65a500494f7b8c3e97739f2b" +dependencies = [ + "indexmap 2.14.0", + "toml_datetime 1.1.1+spec-1.1.0", + "toml_parser", + "winnow 1.0.1", +] + +[[package]] +name = "toml_parser" +version = "1.1.2+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2abe9b86193656635d2411dc43050282ca48aa31c2451210f4202550afb7526" +dependencies = [ + "winnow 1.0.1", +] + +[[package]] +name = "toml_write" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d99f8c9a7727884afe522e9bd5edbfc91a3312b36a77b5fb8926e4c31a41801" + +[[package]] +name = "tonic" +version = "0.14.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fec7c61a0695dc1887c1b53952990f3ad2e3a31453e1f49f10e75424943a93ec" +dependencies = [ + "async-trait", + "axum", + "base64 0.22.1", + "bytes", + "h2 0.4.13", + "http 1.4.0", + "http-body 1.0.1", + "http-body-util", + "hyper 1.9.0", + "hyper-timeout", + "hyper-util", + "percent-encoding", + "pin-project", + "rustls-native-certs 0.8.3", + "socket2 0.6.3", + "sync_wrapper 1.0.2", + "tokio", + "tokio-rustls 0.26.4", + "tokio-stream", + "tower", + "tower-layer", + "tower-service", + "tracing", +] + +[[package]] +name = "tonic-prost" +version = "0.14.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a55376a0bbaa4975a3f10d009ad763d8f4108f067c7c2e74f3001fb49778d309" +dependencies = [ + "bytes", + "prost", + "tonic", +] + +[[package]] +name = "tower" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebe5ef63511595f1344e2d5cfa636d973292adc0eec1f0ad45fae9f0851ab1d4" +dependencies = [ + "futures-core", + "futures-util", + "indexmap 2.14.0", + "pin-project-lite", + "slab", + "sync_wrapper 1.0.2", + "tokio", + "tokio-util", + "tower-layer", + "tower-service", + "tracing", +] + +[[package]] +name = "tower-http" +version = "0.6.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d4e6559d53cc268e5031cd8429d05415bc4cb4aefc4aa5d6cc35fbf5b924a1f8" +dependencies = [ + "bitflags 2.11.0", + "bytes", + "futures-util", + "http 1.4.0", + "http-body 1.0.1", + "iri-string", + "pin-project-lite", + "tower", + "tower-layer", + "tower-service", +] + +[[package]] +name = "tower-layer" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "121c2a6cda46980bb0fcd1647ffaf6cd3fc79a013de288782836f6df9c48780e" + +[[package]] +name = "tower-service" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3" + +[[package]] +name = "tracing" +version = "0.1.44" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "63e71662fa4b2a2c3a26f570f037eb95bb1f85397f3cd8076caed2f026a6d100" +dependencies = [ + "pin-project-lite", + "tracing-attributes", + "tracing-core", +] + +[[package]] +name = "tracing-attributes" +version = "0.1.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7490cfa5ec963746568740651ac6781f701c9c5ea257c58e057f3ba8cf69e8da" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "tracing-core" +version = "0.1.36" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db97caf9d906fbde555dd62fa95ddba9eecfd14cb388e4f491a66d74cd5fb79a" +dependencies = [ + "once_cell", +] + +[[package]] +name = "try-lock" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" + +[[package]] +name = "twox-hash" +version = "1.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97fee6b57c6a41524a810daee9286c02d7752c4253064d0b05472833a438f675" +dependencies = [ + "cfg-if", + "static_assertions", +] + +[[package]] +name = "typeid" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc7d623258602320d5c55d1bc22793b57daff0ec7efc270ea7d55ce1d5f5471c" + +[[package]] +name = "typenum" +version = "1.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "562d481066bde0658276a35467c4af00bdc6ee726305698a55b86e61d7ad82bb" + +[[package]] +name = "ucd-trie" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2896d95c02a80c6d6a5d6e953d479f5ddf2dfdb6a244441010e373ac0fb88971" + +[[package]] +name = "uid" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7041bb797d82c5728d3a4a40432809095d8acc59bdd9e67426a2529b3b80c9be" + +[[package]] +name = "uint" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76f64bba2c53b04fcab63c01a7d7427eadc821e3bc48c34dc9ba29c501164b52" +dependencies = [ + "byteorder", + "crunchy", + "hex", + "static_assertions", +] + +[[package]] +name = "unarray" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eaea85b334db583fe3274d12b4cd1880032beab409c0d774be044d4480ab9a94" + +[[package]] +name = "uncased" +version = "0.9.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1b88fcfe09e89d3866a5c11019378088af2d24c3fbd4f0543f96b479ec90697" +dependencies = [ + "version_check", +] + +[[package]] +name = "unicode-ident" +version = "1.0.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75" + +[[package]] +name = "unicode-normalization" +version = "0.1.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5fd4f6878c9cb28d874b009da9e8d183b5abc80117c40bbd187a1fde336be6e8" +dependencies = [ + "tinyvec", +] + +[[package]] +name = "unicode-segmentation" +version = "1.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9629274872b2bfaf8d66f5f15725007f635594914870f65218920345aa11aa8c" + +[[package]] +name = "unicode-xid" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" + +[[package]] +name = "universal-hash" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc1de2c688dc15305988b563c3854064043356019f97a4b46276fe734c4f07ea" +dependencies = [ + "crypto-common", + "subtle", +] + +[[package]] +name = "unroll" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ad948c1cb799b1a70f836077721a92a35ac177d4daddf4c20a633786d4cf618" +dependencies = [ + "quote", + "syn 1.0.109", +] + +[[package]] +name = "untrusted" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" + +[[package]] +name = "ureq" +version = "2.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02d1a66277ed75f640d608235660df48c8e3c19f3b4edb6a263315626cc3c01d" +dependencies = [ + "base64 0.22.1", + "flate2", + "log", + "once_cell", + "rustls 0.23.37", + "rustls-pki-types", + "url", + "webpki-roots 0.26.11", +] + +[[package]] +name = "url" +version = "2.5.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff67a8a4397373c3ef660812acab3268222035010ab8680ec4215f38ba3d0eed" +dependencies = [ + "form_urlencoded", + "idna", + "percent-encoding", + "serde", + "serde_derive", +] + +[[package]] +name = "utf8_iter" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" + +[[package]] +name = "utf8parse" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" + +[[package]] +name = "uuid" +version = "1.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ac8b6f42ead25368cf5b098aeb3dc8a1a2c05a3eee8a9a1a68c640edbfc79d9" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "valuable" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba73ea9cf16a25df0c8caa16c51acb937d5712a8429db78a3ee29d5dcacd3a65" + +[[package]] +name = "vcpkg" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" + +[[package]] +name = "version_check" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" + +[[package]] +name = "visibility" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d674d135b4a8c1d7e813e2f8d1c9a58308aee4a680323066025e53132218bd91" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "wait-timeout" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09ac3b126d3914f9849036f826e054cbabdc8519970b8998ddaf3b5bd3c65f11" +dependencies = [ + "libc", +] + +[[package]] +name = "walkdir" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b" +dependencies = [ + "same-file", + "winapi-util", +] + +[[package]] +name = "want" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" +dependencies = [ + "try-lock", +] + +[[package]] +name = "wasi" +version = "0.11.1+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" + +[[package]] +name = "wasip2" +version = "1.0.2+wasi-0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9517f9239f02c069db75e65f174b3da828fe5f5b945c4dd26bd25d89c03ebcf5" +dependencies = [ + "wit-bindgen", +] + +[[package]] +name = "wasip3" +version = "0.4.0+wasi-0.3.0-rc-2026-01-06" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5428f8bf88ea5ddc08faddef2ac4a67e390b88186c703ce6dbd955e1c145aca5" +dependencies = [ + "wit-bindgen", +] + +[[package]] +name = "wasm-bindgen" +version = "0.2.118" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0bf938a0bacb0469e83c1e148908bd7d5a6010354cf4fb73279b7447422e3a89" +dependencies = [ + "cfg-if", + "once_cell", + "rustversion", + "wasm-bindgen-macro", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-futures" +version = "0.4.68" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f371d383f2fb139252e0bfac3b81b265689bf45b6874af544ffa4c975ac1ebf8" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.118" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eeff24f84126c0ec2db7a449f0c2ec963c6a49efe0698c4242929da037ca28ed" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.118" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d08065faf983b2b80a79fd87d8254c409281cf7de75fc4b773019824196c904" +dependencies = [ + "bumpalo", + "proc-macro2", + "quote", + "syn 2.0.117", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.118" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5fd04d9e306f1907bd13c6361b5c6bfc7b3b3c095ed3f8a9246390f8dbdee129" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "wasm-encoder" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "990065f2fe63003fe337b932cfb5e3b80e0b4d0f5ff650e6985b1048f62c8319" +dependencies = [ + "leb128fmt", + "wasmparser 0.244.0", +] + +[[package]] +name = "wasm-metadata" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb0e353e6a2fbdc176932bbaab493762eb1255a7900fe0fea1a2f96c296cc909" +dependencies = [ + "anyhow", + "indexmap 2.14.0", + "wasm-encoder", + "wasmparser 0.244.0", +] + +[[package]] +name = "wasmer" +version = "5.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b104b9437e9100943fb01880cc210ebe250cc4aa2f7e121f068033a76d29cc4" +dependencies = [ + "bindgen", + "bytes", + "cfg-if", + "cmake", + "indexmap 2.14.0", + "js-sys", + "more-asserts", + "rustc-demangle", + "serde", + "serde-wasm-bindgen", + "shared-buffer", + "tar", + "target-lexicon", + "thiserror 1.0.69", + "tracing", + "ureq", + "wasm-bindgen", + "wasmer-compiler", + "wasmer-compiler-singlepass", + "wasmer-derive", + "wasmer-types", + "wasmer-vm", + "windows-sys 0.59.0", +] + +[[package]] +name = "wasmer-compiler" +version = "5.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9dd5c640b9e6dcc64bcad987b3133e19f1c9919a8e0c732eb11a33f650bbf54" +dependencies = [ + "backtrace", + "bytes", + "cfg-if", + "enum-iterator", + "enumset", + "leb128", + "libc", + "memmap2 0.6.2", + "more-asserts", + "object 0.32.2", + "region", + "rkyv", + "self_cell", + "shared-buffer", + "smallvec", + "target-lexicon", + "thiserror 1.0.69", + "wasmer-types", + "wasmer-vm", + "wasmparser 0.216.1", + "windows-sys 0.59.0", + "xxhash-rust", +] + +[[package]] +name = "wasmer-compiler-singlepass" +version = "5.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b95cad6ba04afeb3a339529e880c3290f8516bc6324c3082155a79f00129f5a1" +dependencies = [ + "byteorder", + "dynasm", + "dynasmrt", + "enumset", + "gimli 0.28.1", + "more-asserts", + "rayon", + "smallvec", + "wasmer-compiler", + "wasmer-types", +] + +[[package]] +name = "wasmer-derive" +version = "5.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b4c4970530327054e6effa876eadfd57079866c7429e31fde2568d6354ec61d" +dependencies = [ + "proc-macro-error2", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "wasmer-middlewares" +version = "5.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "111eee5478867554d4496f89f472499fe90469f7473dbf90e466c1deb5505293" +dependencies = [ + "wasmer", + "wasmer-types", + "wasmer-vm", +] + +[[package]] +name = "wasmer-types" +version = "5.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "554f389473d61915754b1873c5ef392a1a75b55c7d616e2a78f67c1af45785ae" +dependencies = [ + "bytecheck 0.6.12", + "enum-iterator", + "enumset", + "getrandom 0.2.17", + "hex", + "indexmap 2.14.0", + "more-asserts", + "rkyv", + "sha2 0.10.9", + "target-lexicon", + "thiserror 1.0.69", + "xxhash-rust", +] + +[[package]] +name = "wasmer-vm" +version = "5.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20b3f40e1e18d6cd040d6d1ea32affbf2f64ff059eff3b85614bccb8ff95c59b" +dependencies = [ + "backtrace", + "cc", + "cfg-if", + "corosensei", + "crossbeam-queue", + "dashmap", + "enum-iterator", + "fnv", + "indexmap 2.14.0", + "libc", + "mach2", + "memoffset", + "more-asserts", + "region", + "scopeguard", + "thiserror 1.0.69", + "wasmer-types", + "windows-sys 0.59.0", +] + +[[package]] +name = "wasmparser" +version = "0.216.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1cc7c63191ae61c70befbe6045b9be65ef2082fa89421a386ae172cb1e08e92d" +dependencies = [ + "ahash", + "bitflags 2.11.0", + "hashbrown 0.14.5", + "indexmap 2.14.0", + "semver 1.0.28", +] + +[[package]] +name = "wasmparser" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47b807c72e1bac69382b3a6fb3dbe8ea4c0ed87ff5629b8685ae6b9a611028fe" +dependencies = [ + "bitflags 2.11.0", + "hashbrown 0.15.5", + "indexmap 2.14.0", + "semver 1.0.28", +] + +[[package]] +name = "wasmtimer" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c598d6b99ea013e35844697fc4670d08339d5cda15588f193c6beedd12f644b" +dependencies = [ + "futures", + "js-sys", + "parking_lot", + "pin-utils", + "slab", + "wasm-bindgen", +] + +[[package]] +name = "web-sys" +version = "0.3.95" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4f2dfbb17949fa2088e5d39408c48368947b86f7834484e87b73de55bc14d97d" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "web-time" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a6580f308b1fad9207618087a65c04e7a10bc77e02c8e84e9b00dd4b12fa0bb" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "webpki-root-certs" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "804f18a4ac2676ffb4e8b5b5fa9ae38af06df08162314f96a68d2a363e21a8ca" +dependencies = [ + "rustls-pki-types", +] + +[[package]] +name = "webpki-roots" +version = "0.25.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f20c57d8d7db6d3b86154206ae5d8fba62dd39573114de97c2cb0578251f8e1" + +[[package]] +name = "webpki-roots" +version = "0.26.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "521bc38abb08001b01866da9f51eb7c5d647a19260e00054a8c7fd5f9e57f7a9" +dependencies = [ + "webpki-roots 1.0.6", +] + +[[package]] +name = "webpki-roots" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22cfaf3c063993ff62e73cb4311efde4db1efb31ab78a3e5c457939ad5cc0bed" +dependencies = [ + "rustls-pki-types", +] + +[[package]] +name = "whitelist-mtree" +version = "0.7.3" +dependencies = [ + "blake3", + "cosmwasm-schema 3.0.3-dev", + "cosmwasm-std 3.0.3-dev", + "cw-orch", + "cw-storage-plus", + "cw-utils", + "cw2", + "hex", + "mtree-tooling", + "rs_merkle", + "semver 1.0.28", + "thiserror 1.0.69", + "url", +] + +[[package]] +name = "winapi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + +[[package]] +name = "winapi-util" +version = "0.1.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" +dependencies = [ + "windows-sys 0.61.2", +] + +[[package]] +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + +[[package]] +name = "windows-core" +version = "0.62.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8e83a14d34d0623b51dce9581199302a221863196a1dde71a7663a4c2be9deb" +dependencies = [ + "windows-implement", + "windows-interface", + "windows-link", + "windows-result", + "windows-strings", +] + +[[package]] +name = "windows-implement" +version = "0.60.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "053e2e040ab57b9dc951b72c264860db7eb3b0200ba345b4e4c3b14f67855ddf" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "windows-interface" +version = "0.59.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f316c4a2570ba26bbec722032c4099d8c8bc095efccdc15688708623367e358" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "windows-link" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" + +[[package]] +name = "windows-registry" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02752bf7fbdcce7f2a27a742f798510f3e5ad88dbe84871e5168e2120c3d5720" +dependencies = [ + "windows-link", + "windows-result", + "windows-strings", +] + +[[package]] +name = "windows-result" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7781fa89eaf60850ac3d2da7af8e5242a5ea78d1a11c49bf2910bb5a73853eb5" +dependencies = [ + "windows-link", +] + +[[package]] +name = "windows-strings" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7837d08f69c77cf6b07689544538e017c1bfcf57e34b4c0ff58e6c2cd3b37091" +dependencies = [ + "windows-link", +] + +[[package]] +name = "windows-sys" +version = "0.45.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" +dependencies = [ + "windows-targets 0.42.2", +] + +[[package]] +name = "windows-sys" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" +dependencies = [ + "windows-targets 0.48.5", +] + +[[package]] +name = "windows-sys" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-sys" +version = "0.59.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b" +dependencies = [ + "windows-targets 0.52.6", +] + +[[package]] +name = "windows-sys" +version = "0.60.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb" +dependencies = [ + "windows-targets 0.53.5", +] + +[[package]] +name = "windows-sys" +version = "0.61.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc" +dependencies = [ + "windows-link", +] + +[[package]] +name = "windows-targets" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071" +dependencies = [ + "windows_aarch64_gnullvm 0.42.2", + "windows_aarch64_msvc 0.42.2", + "windows_i686_gnu 0.42.2", + "windows_i686_msvc 0.42.2", + "windows_x86_64_gnu 0.42.2", + "windows_x86_64_gnullvm 0.42.2", + "windows_x86_64_msvc 0.42.2", +] + +[[package]] +name = "windows-targets" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" +dependencies = [ + "windows_aarch64_gnullvm 0.48.5", + "windows_aarch64_msvc 0.48.5", + "windows_i686_gnu 0.48.5", + "windows_i686_msvc 0.48.5", + "windows_x86_64_gnu 0.48.5", + "windows_x86_64_gnullvm 0.48.5", + "windows_x86_64_msvc 0.48.5", +] + +[[package]] +name = "windows-targets" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" +dependencies = [ + "windows_aarch64_gnullvm 0.52.6", + "windows_aarch64_msvc 0.52.6", + "windows_i686_gnu 0.52.6", + "windows_i686_gnullvm 0.52.6", + "windows_i686_msvc 0.52.6", + "windows_x86_64_gnu 0.52.6", + "windows_x86_64_gnullvm 0.52.6", + "windows_x86_64_msvc 0.52.6", +] + +[[package]] +name = "windows-targets" +version = "0.53.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4945f9f551b88e0d65f3db0bc25c33b8acea4d9e41163edf90dcd0b19f9069f3" +dependencies = [ + "windows-link", + "windows_aarch64_gnullvm 0.53.1", + "windows_aarch64_msvc 0.53.1", + "windows_i686_gnu 0.53.1", + "windows_i686_gnullvm 0.53.1", + "windows_i686_msvc 0.53.1", + "windows_x86_64_gnu 0.53.1", + "windows_x86_64_gnullvm 0.53.1", + "windows_x86_64_msvc 0.53.1", +] + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9d8416fa8b42f5c947f8482c43e7d89e73a173cead56d044f6a56104a6d1b53" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9d782e804c2f632e395708e99a94275910eb9100b2114651e04744e9b125006" + +[[package]] +name = "windows_i686_gnu" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" + +[[package]] +name = "windows_i686_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" + +[[package]] +name = "windows_i686_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" + +[[package]] +name = "windows_i686_gnu" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "960e6da069d81e09becb0ca57a65220ddff016ff2d6af6a223cf372a506593a3" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa7359d10048f68ab8b09fa71c3daccfb0e9b559aed648a8f95469c27057180c" + +[[package]] +name = "windows_i686_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" + +[[package]] +name = "windows_i686_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" + +[[package]] +name = "windows_i686_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" + +[[package]] +name = "windows_i686_msvc" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e7ac75179f18232fe9c285163565a57ef8d3c89254a30685b57d83a38d326c2" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c3842cdd74a865a8066ab39c8a7a473c0778a3f29370b5fd6b4b9aa7df4a499" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ffa179e2d07eee8ad8f57493436566c7cc30ac536a3379fdf008f47f6bb7ae1" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.53.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6bbff5f0aada427a1e5a6da5f1f98158182f26556f345ac9e04d36d0ebed650" + +[[package]] +name = "winnow" +version = "0.5.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f593a95398737aeed53e489c785df13f3618e41dbcd6718c6addbf1395aa6876" +dependencies = [ + "memchr", +] + +[[package]] +name = "winnow" +version = "0.6.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e90edd2ac1aa278a5c4599b1d89cf03074b610800f866d4026dc199d7929a28" +dependencies = [ + "memchr", +] + +[[package]] +name = "winnow" +version = "0.7.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df79d97927682d2fd8adb29682d1140b343be4ac0f08fd68b7765d9c059d3945" +dependencies = [ + "memchr", +] + +[[package]] +name = "winnow" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09dac053f1cd375980747450bfc7250c264eaae0583872e845c0c7cd578872b5" +dependencies = [ + "memchr", +] + +[[package]] +name = "winreg" +version = "0.50.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "524e57b2c537c0f9b1e69f1965311ec12182b4122e45035b1508cd24d2adadb1" +dependencies = [ + "cfg-if", + "windows-sys 0.48.0", +] + +[[package]] +name = "wit-bindgen" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d7249219f66ced02969388cf2bb044a09756a083d0fab1e566056b04d9fbcaa5" +dependencies = [ + "wit-bindgen-rust-macro", +] + +[[package]] +name = "wit-bindgen-core" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea61de684c3ea68cb082b7a88508a8b27fcc8b797d738bfc99a82facf1d752dc" +dependencies = [ + "anyhow", + "heck", + "wit-parser", +] + +[[package]] +name = "wit-bindgen-rust" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b7c566e0f4b284dd6561c786d9cb0142da491f46a9fbed79ea69cdad5db17f21" +dependencies = [ + "anyhow", + "heck", + "indexmap 2.14.0", + "prettyplease", + "syn 2.0.117", + "wasm-metadata", + "wit-bindgen-core", + "wit-component", +] + +[[package]] +name = "wit-bindgen-rust-macro" +version = "0.51.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c0f9bfd77e6a48eccf51359e3ae77140a7f50b1e2ebfe62422d8afdaffab17a" +dependencies = [ + "anyhow", + "prettyplease", + "proc-macro2", + "quote", + "syn 2.0.117", + "wit-bindgen-core", + "wit-bindgen-rust", +] + +[[package]] +name = "wit-component" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d66ea20e9553b30172b5e831994e35fbde2d165325bec84fc43dbf6f4eb9cb2" +dependencies = [ + "anyhow", + "bitflags 2.11.0", + "indexmap 2.14.0", + "log", + "serde", + "serde_derive", + "serde_json", + "wasm-encoder", + "wasm-metadata", + "wasmparser 0.244.0", + "wit-parser", +] + +[[package]] +name = "wit-parser" +version = "0.244.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ecc8ac4bc1dc3381b7f59c34f00b67e18f910c2c0f50015669dde7def656a736" +dependencies = [ + "anyhow", + "id-arena", + "indexmap 2.14.0", + "log", + "semver 1.0.28", + "serde", + "serde_derive", + "serde_json", + "unicode-xid", + "wasmparser 0.244.0", +] + +[[package]] +name = "writeable" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ffae5123b2d3fc086436f8834ae3ab053a283cfac8fe0a0b8eaae044768a4c4" + +[[package]] +name = "wyz" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05f360fc0b24296329c78fda852a1e9ae82de9cf7b27dae4b7f62f118f77b9ed" +dependencies = [ + "tap", +] + +[[package]] +name = "xattr" +version = "1.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32e45ad4206f6d2479085147f02bc2ef834ac85886624a23575ae137c8aa8156" +dependencies = [ + "libc", + "rustix", +] + +[[package]] +name = "xxhash-rust" +version = "0.8.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fdd20c5420375476fbd4394763288da7eb0cc0b8c11deed431a91562af7335d3" + +[[package]] +name = "yansi" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09041cd90cf85f7f8b2df60c646f853b7f535ce68f85244eb6731cf89fa498ec" + +[[package]] +name = "yansi" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfe53a6657fd280eaa890a3bc59152892ffa3e30101319d168b781ed6529b049" + +[[package]] +name = "yoke" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "abe8c5fda708d9ca3df187cae8bfb9ceda00dd96231bed36e445a1a48e66f9ca" +dependencies = [ + "stable_deref_trait", + "yoke-derive", + "zerofrom", +] + +[[package]] +name = "yoke-derive" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "de844c262c8848816172cef550288e7dc6c7b7814b4ee56b3e1553f275f1858e" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", + "synstructure", +] + +[[package]] +name = "zcash_note_encryption" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77efec759c3798b6e4d829fcc762070d9b229b0f13338c40bf993b7b609c2272" +dependencies = [ + "chacha20", + "chacha20poly1305", + "cipher", + "rand_core 0.6.4", + "subtle", +] + +[[package]] +name = "zcash_spec" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ded3f58b93486aa79b85acba1001f5298f27a46489859934954d262533ee2915" +dependencies = [ + "blake2b_simd", +] + +[[package]] +name = "zerocopy" +version = "0.8.48" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eed437bf9d6692032087e337407a86f04cd8d6a16a37199ed57949d415bd68e9" +dependencies = [ + "zerocopy-derive", +] + +[[package]] +name = "zerocopy-derive" +version = "0.8.48" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70e3cd084b1788766f53af483dd21f93881ff30d7320490ec3ef7526d203bad4" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "zerofrom" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69faa1f2a1ea75661980b013019ed6687ed0e83d069bc1114e2cc74c6c04c4df" +dependencies = [ + "zerofrom-derive", +] + +[[package]] +name = "zerofrom-derive" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11532158c46691caf0f2593ea8358fed6bbf68a0315e80aae9bd41fbade684a1" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", + "synstructure", +] + +[[package]] +name = "zeroize" +version = "1.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b97154e67e32c85465826e8bcc1c59429aaaf107c1e4a9e53c8d8ccd5eff88d0" +dependencies = [ + "zeroize_derive", +] + +[[package]] +name = "zeroize_derive" +version = "1.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85a5b4158499876c763cb03bc4e49185d3cccbabb15b33c627f7884f43db852e" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "zerotrie" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f9152d31db0792fa83f70fb2f83148effb5c1f5b8c7686c3459e361d9bc20bf" +dependencies = [ + "displaydoc", + "yoke", + "zerofrom", +] + +[[package]] +name = "zerovec" +version = "0.11.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90f911cbc359ab6af17377d242225f4d75119aec87ea711a880987b18cd7b239" +dependencies = [ + "yoke", + "zerofrom", + "zerovec-derive", +] + +[[package]] +name = "zerovec-derive" +version = "0.11.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "625dc425cab0dca6dc3c3319506e6593dcb08a9f387ea3b284dbd52a92c40555" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.117", +] + +[[package]] +name = "zip" +version = "0.6.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "760394e246e4c28189f19d488c058bf16f564016aefac5d32bb1f3b51d5e9261" +dependencies = [ + "aes", + "byteorder", + "bzip2", + "constant_time_eq 0.1.5", + "crc32fast", + "crossbeam-utils", + "flate2", + "hmac", + "pbkdf2 0.11.0", + "sha1", + "time", + "zstd", +] + +[[package]] +name = "zip" +version = "4.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "caa8cd6af31c3b31c6631b8f483848b91589021b28fffe50adada48d4f4d2ed1" +dependencies = [ + "arbitrary", + "crc32fast", + "flate2", + "indexmap 2.14.0", + "memchr", + "zopfli", +] + +[[package]] +name = "zip32" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b64bf5186a8916f7a48f2a98ef599bf9c099e2458b36b819e393db1c0e768c4b" +dependencies = [ + "bech32", + "blake2b_simd", + "memuse", + "subtle", + "zcash_spec", +] + +[[package]] +name = "zk-cosmwasm" +version = "3.0.3-dev" +dependencies = [ + "base64 0.22.1", + "cosmwasm-vm-derive", + "group", + "halo2_gadgets", + "halo2_proofs", + "hex", + "pasta_curves", + "rand 0.8.5", + "rand_core 0.6.4", + "serde", + "serde_json", + "thiserror 1.0.69", + "wasmer", + "wasmer-middlewares", + "wasmer-types", +] + +[[package]] +name = "zk-headstash" +version = "0.1.0" +dependencies = [ + "aes", + "base64 0.22.1", + "bitvec 1.0.1", + "blake2b_simd", + "blake3", + "core2", + "cosmwasm-std 3.0.3-dev", + "ff", + "fpe", + "getset", + "group", + "halo2-base", + "halo2_gadgets", + "halo2_proofs", + "headstash-randomness", + "hex", + "incrementalmerkletree", + "lazy_static", + "memuse", + "nonempty", + "num-bigint", + "num-traits", + "pasta_curves", + "prost", + "rand 0.8.5", + "rand_core 0.6.4", + "rayon", + "reddsa", + "secp256k1 0.31.1", + "serde", + "serde_json", + "sinsemilla", + "subtle", + "tonic", + "tonic-prost", + "tracing", + "visibility", + "zcash_note_encryption", + "zcash_spec", + "zip32", + "zk-cosmwasm", +] + +[[package]] +name = "zk-test-press" +version = "0.1.0" +dependencies = [ + "async-trait", + "base64 0.22.1", + "blake3", + "cosmwasm-std 3.0.3-dev", + "cw-headstash", + "cw-headstash-manifold", + "cw-orch", + "ff", + "group", + "halo2-base", + "halo2_gadgets", + "halo2_proofs", + "headstash-randomness", + "hex", + "ict-rs", + "pasta_curves", + "rand 0.8.5", + "rand_core 0.6.4", + "schemars 0.8.22", + "secp256k1 0.31.1", + "serde", + "serde_json", + "sinsemilla", + "thiserror 2.0.18", + "zk-cosmwasm", + "zk-headstash", +] + +[[package]] +name = "zlib-rs" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3be3d40e40a133f9c916ee3f9f4fa2d9d63435b5fbe1bfc6d9dae0aa0ada1513" + +[[package]] +name = "zmij" +version = "1.0.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8848ee67ecc8aedbaf3e4122217aff892639231befc6a1b58d29fff4c2cabaa" + +[[package]] +name = "zopfli" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f05cd8797d63865425ff89b5c4a48804f35ba0ce8d125800027ad6017d2b5249" +dependencies = [ + "bumpalo", + "crc32fast", + "log", + "simd-adler32", +] + +[[package]] +name = "zstd" +version = "0.11.2+zstd.1.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20cc960326ece64f010d2d2107537f26dc589a6573a316bd5b1dba685fa5fde4" +dependencies = [ + "zstd-safe", +] + +[[package]] +name = "zstd-safe" +version = "5.0.2+zstd.1.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d2a5585e04f9eea4b2a3d1eca508c4dee9592a89ef6f450c11719da0726f4db" +dependencies = [ + "libc", + "zstd-sys", +] + +[[package]] +name = "zstd-sys" +version = "2.0.16+zstd.1.5.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91e19ebc2adc8f83e43039e79776e3fda8ca919132d68a1fed6a5faca2683748" +dependencies = [ + "cc", + "pkg-config", +] diff --git a/scripts/Cargo.toml b/scripts/Cargo.toml new file mode 100644 index 0000000..5891d83 --- /dev/null +++ b/scripts/Cargo.toml @@ -0,0 +1,49 @@ + +[package] +name = "scripts" +version.workspace = true +edition.workspace = true +[workspace] +members = ["."] +resolver = "2" + +[workspace.package] +version = "0.1.0" +edition = "2021" + +[features] +default = [] +# dao = ["dep:dao-testing"] + +[dependencies] +cosmwasm-std = { path = "../../../cosmwasm/packages/std" } +# Chain orchestration +cw-orch = { path = "../../../cw-orchestrator/cw-orch", features = ["daemon"] } + +# Sub-suite crates +cw-headstash = { path = "../../../headstash/contract/cw-headstash", features = ["interface"] } +cw-headstash-manifold = { path = "../../../headstash/contract/manifold", features = ["interface"] } +cw-infuser-scripts = { path = "../../../cw-infuser/scripts" } +# dao-testing = { path = "../../../dao-contracts/packages/dao-testing", optional = true } +shit-scripts = { path = "../../../shitstrap/scripts/shit-scripts" } +terp-account-scripts = { path = "../../../terp-account-billboards/scripts" } +zk-test-press = { path = "../../../headstash/test-press", features = ["interface"] } + +# Container lifecycle +ict-rs = { path = "../../../ict-rs/ict-rs", features = ["docker", "terp", "testing"] } + +# CLI + runtime +anyhow = "1.0" +base64 = "0.22" +clap = { version = "4", features = ["derive"] } +dotenv = "0.15" +env_logger = "0.11" +hex = "0.4" +rustls = { version = "0.23", features = ["ring"] } +serde = { version = "1.0", features = ["derive"] } +serde_json = "1.0" +tokio = { version = "1", features = ["full"] } +tracing = "0.1" + + +# Override transitive git deps from zk-cosmwasm with local paths diff --git a/scripts/lint.mjs b/scripts/lint.mjs new file mode 100644 index 0000000..8cfebbc --- /dev/null +++ b/scripts/lint.mjs @@ -0,0 +1,15 @@ +import { ESLint } from 'eslint'; + +const eslint = new ESLint(); + +const results = await eslint.lintFiles(['lib/**/*.{js,html}', '*.html']); + +if (results.length > 0) { + results.forEach(result => { + if (result.errorCount > 0 || result.warningCount > 0) { + console.log(result.messages); + } + }); +} else { + console.log('No lintable files found'); +} \ No newline at end of file diff --git a/scripts/serve.py b/scripts/serve.py new file mode 100644 index 0000000..0a5e35d --- /dev/null +++ b/scripts/serve.py @@ -0,0 +1,121 @@ +#!/usr/bin/env python3 +"""Dev server with clean URL routing matching nginx config.""" +import http.server +import os +import urllib.request +import urllib.error + +PORT = int(os.environ.get("WEBSITE_PORT", "3000")) +ROOT = os.path.abspath(os.path.join(os.path.dirname(__file__), '..', '..')) +RPC_PROXY = os.environ.get("CHAIN_RPC", "http://localhost:26657") # proxied at /rpc to avoid CORS in dev + +# Auto-discover routes from pages/*.html +# /mint -> pages/mint.html, /no-rick -> pages/no-rick.html, etc. +ROUTES = {} +_pages_dir = os.path.join(ROOT, "pages") +if os.path.isdir(_pages_dir): + for f in os.listdir(_pages_dir): + if f.endswith(".html") and f != "index.html": + slug = "/" + f[:-5] # strip .html -> /mint, /no-rick, etc. + ROUTES[slug] = f + +# Suppress noisy auto-requests that are never meaningful in dev +SILENT_404 = { + "/.well-known/appspecific/com.chrome.devtools.json", +} + +_HOP_HEADERS = {"host", "transfer-encoding", "content-length"} + + +def _proxy_rpc(handler, method): + """Forward /rpc[/path][?query] → RPC_PROXY[/path][?query].""" + suffix = handler.path[4:] # strip /rpc prefix + url = RPC_PROXY + (suffix or "/") + length = int(handler.headers.get("Content-Length", 0)) + body = handler.rfile.read(length) if length else None + req = urllib.request.Request(url, data=body, method=method) + for k, v in handler.headers.items(): + if k.lower() not in _HOP_HEADERS: + req.add_unredirected_header(k, v) + try: + with urllib.request.urlopen(req, timeout=30) as r: + raw = r.read() + handler.send_response(r.status) + for k, v in r.headers.items(): + if k.lower() not in _HOP_HEADERS: + handler.send_header(k, v) + handler.send_header("Content-Length", str(len(raw))) + handler.end_headers() + handler.wfile.write(raw) + except urllib.error.HTTPError as e: + raw = e.read() + handler.send_response(e.code) + handler.send_header("Content-Type", "application/json") + handler.send_header("Content-Length", str(len(raw))) + handler.end_headers() + handler.wfile.write(raw) + except Exception as exc: + handler.send_error(502, f"RPC proxy: {exc}") + + +class Handler(http.server.SimpleHTTPRequestHandler): + def __init__(self, *args, **kwargs): + super().__init__(*args, directory=ROOT, **kwargs) + + def _is_rpc(self): + return self.path == "/rpc" or self.path.startswith(("/rpc/", "/rpc?")) + + def do_GET(self): + if self._is_rpc(): + _proxy_rpc(self, "GET") + return + # Silence known browser noise with a quiet 204 + if self.path in SILENT_404: + self.send_response(204) + self.end_headers() + return + # Strip query string for routing + clean = self.path.split("?")[0] + # Clean-URL routing: /mint -> pages/mint.html + if clean in ROUTES: + self.path = "/pages/" + ROUTES[clean] + elif clean == "/": + self.path = "/pages/index.html" + # Direct .html requests: /foo.html -> /pages/foo.html + elif clean.endswith(".html") and not clean.startswith("/pages/"): + self.path = "/pages" + clean + super().do_GET() + + def do_POST(self): + if self._is_rpc(): + _proxy_rpc(self, "POST") + return + self.send_error(405) + + def guess_type(self, path): + if path.endswith(".wasm"): + return "application/wasm" + if path.endswith(".js"): + return "application/javascript; charset=utf-8" + return super().guess_type(path) + + def end_headers(self): + # Disable caching for HTML so changes are always picked up immediately + if self.path.endswith(".html"): + self.send_header("Cache-Control", "no-cache, no-store, must-revalidate") + self.send_header("Pragma", "no-cache") + super().end_headers() + + def log_message(self, format, *args): + # Suppress 204 responses from the silent-404 list to keep output clean + if args and str(args[1]) == "204": + return + super().log_message(format, *args) + + +print(f"Serving at http://localhost:{PORT}") +print(f" http://localhost:{PORT}/ -> index.html") +for slug in sorted(ROUTES): + print(f" http://localhost:{PORT}{slug:<10} -> {ROUTES[slug]}") +print(f" http://localhost:{PORT}/rpc -> {RPC_PROXY} (CORS proxy)") +http.server.ThreadingHTTPServer(("127.0.0.1", PORT), Handler).serve_forever() diff --git a/scripts/sh/bootstrap_local.sh b/scripts/sh/bootstrap_local.sh new file mode 100755 index 0000000..2d67811 --- /dev/null +++ b/scripts/sh/bootstrap_local.sh @@ -0,0 +1,112 @@ +#!/bin/bash +# Custom localterp bootstrap — extends the stock bootstrap with uthiol denom. +# +# Differences from upstream /terp-core/docker/localterp/bootstrap.sh: +# 1. Genesis accounts receive BOTH uterp AND uthiol +# 2. Faucet DENOM defaults to uterp (fixes upstream uscrt default) +# 3. gRPC is explicitly enabled on 0.0.0.0:9090 + +set -x +set -oe errexit + +ENABLE_FAUCET=${1:-"true"} +custom_script_path=${POST_INIT_SCRIPT:-"/root/post_init.sh"} + +file=~/.terp/config/genesis.json +if [ ! -e "$file" ]; then + rm -rf ~/.terp/* + + chain_id=${CHAINID:-120u-1} + LOG_LEVEL=${LOG_LEVEL:-INFO} + fast_blocks=${FAST_BLOCKS:-"true"} + + terpd config chain-id "$chain_id" + terpd config keyring-backend test + + terpd init banana --chain-id "$chain_id" + + # Patch genesis: staking, governance, mint, tokenfactory params + jq ' + .app_state.staking.params.unbonding_time = "90s" | + .app_state.gov.params.voting_period = "90s" | + .app_state.gov.params.expedited_voting_period = "15s" | + .app_state.gov.deposit_params.min_deposit[0].denom = "uterp" | + .app_state.gov.params.min_deposit[0].denom = "uterp" | + .app_state.gov.params.expedited_min_deposit[0].denom = "uterp" | + .app_state.mint.params.mint_denom = "uterp" | + .app_state.staking.params.bond_denom = "uterp" | + .app_state.tokenfactory.params.denom_creation_fee = [{"denom":"uterp","amount":"1000000"}] + ' ~/.terp/config/genesis.json >~/.terp/config/genesis.json.tmp && mv ~/.terp/config/genesis.json{.tmp,} + + # Fast blocks for local testing (200ms rounds) + if [ "${fast_blocks}" = "true" ]; then + sed -E -i '/timeout_(propose|prevote|precommit|commit)/s/[0-9]+m?s/200ms/' ~/.terp/config/config.toml + fi + + # Run custom post-init script if mounted + if [ ! -e "$custom_script_path" ]; then + echo "Custom script not found. Continuing..." + else + echo "Running custom post init script..." + bash "$custom_script_path" + echo "Done running custom script!" + fi + + # ─── Accounts ────────────────────────────────────────────────── + v_mnemonic="push certain add next grape invite tobacco bubble text romance again lava crater pill genius vital fresh guard great patch knee series era tonight" + a_mnemonic="grant rice replace explain federal release fix clever romance raise often wild taxi quarter soccer fiber love must tape steak together observe swap guitar" + b_mnemonic="jelly shadow frog dirt dragon use armed praise universe win jungle close inmate rain oil canvas beauty pioneer chef soccer icon dizzy thunder meadow" + c_mnemonic="chair love bleak wonder skirt permit say assist aunt credit roast size obtain minute throw sand usual age smart exact enough room shadow charge" + d_mnemonic="word twist toast cloth movie predict advance crumble escape whale sail such angry muffin balcony keen move employ cook valve hurt glimpse breeze brick" + + echo "$v_mnemonic" | terpd keys add validator --recover + echo "$a_mnemonic" | terpd keys add a --recover + echo "$b_mnemonic" | terpd keys add b --recover + echo "$c_mnemonic" | terpd keys add c --recover + echo "$d_mnemonic" | terpd keys add d --recover + + terpd keys list --output json | jq + + # Fund each account with BOTH uterp (gas/staking) AND uthiol (contract fees) + ico=1000000000000000000 + for acct in validator a b c d; do + terpd genesis add-genesis-account "$acct" "${ico}uterp,${ico}uthiol" + done + + # Gentx — validator stakes uterp + terpd genesis gentx validator ${ico::-1}uterp --chain-id "$chain_id" + + terpd genesis collect-gentxs + terpd genesis validate-genesis + + # ─── Node config ─────────────────────────────────────────────── + # LCD / REST API + perl -i -pe 's/localhost/0.0.0.0/' ~/.terp/config/app.toml + perl -i -pe 's;address = "tcp://0.0.0.0:1317";address = "tcp://0.0.0.0:1316";' ~/.terp/config/app.toml + perl -i -pe 's/enable-unsafe-cors = false/enable-unsafe-cors = true/' ~/.terp/config/app.toml + perl -i -pe 's/concurrency = false/concurrency = true/' ~/.terp/config/app.toml + + # gRPC — ensure enabled on 0.0.0.0:9090 + perl -i -pe 's/^(address = ")(0\.0\.0\.0:9090)(")/$1$2$3/' ~/.terp/config/app.toml + + # Connection limits + perl -i -pe 's/max_subscription_clients.+/max_subscription_clients = 100/' ~/.terp/config/config.toml + perl -i -pe 's/max_subscriptions_per_client.+/max_subscriptions_per_client = 50/' ~/.terp/config/config.toml +fi + +# ─── Start services ──────────────────────────────────────────── +# CORS proxy: REST on internal :1316 proxied to external :1317 +setsid lcp --proxyUrl http://localhost:1316 --port 1317 --proxyPartial '' & + +if [ "${ENABLE_FAUCET}" = "true" ]; then + # Fix upstream faucet default: use uterp not uscrt + export DENOM="${DENOM:-uterp}" + setsid node faucet_server.js & + cp "$(which terpd)" "$(dirname "$(which terpd)")"/terpd +fi + +if [ "${SLEEP}" = "true" ]; then + sleep infinity +fi + +RUST_BACKTRACE=1 terpd start --rpc.laddr tcp://0.0.0.0:26657 --log_level "${LOG_LEVEL}" diff --git a/scripts/sh/build-config.sh b/scripts/sh/build-config.sh new file mode 100755 index 0000000..4e8dddd --- /dev/null +++ b/scripts/sh/build-config.sh @@ -0,0 +1,107 @@ +#!/usr/bin/env bash +# ═══════════════════════════════════════════════════════════════════ +# build-config.sh — Compute SHA-256 checksums into public/config.json +# +# Hashes all installer scripts and lib bundles, writing the results +# into the checksums section of config.json. Run before docker build +# so the served config includes integrity hashes for client-side +# verification. +# +# Usage: +# ./scripts/build-config.sh # compute & write checksums +# ./scripts/build-config.sh --verify # check files match existing checksums +# ═══════════════════════════════════════════════════════════════════ +set -euo pipefail + +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +WEBSITE_DIR="$(cd "$SCRIPT_DIR/../.." && pwd)" +CONFIG="$WEBSITE_DIR/public/config.json" + +GREEN='\033[0;32m' +RED='\033[0;31m' +YELLOW='\033[1;33m' +NC='\033[0m' + +if [ ! -f "$CONFIG" ]; then + echo -e "${RED}[x]${NC} $CONFIG not found" >&2 + exit 1 +fi + +if ! command -v jq &>/dev/null; then + echo -e "${RED}[x]${NC} jq is required: brew install jq" >&2 + exit 1 +fi + +# ─── SHA-256 portable helper ────────────────────────────────────── +sha256_file() { + if command -v shasum &>/dev/null; then + shasum -a 256 "$1" | cut -d' ' -f1 + elif command -v sha256sum &>/dev/null; then + sha256sum "$1" | cut -d' ' -f1 + else + echo -e "${RED}[x]${NC} No sha256 tool found" >&2 + exit 1 + fi +} + +# ─── Verify mode ───────────────────────────────────────────────── +if [ "${1:-}" = "--verify" ]; then + ok=0; fail=0; skip=0 + for section in installers bundles; do + keys=$(jq -r ".checksums.$section | keys[]" "$CONFIG") + for key in $keys; do + filepath="$WEBSITE_DIR/$key" + expected=$(jq -r ".checksums.$section[\"$key\"]" "$CONFIG") + if [ ! -f "$filepath" ]; then + echo -e " ${YELLOW}SKIP${NC} $key (file not found)" + skip=$((skip + 1)) + continue + fi + if [ -z "$expected" ]; then + echo -e " ${YELLOW}SKIP${NC} $key (no checksum recorded)" + skip=$((skip + 1)) + continue + fi + actual=$(sha256_file "$filepath") + if [ "$actual" = "$expected" ]; then + echo -e " ${GREEN}OK${NC} $key" + ok=$((ok + 1)) + else + echo -e " ${RED}FAIL${NC} $key" + echo " expected: $expected" + echo " actual: $actual" + fail=$((fail + 1)) + fi + done + done + echo "" + echo "$ok ok, $fail failed, $skip skipped" + [ "$fail" -eq 0 ] + exit +fi + +# ─── Build mode: compute checksums ────────────────────────────── +echo -e "${GREEN}[+]${NC} Computing checksums..." + +tmp=$(mktemp) +cp "$CONFIG" "$tmp" + +for section in installers bundles; do + keys=$(jq -r ".checksums.$section | keys[]" "$CONFIG") + for key in $keys; do + filepath="$WEBSITE_DIR/$key" + if [ ! -f "$filepath" ]; then + echo -e " ${YELLOW}SKIP${NC} $key (not found)" + continue + fi + hash=$(sha256_file "$filepath") + tmp2=$(mktemp) + jq ".checksums.$section[\"$key\"] = \"$hash\"" "$tmp" > "$tmp2" + mv "$tmp2" "$tmp" + echo -e " ${GREEN}OK${NC} $key $hash" + done +done + +mv "$tmp" "$CONFIG" +echo "" +echo -e "${GREEN}[+]${NC} Checksums written to $CONFIG" diff --git a/scripts/sh/local-test-env.sh b/scripts/sh/local-test-env.sh new file mode 100755 index 0000000..f7b3f2c --- /dev/null +++ b/scripts/sh/local-test-env.sh @@ -0,0 +1,1300 @@ +#!/usr/bin/env bash +# ═══════════════════════════════════════════════════════════════════ +# local-test-env.sh — Full local test environment for terp.network +# +# Spins up localterp, deploys all contracts, configures the website, +# and starts the dev server. One command to go from zero to testable. +# +# Usage: +# ./tests/local-test-env.sh +# HOT_WALLET_ADDRESS=terp1abc... ./tests/local-test-env.sh +# SKIP_DOCKER=true ./tests/local-test-env.sh # chain already running +# ═══════════════════════════════════════════════════════════════════ +set -euo pipefail + +# ─── Paths ───────────────────────────────────────────────────── +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +WEBSITE_DIR="$(cd "$SCRIPT_DIR/.." && pwd)" +CW_INFUSER_DIR="$HOME/cw-infuser" +TERP_ACCOUNTS_DIR="$HOME/terp-account-billboards" +TERP_CORE_DIR="$HOME/terp-core" +CW_ORCH_STATE="$HOME/.cw-orchestrator/state_local.json" + +# ─── Config ──────────────────────────────────────────────────── +CHAIN_ID="120u-1" +CHAIN_RPC="http://localhost:26657" # direct chain RPC (health checks, docker exec) +LOCAL_RPC="http://localhost:3000/rpc" # browser-facing RPC (proxied by serve.py, no CORS) +LOCAL_REST="http://localhost:1317" +LOCAL_GRPC="http://localhost:9090" +LOCAL_FAUCET="http://localhost:5000" +CONTAINER_NAME="localterp" +DOCKER_IMAGE="terpnetwork/terp-core:localterp" +WEBSITE_PORT="${WEBSITE_PORT:-3000}" + +# ─── Local env (single source of truth for deploy mnemonic) ─── +ENV_LOCAL="$SCRIPT_DIR/.env.local" +if [ ! -f "$ENV_LOCAL" ]; then + echo "Missing $ENV_LOCAL — create it with LOCAL_MNEMONIC=\"your 24-word mnemonic\"" + exit 1 +fi +# shellcheck source=.env.local +source "$ENV_LOCAL" + +if [ -z "${LOCAL_MNEMONIC:-}" ]; then + echo "LOCAL_MNEMONIC not set in $ENV_LOCAL" + exit 1 +fi +DEPLOYER_MNEMONIC="$LOCAL_MNEMONIC" + +# Propagate .env.local to both deploy repos so cw-orch picks up LOCAL_MNEMONIC +cp "$ENV_LOCAL" "$CW_INFUSER_DIR/.env" +cp "$ENV_LOCAL" "$TERP_ACCOUNTS_DIR/.env" + +# Optional: fund this address for browser wallet testing +HOT_WALLET_ADDRESS="${HOT_WALLET_ADDRESS:-}" +if [ -z "$HOT_WALLET_ADDRESS" ]; then + echo -n "Hot wallet address to fund (or Enter to skip): " + read -r HOT_WALLET_ADDRESS +fi + +# Control flags +SKIP_DOCKER="${SKIP_DOCKER:-false}" +SKIP_BUILD="${SKIP_BUILD:-false}" +ENABLE_AKASH="${ENABLE_AKASH:-false}" +ENABLE_IBC="${ENABLE_IBC:-false}" + +# Chain B (second local chain for IBC testing) +CHAIN2_ID="120u-2" +CHAIN2_CONTAINER="localterp-2" +CHAIN2_RPC_PORT=26658 +CHAIN2_REST_PORT=1318 +CHAIN2_GRPC_PORT=9091 +CHAIN2_FAUCET_PORT=5001 +CHAIN2_RPC="http://localhost:$CHAIN2_RPC_PORT" +CHAIN2_REST="http://localhost:$CHAIN2_REST_PORT" +CHAIN2_FAUCET="http://localhost:$CHAIN2_FAUCET_PORT" + +# Akash devnet paths +OLINE_DIR="${OLINE_DIR:-$HOME/o-line}" +AKASH_DEVNET_SCRIPT="$OLINE_DIR/tests/akash-devnet.sh" + +# Akash devnet state (populated in start_akash_devnet) +AKASH_RPC="" +AKASH_REST="" +AKASH_GRPC="" +AKASH_PROVIDER="" +AKASH_CHAIN_ID="" +AKASH_FAUCET_MNEMONIC="" +AKASH_DEPLOYER_MNEMONIC="" + +# IBC test denoms (populated in ibc_test_transfers) +TF_DENOM_IBC_TEST_A="" +TF_DENOM_IBC_TEST_B="" + +# Captured contract addresses (populated during deployment) +ADDR_CW_SVG_MINTER="" +ADDR_CW721_SVG="" +ADDR_CW_INFUSION_MINTER="" +ADDR_TERP721_ACCOUNT="" +ADDR_TERP721_MANIFOLD="" +ADDR_SHITSTRAP_FACTORY="" +MERKLE_SERVER_URL="${MERKLE_SERVER_URL:-}" +DOCS_PID="" +DOCS_DIR="$HOME/websites/terp-docs" + +# Tokenfactory denoms created during bootstrap (set in mint_tokenfactory_tokens) +TF_DENOM_ATOM="" +TF_DENOM_BTC="" +TF_DENOM_AKT="" +TF_DENOM_ETH="" +TF_DENOM_USDC="" + +# ─── Portable in-place sed (no .bak files) ───────────────────── +sedi() { + if [[ "$(uname)" == "Darwin" ]]; then + sed -i '' "$@" + else + sed -i "$@" + fi +} + +# ─── Colors ──────────────────────────────────────────────────── +RED='\033[0;31m' +GREEN='\033[0;32m' +YELLOW='\033[1;33m' +CYAN='\033[0;36m' +NC='\033[0m' + +log() { echo -e "${GREEN}[+]${NC} $*"; } +warn() { echo -e "${YELLOW}[!]${NC} $*"; } +err() { echo -e "${RED}[x]${NC} $*" >&2; } + +# Read a contract address from cw-orchestrator state file +# Usage: orch_addr [state_file] +orch_addr() { + local chain_id="$1" name="$2" file="${3:-$CW_ORCH_STATE}" + [ -f "$file" ] || return 1 + jq -r ".[\"$chain_id\"].default[\"$name\"] // empty" "$file" +} +step() { echo -e "\n${CYAN}═══ $* ═══${NC}\n"; } + +# ─── Prerequisites ───────────────────────────────────────────── +check_prereqs() { + step "Checking prerequisites" + + # ── CLI tools ── + local missing=() + command -v docker >/dev/null || missing+=("docker") + command -v cargo >/dev/null || missing+=("cargo (Rust toolchain)") + command -v jq >/dev/null || missing+=("jq") + command -v curl >/dev/null || missing+=("curl") + command -v python3 >/dev/null || missing+=("python3") + + if [ ${#missing[@]} -gt 0 ]; then + err "Missing CLI tools: ${missing[*]}" + exit 1 + fi + + # ── Expected crate directories ── + local missing_dirs=() + [ -d "$TERP_CORE_DIR" ] || missing_dirs+=("terp-core: $TERP_CORE_DIR") + [ -d "$CW_INFUSER_DIR" ] || missing_dirs+=("cw-infuser: $CW_INFUSER_DIR") + [ -d "$CW_INFUSER_DIR/artifacts" ] || missing_dirs+=("cw-infuser artifacts: $CW_INFUSER_DIR/artifacts (run optimizer)") + [ -d "$TERP_ACCOUNTS_DIR" ] || missing_dirs+=("terp-account-billboards: $TERP_ACCOUNTS_DIR") + [ -d "$TERP_ACCOUNTS_DIR/artifacts" ] || missing_dirs+=("terp-account-billboards artifacts: $TERP_ACCOUNTS_DIR/artifacts (run optimizer)") + + if [ ${#missing_dirs[@]} -gt 0 ]; then + err "Missing directories:" + for d in "${missing_dirs[@]}"; do + err " - $d" + done + err "See tests/README.md for setup instructions." + exit 1 + fi + + log "All prerequisites found" +} + +# ═══════════════════════════════════════════════════════════════ +# PHASE 1: Docker — Start local chain +# ═══════════════════════════════════════════════════════════════ +start_chain() { + step "Phase 1: Starting local Terp chain" + + if [ "$SKIP_DOCKER" = "true" ]; then + warn "SKIP_DOCKER=true — assuming chain is already running" + return + fi + + # Stop existing container if running + if docker ps -q --filter "name=$CONTAINER_NAME" | grep -q .; then + warn "Stopping existing $CONTAINER_NAME container..." + docker stop "$CONTAINER_NAME" 2>/dev/null || true + sleep 2 + fi + + # Build image if needed + if [ "$SKIP_BUILD" = "true" ]; then + warn "SKIP_BUILD=true — skipping Docker image build" + elif ! docker image inspect "$DOCKER_IMAGE" >/dev/null 2>&1; then + log "Building localterp Docker image..." + (cd "$TERP_CORE_DIR" && docker buildx build --target localterp -t "$DOCKER_IMAGE" --load .) + else + log "Docker image $DOCKER_IMAGE already exists" + fi + + log "Starting $CONTAINER_NAME container..." + docker run --rm -d \ + --name "$CONTAINER_NAME" \ + -p 26657:26657 \ + -p 1317:1317 \ + -p 8545:8545 \ + -p 9090:9090 \ + -p 5000:5000 \ + -v "$SCRIPT_DIR/post_init.sh:/root/post_init.sh" \ + "$DOCKER_IMAGE" + + log "Container started. Waiting for chain to produce blocks..." + + # Wait for health (up to 120s) + # NOTE: avoid piping curl|jq inside `until` — pipefail causes + # spurious failures when curl closes the connection before jq reads. + local attempts=0 + local max_attempts=60 + local height=0 + while true; do + height=$(curl -sf "$CHAIN_RPC/status" 2>/dev/null \ + | jq -r '.result.sync_info.latest_block_height // "0"' 2>/dev/null) || height="0" + [[ "$height" =~ ^[0-9]+$ ]] && [ "$height" -gt 0 ] && break + + attempts=$((attempts + 1)) + if [ "$attempts" -ge "$max_attempts" ]; then + err "Chain did not start within ${max_attempts}x2s. Check: docker logs $CONTAINER_NAME" + exit 1 + fi + [ $((attempts % 5)) -eq 0 ] && warn "Still waiting... (attempt $attempts/$max_attempts)" + sleep 2 + done + + log "Chain is live at block $height" +} + +# ═══════════════════════════════════════════════════════════════ +# PHASE 1b: Start second local chain for IBC testing +# ═══════════════════════════════════════════════════════════════ +start_chain2() { + # Only needed for local IBC mode (not Akash — that has its own chain B) + if [ "$ENABLE_IBC" != "true" ] || [ "$ENABLE_AKASH" = "true" ]; then + return + fi + + step "Phase 1b: Starting second local Terp chain (${CHAIN2_ID})" + + # Stop existing container if running + docker stop "$CHAIN2_CONTAINER" 2>/dev/null || true + docker rm "$CHAIN2_CONTAINER" 2>/dev/null || true + + log "Starting $CHAIN2_CONTAINER container..." + docker run --rm -d --name "$CHAIN2_CONTAINER" \ + -p ${CHAIN2_RPC_PORT}:26657 \ + -p ${CHAIN2_REST_PORT}:1317 \ + -p ${CHAIN2_GRPC_PORT}:9090 \ + -p ${CHAIN2_FAUCET_PORT}:5000 \ + -v "$SCRIPT_DIR/post_init_chain2.sh:/root/post_init.sh" \ + "$DOCKER_IMAGE" + + log "Waiting for $CHAIN2_ID to start..." + local attempts=0 + local max_attempts=60 + local height=0 + while true; do + height=$(curl -sf "$CHAIN2_RPC/status" 2>/dev/null \ + | jq -r '.result.sync_info.latest_block_height // "0"' 2>/dev/null) || height="0" + [[ "$height" =~ ^[0-9]+$ ]] && [ "$height" -gt 0 ] && break + + attempts=$((attempts + 1)) + if [ "$attempts" -ge "$max_attempts" ]; then + err "$CHAIN2_ID did not start within ${max_attempts}x2s. Check: docker logs $CHAIN2_CONTAINER" + exit 1 + fi + [ $((attempts % 5)) -eq 0 ] && warn "Still waiting for $CHAIN2_ID... (attempt $attempts/$max_attempts)" + sleep 2 + done + + log "$CHAIN2_ID is live at block $height" + + # Fund the deployer on chain2 via its faucet + log "Waiting for $CHAIN2_ID faucet..." + local faucet_attempts=0 + until curl -sf "$CHAIN2_FAUCET/status" >/dev/null 2>&1; do + faucet_attempts=$((faucet_attempts + 1)) + if [ "$faucet_attempts" -ge 30 ]; then + warn "$CHAIN2_ID faucet not responding — continuing..." + return + fi + sleep 2 + done + + # Derive deployer key on chain2 and fund it + log "Setting up deployer on $CHAIN2_ID..." + echo "$DEPLOYER_MNEMONIC" | docker exec -i "$CHAIN2_CONTAINER" \ + terpd keys add deployer --recover --keyring-backend test --output json 2>/dev/null | jq -r '.address' || true + + local chain2_deployer_addr + chain2_deployer_addr=$(docker exec "$CHAIN2_CONTAINER" terpd keys show deployer --keyring-backend test --address 2>/dev/null) || true + if [ -n "$chain2_deployer_addr" ]; then + log "Funding deployer ($chain2_deployer_addr) on $CHAIN2_ID..." + for _ in 1 2 3; do + curl -sf "$CHAIN2_FAUCET/faucet?address=$chain2_deployer_addr" 2>&1 || true + sleep 1 + done + fi + + log "$CHAIN2_ID is ready" +} + +# ═══════════════════════════════════════════════════════════════ +# PHASE 2: Fund accounts +# ═══════════════════════════════════════════════════════════════ +fund_accounts() { + step "Phase 2: Funding accounts" + + # Wait for faucet to be ready + local attempts=0 + until curl -sf "$LOCAL_FAUCET/status" >/dev/null 2>&1; do + attempts=$((attempts + 1)) + if [ "$attempts" -ge 30 ]; then + warn "Faucet not responding — genesis accounts are pre-funded, continuing..." + return + fi + sleep 2 + done + log "Faucet is ready" + + # Fund hot wallet if specified + if [ -n "$HOT_WALLET_ADDRESS" ]; then + log "Funding hot wallet: $HOT_WALLET_ADDRESS" + local resp + resp=$(curl -sf "$LOCAL_FAUCET/faucet?address=$HOT_WALLET_ADDRESS" 2>&1) || true + log "Faucet response: $resp" + + # Also send uthiol to the hot wallet via bank send from account 'a' + # Account 'a' has both uterp and uthiol from genesis + log "Sending uthiol to hot wallet via docker exec..." + docker exec "$CONTAINER_NAME" terpd tx bank send a "$HOT_WALLET_ADDRESS" \ + 1000000000uthiol \ + --from a --gas-prices 0.25uterp -y --output json 2>/dev/null | jq -r '.txhash' || warn "uthiol send may have failed" + else + warn "HOT_WALLET_ADDRESS not set — skipping browser wallet funding" + warn "Set it: HOT_WALLET_ADDRESS=terp1... ./tests/local-test-env.sh" + fi + + # Fund the deployer account (LOCAL_MNEMONIC used by cw-orch deploy scripts) + # Derive the address from the same mnemonic cw-orch will use + log "Deriving deployer address from mnemonic..." + DEPLOYER_ADDRESS=$(echo "$DEPLOYER_MNEMONIC" | docker exec -i "$CONTAINER_NAME" \ + terpd keys add deployer --recover --keyring-backend test --output json 2>/dev/null \ + | jq -r '.address') + + if [ -z "$DEPLOYER_ADDRESS" ]; then + err "Failed to derive deployer address from mnemonic" + exit 1 + fi + log "Deployer address: $DEPLOYER_ADDRESS" + + log "Funding deployer account via faucet..." + # Hit faucet multiple times to ensure enough uterp for store + instantiate + for _ in 1 2 3; do + curl -sf "$LOCAL_FAUCET/faucet?address=$DEPLOYER_ADDRESS" 2>&1 || true + sleep 1 + done + + # Wait a few blocks for funding txs to confirm + sleep 4 + log "Deployer account funded" + + log "Genesis accounts (validator, a, b, c, d) are pre-funded" +} + +# ═══════════════════════════════════════════════════════════════ +# PHASE 2.5: Create tokenfactory tokens for shitstrap testing +# +# Creates two test denoms from the deployer address and mints +# them to all genesis test wallets + the hot wallet. +# +# The resulting denom format is: +# factory// +# +# These denoms are printed in the summary so contract deploy +# scripts can reference them as accepted shitstrap payment tokens. +# ═══════════════════════════════════════════════════════════════ +mint_tokenfactory_tokens() { + step "Phase 2.5: Creating tokenfactory tokens for shitstrap testing" + + if [ -z "${DEPLOYER_ADDRESS:-}" ]; then + err "DEPLOYER_ADDRESS not set — run fund_accounts first" + exit 1 + fi + + local SUBDENOMS="atom btc akt eth usdc" + local MINT_AMOUNT="${MINT_AMOUNT:-1000000000000}" # 1M tokens at 6 decimals + local SHARE="${SHARE:-100000000000}" # 100K tokens per test wallet + local TERPD="docker exec $CONTAINER_NAME terpd" + # --generate-only: emit unsigned tx JSON, no broadcast, no sequence query + local GEN_FLAGS="--from deployer --keyring-backend test --chain-id $CHAIN_ID --fees 1000000uterp --gas 500000 --generate-only" + + local tmpdir + tmpdir=$(mktemp -d) + + # Collect recipient addresses once + local RECIPIENTS="" + for key in validator a b c d; do + local addr + addr=$($TERPD keys show "$key" --keyring-backend test --address 2>/dev/null) || continue + RECIPIENTS="$RECIPIENTS $addr" + done + [ -n "${HOT_WALLET_ADDRESS:-}" ] && RECIPIENTS="$RECIPIENTS $HOT_WALLET_ADDRESS" + + echo "Creator : $DEPLOYER_ADDRESS" + echo "Denoms : $SUBDENOMS" + echo "" + + # ── Generate all messages offline ───────────────────────────── + echo "=== Generating messages ===" + local idx=0 + + for subdenom in $SUBDENOMS; do + local denom="factory/$DEPLOYER_ADDRESS/$subdenom" + echo " $denom" + + $TERPD tx tokenfactory create-denom "$subdenom" $GEN_FLAGS > "$tmpdir/$idx.json" 2>&1 + idx=$((idx + 1)) + + $TERPD tx tokenfactory mint "${MINT_AMOUNT}${denom}" $GEN_FLAGS > "$tmpdir/$idx.json" 2>&1 + idx=$((idx + 1)) + + for addr in $RECIPIENTS; do + $TERPD tx bank send deployer "$addr" "${SHARE}${denom}" $GEN_FLAGS > "$tmpdir/$idx.json" 2>&1 + idx=$((idx + 1)) + done + done + + # ── Validate every generated file before merging ────────────── + echo "" + echo "=== Validating $idx generated msgs ===" + local ok=true + for i in $(seq 0 $((idx - 1))); do + if ! jq -e '.body.messages | length > 0' "$tmpdir/$i.json" > /dev/null 2>&1; then + err "msg $i failed to generate:" + jq '.' "$tmpdir/$i.json" 2>/dev/null || cat "$tmpdir/$i.json" + ok=false + fi + done + if [ "$ok" = false ]; then + rm -rf "$tmpdir" + exit 1 + fi + + # ── Merge all msgs into one tx doc ──────────────────────────── + local all_files="" + for i in $(seq 0 $((idx - 1))); do + all_files="$all_files $tmpdir/$i.json" + done + + local total_gas=$(( idx * 900000 )) + local total_fee=$(( total_gas / 4 )) # 0.25 uterp per gas unit + echo "" + echo "=== Merging $idx msgs → 1 tx (gas=$total_gas fee=${total_fee}uterp) ===" + + # shellcheck disable=SC2086 + jq -s --argjson gas "$total_gas" --argjson fee "$total_fee" ' + . as $txs | + $txs[0] | + .body.messages = [ $txs[] | .body.messages[] ] | + .auth_info.fee.gas_limit = ($gas | tostring) | + .auth_info.fee.amount = [{"denom":"uterp","amount":($fee | tostring)}] + ' $all_files > "$tmpdir/unsigned.json" + + # ── Sign ────────────────────────────────────────────────────── + docker cp "$tmpdir/unsigned.json" "$CONTAINER_NAME:/tmp/tf_unsigned.json" + + local acct_json acct_num seq + acct_json=$($TERPD query auth account "$DEPLOYER_ADDRESS" --output json 2>/dev/null) + acct_num=$(echo "$acct_json" | jq -r '.account_number // .account.account_number // "0"') + seq=$(echo "$acct_json" | jq -r '.sequence // .account.sequence // "0"') + + echo "=== Signing (account=$acct_num sequence=$seq) ===" + docker exec "$CONTAINER_NAME" terpd tx sign /tmp/tf_unsigned.json \ + --from deployer --keyring-backend test \ + --chain-id "$CHAIN_ID" \ + --account-number "$acct_num" \ + --sequence "$seq" \ + --output-document /tmp/tf_signed.json + + # ── Broadcast + poll for DeliverTx result ───────────────────── + echo "=== Broadcasting ===" + docker exec "$CONTAINER_NAME" terpd tx broadcast /tmp/tf_signed.json \ + --broadcast-mode sync --output json > "$tmpdir/broadcast.json" 2>&1 || true + + local txhash + txhash=$(jq -r '.txhash // "n/a"' "$tmpdir/broadcast.json" 2>/dev/null || echo "n/a") + echo " txhash : $txhash" + + if [ "$txhash" = "n/a" ]; then + err "Broadcast failed — no txhash returned:" + cat "$tmpdir/broadcast.json" + rm -rf "$tmpdir" + exit 1 + fi + + echo " polling for DeliverTx..." + local attempts=0 + local code="pending" + while [ "$code" = "pending" ]; do + attempts=$((attempts + 1)) + if [ "$attempts" -ge 30 ]; then + err "Tx not confirmed after 30 attempts — check: terpd q tx $txhash" + rm -rf "$tmpdir" + exit 1 + fi + sleep 2 + local tx_result + tx_result=$(docker exec "$CONTAINER_NAME" terpd q tx "$txhash" --output json 2>/dev/null) || { sleep 2; continue; } + code=$(echo "$tx_result" | jq -r '.code // 0') + done + + echo " confirmed (code=$code)" + if [ "$code" != "0" ]; then + err "Tx failed on-chain (code=$code):" + echo "$tx_result" | jq -r '.raw_log // .' + rm -rf "$tmpdir" + exit 1 + fi + + rm -rf "$tmpdir" + + # ── Store denom vars for summary ────────────────────────────── + TF_DENOM_ATOM="factory/$DEPLOYER_ADDRESS/atom" + TF_DENOM_BTC="factory/$DEPLOYER_ADDRESS/btc" + TF_DENOM_AKT="factory/$DEPLOYER_ADDRESS/akt" + TF_DENOM_ETH="factory/$DEPLOYER_ADDRESS/eth" + TF_DENOM_USDC="factory/$DEPLOYER_ADDRESS/usdc" + + echo "" + echo "=== Tokenfactory denoms ready ===" + for subdenom in $SUBDENOMS; do + echo " factory/$DEPLOYER_ADDRESS/$subdenom" + done + echo "" + echo "Set CREATOR=$DEPLOYER_ADDRESS in your .env before running integration scripts." +} + +# ═══════════════════════════════════════════════════════════════ +# PHASE 3: Deploy cw-infuser contracts +# ═══════════════════════════════════════════════════════════════ +deploy_cw_infuser() { + step "Phase 3: Deploying cw-infuser contracts" + + if [ ! -d "$CW_INFUSER_DIR/scripts" ]; then + err "cw-infuser not found at $CW_INFUSER_DIR" + return 1 + fi + + log "Running cw-infuser integration script..." + (cd "$CW_INFUSER_DIR" && RUST_LOG=info cargo run -p cw-infuser-scripts --bin integration -- --network local --single 2>&1) || { + err "cw-infuser deployment failed" + exit 1 + } + + # Read contract addresses from cw-orchestrator state + log "Reading addresses from $CW_ORCH_STATE..." + ADDR_CW_SVG_MINTER=$(orch_addr "$CHAIN_ID" "cw-svg-minter") + ADDR_CW721_SVG=$(orch_addr "$CHAIN_ID" "cw721-svg") + ADDR_CW_INFUSION_MINTER=$(orch_addr "$CHAIN_ID" "cw-infuser") + ADDR_SHITSTRAP_FACTORY=$(orch_addr "$CHAIN_ID" "cw-shitstrap-factory") + + if [ -z "$ADDR_CW_SVG_MINTER" ]; then + err "cw-svg-minter not found in $CW_ORCH_STATE" + exit 1 + fi + if [ -z "$ADDR_CW721_SVG" ]; then + err "cw721-svg not found in $CW_ORCH_STATE" + exit 1 + fi + [ -z "$ADDR_CW_INFUSION_MINTER" ] && warn "cw-infuser not in state (optional)" || log "cw-infuser: $ADDR_CW_INFUSION_MINTER" + [ -z "$ADDR_SHITSTRAP_FACTORY" ] && warn "cw-shitstrap-factory not in state (optional)" || log "cw-shitstrap-factory: $ADDR_SHITSTRAP_FACTORY" + + log "cw-svg-minter: $ADDR_CW_SVG_MINTER" + log "cw721-svg: $ADDR_CW721_SVG" +} + +# ═══════════════════════════════════════════════════════════════ +# PHASE 4: Deploy terp-account-billboards +# ═══════════════════════════════════════════════════════════════ +deploy_terp_accounts() { + step "Phase 4: Deploying terp-account-billboards contracts" + + if [ ! -d "$TERP_ACCOUNTS_DIR/scripts" ]; then + err "terp-account-billboards not found at $TERP_ACCOUNTS_DIR" + return 1 + fi + + log "Running terp-accounts deploy script..." + (cd "$TERP_ACCOUNTS_DIR" && RUST_LOG=info cargo run -p terp-account-scripts --bin deploy -- --network local 2>&1) || { + err "terp-accounts deployment failed" + exit 1 + } + + # Read contract addresses from cw-orchestrator state + log "Reading addresses from $CW_ORCH_STATE..." + ADDR_TERP721_ACCOUNT=$(orch_addr "$CHAIN_ID" "terp721-account") + ADDR_TERP721_MANIFOLD=$(orch_addr "$CHAIN_ID" "terp721-account-manifold") + + if [ -z "$ADDR_TERP721_ACCOUNT" ]; then + err "terp721-account not found in $CW_ORCH_STATE" + exit 1 + fi + if [ -z "$ADDR_TERP721_MANIFOLD" ]; then + err "terp721-account-manifold not found in $CW_ORCH_STATE" + exit 1 + fi + + log "terp721-account: $ADDR_TERP721_ACCOUNT" + log "terp721-account-manifold: $ADDR_TERP721_MANIFOLD" +} + +# ═══════════════════════════════════════════════════════════════ +# PHASE 5: Configure website & start dev server +# ═══════════════════════════════════════════════════════════════ +configure_website() { + step "Phase 5: Configuring website for local network" + + # ─── Update config.json with local chain entry ───────── + log "Writing local config to public/config.json..." + local _config="$WEBSITE_DIR/public/config.json" + jq --arg cid "$CHAIN_ID" \ + --arg rpc "$LOCAL_RPC" \ + --arg rest "$LOCAL_REST" \ + --arg grpc "$LOCAL_GRPC" \ + --arg cw721svg "${ADDR_CW721_SVG:-}" \ + --arg terp721acc "${ADDR_TERP721_ACCOUNT:-}" \ + --arg accMinter "${ADDR_TERP721_MANIFOLD:-}" \ + --arg svgMinter "${ADDR_CW_SVG_MINTER:-}" \ + --arg infMinter "${ADDR_CW_INFUSION_MINTER:-}" \ + --arg sstrapFact "${ADDR_SHITSTRAP_FACTORY:-}" \ + --arg merkle "${MERKLE_SERVER_URL:-}" \ + '.chains[$cid] = (.chains[$cid] // {}) * { + chainId: $cid, + chainName: "Local Terp", + rpc: $rpc, + rest: $rest, + grpc: $grpc, + contracts: { + cw721Svg: $cw721svg, + terp721Account: $terp721acc, + accountMinter: $accMinter, + cwSvgMinter: $svgMinter, + cwInfusionMinter: $infMinter, + shitstrapFactory: $sstrapFact + }, + services: { + merkleServer: $merkle, + indexer: "" + } + }' "$_config" > "${_config}.tmp" && mv "${_config}.tmp" "$_config" + + log "config.json updated for local network" + + # Print summary + echo "" + log "Contract addresses:" + echo " cw-svg-minter: ${ADDR_CW_SVG_MINTER:-'(not deployed)'}" + echo " cw721-svg (last): ${ADDR_CW721_SVG:-'(not deployed)'}" + echo " cw-infusion-minter: ${ADDR_CW_INFUSION_MINTER:-'(not deployed)'}" + echo " terp721-account: ${ADDR_TERP721_ACCOUNT:-'(not deployed)'}" + echo " terp721-account-manifold: ${ADDR_TERP721_MANIFOLD:-'(not deployed)'}" + echo " shitstrap-factory: ${ADDR_SHITSTRAP_FACTORY:-'(not deployed)'}" + echo "" + log "Tokenfactory denoms (for shitstrap testing):" + for _tf in "$TF_DENOM_ATOM" "$TF_DENOM_BTC" "$TF_DENOM_AKT" "$TF_DENOM_ETH" "$TF_DENOM_USDC"; do + [ -n "$_tf" ] && echo " $_tf" || true + done + [ -z "$TF_DENOM_ATOM" ] && echo " (not created)" + echo "" + if [ -n "$TF_DENOM_IBC_TEST_A" ]; then + log "IBC test denoms:" + echo " $TF_DENOM_IBC_TEST_A" + echo " $TF_DENOM_IBC_TEST_B" + echo "" + fi + log "Endpoints:" + echo " RPC: $LOCAL_RPC (serve.py proxy → $CHAIN_RPC)" + echo " REST: $LOCAL_REST" + echo " gRPC: $LOCAL_GRPC" + echo " Faucet: $LOCAL_FAUCET" + if [ "$ENABLE_IBC" = "true" ] && [ "$ENABLE_AKASH" != "true" ]; then + echo "" + log "Chain B (local IBC):" + echo " Chain ID: $CHAIN2_ID" + echo " RPC: $CHAIN2_RPC" + echo " REST: $CHAIN2_REST" + echo " Faucet: $CHAIN2_FAUCET" + fi + if [ -n "$AKASH_RPC" ]; then + echo "" + log "Akash devnet endpoints:" + echo " Chain ID: $AKASH_CHAIN_ID" + echo " RPC: $AKASH_RPC" + echo " REST: $AKASH_REST" + echo " gRPC: $AKASH_GRPC" + echo " Provider: $AKASH_PROVIDER" + fi + echo "" +} + +# ═══════════════════════════════════════════════════════════════ +# PHASE 6: Configure & start terp-docs (optional) +# ═══════════════════════════════════════════════════════════════ +start_terp_docs() { + step "Phase 6: terp-docs documentation site" + + if [ ! -d "$DOCS_DIR" ]; then + warn "terp-docs not found at $DOCS_DIR — skipping" + return + fi + + if ! command -v pnpm &>/dev/null; then + warn "pnpm not installed — skipping terp-docs" + return + fi + + log "Writing .env.local for terp-docs..." + cat > "$DOCS_DIR/.env.local" <&1) || { + warn "pnpm install failed for terp-docs — skipping" + return + } + + log "Starting terp-docs dev server on port 3001..." + (cd "$DOCS_DIR" && pnpm dev --port 3001 &) + DOCS_PID=$! + + log "terp-docs running (PID=$DOCS_PID) at http://localhost:3001" +} + +start_dev_server() { + log "Starting website dev server on port $WEBSITE_PORT..." + echo "" + echo " Open: http://localhost:$WEBSITE_PORT" + echo " Mint: http://localhost:$WEBSITE_PORT/mint" + echo " Names: http://localhost:$WEBSITE_PORT/tabs.html" + echo "" + echo " Press Ctrl+C to stop." + echo "" + + cd "$WEBSITE_DIR" + python3 serve.py +} + +# ═══════════════════════════════════════════════════════════════ +# PHASE 7: Akash devnet (gated behind ENABLE_AKASH=true) +# ═══════════════════════════════════════════════════════════════ +start_akash_devnet() { + if [ "$ENABLE_AKASH" != "true" ]; then + return + fi + + step "Phase 7: Starting Akash devnet" + + if [ ! -f "$AKASH_DEVNET_SCRIPT" ]; then + err "Akash devnet script not found at $AKASH_DEVNET_SCRIPT" + err "Set OLINE_DIR to your o-line checkout (default: ~/o-line)" + exit 1 + fi + + log "Calling akash-devnet.sh wait (starts node + provider, blocks until ready)..." + local akash_json + akash_json=$("$AKASH_DEVNET_SCRIPT" wait) + + if [ -z "$akash_json" ]; then + err "akash-devnet.sh wait returned empty output" + exit 1 + fi + + # Parse JSON endpoints + AKASH_RPC=$(echo "$akash_json" | jq -r '.rpc') + AKASH_REST=$(echo "$akash_json" | jq -r '.rest') + AKASH_GRPC=$(echo "$akash_json" | jq -r '.grpc') + AKASH_PROVIDER=$(echo "$akash_json" | jq -r '.provider') + AKASH_CHAIN_ID=$(echo "$akash_json" | jq -r '.chain_id') + AKASH_FAUCET_MNEMONIC=$(echo "$akash_json" | jq -r '.faucet_mnemonic') + AKASH_DEPLOYER_MNEMONIC=$(echo "$akash_json" | jq -r '.deployer_mnemonic') + + log "Akash devnet is ready" + echo " Chain ID: $AKASH_CHAIN_ID" + echo " RPC: $AKASH_RPC" + echo " REST: $AKASH_REST" + echo " gRPC: $AKASH_GRPC" + echo " Provider: $AKASH_PROVIDER" +} + +# ═══════════════════════════════════════════════════════════════ +# PHASE 8: IBC Relayer (Akash devnet OR local two-chain) +# ═══════════════════════════════════════════════════════════════ +start_ibc_relayer() { + # Determine which mode we're in + local IBC_MODE="" + if [ "$ENABLE_AKASH" = "true" ] && [ -n "$AKASH_RPC" ]; then + IBC_MODE="akash" + elif [ "$ENABLE_IBC" = "true" ]; then + IBC_MODE="local" + else + return + fi + + step "Phase 8: Starting IBC relayer (mode=$IBC_MODE)" + + # ── Chain B config based on mode ────────────────────────────── + local CHAIN_B_ID CHAIN_B_RPC_DOCKER CHAIN_B_GRPC_DOCKER + local CHAIN_B_PREFIX CHAIN_B_GAS CHAIN_B_KEY_NAME CHAIN_B_KEY_MNEMONIC + local CHAIN_B_ALIAS # alias used in relayer config & path name + + if [ "$IBC_MODE" = "akash" ]; then + CHAIN_B_ALIAS="akash" + CHAIN_B_ID="$AKASH_CHAIN_ID" + CHAIN_B_RPC_DOCKER=$(echo "$AKASH_RPC" | sed 's|http://127\.0\.0\.1|http://host.docker.internal|') + CHAIN_B_GRPC_DOCKER=$(echo "$AKASH_GRPC" | sed 's|http://127\.0\.0\.1|host.docker.internal|; s|http://||') + CHAIN_B_PREFIX="akash" + CHAIN_B_GAS="0.025uakt" + CHAIN_B_KEY_NAME="relayer-akash" + CHAIN_B_KEY_MNEMONIC="$AKASH_FAUCET_MNEMONIC" + else + # Local mode: second terp chain + CHAIN_B_ALIAS="terp2" + CHAIN_B_ID="$CHAIN2_ID" + CHAIN_B_RPC_DOCKER="http://host.docker.internal:$CHAIN2_RPC_PORT" + CHAIN_B_GRPC_DOCKER="host.docker.internal:$CHAIN2_GRPC_PORT" + CHAIN_B_PREFIX="terp" + CHAIN_B_GAS="0.025uterp" + CHAIN_B_KEY_NAME="relayer-terp2" + CHAIN_B_KEY_MNEMONIC="$DEPLOYER_MNEMONIC" + fi + + local PATH_NAME="terp-${CHAIN_B_ALIAS}" + local RLY_CONFIG="/tmp/rly-config.yaml" + local RLY_CONTAINER="ibc-relayer" + local RLY_IMAGE="ghcr.io/cosmos/relayer:latest" + + local TERP_RPC="http://host.docker.internal:26657" + local TERP_GRPC="host.docker.internal:9090" + + log "Generating relayer config (path=$PATH_NAME)..." + cat > "$RLY_CONFIG" </dev/null || true + docker rm "$RLY_CONTAINER" 2>/dev/null || true + + # Start the relayer container (init keys, fund, create link, then start) + log "Starting relayer container..." + docker run -d --name "$RLY_CONTAINER" --network host \ + -v "$RLY_CONFIG:/root/.relayer/config/config.yaml" \ + --entrypoint sh \ + "$RLY_IMAGE" -c "sleep infinity" + + # Wait for container to be running + local attempts=0 + until docker inspect -f '{{.State.Running}}' "$RLY_CONTAINER" 2>/dev/null | grep -q true; do + attempts=$((attempts + 1)) + if [ "$attempts" -ge 10 ]; then + err "Relayer container did not start" + exit 1 + fi + sleep 1 + done + + # Restore keys from mnemonics + log "Importing relayer keys..." + echo "$DEPLOYER_MNEMONIC" | docker exec -i "$RLY_CONTAINER" \ + rly keys restore terp relayer-terp - 2>&1 || warn "terp key may already exist" + echo "$CHAIN_B_KEY_MNEMONIC" | docker exec -i "$RLY_CONTAINER" \ + rly keys restore "$CHAIN_B_ALIAS" "$CHAIN_B_KEY_NAME" - 2>&1 || warn "$CHAIN_B_ALIAS key may already exist" + + # Show relayer addresses for debugging + local RELAYER_TERP_ADDR RELAYER_B_ADDR + RELAYER_TERP_ADDR=$(docker exec "$RLY_CONTAINER" rly keys show terp relayer-terp 2>/dev/null) || true + RELAYER_B_ADDR=$(docker exec "$RLY_CONTAINER" rly keys show "$CHAIN_B_ALIAS" "$CHAIN_B_KEY_NAME" 2>/dev/null) || true + log "Relayer terp address: $RELAYER_TERP_ADDR" + log "Relayer $CHAIN_B_ALIAS address: $RELAYER_B_ADDR" + + # Fund the relayer's terp-side address via the local faucet + if [ -n "$RELAYER_TERP_ADDR" ]; then + log "Funding relayer on terp chain..." + for _ in 1 2 3; do + curl -sf "$LOCAL_FAUCET/faucet?address=$RELAYER_TERP_ADDR" 2>&1 || true + sleep 1 + done + fi + + # Fund the relayer on chain B + if [ -n "$RELAYER_B_ADDR" ]; then + if [ "$IBC_MODE" = "local" ]; then + log "Funding relayer on $CHAIN2_ID via faucet..." + for _ in 1 2 3; do + curl -sf "$CHAIN2_FAUCET/faucet?address=$RELAYER_B_ADDR" 2>&1 || true + sleep 1 + done + else + log "Funding relayer on akash chain..." + warn "Akash relayer funding relies on the faucet account being pre-funded at genesis" + fi + fi + + # Wait for both chains to have a few blocks before creating clients + sleep 5 + + # Create clients, connections, and channel in one shot + log "Creating IBC link (clients + connection + channel)..." + docker exec "$RLY_CONTAINER" rly tx link "$PATH_NAME" \ + --src-port transfer --dst-port transfer --version ics20-1 2>&1 || { + err "IBC link creation failed — relayer will start but may not relay packets" + warn "You can retry manually: docker exec $RLY_CONTAINER rly tx link $PATH_NAME" + } + + # Stop the sleep-infinity process and restart with the relayer + docker stop "$RLY_CONTAINER" 2>/dev/null || true + docker rm "$RLY_CONTAINER" 2>/dev/null || true + + log "Starting relayer process..." + docker run -d --name "$RLY_CONTAINER" --network host \ + -v "$RLY_CONFIG:/root/.relayer/config/config.yaml" \ + "$RLY_IMAGE" rly start "$PATH_NAME" --debug-addr "" 2>&1 + + # Verify relayer is running + sleep 3 + if docker ps --filter "name=$RLY_CONTAINER" --format '{{.Names}}' | grep -q "$RLY_CONTAINER"; then + log "IBC relayer is running" + else + warn "IBC relayer container may have exited — check: docker logs $RLY_CONTAINER" + fi +} + +# ═══════════════════════════════════════════════════════════════ +# PHASE 9: IBC Test Transfers (requires relayer — Akash or local) +# ═══════════════════════════════════════════════════════════════ +ibc_test_transfers() { + # Determine mode (same logic as start_ibc_relayer) + local IBC_MODE="" + if [ "$ENABLE_AKASH" = "true" ] && [ -n "$AKASH_RPC" ]; then + IBC_MODE="akash" + elif [ "$ENABLE_IBC" = "true" ]; then + IBC_MODE="local" + else + return + fi + + # Check that the relayer container is actually running + if ! docker ps --filter "name=ibc-relayer" --format '{{.Names}}' | grep -q "ibc-relayer"; then + warn "IBC relayer not running — skipping IBC test transfers" + return + fi + + step "Phase 9: IBC test transfers (mode=$IBC_MODE)" + + if [ -z "${DEPLOYER_ADDRESS:-}" ]; then + err "DEPLOYER_ADDRESS not set — run fund_accounts first" + return + fi + + # Chain B receiver config + local CHAIN_B_ALIAS CHAIN_B_KEY_NAME CHAIN_B_REST + if [ "$IBC_MODE" = "akash" ]; then + CHAIN_B_ALIAS="akash" + CHAIN_B_KEY_NAME="relayer-akash" + CHAIN_B_REST="$AKASH_REST" + else + CHAIN_B_ALIAS="terp2" + CHAIN_B_KEY_NAME="relayer-terp2" + CHAIN_B_REST="$CHAIN2_REST" + fi + + local TERPD="docker exec $CONTAINER_NAME terpd" + + # ── Create IBC test subdenoms ───────────────────────────────── + log "Creating IBC test tokenfactory denoms..." + + local IBC_SUBDENOMS="ibc-test-a ibc-test-b" + local IBC_MINT_AMOUNT="1000000000000" # 1M tokens at 6 decimals + local GEN_FLAGS="--from deployer --keyring-backend test --chain-id $CHAIN_ID --fees 1000000uterp --gas 500000 --generate-only" + + local tmpdir + tmpdir=$(mktemp -d) + local idx=0 + + for subdenom in $IBC_SUBDENOMS; do + local denom="factory/$DEPLOYER_ADDRESS/$subdenom" + log " Creating $denom" + + $TERPD tx tokenfactory create-denom "$subdenom" $GEN_FLAGS > "$tmpdir/$idx.json" 2>&1 + idx=$((idx + 1)) + + $TERPD tx tokenfactory mint "${IBC_MINT_AMOUNT}${denom}" $GEN_FLAGS > "$tmpdir/$idx.json" 2>&1 + idx=$((idx + 1)) + done + + # Merge, sign, broadcast (same pattern as mint_tokenfactory_tokens) + local all_files="" + for i in $(seq 0 $((idx - 1))); do + # Validate + if ! jq -e '.body.messages | length > 0' "$tmpdir/$i.json" > /dev/null 2>&1; then + err "IBC test denom msg $i failed to generate" + rm -rf "$tmpdir" + return + fi + all_files="$all_files $tmpdir/$i.json" + done + + local total_gas=$(( idx * 900000 )) + local total_fee=$(( total_gas / 4 )) + + # shellcheck disable=SC2086 + jq -s --argjson gas "$total_gas" --argjson fee "$total_fee" ' + . as $txs | + $txs[0] | + .body.messages = [ $txs[] | .body.messages[] ] | + .auth_info.fee.gas_limit = ($gas | tostring) | + .auth_info.fee.amount = [{"denom":"uterp","amount":($fee | tostring)}] + ' $all_files > "$tmpdir/unsigned.json" + + docker cp "$tmpdir/unsigned.json" "$CONTAINER_NAME:/tmp/ibc_unsigned.json" + + local acct_json acct_num seq + acct_json=$($TERPD query auth account "$DEPLOYER_ADDRESS" --output json 2>/dev/null) + acct_num=$(echo "$acct_json" | jq -r '.account_number // .account.account_number // "0"') + seq=$(echo "$acct_json" | jq -r '.sequence // .account.sequence // "0"') + + log "Signing IBC test denom tx (account=$acct_num sequence=$seq)..." + docker exec "$CONTAINER_NAME" terpd tx sign /tmp/ibc_unsigned.json \ + --from deployer --keyring-backend test \ + --chain-id "$CHAIN_ID" \ + --account-number "$acct_num" \ + --sequence "$seq" \ + --output-document /tmp/ibc_signed.json + + log "Broadcasting IBC test denom tx..." + docker exec "$CONTAINER_NAME" terpd tx broadcast /tmp/ibc_signed.json \ + --broadcast-mode sync --output json > "$tmpdir/broadcast.json" 2>&1 || true + + local txhash + txhash=$(jq -r '.txhash // "n/a"' "$tmpdir/broadcast.json" 2>/dev/null || echo "n/a") + + if [ "$txhash" = "n/a" ]; then + err "IBC test denom broadcast failed" + rm -rf "$tmpdir" + return + fi + + # Poll for confirmation + local attempts=0 code="pending" + while [ "$code" = "pending" ]; do + attempts=$((attempts + 1)) + if [ "$attempts" -ge 30 ]; then + warn "IBC test denom tx not confirmed after 30 attempts" + rm -rf "$tmpdir" + return + fi + sleep 2 + local tx_result + tx_result=$(docker exec "$CONTAINER_NAME" terpd q tx "$txhash" --output json 2>/dev/null) || { sleep 2; continue; } + code=$(echo "$tx_result" | jq -r '.code // 0') + done + + if [ "$code" != "0" ]; then + err "IBC test denom tx failed on-chain (code=$code)" + rm -rf "$tmpdir" + return + fi + + TF_DENOM_IBC_TEST_A="factory/$DEPLOYER_ADDRESS/ibc-test-a" + TF_DENOM_IBC_TEST_B="factory/$DEPLOYER_ADDRESS/ibc-test-b" + log "IBC test denoms created:" + echo " $TF_DENOM_IBC_TEST_A" + echo " $TF_DENOM_IBC_TEST_B" + + # ── IBC transfer from terp to chain B ───────────────────────── + # Get the chain B receiver address (use the relayer's chain B key) + local RECV_ADDR + RECV_ADDR=$(docker exec ibc-relayer rly keys show "$CHAIN_B_ALIAS" "$CHAIN_B_KEY_NAME" 2>/dev/null) || true + + if [ -z "$RECV_ADDR" ]; then + warn "Could not get $CHAIN_B_ALIAS receiver address — skipping IBC transfer test" + rm -rf "$tmpdir" + return + fi + + log "Sending IBC transfer: 1000000 ibc-test-a from terp to $CHAIN_B_ALIAS ($RECV_ADDR)..." + + # Execute the IBC transfer directly (not generate-only) for simplicity + local ibc_result + ibc_result=$(docker exec "$CONTAINER_NAME" terpd tx ibc-transfer transfer \ + transfer/channel-0 "$RECV_ADDR" \ + "1000000${TF_DENOM_IBC_TEST_A}" \ + --from deployer --keyring-backend test \ + --chain-id "$CHAIN_ID" \ + --fees 500000uterp --gas 400000 \ + --packet-timeout-height 0-0 \ + --packet-timeout-timestamp 0 \ + -y --output json 2>/dev/null) || true + + local ibc_txhash + ibc_txhash=$(echo "$ibc_result" | jq -r '.txhash // "n/a"' 2>/dev/null || echo "n/a") + log "IBC transfer txhash: $ibc_txhash" + + if [ "$ibc_txhash" = "n/a" ]; then + warn "IBC transfer broadcast may have failed — check manually" + rm -rf "$tmpdir" + return + fi + + # Wait for the packet to be relayed (give the relayer time) + log "Waiting for IBC packet relay (up to 30s)..." + sleep 10 + + # Verify the transfer on chain B via REST + # The IBC denom on chain B will be: ibc/)> + local denom_path="transfer/channel-0/$TF_DENOM_IBC_TEST_A" + local ibc_denom_hash + ibc_denom_hash=$(echo -n "$denom_path" | shasum -a 256 | awk '{print toupper($1)}') + local ibc_denom_on_b="ibc/$ibc_denom_hash" + + log "Expected IBC denom on $CHAIN_B_ALIAS: $ibc_denom_on_b" + log "Denom trace: $denom_path" + + # Query chain B REST for the receiver's balance + local b_balance + b_balance=$(curl -sf "${CHAIN_B_REST}/cosmos/bank/v1beta1/balances/${RECV_ADDR}" 2>/dev/null) || true + + if [ -n "$b_balance" ]; then + log "$CHAIN_B_ALIAS receiver balances:" + echo "$b_balance" | jq '.balances' 2>/dev/null || echo "$b_balance" + + # Check if the IBC denom appears + local ibc_amount + ibc_amount=$(echo "$b_balance" | jq -r ".balances[] | select(.denom == \"$ibc_denom_on_b\") | .amount // \"0\"" 2>/dev/null || echo "0") + if [ -n "$ibc_amount" ] && [ "$ibc_amount" != "0" ] && [ "$ibc_amount" != "" ]; then + log "IBC transfer verified: $ibc_amount of $ibc_denom_on_b on $CHAIN_B_ALIAS" + else + warn "IBC denom not yet visible on $CHAIN_B_ALIAS — packet may still be in flight" + warn "Check manually: curl ${CHAIN_B_REST}/cosmos/bank/v1beta1/balances/${RECV_ADDR}" + fi + else + warn "Could not query $CHAIN_B_ALIAS REST for balances" + fi + + rm -rf "$tmpdir" + log "IBC test transfer phase complete" +} + +# ─── Cleanup on exit ────────────────────────────────────────── +cleanup() { + # # Restore website files from backups + # for f in pages/index.html pages/tabs.html pages/mint.html; do + # if [ -f "$WEBSITE_DIR/${f}.bak" ]; then + # mv "$WEBSITE_DIR/${f}.bak" "$WEBSITE_DIR/${f}" + # fi + # done + # log "Restored website files from backups" + + # Stop terp-docs + if [ -n "$DOCS_PID" ] && kill -0 "$DOCS_PID" 2>/dev/null; then + log "Stopping terp-docs (PID=$DOCS_PID)..." + kill "$DOCS_PID" 2>/dev/null || true + fi + + # Stop IBC relayer container + if docker ps -q --filter "name=ibc-relayer" | grep -q .; then + log "Stopping IBC relayer..." + docker stop ibc-relayer 2>/dev/null || true + docker rm ibc-relayer 2>/dev/null || true + fi + + # Stop second local chain (local IBC mode) + if [ "$ENABLE_IBC" = "true" ] && docker ps -q --filter "name=$CHAIN2_CONTAINER" | grep -q .; then + log "Stopping $CHAIN2_CONTAINER..." + docker stop "$CHAIN2_CONTAINER" 2>/dev/null || true + fi + + # Stop Akash devnet + if [ "$ENABLE_AKASH" = "true" ] && [ -f "$AKASH_DEVNET_SCRIPT" ]; then + log "Stopping Akash devnet..." + "$AKASH_DEVNET_SCRIPT" stop 2>/dev/null || true + fi + + if [ "$SKIP_DOCKER" != "true" ]; then + log "Stopping $CONTAINER_NAME..." + docker stop "$CONTAINER_NAME" 2>/dev/null || true + fi +} +trap cleanup EXIT + +# ═══════════════════════════════════════════════════════════════ +# MAIN +# ═══════════════════════════════════════════════════════════════ +main() { + step "Local Test Environment for terp.network" + echo "Chain ID: $CHAIN_ID" + echo "Website: $WEBSITE_DIR" + echo "cw-infuser: $CW_INFUSER_DIR" + echo "terp-accounts: $TERP_ACCOUNTS_DIR" + echo "Akash devnet: $ENABLE_AKASH" + echo "Local IBC: $ENABLE_IBC" + echo "" + + check_prereqs + start_chain + start_chain2 # Phase 1b (gated: ENABLE_IBC=true, not ENABLE_AKASH) + fund_accounts + mint_tokenfactory_tokens + deploy_cw_infuser + deploy_terp_accounts + start_akash_devnet # Phase 7 (gated: ENABLE_AKASH=true) + start_ibc_relayer # Phase 8 (Akash or local IBC) + ibc_test_transfers # Phase 9 (requires Phase 8) + configure_website + start_terp_docs # Phase 6 (optional, needs pnpm + terp-docs) + start_dev_server +} + +main "$@" diff --git a/scripts/sh/post_init.sh b/scripts/sh/post_init.sh new file mode 100755 index 0000000..316e639 --- /dev/null +++ b/scripts/sh/post_init.sh @@ -0,0 +1,20 @@ +#!/bin/bash +# post_init.sh — Genesis & config patches for local test environment +# Mounted into localterp container and run before chain start. + +GENESIS=~/.terp/config/genesis.json +CONFIG_TOML=~/.terp/config/config.toml + +# ── Tokenfactory params ────────────────────────────────────────────────────── +# Set denom_creation_fee to 1 THIOL (1000000 uthiol) instead of default stake. +# Matches morocco-1 params (ref: D2C873EDC5CEA1CC0F10A45877073BC42A11854F836F5709791BE2AA2321CCC6) +jq '.app_state.tokenfactory.params.denom_creation_fee = [{"denom":"uterp","amount":"1000000"}]' \ + "$GENESIS" > "$GENESIS.tmp" && mv "$GENESIS.tmp" "$GENESIS" + +echo "post_init: tokenfactory denom_creation_fee = 1000000uterp" + +# ── CometBFT RPC CORS ──────────────────────────────────────────────────────── +# serve.py proxies /rpc → :26657, but set this anyway for direct curl access. +sed -i 's/^cors_allowed_origins = \[.*\]/cors_allowed_origins = ["*"]/' "$CONFIG_TOML" + +echo "post_init: RPC CORS enabled" diff --git a/scripts/sh/post_init_chain2.sh b/scripts/sh/post_init_chain2.sh new file mode 100755 index 0000000..6420024 --- /dev/null +++ b/scripts/sh/post_init_chain2.sh @@ -0,0 +1,21 @@ +#!/bin/bash +# post_init_chain2.sh — Genesis & config patches for the second local chain (120u-2) +# Mounted into localterp-2 container as /root/post_init.sh. +# Does everything post_init.sh does, plus patches chain-id to 120u-2. + +GENESIS=~/.terp/config/genesis.json +CONFIG_TOML=~/.terp/config/config.toml + +# ── Patch chain-id ──────────────────────────────────────────────────────────── +# The bootstrap script initialises with 120u-1; override to 120u-2. +jq '.chain_id = "120u-2"' "$GENESIS" > "$GENESIS.tmp" && mv "$GENESIS.tmp" "$GENESIS" +echo "post_init_chain2: chain_id → 120u-2" + +# ── Tokenfactory params ────────────────────────────────────────────────────── +jq '.app_state.tokenfactory.params.denom_creation_fee = [{"denom":"uterp","amount":"1000000"}]' \ + "$GENESIS" > "$GENESIS.tmp" && mv "$GENESIS.tmp" "$GENESIS" +echo "post_init_chain2: tokenfactory denom_creation_fee = 1000000uterp" + +# ── CometBFT RPC CORS ──────────────────────────────────────────────────────── +sed -i 's/^cors_allowed_origins = \[.*\]/cors_allowed_origins = ["*"]/' "$CONFIG_TOML" +echo "post_init_chain2: RPC CORS enabled" diff --git a/scripts/sh/sync-bundles.sh b/scripts/sh/sync-bundles.sh new file mode 100755 index 0000000..30db255 --- /dev/null +++ b/scripts/sh/sync-bundles.sh @@ -0,0 +1,119 @@ +#!/usr/bin/env bash +# ═══════════════════════════════════════════════════════════════════ +# sync-bundles.sh — Build & sync contract TS bundles into website/lib/ +# +# Regenerates TypeScript clients from contract schemas, bundles them +# with esbuild, and copies the ESM output to the website's lib/ dir. +# +# Usage: +# ./tests/sync-bundles.sh # rebuild + copy all +# ./tests/sync-bundles.sh --copy-only # skip codegen, just copy existing dist/ +# ./tests/sync-bundles.sh --list # show what would be copied +# ═══════════════════════════════════════════════════════════════════ +set -euo pipefail + +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +WEBSITE_DIR="$(cd "$SCRIPT_DIR/.." && pwd)" +LIB_DIR="$WEBSITE_DIR/lib" + +# ─── Bundle sources ────────────────────────────────────────────── +# Each entry: ||,,... +# +# To add a new contract repo, append a line here. +# The bundle names match the `outName` field in that repo's codegen.ts. +BUNDLE_SOURCES=( + "$HOME/terp-account-billboards|scripts/ts|account-minter,terp721-account" + "$HOME/cw-infuser|scripts/ts|cw-infuser,cw721-svg,cw-svg-minter,cw-infuser-factory,whitelist-merkletree" + "$HOME/shitstrap|scripts/ts|cw-shitstrap,cw-shitstrap-factory" +) + +# ─── Colors ────────────────────────────────────────────────────── +GREEN='\033[0;32m' +YELLOW='\033[1;33m' +RED='\033[0;31m' +CYAN='\033[0;36m' +NC='\033[0m' +log() { echo -e "${GREEN}[+]${NC} $*"; } +warn() { echo -e "${YELLOW}[!]${NC} $*"; } +err() { echo -e "${RED}[x]${NC} $*" >&2; } + +# ─── Flags ─────────────────────────────────────────────────────── +COPY_ONLY=false +LIST_ONLY=false +for arg in "$@"; do + case "$arg" in + --copy-only) COPY_ONLY=true ;; + --list) LIST_ONLY=true ;; + -h|--help) + echo "Usage: $0 [--copy-only] [--list]" + echo " --copy-only Skip codegen/build, just copy existing dist/ bundles" + echo " --list Show what would be copied without doing anything" + exit 0 + ;; + *) err "Unknown flag: $arg"; exit 1 ;; + esac +done + +# ─── Main ──────────────────────────────────────────────────────── +mkdir -p "$LIB_DIR" + +total=0 +for source in "${BUNDLE_SOURCES[@]}"; do + IFS='|' read -r repo_root ts_rel bundles_csv <<< "$source" + ts_dir="$repo_root/$ts_rel" + dist_esm="$ts_dir/dist/esm" + + repo_name=$(basename "$repo_root") + + if [ ! -d "$ts_dir" ]; then + warn "Skipping $repo_name — $ts_dir not found" + continue + fi + + echo -e "\n${CYAN}── $repo_name ──${NC}" + + # Rebuild if not --copy-only / --list + if [ "$COPY_ONLY" = false ] && [ "$LIST_ONLY" = false ]; then + if [ ! -f "$ts_dir/package.json" ]; then + warn "No package.json in $ts_dir — skipping build" + else + log "Running codegen in $ts_dir ..." + (cd "$ts_dir" && npm run codegen) + fi + fi + + # Copy each bundle + IFS=',' read -ra bundle_names <<< "$bundles_csv" + for name in "${bundle_names[@]}"; do + src="$dist_esm/${name}.js" + dst="$LIB_DIR/${name}.js" + + if [ "$LIST_ONLY" = true ]; then + if [ -f "$src" ]; then + echo " $src -> $dst" + else + echo " $src (NOT FOUND)" + fi + continue + fi + + if [ ! -f "$src" ]; then + warn " ${name}.js not found at $dist_esm — run codegen first?" + continue + fi + + cp "$src" "$dst" + # Copy sourcemap if available + [ -f "${src}.map" ] && cp "${src}.map" "${dst}.map" + log " ${name}.js" + total=$((total + 1)) + done +done + +if [ "$LIST_ONLY" = true ]; then + echo "" + log "Dry run — no files copied" +else + echo "" + log "Synced $total bundle(s) to $LIB_DIR" +fi diff --git a/scripts/sh/update-checksums.sh b/scripts/sh/update-checksums.sh new file mode 100755 index 0000000..2c78bba --- /dev/null +++ b/scripts/sh/update-checksums.sh @@ -0,0 +1,140 @@ +#!/bin/bash +# Script to update checksums in README.md +# This should be run whenever the installer scripts are updated + +set -e + +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +INSTALL_DIR="$SCRIPT_DIR/install" +README="$SCRIPT_DIR/README.md" + +echo "🔐 Generating checksums for installer scripts..." + +# Check if required tools are installed +if ! command -v shasum &> /dev/null && ! command -v sha256sum &> /dev/null; then + echo "❌ Error: Neither shasum nor sha256sum found. Please install one." + exit 1 +fi + +if ! command -v b3sum &> /dev/null; then + echo "⚠️ Warning: b3sum not found. Install with: cargo install b3sum" + echo " Continuing with SHA256 only..." + BLAKE3_AVAILABLE=false +else + BLAKE3_AVAILABLE=true +fi + +cd "$INSTALL_DIR" + +# Generate SHA256 checksums +echo "📝 Generating SHA256 checksums..." +if command -v sha256sum &> /dev/null; then + SHA256_PY=$(sha256sum terp-installer.py | awk '{print $1}') + SHA256_SH=$(sha256sum terp-installer.sh | awk '{print $1}') +else + SHA256_PY=$(shasum -a 256 terp-installer.py | awk '{print $1}') + SHA256_SH=$(shasum -a 256 terp-installer.sh | awk '{print $1}') +fi + +echo " terp-installer.py: $SHA256_PY" +echo " terp-installer.sh: $SHA256_SH" + +# Generate BLAKE3 checksums if available +if [ "$BLAKE3_AVAILABLE" = true ]; then + echo "📝 Generating BLAKE3 checksums..." + BLAKE3_PY=$(b3sum terp-installer.py | awk '{print $1}') + BLAKE3_SH=$(b3sum terp-installer.sh | awk '{print $1}') + echo " terp-installer.py: $BLAKE3_PY" + echo " terp-installer.sh: $BLAKE3_SH" +fi + +# Update README.md +echo "📄 Updating README.md..." + +cd "$SCRIPT_DIR" + +# Create temporary file with updated checksums +TEMP_FILE=$(mktemp) + +# Flag to track if we're in the checksums section +IN_SHA256_SECTION=false +IN_BLAKE3_SECTION=false +SKIP_NEXT_LINE=false + +while IFS= read -r line; do + # Skip line if flagged + if [ "$SKIP_NEXT_LINE" = true ]; then + SKIP_NEXT_LINE=false + continue + fi + + # Check if we're entering SHA256 section + if [[ "$line" == "#### SHA256 Checksums" ]]; then + IN_SHA256_SECTION=true + SKIP_NEXT_LINE=true # Skip the next ``` line + echo "$line" >> "$TEMP_FILE" + echo '```' >> "$TEMP_FILE" + echo "$SHA256_PY terp-installer.py" >> "$TEMP_FILE" + echo "$SHA256_SH terp-installer.sh" >> "$TEMP_FILE" + continue + fi + + # Check if we're entering BLAKE3 section + if [[ "$line" == "#### BLAKE3 Checksums" ]]; then + IN_BLAKE3_SECTION=true + SKIP_NEXT_LINE=true # Skip the next ``` line + echo "$line" >> "$TEMP_FILE" + echo '```' >> "$TEMP_FILE" + if [ "$BLAKE3_AVAILABLE" = true ]; then + echo "$BLAKE3_PY terp-installer.py" >> "$TEMP_FILE" + echo "$BLAKE3_SH terp-installer.sh" >> "$TEMP_FILE" + else + echo "# BLAKE3 checksums not available - install b3sum" >> "$TEMP_FILE" + fi + continue + fi + + # Skip old checksum lines in SHA256 section + if [ "$IN_SHA256_SECTION" = true ]; then + if [[ "$line" == '```' ]]; then + echo "$line" >> "$TEMP_FILE" + IN_SHA256_SECTION=false + continue + elif [[ "$line" =~ ^[0-9a-f]{64}[[:space:]]+terp-installer\.(py|sh)$ ]]; then + # Skip old checksum + continue + fi + fi + + # Skip old checksum lines in BLAKE3 section + if [ "$IN_BLAKE3_SECTION" = true ]; then + if [[ "$line" == '```' ]]; then + echo "$line" >> "$TEMP_FILE" + IN_BLAKE3_SECTION=false + continue + elif [[ "$line" =~ ^[0-9a-f]{64}[[:space:]]+terp-installer\.(py|sh)$ ]] || [[ "$line" =~ ^#.*BLAKE3 ]]; then + # Skip old checksum + continue + fi + fi + + echo "$line" >> "$TEMP_FILE" +done < "$README" + +# Replace original README with updated version +mv "$TEMP_FILE" "$README" + +echo "✅ README.md updated successfully!" +echo "" +echo "📋 Summary:" +echo " SHA256 checksums: ✓" +if [ "$BLAKE3_AVAILABLE" = true ]; then + echo " BLAKE3 checksums: ✓" +else + echo " BLAKE3 checksums: ⊘ (b3sum not installed)" +fi +echo "" +echo "🔄 Don't forget to:" +echo " 1. Review the changes: git diff README.md" +echo " 2. Commit the updated README: git add README.md && git commit -m 'Update installer checksums'" +echo " 3. Rebuild Docker image: docker-compose build" diff --git a/scripts/src/chain_spawn.rs b/scripts/src/chain_spawn.rs new file mode 100644 index 0000000..a6bde6c --- /dev/null +++ b/scripts/src/chain_spawn.rs @@ -0,0 +1,342 @@ +use std::collections::HashMap; + +use ict_rs::auth::{generate_mnemonic, KeyringAuthenticator}; +use ict_rs::chain::{Chain, ChainConfig, FaucetConfig}; +use ict_rs::chain::cosmos::CosmosChain; +use ict_rs::error::{IctError, Result as IctResult}; +use ict_rs::interchain::{Interchain, InterchainBuildOptions, InterchainLink}; +use ict_rs::relayer::{build_relayer, RelayerType}; +use ict_rs::runtime::{DockerConfig, DockerImage, IctRuntime}; +use ict_rs::testing::{setup_chain_with_wallets, TestChain, TestEnv}; +use ict_rs::tx::WalletAmount; + +fn env_or(key: &str, default: &str) -> String { + std::env::var(key).unwrap_or_else(|_| default.to_string()) +} + +/// A spawned local chain with host-accessible endpoints and faucet. +pub struct SpawnedChain { + pub tc: TestChain, + pub grpc_url: String, + pub rpc_url: String, + pub chain_id: String, + /// Mnemonic for the pre-funded deployer wallet. + pub mnemonic: String, +} + +impl SpawnedChain { + /// Clean up Docker containers. Respects `ICT_KEEP_CONTAINERS=1`. + pub async fn cleanup(&mut self) -> anyhow::Result<()> { + self.tc.cleanup().await?; + Ok(()) + } +} + +/// Host-accessible endpoint URLs for a chain. +pub struct ChainEndpoints { + pub grpc_url: String, + pub rpc_url: String, + pub chain_id: String, +} + +/// A spawned dual-chain environment with IBC relayer. +pub struct SpawnedDualChain { + pub ic: Interchain, + pub chain_a: ChainEndpoints, + pub chain_b: ChainEndpoints, +} + +impl SpawnedDualChain { + pub async fn cleanup(&mut self) -> anyhow::Result<()> { + self.ic.close().await?; + Ok(()) + } +} + +pub const CHAIN_ID: &str = "120u-1"; +pub const CHAIN_ID_B: &str = "120u-2"; + +/// Build a chain config for the given chain_id. +/// +/// Uses `local-zk` image (superset of localterp: all features + halo2 verification). +/// Override image via `TERP_IMAGE_REPO` / `TERP_IMAGE_VERSION` env vars. +fn base_chain_config(chain_id: &str) -> ChainConfig { + let mut cfg = TestEnv::terp_localterp_config(); + + // Override image to local-zk + cfg.images = vec![DockerImage { + repository: env_or("TERP_IMAGE_REPO", "terpnetwork/terp-core"), + version: env_or("`TERP_IMAGE_VERSION`", "v5.2.0-zk-localterp"), + uid_gid: None, + }]; + + cfg.chain_id = chain_id.to_string(); + + // Faucet: add uthiol to the default denoms + cfg.faucet = Some(FaucetConfig { + env: vec![ + ("FAUCET_WALLET_NAME".to_string(), "faucet".to_string()), + ("FAUCET_AMOUNT".to_string(), "1000000000".to_string()), + ("DENOMS".to_string(), "uterp,uthiol".to_string()), + ], + ..FaucetConfig::default() + }); + + // CometBFT config: enable CORS + fast blocks + cfg.config_file_overrides.insert( + "config/config.toml".to_string(), + serde_json::json!({ + "rpc": { + "cors_allowed_origins": ["*"], + "max_subscription_clients": 100, + "max_subscriptions_per_client": 50 + }, + "consensus": { + "timeout_propose": "200ms", + "timeout_prevote": "200ms", + "timeout_precommit": "200ms", + "timeout_commit": "200ms" + } + }), + ); + + // App config: enable gRPC + CORS + cfg.config_file_overrides.insert( + "config/app.toml".to_string(), + serde_json::json!({ + "api": { + "enable": true, + "enabled-unsafe-cors": true + }, + "grpc": { + "enable": true, + "address": "0.0.0.0:9090" + } + }), + ); + + // Genesis modifications + cfg.modify_genesis = Some(Box::new(modify_genesis)); + + cfg +} + +/// Single-chain config (backward compat). +fn chain_config() -> ChainConfig { + base_chain_config(CHAIN_ID) +} + +/// Genesis modifications: +/// - Set staking/gov/mint denoms to uterp +/// - Fast governance (90s voting) +/// - Set tokenfactory denom_creation_fee +/// - Enable vote extensions for hashmerchant module +fn modify_genesis(_cfg: &ChainConfig, raw: Vec) -> IctResult> { + let mut genesis: serde_json::Value = + serde_json::from_slice(&raw).map_err(|e| IctError::Other(e.into()))?; + + let app_state = genesis + .get_mut("app_state") + .ok_or_else(|| IctError::Config("missing app_state in genesis".into()))?; + + // Staking + if let Some(staking) = app_state.get_mut("staking") { + if let Some(params) = staking.get_mut("params") { + params["bond_denom"] = serde_json::json!("uterp"); + params["unbonding_time"] = serde_json::json!("90s"); + } + } + + // Mint + if let Some(mint) = app_state.get_mut("mint") { + if let Some(params) = mint.get_mut("params") { + params["mint_denom"] = serde_json::json!("uterp"); + } + } + + // Governance — fast voting + if let Some(gov) = app_state.get_mut("gov") { + if let Some(params) = gov.get_mut("params") { + params["voting_period"] = serde_json::json!("90s"); + params["expedited_voting_period"] = serde_json::json!("15s"); + if let Some(min_dep) = params.get_mut("min_deposit") { + if let Some(arr) = min_dep.as_array_mut() { + if let Some(first) = arr.first_mut() { + first["denom"] = serde_json::json!("uterp"); + } + } + } + if let Some(exp_dep) = params.get_mut("expedited_min_deposit") { + if let Some(arr) = exp_dep.as_array_mut() { + if let Some(first) = arr.first_mut() { + first["denom"] = serde_json::json!("uterp"); + } + } + } + } + // Legacy deposit_params + if let Some(dp) = gov.get_mut("deposit_params") { + if let Some(min_dep) = dp.get_mut("min_deposit") { + if let Some(arr) = min_dep.as_array_mut() { + if let Some(first) = arr.first_mut() { + first["denom"] = serde_json::json!("uterp"); + } + } + } + } + } + + // Tokenfactory denom creation fee + if let Some(tf) = app_state.get_mut("tokenfactory") { + if let Some(params) = tf.get_mut("params") { + params["denom_creation_fee"] = + serde_json::json!([{"denom": "uterp", "amount": "1000000"}]); + } + } + + // Enable vote extensions for hashmerchant module (local-zk) + // SDK v0.50+: consensus.params.abci + if let Some(consensus) = genesis.get_mut("consensus") { + if let Some(params) = consensus.get_mut("params") { + if let Some(abci) = params.get_mut("abci") { + abci["vote_extensions_enable_height"] = serde_json::json!("2"); + } else { + params["abci"] = + serde_json::json!({"vote_extensions_enable_height": "2"}); + } + } + } + // Older SDK: consensus_params.abci + if let Some(cp) = genesis.get_mut("consensus_params") { + if let Some(abci) = cp.get_mut("abci") { + abci["vote_extensions_enable_height"] = serde_json::json!("2"); + } else { + cp["abci"] = serde_json::json!({"vote_extensions_enable_height": "2"}); + } + } + + serde_json::to_vec_pretty(&genesis).map_err(|e| IctError::Other(e.into())) +} + +/// Generate a mnemonic and derive its bech32 address with the given prefix. +fn generate_funded_wallet(prefix: &str) -> anyhow::Result<(String, String)> { + let mnemonic = generate_mnemonic(); + let auth = KeyringAuthenticator::new(&mnemonic, 118)?; + let address = auth.bech32_address(prefix)?; + Ok((mnemonic, address)) +} + +/// Spawn a single-validator local chain via ict-rs Docker runtime. +/// +/// Uses `local-zk` image with in-container faucet (port 5000). +/// A deployer wallet is generated, funded at genesis, and its mnemonic returned. +pub async fn spawn_local_chain() -> anyhow::Result { + let cfg = chain_config(); + + // Generate a deployer wallet and fund it at genesis + let (mnemonic, address) = generate_funded_wallet("terp")?; + tracing::info!(deployer = %address, "Generated deployer wallet"); + + let genesis_wallets = vec![ + WalletAmount { address: address.clone(), denom: "uterp".into(), amount: 10_000_000_000_000 }, + WalletAmount { address, denom: "uthiol".into(), amount: 10_000_000_000_000 }, + ]; + + let tc = setup_chain_with_wallets("localterp", cfg, genesis_wallets).await?; + + let grpc_url = tc.host_grpc_address(); + let rpc_url = tc.host_rpc_address(); + + tracing::info!( + chain_id = CHAIN_ID, + grpc = %grpc_url, + rpc = %rpc_url, + "Local chain spawned with faucet" + ); + + Ok(SpawnedChain { + tc, + grpc_url, + rpc_url, + chain_id: CHAIN_ID.to_string(), + mnemonic, + }) +} + +/// Spawn two local chains with a Hermes IBC relayer between them. +/// +/// Chain A: `120u-1`, Chain B: `120u-2`. Both use `local-zk` image. +/// An IBC transfer channel is created automatically. +pub async fn spawn_dual_chain() -> anyhow::Result { + let test_name = "localterp-ibc"; + let network_id = format!("ict-{test_name}"); + + let runtime = IctRuntime::Docker(DockerConfig::default()) + .into_backend() + .await?; + runtime.create_network(&network_id).await?; + + let config_a = base_chain_config(CHAIN_ID); + let config_b = base_chain_config(CHAIN_ID_B); + + let chain_a = CosmosChain::new(config_a, 1, 0, runtime.clone()); + let chain_b = CosmosChain::new(config_b, 1, 0, runtime.clone()); + + let relayer = build_relayer( + RelayerType::Hermes, + runtime.clone(), + test_name, + &network_id, + ) + .await?; + + let mut ic = Interchain::new(runtime) + .add_chain(Box::new(chain_a)) + .add_chain(Box::new(chain_b)) + .add_relayer("hermes", relayer) + .add_link(InterchainLink { + chain1: CHAIN_ID.to_string(), + chain2: CHAIN_ID_B.to_string(), + relayer: "hermes".to_string(), + path: "ibc-path".to_string(), + }); + + ic.build(InterchainBuildOptions { + test_name: test_name.to_string(), + skip_path_creation: false, + genesis_wallets: HashMap::new(), + }) + .await?; + + // Read host-accessible endpoints from running chains + let a = ic.get_chain(CHAIN_ID).expect("chain A not found after build"); + let b = ic + .get_chain(CHAIN_ID_B) + .expect("chain B not found after build"); + + let chain_a_ep = ChainEndpoints { + grpc_url: a.host_grpc_address(), + rpc_url: a.host_rpc_address(), + chain_id: CHAIN_ID.to_string(), + }; + + let chain_b_ep = ChainEndpoints { + grpc_url: b.host_grpc_address(), + rpc_url: b.host_rpc_address(), + chain_id: CHAIN_ID_B.to_string(), + }; + + tracing::info!( + chain_a = CHAIN_ID, + chain_b = CHAIN_ID_B, + grpc_a = %chain_a_ep.grpc_url, + grpc_b = %chain_b_ep.grpc_url, + "Dual chain spawned with Hermes relayer" + ); + + Ok(SpawnedDualChain { + ic, + chain_a: chain_a_ep, + chain_b: chain_b_ep, + }) +} diff --git a/scripts/src/deploy_data.rs b/scripts/src/deploy_data.rs new file mode 100644 index 0000000..2465d8e --- /dev/null +++ b/scripts/src/deploy_data.rs @@ -0,0 +1,373 @@ +use std::path::{Path, PathBuf}; + +use cosmwasm_std::{Addr, Binary, Decimal}; +use cw_headstash::tokenfactory::{HeadstashTokenObject, TokenStrategy}; +use cw_headstash::wavs::{WavsAuthMetadata, WavsOpAuth, WavsProofOfOwnership}; +use cw_infuser_scripts::suite::svg::load_svg_init_msg; +use cw_infuser_scripts::suite::whitelist::load_terp_warrior_mtree; +use cw_infuser_scripts::suite::CwSvgSuiteDeployData; +use shit_scripts::{CwShitstrapSuiteDeployData, PossibleShit, ShitInitMsg, UncheckedDenom}; + +/// Root of the cw-infuser repo (where `scripts/svgs/` and `data/` live). +fn cw_infuser_root() -> PathBuf { + Path::new(env!("CARGO_MANIFEST_DIR")) + .join("../../../cw-infuser") +} + +/// Root of the dao-contracts repo (where `artifacts/` should live). +fn dao_contracts_root() -> PathBuf { + Path::new(env!("CARGO_MANIFEST_DIR")) + .join("../../../abstract/dao-contracts") +} + +fn svg_init_path(collection: &str) -> String { + cw_infuser_root() + .join(format!("scripts/svgs/interchain/{collection}/init.json")) + .to_string_lossy() + .into_owned() +} + +fn mtree_init_path() -> String { + cw_infuser_root() + .join("data/mtree-init.json") + .to_string_lossy() + .into_owned() +} + +/// Check if DAO WASM artifacts are available. +fn dao_artifacts_available() -> bool { + let dir = dao_contracts_root().join("artifacts"); + if dir.is_dir() { + // Check at least dao_dao_core.wasm exists + dir.join("dao_dao_core.wasm").exists() + || dir.join("dao_dao_core-aarch64.wasm").exists() + } else { + false + } +} + +/// Preflight: verify all required data files exist before deploying. +/// Returns a list of missing paths (empty = all good). +pub fn preflight_check(full: bool) -> Vec { + let mut missing = Vec::new(); + + // SVG init files + let terp_path = svg_init_path("terp"); + if !Path::new(&terp_path).exists() { + missing.push(terp_path); + } + + // Merkle tree data (single mode only) + if !full { + let mt_path = mtree_init_path(); + if !Path::new(&mt_path).exists() { + missing.push(mt_path); + } + } + + if full { + let dao_path = svg_init_path("dao"); + if !Path::new(&dao_path).exists() { + missing.push(dao_path); + } + } + + missing +} + +/// Deploy configuration for the ZK headstash system. +pub struct ZkDeployData { + /// Owner address for the manifold factory. + pub owner: Option, + /// Instantiate message for the cw-headstash contract. + pub headstash_init: cw_headstash::msg::InstantiateMsg, + /// Combined VK bytes (`params || vk || cs || footer`) to register on-chain. + /// If `None`, VK registration is skipped (must be done separately). + pub vk_bytes: Option>, + /// Directory containing circuit key files (params.bin, vk_combined.bin, etc.). + pub keys_dir: Option, +} + +impl ZkDeployData { + /// Create deploy data for a local test deployment. + /// + /// `genesis_root` is the hex-encoded merkle root of the headstash tree. + /// `vk_combined_path` is the path to `vk_combined.bin` (optional). + /// Create deploy data for a local test deployment. + /// + /// Uses `ExistingFungible` token strategy with `uterp` for simplicity. + /// `genesis_root` is the raw merkle root bytes. + /// `vk_combined_path` points to `vk_combined.bin` (optional). + pub fn local_default( + admin: Addr, + genesis_root: &[u8], + vk_combined_path: Option<&Path>, + ) -> anyhow::Result { + let vk_bytes = match vk_combined_path { + Some(p) if p.exists() => Some(std::fs::read(p)?), + _ => None, + }; + + Ok(Self { + owner: Some(admin.to_string()), + headstash_init: cw_headstash::msg::InstantiateMsg { + genesis_root: Binary::from(genesis_root.to_vec()), + token_strategy: TokenStrategy::ExistingFungible(HeadstashTokenObject { + proof: Binary::default(), + raw: "uterp".into(), + }), + wavs: WavsProofOfOwnership { + poos: vec![], + msg: WavsAuthMetadata { + aggregate_key: String::new(), + threshold: 0, + total_operators: 0, + nonce: 0, + }, + }, + }, + vk_bytes, + keys_dir: None, + }) + } +} + +/// Top-level deploy configuration for all website suites. +/// +/// Each field is `Option` — only suites with `Some(data)` get deployed. +pub struct TerpNetworkDeployData { + pub admin: Addr, + pub cw_infuser: Option, + pub terp_billboards: Option, + pub shitstraps: Option, + #[cfg(feature = "dao")] + pub dao: Option, + /// ZK headstash contracts + circuits. `None` = skip ZK deploy. + pub zk: Option, +} + +impl TerpNetworkDeployData { + /// Minimal local deployment: one SVG collection + one shitstrap exchange. + pub fn local_default(sender: Addr) -> anyhow::Result { + let svg_data = deploy_data_single(sender.clone())?; + let shit_data = shit_deploy_data_single(sender.clone()); + + #[cfg(feature = "dao")] + let dao = if dao_artifacts_available() { + Some(sender.clone()) + } else { + eprintln!("WARN: DAO artifacts not found at {:?}/artifacts — skipping DaoDaoSuite", dao_contracts_root()); + eprintln!(" Build with: cd ~/abstract/dao-contracts && cargo run-script optimize"); + None + }; + + // Check for headstash circuit keys + let keys_dir = PathBuf::from( + std::env::var("HEADSTASH_KEYS_DIR") + .unwrap_or_else(|_| "./circuit_keys/headstash".into()), + ); + let vk_combined = keys_dir.join("vk_combined.bin"); + let zk = if vk_combined.exists() { + // Use a dummy genesis root for local testing — the real root + // comes from gen_headstash_tree output. + let genesis_root = std::env::var("HEADSTASH_GENESIS_ROOT") + .map(|hex| hex::decode(hex.trim_start_matches("0x")).unwrap_or_default()) + .unwrap_or_else(|_| vec![0u8; 32]); + + match ZkDeployData::local_default(sender.clone(), &genesis_root, Some(&vk_combined)) { + Ok(data) => { + eprintln!("INFO: Found headstash circuit keys at {:?}", keys_dir); + Some(data) + } + Err(e) => { + eprintln!("WARN: Failed to load ZK deploy data: {} — skipping headstash", e); + None + } + } + } else { + eprintln!( + "INFO: No headstash circuit keys at {:?} — skipping ZK deploy", + vk_combined + ); + eprintln!(" Generate with: cd headstash && cargo run --bin gen_headstash_keys"); + None + }; + + Ok(Self { + admin: sender.clone(), + cw_infuser: svg_data, + terp_billboards: Some(sender.clone()), + shitstraps: shit_data, + #[cfg(feature = "dao")] + dao, + zk, + }) + } + + /// Full deployment: multiple SVG collections + multiple shitstrap exchanges. + pub fn full(sender: Addr) -> anyhow::Result { + let svg_data = deploy_data_full(sender.clone())?; + let shit_data = shit_deploy_data_full(sender.clone()); + + #[cfg(feature = "dao")] + let dao = if dao_artifacts_available() { + Some(sender.clone()) + } else { + eprintln!("WARN: DAO artifacts not found at {:?}/artifacts — skipping DaoDaoSuite", dao_contracts_root()); + eprintln!(" Build with: cd ~/abstract/dao-contracts && cargo run-script optimize"); + None + }; + + Ok(Self { + admin: sender.clone(), + cw_infuser: svg_data, + terp_billboards: Some(sender.clone()), + shitstraps: shit_data, + #[cfg(feature = "dao")] + dao, + zk: None, // TODO: enable for full deploy + }) + } +} + +// --------------------------------------------------------------------------- +// cw-infuser deploy data builders +// --------------------------------------------------------------------------- + +/// Single SVG collection (terp warrior) with merkle-tree whitelist. +fn deploy_data_single(sender: Addr) -> anyhow::Result> { + let mut terp = load_svg_init_msg(&svg_init_path("terp"))?; + let mut mt = load_terp_warrior_mtree(&mtree_init_path())?; + terp.owner = Some(sender.to_string()); + mt.admins = vec![sender.to_string()]; + + Ok(Some(CwSvgSuiteDeployData { + svg: vec![(terp, Some(mt))], + infuse: None, + admin: Some(sender), + infuse_coins: vec![], + shit: None, + })) +} + +/// Multiple SVG collections (terp + dao). +fn deploy_data_full(sender: Addr) -> anyhow::Result> { + let mut terp = load_svg_init_msg(&svg_init_path("terp"))?; + let mut dao = load_svg_init_msg(&svg_init_path("dao"))?; + terp.owner = Some(sender.to_string()); + dao.owner = Some(sender.to_string()); + + Ok(Some(CwSvgSuiteDeployData { + svg: vec![(terp, None), (dao, None)], + infuse: None, + admin: Some(sender), + infuse_coins: vec![], + shit: None, + })) +} + +// --------------------------------------------------------------------------- +// shitstrap deploy data builders +// --------------------------------------------------------------------------- + +/// Single shitstrap: 20 THIOL in -> 1 TERP out. +fn shit_deploy_data_single(admin: Addr) -> Option { + let mut dd = CwShitstrapSuiteDeployData::default(); + dd.admin = Some(admin.clone()); + dd.shit = vec![ShitInitMsg { + daos: Vec::new(), + owner: Some(admin.to_string()), + accepted: vec![PossibleShit::native_denom( + "uthiol", + 50_000_000_000_000_000u128, + )], + cutoff: 500_000_000_000u128.into(), + shitmos: UncheckedDenom::Native("uterp".into()), + title: "terp".into(), + description: "terp".into(), + }]; + Some(dd) +} + +/// Multiple shistraps with spot-price-based exchange rates. +fn shit_deploy_data_full(admin: Addr) -> Option { + let mut dd = CwShitstrapSuiteDeployData::default(); + let cut = 710_000_000_000u128; + + let mut shit = Vec::new(); + + // atom @ $1.81 + shit.push(build_shit_init( + &admin, + &tf_denom(&admin, "atom"), + calc_rates(Decimal::from_ratio(181u128, 100u128)), + cut, + "atom", + )); + + // btc @ $66,350 + shit.push(build_shit_init( + &admin, + &tf_denom(&admin, "btc"), + calc_rates(Decimal::from_ratio(66350u128, 1u128)), + cut, + "btc", + )); + + // akt @ $0.29 + shit.push(build_shit_init( + &admin, + &tf_denom(&admin, "akt"), + calc_rates(Decimal::from_ratio(29u128, 100u128)), + cut, + "akt", + )); + + // um @ $0.007 + shit.push(build_shit_init( + &admin, + &tf_denom(&admin, "um"), + calc_rates(Decimal::from_ratio(7u128, 1000u128)), + cut, + "um", + )); + + // eth @ $1,956.12 + shit.push(build_shit_init( + &admin, + &tf_denom(&admin, "eth"), + calc_rates(Decimal::from_ratio(195612u128, 100u128)), + cut, + "eth", + )); + + dd.admin = Some(admin); + dd.shit = shit; + Some(dd) +} + +fn calc_rates(price: Decimal) -> u128 { + price.atomics().u128() * 100 +} + +fn tf_denom(creator: &Addr, subdenom: &str) -> String { + format!("factory/{}/{}", creator, subdenom) +} + +fn build_shit_init( + admin: &Addr, + native_denom: &str, + shit_rate: u128, + cutoff: u128, + title: &str, +) -> ShitInitMsg { + ShitInitMsg { + daos: Vec::new(), + owner: Some(admin.to_string()), + accepted: vec![PossibleShit::native_denom(native_denom, shit_rate)], + cutoff: cutoff.into(), + shitmos: UncheckedDenom::Native("uthiol".into()), + title: title.into(), + description: title.into(), + } +} diff --git a/scripts/src/deploy_zk.rs b/scripts/src/deploy_zk.rs new file mode 100644 index 0000000..b8e9858 --- /dev/null +++ b/scripts/src/deploy_zk.rs @@ -0,0 +1,154 @@ +use std::path::{Path, PathBuf}; + +use base64::Engine; +use ict_rs::chain::Chain; + +/// Write a host file into the chain container via base64 encoding. +async fn write_file_to_chain( + chain: &dyn Chain, + host_path: &Path, + container_path: &str, +) -> anyhow::Result<()> { + let data = std::fs::read(host_path) + .map_err(|e| anyhow::anyhow!("Failed to read {}: {}", host_path.display(), e))?; + let b64 = base64::engine::general_purpose::STANDARD.encode(&data); + let cmd = format!( + "printf '%s' '{}' | base64 -d > {}", + b64, container_path + ); + chain.exec(&["sh", "-c", &cmd], &[]).await?; + Ok(()) +} + +/// Resolve the terp-core root directory. +/// +/// Checks `ZK_ROOT` env var first, then walks up from the workspace +/// looking for `terp-core/` alongside `terp-rs/`. +fn resolve_zk_root() -> anyhow::Result { + if let Ok(root) = std::env::var("ZK_ROOT") { + return Ok(PathBuf::from(root)); + } + + // Walk up from workspace root (terp-rs/) → parent (ZK/) → terp-core/ + let home = std::env::var("HOME").unwrap_or_default(); + let candidate = PathBuf::from(&home).join("ZK/terp-core"); + if candidate.exists() { + return Ok(candidate); + } + + Err(anyhow::anyhow!( + "Cannot find terp-core. Set ZK_ROOT env var or ensure ~/ZK/terp-core/ exists." + )) +} + +/// Deploy the zk-wasmvm-test contract via `terpd tx wasm headstash`. +/// +/// This uses ict-rs chain_exec (not cw-orch) because the `headstash` upload +/// command bundles WASM + verification key in a single transaction. +/// +/// Returns the deployed contract address. +pub async fn deploy_zk_contract(chain: &dyn Chain) -> anyhow::Result { + let zk_root = resolve_zk_root()?; + + let wasm_path = zk_root.join("tests/interchaintest/contracts/zk_wasmvm_test.wasm"); + let vk_path = zk_root.join("tests/interchaintest/circuits/no_rick.bin"); + + if !wasm_path.exists() { + return Err(anyhow::anyhow!( + "WASM not found: {}. Build terp-core first.", + wasm_path.display() + )); + } + if !vk_path.exists() { + return Err(anyhow::anyhow!( + "VK not found: {}. Build terp-core first.", + vk_path.display() + )); + } + + tracing::info!("Copying ZK artifacts to container..."); + write_file_to_chain(chain, &wasm_path, "/tmp/zk_wasmvm_test.wasm").await?; + write_file_to_chain(chain, &vk_path, "/tmp/no_rick.bin").await?; + + // Upload contract + VK via headstash command + tracing::info!("Uploading ZK contract via headstash..."); + let upload_out = chain + .chain_exec(&[ + "tx", + "wasm", + "headstash", + "/tmp/zk_wasmvm_test.wasm", + "/tmp/no_rick.bin", + "--from", + "validator", + "--gas-prices", + "0uterp", + "--gas", + "auto", + "--gas-adjustment", + "1.5", + "-y", + "--output", + "json", + ]) + .await?; + tracing::debug!( + stdout = %String::from_utf8_lossy(&upload_out.stdout), + "headstash upload result" + ); + + // Wait for tx inclusion + tokio::time::sleep(std::time::Duration::from_secs(3)).await; + + // Instantiate the contract (code_id = 1, first upload) + tracing::info!("Instantiating ZK contract..."); + chain + .chain_exec(&[ + "tx", + "wasm", + "instantiate", + "1", + "{}", + "--from", + "validator", + "--label", + "zk-wasmvm-test", + "--no-admin", + "--gas-prices", + "0uterp", + "--gas", + "auto", + "--gas-adjustment", + "1.5", + "-y", + "--output", + "json", + ]) + .await?; + + tokio::time::sleep(std::time::Duration::from_secs(3)).await; + + // Query contract address + let query_out = chain + .chain_exec(&[ + "query", + "wasm", + "list-contract-by-code", + "1", + "--output", + "json", + ]) + .await?; + + let stdout_str = String::from_utf8_lossy(&query_out.stdout); + let json: serde_json::Value = serde_json::from_str(&stdout_str) + .map_err(|e| anyhow::anyhow!("Failed to parse contract query: {}", e))?; + + let addr = json["contracts"][0] + .as_str() + .ok_or_else(|| anyhow::anyhow!("No contract address found in query response"))? + .to_string(); + + tracing::info!(contract = %addr, "ZK contract deployed"); + Ok(addr) +} diff --git a/scripts/src/frontend.rs b/scripts/src/frontend.rs new file mode 100644 index 0000000..861f5c6 --- /dev/null +++ b/scripts/src/frontend.rs @@ -0,0 +1,149 @@ +//! Frontend server management: config patching + dev server spawning. +//! +//! After contract deployment, this module: +//! 1. Patches `public/config.json` with deployed addresses and chain endpoints +//! 2. Starts the main website dev server (serve.py, port 3000) +//! 3. Optionally starts terp-docs (Next.js, port 3001) + +use std::collections::HashMap; +use std::path::{Path, PathBuf}; +use std::process::{Child, Command}; + +/// Root of the website repo. +fn website_root() -> PathBuf { + Path::new(env!("CARGO_MANIFEST_DIR")).join("..") +} + +/// Root of the terp-docs repo (if it exists). +fn docs_root() -> PathBuf { + let home = std::env::var("HOME").unwrap_or_else(|_| ".".into()); + PathBuf::from(home).join("websites/terp-docs") +} + +/// Chain endpoint info for config patching. +pub struct ChainEndpointConfig { + pub chain_id: String, + pub rpc_url: String, + pub grpc_url: String, +} + +/// Patch `public/config.json` with deployed contract addresses and chain endpoints. +/// +/// Updates the chain entry matching `endpoints.chain_id`. Creates the entry if missing. +pub fn patch_config( + endpoints: &ChainEndpointConfig, + addresses: &HashMap, +) -> anyhow::Result<()> { + let config_path = website_root().join("public/config.json"); + let raw = std::fs::read_to_string(&config_path)?; + let mut config: serde_json::Value = serde_json::from_str(&raw)?; + + let chains = config + .get_mut("chains") + .and_then(|c| c.as_object_mut()) + .ok_or_else(|| anyhow::anyhow!("config.json missing 'chains' object"))?; + + // Get or create chain entry + let chain_id = &endpoints.chain_id; + if !chains.contains_key(chain_id) { + chains.insert(chain_id.clone(), serde_json::json!({})); + } + let entry = chains.get_mut(chain_id).unwrap(); + + // Patch chain-level fields + entry["chainId"] = serde_json::json!(chain_id); + entry["chainName"] = serde_json::json!("Local Terp"); + // RPC goes through serve.py proxy to avoid CORS + entry["rpc"] = serde_json::json!("http://localhost:3000/rpc"); + // REST: extract port from grpc URL, guess REST is on the same host + entry["rest"] = serde_json::json!(format!( + "http://localhost:{}", + extract_port(&endpoints.grpc_url).unwrap_or(1317) - 1 // REST is typically gRPC-1 + )); + entry["grpc"] = serde_json::json!(&endpoints.grpc_url); + + // Patch contracts + if entry.get("contracts").is_none() { + entry["contracts"] = serde_json::json!({}); + } + if let Some(contracts) = entry.get_mut("contracts").and_then(|c| c.as_object_mut()) { + for (key, addr) in addresses { + contracts.insert(key.clone(), serde_json::json!(addr)); + } + } + + let output = serde_json::to_string_pretty(&config)?; + std::fs::write(&config_path, output)?; + println!("Patched config.json for chain {}", chain_id); + + Ok(()) +} + +/// TODO: gives path of unified config to terp-docs Next.js app. +fn write_docs_env(addresses: &HashMap) -> anyhow::Result<()> { + let docs = docs_root(); + if !docs.exists() { + return Ok(()); + } + + Ok(()) +} + +/// Start the website dev server (serve.py) on port 3000. +/// +/// Sets `CHAIN_RPC` env var so the RPC proxy points to the actual chain RPC port. +pub fn start_website_server(chain_rpc_url: &str) -> anyhow::Result { + let serve_py = website_root().join("scripts/py/serve.py"); + println!("Starting website dev server on http://localhost:3000"); + println!(" RPC proxy -> {}", chain_rpc_url); + + let child = Command::new("python3") + .arg(&serve_py) + .env("CHAIN_RPC", chain_rpc_url) + .env("WEBSITE_PORT", "3000") + .spawn()?; + + Ok(child) +} + +/// Start the terp-docs dev server (pnpm dev) on port 3001. +/// +/// Returns None if terp-docs directory doesn't exist or pnpm isn't available. +pub fn start_docs_server(addresses: &HashMap) -> anyhow::Result> { + let docs = docs_root(); + if !docs.exists() { + println!("terp-docs not found at {:?} — skipping", docs); + return Ok(None); + } + + // Check pnpm is available + if Command::new("pnpm").arg("--version").output().is_err() { + println!("pnpm not found — skipping terp-docs"); + return Ok(None); + } + + // Write .env.local + write_docs_env(addresses)?; + + println!("Starting terp-docs on http://localhost:3001"); + + let child = Command::new("pnpm") + .args(["dev", "--port", "3001"]) + .current_dir(&docs) + .spawn()?; + + Ok(Some(child)) +} + +/// Extract port number from a URL like "http://localhost:55004". +fn extract_port(url: &str) -> Option { + url.rsplit(':').next()?.trim_end_matches('/').parse().ok() +} + +/// Kill child processes gracefully. +pub fn stop_servers(children: &mut Vec) { + for child in children.iter_mut() { + let _ = child.kill(); + let _ = child.wait(); + } +} diff --git a/scripts/src/lib.rs b/scripts/src/lib.rs new file mode 100644 index 0000000..b8615d2 --- /dev/null +++ b/scripts/src/lib.rs @@ -0,0 +1,8 @@ +pub mod chain_spawn; +pub mod deploy_data; +pub mod deploy_zk; +pub mod frontend; +pub mod suite; +pub mod wasm_build; + +pub use cw_infuser_scripts::{LOCAL_TERP, MOROCCO_1, TERPNET}; diff --git a/scripts/src/main.rs b/scripts/src/main.rs new file mode 100644 index 0000000..0640368 --- /dev/null +++ b/scripts/src/main.rs @@ -0,0 +1,298 @@ +use std::collections::HashMap; +use std::path::PathBuf; +use std::process::Child; + +use anyhow::{anyhow, Result}; +use clap::{Parser, Subcommand}; +use cw_orch::daemon::DaemonBuilder; +use cw_orch::environment::ChainKind; +use cw_orch::prelude::*; +use scripts::chain_spawn::{self, SpawnedChain, SpawnedDualChain}; +use scripts::deploy_data::{preflight_check, TerpNetworkDeployData}; +use scripts::frontend::{self, ChainEndpointConfig}; +use scripts::suite::TerpNetworkSuite; +use scripts::{LOCAL_TERP, MOROCCO_1}; + +#[derive(Parser)] +#[command(name = "terp-scripts", about = "Unified deploy/test suite for terp.network")] +struct Cli { + #[command(subcommand)] + command: Commands, +} + +#[derive(Subcommand)] +enum Commands { + /// Deploy contracts to a local or remote chain + Deploy { + /// Network: "local" or "mainnet" + #[arg(short, long, default_value = "local")] + network: String, + + /// Connect to an already-running chain (skip ict-rs spawn) + #[arg(long)] + skip_spawn: bool, + + /// Keep chain running after deploy (block until Ctrl+C) + #[arg(long)] + keep_alive: bool, + + /// Deploy only specific suites (infuser, billboards, shitstraps) + #[arg(short, long)] + suite: Option>, + + /// Use full multi-collection deploy instead of single + #[arg(long)] + full: bool, + + /// Spawn second chain + Hermes IBC relayer + #[arg(long)] + ibc: bool, + }, + + /// Stop containers (cleanup) + Stop, + + /// Show deployed contract addresses from state.json + WASM module status + Status, + + /// Check and build all WASM modules needed by the website + WasmBuild, + + /// Show which WASM modules are present/missing + WasmStatus, +} + +#[tokio::main] +async fn main() -> Result<()> { + // Install rustls crypto provider before any gRPC/TLS usage + let _ = rustls::crypto::ring::default_provider().install_default(); + + dotenv::dotenv().ok(); + env_logger::init(); + + let cli = Cli::parse(); + + match cli.command { + Commands::Deploy { + network, + skip_spawn, + keep_alive, + suite: _suite_filter, + full, + ibc, + } => { + deploy(&network, skip_spawn, keep_alive, full, ibc).await?; + } + Commands::Stop => { + println!("Stopping localterp containers..."); + let output = std::process::Command::new("docker") + .args(["ps", "-q", "--filter", "label=ict-rs"]) + .output(); + match output { + Ok(o) if !o.stdout.is_empty() => { + let ids = String::from_utf8_lossy(&o.stdout); + for id in ids.trim().lines() { + let _ = std::process::Command::new("docker") + .args(["rm", "-f", id]) + .status(); + } + println!("Containers stopped."); + } + _ => println!("No running ict-rs containers found."), + } + } + Commands::Status => { + println!("Checking cw-orch state.json for deployed addresses..."); + let state_path: PathBuf = std::env::var("HOME") + .map(|h| PathBuf::from(h).join(".cw-orchestrator/state.json")) + .unwrap_or_default(); + if state_path.exists() { + let contents = std::fs::read_to_string(&state_path)?; + println!("{}", contents); + } else { + println!("No state.json found at {:?}", state_path); + } + println!(); + scripts::wasm_build::status(); + } + Commands::WasmBuild => { + println!("--- WASM Module Build ---"); + let missing = scripts::wasm_build::preflight(); + if missing.is_empty() { + println!("All WASM modules ready."); + } else { + eprintln!("{} module(s) still missing after build attempt:", missing.len()); + for m in &missing { + eprintln!(" - {}", m); + } + std::process::exit(1); + } + } + Commands::WasmStatus => { + scripts::wasm_build::status(); + } + } + + Ok(()) +} + +/// Tracks which spawn mode was used for cleanup. +enum Spawned { + Single(SpawnedChain), + Dual(SpawnedDualChain), +} + +async fn deploy( + network: &str, + skip_spawn: bool, + keep_alive: bool, + full: bool, + ibc: bool, +) -> Result<()> { + // Preflight: check required data files exist before spawning + let missing = preflight_check(full); + if !missing.is_empty() { + eprintln!("ERROR: Missing required files:"); + for p in &missing { + eprintln!(" - {}", p); + } + return Err(anyhow!("Preflight check failed: {} file(s) missing", missing.len())); + } + + // Optionally spawn chain(s) via ict-rs + let mut spawned: Option = if !skip_spawn && network == "local" { + if ibc { + println!("Spawning dual chain with IBC relayer..."); + Some(Spawned::Dual(chain_spawn::spawn_dual_chain().await?)) + } else { + println!("Spawning local chain via ict-rs..."); + Some(Spawned::Single(chain_spawn::spawn_local_chain().await?)) + } + } else { + None + }; + + // Extract mnemonic + endpoints from spawned chain + let deployer_mnemonic: Option = match &spawned { + Some(Spawned::Single(s)) => Some(s.mnemonic.clone()), + _ => None, + }; + + let chain_info: ChainInfoOwned = match network { + "local" => { + let (chain_id, grpc) = match &spawned { + Some(Spawned::Single(ref s)) => (s.chain_id.clone(), s.grpc_url.clone()), + Some(Spawned::Dual(ref d)) => (d.chain_a.chain_id.clone(), d.chain_a.grpc_url.clone()), + None => ("120u-1".into(), "http://localhost:9090".into()), + }; + ChainInfoOwned { + chain_id, + gas_denom: "uterp".into(), + gas_price: 0.25, + grpc_urls: vec![grpc], + kind: ChainKind::Local, + network_info: LOCAL_TERP.network_info.into(), + lcd_url: None, + fcd_url: None, + } + } + "mainnet" => MOROCCO_1.into(), + other => return Err(anyhow!("Unknown network: {}", other)), + }; + + // Run cw-orch on a blocking thread — DaemonBuilder::build() calls block_on() + // internally, which panics if called from within a tokio runtime. + let rt_handle = tokio::runtime::Handle::current(); + let addresses: HashMap = tokio::task::spawn_blocking(move || -> Result> { + let mut builder = DaemonBuilder::new(chain_info); + builder.handle(&rt_handle); + if let Some(ref m) = deployer_mnemonic { + builder.mnemonic(m); + } + let chain = builder.build()?; + + let sender = chain.sender_addr(); + println!("Deploying as: {}", sender); + + let data = if full { + TerpNetworkDeployData::full(sender)? + } else { + TerpNetworkDeployData::local_default(sender)? + }; + + let suite = TerpNetworkSuite::deploy_on(chain, data)?; + + println!("\n--- Deployed Contracts ---"); + let addrs = suite.collect_addresses(); + suite.print_addresses(); + Ok(addrs) + }) + .await??; + + // Resolve RPC URL for the proxy (serve.py needs the actual chain RPC) + let (chain_id, rpc_url, grpc_url) = match &spawned { + Some(Spawned::Single(ref s)) => (s.chain_id.clone(), s.rpc_url.clone(), s.grpc_url.clone()), + Some(Spawned::Dual(ref d)) => (d.chain_a.chain_id.clone(), d.chain_a.rpc_url.clone(), d.chain_a.grpc_url.clone()), + None => ("120u-1".into(), "http://localhost:26657".into(), "http://localhost:9090".into()), + }; + + // Patch public/config.json with deployed addresses and endpoints + frontend::patch_config( + &ChainEndpointConfig { chain_id, rpc_url: rpc_url.clone(), grpc_url }, + &addresses, + )?; + + // Print chain B info if dual-chain mode + if let Some(Spawned::Dual(ref d)) = spawned { + println!("\n--- Chain B (IBC) ---"); + println!("chain_id: {}", d.chain_b.chain_id); + println!("grpc: {}", d.chain_b.grpc_url); + println!("rpc: {}", d.chain_b.rpc_url); + } + + // WASM preflight: check/build client-side WASM modules needed by pages + println!("\n--- WASM Modules ---"); + let wasm_missing = scripts::wasm_build::preflight(); + if !wasm_missing.is_empty() { + eprintln!("WARN: {} WASM module(s) missing — some pages will have degraded functionality", wasm_missing.len()); + } + + // Start frontend dev servers + let mut servers: Vec = Vec::new(); + + if keep_alive && network == "local" { + // Start website dev server (serve.py on :3000, proxies /rpc to chain) + match frontend::start_website_server(&rpc_url) { + Ok(child) => servers.push(child), + Err(e) => eprintln!("WARN: Failed to start website server: {}", e), + } + + // Start terp-docs (Next.js on :3001, optional) + match frontend::start_docs_server(&addresses) { + Ok(Some(child)) => servers.push(child), + Ok(None) => {} // gracefully skipped + Err(e) => eprintln!("WARN: Failed to start terp-docs: {}", e), + } + } + + // Optionally keep alive + if keep_alive { + println!("\nChain running. Press Ctrl+C to stop..."); + println!(" Website: http://localhost:3000"); + println!(" Docs: http://localhost:3001 (if available)"); + println!(" RPC proxy: http://localhost:3000/rpc -> {}", rpc_url); + tokio::signal::ctrl_c().await?; + println!("Shutting down..."); + } + + // Cleanup: kill dev servers, then stop containers + frontend::stop_servers(&mut servers); + + match &mut spawned { + Some(Spawned::Single(ref mut s)) => s.cleanup().await?, + Some(Spawned::Dual(ref mut d)) => d.cleanup().await?, + None => {} + } + + Ok(()) +} diff --git a/scripts/src/suite.rs b/scripts/src/suite.rs new file mode 100644 index 0000000..e22fd16 --- /dev/null +++ b/scripts/src/suite.rs @@ -0,0 +1,167 @@ +use std::collections::HashMap; + +use cw_headstash::interface::HeadstashContract; +use cw_headstash_manifold::interface::CwHeadstashManifold; +use cw_infuser_scripts::suite::CwSvgSuite; +use cw_orch::prelude::*; +// #[cfg(feature = "dao")] +// use dao_testing::DaoDaoSuite; +use shit_scripts::CwShitstrapSuite; +use terp_account_scripts::TerpAccountSuite; + +use crate::deploy_data::TerpNetworkDeployData; + +/// ZK headstash deployment suite: cw-headstash contract + manifold factory. +/// +/// Wraps the cw-orch interfaces for both contracts and provides +/// a `deploy_on` constructor matching the pattern used by other suites. +pub struct ZkHeadstashSuite { + pub headstash: HeadstashContract, + pub manifold: CwHeadstashManifold, +} + +impl ZkHeadstashSuite { + /// Deploy the headstash manifold factory + headstash contract, + /// and optionally register the circuit verifying key. + pub fn deploy_on( + chain: Chain, + data: crate::deploy_data::ZkDeployData, + ) -> Result { + // 1. Upload + instantiate the manifold factory + let manifold = CwHeadstashManifold::new(chain.clone()); + manifold.upload()?; + + // 2. Upload the headstash contract code + let headstash = HeadstashContract::new(chain.clone()); + headstash.upload()?; + let headstash_code_id = headstash.code_id()?; + + // 3. Instantiate manifold with headstash code_id + manifold.instantiate( + &cw_headstash_manifold::msg::InstantiateMsg { + owner: data.owner.clone(), + headstash_code_id, + }, + None, + &[], + )?; + + // 4. Instantiate the headstash contract directly + headstash.instantiate(&data.headstash_init, None, &[])?; + + // 5. Register the VK if provided + if let Some(vk_bytes) = data.vk_bytes { + headstash.execute( + &cw_headstash::msg::ExecuteMsg::LoadVk { + vk: cosmwasm_std::Binary::from(vk_bytes), + }, + &[], + )?; + } + + Ok(Self { + headstash, + manifold, + }) + } +} + +/// Unified deployment suite composing all website contract suites. +pub struct TerpNetworkSuite { + pub chain: Chain, + pub infuser: Option>, + pub billboards: Option>, + // #[cfg(feature = "dao")] + // pub dao: Option>, + pub headstash: Option>, +} + +impl TerpNetworkSuite { + /// Deploy suites conditionally based on which deploy data fields are `Some`. + pub fn deploy_on(chain: Chain, data: TerpNetworkDeployData) -> Result { + // 1. CwSvgSuite (cw-infuser + SVG collections + shitstraps) + let infuser = if let Some(svg_data) = data.cw_infuser { + let mut suite = CwSvgSuite::deploy_on(chain.clone(), Some(svg_data))?; + if let Some(shit_data) = data.shitstraps { + suite.shit = CwShitstrapSuite::deploy_on(chain.clone(), Some(shit_data))?; + } + Some(suite) + } else { + None + }; + + // 2. TerpAccountSuite (account NFTs + manifold minter) + let billboards = if let Some(admin) = data.terp_billboards { + Some(TerpAccountSuite::deploy_on(chain.clone(), admin)?) + } else { + None + }; + + // // 3. DaoDaoSuite (DAO contracts including calendar) + // #[cfg(feature = "dao")] + // let dao = if let Some(admin) = data.dao { + // Some(DaoDaoSuite::deploy_on(chain.clone(), admin)?) + // } else { + // None + // }; + + // 4. ZkHeadstashSuite (cw-headstash + cw-headstash-manifold + circuits) + let headstash = if let Some(zk_data) = data.zk { + match ZkHeadstashSuite::deploy_on(chain.clone(), zk_data) { + Ok(suite) => Some(suite), + Err(e) => { + tracing::warn!("ZK headstash deploy failed (non-fatal): {}", e); + None + } + } + } else { + None + }; + + Ok(Self { + chain, + infuser, + billboards, + // #[cfg(feature = "dao")] + // dao, + headstash, + }) + } + + /// Collect deployed contract addresses as a map (config key -> address). + pub fn collect_addresses(&self) -> HashMap { + let mut addrs = HashMap::new(); + + if let Some(ref suite) = self.infuser { + if let Ok(addr) = suite.minter.addr_str() { addrs.insert("cwSvgMinter".into(), addr); } + if let Ok(addr) = suite.cwsvg.addr_str() { addrs.insert("cw721Svg".into(), addr); } + if let Ok(addr) = suite.infuser.addr_str() { addrs.insert("cwInfusionMinter".into(), addr); } + if let Ok(addr) = suite.shit.factory.addr_str() { addrs.insert("shitstrapFactory".into(), addr); } + } + + if let Some(ref suite) = self.billboards { + if let Ok(addr) = suite.manifold.addr_str() { addrs.insert("accountMinter".into(), addr); } + if let Ok(addr) = suite.nft.addr_str() { addrs.insert("terp721Account".into(), addr); } + } + + // #[cfg(feature = "dao")] + // if let Some(ref suite) = self.dao { + // if let Ok(addr) = suite.dao_core.addr_str() { addrs.insert("daoCore".into(), addr); } + // if let Ok(addr) = suite.external.calendar.addr_str() { addrs.insert("daoCalendar".into(), addr); } + // } + + if let Some(ref suite) = self.headstash { + if let Ok(addr) = suite.headstash.addr_str() { addrs.insert("cwHeadstash".into(), addr); } + if let Ok(addr) = suite.manifold.addr_str() { addrs.insert("cwHeadstashManifold".into(), addr); } + } + + addrs + } + + /// Print deployed contract addresses in `CONTRACT_ADDR:name=addr` format. + pub fn print_addresses(&self) { + for (key, addr) in self.collect_addresses() { + println!("CONTRACT_ADDR:{}={}", key, addr); + } + } +} diff --git a/scripts/src/wasm_build.rs b/scripts/src/wasm_build.rs new file mode 100644 index 0000000..8c66620 --- /dev/null +++ b/scripts/src/wasm_build.rs @@ -0,0 +1,165 @@ +//! WASM module preflight: check and build wasm-pack crates needed by the frontend. +//! +//! Each page that uses client-side WASM declares its module here. The preflight +//! verifies the compiled `.wasm` + `.js` glue exist in `pkg/`, and builds any +//! that are missing via `wasm-pack build --target web`. + +use std::path::{Path, PathBuf}; +use std::process::Command; + +/// Website `pkg/` directory where all WASM outputs live. +fn pkg_dir() -> PathBuf { + Path::new(env!("CARGO_MANIFEST_DIR")).join("../pkg") +} + +/// A WASM module required by the frontend. +struct WasmModule { + /// Module name (e.g. `norick_wasm`). Files are `{name}.js` + `{name}_bg.wasm`. + name: &'static str, + /// Path to the Rust crate (absolute or relative to CARGO_MANIFEST_DIR). + crate_path: Option, + /// Which page uses this module. + page: &'static str, +} + +/// Registry of all WASM modules the website needs. +fn wasm_modules() -> Vec { + let terp_rs = Path::new(env!("CARGO_MANIFEST_DIR")).join("../../../terp-rs"); + + vec![WasmModule { + name: "norick_wasm", + crate_path: Some(terp_rs.join("crates/zk/norick-wasm")), + page: "no-rick.html", + }] +} + +/// Check if a module's compiled outputs exist in `pkg/`. +fn module_ready(name: &str) -> bool { + let pkg = pkg_dir(); + pkg.join(format!("{name}.js")).exists() && pkg.join(format!("{name}_bg.wasm")).exists() +} + +/// Build a WASM module with `wasm-pack build --target web`. +/// +/// Outputs go to a temp dir, then the needed files are copied into `pkg/`. +fn build_module(name: &str, crate_path: &Path) -> anyhow::Result<()> { + println!("Building WASM module: {} from {:?}", name, crate_path); + + if !crate_path.join("Cargo.toml").exists() { + anyhow::bail!( + "Crate not found at {:?} — cannot build {}", + crate_path, + name + ); + } + + // Check wasm-pack is available + let check = Command::new("wasm-pack").arg("--version").output(); + if check.is_err() || !check.unwrap().status.success() { + anyhow::bail!("wasm-pack not found. Install: cargo install wasm-pack"); + } + + // Build to a temp directory to avoid overwriting pkg/package.json + let tmp_out = std::env::temp_dir().join(format!("wasm-build-{name}")); + let _ = std::fs::remove_dir_all(&tmp_out); + + let status = Command::new("wasm-pack") + .args([ + "build", + "--target", + "web", + "--release", + "--out-dir", + &tmp_out.to_string_lossy(), + ]) + .current_dir(crate_path) + .status()?; + + if !status.success() { + anyhow::bail!("wasm-pack build failed for {}", name); + } + + // Copy outputs into pkg/ + let pkg = pkg_dir(); + std::fs::create_dir_all(&pkg)?; + + let files_to_copy = [ + format!("{name}.js"), + format!("{name}_bg.wasm"), + format!("{name}.d.ts"), + format!("{name}_bg.wasm.d.ts"), + ]; + + for file in &files_to_copy { + let src = tmp_out.join(file); + if src.exists() { + std::fs::copy(&src, pkg.join(file))?; + } + } + + // Cleanup temp + let _ = std::fs::remove_dir_all(&tmp_out); + + println!(" -> {} ready in pkg/", name); + Ok(()) +} + +/// Run the WASM preflight: check all modules, build any that are missing. +/// +/// Returns a list of modules that are still missing after attempting builds. +pub fn preflight() -> Vec { + let modules = wasm_modules(); + let mut still_missing = Vec::new(); + + for m in &modules { + if module_ready(m.name) { + println!(" WASM ok: {} ({})", m.name, m.page); + continue; + } + + // Try to build if we have a crate path + if let Some(ref crate_path) = m.crate_path { + match build_module(m.name, crate_path) { + Ok(()) => { + if module_ready(m.name) { + continue; + } + } + Err(e) => { + eprintln!(" WASM build failed for {}: {}", m.name, e); + } + } + } + + // Still missing + eprintln!( + " WASM missing: {} (needed by {}){}", + m.name, + m.page, + if m.crate_path.is_some() { + " — build failed" + } else { + " — no crate path, rebuild manually" + } + ); + still_missing.push(format!("{} ({})", m.name, m.page)); + } + + still_missing +} + +/// Check without building — just report what's present and what's missing. +pub fn status() { + let modules = wasm_modules(); + let pkg = pkg_dir(); + println!("WASM modules (pkg dir: {:?}):", pkg); + for m in &modules { + let ready = module_ready(m.name); + println!( + " {} {} — {}", + if ready { "ok" } else { "MISSING" }, + m.name, + m.page, + ); + } +} diff --git a/tests/README.md b/tests/README.md new file mode 100644 index 0000000..3d77de3 --- /dev/null +++ b/tests/README.md @@ -0,0 +1,316 @@ +# Local Test Environment + +End-to-end local testing: Docker chain(s), contract deployment, website config. + +There are two ways to run the test environment: + +| Method | Command | What it does | +|--------|---------|--------------| +| **Rust (recommended)** | `just test-rs` | ict-rs spawns chain, cw-orch deploys contracts | +| **Shell (legacy)** | `just test-local` | Shell script spawns Docker, runs deploy binaries | + +The Rust path uses `scripts/` (the `scripts` crate). The shell path uses `tests/local-test-env.sh`. + +--- + +## Quick Start (Rust) + +```bash +# Prerequisites: Docker running, terp-core local-zk image built + +# 1. Single chain — deploy all suites, keep running +cd ~/websites/terp.network +just test-rs + +# 2. Dual chain + IBC relayer +just test-rs-ibc + +# 3. Attach to running chain (skip spawn) +just test-rs-attach + +# 4. Full multi-collection deploy +just test-rs-full +``` + +### Building the Docker Image + +The Rust scripts default to `terpnetwork/terp-core:local-zk` (override with `TERP_IMAGE_REPO`/`TERP_IMAGE_VERSION` env vars). + +```bash +cd ~/ZK/terp-core +docker buildx build --target local-zk -t terpnetwork/terp-core:local-zk --load . +``` + +To use the older `localterp` image instead: + +```bash +TERP_IMAGE_VERSION=localterp just test-rs +``` + +--- + +## What Gets Deployed + +### Single-Chain Mode (`just test-rs`) + +``` +scripts/src/main.rs deploy --network local --keep-alive + | + +-- 1. Spawn chain via ict-rs + | chain_spawn::spawn_local_chain() + | Image: terpnetwork/terp-core:local-zk + | Chain ID: 120u-1 + | Genesis: uterp + uthiol, fast governance (90s), vote extensions enabled + | Faucet: port 5000 (uterp, uthiol) + | + +-- 2. Connect cw-orch Daemon to gRPC + | + +-- 3. Deploy contract suites (conditional on TerpNetworkDeployData fields) + | +-- CwSvgSuite: cw721-svg + cw-svg-minter + cw-infuser + shitstrap-factory + | +-- TerpAccountSuite: terp721-account + manifold minter + | +-- DaoDaoSuite: dao-core + proposal/voting/staking + calendar + externals + | + +-- 4. Print CONTRACT_ADDR lines + | + +-- 5. Block on Ctrl+C (--keep-alive) + | + +-- 6. Cleanup containers +``` + +### Dual-Chain + IBC Mode (`just test-rs-ibc`) + +``` +scripts/src/main.rs deploy --network local --ibc --keep-alive + | + +-- 1. Spawn dual chain via ict-rs + | chain_spawn::spawn_dual_chain() + | Chain A: 120u-1, Chain B: 120u-2 + | Hermes relayer: ibc-path (transfer channel) + | Both use local-zk image + | + +-- 2. Connect cw-orch to Chain A gRPC + | + +-- 3. Deploy suites on Chain A (same as single-chain) + | + +-- 4. Print Chain B endpoints (for IBC page testing) + | + +-- 5. Block on Ctrl+C + | + +-- 6. Cleanup: ic.close() (stops both chains + relayer) +``` + +--- + +## Chain Endpoints + +### Single-Chain + +| Service | URL | Notes | +|---------|-----|-------| +| RPC | Printed at startup | Dynamic host port | +| gRPC | Printed at startup | Dynamic host port | +| Faucet | `http://localhost:5000` | In-container | + +The actual port numbers are printed by ict-rs on startup. They're also stored in the cw-orch `state.json`. + +### Dual-Chain + +Both chains get dynamic host ports. The startup output prints all four (gRPC + RPC for each chain). Hermes connects internally via Docker network. + +--- + +## Deployed Contracts + +After `just test-rs` completes deployment, you'll see output like: + +``` +--- Deployed Contracts --- +CONTRACT_ADDR:cw_svg_minter=terp1... +CONTRACT_ADDR:cw721_svg=terp1... +CONTRACT_ADDR:cw_infuser=terp1... +CONTRACT_ADDR:cw_shitstrap_factory=terp1... +CONTRACT_ADDR:terp_account_minter=terp1... +CONTRACT_ADDR:terp721_account=terp1... +CONTRACT_ADDR:dao_core=terp1... +CONTRACT_ADDR:dao_calendar=terp1... +``` + +These addresses are also persisted in `~/.cw-orchestrator/state.json`. View them anytime: + +```bash +just status +# or: cd scripts && cargo run -- status +``` + +--- + +## Environment Variables + +### Rust Scripts + +| Variable | Default | Description | +|----------|---------|-------------| +| `TERP_IMAGE_REPO` | `terpnetwork/terp-core` | Docker image repository | +| `TERP_IMAGE_VERSION` | `local-zk` | Docker image tag | +| `RUST_LOG` | (none) | Log level: `info`, `debug`, `scripts=debug,ict_rs=info` | +| `ICT_KEEP_CONTAINERS` | `0` | Set to `1` to skip cleanup (keep containers for debugging) | +| `ICT_SHOW_LOGS` | (none) | `1` = dump on failure, `always` = always dump | +| `ZK_ROOT` | `~/ZK/terp-core` | Path to terp-core (for ZK contract artifacts) | + +### Legacy Shell Scripts + +| Variable | Default | Description | +|----------|---------|-------------| +| `HOT_WALLET_ADDRESS` | (none) | Fund a browser wallet via faucet | +| `SKIP_DOCKER` | `false` | Skip Docker startup | +| `SKIP_BUILD` | `false` | Skip Docker image build | +| `WEBSITE_PORT` | `3000` | Dev server port | +| `ENABLE_IBC` | `false` | Two-chain IBC testing | + +--- + +## Faucet + +The in-container faucet dispenses `uterp` and `uthiol`: + +```bash +# Fund an address (from host) +curl "http://localhost:5000/faucet?address=terp1..." + +# Check faucet status +curl "http://localhost:5000/status" +``` + +In the browser (dev mode), the No-Rick and other pages show a "Faucet" button when connected to chain `120u-1`. This calls the same endpoint via `lib/faucet.js`. + +--- + +## Website Pages + +After deploying, start the dev server and open pages: + +```bash +# Start dev server (separate terminal) +just serve # port 3000 +# or: python3 serve.py + +# Open in browser: +# http://localhost:3000/mint.html — SVG minting +# http://localhost:3000/tabs.html — Account names +# http://localhost:3000/ibc.html — IBC transfers +# http://localhost:3000/no-rick.html — ZK proof demo +# http://localhost:3000/oline.html — O-Line SDL +# http://localhost:3000/passkey.html — Passkey auth +``` + +Pages auto-detect `120u-1` chain from `public/config.json` and show the Faucet button in dev mode. + +### No-Rick ZK Demo + +Requires: +1. `terpnetwork/terp-core:local-zk` image (has halo2 verification in wasmvm) +2. ZK contract deployed (via `deploy_zk.rs` or manually) +3. `norick-wasm` built: `cd crates/zk/norick-wasm && wasm-pack build --target web --out-dir ../../../websites/terp.network/pkg/norick-wasm` +4. Proof file at `public/circuits/no_rick_proof.json` (copy from `terp-core/tests/interchaintest/circuits/`) + +--- + +## Manual Step-by-Step (Rust) + +If the `just` recipes don't work for your setup: + +```bash +# 1. Build scripts crate +cd ~/websites/terp.network/scripts +cargo build + +# 2. Single chain deploy +RUST_LOG=info cargo run -- deploy --network local --keep-alive + +# 3. Dual chain + IBC +RUST_LOG=info cargo run -- deploy --network local --ibc --keep-alive + +# 4. Attach to running chain (skip Docker spawn) +RUST_LOG=info cargo run -- deploy --network local --skip-spawn + +# 5. Full multi-collection deploy +RUST_LOG=info cargo run -- deploy --network local --full --keep-alive + +# 6. Stop containers manually +cargo run -- stop +# or: docker ps -q --filter label=ict-rs | xargs docker rm -f +``` + +--- + +## Cleanup + +### Rust (automatic) +Ctrl+C during `--keep-alive` triggers cleanup automatically. ict-rs removes containers, volumes, and networks. + +### Manual +```bash +# Stop all ict-rs containers +just stop +# or: +cd scripts && cargo run -- stop +# or: +docker ps -q --filter label=ict-rs | xargs docker rm -f +``` + +### Debug (keep containers alive) +```bash +ICT_KEEP_CONTAINERS=1 just test-rs +# Containers stay running after Ctrl+C +# Inspect: docker ps --filter label=ict-rs +# Clean up later: just stop +``` + +--- + +## Troubleshooting + +| Problem | Solution | +|---------|----------| +| `local-zk` image not found | Build it: `cd ~/ZK/terp-core && docker buildx build --target local-zk -t terpnetwork/terp-core:local-zk --load .` | +| gRPC connection refused | Chain may still be starting. Check: `docker logs `. ict-rs waits for first block automatically. | +| "insufficient funds" from cw-orch | Faucet sends uterp; uthiol comes from genesis. Ensure `bootstrap_local.sh` or `modify_genesis` runs correctly. | +| Contract address not in state.json | Check deploy output for errors. Run `just status` to inspect state. | +| Port conflict | Stop existing containers: `just stop` or `docker ps` | +| IBC transfer not relaying | Check Hermes logs. Ensure both chains are producing blocks. Try `ICT_SHOW_LOGS=always` to see relay logs. | +| WASM not loading in browser | Build with wasm-pack first. Check browser console for CORS errors. Ensure dev server is running. | +| `cargo check` fails on scripts | Ensure all path deps exist: `~/abstract/`, `~/abstract/dao-contracts/`, `~/terp-rs/crates/public/` | + +--- + +## Repository Layout + +``` +~/websites/terp.network/ + scripts/ + src/ + main.rs # CLI: deploy, stop, status + chain_spawn.rs # ict-rs chain spawn (single + dual) + suite.rs # TerpNetworkSuite: cw-orch deploy + deploy_data.rs # TerpNetworkDeployData config + deploy_zk.rs # ZK contract deployment via chain_exec + lib.rs # module re-exports + Cargo.toml # deps: cw-orch, ict-rs, dao-testing, etc. + tests/ + README.md # this file + local-test-env.sh # legacy shell orchestrator + PLAN.md # architecture docs + lib/ + faucet.js # dev faucet client + norick.js # No-Rick WASM loader + ibc-client.js # IBC / Skip Go client + ... # contract bundle JS modules + pages/ + no-rick.html # ZK proof demo + mint.html # SVG minting + ibc.html # IBC transfers + ... + public/ + config.json # chain configs, contract addresses, app list + justfile # build recipes (just test-rs, etc.) +```