diff --git a/components/badges/queries/Queries.tsx b/components/badges/queries/Queries.tsx
index 386172e..2c8d864 100644
--- a/components/badges/queries/Queries.tsx
+++ b/components/badges/queries/Queries.tsx
@@ -10,7 +10,6 @@ import type { BadgeHubInstance } from 'contracts/badgeHub'
import { toast } from 'react-hot-toast'
import { useQuery } from 'react-query'
-import { useWallet } from '../../../contexts/wallet'
import type { MintRule } from '../creation/ImageUploadDetails'
interface BadgeQueriesProps {
@@ -20,8 +19,6 @@ interface BadgeQueriesProps {
mintRule: MintRule
}
export const BadgeQueries = ({ badgeHubContractAddress, badgeId, badgeHubMessages, mintRule }: BadgeQueriesProps) => {
- const wallet = useWallet()
-
const comboboxState = useQueryComboboxState()
const type = comboboxState.value?.id
diff --git a/components/collections/actions/Action.tsx b/components/collections/actions/Action.tsx
index 98330fb..e56f57a 100644
--- a/components/collections/actions/Action.tsx
+++ b/components/collections/actions/Action.tsx
@@ -18,7 +18,6 @@ import { JsonPreview } from 'components/JsonPreview'
import { Tooltip } from 'components/Tooltip'
import { TransactionHash } from 'components/TransactionHash'
import { useGlobalSettings } from 'contexts/globalSettings'
-import { useWallet } from 'contexts/wallet'
import type { BaseMinterInstance } from 'contracts/baseMinter'
import type { OpenEditionMinterInstance } from 'contracts/openEditionMinter'
import type { RoyaltyRegistryInstance } from 'contracts/royaltyRegistry'
@@ -32,6 +31,7 @@ import { useMutation } from 'react-query'
import { ROYALTY_REGISTRY_ADDRESS } from 'utils/constants'
import type { AirdropAllocation } from 'utils/isValidAccountsFile'
import { resolveAddress } from 'utils/resolveAddress'
+import { useWallet } from 'utils/wallet'
import type { CollectionInfo } from '../../../contracts/sg721/contract'
import { TextInput } from '../../forms/FormInput'
@@ -248,7 +248,7 @@ export const CollectionActions = ({
recipient: resolvedRecipientAddress,
recipients: airdropArray,
tokenRecipients: airdropAllocationArray,
- txSigner: wallet.address,
+ txSigner: wallet.address || '',
type,
price: priceState.value.toString(),
baseUri: baseURIState.value.trim().endsWith('/')
@@ -344,13 +344,15 @@ export const CollectionActions = ({
throw new Error('Please enter minter and sg721 contract addresses!')
}
- if (wallet.client && type === 'update_mint_price') {
- const contractConfig = wallet.client.queryContractSmart(minterContractAddress, {
+ if (wallet.isWalletConnected && type === 'update_mint_price') {
+ const contractConfig = (await wallet.getCosmWasmClient()).queryContractSmart(minterContractAddress, {
config: {},
})
await toast
.promise(
- wallet.client.queryContractSmart(minterContractAddress, {
+ (
+ await wallet.getCosmWasmClient()
+ ).queryContractSmart(minterContractAddress, {
mint_price: {},
}),
{
@@ -382,7 +384,9 @@ export const CollectionActions = ({
})
} else {
await contractConfig.then(async (config) => {
- const factoryParameters = await wallet.client?.queryContractSmart(config.factory, {
+ const factoryParameters = await (
+ await wallet.getCosmWasmClient()
+ ).queryContractSmart(config.factory, {
params: {},
})
if (
@@ -412,8 +416,8 @@ export const CollectionActions = ({
royaltyPaymentAddressState.value &&
!royaltyPaymentAddressState.value.trim().endsWith('.stars')
) {
- const contractInfoResponse = await wallet.client
- ?.queryContractRaw(
+ const contractInfoResponse = await (await wallet.getCosmWasmClient())
+ .queryContractRaw(
royaltyPaymentAddressState.value.trim(),
toUtf8(Buffer.from(Buffer.from('contract_info').toString('hex'), 'hex').toString()),
)
diff --git a/components/collections/creation/BaseMinterDetails.tsx b/components/collections/creation/BaseMinterDetails.tsx
index f87ec07..3d868ef 100644
--- a/components/collections/creation/BaseMinterDetails.tsx
+++ b/components/collections/creation/BaseMinterDetails.tsx
@@ -8,10 +8,10 @@ import clsx from 'clsx'
import { Alert } from 'components/Alert'
import { Conditional } from 'components/Conditional'
import { useInputState } from 'components/forms/FormInput.hooks'
-import { useWallet } from 'contexts/wallet'
import React, { useCallback, useEffect, useState } from 'react'
import { toast } from 'react-hot-toast'
import { API_URL } from 'utils/constants'
+import { useWallet } from 'utils/wallet'
import { useDebounce } from '../../../utils/debounce'
import { TextInput } from '../../forms/FormInput'
@@ -56,7 +56,7 @@ export const BaseMinterDetails = ({ onChange, minterType, importedBaseMinterDeta
const fetchMinterContracts = async (): Promise
=> {
const contracts: MinterInfo[] = await axios
- .get(`${API_URL}/api/v1beta/collections/${wallet.address}`)
+ .get(`${API_URL}/api/v1beta/collections/${wallet.address || ''}`)
.then((response) => {
const collectionData = response.data
const minterContracts = collectionData.map((collection: any) => {
@@ -70,8 +70,8 @@ export const BaseMinterDetails = ({ onChange, minterType, importedBaseMinterDeta
}
async function getMinterContractType(minterContractAddress: string) {
- if (wallet.client && minterContractAddress.length > 0) {
- const client = wallet.client
+ if (wallet.isWalletConnected && minterContractAddress.length > 0) {
+ const client = await wallet.getCosmWasmClient()
const data = await client.queryContractRaw(
minterContractAddress,
toUtf8(Buffer.from(Buffer.from('contract_info').toString('hex'), 'hex').toString()),
@@ -129,8 +129,10 @@ export const BaseMinterDetails = ({ onChange, minterType, importedBaseMinterDeta
const fetchSg721Address = async () => {
if (debouncedExistingBaseMinterContract.length === 0) return
- await wallet.client
- ?.queryContractSmart(debouncedExistingBaseMinterContract, {
+ await (
+ await wallet.getCosmWasmClient()
+ )
+ .queryContractSmart(debouncedExistingBaseMinterContract, {
config: {},
})
.then((response) => {
@@ -145,8 +147,10 @@ export const BaseMinterDetails = ({ onChange, minterType, importedBaseMinterDeta
const fetchCollectionTokenCount = async () => {
if (selectedCollectionAddress === undefined) return
- await wallet.client
- ?.queryContractSmart(selectedCollectionAddress, {
+ await (
+ await wallet.getCosmWasmClient()
+ )
+ .queryContractSmart(selectedCollectionAddress, {
num_tokens: {},
})
.then((response) => {
@@ -164,7 +168,7 @@ export const BaseMinterDetails = ({ onChange, minterType, importedBaseMinterDeta
setMyBaseMinterContracts([])
existingBaseMinterState.onChange('')
void displayToast()
- } else if (baseMinterAcquisitionMethod === 'new' || !wallet.initialized) {
+ } else if (baseMinterAcquisitionMethod === 'new' || !wallet.isWalletConnected) {
setMyBaseMinterContracts([])
existingBaseMinterState.onChange('')
}
@@ -194,7 +198,7 @@ export const BaseMinterDetails = ({ onChange, minterType, importedBaseMinterDeta
}, [
existingBaseMinterState.value,
baseMinterAcquisitionMethod,
- wallet.initialized,
+ wallet.isWalletConnected,
selectedCollectionAddress,
collectionTokenCount,
])
@@ -270,7 +274,7 @@ export const BaseMinterDetails = ({ onChange, minterType, importedBaseMinterDeta
-
+
No previous 1/1 collections were found. You may create a new 1/1 collection or fill in the minter
contract address manually.
@@ -282,7 +286,7 @@ export const BaseMinterDetails = ({ onChange, minterType, importedBaseMinterDeta
isRequired
/>
-
+
Please connect your wallet first.
diff --git a/components/collections/creation/MintingDetails.tsx b/components/collections/creation/MintingDetails.tsx
index 0c308e5..7a95a5d 100644
--- a/components/collections/creation/MintingDetails.tsx
+++ b/components/collections/creation/MintingDetails.tsx
@@ -10,8 +10,8 @@ import { stars, tokensList } from 'config/token'
import { useGlobalSettings } from 'contexts/globalSettings'
import React, { useEffect, useState } from 'react'
import { resolveAddress } from 'utils/resolveAddress'
+import { useWallet } from 'utils/wallet'
-import { useWallet } from '../../../contexts/wallet'
import { NumberInput, TextInput } from '../../forms/FormInput'
import type { UploadMethod } from './UploadDetails'
diff --git a/components/collections/creation/RoyaltyDetails.tsx b/components/collections/creation/RoyaltyDetails.tsx
index f8ccd35..4cc401f 100644
--- a/components/collections/creation/RoyaltyDetails.tsx
+++ b/components/collections/creation/RoyaltyDetails.tsx
@@ -1,8 +1,8 @@
import { Conditional } from 'components/Conditional'
import { FormGroup } from 'components/FormGroup'
import { useInputState } from 'components/forms/FormInput.hooks'
-import { useWallet } from 'contexts/wallet'
import React, { useEffect, useState } from 'react'
+import { useWallet } from 'utils/wallet'
import { resolveAddress } from '../../../utils/resolveAddress'
import { NumberInput, TextInput } from '../../forms/FormInput'
diff --git a/components/collections/creation/WhitelistDetails.tsx b/components/collections/creation/WhitelistDetails.tsx
index 53d7755..b32fcad 100644
--- a/components/collections/creation/WhitelistDetails.tsx
+++ b/components/collections/creation/WhitelistDetails.tsx
@@ -10,9 +10,9 @@ import type { WhitelistFlexMember } from 'components/WhitelistFlexUpload'
import { WhitelistFlexUpload } from 'components/WhitelistFlexUpload'
import type { TokenInfo } from 'config/token'
import { useGlobalSettings } from 'contexts/globalSettings'
-import { useWallet } from 'contexts/wallet'
import React, { useEffect, useState } from 'react'
import { isValidAddress } from 'utils/isValidAddress'
+import { useWallet } from 'utils/wallet'
import { Conditional } from '../../Conditional'
import { AddressInput, NumberInput } from '../../forms/FormInput'
diff --git a/components/collections/queries/Queries.tsx b/components/collections/queries/Queries.tsx
index 31be0e9..e01a6b5 100644
--- a/components/collections/queries/Queries.tsx
+++ b/components/collections/queries/Queries.tsx
@@ -12,8 +12,8 @@ import type { SG721Instance } from 'contracts/sg721'
import type { VendingMinterInstance } from 'contracts/vendingMinter'
import { toast } from 'react-hot-toast'
import { useQuery } from 'react-query'
+import { useWallet } from 'utils/wallet'
-import { useWallet } from '../../../contexts/wallet'
import { resolveAddress } from '../../../utils/resolveAddress'
import type { MinterType } from '../actions/Combobox'
diff --git a/components/forms/AddressList.tsx b/components/forms/AddressList.tsx
index b95db84..a5734d3 100644
--- a/components/forms/AddressList.tsx
+++ b/components/forms/AddressList.tsx
@@ -1,12 +1,12 @@
import { toUtf8 } from '@cosmjs/encoding'
import { FormControl } from 'components/FormControl'
import { AddressInput } from 'components/forms/FormInput'
-import { useWallet } from 'contexts/wallet'
import { useEffect, useId, useMemo } from 'react'
import toast from 'react-hot-toast'
import { FaMinus, FaPlus } from 'react-icons/fa'
import { SG721_NAME_ADDRESS } from 'utils/constants'
import { isValidAddress } from 'utils/isValidAddress'
+import { useWallet } from 'utils/wallet'
import { useInputState } from './FormInput.hooks'
@@ -66,8 +66,10 @@ export function Address({ id, isLast, onAdd, onChange, onRemove, defaultValue }:
})
const resolveAddress = async (name: string) => {
- if (!wallet.client) throw new Error('Wallet not connected')
- await wallet.client
+ if (!wallet.isWalletConnected) throw new Error('Wallet not connected')
+ await (
+ await wallet.getCosmWasmClient()
+ )
.queryContractRaw(
SG721_NAME_ADDRESS,
toUtf8(
diff --git a/components/forms/FlexMemberAttributes.tsx b/components/forms/FlexMemberAttributes.tsx
index 4934145..24b6ba6 100644
--- a/components/forms/FlexMemberAttributes.tsx
+++ b/components/forms/FlexMemberAttributes.tsx
@@ -2,12 +2,12 @@ import { toUtf8 } from '@cosmjs/encoding'
import { FormControl } from 'components/FormControl'
import { AddressInput, NumberInput } from 'components/forms/FormInput'
import type { WhitelistFlexMember } from 'components/WhitelistFlexUpload'
-import { useWallet } from 'contexts/wallet'
import { useEffect, useId, useMemo } from 'react'
import toast from 'react-hot-toast'
import { FaMinus, FaPlus } from 'react-icons/fa'
import { SG721_NAME_ADDRESS } from 'utils/constants'
import { isValidAddress } from 'utils/isValidAddress'
+import { useWallet } from 'utils/wallet'
import { useInputState, useNumberInputState } from './FormInput.hooks'
@@ -75,8 +75,10 @@ export function FlexMemberAttribute({ id, isLast, onAdd, onChange, onRemove, def
}, [addressState.value, mintCountState.value, id])
const resolveAddress = async (name: string) => {
- if (!wallet.client) throw new Error('Wallet not connected')
- await wallet.client
+ if (!wallet.isWalletConnected) throw new Error('Wallet not connected')
+ await (
+ await wallet.getCosmWasmClient()
+ )
.queryContractRaw(
SG721_NAME_ADDRESS,
toUtf8(
diff --git a/components/openEdition/MintingDetails.tsx b/components/openEdition/MintingDetails.tsx
index 0ad9704..692969c 100644
--- a/components/openEdition/MintingDetails.tsx
+++ b/components/openEdition/MintingDetails.tsx
@@ -10,8 +10,8 @@ import { stars, tokensList } from 'config/token'
import { useGlobalSettings } from 'contexts/globalSettings'
import React, { useEffect, useState } from 'react'
import { resolveAddress } from 'utils/resolveAddress'
+import { useWallet } from 'utils/wallet'
-import { useWallet } from '../../contexts/wallet'
import { NumberInput, TextInput } from '../forms/FormInput'
import type { UploadMethod } from './OffChainMetadataUploadDetails'
diff --git a/components/openEdition/OnChainMetadataInputDetails.tsx b/components/openEdition/OnChainMetadataInputDetails.tsx
index f71fa23..8a76ace 100644
--- a/components/openEdition/OnChainMetadataInputDetails.tsx
+++ b/components/openEdition/OnChainMetadataInputDetails.tsx
@@ -7,7 +7,6 @@ import clsx from 'clsx'
import { Conditional } from 'components/Conditional'
import { useInputState } from 'components/forms/FormInput.hooks'
import { useMetadataAttributesState } from 'components/forms/MetadataAttributes.hooks'
-import { useWallet } from 'contexts/wallet'
import type { Trait } from 'contracts/badgeHub'
import type { ChangeEvent } from 'react'
import { useEffect, useRef, useState } from 'react'
@@ -40,7 +39,6 @@ export const OnChainMetadataInputDetails = ({
uploadMethod,
importedOnChainMetadataInputDetails,
}: OnChainMetadataInputDetailsProps) => {
- const wallet = useWallet()
const [timestamp, setTimestamp] = useState(undefined)
const [metadataFile, setMetadataFile] = useState()
const [metadataFeeRate, setMetadataFeeRate] = useState(0)
diff --git a/components/openEdition/OpenEditionMinterCreator.tsx b/components/openEdition/OpenEditionMinterCreator.tsx
index fcf0edd..bf417e7 100644
--- a/components/openEdition/OpenEditionMinterCreator.tsx
+++ b/components/openEdition/OpenEditionMinterCreator.tsx
@@ -16,7 +16,6 @@ import { openEditionMinterList } from 'config/minter'
import type { TokenInfo } from 'config/token'
import { useContracts } from 'contexts/contracts'
import { addLogItem } from 'contexts/log'
-import { useWallet } from 'contexts/wallet'
import type { DispatchExecuteArgs as OpenEditionFactoryDispatchExecuteArgs } from 'contracts/openEditionFactory/messages/execute'
import { dispatchExecute as openEditionFactoryDispatchExecute } from 'contracts/openEditionFactory/messages/execute'
import React, { useEffect, useMemo, useState } from 'react'
@@ -32,6 +31,7 @@ import type { AssetType } from 'utils/getAssetType'
import { isValidAddress } from 'utils/isValidAddress'
import { checkTokenUri } from 'utils/isValidTokenUri'
import { uid } from 'utils/random'
+import { useWallet } from 'utils/wallet'
import { type CollectionDetailsDataProps, CollectionDetails } from './CollectionDetails'
import type { ImageUploadDetailsDataProps } from './ImageUploadDetails'
@@ -180,7 +180,7 @@ export const OpenEditionMinterCreator = ({
}
const checkUploadDetails = async () => {
- if (!wallet.initialized) throw new Error('Wallet not connected.')
+ if (!wallet.isWalletConnected) throw new Error('Wallet not connected.')
if (
(metadataStorageMethod === 'off-chain' && !offChainMetadataUploadDetails) ||
(metadataStorageMethod === 'on-chain' && !imageUploadDetails)
@@ -338,8 +338,8 @@ export const OpenEditionMinterCreator = ({
}
throw new Error('Invalid royalty payment address')
}
- const contractInfoResponse = await wallet.client
- ?.queryContractRaw(
+ const contractInfoResponse = await (await wallet.getCosmWasmClient())
+ .queryContractRaw(
royaltyDetails.paymentAddress.trim(),
toUtf8(Buffer.from(Buffer.from('contract_info').toString('hex'), 'hex').toString()),
)
@@ -359,11 +359,11 @@ export const OpenEditionMinterCreator = ({
}
const checkwalletBalance = async () => {
- if (!wallet.initialized) throw new Error('Wallet not connected.')
+ if (!wallet.isWalletConnected) throw new Error('Wallet not connected.')
const amountNeeded = collectionDetails?.updatable
? Number(openEditionMinterUpdatableCreationFee)
: Number(openEditionMinterCreationFee)
- await wallet.client?.getBalance(wallet.address, 'ustars').then((balance) => {
+ await (await wallet.getCosmWasmClient()).getBalance(wallet.address || '', 'ustars').then((balance) => {
if (amountNeeded >= Number(balance.amount))
throw new Error(
`Insufficient wallet balance to instantiate the required contracts. Needed amount: ${(
@@ -559,7 +559,7 @@ export const OpenEditionMinterCreator = ({
}
const instantiateOpenEditionMinter = async (uri: string, coverImageUri: string, thumbnailUri?: string) => {
- if (!wallet.initialized) throw new Error('Wallet not connected')
+ if (!wallet.isWalletConnected) throw new Error('Wallet not connected')
if (!openEditionFactoryContract) throw new Error('Contract not found')
if (!openEditionMinterContract) throw new Error('Contract not found')
@@ -626,7 +626,7 @@ export const OpenEditionMinterCreator = ({
const payload: OpenEditionFactoryDispatchExecuteArgs = {
contract: collectionDetails?.updatable ? updatableFactoryAddressForSelectedDenom : factoryAddressForSelectedDenom,
messages: openEditionFactoryMessages,
- txSigner: wallet.address,
+ txSigner: wallet.address || '',
msg,
funds: [
coin(
diff --git a/components/openEdition/RoyaltyDetails.tsx b/components/openEdition/RoyaltyDetails.tsx
index 039e9b6..8313280 100644
--- a/components/openEdition/RoyaltyDetails.tsx
+++ b/components/openEdition/RoyaltyDetails.tsx
@@ -1,9 +1,9 @@
import { Conditional } from 'components/Conditional'
import { FormGroup } from 'components/FormGroup'
import { useInputState } from 'components/forms/FormInput.hooks'
-import { useWallet } from 'contexts/wallet'
import React, { useEffect, useState } from 'react'
import { resolveAddress } from 'utils/resolveAddress'
+import { useWallet } from 'utils/wallet'
import { NumberInput, TextInput } from '../forms/FormInput'
diff --git a/config/index.ts b/config/index.ts
index 3cdf06e..677636f 100644
--- a/config/index.ts
+++ b/config/index.ts
@@ -1,3 +1,2 @@
export * from './app'
-export * from './keplr'
export * from './network'
diff --git a/config/keplr.ts b/config/keplr.ts
deleted file mode 100644
index d8cee6c..0000000
--- a/config/keplr.ts
+++ /dev/null
@@ -1,76 +0,0 @@
-import type { ChainInfo } from '@keplr-wallet/types'
-
-import type { AppConfig } from './app'
-
-export interface KeplrCoin {
- readonly coinDenom: string
- readonly coinMinimalDenom: string
- readonly coinDecimals: number
-}
-
-export interface KeplrConfig {
- readonly chainId: string
- readonly chainName: string
- readonly rpc: string
- readonly rest?: string
- readonly bech32Config: {
- readonly bech32PrefixAccAddr: string
- readonly bech32PrefixAccPub: string
- readonly bech32PrefixValAddr: string
- readonly bech32PrefixValPub: string
- readonly bech32PrefixConsAddr: string
- readonly bech32PrefixConsPub: string
- }
- readonly currencies: readonly KeplrCoin[]
- readonly feeCurrencies: readonly KeplrCoin[]
- readonly stakeCurrency: KeplrCoin
- readonly gasPriceStep: {
- readonly low: number
- readonly average: number
- readonly high: number
- }
- readonly bip44: { readonly coinType: number }
- readonly coinType: number
-}
-
-export const keplrConfig = (config: AppConfig): ChainInfo => ({
- chainId: config.chainId,
- chainName: config.chainName,
- rpc: config.rpcUrl,
- rest: config.httpUrl!,
- bech32Config: {
- bech32PrefixAccAddr: `${config.addressPrefix}`,
- bech32PrefixAccPub: `${config.addressPrefix}pub`,
- bech32PrefixValAddr: `${config.addressPrefix}valoper`,
- bech32PrefixValPub: `${config.addressPrefix}valoperpub`,
- bech32PrefixConsAddr: `${config.addressPrefix}valcons`,
- bech32PrefixConsPub: `${config.addressPrefix}valconspub`,
- },
- currencies: [
- {
- coinDenom: config.coinMap[config.feeToken].denom,
- coinMinimalDenom: config.feeToken,
- coinDecimals: config.coinMap[config.feeToken].fractionalDigits,
- },
- ],
- feeCurrencies: [
- {
- coinDenom: config.coinMap[config.feeToken].denom,
- coinMinimalDenom: config.feeToken,
- coinDecimals: config.coinMap[config.feeToken].fractionalDigits,
- },
- ],
- stakeCurrency: {
- coinDenom: config.coinMap[config.stakingToken].denom,
- coinMinimalDenom: config.stakingToken,
- coinDecimals: config.coinMap[config.stakingToken].fractionalDigits,
- },
- gasPriceStep: {
- low: config.gasPrice / 2,
- average: config.gasPrice,
- high: config.gasPrice * 2,
- },
- bip44: { coinType: 118 },
- coinType: 118,
- features: ['ibc-transfer', 'cosmwasm', 'ibc-go'],
-})
diff --git a/contexts/collection.ts b/contexts/collection.ts
index 994258d..9ec479d 100644
--- a/contexts/collection.ts
+++ b/contexts/collection.ts
@@ -1,4 +1,4 @@
-import create from 'zustand'
+import { create } from 'zustand'
export const useCollectionStore = create(() => ({
name: 'Example',
diff --git a/contexts/contracts.tsx b/contexts/contracts.tsx
index 13790ff..d4e01c5 100644
--- a/contexts/contracts.tsx
+++ b/contexts/contracts.tsx
@@ -18,8 +18,7 @@ import type { UseWhiteListContractProps } from 'contracts/whitelist'
import { useWhiteListContract } from 'contracts/whitelist'
import type { ReactNode, VFC } from 'react'
import { Fragment, useEffect } from 'react'
-import type { State } from 'zustand'
-import create from 'zustand'
+import { create } from 'zustand'
import type { UseSplitsContractProps } from '../contracts/splits/useContract'
import { useSplitsContract } from '../contracts/splits/useContract'
@@ -27,7 +26,7 @@ import { useSplitsContract } from '../contracts/splits/useContract'
/**
* Contracts store type definitions
*/
-export interface ContractsStore extends State {
+export interface ContractsStore {
sg721: UseSG721ContractProps | null
vendingMinter: UseVendingMinterContractProps | null
baseMinter: UseBaseMinterContractProps | null
diff --git a/contexts/globalSettings.ts b/contexts/globalSettings.ts
index 7659277..f545bc2 100644
--- a/contexts/globalSettings.ts
+++ b/contexts/globalSettings.ts
@@ -1,4 +1,4 @@
-import create from 'zustand'
+import { create } from 'zustand'
export type Timezone = 'UTC' | 'Local'
diff --git a/contexts/log.ts b/contexts/log.ts
index cc91f5d..ffcf7c4 100644
--- a/contexts/log.ts
+++ b/contexts/log.ts
@@ -1,4 +1,4 @@
-import create from 'zustand'
+import { create } from 'zustand'
export interface LogItem {
id: string
diff --git a/contexts/sidebar.ts b/contexts/sidebar.ts
index c610a97..a864bc2 100644
--- a/contexts/sidebar.ts
+++ b/contexts/sidebar.ts
@@ -1,4 +1,4 @@
-import create from 'zustand'
+import { create } from 'zustand'
export const useSidebarStore = create(() => ({ isOpen: true }))
diff --git a/contexts/wallet.tsx b/contexts/wallet.tsx
deleted file mode 100644
index 641765d..0000000
--- a/contexts/wallet.tsx
+++ /dev/null
@@ -1,289 +0,0 @@
-import { SigningCosmWasmClient } from '@cosmjs/cosmwasm-stargate'
-import { Decimal } from '@cosmjs/math'
-import type { OfflineSigner } from '@cosmjs/proto-signing'
-import type { Coin } from '@cosmjs/stargate'
-import type { AppConfig } from 'config'
-import { getConfig, keplrConfig } from 'config'
-import type { ReactNode } from 'react'
-import { useEffect } from 'react'
-import { toast } from 'react-hot-toast'
-import { createTrackedSelector } from 'react-tracked'
-import { NETWORK } from 'utils/constants'
-import type { State } from 'zustand'
-import create from 'zustand'
-import { subscribeWithSelector } from 'zustand/middleware'
-
-export interface KeplrWalletStore extends State {
- accountNumber: number
- address: string
- balance: Coin[]
- client: SigningCosmWasmClient | undefined
- config: AppConfig
- initialized: boolean
- initializing: boolean
- name: string
- network: string
- signer: OfflineSigner | undefined
-
- readonly clear: () => void
-
- readonly connect: (walletChange?: boolean | 'focus') => Promise
-
- readonly disconnect: () => void | Promise
-
- readonly getClient: () => SigningCosmWasmClient
- readonly getSigner: () => OfflineSigner
-
- readonly init: (signer?: OfflineSigner) => void
-
- readonly refreshBalance: (address?: string, balance?: Coin[]) => Promise
-
- readonly setNetwork: (network: string) => void
-
- readonly updateSigner: (singer: OfflineSigner) => void
-
- readonly setQueryClient: () => void
-}
-
-/**
- * Compatibility export for references still using `WalletContextType`
- *
- * @deprecated replace with {@link KeplrWalletStore}
- */
-export type WalletContextType = KeplrWalletStore
-
-/**
- * Keplr wallet store default values as a separate variable for reusability
- */
-const defaultStates = {
- accountNumber: 0,
- address: '',
- balance: [],
- client: undefined,
- config: getConfig(NETWORK),
- initialized: false,
- initializing: true,
- name: '',
- network: NETWORK,
- signer: undefined,
-}
-
-/**
- * Entrypoint for keplr wallet store using {@link defaultStates}
- */
-export const useWalletStore = create(
- subscribeWithSelector((set, get) => ({
- ...defaultStates,
- clear: () => set({ ...defaultStates }),
- connect: async (walletChange = false) => {
- try {
- if (walletChange !== 'focus') set({ initializing: true })
- const { config, init } = get()
- const signer = await loadKeplrWallet(config)
- init(signer)
- if (walletChange) set({ initializing: false })
- } catch (err: any) {
- toast.error(err?.message, { style: { maxWidth: 'none' } })
- set({ initializing: false })
- }
- },
- disconnect: () => {
- window.localStorage.clear()
- get().clear()
- set({ initializing: false })
- },
- getClient: () => get().client!,
- getSigner: () => get().signer!,
- init: (signer) => set({ signer }),
- refreshBalance: async (address = get().address, balance = get().balance) => {
- const { client, config } = get()
- if (!client) return
- balance.length = 0
- for (const denom in config.coinMap) {
- // eslint-disable-next-line no-await-in-loop
- const coin = await client.getBalance(address, denom)
- if (coin) balance.push(coin)
- }
- set({ balance })
- },
- setNetwork: (network) => set({ network }),
- updateSigner: (signer) => set({ signer }),
- setQueryClient: async () => {
- try {
- const client = (await createQueryClient()) as SigningCosmWasmClient
- set({ client })
- } catch (err: any) {
- toast.error(err?.message, { style: { maxWidth: 'none' } })
- set({ initializing: false })
- }
- },
- })),
-)
-
-/**
- * Proxied keplr wallet store which only rerenders on called state values.
- *
- * Recommended if only consuming state; to set states, use {@link useWalletStore.setState}.
- *
- * @example
- *
- * ```ts
- * // this will rerender if any state values has changed
- * const { name } = useWalletStore()
- *
- * // this will rerender if only `name` has changed
- * const { name } = useWallet()
- * ```
- */
-export const useWallet = createTrackedSelector(useWalletStore)
-
-/**
- * Keplr wallet store provider to easily mount {@link WalletSubscription}
- * to listen/subscribe various state changes.
- *
- */
-export const WalletProvider = ({ children }: { children: ReactNode }) => {
- return (
- <>
- {children}
-
- >
- )
-}
-
-/**
- * Keplr wallet subscriptions (side effects)
- */
-const WalletSubscription = () => {
- /**
- * Dispatch reconnecting wallet on first mount and register events to refresh
- * on keystore change and window refocus.
- *
- */
- useEffect(() => {
- const walletAddress = window.localStorage.getItem('wallet_address')
- if (walletAddress) {
- void useWalletStore.getState().connect()
- } else {
- useWalletStore.setState({ initializing: false })
- useWalletStore.getState().setQueryClient()
- }
-
- const listenChange = () => {
- void useWalletStore.getState().connect(true)
- }
- const listenFocus = () => {
- if (walletAddress) void useWalletStore.getState().connect('focus')
- }
-
- window.addEventListener('keplr_keystorechange', listenChange)
- window.addEventListener('focus', listenFocus)
-
- return () => {
- window.removeEventListener('keplr_keystorechange', listenChange)
- window.removeEventListener('focus', listenFocus)
- }
- }, [])
-
- /**
- * Watch signer changes to initialize client state.
- *
- */
- useEffect(() => {
- return useWalletStore.subscribe(
- (x) => x.signer,
- // eslint-disable-next-line @typescript-eslint/no-misused-promises
- async (signer) => {
- try {
- if (!signer) {
- useWalletStore.setState({
- client: (await createQueryClient()) as SigningCosmWasmClient,
- })
- } else {
- useWalletStore.setState({
- client: await createClient({ signer }),
- })
- }
- } catch (error) {
- console.log(error)
- }
- },
- )
- }, [])
-
- /**
- * Watch client changes to refresh balance and sync wallet states.
- *
- */
- useEffect(() => {
- return useWalletStore.subscribe(
- (x) => x.client,
- // eslint-disable-next-line @typescript-eslint/no-misused-promises
- async (client) => {
- const { config, refreshBalance, signer } = useWalletStore.getState()
- if (!signer || !client) return
- if (!window.keplr) {
- throw new Error('window.keplr not found')
- }
- const balance: Coin[] = []
- const address = (await signer.getAccounts())[0].address
- const account = await client.getAccount(address)
- const key = await window.keplr.getKey(config.chainId)
- await refreshBalance(address, balance)
- window.localStorage.setItem('wallet_address', address)
- useWalletStore.setState({
- accountNumber: account?.accountNumber || 0,
- address,
- balance,
- initialized: true,
- initializing: false,
- name: key.name || '',
- })
- },
- )
- }, [])
-
- return null
-}
-
-/**
- * Function to create signing client based on {@link useWalletStore} resolved
- * config state.
- *
- * @param arg - Object argument requiring `signer`
- */
-const createClient = ({ signer }: { signer: OfflineSigner }) => {
- const { config } = useWalletStore.getState()
- return SigningCosmWasmClient.connectWithSigner(config.rpcUrl, signer, {
- gasPrice: {
- amount: Decimal.fromUserInput('0.0025', 100),
- denom: config.feeToken,
- },
- })
-}
-
-const createQueryClient = () => {
- const { config } = useWalletStore.getState()
- return SigningCosmWasmClient.connect(config.rpcUrl)
-}
-
-/**
- * Function to load keplr wallet signer.
- *
- * @param config - Application configuration
- */
-const loadKeplrWallet = async (config: AppConfig) => {
- if (!window.getOfflineSigner || !window.keplr || !window.getOfflineSignerAuto) {
- throw new Error('Keplr extension is not available')
- }
-
- await window.keplr.experimentalSuggestChain(keplrConfig(config))
- await window.keplr.enable(config.chainId)
-
- const signer = await window.getOfflineSignerAuto(config.chainId)
- Object.assign(signer, {
- signAmino: (signer as any).signAmino ?? (signer as any).sign,
- })
-
- return signer
-}
diff --git a/contracts/badgeHub/useContract.ts b/contracts/badgeHub/useContract.ts
index e196af5..b5da658 100644
--- a/contracts/badgeHub/useContract.ts
+++ b/contracts/badgeHub/useContract.ts
@@ -1,7 +1,7 @@
import type { Coin } from '@cosmjs/proto-signing'
import type { logs } from '@cosmjs/stargate'
-import { useWallet } from 'contexts/wallet'
import { useCallback, useEffect, useState } from 'react'
+import { useWallet } from 'utils/wallet'
import type { BadgeHubContract, BadgeHubInstance, BadgeHubMessages, MigrateResponse } from './contract'
import { badgeHub as initContract } from './contract'
@@ -50,9 +50,19 @@ export function useBadgeHubContract(): UseBadgeHubContractProps {
}, [])
useEffect(() => {
- const BadgeHubBaseContract = initContract(wallet.getClient(), wallet.address)
- setBadgeHub(BadgeHubBaseContract)
- }, [wallet])
+ if (!wallet.isWalletConnected) {
+ return
+ }
+
+ const load = async () => {
+ const client = await wallet.getSigningCosmWasmClient()
+ const BadgeHubBaseContract = initContract(client, wallet.address || '')
+ setBadgeHub(BadgeHubBaseContract)
+ }
+
+ load().catch(console.error)
+ // eslint-disable-next-line react-hooks/exhaustive-deps
+ }, [wallet.isWalletConnected, wallet.address])
const updateContractAddress = (contractAddress: string) => {
setAddress(contractAddress)
@@ -65,7 +75,10 @@ export function useBadgeHubContract(): UseBadgeHubContractProps {
reject(new Error('Contract is not initialized.'))
return
}
- badgeHub.instantiate(wallet.address, codeId, initMsg, label, admin).then(resolve).catch(reject)
+ badgeHub
+ .instantiate(wallet.address || '', codeId, initMsg, label, admin)
+ .then(resolve)
+ .catch(reject)
})
},
[badgeHub, wallet],
@@ -79,7 +92,10 @@ export function useBadgeHubContract(): UseBadgeHubContractProps {
return
}
console.log(wallet.address, contractAddress, codeId)
- badgeHub.migrate(wallet.address, contractAddress, codeId, migrateMsg).then(resolve).catch(reject)
+ badgeHub
+ .migrate(wallet.address || '', contractAddress, codeId, migrateMsg)
+ .then(resolve)
+ .catch(reject)
})
},
[badgeHub, wallet],
diff --git a/contracts/baseFactory/useContract.ts b/contracts/baseFactory/useContract.ts
index d03ff09..81be781 100644
--- a/contracts/baseFactory/useContract.ts
+++ b/contracts/baseFactory/useContract.ts
@@ -1,5 +1,5 @@
-import { useWallet } from 'contexts/wallet'
import { useCallback, useEffect, useState } from 'react'
+import { useWallet } from 'utils/wallet'
import type { BaseFactoryContract, BaseFactoryInstance, BaseFactoryMessages } from './contract'
import { baseFactory as initContract } from './contract'
@@ -22,9 +22,19 @@ export function useBaseFactoryContract(): UseBaseFactoryContractProps {
}, [])
useEffect(() => {
- const BaseFactoryBaseContract = initContract(wallet.getClient(), wallet.address)
- setBaseFactory(BaseFactoryBaseContract)
- }, [wallet])
+ if (!wallet.isWalletConnected) {
+ return
+ }
+
+ const load = async () => {
+ const client = await wallet.getSigningCosmWasmClient()
+ const BaseFactoryBaseContract = initContract(client, wallet.address || '')
+ setBaseFactory(BaseFactoryBaseContract)
+ }
+
+ load().catch(console.error)
+ // eslint-disable-next-line react-hooks/exhaustive-deps
+ }, [wallet.isWalletConnected, wallet.address])
const updateContractAddress = (contractAddress: string) => {
setAddress(contractAddress)
diff --git a/contracts/baseMinter/useContract.ts b/contracts/baseMinter/useContract.ts
index 35d54fe..7a1baa0 100644
--- a/contracts/baseMinter/useContract.ts
+++ b/contracts/baseMinter/useContract.ts
@@ -1,7 +1,7 @@
import type { Coin } from '@cosmjs/proto-signing'
import type { logs } from '@cosmjs/stargate'
-import { useWallet } from 'contexts/wallet'
import { useCallback, useEffect, useState } from 'react'
+import { useWallet } from 'utils/wallet'
import type { BaseMinterContract, BaseMinterInstance, BaseMinterMessages, MigrateResponse } from './contract'
import { baseMinter as initContract } from './contract'
@@ -38,9 +38,19 @@ export function useBaseMinterContract(): UseBaseMinterContractProps {
}, [])
useEffect(() => {
- const BaseMinterBaseContract = initContract(wallet.getClient(), wallet.address)
- setBaseMinter(BaseMinterBaseContract)
- }, [wallet])
+ if (!wallet.isWalletConnected) {
+ return
+ }
+
+ const load = async () => {
+ const client = await wallet.getSigningCosmWasmClient()
+ const BaseMinterBaseContract = initContract(client, wallet.address || '')
+ setBaseMinter(BaseMinterBaseContract)
+ }
+
+ load().catch(console.error)
+ // eslint-disable-next-line react-hooks/exhaustive-deps
+ }, [wallet.isWalletConnected, wallet.address])
const updateContractAddress = (contractAddress: string) => {
setAddress(contractAddress)
@@ -53,7 +63,10 @@ export function useBaseMinterContract(): UseBaseMinterContractProps {
reject(new Error('Contract is not initialized.'))
return
}
- baseMinter.instantiate(wallet.address, codeId, initMsg, label, admin).then(resolve).catch(reject)
+ baseMinter
+ .instantiate(wallet.address || '', codeId, initMsg, label, admin)
+ .then(resolve)
+ .catch(reject)
})
},
[baseMinter, wallet],
@@ -67,7 +80,10 @@ export function useBaseMinterContract(): UseBaseMinterContractProps {
return
}
console.log(wallet.address, contractAddress, codeId)
- baseMinter.migrate(wallet.address, contractAddress, codeId, migrateMsg).then(resolve).catch(reject)
+ baseMinter
+ .migrate(wallet.address || '', contractAddress, codeId, migrateMsg)
+ .then(resolve)
+ .catch(reject)
})
},
[baseMinter, wallet],
diff --git a/contracts/openEditionFactory/useContract.ts b/contracts/openEditionFactory/useContract.ts
index 1ddb5f0..a4367cb 100644
--- a/contracts/openEditionFactory/useContract.ts
+++ b/contracts/openEditionFactory/useContract.ts
@@ -1,6 +1,6 @@
import type { logs } from '@cosmjs/stargate'
-import { useWallet } from 'contexts/wallet'
import { useCallback, useEffect, useState } from 'react'
+import { useWallet } from 'utils/wallet'
import type { OpenEditionFactoryContract, OpenEditionFactoryInstance, OpenEditionFactoryMessages } from './contract'
import { openEditionFactory as initContract } from './contract'
@@ -41,9 +41,19 @@ export function useOpenEditionFactoryContract(): UseOpenEditionFactoryContractPr
}, [])
useEffect(() => {
- const OpenEditionFactoryBaseContract = initContract(wallet.getClient(), wallet.address)
- setOpenEditionFactory(OpenEditionFactoryBaseContract)
- }, [wallet])
+ if (!wallet.isWalletConnected) {
+ return
+ }
+
+ const load = async () => {
+ const client = await wallet.getSigningCosmWasmClient()
+ const OpenEditionFactoryBaseContract = initContract(client, wallet.address || '')
+ setOpenEditionFactory(OpenEditionFactoryBaseContract)
+ }
+
+ load().catch(console.error)
+ // eslint-disable-next-line react-hooks/exhaustive-deps
+ }, [wallet.isWalletConnected, wallet.address])
const updateContractAddress = (contractAddress: string) => {
setAddress(contractAddress)
diff --git a/contracts/openEditionMinter/useContract.ts b/contracts/openEditionMinter/useContract.ts
index dc6b286..e64a1f2 100644
--- a/contracts/openEditionMinter/useContract.ts
+++ b/contracts/openEditionMinter/useContract.ts
@@ -1,7 +1,7 @@
import type { Coin } from '@cosmjs/proto-signing'
import type { logs } from '@cosmjs/stargate'
-import { useWallet } from 'contexts/wallet'
import { useCallback, useEffect, useState } from 'react'
+import { useWallet } from 'utils/wallet'
import type {
MigrateResponse,
@@ -55,9 +55,19 @@ export function useOpenEditionMinterContract(): UseOpenEditionMinterContractProp
}, [])
useEffect(() => {
- const OpenEditionMinterBaseContract = initContract(wallet.getClient(), wallet.address)
- setOpenEditionMinter(OpenEditionMinterBaseContract)
- }, [wallet])
+ if (!wallet.isWalletConnected) {
+ return
+ }
+
+ const load = async () => {
+ const client = await wallet.getSigningCosmWasmClient()
+ const OpenEditionMinterBaseContract = initContract(client, wallet.address || '')
+ setOpenEditionMinter(OpenEditionMinterBaseContract)
+ }
+
+ load().catch(console.error)
+ // eslint-disable-next-line react-hooks/exhaustive-deps
+ }, [wallet.isWalletConnected, wallet.address])
const updateContractAddress = (contractAddress: string) => {
setAddress(contractAddress)
@@ -70,7 +80,10 @@ export function useOpenEditionMinterContract(): UseOpenEditionMinterContractProp
reject(new Error('Contract is not initialized.'))
return
}
- openEditionMinter.instantiate(wallet.address, codeId, initMsg, label, admin).then(resolve).catch(reject)
+ openEditionMinter
+ .instantiate(wallet.address || '', codeId, initMsg, label, admin)
+ .then(resolve)
+ .catch(reject)
})
},
[openEditionMinter, wallet],
@@ -84,7 +97,10 @@ export function useOpenEditionMinterContract(): UseOpenEditionMinterContractProp
return
}
console.log(wallet.address, contractAddress, codeId)
- openEditionMinter.migrate(wallet.address, contractAddress, codeId, migrateMsg).then(resolve).catch(reject)
+ openEditionMinter
+ .migrate(wallet.address || '', contractAddress, codeId, migrateMsg)
+ .then(resolve)
+ .catch(reject)
})
},
[openEditionMinter, wallet],
diff --git a/contracts/royaltyRegistry/useContract.ts b/contracts/royaltyRegistry/useContract.ts
index 7d73394..bce9b04 100644
--- a/contracts/royaltyRegistry/useContract.ts
+++ b/contracts/royaltyRegistry/useContract.ts
@@ -1,7 +1,7 @@
/* eslint-disable eslint-comments/disable-enable-pair */
-import { useWallet } from 'contexts/wallet'
import { useCallback, useEffect, useState } from 'react'
+import { useWallet } from 'utils/wallet'
import type {
InstantiateResponse,
@@ -40,9 +40,19 @@ export function useRoyaltyRegistryContract(): UseRoyaltyRegistryContractProps {
}, [])
useEffect(() => {
- const royaltyRegistryContract = initContract(wallet.getClient(), wallet.address)
- setRoyaltyRegistry(royaltyRegistryContract)
- }, [wallet])
+ if (!wallet.isWalletConnected) {
+ return
+ }
+
+ const load = async () => {
+ const client = await wallet.getSigningCosmWasmClient()
+ const royaltyRegistryContract = initContract(client, wallet.address || '')
+ setRoyaltyRegistry(royaltyRegistryContract)
+ }
+
+ load().catch(console.error)
+ // eslint-disable-next-line react-hooks/exhaustive-deps
+ }, [wallet.isWalletConnected, wallet.address])
const updateContractAddress = (contractAddress: string) => {
setAddress(contractAddress)
@@ -69,7 +79,10 @@ export function useRoyaltyRegistryContract(): UseRoyaltyRegistryContractProps {
return
}
console.log(wallet.address, contractAddress, codeId)
- royaltyRegistry.migrate(wallet.address, contractAddress, codeId, migrateMsg).then(resolve).catch(reject)
+ royaltyRegistry
+ .migrate(wallet.address || '', contractAddress, codeId, migrateMsg)
+ .then(resolve)
+ .catch(reject)
})
},
[royaltyRegistry, wallet],
diff --git a/contracts/sg721/useContract.ts b/contracts/sg721/useContract.ts
index 0b8a2af..7c0f6f9 100644
--- a/contracts/sg721/useContract.ts
+++ b/contracts/sg721/useContract.ts
@@ -1,6 +1,6 @@
import type { Coin } from '@cosmjs/proto-signing'
-import { useWallet } from 'contexts/wallet'
import { useCallback, useEffect, useState } from 'react'
+import { useWallet } from 'utils/wallet'
import type { MigrateResponse, SG721Contract, SG721Instance, Sg721Messages } from './contract'
import { SG721 as initContract } from './contract'
@@ -35,9 +35,19 @@ export function useSG721Contract(): UseSG721ContractProps {
}, [])
useEffect(() => {
- const contract = initContract(wallet.getClient(), wallet.address)
- setSG721(contract)
- }, [wallet])
+ if (!wallet.isWalletConnected) {
+ return
+ }
+
+ const load = async () => {
+ const client = await wallet.getSigningCosmWasmClient()
+ const contract = initContract(client, wallet.address || '')
+ setSG721(contract)
+ }
+
+ load().catch(console.error)
+ // eslint-disable-next-line react-hooks/exhaustive-deps
+ }, [wallet.isWalletConnected, wallet.address])
const updateContractAddress = (contractAddress: string) => {
setAddress(contractAddress)
@@ -50,7 +60,9 @@ export function useSG721Contract(): UseSG721ContractProps {
reject(new Error('Contract is not initialized.'))
return
}
- SG721.instantiate(wallet.address, codeId, initMsg, label, admin).then(resolve).catch(reject)
+ SG721.instantiate(wallet.address || '', codeId, initMsg, label, admin)
+ .then(resolve)
+ .catch(reject)
})
},
[SG721, wallet],
@@ -64,7 +76,9 @@ export function useSG721Contract(): UseSG721ContractProps {
return
}
console.log(wallet.address, contractAddress, codeId)
- SG721.migrate(wallet.address, contractAddress, codeId, migrateMsg).then(resolve).catch(reject)
+ SG721.migrate(wallet.address || '', contractAddress, codeId, migrateMsg)
+ .then(resolve)
+ .catch(reject)
})
},
[SG721, wallet],
diff --git a/contracts/splits/useContract.ts b/contracts/splits/useContract.ts
index 69a1c63..259eb74 100644
--- a/contracts/splits/useContract.ts
+++ b/contracts/splits/useContract.ts
@@ -1,7 +1,7 @@
/* eslint-disable eslint-comments/disable-enable-pair */
-import { useWallet } from 'contexts/wallet'
import { useCallback, useEffect, useState } from 'react'
+import { useWallet } from 'utils/wallet'
import type { InstantiateResponse, MigrateResponse, SplitsContract, SplitsInstance, SplitsMessages } from './contract'
import { Splits as initContract } from './contract'
@@ -34,9 +34,19 @@ export function useSplitsContract(): UseSplitsContractProps {
}, [])
useEffect(() => {
- const splitsContract = initContract(wallet.getClient(), wallet.address)
- setSplits(splitsContract)
- }, [wallet])
+ if (!wallet.isWalletConnected) {
+ return
+ }
+
+ const load = async () => {
+ const client = await wallet.getSigningCosmWasmClient()
+ const contract = initContract(client, wallet.address || '')
+ setSplits(contract)
+ }
+
+ load().catch(console.error)
+ // eslint-disable-next-line react-hooks/exhaustive-deps
+ }, [wallet.isWalletConnected, wallet.address])
const updateContractAddress = (contractAddress: string) => {
setAddress(contractAddress)
@@ -63,7 +73,10 @@ export function useSplitsContract(): UseSplitsContractProps {
return
}
console.log(wallet.address, contractAddress, codeId)
- splits.migrate(wallet.address, contractAddress, codeId, migrateMsg).then(resolve).catch(reject)
+ splits
+ .migrate(wallet.address || '', contractAddress, codeId, migrateMsg)
+ .then(resolve)
+ .catch(reject)
})
},
[splits, wallet],
diff --git a/contracts/vendingFactory/useContract.ts b/contracts/vendingFactory/useContract.ts
index a6636b3..8642360 100644
--- a/contracts/vendingFactory/useContract.ts
+++ b/contracts/vendingFactory/useContract.ts
@@ -1,6 +1,6 @@
import type { logs } from '@cosmjs/stargate'
-import { useWallet } from 'contexts/wallet'
import { useCallback, useEffect, useState } from 'react'
+import { useWallet } from 'utils/wallet'
import type { VendingFactoryContract, VendingFactoryInstance, VendingFactoryMessages } from './contract'
import { vendingFactory as initContract } from './contract'
@@ -41,9 +41,19 @@ export function useVendingFactoryContract(): UseVendingFactoryContractProps {
}, [])
useEffect(() => {
- const VendingFactoryBaseContract = initContract(wallet.getClient(), wallet.address)
- setVendingFactory(VendingFactoryBaseContract)
- }, [wallet])
+ if (!wallet.isWalletConnected) {
+ return
+ }
+
+ const load = async () => {
+ const client = await wallet.getSigningCosmWasmClient()
+ const contract = initContract(client, wallet.address || '')
+ setVendingFactory(contract)
+ }
+
+ load().catch(console.error)
+ // eslint-disable-next-line react-hooks/exhaustive-deps
+ }, [wallet.isWalletConnected, wallet.address])
const updateContractAddress = (contractAddress: string) => {
setAddress(contractAddress)
diff --git a/contracts/vendingMinter/useContract.ts b/contracts/vendingMinter/useContract.ts
index d118f04..228bc45 100644
--- a/contracts/vendingMinter/useContract.ts
+++ b/contracts/vendingMinter/useContract.ts
@@ -1,7 +1,7 @@
import type { Coin } from '@cosmjs/proto-signing'
import type { logs } from '@cosmjs/stargate'
-import { useWallet } from 'contexts/wallet'
import { useCallback, useEffect, useState } from 'react'
+import { useWallet } from 'utils/wallet'
import type { MigrateResponse, VendingMinterContract, VendingMinterInstance, VendingMinterMessages } from './contract'
import { vendingMinter as initContract } from './contract'
@@ -50,9 +50,19 @@ export function useVendingMinterContract(): UseVendingMinterContractProps {
}, [])
useEffect(() => {
- const VendingMinterBaseContract = initContract(wallet.getClient(), wallet.address)
- setVendingMinter(VendingMinterBaseContract)
- }, [wallet])
+ if (!wallet.isWalletConnected) {
+ return
+ }
+
+ const load = async () => {
+ const client = await wallet.getSigningCosmWasmClient()
+ const contract = initContract(client, wallet.address || '')
+ setVendingMinter(contract)
+ }
+
+ load().catch(console.error)
+ // eslint-disable-next-line react-hooks/exhaustive-deps
+ }, [wallet.isWalletConnected, wallet.address])
const updateContractAddress = (contractAddress: string) => {
setAddress(contractAddress)
@@ -65,7 +75,10 @@ export function useVendingMinterContract(): UseVendingMinterContractProps {
reject(new Error('Contract is not initialized.'))
return
}
- vendingMinter.instantiate(wallet.address, codeId, initMsg, label, admin).then(resolve).catch(reject)
+ vendingMinter
+ .instantiate(wallet.address || '', codeId, initMsg, label, admin)
+ .then(resolve)
+ .catch(reject)
})
},
[vendingMinter, wallet],
@@ -79,7 +92,10 @@ export function useVendingMinterContract(): UseVendingMinterContractProps {
return
}
console.log(wallet.address, contractAddress, codeId)
- vendingMinter.migrate(wallet.address, contractAddress, codeId, migrateMsg).then(resolve).catch(reject)
+ vendingMinter
+ .migrate(wallet.address || '', contractAddress, codeId, migrateMsg)
+ .then(resolve)
+ .catch(reject)
})
},
[vendingMinter, wallet],
diff --git a/contracts/whitelist/useContract.ts b/contracts/whitelist/useContract.ts
index 3144cce..deaaae6 100644
--- a/contracts/whitelist/useContract.ts
+++ b/contracts/whitelist/useContract.ts
@@ -1,5 +1,5 @@
-import { useWallet } from 'contexts/wallet'
import { useCallback, useEffect, useState } from 'react'
+import { useWallet } from 'utils/wallet'
import type { InstantiateResponse, WhiteListContract, WhiteListInstance, WhitelistMessages } from './contract'
import { WhiteList as initContract } from './contract'
@@ -30,9 +30,19 @@ export function useWhiteListContract(): UseWhiteListContractProps {
}, [])
useEffect(() => {
- const whiteListContract = initContract(wallet.getClient(), wallet.address)
- setWhiteList(whiteListContract)
- }, [wallet])
+ if (!wallet.isWalletConnected) {
+ return
+ }
+
+ const load = async () => {
+ const client = await wallet.getSigningCosmWasmClient()
+ const contract = initContract(client, wallet.address || '')
+ setWhiteList(contract)
+ }
+
+ load().catch(console.error)
+ // eslint-disable-next-line react-hooks/exhaustive-deps
+ }, [wallet.isWalletConnected, wallet.address])
const updateContractAddress = (contractAddress: string) => {
setAddress(contractAddress)
diff --git a/env.d.ts b/env.d.ts
index e1a7da7..f221606 100644
--- a/env.d.ts
+++ b/env.d.ts
@@ -70,9 +70,7 @@ declare namespace NodeJS {
}
}
-type KeplrWindow = import('@keplr-wallet/types/src/window').Window
-
-declare interface Window extends KeplrWindow {
+declare interface Window {
confetti?: (obj: any) => void
}
diff --git a/package.json b/package.json
index 7012e3f..03ceb7d 100644
--- a/package.json
+++ b/package.json
@@ -18,11 +18,11 @@
"@cosmjs/math": "^0",
"@cosmjs/proto-signing": "^0",
"@cosmjs/stargate": "^0",
+ "@cosmos-kit/keplr": "^2.4.0",
+ "@cosmos-kit/react": "^2.9.0",
"@fontsource/jetbrains-mono": "^4",
"@fontsource/roboto": "^4",
"@headlessui/react": "^1",
- "jscrypto": "^1.0.3",
- "@keplr-wallet/cosmos": "^0.9.16",
"@pinata/sdk": "^1.1.26",
"@popperjs/core": "^2",
"@svgr/webpack": "^6",
@@ -30,10 +30,12 @@
"@tailwindcss/line-clamp": "^0",
"@typeform/embed-react": "2.21.0",
"axios": "^0",
+ "chain-registry": "^1.20.0",
"clsx": "^1",
"compare-versions": "^4",
"daisyui": "^2.19.0",
"html-to-image": "1.11.11",
+ "jscrypto": "^1.0.3",
"match-sorter": "^6",
"next": "^12",
"next-seo": "^4",
@@ -51,7 +53,7 @@
"scheduler": "^0",
"secp256k1": "^4.0.3",
"tailwindcss-opentype": "1.1.0",
- "zustand": "^3"
+ "zustand": "^4"
},
"devDependencies": {
"@stargazezone/types": "^0.7.2",
diff --git a/pages/_app.tsx b/pages/_app.tsx
index 0cd0c39..4c2173c 100644
--- a/pages/_app.tsx
+++ b/pages/_app.tsx
@@ -4,9 +4,9 @@ import '../styles/globals.css'
import '../styles/datepicker.css'
import { Layout } from 'components/Layout'
+import { WalletProvider } from 'components/WalletProvider'
import { queryClient } from 'config/react-query'
import { ContractsProvider } from 'contexts/contracts'
-import { WalletProvider } from 'contexts/wallet'
import type { AppProps } from 'next/app'
import { Toaster } from 'react-hot-toast'
import { QueryClientProvider } from 'react-query'
diff --git a/pages/badges/actions.tsx b/pages/badges/actions.tsx
index 2034606..a95a6b1 100644
--- a/pages/badges/actions.tsx
+++ b/pages/badges/actions.tsx
@@ -9,7 +9,6 @@ import { ContractPageHeader } from 'components/ContractPageHeader'
import { AddressInput, NumberInput } from 'components/forms/FormInput'
import { useInputState } from 'components/forms/FormInput.hooks'
import { useContracts } from 'contexts/contracts'
-import { useWallet } from 'contexts/wallet'
import type { NextPage } from 'next'
import { useRouter } from 'next/router'
import { NextSeo } from 'next-seo'
@@ -18,6 +17,7 @@ import toast from 'react-hot-toast'
import { useDebounce } from 'utils/debounce'
import { withMetadata } from 'utils/layout'
import { links } from 'utils/links'
+import { useWallet } from 'utils/wallet'
import { BadgeActions } from '../../components/badges/actions/Action'
import { useNumberInputState } from '../../components/forms/FormInput.hooks'
@@ -82,8 +82,8 @@ const BadgeActionsPage: NextPage = () => {
useEffect(() => {
async function getMintRule() {
- if (wallet.client && debouncedBadgeHubContractState.length > 0 && debouncedBadgeIdState > 0) {
- const client = wallet.client
+ if (wallet.isWalletConnected && debouncedBadgeHubContractState.length > 0 && debouncedBadgeIdState > 0) {
+ const client = await wallet.getCosmWasmClient()
const data = await toast.promise(
client.queryContractSmart(debouncedBadgeHubContractState, {
badge: {
@@ -117,7 +117,8 @@ const BadgeActionsPage: NextPage = () => {
setMintRule('not_resolved')
console.log('Unable to retrieve Mint Rule. Defaulting to "by_key".')
})
- }, [debouncedBadgeHubContractState, debouncedBadgeIdState, wallet.client])
+ // eslint-disable-next-line react-hooks/exhaustive-deps
+ }, [debouncedBadgeHubContractState, debouncedBadgeIdState, wallet.isWalletConnected])
return (
diff --git a/pages/badges/create.tsx b/pages/badges/create.tsx
index 85aecd0..472a8c9 100644
--- a/pages/badges/create.tsx
+++ b/pages/badges/create.tsx
@@ -24,7 +24,6 @@ import { useInputState } from 'components/forms/FormInput.hooks'
import { Tooltip } from 'components/Tooltip'
import { useContracts } from 'contexts/contracts'
import { addLogItem } from 'contexts/log'
-import { useWallet } from 'contexts/wallet'
import type { Badge } from 'contracts/badgeHub'
import type { DispatchExecuteArgs as BadgeHubDispatchExecuteArgs } from 'contracts/badgeHub/messages/execute'
import { dispatchExecute as badgeHubDispatchExecute } from 'contracts/badgeHub/messages/execute'
@@ -47,6 +46,7 @@ import { links } from 'utils/links'
import { uid } from 'utils/random'
import { resolveAddress } from 'utils/resolveAddress'
import { truncateMiddle } from 'utils/text'
+import { useWallet } from 'utils/wallet'
import { generateKeyPairs } from '../../utils/hash'
@@ -181,7 +181,7 @@ const BadgeCreationPage: NextPage = () => {
const createNewBadge = async () => {
try {
- if (!wallet.initialized) throw new Error('Wallet not connected')
+ if (!wallet.isWalletConnected) throw new Error('Wallet not connected')
if (!badgeHubContract) throw new Error('Contract not found')
setCreatingBadge(true)
const coverUrl = await handleImageUrl()
@@ -220,7 +220,7 @@ const BadgeCreationPage: NextPage = () => {
const payload: BadgeHubDispatchExecuteArgs = {
contract: BADGE_HUB_ADDRESS,
messages: badgeHubMessages,
- txSigner: wallet.address,
+ txSigner: wallet.address || '',
badge,
type: 'create_badge',
}
@@ -245,7 +245,7 @@ const BadgeCreationPage: NextPage = () => {
setBadgeId(data.split(':')[1])
const res = await toast.promise(
badgeHubContract.use(BADGE_HUB_ADDRESS)?.addKeys(
- wallet.address,
+ wallet.address || '',
Number(data.split(':')[1]),
generatedKeyPairs.map((key) => key.publicKey),
) as Promise,
@@ -276,7 +276,7 @@ const BadgeCreationPage: NextPage = () => {
}
const checkImageUploadDetails = () => {
- if (!wallet.initialized) throw new Error('Wallet not connected.')
+ if (!wallet.isWalletConnected) throw new Error('Wallet not connected.')
if (!imageUploadDetails) {
throw new Error('Please specify the image related details.')
}
@@ -359,7 +359,7 @@ const BadgeCreationPage: NextPage = () => {
}
const checkwalletBalance = () => {
- if (!wallet.initialized) throw new Error('Wallet not connected.')
+ if (!wallet.isWalletConnected) throw new Error('Wallet not connected.')
// TODO: estimate creation cost and check wallet balance
}
useEffect(() => {
diff --git a/pages/badges/myBadges.tsx b/pages/badges/myBadges.tsx
index 7f388a1..223eb1e 100644
--- a/pages/badges/myBadges.tsx
+++ b/pages/badges/myBadges.tsx
@@ -7,7 +7,6 @@ import { Alert } from 'components/Alert'
import { Anchor } from 'components/Anchor'
import { Conditional } from 'components/Conditional'
import { ContractPageHeader } from 'components/ContractPageHeader'
-import { useWallet } from 'contexts/wallet'
import type { NextPage } from 'next'
import { NextSeo } from 'next-seo'
import { useCallback, useEffect, useState } from 'react'
@@ -15,6 +14,7 @@ import { FaSlidersH, FaUser } from 'react-icons/fa'
import { API_URL, BADGE_HUB_ADDRESS, STARGAZE_URL } from 'utils/constants'
import { withMetadata } from 'utils/layout'
import { links } from 'utils/links'
+import { useWallet } from 'utils/wallet'
const BadgeList: NextPage = () => {
const wallet = useWallet()
@@ -23,7 +23,7 @@ const BadgeList: NextPage = () => {
useEffect(() => {
const fetchBadges = async () => {
await axios
- .get(`${API_URL}/api/v1beta/badges/${wallet.address}`)
+ .get(`${API_URL}/api/v1beta/badges/${wallet.address || ''}`)
.then((response) => {
const badgeData = response.data
setMyBadges(badgeData)
@@ -90,7 +90,7 @@ const BadgeList: NextPage = () => {
diff --git a/pages/collections/actions.tsx b/pages/collections/actions.tsx
index a156d68..a3ac7b6 100644
--- a/pages/collections/actions.tsx
+++ b/pages/collections/actions.tsx
@@ -6,7 +6,6 @@ import { ContractPageHeader } from 'components/ContractPageHeader'
import { AddressInput } from 'components/forms/FormInput'
import { useInputState } from 'components/forms/FormInput.hooks'
import { useContracts } from 'contexts/contracts'
-import { useWallet } from 'contexts/wallet'
import type { NextPage } from 'next'
import { useRouter } from 'next/router'
import { NextSeo } from 'next-seo'
@@ -16,6 +15,7 @@ import { ROYALTY_REGISTRY_ADDRESS } from 'utils/constants'
import { useDebounce } from 'utils/debounce'
import { withMetadata } from 'utils/layout'
import { links } from 'utils/links'
+import { useWallet } from 'utils/wallet'
import type { MinterType, Sg721Type } from '../../components/collections/actions/Combobox'
@@ -100,8 +100,8 @@ const CollectionActionsPage: NextPage = () => {
useEffect(() => {
async function getMinterContractType() {
- if (wallet.client && debouncedMinterContractState.length > 0) {
- const client = wallet.client
+ if (wallet.isWalletConnected && debouncedMinterContractState.length > 0) {
+ const client = await wallet.getCosmWasmClient()
const data = await toast.promise(
client.queryContractRaw(
debouncedMinterContractState,
@@ -133,12 +133,13 @@ const CollectionActionsPage: NextPage = () => {
setMinterType('vending')
console.log('Unable to retrieve contract type. Defaulting to "vending".')
})
- }, [debouncedMinterContractState, wallet.client])
+ // eslint-disable-next-line react-hooks/exhaustive-deps
+ }, [debouncedMinterContractState, wallet.isWalletConnected])
useEffect(() => {
async function getSg721ContractType() {
- if (wallet.client && debouncedSg721ContractState.length > 0) {
- const client = wallet.client
+ if (wallet.isWalletConnected && debouncedSg721ContractState.length > 0) {
+ const client = await wallet.getCosmWasmClient()
const data = await toast.promise(
client.queryContractRaw(
debouncedSg721ContractState,
@@ -168,7 +169,8 @@ const CollectionActionsPage: NextPage = () => {
setSg721Type('base')
console.log('Unable to retrieve contract type. Defaulting to "base".')
})
- }, [debouncedSg721ContractState, wallet.client])
+ // eslint-disable-next-line react-hooks/exhaustive-deps
+ }, [debouncedSg721ContractState, wallet.isWalletConnected])
return (
diff --git a/pages/collections/create.tsx b/pages/collections/create.tsx
index c8efbc3..e08e87a 100644
--- a/pages/collections/create.tsx
+++ b/pages/collections/create.tsx
@@ -38,7 +38,6 @@ import { flexibleVendingMinterList, openEditionMinterList, vendingMinterList } f
import type { TokenInfo } from 'config/token'
import { useContracts } from 'contexts/contracts'
import { addLogItem } from 'contexts/log'
-import { useWallet } from 'contexts/wallet'
import type { DispatchExecuteArgs as BaseFactoryDispatchExecuteArgs } from 'contracts/baseFactory/messages/execute'
import { dispatchExecute as baseFactoryDispatchExecute } from 'contracts/baseFactory/messages/execute'
import type { DispatchExecuteArgs as VendingFactoryDispatchExecuteArgs } from 'contracts/vendingFactory/messages/execute'
@@ -72,6 +71,7 @@ import { checkTokenUri } from 'utils/isValidTokenUri'
import { withMetadata } from 'utils/layout'
import { links } from 'utils/links'
import { uid } from 'utils/random'
+import { useWallet } from 'utils/wallet'
import type { MinterType } from '../../components/collections/actions/Combobox'
import type { UploadMethod } from '../../components/collections/creation/UploadDetails'
@@ -411,7 +411,7 @@ const CollectionCreationPage: NextPage = () => {
const uploadAndMint = async () => {
try {
- if (!wallet.initialized) throw new Error('Wallet not connected')
+ if (!wallet.isWalletConnected) throw new Error('Wallet not connected')
if (!baseMinterContract) throw new Error('Contract not found')
setCreatingCollection(true)
setIsMintingComplete(false)
@@ -437,7 +437,7 @@ const CollectionCreationPage: NextPage = () => {
.use(baseMinterDetails?.existingBaseMinter as string)
?.mint(
- wallet.address,
+ wallet.address || '',
`ipfs://${baseUri}/${(uploadDetails.baseMinterMetadataFile as File).name.substring(
0,
(uploadDetails.baseMinterMetadataFile as File).name.lastIndexOf('.'),
@@ -450,7 +450,7 @@ const CollectionCreationPage: NextPage = () => {
const result = await baseMinterContract
.use(baseMinterDetails?.existingBaseMinter as string)
?.batchMint(
- wallet.address,
+ wallet.address || '',
`ipfs://${baseUri}`,
uploadDetails.assetFiles.length,
parseInt(uploadDetails.assetFiles[0].name.split('.')[0]),
@@ -479,7 +479,7 @@ const CollectionCreationPage: NextPage = () => {
setUploading(false)
await baseMinterContract
.use(baseMinterDetails?.existingBaseMinter as string)
- ?.mint(wallet.address, `${uploadDetails?.baseTokenURI?.trim()}`)
+ ?.mint(wallet.address || '', `${uploadDetails?.baseTokenURI?.trim()}`)
.then((result) => {
toast.success(`Token minted & added to the collection successfully! Tx Hash: ${result}`, {
style: { maxWidth: 'none' },
@@ -507,7 +507,7 @@ const CollectionCreationPage: NextPage = () => {
}
const instantiateWhitelist = async () => {
- if (!wallet.initialized) throw new Error('Wallet not connected')
+ if (!wallet.isWalletConnected) throw new Error('Wallet not connected')
if (!whitelistContract) throw new Error('Contract not found')
const standardMsg = {
@@ -548,7 +548,7 @@ const CollectionCreationPage: NextPage = () => {
}
const instantiateVendingMinter = async (baseUri: string, coverImageUri: string, whitelist?: string) => {
- if (!wallet.initialized) throw new Error('Wallet not connected')
+ if (!wallet.isWalletConnected) throw new Error('Wallet not connected')
if (!vendingFactoryContract) throw new Error('Contract not found')
let royaltyInfo = null
@@ -601,7 +601,7 @@ const CollectionCreationPage: NextPage = () => {
const payload: VendingFactoryDispatchExecuteArgs = {
contract: vendingFactoryAddress as string,
messages: vendingFactoryMessages,
- txSigner: wallet.address,
+ txSigner: wallet.address || '',
msg,
funds: [
coin(
@@ -623,7 +623,7 @@ const CollectionCreationPage: NextPage = () => {
}
const instantiateBaseMinter = async (baseUri: string, coverImageUri: string) => {
- if (!wallet.initialized) throw new Error('Wallet not connected')
+ if (!wallet.isWalletConnected) throw new Error('Wallet not connected')
if (!baseFactoryContract) throw new Error('Contract not found')
if (!baseMinterContract) throw new Error('Contract not found')
@@ -662,7 +662,7 @@ const CollectionCreationPage: NextPage = () => {
const payload: BaseFactoryDispatchExecuteArgs = {
contract: collectionDetails?.updatable ? BASE_FACTORY_UPDATABLE_ADDRESS : BASE_FACTORY_ADDRESS,
messages: baseFactoryMessages,
- txSigner: wallet.address,
+ txSigner: wallet.address || '',
msg,
funds: [
coin(
@@ -680,7 +680,7 @@ const CollectionCreationPage: NextPage = () => {
if (uploadDetails?.assetFiles.length === 1 || uploadDetails?.uploadMethod === 'existing') {
await toast
.promise(
- baseMinterContract.use(data.baseMinterAddress)?.mint(wallet.address, baseUri) as Promise,
+ baseMinterContract.use(data.baseMinterAddress)?.mint(wallet.address || '', baseUri) as Promise,
{
loading: 'Minting token...',
success: (result) => {
@@ -704,7 +704,7 @@ const CollectionCreationPage: NextPage = () => {
baseMinterContract
.use(data.baseMinterAddress)
?.batchMint(
- wallet.address,
+ wallet.address || '',
baseUri,
uploadDetails?.assetFiles.length as number,
parseInt(uploadDetails?.assetFiles[0].name.split('.')[0] as string),
@@ -898,7 +898,7 @@ const CollectionCreationPage: NextPage = () => {
}
const checkUploadDetails = () => {
- if (!wallet.initialized) throw new Error('Wallet not connected.')
+ if (!wallet.isWalletConnected) throw new Error('Wallet not connected.')
if (!uploadDetails) {
throw new Error('Please select assets and metadata')
}
@@ -1107,8 +1107,8 @@ const CollectionCreationPage: NextPage = () => {
}
throw new Error('Invalid royalty payment address')
}
- const contractInfoResponse = await wallet.client
- ?.queryContractRaw(
+ const contractInfoResponse = await (await wallet.getCosmWasmClient())
+ .queryContractRaw(
royaltyDetails.paymentAddress.trim(),
toUtf8(Buffer.from(Buffer.from('contract_info').toString('hex'), 'hex').toString()),
)
@@ -1128,8 +1128,8 @@ const CollectionCreationPage: NextPage = () => {
}
const fetchInitialFactoryParameters = async () => {
- const client = wallet.client
- if (!client) return
+ if (!wallet.isWalletConnected) return
+ const client = await wallet.getCosmWasmClient()
if (BASE_FACTORY_ADDRESS) {
const baseFactoryParameters = await client
.queryContractSmart(BASE_FACTORY_ADDRESS, { params: {} })
@@ -1208,8 +1208,8 @@ const CollectionCreationPage: NextPage = () => {
}
const fetchOpenEditionFactoryParameters = useCallback(async () => {
- const client = wallet.client
- if (!client) return
+ if (!wallet.isWalletConnected) return
+ const client = await wallet.getCosmWasmClient()
const factoryForSelectedDenom = openEditionMinterList.find(
(minter) =>
minter.supportedToken === openEditionMinterDetails?.mintingDetails?.selectedMintToken &&
@@ -1252,15 +1252,16 @@ const CollectionCreationPage: NextPage = () => {
)
}
}
+ // eslint-disable-next-line react-hooks/exhaustive-deps
}, [
openEditionMinterDetails?.mintingDetails?.selectedMintToken,
openEditionMinterDetails?.collectionDetails?.updatable,
- wallet.client,
+ wallet.isWalletConnected,
])
const fetchVendingFactoryParameters = useCallback(async () => {
- const client = wallet.client
- if (!client) return
+ if (!wallet.isWalletConnected) return
+ const client = await wallet.getCosmWasmClient()
const vendingFactoryForSelectedDenom = vendingMinterList
.concat(flexibleVendingMinterList)
.find(
@@ -1295,13 +1296,13 @@ const CollectionCreationPage: NextPage = () => {
}, [
collectionDetails?.updatable,
mintingDetails?.selectedMintToken,
- wallet.client,
+ wallet.isWalletConnected,
whitelistDetails?.whitelistState,
whitelistDetails?.whitelistType,
])
const checkwalletBalance = async () => {
- const walletBalance = await wallet.client?.getBalance(wallet.address, 'ustars').then((balance) => {
+ await (await wallet.getCosmWasmClient()).getBalance(wallet.address || '', 'ustars').then((balance) => {
if (minterType === 'vending' && whitelistDetails?.whitelistState === 'new' && whitelistDetails.memberLimit) {
const amountNeeded =
Math.ceil(Number(whitelistDetails.memberLimit) / 1000) * 100000000 +
@@ -1453,7 +1454,8 @@ const CollectionCreationPage: NextPage = () => {
if (!initialParametersFetched) {
void fetchInitialFactoryParameters()
}
- }, [wallet.client])
+ // eslint-disable-next-line react-hooks/exhaustive-deps
+ }, [wallet.isWalletConnected])
useEffect(() => {
void fetchOpenEditionFactoryParameters()
diff --git a/pages/collections/myCollections.tsx b/pages/collections/myCollections.tsx
index 1fc715c..6a62f33 100644
--- a/pages/collections/myCollections.tsx
+++ b/pages/collections/myCollections.tsx
@@ -11,7 +11,6 @@ import { Anchor } from 'components/Anchor'
import { Conditional } from 'components/Conditional'
import { ContractPageHeader } from 'components/ContractPageHeader'
import { Tooltip } from 'components/Tooltip'
-import { useWallet } from 'contexts/wallet'
import type { NextPage } from 'next'
import { NextSeo } from 'next-seo'
import { useCallback, useEffect, useState } from 'react'
@@ -21,6 +20,7 @@ import { API_URL, STARGAZE_URL } from 'utils/constants'
import { withMetadata } from 'utils/layout'
import { links } from 'utils/links'
import { truncateMiddle } from 'utils/text'
+import { useWallet } from 'utils/wallet'
const CollectionList: NextPage = () => {
const wallet = useWallet()
@@ -30,8 +30,8 @@ const CollectionList: NextPage = () => {
const [myOpenEditionCollections, setMyOpenEditionCollections] = useState([])
async function getMinterContractType(minterContractAddress: string) {
- if (wallet.client && minterContractAddress.length > 0) {
- const client = wallet.client
+ if (wallet.isWalletConnected && minterContractAddress.length > 0) {
+ const client = await wallet.getCosmWasmClient()
const data = await client.queryContractRaw(
minterContractAddress,
toUtf8(Buffer.from(Buffer.from('contract_info').toString('hex'), 'hex').toString()),
diff --git a/pages/contracts/badgeHub/execute.tsx b/pages/contracts/badgeHub/execute.tsx
index df8e043..a7efabc 100644
--- a/pages/contracts/badgeHub/execute.tsx
+++ b/pages/contracts/badgeHub/execute.tsx
@@ -28,7 +28,6 @@ import { TransactionHash } from 'components/TransactionHash'
import { WhitelistUpload } from 'components/WhitelistUpload'
import { useContracts } from 'contexts/contracts'
import { useGlobalSettings } from 'contexts/globalSettings'
-import { useWallet } from 'contexts/wallet'
import type { Badge } from 'contracts/badgeHub'
import type { DispatchExecuteArgs } from 'contracts/badgeHub/messages/execute'
import { dispatchExecute, isEitherType, previewExecutePayload } from 'contracts/badgeHub/messages/execute'
@@ -53,6 +52,7 @@ import { withMetadata } from 'utils/layout'
import { links } from 'utils/links'
import { resolveAddress } from 'utils/resolveAddress'
import { truncateMiddle } from 'utils/text'
+import { useWallet } from 'utils/wallet'
import { TextInput } from '../../../components/forms/FormInput'
import { MetadataAttributes } from '../../../components/forms/MetadataAttributes'
@@ -323,7 +323,7 @@ const BadgeHubExecutePage: NextPage = () => {
editFee,
contract: contractState.value,
messages,
- txSigner: wallet.address,
+ txSigner: wallet.address || '',
type,
}
const { isLoading, mutate } = useMutation(
@@ -332,14 +332,15 @@ const BadgeHubExecutePage: NextPage = () => {
if (!type) {
throw new Error('Please select message type!')
}
- if (!wallet.initialized) {
+ if (!wallet.isWalletConnected) {
throw new Error('Please connect your wallet.')
}
if (contractState.value === '') {
throw new Error('Please enter the contract address.')
}
- if (wallet.client && type === 'edit_badge') {
- const feeRateRaw = await wallet.client.queryContractRaw(
+ if (type === 'edit_badge') {
+ const client = await wallet.getCosmWasmClient()
+ const feeRateRaw = await client.queryContractRaw(
contractAddress,
toUtf8(Buffer.from(Buffer.from('fee_rate').toString('hex'), 'hex').toString()),
)
@@ -347,7 +348,7 @@ const BadgeHubExecutePage: NextPage = () => {
await toast
.promise(
- wallet.client.queryContractSmart(contractAddress, {
+ client.queryContractSmart(contractAddress, {
badge: { id: badgeIdState.value },
}),
{
diff --git a/pages/contracts/badgeHub/instantiate.tsx b/pages/contracts/badgeHub/instantiate.tsx
index 0b18abb..4b0c2ba 100644
--- a/pages/contracts/badgeHub/instantiate.tsx
+++ b/pages/contracts/badgeHub/instantiate.tsx
@@ -9,7 +9,6 @@ import { JsonPreview } from 'components/JsonPreview'
import { LinkTabs } from 'components/LinkTabs'
import { badgeHubLinkTabs } from 'components/LinkTabs.data'
import { useContracts } from 'contexts/contracts'
-import { useWallet } from 'contexts/wallet'
import type { InstantiateResponse } from 'contracts/sg721'
import type { NextPage } from 'next'
import { NextSeo } from 'next-seo'
@@ -20,6 +19,7 @@ import { useMutation } from 'react-query'
import { BADGE_HUB_CODE_ID } from 'utils/constants'
import { withMetadata } from 'utils/layout'
import { links } from 'utils/links'
+import { useWallet } from 'utils/wallet'
export interface FeeRate {
metadata: number
diff --git a/pages/contracts/badgeHub/migrate.tsx b/pages/contracts/badgeHub/migrate.tsx
index 971090a..813318f 100644
--- a/pages/contracts/badgeHub/migrate.tsx
+++ b/pages/contracts/badgeHub/migrate.tsx
@@ -9,7 +9,6 @@ import { LinkTabs } from 'components/LinkTabs'
import { badgeHubLinkTabs } from 'components/LinkTabs.data'
import { TransactionHash } from 'components/TransactionHash'
import { useContracts } from 'contexts/contracts'
-import { useWallet } from 'contexts/wallet'
import type { MigrateResponse } from 'contracts/badgeHub'
import type { NextPage } from 'next'
import { useRouter } from 'next/router'
@@ -21,6 +20,7 @@ import { FaArrowRight } from 'react-icons/fa'
import { useMutation } from 'react-query'
import { withMetadata } from 'utils/layout'
import { links } from 'utils/links'
+import { useWallet } from 'utils/wallet'
const BadgeHubMigratePage: NextPage = () => {
const { badgeHub: contract } = useContracts()
@@ -52,7 +52,7 @@ const BadgeHubMigratePage: NextPage = () => {
if (!contract) {
throw new Error('Smart contract connection failed')
}
- if (!wallet.initialized) {
+ if (!wallet.isWalletConnected) {
throw new Error('Please connect your wallet.')
}
diff --git a/pages/contracts/badgeHub/query.tsx b/pages/contracts/badgeHub/query.tsx
index 466b889..f82db9a 100644
--- a/pages/contracts/badgeHub/query.tsx
+++ b/pages/contracts/badgeHub/query.tsx
@@ -8,7 +8,6 @@ import { JsonPreview } from 'components/JsonPreview'
import { LinkTabs } from 'components/LinkTabs'
import { badgeHubLinkTabs } from 'components/LinkTabs.data'
import { useContracts } from 'contexts/contracts'
-import { useWallet } from 'contexts/wallet'
import type { QueryType } from 'contracts/badgeHub/messages/query'
import { dispatchQuery, QUERY_LIST } from 'contracts/badgeHub/messages/query'
import type { NextPage } from 'next'
@@ -19,6 +18,7 @@ import { toast } from 'react-hot-toast'
import { useQuery } from 'react-query'
import { withMetadata } from 'utils/layout'
import { links } from 'utils/links'
+import { useWallet } from 'utils/wallet'
import { BADGE_HUB_ADDRESS } from '../../../utils/constants'
@@ -79,7 +79,7 @@ const BadgeHubQueryPage: NextPage = () => {
contractAddress,
type,
contract,
- wallet,
+ wallet.address,
idState.value,
pubkeyState.value,
startAfterNumberState.value,
@@ -106,7 +106,7 @@ const BadgeHubQueryPage: NextPage = () => {
onError: (error: any) => {
toast.error(error.message, { style: { maxWidth: 'none' } })
},
- enabled: Boolean(contractAddress && contract && wallet),
+ enabled: Boolean(contractAddress && contract && wallet.isWalletConnected),
},
)
diff --git a/pages/contracts/baseMinter/execute.tsx b/pages/contracts/baseMinter/execute.tsx
index b5855df..df939ae 100644
--- a/pages/contracts/baseMinter/execute.tsx
+++ b/pages/contracts/baseMinter/execute.tsx
@@ -13,7 +13,6 @@ import { baseMinterLinkTabs } from 'components/LinkTabs.data'
import { TransactionHash } from 'components/TransactionHash'
import { useContracts } from 'contexts/contracts'
import { useGlobalSettings } from 'contexts/globalSettings'
-import { useWallet } from 'contexts/wallet'
import type { DispatchExecuteArgs } from 'contracts/baseMinter/messages/execute'
import { dispatchExecute, previewExecutePayload } from 'contracts/baseMinter/messages/execute'
import type { NextPage } from 'next'
@@ -26,6 +25,7 @@ import { FaArrowRight } from 'react-icons/fa'
import { useMutation } from 'react-query'
import { withMetadata } from 'utils/layout'
import { links } from 'utils/links'
+import { useWallet } from 'utils/wallet'
const BaseMinterExecutePage: NextPage = () => {
const { baseMinter: contract } = useContracts()
@@ -62,7 +62,7 @@ const BaseMinterExecutePage: NextPage = () => {
tokenUri: tokenUriState.value,
contract: contractState.value,
messages,
- txSigner: wallet.address,
+ txSigner: wallet.address || '',
type,
}
const { isLoading, mutate } = useMutation(
@@ -71,7 +71,7 @@ const BaseMinterExecutePage: NextPage = () => {
if (!type) {
throw new Error('Please select message type!')
}
- if (!wallet.initialized) {
+ if (!wallet.isWalletConnected) {
throw new Error('Please connect your wallet.')
}
const txHash = await toast.promise(dispatchExecute(payload), {
diff --git a/pages/contracts/baseMinter/instantiate.tsx b/pages/contracts/baseMinter/instantiate.tsx
index 354e9f6..23f7d9c 100644
--- a/pages/contracts/baseMinter/instantiate.tsx
+++ b/pages/contracts/baseMinter/instantiate.tsx
@@ -16,7 +16,6 @@ import { LinkTabs } from 'components/LinkTabs'
import { baseMinterLinkTabs } from 'components/LinkTabs.data'
import { useContracts } from 'contexts/contracts'
import { useGlobalSettings } from 'contexts/globalSettings'
-import { useWallet } from 'contexts/wallet'
import type { NextPage } from 'next'
import { NextSeo } from 'next-seo'
import type { FormEvent } from 'react'
@@ -27,6 +26,7 @@ import { useMutation } from 'react-query'
import { BASE_FACTORY_ADDRESS } from 'utils/constants'
import { withMetadata } from 'utils/layout'
import { links } from 'utils/links'
+import { useWallet } from 'utils/wallet'
import type { CreateBaseMinterResponse } from '../../../contracts/baseFactory/contract'
import { SG721_CODE_ID } from '../../../utils/constants'
@@ -149,7 +149,9 @@ const BaseMinterInstantiatePage: NextPage = () => {
return toast.promise(
contract
.use(BASE_FACTORY_ADDRESS)
- ?.createBaseMinter(wallet.address, msg, [coin('250000000', 'ustars')]) as Promise,
+ ?.createBaseMinter(wallet.address || '', msg, [
+ coin('250000000', 'ustars'),
+ ]) as Promise,
{
loading: 'Instantiating contract...',
error: 'Instantiation failed!',
diff --git a/pages/contracts/baseMinter/migrate.tsx b/pages/contracts/baseMinter/migrate.tsx
index b365115..fb1c7d5 100644
--- a/pages/contracts/baseMinter/migrate.tsx
+++ b/pages/contracts/baseMinter/migrate.tsx
@@ -9,7 +9,6 @@ import { LinkTabs } from 'components/LinkTabs'
import { baseMinterLinkTabs } from 'components/LinkTabs.data'
import { TransactionHash } from 'components/TransactionHash'
import { useContracts } from 'contexts/contracts'
-import { useWallet } from 'contexts/wallet'
import type { MigrateResponse } from 'contracts/baseMinter'
import type { NextPage } from 'next'
import { useRouter } from 'next/router'
@@ -21,6 +20,7 @@ import { FaArrowRight } from 'react-icons/fa'
import { useMutation } from 'react-query'
import { withMetadata } from 'utils/layout'
import { links } from 'utils/links'
+import { useWallet } from 'utils/wallet'
const BaseMinterMigratePage: NextPage = () => {
const { baseMinter: contract } = useContracts()
@@ -52,7 +52,7 @@ const BaseMinterMigratePage: NextPage = () => {
if (!contract) {
throw new Error('Smart contract connection failed')
}
- if (!wallet.initialized) {
+ if (!wallet.isWalletConnected) {
throw new Error('Please connect your wallet.')
}
diff --git a/pages/contracts/baseMinter/query.tsx b/pages/contracts/baseMinter/query.tsx
index f46546a..fd87452 100644
--- a/pages/contracts/baseMinter/query.tsx
+++ b/pages/contracts/baseMinter/query.tsx
@@ -7,7 +7,6 @@ import { JsonPreview } from 'components/JsonPreview'
import { LinkTabs } from 'components/LinkTabs'
import { baseMinterLinkTabs } from 'components/LinkTabs.data'
import { useContracts } from 'contexts/contracts'
-import { useWallet } from 'contexts/wallet'
import type { QueryType } from 'contracts/baseMinter/messages/query'
import { dispatchQuery, QUERY_LIST } from 'contracts/baseMinter/messages/query'
import type { NextPage } from 'next'
@@ -18,6 +17,7 @@ import { toast } from 'react-hot-toast'
import { useQuery } from 'react-query'
import { withMetadata } from 'utils/layout'
import { links } from 'utils/links'
+import { useWallet } from 'utils/wallet'
const BaseMinterQueryPage: NextPage = () => {
const { baseMinter: contract } = useContracts()
@@ -42,7 +42,7 @@ const BaseMinterQueryPage: NextPage = () => {
const [type, setType] = useState('config')
const { data: response } = useQuery(
- [contractAddress, type, contract, wallet, address] as const,
+ [contractAddress, type, contract, wallet.address, address] as const,
async ({ queryKey }) => {
const [_contractAddress, _type, _contract, _wallet] = queryKey
const messages = contract?.use(_contractAddress)
@@ -58,7 +58,7 @@ const BaseMinterQueryPage: NextPage = () => {
onError: (error: any) => {
toast.error(error.message, { style: { maxWidth: 'none' } })
},
- enabled: Boolean(contractAddress && contract && wallet),
+ enabled: Boolean(contractAddress && contract && wallet.isWalletConnected),
},
)
diff --git a/pages/contracts/openEditionMinter/execute.tsx b/pages/contracts/openEditionMinter/execute.tsx
index c5011d2..4c4bc61 100644
--- a/pages/contracts/openEditionMinter/execute.tsx
+++ b/pages/contracts/openEditionMinter/execute.tsx
@@ -15,7 +15,6 @@ import { openEditionMinterLinkTabs } from 'components/LinkTabs.data'
import { TransactionHash } from 'components/TransactionHash'
import { useContracts } from 'contexts/contracts'
import { useGlobalSettings } from 'contexts/globalSettings'
-import { useWallet } from 'contexts/wallet'
import type { DispatchExecuteArgs } from 'contracts/openEditionMinter/messages/execute'
import { dispatchExecute, isEitherType, previewExecutePayload } from 'contracts/openEditionMinter/messages/execute'
import type { NextPage } from 'next'
@@ -29,6 +28,7 @@ import { useMutation } from 'react-query'
import { withMetadata } from 'utils/layout'
import { links } from 'utils/links'
import { resolveAddress } from 'utils/resolveAddress'
+import { useWallet } from 'utils/wallet'
const OpenEditionMinterExecutePage: NextPage = () => {
const { openEditionMinter: contract } = useContracts()
@@ -93,7 +93,7 @@ const OpenEditionMinterExecutePage: NextPage = () => {
contract: contractState.value,
messages,
recipient: resolvedRecipientAddress,
- txSigner: wallet.address,
+ txSigner: wallet.address || '',
price: priceState.value ? priceState.value.toString() : '0',
type,
}
@@ -103,20 +103,21 @@ const OpenEditionMinterExecutePage: NextPage = () => {
if (!type) {
throw new Error('Please select message type!')
}
- if (!wallet.initialized) {
+ if (!wallet.isWalletConnected) {
throw new Error('Please connect your wallet.')
}
if (contractState.value === '') {
throw new Error('Please enter the contract address.')
}
- if (wallet.client && type === 'update_mint_price') {
- const contractConfig = wallet.client.queryContractSmart(contractState.value, {
+ if (type === 'update_mint_price') {
+ const client = await wallet.getCosmWasmClient()
+ const contractConfig = client.queryContractSmart(contractState.value, {
config: {},
})
await toast
.promise(
- wallet.client.queryContractSmart(contractState.value, {
+ client.queryContractSmart(contractState.value, {
mint_price: {},
}),
{
@@ -148,7 +149,7 @@ const OpenEditionMinterExecutePage: NextPage = () => {
})
} else {
await contractConfig.then(async (config) => {
- const factoryParameters = await wallet.client?.queryContractSmart(config.factory, {
+ const factoryParameters = await client.queryContractSmart(config.factory, {
params: {},
})
if (
diff --git a/pages/contracts/openEditionMinter/migrate.tsx b/pages/contracts/openEditionMinter/migrate.tsx
index 6eca644..41b0de4 100644
--- a/pages/contracts/openEditionMinter/migrate.tsx
+++ b/pages/contracts/openEditionMinter/migrate.tsx
@@ -9,7 +9,6 @@ import { LinkTabs } from 'components/LinkTabs'
import { openEditionMinterLinkTabs } from 'components/LinkTabs.data'
import { TransactionHash } from 'components/TransactionHash'
import { useContracts } from 'contexts/contracts'
-import { useWallet } from 'contexts/wallet'
import type { MigrateResponse } from 'contracts/openEditionMinter'
import type { NextPage } from 'next'
import { useRouter } from 'next/router'
@@ -21,6 +20,7 @@ import { FaArrowRight } from 'react-icons/fa'
import { useMutation } from 'react-query'
import { withMetadata } from 'utils/layout'
import { links } from 'utils/links'
+import { useWallet } from 'utils/wallet'
const OpenEditionMinterMigratePage: NextPage = () => {
const { openEditionMinter: contract } = useContracts()
@@ -52,7 +52,7 @@ const OpenEditionMinterMigratePage: NextPage = () => {
if (!contract) {
throw new Error('Smart contract connection failed')
}
- if (!wallet.initialized) {
+ if (!wallet.isWalletConnected) {
throw new Error('Please connect your wallet.')
}
diff --git a/pages/contracts/openEditionMinter/query.tsx b/pages/contracts/openEditionMinter/query.tsx
index 8500309..738cb36 100644
--- a/pages/contracts/openEditionMinter/query.tsx
+++ b/pages/contracts/openEditionMinter/query.tsx
@@ -8,7 +8,6 @@ import { JsonPreview } from 'components/JsonPreview'
import { LinkTabs } from 'components/LinkTabs'
import { openEditionMinterLinkTabs } from 'components/LinkTabs.data'
import { useContracts } from 'contexts/contracts'
-import { useWallet } from 'contexts/wallet'
import type { QueryType } from 'contracts/openEditionMinter/messages/query'
import { dispatchQuery, QUERY_LIST } from 'contracts/openEditionMinter/messages/query'
import type { NextPage } from 'next'
@@ -20,6 +19,7 @@ import { useQuery } from 'react-query'
import { withMetadata } from 'utils/layout'
import { links } from 'utils/links'
import { resolveAddress } from 'utils/resolveAddress'
+import { useWallet } from 'utils/wallet'
const OpenEditionMinterQueryPage: NextPage = () => {
const { openEditionMinter: contract } = useContracts()
@@ -44,7 +44,7 @@ const OpenEditionMinterQueryPage: NextPage = () => {
const [type, setType] = useState('config')
const { data: response } = useQuery(
- [contractAddress, type, contract, wallet, address] as const,
+ [contractAddress, type, contract, wallet.address, address] as const,
async ({ queryKey }) => {
const [_contractAddress, _type, _contract, _wallet] = queryKey
const messages = contract?.use(_contractAddress)
@@ -63,7 +63,7 @@ const OpenEditionMinterQueryPage: NextPage = () => {
onError: (error: any) => {
toast.error(error.message, { style: { maxWidth: 'none' } })
},
- enabled: Boolean(contractAddress && contract && wallet),
+ enabled: Boolean(contractAddress && contract && wallet.isWalletConnected),
},
)
diff --git a/pages/contracts/royaltyRegistry/execute.tsx b/pages/contracts/royaltyRegistry/execute.tsx
index 873b979..cdfd20c 100644
--- a/pages/contracts/royaltyRegistry/execute.tsx
+++ b/pages/contracts/royaltyRegistry/execute.tsx
@@ -12,7 +12,6 @@ import { LinkTabs } from 'components/LinkTabs'
import { royaltyRegistryLinkTabs } from 'components/LinkTabs.data'
import { TransactionHash } from 'components/TransactionHash'
import { useContracts } from 'contexts/contracts'
-import { useWallet } from 'contexts/wallet'
import type { DispatchExecuteArgs } from 'contracts/royaltyRegistry/messages/execute'
import { dispatchExecute, isEitherType, previewExecutePayload } from 'contracts/royaltyRegistry/messages/execute'
import type { NextPage } from 'next'
@@ -26,6 +25,7 @@ import { useMutation } from 'react-query'
import { INFINITY_SWAP_PROTOCOL_ADDRESS, ROYALTY_REGISTRY_ADDRESS } from 'utils/constants'
import { withMetadata } from 'utils/layout'
import { links } from 'utils/links'
+import { useWallet } from 'utils/wallet'
export const protocolList = [{ name: 'Infinity Swap', address: INFINITY_SWAP_PROTOCOL_ADDRESS }]
@@ -115,7 +115,7 @@ const RoyaltyRegistryExecutePage: NextPage = () => {
if (!type) {
throw new Error('Please select message type!')
}
- if (!wallet.initialized) {
+ if (!wallet.isWalletConnected) {
throw new Error('Please connect your wallet.')
}
const txHash = await toast.promise(dispatchExecute(payload), {
diff --git a/pages/contracts/royaltyRegistry/query.tsx b/pages/contracts/royaltyRegistry/query.tsx
index 2138b8f..a1b7416 100644
--- a/pages/contracts/royaltyRegistry/query.tsx
+++ b/pages/contracts/royaltyRegistry/query.tsx
@@ -8,7 +8,6 @@ import { JsonPreview } from 'components/JsonPreview'
import { LinkTabs } from 'components/LinkTabs'
import { royaltyRegistryLinkTabs } from 'components/LinkTabs.data'
import { useContracts } from 'contexts/contracts'
-import { useWallet } from 'contexts/wallet'
import type { QueryType } from 'contracts/royaltyRegistry/messages/query'
import { dispatchQuery, QUERY_LIST } from 'contracts/royaltyRegistry/messages/query'
import type { NextPage } from 'next'
@@ -21,6 +20,7 @@ import { INFINITY_SWAP_PROTOCOL_ADDRESS, ROYALTY_REGISTRY_ADDRESS } from 'utils/
import { withMetadata } from 'utils/layout'
import { links } from 'utils/links'
import { resolveAddress } from 'utils/resolveAddress'
+import { useWallet } from 'utils/wallet'
import { protocolList } from './execute'
@@ -59,7 +59,7 @@ const RoyaltyRegistryQueryPage: NextPage = () => {
const [manualProtocolInput, setManualProtocolInput] = useState(false)
const { data: response } = useQuery(
- [contractAddress, type, contract, wallet, collectionAddress, protocolAddress] as const,
+ [contractAddress, type, contract, wallet.address, collectionAddress, protocolAddress] as const,
async ({ queryKey }) => {
const [_contractAddress, _type, _contract, _wallet, _collectionAddress, _protocolAddress] = queryKey
const messages = contract?.use(contractAddress)
@@ -79,7 +79,7 @@ const RoyaltyRegistryQueryPage: NextPage = () => {
onError: (error: any) => {
toast.error(error.message, { style: { maxWidth: 'none' } })
},
- enabled: Boolean(contractAddress && contract && wallet),
+ enabled: Boolean(contractAddress && contract && wallet.isWalletConnected),
},
)
diff --git a/pages/contracts/sg721/execute.tsx b/pages/contracts/sg721/execute.tsx
index eac2b1e..52b9f85 100644
--- a/pages/contracts/sg721/execute.tsx
+++ b/pages/contracts/sg721/execute.tsx
@@ -11,7 +11,6 @@ import { LinkTabs } from 'components/LinkTabs'
import { sg721LinkTabs } from 'components/LinkTabs.data'
import { TransactionHash } from 'components/TransactionHash'
import { useContracts } from 'contexts/contracts'
-import { useWallet } from 'contexts/wallet'
import type { DispatchExecuteArgs } from 'contracts/sg721/messages/execute'
import { dispatchExecute, isEitherType, previewExecutePayload } from 'contracts/sg721/messages/execute'
import type { NextPage } from 'next'
@@ -26,6 +25,7 @@ import { parseJson } from 'utils/json'
import { withMetadata } from 'utils/layout'
import { links } from 'utils/links'
import { resolveAddress } from 'utils/resolveAddress'
+import { useWallet } from 'utils/wallet'
const Sg721ExecutePage: NextPage = () => {
const { sg721: contract } = useContracts()
@@ -116,7 +116,7 @@ const Sg721ExecutePage: NextPage = () => {
if (!type) {
throw new Error('Please select message type!')
}
- if (!wallet.initialized) {
+ if (!wallet.isWalletConnected) {
throw new Error('Please connect your wallet.')
}
const txHash = await toast.promise(dispatchExecute(payload), {
diff --git a/pages/contracts/sg721/migrate.tsx b/pages/contracts/sg721/migrate.tsx
index 03da9d3..a2c2032 100644
--- a/pages/contracts/sg721/migrate.tsx
+++ b/pages/contracts/sg721/migrate.tsx
@@ -9,7 +9,6 @@ import { LinkTabs } from 'components/LinkTabs'
import { sg721LinkTabs } from 'components/LinkTabs.data'
import { TransactionHash } from 'components/TransactionHash'
import { useContracts } from 'contexts/contracts'
-import { useWallet } from 'contexts/wallet'
import type { MigrateResponse } from 'contracts/sg721'
import type { NextPage } from 'next'
import { useRouter } from 'next/router'
@@ -21,6 +20,7 @@ import { FaArrowRight } from 'react-icons/fa'
import { useMutation } from 'react-query'
import { withMetadata } from 'utils/layout'
import { links } from 'utils/links'
+import { useWallet } from 'utils/wallet'
const Sg721MigratePage: NextPage = () => {
const { sg721: contract } = useContracts()
@@ -52,7 +52,7 @@ const Sg721MigratePage: NextPage = () => {
if (!contract) {
throw new Error('Smart contract connection failed')
}
- if (!wallet.initialized) {
+ if (!wallet.isWalletConnected) {
throw new Error('Please connect your wallet.')
}
diff --git a/pages/contracts/sg721/query.tsx b/pages/contracts/sg721/query.tsx
index 91cde09..2357da0 100644
--- a/pages/contracts/sg721/query.tsx
+++ b/pages/contracts/sg721/query.tsx
@@ -8,7 +8,6 @@ import { JsonPreview } from 'components/JsonPreview'
import { LinkTabs } from 'components/LinkTabs'
import { sg721LinkTabs } from 'components/LinkTabs.data'
import { useContracts } from 'contexts/contracts'
-import { useWallet } from 'contexts/wallet'
import type { QueryType } from 'contracts/sg721/messages/query'
import { dispatchQuery, QUERY_LIST } from 'contracts/sg721/messages/query'
import type { NextPage } from 'next'
@@ -20,6 +19,7 @@ import { useQuery } from 'react-query'
import { withMetadata } from 'utils/layout'
import { links } from 'utils/links'
import { resolveAddress } from 'utils/resolveAddress'
+import { useWallet } from 'utils/wallet'
const Sg721QueryPage: NextPage = () => {
const { sg721: contract } = useContracts()
@@ -55,7 +55,7 @@ const Sg721QueryPage: NextPage = () => {
const tokenIdVisible = ['owner_of', 'approval', 'approvals', 'nft_info', 'all_nft_info'].includes(type)
const { data: response } = useQuery(
- [contractAddress, type, contract, wallet, tokenId, address] as const,
+ [contractAddress, type, contract, wallet.address, tokenId, address] as const,
async ({ queryKey }) => {
const [_contractAddress, _type, _contract, _wallet, _tokenId, _address] = queryKey
const messages = contract?.use(contractAddress)
@@ -75,7 +75,7 @@ const Sg721QueryPage: NextPage = () => {
onError: (error: any) => {
toast.error(error.message, { style: { maxWidth: 'none' } })
},
- enabled: Boolean(contractAddress && contract && wallet),
+ enabled: Boolean(contractAddress && contract && wallet.isWalletConnected),
},
)
diff --git a/pages/contracts/splits/execute.tsx b/pages/contracts/splits/execute.tsx
index 24305e6..2a2e047 100644
--- a/pages/contracts/splits/execute.tsx
+++ b/pages/contracts/splits/execute.tsx
@@ -11,7 +11,6 @@ import { LinkTabs } from 'components/LinkTabs'
import { splitsLinkTabs } from 'components/LinkTabs.data'
import { TransactionHash } from 'components/TransactionHash'
import { useContracts } from 'contexts/contracts'
-import { useWallet } from 'contexts/wallet'
import type { DispatchExecuteArgs } from 'contracts/splits/messages/execute'
import { dispatchExecute, isEitherType, previewExecutePayload } from 'contracts/splits/messages/execute'
import type { NextPage } from 'next'
@@ -24,6 +23,7 @@ import { FaArrowRight } from 'react-icons/fa'
import { useMutation } from 'react-query'
import { withMetadata } from 'utils/layout'
import { links } from 'utils/links'
+import { useWallet } from 'utils/wallet'
const SplitsExecutePage: NextPage = () => {
const { splits: contract } = useContracts()
@@ -64,7 +64,7 @@ const SplitsExecutePage: NextPage = () => {
if (!type) {
throw new Error('Please select message type!')
}
- if (!wallet.initialized) {
+ if (!wallet.isWalletConnected) {
throw new Error('Please connect your wallet.')
}
const txHash = await toast.promise(dispatchExecute(payload), {
diff --git a/pages/contracts/splits/instantiate.tsx b/pages/contracts/splits/instantiate.tsx
index 88dcc59..b1b3977 100644
--- a/pages/contracts/splits/instantiate.tsx
+++ b/pages/contracts/splits/instantiate.tsx
@@ -8,7 +8,6 @@ import { JsonPreview } from 'components/JsonPreview'
import { LinkTabs } from 'components/LinkTabs'
import { splitsLinkTabs } from 'components/LinkTabs.data'
import { useContracts } from 'contexts/contracts'
-import { useWallet } from 'contexts/wallet'
import type { InstantiateResponse } from 'contracts/sg721'
import type { NextPage } from 'next'
import { NextSeo } from 'next-seo'
@@ -19,6 +18,7 @@ import { useMutation } from 'react-query'
import { isValidAddress } from 'utils/isValidAddress'
import { withMetadata } from 'utils/layout'
import { links } from 'utils/links'
+import { useWallet } from 'utils/wallet'
import { useInputState } from '../../../components/forms/FormInput.hooks'
import type { Attribute } from '../../../components/forms/MemberAttributes'
diff --git a/pages/contracts/splits/migrate.tsx b/pages/contracts/splits/migrate.tsx
index c03a3a1..d191fc0 100644
--- a/pages/contracts/splits/migrate.tsx
+++ b/pages/contracts/splits/migrate.tsx
@@ -9,7 +9,6 @@ import { LinkTabs } from 'components/LinkTabs'
import { splitsLinkTabs } from 'components/LinkTabs.data'
import { TransactionHash } from 'components/TransactionHash'
import { useContracts } from 'contexts/contracts'
-import { useWallet } from 'contexts/wallet'
import type { MigrateResponse } from 'contracts/splits'
import type { NextPage } from 'next'
import { useRouter } from 'next/router'
@@ -21,6 +20,7 @@ import { FaArrowRight } from 'react-icons/fa'
import { useMutation } from 'react-query'
import { withMetadata } from 'utils/layout'
import { links } from 'utils/links'
+import { useWallet } from 'utils/wallet'
const SplitsMigratePage: NextPage = () => {
const { splits: contract } = useContracts()
@@ -52,7 +52,7 @@ const SplitsMigratePage: NextPage = () => {
if (!contract) {
throw new Error('Smart contract connection failed')
}
- if (!wallet.initialized) {
+ if (!wallet.isWalletConnected) {
throw new Error('Please connect your wallet.')
}
diff --git a/pages/contracts/splits/query.tsx b/pages/contracts/splits/query.tsx
index b43a418..698e8d6 100644
--- a/pages/contracts/splits/query.tsx
+++ b/pages/contracts/splits/query.tsx
@@ -8,7 +8,6 @@ import { JsonPreview } from 'components/JsonPreview'
import { LinkTabs } from 'components/LinkTabs'
import { splitsLinkTabs } from 'components/LinkTabs.data'
import { useContracts } from 'contexts/contracts'
-import { useWallet } from 'contexts/wallet'
import type { QueryType } from 'contracts/splits/messages/query'
import { dispatchQuery, QUERY_LIST } from 'contracts/splits/messages/query'
import type { NextPage } from 'next'
@@ -20,6 +19,7 @@ import { useQuery } from 'react-query'
import { withMetadata } from 'utils/layout'
import { links } from 'utils/links'
import { resolveAddress } from 'utils/resolveAddress'
+import { useWallet } from 'utils/wallet'
const SplitsQueryPage: NextPage = () => {
const { splits: contract } = useContracts()
@@ -64,7 +64,7 @@ const SplitsQueryPage: NextPage = () => {
contractAddress,
type,
contract,
- wallet,
+ wallet.address,
memberAddress,
startAfterStringState.value,
paginationLimitState.value,
@@ -89,7 +89,7 @@ const SplitsQueryPage: NextPage = () => {
onError: (error: any) => {
toast.error(error.message, { style: { maxWidth: 'none' } })
},
- enabled: Boolean(contractAddress && contract && wallet),
+ enabled: Boolean(contractAddress && contract && wallet.isWalletConnected),
},
)
diff --git a/pages/contracts/vendingMinter/execute.tsx b/pages/contracts/vendingMinter/execute.tsx
index 11e1f23..35d11b0 100644
--- a/pages/contracts/vendingMinter/execute.tsx
+++ b/pages/contracts/vendingMinter/execute.tsx
@@ -15,7 +15,6 @@ import { vendingMinterLinkTabs } from 'components/LinkTabs.data'
import { TransactionHash } from 'components/TransactionHash'
import { useContracts } from 'contexts/contracts'
import { useGlobalSettings } from 'contexts/globalSettings'
-import { useWallet } from 'contexts/wallet'
import type { DispatchExecuteArgs } from 'contracts/vendingMinter/messages/execute'
import { dispatchExecute, isEitherType, previewExecutePayload } from 'contracts/vendingMinter/messages/execute'
import type { NextPage } from 'next'
@@ -29,6 +28,7 @@ import { useMutation } from 'react-query'
import { withMetadata } from 'utils/layout'
import { links } from 'utils/links'
import { resolveAddress } from 'utils/resolveAddress'
+import { useWallet } from 'utils/wallet'
const VendingMinterExecutePage: NextPage = () => {
const { vendingMinter: contract } = useContracts()
@@ -101,7 +101,7 @@ const VendingMinterExecutePage: NextPage = () => {
tokenId: tokenIdState.value,
messages,
recipient: resolvedRecipientAddress,
- txSigner: wallet.address,
+ txSigner: wallet.address || '',
price: priceState.value ? priceState.value.toString() : '0',
type,
}
@@ -111,20 +111,21 @@ const VendingMinterExecutePage: NextPage = () => {
if (!type) {
throw new Error('Please select message type!')
}
- if (!wallet.initialized) {
+ if (!wallet.isWalletConnected) {
throw new Error('Please connect your wallet.')
}
if (contractState.value === '') {
throw new Error('Please enter the contract address.')
}
- if (wallet.client && type === 'update_mint_price') {
- const contractConfig = wallet.client.queryContractSmart(contractState.value, {
+ if (type === 'update_mint_price') {
+ const client = await wallet.getCosmWasmClient()
+ const contractConfig = client.queryContractSmart(contractState.value, {
config: {},
})
await toast
.promise(
- wallet.client.queryContractSmart(contractState.value, {
+ client.queryContractSmart(contractState.value, {
mint_price: {},
}),
{
@@ -156,7 +157,7 @@ const VendingMinterExecutePage: NextPage = () => {
})
} else {
await contractConfig.then(async (config) => {
- const factoryParameters = await wallet.client?.queryContractSmart(config.factory, {
+ const factoryParameters = await client.queryContractSmart(config.factory, {
params: {},
})
if (
diff --git a/pages/contracts/vendingMinter/instantiate.tsx b/pages/contracts/vendingMinter/instantiate.tsx
index 7e5428a..1f45d34 100644
--- a/pages/contracts/vendingMinter/instantiate.tsx
+++ b/pages/contracts/vendingMinter/instantiate.tsx
@@ -16,7 +16,6 @@ import { LinkTabs } from 'components/LinkTabs'
import { vendingMinterLinkTabs } from 'components/LinkTabs.data'
import { useContracts } from 'contexts/contracts'
import { useGlobalSettings } from 'contexts/globalSettings'
-import { useWallet } from 'contexts/wallet'
import type { NextPage } from 'next'
import { NextSeo } from 'next-seo'
import type { FormEvent } from 'react'
@@ -28,6 +27,7 @@ import { VENDING_FACTORY_ADDRESS } from 'utils/constants'
import { withMetadata } from 'utils/layout'
import { links } from 'utils/links'
import { resolveAddress } from 'utils/resolveAddress'
+import { useWallet } from 'utils/wallet'
import type { CreateVendingMinterResponse } from '../../../contracts/vendingFactory/contract'
@@ -211,7 +211,7 @@ const VendingMinterInstantiatePage: NextPage = () => {
return toast.promise(
contract
.use(VENDING_FACTORY_ADDRESS)
- ?.createVendingMinter(wallet.address, msg, [
+ ?.createVendingMinter(wallet.address || '', msg, [
coin('3000000000', 'ustars'),
]) as Promise,
{
diff --git a/pages/contracts/vendingMinter/migrate.tsx b/pages/contracts/vendingMinter/migrate.tsx
index 9ad9758..c60a9eb 100644
--- a/pages/contracts/vendingMinter/migrate.tsx
+++ b/pages/contracts/vendingMinter/migrate.tsx
@@ -9,7 +9,6 @@ import { LinkTabs } from 'components/LinkTabs'
import { vendingMinterLinkTabs } from 'components/LinkTabs.data'
import { TransactionHash } from 'components/TransactionHash'
import { useContracts } from 'contexts/contracts'
-import { useWallet } from 'contexts/wallet'
import type { MigrateResponse } from 'contracts/vendingMinter'
import type { NextPage } from 'next'
import { useRouter } from 'next/router'
@@ -21,6 +20,7 @@ import { FaArrowRight } from 'react-icons/fa'
import { useMutation } from 'react-query'
import { withMetadata } from 'utils/layout'
import { links } from 'utils/links'
+import { useWallet } from 'utils/wallet'
const VendingMinterMigratePage: NextPage = () => {
const { vendingMinter: contract } = useContracts()
@@ -52,7 +52,7 @@ const VendingMinterMigratePage: NextPage = () => {
if (!contract) {
throw new Error('Smart contract connection failed')
}
- if (!wallet.initialized) {
+ if (!wallet.isWalletConnected) {
throw new Error('Please connect your wallet.')
}
diff --git a/pages/contracts/vendingMinter/query.tsx b/pages/contracts/vendingMinter/query.tsx
index bfdf1da..1d564a2 100644
--- a/pages/contracts/vendingMinter/query.tsx
+++ b/pages/contracts/vendingMinter/query.tsx
@@ -8,7 +8,6 @@ import { JsonPreview } from 'components/JsonPreview'
import { LinkTabs } from 'components/LinkTabs'
import { vendingMinterLinkTabs } from 'components/LinkTabs.data'
import { useContracts } from 'contexts/contracts'
-import { useWallet } from 'contexts/wallet'
import type { QueryType } from 'contracts/vendingMinter/messages/query'
import { dispatchQuery, QUERY_LIST } from 'contracts/vendingMinter/messages/query'
import type { NextPage } from 'next'
@@ -20,6 +19,7 @@ import { useQuery } from 'react-query'
import { withMetadata } from 'utils/layout'
import { links } from 'utils/links'
import { resolveAddress } from 'utils/resolveAddress'
+import { useWallet } from 'utils/wallet'
const VendingMinterQueryPage: NextPage = () => {
const { vendingMinter: contract } = useContracts()
@@ -44,7 +44,7 @@ const VendingMinterQueryPage: NextPage = () => {
const [type, setType] = useState('config')
const { data: response } = useQuery(
- [contractAddress, type, contract, wallet, address] as const,
+ [contractAddress, type, contract, wallet.address, address] as const,
async ({ queryKey }) => {
const [_contractAddress, _type, _contract, _wallet] = queryKey
const messages = contract?.use(_contractAddress)
@@ -63,7 +63,7 @@ const VendingMinterQueryPage: NextPage = () => {
onError: (error: any) => {
toast.error(error.message, { style: { maxWidth: 'none' } })
},
- enabled: Boolean(contractAddress && contract && wallet),
+ enabled: Boolean(contractAddress && contract && wallet.isWalletConnected),
},
)
diff --git a/pages/contracts/whitelist/execute.tsx b/pages/contracts/whitelist/execute.tsx
index 8958d3b..9b13ede 100644
--- a/pages/contracts/whitelist/execute.tsx
+++ b/pages/contracts/whitelist/execute.tsx
@@ -24,7 +24,6 @@ import { WhitelistFlexUpload } from 'components/WhitelistFlexUpload'
import { WhitelistUpload } from 'components/WhitelistUpload'
import { useContracts } from 'contexts/contracts'
import { useGlobalSettings } from 'contexts/globalSettings'
-import { useWallet } from 'contexts/wallet'
import type { DispatchExecuteArgs } from 'contracts/whitelist/messages/execute'
import { dispatchExecute, isEitherType, previewExecutePayload } from 'contracts/whitelist/messages/execute'
import type { NextPage } from 'next'
@@ -39,6 +38,7 @@ import { useDebounce } from 'utils/debounce'
import { isValidAddress } from 'utils/isValidAddress'
import { withMetadata } from 'utils/layout'
import { links } from 'utils/links'
+import { useWallet } from 'utils/wallet'
const WhitelistExecutePage: NextPage = () => {
const { whitelist: contract } = useContracts()
@@ -143,7 +143,7 @@ const WhitelistExecutePage: NextPage = () => {
if (!type) {
throw new Error('Please select message type!')
}
- if (!wallet.initialized) {
+ if (!wallet.isWalletConnected) {
throw new Error('Please connect your wallet.')
}
const txHash = await toast.promise(dispatchExecute(payload), {
@@ -186,8 +186,8 @@ const WhitelistExecutePage: NextPage = () => {
useEffect(() => {
async function getWhitelistContractType() {
- if (wallet.client && debouncedWhitelistContractState.length > 0) {
- const client = wallet.client
+ if (wallet.isWalletConnected && debouncedWhitelistContractState.length > 0) {
+ const client = await wallet.getCosmWasmClient()
const data = await toast.promise(
client.queryContractRaw(
debouncedWhitelistContractState,
@@ -217,7 +217,8 @@ const WhitelistExecutePage: NextPage = () => {
setWhitelistType('standard')
console.log('Unable to retrieve contract type. Defaulting to "standard".')
})
- }, [debouncedWhitelistContractState, wallet.client])
+ // eslint-disable-next-line react-hooks/exhaustive-deps
+ }, [debouncedWhitelistContractState, wallet.isWalletConnected])
return (
diff --git a/pages/contracts/whitelist/instantiate.tsx b/pages/contracts/whitelist/instantiate.tsx
index c8cc145..316afd2 100644
--- a/pages/contracts/whitelist/instantiate.tsx
+++ b/pages/contracts/whitelist/instantiate.tsx
@@ -22,7 +22,6 @@ import type { TokenInfo } from 'config/token'
import { stars, tokensList } from 'config/token'
import { useContracts } from 'contexts/contracts'
import { useGlobalSettings } from 'contexts/globalSettings'
-import { useWallet } from 'contexts/wallet'
import type { InstantiateResponse } from 'contracts/sg721'
import type { NextPage } from 'next'
import { NextSeo } from 'next-seo'
@@ -33,6 +32,7 @@ import { useMutation } from 'react-query'
import { isValidAddress } from 'utils/isValidAddress'
import { withMetadata } from 'utils/layout'
import { links } from 'utils/links'
+import { useWallet } from 'utils/wallet'
import { WHITELIST_CODE_ID, WHITELIST_FLEX_CODE_ID } from '../../../utils/constants'
diff --git a/pages/contracts/whitelist/query.tsx b/pages/contracts/whitelist/query.tsx
index 2555b9f..b4bf9b0 100644
--- a/pages/contracts/whitelist/query.tsx
+++ b/pages/contracts/whitelist/query.tsx
@@ -8,7 +8,6 @@ import { JsonPreview } from 'components/JsonPreview'
import { LinkTabs } from 'components/LinkTabs'
import { whitelistLinkTabs } from 'components/LinkTabs.data'
import { useContracts } from 'contexts/contracts'
-import { useWallet } from 'contexts/wallet'
import type { QueryType } from 'contracts/whitelist/messages/query'
import { dispatchQuery, QUERY_LIST } from 'contracts/whitelist/messages/query'
import type { NextPage } from 'next'
@@ -20,6 +19,7 @@ import { useQuery } from 'react-query'
import { withMetadata } from 'utils/layout'
import { links } from 'utils/links'
import { resolveAddress } from 'utils/resolveAddress'
+import { useWallet } from 'utils/wallet'
const WhitelistQueryPage: NextPage = () => {
const { whitelist: contract } = useContracts()
@@ -46,7 +46,7 @@ const WhitelistQueryPage: NextPage = () => {
const addressVisible = type === 'has_member'
const { data: response } = useQuery(
- [contractAddress, type, contract, wallet, address] as const,
+ [contractAddress, type, contract, wallet.address, address] as const,
async ({ queryKey }) => {
const [_contractAddress, _type, _contract, _wallet, _address] = queryKey
const messages = contract?.use(contractAddress)
@@ -65,7 +65,7 @@ const WhitelistQueryPage: NextPage = () => {
onError: (error: any) => {
toast.error(error.message, { style: { maxWidth: 'none' } })
},
- enabled: Boolean(contractAddress && contract && wallet),
+ enabled: Boolean(contractAddress && contract && wallet.isWalletConnected),
},
)
diff --git a/pages/revoke.tsx b/pages/revoke.tsx
index 0fd5301..860c189 100644
--- a/pages/revoke.tsx
+++ b/pages/revoke.tsx
@@ -4,17 +4,16 @@ import { coins } from '@cosmjs/proto-signing'
import { ContractPageHeader } from 'components/ContractPageHeader'
import { TextInput } from 'components/forms/FormInput'
import { useInputState } from 'components/forms/FormInput.hooks'
-import { useWallet } from 'contexts/wallet'
import type { NextPage } from 'next'
import { NextSeo } from 'next-seo'
import { useState } from 'react'
import toast from 'react-hot-toast'
import { withMetadata } from 'utils/layout'
import { links } from 'utils/links'
+import { useWallet } from 'utils/wallet'
const RevokeAuthorization: NextPage = () => {
const wallet = useWallet()
- const client = wallet.getClient()
const [transactionHash, setTransactionHash] = useState(undefined)
@@ -39,9 +38,11 @@ const RevokeAuthorization: NextPage = () => {
const revokeAuthorization = async (granteeAddress: string, msg: string) => {
console.log('Wallet Address: ', wallet.address)
try {
- await wallet.connect()
- const result = await client.signAndBroadcast(
- wallet.address,
+ if (!wallet.isWalletConnected) throw new Error('Wallet not connected.')
+ const result = await (
+ await wallet.getSigningCosmWasmClient()
+ ).signAndBroadcast(
+ wallet.address || '',
[
{
typeUrl: '/cosmos.authz.v1beta1.MsgRevoke',
diff --git a/services/keplr.ts b/services/keplr.ts
deleted file mode 100644
index bbb62c9..0000000
--- a/services/keplr.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-import { useWallet } from 'contexts/wallet'
-
-/** @deprecated replace with {@link useWallet} */
-export const useKeplr = useWallet
diff --git a/utils/getSignatureVerificationData.ts b/utils/getSignatureVerificationData.ts
deleted file mode 100644
index e00d6fe..0000000
--- a/utils/getSignatureVerificationData.ts
+++ /dev/null
@@ -1,21 +0,0 @@
-import { isOfflineDirectSigner } from '@cosmjs/proto-signing'
-import { getConfig } from 'config'
-import type { WalletContextType } from 'contexts/wallet'
-import type { TxRaw } from 'cosmjs-types/cosmos/tx/v1beta1/tx'
-
-import { NETWORK } from './constants'
-
-export const getSignatureVerificationData = async (wallet: WalletContextType, signedData: TxRaw) => {
- const client = wallet.getClient()
- const account = await client.getAccount(wallet.address)
- return {
- address: wallet.address,
- chainId: getConfig(NETWORK).chainId,
- signature: Buffer.from(signedData.signatures[0]),
- bodyBytes: Buffer.from(signedData.bodyBytes),
- authInfoBytes: Buffer.from(signedData.authInfoBytes),
- accountNumber: wallet.accountNumber,
- sequence: account ? account.sequence - 1 : 0, // Minus 1 because we query after making transaction
- isDirectSigner: isOfflineDirectSigner(wallet.getSigner()),
- }
-}
diff --git a/utils/isValidFile.ts b/utils/isValidFile.ts
index b12aee7..d117ef5 100644
--- a/utils/isValidFile.ts
+++ b/utils/isValidFile.ts
@@ -11,13 +11,11 @@ export const checkFiles = (images: string[], metadata: string[]) => {
}
// Extract fileName from path
- const fileName = path.match(
- /([a-zA-Z0-9\s_\\.\-:]+)(.png|.jpg|.gif|.json)?$/i
- )![1]
+ const fileName = /([a-zA-Z0-9\s_\\.\-:]+)(.png|.jpg|.gif|.json)?$/i.exec(path)![1]
// Check that file name is an Integer
if (isNaN(parseInt(fileName, 10))) {
- throw Error('Filenames must be numbers. Invalid fileName: ' + fileName)
+ throw Error(`Filenames must be numbers. Invalid fileName: ${fileName}`)
}
return parseInt(fileName, 10)
}
diff --git a/utils/resolveAddress.ts b/utils/resolveAddress.ts
index 4608c13..ecc306a 100644
--- a/utils/resolveAddress.ts
+++ b/utils/resolveAddress.ts
@@ -1,15 +1,17 @@
import { toUtf8 } from '@cosmjs/encoding'
+import type { ChainContext } from '@cosmos-kit/core'
import toast from 'react-hot-toast'
-import type { KeplrWalletStore } from '../contexts/wallet'
import { SG721_NAME_ADDRESS } from './constants'
import { isValidAddress } from './isValidAddress'
-export const resolveAddress = async (name: string, wallet: KeplrWalletStore): Promise => {
+export const resolveAddress = async (name: string, wallet: ChainContext): Promise => {
if (!name.trim().endsWith('.stars')) return name.trim()
- if (wallet.client) {
- const tokenUri = await wallet.client
+ if (wallet.isWalletConnected) {
+ const tokenUri = await (
+ await wallet.getCosmWasmClient()
+ )
.queryContractRaw(
SG721_NAME_ADDRESS,
toUtf8(
diff --git a/utils/sort.ts b/utils/sort.ts
index a9d416a..eca37d7 100644
--- a/utils/sort.ts
+++ b/utils/sort.ts
@@ -1,8 +1,8 @@
// @ts-nocheck
// https://stackoverflow.com/questions/15478954/sort-array-elements-string-with-numbers-natural-sort/15479354#15479354
export function naturalCompare(a: string, b: string) {
- var ax = []
- var bx = []
+ const ax = []
+ const bx = []
a.replace(/(\d+)|(\D+)/g, function (_, $1, $2) {
ax.push([$1 || Infinity, $2 || ''])
})
@@ -11,9 +11,9 @@ export function naturalCompare(a: string, b: string) {
})
while (ax.length && bx.length) {
- var an = ax.shift()
- var bn = bx.shift()
- var nn = an[0] - bn[0] || an[1].localeCompare(bn[1])
+ const an = ax.shift()
+ const bn = bx.shift()
+ const nn = an[0] - bn[0] || an[1].localeCompare(bn[1])
if (nn) return nn
}
diff --git a/utils/wallet.ts b/utils/wallet.ts
new file mode 100644
index 0000000..811c8ad
--- /dev/null
+++ b/utils/wallet.ts
@@ -0,0 +1,18 @@
+import { useChain as useCosmosKitChain } from '@cosmos-kit/react'
+import { chains } from 'chain-registry'
+import { getConfig } from 'config'
+
+import { NETWORK } from './constants'
+
+/**
+ * Hook to retrieve the wallet for the current chain.
+ */
+export const useWallet = () => {
+ const { chainId } = getConfig(NETWORK)
+ const chain = chains.find((c) => c.chain_id === chainId)
+ if (!chain) {
+ throw new Error('Chain not found')
+ }
+
+ return useCosmosKitChain(chain.chain_name)
+}
diff --git a/yarn.lock b/yarn.lock
index ff7e348..7032925 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1897,6 +1897,13 @@
dependencies:
regenerator-runtime "^0.13.4"
+"@babel/runtime@^7.21.0":
+ version "7.23.2"
+ resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.23.2.tgz#062b0ac103261d68a966c4c7baf2ae3e62ec3885"
+ integrity sha512-mM8eg4yl5D6i3lu2QKPuPH4FArvJ8KhTofbE7jwMUv9KX5mBvwPAqnV3MlyBNqdp9RyRKP6Yck8TrfYrPvX3bg==
+ dependencies:
+ regenerator-runtime "^0.14.0"
+
"@babel/template@^7.16.7":
version "7.16.7"
resolved "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz"
@@ -1954,6 +1961,24 @@
"@babel/helper-validator-identifier" "^7.16.7"
to-fast-properties "^2.0.0"
+"@chain-registry/keplr@1.25.0":
+ version "1.25.0"
+ resolved "https://registry.yarnpkg.com/@chain-registry/keplr/-/keplr-1.25.0.tgz#581a10760951c1d1185c6874199df08283a21d46"
+ integrity sha512-mEr5HypYEaQnYcuGp3PBTqo67WV0MQyBP2dOtl+ab2fkyB5PYa01D5B2Yu5V6V7eXLmKDvvvfiRO23NWQzFHxg==
+ dependencies:
+ "@babel/runtime" "^7.21.0"
+ "@chain-registry/types" "^0.17.0"
+ "@keplr-wallet/cosmos" "0.12.28"
+ "@keplr-wallet/crypto" "0.12.28"
+ semver "^7.5.0"
+
+"@chain-registry/types@0.17.0", "@chain-registry/types@^0.17.0":
+ version "0.17.0"
+ resolved "https://registry.yarnpkg.com/@chain-registry/types/-/types-0.17.0.tgz#bbe9176a6d30a491259fab1fcdcee2b7edf6141f"
+ integrity sha512-lavACU4oDxioUy8lZOFZN0Vrr2qR+Dg2yEh/mkrPfOldcioavREXJou0elDyyXwq4pGLC5YQ+IISCtQ4Du0bdw==
+ dependencies:
+ "@babel/runtime" "^7.21.0"
+
"@confio/ics23@^0.6.8":
version "0.6.8"
resolved "https://registry.npmjs.org/@confio/ics23/-/ics23-0.6.8.tgz"
@@ -2003,24 +2028,6 @@
elliptic "^6.5.3"
libsodium-wrappers "^0.7.6"
-"@cosmjs/crypto@^0.24.1":
- version "0.24.1"
- resolved "https://registry.npmjs.org/@cosmjs/crypto/-/crypto-0.24.1.tgz"
- integrity sha512-GPhaWmQO06mXldKj/b+oKF5o3jMNfRKpAw+Q8XQhrD7ItinVPDMu8Xgl6frUXWTUdgpYwqpvqOcpm85QUsYV0Q==
- dependencies:
- "@cosmjs/encoding" "^0.24.1"
- "@cosmjs/math" "^0.24.1"
- "@cosmjs/utils" "^0.24.1"
- bip39 "^3.0.2"
- bn.js "^4.11.8"
- elliptic "^6.5.3"
- js-sha3 "^0.8.0"
- libsodium-wrappers "^0.7.6"
- pbkdf2 "^3.1.1"
- ripemd160 "^2.0.2"
- sha.js "^2.4.11"
- unorm "^1.5.0"
-
"@cosmjs/encoding@0.28.4", "@cosmjs/encoding@^0":
version "0.28.4"
resolved "https://registry.npmjs.org/@cosmjs/encoding/-/encoding-0.28.4.tgz"
@@ -2030,24 +2037,6 @@
bech32 "^1.1.4"
readonly-date "^1.0.0"
-"@cosmjs/encoding@^0.20.0":
- version "0.20.1"
- resolved "https://registry.npmjs.org/@cosmjs/encoding/-/encoding-0.20.1.tgz"
- integrity sha512-aBp153iq2LD4GwDGwodDWZk/eyAUZ8J8bbiqZ1uK8rrylzm9Rdw84aa6JxykezJe+uBPtoI4lx9eH7VQXCGDXw==
- dependencies:
- base64-js "^1.3.0"
- bech32 "^1.1.4"
- readonly-date "^1.0.0"
-
-"@cosmjs/encoding@^0.24.1":
- version "0.24.1"
- resolved "https://registry.npmjs.org/@cosmjs/encoding/-/encoding-0.24.1.tgz"
- integrity sha512-PMr+gaXAuM0XgjeXwB1zdX1QI0t+PgVhbmjgI/RSgswDzdExNH97qUopecL0/HG3p64vhIT/6ZjXYYTljZL7WA==
- dependencies:
- base64-js "^1.3.0"
- bech32 "^1.1.4"
- readonly-date "^1.0.0"
-
"@cosmjs/json-rpc@0.28.4":
version "0.28.4"
resolved "https://registry.npmjs.org/@cosmjs/json-rpc/-/json-rpc-0.28.4.tgz"
@@ -2056,18 +2045,6 @@
"@cosmjs/stream" "0.28.4"
xstream "^11.14.0"
-"@cosmjs/launchpad@^0.24.0-alpha.25", "@cosmjs/launchpad@^0.24.1":
- version "0.24.1"
- resolved "https://registry.npmjs.org/@cosmjs/launchpad/-/launchpad-0.24.1.tgz"
- integrity sha512-syqVGKRH6z1vw4DdAJOSu4OgUXJdkXQozqvDde0cXYwnvhb7EXGSg5CTtp+2GqTBJuNVfMZ2DSvrC2Ig8cWBQQ==
- dependencies:
- "@cosmjs/crypto" "^0.24.1"
- "@cosmjs/encoding" "^0.24.1"
- "@cosmjs/math" "^0.24.1"
- "@cosmjs/utils" "^0.24.1"
- axios "^0.21.1"
- fast-deep-equal "^3.1.3"
-
"@cosmjs/math@0.28.4", "@cosmjs/math@^0":
version "0.28.4"
resolved "https://registry.npmjs.org/@cosmjs/math/-/math-0.28.4.tgz"
@@ -2075,20 +2052,6 @@
dependencies:
bn.js "^5.2.0"
-"@cosmjs/math@^0.20.0":
- version "0.20.1"
- resolved "https://registry.npmjs.org/@cosmjs/math/-/math-0.20.1.tgz"
- integrity sha512-xt7BmpSw2OVGM2+JhlJvKv9OJs9+3DqgVL6+byUDC355CSISrZhFjJg9GFko1EFssDXz5YgvBZR5FkifC0xazw==
- dependencies:
- bn.js "^4.11.8"
-
-"@cosmjs/math@^0.24.1":
- version "0.24.1"
- resolved "https://registry.npmjs.org/@cosmjs/math/-/math-0.24.1.tgz"
- integrity sha512-eBQk8twgzmpHFCVkoNjTZhsZwWRbR+JXt0FhjXJoD85SBm4K8b2OnOyTg68uPHVKOJjLRwzyRVYgMrg5TBVgwQ==
- dependencies:
- bn.js "^4.11.8"
-
"@cosmjs/proto-signing@0.28.4", "@cosmjs/proto-signing@^0":
version "0.28.4"
resolved "https://registry.npmjs.org/@cosmjs/proto-signing/-/proto-signing-0.28.4.tgz"
@@ -2103,15 +2066,6 @@
long "^4.0.0"
protobufjs "~6.10.2"
-"@cosmjs/proto-signing@^0.24.0-alpha.25":
- version "0.24.1"
- resolved "https://registry.npmjs.org/@cosmjs/proto-signing/-/proto-signing-0.24.1.tgz"
- integrity sha512-/rnyNx+FlG6b6O+igsb42eMN1/RXY+pTrNnAE8/YZaRloP9A6MXiTMO5JdYSTcjaD0mEVhejiy96bcyflKYXBg==
- dependencies:
- "@cosmjs/launchpad" "^0.24.1"
- long "^4.0.0"
- protobufjs "~6.10.2"
-
"@cosmjs/socket@0.28.4":
version "0.28.4"
resolved "https://registry.npmjs.org/@cosmjs/socket/-/socket-0.28.4.tgz"
@@ -2168,15 +2122,76 @@
resolved "https://registry.npmjs.org/@cosmjs/utils/-/utils-0.28.4.tgz"
integrity sha512-lb3TU6833arPoPZF8HTeG9V418CpurvqH5Aa/ls0I0wYdPDEMO6622+PQNQhQ8Vw8Az2MXoSyc8jsqrgawT84Q==
-"@cosmjs/utils@^0.20.0":
- version "0.20.1"
- resolved "https://registry.npmjs.org/@cosmjs/utils/-/utils-0.20.1.tgz"
- integrity sha512-xl9YnIrAAaBd6nFffwFbyrnKjqjD9zKGP8OBKxzyglxamHfqAS+PcJPEiaEpt+oUt7HAIOyhL3KK75Dh52hGvA==
+"@cosmos-kit/core@^2.7.0":
+ version "2.7.0"
+ resolved "https://registry.yarnpkg.com/@cosmos-kit/core/-/core-2.7.0.tgz#735ce434a07de2f8881bc6a0375193261486740d"
+ integrity sha512-9BLe9D3To3nAGSffCXcvwhTzzPW1E3gih3c5yNdfYkl9QIymbPqNqfbLv4tx8nXHYprXighQWLSP5M09MQty6Q==
+ dependencies:
+ "@chain-registry/types" "0.17.0"
+ "@walletconnect/types" "2.7.2"
+ bowser "2.11.0"
+ events "3.3.0"
+ uuid "^9.0.1"
-"@cosmjs/utils@^0.24.1":
- version "0.24.1"
- resolved "https://registry.npmjs.org/@cosmjs/utils/-/utils-0.24.1.tgz"
- integrity sha512-VA3WFx1lMFb7esp9BqHWkDgMvHoA3D9w+uDRvWhVRpUpDc7RYHxMbWExASjz+gNblTCg556WJGzF64tXnf9tdQ==
+"@cosmos-kit/keplr-extension@^2.5.0":
+ version "2.5.0"
+ resolved "https://registry.yarnpkg.com/@cosmos-kit/keplr-extension/-/keplr-extension-2.5.0.tgz#1b1f0a1bde3e1ba993949125cc4cf1985723d6ac"
+ integrity sha512-RJFCWJ0euy3lckHjPQhIVczAm5+1X4/ASRr9kAhDkExb+oRE4RXAzK/FpOLC4Lkul0bvaaoKEB9bErukMtN7cA==
+ dependencies:
+ "@chain-registry/keplr" "1.25.0"
+ "@cosmos-kit/core" "^2.7.0"
+
+"@cosmos-kit/keplr-mobile@^2.4.0":
+ version "2.4.0"
+ resolved "https://registry.yarnpkg.com/@cosmos-kit/keplr-mobile/-/keplr-mobile-2.4.0.tgz#53168c103646a964156f7fc47fc489be75b985d3"
+ integrity sha512-wGgCQXnii1/8tfLNy0MqgrXpIFZvEJjAyj3lsbHqWNBcW1SOXqzclWQj4aVRRbjqdOSvJQiugfYr4UT0WffZfg==
+ dependencies:
+ "@chain-registry/keplr" "1.25.0"
+ "@cosmos-kit/core" "^2.7.0"
+ "@cosmos-kit/walletconnect" "^2.4.0"
+
+"@cosmos-kit/keplr@^2.4.0":
+ version "2.4.0"
+ resolved "https://registry.yarnpkg.com/@cosmos-kit/keplr/-/keplr-2.4.0.tgz#bf013fa9544b00f74aa9dd2f4008e8d44cc23c12"
+ integrity sha512-RTNLipUUZGZzzC1I8ZA3BJSfxYQqCMY6r/NcJjLEgtJYu2u7f+kobXWhzy23/IajzoayM+yfaIqRDVyJSF4VCQ==
+ dependencies:
+ "@cosmos-kit/keplr-extension" "^2.5.0"
+ "@cosmos-kit/keplr-mobile" "^2.4.0"
+
+"@cosmos-kit/react-lite@^2.5.0":
+ version "2.5.0"
+ resolved "https://registry.yarnpkg.com/@cosmos-kit/react-lite/-/react-lite-2.5.0.tgz#5f3aaeb3489ec679367b33b80a4b8bb2ba255456"
+ integrity sha512-xXdUCemGfhVwsluk9bU3jUU2MEzlR2VzGvycvbmmf3270QUeJH2CNapM5RDzIp0H0THvgT3KPkvwW4DGZ4dsgA==
+ dependencies:
+ "@chain-registry/types" "0.17.0"
+ "@cosmos-kit/core" "^2.7.0"
+
+"@cosmos-kit/react@^2.9.0":
+ version "2.9.0"
+ resolved "https://registry.yarnpkg.com/@cosmos-kit/react/-/react-2.9.0.tgz#1a8e99921dd8bc2d62dba14e30f27f445a7e7504"
+ integrity sha512-e7TyTao1voH4mtzF3aJ557Q5uK0VxCy3x7Mr/Ll+RMNir23ARurncjhQf/MKRETlZa7Qnl9QMIGUD+uUOE9dpQ==
+ dependencies:
+ "@chain-registry/types" "0.17.0"
+ "@cosmos-kit/core" "^2.7.0"
+ "@cosmos-kit/react-lite" "^2.5.0"
+ "@interchain-ui/react" "^1.11.0"
+ "@react-icons/all-files" "^4.1.0"
+
+"@cosmos-kit/walletconnect@^2.4.0":
+ version "2.4.0"
+ resolved "https://registry.yarnpkg.com/@cosmos-kit/walletconnect/-/walletconnect-2.4.0.tgz#cea7f75210e6e4594167f8f380f7d5d6f40ca91f"
+ integrity sha512-4NGHUrSzQZ+JrrV18sr6VNzyii/doomHLPNJfSx6KZlTMaJXXIph3fwiUms8X4YIQ1OPjCHTkkRaeluZzI0G3w==
+ dependencies:
+ "@cosmos-kit/core" "^2.7.0"
+ "@walletconnect/sign-client" "^2.9.0"
+ "@walletconnect/types" "^2.9.0"
+ "@walletconnect/utils" "^2.9.0"
+ events "3.3.0"
+
+"@emotion/hash@^0.9.0":
+ version "0.9.1"
+ resolved "https://registry.yarnpkg.com/@emotion/hash/-/hash-0.9.1.tgz#4ffb0055f7ef676ebc3a5a91fb621393294e2f43"
+ integrity sha512-gJB6HLm5rYwSLI6PQa+X1t5CFGrv1J1TWG+sOyMCeKz2ojaj6Fnl/rZEspogG+cvqbt4AE/2eIyD2QfLKTBNlQ==
"@eslint/eslintrc@^1.2.2":
version "1.2.2"
@@ -2193,6 +2208,95 @@
minimatch "^3.0.4"
strip-json-comments "^3.1.1"
+"@ethersproject/address@^5.6.0":
+ version "5.7.0"
+ resolved "https://registry.yarnpkg.com/@ethersproject/address/-/address-5.7.0.tgz#19b56c4d74a3b0a46bfdbb6cfcc0a153fc697f37"
+ integrity sha512-9wYhYt7aghVGo758POM5nqcOMaE168Q6aRLJZwUmiqSrAungkG74gSSeKEIR7ukixesdRZGPgVqme6vmxs1fkA==
+ dependencies:
+ "@ethersproject/bignumber" "^5.7.0"
+ "@ethersproject/bytes" "^5.7.0"
+ "@ethersproject/keccak256" "^5.7.0"
+ "@ethersproject/logger" "^5.7.0"
+ "@ethersproject/rlp" "^5.7.0"
+
+"@ethersproject/bignumber@^5.7.0":
+ version "5.7.0"
+ resolved "https://registry.yarnpkg.com/@ethersproject/bignumber/-/bignumber-5.7.0.tgz#e2f03837f268ba655ffba03a57853e18a18dc9c2"
+ integrity sha512-n1CAdIHRWjSucQO3MC1zPSVgV/6dy/fjL9pMrPP9peL+QxEg9wOsVqwD4+818B6LUEtaXzVHQiuivzRoxPxUGw==
+ dependencies:
+ "@ethersproject/bytes" "^5.7.0"
+ "@ethersproject/logger" "^5.7.0"
+ bn.js "^5.2.1"
+
+"@ethersproject/bytes@^5.7.0":
+ version "5.7.0"
+ resolved "https://registry.yarnpkg.com/@ethersproject/bytes/-/bytes-5.7.0.tgz#a00f6ea8d7e7534d6d87f47188af1148d71f155d"
+ integrity sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A==
+ dependencies:
+ "@ethersproject/logger" "^5.7.0"
+
+"@ethersproject/keccak256@^5.5.0", "@ethersproject/keccak256@^5.7.0":
+ version "5.7.0"
+ resolved "https://registry.yarnpkg.com/@ethersproject/keccak256/-/keccak256-5.7.0.tgz#3186350c6e1cd6aba7940384ec7d6d9db01f335a"
+ integrity sha512-2UcPboeL/iW+pSg6vZ6ydF8tCnv3Iu/8tUmLLzWWGzxWKFFqOBQFLo6uLUv6BDrLgCDfN28RJ/wtByx+jZ4KBg==
+ dependencies:
+ "@ethersproject/bytes" "^5.7.0"
+ js-sha3 "0.8.0"
+
+"@ethersproject/logger@^5.7.0":
+ version "5.7.0"
+ resolved "https://registry.yarnpkg.com/@ethersproject/logger/-/logger-5.7.0.tgz#6ce9ae168e74fecf287be17062b590852c311892"
+ integrity sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig==
+
+"@ethersproject/rlp@^5.7.0":
+ version "5.7.0"
+ resolved "https://registry.yarnpkg.com/@ethersproject/rlp/-/rlp-5.7.0.tgz#de39e4d5918b9d74d46de93af80b7685a9c21304"
+ integrity sha512-rBxzX2vK8mVF7b0Tol44t5Tb8gomOHkj5guL+HhzQ1yBh/ydjGnpw6at+X6Iw0Kp3OzzzkcKp8N9r0W4kYSs9w==
+ dependencies:
+ "@ethersproject/bytes" "^5.7.0"
+ "@ethersproject/logger" "^5.7.0"
+
+"@fastify/deepmerge@^1.3.0":
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/@fastify/deepmerge/-/deepmerge-1.3.0.tgz#8116858108f0c7d9fd460d05a7d637a13fe3239a"
+ integrity sha512-J8TOSBq3SoZbDhM9+R/u77hP93gz/rajSA+K2kGyijPpORPWUXHUpTaleoj+92As0S9uPRP7Oi8IqMf0u+ro6A==
+
+"@floating-ui/core@^1.4.2":
+ version "1.5.0"
+ resolved "https://registry.yarnpkg.com/@floating-ui/core/-/core-1.5.0.tgz#5c05c60d5ae2d05101c3021c1a2a350ddc027f8c"
+ integrity sha512-kK1h4m36DQ0UHGj5Ah4db7R0rHemTqqO0QLvUqi1/mUUp3LuAWbWxdxSIf/XsnH9VS6rRVPLJCncjRzUvyCLXg==
+ dependencies:
+ "@floating-ui/utils" "^0.1.3"
+
+"@floating-ui/dom@^1.5.1", "@floating-ui/dom@^1.5.2":
+ version "1.5.3"
+ resolved "https://registry.yarnpkg.com/@floating-ui/dom/-/dom-1.5.3.tgz#54e50efcb432c06c23cd33de2b575102005436fa"
+ integrity sha512-ClAbQnEqJAKCJOEbbLo5IUlZHkNszqhuxS4fHAVxRPXPya6Ysf2G8KypnYcOTpx6I8xcgF9bbHb6g/2KpbV8qA==
+ dependencies:
+ "@floating-ui/core" "^1.4.2"
+ "@floating-ui/utils" "^0.1.3"
+
+"@floating-ui/react-dom@^2.0.2":
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/@floating-ui/react-dom/-/react-dom-2.0.2.tgz#fab244d64db08e6bed7be4b5fcce65315ef44d20"
+ integrity sha512-5qhlDvjaLmAst/rKb3VdlCinwTF4EYMiVxuuc/HVUjs46W0zgtbMmAZ1UTsDrRTxRmUEzl92mOtWbeeXL26lSQ==
+ dependencies:
+ "@floating-ui/dom" "^1.5.1"
+
+"@floating-ui/react@^0.25.4":
+ version "0.25.4"
+ resolved "https://registry.yarnpkg.com/@floating-ui/react/-/react-0.25.4.tgz#82507e14460aee70f435ad2fd717ea182b6d5c61"
+ integrity sha512-lWRQ/UiTvSIBxohn0/2HFHEmnmOVRjl7j6XcRJuLH0ls6f/9AyHMWVzkAJFuwx0n9gaEeCmg9VccCSCJzbEJig==
+ dependencies:
+ "@floating-ui/react-dom" "^2.0.2"
+ "@floating-ui/utils" "^0.1.1"
+ tabbable "^6.0.1"
+
+"@floating-ui/utils@^0.1.1", "@floating-ui/utils@^0.1.3":
+ version "0.1.6"
+ resolved "https://registry.yarnpkg.com/@floating-ui/utils/-/utils-0.1.6.tgz#22958c042e10b67463997bd6ea7115fe28cbcaf9"
+ integrity sha512-OfX7E2oUDYxtBvsuS4e/jSn4Q9Qb6DzgeYtsAdkPZ47znpoNsMgZw0+tVijiv3uGNR6dgNlty6r9rzIzHjtd/A==
+
"@fontsource/jetbrains-mono@^4":
version "4.5.5"
resolved "https://registry.npmjs.org/@fontsource/jetbrains-mono/-/jetbrains-mono-4.5.5.tgz"
@@ -2203,6 +2307,11 @@
resolved "https://registry.npmjs.org/@fontsource/roboto/-/roboto-4.5.5.tgz"
integrity sha512-Pe1p+gAO6K0aLxBXlLoJRHVx352tVc/v/7DOnvM3t+FYXb+KUga9aCD1NpnDfd0kKnWXqrZyAXguyyFWDDuphw==
+"@formkit/auto-animate@1.0.0-beta.6":
+ version "1.0.0-beta.6"
+ resolved "https://registry.yarnpkg.com/@formkit/auto-animate/-/auto-animate-1.0.0-beta.6.tgz#ed7f8bc47d774a7764756646e9e3432e8be51cb3"
+ integrity sha512-PVDhLAlr+B4Xb7e+1wozBUWmXa6BFU8xUPR/W/E+TsQhPS1qkAdAsJ25keEnFrcePSnXHrOsh3tiFbEToOzV9w==
+
"@headlessui/react@^1":
version "1.6.0"
resolved "https://registry.npmjs.org/@headlessui/react/-/react-1.6.0.tgz"
@@ -2222,47 +2331,31 @@
resolved "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz"
integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==
-"@iov/crypto@2.1.0":
- version "2.1.0"
- resolved "https://registry.npmjs.org/@iov/crypto/-/crypto-2.1.0.tgz"
- integrity sha512-jnb4XuK50admolm7fBxOcxfAW2TO+wYrZlhDWiMETItY/Y5gNNa1zaDSO2wNIjjfGng+8nQ1yqnNhqy7busV2Q==
+"@interchain-ui/react@^1.11.0":
+ version "1.11.3"
+ resolved "https://registry.yarnpkg.com/@interchain-ui/react/-/react-1.11.3.tgz#a5f82b2eb0b9a76a427ed371ea1eafd7d3a002b5"
+ integrity sha512-SgaRNbXERAfk3uekfrjDwsrXkd87JNoiadWQRIHF4/PURo6DxtlxZskr1dTs6F5kRifgl7M2TjLmnFLwrdypXQ==
dependencies:
- "@iov/encoding" "^2.1.0"
- bip39 "^3.0.2"
- bn.js "^4.11.8"
- elliptic "^6.4.0"
- js-sha3 "^0.8.0"
- libsodium-wrappers "^0.7.6"
- pbkdf2 "^3.0.16"
- ripemd160 "^2.0.2"
- sha.js "^2.4.11"
- type-tagger "^1.0.0"
- unorm "^1.5.0"
-
-"@iov/encoding@2.1.0":
- version "2.1.0"
- resolved "https://registry.npmjs.org/@iov/encoding/-/encoding-2.1.0.tgz"
- integrity sha512-5IOdLO7Xg/uRykuiCqeMYghQ3IjWDtGxv7NTWXkgpHuna0aewx43mRpT2NPCpOZd1tpuorDtQ7/zbDNRaIIF/w==
- dependencies:
- base64-js "^1.3.0"
- bech32 "^1.1.3"
- bn.js "^4.11.8"
- readonly-date "^1.0.0"
-
-"@iov/encoding@^2.1.0":
- version "2.5.0"
- resolved "https://registry.npmjs.org/@iov/encoding/-/encoding-2.5.0.tgz"
- integrity sha512-HGHLlQEvD23rFjW5PQrxD2B/6LiBHVSxqX6gjOz9KfcmIMIftRA0qROrTITfjjjUr/yZZEeNk4qjuBls9TaYcA==
- dependencies:
- "@cosmjs/encoding" "^0.20.0"
- "@cosmjs/math" "^0.20.0"
- "@cosmjs/utils" "^0.20.0"
- readonly-date "^1.0.0"
-
-"@iov/utils@2.0.2":
- version "2.0.2"
- resolved "https://registry.npmjs.org/@iov/utils/-/utils-2.0.2.tgz"
- integrity sha512-4D8MEvTcFc/DVy5q25vHxRItmgJyeX85dixMH+MxdKr+yy71h3sYk+sVBEIn70uqGP7VqAJkGOPNFs08/XYELw==
+ "@fastify/deepmerge" "^1.3.0"
+ "@floating-ui/dom" "^1.5.2"
+ "@floating-ui/react" "^0.25.4"
+ "@formkit/auto-animate" "1.0.0-beta.6"
+ "@vanilla-extract/css" "^1.12.0"
+ "@vanilla-extract/css-utils" "^0.1.3"
+ "@vanilla-extract/dynamic" "^2.0.3"
+ "@vanilla-extract/recipes" "^0.4.0"
+ "@zag-js/dialog" "^0.15.0"
+ "@zag-js/number-input" "^0.15.0"
+ "@zag-js/react" "^0.15.0"
+ animejs "^3.2.1"
+ bignumber.js "^9.1.1"
+ clsx "^1.2.1"
+ copy-to-clipboard "^3.3.3"
+ immer "^9.0.19"
+ lodash "^4.17.21"
+ motion "^10.16.2"
+ rainbow-sprinkles "^0.17.0"
+ zustand "^4.3.8"
"@ipld/car@^3.0.1", "@ipld/car@^3.2.3":
version "3.2.4"
@@ -2332,50 +2425,74 @@
resolved "https://registry.npmjs.org/@jsdevtools/ono/-/ono-7.1.3.tgz"
integrity sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==
-"@keplr-wallet/cosmos@^0.9.16":
- version "0.9.16"
- resolved "https://registry.npmjs.org/@keplr-wallet/cosmos/-/cosmos-0.9.16.tgz"
- integrity sha512-pTbqgZdxMY/O4w37YVDTNFdfbueQUXGiYlMAVsrdtFWBQSz+s1j2UpAgtJoIoEoawYVPmlHSWXviafXr7Y7B7w==
+"@keplr-wallet/common@0.12.28":
+ version "0.12.28"
+ resolved "https://registry.yarnpkg.com/@keplr-wallet/common/-/common-0.12.28.tgz#1d5d985070aced31a34a6426c9ac4b775081acca"
+ integrity sha512-ESQorPZw8PRiUXhsrxED+E1FEWkAdc6Kwi3Az7ce204gMBQDI2j0XJtTd4uCUp+C24Em9fk0samdHzdoB4caIg==
dependencies:
- "@cosmjs/launchpad" "^0.24.0-alpha.25"
- "@keplr-wallet/crypto" "^0.9.10"
- "@keplr-wallet/types" "^0.9.12"
- "@keplr-wallet/unit" "^0.9.12"
- axios "^0.21.4"
+ "@keplr-wallet/crypto" "0.12.28"
+ "@keplr-wallet/types" "0.12.28"
+ buffer "^6.0.3"
+ delay "^4.4.0"
+ mobx "^6.1.7"
+
+"@keplr-wallet/cosmos@0.12.28":
+ version "0.12.28"
+ resolved "https://registry.yarnpkg.com/@keplr-wallet/cosmos/-/cosmos-0.12.28.tgz#d56e73468256e7276a66bb41f145449dbf11efa1"
+ integrity sha512-IuqmSBgKgIeWBA0XGQKKs28IXFeFMCrfadCbtiZccNc7qnNr5Y/Cyyk01BPC8Dd1ZyEyAByoICgrxvtGN0GGvA==
+ dependencies:
+ "@ethersproject/address" "^5.6.0"
+ "@keplr-wallet/common" "0.12.28"
+ "@keplr-wallet/crypto" "0.12.28"
+ "@keplr-wallet/proto-types" "0.12.28"
+ "@keplr-wallet/simple-fetch" "0.12.28"
+ "@keplr-wallet/types" "0.12.28"
+ "@keplr-wallet/unit" "0.12.28"
bech32 "^1.1.4"
buffer "^6.0.3"
long "^4.0.0"
- protobufjs "^6.10.2"
+ protobufjs "^6.11.2"
-"@keplr-wallet/crypto@^0.9.10":
- version "0.9.10"
- resolved "https://registry.npmjs.org/@keplr-wallet/crypto/-/crypto-0.9.10.tgz"
- integrity sha512-zjoUUL5Ky72eJBm7bd9kPNBTgQL/cFO6pbvPgVa32S8UZ6GlwsPSyiHuvq0k8z0t9X9GwdpuH0nrnlL4viU4fw==
+"@keplr-wallet/crypto@0.12.28":
+ version "0.12.28"
+ resolved "https://registry.yarnpkg.com/@keplr-wallet/crypto/-/crypto-0.12.28.tgz#28410ba1f707fa5a1506f111f6fd8baf071c394d"
+ integrity sha512-le1je+78/4213qshSMgQTYqhCCvzsL9+YfhjXg1kd/ali69MLWK8L8Z09ducHPS6C+LqQXXTNJQpbH2uiFSd5w==
dependencies:
+ "@ethersproject/keccak256" "^5.5.0"
bip32 "^2.0.6"
bip39 "^3.0.3"
+ bs58check "^2.1.2"
buffer "^6.0.3"
crypto-js "^4.0.0"
elliptic "^6.5.3"
sha.js "^2.4.11"
-"@keplr-wallet/types@^0.9.12":
- version "0.9.12"
- resolved "https://registry.npmjs.org/@keplr-wallet/types/-/types-0.9.12.tgz"
- integrity sha512-vtAczeD3+CgGExSZCnU9Wzs9Y8BpdbOii+UjIFHwCR57OXFQphbWHh2j15QFpV4CbebpDcBzIm+/4IAyLeI0Yw==
+"@keplr-wallet/proto-types@0.12.28":
+ version "0.12.28"
+ resolved "https://registry.yarnpkg.com/@keplr-wallet/proto-types/-/proto-types-0.12.28.tgz#2fb2c37749ce7db974f01d07387e966c9b99027d"
+ integrity sha512-ukti/eCTltPUP64jxtk5TjtwJogyfKPqlBIT3KGUCGzBLIPeYMsffL5w5aoHsMjINzOITjYqzXyEF8LTIK/fmw==
dependencies:
- "@cosmjs/launchpad" "^0.24.0-alpha.25"
- "@cosmjs/proto-signing" "^0.24.0-alpha.25"
- axios "^0.21.4"
long "^4.0.0"
- secretjs "^0.17.0"
+ protobufjs "^6.11.2"
-"@keplr-wallet/unit@^0.9.12":
- version "0.9.12"
- resolved "https://registry.npmjs.org/@keplr-wallet/unit/-/unit-0.9.12.tgz"
- integrity sha512-24b3lSaaOrD3/ctdz+ADZn8vhqojsV5SGGzgD8F+DklI76uw8jYmmxSNcKyUAYpVUzRzTas6nnfB+4MwHBNU/Q==
+"@keplr-wallet/simple-fetch@0.12.28":
+ version "0.12.28"
+ resolved "https://registry.yarnpkg.com/@keplr-wallet/simple-fetch/-/simple-fetch-0.12.28.tgz#44225df5b329c823076280df1ec9930a21b1373e"
+ integrity sha512-T2CiKS2B5n0ZA7CWw0CA6qIAH0XYI1siE50MP+i+V0ZniCGBeL+BMcDw64vFJUcEH+1L5X4sDAzV37fQxGwllA==
+
+"@keplr-wallet/types@0.12.28":
+ version "0.12.28"
+ resolved "https://registry.yarnpkg.com/@keplr-wallet/types/-/types-0.12.28.tgz#eac3c2c9d4560856c5c403a87e67925992a04fbf"
+ integrity sha512-EcM9d46hYDm3AO4lf4GUbTSLRySONtTmhKb7p88q56OQOgJN3MMjRacEo2p9jX9gpPe7gRIjMUalhAfUiFpZoQ==
dependencies:
- "@keplr-wallet/types" "^0.9.12"
+ long "^4.0.0"
+
+"@keplr-wallet/unit@0.12.28":
+ version "0.12.28"
+ resolved "https://registry.yarnpkg.com/@keplr-wallet/unit/-/unit-0.12.28.tgz#907c7fa0b49a729cda207fca14fc0a38871cc6c4"
+ integrity sha512-kpXigHDBJGOmhtPkv9hqsQid9zkFo7OQPeKgO2n8GUlOINIXW6kWG5LXYTi/Yg9Uiw1CQF69gFMuZCJ8IzVHlA==
+ dependencies:
+ "@keplr-wallet/types" "0.12.28"
big-integer "^1.6.48"
utility-types "^3.10.0"
@@ -2394,6 +2511,75 @@
resolved "https://registry.npmjs.org/@microsoft/tsdoc/-/tsdoc-0.13.2.tgz"
integrity sha512-WrHvO8PDL8wd8T2+zBGKrMwVL5IyzR3ryWUsl0PXgEV0QHup4mTLi0QcATefGI6Gx9Anu7vthPyyyLpY0EpiQg==
+"@motionone/animation@^10.16.3":
+ version "10.16.3"
+ resolved "https://registry.yarnpkg.com/@motionone/animation/-/animation-10.16.3.tgz#f5b71e27fd8b88b61f983adb0ed6c8e3e89281f9"
+ integrity sha512-QUGWpLbMFLhyqKlngjZhjtxM8IqiJQjLK0DF+XOF6od9nhSvlaeEpOY/UMCRVcZn/9Tr2rZO22EkuCIjYdI74g==
+ dependencies:
+ "@motionone/easing" "^10.16.3"
+ "@motionone/types" "^10.16.3"
+ "@motionone/utils" "^10.16.3"
+ tslib "^2.3.1"
+
+"@motionone/dom@^10.16.4":
+ version "10.16.4"
+ resolved "https://registry.yarnpkg.com/@motionone/dom/-/dom-10.16.4.tgz#9385716928cc2d5b3208a7dcaf504b69b47fd1ae"
+ integrity sha512-HPHlVo/030qpRj9R8fgY50KTN4Ko30moWRTA3L3imrsRBmob93cTYmodln49HYFbQm01lFF7X523OkKY0DX6UA==
+ dependencies:
+ "@motionone/animation" "^10.16.3"
+ "@motionone/generators" "^10.16.4"
+ "@motionone/types" "^10.16.3"
+ "@motionone/utils" "^10.16.3"
+ hey-listen "^1.0.8"
+ tslib "^2.3.1"
+
+"@motionone/easing@^10.16.3":
+ version "10.16.3"
+ resolved "https://registry.yarnpkg.com/@motionone/easing/-/easing-10.16.3.tgz#a62abe0ba2841861f167f286782e287eab8d7466"
+ integrity sha512-HWTMZbTmZojzwEuKT/xCdvoMPXjYSyQvuVM6jmM0yoGU6BWzsmYMeB4bn38UFf618fJCNtP9XeC/zxtKWfbr0w==
+ dependencies:
+ "@motionone/utils" "^10.16.3"
+ tslib "^2.3.1"
+
+"@motionone/generators@^10.16.4":
+ version "10.16.4"
+ resolved "https://registry.yarnpkg.com/@motionone/generators/-/generators-10.16.4.tgz#4a38708244bce733bfcebd4a26d19f4bbabd36af"
+ integrity sha512-geFZ3w0Rm0ZXXpctWsSf3REGywmLLujEjxPYpBR0j+ymYwof0xbV6S5kGqqsDKgyWKVWpUInqQYvQfL6fRbXeg==
+ dependencies:
+ "@motionone/types" "^10.16.3"
+ "@motionone/utils" "^10.16.3"
+ tslib "^2.3.1"
+
+"@motionone/svelte@^10.16.4":
+ version "10.16.4"
+ resolved "https://registry.yarnpkg.com/@motionone/svelte/-/svelte-10.16.4.tgz#5daf117cf5b2576fc6dd487c5e0500938a742470"
+ integrity sha512-zRVqk20lD1xqe+yEDZhMYgftsuHc25+9JSo+r0a0OWUJFocjSV9D/+UGhX4xgJsuwB9acPzXLr20w40VnY2PQA==
+ dependencies:
+ "@motionone/dom" "^10.16.4"
+ tslib "^2.3.1"
+
+"@motionone/types@^10.16.3":
+ version "10.16.3"
+ resolved "https://registry.yarnpkg.com/@motionone/types/-/types-10.16.3.tgz#9284ea8a52f6b32c51c54b617214f20e43ac6c59"
+ integrity sha512-W4jkEGFifDq73DlaZs3HUfamV2t1wM35zN/zX7Q79LfZ2sc6C0R1baUHZmqc/K5F3vSw3PavgQ6HyHLd/MXcWg==
+
+"@motionone/utils@^10.16.3":
+ version "10.16.3"
+ resolved "https://registry.yarnpkg.com/@motionone/utils/-/utils-10.16.3.tgz#ddf07ab6cf3000d89e3bcbdc9a8c3e1fd64f8520"
+ integrity sha512-WNWDksJIxQkaI9p9Z9z0+K27xdqISGNFy1SsWVGaiedTHq0iaT6iZujby8fT/ZnZxj1EOaxJtSfUPCFNU5CRoA==
+ dependencies:
+ "@motionone/types" "^10.16.3"
+ hey-listen "^1.0.8"
+ tslib "^2.3.1"
+
+"@motionone/vue@^10.16.4":
+ version "10.16.4"
+ resolved "https://registry.yarnpkg.com/@motionone/vue/-/vue-10.16.4.tgz#07d09e3aa5115ca0bcc0076cb9e5322775277c09"
+ integrity sha512-z10PF9JV6SbjFq+/rYabM+8CVlMokgl8RFGvieSGNTmrkQanfHn+15XBrhG3BgUfvmTeSeyShfOHpG0i9zEdcg==
+ dependencies:
+ "@motionone/dom" "^10.16.4"
+ tslib "^2.3.1"
+
"@multiformats/murmur3@^1.0.3":
version "1.1.3"
resolved "https://registry.npmjs.org/@multiformats/murmur3/-/murmur3-1.1.3.tgz"
@@ -2569,11 +2755,150 @@
resolved "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz"
integrity sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA=
+"@react-icons/all-files@^4.1.0":
+ version "4.1.0"
+ resolved "https://registry.yarnpkg.com/@react-icons/all-files/-/all-files-4.1.0.tgz#477284873a0821928224b6fc84c62d2534d6650b"
+ integrity sha512-hxBI2UOuVaI3O/BhQfhtb4kcGn9ft12RWAFVMUeNjqqhLsHvFtzIkFaptBJpFDANTKoDfdVoHTKZDlwKCACbMQ==
+
"@rushstack/eslint-patch@1.1.1":
version "1.1.1"
resolved "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.1.1.tgz"
integrity sha512-BUyKJGdDWqvWC5GEhyOiUrGNi9iJUr4CU0O2WxJL6QJhHeeA/NVBalH+FeK0r/x/W0rPymXt5s78TDS7d6lCwg==
+"@stablelib/aead@^1.0.1":
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/@stablelib/aead/-/aead-1.0.1.tgz#c4b1106df9c23d1b867eb9b276d8f42d5fc4c0c3"
+ integrity sha512-q39ik6sxGHewqtO0nP4BuSe3db5G1fEJE8ukvngS2gLkBXyy6E7pLubhbYgnkDFv6V8cWaxcE4Xn0t6LWcJkyg==
+
+"@stablelib/binary@^1.0.1":
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/@stablelib/binary/-/binary-1.0.1.tgz#c5900b94368baf00f811da5bdb1610963dfddf7f"
+ integrity sha512-ClJWvmL6UBM/wjkvv/7m5VP3GMr9t0osr4yVgLZsLCOz4hGN9gIAFEqnJ0TsSMAN+n840nf2cHZnA5/KFqHC7Q==
+ dependencies:
+ "@stablelib/int" "^1.0.1"
+
+"@stablelib/bytes@^1.0.1":
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/@stablelib/bytes/-/bytes-1.0.1.tgz#0f4aa7b03df3080b878c7dea927d01f42d6a20d8"
+ integrity sha512-Kre4Y4kdwuqL8BR2E9hV/R5sOrUj6NanZaZis0V6lX5yzqC3hBuVSDXUIBqQv/sCpmuWRiHLwqiT1pqqjuBXoQ==
+
+"@stablelib/chacha20poly1305@1.0.1":
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/@stablelib/chacha20poly1305/-/chacha20poly1305-1.0.1.tgz#de6b18e283a9cb9b7530d8767f99cde1fec4c2ee"
+ integrity sha512-MmViqnqHd1ymwjOQfghRKw2R/jMIGT3wySN7cthjXCBdO+qErNPUBnRzqNpnvIwg7JBCg3LdeCZZO4de/yEhVA==
+ dependencies:
+ "@stablelib/aead" "^1.0.1"
+ "@stablelib/binary" "^1.0.1"
+ "@stablelib/chacha" "^1.0.1"
+ "@stablelib/constant-time" "^1.0.1"
+ "@stablelib/poly1305" "^1.0.1"
+ "@stablelib/wipe" "^1.0.1"
+
+"@stablelib/chacha@^1.0.1":
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/@stablelib/chacha/-/chacha-1.0.1.tgz#deccfac95083e30600c3f92803a3a1a4fa761371"
+ integrity sha512-Pmlrswzr0pBzDofdFuVe1q7KdsHKhhU24e8gkEwnTGOmlC7PADzLVxGdn2PoNVBBabdg0l/IfLKg6sHAbTQugg==
+ dependencies:
+ "@stablelib/binary" "^1.0.1"
+ "@stablelib/wipe" "^1.0.1"
+
+"@stablelib/constant-time@^1.0.1":
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/@stablelib/constant-time/-/constant-time-1.0.1.tgz#bde361465e1cf7b9753061b77e376b0ca4c77e35"
+ integrity sha512-tNOs3uD0vSJcK6z1fvef4Y+buN7DXhzHDPqRLSXUel1UfqMB1PWNsnnAezrKfEwTLpN0cGH2p9NNjs6IqeD0eg==
+
+"@stablelib/ed25519@^1.0.2":
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/@stablelib/ed25519/-/ed25519-1.0.3.tgz#f8fdeb6f77114897c887bb6a3138d659d3f35996"
+ integrity sha512-puIMWaX9QlRsbhxfDc5i+mNPMY+0TmQEskunY1rZEBPi1acBCVQAhnsk/1Hk50DGPtVsZtAWQg4NHGlVaO9Hqg==
+ dependencies:
+ "@stablelib/random" "^1.0.2"
+ "@stablelib/sha512" "^1.0.1"
+ "@stablelib/wipe" "^1.0.1"
+
+"@stablelib/hash@^1.0.1":
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/@stablelib/hash/-/hash-1.0.1.tgz#3c944403ff2239fad8ebb9015e33e98444058bc5"
+ integrity sha512-eTPJc/stDkdtOcrNMZ6mcMK1e6yBbqRBaNW55XA1jU8w/7QdnCF0CmMmOD1m7VSkBR44PWrMHU2l6r8YEQHMgg==
+
+"@stablelib/hkdf@1.0.1":
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/@stablelib/hkdf/-/hkdf-1.0.1.tgz#b4efd47fd56fb43c6a13e8775a54b354f028d98d"
+ integrity sha512-SBEHYE16ZXlHuaW5RcGk533YlBj4grMeg5TooN80W3NpcHRtLZLLXvKyX0qcRFxf+BGDobJLnwkvgEwHIDBR6g==
+ dependencies:
+ "@stablelib/hash" "^1.0.1"
+ "@stablelib/hmac" "^1.0.1"
+ "@stablelib/wipe" "^1.0.1"
+
+"@stablelib/hmac@^1.0.1":
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/@stablelib/hmac/-/hmac-1.0.1.tgz#3d4c1b8cf194cb05d28155f0eed8a299620a07ec"
+ integrity sha512-V2APD9NSnhVpV/QMYgCVMIYKiYG6LSqw1S65wxVoirhU/51ACio6D4yDVSwMzuTJXWZoVHbDdINioBwKy5kVmA==
+ dependencies:
+ "@stablelib/constant-time" "^1.0.1"
+ "@stablelib/hash" "^1.0.1"
+ "@stablelib/wipe" "^1.0.1"
+
+"@stablelib/int@^1.0.1":
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/@stablelib/int/-/int-1.0.1.tgz#75928cc25d59d73d75ae361f02128588c15fd008"
+ integrity sha512-byr69X/sDtDiIjIV6m4roLVWnNNlRGzsvxw+agj8CIEazqWGOQp2dTYgQhtyVXV9wpO6WyXRQUzLV/JRNumT2w==
+
+"@stablelib/keyagreement@^1.0.1":
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/@stablelib/keyagreement/-/keyagreement-1.0.1.tgz#4612efb0a30989deb437cd352cee637ca41fc50f"
+ integrity sha512-VKL6xBwgJnI6l1jKrBAfn265cspaWBPAPEc62VBQrWHLqVgNRE09gQ/AnOEyKUWrrqfD+xSQ3u42gJjLDdMDQg==
+ dependencies:
+ "@stablelib/bytes" "^1.0.1"
+
+"@stablelib/poly1305@^1.0.1":
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/@stablelib/poly1305/-/poly1305-1.0.1.tgz#93bfb836c9384685d33d70080718deae4ddef1dc"
+ integrity sha512-1HlG3oTSuQDOhSnLwJRKeTRSAdFNVB/1djy2ZbS35rBSJ/PFqx9cf9qatinWghC2UbfOYD8AcrtbUQl8WoxabA==
+ dependencies:
+ "@stablelib/constant-time" "^1.0.1"
+ "@stablelib/wipe" "^1.0.1"
+
+"@stablelib/random@^1.0.1", "@stablelib/random@^1.0.2":
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/@stablelib/random/-/random-1.0.2.tgz#2dece393636489bf7e19c51229dd7900eddf742c"
+ integrity sha512-rIsE83Xpb7clHPVRlBj8qNe5L8ISQOzjghYQm/dZ7VaM2KHYwMW5adjQjrzTZCchFnNCNhkwtnOBa9HTMJCI8w==
+ dependencies:
+ "@stablelib/binary" "^1.0.1"
+ "@stablelib/wipe" "^1.0.1"
+
+"@stablelib/sha256@1.0.1":
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/@stablelib/sha256/-/sha256-1.0.1.tgz#77b6675b67f9b0ea081d2e31bda4866297a3ae4f"
+ integrity sha512-GIIH3e6KH+91FqGV42Kcj71Uefd/QEe7Dy42sBTeqppXV95ggCcxLTk39bEr+lZfJmp+ghsR07J++ORkRELsBQ==
+ dependencies:
+ "@stablelib/binary" "^1.0.1"
+ "@stablelib/hash" "^1.0.1"
+ "@stablelib/wipe" "^1.0.1"
+
+"@stablelib/sha512@^1.0.1":
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/@stablelib/sha512/-/sha512-1.0.1.tgz#6da700c901c2c0ceacbd3ae122a38ac57c72145f"
+ integrity sha512-13gl/iawHV9zvDKciLo1fQ8Bgn2Pvf7OV6amaRVKiq3pjQ3UmEpXxWiAfV8tYjUpeZroBxtyrwtdooQT/i3hzw==
+ dependencies:
+ "@stablelib/binary" "^1.0.1"
+ "@stablelib/hash" "^1.0.1"
+ "@stablelib/wipe" "^1.0.1"
+
+"@stablelib/wipe@^1.0.1":
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/@stablelib/wipe/-/wipe-1.0.1.tgz#d21401f1d59ade56a62e139462a97f104ed19a36"
+ integrity sha512-WfqfX/eXGiAd3RJe4VU2snh/ZPwtSjLG4ynQ/vYzvghTh7dHFcI1wl+nrkWG6lGhukOxOsUHfv8dUXr58D0ayg==
+
+"@stablelib/x25519@^1.0.3":
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/@stablelib/x25519/-/x25519-1.0.3.tgz#13c8174f774ea9f3e5e42213cbf9fc68a3c7b7fd"
+ integrity sha512-KnTbKmUhPhHavzobclVJQG5kuivH+qDLpe84iRqX3CLrKp881cF160JvXJ+hjn1aMyCwYOKeIZefIH/P5cJoRw==
+ dependencies:
+ "@stablelib/keyagreement" "^1.0.1"
+ "@stablelib/random" "^1.0.2"
+ "@stablelib/wipe" "^1.0.1"
+
"@stargazezone/types@^0.7.2":
version "0.7.2"
resolved "https://registry.npmjs.org/@stargazezone/types/-/types-0.7.2.tgz"
@@ -2975,6 +3300,45 @@
"@typescript-eslint/types" "5.21.0"
eslint-visitor-keys "^3.0.0"
+"@vanilla-extract/css-utils@^0.1.3":
+ version "0.1.3"
+ resolved "https://registry.yarnpkg.com/@vanilla-extract/css-utils/-/css-utils-0.1.3.tgz#cadeb6bc563547b20e9b903647d8b334d3a79ef8"
+ integrity sha512-PZAcHROlgtCUGI2y0JntdNwvPwCNyeVnkQu6KTYKdmxBbK3w72XJUmLFYapfaFfgami4I9CTLnrJTPdtmS3gpw==
+
+"@vanilla-extract/css@^1.12.0":
+ version "1.13.0"
+ resolved "https://registry.yarnpkg.com/@vanilla-extract/css/-/css-1.13.0.tgz#85f521d428f55b0e9599675033caba81194cc6c0"
+ integrity sha512-JFFBXhnJrPlGqHBabagXqo5ghXw9mtV270ycIGyLDZG8NAK5eRwAYkMowAxuzK7wZSm67GnETWYB7b0AUmyttg==
+ dependencies:
+ "@emotion/hash" "^0.9.0"
+ "@vanilla-extract/private" "^1.0.3"
+ ahocorasick "1.0.2"
+ chalk "^4.1.1"
+ css-what "^6.1.0"
+ cssesc "^3.0.0"
+ csstype "^3.0.7"
+ deep-object-diff "^1.1.9"
+ deepmerge "^4.2.2"
+ media-query-parser "^2.0.2"
+ outdent "^0.8.0"
+
+"@vanilla-extract/dynamic@^2.0.3":
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/@vanilla-extract/dynamic/-/dynamic-2.0.3.tgz#44b4e018cbdfb6af3d27e73c78b38617dfe419ad"
+ integrity sha512-Rglfw2gXAYiBzAQ4jgUG7rBgE2c88e/zcG27ZVoIqMHVq56wf2C1katGMm1yFMNBgzqM7oBNYzz4YOMzznydkg==
+ dependencies:
+ "@vanilla-extract/private" "^1.0.3"
+
+"@vanilla-extract/private@^1.0.3":
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/@vanilla-extract/private/-/private-1.0.3.tgz#7ec72bc2ff6fe51f9d650f962e8d1989b073690f"
+ integrity sha512-17kVyLq3ePTKOkveHxXuIJZtGYs+cSoev7BlP+Lf4916qfDhk/HBjvlYDe8egrea7LNPHKwSZJK/bzZC+Q6AwQ==
+
+"@vanilla-extract/recipes@^0.4.0":
+ version "0.4.0"
+ resolved "https://registry.yarnpkg.com/@vanilla-extract/recipes/-/recipes-0.4.0.tgz#7bb2edb0757b6f40c244d72569da7f74d6afa427"
+ integrity sha512-gFgB7BofUYbtbxINHK6DhMv1JDFDXp/YI/Xm+cqKar+1I/2dfxPepeDxSexL6YB4ftfeaDw8Kn5zydMvHcGOEQ==
+
"@vercel/style-guide@^3":
version "3.0.0"
resolved "https://registry.npmjs.org/@vercel/style-guide/-/style-guide-3.0.0.tgz"
@@ -2998,6 +3362,213 @@
eslint-plugin-tsdoc "0.2.14"
eslint-plugin-unicorn "41.0.1"
+"@walletconnect/core@2.10.2":
+ version "2.10.2"
+ resolved "https://registry.yarnpkg.com/@walletconnect/core/-/core-2.10.2.tgz#a1bf6e3e87b33f9df795ce0970d8ddd400fdc8a3"
+ integrity sha512-JQz/xp3SLEpTeRQctdck2ugSBVEpMxoSE+lFi2voJkZop1hv6P+uqr6E4PzjFluAjeAnKlT1xvra0aFWjPWVcw==
+ dependencies:
+ "@walletconnect/heartbeat" "1.2.1"
+ "@walletconnect/jsonrpc-provider" "1.0.13"
+ "@walletconnect/jsonrpc-types" "1.0.3"
+ "@walletconnect/jsonrpc-utils" "1.0.8"
+ "@walletconnect/jsonrpc-ws-connection" "1.0.13"
+ "@walletconnect/keyvaluestorage" "^1.0.2"
+ "@walletconnect/logger" "^2.0.1"
+ "@walletconnect/relay-api" "^1.0.9"
+ "@walletconnect/relay-auth" "^1.0.4"
+ "@walletconnect/safe-json" "^1.0.2"
+ "@walletconnect/time" "^1.0.2"
+ "@walletconnect/types" "2.10.2"
+ "@walletconnect/utils" "2.10.2"
+ events "^3.3.0"
+ lodash.isequal "4.5.0"
+ uint8arrays "^3.1.0"
+
+"@walletconnect/environment@^1.0.1":
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/@walletconnect/environment/-/environment-1.0.1.tgz#1d7f82f0009ab821a2ba5ad5e5a7b8ae3b214cd7"
+ integrity sha512-T426LLZtHj8e8rYnKfzsw1aG6+M0BT1ZxayMdv/p8yM0MU+eJDISqNY3/bccxRr4LrF9csq02Rhqt08Ibl0VRg==
+ dependencies:
+ tslib "1.14.1"
+
+"@walletconnect/events@^1.0.1":
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/@walletconnect/events/-/events-1.0.1.tgz#2b5f9c7202019e229d7ccae1369a9e86bda7816c"
+ integrity sha512-NPTqaoi0oPBVNuLv7qPaJazmGHs5JGyO8eEAk5VGKmJzDR7AHzD4k6ilox5kxk1iwiOnFopBOOMLs86Oa76HpQ==
+ dependencies:
+ keyvaluestorage-interface "^1.0.0"
+ tslib "1.14.1"
+
+"@walletconnect/heartbeat@1.2.1":
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/@walletconnect/heartbeat/-/heartbeat-1.2.1.tgz#afaa3a53232ae182d7c9cff41c1084472d8f32e9"
+ integrity sha512-yVzws616xsDLJxuG/28FqtZ5rzrTA4gUjdEMTbWB5Y8V1XHRmqq4efAxCw5ie7WjbXFSUyBHaWlMR+2/CpQC5Q==
+ dependencies:
+ "@walletconnect/events" "^1.0.1"
+ "@walletconnect/time" "^1.0.2"
+ tslib "1.14.1"
+
+"@walletconnect/jsonrpc-provider@1.0.13":
+ version "1.0.13"
+ resolved "https://registry.yarnpkg.com/@walletconnect/jsonrpc-provider/-/jsonrpc-provider-1.0.13.tgz#9a74da648d015e1fffc745f0c7d629457f53648b"
+ integrity sha512-K73EpThqHnSR26gOyNEL+acEex3P7VWZe6KE12ZwKzAt2H4e5gldZHbjsu2QR9cLeJ8AXuO7kEMOIcRv1QEc7g==
+ dependencies:
+ "@walletconnect/jsonrpc-utils" "^1.0.8"
+ "@walletconnect/safe-json" "^1.0.2"
+ tslib "1.14.1"
+
+"@walletconnect/jsonrpc-types@1.0.3", "@walletconnect/jsonrpc-types@^1.0.2", "@walletconnect/jsonrpc-types@^1.0.3":
+ version "1.0.3"
+ resolved "https://registry.yarnpkg.com/@walletconnect/jsonrpc-types/-/jsonrpc-types-1.0.3.tgz#65e3b77046f1a7fa8347ae02bc1b841abe6f290c"
+ integrity sha512-iIQ8hboBl3o5ufmJ8cuduGad0CQm3ZlsHtujv9Eu16xq89q+BG7Nh5VLxxUgmtpnrePgFkTwXirCTkwJH1v+Yw==
+ dependencies:
+ keyvaluestorage-interface "^1.0.0"
+ tslib "1.14.1"
+
+"@walletconnect/jsonrpc-utils@1.0.8", "@walletconnect/jsonrpc-utils@^1.0.6", "@walletconnect/jsonrpc-utils@^1.0.8":
+ version "1.0.8"
+ resolved "https://registry.yarnpkg.com/@walletconnect/jsonrpc-utils/-/jsonrpc-utils-1.0.8.tgz#82d0cc6a5d6ff0ecc277cb35f71402c91ad48d72"
+ integrity sha512-vdeb03bD8VzJUL6ZtzRYsFMq1eZQcM3EAzT0a3st59dyLfJ0wq+tKMpmGH7HlB7waD858UWgfIcudbPFsbzVdw==
+ dependencies:
+ "@walletconnect/environment" "^1.0.1"
+ "@walletconnect/jsonrpc-types" "^1.0.3"
+ tslib "1.14.1"
+
+"@walletconnect/jsonrpc-ws-connection@1.0.13":
+ version "1.0.13"
+ resolved "https://registry.yarnpkg.com/@walletconnect/jsonrpc-ws-connection/-/jsonrpc-ws-connection-1.0.13.tgz#23b0cdd899801bfbb44a6556936ec2b93ef2adf4"
+ integrity sha512-mfOM7uFH4lGtQxG+XklYuFBj6dwVvseTt5/ahOkkmpcAEgz2umuzu7fTR+h5EmjQBdrmYyEBOWADbeaFNxdySg==
+ dependencies:
+ "@walletconnect/jsonrpc-utils" "^1.0.6"
+ "@walletconnect/safe-json" "^1.0.2"
+ events "^3.3.0"
+ tslib "1.14.1"
+ ws "^7.5.1"
+
+"@walletconnect/keyvaluestorage@^1.0.2":
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/@walletconnect/keyvaluestorage/-/keyvaluestorage-1.0.2.tgz#92f5ca0f54c1a88a093778842ce0c874d86369c8"
+ integrity sha512-U/nNG+VLWoPFdwwKx0oliT4ziKQCEoQ27L5Hhw8YOFGA2Po9A9pULUYNWhDgHkrb0gYDNt//X7wABcEWWBd3FQ==
+ dependencies:
+ safe-json-utils "^1.1.1"
+ tslib "1.14.1"
+
+"@walletconnect/logger@^2.0.1":
+ version "2.0.1"
+ resolved "https://registry.yarnpkg.com/@walletconnect/logger/-/logger-2.0.1.tgz#7f489b96e9a1ff6bf3e58f0fbd6d69718bf844a8"
+ integrity sha512-SsTKdsgWm+oDTBeNE/zHxxr5eJfZmE9/5yp/Ku+zJtcTAjELb3DXueWkDXmE9h8uHIbJzIb5wj5lPdzyrjT6hQ==
+ dependencies:
+ pino "7.11.0"
+ tslib "1.14.1"
+
+"@walletconnect/relay-api@^1.0.9":
+ version "1.0.9"
+ resolved "https://registry.yarnpkg.com/@walletconnect/relay-api/-/relay-api-1.0.9.tgz#f8c2c3993dddaa9f33ed42197fc9bfebd790ecaf"
+ integrity sha512-Q3+rylJOqRkO1D9Su0DPE3mmznbAalYapJ9qmzDgK28mYF9alcP3UwG/og5V7l7CFOqzCLi7B8BvcBUrpDj0Rg==
+ dependencies:
+ "@walletconnect/jsonrpc-types" "^1.0.2"
+ tslib "1.14.1"
+
+"@walletconnect/relay-auth@^1.0.4":
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/@walletconnect/relay-auth/-/relay-auth-1.0.4.tgz#0b5c55c9aa3b0ef61f526ce679f3ff8a5c4c2c7c"
+ integrity sha512-kKJcS6+WxYq5kshpPaxGHdwf5y98ZwbfuS4EE/NkQzqrDFm5Cj+dP8LofzWvjrrLkZq7Afy7WrQMXdLy8Sx7HQ==
+ dependencies:
+ "@stablelib/ed25519" "^1.0.2"
+ "@stablelib/random" "^1.0.1"
+ "@walletconnect/safe-json" "^1.0.1"
+ "@walletconnect/time" "^1.0.2"
+ tslib "1.14.1"
+ uint8arrays "^3.0.0"
+
+"@walletconnect/safe-json@^1.0.1", "@walletconnect/safe-json@^1.0.2":
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/@walletconnect/safe-json/-/safe-json-1.0.2.tgz#7237e5ca48046e4476154e503c6d3c914126fa77"
+ integrity sha512-Ogb7I27kZ3LPC3ibn8ldyUr5544t3/STow9+lzz7Sfo808YD7SBWk7SAsdBFlYgP2zDRy2hS3sKRcuSRM0OTmA==
+ dependencies:
+ tslib "1.14.1"
+
+"@walletconnect/sign-client@^2.9.0":
+ version "2.10.2"
+ resolved "https://registry.yarnpkg.com/@walletconnect/sign-client/-/sign-client-2.10.2.tgz#33300a9cfe42487473f66b73c99535f6b26f8c54"
+ integrity sha512-vviSLV3f92I0bReX+OLr1HmbH0uIzYEQQFd1MzIfDk9PkfFT/LLAHhUnDaIAMkIdippqDcJia+5QEtT4JihL3Q==
+ dependencies:
+ "@walletconnect/core" "2.10.2"
+ "@walletconnect/events" "^1.0.1"
+ "@walletconnect/heartbeat" "1.2.1"
+ "@walletconnect/jsonrpc-utils" "1.0.8"
+ "@walletconnect/logger" "^2.0.1"
+ "@walletconnect/time" "^1.0.2"
+ "@walletconnect/types" "2.10.2"
+ "@walletconnect/utils" "2.10.2"
+ events "^3.3.0"
+
+"@walletconnect/time@^1.0.2":
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/@walletconnect/time/-/time-1.0.2.tgz#6c5888b835750ecb4299d28eecc5e72c6d336523"
+ integrity sha512-uzdd9woDcJ1AaBZRhqy5rNC9laqWGErfc4dxA9a87mPdKOgWMD85mcFo9dIYIts/Jwocfwn07EC6EzclKubk/g==
+ dependencies:
+ tslib "1.14.1"
+
+"@walletconnect/types@2.10.2", "@walletconnect/types@^2.9.0":
+ version "2.10.2"
+ resolved "https://registry.yarnpkg.com/@walletconnect/types/-/types-2.10.2.tgz#68e433a29ec2cf42d79d8b50c77bd5c1d91db721"
+ integrity sha512-luNV+07Wdla4STi9AejseCQY31tzWKQ5a7C3zZZaRK/di+rFaAAb7YW04OP4klE7tw/mJRGPTlekZElmHxO8kQ==
+ dependencies:
+ "@walletconnect/events" "^1.0.1"
+ "@walletconnect/heartbeat" "1.2.1"
+ "@walletconnect/jsonrpc-types" "1.0.3"
+ "@walletconnect/keyvaluestorage" "^1.0.2"
+ "@walletconnect/logger" "^2.0.1"
+ events "^3.3.0"
+
+"@walletconnect/types@2.7.2":
+ version "2.7.2"
+ resolved "https://registry.yarnpkg.com/@walletconnect/types/-/types-2.7.2.tgz#508d1755110864dee294f955e09b7da3f8ee0064"
+ integrity sha512-1O2UefakZpT0ErRfEAXY7Ls3qdUrKDky/DsK088xR6klyfkQOx+aSVH0fJYLhmnqPTuvp3lrqNbsDc0s6/6nvg==
+ dependencies:
+ "@walletconnect/events" "^1.0.1"
+ "@walletconnect/heartbeat" "1.2.1"
+ "@walletconnect/jsonrpc-types" "^1.0.2"
+ "@walletconnect/keyvaluestorage" "^1.0.2"
+ "@walletconnect/logger" "^2.0.1"
+ events "^3.3.0"
+
+"@walletconnect/utils@2.10.2", "@walletconnect/utils@^2.9.0":
+ version "2.10.2"
+ resolved "https://registry.yarnpkg.com/@walletconnect/utils/-/utils-2.10.2.tgz#1f2c6a2f1bb95bcc4517b1e94aa7164c9286eb46"
+ integrity sha512-syxXRpc2yhSknMu3IfiBGobxOY7fLfLTJuw+ppKaeO6WUdZpIit3wfuGOcc0Ms3ZPFCrGfyGOoZsCvgdXtptRg==
+ dependencies:
+ "@stablelib/chacha20poly1305" "1.0.1"
+ "@stablelib/hkdf" "1.0.1"
+ "@stablelib/random" "^1.0.2"
+ "@stablelib/sha256" "1.0.1"
+ "@stablelib/x25519" "^1.0.3"
+ "@walletconnect/relay-api" "^1.0.9"
+ "@walletconnect/safe-json" "^1.0.2"
+ "@walletconnect/time" "^1.0.2"
+ "@walletconnect/types" "2.10.2"
+ "@walletconnect/window-getters" "^1.0.1"
+ "@walletconnect/window-metadata" "^1.0.1"
+ detect-browser "5.3.0"
+ query-string "7.1.3"
+ uint8arrays "^3.1.0"
+
+"@walletconnect/window-getters@^1.0.1":
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/@walletconnect/window-getters/-/window-getters-1.0.1.tgz#f36d1c72558a7f6b87ecc4451fc8bd44f63cbbdc"
+ integrity sha512-vHp+HqzGxORPAN8gY03qnbTMnhqIwjeRJNOMOAzePRg4xVEEE2WvYsI9G2NMjOknA8hnuYbU3/hwLcKbjhc8+Q==
+ dependencies:
+ tslib "1.14.1"
+
+"@walletconnect/window-metadata@^1.0.1":
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/@walletconnect/window-metadata/-/window-metadata-1.0.1.tgz#2124f75447b7e989e4e4e1581d55d25bc75f7be5"
+ integrity sha512-9koTqyGrM2cqFRW517BPY/iEtUDx2r1+Pwwu5m7sJ7ka79wi3EyqhqcICk/yDmv6jAS1rjKgTKXlEhanYjijcA==
+ dependencies:
+ "@walletconnect/window-getters" "^1.0.1"
+ tslib "1.14.1"
+
"@web-std/blob@^3.0.1", "@web-std/blob@^3.0.3":
version "3.0.4"
resolved "https://registry.npmjs.org/@web-std/blob/-/blob-3.0.4.tgz"
@@ -3047,6 +3618,156 @@
resolved "https://registry.npmjs.org/@wojtekmaj/date-utils/-/date-utils-1.0.3.tgz"
integrity sha512-1VPkkTBk07gMR1fjpBtse4G+oJqpmE+0gUFB0dg3VIL7qJmUVaBoD/vlzMm/jNeOPfvlmerl1lpnsZyBUFIRuw==
+"@zag-js/anatomy@0.15.0":
+ version "0.15.0"
+ resolved "https://registry.yarnpkg.com/@zag-js/anatomy/-/anatomy-0.15.0.tgz#c32b3bf2050f81ed9eace140542db43a565e3454"
+ integrity sha512-+lmu/JVQ6Q5M9Tmbt1sXVkp3CtP10JYOo/PU2L6w6mXpwazT5FUpsuorrBrBM9rhWOnxI7CVvFy7r/rxReDWgg==
+
+"@zag-js/aria-hidden@0.15.0":
+ version "0.15.0"
+ resolved "https://registry.yarnpkg.com/@zag-js/aria-hidden/-/aria-hidden-0.15.0.tgz#97ef569a3a149df6ab89c9de08595729fe4f406c"
+ integrity sha512-OTQhKfO+Tc2uiMamZnywmuWaOBGBV3IESeQiAQJGN705Doobg5HegssgdO5VAuNo7Lioqt8huw8MO1nZxsRQqg==
+ dependencies:
+ "@zag-js/dom-query" "0.15.0"
+
+"@zag-js/core@0.15.0":
+ version "0.15.0"
+ resolved "https://registry.yarnpkg.com/@zag-js/core/-/core-0.15.0.tgz#3566bc9b23d07528eeec9160b0b8ece9b7f647b0"
+ integrity sha512-eH3yx9nv0hMyoR+hWtJVJpCagpU5s61rOMHfLkdjMPTWSVjQZdp3SGEm6BTUjBlNbQkTZhUbPpg/FEqx1iPfJw==
+ dependencies:
+ "@zag-js/store" "0.15.0"
+ klona "2.0.6"
+
+"@zag-js/dialog@^0.15.0":
+ version "0.15.0"
+ resolved "https://registry.yarnpkg.com/@zag-js/dialog/-/dialog-0.15.0.tgz#92d353a2f5b870cdbbf83a7f7a46ac12ea51e94d"
+ integrity sha512-O9Z04fE9czpEk0b93YxWzMhpjqYX/vsJHuxgBY7s2GbxJYF0JpSMyKPd/AUdszSoy/sPKrrxAAo7RJXn2JOFmA==
+ dependencies:
+ "@zag-js/anatomy" "0.15.0"
+ "@zag-js/aria-hidden" "0.15.0"
+ "@zag-js/core" "0.15.0"
+ "@zag-js/dismissable" "0.15.0"
+ "@zag-js/dom-query" "0.15.0"
+ "@zag-js/remove-scroll" "0.15.0"
+ "@zag-js/types" "0.15.0"
+ "@zag-js/utils" "0.15.0"
+ focus-trap "7.5.2"
+
+"@zag-js/dismissable@0.15.0":
+ version "0.15.0"
+ resolved "https://registry.yarnpkg.com/@zag-js/dismissable/-/dismissable-0.15.0.tgz#ad90bbc402d91dd58420c34f1cc3ab1677a40764"
+ integrity sha512-driv6PZ3A/9swqj95o+JnHh+1V+NmXlraYLB1gCIIeaUgPqfJrIUHfhaST+0mmFB+xK92UX31+ZmUje4+g/MxQ==
+ dependencies:
+ "@zag-js/dom-event" "0.15.0"
+ "@zag-js/dom-query" "0.15.0"
+ "@zag-js/interact-outside" "0.15.0"
+ "@zag-js/utils" "0.15.0"
+
+"@zag-js/dom-event@0.15.0":
+ version "0.15.0"
+ resolved "https://registry.yarnpkg.com/@zag-js/dom-event/-/dom-event-0.15.0.tgz#529491fee3e25b4a47ce46edab624cf7bab67c47"
+ integrity sha512-5Sw2pNCcX2PqSiz4Ntm2PDu+YARQLtUrAf6PBBSUIqMZ0X9pp7DWTY3IfpdqY2ADsRLRMIe1LqzM+/c0u3Gd1Q==
+ dependencies:
+ "@zag-js/text-selection" "0.15.0"
+ "@zag-js/types" "0.15.0"
+
+"@zag-js/dom-query@0.15.0":
+ version "0.15.0"
+ resolved "https://registry.yarnpkg.com/@zag-js/dom-query/-/dom-query-0.15.0.tgz#48954851575f0f11127d48cf271ce323bb13f1f0"
+ integrity sha512-gxm7GefQ+ggJE+iN0/kHgbM90DPd4RZYoQC6TQOWy3nxij69IuoSI6goMakJ33hUckszWm9z86Sqe1U1puzssQ==
+
+"@zag-js/form-utils@0.15.0":
+ version "0.15.0"
+ resolved "https://registry.yarnpkg.com/@zag-js/form-utils/-/form-utils-0.15.0.tgz#dc70686f5d6ad8d845b5e4bab8eb92833a280b11"
+ integrity sha512-3gFzyF8x48wK2Fabt6rxjMETmhSlwTtCjF10XFrKscL1LZASc3Abl7lJcpTEmVJ5kb5D+50Zw+jlHjHrvddH6g==
+ dependencies:
+ "@zag-js/mutation-observer" "0.15.0"
+
+"@zag-js/interact-outside@0.15.0":
+ version "0.15.0"
+ resolved "https://registry.yarnpkg.com/@zag-js/interact-outside/-/interact-outside-0.15.0.tgz#e7fb88d20ce869091687ddd31ff1aaa82d1218d8"
+ integrity sha512-1emQM8syAZF1gfFKc2vSJ0NS6uYuqyhQ4zQ318JT5FkqctGQgBzJ1VXxak6c9YPOL1zkoE9NO1iqKrgNIbC3Vg==
+ dependencies:
+ "@zag-js/dom-event" "0.15.0"
+ "@zag-js/dom-query" "0.15.0"
+ "@zag-js/tabbable" "0.15.0"
+ "@zag-js/utils" "0.15.0"
+
+"@zag-js/mutation-observer@0.15.0":
+ version "0.15.0"
+ resolved "https://registry.yarnpkg.com/@zag-js/mutation-observer/-/mutation-observer-0.15.0.tgz#3848f7d9c9a39a7c7d86ed49cc6c5a4e0ffdcf85"
+ integrity sha512-7e2d1RYA0nuKOAJknbYBw6XfywF5eFC/4oel/nINHmS14JtjZnjMq/8z/kdrMMJnlQHou+wnaoskOLv+4Sv7pw==
+
+"@zag-js/number-input@^0.15.0":
+ version "0.15.0"
+ resolved "https://registry.yarnpkg.com/@zag-js/number-input/-/number-input-0.15.0.tgz#c1f0ebc405ed9bfc22ac3d4fedc0cab1d585c388"
+ integrity sha512-WyIGLI4gUm9+53OPCoOmzyZaqT32ALdfZl1QjTVLuDXzckoBgqxaowR0mJU1gDkJ89mSI02p0B0Q89SOiokUfQ==
+ dependencies:
+ "@zag-js/anatomy" "0.15.0"
+ "@zag-js/core" "0.15.0"
+ "@zag-js/dom-event" "0.15.0"
+ "@zag-js/dom-query" "0.15.0"
+ "@zag-js/form-utils" "0.15.0"
+ "@zag-js/mutation-observer" "0.15.0"
+ "@zag-js/number-utils" "0.15.0"
+ "@zag-js/types" "0.15.0"
+ "@zag-js/utils" "0.15.0"
+
+"@zag-js/number-utils@0.15.0":
+ version "0.15.0"
+ resolved "https://registry.yarnpkg.com/@zag-js/number-utils/-/number-utils-0.15.0.tgz#06d19e2145e183acebea272412fdb5780c7cbd81"
+ integrity sha512-ebDPCv4UNl5qAe+x55NSUK5gMLbhlqh8mVVq6EnPUqPfbglcjUgNzht78TZ3d+0rdfgC3F8SI3pWaZk9DY4O1Q==
+
+"@zag-js/react@^0.15.0":
+ version "0.15.0"
+ resolved "https://registry.yarnpkg.com/@zag-js/react/-/react-0.15.0.tgz#516b92405b4536cd0605a9c702d2fe78ca18f1bc"
+ integrity sha512-Uygdyq29Y7q5GPOYv1VC9Ya5tdFOs+jdCZk5h5BKzFy3vCSDaVuZ8WT+w7JgvUWh6aQUKjUMLG8lXxWWnJA0Jg==
+ dependencies:
+ "@zag-js/core" "0.15.0"
+ "@zag-js/store" "0.15.0"
+ "@zag-js/types" "0.15.0"
+ proxy-compare "2.5.1"
+
+"@zag-js/remove-scroll@0.15.0":
+ version "0.15.0"
+ resolved "https://registry.yarnpkg.com/@zag-js/remove-scroll/-/remove-scroll-0.15.0.tgz#e466557985d06dec79c489993d433ffd9b136de7"
+ integrity sha512-TnhHWvQ3cvkSB1Qm1xJEn18e/s6GY7/8sOKwfHiY+bFm0Z0zDdnHDIhutRupAqWwmOLhUldUkdIJ+nFLL5BKqQ==
+ dependencies:
+ "@zag-js/dom-query" "0.15.0"
+
+"@zag-js/store@0.15.0":
+ version "0.15.0"
+ resolved "https://registry.yarnpkg.com/@zag-js/store/-/store-0.15.0.tgz#e3cf5a10588ce2bb7f94280b95437fec6650c0f8"
+ integrity sha512-xq4WFrd+fqJE+Y0Os3FhN2/ru2zxvIvV8IT9y5Ev+3VRZw+L6Ut4tEjOONk+zr+UpkRx3jflPqlekjLHtowp0w==
+ dependencies:
+ proxy-compare "2.5.1"
+
+"@zag-js/tabbable@0.15.0":
+ version "0.15.0"
+ resolved "https://registry.yarnpkg.com/@zag-js/tabbable/-/tabbable-0.15.0.tgz#3303da58bb8f590e1ebf2a709c7567be15d212c9"
+ integrity sha512-GWUGqNgf+meYSIHXKwxYE2uqcmkxTPnm/7bnh+XaAgTov6ElsTo9k5QbFbmXH98QyWwVw/X0Sp/clKqmp+hiGg==
+ dependencies:
+ "@zag-js/dom-query" "0.15.0"
+
+"@zag-js/text-selection@0.15.0":
+ version "0.15.0"
+ resolved "https://registry.yarnpkg.com/@zag-js/text-selection/-/text-selection-0.15.0.tgz#7c5ede2a98aaed7eb5d12c4995d5dc03688dbdc1"
+ integrity sha512-5i/MkTTBOJN17YylGgvRC+dyO5l3pgz2a/z0xBiIpimYqP1W66P0N1Yq0/5VZubs9TG41jKyEKuulKfcpLwmYg==
+ dependencies:
+ "@zag-js/dom-query" "0.15.0"
+
+"@zag-js/types@0.15.0":
+ version "0.15.0"
+ resolved "https://registry.yarnpkg.com/@zag-js/types/-/types-0.15.0.tgz#22fb42c125deb786f00ad984d111236bc9f2002f"
+ integrity sha512-rkAwZDl6e5p2iXF9HknP03TQ/G9jfOto0x2r2rds4wsPbfVJBNGk0Mo6Jl9GXcpNiyOCOO74SoO9VjZTmMqVvw==
+ dependencies:
+ csstype "3.1.2"
+
+"@zag-js/utils@0.15.0":
+ version "0.15.0"
+ resolved "https://registry.yarnpkg.com/@zag-js/utils/-/utils-0.15.0.tgz#65e2df9e6932211fb6f927e6667d35e5b4b593b7"
+ integrity sha512-aNjydiheTKMoIo1wASk3XgN3mbcCiCk2zAiUyldU4JCw9xWevMk5aSszW2v3A0yms6z+qhRb77Z50fejG7OlSA==
+
"@zxing/text-encoding@0.9.0":
version "0.9.0"
resolved "https://registry.npmjs.org/@zxing/text-encoding/-/text-encoding-0.9.0.tgz"
@@ -3096,6 +3817,11 @@ aggregate-error@^3.0.0:
clean-stack "^2.0.0"
indent-string "^4.0.0"
+ahocorasick@1.0.2:
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/ahocorasick/-/ahocorasick-1.0.2.tgz#9eee93aef9d02bfb476d9b648d9b7a40ef2fd500"
+ integrity sha512-hCOfMzbFx5IDutmWLAt6MZwOUjIfSM9G9FyVxytmE4Rs/5YDPWQrD/+IR1w+FweD9H2oOZEnv36TmkjhNURBVA==
+
ajv@^6.10.0, ajv@^6.12.4, ajv@~6.12.6:
version "6.12.6"
resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz"
@@ -3106,6 +3832,11 @@ ajv@^6.10.0, ajv@^6.12.4, ajv@~6.12.6:
json-schema-traverse "^0.4.1"
uri-js "^4.2.2"
+animejs@^3.2.1:
+ version "3.2.1"
+ resolved "https://registry.yarnpkg.com/animejs/-/animejs-3.2.1.tgz#de9fe2e792f44a777a7fdf6ae160e26604b0cdda"
+ integrity sha512-sWno3ugFryK5nhiDm/2BKeFCpZv7vzerWUcUPyAZLDhMek3+S/p418ldZJbJXo5ZUOpfm2kP2XRO4NJcULMy9A==
+
ansi-escapes@^4.3.0:
version "4.3.2"
resolved "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz"
@@ -3242,6 +3973,11 @@ asynckit@^0.4.0:
resolved "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz"
integrity sha1-x57Zf380y48robyXkLzDZkdLS3k=
+atomic-sleep@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/atomic-sleep/-/atomic-sleep-1.0.0.tgz#eb85b77a601fc932cfe432c5acd364a9e2c9075b"
+ integrity sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==
+
autoprefixer@^10:
version "10.4.5"
resolved "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.5.tgz"
@@ -3264,13 +4000,6 @@ axe-core@^4.3.5:
resolved "https://registry.npmjs.org/axe-core/-/axe-core-4.4.1.tgz"
integrity sha512-gd1kmb21kwNuWr6BQz8fv6GNECPBnUasepcoLbekws23NVBLODdsClRZ+bQ8+9Uomf3Sm3+Vwn0oYG9NvwnJCw==
-axios@0.21.1:
- version "0.21.1"
- resolved "https://registry.npmjs.org/axios/-/axios-0.21.1.tgz"
- integrity sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA==
- dependencies:
- follow-redirects "^1.10.0"
-
axios@^0:
version "0.27.2"
resolved "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz"
@@ -3279,7 +4008,7 @@ axios@^0:
follow-redirects "^1.14.9"
form-data "^4.0.0"
-axios@^0.21.1, axios@^0.21.2, axios@^0.21.4:
+axios@^0.21.1, axios@^0.21.2:
version "0.21.4"
resolved "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz"
integrity sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==
@@ -3339,12 +4068,12 @@ base-x@^3.0.2, base-x@^3.0.8:
dependencies:
safe-buffer "^5.0.1"
-base64-js@^1.0.2, base64-js@^1.3.0, base64-js@^1.3.1:
+base64-js@^1.3.0, base64-js@^1.3.1:
version "1.5.1"
resolved "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz"
integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==
-bech32@^1.1.3, bech32@^1.1.4:
+bech32@^1.1.4:
version "1.1.4"
resolved "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz"
integrity sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==
@@ -3354,6 +4083,11 @@ big-integer@^1.6.16, big-integer@^1.6.48:
resolved "https://registry.npmjs.org/big-integer/-/big-integer-1.6.51.tgz"
integrity sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==
+bignumber.js@^9.1.1:
+ version "9.1.2"
+ resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-9.1.2.tgz#b7c4242259c008903b13707983b5f4bbd31eda0c"
+ integrity sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug==
+
binary-extensions@^2.0.0:
version "2.2.0"
resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz"
@@ -3379,7 +4113,7 @@ bip32@^2.0.6:
typeforce "^1.11.5"
wif "^2.0.6"
-bip39@^3.0.2, bip39@^3.0.3:
+bip39@^3.0.3:
version "3.0.4"
resolved "https://registry.npmjs.org/bip39/-/bip39-3.0.4.tgz"
integrity sha512-YZKQlb752TrUWqHWj7XAwCSjYEgGAk+/Aas3V7NyjQeZYsztO8JnQUaCWhcnL4T+jL8nvB8typ2jRPzTlgugNw==
@@ -3429,12 +4163,17 @@ bn.js@^5.2.0:
resolved "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz"
integrity sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==
+bn.js@^5.2.1:
+ version "5.2.1"
+ resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.1.tgz#0bc527a6a0d18d0aa8d5b0538ce4a77dccfa7b70"
+ integrity sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==
+
boolbase@^1.0.0:
version "1.0.0"
resolved "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz"
integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24=
-bowser@^2.11.0:
+bowser@2.11.0, bowser@^2.11.0:
version "2.11.0"
resolved "https://registry.npmjs.org/bowser/-/bowser-2.11.0.tgz"
integrity sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA==
@@ -3496,7 +4235,7 @@ bs58@^4.0.0, bs58@^4.0.1:
dependencies:
base-x "^3.0.2"
-bs58check@<3.0.0, bs58check@^2.1.1:
+bs58check@<3.0.0, bs58check@^2.1.1, bs58check@^2.1.2:
version "2.1.2"
resolved "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz"
integrity sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==
@@ -3505,14 +4244,6 @@ bs58check@<3.0.0, bs58check@^2.1.1:
create-hash "^1.1.0"
safe-buffer "^5.1.2"
-buffer@6.0.3, buffer@^6.0.1, buffer@^6.0.3:
- version "6.0.3"
- resolved "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz"
- integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==
- dependencies:
- base64-js "^1.3.1"
- ieee754 "^1.2.1"
-
buffer@^5.5.0, buffer@^5.6.0:
version "5.7.1"
resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0"
@@ -3521,13 +4252,13 @@ buffer@^5.5.0, buffer@^5.6.0:
base64-js "^1.3.1"
ieee754 "^1.1.13"
-buffer@~5.4.3:
- version "5.4.3"
- resolved "https://registry.npmjs.org/buffer/-/buffer-5.4.3.tgz"
- integrity sha512-zvj65TkFeIt3i6aj5bIvJDzjjQQGs4o/sNoezg1F1kYap9Nu2jcUdpwzRSJTHMMzG0H7bZkn4rNQpImhuxWX2A==
+buffer@^6.0.1, buffer@^6.0.3:
+ version "6.0.3"
+ resolved "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz"
+ integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==
dependencies:
- base64-js "^1.0.2"
- ieee754 "^1.1.4"
+ base64-js "^1.3.1"
+ ieee754 "^1.2.1"
builtin-modules@^3.0.0:
version "3.2.0"
@@ -3596,6 +4327,14 @@ cborg@^1.5.4, cborg@^1.6.0:
resolved "https://registry.npmjs.org/cborg/-/cborg-1.9.4.tgz"
integrity sha512-ltobKo17xKYJolhg8UxQhvzcqXhjtUnovwe9Xx59Izo32gLwozGoJs/efp+8dZ5+zu9pNJYnHtmp6iJnDUapww==
+chain-registry@^1.20.0:
+ version "1.20.0"
+ resolved "https://registry.yarnpkg.com/chain-registry/-/chain-registry-1.20.0.tgz#1442a1d715a7ebf57781aeb185e3cbaa7b08196c"
+ integrity sha512-kBeQVdopECXasauhaA+HiJNSB0UpzNmxtv5AvIpJBAZc3nuM2wzPxaHAiPz1OG5ifYwMraOkvPNxwOnXd1nZzw==
+ dependencies:
+ "@babel/runtime" "^7.21.0"
+ "@chain-registry/types" "^0.17.0"
+
chalk@^2.0.0:
version "2.4.2"
resolved "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz"
@@ -3605,7 +4344,7 @@ chalk@^2.0.0:
escape-string-regexp "^1.0.5"
supports-color "^5.3.0"
-chalk@^4.0.0:
+chalk@^4.0.0, chalk@^4.1.1:
version "4.1.2"
resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz"
integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==
@@ -3613,11 +4352,6 @@ chalk@^4.0.0:
ansi-styles "^4.1.0"
supports-color "^7.1.0"
-charenc@~0.0.1:
- version "0.0.2"
- resolved "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz"
- integrity sha1-wKHS86cJLgN3S/qD8UwPxXkKhmc=
-
chokidar@^3.5.3:
version "3.5.3"
resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz"
@@ -3724,6 +4458,11 @@ clsx@^1:
resolved "https://registry.npmjs.org/clsx/-/clsx-1.1.1.tgz"
integrity sha512-6/bPho624p3S2pMyvP5kKBPXnI3ufHLObBFCfgx+LkeR5lg2XYy2hqZqUf45ypD8COn2bhgGJSUE+l5dhNBieA==
+clsx@^1.2.1:
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/clsx/-/clsx-1.2.1.tgz#0ddc4a20a549b59c93a4116bb26f5294ca17dc12"
+ integrity sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==
+
color-convert@^1.9.0:
version "1.9.3"
resolved "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz"
@@ -3803,6 +4542,13 @@ convert-source-map@^1.7.0:
dependencies:
safe-buffer "~5.1.1"
+copy-to-clipboard@^3.3.3:
+ version "3.3.3"
+ resolved "https://registry.yarnpkg.com/copy-to-clipboard/-/copy-to-clipboard-3.3.3.tgz#55ac43a1db8ae639a4bd99511c148cdd1b83a1b0"
+ integrity sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA==
+ dependencies:
+ toggle-selection "^1.0.6"
+
core-js-compat@^3.20.2, core-js-compat@^3.21.0:
version "3.22.2"
resolved "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.22.2.tgz"
@@ -3867,11 +4613,6 @@ cross-spawn@^7.0.2, cross-spawn@^7.0.3:
shebang-command "^2.0.0"
which "^2.0.1"
-crypt@~0.0.1:
- version "0.0.2"
- resolved "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz"
- integrity sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs=
-
crypto-js@^4.0.0:
version "4.1.1"
resolved "https://registry.npmjs.org/crypto-js/-/crypto-js-4.1.1.tgz"
@@ -3904,7 +4645,7 @@ css-tree@^1.1.2, css-tree@^1.1.3:
mdn-data "2.0.14"
source-map "^0.6.1"
-css-what@^6.0.1:
+css-what@^6.0.1, css-what@^6.1.0:
version "6.1.0"
resolved "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz"
integrity sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==
@@ -3921,16 +4662,16 @@ csso@^4.2.0:
dependencies:
css-tree "^1.1.2"
+csstype@3.1.2, csstype@^3.0.7:
+ version "3.1.2"
+ resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.1.2.tgz#1d4bf9d572f11c14031f0436e1c10bc1f571f50b"
+ integrity sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==
+
csstype@^3.0.2:
version "3.0.11"
resolved "https://registry.npmjs.org/csstype/-/csstype-3.0.11.tgz"
integrity sha512-sa6P2wJ+CAbgyy4KFssIb/JNMLxFvKF1pCYCSXS8ZMuqZnMsrxqI2E5sPyoTpxoPU/gVZMzr2zjOfg8GIZOMsw==
-curve25519-js@0.0.4:
- version "0.0.4"
- resolved "https://registry.npmjs.org/curve25519-js/-/curve25519-js-0.0.4.tgz"
- integrity sha512-axn2UMEnkhyDUPWOwVKBMVIzSQy2ejH2xRGy1wq81dqRwApXfIzfbE3hIX0ZRFBIihf/KDqK158DLwESu4AK1w==
-
d@1, d@^1.0.1:
version "1.0.1"
resolved "https://registry.npmjs.org/d/-/d-1.0.1.tgz"
@@ -3993,11 +4734,21 @@ decamelize@^1.1.0, decamelize@^1.2.0:
resolved "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz"
integrity sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==
+decode-uri-component@^0.2.2:
+ version "0.2.2"
+ resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.2.tgz#e69dbe25d37941171dd540e024c444cd5188e1e9"
+ integrity sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==
+
deep-is@^0.1.3:
version "0.1.4"
resolved "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz"
integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==
+deep-object-diff@^1.1.9:
+ version "1.1.9"
+ resolved "https://registry.yarnpkg.com/deep-object-diff/-/deep-object-diff-1.1.9.tgz#6df7ef035ad6a0caa44479c536ed7b02570f4595"
+ integrity sha512-Rn+RuwkmkDwCi2/oXOFS9Gsr5lJZu/yTGpK7wAaAIE75CC+LCGEZHpY6VQJa/RoJcrmaA/docWJZvYohlNkWPA==
+
deepmerge@^4.2.2:
version "4.2.2"
resolved "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz"
@@ -4016,11 +4767,21 @@ defined@^1.0.0:
resolved "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz"
integrity sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=
+delay@^4.4.0:
+ version "4.4.1"
+ resolved "https://registry.yarnpkg.com/delay/-/delay-4.4.1.tgz#6e02d02946a1b6ab98b39262ced965acba2ac4d1"
+ integrity sha512-aL3AhqtfhOlT/3ai6sWXeqwnw63ATNpnUiN4HL7x9q+My5QtHlO3OIkasmug9LKzpheLdmUKGRKnYXYAS7FQkQ==
+
delayed-stream@~1.0.0:
version "1.0.0"
resolved "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz"
integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk=
+detect-browser@5.3.0:
+ version "5.3.0"
+ resolved "https://registry.yarnpkg.com/detect-browser/-/detect-browser-5.3.0.tgz#9705ef2bddf46072d0f7265a1fe300e36fe7ceca"
+ integrity sha512-53rsFbGdwMwlF7qvCt0ypLM5V5/Mbl0szB7GPN8y9NCcbknYOeVVXdrXEq+90IwAfrrzt6Hd+u2E2ntakICU8w==
+
detect-element-overflow@^1.2.0:
version "1.2.0"
resolved "https://registry.npmjs.org/detect-element-overflow/-/detect-element-overflow-1.2.0.tgz"
@@ -4115,6 +4876,16 @@ dotenv@^10.0.0:
resolved "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz"
integrity sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==
+duplexify@^4.1.2:
+ version "4.1.2"
+ resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-4.1.2.tgz#18b4f8d28289132fa0b9573c898d9f903f81c7b0"
+ integrity sha512-fz3OjcNCHmRP12MJoZMPglx8m4rrFP8rovnk4vT8Fs+aonZoCwGg10dSsQsfP/E62eZcPTMSMP6686fu9Qlqtw==
+ dependencies:
+ end-of-stream "^1.4.1"
+ inherits "^2.0.3"
+ readable-stream "^3.1.1"
+ stream-shift "^1.0.0"
+
eastasianwidth@^0.2.0:
version "0.2.0"
resolved "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz"
@@ -4162,6 +4933,13 @@ encoding@^0.1.13:
dependencies:
iconv-lite "^0.6.2"
+end-of-stream@^1.4.1:
+ version "1.4.4"
+ resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0"
+ integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==
+ dependencies:
+ once "^1.4.0"
+
entities@2.2.0, entities@^2.0.0:
version "2.2.0"
resolved "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz"
@@ -4613,6 +5391,11 @@ event-target-shim@^5.0.0:
resolved "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz"
integrity sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==
+events@3.3.0, events@^3.3.0:
+ version "3.3.0"
+ resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400"
+ integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==
+
execa@^5.1.1:
version "5.1.1"
resolved "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz"
@@ -4635,11 +5418,6 @@ ext@^1.1.2:
dependencies:
type "^2.5.0"
-fast-deep-equal@3.1.1:
- version "3.1.1"
- resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz"
- integrity sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==
-
fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3:
version "3.1.3"
resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz"
@@ -4676,6 +5454,11 @@ fast-levenshtein@^2.0.6:
resolved "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz"
integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=
+fast-redact@^3.0.0:
+ version "3.3.0"
+ resolved "https://registry.yarnpkg.com/fast-redact/-/fast-redact-3.3.0.tgz#7c83ce3a7be4898241a46560d51de10f653f7634"
+ integrity sha512-6T5V1QK1u4oF+ATxs1lWUmlEk6P2T9HqJG3e2DnHOdVgZy2rFJBoEnrIedcTXlkAHU/zKC+7KETJ+KGGKwxgMQ==
+
fast-xml-parser@3.19.0:
version "3.19.0"
resolved "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-3.19.0.tgz"
@@ -4712,6 +5495,11 @@ fill-range@^7.0.1:
dependencies:
to-regex-range "^5.0.1"
+filter-obj@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/filter-obj/-/filter-obj-1.1.0.tgz#9b311112bc6c6127a16e016c6c5d7f19e0805c5b"
+ integrity sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ==
+
find-up@^2.1.0:
version "2.1.0"
resolved "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz"
@@ -4740,7 +5528,14 @@ flatted@^3.1.0:
resolved "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz"
integrity sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==
-follow-redirects@^1.10.0, follow-redirects@^1.14.0, follow-redirects@^1.14.9:
+focus-trap@7.5.2:
+ version "7.5.2"
+ resolved "https://registry.yarnpkg.com/focus-trap/-/focus-trap-7.5.2.tgz#e5ee678d10a18651f2591ffb66c949fb098d57cf"
+ integrity sha512-p6vGNNWLDGwJCiEjkSK6oERj/hEyI9ITsSwIUICBoKLlWiTWXJRfQibCwcoi50rTZdbi87qDtUlMCmQwsGSgPw==
+ dependencies:
+ tabbable "^6.2.0"
+
+follow-redirects@^1.14.0, follow-redirects@^1.14.9:
version "1.14.9"
resolved "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.9.tgz"
integrity sha512-MQDfihBQYMcyy5dhRDJUHcw7lb2Pv/TuE6xP1vyraLukNDHKbDxDNaOE3NbCAdKQApno+GPRyo1YAp89yCjK4w==
@@ -5010,7 +5805,7 @@ hash-base@^3.0.0:
readable-stream "^3.6.0"
safe-buffer "^5.2.0"
-hash.js@^1.0.0, hash.js@^1.0.3, hash.js@~1.1.7:
+hash.js@^1.0.0, hash.js@^1.0.3:
version "1.1.7"
resolved "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz"
integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==
@@ -5018,6 +5813,11 @@ hash.js@^1.0.0, hash.js@^1.0.3, hash.js@~1.1.7:
inherits "^2.0.3"
minimalistic-assert "^1.0.1"
+hey-listen@^1.0.8:
+ version "1.0.8"
+ resolved "https://registry.yarnpkg.com/hey-listen/-/hey-listen-1.0.8.tgz#8e59561ff724908de1aa924ed6ecc84a56a9aa68"
+ integrity sha512-COpmrF2NOg4TBWUJ5UVyaCU2A88wEMkUPK4hNqyCkqHbxT92BbvfjoSozkAIIm6XhicGlJHhFdullInrdhwU8Q==
+
hmac-drbg@^1.0.1:
version "1.0.1"
resolved "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz"
@@ -5068,7 +5868,7 @@ idb-keyval@^6.0.3:
dependencies:
safari-14-idb-fix "^3.0.0"
-ieee754@^1.1.13, ieee754@^1.1.4, ieee754@^1.2.1:
+ieee754@^1.1.13, ieee754@^1.2.1:
version "1.2.1"
resolved "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz"
integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==
@@ -5078,6 +5878,11 @@ ignore@^5.0.5, ignore@^5.1.8, ignore@^5.2.0:
resolved "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz"
integrity sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==
+immer@^9.0.19:
+ version "9.0.21"
+ resolved "https://registry.yarnpkg.com/immer/-/immer-9.0.21.tgz#1e025ea31a40f24fb064f1fef23e931496330176"
+ integrity sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA==
+
import-fresh@^3.0.0, import-fresh@^3.2.1:
version "3.3.0"
resolved "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz"
@@ -5312,11 +6117,6 @@ is-boolean-object@^1.1.0:
call-bind "^1.0.2"
has-tostringtag "^1.0.0"
-is-buffer@~1.1.1:
- version "1.1.6"
- resolved "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz"
- integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==
-
is-builtin-module@^3.1.0:
version "3.1.0"
resolved "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.1.0.tgz"
@@ -5577,53 +6377,7 @@ jju@~1.4.0:
resolved "https://registry.npmjs.org/jju/-/jju-1.4.0.tgz"
integrity sha1-o6vicYryQaKykE+EpiWXDzia4yo=
-js-crypto-env@^0.3.2:
- version "0.3.2"
- resolved "https://registry.npmjs.org/js-crypto-env/-/js-crypto-env-0.3.2.tgz"
- integrity sha512-F1uHiCkSOo36qBuuZABA4sBf+xeFBzhJZ0Sd7af8FAruszIhm1Xxv+Zr5Ne90Zlh7/fnxCsrdkj0N8f0a3lVlQ==
-
-js-crypto-hash@^0.6.3:
- version "0.6.3"
- resolved "https://registry.npmjs.org/js-crypto-hash/-/js-crypto-hash-0.6.3.tgz"
- integrity sha512-SG8c9tM8y3sUb4k7WvpVfu5vU7zfPvX+eaYR5578TvehkehdaQbqAc+y+1FwxnqQ3WZ0gsYoOKp/mW+mqtNoWA==
- dependencies:
- buffer "~5.4.3"
- hash.js "~1.1.7"
- js-crypto-env "^0.3.2"
- md5 "~2.2.1"
- sha3 "~2.1.0"
-
-js-crypto-hkdf@0.7.3:
- version "0.7.3"
- resolved "https://registry.npmjs.org/js-crypto-hkdf/-/js-crypto-hkdf-0.7.3.tgz"
- integrity sha512-eAaVArAjS2GCacWGXY4hjBiexrLQYlI0PMOcbwtrSEj84XU3kUfMYZm9bpTyaTXgdHC/eQoXe/Of6biG+RSEaQ==
- dependencies:
- js-crypto-env "^0.3.2"
- js-crypto-hmac "^0.6.3"
- js-crypto-random "^0.4.3"
- js-encoding-utils "0.5.6"
-
-js-crypto-hmac@^0.6.3:
- version "0.6.3"
- resolved "https://registry.npmjs.org/js-crypto-hmac/-/js-crypto-hmac-0.6.3.tgz"
- integrity sha512-T0pKOaHACOSG6Xs6/06G8RDDeZouQwIQNBq9L/zoUGsd4F67gAjpT3q2lGigAGpUd1hiyy7vnhvLpz7VDt6DbA==
- dependencies:
- js-crypto-env "^0.3.2"
- js-crypto-hash "^0.6.3"
-
-js-crypto-random@^0.4.3:
- version "0.4.3"
- resolved "https://registry.npmjs.org/js-crypto-random/-/js-crypto-random-0.4.3.tgz"
- integrity sha512-C3gzphPPfw9jfQ9Q/LjhJMZxQNp3AaoVRDvyZkiB+zYltfs8tKQPsskWkXACpg1Nzh01PtSRUvVijjptd2qGHQ==
- dependencies:
- js-crypto-env "^0.3.2"
-
-js-encoding-utils@0.5.6:
- version "0.5.6"
- resolved "https://registry.npmjs.org/js-encoding-utils/-/js-encoding-utils-0.5.6.tgz"
- integrity sha512-qnAGsUIWrmzh5n+3AXqbxX1KsB9hkQmJZf3aA9DLAS7GpL/NEHCBreFFbW+imramoU+Q0TDyvkwhRbBRH1TVkg==
-
-js-sha3@0.8.0, js-sha3@^0.8.0:
+js-sha3@0.8.0:
version "0.8.0"
resolved "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz"
integrity sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==
@@ -5723,11 +6477,21 @@ json5@^2.2.1:
array-includes "^3.1.4"
object.assign "^4.1.2"
+keyvaluestorage-interface@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/keyvaluestorage-interface/-/keyvaluestorage-interface-1.0.0.tgz#13ebdf71f5284ad54be94bd1ad9ed79adad515ff"
+ integrity sha512-8t6Q3TclQ4uZynJY9IGr2+SsIGwK9JHcO6ootkHCGA0CrQCRy+VkouYNO2xicET6b9al7QKzpebNow+gkpCL8g==
+
kind-of@^6.0.3:
version "6.0.3"
resolved "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz"
integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==
+klona@2.0.6:
+ version "2.0.6"
+ resolved "https://registry.yarnpkg.com/klona/-/klona-2.0.6.tgz#85bffbf819c03b2f53270412420a4555ef882e22"
+ integrity sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA==
+
language-subtag-registry@~0.3.2:
version "0.3.21"
resolved "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.21.tgz"
@@ -5829,6 +6593,11 @@ lodash.debounce@^4.0.8:
resolved "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz"
integrity sha1-gteb/zCmfEAF/9XiUVMArZyk168=
+lodash.isequal@4.5.0:
+ version "4.5.0"
+ resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0"
+ integrity sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==
+
lodash.merge@^4.6.2:
version "4.6.2"
resolved "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz"
@@ -5919,20 +6688,18 @@ md5.js@^1.3.4:
inherits "^2.0.1"
safe-buffer "^5.1.2"
-md5@~2.2.1:
- version "2.2.1"
- resolved "https://registry.npmjs.org/md5/-/md5-2.2.1.tgz"
- integrity sha1-U6s41f48iJG6RlMp6iP6wFQBJvk=
- dependencies:
- charenc "~0.0.1"
- crypt "~0.0.1"
- is-buffer "~1.1.1"
-
mdn-data@2.0.14:
version "2.0.14"
resolved "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz"
integrity sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==
+media-query-parser@^2.0.2:
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/media-query-parser/-/media-query-parser-2.0.2.tgz#ff79e56cee92615a304a1c2fa4f2bd056c0a1d29"
+ integrity sha512-1N4qp+jE0pL5Xv4uEcwVUhIkwdUO3S/9gML90nqKA7v7FcOS5vUtatfzok9S9U1EJU8dHWlcv95WLnKmmxZI9w==
+ dependencies:
+ "@babel/runtime" "^7.12.5"
+
memoizee@^0.4.15:
version "0.4.15"
resolved "https://registry.npmjs.org/memoizee/-/memoizee-0.4.15.tgz"
@@ -6063,16 +6830,28 @@ minimist@^1.1.1, minimist@^1.2.0, minimist@^1.2.5, minimist@^1.2.6:
resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz"
integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==
-miscreant@0.3.2:
- version "0.3.2"
- resolved "https://registry.npmjs.org/miscreant/-/miscreant-0.3.2.tgz"
- integrity sha512-fL9KxsQz9BJB2KGPMHFrReioywkiomBiuaLk6EuChijK0BsJsIKJXdVomR+/bPj5mvbFD6wM0CM3bZio9g7OHA==
-
mkdirp@^1.0.4:
version "1.0.4"
resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz"
integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==
+mobx@^6.1.7:
+ version "6.10.2"
+ resolved "https://registry.yarnpkg.com/mobx/-/mobx-6.10.2.tgz#96e123deef140750360ca9a5b02a8b91fbffd4d9"
+ integrity sha512-B1UGC3ieK3boCjnMEcZSwxqRDMdzX65H/8zOHbuTY8ZhvrIjTUoLRR2TP2bPqIgYRfb3+dUigu8yMZufNjn0LQ==
+
+motion@^10.16.2:
+ version "10.16.4"
+ resolved "https://registry.yarnpkg.com/motion/-/motion-10.16.4.tgz#247cba1072db546c788130b5e15b5e62a95e8b10"
+ integrity sha512-wvBeT0sZNgU6Od1aimjywBikqzm5yE97+L9eM/AoLy01AXNPdcnSDVHB3CoR0dGdHMbp/S0A/PjsJfWg0+k8Mg==
+ dependencies:
+ "@motionone/animation" "^10.16.3"
+ "@motionone/dom" "^10.16.4"
+ "@motionone/svelte" "^10.16.4"
+ "@motionone/types" "^10.16.3"
+ "@motionone/utils" "^10.16.3"
+ "@motionone/vue" "^10.16.4"
+
move-file@^2.1.0:
version "2.1.0"
resolved "https://registry.npmjs.org/move-file/-/move-file-2.1.0.tgz"
@@ -6423,7 +7202,12 @@ oblivious-set@1.0.0:
resolved "https://registry.npmjs.org/oblivious-set/-/oblivious-set-1.0.0.tgz"
integrity sha512-z+pI07qxo4c2CulUHCDf9lcqDlMSo72N/4rLUpRXf6fu+q8vjt8y0xS+Tlf8NTJDdTXHbdeO1n3MlbctwEoXZw==
-once@^1.3.0:
+on-exit-leak-free@^0.2.0:
+ version "0.2.0"
+ resolved "https://registry.yarnpkg.com/on-exit-leak-free/-/on-exit-leak-free-0.2.0.tgz#b39c9e3bf7690d890f4861558b0d7b90a442d209"
+ integrity sha512-dqaz3u44QbRXQooZLTUKU41ZrzYrcvLISVgbrzbyCMxpmSLJvZ3ZamIJIZ29P6OhZIkNIQKosdeM6t1LYbA9hg==
+
+once@^1.3.0, once@^1.4.0:
version "1.4.0"
resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz"
integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E=
@@ -6449,6 +7233,11 @@ optionator@^0.9.1:
type-check "^0.4.0"
word-wrap "^1.2.3"
+outdent@^0.8.0:
+ version "0.8.0"
+ resolved "https://registry.yarnpkg.com/outdent/-/outdent-0.8.0.tgz#2ebc3e77bf49912543f1008100ff8e7f44428eb0"
+ integrity sha512-KiOAIsdpUTcAXuykya5fnVVT+/5uS0Q1mrkRHcF89tpieSmY33O/tmc54CqwA+bfhbtEfZUNLHaPUiB9X3jt1A==
+
p-defer@^3.0.0:
version "3.0.0"
resolved "https://registry.npmjs.org/p-defer/-/p-defer-3.0.0.tgz"
@@ -6515,11 +7304,6 @@ p-try@^2.0.0:
resolved "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz"
integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==
-pako@1.0.11:
- version "1.0.11"
- resolved "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz"
- integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==
-
pako@^2.0.2:
version "2.0.4"
resolved "https://registry.npmjs.org/pako/-/pako-2.0.4.tgz"
@@ -6577,7 +7361,7 @@ path-type@^4.0.0:
resolved "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz"
integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==
-pbkdf2@^3.0.16, pbkdf2@^3.0.9, pbkdf2@^3.1.1:
+pbkdf2@^3.0.9:
version "3.1.2"
resolved "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz"
integrity sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==
@@ -6603,6 +7387,36 @@ pidtree@^0.5.0:
resolved "https://registry.npmjs.org/pidtree/-/pidtree-0.5.0.tgz"
integrity sha512-9nxspIM7OpZuhBxPg73Zvyq7j1QMPMPsGKTqRc2XOaFQauDvoNz9fM1Wdkjmeo7l9GXOZiRs97sPkuayl39wjA==
+pino-abstract-transport@v0.5.0:
+ version "0.5.0"
+ resolved "https://registry.yarnpkg.com/pino-abstract-transport/-/pino-abstract-transport-0.5.0.tgz#4b54348d8f73713bfd14e3dc44228739aa13d9c0"
+ integrity sha512-+KAgmVeqXYbTtU2FScx1XS3kNyfZ5TrXY07V96QnUSFqo2gAqlvmaxH67Lj7SWazqsMabf+58ctdTcBgnOLUOQ==
+ dependencies:
+ duplexify "^4.1.2"
+ split2 "^4.0.0"
+
+pino-std-serializers@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/pino-std-serializers/-/pino-std-serializers-4.0.0.tgz#1791ccd2539c091ae49ce9993205e2cd5dbba1e2"
+ integrity sha512-cK0pekc1Kjy5w9V2/n+8MkZwusa6EyyxfeQCB799CQRhRt/CqYKiWs5adeu8Shve2ZNffvfC/7J64A2PJo1W/Q==
+
+pino@7.11.0:
+ version "7.11.0"
+ resolved "https://registry.yarnpkg.com/pino/-/pino-7.11.0.tgz#0f0ea5c4683dc91388081d44bff10c83125066f6"
+ integrity sha512-dMACeu63HtRLmCG8VKdy4cShCPKaYDR4youZqoSWLxl5Gu99HUw8bw75thbPv9Nip+H+QYX8o3ZJbTdVZZ2TVg==
+ dependencies:
+ atomic-sleep "^1.0.0"
+ fast-redact "^3.0.0"
+ on-exit-leak-free "^0.2.0"
+ pino-abstract-transport v0.5.0
+ pino-std-serializers "^4.0.0"
+ process-warning "^1.0.0"
+ quick-format-unescaped "^4.0.3"
+ real-require "^0.1.0"
+ safe-stable-stringify "^2.1.0"
+ sonic-boom "^2.2.1"
+ thread-stream "^0.15.1"
+
pluralize@^8.0.0:
version "8.0.0"
resolved "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz"
@@ -6683,6 +7497,11 @@ prettier@^2.2.0:
resolved "https://registry.npmjs.org/prettier/-/prettier-2.7.1.tgz"
integrity sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g==
+process-warning@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/process-warning/-/process-warning-1.0.0.tgz#980a0b25dc38cd6034181be4b7726d89066b4616"
+ integrity sha512-du4wfLyj4yCZq1VupnVSZmRsPJsNuxoDQFdCFHLaYiEbFBD7QE0a+I4D7hOxrVnh78QE/YipFAj9lXHiXocV+Q==
+
prop-types@^15.6.0, prop-types@^15.8.1:
version "15.8.1"
resolved "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz"
@@ -6735,6 +7554,11 @@ proxy-compare@2.1.0:
resolved "https://registry.npmjs.org/proxy-compare/-/proxy-compare-2.1.0.tgz"
integrity sha512-wapJ3h/w8fRSyPEG0y2WMV+tf9xwvj3nxM6aHVuPEOwKs/t5xLSKZb44ubNTiqq2T6lmEMHEWGMTaU2L6ddaFA==
+proxy-compare@2.5.1:
+ version "2.5.1"
+ resolved "https://registry.yarnpkg.com/proxy-compare/-/proxy-compare-2.5.1.tgz#17818e33d1653fbac8c2ec31406bce8a2966f600"
+ integrity sha512-oyfc0Tx87Cpwva5ZXezSp5V9vht1c7dZBhvuV/y3ctkgMVUmiAGDVeeB0dKhGSyT0v1ZTEQYpe/RXlBVBNuCLA==
+
punycode@^2.1.0:
version "2.1.1"
resolved "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz"
@@ -6745,11 +7569,26 @@ qrcode.react@3.1.0:
resolved "https://registry.yarnpkg.com/qrcode.react/-/qrcode.react-3.1.0.tgz#5c91ddc0340f768316fbdb8fff2765134c2aecd8"
integrity sha512-oyF+Urr3oAMUG/OiOuONL3HXM+53wvuH3mtIWQrYmsXoAq0DkvZp2RYUWFSMFtbdOpuS++9v+WAkzNVkMlNW6Q==
+query-string@7.1.3:
+ version "7.1.3"
+ resolved "https://registry.yarnpkg.com/query-string/-/query-string-7.1.3.tgz#a1cf90e994abb113a325804a972d98276fe02328"
+ integrity sha512-hh2WYhq4fi8+b+/2Kg9CEge4fDPvHS534aOOvOZeQ3+Vf2mCFsaFBYj0i+iXcAq6I9Vzp5fjMFBlONvayDC1qg==
+ dependencies:
+ decode-uri-component "^0.2.2"
+ filter-obj "^1.1.0"
+ split-on-first "^1.0.0"
+ strict-uri-encode "^2.0.0"
+
queue-microtask@^1.2.2:
version "1.2.3"
resolved "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz"
integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==
+quick-format-unescaped@^4.0.3:
+ version "4.0.4"
+ resolved "https://registry.yarnpkg.com/quick-format-unescaped/-/quick-format-unescaped-4.0.4.tgz#93ef6dd8d3453cbc7970dd614fad4c5954d6b5a7"
+ integrity sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==
+
quick-lru@^4.0.1:
version "4.0.1"
resolved "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz"
@@ -6772,6 +7611,11 @@ rabin-wasm@^0.1.4:
node-fetch "^2.6.1"
readable-stream "^3.6.0"
+rainbow-sprinkles@^0.17.0:
+ version "0.17.0"
+ resolved "https://registry.yarnpkg.com/rainbow-sprinkles/-/rainbow-sprinkles-0.17.0.tgz#6ee06c6decc767b89bf01fc5fe87ecf859fd4c2f"
+ integrity sha512-ok3NrylQ0szvJtuBYaB/w09L9zOvvqcSQrvycT2A5XJxQNvwvkeADvTqQWGOQ3b6MkO8UmYccBPt8g8vVvxM9A==
+
randombytes@^2.0.1:
version "2.1.0"
resolved "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz"
@@ -6948,6 +7792,15 @@ read-pkg@^5.2.0:
parse-json "^5.0.0"
type-fest "^0.6.0"
+readable-stream@^3.1.1:
+ version "3.6.2"
+ resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967"
+ integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==
+ dependencies:
+ inherits "^2.0.3"
+ string_decoder "^1.1.1"
+ util-deprecate "^1.0.1"
+
readable-stream@^3.4.0, readable-stream@^3.6.0:
version "3.6.0"
resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz"
@@ -6969,6 +7822,11 @@ readonly-date@^1.0.0:
resolved "https://registry.npmjs.org/readonly-date/-/readonly-date-1.0.0.tgz"
integrity sha512-tMKIV7hlk0h4mO3JTmmVuIlJVXjKk3Sep9Bf5OH0O+758ruuVkUy2J9SttDLm91IEX/WHlXPSpxMGjPj4beMIQ==
+real-require@^0.1.0:
+ version "0.1.0"
+ resolved "https://registry.yarnpkg.com/real-require/-/real-require-0.1.0.tgz#736ac214caa20632847b7ca8c1056a0767df9381"
+ integrity sha512-r/H9MzAWtrv8aSVjPCMFpDMl5q66GqtmmRkRjpHTsp4zBAa+snZyiQNlMONiUmEJcsnaw0wCauJ2GWODr/aFkg==
+
receptacle@^1.3.2:
version "1.3.2"
resolved "https://registry.npmjs.org/receptacle/-/receptacle-1.3.2.tgz"
@@ -7006,6 +7864,11 @@ regenerator-runtime@^0.13.4:
resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz"
integrity sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==
+regenerator-runtime@^0.14.0:
+ version "0.14.0"
+ resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.14.0.tgz#5e19d68eb12d486f797e15a3c6a918f7cec5eb45"
+ integrity sha512-srw17NI0TUWHuGa5CFGGmhfNIeja30WMBfbslPNhf6JrqQlLN5gcrvig1oqPxiVaXb0oW0XRKtH6Nngs5lKCIA==
+
regenerator-transform@^0.15.0:
version "0.15.0"
resolved "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.0.tgz"
@@ -7126,7 +7989,7 @@ rimraf@3.0.2, rimraf@^3.0.2:
dependencies:
glob "^7.1.3"
-ripemd160@^2.0.0, ripemd160@^2.0.1, ripemd160@^2.0.2:
+ripemd160@^2.0.0, ripemd160@^2.0.1:
version "2.0.2"
resolved "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz"
integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==
@@ -7163,6 +8026,11 @@ safe-buffer@~5.1.1:
resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz"
integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
+safe-json-utils@^1.1.1:
+ version "1.1.1"
+ resolved "https://registry.yarnpkg.com/safe-json-utils/-/safe-json-utils-1.1.1.tgz#0e883874467d95ab914c3f511096b89bfb3e63b1"
+ integrity sha512-SAJWGKDs50tAbiDXLf89PDwt9XYkWyANFWVzn4dTXl5QyI8t2o/bW5/OJl3lvc2WVU4MEpTo9Yz5NVFNsp+OJQ==
+
safe-regex@^2.1.1:
version "2.1.1"
resolved "https://registry.npmjs.org/safe-regex/-/safe-regex-2.1.1.tgz"
@@ -7170,6 +8038,11 @@ safe-regex@^2.1.1:
dependencies:
regexp-tree "~0.1.1"
+safe-stable-stringify@^2.1.0:
+ version "2.4.3"
+ resolved "https://registry.yarnpkg.com/safe-stable-stringify/-/safe-stable-stringify-2.4.3.tgz#138c84b6f6edb3db5f8ef3ef7115b8f55ccbf886"
+ integrity sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==
+
"safer-buffer@>= 2.1.2 < 3.0.0":
version "2.1.2"
resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz"
@@ -7191,28 +8064,6 @@ secp256k1@^4.0.3:
node-addon-api "^2.0.0"
node-gyp-build "^4.2.0"
-secretjs@^0.17.0:
- version "0.17.5"
- resolved "https://registry.npmjs.org/secretjs/-/secretjs-0.17.5.tgz"
- integrity sha512-sf0+Je9KIEMQr/wJOgeqyBOV0ruiMNHSwP4L2vXiJbtzJWQqyVHyPkpavAhruNZ+91XlSzAFP2X5MPxqPBC9fQ==
- dependencies:
- "@iov/crypto" "2.1.0"
- "@iov/encoding" "2.1.0"
- "@iov/utils" "2.0.2"
- axios "0.21.1"
- curve25519-js "0.0.4"
- fast-deep-equal "3.1.1"
- js-crypto-hkdf "0.7.3"
- miscreant "0.3.2"
- pako "1.0.11"
- protobufjs "^6.11.2"
- secure-random "1.1.2"
-
-secure-random@1.1.2:
- version "1.1.2"
- resolved "https://registry.npmjs.org/secure-random/-/secure-random-1.1.2.tgz"
- integrity sha512-H2bdSKERKdBV1SwoqYm6C0y+9EA94v6SUBOWO8kDndc4NoUih7Dv6Tsgma7zO1lv27wIvjlD0ZpMQk7um5dheQ==
-
"semver@2 || 3 || 4 || 5":
version "5.7.1"
resolved "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz"
@@ -7235,6 +8086,13 @@ semver@^7.3.4, semver@^7.3.5:
dependencies:
lru-cache "^6.0.0"
+semver@^7.5.0:
+ version "7.5.4"
+ resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e"
+ integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==
+ dependencies:
+ lru-cache "^6.0.0"
+
sha.js@^2.4.0, sha.js@^2.4.11, sha.js@^2.4.8:
version "2.4.11"
resolved "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz"
@@ -7243,13 +8101,6 @@ sha.js@^2.4.0, sha.js@^2.4.11, sha.js@^2.4.8:
inherits "^2.0.1"
safe-buffer "^5.0.1"
-sha3@~2.1.0:
- version "2.1.4"
- resolved "https://registry.npmjs.org/sha3/-/sha3-2.1.4.tgz"
- integrity sha512-S8cNxbyb0UGUM2VhRD4Poe5N58gJnJsLJ5vC7FYWGUmGhcsj4++WaIOBFVDxlG0W3To6xBuiRh+i0Qp2oNCOtg==
- dependencies:
- buffer "6.0.3"
-
shebang-command@^2.0.0:
version "2.0.0"
resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz"
@@ -7314,6 +8165,13 @@ slice-ansi@^5.0.0:
ansi-styles "^6.0.0"
is-fullwidth-code-point "^4.0.0"
+sonic-boom@^2.2.1:
+ version "2.8.0"
+ resolved "https://registry.yarnpkg.com/sonic-boom/-/sonic-boom-2.8.0.tgz#c1def62a77425090e6ad7516aad8eb402e047611"
+ integrity sha512-kuonw1YOYYNOve5iHdSahXPOK49GqwA+LZhI6Wz/l0rP57iKyXXIHaRagOBHAPmGwJC6od2Z9zgvZ5loSgMlVg==
+ dependencies:
+ atomic-sleep "^1.0.0"
+
source-map-js@^1.0.1, source-map-js@^1.0.2:
version "1.0.2"
resolved "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz"
@@ -7360,11 +8218,26 @@ spdx-license-ids@^3.0.0:
resolved "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz"
integrity sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==
+split-on-first@^1.0.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/split-on-first/-/split-on-first-1.1.0.tgz#f610afeee3b12bce1d0c30425e76398b78249a5f"
+ integrity sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==
+
+split2@^4.0.0:
+ version "4.2.0"
+ resolved "https://registry.yarnpkg.com/split2/-/split2-4.2.0.tgz#c9c5920904d148bab0b9f67145f245a86aadbfa4"
+ integrity sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==
+
stable@^0.1.8:
version "0.1.8"
resolved "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz"
integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==
+stream-shift@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.1.tgz#d7088281559ab2778424279b0877da3c392d5a3d"
+ integrity sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==
+
stream-to-it@^0.2.2, stream-to-it@^0.2.3:
version "0.2.4"
resolved "https://registry.npmjs.org/stream-to-it/-/stream-to-it-0.2.4.tgz"
@@ -7377,6 +8250,11 @@ streaming-iterables@^6.0.0:
resolved "https://registry.npmjs.org/streaming-iterables/-/streaming-iterables-6.2.0.tgz"
integrity sha512-3AYC8oB60WyD1ic7uHmN/vm2oRGzRnQ3XFBl/bFMDi1q1+nc5/vjMmiE4vroIya3jG59t87VpyAj/iXYxyw9AA==
+strict-uri-encode@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz#b9c7330c7042862f6b142dc274bbcc5866ce3546"
+ integrity sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ==
+
string-argv@^0.3.1:
version "0.3.1"
resolved "https://registry.npmjs.org/string-argv/-/string-argv-0.3.1.tgz"
@@ -7543,6 +8421,11 @@ symbol-observable@^2.0.3:
resolved "https://registry.npmjs.org/symbol-observable/-/symbol-observable-2.0.3.tgz"
integrity sha512-sQV7phh2WCYAn81oAkakC5qjq2Ml0g8ozqz03wOGnx9dDlG1de6yrF+0RAzSJD8fPUow3PTSMf2SAbOGxb93BA==
+tabbable@^6.0.1, tabbable@^6.2.0:
+ version "6.2.0"
+ resolved "https://registry.yarnpkg.com/tabbable/-/tabbable-6.2.0.tgz#732fb62bc0175cfcec257330be187dcfba1f3b97"
+ integrity sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==
+
tailwindcss-opentype@1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/tailwindcss-opentype/-/tailwindcss-opentype-1.1.0.tgz#68aebc6f8a24151167b0a4f372370afe375a3b38"
@@ -7594,6 +8477,13 @@ thenify-all@^1.0.0:
dependencies:
any-promise "^1.0.0"
+thread-stream@^0.15.1:
+ version "0.15.2"
+ resolved "https://registry.yarnpkg.com/thread-stream/-/thread-stream-0.15.2.tgz#fb95ad87d2f1e28f07116eb23d85aba3bc0425f4"
+ integrity sha512-UkEhKIg2pD+fjkHQKyJO3yoIvAP3N6RlNFt2dUhcS1FGvCD1cQa1M/PGknCLFIyZdtJOWQjejp7bdNqmN7zwdA==
+ dependencies:
+ real-require "^0.1.0"
+
throttled-queue@^2.1.2:
version "2.1.4"
resolved "https://registry.npmjs.org/throttled-queue/-/throttled-queue-2.1.4.tgz"
@@ -7648,6 +8538,11 @@ to-regex-range@^5.0.1:
dependencies:
is-number "^7.0.0"
+toggle-selection@^1.0.6:
+ version "1.0.6"
+ resolved "https://registry.yarnpkg.com/toggle-selection/-/toggle-selection-1.0.6.tgz#6e45b1263f2017fa0acc7d89d78b15b8bf77da32"
+ integrity sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==
+
trim-newlines@^3.0.0:
version "3.0.1"
resolved "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz"
@@ -7663,7 +8558,7 @@ tsconfig-paths@^3.12.0, tsconfig-paths@^3.14.1:
minimist "^1.2.6"
strip-bom "^3.0.0"
-tslib@^1.11.1, tslib@^1.8.1:
+tslib@1.14.1, tslib@^1.11.1, tslib@^1.8.1:
version "1.14.1"
resolved "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz"
integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==
@@ -7712,11 +8607,6 @@ type-fest@^0.8.1:
resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz"
integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==
-type-tagger@^1.0.0:
- version "1.0.0"
- resolved "https://registry.npmjs.org/type-tagger/-/type-tagger-1.0.0.tgz"
- integrity sha512-FIPqqpmDgdaulCnRoKv1/d3U4xVBUrYn42QXWNP3XYmgfPUDuBUsgFOb9ntT0aIe0UsUP+lknpQ5d9Kn36RssA==
-
type@^1.0.1:
version "1.2.0"
resolved "https://registry.npmjs.org/type/-/type-1.2.0.tgz"
@@ -7744,6 +8634,13 @@ uint8arrays@^3.0.0:
dependencies:
multiformats "^9.4.2"
+uint8arrays@^3.1.0:
+ version "3.1.1"
+ resolved "https://registry.yarnpkg.com/uint8arrays/-/uint8arrays-3.1.1.tgz#2d8762acce159ccd9936057572dade9459f65ae0"
+ integrity sha512-+QJa8QRnbdXVpHYjLoTpJIdCTiw9Ir62nocClWuXIq2JIh4Uta0cQsTSpFL678p2CN8B+XSApwcU+pQEqVpKWg==
+ dependencies:
+ multiformats "^9.4.2"
+
unbox-primitive@^1.0.1, unbox-primitive@^1.0.2:
version "1.0.2"
resolved "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz"
@@ -7785,11 +8682,6 @@ unload@2.2.0:
"@babel/runtime" "^7.6.2"
detect-node "^2.0.4"
-unorm@^1.5.0:
- version "1.6.0"
- resolved "https://registry.npmjs.org/unorm/-/unorm-1.6.0.tgz"
- integrity sha512-b2/KCUlYZUeA7JFUuRJZPUtr4gZvBh7tavtv4fvk4+KV9pfGiR6CQAQAWl49ZpR3ts2dk4FYkP7EIgDJoiOLDA==
-
update-input-width@^1.2.2:
version "1.2.2"
resolved "https://registry.npmjs.org/update-input-width/-/update-input-width-1.2.2.tgz"
@@ -7807,6 +8699,11 @@ use-context-selector@1.3.10:
resolved "https://registry.npmjs.org/use-context-selector/-/use-context-selector-1.3.10.tgz"
integrity sha512-xprS9YQ0F56IPTOjev+Lm+TWZD7Pa20+slBeaClt4YtOOoHKFOF3A9Cfr7LDcX2QIZ9VTyxXCnA6/WhL4Cm47g==
+use-sync-external-store@1.2.0:
+ version "1.2.0"
+ resolved "https://registry.yarnpkg.com/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz#7dbefd6ef3fe4e767a0cf5d7287aacfb5846928a"
+ integrity sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==
+
util-deprecate@^1.0.1, util-deprecate@^1.0.2:
version "1.0.2"
resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz"
@@ -7834,6 +8731,11 @@ uuid@^8.3.2:
resolved "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz"
integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==
+uuid@^9.0.1:
+ version "9.0.1"
+ resolved "https://registry.yarnpkg.com/uuid/-/uuid-9.0.1.tgz#e188d4c8853cc722220392c424cd637f32293f30"
+ integrity sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==
+
v8-compile-cache@^2.0.3:
version "2.3.0"
resolved "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz"
@@ -7948,6 +8850,11 @@ ws@^7:
resolved "https://registry.npmjs.org/ws/-/ws-7.5.7.tgz"
integrity sha512-KMvVuFzpKBuiIXW3E4u3mySRO2/mCHSyZDJQM5NQ9Q9KHWHWh0NHgfbRMLLrceUK5qAL4ytALJbpRMjixFZh8A==
+ws@^7.5.1:
+ version "7.5.9"
+ resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.9.tgz#54fa7db29f4c7cec68b1ddd3a89de099942bb591"
+ integrity sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==
+
xstream@^11.14.0:
version "11.14.0"
resolved "https://registry.npmjs.org/xstream/-/xstream-11.14.0.tgz"
@@ -7976,7 +8883,9 @@ yargs-parser@^20.2.3:
resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz"
integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==
-zustand@^3:
- version "3.7.2"
- resolved "https://registry.npmjs.org/zustand/-/zustand-3.7.2.tgz"
- integrity sha512-PIJDIZKtokhof+9+60cpockVOq05sJzHCriyvaLBmEJixseQ1a5Kdov6fWZfWOu5SK9c+FhH1jU0tntLxRJYMA==
+zustand@^4, zustand@^4.3.8:
+ version "4.4.3"
+ resolved "https://registry.yarnpkg.com/zustand/-/zustand-4.4.3.tgz#1d54cf7fa4507ad8bf58e2f13e08ddc8a6730128"
+ integrity sha512-oRy+X3ZazZvLfmv6viIaQmtLOMeij1noakIsK/Y47PWYhT8glfXzQ4j0YcP5i0P0qI1A4rIB//SGROGyZhx91A==
+ dependencies:
+ use-sync-external-store "1.2.0"