From 62589c4757e4f830796a278ba12c78fffc349152 Mon Sep 17 00:00:00 2001 From: David Lumley Date: Sun, 18 Jul 2021 15:07:02 -0700 Subject: [PATCH 01/10] Add command to run eslint --- package.json | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index f89de259a0..b9dadcfeef 100644 --- a/package.json +++ b/package.json @@ -21,6 +21,8 @@ "start": "react-scripts start", "build": "react-scripts build", "test": "react-scripts test", + "lint": "eslint .", + "lint:fix": "eslint . --fix", "eject": "react-scripts eject" }, "eslintConfig": { @@ -41,4 +43,4 @@ "last 1 safari version" ] } -} +} \ No newline at end of file From ab9f12c6b9e7d3326382186f2587bdcfa5623eae Mon Sep 17 00:00:00 2001 From: David Lumley Date: Sun, 18 Jul 2021 15:08:34 -0700 Subject: [PATCH 02/10] Add prettier, and prettier eslint config --- .prettierrc.json | 1 + package.json | 7 ++++++- yarn.lock | 10 ++++++++++ 3 files changed, 17 insertions(+), 1 deletion(-) create mode 100644 .prettierrc.json diff --git a/.prettierrc.json b/.prettierrc.json new file mode 100644 index 0000000000..9e26dfeeb6 --- /dev/null +++ b/.prettierrc.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/package.json b/package.json index b9dadcfeef..a1bddf7e63 100644 --- a/package.json +++ b/package.json @@ -28,7 +28,8 @@ "eslintConfig": { "extends": [ "react-app", - "react-app/jest" + "react-app/jest", + "prettier" ] }, "browserslist": { @@ -42,5 +43,9 @@ "last 1 firefox version", "last 1 safari version" ] + }, + "devDependencies": { + "eslint-config-prettier": "^8.3.0", + "prettier": "^2.3.2" } } \ No newline at end of file diff --git a/yarn.lock b/yarn.lock index 0e587d3ac3..4992aac69b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4880,6 +4880,11 @@ escodegen@^2.0.0: optionalDependencies: source-map "~0.6.1" +eslint-config-prettier@^8.3.0: + version "8.3.0" + resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-8.3.0.tgz#f7471b20b6fe8a9a9254cc684454202886a2dd7a" + integrity sha512-BgZuLUSeKzvlL/VUjx/Yb787VQ26RU3gGjA3iiFvdsp/2bMfVIWUVP7tjxtjS0e+HP409cPlPvNkQloz8C91ew== + eslint-config-react-app@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/eslint-config-react-app/-/eslint-config-react-app-6.0.0.tgz#ccff9fc8e36b322902844cbd79197982be355a0e" @@ -9176,6 +9181,11 @@ prepend-http@^1.0.0: resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" integrity sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw= +prettier@^2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.3.2.tgz#ef280a05ec253712e486233db5c6f23441e7342d" + integrity sha512-lnJzDfJ66zkMy58OL5/NY5zp70S7Nz6KqcKkXYzn2tMVrNxvbqaBpg7H3qHaLxCJ5lNMsGuM8+ohS7cZrthdLQ== + pretty-bytes@^5.3.0: version "5.6.0" resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-5.6.0.tgz#356256f643804773c82f64723fe78c92c62beaeb" From 26b5c632535d4b9d42b133db5ae932206a503bf8 Mon Sep 17 00:00:00 2001 From: David Lumley Date: Sun, 18 Jul 2021 15:16:17 -0700 Subject: [PATCH 03/10] Add documentation for running yarn lint --- README.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/README.md b/README.md index b58e0af830..549e78d3a6 100644 --- a/README.md +++ b/README.md @@ -29,6 +29,15 @@ Your app is ready to be deployed! See the section about [deployment](https://facebook.github.io/create-react-app/docs/deployment) for more information. +### `yarn lint` + +Lints the codebase using [`ESlint`](https://eslint.org). Errors and warnings are shown in your terminal, and can be shown in your text editor with the appropriate plugin. + +### `yarn lint:fix` + +Runs `yarn lint` with the `--fix` flag allowing [`ESlint`](https://eslint.org) to fix the issue automatically where possible. +### + ### `yarn eject` **Note: this is a one-way operation. Once you `eject`, you can’t go back!** From 7d0cdf832abbac994885e51a4f02cfc3d3eb32f1 Mon Sep 17 00:00:00 2001 From: David Lumley Date: Sun, 18 Jul 2021 15:16:44 -0700 Subject: [PATCH 04/10] Add GitHub action for linting --- .github/workflows/lint.yml | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 .github/workflows/lint.yml diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml new file mode 100644 index 0000000000..15b8040f3a --- /dev/null +++ b/.github/workflows/lint.yml @@ -0,0 +1,25 @@ +name: Lint + +on: + push: + +jobs: + lint: + name: "Lint codebase" + runs-on: ubuntu-latest + + steps: + - name: Check out repo + uses: actions/checkout@v2 + + - name: Setup Node.js + uses: actions/setup-node@v2 + with: + node-version: "16" + cache: "yarn" + + - name: Install dependencies + run: yarn install + + - name: Lint codebase + run: yarn run lint \ No newline at end of file From 7f6d86a8ea539e6ae5cdb8d1161e4c4d1d7443b3 Mon Sep 17 00:00:00 2001 From: David Lumley Date: Sun, 18 Jul 2021 15:21:27 -0700 Subject: [PATCH 05/10] Add GitHub action for testing, combine into same action as linting --- .github/workflows/javascript.yml | 45 ++++++++++++++++++++++++++++++++ .github/workflows/lint.yml | 25 ------------------ 2 files changed, 45 insertions(+), 25 deletions(-) create mode 100644 .github/workflows/javascript.yml delete mode 100644 .github/workflows/lint.yml diff --git a/.github/workflows/javascript.yml b/.github/workflows/javascript.yml new file mode 100644 index 0000000000..2df2ba3ea9 --- /dev/null +++ b/.github/workflows/javascript.yml @@ -0,0 +1,45 @@ +name: JavaScript + +on: + push: + +jobs: + lint: + name: "Lint codebase" + runs-on: ubuntu-latest + + steps: + - name: Check out repo + uses: actions/checkout@v2 + + - name: Setup Node.js + uses: actions/setup-node@v2 + with: + node-version: "16" + cache: "yarn" + + - name: Install dependencies + run: yarn install + + - name: Lint codebase + run: yarn run lint + + test: + name: "Test codebase" + runs-on: ubuntu-latest + + steps: + - name: Check out repo + uses: actions/checkout@v2 + + - name: Setup Node.js + uses: actions/setup-node@v2 + with: + node-version: "16" + cache: "yarn" + + - name: Install dependencies + run: yarn install + + - name: Test codebase + run: yarn run test \ No newline at end of file diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml deleted file mode 100644 index 15b8040f3a..0000000000 --- a/.github/workflows/lint.yml +++ /dev/null @@ -1,25 +0,0 @@ -name: Lint - -on: - push: - -jobs: - lint: - name: "Lint codebase" - runs-on: ubuntu-latest - - steps: - - name: Check out repo - uses: actions/checkout@v2 - - - name: Setup Node.js - uses: actions/setup-node@v2 - with: - node-version: "16" - cache: "yarn" - - - name: Install dependencies - run: yarn install - - - name: Lint codebase - run: yarn run lint \ No newline at end of file From bb9ea53ac21e24edc57b42385f49591d5d010520 Mon Sep 17 00:00:00 2001 From: David Lumley Date: Sun, 18 Jul 2021 15:51:53 -0700 Subject: [PATCH 06/10] Add webcrypto to setup our test environment for terra.js --- package.json | 3 ++- src/setupTests.ts | 5 ++++ yarn.lock | 65 ++++++++++++++++++++++++++++++++++++++++++++++- 3 files changed, 71 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index a1bddf7e63..35a07e6675 100644 --- a/package.json +++ b/package.json @@ -45,7 +45,8 @@ ] }, "devDependencies": { + "@peculiar/webcrypto": "^1.1.7", "eslint-config-prettier": "^8.3.0", "prettier": "^2.3.2" } -} \ No newline at end of file +} diff --git a/src/setupTests.ts b/src/setupTests.ts index 8f2609b7b3..21813a039e 100644 --- a/src/setupTests.ts +++ b/src/setupTests.ts @@ -3,3 +3,8 @@ // expect(element).toHaveTextContent(/react/i) // learn more: https://github.com/testing-library/jest-dom import '@testing-library/jest-dom'; + +// NOTE(davidlumley): Override default Crypto for terra.js +// see: https://github.com/terra-money/terra.js/issues/100 +import { Crypto } from '@peculiar/webcrypto'; +global.crypto = new Crypto(); \ No newline at end of file diff --git a/yarn.lock b/yarn.lock index 4992aac69b..3f74f24fa9 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1532,6 +1532,34 @@ mkdirp "^1.0.4" rimraf "^3.0.2" +"@peculiar/asn1-schema@^2.0.27", "@peculiar/asn1-schema@^2.0.32": + version "2.0.36" + resolved "https://registry.yarnpkg.com/@peculiar/asn1-schema/-/asn1-schema-2.0.36.tgz#ca7978f43ffa4f35fbb74436c3f983c10a69ac27" + integrity sha512-x7fdMR6bzOBct2a0PLukrmVrrehHX5uisKRDWN2Bs1HojXd5nCi7MAQeV+umRxPK1oSJDstTBhGq3sLzDbL8Vw== + dependencies: + "@types/asn1js" "^2.0.0" + asn1js "^2.1.1" + pvtsutils "^1.1.7" + tslib "^2.2.0" + +"@peculiar/json-schema@^1.1.12": + version "1.1.12" + resolved "https://registry.yarnpkg.com/@peculiar/json-schema/-/json-schema-1.1.12.tgz#fe61e85259e3b5ba5ad566cb62ca75b3d3cd5339" + integrity sha512-coUfuoMeIB7B8/NMekxaDzLhaYmp0HZNPEjYRm9goRou8UZIC3z21s0sL9AWoCw4EG876QyO3kYrc61WNF9B/w== + dependencies: + tslib "^2.0.0" + +"@peculiar/webcrypto@^1.1.7": + version "1.1.7" + resolved "https://registry.yarnpkg.com/@peculiar/webcrypto/-/webcrypto-1.1.7.tgz#ff02008612e67ab7cc2a92fce04a7f0e2a04b71c" + integrity sha512-aCNLYdHZkvGH+T8/YBOY33jrVGVuLIa3bpizeHXqwN+P4ZtixhA+kxEEWM1amZwUY2nY/iuj+5jdZn/zB7EPPQ== + dependencies: + "@peculiar/asn1-schema" "^2.0.32" + "@peculiar/json-schema" "^1.1.12" + pvtsutils "^1.1.6" + tslib "^2.2.0" + webcrypto-core "^1.2.0" + "@pedrouid/environment@^1.0.1": version "1.0.1" resolved "https://registry.yarnpkg.com/@pedrouid/environment/-/environment-1.0.1.tgz#858f0f8a057340e0b250398b75ead77d6f4342ec" @@ -1914,6 +1942,11 @@ resolved "https://registry.yarnpkg.com/@types/aria-query/-/aria-query-4.2.2.tgz#ed4e0ad92306a704f9fb132a0cfcf77486dbe2bc" integrity sha512-HnYpAE1Y6kRyKM/XkEuiRQhTHvkzMBurTHnpFLYLBGPIylZNPs9jJcuOOYWxPLJCSEtmZT0Y8rHDokKN7rRTig== +"@types/asn1js@^2.0.0": + version "2.0.2" + resolved "https://registry.yarnpkg.com/@types/asn1js/-/asn1js-2.0.2.tgz#bb1992291381b5f06e22a829f2ae009267cdf8c5" + integrity sha512-t4YHCgtD+ERvH0FyxvNlYwJ2ezhqw7t+Ygh4urQ7dJER8i185JPv6oIM3ey5YQmGN6Zp9EMbpohkjZi9t3UxwA== + "@types/babel__core@^7.0.0", "@types/babel__core@^7.1.7": version "7.1.15" resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.15.tgz#2ccfb1ad55a02c83f8e0ad327cbc332f55eb1024" @@ -2777,6 +2810,13 @@ asn1.js@^5.2.0: minimalistic-assert "^1.0.0" safer-buffer "^2.1.0" +asn1js@^2.0.26, asn1js@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/asn1js/-/asn1js-2.1.1.tgz#bb3896191ebb5fb1caeda73436a6c6e20a2eedff" + integrity sha512-t9u0dU0rJN4ML+uxgN6VM2Z4H5jWIYm0w8LsZLzMJaQsgL3IJNbxHgmbWDvJAwspyHpDFuzUaUFh4c05UB4+6g== + dependencies: + pvutils latest + assert@^1.1.1: version "1.5.0" resolved "https://registry.yarnpkg.com/assert/-/assert-1.5.0.tgz#55c109aaf6e0aefdb3dc4b71240c70bf574b18eb" @@ -9331,6 +9371,18 @@ punycode@^2.1.0, punycode@^2.1.1: resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== +pvtsutils@^1.1.2, pvtsutils@^1.1.6, pvtsutils@^1.1.7: + version "1.1.7" + resolved "https://registry.yarnpkg.com/pvtsutils/-/pvtsutils-1.1.7.tgz#39a65ccb3b7448c974f6a6141ce2aad037b3f13c" + integrity sha512-faOiD/XpB/cIebRzYwzYjCmYgiDd53YEBni+Mt1+8/HlrARHYBpsU2OHOt3EZ1ZhfRNxPL0dH3K/vKaMgNWVGA== + dependencies: + tslib "^2.2.0" + +pvutils@latest: + version "1.0.17" + resolved "https://registry.yarnpkg.com/pvutils/-/pvutils-1.0.17.tgz#ade3c74dfe7178944fe44806626bd2e249d996bf" + integrity sha512-wLHYUQxWaXVQvKnwIDWFVKDJku9XDCvyhhxoq8dc5MFdIlRenyPI9eSfEtcvgHgD7FlvCyGAlWgOzRnZD99GZQ== + q@^1.1.2: version "1.5.1" resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" @@ -11080,7 +11132,7 @@ tslib@^1.8.1: resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== -tslib@^2.0.3: +tslib@^2.0.0, tslib@^2.0.3, tslib@^2.1.0, tslib@^2.2.0: version "2.3.0" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.0.tgz#803b8cdab3e12ba581a4ca41c8839bbb0dacb09e" integrity sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg== @@ -11487,6 +11539,17 @@ web-vitals@^1.0.1: resolved "https://registry.yarnpkg.com/web-vitals/-/web-vitals-1.1.2.tgz#06535308168986096239aa84716e68b4c6ae6d1c" integrity sha512-PFMKIY+bRSXlMxVAQ+m2aw9c/ioUYfDgrYot0YUa+/xa0sakubWhSDyxAKwzymvXVdF4CZI71g06W+mqhzu6ig== +webcrypto-core@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/webcrypto-core/-/webcrypto-core-1.2.0.tgz#44fda3f9315ed6effe9a1e47466e0935327733b5" + integrity sha512-p76Z/YLuE4CHCRdc49FB/ETaM4bzM3roqWNJeGs+QNY1fOTzKTOVnhmudW1fuO+5EZg6/4LG9NJ6gaAyxTk9XQ== + dependencies: + "@peculiar/asn1-schema" "^2.0.27" + "@peculiar/json-schema" "^1.1.12" + asn1js "^2.0.26" + pvtsutils "^1.1.2" + tslib "^2.1.0" + webextension-polyfill-ts@^0.25.0: version "0.25.0" resolved "https://registry.yarnpkg.com/webextension-polyfill-ts/-/webextension-polyfill-ts-0.25.0.tgz#fff041626365dbd0e29c40b197e989a55ec221ca" From 77eb0093098133472ce28743cce60cf93cac49b5 Mon Sep 17 00:00:00 2001 From: David Lumley Date: Mon, 19 Jul 2021 01:42:38 -0700 Subject: [PATCH 07/10] Expose StaticWalletProvider as TestWalletProvider --- src/App.test.tsx | 17 ++++++++----- src/test/helpers/TestWalletProvider.tsx | 34 +++++++++++++++++++++++++ 2 files changed, 45 insertions(+), 6 deletions(-) create mode 100644 src/test/helpers/TestWalletProvider.tsx diff --git a/src/App.test.tsx b/src/App.test.tsx index 2a68616d98..0d5b488f9c 100644 --- a/src/App.test.tsx +++ b/src/App.test.tsx @@ -1,9 +1,14 @@ -import React from 'react'; -import { render, screen } from '@testing-library/react'; -import App from './App'; +import React from "react"; +import { render, screen } from "@testing-library/react"; +import App from "./App"; +import TestWalletProvider from "./test/helpers/TestWalletProvider"; -test('renders learn react link', () => { - render(); - const linkElement = screen.getByText(/learn react/i); +test("renders learn react link", () => { + render( + + + + ); + const linkElement = screen.getByText(/post tx/i); expect(linkElement).toBeInTheDocument(); }); diff --git a/src/test/helpers/TestWalletProvider.tsx b/src/test/helpers/TestWalletProvider.tsx new file mode 100644 index 0000000000..22d5cfd631 --- /dev/null +++ b/src/test/helpers/TestWalletProvider.tsx @@ -0,0 +1,34 @@ +import React, { ReactNode } from "react"; +import { + NetworkInfo, + StaticWalletProvider, + WalletInfo, + WalletStatus, +} from "@terra-money/wallet-provider"; + +const testnet: NetworkInfo = { + name: "testnet", + chainID: "tequila-0004", + lcd: "https://tequila-lcd.terra.dev", +}; + +const TestWalletProvider: React.FC<{ + children?: ReactNode; + walletStatus?: WalletStatus; + walletInfo?: WalletInfo; +}> = ({ children, walletStatus, walletInfo }) => { + const status = walletStatus ?? WalletStatus.WALLET_NOT_CONNECTED; + const wallets = (walletInfo && [walletInfo]) ?? []; + + return ( + + {children} + + ); +}; + +export default TestWalletProvider; From cba1c87420ab74aedd47d3125041aea0ad5e569a Mon Sep 17 00:00:00 2001 From: David Lumley Date: Mon, 19 Jul 2021 01:46:41 -0700 Subject: [PATCH 08/10] Add note to TestWalletProvider --- src/test/helpers/TestWalletProvider.tsx | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/test/helpers/TestWalletProvider.tsx b/src/test/helpers/TestWalletProvider.tsx index 22d5cfd631..fd3bc54cb3 100644 --- a/src/test/helpers/TestWalletProvider.tsx +++ b/src/test/helpers/TestWalletProvider.tsx @@ -12,6 +12,9 @@ const testnet: NetworkInfo = { lcd: "https://tequila-lcd.terra.dev", }; +// NOTE(davidlumley): Via https://github.com/terra-money/wallet-provider/issues/6 +// TestWalletProvider takes two optional args: walletStatus, and walletInfo +// which can be used to set the state. const TestWalletProvider: React.FC<{ children?: ReactNode; walletStatus?: WalletStatus; From 7fc91e6412ebeb0406633e230cdb0bbd95275718 Mon Sep 17 00:00:00 2001 From: David Lumley Date: Mon, 19 Jul 2021 01:57:22 -0700 Subject: [PATCH 09/10] Fix Prettier setup, run Prettier on edited files on this branch --- .prettierrc.json | 2 +- package.json | 9 ++++++++- src/setupTests.ts | 6 +++--- yarn.lock | 19 +++++++++++++++++++ 4 files changed, 31 insertions(+), 5 deletions(-) diff --git a/.prettierrc.json b/.prettierrc.json index 9e26dfeeb6..0967ef424b 100644 --- a/.prettierrc.json +++ b/.prettierrc.json @@ -1 +1 @@ -{} \ No newline at end of file +{} diff --git a/package.json b/package.json index 35a07e6675..b441a2324f 100644 --- a/package.json +++ b/package.json @@ -11,6 +11,7 @@ "@types/node": "^12.0.0", "@types/react": "^17.0.0", "@types/react-dom": "^17.0.0", + "eslint-plugin-prettier": "^3.4.0", "react": "^17.0.2", "react-dom": "^17.0.2", "react-scripts": "4.0.3", @@ -30,7 +31,13 @@ "react-app", "react-app/jest", "prettier" - ] + ], + "plugins": [ + "prettier" + ], + "rules": { + "prettier/prettier": "error" + } }, "browserslist": { "production": [ diff --git a/src/setupTests.ts b/src/setupTests.ts index 21813a039e..d0a338daba 100644 --- a/src/setupTests.ts +++ b/src/setupTests.ts @@ -2,9 +2,9 @@ // allows you to do things like: // expect(element).toHaveTextContent(/react/i) // learn more: https://github.com/testing-library/jest-dom -import '@testing-library/jest-dom'; +import "@testing-library/jest-dom"; // NOTE(davidlumley): Override default Crypto for terra.js // see: https://github.com/terra-money/terra.js/issues/100 -import { Crypto } from '@peculiar/webcrypto'; -global.crypto = new Crypto(); \ No newline at end of file +import { Crypto } from "@peculiar/webcrypto"; +global.crypto = new Crypto(); diff --git a/yarn.lock b/yarn.lock index 3f74f24fa9..157f371a51 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5001,6 +5001,13 @@ eslint-plugin-jsx-a11y@^6.3.1: jsx-ast-utils "^3.1.0" language-tags "^1.0.5" +eslint-plugin-prettier@^3.4.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-3.4.0.tgz#cdbad3bf1dbd2b177e9825737fe63b476a08f0c7" + integrity sha512-UDK6rJT6INSfcOo545jiaOwB701uAIt2/dR7WnFQoGCVl1/EMqdANBmwUaqqQ45aXprsTGzSa39LI1PyuRBxxw== + dependencies: + prettier-linter-helpers "^1.0.0" + eslint-plugin-react-hooks@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.2.0.tgz#8c229c268d468956334c943bb45fc860280f5556" @@ -5352,6 +5359,11 @@ fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== +fast-diff@^1.1.2: + version "1.2.0" + resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.2.0.tgz#73ee11982d86caaf7959828d519cfe927fac5f03" + integrity sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w== + fast-glob@^3.1.1: version "3.2.7" resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.7.tgz#fd6cb7a2d7e9aa7a7846111e85a196d6b2f766a1" @@ -9221,6 +9233,13 @@ prepend-http@^1.0.0: resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" integrity sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw= +prettier-linter-helpers@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz#d23d41fe1375646de2d0104d3454a3008802cf7b" + integrity sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w== + dependencies: + fast-diff "^1.1.2" + prettier@^2.3.2: version "2.3.2" resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.3.2.tgz#ef280a05ec253712e486233db5c6f23441e7342d" From 5e9b1fbf79caa99042cdca6498a4e3d771a4b445 Mon Sep 17 00:00:00 2001 From: Sergey Borodanov Date: Tue, 20 Jul 2021 01:01:12 +0700 Subject: [PATCH 10/10] Resolve linting errors --- src/App.tsx | 68 +++++++++++++++------------ src/components/ConnectTerraButton.tsx | 41 ++++++++-------- src/contracts/index.ts | 4 +- src/index.tsx | 35 +++++++------- src/reportWebVitals.ts | 4 +- 5 files changed, 77 insertions(+), 75 deletions(-) diff --git a/src/App.tsx b/src/App.tsx index 049a425a24..1cb84cda9e 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -1,31 +1,36 @@ -import React from 'react'; -import logo from './tca-logo.png'; -import './App.css'; -import { ConnectTerraButton } from './components/ConnectTerraButton'; -import contracts from './contracts'; +import React from "react"; +import logo from "./tca-logo.png"; +import "./App.css"; +import { ConnectTerraButton } from "./components/ConnectTerraButton"; +import contracts from "./contracts"; import { useConnectedWallet, - UserDenied, - CreateTxFailed, - TxFailed, - Timeout, - TxUnspecifiedError } from '@terra-money/wallet-provider'; -import { CreateTxOptions, MsgExecuteContract, StdFee } from '@terra-money/terra.js'; + UserDenied, + CreateTxFailed, + TxFailed, + Timeout, + TxUnspecifiedError, +} from "@terra-money/wallet-provider"; +import { + CreateTxOptions, + MsgExecuteContract, + StdFee, +} from "@terra-money/terra.js"; function App() { const connectedWallet = useConnectedWallet(); console.log(JSON.stringify(connectedWallet)); const postTx = async () => { - if (!connectedWallet) return - const currentNetwork = 'localterra' // TODO: should be: + if (!connectedWallet) return; + const currentNetwork = "localterra"; // TODO: should be: // const currentNetwork = connectedWallet.network.name const execute = new MsgExecuteContract( connectedWallet.terraAddress, contracts.AngelProtocolIndexFund.address[currentNetwork], - contracts.AngelProtocolIndexFund.handleMessages.depositDonor, + contracts.AngelProtocolIndexFund.handleMessages.depositDonor ); const txOptions: CreateTxOptions = { @@ -38,28 +43,28 @@ function App() { console.log(result); } catch (error) { if (error instanceof UserDenied) { - console.log('User Denied') + console.log("User Denied"); } else if (error instanceof CreateTxFailed) { - console.log('Create Tx Failed') - console.log(error.message) - console.log(error.tx) + console.log("Create Tx Failed"); + console.log(error.message); + console.log(error.tx); } else if (error instanceof TxFailed) { - console.log('Tx Failed') - console.log(error.txhash) - console.log(error.message) - console.log(error.raw_message) - console.log(error.tx) + console.log("Tx Failed"); + console.log(error.txhash); + console.log(error.message); + console.log(error.raw_message); + console.log(error.tx); } else if (error instanceof Timeout) { - console.log('Timeout') - console.log(error.message) + console.log("Timeout"); + console.log(error.message); } else if (error instanceof TxUnspecifiedError) { - console.log(error.message) - console.log(error.tx) + console.log(error.message); + console.log(error.tx); } else { - console.log(String(error)) + console.log(String(error)); } } - }; + }; return (
@@ -68,7 +73,10 @@ function App() {
-
diff --git a/src/components/ConnectTerraButton.tsx b/src/components/ConnectTerraButton.tsx index 6e8bba8b33..508b592e41 100644 --- a/src/components/ConnectTerraButton.tsx +++ b/src/components/ConnectTerraButton.tsx @@ -1,6 +1,10 @@ -import React from 'react'; +import React from "react"; -import { useWallet, WalletStatus, ConnectType } from '@terra-money/wallet-provider'; +import { + useWallet, + WalletStatus, + ConnectType, +} from "@terra-money/wallet-provider"; export function ConnectTerraButton() { const { @@ -10,48 +14,41 @@ export function ConnectTerraButton() { connect, disconnect, install, - wallets - } = useWallet() + wallets, + } = useWallet(); switch (status) { case WalletStatus.INITIALIZING: return (
- +
); case WalletStatus.WALLET_NOT_CONNECTED: return (
- { - availableConnectTypes.includes(ConnectType.CHROME_EXTENSION) && + {availableConnectTypes.includes(ConnectType.CHROME_EXTENSION) && ( - } - { - availableInstallTypes.includes(ConnectType.CHROME_EXTENSION) && + )} + {availableInstallTypes.includes(ConnectType.CHROME_EXTENSION) && ( - } + )}
- ) + ); case WalletStatus.WALLET_CONNECTED: return (
- { - wallets.length > 0 && + {wallets.length > 0 && (

terraAddress: {wallets[0].terraAddress}

- } - + )} +
- ) + ); } -} \ No newline at end of file +} diff --git a/src/contracts/index.ts b/src/contracts/index.ts index d662d0c367..c746b06fad 100644 --- a/src/contracts/index.ts +++ b/src/contracts/index.ts @@ -1,10 +1,10 @@ export default { AngelProtocolIndexFund: { address: { - localterra: "terra18vd8fpwxzck93qlwghaj6arh4p7c5n896xzem5" + localterra: "terra18vd8fpwxzck93qlwghaj6arh4p7c5n896xzem5", }, handleMessages: { depositDonor: { increment: {} }, - } + }, }, }; diff --git a/src/index.tsx b/src/index.tsx index 0a9dd9378e..f8533cc98e 100644 --- a/src/index.tsx +++ b/src/index.tsx @@ -1,30 +1,27 @@ -import React from 'react'; -import ReactDOM from 'react-dom'; -import './index.css'; -import App from './App'; -import reportWebVitals from './reportWebVitals'; +import React from "react"; +import ReactDOM from "react-dom"; +import "./index.css"; +import App from "./App"; +import reportWebVitals from "./reportWebVitals"; -import { - NetworkInfo, - WalletProvider, -} from '@terra-money/wallet-provider'; +import { NetworkInfo, WalletProvider } from "@terra-money/wallet-provider"; const localterra = { - name: 'localterra', - chainID: 'localterra', - lcd: 'http://localhost:1317', + name: "localterra", + chainID: "localterra", + lcd: "http://localhost:1317", }; const testnet = { - name: 'testnet', - chainID: 'tequila-0004', - lcd: 'https://tequila-lcd.terra.dev', + name: "testnet", + chainID: "tequila-0004", + lcd: "https://tequila-lcd.terra.dev", }; const mainnet = { - name: 'mainnet', - chainID: 'columbus-4', - lcd: 'https://lcd.terra.dev', + name: "mainnet", + chainID: "columbus-4", + lcd: "https://lcd.terra.dev", }; const walletConnectChainIds: Record = { @@ -42,7 +39,7 @@ ReactDOM.render( , - document.getElementById('root') + document.getElementById("root") ); // If you want to start measuring performance in your app, pass a function diff --git a/src/reportWebVitals.ts b/src/reportWebVitals.ts index 49a2a16e0f..5fa3583b75 100644 --- a/src/reportWebVitals.ts +++ b/src/reportWebVitals.ts @@ -1,8 +1,8 @@ -import { ReportHandler } from 'web-vitals'; +import { ReportHandler } from "web-vitals"; const reportWebVitals = (onPerfEntry?: ReportHandler) => { if (onPerfEntry && onPerfEntry instanceof Function) { - import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => { + import("web-vitals").then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => { getCLS(onPerfEntry); getFID(onPerfEntry); getFCP(onPerfEntry);