diff --git a/.dockerignore b/.dockerignore index 3cf4257..2a64dfc 100644 --- a/.dockerignore +++ b/.dockerignore @@ -1,3 +1,12 @@ +* +!crates +!examples +!Cargo.lock +!Cargo.toml +**/.cache +**/frontend **/target -docker -docs +**/.gitignore +**/Makefile +**/*.md +!**/README.md diff --git a/.github/workflows/e2e-tests.yml b/.github/workflows/e2e-tests.yml index 101a215..383e022 100644 --- a/.github/workflows/e2e-tests.yml +++ b/.github/workflows/e2e-tests.yml @@ -23,20 +23,20 @@ jobs: timeout-minutes: 25 run: | echo "Waiting for handshake completion..." - while ! docker logs quartz-cli-transfers 2>&1 | grep -q "Enclave is listening"; do + while ! docker logs enclave 2>&1 | grep -q "Enclave is listening"; do sleep 30 done - name: Capture logs from CLI working-directory: examples/transfers/frontend - run: docker logs --tail 50 quartz-cli-transfers &> quartz-cli-transfers_logs.txt + run: docker logs --tail 50 enclave &> enclave.logs.txt - name: Setup Frontend environment variables for quartz working-directory: examples/transfers/frontend run: | cp .env.example .env.local - sed -i "s/^NEXT_PUBLIC_TRANSFERS_CONTRACT_ADDRESS=.*/NEXT_PUBLIC_TRANSFERS_CONTRACT_ADDRESS=$(grep 'Contract Address:' quartz-cli-transfers_logs.txt | awk '{print $NF}')/" .env.local - sed -i "s/^NEXT_PUBLIC_ENCLAVE_PUBLIC_KEY=.*/NEXT_PUBLIC_ENCLAVE_PUBLIC_KEY=$(grep 'Handshake complete:' quartz-cli-transfers_logs.txt | awk '{print $NF}')/" .env.local + sed -i "s/^NEXT_PUBLIC_TRANSFERS_CONTRACT_ADDRESS=.*/NEXT_PUBLIC_TRANSFERS_CONTRACT_ADDRESS=$(grep 'Contract Address:' enclave.logs.txt | awk '{print $NF}')/" .env.local + sed -i "s/^NEXT_PUBLIC_ENCLAVE_PUBLIC_KEY=.*/NEXT_PUBLIC_ENCLAVE_PUBLIC_KEY=$(grep 'Handshake complete:' enclave.logs.txt | awk '{print $NF}')/" .env.local - name: Install Frontend dependencies working-directory: examples/transfers/frontend diff --git a/crates/cli/Dockerfile b/crates/cli/Dockerfile index bbdcf94..116a256 100644 --- a/crates/cli/Dockerfile +++ b/crates/cli/Dockerfile @@ -5,6 +5,12 @@ ARG CARGO_FLAGS="" COPY . /opt +# Temporarily disable GPG checks +RUN echo 'Acquire::Check-Valid-Until "false";' > /etc/apt/apt.conf.d/99no-check-valid-until \ + && echo 'Acquire::AllowInsecureRepositories "true";' > /etc/apt/apt.conf.d/99allow-insecure \ + && echo 'Acquire::AllowDowngradeToInsecureRepositories "true";' >> /etc/apt/apt.conf.d/99allow-insecure + + RUN apt-get update && \ apt-get install -y --no-install-recommends \ protobuf-compiler \ @@ -15,12 +21,12 @@ RUN apt-get update && \ # Install Go RUN apt-get update && \ apt-get install -y --no-install-recommends wget && \ - wget https://go.dev/dl/go1.20.5.linux-amd64.tar.gz && \ - tar -C /usr/local -xzf go1.20.5.linux-amd64.tar.gz && \ - rm go1.20.5.linux-amd64.tar.gz && \ - wget https://github.com/CosmWasm/wasmd/releases/download/v0.44.0/wasmd-v0.44.0-linux-amd64.tar.gz && \ - tar -C /usr/local/bin -xzf wasmd-v0.44.0-linux-amd64.tar.gz && \ - rm wasmd-v0.44.0-linux-amd64.tar.gz && \ + wget https://go.dev/dl/go1.22.0.linux-amd64.tar.gz && \ + tar -C /usr/local -xzf go1.22.0.linux-amd64.tar.gz && \ + rm go1.22.0.linux-amd64.tar.gz && \ + wget https://github.com/neutron-org/neutron/releases/download/v4.2.4/neutrond-linux-amd64 && \ + chmod +x neutrond-linux-amd64 && \ + cp neutrond-linux-amd64 /usr/local/bin/neutrond && \ apt-get remove -y wget && \ apt-get clean && \ rm -rf /var/lib/apt/lists/* @@ -35,4 +41,7 @@ WORKDIR /opt/crates/cli RUN cargo build --locked --release ${CARGO_FLAGS} RUN cp /opt/target/release/quartz /usr/local/bin/ -CMD ["quartz", "--mock-sgx", "--app-dir", "/opt/examples/transfers", "dev", "--unsafe-trust-latest", "--contract-manifest", "/opt/examples/transfers/contracts/Cargo.toml", "--init-msg", "{\"denom\":\"ucosm\"}"] +# Create a directory for the app +RUN mkdir -p /opt/examples/transfers + +ENTRYPOINT ["quartz", "--mock-sgx", "--app-dir", "/opt/examples/transfers", "dev", "--unsafe-trust-latest", "--contract-manifest", "/opt/examples/transfers/contracts/Cargo.toml", "--init-msg", "{\"denom\":\"untrn\"}"] diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml index 61fb750..dc537b1 100644 --- a/docker/docker-compose.yml +++ b/docker/docker-compose.yml @@ -1,31 +1,39 @@ name: "transfers" volumes: - wasmd_data: + data: services: node: - container_name: wasmd - build: "./wasmd" - ports: - - "26657:26657" - - "26656:26656" - - "1317:1317" - network_mode: host + container_name: neutron + healthcheck: + test: + [ + "CMD", + "curl", + "-f", + "http://127.0.0.1:1317/cosmos/base/tendermint/v1beta1/blocks/1", + ] + start_period: 10s + interval: 5s + timeout: 5s + retries: 3 volumes: - - wasmd_data:/root/.wasmd - + - data:/root/.neutrond + build: + context: "./neutrond" + network_mode: host enclave: - container_name: quartz-cli-transfers + container_name: enclave environment: DOCKER_BUILDKIT: 1 + ADMIN_SK: 07b291dca4ead76392945ea0a8c35b2d506617d36337788c9043c8fc992213e1 build: context: ".." dockerfile: "./crates/cli/Dockerfile" depends_on: - - node - ports: - - "11090:11090" - network_mode: host + node: + condition: service_healthy volumes: - - wasmd_data:/root/.wasmd + - data:/root/.neutrond + network_mode: host diff --git a/docker/neutrond/.dockerignore b/docker/neutrond/.dockerignore new file mode 100644 index 0000000..a70fb93 --- /dev/null +++ b/docker/neutrond/.dockerignore @@ -0,0 +1,2 @@ +* +!data diff --git a/docker/neutrond/Dockerfile b/docker/neutrond/Dockerfile new file mode 100644 index 0000000..421c697 --- /dev/null +++ b/docker/neutrond/Dockerfile @@ -0,0 +1,9 @@ +FROM golang:1.22-bullseye + +RUN apt-get update && apt-get install -y jq && \ + git clone https://github.com/neutron-org/neutron.git /root/neutron && \ + cd /root/neutron && make install-test-binary + +COPY data /root/ + +CMD bash /root/entrypoint.sh diff --git a/docker/neutrond/Makefile b/docker/neutrond/Makefile index 744d5e8..17fdf28 100644 --- a/docker/neutrond/Makefile +++ b/docker/neutrond/Makefile @@ -1,10 +1,11 @@ # Setup local accounts. This is only for local development and should not be used in production. import-local-accounts: - neutrond keys add val1 --keyring-backend test > ./accounts/val1.txt 2>&1 - neutrond keys add val2 --keyring-backend test > ./accounts/val2.txt 2>&1 - neutrond keys add demowallet1 --keyring-backend test > ./accounts/demowallet1.txt 2>&1 - neutrond keys add demowallet2 --keyring-backend test > ./accounts/demowallet2.txt 2>&1 - neutrond keys add demowallet3 --keyring-backend test > ./accounts/demowallet3.txt 2>&1 - neutrond keys add rly1 --keyring-backend test > ./accounts/rly1.txt 2>&1 - neutrond keys add rly2 --keyring-backend test > ./accounts/rly2.txt 2>&1 -.PHONY: create-local-accounts \ No newline at end of file + neutrond keys add admin --keyring-backend test > ./data/accounts/admin.txt 2>&1 + neutrond keys add alice --keyring-backend test > ./data/accounts/alice.txt 2>&1 + neutrond keys add bob --keyring-backend test > ./data/accounts/bob.txt 2>&1 + neutrond keys add charlie --keyring-backend test > ./data/accounts/charlie.txt 2>&1 + +create-local-accounts: import-local-accounts + @echo "Local accounts have been created." + +.PHONY: create-local-accounts import-local-accounts \ No newline at end of file diff --git a/docker/neutrond/README.md b/docker/neutrond/README.md index 8378d31..483dd05 100644 --- a/docker/neutrond/README.md +++ b/docker/neutrond/README.md @@ -1,78 +1,51 @@ -# Setting up a Single Node Neutron Testnet +# Quartz Neutrond image -This guide provides instructions for setting up a single node Neutron testnet using Docker and local installation. +This folder contains a `Dockerfile` that helps build a single-node [neutrond] +for use in testing your Quartz application. -> Note - For more detailed instructions, refer to the [official Neutron documentation](https://docs.neutron.org/neutron/build-and-run/neutron-docker). +It facilitates the creation of a Docker image with 4 accounts pre-loaded, each +having a small amount of `untrn` preloaded from genesis for experimentation. -## Setup Steps +- `admin` +- `alice` +- `bob` +- `charlie` -Clone the Neutron repository in your `$HOME` or your preferred repository: -``` -git clone -b v4.0.1 https://github.com/neutron-org/neutron.git -cd neutron +These accounts' details are stored in clear text in the [data/accounts](./data/accounts/) +folder. + +**Note: this image is _NOT_ intended to be used in production.** + +## Using the image + +For running this image you can just use the already prepared [docker-compose.yml](../docker-compose.yml) +file by simply run at `docker` folder root level: + +```bash +docker compose up node ``` -Build the Docker image: -``` -make build-docker-image +## Importing the account keys + +As previously mentioned, the [data/accounts](./data/accounts/) folder contains all of +the necessary material to construct the public/private keypairs of the accounts. + +A convenient helper target is provided in [`/Makefile`](./Makefile) to facilitate +importing of these accounts into a local `neutrond` configuration (i.e. on your +host machine, outside of the Docker container). This will allow you to transact +on behalf of any of those accounts from outside of the Docker container. + +**NB**: For this to work, you will need the same version of `neutrond` installed on +your local machine as what is built into the `neutrond` Docker image. + +```bash +make import-local-accounts ``` -Start the Docker container: -``` -make start-docker-container -``` +To check that the accounts have been imported correctly, on your host machine +run: -Monitor the logs: +```bash +# List all keys available in your local neutrond configuration +neutrond keys list --keyring-backend=test ``` -docker ps # Get the container ID -docker logs -f -``` - -Verify the Docker keyring setup: -``` -docker exec -it neutron neutrond query bank balances neutron1qnk2n4nlkpw9xfqntladh74w6ujtulwn6dwq8z --chain-id test-1 -``` -This should return: -``` -balances: -- amount: "100000000000000" -denom: untrn -pagination: -total: "1" -``` - -Install neutrond locally: -``` -make install -``` - -To setup the local keyring: -``` -cd docker/neutrond -make create-local-accounts -``` - -Verify local keyring setup: -``` -neutrond query bank balances neutron1qnk2n4nlkpw9xfqntladh74w6ujtulwn6dwq8z --chain-id test-1 -``` - -This should return: -``` -balances: -- amount: "100000000000000" -denom: untrn -pagination: -total: "1" -``` - -To stop and reset the chain, go back into the neutron source folder from github and run: -``` -make stop-docker-container -``` - -## How accounts are setup on neutron -We use the standard 7 accounts that come from the neutron base docker setup. We have imported those to `docker/neutrond/accounts`. These accounts already exist in the container running the node, and we get them locally by running `make import-local-accounts`. We don't have functions to create or delete accounts, since we want to strictly follow their base docker setup, and thus keep the accounts the exact same. The 7 accounts are: -- `demowallet1`, `demowallet2` and `demowallet3` - These are the accounts you should use for testing. They are seeded with the test token `untrn`, and 2 IBC tokens, `uibcatom` and `uibcusdc`. -- `val1` and `val2` - accounts used to setup the validators for the test network. Seeded only with the test token `untrn`. Use if you need extra accounts beyond the demo wallets. -- `rly1` and `rly2` - accounts used to setup IBC relayers for the test network. Only seeded with `untrn`. Use if you need extra accounts beyond the demo wallets. \ No newline at end of file diff --git a/docker/neutrond/accounts/demowallet1.txt b/docker/neutrond/accounts/demowallet1.txt deleted file mode 100644 index 0f502cb..0000000 --- a/docker/neutrond/accounts/demowallet1.txt +++ /dev/null @@ -1,11 +0,0 @@ - -- address: neutron1a57m0naqaf56hcvldfvagde7rajse68hnynpe4 - name: demowallet1 - pubkey: '{"@type":"/cosmos.crypto.secp256k1.PubKey","key":"A6iUKYrdZW53fFEXZpjfVqcaOcXOAucfHBhdzpx/u660"}' - type: local - - -**Important** write this mnemonic phrase in a safe place. -It is the only way to recover your account if you ever forget your password. - -cave middle fade cube battle parrot live picture item before mention cheap veteran nose sting recipe talk vapor judge bracket flee flavor lazy blue diff --git a/docker/neutrond/accounts/demowallet2.txt b/docker/neutrond/accounts/demowallet2.txt deleted file mode 100644 index 27c009d..0000000 --- a/docker/neutrond/accounts/demowallet2.txt +++ /dev/null @@ -1,11 +0,0 @@ - -- address: neutron105slt5cpynvzv5cy6xadxl548em5wsjfh2shat - name: demowallet2 - pubkey: '{"@type":"/cosmos.crypto.secp256k1.PubKey","key":"Akj8ZdWICka5rn2/M5csbMpt0tU0N9TMkC9981KqG3ks"}' - type: local - - -**Important** write this mnemonic phrase in a safe place. -It is the only way to recover your account if you ever forget your password. - -thunder blanket sort image frequent village adult fish caution explain legend canyon canal property since razor whale zero idle parrot large tank such smart diff --git a/docker/neutrond/accounts/demowallet3.txt b/docker/neutrond/accounts/demowallet3.txt deleted file mode 100644 index e04e6fb..0000000 --- a/docker/neutrond/accounts/demowallet3.txt +++ /dev/null @@ -1,11 +0,0 @@ - -- address: neutron1zf0a8ueetawfqwzzx5njmq88jpmqa827t5v38a - name: demowallet3 - pubkey: '{"@type":"/cosmos.crypto.secp256k1.PubKey","key":"Av2LbNFHvcNR0D4BHk51lmiVvCRLOmoh4YMlJLnNbvg5"}' - type: local - - -**Important** write this mnemonic phrase in a safe place. -It is the only way to recover your account if you ever forget your password. - -polar twice glass ostrich crush tank charge caution planet answer ripple culture staff relief have tragic occur helmet between slight proof direct output shoot diff --git a/docker/neutrond/accounts/rly1.txt b/docker/neutrond/data/accounts/admin.txt similarity index 97% rename from docker/neutrond/accounts/rly1.txt rename to docker/neutrond/data/accounts/admin.txt index 53ed4c1..864afac 100644 --- a/docker/neutrond/accounts/rly1.txt +++ b/docker/neutrond/data/accounts/admin.txt @@ -1,6 +1,6 @@ - address: neutron1zmr7dfc325907tvj8jl2p2p4cx84clk5aflstl - name: rly1 + name: admin pubkey: '{"@type":"/cosmos.crypto.secp256k1.PubKey","key":"Ak3alwik1L65ujlKbgQP//JL3LUlJmvA0zn8rt4eeoHG"}' type: local diff --git a/docker/neutrond/accounts/rly2.txt b/docker/neutrond/data/accounts/alice.txt similarity index 97% rename from docker/neutrond/accounts/rly2.txt rename to docker/neutrond/data/accounts/alice.txt index e77fe32..ee94460 100644 --- a/docker/neutrond/accounts/rly2.txt +++ b/docker/neutrond/data/accounts/alice.txt @@ -1,6 +1,6 @@ - address: neutron152zj7nyksf7dgrt4tpcf64t92k4ar9c2c97wxz - name: rly2 + name: alice pubkey: '{"@type":"/cosmos.crypto.secp256k1.PubKey","key":"A9jd2NZ40ZkD0TqBMmco6ejP1EzR1AnYIqSNm5m/Y997"}' type: local diff --git a/docker/neutrond/accounts/val1.txt b/docker/neutrond/data/accounts/bob.txt similarity index 97% rename from docker/neutrond/accounts/val1.txt rename to docker/neutrond/data/accounts/bob.txt index 613ae0e..f1596f4 100644 --- a/docker/neutrond/accounts/val1.txt +++ b/docker/neutrond/data/accounts/bob.txt @@ -1,6 +1,6 @@ override the existing name val1 [y/N]: - address: neutron1t4jlep6w6qxzwf58x49uya74x4tfjx4vd7v9a7 - name: val1 + name: bob pubkey: '{"@type":"/cosmos.crypto.secp256k1.PubKey","key":"Are6QBWqMGG3srEdzWj6ulFzX2J9mU5V5BUGDWpPZvzn"}' type: local diff --git a/docker/neutrond/accounts/val2.txt b/docker/neutrond/data/accounts/charlie.txt similarity index 96% rename from docker/neutrond/accounts/val2.txt rename to docker/neutrond/data/accounts/charlie.txt index 766ee79..511c30f 100644 --- a/docker/neutrond/accounts/val2.txt +++ b/docker/neutrond/data/accounts/charlie.txt @@ -1,6 +1,6 @@ - address: neutron1efkh8rpul8v6km98cuaejz0a5zczvvvz4ps82r - name: val2 + name: charlie pubkey: '{"@type":"/cosmos.crypto.secp256k1.PubKey","key":"A0owhBMbRQ2jwJ7dKqwRA2fFyqSMpRmI2aefEdBIT/td"}' type: local diff --git a/docker/neutrond/data/entrypoint.sh b/docker/neutrond/data/entrypoint.sh new file mode 100755 index 0000000..7d7fb92 --- /dev/null +++ b/docker/neutrond/data/entrypoint.sh @@ -0,0 +1,43 @@ +#!/bin/sh +set e + +# Clean previous keys & reset node +rm -rf /root/.neutrond/keyring-test &> /dev/null +neutrond tendermint unsafe-reset-all + +# Init configuration files +neutrond init test --chain-id test-1 --overwrite + +# Modify default configurations +sed -i 's/keyring-backend = "os"/keyring-backend = "test"/g' /root/.neutrond/config/client.toml +sed -i 's/cors_allowed_origins = \[\]/cors_allowed_origins = \[\"*\"\]/g' /root/.neutrond/config/config.toml +sed -i 's/minimum-gas-prices = ""/minimum-gas-prices = "0.0025untrn"/g' /root/.neutrond/config/app.toml +sed -i 's/enabled-unsafe-cors = false/enabled-unsafe-cors = true/g' /root/.neutrond/config/app.toml +sed -i 's/enable = false/enable = true/g' /root/.neutrond/config/app.toml +sed -i 's/swagger = false/swagger = true/g' /root/.neutrond/config/app.toml + +GENESIS_PATH="/root/.neutrond/config/genesis.json" + +function set_genesis_param_jq() { + param_path=$1 + param_value=$2 + jq "${param_path} = ${param_value}" > tmp_genesis_file.json < "$GENESIS_PATH" && mv tmp_genesis_file.json "$GENESIS_PATH" +} + +# feemarket +set_genesis_param_jq ".app_state.feemarket.params.min_base_gas_price" "\"0.0025\"" +set_genesis_param_jq ".app_state.feemarket.params.fee_denom" "\"untrn\"" +set_genesis_param_jq ".app_state.feemarket.state.base_gas_price" "\"0.0025\"" + +# Import all test accounts +for filename in /root/accounts/*.txt; do + tail -n 1 "$filename" | neutrond keys add "$(basename "$filename" .txt)" --no-backup --recover --keyring-backend=test + + neutrond add-genesis-account "$(neutrond keys show $(basename "$filename" .txt) -a)" 12000000000000untrn +done + +# Enable as a single node consumer +neutrond add-consumer-section + +# Start node +neutrond start --trace diff --git a/examples/transfers/frontend/.env.example b/examples/transfers/frontend/.env.example index fcfc5cb..1a1f9de 100644 --- a/examples/transfers/frontend/.env.example +++ b/examples/transfers/frontend/.env.example @@ -1,13 +1,13 @@ # App required variables -NEXT_PUBLIC_TARGET_CHAIN=localWasm -NEXT_PUBLIC_ENCLAVE_PUBLIC_KEY=02360955ff74750f6ea0b539f41cce89451f591e4c835d0a5406e6effa96dd169d -NEXT_PUBLIC_TRANSFERS_CONTRACT_ADDRESS=wasm14hj2tavq8fpesdwxxcu44rty3hh90vhujrvcmstl4zr3txmfvw9s0phg4d +NEXT_PUBLIC_TARGET_CHAIN=localNeutron +NEXT_PUBLIC_ENCLAVE_PUBLIC_KEY=02a4db2129c629a709351bd7d9e09c49326c580cb2863aec9020dccaaa5984a68f +NEXT_PUBLIC_TRANSFERS_CONTRACT_ADDRESS=neutron14hj2tavq8fpesdwxxcu44rty3hh90vhujrvcmstl4zr3txmfvw9s5c2epq # E2E testing required variables TEST_BASE_URL=http://127.0.0.1:3000 TEST_KEPLR_EXTENSION_VERSION=0.12.124 -TEST_WALLET_MNEMONIC=grain shoe diamond mix chunk turn odor across reduce room smart napkin scale ghost emotion stove mistake someone account snow country rail boy rescue -TEST_SECONDARY_WALLET_MNEMONIC=inmate surface cement any mule sweet what hamster rent ridge series equip equal supply plunge mango mystery chase other economy build pool coyote enter -TEST_SECONDARY_WALLET_ADDRESS=wasm1adcnk7lt6qst7p5d0g5607e28k77um7nxwxuqy +TEST_WALLET_MNEMONIC=run snack expand version flag foil used session name lift mouse repeat bunker pencil orchard lens kitchen prevent emerge alien outdoor else cat brass +TEST_SECONDARY_WALLET_MNEMONIC=rare tobacco crisp auction shrug turkey transfer little giggle giraffe live stereo soft arctic raw page october river armor home champion check virus trap +TEST_SECONDARY_WALLET_ADDRESS=neutron1t4jlep6w6qxzwf58x49uya74x4tfjx4vd7v9a7 TEST_WALLET_PASSWORD=;pzPCXB^@92byC PLAYWRIGHT_HTML_OPEN=never diff --git a/examples/transfers/frontend/tests/e2e/helpers/getBalance.ts b/examples/transfers/frontend/tests/e2e/helpers/getBalance.ts index 693be89..3dcc022 100644 --- a/examples/transfers/frontend/tests/e2e/helpers/getBalance.ts +++ b/examples/transfers/frontend/tests/e2e/helpers/getBalance.ts @@ -11,7 +11,11 @@ export const getBalance = async ({ // Check new balance await page.getByRole('button', { name: /get/i }).click() - await signTx({ context, page }) + await signTx({ + context, + page, + notificationMsg: 'Balance updated successfully', + }) // Wait for the success alert to appear so we know balance updated await page.getByText(/\$/i).waitFor({ state: 'visible' }) diff --git a/examples/transfers/frontend/tests/e2e/helpers/signTx.ts b/examples/transfers/frontend/tests/e2e/helpers/signTx.ts index c720551..ed21e5b 100644 --- a/examples/transfers/frontend/tests/e2e/helpers/signTx.ts +++ b/examples/transfers/frontend/tests/e2e/helpers/signTx.ts @@ -3,14 +3,16 @@ import { BrowserContext, Page } from '@playwright/test' export const signTx = async ({ context, page, + notificationMsg = /successfully/i, }: { context: BrowserContext page: Page + notificationMsg?: string | RegExp }) => { // Sign tx const signPage = await context.waitForEvent('page') await signPage.getByRole('button', { name: /approve/i }).click() await signPage.waitForEvent('close') - await page.getByText(/successfully/i).waitFor({ state: 'visible' }) + await page.getByText(notificationMsg).waitFor({ state: 'visible' }) } diff --git a/examples/transfers/quartz.toml b/examples/transfers/quartz.toml index d59e9e0..d21d754 100644 --- a/examples/transfers/quartz.toml +++ b/examples/transfers/quartz.toml @@ -1,8 +1,8 @@ mock_sgx = true tx_sender = "admin" -chain_id = "testing" +chain_id = "test-1" node_url = "http://127.0.0.1:26657" -ws_url = "ws://127.0.0.1/wesocket" +ws_url = "ws://127.0.0.1:26657/websocket" grpc_url = "http://127.0.0.1:9090" enclave_rpc_addr = "http://127.0.0.1" enclave_rpc_port = 11090