diff --git a/components/AddAccountButton/index.tsx b/components/AddAccountButton/index.tsx index 02316bbd..f72828d6 100644 --- a/components/AddAccountButton/index.tsx +++ b/components/AddAccountButton/index.tsx @@ -15,6 +15,7 @@ import SelectAddressesContent from './SelectAddresses' import SecurityPasswordDialogContent from '../SecurityPasswordDialogContent' import SuccessContent from '../Success' import ConnectLedgerDialogContent from '../ConnectLedgerDialogContent' +import { closeAllLedgerConnections } from '../../misc/utils' let ledgerTransport @@ -38,6 +39,7 @@ const AddAccountButton: React.FC = ({ walletId }) => { const [dialogOpen, setDialogOpen] = React.useState(false) const onClose = () => { setDialogOpen(false) + closeAllLedgerConnections() } const theme = useTheme() const isMobile = useIsMobile() diff --git a/components/ConnectLedgerDialogContent/index.tsx b/components/ConnectLedgerDialogContent/index.tsx index 4aba7f3e..58bfa5ff 100644 --- a/components/ConnectLedgerDialogContent/index.tsx +++ b/components/ConnectLedgerDialogContent/index.tsx @@ -5,6 +5,7 @@ import TransportWebHID from '@ledgerhq/hw-transport-webhid' import { LaunchpadLedger } from '@cosmjs/ledger-amino' import LedgerImage from '../../assets/images/ledger.svg' import useStyles from './styles' +import { closeAllLedgerConnections } from '../../misc/utils' interface ConnectLedgerDialogContentProps { onConnect(transport: any): void @@ -27,8 +28,7 @@ const ConnectLedgerDialogContent: React.FC = ({ } catch (err) { // Ledger is connected previously. Close the previous connections if (err.message === 'The device is already open.') { - const devices = await TransportWebHID.list() - await Promise.all(devices.map((d) => d.close())) + closeAllLedgerConnections() } retryTimeout = setTimeout(connectLedger, 1000) } diff --git a/components/CreateWalletDialog/AccessMyWallet.tsx b/components/CreateWalletDialog/AccessMyWallet.tsx index ac878f13..c0797333 100644 --- a/components/CreateWalletDialog/AccessMyWallet.tsx +++ b/components/CreateWalletDialog/AccessMyWallet.tsx @@ -14,10 +14,10 @@ import { ImportStage } from '.' interface AccessMyWalletProps { onConfirm(stage: ImportStage): void - onCreateWallet(): void + onWhatIsMnemonicClick(): void } -const AccessMyWallet: React.FC = ({ onConfirm, onCreateWallet }) => { +const AccessMyWallet: React.FC = ({ onConfirm, onWhatIsMnemonicClick }) => { const { t } = useTranslation('common') const classes = useStyles() @@ -43,8 +43,8 @@ const AccessMyWallet: React.FC = ({ onConfirm, onCreateWall - diff --git a/components/CreateWalletDialog/Start.tsx b/components/CreateWalletDialog/Start.tsx index bb5702a8..9e96be53 100644 --- a/components/CreateWalletDialog/Start.tsx +++ b/components/CreateWalletDialog/Start.tsx @@ -36,33 +36,35 @@ const Start: React.FC = ({ <> {t('create wallet description')} - - - - - {theme === 'light' ? : } - - - {t('i have secret recovery phrase')} - - + + + + + + {theme === 'light' ? : } + + + {t('import wallet')} + + + + + + + {theme === 'light' ? : } + + + {t('create wallet')} + + + - - - - {theme === 'light' ? : } - - - {t('i dont have secret recovery phrase')} - - - - + - + */} ) diff --git a/components/CreateWalletDialog/index.tsx b/components/CreateWalletDialog/index.tsx index 17ab3894..f9902c6f 100644 --- a/components/CreateWalletDialog/index.tsx +++ b/components/CreateWalletDialog/index.tsx @@ -19,6 +19,7 @@ import useStateHistory from '../../misc/useStateHistory' import ConnectLedgerDialogContent from '../ConnectLedgerDialogContent' import useIsMobile from '../../misc/useIsMobile' import getWalletAddress from '../../misc/getWalletAddress' +import { closeAllLedgerConnections } from '../../misc/utils' let ledgerSigner @@ -43,7 +44,7 @@ type Stage = CommonStage | ImportStage interface CreateWalletDialogProps { open: boolean - onClose(): void + onClose(event?: unknown, reason?: string): void initialStage?: Stage } @@ -134,7 +135,9 @@ const CreateWalletDialog: React.FC = ({ open, onClose, const saveWallet = React.useCallback( async (name: string, cryptos: string[], type = 'mnemonic') => { const addresses = await Promise.all( - cryptos.map((c) => getWalletAddress(mnemonic, c, 0, ledgerSigner)) + cryptos.map((c) => + getWalletAddress(mnemonic, c, 0, type === 'ledger' ? ledgerSigner : undefined) + ) ) await addWallet({ type, @@ -229,7 +232,12 @@ const CreateWalletDialog: React.FC = ({ open, onClose, case CommonStage.AccessMyWalletStage: return { title: t('access my wallet title'), - content: , + content: ( + setStage(CommonStage.WhatIsMnemonicStage)} + /> + ), } case CommonStage.StartStage: default: @@ -247,16 +255,31 @@ const CreateWalletDialog: React.FC = ({ open, onClose, }, [stage, t]) return ( - + { + if (reason !== 'backdropClick') { + onClose(event, reason) + } + }} + fullScreen={isMobile} + > {isPrevStageAvailable ? ( - + { + toPrevStage() + closeAllLedgerConnections() + }} + > ) : null} - {content.title} + {content.title ? {content.title} : null} {content.content} ) diff --git a/components/CreateWalletDialog/styles.ts b/components/CreateWalletDialog/styles.ts index a418ad72..9b01bc98 100644 --- a/components/CreateWalletDialog/styles.ts +++ b/components/CreateWalletDialog/styles.ts @@ -20,11 +20,12 @@ const useStyles = makeStyles( selectionBox: { border: `1px solid ${theme.palette.grey[200]}`, borderRadius: theme.shape.borderRadius, - height: theme.spacing(38), + height: theme.spacing(32), padding: theme.spacing(2, 4), display: 'flex', flexDirection: 'column', - justifyContent: 'flex-end', + width: '100%', + justifyContent: 'center', '&:hover': { border: `1px solid ${theme.palette.grey[300]}`, }, diff --git a/contexts/WalletsContext.tsx b/contexts/WalletsContext.tsx index 08b3df62..8061e69f 100644 --- a/contexts/WalletsContext.tsx +++ b/contexts/WalletsContext.tsx @@ -112,7 +112,7 @@ const WalletsProvider: React.FC = ({ children }) => { }, }) setIsFirstTimeUser(false) - setWallets((ws) => [result.wallet, ...ws]) + setWallets((ws) => [{ ...result.wallet, type: wallet.type }, ...ws]) setAccounts((acs) => [...result.accounts, ...acs]) }, [password, setIsFirstTimeUser, setWallets, setAccounts] diff --git a/cypress/integration/onboarding/createWallet.spec.ts b/cypress/integration/onboarding/createWallet.spec.ts index 6c933815..0e88fe0f 100644 --- a/cypress/integration/onboarding/createWallet.spec.ts +++ b/cypress/integration/onboarding/createWallet.spec.ts @@ -47,7 +47,7 @@ describe('Create wallet on first visit', () => { cy.get('button').contains('Confirm').click() }) it('create and confirm secret recovery phrase', () => { - cy.contains('have any').click() + cy.contains('Create Wallet').click() cy.get('.mnemonic').should('be.visible') cy.get('.mnemonic').then((e) => { const mnemonic = [] diff --git a/cypress/integration/onboarding/importMnemonicPhrase.ts b/cypress/integration/onboarding/importMnemonicPhrase.ts index a1693a8f..b3de49d8 100644 --- a/cypress/integration/onboarding/importMnemonicPhrase.ts +++ b/cypress/integration/onboarding/importMnemonicPhrase.ts @@ -46,7 +46,7 @@ describe('Create wallet by importing secret recovery phrase on first visit', () cy.get('button').contains('Confirm').click() }) it('import secret recovery phrase', () => { - cy.contains('12 / 24 word secret recovery phrase').click() + cy.contains('Import Wallet').click() cy.contains('Import Secret Recovery Phrase').click() cy.get('#mnemonic-0').type(mnemonic) cy.contains('Next').click() diff --git a/locales/en/common.json b/locales/en/common.json index 4e756edd..8933d486 100644 --- a/locales/en/common.json +++ b/locales/en/common.json @@ -25,15 +25,15 @@ "invalid confirm password": "Confirm password does not match", "create wallet title": "Getting Started", "create wallet description": "Select one of method that can describe you", - "i have secret recovery phrase": "I have 12 / 24 word secret recovery phrase", - "i dont have secret recovery phrase": "I don’t have any secret recovery phrase", + "import wallet": "Import Wallet", + "create wallet": "Create Wallet", "what is secret recovery phrase": "What is secret recovery phrase?", "create new wallet title": "Create Wallet", "create new wallet description": "Please write down and safe your secret recovery phrase\nIt’s the ONLY WAY to restore your account", "create new wallet button": "I have written it down", "create new wallet caption": "We’ll confirm on the next screen", "confirm secret recovery description": "Please enter your secret recovery phrase in order and\nmake sure your secret recovery phrase is written correctly", - "invalid secret recovery phrase": "Invalid secret recovery phrase", + "invalid mnemonic": "Invalid secret recovery phrase", "unlock password title": "Unlock Password", "unlock password description": "Enter password to unlock your application", "incorrect password": "Incorrect password", diff --git a/misc/utils.ts b/misc/utils.ts index 0e3500f7..0bcff524 100644 --- a/misc/utils.ts +++ b/misc/utils.ts @@ -4,6 +4,7 @@ import cloneDeep from 'lodash/cloneDeep' import drop from 'lodash/drop' import keyBy from 'lodash/keyBy' import { format, differenceInDays } from 'date-fns' +import TransportWebHID from '@ledgerhq/hw-transport-webhid' export const formatPercentage = (percent: number, lang: string): string => new Intl.NumberFormat(lang, { @@ -646,3 +647,8 @@ export const isAddressValid = (prefix: string, address: string): boolean => { export const formatHeight = (height: number, lang?: string): string => `${new Intl.NumberFormat(lang).format(height || 0)}` + +export const closeAllLedgerConnections = async () => { + const devices = await TransportWebHID.list() + await Promise.all(devices.map((d) => d.close())) +} diff --git a/package.json b/package.json index 041649aa..b204763e 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "forbole-x", - "version": "0.4.0", + "version": "0.4.1", "private": true, "scripts": { "dev": "next dev", @@ -14,10 +14,10 @@ }, "dependencies": { "@apollo/client": "^3.3.12", - "@cosmjs/crypto": "^0.25.6", - "@cosmjs/ledger-amino": "^0.25.6", - "@cosmjs/proto-signing": "^0.25.6", - "@cosmjs/stargate": "^0.26.0-alpha2", + "@cosmjs/crypto": "^0.26.0", + "@cosmjs/ledger-amino": "^0.26.0", + "@cosmjs/proto-signing": "^0.26.0", + "@cosmjs/stargate": "^0.26.0", "@ledgerhq/hw-transport-webhid": "^6.1.0", "@material-ui/core": "^4.11.2", "@material-ui/icons": "^4.11.2", @@ -30,9 +30,7 @@ "next": "^11.1.0", "next-translate": "^1.0.1", "nodemailer": "^6.6.3", - "patch-package": "^6.4.7", "postcss": "^8.2.15", - "postinstall-postinstall": "^2.1.0", "qrcode.react": "^1.0.1", "query-string": "^7.0.0", "react": "^17.0.1", @@ -71,6 +69,8 @@ "jest-dom": "^4.0.0", "jest-localstorage-mock": "^2.4.6", "jest-svg-transformer": "^1.0.0", + "patch-package": "^6.4.7", + "postinstall-postinstall": "^2.1.0", "prettier": "^2.2.1", "react-test-renderer": "^17.0.1", "typescript": "^4.1.3" diff --git a/pages/wallets.tsx b/pages/wallets.tsx index d2d8540d..fac317b0 100644 --- a/pages/wallets.tsx +++ b/pages/wallets.tsx @@ -56,7 +56,7 @@ const Wallets: React.FC = () => { setIsCreateWalletDialogOpen(false)} - initialStage={CommonStage.AccessMyWalletStage} + // initialStage={CommonStage.AccessMyWalletStage} /> ) diff --git a/patches/@cosmjs+ledger-amino+0.25.6.patch b/patches/@cosmjs+ledger-amino+0.26.0.patch similarity index 100% rename from patches/@cosmjs+ledger-amino+0.25.6.patch rename to patches/@cosmjs+ledger-amino+0.26.0.patch diff --git a/patches/@cosmjs+stargate+0.26.0-alpha2.patch b/patches/@cosmjs+stargate+0.26.0-alpha2.patch deleted file mode 100644 index e2e2f127..00000000 --- a/patches/@cosmjs+stargate+0.26.0-alpha2.patch +++ /dev/null @@ -1,20 +0,0 @@ -diff --git a/node_modules/@cosmjs/stargate/build/signingstargateclient.js b/node_modules/@cosmjs/stargate/build/signingstargateclient.js -index 5df70e4..c704c31 100644 ---- a/node_modules/@cosmjs/stargate/build/signingstargateclient.js -+++ b/node_modules/@cosmjs/stargate/build/signingstargateclient.js -@@ -30,6 +30,7 @@ exports.defaultRegistryTypes = [ - ["/cosmos.distribution.v1beta1.MsgWithdrawDelegatorReward", tx_2.MsgWithdrawDelegatorReward], - ["/cosmos.distribution.v1beta1.MsgWithdrawValidatorCommission", tx_2.MsgWithdrawValidatorCommission], - ["/cosmos.gov.v1beta1.MsgSubmitProposal", tx_3.MsgSubmitProposal], -+ ["/cosmos.gov.v1beta1.MsgDeposit", tx_3.MsgDeposit], - ["/cosmos.gov.v1beta1.MsgVote", tx_3.MsgVote], - ["/cosmos.staking.v1beta1.MsgBeginRedelegate", tx_4.MsgBeginRedelegate], - ["/cosmos.staking.v1beta1.MsgCreateValidator", tx_4.MsgCreateValidator], -@@ -63,6 +64,7 @@ class SigningStargateClient extends stargateclient_1.StargateClient { - constructor(tmClient, signer, options) { - super(tmClient); - const { registry = createDefaultRegistry(), aminoTypes = new aminotypes_1.AminoTypes({ prefix: options.prefix }) } = options; -+ console.log(registry) - this.registry = registry; - this.aminoTypes = aminoTypes; - this.signer = signer; diff --git a/patches/@cosmjs+stargate+0.26.0.patch b/patches/@cosmjs+stargate+0.26.0.patch new file mode 100644 index 00000000..0da0e688 --- /dev/null +++ b/patches/@cosmjs+stargate+0.26.0.patch @@ -0,0 +1,16 @@ +diff --git a/node_modules/@cosmjs/stargate/build/accounts.js b/node_modules/@cosmjs/stargate/build/accounts.js +index 55753d0..849f1ec 100644 +--- a/node_modules/@cosmjs/stargate/build/accounts.js ++++ b/node_modules/@cosmjs/stargate/build/accounts.js +@@ -58,6 +58,11 @@ function accountFromAny(input) { + utils_1.assert(baseAccount); + return accountFromBaseAccount(baseAccount); + } ++ // custom ++ case "/desmos.profiles.v1beta1.Profile": { ++ const baseAccount = auth_1.ProfileAccount.decode(value).baseAccount; ++ return accountFromBaseAccount(baseAccount); ++ } + default: + throw new Error(`Unsupported type: '${typeUrl}'`); + } diff --git a/patches/cosmjs-types+0.2.0.patch b/patches/cosmjs-types+0.2.0.patch new file mode 100644 index 00000000..d3a1f054 --- /dev/null +++ b/patches/cosmjs-types+0.2.0.patch @@ -0,0 +1,31 @@ +diff --git a/node_modules/cosmjs-types/cosmos/auth/v1beta1/auth.js b/node_modules/cosmjs-types/cosmos/auth/v1beta1/auth.js +index 0673e21..adc499d 100644 +--- a/node_modules/cosmjs-types/cosmos/auth/v1beta1/auth.js ++++ b/node_modules/cosmjs-types/cosmos/auth/v1beta1/auth.js +@@ -355,4 +355,25 @@ if (minimal_1.default.util.Long !== long_1.default) { + minimal_1.default.util.Long = long_1.default; + minimal_1.default.configure(); + } ++ ++exports.ProfileAccount = { ++ decode(input, length) { ++ const reader = input instanceof minimal_1.default.Reader ? input : new minimal_1.default.Reader(input); ++ let end = length === undefined ? reader.len : reader.pos + length; ++ const message = Object.assign({}, baseModuleAccount); ++ message.permissions = []; ++ while (reader.pos < end) { ++ const tag = reader.uint32(); ++ switch (tag >>> 3) { ++ case 1: ++ message.baseAccount = exports.BaseAccount.decode(any_1.Any.decode(reader, reader.uint32()).value); ++ break; ++ default: ++ reader.skipType(tag & 7); ++ break; ++ } ++ } ++ return message; ++ }, ++}; + //# sourceMappingURL=auth.js.map +\ No newline at end of file diff --git a/tests/components/CreateWalletDialog/AccessMyWallet.test.tsx b/tests/components/CreateWalletDialog/AccessMyWallet.test.tsx index 31c0b6c3..e36a3669 100644 --- a/tests/components/CreateWalletDialog/AccessMyWallet.test.tsx +++ b/tests/components/CreateWalletDialog/AccessMyWallet.test.tsx @@ -41,15 +41,15 @@ describe('component: CreateWalletDialog - AccessMyWallet', () => { }) expect(onConfirm).toBeCalledWith(ImportStage.ConnectLedgerDeviceStage) }) - it('calls onCreateWallet when last button is clicked', () => { - const component = renderer.create( - - ) - renderer.act(() => { - component.root.findAllByType('button')[3].props.onClick() - }) - expect(onCreateWallet).toBeCalled() - }) + // it('calls onCreateWallet when last button is clicked', () => { + // const component = renderer.create( + // + // ) + // renderer.act(() => { + // component.root.findAllByType('button')[3].props.onClick() + // }) + // expect(onCreateWallet).toBeCalled() + // }) }) afterEach(() => { diff --git a/tests/components/CreateWalletDialog/__snapshots__/AccessMyWallet.test.tsx.snap b/tests/components/CreateWalletDialog/__snapshots__/AccessMyWallet.test.tsx.snap index cde1a625..54b51575 100644 --- a/tests/components/CreateWalletDialog/__snapshots__/AccessMyWallet.test.tsx.snap +++ b/tests/components/CreateWalletDialog/__snapshots__/AccessMyWallet.test.tsx.snap @@ -109,7 +109,6 @@ Array [ className="MuiButtonBase-root MuiButton-root MuiButton-text HookGlobalStyles-button-1 MuiButton-textPrimary" disabled={false} onBlur={[Function]} - onClick={[MockFunction]} onDragLeave={[Function]} onFocus={[Function]} onKeyDown={[Function]} @@ -126,7 +125,7 @@ Array [ - common:create a wallet + common:what is secret recovery phrase , diff --git a/tests/components/CreateWalletDialog/__snapshots__/index.test.tsx.snap b/tests/components/CreateWalletDialog/__snapshots__/index.test.tsx.snap index 022d6a45..d3cdf13b 100644 --- a/tests/components/CreateWalletDialog/__snapshots__/index.test.tsx.snap +++ b/tests/components/CreateWalletDialog/__snapshots__/index.test.tsx.snap @@ -5,7 +5,7 @@ exports[`component: CreateWalletDialog renders closed state correctly 1`] = ` fullScreen={false} fullWidth={true} id="dialog" - onClose={[MockFunction]} + onClose={[Function]} open={false} > - -
-
+
-
- + +
+

+ common:create wallet +

+ -
-

- common:i dont have secret recovery phrase -

- - + +
- -
+ /> `; @@ -177,7 +153,7 @@ exports[`component: CreateWalletDialog renders open state correctly 1`] = ` fullScreen={false} fullWidth={true} id="dialog" - onClose={[MockFunction]} + onClose={[Function]} open={true} > - -
-
+

+ common:import wallet +

+ + +
-
- -
-

- common:i dont have secret recovery phrase -

- +
+ +
+

+ common:create wallet +

+ +
- -
+ /> `; diff --git a/tests/contexts/WalletsContext.test.tsx b/tests/contexts/WalletsContext.test.tsx index 3089c2fb..b294ca4b 100644 --- a/tests/contexts/WalletsContext.test.tsx +++ b/tests/contexts/WalletsContext.test.tsx @@ -11,6 +11,7 @@ const wallet = { name: 'test', id: '123', cryptos: ['DARIC'], + type: 'mnemonic', } const account = { @@ -80,6 +81,7 @@ describe('context: WalletsContext', () => { name: 'test 2', id: '1234', cryptos: ['DARIC'], + type: 'mnemonic', }, accounts: [], }) @@ -88,6 +90,7 @@ describe('context: WalletsContext', () => { cryptos: ['DARIC'], mnemonic: 'mnemonic', securityPassword: 'password', + type: 'mnemonic', } const wrapper: React.FC = ({ children }) => {children} @@ -105,6 +108,7 @@ describe('context: WalletsContext', () => { name: wallet2.name, id: '1234', cryptos: ['DARIC'], + type: 'mnemonic', }, wallet, ] diff --git a/yarn.lock b/yarn.lock index f54cd38a..887c2fd2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1004,34 +1004,24 @@ ripemd160 "^2.0.2" sha.js "^2.4.11" -"@cosmjs/amino@0.26.0-alpha2": - version "0.26.0-alpha2" - resolved "https://registry.yarnpkg.com/@cosmjs/amino/-/amino-0.26.0-alpha2.tgz#3a773598350b1f2059a1edab2624a7281195bfcc" - integrity sha512-rpjO3H1+UEYyUESSCUyLTEs2t8LJjwI+eJFDXPieWceft1kW4qu0yF7/ZKPpL6JkKnX5mN+nzhi0Cw5co9lpaA== - dependencies: - "@cosmjs/crypto" "0.26.0-alpha2" - "@cosmjs/encoding" "0.26.0-alpha2" - "@cosmjs/math" "0.26.0-alpha2" - "@cosmjs/utils" "0.26.0-alpha2" - -"@cosmjs/amino@^0.25.6": - version "0.25.6" - resolved "https://registry.yarnpkg.com/@cosmjs/amino/-/amino-0.25.6.tgz#cdf9632253bfab7b1d2ef967124953d7bf16351f" - integrity sha512-9dXN2W7LHjDtJUGNsQ9ok0DfxeN3ca/TXnxCR3Ikh/5YqBqxI8Gel1J9PQO9L6EheYyh045Wff4bsMaLjyEeqQ== - dependencies: - "@cosmjs/crypto" "^0.25.6" - "@cosmjs/encoding" "^0.25.6" - "@cosmjs/math" "^0.25.6" - "@cosmjs/utils" "^0.25.6" - -"@cosmjs/crypto@0.26.0-alpha2": - version "0.26.0-alpha2" - resolved "https://registry.yarnpkg.com/@cosmjs/crypto/-/crypto-0.26.0-alpha2.tgz#e4f0c41eca4afb5096f59248f63894bf913d0332" - integrity sha512-QdzPxF9wE6Jp9zGz5kRg/TaQLRU2nFomm5jw04eGhey/C0M6lm2V8CBiJxABbtBo2lLme0IyyOaTJP5c+avKcA== - dependencies: - "@cosmjs/encoding" "0.26.0-alpha2" - "@cosmjs/math" "0.26.0-alpha2" - "@cosmjs/utils" "0.26.0-alpha2" +"@cosmjs/amino@0.26.0": + version "0.26.0" + resolved "https://registry.yarnpkg.com/@cosmjs/amino/-/amino-0.26.0.tgz#2999204fe21101ecdfb5f2f5632440d065914b51" + integrity sha512-CDGCdGYsxrJxhiI57e7no25LPuzKQOe4DdsJQyLrOzAnFnGHYJvPh0NAX4eEh3dOfwJCwMNnA1w79JNm0lzhOA== + dependencies: + "@cosmjs/crypto" "0.26.0" + "@cosmjs/encoding" "0.26.0" + "@cosmjs/math" "0.26.0" + "@cosmjs/utils" "0.26.0" + +"@cosmjs/crypto@0.26.0", "@cosmjs/crypto@^0.26.0": + version "0.26.0" + resolved "https://registry.yarnpkg.com/@cosmjs/crypto/-/crypto-0.26.0.tgz#e57effc8c26d1b301a653430570640d5765a4c1d" + integrity sha512-/36R7BzBNag1QRA2tpOrnr7x02B/YuaCgXKmKGLNd1+62Ud6aKkORyZMDvEt65SKoLhbDUzvNpSHAUjMsUbDfg== + dependencies: + "@cosmjs/encoding" "0.26.0" + "@cosmjs/math" "0.26.0" + "@cosmjs/utils" "0.26.0" bip39 "^3.0.2" bn.js "^4.11.8" elliptic "^6.5.3" @@ -1040,152 +1030,109 @@ ripemd160 "^2.0.2" sha.js "^2.4.11" -"@cosmjs/crypto@^0.25.6": - version "0.25.6" - resolved "https://registry.yarnpkg.com/@cosmjs/crypto/-/crypto-0.25.6.tgz#695d2d0d2195bdbdd5825d415385646244900bbb" - integrity sha512-ec+YcQLrg2ibcxtNrh4FqQnG9kG9IE/Aik2NH6+OXQdFU/qFuBTxSFcKDgzzBOChwlkXwydllM9Jjbp+dgIzRw== - dependencies: - "@cosmjs/encoding" "^0.25.6" - "@cosmjs/math" "^0.25.6" - "@cosmjs/utils" "^0.25.6" - bip39 "^3.0.2" - bn.js "^4.11.8" - elliptic "^6.5.3" - js-sha3 "^0.8.0" - libsodium-wrappers "^0.7.6" - ripemd160 "^2.0.2" - sha.js "^2.4.11" - -"@cosmjs/encoding@0.26.0-alpha2": - version "0.26.0-alpha2" - resolved "https://registry.yarnpkg.com/@cosmjs/encoding/-/encoding-0.26.0-alpha2.tgz#d5a136abe4d4c20d754a40efec94b5980ab08ba6" - integrity sha512-yYLHoF8YniI45T+drrLTh2ClYpOsDS32A4yFC/keptEAdNTvm9VhlYGAmcYmXWQ0hqq+kQXjHgkLITi0XpyRug== - dependencies: - base64-js "^1.3.0" - bech32 "^1.1.4" - readonly-date "^1.0.0" - -"@cosmjs/encoding@^0.25.6": - version "0.25.6" - resolved "https://registry.yarnpkg.com/@cosmjs/encoding/-/encoding-0.25.6.tgz#da741a33eaf063a6d3611d7d68db5ca3938e0ef5" - integrity sha512-0imUOB8XkUstI216uznPaX1hqgvLQ2Xso3zJj5IV5oJuNlsfDj9nt/iQxXWbJuettc6gvrFfpf+Vw2vBZSZ75g== +"@cosmjs/encoding@0.26.0": + version "0.26.0" + resolved "https://registry.yarnpkg.com/@cosmjs/encoding/-/encoding-0.26.0.tgz#b486331d1f640327df5b21bd88c7d67c265e1dfe" + integrity sha512-ctw6cBDsQSd0OJFWEwU6fJYrAXf63JNhOS3mjawo/hRyEFpVSBSEKEHvfICPc+4dT40v9L3eYEr8LXDYxat4AA== dependencies: base64-js "^1.3.0" bech32 "^1.1.4" readonly-date "^1.0.0" -"@cosmjs/json-rpc@0.26.0-alpha2": - version "0.26.0-alpha2" - resolved "https://registry.yarnpkg.com/@cosmjs/json-rpc/-/json-rpc-0.26.0-alpha2.tgz#7082abd51f36b7c4ecf9a582f6232c931979fa35" - integrity sha512-dHdmQFPX5H472qswE7c2jqcv3y8BsRKUsg4QzYZCwmo9YiIN9uqvPXLqDmsVMzW4/ZLrsGfSnDG8i0v9NVWBrw== +"@cosmjs/json-rpc@0.26.0": + version "0.26.0" + resolved "https://registry.yarnpkg.com/@cosmjs/json-rpc/-/json-rpc-0.26.0.tgz#b24c943f7445dcfc5265fbc65f50862353a48d8b" + integrity sha512-Jc+O0fDZjb8bxKSwH8SG9lJxV/y6lN4bYhiUqHNU6AUDUD9wzVr1mPgMudCJQ1DkQrgz8dQg2cDwgFp6eN428g== dependencies: - "@cosmjs/stream" "0.26.0-alpha2" + "@cosmjs/stream" "0.26.0" xstream "^11.14.0" -"@cosmjs/ledger-amino@^0.25.6": - version "0.25.6" - resolved "https://registry.yarnpkg.com/@cosmjs/ledger-amino/-/ledger-amino-0.25.6.tgz#8ff29c3563b53d8ecfd3a1bcc48512b6ffdd61e9" - integrity sha512-TaoFte6S1yMFGCfPVNHrrR5/Hz67v4+9/rdKelgNc6k7FYekwzO4dX3tJRUY7XfjaNlW8ojkCWppic1QUe+P2A== +"@cosmjs/ledger-amino@^0.26.0": + version "0.26.0" + resolved "https://registry.yarnpkg.com/@cosmjs/ledger-amino/-/ledger-amino-0.26.0.tgz#b8f4a6c3fbcd5134f209633c2a9e96560973ac09" + integrity sha512-j1fN0yvt1RPOJKSNtk5XX903SDNyYFAXGlODc9JwWsgRdo/ozqenRfVhGGZS0UceyYU+LvxAkUYcqFju8Kc2Yw== dependencies: - "@cosmjs/amino" "^0.25.6" - "@cosmjs/utils" "^0.25.6" + "@cosmjs/amino" "0.26.0" + "@cosmjs/crypto" "0.26.0" + "@cosmjs/encoding" "0.26.0" + "@cosmjs/math" "0.26.0" + "@cosmjs/utils" "0.26.0" ledger-cosmos-js "^2.1.8" semver "^7.3.2" -"@cosmjs/math@0.26.0-alpha2": - version "0.26.0-alpha2" - resolved "https://registry.yarnpkg.com/@cosmjs/math/-/math-0.26.0-alpha2.tgz#8e561b8433acafcbf8be414b6b41af7cff33c4f2" - integrity sha512-xO9NaOmJQIlPu32As/H3S6m2jxHo+e+/Ma0gygDX0svXYA3HeT8XDmrv18ctr5DQTP+zxki2LPX/1w9Enr3vNg== - dependencies: - bn.js "^4.11.8" - -"@cosmjs/math@^0.25.6": - version "0.25.6" - resolved "https://registry.yarnpkg.com/@cosmjs/math/-/math-0.25.6.tgz#25c7b106aaded889a5b80784693caa9e654b0c28" - integrity sha512-Fmyc9FJ8KMU34n7rdapMJrT/8rx5WhMw2F7WLBu7AVLcBh0yWsXIcMSJCoPHTOnMIiABjXsnrrwEaLrOOBfu6A== +"@cosmjs/math@0.26.0": + version "0.26.0" + resolved "https://registry.yarnpkg.com/@cosmjs/math/-/math-0.26.0.tgz#7b027732965e7a408c4be6bbf1d415cd04fd6031" + integrity sha512-wfzdK/PnEnIA+CXM6VCyUr2daiEMvaF/iBaK3YCpkbXLfHUXQB+7bNh1HAHgJmp+PaYn3MhgBTnQbsmMsE3cKw== dependencies: bn.js "^4.11.8" -"@cosmjs/proto-signing@0.26.0-alpha2": - version "0.26.0-alpha2" - resolved "https://registry.yarnpkg.com/@cosmjs/proto-signing/-/proto-signing-0.26.0-alpha2.tgz#d5f3aa1355de25a2f6956209aaef270730fe132e" - integrity sha512-yL1qYX58VGXZW99PLtEUqMW5IiBD3YvVKhEpk+/EcoHiSwb5NWMdY8Ev/CvtqnYUyDRondpSuMaX/5nOyLldhA== +"@cosmjs/proto-signing@0.26.0", "@cosmjs/proto-signing@^0.26.0": + version "0.26.0" + resolved "https://registry.yarnpkg.com/@cosmjs/proto-signing/-/proto-signing-0.26.0.tgz#987f4a2437f7115dcdfb850fb90ba92f662f621c" + integrity sha512-hNiebrGiDCf3tq6SMHtrf4Qhd8Fn4Z868mWJrbIxamR3EsGuAPb5fKFWYEmpS8IXDfD6qRkO845oMAfnmh5Oxg== dependencies: - "@cosmjs/amino" "0.26.0-alpha2" - "@cosmjs/crypto" "0.26.0-alpha2" - "@cosmjs/math" "0.26.0-alpha2" + "@cosmjs/amino" "0.26.0" + "@cosmjs/crypto" "0.26.0" + "@cosmjs/math" "0.26.0" cosmjs-types "^0.2.0" long "^4.0.0" protobufjs "~6.10.2" -"@cosmjs/proto-signing@^0.25.6": - version "0.25.6" - resolved "https://registry.yarnpkg.com/@cosmjs/proto-signing/-/proto-signing-0.25.6.tgz#d9fc57b8e0a46cda97e192bd0435157b24949ff8" - integrity sha512-JpQ+Vnv9s6i3x8f3Jo0lJZ3VMnj3R5sMgX+8ti1LtB7qEYRR85qbDrEG9hDGIKqJJabvrAuCHnO6hYi0vJEJHA== +"@cosmjs/socket@0.26.0": + version "0.26.0" + resolved "https://registry.yarnpkg.com/@cosmjs/socket/-/socket-0.26.0.tgz#3ec1acda91b4b467a290b0850696b120fc4ed903" + integrity sha512-eLGRWDpu7ywHEAvO5B5+75pP8xT5yta4OP/nvMYa4zMtwQgLxZQsGlzQhfeIclB/G57zrupgHECtQFGIttbZPg== dependencies: - "@cosmjs/amino" "^0.25.6" - long "^4.0.0" - protobufjs "~6.10.2" - -"@cosmjs/socket@0.26.0-alpha2": - version "0.26.0-alpha2" - resolved "https://registry.yarnpkg.com/@cosmjs/socket/-/socket-0.26.0-alpha2.tgz#d147e5f8ee0e5c85913c9830b3bd54ab8a165582" - integrity sha512-nTzT5xUPz+66HkHJMBL7AQxCC8/XboL6N/cruj2QkN9xk2mqSQ7OBZsRtpxZqLJ+HYKD6a1F1Q4SRnOP37nKWg== - dependencies: - "@cosmjs/stream" "0.26.0-alpha2" + "@cosmjs/stream" "0.26.0" isomorphic-ws "^4.0.1" ws "^7" xstream "^11.14.0" -"@cosmjs/stargate@^0.26.0-alpha2": - version "0.26.0-alpha2" - resolved "https://registry.yarnpkg.com/@cosmjs/stargate/-/stargate-0.26.0-alpha2.tgz#9bfa8929172188d5cfc0de15ce3385b026ec92fd" - integrity sha512-GrcfJ7IGfjRx9Gp2ASBdmjt2ufbXW0JqP38dr+PQ156robM6j+5w1gSvqnfwRI3016mnlcEDZMRo2PdGBvU4Uw== +"@cosmjs/stargate@^0.26.0": + version "0.26.0" + resolved "https://registry.yarnpkg.com/@cosmjs/stargate/-/stargate-0.26.0.tgz#35ba2628696522f07f81b2db13b6b75d1b00baa4" + integrity sha512-+60Mbu5Y3x+vDRGfs9DgyQYx7QqKXQ7t4dH8Y0JIs+4Gn38WbrcAHaqcT58K/sQHSZPueRsBGkZTZdQkJII2zw== dependencies: "@confio/ics23" "^0.6.3" - "@cosmjs/amino" "0.26.0-alpha2" - "@cosmjs/encoding" "0.26.0-alpha2" - "@cosmjs/math" "0.26.0-alpha2" - "@cosmjs/proto-signing" "0.26.0-alpha2" - "@cosmjs/stream" "0.26.0-alpha2" - "@cosmjs/tendermint-rpc" "0.26.0-alpha2" - "@cosmjs/utils" "0.26.0-alpha2" + "@cosmjs/amino" "0.26.0" + "@cosmjs/encoding" "0.26.0" + "@cosmjs/math" "0.26.0" + "@cosmjs/proto-signing" "0.26.0" + "@cosmjs/stream" "0.26.0" + "@cosmjs/tendermint-rpc" "0.26.0" + "@cosmjs/utils" "0.26.0" cosmjs-types "^0.2.0" long "^4.0.0" protobufjs "~6.10.2" xstream "^11.14.0" -"@cosmjs/stream@0.26.0-alpha2": - version "0.26.0-alpha2" - resolved "https://registry.yarnpkg.com/@cosmjs/stream/-/stream-0.26.0-alpha2.tgz#97788809808c21a8bcfef76edea2e807a8a43851" - integrity sha512-8rIrqzWMvnM8yRtMGQ0z4AAp71b+Y6M9LtIANkAeuBKxqbgcqYq1yU0y9ZBoB138frv2qQ+YoV16OzL5bpXM3w== +"@cosmjs/stream@0.26.0": + version "0.26.0" + resolved "https://registry.yarnpkg.com/@cosmjs/stream/-/stream-0.26.0.tgz#63a1bf5835c1dd165f17d1adbd3a86b406d55884" + integrity sha512-TaB8aXj5vskllj39fFTlsJviqm+bZjrV6JzBneJMjV0ltuXEaocKo4x+EOe68ZLjF6+lK4XUu1g2rP1iAPdmAQ== dependencies: xstream "^11.14.0" -"@cosmjs/tendermint-rpc@0.26.0-alpha2": - version "0.26.0-alpha2" - resolved "https://registry.yarnpkg.com/@cosmjs/tendermint-rpc/-/tendermint-rpc-0.26.0-alpha2.tgz#5f95730cfe2928c0c7b69968fa26403fc8303024" - integrity sha512-/MvixLZjMewneHBzeZZ/76RQsoHikM75AZwJPTnF5nZGy0MSgYsKe1cRows8PjtT9TuKY4Td9syY+0AjJ57dEg== - dependencies: - "@cosmjs/crypto" "0.26.0-alpha2" - "@cosmjs/encoding" "0.26.0-alpha2" - "@cosmjs/json-rpc" "0.26.0-alpha2" - "@cosmjs/math" "0.26.0-alpha2" - "@cosmjs/socket" "0.26.0-alpha2" - "@cosmjs/stream" "0.26.0-alpha2" +"@cosmjs/tendermint-rpc@0.26.0": + version "0.26.0" + resolved "https://registry.yarnpkg.com/@cosmjs/tendermint-rpc/-/tendermint-rpc-0.26.0.tgz#a7d36790de16c3c3c02f9eb93d8363cde26a67cc" + integrity sha512-PQbDLerUGAm8GwRiobVfdy7SM5nI9PzFQVDYOAnwwDME0kDsLGy83e7QNTG2DE1G+8861z9CXne5qz+54NbKwQ== + dependencies: + "@cosmjs/crypto" "0.26.0" + "@cosmjs/encoding" "0.26.0" + "@cosmjs/json-rpc" "0.26.0" + "@cosmjs/math" "0.26.0" + "@cosmjs/socket" "0.26.0" + "@cosmjs/stream" "0.26.0" axios "^0.21.1" readonly-date "^1.0.0" xstream "^11.14.0" -"@cosmjs/utils@0.26.0-alpha2": - version "0.26.0-alpha2" - resolved "https://registry.yarnpkg.com/@cosmjs/utils/-/utils-0.26.0-alpha2.tgz#a06b584ca745946bf6343117a2fd4946feb7eaf4" - integrity sha512-lB5AGV2s4WRtRIa1rtH6FIfdgZicAFlWeGa4Jcf+G3BZJMkTCh5uTCCZzI4ZUbB+afwBu1ApiJH8+4n9wN89DA== - -"@cosmjs/utils@^0.25.6": - version "0.25.6" - resolved "https://registry.yarnpkg.com/@cosmjs/utils/-/utils-0.25.6.tgz#934d9a967180baa66163847616a74358732227ca" - integrity sha512-ofOYiuxVKNo238vCPPlaDzqPXy2AQ/5/nashBo5rvPZJkxt9LciGfUEQWPCOb1BIJDNx2Dzu0z4XCf/dwzl0Dg== +"@cosmjs/utils@0.26.0": + version "0.26.0" + resolved "https://registry.yarnpkg.com/@cosmjs/utils/-/utils-0.26.0.tgz#a1c1728899e06e00ddfa99e2053b93413c9c20cf" + integrity sha512-InTQ3P1noUR0U5zJs8ssqnToIGH2NKbFb+hS5wmYGLB0XRdlNk0UGcb9pjbAzaWRQPWxTd08YQvXg6IK/WE4fA== "@cypress/listr-verbose-renderer@^0.4.1": version "0.4.1"