From a0bf3b3b03aa98271451674082ded21512938a6c Mon Sep 17 00:00:00 2001 From: willclarktech Date: Thu, 7 Jan 2021 10:23:42 +0000 Subject: [PATCH 1/3] root: Add SES dependency --- package.json | 1 + yarn.lock | 24 ++++++++++++++++++++++++ 2 files changed, 25 insertions(+) diff --git a/package.json b/package.json index 200ef8aaf2..34b6542890 100644 --- a/package.json +++ b/package.json @@ -57,6 +57,7 @@ "lerna": "^3.22.1", "nyc": "^15.1.0", "prettier": "^2.0.5", + "ses": "^0.11.0", "shx": "^0.3.2", "source-map-support": "^0.5.19", "typedoc": "^0.19", diff --git a/yarn.lock b/yarn.lock index e47e662efc..025c59c3ec 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,6 +2,21 @@ # yarn lockfile v1 +"@agoric/babel-standalone@^7.9.5": + version "7.9.5" + resolved "https://registry.yarnpkg.com/@agoric/babel-standalone/-/babel-standalone-7.9.5.tgz#1ca0c17844924199d31e49d6b67e8b2a629b8599" + integrity sha512-1Aa23oPuRi4kywUyZODo8zey9Gq2NpD2xUnNvgJLoT8orMQRlVOtvbG3JeHq5sjJERlF/q6csg4/P8t8/5IABA== + +"@agoric/make-hardener@^0.1.0": + version "0.1.1" + resolved "https://registry.yarnpkg.com/@agoric/make-hardener/-/make-hardener-0.1.1.tgz#9b887da47aeec6637d9db4f0a92a4e740b8262bb" + integrity sha512-3emNc+yWJoFK5JMLoEFPs6rCzkntWQKxpR4gt3jaZYLKoUG4LrTmID3XNe8y40B6SJ3k/wLPodKa0ToQGlhrwQ== + +"@agoric/transform-module@^0.4.1": + version "0.4.1" + resolved "https://registry.yarnpkg.com/@agoric/transform-module/-/transform-module-0.4.1.tgz#9fb152364faf372e1bda535cb4ef89717724f57c" + integrity sha512-4TJJHXeXAWu1FCA7yXCAZmhBNoGTB/BEAe2pv+J2X8W/mJTr9b395OkDCSRMpzvmSshLfBx6wT0D7dqWIWEC1w== + "@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.3": version "7.10.3" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.10.3.tgz#324bcfd8d35cd3d47dae18cde63d752086435e9a" @@ -7812,6 +7827,15 @@ serialize-javascript@^3.1.0: dependencies: randombytes "^2.1.0" +ses@^0.11.0: + version "0.11.0" + resolved "https://registry.yarnpkg.com/ses/-/ses-0.11.0.tgz#1e470112ed320d169f0b850525858129c0be0881" + integrity sha512-3HH+23C4bijk9VegfiP+cBMqkGim/TMsj/DK5nh/pJFiNrCMfi5euvVluIV66ry202+uckg7nXKrgrEcBwU8SA== + dependencies: + "@agoric/babel-standalone" "^7.9.5" + "@agoric/make-hardener" "^0.1.0" + "@agoric/transform-module" "^0.4.1" + set-blocking@^2.0.0, set-blocking@~2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" From 8372a7dca0a5b0a2a47407d927bd1d552b2966ee Mon Sep 17 00:00:00 2001 From: willclarktech Date: Thu, 7 Jan 2021 10:15:14 +0000 Subject: [PATCH 2/3] Add SES lockdown to testrunners Except @cosmjs/cli --- packages/cosmwasm-launchpad/jasmine-testrunner.js | 8 +++++++- packages/cosmwasm-stargate/jasmine-testrunner.js | 8 +++++++- packages/crypto/jasmine-testrunner.js | 8 +++++++- packages/encoding/jasmine-testrunner.js | 8 +++++++- packages/faucet-client/jasmine-testrunner.js | 8 +++++++- packages/faucet/jasmine-testrunner.js | 8 +++++++- packages/json-rpc/jasmine-testrunner.js | 8 +++++++- packages/launchpad-ledger/jasmine-testrunner.js | 8 +++++++- packages/launchpad/jasmine-testrunner.js | 8 +++++++- packages/math/jasmine-testrunner.js | 8 +++++++- packages/proto-signing/jasmine-testrunner.js | 8 +++++++- packages/socket/jasmine-testrunner.js | 8 +++++++- packages/stargate/jasmine-testrunner.js | 8 +++++++- packages/stream/jasmine-testrunner.js | 8 +++++++- packages/tendermint-rpc/jasmine-testrunner.js | 8 +++++++- packages/utils/jasmine-testrunner.js | 8 +++++++- 16 files changed, 112 insertions(+), 16 deletions(-) diff --git a/packages/cosmwasm-launchpad/jasmine-testrunner.js b/packages/cosmwasm-launchpad/jasmine-testrunner.js index 7a17962eb9..6558a13314 100755 --- a/packages/cosmwasm-launchpad/jasmine-testrunner.js +++ b/packages/cosmwasm-launchpad/jasmine-testrunner.js @@ -1,6 +1,12 @@ #!/usr/bin/env node - /* eslint-disable @typescript-eslint/naming-convention */ + +if (process.env.SES_ENABLED) { + require("ses/lockdown"); + // eslint-disable-next-line no-undef + lockdown(); +} + require("source-map-support").install(); const defaultSpecReporterConfig = require("../../jasmine-spec-reporter.config.json"); diff --git a/packages/cosmwasm-stargate/jasmine-testrunner.js b/packages/cosmwasm-stargate/jasmine-testrunner.js index 7a17962eb9..6558a13314 100755 --- a/packages/cosmwasm-stargate/jasmine-testrunner.js +++ b/packages/cosmwasm-stargate/jasmine-testrunner.js @@ -1,6 +1,12 @@ #!/usr/bin/env node - /* eslint-disable @typescript-eslint/naming-convention */ + +if (process.env.SES_ENABLED) { + require("ses/lockdown"); + // eslint-disable-next-line no-undef + lockdown(); +} + require("source-map-support").install(); const defaultSpecReporterConfig = require("../../jasmine-spec-reporter.config.json"); diff --git a/packages/crypto/jasmine-testrunner.js b/packages/crypto/jasmine-testrunner.js index 7a17962eb9..6558a13314 100755 --- a/packages/crypto/jasmine-testrunner.js +++ b/packages/crypto/jasmine-testrunner.js @@ -1,6 +1,12 @@ #!/usr/bin/env node - /* eslint-disable @typescript-eslint/naming-convention */ + +if (process.env.SES_ENABLED) { + require("ses/lockdown"); + // eslint-disable-next-line no-undef + lockdown(); +} + require("source-map-support").install(); const defaultSpecReporterConfig = require("../../jasmine-spec-reporter.config.json"); diff --git a/packages/encoding/jasmine-testrunner.js b/packages/encoding/jasmine-testrunner.js index 7a17962eb9..6558a13314 100755 --- a/packages/encoding/jasmine-testrunner.js +++ b/packages/encoding/jasmine-testrunner.js @@ -1,6 +1,12 @@ #!/usr/bin/env node - /* eslint-disable @typescript-eslint/naming-convention */ + +if (process.env.SES_ENABLED) { + require("ses/lockdown"); + // eslint-disable-next-line no-undef + lockdown(); +} + require("source-map-support").install(); const defaultSpecReporterConfig = require("../../jasmine-spec-reporter.config.json"); diff --git a/packages/faucet-client/jasmine-testrunner.js b/packages/faucet-client/jasmine-testrunner.js index 7a17962eb9..6558a13314 100755 --- a/packages/faucet-client/jasmine-testrunner.js +++ b/packages/faucet-client/jasmine-testrunner.js @@ -1,6 +1,12 @@ #!/usr/bin/env node - /* eslint-disable @typescript-eslint/naming-convention */ + +if (process.env.SES_ENABLED) { + require("ses/lockdown"); + // eslint-disable-next-line no-undef + lockdown(); +} + require("source-map-support").install(); const defaultSpecReporterConfig = require("../../jasmine-spec-reporter.config.json"); diff --git a/packages/faucet/jasmine-testrunner.js b/packages/faucet/jasmine-testrunner.js index 7a17962eb9..6558a13314 100755 --- a/packages/faucet/jasmine-testrunner.js +++ b/packages/faucet/jasmine-testrunner.js @@ -1,6 +1,12 @@ #!/usr/bin/env node - /* eslint-disable @typescript-eslint/naming-convention */ + +if (process.env.SES_ENABLED) { + require("ses/lockdown"); + // eslint-disable-next-line no-undef + lockdown(); +} + require("source-map-support").install(); const defaultSpecReporterConfig = require("../../jasmine-spec-reporter.config.json"); diff --git a/packages/json-rpc/jasmine-testrunner.js b/packages/json-rpc/jasmine-testrunner.js index 7a17962eb9..6558a13314 100755 --- a/packages/json-rpc/jasmine-testrunner.js +++ b/packages/json-rpc/jasmine-testrunner.js @@ -1,6 +1,12 @@ #!/usr/bin/env node - /* eslint-disable @typescript-eslint/naming-convention */ + +if (process.env.SES_ENABLED) { + require("ses/lockdown"); + // eslint-disable-next-line no-undef + lockdown(); +} + require("source-map-support").install(); const defaultSpecReporterConfig = require("../../jasmine-spec-reporter.config.json"); diff --git a/packages/launchpad-ledger/jasmine-testrunner.js b/packages/launchpad-ledger/jasmine-testrunner.js index 7a17962eb9..6558a13314 100755 --- a/packages/launchpad-ledger/jasmine-testrunner.js +++ b/packages/launchpad-ledger/jasmine-testrunner.js @@ -1,6 +1,12 @@ #!/usr/bin/env node - /* eslint-disable @typescript-eslint/naming-convention */ + +if (process.env.SES_ENABLED) { + require("ses/lockdown"); + // eslint-disable-next-line no-undef + lockdown(); +} + require("source-map-support").install(); const defaultSpecReporterConfig = require("../../jasmine-spec-reporter.config.json"); diff --git a/packages/launchpad/jasmine-testrunner.js b/packages/launchpad/jasmine-testrunner.js index 7a17962eb9..6558a13314 100755 --- a/packages/launchpad/jasmine-testrunner.js +++ b/packages/launchpad/jasmine-testrunner.js @@ -1,6 +1,12 @@ #!/usr/bin/env node - /* eslint-disable @typescript-eslint/naming-convention */ + +if (process.env.SES_ENABLED) { + require("ses/lockdown"); + // eslint-disable-next-line no-undef + lockdown(); +} + require("source-map-support").install(); const defaultSpecReporterConfig = require("../../jasmine-spec-reporter.config.json"); diff --git a/packages/math/jasmine-testrunner.js b/packages/math/jasmine-testrunner.js index 7a17962eb9..6558a13314 100755 --- a/packages/math/jasmine-testrunner.js +++ b/packages/math/jasmine-testrunner.js @@ -1,6 +1,12 @@ #!/usr/bin/env node - /* eslint-disable @typescript-eslint/naming-convention */ + +if (process.env.SES_ENABLED) { + require("ses/lockdown"); + // eslint-disable-next-line no-undef + lockdown(); +} + require("source-map-support").install(); const defaultSpecReporterConfig = require("../../jasmine-spec-reporter.config.json"); diff --git a/packages/proto-signing/jasmine-testrunner.js b/packages/proto-signing/jasmine-testrunner.js index 7a17962eb9..6558a13314 100755 --- a/packages/proto-signing/jasmine-testrunner.js +++ b/packages/proto-signing/jasmine-testrunner.js @@ -1,6 +1,12 @@ #!/usr/bin/env node - /* eslint-disable @typescript-eslint/naming-convention */ + +if (process.env.SES_ENABLED) { + require("ses/lockdown"); + // eslint-disable-next-line no-undef + lockdown(); +} + require("source-map-support").install(); const defaultSpecReporterConfig = require("../../jasmine-spec-reporter.config.json"); diff --git a/packages/socket/jasmine-testrunner.js b/packages/socket/jasmine-testrunner.js index 7a17962eb9..6558a13314 100755 --- a/packages/socket/jasmine-testrunner.js +++ b/packages/socket/jasmine-testrunner.js @@ -1,6 +1,12 @@ #!/usr/bin/env node - /* eslint-disable @typescript-eslint/naming-convention */ + +if (process.env.SES_ENABLED) { + require("ses/lockdown"); + // eslint-disable-next-line no-undef + lockdown(); +} + require("source-map-support").install(); const defaultSpecReporterConfig = require("../../jasmine-spec-reporter.config.json"); diff --git a/packages/stargate/jasmine-testrunner.js b/packages/stargate/jasmine-testrunner.js index 7a17962eb9..6558a13314 100755 --- a/packages/stargate/jasmine-testrunner.js +++ b/packages/stargate/jasmine-testrunner.js @@ -1,6 +1,12 @@ #!/usr/bin/env node - /* eslint-disable @typescript-eslint/naming-convention */ + +if (process.env.SES_ENABLED) { + require("ses/lockdown"); + // eslint-disable-next-line no-undef + lockdown(); +} + require("source-map-support").install(); const defaultSpecReporterConfig = require("../../jasmine-spec-reporter.config.json"); diff --git a/packages/stream/jasmine-testrunner.js b/packages/stream/jasmine-testrunner.js index 7a17962eb9..6558a13314 100644 --- a/packages/stream/jasmine-testrunner.js +++ b/packages/stream/jasmine-testrunner.js @@ -1,6 +1,12 @@ #!/usr/bin/env node - /* eslint-disable @typescript-eslint/naming-convention */ + +if (process.env.SES_ENABLED) { + require("ses/lockdown"); + // eslint-disable-next-line no-undef + lockdown(); +} + require("source-map-support").install(); const defaultSpecReporterConfig = require("../../jasmine-spec-reporter.config.json"); diff --git a/packages/tendermint-rpc/jasmine-testrunner.js b/packages/tendermint-rpc/jasmine-testrunner.js index 7a17962eb9..6558a13314 100755 --- a/packages/tendermint-rpc/jasmine-testrunner.js +++ b/packages/tendermint-rpc/jasmine-testrunner.js @@ -1,6 +1,12 @@ #!/usr/bin/env node - /* eslint-disable @typescript-eslint/naming-convention */ + +if (process.env.SES_ENABLED) { + require("ses/lockdown"); + // eslint-disable-next-line no-undef + lockdown(); +} + require("source-map-support").install(); const defaultSpecReporterConfig = require("../../jasmine-spec-reporter.config.json"); diff --git a/packages/utils/jasmine-testrunner.js b/packages/utils/jasmine-testrunner.js index 7a17962eb9..6558a13314 100755 --- a/packages/utils/jasmine-testrunner.js +++ b/packages/utils/jasmine-testrunner.js @@ -1,6 +1,12 @@ #!/usr/bin/env node - /* eslint-disable @typescript-eslint/naming-convention */ + +if (process.env.SES_ENABLED) { + require("ses/lockdown"); + // eslint-disable-next-line no-undef + lockdown(); +} + require("source-map-support").install(); const defaultSpecReporterConfig = require("../../jasmine-spec-reporter.config.json"); From 9f45346b2f7e3388b7d1667bf5d03d5df7196493 Mon Sep 17 00:00:00 2001 From: willclarktech Date: Tue, 19 Jan 2021 17:13:10 +0000 Subject: [PATCH 3/3] Add test-node-v12 job to CircleCI --- .circleci/config.yml | 126 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 126 insertions(+) diff --git a/.circleci/config.yml b/.circleci/config.yml index 99f47e07bb..06ffc20667 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -18,6 +18,9 @@ workflows: - test: requires: - build + - test-node-v12: + requires: + - build - test-chrome: requires: - build @@ -191,6 +194,129 @@ jobs: ./scripts/simapp/stop.sh ./scripts/wasmd/stop.sh ./scripts/launchpad/stop.sh + test-node-v12: + machine: + # We can't use a containerized environment since it requires remote docker to start custom containers. + # However, we can't access the remote docker's network from the primary container. This is a + # feature, as documented in https://circleci.com/docs/2.0/building-docker-images/#separation-of-environments + # As a consequence, we cannot use the circleci CLI for this job because "You cannot use the machine + # executor in local jobs." (https://circleci.com/docs/2.0/local-cli/#limitations-of-running-jobs-locally) + # + # Available images: https://circleci.com/docs/2.0/configuration-reference/#available-machine-images + image: ubuntu-2004:202010-01 + steps: + - run: + name: Install Git Large File Storage (LFS) + # In the current image, `sudo apt install git-lfs` requires `sudo apt update` which is too slow + command: | + wget -O "$HOME/git-lfs.deb" https://packagecloud.io/github/git-lfs/packages/ubuntu/focal/git-lfs_2.12.1_amd64.deb/download.deb + sudo dpkg -i "$HOME/git-lfs.deb" + - checkout + - run: # start early for less wait time below + name: Start launchpad + command: ./scripts/launchpad/start.sh + background: true + - run: # start early for less wait time below + name: Start wasmd + command: ./scripts/wasmd/start.sh + background: true + - run: + name: Start simapp + command: ./scripts/simapp/start.sh + background: true + - run: + name: Start Tendermint blockchains + command: ./scripts/tendermint/all_start.sh + background: true + - attach_workspace: + at: /tmp/builds + - run: + name: Merge build folders into project (merge with hardlinks) + command: cp --recursive --link /tmp/builds/* . + - run: + # The images ubuntu-1604 comes with preinstalled nvm, which does not work well with non-login shells + name: Uninstall nvm + # Moving to trash is faster than deleting (gvfs-trash is not installed on this image) + command: mkdir -p ~/.local/share/Trash && mv "$NVM_DIR" ~/.npm ~/.local/share/Trash + - run: + name: Install nodejs + # In the current image, `sudo apt install nodejs` requires `sudo apt update` which is too slow + command: | + wget -O "$HOME/nodejs.deb" https://deb.nodesource.com/node_12.x/pool/main/n/nodejs/nodejs_12.20.1-deb-1nodesource1_amd64.deb + sudo dpkg -i "$HOME/nodejs.deb" + - run: + name: Install yarn + command: | + wget -O "$HOME/yarn.deb" https://dl.yarnpkg.com/debian/pool/main/y/yarn/yarn_1.22.4_all.deb + sudo dpkg -i "$HOME/yarn.deb" + - run: + name: Version information + command: echo "node $(node --version)"; echo "yarn $(yarn --version)" + - restore_cache: + name: Restore Yarn Package Cache + keys: + - yarn-packages-{{ checksum "yarn.lock" }} + - run: + name: Install libusb + # In the current image, `sudo apt install libusb-1.0-0-dev` requires `sudo apt update` which is too slow + command: | + wget -O "$HOME/libusb.deb" http://de.archive.ubuntu.com/ubuntu/pool/main/libu/libusb-1.0/libusb-1.0-0-dev_1.0.23-2build1_amd64.deb + sudo dpkg -i "$HOME/libusb.deb" + - run: + name: Install Dependencies + command: yarn install --frozen-lockfile + - save_cache: + name: Save Yarn Package Cache + key: yarn-packages-{{ checksum "yarn.lock" }} + paths: + - ~/.cache/yarn + - run: + name: Initialize launchpad (deploy contracts and friends) + command: ./scripts/launchpad/init.sh + - run: + name: Initialize wasmd (deploy contracts and friends) + command: ./scripts/wasmd/init.sh + - run: + name: Start socket server + command: ./scripts/socketserver/start.sh + - run: + environment: + LAUNCHPAD_ENABLED: 1 + ERC20_ENABLED: 1 + SIMAPP_ENABLED: 1 + TENDERMINT_ENABLED: 1 + SOCKETSERVER_ENABLED: 1 + SKIP_BUILD: 1 + WASMD_ENABLED: 1 + SES_ENABLED: 1 + command: yarn test --stream + - run: + name: Run CLI selftest + working_directory: packages/cli + environment: + SKIP_BUILD: 1 + command: yarn selftest + - run: + name: Run CLI examples + working_directory: packages/cli + environment: + SKIP_BUILD: 1 + command: | + ./bin/cosmwasm-cli --init examples/coralnet.ts --code "process.exit(0)" + ./bin/cosmwasm-cli --init examples/delegate.ts --code "process.exit(0)" + ./bin/cosmwasm-cli --init examples/faucet_addresses.ts --code "process.exit(0)" + ./bin/cosmwasm-cli --init examples/generate_address.ts --code "process.exit(0)" + ./bin/cosmwasm-cli --init examples/helpers.ts --code "process.exit(0)" + ./bin/cosmwasm-cli --init examples/local_faucet.ts --code "process.exit(0)" + ./bin/cosmwasm-cli --init examples/mask.ts --code "process.exit(0)" + - run: + name: Stop chains + command: | + ./scripts/socketserver/stop.sh + ./scripts/tendermint/all_stop.sh + ./scripts/simapp/stop.sh + ./scripts/wasmd/stop.sh + ./scripts/launchpad/stop.sh test-chrome: machine: # We can't use a containerized environment since it requires remote docker to start custom containers.