From 8bd99bccc3f62164126ac042f0247dbe58518dd1 Mon Sep 17 00:00:00 2001 From: Daniele Ricci Date: Wed, 22 May 2024 20:56:35 +0200 Subject: [PATCH 1/3] fix(projection-typeorm): store pool metric job to work also when sends the fist job at block 0 --- .../src/operators/storePoolMetricsUpdateJob.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/projection-typeorm/src/operators/storePoolMetricsUpdateJob.ts b/packages/projection-typeorm/src/operators/storePoolMetricsUpdateJob.ts index 5f21cec83f1..a6722363107 100644 --- a/packages/projection-typeorm/src/operators/storePoolMetricsUpdateJob.ts +++ b/packages/projection-typeorm/src/operators/storePoolMetricsUpdateJob.ts @@ -39,11 +39,11 @@ export const createStorePoolMetricsUpdateJob = (jobFrequency = 1000, jobOutdated if (insertFirstJob) { await sendForAll(); } else if ((blockNo !== lastAllSentBlock || blockNo !== lastOutdatedSentBlock) && reachedTheTip) { - if (lastAllSentBlock && blockNo - lastAllSentBlock >= jobFrequency) { + if (lastAllSentBlock !== undefined && blockNo - lastAllSentBlock >= jobFrequency) { await sendForAll(); } else if ( jobOutdatedFrequency && - lastOutdatedSentBlock && + lastOutdatedSentBlock !== undefined && outdatedSlot && blockNo - lastOutdatedSentBlock >= jobOutdatedFrequency ) { From 1c3c460d9a9c28390baa8d27783f401532fa1e4f Mon Sep 17 00:00:00 2001 From: Daniele Ricci Date: Wed, 22 May 2024 23:34:07 +0200 Subject: [PATCH 2/3] chore: split unit tests ci flow to speed up ci runs --- .../continuous-integration-side-tests.yaml | 45 +++++++++++++++++++ .../continuous-integration-unit-tests.yaml | 9 +--- 2 files changed, 46 insertions(+), 8 deletions(-) create mode 100644 .github/workflows/continuous-integration-side-tests.yaml diff --git a/.github/workflows/continuous-integration-side-tests.yaml b/.github/workflows/continuous-integration-side-tests.yaml new file mode 100644 index 00000000000..0c0d1699d1b --- /dev/null +++ b/.github/workflows/continuous-integration-side-tests.yaml @@ -0,0 +1,45 @@ +name: Continuous Integration - Side Tests + +env: + TL_DEPTH: ${{ github.event.pull_request.head.repo.fork && '0' || fromJson(vars.TL_DEPTH) }} + TL_LEVEL: ${{ github.event.pull_request.head.repo.fork && 'info' || vars.TL_LEVEL }} + +on: + pull_request: + push: + branches: ['master'] + tags: ['*.*.*'] + +jobs: + build_and_test: + strategy: + matrix: + os: [ubuntu-20.04] + runs-on: ${{ matrix.os }} + steps: + - name: 📥 Checkout repository + uses: actions/checkout@v3 + + - name: 🧰 Setup Node.js + uses: actions/setup-node@v3 + with: + node-version: 18.12.0 + + - name: 🔨 Build + run: | + yarn install --immutable --inline-builds --mode=skip-build + yarn build + env: + NODE_OPTIONS: '--max_old_space_size=8192' + + - name: 🔃 Check for circular dependencies + run: | + yarn circular-deps:check + + - name: 🔬 Test + run: | + yarn lint + yarn test:build:verify + yarn workspace @cardano-sdk/cardano-services test:cli + env: + NODE_OPTIONS: '--max_old_space_size=8192' diff --git a/.github/workflows/continuous-integration-unit-tests.yaml b/.github/workflows/continuous-integration-unit-tests.yaml index 0c8f31ca354..02e29b16ac2 100644 --- a/.github/workflows/continuous-integration-unit-tests.yaml +++ b/.github/workflows/continuous-integration-unit-tests.yaml @@ -27,7 +27,7 @@ jobs: - name: 🔨 Build run: | - yarn install --immutable --inline-builds + yarn install --immutable --inline-builds --mode=skip-build yarn build env: NODE_OPTIONS: '--max_old_space_size=8192' @@ -36,18 +36,11 @@ jobs: run: | git checkout yarn-project.nix if [ ! -z "$(git status --porcelain)" ] ; then git status ; echo "The PR is missing some generated file" ; exit 1 ; fi - yarn lint env: NODE_OPTIONS: '--max_old_space_size=8192' - - name: 🔃 Check for circular dependencies - run: | - yarn circular-deps:check - - name: 🔬 Test run: | - yarn test:build:verify yarn test --forceExit - yarn workspace @cardano-sdk/cardano-services test:cli env: NODE_OPTIONS: '--max_old_space_size=8192' From 52fd13248ad02ccc29f2e2ba513ae3c541ccf9ac Mon Sep 17 00:00:00 2001 From: Daniele Ricci Date: Wed, 22 May 2024 16:03:31 +0200 Subject: [PATCH 3/3] refactor: optimize e2e tests --- .../workflows/continuous-integration-e2e.yaml | 22 ++- Dockerfile | 5 +- compose/common.yml | 33 +--- packages/cardano-services/docker-compose.yml | 2 - packages/e2e/docker-compose.yml | 6 +- packages/e2e/jest.config.js | 5 +- packages/e2e/local-network/Dockerfile | 2 +- .../e2e/local-network/scripts/is-db-synced.sh | 24 --- .../scripts/pools/update-node-sp1.sh | 2 +- .../scripts/pools/update-node-sp10.sh | 2 +- .../scripts/pools/update-node-sp11.sh | 2 +- .../scripts/pools/update-node-sp2.sh | 2 +- .../scripts/pools/update-node-sp3.sh | 2 +- .../scripts/pools/update-node-sp4.sh | 2 +- .../scripts/pools/update-node-sp5.sh | 2 +- .../scripts/pools/update-node-sp6.sh | 2 +- .../scripts/pools/update-node-sp7.sh | 2 +- .../scripts/pools/update-node-sp8.sh | 2 +- .../scripts/pools/update-node-sp9.sh | 2 +- .../scripts/pools/update-node-utils.sh | 154 +++++++++--------- packages/e2e/local-network/scripts/start.sh | 14 +- .../scripts/update-stake-pools.sh.sh | 13 ++ .../scripts/wait-local-network-init.sh | 11 ++ packages/e2e/package.json | 7 +- .../e2e/src/scripts/is-local-network-ready.ts | 12 +- .../shared-wallet-delegation-rewards.test.ts | 2 +- .../PersonalWallet/byron.test.ts | 0 .../PersonalWallet/handle.test.ts | 0 .../PersonalWallet/metadata.test.ts | 0 .../PersonalWallet/mint.test.ts | 0 .../PersonalWallet/multiAddress.test.ts | 0 .../PersonalWallet/multisignature.test.ts | 0 .../PersonalWallet/nft.test.ts | 0 .../PersonalWallet/phase2validation.test.ts | 0 .../pouchDbWalletStores.test.ts | 0 .../PersonalWallet/txChainHistory.test.ts | 0 .../PersonalWallet/txChaining.test.ts | 0 .../PersonalWallet/unspendableUtxos.test.ts | 0 .../SharedWallet/simpleTx.test.ts | 2 +- .../SharedWallet/utils.ts} | 0 .../PersonalWallet/delegation.test.ts | 0 .../delegationDistribution.test.ts | 0 .../SharedWallet/delegation.test.ts | 2 +- 43 files changed, 159 insertions(+), 179 deletions(-) delete mode 100755 packages/e2e/local-network/scripts/is-db-synced.sh create mode 100755 packages/e2e/local-network/scripts/update-stake-pools.sh.sh create mode 100755 packages/e2e/local-network/scripts/wait-local-network-init.sh rename packages/e2e/test/{wallet => wallet_epoch_0}/PersonalWallet/byron.test.ts (100%) rename packages/e2e/test/{wallet => wallet_epoch_0}/PersonalWallet/handle.test.ts (100%) rename packages/e2e/test/{wallet => wallet_epoch_0}/PersonalWallet/metadata.test.ts (100%) rename packages/e2e/test/{wallet => wallet_epoch_0}/PersonalWallet/mint.test.ts (100%) rename packages/e2e/test/{wallet => wallet_epoch_0}/PersonalWallet/multiAddress.test.ts (100%) rename packages/e2e/test/{wallet => wallet_epoch_0}/PersonalWallet/multisignature.test.ts (100%) rename packages/e2e/test/{wallet => wallet_epoch_0}/PersonalWallet/nft.test.ts (100%) rename packages/e2e/test/{wallet => wallet_epoch_0}/PersonalWallet/phase2validation.test.ts (100%) rename packages/e2e/test/{wallet => wallet_epoch_0}/PersonalWallet/pouchDbWalletStores.test.ts (100%) rename packages/e2e/test/{wallet => wallet_epoch_0}/PersonalWallet/txChainHistory.test.ts (100%) rename packages/e2e/test/{wallet => wallet_epoch_0}/PersonalWallet/txChaining.test.ts (100%) rename packages/e2e/test/{wallet => wallet_epoch_0}/PersonalWallet/unspendableUtxos.test.ts (100%) rename packages/e2e/test/{wallet => wallet_epoch_0}/SharedWallet/simpleTx.test.ts (98%) rename packages/e2e/test/{wallet/SharedWallet/ultils.ts => wallet_epoch_0/SharedWallet/utils.ts} (100%) rename packages/e2e/test/{wallet => wallet_epoch_3}/PersonalWallet/delegation.test.ts (100%) rename packages/e2e/test/{wallet => wallet_epoch_3}/PersonalWallet/delegationDistribution.test.ts (100%) rename packages/e2e/test/{wallet => wallet_epoch_3}/SharedWallet/delegation.test.ts (99%) diff --git a/.github/workflows/continuous-integration-e2e.yaml b/.github/workflows/continuous-integration-e2e.yaml index f9fa309b035..a6e7aeb2d60 100644 --- a/.github/workflows/continuous-integration-e2e.yaml +++ b/.github/workflows/continuous-integration-e2e.yaml @@ -50,7 +50,7 @@ jobs: - name: 🔨 Build run: | - yarn install --immutable --inline-builds + yarn install --immutable --inline-builds --mode=skip-build yarn build docker build --no-cache . env: @@ -67,18 +67,24 @@ jobs: OGMIOS_URL: 'ws://ogmios:1340' POSTGRES_PORT: '5435' - - name: Wait for some epochs + - name: Wait for network init run: | - yarn workspace @cardano-sdk/e2e wait-for-network - env: - DB_SYNC_CONNECTION_STRING: 'postgresql://postgres:doNoUseThisSecret!@localhost:5435/cexplorer' + yarn workspace @cardano-sdk/e2e wait-for-network-init - - name: 🔬 Test - e2e - wallet + - name: 🔬 Test - e2e - wallet at epoch 0 run: | - yarn workspace @cardano-sdk/e2e test:wallet - yarn workspace @cardano-sdk/e2e test:providers + yarn workspace @cardano-sdk/e2e test:wallet:epoch0 yarn workspace @cardano-sdk/e2e test:projection + + - name: Wait for epoch 3 + run: | + yarn workspace @cardano-sdk/e2e wait-for-network-epoch-3 + + - name: 🔬 Test - e2e - wallet at epoch 3 + run: | + yarn workspace @cardano-sdk/e2e test:wallet:epoch3 yarn workspace @cardano-sdk/e2e test:pg-boss + yarn workspace @cardano-sdk/e2e test:providers env: STAKE_POOL_PROVIDER_URL: 'http://localhost:4000/' diff --git a/Dockerfile b/Dockerfile index a43675ffcd0..43e04261490 100644 --- a/Dockerfile +++ b/Dockerfile @@ -20,8 +20,7 @@ FROM ubuntu-nodejs as nodejs-builder RUN \ curl --proto '=https' --tlsv1.2 -sSf -L https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - &&\ echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list &&\ - apt-get update && apt-get install pkg-config libusb-1.0 libudev-dev gcc g++ make gnupg2 yarn -y &&\ - yarn global add node-gyp@9.0.0 + apt-get update && apt-get install yarn -y WORKDIR /app COPY build build COPY packages/cardano-services/package.json packages/cardano-services/package.json @@ -118,10 +117,12 @@ WORKDIR /config COPY compose/schedules.json . ENV SCHEDULES=/config/schedules.json WORKDIR /app/packages/cardano-services +HEALTHCHECK CMD curl -s --fail http://localhost:3003/v1.0.0/health CMD ["node", "dist/cjs/cli.js", "start-pg-boss-worker"] FROM cardano-services as projector WORKDIR / COPY compose/projector/init.* ./ RUN chmod 755 init.sh +HEALTHCHECK CMD test `curl -fs http://localhost:3000/v1.0.0/health | jq -r ".services[0].projectedTip.blockNo"` -gt 1 CMD ["./init.sh"] diff --git a/compose/common.yml b/compose/common.yml index 87972a6709d..ab49bb16174 100644 --- a/compose/common.yml +++ b/compose/common.yml @@ -1,5 +1,3 @@ -version: '3.9' - x-from-sdk: &from-sdk healthcheck: interval: 10s @@ -30,7 +28,7 @@ x-provider-server: &provider-server target: provider-server depends_on: cardano-db-sync: - condition: service_healthy + condition: service_started x-with-postgres: &with-postgres depends_on: @@ -113,19 +111,12 @@ services: depends_on: ogmios: condition: service_healthy - healthcheck: - test: ['CMD', '/scripts/is-db-synced.sh'] - interval: 5s - timeout: 1s - retries: 120 - start_period: 100ms image: ghcr.io/intersectmbo/cardano-db-sync:${CARDANO_DB_SYNC_VERSION:-13.1.0.2} restart: on-failure stop_signal: SIGINT volumes: - db-sync-data:/var/lib/cexplorer - node-ipc:/node-ipc - - ../../packages/e2e/local-network/scripts:/scripts cardano-smash: <<: @@ -142,7 +133,7 @@ services: SMASH_PASSWORD: ${SMASH_PASSWORD:-change_m} depends_on: cardano-db-sync: - condition: service_healthy + condition: service_started ports: - ${SMASH_PORT:-3100}:3100 restart: on-failure @@ -214,8 +205,6 @@ services: STAKE_POOL_PROVIDER_URL: http://provider-server:3000/ METADATA_FETCH_MODE: ${METADATA_FETCH_MODE:-smash} SMASH_URL: ${SMASH_URL:-http://cardano-smash:3100/api/v1} - healthcheck: - test: ['CMD-SHELL', 'curl -s --fail http://localhost:3003/v1.0.0/health'] ports: - ${PG_BOSS_PORT:-4003}:3003 @@ -254,12 +243,6 @@ services: - *sdk-environment POSTGRES_DB_FILE: /run/secrets/postgres_db_asset PROJECTION_NAMES: asset - healthcheck: - test: - [ - 'CMD-SHELL', - 'test `curl -fs http://localhost:3000/v1.0.0/health | jq -r ".services[0].projectedTip.blockNo"` -gt 1' - ] ports: - ${ASSET_PROJECTOR_PORT:-4006}:3000 @@ -275,12 +258,6 @@ services: - *sdk-environment POSTGRES_DB_FILE: /run/secrets/postgres_db_handle PROJECTION_NAMES: handle - healthcheck: - test: - [ - 'CMD-SHELL', - 'test `curl -fs http://localhost:3000/v1.0.0/health | jq -r ".services[0].projectedTip.blockNo"` -gt 1' - ] ports: - ${HANDLE_PROJECTOR_PORT:-4004}:3000 @@ -296,12 +273,6 @@ services: - *sdk-environment POSTGRES_DB_FILE: /run/secrets/postgres_db_stake_pool PROJECTION_NAMES: stake-pool,stake-pool-metadata-job,stake-pool-metrics-job,stake-pool-rewards-job - healthcheck: - test: - [ - 'CMD-SHELL', - 'test `curl -fs http://localhost:3000/v1.0.0/health | jq -r ".services[0].projectedTip.blockNo"` -gt 1' - ] ports: - ${STAKE_POOL_PROJECTOR_PORT:-4002}:3000 diff --git a/packages/cardano-services/docker-compose.yml b/packages/cardano-services/docker-compose.yml index b938db496e6..3c8a0328f9b 100644 --- a/packages/cardano-services/docker-compose.yml +++ b/packages/cardano-services/docker-compose.yml @@ -1,5 +1,3 @@ -version: '3.9' - x-logging: &logging logging: driver: 'json-file' diff --git a/packages/e2e/docker-compose.yml b/packages/e2e/docker-compose.yml index 0a008ac7cbf..85a70ab6ed3 100644 --- a/packages/e2e/docker-compose.yml +++ b/packages/e2e/docker-compose.yml @@ -1,5 +1,3 @@ -version: '3.9' - x-logging: &logging logging: driver: 'json-file' @@ -68,9 +66,6 @@ services: - ./local-network/config/network:/config cardano-smash: - depends_on: - cardano-db-sync: - condition: service_healthy volumes: - ./local-network/config/network:/config @@ -113,6 +108,7 @@ services: stake-pool-projector: environment: METADATA_JOB_RETRY_DELAY: 60 + POOLS_METRICS_INTERVAL: 50 volumes: sdk-ipc: diff --git a/packages/e2e/jest.config.js b/packages/e2e/jest.config.js index 51fb3b4b854..1432e787c25 100644 --- a/packages/e2e/jest.config.js +++ b/packages/e2e/jest.config.js @@ -32,11 +32,12 @@ module.exports = { project('pg-boss'), project('projection'), project('providers'), - project('wallet'), + project('wallet_epoch_0'), + project('wallet_epoch_3'), { ...commonProjectProps, displayName: 'wallet-real-ada', - testMatch: [`/test/wallet/PersonalWallet/(${realAdaTestFileNames.join('|')}).test.ts`] + testMatch: [`/test/wallet*/PersonalWallet/(${realAdaTestFileNames.join('|')}).test.ts`] }, { ...commonProjectProps, diff --git a/packages/e2e/local-network/Dockerfile b/packages/e2e/local-network/Dockerfile index d56acb052db..57c2a6fcebe 100644 --- a/packages/e2e/local-network/Dockerfile +++ b/packages/e2e/local-network/Dockerfile @@ -27,7 +27,7 @@ RUN apt-get update -y && \ apt-get install -y tzdata ca-certificates jq coreutils curl wget HEALTHCHECK --interval=5s --timeout=1s --retries=200 --start-period=100ms \ - CMD /root/scripts/get-epoch.sh | awk '{ if ($0 >= "3") exit 0; else exit 1}' + CMD test -e /root/network-files/run/healthy STOPSIGNAL SIGINT COPY --from=builder /build/cardano-node /opt/cardano-node diff --git a/packages/e2e/local-network/scripts/is-db-synced.sh b/packages/e2e/local-network/scripts/is-db-synced.sh deleted file mode 100755 index 3ca4ca47257..00000000000 --- a/packages/e2e/local-network/scripts/is-db-synced.sh +++ /dev/null @@ -1,24 +0,0 @@ -#!/usr/bin/env bash - -set -euo pipefail - -here="$(cd "$(dirname "$0")" >/dev/null 2>&1 && pwd)" -root="$(cd "$here/.." && pwd)" - -cd "$root" - -export PATH=$PWD/bin:$PATH - -user=$(cat /run/secrets/postgres_user) -pass=$(cat /run/secrets/postgres_password) -db=$(cat /run/secrets/postgres_db) - -queryResult=$(psql -d postgresql://"$user":"$pass"@"$POSTGRES_HOST":"$POSTGRES_PORT"/"$db" -c 'select epoch.no from epoch order by epoch.no DESC limit 1') -arr=(${queryResult//\\n/ }) -epoch="${arr[2]}" - -if [[ $epoch -lt 3 ]]; then - exit 9 -fi - -exit 0 diff --git a/packages/e2e/local-network/scripts/pools/update-node-sp1.sh b/packages/e2e/local-network/scripts/pools/update-node-sp1.sh index fabfc0b4600..eb97856b301 100755 --- a/packages/e2e/local-network/scripts/pools/update-node-sp1.sh +++ b/packages/e2e/local-network/scripts/pools/update-node-sp1.sh @@ -16,7 +16,7 @@ POOL_COST=390000000 POOL_MARGIN=0.15 METADATA_URL="http://file-server/SP${SP_NODE_ID}.json" -source ./scripts/pools/update-node-utils.sh +source ./scripts/pools/update-node-utils.sh ${SP_NODE_ID} trap clean EXIT diff --git a/packages/e2e/local-network/scripts/pools/update-node-sp10.sh b/packages/e2e/local-network/scripts/pools/update-node-sp10.sh index 2d0780274b2..5eff041a1fd 100755 --- a/packages/e2e/local-network/scripts/pools/update-node-sp10.sh +++ b/packages/e2e/local-network/scripts/pools/update-node-sp10.sh @@ -17,7 +17,7 @@ POOL_COST=410000000 POOL_MARGIN=0.15 METADATA_URL="http://file-server/SP${SP_NODE_ID}.json" -source ./scripts/pools/update-node-utils.sh +source ./scripts/pools/update-node-utils.sh ${SP_NODE_ID} trap clean EXIT diff --git a/packages/e2e/local-network/scripts/pools/update-node-sp11.sh b/packages/e2e/local-network/scripts/pools/update-node-sp11.sh index 13c164ca432..342d4295434 100755 --- a/packages/e2e/local-network/scripts/pools/update-node-sp11.sh +++ b/packages/e2e/local-network/scripts/pools/update-node-sp11.sh @@ -17,7 +17,7 @@ POOL_COST=390000000 POOL_MARGIN=0.15 METADATA_URL="http://file-server/SP${SP_NODE_ID}.json" -source ./scripts/pools/update-node-utils.sh +source ./scripts/pools/update-node-utils.sh ${SP_NODE_ID} trap clean EXIT diff --git a/packages/e2e/local-network/scripts/pools/update-node-sp2.sh b/packages/e2e/local-network/scripts/pools/update-node-sp2.sh index 6496c64078a..0960566a284 100755 --- a/packages/e2e/local-network/scripts/pools/update-node-sp2.sh +++ b/packages/e2e/local-network/scripts/pools/update-node-sp2.sh @@ -16,7 +16,7 @@ POOL_COST=390000000 POOL_MARGIN=0.15 METADATA_URL="" # Leave it empty and the metadata field will be ignore in the TX -source ./scripts/pools/update-node-utils.sh +source ./scripts/pools/update-node-utils.sh ${SP_NODE_ID} trap clean EXIT diff --git a/packages/e2e/local-network/scripts/pools/update-node-sp3.sh b/packages/e2e/local-network/scripts/pools/update-node-sp3.sh index 6495a597038..cbdb3619b78 100755 --- a/packages/e2e/local-network/scripts/pools/update-node-sp3.sh +++ b/packages/e2e/local-network/scripts/pools/update-node-sp3.sh @@ -16,7 +16,7 @@ POOL_COST=390000000 POOL_MARGIN=0.15 METADATA_URL="http://file-server/SP${SP_NODE_ID}.json" -source ./scripts/pools/update-node-utils.sh +source ./scripts/pools/update-node-utils.sh ${SP_NODE_ID} trap clean EXIT diff --git a/packages/e2e/local-network/scripts/pools/update-node-sp4.sh b/packages/e2e/local-network/scripts/pools/update-node-sp4.sh index 375a2e3876c..729da068b3b 100755 --- a/packages/e2e/local-network/scripts/pools/update-node-sp4.sh +++ b/packages/e2e/local-network/scripts/pools/update-node-sp4.sh @@ -16,7 +16,7 @@ POOL_COST=370000000 POOL_MARGIN=0.15 METADATA_URL="http://file-server/SP${SP_NODE_ID}.json" -source ./scripts/pools/update-node-utils.sh +source ./scripts/pools/update-node-utils.sh ${SP_NODE_ID} trap clean EXIT diff --git a/packages/e2e/local-network/scripts/pools/update-node-sp5.sh b/packages/e2e/local-network/scripts/pools/update-node-sp5.sh index 1eb3ac614ec..c7e9fa58a58 100755 --- a/packages/e2e/local-network/scripts/pools/update-node-sp5.sh +++ b/packages/e2e/local-network/scripts/pools/update-node-sp5.sh @@ -16,7 +16,7 @@ POOL_COST=390000000 POOL_MARGIN=0.15 METADATA_URL="http://file-server/SP${SP_NODE_ID}.json" -source ./scripts/pools/update-node-utils.sh +source ./scripts/pools/update-node-utils.sh ${SP_NODE_ID} trap clean EXIT diff --git a/packages/e2e/local-network/scripts/pools/update-node-sp6.sh b/packages/e2e/local-network/scripts/pools/update-node-sp6.sh index 9460ff24f15..f87399b2463 100755 --- a/packages/e2e/local-network/scripts/pools/update-node-sp6.sh +++ b/packages/e2e/local-network/scripts/pools/update-node-sp6.sh @@ -16,7 +16,7 @@ POOL_COST=400000000 POOL_MARGIN=0.15 METADATA_URL="http://file-server/SP${SP_NODE_ID}.json" -source ./scripts/pools/update-node-utils.sh +source ./scripts/pools/update-node-utils.sh ${SP_NODE_ID} trap clean EXIT diff --git a/packages/e2e/local-network/scripts/pools/update-node-sp7.sh b/packages/e2e/local-network/scripts/pools/update-node-sp7.sh index e0b5e75c5b2..b8c8eb6d783 100755 --- a/packages/e2e/local-network/scripts/pools/update-node-sp7.sh +++ b/packages/e2e/local-network/scripts/pools/update-node-sp7.sh @@ -16,7 +16,7 @@ POOL_COST=390000000 POOL_MARGIN=0.15 METADATA_URL="http://file-server/SP${SP_NODE_ID}.json" -source ./scripts/pools/update-node-utils.sh +source ./scripts/pools/update-node-utils.sh ${SP_NODE_ID} trap clean EXIT diff --git a/packages/e2e/local-network/scripts/pools/update-node-sp8.sh b/packages/e2e/local-network/scripts/pools/update-node-sp8.sh index cd4aca693c9..0ffc0aab884 100755 --- a/packages/e2e/local-network/scripts/pools/update-node-sp8.sh +++ b/packages/e2e/local-network/scripts/pools/update-node-sp8.sh @@ -17,7 +17,7 @@ POOL_COST=380000000 POOL_MARGIN=0.15 METADATA_URL="" # Leave it empty and the metadata field will be ignore in the TX -source ./scripts/pools/update-node-utils.sh +source ./scripts/pools/update-node-utils.sh ${SP_NODE_ID} trap clean EXIT diff --git a/packages/e2e/local-network/scripts/pools/update-node-sp9.sh b/packages/e2e/local-network/scripts/pools/update-node-sp9.sh index e59ab63ecbd..e75e96aabb1 100755 --- a/packages/e2e/local-network/scripts/pools/update-node-sp9.sh +++ b/packages/e2e/local-network/scripts/pools/update-node-sp9.sh @@ -17,7 +17,7 @@ POOL_COST=390000000 POOL_MARGIN=0.15 METADATA_URL="" # Leave it empty and the metadata field will be ignore in the TX -source ./scripts/pools/update-node-utils.sh +source ./scripts/pools/update-node-utils.sh ${SP_NODE_ID} trap clean EXIT diff --git a/packages/e2e/local-network/scripts/pools/update-node-utils.sh b/packages/e2e/local-network/scripts/pools/update-node-utils.sh index 78b722d3ac5..a180e00fa5c 100755 --- a/packages/e2e/local-network/scripts/pools/update-node-utils.sh +++ b/packages/e2e/local-network/scripts/pools/update-node-utils.sh @@ -9,22 +9,26 @@ cd "$root" export PATH=$PWD/bin:$PATH +SP_NODE_ID="$1" + +mkdir ${SP_NODE_ID} + clean() { - rm -rf pool-owner-registration.cert pool-owner-delegation.cert wallets-tx.raw wallets-tx.signed fullUtxo.out balance.out params.json stake.cert pool.cert deleg.cert tx.tmp tx.raw tx.signed + rm -rf ${SP_NODE_ID} } getAddressBalance() { cardano-cli query utxo \ --address "$1" \ - --testnet-magic 888 >fullUtxo.out + --testnet-magic 888 > ${SP_NODE_ID}/fullUtxo.out - tail -n +3 fullUtxo.out | sort -k3 -nr >balance.out + tail -n +3 ${SP_NODE_ID}/fullUtxo.out | sort -k3 -nr > ${SP_NODE_ID}/balance.out total_balance=0 while read -r utxo; do utxo_balance=$(awk '{ print $3 }' <<<"${utxo}") total_balance=$(("$total_balance" + "$utxo_balance")) - done &1 + --out-file ${SP_NODE_ID}/wallets-tx.raw 2>&1 cardano-cli transaction sign \ - --tx-body-file wallets-tx.raw \ + --tx-body-file ${SP_NODE_ID}/wallets-tx.raw \ --signing-key-file "$genesisSKey" \ --testnet-magic 888 \ - --out-file wallets-tx.signed 2>&1 + --out-file ${SP_NODE_ID}/wallets-tx.signed 2>&1 - cardano-cli transaction submit --testnet-magic 888 --tx-file wallets-tx.signed 2>&1 + cardano-cli transaction submit --testnet-magic 888 --tx-file ${SP_NODE_ID}/wallets-tx.signed 2>&1 updatedBalance=$(getAddressBalance "$stakeAddr") @@ -103,7 +107,7 @@ updatePool() { currentBalance=$(getAddressBalance "$genesisAddr") cardano-cli stake-address registration-certificate \ --stake-verification-key-file "$stakeVKey" \ - --out-file pool-owner-registration.cert + --out-file ${SP_NODE_ID}/pool-owner-registration.cert utxo=$(cardano-cli query utxo --address "$genesisAddr" --testnet-magic 888 | awk 'NR == 3 {printf("%s#%s", $1, $2)}') @@ -112,17 +116,17 @@ updatePool() { --tx-out "$genesisAddr"+0 \ --invalid-hereafter 5000000 \ --fee 0 \ - --out-file tx.tmp \ - --certificate pool-owner-registration.cert + --out-file ${SP_NODE_ID}/tx.tmp \ + --certificate ${SP_NODE_ID}/pool-owner-registration.cert fee=$(cardano-cli transaction calculate-min-fee \ - --tx-body-file tx.tmp \ + --tx-body-file ${SP_NODE_ID}/tx.tmp \ --tx-in-count 1 \ --tx-out-count 1 \ --testnet-magic 888 \ --witness-count 2 \ --byron-witness-count 0 \ - --protocol-params-file ./params.json | awk '{ print $1 }') + --protocol-params-file ${SP_NODE_ID}/params.json | awk '{ print $1 }') initialBalance=$(getAddressBalance "$genesisAddr") txOut=$((initialBalance - fee)) @@ -132,18 +136,18 @@ updatePool() { --tx-out "$genesisAddr"+"$txOut" \ --invalid-hereafter 5000000 \ --fee "$fee" \ - --certificate pool-owner-registration.cert \ - --out-file tx.raw + --certificate ${SP_NODE_ID}/pool-owner-registration.cert \ + --out-file ${SP_NODE_ID}/tx.raw cardano-cli transaction sign \ - --tx-body-file tx.raw \ + --tx-body-file ${SP_NODE_ID}/tx.raw \ --signing-key-file "$genesisSKey" \ --signing-key-file "$stakeKey" \ --testnet-magic 888 \ - --out-file tx.signed + --out-file ${SP_NODE_ID}/tx.signed cardano-cli transaction submit \ - --tx-file tx.signed \ + --tx-file ${SP_NODE_ID}/tx.signed \ --testnet-magic 888 updatedBalance=$(getAddressBalance "$genesisAddr") @@ -158,7 +162,7 @@ updatePool() { cardano-cli stake-address delegation-certificate \ --stake-verification-key-file "$stakeVKey" \ --cold-verification-key-file "$coldVKey" \ - --out-file pool-owner-delegation.cert + --out-file ${SP_NODE_ID}/pool-owner-delegation.cert utxo=$(cardano-cli query utxo --address "$genesisAddr" --testnet-magic 888 | awk 'NR == 3 {printf("%s#%s", $1, $2)}') @@ -167,17 +171,17 @@ updatePool() { --tx-out "$genesisAddr"+0 \ --invalid-hereafter 5000000 \ --fee 0 \ - --out-file tx.tmp \ - --certificate pool-owner-delegation.cert + --out-file ${SP_NODE_ID}/tx.tmp \ + --certificate ${SP_NODE_ID}/pool-owner-delegation.cert fee=$(cardano-cli transaction calculate-min-fee \ - --tx-body-file tx.tmp \ + --tx-body-file ${SP_NODE_ID}/tx.tmp \ --tx-in-count 1 \ --tx-out-count 1 \ --testnet-magic 888 \ --witness-count 2 \ --byron-witness-count 0 \ - --protocol-params-file ./params.json | awk '{ print $1 }') + --protocol-params-file ${SP_NODE_ID}/params.json | awk '{ print $1 }') initialBalance=$(getAddressBalance "$genesisAddr") txOut=$((initialBalance - fee)) @@ -187,18 +191,18 @@ updatePool() { --tx-out "$genesisAddr"+"$txOut" \ --invalid-hereafter 5000000 \ --fee "$fee" \ - --certificate pool-owner-delegation.cert \ - --out-file tx.raw + --certificate ${SP_NODE_ID}/pool-owner-delegation.cert \ + --out-file ${SP_NODE_ID}/tx.raw cardano-cli transaction sign \ - --tx-body-file tx.raw \ + --tx-body-file ${SP_NODE_ID}/tx.raw \ --signing-key-file "$genesisSKey" \ --signing-key-file "$stakeKey" \ --testnet-magic 888 \ - --out-file tx.signed + --out-file ${SP_NODE_ID}/tx.signed cardano-cli transaction submit \ - --tx-file tx.signed \ + --tx-file ${SP_NODE_ID}/tx.signed \ --testnet-magic 888 updatedBalance=$(getAddressBalance "$genesisAddr") @@ -218,7 +222,7 @@ updatePool() { cardano-cli stake-address delegation-certificate \ --stake-verification-key-file "$delegatorStakeKey" \ --stake-pool-id "$POOL_ID" \ - --out-file deleg.cert + --out-file ${SP_NODE_ID}/deleg.cert utxo=$(cardano-cli query utxo --address "$paymentAddr" --testnet-magic 888 | awk 'NR == 3 {printf("%s#%s", $1, $2)}') @@ -227,17 +231,17 @@ updatePool() { --tx-out "$paymentAddr"+0 \ --invalid-hereafter 5000000 \ --fee 0 \ - --out-file tx.tmp \ - --certificate deleg.cert + --out-file ${SP_NODE_ID}/tx.tmp \ + --certificate ${SP_NODE_ID}/deleg.cert fee=$(cardano-cli transaction calculate-min-fee \ - --tx-body-file tx.tmp \ + --tx-body-file ${SP_NODE_ID}/tx.tmp \ --tx-in-count 1 \ --tx-out-count 1 \ --testnet-magic 888 \ --witness-count 2 \ --byron-witness-count 0 \ - --protocol-params-file ./params.json | awk '{ print $1 }') + --protocol-params-file ${SP_NODE_ID}/params.json | awk '{ print $1 }') initialBalance=$(getAddressBalance "$paymentAddr") txOut=$((initialBalance - fee)) @@ -247,18 +251,18 @@ updatePool() { --tx-out "$paymentAddr"+"$txOut" \ --invalid-hereafter 5000000 \ --fee "$fee" \ - --certificate-file deleg.cert \ - --out-file tx.raw + --certificate-file ${SP_NODE_ID}/deleg.cert \ + --out-file ${SP_NODE_ID}/tx.raw cardano-cli transaction sign \ - --tx-body-file tx.raw \ + --tx-body-file ${SP_NODE_ID}/tx.raw \ --signing-key-file "$delegatorPaymentSKey" \ --signing-key-file "$delegatorStakeSKey" \ --testnet-magic 888 \ - --out-file tx.signed + --out-file ${SP_NODE_ID}/tx.signed cardano-cli transaction submit \ - --tx-file tx.signed \ + --tx-file ${SP_NODE_ID}/tx.signed \ --testnet-magic 888 updatedBalance=$(getAddressBalance "$paymentAddr") @@ -287,7 +291,7 @@ updatePool() { --pool-relay-port 300"$SP_NODE_ID" \ --metadata-url "${METADATA_URL}" \ --metadata-hash "${METADATA_HASH}" \ - --out-file pool.cert + --out-file ${SP_NODE_ID}/pool.cert else cardano-cli stake-pool registration-certificate \ --cold-verification-key-file "$coldVKey" \ @@ -300,7 +304,7 @@ updatePool() { --testnet-magic 888 \ --pool-relay-ipv4 127.0.0.1 \ --pool-relay-port 300"$SP_NODE_ID" \ - --out-file pool.cert + --out-file ${SP_NODE_ID}/pool.cert fi utxo=$(cardano-cli query utxo --address "$paymentAddr" --testnet-magic 888 | awk 'NR == 3 {printf("%s#%s", $1, $2)}') @@ -310,17 +314,17 @@ updatePool() { --tx-out "$paymentAddr"+"$txOut" \ --invalid-hereafter 500000 \ --fee 0 \ - --certificate-file pool.cert \ - --out-file tx.tmp + --certificate-file ${SP_NODE_ID}/pool.cert \ + --out-file ${SP_NODE_ID}/tx.tmp fee=$(cardano-cli transaction calculate-min-fee \ - --tx-body-file tx.tmp \ + --tx-body-file ${SP_NODE_ID}/tx.tmp \ --tx-in-count 1 \ --tx-out-count 1 \ --testnet-magic 888 \ --witness-count 3 \ --byron-witness-count 0 \ - --protocol-params-file ./params.json | awk '{ print $1 }') + --protocol-params-file ${SP_NODE_ID}/params.json | awk '{ print $1 }') initialBalance=$(getAddressBalance "$paymentAddr") txOut=$((initialBalance - fee)) @@ -330,19 +334,19 @@ updatePool() { --tx-out "$paymentAddr"+"$txOut" \ --invalid-hereafter 500000 \ --fee "$fee" \ - --certificate-file pool.cert \ - --out-file tx.raw + --certificate-file ${SP_NODE_ID}/pool.cert \ + --out-file ${SP_NODE_ID}/tx.raw cardano-cli transaction sign \ - --tx-body-file tx.raw \ + --tx-body-file ${SP_NODE_ID}/tx.raw \ --signing-key-file "$delegatorPaymentSKey" \ --signing-key-file "$coldKey" \ --signing-key-file "$stakeKey" \ --testnet-magic 888 \ - --out-file tx.signed + --out-file ${SP_NODE_ID}/tx.signed cardano-cli transaction submit \ - --tx-file tx.signed \ + --tx-file ${SP_NODE_ID}/tx.signed \ --testnet-magic 888 updatedBalance=$(getAddressBalance "$paymentAddr") @@ -366,10 +370,10 @@ deregisterPool() { done # get the protocol parameters - cardano-cli query protocol-parameters --testnet-magic 888 --out-file params.json + cardano-cli query protocol-parameters --testnet-magic 888 --out-file ${SP_NODE_ID}/params.json - genesisVKey=network-files/utxo-keys/utxo3.vkey - genesisSKey=network-files/utxo-keys/utxo3.skey + genesisVKey=network-files/utxo-keys/utxo${SP_NODE_ID}.vkey + genesisSKey=network-files/utxo-keys/utxo${SP_NODE_ID}.skey genesisAddr=$(cardano-cli address build --payment-verification-key-file "$genesisVKey" --testnet-magic 888) stakeKey=network-files/pools/staking-reward"${SP_NODE_ID}".skey coldVKey=network-files/pools/cold"${SP_NODE_ID}".vkey @@ -391,7 +395,7 @@ deregisterPool() { cardano-cli stake-address delegation-certificate \ --stake-verification-key-file "$delegatorStakeKey" \ --stake-pool-id "$POOL_ID" \ - --out-file deleg.cert + --out-file ${SP_NODE_ID}/deleg.cert utxo=$(cardano-cli query utxo --address "$paymentAddr" --testnet-magic 888 | awk 'NR == 3 {printf("%s#%s", $1, $2)}') @@ -400,17 +404,17 @@ deregisterPool() { --tx-out "$paymentAddr"+0 \ --invalid-hereafter 5000000 \ --fee 0 \ - --out-file tx.tmp \ - --certificate deleg.cert + --out-file ${SP_NODE_ID}/tx.tmp \ + --certificate ${SP_NODE_ID}/deleg.cert fee=$(cardano-cli transaction calculate-min-fee \ - --tx-body-file tx.tmp \ + --tx-body-file ${SP_NODE_ID}/tx.tmp \ --tx-in-count 1 \ --tx-out-count 1 \ --testnet-magic 888 \ --witness-count 2 \ --byron-witness-count 0 \ - --protocol-params-file ./params.json | awk '{ print $1 }') + --protocol-params-file ${SP_NODE_ID}/params.json | awk '{ print $1 }') initialBalance=$(getAddressBalance "$paymentAddr") txOut=$((initialBalance - fee)) @@ -420,18 +424,18 @@ deregisterPool() { --tx-out "$paymentAddr"+"$txOut" \ --invalid-hereafter 5000000 \ --fee "$fee" \ - --certificate-file deleg.cert \ - --out-file tx.raw + --certificate-file ${SP_NODE_ID}/deleg.cert \ + --out-file ${SP_NODE_ID}/tx.raw cardano-cli transaction sign \ - --tx-body-file tx.raw \ + --tx-body-file ${SP_NODE_ID}/tx.raw \ --signing-key-file "$delegatorPaymentSKey" \ --signing-key-file "$delegatorStakeSKey" \ --testnet-magic 888 \ - --out-file tx.signed + --out-file ${SP_NODE_ID}/tx.signed cardano-cli transaction submit \ - --tx-file tx.signed \ + --tx-file ${SP_NODE_ID}/tx.signed \ --testnet-magic 888 updatedBalance=$(getAddressBalance "$paymentAddr") @@ -448,7 +452,7 @@ deregisterPool() { cardano-cli stake-pool deregistration-certificate \ --cold-verification-key-file "$coldVKey" \ --epoch "$RETIRING_EPOCH" \ - --out-file pool.dereg + --out-file ${SP_NODE_ID}/pool.dereg utxo=$(cardano-cli query utxo --address "$genesisAddr" --testnet-magic 888 | awk 'NR == 3 {printf("%s#%s", $1, $2)}') @@ -457,17 +461,17 @@ deregisterPool() { --tx-out "$genesisAddr"+0 \ --invalid-hereafter 500000 \ --fee 0 \ - --certificate-file pool.dereg \ - --out-file tx.tmp + --certificate-file ${SP_NODE_ID}/pool.dereg \ + --out-file ${SP_NODE_ID}/tx.tmp fee=$(cardano-cli transaction calculate-min-fee \ - --tx-body-file tx.tmp \ + --tx-body-file ${SP_NODE_ID}/tx.tmp \ --tx-in-count 1 \ --tx-out-count 1 \ --testnet-magic 888 \ --witness-count 3 \ --byron-witness-count 0 \ - --protocol-params-file ./params.json | awk '{ print $1 }') + --protocol-params-file ${SP_NODE_ID}/params.json | awk '{ print $1 }') initialBalance=$(getAddressBalance "$genesisAddr") txOut=$((initialBalance - fee)) @@ -477,19 +481,19 @@ deregisterPool() { --tx-out "$genesisAddr"+"$txOut" \ --invalid-hereafter 500000 \ --fee "$fee" \ - --certificate-file pool.dereg \ - --out-file tx.raw + --certificate-file ${SP_NODE_ID}/pool.dereg \ + --out-file ${SP_NODE_ID}/tx.raw cardano-cli transaction sign \ - --tx-body-file tx.raw \ + --tx-body-file ${SP_NODE_ID}/tx.raw \ --signing-key-file "$genesisSKey" \ --signing-key-file "$coldKey" \ --signing-key-file "$stakeKey" \ --testnet-magic 888 \ - --out-file tx.signed + --out-file ${SP_NODE_ID}/tx.signed cardano-cli transaction submit \ - --tx-file tx.signed \ + --tx-file ${SP_NODE_ID}/tx.signed \ --testnet-magic 888 updatedBalance=$(getAddressBalance "$genesisAddr") diff --git a/packages/e2e/local-network/scripts/start.sh b/packages/e2e/local-network/scripts/start.sh index 2f1def24a06..2c959206d0c 100755 --- a/packages/e2e/local-network/scripts/start.sh +++ b/packages/e2e/local-network/scripts/start.sh @@ -8,6 +8,11 @@ here="$(cd "$(dirname "$0")" >/dev/null 2>&1 && pwd)" root="$(cd "$here/.." && pwd)" cd "$root" +healthy() { + sleep 20 + touch ./network-files/run/healthy +} + export PATH=$PWD/bin:$PATH source ./scripts/nodes-configuration.sh @@ -21,12 +26,9 @@ trap 'kill 0' INT echo "Run" ./scripts/make-babbage.sh ./network-files/run/all.sh & +healthy & -for ID in ${SP_NODES_ID}; do - if [ -f "./scripts/pools/update-node-sp$ID.sh" ]; then # Only update the pool if a script exists for that pool. - CARDANO_NODE_SOCKET_PATH=$PWD/network-files/node-sp"$ID"/node.sock ./scripts/pools/update-node-sp"$ID".sh - fi -done +./scripts/update-stake-pools.sh.sh "$SP_NODES_ID" CARDANO_NODE_SOCKET_PATH=$PWD/network-files/node-sp1/node.sock ./scripts/plutus-transaction.sh CARDANO_NODE_SOCKET_PATH=$PWD/network-files/node-sp1/node.sock ./scripts/reference-input-transaction.sh @@ -34,4 +36,6 @@ CARDANO_NODE_SOCKET_PATH=$PWD/network-files/node-sp1/node.sock ./scripts/mint-to CARDANO_NODE_SOCKET_PATH=$PWD/network-files/node-sp1/node.sock ./scripts/setup-wallets.sh CARDANO_NODE_SOCKET_PATH=$PWD/network-files/node-sp1/node.sock ./scripts/mint-handles.sh +touch ./network-files/run/done + wait diff --git a/packages/e2e/local-network/scripts/update-stake-pools.sh.sh b/packages/e2e/local-network/scripts/update-stake-pools.sh.sh new file mode 100755 index 00000000000..db1a4692687 --- /dev/null +++ b/packages/e2e/local-network/scripts/update-stake-pools.sh.sh @@ -0,0 +1,13 @@ +#!/usr/bin/env bash + +set -euo pipefail + +SP_NODES_ID="$1" + +for ID in ${SP_NODES_ID}; do + if [ -f "./scripts/pools/update-node-sp$ID.sh" ]; then # Only update the pool if a script exists for that pool. + CARDANO_NODE_SOCKET_PATH=$PWD/network-files/node-sp"$ID"/node.sock ./scripts/pools/update-node-sp"$ID".sh & + fi +done + +wait diff --git a/packages/e2e/local-network/scripts/wait-local-network-init.sh b/packages/e2e/local-network/scripts/wait-local-network-init.sh new file mode 100755 index 00000000000..fb3ce6cc1a5 --- /dev/null +++ b/packages/e2e/local-network/scripts/wait-local-network-init.sh @@ -0,0 +1,11 @@ +#!/usr/bin/env bash + +set -euo pipefail + +while ! docker exec -i local-network-e2e-local-testnet-1 test -e /root/network-files/run/done 2> /dev/null ; do + echo Waiting... + sleep 10 +done + +echo Local network init completed +sleep 10 diff --git a/packages/e2e/package.json b/packages/e2e/package.json index 59a604e87d9..3241f215cf7 100644 --- a/packages/e2e/package.json +++ b/packages/e2e/package.json @@ -31,7 +31,9 @@ "test:ogmios": "jest -c jest.config.js --forceExit --selectProjects ogmios --runInBand --verbose", "test:pg-boss": "jest -c jest.config.js --forceExit --selectProjects pg-boss --runInBand --verbose", "test:providers": "jest -c jest.config.js --forceExit --selectProjects providers --runInBand --verbose", - "test:wallet": "jest -c jest.config.js --forceExit --selectProjects wallet --runInBand --verbose", + "test:wallet": "yarn wait-for-network-init ; yarn test:wallet:epoch0 && { yarn wait-for-network-epoch-3 ; yarn test:wallet:epoch3 ; }", + "test:wallet:epoch0": "jest -c jest.config.js --forceExit --selectProjects wallet_epoch_0 --runInBand --verbose", + "test:wallet:epoch3": "jest -c jest.config.js --forceExit --selectProjects wallet_epoch_3 --runInBand --verbose", "test:wallet-real-ada": "NETWORK_SPEED=slow jest -c jest.config.js --forceExit --selectProjects wallet-real-ada --runInBand --verbose", "test:web-extension:build:sw": "tsc --build ./test && tsc --build ./test/web-extension && webpack -c test/web-extension/webpack.config.sw.js", "test:web-extension:build:other": "tsc --build ./test && tsc --build ./test/web-extension && webpack -c test/web-extension/webpack.config.js", @@ -70,7 +72,8 @@ "test:debug": "DEBUG=true yarn test", "generate-mnemonics": "ts-node src/scripts/mnemonic.ts", "multi-delegation-data-gen": "ts-node src/tools/multi-delegation-data-gen/index.ts", - "wait-for-network": "ts-node src/scripts/is-local-network-ready.ts" + "wait-for-network-epoch-3": "DB_SYNC_CONNECTION_STRING='postgresql://postgres:doNoUseThisSecret!@localhost:5435/cexplorer' ts-node src/scripts/is-local-network-ready.ts", + "wait-for-network-init": "local-network/scripts/wait-local-network-init.sh" }, "repository": "https://github.com/input-output-hk/cardano-js-sdk", "license": "Apache-2.0", diff --git a/packages/e2e/src/scripts/is-local-network-ready.ts b/packages/e2e/src/scripts/is-local-network-ready.ts index b77da1e9e8e..d7fa91d4eb0 100644 --- a/packages/e2e/src/scripts/is-local-network-ready.ts +++ b/packages/e2e/src/scripts/is-local-network-ready.ts @@ -1,5 +1,5 @@ /* eslint-disable no-console */ -import { Pool, QueryResult } from 'pg'; +import { Pool } from 'pg'; const sleep = (ms: number) => new Promise((resolve) => setTimeout(resolve, ms)); @@ -21,13 +21,9 @@ const sleep = (ms: number) => new Promise((resolve) => setTimeout(resolve, ms)); while (!isReady && currentElapsed < waitTime) { try { console.log('Waiting...'); - const inputsResults: QueryResult<{ no: number }> = await db.query( - 'select epoch.no from epoch order by epoch.no DESC limit 1' - ); + const inputsResults = await db.query<{ no: number }>('SELECT no FROM epoch ORDER BY no DESC LIMIT 1'); - isReady = inputsResults.rows[0].no >= 4; // One more than the local network healthcheck - } catch { - // continue + isReady = inputsResults.rows[0].no >= 3; } finally { currentElapsed = Date.now() / 1000 - start; await sleep(5000); @@ -39,5 +35,5 @@ const sleep = (ms: number) => new Promise((resolve) => setTimeout(resolve, ms)); return -1; } - console.log('Local network ready!'); + console.log('Local network reached epoch 3'); })().catch(console.log); diff --git a/packages/e2e/test/long-running/shared-wallet-delegation-rewards.test.ts b/packages/e2e/test/long-running/shared-wallet-delegation-rewards.test.ts index 2515555327f..4bf2c622b14 100644 --- a/packages/e2e/test/long-running/shared-wallet-delegation-rewards.test.ts +++ b/packages/e2e/test/long-running/shared-wallet-delegation-rewards.test.ts @@ -1,6 +1,6 @@ import { BaseWallet } from '@cardano-sdk/wallet'; import { Cardano, StakePoolProvider } from '@cardano-sdk/core'; -import { buildSharedWallets } from '../wallet/SharedWallet/ultils'; +import { buildSharedWallets } from '../wallet_epoch_0/SharedWallet/utils'; import { filter, firstValueFrom, map, take } from 'rxjs'; import { getEnv, diff --git a/packages/e2e/test/wallet/PersonalWallet/byron.test.ts b/packages/e2e/test/wallet_epoch_0/PersonalWallet/byron.test.ts similarity index 100% rename from packages/e2e/test/wallet/PersonalWallet/byron.test.ts rename to packages/e2e/test/wallet_epoch_0/PersonalWallet/byron.test.ts diff --git a/packages/e2e/test/wallet/PersonalWallet/handle.test.ts b/packages/e2e/test/wallet_epoch_0/PersonalWallet/handle.test.ts similarity index 100% rename from packages/e2e/test/wallet/PersonalWallet/handle.test.ts rename to packages/e2e/test/wallet_epoch_0/PersonalWallet/handle.test.ts diff --git a/packages/e2e/test/wallet/PersonalWallet/metadata.test.ts b/packages/e2e/test/wallet_epoch_0/PersonalWallet/metadata.test.ts similarity index 100% rename from packages/e2e/test/wallet/PersonalWallet/metadata.test.ts rename to packages/e2e/test/wallet_epoch_0/PersonalWallet/metadata.test.ts diff --git a/packages/e2e/test/wallet/PersonalWallet/mint.test.ts b/packages/e2e/test/wallet_epoch_0/PersonalWallet/mint.test.ts similarity index 100% rename from packages/e2e/test/wallet/PersonalWallet/mint.test.ts rename to packages/e2e/test/wallet_epoch_0/PersonalWallet/mint.test.ts diff --git a/packages/e2e/test/wallet/PersonalWallet/multiAddress.test.ts b/packages/e2e/test/wallet_epoch_0/PersonalWallet/multiAddress.test.ts similarity index 100% rename from packages/e2e/test/wallet/PersonalWallet/multiAddress.test.ts rename to packages/e2e/test/wallet_epoch_0/PersonalWallet/multiAddress.test.ts diff --git a/packages/e2e/test/wallet/PersonalWallet/multisignature.test.ts b/packages/e2e/test/wallet_epoch_0/PersonalWallet/multisignature.test.ts similarity index 100% rename from packages/e2e/test/wallet/PersonalWallet/multisignature.test.ts rename to packages/e2e/test/wallet_epoch_0/PersonalWallet/multisignature.test.ts diff --git a/packages/e2e/test/wallet/PersonalWallet/nft.test.ts b/packages/e2e/test/wallet_epoch_0/PersonalWallet/nft.test.ts similarity index 100% rename from packages/e2e/test/wallet/PersonalWallet/nft.test.ts rename to packages/e2e/test/wallet_epoch_0/PersonalWallet/nft.test.ts diff --git a/packages/e2e/test/wallet/PersonalWallet/phase2validation.test.ts b/packages/e2e/test/wallet_epoch_0/PersonalWallet/phase2validation.test.ts similarity index 100% rename from packages/e2e/test/wallet/PersonalWallet/phase2validation.test.ts rename to packages/e2e/test/wallet_epoch_0/PersonalWallet/phase2validation.test.ts diff --git a/packages/e2e/test/wallet/PersonalWallet/pouchDbWalletStores.test.ts b/packages/e2e/test/wallet_epoch_0/PersonalWallet/pouchDbWalletStores.test.ts similarity index 100% rename from packages/e2e/test/wallet/PersonalWallet/pouchDbWalletStores.test.ts rename to packages/e2e/test/wallet_epoch_0/PersonalWallet/pouchDbWalletStores.test.ts diff --git a/packages/e2e/test/wallet/PersonalWallet/txChainHistory.test.ts b/packages/e2e/test/wallet_epoch_0/PersonalWallet/txChainHistory.test.ts similarity index 100% rename from packages/e2e/test/wallet/PersonalWallet/txChainHistory.test.ts rename to packages/e2e/test/wallet_epoch_0/PersonalWallet/txChainHistory.test.ts diff --git a/packages/e2e/test/wallet/PersonalWallet/txChaining.test.ts b/packages/e2e/test/wallet_epoch_0/PersonalWallet/txChaining.test.ts similarity index 100% rename from packages/e2e/test/wallet/PersonalWallet/txChaining.test.ts rename to packages/e2e/test/wallet_epoch_0/PersonalWallet/txChaining.test.ts diff --git a/packages/e2e/test/wallet/PersonalWallet/unspendableUtxos.test.ts b/packages/e2e/test/wallet_epoch_0/PersonalWallet/unspendableUtxos.test.ts similarity index 100% rename from packages/e2e/test/wallet/PersonalWallet/unspendableUtxos.test.ts rename to packages/e2e/test/wallet_epoch_0/PersonalWallet/unspendableUtxos.test.ts diff --git a/packages/e2e/test/wallet/SharedWallet/simpleTx.test.ts b/packages/e2e/test/wallet_epoch_0/SharedWallet/simpleTx.test.ts similarity index 98% rename from packages/e2e/test/wallet/SharedWallet/simpleTx.test.ts rename to packages/e2e/test/wallet_epoch_0/SharedWallet/simpleTx.test.ts index f07198fe74b..fb9fe39480a 100644 --- a/packages/e2e/test/wallet/SharedWallet/simpleTx.test.ts +++ b/packages/e2e/test/wallet_epoch_0/SharedWallet/simpleTx.test.ts @@ -1,6 +1,6 @@ import { BaseWallet } from '@cardano-sdk/wallet'; import { Cardano } from '@cardano-sdk/core'; -import { buildSharedWallets } from './ultils'; +import { buildSharedWallets } from './utils'; import { filter, firstValueFrom, map, take } from 'rxjs'; import { getEnv, diff --git a/packages/e2e/test/wallet/SharedWallet/ultils.ts b/packages/e2e/test/wallet_epoch_0/SharedWallet/utils.ts similarity index 100% rename from packages/e2e/test/wallet/SharedWallet/ultils.ts rename to packages/e2e/test/wallet_epoch_0/SharedWallet/utils.ts diff --git a/packages/e2e/test/wallet/PersonalWallet/delegation.test.ts b/packages/e2e/test/wallet_epoch_3/PersonalWallet/delegation.test.ts similarity index 100% rename from packages/e2e/test/wallet/PersonalWallet/delegation.test.ts rename to packages/e2e/test/wallet_epoch_3/PersonalWallet/delegation.test.ts diff --git a/packages/e2e/test/wallet/PersonalWallet/delegationDistribution.test.ts b/packages/e2e/test/wallet_epoch_3/PersonalWallet/delegationDistribution.test.ts similarity index 100% rename from packages/e2e/test/wallet/PersonalWallet/delegationDistribution.test.ts rename to packages/e2e/test/wallet_epoch_3/PersonalWallet/delegationDistribution.test.ts diff --git a/packages/e2e/test/wallet/SharedWallet/delegation.test.ts b/packages/e2e/test/wallet_epoch_3/SharedWallet/delegation.test.ts similarity index 99% rename from packages/e2e/test/wallet/SharedWallet/delegation.test.ts rename to packages/e2e/test/wallet_epoch_3/SharedWallet/delegation.test.ts index b309fd7d216..7ebd854505d 100644 --- a/packages/e2e/test/wallet/SharedWallet/delegation.test.ts +++ b/packages/e2e/test/wallet_epoch_3/SharedWallet/delegation.test.ts @@ -12,7 +12,7 @@ import { walletReady, walletVariables } from '../../../src'; -import { buildSharedWallets } from './ultils'; +import { buildSharedWallets } from '../../wallet_epoch_0/SharedWallet/utils'; import { combineLatest, filter, firstValueFrom, map, take } from 'rxjs'; import { logger } from '@cardano-sdk/util-dev';