Merge branch 'wallets'
This commit is contained in:
commit
c7c2c7d8c4
BIN
wallets/.DS_Store
vendored
BIN
wallets/.DS_Store
vendored
Binary file not shown.
@ -1,3 +1,3 @@
|
|||||||
module.exports = {
|
module.exports = {
|
||||||
reactStrictMode: true,
|
reactStrictMode: true
|
||||||
};
|
}
|
||||||
|
@ -12,18 +12,22 @@
|
|||||||
"@walletconnect/utils": "2.0.0-beta.22",
|
"@walletconnect/utils": "2.0.0-beta.22",
|
||||||
"@json-rpc-tools/utils": "1.7.6",
|
"@json-rpc-tools/utils": "1.7.6",
|
||||||
"@nextui-org/react": "1.0.2-beta.4",
|
"@nextui-org/react": "1.0.2-beta.4",
|
||||||
|
"bip39": "3.0.4",
|
||||||
|
"bip32": "3.0.1",
|
||||||
|
"bech32": "2.0.0",
|
||||||
|
"tiny-secp256k1": "1.1.6",
|
||||||
"next": "12.1.0",
|
"next": "12.1.0",
|
||||||
"react": "17.0.2",
|
"react": "17.0.2",
|
||||||
"react-dom": "17.0.2",
|
"react-dom": "17.0.2",
|
||||||
"react-qr-reader-es6": "2.2.1-2",
|
"react-qr-reader-es6": "2.2.1-2",
|
||||||
"framer-motion": "6.2.7",
|
"framer-motion": "6.2.8",
|
||||||
"ethers": "5.5.4",
|
"ethers": "5.5.4",
|
||||||
"valtio": "1.3.0",
|
"valtio": "1.3.0",
|
||||||
"react-code-blocks": "0.0.9-0"
|
"react-code-blocks": "0.0.9-0"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@walletconnect/types": "2.0.0-beta.22",
|
"@walletconnect/types": "2.0.0-beta.22",
|
||||||
"@types/node": "17.0.19",
|
"@types/node": "17.0.21",
|
||||||
"@types/react": "17.0.39",
|
"@types/react": "17.0.39",
|
||||||
"eslint": "8.9.0",
|
"eslint": "8.9.0",
|
||||||
"eslint-config-next": "12.1.0",
|
"eslint-config-next": "12.1.0",
|
||||||
|
Binary file not shown.
After Width: | Height: | Size: 13 KiB |
@ -0,0 +1,3 @@
|
|||||||
|
<svg width="512" height="512" viewBox="0 0 512 512" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<path d="M184 112L328 256L184 400" stroke="white" stroke-width="48" stroke-linecap="round" stroke-linejoin="round"/>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 224 B |
@ -1,18 +1,22 @@
|
|||||||
import SettingsStore from '@/store/SettingsStore'
|
import SettingsStore from '@/store/SettingsStore'
|
||||||
import { addresses } from '@/utils/WalletUtil'
|
import { cosmosAddresses } from '@/utils/CosmosWalletUtil'
|
||||||
|
import { eip155Addresses } from '@/utils/EIP155WalletUtil'
|
||||||
import { useSnapshot } from 'valtio'
|
import { useSnapshot } from 'valtio'
|
||||||
|
|
||||||
export default function AccountPicker() {
|
export default function AccountPicker() {
|
||||||
const { address } = useSnapshot(SettingsStore.state)
|
const { account } = useSnapshot(SettingsStore.state)
|
||||||
|
|
||||||
|
function onSelect(value: string) {
|
||||||
|
const account = Number(value)
|
||||||
|
SettingsStore.setAccount(account)
|
||||||
|
SettingsStore.setEIP155Address(eip155Addresses[account])
|
||||||
|
SettingsStore.setCosmosAddress(cosmosAddresses[account])
|
||||||
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<select
|
<select value={account} onChange={e => onSelect(e.currentTarget.value)} aria-label="addresses">
|
||||||
value={address}
|
<option value={0}>Account 1</option>
|
||||||
onChange={e => SettingsStore.setAddress(e.currentTarget.value)}
|
<option value={1}>Account 2</option>
|
||||||
aria-label="addresses"
|
|
||||||
>
|
|
||||||
<option value={addresses[0]}>Account 1</option>
|
|
||||||
<option value={addresses[1]}>Account 2</option>
|
|
||||||
</select>
|
</select>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
@ -1,23 +1,26 @@
|
|||||||
import { truncate } from '@/utils/HelperUtil'
|
import { truncate } from '@/utils/HelperUtil'
|
||||||
import { Avatar, Button, Card, Link, Text, Tooltip } from '@nextui-org/react'
|
import { Avatar, Card, Link, Text } from '@nextui-org/react'
|
||||||
import Image from 'next/image'
|
import Image from 'next/image'
|
||||||
|
import NextLink from 'next/link'
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Types
|
* Types
|
||||||
*/
|
*/
|
||||||
interface IProps {
|
interface IProps {
|
||||||
|
topic?: string
|
||||||
logo?: string
|
logo?: string
|
||||||
name?: string
|
name?: string
|
||||||
url?: string
|
url?: string
|
||||||
onDelete: () => Promise<void>
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Component
|
* Component
|
||||||
*/
|
*/
|
||||||
export default function SessionCard({ logo, name, url, onDelete }: IProps) {
|
export default function SessionCard({ logo, name, url, topic }: IProps) {
|
||||||
return (
|
return (
|
||||||
|
<NextLink href={`/session?topic=${topic}`} passHref>
|
||||||
<Card
|
<Card
|
||||||
|
clickable
|
||||||
bordered
|
bordered
|
||||||
borderWeight="light"
|
borderWeight="light"
|
||||||
css={{
|
css={{
|
||||||
@ -43,12 +46,10 @@ export default function SessionCard({ logo, name, url, onDelete }: IProps) {
|
|||||||
{truncate(url?.split('https://')[1] ?? 'Unknown', 23)}
|
{truncate(url?.split('https://')[1] ?? 'Unknown', 23)}
|
||||||
</Link>
|
</Link>
|
||||||
</div>
|
</div>
|
||||||
<Tooltip content="Delete" placement="left">
|
|
||||||
<Button size="sm" color="error" flat onClick={onDelete} css={{ minWidth: 'auto' }}>
|
<Image src={'/icons/arrow-right-icon.svg'} width={20} height={20} alt="session icon" />
|
||||||
<Image src={'/icons/delete-icon.svg'} width={15} height={15} alt="delete icon" />
|
|
||||||
</Button>
|
|
||||||
</Tooltip>
|
|
||||||
</Card.Body>
|
</Card.Body>
|
||||||
</Card>
|
</Card>
|
||||||
|
</NextLink>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
17
wallets/react-wallet-v2/src/data/COSMOSData.ts
Normal file
17
wallets/react-wallet-v2/src/data/COSMOSData.ts
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
/**
|
||||||
|
* Types
|
||||||
|
*/
|
||||||
|
export type TCosmosChain = keyof typeof COSMOS_MAINNET_CHAINS
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Chains
|
||||||
|
*/
|
||||||
|
export const COSMOS_MAINNET_CHAINS = {
|
||||||
|
'cosmos:cosmoshub-4': {
|
||||||
|
chainId: 'cosmoshub-4',
|
||||||
|
name: 'Cosmos Hub',
|
||||||
|
logo: '/chain-logos/cosmos-cosmoshub-4.png',
|
||||||
|
rgb: '107, 111, 147',
|
||||||
|
rpc: ''
|
||||||
|
}
|
||||||
|
}
|
@ -1,6 +1,7 @@
|
|||||||
import SettingsStore from '@/store/SettingsStore'
|
import SettingsStore from '@/store/SettingsStore'
|
||||||
|
import { createOrRestoreCosmosWallet } from '@/utils/CosmosWalletUtil'
|
||||||
|
import { createOrRestoreEIP155Wallet } from '@/utils/EIP155WalletUtil'
|
||||||
import { createWalletConnectClient } from '@/utils/WalletConnectUtil'
|
import { createWalletConnectClient } from '@/utils/WalletConnectUtil'
|
||||||
import { createOrRestoreWallet } from '@/utils/WalletUtil'
|
|
||||||
import { useCallback, useEffect, useState } from 'react'
|
import { useCallback, useEffect, useState } from 'react'
|
||||||
|
|
||||||
export default function useInitialization() {
|
export default function useInitialization() {
|
||||||
@ -8,9 +9,14 @@ export default function useInitialization() {
|
|||||||
|
|
||||||
const onInitialize = useCallback(async () => {
|
const onInitialize = useCallback(async () => {
|
||||||
try {
|
try {
|
||||||
const { addresses } = createOrRestoreWallet()
|
const { eip155Addresses } = createOrRestoreEIP155Wallet()
|
||||||
SettingsStore.setAddress(addresses[0])
|
const { cosmosAddresses } = await createOrRestoreCosmosWallet()
|
||||||
|
|
||||||
|
SettingsStore.setEIP155Address(eip155Addresses[0])
|
||||||
|
SettingsStore.setCosmosAddress(cosmosAddresses[0])
|
||||||
|
|
||||||
await createWalletConnectClient()
|
await createWalletConnectClient()
|
||||||
|
|
||||||
setInitialized(true)
|
setInitialized(true)
|
||||||
} catch (err: unknown) {
|
} catch (err: unknown) {
|
||||||
alert(err)
|
alert(err)
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
import AccountCard from '@/components/AccountCard'
|
import AccountCard from '@/components/AccountCard'
|
||||||
import AccountPicker from '@/components/AccountPicker'
|
import AccountPicker from '@/components/AccountPicker'
|
||||||
import PageHeader from '@/components/PageHeader'
|
import PageHeader from '@/components/PageHeader'
|
||||||
|
import { COSMOS_MAINNET_CHAINS } from '@/data/COSMOSData'
|
||||||
import { EIP155_MAINNET_CHAINS, EIP155_TEST_CHAINS } from '@/data/EIP155Data'
|
import { EIP155_MAINNET_CHAINS, EIP155_TEST_CHAINS } from '@/data/EIP155Data'
|
||||||
import SettingsStore from '@/store/SettingsStore'
|
import SettingsStore from '@/store/SettingsStore'
|
||||||
import { Text } from '@nextui-org/react'
|
import { Text } from '@nextui-org/react'
|
||||||
@ -8,7 +9,7 @@ import { Fragment } from 'react'
|
|||||||
import { useSnapshot } from 'valtio'
|
import { useSnapshot } from 'valtio'
|
||||||
|
|
||||||
export default function HomePage() {
|
export default function HomePage() {
|
||||||
const { testNets, address } = useSnapshot(SettingsStore.state)
|
const { testNets, eip155Address, cosmosAddress } = useSnapshot(SettingsStore.state)
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Fragment>
|
<Fragment>
|
||||||
@ -19,7 +20,10 @@ export default function HomePage() {
|
|||||||
Mainnets
|
Mainnets
|
||||||
</Text>
|
</Text>
|
||||||
{Object.values(EIP155_MAINNET_CHAINS).map(({ name, logo, rgb }) => (
|
{Object.values(EIP155_MAINNET_CHAINS).map(({ name, logo, rgb }) => (
|
||||||
<AccountCard key={name} name={name} logo={logo} rgb={rgb} address={address} />
|
<AccountCard key={name} name={name} logo={logo} rgb={rgb} address={eip155Address} />
|
||||||
|
))}
|
||||||
|
{Object.values(COSMOS_MAINNET_CHAINS).map(({ name, logo, rgb }) => (
|
||||||
|
<AccountCard key={name} name={name} logo={logo} rgb={rgb} address={cosmosAddress} />
|
||||||
))}
|
))}
|
||||||
|
|
||||||
{testNets ? (
|
{testNets ? (
|
||||||
@ -28,7 +32,7 @@ export default function HomePage() {
|
|||||||
Testnets
|
Testnets
|
||||||
</Text>
|
</Text>
|
||||||
{Object.values(EIP155_TEST_CHAINS).map(({ name, logo, rgb }) => (
|
{Object.values(EIP155_TEST_CHAINS).map(({ name, logo, rgb }) => (
|
||||||
<AccountCard key={name} name={name} logo={logo} rgb={rgb} address={address} />
|
<AccountCard key={name} name={name} logo={logo} rgb={rgb} address={eip155Address} />
|
||||||
))}
|
))}
|
||||||
</Fragment>
|
</Fragment>
|
||||||
) : null}
|
) : null}
|
||||||
|
57
wallets/react-wallet-v2/src/pages/session.tsx
Normal file
57
wallets/react-wallet-v2/src/pages/session.tsx
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
import PageHeader from '@/components/PageHeader'
|
||||||
|
import { truncate } from '@/utils/HelperUtil'
|
||||||
|
import { walletConnectClient } from '@/utils/WalletConnectUtil'
|
||||||
|
import { Avatar, Col, Link, Row, Text } from '@nextui-org/react'
|
||||||
|
import { useRouter } from 'next/router'
|
||||||
|
import { Fragment, useEffect, useState } from 'react'
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Component
|
||||||
|
*/
|
||||||
|
export default function SessionPage() {
|
||||||
|
const [topic, setTopic] = useState('')
|
||||||
|
const { query } = useRouter()
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
if (query?.topic) {
|
||||||
|
setTopic(query.topic as string)
|
||||||
|
}
|
||||||
|
}, [query])
|
||||||
|
|
||||||
|
// async function onDelete(topic: string) {
|
||||||
|
// await walletConnectClient.session.delete({
|
||||||
|
// topic,
|
||||||
|
// reason: ERROR.DELETED.format()
|
||||||
|
// })
|
||||||
|
// const newSessions = sessions.filter(sessions => sessions.topic !== topic)
|
||||||
|
// setSessions(newSessions)
|
||||||
|
// }
|
||||||
|
|
||||||
|
const session = walletConnectClient.session.values.find(s => s.topic === topic)
|
||||||
|
|
||||||
|
console.log(session)
|
||||||
|
|
||||||
|
if (!session) {
|
||||||
|
return null
|
||||||
|
}
|
||||||
|
|
||||||
|
const { name, url, icons } = session.peer.metadata
|
||||||
|
|
||||||
|
return (
|
||||||
|
<Fragment>
|
||||||
|
<PageHeader title="Session Details" />
|
||||||
|
|
||||||
|
<Row align="center">
|
||||||
|
<Col css={{ flex: 1 }}>
|
||||||
|
<Avatar size="xl" src={icons[0]} />
|
||||||
|
</Col>
|
||||||
|
<Col css={{ marginLeft: '$5' }}>
|
||||||
|
<Text h5>{name}</Text>
|
||||||
|
<Link css={{ marginLeft: '$5' }} href={url}>
|
||||||
|
{truncate(url?.split('https://')[1] ?? 'Unknown', 23)}
|
||||||
|
</Link>
|
||||||
|
</Col>
|
||||||
|
</Row>
|
||||||
|
</Fragment>
|
||||||
|
)
|
||||||
|
}
|
@ -2,21 +2,11 @@ import PageHeader from '@/components/PageHeader'
|
|||||||
import SessionCard from '@/components/SessionCard'
|
import SessionCard from '@/components/SessionCard'
|
||||||
import { walletConnectClient } from '@/utils/WalletConnectUtil'
|
import { walletConnectClient } from '@/utils/WalletConnectUtil'
|
||||||
import { Text } from '@nextui-org/react'
|
import { Text } from '@nextui-org/react'
|
||||||
import { ERROR } from '@walletconnect/utils'
|
|
||||||
import { Fragment, useState } from 'react'
|
import { Fragment, useState } from 'react'
|
||||||
|
|
||||||
export default function SessionsPage() {
|
export default function SessionsPage() {
|
||||||
const [sessions, setSessions] = useState(walletConnectClient.session.values)
|
const [sessions, setSessions] = useState(walletConnectClient.session.values)
|
||||||
|
|
||||||
async function onDelete(topic: string) {
|
|
||||||
await walletConnectClient.session.delete({
|
|
||||||
topic,
|
|
||||||
reason: ERROR.DELETED.format()
|
|
||||||
})
|
|
||||||
const newSessions = sessions.filter(sessions => sessions.topic !== topic)
|
|
||||||
setSessions(newSessions)
|
|
||||||
}
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Fragment>
|
<Fragment>
|
||||||
<PageHeader title="Sessions" />
|
<PageHeader title="Sessions" />
|
||||||
@ -27,10 +17,10 @@ export default function SessionsPage() {
|
|||||||
return (
|
return (
|
||||||
<SessionCard
|
<SessionCard
|
||||||
key={session.topic}
|
key={session.topic}
|
||||||
|
topic={session.topic}
|
||||||
name={name}
|
name={name}
|
||||||
logo={icons[0]}
|
logo={icons[0]}
|
||||||
url={url}
|
url={url}
|
||||||
onDelete={() => onDelete(session.topic)}
|
|
||||||
/>
|
/>
|
||||||
)
|
)
|
||||||
})
|
})
|
||||||
|
@ -1,12 +1,12 @@
|
|||||||
import PageHeader from '@/components/PageHeader'
|
import PageHeader from '@/components/PageHeader'
|
||||||
import SettingsStore from '@/store/SettingsStore'
|
import SettingsStore from '@/store/SettingsStore'
|
||||||
import { wallets } from '@/utils/WalletUtil'
|
import { eip155Wallets } from '@/utils/EIP155WalletUtil'
|
||||||
import { Card, Divider, Row, Switch, Text } from '@nextui-org/react'
|
import { Card, Divider, Row, Switch, Text } from '@nextui-org/react'
|
||||||
import { Fragment } from 'react'
|
import { Fragment } from 'react'
|
||||||
import { useSnapshot } from 'valtio'
|
import { useSnapshot } from 'valtio'
|
||||||
|
|
||||||
export default function SettingsPage() {
|
export default function SettingsPage() {
|
||||||
const { testNets, address } = useSnapshot(SettingsStore.state)
|
const { testNets, eip155Address } = useSnapshot(SettingsStore.state)
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Fragment>
|
<Fragment>
|
||||||
@ -15,7 +15,7 @@ export default function SettingsPage() {
|
|||||||
Mnemonic
|
Mnemonic
|
||||||
</Text>
|
</Text>
|
||||||
<Card bordered borderWeight="light" css={{ minHeight: '75px' }}>
|
<Card bordered borderWeight="light" css={{ minHeight: '75px' }}>
|
||||||
<Text css={{ fontFamily: '$mono' }}>{wallets[address].mnemonic.phrase}</Text>
|
<Text css={{ fontFamily: '$mono' }}>{eip155Wallets[eip155Address].mnemonic.phrase}</Text>
|
||||||
</Card>
|
</Card>
|
||||||
|
|
||||||
<Text css={{ color: '$yellow500', marginTop: '$5', textAlign: 'center' }}>
|
<Text css={{ color: '$yellow500', marginTop: '$5', textAlign: 'center' }}>
|
||||||
|
@ -5,7 +5,9 @@ import { proxy } from 'valtio'
|
|||||||
*/
|
*/
|
||||||
interface State {
|
interface State {
|
||||||
testNets: boolean
|
testNets: boolean
|
||||||
address: string
|
account: number
|
||||||
|
eip155Address: string
|
||||||
|
cosmosAddress: string
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -13,7 +15,9 @@ interface State {
|
|||||||
*/
|
*/
|
||||||
const state = proxy<State>({
|
const state = proxy<State>({
|
||||||
testNets: typeof localStorage !== 'undefined' ? Boolean(localStorage.getItem('TEST_NETS')) : true,
|
testNets: typeof localStorage !== 'undefined' ? Boolean(localStorage.getItem('TEST_NETS')) : true,
|
||||||
address: ''
|
account: 0,
|
||||||
|
eip155Address: '',
|
||||||
|
cosmosAddress: ''
|
||||||
})
|
})
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -22,8 +26,16 @@ const state = proxy<State>({
|
|||||||
const SettingsStore = {
|
const SettingsStore = {
|
||||||
state,
|
state,
|
||||||
|
|
||||||
setAddress(address: string) {
|
setAccount(value: number) {
|
||||||
state.address = address
|
state.account = value
|
||||||
|
},
|
||||||
|
|
||||||
|
setEIP155Address(eip155Address: string) {
|
||||||
|
state.eip155Address = eip155Address
|
||||||
|
},
|
||||||
|
|
||||||
|
setCosmosAddress(cosmosAddresses: string) {
|
||||||
|
state.cosmosAddress = cosmosAddresses
|
||||||
},
|
},
|
||||||
|
|
||||||
toggleTestNets() {
|
toggleTestNets() {
|
||||||
|
53
wallets/react-wallet-v2/src/utils/CosmosUtil.ts
Normal file
53
wallets/react-wallet-v2/src/utils/CosmosUtil.ts
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
import { bech32 } from 'bech32'
|
||||||
|
import BIP32Factory from 'bip32'
|
||||||
|
import * as bip39 from 'bip39'
|
||||||
|
// @ts-expect-error
|
||||||
|
import * as ecc from 'tiny-secp256k1'
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Helpers
|
||||||
|
*/
|
||||||
|
const bip32 = BIP32Factory(ecc)
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Types
|
||||||
|
*/
|
||||||
|
interface IConstructor {
|
||||||
|
url?: string
|
||||||
|
prefix?: string
|
||||||
|
chainId?: string
|
||||||
|
path?: string
|
||||||
|
mnemonic?: string
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Utility
|
||||||
|
*/
|
||||||
|
export class Cosmos {
|
||||||
|
url: string
|
||||||
|
prefix: string
|
||||||
|
chainId: string
|
||||||
|
path: string
|
||||||
|
mnemonic: string
|
||||||
|
|
||||||
|
constructor({ url, prefix, chainId, path, mnemonic }: IConstructor) {
|
||||||
|
this.url = url ?? 'https://api.cosmos.network'
|
||||||
|
this.prefix = prefix ?? 'cosmos'
|
||||||
|
this.chainId = chainId ?? 'cosmoshub-4'
|
||||||
|
this.path = path ?? "m/44'/118'/0'/0/0"
|
||||||
|
this.mnemonic = mnemonic ?? this.generateMnemonic()
|
||||||
|
}
|
||||||
|
|
||||||
|
generateMnemonic(strength = 128) {
|
||||||
|
return bip39.generateMnemonic(strength)
|
||||||
|
}
|
||||||
|
|
||||||
|
async getAddress() {
|
||||||
|
const seed = await bip39.mnemonicToSeed(this.mnemonic)
|
||||||
|
const node = bip32.fromSeed(seed)
|
||||||
|
const child = node.derivePath(this.path)
|
||||||
|
const words = bech32.toWords(child.identifier)
|
||||||
|
|
||||||
|
return bech32.encode(this.prefix, words)
|
||||||
|
}
|
||||||
|
}
|
43
wallets/react-wallet-v2/src/utils/CosmosWalletUtil.ts
Normal file
43
wallets/react-wallet-v2/src/utils/CosmosWalletUtil.ts
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
import { Cosmos } from '@/utils/CosmosUtil'
|
||||||
|
|
||||||
|
export let wallet1: Cosmos
|
||||||
|
export let wallet2: Cosmos
|
||||||
|
export let cosmosWallets: Record<string, Cosmos>
|
||||||
|
export let cosmosAddresses: string[]
|
||||||
|
|
||||||
|
let address1: string
|
||||||
|
let address2: string
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Utilities
|
||||||
|
*/
|
||||||
|
export async function createOrRestoreCosmosWallet() {
|
||||||
|
const mnemonic = localStorage.getItem('WALLET_MNEMONIC')
|
||||||
|
|
||||||
|
if (mnemonic) {
|
||||||
|
wallet1 = new Cosmos({ mnemonic, path: "m/44'/118'/0'/0/0" })
|
||||||
|
wallet2 = new Cosmos({ mnemonic, path: "m/44'/118'/0'/0/1" })
|
||||||
|
address1 = await wallet1.getAddress()
|
||||||
|
address2 = await wallet2.getAddress()
|
||||||
|
} else {
|
||||||
|
wallet1 = new Cosmos({ path: "m/44'/118'/0'/0/0" })
|
||||||
|
const mnemonic = wallet1.mnemonic
|
||||||
|
// We can reuse same mnemonic for both wallets
|
||||||
|
wallet2 = new Cosmos({ mnemonic, path: "m/44'/118'/0'/0/1" })
|
||||||
|
address1 = await wallet1.getAddress()
|
||||||
|
address2 = await wallet2.getAddress()
|
||||||
|
// Don't store mnemonic in local storage in a production project!
|
||||||
|
localStorage.setItem('WALLET_MNEMONIC', mnemonic)
|
||||||
|
}
|
||||||
|
|
||||||
|
cosmosWallets = {
|
||||||
|
[address1]: wallet1,
|
||||||
|
[address2]: wallet2
|
||||||
|
}
|
||||||
|
cosmosAddresses = Object.keys(cosmosWallets)
|
||||||
|
|
||||||
|
return {
|
||||||
|
cosmosWallets,
|
||||||
|
cosmosAddresses
|
||||||
|
}
|
||||||
|
}
|
@ -1,10 +1,10 @@
|
|||||||
import { EIP155_CHAINS, EIP155_SIGNING_METHODS, TEIP155Chain } from '@/data/EIP155Data'
|
import { EIP155_CHAINS, EIP155_SIGNING_METHODS, TEIP155Chain } from '@/data/EIP155Data'
|
||||||
|
import { eip155Addresses, eip155Wallets } from '@/utils/EIP155WalletUtil'
|
||||||
import {
|
import {
|
||||||
getSignParamsMessage,
|
getSignParamsMessage,
|
||||||
getSignTypedDataParamsData,
|
getSignTypedDataParamsData,
|
||||||
getWalletAddressFromParams
|
getWalletAddressFromParams
|
||||||
} from '@/utils/HelperUtil'
|
} from '@/utils/HelperUtil'
|
||||||
import { addresses, wallets } from '@/utils/WalletUtil'
|
|
||||||
import { formatJsonRpcError, formatJsonRpcResult } from '@json-rpc-tools/utils'
|
import { formatJsonRpcError, formatJsonRpcResult } from '@json-rpc-tools/utils'
|
||||||
import { RequestEvent } from '@walletconnect/types'
|
import { RequestEvent } from '@walletconnect/types'
|
||||||
import { ERROR } from '@walletconnect/utils'
|
import { ERROR } from '@walletconnect/utils'
|
||||||
@ -13,7 +13,7 @@ import { providers } from 'ethers'
|
|||||||
export async function approveEIP155Request(requestEvent: RequestEvent) {
|
export async function approveEIP155Request(requestEvent: RequestEvent) {
|
||||||
const { method, params, id } = requestEvent.request
|
const { method, params, id } = requestEvent.request
|
||||||
const { chainId } = requestEvent
|
const { chainId } = requestEvent
|
||||||
const wallet = wallets[getWalletAddressFromParams(addresses, params)]
|
const wallet = eip155Wallets[getWalletAddressFromParams(eip155Addresses, params)]
|
||||||
|
|
||||||
switch (method) {
|
switch (method) {
|
||||||
case EIP155_SIGNING_METHODS.PERSONAL_SIGN:
|
case EIP155_SIGNING_METHODS.PERSONAL_SIGN:
|
@ -1,11 +1,15 @@
|
|||||||
import { Wallet } from 'ethers'
|
import { Wallet } from 'ethers'
|
||||||
|
|
||||||
export let wallets: Record<string, Wallet>
|
export let eip155Wallets: Record<string, Wallet>
|
||||||
export let addresses: string[]
|
export let eip155Addresses: string[]
|
||||||
export let wallet1: Wallet
|
|
||||||
export let wallet2: Wallet
|
|
||||||
|
|
||||||
export function createOrRestoreWallet() {
|
let wallet1: Wallet
|
||||||
|
let wallet2: Wallet
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Utilities
|
||||||
|
*/
|
||||||
|
export function createOrRestoreEIP155Wallet() {
|
||||||
const mnemonic = localStorage.getItem('WALLET_MNEMONIC')
|
const mnemonic = localStorage.getItem('WALLET_MNEMONIC')
|
||||||
|
|
||||||
if (mnemonic) {
|
if (mnemonic) {
|
||||||
@ -18,14 +22,14 @@ export function createOrRestoreWallet() {
|
|||||||
localStorage.setItem('WALLET_MNEMONIC', wallet1.mnemonic.phrase)
|
localStorage.setItem('WALLET_MNEMONIC', wallet1.mnemonic.phrase)
|
||||||
}
|
}
|
||||||
|
|
||||||
wallets = {
|
eip155Wallets = {
|
||||||
[wallet1.address]: wallet1,
|
[wallet1.address]: wallet1,
|
||||||
[wallet2.address]: wallet2
|
[wallet2.address]: wallet2
|
||||||
}
|
}
|
||||||
addresses = Object.keys(wallets)
|
eip155Addresses = Object.keys(eip155Wallets)
|
||||||
|
|
||||||
return {
|
return {
|
||||||
wallets,
|
eip155Wallets,
|
||||||
addresses
|
eip155Addresses
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -1,7 +1,8 @@
|
|||||||
|
import { COSMOS_MAINNET_CHAINS, TCosmosChain } from '@/data/COSMOSData'
|
||||||
import { EIP155_CHAINS, TEIP155Chain } from '@/data/EIP155Data'
|
import { EIP155_CHAINS, TEIP155Chain } from '@/data/EIP155Data'
|
||||||
import ModalStore from '@/store/ModalStore'
|
import ModalStore from '@/store/ModalStore'
|
||||||
|
import { eip155Addresses } from '@/utils/EIP155WalletUtil'
|
||||||
import { walletConnectClient } from '@/utils/WalletConnectUtil'
|
import { walletConnectClient } from '@/utils/WalletConnectUtil'
|
||||||
import { addresses } from '@/utils/WalletUtil'
|
|
||||||
import {
|
import {
|
||||||
Avatar,
|
Avatar,
|
||||||
Button,
|
Button,
|
||||||
@ -98,7 +99,12 @@ export default function SessionProposalModal() {
|
|||||||
<Text h5>Blockchains</Text>
|
<Text h5>Blockchains</Text>
|
||||||
<Text color="$gray400">
|
<Text color="$gray400">
|
||||||
{chains
|
{chains
|
||||||
.map(chain => EIP155_CHAINS[chain as TEIP155Chain]?.name ?? chain)
|
.map(
|
||||||
|
chain =>
|
||||||
|
EIP155_CHAINS[chain as TEIP155Chain]?.name ??
|
||||||
|
COSMOS_MAINNET_CHAINS[chain as TCosmosChain]?.name ??
|
||||||
|
chain
|
||||||
|
)
|
||||||
.join(', ')}
|
.join(', ')}
|
||||||
</Text>
|
</Text>
|
||||||
</Col>
|
</Col>
|
||||||
@ -127,7 +133,7 @@ export default function SessionProposalModal() {
|
|||||||
<Row>
|
<Row>
|
||||||
<Col>
|
<Col>
|
||||||
<Text h5>Select Accounts to Connect</Text>
|
<Text h5>Select Accounts to Connect</Text>
|
||||||
{addresses.map((address, index) => (
|
{eip155Addresses.map((address, index) => (
|
||||||
<Card
|
<Card
|
||||||
onClick={() => onSelectAddress(address)}
|
onClick={() => onSelectAddress(address)}
|
||||||
clickable
|
clickable
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
import { EIP155_CHAINS, TEIP155Chain } from '@/data/EIP155Data'
|
import { EIP155_CHAINS, TEIP155Chain } from '@/data/EIP155Data'
|
||||||
import ModalStore from '@/store/ModalStore'
|
import ModalStore from '@/store/ModalStore'
|
||||||
|
import { approveEIP155Request, rejectEIP155Request } from '@/utils/EIP155RequestHandlerUtil'
|
||||||
import { truncate } from '@/utils/HelperUtil'
|
import { truncate } from '@/utils/HelperUtil'
|
||||||
import { approveEIP155Request, rejectEIP155Request } from '@/utils/RequestHandlerUtil'
|
|
||||||
import { walletConnectClient } from '@/utils/WalletConnectUtil'
|
import { walletConnectClient } from '@/utils/WalletConnectUtil'
|
||||||
import {
|
import {
|
||||||
Avatar,
|
Avatar,
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
import { EIP155_CHAINS, TEIP155Chain } from '@/data/EIP155Data'
|
import { EIP155_CHAINS, TEIP155Chain } from '@/data/EIP155Data'
|
||||||
import ModalStore from '@/store/ModalStore'
|
import ModalStore from '@/store/ModalStore'
|
||||||
|
import { approveEIP155Request, rejectEIP155Request } from '@/utils/EIP155RequestHandlerUtil'
|
||||||
import { getSignParamsMessage } from '@/utils/HelperUtil'
|
import { getSignParamsMessage } from '@/utils/HelperUtil'
|
||||||
import { approveEIP155Request, rejectEIP155Request } from '@/utils/RequestHandlerUtil'
|
|
||||||
import { walletConnectClient } from '@/utils/WalletConnectUtil'
|
import { walletConnectClient } from '@/utils/WalletConnectUtil'
|
||||||
import { Avatar, Button, Col, Container, Divider, Link, Modal, Row, Text } from '@nextui-org/react'
|
import { Avatar, Button, Col, Container, Divider, Link, Modal, Row, Text } from '@nextui-org/react'
|
||||||
import { Fragment } from 'react'
|
import { Fragment } from 'react'
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
import { EIP155_CHAINS, TEIP155Chain } from '@/data/EIP155Data'
|
import { EIP155_CHAINS, TEIP155Chain } from '@/data/EIP155Data'
|
||||||
import ModalStore from '@/store/ModalStore'
|
import ModalStore from '@/store/ModalStore'
|
||||||
|
import { approveEIP155Request, rejectEIP155Request } from '@/utils/EIP155RequestHandlerUtil'
|
||||||
import { getSignTypedDataParamsData } from '@/utils/HelperUtil'
|
import { getSignTypedDataParamsData } from '@/utils/HelperUtil'
|
||||||
import { approveEIP155Request, rejectEIP155Request } from '@/utils/RequestHandlerUtil'
|
|
||||||
import { walletConnectClient } from '@/utils/WalletConnectUtil'
|
import { walletConnectClient } from '@/utils/WalletConnectUtil'
|
||||||
import { Avatar, Button, Col, Container, Divider, Link, Modal, Row, Text } from '@nextui-org/react'
|
import { Avatar, Button, Col, Container, Divider, Link, Modal, Row, Text } from '@nextui-org/react'
|
||||||
import { Fragment } from 'react'
|
import { Fragment } from 'react'
|
||||||
|
@ -805,10 +805,20 @@
|
|||||||
resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee"
|
resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee"
|
||||||
integrity sha1-7ihweulOEdK4J7y+UnC86n8+ce4=
|
integrity sha1-7ihweulOEdK4J7y+UnC86n8+ce4=
|
||||||
|
|
||||||
"@types/node@17.0.19":
|
"@types/node@10.12.18":
|
||||||
version "17.0.19"
|
version "10.12.18"
|
||||||
resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.19.tgz#726171367f404bfbe8512ba608a09ebad810c7e6"
|
resolved "https://registry.yarnpkg.com/@types/node/-/node-10.12.18.tgz#1d3ca764718915584fcd9f6344621b7672665c67"
|
||||||
integrity sha512-PfeQhvcMR4cPFVuYfBN4ifG7p9c+Dlh3yUZR6k+5yQK7wX3gDgVxBly4/WkBRs9x4dmcy1TVl08SY67wwtEvmA==
|
integrity sha512-fh+pAqt4xRzPfqA6eh3Z2y6fyZavRIumvjhaCL753+TVkGKGhpPeyrJG2JftD0T9q4GF00KjefsQ+PQNDdWQaQ==
|
||||||
|
|
||||||
|
"@types/node@11.11.6":
|
||||||
|
version "11.11.6"
|
||||||
|
resolved "https://registry.yarnpkg.com/@types/node/-/node-11.11.6.tgz#df929d1bb2eee5afdda598a41930fe50b43eaa6a"
|
||||||
|
integrity sha512-Exw4yUWMBXM3X+8oqzJNRqZSwUAaS4+7NdvHqQuFi/d+synz++xmX3QIf+BFqneW8N31R8Ky+sikfZUXq07ggQ==
|
||||||
|
|
||||||
|
"@types/node@17.0.21":
|
||||||
|
version "17.0.21"
|
||||||
|
resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.21.tgz#864b987c0c68d07b4345845c3e63b75edd143644"
|
||||||
|
integrity sha512-DBZCJbhII3r90XbQxI8Y9IjjiiOGlZ0Hr32omXIZvwwZ7p4DMMXGrKXVyPfuoBOri9XNtL0UK69jYIBIsRX3QQ==
|
||||||
|
|
||||||
"@types/prop-types@*":
|
"@types/prop-types@*":
|
||||||
version "15.7.4"
|
version "15.7.4"
|
||||||
@ -1212,6 +1222,13 @@ balanced-match@^1.0.0:
|
|||||||
resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee"
|
resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee"
|
||||||
integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==
|
integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==
|
||||||
|
|
||||||
|
base-x@^3.0.2:
|
||||||
|
version "3.0.9"
|
||||||
|
resolved "https://registry.yarnpkg.com/base-x/-/base-x-3.0.9.tgz#6349aaabb58526332de9f60995e548a53fe21320"
|
||||||
|
integrity sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==
|
||||||
|
dependencies:
|
||||||
|
safe-buffer "^5.0.1"
|
||||||
|
|
||||||
base64-js@^1.3.1:
|
base64-js@^1.3.1:
|
||||||
version "1.5.1"
|
version "1.5.1"
|
||||||
resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a"
|
resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a"
|
||||||
@ -1222,6 +1239,11 @@ bech32@1.1.4:
|
|||||||
resolved "https://registry.yarnpkg.com/bech32/-/bech32-1.1.4.tgz#e38c9f37bf179b8eb16ae3a772b40c356d4832e9"
|
resolved "https://registry.yarnpkg.com/bech32/-/bech32-1.1.4.tgz#e38c9f37bf179b8eb16ae3a772b40c356d4832e9"
|
||||||
integrity sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==
|
integrity sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==
|
||||||
|
|
||||||
|
bech32@2.0.0:
|
||||||
|
version "2.0.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/bech32/-/bech32-2.0.0.tgz#078d3686535075c8c79709f054b1b226a133b355"
|
||||||
|
integrity sha512-LcknSilhIGatDAsY1ak2I8VtGaHNhgMSYVxFrGLXv+xLHytaKZKcaUJJUE7qmBr7h33o5YQwP55pMI0xmkpJwg==
|
||||||
|
|
||||||
better-sqlite3@^7.1.2:
|
better-sqlite3@^7.1.2:
|
||||||
version "7.5.0"
|
version "7.5.0"
|
||||||
resolved "https://registry.yarnpkg.com/better-sqlite3/-/better-sqlite3-7.5.0.tgz#2a91cb616453f002096743b0e5b66a7021cd1c63"
|
resolved "https://registry.yarnpkg.com/better-sqlite3/-/better-sqlite3-7.5.0.tgz#2a91cb616453f002096743b0e5b66a7021cd1c63"
|
||||||
@ -1230,13 +1252,35 @@ better-sqlite3@^7.1.2:
|
|||||||
bindings "^1.5.0"
|
bindings "^1.5.0"
|
||||||
prebuild-install "^7.0.0"
|
prebuild-install "^7.0.0"
|
||||||
|
|
||||||
bindings@^1.5.0:
|
bindings@^1.3.0, bindings@^1.5.0:
|
||||||
version "1.5.0"
|
version "1.5.0"
|
||||||
resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df"
|
resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df"
|
||||||
integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==
|
integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==
|
||||||
dependencies:
|
dependencies:
|
||||||
file-uri-to-path "1.0.0"
|
file-uri-to-path "1.0.0"
|
||||||
|
|
||||||
|
bip32@3.0.1:
|
||||||
|
version "3.0.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/bip32/-/bip32-3.0.1.tgz#1d1121469cce6e910e0ec3a5a1990dd62687e2a3"
|
||||||
|
integrity sha512-Uhpp9aEx3iyiO7CpbNGFxv9WcMIVdGoHG04doQ5Ln0u60uwDah7jUSc3QMV/fSZGm/Oo01/OeAmYevXV+Gz5jQ==
|
||||||
|
dependencies:
|
||||||
|
"@types/node" "10.12.18"
|
||||||
|
bs58check "^2.1.1"
|
||||||
|
create-hash "^1.2.0"
|
||||||
|
create-hmac "^1.1.7"
|
||||||
|
typeforce "^1.11.5"
|
||||||
|
wif "^2.0.6"
|
||||||
|
|
||||||
|
bip39@3.0.4:
|
||||||
|
version "3.0.4"
|
||||||
|
resolved "https://registry.yarnpkg.com/bip39/-/bip39-3.0.4.tgz#5b11fed966840b5e1b8539f0f54ab6392969b2a0"
|
||||||
|
integrity sha512-YZKQlb752TrUWqHWj7XAwCSjYEgGAk+/Aas3V7NyjQeZYsztO8JnQUaCWhcnL4T+jL8nvB8typ2jRPzTlgugNw==
|
||||||
|
dependencies:
|
||||||
|
"@types/node" "11.11.6"
|
||||||
|
create-hash "^1.1.0"
|
||||||
|
pbkdf2 "^3.0.9"
|
||||||
|
randombytes "^2.0.1"
|
||||||
|
|
||||||
bl@^4.0.3:
|
bl@^4.0.3:
|
||||||
version "4.1.0"
|
version "4.1.0"
|
||||||
resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a"
|
resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a"
|
||||||
@ -1246,7 +1290,7 @@ bl@^4.0.3:
|
|||||||
inherits "^2.0.4"
|
inherits "^2.0.4"
|
||||||
readable-stream "^3.4.0"
|
readable-stream "^3.4.0"
|
||||||
|
|
||||||
bn.js@^4.11.9:
|
bn.js@^4.11.8, bn.js@^4.11.9:
|
||||||
version "4.12.0"
|
version "4.12.0"
|
||||||
resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88"
|
resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88"
|
||||||
integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==
|
integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==
|
||||||
@ -1271,6 +1315,22 @@ brorand@^1.1.0:
|
|||||||
resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f"
|
resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f"
|
||||||
integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=
|
integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=
|
||||||
|
|
||||||
|
bs58@^4.0.0:
|
||||||
|
version "4.0.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/bs58/-/bs58-4.0.1.tgz#be161e76c354f6f788ae4071f63f34e8c4f0a42a"
|
||||||
|
integrity sha1-vhYedsNU9veIrkBx9j806MTwpCo=
|
||||||
|
dependencies:
|
||||||
|
base-x "^3.0.2"
|
||||||
|
|
||||||
|
bs58check@<3.0.0, bs58check@^2.1.1:
|
||||||
|
version "2.1.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/bs58check/-/bs58check-2.1.2.tgz#53b018291228d82a5aa08e7d796fdafda54aebfc"
|
||||||
|
integrity sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==
|
||||||
|
dependencies:
|
||||||
|
bs58 "^4.0.0"
|
||||||
|
create-hash "^1.1.0"
|
||||||
|
safe-buffer "^5.1.2"
|
||||||
|
|
||||||
buffer@^5.5.0:
|
buffer@^5.5.0:
|
||||||
version "5.7.1"
|
version "5.7.1"
|
||||||
resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0"
|
resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0"
|
||||||
@ -1344,6 +1404,14 @@ chownr@^1.1.1:
|
|||||||
resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b"
|
resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b"
|
||||||
integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==
|
integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==
|
||||||
|
|
||||||
|
cipher-base@^1.0.1, cipher-base@^1.0.3:
|
||||||
|
version "1.0.4"
|
||||||
|
resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de"
|
||||||
|
integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==
|
||||||
|
dependencies:
|
||||||
|
inherits "^2.0.1"
|
||||||
|
safe-buffer "^5.0.1"
|
||||||
|
|
||||||
clipboard@^2.0.0:
|
clipboard@^2.0.0:
|
||||||
version "2.0.10"
|
version "2.0.10"
|
||||||
resolved "https://registry.yarnpkg.com/clipboard/-/clipboard-2.0.10.tgz#e61f6f7139ac5044c58c0484dcac9fb2a918bfd6"
|
resolved "https://registry.yarnpkg.com/clipboard/-/clipboard-2.0.10.tgz#e61f6f7139ac5044c58c0484dcac9fb2a918bfd6"
|
||||||
@ -1412,6 +1480,29 @@ core-util-is@~1.0.0:
|
|||||||
resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85"
|
resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85"
|
||||||
integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==
|
integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==
|
||||||
|
|
||||||
|
create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0:
|
||||||
|
version "1.2.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196"
|
||||||
|
integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==
|
||||||
|
dependencies:
|
||||||
|
cipher-base "^1.0.1"
|
||||||
|
inherits "^2.0.1"
|
||||||
|
md5.js "^1.3.4"
|
||||||
|
ripemd160 "^2.0.1"
|
||||||
|
sha.js "^2.4.0"
|
||||||
|
|
||||||
|
create-hmac@^1.1.4, create-hmac@^1.1.7:
|
||||||
|
version "1.1.7"
|
||||||
|
resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff"
|
||||||
|
integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==
|
||||||
|
dependencies:
|
||||||
|
cipher-base "^1.0.3"
|
||||||
|
create-hash "^1.1.0"
|
||||||
|
inherits "^2.0.1"
|
||||||
|
ripemd160 "^2.0.0"
|
||||||
|
safe-buffer "^5.0.1"
|
||||||
|
sha.js "^2.4.8"
|
||||||
|
|
||||||
cross-spawn@^7.0.2:
|
cross-spawn@^7.0.2:
|
||||||
version "7.0.3"
|
version "7.0.3"
|
||||||
resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6"
|
resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6"
|
||||||
@ -1536,7 +1627,7 @@ doctrine@^3.0.0:
|
|||||||
dependencies:
|
dependencies:
|
||||||
esutils "^2.0.2"
|
esutils "^2.0.2"
|
||||||
|
|
||||||
elliptic@6.5.4:
|
elliptic@6.5.4, elliptic@^6.4.0:
|
||||||
version "6.5.4"
|
version "6.5.4"
|
||||||
resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb"
|
resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb"
|
||||||
integrity sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==
|
integrity sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==
|
||||||
@ -1964,10 +2055,10 @@ format@^0.2.0:
|
|||||||
resolved "https://registry.yarnpkg.com/format/-/format-0.2.2.tgz#d6170107e9efdc4ed30c9dc39016df942b5cb58b"
|
resolved "https://registry.yarnpkg.com/format/-/format-0.2.2.tgz#d6170107e9efdc4ed30c9dc39016df942b5cb58b"
|
||||||
integrity sha1-1hcBB+nv3E7TDJ3DkBbflCtctYs=
|
integrity sha1-1hcBB+nv3E7TDJ3DkBbflCtctYs=
|
||||||
|
|
||||||
framer-motion@6.2.7:
|
framer-motion@6.2.8:
|
||||||
version "6.2.7"
|
version "6.2.8"
|
||||||
resolved "https://registry.yarnpkg.com/framer-motion/-/framer-motion-6.2.7.tgz#14e71ca933b63dc85327b3ea9ba2f1564f116dd3"
|
resolved "https://registry.yarnpkg.com/framer-motion/-/framer-motion-6.2.8.tgz#02abb529191af7e2df444185fe27e932215b715d"
|
||||||
integrity sha512-RExmZCFpJ3OCakoXmZz8iW8ZI5MoaHmVadydetvTSrNaKmZ7ZC/JDQpNyw1NoDG+fchRGP86lXoiTFSQuin+Cg==
|
integrity sha512-4PtBWFJ6NqR350zYVt9AsFDtISTqsdqna79FvSYPfYDXuuqFmiKtZdkTnYPslnsOMedTW0pEvaQ7eqjD+sA+HA==
|
||||||
dependencies:
|
dependencies:
|
||||||
framesync "6.0.1"
|
framesync "6.0.1"
|
||||||
hey-listen "^1.0.8"
|
hey-listen "^1.0.8"
|
||||||
@ -2148,6 +2239,15 @@ has@^1.0.3:
|
|||||||
dependencies:
|
dependencies:
|
||||||
function-bind "^1.1.1"
|
function-bind "^1.1.1"
|
||||||
|
|
||||||
|
hash-base@^3.0.0:
|
||||||
|
version "3.1.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.1.0.tgz#55c381d9e06e1d2997a883b4a3fddfe7f0d3af33"
|
||||||
|
integrity sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==
|
||||||
|
dependencies:
|
||||||
|
inherits "^2.0.4"
|
||||||
|
readable-stream "^3.6.0"
|
||||||
|
safe-buffer "^5.2.0"
|
||||||
|
|
||||||
hash.js@1.1.7, hash.js@^1.0.0, hash.js@^1.0.3, hash.js@^1.1.7:
|
hash.js@1.1.7, hash.js@^1.0.0, hash.js@^1.0.3, hash.js@^1.1.7:
|
||||||
version "1.1.7"
|
version "1.1.7"
|
||||||
resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42"
|
resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42"
|
||||||
@ -2233,7 +2333,7 @@ inflight@^1.0.4:
|
|||||||
once "^1.3.0"
|
once "^1.3.0"
|
||||||
wrappy "1"
|
wrappy "1"
|
||||||
|
|
||||||
inherits@2, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3:
|
inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3:
|
||||||
version "2.0.4"
|
version "2.0.4"
|
||||||
resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
|
resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
|
||||||
integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
|
integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
|
||||||
@ -2551,6 +2651,15 @@ lru-cache@^6.0.0:
|
|||||||
dependencies:
|
dependencies:
|
||||||
yallist "^4.0.0"
|
yallist "^4.0.0"
|
||||||
|
|
||||||
|
md5.js@^1.3.4:
|
||||||
|
version "1.3.5"
|
||||||
|
resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f"
|
||||||
|
integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==
|
||||||
|
dependencies:
|
||||||
|
hash-base "^3.0.0"
|
||||||
|
inherits "^2.0.1"
|
||||||
|
safe-buffer "^5.1.2"
|
||||||
|
|
||||||
merge2@^1.3.0, merge2@^1.4.1:
|
merge2@^1.3.0, merge2@^1.4.1:
|
||||||
version "1.4.1"
|
version "1.4.1"
|
||||||
resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae"
|
resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae"
|
||||||
@ -2616,6 +2725,11 @@ ms@^2.1.1:
|
|||||||
resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2"
|
resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2"
|
||||||
integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
|
integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
|
||||||
|
|
||||||
|
nan@^2.13.2:
|
||||||
|
version "2.15.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/nan/-/nan-2.15.0.tgz#3f34a473ff18e15c1b5626b62903b5ad6e665fee"
|
||||||
|
integrity sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ==
|
||||||
|
|
||||||
nanoid@^3.1.30:
|
nanoid@^3.1.30:
|
||||||
version "3.3.1"
|
version "3.3.1"
|
||||||
resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.1.tgz#6347a18cac88af88f58af0b3594b723d5e99bb35"
|
resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.1.tgz#6347a18cac88af88f58af0b3594b723d5e99bb35"
|
||||||
@ -2818,6 +2932,17 @@ path-type@^4.0.0:
|
|||||||
resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b"
|
resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b"
|
||||||
integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==
|
integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==
|
||||||
|
|
||||||
|
pbkdf2@^3.0.9:
|
||||||
|
version "3.1.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.2.tgz#dd822aa0887580e52f1a039dc3eda108efae3075"
|
||||||
|
integrity sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==
|
||||||
|
dependencies:
|
||||||
|
create-hash "^1.1.2"
|
||||||
|
create-hmac "^1.1.4"
|
||||||
|
ripemd160 "^2.0.1"
|
||||||
|
safe-buffer "^5.0.1"
|
||||||
|
sha.js "^2.4.8"
|
||||||
|
|
||||||
picocolors@^1.0.0:
|
picocolors@^1.0.0:
|
||||||
version "1.0.0"
|
version "1.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c"
|
resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c"
|
||||||
@ -2993,7 +3118,7 @@ quick-format-unescaped@^4.0.3:
|
|||||||
resolved "https://registry.yarnpkg.com/quick-format-unescaped/-/quick-format-unescaped-4.0.4.tgz#93ef6dd8d3453cbc7970dd614fad4c5954d6b5a7"
|
resolved "https://registry.yarnpkg.com/quick-format-unescaped/-/quick-format-unescaped-4.0.4.tgz#93ef6dd8d3453cbc7970dd614fad4c5954d6b5a7"
|
||||||
integrity sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==
|
integrity sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==
|
||||||
|
|
||||||
randombytes@^2.1.0:
|
randombytes@^2.0.1, randombytes@^2.1.0:
|
||||||
version "2.1.0"
|
version "2.1.0"
|
||||||
resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a"
|
resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a"
|
||||||
integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==
|
integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==
|
||||||
@ -3149,6 +3274,14 @@ rimraf@^3.0.2:
|
|||||||
dependencies:
|
dependencies:
|
||||||
glob "^7.1.3"
|
glob "^7.1.3"
|
||||||
|
|
||||||
|
ripemd160@^2.0.0, ripemd160@^2.0.1:
|
||||||
|
version "2.0.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c"
|
||||||
|
integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==
|
||||||
|
dependencies:
|
||||||
|
hash-base "^3.0.0"
|
||||||
|
inherits "^2.0.1"
|
||||||
|
|
||||||
run-parallel@^1.1.9:
|
run-parallel@^1.1.9:
|
||||||
version "1.2.0"
|
version "1.2.0"
|
||||||
resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee"
|
resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee"
|
||||||
@ -3156,7 +3289,7 @@ run-parallel@^1.1.9:
|
|||||||
dependencies:
|
dependencies:
|
||||||
queue-microtask "^1.2.2"
|
queue-microtask "^1.2.2"
|
||||||
|
|
||||||
safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@~5.2.0:
|
safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@~5.2.0:
|
||||||
version "5.2.1"
|
version "5.2.1"
|
||||||
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6"
|
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6"
|
||||||
integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
|
integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
|
||||||
@ -3206,6 +3339,14 @@ set-blocking@~2.0.0:
|
|||||||
resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7"
|
resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7"
|
||||||
integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc=
|
integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc=
|
||||||
|
|
||||||
|
sha.js@^2.4.0, sha.js@^2.4.8:
|
||||||
|
version "2.4.11"
|
||||||
|
resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7"
|
||||||
|
integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==
|
||||||
|
dependencies:
|
||||||
|
inherits "^2.0.1"
|
||||||
|
safe-buffer "^5.0.1"
|
||||||
|
|
||||||
shallowequal@^1.1.0:
|
shallowequal@^1.1.0:
|
||||||
version "1.1.0"
|
version "1.1.0"
|
||||||
resolved "https://registry.yarnpkg.com/shallowequal/-/shallowequal-1.1.0.tgz#188d521de95b9087404fd4dcb68b13df0ae4e7f8"
|
resolved "https://registry.yarnpkg.com/shallowequal/-/shallowequal-1.1.0.tgz#188d521de95b9087404fd4dcb68b13df0ae4e7f8"
|
||||||
@ -3466,6 +3607,17 @@ tiny-emitter@^2.0.0:
|
|||||||
resolved "https://registry.yarnpkg.com/tiny-emitter/-/tiny-emitter-2.1.0.tgz#1d1a56edfc51c43e863cbb5382a72330e3555423"
|
resolved "https://registry.yarnpkg.com/tiny-emitter/-/tiny-emitter-2.1.0.tgz#1d1a56edfc51c43e863cbb5382a72330e3555423"
|
||||||
integrity sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==
|
integrity sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==
|
||||||
|
|
||||||
|
tiny-secp256k1@1.1.6:
|
||||||
|
version "1.1.6"
|
||||||
|
resolved "https://registry.yarnpkg.com/tiny-secp256k1/-/tiny-secp256k1-1.1.6.tgz#7e224d2bee8ab8283f284e40e6b4acb74ffe047c"
|
||||||
|
integrity sha512-FmqJZGduTyvsr2cF3375fqGHUovSwDi/QytexX1Se4BPuPZpTE5Ftp5fg+EFSuEf3lhZqgCRjEG3ydUQ/aNiwA==
|
||||||
|
dependencies:
|
||||||
|
bindings "^1.3.0"
|
||||||
|
bn.js "^4.11.8"
|
||||||
|
create-hmac "^1.1.7"
|
||||||
|
elliptic "^6.4.0"
|
||||||
|
nan "^2.13.2"
|
||||||
|
|
||||||
to-fast-properties@^2.0.0:
|
to-fast-properties@^2.0.0:
|
||||||
version "2.0.0"
|
version "2.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e"
|
resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e"
|
||||||
@ -3531,6 +3683,11 @@ typedarray-to-buffer@3.1.5:
|
|||||||
dependencies:
|
dependencies:
|
||||||
is-typedarray "^1.0.0"
|
is-typedarray "^1.0.0"
|
||||||
|
|
||||||
|
typeforce@^1.11.5:
|
||||||
|
version "1.18.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/typeforce/-/typeforce-1.18.0.tgz#d7416a2c5845e085034d70fcc5b6cc4a90edbfdc"
|
||||||
|
integrity sha512-7uc1O8h1M1g0rArakJdf0uLRSSgFcYexrVoKo+bzJd32gd4gDy2L/Z+8/FjPnU9ydY3pEnVPtr9FyscYY60K1g==
|
||||||
|
|
||||||
typescript@4.5.5:
|
typescript@4.5.5:
|
||||||
version "4.5.5"
|
version "4.5.5"
|
||||||
resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.5.5.tgz#d8c953832d28924a9e3d37c73d729c846c5896f3"
|
resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.5.5.tgz#d8c953832d28924a9e3d37c73d729c846c5896f3"
|
||||||
@ -3602,6 +3759,13 @@ wide-align@^1.1.0:
|
|||||||
dependencies:
|
dependencies:
|
||||||
string-width "^1.0.2 || 2 || 3 || 4"
|
string-width "^1.0.2 || 2 || 3 || 4"
|
||||||
|
|
||||||
|
wif@^2.0.6:
|
||||||
|
version "2.0.6"
|
||||||
|
resolved "https://registry.yarnpkg.com/wif/-/wif-2.0.6.tgz#08d3f52056c66679299726fade0d432ae74b4704"
|
||||||
|
integrity sha1-CNP1IFbGZnkplyb63g1DKudLRwQ=
|
||||||
|
dependencies:
|
||||||
|
bs58check "<3.0.0"
|
||||||
|
|
||||||
word-wrap@^1.2.3:
|
word-wrap@^1.2.3:
|
||||||
version "1.2.3"
|
version "1.2.3"
|
||||||
resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c"
|
resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c"
|
||||||
|
Loading…
Reference in New Issue
Block a user