From 84fa2fb1d7c161ff80b8f7d29e730b9e6f061446 Mon Sep 17 00:00:00 2001 From: oskin1 Date: Tue, 25 May 2021 19:23:46 +0300 Subject: [PATCH 01/18] Migration to SigmaRust 0.13.x --- .../yoroi-ergo-connector/example/package.json | 2 +- .../chrome/extension/ergo-connector/types.js | 40 ++++++++++++++++--- .../npm/ergo-lib-wasm-browser_vx.x.x.js | 11 +++++ packages/yoroi-extension/package-lock.json | 4 +- packages/yoroi-extension/package.json | 4 +- 5 files changed, 51 insertions(+), 10 deletions(-) diff --git a/packages/yoroi-ergo-connector/example/package.json b/packages/yoroi-ergo-connector/example/package.json index db21ee35a2..a0123e59d2 100644 --- a/packages/yoroi-ergo-connector/example/package.json +++ b/packages/yoroi-ergo-connector/example/package.json @@ -11,7 +11,7 @@ "start": "webpack-dev-server" }, "devDependencies": { - "ergo-lib-wasm-browser": "0.10.0", + "ergo-lib-wasm-browser": "0.13.0-alpha-503e98e", "webpack": "^4.29.3", "webpack-cli": "^3.1.0", "webpack-dev-server": "^3.1.5", diff --git a/packages/yoroi-extension/chrome/extension/ergo-connector/types.js b/packages/yoroi-extension/chrome/extension/ergo-connector/types.js index deb79dc758..3857e3ab6a 100644 --- a/packages/yoroi-extension/chrome/extension/ergo-connector/types.js +++ b/packages/yoroi-extension/chrome/extension/ergo-connector/types.js @@ -1,9 +1,9 @@ // @flow import type { WalletChecksum } from '@emurgo/cip4-js'; -import { PublicDeriver } from '../../../app/api/ada/lib/storage/models/PublicDeriver/index'; -import { MultiToken } from '../../../app/api/common/lib/MultiToken'; -import { RustModule } from '../../../app/api/ada/lib/cardanoCrypto/rustLoader'; +import {PublicDeriver} from '../../../app/api/ada/lib/storage/models/PublicDeriver/index'; +import {MultiToken} from '../../../app/api/common/lib/MultiToken'; +import {RustModule} from '../../../app/api/ada/lib/cardanoCrypto/rustLoader'; // ----- Types used in the dApp <-> Yoroi connection bridge ----- // @@ -20,6 +20,37 @@ export function asAddress(input: any): Address { throw ConnectorError.invalidRequest(`invalid Address: ${JSON.stringify(input)}`); } +export function asBoxCandidate( + input: any, + wasmInstance: typeof RustModule.SigmaRust +): ErgoBoxCandidateJson { + try { + if (typeof input === 'object' && + Array.isArray(input?.assets) && + typeof input.additionalRegisters === 'object' && + typeof input.creationHeight === 'number') { + const registers = Object.entries(input.additionalRegisters).map(([k, v]) => { + if (typeof k === 'string' && k.match(/^R[4-9]$/) != null) { + if (typeof v === 'string') { + return [k, v]; + } + } + throw ConnectorError.invalidRequest(`additionalRegisters: Must be strings of the form "R4" to "R9": : ${JSON.stringify(input)}`); + }); + return { + value: asValue(input.value), + ergoTree: asErgoTree(input.ergoTree), + assets: input.assets.map(asTokenAmount), + additionalRegisters: Object.fromEntries(registers), + creationHeight: input.creationHeight + }; + } + } catch (err) { + throw ConnectorError.invalidRequest(`Box invalid structure: ${JSON.stringify(input)} due to ${err}`); + } + throw ConnectorError.invalidRequest(`Box invalid structure: ${JSON.stringify(input)}`); +} + export function asBox( input: any, wasmInstance: typeof RustModule.SigmaRust @@ -270,10 +301,9 @@ export function asTx( Array.isArray(tx.dataInputs) && Array.isArray(tx.outputs)) { return { - id: asTxId(tx.id), inputs: tx.inputs.map(input => asUnsignedInput(input, wasmInstance)), dataInputs: tx.dataInputs.map(asDataInput), - outputs: tx.outputs.map(output => asBox(output, wasmInstance)), + outputs: tx.outputs.map(output => asBoxCandidate(output, wasmInstance)), }; } } catch (err) { diff --git a/packages/yoroi-extension/flow-typed/npm/ergo-lib-wasm-browser_vx.x.x.js b/packages/yoroi-extension/flow-typed/npm/ergo-lib-wasm-browser_vx.x.x.js index d2f7f4cea9..d60874c7be 100644 --- a/packages/yoroi-extension/flow-typed/npm/ergo-lib-wasm-browser_vx.x.x.js +++ b/packages/yoroi-extension/flow-typed/npm/ergo-lib-wasm-browser_vx.x.x.js @@ -16,6 +16,17 @@ type ErgoBoxJson = {| index: number |}; +type ErgoBoxCandidateJson = {| + value: number | string, + ergoTree: string, + assets: Array<{| + tokenId: string, // hex + amount: number | string, + |}>, + creationHeight: number, + additionalRegisters: {| [key: string]: string |} +|}; + type ErgoTxJson = {| id: string, inputs: Array<{| diff --git a/packages/yoroi-extension/package-lock.json b/packages/yoroi-extension/package-lock.json index bbc01b6551..218cb398a6 100644 --- a/packages/yoroi-extension/package-lock.json +++ b/packages/yoroi-extension/package-lock.json @@ -17344,10 +17344,10 @@ "dev": true }, "ergo-lib-wasm-browser": { - "version": "0.10.0" + "version": "0.13.0-alpha-503e98e" }, "ergo-lib-wasm-nodejs": { - "version": "0.10.0", + "version": "0.13.0-alpha-503e98e", "dev": true }, "errno": { diff --git a/packages/yoroi-extension/package.json b/packages/yoroi-extension/package.json index c464734905..a900c512cc 100644 --- a/packages/yoroi-extension/package.json +++ b/packages/yoroi-extension/package.json @@ -106,7 +106,7 @@ "crx": "5.0.1", "css-loader": "5.0.2", "cucumber": "git+https://github.com/SebastienGllmt/cucumber-js.git", - "ergo-lib-wasm-nodejs": "0.10.0", + "ergo-lib-wasm-nodejs": "0.13.0-alpha-503e98e", "eslint": "7.20.0", "eslint-config-airbnb": "18.2.1", "eslint-config-prettier": "7.2.0", @@ -178,7 +178,7 @@ "crypto-browserify": "3.12.0", "crypto-random-string": "3.3.1", "dropbox": "4.0.30", - "ergo-lib-wasm-browser": "0.10.0", + "ergo-lib-wasm-browser": "0.13.0-alpha-503e98e", "es6-error": "4.1.1", "file-saver": "2.0.5", "jdenticon": "3.1.0", From eaf98fd610c2255fa75ada31b7b61b0fce205a76 Mon Sep 17 00:00:00 2001 From: oskin1 Date: Wed, 26 May 2021 11:43:33 +0300 Subject: [PATCH 02/18] Update ergo-wasm to stable version. --- packages/yoroi-ergo-connector/example/package.json | 2 +- packages/yoroi-extension/package-lock.json | 4 ++-- packages/yoroi-extension/package.json | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/yoroi-ergo-connector/example/package.json b/packages/yoroi-ergo-connector/example/package.json index a0123e59d2..a0897a995c 100644 --- a/packages/yoroi-ergo-connector/example/package.json +++ b/packages/yoroi-ergo-connector/example/package.json @@ -11,7 +11,7 @@ "start": "webpack-dev-server" }, "devDependencies": { - "ergo-lib-wasm-browser": "0.13.0-alpha-503e98e", + "ergo-lib-wasm-browser": "0.13.0", "webpack": "^4.29.3", "webpack-cli": "^3.1.0", "webpack-dev-server": "^3.1.5", diff --git a/packages/yoroi-extension/package-lock.json b/packages/yoroi-extension/package-lock.json index 218cb398a6..3536326ca2 100644 --- a/packages/yoroi-extension/package-lock.json +++ b/packages/yoroi-extension/package-lock.json @@ -17344,10 +17344,10 @@ "dev": true }, "ergo-lib-wasm-browser": { - "version": "0.13.0-alpha-503e98e" + "version": "0.13.0" }, "ergo-lib-wasm-nodejs": { - "version": "0.13.0-alpha-503e98e", + "version": "0.13.0", "dev": true }, "errno": { diff --git a/packages/yoroi-extension/package.json b/packages/yoroi-extension/package.json index a900c512cc..e82f8dc420 100644 --- a/packages/yoroi-extension/package.json +++ b/packages/yoroi-extension/package.json @@ -106,7 +106,7 @@ "crx": "5.0.1", "css-loader": "5.0.2", "cucumber": "git+https://github.com/SebastienGllmt/cucumber-js.git", - "ergo-lib-wasm-nodejs": "0.13.0-alpha-503e98e", + "ergo-lib-wasm-nodejs": "0.13.0", "eslint": "7.20.0", "eslint-config-airbnb": "18.2.1", "eslint-config-prettier": "7.2.0", @@ -178,7 +178,7 @@ "crypto-browserify": "3.12.0", "crypto-random-string": "3.3.1", "dropbox": "4.0.30", - "ergo-lib-wasm-browser": "0.13.0-alpha-503e98e", + "ergo-lib-wasm-browser": "0.13.0", "es6-error": "4.1.1", "file-saver": "2.0.5", "jdenticon": "3.1.0", From 51cb7dc200d7c1be9a2fe62e177e246bb47eca41 Mon Sep 17 00:00:00 2001 From: oskin1 Date: Fri, 28 May 2021 01:52:14 +0300 Subject: [PATCH 03/18] Tx type updated. --- .../ergo-connector/containers/SignTxContainer.stories.js | 6 +----- .../chrome/extension/ergo-connector/types.js | 3 +-- 2 files changed, 2 insertions(+), 7 deletions(-) diff --git a/packages/yoroi-extension/app/ergo-connector/containers/SignTxContainer.stories.js b/packages/yoroi-extension/app/ergo-connector/containers/SignTxContainer.stories.js index 4f8ebb448e..f30f7d891d 100644 --- a/packages/yoroi-extension/app/ergo-connector/containers/SignTxContainer.stories.js +++ b/packages/yoroi-extension/app/ergo-connector/containers/SignTxContainer.stories.js @@ -52,7 +52,6 @@ const message = (id: number) => ({ type: 'tx', uid: 0, tx: { - id: '2df0273e382739f8b4ae3783d81168093e78e0b48ec2c5430ff03d444806a175', inputs: [{ boxId: '1df0273e382739f8b4ae3783d81168093e78e0b48ec2c5430ff03d444806a174', extension: {}, @@ -70,7 +69,6 @@ const message = (id: number) => ({ boxId: '0df0273e382739f8b4ae3783d81168093e78e0b48ec2c5430ff03d444806a173', }], outputs: [{ - boxId: '3df0273e382739f8b4ae3783d81168093e78e0b48ec2c5430ff03d444806a176', value: '1234567', ergoTree: Buffer.from(RustModule.SigmaRust.Address.from_base58( '9egNKTzQDH658qcdiPEoQfVM1SBxQNxnyF8BCw57aNWerRhhHBQ' @@ -80,9 +78,7 @@ const message = (id: number) => ({ tokenId: tokenInfo.tokenId, }], additionalRegisters: tokenInfo.registers, - creationHeight: 1, - transactionId: '2df0273e382739f8b4ae3783d81168093e78e0b48ec2c5430ff03d444806a175', - index: 0 + creationHeight: 1 }], }, }, diff --git a/packages/yoroi-extension/chrome/extension/ergo-connector/types.js b/packages/yoroi-extension/chrome/extension/ergo-connector/types.js index 3857e3ab6a..7978229a89 100644 --- a/packages/yoroi-extension/chrome/extension/ergo-connector/types.js +++ b/packages/yoroi-extension/chrome/extension/ergo-connector/types.js @@ -285,10 +285,9 @@ export function asTokenId(input: any): TokenId { } export type Tx = {| - id: TxId, inputs: UnsignedInput[], dataInputs: DataInput[], - outputs: ErgoBoxJson[], + outputs: ErgoBoxCandidateJson[], |}; export function asTx( From 04cbabe85f4478426afe671c65275896ccd08dbc Mon Sep 17 00:00:00 2001 From: v-almonacid Date: Fri, 28 May 2021 11:38:43 +0200 Subject: [PATCH 04/18] fix Catalyst fund number in voting page --- .../yoroi-extension/app/components/wallet/voting/Voting.js | 7 +++++-- .../app/containers/wallet/voting/VotingPage.js | 1 + packages/yoroi-extension/app/i18n/locales/en-US.json | 2 +- packages/yoroi-extension/package-lock.json | 2 +- 4 files changed, 8 insertions(+), 4 deletions(-) diff --git a/packages/yoroi-extension/app/components/wallet/voting/Voting.js b/packages/yoroi-extension/app/components/wallet/voting/Voting.js index 520308b043..8a21d17352 100644 --- a/packages/yoroi-extension/app/components/wallet/voting/Voting.js +++ b/packages/yoroi-extension/app/components/wallet/voting/Voting.js @@ -17,7 +17,7 @@ import styles from './Voting.scss'; const messages = defineMessages({ lineTitle: { id: 'wallet.voting.lineTitle', - defaultMessage: '!!!Register to vote on Fund 3', + defaultMessage: '!!!Register to vote on Fund {round}', }, line2: { id: 'wallet.voting.line2', @@ -46,6 +46,7 @@ type Props = {| +onExternalLinkClick: MouseEvent => void, +hasAnyPending: boolean, +isDelegated: boolean, + +round: number, |}; @observer @@ -57,6 +58,8 @@ export default class Voting extends Component { render(): Node { const { intl } = this.context; + const round = this.props.round; + const pendingTxWarningComponent = this.props.hasAnyPending ? (
@@ -76,7 +79,7 @@ export default class Voting extends Component { {pendingTxWarningComponent}
- {intl.formatMessage(messages.lineTitle)} + {intl.formatMessage(messages.lineTitle, { round })}
diff --git a/packages/yoroi-extension/app/containers/wallet/voting/VotingPage.js b/packages/yoroi-extension/app/containers/wallet/voting/VotingPage.js index 9a184d1f74..c7079af68c 100644 --- a/packages/yoroi-extension/app/containers/wallet/voting/VotingPage.js +++ b/packages/yoroi-extension/app/containers/wallet/voting/VotingPage.js @@ -152,6 +152,7 @@ export default class VotingPage extends Component { hasAnyPending={this.generated.hasAnyPending} onExternalLinkClick={handleExternalLinkClick} isDelegated={this.isDelegated === true} + round={roundInfo.nextRound} />
); diff --git a/packages/yoroi-extension/app/i18n/locales/en-US.json b/packages/yoroi-extension/app/i18n/locales/en-US.json index fbdee6b9d1..e0912fdf5d 100644 --- a/packages/yoroi-extension/app/i18n/locales/en-US.json +++ b/packages/yoroi-extension/app/i18n/locales/en-US.json @@ -783,7 +783,7 @@ "wallet.voting.line2": "Before you begin, make sure to complete steps below", "wallet.voting.line3": "Download the Catalyst Voting App.", "wallet.voting.line4": "Open the Catalyst Voting App and click on the Complete registration button.", - "wallet.voting.lineTitle": "Register to vote on Fund 3", + "wallet.voting.lineTitle": "Register to vote on Fund { round }", "wallet.voting.notDelegated": "You have not delegated. Your voting power is how much you delegate and the voting rewards will be distributed to your delegation reward address. Please make sure to delegate before voting.", "wallet.withdrawal.transaction.unregister": "This transaction will unregister one or more staking keys, giving you back your {refundAmount} {ticker} from your deposit", "widgets.copyableaddress.addressCopyTooltipMessage": "Copy to clipboard", diff --git a/packages/yoroi-extension/package-lock.json b/packages/yoroi-extension/package-lock.json index dbefd2d366..c2fec7607b 100644 --- a/packages/yoroi-extension/package-lock.json +++ b/packages/yoroi-extension/package-lock.json @@ -4490,7 +4490,7 @@ "resolved": "https://registry.npmjs.org/@emurgo/ledger-connect-handler/-/ledger-connect-handler-4.7.0.tgz", "integrity": "sha512-qI326TOFqnaJ+vO8O8G+vAEkTFWsw/sS4zplZnUjM62pHDlCi47mMipcmd5a5aN5fBQ70X6s+8jLm6oaD3to4A==", "requires": { - "@cardano-foundation/ledgerjs-hw-app-cardano": "git+https://github.com/SebastienGllmt/ledgerjs-hw-app-cardano.git" + "@cardano-foundation/ledgerjs-hw-app-cardano": "git+https://github.com/SebastienGllmt/ledgerjs-hw-app-cardano.git#5f660ceb4ab5d579b603a1c8f3c24d748582a473" } }, "@eslint/eslintrc": { From 350da538e90f9141169bdea52d12534eca308d09 Mon Sep 17 00:00:00 2001 From: v-almonacid Date: Fri, 28 May 2021 12:21:19 +0200 Subject: [PATCH 05/18] change displayed min amount --- packages/yoroi-extension/app/config/numbersConfig.js | 4 +++- .../app/containers/wallet/voting/VotingPage.js | 6 ++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/packages/yoroi-extension/app/config/numbersConfig.js b/packages/yoroi-extension/app/config/numbersConfig.js index 3844382b24..c5b1515a1d 100644 --- a/packages/yoroi-extension/app/config/numbersConfig.js +++ b/packages/yoroi-extension/app/config/numbersConfig.js @@ -44,5 +44,7 @@ export const CARDANO_STABLE_SIZE = 2160; */ export const ERGO_STABLE_SIZE = Number.MAX_SAFE_INTEGER / 2; -// Catalyst fund 3 requires > 2950 ADA to participate +// Catalyst fund 4 *technically* requires > 450 ADA to participate +// However, the official min amount is 500 ADA export const CATALYST_MIN_AMOUNT: BigNumber = new BigNumber(450 * 1_000_000); +export const CATALYST_DISPLAYED_MIN_AMOUNT: BigNumber = new BigNumber(500 * 1_000_000); diff --git a/packages/yoroi-extension/app/containers/wallet/voting/VotingPage.js b/packages/yoroi-extension/app/containers/wallet/voting/VotingPage.js index c7079af68c..dd8a3bb22a 100644 --- a/packages/yoroi-extension/app/containers/wallet/voting/VotingPage.js +++ b/packages/yoroi-extension/app/containers/wallet/voting/VotingPage.js @@ -15,7 +15,7 @@ import UnsupportedWallet from '../UnsupportedWallet'; import { PublicDeriver } from '../../../api/ada/lib/storage/models/PublicDeriver/index'; import LoadingSpinner from '../../../components/widgets/LoadingSpinner'; import VerticallyCenteredLayout from '../../../components/layout/VerticallyCenteredLayout'; -import { CATALYST_MIN_AMOUNT } from '../../../config/numbersConfig'; +import { CATALYST_MIN_AMOUNT, CATALYST_DISPLAYED_MIN_AMOUNT } from '../../../config/numbersConfig'; import InsufficientFundsPage from './InsufficientFundsPage'; import { getTokenName, genLookupOrFail } from '../../../stores/stateless/tokenHelpers'; import type { TokenInfoMap } from '../../../stores/toplevel/TokenInfoStore'; @@ -131,7 +131,9 @@ export default class VotingPage extends Component { currentBalance={ balance.getDefaultEntry().amount.shiftedBy(-tokenInfo.Metadata.numberOfDecimals) } - requiredBalance={CATALYST_MIN_AMOUNT.shiftedBy(-tokenInfo.Metadata.numberOfDecimals)} + requiredBalance={ + CATALYST_DISPLAYED_MIN_AMOUNT.shiftedBy(-tokenInfo.Metadata.numberOfDecimals) + } tokenName={getTokenName(tokenInfo)} />; } From d8c061819eea88f9f68d16893965f044309f03ae Mon Sep 17 00:00:00 2001 From: oskin1 Date: Fri, 28 May 2021 17:44:52 +0300 Subject: [PATCH 06/18] ergo-lib updated. --- packages/yoroi-ergo-connector/example/package.json | 2 +- packages/yoroi-extension/package-lock.json | 4 ++-- packages/yoroi-extension/package.json | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/yoroi-ergo-connector/example/package.json b/packages/yoroi-ergo-connector/example/package.json index a0897a995c..7946bd52ac 100644 --- a/packages/yoroi-ergo-connector/example/package.json +++ b/packages/yoroi-ergo-connector/example/package.json @@ -11,7 +11,7 @@ "start": "webpack-dev-server" }, "devDependencies": { - "ergo-lib-wasm-browser": "0.13.0", + "ergo-lib-wasm-browser": "0.13.1", "webpack": "^4.29.3", "webpack-cli": "^3.1.0", "webpack-dev-server": "^3.1.5", diff --git a/packages/yoroi-extension/package-lock.json b/packages/yoroi-extension/package-lock.json index e55dcf629e..b61ad37e11 100644 --- a/packages/yoroi-extension/package-lock.json +++ b/packages/yoroi-extension/package-lock.json @@ -17344,10 +17344,10 @@ "dev": true }, "ergo-lib-wasm-browser": { - "version": "0.13.0" + "version": "0.13.1" }, "ergo-lib-wasm-nodejs": { - "version": "0.13.0", + "version": "0.13.1", "dev": true }, "errno": { diff --git a/packages/yoroi-extension/package.json b/packages/yoroi-extension/package.json index 89ed94925a..299984c0a3 100644 --- a/packages/yoroi-extension/package.json +++ b/packages/yoroi-extension/package.json @@ -106,7 +106,7 @@ "crx": "5.0.1", "css-loader": "5.0.2", "cucumber": "git+https://github.com/SebastienGllmt/cucumber-js.git", - "ergo-lib-wasm-nodejs": "0.13.0", + "ergo-lib-wasm-nodejs": "0.13.1", "eslint": "7.20.0", "eslint-config-airbnb": "18.2.1", "eslint-config-prettier": "7.2.0", @@ -178,7 +178,7 @@ "crypto-browserify": "3.12.0", "crypto-random-string": "3.3.1", "dropbox": "4.0.30", - "ergo-lib-wasm-browser": "0.13.0", + "ergo-lib-wasm-browser": "0.13.1", "es6-error": "4.1.1", "file-saver": "2.0.5", "jdenticon": "3.1.0", From 3fe3b8cf753e610f13ed4ee1f23fa136e29c57ec Mon Sep 17 00:00:00 2001 From: yushi Date: Mon, 31 May 2021 17:35:20 +0800 Subject: [PATCH 07/18] rename and fix publish nightly --- .github/workflows/{main.yml => nightly.yml} | 27 ++++++++++++++++++--- 1 file changed, 23 insertions(+), 4 deletions(-) rename .github/workflows/{main.yml => nightly.yml} (50%) diff --git a/.github/workflows/main.yml b/.github/workflows/nightly.yml similarity index 50% rename from .github/workflows/main.yml rename to .github/workflows/nightly.yml index feb12d7f63..018c432442 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/nightly.yml @@ -19,10 +19,29 @@ jobs: uses: actions/setup-node@v1 with: node-version: '${{ steps.nvm.outputs.NVMRC }}' - - run: cd packages/yoroi-extension - - run: npm install + - name: Cache node modules + uses: actions/cache@v2 + env: + cache-name: cache-yoroi-extension-node-modules + with: + # https://github.com/actions/cache/blob/main/examples.md#node---npm + # It is recommended to cache the NPM cache (~/.npm) instead of node_modules. + # But we put node version into the cache key and cache node_modules. + path: packages/yoroi-extension/node_modules + key: ${{ runner.os }}-build-${{ env.cache-name }}-node-${{ steps.nvm.outputs.NVMRC }}-${{ hashFiles('packages/yoroi-extension/package-lock.json') }} + restore-keys: | + ${{ runner.os }}-build-${{ env.cache-name }}- + ${{ runner.os }}-build- + ${{ runner.os }}- + + - name: npm install + run: | + cd packages/yoroi-extension + npm install - name: Build - run: npm run prod:nightly + run: | + cd packages/yoroi-extension + npm run prod:nightly env: YOROI_NIGHTLY_PEM: ${{ secrets.YOROI_NIGHTLY_PEM }} - name: publish nightly @@ -31,7 +50,7 @@ jobs: # ID of the extension that you are updating extension: poonlenmfdfbjfeeballhiibknlknepo # Path to a .zip of your addon - zip: "Yoroi Nightly.zip" + zip: "packages/yoroi-extension/Yoroi Nightly.zip" # TODO: only share with trusted testers for now publishTarget: trustedTesters # Google OAuth2 From 6c5a47634b58253c3f920a7b7bc7d17347b5359f Mon Sep 17 00:00:00 2001 From: yushi Date: Mon, 31 May 2021 17:35:41 +0800 Subject: [PATCH 08/18] add flow and lint --- .github/workflows/flow-and-lint.yml | 43 +++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 .github/workflows/flow-and-lint.yml diff --git a/.github/workflows/flow-and-lint.yml b/.github/workflows/flow-and-lint.yml new file mode 100644 index 0000000000..a5da136321 --- /dev/null +++ b/.github/workflows/flow-and-lint.yml @@ -0,0 +1,43 @@ +name: Flow and lint + +on: + pull_request_review: + types: [ submitted ] + +jobs: + flow-and-lint: + if: github.event.review && (github.event.review.state == 'approved' || contains(github.event.review.body, '/check')) + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - name: Read .nvmrc + run: echo ::set-output name=NVMRC::$(cat .nvmrc) + id: nvm + - name: Setup node + uses: actions/setup-node@v1 + with: + node-version: '${{ steps.nvm.outputs.NVMRC }}' + - name: Cache node modules + # https://docs.github.com/en/actions/guides/caching-dependencies-to-speed-up-workflows + uses: actions/cache@v2 + env: + cache-name: cache-yoroi-extension-node-modules + with: + # https://github.com/actions/cache/blob/main/examples.md#node---npm + # It is recommended to cache the NPM cache (~/.npm) instead of node_modules. + # But we put node version into the cache key and cache node_modules. + path: packages/yoroi-extension/node_modules + key: ${{ runner.os }}-build-${{ env.cache-name }}-node-${{ steps.nvm.outputs.NVMRC }}-${{ hashFiles('packages/yoroi-extension/package-lock.json') }} + restore-keys: | + ${{ runner.os }}-build-${{ env.cache-name }}- + ${{ runner.os }}-build- + ${{ runner.os }}- + - name: npm install + run: | + cd packages/yoroi-extension + npm install + - name: flow and lint + run: | + cd packages/yoroi-extension + npm run flow + npm run eslint \ No newline at end of file From 274b45d84e8daf6becbd8abaaa450962a4335276 Mon Sep 17 00:00:00 2001 From: vantuz-subhuman Date: Mon, 31 May 2021 22:10:25 +0300 Subject: [PATCH 09/18] Flow: `processBoxesForSigmaRust` argument type fix --- .../chrome/extension/ergo-connector/api.js | 11 ++++++++++- packages/yoroi-extension/package-lock.json | 2 +- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/packages/yoroi-extension/chrome/extension/ergo-connector/api.js b/packages/yoroi-extension/chrome/extension/ergo-connector/api.js index 9c175844cb..5b731a1182 100644 --- a/packages/yoroi-extension/chrome/extension/ergo-connector/api.js +++ b/packages/yoroi-extension/chrome/extension/ergo-connector/api.js @@ -199,8 +199,17 @@ export async function connectorGetChangeAddress(wallet: PublicDeriver<>): Promis throw new Error('could not get change address - this should never happen'); } +export type BoxLike = { + value: number | string, + assets: Array<{| + tokenId: string, // hex + amount: number | string, + |}>, + ... +} + // TODO: look into sigma rust string value support -function processBoxesForSigmaRust(boxes: ErgoBoxJson[]) { +function processBoxesForSigmaRust(boxes: T[]) { for (const output of boxes) { output.value = parseInt(output.value, 10); if (output.value > Number.MAX_SAFE_INTEGER) { diff --git a/packages/yoroi-extension/package-lock.json b/packages/yoroi-extension/package-lock.json index c2fec7607b..dbefd2d366 100644 --- a/packages/yoroi-extension/package-lock.json +++ b/packages/yoroi-extension/package-lock.json @@ -4490,7 +4490,7 @@ "resolved": "https://registry.npmjs.org/@emurgo/ledger-connect-handler/-/ledger-connect-handler-4.7.0.tgz", "integrity": "sha512-qI326TOFqnaJ+vO8O8G+vAEkTFWsw/sS4zplZnUjM62pHDlCi47mMipcmd5a5aN5fBQ70X6s+8jLm6oaD3to4A==", "requires": { - "@cardano-foundation/ledgerjs-hw-app-cardano": "git+https://github.com/SebastienGllmt/ledgerjs-hw-app-cardano.git#5f660ceb4ab5d579b603a1c8f3c24d748582a473" + "@cardano-foundation/ledgerjs-hw-app-cardano": "git+https://github.com/SebastienGllmt/ledgerjs-hw-app-cardano.git" } }, "@eslint/eslintrc": { From cf8753d04d56be3ab62b5b4d801a398685468753 Mon Sep 17 00:00:00 2001 From: vantuz-subhuman Date: Mon, 31 May 2021 22:20:06 +0300 Subject: [PATCH 10/18] Flow: suppres a superset error, cuz the function parameter type is in a library code and we can't change it to a more generic expectation --- .../yoroi-extension/chrome/extension/ergo-connector/api.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/yoroi-extension/chrome/extension/ergo-connector/api.js b/packages/yoroi-extension/chrome/extension/ergo-connector/api.js index 5b731a1182..816e20ed8b 100644 --- a/packages/yoroi-extension/chrome/extension/ergo-connector/api.js +++ b/packages/yoroi-extension/chrome/extension/ergo-connector/api.js @@ -271,7 +271,9 @@ export async function connectorSignTx( keyLevel: wallet.getParent().getPublicDeriverLevel(), signingKey: finalSigningKey, }); - const jsonBoxesToSign = tx.inputs.filter((box, index) => indices.includes(index)); + const jsonBoxesToSign: Array = + // $FlowFixMe[prop-missing]: our inputs are nearly like `ErgoBoxJson` just with one extra field + tx.inputs.filter((box, index) => indices.includes(index)); processBoxesForSigmaRust(jsonBoxesToSign); const txBoxesToSign = RustModule.SigmaRust.ErgoBoxes.from_boxes_json(jsonBoxesToSign); const dataBoxIds = tx.dataInputs.map(box => box.boxId); From 0d210a9a5df7668f209cb4cb43bb9963b156eb6f Mon Sep 17 00:00:00 2001 From: vantuz-subhuman Date: Tue, 1 Jun 2021 12:16:30 +0300 Subject: [PATCH 11/18] Added some missing flow-typed declarations for ergo-lib-wasm-browser --- .../flow-typed/npm/ergo-lib-wasm-browser_vx.x.x.js | 8 ++++++++ packages/yoroi-extension/package-lock.json | 6 +++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/packages/yoroi-extension/flow-typed/npm/ergo-lib-wasm-browser_vx.x.x.js b/packages/yoroi-extension/flow-typed/npm/ergo-lib-wasm-browser_vx.x.x.js index d60874c7be..71f697bf92 100644 --- a/packages/yoroi-extension/flow-typed/npm/ergo-lib-wasm-browser_vx.x.x.js +++ b/packages/yoroi-extension/flow-typed/npm/ergo-lib-wasm-browser_vx.x.x.js @@ -784,6 +784,12 @@ declare module 'ergo-lib-wasm-browser' { // need to wrap flowgen output into mod */ get(index: number): ErgoBox; } + declare export class BlockHeader { + static from_json(json: string): BlockHeader; + } + declare export class PreHeader { + static from_block_header(block_header: BlockHeader): PreHeader; + } /** * TBD */ @@ -795,6 +801,8 @@ declare module 'ergo-lib-wasm-browser' { // need to wrap flowgen output into mod * @returns {ErgoStateContext} */ static dummy(): ErgoStateContext; + + constructor(pre_header: PreHeader): this; } /** * The root of ErgoScript IR. Serialized instances of this class are self sufficient and can be passed around. diff --git a/packages/yoroi-extension/package-lock.json b/packages/yoroi-extension/package-lock.json index b61ad37e11..3acc7bc440 100644 --- a/packages/yoroi-extension/package-lock.json +++ b/packages/yoroi-extension/package-lock.json @@ -17344,10 +17344,14 @@ "dev": true }, "ergo-lib-wasm-browser": { - "version": "0.13.1" + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/ergo-lib-wasm-browser/-/ergo-lib-wasm-browser-0.13.1.tgz", + "integrity": "sha512-CE8aVVPHRW5oNU4Kx1VxGZbYTLLid6n38HCxYyn9KatR8qhAM/0svn/e+/zbhckXnipb7S1ZitG+jfuTVwBCEw==" }, "ergo-lib-wasm-nodejs": { "version": "0.13.1", + "resolved": "https://registry.npmjs.org/ergo-lib-wasm-nodejs/-/ergo-lib-wasm-nodejs-0.13.1.tgz", + "integrity": "sha512-8E1NIoO+90xFH4HSqUTbGhYaA/BN2+7QLUZmc76ew6KGIab9qCLLGEoiOyeaTEOh/En+R9nhaI8YLsNl5nZumA==", "dev": true }, "errno": { From d73ed1779a049997f06f53b0c328610f51296d9b Mon Sep 17 00:00:00 2001 From: vantuz-subhuman Date: Tue, 1 Jun 2021 12:49:30 +0300 Subject: [PATCH 12/18] Lint fix --- packages/yoroi-extension/.eslintrc.js | 2 +- .../app/api/ada/lib/cardanoCrypto/catalyst.test.js | 6 +++--- .../app/ergo-connector/stores/ConnectorStore.js | 2 ++ packages/yoroi-extension/chrome/extension/background.js | 3 ++- .../chrome/extension/ergo-connector/api.js | 2 +- .../chrome/extension/ergo-connector/types.js | 8 ++++---- 6 files changed, 13 insertions(+), 10 deletions(-) diff --git a/packages/yoroi-extension/.eslintrc.js b/packages/yoroi-extension/.eslintrc.js index 600ff52d2c..fa1be5ff73 100644 --- a/packages/yoroi-extension/.eslintrc.js +++ b/packages/yoroi-extension/.eslintrc.js @@ -77,7 +77,7 @@ module.exports = { 'no-undef-init': 0, // need this to improve Flow type inference 'no-unneeded-ternary': ['error', { defaultAssignment: true }], 'prefer-template': 0, - 'no-unused-vars': ['warn', { argsIgnorePattern: '^_' }], + 'no-unused-vars': ['error', { argsIgnorePattern: '^_' }], 'no-trailing-spaces': 1, 'padded-blocks': 0, 'no-undef': 1, diff --git a/packages/yoroi-extension/app/api/ada/lib/cardanoCrypto/catalyst.test.js b/packages/yoroi-extension/app/api/ada/lib/cardanoCrypto/catalyst.test.js index 86b712a2d8..9a6b702fd6 100644 --- a/packages/yoroi-extension/app/api/ada/lib/cardanoCrypto/catalyst.test.js +++ b/packages/yoroi-extension/app/api/ada/lib/cardanoCrypto/catalyst.test.js @@ -8,9 +8,9 @@ beforeAll(async () => { }); test('Generate Catalyst registration tx', async () => { - const paymentKey = RustModule.WalletV4.PublicKey.from_bytes( - Buffer.from('3273a5316e4de228863bd7cf8dac90d57149e1a595f3dd131073b84e35546676', 'hex') - ); + // const paymentKey = RustModule.WalletV4.PublicKey.from_bytes( + // Buffer.from('3273a5316e4de228863bd7cf8dac90d57149e1a595f3dd131073b84e35546676', 'hex') + // ); const stakePrivateKey = RustModule.WalletV4.PrivateKey.from_normal_bytes( Buffer.from('f5beaeff7932a4164d270afde7716067582412e8977e67986cd9b456fc082e3a', 'hex') ); diff --git a/packages/yoroi-extension/app/ergo-connector/stores/ConnectorStore.js b/packages/yoroi-extension/app/ergo-connector/stores/ConnectorStore.js index 11aa96c120..aa5340814b 100644 --- a/packages/yoroi-extension/app/ergo-connector/stores/ConnectorStore.js +++ b/packages/yoroi-extension/app/ergo-connector/stores/ConnectorStore.js @@ -166,6 +166,7 @@ export default class ConnectorStore extends Store { this.connectingMessage = response; }); }) + // eslint-disable-next-line no-console .catch(err => console.error(err)); }; @@ -177,6 +178,7 @@ export default class ConnectorStore extends Store { this.signingMessage = response; }); }) + // eslint-disable-next-line no-console .catch(err => console.error(err)); }; diff --git a/packages/yoroi-extension/chrome/extension/background.js b/packages/yoroi-extension/chrome/extension/background.js index 88e29734f7..16e2bff025 100644 --- a/packages/yoroi-extension/chrome/extension/background.js +++ b/packages/yoroi-extension/chrome/extension/background.js @@ -339,7 +339,8 @@ chrome.runtime.onMessage.addListener(async ( } const utxos = await canGetAllUtxos.getAllUtxos(); const stateFetcher = await getStateFetcher(localStorageApi); - const bestBlock = await stateFetcher.getBestBlock({ network: wallet.getParent().getNetworkInfo() }); + const bestBlock = await stateFetcher + .getBestBlock({ network: wallet.getParent().getNetworkInfo() }); return await connectorSignTx(wallet, password, utxos, bestBlock, tx, indices); }, db, diff --git a/packages/yoroi-extension/chrome/extension/ergo-connector/api.js b/packages/yoroi-extension/chrome/extension/ergo-connector/api.js index 816e20ed8b..aed9b6136f 100644 --- a/packages/yoroi-extension/chrome/extension/ergo-connector/api.js +++ b/packages/yoroi-extension/chrome/extension/ergo-connector/api.js @@ -290,7 +290,7 @@ export async function connectorSignTx( timestamp: Date.now(), nBits: 682315684511744, // TODO: where to get difficulty? (does this impact signing?) height: bestBlock.height + 1, - votes: "040000", // TODO: where to get votes? (does this impact signing?) + votes: '040000', // TODO: where to get votes? (does this impact signing?) }); const blockHeader = RustModule.SigmaRust.BlockHeader.from_json(headerJson); const preHeader = RustModule.SigmaRust.PreHeader.from_block_header(blockHeader); diff --git a/packages/yoroi-extension/chrome/extension/ergo-connector/types.js b/packages/yoroi-extension/chrome/extension/ergo-connector/types.js index 7978229a89..f0654cda8e 100644 --- a/packages/yoroi-extension/chrome/extension/ergo-connector/types.js +++ b/packages/yoroi-extension/chrome/extension/ergo-connector/types.js @@ -1,9 +1,9 @@ // @flow import type { WalletChecksum } from '@emurgo/cip4-js'; -import {PublicDeriver} from '../../../app/api/ada/lib/storage/models/PublicDeriver/index'; -import {MultiToken} from '../../../app/api/common/lib/MultiToken'; -import {RustModule} from '../../../app/api/ada/lib/cardanoCrypto/rustLoader'; +import { PublicDeriver } from '../../../app/api/ada/lib/storage/models/PublicDeriver/index'; +import { MultiToken } from '../../../app/api/common/lib/MultiToken'; +import { RustModule } from '../../../app/api/ada/lib/cardanoCrypto/rustLoader'; // ----- Types used in the dApp <-> Yoroi connection bridge ----- // @@ -22,7 +22,7 @@ export function asAddress(input: any): Address { export function asBoxCandidate( input: any, - wasmInstance: typeof RustModule.SigmaRust + // wasmInstance: typeof RustModule.SigmaRust ): ErgoBoxCandidateJson { try { if (typeof input === 'object' && From 9720b3d746edb230cb58206c67d11d5c2e842099 Mon Sep 17 00:00:00 2001 From: vantuz-subhuman Date: Tue, 1 Jun 2021 12:51:47 +0300 Subject: [PATCH 13/18] Flow fix --- .../yoroi-extension/chrome/extension/ergo-connector/types.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/yoroi-extension/chrome/extension/ergo-connector/types.js b/packages/yoroi-extension/chrome/extension/ergo-connector/types.js index f0654cda8e..eb865bd844 100644 --- a/packages/yoroi-extension/chrome/extension/ergo-connector/types.js +++ b/packages/yoroi-extension/chrome/extension/ergo-connector/types.js @@ -302,7 +302,7 @@ export function asTx( return { inputs: tx.inputs.map(input => asUnsignedInput(input, wasmInstance)), dataInputs: tx.dataInputs.map(asDataInput), - outputs: tx.outputs.map(output => asBoxCandidate(output, wasmInstance)), + outputs: tx.outputs.map(output => asBoxCandidate(output /* , wasmInstance */)), }; } } catch (err) { From dadfce534408c4c6fd1ac6fe7a9cd62014de8a6f Mon Sep 17 00:00:00 2001 From: v-almonacid Date: Fri, 28 May 2021 11:38:43 +0200 Subject: [PATCH 14/18] fix Catalyst fund number in voting page (cherry picked from commit 04cbabe85f4478426afe671c65275896ccd08dbc) --- .../yoroi-extension/app/components/wallet/voting/Voting.js | 7 +++++-- .../app/containers/wallet/voting/VotingPage.js | 1 + packages/yoroi-extension/app/i18n/locales/en-US.json | 2 +- packages/yoroi-extension/package-lock.json | 2 +- 4 files changed, 8 insertions(+), 4 deletions(-) diff --git a/packages/yoroi-extension/app/components/wallet/voting/Voting.js b/packages/yoroi-extension/app/components/wallet/voting/Voting.js index 520308b043..8a21d17352 100644 --- a/packages/yoroi-extension/app/components/wallet/voting/Voting.js +++ b/packages/yoroi-extension/app/components/wallet/voting/Voting.js @@ -17,7 +17,7 @@ import styles from './Voting.scss'; const messages = defineMessages({ lineTitle: { id: 'wallet.voting.lineTitle', - defaultMessage: '!!!Register to vote on Fund 3', + defaultMessage: '!!!Register to vote on Fund {round}', }, line2: { id: 'wallet.voting.line2', @@ -46,6 +46,7 @@ type Props = {| +onExternalLinkClick: MouseEvent => void, +hasAnyPending: boolean, +isDelegated: boolean, + +round: number, |}; @observer @@ -57,6 +58,8 @@ export default class Voting extends Component { render(): Node { const { intl } = this.context; + const round = this.props.round; + const pendingTxWarningComponent = this.props.hasAnyPending ? (
@@ -76,7 +79,7 @@ export default class Voting extends Component { {pendingTxWarningComponent}
- {intl.formatMessage(messages.lineTitle)} + {intl.formatMessage(messages.lineTitle, { round })}
diff --git a/packages/yoroi-extension/app/containers/wallet/voting/VotingPage.js b/packages/yoroi-extension/app/containers/wallet/voting/VotingPage.js index 9a184d1f74..c7079af68c 100644 --- a/packages/yoroi-extension/app/containers/wallet/voting/VotingPage.js +++ b/packages/yoroi-extension/app/containers/wallet/voting/VotingPage.js @@ -152,6 +152,7 @@ export default class VotingPage extends Component { hasAnyPending={this.generated.hasAnyPending} onExternalLinkClick={handleExternalLinkClick} isDelegated={this.isDelegated === true} + round={roundInfo.nextRound} />
); diff --git a/packages/yoroi-extension/app/i18n/locales/en-US.json b/packages/yoroi-extension/app/i18n/locales/en-US.json index fbdee6b9d1..e0912fdf5d 100644 --- a/packages/yoroi-extension/app/i18n/locales/en-US.json +++ b/packages/yoroi-extension/app/i18n/locales/en-US.json @@ -783,7 +783,7 @@ "wallet.voting.line2": "Before you begin, make sure to complete steps below", "wallet.voting.line3": "Download the Catalyst Voting App.", "wallet.voting.line4": "Open the Catalyst Voting App and click on the Complete registration button.", - "wallet.voting.lineTitle": "Register to vote on Fund 3", + "wallet.voting.lineTitle": "Register to vote on Fund { round }", "wallet.voting.notDelegated": "You have not delegated. Your voting power is how much you delegate and the voting rewards will be distributed to your delegation reward address. Please make sure to delegate before voting.", "wallet.withdrawal.transaction.unregister": "This transaction will unregister one or more staking keys, giving you back your {refundAmount} {ticker} from your deposit", "widgets.copyableaddress.addressCopyTooltipMessage": "Copy to clipboard", diff --git a/packages/yoroi-extension/package-lock.json b/packages/yoroi-extension/package-lock.json index 0a7ee4179c..3d9dcccacd 100644 --- a/packages/yoroi-extension/package-lock.json +++ b/packages/yoroi-extension/package-lock.json @@ -4490,7 +4490,7 @@ "resolved": "https://registry.npmjs.org/@emurgo/ledger-connect-handler/-/ledger-connect-handler-4.7.0.tgz", "integrity": "sha512-qI326TOFqnaJ+vO8O8G+vAEkTFWsw/sS4zplZnUjM62pHDlCi47mMipcmd5a5aN5fBQ70X6s+8jLm6oaD3to4A==", "requires": { - "@cardano-foundation/ledgerjs-hw-app-cardano": "git+https://github.com/SebastienGllmt/ledgerjs-hw-app-cardano.git" + "@cardano-foundation/ledgerjs-hw-app-cardano": "git+https://github.com/SebastienGllmt/ledgerjs-hw-app-cardano.git#5f660ceb4ab5d579b603a1c8f3c24d748582a473" } }, "@eslint/eslintrc": { From 035ba9f2accb16a3f5dd8c769d04879135b790af Mon Sep 17 00:00:00 2001 From: v-almonacid Date: Fri, 28 May 2021 12:21:19 +0200 Subject: [PATCH 15/18] change displayed min amount (cherry picked from commit 350da538e90f9141169bdea52d12534eca308d09) --- packages/yoroi-extension/app/config/numbersConfig.js | 4 +++- .../app/containers/wallet/voting/VotingPage.js | 6 ++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/packages/yoroi-extension/app/config/numbersConfig.js b/packages/yoroi-extension/app/config/numbersConfig.js index 3844382b24..c5b1515a1d 100644 --- a/packages/yoroi-extension/app/config/numbersConfig.js +++ b/packages/yoroi-extension/app/config/numbersConfig.js @@ -44,5 +44,7 @@ export const CARDANO_STABLE_SIZE = 2160; */ export const ERGO_STABLE_SIZE = Number.MAX_SAFE_INTEGER / 2; -// Catalyst fund 3 requires > 2950 ADA to participate +// Catalyst fund 4 *technically* requires > 450 ADA to participate +// However, the official min amount is 500 ADA export const CATALYST_MIN_AMOUNT: BigNumber = new BigNumber(450 * 1_000_000); +export const CATALYST_DISPLAYED_MIN_AMOUNT: BigNumber = new BigNumber(500 * 1_000_000); diff --git a/packages/yoroi-extension/app/containers/wallet/voting/VotingPage.js b/packages/yoroi-extension/app/containers/wallet/voting/VotingPage.js index c7079af68c..dd8a3bb22a 100644 --- a/packages/yoroi-extension/app/containers/wallet/voting/VotingPage.js +++ b/packages/yoroi-extension/app/containers/wallet/voting/VotingPage.js @@ -15,7 +15,7 @@ import UnsupportedWallet from '../UnsupportedWallet'; import { PublicDeriver } from '../../../api/ada/lib/storage/models/PublicDeriver/index'; import LoadingSpinner from '../../../components/widgets/LoadingSpinner'; import VerticallyCenteredLayout from '../../../components/layout/VerticallyCenteredLayout'; -import { CATALYST_MIN_AMOUNT } from '../../../config/numbersConfig'; +import { CATALYST_MIN_AMOUNT, CATALYST_DISPLAYED_MIN_AMOUNT } from '../../../config/numbersConfig'; import InsufficientFundsPage from './InsufficientFundsPage'; import { getTokenName, genLookupOrFail } from '../../../stores/stateless/tokenHelpers'; import type { TokenInfoMap } from '../../../stores/toplevel/TokenInfoStore'; @@ -131,7 +131,9 @@ export default class VotingPage extends Component { currentBalance={ balance.getDefaultEntry().amount.shiftedBy(-tokenInfo.Metadata.numberOfDecimals) } - requiredBalance={CATALYST_MIN_AMOUNT.shiftedBy(-tokenInfo.Metadata.numberOfDecimals)} + requiredBalance={ + CATALYST_DISPLAYED_MIN_AMOUNT.shiftedBy(-tokenInfo.Metadata.numberOfDecimals) + } tokenName={getTokenName(tokenInfo)} />; } From 811cdbe86d27e526f95c4eed348ac7f16f3e15df Mon Sep 17 00:00:00 2001 From: vantuz-subhuman Date: Wed, 2 Jun 2021 12:40:54 +0300 Subject: [PATCH 16/18] Catalyst Fund 4 final push --- .../app/containers/wallet/voting/VotingPage.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/yoroi-extension/app/containers/wallet/voting/VotingPage.js b/packages/yoroi-extension/app/containers/wallet/voting/VotingPage.js index dd8a3bb22a..2ad86c0096 100644 --- a/packages/yoroi-extension/app/containers/wallet/voting/VotingPage.js +++ b/packages/yoroi-extension/app/containers/wallet/voting/VotingPage.js @@ -31,8 +31,8 @@ type Props = {| |}; const roundInfo = { - startDate: new Date(Date.parse('2021-06-02T19:00:00Z')), - endDate: new Date(Date.parse('2021-06-09T19:00:00Z')), + startDate: new Date(Date.parse('2021-06-03T16:00:00Z')), + endDate: new Date(Date.parse('2021-06-11T11:00:00Z')), nextRound: 4, }; From 6f63d4694b3c04557c12737b5a00c7c7d6a89efb Mon Sep 17 00:00:00 2001 From: yushi Date: Thu, 20 May 2021 17:04:00 +0800 Subject: [PATCH 17/18] fix message descriptions for translated languaged --- packages/yoroi-extension/app/i18n/locales/cs-CZ.json | 2 +- packages/yoroi-extension/app/i18n/locales/de-DE.json | 2 +- packages/yoroi-extension/app/i18n/locales/el-GR.json | 2 +- packages/yoroi-extension/app/i18n/locales/es-ES.json | 2 +- packages/yoroi-extension/app/i18n/locales/fr-FR.json | 2 +- packages/yoroi-extension/app/i18n/locales/hr-HR.json | 2 +- packages/yoroi-extension/app/i18n/locales/id-ID.json | 2 +- packages/yoroi-extension/app/i18n/locales/it-IT.json | 2 +- packages/yoroi-extension/app/i18n/locales/ja-JP.json | 2 +- packages/yoroi-extension/app/i18n/locales/ko-KR.json | 2 +- packages/yoroi-extension/app/i18n/locales/nl-NL.json | 2 +- packages/yoroi-extension/app/i18n/locales/pt-BR.json | 2 +- packages/yoroi-extension/app/i18n/locales/ru-RU.json | 2 +- packages/yoroi-extension/app/i18n/locales/sk-SK.json | 2 +- packages/yoroi-extension/app/i18n/locales/tr-TR.json | 2 +- packages/yoroi-extension/app/i18n/locales/zh-Hans.json | 2 +- packages/yoroi-extension/app/i18n/locales/zh-Hant.json | 2 +- 17 files changed, 17 insertions(+), 17 deletions(-) diff --git a/packages/yoroi-extension/app/i18n/locales/cs-CZ.json b/packages/yoroi-extension/app/i18n/locales/cs-CZ.json index 4404c93647..53e90d7f83 100644 --- a/packages/yoroi-extension/app/i18n/locales/cs-CZ.json +++ b/packages/yoroi-extension/app/i18n/locales/cs-CZ.json @@ -776,7 +776,7 @@ "wallet.voting.line2": "Before you begin, make sure to complete steps below", "wallet.voting.line3": "Download the Catalyst Voting App.", "wallet.voting.line4": "Open the Catalyst Voting App and click on the Complete registration button.", - "wallet.voting.lineTitle": "Register to vote on Fund 3", + "wallet.voting.lineTitle": "Register to vote on Fund { round }", "wallet.withdrawal.transaction.unregister": "This transaction will unregister one or more staking keys, giving you back your {refundAmount} {ticker} from your deposit", "widgets.copyableaddress.addressCopyTooltipMessage": "Copy to clipboard", "widgets.explorer.tooltip": "Go to {websiteName}", diff --git a/packages/yoroi-extension/app/i18n/locales/de-DE.json b/packages/yoroi-extension/app/i18n/locales/de-DE.json index c7bbe6bed6..6672fe795e 100644 --- a/packages/yoroi-extension/app/i18n/locales/de-DE.json +++ b/packages/yoroi-extension/app/i18n/locales/de-DE.json @@ -776,7 +776,7 @@ "wallet.voting.line2": "Bevor du beginnst, schließe bitte die folgenden Schritte ab", "wallet.voting.line3": "Lade die Catalyst Abstimmungs-App herunter.", "wallet.voting.line4": "Öffne die Catalyst Voting App und klicke auf die Schaltfläche Registrierung abschließen.", - "wallet.voting.lineTitle": "Registrierung für die Fund 3 Abstimmung", + "wallet.voting.lineTitle": "Registrierung für die Fund { round } Abstimmung", "wallet.withdrawal.transaction.unregister": "Diese Transaktion wird eine oder mehrere Staking Schlüssel zurückziehen, und Dir {refundAmount} {ticker} zurückgeben", "widgets.copyableaddress.addressCopyTooltipMessage": "In die Zwischenablage kopieren", "widgets.explorer.tooltip": "Gehe zu {websiteName}", diff --git a/packages/yoroi-extension/app/i18n/locales/el-GR.json b/packages/yoroi-extension/app/i18n/locales/el-GR.json index 8525530cb2..9d84623e26 100644 --- a/packages/yoroi-extension/app/i18n/locales/el-GR.json +++ b/packages/yoroi-extension/app/i18n/locales/el-GR.json @@ -776,7 +776,7 @@ "wallet.voting.line2": "Before you begin, make sure to complete steps below", "wallet.voting.line3": "Download the Catalyst Voting App.", "wallet.voting.line4": "Open the Catalyst Voting App and click on the Complete registration button.", - "wallet.voting.lineTitle": "Register to vote on Fund 3", + "wallet.voting.lineTitle": "Register to vote on Fund { round }", "wallet.withdrawal.transaction.unregister": "This transaction will unregister one or more staking keys, giving you back your {refundAmount} {ticker} from your deposit", "widgets.copyableaddress.addressCopyTooltipMessage": "Αντιγραφή στο πρόχειρο", "widgets.explorer.tooltip": "Πηγαίνετε στο {websiteName}", diff --git a/packages/yoroi-extension/app/i18n/locales/es-ES.json b/packages/yoroi-extension/app/i18n/locales/es-ES.json index af0f566aae..fd516ea326 100644 --- a/packages/yoroi-extension/app/i18n/locales/es-ES.json +++ b/packages/yoroi-extension/app/i18n/locales/es-ES.json @@ -776,7 +776,7 @@ "wallet.voting.line2": "Antes de empezar, asegúrate de completar los siguientes pasos", "wallet.voting.line3": "Descarga la aplicación Catalyst Voting App.", "wallet.voting.line4": "Abre la Catalyst Voting App y haz clic en el botón Completar registro.", - "wallet.voting.lineTitle": "Registrarse para votar en el Fondo 3", + "wallet.voting.lineTitle": "Registrarse para votar en el Fondo { round }", "wallet.withdrawal.transaction.unregister": "Esta transacción desregistrará una o más claves de delegación, devolviendo las {refundAmount} {ticker} de tu depósito", "widgets.copyableaddress.addressCopyTooltipMessage": "Copiar al portapapeles", "widgets.explorer.tooltip": "Ir a {websiteName}", diff --git a/packages/yoroi-extension/app/i18n/locales/fr-FR.json b/packages/yoroi-extension/app/i18n/locales/fr-FR.json index ce67e95611..1e22d32775 100644 --- a/packages/yoroi-extension/app/i18n/locales/fr-FR.json +++ b/packages/yoroi-extension/app/i18n/locales/fr-FR.json @@ -776,7 +776,7 @@ "wallet.voting.line2": "Avant de commencer, assurez-vous de suivre les étapes suivantes", "wallet.voting.line3": "Télécharger l'application Catalyst Voting.", "wallet.voting.line4": "Ouvrez l'application Catalyst Voting App et cliquez sur le bouton Compléter l'inscription.", - "wallet.voting.lineTitle": "S'enregistrer pour voter au Fund 3", + "wallet.voting.lineTitle": "S'enregistrer pour voter au Fund { round }", "wallet.withdrawal.transaction.unregister": "Cette opération va désinscrire une ou plusieurs clés de staking, ce qui vous permettra de récupérer votre dépôt de {refundAmount} {ticker}", "widgets.copyableaddress.addressCopyTooltipMessage": "Copier dans le presse-papier", "widgets.explorer.tooltip": "Aller sur {websiteName}", diff --git a/packages/yoroi-extension/app/i18n/locales/hr-HR.json b/packages/yoroi-extension/app/i18n/locales/hr-HR.json index b05988311a..088b4a2f9b 100644 --- a/packages/yoroi-extension/app/i18n/locales/hr-HR.json +++ b/packages/yoroi-extension/app/i18n/locales/hr-HR.json @@ -776,7 +776,7 @@ "wallet.voting.line2": "Before you begin, make sure to complete steps below", "wallet.voting.line3": "Download the Catalyst Voting App.", "wallet.voting.line4": "Open the Catalyst Voting App and click on the Complete registration button.", - "wallet.voting.lineTitle": "Register to vote on Fund 3", + "wallet.voting.lineTitle": "Register to vote on Fund { round }", "wallet.withdrawal.transaction.unregister": "This transaction will unregister one or more staking keys, giving you back your {refundAmount} {ticker} from your deposit", "widgets.copyableaddress.addressCopyTooltipMessage": "Copy to clipboard", "widgets.explorer.tooltip": "Go to {websiteName}", diff --git a/packages/yoroi-extension/app/i18n/locales/id-ID.json b/packages/yoroi-extension/app/i18n/locales/id-ID.json index 7830683793..b900f04c66 100644 --- a/packages/yoroi-extension/app/i18n/locales/id-ID.json +++ b/packages/yoroi-extension/app/i18n/locales/id-ID.json @@ -776,7 +776,7 @@ "wallet.voting.line2": "Before you begin, make sure to complete steps below", "wallet.voting.line3": "Download the Catalyst Voting App.", "wallet.voting.line4": "Open the Catalyst Voting App and click on the Complete registration button.", - "wallet.voting.lineTitle": "Register to vote on Fund 3", + "wallet.voting.lineTitle": "Register to vote on Fund { round }", "wallet.withdrawal.transaction.unregister": "This transaction will unregister one or more staking keys, giving you back your {refundAmount} {ticker} from your deposit", "widgets.copyableaddress.addressCopyTooltipMessage": "Menyalin ke clipboard", "widgets.explorer.tooltip": "Pergi ke {websiteName}", diff --git a/packages/yoroi-extension/app/i18n/locales/it-IT.json b/packages/yoroi-extension/app/i18n/locales/it-IT.json index d73eb36855..44f63b15ec 100644 --- a/packages/yoroi-extension/app/i18n/locales/it-IT.json +++ b/packages/yoroi-extension/app/i18n/locales/it-IT.json @@ -776,7 +776,7 @@ "wallet.voting.line2": "Prima di iniziare, assicurati di completare i seguenti passi", "wallet.voting.line3": "Scarica la Catalyst Voting App.", "wallet.voting.line4": "Aprire la Catalyst Voting App e clicca sul pulsante Completa la registrazione.", - "wallet.voting.lineTitle": "Registrati per votare sul Fund 3", + "wallet.voting.lineTitle": "Registrati per votare sul Fund { round }", "wallet.withdrawal.transaction.unregister": "Questa transazione deregistrerà una o più chiavi di staking, restituendovi i vostri {refundAmount} {ticker} dal vostro deposito", "widgets.copyableaddress.addressCopyTooltipMessage": "Copia negli appunti", "widgets.explorer.tooltip": "Vai a {websiteName}", diff --git a/packages/yoroi-extension/app/i18n/locales/ja-JP.json b/packages/yoroi-extension/app/i18n/locales/ja-JP.json index c4ea548e0c..f1bf903f1c 100644 --- a/packages/yoroi-extension/app/i18n/locales/ja-JP.json +++ b/packages/yoroi-extension/app/i18n/locales/ja-JP.json @@ -776,7 +776,7 @@ "wallet.voting.line2": "Before you begin, make sure to complete steps below", "wallet.voting.line3": "Download the Catalyst Voting App.", "wallet.voting.line4": "Open the Catalyst Voting App and click on the Complete registration button.", - "wallet.voting.lineTitle": "Register to vote on Fund 3", + "wallet.voting.lineTitle": "Register to vote on Fund { round }", "wallet.withdrawal.transaction.unregister": "This transaction will unregister one or more staking keys, giving you back your {refundAmount} {ticker} from your deposit", "widgets.copyableaddress.addressCopyTooltipMessage": "クリップボードにコピーする", "widgets.explorer.tooltip": "{websiteName}へ", diff --git a/packages/yoroi-extension/app/i18n/locales/ko-KR.json b/packages/yoroi-extension/app/i18n/locales/ko-KR.json index 1d3a24aa10..69608f4e6d 100644 --- a/packages/yoroi-extension/app/i18n/locales/ko-KR.json +++ b/packages/yoroi-extension/app/i18n/locales/ko-KR.json @@ -776,7 +776,7 @@ "wallet.voting.line2": "Before you begin, make sure to complete steps below", "wallet.voting.line3": "Download the Catalyst Voting App.", "wallet.voting.line4": "Open the Catalyst Voting App and click on the Complete registration button.", - "wallet.voting.lineTitle": "Register to vote on Fund 3", + "wallet.voting.lineTitle": "Register to vote on Fund { round }", "wallet.withdrawal.transaction.unregister": "This transaction will unregister one or more staking keys, giving you back your {refundAmount} {ticker} from your deposit", "widgets.copyableaddress.addressCopyTooltipMessage": "클립보드로 복사", "widgets.explorer.tooltip": "{websiteName} 로 가기", diff --git a/packages/yoroi-extension/app/i18n/locales/nl-NL.json b/packages/yoroi-extension/app/i18n/locales/nl-NL.json index 108fd335ba..1a506e55bb 100644 --- a/packages/yoroi-extension/app/i18n/locales/nl-NL.json +++ b/packages/yoroi-extension/app/i18n/locales/nl-NL.json @@ -776,7 +776,7 @@ "wallet.voting.line2": "Zorg ervoor dat u de onderstaande stappen uitvoert voordat u begint", "wallet.voting.line3": "Download de Catalyst Stem-applicatie.", "wallet.voting.line4": "Open de Catalyst Stem-applicatie en klik op de knop \"Registratie voltooien\".", - "wallet.voting.lineTitle": "Registreer uzelf om op Fonds 3 te stemmen", + "wallet.voting.lineTitle": "Registreer uzelf om op Fonds { round } te stemmen", "wallet.withdrawal.transaction.unregister": "Met deze transactie wordt de registratie van een of meer stemsleutels ongedaan gemaakt, waardoor u uw {refundAmount} {ticker} van uw storting terugkrijgt", "widgets.copyableaddress.addressCopyTooltipMessage": "Kopieer naar klembord", "widgets.explorer.tooltip": "Ga naar {websiteName}", diff --git a/packages/yoroi-extension/app/i18n/locales/pt-BR.json b/packages/yoroi-extension/app/i18n/locales/pt-BR.json index 2c24db7d31..5b50369079 100644 --- a/packages/yoroi-extension/app/i18n/locales/pt-BR.json +++ b/packages/yoroi-extension/app/i18n/locales/pt-BR.json @@ -776,7 +776,7 @@ "wallet.voting.line2": "Before you begin, make sure to complete steps below", "wallet.voting.line3": "Download the Catalyst Voting App.", "wallet.voting.line4": "Open the Catalyst Voting App and click on the Complete registration button.", - "wallet.voting.lineTitle": "Register to vote on Fund 3", + "wallet.voting.lineTitle": "Register to vote on Fund { round }", "wallet.withdrawal.transaction.unregister": "Essa transação irá revogar uma ou mais chave de participação, reembolsando suas {refundAmount}{ticker} pagas como depósito no registro de sua chave de participação", "widgets.copyableaddress.addressCopyTooltipMessage": "Copiar para área de transferência", "widgets.explorer.tooltip": "Ir para {websiteName}", diff --git a/packages/yoroi-extension/app/i18n/locales/ru-RU.json b/packages/yoroi-extension/app/i18n/locales/ru-RU.json index cd6e2cb7ad..cca36055fb 100644 --- a/packages/yoroi-extension/app/i18n/locales/ru-RU.json +++ b/packages/yoroi-extension/app/i18n/locales/ru-RU.json @@ -776,7 +776,7 @@ "wallet.voting.line2": "Before you begin, make sure to complete steps below", "wallet.voting.line3": "Download the Catalyst Voting App.", "wallet.voting.line4": "Open the Catalyst Voting App and click on the Complete registration button.", - "wallet.voting.lineTitle": "Register to vote on Fund 3", + "wallet.voting.lineTitle": "Register to vote on Fund { round }", "wallet.withdrawal.transaction.unregister": "This transaction will unregister one or more staking keys, giving you back your {refundAmount} {ticker} from your deposit", "widgets.copyableaddress.addressCopyTooltipMessage": "Скопировать в буфер обмена", "widgets.explorer.tooltip": "Перейти на {websiteName}", diff --git a/packages/yoroi-extension/app/i18n/locales/sk-SK.json b/packages/yoroi-extension/app/i18n/locales/sk-SK.json index c4a3944ee6..e8b7190294 100644 --- a/packages/yoroi-extension/app/i18n/locales/sk-SK.json +++ b/packages/yoroi-extension/app/i18n/locales/sk-SK.json @@ -776,7 +776,7 @@ "wallet.voting.line2": "Before you begin, make sure to complete steps below", "wallet.voting.line3": "Download the Catalyst Voting App.", "wallet.voting.line4": "Open the Catalyst Voting App and click on the Complete registration button.", - "wallet.voting.lineTitle": "Register to vote on Fund 3", + "wallet.voting.lineTitle": "Register to vote on Fund { round }", "wallet.withdrawal.transaction.unregister": "This transaction will unregister one or more staking keys, giving you back your {refundAmount} {ticker} from your deposit", "widgets.copyableaddress.addressCopyTooltipMessage": "Copy to clipboard", "widgets.explorer.tooltip": "Go to {websiteName}", diff --git a/packages/yoroi-extension/app/i18n/locales/tr-TR.json b/packages/yoroi-extension/app/i18n/locales/tr-TR.json index bd37a7285d..1c6eed49ff 100644 --- a/packages/yoroi-extension/app/i18n/locales/tr-TR.json +++ b/packages/yoroi-extension/app/i18n/locales/tr-TR.json @@ -776,7 +776,7 @@ "wallet.voting.line2": "Before you begin, make sure to complete steps below", "wallet.voting.line3": "Download the Catalyst Voting App.", "wallet.voting.line4": "Open the Catalyst Voting App and click on the Complete registration button.", - "wallet.voting.lineTitle": "Register to vote on Fund 3", + "wallet.voting.lineTitle": "Register to vote on Fund { round }", "wallet.withdrawal.transaction.unregister": "This transaction will unregister one or more staking keys, giving you back your {refundAmount} {ticker} from your deposit", "widgets.copyableaddress.addressCopyTooltipMessage": "Panoya kopyala", "widgets.explorer.tooltip": "{websiteName} Adresine Git", diff --git a/packages/yoroi-extension/app/i18n/locales/zh-Hans.json b/packages/yoroi-extension/app/i18n/locales/zh-Hans.json index ff1309c7b1..7fac048c45 100644 --- a/packages/yoroi-extension/app/i18n/locales/zh-Hans.json +++ b/packages/yoroi-extension/app/i18n/locales/zh-Hans.json @@ -776,7 +776,7 @@ "wallet.voting.line2": "在您开始之前,请确保完成了下列步骤", "wallet.voting.line3": "下载Catalyst投票应用。", "wallet.voting.line4": "打开Catalyst投票应用,点击完成注册按钮。", - "wallet.voting.lineTitle": "注册并给资金3投票", + "wallet.voting.lineTitle": "注册并给资金{ round }投票", "wallet.withdrawal.transaction.unregister": "此交易将取消注册一个或多个委托密钥,从而从您的存款中退还您的{refundAmount}{ticker}。", "widgets.copyableaddress.addressCopyTooltipMessage": "复制到剪贴板", "widgets.explorer.tooltip": "前往{websiteName}", diff --git a/packages/yoroi-extension/app/i18n/locales/zh-Hant.json b/packages/yoroi-extension/app/i18n/locales/zh-Hant.json index fa88288c8c..9892d39224 100644 --- a/packages/yoroi-extension/app/i18n/locales/zh-Hant.json +++ b/packages/yoroi-extension/app/i18n/locales/zh-Hant.json @@ -776,7 +776,7 @@ "wallet.voting.line2": "Before you begin, make sure to complete steps below", "wallet.voting.line3": "Download the Catalyst Voting App.", "wallet.voting.line4": "Open the Catalyst Voting App and click on the Complete registration button.", - "wallet.voting.lineTitle": "Register to vote on Fund 3", + "wallet.voting.lineTitle": "Register to vote on Fund { round }", "wallet.withdrawal.transaction.unregister": "This transaction will unregister one or more staking keys, giving you back your {refundAmount} {ticker} from your deposit", "widgets.copyableaddress.addressCopyTooltipMessage": "複製到剪貼板", "widgets.explorer.tooltip": "前往{websiteName}", From 9cb27b5af52c79ab6c4e09f46a87eefdfd22e64e Mon Sep 17 00:00:00 2001 From: vantuz-subhuman Date: Wed, 2 Jun 2021 18:19:28 +0300 Subject: [PATCH 18/18] Version bump 4.5.4 --- check-all.sh | 4 ++++ install-all.sh | 2 ++ packages/yoroi-ergo-connector/package-lock.json | 2 +- packages/yoroi-extension/package-lock.json | 4 ++-- packages/yoroi-extension/package.json | 2 +- 5 files changed, 10 insertions(+), 4 deletions(-) create mode 100644 check-all.sh create mode 100644 install-all.sh diff --git a/check-all.sh b/check-all.sh new file mode 100644 index 0000000000..f8be4f6943 --- /dev/null +++ b/check-all.sh @@ -0,0 +1,4 @@ +. ./install-all.sh +npm run flow +npm run eslint +npm run test \ No newline at end of file diff --git a/install-all.sh b/install-all.sh new file mode 100644 index 0000000000..1e232d2657 --- /dev/null +++ b/install-all.sh @@ -0,0 +1,2 @@ +npm i --prefix packages/yoroi-extension +npm i --prefix packages/yoroi-ergo-connector \ No newline at end of file diff --git a/packages/yoroi-ergo-connector/package-lock.json b/packages/yoroi-ergo-connector/package-lock.json index cf4268f912..b9f30baeac 100644 --- a/packages/yoroi-ergo-connector/package-lock.json +++ b/packages/yoroi-ergo-connector/package-lock.json @@ -1,6 +1,6 @@ { "name": "yoroi-ergo-connector", - "version": "0.2.1", + "version": "0.3.0", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/packages/yoroi-extension/package-lock.json b/packages/yoroi-extension/package-lock.json index 3d9dcccacd..19ac77d83e 100644 --- a/packages/yoroi-extension/package-lock.json +++ b/packages/yoroi-extension/package-lock.json @@ -1,6 +1,6 @@ { "name": "yoroi", - "version": "4.5.3", + "version": "4.5.4", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -4490,7 +4490,7 @@ "resolved": "https://registry.npmjs.org/@emurgo/ledger-connect-handler/-/ledger-connect-handler-4.7.0.tgz", "integrity": "sha512-qI326TOFqnaJ+vO8O8G+vAEkTFWsw/sS4zplZnUjM62pHDlCi47mMipcmd5a5aN5fBQ70X6s+8jLm6oaD3to4A==", "requires": { - "@cardano-foundation/ledgerjs-hw-app-cardano": "git+https://github.com/SebastienGllmt/ledgerjs-hw-app-cardano.git#5f660ceb4ab5d579b603a1c8f3c24d748582a473" + "@cardano-foundation/ledgerjs-hw-app-cardano": "git+https://github.com/SebastienGllmt/ledgerjs-hw-app-cardano.git" } }, "@eslint/eslintrc": { diff --git a/packages/yoroi-extension/package.json b/packages/yoroi-extension/package.json index c4e10c464a..335db1c7ec 100644 --- a/packages/yoroi-extension/package.json +++ b/packages/yoroi-extension/package.json @@ -1,6 +1,6 @@ { "name": "yoroi", - "version": "4.5.3", + "version": "4.5.4", "description": "Cardano ADA wallet", "scripts": { "dev:build": "rimraf dev/ && babel-node scripts/build --type=debug",