diff --git a/.editorconfig b/.editorconfig index 3d36f20b..55533731 100644 --- a/.editorconfig +++ b/.editorconfig @@ -9,3 +9,6 @@ insert_final_newline = true [*.rs] indent_size = 4 + +[*.ts] +indent_size = 2 diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 00000000..af3ad128 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,4 @@ +/.yarn/** linguist-vendored +/.yarn/releases/* binary +/.yarn/plugins/**/* binary +/.pnp.* binary linguist-generated diff --git a/.gitignore b/.gitignore index 33f0e69a..1ce1d55d 100644 --- a/.gitignore +++ b/.gitignore @@ -28,3 +28,15 @@ Cargo.lock .idea/ **/*.profraw + +# Script setup + +config.yaml +config.*.yaml +!config.example.yaml + +context/*.config.json + +tmp/ +dist/ +node_modules/ diff --git a/.yarn/install-state.gz b/.yarn/install-state.gz new file mode 100644 index 00000000..ab9dafd3 Binary files /dev/null and b/.yarn/install-state.gz differ diff --git a/ts/sdk/.yarnrc.yml b/.yarnrc.yml similarity index 100% rename from ts/sdk/.yarnrc.yml rename to .yarnrc.yml diff --git a/Makefile b/Makefile index b1864dc3..f5369c7f 100644 --- a/Makefile +++ b/Makefile @@ -8,7 +8,7 @@ clean: install: install-dev install-dev: install-prod - cargo install --force cw-optimizoor beaker + cargo install --force cargo-llvm-cov cw-optimizoor beaker install-prod: cargo install --force cosmwasm-check diff --git a/README.md b/README.md index 1cb5b9d7..01ff1552 100644 --- a/README.md +++ b/README.md @@ -1,77 +1,97 @@ -# cw-hyperlane +# CW Hyperlane [![codecov](https://codecov.io/gh/many-things/cw-hyperlane/branch/main/graph/badge.svg?token=SGYE7FBTAO)](https://codecov.io/gh/many-things/cw-hyperlane) [![crates.io](https://img.shields.io/crates/v/hpl-interface)](https://crates.io/crates/hpl-interface) -> This project is under active development...! +## Table of Contents + +- [Architecture](#architecture) +- [Project Structure](#project-structure) +- [Prerequisites](#prerequisites) +- [How to build](#how-to-build) +- [How to test](#how-to-test) + +## Architecture + +![Architecture](./asset/hyperlane-all.png) ## Prerequisites - rust (wasm32-wasm32-unknown target) - go 1.20 or higher -- grcov +- llvm-cov ## How to build ```bash -cargo build +make install-dev -cargo wasm +make build ``` ## How to test ```bash -# testing -cargo test - -# coverage -export RUSTFLAGS="-Cinstrument-coverage" -export LLVM_PROFILE_FILE="eddy-%p-%m.profraw" +cargo test --workspace --exclude hpl-tests -cargo build - -cargo test - -grcov . -s . --binary-path ./target/debug/ -t lcov --branch --ignore-not-existing -o ./target/debug/coverage/ +cargo llvm-cov --workspace --exclude hpl-tests ``` -## Deploy Sequence - -1. Deploy [Mailbox](./contracts/core/mailbox) - -2. Deploy [Validator Announce](./contracts/core/va) - -3. Deploy hooks to use with Mailbox (default hook, required hook) - - - [interchain gas paymaster (IGP)](./contracts/igps/core) - - - [IGP oracle](./contracts/igps/oracle) - - - [merkle](./contracts/hooks/merkle) - - - [pausable](./contracts/hooks/pausable) - - - [domain routing](./contracts/hooks/routing) - - - [domain routing custom](./contracts/hooks/routing-custom) - - - [domain routing fallback](./contracts/hooks/routing-fallback) - - - For testing: [mock hook](./contracts/mocks/mock-hook) - -4. Deploy isms to use with Mailbox (defualt ism) - - - [multisig ism](./contracts/isms/multisig) - - - [routing ism](./contracts/isms/routing) - - - [aggregate ism](./contracts/isms/aggregate) - - - [pausable](./contracts/isms/pausable) - - - For testing: [mock ism](./contracts/mocks/mock-ism) - -5. Set deployed hooks and isms to Mailbox - -6. Deployment for core protocol is done! You can deploy some contracts on the top. +## How to deploy + +[Go to README of ./example](./example/README.md) + +[Go to README of ./script](./script/README.md) + +## Project Structure + +```text +├── contracts +│ │ +│ ├── core +│ │ ├── mailbox +│ │ └── va +│ │ +│ ├── hooks +│ │ ├── aggregate +│ │ ├── fee # protocol fee +│ │ ├── merkle +│ │ ├── pausable +│ │ ├── routing +│ │ ├── routing-custom +│ │ └── routing-fallback +│ │ +│ ├── igps # also this is a part of `hook` +│ │ ├── core +│ │ └── oracle +│ │ +│ ├── isms +│ │ ├── aggregate +│ │ ├── multisig +│ │ ├── pausable +│ │ └── routing +│ │ +│ ├── mocks # for testing +│ │ ├── mock-hook +│ │ ├── mock-ism +│ │ └── mock-msg-receiver +│ │ +│ └── warp +│ ├── cw20 +│ └── native +│ +├── integration-test +│ +├── packages +│ │ +│ ├── connection # same as `MailboxClient` of evm implementation +│ ├── interface # package for contract interfaces (external) +│ ├── ownable +│ ├── pausable +│ └── router +│ +├── scripts # useful scripts for development (e.g. code uploading. contract deployment) +│ +└── ts + └── sdk # typescript sdk for contract integration. (auto generated via ts-codegen) +``` diff --git a/asset/hyperlane-1.png b/asset/hyperlane-1.png new file mode 100644 index 00000000..da97216e Binary files /dev/null and b/asset/hyperlane-1.png differ diff --git a/asset/hyperlane-2.png b/asset/hyperlane-2.png new file mode 100644 index 00000000..f60eee3a Binary files /dev/null and b/asset/hyperlane-2.png differ diff --git a/asset/hyperlane-3.png b/asset/hyperlane-3.png new file mode 100644 index 00000000..d46da8ee Binary files /dev/null and b/asset/hyperlane-3.png differ diff --git a/asset/hyperlane-all.png b/asset/hyperlane-all.png new file mode 100644 index 00000000..f89ebe01 Binary files /dev/null and b/asset/hyperlane-all.png differ diff --git a/codegen.ts b/codegen.ts new file mode 100644 index 00000000..92e9e7cb --- /dev/null +++ b/codegen.ts @@ -0,0 +1,37 @@ +import * as fs from "fs"; +import codegen from "@cosmwasm/ts-codegen"; +import path from "path"; + +const SCHEMA_DIR = process.env.SCHEMA_DIR || path.join(process.cwd(), "schema"); + +const capitalize = (str: string): string => + str.charAt(0).toUpperCase() + str.slice(1); + +const contracts = fs + .readdirSync(SCHEMA_DIR, { withFileTypes: true }) + .filter((c) => !c.isDirectory()) + .map((c) => ({ + name: c.name.replace(".json", ""), + dir: SCHEMA_DIR, + })); + +codegen({ + contracts, + outPath: "./dist/", + + // options are completely optional ;) + options: { + bundle: { + bundleFile: "index.ts", + scope: "contracts", + }, + client: { + enabled: true, + }, + messageComposer: { + enabled: true, + }, + }, +}).then(() => { + console.log("✨ all done!"); +}); diff --git a/config.example.yaml b/config.example.yaml new file mode 100644 index 00000000..95457a28 --- /dev/null +++ b/config.example.yaml @@ -0,0 +1,149 @@ +networks: + - id: "localwasmd" + hrp: "uwasm" + endpoint: + rpc: "http://localhost:26657" + rest: "http://localhost:1317" + grpc: "http://localhost:9090" + gas: + price: "0.025" + denom: "uwasm" + domain: 1063 # localwasmd -> ascii / decimal -> sum + + - id: "localosmosis" + hrp: "osmo" + endpoint: + rpc: "http://localhost:26657" + rest: "http://localhost:1317" + grpc: "http://localhost:9090" + gas: + price: "0.025" + denom: "uosmo" + domain: 1304 # localosmosis -> ascii / decimal -> sum + + - id: "localneutron" + hrp: "neutron" + endpoint: + rpc: "http://localhost:26657" + rest: "http://localhost:1317" + grpc: "http://localhost:9090" + gas: + price: "0.025" + denom: "untrn" + domain: 1302 + +signer: deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef + +deploy: + ism: + # # hpl_ism_multisig with default validator setup (signer = validator, threshold = 1) + # - 5 + # - 420 + # - 421613 + + # # hpl_ism_multisig + # type: multisig + # owner: + # validators: + # 5: + # addrs: + # - 2F47b319809A58bBBFa8e706171762eFBF168A62 + # threshold: 1 + # 420: + # addrs: + # - 2F47b319809A58bBBFa8e706171762eFBF168A62 + # threshold: 1 + # 421613: + # addrs: + # - 2F47b319809A58bBBFa8e706171762eFBF168A62 + # threshold: 1 + + # # hpl_test_mock_ism + # type: "mock" + + # # hpl_ism_aggregate + # type: "aggregate" + # owner: + # isms: + # - type: "mock" + # - type: "multisig" + # ... + + # # hpl_ism_routing + # type: "routing" + # owner: + # isms: + # 5: + # type: "mock" + # 420: + # type: "multisig" + # ... + # 421613: + # type: "aggregate" + # ... + + hooks: + default: + # same as required field. + required: + # # hpl_test_mock_hook + # type: "mock" + + # # hpl_hook_fee + # type: "fee" + # owner: # you can use "" alias to owner field. + # fee: + # denom: uosmo + # amount: 1 + + # # hpl_hook_merkle + # type: "merkle" + + # # hpl_hook_pausable + # type: "pausable" + # owner: + # paused: false + + # # hpl_igp + hpl_igp_oracle + # type: "igp" + # token: "uosmo" # or default to gas token (in this case, uosmo will be set) + # configs: + # 5: + # exchange_rate: 1.0 + # gas_price: 40000 + # 420: + # exchange_rate: 1.4 + # gas_price: 10322 + # ... + + # # hpl_hook_aggregate + # type: aggregate + # owner: + # hooks: + # - type: merkle + # - type: pausable + # owner: + # paused: false + # - type: fee + # owner: + # fee: + # denom: uosmo + # amount: 1 + + # # hpl_hook_routing / hpl_hook_routing_custom / hpl_hook_routing_fallback + # type: "routing" + # owner: + # hooks: + # 5: + # type: fee + # owner: + # fee: + # denom: uosmo + # amount: 1 + # 420: + # type: "mock" + # custom_hooks: # optional + # 5: + # recipient: osmo1g3q542hpttdrj9aaczsq0tkl0uyfk7nkydklz6 + # hook: osmo1g3q542hpttdrj9aaczsq0tkl0uyfk7nkydklz6 + # fallback_hook: osmo1g3q542hpttdrj9aaczsq0tkl0uyfk7nkydklz6 # optional diff --git a/context/neutron-1.json b/context/neutron-1.json new file mode 100644 index 00000000..244b993c --- /dev/null +++ b/context/neutron-1.json @@ -0,0 +1,21 @@ +{ + "artifacts": { + "hpl_hook_aggregate": 405, + "hpl_hook_merkle": 406, + "hpl_hook_pausable": 407, + "hpl_hook_routing": 408, + "hpl_hook_routing_custom": 409, + "hpl_hook_routing_fallback": 410, + "hpl_igp": 433, + "hpl_igp_oracle": 412, + "hpl_ism_aggregate": 413, + "hpl_ism_multisig": 431, + "hpl_ism_routing": 415, + "hpl_mailbox": 416, + "hpl_test_mock_hook": 417, + "hpl_test_mock_msg_receiver": 418, + "hpl_validator_announce": 432, + "hpl_warp_cw20": 420, + "hpl_warp_native": 421 + } +} diff --git a/context/osmo-test-5.json b/context/osmo-test-5.json new file mode 100644 index 00000000..59101d06 --- /dev/null +++ b/context/osmo-test-5.json @@ -0,0 +1,90 @@ +{ + "artifacts": { + "hpl_mailbox": 7162, + "hpl_validator_announce": 7163, + "hpl_ism_aggregate": 7164, + "hpl_ism_multisig": 7165, + "hpl_ism_pausable": 7166, + "hpl_ism_routing": 7167, + "hpl_igp": 7168, + "hpl_hook_aggregate": 7169, + "hpl_hook_fee": 7170, + "hpl_hook_merkle": 7171, + "hpl_hook_pausable": 7172, + "hpl_hook_routing": 7173, + "hpl_hook_routing_custom": 7174, + "hpl_hook_routing_fallback": 7175, + "hpl_test_mock_hook": 7176, + "hpl_test_mock_ism": 7177, + "hpl_test_mock_msg_receiver": 7178, + "hpl_igp_oracle": 7179, + "hpl_warp_cw20": 7180, + "hpl_warp_native": 7181 + }, + "deployments": { + "core": { + "mailbox": { + "type": "hpl_mailbox", + "address": "osmo133mald0u39vge6mcv8gzc0j2838hn3klja3nshsyxaug95pndf8sufctsq" + }, + "validator_announce": { + "type": "hpl_validator_announce", + "address": "osmo19amvm0gqzhc8wfktt55ppjadghdhemgzsjc6y3wp7v3ddd2p4ckshajfhp" + } + }, + "isms": { + "type": "hpl_ism_multisig", + "address": "osmo1ydgvay2j86k73s9k67davma09u7vkvawyjg30lzcghqa994c4afqqv2dum" + }, + "hooks": { + "default": { + "type": "hpl_hook_aggregate", + "address": "osmo1xx8qvhum836lpn7eftepegdrrnwlktytnylkfqzgsrvkvn5eqqzq02wlah", + "hooks": [ + { + "type": "hpl_hook_merkle", + "address": "osmo1vxjlhn4dkq6htf5daaxvw0rs26vewhek2gwgmpmw7jvq0tvjrhxqljnact" + }, + { + "type": "hpl_igp", + "address": "osmo19yadu0cunfv7zm9m8ewhgwnwvy7cxjuxcfs7qdcmlxsfr8taj9asdlajps", + "oracle": { + "type": "hpl_igp_oracle", + "address": "osmo1ncns63wyprqq6guvrd2uu2w2dt04mm5zjy4tuqvx997je2kjnnzqknyzmx" + } + } + ] + }, + "required": { + "type": "hpl_hook_aggregate", + "address": "osmo1zf80lhjyw2kmqn39xqz4ypnef7020slfd05skxv9gslss8yrm2pqzwdjzn", + "hooks": [ + { + "type": "hpl_hook_pausable", + "address": "osmo1xwd2czumymaqe8gn292r2jjxsny8uklt90rjglxtwkj25s0v4sxqadwz35" + }, + { + "type": "hpl_hook_fee", + "address": "osmo12g03dm27u3zrx3lcqrl9yrkywknftsanlzr60ws4wveqdxl9tzssghukur" + } + ] + } + }, + "warp": { + "native": [ + { + "id": "uosmo", + "type": "hpl_warp_native", + "address": "osmo1v0vw7rsfhd8adyah20cphw45ercq5p2yj3ddsn8lx6rhhy278jcqj2l370" + } + ], + "cw20": [] + }, + "test": { + "msg_receiver": { + "type": "hpl_test_mock_msg_receiver", + "address": "osmo1henzdxappv2sqzg2nlfl4nv42lmp39pc42fvwkjs8al3nsppn75st54ecq" + } + } + } +} \ No newline at end of file diff --git a/example/.gitignore b/example/.gitignore new file mode 100644 index 00000000..a8867168 --- /dev/null +++ b/example/.gitignore @@ -0,0 +1,2 @@ +relayer/ +validator/ diff --git a/example/README.md b/example/README.md new file mode 100644 index 00000000..ba045736 --- /dev/null +++ b/example/README.md @@ -0,0 +1,237 @@ +# Deploying Hyperlane with Osmosis Testnet + +> This guide will help you to setup Hyperlane betweeen Osmosis Testnet and Ethereum Sepolia Testnet. + +## Prerequisites + +- [Cast](https://book.getfoundry.sh/cast/) +- Sepolia Testnet account with enough balance ([faucet](https://sepolia-faucet.pk910.de/)) +- Osmosis Testnet account with enough balance ([faucet](https://faucet.testnet.osmosis.zone/)) + +- Recommanded to use same account for both networks + + - You can easily get the bech32 address by running below command (need to setup `config.yaml` first) + + - Get from private key + `yarn cw-hpl wallet address -n [network-id] --private-key [private-key]` + - Get from mnemonic phrase + `yarn cw-hpl wallet address -n [network-id] --mnemonic [mnemonic]` + + - You also can get the ethereum address by running below command + + - Get from private key + `cast wallet address --private-key [private-key]` + - Get from mnemonic phrase + `cast wallet address --mnemonic [mnemonic]` + + - Or, You can use `yarn cw-hpl wallet new -n [network-id]` to create new wallet + +## 1. Create `config.yaml` with your network config + +> Don't forget to setup deploy settings below + +Below is an example of `config.yaml` file for localwasmd. + +You can check full list of example in [config.example.yaml](../config.example.yaml) file. + +```yaml +networks: + - id: "osmo-test-5" + hrp: "osmo" + endpoint: + rpc: "https://rpc.testnet.osmosis.zone" + rest: "https://lcd.testnet.osmosis.zone" + grpc: "https://grpc.testnet.osmosis.zone" + gas: + price: "0.025" + denom: "uosmo" + # osmo-test-5 -> ascii / decimal -> sum. + # It's very arbitrary value, Perhaps you must need to change this value. + domain: 1037 # osmo-test-5 -> ascii / decimal -> sum + +signer: " or " + +deploy: + ism: + - 11155111 + + hooks: + default: + type: mock + + required: + type: aggregate + # if you keep it as "", the script will identify this as deployer address + owner: + hooks: + - type: merkle + + - type: pausable + owner: + paused: false + + - type: fee + owner: + fee: + # if you didn't set the denom, it will be set as gas denom of network config + denom: uosmo + amount: 1 + + - type: igp + owner: + configs: + 11155111: + exchange_rate: 3000 + gas_price: 5000 + default_gas_usage: 30000 +``` + +## 2. Upload Contract Codes + +You can upload contract codes from local environment or from [Github](https://github.com/many-things/cw-hyperlane/releases). + +### Local + +```bash +yarn install + +# Build contracts from local environment +make optimize +# Run compatibility test +make check + +# This command will make one file. +# - context with artifacts (default path: {project-root}/context/osmo-test-5.json) +yarn cw-hpl upload local -n osmo-test-5 +``` + +### Remote + +```bash +yarn install + +# check all versions of contract codes from Github +yarn cw-hpl upload remote-list -n osmo-test-5 + +# This command will make one file. +# - context with artifacts (default path: {project-root}/context/osmo-test-5.json) +yarn cw-hpl upload remote v0.0.6-rc8 -n osmo-test-5 +``` + +## 3. Instantiate Contracts + +If you configured / uploaded contract codes correctly, you can deploy contract with one simple command. + +```bash +# This command will output two results. +# - context + deployment (default path: ./context/osmo-test-5.json) +# - Hyperlane agent-config (default path: ./context/osmo-test-5.config.json) +yarn cw-hpl deploy -n osmo-test-5 +``` + +## 4. Setup Validator / Relayer config + +Replace every `{sepolia_private_key}` and `{osmosis_private_key}` from files below with your private key. + +- Sepolia Testnet (`{sepolia_private_key}`) + +* [./hyperlane/relayer.json](./hyperlane/relayer.json) +* [./hyperlane/validator.sepolia.json](./hyperlane/validator.sepolia.json) + +- Osmosis Testnet (`{osmosis_private_key}`) + +* [./hyperlane/relayer.json](./hyperlane/relayer.json) +* [./hyperlane/validator.osmotest5.json](./hyperlane/validator.osmotest5.json) + +And run with below command. + +```bash +# Merge osmo-test-5.config.json and agent-config.docker.json +OSMOSIS_TESTNET_AGENT_CONFIG=$(cat ../context/osmo-test-5.config.json) && \ + OSMOSIS_TESTNET_AGENT_CONFIG_NAME=$(echo $OSMOSIS_TESTNET_AGENT_CONFIG | jq -r '.name') && \ + cat ./hyperlane/agent-config.docker.json \ + | jq ".chains.$OSMOSIS_TESTNET_AGENT_CONFIG_NAME=$(echo $OSMOSIS_TESTNET_AGENT_CONFIG)" > merge.tmp && \ + mv merge.tmp ./hyperlane/agent-config.docker.json + +# Run Hyperlane with docker-compose +docker compose up + +# Run this if you want to run in background +docker compose up -d + +# Run this if you want to see logs +docker compose logs -f + +# Run this if you want to stop +docker compose down +``` + +## 5. Deploy Test contracts on Sepolia + +```bash +# if you want to use private key as signing account. then you can set `--pk` option +# if you want to use mnemonic as signing account. then you can set `--mn` option +# or if you want to use custom rpc endpoint. then you can set `--endpoint` option +yarn cw-hpl-exp deploy-test-recipient --pk 'YOUR_PRIVATE_KEY' +``` + +## 6. Run Messaging Test + +### Sepolia -> osmo-test-5 + +```bash +# Below address is mailbox came from agent-config.docker.json +cast send \ + 0xfFAEF09B3cd11D9b20d1a19bECca54EEC2884766 --value 1wei \ + 'dispatch(uint32,bytes32,bytes)' \ + 1037 $OSMOSIS_TESTNET_TEST_RECIPIENT_ADDRESS 0x68656c6c6f \ # 0x68656c6c6f -> 'hello' + --rpc-url 'https://rpc.sepolia.org' \ + --private-key $SEPOLIA_PRIVATE_KEY +``` + +### osmo-test-5 -> Sepolia + +```bash +# [dest-domain] [recipient-address] [message] +yarn cw-hpl contract test-dispatch -n osmo-test-5 11155111 $SEPOLIA_TEST_RECIPIENT_ADDRESS hello +``` + +## 7. Warp Route + +```bash +# deploy warp route on sepolia +yarn cw-hpl-exp warp deploy --pk 'YOUR_PRIVATE_KEY' + +# then output will like this +{ "hypErc20Osmo": "0x..." } + +# deploy warp route on osmo-test-5 +yarn cw-hpl warp deploy create ./warp/uosmo.json -n osmo-test-5 + +# regiter osmo-test-5 warp route to sepolia warp route +yarn cw-hpl-exp warp link $hypErc20Osmo 1037 $OSMOSIS_WARP_ROUTE_ADDRESS --pk 'YOUR_PRIVATE_KEY' + +# also register sepolia warp route to osmo-test-5 warp route +yarn cw-hpl warp link \ + --asset-type native \ + --asset-id uosmo \ + --target-domain 11155111 \ + --warp-address $hypErc20Osmo \ + -n osmo-test-5 + +# test transfer +yarn cw-hpl warp transfer \ + --asset-type native \ + --asset-id uosmo \ + --target-domain 11155111 \ + -n osmo-test-5 +``` + +## 8. Done 🎉 + +This is it! You have successfully deployed Hyperlane between Osmosis Testnet and Sepolia Testnet. + +Current setup you've made is for testing purpose, and not production ready. So, if you want to run Hyperlane agents in production, you need to check these guides below. + +- [Running Relayers](https://docs.hyperlane.xyz/docs/operate/relayer/run-relayer) +- [Running Validators](https://docs.hyperlane.xyz/docs/operate/validators/run-validators) diff --git a/example/docker-compose.yml b/example/docker-compose.yml new file mode 100644 index 00000000..0f88ce65 --- /dev/null +++ b/example/docker-compose.yml @@ -0,0 +1,58 @@ +version: "2" +services: + relayer: + container_name: hpl-relayer + image: gcr.io/abacus-labs-dev/hyperlane-agent:3bb4d87-20240129-164519 + user: root + # restart: always + entrypoint: ["sh", "-c"] + command: + - | + rm -rf /app/config/* && \ + cp "/etc/hyperlane/agent-config.docker.json" "/app/config/agent-config.json" && \ + CONFIG_FILES="/etc/hyperlane/relayer.json" \ + ./relayer + ports: + - 9110:9090 + volumes: + - ./hyperlane:/etc/hyperlane + - ./relayer:/etc/data + - ./validator:/etc/validator + + validator-sepolia: + container_name: hpl-validator-sepolia + image: gcr.io/abacus-labs-dev/hyperlane-agent:3bb4d87-20240129-164519 + user: root + # restart: always + entrypoint: ["sh", "-c"] + command: + - | + rm -rf /app/config/* && \ + cp "/etc/hyperlane/agent-config.docker.json" "/app/config/agent-config.json" && \ + CONFIG_FILES="/etc/hyperlane/validator.sepolia.json" \ + ./validator + ports: + - 9120:9090 + volumes: + - ./hyperlane:/etc/hyperlane + - ./validator:/etc/validator + - ./validator/sepolia:/etc/data + + validator-osmotest5: + container_name: hpl-validator-osmotest5 + image: gcr.io/abacus-labs-dev/hyperlane-agent:3bb4d87-20240129-164519 + user: root + # restart: always + entrypoint: ["sh", "-c"] + command: + - | + rm -rf /app/config/* && \ + cp "/etc/hyperlane/agent-config.docker.json" "/app/config/agent-config.json" && \ + CONFIG_FILES="/etc/hyperlane/validator.osmotest5.json" \ + ./validator + ports: + - 9121:9090 + volumes: + - ./hyperlane:/etc/hyperlane + - ./validator:/etc/validator + - ./validator/osmotest5:/etc/data diff --git a/example/hyperlane/agent-config.docker.json b/example/hyperlane/agent-config.docker.json new file mode 100644 index 00000000..7d8ea283 --- /dev/null +++ b/example/hyperlane/agent-config.docker.json @@ -0,0 +1,63 @@ +{ + "chains": { + "sepolia": { + "blockExplorers": [ + { + "apiUrl": "https://api-sepolia.etherscan.io/api", + "family": "etherscan", + "name": "Etherscan", + "url": "https://sepolia.etherscan.io" + } + ], + "blocks": { + "confirmations": 1, + "estimateBlockTime": 13, + "reorgPeriod": 2 + }, + "chainId": 11155111, + "displayName": "Sepolia", + "domainId": 11155111, + "isTestnet": true, + "name": "sepolia", + "nativeToken": { + "decimals": 18, + "name": "Ether", + "symbol": "ETH" + }, + "protocol": "ethereum", + "rpcUrls": [ + { + "http": "https://ethereum-sepolia.blockpi.network/v1/rpc/public" + }, + { + "http": "https://eth-sepolia.g.alchemy.com/v2/demo" + }, + { + "http": "https://rpc.sepolia.org" + } + ], + "merkleRootMultisigIsmFactory": "0x0a71AcC99967829eE305a285750017C4916Ca269", + "messageIdMultisigIsmFactory": "0xFEb9585b2f948c1eD74034205a7439261a9d27DD", + "aggregationIsmFactory": "0xC83e12EF2627ACE445C298e6eC418684918a6002", + "aggregationHookFactory": "0x160C28C92cA453570aD7C031972b58d5Dd128F72", + "proxyAdmin": "0x97Bbc6bBaFa5Ce3b2FA966c121Af63bD09e940f8", + "storageGasOracle": "0x71775B071F77F1ce52Ece810ce084451a3045FFe", + "interchainGasPaymaster": "0x6f2756380FD49228ae25Aa7F2817993cB74Ecc56", + "aggregationHook": "0xe3147d5618f5e2e100690B50ec923009a4cde14A", + "protocolFee": "0x13AC3349Cb159fE86A22cf42DdA803D9f7309DB5", + "mailbox": "0xfFAEF09B3cd11D9b20d1a19bECca54EEC2884766", + "merkleTreeHook": "0x4917a9746A7B6E0A57159cCb7F5a6744247f2d0d", + "validatorAnnounce": "0xE6105C59480a1B7DD3E4f28153aFdbE12F4CfCD9", + "fallbackRoutingHook": "0x17Dc724B7a2F09141C13b8AC33B396073785c2BC", + "testRecipient": "0xeDc1A3EDf87187085A3ABb7A9a65E1e7aE370C07", + "testTokenRecipient": "0x031AD9c560D37baC7d6Bd2d27A2443bAfd10101A", + "routingIsmFactory": "0x3F100cBBE5FD5466BdB4B3a15Ac226957e7965Ad", + "interchainSecurityModule": "0x958124472b14B7940Ed5317C44a2508791dB1d48", + "pausableHook": "0xa68022e53Fd28119D07C8336a8eC84A298Fd38Fd", + "index": { + "from": 4517401, + "chunk": 100000 + } + } + } +} diff --git a/example/hyperlane/relayer.json b/example/hyperlane/relayer.json new file mode 100644 index 00000000..04e0e99e --- /dev/null +++ b/example/hyperlane/relayer.json @@ -0,0 +1,31 @@ +{ + "db": "/etc/data/db", + "relayChains": "osmotest5,sepolia", + "allowLocalCheckpointSyncers": "true", + "gasPaymentEnforcement": [{ "type": "none" }], + "whitelist": [ + { + "origindomain": [11155111], + "destinationDomain": [1037] + }, + { + "origindomain": [1037], + "destinationDomain": [11155111] + } + ], + "chains": { + "sepolia": { + "signer": { + "type": "hexKey", + "key": "{sepolia_private_key}" + } + }, + "osmotest5": { + "signer": { + "type": "cosmosKey", + "key": "{osmosis_private_key}", + "prefix": "osmo" + } + } + } +} diff --git a/example/hyperlane/validator.osmotest5.json b/example/hyperlane/validator.osmotest5.json new file mode 100644 index 00000000..1a094565 --- /dev/null +++ b/example/hyperlane/validator.osmotest5.json @@ -0,0 +1,21 @@ +{ + "db": "/etc/data/db", + "checkpointSyncer": { + "type": "localStorage", + "path": "/etc/validator/osmotest5/checkpoint" + }, + "originChainName": "osmotest5", + "validator": { + "type": "hexKey", + "key": "{osmosis_private_key}" + }, + "chains": { + "osmotest5": { + "signer": { + "type": "cosmosKey", + "key": "{osmosis_private_key}", + "prefix": "osmo" + } + } + } +} diff --git a/example/hyperlane/validator.sepolia.json b/example/hyperlane/validator.sepolia.json new file mode 100644 index 00000000..5e8ed244 --- /dev/null +++ b/example/hyperlane/validator.sepolia.json @@ -0,0 +1,13 @@ +{ + "db": "/etc/data/db", + "checkpointSyncer": { + "type": "localStorage", + "path": "/etc/validator/sepolia/checkpoint" + }, + "originChainName": "sepolia", + "validator": { + "signerType": "hexKey", + "key": "{sepolia_private_key}", + "type": "hexKey" + } +} diff --git a/example/index.ts b/example/index.ts new file mode 100644 index 00000000..3ec4e727 --- /dev/null +++ b/example/index.ts @@ -0,0 +1,29 @@ +import "reflect-metadata"; +import colors from "colors"; + +import { Command } from "commander"; + +import { warpCmd } from "./src/warp"; +import { recipientCmd } from "./src/recipient"; +import { injectDependencies } from "./src/ioc"; + +import { version } from "../package.json"; + +colors.enable(); + +const cli = new Command(); + +cli + .name("cw-hpl-example") + .version(version) + .configureHelp({ showGlobalOptions: true }) + .option("--pk --private-key ", "private key") + .option("--mn --mnemonic ", "mnemonic phrase") + .option("--rpc --endpoint ", "endpoint") + .hook("preAction", injectDependencies) + .description("CosmWasm Hyperlane Examples"); + +cli.addCommand(warpCmd); +cli.addCommand(recipientCmd); + +cli.parseAsync(process.argv).catch(console.error); diff --git a/example/src/constants.ts b/example/src/constants.ts new file mode 100644 index 00000000..c935fba6 --- /dev/null +++ b/example/src/constants.ts @@ -0,0 +1,3 @@ +export const HYP_MAILBOX = "0xfFAEF09B3cd11D9b20d1a19bECca54EEC2884766"; +export const HYP_MULTSIG_ISM_FACTORY = + "0xFEb9585b2f948c1eD74034205a7439261a9d27DD"; diff --git a/example/src/ioc.ts b/example/src/ioc.ts new file mode 100644 index 00000000..65f73cd8 --- /dev/null +++ b/example/src/ioc.ts @@ -0,0 +1,56 @@ +import { Command } from "commander"; +import { Container } from "inversify"; +import { + Account, + PublicClient, + Transport, + Chain, + WalletClient, + Hex, + createPublicClient, + createWalletClient, + http, +} from "viem"; +import { mnemonicToAccount, privateKeyToAccount } from "viem/accounts"; +import { sepolia } from "viem/chains"; + +export class Dependencies { + account: Account; + provider: { + query: PublicClient; + exec: WalletClient; + }; +} + +export const CONTAINER = new Container({ + autoBindInjectable: true, + defaultScope: "Singleton", +}); + +export async function injectDependencies(cmd: Command): Promise { + const { privateKey, mnemonic, endpoint } = cmd.optsWithGlobals(); + + if (privateKey && mnemonic) { + throw new Error("Cannot specify both private key and mnemonic"); + } else if (!privateKey && !mnemonic) { + throw new Error("Must specify either private key or mnemonic"); + } + + const account = mnemonic + ? mnemonicToAccount(mnemonic) + : privateKeyToAccount(privateKey as Hex); + + const provider = { + query: createPublicClient({ + chain: sepolia, + transport: http(endpoint), + }), + exec: createWalletClient({ + chain: sepolia, + account, + transport: http(endpoint), + }), + }; + + CONTAINER.bind(Dependencies).toConstantValue({ account, provider }); +} diff --git a/example/src/recipient.ts b/example/src/recipient.ts new file mode 100644 index 00000000..8d581721 --- /dev/null +++ b/example/src/recipient.ts @@ -0,0 +1,75 @@ +import { + TestRecipient__factory, + StaticMessageIdMultisigIsmFactory__factory, +} from "@hyperlane-xyz/core"; + +import { CONTAINER, Dependencies } from "./ioc"; +import { expectNextContractAddr, logTx } from "./utils"; +import { HYP_MULTSIG_ISM_FACTORY } from "./constants"; +import { Command } from "commander"; + +export const recipientCmd = new Command("deploy-test-recipient").action( + deployTestRecipient +); + +async function deployTestRecipient() { + const { + account, + provider: { query, exec }, + } = CONTAINER.get(Dependencies); + + const testRecipientAddr = await expectNextContractAddr(query, account); + console.log(`Deploying TestRecipient at "${testRecipientAddr.green}"...`); + + // deploy test recipient + { + const tx = await exec.deployContract({ + abi: TestRecipient__factory.abi, + bytecode: TestRecipient__factory.bytecode, + args: [], + }); + logTx("Deploy test recipient", tx); + await query.waitForTransactionReceipt({ hash: tx }); + } + + // deploy multisig ism + const multisigIsmAddr = await query.readContract({ + abi: StaticMessageIdMultisigIsmFactory__factory.abi, + address: HYP_MULTSIG_ISM_FACTORY, + functionName: "getAddress", + args: [[account.address], 1], + }); + console.log(`Deploying multisigIsm at "${multisigIsmAddr.green}"...`); + + { + const tx = await exec.writeContract({ + abi: StaticMessageIdMultisigIsmFactory__factory.abi, + address: HYP_MULTSIG_ISM_FACTORY, + functionName: "deploy", + args: [[account.address], 1], + }); + logTx("Deploy multisig ism", tx); + await query.waitForTransactionReceipt({ hash: tx }); + } + + // set ism of test recipient + + console.log(`Setting ism of test recipient to "${multisigIsmAddr.green}"...`); + { + const tx = await exec.writeContract({ + abi: TestRecipient__factory.abi, + address: testRecipientAddr, + functionName: "setInterchainSecurityModule", + args: [multisigIsmAddr], + }); + logTx("Set multisig ism to test recipient", tx); + await query.waitForTransactionReceipt({ hash: tx }); + } + + console.log("== Done! =="); + + console.log({ + testRecipient: testRecipientAddr, + multisigIsm: multisigIsmAddr, + }); +} diff --git a/example/src/utils.ts b/example/src/utils.ts new file mode 100644 index 00000000..fc10d1dd --- /dev/null +++ b/example/src/utils.ts @@ -0,0 +1,43 @@ +import { fromBech32 } from "@cosmjs/encoding"; +import { + PublicClient, + Transport, + Chain, + Account, + Address, + getContractAddress, +} from "viem"; + +export const addPad = (v: string): string => { + const s = v.startsWith("0x") ? v.slice(2) : v; + return s.padStart(64, "0"); +}; + +export const logTx = (title: string, tx: string) => + console.log( + "=>".grey, + title + "\n", + "=>".green, + `tx hash: "${tx.green}". Waiting for confirmation...` + ); + +export const extractByte32AddrFromBech32 = (addr: string): string => { + const { data } = fromBech32(addr); + const hexed = Buffer.from(data).toString("hex"); + return hexed.length === 64 ? hexed : addPad(hexed); +}; + +export const expectNextContractAddr = async ( + query: PublicClient, + account: Account +): Promise
=> { + const nonce = await query.getTransactionCount(account); + + const next = getContractAddress({ + opcode: "CREATE", + from: account.address, + nonce: BigInt(nonce), + }); + + return next; +}; diff --git a/example/src/warp.ts b/example/src/warp.ts new file mode 100644 index 00000000..f4ce19f4 --- /dev/null +++ b/example/src/warp.ts @@ -0,0 +1,108 @@ +import { Command } from "commander"; +import { isAddress } from "viem"; + +import { HypERC20__factory } from "@hyperlane-xyz/core"; + +import { HYP_MAILBOX } from "./constants"; +import { CONTAINER, Dependencies } from "./ioc"; +import { + expectNextContractAddr, + extractByte32AddrFromBech32, + logTx, +} from "./utils"; + +const warpCmd = new Command("warp"); + +warpCmd.command("deploy").action(deployWarpRoute); +warpCmd + .command("link") + .argument("", "address of warp route") + .argument("", "destination domain to set") + .argument("", "destination address to set") + .action(linkWarpRoute); + +warpCmd + .command("transfer") + .argument("", "address of warp route") + .argument("", "destination domain to transfer") + .argument("", "address to transfer") + .action(transferWarpRoute); + +export { warpCmd }; + +async function deployWarpRoute() { + const { + account, + provider: { query, exec }, + } = CONTAINER.get(Dependencies); + + // deploy hyp erc20 (implementation) + + const hypErc20OsmoAddr = await expectNextContractAddr(query, account); + console.log(`Deploying HypERC20 at "${hypErc20OsmoAddr.green}"...`); + + { + const tx = await exec.deployContract({ + abi: HypERC20__factory.abi, + bytecode: HypERC20__factory.bytecode, + args: [6, HYP_MAILBOX], + }); + logTx("Deploying HypERC20Osmo", tx); + await query.waitForTransactionReceipt({ hash: tx }); + } + + { + const tx = await exec.writeContract({ + abi: HypERC20__factory.abi, + address: hypErc20OsmoAddr, + functionName: "initialize", + args: [0n, "Hyperlane Bridged Osmosis", "OSMO"], + }); + logTx("Initialize HypERC20Osmo", tx); + await query.waitForTransactionReceipt({ hash: tx }); + } + + console.log("== Done! =="); + + console.log({ + hypErc20Osmo: hypErc20OsmoAddr, + }); +} + +async function linkWarpRoute(warp: string, domain: string, route: string) { + const { + provider: { exec, query }, + } = CONTAINER.get(Dependencies); + + if (!isAddress(warp)) throw new Error("Invalid warp address"); + + const tx = await exec.writeContract({ + abi: HypERC20__factory.abi, + address: warp, + functionName: "enrollRemoteRouter", + args: [parseInt(domain), `0x${extractByte32AddrFromBech32(route)}`], + }); + logTx(`Linking warp route with external chain ${domain}`, tx); + await query.waitForTransactionReceipt({ hash: tx }); +} + +async function transferWarpRoute(warp: string, domain: string, to: string) { + const { + provider: { exec, query }, + } = CONTAINER.get(Dependencies); + + if (!isAddress(warp)) throw new Error("Invalid warp address"); + + const tx = await exec.writeContract({ + abi: HypERC20__factory.abi, + address: warp, + functionName: "transferRemote", + args: [ + parseInt(domain), + `0x${extractByte32AddrFromBech32(to)}`, + 1_000_000n, + ], + }); + logTx(`Transferring warp route with external chain ${domain}`, tx); + await query.waitForTransactionReceipt({ hash: tx }); +} diff --git a/example/warp/uosmo.json b/example/warp/uosmo.json new file mode 100644 index 00000000..b77705bb --- /dev/null +++ b/example/warp/uosmo.json @@ -0,0 +1,12 @@ +{ + "type": "native", + "mode": "collateral", + + "id": "uosmo", + "owner": "", + "config": { + "collateral": { + "denom": "uosmo" + } + } +} diff --git a/scripts/package.json b/package.json similarity index 53% rename from scripts/package.json rename to package.json index c0b33123..9e030a02 100644 --- a/scripts/package.json +++ b/package.json @@ -1,12 +1,16 @@ { - "name": "scripts", + "name": "@many-things/cw-hyperlane", + "packageManager": "yarn@4.1.0", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { - "upload": "ts-node src/index.ts", - "deploy": "ts-node action/deploy.ts", - "build": "npx tsc" + "clean": "rm -rf dist", + "build": "yarn clean && esbuild ./script --bundle --outfile=./dist/index.js --platform=node", + "start": "yarn build && node ./dist/index.js", + "cw-hpl": "yarn start", + "cw-hpl-exp": "tsx ./example", + "dev": "tsx ./script" }, "keywords": [], "author": "", @@ -18,16 +22,22 @@ "@cosmjs/proto-signing": "^0.32.2", "@cosmjs/stargate": "^0.32.2", "@cosmjs/tendermint-rpc": "^0.32.2", + "@hyperlane-xyz/core": "^3.7.0", "axios": "^1.6.7", "colors": "^1.4.0", "commander": "^11.1.0", + "decompress": "^4.2.1", "inversify": "^6.0.1", "readline": "^1.3.0", - "reflect-metadata": "^0.1.13" + "reflect-metadata": "^0.1.13", + "viem": "^2.7.15" }, "devDependencies": { + "@cosmwasm/ts-codegen": "^0.35.7", + "@types/decompress": "^4.2.7", "@types/js-yaml": "^4.0.8", - "@types/node": "^20.4.4", + "@types/node": "^20.11.20", + "esbuild": "^0.20.1", "ts-node": "^10.9.1", "ts-yaml": "^1.0.0", "tsx": "^3.13.0", diff --git a/packages/schema/src/main.rs b/packages/schema/src/main.rs index e6e929b1..e44de731 100644 --- a/packages/schema/src/main.rs +++ b/packages/schema/src/main.rs @@ -36,6 +36,30 @@ pub fn main() { }); } + { + use hpl_hook::aggregate::*; + + apis.push(generate_api! { + name: "hpl_hook_aggregate", + instantiate: InstantiateMsg, + migrate: Empty, + execute: ExecuteMsg, + query: QueryMsg, + }); + } + + { + use hpl_hook::fee::*; + + apis.push(generate_api! { + name: "hpl_hook_fee", + instantiate: InstantiateMsg, + migrate: Empty, + execute: ExecuteMsg, + query: QueryMsg, + }); + } + { use hpl_hook::merkle::*; @@ -120,6 +144,30 @@ pub fn main() { }); } + { + use hpl_ism::aggregate::*; + + apis.push(generate_api! { + name: "hpl_ism_aggregate", + instantiate: InstantiateMsg, + migrate: Empty, + execute: ExecuteMsg, + query: QueryMsg, + }); + } + + { + use hpl_ism::pausable::*; + + apis.push(generate_api! { + name: "hpl_ism_pausable", + instantiate: InstantiateMsg, + migrate: Empty, + execute: ExecuteMsg, + query: QueryMsg, + }); + } + { use hpl_ism::multisig::*; diff --git a/scripts/.gitignore b/script/.gitignore similarity index 100% rename from scripts/.gitignore rename to script/.gitignore diff --git a/script/README.md b/script/README.md new file mode 100644 index 00000000..62ced17e --- /dev/null +++ b/script/README.md @@ -0,0 +1,72 @@ +# cw-hpl + +## Prerequisites + +- \>= Node v20 +- \>= Yarn v4.1 + +## Configuration + +Create a `config.yaml` file in the root directory of the project. + +You can check the [config.example.yaml](../config.example.yaml) file to see all supported options. And also you can check the full list of options in the [config.ts](./src/config.ts) file. + +After setup your config file, you can use cw-hpl command-line toolkit from now. + +## Usage + +### Contract + +```bash +# List all supported contracts +$ yarn cw-hpl contract list + +# Test dispatch to a mailbox (needs to run 'cw-hpl deploy' first) +$ yarn cw-hpl contract test-dispatch +``` + +### Deploy + +```bash +# Deploy all contracts based on setting in config file +$ yarn cw-hpl deploy +``` + +### Upload + +```bash +# Upload contract codes that from local environment +$ yarn cw-hpl upload local + +# Fetch & Upload contract codes from Github +$ yarn cw-hpl upload remote + +# List all versions of contract codes from Github +$ yarn cw-hpl upload remote-list +``` + +## Maintaining + +### Adding a new contract + +- ism + + 1. Append [contractNames](./shared/constants.ts) with new contract name + 2. Add new ISM type to [ISMType](./shared/config.ts) and [ContextIsm](./shared/context.ts) + 3. Write deploy script for new ISM in [ism.ts](./deploy/ism.ts) + 4. Done! + +- hook + + 1. Append [contractNames](./shared/constants.ts) with new contract name + 2. Add new Hook type to [HookType](./shared/config.ts) and [ContextHook](./shared/context.ts) + 3. Write deploy script for new Hook in [hook.ts](./deploy/hook.ts) + 4. Done! + +- others + + 1. Append [contractNames](./shared/constants.ts) with new contract name + 2. Add new config type to [Config](./shared/config.ts) if it needs to be configured. + 3. Add new contract field to [ContextDeployment](./shared/context.ts) + 4. Write deploy script for new contract in [deploy.ts](./commands/deploy.ts) + 5. Done! diff --git a/script/commands/context.ts b/script/commands/context.ts new file mode 100644 index 00000000..c9ed5a8f --- /dev/null +++ b/script/commands/context.ts @@ -0,0 +1,22 @@ +import { Command } from "commander"; +import { CONTAINER, Dependencies } from "../shared/ioc"; +import { saveAgentConfig } from "../shared/context"; + +const contextCmd = new Command("context"); + +contextCmd + .command("make-agent-config") + .description("Make an agent config") + .option("-o --output ", "The output directory") + .action(async (_, cmd) => { + const opts = cmd.optsWithGlobals(); + const { ctx, network } = CONTAINER.get(Dependencies); + + await saveAgentConfig( + network, + ctx, + opts.output && { contextPath: opts.output } + ); + }); + +export { contextCmd }; diff --git a/script/commands/contract.ts b/script/commands/contract.ts new file mode 100644 index 00000000..0bfb7d74 --- /dev/null +++ b/script/commands/contract.ts @@ -0,0 +1,44 @@ +import { Command } from "commander"; + +import { contractNames } from "../shared/constants"; +import { executeContract } from "../shared/contract"; +import { CONTAINER, Dependencies } from "../shared/ioc"; +import { addPad } from "../shared/utils"; +import { getNetwork } from "../shared/config"; + +export const contractCmd = new Command("contract").configureHelp({ + showGlobalOptions: true, +}); + +contractCmd.command("list").action(() => { + console.log("Available contracts:".green); + contractNames.forEach((v) => console.log("-", v)); +}); + +contractCmd + .command("test-dispatch") + .argument("dest-domian") + .argument("recipient-addr") + .argument("msg-body") + .action(async (destDomain, recipientAddr, msgBody, _, cmd) => { + const { ctx, client, network } = CONTAINER.get(Dependencies); + + const mailbox = ctx.deployments.core?.mailbox; + if (!mailbox) + throw new Error("Mailbox contract is not deployed. Run `deploy` first."); + + const res = await executeContract( + client, + mailbox, + { + dispatch: { + dest_domain: parseInt(destDomain), + recipient_addr: addPad(recipientAddr), + msg_body: Buffer.from(msgBody, "utf-8").toString("hex"), + }, + }, + [{ amount: "500", denom: network.gas.denom }] + ); + + console.log(res.hash); + }); diff --git a/script/commands/deploy.ts b/script/commands/deploy.ts new file mode 100644 index 00000000..2b5f725f --- /dev/null +++ b/script/commands/deploy.ts @@ -0,0 +1,194 @@ +import { Command } from "commander"; + +import { deployIsm, deployHook } from "../deploy"; +import { CONTAINER, Dependencies } from "../shared/ioc"; +import { Client, config, getNetwork } from "../shared/config"; +import { + Context, + ContextDeployments, + saveAgentConfig, + saveContext, +} from "../shared/context"; +import { deployContract, executeMultiMsg } from "../shared/contract"; + +export const deployCmd = new Command("deploy") + .description("Deploy contracts") + .configureHelp({ showGlobalOptions: true }) + .action(handleDeploy); + +async function handleDeploy(_: any, cmd: any) { + const opts = cmd.optsWithGlobals(); + const { ctx, client } = CONTAINER.get(Dependencies); + + ctx.deployments = ctx.deployments || {}; + ctx.deployments.core = await deployCore(opts, ctx, client); + ctx.deployments.isms = await deployIsms(ctx, client); + ctx.deployments.hooks = await deployHooks(opts, ctx, client); + ctx.deployments.warp = { native: [], cw20: [] }; + ctx.deployments.test = await deployTest(opts, ctx, client); + + await executeMultiMsg(client, [ + { + contract: ctx.deployments.core?.mailbox!, + msg: { + set_default_ism: { + ism: ctx.deployments.isms?.address!, + }, + }, + }, + { + contract: ctx.deployments.core?.mailbox!, + msg: { + set_default_hook: { + hook: ctx.deployments.hooks?.default!.address, + }, + }, + }, + { + contract: ctx.deployments.core?.mailbox!, + msg: { + set_required_hook: { + hook: ctx.deployments.hooks?.required!.address, + }, + }, + }, + ]); + + saveContext(opts.networkId, ctx); + saveAgentConfig(getNetwork(opts.networkId), ctx); +} + +const deployCore = async ( + { networkId }: { networkId: string }, + ctx: Context, + client: Client +): Promise => { + const { hrp, domain } = getNetwork(networkId); + + const log = (v: string) => console.log("[core]".green, v); + const preload = ctx.deployments.core; + const deployment = preload || {}; + + deployment.mailbox = + preload?.mailbox || + (await deployContract(ctx, client, "hpl_mailbox", { + hrp, + domain, + owner: client.signer, + })); + if (preload?.mailbox) log(`${deployment.mailbox.type} already deployed`); + + deployment.validator_announce = + preload?.validator_announce || + (await deployContract(ctx, client, "hpl_validator_announce", { + hrp, + mailbox: deployment.mailbox.address, + })); + if (preload?.validator_announce) + log(`${deployment.validator_announce.type} already deployed`); + + return deployment; +}; + +const deployIsms = async ( + ctx: Context, + client: Client +): Promise => { + if (!config.deploy.ism) { + throw new Error("ISM deployment config not found"); + } + + const log = (v: string) => console.log("[ism]".green, v); + const preload = ctx.deployments.isms; + const deployment = + preload || + (await deployIsm( + ctx, + client, + config.deploy.ism instanceof Array + ? { + // default ism (multisig) + type: "multisig", + owner: client.signer, + validators: config.deploy.ism + .map((domain) => ({ + domain, + addrs: [client.signer_addr], + threshold: 1, + })) + .reduce( + (acc, v) => ({ + [v.domain]: { addrs: v.addrs, threshold: v.threshold }, + ...acc, + }), + {} as Record + ), + } + : config.deploy.ism + )); + if (preload) { + log(`ism ${deployment.type} already deployed`); + } + + return deployment; +}; + +const deployHooks = async ( + { networkId }: { networkId: string }, + ctx: Context, + client: Client +): Promise => { + if (!config.deploy.hooks) { + throw new Error("Hook deployment config not found"); + } + + const log = (v: string) => console.log("[hooks]".green, v); + const preload = ctx.deployments?.hooks; + const deployment = preload || {}; + + deployment.default = + preload?.default || + (await deployHook( + networkId, + ctx, + client, + config.deploy.hooks.default || { type: "mock" } + )); + if (preload?.default) + log(`default hook ${deployment.default.type} already deployed`); + + deployment.required = + preload?.required || + (await deployHook( + networkId, + ctx, + client, + config.deploy.hooks.required || { type: "mock" } + )); + if (preload?.required) + log(`required hook ${deployment.required.type} already deployed`); + + return deployment; +}; + +const deployTest = async ( + { networkId }: { networkId: string }, + ctx: Context, + client: Client +): Promise => { + const { hrp } = getNetwork(networkId); + + const log = (v: string) => console.log("[test]".green, v); + const preload = ctx.deployments.test; + const deployment = preload || {}; + + deployment.msg_receiver = + preload?.msg_receiver || + (await deployContract(ctx, client, "hpl_test_mock_msg_receiver", { + hrp, + })); + if (preload?.msg_receiver) + log(`${deployment.msg_receiver.type} already deployed`); + + return deployment; +}; diff --git a/script/commands/index.ts b/script/commands/index.ts new file mode 100644 index 00000000..54d4eaf0 --- /dev/null +++ b/script/commands/index.ts @@ -0,0 +1,7 @@ +export { contextCmd } from "./context"; +export { contractCmd } from "./contract"; +export { deployCmd } from "./deploy"; +export { migrateCmd } from "./migrate"; +export { uploadCmd } from "./upload"; +export { walletCmd } from "./wallet"; +export { warpCmd } from "./warp"; diff --git a/script/commands/migrate.ts b/script/commands/migrate.ts new file mode 100644 index 00000000..067dbd63 --- /dev/null +++ b/script/commands/migrate.ts @@ -0,0 +1,149 @@ +import { Command } from "commander"; +import { CodeDetails } from "@cosmjs/cosmwasm-stargate"; + +import { CONTAINER, Dependencies } from "../shared/ioc"; +import { ContractNames } from "../shared/contract"; +import { ContextHook, ContextIsm } from "../shared/context"; +import { askQuestion, waitTx } from "../shared/utils"; + +export const migrateCmd = new Command("migrate") + .description("Migrate contracts") + .configureHelp({ showGlobalOptions: true }) + .option("-c --contracts ", "specify contracts to migrate") + .action(handleMigrate); + +async function handleMigrate(_: any, cmd: any) { + const { contracts } = cmd.optsWithGlobals(); + + const { ctx, client } = CONTAINER.get(Dependencies); + + const flatten = [ + ...flattenIsm(ctx.deployments.isms), + ...flattenHook(ctx.deployments.hooks?.default), + ...flattenHook(ctx.deployments.hooks?.required), + ctx.deployments.core?.mailbox, + ctx.deployments.core?.validator_announce, + ctx.deployments.test?.msg_receiver, + ...(ctx.deployments.warp?.cw20 || []), + ...(ctx.deployments.warp?.native || []), + ].filter((v, i, arr) => arr.indexOf(v) === i) as { + type: ContractNames; + address: string; + }[]; + + const withContractInfo = await Promise.all( + (contracts + ? flatten.filter((v) => contracts.includes(v.type)) + : flatten + ).map(async (v) => { + const contractInfo = await client.wasm.getContract(v.address); + const codeInfo = await client.wasm.getCodeDetails(contractInfo.codeId); + return { ...v, contractInfo, codeInfo }; + }) + ); + + const artifacts = Object.fromEntries( + await Promise.all( + Object.entries(ctx.artifacts).map(async ([contractName, codeId]) => { + const codeInfo = await client.wasm.getCodeDetails(codeId); + return [contractName, codeInfo]; + }) + ) + ) as Record; + + const toMigrate = withContractInfo.filter( + (v) => + v.codeInfo.id !== ctx.artifacts[v.type] && + v.codeInfo.checksum !== artifacts[v.type].checksum + ); + + if (toMigrate.length === 0) { + console.log("No changes detected."); + return; + } + + if (!(await askQuestion("Do you want to proceed? (y/n)"))) { + console.log("Aborted."); + return; + } + console.log("Proceeding to migrate..."); + + for (const migrate of toMigrate) { + const res = await client.wasm.migrate( + client.signer, + migrate.address, + artifacts[migrate.type].id, + {}, + "auto" + ); + await waitTx(res.transactionHash, client.stargate); + console.log(`${migrate.type} migrated successfully`); + } +} + +const flattenIsm = ( + ism: ContextIsm | undefined +): { type: ContractNames; address: string }[] => { + if (!ism) return []; + + switch (ism.type) { + case "hpl_ism_aggregate": + return [ + { type: ism.type, address: ism.address }, + ...ism.isms.flatMap(flattenIsm), + ]; + case "hpl_ism_routing": + return [ + { type: ism.type, address: ism.address }, + ...Object.values(ism.isms).flatMap(flattenIsm), + ]; + case "hpl_ism_multisig": + return [ism]; + case "hpl_ism_pausable": + return [ism]; + case "hpl_test_mock_ism": + return [ism]; + } +}; + +const flattenHook = ( + hook: ContextHook | undefined +): { type: ContractNames; address: string }[] => { + if (!hook) return []; + + switch (hook.type) { + case "hpl_hook_aggregate": + return [ + { type: hook.type, address: hook.address }, + ...hook.hooks.flatMap(flattenHook), + ]; + case "hpl_hook_routing": + return [ + { type: hook.type, address: hook.address }, + ...Object.values(hook.hooks).flatMap(flattenHook), + ]; + case "hpl_hook_routing_custom": + return [ + { type: hook.type, address: hook.address }, + ...Object.values(hook.hooks).flatMap((v) => + Object.values(v).flatMap(flattenHook) + ), + ]; + case "hpl_hook_routing_fallback": + return [ + { type: hook.type, address: hook.address }, + ...Object.values(hook.hooks).flatMap(flattenHook), + ]; + + case "hpl_igp": + return [{ type: hook.type, address: hook.address }, hook.oracle]; + case "hpl_hook_fee": + return [hook]; + case "hpl_hook_merkle": + return [hook]; + case "hpl_hook_pausable": + return [hook]; + case "hpl_test_mock_hook": + return [hook]; + } +}; diff --git a/script/commands/upload.ts b/script/commands/upload.ts new file mode 100644 index 00000000..8bb2c6cb --- /dev/null +++ b/script/commands/upload.ts @@ -0,0 +1,216 @@ +/** + * Upload command for contract codes + * 1. local + * - upload local artifacts + * 2. remote + * - upload remote artifacts + * 3. remote-list + * - list available releases from github (check `../common/github.ts` to see how it works) + */ + +import * as fs from "fs"; +import { Command } from "commander"; +import { CodeDetails } from "@cosmjs/cosmwasm-stargate"; + +import { getWasmPath, loadWasmFileDigest } from "../shared/wasm"; +import { CONTAINER, Dependencies } from "../shared/ioc"; +import { + MIN_RELEASE_VERSION, + downloadReleases, + getReleases, +} from "../shared/github"; +import { + contractNames, + defaultArtifactPath, + defaultTmpDir, +} from "../shared/constants"; +import { askQuestion, waitTx } from "../shared/utils"; +import { saveContext } from "../shared/context"; +import { ContractNames } from "../shared/contract"; + +// ============ Command Definitions + +const uploadCmd = new Command("upload") + .description("Upload contract codes") + .option("-c --contracts ", "specify contracts to upload") + .configureHelp({ showGlobalOptions: true }); + +uploadCmd + .command("local") + .description("upload artifacts from local") + .option("-a --artifacts ", "artifacts", defaultArtifactPath) + .action(async (_, cmd) => upload(cmd.optsWithGlobals())); + +uploadCmd + .command("remote") + .description("upload artifacts from remote") + .argument("", `name of release tag. min: ${MIN_RELEASE_VERSION}`) + .option("-o --out ", "artifact output directory", defaultTmpDir) + .action(handleRemote); + +uploadCmd + .command("remote-list") + .description("list all available public release of cw-hyperlane") + .action(handleRemoteList); + +export { uploadCmd }; + +// ============ Handler Functions + +async function handleRemote(tagName: string, _: any, cmd: any): Promise { + const opts = cmd.optsWithGlobals(); + + if (tagName < MIN_RELEASE_VERSION) + throw new Error(`${tagName} < ${MIN_RELEASE_VERSION}`); + + const releases = await getReleases(); + if (!releases[tagName]) + throw new Error( + `release ${tagName} not found in remote.` + + "try 'upload remote-list' to see available releases." + ); + + // make directory if not exists + if (!fs.existsSync(opts.out)) fs.mkdirSync(opts.out, { recursive: true }); + + const artifactPath = await downloadReleases(releases[tagName], opts.out); + + console.log("Downloaded artifacts to", artifactPath.green); + + return upload({ ...opts, artifacts: artifactPath }); +} + +async function handleRemoteList() { + const releases = await getReleases(); + + console.log("Available releases:".green); + for (const [tagName, codes] of Object.entries(releases)) { + console.log("-", `[${tagName}]`.blue); + console.log("ㄴ codes:".grey, `(${codes})`); + } +} + +// ============ Business Logic + +type UploadArgs = { + artifacts: string; + contracts?: ContractNames[]; + networkId: string; +}; + +async function upload({ + artifacts: artifactPath, + contracts: uploadTargets, + networkId, +}: UploadArgs) { + (uploadTargets || []).forEach((v) => { + if (!contractNames.includes(v)) + throw new Error( + `invalid contract name ${v}.` + + "try 'contract list' to see available contracts." + ); + }); + + const digest = await loadWasmFileDigest({ artifactPath }); + const { ctx, client }: Dependencies = CONTAINER.get(Dependencies); + + // query code details of context artifacts + const codeIds = Object.fromEntries( + await Promise.all( + (Object.values(contractNames) as ContractNames[]) + .filter((k) => (uploadTargets ? uploadTargets.includes(k) : true)) + .map(async (k) => [ + k, + ctx.artifacts[k] && + (await client.wasm.getCodeDetails(ctx.artifacts[k])), + ]) + ) + ) as Record; + + // checking code changes + console.log("Checking code changes...".green); + + const listDiff = Object.entries(codeIds) + .map(([v, codeId]) => { + const oldCodeChecksum = codeId?.checksum; + const newCodeChecksum = digest[getWasmPath(v, { artifactPath })]; + + if (oldCodeChecksum && oldCodeChecksum === newCodeChecksum) { + console.log("[NO-CHANGE]".green.padEnd(12, " "), v.padEnd(30, " ")); + return undefined; + } + + if (!oldCodeChecksum) { + console.log( + "[NEW]".yellow.padEnd(12, " "), + v.padEnd(30, " "), + newCodeChecksum + ); + } else { + console.log( + "[REPLACE]".yellow.padEnd(12, " "), + v.padEnd(30, " "), + oldCodeChecksum, + "!=", + newCodeChecksum + ); + } + + return v; + }) + .filter((v) => v !== undefined) as ContractNames[]; + + if (listDiff.length === 0) { + console.log("No changes detected."); + return; + } + + if (!(await askQuestion("Do you want to proceed? (y/n)"))) { + console.log("Aborted."); + return; + } + console.log("Proceeding to upload..."); + + let okCount = 0; + for (const diff of listDiff) { + const upload = await client.wasm.upload( + client.signer, + fs.readFileSync(getWasmPath(diff, { artifactPath })), + "auto" + ); + + const receipt = await waitTx(upload.transactionHash, client.stargate); + + if (receipt.code > 0) { + console.error( + "[FAILURE]".red.padEnd(10, " "), + `${diff.padEnd(30, " ")}`, + `tx: ${upload.transactionHash}` + ); + continue; + } + + console.log( + "[SUCCESS]".green.padEnd(10, " "), + `${diff.padEnd(30, " ")}`, + `codeId: ${upload.codeId}, tx: ${upload.transactionHash}` + ); + + ctx.artifacts[diff] = upload.codeId; + okCount++; + } + + if (okCount === 0) { + console.error( + "[FAILURE]".red.padEnd(10, " "), + "every uploads have failed." + ); + return; + } + + console.log( + "[SUCCESS]".green.padEnd(10, " "), + `uploaded ${okCount} contracts.` + ); + saveContext(networkId, ctx); +} diff --git a/script/commands/wallet.ts b/script/commands/wallet.ts new file mode 100644 index 00000000..e946d4cd --- /dev/null +++ b/script/commands/wallet.ts @@ -0,0 +1,71 @@ +import { + DirectSecp256k1HdWallet, + DirectSecp256k1Wallet, + makeCosmoshubPath, +} from "@cosmjs/proto-signing"; +import { Command } from "commander"; + +import { getKeyPair } from "../shared/crypto"; +import { CONTAINER, Dependencies } from "../shared/ioc"; + +const walletCmd = new Command("wallet") + .description("Wallet commands") + .configureHelp({ showGlobalOptions: true }); + +walletCmd + .command("new") + .description("Create a new wallet") + .action(async (_, cmd) => { + const deps = CONTAINER.get(Dependencies); + + const prefix = { prefix: deps.network.hrp }; + const wallet = await DirectSecp256k1HdWallet.generate(12, prefix); + + const [account] = await wallet.getAccounts(); + const { privkey } = await getKeyPair(wallet.mnemonic, makeCosmoshubPath(0)); + + console.log({ + address: account.address, + mnemonic: wallet.mnemonic, + privateKey: Buffer.from(privkey).toString("hex"), + }); + }); + +walletCmd + .command("address") + .description("Get the address of the wallet") + .option("--private-key ", "The private key of the wallet") + .option("--mnemonic ", "The mnemonic of the wallet") + .action(async (_, cmd) => { + const opts = cmd.optsWithGlobals(); + const deps = CONTAINER.get(Dependencies); + + if ( + (opts.privateKey && opts.mnemonic) || + (!opts.privateKey && !opts.mnemonic) + ) { + throw new Error( + "Only one of --private-key and --mnemonic can be specified" + ); + } + + const wallet = opts.privateKey + ? await DirectSecp256k1Wallet.fromKey( + Buffer.from( + opts.privateKey.startsWith("0x") + ? opts.privateKey.slice(2) + : opts.privateKey, + "hex" + ), + deps.network.hrp + ) + : await DirectSecp256k1HdWallet.fromMnemonic(opts.mnemonic, { + prefix: deps.network.hrp, + }); + + const [account] = await wallet.getAccounts(); + + console.log(account.address); + }); + +export { walletCmd }; diff --git a/script/commands/warp.ts b/script/commands/warp.ts new file mode 100644 index 00000000..dcae1b21 --- /dev/null +++ b/script/commands/warp.ts @@ -0,0 +1,249 @@ +import { readFileSync } from "fs"; +import { Command, Option } from "commander"; + +import { CONTAINER, Dependencies } from "../shared/ioc"; +import { + WarpTokenConfig, + deployCw20TokenWarp, + deployNativeTokenWarp, +} from "../deploy"; +import { saveContext } from "../shared/context"; +import { executeContract } from "../shared/contract"; +import { addPad } from "../shared/utils"; + +const warpCmd = new Command("warp") + .description("Hyperlane warp route commands") + .configureHelp({ showGlobalOptions: true }); + +warpCmd + .command("create") + .description("Create a new warp route") + .argument("", "path to the warp route config file") + .action(handleCreate); + +warpCmd + .command("link") + .description("Link a warp route with external chain") + .addOption( + new Option( + "--asset-type ", + "type of asset, it can be native or cw20" + ) + .makeOptionMandatory() + .choices(["native", "cw20"]) + ) + .addOption( + new Option( + "--asset-id ", + "asset id to link with warp route" + ).makeOptionMandatory() + ) + .addOption( + new Option( + "--target-domain ", + "target domain id to link" + ).makeOptionMandatory() + ) + .addOption( + new Option( + "--warp-address ", + "warp contract address to link with" + ).makeOptionMandatory() + ) + .action(handleLink); + +warpCmd + .command("transfer") + .description("Transfer a warp route to external chain") + .addOption( + new Option( + "--asset-type ", + "type of asset, it can be native or cw20" + ) + .makeOptionMandatory() + .choices(["native", "cw20"]) + ) + .addOption( + new Option( + "--asset-id ", + "asset id to link with warp route" + ).makeOptionMandatory() + ) + .addOption( + new Option( + "--target-domain ", + "target domain id to link" + ).makeOptionMandatory() + ) + .action(handleTransfer); + +export { warpCmd }; + +function checkConfigType< + TokenType extends "native" | "cw20", + TokenMode extends "bridged" | "collateral" +>( + config: WarpTokenConfig, + tokenType: TokenType, + tokenMode: TokenMode +): config is WarpTokenConfig { + return config.type === tokenType && config.mode === tokenMode; +} + +async function handleCreate(configFile: string, _: any, cmd: Command) { + const deps = CONTAINER.get(Dependencies); + + const warpConfigFile = readFileSync(configFile, "utf-8"); + const warpConfig: WarpTokenConfig = JSON.parse(warpConfigFile); + + const { type: warpType, mode } = warpConfig; + + const mailbox = deps.ctx.deployments?.core?.mailbox?.address; + if (!mailbox) { + console.error( + "[error]".red, + "mailbox contract not yet deployed.", + "how about run `deploy` command first?" + ); + return; + } + + deps.ctx.deployments.warp = deps.ctx.deployments.warp || { + native: [], + cw20: [], + }; + + switch (warpType) { + case "native": + if (!checkConfigType(warpConfig, "native", mode)) + throw Error("Invalid wrap config type. This cannot be happended"); + + const nativeWarp = await deployNativeTokenWarp(deps, mailbox, warpConfig); + if (!nativeWarp) { + console.log("[error]".red, "failed to deploy native warp contract"); + return; + } + + deps.ctx.deployments.warp?.native?.push({ + id: warpConfig.id, + ...nativeWarp, + }); + break; + case "cw20": + if (!checkConfigType(warpConfig, "cw20", warpConfig.mode)) + throw Error("Invalid wrap config type. This cannot be happended"); + + const cw20Warp = await deployCw20TokenWarp(deps, mailbox, warpConfig); + if (!cw20Warp) { + console.log("[error]".red, "failed to deploy cw20 warp contract"); + return; + } + + deps.ctx.deployments.warp?.cw20?.push({ + id: warpConfig.id, + ...cw20Warp, + }); + break; + } + + saveContext(deps.network.id, deps.ctx); +} + +async function handleLink(_: any, cmd: Command) { + type Option = { + assetType: "native" | "cw20"; + assetId: string; + targetDomain: string; + warpAddress: string; + }; + + const opts: Option = cmd.optsWithGlobals(); + const deps = CONTAINER.get(Dependencies); + + const warp = deps.ctx.deployments.warp; + if (!warp) + throw new Error( + [ + "[error]".red, + "warp contract is not deployed.", + "Run `warp create` first.", + ].join(" ") + ); + + deps.ctx.deployments.warp = { + ...warp, + [opts.assetType]: warp[opts.assetType as "native" | "cw20"] || [], + }; + + const routes = deps.ctx.deployments.warp[opts.assetType] || []; + const route = routes.find((v) => v.id === opts.assetId); + if (!route) { + console.error( + "[error]".red, + `warp route with id ${opts.assetId} not found.` + ); + return; + } + + const linkResp = await executeContract(deps.client, route, { + router: { + set_route: { + set: { + domain: parseInt(opts.targetDomain), + route: addPad(opts.warpAddress), + }, + }, + }, + }); + + console.log(linkResp.hash); +} + +async function handleTransfer(_: any, cmd: Command) { + type Option = { + assetType: "native" | "cw20"; + assetId: string; + targetDomain: string; + }; + + const opts: Option = cmd.optsWithGlobals(); + const deps = CONTAINER.get(Dependencies); + + const warp = deps.ctx.deployments.warp; + if (!warp) + throw new Error( + [ + "[error]".red, + "warp contract is not deployed.", + "Run `warp create` first.", + ].join(" ") + ); + + deps.ctx.deployments.warp = { + ...warp, + [opts.assetType]: warp[opts.assetType as "native" | "cw20"] || [], + }; + + const routes = deps.ctx.deployments.warp[opts.assetType] || []; + const route = routes.find((v) => v.id === opts.assetId); + if (!route) { + console.error( + "[error]".red, + `warp route with id ${opts.assetId} not found.` + ); + return; + } + + await executeContract( + deps.client, + route, + { + transfer_remote: { + dest_domain: parseInt(opts.targetDomain), + recipient: addPad(deps.client.signer_addr), + amount: `${1_000_000n}`, + }, + }, + [{ amount: `${1_000_001n}`, denom: "uosmo" }] + ); +} diff --git a/script/deploy/hook.ts b/script/deploy/hook.ts new file mode 100644 index 00000000..e15f456b --- /dev/null +++ b/script/deploy/hook.ts @@ -0,0 +1,252 @@ +import { + Client, + HookType, + RoutingCustomHookType, + RoutingFallbackHookType, + RoutingHookType, + getNetwork, +} from "../shared/config"; +import { Context, ContextHook } from "../shared/context"; +import { + deployContract, + executeContract, + executeMultiMsg, +} from "../shared/contract"; +import { deployIgp } from "./igp"; + +const deployRoutingHook = async ( + networkId: string, + ctx: Context, + client: Client, + hook: RoutingHookType +): Promise => { + const routing = await deployContract(ctx, client, "hpl_hook_routing", { + owner: hook.owner === "" ? client.signer : hook.owner, + }); + + const routes = []; + for (const [domain, v] of Object.entries(hook.hooks)) { + routes.push({ + domain: parseInt(domain), + route: await deployHook(networkId, ctx, client, v), + }); + } + + await executeContract(client, routing, { + router: { + set_routes: { + set: routes.map((v) => ({ + domain: v.domain, + route: v.route.address, + })), + }, + }, + }); + + return { + ...routing, + hooks: routes.reduce((acc, v) => ({ [v.domain]: v.route, ...acc })), + }; +}; + +const deployCustomRoutingHook = async ( + networkId: string, + ctx: Context, + client: Client, + hook: RoutingCustomHookType +): Promise => { + const routing = await deployContract(ctx, client, "hpl_hook_routing_custom", { + owner: hook.owner === "" ? client.signer : hook.owner, + }); + + const routes = []; + for (const [domain, v] of Object.entries(hook.hooks)) { + routes.push({ + domain: parseInt(domain), + route: await deployHook(networkId, ctx, client, v), + }); + } + + const customRoutes: { + dest_domain: number; + recipient: string; + hook: ContextHook; + }[] = []; + for (const [domain, v] of Object.entries(hook.custom_hooks)) { + customRoutes.push({ + dest_domain: parseInt(domain), + recipient: v.recipient, + hook: await deployHook(networkId, ctx, client, v.hook), + }); + } + + await executeMultiMsg(client, [ + { + contract: routing, + msg: { + router: { + set_routes: { + set: routes.map((v) => ({ + domain: v.domain, + route: v.route.address, + })), + }, + }, + }, + }, + { + contract: routing, + msg: { + register_custom_hooks: customRoutes.map((v) => ({ + ...v, + hook: v.hook.address, + })), + }, + }, + ]); + + return { + ...routing, + hooks: routes.reduce((acc, v) => ({ + [v.domain]: { + default: v.route, + ...customRoutes + .filter((r) => r.dest_domain === v.domain) + .map(({ recipient, hook }) => ({ recipient, hook })) + .reduce((acc, r) => ({ [r.recipient]: r.hook, ...acc })), + }, + ...acc, + })), + }; +}; + +const deployFallbackRoitingHook = async ( + networkId: string, + ctx: Context, + client: Client, + hook: RoutingFallbackHookType +): Promise => { + const routing = await deployContract( + ctx, + client, + "hpl_hook_routing_fallback", + { + owner: hook.owner === "" ? client.signer : hook.owner, + } + ); + + const routes = await Promise.all( + Object.entries(hook.hooks).map(async ([domain, v]) => ({ + domain: parseInt(domain), + route: await deployHook(networkId, ctx, client, v), + })) + ); + + const fallback = await deployHook(networkId, ctx, client, hook.fallback_hook); + + await executeMultiMsg(client, [ + { + contract: routing, + msg: { + router: { + set_routes: { + set: routes.map((v) => ({ + domain: v.domain, + route: v.route.address, + })), + }, + }, + }, + }, + { + contract: routing, + msg: { + set_fallback_hook: { hook: fallback.address }, + }, + }, + ]); + + return { + ...routing, + hooks: { + fallback, + ...routes.reduce((acc, v) => ({ [v.domain]: v.route, ...acc })), + }, + }; +}; + +export const deployHook = async ( + networkId: string, + ctx: Context, + client: Client, + hook: HookType +): Promise => { + switch (hook.type) { + // deploy fee hook + case "fee": + const { gas } = getNetwork(networkId); + + return deployContract(ctx, client, "hpl_hook_fee", { + owner: hook.owner === "" ? client.signer : hook.owner, + fee: { + denom: hook.fee.denom || gas.denom, + amount: hook.fee.amount.toString(), + }, + }); + + // deploy merkle hook + case "merkle": + return deployContract(ctx, client, "hpl_hook_merkle", { + mailbox: ctx.deployments.core?.mailbox?.address, + }); + + // deploy mock hook + case "mock": + return deployContract(ctx, client, "hpl_test_mock_hook", {}); + + // deploy pausable hook + case "pausable": + return deployContract(ctx, client, "hpl_hook_pausable", { + owner: hook.owner === "" ? client.signer : hook.owner, + paused: hook.paused || false, + }); + + // deploy igp hook + case "igp": + return deployIgp(networkId, ctx, client, hook); + + // deploy aggregate hook + case "aggregate": + const aggr = []; + for (const v of hook.hooks) { + aggr.push(await deployHook(networkId, ctx, client, v)); + } + + const aggregate = await deployContract( + ctx, + client, + "hpl_hook_aggregate", + { + owner: hook.owner === "" ? client.signer : hook.owner, + hooks: aggr.map((v) => v.address), + } + ); + + return { ...aggregate, hooks: aggr }; + + // deploy routing hook + case "routing": + return deployRoutingHook(networkId, ctx, client, hook); + + // deploy custom routing hook + case "routing-custom": + return deployCustomRoutingHook(networkId, ctx, client, hook); + + // deploy fallback routing hook + case "routing-fallback": + return deployFallbackRoitingHook(networkId, ctx, client, hook); + + default: + throw new Error("invalid hook type"); + } +}; diff --git a/script/deploy/igp.ts b/script/deploy/igp.ts new file mode 100644 index 00000000..47ee85d7 --- /dev/null +++ b/script/deploy/igp.ts @@ -0,0 +1,57 @@ +import { Client, IgpHookType, getNetwork } from "../shared/config"; +import { Context, ContextHook } from "../shared/context"; +import { deployContract, executeMultiMsg } from "../shared/contract"; + +export const deployIgp = async ( + networkId: string, + ctx: Context, + client: Client, + igpType: IgpHookType +): Promise => { + const { hrp, gas } = getNetwork(networkId); + + // init igp + const igp = await deployContract(ctx, client, "hpl_igp", { + hrp, + owner: igpType.owner === "" ? client.signer : igpType.owner, + gas_token: igpType.token || gas.denom, + beneficiary: client.signer, + default_gas_usage: igpType.default_gas_usage.toString(), + }); + + // init igp oracle + + const igpOracle = await deployContract(ctx, client, "hpl_igp_oracle", { + owner: client.signer, + }); + + await executeMultiMsg(client, [ + { + contract: igpOracle, + msg: { + set_remote_gas_data_configs: { + configs: Object.entries(igpType.configs).map(([domain, v]) => ({ + remote_domain: Number(domain), + token_exchange_rate: v.exchange_rate.toString(), + gas_price: v.gas_price.toString(), + })), + }, + }, + }, + { + contract: igp, + msg: { + router: { + set_routes: { + set: Object.keys(igpType.configs).map((domain) => ({ + domain: Number(domain), + route: igpOracle.address, + })), + }, + }, + }, + }, + ]); + + return { ...igp, oracle: igpOracle }; +}; diff --git a/script/deploy/index.ts b/script/deploy/index.ts new file mode 100644 index 00000000..f72189b9 --- /dev/null +++ b/script/deploy/index.ts @@ -0,0 +1,4 @@ +export * from "./hook"; +export * from "./igp"; +export * from "./ism"; +export * from "./warp"; diff --git a/script/deploy/ism.ts b/script/deploy/ism.ts new file mode 100644 index 00000000..a4844ea4 --- /dev/null +++ b/script/deploy/ism.ts @@ -0,0 +1,94 @@ +import { Client, IsmType } from "../shared/config"; +import { Context, ContextIsm } from "../shared/context"; +import { + deployContract, + executeContract, + executeMultiMsg, +} from "../shared/contract"; + +const deployRoutingIsm = async ( + ctx: Context, + client: Client, + ism: Extract +) => { + const routes = []; + for (const [domain, v] of Object.entries(ism.isms)) { + routes.push({ + domain: parseInt(domain), + route: await deployIsm(ctx, client, v), + }); + } + + const routing = await deployContract(ctx, client, "hpl_ism_routing", { + owner: ism.owner === "" ? client.signer : ism.owner, + }); + + await executeContract(client, routing, { + router: { + set_routes: { + set: routes.map(({ domain, route }) => ({ + domain, + route: route.address, + })), + }, + }, + }); + + return { + ...routing, + isms: routes.reduce((acc, v) => ({ [v.domain]: v.route, ...acc })), + }; +}; + +export async function deployIsm( + ctx: Context, + client: Client, + ism: Exclude +): Promise { + switch (ism.type) { + // deploy multisig ism + case "multisig": + const multisig = await deployContract(ctx, client, "hpl_ism_multisig", { + owner: ism.owner === "" ? client.signer : ism.owner, + }); + + await executeMultiMsg( + client, + Object.entries(ism.validators).map( + ([domain, { addrs, threshold }]) => ({ + contract: multisig, + msg: { + set_validators: { + domain: Number(domain), + threshold, + validators: addrs, + }, + }, + }) + ) + ); + + return multisig; + + // deploy aggregate ism + case "aggregate": + const aggr = []; + for (const v of ism.isms) { + aggr.push(await deployIsm(ctx, client, v)); + } + + const aggregate = await deployContract(ctx, client, "hpl_ism_aggregate", { + owner: ism.owner === "" ? client.signer : ism.owner, + isms: aggr.map((v) => v.address), + }); + + return { ...aggregate, isms: aggr }; + + // deploy routing ism + case "routing": + return deployRoutingIsm(ctx, client, ism); + + default: + throw new Error("invalid ism type"); + } +} diff --git a/script/deploy/warp.ts b/script/deploy/warp.ts new file mode 100644 index 00000000..a84f9d7f --- /dev/null +++ b/script/deploy/warp.ts @@ -0,0 +1,128 @@ +import { deployContract } from "../shared/contract"; +import { Dependencies } from "../shared/ioc"; +import { orSigner } from "../shared/utils"; + +type NativeTokenBridged = { + denom: string; + metadata?: { + description: string; + denom_units: { + denom: string; + exponent: string; + aliases: string[]; + }[]; + base: string; + display: string; + name: string; + symbol: string; + }; +}; + +type NativeTokenCollateral = { + denom: string; +}; + +type Cw20TokenBridged = { + code_id: number; + init_msg: { + name: string; + symbol: string; + decimals: number; + initial_balances: { address: string; amount: string }[]; + mint?: { minter: string; cap?: string }; + marketing?: { + project?: string; + description?: string; + marketing?: string; + logo?: { url: string } & { + embedded: { svg: string } & { png: string }; + }; + }; + }; +}; + +type Cw20TokenCollateral = { + address: string; +}; + +type WarpTokenConfigMap = { + native: { + bridged: { bridged: NativeTokenBridged }; + collateral: { collateral: NativeTokenCollateral }; + }; + cw20: { + bridged: { bridged: Cw20TokenBridged }; + collateral: { collateral: Cw20TokenCollateral }; + }; +}; + +export type WarpTokenConfig< + TokenType extends "native" | "cw20" = "native" | "cw20", + TokenMode extends "bridged" | "collateral" = "bridged" | "collateral", + OwnerType extends string | "" = "" +> = { + type: TokenType; + mode: TokenMode; + + id: string; + owner: OwnerType; + config: WarpTokenConfigMap[TokenType][TokenMode]; +}; + +export async function deployNativeTokenWarp( + { ctx, client, network }: Dependencies, + mailbox: string, + config: WarpTokenConfig<"native"> +): Promise<{ type: "hpl_warp_native"; address: string } | undefined> { + const deployments = ctx.deployments; + + const preload = deployments?.warp?.native?.find((v) => v.id === config.id); + if (preload) { + console.error( + "[error]".red, + `warp route ${preload.id} already exists.`, + `type: ${preload.type},`, + `addr: ${preload.address}` + ); + return; + } + + const nativeWarp = await deployContract(ctx, client, "hpl_warp_native", { + token: config.config, + + hrp: network.hrp, + owner: orSigner(client, config.owner), + mailbox, + }); + + return nativeWarp; +} + +export async function deployCw20TokenWarp( + { ctx, client, network }: Dependencies, + mailbox: string, + config: WarpTokenConfig<"cw20"> +): Promise<{ type: "hpl_warp_cw20"; address: string } | undefined> { + const deployments = ctx.deployments; + + const preload = deployments?.warp?.cw20?.find((v) => v.id === config.id); + if (preload) { + console.error( + "[error]".red, + `warp route ${preload.id} already exists.`, + `type: ${preload.type},`, + `addr: ${preload.address}` + ); + return; + } + + const cw20Warp = await deployContract(ctx, client, "hpl_warp_cw20", { + token: config.config, + + hrp: network.hrp, + owner: orSigner(client, config.owner), + mailbox, + }); + + return cw20Warp; +} diff --git a/script/index.ts b/script/index.ts new file mode 100644 index 00000000..10559d6e --- /dev/null +++ b/script/index.ts @@ -0,0 +1,58 @@ +import "reflect-metadata"; +import colors from "colors"; +import { Command, Option } from "commander"; + +import { + uploadCmd, + deployCmd, + contractCmd, + migrateCmd, + walletCmd, + warpCmd, + contextCmd, +} from "./commands"; +import { config, getNetwork, getSigningClient } from "./shared/config"; +import { loadContext } from "./shared/context"; +import { CONTAINER, Dependencies } from "./shared/ioc"; + +import { version } from "../package.json"; + +colors.enable(); + +const optNetworkId = new Option( + "-n, --network-id ", + "specify network id" +) + .choices(config.networks.map((v) => v.id)) + .makeOptionMandatory(); + +const cli = new Command(); + +cli + .name("cw-hpl") + .version(version) + .description("CLI toolkit for CosmWasm Hyperlane") + .addOption(optNetworkId) + .hook("preAction", injectDependencies); + +cli.addCommand(contextCmd); +cli.addCommand(contractCmd); +cli.addCommand(deployCmd); +cli.addCommand(migrateCmd); +cli.addCommand(uploadCmd); +cli.addCommand(walletCmd); +cli.addCommand(warpCmd); + +cli.parseAsync(process.argv).catch(console.error); + +async function injectDependencies(cmd: Command): Promise { + const { networkId } = cmd.optsWithGlobals(); + + const client = await getSigningClient(networkId, config); + const ctx = loadContext(networkId); + const network = getNetwork(networkId); + + const deps = { ctx, client, network }; + + CONTAINER.bind(Dependencies).toConstantValue(deps); +} diff --git a/script/shared/agent.ts b/script/shared/agent.ts new file mode 100644 index 00000000..ea1de653 --- /dev/null +++ b/script/shared/agent.ts @@ -0,0 +1,131 @@ +import { Config } from "./config"; +import { Context, ContextHook } from "./context"; +import { extractByte32AddrFromBech32 } from "./utils"; +import { getContractInfo } from "./wasm"; + +export type HplAgentConfig = { + name: string; + domainId: string; + chainId: string; + protocol: "cosmos"; + rpcUrls: { http: string }[]; + grpcUrl: string; + canonicalAsset: string; // usually same as gas token + bech32Prefix: string; // hrp + gasPrice: { + amount: string; + denom: string; + }; + contractAddressBytes: 32; + index: { + from?: number; + chunk: number; + }; + blocks: { + reorgPeriod: 1; // instant finality ⭐️ + }; + + mailbox: string; // hexed + interchainGasPaymaster: string; // hexed + validatorAnnounce: string; // hexed + merkleTreeHook: string; // hexed + testRecipient: string; // hexed +}; + +export async function fromContext( + network: Config["networks"][number], + context: Context +): Promise { + const toHex = (v: string) => `0x${extractByte32AddrFromBech32(v)}`; + + const { hooks, core, test } = context.deployments; + + const mailboxAddr = core?.mailbox?.address!; + const mailboxContractInfo = await getContractInfo(network, mailboxAddr); + + const igp = + findHook(hooks?.default!, "hpl_igp") || + findHook(hooks?.required!, "hpl_igp"); + if (!igp) throw new Error("no igp on this context"); + + const merkleTreeHook = + findHook(hooks?.default!, "hpl_hook_merkle") || + findHook(hooks?.required!, "hpl_hook_merkle"); + if (!merkleTreeHook) throw new Error("no merkle tree hook on this context"); + + const agent: HplAgentConfig = { + name: network.id.split("-").join(""), + domainId: network.domain.toString(), + chainId: network.id, + protocol: "cosmos", + + rpcUrls: [{ http: network.endpoint.rpc }], + grpcUrl: network.endpoint.grpc, + canonicalAsset: network.gas.denom, + bech32Prefix: network.hrp, + + gasPrice: { + amount: network.gas.price, + denom: network.gas.denom, + }, + contractAddressBytes: 32, + + index: { + from: + // sub 1 block to make sure we don't miss any block + mailboxContractInfo && + parseInt(mailboxContractInfo.contract_info.created.block_height) - 1, + chunk: 10_000, + }, + blocks: { + reorgPeriod: 1, + }, + + // contract addresses + mailbox: toHex(core?.mailbox?.address!), + validatorAnnounce: toHex(core?.validator_announce?.address!), + interchainGasPaymaster: toHex(igp.address), + merkleTreeHook: toHex(merkleTreeHook.address), + testRecipient: toHex(test?.msg_receiver?.address!), + }; + + return agent; +} + +// map filter reverse pop +function mfrpHooks( + hooks: ContextHook[], + want: ContextHook["type"] +): ContextHook | undefined { + return hooks + .map((v) => findHook(v, want)) + .filter((v) => v !== undefined) + .reverse() + .pop(); +} + +function findHook( + hook: ContextHook, + want: ContextHook["type"] +): ContextHook | undefined { + if (hook.type === want) return hook; + + switch (hook.type) { + case "hpl_hook_aggregate": + return mfrpHooks(hook.hooks, want); + case "hpl_hook_routing": + return mfrpHooks(Object.values(hook.hooks), want); + case "hpl_hook_routing_custom": + return mfrpHooks( + Object.values(hook.hooks) + .map((v) => Object.values(v)) + .flat(), + want + ); + case "hpl_hook_routing_fallback": + return mfrpHooks(Object.values(hook.hooks), want); + + default: + return undefined; + } +} diff --git a/scripts/src/config.ts b/script/shared/config.ts similarity index 55% rename from scripts/src/config.ts rename to script/shared/config.ts index 778226ce..3cff4b90 100644 --- a/scripts/src/config.ts +++ b/script/shared/config.ts @@ -2,26 +2,18 @@ import yaml from "js-yaml"; import { readFileSync } from "fs"; import { SigningCosmWasmClient } from "@cosmjs/cosmwasm-stargate"; import { + Comet38Client, Tendermint34Client, Tendermint37Client, - TendermintClient, + CometClient, } from "@cosmjs/tendermint-rpc"; -import { DirectSecp256k1Wallet } from "@cosmjs/proto-signing"; +import { + DirectSecp256k1HdWallet, + DirectSecp256k1Wallet, +} from "@cosmjs/proto-signing"; import { GasPrice, SigningStargateClient } from "@cosmjs/stargate"; import { Secp256k1, keccak256 } from "@cosmjs/crypto"; - -export const DEFAULT_ISM = (signer: string): IsmType => ({ - type: "multisig", - owner: "", - validators: { - 5: { - addrs: [signer], - threshold: 1, - }, - }, -}); - -export const DEFAULT_HOOK = { type: "mock" } as HookType; +import { addPad } from "./utils"; export type IsmType = | { @@ -37,25 +29,27 @@ export type IsmType = | { type: "aggregate"; owner: string; - isms: IsmType[]; + isms: Exclude[]; } | { type: "routing"; owner: string; - isms: { [domain: number]: IsmType }; - }; + isms: { [domain: number]: Exclude }; + } + | number[]; export type FeeHookType = { type: "fee"; owner: string; fee: { - denom: string; + denom?: string; amount: bigint; }; }; export type IgpHookType = { type: "igp"; + owner: string; token?: string; configs: { [domain: number]: { @@ -63,16 +57,29 @@ export type IgpHookType = { gas_price: number; }; }; + default_gas_usage: number; }; export type RoutingHookType = { type: "routing"; owner: string; hooks: { [domain: number]: HookType }; - custom_hooks?: { - [domain: number]: { recipient: string; hook: string }; +}; + +export type RoutingCustomHookType = { + type: "routing-custom"; + owner: string; + hooks: { [domain: number]: HookType }; + custom_hooks: { + [domain: number]: { recipient: string; hook: HookType }; }; - fallback_hook?: string; +}; + +export type RoutingFallbackHookType = { + type: "routing-fallback"; + owner: string; + hooks: { [domain: number]: HookType }; + fallback_hook: HookType; }; export type HookType = @@ -90,20 +97,26 @@ export type HookType = } | IgpHookType | { type: "aggregate"; owner: string; hooks: HookType[] } - | RoutingHookType; + | RoutingHookType + | RoutingCustomHookType + | RoutingFallbackHookType; export type Config = { - network: { + networks: { id: string; hrp: string; - url: string; + endpoint: { + rpc: string; + rest: string; + grpc: string; + }; gas: { price: string; denom: string; }; domain: number; - tm_version?: "34" | "37"; - }; + tm_version?: "34" | "37" | "38"; + }[]; signer: string; @@ -116,53 +129,65 @@ export type Config = { }; }; -export type Client = { +export class Client { wasm: SigningCosmWasmClient; stargate: SigningStargateClient; signer: string; signer_addr: string; signer_pubkey: string; -}; +} const path = process.env.CONFIG || `${process.cwd()}/config.yaml`; +export const getNetwork = (networkId: string): Config["networks"][number] => { + const ret = config.networks.find((v) => v.id === networkId); + if (!ret) + throw new Error(`Network ${networkId} not found in the config file`); + return ret; +}; + export const config = yaml.load(readFileSync(path, "utf-8")) as Config; -export async function getSigningClient({ - network, - signer, -}: Config): Promise { - const wallet = await DirectSecp256k1Wallet.fromKey( - Buffer.from(signer, "hex"), - network.hrp - ); +export async function getSigningClient( + networkId: string, + { signer }: Config +): Promise { + const { tm_version, hrp, gas, endpoint } = getNetwork(networkId); + + const wallet = + signer.split(" ").length > 1 + ? await DirectSecp256k1HdWallet.fromMnemonic(signer, { prefix: hrp }) + : await DirectSecp256k1Wallet.fromKey( + Buffer.from(addPad(signer), "hex"), + hrp + ); const [account] = await wallet.getAccounts(); + const gasPrice = GasPrice.fromString(`${gas.price}${gas.denom}`); - let clientBase: TendermintClient; + let clientBase: CometClient; - switch (network.tm_version || "37") { + switch (tm_version || "38") { case "34": - clientBase = await Tendermint34Client.connect(network.url); + clientBase = await Tendermint34Client.connect(endpoint.rpc); break; case "37": - clientBase = await Tendermint37Client.connect(network.url); + clientBase = await Tendermint37Client.connect(endpoint.rpc); + break; + case "38": + clientBase = await Comet38Client.connect(endpoint.rpc); break; } const wasm = await SigningCosmWasmClient.createWithSigner( clientBase, wallet, - { - gasPrice: GasPrice.fromString(`${network.gas.price}${network.gas.denom}`), - } + { gasPrice } ); const stargate = await SigningStargateClient.createWithSigner( clientBase, wallet, - { - gasPrice: GasPrice.fromString(`${network.gas.price}${network.gas.denom}`), - } + { gasPrice } ); const pubkey = Secp256k1.uncompressPubkey(account.pubkey); diff --git a/script/shared/constants.ts b/script/shared/constants.ts new file mode 100644 index 00000000..54acbdf6 --- /dev/null +++ b/script/shared/constants.ts @@ -0,0 +1,28 @@ +import path from "path"; + +export const defaultTmpDir = path.join(process.cwd(), "./tmp"); +export const defaultContextPath = path.join(process.cwd(), "./context"); +export const defaultArtifactPath = path.join(process.cwd(), "./artifacts"); + +export const contractNames = [ + "hpl_mailbox", + "hpl_validator_announce", + "hpl_ism_aggregate", + "hpl_ism_multisig", + "hpl_ism_pausable", + "hpl_ism_routing", + "hpl_igp", + "hpl_hook_aggregate", + "hpl_hook_fee", + "hpl_hook_merkle", + "hpl_hook_pausable", + "hpl_hook_routing", + "hpl_hook_routing_custom", + "hpl_hook_routing_fallback", + "hpl_test_mock_hook", + "hpl_test_mock_ism", + "hpl_test_mock_msg_receiver", + "hpl_igp_oracle", + "hpl_warp_cw20", + "hpl_warp_native", +]; diff --git a/script/shared/context.ts b/script/shared/context.ts new file mode 100644 index 00000000..b8ea28ad --- /dev/null +++ b/script/shared/context.ts @@ -0,0 +1,112 @@ +import fs from "fs"; +import path from "path"; + +import { ContractNames } from "./contract"; +import { defaultContextPath } from "./constants"; +import { HplAgentConfig, fromContext } from "./agent"; +import { Config } from "./config"; + +type typed = { type: T; address: string }; + +export type ContextIsm = + | (typed<"hpl_ism_aggregate"> & { + isms: ContextIsm[]; + }) + | typed<"hpl_ism_multisig"> + | typed<"hpl_ism_pausable"> + | (typed<"hpl_ism_routing"> & { + isms: Record; + }) + | typed<"hpl_test_mock_ism">; + +export type ContextHook = + | (typed<"hpl_igp"> & { oracle: typed<"hpl_igp_oracle"> }) + | (typed<"hpl_hook_aggregate"> & { + hooks: ContextHook[]; + }) + | typed<"hpl_hook_fee"> + | typed<"hpl_hook_merkle"> + | typed<"hpl_hook_pausable"> + | (typed<"hpl_hook_routing"> & { + hooks: Record; + }) + | (typed<"hpl_hook_routing_custom"> & { + hooks: Record>; + }) + | (typed<"hpl_hook_routing_fallback"> & { + hooks: Record; + }) + | typed<"hpl_test_mock_hook">; + +export type ContextDeployments = { + core?: { + mailbox?: typed<"hpl_mailbox">; + validator_announce?: typed<"hpl_validator_announce">; + }; + + isms?: ContextIsm; + + hooks?: { + default?: ContextHook; + required?: ContextHook; + }; + + warp?: { + cw20?: ({ id: string } & typed<"hpl_warp_cw20">)[]; + native?: ({ id: string } & typed<"hpl_warp_native">)[]; + }; + + test?: { + msg_receiver?: typed<"hpl_test_mock_msg_receiver">; + }; +}; + +export class Context { + artifacts: Record; + deployments: ContextDeployments; + + latestMigration?: string; +} + +export function loadContext( + network: string, + { contextPath }: { contextPath: string } = { + contextPath: defaultContextPath, + } +): Context { + try { + const fileName = path.join(contextPath, `${network}.json`); + const result = fs.readFileSync(fileName, "utf-8"); + return JSON.parse(result.toString()) as Context; + } catch (err) {} + + return { + artifacts: {}, + deployments: {}, + }; +} + +export function saveContext( + network: string, + context: Context, + { contextPath }: { contextPath: string } = { + contextPath: defaultContextPath, + } +) { + fs.mkdirSync(contextPath, { recursive: true }); + const fileName = path.join(contextPath, `${network}.json`); + fs.writeFileSync(fileName, JSON.stringify(context, null, 2)); +} + +export async function saveAgentConfig( + network: Config["networks"][number], + context: Context, + { contextPath }: { contextPath: string } = { + contextPath: defaultContextPath, + } +): Promise { + const agentConfig = await fromContext(network, context); + const fileName = path.join(contextPath, `${network.id}.config.json`); + fs.writeFileSync(fileName, JSON.stringify(agentConfig, null, 2)); + return agentConfig; +} diff --git a/script/shared/contract.ts b/script/shared/contract.ts new file mode 100644 index 00000000..64a8c427 --- /dev/null +++ b/script/shared/contract.ts @@ -0,0 +1,111 @@ +import { contractNames } from "./constants"; +import { Context } from "./context"; +import { waitTx } from "./utils"; +import { Client } from "./config"; +import { IndexedTx } from "@cosmjs/stargate"; +import { Logger } from "./logger"; + +const logger = new Logger("contract"); + +export type ContractNames = (typeof contractNames)[number]; + +export async function deployContract( + ctx: Context, + { wasm, stargate, signer }: Client, + contractName: T, + initMsg: any +): Promise<{ type: T; address: string }> { + logger.debug(`deploying ${contractName}`); + + const codeId = ctx.artifacts[contractName]; + const res = await wasm.instantiate( + signer, + codeId, + initMsg, + `cw-hpl: ${contractName}`, + "auto" + ); + const receipt = await waitTx(res.transactionHash, stargate); + if (receipt.code > 0) { + logger.error( + "deploy tx failed.", + `contract=${contractName}, hash=${receipt.hash}` + ); + throw new Error(JSON.stringify(receipt.events)); + } + + logger.info(`deployed ${contractName} at ${res.contractAddress}`); + return { type: contractName, address: res.contractAddress }; +} + +export async function executeContract( + { wasm, stargate, signer }: Client, + deployment: { type: ContractNames; address: string }, + msg: any, + funds: { amount: string; denom: string }[] = [] +): Promise { + logger.debug(`executing ${deployment.type}'s ${Object.keys(msg)[0]}`); + + const res = await wasm.execute( + signer, + deployment.address, + msg, + "auto", + undefined, + funds + ); + const receipt = await waitTx(res.transactionHash, stargate); + if (receipt.code > 0) { + logger.error( + "execute tx failed.", + `contract=${deployment.type}, hash=${receipt.hash}` + ); + throw new Error(JSON.stringify(receipt.events)); + } + + logger.info(`executed ${deployment.type}'s ${Object.keys(msg)[0]}`); + return receipt; +} + +export async function executeMultiMsg( + { wasm, stargate, signer }: Client, + msgs: { contract: { type: ContractNames; address: string }; msg: any }[] +): Promise { + const long = msgs + .map((v) => v.contract.type.length) + .reduce((max, v) => Math.max(v, max), 0); + + logger.debug( + `executing ${msgs.length} msgs.\n`, + ...msgs.flatMap((v, i, arr) => [ + `- ${v.contract.type.padEnd(long, " ")}:`, + `${Object.keys(v.msg)[0]}${i === arr.length - 1 ? "" : "\n"}`, + ]) + ); + + const res = await wasm.executeMultiple( + signer, + msgs.map((v) => ({ + contractAddress: v.contract.address, + msg: v.msg, + })), + "auto" + ); + const receipt = await waitTx(res.transactionHash, stargate); + if (receipt.code > 0) { + logger.error( + `execute multiple tx failed.`, + `msgs=${msgs.length}, hash=${receipt.hash}` + ); + throw new Error(JSON.stringify(receipt.events)); + } + + logger.info( + `executed ${msgs.length} msgs.\n`, + ...msgs.flatMap((v, i, arr) => [ + `- ${v.contract.type.padEnd(long, " ")}:`, + `${Object.keys(v.msg)[0]}${i === arr.length - 1 ? "" : "\n"}`, + ]) + ); + return receipt; +} diff --git a/script/shared/crypto.ts b/script/shared/crypto.ts new file mode 100644 index 00000000..5dd356ed --- /dev/null +++ b/script/shared/crypto.ts @@ -0,0 +1,22 @@ +import { + HdPath, + Slip10, + Slip10Curve, + Bip39, + EnglishMnemonic, + Secp256k1, +} from "@cosmjs/crypto"; + +export const getKeyPair = async ( + mnemonic: string, + hdPath: HdPath, + password?: string +) => { + const { privkey } = Slip10.derivePath( + Slip10Curve.Secp256k1, + await Bip39.mnemonicToSeed(new EnglishMnemonic(mnemonic), password), + hdPath + ); + const { pubkey } = await Secp256k1.makeKeypair(privkey); + return { privkey, pubkey: Secp256k1.compressPubkey(pubkey) }; +}; diff --git a/script/shared/github.ts b/script/shared/github.ts new file mode 100644 index 00000000..13c9f214 --- /dev/null +++ b/script/shared/github.ts @@ -0,0 +1,45 @@ +import * as fs from "fs"; +import path from "path"; +import decompress from "decompress"; + +import { downloadFile } from "./utils"; + +const RELEASE_API_URL = + "https://api.github.com/repos/many-things/cw-hyperlane/releases"; + +const RELEASE_ARTIFACT_URL = (tag: string) => + `https://github.com/many-things/cw-hyperlane/releases/download/${tag}/cw-hyperlane-${tag}.zip`; + +export const MIN_RELEASE_VERSION = "v0.0.6-rc8"; + +interface ReleaseApiResp { + tag_name: string; +} + +export const getReleases = async (): Promise> => { + const apiResp = await fetch(RELEASE_API_URL); + const releases = (await apiResp.json()) as ReleaseApiResp[]; + + return Object.fromEntries( + releases + .map((v) => v.tag_name) + .filter((v) => v >= MIN_RELEASE_VERSION) + .map((v) => [v, RELEASE_ARTIFACT_URL(v)]) + ); +}; + +export const downloadReleases = async ( + codeUrl: string, + outPath: string +): Promise => { + const codeFile = path.join(outPath, "codes.zip"); + const unzipPath = path.join(outPath, "codes"); + + if (fs.existsSync(codeFile)) fs.rmSync(codeFile); + if (fs.existsSync(unzipPath)) fs.rmSync(unzipPath, { recursive: true }); + + await downloadFile(codeUrl, codeFile); + await decompress(codeFile, unzipPath); + + return unzipPath; +}; diff --git a/script/shared/ioc.ts b/script/shared/ioc.ts new file mode 100644 index 00000000..757ef5ad --- /dev/null +++ b/script/shared/ioc.ts @@ -0,0 +1,18 @@ +import { Container } from "inversify"; + +import { Context } from "./context"; +import { Client, Config } from "./config"; + +export const CONTAINER = new Container({ + autoBindInjectable: true, + defaultScope: "Singleton", +}); + +// referenced by tsoa +export const iocContainer = CONTAINER; + +export class Dependencies { + ctx: Context; + client: Client; + network: Config["networks"][number]; +} diff --git a/script/shared/logger.ts b/script/shared/logger.ts new file mode 100644 index 00000000..81272ab2 --- /dev/null +++ b/script/shared/logger.ts @@ -0,0 +1,16 @@ +export class Logger { + constructor(public name: string) {} + + log(...args: any[]) { + console.log(`[${this.name}]`, ...args); + } + + debug = (...args: any[]) => + console.log("DEBUG]".grey, `[${this.name}]`, ...args); + + info = (...args: any[]) => + console.log(" INFO]".cyan, `[${this.name}]`, ...args); + + error = (...args: any[]) => + console.error("ERROR]".red, `[${this.name}]`, ...args); +} diff --git a/script/shared/utils.ts b/script/shared/utils.ts new file mode 100644 index 00000000..10bfeec7 --- /dev/null +++ b/script/shared/utils.ts @@ -0,0 +1,86 @@ +import * as readline from "readline"; +import * as fs from "fs"; +import { finished } from "stream/promises"; +import { Readable } from "stream"; +import { createHash } from "crypto"; +import { IndexedTx, StargateClient } from "@cosmjs/stargate"; +import { fromBech32 } from "@cosmjs/encoding"; +import { Client } from "./config"; + +export const sleep = (ms: number) => + new Promise((resolve) => setTimeout(resolve, ms)); + +export function askQuestion(query: string) { + const rl = readline.createInterface({ + input: process.stdin, + output: process.stdout, + }); + + return new Promise((resolve) => + rl.question(`${query} [Y/n] `, (ans) => { + rl.close(); + resolve(ans.toLowerCase() == "y" ? true : false); + }) + ); +} + +export const addPad = (v: string): string => { + const s = v.startsWith("0x") ? v.slice(2) : v; + return s.padStart(64, "0"); +}; + +export const withLink = (text: string, url: string) => + `${text} (\u200B${url}\u200B)`; + +export const extractByte32AddrFromBech32 = (addr: string): string => { + const { data } = fromBech32(addr); + const hexed = Buffer.from(data).toString("hex"); + return hexed.length === 64 ? hexed : addPad(hexed); +}; + +export const downloadFile = async (url: string, dest: string) => { + const res = await fetch(url); + const fileStream = fs.createWriteStream(dest, { flags: "wx" }); + await finished(Readable.fromWeb(res.body!).pipe(fileStream)); +}; + +export const generateSha256 = (file: string): Promise<[string, string]> => + new Promise((resolve, reject) => { + const stream = fs.createReadStream(file); + const hash = createHash("sha256"); + + stream.on("error", (err) => reject(err)); + stream.on("data", (chunk) => hash.update(chunk)); + stream.on("end", () => resolve([file, hash.digest("hex")])); + }); + +export const waitTx = async ( + txHash: string, + client: StargateClient, + { waitMs, tryCount }: { waitMs: number; tryCount: number } = { + waitMs: 1000, + tryCount: 30, + } +): Promise => { + let found: IndexedTx | null = null; + let count = 0; + while (!found) { + found = await client.getTx(txHash); + count++; + await sleep(waitMs); // default to 1s + + if (count > tryCount) { + throw new Error( + `max try count exceeded. count: ${tryCount}, waitMs: ${waitMs}` + ); + } + } + return found; +}; + +export function orSigner" = "">( + client: Client, + v: SignerType +): string { + return v === "" ? client.signer : v; +} diff --git a/script/shared/wasm.ts b/script/shared/wasm.ts new file mode 100644 index 00000000..9b317631 --- /dev/null +++ b/script/shared/wasm.ts @@ -0,0 +1,77 @@ +import fs from "fs"; +import path from "path"; +import { defaultArtifactPath } from "./constants"; +import { generateSha256 } from "./utils"; +import { Config } from "./config"; + +function getWasmFilesPath( + { artifactPath }: { artifactPath: string } = { + artifactPath: defaultArtifactPath, + } +): string[] { + try { + const files = fs.readdirSync(artifactPath); + return files + .filter((file) => file.endsWith(".wasm")) + .map((file) => path.join(artifactPath, file)); + } catch (err) { + console.error( + "[error]".red, + "cannot find wasm folder.", + "did you compiled the wasm projects?" + ); + process.exit(1); + } +} + +export async function loadWasmFileDigest( + { artifactPath }: { artifactPath: string } = { + artifactPath: defaultArtifactPath, + } +): Promise> { + return Object.fromEntries( + await Promise.all(getWasmFilesPath({ artifactPath }).map(generateSha256)) + ); +} + +export function getWasmPath( + contractName: string, + { artifactPath }: { artifactPath: string } = { + artifactPath: defaultArtifactPath, + } +): string { + return path.join(artifactPath, `${contractName}.wasm`); +} + +export type ContractInfoResp = { + address: string; + contract_info: { + code_id: string; + creator: string; + admin?: string; + label: string; + created: { + block_height: string; + tx_index: string; + }; + ibc_por_id?: string; + extension?: any; + }; +}; + +export async function getContractInfo( + network: Config["networks"][number], + addr: string +): Promise { + try { + const res = await fetch( + path.join(network.endpoint.rest, "/cosmwasm/wasm/v1/contract/", addr) + ); + const body = await res.json(); + + return body as ContractInfoResp; + } catch (err) { + console.error("Error fetching contract info", err); + return undefined; + } +} diff --git a/scripts/README.md b/scripts/README.md deleted file mode 100644 index 03f75d1f..00000000 --- a/scripts/README.md +++ /dev/null @@ -1,85 +0,0 @@ -# Deploy Scripts - -## Prerequisites - -- [pnpm](https://pnpm.io/) - -## Configuration - -Create a `config.yaml` file in the root directory of the project. Default option for Osmosis testnet is following. - -Also, you can check the full list of options in the [config.ts](./src/config.ts) file. - -```yaml -network: - id: "osmo-test-5" - hrp: "osmo" - url: "https://rpc.osmotest5.osmosis.zone/" - gas: - price: "0.025" - denom: "uosmo" - domain: 1037 # osmo-test-5 -> ascii / decimal -> sum - -signer: { PRIVATE_KEY } - -deploy: - ism: - type: multisig - owner: { SIGNER_ADDRESS } - validators: - 5: - addrs: - - { SIGNER_ETH_ADDRESS } - threshold: 1 - 420: - addrs: - - { SIGNER_ETH_ADDRESS } - threshold: 1 - 421613: - addrs: - - { SIGNER_ETH_ADDRESS } - threshold: 1 - - hooks: - default: - type: mock - - required: - type: aggregate - owner: { SIGNER_ADDRESS } - hooks: - - type: merkle - - - type: pausable - owner: { SIGNER_ADDRESS } - paused: false - - type: fee - owner: { SIGNER_ADDRESS } - fee: - denom: uosmo - amount: 1 -``` - -## Usage - -### Uploading Contract Codes - -```bash -pnpm upload -``` - -### Deploying Contracts - -```bash -pnpm deploy -``` - -## Maintaining - -### Adding a new contract - -1. Add a new module with actual contract output name in the [contracts](./src/contracts/) directory. -2. Class name should be upper camel case conversion of the contract name. -3. Import new module [contracts/index.ts](./src/index.ts) file. -4. If a new contract is ISM or Hook, add a new option to config type. -5. Add a new field to the Contracts class in the [deploy.ts](./src/deploy.ts) file. diff --git a/scripts/action/deploy.ts b/scripts/action/deploy.ts deleted file mode 100644 index 11af4a8f..00000000 --- a/scripts/action/deploy.ts +++ /dev/null @@ -1,154 +0,0 @@ -import "reflect-metadata"; - -import { writeFileSync } from "fs"; - -import { loadContext } from "../src/load_context"; -import { - Client, - DEFAULT_HOOK, - DEFAULT_ISM, - HookType, - config, - getSigningClient, -} from "../src/config"; - -import { ContractFetcher } from "./fetch"; -import { Context } from "../src/types"; -import { Contracts, deploy_ism, deploy_hook } from "../src/deploy"; - -const name = (c: any) => c.contractName; -const addr = (ctx: Context, c: any) => ctx.contracts[name(c)].address!; - -async function main() { - const client = await getSigningClient(config); - - let ctx = loadContext(config.network.id); - - const contracts = new ContractFetcher(ctx, client).getContracts(); - const { - core: { mailbox }, - mocks, - } = contracts; - - ctx = await deploy_core(ctx, client, contracts); - ctx = await deploy_ism_and_hook(ctx, client, contracts); - - // init test mock msg receiver - ctx.contracts[name(mocks.receiver)] = await mocks.receiver.instantiate({ - hrp: config.network.hrp, - }); - - // pre-setup - await client.wasm.executeMultiple( - client.signer, - [ - { - contractAddress: addr(ctx, mailbox), - msg: { - set_default_ism: { - ism: ctx.contracts["hpl_default_ism"].address!, - }, - }, - }, - { - contractAddress: addr(ctx, mailbox), - msg: { - set_default_hook: { - hook: ctx.contracts["hpl_default_hook"].address!, - }, - }, - }, - { - contractAddress: addr(ctx, mailbox), - msg: { - set_required_hook: { - hook: ctx.contracts["hpl_required_hook"].address!, - }, - }, - }, - ], - "auto" - ); - - writeFileSync("./save.json", JSON.stringify(ctx, null, 2)); -} - -const deploy_core = async ( - ctx: Context, - client: Client, - { core: { mailbox, va } }: Contracts -): Promise => { - // init mailbox - ctx.contracts[name(mailbox)] = await mailbox.instantiate({ - hrp: config.network.hrp, - owner: client.signer, - domain: config.network.domain, - }); - - // init validator announce - ctx.contracts[name(va)] = await va.instantiate({ - hrp: config.network.hrp, - mailbox: addr(ctx, mailbox), - }); - - return ctx; -}; - -const deploy_ism_and_hook = async ( - ctx: Context, - client: Client, - contracts: Contracts -) => { - // deploy default ism - - ctx.contracts["hpl_default_ism"] = { - ...ctx.contracts[`hpl_ism_${config.deploy.ism?.type || "multisig"}`], - }; - - [ctx, ctx.contracts["hpl_default_ism"].address] = await deploy_ism( - ctx, - client, - config.deploy.ism || DEFAULT_ISM(client.signer_addr), - contracts - ); - - // deploy default hook - - ctx.contracts["hpl_default_hook"] = { - ...ctx.contracts[ - config.deploy.hooks?.default?.type && - config.deploy.hooks?.default?.type !== "mock" - ? `hpl_hook_${config.deploy.hooks.default.type}` - : "hpl_test_mock_hook" - ], - }; - - [ctx, ctx.contracts["hpl_default_hook"].address] = await deploy_hook( - ctx, - client, - config.deploy.hooks?.default || DEFAULT_HOOK, - contracts - ); - - // deploy required hook - - ctx.contracts["hpl_required_hook"] = { - ...ctx.contracts[ - config.deploy.hooks?.required?.type && - config.deploy.hooks?.required?.type !== "mock" - ? `hpl_hook_${config.deploy.hooks.required.type}` - : "hpl_test_mock_hook" - ], - }; - - [ctx, ctx.contracts["hpl_required_hook"].address] = await deploy_hook( - ctx, - client, - config.deploy.hooks?.required || DEFAULT_HOOK, - contracts - ); - - return ctx; -}; - -main().catch(console.error); diff --git a/scripts/action/fetch.ts b/scripts/action/fetch.ts deleted file mode 100644 index 8cbc23ea..00000000 --- a/scripts/action/fetch.ts +++ /dev/null @@ -1,91 +0,0 @@ -import { SigningCosmWasmClient } from "@cosmjs/cosmwasm-stargate"; -import { Context } from "../src/types"; -import { Client } from "../src/config"; -import { Contracts } from "../src/deploy"; -import { - HplMailbox, - HplValidatorAnnounce, - HplHookAggregate, - HplHookMerkle, - HplHookPausable, - HplHookRouting, - HplHookRoutingCustom, - HplIgp, - HplIgpOracle, - HplIsmAggregate, - HplIsmMultisig, - HplIsmRouting, - HplTestMockHook, - HplTestMockMsgReceiver, - HplWarpCw20, - HplWarpNative, - HplHookFee, - HplTestMockIsm, -} from "../src/contracts"; - -type Const = new ( - address: string | undefined, - codeId: number | undefined, - digest: string, - signer: string, - client: SigningCosmWasmClient -) => T; - -export class ContractFetcher { - constructor(private ctx: Context, private client: Client) {} - - public get(f: Const, name: string): T { - return new f( - this.ctx.contracts[name].address, - this.ctx.contracts[name].codeId, - this.ctx.contracts[name].digest, - this.client.signer, - this.client.wasm - ); - } - - public getContracts(): Contracts { - return { - core: { - mailbox: this.get(HplMailbox, "hpl_mailbox"), - va: this.get(HplValidatorAnnounce, "hpl_validator_announce"), - }, - hooks: { - aggregate: this.get(HplHookAggregate, "hpl_hook_aggregate"), - fee: this.get(HplHookFee, "hpl_hook_fee"), - merkle: this.get(HplHookMerkle, "hpl_hook_merkle"), - pausable: this.get(HplHookPausable, "hpl_hook_pausable"), - routing: this.get(HplHookRouting, "hpl_hook_routing"), - routing_custom: this.get( - HplHookRoutingCustom, - "hpl_hook_routing_custom" - ), - routing_fallback: this.get( - HplHookRoutingCustom, - "hpl_hook_routing_fallback" - ), - }, - igp: { - core: this.get(HplIgp, "hpl_igp"), - oracle: this.get(HplIgpOracle, "hpl_igp_oracle"), - }, - isms: { - aggregate: this.get(HplIsmAggregate, "hpl_ism_aggregate"), - multisig: this.get(HplIsmMultisig, "hpl_ism_multisig"), - routing: this.get(HplIsmRouting, "hpl_ism_routing"), - }, - mocks: { - hook: this.get(HplTestMockHook, "hpl_test_mock_hook"), - ism: this.get(HplTestMockIsm, "hpl_test_mock_ism"), - receiver: this.get( - HplTestMockMsgReceiver, - "hpl_test_mock_msg_receiver" - ), - }, - warp: { - cw20: this.get(HplWarpCw20, "hpl_warp_cw20"), - native: this.get(HplWarpNative, "hpl_warp_native"), - }, - }; - } -} diff --git a/scripts/action/ism.ts b/scripts/action/ism.ts deleted file mode 100644 index f842d776..00000000 --- a/scripts/action/ism.ts +++ /dev/null @@ -1,109 +0,0 @@ -import { ExecuteResult } from "@cosmjs/cosmwasm-stargate"; -import { Command } from "commander"; - -import { version } from "../package.json"; -import { config, getSigningClient } from "../src/config"; -import { - HplHookMerkle, - HplIgp, - HplIgpOracle, - HplIsmAggregate, - HplMailbox, -} from "../src/contracts"; -import { loadContext } from "../src/load_context"; -import { ContractFetcher } from "./fetch"; - -const program = new Command(); - -program.name("Mailbox CLI").version(version); - -program - .command("get-ism") - .argument("", "recipient address in bech32") - .action(makeHandler("get-ism")); - -program - .command("show") - .argument("", "ism address in bech32") - .argument("", "origin domain to be used when multisig") - .action(makeHandler("show-ism")); - -program.parseAsync(process.argv).catch(console.error); - -const parseWasmEventLog = (res: ExecuteResult) => { - return ( - res.events - // .filter((v) => v.type.startsWith("wasm")) - .map((v) => ({ - "@type": v.type.slice(5), - ...Object.fromEntries(v.attributes.map((x) => [x.key, x.value])), - })) - ); -}; - -function makeHandler( - action: "get-ism" | "show-ism" -): (...args: any[]) => void | Promise { - const ctx = loadContext(config.network.id); - - const loadDeps = async () => { - const client = await getSigningClient(config); - const fetcher = new ContractFetcher(ctx, client); - const mailbox = fetcher.get(HplMailbox, "hpl_mailbox"); - const igp = fetcher.get(HplIgp, "hpl_igp"); - const igp_oracle = fetcher.get(HplIgpOracle, "hpl_igp_oracle"); - const hook_merkle = fetcher.get(HplHookMerkle, "hpl_hook_merkle"); - const hook_aggregate = fetcher.get(HplIsmAggregate, "hpl_hook_aggregate"); - - return { - client, - mailbox, - igp: { core: igp, oracle: igp_oracle }, - hook: { merkle: hook_merkle, aggregate: hook_aggregate }, - }; - }; - - switch (action) { - case "get-ism": - return async (recipient_addr: string) => { - const { mailbox } = await loadDeps(); - - const ism = await mailbox.query({ mailbox: { default_ism: {} } }); - console.log("Default ISM on mailbox is", ism); - - const recipientIsm = await mailbox.query({ - mailbox: { recipient_ism: { recipient_addr } }, - }); - - console.log("Recipient ISM is ", recipientIsm); - }; - case "show-ism": - return async (ism_addr: string, originDomain?: string) => { - // Generic info - const { client } = await loadDeps(); - const ism = await client.wasm.queryContractSmart(ism_addr, { - ism: { - module_type: {}, - }, - }); - switch (ism.type) { - case "message_id_multisig": - const msig = await client.wasm.queryContractSmart(ism_addr, { - multisig_ism: { - enrolled_validators: { - domain: Number(originDomain), - }, - }, - }); - const owner = await client.wasm.queryContractSmart(ism_addr, { - ownable: { get_owner: {} }, - }); - console.log(msig, owner); - break; - - default: - break; - } - }; - } -} diff --git a/scripts/action/mailbox.ts b/scripts/action/mailbox.ts deleted file mode 100644 index bd40ea1a..00000000 --- a/scripts/action/mailbox.ts +++ /dev/null @@ -1,103 +0,0 @@ -import { ExecuteResult } from "@cosmjs/cosmwasm-stargate"; -import { Command } from "commander"; - -import { version } from "../package.json"; -import { config, getSigningClient } from "../src/config"; -import { - HplHookMerkle, - HplIgp, - HplIgpOracle, - HplIsmAggregate, - HplMailbox, -} from "../src/contracts"; -import { addPad } from "../src/conv"; -import { loadContext } from "../src/load_context"; -import { ContractFetcher } from "./fetch"; - -const program = new Command(); - -program.name("Mailbox CLI").version(version); - -program - .command("dispatch") - .argument("", 'destination domain, e.g. "5"') - .argument("", "recipient address in hex") - .argument("", "message body in utf-8") - .action(makeHandler("dispatch")); - -program - .command("process") - .argument("", "metadata in hex") - .argument("", "message body in hex") - .action(makeHandler("process")); - -program.parseAsync(process.argv).catch(console.error); - -const parseWasmEventLog = (res: ExecuteResult) => { - return ( - res.events - // .filter((v) => v.type.startsWith("wasm")) - .map((v) => ({ - "@type": v.type.slice(5), - ...Object.fromEntries(v.attributes.map((x) => [x.key, x.value])), - })) - ); -}; - -function makeHandler( - action: "dispatch" | "process" -): (...args: any[]) => void | Promise { - const ctx = loadContext(config.network.id); - - const loadDeps = async () => { - const client = await getSigningClient(config); - const fetcher = new ContractFetcher(ctx, client); - const mailbox = fetcher.get(HplMailbox, "hpl_mailbox"); - const igp = fetcher.get(HplIgp, "hpl_igp"); - const igp_oracle = fetcher.get(HplIgpOracle, "hpl_igp_oracle"); - const hook_merkle = fetcher.get(HplHookMerkle, "hpl_hook_merkle"); - const hook_aggregate = fetcher.get(HplIsmAggregate, "hpl_hook_aggregate"); - - return { - client, - mailbox, - igp: { core: igp, oracle: igp_oracle }, - hook: { merkle: hook_merkle, aggregate: hook_aggregate }, - }; - }; - - switch (action) { - case "dispatch": - return async ( - dest_domain: string, - recipient_addr: string, - msg_body: string - ) => { - const { mailbox } = await loadDeps(); - - const res = await mailbox.execute( - { - dispatch: { - dest_domain: Number(dest_domain), - recipient_addr: addPad(recipient_addr), - msg_body: Buffer.from(msg_body, "utf-8").toString("hex"), - }, - }, - [{ denom: "token", amount: "26000000" }] - ); - console.log(parseWasmEventLog(res)); - }; - case "process": - return async (metadata: string, msg_body: string) => { - const { mailbox } = await loadDeps(); - - const res = await mailbox.execute({ - process: { - metadata, - msg_body, - }, - }); - console.log(parseWasmEventLog(res)); - }; - } -} diff --git a/scripts/action/migrate.ts b/scripts/action/migrate.ts deleted file mode 100644 index 05d8a16a..00000000 --- a/scripts/action/migrate.ts +++ /dev/null @@ -1,75 +0,0 @@ -import "reflect-metadata"; - -import { Event } from "@cosmjs/cosmwasm-stargate"; -import { config, getSigningClient } from "../src/config"; -import { loadContext } from "../src/load_context"; -import { ContractFetcher } from "./fetch"; - -const parseEventLog = (events: readonly Event[]) => { - return events.map((v) => ({ - "@type": v.type.slice(5), - ...Object.fromEntries(v.attributes.map((x) => [x.key, x.value])), - })); -}; - -async function main() { - const client = await getSigningClient(config); - - const ctx = loadContext(config.network.id); - - const contracts = new ContractFetcher(ctx, client).getContracts(); - - const migrations: [string, number][] = [ - [ - "neutron1q75ky8reksqzh0lkhk9k3csvjwv74jjquahrj233xc7dvzz5fv4qtvw0qg", - contracts.isms.multisig.codeId!, - ], - [ - "neutron12p8wntzra3vpfcqv05scdx5sa3ftaj6gjcmtm7ynkl0e6crtt4ns8cnrmx", - contracts.igp.core.codeId!, - ], - [ - "neutron17w4q6efzym3p4c6umyp4cjf2ustjtmwfqdhd7rt2fpcpk9fmjzsq0kj0f8", - contracts.core.va.codeId!, - ], - ]; - - for (const [addr, code_id] of migrations) { - const contract_info = await client.wasm.getContract(addr); - - if (!contract_info.admin) { - console.log(`skipping ${addr} as it has no admin`); - continue; - } - - if (contract_info.admin !== client.signer) { - console.log( - `skipping ${addr} as it is not admin. actual: ${contract_info.admin}` - ); - continue; - } - - const migrate_resp = await client.wasm.migrate( - client.signer, - addr, - code_id, - {}, - "auto" - ); - console.log(parseEventLog(migrate_resp.events)); - } - - const set_gas_resp = await client.wasm.execute( - client.signer, - "neutron12p8wntzra3vpfcqv05scdx5sa3ftaj6gjcmtm7ynkl0e6crtt4ns8cnrmx", - { - set_default_gas: { - gas: "200000", - }, - }, - "auto" - ); - console.log(parseEventLog(set_gas_resp.events)); -} - -main().catch(console.error); diff --git a/scripts/action/multisig.ts b/scripts/action/multisig.ts deleted file mode 100644 index f53ae1b7..00000000 --- a/scripts/action/multisig.ts +++ /dev/null @@ -1,175 +0,0 @@ -import { Command } from "commander"; - -import { version } from "../package.json"; -import { loadContext } from "../src/load_context"; -import { config } from "../src/config"; -import { fromBech32 } from "@cosmjs/encoding"; -import { Secp256k1, keccak256 } from "@cosmjs/crypto"; -import { readFileSync, writeFileSync } from "fs"; -import { DirectSecp256k1Wallet } from "@cosmjs/proto-signing"; - -type CheckpointInfo = { - origin_domain: number; - origin_merkle_tree: string; - merkle_root: string; - merkle_index: number; -}; - -const toHex = (v: Uint8Array): string => { - return Buffer.from(v).toString("hex"); -}; - -const fromHex = (v: string): Uint8Array => { - return Buffer.from(v, "hex"); -}; - -const u8 = (v: string): Uint8Array => { - return fromHex(Number(v).toString(16).padStart(8, "0")); -}; - -const program = new Command(); -const common = { output: `${process.cwd()}/signature.json` }; - -program.name("Multisig CLI").version(version); - -program - .command("sign") - .argument("", 'origin domain, e.g. "5"') - .argument("", "merkle root in hex") - .argument("", "merkle index") - .argument("", "message id in hex") - .option("-o, --output ", "output file", common.output) - .option("-p --prefix ", "bech32 prefix", "dual") - .requiredOption("-k --key ", "private key") - .action(sign); - -program - .command("join") - .argument("", "signature files (comma separated)") - .option("-o, --output ", "output file", common.output) - .option("-p --prefix ", "bech32 prefix", "dual") - .action(join); - -program.parseAsync(process.argv).catch(console.error); - -async function sign( - origin_domain_str: string, - merkle_root: string, - merkle_index_str: string, - message_id: string, - options: { output: string; prefix: string; key: string } -) { - const ctx = loadContext(config.network.id); - const origin_domain = u8(origin_domain_str); - const merkle_index = u8(merkle_index_str); - - const origin_merkle_str = ctx.contracts.hpl_hook_merkle.address!; - const origin_merkle = Buffer.from(fromBech32(origin_merkle_str).data); - - const domain_hash = keccak256( - Buffer.concat([ - origin_domain, - origin_merkle, - Buffer.from("HYPERLANE", "utf-8"), - ]) - ); - - const multisig_hash = keccak256( - Buffer.concat([ - domain_hash, - fromHex(merkle_root), - merkle_index, - fromHex(message_id), - ]) - ); - - const verify_digest = keccak256( - Buffer.concat([ - Buffer.from(`\x19Ethereum Signed Message:\n${multisig_hash.length}`), - multisig_hash, - ]) - ); - - const keypair = await Secp256k1.makeKeypair(fromHex(options.key)); - const key = await DirectSecp256k1Wallet.fromKey( - keypair.privkey, - options.prefix - ); - - const [{ address }] = await key.getAccounts(); - - const signature = await Secp256k1.createSignature( - verify_digest, - keypair.privkey - ); - - type Output = { - address: string; - signature: string; - } & CheckpointInfo; - - const output: Output = { - origin_domain: Number(origin_domain_str), - origin_merkle_tree: origin_merkle.toString("hex"), - merkle_root, - merkle_index: Number(merkle_index_str), - address: address, - signature: toHex(signature.toFixedLength()), - }; - - writeFileSync(options.output, JSON.stringify(output, null, 2)); -} - -async function join( - signature_paths: string[], - options: { output: string; prefix: string } -) { - const ctx = loadContext(config.network.id); - - const origin_merkle_str = ctx.contracts.hpl_hook_merkle.address!; - const origin_merkle = Buffer.from(fromBech32(origin_merkle_str).data); - - type Output = { - address: string; - signature: string; - } & CheckpointInfo; - - type Joined = { - signatures: Record; - } & CheckpointInfo; - - let joined: Joined | null = null; - - for (const path of signature_paths) { - const output: Output = JSON.parse(readFileSync(path, "utf-8")); - - if (joined) { - joined.signatures[output.address!] = output.signature!; - continue; - } - - joined = { - origin_domain: output.origin_domain, - origin_merkle_tree: output.origin_merkle_tree, - merkle_root: output.merkle_root, - merkle_index: output.merkle_index, - signatures: { - [output.address]: output.signature, - }, - }; - } - - if (!joined) { - console.error("no signature given"); - return; - } - - const metadata = Buffer.concat([ - fromHex(joined.origin_merkle_tree), - fromHex(joined.merkle_root), - u8(joined.merkle_index.toString()), - Buffer.concat(Object.values(joined.signatures).map((v) => fromHex(v))), - ]); - - console.log(metadata.toString("hex")); -} diff --git a/scripts/action/warp.ts b/scripts/action/warp.ts deleted file mode 100644 index 0e1587fe..00000000 --- a/scripts/action/warp.ts +++ /dev/null @@ -1,175 +0,0 @@ -import { version } from "../package.json"; -import { loadContext } from "../src/load_context"; -import { config, getSigningClient } from "../src/config"; -import { ContractFetcher } from "./fetch"; -import { addPad } from "../src/conv"; -import { ExecuteResult } from "@cosmjs/cosmwasm-stargate"; -import { Command } from "commander"; - -const program = new Command(); - -program.name("Warp CLI").version(version); - -program - .command("new") - .argument("", 'token denom, e.g. "untrn"') - .option( - "--token-mode ", - 'token mode, e.g. "collateral" or "bridged"', - "collateral" - ) - .action(create); - -program - .command("set-ism") - .argument("
", "address of internal warp route") - .argument("", "address of ISM") - .action(setIsm); - -program - .command("link") - .argument("
", "address of internal warp route") - .argument("", "domain of external chain, e.g. 5 (goerli)") - .argument("", "address of external route") - .action(link); - -program - .command("transfer") - .argument("
", "address of internal warp route") - .argument("", "domain of external chain, e.g. 5 (goerli)") - .argument("", "recipient address") - .argument("") - .action(transfer); - -program.parseAsync(process.argv).catch(console.error); - -const parseWasmEventLog = (res: ExecuteResult) => { - return ( - res.events - // .filter((v) => v.type.startsWith("wasm")) - .map((v) => ({ - "@type": v.type.slice(5), - ...Object.fromEntries(v.attributes.map((x) => [x.key, x.value])), - })) - ); -}; - -async function create( - denom: string, - { tokenMode }: { tokenMode: "collateral" | "bridged" } -) { - const client = await getSigningClient(config); - const ctx = loadContext(config.network.id); - - const fetcher = new ContractFetcher(ctx, client); - const { - core: { mailbox }, - warp, - } = fetcher.getContracts(); - - switch (tokenMode) { - case "collateral": - const ibc_route = await warp.native.instantiate({ - token: { - collateral: { - denom, - }, - }, - hrp: config.network.hrp, - owner: client.signer, - mailbox: mailbox.address!, - }); - - console.log("ibc_route", ibc_route); - return; - case "bridged": - throw Error("not implemented"); - } -} - -async function setIsm(address: string, ism: string) { - const client = await getSigningClient(config); - const resp = await client.wasm.execute( - client.signer, - address, - { - connection: { - set_ism: { - ism, - }, - }, - }, - "auto" - ); - console.log(parseWasmEventLog(resp)); - console.log(resp.transactionHash); -} -async function link(address: string, domain: string, external_route: string) { - const client = await getSigningClient(config); - const resp = await client.wasm.execute( - client.signer, - address, - { - router: { - set_route: { - set: { - domain: Number(domain), - route: addPad(external_route), - }, - }, - }, - }, - "auto" - ); - console.log(parseWasmEventLog(resp)); - console.log(resp.transactionHash); -} - -async function transfer( - address: string, - domain: string, - recipient: string, - amount: string -) { - const client = await getSigningClient(config); - - const { - type: { - native: { - fungible: { denom }, - }, - }, - }: { - type: { - native: { - fungible: { - denom: string; - }; - }; - }; - } = await client.wasm.queryContractSmart(address, { - token_default: { - token_type: {}, - }, - }); - - const resp = await client.wasm.execute( - client.signer, - address, - { - transfer_remote: { - dest_domain: Number(domain), - recipient: addPad(recipient), - amount, - }, - }, - "auto", - undefined, - [ - { amount, denom }, - { amount: "100", denom: "untrn" }, - ] - ); - console.log(parseWasmEventLog(resp)); - console.log(resp.transactionHash); -} diff --git a/scripts/artifacts.ts b/scripts/artifacts.ts deleted file mode 100644 index 0e66d6fe..00000000 --- a/scripts/artifacts.ts +++ /dev/null @@ -1,67 +0,0 @@ -export enum CONTRACT_NAMES { - HPL_HUB = "hpl_hub", - HPL_IGP_CORE = "hpl_igp_core", - HPL_IGP_GAS_ORACLE = "hpl_igp_gas_oracle", - HPL_ISM_MULTISIG = "hpl_ism_multisig", - HPL_ISM_ROUTING = "hpl_ism_routing", - HPL_MAILBOX = "hpl_mailbox", - HPL_MULTICALL = "hpl_multicall", - HPL_VALIDATOR_ANNOUNCE = "hpl_validator_announce", -} - -export const ARTIFACTS: { - contracts: { - [name in CONTRACT_NAMES]: { - address: string; - codeId: number; - digest: string; - }; - }; - address: string; - latestMigration: string; -} = { - contracts: { - hpl_hub: { - address: "osmo1fzampgfzygfmh7l5vwnfqttx47q94yrpd57ceurs2jt6g46q9wys037jcr", - codeId: 3152, - digest: "2824a19f9b8607e25d55576e7324ebf1ed0f2c846eb01839e958c94866e8a0ad" - }, - hpl_igp_core: { - address: "osmo18eptphzlxuup2387f3wlewn68pzr4keanz6e67n9tnrtwep7dhqshm9taq", - codeId: 3153, - digest: "43af1b82eb8cd9632653e76769ffeb7da1c95ea575869f7f5e34177dbe8bec5e" - }, - hpl_igp_gas_oracle: { - address: "osmo1tcwlcmtj3l4720n8cdk0t6l0nts27x2rswt6x0hj9kjc8wq9n8qs6gu3fg", - codeId: 3154, - digest: "7e31e76fb15b3332dab4890768a84881d9cd7431723907b7405c8f214c66e6de" - }, - hpl_ism_multisig: { - address: "osmo12pyzlwg74p88d3em92ztyvl3mszgn0tc9chrj3hwhuzplrpn2z5ssygfuq", - codeId: 3155, - digest: "29f01d5bc172ed671e0d191b85315c484f4e234ae3a1c9a14482206cbb2c0a41" - }, - hpl_ism_routing: { - address: "osmo1vdl5fazjl73kp8re23n3aweqeu4yum2ula0pdcf8c25mgk9jmmgsv90g20", - codeId: 3156, - digest: "9981335ad3c21e78f4a8e8ba4af4a3aeeed50bdaf26fd6f7074ab6ad604ff5bb" - }, - hpl_mailbox: { - address: "osmo1h0h5287kps9aehetgy8zpjnc3c3kdgrgx7m0kghqwx72zxe7wx2qnsqxp3", - codeId: 3157, - digest: "48e3725fa5d31f39b4fd63816cf9aadd0367bb4f8869b7adbb01fa64c3058c05" - }, - hpl_multicall: { - address: "osmo1dalwcenexewk8d4lnujm5w04mlwa5c7h7tqtfm6uz6gjstntekzqmptf0w", - codeId: 3158, - digest: "4f94814a642bce4da88e0c58d04f6c7f01926cc80c0c740d37230ff6fcb8315d" - }, - hpl_validator_announce: { - address: "osmo13qlwxa7f59a8gdysvvutsxa9zpqg5dxf3euy82rtyxw5xrenaq9qj5c8vm", - codeId: 3159, - digest: "bf66c1eff181e8aef2dbff550cd2f33f73d392a0d9aedac75a61fec85c115c04" - } - }, - latestMigration: "mailbox_related", - address: "osmo109ns4u04l44kqdkvp876hukd3hxz8zzm7809el" -} diff --git a/scripts/config.example.yaml b/scripts/config.example.yaml deleted file mode 100644 index b4a213c6..00000000 --- a/scripts/config.example.yaml +++ /dev/null @@ -1,8 +0,0 @@ -network: - id: "localosmosis" - hrp: "osmo" - url: "http://localhost:26657" - gas: "0.025uosmo" - domain: "2303" - -signer: deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef diff --git a/scripts/context/duality-devnet.json b/scripts/context/duality-devnet.json deleted file mode 100644 index e0614116..00000000 --- a/scripts/context/duality-devnet.json +++ /dev/null @@ -1,97 +0,0 @@ -{ - "contracts": { - "hpl_hook_merkle": { - "codeId": 131, - "digest": "0fa54766b2e8cb3e87ef076fbe0d50e09a21c23b0ab5671b1d2c548571bd2728" - }, - "hpl_igp": { - "address": "dual14cu2z6xw62cumt7hmfw7977jyaymr26jazxdpvfp7ag2dss29q2q700yum", - "codeId": 147, - "digest": "ed02f45ba7566523428c483a99840ec803b4a8c4a61504c85c70713adfe4d912" - }, - "hpl_igp_oracle": { - "address": "dual1alp24grk7e5f3msv0apk68hehspglpr7y7upfrvkpdfu7c84sqtq8ze5p2", - "codeId": 137, - "digest": "be0546baf9b1c2eaf28a8111f784521ee011f69a474098162bbda73a2db68e63" - }, - "hpl_ism_multisig": { - "codeId": 139, - "digest": "168a875843bd6b13420e289e6a089e1c566d62f95e9b9fb4bcec0c61966940f4" - }, - "hpl_mailbox": { - "address": "dual1mveu0r9rj4qa6aqxt8almpha6cqluu397y8jd6r4jhzm3hmtmndq8lvk47", - "codeId": 141, - "digest": "66dec947cc99c61c9edf56576e0b5c0e675b0d86e39495acf6f05db1657fabd1" - }, - "hpl_test_mock_hook": { - "codeId": 142, - "digest": "df1490919845c9a12b0e63488cbf83b242117493ad4b2b0d2473f6460bb3c074" - }, - "hpl_test_mock_msg_receiver": { - "address": "dual1rvtgvc38sfd9zehtgsp3eh8k269naq949u5qdcqm3x35mjg2uctqfdn3yq", - "codeId": 143, - "digest": "d0f8bc913e07df303911222970e09dd3abeef97399cb1c554d76cf98caa7f37a" - }, - "hpl_validator_announce": { - "address": "dual1982lwq4rt4qntkv2hafvvtwupn7hgqqkv0kpf55yahlh6pqeldvqd24lld", - "codeId": 144, - "digest": "db7afc67aa15c4f287af98c7836b3acf2016b96c6aa1eee01458bc11e6732178" - }, - "hpl_warp_cw20": { - "codeId": 145, - "digest": "5fdafe6f066e2f646b88a6ec29ae401012672fb8f674a18808771b5051beb7fc" - }, - "hpl_warp_native": { - "codeId": 146, - "digest": "983943571c74276e36a36f62ef9c6c54dc6de2c57fb76af4a0de37a0b5fef3ec" - }, - "hpl_warp_native_ibc": { - "codeId": 32, - "digest": "eed9d7dfa18163de64893cfe88e038cfc82e487561c94b142978efdacc1f9dff" - }, - "hpl_hook_aggregate": { - "codeId": 130, - "digest": "910a823bb524dbbaed9952f484cb242ea837e50b5f7c458c1bf52d16c7de21fb" - }, - "hpl_hook_pausable": { - "codeId": 132, - "digest": "226c4125998bf88666fb5ef7caeb86de28cde42ff679ec4029dedaf02c3a83c7" - }, - "hpl_hook_routing": { - "codeId": 133, - "digest": "55482f9f69d4d6d4784d1a378321ebf72936f0f13c5539ce1598bc9e8ed087f3" - }, - "hpl_hook_routing_custom": { - "codeId": 134, - "digest": "48b7dc080418493f4f6f2737340ffa34bdcc6fd3197a2585bc4eea8eb72ee829" - }, - "hpl_hook_routing_fallback": { - "codeId": 135, - "digest": "6fcf09c7d50fd5bfddbdeb0020625bdab2094237dca4f29e93ae12371a550f6f" - }, - "hpl_ism_aggregate": { - "codeId": 138, - "digest": "3a4adfaed525c40845768e05da436f1ea39f6c9d7e9d47ec2de8457034a229c1" - }, - "hpl_ism_routing": { - "codeId": 140, - "digest": "80bfb6964f9a1e4bd64aa69421b7b27327b00ab503931f0a22e7169d774eaf69" - }, - "hpl_default_ism": { - "codeId": 77, - "digest": "435f13deae9c7b7cb0d244bdbe9ae095c27c69bf81f4b9857be68e8b9174f4de", - "address": "dual192t0g0gu7xg4czamvs2qwr0w3arpfcsa6nsj9tp0g0fjqe6x5wrs35rzmq" - }, - "hpl_default_hook": { - "codeId": 80, - "digest": "7a4413b88f334a0ac0009a68887cee1cd160fbb83e3b8dd87bd4489b44d28bdb", - "address": "dual1uu64dmvdt6s2a0w9xa066cr42q35um8arsfh4qw8wspcfsmy3jasnjjzkt" - }, - "hpl_required_hook": { - "codeId": 68, - "digest": "1d0d021c3200bdae970d4a17b28aa3d35136953e3a931c77acb422c466d3a2c1", - "address": "dual1nz2n6vfk5fjlex2qquupyaqhaucr4xn30lm0teqwh0r0zv0v9xhsky7h3a" - } - }, - "address": "dual1dwnrgwsf5c9vqjxsax04pdm0mx007yrraj2dgn" -} \ No newline at end of file diff --git a/scripts/context/neutron-1.json b/scripts/context/neutron-1.json deleted file mode 100644 index 6659dd82..00000000 --- a/scripts/context/neutron-1.json +++ /dev/null @@ -1,73 +0,0 @@ -{ - "contracts": { - "hpl_hook_aggregate": { - "codeId": 405, - "digest": "910a823bb524dbbaed9952f484cb242ea837e50b5f7c458c1bf52d16c7de21fb" - }, - "hpl_hook_merkle": { - "codeId": 406, - "digest": "0fa54766b2e8cb3e87ef076fbe0d50e09a21c23b0ab5671b1d2c548571bd2728" - }, - "hpl_hook_pausable": { - "codeId": 407, - "digest": "226c4125998bf88666fb5ef7caeb86de28cde42ff679ec4029dedaf02c3a83c7" - }, - "hpl_hook_routing": { - "codeId": 408, - "digest": "55482f9f69d4d6d4784d1a378321ebf72936f0f13c5539ce1598bc9e8ed087f3" - }, - "hpl_hook_routing_custom": { - "codeId": 409, - "digest": "48b7dc080418493f4f6f2737340ffa34bdcc6fd3197a2585bc4eea8eb72ee829" - }, - "hpl_hook_routing_fallback": { - "codeId": 410, - "digest": "6fcf09c7d50fd5bfddbdeb0020625bdab2094237dca4f29e93ae12371a550f6f" - }, - "hpl_igp": { - "codeId": 433, - "digest": "016156ac0887daca0545eddd7d2adad91ee7049485abe567efbbf8476282a2ef" - }, - "hpl_igp_oracle": { - "codeId": 412, - "digest": "be0546baf9b1c2eaf28a8111f784521ee011f69a474098162bbda73a2db68e63" - }, - "hpl_ism_aggregate": { - "codeId": 413, - "digest": "3a4adfaed525c40845768e05da436f1ea39f6c9d7e9d47ec2de8457034a229c1" - }, - "hpl_ism_multisig": { - "codeId": 431, - "digest": "e233448e7b3fa54b528740ec882a93a59300fda7c828e829ad04c44f5344e259" - }, - "hpl_ism_routing": { - "codeId": 415, - "digest": "80bfb6964f9a1e4bd64aa69421b7b27327b00ab503931f0a22e7169d774eaf69" - }, - "hpl_mailbox": { - "codeId": 416, - "digest": "66dec947cc99c61c9edf56576e0b5c0e675b0d86e39495acf6f05db1657fabd1" - }, - "hpl_test_mock_hook": { - "codeId": 417, - "digest": "df1490919845c9a12b0e63488cbf83b242117493ad4b2b0d2473f6460bb3c074" - }, - "hpl_test_mock_msg_receiver": { - "codeId": 418, - "digest": "d0f8bc913e07df303911222970e09dd3abeef97399cb1c554d76cf98caa7f37a" - }, - "hpl_validator_announce": { - "codeId": 432, - "digest": "5985741956f51e1353095939c413b5e03d03670f97482783cfd629a72c1b240d" - }, - "hpl_warp_cw20": { - "codeId": 420, - "digest": "5fdafe6f066e2f646b88a6ec29ae401012672fb8f674a18808771b5051beb7fc" - }, - "hpl_warp_native": { - "codeId": 421, - "digest": "983943571c74276e36a36f62ef9c6c54dc6de2c57fb76af4a0de37a0b5fef3ec" - } - }, - "address": "neutron1dwnrgwsf5c9vqjxsax04pdm0mx007yrre4yyvm" -} \ No newline at end of file diff --git a/scripts/context/osmo-test-5.json b/scripts/context/osmo-test-5.json deleted file mode 100644 index 70834476..00000000 --- a/scripts/context/osmo-test-5.json +++ /dev/null @@ -1,109 +0,0 @@ -{ - "contracts": { - "hpl_hook_aggregate": { - "address": "osmo10sr7uqmdxf70eym34g3agpqcg3dlhalj2qhskg40224advh5a74qc5htag", - "codeId": 6715, - "digest": "2ae680bad348a4cf289b1cc951bbaf0c68a9c31693b7deb2e0985cd65b5268be" - }, - "hpl_hook_fee": { - "address": "osmo143008a6pn465z8u5pxmjy8dypkhwhkxchua99wq9ukj94k7mvs5syfdpnx", - "codeId": 6716, - "digest": "a7d2db4c76cd6e34978ee19ce25268b705e16db0f0e4fb815f343b289e892777" - }, - "hpl_hook_merkle": { - "address": "osmo164y69rngl4n3uny0mejfpve9pe2j75lwcn4why5c9a4lwtethyksm75wu0", - "codeId": 6717, - "digest": "35da6025ef81ace5ad9b36edf0997828b65b434d87cecdd171a05b50679d263e" - }, - "hpl_hook_pausable": { - "address": "osmo19d0cj9wys0556stak9wvrhg7yr4u3xp77wwy6egmvse4rrfv8e2qhcqjpv", - "codeId": 6718, - "digest": "493a4a637a9a9d73e926a42797524cec6799e895973b6a41e4a9cb7082c138f6" - }, - "hpl_hook_routing": { - "codeId": 6719, - "digest": "6a75d6d571c39c8c0b50850d2faad81ed71141206fd749aff232e4fc59114c35" - }, - "hpl_hook_routing_custom": { - "codeId": 6720, - "digest": "e708e9813a92ff1763fd274541a5dd601ee71a235e7ce501e2385c80792bbf31" - }, - "hpl_hook_routing_fallback": { - "codeId": 6721, - "digest": "4674b05d75b1596f4c6e9e314d56d69cdf8316e580460c8f03b63531721668aa" - }, - "hpl_igp": { - "codeId": 6722, - "digest": "6b7a6853ed70716f27825c14fb01a9dc4564abefe273b1a30886da69aa3f1c48" - }, - "hpl_igp_oracle": { - "codeId": 6723, - "digest": "8f4af18a3e13c8299f8570a1edfcf4633afb9178c9266074819dd797b1a07f45" - }, - "hpl_ism_aggregate": { - "codeId": 6724, - "digest": "fa9ae6d1a129f88e56a35bc836f39427c2a589db6795d97b1c19c18c7eb8b823" - }, - "hpl_ism_multisig": { - "address": "osmo1kcgs2qw2lgsqlg0ah4t9e5d5trz7pha56pzjae4yjnjnpuey2qwqape0mx", - "codeId": 6725, - "digest": "17ffef91b62b5fdb715e598f555901f55df277d94e3a157c63b5d73f883bb80a" - }, - "hpl_ism_pausable": { - "codeId": 6726, - "digest": "2a47af4ae7d55492a743c4dd2a0b644af84e2991eadc6f620b593dfb720540bc" - }, - "hpl_ism_routing": { - "codeId": 6727, - "digest": "641c803101059ab7bc40ebf5f9730e463733b7d0486364367e979873004afe2a" - }, - "hpl_mailbox": { - "address": "osmo17w8776pqahas8el82xcq6lp6ylcreqv9jl3wq32x5l9hm4jds7yqaunlyt", - "codeId": 6728, - "digest": "5e3b0f950b4bcf5e67b12e9cdab953e37c22ee9190f82de5ce2e5e92fa33820b" - }, - "hpl_test_mock_hook": { - "address": "osmo18ssgfr36mnqzmjt6r86jxxunte92zhrhwx6x8ckvmlrysy6cqpks94efx6", - "codeId": 6729, - "digest": "ca19b41ad96e6105d0a63d0984c52b50c3849dd15bf4a4e2c083c9628e19167b" - }, - "hpl_test_mock_ism": { - "codeId": 6730, - "digest": "c4cd903cdaf43c73932c3bdd3c9717d0cb9c4647541e9ec5ab4c16e86b9b70ec" - }, - "hpl_test_mock_msg_receiver": { - "address": "osmo18ughnf23dqd5tdwmh3fnm4amapdn27shgjmr9akraujx9t80uuxqw8l679", - "codeId": 6731, - "digest": "ba40b0ed08399fd7a00d7453f74f4994c1dc1cba365e7149f63ceb9e9e29b34a" - }, - "hpl_validator_announce": { - "address": "osmo1y25235tnv7y8levemflae8wllq32jfrr8rerseyt9mm2t2pa6pgsqksg20", - "codeId": 6732, - "digest": "716f8b3124e53f5d3534106ae40640dee11e7df2003106f0f2476d1ff3c12e57" - }, - "hpl_warp_cw20": { - "codeId": 6733, - "digest": "8ebc84704e5c9e48562a8a48f7df8b7021e946b8e1aba4f0d53964460dcaffcf" - }, - "hpl_warp_native": { - "codeId": 6734, - "digest": "581c35d20a031d11debbf452ac1b18dfe18a16da2d43b31767c963dfc7e90fd6" - }, - "hpl_default_ism": { - "codeId": 6725, - "digest": "17ffef91b62b5fdb715e598f555901f55df277d94e3a157c63b5d73f883bb80a", - "address": "osmo1kcgs2qw2lgsqlg0ah4t9e5d5trz7pha56pzjae4yjnjnpuey2qwqape0mx" - }, - "hpl_default_hook": { - "codeId": 6729, - "digest": "ca19b41ad96e6105d0a63d0984c52b50c3849dd15bf4a4e2c083c9628e19167b", - "address": "osmo18ssgfr36mnqzmjt6r86jxxunte92zhrhwx6x8ckvmlrysy6cqpks94efx6" - }, - "hpl_required_hook": { - "codeId": 6715, - "digest": "2ae680bad348a4cf289b1cc951bbaf0c68a9c31693b7deb2e0985cd65b5268be", - "address": "osmo10sr7uqmdxf70eym34g3agpqcg3dlhalj2qhskg40224advh5a74qc5htag" - } - }, - "address": "osmo1g3q542hpttdrj9aaczsq0tkl0uyfk7nkydklz6" -} diff --git a/scripts/fill.ts b/scripts/fill.ts deleted file mode 100644 index e8232353..00000000 --- a/scripts/fill.ts +++ /dev/null @@ -1,204 +0,0 @@ -import { - ExecuteResult, - SigningCosmWasmClient, -} from "@cosmjs/cosmwasm-stargate"; -import { DirectSecp256k1HdWallet } from "@cosmjs/proto-signing"; -import { GasPrice } from "@cosmjs/stargate"; - -import { ARTIFACTS } from "./artifacts"; - -async function getSigningClient(): Promise<{ - client: SigningCosmWasmClient; - address: string; - pubkey: string; -}> { - const mnemonic = process.env["SIGNING_MNEMONIC"] as string; - const wallet = await DirectSecp256k1HdWallet.fromMnemonic(mnemonic, { - prefix: "osmo", - }); - const [{ address }] = await wallet.getAccounts(); - - const client = await SigningCosmWasmClient.connectWithSigner( - "https://rpc.osmotest5.osmosis.zone/", - wallet, - { - gasPrice: GasPrice.fromString("0.025uosmo"), - } - ); - - const pubkey = process.env["SIGNING_PUBKEY"] as string; - - return { client, address, pubkey }; -} - -async function main() { - const { client, address: owner, pubkey } = await getSigningClient(); - - const { - hpl_hub: { address: hpl_hub }, - hpl_igp_core: { address: hpl_igp_core }, - hpl_igp_gas_oracle: { address: hpl_igp_gas_oracle }, - hpl_ism_multisig: { address: hpl_ism_multisig }, - hpl_ism_routing: { address: hpl_ism_routing }, - hpl_mailbox: { address: hpl_mailbox }, - hpl_multicall: { address: hpl_multicall }, - hpl_validator_announce: { address: hpl_validator_announce }, - } = ARTIFACTS.contracts; - - let execRes: ExecuteResult; - - // =========================== hpl_routing - - // =========================== hpl_hub - { - const originDomain = await client.queryContractSmart(hpl_hub, { - origin_domain: {}, - }); - console.log("OriginDomain:", originDomain); - } - - // =========================== hpl_igp_gas_oracle - { - execRes = await client.execute( - owner, - hpl_igp_gas_oracle, - { - set_remote_gas_data_configs: { - configs: [ - { - remote_domain: 26657, - token_exchange_rate: "1300000000000000000", - gas_price: "1600000000000", - }, - ], - }, - }, - "auto" - ); - console.log("SetRemoteGasDataConfigs:", execRes.transactionHash); - - const gasOracleConfigQuery = { config: {} }; - const gasOracleConfig = await client.queryContractSmart( - hpl_igp_gas_oracle, - gasOracleConfigQuery - ); - console.log("GasOracleConfig:", gasOracleConfig); - - const getERAndGPQuery = { - get_exchange_rate_and_gas_price: { dest_domain: 26657 }, - }; - const getERAndGP = await client.queryContractSmart( - hpl_igp_gas_oracle, - getERAndGPQuery - ); - console.log("GetERAndGP:", getERAndGP); - } - - // =========================== hpl_igp_core - - { - execRes = await client.execute( - owner, - hpl_igp_core, - { - set_gas_oracles: { - configs: [ - { - remote_domain: 26657, - gas_oracle: hpl_igp_gas_oracle, - }, - ], - }, - }, - "auto" - ); - console.log("SetGasOracles:", execRes.transactionHash); - - const quoteGasPaymentQuery = { - quote_gas_payment: { dest_domain: 26657, gas_amount: "123456" }, - }; - const quoteGasPayment = await client.queryContractSmart( - hpl_igp_core, - quoteGasPaymentQuery - ); - console.log("QuoteGasPayment:", quoteGasPayment); - - const getERAndGPQuery = { - get_exchange_rate_and_gas_price: { dest_domain: 26657 }, - }; - const getERAndGP = await client.queryContractSmart( - hpl_igp_core, - getERAndGPQuery - ); - console.log("GetERAndGP:", getERAndGP); - } - - // =========================== hpl_ism_multisig - { - execRes = await client.execute( - owner, - hpl_ism_multisig, - { - enroll_validator: { - set: { - domain: 26657, - validator: owner, - validator_pubkey: "ArVogl2Oa9JxkUZyhnLz7OcvLCrgeNh7dkaGRrCRuZ3w", - }, - }, - }, - "auto" - ); - console.log("EnrollValidator:", execRes.transactionHash); - - execRes = await client.execute( - owner, - hpl_ism_multisig, - { - set_threshold: { - set: { - domain: 26657, - threshold: 1, - }, - }, - }, - "auto" - ); - console.log("SetThreshold:", execRes.transactionHash); - } - - // =========================== hpl_ism_routing - { - execRes = await client.execute( - owner, - hpl_ism_routing, - { - set: { - ism: { - domain: 26657, - address: hpl_ism_multisig, - }, - }, - }, - "auto" - ); - console.log("Set:", execRes.transactionHash); - } - - // =========================== hpl_mailbox - { - execRes = await client.execute( - owner, - hpl_mailbox, - { - set_default_ism: { - ism: hpl_ism_routing, - }, - }, - "auto" - ); - console.log("SetDefaultIsm:", execRes.transactionHash); - } -} - -main().catch(console.error); diff --git a/scripts/pnpm-lock.yaml b/scripts/pnpm-lock.yaml deleted file mode 100644 index be43b28a..00000000 --- a/scripts/pnpm-lock.yaml +++ /dev/null @@ -1,1028 +0,0 @@ -lockfileVersion: '6.0' - -settings: - autoInstallPeers: true - excludeLinksFromLockfile: false - -dependencies: - '@cosmjs/cosmwasm-stargate': - specifier: ^0.32.2 - version: 0.32.2 - '@cosmjs/crypto': - specifier: ^0.32.2 - version: 0.32.2 - '@cosmjs/encoding': - specifier: ^0.32.2 - version: 0.32.2 - '@cosmjs/proto-signing': - specifier: ^0.32.2 - version: 0.32.2 - '@cosmjs/stargate': - specifier: ^0.32.2 - version: 0.32.2 - '@cosmjs/tendermint-rpc': - specifier: ^0.32.2 - version: 0.32.2 - axios: - specifier: ^1.6.7 - version: 1.6.7 - colors: - specifier: ^1.4.0 - version: 1.4.0 - commander: - specifier: ^11.1.0 - version: 11.1.0 - inversify: - specifier: ^6.0.1 - version: 6.0.1 - readline: - specifier: ^1.3.0 - version: 1.3.0 - reflect-metadata: - specifier: ^0.1.13 - version: 0.1.13 - -devDependencies: - '@types/js-yaml': - specifier: ^4.0.8 - version: 4.0.8 - '@types/node': - specifier: ^20.4.4 - version: 20.4.4 - ts-node: - specifier: ^10.9.1 - version: 10.9.1(@types/node@20.4.4)(typescript@5.1.6) - ts-yaml: - specifier: ^1.0.0 - version: 1.0.0 - tsx: - specifier: ^3.13.0 - version: 3.13.0 - typescript: - specifier: ^5.1.6 - version: 5.1.6 - -packages: - - /@confio/ics23@0.6.8: - resolution: {integrity: sha512-wB6uo+3A50m0sW/EWcU64xpV/8wShZ6bMTa7pF8eYsTrSkQA7oLUIJcs/wb8g4y2Oyq701BaGiO6n/ak5WXO1w==} - dependencies: - '@noble/hashes': 1.3.3 - protobufjs: 6.11.4 - dev: false - - /@cosmjs/amino@0.32.2: - resolution: {integrity: sha512-lcK5RCVm4OfdAooxKcF2+NwaDVVpghOq6o/A40c2mHXDUzUoRZ33VAHjVJ9Me6vOFxshrw/XEFn1f4KObntjYA==} - dependencies: - '@cosmjs/crypto': 0.32.2 - '@cosmjs/encoding': 0.32.2 - '@cosmjs/math': 0.32.2 - '@cosmjs/utils': 0.32.2 - dev: false - - /@cosmjs/cosmwasm-stargate@0.32.2: - resolution: {integrity: sha512-OwJHzIx2CoJS6AULxOpNR6m+CI0GXxy8z9svHA1ZawzNM3ZGlL0GvHdhmF0WkpX4E7UdrYlJSLpKcgg5Fo6i7Q==} - dependencies: - '@cosmjs/amino': 0.32.2 - '@cosmjs/crypto': 0.32.2 - '@cosmjs/encoding': 0.32.2 - '@cosmjs/math': 0.32.2 - '@cosmjs/proto-signing': 0.32.2 - '@cosmjs/stargate': 0.32.2 - '@cosmjs/tendermint-rpc': 0.32.2 - '@cosmjs/utils': 0.32.2 - cosmjs-types: 0.9.0 - pako: 2.1.0 - transitivePeerDependencies: - - bufferutil - - debug - - utf-8-validate - dev: false - - /@cosmjs/crypto@0.32.2: - resolution: {integrity: sha512-RuxrYKzhrPF9g6NmU7VEq++Hn1vZJjqqJpZ9Tmw9lOYOV8BUsv+j/0BE86kmWi7xVJ7EwxiuxYsKuM8IR18CIA==} - dependencies: - '@cosmjs/encoding': 0.32.2 - '@cosmjs/math': 0.32.2 - '@cosmjs/utils': 0.32.2 - '@noble/hashes': 1.3.3 - bn.js: 5.2.1 - elliptic: 6.5.4 - libsodium-wrappers-sumo: 0.7.13 - dev: false - - /@cosmjs/encoding@0.32.2: - resolution: {integrity: sha512-WX7m1wLpA9V/zH0zRcz4EmgZdAv1F44g4dbXOgNj1eXZw1PIGR12p58OEkLN51Ha3S4DKRtCv5CkhK1KHEvQtg==} - dependencies: - base64-js: 1.5.1 - bech32: 1.1.4 - readonly-date: 1.0.0 - dev: false - - /@cosmjs/json-rpc@0.32.2: - resolution: {integrity: sha512-lan2lOgmz4yVE/HR8eCOSiII/1OudIulk8836koyIDCsPEpt6eKBuctnAD168vABGArKccLAo7Mr2gy9nrKrOQ==} - dependencies: - '@cosmjs/stream': 0.32.2 - xstream: 11.14.0 - dev: false - - /@cosmjs/math@0.32.2: - resolution: {integrity: sha512-b8+ruAAY8aKtVKWSft2IvtCVCUH1LigIlf9ALIiY8n9jtM4kMASiaRbQ/27etnSAInV88IaezKK9rQZrtxTjcw==} - dependencies: - bn.js: 5.2.1 - dev: false - - /@cosmjs/proto-signing@0.32.2: - resolution: {integrity: sha512-UV4WwkE3W3G3s7wwU9rizNcUEz2g0W8jQZS5J6/3fiN0mRPwtPKQ6EinPN9ASqcAJ7/VQH4/9EPOw7d6XQGnqw==} - dependencies: - '@cosmjs/amino': 0.32.2 - '@cosmjs/crypto': 0.32.2 - '@cosmjs/encoding': 0.32.2 - '@cosmjs/math': 0.32.2 - '@cosmjs/utils': 0.32.2 - cosmjs-types: 0.9.0 - dev: false - - /@cosmjs/socket@0.32.2: - resolution: {integrity: sha512-Qc8jaw4uSBJm09UwPgkqe3g9TBFx4ZR9HkXpwT6Z9I+6kbLerXPR0Gy3NSJFSUgxIfTpO8O1yqoWAyf0Ay17Mw==} - dependencies: - '@cosmjs/stream': 0.32.2 - isomorphic-ws: 4.0.1(ws@7.5.9) - ws: 7.5.9 - xstream: 11.14.0 - transitivePeerDependencies: - - bufferutil - - utf-8-validate - dev: false - - /@cosmjs/stargate@0.32.2: - resolution: {integrity: sha512-AsJa29fT7Jd4xt9Ai+HMqhyj7UQu7fyYKdXj/8+/9PD74xe6lZSYhQPcitUmMLJ1ckKPgXSk5Dd2LbsQT0IhZg==} - dependencies: - '@confio/ics23': 0.6.8 - '@cosmjs/amino': 0.32.2 - '@cosmjs/encoding': 0.32.2 - '@cosmjs/math': 0.32.2 - '@cosmjs/proto-signing': 0.32.2 - '@cosmjs/stream': 0.32.2 - '@cosmjs/tendermint-rpc': 0.32.2 - '@cosmjs/utils': 0.32.2 - cosmjs-types: 0.9.0 - xstream: 11.14.0 - transitivePeerDependencies: - - bufferutil - - debug - - utf-8-validate - dev: false - - /@cosmjs/stream@0.32.2: - resolution: {integrity: sha512-gpCufLfHAD8Zp1ZKge7AHbDf4RA0TZp66wZY6JaQR5bSiEF2Drjtp4mwXZPGejtaUMnaAgff3LrUzPJfKYdQwg==} - dependencies: - xstream: 11.14.0 - dev: false - - /@cosmjs/tendermint-rpc@0.32.2: - resolution: {integrity: sha512-DXyJHDmcAfCix4H/7/dKR0UMdshP01KxJOXHdHxBCbLIpck94BsWD3B2ZTXwfA6sv98so9wOzhp7qGQa5malxg==} - dependencies: - '@cosmjs/crypto': 0.32.2 - '@cosmjs/encoding': 0.32.2 - '@cosmjs/json-rpc': 0.32.2 - '@cosmjs/math': 0.32.2 - '@cosmjs/socket': 0.32.2 - '@cosmjs/stream': 0.32.2 - '@cosmjs/utils': 0.32.2 - axios: 1.6.7 - readonly-date: 1.0.0 - xstream: 11.14.0 - transitivePeerDependencies: - - bufferutil - - debug - - utf-8-validate - dev: false - - /@cosmjs/utils@0.32.2: - resolution: {integrity: sha512-Gg5t+eR7vPJMAmhkFt6CZrzPd0EKpAslWwk5rFVYZpJsM8JG5KT9XQ99hgNM3Ov6ScNoIWbXkpX27F6A9cXR4Q==} - dev: false - - /@cspotcode/source-map-support@0.8.1: - resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} - engines: {node: '>=12'} - dependencies: - '@jridgewell/trace-mapping': 0.3.9 - dev: true - - /@esbuild/android-arm64@0.18.20: - resolution: {integrity: sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==} - engines: {node: '>=12'} - cpu: [arm64] - os: [android] - requiresBuild: true - dev: true - optional: true - - /@esbuild/android-arm@0.18.20: - resolution: {integrity: sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==} - engines: {node: '>=12'} - cpu: [arm] - os: [android] - requiresBuild: true - dev: true - optional: true - - /@esbuild/android-x64@0.18.20: - resolution: {integrity: sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==} - engines: {node: '>=12'} - cpu: [x64] - os: [android] - requiresBuild: true - dev: true - optional: true - - /@esbuild/darwin-arm64@0.18.20: - resolution: {integrity: sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==} - engines: {node: '>=12'} - cpu: [arm64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - - /@esbuild/darwin-x64@0.18.20: - resolution: {integrity: sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - - /@esbuild/freebsd-arm64@0.18.20: - resolution: {integrity: sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==} - engines: {node: '>=12'} - cpu: [arm64] - os: [freebsd] - requiresBuild: true - dev: true - optional: true - - /@esbuild/freebsd-x64@0.18.20: - resolution: {integrity: sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [freebsd] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-arm64@0.18.20: - resolution: {integrity: sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==} - engines: {node: '>=12'} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-arm@0.18.20: - resolution: {integrity: sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==} - engines: {node: '>=12'} - cpu: [arm] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-ia32@0.18.20: - resolution: {integrity: sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==} - engines: {node: '>=12'} - cpu: [ia32] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-loong64@0.18.20: - resolution: {integrity: sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==} - engines: {node: '>=12'} - cpu: [loong64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-mips64el@0.18.20: - resolution: {integrity: sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==} - engines: {node: '>=12'} - cpu: [mips64el] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-ppc64@0.18.20: - resolution: {integrity: sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-riscv64@0.18.20: - resolution: {integrity: sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==} - engines: {node: '>=12'} - cpu: [riscv64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-s390x@0.18.20: - resolution: {integrity: sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==} - engines: {node: '>=12'} - cpu: [s390x] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-x64@0.18.20: - resolution: {integrity: sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==} - engines: {node: '>=12'} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/netbsd-x64@0.18.20: - resolution: {integrity: sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==} - engines: {node: '>=12'} - cpu: [x64] - os: [netbsd] - requiresBuild: true - dev: true - optional: true - - /@esbuild/openbsd-x64@0.18.20: - resolution: {integrity: sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==} - engines: {node: '>=12'} - cpu: [x64] - os: [openbsd] - requiresBuild: true - dev: true - optional: true - - /@esbuild/sunos-x64@0.18.20: - resolution: {integrity: sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [sunos] - requiresBuild: true - dev: true - optional: true - - /@esbuild/win32-arm64@0.18.20: - resolution: {integrity: sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==} - engines: {node: '>=12'} - cpu: [arm64] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /@esbuild/win32-ia32@0.18.20: - resolution: {integrity: sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==} - engines: {node: '>=12'} - cpu: [ia32] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /@esbuild/win32-x64@0.18.20: - resolution: {integrity: sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /@jridgewell/resolve-uri@3.1.1: - resolution: {integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==} - engines: {node: '>=6.0.0'} - dev: true - - /@jridgewell/sourcemap-codec@1.4.15: - resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} - dev: true - - /@jridgewell/trace-mapping@0.3.9: - resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} - dependencies: - '@jridgewell/resolve-uri': 3.1.1 - '@jridgewell/sourcemap-codec': 1.4.15 - dev: true - - /@noble/hashes@1.3.3: - resolution: {integrity: sha512-V7/fPHgl+jsVPXqqeOzT8egNj2iBIVt+ECeMMG8TdcnTikP3oaBtUVqpT/gYCR68aEBJSF+XbYUxStjbFMqIIA==} - engines: {node: '>= 16'} - dev: false - - /@protobufjs/aspromise@1.1.2: - resolution: {integrity: sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==} - dev: false - - /@protobufjs/base64@1.1.2: - resolution: {integrity: sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==} - dev: false - - /@protobufjs/codegen@2.0.4: - resolution: {integrity: sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==} - dev: false - - /@protobufjs/eventemitter@1.1.0: - resolution: {integrity: sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==} - dev: false - - /@protobufjs/fetch@1.1.0: - resolution: {integrity: sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==} - dependencies: - '@protobufjs/aspromise': 1.1.2 - '@protobufjs/inquire': 1.1.0 - dev: false - - /@protobufjs/float@1.0.2: - resolution: {integrity: sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==} - dev: false - - /@protobufjs/inquire@1.1.0: - resolution: {integrity: sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==} - dev: false - - /@protobufjs/path@1.1.2: - resolution: {integrity: sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==} - dev: false - - /@protobufjs/pool@1.1.0: - resolution: {integrity: sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==} - dev: false - - /@protobufjs/utf8@1.1.0: - resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==} - dev: false - - /@tsconfig/node10@1.0.9: - resolution: {integrity: sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==} - dev: true - - /@tsconfig/node12@1.0.11: - resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==} - dev: true - - /@tsconfig/node14@1.0.3: - resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==} - dev: true - - /@tsconfig/node16@1.0.4: - resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==} - dev: true - - /@types/js-yaml@4.0.8: - resolution: {integrity: sha512-m6jnPk1VhlYRiLFm3f8X9Uep761f+CK8mHyS65LutH2OhmBF0BeMEjHgg05usH8PLZMWWc/BUR9RPmkvpWnyRA==} - dev: true - - /@types/long@4.0.2: - resolution: {integrity: sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==} - dev: false - - /@types/node@20.4.4: - resolution: {integrity: sha512-CukZhumInROvLq3+b5gLev+vgpsIqC2D0deQr/yS1WnxvmYLlJXZpaQrQiseMY+6xusl79E04UjWoqyr+t1/Ew==} - - /acorn-walk@8.2.0: - resolution: {integrity: sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==} - engines: {node: '>=0.4.0'} - dev: true - - /acorn@8.10.0: - resolution: {integrity: sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==} - engines: {node: '>=0.4.0'} - hasBin: true - dev: true - - /arg@4.1.3: - resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} - dev: true - - /argparse@1.0.10: - resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} - dependencies: - sprintf-js: 1.0.3 - dev: true - - /arrify@1.0.1: - resolution: {integrity: sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==} - engines: {node: '>=0.10.0'} - dev: true - - /asynckit@0.4.0: - resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} - dev: false - - /axios@1.6.7: - resolution: {integrity: sha512-/hDJGff6/c7u0hDkvkGxR/oy6CbCs8ziCsC7SqmhjfozqiJGc8Z11wrv9z9lYfY4K8l+H9TpjcMDX0xOZmx+RA==} - dependencies: - follow-redirects: 1.15.5 - form-data: 4.0.0 - proxy-from-env: 1.1.0 - transitivePeerDependencies: - - debug - dev: false - - /base64-js@1.5.1: - resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} - dev: false - - /bech32@1.1.4: - resolution: {integrity: sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==} - dev: false - - /bn.js@4.12.0: - resolution: {integrity: sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==} - dev: false - - /bn.js@5.2.1: - resolution: {integrity: sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==} - dev: false - - /brorand@1.1.0: - resolution: {integrity: sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==} - dev: false - - /buffer-from@1.1.2: - resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} - dev: true - - /colors@1.4.0: - resolution: {integrity: sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==} - engines: {node: '>=0.1.90'} - dev: false - - /combined-stream@1.0.8: - resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} - engines: {node: '>= 0.8'} - dependencies: - delayed-stream: 1.0.0 - dev: false - - /commander@11.1.0: - resolution: {integrity: sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==} - engines: {node: '>=16'} - dev: false - - /cosmjs-types@0.9.0: - resolution: {integrity: sha512-MN/yUe6mkJwHnCFfsNPeCfXVhyxHYW6c/xDUzrSbBycYzw++XvWDMJArXp2pLdgD6FQ8DW79vkPjeNKVrXaHeQ==} - dev: false - - /create-require@1.1.1: - resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} - dev: true - - /define-data-property@1.1.4: - resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} - engines: {node: '>= 0.4'} - dependencies: - es-define-property: 1.0.0 - es-errors: 1.3.0 - gopd: 1.0.1 - dev: false - - /define-properties@1.2.1: - resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} - engines: {node: '>= 0.4'} - dependencies: - define-data-property: 1.1.4 - has-property-descriptors: 1.0.2 - object-keys: 1.1.1 - dev: false - - /delayed-stream@1.0.0: - resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} - engines: {node: '>=0.4.0'} - dev: false - - /diff@3.5.0: - resolution: {integrity: sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==} - engines: {node: '>=0.3.1'} - dev: true - - /diff@4.0.2: - resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} - engines: {node: '>=0.3.1'} - dev: true - - /elliptic@6.5.4: - resolution: {integrity: sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==} - dependencies: - bn.js: 4.12.0 - brorand: 1.1.0 - hash.js: 1.1.7 - hmac-drbg: 1.0.1 - inherits: 2.0.4 - minimalistic-assert: 1.0.1 - minimalistic-crypto-utils: 1.0.1 - dev: false - - /es-define-property@1.0.0: - resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} - engines: {node: '>= 0.4'} - dependencies: - get-intrinsic: 1.2.4 - dev: false - - /es-errors@1.3.0: - resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} - engines: {node: '>= 0.4'} - dev: false - - /esbuild@0.18.20: - resolution: {integrity: sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==} - engines: {node: '>=12'} - hasBin: true - requiresBuild: true - optionalDependencies: - '@esbuild/android-arm': 0.18.20 - '@esbuild/android-arm64': 0.18.20 - '@esbuild/android-x64': 0.18.20 - '@esbuild/darwin-arm64': 0.18.20 - '@esbuild/darwin-x64': 0.18.20 - '@esbuild/freebsd-arm64': 0.18.20 - '@esbuild/freebsd-x64': 0.18.20 - '@esbuild/linux-arm': 0.18.20 - '@esbuild/linux-arm64': 0.18.20 - '@esbuild/linux-ia32': 0.18.20 - '@esbuild/linux-loong64': 0.18.20 - '@esbuild/linux-mips64el': 0.18.20 - '@esbuild/linux-ppc64': 0.18.20 - '@esbuild/linux-riscv64': 0.18.20 - '@esbuild/linux-s390x': 0.18.20 - '@esbuild/linux-x64': 0.18.20 - '@esbuild/netbsd-x64': 0.18.20 - '@esbuild/openbsd-x64': 0.18.20 - '@esbuild/sunos-x64': 0.18.20 - '@esbuild/win32-arm64': 0.18.20 - '@esbuild/win32-ia32': 0.18.20 - '@esbuild/win32-x64': 0.18.20 - dev: true - - /esprima@4.0.1: - resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} - engines: {node: '>=4'} - hasBin: true - dev: true - - /follow-redirects@1.15.5: - resolution: {integrity: sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw==} - engines: {node: '>=4.0'} - peerDependencies: - debug: '*' - peerDependenciesMeta: - debug: - optional: true - dev: false - - /form-data@4.0.0: - resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} - engines: {node: '>= 6'} - dependencies: - asynckit: 0.4.0 - combined-stream: 1.0.8 - mime-types: 2.1.35 - dev: false - - /fsevents@2.3.3: - resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} - engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} - os: [darwin] - requiresBuild: true - dev: true - optional: true - - /function-bind@1.1.2: - resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} - dev: false - - /get-intrinsic@1.2.4: - resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} - engines: {node: '>= 0.4'} - dependencies: - es-errors: 1.3.0 - function-bind: 1.1.2 - has-proto: 1.0.1 - has-symbols: 1.0.3 - hasown: 2.0.1 - dev: false - - /get-tsconfig@4.7.2: - resolution: {integrity: sha512-wuMsz4leaj5hbGgg4IvDU0bqJagpftG5l5cXIAvo8uZrqn0NJqwtfupTN00VnkQJPcIRrxYrm1Ue24btpCha2A==} - dependencies: - resolve-pkg-maps: 1.0.0 - dev: true - - /globalthis@1.0.3: - resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==} - engines: {node: '>= 0.4'} - dependencies: - define-properties: 1.2.1 - dev: false - - /gopd@1.0.1: - resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} - dependencies: - get-intrinsic: 1.2.4 - dev: false - - /has-property-descriptors@1.0.2: - resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} - dependencies: - es-define-property: 1.0.0 - dev: false - - /has-proto@1.0.1: - resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==} - engines: {node: '>= 0.4'} - dev: false - - /has-symbols@1.0.3: - resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} - engines: {node: '>= 0.4'} - dev: false - - /hash.js@1.1.7: - resolution: {integrity: sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==} - dependencies: - inherits: 2.0.4 - minimalistic-assert: 1.0.1 - dev: false - - /hasown@2.0.1: - resolution: {integrity: sha512-1/th4MHjnwncwXsIW6QMzlvYL9kG5e/CpVvLRZe4XPa8TOUNbCELqmvhDmnkNsAjwaG4+I8gJJL0JBvTTLO9qA==} - engines: {node: '>= 0.4'} - dependencies: - function-bind: 1.1.2 - dev: false - - /hmac-drbg@1.0.1: - resolution: {integrity: sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==} - dependencies: - hash.js: 1.1.7 - minimalistic-assert: 1.0.1 - minimalistic-crypto-utils: 1.0.1 - dev: false - - /inherits@2.0.4: - resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} - dev: false - - /inversify@6.0.1: - resolution: {integrity: sha512-B3ex30927698TJENHR++8FfEaJGqoWOgI6ZY5Ht/nLUsFCwHn6akbwtnUAPCgUepAnTpe2qHxhDNjoKLyz6rgQ==} - dev: false - - /isomorphic-ws@4.0.1(ws@7.5.9): - resolution: {integrity: sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w==} - peerDependencies: - ws: '*' - dependencies: - ws: 7.5.9 - dev: false - - /js-yaml@3.14.1: - resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} - hasBin: true - dependencies: - argparse: 1.0.10 - esprima: 4.0.1 - dev: true - - /libsodium-sumo@0.7.13: - resolution: {integrity: sha512-zTGdLu4b9zSNLfovImpBCbdAA4xkpkZbMnSQjP8HShyOutnGjRHmSOKlsylh1okao6QhLiz7nG98EGn+04cZjQ==} - dev: false - - /libsodium-wrappers-sumo@0.7.13: - resolution: {integrity: sha512-lz4YdplzDRh6AhnLGF2Dj2IUj94xRN6Bh8T0HLNwzYGwPehQJX6c7iYVrFUPZ3QqxE0bqC+K0IIqqZJYWumwSQ==} - dependencies: - libsodium-sumo: 0.7.13 - dev: false - - /long@4.0.0: - resolution: {integrity: sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==} - dev: false - - /make-error@1.3.6: - resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} - dev: true - - /mime-db@1.52.0: - resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} - engines: {node: '>= 0.6'} - dev: false - - /mime-types@2.1.35: - resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} - engines: {node: '>= 0.6'} - dependencies: - mime-db: 1.52.0 - dev: false - - /minimalistic-assert@1.0.1: - resolution: {integrity: sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==} - dev: false - - /minimalistic-crypto-utils@1.0.1: - resolution: {integrity: sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==} - dev: false - - /minimist@1.2.8: - resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} - dev: true - - /mkdirp@0.5.6: - resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} - hasBin: true - dependencies: - minimist: 1.2.8 - dev: true - - /object-keys@1.1.1: - resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} - engines: {node: '>= 0.4'} - dev: false - - /pako@2.1.0: - resolution: {integrity: sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==} - dev: false - - /protobufjs@6.11.4: - resolution: {integrity: sha512-5kQWPaJHi1WoCpjTGszzQ32PG2F4+wRY6BmAT4Vfw56Q2FZ4YZzK20xUYQH4YkfehY1e6QSICrJquM6xXZNcrw==} - hasBin: true - requiresBuild: true - dependencies: - '@protobufjs/aspromise': 1.1.2 - '@protobufjs/base64': 1.1.2 - '@protobufjs/codegen': 2.0.4 - '@protobufjs/eventemitter': 1.1.0 - '@protobufjs/fetch': 1.1.0 - '@protobufjs/float': 1.0.2 - '@protobufjs/inquire': 1.1.0 - '@protobufjs/path': 1.1.2 - '@protobufjs/pool': 1.1.0 - '@protobufjs/utf8': 1.1.0 - '@types/long': 4.0.2 - '@types/node': 20.4.4 - long: 4.0.0 - dev: false - - /proxy-from-env@1.1.0: - resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} - dev: false - - /readline@1.3.0: - resolution: {integrity: sha512-k2d6ACCkiNYz222Fs/iNze30rRJ1iIicW7JuX/7/cozvih6YCkFZH+J6mAFDVgv0dRBaAyr4jDqC95R2y4IADg==} - dev: false - - /readonly-date@1.0.0: - resolution: {integrity: sha512-tMKIV7hlk0h4mO3JTmmVuIlJVXjKk3Sep9Bf5OH0O+758ruuVkUy2J9SttDLm91IEX/WHlXPSpxMGjPj4beMIQ==} - dev: false - - /reflect-metadata@0.1.13: - resolution: {integrity: sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==} - dev: false - - /resolve-pkg-maps@1.0.0: - resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} - dev: true - - /source-map-support@0.5.21: - resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} - dependencies: - buffer-from: 1.1.2 - source-map: 0.6.1 - dev: true - - /source-map@0.6.1: - resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} - engines: {node: '>=0.10.0'} - dev: true - - /sprintf-js@1.0.3: - resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} - dev: true - - /symbol-observable@2.0.3: - resolution: {integrity: sha512-sQV7phh2WCYAn81oAkakC5qjq2Ml0g8ozqz03wOGnx9dDlG1de6yrF+0RAzSJD8fPUow3PTSMf2SAbOGxb93BA==} - engines: {node: '>=0.10'} - dev: false - - /ts-node@10.9.1(@types/node@20.4.4)(typescript@5.1.6): - resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==} - hasBin: true - peerDependencies: - '@swc/core': '>=1.2.50' - '@swc/wasm': '>=1.2.50' - '@types/node': '*' - typescript: '>=2.7' - peerDependenciesMeta: - '@swc/core': - optional: true - '@swc/wasm': - optional: true - dependencies: - '@cspotcode/source-map-support': 0.8.1 - '@tsconfig/node10': 1.0.9 - '@tsconfig/node12': 1.0.11 - '@tsconfig/node14': 1.0.3 - '@tsconfig/node16': 1.0.4 - '@types/node': 20.4.4 - acorn: 8.10.0 - acorn-walk: 8.2.0 - arg: 4.1.3 - create-require: 1.1.1 - diff: 4.0.2 - make-error: 1.3.6 - typescript: 5.1.6 - v8-compile-cache-lib: 3.0.1 - yn: 3.1.1 - dev: true - - /ts-node@6.2.0: - resolution: {integrity: sha512-ZNT+OEGfUNVMGkpIaDJJ44Zq3Yr0bkU/ugN1PHbU+/01Z7UV1fsELRiTx1KuQNvQ1A3pGh3y25iYF6jXgxV21A==} - engines: {node: '>=4.2.0'} - hasBin: true - dependencies: - arrify: 1.0.1 - buffer-from: 1.1.2 - diff: 3.5.0 - make-error: 1.3.6 - minimist: 1.2.8 - mkdirp: 0.5.6 - source-map-support: 0.5.21 - yn: 2.0.0 - dev: true - - /ts-yaml@1.0.0: - resolution: {integrity: sha512-g5D8X+8VhhljTWT5M4A9O8+ONj6WNB34E/WUAMr7DBxyC6S8lFJ2tgv24hfOcwz2x0hUIifBlPSf4nnh2NGY6A==} - dependencies: - js-yaml: 3.14.1 - ts-node: 6.2.0 - dev: true - - /tsx@3.13.0: - resolution: {integrity: sha512-rjmRpTu3as/5fjNq/kOkOtihgLxuIz6pbKdj9xwP4J5jOLkBxw/rjN5ANw+KyrrOXV5uB7HC8+SrrSJxT65y+A==} - hasBin: true - dependencies: - esbuild: 0.18.20 - get-tsconfig: 4.7.2 - source-map-support: 0.5.21 - optionalDependencies: - fsevents: 2.3.3 - dev: true - - /typescript@5.1.6: - resolution: {integrity: sha512-zaWCozRZ6DLEWAWFrVDz1H6FVXzUSfTy5FUMWsQlU8Ym5JP9eO4xkTIROFCQvhQf61z6O/G6ugw3SgAnvvm+HA==} - engines: {node: '>=14.17'} - hasBin: true - dev: true - - /v8-compile-cache-lib@3.0.1: - resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} - dev: true - - /ws@7.5.9: - resolution: {integrity: sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==} - engines: {node: '>=8.3.0'} - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: ^5.0.2 - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true - dev: false - - /xstream@11.14.0: - resolution: {integrity: sha512-1bLb+kKKtKPbgTK6i/BaoAn03g47PpFstlbe1BA+y3pNS/LfvcaghS5BFf9+EE1J+KwSQsEpfJvFN5GqFtiNmw==} - dependencies: - globalthis: 1.0.3 - symbol-observable: 2.0.3 - dev: false - - /yn@2.0.0: - resolution: {integrity: sha512-uTv8J/wiWTgUTg+9vLTi//leUl5vDQS6uii/emeTb2ssY7vl6QWf2fFbIIGjnhjvbdKlU0ed7QPgY1htTC86jQ==} - engines: {node: '>=4'} - dev: true - - /yn@3.1.1: - resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} - engines: {node: '>=6'} - dev: true diff --git a/scripts/src/contracts/hpl_hook_aggregate.ts b/scripts/src/contracts/hpl_hook_aggregate.ts deleted file mode 100644 index cbbb00b0..00000000 --- a/scripts/src/contracts/hpl_hook_aggregate.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { injectable } from "inversify"; -import { BaseContract } from "../types"; - -@injectable() -export class HplHookAggregate extends BaseContract { - contractName: string = "hpl_hook_aggregate"; -} diff --git a/scripts/src/contracts/hpl_hook_fee.ts b/scripts/src/contracts/hpl_hook_fee.ts deleted file mode 100644 index 2062bd4b..00000000 --- a/scripts/src/contracts/hpl_hook_fee.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { injectable } from "inversify"; -import { BaseContract } from "../types"; - -@injectable() -export class HplHookFee extends BaseContract { - contractName: string = "hpl_hook_fee"; -} diff --git a/scripts/src/contracts/hpl_hook_merkle.ts b/scripts/src/contracts/hpl_hook_merkle.ts deleted file mode 100644 index 81907d85..00000000 --- a/scripts/src/contracts/hpl_hook_merkle.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { injectable } from "inversify"; -import { BaseContract } from "../types"; - -@injectable() -export class HplHookMerkle extends BaseContract { - contractName: string = "hpl_hook_merkle"; -} diff --git a/scripts/src/contracts/hpl_hook_pausable.ts b/scripts/src/contracts/hpl_hook_pausable.ts deleted file mode 100644 index c6981d64..00000000 --- a/scripts/src/contracts/hpl_hook_pausable.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { injectable } from "inversify"; -import { BaseContract } from "../types"; - -@injectable() -export class HplHookPausable extends BaseContract { - contractName: string = "hpl_hook_pausable"; -} diff --git a/scripts/src/contracts/hpl_hook_routing.ts b/scripts/src/contracts/hpl_hook_routing.ts deleted file mode 100644 index 4531cbec..00000000 --- a/scripts/src/contracts/hpl_hook_routing.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { injectable } from "inversify"; -import { BaseContract } from "../types"; - -@injectable() -export class HplHookRouting extends BaseContract { - contractName: string = "hpl_hook_routing"; -} diff --git a/scripts/src/contracts/hpl_hook_routing_custom.ts b/scripts/src/contracts/hpl_hook_routing_custom.ts deleted file mode 100644 index dc6339be..00000000 --- a/scripts/src/contracts/hpl_hook_routing_custom.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { injectable } from "inversify"; -import { BaseContract } from "../types"; - -@injectable() -export class HplHookRoutingCustom extends BaseContract { - contractName: string = "hpl_hook_routing_custom"; -} diff --git a/scripts/src/contracts/hpl_hook_routing_fallback.ts b/scripts/src/contracts/hpl_hook_routing_fallback.ts deleted file mode 100644 index 2b474822..00000000 --- a/scripts/src/contracts/hpl_hook_routing_fallback.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { injectable } from "inversify"; -import { BaseContract } from "../types"; - -@injectable() -export class HplHookRoutingFallback extends BaseContract { - contractName: string = "hpl_hook_routing_fallback"; -} diff --git a/scripts/src/contracts/hpl_igp.ts b/scripts/src/contracts/hpl_igp.ts deleted file mode 100644 index c0505b82..00000000 --- a/scripts/src/contracts/hpl_igp.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { injectable } from "inversify"; -import { BaseContract } from "../types"; - -@injectable() -export class HplIgp extends BaseContract { - contractName: string = "hpl_igp"; -} diff --git a/scripts/src/contracts/hpl_igp_oracle.ts b/scripts/src/contracts/hpl_igp_oracle.ts deleted file mode 100644 index b4381564..00000000 --- a/scripts/src/contracts/hpl_igp_oracle.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { injectable } from "inversify"; -import { BaseContract } from "../types"; - -@injectable() -export class HplIgpOracle extends BaseContract { - contractName: string = "hpl_igp_oracle"; -} diff --git a/scripts/src/contracts/hpl_ism_aggregate.ts b/scripts/src/contracts/hpl_ism_aggregate.ts deleted file mode 100644 index 45dc95ec..00000000 --- a/scripts/src/contracts/hpl_ism_aggregate.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { injectable } from "inversify"; -import { BaseContract } from "../types"; - -@injectable() -export class HplIsmAggregate extends BaseContract { - contractName: string = "hpl_ism_aggregate"; -} diff --git a/scripts/src/contracts/hpl_ism_multisig.ts b/scripts/src/contracts/hpl_ism_multisig.ts deleted file mode 100644 index 00a5382a..00000000 --- a/scripts/src/contracts/hpl_ism_multisig.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { injectable } from "inversify"; -import { BaseContract } from "../types"; - -@injectable() -export class HplIsmMultisig extends BaseContract { - contractName: string = "hpl_ism_multisig"; -} diff --git a/scripts/src/contracts/hpl_ism_pausable.ts b/scripts/src/contracts/hpl_ism_pausable.ts deleted file mode 100644 index 7fce739a..00000000 --- a/scripts/src/contracts/hpl_ism_pausable.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { injectable } from "inversify"; -import { BaseContract } from "../types"; - -@injectable() -export class HplIsmPausable extends BaseContract { - contractName: string = "hpl_ism_pausable"; -} diff --git a/scripts/src/contracts/hpl_ism_routing.ts b/scripts/src/contracts/hpl_ism_routing.ts deleted file mode 100644 index 2190eb83..00000000 --- a/scripts/src/contracts/hpl_ism_routing.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { injectable } from "inversify"; -import { BaseContract } from "../types"; - -@injectable() -export class HplIsmRouting extends BaseContract { - contractName: string = "hpl_ism_routing"; -} diff --git a/scripts/src/contracts/hpl_mailbox.ts b/scripts/src/contracts/hpl_mailbox.ts deleted file mode 100644 index 2dfb9230..00000000 --- a/scripts/src/contracts/hpl_mailbox.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { injectable } from "inversify"; -import { BaseContract } from "../types"; - -@injectable() -export class HplMailbox extends BaseContract { - contractName: string = "hpl_mailbox"; -} diff --git a/scripts/src/contracts/hpl_test_mock_hook.ts b/scripts/src/contracts/hpl_test_mock_hook.ts deleted file mode 100644 index a26e26a6..00000000 --- a/scripts/src/contracts/hpl_test_mock_hook.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { injectable } from "inversify"; -import { BaseContract } from "../types"; - -@injectable() -export class HplTestMockHook extends BaseContract { - contractName: string = "hpl_test_mock_hook"; -} diff --git a/scripts/src/contracts/hpl_test_mock_ism.ts b/scripts/src/contracts/hpl_test_mock_ism.ts deleted file mode 100644 index 8a288ca2..00000000 --- a/scripts/src/contracts/hpl_test_mock_ism.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { injectable } from "inversify"; -import { BaseContract } from "../types"; - -@injectable() -export class HplTestMockIsm extends BaseContract { - contractName: string = "hpl_test_mock_ism"; -} diff --git a/scripts/src/contracts/hpl_test_mock_msg_receiver.ts b/scripts/src/contracts/hpl_test_mock_msg_receiver.ts deleted file mode 100644 index 4e84e79a..00000000 --- a/scripts/src/contracts/hpl_test_mock_msg_receiver.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { injectable } from "inversify"; -import { BaseContract } from "../types"; - -@injectable() -export class HplTestMockMsgReceiver extends BaseContract { - contractName: string = "hpl_test_mock_msg_receiver"; -} diff --git a/scripts/src/contracts/hpl_validator_announce.ts b/scripts/src/contracts/hpl_validator_announce.ts deleted file mode 100644 index b887331a..00000000 --- a/scripts/src/contracts/hpl_validator_announce.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { injectable } from "inversify"; -import { BaseContract } from "../types"; - -@injectable() -export class HplValidatorAnnounce extends BaseContract { - contractName: string = "hpl_validator_announce"; -} diff --git a/scripts/src/contracts/hpl_warp_cw20.ts b/scripts/src/contracts/hpl_warp_cw20.ts deleted file mode 100644 index cea3aa9e..00000000 --- a/scripts/src/contracts/hpl_warp_cw20.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { injectable } from "inversify"; -import { BaseContract } from "../types"; - -@injectable() -export class HplWarpCw20 extends BaseContract { - contractName: string = "hpl_warp_cw20"; -} diff --git a/scripts/src/contracts/hpl_warp_native.ts b/scripts/src/contracts/hpl_warp_native.ts deleted file mode 100644 index 36d7d3a1..00000000 --- a/scripts/src/contracts/hpl_warp_native.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { injectable } from "inversify"; -import { BaseContract } from "../types"; - -@injectable() -export class HplWarpNative extends BaseContract { - contractName: string = "hpl_warp_native"; -} diff --git a/scripts/src/contracts/index.ts b/scripts/src/contracts/index.ts deleted file mode 100644 index 611555a8..00000000 --- a/scripts/src/contracts/index.ts +++ /dev/null @@ -1,70 +0,0 @@ -export * from "./hpl_hook_aggregate"; -export * from "./hpl_hook_fee"; -export * from "./hpl_hook_merkle"; -export * from "./hpl_hook_pausable"; -export * from "./hpl_hook_routing"; -export * from "./hpl_hook_routing_custom"; -export * from "./hpl_hook_routing_fallback"; -export * from "./hpl_igp"; -export * from "./hpl_igp_oracle"; -export * from "./hpl_ism_aggregate"; -export * from "./hpl_ism_multisig"; -export * from "./hpl_ism_pausable"; -export * from "./hpl_ism_routing"; -export * from "./hpl_mailbox"; -export * from "./hpl_test_mock_hook"; -export * from "./hpl_test_mock_ism"; -export * from "./hpl_test_mock_msg_receiver"; -export * from "./hpl_validator_announce"; -export * from "./hpl_warp_cw20"; -export * from "./hpl_warp_native"; - -import { SigningCosmWasmClient } from "@cosmjs/cosmwasm-stargate"; -import { readdirSync } from "fs"; -import { Container } from "inversify"; -import { Context, Contract, ContractConstructor } from "../types"; - -const contractNames: string[] = readdirSync(__dirname) - .filter((f) => f !== "index.ts") - .map((f) => f.replace(".ts", "")); - -const contractHandlers: { [key: string]: ContractConstructor } = - contractNames.reduce((acc, cur) => { - const className = cur - .split("_") - .map((v) => v[0].toUpperCase() + v.slice(1)) - .join(""); - - acc[cur] = require(`./${cur}`)[className]; - return acc; - }, {} as { [key: string]: ContractConstructor }); - -export function getTargetContractName(): string[] { - return contractNames; -} - -export function getTargetContract( - ctx: Context, - client: SigningCosmWasmClient, - signer: string, - container: Container -): { [key: string]: Contract } { - return Object.keys(contractHandlers).reduce((acc, cur) => { - const { codeId, digest, address } = ctx.contracts[cur] || {}; - - try { - acc[cur] = new contractHandlers[cur]( - address, - codeId, - digest, - signer, - client - ); - } catch (e) { - throw Error(`Failed to instantiate contract ${cur}: ${e}`); - } - - container.bind(contractHandlers[cur]).toConstantValue(acc[cur]); - return acc; - }, {} as { [key: string]: Contract }); -} diff --git a/scripts/src/conv.ts b/scripts/src/conv.ts deleted file mode 100644 index ac1b9488..00000000 --- a/scripts/src/conv.ts +++ /dev/null @@ -1,4 +0,0 @@ -export const addPad = (v: string): string => { - const s = v.startsWith("0x") ? v.slice(2) : v; - return s.padStart(64, "0"); -}; diff --git a/scripts/src/deploy.ts b/scripts/src/deploy.ts deleted file mode 100644 index 048e2aaa..00000000 --- a/scripts/src/deploy.ts +++ /dev/null @@ -1,322 +0,0 @@ -import { Client, HookType, IgpHookType, IsmType, config } from "../src/config"; -import { - HplMailbox, - HplValidatorAnnounce, - HplHookAggregate, - HplHookMerkle, - HplHookPausable, - HplHookRouting, - HplHookRoutingCustom, - HplIgp, - HplIsmAggregate, - HplIsmMultisig, - HplIsmRouting, - HplTestMockHook, - HplTestMockMsgReceiver, - HplWarpCw20, - HplWarpNative, - HplIgpOracle, - HplHookFee, - HplTestMockIsm, -} from "./contracts"; -import { Context } from "./types"; - -export type Contracts = { - core: { - mailbox: HplMailbox; - va: HplValidatorAnnounce; - }; - hooks: { - aggregate: HplHookAggregate; - fee: HplHookFee; - merkle: HplHookMerkle; - pausable: HplHookPausable; - routing: HplHookRouting; - routing_custom: HplHookRoutingCustom; - routing_fallback: HplHookRoutingCustom; - }; - igp: { - core: HplIgp; - oracle: HplIgpOracle; - }; - isms: { - aggregate: HplIsmAggregate; - multisig: HplIsmMultisig; - routing: HplIsmRouting; - }; - mocks: { - hook: HplTestMockHook; - ism: HplTestMockIsm; - receiver: HplTestMockMsgReceiver; - }; - warp: { - cw20: HplWarpCw20; - native: HplWarpNative; - }; -}; - -const name = (c: any) => c.contractName; -const addr = (ctx: Context, c: any) => ctx.contracts[name(c)].address!; - -export const deploy_ism = async ( - ctx: Context, - client: Client, - ism: IsmType, - contracts: Contracts -): Promise<[Context, string]> => { - const { isms } = contracts; - - switch (ism.type) { - // deploy multisig ism - case "multisig": - const multisig_ism_res = await isms.multisig.instantiate({ - owner: ism.owner === "" ? client.signer : ism.owner, - }); - ctx.contracts[name(isms.multisig)] = multisig_ism_res; - - for (const [domain, { addrs, threshold }] of Object.entries( - ism.validators - )) { - await client.wasm.execute( - client.signer, - multisig_ism_res.address!, - { - set_validators: { - domain: Number(domain), - threshold, - validators: addrs, - }, - }, - "auto" - ); - } - - return [ctx, multisig_ism_res.address!]; - - // deploy aggregate ism - case "aggregate": - const aggregate_ism_res = await isms.aggregate.instantiate({ - owner: ism.owner === "" ? client.signer : ism.owner, - isms: await Promise.all( - ism.isms.map(async (v) => { - const [newCtx, aggr] = await deploy_ism(ctx, client, v, contracts); - - ctx = newCtx; - - return aggr; - }) - ), - }); - ctx.contracts[name(isms.aggregate)] = aggregate_ism_res; - - return [ctx, aggregate_ism_res.address!]; - - // deploy routing ism - case "routing": - const routing_ism_res = await isms.routing.instantiate({ - owner: ism.owner === "" ? client.signer : ism.owner, - }); - ctx.contracts[name(isms.routing)] = routing_ism_res; - - await client.wasm.execute( - client.signer, - routing_ism_res.address!, - { - router: { - set_routes: { - set: await Promise.all( - Object.entries(ism.isms).map(async ([domain, v]) => { - const [newCtx, route] = await deploy_ism( - ctx, - client, - v, - contracts - ); - - ctx = newCtx; - - return { domain, route }; - }) - ), - }, - }, - }, - "auto" - ); - - return [ctx, routing_ism_res.address!]; - - default: - throw new Error("invalid ism type"); - } -}; - -export const deploy_hook = async ( - ctx: Context, - client: Client, - hook: HookType, - contracts: Contracts -): Promise<[Context, string]> => { - const { - core: { mailbox }, - hooks, - mocks, - } = contracts; - - switch (hook.type) { - // deploy fee hook - case "fee": - const fee_hook_res = await hooks.fee.instantiate({ - owner: hook.owner === "" ? client.signer : hook.owner, - fee: { ...hook.fee, amount: hook.fee.amount.toString() }, - }); - - ctx.contracts[name(hooks.fee)] = fee_hook_res; - - return [ctx, fee_hook_res.address!]; - - // deploy merkle hook - case "merkle": - const merkle_hook_res = await hooks.merkle.instantiate({ - mailbox: addr(ctx, mailbox), - }); - - ctx.contracts[name(hooks.merkle)] = merkle_hook_res; - - return [ctx, merkle_hook_res.address!]; - - // deploy mock hook - case "mock": - const mock_hook_res = await mocks.hook.instantiate({}); - - ctx.contracts[name(mocks.hook)] = mock_hook_res; - - return [ctx, mock_hook_res.address!]; - - // deploy pausable hook - case "pausable": - const pausable_hook_res = await hooks.pausable.instantiate({ - owner: hook.owner === "" ? client.signer : hook.owner, - paused: hook.paused || false, - }); - - ctx.contracts[name(hooks.pausable)] = pausable_hook_res; - - return [ctx, pausable_hook_res.address!]; - - // deploy igp hook - case "igp": - ctx = await deploy_igp(ctx, client, hook, contracts); - - return [ctx, addr(ctx, contracts.igp.core)]; - - // deploy aggregate hook - case "aggregate": - const aggregate_set = []; - - for (const v of hook.hooks) { - const [newCtx, aggr] = await deploy_hook(ctx, client, v, contracts); - - ctx = newCtx; - - aggregate_set.push(aggr); - } - - const aggregate_hook_res = await hooks.aggregate.instantiate({ - owner: hook.owner === "" ? client.signer : hook.owner, - hooks: aggregate_set, - }); - - ctx.contracts[name(hooks.aggregate)] = aggregate_hook_res; - - return [ctx, aggregate_hook_res.address!]; - - // deploy routing hook - case "routing": - const routing_hook_res = await hooks.routing.instantiate({ - owner: hook.owner === "" ? client.signer : hook.owner, - }); - - ctx.contracts[name(hooks.routing)] = routing_hook_res; - - const routing_set = []; - - for (const [domain, v] of Object.entries(hook.hooks)) { - const [newCtx, route] = await deploy_hook(ctx, client, v, contracts); - - ctx = newCtx; - - routing_set.push({ domain: Number(domain), route }); - } - - await client.wasm.execute( - client.signer, - routing_hook_res.address!, - { - router: { - set_routes: { - set: routing_set, - }, - }, - }, - "auto" - ); - - return [ctx, routing_hook_res.address!]; - default: - throw new Error("invalid hook type"); - } -}; - -export const deploy_igp = async ( - ctx: Context, - client: Client, - settings: IgpHookType, - { igp }: Contracts -): Promise => { - // init igp - ctx.contracts[name(igp.core)] = await igp.core.instantiate({ - hrp: config.network.hrp, - owner: client.signer, - gas_token: settings.token || config.network.gas.denom, - beneficiary: client.signer, - }); - - // init igp oracle - ctx.contracts[name(igp.oracle)] = await igp.oracle.instantiate({ - owner: client.signer, - }); - - await client.wasm.execute( - client.signer, - addr(ctx, igp.oracle), - { - set_remote_gas_data_configs: { - configs: Object.entries(settings.configs).map(([domain, v]) => ({ - remote_domain: Number(domain), - token_exchange_rate: v.exchange_rate.toString(), - gas_price: v.gas_price.toString(), - })), - }, - }, - "auto" - ); - - await client.wasm.execute( - client.signer, - addr(ctx, igp.core), - { - router: { - set_routes: { - set: Object.keys(settings.configs).map((domain) => ({ - domain: Number(domain), - route: addr(ctx, igp.oracle), - })), - }, - }, - }, - "auto" - ); - - return ctx; -}; diff --git a/scripts/src/index.ts b/scripts/src/index.ts deleted file mode 100644 index c0637b0d..00000000 --- a/scripts/src/index.ts +++ /dev/null @@ -1,128 +0,0 @@ -import "reflect-metadata"; - -import colors from "colors"; -import { loadWasmFileDigest, getWasmPath } from "./load_wasm"; -import { loadContext, saveContext } from "./load_context"; -import { getTargetContract, getTargetContractName } from "./contracts"; -import { CodeUpdate, CodeCreate, Context } from "./types"; -import * as readline from "readline"; - -import { AxiosError } from "axios"; -import { CONTAINER } from "./ioc"; -import { runMigrations } from "./migrations"; -import { config, getSigningClient } from "./config"; - -colors.enable(); - -function askQuestion(query: string) { - const rl = readline.createInterface({ - input: process.stdin, - output: process.stdout, - }); - - return new Promise((resolve) => - rl.question(`${query} [Y/n] `, (ans) => { - rl.close(); - resolve(ans.toLowerCase() == "y" ? true : false); - }) - ); -} - -async function main() { - const digest = await loadWasmFileDigest(); - const context = loadContext(config.network.id); - const targetContractName = getTargetContractName(); - - const client = await getSigningClient(config); - context.address = client.signer; - - CONTAINER.bind(Context).toConstantValue(context); - const contracts = getTargetContract( - context, - client.wasm, - client.signer, - CONTAINER - ); - console.log("check exist contracts...."); - - const codeChanges = targetContractName - .map((contractName) => { - const ctxContract = context.contracts[contractName]; - const currentDigest = digest[getWasmPath(contractName)]; - if (ctxContract === undefined) { - return { - contractName, - digest: currentDigest, - } as CodeCreate; - } else if (ctxContract.digest != currentDigest) { - return { - contractName, - codeId: ctxContract.codeId, - digest: currentDigest, - } as CodeUpdate; - } - }) - .filter((v) => v !== undefined); - - if (codeChanges.length !== 0) { - console.log(`Found ${codeChanges.length} contracts to upload.\n`); - let creationExists = false; - codeChanges.forEach((v) => { - if (v === undefined) return; - - if ("codeId" in v) { - console.log( - "UPDATE".yellow, - `${v.contractName} (${v.codeId})`.padEnd(30), - "|", - v.digest - ); - } else { - console.log( - "CREATE".green, - `${v.contractName}`.padEnd(30), - "|", - v.digest - ); - creationExists = true; - } - }); - - // check upload - const askUpload = await askQuestion("Do you want to upload contracts?"); - if (!askUpload && creationExists) { - console.log("\n[ERROR] You must upload all new contracts.".red); - process.exit(1); - } else if (askUpload) { - console.log("\nuploading...\n"); - - for (let v of codeChanges) { - if (v === undefined) return; - - const contract = contracts[v.contractName]; - if (contract === undefined) return; - - process.stdout.write("[UPLOAD]".gray); - process.stdout.write(` ${v.contractName} ... `); - - try { - contract.digest = v.digest; - const contractContext = await contract.upload(); - context.contracts[v.contractName] = contractContext; - saveContext(config.network.id, context); - - console.log("OK".green, "as", contractContext.codeId); - } catch (e) { - const err = e as AxiosError; - console.log("FAILED".red, "=>", err); - } - } - } - } else { - console.log("No contracts to upload."); - } - - // runMigrations(config.network.id, false); -} - -main(); diff --git a/scripts/src/ioc.ts b/scripts/src/ioc.ts deleted file mode 100644 index 9f81dbf6..00000000 --- a/scripts/src/ioc.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { Container } from 'inversify'; - -export const CONTAINER = new Container({ autoBindInjectable: true, defaultScope: 'Singleton' }); -export const TYPES = {}; - -// referenced by tsoa -export const iocContainer = CONTAINER; diff --git a/scripts/src/load_context.ts b/scripts/src/load_context.ts deleted file mode 100644 index 7c27d4a8..00000000 --- a/scripts/src/load_context.ts +++ /dev/null @@ -1,22 +0,0 @@ -import fs from "fs"; -import path from "path"; -import { Context } from "./types"; - -const directoryPath = path.join(__dirname, "../context"); - -export function loadContext(network: string): Context { - try { - const fileName = path.join(directoryPath, `${network}.json`); - const result = fs.readFileSync(fileName); - - return JSON.parse(result.toString()) as Context; - } catch (err) {} - - return { contracts: {}, latestMigration: undefined, address: undefined }; -} - -export function saveContext(network: string, context: Context) { - fs.mkdirSync(directoryPath, { recursive: true }); - const fileName = path.join(directoryPath, `${network}.json`); - fs.writeFileSync(fileName, JSON.stringify(context, null, 2)); -} diff --git a/scripts/src/load_wasm.ts b/scripts/src/load_wasm.ts deleted file mode 100644 index a1f9cdeb..00000000 --- a/scripts/src/load_wasm.ts +++ /dev/null @@ -1,57 +0,0 @@ -import fs from "fs"; -import path from "path"; -import crypto from "crypto"; -import { pipeline } from "stream"; -import { promisify } from "util"; - -const directoryPath = path.join(__dirname, "../../artifacts"); -const pipelineAsync = promisify(pipeline); - -function getWasmFilesPath(): string[] { - try { - const files = fs.readdirSync(directoryPath); - return files - .filter((file) => file.endsWith(".wasm")) - .map((file) => path.join(directoryPath, file)); - } catch (err) { - console.error( - "Cannot find wasm folder. Are you sure you compiled the wasm projects?" - ); - process.exit(1); - } -} - -async function generateSha256(filePath: string): Promise { - const readStream = fs.createReadStream(filePath); - const hash = crypto.createHash("sha256"); - - readStream.on("data", (chunk) => hash.update(chunk)); - - await pipelineAsync(readStream, hash); - return hash.digest("hex"); -} - -export async function loadWasmFileDigest() { - const wasmFiles = getWasmFilesPath(); - const wasmFileDigest: { [key: string]: string } = {}; - - wasmFiles.forEach((file) => { - const wasm = fs.readFileSync(file); - const digest = wasm.toString("base64"); - wasmFileDigest[file] = digest; - }); - - await Promise.all( - wasmFiles.map(async (file) => { - const digest = await generateSha256(file); - const fileName = path.basename(file); - wasmFileDigest[file] = digest; - }) - ); - - return wasmFileDigest; -} - -export function getWasmPath(contractName: string): string { - return path.join(directoryPath, `${contractName}.wasm`); -} diff --git a/scripts/src/migrations/InitializeStandalone.ts b/scripts/src/migrations/InitializeStandalone.ts deleted file mode 100644 index 1bede003..00000000 --- a/scripts/src/migrations/InitializeStandalone.ts +++ /dev/null @@ -1,75 +0,0 @@ -import { injectable } from "inversify"; -import { - HplHookMerkle, - HplIgp, - HplIgpOracle, - HplIsmMultisig, - HplMailbox, - HplTestMockHook, -} from "../contracts"; -import { Context, Migration } from "../types"; - -@injectable() -export default class InitializeStandalone implements Migration { - name: string = "initialize_standalone"; - after: string = ""; - - constructor( - private ctx: Context, - private mailbox: HplMailbox, - private hook_merkle: HplHookMerkle, - private igp: HplIgp, - private igp_oracle: HplIgpOracle, - private ism_multisig: HplIsmMultisig, - private test_mock_hook: HplTestMockHook - ) {} - - run = async (): Promise => { - // init mailbox - this.ctx.contracts[this.mailbox.contractName] = - await this.mailbox.instantiate({ - hrp: "dual", - owner: this.ctx.address!, - domain: 33333, - }); - - // init merkle hook - (required hook) - this.ctx.contracts[this.hook_merkle.contractName] = - await this.hook_merkle.instantiate({ - owner: this.ctx.address!, - mailbox: this.ctx.contracts[this.mailbox.contractName].address, - }); - - // init mock hook - (default hook) - this.ctx.contracts[this.test_mock_hook.contractName] = - await this.test_mock_hook.instantiate({}); - - // init igp oracle - this.ctx.contracts[this.igp_oracle.contractName] = - await this.igp_oracle.instantiate({ - owner: this.ctx.address!, - }); - - // init igp - this.ctx.contracts[this.igp.contractName] = await this.igp.instantiate({ - hrp: "dual", - owner: this.ctx.address!, - mailbox: this.ctx.contracts[this.mailbox.contractName].address, - gas_token: "token", - beneficiary: this.ctx.address!, - }); - - // init ism multisig - this.ctx.contracts[this.ism_multisig.contractName] = - await this.ism_multisig.instantiate({ - hrp: "dual", - owner: this.ctx.address!, - }); - - return this.ctx; - }; - - setContext = (ctx: Context) => { - this.ctx = ctx; - }; -} diff --git a/scripts/src/migrations/index.ts b/scripts/src/migrations/index.ts deleted file mode 100644 index b298a1bb..00000000 --- a/scripts/src/migrations/index.ts +++ /dev/null @@ -1,104 +0,0 @@ -import { readdirSync } from "fs"; -import { CONTAINER } from "../ioc"; -import { Context } from "../types"; -import { saveContext } from "../load_context"; - -const MIGRATIONS: { [key: string]: any } = readdirSync(__dirname) - .filter((f) => f !== "index.ts") - .map((f) => f.replace(".ts", "")) - .reduce((acc, cur) => { - acc[cur] = require(`./${cur}`).default; - return acc; - }, {} as { [key: string]: any }); - -export async function runMigrations(network: string, dryRun: boolean) { - const migraiotnMap: { [key: string]: any } = {}; - - // migration maps - Object.keys(MIGRATIONS).forEach((key) => { - const cls = MIGRATIONS[key]; - CONTAINER.bind(cls).toSelf(); - - // save - const obj = CONTAINER.get(cls); - migraiotnMap[obj.name] = obj; - }); - - // find initials - const availableInitials = Object.keys(migraiotnMap) - .map((key) => migraiotnMap[key]) - .filter((obj) => obj.after === ""); - if (availableInitials.length != 1) { - throw new Error("There must be one initial migration"); - } - - let current = availableInitials[0]; - let migrationOrder = [current]; - - while (true) { - let next: any | undefined = undefined; - - Object.keys(migraiotnMap).forEach((key) => { - const obj = migraiotnMap[key]; - - if (obj.after === current.name) { - next === undefined - ? (next = obj) - : (() => { - throw new Error("There must be one next migration"); - })(); - } - }); - - if (next === undefined) break; - - migrationOrder.push(next); - current = next; - } - - // get contexts and check after; - let ctx = CONTAINER.get(Context); - const migStartAt = - migrationOrder.findIndex((obj) => obj.name === ctx.latestMigration) + 1; - - // migrate - if (migrationOrder.slice(migStartAt).length === 0) { - console.log("[INFO]".gray, "No migrations to run."); - return; - } - - console.log("\nrun migrations...\n"); - - for (let obj of migrationOrder.slice(migStartAt)) { - process.stdout.write("[MIGRATION]".gray); - process.stdout.write(` ${obj.name} ... `); - - if (dryRun) { - console.log("PASS".yellow); - continue; - } - - try { - obj.setContext(ctx); - ctx = await obj.run(); - - ctx.latestMigration = obj.name; - saveContext(network, ctx); - - console.log("OK".green); - } catch (err) { - console.log("FAIL".red); - throw err; - } - } - - console.log("\n[INFO]".gray, "All migrations are done."); - console.log("\n============= Migration Result =============\n"); - - Object.keys(ctx.contracts).forEach((key) => { - const contract = ctx.contracts[key]; - console.log(`${key}`.padEnd(30), "=>", `${contract.address}`); - }); -} - -export async function runContract(network: string) {} diff --git a/scripts/src/migrations/initialize.ts b/scripts/src/migrations/initialize.ts deleted file mode 100644 index 0e1772a7..00000000 --- a/scripts/src/migrations/initialize.ts +++ /dev/null @@ -1,75 +0,0 @@ -import { injectable } from "inversify"; -import { Context, Migration } from "../types"; -import { - HplMailbox, - HplHookMerkle, - HplIgpOracle, - HplIsmMultisig, - HplTestMockHook, - HplIgp, -} from "../contracts"; - -@injectable() -export default class InitializeStandalone implements Migration { - name: string = "initialize_standalone"; - after: string = ""; - - constructor( - private ctx: Context, - private mailbox: HplMailbox, - private hook_merkle: HplHookMerkle, - private igp: HplIgp, - private igp_oracle: HplIgpOracle, - private ism_multisig: HplIsmMultisig, - private test_mock_hook: HplTestMockHook - ) {} - - run = async (): Promise => { - // init mailbox - this.ctx.contracts[this.mailbox.contractName] = - await this.mailbox.instantiate({ - hrp: "dual", - owner: this.ctx.address!, - domain: 33333, - }); - - // init merkle hook - (required hook) - this.ctx.contracts[this.hook_merkle.contractName] = - await this.hook_merkle.instantiate({ - owner: this.ctx.address!, - mailbox: this.ctx.contracts[this.mailbox.contractName].address, - }); - - // init mock hook - (default hook) - this.ctx.contracts[this.test_mock_hook.contractName] = - await this.test_mock_hook.instantiate({}); - - // init igp oracle - this.ctx.contracts[this.igp_oracle.contractName] = - await this.igp_oracle.instantiate({ - owner: this.ctx.address!, - }); - - // init igp - this.ctx.contracts[this.igp.contractName] = await this.igp.instantiate({ - hrp: "dual", - owner: this.ctx.address!, - mailbox: this.ctx.contracts[this.mailbox.contractName].address, - gas_token: "token", - beneficiary: this.ctx.address!, - }); - - // init ism multisig - this.ctx.contracts[this.ism_multisig.contractName] = - await this.ism_multisig.instantiate({ - hrp: "dual", - owner: this.ctx.address!, - }); - - return this.ctx; - }; - - setContext = (ctx: Context) => { - this.ctx = ctx; - }; -} diff --git a/scripts/src/migrations/mailbox.ts b/scripts/src/migrations/mailbox.ts deleted file mode 100644 index aa79c3d2..00000000 --- a/scripts/src/migrations/mailbox.ts +++ /dev/null @@ -1,30 +0,0 @@ -import { injectable } from "inversify"; -import { Context, HplMailboxInstantiateMsg, Migration } from "../types"; -import { HplIsmMultisig, HplMailbox } from "../contracts"; - -@injectable() -export default class MailboxMigration implements Migration { - name: string = "mailbox"; - after: string = "initialize_standalone"; - - constructor( - private ctx: Context, - private mailbox: HplMailbox, - private ism_multisig: HplIsmMultisig - ) {} - - run = async (): Promise => { - const mailboxInit: HplMailboxInstantiateMsg = { - owner: this.ctx.address!, - hrp: "dual", - domain: 33333, - }; - this.ctx.contracts[this.mailbox.contractName] = - await this.mailbox.instantiate(mailboxInit); - return this.ctx; - }; - - setContext = (ctx: Context) => { - this.ctx = ctx; - }; -} diff --git a/scripts/src/migrations/mailbox_related.ts b/scripts/src/migrations/mailbox_related.ts deleted file mode 100644 index dd9b3aeb..00000000 --- a/scripts/src/migrations/mailbox_related.ts +++ /dev/null @@ -1,43 +0,0 @@ -import { injectable } from "inversify"; -import { Context, Migration } from "../types"; -import { HplIsmRouting, HplMailbox, HplValidatorAnnounce } from "../contracts"; - -@injectable() -export default class MailboxMigration implements Migration { - name: string = "mailbox_related"; - after: string = "mailbox"; - - constructor( - private ctx: Context, - private mailbox: HplMailbox, - private ismRouting: HplIsmRouting, - private va: HplValidatorAnnounce - ) {} - - run = async (): Promise => { - // const routingMsgs: HplIsmRoutingInstantiateMsg = { - // owner: this.ctx.address!, - // isms: [ - // { - // domain: 4337, - // address: this.mailbox.address!, - // }, - // ], - // }; - // this.ctx.contracts[this.ismRouting.contractName] = - // await this.ismRouting.instantiate(routingMsgs); - - // const vaMsg: HplValidatorAnnounceInstantiateMsg = { - // addr_prefix: "osmo", - // mailbox: this.mailbox.address!, - // local_domain: 4337, - // }; - // this.ctx.contracts[this.va.contractName] = await this.va.instantiate(vaMsg); - - return this.ctx; - }; - - setContext = (ctx: Context) => { - this.ctx = ctx; - }; -} diff --git a/scripts/src/types.ts b/scripts/src/types.ts deleted file mode 100644 index 95c63af6..00000000 --- a/scripts/src/types.ts +++ /dev/null @@ -1,198 +0,0 @@ -import { - ExecuteResult, - SigningCosmWasmClient, -} from "@cosmjs/cosmwasm-stargate"; -import { fromBech32 } from "@cosmjs/encoding"; -import fs from "fs"; -import { getWasmPath } from "./load_wasm"; - -export interface ContractContext { - codeId: number | undefined; - digest: string; - address: string | undefined; -} - -export class Context { - contracts: { - [key: string]: ContractContext; - }; - latestMigration: string | undefined; - address: string | undefined; -} - -export interface CodeCreate { - contractName: string; - digest: string; -} - -export interface CodeUpdate { - contractName: string; - codeId: number; - digest: string; -} - -export type CodeUploads = CodeCreate | CodeUpdate; - -export interface Contract { - address: string | undefined; - codeId: number | undefined; - contractName: string; - digest: string; - client: SigningCosmWasmClient; - signer: string; - - getContractContext(): ContractContext; - - upload(): Promise; - instantiate(msg: any): Promise; -} - -export abstract class BaseContract implements Contract { - contractName: string; - - constructor( - public address: string | undefined, - public codeId: number | undefined, - public digest: string, - public signer: string, - public client: SigningCosmWasmClient - ) {} - - public getContractContext(): ContractContext { - return { - address: this.address, - codeId: this.codeId, - digest: this.digest, - }; - } - - public async upload(): Promise { - const wasm = fs.readFileSync(getWasmPath(this.contractName)); - const uploadReceipt = await this.client.upload(this.signer, wasm, "auto"); - - this.codeId = uploadReceipt.codeId; - return this.getContractContext(); - } - - public async instantiate(msg: any): Promise { - const contract = await this.client.instantiate( - this.signer, - this.codeId!, - msg, - this.contractName, - "auto", - { admin: this.signer } - ); - - console.log( - [ - this.contractName.padEnd(30), - contract.contractAddress.padEnd(65), - Buffer.from(fromBech32(contract.contractAddress).data) - .toString("hex") - .padEnd(65), - contract.transactionHash.padEnd(65), - ].join("| ") - ); - - this.address = contract.contractAddress; - return this.getContractContext(); - } - - // overloads - public async execute(msg: any): Promise; - public async execute( - msg: any, - funds: { denom: string; amount: string }[] - ): Promise; - - // implementation - public async execute( - msg: any, - funds?: { denom: string; amount: string }[] - ): Promise { - const res = await this.client.execute( - this.signer, - this.address!, - msg, - "auto", - undefined, - funds - ); - console.log( - [ - `${this.contractName}:${Object.keys(msg)[0]}`.padEnd(30), - res.transactionHash.padEnd(65), - ].join("| ") - ); - - return res; - } - - public async query(msg: any): Promise { - const res = await this.client.queryContractSmart(this.address!, msg); - - return res; - } -} - -export interface ContractConstructor { - new ( - address: string | undefined, - codeId: number | undefined, - digest: string, - signer: string, - client: SigningCosmWasmClient - ): Contract; -} - -export interface Migration { - name: string; - after: string; - - run(): Promise; - setContext(ctx: Context): void; -} - -export interface HplHubInstantiateMsg { - origin_domain: number; - mailbox_code: number; -} - -export interface HplIgpCoreInstantiateMsg { - owner: string; - gas_token: string; - beneficiary: string; -} - -export interface HplIgpOracleInstantiateMsg {} - -export interface HplIsmMultisigInstantiateMsg { - owner: string; - addr_prefix: string; -} - -export interface HplIsmRoutingInstantiateMsg { - owner: string; - isms: { - domain: number; - address: string; - }[]; -} - -export interface HplMailboxInstantiateMsg { - owner: string; - hrp: string; - domain: number; -} - -export interface HplMulticallInstantiateMsg { - owner: string; - mailbox: string; -} - -export interface HplValidatorAnnounceInstantiateMsg { - addr_prefix: string; - mailbox: string; - local_domain: number; // u32 -} diff --git a/ts/sdk/.gitattributes b/ts/sdk/.gitattributes deleted file mode 100644 index d0e762ad..00000000 --- a/ts/sdk/.gitattributes +++ /dev/null @@ -1,9 +0,0 @@ -# File attributes for Git repository. -# References at https://git-scm.com/docs/gitattributes. - -# Handle files as text and ensure Unix line endings. -* text=auto eol=lf - -# Ignore differences on NPM's lockfile. -# Since version 5.7.0, NPM automatically handles merge conflicts. -package-lock.json -diff diff --git a/ts/sdk/.gitignore b/ts/sdk/.gitignore deleted file mode 100644 index 00cf79ea..00000000 --- a/ts/sdk/.gitignore +++ /dev/null @@ -1,32 +0,0 @@ -# Unversioned files and folders. -# References at https://git-scm.com/docs/gitignore. - -# Finder's configuration files (Mac). -.DS_Store - -# Node.js modules. -node_modules/ - -# NPM's shrinkwrap. -# We're using `package-lock.json` instead. -npm-shrinkwrap.json - -# Yarn's lockfile, Plug'n'Play, folder and settings. -# We're using npm, and it provides its lockfile and settings. -yarn.lock -.pnp.* -.yarn/ -.yarnrc -.yarnrc.yaml - -# pnpm's lockfile, workspace definitions and hooks. -# We're using npm, and it provides its lockfile and settings. -pnpm-lock.yaml -pnpm-workspace.yaml -pnpmfile.js - -# Log files. -*.log -*.log.* - -dist/ diff --git a/ts/sdk/LICENSE b/ts/sdk/LICENSE deleted file mode 100644 index ea662a36..00000000 --- a/ts/sdk/LICENSE +++ /dev/null @@ -1,201 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright 2021 Sikka Research Pte. Ltd. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. diff --git a/ts/sdk/README.md b/ts/sdk/README.md deleted file mode 100644 index d97b3624..00000000 --- a/ts/sdk/README.md +++ /dev/null @@ -1 +0,0 @@ -# cw-hyperlane-sdk diff --git a/ts/sdk/jest.config.js b/ts/sdk/jest.config.js deleted file mode 100644 index 778f18a4..00000000 --- a/ts/sdk/jest.config.js +++ /dev/null @@ -1,13 +0,0 @@ -// @ts-check -/* eslint-env node */ - -/** - * An object with Jest options. - * @type {import('@jest/types').Config.InitialOptions} - */ -const options = { - preset: 'ts-jest', - resolver: 'ts-jest-resolver', -}; - -module.exports = options; diff --git a/ts/sdk/package.json b/ts/sdk/package.json deleted file mode 100644 index a2c07f88..00000000 --- a/ts/sdk/package.json +++ /dev/null @@ -1,68 +0,0 @@ -{ - "name": "cw-hyperlane-sdk", - "version": " 0.0.1", - "description": "", - "cdn": "dist/index.umd.js", - "main": "dist/index.js", - "types": "types/index.d.ts", - "unpkg": "dist/index.umd.js", - "module": "dist/index.esm.js", - "jsdelivr": "dist/index.umd.js", - "umd:main": "dist/index.umd.js", - "exports": { - ".": [ - { - "import": "./dist/index.mjs", - "require": "./dist/index.cjs", - "default": "./dist/index.js" - }, - "./dist/index.js" - ] - }, - "devDependencies": { - "@cosmwasm/ts-codegen": "^0.16.5", - "@rollup/plugin-commonjs": "^25.0.2", - "@rollup/plugin-node-resolve": "^15.1.0", - "@swc/core": "^1.2.198", - "@swc/helpers": "^0.3.17", - "@types/eslint": "^8.4.1", - "@types/jest": "^27.4.1", - "@types/prettier": "^2.6.0", - "@typescript-eslint/eslint-plugin": "^5.21.0", - "@typescript-eslint/parser": "^5.21.0", - "eslint": "^8.14.0", - "eslint-config-prettier": "^8.5.0", - "eslint-plugin-prettier": "^4.0.0", - "jest": "^27.5.1", - "prettier": "^2.6.2", - "regenerator-runtime": "^0.13.9", - "rollup": "^2.70.2", - "rollup-plugin-terser": "^7.0.2", - "rollup-plugin-typescript2": "^0.31.2", - "ts-jest": "^27.1.4", - "ts-jest-resolver": "^2.0.0", - "typedoc": "^0.22.15", - "typedoc-plugin-markdown": "^3.12.1", - "typescript": "^4.6.3" - }, - "scripts": { - "doc": "typedoc src/index.ts", - "test": "jest --passWithNoTests", - "lint": "eslint \"*/**/*.{ts,js,json}\"", - "lint:fix": "eslint \"*/**/*.{ts,js,json}\" --fix", - "build": "rollup --config ./rollup.config.js", - "prepublishOnly": "npm run doc && npm run lint && npm run test && npm run build", - "codegen": "node ./scripts/codegen" - }, - "keywords": [], - "author": { - "name": "byeongsu-hong " - }, - "license": "MIT OR Apache-2.0", - "dependencies": { - "@cosmjs/cosmwasm-stargate": "^0.28.11", - "@cosmjs/encoding": "^0.30.1", - "cosmjs-types": "^0.8.0", - "cosmwasm": "^1.1.1" - } -} diff --git a/ts/sdk/rollup.config.js b/ts/sdk/rollup.config.js deleted file mode 100644 index a1c79542..00000000 --- a/ts/sdk/rollup.config.js +++ /dev/null @@ -1,84 +0,0 @@ -// @ts-check - -import { terser } from "rollup-plugin-terser"; -import typescript2 from "rollup-plugin-typescript2"; -import resolve from "@rollup/plugin-node-resolve"; -import commonjs from "@rollup/plugin-commonjs"; - -import pkg from "./package.json"; - -/** - * Comment with library information to be appended in the generated bundles. - */ -const banner = `/*! - * ${pkg.name} v${pkg.version} - * (c) ${pkg.author.name} - * Released under the ${pkg.license} License. - */ -`; - -/** - * Creates an output options object for Rollup.js. - * @param {import('rollup').OutputOptions} options - * @returns {import('rollup').OutputOptions} - */ -function createOutputOptions(options) { - return { - banner, - name: "counter-sdk", - exports: "named", - sourcemap: true, - ...options, - }; -} - -/** - * @type {import('rollup').RollupOptions} - */ -const options = { - input: "./src/index.ts", - output: [ - createOutputOptions({ - file: "./dist/index.js", - format: "commonjs", - }), - createOutputOptions({ - file: "./dist/index.cjs", - format: "commonjs", - }), - createOutputOptions({ - file: "./dist/index.mjs", - format: "esm", - }), - createOutputOptions({ - file: "./dist/index.esm.js", - format: "esm", - }), - createOutputOptions({ - file: "./dist/index.umd.js", - format: "umd", - }), - createOutputOptions({ - file: "./dist/index.umd.min.js", - format: "umd", - plugins: [terser()], - }), - ], - plugins: [ - resolve(), - commonjs({ - dynamicRequireTargets: [ - // include using a glob pattern (either a string or an array of strings) - "node_modules/cosmjs-types/*", - ], - }), - typescript2({ - clean: true, - useTsconfigDeclarationDir: true, - tsconfig: "./tsconfig.bundle.json", - }), - ], - external: ["cosmjs-types", "@cosmjs/encoding", "@cosmjs/cosmwasm-stargate"], -}; - -export default options; diff --git a/ts/sdk/scripts/codegen.js b/ts/sdk/scripts/codegen.js deleted file mode 100644 index f3e867d1..00000000 --- a/ts/sdk/scripts/codegen.js +++ /dev/null @@ -1,36 +0,0 @@ -const codegen = require("@cosmwasm/ts-codegen").default; -const path = require("path"); -const fs = require("fs"); - -const pkgRoot = path.join(__dirname, ".."); -const contractsDir = path.join(pkgRoot, "..", "..", "contracts"); - -const contracts = fs - .readdirSync(contractsDir, { withFileTypes: true }) - .filter((c) => c.isDirectory()) - .map((c) => ({ - name: c.name, - dir: path.join(contractsDir, c.name), - })); - -const outPath = path.join(pkgRoot, "src", "contracts"); -fs.rmSync(outPath, { recursive: true, force: true }); - -codegen({ - contracts, - outPath, - options: { - bundle: { - bundleFile: "index.ts", - scope: "contracts", - }, - client: { - enabled: true, - }, - messageComposer: { - enabled: true, - }, - }, -}).then(() => { - console.log("✨ Typescript code is generated successfully!"); -}); diff --git a/ts/sdk/src/contracts/Hub.client.ts b/ts/sdk/src/contracts/Hub.client.ts deleted file mode 100644 index de9a3790..00000000 --- a/ts/sdk/src/contracts/Hub.client.ts +++ /dev/null @@ -1,75 +0,0 @@ -/** -* This file was automatically generated by @cosmwasm/ts-codegen@0.16.5. -* DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file, -* and run the @cosmwasm/ts-codegen generate command to regenerate this file. -*/ - -import { CosmWasmClient, SigningCosmWasmClient, ExecuteResult } from "@cosmjs/cosmwasm-stargate"; -import { Coin, StdFee } from "@cosmjs/amino"; -import { InstantiateMsg, ExecuteMsg, QueryMsg, MigrateMsg, OriginDomainResponse } from "./Hub.types"; -export interface HubReadOnlyInterface { - contractAddress: string; - originDomain: () => Promise; -} -export class HubQueryClient implements HubReadOnlyInterface { - client: CosmWasmClient; - contractAddress: string; - - constructor(client: CosmWasmClient, contractAddress: string) { - this.client = client; - this.contractAddress = contractAddress; - this.originDomain = this.originDomain.bind(this); - } - - originDomain = async (): Promise => { - return this.client.queryContractSmart(this.contractAddress, { - origin_domain: {} - }); - }; -} -export interface HubInterface extends HubReadOnlyInterface { - contractAddress: string; - sender: string; - instantiate: ({ - defaultIsm, - owner - }: { - defaultIsm: string; - owner: string; - }, fee?: number | StdFee | "auto", memo?: string, funds?: Coin[]) => Promise; - migrate: (fee?: number | StdFee | "auto", memo?: string, funds?: Coin[]) => Promise; -} -export class HubClient extends HubQueryClient implements HubInterface { - client: SigningCosmWasmClient; - sender: string; - contractAddress: string; - - constructor(client: SigningCosmWasmClient, sender: string, contractAddress: string) { - super(client, contractAddress); - this.client = client; - this.sender = sender; - this.contractAddress = contractAddress; - this.instantiate = this.instantiate.bind(this); - this.migrate = this.migrate.bind(this); - } - - instantiate = async ({ - defaultIsm, - owner - }: { - defaultIsm: string; - owner: string; - }, fee: number | StdFee | "auto" = "auto", memo?: string, funds?: Coin[]): Promise => { - return await this.client.execute(this.sender, this.contractAddress, { - instantiate: { - default_ism: defaultIsm, - owner - } - }, fee, memo, funds); - }; - migrate = async (fee: number | StdFee | "auto" = "auto", memo?: string, funds?: Coin[]): Promise => { - return await this.client.execute(this.sender, this.contractAddress, { - migrate: {} - }, fee, memo, funds); - }; -} \ No newline at end of file diff --git a/ts/sdk/src/contracts/Hub.message-composer.ts b/ts/sdk/src/contracts/Hub.message-composer.ts deleted file mode 100644 index c39bcdb1..00000000 --- a/ts/sdk/src/contracts/Hub.message-composer.ts +++ /dev/null @@ -1,70 +0,0 @@ -/** -* This file was automatically generated by @cosmwasm/ts-codegen@0.16.5. -* DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file, -* and run the @cosmwasm/ts-codegen generate command to regenerate this file. -*/ - -import { Coin } from "@cosmjs/amino"; -import { MsgExecuteContractEncodeObject } from "cosmwasm"; -import { MsgExecuteContract } from "cosmjs-types/cosmwasm/wasm/v1/tx"; -import { toUtf8 } from "@cosmjs/encoding"; -import { InstantiateMsg, ExecuteMsg, QueryMsg, MigrateMsg, OriginDomainResponse } from "./Hub.types"; -export interface HubMessage { - contractAddress: string; - sender: string; - instantiate: ({ - defaultIsm, - owner - }: { - defaultIsm: string; - owner: string; - }, funds?: Coin[]) => MsgExecuteContractEncodeObject; - migrate: (funds?: Coin[]) => MsgExecuteContractEncodeObject; -} -export class HubMessageComposer implements HubMessage { - sender: string; - contractAddress: string; - - constructor(sender: string, contractAddress: string) { - this.sender = sender; - this.contractAddress = contractAddress; - this.instantiate = this.instantiate.bind(this); - this.migrate = this.migrate.bind(this); - } - - instantiate = ({ - defaultIsm, - owner - }: { - defaultIsm: string; - owner: string; - }, funds?: Coin[]): MsgExecuteContractEncodeObject => { - return { - typeUrl: "/cosmwasm.wasm.v1.MsgExecuteContract", - value: MsgExecuteContract.fromPartial({ - sender: this.sender, - contract: this.contractAddress, - msg: toUtf8(JSON.stringify({ - instantiate: { - default_ism: defaultIsm, - owner - } - })), - funds - }) - }; - }; - migrate = (funds?: Coin[]): MsgExecuteContractEncodeObject => { - return { - typeUrl: "/cosmwasm.wasm.v1.MsgExecuteContract", - value: MsgExecuteContract.fromPartial({ - sender: this.sender, - contract: this.contractAddress, - msg: toUtf8(JSON.stringify({ - migrate: {} - })), - funds - }) - }; - }; -} \ No newline at end of file diff --git a/ts/sdk/src/contracts/Hub.types.ts b/ts/sdk/src/contracts/Hub.types.ts deleted file mode 100644 index 80fa00c1..00000000 --- a/ts/sdk/src/contracts/Hub.types.ts +++ /dev/null @@ -1,25 +0,0 @@ -/** -* This file was automatically generated by @cosmwasm/ts-codegen@0.16.5. -* DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file, -* and run the @cosmwasm/ts-codegen generate command to regenerate this file. -*/ - -export interface InstantiateMsg { - mailbox_code: number; - origin_domain: number; -} -export type ExecuteMsg = { - instantiate: { - default_ism: string; - owner: string; - }; -} | { - migrate: {}; -}; -export type QueryMsg = { - origin_domain: {}; -}; -export interface MigrateMsg {} -export interface OriginDomainResponse { - domain: number; -} \ No newline at end of file diff --git a/ts/sdk/src/contracts/IsmMultisig.client.ts b/ts/sdk/src/contracts/IsmMultisig.client.ts deleted file mode 100644 index 5f6ea397..00000000 --- a/ts/sdk/src/contracts/IsmMultisig.client.ts +++ /dev/null @@ -1,189 +0,0 @@ -/** -* This file was automatically generated by @cosmwasm/ts-codegen@0.16.5. -* DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file, -* and run the @cosmwasm/ts-codegen generate command to regenerate this file. -*/ - -import { CosmWasmClient, SigningCosmWasmClient, ExecuteResult } from "@cosmjs/cosmwasm-stargate"; -import { Coin, StdFee } from "@cosmjs/amino"; -import { InstantiateMsg, ExecuteMsg, Binary, ValidatorSet, ThresholdSet, QueryMsg, HexBinary, MigrateMsg, ISMType, ModuleTypeResponse, VerifyResponse } from "./IsmMultisig.types"; -export interface IsmMultisigReadOnlyInterface { - contractAddress: string; - moduleType: () => Promise; - verify: ({ - message, - metadata - }: { - message: HexBinary; - metadata: HexBinary; - }) => Promise; -} -export class IsmMultisigQueryClient implements IsmMultisigReadOnlyInterface { - client: CosmWasmClient; - contractAddress: string; - - constructor(client: CosmWasmClient, contractAddress: string) { - this.client = client; - this.contractAddress = contractAddress; - this.moduleType = this.moduleType.bind(this); - this.verify = this.verify.bind(this); - } - - moduleType = async (): Promise => { - return this.client.queryContractSmart(this.contractAddress, { - module_type: {} - }); - }; - verify = async ({ - message, - metadata - }: { - message: HexBinary; - metadata: HexBinary; - }): Promise => { - return this.client.queryContractSmart(this.contractAddress, { - verify: { - message, - metadata - } - }); - }; -} -export interface IsmMultisigInterface extends IsmMultisigReadOnlyInterface { - contractAddress: string; - sender: string; - enrollValidator: ({ - set - }: { - set: ValidatorSet; - }, fee?: number | StdFee | "auto", memo?: string, funds?: Coin[]) => Promise; - enrollValidators: ({ - set - }: { - set: ValidatorSet[]; - }, fee?: number | StdFee | "auto", memo?: string, funds?: Coin[]) => Promise; - unenrollValidator: ({ - domain, - validator - }: { - domain: number; - validator: string; - }, fee?: number | StdFee | "auto", memo?: string, funds?: Coin[]) => Promise; - setThreshold: ({ - set - }: { - set: ThresholdSet; - }, fee?: number | StdFee | "auto", memo?: string, funds?: Coin[]) => Promise; - setThresholds: ({ - set - }: { - set: ThresholdSet[]; - }, fee?: number | StdFee | "auto", memo?: string, funds?: Coin[]) => Promise; - initTransferOwnership: ({ - owner - }: { - owner: string; - }, fee?: number | StdFee | "auto", memo?: string, funds?: Coin[]) => Promise; - finishTransferOwnership: (fee?: number | StdFee | "auto", memo?: string, funds?: Coin[]) => Promise; - revokeTransferOwnership: (fee?: number | StdFee | "auto", memo?: string, funds?: Coin[]) => Promise; -} -export class IsmMultisigClient extends IsmMultisigQueryClient implements IsmMultisigInterface { - client: SigningCosmWasmClient; - sender: string; - contractAddress: string; - - constructor(client: SigningCosmWasmClient, sender: string, contractAddress: string) { - super(client, contractAddress); - this.client = client; - this.sender = sender; - this.contractAddress = contractAddress; - this.enrollValidator = this.enrollValidator.bind(this); - this.enrollValidators = this.enrollValidators.bind(this); - this.unenrollValidator = this.unenrollValidator.bind(this); - this.setThreshold = this.setThreshold.bind(this); - this.setThresholds = this.setThresholds.bind(this); - this.initTransferOwnership = this.initTransferOwnership.bind(this); - this.finishTransferOwnership = this.finishTransferOwnership.bind(this); - this.revokeTransferOwnership = this.revokeTransferOwnership.bind(this); - } - - enrollValidator = async ({ - set - }: { - set: ValidatorSet; - }, fee: number | StdFee | "auto" = "auto", memo?: string, funds?: Coin[]): Promise => { - return await this.client.execute(this.sender, this.contractAddress, { - enroll_validator: { - set - } - }, fee, memo, funds); - }; - enrollValidators = async ({ - set - }: { - set: ValidatorSet[]; - }, fee: number | StdFee | "auto" = "auto", memo?: string, funds?: Coin[]): Promise => { - return await this.client.execute(this.sender, this.contractAddress, { - enroll_validators: { - set - } - }, fee, memo, funds); - }; - unenrollValidator = async ({ - domain, - validator - }: { - domain: number; - validator: string; - }, fee: number | StdFee | "auto" = "auto", memo?: string, funds?: Coin[]): Promise => { - return await this.client.execute(this.sender, this.contractAddress, { - unenroll_validator: { - domain, - validator - } - }, fee, memo, funds); - }; - setThreshold = async ({ - set - }: { - set: ThresholdSet; - }, fee: number | StdFee | "auto" = "auto", memo?: string, funds?: Coin[]): Promise => { - return await this.client.execute(this.sender, this.contractAddress, { - set_threshold: { - set - } - }, fee, memo, funds); - }; - setThresholds = async ({ - set - }: { - set: ThresholdSet[]; - }, fee: number | StdFee | "auto" = "auto", memo?: string, funds?: Coin[]): Promise => { - return await this.client.execute(this.sender, this.contractAddress, { - set_thresholds: { - set - } - }, fee, memo, funds); - }; - initTransferOwnership = async ({ - owner - }: { - owner: string; - }, fee: number | StdFee | "auto" = "auto", memo?: string, funds?: Coin[]): Promise => { - return await this.client.execute(this.sender, this.contractAddress, { - init_transfer_ownership: { - owner - } - }, fee, memo, funds); - }; - finishTransferOwnership = async (fee: number | StdFee | "auto" = "auto", memo?: string, funds?: Coin[]): Promise => { - return await this.client.execute(this.sender, this.contractAddress, { - finish_transfer_ownership: {} - }, fee, memo, funds); - }; - revokeTransferOwnership = async (fee: number | StdFee | "auto" = "auto", memo?: string, funds?: Coin[]): Promise => { - return await this.client.execute(this.sender, this.contractAddress, { - revoke_transfer_ownership: {} - }, fee, memo, funds); - }; -} \ No newline at end of file diff --git a/ts/sdk/src/contracts/IsmMultisig.message-composer.ts b/ts/sdk/src/contracts/IsmMultisig.message-composer.ts deleted file mode 100644 index fb0eedf6..00000000 --- a/ts/sdk/src/contracts/IsmMultisig.message-composer.ts +++ /dev/null @@ -1,210 +0,0 @@ -/** -* This file was automatically generated by @cosmwasm/ts-codegen@0.16.5. -* DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file, -* and run the @cosmwasm/ts-codegen generate command to regenerate this file. -*/ - -import { Coin } from "@cosmjs/amino"; -import { MsgExecuteContractEncodeObject } from "cosmwasm"; -import { MsgExecuteContract } from "cosmjs-types/cosmwasm/wasm/v1/tx"; -import { toUtf8 } from "@cosmjs/encoding"; -import { InstantiateMsg, ExecuteMsg, Binary, ValidatorSet, ThresholdSet, QueryMsg, HexBinary, MigrateMsg, ISMType, ModuleTypeResponse, VerifyResponse } from "./IsmMultisig.types"; -export interface IsmMultisigMessage { - contractAddress: string; - sender: string; - enrollValidator: ({ - set - }: { - set: ValidatorSet; - }, funds?: Coin[]) => MsgExecuteContractEncodeObject; - enrollValidators: ({ - set - }: { - set: ValidatorSet[]; - }, funds?: Coin[]) => MsgExecuteContractEncodeObject; - unenrollValidator: ({ - domain, - validator - }: { - domain: number; - validator: string; - }, funds?: Coin[]) => MsgExecuteContractEncodeObject; - setThreshold: ({ - set - }: { - set: ThresholdSet; - }, funds?: Coin[]) => MsgExecuteContractEncodeObject; - setThresholds: ({ - set - }: { - set: ThresholdSet[]; - }, funds?: Coin[]) => MsgExecuteContractEncodeObject; - initTransferOwnership: ({ - owner - }: { - owner: string; - }, funds?: Coin[]) => MsgExecuteContractEncodeObject; - finishTransferOwnership: (funds?: Coin[]) => MsgExecuteContractEncodeObject; - revokeTransferOwnership: (funds?: Coin[]) => MsgExecuteContractEncodeObject; -} -export class IsmMultisigMessageComposer implements IsmMultisigMessage { - sender: string; - contractAddress: string; - - constructor(sender: string, contractAddress: string) { - this.sender = sender; - this.contractAddress = contractAddress; - this.enrollValidator = this.enrollValidator.bind(this); - this.enrollValidators = this.enrollValidators.bind(this); - this.unenrollValidator = this.unenrollValidator.bind(this); - this.setThreshold = this.setThreshold.bind(this); - this.setThresholds = this.setThresholds.bind(this); - this.initTransferOwnership = this.initTransferOwnership.bind(this); - this.finishTransferOwnership = this.finishTransferOwnership.bind(this); - this.revokeTransferOwnership = this.revokeTransferOwnership.bind(this); - } - - enrollValidator = ({ - set - }: { - set: ValidatorSet; - }, funds?: Coin[]): MsgExecuteContractEncodeObject => { - return { - typeUrl: "/cosmwasm.wasm.v1.MsgExecuteContract", - value: MsgExecuteContract.fromPartial({ - sender: this.sender, - contract: this.contractAddress, - msg: toUtf8(JSON.stringify({ - enroll_validator: { - set - } - })), - funds - }) - }; - }; - enrollValidators = ({ - set - }: { - set: ValidatorSet[]; - }, funds?: Coin[]): MsgExecuteContractEncodeObject => { - return { - typeUrl: "/cosmwasm.wasm.v1.MsgExecuteContract", - value: MsgExecuteContract.fromPartial({ - sender: this.sender, - contract: this.contractAddress, - msg: toUtf8(JSON.stringify({ - enroll_validators: { - set - } - })), - funds - }) - }; - }; - unenrollValidator = ({ - domain, - validator - }: { - domain: number; - validator: string; - }, funds?: Coin[]): MsgExecuteContractEncodeObject => { - return { - typeUrl: "/cosmwasm.wasm.v1.MsgExecuteContract", - value: MsgExecuteContract.fromPartial({ - sender: this.sender, - contract: this.contractAddress, - msg: toUtf8(JSON.stringify({ - unenroll_validator: { - domain, - validator - } - })), - funds - }) - }; - }; - setThreshold = ({ - set - }: { - set: ThresholdSet; - }, funds?: Coin[]): MsgExecuteContractEncodeObject => { - return { - typeUrl: "/cosmwasm.wasm.v1.MsgExecuteContract", - value: MsgExecuteContract.fromPartial({ - sender: this.sender, - contract: this.contractAddress, - msg: toUtf8(JSON.stringify({ - set_threshold: { - set - } - })), - funds - }) - }; - }; - setThresholds = ({ - set - }: { - set: ThresholdSet[]; - }, funds?: Coin[]): MsgExecuteContractEncodeObject => { - return { - typeUrl: "/cosmwasm.wasm.v1.MsgExecuteContract", - value: MsgExecuteContract.fromPartial({ - sender: this.sender, - contract: this.contractAddress, - msg: toUtf8(JSON.stringify({ - set_thresholds: { - set - } - })), - funds - }) - }; - }; - initTransferOwnership = ({ - owner - }: { - owner: string; - }, funds?: Coin[]): MsgExecuteContractEncodeObject => { - return { - typeUrl: "/cosmwasm.wasm.v1.MsgExecuteContract", - value: MsgExecuteContract.fromPartial({ - sender: this.sender, - contract: this.contractAddress, - msg: toUtf8(JSON.stringify({ - init_transfer_ownership: { - owner - } - })), - funds - }) - }; - }; - finishTransferOwnership = (funds?: Coin[]): MsgExecuteContractEncodeObject => { - return { - typeUrl: "/cosmwasm.wasm.v1.MsgExecuteContract", - value: MsgExecuteContract.fromPartial({ - sender: this.sender, - contract: this.contractAddress, - msg: toUtf8(JSON.stringify({ - finish_transfer_ownership: {} - })), - funds - }) - }; - }; - revokeTransferOwnership = (funds?: Coin[]): MsgExecuteContractEncodeObject => { - return { - typeUrl: "/cosmwasm.wasm.v1.MsgExecuteContract", - value: MsgExecuteContract.fromPartial({ - sender: this.sender, - contract: this.contractAddress, - msg: toUtf8(JSON.stringify({ - revoke_transfer_ownership: {} - })), - funds - }) - }; - }; -} \ No newline at end of file diff --git a/ts/sdk/src/contracts/IsmMultisig.types.ts b/ts/sdk/src/contracts/IsmMultisig.types.ts deleted file mode 100644 index 9ae1d242..00000000 --- a/ts/sdk/src/contracts/IsmMultisig.types.ts +++ /dev/null @@ -1,67 +0,0 @@ -/** -* This file was automatically generated by @cosmwasm/ts-codegen@0.16.5. -* DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file, -* and run the @cosmwasm/ts-codegen generate command to regenerate this file. -*/ - -export interface InstantiateMsg { - chain_hpl: string; - owner: string; -} -export type ExecuteMsg = { - enroll_validator: { - set: ValidatorSet; - }; -} | { - enroll_validators: { - set: ValidatorSet[]; - }; -} | { - unenroll_validator: { - domain: number; - validator: string; - }; -} | { - set_threshold: { - set: ThresholdSet; - }; -} | { - set_thresholds: { - set: ThresholdSet[]; - }; -} | { - init_transfer_ownership: { - owner: string; - }; -} | { - finish_transfer_ownership: []; -} | { - revoke_transfer_ownership: []; -}; -export type Binary = string; -export interface ValidatorSet { - domain: number; - validator: string; - validator_pubkey: Binary; -} -export interface ThresholdSet { - domain: number; - threshold: number; -} -export type QueryMsg = { - module_type: {}; -} | { - verify: { - message: HexBinary; - metadata: HexBinary; - }; -}; -export type HexBinary = string; -export interface MigrateMsg {} -export type ISMType = "unused" | "routing" | "aggregation" | "legacy_multisig" | "multisig" | "owned"; -export interface ModuleTypeResponse { - type: ISMType; -} -export interface VerifyResponse { - verified: boolean; -} \ No newline at end of file diff --git a/ts/sdk/src/contracts/Mailbox.client.ts b/ts/sdk/src/contracts/Mailbox.client.ts deleted file mode 100644 index c040af09..00000000 --- a/ts/sdk/src/contracts/Mailbox.client.ts +++ /dev/null @@ -1,154 +0,0 @@ -/** -* This file was automatically generated by @cosmwasm/ts-codegen@0.16.5. -* DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file, -* and run the @cosmwasm/ts-codegen generate command to regenerate this file. -*/ - -import { CosmWasmClient, SigningCosmWasmClient, ExecuteResult } from "@cosmjs/cosmwasm-stargate"; -import { Coin, StdFee } from "@cosmjs/amino"; -import { InstantiateMsg, ExecuteMsg, HexBinary, QueryMsg, MigrateMsg, CheckPointResponse, CountResponse, NonceResponse, PausedResponse, RootResponse } from "./Mailbox.types"; -export interface MailboxReadOnlyInterface { - contractAddress: string; - root: () => Promise; - count: () => Promise; - checkPoint: () => Promise; - paused: () => Promise; - nonce: () => Promise; -} -export class MailboxQueryClient implements MailboxReadOnlyInterface { - client: CosmWasmClient; - contractAddress: string; - - constructor(client: CosmWasmClient, contractAddress: string) { - this.client = client; - this.contractAddress = contractAddress; - this.root = this.root.bind(this); - this.count = this.count.bind(this); - this.checkPoint = this.checkPoint.bind(this); - this.paused = this.paused.bind(this); - this.nonce = this.nonce.bind(this); - } - - root = async (): Promise => { - return this.client.queryContractSmart(this.contractAddress, { - root: {} - }); - }; - count = async (): Promise => { - return this.client.queryContractSmart(this.contractAddress, { - count: {} - }); - }; - checkPoint = async (): Promise => { - return this.client.queryContractSmart(this.contractAddress, { - check_point: {} - }); - }; - paused = async (): Promise => { - return this.client.queryContractSmart(this.contractAddress, { - paused: {} - }); - }; - nonce = async (): Promise => { - return this.client.queryContractSmart(this.contractAddress, { - nonce: {} - }); - }; -} -export interface MailboxInterface extends MailboxReadOnlyInterface { - contractAddress: string; - sender: string; - pause: (fee?: number | StdFee | "auto", memo?: string, funds?: Coin[]) => Promise; - unpause: (fee?: number | StdFee | "auto", memo?: string, funds?: Coin[]) => Promise; - setDefaultISM: ({ - ism - }: { - ism: string; - }, fee?: number | StdFee | "auto", memo?: string, funds?: Coin[]) => Promise; - dispatch: ({ - destDomain, - msgBody, - recipientAddr - }: { - destDomain: number; - msgBody: HexBinary; - recipientAddr: HexBinary; - }, fee?: number | StdFee | "auto", memo?: string, funds?: Coin[]) => Promise; - process: ({ - message, - metadata - }: { - message: HexBinary; - metadata: HexBinary; - }, fee?: number | StdFee | "auto", memo?: string, funds?: Coin[]) => Promise; -} -export class MailboxClient extends MailboxQueryClient implements MailboxInterface { - client: SigningCosmWasmClient; - sender: string; - contractAddress: string; - - constructor(client: SigningCosmWasmClient, sender: string, contractAddress: string) { - super(client, contractAddress); - this.client = client; - this.sender = sender; - this.contractAddress = contractAddress; - this.pause = this.pause.bind(this); - this.unpause = this.unpause.bind(this); - this.setDefaultISM = this.setDefaultISM.bind(this); - this.dispatch = this.dispatch.bind(this); - this.process = this.process.bind(this); - } - - pause = async (fee: number | StdFee | "auto" = "auto", memo?: string, funds?: Coin[]): Promise => { - return await this.client.execute(this.sender, this.contractAddress, { - pause: {} - }, fee, memo, funds); - }; - unpause = async (fee: number | StdFee | "auto" = "auto", memo?: string, funds?: Coin[]): Promise => { - return await this.client.execute(this.sender, this.contractAddress, { - unpause: {} - }, fee, memo, funds); - }; - setDefaultISM = async ({ - ism - }: { - ism: string; - }, fee: number | StdFee | "auto" = "auto", memo?: string, funds?: Coin[]): Promise => { - return await this.client.execute(this.sender, this.contractAddress, { - set_default_i_s_m: { - ism - } - }, fee, memo, funds); - }; - dispatch = async ({ - destDomain, - msgBody, - recipientAddr - }: { - destDomain: number; - msgBody: HexBinary; - recipientAddr: HexBinary; - }, fee: number | StdFee | "auto" = "auto", memo?: string, funds?: Coin[]): Promise => { - return await this.client.execute(this.sender, this.contractAddress, { - dispatch: { - dest_domain: destDomain, - msg_body: msgBody, - recipient_addr: recipientAddr - } - }, fee, memo, funds); - }; - process = async ({ - message, - metadata - }: { - message: HexBinary; - metadata: HexBinary; - }, fee: number | StdFee | "auto" = "auto", memo?: string, funds?: Coin[]): Promise => { - return await this.client.execute(this.sender, this.contractAddress, { - process: { - message, - metadata - } - }, fee, memo, funds); - }; -} \ No newline at end of file diff --git a/ts/sdk/src/contracts/Mailbox.message-composer.ts b/ts/sdk/src/contracts/Mailbox.message-composer.ts deleted file mode 100644 index f99faf24..00000000 --- a/ts/sdk/src/contracts/Mailbox.message-composer.ts +++ /dev/null @@ -1,145 +0,0 @@ -/** -* This file was automatically generated by @cosmwasm/ts-codegen@0.16.5. -* DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file, -* and run the @cosmwasm/ts-codegen generate command to regenerate this file. -*/ - -import { Coin } from "@cosmjs/amino"; -import { MsgExecuteContractEncodeObject } from "cosmwasm"; -import { MsgExecuteContract } from "cosmjs-types/cosmwasm/wasm/v1/tx"; -import { toUtf8 } from "@cosmjs/encoding"; -import { InstantiateMsg, ExecuteMsg, HexBinary, QueryMsg, MigrateMsg, CheckPointResponse, CountResponse, NonceResponse, PausedResponse, RootResponse } from "./Mailbox.types"; -export interface MailboxMessage { - contractAddress: string; - sender: string; - pause: (funds?: Coin[]) => MsgExecuteContractEncodeObject; - unpause: (funds?: Coin[]) => MsgExecuteContractEncodeObject; - setDefaultISM: ({ - ism - }: { - ism: string; - }, funds?: Coin[]) => MsgExecuteContractEncodeObject; - dispatch: ({ - destDomain, - msgBody, - recipientAddr - }: { - destDomain: number; - msgBody: HexBinary; - recipientAddr: HexBinary; - }, funds?: Coin[]) => MsgExecuteContractEncodeObject; - process: ({ - message, - metadata - }: { - message: HexBinary; - metadata: HexBinary; - }, funds?: Coin[]) => MsgExecuteContractEncodeObject; -} -export class MailboxMessageComposer implements MailboxMessage { - sender: string; - contractAddress: string; - - constructor(sender: string, contractAddress: string) { - this.sender = sender; - this.contractAddress = contractAddress; - this.pause = this.pause.bind(this); - this.unpause = this.unpause.bind(this); - this.setDefaultISM = this.setDefaultISM.bind(this); - this.dispatch = this.dispatch.bind(this); - this.process = this.process.bind(this); - } - - pause = (funds?: Coin[]): MsgExecuteContractEncodeObject => { - return { - typeUrl: "/cosmwasm.wasm.v1.MsgExecuteContract", - value: MsgExecuteContract.fromPartial({ - sender: this.sender, - contract: this.contractAddress, - msg: toUtf8(JSON.stringify({ - pause: {} - })), - funds - }) - }; - }; - unpause = (funds?: Coin[]): MsgExecuteContractEncodeObject => { - return { - typeUrl: "/cosmwasm.wasm.v1.MsgExecuteContract", - value: MsgExecuteContract.fromPartial({ - sender: this.sender, - contract: this.contractAddress, - msg: toUtf8(JSON.stringify({ - unpause: {} - })), - funds - }) - }; - }; - setDefaultISM = ({ - ism - }: { - ism: string; - }, funds?: Coin[]): MsgExecuteContractEncodeObject => { - return { - typeUrl: "/cosmwasm.wasm.v1.MsgExecuteContract", - value: MsgExecuteContract.fromPartial({ - sender: this.sender, - contract: this.contractAddress, - msg: toUtf8(JSON.stringify({ - set_default_i_s_m: { - ism - } - })), - funds - }) - }; - }; - dispatch = ({ - destDomain, - msgBody, - recipientAddr - }: { - destDomain: number; - msgBody: HexBinary; - recipientAddr: HexBinary; - }, funds?: Coin[]): MsgExecuteContractEncodeObject => { - return { - typeUrl: "/cosmwasm.wasm.v1.MsgExecuteContract", - value: MsgExecuteContract.fromPartial({ - sender: this.sender, - contract: this.contractAddress, - msg: toUtf8(JSON.stringify({ - dispatch: { - dest_domain: destDomain, - msg_body: msgBody, - recipient_addr: recipientAddr - } - })), - funds - }) - }; - }; - process = ({ - message, - metadata - }: { - message: HexBinary; - metadata: HexBinary; - }, funds?: Coin[]): MsgExecuteContractEncodeObject => { - return { - typeUrl: "/cosmwasm.wasm.v1.MsgExecuteContract", - value: MsgExecuteContract.fromPartial({ - sender: this.sender, - contract: this.contractAddress, - msg: toUtf8(JSON.stringify({ - process: { - message, - metadata - } - })), - funds - }) - }; - }; -} \ No newline at end of file diff --git a/ts/sdk/src/contracts/Mailbox.types.ts b/ts/sdk/src/contracts/Mailbox.types.ts deleted file mode 100644 index 7a7d5d98..00000000 --- a/ts/sdk/src/contracts/Mailbox.types.ts +++ /dev/null @@ -1,59 +0,0 @@ -/** -* This file was automatically generated by @cosmwasm/ts-codegen@0.16.5. -* DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file, -* and run the @cosmwasm/ts-codegen generate command to regenerate this file. -*/ - -export interface InstantiateMsg { - default_ism: string; - owner: string; -} -export type ExecuteMsg = { - pause: {}; -} | { - unpause: {}; -} | { - set_default_i_s_m: { - ism: string; - }; -} | { - dispatch: { - dest_domain: number; - msg_body: HexBinary; - recipient_addr: HexBinary; - }; -} | { - process: { - message: HexBinary; - metadata: HexBinary; - }; -}; -export type HexBinary = string; -export type QueryMsg = { - root: {}; -} | { - count: {}; -} | { - check_point: {}; -} | { - paused: {}; -} | { - nonce: {}; -}; -export interface MigrateMsg {} -export interface CheckPointResponse { - count: number; - root: HexBinary; -} -export interface CountResponse { - count: number; -} -export interface NonceResponse { - nonce: number; -} -export interface PausedResponse { - paused: boolean; -} -export interface RootResponse { - root: HexBinary; -} \ No newline at end of file diff --git a/ts/sdk/src/contracts/Multicall.client.ts b/ts/sdk/src/contracts/Multicall.client.ts deleted file mode 100644 index f0f9556e..00000000 --- a/ts/sdk/src/contracts/Multicall.client.ts +++ /dev/null @@ -1,100 +0,0 @@ -/** -* This file was automatically generated by @cosmwasm/ts-codegen@0.16.5. -* DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file, -* and run the @cosmwasm/ts-codegen generate command to regenerate this file. -*/ - -import { CosmWasmClient, SigningCosmWasmClient, ExecuteResult } from "@cosmjs/cosmwasm-stargate"; -import { StdFee } from "@cosmjs/amino"; -import { InstantiateMsg, ExecuteMsg, CosmosMsgForEmpty, BankMsg, Uint128, StakingMsg, DistributionMsg, Binary, IbcMsg, Timestamp, Uint64, WasmMsg, GovMsg, VoteOption, HexBinary, Coin, Empty, IbcTimeout, IbcTimeoutBlock, HandleMsg, QueryMsg, StaticCall, MigrateMsg, AggregateResponse } from "./Multicall.types"; -export interface MulticallReadOnlyInterface { - contractAddress: string; - aggregateStatic: ({ - req - }: { - req: StaticCall[]; - }) => Promise; -} -export class MulticallQueryClient implements MulticallReadOnlyInterface { - client: CosmWasmClient; - contractAddress: string; - - constructor(client: CosmWasmClient, contractAddress: string) { - this.client = client; - this.contractAddress = contractAddress; - this.aggregateStatic = this.aggregateStatic.bind(this); - } - - aggregateStatic = async ({ - req - }: { - req: StaticCall[]; - }): Promise => { - return this.client.queryContractSmart(this.contractAddress, { - aggregate_static: { - req - } - }); - }; -} -export interface MulticallInterface extends MulticallReadOnlyInterface { - contractAddress: string; - sender: string; - aggregate: ({ - req - }: { - req: CosmosMsgForEmpty[]; - }, fee?: number | StdFee | "auto", memo?: string, funds?: Coin[]) => Promise; - handle: ({ - body, - origin, - sender - }: { - body: HexBinary; - origin: number; - sender: HexBinary; - }, fee?: number | StdFee | "auto", memo?: string, funds?: Coin[]) => Promise; -} -export class MulticallClient extends MulticallQueryClient implements MulticallInterface { - client: SigningCosmWasmClient; - sender: string; - contractAddress: string; - - constructor(client: SigningCosmWasmClient, sender: string, contractAddress: string) { - super(client, contractAddress); - this.client = client; - this.sender = sender; - this.contractAddress = contractAddress; - this.aggregate = this.aggregate.bind(this); - this.handle = this.handle.bind(this); - } - - aggregate = async ({ - req - }: { - req: CosmosMsgForEmpty[]; - }, fee: number | StdFee | "auto" = "auto", memo?: string, funds?: Coin[]): Promise => { - return await this.client.execute(this.sender, this.contractAddress, { - aggregate: { - req - } - }, fee, memo, funds); - }; - handle = async ({ - body, - origin, - sender - }: { - body: HexBinary; - origin: number; - sender: HexBinary; - }, fee: number | StdFee | "auto" = "auto", memo?: string, funds?: Coin[]): Promise => { - return await this.client.execute(this.sender, this.contractAddress, { - handle: { - body, - origin, - sender - } - }, fee, memo, funds); - }; -} \ No newline at end of file diff --git a/ts/sdk/src/contracts/Multicall.message-composer.ts b/ts/sdk/src/contracts/Multicall.message-composer.ts deleted file mode 100644 index ae170ff7..00000000 --- a/ts/sdk/src/contracts/Multicall.message-composer.ts +++ /dev/null @@ -1,84 +0,0 @@ -/** -* This file was automatically generated by @cosmwasm/ts-codegen@0.16.5. -* DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file, -* and run the @cosmwasm/ts-codegen generate command to regenerate this file. -*/ - -import { MsgExecuteContractEncodeObject } from "cosmwasm"; -import { MsgExecuteContract } from "cosmjs-types/cosmwasm/wasm/v1/tx"; -import { toUtf8 } from "@cosmjs/encoding"; -import { InstantiateMsg, ExecuteMsg, CosmosMsgForEmpty, BankMsg, Uint128, StakingMsg, DistributionMsg, Binary, IbcMsg, Timestamp, Uint64, WasmMsg, GovMsg, VoteOption, HexBinary, Coin, Empty, IbcTimeout, IbcTimeoutBlock, HandleMsg, QueryMsg, StaticCall, MigrateMsg, AggregateResponse } from "./Multicall.types"; -export interface MulticallMessage { - contractAddress: string; - sender: string; - aggregate: ({ - req - }: { - req: CosmosMsgForEmpty[]; - }, funds?: Coin[]) => MsgExecuteContractEncodeObject; - handle: ({ - body, - origin, - sender - }: { - body: HexBinary; - origin: number; - sender: HexBinary; - }, funds?: Coin[]) => MsgExecuteContractEncodeObject; -} -export class MulticallMessageComposer implements MulticallMessage { - sender: string; - contractAddress: string; - - constructor(sender: string, contractAddress: string) { - this.sender = sender; - this.contractAddress = contractAddress; - this.aggregate = this.aggregate.bind(this); - this.handle = this.handle.bind(this); - } - - aggregate = ({ - req - }: { - req: CosmosMsgForEmpty[]; - }, funds?: Coin[]): MsgExecuteContractEncodeObject => { - return { - typeUrl: "/cosmwasm.wasm.v1.MsgExecuteContract", - value: MsgExecuteContract.fromPartial({ - sender: this.sender, - contract: this.contractAddress, - msg: toUtf8(JSON.stringify({ - aggregate: { - req - } - })), - funds - }) - }; - }; - handle = ({ - body, - origin, - sender - }: { - body: HexBinary; - origin: number; - sender: HexBinary; - }, funds?: Coin[]): MsgExecuteContractEncodeObject => { - return { - typeUrl: "/cosmwasm.wasm.v1.MsgExecuteContract", - value: MsgExecuteContract.fromPartial({ - sender: this.sender, - contract: this.contractAddress, - msg: toUtf8(JSON.stringify({ - handle: { - body, - origin, - sender - } - })), - funds - }) - }; - }; -} \ No newline at end of file diff --git a/ts/sdk/src/contracts/Multicall.types.ts b/ts/sdk/src/contracts/Multicall.types.ts deleted file mode 100644 index c2343d5f..00000000 --- a/ts/sdk/src/contracts/Multicall.types.ts +++ /dev/null @@ -1,186 +0,0 @@ -/** -* This file was automatically generated by @cosmwasm/ts-codegen@0.16.5. -* DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file, -* and run the @cosmwasm/ts-codegen generate command to regenerate this file. -*/ - -export interface InstantiateMsg { - mailbox: string; - owner: string; -} -export type ExecuteMsg = { - aggregate: { - req: CosmosMsgForEmpty[]; - }; -} | { - handle: HandleMsg; -}; -export type CosmosMsgForEmpty = { - bank: BankMsg; -} | { - custom: Empty; -} | { - staking: StakingMsg; -} | { - distribution: DistributionMsg; -} | { - stargate: { - type_url: string; - value: Binary; - [k: string]: unknown; - }; -} | { - ibc: IbcMsg; -} | { - wasm: WasmMsg; -} | { - gov: GovMsg; -}; -export type BankMsg = { - send: { - amount: Coin[]; - to_address: string; - [k: string]: unknown; - }; -} | { - burn: { - amount: Coin[]; - [k: string]: unknown; - }; -}; -export type Uint128 = string; -export type StakingMsg = { - delegate: { - amount: Coin; - validator: string; - [k: string]: unknown; - }; -} | { - undelegate: { - amount: Coin; - validator: string; - [k: string]: unknown; - }; -} | { - redelegate: { - amount: Coin; - dst_validator: string; - src_validator: string; - [k: string]: unknown; - }; -}; -export type DistributionMsg = { - set_withdraw_address: { - address: string; - [k: string]: unknown; - }; -} | { - withdraw_delegator_reward: { - validator: string; - [k: string]: unknown; - }; -}; -export type Binary = string; -export type IbcMsg = { - transfer: { - amount: Coin; - channel_id: string; - timeout: IbcTimeout; - to_address: string; - [k: string]: unknown; - }; -} | { - send_packet: { - channel_id: string; - data: Binary; - timeout: IbcTimeout; - [k: string]: unknown; - }; -} | { - close_channel: { - channel_id: string; - [k: string]: unknown; - }; -}; -export type Timestamp = Uint64; -export type Uint64 = string; -export type WasmMsg = { - execute: { - contract_addr: string; - funds: Coin[]; - msg: Binary; - [k: string]: unknown; - }; -} | { - instantiate: { - admin?: string | null; - code_id: number; - funds: Coin[]; - label: string; - msg: Binary; - [k: string]: unknown; - }; -} | { - migrate: { - contract_addr: string; - msg: Binary; - new_code_id: number; - [k: string]: unknown; - }; -} | { - update_admin: { - admin: string; - contract_addr: string; - [k: string]: unknown; - }; -} | { - clear_admin: { - contract_addr: string; - [k: string]: unknown; - }; -}; -export type GovMsg = { - vote: { - proposal_id: number; - vote: VoteOption; - [k: string]: unknown; - }; -}; -export type VoteOption = "yes" | "no" | "abstain" | "no_with_veto"; -export type HexBinary = string; -export interface Coin { - amount: Uint128; - denom: string; - [k: string]: unknown; -} -export interface Empty { - [k: string]: unknown; -} -export interface IbcTimeout { - block?: IbcTimeoutBlock | null; - timestamp?: Timestamp | null; - [k: string]: unknown; -} -export interface IbcTimeoutBlock { - height: number; - revision: number; - [k: string]: unknown; -} -export interface HandleMsg { - body: HexBinary; - origin: number; - sender: HexBinary; -} -export type QueryMsg = { - aggregate_static: { - req: StaticCall[]; - }; -}; -export interface StaticCall { - data: Binary; - path: string; -} -export interface MigrateMsg {} -export interface AggregateResponse { - resp: Binary[]; -} \ No newline at end of file diff --git a/ts/sdk/src/contracts/index.ts b/ts/sdk/src/contracts/index.ts deleted file mode 100644 index a678f866..00000000 --- a/ts/sdk/src/contracts/index.ts +++ /dev/null @@ -1,36 +0,0 @@ -/** -* This file was automatically generated by @cosmwasm/ts-codegen@0.16.5. -* DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file, -* and run the @cosmwasm/ts-codegen generate command to regenerate this file. -*/ - -import * as _0 from "./Hub.types"; -import * as _1 from "./Hub.client"; -import * as _2 from "./Hub.message-composer"; -import * as _3 from "./IsmMultisig.types"; -import * as _4 from "./IsmMultisig.client"; -import * as _5 from "./IsmMultisig.message-composer"; -import * as _6 from "./Mailbox.types"; -import * as _7 from "./Mailbox.client"; -import * as _8 from "./Mailbox.message-composer"; -import * as _9 from "./Multicall.types"; -import * as _10 from "./Multicall.client"; -import * as _11 from "./Multicall.message-composer"; -export namespace contracts { - export const Hub = { ..._0, - ..._1, - ..._2 - }; - export const IsmMultisig = { ..._3, - ..._4, - ..._5 - }; - export const Mailbox = { ..._6, - ..._7, - ..._8 - }; - export const Multicall = { ..._9, - ..._10, - ..._11 - }; -} \ No newline at end of file diff --git a/ts/sdk/src/index.ts b/ts/sdk/src/index.ts deleted file mode 100644 index 4b246104..00000000 --- a/ts/sdk/src/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { contracts } from "./contracts"; - -export default contracts; diff --git a/ts/sdk/tsconfig.bundle.json b/ts/sdk/tsconfig.bundle.json deleted file mode 100644 index 7c08eb76..00000000 --- a/ts/sdk/tsconfig.bundle.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "extends": "./tsconfig.json", - "compilerOptions": { - // Transpilation settings. - "module": "ES2020", - "target": "ES5", - - // Output settings. - "charset": "utf-8", - "newLine": "LF", - "sourceMap": true, - - // Type declaration settings. - "declaration": true, - "declarationDir": "types/", - "declarationMap": true - }, - "exclude": ["./src/**/*.test.ts", "./src/**/*.test.tsx"] -} diff --git a/ts/sdk/tsconfig.json b/ts/sdk/tsconfig.json deleted file mode 100644 index 8da3d7ef..00000000 --- a/ts/sdk/tsconfig.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "compilerOptions": { - // React.js JSX settings. - "jsx": "react", - "jsxFactory": "React.createElement", - "jsxFragmentFactory": "React.Fragment", - - // Module settings. - "allowSyntheticDefaultImports": true, - "esModuleInterop": true, - "isolatedModules": true, - "moduleResolution": "node", - "resolveJsonModule": true, - - // Strictness and quality settings. - "alwaysStrict": true, - "exactOptionalPropertyTypes": true, - "forceConsistentCasingInFileNames": true, - // "importsNotUsedAsValues": "error", - "noFallthroughCasesInSwitch": true, - // "noImplicitOverride": true, - "noImplicitReturns": true, - "noPropertyAccessFromIndexSignature": true, - "noUncheckedIndexedAccess": true, - "noUnusedLocals": false, // temp fix for current ts-codegen version that does not optimize imports - "noUnusedParameters": true, - "strict": true, - - // Type-checking settings. - "lib": ["ES2020"], - "skipDefaultLibCheck": true, - "skipLibCheck": true, - "types": ["jest"] - }, - "include": ["./src/**/*.ts", "./src/**/*.tsx"], - - // ts-node stuffs - "ts-node": { - "swc": true - } -} diff --git a/ts/sdk/typedoc.json b/ts/sdk/typedoc.json deleted file mode 100644 index be67ee9b..00000000 --- a/ts/sdk/typedoc.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "out": "./docs", - "name": "cw-hyperlane", - "theme": "markdown", - "readme": "none", - "tsconfig": "./tsconfig.bundle.json" -} \ No newline at end of file diff --git a/ts/sdk/types/contracts/Hub.client.d.ts b/ts/sdk/types/contracts/Hub.client.d.ts deleted file mode 100644 index 4aaf8ad2..00000000 --- a/ts/sdk/types/contracts/Hub.client.d.ts +++ /dev/null @@ -1,39 +0,0 @@ -/** -* This file was automatically generated by @cosmwasm/ts-codegen@0.16.5. -* DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file, -* and run the @cosmwasm/ts-codegen generate command to regenerate this file. -*/ -import { CosmWasmClient, SigningCosmWasmClient, ExecuteResult } from "@cosmjs/cosmwasm-stargate"; -import { Coin, StdFee } from "@cosmjs/amino"; -import { OriginDomainResponse } from "./Hub.types"; -export interface HubReadOnlyInterface { - contractAddress: string; - originDomain: () => Promise; -} -export declare class HubQueryClient implements HubReadOnlyInterface { - client: CosmWasmClient; - contractAddress: string; - constructor(client: CosmWasmClient, contractAddress: string); - originDomain: () => Promise; -} -export interface HubInterface extends HubReadOnlyInterface { - contractAddress: string; - sender: string; - instantiate: ({ defaultIsm, owner }: { - defaultIsm: string; - owner: string; - }, fee?: number | StdFee | "auto", memo?: string, funds?: Coin[]) => Promise; - migrate: (fee?: number | StdFee | "auto", memo?: string, funds?: Coin[]) => Promise; -} -export declare class HubClient extends HubQueryClient implements HubInterface { - client: SigningCosmWasmClient; - sender: string; - contractAddress: string; - constructor(client: SigningCosmWasmClient, sender: string, contractAddress: string); - instantiate: ({ defaultIsm, owner }: { - defaultIsm: string; - owner: string; - }, fee?: number | StdFee | "auto", memo?: string, funds?: Coin[]) => Promise; - migrate: (fee?: number | StdFee | "auto", memo?: string, funds?: Coin[]) => Promise; -} -//# sourceMappingURL=Hub.client.d.ts.map \ No newline at end of file diff --git a/ts/sdk/types/contracts/Hub.client.d.ts.map b/ts/sdk/types/contracts/Hub.client.d.ts.map deleted file mode 100644 index a05649b3..00000000 --- a/ts/sdk/types/contracts/Hub.client.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"Hub.client.d.ts","sourceRoot":"","sources":["../../src/contracts/Hub.client.ts"],"names":[],"mappings":"AAAA;;;;EAIE;AAEF,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AACjG,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAoD,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACrG,MAAM,WAAW,oBAAoB;IACnC,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,OAAO,CAAC,oBAAoB,CAAC,CAAC;CACnD;AACD,qBAAa,cAAe,YAAW,oBAAoB;IACzD,MAAM,EAAE,cAAc,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;gBAEZ,MAAM,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM;IAM3D,YAAY,QAAa,QAAQ,oBAAoB,CAAC,CAIpD;CACH;AACD,MAAM,WAAW,YAAa,SAAQ,oBAAoB;IACxD,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,CAAC,EACZ,UAAU,EACV,KAAK,EACN,EAAE;QACD,UAAU,EAAE,MAAM,CAAC;QACnB,KAAK,EAAE,MAAM,CAAC;KACf,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,IAAI,EAAE,KAAK,OAAO,CAAC,aAAa,CAAC,CAAC;IAC5F,OAAO,EAAE,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,IAAI,EAAE,KAAK,OAAO,CAAC,aAAa,CAAC,CAAC;CACpG;AACD,qBAAa,SAAU,SAAQ,cAAe,YAAW,YAAY;IACnE,MAAM,EAAE,qBAAqB,CAAC;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,MAAM,CAAC;gBAEZ,MAAM,EAAE,qBAAqB,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM;IASlF,WAAW;oBAIG,MAAM;eACX,MAAM;aACP,MAAM,GAAG,MAAM,GAAG,MAAM,SAAkB,MAAM,UAAU,IAAI,EAAE,KAAG,QAAQ,aAAa,CAAC,CAO/F;IACF,OAAO,SAAe,MAAM,GAAG,MAAM,GAAG,MAAM,SAAkB,MAAM,UAAU,IAAI,EAAE,KAAG,QAAQ,aAAa,CAAC,CAI7G;CACH"} \ No newline at end of file diff --git a/ts/sdk/types/contracts/Hub.message-composer.d.ts b/ts/sdk/types/contracts/Hub.message-composer.d.ts deleted file mode 100644 index b76720d7..00000000 --- a/ts/sdk/types/contracts/Hub.message-composer.d.ts +++ /dev/null @@ -1,27 +0,0 @@ -/** -* This file was automatically generated by @cosmwasm/ts-codegen@0.16.5. -* DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file, -* and run the @cosmwasm/ts-codegen generate command to regenerate this file. -*/ -import { Coin } from "@cosmjs/amino"; -import { MsgExecuteContractEncodeObject } from "cosmwasm"; -export interface HubMessage { - contractAddress: string; - sender: string; - instantiate: ({ defaultIsm, owner }: { - defaultIsm: string; - owner: string; - }, funds?: Coin[]) => MsgExecuteContractEncodeObject; - migrate: (funds?: Coin[]) => MsgExecuteContractEncodeObject; -} -export declare class HubMessageComposer implements HubMessage { - sender: string; - contractAddress: string; - constructor(sender: string, contractAddress: string); - instantiate: ({ defaultIsm, owner }: { - defaultIsm: string; - owner: string; - }, funds?: Coin[]) => MsgExecuteContractEncodeObject; - migrate: (funds?: Coin[]) => MsgExecuteContractEncodeObject; -} -//# sourceMappingURL=Hub.message-composer.d.ts.map \ No newline at end of file diff --git a/ts/sdk/types/contracts/Hub.message-composer.d.ts.map b/ts/sdk/types/contracts/Hub.message-composer.d.ts.map deleted file mode 100644 index 24a9a23b..00000000 --- a/ts/sdk/types/contracts/Hub.message-composer.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"Hub.message-composer.d.ts","sourceRoot":"","sources":["../../src/contracts/Hub.message-composer.ts"],"names":[],"mappings":"AAAA;;;;EAIE;AAEF,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,EAAE,8BAA8B,EAAE,MAAM,UAAU,CAAC;AAI1D,MAAM,WAAW,UAAU;IACzB,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,CAAC,EACZ,UAAU,EACV,KAAK,EACN,EAAE;QACD,UAAU,EAAE,MAAM,CAAC;QACnB,KAAK,EAAE,MAAM,CAAC;KACf,EAAE,KAAK,CAAC,EAAE,IAAI,EAAE,KAAK,8BAA8B,CAAC;IACrD,OAAO,EAAE,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,KAAK,8BAA8B,CAAC;CAC7D;AACD,qBAAa,kBAAmB,YAAW,UAAU;IACnD,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,MAAM,CAAC;gBAEZ,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM;IAOnD,WAAW;oBAIG,MAAM;eACX,MAAM;eACJ,IAAI,EAAE,KAAG,8BAA8B,CAehD;IACF,OAAO,WAAY,IAAI,EAAE,KAAG,8BAA8B,CAYxD;CACH"} \ No newline at end of file diff --git a/ts/sdk/types/contracts/Hub.types.d.ts b/ts/sdk/types/contracts/Hub.types.d.ts deleted file mode 100644 index d560a729..00000000 --- a/ts/sdk/types/contracts/Hub.types.d.ts +++ /dev/null @@ -1,26 +0,0 @@ -/** -* This file was automatically generated by @cosmwasm/ts-codegen@0.16.5. -* DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file, -* and run the @cosmwasm/ts-codegen generate command to regenerate this file. -*/ -export interface InstantiateMsg { - mailbox_code: number; - origin_domain: number; -} -export type ExecuteMsg = { - instantiate: { - default_ism: string; - owner: string; - }; -} | { - migrate: {}; -}; -export type QueryMsg = { - origin_domain: {}; -}; -export interface MigrateMsg { -} -export interface OriginDomainResponse { - domain: number; -} -//# sourceMappingURL=Hub.types.d.ts.map \ No newline at end of file diff --git a/ts/sdk/types/contracts/Hub.types.d.ts.map b/ts/sdk/types/contracts/Hub.types.d.ts.map deleted file mode 100644 index d877c8b0..00000000 --- a/ts/sdk/types/contracts/Hub.types.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"Hub.types.d.ts","sourceRoot":"","sources":["../../src/contracts/Hub.types.ts"],"names":[],"mappings":"AAAA;;;;EAIE;AAEF,MAAM,WAAW,cAAc;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;CACvB;AACD,MAAM,MAAM,UAAU,GAAG;IACvB,WAAW,EAAE;QACX,WAAW,EAAE,MAAM,CAAC;QACpB,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;CACH,GAAG;IACF,OAAO,EAAE,EAAE,CAAC;CACb,CAAC;AACF,MAAM,MAAM,QAAQ,GAAG;IACrB,aAAa,EAAE,EAAE,CAAC;CACnB,CAAC;AACF,MAAM,WAAW,UAAU;CAAG;AAC9B,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAC;CAChB"} \ No newline at end of file diff --git a/ts/sdk/types/contracts/IsmMultisig.client.d.ts b/ts/sdk/types/contracts/IsmMultisig.client.d.ts deleted file mode 100644 index 2cd77325..00000000 --- a/ts/sdk/types/contracts/IsmMultisig.client.d.ts +++ /dev/null @@ -1,79 +0,0 @@ -/** -* This file was automatically generated by @cosmwasm/ts-codegen@0.16.5. -* DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file, -* and run the @cosmwasm/ts-codegen generate command to regenerate this file. -*/ -import { CosmWasmClient, SigningCosmWasmClient, ExecuteResult } from "@cosmjs/cosmwasm-stargate"; -import { Coin, StdFee } from "@cosmjs/amino"; -import { ValidatorSet, ThresholdSet, HexBinary, ModuleTypeResponse, VerifyResponse } from "./IsmMultisig.types"; -export interface IsmMultisigReadOnlyInterface { - contractAddress: string; - moduleType: () => Promise; - verify: ({ message, metadata }: { - message: HexBinary; - metadata: HexBinary; - }) => Promise; -} -export declare class IsmMultisigQueryClient implements IsmMultisigReadOnlyInterface { - client: CosmWasmClient; - contractAddress: string; - constructor(client: CosmWasmClient, contractAddress: string); - moduleType: () => Promise; - verify: ({ message, metadata }: { - message: HexBinary; - metadata: HexBinary; - }) => Promise; -} -export interface IsmMultisigInterface extends IsmMultisigReadOnlyInterface { - contractAddress: string; - sender: string; - enrollValidator: ({ set }: { - set: ValidatorSet; - }, fee?: number | StdFee | "auto", memo?: string, funds?: Coin[]) => Promise; - enrollValidators: ({ set }: { - set: ValidatorSet[]; - }, fee?: number | StdFee | "auto", memo?: string, funds?: Coin[]) => Promise; - unenrollValidator: ({ domain, validator }: { - domain: number; - validator: string; - }, fee?: number | StdFee | "auto", memo?: string, funds?: Coin[]) => Promise; - setThreshold: ({ set }: { - set: ThresholdSet; - }, fee?: number | StdFee | "auto", memo?: string, funds?: Coin[]) => Promise; - setThresholds: ({ set }: { - set: ThresholdSet[]; - }, fee?: number | StdFee | "auto", memo?: string, funds?: Coin[]) => Promise; - initTransferOwnership: ({ owner }: { - owner: string; - }, fee?: number | StdFee | "auto", memo?: string, funds?: Coin[]) => Promise; - finishTransferOwnership: (fee?: number | StdFee | "auto", memo?: string, funds?: Coin[]) => Promise; - revokeTransferOwnership: (fee?: number | StdFee | "auto", memo?: string, funds?: Coin[]) => Promise; -} -export declare class IsmMultisigClient extends IsmMultisigQueryClient implements IsmMultisigInterface { - client: SigningCosmWasmClient; - sender: string; - contractAddress: string; - constructor(client: SigningCosmWasmClient, sender: string, contractAddress: string); - enrollValidator: ({ set }: { - set: ValidatorSet; - }, fee?: number | StdFee | "auto", memo?: string, funds?: Coin[]) => Promise; - enrollValidators: ({ set }: { - set: ValidatorSet[]; - }, fee?: number | StdFee | "auto", memo?: string, funds?: Coin[]) => Promise; - unenrollValidator: ({ domain, validator }: { - domain: number; - validator: string; - }, fee?: number | StdFee | "auto", memo?: string, funds?: Coin[]) => Promise; - setThreshold: ({ set }: { - set: ThresholdSet; - }, fee?: number | StdFee | "auto", memo?: string, funds?: Coin[]) => Promise; - setThresholds: ({ set }: { - set: ThresholdSet[]; - }, fee?: number | StdFee | "auto", memo?: string, funds?: Coin[]) => Promise; - initTransferOwnership: ({ owner }: { - owner: string; - }, fee?: number | StdFee | "auto", memo?: string, funds?: Coin[]) => Promise; - finishTransferOwnership: (fee?: number | StdFee | "auto", memo?: string, funds?: Coin[]) => Promise; - revokeTransferOwnership: (fee?: number | StdFee | "auto", memo?: string, funds?: Coin[]) => Promise; -} -//# sourceMappingURL=IsmMultisig.client.d.ts.map \ No newline at end of file diff --git a/ts/sdk/types/contracts/IsmMultisig.client.d.ts.map b/ts/sdk/types/contracts/IsmMultisig.client.d.ts.map deleted file mode 100644 index e2403fa5..00000000 --- a/ts/sdk/types/contracts/IsmMultisig.client.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsmMultisig.client.d.ts","sourceRoot":"","sources":["../../src/contracts/IsmMultisig.client.ts"],"names":[],"mappings":"AAAA;;;;EAIE;AAEF,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AACjG,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAsC,YAAY,EAAE,YAAY,EAAY,SAAS,EAAuB,kBAAkB,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACnL,MAAM,WAAW,4BAA4B;IAC3C,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAC9C,MAAM,EAAE,CAAC,EACP,OAAO,EACP,QAAQ,EACT,EAAE;QACD,OAAO,EAAE,SAAS,CAAC;QACnB,QAAQ,EAAE,SAAS,CAAC;KACrB,KAAK,OAAO,CAAC,cAAc,CAAC,CAAC;CAC/B;AACD,qBAAa,sBAAuB,YAAW,4BAA4B;IACzE,MAAM,EAAE,cAAc,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;gBAEZ,MAAM,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM;IAO3D,UAAU,QAAa,QAAQ,kBAAkB,CAAC,CAIhD;IACF,MAAM;iBAIK,SAAS;kBACR,SAAS;UACjB,QAAQ,cAAc,CAAC,CAOzB;CACH;AACD,MAAM,WAAW,oBAAqB,SAAQ,4BAA4B;IACxE,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,CAAC,EAChB,GAAG,EACJ,EAAE;QACD,GAAG,EAAE,YAAY,CAAC;KACnB,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,IAAI,EAAE,KAAK,OAAO,CAAC,aAAa,CAAC,CAAC;IAC5F,gBAAgB,EAAE,CAAC,EACjB,GAAG,EACJ,EAAE;QACD,GAAG,EAAE,YAAY,EAAE,CAAC;KACrB,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,IAAI,EAAE,KAAK,OAAO,CAAC,aAAa,CAAC,CAAC;IAC5F,iBAAiB,EAAE,CAAC,EAClB,MAAM,EACN,SAAS,EACV,EAAE;QACD,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,EAAE,MAAM,CAAC;KACnB,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,IAAI,EAAE,KAAK,OAAO,CAAC,aAAa,CAAC,CAAC;IAC5F,YAAY,EAAE,CAAC,EACb,GAAG,EACJ,EAAE;QACD,GAAG,EAAE,YAAY,CAAC;KACnB,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,IAAI,EAAE,KAAK,OAAO,CAAC,aAAa,CAAC,CAAC;IAC5F,aAAa,EAAE,CAAC,EACd,GAAG,EACJ,EAAE;QACD,GAAG,EAAE,YAAY,EAAE,CAAC;KACrB,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,IAAI,EAAE,KAAK,OAAO,CAAC,aAAa,CAAC,CAAC;IAC5F,qBAAqB,EAAE,CAAC,EACtB,KAAK,EACN,EAAE;QACD,KAAK,EAAE,MAAM,CAAC;KACf,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,IAAI,EAAE,KAAK,OAAO,CAAC,aAAa,CAAC,CAAC;IAC5F,uBAAuB,EAAE,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,IAAI,EAAE,KAAK,OAAO,CAAC,aAAa,CAAC,CAAC;IACnH,uBAAuB,EAAE,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,IAAI,EAAE,KAAK,OAAO,CAAC,aAAa,CAAC,CAAC;CACpH;AACD,qBAAa,iBAAkB,SAAQ,sBAAuB,YAAW,oBAAoB;IAC3F,MAAM,EAAE,qBAAqB,CAAC;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,MAAM,CAAC;gBAEZ,MAAM,EAAE,qBAAqB,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM;IAelF,eAAe;aAGR,YAAY;aACX,MAAM,GAAG,MAAM,GAAG,MAAM,SAAkB,MAAM,UAAU,IAAI,EAAE,KAAG,QAAQ,aAAa,CAAC,CAM/F;IACF,gBAAgB;aAGT,YAAY,EAAE;aACb,MAAM,GAAG,MAAM,GAAG,MAAM,SAAkB,MAAM,UAAU,IAAI,EAAE,KAAG,QAAQ,aAAa,CAAC,CAM/F;IACF,iBAAiB;gBAIP,MAAM;mBACH,MAAM;aACX,MAAM,GAAG,MAAM,GAAG,MAAM,SAAkB,MAAM,UAAU,IAAI,EAAE,KAAG,QAAQ,aAAa,CAAC,CAO/F;IACF,YAAY;aAGL,YAAY;aACX,MAAM,GAAG,MAAM,GAAG,MAAM,SAAkB,MAAM,UAAU,IAAI,EAAE,KAAG,QAAQ,aAAa,CAAC,CAM/F;IACF,aAAa;aAGN,YAAY,EAAE;aACb,MAAM,GAAG,MAAM,GAAG,MAAM,SAAkB,MAAM,UAAU,IAAI,EAAE,KAAG,QAAQ,aAAa,CAAC,CAM/F;IACF,qBAAqB;eAGZ,MAAM;aACP,MAAM,GAAG,MAAM,GAAG,MAAM,SAAkB,MAAM,UAAU,IAAI,EAAE,KAAG,QAAQ,aAAa,CAAC,CAM/F;IACF,uBAAuB,SAAe,MAAM,GAAG,MAAM,GAAG,MAAM,SAAkB,MAAM,UAAU,IAAI,EAAE,KAAG,QAAQ,aAAa,CAAC,CAI7H;IACF,uBAAuB,SAAe,MAAM,GAAG,MAAM,GAAG,MAAM,SAAkB,MAAM,UAAU,IAAI,EAAE,KAAG,QAAQ,aAAa,CAAC,CAI7H;CACH"} \ No newline at end of file diff --git a/ts/sdk/types/contracts/IsmMultisig.message-composer.d.ts b/ts/sdk/types/contracts/IsmMultisig.message-composer.d.ts deleted file mode 100644 index f39b8033..00000000 --- a/ts/sdk/types/contracts/IsmMultisig.message-composer.d.ts +++ /dev/null @@ -1,60 +0,0 @@ -/** -* This file was automatically generated by @cosmwasm/ts-codegen@0.16.5. -* DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file, -* and run the @cosmwasm/ts-codegen generate command to regenerate this file. -*/ -import { Coin } from "@cosmjs/amino"; -import { MsgExecuteContractEncodeObject } from "cosmwasm"; -import { ValidatorSet, ThresholdSet } from "./IsmMultisig.types"; -export interface IsmMultisigMessage { - contractAddress: string; - sender: string; - enrollValidator: ({ set }: { - set: ValidatorSet; - }, funds?: Coin[]) => MsgExecuteContractEncodeObject; - enrollValidators: ({ set }: { - set: ValidatorSet[]; - }, funds?: Coin[]) => MsgExecuteContractEncodeObject; - unenrollValidator: ({ domain, validator }: { - domain: number; - validator: string; - }, funds?: Coin[]) => MsgExecuteContractEncodeObject; - setThreshold: ({ set }: { - set: ThresholdSet; - }, funds?: Coin[]) => MsgExecuteContractEncodeObject; - setThresholds: ({ set }: { - set: ThresholdSet[]; - }, funds?: Coin[]) => MsgExecuteContractEncodeObject; - initTransferOwnership: ({ owner }: { - owner: string; - }, funds?: Coin[]) => MsgExecuteContractEncodeObject; - finishTransferOwnership: (funds?: Coin[]) => MsgExecuteContractEncodeObject; - revokeTransferOwnership: (funds?: Coin[]) => MsgExecuteContractEncodeObject; -} -export declare class IsmMultisigMessageComposer implements IsmMultisigMessage { - sender: string; - contractAddress: string; - constructor(sender: string, contractAddress: string); - enrollValidator: ({ set }: { - set: ValidatorSet; - }, funds?: Coin[]) => MsgExecuteContractEncodeObject; - enrollValidators: ({ set }: { - set: ValidatorSet[]; - }, funds?: Coin[]) => MsgExecuteContractEncodeObject; - unenrollValidator: ({ domain, validator }: { - domain: number; - validator: string; - }, funds?: Coin[]) => MsgExecuteContractEncodeObject; - setThreshold: ({ set }: { - set: ThresholdSet; - }, funds?: Coin[]) => MsgExecuteContractEncodeObject; - setThresholds: ({ set }: { - set: ThresholdSet[]; - }, funds?: Coin[]) => MsgExecuteContractEncodeObject; - initTransferOwnership: ({ owner }: { - owner: string; - }, funds?: Coin[]) => MsgExecuteContractEncodeObject; - finishTransferOwnership: (funds?: Coin[]) => MsgExecuteContractEncodeObject; - revokeTransferOwnership: (funds?: Coin[]) => MsgExecuteContractEncodeObject; -} -//# sourceMappingURL=IsmMultisig.message-composer.d.ts.map \ No newline at end of file diff --git a/ts/sdk/types/contracts/IsmMultisig.message-composer.d.ts.map b/ts/sdk/types/contracts/IsmMultisig.message-composer.d.ts.map deleted file mode 100644 index 89907a6e..00000000 --- a/ts/sdk/types/contracts/IsmMultisig.message-composer.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsmMultisig.message-composer.d.ts","sourceRoot":"","sources":["../../src/contracts/IsmMultisig.message-composer.ts"],"names":[],"mappings":"AAAA;;;;EAIE;AAEF,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,EAAE,8BAA8B,EAAE,MAAM,UAAU,CAAC;AAG1D,OAAO,EAAsC,YAAY,EAAE,YAAY,EAAgF,MAAM,qBAAqB,CAAC;AACnL,MAAM,WAAW,kBAAkB;IACjC,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,CAAC,EAChB,GAAG,EACJ,EAAE;QACD,GAAG,EAAE,YAAY,CAAC;KACnB,EAAE,KAAK,CAAC,EAAE,IAAI,EAAE,KAAK,8BAA8B,CAAC;IACrD,gBAAgB,EAAE,CAAC,EACjB,GAAG,EACJ,EAAE;QACD,GAAG,EAAE,YAAY,EAAE,CAAC;KACrB,EAAE,KAAK,CAAC,EAAE,IAAI,EAAE,KAAK,8BAA8B,CAAC;IACrD,iBAAiB,EAAE,CAAC,EAClB,MAAM,EACN,SAAS,EACV,EAAE;QACD,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,EAAE,MAAM,CAAC;KACnB,EAAE,KAAK,CAAC,EAAE,IAAI,EAAE,KAAK,8BAA8B,CAAC;IACrD,YAAY,EAAE,CAAC,EACb,GAAG,EACJ,EAAE;QACD,GAAG,EAAE,YAAY,CAAC;KACnB,EAAE,KAAK,CAAC,EAAE,IAAI,EAAE,KAAK,8BAA8B,CAAC;IACrD,aAAa,EAAE,CAAC,EACd,GAAG,EACJ,EAAE;QACD,GAAG,EAAE,YAAY,EAAE,CAAC;KACrB,EAAE,KAAK,CAAC,EAAE,IAAI,EAAE,KAAK,8BAA8B,CAAC;IACrD,qBAAqB,EAAE,CAAC,EACtB,KAAK,EACN,EAAE;QACD,KAAK,EAAE,MAAM,CAAC;KACf,EAAE,KAAK,CAAC,EAAE,IAAI,EAAE,KAAK,8BAA8B,CAAC;IACrD,uBAAuB,EAAE,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,KAAK,8BAA8B,CAAC;IAC5E,uBAAuB,EAAE,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,KAAK,8BAA8B,CAAC;CAC7E;AACD,qBAAa,0BAA2B,YAAW,kBAAkB;IACnE,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,MAAM,CAAC;gBAEZ,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM;IAanD,eAAe;aAGR,YAAY;eACR,IAAI,EAAE,KAAG,8BAA8B,CAchD;IACF,gBAAgB;aAGT,YAAY,EAAE;eACV,IAAI,EAAE,KAAG,8BAA8B,CAchD;IACF,iBAAiB;gBAIP,MAAM;mBACH,MAAM;eACR,IAAI,EAAE,KAAG,8BAA8B,CAehD;IACF,YAAY;aAGL,YAAY;eACR,IAAI,EAAE,KAAG,8BAA8B,CAchD;IACF,aAAa;aAGN,YAAY,EAAE;eACV,IAAI,EAAE,KAAG,8BAA8B,CAchD;IACF,qBAAqB;eAGZ,MAAM;eACJ,IAAI,EAAE,KAAG,8BAA8B,CAchD;IACF,uBAAuB,WAAY,IAAI,EAAE,KAAG,8BAA8B,CAYxE;IACF,uBAAuB,WAAY,IAAI,EAAE,KAAG,8BAA8B,CAYxE;CACH"} \ No newline at end of file diff --git a/ts/sdk/types/contracts/IsmMultisig.types.d.ts b/ts/sdk/types/contracts/IsmMultisig.types.d.ts deleted file mode 100644 index 5af7afee..00000000 --- a/ts/sdk/types/contracts/IsmMultisig.types.d.ts +++ /dev/null @@ -1,68 +0,0 @@ -/** -* This file was automatically generated by @cosmwasm/ts-codegen@0.16.5. -* DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file, -* and run the @cosmwasm/ts-codegen generate command to regenerate this file. -*/ -export interface InstantiateMsg { - chain_hpl: string; - owner: string; -} -export type ExecuteMsg = { - enroll_validator: { - set: ValidatorSet; - }; -} | { - enroll_validators: { - set: ValidatorSet[]; - }; -} | { - unenroll_validator: { - domain: number; - validator: string; - }; -} | { - set_threshold: { - set: ThresholdSet; - }; -} | { - set_thresholds: { - set: ThresholdSet[]; - }; -} | { - init_transfer_ownership: { - owner: string; - }; -} | { - finish_transfer_ownership: []; -} | { - revoke_transfer_ownership: []; -}; -export type Binary = string; -export interface ValidatorSet { - domain: number; - validator: string; - validator_pubkey: Binary; -} -export interface ThresholdSet { - domain: number; - threshold: number; -} -export type QueryMsg = { - module_type: {}; -} | { - verify: { - message: HexBinary; - metadata: HexBinary; - }; -}; -export type HexBinary = string; -export interface MigrateMsg { -} -export type ISMType = "unused" | "routing" | "aggregation" | "legacy_multisig" | "multisig" | "owned"; -export interface ModuleTypeResponse { - type: ISMType; -} -export interface VerifyResponse { - verified: boolean; -} -//# sourceMappingURL=IsmMultisig.types.d.ts.map \ No newline at end of file diff --git a/ts/sdk/types/contracts/IsmMultisig.types.d.ts.map b/ts/sdk/types/contracts/IsmMultisig.types.d.ts.map deleted file mode 100644 index 8e682873..00000000 --- a/ts/sdk/types/contracts/IsmMultisig.types.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"IsmMultisig.types.d.ts","sourceRoot":"","sources":["../../src/contracts/IsmMultisig.types.ts"],"names":[],"mappings":"AAAA;;;;EAIE;AAEF,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;CACf;AACD,MAAM,MAAM,UAAU,GAAG;IACvB,gBAAgB,EAAE;QAChB,GAAG,EAAE,YAAY,CAAC;KACnB,CAAC;CACH,GAAG;IACF,iBAAiB,EAAE;QACjB,GAAG,EAAE,YAAY,EAAE,CAAC;KACrB,CAAC;CACH,GAAG;IACF,kBAAkB,EAAE;QAClB,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;CACH,GAAG;IACF,aAAa,EAAE;QACb,GAAG,EAAE,YAAY,CAAC;KACnB,CAAC;CACH,GAAG;IACF,cAAc,EAAE;QACd,GAAG,EAAE,YAAY,EAAE,CAAC;KACrB,CAAC;CACH,GAAG;IACF,uBAAuB,EAAE;QACvB,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;CACH,GAAG;IACF,yBAAyB,EAAE,EAAE,CAAC;CAC/B,GAAG;IACF,yBAAyB,EAAE,EAAE,CAAC;CAC/B,CAAC;AACF,MAAM,MAAM,MAAM,GAAG,MAAM,CAAC;AAC5B,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AACD,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACnB;AACD,MAAM,MAAM,QAAQ,GAAG;IACrB,WAAW,EAAE,EAAE,CAAC;CACjB,GAAG;IACF,MAAM,EAAE;QACN,OAAO,EAAE,SAAS,CAAC;QACnB,QAAQ,EAAE,SAAS,CAAC;KACrB,CAAC;CACH,CAAC;AACF,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC;AAC/B,MAAM,WAAW,UAAU;CAAG;AAC9B,MAAM,MAAM,OAAO,GAAG,QAAQ,GAAG,SAAS,GAAG,aAAa,GAAG,iBAAiB,GAAG,UAAU,GAAG,OAAO,CAAC;AACtG,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,OAAO,CAAC;CACf;AACD,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,OAAO,CAAC;CACnB"} \ No newline at end of file diff --git a/ts/sdk/types/contracts/Mailbox.client.d.ts b/ts/sdk/types/contracts/Mailbox.client.d.ts deleted file mode 100644 index f31e8562..00000000 --- a/ts/sdk/types/contracts/Mailbox.client.d.ts +++ /dev/null @@ -1,65 +0,0 @@ -/** -* This file was automatically generated by @cosmwasm/ts-codegen@0.16.5. -* DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file, -* and run the @cosmwasm/ts-codegen generate command to regenerate this file. -*/ -import { CosmWasmClient, SigningCosmWasmClient, ExecuteResult } from "@cosmjs/cosmwasm-stargate"; -import { Coin, StdFee } from "@cosmjs/amino"; -import { HexBinary, CheckPointResponse, CountResponse, NonceResponse, PausedResponse, RootResponse } from "./Mailbox.types"; -export interface MailboxReadOnlyInterface { - contractAddress: string; - root: () => Promise; - count: () => Promise; - checkPoint: () => Promise; - paused: () => Promise; - nonce: () => Promise; -} -export declare class MailboxQueryClient implements MailboxReadOnlyInterface { - client: CosmWasmClient; - contractAddress: string; - constructor(client: CosmWasmClient, contractAddress: string); - root: () => Promise; - count: () => Promise; - checkPoint: () => Promise; - paused: () => Promise; - nonce: () => Promise; -} -export interface MailboxInterface extends MailboxReadOnlyInterface { - contractAddress: string; - sender: string; - pause: (fee?: number | StdFee | "auto", memo?: string, funds?: Coin[]) => Promise; - unpause: (fee?: number | StdFee | "auto", memo?: string, funds?: Coin[]) => Promise; - setDefaultISM: ({ ism }: { - ism: string; - }, fee?: number | StdFee | "auto", memo?: string, funds?: Coin[]) => Promise; - dispatch: ({ destDomain, msgBody, recipientAddr }: { - destDomain: number; - msgBody: HexBinary; - recipientAddr: HexBinary; - }, fee?: number | StdFee | "auto", memo?: string, funds?: Coin[]) => Promise; - process: ({ message, metadata }: { - message: HexBinary; - metadata: HexBinary; - }, fee?: number | StdFee | "auto", memo?: string, funds?: Coin[]) => Promise; -} -export declare class MailboxClient extends MailboxQueryClient implements MailboxInterface { - client: SigningCosmWasmClient; - sender: string; - contractAddress: string; - constructor(client: SigningCosmWasmClient, sender: string, contractAddress: string); - pause: (fee?: number | StdFee | "auto", memo?: string, funds?: Coin[]) => Promise; - unpause: (fee?: number | StdFee | "auto", memo?: string, funds?: Coin[]) => Promise; - setDefaultISM: ({ ism }: { - ism: string; - }, fee?: number | StdFee | "auto", memo?: string, funds?: Coin[]) => Promise; - dispatch: ({ destDomain, msgBody, recipientAddr }: { - destDomain: number; - msgBody: HexBinary; - recipientAddr: HexBinary; - }, fee?: number | StdFee | "auto", memo?: string, funds?: Coin[]) => Promise; - process: ({ message, metadata }: { - message: HexBinary; - metadata: HexBinary; - }, fee?: number | StdFee | "auto", memo?: string, funds?: Coin[]) => Promise; -} -//# sourceMappingURL=Mailbox.client.d.ts.map \ No newline at end of file diff --git a/ts/sdk/types/contracts/Mailbox.client.d.ts.map b/ts/sdk/types/contracts/Mailbox.client.d.ts.map deleted file mode 100644 index 7772095a..00000000 --- a/ts/sdk/types/contracts/Mailbox.client.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"Mailbox.client.d.ts","sourceRoot":"","sources":["../../src/contracts/Mailbox.client.ts"],"names":[],"mappings":"AAAA;;;;EAIE;AAEF,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AACjG,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAA8B,SAAS,EAAwB,kBAAkB,EAAE,aAAa,EAAE,aAAa,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC9K,MAAM,WAAW,wBAAwB;IACvC,eAAe,EAAE,MAAM,CAAC;IACxB,IAAI,EAAE,MAAM,OAAO,CAAC,YAAY,CAAC,CAAC;IAClC,KAAK,EAAE,MAAM,OAAO,CAAC,aAAa,CAAC,CAAC;IACpC,UAAU,EAAE,MAAM,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAC9C,MAAM,EAAE,MAAM,OAAO,CAAC,cAAc,CAAC,CAAC;IACtC,KAAK,EAAE,MAAM,OAAO,CAAC,aAAa,CAAC,CAAC;CACrC;AACD,qBAAa,kBAAmB,YAAW,wBAAwB;IACjE,MAAM,EAAE,cAAc,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;gBAEZ,MAAM,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM;IAU3D,IAAI,QAAa,QAAQ,YAAY,CAAC,CAIpC;IACF,KAAK,QAAa,QAAQ,aAAa,CAAC,CAItC;IACF,UAAU,QAAa,QAAQ,kBAAkB,CAAC,CAIhD;IACF,MAAM,QAAa,QAAQ,cAAc,CAAC,CAIxC;IACF,KAAK,QAAa,QAAQ,aAAa,CAAC,CAItC;CACH;AACD,MAAM,WAAW,gBAAiB,SAAQ,wBAAwB;IAChE,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,IAAI,EAAE,KAAK,OAAO,CAAC,aAAa,CAAC,CAAC;IACjG,OAAO,EAAE,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,IAAI,EAAE,KAAK,OAAO,CAAC,aAAa,CAAC,CAAC;IACnG,aAAa,EAAE,CAAC,EACd,GAAG,EACJ,EAAE;QACD,GAAG,EAAE,MAAM,CAAC;KACb,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,IAAI,EAAE,KAAK,OAAO,CAAC,aAAa,CAAC,CAAC;IAC5F,QAAQ,EAAE,CAAC,EACT,UAAU,EACV,OAAO,EACP,aAAa,EACd,EAAE;QACD,UAAU,EAAE,MAAM,CAAC;QACnB,OAAO,EAAE,SAAS,CAAC;QACnB,aAAa,EAAE,SAAS,CAAC;KAC1B,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,IAAI,EAAE,KAAK,OAAO,CAAC,aAAa,CAAC,CAAC;IAC5F,OAAO,EAAE,CAAC,EACR,OAAO,EACP,QAAQ,EACT,EAAE;QACD,OAAO,EAAE,SAAS,CAAC;QACnB,QAAQ,EAAE,SAAS,CAAC;KACrB,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,IAAI,EAAE,KAAK,OAAO,CAAC,aAAa,CAAC,CAAC;CAC7F;AACD,qBAAa,aAAc,SAAQ,kBAAmB,YAAW,gBAAgB;IAC/E,MAAM,EAAE,qBAAqB,CAAC;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,MAAM,CAAC;gBAEZ,MAAM,EAAE,qBAAqB,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM;IAYlF,KAAK,SAAe,MAAM,GAAG,MAAM,GAAG,MAAM,SAAkB,MAAM,UAAU,IAAI,EAAE,KAAG,QAAQ,aAAa,CAAC,CAI3G;IACF,OAAO,SAAe,MAAM,GAAG,MAAM,GAAG,MAAM,SAAkB,MAAM,UAAU,IAAI,EAAE,KAAG,QAAQ,aAAa,CAAC,CAI7G;IACF,aAAa;aAGN,MAAM;aACL,MAAM,GAAG,MAAM,GAAG,MAAM,SAAkB,MAAM,UAAU,IAAI,EAAE,KAAG,QAAQ,aAAa,CAAC,CAM/F;IACF,QAAQ;oBAKM,MAAM;iBACT,SAAS;uBACH,SAAS;aAClB,MAAM,GAAG,MAAM,GAAG,MAAM,SAAkB,MAAM,UAAU,IAAI,EAAE,KAAG,QAAQ,aAAa,CAAC,CAQ/F;IACF,OAAO;iBAII,SAAS;kBACR,SAAS;aACb,MAAM,GAAG,MAAM,GAAG,MAAM,SAAkB,MAAM,UAAU,IAAI,EAAE,KAAG,QAAQ,aAAa,CAAC,CAO/F;CACH"} \ No newline at end of file diff --git a/ts/sdk/types/contracts/Mailbox.message-composer.d.ts b/ts/sdk/types/contracts/Mailbox.message-composer.d.ts deleted file mode 100644 index 5bc854b9..00000000 --- a/ts/sdk/types/contracts/Mailbox.message-composer.d.ts +++ /dev/null @@ -1,46 +0,0 @@ -/** -* This file was automatically generated by @cosmwasm/ts-codegen@0.16.5. -* DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file, -* and run the @cosmwasm/ts-codegen generate command to regenerate this file. -*/ -import { Coin } from "@cosmjs/amino"; -import { MsgExecuteContractEncodeObject } from "cosmwasm"; -import { HexBinary } from "./Mailbox.types"; -export interface MailboxMessage { - contractAddress: string; - sender: string; - pause: (funds?: Coin[]) => MsgExecuteContractEncodeObject; - unpause: (funds?: Coin[]) => MsgExecuteContractEncodeObject; - setDefaultISM: ({ ism }: { - ism: string; - }, funds?: Coin[]) => MsgExecuteContractEncodeObject; - dispatch: ({ destDomain, msgBody, recipientAddr }: { - destDomain: number; - msgBody: HexBinary; - recipientAddr: HexBinary; - }, funds?: Coin[]) => MsgExecuteContractEncodeObject; - process: ({ message, metadata }: { - message: HexBinary; - metadata: HexBinary; - }, funds?: Coin[]) => MsgExecuteContractEncodeObject; -} -export declare class MailboxMessageComposer implements MailboxMessage { - sender: string; - contractAddress: string; - constructor(sender: string, contractAddress: string); - pause: (funds?: Coin[]) => MsgExecuteContractEncodeObject; - unpause: (funds?: Coin[]) => MsgExecuteContractEncodeObject; - setDefaultISM: ({ ism }: { - ism: string; - }, funds?: Coin[]) => MsgExecuteContractEncodeObject; - dispatch: ({ destDomain, msgBody, recipientAddr }: { - destDomain: number; - msgBody: HexBinary; - recipientAddr: HexBinary; - }, funds?: Coin[]) => MsgExecuteContractEncodeObject; - process: ({ message, metadata }: { - message: HexBinary; - metadata: HexBinary; - }, funds?: Coin[]) => MsgExecuteContractEncodeObject; -} -//# sourceMappingURL=Mailbox.message-composer.d.ts.map \ No newline at end of file diff --git a/ts/sdk/types/contracts/Mailbox.message-composer.d.ts.map b/ts/sdk/types/contracts/Mailbox.message-composer.d.ts.map deleted file mode 100644 index bfd14cd1..00000000 --- a/ts/sdk/types/contracts/Mailbox.message-composer.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"Mailbox.message-composer.d.ts","sourceRoot":"","sources":["../../src/contracts/Mailbox.message-composer.ts"],"names":[],"mappings":"AAAA;;;;EAIE;AAEF,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AACrC,OAAO,EAAE,8BAA8B,EAAE,MAAM,UAAU,CAAC;AAG1D,OAAO,EAA8B,SAAS,EAAwG,MAAM,iBAAiB,CAAC;AAC9K,MAAM,WAAW,cAAc;IAC7B,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,KAAK,8BAA8B,CAAC;IAC1D,OAAO,EAAE,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,KAAK,8BAA8B,CAAC;IAC5D,aAAa,EAAE,CAAC,EACd,GAAG,EACJ,EAAE;QACD,GAAG,EAAE,MAAM,CAAC;KACb,EAAE,KAAK,CAAC,EAAE,IAAI,EAAE,KAAK,8BAA8B,CAAC;IACrD,QAAQ,EAAE,CAAC,EACT,UAAU,EACV,OAAO,EACP,aAAa,EACd,EAAE;QACD,UAAU,EAAE,MAAM,CAAC;QACnB,OAAO,EAAE,SAAS,CAAC;QACnB,aAAa,EAAE,SAAS,CAAC;KAC1B,EAAE,KAAK,CAAC,EAAE,IAAI,EAAE,KAAK,8BAA8B,CAAC;IACrD,OAAO,EAAE,CAAC,EACR,OAAO,EACP,QAAQ,EACT,EAAE;QACD,OAAO,EAAE,SAAS,CAAC;QACnB,QAAQ,EAAE,SAAS,CAAC;KACrB,EAAE,KAAK,CAAC,EAAE,IAAI,EAAE,KAAK,8BAA8B,CAAC;CACtD;AACD,qBAAa,sBAAuB,YAAW,cAAc;IAC3D,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,MAAM,CAAC;gBAEZ,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM;IAUnD,KAAK,WAAY,IAAI,EAAE,KAAG,8BAA8B,CAYtD;IACF,OAAO,WAAY,IAAI,EAAE,KAAG,8BAA8B,CAYxD;IACF,aAAa;aAGN,MAAM;eACF,IAAI,EAAE,KAAG,8BAA8B,CAchD;IACF,QAAQ;oBAKM,MAAM;iBACT,SAAS;uBACH,SAAS;eACf,IAAI,EAAE,KAAG,8BAA8B,CAgBhD;IACF,OAAO;iBAII,SAAS;kBACR,SAAS;eACV,IAAI,EAAE,KAAG,8BAA8B,CAehD;CACH"} \ No newline at end of file diff --git a/ts/sdk/types/contracts/Mailbox.types.d.ts b/ts/sdk/types/contracts/Mailbox.types.d.ts deleted file mode 100644 index 1ab081a1..00000000 --- a/ts/sdk/types/contracts/Mailbox.types.d.ts +++ /dev/null @@ -1,60 +0,0 @@ -/** -* This file was automatically generated by @cosmwasm/ts-codegen@0.16.5. -* DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file, -* and run the @cosmwasm/ts-codegen generate command to regenerate this file. -*/ -export interface InstantiateMsg { - default_ism: string; - owner: string; -} -export type ExecuteMsg = { - pause: {}; -} | { - unpause: {}; -} | { - set_default_i_s_m: { - ism: string; - }; -} | { - dispatch: { - dest_domain: number; - msg_body: HexBinary; - recipient_addr: HexBinary; - }; -} | { - process: { - message: HexBinary; - metadata: HexBinary; - }; -}; -export type HexBinary = string; -export type QueryMsg = { - root: {}; -} | { - count: {}; -} | { - check_point: {}; -} | { - paused: {}; -} | { - nonce: {}; -}; -export interface MigrateMsg { -} -export interface CheckPointResponse { - count: number; - root: HexBinary; -} -export interface CountResponse { - count: number; -} -export interface NonceResponse { - nonce: number; -} -export interface PausedResponse { - paused: boolean; -} -export interface RootResponse { - root: HexBinary; -} -//# sourceMappingURL=Mailbox.types.d.ts.map \ No newline at end of file diff --git a/ts/sdk/types/contracts/Mailbox.types.d.ts.map b/ts/sdk/types/contracts/Mailbox.types.d.ts.map deleted file mode 100644 index ef1e024a..00000000 --- a/ts/sdk/types/contracts/Mailbox.types.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"Mailbox.types.d.ts","sourceRoot":"","sources":["../../src/contracts/Mailbox.types.ts"],"names":[],"mappings":"AAAA;;;;EAIE;AAEF,MAAM,WAAW,cAAc;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;CACf;AACD,MAAM,MAAM,UAAU,GAAG;IACvB,KAAK,EAAE,EAAE,CAAC;CACX,GAAG;IACF,OAAO,EAAE,EAAE,CAAC;CACb,GAAG;IACF,iBAAiB,EAAE;QACjB,GAAG,EAAE,MAAM,CAAC;KACb,CAAC;CACH,GAAG;IACF,QAAQ,EAAE;QACR,WAAW,EAAE,MAAM,CAAC;QACpB,QAAQ,EAAE,SAAS,CAAC;QACpB,cAAc,EAAE,SAAS,CAAC;KAC3B,CAAC;CACH,GAAG;IACF,OAAO,EAAE;QACP,OAAO,EAAE,SAAS,CAAC;QACnB,QAAQ,EAAE,SAAS,CAAC;KACrB,CAAC;CACH,CAAC;AACF,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC;AAC/B,MAAM,MAAM,QAAQ,GAAG;IACrB,IAAI,EAAE,EAAE,CAAC;CACV,GAAG;IACF,KAAK,EAAE,EAAE,CAAC;CACX,GAAG;IACF,WAAW,EAAE,EAAE,CAAC;CACjB,GAAG;IACF,MAAM,EAAE,EAAE,CAAC;CACZ,GAAG;IACF,KAAK,EAAE,EAAE,CAAC;CACX,CAAC;AACF,MAAM,WAAW,UAAU;CAAG;AAC9B,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,SAAS,CAAC;CACjB;AACD,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;CACf;AACD,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;CACf;AACD,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,OAAO,CAAC;CACjB;AACD,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,SAAS,CAAC;CACjB"} \ No newline at end of file diff --git a/ts/sdk/types/contracts/Multicall.client.d.ts b/ts/sdk/types/contracts/Multicall.client.d.ts deleted file mode 100644 index a40b2313..00000000 --- a/ts/sdk/types/contracts/Multicall.client.d.ts +++ /dev/null @@ -1,49 +0,0 @@ -/** -* This file was automatically generated by @cosmwasm/ts-codegen@0.16.5. -* DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file, -* and run the @cosmwasm/ts-codegen generate command to regenerate this file. -*/ -import { CosmWasmClient, SigningCosmWasmClient, ExecuteResult } from "@cosmjs/cosmwasm-stargate"; -import { StdFee } from "@cosmjs/amino"; -import { CosmosMsgForEmpty, HexBinary, Coin, StaticCall, AggregateResponse } from "./Multicall.types"; -export interface MulticallReadOnlyInterface { - contractAddress: string; - aggregateStatic: ({ req }: { - req: StaticCall[]; - }) => Promise; -} -export declare class MulticallQueryClient implements MulticallReadOnlyInterface { - client: CosmWasmClient; - contractAddress: string; - constructor(client: CosmWasmClient, contractAddress: string); - aggregateStatic: ({ req }: { - req: StaticCall[]; - }) => Promise; -} -export interface MulticallInterface extends MulticallReadOnlyInterface { - contractAddress: string; - sender: string; - aggregate: ({ req }: { - req: CosmosMsgForEmpty[]; - }, fee?: number | StdFee | "auto", memo?: string, funds?: Coin[]) => Promise; - handle: ({ body, origin, sender }: { - body: HexBinary; - origin: number; - sender: HexBinary; - }, fee?: number | StdFee | "auto", memo?: string, funds?: Coin[]) => Promise; -} -export declare class MulticallClient extends MulticallQueryClient implements MulticallInterface { - client: SigningCosmWasmClient; - sender: string; - contractAddress: string; - constructor(client: SigningCosmWasmClient, sender: string, contractAddress: string); - aggregate: ({ req }: { - req: CosmosMsgForEmpty[]; - }, fee?: number | StdFee | "auto", memo?: string, funds?: Coin[]) => Promise; - handle: ({ body, origin, sender }: { - body: HexBinary; - origin: number; - sender: HexBinary; - }, fee?: number | StdFee | "auto", memo?: string, funds?: Coin[]) => Promise; -} -//# sourceMappingURL=Multicall.client.d.ts.map \ No newline at end of file diff --git a/ts/sdk/types/contracts/Multicall.client.d.ts.map b/ts/sdk/types/contracts/Multicall.client.d.ts.map deleted file mode 100644 index b75e6b78..00000000 --- a/ts/sdk/types/contracts/Multicall.client.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"Multicall.client.d.ts","sourceRoot":"","sources":["../../src/contracts/Multicall.client.ts"],"names":[],"mappings":"AAAA;;;;EAIE;AAEF,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AACjG,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACvC,OAAO,EAA8B,iBAAiB,EAAiH,SAAS,EAAE,IAAI,EAA2D,UAAU,EAAc,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtT,MAAM,WAAW,0BAA0B;IACzC,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,CAAC,EAChB,GAAG,EACJ,EAAE;QACD,GAAG,EAAE,UAAU,EAAE,CAAC;KACnB,KAAK,OAAO,CAAC,iBAAiB,CAAC,CAAC;CAClC;AACD,qBAAa,oBAAqB,YAAW,0BAA0B;IACrE,MAAM,EAAE,cAAc,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;gBAEZ,MAAM,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM;IAM3D,eAAe;aAGR,UAAU,EAAE;UACf,QAAQ,iBAAiB,CAAC,CAM5B;CACH;AACD,MAAM,WAAW,kBAAmB,SAAQ,0BAA0B;IACpE,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,CAAC,EACV,GAAG,EACJ,EAAE;QACD,GAAG,EAAE,iBAAiB,EAAE,CAAC;KAC1B,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,IAAI,EAAE,KAAK,OAAO,CAAC,aAAa,CAAC,CAAC;IAC5F,MAAM,EAAE,CAAC,EACP,IAAI,EACJ,MAAM,EACN,MAAM,EACP,EAAE;QACD,IAAI,EAAE,SAAS,CAAC;QAChB,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,SAAS,CAAC;KACnB,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,IAAI,EAAE,KAAK,OAAO,CAAC,aAAa,CAAC,CAAC;CAC7F;AACD,qBAAa,eAAgB,SAAQ,oBAAqB,YAAW,kBAAkB;IACrF,MAAM,EAAE,qBAAqB,CAAC;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,MAAM,CAAC;gBAEZ,MAAM,EAAE,qBAAqB,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM;IASlF,SAAS;aAGF,iBAAiB,EAAE;aAClB,MAAM,GAAG,MAAM,GAAG,MAAM,SAAkB,MAAM,UAAU,IAAI,EAAE,KAAG,QAAQ,aAAa,CAAC,CAM/F;IACF,MAAM;cAKE,SAAS;gBACP,MAAM;gBACN,SAAS;aACX,MAAM,GAAG,MAAM,GAAG,MAAM,SAAkB,MAAM,UAAU,IAAI,EAAE,KAAG,QAAQ,aAAa,CAAC,CAQ/F;CACH"} \ No newline at end of file diff --git a/ts/sdk/types/contracts/Multicall.message-composer.d.ts b/ts/sdk/types/contracts/Multicall.message-composer.d.ts deleted file mode 100644 index 148affa4..00000000 --- a/ts/sdk/types/contracts/Multicall.message-composer.d.ts +++ /dev/null @@ -1,33 +0,0 @@ -/** -* This file was automatically generated by @cosmwasm/ts-codegen@0.16.5. -* DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file, -* and run the @cosmwasm/ts-codegen generate command to regenerate this file. -*/ -import { MsgExecuteContractEncodeObject } from "cosmwasm"; -import { CosmosMsgForEmpty, HexBinary, Coin } from "./Multicall.types"; -export interface MulticallMessage { - contractAddress: string; - sender: string; - aggregate: ({ req }: { - req: CosmosMsgForEmpty[]; - }, funds?: Coin[]) => MsgExecuteContractEncodeObject; - handle: ({ body, origin, sender }: { - body: HexBinary; - origin: number; - sender: HexBinary; - }, funds?: Coin[]) => MsgExecuteContractEncodeObject; -} -export declare class MulticallMessageComposer implements MulticallMessage { - sender: string; - contractAddress: string; - constructor(sender: string, contractAddress: string); - aggregate: ({ req }: { - req: CosmosMsgForEmpty[]; - }, funds?: Coin[]) => MsgExecuteContractEncodeObject; - handle: ({ body, origin, sender }: { - body: HexBinary; - origin: number; - sender: HexBinary; - }, funds?: Coin[]) => MsgExecuteContractEncodeObject; -} -//# sourceMappingURL=Multicall.message-composer.d.ts.map \ No newline at end of file diff --git a/ts/sdk/types/contracts/Multicall.message-composer.d.ts.map b/ts/sdk/types/contracts/Multicall.message-composer.d.ts.map deleted file mode 100644 index 5966e606..00000000 --- a/ts/sdk/types/contracts/Multicall.message-composer.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"Multicall.message-composer.d.ts","sourceRoot":"","sources":["../../src/contracts/Multicall.message-composer.ts"],"names":[],"mappings":"AAAA;;;;EAIE;AAEF,OAAO,EAAE,8BAA8B,EAAE,MAAM,UAAU,CAAC;AAG1D,OAAO,EAA8B,iBAAiB,EAAiH,SAAS,EAAE,IAAI,EAAsG,MAAM,mBAAmB,CAAC;AACtT,MAAM,WAAW,gBAAgB;IAC/B,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,CAAC,EACV,GAAG,EACJ,EAAE;QACD,GAAG,EAAE,iBAAiB,EAAE,CAAC;KAC1B,EAAE,KAAK,CAAC,EAAE,IAAI,EAAE,KAAK,8BAA8B,CAAC;IACrD,MAAM,EAAE,CAAC,EACP,IAAI,EACJ,MAAM,EACN,MAAM,EACP,EAAE;QACD,IAAI,EAAE,SAAS,CAAC;QAChB,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,SAAS,CAAC;KACnB,EAAE,KAAK,CAAC,EAAE,IAAI,EAAE,KAAK,8BAA8B,CAAC;CACtD;AACD,qBAAa,wBAAyB,YAAW,gBAAgB;IAC/D,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,MAAM,CAAC;gBAEZ,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM;IAOnD,SAAS;aAGF,iBAAiB,EAAE;eACf,IAAI,EAAE,KAAG,8BAA8B,CAchD;IACF,MAAM;cAKE,SAAS;gBACP,MAAM;gBACN,SAAS;eACR,IAAI,EAAE,KAAG,8BAA8B,CAgBhD;CACH"} \ No newline at end of file diff --git a/ts/sdk/types/contracts/Multicall.types.d.ts b/ts/sdk/types/contracts/Multicall.types.d.ts deleted file mode 100644 index 9074afae..00000000 --- a/ts/sdk/types/contracts/Multicall.types.d.ts +++ /dev/null @@ -1,187 +0,0 @@ -/** -* This file was automatically generated by @cosmwasm/ts-codegen@0.16.5. -* DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file, -* and run the @cosmwasm/ts-codegen generate command to regenerate this file. -*/ -export interface InstantiateMsg { - mailbox: string; - owner: string; -} -export type ExecuteMsg = { - aggregate: { - req: CosmosMsgForEmpty[]; - }; -} | { - handle: HandleMsg; -}; -export type CosmosMsgForEmpty = { - bank: BankMsg; -} | { - custom: Empty; -} | { - staking: StakingMsg; -} | { - distribution: DistributionMsg; -} | { - stargate: { - type_url: string; - value: Binary; - [k: string]: unknown; - }; -} | { - ibc: IbcMsg; -} | { - wasm: WasmMsg; -} | { - gov: GovMsg; -}; -export type BankMsg = { - send: { - amount: Coin[]; - to_address: string; - [k: string]: unknown; - }; -} | { - burn: { - amount: Coin[]; - [k: string]: unknown; - }; -}; -export type Uint128 = string; -export type StakingMsg = { - delegate: { - amount: Coin; - validator: string; - [k: string]: unknown; - }; -} | { - undelegate: { - amount: Coin; - validator: string; - [k: string]: unknown; - }; -} | { - redelegate: { - amount: Coin; - dst_validator: string; - src_validator: string; - [k: string]: unknown; - }; -}; -export type DistributionMsg = { - set_withdraw_address: { - address: string; - [k: string]: unknown; - }; -} | { - withdraw_delegator_reward: { - validator: string; - [k: string]: unknown; - }; -}; -export type Binary = string; -export type IbcMsg = { - transfer: { - amount: Coin; - channel_id: string; - timeout: IbcTimeout; - to_address: string; - [k: string]: unknown; - }; -} | { - send_packet: { - channel_id: string; - data: Binary; - timeout: IbcTimeout; - [k: string]: unknown; - }; -} | { - close_channel: { - channel_id: string; - [k: string]: unknown; - }; -}; -export type Timestamp = Uint64; -export type Uint64 = string; -export type WasmMsg = { - execute: { - contract_addr: string; - funds: Coin[]; - msg: Binary; - [k: string]: unknown; - }; -} | { - instantiate: { - admin?: string | null; - code_id: number; - funds: Coin[]; - label: string; - msg: Binary; - [k: string]: unknown; - }; -} | { - migrate: { - contract_addr: string; - msg: Binary; - new_code_id: number; - [k: string]: unknown; - }; -} | { - update_admin: { - admin: string; - contract_addr: string; - [k: string]: unknown; - }; -} | { - clear_admin: { - contract_addr: string; - [k: string]: unknown; - }; -}; -export type GovMsg = { - vote: { - proposal_id: number; - vote: VoteOption; - [k: string]: unknown; - }; -}; -export type VoteOption = "yes" | "no" | "abstain" | "no_with_veto"; -export type HexBinary = string; -export interface Coin { - amount: Uint128; - denom: string; - [k: string]: unknown; -} -export interface Empty { - [k: string]: unknown; -} -export interface IbcTimeout { - block?: IbcTimeoutBlock | null; - timestamp?: Timestamp | null; - [k: string]: unknown; -} -export interface IbcTimeoutBlock { - height: number; - revision: number; - [k: string]: unknown; -} -export interface HandleMsg { - body: HexBinary; - origin: number; - sender: HexBinary; -} -export type QueryMsg = { - aggregate_static: { - req: StaticCall[]; - }; -}; -export interface StaticCall { - data: Binary; - path: string; -} -export interface MigrateMsg { -} -export interface AggregateResponse { - resp: Binary[]; -} -//# sourceMappingURL=Multicall.types.d.ts.map \ No newline at end of file diff --git a/ts/sdk/types/contracts/Multicall.types.d.ts.map b/ts/sdk/types/contracts/Multicall.types.d.ts.map deleted file mode 100644 index 80d4217e..00000000 --- a/ts/sdk/types/contracts/Multicall.types.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"Multicall.types.d.ts","sourceRoot":"","sources":["../../src/contracts/Multicall.types.ts"],"names":[],"mappings":"AAAA;;;;EAIE;AAEF,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;CACf;AACD,MAAM,MAAM,UAAU,GAAG;IACvB,SAAS,EAAE;QACT,GAAG,EAAE,iBAAiB,EAAE,CAAC;KAC1B,CAAC;CACH,GAAG;IACF,MAAM,EAAE,SAAS,CAAC;CACnB,CAAC;AACF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,EAAE,OAAO,CAAC;CACf,GAAG;IACF,MAAM,EAAE,KAAK,CAAC;CACf,GAAG;IACF,OAAO,EAAE,UAAU,CAAC;CACrB,GAAG;IACF,YAAY,EAAE,eAAe,CAAC;CAC/B,GAAG;IACF,QAAQ,EAAE;QACR,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,EAAE,MAAM,CAAC;QACd,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;KACtB,CAAC;CACH,GAAG;IACF,GAAG,EAAE,MAAM,CAAC;CACb,GAAG;IACF,IAAI,EAAE,OAAO,CAAC;CACf,GAAG;IACF,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AACF,MAAM,MAAM,OAAO,GAAG;IACpB,IAAI,EAAE;QACJ,MAAM,EAAE,IAAI,EAAE,CAAC;QACf,UAAU,EAAE,MAAM,CAAC;QACnB,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;KACtB,CAAC;CACH,GAAG;IACF,IAAI,EAAE;QACJ,MAAM,EAAE,IAAI,EAAE,CAAC;QACf,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;KACtB,CAAC;CACH,CAAC;AACF,MAAM,MAAM,OAAO,GAAG,MAAM,CAAC;AAC7B,MAAM,MAAM,UAAU,GAAG;IACvB,QAAQ,EAAE;QACR,MAAM,EAAE,IAAI,CAAC;QACb,SAAS,EAAE,MAAM,CAAC;QAClB,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;KACtB,CAAC;CACH,GAAG;IACF,UAAU,EAAE;QACV,MAAM,EAAE,IAAI,CAAC;QACb,SAAS,EAAE,MAAM,CAAC;QAClB,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;KACtB,CAAC;CACH,GAAG;IACF,UAAU,EAAE;QACV,MAAM,EAAE,IAAI,CAAC;QACb,aAAa,EAAE,MAAM,CAAC;QACtB,aAAa,EAAE,MAAM,CAAC;QACtB,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;KACtB,CAAC;CACH,CAAC;AACF,MAAM,MAAM,eAAe,GAAG;IAC5B,oBAAoB,EAAE;QACpB,OAAO,EAAE,MAAM,CAAC;QAChB,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;KACtB,CAAC;CACH,GAAG;IACF,yBAAyB,EAAE;QACzB,SAAS,EAAE,MAAM,CAAC;QAClB,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;KACtB,CAAC;CACH,CAAC;AACF,MAAM,MAAM,MAAM,GAAG,MAAM,CAAC;AAC5B,MAAM,MAAM,MAAM,GAAG;IACnB,QAAQ,EAAE;QACR,MAAM,EAAE,IAAI,CAAC;QACb,UAAU,EAAE,MAAM,CAAC;QACnB,OAAO,EAAE,UAAU,CAAC;QACpB,UAAU,EAAE,MAAM,CAAC;QACnB,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;KACtB,CAAC;CACH,GAAG;IACF,WAAW,EAAE;QACX,UAAU,EAAE,MAAM,CAAC;QACnB,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,UAAU,CAAC;QACpB,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;KACtB,CAAC;CACH,GAAG;IACF,aAAa,EAAE;QACb,UAAU,EAAE,MAAM,CAAC;QACnB,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;KACtB,CAAC;CACH,CAAC;AACF,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC;AAC/B,MAAM,MAAM,MAAM,GAAG,MAAM,CAAC;AAC5B,MAAM,MAAM,OAAO,GAAG;IACpB,OAAO,EAAE;QACP,aAAa,EAAE,MAAM,CAAC;QACtB,KAAK,EAAE,IAAI,EAAE,CAAC;QACd,GAAG,EAAE,MAAM,CAAC;QACZ,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;KACtB,CAAC;CACH,GAAG;IACF,WAAW,EAAE;QACX,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACtB,OAAO,EAAE,MAAM,CAAC;QAChB,KAAK,EAAE,IAAI,EAAE,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;QACd,GAAG,EAAE,MAAM,CAAC;QACZ,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;KACtB,CAAC;CACH,GAAG;IACF,OAAO,EAAE;QACP,aAAa,EAAE,MAAM,CAAC;QACtB,GAAG,EAAE,MAAM,CAAC;QACZ,WAAW,EAAE,MAAM,CAAC;QACpB,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;KACtB,CAAC;CACH,GAAG;IACF,YAAY,EAAE;QACZ,KAAK,EAAE,MAAM,CAAC;QACd,aAAa,EAAE,MAAM,CAAC;QACtB,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;KACtB,CAAC;CACH,GAAG;IACF,WAAW,EAAE;QACX,aAAa,EAAE,MAAM,CAAC;QACtB,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;KACtB,CAAC;CACH,CAAC;AACF,MAAM,MAAM,MAAM,GAAG;IACnB,IAAI,EAAE;QACJ,WAAW,EAAE,MAAM,CAAC;QACpB,IAAI,EAAE,UAAU,CAAC;QACjB,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;KACtB,CAAC;CACH,CAAC;AACF,MAAM,MAAM,UAAU,GAAG,KAAK,GAAG,IAAI,GAAG,SAAS,GAAG,cAAc,CAAC;AACnE,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC;AAC/B,MAAM,WAAW,IAAI;IACnB,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CACtB;AACD,MAAM,WAAW,KAAK;IACpB,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CACtB;AACD,MAAM,WAAW,UAAU;IACzB,KAAK,CAAC,EAAE,eAAe,GAAG,IAAI,CAAC;IAC/B,SAAS,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC;IAC7B,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CACtB;AACD,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CACtB;AACD,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,SAAS,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,SAAS,CAAC;CACnB;AACD,MAAM,MAAM,QAAQ,GAAG;IACrB,gBAAgB,EAAE;QAChB,GAAG,EAAE,UAAU,EAAE,CAAC;KACnB,CAAC;CACH,CAAC;AACF,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AACD,MAAM,WAAW,UAAU;CAAG;AAC9B,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB"} \ No newline at end of file diff --git a/ts/sdk/types/contracts/index.d.ts b/ts/sdk/types/contracts/index.d.ts deleted file mode 100644 index 936d728c..00000000 --- a/ts/sdk/types/contracts/index.d.ts +++ /dev/null @@ -1,36 +0,0 @@ -/** -* This file was automatically generated by @cosmwasm/ts-codegen@0.16.5. -* DO NOT MODIFY IT BY HAND. Instead, modify the source JSONSchema file, -* and run the @cosmwasm/ts-codegen generate command to regenerate this file. -*/ -import * as _1 from "./Hub.client"; -import * as _2 from "./Hub.message-composer"; -import * as _4 from "./IsmMultisig.client"; -import * as _5 from "./IsmMultisig.message-composer"; -import * as _7 from "./Mailbox.client"; -import * as _8 from "./Mailbox.message-composer"; -import * as _10 from "./Multicall.client"; -import * as _11 from "./Multicall.message-composer"; -export declare namespace contracts { - const Hub: { - HubMessageComposer: typeof _2.HubMessageComposer; - HubQueryClient: typeof _1.HubQueryClient; - HubClient: typeof _1.HubClient; - }; - const IsmMultisig: { - IsmMultisigMessageComposer: typeof _5.IsmMultisigMessageComposer; - IsmMultisigQueryClient: typeof _4.IsmMultisigQueryClient; - IsmMultisigClient: typeof _4.IsmMultisigClient; - }; - const Mailbox: { - MailboxMessageComposer: typeof _8.MailboxMessageComposer; - MailboxQueryClient: typeof _7.MailboxQueryClient; - MailboxClient: typeof _7.MailboxClient; - }; - const Multicall: { - MulticallMessageComposer: typeof _11.MulticallMessageComposer; - MulticallQueryClient: typeof _10.MulticallQueryClient; - MulticallClient: typeof _10.MulticallClient; - }; -} -//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/ts/sdk/types/contracts/index.d.ts.map b/ts/sdk/types/contracts/index.d.ts.map deleted file mode 100644 index a93dea97..00000000 --- a/ts/sdk/types/contracts/index.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/contracts/index.ts"],"names":[],"mappings":"AAAA;;;;EAIE;AAGF,OAAO,KAAK,EAAE,MAAM,cAAc,CAAC;AACnC,OAAO,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAE7C,OAAO,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAC3C,OAAO,KAAK,EAAE,MAAM,gCAAgC,CAAC;AAErD,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,KAAK,EAAE,MAAM,4BAA4B,CAAC;AAEjD,OAAO,KAAK,GAAG,MAAM,oBAAoB,CAAC;AAC1C,OAAO,KAAK,GAAG,MAAM,8BAA8B,CAAC;AACpD,yBAAiB,SAAS,CAAC;IAClB,MAAM,GAAG;;;;KAGf,CAAC;IACK,MAAM,WAAW;;;;KAGvB,CAAC;IACK,MAAM,OAAO;;;;KAGnB,CAAC;IACK,MAAM,SAAS;;;;KAGrB,CAAC;CACH"} \ No newline at end of file diff --git a/ts/sdk/types/index.d.ts b/ts/sdk/types/index.d.ts deleted file mode 100644 index 14e3ba3d..00000000 --- a/ts/sdk/types/index.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { contracts } from "./contracts"; -export default contracts; -//# sourceMappingURL=index.d.ts.map \ No newline at end of file diff --git a/ts/sdk/types/index.d.ts.map b/ts/sdk/types/index.d.ts.map deleted file mode 100644 index e157bfd4..00000000 --- a/ts/sdk/types/index.d.ts.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,eAAe,SAAS,CAAC"} \ No newline at end of file diff --git a/scripts/tsconfig.json b/tsconfig.json similarity index 80% rename from scripts/tsconfig.json rename to tsconfig.json index 25615870..4a3fbdb0 100644 --- a/scripts/tsconfig.json +++ b/tsconfig.json @@ -1,19 +1,20 @@ { "compilerOptions": { - "lib": ["es2021", "webworker"], - "module": "commonjs", "target": "es2021", + "lib": ["es2021"], + "types": ["reflect-metadata", "node"], + "module": "commonjs", + "moduleResolution": "node", + "experimentalDecorators": true, + "emitDecoratorMetadata": true, "strict": true, "esModuleInterop": true, "skipLibCheck": true, "forceConsistentCasingInFileNames": true, - "moduleResolution": "node", "resolveJsonModule": true, - "experimentalDecorators": true, - "emitDecoratorMetadata": true, "strictPropertyInitialization": false, "outDir": "dist", "declaration": true /* Skip type checking all .d.ts files. */ }, - "include": ["src/**/*.ts", "*.ts", "action/**/*.ts"] + "include": ["script/**/*.ts", "example/**/*.ts"] } diff --git a/yarn.lock b/yarn.lock new file mode 100644 index 00000000..d1bb3619 --- /dev/null +++ b/yarn.lock @@ -0,0 +1,7269 @@ +# This file is generated by running "yarn install" inside your project. +# Manual changes might be lost - proceed with caution! + +__metadata: + version: 8 + cacheKey: 10c0 + +"@adraffy/ens-normalize@npm:1.10.0": + version: 1.10.0 + resolution: "@adraffy/ens-normalize@npm:1.10.0" + checksum: 10c0/78ae700847a2516d5a0ae12c4e23d09392a40c67e73b137eb7189f51afb1601c8d18784aeda2ed288a278997824dc924d1f398852c21d41ee2c4c564f2fb4d26 + languageName: node + linkType: hard + +"@ampproject/remapping@npm:^2.1.0, @ampproject/remapping@npm:^2.2.0": + version: 2.2.1 + resolution: "@ampproject/remapping@npm:2.2.1" + dependencies: + "@jridgewell/gen-mapping": "npm:^0.3.0" + "@jridgewell/trace-mapping": "npm:^0.3.9" + checksum: 10c0/92ce5915f8901d8c7cd4f4e6e2fe7b9fd335a29955b400caa52e0e5b12ca3796ada7c2f10e78c9c5b0f9c2539dff0ffea7b19850a56e1487aa083531e1e46d43 + languageName: node + linkType: hard + +"@babel/code-frame@npm:^7.18.6, @babel/code-frame@npm:^7.23.5": + version: 7.23.5 + resolution: "@babel/code-frame@npm:7.23.5" + dependencies: + "@babel/highlight": "npm:^7.23.4" + chalk: "npm:^2.4.2" + checksum: 10c0/a10e843595ddd9f97faa99917414813c06214f4d9205294013e20c70fbdf4f943760da37dec1d998bf3e6fc20fa2918a47c0e987a7e458663feb7698063ad7c6 + languageName: node + linkType: hard + +"@babel/compat-data@npm:^7.17.7, @babel/compat-data@npm:^7.18.8, @babel/compat-data@npm:^7.20.5, @babel/compat-data@npm:^7.23.5": + version: 7.23.5 + resolution: "@babel/compat-data@npm:7.23.5" + checksum: 10c0/081278ed46131a890ad566a59c61600a5f9557bd8ee5e535890c8548192532ea92590742fd74bd9db83d74c669ef8a04a7e1c85cdea27f960233e3b83c3a957c + languageName: node + linkType: hard + +"@babel/core@npm:7.18.10": + version: 7.18.10 + resolution: "@babel/core@npm:7.18.10" + dependencies: + "@ampproject/remapping": "npm:^2.1.0" + "@babel/code-frame": "npm:^7.18.6" + "@babel/generator": "npm:^7.18.10" + "@babel/helper-compilation-targets": "npm:^7.18.9" + "@babel/helper-module-transforms": "npm:^7.18.9" + "@babel/helpers": "npm:^7.18.9" + "@babel/parser": "npm:^7.18.10" + "@babel/template": "npm:^7.18.10" + "@babel/traverse": "npm:^7.18.10" + "@babel/types": "npm:^7.18.10" + convert-source-map: "npm:^1.7.0" + debug: "npm:^4.1.0" + gensync: "npm:^1.0.0-beta.2" + json5: "npm:^2.2.1" + semver: "npm:^6.3.0" + checksum: 10c0/94f749fb8bb844f5c5324513cac23edf781e24c15645a513eb54afc0e2f71d8c15c02e61f216a79f0f997deafc062b7c54bf2ebf31a2f62d0dd12bcbbc15dc97 + languageName: node + linkType: hard + +"@babel/core@npm:^7.11.6, @babel/core@npm:^7.12.3": + version: 7.23.9 + resolution: "@babel/core@npm:7.23.9" + dependencies: + "@ampproject/remapping": "npm:^2.2.0" + "@babel/code-frame": "npm:^7.23.5" + "@babel/generator": "npm:^7.23.6" + "@babel/helper-compilation-targets": "npm:^7.23.6" + "@babel/helper-module-transforms": "npm:^7.23.3" + "@babel/helpers": "npm:^7.23.9" + "@babel/parser": "npm:^7.23.9" + "@babel/template": "npm:^7.23.9" + "@babel/traverse": "npm:^7.23.9" + "@babel/types": "npm:^7.23.9" + convert-source-map: "npm:^2.0.0" + debug: "npm:^4.1.0" + gensync: "npm:^1.0.0-beta.2" + json5: "npm:^2.2.3" + semver: "npm:^6.3.1" + checksum: 10c0/03883300bf1252ab4c9ba5b52f161232dd52873dbe5cde9289bb2bb26e935c42682493acbac9194a59a3b6cbd17f4c4c84030db8d6d482588afe64531532ff9b + languageName: node + linkType: hard + +"@babel/generator@npm:7.18.12": + version: 7.18.12 + resolution: "@babel/generator@npm:7.18.12" + dependencies: + "@babel/types": "npm:^7.18.10" + "@jridgewell/gen-mapping": "npm:^0.3.2" + jsesc: "npm:^2.5.1" + checksum: 10c0/0a81453f3d6f458b6eeac046cb47b897674ea12ac7c72068faed1762aedade2290fbd139fcb605c4ea8386014aa87a0c96e609d8c469b434ab5923189e075ad1 + languageName: node + linkType: hard + +"@babel/generator@npm:^7.18.10, @babel/generator@npm:^7.23.6": + version: 7.23.6 + resolution: "@babel/generator@npm:7.23.6" + dependencies: + "@babel/types": "npm:^7.23.6" + "@jridgewell/gen-mapping": "npm:^0.3.2" + "@jridgewell/trace-mapping": "npm:^0.3.17" + jsesc: "npm:^2.5.1" + checksum: 10c0/53540e905cd10db05d9aee0a5304e36927f455ce66f95d1253bb8a179f286b88fa7062ea0db354c566fe27f8bb96567566084ffd259f8feaae1de5eccc8afbda + languageName: node + linkType: hard + +"@babel/helper-annotate-as-pure@npm:^7.18.6, @babel/helper-annotate-as-pure@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/helper-annotate-as-pure@npm:7.22.5" + dependencies: + "@babel/types": "npm:^7.22.5" + checksum: 10c0/5a80dc364ddda26b334bbbc0f6426cab647381555ef7d0cd32eb284e35b867c012ce6ce7d52a64672ed71383099c99d32765b3d260626527bb0e3470b0f58e45 + languageName: node + linkType: hard + +"@babel/helper-builder-binary-assignment-operator-visitor@npm:^7.22.15": + version: 7.22.15 + resolution: "@babel/helper-builder-binary-assignment-operator-visitor@npm:7.22.15" + dependencies: + "@babel/types": "npm:^7.22.15" + checksum: 10c0/2535e3824ca6337f65786bbac98e562f71699f25532cecd196f027d7698b4967a96953d64e36567956658ad1a05ccbdc62d1ba79ee751c79f4f1d2d3ecc2e01c + languageName: node + linkType: hard + +"@babel/helper-compilation-targets@npm:^7.17.7, @babel/helper-compilation-targets@npm:^7.18.9, @babel/helper-compilation-targets@npm:^7.20.7, @babel/helper-compilation-targets@npm:^7.22.15, @babel/helper-compilation-targets@npm:^7.23.6": + version: 7.23.6 + resolution: "@babel/helper-compilation-targets@npm:7.23.6" + dependencies: + "@babel/compat-data": "npm:^7.23.5" + "@babel/helper-validator-option": "npm:^7.23.5" + browserslist: "npm:^4.22.2" + lru-cache: "npm:^5.1.1" + semver: "npm:^6.3.1" + checksum: 10c0/ba38506d11185f48b79abf439462ece271d3eead1673dd8814519c8c903c708523428806f05f2ec5efd0c56e4e278698fac967e5a4b5ee842c32415da54bc6fa + languageName: node + linkType: hard + +"@babel/helper-create-class-features-plugin@npm:^7.18.6, @babel/helper-create-class-features-plugin@npm:^7.21.0, @babel/helper-create-class-features-plugin@npm:^7.23.6": + version: 7.23.10 + resolution: "@babel/helper-create-class-features-plugin@npm:7.23.10" + dependencies: + "@babel/helper-annotate-as-pure": "npm:^7.22.5" + "@babel/helper-environment-visitor": "npm:^7.22.20" + "@babel/helper-function-name": "npm:^7.23.0" + "@babel/helper-member-expression-to-functions": "npm:^7.23.0" + "@babel/helper-optimise-call-expression": "npm:^7.22.5" + "@babel/helper-replace-supers": "npm:^7.22.20" + "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.22.5" + "@babel/helper-split-export-declaration": "npm:^7.22.6" + semver: "npm:^6.3.1" + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 10c0/f30437aa16f3585cc3382ea630f24457ef622c22f5e4eccffbc03f6a81efbef0b6714fb5a78baa64c838884ba7e1427e3280d7b27481b9f587bc8fbbed05dd36 + languageName: node + linkType: hard + +"@babel/helper-create-regexp-features-plugin@npm:^7.18.6, @babel/helper-create-regexp-features-plugin@npm:^7.22.15, @babel/helper-create-regexp-features-plugin@npm:^7.22.5": + version: 7.22.15 + resolution: "@babel/helper-create-regexp-features-plugin@npm:7.22.15" + dependencies: + "@babel/helper-annotate-as-pure": "npm:^7.22.5" + regexpu-core: "npm:^5.3.1" + semver: "npm:^6.3.1" + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 10c0/8eba4c1b7b94a83e7a82df5c3e504584ff0ba6ab8710a67ecc2c434a7fb841a29c2f5c94d2de51f25446119a1df538fa90b37bd570db22ddd5e7147fe98277c6 + languageName: node + linkType: hard + +"@babel/helper-define-polyfill-provider@npm:^0.3.2, @babel/helper-define-polyfill-provider@npm:^0.3.3": + version: 0.3.3 + resolution: "@babel/helper-define-polyfill-provider@npm:0.3.3" + dependencies: + "@babel/helper-compilation-targets": "npm:^7.17.7" + "@babel/helper-plugin-utils": "npm:^7.16.7" + debug: "npm:^4.1.1" + lodash.debounce: "npm:^4.0.8" + resolve: "npm:^1.14.2" + semver: "npm:^6.1.2" + peerDependencies: + "@babel/core": ^7.4.0-0 + checksum: 10c0/c3668f9ee2b76bfc08398756c504a8823e18bad05d0c2ee039b821c839e2b70f3b6ad8b7a3d3a6be434d981ed2af845a490aafecc50eaefb9b5099f2da156527 + languageName: node + linkType: hard + +"@babel/helper-environment-visitor@npm:^7.18.9, @babel/helper-environment-visitor@npm:^7.22.20": + version: 7.22.20 + resolution: "@babel/helper-environment-visitor@npm:7.22.20" + checksum: 10c0/e762c2d8f5d423af89bd7ae9abe35bd4836d2eb401af868a63bbb63220c513c783e25ef001019418560b3fdc6d9a6fb67e6c0b650bcdeb3a2ac44b5c3d2bdd94 + languageName: node + linkType: hard + +"@babel/helper-function-name@npm:^7.18.9, @babel/helper-function-name@npm:^7.22.5, @babel/helper-function-name@npm:^7.23.0": + version: 7.23.0 + resolution: "@babel/helper-function-name@npm:7.23.0" + dependencies: + "@babel/template": "npm:^7.22.15" + "@babel/types": "npm:^7.23.0" + checksum: 10c0/d771dd1f3222b120518176733c52b7cadac1c256ff49b1889dbbe5e3fed81db855b8cc4e40d949c9d3eae0e795e8229c1c8c24c0e83f27cfa6ee3766696c6428 + languageName: node + linkType: hard + +"@babel/helper-hoist-variables@npm:^7.18.6, @babel/helper-hoist-variables@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/helper-hoist-variables@npm:7.22.5" + dependencies: + "@babel/types": "npm:^7.22.5" + checksum: 10c0/60a3077f756a1cd9f14eb89f0037f487d81ede2b7cfe652ea6869cd4ec4c782b0fb1de01b8494b9a2d2050e3d154d7d5ad3be24806790acfb8cbe2073bf1e208 + languageName: node + linkType: hard + +"@babel/helper-member-expression-to-functions@npm:^7.22.15, @babel/helper-member-expression-to-functions@npm:^7.23.0": + version: 7.23.0 + resolution: "@babel/helper-member-expression-to-functions@npm:7.23.0" + dependencies: + "@babel/types": "npm:^7.23.0" + checksum: 10c0/b810daddf093ffd0802f1429052349ed9ea08ef7d0c56da34ffbcdecbdafac86f95bdea2fe30e0e0e629febc7dd41b56cb5eacc10d1a44336d37b755dac31fa4 + languageName: node + linkType: hard + +"@babel/helper-module-imports@npm:^7.18.6, @babel/helper-module-imports@npm:^7.22.15": + version: 7.22.15 + resolution: "@babel/helper-module-imports@npm:7.22.15" + dependencies: + "@babel/types": "npm:^7.22.15" + checksum: 10c0/4e0d7fc36d02c1b8c8b3006dfbfeedf7a367d3334a04934255de5128115ea0bafdeb3e5736a2559917f0653e4e437400d54542da0468e08d3cbc86d3bbfa8f30 + languageName: node + linkType: hard + +"@babel/helper-module-transforms@npm:^7.18.9, @babel/helper-module-transforms@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/helper-module-transforms@npm:7.23.3" + dependencies: + "@babel/helper-environment-visitor": "npm:^7.22.20" + "@babel/helper-module-imports": "npm:^7.22.15" + "@babel/helper-simple-access": "npm:^7.22.5" + "@babel/helper-split-export-declaration": "npm:^7.22.6" + "@babel/helper-validator-identifier": "npm:^7.22.20" + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 10c0/211e1399d0c4993671e8e5c2b25383f08bee40004ace5404ed4065f0e9258cc85d99c1b82fd456c030ce5cfd4d8f310355b54ef35de9924eabfc3dff1331d946 + languageName: node + linkType: hard + +"@babel/helper-optimise-call-expression@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/helper-optimise-call-expression@npm:7.22.5" + dependencies: + "@babel/types": "npm:^7.22.5" + checksum: 10c0/31b41a764fc3c585196cf5b776b70cf4705c132e4ce9723f39871f215f2ddbfb2e28a62f9917610f67c8216c1080482b9b05f65dd195dae2a52cef461f2ac7b8 + languageName: node + linkType: hard + +"@babel/helper-plugin-utils@npm:^7.0.0, @babel/helper-plugin-utils@npm:^7.10.4, @babel/helper-plugin-utils@npm:^7.12.13, @babel/helper-plugin-utils@npm:^7.14.5, @babel/helper-plugin-utils@npm:^7.16.7, @babel/helper-plugin-utils@npm:^7.18.6, @babel/helper-plugin-utils@npm:^7.18.9, @babel/helper-plugin-utils@npm:^7.20.2, @babel/helper-plugin-utils@npm:^7.22.5, @babel/helper-plugin-utils@npm:^7.8.0, @babel/helper-plugin-utils@npm:^7.8.3": + version: 7.22.5 + resolution: "@babel/helper-plugin-utils@npm:7.22.5" + checksum: 10c0/d2c4bfe2fa91058bcdee4f4e57a3f4933aed7af843acfd169cd6179fab8d13c1d636474ecabb2af107dc77462c7e893199aa26632bac1c6d7e025a17cbb9d20d + languageName: node + linkType: hard + +"@babel/helper-remap-async-to-generator@npm:^7.18.9, @babel/helper-remap-async-to-generator@npm:^7.22.20": + version: 7.22.20 + resolution: "@babel/helper-remap-async-to-generator@npm:7.22.20" + dependencies: + "@babel/helper-annotate-as-pure": "npm:^7.22.5" + "@babel/helper-environment-visitor": "npm:^7.22.20" + "@babel/helper-wrap-function": "npm:^7.22.20" + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 10c0/aa93aa74250b636d477e8d863fbe59d4071f8c2654841b7ac608909e480c1cf3ff7d7af5a4038568829ad09d810bb681668cbe497d9c89ba5c352793dc9edf1e + languageName: node + linkType: hard + +"@babel/helper-replace-supers@npm:^7.22.20": + version: 7.22.20 + resolution: "@babel/helper-replace-supers@npm:7.22.20" + dependencies: + "@babel/helper-environment-visitor": "npm:^7.22.20" + "@babel/helper-member-expression-to-functions": "npm:^7.22.15" + "@babel/helper-optimise-call-expression": "npm:^7.22.5" + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 10c0/6b0858811ad46873817c90c805015d63300e003c5a85c147a17d9845fa2558a02047c3cc1f07767af59014b2dd0fa75b503e5bc36e917f360e9b67bb6f1e79f4 + languageName: node + linkType: hard + +"@babel/helper-simple-access@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/helper-simple-access@npm:7.22.5" + dependencies: + "@babel/types": "npm:^7.22.5" + checksum: 10c0/f0cf81a30ba3d09a625fd50e5a9069e575c5b6719234e04ee74247057f8104beca89ed03e9217b6e9b0493434cedc18c5ecca4cea6244990836f1f893e140369 + languageName: node + linkType: hard + +"@babel/helper-skip-transparent-expression-wrappers@npm:^7.20.0, @babel/helper-skip-transparent-expression-wrappers@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/helper-skip-transparent-expression-wrappers@npm:7.22.5" + dependencies: + "@babel/types": "npm:^7.22.5" + checksum: 10c0/ab7fa2aa709ab49bb8cd86515a1e715a3108c4bb9a616965ba76b43dc346dee66d1004ccf4d222b596b6224e43e04cbc5c3a34459501b388451f8c589fbc3691 + languageName: node + linkType: hard + +"@babel/helper-split-export-declaration@npm:^7.18.6, @babel/helper-split-export-declaration@npm:^7.22.6": + version: 7.22.6 + resolution: "@babel/helper-split-export-declaration@npm:7.22.6" + dependencies: + "@babel/types": "npm:^7.22.5" + checksum: 10c0/d83e4b623eaa9622c267d3c83583b72f3aac567dc393dda18e559d79187961cb29ae9c57b2664137fc3d19508370b12ec6a81d28af73a50e0846819cb21c6e44 + languageName: node + linkType: hard + +"@babel/helper-string-parser@npm:^7.18.10, @babel/helper-string-parser@npm:^7.23.4": + version: 7.23.4 + resolution: "@babel/helper-string-parser@npm:7.23.4" + checksum: 10c0/f348d5637ad70b6b54b026d6544bd9040f78d24e7ec245a0fc42293968181f6ae9879c22d89744730d246ce8ec53588f716f102addd4df8bbc79b73ea10004ac + languageName: node + linkType: hard + +"@babel/helper-validator-identifier@npm:^7.18.6, @babel/helper-validator-identifier@npm:^7.22.20": + version: 7.22.20 + resolution: "@babel/helper-validator-identifier@npm:7.22.20" + checksum: 10c0/dcad63db345fb110e032de46c3688384b0008a42a4845180ce7cd62b1a9c0507a1bed727c4d1060ed1a03ae57b4d918570259f81724aaac1a5b776056f37504e + languageName: node + linkType: hard + +"@babel/helper-validator-option@npm:^7.18.6, @babel/helper-validator-option@npm:^7.22.15, @babel/helper-validator-option@npm:^7.23.5": + version: 7.23.5 + resolution: "@babel/helper-validator-option@npm:7.23.5" + checksum: 10c0/af45d5c0defb292ba6fd38979e8f13d7da63f9623d8ab9ededc394f67eb45857d2601278d151ae9affb6e03d5d608485806cd45af08b4468a0515cf506510e94 + languageName: node + linkType: hard + +"@babel/helper-wrap-function@npm:^7.22.20": + version: 7.22.20 + resolution: "@babel/helper-wrap-function@npm:7.22.20" + dependencies: + "@babel/helper-function-name": "npm:^7.22.5" + "@babel/template": "npm:^7.22.15" + "@babel/types": "npm:^7.22.19" + checksum: 10c0/97b5f42ff4d305318ff2f99a5f59d3e97feff478333b2d893c4f85456d3c66372070f71d7bf9141f598c8cf2741c49a15918193633c427a88d170d98eb8c46eb + languageName: node + linkType: hard + +"@babel/helpers@npm:^7.18.9, @babel/helpers@npm:^7.23.9": + version: 7.23.9 + resolution: "@babel/helpers@npm:7.23.9" + dependencies: + "@babel/template": "npm:^7.23.9" + "@babel/traverse": "npm:^7.23.9" + "@babel/types": "npm:^7.23.9" + checksum: 10c0/f69fd0aca96a6fb8bd6dd044cd8a5c0f1851072d4ce23355345b9493c4032e76d1217f86b70df795e127553cf7f3fcd1587ede9d1b03b95e8b62681ca2165b87 + languageName: node + linkType: hard + +"@babel/highlight@npm:^7.23.4": + version: 7.23.4 + resolution: "@babel/highlight@npm:7.23.4" + dependencies: + "@babel/helper-validator-identifier": "npm:^7.22.20" + chalk: "npm:^2.4.2" + js-tokens: "npm:^4.0.0" + checksum: 10c0/fbff9fcb2f5539289c3c097d130e852afd10d89a3a08ac0b5ebebbc055cc84a4bcc3dcfed463d488cde12dd0902ef1858279e31d7349b2e8cee43913744bda33 + languageName: node + linkType: hard + +"@babel/parser@npm:7.18.11": + version: 7.18.11 + resolution: "@babel/parser@npm:7.18.11" + bin: + parser: ./bin/babel-parser.js + checksum: 10c0/babaa1a445681102f9d5e6dfae5155720eefe60e0b4f2623aa1a9454252e6ea840b5bce0e1f07fb880bf0a3f604d4b6220cf368a09dd6b77b462f9e2cb618e15 + languageName: node + linkType: hard + +"@babel/parser@npm:^7.14.7, @babel/parser@npm:^7.18.10, @babel/parser@npm:^7.18.11, @babel/parser@npm:^7.23.9": + version: 7.23.9 + resolution: "@babel/parser@npm:7.23.9" + bin: + parser: ./bin/babel-parser.js + checksum: 10c0/7df97386431366d4810538db4b9ec538f4377096f720c0591c7587a16f6810e62747e9fbbfa1ff99257fd4330035e4fb1b5b77c7bd3b97ce0d2e3780a6618975 + languageName: node + linkType: hard + +"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:^7.18.6": + version: 7.23.3 + resolution: "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:7.23.3" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.22.5" + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 10c0/356a4e9fc52d7ca761ce6857fc58e2295c2785d22565760e6a5680be86c6e5883ab86e0ba25ef572882c01713d3a31ae6cfa3e3222cdb95e6026671dab1fa415 + languageName: node + linkType: hard + +"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:^7.18.9": + version: 7.23.3 + resolution: "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:7.23.3" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.22.5" + "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.22.5" + "@babel/plugin-transform-optional-chaining": "npm:^7.23.3" + peerDependencies: + "@babel/core": ^7.13.0 + checksum: 10c0/a8785f099d55ca71ed89815e0f3a636a80c16031f80934cfec17c928d096ee0798964733320c8b145ef36ba429c5e19d5107b06231e0ab6777cfb0f01adfdc23 + languageName: node + linkType: hard + +"@babel/plugin-proposal-async-generator-functions@npm:^7.18.10": + version: 7.20.7 + resolution: "@babel/plugin-proposal-async-generator-functions@npm:7.20.7" + dependencies: + "@babel/helper-environment-visitor": "npm:^7.18.9" + "@babel/helper-plugin-utils": "npm:^7.20.2" + "@babel/helper-remap-async-to-generator": "npm:^7.18.9" + "@babel/plugin-syntax-async-generators": "npm:^7.8.4" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/0f4bc01805704ae4840536acc9888c50a32250e9188d025063bd17fe77ed171a12361c3dc83ce99664dcd73aec612accb8da95b0d8b825c854931b2860c0bfb5 + languageName: node + linkType: hard + +"@babel/plugin-proposal-class-properties@npm:7.18.6, @babel/plugin-proposal-class-properties@npm:^7.18.6": + version: 7.18.6 + resolution: "@babel/plugin-proposal-class-properties@npm:7.18.6" + dependencies: + "@babel/helper-create-class-features-plugin": "npm:^7.18.6" + "@babel/helper-plugin-utils": "npm:^7.18.6" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/d5172ac6c9948cdfc387e94f3493ad86cb04035cf7433f86b5d358270b1b9752dc25e176db0c5d65892a246aca7bdb4636672e15626d7a7de4bc0bd0040168d9 + languageName: node + linkType: hard + +"@babel/plugin-proposal-class-static-block@npm:^7.18.6": + version: 7.21.0 + resolution: "@babel/plugin-proposal-class-static-block@npm:7.21.0" + dependencies: + "@babel/helper-create-class-features-plugin": "npm:^7.21.0" + "@babel/helper-plugin-utils": "npm:^7.20.2" + "@babel/plugin-syntax-class-static-block": "npm:^7.14.5" + peerDependencies: + "@babel/core": ^7.12.0 + checksum: 10c0/b46eb08badd7943c7bdf06fa6f1bb171e00f26d3c25e912205f735ccc321d1dbe8d023d97491320017e0e5d083b7aab3104f5a661535597d278a6c833c97eb79 + languageName: node + linkType: hard + +"@babel/plugin-proposal-dynamic-import@npm:^7.18.6": + version: 7.18.6 + resolution: "@babel/plugin-proposal-dynamic-import@npm:7.18.6" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.18.6" + "@babel/plugin-syntax-dynamic-import": "npm:^7.8.3" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/99be9865edfd65a46afb97d877ea247a8e881b4d0246a1ea0adf6db04c92f4f0959bd2f6f706d73248a2a7167c34f2464c4863137ddb94deadc5c7cc8bfc3e72 + languageName: node + linkType: hard + +"@babel/plugin-proposal-export-default-from@npm:7.18.10": + version: 7.18.10 + resolution: "@babel/plugin-proposal-export-default-from@npm:7.18.10" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.18.9" + "@babel/plugin-syntax-export-default-from": "npm:^7.18.6" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/9ac33f8784e7a6ad0e74dabc5f45ff3aff06b57154e83f3e7fa867c45653820ec4796bf87af886bfebbf4d0762fa9efa8bfa03f7485710bbdca1c595bf698a58 + languageName: node + linkType: hard + +"@babel/plugin-proposal-export-namespace-from@npm:^7.18.9": + version: 7.18.9 + resolution: "@babel/plugin-proposal-export-namespace-from@npm:7.18.9" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.18.9" + "@babel/plugin-syntax-export-namespace-from": "npm:^7.8.3" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/b90346bd3628ebd44138d0628a5aba1e6b11748893fb48e87008cac30f3bc7cd3161362e49433156737350318174164436357a66fbbfdbe952606b460bd8a0e4 + languageName: node + linkType: hard + +"@babel/plugin-proposal-json-strings@npm:^7.18.6": + version: 7.18.6 + resolution: "@babel/plugin-proposal-json-strings@npm:7.18.6" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.18.6" + "@babel/plugin-syntax-json-strings": "npm:^7.8.3" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/83f2ce41262a538ee43450044b9b0de320002473e4849421a7318c0500f9b0385c03d228f1be777ad71fd358aef13392e3551f0be52b5c423b0c34f7c9e5a06d + languageName: node + linkType: hard + +"@babel/plugin-proposal-logical-assignment-operators@npm:^7.18.9": + version: 7.20.7 + resolution: "@babel/plugin-proposal-logical-assignment-operators@npm:7.20.7" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.20.2" + "@babel/plugin-syntax-logical-assignment-operators": "npm:^7.10.4" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/436c1ee9f983813fc52788980a7231414351bd34d80b16b83bddb09115386292fe4912cc6d172304eabbaf0c4813625331b9b5bc798acb0e8925cf0d2b394d4d + languageName: node + linkType: hard + +"@babel/plugin-proposal-nullish-coalescing-operator@npm:^7.18.6": + version: 7.18.6 + resolution: "@babel/plugin-proposal-nullish-coalescing-operator@npm:7.18.6" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.18.6" + "@babel/plugin-syntax-nullish-coalescing-operator": "npm:^7.8.3" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/f6629158196ee9f16295d16db75825092ef543f8b98f4dfdd516e642a0430c7b1d69319ee676d35485d9b86a53ade6de0b883490d44de6d4336d38cdeccbe0bf + languageName: node + linkType: hard + +"@babel/plugin-proposal-numeric-separator@npm:^7.18.6": + version: 7.18.6 + resolution: "@babel/plugin-proposal-numeric-separator@npm:7.18.6" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.18.6" + "@babel/plugin-syntax-numeric-separator": "npm:^7.10.4" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/a83a65c6ec0d2293d830e9db61406d246f22d8ea03583d68460cb1b6330c6699320acce1b45f66ba3c357830720e49267e3d99f95088be457c66e6450fbfe3fa + languageName: node + linkType: hard + +"@babel/plugin-proposal-object-rest-spread@npm:7.18.9": + version: 7.18.9 + resolution: "@babel/plugin-proposal-object-rest-spread@npm:7.18.9" + dependencies: + "@babel/compat-data": "npm:^7.18.8" + "@babel/helper-compilation-targets": "npm:^7.18.9" + "@babel/helper-plugin-utils": "npm:^7.18.9" + "@babel/plugin-syntax-object-rest-spread": "npm:^7.8.3" + "@babel/plugin-transform-parameters": "npm:^7.18.8" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/8e58aa40511897256f98dc558003ce3dd41073e30a9a63045eae1d5f4d9a599f5931670e19f3be62099b92be9381ccfa698c261101180dab2c257f23bde89e48 + languageName: node + linkType: hard + +"@babel/plugin-proposal-object-rest-spread@npm:^7.18.9": + version: 7.20.7 + resolution: "@babel/plugin-proposal-object-rest-spread@npm:7.20.7" + dependencies: + "@babel/compat-data": "npm:^7.20.5" + "@babel/helper-compilation-targets": "npm:^7.20.7" + "@babel/helper-plugin-utils": "npm:^7.20.2" + "@babel/plugin-syntax-object-rest-spread": "npm:^7.8.3" + "@babel/plugin-transform-parameters": "npm:^7.20.7" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/b9818749bb49d8095df64c45db682448d04743d96722984cbfd375733b2585c26d807f84b4fdb28474f2d614be6a6ffe3d96ffb121840e9e5345b2ccc0438bd8 + languageName: node + linkType: hard + +"@babel/plugin-proposal-optional-catch-binding@npm:^7.18.6": + version: 7.18.6 + resolution: "@babel/plugin-proposal-optional-catch-binding@npm:7.18.6" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.18.6" + "@babel/plugin-syntax-optional-catch-binding": "npm:^7.8.3" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/ab20153d9e95e0b73004fdf86b6a2d219be2a0ace9ca76cd9eccddb680c913fec173bca54d761b1bc6044edde0a53811f3e515908c3b16d2d81cfec1e2e17391 + languageName: node + linkType: hard + +"@babel/plugin-proposal-optional-chaining@npm:^7.18.9": + version: 7.21.0 + resolution: "@babel/plugin-proposal-optional-chaining@npm:7.21.0" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.20.2" + "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.20.0" + "@babel/plugin-syntax-optional-chaining": "npm:^7.8.3" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/b524a61b1de3f3ad287cd1e98c2a7f662178d21cd02205b0d615512e475f0159fa1b569fa7e34c8ed67baef689c0136fa20ba7d1bf058d186d30736a581a723f + languageName: node + linkType: hard + +"@babel/plugin-proposal-private-methods@npm:^7.18.6": + version: 7.18.6 + resolution: "@babel/plugin-proposal-private-methods@npm:7.18.6" + dependencies: + "@babel/helper-create-class-features-plugin": "npm:^7.18.6" + "@babel/helper-plugin-utils": "npm:^7.18.6" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/1c273d0ec3d49d0fe80bd754ec0191016e5b3ab4fb1e162ac0c014e9d3c1517a5d973afbf8b6dc9f9c98a8605c79e5f9e8b5ee158a4313fa68d1ff7b02084b6a + languageName: node + linkType: hard + +"@babel/plugin-proposal-private-property-in-object@npm:^7.18.6": + version: 7.21.11 + resolution: "@babel/plugin-proposal-private-property-in-object@npm:7.21.11" + dependencies: + "@babel/helper-annotate-as-pure": "npm:^7.18.6" + "@babel/helper-create-class-features-plugin": "npm:^7.21.0" + "@babel/helper-plugin-utils": "npm:^7.20.2" + "@babel/plugin-syntax-private-property-in-object": "npm:^7.14.5" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/3c8c9ea175101b1cbb2b0e8fee20fcbdd03eb0700d3581aa826ac3573c9b002f39b1512c2af9fd1903ff921bcc864da95ad3cdeba53c9fbcfb3dc23916eacf47 + languageName: node + linkType: hard + +"@babel/plugin-proposal-unicode-property-regex@npm:^7.18.6, @babel/plugin-proposal-unicode-property-regex@npm:^7.4.4": + version: 7.18.6 + resolution: "@babel/plugin-proposal-unicode-property-regex@npm:7.18.6" + dependencies: + "@babel/helper-create-regexp-features-plugin": "npm:^7.18.6" + "@babel/helper-plugin-utils": "npm:^7.18.6" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/c68feae57d9b1f4d98ecc2da63bda1993980deb509ccb08f6eace712ece8081032eb6532c304524b544c2dd577e2f9c2fe5c5bfd73d1955c946300def6fc7493 + languageName: node + linkType: hard + +"@babel/plugin-syntax-async-generators@npm:^7.8.4": + version: 7.8.4 + resolution: "@babel/plugin-syntax-async-generators@npm:7.8.4" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.8.0" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/d13efb282838481348c71073b6be6245b35d4f2f964a8f71e4174f235009f929ef7613df25f8d2338e2d3e44bc4265a9f8638c6aaa136d7a61fe95985f9725c8 + languageName: node + linkType: hard + +"@babel/plugin-syntax-class-properties@npm:^7.12.13": + version: 7.12.13 + resolution: "@babel/plugin-syntax-class-properties@npm:7.12.13" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.12.13" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/95168fa186416195280b1264fb18afcdcdcea780b3515537b766cb90de6ce042d42dd6a204a39002f794ae5845b02afb0fd4861a3308a861204a55e68310a120 + languageName: node + linkType: hard + +"@babel/plugin-syntax-class-static-block@npm:^7.14.5": + version: 7.14.5 + resolution: "@babel/plugin-syntax-class-static-block@npm:7.14.5" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.14.5" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/4464bf9115f4a2d02ce1454411baf9cfb665af1da53709c5c56953e5e2913745b0fcce82982a00463d6facbdd93445c691024e310b91431a1e2f024b158f6371 + languageName: node + linkType: hard + +"@babel/plugin-syntax-dynamic-import@npm:^7.8.3": + version: 7.8.3 + resolution: "@babel/plugin-syntax-dynamic-import@npm:7.8.3" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.8.0" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/9c50927bf71adf63f60c75370e2335879402648f468d0172bc912e303c6a3876927d8eb35807331b57f415392732ed05ab9b42c68ac30a936813ab549e0246c5 + languageName: node + linkType: hard + +"@babel/plugin-syntax-export-default-from@npm:^7.18.6": + version: 7.23.3 + resolution: "@babel/plugin-syntax-export-default-from@npm:7.23.3" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.22.5" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/2ba70712c1811c5191213ba31f62a8001aed75e652b529676c54a032924c0afcc1d99d1f9b305b696e0f43c1696486d6daa2c9ed1b597ad5b7087ecdf0500201 + languageName: node + linkType: hard + +"@babel/plugin-syntax-export-namespace-from@npm:^7.8.3": + version: 7.8.3 + resolution: "@babel/plugin-syntax-export-namespace-from@npm:7.8.3" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.8.3" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/5100d658ba563829700cd8d001ddc09f4c0187b1a13de300d729c5b3e87503f75a6d6c99c1794182f7f1a9f546ee009df4f15a0ce36376e206ed0012fa7cdc24 + languageName: node + linkType: hard + +"@babel/plugin-syntax-import-assertions@npm:^7.18.6": + version: 7.23.3 + resolution: "@babel/plugin-syntax-import-assertions@npm:7.23.3" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.22.5" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/7db8b59f75667bada2293353bb66b9d5651a673b22c72f47da9f5c46e719142481601b745f9822212fd7522f92e26e8576af37116f85dae1b5e5967f80d0faab + languageName: node + linkType: hard + +"@babel/plugin-syntax-json-strings@npm:^7.8.3": + version: 7.8.3 + resolution: "@babel/plugin-syntax-json-strings@npm:7.8.3" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.8.0" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/e98f31b2ec406c57757d115aac81d0336e8434101c224edd9a5c93cefa53faf63eacc69f3138960c8b25401315af03df37f68d316c151c4b933136716ed6906e + languageName: node + linkType: hard + +"@babel/plugin-syntax-jsx@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-syntax-jsx@npm:7.23.3" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.22.5" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/563bb7599b868773f1c7c1d441ecc9bc53aeb7832775da36752c926fc402a1fa5421505b39e724f71eb217c13e4b93117e081cac39723b0e11dac4c897f33c3e + languageName: node + linkType: hard + +"@babel/plugin-syntax-logical-assignment-operators@npm:^7.10.4": + version: 7.10.4 + resolution: "@babel/plugin-syntax-logical-assignment-operators@npm:7.10.4" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.10.4" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/2594cfbe29411ad5bc2ad4058de7b2f6a8c5b86eda525a993959438615479e59c012c14aec979e538d60a584a1a799b60d1b8942c3b18468cb9d99b8fd34cd0b + languageName: node + linkType: hard + +"@babel/plugin-syntax-nullish-coalescing-operator@npm:^7.8.3": + version: 7.8.3 + resolution: "@babel/plugin-syntax-nullish-coalescing-operator@npm:7.8.3" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.8.0" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/2024fbb1162899094cfc81152449b12bd0cc7053c6d4bda8ac2852545c87d0a851b1b72ed9560673cbf3ef6248257262c3c04aabf73117215c1b9cc7dd2542ce + languageName: node + linkType: hard + +"@babel/plugin-syntax-numeric-separator@npm:^7.10.4": + version: 7.10.4 + resolution: "@babel/plugin-syntax-numeric-separator@npm:7.10.4" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.10.4" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/c55a82b3113480942c6aa2fcbe976ff9caa74b7b1109ff4369641dfbc88d1da348aceb3c31b6ed311c84d1e7c479440b961906c735d0ab494f688bf2fd5b9bb9 + languageName: node + linkType: hard + +"@babel/plugin-syntax-object-rest-spread@npm:^7.8.3": + version: 7.8.3 + resolution: "@babel/plugin-syntax-object-rest-spread@npm:7.8.3" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.8.0" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/ee1eab52ea6437e3101a0a7018b0da698545230015fc8ab129d292980ec6dff94d265e9e90070e8ae5fed42f08f1622c14c94552c77bcac784b37f503a82ff26 + languageName: node + linkType: hard + +"@babel/plugin-syntax-optional-catch-binding@npm:^7.8.3": + version: 7.8.3 + resolution: "@babel/plugin-syntax-optional-catch-binding@npm:7.8.3" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.8.0" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/27e2493ab67a8ea6d693af1287f7e9acec206d1213ff107a928e85e173741e1d594196f99fec50e9dde404b09164f39dec5864c767212154ffe1caa6af0bc5af + languageName: node + linkType: hard + +"@babel/plugin-syntax-optional-chaining@npm:^7.8.3": + version: 7.8.3 + resolution: "@babel/plugin-syntax-optional-chaining@npm:7.8.3" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.8.0" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/46edddf2faa6ebf94147b8e8540dfc60a5ab718e2de4d01b2c0bdf250a4d642c2bd47cbcbb739febcb2bf75514dbcefad3c52208787994b8d0f8822490f55e81 + languageName: node + linkType: hard + +"@babel/plugin-syntax-private-property-in-object@npm:^7.14.5": + version: 7.14.5 + resolution: "@babel/plugin-syntax-private-property-in-object@npm:7.14.5" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.14.5" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/69822772561706c87f0a65bc92d0772cea74d6bc0911537904a676d5ff496a6d3ac4e05a166d8125fce4a16605bace141afc3611074e170a994e66e5397787f3 + languageName: node + linkType: hard + +"@babel/plugin-syntax-top-level-await@npm:^7.14.5": + version: 7.14.5 + resolution: "@babel/plugin-syntax-top-level-await@npm:7.14.5" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.14.5" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/14bf6e65d5bc1231ffa9def5f0ef30b19b51c218fcecaa78cd1bdf7939dfdf23f90336080b7f5196916368e399934ce5d581492d8292b46a2fb569d8b2da106f + languageName: node + linkType: hard + +"@babel/plugin-syntax-typescript@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-syntax-typescript@npm:7.23.3" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.22.5" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/4d6e9cdb9d0bfb9bd9b220fc951d937fce2ca69135ec121153572cebe81d86abc9a489208d6b69ee5f10cadcaeffa10d0425340a5029e40e14a6025021b90948 + languageName: node + linkType: hard + +"@babel/plugin-transform-arrow-functions@npm:^7.18.6": + version: 7.23.3 + resolution: "@babel/plugin-transform-arrow-functions@npm:7.23.3" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.22.5" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/b128315c058f5728d29b0b78723659b11de88247ea4d0388f0b935cddf60a80c40b9067acf45cbbe055bd796928faef152a09d9e4a0695465aca4394d9f109ca + languageName: node + linkType: hard + +"@babel/plugin-transform-async-to-generator@npm:^7.18.6": + version: 7.23.3 + resolution: "@babel/plugin-transform-async-to-generator@npm:7.23.3" + dependencies: + "@babel/helper-module-imports": "npm:^7.22.15" + "@babel/helper-plugin-utils": "npm:^7.22.5" + "@babel/helper-remap-async-to-generator": "npm:^7.22.20" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/da3ffd413eef02a8e2cfee3e0bb0d5fc0fcb795c187bc14a5a8e8874cdbdc43bbf00089c587412d7752d97efc5967c3c18ff5398e3017b9a14a06126f017e7e9 + languageName: node + linkType: hard + +"@babel/plugin-transform-block-scoped-functions@npm:^7.18.6": + version: 7.23.3 + resolution: "@babel/plugin-transform-block-scoped-functions@npm:7.23.3" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.22.5" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/82c12a11277528184a979163de7189ceb00129f60dd930b0d5313454310bf71205f302fb2bf0430247161c8a22aaa9fb9eec1459f9f7468206422c191978fd59 + languageName: node + linkType: hard + +"@babel/plugin-transform-block-scoping@npm:^7.18.9": + version: 7.23.4 + resolution: "@babel/plugin-transform-block-scoping@npm:7.23.4" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.22.5" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/83006804dddf980ab1bcd6d67bc381e24b58c776507c34f990468f820d0da71dba3697355ca4856532fa2eeb2a1e3e73c780f03760b5507a511cbedb0308e276 + languageName: node + linkType: hard + +"@babel/plugin-transform-classes@npm:^7.18.9": + version: 7.23.8 + resolution: "@babel/plugin-transform-classes@npm:7.23.8" + dependencies: + "@babel/helper-annotate-as-pure": "npm:^7.22.5" + "@babel/helper-compilation-targets": "npm:^7.23.6" + "@babel/helper-environment-visitor": "npm:^7.22.20" + "@babel/helper-function-name": "npm:^7.23.0" + "@babel/helper-plugin-utils": "npm:^7.22.5" + "@babel/helper-replace-supers": "npm:^7.22.20" + "@babel/helper-split-export-declaration": "npm:^7.22.6" + globals: "npm:^11.1.0" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/227ac5166501e04d9e7fbd5eda6869b084ffa4af6830ac12544ac6ea14953ca00eb1762b0df9349c0f6c8d2a799385910f558066cd0fb85b9ca437b1131a6043 + languageName: node + linkType: hard + +"@babel/plugin-transform-computed-properties@npm:^7.18.9": + version: 7.23.3 + resolution: "@babel/plugin-transform-computed-properties@npm:7.23.3" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.22.5" + "@babel/template": "npm:^7.22.15" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/3ca8a006f8e652b58c21ecb84df1d01a73f0a96b1d216fd09a890b235dd90cb966b152b603b88f7e850ae238644b1636ce5c30b7c029c0934b43383932372e4a + languageName: node + linkType: hard + +"@babel/plugin-transform-destructuring@npm:^7.18.9": + version: 7.23.3 + resolution: "@babel/plugin-transform-destructuring@npm:7.23.3" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.22.5" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/717e9a62c1b0c93c507f87b4eaf839ec08d3c3147f14d74ae240d8749488d9762a8b3950132be620a069bde70f4b3e4ee9867b226c973fcc40f3cdec975cde71 + languageName: node + linkType: hard + +"@babel/plugin-transform-dotall-regex@npm:^7.18.6, @babel/plugin-transform-dotall-regex@npm:^7.4.4": + version: 7.23.3 + resolution: "@babel/plugin-transform-dotall-regex@npm:7.23.3" + dependencies: + "@babel/helper-create-regexp-features-plugin": "npm:^7.22.15" + "@babel/helper-plugin-utils": "npm:^7.22.5" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/6c89286d1277c2a63802a453c797c87c1203f89e4c25115f7b6620f5fce15d8c8d37af613222f6aa497aa98773577a6ec8752e79e13d59bc5429270677ea010b + languageName: node + linkType: hard + +"@babel/plugin-transform-duplicate-keys@npm:^7.18.9": + version: 7.23.3 + resolution: "@babel/plugin-transform-duplicate-keys@npm:7.23.3" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.22.5" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/7e2640e4e6adccd5e7b0615b6e9239d7c98363e21c52086ea13759dfa11cf7159b255fc5331c2de435639ea8eb6acefae115ae0d797a3d19d12587652f8052a5 + languageName: node + linkType: hard + +"@babel/plugin-transform-exponentiation-operator@npm:^7.18.6": + version: 7.23.3 + resolution: "@babel/plugin-transform-exponentiation-operator@npm:7.23.3" + dependencies: + "@babel/helper-builder-binary-assignment-operator-visitor": "npm:^7.22.15" + "@babel/helper-plugin-utils": "npm:^7.22.5" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/5c33ee6a1bdc52fcdf0807f445b27e3fbdce33008531885e65a699762327565fffbcfde8395be7f21bcb22d582e425eddae45650c986462bb84ba68f43687516 + languageName: node + linkType: hard + +"@babel/plugin-transform-for-of@npm:^7.18.8": + version: 7.23.6 + resolution: "@babel/plugin-transform-for-of@npm:7.23.6" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.22.5" + "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.22.5" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/46681b6ab10f3ca2d961f50d4096b62ab5d551e1adad84e64be1ee23e72eb2f26a1e30e617e853c74f1349fffe4af68d33921a128543b6f24b6d46c09a3e2aec + languageName: node + linkType: hard + +"@babel/plugin-transform-function-name@npm:^7.18.9": + version: 7.23.3 + resolution: "@babel/plugin-transform-function-name@npm:7.23.3" + dependencies: + "@babel/helper-compilation-targets": "npm:^7.22.15" + "@babel/helper-function-name": "npm:^7.23.0" + "@babel/helper-plugin-utils": "npm:^7.22.5" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/89cb9747802118048115cf92a8f310752f02030549b26f008904990cbdc86c3d4a68e07ca3b5c46de8a46ed4df2cb576ac222c74c56de67253d2a3ddc2956083 + languageName: node + linkType: hard + +"@babel/plugin-transform-literals@npm:^7.18.9": + version: 7.23.3 + resolution: "@babel/plugin-transform-literals@npm:7.23.3" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.22.5" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/8292106b106201464c2bfdd5c014fe6a9ca1c0256eb0a8031deb20081e21906fe68b156186f77d993c23eeab6d8d6f5f66e8895eec7ed97ce6de5dbcafbcd7f4 + languageName: node + linkType: hard + +"@babel/plugin-transform-member-expression-literals@npm:^7.18.6": + version: 7.23.3 + resolution: "@babel/plugin-transform-member-expression-literals@npm:7.23.3" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.22.5" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/687f24f3ec60b627fef6e87b9e2770df77f76727b9d5f54fa4c84a495bb24eb4a20f1a6240fa22d339d45aac5eaeb1b39882e941bfd00cf498f9c53478d1ec88 + languageName: node + linkType: hard + +"@babel/plugin-transform-modules-amd@npm:^7.18.6": + version: 7.23.3 + resolution: "@babel/plugin-transform-modules-amd@npm:7.23.3" + dependencies: + "@babel/helper-module-transforms": "npm:^7.23.3" + "@babel/helper-plugin-utils": "npm:^7.22.5" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/9f7ec036f7cfc588833a4dd117a44813b64aa4c1fd5bfb6c78f60198c1d290938213090c93a46f97a68a2490fad909e21a82b2472e95da74d108c125df21c8d5 + languageName: node + linkType: hard + +"@babel/plugin-transform-modules-commonjs@npm:^7.18.6, @babel/plugin-transform-modules-commonjs@npm:^7.23.3": + version: 7.23.3 + resolution: "@babel/plugin-transform-modules-commonjs@npm:7.23.3" + dependencies: + "@babel/helper-module-transforms": "npm:^7.23.3" + "@babel/helper-plugin-utils": "npm:^7.22.5" + "@babel/helper-simple-access": "npm:^7.22.5" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/5c8840c5c9ecba39367ae17c973ed13dbc43234147b77ae780eec65010e2a9993c5d717721b23e8179f7cf49decdd325c509b241d69cfbf92aa647a1d8d5a37d + languageName: node + linkType: hard + +"@babel/plugin-transform-modules-systemjs@npm:^7.18.9": + version: 7.23.9 + resolution: "@babel/plugin-transform-modules-systemjs@npm:7.23.9" + dependencies: + "@babel/helper-hoist-variables": "npm:^7.22.5" + "@babel/helper-module-transforms": "npm:^7.23.3" + "@babel/helper-plugin-utils": "npm:^7.22.5" + "@babel/helper-validator-identifier": "npm:^7.22.20" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/1926631fe9d87c0c53427a3420ad49da62d53320d0016b6afab64e5417a672aa5bdff3ea1d24746ffa1e43319c28a80f5d8cef0ad214760d399c293b5850500f + languageName: node + linkType: hard + +"@babel/plugin-transform-modules-umd@npm:^7.18.6": + version: 7.23.3 + resolution: "@babel/plugin-transform-modules-umd@npm:7.23.3" + dependencies: + "@babel/helper-module-transforms": "npm:^7.23.3" + "@babel/helper-plugin-utils": "npm:^7.22.5" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/f0d2f890a15b4367d0d8f160bed7062bdb145c728c24e9bfbc1211c7925aae5df72a88df3832c92dd2011927edfed4da1b1249e4c78402e893509316c0c2caa6 + languageName: node + linkType: hard + +"@babel/plugin-transform-named-capturing-groups-regex@npm:^7.18.6": + version: 7.22.5 + resolution: "@babel/plugin-transform-named-capturing-groups-regex@npm:7.22.5" + dependencies: + "@babel/helper-create-regexp-features-plugin": "npm:^7.22.5" + "@babel/helper-plugin-utils": "npm:^7.22.5" + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 10c0/b0b072bef303670b5a98307bc37d1ac326cb7ad40ea162b89a03c2ffc465451be7ef05be95cb81ed28bfeb29670dc98fe911f793a67bceab18b4cb4c81ef48f3 + languageName: node + linkType: hard + +"@babel/plugin-transform-new-target@npm:^7.18.6": + version: 7.23.3 + resolution: "@babel/plugin-transform-new-target@npm:7.23.3" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.22.5" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/f489b9e1f17b42b2ba6312d58351e757cb23a8409f64f2bb6af4c09d015359588a5d68943b20756f141d0931a94431c782f3ed1225228a930a04b07be0c31b04 + languageName: node + linkType: hard + +"@babel/plugin-transform-object-super@npm:^7.18.6": + version: 7.23.3 + resolution: "@babel/plugin-transform-object-super@npm:7.23.3" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.22.5" + "@babel/helper-replace-supers": "npm:^7.22.20" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/a6856fd8c0afbe5b3318c344d4d201d009f4051e2f6ff6237ff2660593e93c5997a58772b13d639077c3e29ced3440247b29c496cd77b13af1e7559a70009775 + languageName: node + linkType: hard + +"@babel/plugin-transform-optional-chaining@npm:^7.23.3": + version: 7.23.4 + resolution: "@babel/plugin-transform-optional-chaining@npm:7.23.4" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.22.5" + "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.22.5" + "@babel/plugin-syntax-optional-chaining": "npm:^7.8.3" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/305b773c29ad61255b0e83ec1e92b2f7af6aa58be4cba1e3852bddaa14f7d2afd7b4438f41c28b179d6faac7eb8d4fb5530a17920294f25d459b8f84406bfbfb + languageName: node + linkType: hard + +"@babel/plugin-transform-parameters@npm:^7.18.8, @babel/plugin-transform-parameters@npm:^7.20.7": + version: 7.23.3 + resolution: "@babel/plugin-transform-parameters@npm:7.23.3" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.22.5" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/a8d4cbe0f6ba68d158f5b4215c63004fc37a1fdc539036eb388a9792017c8496ea970a1932ccb929308f61e53dc56676ed01d8df6f42bc0a85c7fd5ba82482b7 + languageName: node + linkType: hard + +"@babel/plugin-transform-property-literals@npm:^7.18.6": + version: 7.23.3 + resolution: "@babel/plugin-transform-property-literals@npm:7.23.3" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.22.5" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/b2549f23f90cf276c2e3058c2225c3711c2ad1c417e336d3391199445a9776dd791b83be47b2b9a7ae374b40652d74b822387e31fa5267a37bf49c122e1a9747 + languageName: node + linkType: hard + +"@babel/plugin-transform-regenerator@npm:^7.18.6": + version: 7.23.3 + resolution: "@babel/plugin-transform-regenerator@npm:7.23.3" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.22.5" + regenerator-transform: "npm:^0.15.2" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/3b0e989ae5db78894ee300b24e07fbcec490c39ab48629c519377581cf94e90308f4ddc10a8914edc9f403e2d3ac7a7ae0ae09003629d852da03e2ba846299c6 + languageName: node + linkType: hard + +"@babel/plugin-transform-reserved-words@npm:^7.18.6": + version: 7.23.3 + resolution: "@babel/plugin-transform-reserved-words@npm:7.23.3" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.22.5" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/4e6d61f6c9757592661cfbd2c39c4f61551557b98cb5f0995ef10f5540f67e18dde8a42b09716d58943b6e4b7ef5c9bcf19902839e7328a4d49149e0fecdbfcd + languageName: node + linkType: hard + +"@babel/plugin-transform-runtime@npm:7.18.10": + version: 7.18.10 + resolution: "@babel/plugin-transform-runtime@npm:7.18.10" + dependencies: + "@babel/helper-module-imports": "npm:^7.18.6" + "@babel/helper-plugin-utils": "npm:^7.18.9" + babel-plugin-polyfill-corejs2: "npm:^0.3.2" + babel-plugin-polyfill-corejs3: "npm:^0.5.3" + babel-plugin-polyfill-regenerator: "npm:^0.4.0" + semver: "npm:^6.3.0" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/156410efc22ca5105bafad83d257758d25da80d3820eaa73ae2d9db4dfaf66bed308479c88ebff795bd5a963dd50572ca5857fe4adc04fbabb2d9abbfb6f8dcf + languageName: node + linkType: hard + +"@babel/plugin-transform-shorthand-properties@npm:^7.18.6": + version: 7.23.3 + resolution: "@babel/plugin-transform-shorthand-properties@npm:7.23.3" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.22.5" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/c423c66fec0b6503f50561741754c84366ef9e9818442c8881fbaa90cc363fd137084b9431cdc00ed2f1fd8c8a1a5982c4a7e1f2af3769db4caf2ac7ea55d4f0 + languageName: node + linkType: hard + +"@babel/plugin-transform-spread@npm:^7.18.9": + version: 7.23.3 + resolution: "@babel/plugin-transform-spread@npm:7.23.3" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.22.5" + "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.22.5" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/a348e4ae47e4ceeceb760506ec7bf835ccc18a2cf70ec74ebfbe41bc172fa2412b05b7d1b86836f8aee375e41a04ff20486074778d0e2d19d668b33dc52e9dbb + languageName: node + linkType: hard + +"@babel/plugin-transform-sticky-regex@npm:^7.18.6": + version: 7.23.3 + resolution: "@babel/plugin-transform-sticky-regex@npm:7.23.3" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.22.5" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/cd15c407906b41e4b924ea151e455c11274dba050771ee7154ad88a1a274140ac5e84efc8d08c4379f2f0cec8a09e4a0a3b2a3a954ba6a67d9fb35df1c714c56 + languageName: node + linkType: hard + +"@babel/plugin-transform-template-literals@npm:^7.18.9": + version: 7.23.3 + resolution: "@babel/plugin-transform-template-literals@npm:7.23.3" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.22.5" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/9b5f43788b9ffcb8f2b445a16b1aa40fcf23cb0446a4649445f098ec6b4cb751f243a535da623d59fefe48f4c40552f5621187a61811779076bab26863e3373d + languageName: node + linkType: hard + +"@babel/plugin-transform-typeof-symbol@npm:^7.18.9": + version: 7.23.3 + resolution: "@babel/plugin-transform-typeof-symbol@npm:7.23.3" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.22.5" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/50e81d84c6059878be2a0e41e0d790cab10882cfb8fa85e8c2665ccb0b3cd7233f49197f17427bc7c1b36c80e07076640ecf1b641888d78b9cb91bc16478d84a + languageName: node + linkType: hard + +"@babel/plugin-transform-typescript@npm:^7.23.3": + version: 7.23.6 + resolution: "@babel/plugin-transform-typescript@npm:7.23.6" + dependencies: + "@babel/helper-annotate-as-pure": "npm:^7.22.5" + "@babel/helper-create-class-features-plugin": "npm:^7.23.6" + "@babel/helper-plugin-utils": "npm:^7.22.5" + "@babel/plugin-syntax-typescript": "npm:^7.23.3" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/e08f7a981fe157e32031070b92cd77030018b002d063e4be3711ffb7ec04539478b240d8967a4748abb56eccc0ba376f094f30711ef6a028b2a89d15d6ddc01f + languageName: node + linkType: hard + +"@babel/plugin-transform-unicode-escapes@npm:^7.18.10": + version: 7.23.3 + resolution: "@babel/plugin-transform-unicode-escapes@npm:7.23.3" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.22.5" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/f1ed54742dc982666f471df5d087cfda9c6dbf7842bec2d0f7893ed359b142a38c0210358f297ab5c7a3e11ec0dfb0e523de2e2edf48b62f257aaadd5f068866 + languageName: node + linkType: hard + +"@babel/plugin-transform-unicode-regex@npm:^7.18.6": + version: 7.23.3 + resolution: "@babel/plugin-transform-unicode-regex@npm:7.23.3" + dependencies: + "@babel/helper-create-regexp-features-plugin": "npm:^7.22.15" + "@babel/helper-plugin-utils": "npm:^7.22.5" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/df824dcca2f6e731f61d69103e87d5dd974d8a04e46e28684a4ba935ae633d876bded09b8db890fd72d0caf7b9638e2672b753671783613cc78d472951e2df8c + languageName: node + linkType: hard + +"@babel/preset-env@npm:7.18.10": + version: 7.18.10 + resolution: "@babel/preset-env@npm:7.18.10" + dependencies: + "@babel/compat-data": "npm:^7.18.8" + "@babel/helper-compilation-targets": "npm:^7.18.9" + "@babel/helper-plugin-utils": "npm:^7.18.9" + "@babel/helper-validator-option": "npm:^7.18.6" + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "npm:^7.18.6" + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "npm:^7.18.9" + "@babel/plugin-proposal-async-generator-functions": "npm:^7.18.10" + "@babel/plugin-proposal-class-properties": "npm:^7.18.6" + "@babel/plugin-proposal-class-static-block": "npm:^7.18.6" + "@babel/plugin-proposal-dynamic-import": "npm:^7.18.6" + "@babel/plugin-proposal-export-namespace-from": "npm:^7.18.9" + "@babel/plugin-proposal-json-strings": "npm:^7.18.6" + "@babel/plugin-proposal-logical-assignment-operators": "npm:^7.18.9" + "@babel/plugin-proposal-nullish-coalescing-operator": "npm:^7.18.6" + "@babel/plugin-proposal-numeric-separator": "npm:^7.18.6" + "@babel/plugin-proposal-object-rest-spread": "npm:^7.18.9" + "@babel/plugin-proposal-optional-catch-binding": "npm:^7.18.6" + "@babel/plugin-proposal-optional-chaining": "npm:^7.18.9" + "@babel/plugin-proposal-private-methods": "npm:^7.18.6" + "@babel/plugin-proposal-private-property-in-object": "npm:^7.18.6" + "@babel/plugin-proposal-unicode-property-regex": "npm:^7.18.6" + "@babel/plugin-syntax-async-generators": "npm:^7.8.4" + "@babel/plugin-syntax-class-properties": "npm:^7.12.13" + "@babel/plugin-syntax-class-static-block": "npm:^7.14.5" + "@babel/plugin-syntax-dynamic-import": "npm:^7.8.3" + "@babel/plugin-syntax-export-namespace-from": "npm:^7.8.3" + "@babel/plugin-syntax-import-assertions": "npm:^7.18.6" + "@babel/plugin-syntax-json-strings": "npm:^7.8.3" + "@babel/plugin-syntax-logical-assignment-operators": "npm:^7.10.4" + "@babel/plugin-syntax-nullish-coalescing-operator": "npm:^7.8.3" + "@babel/plugin-syntax-numeric-separator": "npm:^7.10.4" + "@babel/plugin-syntax-object-rest-spread": "npm:^7.8.3" + "@babel/plugin-syntax-optional-catch-binding": "npm:^7.8.3" + "@babel/plugin-syntax-optional-chaining": "npm:^7.8.3" + "@babel/plugin-syntax-private-property-in-object": "npm:^7.14.5" + "@babel/plugin-syntax-top-level-await": "npm:^7.14.5" + "@babel/plugin-transform-arrow-functions": "npm:^7.18.6" + "@babel/plugin-transform-async-to-generator": "npm:^7.18.6" + "@babel/plugin-transform-block-scoped-functions": "npm:^7.18.6" + "@babel/plugin-transform-block-scoping": "npm:^7.18.9" + "@babel/plugin-transform-classes": "npm:^7.18.9" + "@babel/plugin-transform-computed-properties": "npm:^7.18.9" + "@babel/plugin-transform-destructuring": "npm:^7.18.9" + "@babel/plugin-transform-dotall-regex": "npm:^7.18.6" + "@babel/plugin-transform-duplicate-keys": "npm:^7.18.9" + "@babel/plugin-transform-exponentiation-operator": "npm:^7.18.6" + "@babel/plugin-transform-for-of": "npm:^7.18.8" + "@babel/plugin-transform-function-name": "npm:^7.18.9" + "@babel/plugin-transform-literals": "npm:^7.18.9" + "@babel/plugin-transform-member-expression-literals": "npm:^7.18.6" + "@babel/plugin-transform-modules-amd": "npm:^7.18.6" + "@babel/plugin-transform-modules-commonjs": "npm:^7.18.6" + "@babel/plugin-transform-modules-systemjs": "npm:^7.18.9" + "@babel/plugin-transform-modules-umd": "npm:^7.18.6" + "@babel/plugin-transform-named-capturing-groups-regex": "npm:^7.18.6" + "@babel/plugin-transform-new-target": "npm:^7.18.6" + "@babel/plugin-transform-object-super": "npm:^7.18.6" + "@babel/plugin-transform-parameters": "npm:^7.18.8" + "@babel/plugin-transform-property-literals": "npm:^7.18.6" + "@babel/plugin-transform-regenerator": "npm:^7.18.6" + "@babel/plugin-transform-reserved-words": "npm:^7.18.6" + "@babel/plugin-transform-shorthand-properties": "npm:^7.18.6" + "@babel/plugin-transform-spread": "npm:^7.18.9" + "@babel/plugin-transform-sticky-regex": "npm:^7.18.6" + "@babel/plugin-transform-template-literals": "npm:^7.18.9" + "@babel/plugin-transform-typeof-symbol": "npm:^7.18.9" + "@babel/plugin-transform-unicode-escapes": "npm:^7.18.10" + "@babel/plugin-transform-unicode-regex": "npm:^7.18.6" + "@babel/preset-modules": "npm:^0.1.5" + "@babel/types": "npm:^7.18.10" + babel-plugin-polyfill-corejs2: "npm:^0.3.2" + babel-plugin-polyfill-corejs3: "npm:^0.5.3" + babel-plugin-polyfill-regenerator: "npm:^0.4.0" + core-js-compat: "npm:^3.22.1" + semver: "npm:^6.3.0" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/4b7ef515702e8c91aa223f60f8a4c8e28ca202fcc090db5c62135e3af16980d7059ba8dc7faf01ba4b818837187d609fdb4d44a56fffa261aa81bfc3d1fa10c3 + languageName: node + linkType: hard + +"@babel/preset-modules@npm:^0.1.5": + version: 0.1.6 + resolution: "@babel/preset-modules@npm:0.1.6" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.0.0" + "@babel/plugin-proposal-unicode-property-regex": "npm:^7.4.4" + "@babel/plugin-transform-dotall-regex": "npm:^7.4.4" + "@babel/types": "npm:^7.4.4" + esutils: "npm:^2.0.2" + peerDependencies: + "@babel/core": ^7.0.0-0 || ^8.0.0-0 <8.0.0 + checksum: 10c0/6397d196dec1ca91f0f28ea4fbd0e599e5724b7f783f27979e1e9de30a4693f8c1fa98495d542fe5a774b5d0d9b52c6effd2ed15900e879ebcb0488c4bf0eed9 + languageName: node + linkType: hard + +"@babel/preset-typescript@npm:^7.18.6": + version: 7.23.3 + resolution: "@babel/preset-typescript@npm:7.23.3" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.22.5" + "@babel/helper-validator-option": "npm:^7.22.15" + "@babel/plugin-syntax-jsx": "npm:^7.23.3" + "@babel/plugin-transform-modules-commonjs": "npm:^7.23.3" + "@babel/plugin-transform-typescript": "npm:^7.23.3" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/e72b654c7f0f08b35d7e1c0e3a59c0c13037f295c425760b8b148aa7dde01e6ddd982efc525710f997a1494fafdd55cb525738c016609e7e4d703d02014152b7 + languageName: node + linkType: hard + +"@babel/regjsgen@npm:^0.8.0": + version: 0.8.0 + resolution: "@babel/regjsgen@npm:0.8.0" + checksum: 10c0/4f3ddd8c7c96d447e05c8304c1d5ba3a83fcabd8a716bc1091c2f31595cdd43a3a055fff7cb5d3042b8cb7d402d78820fcb4e05d896c605a7d8bcf30f2424c4a + languageName: node + linkType: hard + +"@babel/runtime@npm:^7.11.2, @babel/runtime@npm:^7.17.2, @babel/runtime@npm:^7.18.9, @babel/runtime@npm:^7.23.4, @babel/runtime@npm:^7.8.4": + version: 7.23.9 + resolution: "@babel/runtime@npm:7.23.9" + dependencies: + regenerator-runtime: "npm:^0.14.0" + checksum: 10c0/e71205fdd7082b2656512cc98e647d9ea7e222e4fe5c36e9e5adc026446fcc3ba7b3cdff8b0b694a0b78bb85db83e7b1e3d4c56ef90726682b74f13249cf952d + languageName: node + linkType: hard + +"@babel/template@npm:^7.18.10, @babel/template@npm:^7.22.15, @babel/template@npm:^7.23.9": + version: 7.23.9 + resolution: "@babel/template@npm:7.23.9" + dependencies: + "@babel/code-frame": "npm:^7.23.5" + "@babel/parser": "npm:^7.23.9" + "@babel/types": "npm:^7.23.9" + checksum: 10c0/0e8b60119433787742bc08ae762bbd8d6755611c4cabbcb7627b292ec901a55af65d93d1c88572326069efb64136ef151ec91ffb74b2df7689bbab237030833a + languageName: node + linkType: hard + +"@babel/traverse@npm:7.18.11": + version: 7.18.11 + resolution: "@babel/traverse@npm:7.18.11" + dependencies: + "@babel/code-frame": "npm:^7.18.6" + "@babel/generator": "npm:^7.18.10" + "@babel/helper-environment-visitor": "npm:^7.18.9" + "@babel/helper-function-name": "npm:^7.18.9" + "@babel/helper-hoist-variables": "npm:^7.18.6" + "@babel/helper-split-export-declaration": "npm:^7.18.6" + "@babel/parser": "npm:^7.18.11" + "@babel/types": "npm:^7.18.10" + debug: "npm:^4.1.0" + globals: "npm:^11.1.0" + checksum: 10c0/04d5342190a2699ac314767a2af2e67e1a3f77e15c02c1801834e77eb50d2fa633dbc30dc64dccf0eabd40b1e7a4b1c04b67d0664030e54902e90e5c1b773f75 + languageName: node + linkType: hard + +"@babel/traverse@npm:^7.18.10, @babel/traverse@npm:^7.23.9": + version: 7.23.9 + resolution: "@babel/traverse@npm:7.23.9" + dependencies: + "@babel/code-frame": "npm:^7.23.5" + "@babel/generator": "npm:^7.23.6" + "@babel/helper-environment-visitor": "npm:^7.22.20" + "@babel/helper-function-name": "npm:^7.23.0" + "@babel/helper-hoist-variables": "npm:^7.22.5" + "@babel/helper-split-export-declaration": "npm:^7.22.6" + "@babel/parser": "npm:^7.23.9" + "@babel/types": "npm:^7.23.9" + debug: "npm:^4.3.1" + globals: "npm:^11.1.0" + checksum: 10c0/d1615d1d02f04d47111a7ea4446a1a6275668ca39082f31d51f08380de9502e19862be434eaa34b022ce9a17dbb8f9e2b73a746c654d9575f3a680a7ffdf5630 + languageName: node + linkType: hard + +"@babel/types@npm:7.18.10": + version: 7.18.10 + resolution: "@babel/types@npm:7.18.10" + dependencies: + "@babel/helper-string-parser": "npm:^7.18.10" + "@babel/helper-validator-identifier": "npm:^7.18.6" + to-fast-properties: "npm:^2.0.0" + checksum: 10c0/62f50bc10967cff9cb9f1b46ba38946a6d084bdfba4587ad80898fc2a3812e51895f65fe21dcaa7d78e494d7e319acf0e4445492a3a9ae1331a806d660754f47 + languageName: node + linkType: hard + +"@babel/types@npm:^7.18.10, @babel/types@npm:^7.22.15, @babel/types@npm:^7.22.19, @babel/types@npm:^7.22.5, @babel/types@npm:^7.23.0, @babel/types@npm:^7.23.6, @babel/types@npm:^7.23.9, @babel/types@npm:^7.4.4, @babel/types@npm:^7.8.3": + version: 7.23.9 + resolution: "@babel/types@npm:7.23.9" + dependencies: + "@babel/helper-string-parser": "npm:^7.23.4" + "@babel/helper-validator-identifier": "npm:^7.22.20" + to-fast-properties: "npm:^2.0.0" + checksum: 10c0/edc7bb180ce7e4d2aea10c6972fb10474341ac39ba8fdc4a27ffb328368dfdfbf40fca18e441bbe7c483774500d5c05e222cec276c242e952853dcaf4eb884f7 + languageName: node + linkType: hard + +"@confio/ics23@npm:^0.6.8": + version: 0.6.8 + resolution: "@confio/ics23@npm:0.6.8" + dependencies: + "@noble/hashes": "npm:^1.0.0" + protobufjs: "npm:^6.8.8" + checksum: 10c0/2f3f5032cd6a34c9b2fbd64bbf7e1cdec75ca71f348a770f7b5474b5027b12202bfbcd404eca931efddb5901f769af035a87cb8bddbf3f23d7e5d93c9d3d7f6f + languageName: node + linkType: hard + +"@cosmjs/amino@npm:^0.32.2": + version: 0.32.2 + resolution: "@cosmjs/amino@npm:0.32.2" + dependencies: + "@cosmjs/crypto": "npm:^0.32.2" + "@cosmjs/encoding": "npm:^0.32.2" + "@cosmjs/math": "npm:^0.32.2" + "@cosmjs/utils": "npm:^0.32.2" + checksum: 10c0/306ec4a08713d0173af134e45d26647f0d456c0cfacf55779c159a7556d9614e763a70518a7b3aaa3c18e9f71ff33f30e5badaed1c50aa26dd37313f68267083 + languageName: node + linkType: hard + +"@cosmjs/cosmwasm-stargate@npm:^0.32.2": + version: 0.32.2 + resolution: "@cosmjs/cosmwasm-stargate@npm:0.32.2" + dependencies: + "@cosmjs/amino": "npm:^0.32.2" + "@cosmjs/crypto": "npm:^0.32.2" + "@cosmjs/encoding": "npm:^0.32.2" + "@cosmjs/math": "npm:^0.32.2" + "@cosmjs/proto-signing": "npm:^0.32.2" + "@cosmjs/stargate": "npm:^0.32.2" + "@cosmjs/tendermint-rpc": "npm:^0.32.2" + "@cosmjs/utils": "npm:^0.32.2" + cosmjs-types: "npm:^0.9.0" + pako: "npm:^2.0.2" + checksum: 10c0/3ffa482661d2d31ffbf0b6a1651f0c567ea65018bedc91bb8b02f7cbc12e5da9e17bd53bbbe3f5dabac6cfc0667e3c01dc84b20fabd80e916e5e0a4efcc26343 + languageName: node + linkType: hard + +"@cosmjs/crypto@npm:^0.32.2": + version: 0.32.2 + resolution: "@cosmjs/crypto@npm:0.32.2" + dependencies: + "@cosmjs/encoding": "npm:^0.32.2" + "@cosmjs/math": "npm:^0.32.2" + "@cosmjs/utils": "npm:^0.32.2" + "@noble/hashes": "npm:^1" + bn.js: "npm:^5.2.0" + elliptic: "npm:^6.5.4" + libsodium-wrappers-sumo: "npm:^0.7.11" + checksum: 10c0/cd89f8f450daf6eca1d625cb226da179c82fb97d108f1a3ab36c132f9c47fb4930c276f827d82d91b9c818360a4141cbd24e61a4026bb24b77c883b3fb825351 + languageName: node + linkType: hard + +"@cosmjs/encoding@npm:^0.31.3": + version: 0.31.3 + resolution: "@cosmjs/encoding@npm:0.31.3" + dependencies: + base64-js: "npm:^1.3.0" + bech32: "npm:^1.1.4" + readonly-date: "npm:^1.0.0" + checksum: 10c0/48eb9f9259bdfd88db280b6b5ea970fd1b3b0f81a8f4253f315ff2c736b27dbe0fdf74405c52ad35fcd4b16f1fde4250c4de936997b9d92e79cb97d98cc538c7 + languageName: node + linkType: hard + +"@cosmjs/encoding@npm:^0.32.2": + version: 0.32.2 + resolution: "@cosmjs/encoding@npm:0.32.2" + dependencies: + base64-js: "npm:^1.3.0" + bech32: "npm:^1.1.4" + readonly-date: "npm:^1.0.0" + checksum: 10c0/fe179c7c60c122da0bf7b8b0a76b729dc6a15280d9c32addc7a9efac0b86bbae13e2e51af2d968f72b1235d6f3e50da1ae06e77f96d7b2655be67a6ab23a934c + languageName: node + linkType: hard + +"@cosmjs/json-rpc@npm:^0.32.2": + version: 0.32.2 + resolution: "@cosmjs/json-rpc@npm:0.32.2" + dependencies: + "@cosmjs/stream": "npm:^0.32.2" + xstream: "npm:^11.14.0" + checksum: 10c0/d3a70993d23356f3c1a840ba628ee890da6c1bf81a68a3f94ed74132e8a5b37d6ffba3327e562086552c7b01bd9dde2844761fbd8168e0c693011329c1cab53a + languageName: node + linkType: hard + +"@cosmjs/math@npm:^0.32.2": + version: 0.32.2 + resolution: "@cosmjs/math@npm:0.32.2" + dependencies: + bn.js: "npm:^5.2.0" + checksum: 10c0/be6590c61b1d8488c9405666b365892d8ad9a6c7d0e67fced18386c6fe3e0dd180db4b55e3c7009f4659123a531459916357218f4f153569a9a740d8fd749064 + languageName: node + linkType: hard + +"@cosmjs/proto-signing@npm:^0.32.2": + version: 0.32.2 + resolution: "@cosmjs/proto-signing@npm:0.32.2" + dependencies: + "@cosmjs/amino": "npm:^0.32.2" + "@cosmjs/crypto": "npm:^0.32.2" + "@cosmjs/encoding": "npm:^0.32.2" + "@cosmjs/math": "npm:^0.32.2" + "@cosmjs/utils": "npm:^0.32.2" + cosmjs-types: "npm:^0.9.0" + checksum: 10c0/351ae9d4e91b04926429dafd9342793958d2bfa2d84804a9195a1ba60ddb33491f66baa4dd17a4418bb53a7fb3a1ae6d4f4bb6f3a60b5f23bdcf62e70e987de2 + languageName: node + linkType: hard + +"@cosmjs/socket@npm:^0.32.2": + version: 0.32.2 + resolution: "@cosmjs/socket@npm:0.32.2" + dependencies: + "@cosmjs/stream": "npm:^0.32.2" + isomorphic-ws: "npm:^4.0.1" + ws: "npm:^7" + xstream: "npm:^11.14.0" + checksum: 10c0/5e9c1cb8f7a181cc380f82d50f4ec5b23ac9940e02ea51d813e26e87a7a9d2889de5297b42b45edfb7b6af8fc2fa1ce5cef7efdf52f266e6821b6f7ed1fb3dea + languageName: node + linkType: hard + +"@cosmjs/stargate@npm:^0.32.2": + version: 0.32.2 + resolution: "@cosmjs/stargate@npm:0.32.2" + dependencies: + "@confio/ics23": "npm:^0.6.8" + "@cosmjs/amino": "npm:^0.32.2" + "@cosmjs/encoding": "npm:^0.32.2" + "@cosmjs/math": "npm:^0.32.2" + "@cosmjs/proto-signing": "npm:^0.32.2" + "@cosmjs/stream": "npm:^0.32.2" + "@cosmjs/tendermint-rpc": "npm:^0.32.2" + "@cosmjs/utils": "npm:^0.32.2" + cosmjs-types: "npm:^0.9.0" + xstream: "npm:^11.14.0" + checksum: 10c0/70cf7e509f0cce9bd28bafa830260cfb4ddd6c3c3e60836aae93276a59c7ae6571971eeb6dd0a9e898295cbde17fba94d7253c3ce0b2f03de875d7b9dd074b12 + languageName: node + linkType: hard + +"@cosmjs/stream@npm:^0.32.2": + version: 0.32.2 + resolution: "@cosmjs/stream@npm:0.32.2" + dependencies: + xstream: "npm:^11.14.0" + checksum: 10c0/3cd66d55f63bf9b1ab1b0298b1ab9d79d132cc7fff26064832507a95adf82bd082793c09b2f5e7e864b29827fda81095ba9a619db9f5a5720438c7eba8cdab19 + languageName: node + linkType: hard + +"@cosmjs/tendermint-rpc@npm:^0.32.2": + version: 0.32.2 + resolution: "@cosmjs/tendermint-rpc@npm:0.32.2" + dependencies: + "@cosmjs/crypto": "npm:^0.32.2" + "@cosmjs/encoding": "npm:^0.32.2" + "@cosmjs/json-rpc": "npm:^0.32.2" + "@cosmjs/math": "npm:^0.32.2" + "@cosmjs/socket": "npm:^0.32.2" + "@cosmjs/stream": "npm:^0.32.2" + "@cosmjs/utils": "npm:^0.32.2" + axios: "npm:^1.6.0" + readonly-date: "npm:^1.0.0" + xstream: "npm:^11.14.0" + checksum: 10c0/a668d311c7bb088d63316698b99ec0938da61c35a7f423c7b4b06ba27a819787359a34b6b859d9deb03034864edb7e1d196f861f313f66b15db5d57e358cd3ca + languageName: node + linkType: hard + +"@cosmjs/utils@npm:^0.32.2": + version: 0.32.2 + resolution: "@cosmjs/utils@npm:0.32.2" + checksum: 10c0/53789110c65106ee2d200f59f37d7732e7027b8bfc042072e3ca0336e2cf9b288cbe4f3e4945515a3d0f6907a7586dc83e96b49ddfc8a10c26377e52b7c609e6 + languageName: node + linkType: hard + +"@cosmwasm/ts-codegen@npm:^0.35.7": + version: 0.35.7 + resolution: "@cosmwasm/ts-codegen@npm:0.35.7" + dependencies: + "@babel/core": "npm:7.18.10" + "@babel/generator": "npm:7.18.12" + "@babel/parser": "npm:7.18.11" + "@babel/plugin-proposal-class-properties": "npm:7.18.6" + "@babel/plugin-proposal-export-default-from": "npm:7.18.10" + "@babel/plugin-proposal-object-rest-spread": "npm:7.18.9" + "@babel/plugin-transform-runtime": "npm:7.18.10" + "@babel/preset-env": "npm:7.18.10" + "@babel/preset-typescript": "npm:^7.18.6" + "@babel/runtime": "npm:^7.18.9" + "@babel/traverse": "npm:7.18.11" + "@babel/types": "npm:7.18.10" + "@pyramation/json-schema-to-typescript": "npm: 11.0.4" + case: "npm:1.6.3" + dargs: "npm:7.0.0" + deepmerge: "npm:4.2.2" + dotty: "npm:0.1.2" + fuzzy: "npm:0.1.3" + glob: "npm:8.0.3" + inquirerer: "npm:0.1.3" + long: "npm:^5.2.0" + minimist: "npm:1.2.6" + mkdirp: "npm:1.0.4" + parse-package-name: "npm:1.0.0" + rimraf: "npm:3.0.2" + shelljs: "npm:0.8.5" + wasm-ast-types: "npm:^0.26.4" + bin: + cosmwasm-ts-codegen: main/ts-codegen.js + checksum: 10c0/8206252a96e34ca8c7a81b8f96fa402984ec76c4169c154e40257e09470458d0f88ac3627472f74252d0a72b103955f4d4ed6cf687b756b4d61a86c058d81ba9 + languageName: node + linkType: hard + +"@cspotcode/source-map-support@npm:^0.8.0": + version: 0.8.1 + resolution: "@cspotcode/source-map-support@npm:0.8.1" + dependencies: + "@jridgewell/trace-mapping": "npm:0.3.9" + checksum: 10c0/05c5368c13b662ee4c122c7bfbe5dc0b613416672a829f3e78bc49a357a197e0218d6e74e7c66cfcd04e15a179acab080bd3c69658c9fbefd0e1ccd950a07fc6 + languageName: node + linkType: hard + +"@esbuild/aix-ppc64@npm:0.20.1": + version: 0.20.1 + resolution: "@esbuild/aix-ppc64@npm:0.20.1" + conditions: os=aix & cpu=ppc64 + languageName: node + linkType: hard + +"@esbuild/android-arm64@npm:0.18.20": + version: 0.18.20 + resolution: "@esbuild/android-arm64@npm:0.18.20" + conditions: os=android & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/android-arm64@npm:0.20.1": + version: 0.20.1 + resolution: "@esbuild/android-arm64@npm:0.20.1" + conditions: os=android & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/android-arm@npm:0.18.20": + version: 0.18.20 + resolution: "@esbuild/android-arm@npm:0.18.20" + conditions: os=android & cpu=arm + languageName: node + linkType: hard + +"@esbuild/android-arm@npm:0.20.1": + version: 0.20.1 + resolution: "@esbuild/android-arm@npm:0.20.1" + conditions: os=android & cpu=arm + languageName: node + linkType: hard + +"@esbuild/android-x64@npm:0.18.20": + version: 0.18.20 + resolution: "@esbuild/android-x64@npm:0.18.20" + conditions: os=android & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/android-x64@npm:0.20.1": + version: 0.20.1 + resolution: "@esbuild/android-x64@npm:0.20.1" + conditions: os=android & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/darwin-arm64@npm:0.18.20": + version: 0.18.20 + resolution: "@esbuild/darwin-arm64@npm:0.18.20" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/darwin-arm64@npm:0.20.1": + version: 0.20.1 + resolution: "@esbuild/darwin-arm64@npm:0.20.1" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/darwin-x64@npm:0.18.20": + version: 0.18.20 + resolution: "@esbuild/darwin-x64@npm:0.18.20" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/darwin-x64@npm:0.20.1": + version: 0.20.1 + resolution: "@esbuild/darwin-x64@npm:0.20.1" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/freebsd-arm64@npm:0.18.20": + version: 0.18.20 + resolution: "@esbuild/freebsd-arm64@npm:0.18.20" + conditions: os=freebsd & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/freebsd-arm64@npm:0.20.1": + version: 0.20.1 + resolution: "@esbuild/freebsd-arm64@npm:0.20.1" + conditions: os=freebsd & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/freebsd-x64@npm:0.18.20": + version: 0.18.20 + resolution: "@esbuild/freebsd-x64@npm:0.18.20" + conditions: os=freebsd & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/freebsd-x64@npm:0.20.1": + version: 0.20.1 + resolution: "@esbuild/freebsd-x64@npm:0.20.1" + conditions: os=freebsd & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/linux-arm64@npm:0.18.20": + version: 0.18.20 + resolution: "@esbuild/linux-arm64@npm:0.18.20" + conditions: os=linux & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/linux-arm64@npm:0.20.1": + version: 0.20.1 + resolution: "@esbuild/linux-arm64@npm:0.20.1" + conditions: os=linux & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/linux-arm@npm:0.18.20": + version: 0.18.20 + resolution: "@esbuild/linux-arm@npm:0.18.20" + conditions: os=linux & cpu=arm + languageName: node + linkType: hard + +"@esbuild/linux-arm@npm:0.20.1": + version: 0.20.1 + resolution: "@esbuild/linux-arm@npm:0.20.1" + conditions: os=linux & cpu=arm + languageName: node + linkType: hard + +"@esbuild/linux-ia32@npm:0.18.20": + version: 0.18.20 + resolution: "@esbuild/linux-ia32@npm:0.18.20" + conditions: os=linux & cpu=ia32 + languageName: node + linkType: hard + +"@esbuild/linux-ia32@npm:0.20.1": + version: 0.20.1 + resolution: "@esbuild/linux-ia32@npm:0.20.1" + conditions: os=linux & cpu=ia32 + languageName: node + linkType: hard + +"@esbuild/linux-loong64@npm:0.18.20": + version: 0.18.20 + resolution: "@esbuild/linux-loong64@npm:0.18.20" + conditions: os=linux & cpu=loong64 + languageName: node + linkType: hard + +"@esbuild/linux-loong64@npm:0.20.1": + version: 0.20.1 + resolution: "@esbuild/linux-loong64@npm:0.20.1" + conditions: os=linux & cpu=loong64 + languageName: node + linkType: hard + +"@esbuild/linux-mips64el@npm:0.18.20": + version: 0.18.20 + resolution: "@esbuild/linux-mips64el@npm:0.18.20" + conditions: os=linux & cpu=mips64el + languageName: node + linkType: hard + +"@esbuild/linux-mips64el@npm:0.20.1": + version: 0.20.1 + resolution: "@esbuild/linux-mips64el@npm:0.20.1" + conditions: os=linux & cpu=mips64el + languageName: node + linkType: hard + +"@esbuild/linux-ppc64@npm:0.18.20": + version: 0.18.20 + resolution: "@esbuild/linux-ppc64@npm:0.18.20" + conditions: os=linux & cpu=ppc64 + languageName: node + linkType: hard + +"@esbuild/linux-ppc64@npm:0.20.1": + version: 0.20.1 + resolution: "@esbuild/linux-ppc64@npm:0.20.1" + conditions: os=linux & cpu=ppc64 + languageName: node + linkType: hard + +"@esbuild/linux-riscv64@npm:0.18.20": + version: 0.18.20 + resolution: "@esbuild/linux-riscv64@npm:0.18.20" + conditions: os=linux & cpu=riscv64 + languageName: node + linkType: hard + +"@esbuild/linux-riscv64@npm:0.20.1": + version: 0.20.1 + resolution: "@esbuild/linux-riscv64@npm:0.20.1" + conditions: os=linux & cpu=riscv64 + languageName: node + linkType: hard + +"@esbuild/linux-s390x@npm:0.18.20": + version: 0.18.20 + resolution: "@esbuild/linux-s390x@npm:0.18.20" + conditions: os=linux & cpu=s390x + languageName: node + linkType: hard + +"@esbuild/linux-s390x@npm:0.20.1": + version: 0.20.1 + resolution: "@esbuild/linux-s390x@npm:0.20.1" + conditions: os=linux & cpu=s390x + languageName: node + linkType: hard + +"@esbuild/linux-x64@npm:0.18.20": + version: 0.18.20 + resolution: "@esbuild/linux-x64@npm:0.18.20" + conditions: os=linux & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/linux-x64@npm:0.20.1": + version: 0.20.1 + resolution: "@esbuild/linux-x64@npm:0.20.1" + conditions: os=linux & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/netbsd-x64@npm:0.18.20": + version: 0.18.20 + resolution: "@esbuild/netbsd-x64@npm:0.18.20" + conditions: os=netbsd & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/netbsd-x64@npm:0.20.1": + version: 0.20.1 + resolution: "@esbuild/netbsd-x64@npm:0.20.1" + conditions: os=netbsd & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/openbsd-x64@npm:0.18.20": + version: 0.18.20 + resolution: "@esbuild/openbsd-x64@npm:0.18.20" + conditions: os=openbsd & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/openbsd-x64@npm:0.20.1": + version: 0.20.1 + resolution: "@esbuild/openbsd-x64@npm:0.20.1" + conditions: os=openbsd & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/sunos-x64@npm:0.18.20": + version: 0.18.20 + resolution: "@esbuild/sunos-x64@npm:0.18.20" + conditions: os=sunos & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/sunos-x64@npm:0.20.1": + version: 0.20.1 + resolution: "@esbuild/sunos-x64@npm:0.20.1" + conditions: os=sunos & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/win32-arm64@npm:0.18.20": + version: 0.18.20 + resolution: "@esbuild/win32-arm64@npm:0.18.20" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/win32-arm64@npm:0.20.1": + version: 0.20.1 + resolution: "@esbuild/win32-arm64@npm:0.20.1" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/win32-ia32@npm:0.18.20": + version: 0.18.20 + resolution: "@esbuild/win32-ia32@npm:0.18.20" + conditions: os=win32 & cpu=ia32 + languageName: node + linkType: hard + +"@esbuild/win32-ia32@npm:0.20.1": + version: 0.20.1 + resolution: "@esbuild/win32-ia32@npm:0.20.1" + conditions: os=win32 & cpu=ia32 + languageName: node + linkType: hard + +"@esbuild/win32-x64@npm:0.18.20": + version: 0.18.20 + resolution: "@esbuild/win32-x64@npm:0.18.20" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/win32-x64@npm:0.20.1": + version: 0.20.1 + resolution: "@esbuild/win32-x64@npm:0.20.1" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + +"@eth-optimism/contracts@npm:^0.6.0": + version: 0.6.0 + resolution: "@eth-optimism/contracts@npm:0.6.0" + dependencies: + "@eth-optimism/core-utils": "npm:0.12.0" + "@ethersproject/abstract-provider": "npm:^5.7.0" + "@ethersproject/abstract-signer": "npm:^5.7.0" + peerDependencies: + ethers: ^5 + checksum: 10c0/c000e6fd944a6b3aed97071b75a1e9f35f6d245ecca90bbb84bce5f489de522bf199e8f1fb28c1ae72fcc789a0c6fdae6e144ee47427e1e1c0ac08df9b03011c + languageName: node + linkType: hard + +"@eth-optimism/core-utils@npm:0.12.0": + version: 0.12.0 + resolution: "@eth-optimism/core-utils@npm:0.12.0" + dependencies: + "@ethersproject/abi": "npm:^5.7.0" + "@ethersproject/abstract-provider": "npm:^5.7.0" + "@ethersproject/address": "npm:^5.7.0" + "@ethersproject/bignumber": "npm:^5.7.0" + "@ethersproject/bytes": "npm:^5.7.0" + "@ethersproject/constants": "npm:^5.7.0" + "@ethersproject/contracts": "npm:^5.7.0" + "@ethersproject/hash": "npm:^5.7.0" + "@ethersproject/keccak256": "npm:^5.7.0" + "@ethersproject/properties": "npm:^5.7.0" + "@ethersproject/providers": "npm:^5.7.0" + "@ethersproject/rlp": "npm:^5.7.0" + "@ethersproject/transactions": "npm:^5.7.0" + "@ethersproject/web": "npm:^5.7.0" + bufio: "npm:^1.0.7" + chai: "npm:^4.3.4" + checksum: 10c0/d9ef647b9e858adf9b6f4aa4804d4321dc3c710c5141005695154bdaac3a8472b5a5ab6a02e673e475d254b8236e70e664305b6337729223a611597dc43988b4 + languageName: node + linkType: hard + +"@ethersproject/abi@npm:5.7.0, @ethersproject/abi@npm:^5.7.0": + version: 5.7.0 + resolution: "@ethersproject/abi@npm:5.7.0" + dependencies: + "@ethersproject/address": "npm:^5.7.0" + "@ethersproject/bignumber": "npm:^5.7.0" + "@ethersproject/bytes": "npm:^5.7.0" + "@ethersproject/constants": "npm:^5.7.0" + "@ethersproject/hash": "npm:^5.7.0" + "@ethersproject/keccak256": "npm:^5.7.0" + "@ethersproject/logger": "npm:^5.7.0" + "@ethersproject/properties": "npm:^5.7.0" + "@ethersproject/strings": "npm:^5.7.0" + checksum: 10c0/7de51bf52ff03df2526546dacea6e74f15d4c5ef762d931552082b9600dcefd8e333599f02d7906ba89f7b7f48c45ab72cee76f397212b4f17fa9d9ff5615916 + languageName: node + linkType: hard + +"@ethersproject/abstract-provider@npm:5.7.0, @ethersproject/abstract-provider@npm:^5.7.0": + version: 5.7.0 + resolution: "@ethersproject/abstract-provider@npm:5.7.0" + dependencies: + "@ethersproject/bignumber": "npm:^5.7.0" + "@ethersproject/bytes": "npm:^5.7.0" + "@ethersproject/logger": "npm:^5.7.0" + "@ethersproject/networks": "npm:^5.7.0" + "@ethersproject/properties": "npm:^5.7.0" + "@ethersproject/transactions": "npm:^5.7.0" + "@ethersproject/web": "npm:^5.7.0" + checksum: 10c0/a5708e2811b90ddc53d9318ce152511a32dd4771aa2fb59dbe9e90468bb75ca6e695d958bf44d13da684dc3b6aab03f63d425ff7591332cb5d7ddaf68dff7224 + languageName: node + linkType: hard + +"@ethersproject/abstract-signer@npm:5.7.0, @ethersproject/abstract-signer@npm:^5.7.0": + version: 5.7.0 + resolution: "@ethersproject/abstract-signer@npm:5.7.0" + dependencies: + "@ethersproject/abstract-provider": "npm:^5.7.0" + "@ethersproject/bignumber": "npm:^5.7.0" + "@ethersproject/bytes": "npm:^5.7.0" + "@ethersproject/logger": "npm:^5.7.0" + "@ethersproject/properties": "npm:^5.7.0" + checksum: 10c0/e174966b3be17269a5974a3ae5eef6d15ac62ee8c300ceace26767f218f6bbf3de66f29d9a9c9ca300fa8551aab4c92e28d2cc772f5475fdeaa78d9b5be0e745 + languageName: node + linkType: hard + +"@ethersproject/address@npm:5.7.0, @ethersproject/address@npm:^5.7.0": + version: 5.7.0 + resolution: "@ethersproject/address@npm:5.7.0" + dependencies: + "@ethersproject/bignumber": "npm:^5.7.0" + "@ethersproject/bytes": "npm:^5.7.0" + "@ethersproject/keccak256": "npm:^5.7.0" + "@ethersproject/logger": "npm:^5.7.0" + "@ethersproject/rlp": "npm:^5.7.0" + checksum: 10c0/db5da50abeaae8f6cf17678323e8d01cad697f9a184b0593c62b71b0faa8d7e5c2ba14da78a998d691773ed6a8eb06701f65757218e0eaaeb134e5c5f3e5a908 + languageName: node + linkType: hard + +"@ethersproject/base64@npm:5.7.0, @ethersproject/base64@npm:^5.7.0": + version: 5.7.0 + resolution: "@ethersproject/base64@npm:5.7.0" + dependencies: + "@ethersproject/bytes": "npm:^5.7.0" + checksum: 10c0/4f748cd82af60ff1866db699fbf2bf057feff774ea0a30d1f03ea26426f53293ea10cc8265cda1695301da61093bedb8cc0d38887f43ed9dad96b78f19d7337e + languageName: node + linkType: hard + +"@ethersproject/basex@npm:5.7.0, @ethersproject/basex@npm:^5.7.0": + version: 5.7.0 + resolution: "@ethersproject/basex@npm:5.7.0" + dependencies: + "@ethersproject/bytes": "npm:^5.7.0" + "@ethersproject/properties": "npm:^5.7.0" + checksum: 10c0/02304de77477506ad798eb5c68077efd2531624380d770ef4a823e631a288fb680107a0f9dc4a6339b2a0b0f5b06ee77f53429afdad8f950cde0f3e40d30167d + languageName: node + linkType: hard + +"@ethersproject/bignumber@npm:5.7.0, @ethersproject/bignumber@npm:^5.7.0": + version: 5.7.0 + resolution: "@ethersproject/bignumber@npm:5.7.0" + dependencies: + "@ethersproject/bytes": "npm:^5.7.0" + "@ethersproject/logger": "npm:^5.7.0" + bn.js: "npm:^5.2.1" + checksum: 10c0/14263cdc91a7884b141d9300f018f76f69839c47e95718ef7161b11d2c7563163096fee69724c5fa8ef6f536d3e60f1c605819edbc478383a2b98abcde3d37b2 + languageName: node + linkType: hard + +"@ethersproject/bytes@npm:5.7.0, @ethersproject/bytes@npm:^5.7.0": + version: 5.7.0 + resolution: "@ethersproject/bytes@npm:5.7.0" + dependencies: + "@ethersproject/logger": "npm:^5.7.0" + checksum: 10c0/07dd1f0341b3de584ef26c8696674ff2bb032f4e99073856fc9cd7b4c54d1d846cabe149e864be267934658c3ce799e5ea26babe01f83af0e1f06c51e5ac791f + languageName: node + linkType: hard + +"@ethersproject/constants@npm:5.7.0, @ethersproject/constants@npm:^5.7.0": + version: 5.7.0 + resolution: "@ethersproject/constants@npm:5.7.0" + dependencies: + "@ethersproject/bignumber": "npm:^5.7.0" + checksum: 10c0/6df63ab753e152726b84595250ea722165a5744c046e317df40a6401f38556385a37c84dadf5b11ca651c4fb60f967046125369c57ac84829f6b30e69a096273 + languageName: node + linkType: hard + +"@ethersproject/contracts@npm:5.7.0, @ethersproject/contracts@npm:^5.7.0": + version: 5.7.0 + resolution: "@ethersproject/contracts@npm:5.7.0" + dependencies: + "@ethersproject/abi": "npm:^5.7.0" + "@ethersproject/abstract-provider": "npm:^5.7.0" + "@ethersproject/abstract-signer": "npm:^5.7.0" + "@ethersproject/address": "npm:^5.7.0" + "@ethersproject/bignumber": "npm:^5.7.0" + "@ethersproject/bytes": "npm:^5.7.0" + "@ethersproject/constants": "npm:^5.7.0" + "@ethersproject/logger": "npm:^5.7.0" + "@ethersproject/properties": "npm:^5.7.0" + "@ethersproject/transactions": "npm:^5.7.0" + checksum: 10c0/97a10361dddaccfb3e9e20e24d071cfa570050adcb964d3452c5f7c9eaaddb4e145ec9cf928e14417948701b89e81d4907800e799a6083123e4d13a576842f41 + languageName: node + linkType: hard + +"@ethersproject/hash@npm:5.7.0, @ethersproject/hash@npm:^5.7.0": + version: 5.7.0 + resolution: "@ethersproject/hash@npm:5.7.0" + dependencies: + "@ethersproject/abstract-signer": "npm:^5.7.0" + "@ethersproject/address": "npm:^5.7.0" + "@ethersproject/base64": "npm:^5.7.0" + "@ethersproject/bignumber": "npm:^5.7.0" + "@ethersproject/bytes": "npm:^5.7.0" + "@ethersproject/keccak256": "npm:^5.7.0" + "@ethersproject/logger": "npm:^5.7.0" + "@ethersproject/properties": "npm:^5.7.0" + "@ethersproject/strings": "npm:^5.7.0" + checksum: 10c0/1a631dae34c4cf340dde21d6940dd1715fc7ae483d576f7b8ef9e8cb1d0e30bd7e8d30d4a7d8dc531c14164602323af2c3d51eb2204af18b2e15167e70c9a5ef + languageName: node + linkType: hard + +"@ethersproject/hdnode@npm:5.7.0, @ethersproject/hdnode@npm:^5.7.0": + version: 5.7.0 + resolution: "@ethersproject/hdnode@npm:5.7.0" + dependencies: + "@ethersproject/abstract-signer": "npm:^5.7.0" + "@ethersproject/basex": "npm:^5.7.0" + "@ethersproject/bignumber": "npm:^5.7.0" + "@ethersproject/bytes": "npm:^5.7.0" + "@ethersproject/logger": "npm:^5.7.0" + "@ethersproject/pbkdf2": "npm:^5.7.0" + "@ethersproject/properties": "npm:^5.7.0" + "@ethersproject/sha2": "npm:^5.7.0" + "@ethersproject/signing-key": "npm:^5.7.0" + "@ethersproject/strings": "npm:^5.7.0" + "@ethersproject/transactions": "npm:^5.7.0" + "@ethersproject/wordlists": "npm:^5.7.0" + checksum: 10c0/36d5c13fe69b1e0a18ea98537bc560d8ba166e012d63faac92522a0b5f405eb67d8848c5aca69e2470f62743aaef2ac36638d9e27fd8c68f51506eb61479d51d + languageName: node + linkType: hard + +"@ethersproject/json-wallets@npm:5.7.0, @ethersproject/json-wallets@npm:^5.7.0": + version: 5.7.0 + resolution: "@ethersproject/json-wallets@npm:5.7.0" + dependencies: + "@ethersproject/abstract-signer": "npm:^5.7.0" + "@ethersproject/address": "npm:^5.7.0" + "@ethersproject/bytes": "npm:^5.7.0" + "@ethersproject/hdnode": "npm:^5.7.0" + "@ethersproject/keccak256": "npm:^5.7.0" + "@ethersproject/logger": "npm:^5.7.0" + "@ethersproject/pbkdf2": "npm:^5.7.0" + "@ethersproject/properties": "npm:^5.7.0" + "@ethersproject/random": "npm:^5.7.0" + "@ethersproject/strings": "npm:^5.7.0" + "@ethersproject/transactions": "npm:^5.7.0" + aes-js: "npm:3.0.0" + scrypt-js: "npm:3.0.1" + checksum: 10c0/f1a84d19ff38d3506f453abc4702107cbc96a43c000efcd273a056371363767a06a8d746f84263b1300266eb0c329fe3b49a9b39a37aadd016433faf9e15a4bb + languageName: node + linkType: hard + +"@ethersproject/keccak256@npm:5.7.0, @ethersproject/keccak256@npm:^5.7.0": + version: 5.7.0 + resolution: "@ethersproject/keccak256@npm:5.7.0" + dependencies: + "@ethersproject/bytes": "npm:^5.7.0" + js-sha3: "npm:0.8.0" + checksum: 10c0/3b1a91706ff11f5ab5496840b9c36cedca27db443186d28b94847149fd16baecdc13f6fc5efb8359506392f2aba559d07e7f9c1e17a63f9d5de9f8053cfcb033 + languageName: node + linkType: hard + +"@ethersproject/logger@npm:5.7.0, @ethersproject/logger@npm:^5.7.0": + version: 5.7.0 + resolution: "@ethersproject/logger@npm:5.7.0" + checksum: 10c0/d03d460fb2d4a5e71c627b7986fb9e50e1b59a6f55e8b42a545b8b92398b961e7fd294bd9c3d8f92b35d0f6ff9d15aa14c95eab378f8ea194e943c8ace343501 + languageName: node + linkType: hard + +"@ethersproject/networks@npm:5.7.1, @ethersproject/networks@npm:^5.7.0": + version: 5.7.1 + resolution: "@ethersproject/networks@npm:5.7.1" + dependencies: + "@ethersproject/logger": "npm:^5.7.0" + checksum: 10c0/9efcdce27f150459e85d74af3f72d5c32898823a99f5410e26bf26cca2d21fb14e403377314a93aea248e57fb2964e19cee2c3f7bfc586ceba4c803a8f1b75c0 + languageName: node + linkType: hard + +"@ethersproject/pbkdf2@npm:5.7.0, @ethersproject/pbkdf2@npm:^5.7.0": + version: 5.7.0 + resolution: "@ethersproject/pbkdf2@npm:5.7.0" + dependencies: + "@ethersproject/bytes": "npm:^5.7.0" + "@ethersproject/sha2": "npm:^5.7.0" + checksum: 10c0/e5a29cf28b4f4ca1def94d37cfb6a9c05c896106ed64881707813de01c1e7ded613f1e95febcccda4de96aae929068831d72b9d06beef1377b5a1a13a0eb3ff5 + languageName: node + linkType: hard + +"@ethersproject/properties@npm:5.7.0, @ethersproject/properties@npm:^5.7.0": + version: 5.7.0 + resolution: "@ethersproject/properties@npm:5.7.0" + dependencies: + "@ethersproject/logger": "npm:^5.7.0" + checksum: 10c0/4fe5d36e5550b8e23a305aa236a93e8f04d891d8198eecdc8273914c761b0e198fd6f757877406ee3eb05033ec271132a3e5998c7bd7b9a187964fb4f67b1373 + languageName: node + linkType: hard + +"@ethersproject/providers@npm:5.7.2, @ethersproject/providers@npm:^5.7.0": + version: 5.7.2 + resolution: "@ethersproject/providers@npm:5.7.2" + dependencies: + "@ethersproject/abstract-provider": "npm:^5.7.0" + "@ethersproject/abstract-signer": "npm:^5.7.0" + "@ethersproject/address": "npm:^5.7.0" + "@ethersproject/base64": "npm:^5.7.0" + "@ethersproject/basex": "npm:^5.7.0" + "@ethersproject/bignumber": "npm:^5.7.0" + "@ethersproject/bytes": "npm:^5.7.0" + "@ethersproject/constants": "npm:^5.7.0" + "@ethersproject/hash": "npm:^5.7.0" + "@ethersproject/logger": "npm:^5.7.0" + "@ethersproject/networks": "npm:^5.7.0" + "@ethersproject/properties": "npm:^5.7.0" + "@ethersproject/random": "npm:^5.7.0" + "@ethersproject/rlp": "npm:^5.7.0" + "@ethersproject/sha2": "npm:^5.7.0" + "@ethersproject/strings": "npm:^5.7.0" + "@ethersproject/transactions": "npm:^5.7.0" + "@ethersproject/web": "npm:^5.7.0" + bech32: "npm:1.1.4" + ws: "npm:7.4.6" + checksum: 10c0/4c8d19e6b31f769c24042fb2d02e483a4ee60dcbfca9e3291f0a029b24337c47d1ea719a390be856f8fd02997125819e834415e77da4fb2023369712348dae4c + languageName: node + linkType: hard + +"@ethersproject/random@npm:5.7.0, @ethersproject/random@npm:^5.7.0": + version: 5.7.0 + resolution: "@ethersproject/random@npm:5.7.0" + dependencies: + "@ethersproject/bytes": "npm:^5.7.0" + "@ethersproject/logger": "npm:^5.7.0" + checksum: 10c0/23e572fc55372653c22062f6a153a68c2e2d3200db734cd0d39621fbfd0ca999585bed2d5682e3ac65d87a2893048375682e49d1473d9965631ff56d2808580b + languageName: node + linkType: hard + +"@ethersproject/rlp@npm:5.7.0, @ethersproject/rlp@npm:^5.7.0": + version: 5.7.0 + resolution: "@ethersproject/rlp@npm:5.7.0" + dependencies: + "@ethersproject/bytes": "npm:^5.7.0" + "@ethersproject/logger": "npm:^5.7.0" + checksum: 10c0/bc863d21dcf7adf6a99ae75c41c4a3fb99698cfdcfc6d5d82021530f3d3551c6305bc7b6f0475ad6de6f69e91802b7e872bee48c0596d98969aefcf121c2a044 + languageName: node + linkType: hard + +"@ethersproject/sha2@npm:5.7.0, @ethersproject/sha2@npm:^5.7.0": + version: 5.7.0 + resolution: "@ethersproject/sha2@npm:5.7.0" + dependencies: + "@ethersproject/bytes": "npm:^5.7.0" + "@ethersproject/logger": "npm:^5.7.0" + hash.js: "npm:1.1.7" + checksum: 10c0/0e7f9ce6b1640817b921b9c6dd9dab8d5bf5a0ce7634d6a7d129b7366a576c2f90dcf4bcb15a0aa9310dde67028f3a44e4fcc2f26b565abcd2a0f465116ff3b1 + languageName: node + linkType: hard + +"@ethersproject/signing-key@npm:5.7.0, @ethersproject/signing-key@npm:^5.7.0": + version: 5.7.0 + resolution: "@ethersproject/signing-key@npm:5.7.0" + dependencies: + "@ethersproject/bytes": "npm:^5.7.0" + "@ethersproject/logger": "npm:^5.7.0" + "@ethersproject/properties": "npm:^5.7.0" + bn.js: "npm:^5.2.1" + elliptic: "npm:6.5.4" + hash.js: "npm:1.1.7" + checksum: 10c0/fe2ca55bcdb6e370d81372191d4e04671234a2da872af20b03c34e6e26b97dc07c1ee67e91b673680fb13344c9d5d7eae52f1fa6117733a3d68652b778843e09 + languageName: node + linkType: hard + +"@ethersproject/solidity@npm:5.7.0": + version: 5.7.0 + resolution: "@ethersproject/solidity@npm:5.7.0" + dependencies: + "@ethersproject/bignumber": "npm:^5.7.0" + "@ethersproject/bytes": "npm:^5.7.0" + "@ethersproject/keccak256": "npm:^5.7.0" + "@ethersproject/logger": "npm:^5.7.0" + "@ethersproject/sha2": "npm:^5.7.0" + "@ethersproject/strings": "npm:^5.7.0" + checksum: 10c0/bedf9918911144b0ec352b8aa7fa44abf63f0b131629c625672794ee196ba7d3992b0e0d3741935ca176813da25b9bcbc81aec454652c63113bdc3a1706beac6 + languageName: node + linkType: hard + +"@ethersproject/strings@npm:5.7.0, @ethersproject/strings@npm:^5.7.0": + version: 5.7.0 + resolution: "@ethersproject/strings@npm:5.7.0" + dependencies: + "@ethersproject/bytes": "npm:^5.7.0" + "@ethersproject/constants": "npm:^5.7.0" + "@ethersproject/logger": "npm:^5.7.0" + checksum: 10c0/570d87040ccc7d94de9861f76fc2fba6c0b84c5d6104a99a5c60b8a2401df2e4f24bf9c30afa536163b10a564a109a96f02e6290b80e8f0c610426f56ad704d1 + languageName: node + linkType: hard + +"@ethersproject/transactions@npm:5.7.0, @ethersproject/transactions@npm:^5.7.0": + version: 5.7.0 + resolution: "@ethersproject/transactions@npm:5.7.0" + dependencies: + "@ethersproject/address": "npm:^5.7.0" + "@ethersproject/bignumber": "npm:^5.7.0" + "@ethersproject/bytes": "npm:^5.7.0" + "@ethersproject/constants": "npm:^5.7.0" + "@ethersproject/keccak256": "npm:^5.7.0" + "@ethersproject/logger": "npm:^5.7.0" + "@ethersproject/properties": "npm:^5.7.0" + "@ethersproject/rlp": "npm:^5.7.0" + "@ethersproject/signing-key": "npm:^5.7.0" + checksum: 10c0/aa4d51379caab35b9c468ed1692a23ae47ce0de121890b4f7093c982ee57e30bd2df0c743faed0f44936d7e59c55fffd80479f2c28ec6777b8de06bfb638c239 + languageName: node + linkType: hard + +"@ethersproject/units@npm:5.7.0": + version: 5.7.0 + resolution: "@ethersproject/units@npm:5.7.0" + dependencies: + "@ethersproject/bignumber": "npm:^5.7.0" + "@ethersproject/constants": "npm:^5.7.0" + "@ethersproject/logger": "npm:^5.7.0" + checksum: 10c0/4da2fdefe2a506cc9f8b408b2c8638ab35b843ec413d52713143f08501a55ff67a808897f9a91874774fb526423a0821090ba294f93e8bf4933a57af9677ac5e + languageName: node + linkType: hard + +"@ethersproject/wallet@npm:5.7.0": + version: 5.7.0 + resolution: "@ethersproject/wallet@npm:5.7.0" + dependencies: + "@ethersproject/abstract-provider": "npm:^5.7.0" + "@ethersproject/abstract-signer": "npm:^5.7.0" + "@ethersproject/address": "npm:^5.7.0" + "@ethersproject/bignumber": "npm:^5.7.0" + "@ethersproject/bytes": "npm:^5.7.0" + "@ethersproject/hash": "npm:^5.7.0" + "@ethersproject/hdnode": "npm:^5.7.0" + "@ethersproject/json-wallets": "npm:^5.7.0" + "@ethersproject/keccak256": "npm:^5.7.0" + "@ethersproject/logger": "npm:^5.7.0" + "@ethersproject/properties": "npm:^5.7.0" + "@ethersproject/random": "npm:^5.7.0" + "@ethersproject/signing-key": "npm:^5.7.0" + "@ethersproject/transactions": "npm:^5.7.0" + "@ethersproject/wordlists": "npm:^5.7.0" + checksum: 10c0/f872b957db46f9de247d39a398538622b6c7a12f93d69bec5f47f9abf0701ef1edc10497924dd1c14a68109284c39a1686fa85586d89b3ee65df49002c40ba4c + languageName: node + linkType: hard + +"@ethersproject/web@npm:5.7.1, @ethersproject/web@npm:^5.7.0": + version: 5.7.1 + resolution: "@ethersproject/web@npm:5.7.1" + dependencies: + "@ethersproject/base64": "npm:^5.7.0" + "@ethersproject/bytes": "npm:^5.7.0" + "@ethersproject/logger": "npm:^5.7.0" + "@ethersproject/properties": "npm:^5.7.0" + "@ethersproject/strings": "npm:^5.7.0" + checksum: 10c0/c82d6745c7f133980e8dab203955260e07da22fa544ccafdd0f21c79fae127bd6ef30957319e37b1cc80cddeb04d6bfb60f291bb14a97c9093d81ce50672f453 + languageName: node + linkType: hard + +"@ethersproject/wordlists@npm:5.7.0, @ethersproject/wordlists@npm:^5.7.0": + version: 5.7.0 + resolution: "@ethersproject/wordlists@npm:5.7.0" + dependencies: + "@ethersproject/bytes": "npm:^5.7.0" + "@ethersproject/hash": "npm:^5.7.0" + "@ethersproject/logger": "npm:^5.7.0" + "@ethersproject/properties": "npm:^5.7.0" + "@ethersproject/strings": "npm:^5.7.0" + checksum: 10c0/da4f3eca6d691ebf4f578e6b2ec3a76dedba791be558f6cf7e10cd0bfbaeab5a6753164201bb72ced745fb02b6ef7ef34edcb7e6065ce2b624c6556a461c3f70 + languageName: node + linkType: hard + +"@hyperlane-xyz/core@npm:^3.7.0": + version: 3.7.0 + resolution: "@hyperlane-xyz/core@npm:3.7.0" + dependencies: + "@eth-optimism/contracts": "npm:^0.6.0" + "@hyperlane-xyz/utils": "npm:3.7.0" + "@openzeppelin/contracts": "npm:^4.9.3" + "@openzeppelin/contracts-upgradeable": "npm:^v4.9.3" + peerDependencies: + "@ethersproject/abi": "*" + "@ethersproject/providers": "*" + "@types/sinon-chai": "*" + checksum: 10c0/195b4fec90e801136f74625a4fbc006a0cbc696740bdb7b0757ad0e58e6bbc22c0482a04340f8e2d9e64a30b22b2b2949f445af9aa16f86fddcba58370b0eebe + languageName: node + linkType: hard + +"@hyperlane-xyz/utils@npm:3.7.0": + version: 3.7.0 + resolution: "@hyperlane-xyz/utils@npm:3.7.0" + dependencies: + "@cosmjs/encoding": "npm:^0.31.3" + "@solana/web3.js": "npm:^1.78.0" + bignumber.js: "npm:^9.1.1" + ethers: "npm:^5.7.2" + checksum: 10c0/d1118e6b86a21a141ee73ff02aae3a4ab81108fd75a416d4836f4f3912088616f058a7c124f0a0199cdf654f1b4d5ddf5602c99357e1bc643eb0eab91e1fd028 + languageName: node + linkType: hard + +"@isaacs/cliui@npm:^8.0.2": + version: 8.0.2 + resolution: "@isaacs/cliui@npm:8.0.2" + dependencies: + string-width: "npm:^5.1.2" + string-width-cjs: "npm:string-width@^4.2.0" + strip-ansi: "npm:^7.0.1" + strip-ansi-cjs: "npm:strip-ansi@^6.0.1" + wrap-ansi: "npm:^8.1.0" + wrap-ansi-cjs: "npm:wrap-ansi@^7.0.0" + checksum: 10c0/b1bf42535d49f11dc137f18d5e4e63a28c5569de438a221c369483731e9dac9fb797af554e8bf02b6192d1e5eba6e6402cf93900c3d0ac86391d00d04876789e + languageName: node + linkType: hard + +"@istanbuljs/load-nyc-config@npm:^1.0.0": + version: 1.1.0 + resolution: "@istanbuljs/load-nyc-config@npm:1.1.0" + dependencies: + camelcase: "npm:^5.3.1" + find-up: "npm:^4.1.0" + get-package-type: "npm:^0.1.0" + js-yaml: "npm:^3.13.1" + resolve-from: "npm:^5.0.0" + checksum: 10c0/dd2a8b094887da5a1a2339543a4933d06db2e63cbbc2e288eb6431bd832065df0c099d091b6a67436e71b7d6bf85f01ce7c15f9253b4cbebcc3b9a496165ba42 + languageName: node + linkType: hard + +"@istanbuljs/schema@npm:^0.1.2": + version: 0.1.3 + resolution: "@istanbuljs/schema@npm:0.1.3" + checksum: 10c0/61c5286771676c9ca3eb2bd8a7310a9c063fb6e0e9712225c8471c582d157392c88f5353581c8c9adbe0dff98892317d2fdfc56c3499aa42e0194405206a963a + languageName: node + linkType: hard + +"@jest/schemas@npm:^28.1.3": + version: 28.1.3 + resolution: "@jest/schemas@npm:28.1.3" + dependencies: + "@sinclair/typebox": "npm:^0.24.1" + checksum: 10c0/8c325918f3e1b83e687987b05c2e5143d171f372b091f891fe17835f06fadd864ddae3c7e221a704bdd7e2ea28c4b337124c02023d8affcbdd51eca2879162ac + languageName: node + linkType: hard + +"@jest/transform@npm:28.1.3": + version: 28.1.3 + resolution: "@jest/transform@npm:28.1.3" + dependencies: + "@babel/core": "npm:^7.11.6" + "@jest/types": "npm:^28.1.3" + "@jridgewell/trace-mapping": "npm:^0.3.13" + babel-plugin-istanbul: "npm:^6.1.1" + chalk: "npm:^4.0.0" + convert-source-map: "npm:^1.4.0" + fast-json-stable-stringify: "npm:^2.0.0" + graceful-fs: "npm:^4.2.9" + jest-haste-map: "npm:^28.1.3" + jest-regex-util: "npm:^28.0.2" + jest-util: "npm:^28.1.3" + micromatch: "npm:^4.0.4" + pirates: "npm:^4.0.4" + slash: "npm:^3.0.0" + write-file-atomic: "npm:^4.0.1" + checksum: 10c0/d4211fb30ad17a450a86ab1af488762742b00480c4f76684ba0ad9b2ffc34a0d309a922514775de36a5b74aa8e22ec833e38600565dbbd0596a041fbe9ecf44c + languageName: node + linkType: hard + +"@jest/types@npm:^28.1.3": + version: 28.1.3 + resolution: "@jest/types@npm:28.1.3" + dependencies: + "@jest/schemas": "npm:^28.1.3" + "@types/istanbul-lib-coverage": "npm:^2.0.0" + "@types/istanbul-reports": "npm:^3.0.0" + "@types/node": "npm:*" + "@types/yargs": "npm:^17.0.8" + chalk: "npm:^4.0.0" + checksum: 10c0/3cffae7d1133aa7952a6b5c4806f89ed78cb0dfe3ec4e8c5a6e704d7bab3cff86c714abb5f0f637540da22776900a33b3bad79c5ed5fc5b5535fb24e3006e3cb + languageName: node + linkType: hard + +"@jridgewell/gen-mapping@npm:^0.3.0, @jridgewell/gen-mapping@npm:^0.3.2": + version: 0.3.4 + resolution: "@jridgewell/gen-mapping@npm:0.3.4" + dependencies: + "@jridgewell/set-array": "npm:^1.0.1" + "@jridgewell/sourcemap-codec": "npm:^1.4.10" + "@jridgewell/trace-mapping": "npm:^0.3.9" + checksum: 10c0/dd6c48341ad01a75bd93bae17fcc888120d063bdf927d4c496b663aa68e22b9e51e898ba38abe7457b28efd3fa5cde43723dba4dc5f94281119fa709cb5046be + languageName: node + linkType: hard + +"@jridgewell/resolve-uri@npm:^3.0.3, @jridgewell/resolve-uri@npm:^3.1.0": + version: 3.1.2 + resolution: "@jridgewell/resolve-uri@npm:3.1.2" + checksum: 10c0/d502e6fb516b35032331406d4e962c21fe77cdf1cbdb49c6142bcbd9e30507094b18972778a6e27cbad756209cfe34b1a27729e6fa08a2eb92b33943f680cf1e + languageName: node + linkType: hard + +"@jridgewell/set-array@npm:^1.0.1": + version: 1.1.2 + resolution: "@jridgewell/set-array@npm:1.1.2" + checksum: 10c0/bc7ab4c4c00470de4e7562ecac3c0c84f53e7ee8a711e546d67c47da7febe7c45cd67d4d84ee3c9b2c05ae8e872656cdded8a707a283d30bd54fbc65aef821ab + languageName: node + linkType: hard + +"@jridgewell/sourcemap-codec@npm:^1.4.10, @jridgewell/sourcemap-codec@npm:^1.4.14": + version: 1.4.15 + resolution: "@jridgewell/sourcemap-codec@npm:1.4.15" + checksum: 10c0/0c6b5ae663087558039052a626d2d7ed5208da36cfd707dcc5cea4a07cfc918248403dcb5989a8f7afaf245ce0573b7cc6fd94c4a30453bd10e44d9363940ba5 + languageName: node + linkType: hard + +"@jridgewell/trace-mapping@npm:0.3.9": + version: 0.3.9 + resolution: "@jridgewell/trace-mapping@npm:0.3.9" + dependencies: + "@jridgewell/resolve-uri": "npm:^3.0.3" + "@jridgewell/sourcemap-codec": "npm:^1.4.10" + checksum: 10c0/fa425b606d7c7ee5bfa6a31a7b050dd5814b4082f318e0e4190f991902181b4330f43f4805db1dd4f2433fd0ed9cc7a7b9c2683f1deeab1df1b0a98b1e24055b + languageName: node + linkType: hard + +"@jridgewell/trace-mapping@npm:^0.3.13, @jridgewell/trace-mapping@npm:^0.3.17, @jridgewell/trace-mapping@npm:^0.3.9": + version: 0.3.23 + resolution: "@jridgewell/trace-mapping@npm:0.3.23" + dependencies: + "@jridgewell/resolve-uri": "npm:^3.1.0" + "@jridgewell/sourcemap-codec": "npm:^1.4.14" + checksum: 10c0/26190e09129b184a41c83ce896ce41c0636ddc1285a22627a48ec7981829346ced655d5774bdca30446250baf0e4fb519c47732760d128edda51a6222b40397a + languageName: node + linkType: hard + +"@jsdevtools/ono@npm:^7.1.3": + version: 7.1.3 + resolution: "@jsdevtools/ono@npm:7.1.3" + checksum: 10c0/a9f7e3e8e3bc315a34959934a5e2f874c423cf4eae64377d3fc9de0400ed9f36cb5fd5ebce3300d2e8f4085f557c4a8b591427a583729a87841fda46e6c216b9 + languageName: node + linkType: hard + +"@many-things/cw-hyperlane@workspace:.": + version: 0.0.0-use.local + resolution: "@many-things/cw-hyperlane@workspace:." + dependencies: + "@cosmjs/cosmwasm-stargate": "npm:^0.32.2" + "@cosmjs/crypto": "npm:^0.32.2" + "@cosmjs/encoding": "npm:^0.32.2" + "@cosmjs/proto-signing": "npm:^0.32.2" + "@cosmjs/stargate": "npm:^0.32.2" + "@cosmjs/tendermint-rpc": "npm:^0.32.2" + "@cosmwasm/ts-codegen": "npm:^0.35.7" + "@hyperlane-xyz/core": "npm:^3.7.0" + "@types/decompress": "npm:^4.2.7" + "@types/js-yaml": "npm:^4.0.8" + "@types/node": "npm:^20.11.20" + axios: "npm:^1.6.7" + colors: "npm:^1.4.0" + commander: "npm:^11.1.0" + decompress: "npm:^4.2.1" + esbuild: "npm:^0.20.1" + inversify: "npm:^6.0.1" + readline: "npm:^1.3.0" + reflect-metadata: "npm:^0.1.13" + ts-node: "npm:^10.9.1" + ts-yaml: "npm:^1.0.0" + tsx: "npm:^3.13.0" + typescript: "npm:^5.1.6" + viem: "npm:^2.7.15" + languageName: unknown + linkType: soft + +"@noble/curves@npm:1.2.0, @noble/curves@npm:~1.2.0": + version: 1.2.0 + resolution: "@noble/curves@npm:1.2.0" + dependencies: + "@noble/hashes": "npm:1.3.2" + checksum: 10c0/0bac7d1bbfb3c2286910b02598addd33243cb97c3f36f987ecc927a4be8d7d88e0fcb12b0f0ef8a044e7307d1844dd5c49bb724bfa0a79c8ec50ba60768c97f6 + languageName: node + linkType: hard + +"@noble/curves@npm:^1.2.0": + version: 1.3.0 + resolution: "@noble/curves@npm:1.3.0" + dependencies: + "@noble/hashes": "npm:1.3.3" + checksum: 10c0/704bf8fda8e1365a9bb9e9945bd06645ef4ce85aa2fac5594abe09f19889197518152319481b89a271e0ee011787bd2ee87202441500bca7ca587a2c3ac10b01 + languageName: node + linkType: hard + +"@noble/hashes@npm:1.3.2": + version: 1.3.2 + resolution: "@noble/hashes@npm:1.3.2" + checksum: 10c0/2482cce3bce6a596626f94ca296e21378e7a5d4c09597cbc46e65ffacc3d64c8df73111f2265444e36a3168208628258bbbaccba2ef24f65f58b2417638a20e7 + languageName: node + linkType: hard + +"@noble/hashes@npm:1.3.3, @noble/hashes@npm:^1, @noble/hashes@npm:^1.0.0, @noble/hashes@npm:^1.3.2, @noble/hashes@npm:~1.3.0, @noble/hashes@npm:~1.3.2": + version: 1.3.3 + resolution: "@noble/hashes@npm:1.3.3" + checksum: 10c0/23c020b33da4172c988e44100e33cd9f8f6250b68b43c467d3551f82070ebd9716e0d9d2347427aa3774c85934a35fa9ee6f026fca2117e3fa12db7bedae7668 + languageName: node + linkType: hard + +"@npmcli/agent@npm:^2.0.0": + version: 2.2.1 + resolution: "@npmcli/agent@npm:2.2.1" + dependencies: + agent-base: "npm:^7.1.0" + http-proxy-agent: "npm:^7.0.0" + https-proxy-agent: "npm:^7.0.1" + lru-cache: "npm:^10.0.1" + socks-proxy-agent: "npm:^8.0.1" + checksum: 10c0/38ee5cbe8f3cde13be916e717bfc54fd1a7605c07af056369ff894e244c221e0b56b08ca5213457477f9bc15bca9e729d51a4788829b5c3cf296b3c996147f76 + languageName: node + linkType: hard + +"@npmcli/fs@npm:^3.1.0": + version: 3.1.0 + resolution: "@npmcli/fs@npm:3.1.0" + dependencies: + semver: "npm:^7.3.5" + checksum: 10c0/162b4a0b8705cd6f5c2470b851d1dc6cd228c86d2170e1769d738c1fbb69a87160901411c3c035331e9e99db72f1f1099a8b734bf1637cc32b9a5be1660e4e1e + languageName: node + linkType: hard + +"@openzeppelin/contracts-upgradeable@npm:^v4.9.3": + version: 4.9.5 + resolution: "@openzeppelin/contracts-upgradeable@npm:4.9.5" + checksum: 10c0/0aa3ff3b776718d78ea82071dbc3b9fa93051d8d2d421da9765eb0ea3918615e6bc426facfe340b640e60c3bacb111f90067c3e4924cb6b67b166d062b73a654 + languageName: node + linkType: hard + +"@openzeppelin/contracts@npm:^4.9.3": + version: 4.9.5 + resolution: "@openzeppelin/contracts@npm:4.9.5" + checksum: 10c0/bf5b38320c09f33ecbd7bbf5f6dc8a3a94d3771ee4a1c0dcfc517c05bd03f61b3b3cb263c608e323780994b7686a21fdce2674ca5d127674c3292e5578335032 + languageName: node + linkType: hard + +"@pkgjs/parseargs@npm:^0.11.0": + version: 0.11.0 + resolution: "@pkgjs/parseargs@npm:0.11.0" + checksum: 10c0/5bd7576bb1b38a47a7fc7b51ac9f38748e772beebc56200450c4a817d712232b8f1d3ef70532c80840243c657d491cf6a6be1e3a214cff907645819fdc34aadd + languageName: node + linkType: hard + +"@protobufjs/aspromise@npm:^1.1.1, @protobufjs/aspromise@npm:^1.1.2": + version: 1.1.2 + resolution: "@protobufjs/aspromise@npm:1.1.2" + checksum: 10c0/a83343a468ff5b5ec6bff36fd788a64c839e48a07ff9f4f813564f58caf44d011cd6504ed2147bf34835bd7a7dd2107052af755961c6b098fd8902b4f6500d0f + languageName: node + linkType: hard + +"@protobufjs/base64@npm:^1.1.2": + version: 1.1.2 + resolution: "@protobufjs/base64@npm:1.1.2" + checksum: 10c0/eec925e681081af190b8ee231f9bad3101e189abbc182ff279da6b531e7dbd2a56f1f306f37a80b1be9e00aa2d271690d08dcc5f326f71c9eed8546675c8caf6 + languageName: node + linkType: hard + +"@protobufjs/codegen@npm:^2.0.4": + version: 2.0.4 + resolution: "@protobufjs/codegen@npm:2.0.4" + checksum: 10c0/26ae337c5659e41f091606d16465bbcc1df1f37cc1ed462438b1f67be0c1e28dfb2ca9f294f39100c52161aef82edf758c95d6d75650a1ddf31f7ddee1440b43 + languageName: node + linkType: hard + +"@protobufjs/eventemitter@npm:^1.1.0": + version: 1.1.0 + resolution: "@protobufjs/eventemitter@npm:1.1.0" + checksum: 10c0/1eb0a75180e5206d1033e4138212a8c7089a3d418c6dfa5a6ce42e593a4ae2e5892c4ef7421f38092badba4040ea6a45f0928869989411001d8c1018ea9a6e70 + languageName: node + linkType: hard + +"@protobufjs/fetch@npm:^1.1.0": + version: 1.1.0 + resolution: "@protobufjs/fetch@npm:1.1.0" + dependencies: + "@protobufjs/aspromise": "npm:^1.1.1" + "@protobufjs/inquire": "npm:^1.1.0" + checksum: 10c0/cda6a3dc2d50a182c5865b160f72077aac197046600091dbb005dd0a66db9cce3c5eaed6d470ac8ed49d7bcbeef6ee5f0bc288db5ff9a70cbd003e5909065233 + languageName: node + linkType: hard + +"@protobufjs/float@npm:^1.0.2": + version: 1.0.2 + resolution: "@protobufjs/float@npm:1.0.2" + checksum: 10c0/18f2bdede76ffcf0170708af15c9c9db6259b771e6b84c51b06df34a9c339dbbeec267d14ce0bddd20acc142b1d980d983d31434398df7f98eb0c94a0eb79069 + languageName: node + linkType: hard + +"@protobufjs/inquire@npm:^1.1.0": + version: 1.1.0 + resolution: "@protobufjs/inquire@npm:1.1.0" + checksum: 10c0/64372482efcba1fb4d166a2664a6395fa978b557803857c9c03500e0ac1013eb4b1aacc9ed851dd5fc22f81583670b4f4431bae186f3373fedcfde863ef5921a + languageName: node + linkType: hard + +"@protobufjs/path@npm:^1.1.2": + version: 1.1.2 + resolution: "@protobufjs/path@npm:1.1.2" + checksum: 10c0/cece0a938e7f5dfd2fa03f8c14f2f1cf8b0d6e13ac7326ff4c96ea311effd5fb7ae0bba754fbf505312af2e38500250c90e68506b97c02360a43793d88a0d8b4 + languageName: node + linkType: hard + +"@protobufjs/pool@npm:^1.1.0": + version: 1.1.0 + resolution: "@protobufjs/pool@npm:1.1.0" + checksum: 10c0/eda2718b7f222ac6e6ad36f758a92ef90d26526026a19f4f17f668f45e0306a5bd734def3f48f51f8134ae0978b6262a5c517c08b115a551756d1a3aadfcf038 + languageName: node + linkType: hard + +"@protobufjs/utf8@npm:^1.1.0": + version: 1.1.0 + resolution: "@protobufjs/utf8@npm:1.1.0" + checksum: 10c0/a3fe31fe3fa29aa3349e2e04ee13dc170cc6af7c23d92ad49e3eeaf79b9766264544d3da824dba93b7855bd6a2982fb40032ef40693da98a136d835752beb487 + languageName: node + linkType: hard + +"@pyramation/json-schema-ref-parser@npm:9.0.6": + version: 9.0.6 + resolution: "@pyramation/json-schema-ref-parser@npm:9.0.6" + dependencies: + "@jsdevtools/ono": "npm:^7.1.3" + call-me-maybe: "npm:^1.0.1" + js-yaml: "npm:^3.13.1" + checksum: 10c0/b30545f2a198101bc15a7cd035d91c23ed8e58485a1fe2d2e2e2a424925d9ff331d2743f418ba086eea994906fa3865fad78f237e805454e7ba52f8b17491d21 + languageName: node + linkType: hard + +"@pyramation/json-schema-to-typescript@npm: 11.0.4": + version: 11.0.4 + resolution: "@pyramation/json-schema-to-typescript@npm:11.0.4" + dependencies: + "@pyramation/json-schema-ref-parser": "npm:9.0.6" + "@types/json-schema": "npm:^7.0.11" + "@types/lodash": "npm:^4.14.182" + "@types/prettier": "npm:^2.6.1" + cli-color: "npm:^2.0.2" + get-stdin: "npm:^8.0.0" + glob: "npm:^7.1.6" + glob-promise: "npm:^4.2.2" + is-glob: "npm:^4.0.3" + lodash: "npm:^4.17.21" + minimist: "npm:^1.2.6" + mkdirp: "npm:^1.0.4" + mz: "npm:^2.7.0" + prettier: "npm:^2.6.2" + bin: + json2ts: dist/src/cli.js + checksum: 10c0/a531d0058f1e9b86850f11804858afcf5203c575439d074b52a8f7229f7e356ac783517272538c24f2efa00df9671941ab7b1251fe6f2ea23384314ef92c88d0 + languageName: node + linkType: hard + +"@scure/base@npm:~1.1.0, @scure/base@npm:~1.1.2": + version: 1.1.5 + resolution: "@scure/base@npm:1.1.5" + checksum: 10c0/6eb07be0202fac74a57c79d0d00a45f6f7e57447010c1e3d90a4275d197829727b7abc54b248fc6f9bef9ae374f7be5ee9154dde5b5b73da773560bf17aa8504 + languageName: node + linkType: hard + +"@scure/bip32@npm:1.3.2": + version: 1.3.2 + resolution: "@scure/bip32@npm:1.3.2" + dependencies: + "@noble/curves": "npm:~1.2.0" + "@noble/hashes": "npm:~1.3.2" + "@scure/base": "npm:~1.1.2" + checksum: 10c0/2e9c1ce67f72b6c3329483f5fd39fb43ba6dcf732ed7ac63b80fa96341d2bc4cad1ea4c75bfeb91e801968c00df48b577b015fd4591f581e93f0d91178e630ca + languageName: node + linkType: hard + +"@scure/bip39@npm:1.2.1": + version: 1.2.1 + resolution: "@scure/bip39@npm:1.2.1" + dependencies: + "@noble/hashes": "npm:~1.3.0" + "@scure/base": "npm:~1.1.0" + checksum: 10c0/fe951f69dd5a7cdcefbe865bce1b160d6b59ba19bd01d09f0718e54fce37a7d8be158b32f5455f0e9c426a7fbbede3e019bf0baa99bacc88ef26a76a07e115d4 + languageName: node + linkType: hard + +"@sinclair/typebox@npm:^0.24.1": + version: 0.24.51 + resolution: "@sinclair/typebox@npm:0.24.51" + checksum: 10c0/458131e83ca59ad3721f0abeef2aa5220aff2083767e1143d75c67c85d55ef7a212f48f394471ee6bdd2e860ba30f09a489cdd2a28a2824d5b0d1014bdfb2552 + languageName: node + linkType: hard + +"@solana/buffer-layout@npm:^4.0.1": + version: 4.0.1 + resolution: "@solana/buffer-layout@npm:4.0.1" + dependencies: + buffer: "npm:~6.0.3" + checksum: 10c0/6535f3908cf6dfc405b665795f0c2eaa0482a8c6b1811403945cf7b450e7eb7b40acce3e8af046f2fcc3eea1a15e61d48c418315d813bee4b720d56b00053305 + languageName: node + linkType: hard + +"@solana/web3.js@npm:^1.78.0": + version: 1.90.0 + resolution: "@solana/web3.js@npm:1.90.0" + dependencies: + "@babel/runtime": "npm:^7.23.4" + "@noble/curves": "npm:^1.2.0" + "@noble/hashes": "npm:^1.3.2" + "@solana/buffer-layout": "npm:^4.0.1" + agentkeepalive: "npm:^4.5.0" + bigint-buffer: "npm:^1.1.5" + bn.js: "npm:^5.2.1" + borsh: "npm:^0.7.0" + bs58: "npm:^4.0.1" + buffer: "npm:6.0.3" + fast-stable-stringify: "npm:^1.0.0" + jayson: "npm:^4.1.0" + node-fetch: "npm:^2.7.0" + rpc-websockets: "npm:^7.5.1" + superstruct: "npm:^0.14.2" + checksum: 10c0/353af37d18733557df289ff3c7d9a11698529fc953664005049a159dbe63ca626f1434b91ea4c8261cb6c20edcd6d4103d19acbfc75c640229789004f3bfe14b + languageName: node + linkType: hard + +"@tsconfig/node10@npm:^1.0.7": + version: 1.0.9 + resolution: "@tsconfig/node10@npm:1.0.9" + checksum: 10c0/c176a2c1e1b16be120c328300ea910df15fb9a5277010116d26818272341a11483c5a80059389d04edacf6fd2d03d4687ad3660870fdd1cc0b7109e160adb220 + languageName: node + linkType: hard + +"@tsconfig/node12@npm:^1.0.7": + version: 1.0.11 + resolution: "@tsconfig/node12@npm:1.0.11" + checksum: 10c0/dddca2b553e2bee1308a056705103fc8304e42bb2d2cbd797b84403a223b25c78f2c683ec3e24a095e82cd435387c877239bffcb15a590ba817cd3f6b9a99fd9 + languageName: node + linkType: hard + +"@tsconfig/node14@npm:^1.0.0": + version: 1.0.3 + resolution: "@tsconfig/node14@npm:1.0.3" + checksum: 10c0/67c1316d065fdaa32525bc9449ff82c197c4c19092b9663b23213c8cbbf8d88b6ed6a17898e0cbc2711950fbfaf40388938c1c748a2ee89f7234fc9e7fe2bf44 + languageName: node + linkType: hard + +"@tsconfig/node16@npm:^1.0.2": + version: 1.0.4 + resolution: "@tsconfig/node16@npm:1.0.4" + checksum: 10c0/05f8f2734e266fb1839eb1d57290df1664fe2aa3b0fdd685a9035806daa635f7519bf6d5d9b33f6e69dd545b8c46bd6e2b5c79acb2b1f146e885f7f11a42a5bb + languageName: node + linkType: hard + +"@types/connect@npm:^3.4.33": + version: 3.4.38 + resolution: "@types/connect@npm:3.4.38" + dependencies: + "@types/node": "npm:*" + checksum: 10c0/2e1cdba2c410f25649e77856505cd60223250fa12dff7a503e492208dbfdd25f62859918f28aba95315251fd1f5e1ffbfca1e25e73037189ab85dd3f8d0a148c + languageName: node + linkType: hard + +"@types/decompress@npm:^4.2.7": + version: 4.2.7 + resolution: "@types/decompress@npm:4.2.7" + dependencies: + "@types/node": "npm:*" + checksum: 10c0/29f7d150c43a15a34f026fc04cd7e38c7717aeaecd8b3121a842560ac6f57f1df330b6401c326c9068e42c993c3bc23c1bb540aa3b89cc5f5323748634380967 + languageName: node + linkType: hard + +"@types/glob@npm:^7.1.3": + version: 7.2.0 + resolution: "@types/glob@npm:7.2.0" + dependencies: + "@types/minimatch": "npm:*" + "@types/node": "npm:*" + checksum: 10c0/a8eb5d5cb5c48fc58c7ca3ff1e1ddf771ee07ca5043da6e4871e6757b4472e2e73b4cfef2644c38983174a4bc728c73f8da02845c28a1212f98cabd293ecae98 + languageName: node + linkType: hard + +"@types/graceful-fs@npm:^4.1.3": + version: 4.1.9 + resolution: "@types/graceful-fs@npm:4.1.9" + dependencies: + "@types/node": "npm:*" + checksum: 10c0/235d2fc69741448e853333b7c3d1180a966dd2b8972c8cbcd6b2a0c6cd7f8d582ab2b8e58219dbc62cce8f1b40aa317ff78ea2201cdd8249da5025adebed6f0b + languageName: node + linkType: hard + +"@types/istanbul-lib-coverage@npm:*, @types/istanbul-lib-coverage@npm:^2.0.0": + version: 2.0.6 + resolution: "@types/istanbul-lib-coverage@npm:2.0.6" + checksum: 10c0/3948088654f3eeb45363f1db158354fb013b362dba2a5c2c18c559484d5eb9f6fd85b23d66c0a7c2fcfab7308d0a585b14dadaca6cc8bf89ebfdc7f8f5102fb7 + languageName: node + linkType: hard + +"@types/istanbul-lib-report@npm:*": + version: 3.0.3 + resolution: "@types/istanbul-lib-report@npm:3.0.3" + dependencies: + "@types/istanbul-lib-coverage": "npm:*" + checksum: 10c0/247e477bbc1a77248f3c6de5dadaae85ff86ac2d76c5fc6ab1776f54512a745ff2a5f791d22b942e3990ddbd40f3ef5289317c4fca5741bedfaa4f01df89051c + languageName: node + linkType: hard + +"@types/istanbul-reports@npm:^3.0.0": + version: 3.0.4 + resolution: "@types/istanbul-reports@npm:3.0.4" + dependencies: + "@types/istanbul-lib-report": "npm:*" + checksum: 10c0/1647fd402aced5b6edac87274af14ebd6b3a85447ef9ad11853a70fd92a98d35f81a5d3ea9fcb5dbb5834e800c6e35b64475e33fcae6bfa9acc70d61497c54ee + languageName: node + linkType: hard + +"@types/js-yaml@npm:^4.0.8": + version: 4.0.9 + resolution: "@types/js-yaml@npm:4.0.9" + checksum: 10c0/24de857aa8d61526bbfbbaa383aa538283ad17363fcd5bb5148e2c7f604547db36646440e739d78241ed008702a8920665d1add5618687b6743858fae00da211 + languageName: node + linkType: hard + +"@types/json-schema@npm:^7.0.11": + version: 7.0.15 + resolution: "@types/json-schema@npm:7.0.15" + checksum: 10c0/a996a745e6c5d60292f36731dd41341339d4eeed8180bb09226e5c8d23759067692b1d88e5d91d72ee83dfc00d3aca8e7bd43ea120516c17922cbcb7c3e252db + languageName: node + linkType: hard + +"@types/lodash@npm:^4.14.182": + version: 4.14.202 + resolution: "@types/lodash@npm:4.14.202" + checksum: 10c0/6064d43c8f454170841bd67c8266cc9069d9e570a72ca63f06bceb484cb4a3ee60c9c1f305c1b9e3a87826049fd41124b8ef265c4dd08b00f6766609c7fe9973 + languageName: node + linkType: hard + +"@types/long@npm:^4.0.1": + version: 4.0.2 + resolution: "@types/long@npm:4.0.2" + checksum: 10c0/42ec66ade1f72ff9d143c5a519a65efc7c1c77be7b1ac5455c530ae9acd87baba065542f8847522af2e3ace2cc999f3ad464ef86e6b7352eece34daf88f8c924 + languageName: node + linkType: hard + +"@types/minimatch@npm:*": + version: 5.1.2 + resolution: "@types/minimatch@npm:5.1.2" + checksum: 10c0/83cf1c11748891b714e129de0585af4c55dd4c2cafb1f1d5233d79246e5e1e19d1b5ad9e8db449667b3ffa2b6c80125c429dbee1054e9efb45758dbc4e118562 + languageName: node + linkType: hard + +"@types/node@npm:*, @types/node@npm:>=13.7.0, @types/node@npm:^20.11.20": + version: 20.11.20 + resolution: "@types/node@npm:20.11.20" + dependencies: + undici-types: "npm:~5.26.4" + checksum: 10c0/8e8de211e6d54425c603388a9b5cc9c434101985d0a1c88aabbf65d10df2b1fccd71855c20e61ae8a75c7aea56cb0f64e722cf7914cff1247d0b62ce21996ac4 + languageName: node + linkType: hard + +"@types/node@npm:^12.12.54": + version: 12.20.55 + resolution: "@types/node@npm:12.20.55" + checksum: 10c0/3b190bb0410047d489c49bbaab592d2e6630de6a50f00ba3d7d513d59401d279972a8f5a598b5bb8ddc1702f8a2f4ec57a65d93852f9c329639738e7053637d1 + languageName: node + linkType: hard + +"@types/prettier@npm:^2.6.1": + version: 2.7.3 + resolution: "@types/prettier@npm:2.7.3" + checksum: 10c0/0960b5c1115bb25e979009d0b44c42cf3d792accf24085e4bfce15aef5794ea042e04e70c2139a2c3387f781f18c89b5706f000ddb089e9a4a2ccb7536a2c5f0 + languageName: node + linkType: hard + +"@types/ws@npm:^7.4.4": + version: 7.4.7 + resolution: "@types/ws@npm:7.4.7" + dependencies: + "@types/node": "npm:*" + checksum: 10c0/f1f53febd8623a85cef2652949acd19d83967e350ea15a851593e3033501750a1e04f418552e487db90a3d48611a1cff3ffcf139b94190c10f2fd1e1dc95ff10 + languageName: node + linkType: hard + +"@types/yargs-parser@npm:*": + version: 21.0.3 + resolution: "@types/yargs-parser@npm:21.0.3" + checksum: 10c0/e71c3bd9d0b73ca82e10bee2064c384ab70f61034bbfb78e74f5206283fc16a6d85267b606b5c22cb2a3338373586786fed595b2009825d6a9115afba36560a0 + languageName: node + linkType: hard + +"@types/yargs@npm:^17.0.8": + version: 17.0.32 + resolution: "@types/yargs@npm:17.0.32" + dependencies: + "@types/yargs-parser": "npm:*" + checksum: 10c0/2095e8aad8a4e66b86147415364266b8d607a3b95b4239623423efd7e29df93ba81bb862784a6e08664f645cc1981b25fd598f532019174cd3e5e1e689e1cccf + languageName: node + linkType: hard + +"JSONStream@npm:^1.3.5": + version: 1.3.5 + resolution: "JSONStream@npm:1.3.5" + dependencies: + jsonparse: "npm:^1.2.0" + through: "npm:>=2.2.7 <3" + bin: + JSONStream: ./bin.js + checksum: 10c0/0f54694da32224d57b715385d4a6b668d2117379d1f3223dc758459246cca58fdc4c628b83e8a8883334e454a0a30aa198ede77c788b55537c1844f686a751f2 + languageName: node + linkType: hard + +"abbrev@npm:^2.0.0": + version: 2.0.0 + resolution: "abbrev@npm:2.0.0" + checksum: 10c0/f742a5a107473946f426c691c08daba61a1d15942616f300b5d32fd735be88fef5cba24201757b6c407fd564555fb48c751cfa33519b2605c8a7aadd22baf372 + languageName: node + linkType: hard + +"abitype@npm:1.0.0": + version: 1.0.0 + resolution: "abitype@npm:1.0.0" + peerDependencies: + typescript: ">=5.0.4" + zod: ^3 >=3.22.0 + peerDependenciesMeta: + typescript: + optional: true + zod: + optional: true + checksum: 10c0/d685351a725c49f81bdc588e2f3825c28ad96c59048d4f36bf5e4ef30935c31f7e60b5553c70177b77a9e4d8b04290eea43d3d9c1c2562cb130381c88b15d39f + languageName: node + linkType: hard + +"acorn-walk@npm:^8.1.1": + version: 8.3.2 + resolution: "acorn-walk@npm:8.3.2" + checksum: 10c0/7e2a8dad5480df7f872569b9dccff2f3da7e65f5353686b1d6032ab9f4ddf6e3a2cb83a9b52cf50b1497fd522154dda92f0abf7153290cc79cd14721ff121e52 + languageName: node + linkType: hard + +"acorn@npm:^8.4.1": + version: 8.11.3 + resolution: "acorn@npm:8.11.3" + bin: + acorn: bin/acorn + checksum: 10c0/3ff155f8812e4a746fee8ecff1f227d527c4c45655bb1fad6347c3cb58e46190598217551b1500f18542d2bbe5c87120cb6927f5a074a59166fbdd9468f0a299 + languageName: node + linkType: hard + +"aes-js@npm:3.0.0": + version: 3.0.0 + resolution: "aes-js@npm:3.0.0" + checksum: 10c0/87dd5b2363534b867db7cef8bc85a90c355460783744877b2db7c8be09740aac5750714f9e00902822f692662bda74cdf40e03fbb5214ffec75c2666666288b8 + languageName: node + linkType: hard + +"agent-base@npm:^7.0.2, agent-base@npm:^7.1.0": + version: 7.1.0 + resolution: "agent-base@npm:7.1.0" + dependencies: + debug: "npm:^4.3.4" + checksum: 10c0/fc974ab57ffdd8421a2bc339644d312a9cca320c20c3393c9d8b1fd91731b9bbabdb985df5fc860f5b79d81c3e350daa3fcb31c5c07c0bb385aafc817df004ce + languageName: node + linkType: hard + +"agentkeepalive@npm:^4.5.0": + version: 4.5.0 + resolution: "agentkeepalive@npm:4.5.0" + dependencies: + humanize-ms: "npm:^1.2.1" + checksum: 10c0/394ea19f9710f230722996e156607f48fdf3a345133b0b1823244b7989426c16019a428b56c82d3eabef616e938812981d9009f4792ecc66bd6a59e991c62612 + languageName: node + linkType: hard + +"aggregate-error@npm:^3.0.0": + version: 3.1.0 + resolution: "aggregate-error@npm:3.1.0" + dependencies: + clean-stack: "npm:^2.0.0" + indent-string: "npm:^4.0.0" + checksum: 10c0/a42f67faa79e3e6687a4923050e7c9807db3848a037076f791d10e092677d65c1d2d863b7848560699f40fc0502c19f40963fb1cd1fb3d338a7423df8e45e039 + languageName: node + linkType: hard + +"ansi-escapes@npm:^2.0.0": + version: 2.0.0 + resolution: "ansi-escapes@npm:2.0.0" + checksum: 10c0/e7ecfceb220167e7745ccd0f37a74be4ff5de2b03ab7832a9a2b0bb6bfe8b4c63f6fe18672f122c9f3c1a928ac44c9d1fa8c2d6665dbe56b67682607203d2be8 + languageName: node + linkType: hard + +"ansi-escapes@npm:^3.2.0": + version: 3.2.0 + resolution: "ansi-escapes@npm:3.2.0" + checksum: 10c0/084e1ce38139ad2406f18a8e7efe2b850ddd06ce3c00f633392d1ce67756dab44fe290e573d09ef3c9a0cb13c12881e0e35a8f77a017d39a0a4ab85ae2fae04f + languageName: node + linkType: hard + +"ansi-regex@npm:^2.0.0": + version: 2.1.1 + resolution: "ansi-regex@npm:2.1.1" + checksum: 10c0/78cebaf50bce2cb96341a7230adf28d804611da3ce6bf338efa7b72f06cc6ff648e29f80cd95e582617ba58d5fdbec38abfeed3500a98bce8381a9daec7c548b + languageName: node + linkType: hard + +"ansi-regex@npm:^3.0.0": + version: 3.0.1 + resolution: "ansi-regex@npm:3.0.1" + checksum: 10c0/d108a7498b8568caf4a46eea4f1784ab4e0dfb2e3f3938c697dee21443d622d765c958f2b7e2b9f6b9e55e2e2af0584eaa9915d51782b89a841c28e744e7a167 + languageName: node + linkType: hard + +"ansi-regex@npm:^4.1.0": + version: 4.1.1 + resolution: "ansi-regex@npm:4.1.1" + checksum: 10c0/d36d34234d077e8770169d980fed7b2f3724bfa2a01da150ccd75ef9707c80e883d27cdf7a0eac2f145ac1d10a785a8a855cffd05b85f778629a0db62e7033da + languageName: node + linkType: hard + +"ansi-regex@npm:^5.0.1": + version: 5.0.1 + resolution: "ansi-regex@npm:5.0.1" + checksum: 10c0/9a64bb8627b434ba9327b60c027742e5d17ac69277960d041898596271d992d4d52ba7267a63ca10232e29f6107fc8a835f6ce8d719b88c5f8493f8254813737 + languageName: node + linkType: hard + +"ansi-regex@npm:^6.0.1": + version: 6.0.1 + resolution: "ansi-regex@npm:6.0.1" + checksum: 10c0/cbe16dbd2c6b2735d1df7976a7070dd277326434f0212f43abf6d87674095d247968209babdaad31bb00882fa68807256ba9be340eec2f1004de14ca75f52a08 + languageName: node + linkType: hard + +"ansi-styles@npm:^2.2.1": + version: 2.2.1 + resolution: "ansi-styles@npm:2.2.1" + checksum: 10c0/7c68aed4f1857389e7a12f85537ea5b40d832656babbf511cc7ecd9efc52889b9c3e5653a71a6aade783c3c5e0aa223ad4ff8e83c27ac8a666514e6c79068cab + languageName: node + linkType: hard + +"ansi-styles@npm:^3.2.1": + version: 3.2.1 + resolution: "ansi-styles@npm:3.2.1" + dependencies: + color-convert: "npm:^1.9.0" + checksum: 10c0/ece5a8ef069fcc5298f67e3f4771a663129abd174ea2dfa87923a2be2abf6cd367ef72ac87942da00ce85bd1d651d4cd8595aebdb1b385889b89b205860e977b + languageName: node + linkType: hard + +"ansi-styles@npm:^4.0.0, ansi-styles@npm:^4.1.0": + version: 4.3.0 + resolution: "ansi-styles@npm:4.3.0" + dependencies: + color-convert: "npm:^2.0.1" + checksum: 10c0/895a23929da416f2bd3de7e9cb4eabd340949328ab85ddd6e484a637d8f6820d485f53933446f5291c3b760cbc488beb8e88573dd0f9c7daf83dccc8fe81b041 + languageName: node + linkType: hard + +"ansi-styles@npm:^6.1.0": + version: 6.2.1 + resolution: "ansi-styles@npm:6.2.1" + checksum: 10c0/5d1ec38c123984bcedd996eac680d548f31828bd679a66db2bdf11844634dde55fec3efa9c6bb1d89056a5e79c1ac540c4c784d592ea1d25028a92227d2f2d5c + languageName: node + linkType: hard + +"any-promise@npm:^1.0.0": + version: 1.3.0 + resolution: "any-promise@npm:1.3.0" + checksum: 10c0/60f0298ed34c74fef50daab88e8dab786036ed5a7fad02e012ab57e376e0a0b4b29e83b95ea9b5e7d89df762f5f25119b83e00706ecaccb22cfbacee98d74889 + languageName: node + linkType: hard + +"anymatch@npm:^3.0.3": + version: 3.1.3 + resolution: "anymatch@npm:3.1.3" + dependencies: + normalize-path: "npm:^3.0.0" + picomatch: "npm:^2.0.4" + checksum: 10c0/57b06ae984bc32a0d22592c87384cd88fe4511b1dd7581497831c56d41939c8a001b28e7b853e1450f2bf61992dfcaa8ae2d0d161a0a90c4fb631ef07098fbac + languageName: node + linkType: hard + +"arg@npm:^4.1.0": + version: 4.1.3 + resolution: "arg@npm:4.1.3" + checksum: 10c0/070ff801a9d236a6caa647507bdcc7034530604844d64408149a26b9e87c2f97650055c0f049abd1efc024b334635c01f29e0b632b371ac3f26130f4cf65997a + languageName: node + linkType: hard + +"argparse@npm:^1.0.7": + version: 1.0.10 + resolution: "argparse@npm:1.0.10" + dependencies: + sprintf-js: "npm:~1.0.2" + checksum: 10c0/b2972c5c23c63df66bca144dbc65d180efa74f25f8fd9b7d9a0a6c88ae839db32df3d54770dcb6460cf840d232b60695d1a6b1053f599d84e73f7437087712de + languageName: node + linkType: hard + +"arrify@npm:^1.0.0": + version: 1.0.1 + resolution: "arrify@npm:1.0.1" + checksum: 10c0/c35c8d1a81bcd5474c0c57fe3f4bad1a4d46a5fa353cedcff7a54da315df60db71829e69104b859dff96c5d68af46bd2be259fe5e50dc6aa9df3b36bea0383ab + languageName: node + linkType: hard + +"assertion-error@npm:^1.1.0": + version: 1.1.0 + resolution: "assertion-error@npm:1.1.0" + checksum: 10c0/25456b2aa333250f01143968e02e4884a34588a8538fbbf65c91a637f1dbfb8069249133cd2f4e530f10f624d206a664e7df30207830b659e9f5298b00a4099b + languageName: node + linkType: hard + +"ast-stringify@npm:0.1.0": + version: 0.1.0 + resolution: "ast-stringify@npm:0.1.0" + dependencies: + "@babel/runtime": "npm:^7.11.2" + checksum: 10c0/a463e979207ca7eeb21e2d4ed0591bcd51d5573c3d2a201f0d887a981c31be8079d7d25442163ac3b38f159c834a219c0286190432e5581894426379fca3ea4a + languageName: node + linkType: hard + +"asynckit@npm:^0.4.0": + version: 0.4.0 + resolution: "asynckit@npm:0.4.0" + checksum: 10c0/d73e2ddf20c4eb9337e1b3df1a0f6159481050a5de457c55b14ea2e5cb6d90bb69e004c9af54737a5ee0917fcf2c9e25de67777bbe58261847846066ba75bc9d + languageName: node + linkType: hard + +"axios@npm:^1.6.0, axios@npm:^1.6.7": + version: 1.6.7 + resolution: "axios@npm:1.6.7" + dependencies: + follow-redirects: "npm:^1.15.4" + form-data: "npm:^4.0.0" + proxy-from-env: "npm:^1.1.0" + checksum: 10c0/131bf8e62eee48ca4bd84e6101f211961bf6a21a33b95e5dfb3983d5a2fe50d9fffde0b57668d7ce6f65063d3dc10f2212cbcb554f75cfca99da1c73b210358d + languageName: node + linkType: hard + +"babel-plugin-istanbul@npm:^6.1.1": + version: 6.1.1 + resolution: "babel-plugin-istanbul@npm:6.1.1" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.0.0" + "@istanbuljs/load-nyc-config": "npm:^1.0.0" + "@istanbuljs/schema": "npm:^0.1.2" + istanbul-lib-instrument: "npm:^5.0.4" + test-exclude: "npm:^6.0.0" + checksum: 10c0/1075657feb705e00fd9463b329921856d3775d9867c5054b449317d39153f8fbcebd3e02ebf00432824e647faff3683a9ca0a941325ef1afe9b3c4dd51b24beb + languageName: node + linkType: hard + +"babel-plugin-polyfill-corejs2@npm:^0.3.2": + version: 0.3.3 + resolution: "babel-plugin-polyfill-corejs2@npm:0.3.3" + dependencies: + "@babel/compat-data": "npm:^7.17.7" + "@babel/helper-define-polyfill-provider": "npm:^0.3.3" + semver: "npm:^6.1.1" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/21e34d4ba961de66d3fe31f3fecca5612d5db99638949766a445d37de72c1f736552fe436f3bd3792e5cc307f48e8f78a498a01e858c84946627ddb662415cc4 + languageName: node + linkType: hard + +"babel-plugin-polyfill-corejs3@npm:^0.5.3": + version: 0.5.3 + resolution: "babel-plugin-polyfill-corejs3@npm:0.5.3" + dependencies: + "@babel/helper-define-polyfill-provider": "npm:^0.3.2" + core-js-compat: "npm:^3.21.0" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/87f9eb8be5e8e115b930624c8e3e91b5396eca8d563120b0cd03853960addf587fd4cab8776ecf3a59ec94a774f214f2321a96c354a667a62fa2dc5eb122eaa0 + languageName: node + linkType: hard + +"babel-plugin-polyfill-regenerator@npm:^0.4.0": + version: 0.4.1 + resolution: "babel-plugin-polyfill-regenerator@npm:0.4.1" + dependencies: + "@babel/helper-define-polyfill-provider": "npm:^0.3.3" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/bd915d51e30259201b289a58dfa46c8c1bc8827a38c275ff3134c8194d27e634d5c32ec62137d489d81c7dd5f6ea46b04057eb44b7180d06c19388e3a5f4f8c6 + languageName: node + linkType: hard + +"balanced-match@npm:^1.0.0": + version: 1.0.2 + resolution: "balanced-match@npm:1.0.2" + checksum: 10c0/9308baf0a7e4838a82bbfd11e01b1cb0f0cf2893bc1676c27c2a8c0e70cbae1c59120c3268517a8ae7fb6376b4639ef81ca22582611dbee4ed28df945134aaee + languageName: node + linkType: hard + +"base-x@npm:^3.0.2": + version: 3.0.9 + resolution: "base-x@npm:3.0.9" + dependencies: + safe-buffer: "npm:^5.0.1" + checksum: 10c0/e6bbeae30b24f748b546005affb710c5fbc8b11a83f6cd0ca999bd1ab7ad3a22e42888addc40cd145adc4edfe62fcfab4ebc91da22e4259aae441f95a77aee1a + languageName: node + linkType: hard + +"base64-js@npm:^1.3.0, base64-js@npm:^1.3.1": + version: 1.5.1 + resolution: "base64-js@npm:1.5.1" + checksum: 10c0/f23823513b63173a001030fae4f2dabe283b99a9d324ade3ad3d148e218134676f1ee8568c877cd79ec1c53158dcf2d2ba527a97c606618928ba99dd930102bf + languageName: node + linkType: hard + +"bech32@npm:1.1.4, bech32@npm:^1.1.4": + version: 1.1.4 + resolution: "bech32@npm:1.1.4" + checksum: 10c0/5f62ca47b8df99ace9c0e0d8deb36a919d91bf40066700aaa9920a45f86bb10eb56d537d559416fd8703aa0fb60dddb642e58f049701e7291df678b2033e5ee5 + languageName: node + linkType: hard + +"bigint-buffer@npm:^1.1.5": + version: 1.1.5 + resolution: "bigint-buffer@npm:1.1.5" + dependencies: + bindings: "npm:^1.3.0" + node-gyp: "npm:latest" + checksum: 10c0/aa41e53d38242a2f05f85b08eaf592635f92e5328822784cda518232b1644efdbf29ab3664951b174cc645848add4605488e25c9439bcc749660c885b4ff6118 + languageName: node + linkType: hard + +"bignumber.js@npm:^9.1.1": + version: 9.1.2 + resolution: "bignumber.js@npm:9.1.2" + checksum: 10c0/e17786545433f3110b868725c449fa9625366a6e675cd70eb39b60938d6adbd0158cb4b3ad4f306ce817165d37e63f4aa3098ba4110db1d9a3b9f66abfbaf10d + languageName: node + linkType: hard + +"bindings@npm:^1.3.0": + version: 1.5.0 + resolution: "bindings@npm:1.5.0" + dependencies: + file-uri-to-path: "npm:1.0.0" + checksum: 10c0/3dab2491b4bb24124252a91e656803eac24292473e56554e35bbfe3cc1875332cfa77600c3bac7564049dc95075bf6fcc63a4609920ff2d64d0fe405fcf0d4ba + languageName: node + linkType: hard + +"bl@npm:^1.0.0": + version: 1.2.3 + resolution: "bl@npm:1.2.3" + dependencies: + readable-stream: "npm:^2.3.5" + safe-buffer: "npm:^5.1.1" + checksum: 10c0/ee6478864d3b1295614f269f3fbabeb2362a2f2fc7f8dc2f6c1f944a278d84e0572ecefd6d0b0736d7418763f98dc3b2738253191ea9e98e4b08de211cfac0a6 + languageName: node + linkType: hard + +"bn.js@npm:^4.11.9": + version: 4.12.0 + resolution: "bn.js@npm:4.12.0" + checksum: 10c0/9736aaa317421b6b3ed038ff3d4491935a01419ac2d83ddcfebc5717385295fcfcf0c57311d90fe49926d0abbd7a9dbefdd8861e6129939177f7e67ebc645b21 + languageName: node + linkType: hard + +"bn.js@npm:^5.2.0, bn.js@npm:^5.2.1": + version: 5.2.1 + resolution: "bn.js@npm:5.2.1" + checksum: 10c0/bed3d8bd34ec89dbcf9f20f88bd7d4a49c160fda3b561c7bb227501f974d3e435a48fb9b61bc3de304acab9215a3bda0803f7017ffb4d0016a0c3a740a283caa + languageName: node + linkType: hard + +"borsh@npm:^0.7.0": + version: 0.7.0 + resolution: "borsh@npm:0.7.0" + dependencies: + bn.js: "npm:^5.2.0" + bs58: "npm:^4.0.0" + text-encoding-utf-8: "npm:^1.0.2" + checksum: 10c0/513b3e51823d2bf5be77cec27742419d2b0427504825dd7ceb00dedb820f246a4762f04b83d5e3aa39c8e075b3cbaeb7ca3c90bd1cbeecccb4a510575be8c581 + languageName: node + linkType: hard + +"brace-expansion@npm:^1.1.7": + version: 1.1.11 + resolution: "brace-expansion@npm:1.1.11" + dependencies: + balanced-match: "npm:^1.0.0" + concat-map: "npm:0.0.1" + checksum: 10c0/695a56cd058096a7cb71fb09d9d6a7070113c7be516699ed361317aca2ec169f618e28b8af352e02ab4233fb54eb0168460a40dc320bab0034b36ab59aaad668 + languageName: node + linkType: hard + +"brace-expansion@npm:^2.0.1": + version: 2.0.1 + resolution: "brace-expansion@npm:2.0.1" + dependencies: + balanced-match: "npm:^1.0.0" + checksum: 10c0/b358f2fe060e2d7a87aa015979ecea07f3c37d4018f8d6deb5bd4c229ad3a0384fe6029bb76cd8be63c81e516ee52d1a0673edbe2023d53a5191732ae3c3e49f + languageName: node + linkType: hard + +"braces@npm:^3.0.2": + version: 3.0.2 + resolution: "braces@npm:3.0.2" + dependencies: + fill-range: "npm:^7.0.1" + checksum: 10c0/321b4d675791479293264019156ca322163f02dc06e3c4cab33bb15cd43d80b51efef69b0930cfde3acd63d126ebca24cd0544fa6f261e093a0fb41ab9dda381 + languageName: node + linkType: hard + +"brorand@npm:^1.1.0": + version: 1.1.0 + resolution: "brorand@npm:1.1.0" + checksum: 10c0/6f366d7c4990f82c366e3878492ba9a372a73163c09871e80d82fb4ae0d23f9f8924cb8a662330308206e6b3b76ba1d528b4601c9ef73c2166b440b2ea3b7571 + languageName: node + linkType: hard + +"browserslist@npm:^4.22.2, browserslist@npm:^4.22.3": + version: 4.23.0 + resolution: "browserslist@npm:4.23.0" + dependencies: + caniuse-lite: "npm:^1.0.30001587" + electron-to-chromium: "npm:^1.4.668" + node-releases: "npm:^2.0.14" + update-browserslist-db: "npm:^1.0.13" + bin: + browserslist: cli.js + checksum: 10c0/8e9cc154529062128d02a7af4d8adeead83ca1df8cd9ee65a88e2161039f3d68a4d40fea7353cab6bae4c16182dec2fdd9a1cf7dc2a2935498cee1af0e998943 + languageName: node + linkType: hard + +"bs58@npm:^4.0.0, bs58@npm:^4.0.1": + version: 4.0.1 + resolution: "bs58@npm:4.0.1" + dependencies: + base-x: "npm:^3.0.2" + checksum: 10c0/613a1b1441e754279a0e3f44d1faeb8c8e838feef81e550efe174ff021dd2e08a4c9ae5805b52dfdde79f97b5c0918c78dd24a0eb726c4a94365f0984a0ffc65 + languageName: node + linkType: hard + +"bser@npm:2.1.1": + version: 2.1.1 + resolution: "bser@npm:2.1.1" + dependencies: + node-int64: "npm:^0.4.0" + checksum: 10c0/24d8dfb7b6d457d73f32744e678a60cc553e4ec0e9e1a01cf614b44d85c3c87e188d3cc78ef0442ce5032ee6818de20a0162ba1074725c0d08908f62ea979227 + languageName: node + linkType: hard + +"buffer-alloc-unsafe@npm:^1.1.0": + version: 1.1.0 + resolution: "buffer-alloc-unsafe@npm:1.1.0" + checksum: 10c0/06b9298c9369621a830227c3797ceb3ff5535e323946d7b39a7398fed8b3243798259b3c85e287608c5aad35ccc551cec1a0a5190cc8f39652e8eee25697fc9c + languageName: node + linkType: hard + +"buffer-alloc@npm:^1.2.0": + version: 1.2.0 + resolution: "buffer-alloc@npm:1.2.0" + dependencies: + buffer-alloc-unsafe: "npm:^1.1.0" + buffer-fill: "npm:^1.0.0" + checksum: 10c0/09d87dd53996342ccfbeb2871257d8cdb25ce9ee2259adc95c6490200cd6e528c5fbae8f30bcc323fe8d8efb0fe541e4ac3bbe9ee3f81c6b7c4b27434cc02ab4 + languageName: node + linkType: hard + +"buffer-crc32@npm:~0.2.3": + version: 0.2.13 + resolution: "buffer-crc32@npm:0.2.13" + checksum: 10c0/cb0a8ddf5cf4f766466db63279e47761eb825693eeba6a5a95ee4ec8cb8f81ede70aa7f9d8aeec083e781d47154290eb5d4d26b3f7a465ec57fb9e7d59c47150 + languageName: node + linkType: hard + +"buffer-fill@npm:^1.0.0": + version: 1.0.0 + resolution: "buffer-fill@npm:1.0.0" + checksum: 10c0/55b5654fbbf2d7ceb4991bb537f5e5b5b5b9debca583fee416a74fcec47c16d9e7a90c15acd27577da7bd750b7fa6396e77e7c221e7af138b6d26242381c6e4d + languageName: node + linkType: hard + +"buffer-from@npm:^1.0.0, buffer-from@npm:^1.1.0": + version: 1.1.2 + resolution: "buffer-from@npm:1.1.2" + checksum: 10c0/124fff9d66d691a86d3b062eff4663fe437a9d9ee4b47b1b9e97f5a5d14f6d5399345db80f796827be7c95e70a8e765dd404b7c3ff3b3324f98e9b0c8826cc34 + languageName: node + linkType: hard + +"buffer@npm:6.0.3, buffer@npm:~6.0.3": + version: 6.0.3 + resolution: "buffer@npm:6.0.3" + dependencies: + base64-js: "npm:^1.3.1" + ieee754: "npm:^1.2.1" + checksum: 10c0/2a905fbbcde73cc5d8bd18d1caa23715d5f83a5935867c2329f0ac06104204ba7947be098fe1317fbd8830e26090ff8e764f08cd14fefc977bb248c3487bcbd0 + languageName: node + linkType: hard + +"buffer@npm:^5.2.1": + version: 5.7.1 + resolution: "buffer@npm:5.7.1" + dependencies: + base64-js: "npm:^1.3.1" + ieee754: "npm:^1.1.13" + checksum: 10c0/27cac81cff434ed2876058d72e7c4789d11ff1120ef32c9de48f59eab58179b66710c488987d295ae89a228f835fc66d088652dffeb8e3ba8659f80eb091d55e + languageName: node + linkType: hard + +"bufferutil@npm:^4.0.1": + version: 4.0.8 + resolution: "bufferutil@npm:4.0.8" + dependencies: + node-gyp: "npm:latest" + node-gyp-build: "npm:^4.3.0" + checksum: 10c0/36cdc5b53a38d9f61f89fdbe62029a2ebcd020599862253fefebe31566155726df9ff961f41b8c97b02b4c12b391ef97faf94e2383392654cf8f0ed68f76e47c + languageName: node + linkType: hard + +"bufio@npm:^1.0.7": + version: 1.2.1 + resolution: "bufio@npm:1.2.1" + checksum: 10c0/4ecb21ea25b1f50dda73b9cf865ff8037d9fc92373db57dc3ffddd85e4720cc16316750f8b6b4b6fa18a6668314e786d247f6fb55948b9e38958e929dccdb675 + languageName: node + linkType: hard + +"cacache@npm:^18.0.0": + version: 18.0.2 + resolution: "cacache@npm:18.0.2" + dependencies: + "@npmcli/fs": "npm:^3.1.0" + fs-minipass: "npm:^3.0.0" + glob: "npm:^10.2.2" + lru-cache: "npm:^10.0.1" + minipass: "npm:^7.0.3" + minipass-collect: "npm:^2.0.1" + minipass-flush: "npm:^1.0.5" + minipass-pipeline: "npm:^1.2.4" + p-map: "npm:^4.0.0" + ssri: "npm:^10.0.0" + tar: "npm:^6.1.11" + unique-filename: "npm:^3.0.0" + checksum: 10c0/7992665305cc251a984f4fdbab1449d50e88c635bc43bf2785530c61d239c61b349e5734461baa461caaee65f040ab14e2d58e694f479c0810cffd181ba5eabc + languageName: node + linkType: hard + +"call-me-maybe@npm:^1.0.1": + version: 1.0.2 + resolution: "call-me-maybe@npm:1.0.2" + checksum: 10c0/8eff5dbb61141ebb236ed71b4e9549e488bcb5451c48c11e5667d5c75b0532303788a1101e6978cafa2d0c8c1a727805599c2741e3e0982855c9f1d78cd06c9f + languageName: node + linkType: hard + +"camelcase@npm:^5.3.1": + version: 5.3.1 + resolution: "camelcase@npm:5.3.1" + checksum: 10c0/92ff9b443bfe8abb15f2b1513ca182d16126359ad4f955ebc83dc4ddcc4ef3fdd2c078bc223f2673dc223488e75c99b16cc4d056624374b799e6a1555cf61b23 + languageName: node + linkType: hard + +"caniuse-lite@npm:^1.0.30001587": + version: 1.0.30001589 + resolution: "caniuse-lite@npm:1.0.30001589" + checksum: 10c0/20debfb949413f603011bc7dacaf050010778bc4f8632c86fafd1bd0c43180c95ae7c31f6c82348f6309e5e221934e327c3607a216e3f09640284acf78cd6d4d + languageName: node + linkType: hard + +"case@npm:1.6.3": + version: 1.6.3 + resolution: "case@npm:1.6.3" + checksum: 10c0/43fcbb1dff1c4add94dd2bc98bd923d6616f10bff6959adf686d192c3db7d7ced35410761e1ac94cc4a1f5c41c86406ad79d390805539e421e8a77e553f67223 + languageName: node + linkType: hard + +"chai@npm:^4.3.4": + version: 4.4.1 + resolution: "chai@npm:4.4.1" + dependencies: + assertion-error: "npm:^1.1.0" + check-error: "npm:^1.0.3" + deep-eql: "npm:^4.1.3" + get-func-name: "npm:^2.0.2" + loupe: "npm:^2.3.6" + pathval: "npm:^1.1.1" + type-detect: "npm:^4.0.8" + checksum: 10c0/91590a8fe18bd6235dece04ccb2d5b4ecec49984b50924499bdcd7a95c02cb1fd2a689407c19bb854497bde534ef57525cfad6c7fdd2507100fd802fbc2aefbd + languageName: node + linkType: hard + +"chalk@npm:^1.0.0, chalk@npm:^1.1.3": + version: 1.1.3 + resolution: "chalk@npm:1.1.3" + dependencies: + ansi-styles: "npm:^2.2.1" + escape-string-regexp: "npm:^1.0.2" + has-ansi: "npm:^2.0.0" + strip-ansi: "npm:^3.0.0" + supports-color: "npm:^2.0.0" + checksum: 10c0/28c3e399ec286bb3a7111fd4225ebedb0d7b813aef38a37bca7c498d032459c265ef43404201d5fbb8d888d29090899c95335b4c0cda13e8b126ff15c541cef8 + languageName: node + linkType: hard + +"chalk@npm:^2.4.2": + version: 2.4.2 + resolution: "chalk@npm:2.4.2" + dependencies: + ansi-styles: "npm:^3.2.1" + escape-string-regexp: "npm:^1.0.5" + supports-color: "npm:^5.3.0" + checksum: 10c0/e6543f02ec877732e3a2d1c3c3323ddb4d39fbab687c23f526e25bd4c6a9bf3b83a696e8c769d078e04e5754921648f7821b2a2acfd16c550435fd630026e073 + languageName: node + linkType: hard + +"chalk@npm:^4.0.0": + version: 4.1.2 + resolution: "chalk@npm:4.1.2" + dependencies: + ansi-styles: "npm:^4.1.0" + supports-color: "npm:^7.1.0" + checksum: 10c0/4a3fef5cc34975c898ffe77141450f679721df9dde00f6c304353fa9c8b571929123b26a0e4617bde5018977eb655b31970c297b91b63ee83bb82aeb04666880 + languageName: node + linkType: hard + +"chardet@npm:^0.4.0": + version: 0.4.2 + resolution: "chardet@npm:0.4.2" + checksum: 10c0/287fff1609301b1a9e8dc9730271af7aa24187a8e224d23b8c3eb88cb7c0e8ceb962905377e36947bc07edb69afd188903f4924cc6bd0bd4e7703d498505b70d + languageName: node + linkType: hard + +"chardet@npm:^0.7.0": + version: 0.7.0 + resolution: "chardet@npm:0.7.0" + checksum: 10c0/96e4731b9ec8050cbb56ab684e8c48d6c33f7826b755802d14e3ebfdc51c57afeece3ea39bc6b09acc359e4363525388b915e16640c1378053820f5e70d0f27d + languageName: node + linkType: hard + +"check-error@npm:^1.0.3": + version: 1.0.3 + resolution: "check-error@npm:1.0.3" + dependencies: + get-func-name: "npm:^2.0.2" + checksum: 10c0/94aa37a7315c0e8a83d0112b5bfb5a8624f7f0f81057c73e4707729cdd8077166c6aefb3d8e2b92c63ee130d4a2ff94bad46d547e12f3238cc1d78342a973841 + languageName: node + linkType: hard + +"chownr@npm:^2.0.0": + version: 2.0.0 + resolution: "chownr@npm:2.0.0" + checksum: 10c0/594754e1303672171cc04e50f6c398ae16128eb134a88f801bf5354fd96f205320f23536a045d9abd8b51024a149696e51231565891d4efdab8846021ecf88e6 + languageName: node + linkType: hard + +"ci-info@npm:^3.2.0": + version: 3.9.0 + resolution: "ci-info@npm:3.9.0" + checksum: 10c0/6f0109e36e111684291d46123d491bc4e7b7a1934c3a20dea28cba89f1d4a03acd892f5f6a81ed3855c38647e285a150e3c9ba062e38943bef57fee6c1554c3a + languageName: node + linkType: hard + +"clean-stack@npm:^2.0.0": + version: 2.2.0 + resolution: "clean-stack@npm:2.2.0" + checksum: 10c0/1f90262d5f6230a17e27d0c190b09d47ebe7efdd76a03b5a1127863f7b3c9aec4c3e6c8bb3a7bbf81d553d56a1fd35728f5a8ef4c63f867ac8d690109742a8c1 + languageName: node + linkType: hard + +"cli-color@npm:^2.0.2": + version: 2.0.3 + resolution: "cli-color@npm:2.0.3" + dependencies: + d: "npm:^1.0.1" + es5-ext: "npm:^0.10.61" + es6-iterator: "npm:^2.0.3" + memoizee: "npm:^0.4.15" + timers-ext: "npm:^0.1.7" + checksum: 10c0/9a14c2dbb352cee99e93f27ab6f105b55a57fa48b0704d39091df5ec155766e5a66a53c5384434d3dcaaab9f9258cb12d20eabbc9c39ec5f61034a681c449fc6 + languageName: node + linkType: hard + +"cli-cursor@npm:^2.1.0": + version: 2.1.0 + resolution: "cli-cursor@npm:2.1.0" + dependencies: + restore-cursor: "npm:^2.0.0" + checksum: 10c0/09ee6d8b5b818d840bf80ec9561eaf696672197d3a02a7daee2def96d5f52ce6e0bbe7afca754ccf14f04830b5a1b4556273e983507d5029f95bba3016618eda + languageName: node + linkType: hard + +"cli-width@npm:^2.0.0": + version: 2.2.1 + resolution: "cli-width@npm:2.2.1" + checksum: 10c0/e3a6d422d657ca111c630f69ee0f1a499e8f114eea158ccb2cdbedd19711edffa217093bbd43dafb34b68d1b1a3b5334126e51d059b9ec1d19afa53b42b3ef86 + languageName: node + linkType: hard + +"color-convert@npm:^1.9.0": + version: 1.9.3 + resolution: "color-convert@npm:1.9.3" + dependencies: + color-name: "npm:1.1.3" + checksum: 10c0/5ad3c534949a8c68fca8fbc6f09068f435f0ad290ab8b2f76841b9e6af7e0bb57b98cb05b0e19fe33f5d91e5a8611ad457e5f69e0a484caad1f7487fd0e8253c + languageName: node + linkType: hard + +"color-convert@npm:^2.0.1": + version: 2.0.1 + resolution: "color-convert@npm:2.0.1" + dependencies: + color-name: "npm:~1.1.4" + checksum: 10c0/37e1150172f2e311fe1b2df62c6293a342ee7380da7b9cfdba67ea539909afbd74da27033208d01d6d5cfc65ee7868a22e18d7e7648e004425441c0f8a15a7d7 + languageName: node + linkType: hard + +"color-name@npm:1.1.3": + version: 1.1.3 + resolution: "color-name@npm:1.1.3" + checksum: 10c0/566a3d42cca25b9b3cd5528cd7754b8e89c0eb646b7f214e8e2eaddb69994ac5f0557d9c175eb5d8f0ad73531140d9c47525085ee752a91a2ab15ab459caf6d6 + languageName: node + linkType: hard + +"color-name@npm:~1.1.4": + version: 1.1.4 + resolution: "color-name@npm:1.1.4" + checksum: 10c0/a1a3f914156960902f46f7f56bc62effc6c94e84b2cae157a526b1c1f74b677a47ec602bf68a61abfa2b42d15b7c5651c6dbe72a43af720bc588dff885b10f95 + languageName: node + linkType: hard + +"colors@npm:^1.1.2, colors@npm:^1.4.0": + version: 1.4.0 + resolution: "colors@npm:1.4.0" + checksum: 10c0/9af357c019da3c5a098a301cf64e3799d27549d8f185d86f79af23069e4f4303110d115da98483519331f6fb71c8568d5688fa1c6523600044fd4a54e97c4efb + languageName: node + linkType: hard + +"combined-stream@npm:^1.0.8": + version: 1.0.8 + resolution: "combined-stream@npm:1.0.8" + dependencies: + delayed-stream: "npm:~1.0.0" + checksum: 10c0/0dbb829577e1b1e839fa82b40c07ffaf7de8a09b935cadd355a73652ae70a88b4320db322f6634a4ad93424292fa80973ac6480986247f1734a1137debf271d5 + languageName: node + linkType: hard + +"commander@npm:^11.1.0": + version: 11.1.0 + resolution: "commander@npm:11.1.0" + checksum: 10c0/13cc6ac875e48780250f723fb81c1c1178d35c5decb1abb1b628b3177af08a8554e76b2c0f29de72d69eef7c864d12613272a71fabef8047922bc622ab75a179 + languageName: node + linkType: hard + +"commander@npm:^2.20.3, commander@npm:^2.8.1": + version: 2.20.3 + resolution: "commander@npm:2.20.3" + checksum: 10c0/74c781a5248c2402a0a3e966a0a2bba3c054aad144f5c023364be83265e796b20565aa9feff624132ff629aa64e16999fa40a743c10c12f7c61e96a794b99288 + languageName: node + linkType: hard + +"concat-map@npm:0.0.1": + version: 0.0.1 + resolution: "concat-map@npm:0.0.1" + checksum: 10c0/c996b1cfdf95b6c90fee4dae37e332c8b6eb7d106430c17d538034c0ad9a1630cb194d2ab37293b1bdd4d779494beee7786d586a50bd9376fd6f7bcc2bd4c98f + languageName: node + linkType: hard + +"convert-source-map@npm:^1.4.0, convert-source-map@npm:^1.7.0": + version: 1.9.0 + resolution: "convert-source-map@npm:1.9.0" + checksum: 10c0/281da55454bf8126cbc6625385928c43479f2060984180c42f3a86c8b8c12720a24eac260624a7d1e090004028d2dee78602330578ceec1a08e27cb8bb0a8a5b + languageName: node + linkType: hard + +"convert-source-map@npm:^2.0.0": + version: 2.0.0 + resolution: "convert-source-map@npm:2.0.0" + checksum: 10c0/8f2f7a27a1a011cc6cc88cc4da2d7d0cfa5ee0369508baae3d98c260bb3ac520691464e5bbe4ae7cdf09860c1d69ecc6f70c63c6e7c7f7e3f18ec08484dc7d9b + languageName: node + linkType: hard + +"core-js-compat@npm:^3.21.0, core-js-compat@npm:^3.22.1": + version: 3.36.0 + resolution: "core-js-compat@npm:3.36.0" + dependencies: + browserslist: "npm:^4.22.3" + checksum: 10c0/5ce2ad0ece8379883c01958e196575abc015692fc0394b8917f132b6b32e5c2bfb2612902c3f98f270cfa2d9d6522c28d36665038f3726796f1f4b436e4f863e + languageName: node + linkType: hard + +"core-util-is@npm:~1.0.0": + version: 1.0.3 + resolution: "core-util-is@npm:1.0.3" + checksum: 10c0/90a0e40abbddfd7618f8ccd63a74d88deea94e77d0e8dbbea059fa7ebebb8fbb4e2909667fe26f3a467073de1a542ebe6ae4c73a73745ac5833786759cd906c9 + languageName: node + linkType: hard + +"cosmjs-types@npm:^0.9.0": + version: 0.9.0 + resolution: "cosmjs-types@npm:0.9.0" + checksum: 10c0/bc20f4293fb34629d7c5f96bafe533987f753df957ff68eb078d0128ae5a418320cb945024441769a07bb9bc5dde9d22b972fd40d485933e5706ea191c43727b + languageName: node + linkType: hard + +"create-require@npm:^1.1.0": + version: 1.1.1 + resolution: "create-require@npm:1.1.1" + checksum: 10c0/157cbc59b2430ae9a90034a5f3a1b398b6738bf510f713edc4d4e45e169bc514d3d99dd34d8d01ca7ae7830b5b8b537e46ae8f3c8f932371b0875c0151d7ec91 + languageName: node + linkType: hard + +"cross-spawn@npm:^7.0.0": + version: 7.0.3 + resolution: "cross-spawn@npm:7.0.3" + dependencies: + path-key: "npm:^3.1.0" + shebang-command: "npm:^2.0.0" + which: "npm:^2.0.1" + checksum: 10c0/5738c312387081c98d69c98e105b6327b069197f864a60593245d64c8089c8a0a744e16349281210d56835bb9274130d825a78b2ad6853ca13cfbeffc0c31750 + languageName: node + linkType: hard + +"d@npm:1, d@npm:^1.0.1": + version: 1.0.1 + resolution: "d@npm:1.0.1" + dependencies: + es5-ext: "npm:^0.10.50" + type: "npm:^1.0.1" + checksum: 10c0/1fedcb3b956a461f64d86b94b347441beff5cef8910b6ac4ec509a2c67eeaa7093660a98b26601ac91f91260238add73bdf25867a9c0cb783774642bc4c1523f + languageName: node + linkType: hard + +"dargs@npm:7.0.0": + version: 7.0.0 + resolution: "dargs@npm:7.0.0" + checksum: 10c0/ec7f6a8315a8fa2f8b12d39207615bdf62b4d01f631b96fbe536c8ad5469ab9ed710d55811e564d0d5c1d548fc8cb6cc70bf0939f2415790159f5a75e0f96c92 + languageName: node + linkType: hard + +"debug@npm:4, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.4": + version: 4.3.4 + resolution: "debug@npm:4.3.4" + dependencies: + ms: "npm:2.1.2" + peerDependenciesMeta: + supports-color: + optional: true + checksum: 10c0/cedbec45298dd5c501d01b92b119cd3faebe5438c3917ff11ae1bff86a6c722930ac9c8659792824013168ba6db7c4668225d845c633fbdafbbf902a6389f736 + languageName: node + linkType: hard + +"decompress-tar@npm:^4.0.0, decompress-tar@npm:^4.1.0, decompress-tar@npm:^4.1.1": + version: 4.1.1 + resolution: "decompress-tar@npm:4.1.1" + dependencies: + file-type: "npm:^5.2.0" + is-stream: "npm:^1.1.0" + tar-stream: "npm:^1.5.2" + checksum: 10c0/92d86c5dfe2a89f9b5db584668f8ed2a3107339083872c7f78b5f7d55222d954545e018c10346a50991542ad6d1406128bf1c97a24f023810993a1dcfb3c3f21 + languageName: node + linkType: hard + +"decompress-tarbz2@npm:^4.0.0": + version: 4.1.1 + resolution: "decompress-tarbz2@npm:4.1.1" + dependencies: + decompress-tar: "npm:^4.1.0" + file-type: "npm:^6.1.0" + is-stream: "npm:^1.1.0" + seek-bzip: "npm:^1.0.5" + unbzip2-stream: "npm:^1.0.9" + checksum: 10c0/d5ab2c2435a53f45da8348ffdb5ae0a3ff8fec55948b7890a1c55413de4d1e539a22978e7dcd8bd3561985878c9778253fe146cbdea429f04fa4529abb57c54e + languageName: node + linkType: hard + +"decompress-targz@npm:^4.0.0": + version: 4.1.1 + resolution: "decompress-targz@npm:4.1.1" + dependencies: + decompress-tar: "npm:^4.1.1" + file-type: "npm:^5.2.0" + is-stream: "npm:^1.1.0" + checksum: 10c0/42514fb2df6248c56b2b115494b7d1d046bc582e960354ba4faad5792f261782a61d17d9ef53845abe78c0f0ecafc195cb0754c00227fa0bd0642a1bfd8eafad + languageName: node + linkType: hard + +"decompress-unzip@npm:^4.0.1": + version: 4.0.1 + resolution: "decompress-unzip@npm:4.0.1" + dependencies: + file-type: "npm:^3.8.0" + get-stream: "npm:^2.2.0" + pify: "npm:^2.3.0" + yauzl: "npm:^2.4.2" + checksum: 10c0/896f88e1c23b59cdce022227a8910c06158bd4b296c21d61af7167bd50d00e9e4355b605bdbfd7ba75d46ad277d4f881cdd037aec7165a40ccd0ee4ef59443a8 + languageName: node + linkType: hard + +"decompress@npm:^4.2.1": + version: 4.2.1 + resolution: "decompress@npm:4.2.1" + dependencies: + decompress-tar: "npm:^4.0.0" + decompress-tarbz2: "npm:^4.0.0" + decompress-targz: "npm:^4.0.0" + decompress-unzip: "npm:^4.0.1" + graceful-fs: "npm:^4.1.10" + make-dir: "npm:^1.0.0" + pify: "npm:^2.3.0" + strip-dirs: "npm:^2.0.0" + checksum: 10c0/6730279fa206aad04a8338a88ab49c596034c502b2d5f23a28d0a28290b82d9217f9e60c8b5739805474ca842fc856e08e2d64ed759f2118c2bcabe42fa9eece + languageName: node + linkType: hard + +"deep-eql@npm:^4.1.3": + version: 4.1.3 + resolution: "deep-eql@npm:4.1.3" + dependencies: + type-detect: "npm:^4.0.0" + checksum: 10c0/ff34e8605d8253e1bf9fe48056e02c6f347b81d9b5df1c6650a1b0f6f847b4a86453b16dc226b34f853ef14b626e85d04e081b022e20b00cd7d54f079ce9bbdd + languageName: node + linkType: hard + +"deepmerge@npm:4.2.2": + version: 4.2.2 + resolution: "deepmerge@npm:4.2.2" + checksum: 10c0/d6136eee869057fea7a829aa2d10073ed49db5216e42a77cc737dd385334aab9b68dae22020a00c24c073d5f79cbbdd3f11b8d4fc87700d112ddaa0e1f968ef2 + languageName: node + linkType: hard + +"define-data-property@npm:^1.0.1": + version: 1.1.4 + resolution: "define-data-property@npm:1.1.4" + dependencies: + es-define-property: "npm:^1.0.0" + es-errors: "npm:^1.3.0" + gopd: "npm:^1.0.1" + checksum: 10c0/dea0606d1483eb9db8d930d4eac62ca0fa16738b0b3e07046cddfacf7d8c868bbe13fa0cb263eb91c7d0d527960dc3f2f2471a69ed7816210307f6744fe62e37 + languageName: node + linkType: hard + +"define-properties@npm:^1.1.3": + version: 1.2.1 + resolution: "define-properties@npm:1.2.1" + dependencies: + define-data-property: "npm:^1.0.1" + has-property-descriptors: "npm:^1.0.0" + object-keys: "npm:^1.1.1" + checksum: 10c0/88a152319ffe1396ccc6ded510a3896e77efac7a1bfbaa174a7b00414a1747377e0bb525d303794a47cf30e805c2ec84e575758512c6e44a993076d29fd4e6c3 + languageName: node + linkType: hard + +"delay@npm:^5.0.0": + version: 5.0.0 + resolution: "delay@npm:5.0.0" + checksum: 10c0/01cdc4cd0cd35fb622518a3df848e67e09763a38e7cdada2232b6fda9ddda72eddcf74f0e24211200fbe718434f2335f2a2633875a6c96037fefa6de42896ad7 + languageName: node + linkType: hard + +"delayed-stream@npm:~1.0.0": + version: 1.0.0 + resolution: "delayed-stream@npm:1.0.0" + checksum: 10c0/d758899da03392e6712f042bec80aa293bbe9e9ff1b2634baae6a360113e708b91326594c8a486d475c69d6259afb7efacdc3537bfcda1c6c648e390ce601b19 + languageName: node + linkType: hard + +"diff@npm:^3.1.0": + version: 3.5.0 + resolution: "diff@npm:3.5.0" + checksum: 10c0/fc62d5ba9f6d1b8b5833380969037007913d4886997838c247c54ec6934f09ae5a07e17ae28b1f016018149d81df8ad89306f52eac1afa899e0bed49015a64d1 + languageName: node + linkType: hard + +"diff@npm:^4.0.1": + version: 4.0.2 + resolution: "diff@npm:4.0.2" + checksum: 10c0/81b91f9d39c4eaca068eb0c1eb0e4afbdc5bb2941d197f513dd596b820b956fef43485876226d65d497bebc15666aa2aa82c679e84f65d5f2bfbf14ee46e32c1 + languageName: node + linkType: hard + +"dotty@npm:0.1.2": + version: 0.1.2 + resolution: "dotty@npm:0.1.2" + checksum: 10c0/5fbcbd29c7451508a54764e5f7792d3252a8daeb9956969191698e31d7b7e73dd5d590b1609c1413ef845511d428262a50460554322cf41d23b018656527c131 + languageName: node + linkType: hard + +"eastasianwidth@npm:^0.2.0": + version: 0.2.0 + resolution: "eastasianwidth@npm:0.2.0" + checksum: 10c0/26f364ebcdb6395f95124fda411f63137a4bfb5d3a06453f7f23dfe52502905bd84e0488172e0f9ec295fdc45f05c23d5d91baf16bd26f0fe9acd777a188dc39 + languageName: node + linkType: hard + +"electron-to-chromium@npm:^1.4.668": + version: 1.4.681 + resolution: "electron-to-chromium@npm:1.4.681" + checksum: 10c0/5b2558dfb8bb82c20fb5fa1d9bbe06a3add47431dc3e1e4815e997be6ad387787047d9e534ed96839a9e7012520a5281c865158b09db41d10c029af003f05f94 + languageName: node + linkType: hard + +"elliptic@npm:6.5.4, elliptic@npm:^6.5.4": + version: 6.5.4 + resolution: "elliptic@npm:6.5.4" + dependencies: + bn.js: "npm:^4.11.9" + brorand: "npm:^1.1.0" + hash.js: "npm:^1.0.0" + hmac-drbg: "npm:^1.0.1" + inherits: "npm:^2.0.4" + minimalistic-assert: "npm:^1.0.1" + minimalistic-crypto-utils: "npm:^1.0.1" + checksum: 10c0/5f361270292c3b27cf0843e84526d11dec31652f03c2763c6c2b8178548175ff5eba95341dd62baff92b2265d1af076526915d8af6cc9cb7559c44a62f8ca6e2 + languageName: node + linkType: hard + +"emoji-regex@npm:^8.0.0": + version: 8.0.0 + resolution: "emoji-regex@npm:8.0.0" + checksum: 10c0/b6053ad39951c4cf338f9092d7bfba448cdfd46fe6a2a034700b149ac9ffbc137e361cbd3c442297f86bed2e5f7576c1b54cc0a6bf8ef5106cc62f496af35010 + languageName: node + linkType: hard + +"emoji-regex@npm:^9.2.2": + version: 9.2.2 + resolution: "emoji-regex@npm:9.2.2" + checksum: 10c0/af014e759a72064cf66e6e694a7fc6b0ed3d8db680427b021a89727689671cefe9d04151b2cad51dbaf85d5ba790d061cd167f1cf32eb7b281f6368b3c181639 + languageName: node + linkType: hard + +"encoding@npm:^0.1.13": + version: 0.1.13 + resolution: "encoding@npm:0.1.13" + dependencies: + iconv-lite: "npm:^0.6.2" + checksum: 10c0/36d938712ff00fe1f4bac88b43bcffb5930c1efa57bbcdca9d67e1d9d6c57cfb1200fb01efe0f3109b2ce99b231f90779532814a81370a1bd3274a0f58585039 + languageName: node + linkType: hard + +"end-of-stream@npm:^1.0.0": + version: 1.4.4 + resolution: "end-of-stream@npm:1.4.4" + dependencies: + once: "npm:^1.4.0" + checksum: 10c0/870b423afb2d54bb8d243c63e07c170409d41e20b47eeef0727547aea5740bd6717aca45597a9f2745525667a6b804c1e7bede41f856818faee5806dd9ff3975 + languageName: node + linkType: hard + +"env-paths@npm:^2.2.0": + version: 2.2.1 + resolution: "env-paths@npm:2.2.1" + checksum: 10c0/285325677bf00e30845e330eec32894f5105529db97496ee3f598478e50f008c5352a41a30e5e72ec9de8a542b5a570b85699cd63bd2bc646dbcb9f311d83bc4 + languageName: node + linkType: hard + +"err-code@npm:^2.0.2": + version: 2.0.3 + resolution: "err-code@npm:2.0.3" + checksum: 10c0/b642f7b4dd4a376e954947550a3065a9ece6733ab8e51ad80db727aaae0817c2e99b02a97a3d6cecc648a97848305e728289cf312d09af395403a90c9d4d8a66 + languageName: node + linkType: hard + +"es-define-property@npm:^1.0.0": + version: 1.0.0 + resolution: "es-define-property@npm:1.0.0" + dependencies: + get-intrinsic: "npm:^1.2.4" + checksum: 10c0/6bf3191feb7ea2ebda48b577f69bdfac7a2b3c9bcf97307f55fd6ef1bbca0b49f0c219a935aca506c993d8c5d8bddd937766cb760cd5e5a1071351f2df9f9aa4 + languageName: node + linkType: hard + +"es-errors@npm:^1.3.0": + version: 1.3.0 + resolution: "es-errors@npm:1.3.0" + checksum: 10c0/0a61325670072f98d8ae3b914edab3559b6caa980f08054a3b872052640d91da01d38df55df797fcc916389d77fc92b8d5906cf028f4db46d7e3003abecbca85 + languageName: node + linkType: hard + +"es5-ext@npm:^0.10.35, es5-ext@npm:^0.10.46, es5-ext@npm:^0.10.50, es5-ext@npm:^0.10.53, es5-ext@npm:^0.10.61, es5-ext@npm:^0.10.62, es5-ext@npm:~0.10.14, es5-ext@npm:~0.10.2, es5-ext@npm:~0.10.46": + version: 0.10.63 + resolution: "es5-ext@npm:0.10.63" + dependencies: + es6-iterator: "npm:^2.0.3" + es6-symbol: "npm:^3.1.3" + esniff: "npm:^2.0.1" + next-tick: "npm:^1.1.0" + checksum: 10c0/1f20f9c73dc43cca9f1aa6908062f0a3d0bf3cee229a11a2cda6d4eca83583ceeb9b59ad36e951aa6e41ddd06d81aafac9a01de3d38a76b86f598a69ad0456bd + languageName: node + linkType: hard + +"es6-iterator@npm:^2.0.3": + version: 2.0.3 + resolution: "es6-iterator@npm:2.0.3" + dependencies: + d: "npm:1" + es5-ext: "npm:^0.10.35" + es6-symbol: "npm:^3.1.1" + checksum: 10c0/91f20b799dba28fb05bf623c31857fc1524a0f1c444903beccaf8929ad196c8c9ded233e5ac7214fc63a92b3f25b64b7f2737fcca8b1f92d2d96cf3ac902f5d8 + languageName: node + linkType: hard + +"es6-promise@npm:^4.0.3": + version: 4.2.8 + resolution: "es6-promise@npm:4.2.8" + checksum: 10c0/2373d9c5e9a93bdd9f9ed32ff5cb6dd3dd785368d1c21e9bbbfd07d16345b3774ae260f2bd24c8f836a6903f432b4151e7816a7fa8891ccb4e1a55a028ec42c3 + languageName: node + linkType: hard + +"es6-promisify@npm:^5.0.0": + version: 5.0.0 + resolution: "es6-promisify@npm:5.0.0" + dependencies: + es6-promise: "npm:^4.0.3" + checksum: 10c0/23284c6a733cbf7842ec98f41eac742c9f288a78753c4fe46652bae826446ced7615b9e8a5c5f121a08812b1cd478ea58630f3e1c3d70835bd5dcd69c7cd75c9 + languageName: node + linkType: hard + +"es6-symbol@npm:^3.1.1, es6-symbol@npm:^3.1.3": + version: 3.1.3 + resolution: "es6-symbol@npm:3.1.3" + dependencies: + d: "npm:^1.0.1" + ext: "npm:^1.1.2" + checksum: 10c0/22982f815f00df553a89f4fb74c5048fed85df598482b4bd38dbd173174247949c72982a7d7132a58b147525398400e5f182db59b0916cb49f1e245fb0e22233 + languageName: node + linkType: hard + +"es6-weak-map@npm:^2.0.3": + version: 2.0.3 + resolution: "es6-weak-map@npm:2.0.3" + dependencies: + d: "npm:1" + es5-ext: "npm:^0.10.46" + es6-iterator: "npm:^2.0.3" + es6-symbol: "npm:^3.1.1" + checksum: 10c0/460932be9542473dbbddd183e21c15a66cfec1b2c17dae2b514e190d6fb2896b7eb683783d4b36da036609d2e1c93d2815f21b374dfccaf02a8978694c2f7b67 + languageName: node + linkType: hard + +"esbuild@npm:^0.20.1": + version: 0.20.1 + resolution: "esbuild@npm:0.20.1" + dependencies: + "@esbuild/aix-ppc64": "npm:0.20.1" + "@esbuild/android-arm": "npm:0.20.1" + "@esbuild/android-arm64": "npm:0.20.1" + "@esbuild/android-x64": "npm:0.20.1" + "@esbuild/darwin-arm64": "npm:0.20.1" + "@esbuild/darwin-x64": "npm:0.20.1" + "@esbuild/freebsd-arm64": "npm:0.20.1" + "@esbuild/freebsd-x64": "npm:0.20.1" + "@esbuild/linux-arm": "npm:0.20.1" + "@esbuild/linux-arm64": "npm:0.20.1" + "@esbuild/linux-ia32": "npm:0.20.1" + "@esbuild/linux-loong64": "npm:0.20.1" + "@esbuild/linux-mips64el": "npm:0.20.1" + "@esbuild/linux-ppc64": "npm:0.20.1" + "@esbuild/linux-riscv64": "npm:0.20.1" + "@esbuild/linux-s390x": "npm:0.20.1" + "@esbuild/linux-x64": "npm:0.20.1" + "@esbuild/netbsd-x64": "npm:0.20.1" + "@esbuild/openbsd-x64": "npm:0.20.1" + "@esbuild/sunos-x64": "npm:0.20.1" + "@esbuild/win32-arm64": "npm:0.20.1" + "@esbuild/win32-ia32": "npm:0.20.1" + "@esbuild/win32-x64": "npm:0.20.1" + dependenciesMeta: + "@esbuild/aix-ppc64": + optional: true + "@esbuild/android-arm": + optional: true + "@esbuild/android-arm64": + optional: true + "@esbuild/android-x64": + optional: true + "@esbuild/darwin-arm64": + optional: true + "@esbuild/darwin-x64": + optional: true + "@esbuild/freebsd-arm64": + optional: true + "@esbuild/freebsd-x64": + optional: true + "@esbuild/linux-arm": + optional: true + "@esbuild/linux-arm64": + optional: true + "@esbuild/linux-ia32": + optional: true + "@esbuild/linux-loong64": + optional: true + "@esbuild/linux-mips64el": + optional: true + "@esbuild/linux-ppc64": + optional: true + "@esbuild/linux-riscv64": + optional: true + "@esbuild/linux-s390x": + optional: true + "@esbuild/linux-x64": + optional: true + "@esbuild/netbsd-x64": + optional: true + "@esbuild/openbsd-x64": + optional: true + "@esbuild/sunos-x64": + optional: true + "@esbuild/win32-arm64": + optional: true + "@esbuild/win32-ia32": + optional: true + "@esbuild/win32-x64": + optional: true + bin: + esbuild: bin/esbuild + checksum: 10c0/7e0303cb80defd55f3f7b85108081afc9c2f3852dda13bf70975a89210f20cd658fc02540d34247401806cb069c4ec489f7cf0df833e040ee361826484926c3a + languageName: node + linkType: hard + +"esbuild@npm:~0.18.20": + version: 0.18.20 + resolution: "esbuild@npm:0.18.20" + dependencies: + "@esbuild/android-arm": "npm:0.18.20" + "@esbuild/android-arm64": "npm:0.18.20" + "@esbuild/android-x64": "npm:0.18.20" + "@esbuild/darwin-arm64": "npm:0.18.20" + "@esbuild/darwin-x64": "npm:0.18.20" + "@esbuild/freebsd-arm64": "npm:0.18.20" + "@esbuild/freebsd-x64": "npm:0.18.20" + "@esbuild/linux-arm": "npm:0.18.20" + "@esbuild/linux-arm64": "npm:0.18.20" + "@esbuild/linux-ia32": "npm:0.18.20" + "@esbuild/linux-loong64": "npm:0.18.20" + "@esbuild/linux-mips64el": "npm:0.18.20" + "@esbuild/linux-ppc64": "npm:0.18.20" + "@esbuild/linux-riscv64": "npm:0.18.20" + "@esbuild/linux-s390x": "npm:0.18.20" + "@esbuild/linux-x64": "npm:0.18.20" + "@esbuild/netbsd-x64": "npm:0.18.20" + "@esbuild/openbsd-x64": "npm:0.18.20" + "@esbuild/sunos-x64": "npm:0.18.20" + "@esbuild/win32-arm64": "npm:0.18.20" + "@esbuild/win32-ia32": "npm:0.18.20" + "@esbuild/win32-x64": "npm:0.18.20" + dependenciesMeta: + "@esbuild/android-arm": + optional: true + "@esbuild/android-arm64": + optional: true + "@esbuild/android-x64": + optional: true + "@esbuild/darwin-arm64": + optional: true + "@esbuild/darwin-x64": + optional: true + "@esbuild/freebsd-arm64": + optional: true + "@esbuild/freebsd-x64": + optional: true + "@esbuild/linux-arm": + optional: true + "@esbuild/linux-arm64": + optional: true + "@esbuild/linux-ia32": + optional: true + "@esbuild/linux-loong64": + optional: true + "@esbuild/linux-mips64el": + optional: true + "@esbuild/linux-ppc64": + optional: true + "@esbuild/linux-riscv64": + optional: true + "@esbuild/linux-s390x": + optional: true + "@esbuild/linux-x64": + optional: true + "@esbuild/netbsd-x64": + optional: true + "@esbuild/openbsd-x64": + optional: true + "@esbuild/sunos-x64": + optional: true + "@esbuild/win32-arm64": + optional: true + "@esbuild/win32-ia32": + optional: true + "@esbuild/win32-x64": + optional: true + bin: + esbuild: bin/esbuild + checksum: 10c0/473b1d92842f50a303cf948a11ebd5f69581cd254d599dd9d62f9989858e0533f64e83b723b5e1398a5b488c0f5fd088795b4235f65ecaf4f007d4b79f04bc88 + languageName: node + linkType: hard + +"escalade@npm:^3.1.1": + version: 3.1.2 + resolution: "escalade@npm:3.1.2" + checksum: 10c0/6b4adafecd0682f3aa1cd1106b8fff30e492c7015b178bc81b2d2f75106dabea6c6d6e8508fc491bd58e597c74abb0e8e2368f943ecb9393d4162e3c2f3cf287 + languageName: node + linkType: hard + +"escape-string-regexp@npm:^1.0.2, escape-string-regexp@npm:^1.0.5": + version: 1.0.5 + resolution: "escape-string-regexp@npm:1.0.5" + checksum: 10c0/a968ad453dd0c2724e14a4f20e177aaf32bb384ab41b674a8454afe9a41c5e6fe8903323e0a1052f56289d04bd600f81278edf140b0fcc02f5cac98d0f5b5371 + languageName: node + linkType: hard + +"esniff@npm:^2.0.1": + version: 2.0.1 + resolution: "esniff@npm:2.0.1" + dependencies: + d: "npm:^1.0.1" + es5-ext: "npm:^0.10.62" + event-emitter: "npm:^0.3.5" + type: "npm:^2.7.2" + checksum: 10c0/7efd8d44ac20e5db8cb0ca77eb65eca60628b2d0f3a1030bcb05e71cc40e6e2935c47b87dba3c733db12925aa5b897f8e0e7a567a2c274206f184da676ea2e65 + languageName: node + linkType: hard + +"esprima@npm:^4.0.0": + version: 4.0.1 + resolution: "esprima@npm:4.0.1" + bin: + esparse: ./bin/esparse.js + esvalidate: ./bin/esvalidate.js + checksum: 10c0/ad4bab9ead0808cf56501750fd9d3fb276f6b105f987707d059005d57e182d18a7c9ec7f3a01794ebddcca676773e42ca48a32d67a250c9d35e009ca613caba3 + languageName: node + linkType: hard + +"esutils@npm:^2.0.2": + version: 2.0.3 + resolution: "esutils@npm:2.0.3" + checksum: 10c0/9a2fe69a41bfdade834ba7c42de4723c97ec776e40656919c62cbd13607c45e127a003f05f724a1ea55e5029a4cf2de444b13009f2af71271e42d93a637137c7 + languageName: node + linkType: hard + +"ethers@npm:^5.7.2": + version: 5.7.2 + resolution: "ethers@npm:5.7.2" + dependencies: + "@ethersproject/abi": "npm:5.7.0" + "@ethersproject/abstract-provider": "npm:5.7.0" + "@ethersproject/abstract-signer": "npm:5.7.0" + "@ethersproject/address": "npm:5.7.0" + "@ethersproject/base64": "npm:5.7.0" + "@ethersproject/basex": "npm:5.7.0" + "@ethersproject/bignumber": "npm:5.7.0" + "@ethersproject/bytes": "npm:5.7.0" + "@ethersproject/constants": "npm:5.7.0" + "@ethersproject/contracts": "npm:5.7.0" + "@ethersproject/hash": "npm:5.7.0" + "@ethersproject/hdnode": "npm:5.7.0" + "@ethersproject/json-wallets": "npm:5.7.0" + "@ethersproject/keccak256": "npm:5.7.0" + "@ethersproject/logger": "npm:5.7.0" + "@ethersproject/networks": "npm:5.7.1" + "@ethersproject/pbkdf2": "npm:5.7.0" + "@ethersproject/properties": "npm:5.7.0" + "@ethersproject/providers": "npm:5.7.2" + "@ethersproject/random": "npm:5.7.0" + "@ethersproject/rlp": "npm:5.7.0" + "@ethersproject/sha2": "npm:5.7.0" + "@ethersproject/signing-key": "npm:5.7.0" + "@ethersproject/solidity": "npm:5.7.0" + "@ethersproject/strings": "npm:5.7.0" + "@ethersproject/transactions": "npm:5.7.0" + "@ethersproject/units": "npm:5.7.0" + "@ethersproject/wallet": "npm:5.7.0" + "@ethersproject/web": "npm:5.7.1" + "@ethersproject/wordlists": "npm:5.7.0" + checksum: 10c0/90629a4cdb88cde7a7694f5610a83eb00d7fbbaea687446b15631397988f591c554dd68dfa752ddf00aabefd6285e5b298be44187e960f5e4962684e10b39962 + languageName: node + linkType: hard + +"event-emitter@npm:^0.3.5": + version: 0.3.5 + resolution: "event-emitter@npm:0.3.5" + dependencies: + d: "npm:1" + es5-ext: "npm:~0.10.14" + checksum: 10c0/75082fa8ffb3929766d0f0a063bfd6046bd2a80bea2666ebaa0cfd6f4a9116be6647c15667bea77222afc12f5b4071b68d393cf39fdaa0e8e81eda006160aff0 + languageName: node + linkType: hard + +"eventemitter3@npm:^4.0.7": + version: 4.0.7 + resolution: "eventemitter3@npm:4.0.7" + checksum: 10c0/5f6d97cbcbac47be798e6355e3a7639a84ee1f7d9b199a07017f1d2f1e2fe236004d14fa5dfaeba661f94ea57805385e326236a6debbc7145c8877fbc0297c6b + languageName: node + linkType: hard + +"exponential-backoff@npm:^3.1.1": + version: 3.1.1 + resolution: "exponential-backoff@npm:3.1.1" + checksum: 10c0/160456d2d647e6019640bd07111634d8c353038d9fa40176afb7cd49b0548bdae83b56d05e907c2cce2300b81cae35d800ef92fefb9d0208e190fa3b7d6bb579 + languageName: node + linkType: hard + +"ext@npm:^1.1.2": + version: 1.7.0 + resolution: "ext@npm:1.7.0" + dependencies: + type: "npm:^2.7.2" + checksum: 10c0/a8e5f34e12214e9eee3a4af3b5c9d05ba048f28996450975b369fc86e5d0ef13b6df0615f892f5396a9c65d616213c25ec5b0ad17ef42eac4a500512a19da6c7 + languageName: node + linkType: hard + +"external-editor@npm:^2.0.4": + version: 2.2.0 + resolution: "external-editor@npm:2.2.0" + dependencies: + chardet: "npm:^0.4.0" + iconv-lite: "npm:^0.4.17" + tmp: "npm:^0.0.33" + checksum: 10c0/5440df6ab809467485b3b15557d301e9fa3dda2892d6eaddd036ea337e0ced3e369c319507a123e34749cfce89c51f891848d249c713f54bcfaf95296663ff49 + languageName: node + linkType: hard + +"external-editor@npm:^3.0.3": + version: 3.1.0 + resolution: "external-editor@npm:3.1.0" + dependencies: + chardet: "npm:^0.7.0" + iconv-lite: "npm:^0.4.24" + tmp: "npm:^0.0.33" + checksum: 10c0/c98f1ba3efdfa3c561db4447ff366a6adb5c1e2581462522c56a18bf90dfe4da382f9cd1feee3e330108c3595a854b218272539f311ba1b3298f841eb0fbf339 + languageName: node + linkType: hard + +"eyes@npm:^0.1.8": + version: 0.1.8 + resolution: "eyes@npm:0.1.8" + checksum: 10c0/4c79a9cbf45746d8c9f48cc957e35ad8ea336add1c7b8d5a0e002efc791a7a62b27b2188184ef1a1eea7bc3cd06b161791421e0e6c5fe78309705a162c53eea8 + languageName: node + linkType: hard + +"fast-json-stable-stringify@npm:^2.0.0": + version: 2.1.0 + resolution: "fast-json-stable-stringify@npm:2.1.0" + checksum: 10c0/7f081eb0b8a64e0057b3bb03f974b3ef00135fbf36c1c710895cd9300f13c94ba809bb3a81cf4e1b03f6e5285610a61abbd7602d0652de423144dfee5a389c9b + languageName: node + linkType: hard + +"fast-stable-stringify@npm:^1.0.0": + version: 1.0.0 + resolution: "fast-stable-stringify@npm:1.0.0" + checksum: 10c0/1d773440c7a9615950577665074746c2e92edafceefa789616ecb6166229e0ccc6dae206ca9b9f7da0d274ba5779162aab2d07940a0f6e52a41a4e555392eb3b + languageName: node + linkType: hard + +"fb-watchman@npm:^2.0.0": + version: 2.0.2 + resolution: "fb-watchman@npm:2.0.2" + dependencies: + bser: "npm:2.1.1" + checksum: 10c0/feae89ac148adb8f6ae8ccd87632e62b13563e6fb114cacb5265c51f585b17e2e268084519fb2edd133872f1d47a18e6bfd7e5e08625c0d41b93149694187581 + languageName: node + linkType: hard + +"fd-slicer@npm:~1.1.0": + version: 1.1.0 + resolution: "fd-slicer@npm:1.1.0" + dependencies: + pend: "npm:~1.2.0" + checksum: 10c0/304dd70270298e3ffe3bcc05e6f7ade2511acc278bc52d025f8918b48b6aa3b77f10361bddfadfe2a28163f7af7adbdce96f4d22c31b2f648ba2901f0c5fc20e + languageName: node + linkType: hard + +"figures@npm:^2.0.0": + version: 2.0.0 + resolution: "figures@npm:2.0.0" + dependencies: + escape-string-regexp: "npm:^1.0.5" + checksum: 10c0/5dc5a75fec3e7e04ae65d6ce51d28b3e70d4656c51b06996b6fdb2cb5b542df512e3b3c04482f5193a964edddafa5521479ff948fa84e12ff556e53e094ab4ce + languageName: node + linkType: hard + +"file-type@npm:^3.8.0": + version: 3.9.0 + resolution: "file-type@npm:3.9.0" + checksum: 10c0/7ae074b350c2300807a99d428600a8ee6b2ace901400898706a20ddc2c43c9abb7e05177ff55ed67a2fd26dfa9b91857b21ec9c0ab3202b9cabebc7e65900240 + languageName: node + linkType: hard + +"file-type@npm:^5.2.0": + version: 5.2.0 + resolution: "file-type@npm:5.2.0" + checksum: 10c0/c16c2f4e484a838c12b63e08637277905f08aebb1afbc291086029210aea17ded5ed701c9a4588313446ae0c1da71566b58df9a9c758a1ec300c4f80b9713cbf + languageName: node + linkType: hard + +"file-type@npm:^6.1.0": + version: 6.2.0 + resolution: "file-type@npm:6.2.0" + checksum: 10c0/3d7fe85a10bd97ca0c35fd9a20d21f5b20849bbb70985d37c34475051433f3c6109c76a3e5893bff6773037b769be9730a2db762789ecf25def9b62a4c2ee953 + languageName: node + linkType: hard + +"file-uri-to-path@npm:1.0.0": + version: 1.0.0 + resolution: "file-uri-to-path@npm:1.0.0" + checksum: 10c0/3b545e3a341d322d368e880e1c204ef55f1d45cdea65f7efc6c6ce9e0c4d22d802d5629320eb779d006fe59624ac17b0e848d83cc5af7cd101f206cb704f5519 + languageName: node + linkType: hard + +"fill-range@npm:^7.0.1": + version: 7.0.1 + resolution: "fill-range@npm:7.0.1" + dependencies: + to-regex-range: "npm:^5.0.1" + checksum: 10c0/7cdad7d426ffbaadf45aeb5d15ec675bbd77f7597ad5399e3d2766987ed20bda24d5fac64b3ee79d93276f5865608bb22344a26b9b1ae6c4d00bd94bf611623f + languageName: node + linkType: hard + +"find-up@npm:^4.1.0": + version: 4.1.0 + resolution: "find-up@npm:4.1.0" + dependencies: + locate-path: "npm:^5.0.0" + path-exists: "npm:^4.0.0" + checksum: 10c0/0406ee89ebeefa2d507feb07ec366bebd8a6167ae74aa4e34fb4c4abd06cf782a3ce26ae4194d70706f72182841733f00551c209fe575cb00bd92104056e78c1 + languageName: node + linkType: hard + +"follow-redirects@npm:^1.15.4": + version: 1.15.5 + resolution: "follow-redirects@npm:1.15.5" + peerDependenciesMeta: + debug: + optional: true + checksum: 10c0/418d71688ceaf109dfd6f85f747a0c75de30afe43a294caa211def77f02ef19865b547dfb73fde82b751e1cc507c06c754120b848fe5a7400b0a669766df7615 + languageName: node + linkType: hard + +"foreground-child@npm:^3.1.0": + version: 3.1.1 + resolution: "foreground-child@npm:3.1.1" + dependencies: + cross-spawn: "npm:^7.0.0" + signal-exit: "npm:^4.0.1" + checksum: 10c0/9700a0285628abaeb37007c9a4d92bd49f67210f09067638774338e146c8e9c825c5c877f072b2f75f41dc6a2d0be8664f79ffc03f6576649f54a84fb9b47de0 + languageName: node + linkType: hard + +"form-data@npm:^4.0.0": + version: 4.0.0 + resolution: "form-data@npm:4.0.0" + dependencies: + asynckit: "npm:^0.4.0" + combined-stream: "npm:^1.0.8" + mime-types: "npm:^2.1.12" + checksum: 10c0/cb6f3ac49180be03ff07ba3ff125f9eba2ff0b277fb33c7fc47569fc5e616882c5b1c69b9904c4c4187e97dd0419dd03b134174756f296dec62041e6527e2c6e + languageName: node + linkType: hard + +"fs-constants@npm:^1.0.0": + version: 1.0.0 + resolution: "fs-constants@npm:1.0.0" + checksum: 10c0/a0cde99085f0872f4d244e83e03a46aa387b74f5a5af750896c6b05e9077fac00e9932fdf5aef84f2f16634cd473c63037d7a512576da7d5c2b9163d1909f3a8 + languageName: node + linkType: hard + +"fs-minipass@npm:^2.0.0": + version: 2.1.0 + resolution: "fs-minipass@npm:2.1.0" + dependencies: + minipass: "npm:^3.0.0" + checksum: 10c0/703d16522b8282d7299337539c3ed6edddd1afe82435e4f5b76e34a79cd74e488a8a0e26a636afc2440e1a23b03878e2122e3a2cfe375a5cf63c37d92b86a004 + languageName: node + linkType: hard + +"fs-minipass@npm:^3.0.0": + version: 3.0.3 + resolution: "fs-minipass@npm:3.0.3" + dependencies: + minipass: "npm:^7.0.3" + checksum: 10c0/63e80da2ff9b621e2cb1596abcb9207f1cf82b968b116ccd7b959e3323144cce7fb141462200971c38bbf2ecca51695069db45265705bed09a7cd93ae5b89f94 + languageName: node + linkType: hard + +"fs.realpath@npm:^1.0.0": + version: 1.0.0 + resolution: "fs.realpath@npm:1.0.0" + checksum: 10c0/444cf1291d997165dfd4c0d58b69f0e4782bfd9149fd72faa4fe299e68e0e93d6db941660b37dd29153bf7186672ececa3b50b7e7249477b03fdf850f287c948 + languageName: node + linkType: hard + +"fsevents@npm:^2.3.2, fsevents@npm:~2.3.3": + version: 2.3.3 + resolution: "fsevents@npm:2.3.3" + dependencies: + node-gyp: "npm:latest" + checksum: 10c0/a1f0c44595123ed717febbc478aa952e47adfc28e2092be66b8ab1635147254ca6cfe1df792a8997f22716d4cbafc73309899ff7bfac2ac3ad8cf2e4ecc3ec60 + conditions: os=darwin + languageName: node + linkType: hard + +"fsevents@patch:fsevents@npm%3A^2.3.2#optional!builtin, fsevents@patch:fsevents@npm%3A~2.3.3#optional!builtin": + version: 2.3.3 + resolution: "fsevents@patch:fsevents@npm%3A2.3.3#optional!builtin::version=2.3.3&hash=df0bf1" + dependencies: + node-gyp: "npm:latest" + conditions: os=darwin + languageName: node + linkType: hard + +"function-bind@npm:^1.1.2": + version: 1.1.2 + resolution: "function-bind@npm:1.1.2" + checksum: 10c0/d8680ee1e5fcd4c197e4ac33b2b4dce03c71f4d91717292785703db200f5c21f977c568d28061226f9b5900cbcd2c84463646134fd5337e7925e0942bc3f46d5 + languageName: node + linkType: hard + +"fuzzy@npm:0.1.3": + version: 0.1.3 + resolution: "fuzzy@npm:0.1.3" + checksum: 10c0/584fcd57a03431707a6d0c1c4a41f17368cdb23d37dcb176d6cbbeeaecaac51be15dec229b3547acfb7db052cb066fcd86db907d40112ac4a3d3a368f88e7105 + languageName: node + linkType: hard + +"gensync@npm:^1.0.0-beta.2": + version: 1.0.0-beta.2 + resolution: "gensync@npm:1.0.0-beta.2" + checksum: 10c0/782aba6cba65b1bb5af3b095d96249d20edbe8df32dbf4696fd49be2583faf676173bf4809386588828e4dd76a3354fcbeb577bab1c833ccd9fc4577f26103f8 + languageName: node + linkType: hard + +"get-func-name@npm:^2.0.1, get-func-name@npm:^2.0.2": + version: 2.0.2 + resolution: "get-func-name@npm:2.0.2" + checksum: 10c0/89830fd07623fa73429a711b9daecdb304386d237c71268007f788f113505ef1d4cc2d0b9680e072c5082490aec9df5d7758bf5ac6f1c37062855e8e3dc0b9df + languageName: node + linkType: hard + +"get-intrinsic@npm:^1.1.3, get-intrinsic@npm:^1.2.4": + version: 1.2.4 + resolution: "get-intrinsic@npm:1.2.4" + dependencies: + es-errors: "npm:^1.3.0" + function-bind: "npm:^1.1.2" + has-proto: "npm:^1.0.1" + has-symbols: "npm:^1.0.3" + hasown: "npm:^2.0.0" + checksum: 10c0/0a9b82c16696ed6da5e39b1267104475c47e3a9bdbe8b509dfe1710946e38a87be70d759f4bb3cda042d76a41ef47fe769660f3b7c0d1f68750299344ffb15b7 + languageName: node + linkType: hard + +"get-package-type@npm:^0.1.0": + version: 0.1.0 + resolution: "get-package-type@npm:0.1.0" + checksum: 10c0/e34cdf447fdf1902a1f6d5af737eaadf606d2ee3518287abde8910e04159368c268568174b2e71102b87b26c2020486f126bfca9c4fb1ceb986ff99b52ecd1be + languageName: node + linkType: hard + +"get-stdin@npm:^8.0.0": + version: 8.0.0 + resolution: "get-stdin@npm:8.0.0" + checksum: 10c0/b71b72b83928221052f713b3b6247ebf1ceaeb4ef76937778557537fd51ad3f586c9e6a7476865022d9394b39b74eed1dc7514052fa74d80625276253571b76f + languageName: node + linkType: hard + +"get-stream@npm:^2.2.0": + version: 2.3.1 + resolution: "get-stream@npm:2.3.1" + dependencies: + object-assign: "npm:^4.0.1" + pinkie-promise: "npm:^2.0.0" + checksum: 10c0/46c12f496e7edec688a1cc570fe7556ce91e91201fa7efb146853fb9f0a8f0b0bb9a02cf9d9e4e9d4e2097f98c83b09621d9034c25ca0cf80ae6f4dace9c3465 + languageName: node + linkType: hard + +"get-tsconfig@npm:^4.7.2": + version: 4.7.2 + resolution: "get-tsconfig@npm:4.7.2" + dependencies: + resolve-pkg-maps: "npm:^1.0.0" + checksum: 10c0/169b2beababfbb16e8a0ae813ee59d3e14d4960231c816615161ab5be68ec07a394dce59695742ac84295e2efab8d9e89bcf3abaf5e253dfbec3496e01bb9a65 + languageName: node + linkType: hard + +"glob-promise@npm:^4.2.2": + version: 4.2.2 + resolution: "glob-promise@npm:4.2.2" + dependencies: + "@types/glob": "npm:^7.1.3" + peerDependencies: + glob: ^7.1.6 + checksum: 10c0/3eb01bed2901539365df6a4d27800afb8788840647d01f9bf3500b3de756597f2ff4b8c823971ace34db228c83159beca459dc42a70968d4e9c8200ed2cc96bd + languageName: node + linkType: hard + +"glob@npm:8.0.3": + version: 8.0.3 + resolution: "glob@npm:8.0.3" + dependencies: + fs.realpath: "npm:^1.0.0" + inflight: "npm:^1.0.4" + inherits: "npm:2" + minimatch: "npm:^5.0.1" + once: "npm:^1.3.0" + checksum: 10c0/07ebaf2ed83e76b10901ec4982040ebd85458b787b4386f751a0514f6c8e416ed6c9eec5a892571eb0ef00b09d1bd451f72b5d9fb7b63770efd400532486e731 + languageName: node + linkType: hard + +"glob@npm:^10.2.2, glob@npm:^10.3.10": + version: 10.3.10 + resolution: "glob@npm:10.3.10" + dependencies: + foreground-child: "npm:^3.1.0" + jackspeak: "npm:^2.3.5" + minimatch: "npm:^9.0.1" + minipass: "npm:^5.0.0 || ^6.0.2 || ^7.0.0" + path-scurry: "npm:^1.10.1" + bin: + glob: dist/esm/bin.mjs + checksum: 10c0/13d8a1feb7eac7945f8c8480e11cd4a44b24d26503d99a8d8ac8d5aefbf3e9802a2b6087318a829fad04cb4e829f25c5f4f1110c68966c498720dd261c7e344d + languageName: node + linkType: hard + +"glob@npm:^7.0.0, glob@npm:^7.1.3, glob@npm:^7.1.4, glob@npm:^7.1.6": + version: 7.2.3 + resolution: "glob@npm:7.2.3" + dependencies: + fs.realpath: "npm:^1.0.0" + inflight: "npm:^1.0.4" + inherits: "npm:2" + minimatch: "npm:^3.1.1" + once: "npm:^1.3.0" + path-is-absolute: "npm:^1.0.0" + checksum: 10c0/65676153e2b0c9095100fe7f25a778bf45608eeb32c6048cf307f579649bcc30353277b3b898a3792602c65764e5baa4f643714dfbdfd64ea271d210c7a425fe + languageName: node + linkType: hard + +"globals@npm:^11.1.0": + version: 11.12.0 + resolution: "globals@npm:11.12.0" + checksum: 10c0/758f9f258e7b19226bd8d4af5d3b0dcf7038780fb23d82e6f98932c44e239f884847f1766e8fa9cc5635ccb3204f7fa7314d4408dd4002a5e8ea827b4018f0a1 + languageName: node + linkType: hard + +"globalthis@npm:^1.0.1": + version: 1.0.3 + resolution: "globalthis@npm:1.0.3" + dependencies: + define-properties: "npm:^1.1.3" + checksum: 10c0/0db6e9af102a5254630351557ac15e6909bc7459d3e3f6b001e59fe784c96d31108818f032d9095739355a88467459e6488ff16584ee6250cd8c27dec05af4b0 + languageName: node + linkType: hard + +"gopd@npm:^1.0.1": + version: 1.0.1 + resolution: "gopd@npm:1.0.1" + dependencies: + get-intrinsic: "npm:^1.1.3" + checksum: 10c0/505c05487f7944c552cee72087bf1567debb470d4355b1335f2c262d218ebbff805cd3715448fe29b4b380bae6912561d0467233e4165830efd28da241418c63 + languageName: node + linkType: hard + +"graceful-fs@npm:^4.1.10, graceful-fs@npm:^4.2.6, graceful-fs@npm:^4.2.9": + version: 4.2.11 + resolution: "graceful-fs@npm:4.2.11" + checksum: 10c0/386d011a553e02bc594ac2ca0bd6d9e4c22d7fa8cfbfc448a6d148c59ea881b092db9dbe3547ae4b88e55f1b01f7c4a2ecc53b310c042793e63aa44cf6c257f2 + languageName: node + linkType: hard + +"has-ansi@npm:^2.0.0": + version: 2.0.0 + resolution: "has-ansi@npm:2.0.0" + dependencies: + ansi-regex: "npm:^2.0.0" + checksum: 10c0/f54e4887b9f8f3c4bfefd649c48825b3c093987c92c27880ee9898539e6f01aed261e82e73153c3f920fde0db5bf6ebd58deb498ed1debabcb4bc40113ccdf05 + languageName: node + linkType: hard + +"has-flag@npm:^3.0.0": + version: 3.0.0 + resolution: "has-flag@npm:3.0.0" + checksum: 10c0/1c6c83b14b8b1b3c25b0727b8ba3e3b647f99e9e6e13eb7322107261de07a4c1be56fc0d45678fc376e09772a3a1642ccdaf8fc69bdf123b6c086598397ce473 + languageName: node + linkType: hard + +"has-flag@npm:^4.0.0": + version: 4.0.0 + resolution: "has-flag@npm:4.0.0" + checksum: 10c0/2e789c61b7888d66993e14e8331449e525ef42aac53c627cc53d1c3334e768bcb6abdc4f5f0de1478a25beec6f0bd62c7549058b7ac53e924040d4f301f02fd1 + languageName: node + linkType: hard + +"has-property-descriptors@npm:^1.0.0": + version: 1.0.2 + resolution: "has-property-descriptors@npm:1.0.2" + dependencies: + es-define-property: "npm:^1.0.0" + checksum: 10c0/253c1f59e80bb476cf0dde8ff5284505d90c3bdb762983c3514d36414290475fe3fd6f574929d84de2a8eec00d35cf07cb6776205ff32efd7c50719125f00236 + languageName: node + linkType: hard + +"has-proto@npm:^1.0.1": + version: 1.0.3 + resolution: "has-proto@npm:1.0.3" + checksum: 10c0/35a6989f81e9f8022c2f4027f8b48a552de714938765d019dbea6bb547bd49ce5010a3c7c32ec6ddac6e48fc546166a3583b128f5a7add8b058a6d8b4afec205 + languageName: node + linkType: hard + +"has-symbols@npm:^1.0.3": + version: 1.0.3 + resolution: "has-symbols@npm:1.0.3" + checksum: 10c0/e6922b4345a3f37069cdfe8600febbca791c94988c01af3394d86ca3360b4b93928bbf395859158f88099cb10b19d98e3bbab7c9ff2c1bd09cf665ee90afa2c3 + languageName: node + linkType: hard + +"hash.js@npm:1.1.7, hash.js@npm:^1.0.0, hash.js@npm:^1.0.3": + version: 1.1.7 + resolution: "hash.js@npm:1.1.7" + dependencies: + inherits: "npm:^2.0.3" + minimalistic-assert: "npm:^1.0.1" + checksum: 10c0/41ada59494eac5332cfc1ce6b7ebdd7b88a3864a6d6b08a3ea8ef261332ed60f37f10877e0c825aaa4bddebf164fbffa618286aeeec5296675e2671cbfa746c4 + languageName: node + linkType: hard + +"hasown@npm:^2.0.0": + version: 2.0.1 + resolution: "hasown@npm:2.0.1" + dependencies: + function-bind: "npm:^1.1.2" + checksum: 10c0/9e27e70e8e4204f4124c8f99950d1ba2b1f5174864fd39ff26da190f9ea6488c1b3927dcc64981c26d1f637a971783c9489d62c829d393ea509e6f1ba20370bb + languageName: node + linkType: hard + +"hmac-drbg@npm:^1.0.1": + version: 1.0.1 + resolution: "hmac-drbg@npm:1.0.1" + dependencies: + hash.js: "npm:^1.0.3" + minimalistic-assert: "npm:^1.0.0" + minimalistic-crypto-utils: "npm:^1.0.1" + checksum: 10c0/f3d9ba31b40257a573f162176ac5930109816036c59a09f901eb2ffd7e5e705c6832bedfff507957125f2086a0ab8f853c0df225642a88bf1fcaea945f20600d + languageName: node + linkType: hard + +"http-cache-semantics@npm:^4.1.1": + version: 4.1.1 + resolution: "http-cache-semantics@npm:4.1.1" + checksum: 10c0/ce1319b8a382eb3cbb4a37c19f6bfe14e5bb5be3d09079e885e8c513ab2d3cd9214902f8a31c9dc4e37022633ceabfc2d697405deeaf1b8f3552bb4ed996fdfc + languageName: node + linkType: hard + +"http-proxy-agent@npm:^7.0.0": + version: 7.0.2 + resolution: "http-proxy-agent@npm:7.0.2" + dependencies: + agent-base: "npm:^7.1.0" + debug: "npm:^4.3.4" + checksum: 10c0/4207b06a4580fb85dd6dff521f0abf6db517489e70863dca1a0291daa7f2d3d2d6015a57bd702af068ea5cf9f1f6ff72314f5f5b4228d299c0904135d2aef921 + languageName: node + linkType: hard + +"https-proxy-agent@npm:^7.0.1": + version: 7.0.4 + resolution: "https-proxy-agent@npm:7.0.4" + dependencies: + agent-base: "npm:^7.0.2" + debug: "npm:4" + checksum: 10c0/bc4f7c38da32a5fc622450b6cb49a24ff596f9bd48dcedb52d2da3fa1c1a80e100fb506bd59b326c012f21c863c69b275c23de1a01d0b84db396822fdf25e52b + languageName: node + linkType: hard + +"humanize-ms@npm:^1.2.1": + version: 1.2.1 + resolution: "humanize-ms@npm:1.2.1" + dependencies: + ms: "npm:^2.0.0" + checksum: 10c0/f34a2c20161d02303c2807badec2f3b49cbfbbb409abd4f95a07377ae01cfe6b59e3d15ac609cffcd8f2521f0eb37b7e1091acf65da99aa2a4f1ad63c21e7e7a + languageName: node + linkType: hard + +"iconv-lite@npm:^0.4.17, iconv-lite@npm:^0.4.24": + version: 0.4.24 + resolution: "iconv-lite@npm:0.4.24" + dependencies: + safer-buffer: "npm:>= 2.1.2 < 3" + checksum: 10c0/c6886a24cc00f2a059767440ec1bc00d334a89f250db8e0f7feb4961c8727118457e27c495ba94d082e51d3baca378726cd110aaf7ded8b9bbfd6a44760cf1d4 + languageName: node + linkType: hard + +"iconv-lite@npm:^0.6.2": + version: 0.6.3 + resolution: "iconv-lite@npm:0.6.3" + dependencies: + safer-buffer: "npm:>= 2.1.2 < 3.0.0" + checksum: 10c0/98102bc66b33fcf5ac044099d1257ba0b7ad5e3ccd3221f34dd508ab4070edff183276221684e1e0555b145fce0850c9f7d2b60a9fcac50fbb4ea0d6e845a3b1 + languageName: node + linkType: hard + +"ieee754@npm:^1.1.13, ieee754@npm:^1.2.1": + version: 1.2.1 + resolution: "ieee754@npm:1.2.1" + checksum: 10c0/b0782ef5e0935b9f12883a2e2aa37baa75da6e66ce6515c168697b42160807d9330de9a32ec1ed73149aea02e0d822e572bca6f1e22bdcbd2149e13b050b17bb + languageName: node + linkType: hard + +"imurmurhash@npm:^0.1.4": + version: 0.1.4 + resolution: "imurmurhash@npm:0.1.4" + checksum: 10c0/8b51313850dd33605c6c9d3fd9638b714f4c4c40250cff658209f30d40da60f78992fb2df5dabee4acf589a6a82bbc79ad5486550754bd9ec4e3fc0d4a57d6a6 + languageName: node + linkType: hard + +"indent-string@npm:^4.0.0": + version: 4.0.0 + resolution: "indent-string@npm:4.0.0" + checksum: 10c0/1e1904ddb0cb3d6cce7cd09e27a90184908b7a5d5c21b92e232c93579d314f0b83c246ffb035493d0504b1e9147ba2c9b21df0030f48673fba0496ecd698161f + languageName: node + linkType: hard + +"inflight@npm:^1.0.4": + version: 1.0.6 + resolution: "inflight@npm:1.0.6" + dependencies: + once: "npm:^1.3.0" + wrappy: "npm:1" + checksum: 10c0/7faca22584600a9dc5b9fca2cd5feb7135ac8c935449837b315676b4c90aa4f391ec4f42240178244b5a34e8bede1948627fda392ca3191522fc46b34e985ab2 + languageName: node + linkType: hard + +"inherits@npm:2, inherits@npm:^2.0.3, inherits@npm:^2.0.4, inherits@npm:~2.0.3": + version: 2.0.4 + resolution: "inherits@npm:2.0.4" + checksum: 10c0/4e531f648b29039fb7426fb94075e6545faa1eb9fe83c29f0b6d9e7263aceb4289d2d4557db0d428188eeb449cc7c5e77b0a0b2c4e248ff2a65933a0dee49ef2 + languageName: node + linkType: hard + +"inherits@npm:2.0.3": + version: 2.0.3 + resolution: "inherits@npm:2.0.3" + checksum: 10c0/6e56402373149ea076a434072671f9982f5fad030c7662be0332122fe6c0fa490acb3cc1010d90b6eff8d640b1167d77674add52dfd1bb85d545cf29e80e73e7 + languageName: node + linkType: hard + +"inquirer-autocomplete-prompt@npm:^0.11.1": + version: 0.11.1 + resolution: "inquirer-autocomplete-prompt@npm:0.11.1" + dependencies: + ansi-escapes: "npm:^2.0.0" + chalk: "npm:^1.1.3" + figures: "npm:^2.0.0" + inquirer: "npm:3.1.1" + lodash: "npm:^4.17.4" + run-async: "npm:^2.3.0" + util: "npm:^0.10.3" + checksum: 10c0/ea02159215083800be247b3b31bb9a32c868acbae3fa0f4ac1f819e88245b19dc34b2aa5f7d17679cf37072eaff9a0ef03ea65e9d33dc3d920efb1ecdc382d72 + languageName: node + linkType: hard + +"inquirer@npm:3.1.1": + version: 3.1.1 + resolution: "inquirer@npm:3.1.1" + dependencies: + ansi-escapes: "npm:^2.0.0" + chalk: "npm:^1.0.0" + cli-cursor: "npm:^2.1.0" + cli-width: "npm:^2.0.0" + external-editor: "npm:^2.0.4" + figures: "npm:^2.0.0" + lodash: "npm:^4.3.0" + mute-stream: "npm:0.0.7" + run-async: "npm:^2.2.0" + rx-lite: "npm:^4.0.8" + rx-lite-aggregates: "npm:^4.0.8" + string-width: "npm:^2.0.0" + strip-ansi: "npm:^3.0.0" + through: "npm:^2.3.6" + checksum: 10c0/866549b59c664113fb20fcc1b73349c238b3674ed66234e8f8fe50574f8be36d81eb42c14e6675c1e6a1fadc03a7f851a2245efda32409f680fc65ca52331475 + languageName: node + linkType: hard + +"inquirer@npm:^6.0.0": + version: 6.5.2 + resolution: "inquirer@npm:6.5.2" + dependencies: + ansi-escapes: "npm:^3.2.0" + chalk: "npm:^2.4.2" + cli-cursor: "npm:^2.1.0" + cli-width: "npm:^2.0.0" + external-editor: "npm:^3.0.3" + figures: "npm:^2.0.0" + lodash: "npm:^4.17.12" + mute-stream: "npm:0.0.7" + run-async: "npm:^2.2.0" + rxjs: "npm:^6.4.0" + string-width: "npm:^2.1.0" + strip-ansi: "npm:^5.1.0" + through: "npm:^2.3.6" + checksum: 10c0/a5aa53a8f88405cf1cff63111493f87a5b3b5deb5ea4a0dbcd73ccc06a51a6bba0c3f1a0747f8880e9e3ec2437c69f90417be16368abf636b1d29eebe35db0ac + languageName: node + linkType: hard + +"inquirerer@npm:0.1.3": + version: 0.1.3 + resolution: "inquirerer@npm:0.1.3" + dependencies: + colors: "npm:^1.1.2" + inquirer: "npm:^6.0.0" + inquirer-autocomplete-prompt: "npm:^0.11.1" + checksum: 10c0/da61f9c797c1b7d4455b1be8c5c431bac278297a0758cb758e027829b40629c0facb76b479d48a7db7a56b534278085c4e95be621cb161c607c432890c46194e + languageName: node + linkType: hard + +"interpret@npm:^1.0.0": + version: 1.4.0 + resolution: "interpret@npm:1.4.0" + checksum: 10c0/08c5ad30032edeec638485bc3f6db7d0094d9b3e85e0f950866600af3c52e9fd69715416d29564731c479d9f4d43ff3e4d302a178196bdc0e6837ec147640450 + languageName: node + linkType: hard + +"inversify@npm:^6.0.1": + version: 6.0.2 + resolution: "inversify@npm:6.0.2" + checksum: 10c0/ac532c9a6e45785dcfd5117f19b5c1705a7ebddf432152cd2d5be3e951d9745fec9ae3c39c166b34945458b4eda3e37afae6a63cccc5033d545b450d54221220 + languageName: node + linkType: hard + +"ip-address@npm:^9.0.5": + version: 9.0.5 + resolution: "ip-address@npm:9.0.5" + dependencies: + jsbn: "npm:1.1.0" + sprintf-js: "npm:^1.1.3" + checksum: 10c0/331cd07fafcb3b24100613e4b53e1a2b4feab11e671e655d46dc09ee233da5011284d09ca40c4ecbdfe1d0004f462958675c224a804259f2f78d2465a87824bc + languageName: node + linkType: hard + +"is-core-module@npm:^2.13.0": + version: 2.13.1 + resolution: "is-core-module@npm:2.13.1" + dependencies: + hasown: "npm:^2.0.0" + checksum: 10c0/2cba9903aaa52718f11c4896dabc189bab980870aae86a62dc0d5cedb546896770ee946fb14c84b7adf0735f5eaea4277243f1b95f5cefa90054f92fbcac2518 + languageName: node + linkType: hard + +"is-extglob@npm:^2.1.1": + version: 2.1.1 + resolution: "is-extglob@npm:2.1.1" + checksum: 10c0/5487da35691fbc339700bbb2730430b07777a3c21b9ebaecb3072512dfd7b4ba78ac2381a87e8d78d20ea08affb3f1971b4af629173a6bf435ff8a4c47747912 + languageName: node + linkType: hard + +"is-fullwidth-code-point@npm:^2.0.0": + version: 2.0.0 + resolution: "is-fullwidth-code-point@npm:2.0.0" + checksum: 10c0/e58f3e4a601fc0500d8b2677e26e9fe0cd450980e66adb29d85b6addf7969731e38f8e43ed2ec868a09c101a55ac3d8b78902209269f38c5286bc98f5bc1b4d9 + languageName: node + linkType: hard + +"is-fullwidth-code-point@npm:^3.0.0": + version: 3.0.0 + resolution: "is-fullwidth-code-point@npm:3.0.0" + checksum: 10c0/bb11d825e049f38e04c06373a8d72782eee0205bda9d908cc550ccb3c59b99d750ff9537982e01733c1c94a58e35400661f57042158ff5e8f3e90cf936daf0fc + languageName: node + linkType: hard + +"is-glob@npm:^4.0.3": + version: 4.0.3 + resolution: "is-glob@npm:4.0.3" + dependencies: + is-extglob: "npm:^2.1.1" + checksum: 10c0/17fb4014e22be3bbecea9b2e3a76e9e34ff645466be702f1693e8f1ee1adac84710d0be0bd9f967d6354036fd51ab7c2741d954d6e91dae6bb69714de92c197a + languageName: node + linkType: hard + +"is-lambda@npm:^1.0.1": + version: 1.0.1 + resolution: "is-lambda@npm:1.0.1" + checksum: 10c0/85fee098ae62ba6f1e24cf22678805473c7afd0fb3978a3aa260e354cb7bcb3a5806cf0a98403188465efedec41ab4348e8e4e79305d409601323855b3839d4d + languageName: node + linkType: hard + +"is-natural-number@npm:^4.0.1": + version: 4.0.1 + resolution: "is-natural-number@npm:4.0.1" + checksum: 10c0/f05c544cb0ad39d4410e2ae2244282bf61918ebbb808b665436ffca4f6bbe908d3ae3a8d21fe143d302951f157d969986dd432098b63899561639fcd1ce1c280 + languageName: node + linkType: hard + +"is-number@npm:^7.0.0": + version: 7.0.0 + resolution: "is-number@npm:7.0.0" + checksum: 10c0/b4686d0d3053146095ccd45346461bc8e53b80aeb7671cc52a4de02dbbf7dc0d1d2a986e2fe4ae206984b4d34ef37e8b795ebc4f4295c978373e6575e295d811 + languageName: node + linkType: hard + +"is-promise@npm:^2.2.2": + version: 2.2.2 + resolution: "is-promise@npm:2.2.2" + checksum: 10c0/2dba959812380e45b3df0fb12e7cb4d4528c989c7abb03ececb1d1fd6ab1cbfee956ca9daa587b9db1d8ac3c1e5738cf217bdb3dfd99df8c691be4c00ae09069 + languageName: node + linkType: hard + +"is-stream@npm:^1.1.0": + version: 1.1.0 + resolution: "is-stream@npm:1.1.0" + checksum: 10c0/b8ae7971e78d2e8488d15f804229c6eed7ed36a28f8807a1815938771f4adff0e705218b7dab968270433f67103e4fef98062a0beea55d64835f705ee72c7002 + languageName: node + linkType: hard + +"isarray@npm:~1.0.0": + version: 1.0.0 + resolution: "isarray@npm:1.0.0" + checksum: 10c0/18b5be6669be53425f0b84098732670ed4e727e3af33bc7f948aac01782110eb9a18b3b329c5323bcdd3acdaae547ee077d3951317e7f133bff7105264b3003d + languageName: node + linkType: hard + +"isexe@npm:^2.0.0": + version: 2.0.0 + resolution: "isexe@npm:2.0.0" + checksum: 10c0/228cfa503fadc2c31596ab06ed6aa82c9976eec2bfd83397e7eaf06d0ccf42cd1dfd6743bf9aeb01aebd4156d009994c5f76ea898d2832c1fe342da923ca457d + languageName: node + linkType: hard + +"isexe@npm:^3.1.1": + version: 3.1.1 + resolution: "isexe@npm:3.1.1" + checksum: 10c0/9ec257654093443eb0a528a9c8cbba9c0ca7616ccb40abd6dde7202734d96bb86e4ac0d764f0f8cd965856aacbff2f4ce23e730dc19dfb41e3b0d865ca6fdcc7 + languageName: node + linkType: hard + +"isomorphic-ws@npm:^4.0.1": + version: 4.0.1 + resolution: "isomorphic-ws@npm:4.0.1" + peerDependencies: + ws: "*" + checksum: 10c0/7cb90dc2f0eb409825558982fb15d7c1d757a88595efbab879592f9d2b63820d6bbfb5571ab8abe36c715946e165a413a99f6aafd9f40ab1f514d73487bc9996 + languageName: node + linkType: hard + +"isows@npm:1.0.3": + version: 1.0.3 + resolution: "isows@npm:1.0.3" + peerDependencies: + ws: "*" + checksum: 10c0/adec15db704bb66615dd8ef33f889d41ae2a70866b21fa629855da98cc82a628ae072ee221fe9779a9a19866cad2a3e72593f2d161a0ce0e168b4484c7df9cd2 + languageName: node + linkType: hard + +"istanbul-lib-coverage@npm:^3.2.0": + version: 3.2.2 + resolution: "istanbul-lib-coverage@npm:3.2.2" + checksum: 10c0/6c7ff2106769e5f592ded1fb418f9f73b4411fd5a084387a5410538332b6567cd1763ff6b6cadca9b9eb2c443cce2f7ea7d7f1b8d315f9ce58539793b1e0922b + languageName: node + linkType: hard + +"istanbul-lib-instrument@npm:^5.0.4": + version: 5.2.1 + resolution: "istanbul-lib-instrument@npm:5.2.1" + dependencies: + "@babel/core": "npm:^7.12.3" + "@babel/parser": "npm:^7.14.7" + "@istanbuljs/schema": "npm:^0.1.2" + istanbul-lib-coverage: "npm:^3.2.0" + semver: "npm:^6.3.0" + checksum: 10c0/8a1bdf3e377dcc0d33ec32fe2b6ecacdb1e4358fd0eb923d4326bb11c67622c0ceb99600a680f3dad5d29c66fc1991306081e339b4d43d0b8a2ab2e1d910a6ee + languageName: node + linkType: hard + +"jackspeak@npm:^2.3.5": + version: 2.3.6 + resolution: "jackspeak@npm:2.3.6" + dependencies: + "@isaacs/cliui": "npm:^8.0.2" + "@pkgjs/parseargs": "npm:^0.11.0" + dependenciesMeta: + "@pkgjs/parseargs": + optional: true + checksum: 10c0/f01d8f972d894cd7638bc338e9ef5ddb86f7b208ce177a36d718eac96ec86638a6efa17d0221b10073e64b45edc2ce15340db9380b1f5d5c5d000cbc517dc111 + languageName: node + linkType: hard + +"jayson@npm:^4.1.0": + version: 4.1.0 + resolution: "jayson@npm:4.1.0" + dependencies: + "@types/connect": "npm:^3.4.33" + "@types/node": "npm:^12.12.54" + "@types/ws": "npm:^7.4.4" + JSONStream: "npm:^1.3.5" + commander: "npm:^2.20.3" + delay: "npm:^5.0.0" + es6-promisify: "npm:^5.0.0" + eyes: "npm:^0.1.8" + isomorphic-ws: "npm:^4.0.1" + json-stringify-safe: "npm:^5.0.1" + uuid: "npm:^8.3.2" + ws: "npm:^7.4.5" + bin: + jayson: bin/jayson.js + checksum: 10c0/1b3a642eab65e7c07be45d6b9c08c1713348ed71454e37536f479400eb6c7257061fab74430d4677d1cedbed18db8fe8370202f0b52fac87d9c7af1140aa293d + languageName: node + linkType: hard + +"jest-haste-map@npm:^28.1.3": + version: 28.1.3 + resolution: "jest-haste-map@npm:28.1.3" + dependencies: + "@jest/types": "npm:^28.1.3" + "@types/graceful-fs": "npm:^4.1.3" + "@types/node": "npm:*" + anymatch: "npm:^3.0.3" + fb-watchman: "npm:^2.0.0" + fsevents: "npm:^2.3.2" + graceful-fs: "npm:^4.2.9" + jest-regex-util: "npm:^28.0.2" + jest-util: "npm:^28.1.3" + jest-worker: "npm:^28.1.3" + micromatch: "npm:^4.0.4" + walker: "npm:^1.0.8" + dependenciesMeta: + fsevents: + optional: true + checksum: 10c0/6a2beedd31f5d67b508d57fbfdd8858cfbd2f59a61737fc74cac4b9f60120faeda8c40189afba331324b08e10bc2281521292cdb6713fb3cab7770828f4e83d9 + languageName: node + linkType: hard + +"jest-regex-util@npm:^28.0.2": + version: 28.0.2 + resolution: "jest-regex-util@npm:28.0.2" + checksum: 10c0/d79d255b8a2217bdb0b638cbb5e61a41ab788e62a6217fce5276ab9763c1327b9e0a4f10ebdb230c76848125aa9cc97c8751cfad15db7ec0441d44acfbaf5084 + languageName: node + linkType: hard + +"jest-util@npm:^28.1.3": + version: 28.1.3 + resolution: "jest-util@npm:28.1.3" + dependencies: + "@jest/types": "npm:^28.1.3" + "@types/node": "npm:*" + chalk: "npm:^4.0.0" + ci-info: "npm:^3.2.0" + graceful-fs: "npm:^4.2.9" + picomatch: "npm:^2.2.3" + checksum: 10c0/7d4946424032a2ccb2ad669905debb44b0bf040dff7a1fe82d283c679ae4638a86ca48d6a276d65a76451252338ad84e76ef2cfde03f577f091fe2b3102aedc9 + languageName: node + linkType: hard + +"jest-worker@npm:^28.1.3": + version: 28.1.3 + resolution: "jest-worker@npm:28.1.3" + dependencies: + "@types/node": "npm:*" + merge-stream: "npm:^2.0.0" + supports-color: "npm:^8.0.0" + checksum: 10c0/d6715268fd6c9fd8431987d42e4ae0981dc6352fd7a5c90aadb9c67562dc6161486a98960f5d1bd36dbafb202d8d98a6fdb181711acbc5e55ee6ab85fa94c931 + languageName: node + linkType: hard + +"js-sha3@npm:0.8.0": + version: 0.8.0 + resolution: "js-sha3@npm:0.8.0" + checksum: 10c0/43a21dc7967c871bd2c46cb1c2ae97441a97169f324e509f382d43330d8f75cf2c96dba7c806ab08a425765a9c847efdd4bffbac2d99c3a4f3de6c0218f40533 + languageName: node + linkType: hard + +"js-tokens@npm:^4.0.0": + version: 4.0.0 + resolution: "js-tokens@npm:4.0.0" + checksum: 10c0/e248708d377aa058eacf2037b07ded847790e6de892bbad3dac0abba2e759cb9f121b00099a65195616badcb6eca8d14d975cb3e89eb1cfda644756402c8aeed + languageName: node + linkType: hard + +"js-yaml@npm:^3.11.0, js-yaml@npm:^3.13.1": + version: 3.14.1 + resolution: "js-yaml@npm:3.14.1" + dependencies: + argparse: "npm:^1.0.7" + esprima: "npm:^4.0.0" + bin: + js-yaml: bin/js-yaml.js + checksum: 10c0/6746baaaeac312c4db8e75fa22331d9a04cccb7792d126ed8ce6a0bbcfef0cedaddd0c5098fade53db067c09fe00aa1c957674b4765610a8b06a5a189e46433b + languageName: node + linkType: hard + +"jsbn@npm:1.1.0": + version: 1.1.0 + resolution: "jsbn@npm:1.1.0" + checksum: 10c0/4f907fb78d7b712e11dea8c165fe0921f81a657d3443dde75359ed52eb2b5d33ce6773d97985a089f09a65edd80b11cb75c767b57ba47391fee4c969f7215c96 + languageName: node + linkType: hard + +"jsesc@npm:^2.5.1": + version: 2.5.2 + resolution: "jsesc@npm:2.5.2" + bin: + jsesc: bin/jsesc + checksum: 10c0/dbf59312e0ebf2b4405ef413ec2b25abb5f8f4d9bc5fb8d9f90381622ebca5f2af6a6aa9a8578f65903f9e33990a6dc798edd0ce5586894bf0e9e31803a1de88 + languageName: node + linkType: hard + +"jsesc@npm:~0.5.0": + version: 0.5.0 + resolution: "jsesc@npm:0.5.0" + bin: + jsesc: bin/jsesc + checksum: 10c0/f93792440ae1d80f091b65f8ceddf8e55c4bb7f1a09dee5dcbdb0db5612c55c0f6045625aa6b7e8edb2e0a4feabd80ee48616dbe2d37055573a84db3d24f96d9 + languageName: node + linkType: hard + +"json-stringify-safe@npm:^5.0.1": + version: 5.0.1 + resolution: "json-stringify-safe@npm:5.0.1" + checksum: 10c0/7dbf35cd0411d1d648dceb6d59ce5857ec939e52e4afc37601aa3da611f0987d5cee5b38d58329ceddf3ed48bd7215229c8d52059ab01f2444a338bf24ed0f37 + languageName: node + linkType: hard + +"json5@npm:^2.2.1, json5@npm:^2.2.3": + version: 2.2.3 + resolution: "json5@npm:2.2.3" + bin: + json5: lib/cli.js + checksum: 10c0/5a04eed94810fa55c5ea138b2f7a5c12b97c3750bc63d11e511dcecbfef758003861522a070c2272764ee0f4e3e323862f386945aeb5b85b87ee43f084ba586c + languageName: node + linkType: hard + +"jsonparse@npm:^1.2.0": + version: 1.3.1 + resolution: "jsonparse@npm:1.3.1" + checksum: 10c0/89bc68080cd0a0e276d4b5ab1b79cacd68f562467008d176dc23e16e97d4efec9e21741d92ba5087a8433526a45a7e6a9d5ef25408696c402ca1cfbc01a90bf0 + languageName: node + linkType: hard + +"libsodium-sumo@npm:^0.7.13": + version: 0.7.13 + resolution: "libsodium-sumo@npm:0.7.13" + checksum: 10c0/8159205cc36cc4bdf46ee097e5f998d5cac7d11612be7406a8396ca3ee31560871ac17daa69e47ff0e8407eeae9f49313912ea95dbc8715875301b004c28ef5b + languageName: node + linkType: hard + +"libsodium-wrappers-sumo@npm:^0.7.11": + version: 0.7.13 + resolution: "libsodium-wrappers-sumo@npm:0.7.13" + dependencies: + libsodium-sumo: "npm:^0.7.13" + checksum: 10c0/51a151d0f73418632dcf9cf0184b14d8eb6e16b9a3f01a652c7401c6d1bf8ead4f5ce40a4f00bd4754c5719a7a5fb71d6125691896aeb7a9c1abcfe4b73afc02 + languageName: node + linkType: hard + +"locate-path@npm:^5.0.0": + version: 5.0.0 + resolution: "locate-path@npm:5.0.0" + dependencies: + p-locate: "npm:^4.1.0" + checksum: 10c0/33a1c5247e87e022f9713e6213a744557a3e9ec32c5d0b5efb10aa3a38177615bf90221a5592674857039c1a0fd2063b82f285702d37b792d973e9e72ace6c59 + languageName: node + linkType: hard + +"lodash.debounce@npm:^4.0.8": + version: 4.0.8 + resolution: "lodash.debounce@npm:4.0.8" + checksum: 10c0/762998a63e095412b6099b8290903e0a8ddcb353ac6e2e0f2d7e7d03abd4275fe3c689d88960eb90b0dde4f177554d51a690f22a343932ecbc50a5d111849987 + languageName: node + linkType: hard + +"lodash@npm:^4.17.12, lodash@npm:^4.17.21, lodash@npm:^4.17.4, lodash@npm:^4.3.0": + version: 4.17.21 + resolution: "lodash@npm:4.17.21" + checksum: 10c0/d8cbea072bb08655bb4c989da418994b073a608dffa608b09ac04b43a791b12aeae7cd7ad919aa4c925f33b48490b5cfe6c1f71d827956071dae2e7bb3a6b74c + languageName: node + linkType: hard + +"long@npm:^4.0.0": + version: 4.0.0 + resolution: "long@npm:4.0.0" + checksum: 10c0/50a6417d15b06104dbe4e3d4a667c39b137f130a9108ea8752b352a4cfae047531a3ac351c181792f3f8768fe17cca6b0f406674a541a86fb638aaac560d83ed + languageName: node + linkType: hard + +"long@npm:^5.2.0": + version: 5.2.3 + resolution: "long@npm:5.2.3" + checksum: 10c0/6a0da658f5ef683b90330b1af76f06790c623e148222da9d75b60e266bbf88f803232dd21464575681638894a84091616e7f89557aa087fd14116c0f4e0e43d9 + languageName: node + linkType: hard + +"loupe@npm:^2.3.6": + version: 2.3.7 + resolution: "loupe@npm:2.3.7" + dependencies: + get-func-name: "npm:^2.0.1" + checksum: 10c0/71a781c8fc21527b99ed1062043f1f2bb30bdaf54fa4cf92463427e1718bc6567af2988300bc243c1f276e4f0876f29e3cbf7b58106fdc186915687456ce5bf4 + languageName: node + linkType: hard + +"lru-cache@npm:^10.0.1, lru-cache@npm:^9.1.1 || ^10.0.0": + version: 10.2.0 + resolution: "lru-cache@npm:10.2.0" + checksum: 10c0/c9847612aa2daaef102d30542a8d6d9b2c2bb36581c1bf0dc3ebf5e5f3352c772a749e604afae2e46873b930a9e9523743faac4e5b937c576ab29196774712ee + languageName: node + linkType: hard + +"lru-cache@npm:^5.1.1": + version: 5.1.1 + resolution: "lru-cache@npm:5.1.1" + dependencies: + yallist: "npm:^3.0.2" + checksum: 10c0/89b2ef2ef45f543011e38737b8a8622a2f8998cddf0e5437174ef8f1f70a8b9d14a918ab3e232cb3ba343b7abddffa667f0b59075b2b80e6b4d63c3de6127482 + languageName: node + linkType: hard + +"lru-cache@npm:^6.0.0": + version: 6.0.0 + resolution: "lru-cache@npm:6.0.0" + dependencies: + yallist: "npm:^4.0.0" + checksum: 10c0/cb53e582785c48187d7a188d3379c181b5ca2a9c78d2bce3e7dee36f32761d1c42983da3fe12b55cb74e1779fa94cdc2e5367c028a9b35317184ede0c07a30a9 + languageName: node + linkType: hard + +"lru-queue@npm:^0.1.0": + version: 0.1.0 + resolution: "lru-queue@npm:0.1.0" + dependencies: + es5-ext: "npm:~0.10.2" + checksum: 10c0/83517032b46843601c4528be65e8aaf85f5a7860a9cfa3e4f2b5591da436e7cd748d95b450c91434c4ffb75d3ae4c069ddbdd9f71ada56a99a00c03088c51b4d + languageName: node + linkType: hard + +"make-dir@npm:^1.0.0": + version: 1.3.0 + resolution: "make-dir@npm:1.3.0" + dependencies: + pify: "npm:^3.0.0" + checksum: 10c0/5eb94f47d7ef41d89d1b8eef6539b8950d5bd99eeba093a942bfd327faa37d2d62227526b88b73633243a2ec7972d21eb0f4e5d62ae4e02a79e389f4a7bb3022 + languageName: node + linkType: hard + +"make-error@npm:^1.1.1": + version: 1.3.6 + resolution: "make-error@npm:1.3.6" + checksum: 10c0/171e458d86854c6b3fc46610cfacf0b45149ba043782558c6875d9f42f222124384ad0b468c92e996d815a8a2003817a710c0a160e49c1c394626f76fa45396f + languageName: node + linkType: hard + +"make-fetch-happen@npm:^13.0.0": + version: 13.0.0 + resolution: "make-fetch-happen@npm:13.0.0" + dependencies: + "@npmcli/agent": "npm:^2.0.0" + cacache: "npm:^18.0.0" + http-cache-semantics: "npm:^4.1.1" + is-lambda: "npm:^1.0.1" + minipass: "npm:^7.0.2" + minipass-fetch: "npm:^3.0.0" + minipass-flush: "npm:^1.0.5" + minipass-pipeline: "npm:^1.2.4" + negotiator: "npm:^0.6.3" + promise-retry: "npm:^2.0.1" + ssri: "npm:^10.0.0" + checksum: 10c0/43b9f6dcbc6fe8b8604cb6396957c3698857a15ba4dbc38284f7f0e61f248300585ef1eb8cc62df54e9c724af977e45b5cdfd88320ef7f53e45070ed3488da55 + languageName: node + linkType: hard + +"makeerror@npm:1.0.12": + version: 1.0.12 + resolution: "makeerror@npm:1.0.12" + dependencies: + tmpl: "npm:1.0.5" + checksum: 10c0/b0e6e599780ce6bab49cc413eba822f7d1f0dfebd1c103eaa3785c59e43e22c59018323cf9e1708f0ef5329e94a745d163fcbb6bff8e4c6742f9be9e86f3500c + languageName: node + linkType: hard + +"memoizee@npm:^0.4.15": + version: 0.4.15 + resolution: "memoizee@npm:0.4.15" + dependencies: + d: "npm:^1.0.1" + es5-ext: "npm:^0.10.53" + es6-weak-map: "npm:^2.0.3" + event-emitter: "npm:^0.3.5" + is-promise: "npm:^2.2.2" + lru-queue: "npm:^0.1.0" + next-tick: "npm:^1.1.0" + timers-ext: "npm:^0.1.7" + checksum: 10c0/297e65cd8256bdf24c48f5e158da80d4c9688db0d6e65c5dcc13fa768e782ddeb71aec36925359931b5efef0efc6666b5bb2af6deb3de63d4258a3821ed16fce + languageName: node + linkType: hard + +"merge-stream@npm:^2.0.0": + version: 2.0.0 + resolution: "merge-stream@npm:2.0.0" + checksum: 10c0/867fdbb30a6d58b011449b8885601ec1690c3e41c759ecd5a9d609094f7aed0096c37823ff4a7190ef0b8f22cc86beb7049196ff68c016e3b3c671d0dac91ce5 + languageName: node + linkType: hard + +"micromatch@npm:^4.0.4": + version: 4.0.5 + resolution: "micromatch@npm:4.0.5" + dependencies: + braces: "npm:^3.0.2" + picomatch: "npm:^2.3.1" + checksum: 10c0/3d6505b20f9fa804af5d8c596cb1c5e475b9b0cd05f652c5b56141cf941bd72adaeb7a436fda344235cef93a7f29b7472efc779fcdb83b478eab0867b95cdeff + languageName: node + linkType: hard + +"mime-db@npm:1.52.0": + version: 1.52.0 + resolution: "mime-db@npm:1.52.0" + checksum: 10c0/0557a01deebf45ac5f5777fe7740b2a5c309c6d62d40ceab4e23da9f821899ce7a900b7ac8157d4548ddbb7beffe9abc621250e6d182b0397ec7f10c7b91a5aa + languageName: node + linkType: hard + +"mime-types@npm:^2.1.12": + version: 2.1.35 + resolution: "mime-types@npm:2.1.35" + dependencies: + mime-db: "npm:1.52.0" + checksum: 10c0/82fb07ec56d8ff1fc999a84f2f217aa46cb6ed1033fefaabd5785b9a974ed225c90dc72fff460259e66b95b73648596dbcc50d51ed69cdf464af2d237d3149b2 + languageName: node + linkType: hard + +"mimic-fn@npm:^1.0.0": + version: 1.2.0 + resolution: "mimic-fn@npm:1.2.0" + checksum: 10c0/ad55214aec6094c0af4c0beec1a13787556f8116ed88807cf3f05828500f21f93a9482326bcd5a077ae91e3e8795b4e76b5b4c8bb12237ff0e4043a365516cba + languageName: node + linkType: hard + +"minimalistic-assert@npm:^1.0.0, minimalistic-assert@npm:^1.0.1": + version: 1.0.1 + resolution: "minimalistic-assert@npm:1.0.1" + checksum: 10c0/96730e5601cd31457f81a296f521eb56036e6f69133c0b18c13fe941109d53ad23a4204d946a0d638d7f3099482a0cec8c9bb6d642604612ce43ee536be3dddd + languageName: node + linkType: hard + +"minimalistic-crypto-utils@npm:^1.0.1": + version: 1.0.1 + resolution: "minimalistic-crypto-utils@npm:1.0.1" + checksum: 10c0/790ecec8c5c73973a4fbf2c663d911033e8494d5fb0960a4500634766ab05d6107d20af896ca2132e7031741f19888154d44b2408ada0852446705441383e9f8 + languageName: node + linkType: hard + +"minimatch@npm:^3.0.4, minimatch@npm:^3.1.1": + version: 3.1.2 + resolution: "minimatch@npm:3.1.2" + dependencies: + brace-expansion: "npm:^1.1.7" + checksum: 10c0/0262810a8fc2e72cca45d6fd86bd349eee435eb95ac6aa45c9ea2180e7ee875ef44c32b55b5973ceabe95ea12682f6e3725cbb63d7a2d1da3ae1163c8b210311 + languageName: node + linkType: hard + +"minimatch@npm:^5.0.1": + version: 5.1.6 + resolution: "minimatch@npm:5.1.6" + dependencies: + brace-expansion: "npm:^2.0.1" + checksum: 10c0/3defdfd230914f22a8da203747c42ee3c405c39d4d37ffda284dac5e45b7e1f6c49aa8be606509002898e73091ff2a3bbfc59c2c6c71d4660609f63aa92f98e3 + languageName: node + linkType: hard + +"minimatch@npm:^9.0.1": + version: 9.0.3 + resolution: "minimatch@npm:9.0.3" + dependencies: + brace-expansion: "npm:^2.0.1" + checksum: 10c0/85f407dcd38ac3e180f425e86553911d101455ca3ad5544d6a7cec16286657e4f8a9aa6695803025c55e31e35a91a2252b5dc8e7d527211278b8b65b4dbd5eac + languageName: node + linkType: hard + +"minimist@npm:1.2.6": + version: 1.2.6 + resolution: "minimist@npm:1.2.6" + checksum: 10c0/d0b566204044481c4401abbd24cc75814e753b37268e7fe7ccc78612bf3e37bf1e45a6c43fb0b119445ea1c413c000bde013f320b7211974f2f49bcbec1d0dbf + languageName: node + linkType: hard + +"minimist@npm:^1.2.0, minimist@npm:^1.2.6": + version: 1.2.8 + resolution: "minimist@npm:1.2.8" + checksum: 10c0/19d3fcdca050087b84c2029841a093691a91259a47def2f18222f41e7645a0b7c44ef4b40e88a1e58a40c84d2ef0ee6047c55594d298146d0eb3f6b737c20ce6 + languageName: node + linkType: hard + +"minipass-collect@npm:^2.0.1": + version: 2.0.1 + resolution: "minipass-collect@npm:2.0.1" + dependencies: + minipass: "npm:^7.0.3" + checksum: 10c0/5167e73f62bb74cc5019594709c77e6a742051a647fe9499abf03c71dca75515b7959d67a764bdc4f8b361cf897fbf25e2d9869ee039203ed45240f48b9aa06e + languageName: node + linkType: hard + +"minipass-fetch@npm:^3.0.0": + version: 3.0.4 + resolution: "minipass-fetch@npm:3.0.4" + dependencies: + encoding: "npm:^0.1.13" + minipass: "npm:^7.0.3" + minipass-sized: "npm:^1.0.3" + minizlib: "npm:^2.1.2" + dependenciesMeta: + encoding: + optional: true + checksum: 10c0/1b63c1f3313e88eeac4689f1b71c9f086598db9a189400e3ee960c32ed89e06737fa23976c9305c2d57464fb3fcdc12749d3378805c9d6176f5569b0d0ee8a75 + languageName: node + linkType: hard + +"minipass-flush@npm:^1.0.5": + version: 1.0.5 + resolution: "minipass-flush@npm:1.0.5" + dependencies: + minipass: "npm:^3.0.0" + checksum: 10c0/2a51b63feb799d2bb34669205eee7c0eaf9dce01883261a5b77410c9408aa447e478efd191b4de6fc1101e796ff5892f8443ef20d9544385819093dbb32d36bd + languageName: node + linkType: hard + +"minipass-pipeline@npm:^1.2.4": + version: 1.2.4 + resolution: "minipass-pipeline@npm:1.2.4" + dependencies: + minipass: "npm:^3.0.0" + checksum: 10c0/cbda57cea20b140b797505dc2cac71581a70b3247b84480c1fed5ca5ba46c25ecc25f68bfc9e6dcb1a6e9017dab5c7ada5eab73ad4f0a49d84e35093e0c643f2 + languageName: node + linkType: hard + +"minipass-sized@npm:^1.0.3": + version: 1.0.3 + resolution: "minipass-sized@npm:1.0.3" + dependencies: + minipass: "npm:^3.0.0" + checksum: 10c0/298f124753efdc745cfe0f2bdfdd81ba25b9f4e753ca4a2066eb17c821f25d48acea607dfc997633ee5bf7b6dfffb4eee4f2051eb168663f0b99fad2fa4829cb + languageName: node + linkType: hard + +"minipass@npm:^3.0.0": + version: 3.3.6 + resolution: "minipass@npm:3.3.6" + dependencies: + yallist: "npm:^4.0.0" + checksum: 10c0/a114746943afa1dbbca8249e706d1d38b85ed1298b530f5808ce51f8e9e941962e2a5ad2e00eae7dd21d8a4aae6586a66d4216d1a259385e9d0358f0c1eba16c + languageName: node + linkType: hard + +"minipass@npm:^5.0.0": + version: 5.0.0 + resolution: "minipass@npm:5.0.0" + checksum: 10c0/a91d8043f691796a8ac88df039da19933ef0f633e3d7f0d35dcd5373af49131cf2399bfc355f41515dc495e3990369c3858cd319e5c2722b4753c90bf3152462 + languageName: node + linkType: hard + +"minipass@npm:^5.0.0 || ^6.0.2 || ^7.0.0, minipass@npm:^7.0.2, minipass@npm:^7.0.3": + version: 7.0.4 + resolution: "minipass@npm:7.0.4" + checksum: 10c0/6c7370a6dfd257bf18222da581ba89a5eaedca10e158781232a8b5542a90547540b4b9b7e7f490e4cda43acfbd12e086f0453728ecf8c19e0ef6921bc5958ac5 + languageName: node + linkType: hard + +"minizlib@npm:^2.1.1, minizlib@npm:^2.1.2": + version: 2.1.2 + resolution: "minizlib@npm:2.1.2" + dependencies: + minipass: "npm:^3.0.0" + yallist: "npm:^4.0.0" + checksum: 10c0/64fae024e1a7d0346a1102bb670085b17b7f95bf6cfdf5b128772ec8faf9ea211464ea4add406a3a6384a7d87a0cd1a96263692134323477b4fb43659a6cab78 + languageName: node + linkType: hard + +"mkdirp@npm:1.0.4, mkdirp@npm:^1.0.3, mkdirp@npm:^1.0.4": + version: 1.0.4 + resolution: "mkdirp@npm:1.0.4" + bin: + mkdirp: bin/cmd.js + checksum: 10c0/46ea0f3ffa8bc6a5bc0c7081ffc3907777f0ed6516888d40a518c5111f8366d97d2678911ad1a6882bf592fa9de6c784fea32e1687bb94e1f4944170af48a5cf + languageName: node + linkType: hard + +"mkdirp@npm:^0.5.1": + version: 0.5.6 + resolution: "mkdirp@npm:0.5.6" + dependencies: + minimist: "npm:^1.2.6" + bin: + mkdirp: bin/cmd.js + checksum: 10c0/e2e2be789218807b58abced04e7b49851d9e46e88a2f9539242cc8a92c9b5c3a0b9bab360bd3014e02a140fc4fbc58e31176c408b493f8a2a6f4986bd7527b01 + languageName: node + linkType: hard + +"ms@npm:2.1.2": + version: 2.1.2 + resolution: "ms@npm:2.1.2" + checksum: 10c0/a437714e2f90dbf881b5191d35a6db792efbca5badf112f87b9e1c712aace4b4b9b742dd6537f3edf90fd6f684de897cec230abde57e87883766712ddda297cc + languageName: node + linkType: hard + +"ms@npm:^2.0.0": + version: 2.1.3 + resolution: "ms@npm:2.1.3" + checksum: 10c0/d924b57e7312b3b63ad21fc5b3dc0af5e78d61a1fc7cfb5457edaf26326bf62be5307cc87ffb6862ef1c2b33b0233cdb5d4f01c4c958cc0d660948b65a287a48 + languageName: node + linkType: hard + +"mute-stream@npm:0.0.7": + version: 0.0.7 + resolution: "mute-stream@npm:0.0.7" + checksum: 10c0/c687cfe99289166fe17dcbd0cf49612c5d267410a7819b654a82df45016967d7b2b0b18b35410edef86de6bb089a00413557dc0182c5e78a4af50ba5d61edb42 + languageName: node + linkType: hard + +"mz@npm:^2.7.0": + version: 2.7.0 + resolution: "mz@npm:2.7.0" + dependencies: + any-promise: "npm:^1.0.0" + object-assign: "npm:^4.0.1" + thenify-all: "npm:^1.0.0" + checksum: 10c0/103114e93f87362f0b56ab5b2e7245051ad0276b646e3902c98397d18bb8f4a77f2ea4a2c9d3ad516034ea3a56553b60d3f5f78220001ca4c404bd711bd0af39 + languageName: node + linkType: hard + +"negotiator@npm:^0.6.3": + version: 0.6.3 + resolution: "negotiator@npm:0.6.3" + checksum: 10c0/3ec9fd413e7bf071c937ae60d572bc67155262068ed522cf4b3be5edbe6ddf67d095ec03a3a14ebf8fc8e95f8e1d61be4869db0dbb0de696f6b837358bd43fc2 + languageName: node + linkType: hard + +"next-tick@npm:1, next-tick@npm:^1.1.0": + version: 1.1.0 + resolution: "next-tick@npm:1.1.0" + checksum: 10c0/3ba80dd805fcb336b4f52e010992f3e6175869c8d88bf4ff0a81d5d66e6049f89993463b28211613e58a6b7fe93ff5ccbba0da18d4fa574b96289e8f0b577f28 + languageName: node + linkType: hard + +"node-fetch@npm:^2.7.0": + version: 2.7.0 + resolution: "node-fetch@npm:2.7.0" + dependencies: + whatwg-url: "npm:^5.0.0" + peerDependencies: + encoding: ^0.1.0 + peerDependenciesMeta: + encoding: + optional: true + checksum: 10c0/b55786b6028208e6fbe594ccccc213cab67a72899c9234eb59dba51062a299ea853210fcf526998eaa2867b0963ad72338824450905679ff0fa304b8c5093ae8 + languageName: node + linkType: hard + +"node-gyp-build@npm:^4.3.0": + version: 4.8.0 + resolution: "node-gyp-build@npm:4.8.0" + bin: + node-gyp-build: bin.js + node-gyp-build-optional: optional.js + node-gyp-build-test: build-test.js + checksum: 10c0/85324be16f81f0235cbbc42e3eceaeb1b5ab94c8d8f5236755e1435b4908338c65a4e75f66ee343cbcb44ddf9b52a428755bec16dcd983295be4458d95c8e1ad + languageName: node + linkType: hard + +"node-gyp@npm:latest": + version: 10.0.1 + resolution: "node-gyp@npm:10.0.1" + dependencies: + env-paths: "npm:^2.2.0" + exponential-backoff: "npm:^3.1.1" + glob: "npm:^10.3.10" + graceful-fs: "npm:^4.2.6" + make-fetch-happen: "npm:^13.0.0" + nopt: "npm:^7.0.0" + proc-log: "npm:^3.0.0" + semver: "npm:^7.3.5" + tar: "npm:^6.1.2" + which: "npm:^4.0.0" + bin: + node-gyp: bin/node-gyp.js + checksum: 10c0/abddfff7d873312e4ed4a5fb75ce893a5c4fb69e7fcb1dfa71c28a6b92a7f1ef6b62790dffb39181b5a82728ba8f2f32d229cf8cbe66769fe02cea7db4a555aa + languageName: node + linkType: hard + +"node-int64@npm:^0.4.0": + version: 0.4.0 + resolution: "node-int64@npm:0.4.0" + checksum: 10c0/a6a4d8369e2f2720e9c645255ffde909c0fbd41c92ea92a5607fc17055955daac99c1ff589d421eee12a0d24e99f7bfc2aabfeb1a4c14742f6c099a51863f31a + languageName: node + linkType: hard + +"node-releases@npm:^2.0.14": + version: 2.0.14 + resolution: "node-releases@npm:2.0.14" + checksum: 10c0/199fc93773ae70ec9969bc6d5ac5b2bbd6eb986ed1907d751f411fef3ede0e4bfdb45ceb43711f8078bea237b6036db8b1bf208f6ff2b70c7d615afd157f3ab9 + languageName: node + linkType: hard + +"nopt@npm:^7.0.0": + version: 7.2.0 + resolution: "nopt@npm:7.2.0" + dependencies: + abbrev: "npm:^2.0.0" + bin: + nopt: bin/nopt.js + checksum: 10c0/9bd7198df6f16eb29ff16892c77bcf7f0cc41f9fb5c26280ac0def2cf8cf319f3b821b3af83eba0e74c85807cc430a16efe0db58fe6ae1f41e69519f585b6aff + languageName: node + linkType: hard + +"normalize-path@npm:^3.0.0": + version: 3.0.0 + resolution: "normalize-path@npm:3.0.0" + checksum: 10c0/e008c8142bcc335b5e38cf0d63cfd39d6cf2d97480af9abdbe9a439221fd4d749763bab492a8ee708ce7a194bb00c9da6d0a115018672310850489137b3da046 + languageName: node + linkType: hard + +"object-assign@npm:^4.0.1": + version: 4.1.1 + resolution: "object-assign@npm:4.1.1" + checksum: 10c0/1f4df9945120325d041ccf7b86f31e8bcc14e73d29171e37a7903050e96b81323784ec59f93f102ec635bcf6fa8034ba3ea0a8c7e69fa202b87ae3b6cec5a414 + languageName: node + linkType: hard + +"object-keys@npm:^1.1.1": + version: 1.1.1 + resolution: "object-keys@npm:1.1.1" + checksum: 10c0/b11f7ccdbc6d406d1f186cdadb9d54738e347b2692a14439ca5ac70c225fa6db46db809711b78589866d47b25fc3e8dee0b4c722ac751e11180f9380e3d8601d + languageName: node + linkType: hard + +"once@npm:^1.3.0, once@npm:^1.4.0": + version: 1.4.0 + resolution: "once@npm:1.4.0" + dependencies: + wrappy: "npm:1" + checksum: 10c0/5d48aca287dfefabd756621c5dfce5c91a549a93e9fdb7b8246bc4c4790aa2ec17b34a260530474635147aeb631a2dcc8b32c613df0675f96041cbb8244517d0 + languageName: node + linkType: hard + +"onetime@npm:^2.0.0": + version: 2.0.1 + resolution: "onetime@npm:2.0.1" + dependencies: + mimic-fn: "npm:^1.0.0" + checksum: 10c0/b4e44a8c34e70e02251bfb578a6e26d6de6eedbed106cd78211d2fd64d28b6281d54924696554e4e966559644243753ac5df73c87f283b0927533d3315696215 + languageName: node + linkType: hard + +"os-tmpdir@npm:~1.0.2": + version: 1.0.2 + resolution: "os-tmpdir@npm:1.0.2" + checksum: 10c0/f438450224f8e2687605a8dd318f0db694b6293c5d835ae509a69e97c8de38b6994645337e5577f5001115470414638978cc49da1cdcc25106dad8738dc69990 + languageName: node + linkType: hard + +"p-limit@npm:^2.2.0": + version: 2.3.0 + resolution: "p-limit@npm:2.3.0" + dependencies: + p-try: "npm:^2.0.0" + checksum: 10c0/8da01ac53efe6a627080fafc127c873da40c18d87b3f5d5492d465bb85ec7207e153948df6b9cbaeb130be70152f874229b8242ee2be84c0794082510af97f12 + languageName: node + linkType: hard + +"p-locate@npm:^4.1.0": + version: 4.1.0 + resolution: "p-locate@npm:4.1.0" + dependencies: + p-limit: "npm:^2.2.0" + checksum: 10c0/1b476ad69ad7f6059744f343b26d51ce091508935c1dbb80c4e0a2f397ffce0ca3a1f9f5cd3c7ce19d7929a09719d5c65fe70d8ee289c3f267cd36f2881813e9 + languageName: node + linkType: hard + +"p-map@npm:^4.0.0": + version: 4.0.0 + resolution: "p-map@npm:4.0.0" + dependencies: + aggregate-error: "npm:^3.0.0" + checksum: 10c0/592c05bd6262c466ce269ff172bb8de7c6975afca9b50c975135b974e9bdaafbfe80e61aaaf5be6d1200ba08b30ead04b88cfa7e25ff1e3b93ab28c9f62a2c75 + languageName: node + linkType: hard + +"p-try@npm:^2.0.0": + version: 2.2.0 + resolution: "p-try@npm:2.2.0" + checksum: 10c0/c36c19907734c904b16994e6535b02c36c2224d433e01a2f1ab777237f4d86e6289fd5fd464850491e940379d4606ed850c03e0f9ab600b0ebddb511312e177f + languageName: node + linkType: hard + +"pako@npm:^2.0.2": + version: 2.1.0 + resolution: "pako@npm:2.1.0" + checksum: 10c0/8e8646581410654b50eb22a5dfd71159cae98145bd5086c9a7a816ec0370b5f72b4648d08674624b3870a521e6a3daffd6c2f7bc00fdefc7063c9d8232ff5116 + languageName: node + linkType: hard + +"parse-package-name@npm:1.0.0": + version: 1.0.0 + resolution: "parse-package-name@npm:1.0.0" + checksum: 10c0/ccbe57b6589784d9485cf18f1e1b2803da95df2df80d2cf91de4ccbe54af6bae18aa6f59b826bf50aa6051d439a905c7e800c5340341edc5374558e418e6defa + languageName: node + linkType: hard + +"path-exists@npm:^4.0.0": + version: 4.0.0 + resolution: "path-exists@npm:4.0.0" + checksum: 10c0/8c0bd3f5238188197dc78dced15207a4716c51cc4e3624c44fc97acf69558f5ebb9a2afff486fe1b4ee148e0c133e96c5e11a9aa5c48a3006e3467da070e5e1b + languageName: node + linkType: hard + +"path-is-absolute@npm:^1.0.0": + version: 1.0.1 + resolution: "path-is-absolute@npm:1.0.1" + checksum: 10c0/127da03c82172a2a50099cddbf02510c1791fc2cc5f7713ddb613a56838db1e8168b121a920079d052e0936c23005562059756d653b7c544c53185efe53be078 + languageName: node + linkType: hard + +"path-key@npm:^3.1.0": + version: 3.1.1 + resolution: "path-key@npm:3.1.1" + checksum: 10c0/748c43efd5a569c039d7a00a03b58eecd1d75f3999f5a28303d75f521288df4823bc057d8784eb72358b2895a05f29a070bc9f1f17d28226cc4e62494cc58c4c + languageName: node + linkType: hard + +"path-parse@npm:^1.0.7": + version: 1.0.7 + resolution: "path-parse@npm:1.0.7" + checksum: 10c0/11ce261f9d294cc7a58d6a574b7f1b935842355ec66fba3c3fd79e0f036462eaf07d0aa95bb74ff432f9afef97ce1926c720988c6a7451d8a584930ae7de86e1 + languageName: node + linkType: hard + +"path-scurry@npm:^1.10.1": + version: 1.10.1 + resolution: "path-scurry@npm:1.10.1" + dependencies: + lru-cache: "npm:^9.1.1 || ^10.0.0" + minipass: "npm:^5.0.0 || ^6.0.2 || ^7.0.0" + checksum: 10c0/e5dc78a7348d25eec61ab166317e9e9c7b46818aa2c2b9006c507a6ff48c672d011292d9662527213e558f5652ce0afcc788663a061d8b59ab495681840c0c1e + languageName: node + linkType: hard + +"pathval@npm:^1.1.1": + version: 1.1.1 + resolution: "pathval@npm:1.1.1" + checksum: 10c0/f63e1bc1b33593cdf094ed6ff5c49c1c0dc5dc20a646ca9725cc7fe7cd9995002d51d5685b9b2ec6814342935748b711bafa840f84c0bb04e38ff40a335c94dc + languageName: node + linkType: hard + +"pend@npm:~1.2.0": + version: 1.2.0 + resolution: "pend@npm:1.2.0" + checksum: 10c0/8a87e63f7a4afcfb0f9f77b39bb92374afc723418b9cb716ee4257689224171002e07768eeade4ecd0e86f1fa3d8f022994219fb45634f2dbd78c6803e452458 + languageName: node + linkType: hard + +"picocolors@npm:^1.0.0": + version: 1.0.0 + resolution: "picocolors@npm:1.0.0" + checksum: 10c0/20a5b249e331c14479d94ec6817a182fd7a5680debae82705747b2db7ec50009a5f6648d0621c561b0572703f84dbef0858abcbd5856d3c5511426afcb1961f7 + languageName: node + linkType: hard + +"picomatch@npm:^2.0.4, picomatch@npm:^2.2.3, picomatch@npm:^2.3.1": + version: 2.3.1 + resolution: "picomatch@npm:2.3.1" + checksum: 10c0/26c02b8d06f03206fc2ab8d16f19960f2ff9e81a658f831ecb656d8f17d9edc799e8364b1f4a7873e89d9702dff96204be0fa26fe4181f6843f040f819dac4be + languageName: node + linkType: hard + +"pify@npm:^2.3.0": + version: 2.3.0 + resolution: "pify@npm:2.3.0" + checksum: 10c0/551ff8ab830b1052633f59cb8adc9ae8407a436e06b4a9718bcb27dc5844b83d535c3a8512b388b6062af65a98c49bdc0dd523d8b2617b188f7c8fee457158dc + languageName: node + linkType: hard + +"pify@npm:^3.0.0": + version: 3.0.0 + resolution: "pify@npm:3.0.0" + checksum: 10c0/fead19ed9d801f1b1fcd0638a1ac53eabbb0945bf615f2f8806a8b646565a04a1b0e7ef115c951d225f042cca388fdc1cd3add46d10d1ed6951c20bd2998af10 + languageName: node + linkType: hard + +"pinkie-promise@npm:^2.0.0": + version: 2.0.1 + resolution: "pinkie-promise@npm:2.0.1" + dependencies: + pinkie: "npm:^2.0.0" + checksum: 10c0/11b5e5ce2b090c573f8fad7b517cbca1bb9a247587306f05ae71aef6f9b2cd2b923c304aa9663c2409cfde27b367286179f1379bc4ec18a3fbf2bb0d473b160a + languageName: node + linkType: hard + +"pinkie@npm:^2.0.0": + version: 2.0.4 + resolution: "pinkie@npm:2.0.4" + checksum: 10c0/25228b08b5597da42dc384221aa0ce56ee0fbf32965db12ba838e2a9ca0193c2f0609c45551ee077ccd2060bf109137fdb185b00c6d7e0ed7e35006d20fdcbc6 + languageName: node + linkType: hard + +"pirates@npm:^4.0.4": + version: 4.0.6 + resolution: "pirates@npm:4.0.6" + checksum: 10c0/00d5fa51f8dded94d7429700fb91a0c1ead00ae2c7fd27089f0c5b63e6eca36197fe46384631872690a66f390c5e27198e99006ab77ae472692ab9c2ca903f36 + languageName: node + linkType: hard + +"prettier@npm:^2.6.2": + version: 2.8.8 + resolution: "prettier@npm:2.8.8" + bin: + prettier: bin-prettier.js + checksum: 10c0/463ea8f9a0946cd5b828d8cf27bd8b567345cf02f56562d5ecde198b91f47a76b7ac9eae0facd247ace70e927143af6135e8cf411986b8cb8478784a4d6d724a + languageName: node + linkType: hard + +"proc-log@npm:^3.0.0": + version: 3.0.0 + resolution: "proc-log@npm:3.0.0" + checksum: 10c0/f66430e4ff947dbb996058f6fd22de2c66612ae1a89b097744e17fb18a4e8e7a86db99eda52ccf15e53f00b63f4ec0b0911581ff2aac0355b625c8eac509b0dc + languageName: node + linkType: hard + +"process-nextick-args@npm:~2.0.0": + version: 2.0.1 + resolution: "process-nextick-args@npm:2.0.1" + checksum: 10c0/bec089239487833d46b59d80327a1605e1c5287eaad770a291add7f45fda1bb5e28b38e0e061add0a1d0ee0984788ce74fa394d345eed1c420cacf392c554367 + languageName: node + linkType: hard + +"promise-retry@npm:^2.0.1": + version: 2.0.1 + resolution: "promise-retry@npm:2.0.1" + dependencies: + err-code: "npm:^2.0.2" + retry: "npm:^0.12.0" + checksum: 10c0/9c7045a1a2928094b5b9b15336dcd2a7b1c052f674550df63cc3f36cd44028e5080448175b6f6ca32b642de81150f5e7b1a98b728f15cb069f2dd60ac2616b96 + languageName: node + linkType: hard + +"protobufjs@npm:^6.8.8": + version: 6.11.4 + resolution: "protobufjs@npm:6.11.4" + dependencies: + "@protobufjs/aspromise": "npm:^1.1.2" + "@protobufjs/base64": "npm:^1.1.2" + "@protobufjs/codegen": "npm:^2.0.4" + "@protobufjs/eventemitter": "npm:^1.1.0" + "@protobufjs/fetch": "npm:^1.1.0" + "@protobufjs/float": "npm:^1.0.2" + "@protobufjs/inquire": "npm:^1.1.0" + "@protobufjs/path": "npm:^1.1.2" + "@protobufjs/pool": "npm:^1.1.0" + "@protobufjs/utf8": "npm:^1.1.0" + "@types/long": "npm:^4.0.1" + "@types/node": "npm:>=13.7.0" + long: "npm:^4.0.0" + bin: + pbjs: bin/pbjs + pbts: bin/pbts + checksum: 10c0/c244d7b9b6d3258193da5c0d1e558dfb47f208ae345e209f90ec45c9dca911b90fa17e937892a9a39a4136ab9886981aae9efdf6039f7baff4f7225f5eeb9812 + languageName: node + linkType: hard + +"proxy-from-env@npm:^1.1.0": + version: 1.1.0 + resolution: "proxy-from-env@npm:1.1.0" + checksum: 10c0/fe7dd8b1bdbbbea18d1459107729c3e4a2243ca870d26d34c2c1bcd3e4425b7bcc5112362df2d93cc7fb9746f6142b5e272fd1cc5c86ddf8580175186f6ad42b + languageName: node + linkType: hard + +"readable-stream@npm:^2.3.0, readable-stream@npm:^2.3.5": + version: 2.3.8 + resolution: "readable-stream@npm:2.3.8" + dependencies: + core-util-is: "npm:~1.0.0" + inherits: "npm:~2.0.3" + isarray: "npm:~1.0.0" + process-nextick-args: "npm:~2.0.0" + safe-buffer: "npm:~5.1.1" + string_decoder: "npm:~1.1.1" + util-deprecate: "npm:~1.0.1" + checksum: 10c0/7efdb01f3853bc35ac62ea25493567bf588773213f5f4a79f9c365e1ad13bab845ac0dae7bc946270dc40c3929483228415e92a3fc600cc7e4548992f41ee3fa + languageName: node + linkType: hard + +"readline@npm:^1.3.0": + version: 1.3.0 + resolution: "readline@npm:1.3.0" + checksum: 10c0/7404c9edc3fd29430221ef1830867c8d87e50612e4ce70f84ecd55686f7db1c81d67c6a4dcb407839f4c459ad05dd34524a2c7a97681e91878367c68d0e38665 + languageName: node + linkType: hard + +"readonly-date@npm:^1.0.0": + version: 1.0.0 + resolution: "readonly-date@npm:1.0.0" + checksum: 10c0/7ab32bf19f6bfec102584a524fa79a289e6ede0bf20c80fd90ab309962e45b71d19dd0e3915dff6e81edf226f08fda65e890539b4aca74668921790b10471356 + languageName: node + linkType: hard + +"rechoir@npm:^0.6.2": + version: 0.6.2 + resolution: "rechoir@npm:0.6.2" + dependencies: + resolve: "npm:^1.1.6" + checksum: 10c0/22c4bb32f4934a9468468b608417194f7e3ceba9a508512125b16082c64f161915a28467562368eeb15dc16058eb5b7c13a20b9eb29ff9927d1ebb3b5aa83e84 + languageName: node + linkType: hard + +"reflect-metadata@npm:^0.1.13": + version: 0.1.14 + resolution: "reflect-metadata@npm:0.1.14" + checksum: 10c0/3a6190c7f6cb224f26a012d11f9e329360c01c1945e2cbefea23976a8bacf9db6b794aeb5bf18adcb673c448a234fbc06fc41853c00a6c206b30f0777ecf019e + languageName: node + linkType: hard + +"regenerate-unicode-properties@npm:^10.1.0": + version: 10.1.1 + resolution: "regenerate-unicode-properties@npm:10.1.1" + dependencies: + regenerate: "npm:^1.4.2" + checksum: 10c0/89adb5ee5ba081380c78f9057c02e156a8181969f6fcca72451efc45612e0c3df767b4333f8d8479c274d9c6fe52ec4854f0d8a22ef95dccbe87da8e5f2ac77d + languageName: node + linkType: hard + +"regenerate@npm:^1.4.2": + version: 1.4.2 + resolution: "regenerate@npm:1.4.2" + checksum: 10c0/f73c9eba5d398c818edc71d1c6979eaa05af7a808682749dd079f8df2a6d91a9b913db216c2c9b03e0a8ba2bba8701244a93f45211afbff691c32c7b275db1b8 + languageName: node + linkType: hard + +"regenerator-runtime@npm:^0.14.0": + version: 0.14.1 + resolution: "regenerator-runtime@npm:0.14.1" + checksum: 10c0/1b16eb2c4bceb1665c89de70dcb64126a22bc8eb958feef3cd68fe11ac6d2a4899b5cd1b80b0774c7c03591dc57d16631a7f69d2daa2ec98100e2f29f7ec4cc4 + languageName: node + linkType: hard + +"regenerator-transform@npm:^0.15.2": + version: 0.15.2 + resolution: "regenerator-transform@npm:0.15.2" + dependencies: + "@babel/runtime": "npm:^7.8.4" + checksum: 10c0/7cfe6931ec793269701994a93bab89c0cc95379191fad866270a7fea2adfec67ea62bb5b374db77058b60ba4509319d9b608664d0d288bd9989ca8dbd08fae90 + languageName: node + linkType: hard + +"regexpu-core@npm:^5.3.1": + version: 5.3.2 + resolution: "regexpu-core@npm:5.3.2" + dependencies: + "@babel/regjsgen": "npm:^0.8.0" + regenerate: "npm:^1.4.2" + regenerate-unicode-properties: "npm:^10.1.0" + regjsparser: "npm:^0.9.1" + unicode-match-property-ecmascript: "npm:^2.0.0" + unicode-match-property-value-ecmascript: "npm:^2.1.0" + checksum: 10c0/7945d5ab10c8bbed3ca383d4274687ea825aee4ab93a9c51c6e31e1365edd5ea807f6908f800ba017b66c462944ba68011164e7055207747ab651f8111ef3770 + languageName: node + linkType: hard + +"regjsparser@npm:^0.9.1": + version: 0.9.1 + resolution: "regjsparser@npm:0.9.1" + dependencies: + jsesc: "npm:~0.5.0" + bin: + regjsparser: bin/parser + checksum: 10c0/fe44fcf19a99fe4f92809b0b6179530e5ef313ff7f87df143b08ce9a2eb3c4b6189b43735d645be6e8f4033bfb015ed1ca54f0583bc7561bed53fd379feb8225 + languageName: node + linkType: hard + +"resolve-from@npm:^5.0.0": + version: 5.0.0 + resolution: "resolve-from@npm:5.0.0" + checksum: 10c0/b21cb7f1fb746de8107b9febab60095187781137fd803e6a59a76d421444b1531b641bba5857f5dc011974d8a5c635d61cec49e6bd3b7fc20e01f0fafc4efbf2 + languageName: node + linkType: hard + +"resolve-pkg-maps@npm:^1.0.0": + version: 1.0.0 + resolution: "resolve-pkg-maps@npm:1.0.0" + checksum: 10c0/fb8f7bbe2ca281a73b7ef423a1cbc786fb244bd7a95cbe5c3fba25b27d327150beca8ba02f622baea65919a57e061eb5005204daa5f93ed590d9b77463a567ab + languageName: node + linkType: hard + +"resolve@npm:^1.1.6, resolve@npm:^1.14.2": + version: 1.22.8 + resolution: "resolve@npm:1.22.8" + dependencies: + is-core-module: "npm:^2.13.0" + path-parse: "npm:^1.0.7" + supports-preserve-symlinks-flag: "npm:^1.0.0" + bin: + resolve: bin/resolve + checksum: 10c0/07e179f4375e1fd072cfb72ad66d78547f86e6196c4014b31cb0b8bb1db5f7ca871f922d08da0fbc05b94e9fd42206f819648fa3b5b873ebbc8e1dc68fec433a + languageName: node + linkType: hard + +"resolve@patch:resolve@npm%3A^1.1.6#optional!builtin, resolve@patch:resolve@npm%3A^1.14.2#optional!builtin": + version: 1.22.8 + resolution: "resolve@patch:resolve@npm%3A1.22.8#optional!builtin::version=1.22.8&hash=c3c19d" + dependencies: + is-core-module: "npm:^2.13.0" + path-parse: "npm:^1.0.7" + supports-preserve-symlinks-flag: "npm:^1.0.0" + bin: + resolve: bin/resolve + checksum: 10c0/0446f024439cd2e50c6c8fa8ba77eaa8370b4180f401a96abf3d1ebc770ac51c1955e12764cde449fde3fff480a61f84388e3505ecdbab778f4bef5f8212c729 + languageName: node + linkType: hard + +"restore-cursor@npm:^2.0.0": + version: 2.0.0 + resolution: "restore-cursor@npm:2.0.0" + dependencies: + onetime: "npm:^2.0.0" + signal-exit: "npm:^3.0.2" + checksum: 10c0/f5b335bee06f440445e976a7031a3ef53691f9b7c4a9d42a469a0edaf8a5508158a0d561ff2b26a1f4f38783bcca2c0e5c3a44f927326f6694d5b44d7a4993e6 + languageName: node + linkType: hard + +"retry@npm:^0.12.0": + version: 0.12.0 + resolution: "retry@npm:0.12.0" + checksum: 10c0/59933e8501727ba13ad73ef4a04d5280b3717fd650408460c987392efe9d7be2040778ed8ebe933c5cbd63da3dcc37919c141ef8af0a54a6e4fca5a2af177bfe + languageName: node + linkType: hard + +"rimraf@npm:3.0.2": + version: 3.0.2 + resolution: "rimraf@npm:3.0.2" + dependencies: + glob: "npm:^7.1.3" + bin: + rimraf: bin.js + checksum: 10c0/9cb7757acb489bd83757ba1a274ab545eafd75598a9d817e0c3f8b164238dd90eba50d6b848bd4dcc5f3040912e882dc7ba71653e35af660d77b25c381d402e8 + languageName: node + linkType: hard + +"rpc-websockets@npm:^7.5.1": + version: 7.9.0 + resolution: "rpc-websockets@npm:7.9.0" + dependencies: + "@babel/runtime": "npm:^7.17.2" + bufferutil: "npm:^4.0.1" + eventemitter3: "npm:^4.0.7" + utf-8-validate: "npm:^5.0.2" + uuid: "npm:^8.3.2" + ws: "npm:^8.5.0" + dependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + checksum: 10c0/f614b4e79fee18a93228868d7b0cd15ab1dd26f56deddd7a2191432a744f771dad57ba2c217a8d4d596c565b4aa524637fce0a0163fea6151df8fc002f0a3207 + languageName: node + linkType: hard + +"run-async@npm:^2.2.0, run-async@npm:^2.3.0": + version: 2.4.1 + resolution: "run-async@npm:2.4.1" + checksum: 10c0/35a68c8f1d9664f6c7c2e153877ca1d6e4f886e5ca067c25cdd895a6891ff3a1466ee07c63d6a9be306e9619ff7d509494e6d9c129516a36b9fd82263d579ee1 + languageName: node + linkType: hard + +"rx-lite-aggregates@npm:^4.0.8": + version: 4.0.8 + resolution: "rx-lite-aggregates@npm:4.0.8" + dependencies: + rx-lite: "npm:*" + checksum: 10c0/e21f95feca7e63b861fd711a980924cbaa9cb8ebc4786c7cbc287e153d5e96fbd48c0a8a978e53594174d4a68d5d2263b823a2b975c80a955f5748eb59cdec60 + languageName: node + linkType: hard + +"rx-lite@npm:*, rx-lite@npm:^4.0.8": + version: 4.0.8 + resolution: "rx-lite@npm:4.0.8" + checksum: 10c0/a3e76e3a6471347855196e30450bc500f7b1becfdbb0f3d58b1f1d5d6f89165a159e8549b4403084023de99938d67f43a3319c92b1b46c3fd8d7318ecce42c79 + languageName: node + linkType: hard + +"rxjs@npm:^6.4.0": + version: 6.6.7 + resolution: "rxjs@npm:6.6.7" + dependencies: + tslib: "npm:^1.9.0" + checksum: 10c0/e556a13a9aa89395e5c9d825eabcfa325568d9c9990af720f3f29f04a888a3b854f25845c2b55875d875381abcae2d8100af9cacdc57576e7ed6be030a01d2fe + languageName: node + linkType: hard + +"safe-buffer@npm:^5.0.1, safe-buffer@npm:^5.1.1": + version: 5.2.1 + resolution: "safe-buffer@npm:5.2.1" + checksum: 10c0/6501914237c0a86e9675d4e51d89ca3c21ffd6a31642efeba25ad65720bce6921c9e7e974e5be91a786b25aa058b5303285d3c15dbabf983a919f5f630d349f3 + languageName: node + linkType: hard + +"safe-buffer@npm:~5.1.0, safe-buffer@npm:~5.1.1": + version: 5.1.2 + resolution: "safe-buffer@npm:5.1.2" + checksum: 10c0/780ba6b5d99cc9a40f7b951d47152297d0e260f0df01472a1b99d4889679a4b94a13d644f7dbc4f022572f09ae9005fa2fbb93bbbd83643316f365a3e9a45b21 + languageName: node + linkType: hard + +"safer-buffer@npm:>= 2.1.2 < 3, safer-buffer@npm:>= 2.1.2 < 3.0.0": + version: 2.1.2 + resolution: "safer-buffer@npm:2.1.2" + checksum: 10c0/7e3c8b2e88a1841c9671094bbaeebd94448111dd90a81a1f606f3f67708a6ec57763b3b47f06da09fc6054193e0e6709e77325415dc8422b04497a8070fa02d4 + languageName: node + linkType: hard + +"scrypt-js@npm:3.0.1": + version: 3.0.1 + resolution: "scrypt-js@npm:3.0.1" + checksum: 10c0/e2941e1c8b5c84c7f3732b0153fee624f5329fc4e772a06270ee337d4d2df4174b8abb5e6ad53804a29f53890ecbc78f3775a319323568c0313040c0e55f5b10 + languageName: node + linkType: hard + +"seek-bzip@npm:^1.0.5": + version: 1.0.6 + resolution: "seek-bzip@npm:1.0.6" + dependencies: + commander: "npm:^2.8.1" + bin: + seek-bunzip: bin/seek-bunzip + seek-table: bin/seek-bzip-table + checksum: 10c0/e4019e4498bb725ff855603595c4116ca003674b13d29cb9ed9891b2ceec884ccf7c1cb5dba0d6b50fe6ce760a011078f5744efb79823f4ddb9decb1571e9912 + languageName: node + linkType: hard + +"semver@npm:^6.1.1, semver@npm:^6.1.2, semver@npm:^6.3.0, semver@npm:^6.3.1": + version: 6.3.1 + resolution: "semver@npm:6.3.1" + bin: + semver: bin/semver.js + checksum: 10c0/e3d79b609071caa78bcb6ce2ad81c7966a46a7431d9d58b8800cfa9cb6a63699b3899a0e4bcce36167a284578212d9ae6942b6929ba4aa5015c079a67751d42d + languageName: node + linkType: hard + +"semver@npm:^7.3.5": + version: 7.6.0 + resolution: "semver@npm:7.6.0" + dependencies: + lru-cache: "npm:^6.0.0" + bin: + semver: bin/semver.js + checksum: 10c0/fbfe717094ace0aa8d6332d7ef5ce727259815bd8d8815700853f4faf23aacbd7192522f0dc5af6df52ef4fa85a355ebd2f5d39f554bd028200d6cf481ab9b53 + languageName: node + linkType: hard + +"shebang-command@npm:^2.0.0": + version: 2.0.0 + resolution: "shebang-command@npm:2.0.0" + dependencies: + shebang-regex: "npm:^3.0.0" + checksum: 10c0/a41692e7d89a553ef21d324a5cceb5f686d1f3c040759c50aab69688634688c5c327f26f3ecf7001ebfd78c01f3c7c0a11a7c8bfd0a8bc9f6240d4f40b224e4e + languageName: node + linkType: hard + +"shebang-regex@npm:^3.0.0": + version: 3.0.0 + resolution: "shebang-regex@npm:3.0.0" + checksum: 10c0/1dbed0726dd0e1152a92696c76c7f06084eb32a90f0528d11acd764043aacf76994b2fb30aa1291a21bd019d6699164d048286309a278855ee7bec06cf6fb690 + languageName: node + linkType: hard + +"shelljs@npm:0.8.5": + version: 0.8.5 + resolution: "shelljs@npm:0.8.5" + dependencies: + glob: "npm:^7.0.0" + interpret: "npm:^1.0.0" + rechoir: "npm:^0.6.2" + bin: + shjs: bin/shjs + checksum: 10c0/feb25289a12e4bcd04c40ddfab51aff98a3729f5c2602d5b1a1b95f6819ec7804ac8147ebd8d9a85dfab69d501bcf92d7acef03247320f51c1552cec8d8e2382 + languageName: node + linkType: hard + +"signal-exit@npm:^3.0.2, signal-exit@npm:^3.0.7": + version: 3.0.7 + resolution: "signal-exit@npm:3.0.7" + checksum: 10c0/25d272fa73e146048565e08f3309d5b942c1979a6f4a58a8c59d5fa299728e9c2fcd1a759ec870863b1fd38653670240cd420dad2ad9330c71f36608a6a1c912 + languageName: node + linkType: hard + +"signal-exit@npm:^4.0.1": + version: 4.1.0 + resolution: "signal-exit@npm:4.1.0" + checksum: 10c0/41602dce540e46d599edba9d9860193398d135f7ff72cab629db5171516cfae628d21e7bfccde1bbfdf11c48726bc2a6d1a8fb8701125852fbfda7cf19c6aa83 + languageName: node + linkType: hard + +"slash@npm:^3.0.0": + version: 3.0.0 + resolution: "slash@npm:3.0.0" + checksum: 10c0/e18488c6a42bdfd4ac5be85b2ced3ccd0224773baae6ad42cfbb9ec74fc07f9fa8396bd35ee638084ead7a2a0818eb5e7151111544d4731ce843019dab4be47b + languageName: node + linkType: hard + +"smart-buffer@npm:^4.2.0": + version: 4.2.0 + resolution: "smart-buffer@npm:4.2.0" + checksum: 10c0/a16775323e1404dd43fabafe7460be13a471e021637bc7889468eb45ce6a6b207261f454e4e530a19500cc962c4cc5348583520843b363f4193cee5c00e1e539 + languageName: node + linkType: hard + +"socks-proxy-agent@npm:^8.0.1": + version: 8.0.2 + resolution: "socks-proxy-agent@npm:8.0.2" + dependencies: + agent-base: "npm:^7.0.2" + debug: "npm:^4.3.4" + socks: "npm:^2.7.1" + checksum: 10c0/a842402fc9b8848a31367f2811ca3cd14c4106588b39a0901cd7a69029998adfc6456b0203617c18ed090542ad0c24ee4e9d4c75a0c4b75071e214227c177eb7 + languageName: node + linkType: hard + +"socks@npm:^2.7.1": + version: 2.8.1 + resolution: "socks@npm:2.8.1" + dependencies: + ip-address: "npm:^9.0.5" + smart-buffer: "npm:^4.2.0" + checksum: 10c0/ac77b515c260473cc7c4452f09b20939e22510ce3ae48385c516d1d5784374d5cc75be3cb18ff66cc985a7f4f2ef8fef84e984c5ec70aad58355ed59241f40a8 + languageName: node + linkType: hard + +"source-map-support@npm:^0.5.21, source-map-support@npm:^0.5.6": + version: 0.5.21 + resolution: "source-map-support@npm:0.5.21" + dependencies: + buffer-from: "npm:^1.0.0" + source-map: "npm:^0.6.0" + checksum: 10c0/9ee09942f415e0f721d6daad3917ec1516af746a8120bba7bb56278707a37f1eb8642bde456e98454b8a885023af81a16e646869975f06afc1a711fb90484e7d + languageName: node + linkType: hard + +"source-map@npm:^0.6.0": + version: 0.6.1 + resolution: "source-map@npm:0.6.1" + checksum: 10c0/ab55398007c5e5532957cb0beee2368529618ac0ab372d789806f5718123cc4367d57de3904b4e6a4170eb5a0b0f41373066d02ca0735a0c4d75c7d328d3e011 + languageName: node + linkType: hard + +"sprintf-js@npm:^1.1.3": + version: 1.1.3 + resolution: "sprintf-js@npm:1.1.3" + checksum: 10c0/09270dc4f30d479e666aee820eacd9e464215cdff53848b443964202bf4051490538e5dd1b42e1a65cf7296916ca17640aebf63dae9812749c7542ee5f288dec + languageName: node + linkType: hard + +"sprintf-js@npm:~1.0.2": + version: 1.0.3 + resolution: "sprintf-js@npm:1.0.3" + checksum: 10c0/ecadcfe4c771890140da5023d43e190b7566d9cf8b2d238600f31bec0fc653f328da4450eb04bd59a431771a8e9cc0e118f0aa3974b683a4981b4e07abc2a5bb + languageName: node + linkType: hard + +"ssri@npm:^10.0.0": + version: 10.0.5 + resolution: "ssri@npm:10.0.5" + dependencies: + minipass: "npm:^7.0.3" + checksum: 10c0/b091f2ae92474183c7ac5ed3f9811457e1df23df7a7e70c9476eaa9a0c4a0c8fc190fb45acefbf023ca9ee864dd6754237a697dc52a0fb182afe65d8e77443d8 + languageName: node + linkType: hard + +"string-width-cjs@npm:string-width@^4.2.0, string-width@npm:^4.1.0": + version: 4.2.3 + resolution: "string-width@npm:4.2.3" + dependencies: + emoji-regex: "npm:^8.0.0" + is-fullwidth-code-point: "npm:^3.0.0" + strip-ansi: "npm:^6.0.1" + checksum: 10c0/1e525e92e5eae0afd7454086eed9c818ee84374bb80328fc41217ae72ff5f065ef1c9d7f72da41de40c75fa8bb3dee63d92373fd492c84260a552c636392a47b + languageName: node + linkType: hard + +"string-width@npm:^2.0.0, string-width@npm:^2.1.0": + version: 2.1.1 + resolution: "string-width@npm:2.1.1" + dependencies: + is-fullwidth-code-point: "npm:^2.0.0" + strip-ansi: "npm:^4.0.0" + checksum: 10c0/e5f2b169fcf8a4257a399f95d069522f056e92ec97dbdcb9b0cdf14d688b7ca0b1b1439a1c7b9773cd79446cbafd582727279d6bfdd9f8edd306ea5e90e5b610 + languageName: node + linkType: hard + +"string-width@npm:^5.0.1, string-width@npm:^5.1.2": + version: 5.1.2 + resolution: "string-width@npm:5.1.2" + dependencies: + eastasianwidth: "npm:^0.2.0" + emoji-regex: "npm:^9.2.2" + strip-ansi: "npm:^7.0.1" + checksum: 10c0/ab9c4264443d35b8b923cbdd513a089a60de339216d3b0ed3be3ba57d6880e1a192b70ae17225f764d7adbf5994e9bb8df253a944736c15a0240eff553c678ca + languageName: node + linkType: hard + +"string_decoder@npm:~1.1.1": + version: 1.1.1 + resolution: "string_decoder@npm:1.1.1" + dependencies: + safe-buffer: "npm:~5.1.0" + checksum: 10c0/b4f89f3a92fd101b5653ca3c99550e07bdf9e13b35037e9e2a1c7b47cec4e55e06ff3fc468e314a0b5e80bfbaf65c1ca5a84978764884ae9413bec1fc6ca924e + languageName: node + linkType: hard + +"strip-ansi-cjs@npm:strip-ansi@^6.0.1, strip-ansi@npm:^6.0.0, strip-ansi@npm:^6.0.1": + version: 6.0.1 + resolution: "strip-ansi@npm:6.0.1" + dependencies: + ansi-regex: "npm:^5.0.1" + checksum: 10c0/1ae5f212a126fe5b167707f716942490e3933085a5ff6c008ab97ab2f272c8025d3aa218b7bd6ab25729ca20cc81cddb252102f8751e13482a5199e873680952 + languageName: node + linkType: hard + +"strip-ansi@npm:^3.0.0": + version: 3.0.1 + resolution: "strip-ansi@npm:3.0.1" + dependencies: + ansi-regex: "npm:^2.0.0" + checksum: 10c0/f6e7fbe8e700105dccf7102eae20e4f03477537c74b286fd22cfc970f139002ed6f0d9c10d0e21aa9ed9245e0fa3c9275930e8795c5b947da136e4ecb644a70f + languageName: node + linkType: hard + +"strip-ansi@npm:^4.0.0": + version: 4.0.0 + resolution: "strip-ansi@npm:4.0.0" + dependencies: + ansi-regex: "npm:^3.0.0" + checksum: 10c0/d75d9681e0637ea316ddbd7d4d3be010b1895a17e885155e0ed6a39755ae0fd7ef46e14b22162e66a62db122d3a98ab7917794e255532ab461bb0a04feb03e7d + languageName: node + linkType: hard + +"strip-ansi@npm:^5.1.0": + version: 5.2.0 + resolution: "strip-ansi@npm:5.2.0" + dependencies: + ansi-regex: "npm:^4.1.0" + checksum: 10c0/de4658c8a097ce3b15955bc6008f67c0790f85748bdc025b7bc8c52c7aee94bc4f9e50624516150ed173c3db72d851826cd57e7a85fe4e4bb6dbbebd5d297fdf + languageName: node + linkType: hard + +"strip-ansi@npm:^7.0.1": + version: 7.1.0 + resolution: "strip-ansi@npm:7.1.0" + dependencies: + ansi-regex: "npm:^6.0.1" + checksum: 10c0/a198c3762e8832505328cbf9e8c8381de14a4fa50a4f9b2160138158ea88c0f5549fb50cb13c651c3088f47e63a108b34622ec18c0499b6c8c3a5ddf6b305ac4 + languageName: node + linkType: hard + +"strip-dirs@npm:^2.0.0": + version: 2.1.0 + resolution: "strip-dirs@npm:2.1.0" + dependencies: + is-natural-number: "npm:^4.0.1" + checksum: 10c0/073d6d08331ec2e87afc2c2535d7336fee1d63797384045e4ecb9908a5ac6615022ee000cc278d6bbc94147bed7350f7cf4657b6d18c377813f37e7ae329fb52 + languageName: node + linkType: hard + +"superstruct@npm:^0.14.2": + version: 0.14.2 + resolution: "superstruct@npm:0.14.2" + checksum: 10c0/e5518f6701524fb8cbae504a84dc9c304bf3fe01616230a5eb4e14af9bfc4e3518b94bfe457e57a5d1b99a2b54f82881b4a39e0b266caa6053f84aa294613b94 + languageName: node + linkType: hard + +"supports-color@npm:^2.0.0": + version: 2.0.0 + resolution: "supports-color@npm:2.0.0" + checksum: 10c0/570e0b63be36cccdd25186350a6cb2eaad332a95ff162fa06d9499982315f2fe4217e69dd98e862fbcd9c81eaff300a825a1fe7bf5cc752e5b84dfed042b0dda + languageName: node + linkType: hard + +"supports-color@npm:^5.3.0": + version: 5.5.0 + resolution: "supports-color@npm:5.5.0" + dependencies: + has-flag: "npm:^3.0.0" + checksum: 10c0/6ae5ff319bfbb021f8a86da8ea1f8db52fac8bd4d499492e30ec17095b58af11f0c55f8577390a749b1c4dde691b6a0315dab78f5f54c9b3d83f8fb5905c1c05 + languageName: node + linkType: hard + +"supports-color@npm:^7.1.0": + version: 7.2.0 + resolution: "supports-color@npm:7.2.0" + dependencies: + has-flag: "npm:^4.0.0" + checksum: 10c0/afb4c88521b8b136b5f5f95160c98dee7243dc79d5432db7efc27efb219385bbc7d9427398e43dd6cc730a0f87d5085ce1652af7efbe391327bc0a7d0f7fc124 + languageName: node + linkType: hard + +"supports-color@npm:^8.0.0": + version: 8.1.1 + resolution: "supports-color@npm:8.1.1" + dependencies: + has-flag: "npm:^4.0.0" + checksum: 10c0/ea1d3c275dd604c974670f63943ed9bd83623edc102430c05adb8efc56ba492746b6e95386e7831b872ec3807fd89dd8eb43f735195f37b5ec343e4234cc7e89 + languageName: node + linkType: hard + +"supports-preserve-symlinks-flag@npm:^1.0.0": + version: 1.0.0 + resolution: "supports-preserve-symlinks-flag@npm:1.0.0" + checksum: 10c0/6c4032340701a9950865f7ae8ef38578d8d7053f5e10518076e6554a9381fa91bd9c6850193695c141f32b21f979c985db07265a758867bac95de05f7d8aeb39 + languageName: node + linkType: hard + +"symbol-observable@npm:^2.0.3": + version: 2.0.3 + resolution: "symbol-observable@npm:2.0.3" + checksum: 10c0/03fb8766b75bfa65a3c7d68ae1e51a13a5ff71b40d6d53b17a0c9c77b1685c20a3bfbf45547ab36214a079665c3f551e250798f6b2f83a2a40762d864ed87f78 + languageName: node + linkType: hard + +"tar-stream@npm:^1.5.2": + version: 1.6.2 + resolution: "tar-stream@npm:1.6.2" + dependencies: + bl: "npm:^1.0.0" + buffer-alloc: "npm:^1.2.0" + end-of-stream: "npm:^1.0.0" + fs-constants: "npm:^1.0.0" + readable-stream: "npm:^2.3.0" + to-buffer: "npm:^1.1.1" + xtend: "npm:^4.0.0" + checksum: 10c0/ab8528d2cc9ccd0906d1ce6d8089030b2c92a578c57645ff4971452c8c5388b34c7152c04ed64b8510d22a66ffaf0fee58bada7d6ab41ad1e816e31993d59cf3 + languageName: node + linkType: hard + +"tar@npm:^6.1.11, tar@npm:^6.1.2": + version: 6.2.0 + resolution: "tar@npm:6.2.0" + dependencies: + chownr: "npm:^2.0.0" + fs-minipass: "npm:^2.0.0" + minipass: "npm:^5.0.0" + minizlib: "npm:^2.1.1" + mkdirp: "npm:^1.0.3" + yallist: "npm:^4.0.0" + checksum: 10c0/02ca064a1a6b4521fef88c07d389ac0936730091f8c02d30ea60d472e0378768e870769ab9e986d87807bfee5654359cf29ff4372746cc65e30cbddc352660d8 + languageName: node + linkType: hard + +"test-exclude@npm:^6.0.0": + version: 6.0.0 + resolution: "test-exclude@npm:6.0.0" + dependencies: + "@istanbuljs/schema": "npm:^0.1.2" + glob: "npm:^7.1.4" + minimatch: "npm:^3.0.4" + checksum: 10c0/019d33d81adff3f9f1bfcff18125fb2d3c65564f437d9be539270ee74b994986abb8260c7c2ce90e8f30162178b09dbbce33c6389273afac4f36069c48521f57 + languageName: node + linkType: hard + +"text-encoding-utf-8@npm:^1.0.2": + version: 1.0.2 + resolution: "text-encoding-utf-8@npm:1.0.2" + checksum: 10c0/87a64b394c850e8387c2ca7fc6929a26ce97fb598f1c55cd0fdaec4b8e2c3ed6770f65b2f3309c9175ef64ac5e403c8e48b53ceeb86d2897940c5e19cc00bb99 + languageName: node + linkType: hard + +"thenify-all@npm:^1.0.0": + version: 1.6.0 + resolution: "thenify-all@npm:1.6.0" + dependencies: + thenify: "npm:>= 3.1.0 < 4" + checksum: 10c0/9b896a22735e8122754fe70f1d65f7ee691c1d70b1f116fda04fea103d0f9b356e3676cb789506e3909ae0486a79a476e4914b0f92472c2e093d206aed4b7d6b + languageName: node + linkType: hard + +"thenify@npm:>= 3.1.0 < 4": + version: 3.3.1 + resolution: "thenify@npm:3.3.1" + dependencies: + any-promise: "npm:^1.0.0" + checksum: 10c0/f375aeb2b05c100a456a30bc3ed07ef03a39cbdefe02e0403fb714b8c7e57eeaad1a2f5c4ecfb9ce554ce3db9c2b024eba144843cd9e344566d9fcee73b04767 + languageName: node + linkType: hard + +"through@npm:>=2.2.7 <3, through@npm:^2.3.6, through@npm:^2.3.8": + version: 2.3.8 + resolution: "through@npm:2.3.8" + checksum: 10c0/4b09f3774099de0d4df26d95c5821a62faee32c7e96fb1f4ebd54a2d7c11c57fe88b0a0d49cf375de5fee5ae6bf4eb56dbbf29d07366864e2ee805349970d3cc + languageName: node + linkType: hard + +"timers-ext@npm:^0.1.7": + version: 0.1.7 + resolution: "timers-ext@npm:0.1.7" + dependencies: + es5-ext: "npm:~0.10.46" + next-tick: "npm:1" + checksum: 10c0/fc43c6a01f52875e57d301ae9ec47b3021c6d9b96de5bc6e4e5fc4a3d2b25ebaab69faf6fe85520efbef0ad784537748f88f7efd7b6b2bf0a177c8bc7a66ca7c + languageName: node + linkType: hard + +"tmp@npm:^0.0.33": + version: 0.0.33 + resolution: "tmp@npm:0.0.33" + dependencies: + os-tmpdir: "npm:~1.0.2" + checksum: 10c0/69863947b8c29cabad43fe0ce65cec5bb4b481d15d4b4b21e036b060b3edbf3bc7a5541de1bacb437bb3f7c4538f669752627fdf9b4aaf034cebd172ba373408 + languageName: node + linkType: hard + +"tmpl@npm:1.0.5": + version: 1.0.5 + resolution: "tmpl@npm:1.0.5" + checksum: 10c0/f935537799c2d1922cb5d6d3805f594388f75338fe7a4a9dac41504dd539704ca4db45b883b52e7b0aa5b2fd5ddadb1452bf95cd23a69da2f793a843f9451cc9 + languageName: node + linkType: hard + +"to-buffer@npm:^1.1.1": + version: 1.1.1 + resolution: "to-buffer@npm:1.1.1" + checksum: 10c0/fb9fc6a0103f2b06e2e01c3d291586d0148759d5584f35d0973376434d1b58bd6ee5df9273f0bb1190eb2a5747c894bf49fed571325a7ac10208a48f31736439 + languageName: node + linkType: hard + +"to-fast-properties@npm:^2.0.0": + version: 2.0.0 + resolution: "to-fast-properties@npm:2.0.0" + checksum: 10c0/b214d21dbfb4bce3452b6244b336806ffea9c05297148d32ebb428d5c43ce7545bdfc65a1ceb58c9ef4376a65c0cb2854d645f33961658b3e3b4f84910ddcdd7 + languageName: node + linkType: hard + +"to-regex-range@npm:^5.0.1": + version: 5.0.1 + resolution: "to-regex-range@npm:5.0.1" + dependencies: + is-number: "npm:^7.0.0" + checksum: 10c0/487988b0a19c654ff3e1961b87f471702e708fa8a8dd02a298ef16da7206692e8552a0250e8b3e8759270f62e9d8314616f6da274734d3b558b1fc7b7724e892 + languageName: node + linkType: hard + +"tr46@npm:~0.0.3": + version: 0.0.3 + resolution: "tr46@npm:0.0.3" + checksum: 10c0/047cb209a6b60c742f05c9d3ace8fa510bff609995c129a37ace03476a9b12db4dbf975e74600830ef0796e18882b2381fb5fb1f6b4f96b832c374de3ab91a11 + languageName: node + linkType: hard + +"ts-node@npm:^10.9.1": + version: 10.9.2 + resolution: "ts-node@npm:10.9.2" + dependencies: + "@cspotcode/source-map-support": "npm:^0.8.0" + "@tsconfig/node10": "npm:^1.0.7" + "@tsconfig/node12": "npm:^1.0.7" + "@tsconfig/node14": "npm:^1.0.0" + "@tsconfig/node16": "npm:^1.0.2" + acorn: "npm:^8.4.1" + acorn-walk: "npm:^8.1.1" + arg: "npm:^4.1.0" + create-require: "npm:^1.1.0" + diff: "npm:^4.0.1" + make-error: "npm:^1.1.1" + v8-compile-cache-lib: "npm:^3.0.1" + yn: "npm:3.1.1" + peerDependencies: + "@swc/core": ">=1.2.50" + "@swc/wasm": ">=1.2.50" + "@types/node": "*" + typescript: ">=2.7" + peerDependenciesMeta: + "@swc/core": + optional: true + "@swc/wasm": + optional: true + bin: + ts-node: dist/bin.js + ts-node-cwd: dist/bin-cwd.js + ts-node-esm: dist/bin-esm.js + ts-node-script: dist/bin-script.js + ts-node-transpile-only: dist/bin-transpile.js + ts-script: dist/bin-script-deprecated.js + checksum: 10c0/5f29938489f96982a25ba650b64218e83a3357d76f7bede80195c65ab44ad279c8357264639b7abdd5d7e75fc269a83daa0e9c62fd8637a3def67254ecc9ddc2 + languageName: node + linkType: hard + +"ts-node@npm:^6.0.3": + version: 6.2.0 + resolution: "ts-node@npm:6.2.0" + dependencies: + arrify: "npm:^1.0.0" + buffer-from: "npm:^1.1.0" + diff: "npm:^3.1.0" + make-error: "npm:^1.1.1" + minimist: "npm:^1.2.0" + mkdirp: "npm:^0.5.1" + source-map-support: "npm:^0.5.6" + yn: "npm:^2.0.0" + bin: + ts-node: dist/bin.js + checksum: 10c0/373316eb3b5e761e8260e4a6dbd74c22d512bf72c1214d7b301e0d1f7c23d0454b00e6c88cceb4ad9f52c710a45e3686e5cb52ccefc3d05c98ea01c90a6b204c + languageName: node + linkType: hard + +"ts-yaml@npm:^1.0.0": + version: 1.0.0 + resolution: "ts-yaml@npm:1.0.0" + dependencies: + js-yaml: "npm:^3.11.0" + ts-node: "npm:^6.0.3" + checksum: 10c0/b7bc7cdf3969413a88c12229624118c6d48995300799dcb8b7f4b1581d3e0cc35dae8749b1bf779ec457215e9622ba9c8a13f40110ec1a54c6f9d724d5a71a36 + languageName: node + linkType: hard + +"tslib@npm:^1.9.0": + version: 1.14.1 + resolution: "tslib@npm:1.14.1" + checksum: 10c0/69ae09c49eea644bc5ebe1bca4fa4cc2c82b7b3e02f43b84bd891504edf66dbc6b2ec0eef31a957042de2269139e4acff911e6d186a258fb14069cd7f6febce2 + languageName: node + linkType: hard + +"tsx@npm:^3.13.0": + version: 3.14.0 + resolution: "tsx@npm:3.14.0" + dependencies: + esbuild: "npm:~0.18.20" + fsevents: "npm:~2.3.3" + get-tsconfig: "npm:^4.7.2" + source-map-support: "npm:^0.5.21" + dependenciesMeta: + fsevents: + optional: true + bin: + tsx: dist/cli.mjs + checksum: 10c0/b6c938bdae9c656aef2aa0130ee6aa8f3487b5d411d5f7934b705c28ff44ab268db3dde123cf5237b4e5e2ab4441a0bad4b1a39e3ff2170d138538e44082f05d + languageName: node + linkType: hard + +"type-detect@npm:^4.0.0, type-detect@npm:^4.0.8": + version: 4.0.8 + resolution: "type-detect@npm:4.0.8" + checksum: 10c0/8fb9a51d3f365a7de84ab7f73b653534b61b622aa6800aecdb0f1095a4a646d3f5eb295322127b6573db7982afcd40ab492d038cf825a42093a58b1e1353e0bd + languageName: node + linkType: hard + +"type@npm:^1.0.1": + version: 1.2.0 + resolution: "type@npm:1.2.0" + checksum: 10c0/444660849aaebef8cbb9bc43b28ec2068952064cfce6a646f88db97aaa2e2d6570c5629cd79238b71ba23aa3f75146a0b96e24e198210ee0089715a6f8889bf7 + languageName: node + linkType: hard + +"type@npm:^2.7.2": + version: 2.7.2 + resolution: "type@npm:2.7.2" + checksum: 10c0/84c2382788fe24e0bc3d64c0c181820048f672b0f06316aa9c7bdb373f8a09f8b5404f4e856bc4539fb931f2f08f2adc4c53f6c08c9c0314505d70c29a1289e1 + languageName: node + linkType: hard + +"typescript@npm:^5.1.6": + version: 5.3.3 + resolution: "typescript@npm:5.3.3" + bin: + tsc: bin/tsc + tsserver: bin/tsserver + checksum: 10c0/e33cef99d82573624fc0f854a2980322714986bc35b9cb4d1ce736ed182aeab78e2cb32b385efa493b2a976ef52c53e20d6c6918312353a91850e2b76f1ea44f + languageName: node + linkType: hard + +"typescript@patch:typescript@npm%3A^5.1.6#optional!builtin": + version: 5.3.3 + resolution: "typescript@patch:typescript@npm%3A5.3.3#optional!builtin::version=5.3.3&hash=e012d7" + bin: + tsc: bin/tsc + tsserver: bin/tsserver + checksum: 10c0/1d0a5f4ce496c42caa9a30e659c467c5686eae15d54b027ee7866744952547f1be1262f2d40de911618c242b510029d51d43ff605dba8fb740ec85ca2d3f9500 + languageName: node + linkType: hard + +"unbzip2-stream@npm:^1.0.9": + version: 1.4.3 + resolution: "unbzip2-stream@npm:1.4.3" + dependencies: + buffer: "npm:^5.2.1" + through: "npm:^2.3.8" + checksum: 10c0/2ea2048f3c9db3499316ccc1d95ff757017ccb6f46c812d7c42466247e3b863fb178864267482f7f178254214247779daf68e85f50bd7736c3c97ba2d58b910a + languageName: node + linkType: hard + +"undici-types@npm:~5.26.4": + version: 5.26.5 + resolution: "undici-types@npm:5.26.5" + checksum: 10c0/bb673d7876c2d411b6eb6c560e0c571eef4a01c1c19925175d16e3a30c4c428181fb8d7ae802a261f283e4166a0ac435e2f505743aa9e45d893f9a3df017b501 + languageName: node + linkType: hard + +"unicode-canonical-property-names-ecmascript@npm:^2.0.0": + version: 2.0.0 + resolution: "unicode-canonical-property-names-ecmascript@npm:2.0.0" + checksum: 10c0/0fe812641bcfa3ae433025178a64afb5d9afebc21a922dafa7cba971deebb5e4a37350423890750132a85c936c290fb988146d0b1bd86838ad4897f4fc5bd0de + languageName: node + linkType: hard + +"unicode-match-property-ecmascript@npm:^2.0.0": + version: 2.0.0 + resolution: "unicode-match-property-ecmascript@npm:2.0.0" + dependencies: + unicode-canonical-property-names-ecmascript: "npm:^2.0.0" + unicode-property-aliases-ecmascript: "npm:^2.0.0" + checksum: 10c0/4d05252cecaf5c8e36d78dc5332e03b334c6242faf7cf16b3658525441386c0a03b5f603d42cbec0f09bb63b9fd25c9b3b09667aee75463cac3efadae2cd17ec + languageName: node + linkType: hard + +"unicode-match-property-value-ecmascript@npm:^2.1.0": + version: 2.1.0 + resolution: "unicode-match-property-value-ecmascript@npm:2.1.0" + checksum: 10c0/f5b9499b9e0ffdc6027b744d528f17ec27dd7c15da03254ed06851feec47e0531f20d410910c8a49af4a6a190f4978413794c8d75ce112950b56d583b5d5c7f2 + languageName: node + linkType: hard + +"unicode-property-aliases-ecmascript@npm:^2.0.0": + version: 2.1.0 + resolution: "unicode-property-aliases-ecmascript@npm:2.1.0" + checksum: 10c0/50ded3f8c963c7785e48c510a3b7c6bc4e08a579551489aa0349680a35b1ceceec122e33b2b6c1b579d0be2250f34bb163ac35f5f8695fe10bbc67fb757f0af8 + languageName: node + linkType: hard + +"unique-filename@npm:^3.0.0": + version: 3.0.0 + resolution: "unique-filename@npm:3.0.0" + dependencies: + unique-slug: "npm:^4.0.0" + checksum: 10c0/6363e40b2fa758eb5ec5e21b3c7fb83e5da8dcfbd866cc0c199d5534c42f03b9ea9ab069769cc388e1d7ab93b4eeef28ef506ab5f18d910ef29617715101884f + languageName: node + linkType: hard + +"unique-slug@npm:^4.0.0": + version: 4.0.0 + resolution: "unique-slug@npm:4.0.0" + dependencies: + imurmurhash: "npm:^0.1.4" + checksum: 10c0/cb811d9d54eb5821b81b18205750be84cb015c20a4a44280794e915f5a0a70223ce39066781a354e872df3572e8155c228f43ff0cce94c7cbf4da2cc7cbdd635 + languageName: node + linkType: hard + +"update-browserslist-db@npm:^1.0.13": + version: 1.0.13 + resolution: "update-browserslist-db@npm:1.0.13" + dependencies: + escalade: "npm:^3.1.1" + picocolors: "npm:^1.0.0" + peerDependencies: + browserslist: ">= 4.21.0" + bin: + update-browserslist-db: cli.js + checksum: 10c0/e52b8b521c78ce1e0c775f356cd16a9c22c70d25f3e01180839c407a5dc787fb05a13f67560cbaf316770d26fa99f78f1acd711b1b54a4f35d4820d4ea7136e6 + languageName: node + linkType: hard + +"utf-8-validate@npm:^5.0.2": + version: 5.0.10 + resolution: "utf-8-validate@npm:5.0.10" + dependencies: + node-gyp: "npm:latest" + node-gyp-build: "npm:^4.3.0" + checksum: 10c0/23cd6adc29e6901aa37ff97ce4b81be9238d0023c5e217515b34792f3c3edb01470c3bd6b264096dd73d0b01a1690b57468de3a24167dd83004ff71c51cc025f + languageName: node + linkType: hard + +"util-deprecate@npm:~1.0.1": + version: 1.0.2 + resolution: "util-deprecate@npm:1.0.2" + checksum: 10c0/41a5bdd214df2f6c3ecf8622745e4a366c4adced864bc3c833739791aeeeb1838119af7daed4ba36428114b5c67dcda034a79c882e97e43c03e66a4dd7389942 + languageName: node + linkType: hard + +"util@npm:^0.10.3": + version: 0.10.4 + resolution: "util@npm:0.10.4" + dependencies: + inherits: "npm:2.0.3" + checksum: 10c0/d29f6893e406b63b088ce9924da03201df89b31490d4d011f1c07a386ea4b3dbe907464c274023c237da470258e1805d806c7e4009a5974cd6b1d474b675852a + languageName: node + linkType: hard + +"uuid@npm:^8.3.2": + version: 8.3.2 + resolution: "uuid@npm:8.3.2" + bin: + uuid: dist/bin/uuid + checksum: 10c0/bcbb807a917d374a49f475fae2e87fdca7da5e5530820ef53f65ba1d12131bd81a92ecf259cc7ce317cbe0f289e7d79fdfebcef9bfa3087c8c8a2fa304c9be54 + languageName: node + linkType: hard + +"v8-compile-cache-lib@npm:^3.0.1": + version: 3.0.1 + resolution: "v8-compile-cache-lib@npm:3.0.1" + checksum: 10c0/bdc36fb8095d3b41df197f5fb6f11e3a26adf4059df3213e3baa93810d8f0cc76f9a74aaefc18b73e91fe7e19154ed6f134eda6fded2e0f1c8d2272ed2d2d391 + languageName: node + linkType: hard + +"viem@npm:^2.7.15": + version: 2.7.15 + resolution: "viem@npm:2.7.15" + dependencies: + "@adraffy/ens-normalize": "npm:1.10.0" + "@noble/curves": "npm:1.2.0" + "@noble/hashes": "npm:1.3.2" + "@scure/bip32": "npm:1.3.2" + "@scure/bip39": "npm:1.2.1" + abitype: "npm:1.0.0" + isows: "npm:1.0.3" + ws: "npm:8.13.0" + peerDependencies: + typescript: ">=5.0.4" + peerDependenciesMeta: + typescript: + optional: true + checksum: 10c0/c9e987d959e5b91578fc0082a4142a83832d27575ec23fdafd7569d46acaa6f65ccd4c8a5a0b3ebfac8bfe0b2d74cd48d7e51357701806d9bebb9607077b242a + languageName: node + linkType: hard + +"walker@npm:^1.0.8": + version: 1.0.8 + resolution: "walker@npm:1.0.8" + dependencies: + makeerror: "npm:1.0.12" + checksum: 10c0/a17e037bccd3ca8a25a80cb850903facdfed0de4864bd8728f1782370715d679fa72e0a0f5da7c1c1379365159901e5935f35be531229da53bbfc0efdabdb48e + languageName: node + linkType: hard + +"wasm-ast-types@npm:^0.26.4": + version: 0.26.4 + resolution: "wasm-ast-types@npm:0.26.4" + dependencies: + "@babel/runtime": "npm:^7.18.9" + "@babel/types": "npm:7.18.10" + "@jest/transform": "npm:28.1.3" + ast-stringify: "npm:0.1.0" + case: "npm:1.6.3" + deepmerge: "npm:4.2.2" + checksum: 10c0/038aaef93737ce74ff7226c5df7ba9c9d562daf036d67ebf7476de6c76952343391d6f79ef56539a3b7bfac4d21ef13a176221c55597e35d85f1eefcdf917ffd + languageName: node + linkType: hard + +"webidl-conversions@npm:^3.0.0": + version: 3.0.1 + resolution: "webidl-conversions@npm:3.0.1" + checksum: 10c0/5612d5f3e54760a797052eb4927f0ddc01383550f542ccd33d5238cfd65aeed392a45ad38364970d0a0f4fea32e1f4d231b3d8dac4a3bdd385e5cf802ae097db + languageName: node + linkType: hard + +"whatwg-url@npm:^5.0.0": + version: 5.0.0 + resolution: "whatwg-url@npm:5.0.0" + dependencies: + tr46: "npm:~0.0.3" + webidl-conversions: "npm:^3.0.0" + checksum: 10c0/1588bed84d10b72d5eec1d0faa0722ba1962f1821e7539c535558fb5398d223b0c50d8acab950b8c488b4ba69043fd833cc2697056b167d8ad46fac3995a55d5 + languageName: node + linkType: hard + +"which@npm:^2.0.1": + version: 2.0.2 + resolution: "which@npm:2.0.2" + dependencies: + isexe: "npm:^2.0.0" + bin: + node-which: ./bin/node-which + checksum: 10c0/66522872a768b60c2a65a57e8ad184e5372f5b6a9ca6d5f033d4b0dc98aff63995655a7503b9c0a2598936f532120e81dd8cc155e2e92ed662a2b9377cc4374f + languageName: node + linkType: hard + +"which@npm:^4.0.0": + version: 4.0.0 + resolution: "which@npm:4.0.0" + dependencies: + isexe: "npm:^3.1.1" + bin: + node-which: bin/which.js + checksum: 10c0/449fa5c44ed120ccecfe18c433296a4978a7583bf2391c50abce13f76878d2476defde04d0f79db8165bdf432853c1f8389d0485ca6e8ebce3bbcded513d5e6a + languageName: node + linkType: hard + +"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": + version: 7.0.0 + resolution: "wrap-ansi@npm:7.0.0" + dependencies: + ansi-styles: "npm:^4.0.0" + string-width: "npm:^4.1.0" + strip-ansi: "npm:^6.0.0" + checksum: 10c0/d15fc12c11e4cbc4044a552129ebc75ee3f57aa9c1958373a4db0292d72282f54373b536103987a4a7594db1ef6a4f10acf92978f79b98c49306a4b58c77d4da + languageName: node + linkType: hard + +"wrap-ansi@npm:^8.1.0": + version: 8.1.0 + resolution: "wrap-ansi@npm:8.1.0" + dependencies: + ansi-styles: "npm:^6.1.0" + string-width: "npm:^5.0.1" + strip-ansi: "npm:^7.0.1" + checksum: 10c0/138ff58a41d2f877eae87e3282c0630fc2789012fc1af4d6bd626eeb9a2f9a65ca92005e6e69a75c7b85a68479fe7443c7dbe1eb8fbaa681a4491364b7c55c60 + languageName: node + linkType: hard + +"wrappy@npm:1": + version: 1.0.2 + resolution: "wrappy@npm:1.0.2" + checksum: 10c0/56fece1a4018c6a6c8e28fbc88c87e0fbf4ea8fd64fc6c63b18f4acc4bd13e0ad2515189786dd2c30d3eec9663d70f4ecf699330002f8ccb547e4a18231fc9f0 + languageName: node + linkType: hard + +"write-file-atomic@npm:^4.0.1": + version: 4.0.2 + resolution: "write-file-atomic@npm:4.0.2" + dependencies: + imurmurhash: "npm:^0.1.4" + signal-exit: "npm:^3.0.7" + checksum: 10c0/a2c282c95ef5d8e1c27b335ae897b5eca00e85590d92a3fd69a437919b7b93ff36a69ea04145da55829d2164e724bc62202cdb5f4b208b425aba0807889375c7 + languageName: node + linkType: hard + +"ws@npm:7.4.6": + version: 7.4.6 + resolution: "ws@npm:7.4.6" + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ^5.0.2 + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + checksum: 10c0/4b44b59bbc0549c852fb2f0cdb48e40e122a1b6078aeed3d65557cbeb7d37dda7a4f0027afba2e6a7a695de17701226d02b23bd15c97b0837808c16345c62f8e + languageName: node + linkType: hard + +"ws@npm:8.13.0": + version: 8.13.0 + resolution: "ws@npm:8.13.0" + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ">=5.0.2" + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + checksum: 10c0/579817dbbab3ee46669129c220cfd81ba6cdb9ab5c3e9a105702dd045743c4ab72e33bb384573827c0c481213417cc880e41bc097e0fc541a0b79fa3eb38207d + languageName: node + linkType: hard + +"ws@npm:^7, ws@npm:^7.4.5": + version: 7.5.9 + resolution: "ws@npm:7.5.9" + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ^5.0.2 + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + checksum: 10c0/aec4ef4eb65821a7dde7b44790f8699cfafb7978c9b080f6d7a98a7f8fc0ce674c027073a78574c94786ba7112cc90fa2cc94fc224ceba4d4b1030cff9662494 + languageName: node + linkType: hard + +"ws@npm:^8.5.0": + version: 8.16.0 + resolution: "ws@npm:8.16.0" + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ">=5.0.2" + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + checksum: 10c0/a7783bb421c648b1e622b423409cb2a58ac5839521d2f689e84bc9dc41d59379c692dd405b15a997ea1d4c0c2e5314ad707332d0c558f15232d2bc07c0b4618a + languageName: node + linkType: hard + +"xstream@npm:^11.14.0": + version: 11.14.0 + resolution: "xstream@npm:11.14.0" + dependencies: + globalthis: "npm:^1.0.1" + symbol-observable: "npm:^2.0.3" + checksum: 10c0/7a28baedc64385dc17597d04c7130ec3135db298e66d6dcf33821eb1953d5ad1b83c5fa08f1ce4d36e75fd219f2e9ef81ee0721aa8d4ccf619acc1760ba37f71 + languageName: node + linkType: hard + +"xtend@npm:^4.0.0": + version: 4.0.2 + resolution: "xtend@npm:4.0.2" + checksum: 10c0/366ae4783eec6100f8a02dff02ac907bf29f9a00b82ac0264b4d8b832ead18306797e283cf19de776538babfdcb2101375ec5646b59f08c52128ac4ab812ed0e + languageName: node + linkType: hard + +"yallist@npm:^3.0.2": + version: 3.1.1 + resolution: "yallist@npm:3.1.1" + checksum: 10c0/c66a5c46bc89af1625476f7f0f2ec3653c1a1791d2f9407cfb4c2ba812a1e1c9941416d71ba9719876530e3340a99925f697142989371b72d93b9ee628afd8c1 + languageName: node + linkType: hard + +"yallist@npm:^4.0.0": + version: 4.0.0 + resolution: "yallist@npm:4.0.0" + checksum: 10c0/2286b5e8dbfe22204ab66e2ef5cc9bbb1e55dfc873bbe0d568aa943eb255d131890dfd5bf243637273d31119b870f49c18fcde2c6ffbb7a7a092b870dc90625a + languageName: node + linkType: hard + +"yauzl@npm:^2.4.2": + version: 2.10.0 + resolution: "yauzl@npm:2.10.0" + dependencies: + buffer-crc32: "npm:~0.2.3" + fd-slicer: "npm:~1.1.0" + checksum: 10c0/f265002af7541b9ec3589a27f5fb8f11cf348b53cc15e2751272e3c062cd73f3e715bc72d43257de71bbaecae446c3f1b14af7559e8ab0261625375541816422 + languageName: node + linkType: hard + +"yn@npm:3.1.1": + version: 3.1.1 + resolution: "yn@npm:3.1.1" + checksum: 10c0/0732468dd7622ed8a274f640f191f3eaf1f39d5349a1b72836df484998d7d9807fbea094e2f5486d6b0cd2414aad5775972df0e68f8604db89a239f0f4bf7443 + languageName: node + linkType: hard + +"yn@npm:^2.0.0": + version: 2.0.0 + resolution: "yn@npm:2.0.0" + checksum: 10c0/a52d74080871f22b3af8a6068d8579b86bf2bb81a968f6e406aa6e1ee85ba15f2e1d334184df6cd81024cec32a3cc8dc1f2f09ec4957b58b7b038b3cdef5cbd1 + languageName: node + linkType: hard