diff --git a/.gitignore b/.gitignore
index e09af15fd..b3b0384ea 100644
--- a/.gitignore
+++ b/.gitignore
@@ -7,6 +7,3 @@ template.out
aws.env
*.log
.idea
-
-# Hardhat
-contracts/evm/build/cache
diff --git a/.vscode/settings.json b/.vscode/settings.json
index d783e2bc6..36f044b5c 100644
--- a/.vscode/settings.json
+++ b/.vscode/settings.json
@@ -2,6 +2,18 @@
"editor.codeActionsOnSave": {
"source.fixAll.eslint": true
},
+ "[html]": {
+ "editor.defaultFormatter": "Vue.volar"
+ },
+ "[vue]": {
+ "editor.defaultFormatter": "Vue.volar"
+ },
+ "[javascript]": {
+ "editor.defaultFormatter": "vscode.typescript-language-features"
+ },
+ "[json]": {
+ "editor.defaultFormatter": "vscode.json-language-features"
+ },
"eslint.validate": [
"vue",
"typescript"
diff --git a/README.md b/README.md
index 9e5bed95a..c2b3f7767 100644
--- a/README.md
+++ b/README.md
@@ -95,21 +95,21 @@ You can get up and running without configuration. You can also mock local backen
### Hardhat
-EVM contract development is serviced through [Hardhat](https://hardhat.io/). The Hardhat development environment is configured in the [contracts/evm/hardhat.config.ts](contracts/evm/hardhat.config.ts) file.
+Ethereum contract development is serviced through [Hardhat](https://hardhat.io/). The Hardhat development environment is configured in the [contracts/ethereum/hardhat.config.ts](contracts/ethereum/hardhat.config.ts) file.
-1. Compile the contracts in [contracts/evm](contracts/evm).
+1. Compile the contracts in [contracts/ethereum](contracts/ethereum).
```zsh
npm run task:compile
```
-2. Deploy a contract, specifically [contracts/evm/src/Sample.sol](contracts/evm/src/Sample.sol) with [contracts/evm/deploy/sample.ts](contracts/evm/deploy/sample.ts).
+2. Deploy a contract, specifically [contracts/ethereum/src/Sample.sol](contracts/ethereum/src/Sample.sol) with [contracts/ethereum/deploy/sample.ts](contracts/ethereum/deploy/sample.ts).
```zsh
npm run deploy:sample
```
-3. Test the Sample with the tests in [contracts/evm/test/sample.ts](contracts/evm/test/sample.ts).
+3. Test the Sample with the tests in [contracts/ethereum/test/sample.ts](contracts/ethereum/test/sample.ts).
```zsh
npm run test:contracts
@@ -127,7 +127,7 @@ EVM contract development is serviced through [Hardhat](https://hardhat.io/). The
// Todo add Casimir Typescript usage
```
-7. Clean [contracts/evm/build/artifacts](contracts/evm/build/artifacts) and [contracts/evm/build/cache](contracts/evm/build/cache)).
+7. Clean [contracts/ethereum/build/artifacts](contracts/ethereum/build/artifacts) and [contracts/ethereum/build/cache](contracts/ethereum/build/cache)).
```zsh
npm run task:clean
diff --git a/apps/web/package.json b/apps/web/package.json
index 72dbcd429..d9e73d7ac 100644
--- a/apps/web/package.json
+++ b/apps/web/package.json
@@ -11,9 +11,11 @@
"dependencies": {
"@heroicons/vue": "^1.0.6",
"@ledgerhq/hw-app-eth": "^6.29.4",
- "@ledgerhq/hw-transport-webhid": "^6.27.2",
+ "@ledgerhq/hw-transport-webusb": "^6.27.4",
+ "@solana/web3.js": "^1.63.1",
"@walletconnect/client": "^1.8.0",
"@walletconnect/qrcode-modal": "^1.8.0",
+ "borsh": "^0.7.0",
"buffer": "^6.0.3",
"ethers": "^5.6.9",
"iotex-antenna": "^0.31.3",
diff --git a/apps/web/src/components/Wallet.vue b/apps/web/src/components/Wallet.vue
index fb082f97a..e3b9eb04c 100644
--- a/apps/web/src/components/Wallet.vue
+++ b/apps/web/src/components/Wallet.vue
@@ -11,7 +11,10 @@
-
+
{{ coinbaseButtonText }}
@@ -20,7 +23,10 @@
-
+
{{ ioPayButtonText }}
@@ -28,7 +34,22 @@
{{ ioPayAccountsResult }}
-
+
+
+ {{ phantomButtonText }}
+
+
+ Connected phantom Account:
+ {{ phantomAccountsResult }}
+
+
+
Connect Ledger
@@ -38,28 +59,37 @@
>
WalletConnect
-
- Send WalletConnect Transaction
-
-
- Disable WalletConnect
-
@@ -69,12 +99,17 @@
import { ref, watchEffect } from 'vue'
import useWallet from '@/composables/wallet'
+const message = ref('')
+const signedMessage = ref('')
+
const metamaskButtonText = ref('Connect Metamask')
const metamaskAccountsResult = ref('Address Not Active')
const coinbaseButtonText = ref('Connect Coinbase')
const coinbaseAccountsResult = ref('Address Not Active')
const ioPayButtonText = ref('Connect ioPay')
const ioPayAccountsResult = ref('Address Not Active')
+const phantomButtonText = ref('Connect Phantom')
+const phantomAccountsResult = ref('Address Not Active')
const {
selectedProvider,
@@ -82,8 +117,8 @@ const {
toAddress,
amount,
connectWallet,
- disconnectWallet,
sendTransaction,
+ signMessage,
} = useWallet()
watchEffect(() => {
@@ -94,6 +129,8 @@ watchEffect(() => {
ioPayButtonText.value = 'Connect ioPay'
coinbaseAccountsResult.value = 'Not Active'
ioPayAccountsResult.value = 'Not Active'
+ phantomButtonText.value = 'Connect Phantom'
+ phantomAccountsResult.value = 'Not Active'
} else if (selectedProvider.value === 'CoinbaseWallet') {
metamaskButtonText.value = 'Connect Metamask'
coinbaseButtonText.value = 'Coinbase Connected'
@@ -101,6 +138,8 @@ watchEffect(() => {
metamaskAccountsResult.value = 'Not Active'
coinbaseAccountsResult.value = selectedAccount.value
ioPayAccountsResult.value = 'Not Active'
+ phantomButtonText.value = 'Connect Phantom'
+ phantomAccountsResult.value = 'Not Active'
} else if (selectedProvider.value === 'IoPay') {
metamaskButtonText.value = 'Connect MetaMask'
coinbaseButtonText.value = 'Connect Coinbase'
@@ -108,6 +147,17 @@ watchEffect(() => {
metamaskAccountsResult.value = 'Not Active'
coinbaseAccountsResult.value = 'Not Active'
ioPayAccountsResult.value = selectedAccount.value || 'Not Active'
+ phantomButtonText.value = 'Connect Phantom'
+ phantomAccountsResult.value = 'Not Active'
+ } else if (selectedProvider.value === 'Phantom') {
+ metamaskButtonText.value = 'Connect MetaMask'
+ coinbaseButtonText.value = 'Connect Coinbase'
+ ioPayButtonText.value = 'Connect ioPay'
+ phantomButtonText.value = 'Connected'
+ metamaskAccountsResult.value = 'Not Active'
+ coinbaseAccountsResult.value = 'Not Active'
+ ioPayAccountsResult.value = 'Not Active'
+ phantomAccountsResult.value = selectedAccount.value || 'Not Active'
}
})
@@ -155,6 +205,10 @@ button {
background-color: rgb(0, 0, 0);
}
+.phantom-btn {
+ background-color: purple;
+}
+
.connect-wallet-container {
display: flex;
flex-direction: column;
diff --git a/apps/web/src/composables/ethers.ts b/apps/web/src/composables/ethers.ts
index 79b54bbb7..a09c2d37d 100644
--- a/apps/web/src/composables/ethers.ts
+++ b/apps/web/src/composables/ethers.ts
@@ -1,13 +1,75 @@
+import { ref } from 'vue'
+import { ethers } from 'ethers'
+import { BrowserProviders } from '@/interfaces/BrowserProviders'
import { EthersProvider } from '@/interfaces/EthersProvider'
+import { ProviderString } from '@/types/ProviderString'
+import { TransactionInit } from '@/interfaces/TransactionInit'
+import { MessageInit } from '@/interfaces/MessageInit'
+
+const defaultProviders = {
+ MetaMask: undefined,
+ CoinbaseWallet: undefined,
+}
+
+const ethereum: any = window.ethereum
+const availableProviders = ref(getBrowserProviders(ethereum))
export default function useEthers() {
- async function requestEthersAccount(provider: EthersProvider) {
- if (provider.request) {
- return await provider.request({
+ const ethersProviderList = ['MetaMask', 'CoinbaseWallet']
+ async function requestEthersAccount(provider: ProviderString) {
+ const browserExtensionProvider =
+ availableProviders.value[provider as keyof BrowserProviders]
+ if (browserExtensionProvider?.request) {
+ return await browserExtensionProvider.request({
method: 'eth_requestAccounts',
})
}
}
- return { requestEthersAccount }
+ async function sendEthersTransaction(
+ { to, value, providerString }: TransactionInit
+ ) {
+ const browserProvider =
+ availableProviders.value[providerString as keyof BrowserProviders]
+ const web3Provider: ethers.providers.Web3Provider =
+ new ethers.providers.Web3Provider(browserProvider as EthersProvider)
+ const signer = web3Provider.getSigner()
+ const etherAmount = ethers.utils.parseEther(value)
+ const tx = {
+ to,
+ value: etherAmount,
+ }
+ const { hash } = await signer.sendTransaction(tx)
+ return hash
+ }
+
+ async function signEthersMessage(messageInit: MessageInit): Promise {
+ const { providerString, hashedMessage } = messageInit
+ const browserProvider =
+ availableProviders.value[
+ providerString as keyof BrowserProviders
+ ]
+ const web3Provider: ethers.providers.Web3Provider =
+ new ethers.providers.Web3Provider(browserProvider as EthersProvider)
+ const signer = web3Provider.getSigner()
+ const signature = await signer.signMessage(hashedMessage)
+ return signature
+ }
+
+ return { ethersProviderList, requestEthersAccount, getBrowserProviders, sendEthersTransaction, signEthersMessage }
}
+
+function getBrowserProviders(ethereum: any) {
+ if (!ethereum) return defaultProviders
+ else if (!ethereum.providerMap) {
+ return {
+ MetaMask: ethereum.isMetaMask ? ethereum : undefined,
+ CoinbaseWallet: ethereum.isCoinbaseWallet ? ethereum : undefined,
+ }
+ } else {
+ return {
+ MetaMask: ethereum.providerMap.get('MetaMask'),
+ CoinbaseWallet: ethereum.providerMap.get('CoinbaseWallet'),
+ }
+ }
+}
\ No newline at end of file
diff --git a/apps/web/src/composables/iopay.ts b/apps/web/src/composables/iopay.ts
index 361c2b338..a5aa74900 100644
--- a/apps/web/src/composables/iopay.ts
+++ b/apps/web/src/composables/iopay.ts
@@ -1,6 +1,8 @@
import Antenna from 'iotex-antenna'
import { WsSignerPlugin } from 'iotex-antenna/lib/plugin/ws'
import { toRau } from 'iotex-antenna/lib/account/utils'
+import { TransactionInit } from '@/interfaces/TransactionInit'
+import { MessageInit } from '@/interfaces/MessageInit'
export default function useIoPay() {
const signer = new WsSignerPlugin()
@@ -12,22 +14,27 @@ export default function useIoPay() {
return await signer.getAccounts()
}
- const sendIoPayTransaction = async (toAddress: string, amount: string) => {
+ const sendIoPayTransaction = async ({ to, value }: TransactionInit) => {
try {
const transResp = await antenna?.iotx.sendTransfer({
- to: `${toAddress}`,
+ to: `${to}`,
from: antenna.iotx.accounts[0].address,
- value: toRau(amount, 'Iotx'),
+ value: toRau(value, 'Iotx'),
gasLimit: '100000',
- gasPrice: toRau('1', 'Qev')
+ gasPrice: toRau('1', 'Qev'),
})
- console.log('transResp :>> ', transResp)
+ return transResp
} catch (err) {
// TODO: handle submit error and guide user
console.log(err)
}
}
+ const signIoPayMessage = async (messageInit: MessageInit): Promise => {
+ const { hashedMessage } = messageInit
+ return await signer.signMessage(hashedMessage)
+ }
+
// const stakeIoPay = async () => {
// // TODO: Replace with appropriate abi, etc.
// const transResp = await antenna?.iotx.executeContract(
@@ -49,6 +56,7 @@ export default function useIoPay() {
return {
getIoPayAccounts,
sendIoPayTransaction,
+ signIoPayMessage,
// stakeIoPay,
}
}
diff --git a/apps/web/src/composables/ledger.ts b/apps/web/src/composables/ledger.ts
index f0ab055a1..5d5447884 100644
--- a/apps/web/src/composables/ledger.ts
+++ b/apps/web/src/composables/ledger.ts
@@ -1,26 +1,102 @@
import SpeculosHttpTransport from '@casimir/hw-transport-speculos'
-import TransportWebHID from '@ledgerhq/hw-transport-webhid'
-import Eth from '@ledgerhq/hw-app-eth'
+import TransportWebUSB from '@ledgerhq/hw-transport-webusb'
+import Eth, { ledgerService } from '@ledgerhq/hw-app-eth'
+import { ethers } from 'ethers'
+import { TransactionInit } from '@/interfaces/TransactionInit'
+import { Deferrable } from '@ethersproject/properties'
+import { TransactionRequest } from '@ethersproject/abstract-provider'
+import { MessageInit } from '@/interfaces/MessageInit'
export default function useLedger() {
+ const bip32Path = '44\'/60\'/0\'/0/0'
- const bip32Path = '44\'/60\'/0\'/0/0'
+ async function getLedgerEthSigner() {
+ const transport = await _getLedgerTransport()
+ return new Eth(transport)
+ }
- async function getLedgerEthSigner() {
- const transport = await _getLedgerTransport()
- return new Eth(transport)
+ async function _getLedgerTransport() {
+ if (import.meta.env.PUBLIC_SPECULOS_PORT) {
+ return await SpeculosHttpTransport.open(
+ `http://127.0.0.1:${import.meta.env.PUBLIC_SPECULOS_PORT}`
+ )
+ } else {
+ return await TransportWebUSB.create()
}
+ }
- async function _getLedgerTransport() {
- if (import.meta.env.PUBLIC_SPECULOS_PORT) {
- return await SpeculosHttpTransport.open(`http://127.0.0.1:${import.meta.env.PUBLIC_SPECULOS_PORT}`)
- } else {
- return await TransportWebHID.create()
- }
+ async function sendLedgerTransaction({ from, to, value }: TransactionInit) {
+ const rpcUrl = import.meta.env.PUBLIC_ETHEREUM_RPC || 'http://localhost:8545/'
+ const provider = new ethers.providers.JsonRpcProvider(rpcUrl)
+ const { chainId } = await provider.getNetwork()
+ const gasPriceHex = (await provider.getGasPrice())._hex
+ const gasPrice = '0x' + (parseInt(gasPriceHex, 16) * 1.15).toString(16)
+ const nonce = await provider.getTransactionCount(from, 'latest')
+ const unsignedTransaction: ethers.utils.UnsignedTransaction = {
+ to,
+ gasPrice,
+ nonce,
+ chainId,
+ data: '0x00',
+ value: ethers.utils.parseUnits(value)
}
- return {
- bip32Path,
- getLedgerEthSigner
+ // Todo check before click (user can +/- gas limit accordingly)
+ const gasEstimate = await provider.estimateGas(
+ unsignedTransaction as Deferrable
+ )
+ const gasLimit = Math.ceil(parseInt(gasEstimate.toString()) * 1.3)
+ unsignedTransaction.gasLimit = ethers.utils.hexlify(gasLimit)
+ const balance = await provider.getBalance(from)
+ const required = ethers.BigNumber.from(gasPrice)
+ .mul(gasLimit)
+ .add(ethers.utils.parseEther(value))
+ console.log('Balance', ethers.utils.formatEther(balance))
+ console.log('Required', ethers.utils.formatEther(required))
+
+ const ledger = await getLedgerEthSigner()
+ const rawUnsignedTransaction = ethers.utils
+ .serializeTransaction(unsignedTransaction)
+ .substring(2)
+ const resolution = await ledgerService.resolveTransaction(
+ rawUnsignedTransaction,
+ {},
+ {}
+ )
+ const { v, r, s } = await ledger.signTransaction(
+ bip32Path,
+ rawUnsignedTransaction,
+ resolution
+ )
+ const signature = {
+ v: parseInt(v),
+ r: '0x' + r,
+ s: '0x' + s,
+ from,
}
-}
\ No newline at end of file
+ const signedTransaction = ethers.utils.serializeTransaction(
+ unsignedTransaction,
+ signature
+ )
+ return await provider.sendTransaction(signedTransaction)
+ }
+
+ async function signLedgerMessage(messageInit: MessageInit): Promise {
+ const { hashedMessage } = messageInit
+ const _eth = await getLedgerEthSigner()
+ const signature = await _eth.signPersonalMessage(
+ bip32Path,
+ Buffer.from(hashedMessage).toString('hex')
+ )
+ const signedHash =
+ '0x' + signature.r + signature.s + signature.v.toString(16)
+ return signedHash
+ }
+
+ return {
+ bip32Path,
+ getLedgerEthSigner,
+ signLedgerMessage,
+ sendLedgerTransaction,
+ }
+}
diff --git a/apps/web/src/composables/solana.ts b/apps/web/src/composables/solana.ts
new file mode 100644
index 000000000..78deb01b0
--- /dev/null
+++ b/apps/web/src/composables/solana.ts
@@ -0,0 +1,68 @@
+import { ref } from 'vue'
+import {
+ Connection,
+ Transaction,
+ SystemProgram,
+ PublicKey,
+} from '@solana/web3.js'
+import { BrowserProviders } from '@/interfaces/BrowserProviders'
+import { ProviderString } from '@/types/ProviderString'
+import { TransactionInit } from '@/interfaces/TransactionInit'
+import { MessageInit } from '@/interfaces/MessageInit'
+
+export default function useSolana() {
+ const solanaProviderList = ['Phantom']
+ const availableProviders = ref(getBrowserProviders())
+ const solanaPublicKey = ref({})
+
+ async function requestSolanaAddress(provider: ProviderString) {
+ const phantomProvider =
+ availableProviders.value[provider as keyof BrowserProviders]
+ const resp = await phantomProvider.connect()
+ solanaPublicKey.value = resp.publicKey
+ const address = resp.publicKey.toString()
+ return address
+ }
+
+ async function sendSolanaTransaction({ from, to, value, providerString }: TransactionInit) {
+ const network = 'https://api.devnet.solana.com'
+ const connection = new Connection(network)
+ const { blockhash } = await connection.getLatestBlockhash('finalized')
+ const toAddress = new PublicKey(to)
+ const fromAddress = new PublicKey(from)
+ const lamports = Number(value) * 1000000000
+ const transaction = new Transaction().add(
+ SystemProgram.transfer({
+ fromPubkey: fromAddress,
+ toPubkey: toAddress,
+ lamports,
+ })
+ )
+ transaction.feePayer = fromAddress
+ transaction.recentBlockhash = blockhash
+ const { signature } = await availableProviders.value[providerString as keyof BrowserProviders]
+ .signAndSendTransaction(transaction)
+ const signatureStatus = await connection.getSignatureStatus(signature)
+ return signatureStatus
+ }
+
+ async function signSolanaMessage(messageInit: MessageInit): Promise {
+ const { providerString, hashedMessage } = messageInit
+ const { signature } = await availableProviders.value[providerString as keyof BrowserProviders]
+ .signMessage(hashedMessage)
+ return signature
+ }
+
+ return { solanaProviderList, requestSolanaAddress, sendSolanaTransaction, signSolanaMessage }
+}
+
+function getBrowserProviders() {
+ const phantom: any = window.phantom?.solana?.isPhantom
+ ? window.phantom?.solana
+ : undefined
+ const providers = {
+ Phantom: undefined,
+ }
+ providers.Phantom = phantom
+ return providers
+}
\ No newline at end of file
diff --git a/apps/web/src/composables/wallet.ts b/apps/web/src/composables/wallet.ts
index ae032aece..b5136b2d6 100644
--- a/apps/web/src/composables/wallet.ts
+++ b/apps/web/src/composables/wallet.ts
@@ -4,35 +4,30 @@ import useIoPay from '@/composables/iopay'
import useLedger from '@/composables/ledger'
import useEthers from '@/composables/ethers'
import useWalletConnect from '@/composables/walletConnect'
-import { BrowserProviders } from '@/interfaces/BrowserProviders'
-import { EthersProvider } from '@/interfaces/EthersProvider'
+import useSolana from '@/composables/solana'
import { ProviderString } from '@/types/ProviderString'
+import { TransactionInit } from '@/interfaces/TransactionInit'
+import { MessageInit } from '@/interfaces/MessageInit'
-const defaultProviders = {
- MetaMask: undefined,
- CoinbaseWallet: undefined,
-}
-const ethersProviderList = ['MetaMask', 'CoinbaseWallet']
-
-const { requestEthersAccount } = useEthers()
-const {
- enableWalletConnect,
- disableWalletConnect,
- sendWalletConnectTransaction,
-} = useWalletConnect()
+const { ethersProviderList, requestEthersAccount, sendEthersTransaction, signEthersMessage } = useEthers()
+const { enableWalletConnect, disableWalletConnect, sendWalletConnectTransaction } = useWalletConnect()
+const { solanaProviderList, requestSolanaAddress, sendSolanaTransaction, signSolanaMessage } = useSolana()
-const amount = ref('0.01')
-const toAddress = ref('0xD4e5faa8aD7d499Aa03BDDE2a3116E66bc8F8203')
+const amount = ref('0.001')
+const toAddress = ref('7aVow9eVQjwn7Y4y7tAbPM1pfrE1TzjmJhxcRt8QwX5F')
// Test ethereum send to address : 0xD4e5faa8aD7d499Aa03BDDE2a3116E66bc8F8203
+// Test solana address: 7aVow9eVQjwn7Y4y7tAbPM1pfrE1TzjmJhxcRt8QwX5F
// Test iotex send to address: acc://06da5e904240736b1e21ca6dbbd5f619860803af04ff3d54/acme
export default function useWallet() {
- const { getIoPayAccounts, sendIoPayTransaction } = useIoPay()
- const { bip32Path, getLedgerEthSigner } = useLedger()
- const ethereum: any = window.ethereum
- const availableProviders = ref(
- getBrowserProviders(ethereum)
- )
+ const { getIoPayAccounts, sendIoPayTransaction, signIoPayMessage } =
+ useIoPay()
+ const {
+ bip32Path,
+ getLedgerEthSigner,
+ signLedgerMessage,
+ sendLedgerTransaction,
+ } = useLedger()
const selectedProvider = ref('')
const selectedAccount = ref('')
const setSelectedProvider = (provider: ProviderString) => {
@@ -44,18 +39,20 @@ export default function useWallet() {
async function connectWallet(provider: ProviderString) {
try {
+ if (selectedProvider.value === 'WalletConnect' && provider !== 'WalletConnect') {
+ await disableWalletConnect()
+ }
setSelectedProvider(provider)
selectedAccount.value = 'Not Active'
if (provider === 'WalletConnect') {
enableWalletConnect()
} else if (ethersProviderList.includes(provider)) {
- const browserExtensionProvider =
- availableProviders.value[provider as keyof BrowserProviders]
- const accounts = await requestEthersAccount(
- browserExtensionProvider as EthersProvider
- )
+ const accounts = await requestEthersAccount(provider as ProviderString)
const address = accounts[0]
setSelectedAccount(address)
+ } else if (solanaProviderList.includes(provider)) {
+ const address = await requestSolanaAddress(provider as ProviderString)
+ setSelectedAccount(address)
} else if (provider === 'IoPay') {
const accounts = await getIoPayAccounts()
const { address } = accounts[0]
@@ -63,7 +60,6 @@ export default function useWallet() {
} else if (provider === 'Ledger') {
const ledgerEth = await getLedgerEthSigner()
const { address } = await ledgerEth.getAddress(bip32Path)
- console.log(address)
setSelectedAccount(address)
} else {
throw new Error('No provider selected')
@@ -73,45 +69,51 @@ export default function useWallet() {
}
}
- // TODO: Fold this into the logic of switching to/from other wallet provider depending on front-end implementation
- async function disconnectWallet(provider: ProviderString) {
- selectedAccount.value = ''
- selectedProvider.value = ''
- if (provider === 'WalletConnect') {
- await disableWalletConnect()
+ async function sendTransaction() {
+ const txInit: TransactionInit = {
+ from: selectedAccount.value,
+ to: toAddress.value,
+ value: amount.value,
+ providerString: selectedProvider.value
}
- }
- async function sendTransaction(provider: string) {
try {
- if (provider === 'WalletConnect') {
- await sendWalletConnectTransaction(amount.value, toAddress.value)
- } else if (ethersProviderList.includes(provider)) {
- const browserProvider =
- availableProviders.value[provider as keyof BrowserProviders]
- const web3Provider: ethers.providers.Web3Provider =
- new ethers.providers.Web3Provider(browserProvider as EthersProvider)
- const signer = web3Provider.getSigner()
- const etherAmount = ethers.utils.parseEther(amount.value)
- const tx = {
- to: toAddress.value,
- value: etherAmount,
- }
- signer.sendTransaction(tx).then((txObj) => {
- console.log('successful txHash: ', txObj.hash)
- })
+ if (txInit.providerString === 'WalletConnect') {
+ await sendWalletConnectTransaction(txInit)
+ } else if (ethersProviderList.includes(txInit.providerString)) {
+ await sendEthersTransaction(txInit)
+ } else if (solanaProviderList.includes(txInit.providerString)) {
+ await sendSolanaTransaction(txInit)
} else if (selectedProvider.value === 'IoPay') {
- await sendIoPayTransaction(toAddress.value, amount.value)
+ await sendIoPayTransaction(txInit)
} else if (selectedProvider.value === 'Ledger') {
- // npm run dev:ethereum in another process
- // const ledgerEth = await getLedgerEthSigner()
- // Create - { to: ... }
- // Serialize - ethers.utils.serializeTransaction
- // Sign - ledgerEth.signTransaction
- // Send - (new ethers.providers.JsonRpcProvider("http://127.0.0.1:8545")).sendTransaction
+ await sendLedgerTransaction(txInit)
} else {
throw new Error('Provider selected not yet supported')
}
+ } catch (error) {
+ console.error('sendTransaction error: ', error)
+ }
+ }
+
+ async function signMessage(message: string) {
+ const messageInit: MessageInit = {
+ hashedMessage: ethers.utils.id(message),
+ providerString: selectedProvider.value,
+ }
+ // TODO: Mock sending hash and signature to backend for verification
+ try {
+ if (ethersProviderList.includes(messageInit.providerString)) {
+ await signEthersMessage(messageInit)
+ } else if (solanaProviderList.includes(messageInit.providerString)) {
+ await signSolanaMessage(messageInit)
+ } else if (messageInit.providerString === 'IoPay') {
+ await signIoPayMessage(messageInit)
+ } else if (messageInit.providerString === 'Ledger') {
+ await signLedgerMessage(messageInit)
+ } else {
+ console.log('signMessage not yet supported for this wallet provider')
+ }
} catch (error) {
console.error(error)
}
@@ -123,22 +125,9 @@ export default function useWallet() {
toAddress,
amount,
connectWallet,
- disconnectWallet,
sendTransaction,
+ signMessage,
}
}
-function getBrowserProviders(ethereum: any) {
- if (!ethereum) return defaultProviders
- else if (!ethereum.providerMap) {
- return {
- MetaMask: ethereum.isMetaMask ? ethereum : undefined,
- CoinbaseWallet: ethereum.isCoinbaseWallet ? ethereum : undefined,
- }
- } else {
- return {
- MetaMask: ethereum.providerMap.get('MetaMask'),
- CoinbaseWallet: ethereum.providerMap.get('CoinbaseWallet'),
- }
- }
-}
+
diff --git a/apps/web/src/composables/walletConnect.ts b/apps/web/src/composables/walletConnect.ts
index 64a0ad257..26a901a3d 100644
--- a/apps/web/src/composables/walletConnect.ts
+++ b/apps/web/src/composables/walletConnect.ts
@@ -2,19 +2,20 @@ import WalletConnect from '@walletconnect/client'
import QRCodeModal from '@walletconnect/qrcode-modal'
import { ref, Ref } from 'vue'
import { ethers } from 'ethers'
+import { TransactionInit } from '@/interfaces/TransactionInit'
export default function useWalletConnect() {
- const connector: Ref = ref()
+ let connector: WalletConnect | undefined
const walletConnectAddress: Ref = ref('')
function enableWalletConnect() {
- connector.value = new WalletConnect({
+ connector = new WalletConnect({
bridge: 'https://bridge.walletconnect.org', // Required
qrcodeModal: QRCodeModal,
})
- if (!connector.value.connected) {
- connector.value.createSession()
+ if (!connector.connected) {
+ connector.createSession()
}
- connector.value.on('connect', (error: any, payload: any) => {
+ connector.on('connect', (error: any, payload: any) => {
if (error) {
throw error
}
@@ -22,21 +23,21 @@ export default function useWalletConnect() {
const { accounts, chainId } = payload.params[0]
walletConnectAddress.value = accounts[0]
})
- connector.value.on('session_update', (error: any, payload: any) => {
+ connector.on('session_update', (error: any, payload: any) => {
if (error) {
throw error
}
// Get updated accounts and chainId
const { accounts, chainId } = payload.params[0]
})
- connector.value.on('disconnect', (error: any) => {
+ connector.on('disconnect', (error: any) => {
if (error) {
console.log(`disconnect error :>> ${error}`)
// throw error
}
// Delete connector
try {
- connector.value?.killSession()
+ connector?.killSession()
} catch (error) {
console.log(`disconnect error in listener :>> ${error}`)
}
@@ -45,34 +46,26 @@ export default function useWalletConnect() {
}
async function sendWalletConnectTransaction(
- amount: string,
- toAddress: string
- ) {
- const amountInWei = ethers.utils.parseEther(amount).toString()
-
+ { to, value }: TransactionInit
+ ): Promise {
+ const amountInWei = ethers.utils.parseEther(value).toString()
// TODO: Better understand and handle gasPrice and gasLimit
const gasLimit = ethers.utils.hexlify(21000).toString()
const gasPrice = ethers.utils.hexlify(1000000000).toString()
const tx = {
from: walletConnectAddress.value,
- to: toAddress,
+ to,
gas: gasLimit,
gasPrice: gasPrice,
value: amountInWei,
- // data: 'data', // TODO: Determine when this is needed.
- // nonce: 'nonce', // TODO: Determine when this is needed.
- }
- try {
- const result = await connector.value?.sendTransaction(tx)
- console.log('result :>> ', result)
- } catch (err) {
- console.log('error in sendWalletConnectTransaction :>> ', err)
+ // nonce: 'nonce', // TODO: Use ethers to get nonce for current address
}
+ return await connector?.sendTransaction(tx)
}
async function disableWalletConnect() {
try {
- await connector.value?.killSession()
+ await connector?.killSession()
} catch (err) {
console.log('error in disableWalletConnect :>> ', err)
}
diff --git a/apps/web/src/env.d.ts b/apps/web/src/env.d.ts
index be15b0dcb..88427095c 100644
--- a/apps/web/src/env.d.ts
+++ b/apps/web/src/env.d.ts
@@ -22,5 +22,6 @@ declare type APIGatewayResponse = {
declare global {
interface Window {
ethereum: any;
+ phantom: any;
}
}
diff --git a/apps/web/src/interfaces/BrowserProviders.ts b/apps/web/src/interfaces/BrowserProviders.ts
index b624a0b3b..8acc95133 100644
--- a/apps/web/src/interfaces/BrowserProviders.ts
+++ b/apps/web/src/interfaces/BrowserProviders.ts
@@ -3,4 +3,5 @@ import { EthersProvider } from '@/interfaces/EthersProvider'
export interface BrowserProviders {
MetaMask?: EthersProvider
CoinbaseWallet?: EthersProvider
+ Phantom?: any // TODO: Fix this.
}
diff --git a/apps/web/src/interfaces/MessageInit.ts b/apps/web/src/interfaces/MessageInit.ts
new file mode 100644
index 000000000..e01d22daa
--- /dev/null
+++ b/apps/web/src/interfaces/MessageInit.ts
@@ -0,0 +1,6 @@
+import { ProviderString } from '@/types/ProviderString'
+
+export interface MessageInit {
+ hashedMessage: string;
+ providerString: ProviderString;
+}
\ No newline at end of file
diff --git a/apps/web/src/interfaces/TransactionInit.ts b/apps/web/src/interfaces/TransactionInit.ts
new file mode 100644
index 000000000..a3841c837
--- /dev/null
+++ b/apps/web/src/interfaces/TransactionInit.ts
@@ -0,0 +1,13 @@
+import ethers from 'ethers'
+import { ProviderString } from '@/types/ProviderString'
+
+export interface TransactionInit extends ethers.providers.TransactionRequest {
+ /** The transaction sender's address */
+ from: string;
+ /** The transaction receiver's address */
+ to: string;
+ /** The value of the transaction */
+ value: string;
+ /** The provider string of the transaction */
+ providerString: ProviderString;
+}
\ No newline at end of file
diff --git a/apps/web/src/types/ProviderString.ts b/apps/web/src/types/ProviderString.ts
index 547706e3e..c55573d90 100644
--- a/apps/web/src/types/ProviderString.ts
+++ b/apps/web/src/types/ProviderString.ts
@@ -4,4 +4,5 @@ export type ProviderString =
| 'IoPay'
| 'Ledger'
| 'WalletConnect'
+ | 'Phantom'
| ''
diff --git a/common/data/src/index.ts b/common/data/src/index.ts
index 44a87bc68..2be4b32d5 100644
--- a/common/data/src/index.ts
+++ b/common/data/src/index.ts
@@ -14,12 +14,12 @@ export function schemaToGlueColumns(jsonSchema: JsonSchema): glue.Column[] {
return Object.keys(jsonSchema.properties).map((name: string) => {
const property = jsonSchema.properties[name]
- // 'STRING' | 'INTEGER' | 'BOOLEAN' | 'DOUBLE' | 'DECIMAL' | 'BIGINT' | 'TIMESTAMP' | 'JSON' | 'DATE'
+ // 'STRING' | 'INTEGER' | 'BOOLEAN' | 'DOUBLE' | 'DECIMAL' | 'BIG_INT' | 'TIMESTAMP' | 'JSON' | 'DATE'
const typeKey = property.type.toUpperCase() as keyof glue.Schema
let type: glue.Type = glue.Schema[typeKey]
- if (name.endsWith('at')) type = glue.Schema.TIMESTAMP
+ if (name.endsWith('_at')) type = glue.Schema.TIMESTAMP
if (name.endsWith('_list')) type = glue.Schema.array(glue.Schema.STRING)
@@ -30,24 +30,45 @@ export function schemaToGlueColumns(jsonSchema: JsonSchema): glue.Column[] {
})
}
-export type EventTableColumn = {
+export type EventTableSchema = {
+ /** Name of the chain (e.g. iotex, ethereum) */
chain: string
+ /** Name of the network (e.g. mainnet, testnet) */
network: string
+ /** "Name of the provider (e.g. casimir, infura, alchemy) */
provider: string
+ /** The type of event (e.g. block, transaction, deposit) */
type: string
+ /** The block height */
+ height: number
+ /** The block hash */
+ block: string
+ /** The transaction hash */
+ transaction: string
+ /** The date timestamp of the event in ISO 8601 format (e.g. 2015-03-04T22:44:30.652Z) */
created_at: string
+ /** The address which initiated the event, a miner in case of block and a caller in case of other events */
address: string
- height: number
+ /** The recipient's address */
to_address: string
- candidate: string
- candidate_list: string[]
+ /** The amount value associated with the transaction */
amount: string
+ /** The total amount of gas used */
+ gasUsed: number
+ /** The gas limit provided by transactions in the block */
+ gasLimit: number
+ /** Post-London upgrade this represents the minimum gasUsed multiplier required for a transaction to be included in a block */
+ baseFee: number
+ /** Post-London Upgrade, this represents the part of the tx fee that is burnt */
+ burntFee: number
+ /** The validator's address */
+ validator: string
+ /** The list of validators' addresses */
+ validator_list: string[]
+ /** The duration of the event */
duration: number
+ /** Is auto staking enabled */
auto_stake: boolean
- // payload: Record
}
-// export type EventTableColumn = {
-// [key in keyof typeof eventSchema.properties]: // what goes here?
-
export { eventSchema, aggSchema }
\ No newline at end of file
diff --git a/common/data/src/schemas/event.schema.json b/common/data/src/schemas/event.schema.json
index 87a458584..081218a18 100644
--- a/common/data/src/schemas/event.schema.json
+++ b/common/data/src/schemas/event.schema.json
@@ -44,6 +44,26 @@
"type": "string",
"description": "The recipient's address"
},
+ "amount": {
+ "type": "string",
+ "description": "The amount of currency associated with the event"
+ },
+ "gas_used": {
+ "type": "big_int",
+ "description": "The total amount of gas used"
+ },
+ "gas_limit": {
+ "type": "big_int",
+ "description": "The gas limit provided by transactions in the block"
+ },
+ "base_fee": {
+ "type": "big_int",
+ "description": "Post-London upgrade this represents the minimum gasUsed multiplier required for a transaction to be included in a block"
+ },
+ "burnt_fee": {
+ "type": "float",
+ "description": "Post-London Upgrade, this represents the part of the tx fee that is burnt"
+ },
"validator": {
"type": "string",
"description": "The validator's address"
@@ -52,10 +72,6 @@
"type": "array",
"description": "The list of validators in stake action"
},
- "amount": {
- "type": "string",
- "description": "The amount of currency associated with the event"
- },
"duration":{
"type": "string",
"description": "The duration of the event"
diff --git a/common/helpers/src/index.ts b/common/helpers/src/index.ts
index 2f7ae52b9..86a09ddc8 100644
--- a/common/helpers/src/index.ts
+++ b/common/helpers/src/index.ts
@@ -2,7 +2,7 @@ import { S3Client, S3ClientConfig, PutObjectCommand, GetObjectCommand } from '@a
import { AthenaClient, AthenaClientConfig } from '@aws-sdk/client-athena'
import { defaultProvider } from '@aws-sdk/credential-provider-node'
import { StartQueryExecutionCommand, GetQueryExecutionCommand } from '@aws-sdk/client-athena'
-import { EventTableColumn } from '@casimir/data'
+import { EventTableSchema } from '@casimir/data'
const defaultQueryOutputBucket = 'casimir-etl-output-bucket-dev'
@@ -186,7 +186,7 @@ async function pollAthenaQueryOutput(queryId: string): Promise {
* @param query - SQL query to run (make sure the correct permissions are set)
* @return string - Query result
*/
-export async function queryAthena(query: string): Promise {
+export async function queryAthena(query: string): Promise {
if (!athena) {
athena = await newAthenaClient()
@@ -225,7 +225,7 @@ export async function queryAthena(query: string): Promise h.trim().replace(/"/g, ''))
- const events: EventTableColumn[] = []
+ const events: EventTableSchema[] = []
rows.forEach((curr, i) => {
const row = curr.split(',')
diff --git a/contracts/evm/deploy/sample.ts b/contracts/ethereum/deploy/sample.ts
similarity index 100%
rename from contracts/evm/deploy/sample.ts
rename to contracts/ethereum/deploy/sample.ts
diff --git a/contracts/ethereum/hardhat.config.ts b/contracts/ethereum/hardhat.config.ts
new file mode 100644
index 000000000..ef4034bdf
--- /dev/null
+++ b/contracts/ethereum/hardhat.config.ts
@@ -0,0 +1,52 @@
+import localtunnel from 'localtunnel'
+import os from 'os'
+import '@typechain/hardhat'
+import '@nomiclabs/hardhat-waffle'
+import '@nomiclabs/hardhat-ethers'
+import { HardhatUserConfig } from 'hardhat/config'
+
+const forkUrl = process.env.ETHEREUM_FORK_RPC
+const mnemonic = process.env.BIP39_SEED
+
+// Go to https://hardhat.org/config/ to learn more
+const config: HardhatUserConfig = {
+ solidity: '0.8.17',
+ paths: {
+ tests: './test',
+ sources: './src',
+ artifacts: './build/artifacts',
+ cache: './build/cache',
+ },
+ typechain: {
+ outDir: './build/artifacts/types',
+ },
+ networks: {
+ hardhat: {
+ accounts: mnemonic ? { mnemonic, accountsBalance: '48000000000000000000', count: 3 } : undefined,
+ chainId: 1337,
+ forking: forkUrl ? { url: forkUrl } : undefined
+ }
+ }
+}
+
+if (process.env.LOCAL_TUNNEL) {
+ // Start a local tunnel for using RPC over https
+ const localSubdomain = `cn-hardhat-${os.userInfo().username.toLowerCase()}`
+ const localUrl = `https://${localSubdomain}.loca.lt`
+ console.log('Your local tunnel is', localUrl)
+ localtunnel({ port: 8545, subdomain: localSubdomain }).then(
+ (tunnel: localtunnel.Tunnel) => {
+ if (localUrl === tunnel.url) {
+ console.log('Your local tunnel is now available at', localUrl)
+ } else {
+ console.log('Your desired local tunnel url is not available')
+ }
+ process.on('SIGINT', () => {
+ tunnel.close()
+ process.exit(0)
+ })
+ }
+ )
+}
+
+export default config
\ No newline at end of file
diff --git a/contracts/evm/package.json b/contracts/ethereum/package.json
similarity index 86%
rename from contracts/evm/package.json
rename to contracts/ethereum/package.json
index d5cd2f56c..ef1099a34 100644
--- a/contracts/evm/package.json
+++ b/contracts/ethereum/package.json
@@ -1,12 +1,11 @@
{
- "name": "@casimir/evm",
+ "name": "@casimir/ethereum",
"scripts": {
"deploy:sample": "npx hardhat run deploy/sample.ts",
"test:contracts": "npx hardhat test",
- "task:accounts": "npx hardhat accounts",
"task:compile": "npx hardhat compile",
"task:clean": "npx hardhat clean",
- "dev:localnode": "npx hardhat node"
+ "dev:node": "npx hardhat node"
},
"devDependencies": {
"@nomiclabs/hardhat-ethers": "^2.0.6",
diff --git a/contracts/evm/src/Sample.sol b/contracts/ethereum/src/Sample.sol
similarity index 100%
rename from contracts/evm/src/Sample.sol
rename to contracts/ethereum/src/Sample.sol
diff --git a/contracts/evm/test/sample.ts b/contracts/ethereum/test/sample.ts
similarity index 100%
rename from contracts/evm/test/sample.ts
rename to contracts/ethereum/test/sample.ts
diff --git a/contracts/evm/tsconfig.json b/contracts/ethereum/tsconfig.json
similarity index 100%
rename from contracts/evm/tsconfig.json
rename to contracts/ethereum/tsconfig.json
diff --git a/contracts/evm/hardhat.config.ts b/contracts/evm/hardhat.config.ts
deleted file mode 100644
index fa972d09b..000000000
--- a/contracts/evm/hardhat.config.ts
+++ /dev/null
@@ -1,59 +0,0 @@
-import localtunnel from 'localtunnel'
-import os from 'os'
-import { task } from 'hardhat/config'
-import '@typechain/hardhat'
-import '@nomiclabs/hardhat-waffle'
-import '@nomiclabs/hardhat-ethers'
-import { HardhatUserConfig } from 'hardhat/config'
-
-// https://hardhat.org/guides/create-task.html
-task('accounts', 'Prints the list of accounts', async (taskArgs: any, hre: { ethers: { getSigners: () => any } }) => {
- const accounts = await hre.ethers.getSigners()
-
- for (const account of accounts) {
- console.log(account.address)
- }
-})
-
-// Use Ledger seed for consistency from localnet to testnet
-const defaultSeed = 'test test test test test test test test test test test junk'
-const mnemonic = process.env.LEDGER_SEED || defaultSeed
-console.log('Your mnemonic is', mnemonic)
-
-// Go to https://hardhat.org/config/ to learn more
-const config: HardhatUserConfig = {
- solidity: '0.8.4',
- paths: {
- tests: './test',
- sources: './src',
- artifacts: './build/artifacts',
- cache: './build/cache'
- },
- typechain: {
- outDir: './build/artifacts/types'
- },
- networks: {
- hardhat: {
- chainId: 1337,
- accounts: { mnemonic, accountsBalance: '32000000000000000000' }
- }
- }
-}
-
-// Start a local tunnel for using RPC with https
-const localSubdomain = `cn-hh-${os.userInfo().username.toLowerCase()}`
-const localUrl = `https://${localSubdomain}.loca.lt`
-console.log('Your local tunnel is', localUrl)
-localtunnel({ port: 8545, subdomain: localSubdomain }).then((tunnel: localtunnel.Tunnel) => {
- if (localUrl === tunnel.url) {
- console.log('Your local tunnel is now available at', localUrl)
- } else {
- console.log('Your desired local tunnel url is not available')
- }
- process.on('SIGINT', () => {
- tunnel.close()
- process.exit(0)
- })
-})
-
-export default config
\ No newline at end of file
diff --git a/package-lock.json b/package-lock.json
index 026f2a23b..4753d43a7 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -55,9 +55,11 @@
"dependencies": {
"@heroicons/vue": "^1.0.6",
"@ledgerhq/hw-app-eth": "^6.29.4",
- "@ledgerhq/hw-transport-webhid": "^6.27.2",
+ "@ledgerhq/hw-transport-webusb": "^6.27.4",
+ "@solana/web3.js": "^1.63.1",
"@walletconnect/client": "^1.8.0",
"@walletconnect/qrcode-modal": "^1.8.0",
+ "borsh": "^0.7.0",
"buffer": "^6.0.3",
"ethers": "^5.6.9",
"iotex-antenna": "^0.31.3",
@@ -80,8 +82,6 @@
},
"apps/web/node_modules/buffer": {
"version": "6.0.3",
- "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz",
- "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==",
"funding": [
{
"type": "github",
@@ -96,6 +96,7 @@
"url": "https://feross.org/support"
}
],
+ "license": "MIT",
"dependencies": {
"base64-js": "^1.3.1",
"ieee754": "^1.2.1"
@@ -119,10 +120,9 @@
},
"common/data/node_modules/esbuild": {
"version": "0.15.9",
- "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.15.9.tgz",
- "integrity": "sha512-OnYr1rkMVxtmMHIAKZLMcEUlJmqcbxBz9QoBU8G9v455na0fuzlT/GLu6l+SRghrk0Mm2fSSciMmzV43Q8e0Gg==",
"dev": true,
"hasInstallScript": true,
+ "license": "MIT",
"bin": {
"esbuild": "bin/esbuild"
},
@@ -156,12 +156,11 @@
},
"common/data/node_modules/esbuild-darwin-64": {
"version": "0.15.9",
- "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.15.9.tgz",
- "integrity": "sha512-gI7dClcDN/HHVacZhTmGjl0/TWZcGuKJ0I7/xDGJwRQQn7aafZGtvagOFNmuOq+OBFPhlPv1T6JElOXb0unkSQ==",
"cpu": [
"x64"
],
"dev": true,
+ "license": "MIT",
"optional": true,
"os": [
"darwin"
@@ -185,10 +184,9 @@
},
"common/helpers/node_modules/esbuild": {
"version": "0.15.9",
- "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.15.9.tgz",
- "integrity": "sha512-OnYr1rkMVxtmMHIAKZLMcEUlJmqcbxBz9QoBU8G9v455na0fuzlT/GLu6l+SRghrk0Mm2fSSciMmzV43Q8e0Gg==",
"dev": true,
"hasInstallScript": true,
+ "license": "MIT",
"bin": {
"esbuild": "bin/esbuild"
},
@@ -222,12 +220,11 @@
},
"common/helpers/node_modules/esbuild-darwin-64": {
"version": "0.15.9",
- "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.15.9.tgz",
- "integrity": "sha512-gI7dClcDN/HHVacZhTmGjl0/TWZcGuKJ0I7/xDGJwRQQn7aafZGtvagOFNmuOq+OBFPhlPv1T6JElOXb0unkSQ==",
"cpu": [
"x64"
],
"dev": true,
+ "license": "MIT",
"optional": true,
"os": [
"darwin"
@@ -243,8 +240,8 @@
"@ledgerhq/hw-transport": "^6.27.2"
}
},
- "contracts/evm": {
- "name": "@casimir/evm",
+ "contracts/ethereum": {
+ "name": "@casimir/ethereum",
"devDependencies": {
"@nomiclabs/hardhat-ethers": "^2.0.6",
"@nomiclabs/hardhat-waffle": "^2.0.3",
@@ -262,7 +259,7 @@
"typechain": "^8.1.0"
}
},
- "contracts/evm/node_modules/@types/node": {
+ "contracts/ethereum/node_modules/@types/node": {
"version": "17.0.45",
"dev": true,
"license": "MIT"
@@ -2575,6 +2572,17 @@
"@babel/core": "^7.0.0-0"
}
},
+ "node_modules/@babel/runtime": {
+ "version": "7.19.0",
+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.19.0.tgz",
+ "integrity": "sha512-eR8Lo9hnDS7tqkO7NsV+mKvCmv5boaXFSZ70DnfhcgiEne8hv9oCEd36Klw74EtizEqLsy4YnW8UWwpBVolHZA==",
+ "dependencies": {
+ "regenerator-runtime": "^0.13.4"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
"node_modules/@babel/template": {
"version": "7.18.10",
"license": "MIT",
@@ -2635,8 +2643,8 @@
"resolved": "common/data",
"link": true
},
- "node_modules/@casimir/evm": {
- "resolved": "contracts/evm",
+ "node_modules/@casimir/ethereum": {
+ "resolved": "contracts/ethereum",
"link": true
},
"node_modules/@casimir/helpers": {
@@ -3059,38 +3067,6 @@
"esbuild": "*"
}
},
- "node_modules/@esbuild/android-arm": {
- "version": "0.15.9",
- "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.15.9.tgz",
- "integrity": "sha512-VZPy/ETF3fBG5PiinIkA0W/tlsvlEgJccyN2DzWZEl0DlVKRbu91PvY2D6Lxgluj4w9QtYHjOWjAT44C+oQ+EQ==",
- "cpu": [
- "arm"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "android"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@esbuild/linux-loong64": {
- "version": "0.15.9",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.15.9.tgz",
- "integrity": "sha512-O+NfmkfRrb3uSsTa4jE3WApidSe3N5++fyOVGP1SmMZi4A3BZELkhUUvj5hwmMuNdlpzAZ8iAPz2vmcR7DCFQA==",
- "cpu": [
- "loong64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
- }
- },
"node_modules/@eslint/eslintrc": {
"version": "1.3.0",
"dev": true,
@@ -3403,8 +3379,6 @@
},
"node_modules/@ethersproject/abi": {
"version": "5.7.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.7.0.tgz",
- "integrity": "sha512-351ktp42TiRcYB3H1OP8yajPeAQstMW/yCFokj/AthP9bLHzQFPlOrxOcwYEDkUAICmOHljvN4K39OMTMUa9RA==",
"funding": [
{
"type": "individual",
@@ -3415,6 +3389,7 @@
"url": "https://www.buymeacoffee.com/ricmoo"
}
],
+ "license": "MIT",
"dependencies": {
"@ethersproject/address": "^5.7.0",
"@ethersproject/bignumber": "^5.7.0",
@@ -3429,8 +3404,6 @@
},
"node_modules/@ethersproject/abstract-provider": {
"version": "5.7.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.7.0.tgz",
- "integrity": "sha512-R41c9UkchKCpAqStMYUpdunjo3pkEvZC3FAwZn5S5MGbXoMQOHIdHItezTETxAO5bevtMApSyEhn9+CHcDsWBw==",
"funding": [
{
"type": "individual",
@@ -3441,6 +3414,7 @@
"url": "https://www.buymeacoffee.com/ricmoo"
}
],
+ "license": "MIT",
"dependencies": {
"@ethersproject/bignumber": "^5.7.0",
"@ethersproject/bytes": "^5.7.0",
@@ -3453,8 +3427,6 @@
},
"node_modules/@ethersproject/abstract-signer": {
"version": "5.7.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.7.0.tgz",
- "integrity": "sha512-a16V8bq1/Cz+TGCkE2OPMTOUDLS3grCpdjoJCYNnVBbdYEMSgKrU0+B90s8b6H+ByYTBZN7a3g76jdIJi7UfKQ==",
"funding": [
{
"type": "individual",
@@ -3465,6 +3437,7 @@
"url": "https://www.buymeacoffee.com/ricmoo"
}
],
+ "license": "MIT",
"dependencies": {
"@ethersproject/abstract-provider": "^5.7.0",
"@ethersproject/bignumber": "^5.7.0",
@@ -3475,8 +3448,6 @@
},
"node_modules/@ethersproject/address": {
"version": "5.7.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.7.0.tgz",
- "integrity": "sha512-9wYhYt7aghVGo758POM5nqcOMaE168Q6aRLJZwUmiqSrAungkG74gSSeKEIR7ukixesdRZGPgVqme6vmxs1fkA==",
"funding": [
{
"type": "individual",
@@ -3487,6 +3458,7 @@
"url": "https://www.buymeacoffee.com/ricmoo"
}
],
+ "license": "MIT",
"dependencies": {
"@ethersproject/bignumber": "^5.7.0",
"@ethersproject/bytes": "^5.7.0",
@@ -3497,8 +3469,6 @@
},
"node_modules/@ethersproject/base64": {
"version": "5.7.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.7.0.tgz",
- "integrity": "sha512-Dr8tcHt2mEbsZr/mwTPIQAf3Ai0Bks/7gTw9dSqk1mQvhW3XvRlmDJr/4n+wg1JmCl16NZue17CDh8xb/vZ0sQ==",
"funding": [
{
"type": "individual",
@@ -3509,14 +3479,13 @@
"url": "https://www.buymeacoffee.com/ricmoo"
}
],
+ "license": "MIT",
"dependencies": {
"@ethersproject/bytes": "^5.7.0"
}
},
"node_modules/@ethersproject/basex": {
"version": "5.7.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/basex/-/basex-5.7.0.tgz",
- "integrity": "sha512-ywlh43GwZLv2Voc2gQVTKBoVQ1mti3d8HK5aMxsfu/nRDnMmNqaSJ3r3n85HBByT8OpoY96SXM1FogC533T4zw==",
"funding": [
{
"type": "individual",
@@ -3527,6 +3496,7 @@
"url": "https://www.buymeacoffee.com/ricmoo"
}
],
+ "license": "MIT",
"dependencies": {
"@ethersproject/bytes": "^5.7.0",
"@ethersproject/properties": "^5.7.0"
@@ -3534,8 +3504,6 @@
},
"node_modules/@ethersproject/bignumber": {
"version": "5.7.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.7.0.tgz",
- "integrity": "sha512-n1CAdIHRWjSucQO3MC1zPSVgV/6dy/fjL9pMrPP9peL+QxEg9wOsVqwD4+818B6LUEtaXzVHQiuivzRoxPxUGw==",
"funding": [
{
"type": "individual",
@@ -3546,6 +3514,7 @@
"url": "https://www.buymeacoffee.com/ricmoo"
}
],
+ "license": "MIT",
"dependencies": {
"@ethersproject/bytes": "^5.7.0",
"@ethersproject/logger": "^5.7.0",
@@ -3554,8 +3523,6 @@
},
"node_modules/@ethersproject/bytes": {
"version": "5.7.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.7.0.tgz",
- "integrity": "sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A==",
"funding": [
{
"type": "individual",
@@ -3566,14 +3533,13 @@
"url": "https://www.buymeacoffee.com/ricmoo"
}
],
+ "license": "MIT",
"dependencies": {
"@ethersproject/logger": "^5.7.0"
}
},
"node_modules/@ethersproject/constants": {
"version": "5.7.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.7.0.tgz",
- "integrity": "sha512-DHI+y5dBNvkpYUMiRQyxRBYBefZkJfo70VUkUAsRjcPs47muV9evftfZ0PJVCXYbAiCgght0DtcF9srFQmIgWA==",
"funding": [
{
"type": "individual",
@@ -3584,14 +3550,13 @@
"url": "https://www.buymeacoffee.com/ricmoo"
}
],
+ "license": "MIT",
"dependencies": {
"@ethersproject/bignumber": "^5.7.0"
}
},
"node_modules/@ethersproject/contracts": {
"version": "5.7.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/contracts/-/contracts-5.7.0.tgz",
- "integrity": "sha512-5GJbzEU3X+d33CdfPhcyS+z8MzsTrBGk/sc+G+59+tPa9yFkl6HQ9D6L0QMgNTA9q8dT0XKxxkyp883XsQvbbg==",
"funding": [
{
"type": "individual",
@@ -3602,6 +3567,7 @@
"url": "https://www.buymeacoffee.com/ricmoo"
}
],
+ "license": "MIT",
"dependencies": {
"@ethersproject/abi": "^5.7.0",
"@ethersproject/abstract-provider": "^5.7.0",
@@ -3617,8 +3583,6 @@
},
"node_modules/@ethersproject/hash": {
"version": "5.7.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.7.0.tgz",
- "integrity": "sha512-qX5WrQfnah1EFnO5zJv1v46a8HW0+E5xuBBDTwMFZLuVTx0tbU2kkx15NqdjxecrLGatQN9FGQKpb1FKdHCt+g==",
"funding": [
{
"type": "individual",
@@ -3629,6 +3593,7 @@
"url": "https://www.buymeacoffee.com/ricmoo"
}
],
+ "license": "MIT",
"dependencies": {
"@ethersproject/abstract-signer": "^5.7.0",
"@ethersproject/address": "^5.7.0",
@@ -3643,8 +3608,6 @@
},
"node_modules/@ethersproject/hdnode": {
"version": "5.7.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/hdnode/-/hdnode-5.7.0.tgz",
- "integrity": "sha512-OmyYo9EENBPPf4ERhR7oj6uAtUAhYGqOnIS+jE5pTXvdKBS99ikzq1E7Iv0ZQZ5V36Lqx1qZLeak0Ra16qpeOg==",
"funding": [
{
"type": "individual",
@@ -3655,6 +3618,7 @@
"url": "https://www.buymeacoffee.com/ricmoo"
}
],
+ "license": "MIT",
"dependencies": {
"@ethersproject/abstract-signer": "^5.7.0",
"@ethersproject/basex": "^5.7.0",
@@ -3672,8 +3636,6 @@
},
"node_modules/@ethersproject/json-wallets": {
"version": "5.7.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/json-wallets/-/json-wallets-5.7.0.tgz",
- "integrity": "sha512-8oee5Xgu6+RKgJTkvEMl2wDgSPSAQ9MB/3JYjFV9jlKvcYHUXZC+cQp0njgmxdHkYWn8s6/IqIZYm0YWCjO/0g==",
"funding": [
{
"type": "individual",
@@ -3684,6 +3646,7 @@
"url": "https://www.buymeacoffee.com/ricmoo"
}
],
+ "license": "MIT",
"dependencies": {
"@ethersproject/abstract-signer": "^5.7.0",
"@ethersproject/address": "^5.7.0",
@@ -3702,8 +3665,6 @@
},
"node_modules/@ethersproject/keccak256": {
"version": "5.7.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.7.0.tgz",
- "integrity": "sha512-2UcPboeL/iW+pSg6vZ6ydF8tCnv3Iu/8tUmLLzWWGzxWKFFqOBQFLo6uLUv6BDrLgCDfN28RJ/wtByx+jZ4KBg==",
"funding": [
{
"type": "individual",
@@ -3714,6 +3675,7 @@
"url": "https://www.buymeacoffee.com/ricmoo"
}
],
+ "license": "MIT",
"dependencies": {
"@ethersproject/bytes": "^5.7.0",
"js-sha3": "0.8.0"
@@ -3721,8 +3683,6 @@
},
"node_modules/@ethersproject/logger": {
"version": "5.7.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.7.0.tgz",
- "integrity": "sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig==",
"funding": [
{
"type": "individual",
@@ -3732,12 +3692,11 @@
"type": "individual",
"url": "https://www.buymeacoffee.com/ricmoo"
}
- ]
+ ],
+ "license": "MIT"
},
"node_modules/@ethersproject/networks": {
"version": "5.7.1",
- "resolved": "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.7.1.tgz",
- "integrity": "sha512-n/MufjFYv3yFcUyfhnXotyDlNdFb7onmkSy8aQERi2PjNcnWQ66xXxa3XlS8nCcA8aJKJjIIMNJTC7tu80GwpQ==",
"funding": [
{
"type": "individual",
@@ -3748,14 +3707,13 @@
"url": "https://www.buymeacoffee.com/ricmoo"
}
],
+ "license": "MIT",
"dependencies": {
"@ethersproject/logger": "^5.7.0"
}
},
"node_modules/@ethersproject/pbkdf2": {
"version": "5.7.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/pbkdf2/-/pbkdf2-5.7.0.tgz",
- "integrity": "sha512-oR/dBRZR6GTyaofd86DehG72hY6NpAjhabkhxgr3X2FpJtJuodEl2auADWBZfhDHgVCbu3/H/Ocq2uC6dpNjjw==",
"funding": [
{
"type": "individual",
@@ -3766,6 +3724,7 @@
"url": "https://www.buymeacoffee.com/ricmoo"
}
],
+ "license": "MIT",
"dependencies": {
"@ethersproject/bytes": "^5.7.0",
"@ethersproject/sha2": "^5.7.0"
@@ -3773,8 +3732,6 @@
},
"node_modules/@ethersproject/properties": {
"version": "5.7.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.7.0.tgz",
- "integrity": "sha512-J87jy8suntrAkIZtecpxEPxY//szqr1mlBaYlQ0r4RCaiD2hjheqF9s1LVE8vVuJCXisjIP+JgtK/Do54ej4Sw==",
"funding": [
{
"type": "individual",
@@ -3785,14 +3742,13 @@
"url": "https://www.buymeacoffee.com/ricmoo"
}
],
+ "license": "MIT",
"dependencies": {
"@ethersproject/logger": "^5.7.0"
}
},
"node_modules/@ethersproject/providers": {
"version": "5.7.1",
- "resolved": "https://registry.npmjs.org/@ethersproject/providers/-/providers-5.7.1.tgz",
- "integrity": "sha512-vZveG/DLyo+wk4Ga1yx6jSEHrLPgmTt+dFv0dv8URpVCRf0jVhalps1jq/emN/oXnMRsC7cQgAF32DcXLL7BPQ==",
"funding": [
{
"type": "individual",
@@ -3803,6 +3759,7 @@
"url": "https://www.buymeacoffee.com/ricmoo"
}
],
+ "license": "MIT",
"dependencies": {
"@ethersproject/abstract-provider": "^5.7.0",
"@ethersproject/abstract-signer": "^5.7.0",
@@ -3851,8 +3808,6 @@
},
"node_modules/@ethersproject/random": {
"version": "5.7.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/random/-/random-5.7.0.tgz",
- "integrity": "sha512-19WjScqRA8IIeWclFme75VMXSBvi4e6InrUNuaR4s5pTF2qNhcGdCUwdxUVGtDDqC00sDLCO93jPQoDUH4HVmQ==",
"funding": [
{
"type": "individual",
@@ -3863,6 +3818,7 @@
"url": "https://www.buymeacoffee.com/ricmoo"
}
],
+ "license": "MIT",
"dependencies": {
"@ethersproject/bytes": "^5.7.0",
"@ethersproject/logger": "^5.7.0"
@@ -3870,8 +3826,6 @@
},
"node_modules/@ethersproject/rlp": {
"version": "5.7.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.7.0.tgz",
- "integrity": "sha512-rBxzX2vK8mVF7b0Tol44t5Tb8gomOHkj5guL+HhzQ1yBh/ydjGnpw6at+X6Iw0Kp3OzzzkcKp8N9r0W4kYSs9w==",
"funding": [
{
"type": "individual",
@@ -3882,6 +3836,7 @@
"url": "https://www.buymeacoffee.com/ricmoo"
}
],
+ "license": "MIT",
"dependencies": {
"@ethersproject/bytes": "^5.7.0",
"@ethersproject/logger": "^5.7.0"
@@ -3889,8 +3844,6 @@
},
"node_modules/@ethersproject/sha2": {
"version": "5.7.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/sha2/-/sha2-5.7.0.tgz",
- "integrity": "sha512-gKlH42riwb3KYp0reLsFTokByAKoJdgFCwI+CCiX/k+Jm2mbNs6oOaCjYQSlI1+XBVejwH2KrmCbMAT/GnRDQw==",
"funding": [
{
"type": "individual",
@@ -3901,6 +3854,7 @@
"url": "https://www.buymeacoffee.com/ricmoo"
}
],
+ "license": "MIT",
"dependencies": {
"@ethersproject/bytes": "^5.7.0",
"@ethersproject/logger": "^5.7.0",
@@ -3909,8 +3863,6 @@
},
"node_modules/@ethersproject/signing-key": {
"version": "5.7.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.7.0.tgz",
- "integrity": "sha512-MZdy2nL3wO0u7gkB4nA/pEf8lu1TlFswPNmy8AiYkfKTdO6eXBJyUdmHO/ehm/htHw9K/qF8ujnTyUAD+Ry54Q==",
"funding": [
{
"type": "individual",
@@ -3921,6 +3873,7 @@
"url": "https://www.buymeacoffee.com/ricmoo"
}
],
+ "license": "MIT",
"dependencies": {
"@ethersproject/bytes": "^5.7.0",
"@ethersproject/logger": "^5.7.0",
@@ -3932,8 +3885,7 @@
},
"node_modules/@ethersproject/signing-key/node_modules/elliptic": {
"version": "6.5.4",
- "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz",
- "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==",
+ "license": "MIT",
"dependencies": {
"bn.js": "^4.11.9",
"brorand": "^1.1.0",
@@ -3946,13 +3898,10 @@
},
"node_modules/@ethersproject/signing-key/node_modules/elliptic/node_modules/bn.js": {
"version": "4.12.0",
- "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
- "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
+ "license": "MIT"
},
"node_modules/@ethersproject/solidity": {
"version": "5.7.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/solidity/-/solidity-5.7.0.tgz",
- "integrity": "sha512-HmabMd2Dt/raavyaGukF4XxizWKhKQ24DoLtdNbBmNKUOPqwjsKQSdV9GQtj9CBEea9DlzETlVER1gYeXXBGaA==",
"funding": [
{
"type": "individual",
@@ -3963,6 +3912,7 @@
"url": "https://www.buymeacoffee.com/ricmoo"
}
],
+ "license": "MIT",
"dependencies": {
"@ethersproject/bignumber": "^5.7.0",
"@ethersproject/bytes": "^5.7.0",
@@ -3974,8 +3924,6 @@
},
"node_modules/@ethersproject/strings": {
"version": "5.7.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.7.0.tgz",
- "integrity": "sha512-/9nu+lj0YswRNSH0NXYqrh8775XNyEdUQAuf3f+SmOrnVewcJ5SBNAjF7lpgehKi4abvNNXyf+HX86czCdJ8Mg==",
"funding": [
{
"type": "individual",
@@ -3986,6 +3934,7 @@
"url": "https://www.buymeacoffee.com/ricmoo"
}
],
+ "license": "MIT",
"dependencies": {
"@ethersproject/bytes": "^5.7.0",
"@ethersproject/constants": "^5.7.0",
@@ -3994,8 +3943,6 @@
},
"node_modules/@ethersproject/transactions": {
"version": "5.7.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.7.0.tgz",
- "integrity": "sha512-kmcNicCp1lp8qanMTC3RIikGgoJ80ztTyvtsFvCYpSCfkjhD0jZ2LOrnbcuxuToLIUYYf+4XwD1rP+B/erDIhQ==",
"funding": [
{
"type": "individual",
@@ -4006,6 +3953,7 @@
"url": "https://www.buymeacoffee.com/ricmoo"
}
],
+ "license": "MIT",
"dependencies": {
"@ethersproject/address": "^5.7.0",
"@ethersproject/bignumber": "^5.7.0",
@@ -4020,8 +3968,6 @@
},
"node_modules/@ethersproject/units": {
"version": "5.7.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/units/-/units-5.7.0.tgz",
- "integrity": "sha512-pD3xLMy3SJu9kG5xDGI7+xhTEmGXlEqXU4OfNapmfnxLVY4EMSSRp7j1k7eezutBPH7RBN/7QPnwR7hzNlEFeg==",
"funding": [
{
"type": "individual",
@@ -4032,6 +3978,7 @@
"url": "https://www.buymeacoffee.com/ricmoo"
}
],
+ "license": "MIT",
"dependencies": {
"@ethersproject/bignumber": "^5.7.0",
"@ethersproject/constants": "^5.7.0",
@@ -4040,8 +3987,6 @@
},
"node_modules/@ethersproject/wallet": {
"version": "5.7.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/wallet/-/wallet-5.7.0.tgz",
- "integrity": "sha512-MhmXlJXEJFBFVKrDLB4ZdDzxcBxQ3rLyCkhNqVu3CDYvR97E+8r01UgrI+TI99Le+aYm/in/0vp86guJuM7FCA==",
"funding": [
{
"type": "individual",
@@ -4052,6 +3997,7 @@
"url": "https://www.buymeacoffee.com/ricmoo"
}
],
+ "license": "MIT",
"dependencies": {
"@ethersproject/abstract-provider": "^5.7.0",
"@ethersproject/abstract-signer": "^5.7.0",
@@ -4072,8 +4018,6 @@
},
"node_modules/@ethersproject/web": {
"version": "5.7.1",
- "resolved": "https://registry.npmjs.org/@ethersproject/web/-/web-5.7.1.tgz",
- "integrity": "sha512-Gueu8lSvyjBWL4cYsWsjh6MtMwM0+H4HvqFPZfB6dV8ctbP9zFAO73VG1cMWae0FLPCtz0peKPpZY8/ugJJX2w==",
"funding": [
{
"type": "individual",
@@ -4084,6 +4028,7 @@
"url": "https://www.buymeacoffee.com/ricmoo"
}
],
+ "license": "MIT",
"dependencies": {
"@ethersproject/base64": "^5.7.0",
"@ethersproject/bytes": "^5.7.0",
@@ -4094,8 +4039,6 @@
},
"node_modules/@ethersproject/wordlists": {
"version": "5.7.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/wordlists/-/wordlists-5.7.0.tgz",
- "integrity": "sha512-S2TFNJNfHWVHNE6cNDjbVlZ6MgE17MIxMbMg2zv3wn+3XSJGosL1m9ZVv3GXCf/2ymSsQ+hRI5IzoMJTG6aoVA==",
"funding": [
{
"type": "individual",
@@ -4106,6 +4049,7 @@
"url": "https://www.buymeacoffee.com/ricmoo"
}
],
+ "license": "MIT",
"dependencies": {
"@ethersproject/bytes": "^5.7.0",
"@ethersproject/hash": "^5.7.0",
@@ -5263,27 +5207,24 @@
},
"node_modules/@ledgerhq/cryptoassets": {
"version": "6.34.0",
- "resolved": "https://registry.npmjs.org/@ledgerhq/cryptoassets/-/cryptoassets-6.34.0.tgz",
- "integrity": "sha512-Rg3i3aOWnTFD8mtNZetZnG+7XTAWu2iuD4jCC6oUeU5wKB7Sc5m0En7LoEmEWv7ZW5VpH8NjM6uK/KWgsCwR6Q==",
+ "license": "Apache-2.0",
"dependencies": {
"invariant": "2"
}
},
"node_modules/@ledgerhq/devices": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/@ledgerhq/devices/-/devices-7.0.0.tgz",
- "integrity": "sha512-vq4B33WdU0dRAJIRFWZMj6w1W1yw1i4mekCmhk7N9wPaFrtGWZ2iI9WDihsNOBooCWKQe8Jsb9eD8RVThbSlFQ==",
+ "version": "7.0.3",
+ "license": "Apache-2.0",
"dependencies": {
- "@ledgerhq/errors": "^6.10.1",
- "@ledgerhq/logs": "^6.10.0",
+ "@ledgerhq/errors": "^6.11.1",
+ "@ledgerhq/logs": "^6.10.1",
"rxjs": "6",
"semver": "^7.3.5"
}
},
"node_modules/@ledgerhq/devices/node_modules/lru-cache": {
"version": "6.0.0",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
- "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+ "license": "ISC",
"dependencies": {
"yallist": "^4.0.0"
},
@@ -5293,8 +5234,7 @@
},
"node_modules/@ledgerhq/devices/node_modules/rxjs": {
"version": "6.6.7",
- "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz",
- "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==",
+ "license": "Apache-2.0",
"dependencies": {
"tslib": "^1.9.0"
},
@@ -5304,8 +5244,7 @@
},
"node_modules/@ledgerhq/devices/node_modules/semver": {
"version": "7.3.7",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz",
- "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==",
+ "license": "ISC",
"dependencies": {
"lru-cache": "^6.0.0"
},
@@ -5318,23 +5257,19 @@
},
"node_modules/@ledgerhq/devices/node_modules/tslib": {
"version": "1.14.1",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
- "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
+ "license": "0BSD"
},
"node_modules/@ledgerhq/devices/node_modules/yallist": {
"version": "4.0.0",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
- "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
+ "license": "ISC"
},
"node_modules/@ledgerhq/errors": {
- "version": "6.10.1",
- "resolved": "https://registry.npmjs.org/@ledgerhq/errors/-/errors-6.10.1.tgz",
- "integrity": "sha512-92d1zRQleR1AQ4CAXgWgDtKUms+8EwShLVUcajI+BLWvgJ1Vclmq6PsBIDEQbsm+riVu/Ji3LcHdmgFgmi0VGw=="
+ "version": "6.11.1",
+ "license": "Apache-2.0"
},
"node_modules/@ledgerhq/hw-app-eth": {
"version": "6.29.6",
- "resolved": "https://registry.npmjs.org/@ledgerhq/hw-app-eth/-/hw-app-eth-6.29.6.tgz",
- "integrity": "sha512-7TS6dTF30ONOqppk0J8YYVX0Cd7/Pt0Uuy77n/LRXpfsLHDABSaRROjNzxxT3q7EIMz6FQi4K4WaN8OIznkytA==",
+ "license": "Apache-2.0",
"dependencies": {
"@ethersproject/abi": "^5.5.0",
"@ethersproject/rlp": "^5.5.0",
@@ -5349,51 +5284,41 @@
},
"node_modules/@ledgerhq/hw-app-eth/node_modules/bignumber.js": {
"version": "9.1.0",
- "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.0.tgz",
- "integrity": "sha512-4LwHK4nfDOraBCtst+wOWIHbu1vhvAPJK8g8nROd4iuc3PSEjWif/qwbkh8jwCJz6yDBvtU4KPynETgrfh7y3A==",
+ "license": "MIT",
"engines": {
"node": "*"
}
},
"node_modules/@ledgerhq/hw-transport": {
- "version": "6.27.3",
- "resolved": "https://registry.npmjs.org/@ledgerhq/hw-transport/-/hw-transport-6.27.3.tgz",
- "integrity": "sha512-vQMNCC1DUDtS+nkJsbycgFMSodmj91WuGSxX7RjOz2vuZBc6jXtDn9jzYdsfyKOwnvalQAkXm9hWWHlrMIKdNQ==",
+ "version": "6.27.6",
+ "license": "Apache-2.0",
"dependencies": {
- "@ledgerhq/devices": "^7.0.0",
- "@ledgerhq/errors": "^6.10.1",
+ "@ledgerhq/devices": "^7.0.3",
+ "@ledgerhq/errors": "^6.11.1",
"events": "^3.3.0"
}
},
"node_modules/@ledgerhq/hw-transport-mocker": {
"version": "6.27.3",
- "resolved": "https://registry.npmjs.org/@ledgerhq/hw-transport-mocker/-/hw-transport-mocker-6.27.3.tgz",
- "integrity": "sha512-eweiIdbU+ZC4txin7JhLQpQ5dpMoPyyGo3O5OvD4xsZGbVNauEPYZzUks0ko5ZniCpVnB3qNfS3cU3PXdjN6Zw==",
+ "license": "Apache-2.0",
"dependencies": {
"@ledgerhq/hw-transport": "^6.27.3",
"@ledgerhq/logs": "^6.10.1-nightly.0"
}
},
- "node_modules/@ledgerhq/hw-transport-mocker/node_modules/@ledgerhq/logs": {
- "version": "6.10.1-nightly.0",
- "resolved": "https://registry.npmjs.org/@ledgerhq/logs/-/logs-6.10.1-nightly.0.tgz",
- "integrity": "sha512-hwoUwlC7le37kQ72W8hAzVq070zuY6IEpssYNXDTr3pEfc3cprTAgEnaBsb0jXQGiLdONPvxc7nPp8nSyGD3hQ=="
- },
- "node_modules/@ledgerhq/hw-transport-webhid": {
- "version": "6.27.2",
- "resolved": "https://registry.npmjs.org/@ledgerhq/hw-transport-webhid/-/hw-transport-webhid-6.27.2.tgz",
- "integrity": "sha512-ZlyNheUhcxBZqjJzhSfJfeGQvNbeyWs9866rdQjVeG1zsbTJi0+6tfRv8J248QISS8vHtG5IMSxgMg9mtux9dQ==",
+ "node_modules/@ledgerhq/hw-transport-webusb": {
+ "version": "6.27.6",
+ "license": "Apache-2.0",
"dependencies": {
- "@ledgerhq/devices": "^7.0.0",
- "@ledgerhq/errors": "^6.10.1",
- "@ledgerhq/hw-transport": "^6.27.2",
- "@ledgerhq/logs": "^6.10.0"
+ "@ledgerhq/devices": "^7.0.3",
+ "@ledgerhq/errors": "^6.11.1",
+ "@ledgerhq/hw-transport": "^6.27.6",
+ "@ledgerhq/logs": "^6.10.1"
}
},
"node_modules/@ledgerhq/logs": {
- "version": "6.10.0",
- "resolved": "https://registry.npmjs.org/@ledgerhq/logs/-/logs-6.10.0.tgz",
- "integrity": "sha512-lLseUPEhSFUXYTKj6q7s2O3s2vW2ebgA11vMAlKodXGf5AFw4zUoEbTz9CoFOC9jS6xY4Qr8BmRnxP/odT4Uuw=="
+ "version": "6.10.1",
+ "license": "Apache-2.0"
},
"node_modules/@mapbox/node-pre-gyp": {
"version": "1.0.9",
@@ -5516,9 +5441,19 @@
"node": ">=4"
}
},
+ "node_modules/@noble/ed25519": {
+ "version": "1.7.1",
+ "resolved": "https://registry.npmjs.org/@noble/ed25519/-/ed25519-1.7.1.tgz",
+ "integrity": "sha512-Rk4SkJFaXZiznFyC/t77Q0NKS4FL7TLJJsVG2V2oiEq3kJVeTdxysEe/yRWSpnWMe808XRDJ+VFh5pt/FN5plw==",
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://paulmillr.com/funding/"
+ }
+ ]
+ },
"node_modules/@noble/hashes": {
"version": "1.1.2",
- "dev": true,
"funding": [
{
"type": "individual",
@@ -5529,7 +5464,6 @@
},
"node_modules/@noble/secp256k1": {
"version": "1.6.3",
- "dev": true,
"funding": [
{
"type": "individual",
@@ -5772,9 +5706,8 @@
},
"node_modules/@rollup/plugin-inject": {
"version": "4.0.4",
- "resolved": "https://registry.npmjs.org/@rollup/plugin-inject/-/plugin-inject-4.0.4.tgz",
- "integrity": "sha512-4pbcU4J/nS+zuHk+c+OL3WtmEQhqxlZ9uqfjQMQDOHOPld7PsCd8k5LWs8h5wjwJN7MgnAn768F2sDxEP4eNFQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@rollup/pluginutils": "^3.1.0",
"estree-walker": "^2.0.1",
@@ -5786,15 +5719,13 @@
},
"node_modules/@rollup/plugin-inject/node_modules/estree-walker": {
"version": "2.0.2",
- "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz",
- "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/@rollup/pluginutils": {
"version": "3.1.0",
- "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz",
- "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@types/estree": "0.0.39",
"estree-walker": "^1.0.1",
@@ -5809,9 +5740,8 @@
},
"node_modules/@rollup/pluginutils/node_modules/estree-walker": {
"version": "1.0.1",
- "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz",
- "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/@scure/base": {
"version": "1.1.1",
@@ -6029,6 +5959,88 @@
"@sinonjs/commons": "^1.7.0"
}
},
+ "node_modules/@solana/buffer-layout": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/@solana/buffer-layout/-/buffer-layout-4.0.0.tgz",
+ "integrity": "sha512-lR0EMP2HC3+Mxwd4YcnZb0smnaDw7Bl2IQWZiTevRH5ZZBZn6VRWn3/92E3qdU4SSImJkA6IDHawOHAnx/qUvQ==",
+ "dependencies": {
+ "buffer": "~6.0.3"
+ },
+ "engines": {
+ "node": ">=5.10"
+ }
+ },
+ "node_modules/@solana/buffer-layout/node_modules/buffer": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz",
+ "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "dependencies": {
+ "base64-js": "^1.3.1",
+ "ieee754": "^1.2.1"
+ }
+ },
+ "node_modules/@solana/web3.js": {
+ "version": "1.63.1",
+ "resolved": "https://registry.npmjs.org/@solana/web3.js/-/web3.js-1.63.1.tgz",
+ "integrity": "sha512-wgEdGVK5FTS2zENxbcGSvKpGZ0jDS6BUdGu8Gn6ns0CzgJkK83u4ip3THSnBPEQ5i/jrqukg998BwV1H67+qiQ==",
+ "dependencies": {
+ "@babel/runtime": "^7.12.5",
+ "@noble/ed25519": "^1.7.0",
+ "@noble/hashes": "^1.1.2",
+ "@noble/secp256k1": "^1.6.3",
+ "@solana/buffer-layout": "^4.0.0",
+ "bigint-buffer": "^1.1.5",
+ "bn.js": "^5.0.0",
+ "borsh": "^0.7.0",
+ "bs58": "^4.0.1",
+ "buffer": "6.0.1",
+ "fast-stable-stringify": "^1.0.0",
+ "jayson": "^3.4.4",
+ "node-fetch": "2",
+ "rpc-websockets": "^7.5.0",
+ "superstruct": "^0.14.2"
+ },
+ "engines": {
+ "node": ">=12.20.0"
+ }
+ },
+ "node_modules/@solana/web3.js/node_modules/buffer": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.1.tgz",
+ "integrity": "sha512-rVAXBwEcEoYtxnHSO5iWyhzV/O1WMtkUYWlfdLS7FjU4PnSJJHEfHXi/uHPI5EwltmOA794gN3bm3/pzuctWjQ==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "dependencies": {
+ "base64-js": "^1.3.1",
+ "ieee754": "^1.2.1"
+ }
+ },
"node_modules/@solidity-parser/parser": {
"version": "0.14.3",
"dev": true,
@@ -6188,7 +6200,6 @@
},
"node_modules/@types/connect": {
"version": "3.4.35",
- "dev": true,
"license": "MIT",
"dependencies": {
"@types/node": "*"
@@ -6216,9 +6227,8 @@
},
"node_modules/@types/estree": {
"version": "0.0.39",
- "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz",
- "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/@types/ethereumjs-abi": {
"version": "0.6.3",
@@ -6271,9 +6281,8 @@
},
"node_modules/@types/http-proxy": {
"version": "1.17.9",
- "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.9.tgz",
- "integrity": "sha512-QsbSjA/fSk7xB+UXlCT3wHBy5ai9wOcNDWwZAtud+jXhwOM3l+EYZh8Lng4+/6n8uar0J7xILzqftJdJ/Wdfkw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@types/node": "*"
}
@@ -6340,9 +6349,8 @@
},
"node_modules/@types/localtunnel": {
"version": "2.0.1",
- "resolved": "https://registry.npmjs.org/@types/localtunnel/-/localtunnel-2.0.1.tgz",
- "integrity": "sha512-0h/ggh+tp9uKHc2eEOLdMgWW0cNwsQfn6iEE1Y44FszNB4BQyL5N6xvd5BnChZksB0YgVqa5MKxJt0dFoOKRxw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@types/node": "*"
}
@@ -7093,8 +7101,7 @@
},
"node_modules/@walletconnect/browser-utils": {
"version": "1.8.0",
- "resolved": "https://registry.npmjs.org/@walletconnect/browser-utils/-/browser-utils-1.8.0.tgz",
- "integrity": "sha512-Wcqqx+wjxIo9fv6eBUFHPsW1y/bGWWRboni5dfD8PtOmrihrEpOCmvRJe4rfl7xgJW8Ea9UqKEaq0bIRLHlK4A==",
+ "license": "Apache-2.0",
"dependencies": {
"@walletconnect/safe-json": "1.0.0",
"@walletconnect/types": "^1.8.0",
@@ -7105,8 +7112,7 @@
},
"node_modules/@walletconnect/client": {
"version": "1.8.0",
- "resolved": "https://registry.npmjs.org/@walletconnect/client/-/client-1.8.0.tgz",
- "integrity": "sha512-svyBQ14NHx6Cs2j4TpkQaBI/2AF4+LXz64FojTjMtV4VMMhl81jSO1vNeg+yYhQzvjcGH/GpSwixjyCW0xFBOQ==",
+ "license": "Apache-2.0",
"dependencies": {
"@walletconnect/core": "^1.8.0",
"@walletconnect/iso-crypto": "^1.8.0",
@@ -7116,8 +7122,7 @@
},
"node_modules/@walletconnect/core": {
"version": "1.8.0",
- "resolved": "https://registry.npmjs.org/@walletconnect/core/-/core-1.8.0.tgz",
- "integrity": "sha512-aFTHvEEbXcZ8XdWBw6rpQDte41Rxwnuk3SgTD8/iKGSRTni50gI9S3YEzMj05jozSiOBxQci4pJDMVhIUMtarw==",
+ "license": "Apache-2.0",
"dependencies": {
"@walletconnect/socket-transport": "^1.8.0",
"@walletconnect/types": "^1.8.0",
@@ -7126,8 +7131,7 @@
},
"node_modules/@walletconnect/crypto": {
"version": "1.0.2",
- "resolved": "https://registry.npmjs.org/@walletconnect/crypto/-/crypto-1.0.2.tgz",
- "integrity": "sha512-+OlNtwieUqVcOpFTvLBvH+9J9pntEqH5evpINHfVxff1XIgwV55PpbdvkHu6r9Ib4WQDOFiD8OeeXs1vHw7xKQ==",
+ "license": "MIT",
"dependencies": {
"@walletconnect/encoding": "^1.0.1",
"@walletconnect/environment": "^1.0.0",
@@ -7138,13 +7142,11 @@
},
"node_modules/@walletconnect/crypto/node_modules/aes-js": {
"version": "3.1.2",
- "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.1.2.tgz",
- "integrity": "sha512-e5pEa2kBnBOgR4Y/p20pskXI74UEz7de8ZGVo58asOtvSVG5YAbJeELPZxOmt+Bnz3rX753YKhfIn4X4l1PPRQ=="
+ "license": "MIT"
},
"node_modules/@walletconnect/encoding": {
"version": "1.0.1",
- "resolved": "https://registry.npmjs.org/@walletconnect/encoding/-/encoding-1.0.1.tgz",
- "integrity": "sha512-8opL2rs6N6E3tJfsqwS82aZQDL3gmupWUgmvuZ3CGU7z/InZs3R9jkzH8wmYtpbq0sFK3WkJkQRZFFk4BkrmFA==",
+ "license": "MIT",
"dependencies": {
"is-typedarray": "1.0.0",
"typedarray-to-buffer": "3.1.5"
@@ -7152,13 +7154,11 @@
},
"node_modules/@walletconnect/environment": {
"version": "1.0.0",
- "resolved": "https://registry.npmjs.org/@walletconnect/environment/-/environment-1.0.0.tgz",
- "integrity": "sha512-4BwqyWy6KpSvkocSaV7WR3BlZfrxLbJSLkg+j7Gl6pTDE+U55lLhJvQaMuDVazXYxcjBsG09k7UlH7cGiUI5vQ=="
+ "license": "MIT"
},
"node_modules/@walletconnect/iso-crypto": {
"version": "1.8.0",
- "resolved": "https://registry.npmjs.org/@walletconnect/iso-crypto/-/iso-crypto-1.8.0.tgz",
- "integrity": "sha512-pWy19KCyitpfXb70hA73r9FcvklS+FvO9QUIttp3c2mfW8frxgYeRXfxLRCIQTkaYueRKvdqPjbyhPLam508XQ==",
+ "license": "Apache-2.0",
"dependencies": {
"@walletconnect/crypto": "^1.0.2",
"@walletconnect/types": "^1.8.0",
@@ -7167,16 +7167,14 @@
},
"node_modules/@walletconnect/jsonrpc-types": {
"version": "1.0.1",
- "resolved": "https://registry.npmjs.org/@walletconnect/jsonrpc-types/-/jsonrpc-types-1.0.1.tgz",
- "integrity": "sha512-+6coTtOuChCqM+AoYyi4Q83p9l/laI6NvuM2/AHaZFuf0gT0NjW7IX2+86qGyizn7Ptq4AYZmfxurAxTnhefuw==",
+ "license": "MIT",
"dependencies": {
"keyvaluestorage-interface": "^1.0.0"
}
},
"node_modules/@walletconnect/jsonrpc-utils": {
"version": "1.0.3",
- "resolved": "https://registry.npmjs.org/@walletconnect/jsonrpc-utils/-/jsonrpc-utils-1.0.3.tgz",
- "integrity": "sha512-3yb49bPk16MNLk6uIIHPSHQCpD6UAo1OMOx1rM8cW/MPEAYAzrSW5hkhG7NEUwX9SokRIgnZK3QuQkiyNzBMhQ==",
+ "license": "MIT",
"dependencies": {
"@walletconnect/environment": "^1.0.0",
"@walletconnect/jsonrpc-types": "^1.0.1"
@@ -7184,14 +7182,11 @@
},
"node_modules/@walletconnect/mobile-registry": {
"version": "1.4.0",
- "resolved": "https://registry.npmjs.org/@walletconnect/mobile-registry/-/mobile-registry-1.4.0.tgz",
- "integrity": "sha512-ZtKRio4uCZ1JUF7LIdecmZt7FOLnX72RPSY7aUVu7mj7CSfxDwUn6gBuK6WGtH+NZCldBqDl5DenI5fFSvkKYw==",
- "deprecated": "Deprecated in favor of dynamic registry available from: https://github.com/walletconnect/walletconnect-registry"
+ "license": "MIT"
},
"node_modules/@walletconnect/qrcode-modal": {
"version": "1.8.0",
- "resolved": "https://registry.npmjs.org/@walletconnect/qrcode-modal/-/qrcode-modal-1.8.0.tgz",
- "integrity": "sha512-BueaFefaAi8mawE45eUtztg3ZFbsAH4DDXh1UNwdUlsvFMjqcYzLUG0xZvDd6z2eOpbgDg2N3bl6gF0KONj1dg==",
+ "license": "Apache-2.0",
"dependencies": {
"@walletconnect/browser-utils": "^1.8.0",
"@walletconnect/mobile-registry": "^1.4.0",
@@ -7203,8 +7198,7 @@
},
"node_modules/@walletconnect/randombytes": {
"version": "1.0.2",
- "resolved": "https://registry.npmjs.org/@walletconnect/randombytes/-/randombytes-1.0.2.tgz",
- "integrity": "sha512-ivgOtAyqQnN0rLQmOFPemsgYGysd/ooLfaDA/ACQ3cyqlca56t3rZc7pXfqJOIETx/wSyoF5XbwL+BqYodw27A==",
+ "license": "MIT",
"dependencies": {
"@walletconnect/encoding": "^1.0.1",
"@walletconnect/environment": "^1.0.0",
@@ -7213,13 +7207,11 @@
},
"node_modules/@walletconnect/safe-json": {
"version": "1.0.0",
- "resolved": "https://registry.npmjs.org/@walletconnect/safe-json/-/safe-json-1.0.0.tgz",
- "integrity": "sha512-QJzp/S/86sUAgWY6eh5MKYmSfZaRpIlmCJdi5uG4DJlKkZrHEF7ye7gA+VtbVzvTtpM/gRwO2plQuiooIeXjfg=="
+ "license": "MIT"
},
"node_modules/@walletconnect/socket-transport": {
"version": "1.8.0",
- "resolved": "https://registry.npmjs.org/@walletconnect/socket-transport/-/socket-transport-1.8.0.tgz",
- "integrity": "sha512-5DyIyWrzHXTcVp0Vd93zJ5XMW61iDM6bcWT4p8DTRfFsOtW46JquruMhxOLeCOieM4D73kcr3U7WtyR4JUsGuQ==",
+ "license": "Apache-2.0",
"dependencies": {
"@walletconnect/types": "^1.8.0",
"@walletconnect/utils": "^1.8.0",
@@ -7228,8 +7220,7 @@
},
"node_modules/@walletconnect/socket-transport/node_modules/ws": {
"version": "7.5.3",
- "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.3.tgz",
- "integrity": "sha512-kQ/dHIzuLrS6Je9+uv81ueZomEwH0qVYstcAQ4/Z93K8zeko9gtAbttJWzoC5ukqXY1PpoouV3+VSOqEAFt5wg==",
+ "license": "MIT",
"engines": {
"node": ">=8.3.0"
},
@@ -7248,13 +7239,11 @@
},
"node_modules/@walletconnect/types": {
"version": "1.8.0",
- "resolved": "https://registry.npmjs.org/@walletconnect/types/-/types-1.8.0.tgz",
- "integrity": "sha512-Cn+3I0V0vT9ghMuzh1KzZvCkiAxTq+1TR2eSqw5E5AVWfmCtECFkVZBP6uUJZ8YjwLqXheI+rnjqPy7sVM4Fyg=="
+ "license": "Apache-2.0"
},
"node_modules/@walletconnect/utils": {
"version": "1.8.0",
- "resolved": "https://registry.npmjs.org/@walletconnect/utils/-/utils-1.8.0.tgz",
- "integrity": "sha512-zExzp8Mj1YiAIBfKNm5u622oNw44WOESzo6hj+Q3apSMIb0Jph9X3GDIdbZmvVZsNPxWDL7uodKgZcCInZv2vA==",
+ "license": "Apache-2.0",
"dependencies": {
"@walletconnect/browser-utils": "^1.8.0",
"@walletconnect/encoding": "^1.0.1",
@@ -7267,13 +7256,11 @@
},
"node_modules/@walletconnect/utils/node_modules/bn.js": {
"version": "4.11.8",
- "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz",
- "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA=="
+ "license": "MIT"
},
"node_modules/@walletconnect/utils/node_modules/query-string": {
"version": "6.13.5",
- "resolved": "https://registry.npmjs.org/query-string/-/query-string-6.13.5.tgz",
- "integrity": "sha512-svk3xg9qHR39P3JlHuD7g3nRnyay5mHbrPctEBDUxUkHRifPHXJDhBUycdCC0NBjXoDf44Gb+IsOZL1Uwn8M/Q==",
+ "license": "MIT",
"dependencies": {
"decode-uri-component": "^0.2.0",
"split-on-first": "^1.0.0",
@@ -7288,13 +7275,11 @@
},
"node_modules/@walletconnect/window-getters": {
"version": "1.0.0",
- "resolved": "https://registry.npmjs.org/@walletconnect/window-getters/-/window-getters-1.0.0.tgz",
- "integrity": "sha512-xB0SQsLaleIYIkSsl43vm8EwETpBzJ2gnzk7e0wMF3ktqiTGS6TFHxcprMl5R44KKh4tCcHCJwolMCaDSwtAaA=="
+ "license": "MIT"
},
"node_modules/@walletconnect/window-metadata": {
"version": "1.0.0",
- "resolved": "https://registry.npmjs.org/@walletconnect/window-metadata/-/window-metadata-1.0.0.tgz",
- "integrity": "sha512-9eFvmJxIKCC3YWOL97SgRkKhlyGXkrHwamfechmqszbypFspaSk+t2jQXAEU7YClHF6Qjw5eYOmy1//zFi9/GA==",
+ "license": "MIT",
"dependencies": {
"@walletconnect/window-getters": "^1.0.0"
}
@@ -7428,8 +7413,7 @@
},
"node_modules/aes-js": {
"version": "3.0.0",
- "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.0.0.tgz",
- "integrity": "sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw=="
+ "license": "MIT"
},
"node_modules/agent-base": {
"version": "6.0.2",
@@ -8082,8 +8066,7 @@
},
"node_modules/axios": {
"version": "0.26.1",
- "resolved": "https://registry.npmjs.org/axios/-/axios-0.26.1.tgz",
- "integrity": "sha512-fPwcX4EvnSHuInCMItEhAGnaSEXRBjtzh9fOtsE6E1G6p7vl7edEeZe11QHf18+6+9gR5PbKV/sGKNaD8YaMeA==",
+ "license": "MIT",
"dependencies": {
"follow-redirects": "^1.14.8"
}
@@ -8275,6 +8258,14 @@
"node": ">=0.10.0"
}
},
+ "node_modules/base-x": {
+ "version": "3.0.9",
+ "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz",
+ "integrity": "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==",
+ "dependencies": {
+ "safe-buffer": "^5.0.1"
+ }
+ },
"node_modules/base64-js": {
"version": "1.5.1",
"funding": [
@@ -8320,6 +8311,18 @@
"node": ">=0.6"
}
},
+ "node_modules/bigint-buffer": {
+ "version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/bigint-buffer/-/bigint-buffer-1.1.5.tgz",
+ "integrity": "sha512-trfYco6AoZ+rKhKnxA0hgX0HAbVP/s808/EuDSe2JDzUnCp/xAsli35Orvk67UrTEcwuxZqYZDmfA2RXJgxVvA==",
+ "hasInstallScript": true,
+ "dependencies": {
+ "bindings": "^1.3.0"
+ },
+ "engines": {
+ "node": ">= 10.0.0"
+ }
+ },
"node_modules/bignumber.js": {
"version": "9.0.0",
"license": "MIT",
@@ -8343,6 +8346,14 @@
"node": ">=8"
}
},
+ "node_modules/bindings": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz",
+ "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==",
+ "dependencies": {
+ "file-uri-to-path": "1.0.0"
+ }
+ },
"node_modules/blakejs": {
"version": "1.1.0",
"license": "CC0-1.0"
@@ -8407,6 +8418,16 @@
"dev": true,
"license": "ISC"
},
+ "node_modules/borsh": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/borsh/-/borsh-0.7.0.tgz",
+ "integrity": "sha512-CLCsZGIBCFnPtkNnieW/a8wmreDmfUtjU2m9yHrzPXIlNbqVs0AQrSatSG6vdNYUqdc83tkQi2eHfF98ubzQLA==",
+ "dependencies": {
+ "bn.js": "^5.2.0",
+ "bs58": "^4.0.0",
+ "text-encoding-utf-8": "^1.0.2"
+ }
+ },
"node_modules/bowser": {
"version": "2.11.0",
"license": "MIT"
@@ -8561,6 +8582,14 @@
"node": ">= 6"
}
},
+ "node_modules/bs58": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz",
+ "integrity": "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==",
+ "dependencies": {
+ "base-x": "^3.0.2"
+ }
+ },
"node_modules/bs58check": {
"version": "2.1.2",
"license": "MIT",
@@ -8570,20 +8599,6 @@
"safe-buffer": "^5.1.2"
}
},
- "node_modules/bs58check/node_modules/base-x": {
- "version": "3.0.9",
- "license": "MIT",
- "dependencies": {
- "safe-buffer": "^5.0.1"
- }
- },
- "node_modules/bs58check/node_modules/bs58": {
- "version": "4.0.1",
- "license": "MIT",
- "dependencies": {
- "base-x": "^3.0.2"
- }
- },
"node_modules/bser": {
"version": "2.1.1",
"dev": true,
@@ -8607,8 +8622,7 @@
},
"node_modules/buffer-alloc": {
"version": "1.2.0",
- "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz",
- "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==",
+ "license": "MIT",
"dependencies": {
"buffer-alloc-unsafe": "^1.1.0",
"buffer-fill": "^1.0.0"
@@ -8616,13 +8630,11 @@
},
"node_modules/buffer-alloc-unsafe": {
"version": "1.1.0",
- "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz",
- "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg=="
+ "license": "MIT"
},
"node_modules/buffer-fill": {
"version": "1.0.0",
- "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz",
- "integrity": "sha512-T7zexNBwiiaCOGDg9xNX9PBmjrubblRkENuptryuI64URkXDFum9il/JGL8Lm8wYfAXpredVXXZz7eMHilimiQ=="
+ "license": "MIT"
},
"node_modules/buffer-from": {
"version": "1.1.2",
@@ -8658,7 +8670,6 @@
"hasInstallScript": true,
"license": "MIT",
"optional": true,
- "peer": true,
"dependencies": {
"node-gyp-build": "^4.3.0"
},
@@ -10196,8 +10207,7 @@
},
"node_modules/copy-to-clipboard": {
"version": "3.3.2",
- "resolved": "https://registry.npmjs.org/copy-to-clipboard/-/copy-to-clipboard-3.3.2.tgz",
- "integrity": "sha512-Vme1Z6RUDzrb6xAI7EZlVZ5uvOk2F//GaxKUxajDqm9LhOVM1inxNAD2vy+UZDYsd0uyA9s7b3/FVZPSxqrCfg==",
+ "license": "MIT",
"dependencies": {
"toggle-selection": "^1.0.6"
}
@@ -10898,6 +10908,17 @@
"dev": true,
"license": "MIT"
},
+ "node_modules/delay": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/delay/-/delay-5.0.0.tgz",
+ "integrity": "sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw==",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/delayed-stream": {
"version": "1.0.0",
"license": "MIT",
@@ -10940,8 +10961,7 @@
},
"node_modules/detect-browser": {
"version": "5.2.0",
- "resolved": "https://registry.npmjs.org/detect-browser/-/detect-browser-5.2.0.tgz",
- "integrity": "sha512-tr7XntDAu50BVENgQfajMLzacmSe34D+qZc4zjnniz0ZVuw/TZcLcyxHQjYpJTM36sGEkZZlYLnIM1hH7alTMA=="
+ "license": "MIT"
},
"node_modules/detect-indent": {
"version": "5.0.0",
@@ -11005,8 +11025,7 @@
},
"node_modules/dijkstrajs": {
"version": "1.0.2",
- "resolved": "https://registry.npmjs.org/dijkstrajs/-/dijkstrajs-1.0.2.tgz",
- "integrity": "sha512-QV6PMaHTCNmKSeP6QoXhVTw9snc9VD8MulTT0Bd99Pacp4SS1cjcrYPgBPmibqKVtMJJfqC6XvOXgPMEEPH/fg=="
+ "license": "MIT"
},
"node_modules/dir-glob": {
"version": "3.0.1",
@@ -11366,6 +11385,19 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/es6-promise": {
+ "version": "4.2.8",
+ "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz",
+ "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w=="
+ },
+ "node_modules/es6-promisify": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz",
+ "integrity": "sha512-C+d6UdsYDk0lMebHNR4S2NybQMMngAOnOwYBQjTOiv0MkoJMP0Myw2mgpDLBcpfCmRLxyFqYhS/CfOENq4SJhQ==",
+ "dependencies": {
+ "es6-promise": "^4.0.3"
+ }
+ },
"node_modules/esbuild": {
"version": "0.14.54",
"dev": true,
@@ -11401,38 +11433,6 @@
"esbuild-windows-arm64": "0.14.54"
}
},
- "node_modules/esbuild-android-64": {
- "version": "0.15.9",
- "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.15.9.tgz",
- "integrity": "sha512-HQCX7FJn9T4kxZQkhPjNZC7tBWZqJvhlLHPU2SFzrQB/7nDXjmTIFpFTjt7Bd1uFpeXmuwf5h5fZm+x/hLnhbw==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "android"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/esbuild-android-arm64": {
- "version": "0.15.9",
- "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.15.9.tgz",
- "integrity": "sha512-E6zbLfqbFVCNEKircSHnPiSTsm3fCRxeIMPfrkS33tFjIAoXtwegQfVZqMGR0FlsvVxp2NEDOUz+WW48COCjSg==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "android"
- ],
- "engines": {
- "node": ">=12"
- }
- },
"node_modules/esbuild-darwin-64": {
"version": "0.14.54",
"cpu": [
@@ -11448,598 +11448,6 @@
"node": ">=12"
}
},
- "node_modules/esbuild-darwin-arm64": {
- "version": "0.15.9",
- "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.9.tgz",
- "integrity": "sha512-VZIMlcRN29yg/sv7DsDwN+OeufCcoTNaTl3Vnav7dL/nvsApD7uvhVRbgyMzv0zU/PP0xRhhIpTyc7lxEzHGSw==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/esbuild-freebsd-64": {
- "version": "0.15.9",
- "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.9.tgz",
- "integrity": "sha512-uM4z5bTvuAXqPxrI204txhlsPIolQPWRMLenvGuCPZTnnGlCMF2QLs0Plcm26gcskhxewYo9LkkmYSS5Czrb5A==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "freebsd"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/esbuild-freebsd-arm64": {
- "version": "0.15.9",
- "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.9.tgz",
- "integrity": "sha512-HHDjT3O5gWzicGdgJ5yokZVN9K9KG05SnERwl9nBYZaCjcCgj/sX8Ps1jvoFSfNCO04JSsHSOWo4qvxFuj8FoA==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "freebsd"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/esbuild-linux-32": {
- "version": "0.15.9",
- "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.15.9.tgz",
- "integrity": "sha512-AQIdE8FugGt1DkcekKi5ycI46QZpGJ/wqcMr7w6YUmOmp2ohQ8eO4sKUsOxNOvYL7hGEVwkndSyszR6HpVHLFg==",
- "cpu": [
- "ia32"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/esbuild-linux-64": {
- "version": "0.15.9",
- "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.15.9.tgz",
- "integrity": "sha512-4RXjae7g6Qs7StZyiYyXTZXBlfODhb1aBVAjd+ANuPmMhWthQilWo7rFHwJwL7DQu1Fjej2sODAVwLbcIVsAYQ==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/esbuild-linux-arm": {
- "version": "0.15.9",
- "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.15.9.tgz",
- "integrity": "sha512-3Zf2GVGUOI7XwChH3qrnTOSqfV1V4CAc/7zLVm4lO6JT6wbJrTgEYCCiNSzziSju+J9Jhf9YGWk/26quWPC6yQ==",
- "cpu": [
- "arm"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/esbuild-linux-arm64": {
- "version": "0.15.9",
- "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.9.tgz",
- "integrity": "sha512-a+bTtxJmYmk9d+s2W4/R1SYKDDAldOKmWjWP0BnrWtDbvUBNOm++du0ysPju4mZVoEFgS1yLNW+VXnG/4FNwdQ==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/esbuild-linux-mips64le": {
- "version": "0.15.9",
- "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.9.tgz",
- "integrity": "sha512-Zn9HSylDp89y+TRREMDoGrc3Z4Hs5u56ozZLQCiZAUx2+HdbbXbWdjmw3FdTJ/i7t5Cew6/Q+6kfO3KCcFGlyw==",
- "cpu": [
- "mips64el"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/esbuild-linux-ppc64le": {
- "version": "0.15.9",
- "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.9.tgz",
- "integrity": "sha512-OEiOxNAMH9ENFYqRsWUj3CWyN3V8P3ZXyfNAtX5rlCEC/ERXrCEFCJji/1F6POzsXAzxvUJrTSTCy7G6BhA6Fw==",
- "cpu": [
- "ppc64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/esbuild-linux-riscv64": {
- "version": "0.15.9",
- "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.9.tgz",
- "integrity": "sha512-ukm4KsC3QRausEFjzTsOZ/qqazw0YvJsKmfoZZm9QW27OHjk2XKSQGGvx8gIEswft/Sadp03/VZvAaqv5AIwNA==",
- "cpu": [
- "riscv64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/esbuild-linux-s390x": {
- "version": "0.15.9",
- "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.9.tgz",
- "integrity": "sha512-uDOQEH55wQ6ahcIKzQr3VyjGc6Po/xblLGLoUk3fVL1qjlZAibtQr6XRfy5wPJLu/M2o0vQKLq4lyJ2r1tWKcw==",
- "cpu": [
- "s390x"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/esbuild-netbsd-64": {
- "version": "0.15.9",
- "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.9.tgz",
- "integrity": "sha512-yWgxaYTQz+TqX80wXRq6xAtb7GSBAp6gqLKfOdANg9qEmAI1Bxn04IrQr0Mzm4AhxvGKoHzjHjMgXbCCSSDxcw==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "netbsd"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/esbuild-openbsd-64": {
- "version": "0.15.9",
- "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.9.tgz",
- "integrity": "sha512-JmS18acQl4iSAjrEha1MfEmUMN4FcnnrtTaJ7Qg0tDCOcgpPPQRLGsZqhes0vmx8VA6IqRyScqXvaL7+Q0Uf3A==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "openbsd"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/esbuild-sunos-64": {
- "version": "0.15.9",
- "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.15.9.tgz",
- "integrity": "sha512-UKynGSWpzkPmXW3D2UMOD9BZPIuRaSqphxSCwScfEE05Be3KAmvjsBhht1fLzKpiFVJb0BYMd4jEbWMyJ/z1hQ==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "sunos"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/esbuild-windows-32": {
- "version": "0.15.9",
- "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.15.9.tgz",
- "integrity": "sha512-aqXvu4/W9XyTVqO/hw3rNxKE1TcZiEYHPsXM9LwYmKSX9/hjvfIJzXwQBlPcJ/QOxedfoMVH0YnhhQ9Ffb0RGA==",
- "cpu": [
- "ia32"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/esbuild-windows-64": {
- "version": "0.15.9",
- "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.15.9.tgz",
- "integrity": "sha512-zm7h91WUmlS4idMtjvCrEeNhlH7+TNOmqw5dJPJZrgFaxoFyqYG6CKDpdFCQXdyKpD5yvzaQBOMVTCBVKGZDEg==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/esbuild-windows-arm64": {
- "version": "0.15.9",
- "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.9.tgz",
- "integrity": "sha512-yQEVIv27oauAtvtuhJVfSNMztJJX47ismRS6Sv2QMVV9RM+6xjbMWuuwM2nxr5A2/gj/mu2z9YlQxiwoFRCfZA==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/esbuild/node_modules/@esbuild/linux-loong64": {
- "version": "0.14.54",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.14.54.tgz",
- "integrity": "sha512-bZBrLAIX1kpWelV0XemxBZllyRmM6vgFQQG2GdNb+r3Fkp0FOh1NJSvekXDs7jq70k4euu1cryLMfU+mTXlEpw==",
- "cpu": [
- "loong64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/esbuild/node_modules/esbuild-android-64": {
- "version": "0.14.54",
- "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.14.54.tgz",
- "integrity": "sha512-Tz2++Aqqz0rJ7kYBfz+iqyE3QMycD4vk7LBRyWaAVFgFtQ/O8EJOnVmTOiDWYZ/uYzB4kvP+bqejYdVKzE5lAQ==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "android"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/esbuild/node_modules/esbuild-android-arm64": {
- "version": "0.14.54",
- "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.14.54.tgz",
- "integrity": "sha512-F9E+/QDi9sSkLaClO8SOV6etqPd+5DgJje1F9lOWoNncDdOBL2YF59IhsWATSt0TLZbYCf3pNlTHvVV5VfHdvg==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "android"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/esbuild/node_modules/esbuild-darwin-arm64": {
- "version": "0.14.54",
- "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.54.tgz",
- "integrity": "sha512-OPafJHD2oUPyvJMrsCvDGkRrVCar5aVyHfWGQzY1dWnzErjrDuSETxwA2HSsyg2jORLY8yBfzc1MIpUkXlctmw==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/esbuild/node_modules/esbuild-freebsd-64": {
- "version": "0.14.54",
- "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.54.tgz",
- "integrity": "sha512-OKwd4gmwHqOTp4mOGZKe/XUlbDJ4Q9TjX0hMPIDBUWWu/kwhBAudJdBoxnjNf9ocIB6GN6CPowYpR/hRCbSYAg==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "freebsd"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/esbuild/node_modules/esbuild-freebsd-arm64": {
- "version": "0.14.54",
- "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.54.tgz",
- "integrity": "sha512-sFwueGr7OvIFiQT6WeG0jRLjkjdqWWSrfbVwZp8iMP+8UHEHRBvlaxL6IuKNDwAozNUmbb8nIMXa7oAOARGs1Q==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "freebsd"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/esbuild/node_modules/esbuild-linux-32": {
- "version": "0.14.54",
- "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.14.54.tgz",
- "integrity": "sha512-1ZuY+JDI//WmklKlBgJnglpUL1owm2OX+8E1syCD6UAxcMM/XoWd76OHSjl/0MR0LisSAXDqgjT3uJqT67O3qw==",
- "cpu": [
- "ia32"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/esbuild/node_modules/esbuild-linux-64": {
- "version": "0.14.54",
- "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.14.54.tgz",
- "integrity": "sha512-EgjAgH5HwTbtNsTqQOXWApBaPVdDn7XcK+/PtJwZLT1UmpLoznPd8c5CxqsH2dQK3j05YsB3L17T8vE7cp4cCg==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/esbuild/node_modules/esbuild-linux-arm": {
- "version": "0.14.54",
- "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.14.54.tgz",
- "integrity": "sha512-qqz/SjemQhVMTnvcLGoLOdFpCYbz4v4fUo+TfsWG+1aOu70/80RV6bgNpR2JCrppV2moUQkww+6bWxXRL9YMGw==",
- "cpu": [
- "arm"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/esbuild/node_modules/esbuild-linux-arm64": {
- "version": "0.14.54",
- "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.54.tgz",
- "integrity": "sha512-WL71L+0Rwv+Gv/HTmxTEmpv0UgmxYa5ftZILVi2QmZBgX3q7+tDeOQNqGtdXSdsL8TQi1vIaVFHUPDe0O0kdig==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/esbuild/node_modules/esbuild-linux-mips64le": {
- "version": "0.14.54",
- "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.54.tgz",
- "integrity": "sha512-qTHGQB8D1etd0u1+sB6p0ikLKRVuCWhYQhAHRPkO+OF3I/iSlTKNNS0Lh2Oc0g0UFGguaFZZiPJdJey3AGpAlw==",
- "cpu": [
- "mips64el"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/esbuild/node_modules/esbuild-linux-ppc64le": {
- "version": "0.14.54",
- "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.54.tgz",
- "integrity": "sha512-j3OMlzHiqwZBDPRCDFKcx595XVfOfOnv68Ax3U4UKZ3MTYQB5Yz3X1mn5GnodEVYzhtZgxEBidLWeIs8FDSfrQ==",
- "cpu": [
- "ppc64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/esbuild/node_modules/esbuild-linux-riscv64": {
- "version": "0.14.54",
- "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.54.tgz",
- "integrity": "sha512-y7Vt7Wl9dkOGZjxQZnDAqqn+XOqFD7IMWiewY5SPlNlzMX39ocPQlOaoxvT4FllA5viyV26/QzHtvTjVNOxHZg==",
- "cpu": [
- "riscv64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/esbuild/node_modules/esbuild-linux-s390x": {
- "version": "0.14.54",
- "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.54.tgz",
- "integrity": "sha512-zaHpW9dziAsi7lRcyV4r8dhfG1qBidQWUXweUjnw+lliChJqQr+6XD71K41oEIC3Mx1KStovEmlzm+MkGZHnHA==",
- "cpu": [
- "s390x"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "linux"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/esbuild/node_modules/esbuild-netbsd-64": {
- "version": "0.14.54",
- "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.54.tgz",
- "integrity": "sha512-PR01lmIMnfJTgeU9VJTDY9ZerDWVFIUzAtJuDHwwceppW7cQWjBBqP48NdeRtoP04/AtO9a7w3viI+PIDr6d+w==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "netbsd"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/esbuild/node_modules/esbuild-openbsd-64": {
- "version": "0.14.54",
- "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.54.tgz",
- "integrity": "sha512-Qyk7ikT2o7Wu76UsvvDS5q0amJvmRzDyVlL0qf5VLsLchjCa1+IAvd8kTBgUxD7VBUUVgItLkk609ZHUc1oCaw==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "openbsd"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/esbuild/node_modules/esbuild-sunos-64": {
- "version": "0.14.54",
- "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.14.54.tgz",
- "integrity": "sha512-28GZ24KmMSeKi5ueWzMcco6EBHStL3B6ubM7M51RmPwXQGLe0teBGJocmWhgwccA1GeFXqxzILIxXpHbl9Q/Kw==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "sunos"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/esbuild/node_modules/esbuild-windows-32": {
- "version": "0.14.54",
- "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.14.54.tgz",
- "integrity": "sha512-T+rdZW19ql9MjS7pixmZYVObd9G7kcaZo+sETqNH4RCkuuYSuv9AGHUVnPoP9hhuE1WM1ZimHz1CIBHBboLU7w==",
- "cpu": [
- "ia32"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/esbuild/node_modules/esbuild-windows-64": {
- "version": "0.14.54",
- "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.14.54.tgz",
- "integrity": "sha512-AoHTRBUuYwXtZhjXZbA1pGfTo8cJo3vZIcWGLiUcTNgHpJJMC1rVA44ZereBHMJtotyN71S8Qw0npiCIkW96cQ==",
- "cpu": [
- "x64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/esbuild/node_modules/esbuild-windows-arm64": {
- "version": "0.14.54",
- "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.54.tgz",
- "integrity": "sha512-M0kuUvXhot1zOISQGXwWn6YtS+Y/1RT9WrVIOywZnJHo3jCDyewAc79aKNQWFCQm+xNHVTq9h8dZKvygoXQQRg==",
- "cpu": [
- "arm64"
- ],
- "dev": true,
- "optional": true,
- "os": [
- "win32"
- ],
- "engines": {
- "node": ">=12"
- }
- },
"node_modules/escalade": {
"version": "3.1.1",
"license": "MIT",
@@ -12980,8 +12388,6 @@
},
"node_modules/ethers": {
"version": "5.7.1",
- "resolved": "https://registry.npmjs.org/ethers/-/ethers-5.7.1.tgz",
- "integrity": "sha512-5krze4dRLITX7FpU8J4WscXqADiKmyeNlylmmDLbS95DaZpBhDe2YSwRQwKXWNyXcox7a3gBgm/MkGXV1O1S/Q==",
"funding": [
{
"type": "individual",
@@ -12992,6 +12398,7 @@
"url": "https://www.buymeacoffee.com/ricmoo"
}
],
+ "license": "MIT",
"dependencies": {
"@ethersproject/abi": "5.7.0",
"@ethersproject/abstract-provider": "5.7.0",
@@ -13064,9 +12471,7 @@
},
"node_modules/eventemitter3": {
"version": "4.0.7",
- "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz",
- "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==",
- "dev": true
+ "license": "MIT"
},
"node_modules/events": {
"version": "3.3.0",
@@ -13532,6 +12937,14 @@
],
"license": "MIT"
},
+ "node_modules/eyes": {
+ "version": "0.1.8",
+ "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz",
+ "integrity": "sha512-GipyPsXO1anza0AOZdy69Im7hGFCNB7Y/NGjDlZGJ3GJJLtwNSb2vrzYrTYJRrRloVx7pl+bhUaTB8yiccPvFQ==",
+ "engines": {
+ "node": "> 0.1.90"
+ }
+ },
"node_modules/fast-deep-equal": {
"version": "3.1.3",
"license": "MIT"
@@ -13571,6 +12984,11 @@
"dev": true,
"license": "MIT"
},
+ "node_modules/fast-stable-stringify": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fast-stable-stringify/-/fast-stable-stringify-1.0.0.tgz",
+ "integrity": "sha512-wpYMUmFu5f00Sm0cj2pfivpmawLZ0NKdviQ4w9zJeR8JVtOpOxHmLaJuj0vxvGqMJQWyP/COUkF75/57OKyRag=="
+ },
"node_modules/fast-xml-parser": {
"version": "3.19.0",
"license": "MIT",
@@ -13628,6 +13046,11 @@
"node": "^10.12.0 || >=12.0.0"
}
},
+ "node_modules/file-uri-to-path": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz",
+ "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw=="
+ },
"node_modules/fill-range": {
"version": "7.0.1",
"dev": true,
@@ -14968,14 +14391,6 @@
"node": ">=0.10.0"
}
},
- "node_modules/ganache-core/node_modules/base-x": {
- "version": "3.0.8",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "safe-buffer": "^5.0.1"
- }
- },
"node_modules/ganache-core/node_modules/base/node_modules/define-property": {
"version": "1.0.0",
"dev": true,
@@ -15216,14 +14631,6 @@
"browserslist": "cli.js"
}
},
- "node_modules/ganache-core/node_modules/bs58": {
- "version": "4.0.1",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "base-x": "^3.0.2"
- }
- },
"node_modules/ganache-core/node_modules/bs58check": {
"version": "2.1.2",
"dev": true,
@@ -24577,9 +23984,8 @@
},
"node_modules/http-proxy": {
"version": "1.18.1",
- "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz",
- "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"eventemitter3": "^4.0.0",
"follow-redirects": "^1.0.0",
@@ -24604,9 +24010,8 @@
},
"node_modules/http-proxy-middleware": {
"version": "2.0.6",
- "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz",
- "integrity": "sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"@types/http-proxy": "^1.17.8",
"http-proxy": "^1.18.1",
@@ -24628,9 +24033,8 @@
},
"node_modules/http-proxy-middleware/node_modules/is-plain-obj": {
"version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz",
- "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=10"
},
@@ -24971,8 +24375,7 @@
},
"node_modules/invariant": {
"version": "2.2.4",
- "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz",
- "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==",
+ "license": "MIT",
"dependencies": {
"loose-envify": "^1.0.0"
}
@@ -25704,6 +25107,78 @@
"node": ">=8"
}
},
+ "node_modules/jayson": {
+ "version": "3.7.0",
+ "resolved": "https://registry.npmjs.org/jayson/-/jayson-3.7.0.tgz",
+ "integrity": "sha512-tfy39KJMrrXJ+mFcMpxwBvFDetS8LAID93+rycFglIQM4kl3uNR3W4lBLE/FFhsoUCEox5Dt2adVpDm/XtebbQ==",
+ "dependencies": {
+ "@types/connect": "^3.4.33",
+ "@types/node": "^12.12.54",
+ "@types/ws": "^7.4.4",
+ "commander": "^2.20.3",
+ "delay": "^5.0.0",
+ "es6-promisify": "^5.0.0",
+ "eyes": "^0.1.8",
+ "isomorphic-ws": "^4.0.1",
+ "json-stringify-safe": "^5.0.1",
+ "JSONStream": "^1.3.5",
+ "lodash": "^4.17.20",
+ "uuid": "^8.3.2",
+ "ws": "^7.4.5"
+ },
+ "bin": {
+ "jayson": "bin/jayson.js"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/jayson/node_modules/@types/node": {
+ "version": "12.20.55",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz",
+ "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ=="
+ },
+ "node_modules/jayson/node_modules/@types/ws": {
+ "version": "7.4.7",
+ "resolved": "https://registry.npmjs.org/@types/ws/-/ws-7.4.7.tgz",
+ "integrity": "sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww==",
+ "dependencies": {
+ "@types/node": "*"
+ }
+ },
+ "node_modules/jayson/node_modules/commander": {
+ "version": "2.20.3",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
+ "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ=="
+ },
+ "node_modules/jayson/node_modules/uuid": {
+ "version": "8.3.2",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz",
+ "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==",
+ "bin": {
+ "uuid": "dist/bin/uuid"
+ }
+ },
+ "node_modules/jayson/node_modules/ws": {
+ "version": "7.5.9",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz",
+ "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==",
+ "engines": {
+ "node": ">=8.3.0"
+ },
+ "peerDependencies": {
+ "bufferutil": "^4.0.1",
+ "utf-8-validate": "^5.0.2"
+ },
+ "peerDependenciesMeta": {
+ "bufferutil": {
+ "optional": true
+ },
+ "utf-8-validate": {
+ "optional": true
+ }
+ }
+ },
"node_modules/jest": {
"version": "26.6.3",
"dev": true,
@@ -28219,7 +27694,6 @@
},
"node_modules/jsonparse": {
"version": "1.3.1",
- "dev": true,
"engines": [
"node >= 0.2.0"
],
@@ -28227,7 +27701,6 @@
},
"node_modules/JSONStream": {
"version": "1.3.5",
- "dev": true,
"license": "(MIT OR Apache-2.0)",
"dependencies": {
"jsonparse": "^1.2.0",
@@ -28288,8 +27761,7 @@
},
"node_modules/keyvaluestorage-interface": {
"version": "1.0.0",
- "resolved": "https://registry.npmjs.org/keyvaluestorage-interface/-/keyvaluestorage-interface-1.0.0.tgz",
- "integrity": "sha512-8t6Q3TclQ4uZynJY9IGr2+SsIGwK9JHcO6ootkHCGA0CrQCRy+VkouYNO2xicET6b9al7QKzpebNow+gkpCL8g=="
+ "license": "MIT"
},
"node_modules/kind-of": {
"version": "6.0.3",
@@ -28795,9 +28267,8 @@
},
"node_modules/localtunnel": {
"version": "2.0.2",
- "resolved": "https://registry.npmjs.org/localtunnel/-/localtunnel-2.0.2.tgz",
- "integrity": "sha512-n418Cn5ynvJd7m/N1d9WVJISLJF/ellZnfsLnx8WBWGzxv/ntNcFkJ1o6se5quUhCplfLGBNL5tYHiq5WF3Nug==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"axios": "0.21.4",
"debug": "4.3.2",
@@ -28813,18 +28284,16 @@
},
"node_modules/localtunnel/node_modules/axios": {
"version": "0.21.4",
- "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz",
- "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"follow-redirects": "^1.14.0"
}
},
"node_modules/localtunnel/node_modules/debug": {
"version": "4.3.2",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz",
- "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"ms": "2.1.2"
},
@@ -28839,24 +28308,21 @@
},
"node_modules/localtunnel/node_modules/emoji-regex": {
"version": "8.0.0",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
- "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/localtunnel/node_modules/is-fullwidth-code-point": {
"version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
- "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
"dev": true,
+ "license": "MIT",
"engines": {
"node": ">=8"
}
},
"node_modules/localtunnel/node_modules/string-width": {
"version": "4.2.3",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
- "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"emoji-regex": "^8.0.0",
"is-fullwidth-code-point": "^3.0.0",
@@ -28868,18 +28334,16 @@
},
"node_modules/localtunnel/node_modules/y18n": {
"version": "5.0.8",
- "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
- "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==",
"dev": true,
+ "license": "ISC",
"engines": {
"node": ">=10"
}
},
"node_modules/localtunnel/node_modules/yargs": {
"version": "17.1.1",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.1.1.tgz",
- "integrity": "sha512-c2k48R0PwKIqKhPMWjeiF6y2xY/gPMUlro0sgxqXpbOIohWiLNXWslsootttv7E1e73QPAMQSg5FeySbVcpsPQ==",
"dev": true,
+ "license": "MIT",
"dependencies": {
"cliui": "^7.0.2",
"escalade": "^3.1.1",
@@ -28909,7 +28373,6 @@
},
"node_modules/lodash": {
"version": "4.17.21",
- "dev": true,
"license": "MIT"
},
"node_modules/lodash._reinterpolate": {
@@ -30510,9 +29973,8 @@
},
"node_modules/openurl": {
"version": "1.1.1",
- "resolved": "https://registry.npmjs.org/openurl/-/openurl-1.1.1.tgz",
- "integrity": "sha512-d/gTkTb1i1GKz5k3XE3XFV/PxQ1k45zDqGP2OA7YhgsaLoqm6qRvARAZOFer1fcXritWlGBRCu/UgeS4HAnXAA==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/optionator": {
"version": "0.9.1",
@@ -31323,8 +30785,7 @@
},
"node_modules/pngjs": {
"version": "3.4.0",
- "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-3.4.0.tgz",
- "integrity": "sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w==",
+ "license": "MIT",
"engines": {
"node": ">=4.0.0"
}
@@ -31482,8 +30943,7 @@
},
"node_modules/preact": {
"version": "10.4.1",
- "resolved": "https://registry.npmjs.org/preact/-/preact-10.4.1.tgz",
- "integrity": "sha512-WKrRpCSwL2t3tpOOGhf2WfTpcmbpxaWtDbdJdKdjd0aEiTkvOmS4NBkG6kzlaAHI9AkQ3iVqbFWM3Ei7mZ4o1Q==",
+ "license": "MIT",
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/preact"
@@ -31670,8 +31130,7 @@
},
"node_modules/qrcode": {
"version": "1.4.4",
- "resolved": "https://registry.npmjs.org/qrcode/-/qrcode-1.4.4.tgz",
- "integrity": "sha512-oLzEC5+NKFou9P0bMj5+v6Z40evexeE29Z9cummZXZ9QXyMr3lphkURzxjXgPJC5azpxcshoDWV1xE46z+/c3Q==",
+ "license": "MIT",
"dependencies": {
"buffer": "^5.4.3",
"buffer-alloc": "^1.2.0",
@@ -31690,16 +31149,14 @@
},
"node_modules/qrcode/node_modules/ansi-regex": {
"version": "4.1.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz",
- "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==",
+ "license": "MIT",
"engines": {
"node": ">=6"
}
},
"node_modules/qrcode/node_modules/cliui": {
"version": "5.0.0",
- "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz",
- "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==",
+ "license": "ISC",
"dependencies": {
"string-width": "^3.1.0",
"strip-ansi": "^5.2.0",
@@ -31708,13 +31165,11 @@
},
"node_modules/qrcode/node_modules/emoji-regex": {
"version": "7.0.3",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
- "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA=="
+ "license": "MIT"
},
"node_modules/qrcode/node_modules/find-up": {
"version": "3.0.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
- "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
+ "license": "MIT",
"dependencies": {
"locate-path": "^3.0.0"
},
@@ -31724,16 +31179,14 @@
},
"node_modules/qrcode/node_modules/is-fullwidth-code-point": {
"version": "2.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
- "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==",
+ "license": "MIT",
"engines": {
"node": ">=4"
}
},
"node_modules/qrcode/node_modules/locate-path": {
"version": "3.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
- "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
+ "license": "MIT",
"dependencies": {
"p-locate": "^3.0.0",
"path-exists": "^3.0.0"
@@ -31744,8 +31197,7 @@
},
"node_modules/qrcode/node_modules/p-limit": {
"version": "2.3.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
- "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
+ "license": "MIT",
"dependencies": {
"p-try": "^2.0.0"
},
@@ -31758,8 +31210,7 @@
},
"node_modules/qrcode/node_modules/p-locate": {
"version": "3.0.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
- "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
+ "license": "MIT",
"dependencies": {
"p-limit": "^2.0.0"
},
@@ -31769,16 +31220,14 @@
},
"node_modules/qrcode/node_modules/path-exists": {
"version": "3.0.0",
- "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
- "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==",
+ "license": "MIT",
"engines": {
"node": ">=4"
}
},
"node_modules/qrcode/node_modules/string-width": {
"version": "3.1.0",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
- "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
+ "license": "MIT",
"dependencies": {
"emoji-regex": "^7.0.1",
"is-fullwidth-code-point": "^2.0.0",
@@ -31790,8 +31239,7 @@
},
"node_modules/qrcode/node_modules/strip-ansi": {
"version": "5.2.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
- "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
+ "license": "MIT",
"dependencies": {
"ansi-regex": "^4.1.0"
},
@@ -31801,8 +31249,7 @@
},
"node_modules/qrcode/node_modules/wrap-ansi": {
"version": "5.1.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz",
- "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==",
+ "license": "MIT",
"dependencies": {
"ansi-styles": "^3.2.0",
"string-width": "^3.0.0",
@@ -31814,8 +31261,7 @@
},
"node_modules/qrcode/node_modules/yargs": {
"version": "13.3.2",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz",
- "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==",
+ "license": "MIT",
"dependencies": {
"cliui": "^5.0.0",
"find-up": "^3.0.0",
@@ -31831,8 +31277,7 @@
},
"node_modules/qrcode/node_modules/yargs-parser": {
"version": "13.1.2",
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz",
- "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==",
+ "license": "ISC",
"dependencies": {
"camelcase": "^5.0.0",
"decamelize": "^1.2.0"
@@ -32137,6 +31582,11 @@
"node": ">=6"
}
},
+ "node_modules/regenerator-runtime": {
+ "version": "0.13.9",
+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz",
+ "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA=="
+ },
"node_modules/regex-not": {
"version": "1.0.2",
"dev": true,
@@ -32691,9 +32141,8 @@
},
"node_modules/requires-port": {
"version": "1.0.0",
- "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz",
- "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==",
- "dev": true
+ "dev": true,
+ "license": "MIT"
},
"node_modules/resolve": {
"version": "1.17.0",
@@ -32866,6 +32315,53 @@
"estree-walker": "^0.6.1"
}
},
+ "node_modules/rpc-websockets": {
+ "version": "7.5.0",
+ "resolved": "https://registry.npmjs.org/rpc-websockets/-/rpc-websockets-7.5.0.tgz",
+ "integrity": "sha512-9tIRi1uZGy7YmDjErf1Ax3wtqdSSLIlnmL5OtOzgd5eqPKbsPpwDP5whUDO2LQay3Xp0CcHlcNSGzacNRluBaQ==",
+ "dependencies": {
+ "@babel/runtime": "^7.17.2",
+ "eventemitter3": "^4.0.7",
+ "uuid": "^8.3.2",
+ "ws": "^8.5.0"
+ },
+ "funding": {
+ "type": "paypal",
+ "url": "https://paypal.me/kozjak"
+ },
+ "optionalDependencies": {
+ "bufferutil": "^4.0.1",
+ "utf-8-validate": "^5.0.2"
+ }
+ },
+ "node_modules/rpc-websockets/node_modules/uuid": {
+ "version": "8.3.2",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz",
+ "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==",
+ "bin": {
+ "uuid": "dist/bin/uuid"
+ }
+ },
+ "node_modules/rpc-websockets/node_modules/ws": {
+ "version": "8.9.0",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-8.9.0.tgz",
+ "integrity": "sha512-Ja7nszREasGaYUYCI2k4lCKIRTt+y7XuqVoHR44YpI49TtryyqbqvDMn5eqfW7e6HzTukDRIsXqzVHScqRcafg==",
+ "engines": {
+ "node": ">=10.0.0"
+ },
+ "peerDependencies": {
+ "bufferutil": "^4.0.1",
+ "utf-8-validate": "^5.0.2"
+ },
+ "peerDependenciesMeta": {
+ "bufferutil": {
+ "optional": true
+ },
+ "utf-8-validate": {
+ "optional": true
+ }
+ }
+ },
"node_modules/rsvp": {
"version": "4.8.5",
"dev": true,
@@ -34353,6 +33849,11 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/superstruct": {
+ "version": "0.14.2",
+ "resolved": "https://registry.npmjs.org/superstruct/-/superstruct-0.14.2.tgz",
+ "integrity": "sha512-nPewA6m9mR3d6k7WkZ8N8zpTWfenFH3q9pA2PkuiZxINr9DKB2+40wEQf0ixn8VaGuJ78AB6iWOtStI+/4FKZQ=="
+ },
"node_modules/supports-color": {
"version": "5.5.0",
"license": "MIT",
@@ -34832,6 +34333,11 @@
"version": "0.0.1",
"dev": true
},
+ "node_modules/text-encoding-utf-8": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/text-encoding-utf-8/-/text-encoding-utf-8-1.0.2.tgz",
+ "integrity": "sha512-8bw4MY9WjdsD2aMtO0OzOCY3pXGYNx2d2FfHRVUKkiCPDWjKuOlhLVASS+pD7VkLTVjW268LYJHwsnPFlBpbAg=="
+ },
"node_modules/text-extensions": {
"version": "1.9.0",
"dev": true,
@@ -34852,7 +34358,6 @@
},
"node_modules/through": {
"version": "2.3.8",
- "dev": true,
"license": "MIT"
},
"node_modules/through2": {
@@ -34968,8 +34473,7 @@
},
"node_modules/toggle-selection": {
"version": "1.0.6",
- "resolved": "https://registry.npmjs.org/toggle-selection/-/toggle-selection-1.0.6.tgz",
- "integrity": "sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ=="
+ "license": "MIT"
},
"node_modules/toidentifier": {
"version": "1.0.1",
@@ -36489,7 +35993,6 @@
"hasInstallScript": true,
"license": "MIT",
"optional": true,
- "peer": true,
"dependencies": {
"node-gyp-build": "^4.3.0"
},
@@ -38068,10 +37571,9 @@
},
"services/crawler/node_modules/esbuild": {
"version": "0.15.9",
- "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.15.9.tgz",
- "integrity": "sha512-OnYr1rkMVxtmMHIAKZLMcEUlJmqcbxBz9QoBU8G9v455na0fuzlT/GLu6l+SRghrk0Mm2fSSciMmzV43Q8e0Gg==",
"dev": true,
"hasInstallScript": true,
+ "license": "MIT",
"bin": {
"esbuild": "bin/esbuild"
},
@@ -38105,12 +37607,11 @@
},
"services/crawler/node_modules/esbuild-darwin-64": {
"version": "0.15.9",
- "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.15.9.tgz",
- "integrity": "sha512-gI7dClcDN/HHVacZhTmGjl0/TWZcGuKJ0I7/xDGJwRQQn7aafZGtvagOFNmuOq+OBFPhlPv1T6JElOXb0unkSQ==",
"cpu": [
"x64"
],
"dev": true,
+ "license": "MIT",
"optional": true,
"os": [
"darwin"
@@ -38910,10 +38411,9 @@
},
"services/users/node_modules/esbuild": {
"version": "0.15.9",
- "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.15.9.tgz",
- "integrity": "sha512-OnYr1rkMVxtmMHIAKZLMcEUlJmqcbxBz9QoBU8G9v455na0fuzlT/GLu6l+SRghrk0Mm2fSSciMmzV43Q8e0Gg==",
"dev": true,
"hasInstallScript": true,
+ "license": "MIT",
"bin": {
"esbuild": "bin/esbuild"
},
@@ -38947,12 +38447,11 @@
},
"services/users/node_modules/esbuild-darwin-64": {
"version": "0.15.9",
- "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.15.9.tgz",
- "integrity": "sha512-gI7dClcDN/HHVacZhTmGjl0/TWZcGuKJ0I7/xDGJwRQQn7aafZGtvagOFNmuOq+OBFPhlPv1T6JElOXb0unkSQ==",
"cpu": [
"x64"
],
"dev": true,
+ "license": "MIT",
"optional": true,
"os": [
"darwin"
@@ -40584,6 +40083,14 @@
"@babel/helper-plugin-utils": "^7.18.6"
}
},
+ "@babel/runtime": {
+ "version": "7.19.0",
+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.19.0.tgz",
+ "integrity": "sha512-eR8Lo9hnDS7tqkO7NsV+mKvCmv5boaXFSZ70DnfhcgiEne8hv9oCEd36Klw74EtizEqLsy4YnW8UWwpBVolHZA==",
+ "requires": {
+ "regenerator-runtime": "^0.13.4"
+ }
+ },
"@babel/template": {
"version": "7.18.10",
"requires": {
@@ -40942,8 +40449,6 @@
},
"esbuild": {
"version": "0.15.9",
- "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.15.9.tgz",
- "integrity": "sha512-OnYr1rkMVxtmMHIAKZLMcEUlJmqcbxBz9QoBU8G9v455na0fuzlT/GLu6l+SRghrk0Mm2fSSciMmzV43Q8e0Gg==",
"dev": true,
"requires": {
"@esbuild/android-arm": "0.15.9",
@@ -40972,8 +40477,6 @@
},
"esbuild-darwin-64": {
"version": "0.15.9",
- "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.15.9.tgz",
- "integrity": "sha512-gI7dClcDN/HHVacZhTmGjl0/TWZcGuKJ0I7/xDGJwRQQn7aafZGtvagOFNmuOq+OBFPhlPv1T6JElOXb0unkSQ==",
"dev": true,
"optional": true
},
@@ -41504,8 +41007,6 @@
},
"esbuild": {
"version": "0.15.9",
- "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.15.9.tgz",
- "integrity": "sha512-OnYr1rkMVxtmMHIAKZLMcEUlJmqcbxBz9QoBU8G9v455na0fuzlT/GLu6l+SRghrk0Mm2fSSciMmzV43Q8e0Gg==",
"dev": true,
"requires": {
"@esbuild/android-arm": "0.15.9",
@@ -41534,15 +41035,13 @@
},
"esbuild-darwin-64": {
"version": "0.15.9",
- "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.15.9.tgz",
- "integrity": "sha512-gI7dClcDN/HHVacZhTmGjl0/TWZcGuKJ0I7/xDGJwRQQn7aafZGtvagOFNmuOq+OBFPhlPv1T6JElOXb0unkSQ==",
"dev": true,
"optional": true
}
}
},
- "@casimir/evm": {
- "version": "file:contracts/evm",
+ "@casimir/ethereum": {
+ "version": "file:contracts/ethereum",
"requires": {
"@nomiclabs/hardhat-ethers": "^2.0.6",
"@nomiclabs/hardhat-waffle": "^2.0.3",
@@ -41580,8 +41079,6 @@
},
"esbuild": {
"version": "0.15.9",
- "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.15.9.tgz",
- "integrity": "sha512-OnYr1rkMVxtmMHIAKZLMcEUlJmqcbxBz9QoBU8G9v455na0fuzlT/GLu6l+SRghrk0Mm2fSSciMmzV43Q8e0Gg==",
"dev": true,
"requires": {
"@esbuild/android-arm": "0.15.9",
@@ -41610,8 +41107,6 @@
},
"esbuild-darwin-64": {
"version": "0.15.9",
- "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.15.9.tgz",
- "integrity": "sha512-gI7dClcDN/HHVacZhTmGjl0/TWZcGuKJ0I7/xDGJwRQQn7aafZGtvagOFNmuOq+OBFPhlPv1T6JElOXb0unkSQ==",
"dev": true,
"optional": true
}
@@ -41660,8 +41155,6 @@
},
"esbuild": {
"version": "0.15.9",
- "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.15.9.tgz",
- "integrity": "sha512-OnYr1rkMVxtmMHIAKZLMcEUlJmqcbxBz9QoBU8G9v455na0fuzlT/GLu6l+SRghrk0Mm2fSSciMmzV43Q8e0Gg==",
"dev": true,
"requires": {
"@esbuild/android-arm": "0.15.9",
@@ -41690,8 +41183,6 @@
},
"esbuild-darwin-64": {
"version": "0.15.9",
- "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.15.9.tgz",
- "integrity": "sha512-gI7dClcDN/HHVacZhTmGjl0/TWZcGuKJ0I7/xDGJwRQQn7aafZGtvagOFNmuOq+OBFPhlPv1T6JElOXb0unkSQ==",
"dev": true,
"optional": true
}
@@ -41704,12 +41195,14 @@
"@esbuild-plugins/node-modules-polyfill": "^0.1.4",
"@heroicons/vue": "^1.0.6",
"@ledgerhq/hw-app-eth": "^6.29.4",
- "@ledgerhq/hw-transport-webhid": "^6.27.2",
+ "@ledgerhq/hw-transport-webusb": "^6.27.4",
"@rollup/plugin-inject": "^4.0.4",
+ "@solana/web3.js": "^1.63.1",
"@vitejs/plugin-vue": "^2.3.3",
"@walletconnect/client": "^1.8.0",
"@walletconnect/qrcode-modal": "^1.8.0",
"autoprefixer": "^10.4.7",
+ "borsh": "^0.7.0",
"buffer": "^6.0.3",
"ethers": "^5.6.9",
"iotex-antenna": "^0.31.3",
@@ -41725,8 +41218,6 @@
"dependencies": {
"buffer": {
"version": "6.0.3",
- "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz",
- "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==",
"requires": {
"base64-js": "^1.3.1",
"ieee754": "^1.2.1"
@@ -42023,20 +41514,6 @@
"rollup-plugin-node-polyfills": "^0.2.1"
}
},
- "@esbuild/android-arm": {
- "version": "0.15.9",
- "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.15.9.tgz",
- "integrity": "sha512-VZPy/ETF3fBG5PiinIkA0W/tlsvlEgJccyN2DzWZEl0DlVKRbu91PvY2D6Lxgluj4w9QtYHjOWjAT44C+oQ+EQ==",
- "dev": true,
- "optional": true
- },
- "@esbuild/linux-loong64": {
- "version": "0.15.9",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.15.9.tgz",
- "integrity": "sha512-O+NfmkfRrb3uSsTa4jE3WApidSe3N5++fyOVGP1SmMZi4A3BZELkhUUvj5hwmMuNdlpzAZ8iAPz2vmcR7DCFQA==",
- "dev": true,
- "optional": true
- },
"@eslint/eslintrc": {
"version": "1.3.0",
"dev": true,
@@ -42273,8 +41750,6 @@
},
"@ethersproject/abi": {
"version": "5.7.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.7.0.tgz",
- "integrity": "sha512-351ktp42TiRcYB3H1OP8yajPeAQstMW/yCFokj/AthP9bLHzQFPlOrxOcwYEDkUAICmOHljvN4K39OMTMUa9RA==",
"requires": {
"@ethersproject/address": "^5.7.0",
"@ethersproject/bignumber": "^5.7.0",
@@ -42289,8 +41764,6 @@
},
"@ethersproject/abstract-provider": {
"version": "5.7.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.7.0.tgz",
- "integrity": "sha512-R41c9UkchKCpAqStMYUpdunjo3pkEvZC3FAwZn5S5MGbXoMQOHIdHItezTETxAO5bevtMApSyEhn9+CHcDsWBw==",
"requires": {
"@ethersproject/bignumber": "^5.7.0",
"@ethersproject/bytes": "^5.7.0",
@@ -42303,8 +41776,6 @@
},
"@ethersproject/abstract-signer": {
"version": "5.7.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.7.0.tgz",
- "integrity": "sha512-a16V8bq1/Cz+TGCkE2OPMTOUDLS3grCpdjoJCYNnVBbdYEMSgKrU0+B90s8b6H+ByYTBZN7a3g76jdIJi7UfKQ==",
"requires": {
"@ethersproject/abstract-provider": "^5.7.0",
"@ethersproject/bignumber": "^5.7.0",
@@ -42315,8 +41786,6 @@
},
"@ethersproject/address": {
"version": "5.7.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.7.0.tgz",
- "integrity": "sha512-9wYhYt7aghVGo758POM5nqcOMaE168Q6aRLJZwUmiqSrAungkG74gSSeKEIR7ukixesdRZGPgVqme6vmxs1fkA==",
"requires": {
"@ethersproject/bignumber": "^5.7.0",
"@ethersproject/bytes": "^5.7.0",
@@ -42327,16 +41796,12 @@
},
"@ethersproject/base64": {
"version": "5.7.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.7.0.tgz",
- "integrity": "sha512-Dr8tcHt2mEbsZr/mwTPIQAf3Ai0Bks/7gTw9dSqk1mQvhW3XvRlmDJr/4n+wg1JmCl16NZue17CDh8xb/vZ0sQ==",
"requires": {
"@ethersproject/bytes": "^5.7.0"
}
},
"@ethersproject/basex": {
"version": "5.7.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/basex/-/basex-5.7.0.tgz",
- "integrity": "sha512-ywlh43GwZLv2Voc2gQVTKBoVQ1mti3d8HK5aMxsfu/nRDnMmNqaSJ3r3n85HBByT8OpoY96SXM1FogC533T4zw==",
"requires": {
"@ethersproject/bytes": "^5.7.0",
"@ethersproject/properties": "^5.7.0"
@@ -42344,8 +41809,6 @@
},
"@ethersproject/bignumber": {
"version": "5.7.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.7.0.tgz",
- "integrity": "sha512-n1CAdIHRWjSucQO3MC1zPSVgV/6dy/fjL9pMrPP9peL+QxEg9wOsVqwD4+818B6LUEtaXzVHQiuivzRoxPxUGw==",
"requires": {
"@ethersproject/bytes": "^5.7.0",
"@ethersproject/logger": "^5.7.0",
@@ -42354,24 +41817,18 @@
},
"@ethersproject/bytes": {
"version": "5.7.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.7.0.tgz",
- "integrity": "sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A==",
"requires": {
"@ethersproject/logger": "^5.7.0"
}
},
"@ethersproject/constants": {
"version": "5.7.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.7.0.tgz",
- "integrity": "sha512-DHI+y5dBNvkpYUMiRQyxRBYBefZkJfo70VUkUAsRjcPs47muV9evftfZ0PJVCXYbAiCgght0DtcF9srFQmIgWA==",
"requires": {
"@ethersproject/bignumber": "^5.7.0"
}
},
"@ethersproject/contracts": {
"version": "5.7.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/contracts/-/contracts-5.7.0.tgz",
- "integrity": "sha512-5GJbzEU3X+d33CdfPhcyS+z8MzsTrBGk/sc+G+59+tPa9yFkl6HQ9D6L0QMgNTA9q8dT0XKxxkyp883XsQvbbg==",
"requires": {
"@ethersproject/abi": "^5.7.0",
"@ethersproject/abstract-provider": "^5.7.0",
@@ -42387,8 +41844,6 @@
},
"@ethersproject/hash": {
"version": "5.7.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.7.0.tgz",
- "integrity": "sha512-qX5WrQfnah1EFnO5zJv1v46a8HW0+E5xuBBDTwMFZLuVTx0tbU2kkx15NqdjxecrLGatQN9FGQKpb1FKdHCt+g==",
"requires": {
"@ethersproject/abstract-signer": "^5.7.0",
"@ethersproject/address": "^5.7.0",
@@ -42403,8 +41858,6 @@
},
"@ethersproject/hdnode": {
"version": "5.7.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/hdnode/-/hdnode-5.7.0.tgz",
- "integrity": "sha512-OmyYo9EENBPPf4ERhR7oj6uAtUAhYGqOnIS+jE5pTXvdKBS99ikzq1E7Iv0ZQZ5V36Lqx1qZLeak0Ra16qpeOg==",
"requires": {
"@ethersproject/abstract-signer": "^5.7.0",
"@ethersproject/basex": "^5.7.0",
@@ -42422,8 +41875,6 @@
},
"@ethersproject/json-wallets": {
"version": "5.7.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/json-wallets/-/json-wallets-5.7.0.tgz",
- "integrity": "sha512-8oee5Xgu6+RKgJTkvEMl2wDgSPSAQ9MB/3JYjFV9jlKvcYHUXZC+cQp0njgmxdHkYWn8s6/IqIZYm0YWCjO/0g==",
"requires": {
"@ethersproject/abstract-signer": "^5.7.0",
"@ethersproject/address": "^5.7.0",
@@ -42442,30 +41893,22 @@
},
"@ethersproject/keccak256": {
"version": "5.7.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.7.0.tgz",
- "integrity": "sha512-2UcPboeL/iW+pSg6vZ6ydF8tCnv3Iu/8tUmLLzWWGzxWKFFqOBQFLo6uLUv6BDrLgCDfN28RJ/wtByx+jZ4KBg==",
"requires": {
"@ethersproject/bytes": "^5.7.0",
"js-sha3": "0.8.0"
}
},
"@ethersproject/logger": {
- "version": "5.7.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.7.0.tgz",
- "integrity": "sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig=="
+ "version": "5.7.0"
},
"@ethersproject/networks": {
"version": "5.7.1",
- "resolved": "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.7.1.tgz",
- "integrity": "sha512-n/MufjFYv3yFcUyfhnXotyDlNdFb7onmkSy8aQERi2PjNcnWQ66xXxa3XlS8nCcA8aJKJjIIMNJTC7tu80GwpQ==",
"requires": {
"@ethersproject/logger": "^5.7.0"
}
},
"@ethersproject/pbkdf2": {
"version": "5.7.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/pbkdf2/-/pbkdf2-5.7.0.tgz",
- "integrity": "sha512-oR/dBRZR6GTyaofd86DehG72hY6NpAjhabkhxgr3X2FpJtJuodEl2auADWBZfhDHgVCbu3/H/Ocq2uC6dpNjjw==",
"requires": {
"@ethersproject/bytes": "^5.7.0",
"@ethersproject/sha2": "^5.7.0"
@@ -42473,16 +41916,12 @@
},
"@ethersproject/properties": {
"version": "5.7.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.7.0.tgz",
- "integrity": "sha512-J87jy8suntrAkIZtecpxEPxY//szqr1mlBaYlQ0r4RCaiD2hjheqF9s1LVE8vVuJCXisjIP+JgtK/Do54ej4Sw==",
"requires": {
"@ethersproject/logger": "^5.7.0"
}
},
"@ethersproject/providers": {
"version": "5.7.1",
- "resolved": "https://registry.npmjs.org/@ethersproject/providers/-/providers-5.7.1.tgz",
- "integrity": "sha512-vZveG/DLyo+wk4Ga1yx6jSEHrLPgmTt+dFv0dv8URpVCRf0jVhalps1jq/emN/oXnMRsC7cQgAF32DcXLL7BPQ==",
"requires": {
"@ethersproject/abstract-provider": "^5.7.0",
"@ethersproject/abstract-signer": "^5.7.0",
@@ -42517,8 +41956,6 @@
},
"@ethersproject/random": {
"version": "5.7.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/random/-/random-5.7.0.tgz",
- "integrity": "sha512-19WjScqRA8IIeWclFme75VMXSBvi4e6InrUNuaR4s5pTF2qNhcGdCUwdxUVGtDDqC00sDLCO93jPQoDUH4HVmQ==",
"requires": {
"@ethersproject/bytes": "^5.7.0",
"@ethersproject/logger": "^5.7.0"
@@ -42526,8 +41963,6 @@
},
"@ethersproject/rlp": {
"version": "5.7.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.7.0.tgz",
- "integrity": "sha512-rBxzX2vK8mVF7b0Tol44t5Tb8gomOHkj5guL+HhzQ1yBh/ydjGnpw6at+X6Iw0Kp3OzzzkcKp8N9r0W4kYSs9w==",
"requires": {
"@ethersproject/bytes": "^5.7.0",
"@ethersproject/logger": "^5.7.0"
@@ -42535,8 +41970,6 @@
},
"@ethersproject/sha2": {
"version": "5.7.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/sha2/-/sha2-5.7.0.tgz",
- "integrity": "sha512-gKlH42riwb3KYp0reLsFTokByAKoJdgFCwI+CCiX/k+Jm2mbNs6oOaCjYQSlI1+XBVejwH2KrmCbMAT/GnRDQw==",
"requires": {
"@ethersproject/bytes": "^5.7.0",
"@ethersproject/logger": "^5.7.0",
@@ -42545,8 +41978,6 @@
},
"@ethersproject/signing-key": {
"version": "5.7.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.7.0.tgz",
- "integrity": "sha512-MZdy2nL3wO0u7gkB4nA/pEf8lu1TlFswPNmy8AiYkfKTdO6eXBJyUdmHO/ehm/htHw9K/qF8ujnTyUAD+Ry54Q==",
"requires": {
"@ethersproject/bytes": "^5.7.0",
"@ethersproject/logger": "^5.7.0",
@@ -42558,8 +41989,6 @@
"dependencies": {
"elliptic": {
"version": "6.5.4",
- "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz",
- "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==",
"requires": {
"bn.js": "^4.11.9",
"brorand": "^1.1.0",
@@ -42571,9 +42000,7 @@
},
"dependencies": {
"bn.js": {
- "version": "4.12.0",
- "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
- "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
+ "version": "4.12.0"
}
}
}
@@ -42581,8 +42008,6 @@
},
"@ethersproject/solidity": {
"version": "5.7.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/solidity/-/solidity-5.7.0.tgz",
- "integrity": "sha512-HmabMd2Dt/raavyaGukF4XxizWKhKQ24DoLtdNbBmNKUOPqwjsKQSdV9GQtj9CBEea9DlzETlVER1gYeXXBGaA==",
"requires": {
"@ethersproject/bignumber": "^5.7.0",
"@ethersproject/bytes": "^5.7.0",
@@ -42594,8 +42019,6 @@
},
"@ethersproject/strings": {
"version": "5.7.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.7.0.tgz",
- "integrity": "sha512-/9nu+lj0YswRNSH0NXYqrh8775XNyEdUQAuf3f+SmOrnVewcJ5SBNAjF7lpgehKi4abvNNXyf+HX86czCdJ8Mg==",
"requires": {
"@ethersproject/bytes": "^5.7.0",
"@ethersproject/constants": "^5.7.0",
@@ -42604,8 +42027,6 @@
},
"@ethersproject/transactions": {
"version": "5.7.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.7.0.tgz",
- "integrity": "sha512-kmcNicCp1lp8qanMTC3RIikGgoJ80ztTyvtsFvCYpSCfkjhD0jZ2LOrnbcuxuToLIUYYf+4XwD1rP+B/erDIhQ==",
"requires": {
"@ethersproject/address": "^5.7.0",
"@ethersproject/bignumber": "^5.7.0",
@@ -42620,8 +42041,6 @@
},
"@ethersproject/units": {
"version": "5.7.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/units/-/units-5.7.0.tgz",
- "integrity": "sha512-pD3xLMy3SJu9kG5xDGI7+xhTEmGXlEqXU4OfNapmfnxLVY4EMSSRp7j1k7eezutBPH7RBN/7QPnwR7hzNlEFeg==",
"requires": {
"@ethersproject/bignumber": "^5.7.0",
"@ethersproject/constants": "^5.7.0",
@@ -42630,8 +42049,6 @@
},
"@ethersproject/wallet": {
"version": "5.7.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/wallet/-/wallet-5.7.0.tgz",
- "integrity": "sha512-MhmXlJXEJFBFVKrDLB4ZdDzxcBxQ3rLyCkhNqVu3CDYvR97E+8r01UgrI+TI99Le+aYm/in/0vp86guJuM7FCA==",
"requires": {
"@ethersproject/abstract-provider": "^5.7.0",
"@ethersproject/abstract-signer": "^5.7.0",
@@ -42652,8 +42069,6 @@
},
"@ethersproject/web": {
"version": "5.7.1",
- "resolved": "https://registry.npmjs.org/@ethersproject/web/-/web-5.7.1.tgz",
- "integrity": "sha512-Gueu8lSvyjBWL4cYsWsjh6MtMwM0+H4HvqFPZfB6dV8ctbP9zFAO73VG1cMWae0FLPCtz0peKPpZY8/ugJJX2w==",
"requires": {
"@ethersproject/base64": "^5.7.0",
"@ethersproject/bytes": "^5.7.0",
@@ -42664,8 +42079,6 @@
},
"@ethersproject/wordlists": {
"version": "5.7.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/wordlists/-/wordlists-5.7.0.tgz",
- "integrity": "sha512-S2TFNJNfHWVHNE6cNDjbVlZ6MgE17MIxMbMg2zv3wn+3XSJGosL1m9ZVv3GXCf/2ymSsQ+hRI5IzoMJTG6aoVA==",
"requires": {
"@ethersproject/bytes": "^5.7.0",
"@ethersproject/hash": "^5.7.0",
@@ -43461,68 +42874,50 @@
},
"@ledgerhq/cryptoassets": {
"version": "6.34.0",
- "resolved": "https://registry.npmjs.org/@ledgerhq/cryptoassets/-/cryptoassets-6.34.0.tgz",
- "integrity": "sha512-Rg3i3aOWnTFD8mtNZetZnG+7XTAWu2iuD4jCC6oUeU5wKB7Sc5m0En7LoEmEWv7ZW5VpH8NjM6uK/KWgsCwR6Q==",
"requires": {
"invariant": "2"
}
},
"@ledgerhq/devices": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/@ledgerhq/devices/-/devices-7.0.0.tgz",
- "integrity": "sha512-vq4B33WdU0dRAJIRFWZMj6w1W1yw1i4mekCmhk7N9wPaFrtGWZ2iI9WDihsNOBooCWKQe8Jsb9eD8RVThbSlFQ==",
+ "version": "7.0.3",
"requires": {
- "@ledgerhq/errors": "^6.10.1",
- "@ledgerhq/logs": "^6.10.0",
+ "@ledgerhq/errors": "^6.11.1",
+ "@ledgerhq/logs": "^6.10.1",
"rxjs": "6",
"semver": "^7.3.5"
},
"dependencies": {
"lru-cache": {
"version": "6.0.0",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
- "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
"requires": {
"yallist": "^4.0.0"
}
},
"rxjs": {
"version": "6.6.7",
- "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz",
- "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==",
"requires": {
"tslib": "^1.9.0"
}
},
"semver": {
"version": "7.3.7",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz",
- "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==",
"requires": {
"lru-cache": "^6.0.0"
}
},
"tslib": {
- "version": "1.14.1",
- "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
- "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
+ "version": "1.14.1"
},
"yallist": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
- "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
+ "version": "4.0.0"
}
}
},
"@ledgerhq/errors": {
- "version": "6.10.1",
- "resolved": "https://registry.npmjs.org/@ledgerhq/errors/-/errors-6.10.1.tgz",
- "integrity": "sha512-92d1zRQleR1AQ4CAXgWgDtKUms+8EwShLVUcajI+BLWvgJ1Vclmq6PsBIDEQbsm+riVu/Ji3LcHdmgFgmi0VGw=="
+ "version": "6.11.1"
},
"@ledgerhq/hw-app-eth": {
"version": "6.29.6",
- "resolved": "https://registry.npmjs.org/@ledgerhq/hw-app-eth/-/hw-app-eth-6.29.6.tgz",
- "integrity": "sha512-7TS6dTF30ONOqppk0J8YYVX0Cd7/Pt0Uuy77n/LRXpfsLHDABSaRROjNzxxT3q7EIMz6FQi4K4WaN8OIznkytA==",
"requires": {
"@ethersproject/abi": "^5.5.0",
"@ethersproject/rlp": "^5.5.0",
@@ -43536,53 +42931,36 @@
},
"dependencies": {
"bignumber.js": {
- "version": "9.1.0",
- "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.0.tgz",
- "integrity": "sha512-4LwHK4nfDOraBCtst+wOWIHbu1vhvAPJK8g8nROd4iuc3PSEjWif/qwbkh8jwCJz6yDBvtU4KPynETgrfh7y3A=="
+ "version": "9.1.0"
}
}
},
"@ledgerhq/hw-transport": {
- "version": "6.27.3",
- "resolved": "https://registry.npmjs.org/@ledgerhq/hw-transport/-/hw-transport-6.27.3.tgz",
- "integrity": "sha512-vQMNCC1DUDtS+nkJsbycgFMSodmj91WuGSxX7RjOz2vuZBc6jXtDn9jzYdsfyKOwnvalQAkXm9hWWHlrMIKdNQ==",
+ "version": "6.27.6",
"requires": {
- "@ledgerhq/devices": "^7.0.0",
- "@ledgerhq/errors": "^6.10.1",
+ "@ledgerhq/devices": "^7.0.3",
+ "@ledgerhq/errors": "^6.11.1",
"events": "^3.3.0"
}
},
"@ledgerhq/hw-transport-mocker": {
"version": "6.27.3",
- "resolved": "https://registry.npmjs.org/@ledgerhq/hw-transport-mocker/-/hw-transport-mocker-6.27.3.tgz",
- "integrity": "sha512-eweiIdbU+ZC4txin7JhLQpQ5dpMoPyyGo3O5OvD4xsZGbVNauEPYZzUks0ko5ZniCpVnB3qNfS3cU3PXdjN6Zw==",
"requires": {
"@ledgerhq/hw-transport": "^6.27.3",
"@ledgerhq/logs": "^6.10.1-nightly.0"
- },
- "dependencies": {
- "@ledgerhq/logs": {
- "version": "6.10.1-nightly.0",
- "resolved": "https://registry.npmjs.org/@ledgerhq/logs/-/logs-6.10.1-nightly.0.tgz",
- "integrity": "sha512-hwoUwlC7le37kQ72W8hAzVq070zuY6IEpssYNXDTr3pEfc3cprTAgEnaBsb0jXQGiLdONPvxc7nPp8nSyGD3hQ=="
- }
}
},
- "@ledgerhq/hw-transport-webhid": {
- "version": "6.27.2",
- "resolved": "https://registry.npmjs.org/@ledgerhq/hw-transport-webhid/-/hw-transport-webhid-6.27.2.tgz",
- "integrity": "sha512-ZlyNheUhcxBZqjJzhSfJfeGQvNbeyWs9866rdQjVeG1zsbTJi0+6tfRv8J248QISS8vHtG5IMSxgMg9mtux9dQ==",
+ "@ledgerhq/hw-transport-webusb": {
+ "version": "6.27.6",
"requires": {
- "@ledgerhq/devices": "^7.0.0",
- "@ledgerhq/errors": "^6.10.1",
- "@ledgerhq/hw-transport": "^6.27.2",
- "@ledgerhq/logs": "^6.10.0"
+ "@ledgerhq/devices": "^7.0.3",
+ "@ledgerhq/errors": "^6.11.1",
+ "@ledgerhq/hw-transport": "^6.27.6",
+ "@ledgerhq/logs": "^6.10.1"
}
},
"@ledgerhq/logs": {
- "version": "6.10.0",
- "resolved": "https://registry.npmjs.org/@ledgerhq/logs/-/logs-6.10.0.tgz",
- "integrity": "sha512-lLseUPEhSFUXYTKj6q7s2O3s2vW2ebgA11vMAlKodXGf5AFw4zUoEbTz9CoFOC9jS6xY4Qr8BmRnxP/odT4Uuw=="
+ "version": "6.10.1"
},
"@mapbox/node-pre-gyp": {
"version": "1.0.9",
@@ -43681,13 +43059,16 @@
"glob-to-regexp": "^0.3.0"
}
},
+ "@noble/ed25519": {
+ "version": "1.7.1",
+ "resolved": "https://registry.npmjs.org/@noble/ed25519/-/ed25519-1.7.1.tgz",
+ "integrity": "sha512-Rk4SkJFaXZiznFyC/t77Q0NKS4FL7TLJJsVG2V2oiEq3kJVeTdxysEe/yRWSpnWMe808XRDJ+VFh5pt/FN5plw=="
+ },
"@noble/hashes": {
- "version": "1.1.2",
- "dev": true
+ "version": "1.1.2"
},
"@noble/secp256k1": {
- "version": "1.6.3",
- "dev": true
+ "version": "1.6.3"
},
"@nodelib/fs.scandir": {
"version": "2.1.5",
@@ -43881,8 +43262,6 @@
},
"@rollup/plugin-inject": {
"version": "4.0.4",
- "resolved": "https://registry.npmjs.org/@rollup/plugin-inject/-/plugin-inject-4.0.4.tgz",
- "integrity": "sha512-4pbcU4J/nS+zuHk+c+OL3WtmEQhqxlZ9uqfjQMQDOHOPld7PsCd8k5LWs8h5wjwJN7MgnAn768F2sDxEP4eNFQ==",
"dev": true,
"requires": {
"@rollup/pluginutils": "^3.1.0",
@@ -43892,16 +43271,12 @@
"dependencies": {
"estree-walker": {
"version": "2.0.2",
- "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz",
- "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==",
"dev": true
}
}
},
"@rollup/pluginutils": {
"version": "3.1.0",
- "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz",
- "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==",
"dev": true,
"requires": {
"@types/estree": "0.0.39",
@@ -43911,8 +43286,6 @@
"dependencies": {
"estree-walker": {
"version": "1.0.1",
- "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz",
- "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==",
"dev": true
}
}
@@ -44075,6 +43448,58 @@
"@sinonjs/commons": "^1.7.0"
}
},
+ "@solana/buffer-layout": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/@solana/buffer-layout/-/buffer-layout-4.0.0.tgz",
+ "integrity": "sha512-lR0EMP2HC3+Mxwd4YcnZb0smnaDw7Bl2IQWZiTevRH5ZZBZn6VRWn3/92E3qdU4SSImJkA6IDHawOHAnx/qUvQ==",
+ "requires": {
+ "buffer": "~6.0.3"
+ },
+ "dependencies": {
+ "buffer": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz",
+ "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==",
+ "requires": {
+ "base64-js": "^1.3.1",
+ "ieee754": "^1.2.1"
+ }
+ }
+ }
+ },
+ "@solana/web3.js": {
+ "version": "1.63.1",
+ "resolved": "https://registry.npmjs.org/@solana/web3.js/-/web3.js-1.63.1.tgz",
+ "integrity": "sha512-wgEdGVK5FTS2zENxbcGSvKpGZ0jDS6BUdGu8Gn6ns0CzgJkK83u4ip3THSnBPEQ5i/jrqukg998BwV1H67+qiQ==",
+ "requires": {
+ "@babel/runtime": "^7.12.5",
+ "@noble/ed25519": "^1.7.0",
+ "@noble/hashes": "^1.1.2",
+ "@noble/secp256k1": "^1.6.3",
+ "@solana/buffer-layout": "^4.0.0",
+ "bigint-buffer": "^1.1.5",
+ "bn.js": "^5.0.0",
+ "borsh": "^0.7.0",
+ "bs58": "^4.0.1",
+ "buffer": "6.0.1",
+ "fast-stable-stringify": "^1.0.0",
+ "jayson": "^3.4.4",
+ "node-fetch": "2",
+ "rpc-websockets": "^7.5.0",
+ "superstruct": "^0.14.2"
+ },
+ "dependencies": {
+ "buffer": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.1.tgz",
+ "integrity": "sha512-rVAXBwEcEoYtxnHSO5iWyhzV/O1WMtkUYWlfdLS7FjU4PnSJJHEfHXi/uHPI5EwltmOA794gN3bm3/pzuctWjQ==",
+ "requires": {
+ "base64-js": "^1.3.1",
+ "ieee754": "^1.2.1"
+ }
+ }
+ }
+ },
"@solidity-parser/parser": {
"version": "0.14.3",
"dev": true,
@@ -44193,7 +43618,6 @@
},
"@types/connect": {
"version": "3.4.35",
- "dev": true,
"requires": {
"@types/node": "*"
}
@@ -44217,8 +43641,6 @@
},
"@types/estree": {
"version": "0.0.39",
- "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz",
- "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==",
"dev": true
},
"@types/ethereumjs-abi": {
@@ -44266,8 +43688,6 @@
},
"@types/http-proxy": {
"version": "1.17.9",
- "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.9.tgz",
- "integrity": "sha512-QsbSjA/fSk7xB+UXlCT3wHBy5ai9wOcNDWwZAtud+jXhwOM3l+EYZh8Lng4+/6n8uar0J7xILzqftJdJ/Wdfkw==",
"dev": true,
"requires": {
"@types/node": "*"
@@ -44326,8 +43746,6 @@
},
"@types/localtunnel": {
"version": "2.0.1",
- "resolved": "https://registry.npmjs.org/@types/localtunnel/-/localtunnel-2.0.1.tgz",
- "integrity": "sha512-0h/ggh+tp9uKHc2eEOLdMgWW0cNwsQfn6iEE1Y44FszNB4BQyL5N6xvd5BnChZksB0YgVqa5MKxJt0dFoOKRxw==",
"dev": true,
"requires": {
"@types/node": "*"
@@ -44837,8 +44255,6 @@
},
"@walletconnect/browser-utils": {
"version": "1.8.0",
- "resolved": "https://registry.npmjs.org/@walletconnect/browser-utils/-/browser-utils-1.8.0.tgz",
- "integrity": "sha512-Wcqqx+wjxIo9fv6eBUFHPsW1y/bGWWRboni5dfD8PtOmrihrEpOCmvRJe4rfl7xgJW8Ea9UqKEaq0bIRLHlK4A==",
"requires": {
"@walletconnect/safe-json": "1.0.0",
"@walletconnect/types": "^1.8.0",
@@ -44849,8 +44265,6 @@
},
"@walletconnect/client": {
"version": "1.8.0",
- "resolved": "https://registry.npmjs.org/@walletconnect/client/-/client-1.8.0.tgz",
- "integrity": "sha512-svyBQ14NHx6Cs2j4TpkQaBI/2AF4+LXz64FojTjMtV4VMMhl81jSO1vNeg+yYhQzvjcGH/GpSwixjyCW0xFBOQ==",
"requires": {
"@walletconnect/core": "^1.8.0",
"@walletconnect/iso-crypto": "^1.8.0",
@@ -44860,8 +44274,6 @@
},
"@walletconnect/core": {
"version": "1.8.0",
- "resolved": "https://registry.npmjs.org/@walletconnect/core/-/core-1.8.0.tgz",
- "integrity": "sha512-aFTHvEEbXcZ8XdWBw6rpQDte41Rxwnuk3SgTD8/iKGSRTni50gI9S3YEzMj05jozSiOBxQci4pJDMVhIUMtarw==",
"requires": {
"@walletconnect/socket-transport": "^1.8.0",
"@walletconnect/types": "^1.8.0",
@@ -44870,8 +44282,6 @@
},
"@walletconnect/crypto": {
"version": "1.0.2",
- "resolved": "https://registry.npmjs.org/@walletconnect/crypto/-/crypto-1.0.2.tgz",
- "integrity": "sha512-+OlNtwieUqVcOpFTvLBvH+9J9pntEqH5evpINHfVxff1XIgwV55PpbdvkHu6r9Ib4WQDOFiD8OeeXs1vHw7xKQ==",
"requires": {
"@walletconnect/encoding": "^1.0.1",
"@walletconnect/environment": "^1.0.0",
@@ -44881,30 +44291,22 @@
},
"dependencies": {
"aes-js": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.1.2.tgz",
- "integrity": "sha512-e5pEa2kBnBOgR4Y/p20pskXI74UEz7de8ZGVo58asOtvSVG5YAbJeELPZxOmt+Bnz3rX753YKhfIn4X4l1PPRQ=="
+ "version": "3.1.2"
}
}
},
"@walletconnect/encoding": {
"version": "1.0.1",
- "resolved": "https://registry.npmjs.org/@walletconnect/encoding/-/encoding-1.0.1.tgz",
- "integrity": "sha512-8opL2rs6N6E3tJfsqwS82aZQDL3gmupWUgmvuZ3CGU7z/InZs3R9jkzH8wmYtpbq0sFK3WkJkQRZFFk4BkrmFA==",
"requires": {
"is-typedarray": "1.0.0",
"typedarray-to-buffer": "3.1.5"
}
},
"@walletconnect/environment": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/@walletconnect/environment/-/environment-1.0.0.tgz",
- "integrity": "sha512-4BwqyWy6KpSvkocSaV7WR3BlZfrxLbJSLkg+j7Gl6pTDE+U55lLhJvQaMuDVazXYxcjBsG09k7UlH7cGiUI5vQ=="
+ "version": "1.0.0"
},
"@walletconnect/iso-crypto": {
"version": "1.8.0",
- "resolved": "https://registry.npmjs.org/@walletconnect/iso-crypto/-/iso-crypto-1.8.0.tgz",
- "integrity": "sha512-pWy19KCyitpfXb70hA73r9FcvklS+FvO9QUIttp3c2mfW8frxgYeRXfxLRCIQTkaYueRKvdqPjbyhPLam508XQ==",
"requires": {
"@walletconnect/crypto": "^1.0.2",
"@walletconnect/types": "^1.8.0",
@@ -44913,30 +44315,22 @@
},
"@walletconnect/jsonrpc-types": {
"version": "1.0.1",
- "resolved": "https://registry.npmjs.org/@walletconnect/jsonrpc-types/-/jsonrpc-types-1.0.1.tgz",
- "integrity": "sha512-+6coTtOuChCqM+AoYyi4Q83p9l/laI6NvuM2/AHaZFuf0gT0NjW7IX2+86qGyizn7Ptq4AYZmfxurAxTnhefuw==",
"requires": {
"keyvaluestorage-interface": "^1.0.0"
}
},
"@walletconnect/jsonrpc-utils": {
"version": "1.0.3",
- "resolved": "https://registry.npmjs.org/@walletconnect/jsonrpc-utils/-/jsonrpc-utils-1.0.3.tgz",
- "integrity": "sha512-3yb49bPk16MNLk6uIIHPSHQCpD6UAo1OMOx1rM8cW/MPEAYAzrSW5hkhG7NEUwX9SokRIgnZK3QuQkiyNzBMhQ==",
"requires": {
"@walletconnect/environment": "^1.0.0",
"@walletconnect/jsonrpc-types": "^1.0.1"
}
},
"@walletconnect/mobile-registry": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/@walletconnect/mobile-registry/-/mobile-registry-1.4.0.tgz",
- "integrity": "sha512-ZtKRio4uCZ1JUF7LIdecmZt7FOLnX72RPSY7aUVu7mj7CSfxDwUn6gBuK6WGtH+NZCldBqDl5DenI5fFSvkKYw=="
+ "version": "1.4.0"
},
"@walletconnect/qrcode-modal": {
"version": "1.8.0",
- "resolved": "https://registry.npmjs.org/@walletconnect/qrcode-modal/-/qrcode-modal-1.8.0.tgz",
- "integrity": "sha512-BueaFefaAi8mawE45eUtztg3ZFbsAH4DDXh1UNwdUlsvFMjqcYzLUG0xZvDd6z2eOpbgDg2N3bl6gF0KONj1dg==",
"requires": {
"@walletconnect/browser-utils": "^1.8.0",
"@walletconnect/mobile-registry": "^1.4.0",
@@ -44948,8 +44342,6 @@
},
"@walletconnect/randombytes": {
"version": "1.0.2",
- "resolved": "https://registry.npmjs.org/@walletconnect/randombytes/-/randombytes-1.0.2.tgz",
- "integrity": "sha512-ivgOtAyqQnN0rLQmOFPemsgYGysd/ooLfaDA/ACQ3cyqlca56t3rZc7pXfqJOIETx/wSyoF5XbwL+BqYodw27A==",
"requires": {
"@walletconnect/encoding": "^1.0.1",
"@walletconnect/environment": "^1.0.0",
@@ -44957,14 +44349,10 @@
}
},
"@walletconnect/safe-json": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/@walletconnect/safe-json/-/safe-json-1.0.0.tgz",
- "integrity": "sha512-QJzp/S/86sUAgWY6eh5MKYmSfZaRpIlmCJdi5uG4DJlKkZrHEF7ye7gA+VtbVzvTtpM/gRwO2plQuiooIeXjfg=="
+ "version": "1.0.0"
},
"@walletconnect/socket-transport": {
"version": "1.8.0",
- "resolved": "https://registry.npmjs.org/@walletconnect/socket-transport/-/socket-transport-1.8.0.tgz",
- "integrity": "sha512-5DyIyWrzHXTcVp0Vd93zJ5XMW61iDM6bcWT4p8DTRfFsOtW46JquruMhxOLeCOieM4D73kcr3U7WtyR4JUsGuQ==",
"requires": {
"@walletconnect/types": "^1.8.0",
"@walletconnect/utils": "^1.8.0",
@@ -44973,21 +44361,15 @@
"dependencies": {
"ws": {
"version": "7.5.3",
- "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.3.tgz",
- "integrity": "sha512-kQ/dHIzuLrS6Je9+uv81ueZomEwH0qVYstcAQ4/Z93K8zeko9gtAbttJWzoC5ukqXY1PpoouV3+VSOqEAFt5wg==",
"requires": {}
}
}
},
"@walletconnect/types": {
- "version": "1.8.0",
- "resolved": "https://registry.npmjs.org/@walletconnect/types/-/types-1.8.0.tgz",
- "integrity": "sha512-Cn+3I0V0vT9ghMuzh1KzZvCkiAxTq+1TR2eSqw5E5AVWfmCtECFkVZBP6uUJZ8YjwLqXheI+rnjqPy7sVM4Fyg=="
+ "version": "1.8.0"
},
"@walletconnect/utils": {
"version": "1.8.0",
- "resolved": "https://registry.npmjs.org/@walletconnect/utils/-/utils-1.8.0.tgz",
- "integrity": "sha512-zExzp8Mj1YiAIBfKNm5u622oNw44WOESzo6hj+Q3apSMIb0Jph9X3GDIdbZmvVZsNPxWDL7uodKgZcCInZv2vA==",
"requires": {
"@walletconnect/browser-utils": "^1.8.0",
"@walletconnect/encoding": "^1.0.1",
@@ -44999,14 +44381,10 @@
},
"dependencies": {
"bn.js": {
- "version": "4.11.8",
- "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz",
- "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA=="
+ "version": "4.11.8"
},
"query-string": {
"version": "6.13.5",
- "resolved": "https://registry.npmjs.org/query-string/-/query-string-6.13.5.tgz",
- "integrity": "sha512-svk3xg9qHR39P3JlHuD7g3nRnyay5mHbrPctEBDUxUkHRifPHXJDhBUycdCC0NBjXoDf44Gb+IsOZL1Uwn8M/Q==",
"requires": {
"decode-uri-component": "^0.2.0",
"split-on-first": "^1.0.0",
@@ -45016,14 +44394,10 @@
}
},
"@walletconnect/window-getters": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/@walletconnect/window-getters/-/window-getters-1.0.0.tgz",
- "integrity": "sha512-xB0SQsLaleIYIkSsl43vm8EwETpBzJ2gnzk7e0wMF3ktqiTGS6TFHxcprMl5R44KKh4tCcHCJwolMCaDSwtAaA=="
+ "version": "1.0.0"
},
"@walletconnect/window-metadata": {
"version": "1.0.0",
- "resolved": "https://registry.npmjs.org/@walletconnect/window-metadata/-/window-metadata-1.0.0.tgz",
- "integrity": "sha512-9eFvmJxIKCC3YWOL97SgRkKhlyGXkrHwamfechmqszbypFspaSk+t2jQXAEU7YClHF6Qjw5eYOmy1//zFi9/GA==",
"requires": {
"@walletconnect/window-getters": "^1.0.0"
}
@@ -45111,9 +44485,7 @@
"dev": true
},
"aes-js": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.0.0.tgz",
- "integrity": "sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw=="
+ "version": "3.0.0"
},
"agent-base": {
"version": "6.0.2",
@@ -45502,8 +44874,6 @@
},
"axios": {
"version": "0.26.1",
- "resolved": "https://registry.npmjs.org/axios/-/axios-0.26.1.tgz",
- "integrity": "sha512-fPwcX4EvnSHuInCMItEhAGnaSEXRBjtzh9fOtsE6E1G6p7vl7edEeZe11QHf18+6+9gR5PbKV/sGKNaD8YaMeA==",
"requires": {
"follow-redirects": "^1.14.8"
}
@@ -45637,6 +45007,14 @@
"pascalcase": "^0.1.1"
}
},
+ "base-x": {
+ "version": "3.0.9",
+ "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz",
+ "integrity": "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==",
+ "requires": {
+ "safe-buffer": "^5.0.1"
+ }
+ },
"base64-js": {
"version": "1.5.1"
},
@@ -45661,6 +45039,14 @@
"big-integer": {
"version": "1.6.51"
},
+ "bigint-buffer": {
+ "version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/bigint-buffer/-/bigint-buffer-1.1.5.tgz",
+ "integrity": "sha512-trfYco6AoZ+rKhKnxA0hgX0HAbVP/s808/EuDSe2JDzUnCp/xAsli35Orvk67UrTEcwuxZqYZDmfA2RXJgxVvA==",
+ "requires": {
+ "bindings": "^1.3.0"
+ }
+ },
"bignumber.js": {
"version": "9.0.0"
},
@@ -45675,6 +45061,14 @@
"version": "2.2.0",
"dev": true
},
+ "bindings": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz",
+ "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==",
+ "requires": {
+ "file-uri-to-path": "1.0.0"
+ }
+ },
"blakejs": {
"version": "1.1.0"
},
@@ -45723,6 +45117,16 @@
"version": "1.0.0",
"dev": true
},
+ "borsh": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/borsh/-/borsh-0.7.0.tgz",
+ "integrity": "sha512-CLCsZGIBCFnPtkNnieW/a8wmreDmfUtjU2m9yHrzPXIlNbqVs0AQrSatSG6vdNYUqdc83tkQi2eHfF98ubzQLA==",
+ "requires": {
+ "bn.js": "^5.2.0",
+ "bs58": "^4.0.0",
+ "text-encoding-utf-8": "^1.0.2"
+ }
+ },
"bowser": {
"version": "2.11.0"
},
@@ -45825,26 +45229,20 @@
"fast-json-stable-stringify": "2.x"
}
},
+ "bs58": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz",
+ "integrity": "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==",
+ "requires": {
+ "base-x": "^3.0.2"
+ }
+ },
"bs58check": {
"version": "2.1.2",
"requires": {
"bs58": "^4.0.0",
"create-hash": "^1.1.0",
"safe-buffer": "^5.1.2"
- },
- "dependencies": {
- "base-x": {
- "version": "3.0.9",
- "requires": {
- "safe-buffer": "^5.0.1"
- }
- },
- "bs58": {
- "version": "4.0.1",
- "requires": {
- "base-x": "^3.0.2"
- }
- }
}
},
"bser": {
@@ -45867,22 +45265,16 @@
},
"buffer-alloc": {
"version": "1.2.0",
- "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz",
- "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==",
"requires": {
"buffer-alloc-unsafe": "^1.1.0",
"buffer-fill": "^1.0.0"
}
},
"buffer-alloc-unsafe": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz",
- "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg=="
+ "version": "1.1.0"
},
"buffer-fill": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz",
- "integrity": "sha512-T7zexNBwiiaCOGDg9xNX9PBmjrubblRkENuptryuI64URkXDFum9il/JGL8Lm8wYfAXpredVXXZz7eMHilimiQ=="
+ "version": "1.0.0"
},
"buffer-from": {
"version": "1.1.2"
@@ -45906,7 +45298,6 @@
"bufferutil": {
"version": "4.0.6",
"optional": true,
- "peer": true,
"requires": {
"node-gyp-build": "^4.3.0"
}
@@ -46914,8 +46305,6 @@
},
"copy-to-clipboard": {
"version": "3.3.2",
- "resolved": "https://registry.npmjs.org/copy-to-clipboard/-/copy-to-clipboard-3.3.2.tgz",
- "integrity": "sha512-Vme1Z6RUDzrb6xAI7EZlVZ5uvOk2F//GaxKUxajDqm9LhOVM1inxNAD2vy+UZDYsd0uyA9s7b3/FVZPSxqrCfg==",
"requires": {
"toggle-selection": "^1.0.6"
}
@@ -47399,6 +46788,11 @@
"version": "1.0.0",
"dev": true
},
+ "delay": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/delay/-/delay-5.0.0.tgz",
+ "integrity": "sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw=="
+ },
"delayed-stream": {
"version": "1.0.0"
},
@@ -47424,9 +46818,7 @@
"version": "1.2.0"
},
"detect-browser": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/detect-browser/-/detect-browser-5.2.0.tgz",
- "integrity": "sha512-tr7XntDAu50BVENgQfajMLzacmSe34D+qZc4zjnniz0ZVuw/TZcLcyxHQjYpJTM36sGEkZZlYLnIM1hH7alTMA=="
+ "version": "5.2.0"
},
"detect-indent": {
"version": "5.0.0",
@@ -47461,9 +46853,7 @@
"dev": true
},
"dijkstrajs": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/dijkstrajs/-/dijkstrajs-1.0.2.tgz",
- "integrity": "sha512-QV6PMaHTCNmKSeP6QoXhVTw9snc9VD8MulTT0Bd99Pacp4SS1cjcrYPgBPmibqKVtMJJfqC6XvOXgPMEEPH/fg=="
+ "version": "1.0.2"
},
"dir-glob": {
"version": "3.0.1",
@@ -47721,6 +47111,19 @@
"is-symbol": "^1.0.2"
}
},
+ "es6-promise": {
+ "version": "4.2.8",
+ "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz",
+ "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w=="
+ },
+ "es6-promisify": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz",
+ "integrity": "sha512-C+d6UdsYDk0lMebHNR4S2NybQMMngAOnOwYBQjTOiv0MkoJMP0Myw2mgpDLBcpfCmRLxyFqYhS/CfOENq4SJhQ==",
+ "requires": {
+ "es6-promise": "^4.0.3"
+ }
+ },
"esbuild": {
"version": "0.14.54",
"dev": true,
@@ -47746,288 +47149,13 @@
"esbuild-windows-32": "0.14.54",
"esbuild-windows-64": "0.14.54",
"esbuild-windows-arm64": "0.14.54"
- },
- "dependencies": {
- "@esbuild/linux-loong64": {
- "version": "0.14.54",
- "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.14.54.tgz",
- "integrity": "sha512-bZBrLAIX1kpWelV0XemxBZllyRmM6vgFQQG2GdNb+r3Fkp0FOh1NJSvekXDs7jq70k4euu1cryLMfU+mTXlEpw==",
- "dev": true,
- "optional": true
- },
- "esbuild-android-64": {
- "version": "0.14.54",
- "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.14.54.tgz",
- "integrity": "sha512-Tz2++Aqqz0rJ7kYBfz+iqyE3QMycD4vk7LBRyWaAVFgFtQ/O8EJOnVmTOiDWYZ/uYzB4kvP+bqejYdVKzE5lAQ==",
- "dev": true,
- "optional": true
- },
- "esbuild-android-arm64": {
- "version": "0.14.54",
- "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.14.54.tgz",
- "integrity": "sha512-F9E+/QDi9sSkLaClO8SOV6etqPd+5DgJje1F9lOWoNncDdOBL2YF59IhsWATSt0TLZbYCf3pNlTHvVV5VfHdvg==",
- "dev": true,
- "optional": true
- },
- "esbuild-darwin-arm64": {
- "version": "0.14.54",
- "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.54.tgz",
- "integrity": "sha512-OPafJHD2oUPyvJMrsCvDGkRrVCar5aVyHfWGQzY1dWnzErjrDuSETxwA2HSsyg2jORLY8yBfzc1MIpUkXlctmw==",
- "dev": true,
- "optional": true
- },
- "esbuild-freebsd-64": {
- "version": "0.14.54",
- "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.54.tgz",
- "integrity": "sha512-OKwd4gmwHqOTp4mOGZKe/XUlbDJ4Q9TjX0hMPIDBUWWu/kwhBAudJdBoxnjNf9ocIB6GN6CPowYpR/hRCbSYAg==",
- "dev": true,
- "optional": true
- },
- "esbuild-freebsd-arm64": {
- "version": "0.14.54",
- "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.54.tgz",
- "integrity": "sha512-sFwueGr7OvIFiQT6WeG0jRLjkjdqWWSrfbVwZp8iMP+8UHEHRBvlaxL6IuKNDwAozNUmbb8nIMXa7oAOARGs1Q==",
- "dev": true,
- "optional": true
- },
- "esbuild-linux-32": {
- "version": "0.14.54",
- "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.14.54.tgz",
- "integrity": "sha512-1ZuY+JDI//WmklKlBgJnglpUL1owm2OX+8E1syCD6UAxcMM/XoWd76OHSjl/0MR0LisSAXDqgjT3uJqT67O3qw==",
- "dev": true,
- "optional": true
- },
- "esbuild-linux-64": {
- "version": "0.14.54",
- "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.14.54.tgz",
- "integrity": "sha512-EgjAgH5HwTbtNsTqQOXWApBaPVdDn7XcK+/PtJwZLT1UmpLoznPd8c5CxqsH2dQK3j05YsB3L17T8vE7cp4cCg==",
- "dev": true,
- "optional": true
- },
- "esbuild-linux-arm": {
- "version": "0.14.54",
- "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.14.54.tgz",
- "integrity": "sha512-qqz/SjemQhVMTnvcLGoLOdFpCYbz4v4fUo+TfsWG+1aOu70/80RV6bgNpR2JCrppV2moUQkww+6bWxXRL9YMGw==",
- "dev": true,
- "optional": true
- },
- "esbuild-linux-arm64": {
- "version": "0.14.54",
- "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.54.tgz",
- "integrity": "sha512-WL71L+0Rwv+Gv/HTmxTEmpv0UgmxYa5ftZILVi2QmZBgX3q7+tDeOQNqGtdXSdsL8TQi1vIaVFHUPDe0O0kdig==",
- "dev": true,
- "optional": true
- },
- "esbuild-linux-mips64le": {
- "version": "0.14.54",
- "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.54.tgz",
- "integrity": "sha512-qTHGQB8D1etd0u1+sB6p0ikLKRVuCWhYQhAHRPkO+OF3I/iSlTKNNS0Lh2Oc0g0UFGguaFZZiPJdJey3AGpAlw==",
- "dev": true,
- "optional": true
- },
- "esbuild-linux-ppc64le": {
- "version": "0.14.54",
- "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.54.tgz",
- "integrity": "sha512-j3OMlzHiqwZBDPRCDFKcx595XVfOfOnv68Ax3U4UKZ3MTYQB5Yz3X1mn5GnodEVYzhtZgxEBidLWeIs8FDSfrQ==",
- "dev": true,
- "optional": true
- },
- "esbuild-linux-riscv64": {
- "version": "0.14.54",
- "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.54.tgz",
- "integrity": "sha512-y7Vt7Wl9dkOGZjxQZnDAqqn+XOqFD7IMWiewY5SPlNlzMX39ocPQlOaoxvT4FllA5viyV26/QzHtvTjVNOxHZg==",
- "dev": true,
- "optional": true
- },
- "esbuild-linux-s390x": {
- "version": "0.14.54",
- "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.54.tgz",
- "integrity": "sha512-zaHpW9dziAsi7lRcyV4r8dhfG1qBidQWUXweUjnw+lliChJqQr+6XD71K41oEIC3Mx1KStovEmlzm+MkGZHnHA==",
- "dev": true,
- "optional": true
- },
- "esbuild-netbsd-64": {
- "version": "0.14.54",
- "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.54.tgz",
- "integrity": "sha512-PR01lmIMnfJTgeU9VJTDY9ZerDWVFIUzAtJuDHwwceppW7cQWjBBqP48NdeRtoP04/AtO9a7w3viI+PIDr6d+w==",
- "dev": true,
- "optional": true
- },
- "esbuild-openbsd-64": {
- "version": "0.14.54",
- "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.54.tgz",
- "integrity": "sha512-Qyk7ikT2o7Wu76UsvvDS5q0amJvmRzDyVlL0qf5VLsLchjCa1+IAvd8kTBgUxD7VBUUVgItLkk609ZHUc1oCaw==",
- "dev": true,
- "optional": true
- },
- "esbuild-sunos-64": {
- "version": "0.14.54",
- "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.14.54.tgz",
- "integrity": "sha512-28GZ24KmMSeKi5ueWzMcco6EBHStL3B6ubM7M51RmPwXQGLe0teBGJocmWhgwccA1GeFXqxzILIxXpHbl9Q/Kw==",
- "dev": true,
- "optional": true
- },
- "esbuild-windows-32": {
- "version": "0.14.54",
- "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.14.54.tgz",
- "integrity": "sha512-T+rdZW19ql9MjS7pixmZYVObd9G7kcaZo+sETqNH4RCkuuYSuv9AGHUVnPoP9hhuE1WM1ZimHz1CIBHBboLU7w==",
- "dev": true,
- "optional": true
- },
- "esbuild-windows-64": {
- "version": "0.14.54",
- "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.14.54.tgz",
- "integrity": "sha512-AoHTRBUuYwXtZhjXZbA1pGfTo8cJo3vZIcWGLiUcTNgHpJJMC1rVA44ZereBHMJtotyN71S8Qw0npiCIkW96cQ==",
- "dev": true,
- "optional": true
- },
- "esbuild-windows-arm64": {
- "version": "0.14.54",
- "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.54.tgz",
- "integrity": "sha512-M0kuUvXhot1zOISQGXwWn6YtS+Y/1RT9WrVIOywZnJHo3jCDyewAc79aKNQWFCQm+xNHVTq9h8dZKvygoXQQRg==",
- "dev": true,
- "optional": true
- }
}
},
- "esbuild-android-64": {
- "version": "0.15.9",
- "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.15.9.tgz",
- "integrity": "sha512-HQCX7FJn9T4kxZQkhPjNZC7tBWZqJvhlLHPU2SFzrQB/7nDXjmTIFpFTjt7Bd1uFpeXmuwf5h5fZm+x/hLnhbw==",
- "dev": true,
- "optional": true
- },
- "esbuild-android-arm64": {
- "version": "0.15.9",
- "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.15.9.tgz",
- "integrity": "sha512-E6zbLfqbFVCNEKircSHnPiSTsm3fCRxeIMPfrkS33tFjIAoXtwegQfVZqMGR0FlsvVxp2NEDOUz+WW48COCjSg==",
- "dev": true,
- "optional": true
- },
"esbuild-darwin-64": {
"version": "0.14.54",
"dev": true,
"optional": true
},
- "esbuild-darwin-arm64": {
- "version": "0.15.9",
- "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.9.tgz",
- "integrity": "sha512-VZIMlcRN29yg/sv7DsDwN+OeufCcoTNaTl3Vnav7dL/nvsApD7uvhVRbgyMzv0zU/PP0xRhhIpTyc7lxEzHGSw==",
- "dev": true,
- "optional": true
- },
- "esbuild-freebsd-64": {
- "version": "0.15.9",
- "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.9.tgz",
- "integrity": "sha512-uM4z5bTvuAXqPxrI204txhlsPIolQPWRMLenvGuCPZTnnGlCMF2QLs0Plcm26gcskhxewYo9LkkmYSS5Czrb5A==",
- "dev": true,
- "optional": true
- },
- "esbuild-freebsd-arm64": {
- "version": "0.15.9",
- "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.9.tgz",
- "integrity": "sha512-HHDjT3O5gWzicGdgJ5yokZVN9K9KG05SnERwl9nBYZaCjcCgj/sX8Ps1jvoFSfNCO04JSsHSOWo4qvxFuj8FoA==",
- "dev": true,
- "optional": true
- },
- "esbuild-linux-32": {
- "version": "0.15.9",
- "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.15.9.tgz",
- "integrity": "sha512-AQIdE8FugGt1DkcekKi5ycI46QZpGJ/wqcMr7w6YUmOmp2ohQ8eO4sKUsOxNOvYL7hGEVwkndSyszR6HpVHLFg==",
- "dev": true,
- "optional": true
- },
- "esbuild-linux-64": {
- "version": "0.15.9",
- "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.15.9.tgz",
- "integrity": "sha512-4RXjae7g6Qs7StZyiYyXTZXBlfODhb1aBVAjd+ANuPmMhWthQilWo7rFHwJwL7DQu1Fjej2sODAVwLbcIVsAYQ==",
- "dev": true,
- "optional": true
- },
- "esbuild-linux-arm": {
- "version": "0.15.9",
- "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.15.9.tgz",
- "integrity": "sha512-3Zf2GVGUOI7XwChH3qrnTOSqfV1V4CAc/7zLVm4lO6JT6wbJrTgEYCCiNSzziSju+J9Jhf9YGWk/26quWPC6yQ==",
- "dev": true,
- "optional": true
- },
- "esbuild-linux-arm64": {
- "version": "0.15.9",
- "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.9.tgz",
- "integrity": "sha512-a+bTtxJmYmk9d+s2W4/R1SYKDDAldOKmWjWP0BnrWtDbvUBNOm++du0ysPju4mZVoEFgS1yLNW+VXnG/4FNwdQ==",
- "dev": true,
- "optional": true
- },
- "esbuild-linux-mips64le": {
- "version": "0.15.9",
- "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.9.tgz",
- "integrity": "sha512-Zn9HSylDp89y+TRREMDoGrc3Z4Hs5u56ozZLQCiZAUx2+HdbbXbWdjmw3FdTJ/i7t5Cew6/Q+6kfO3KCcFGlyw==",
- "dev": true,
- "optional": true
- },
- "esbuild-linux-ppc64le": {
- "version": "0.15.9",
- "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.9.tgz",
- "integrity": "sha512-OEiOxNAMH9ENFYqRsWUj3CWyN3V8P3ZXyfNAtX5rlCEC/ERXrCEFCJji/1F6POzsXAzxvUJrTSTCy7G6BhA6Fw==",
- "dev": true,
- "optional": true
- },
- "esbuild-linux-riscv64": {
- "version": "0.15.9",
- "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.9.tgz",
- "integrity": "sha512-ukm4KsC3QRausEFjzTsOZ/qqazw0YvJsKmfoZZm9QW27OHjk2XKSQGGvx8gIEswft/Sadp03/VZvAaqv5AIwNA==",
- "dev": true,
- "optional": true
- },
- "esbuild-linux-s390x": {
- "version": "0.15.9",
- "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.9.tgz",
- "integrity": "sha512-uDOQEH55wQ6ahcIKzQr3VyjGc6Po/xblLGLoUk3fVL1qjlZAibtQr6XRfy5wPJLu/M2o0vQKLq4lyJ2r1tWKcw==",
- "dev": true,
- "optional": true
- },
- "esbuild-netbsd-64": {
- "version": "0.15.9",
- "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.9.tgz",
- "integrity": "sha512-yWgxaYTQz+TqX80wXRq6xAtb7GSBAp6gqLKfOdANg9qEmAI1Bxn04IrQr0Mzm4AhxvGKoHzjHjMgXbCCSSDxcw==",
- "dev": true,
- "optional": true
- },
- "esbuild-openbsd-64": {
- "version": "0.15.9",
- "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.9.tgz",
- "integrity": "sha512-JmS18acQl4iSAjrEha1MfEmUMN4FcnnrtTaJ7Qg0tDCOcgpPPQRLGsZqhes0vmx8VA6IqRyScqXvaL7+Q0Uf3A==",
- "dev": true,
- "optional": true
- },
- "esbuild-sunos-64": {
- "version": "0.15.9",
- "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.15.9.tgz",
- "integrity": "sha512-UKynGSWpzkPmXW3D2UMOD9BZPIuRaSqphxSCwScfEE05Be3KAmvjsBhht1fLzKpiFVJb0BYMd4jEbWMyJ/z1hQ==",
- "dev": true,
- "optional": true
- },
- "esbuild-windows-32": {
- "version": "0.15.9",
- "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.15.9.tgz",
- "integrity": "sha512-aqXvu4/W9XyTVqO/hw3rNxKE1TcZiEYHPsXM9LwYmKSX9/hjvfIJzXwQBlPcJ/QOxedfoMVH0YnhhQ9Ffb0RGA==",
- "dev": true,
- "optional": true
- },
- "esbuild-windows-64": {
- "version": "0.15.9",
- "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.15.9.tgz",
- "integrity": "sha512-zm7h91WUmlS4idMtjvCrEeNhlH7+TNOmqw5dJPJZrgFaxoFyqYG6CKDpdFCQXdyKpD5yvzaQBOMVTCBVKGZDEg==",
- "dev": true,
- "optional": true
- },
- "esbuild-windows-arm64": {
- "version": "0.15.9",
- "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.9.tgz",
- "integrity": "sha512-yQEVIv27oauAtvtuhJVfSNMztJJX47ismRS6Sv2QMVV9RM+6xjbMWuuwM2nxr5A2/gj/mu2z9YlQxiwoFRCfZA==",
- "dev": true,
- "optional": true
- },
"escalade": {
"version": "3.1.1"
},
@@ -48669,8 +47797,6 @@
},
"ethers": {
"version": "5.7.1",
- "resolved": "https://registry.npmjs.org/ethers/-/ethers-5.7.1.tgz",
- "integrity": "sha512-5krze4dRLITX7FpU8J4WscXqADiKmyeNlylmmDLbS95DaZpBhDe2YSwRQwKXWNyXcox7a3gBgm/MkGXV1O1S/Q==",
"requires": {
"@ethersproject/abi": "5.7.0",
"@ethersproject/abstract-provider": "5.7.0",
@@ -48729,10 +47855,7 @@
"dev": true
},
"eventemitter3": {
- "version": "4.0.7",
- "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz",
- "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==",
- "dev": true
+ "version": "4.0.7"
},
"events": {
"version": "3.3.0"
@@ -49051,6 +48174,11 @@
"extsprintf": {
"version": "1.3.0"
},
+ "eyes": {
+ "version": "0.1.8",
+ "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz",
+ "integrity": "sha512-GipyPsXO1anza0AOZdy69Im7hGFCNB7Y/NGjDlZGJ3GJJLtwNSb2vrzYrTYJRrRloVx7pl+bhUaTB8yiccPvFQ=="
+ },
"fast-deep-equal": {
"version": "3.1.3"
},
@@ -49081,6 +48209,11 @@
"version": "2.0.6",
"dev": true
},
+ "fast-stable-stringify": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fast-stable-stringify/-/fast-stable-stringify-1.0.0.tgz",
+ "integrity": "sha512-wpYMUmFu5f00Sm0cj2pfivpmawLZ0NKdviQ4w9zJeR8JVtOpOxHmLaJuj0vxvGqMJQWyP/COUkF75/57OKyRag=="
+ },
"fast-xml-parser": {
"version": "3.19.0"
},
@@ -49118,6 +48251,11 @@
"flat-cache": "^3.0.4"
}
},
+ "file-uri-to-path": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz",
+ "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw=="
+ },
"fill-range": {
"version": "7.0.1",
"dev": true,
@@ -50164,13 +49302,6 @@
}
}
},
- "base-x": {
- "version": "3.0.8",
- "dev": true,
- "requires": {
- "safe-buffer": "^5.0.1"
- }
- },
"base64-js": {
"version": "1.5.1",
"dev": true
@@ -50356,13 +49487,6 @@
"electron-to-chromium": "^1.3.47"
}
},
- "bs58": {
- "version": "4.0.1",
- "dev": true,
- "requires": {
- "base-x": "^3.0.2"
- }
- },
"bs58check": {
"version": "2.1.2",
"dev": true,
@@ -57369,8 +56493,6 @@
},
"http-proxy": {
"version": "1.18.1",
- "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz",
- "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==",
"dev": true,
"requires": {
"eventemitter3": "^4.0.0",
@@ -57389,8 +56511,6 @@
},
"http-proxy-middleware": {
"version": "2.0.6",
- "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz",
- "integrity": "sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==",
"dev": true,
"requires": {
"@types/http-proxy": "^1.17.8",
@@ -57402,8 +56522,6 @@
"dependencies": {
"is-plain-obj": {
"version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz",
- "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==",
"dev": true
}
}
@@ -57610,8 +56728,6 @@
},
"invariant": {
"version": "2.2.4",
- "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz",
- "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==",
"requires": {
"loose-envify": "^1.0.0"
}
@@ -58043,6 +57159,57 @@
"istanbul-lib-report": "^3.0.0"
}
},
+ "jayson": {
+ "version": "3.7.0",
+ "resolved": "https://registry.npmjs.org/jayson/-/jayson-3.7.0.tgz",
+ "integrity": "sha512-tfy39KJMrrXJ+mFcMpxwBvFDetS8LAID93+rycFglIQM4kl3uNR3W4lBLE/FFhsoUCEox5Dt2adVpDm/XtebbQ==",
+ "requires": {
+ "@types/connect": "^3.4.33",
+ "@types/node": "^12.12.54",
+ "@types/ws": "^7.4.4",
+ "commander": "^2.20.3",
+ "delay": "^5.0.0",
+ "es6-promisify": "^5.0.0",
+ "eyes": "^0.1.8",
+ "isomorphic-ws": "^4.0.1",
+ "json-stringify-safe": "^5.0.1",
+ "JSONStream": "^1.3.5",
+ "lodash": "^4.17.20",
+ "uuid": "^8.3.2",
+ "ws": "^7.4.5"
+ },
+ "dependencies": {
+ "@types/node": {
+ "version": "12.20.55",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz",
+ "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ=="
+ },
+ "@types/ws": {
+ "version": "7.4.7",
+ "resolved": "https://registry.npmjs.org/@types/ws/-/ws-7.4.7.tgz",
+ "integrity": "sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww==",
+ "requires": {
+ "@types/node": "*"
+ }
+ },
+ "commander": {
+ "version": "2.20.3",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
+ "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ=="
+ },
+ "uuid": {
+ "version": "8.3.2",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz",
+ "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg=="
+ },
+ "ws": {
+ "version": "7.5.9",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz",
+ "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==",
+ "requires": {}
+ }
+ }
+ },
"jest": {
"version": "26.6.3",
"dev": true,
@@ -59717,12 +58884,10 @@
}
},
"jsonparse": {
- "version": "1.3.1",
- "dev": true
+ "version": "1.3.1"
},
"JSONStream": {
"version": "1.3.5",
- "dev": true,
"requires": {
"jsonparse": "^1.2.0",
"through": ">=2.2.7 <3"
@@ -59761,9 +58926,7 @@
}
},
"keyvaluestorage-interface": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/keyvaluestorage-interface/-/keyvaluestorage-interface-1.0.0.tgz",
- "integrity": "sha512-8t6Q3TclQ4uZynJY9IGr2+SsIGwK9JHcO6ootkHCGA0CrQCRy+VkouYNO2xicET6b9al7QKzpebNow+gkpCL8g=="
+ "version": "1.0.0"
},
"kind-of": {
"version": "6.0.3",
@@ -60070,8 +59233,6 @@
},
"localtunnel": {
"version": "2.0.2",
- "resolved": "https://registry.npmjs.org/localtunnel/-/localtunnel-2.0.2.tgz",
- "integrity": "sha512-n418Cn5ynvJd7m/N1d9WVJISLJF/ellZnfsLnx8WBWGzxv/ntNcFkJ1o6se5quUhCplfLGBNL5tYHiq5WF3Nug==",
"dev": true,
"requires": {
"axios": "0.21.4",
@@ -60082,8 +59243,6 @@
"dependencies": {
"axios": {
"version": "0.21.4",
- "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz",
- "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==",
"dev": true,
"requires": {
"follow-redirects": "^1.14.0"
@@ -60091,8 +59250,6 @@
},
"debug": {
"version": "4.3.2",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz",
- "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==",
"dev": true,
"requires": {
"ms": "2.1.2"
@@ -60100,20 +59257,14 @@
},
"emoji-regex": {
"version": "8.0.0",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
- "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
"dev": true
},
"is-fullwidth-code-point": {
"version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
- "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
"dev": true
},
"string-width": {
"version": "4.2.3",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
- "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
"dev": true,
"requires": {
"emoji-regex": "^8.0.0",
@@ -60123,14 +59274,10 @@
},
"y18n": {
"version": "5.0.8",
- "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
- "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==",
"dev": true
},
"yargs": {
"version": "17.1.1",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.1.1.tgz",
- "integrity": "sha512-c2k48R0PwKIqKhPMWjeiF6y2xY/gPMUlro0sgxqXpbOIohWiLNXWslsootttv7E1e73QPAMQSg5FeySbVcpsPQ==",
"dev": true,
"requires": {
"cliui": "^7.0.2",
@@ -60152,8 +59299,7 @@
}
},
"lodash": {
- "version": "4.17.21",
- "dev": true
+ "version": "4.17.21"
},
"lodash._reinterpolate": {
"version": "3.0.0",
@@ -61201,8 +60347,6 @@
},
"openurl": {
"version": "1.1.1",
- "resolved": "https://registry.npmjs.org/openurl/-/openurl-1.1.1.tgz",
- "integrity": "sha512-d/gTkTb1i1GKz5k3XE3XFV/PxQ1k45zDqGP2OA7YhgsaLoqm6qRvARAZOFer1fcXritWlGBRCu/UgeS4HAnXAA==",
"dev": true
},
"optionator": {
@@ -61714,9 +60858,7 @@
}
},
"pngjs": {
- "version": "3.4.0",
- "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-3.4.0.tgz",
- "integrity": "sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w=="
+ "version": "3.4.0"
},
"posix-character-classes": {
"version": "0.1.1",
@@ -61789,9 +60931,7 @@
"dev": true
},
"preact": {
- "version": "10.4.1",
- "resolved": "https://registry.npmjs.org/preact/-/preact-10.4.1.tgz",
- "integrity": "sha512-WKrRpCSwL2t3tpOOGhf2WfTpcmbpxaWtDbdJdKdjd0aEiTkvOmS4NBkG6kzlaAHI9AkQ3iVqbFWM3Ei7mZ4o1Q=="
+ "version": "10.4.1"
},
"prelude-ls": {
"version": "1.2.1",
@@ -61910,8 +61050,6 @@
},
"qrcode": {
"version": "1.4.4",
- "resolved": "https://registry.npmjs.org/qrcode/-/qrcode-1.4.4.tgz",
- "integrity": "sha512-oLzEC5+NKFou9P0bMj5+v6Z40evexeE29Z9cummZXZ9QXyMr3lphkURzxjXgPJC5azpxcshoDWV1xE46z+/c3Q==",
"requires": {
"buffer": "^5.4.3",
"buffer-alloc": "^1.2.0",
@@ -61923,14 +61061,10 @@
},
"dependencies": {
"ansi-regex": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz",
- "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g=="
+ "version": "4.1.1"
},
"cliui": {
"version": "5.0.0",
- "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz",
- "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==",
"requires": {
"string-width": "^3.1.0",
"strip-ansi": "^5.2.0",
@@ -61938,27 +61072,19 @@
}
},
"emoji-regex": {
- "version": "7.0.3",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
- "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA=="
+ "version": "7.0.3"
},
"find-up": {
"version": "3.0.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
- "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
"requires": {
"locate-path": "^3.0.0"
}
},
"is-fullwidth-code-point": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
- "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w=="
+ "version": "2.0.0"
},
"locate-path": {
"version": "3.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
- "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
"requires": {
"p-locate": "^3.0.0",
"path-exists": "^3.0.0"
@@ -61966,29 +61092,21 @@
},
"p-limit": {
"version": "2.3.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
- "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
"requires": {
"p-try": "^2.0.0"
}
},
"p-locate": {
"version": "3.0.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
- "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
"requires": {
"p-limit": "^2.0.0"
}
},
"path-exists": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
- "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ=="
+ "version": "3.0.0"
},
"string-width": {
"version": "3.1.0",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
- "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
"requires": {
"emoji-regex": "^7.0.1",
"is-fullwidth-code-point": "^2.0.0",
@@ -61997,16 +61115,12 @@
},
"strip-ansi": {
"version": "5.2.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
- "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
"requires": {
"ansi-regex": "^4.1.0"
}
},
"wrap-ansi": {
"version": "5.1.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz",
- "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==",
"requires": {
"ansi-styles": "^3.2.0",
"string-width": "^3.0.0",
@@ -62015,8 +61129,6 @@
},
"yargs": {
"version": "13.3.2",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz",
- "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==",
"requires": {
"cliui": "^5.0.0",
"find-up": "^3.0.0",
@@ -62032,8 +61144,6 @@
},
"yargs-parser": {
"version": "13.1.2",
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz",
- "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==",
"requires": {
"camelcase": "^5.0.0",
"decamelize": "^1.2.0"
@@ -62227,6 +61337,11 @@
"version": "2.0.0",
"dev": true
},
+ "regenerator-runtime": {
+ "version": "0.13.9",
+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz",
+ "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA=="
+ },
"regex-not": {
"version": "1.0.2",
"dev": true,
@@ -62614,8 +61729,6 @@
},
"requires-port": {
"version": "1.0.0",
- "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz",
- "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==",
"dev": true
},
"resolve": {
@@ -62729,6 +61842,32 @@
"estree-walker": "^0.6.1"
}
},
+ "rpc-websockets": {
+ "version": "7.5.0",
+ "resolved": "https://registry.npmjs.org/rpc-websockets/-/rpc-websockets-7.5.0.tgz",
+ "integrity": "sha512-9tIRi1uZGy7YmDjErf1Ax3wtqdSSLIlnmL5OtOzgd5eqPKbsPpwDP5whUDO2LQay3Xp0CcHlcNSGzacNRluBaQ==",
+ "requires": {
+ "@babel/runtime": "^7.17.2",
+ "bufferutil": "^4.0.1",
+ "eventemitter3": "^4.0.7",
+ "utf-8-validate": "^5.0.2",
+ "uuid": "^8.3.2",
+ "ws": "^8.5.0"
+ },
+ "dependencies": {
+ "uuid": {
+ "version": "8.3.2",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz",
+ "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg=="
+ },
+ "ws": {
+ "version": "8.9.0",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-8.9.0.tgz",
+ "integrity": "sha512-Ja7nszREasGaYUYCI2k4lCKIRTt+y7XuqVoHR44YpI49TtryyqbqvDMn5eqfW7e6HzTukDRIsXqzVHScqRcafg==",
+ "requires": {}
+ }
+ }
+ },
"rsvp": {
"version": "4.8.5",
"dev": true
@@ -63730,6 +62869,11 @@
"version": "3.1.1",
"dev": true
},
+ "superstruct": {
+ "version": "0.14.2",
+ "resolved": "https://registry.npmjs.org/superstruct/-/superstruct-0.14.2.tgz",
+ "integrity": "sha512-nPewA6m9mR3d6k7WkZ8N8zpTWfenFH3q9pA2PkuiZxINr9DKB2+40wEQf0ixn8VaGuJ78AB6iWOtStI+/4FKZQ=="
+ },
"supports-color": {
"version": "5.5.0",
"requires": {
@@ -64048,6 +63192,11 @@
"version": "0.0.1",
"dev": true
},
+ "text-encoding-utf-8": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/text-encoding-utf-8/-/text-encoding-utf-8-1.0.2.tgz",
+ "integrity": "sha512-8bw4MY9WjdsD2aMtO0OzOCY3pXGYNx2d2FfHRVUKkiCPDWjKuOlhLVASS+pD7VkLTVjW268LYJHwsnPFlBpbAg=="
+ },
"text-extensions": {
"version": "1.9.0",
"dev": true
@@ -64061,8 +63210,7 @@
"dev": true
},
"through": {
- "version": "2.3.8",
- "dev": true
+ "version": "2.3.8"
},
"through2": {
"version": "3.0.2",
@@ -64141,9 +63289,7 @@
}
},
"toggle-selection": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/toggle-selection/-/toggle-selection-1.0.6.tgz",
- "integrity": "sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ=="
+ "version": "1.0.6"
},
"toidentifier": {
"version": "1.0.1"
@@ -65090,7 +64236,6 @@
"utf-8-validate": {
"version": "5.0.9",
"optional": true,
- "peer": true,
"requires": {
"node-gyp-build": "^4.3.0"
}
diff --git a/package.json b/package.json
index 668700317..a28251719 100644
--- a/package.json
+++ b/package.json
@@ -10,20 +10,17 @@
"services/*"
],
"scripts": {
- "clean": "npm exec --workspaces -- npx rimraf node_modules && npx rimraf node_modules && npm i",
+ "clean": "npm exec --workspaces -- npx rimraf node_modules && npx rimraf node_modules",
"deploy": "scripts/cdk/deploy -d infrastructure/cdk",
- "dev": "scripts/local/dev -m \"$npm_config_mock\" -s \"$npm_config_speculos\"",
+ "dev": "scripts/local/dev -f \"$npm_config_fork\" -m \"$npm_config_mock\" -n \"$npm_config_network\" -s \"$npm_config_speculos\" -t \"$npm_config_tunnel\"",
"dev:ethereum": "scripts/ethereum/dev -f \"$npm_config_fork\"",
"dev:landing": "scripts/local/dev -a \"landing\" -m \"$npm_config_mock\"",
"lint": "eslint --ext .vue,.ts ./ --fix",
"test": "echo \"Error: no test specified\" && exit 1",
+ "test:ethereum": "scripts/ethereum/test -f \"$npm_config_fork\"",
+ "test:crawler": "scripts/crawler/test -f \"$npm_config_fork\" -n \"$npm_config_network\"",
"test:push": "scripts/actions/test -w push",
- "release": "release-it",
- "deploy:sample": "npm run deploy:sample --workspace @casimir/evm",
- "test:contracts": "npm run test:contracts --workspace @casimir/evm",
- "task:accounts": "npm run task:accounts --workspace @casimir/evm",
- "task:compile": "npm run task:compile --workspace @casimir/evm",
- "task:clean": "npm run task:clean --workspace @casimir/evm"
+ "release": "release-it"
},
"repository": {
"type": "git",
diff --git a/scripts/crawler/test b/scripts/crawler/test
new file mode 100755
index 000000000..6ab972553
--- /dev/null
+++ b/scripts/crawler/test
@@ -0,0 +1,82 @@
+#!/bin/bash
+# Test Casimir crawler with various network options
+#
+# Example:
+#
+# scripts/crawler/test -f -n
+#
+# Further information:
+# See https://hardhat.org/hardhat-network/docs/overview
+#
+
+# Set RPC URL bases
+ethereum_mainnet=https://eth-mainnet.g.alchemy.com/v2
+ethereum_testnet=https://eth-testnet.g.alchemy.com/v2
+
+# Get variables from root .env
+export $(xargs < .env)
+
+# Set default profile
+profile="consensus-networks-dev"
+
+if [ ${PROFILE+x} ]; then
+ echo "PROFILE is set to '$PROFILE'"
+ profile=$PROFILE
+else
+ export PROFILE="$profile"
+ echo "PROFILE is not set, using default profile '$PROFILE'"
+fi
+
+# Get args
+while getopts :f:n: flag
+do
+ case "${flag}" in
+ f) fork=${OPTARG};;
+ n) network=${OPTARG};;
+ esac
+done
+
+# Default to mainnet if fork is set vaguely
+if [ "$fork" = true ]; then
+ fork=mainnet
+fi
+
+# Default to mainnet if network is set vaguely
+if [ "$network" = true ]; then
+ network=mainnet
+fi
+
+commands=("npm run test --workspace @casimir/crawler")
+
+chains="ethereum"
+
+# Loop over comma-separated string of chains
+IFS=',' read -r -a chain_list <<< "$chains"
+
+for chain in "${chain_list[@]}"
+do
+ # Expose RPC URL directly if network is set to mainnet or testnet
+ if [ -n "$network" ]; then
+ # Get the RPC API key from AWS
+ rpc_secret_id=consensus-networks-$chain-$network
+ rpc_key=$(aws secretsmanager get-secret-value \
+ --secret-id $rpc_secret_id \
+ --query SecretString \
+ --output text \
+ --profile $profile)
+
+ CHAIN=$(echo $chain | tr '[:lower:]' '[:upper:]')
+ rpc_base=${chain}_${network}
+ export "PUBLIC_${CHAIN}_RPC"="${!rpc_base}/$rpc_key"
+ else
+ # Pass fork or network to chain-specific script
+ commands+=("npm run dev:$chain --fork=$fork")
+ fi
+done
+
+for command in "${commands[@]}"
+do
+ $command &
+done
+
+wait && pkill -P $$
\ No newline at end of file
diff --git a/scripts/ethereum/dev b/scripts/ethereum/dev
old mode 100755
new mode 100644
index b1e620555..7572d9030
--- a/scripts/ethereum/dev
+++ b/scripts/ethereum/dev
@@ -3,7 +3,7 @@
#
# Example:
#
-# scripts/ethereum/dev -f
+# scripts/ethereum/dev -f -n
#
# Further information:
# See https://hardhat.org/hardhat-network/docs/overview
@@ -24,43 +24,46 @@ else
fi
# Get args
-while getopts f: flag
+while getopts :f: flag
do
case "${flag}" in
f) fork=${OPTARG};;
+ n) network=${OPTARG};;
esac
done
-# Secret ID is just the name or ARN
-ledger_seed_secret_id=consensus-networks-ledger-seed
-echo "🤫 Getting $ledger_seed_secret_id for $profile"
+# Default to mainnet if fork is set vaguely
+if [ "$fork" = true ]; then
+ fork=mainnet
+fi
-# Get the secret from AWS
-ledger_seed=$(aws secretsmanager get-secret-value \
---secret-id $ledger_seed_secret_id \
+# Get the bip39 seed from AWS
+seed_secret_id=consensus-networks-bip39-seed
+seed=$(aws secretsmanager get-secret-value \
+--secret-id $seed_secret_id \
--query SecretString \
--output text \
--profile $profile)
-export LEDGER_SEED="$ledger_seed"
-
-if [ -z "$fork" ]; then
- echo "⛓ Running default localnode"
- npm run dev:localnode --workspace @casimir/evm
-else
- # Secret ID is just the name or ARN
- alchemy_secret_id=consensus-networks-alchemy-$fork
- echo "🤫 Getting $alchemy_secret_id for $profile"
+# Set the shared bip39 seed
+export BIP39_SEED="$seed"
+echo "Your mnemonic is $BIP39_SEED"
- # Get the secret from AWS
- alchemy_key=$(aws secretsmanager get-secret-value \
- --secret-id $alchemy_secret_id \
+if [ -n "$fork" ]; then
+ # Get the RPC API key from AWS
+ rpc_secret_id=consensus-networks-ethereum-$fork
+ rpc_key=$(aws secretsmanager get-secret-value \
+ --secret-id $rpc_secret_id \
--query SecretString \
--output text \
--profile $profile)
- echo "⛓ Running $fork fork localnode"
- npm run dev:localnode --workspace @casimir/evm -- --fork https://eth-$fork.alchemyapi.io/v2/$alchemy_key
+ echo "⛓ Setting up ethereum chain with $fork fork"
+ export ETHEREUM_FORK_RPC="https://eth-$fork.g.alchemy.com/v2/$rpc_key"
+else
+ echo "⛓ Setting up ethereum chain without fork"
fi
+npm run dev:node --workspace @casimir/ethereum
+
diff --git a/scripts/ethereum/test b/scripts/ethereum/test
new file mode 100755
index 000000000..703a95d66
--- /dev/null
+++ b/scripts/ethereum/test
@@ -0,0 +1,70 @@
+#!/bin/bash
+# Test Ethereum contracts with Hardhat
+#
+# Example:
+#
+# scripts/ethereum/test -f
+#
+# Further information:
+# See https://hardhat.org/hardhat-network/docs/overview
+#
+
+# Set RPC URL bases
+ethereum_mainnet=https://eth-mainnet.g.alchemy.com/v2
+ethereum_testnet=https://eth-testnet.g.alchemy.com/v2
+
+# Get variables from root .env
+export $(xargs < .env)
+
+# Set default profile
+profile="consensus-networks-dev"
+
+if [ ${PROFILE+x} ]; then
+ echo "PROFILE is set to '$PROFILE'"
+ profile=$PROFILE
+else
+ export PROFILE="$profile"
+ echo "PROFILE is not set, using default profile '$PROFILE'"
+fi
+
+# Get args
+while getopts :f: flag
+do
+ case "${flag}" in
+ f) fork=${OPTARG};;
+ esac
+done
+
+# Default to mainnet if fork is set vaguely
+if [ "$fork" = true ]; then
+ fork=mainnet
+fi
+
+# Get the bip39 seed from AWS
+seed_secret_id=consensus-networks-bip39-seed
+seed=$(aws secretsmanager get-secret-value \
+--secret-id $seed_secret_id \
+--query SecretString \
+--output text \
+--profile $profile)
+
+# Set the shared bip39 seed
+export BIP39_SEED="$seed"
+echo "Your mnemonic is $BIP39_SEED"
+
+if [ -n "$fork" ]; then
+ # Get the RPC API key from AWS
+ rpc_secret_id=consensus-networks-ethereum-$fork
+ rpc_key=$(aws secretsmanager get-secret-value \
+ --secret-id $rpc_secret_id \
+ --query SecretString \
+ --output text \
+ --profile $profile)
+
+ echo "⛓ Testing ethereum contracts with $fork fork"
+ export ETHEREUM_FORK_RPC="https://eth-$fork.g.alchemy.com/v2/$rpc_key"
+else
+ echo "⛓ Testing ethereum contracts without fork"
+fi
+
+npm run test:contracts --workspace @casimir/ethereum
\ No newline at end of file
diff --git a/scripts/ledger/compile b/scripts/ledger/compile
index fa6d85aa2..0498b4366 100755
--- a/scripts/ledger/compile
+++ b/scripts/ledger/compile
@@ -29,7 +29,7 @@ echo "🔨 Building $app app for ledger"
cd $resource_path/app-$app
docker pull ghcr.io/ledgerhq/ledger-app-builder/ledger-app-builder
docker tag ghcr.io/ledgerhq/ledger-app-builder/ledger-app-builder ledger-app-builder
-docker run --rm -v "$pwd:/app" ledger-app-builder sh -c "make clean && make && exit"
+docker run --rm -v "$(pwd):/app" ledger-app-builder sh -c "make clean && make && exit"
# Copy app to speculos apps folder
echo "📲 Copying $app app to speculos apps folder"
diff --git a/scripts/ledger/emulate b/scripts/ledger/emulate
index 0967563dc..7c605c676 100755
--- a/scripts/ledger/emulate
+++ b/scripts/ledger/emulate
@@ -56,7 +56,6 @@ cd $resource_path/speculos
# Secret ID is just the name or ARN
ledger_seed_secret_id=consensus-networks-ledger-seed
-echo "🤫 Getting $ledger_seed_secret_id for $profile"
# Get the secret from AWS
ledger_seed=$(aws secretsmanager get-secret-value \
diff --git a/scripts/local/dev b/scripts/local/dev
index a8c729473..7273dcced 100755
--- a/scripts/local/dev
+++ b/scripts/local/dev
@@ -1,5 +1,5 @@
#!/bin/bash
-# Run an application dev server
+# Run a Casimir dev server
#
# Example:
#
@@ -11,30 +11,98 @@
# Configure and expose variables
source scripts/aws/configure
+
+# Set RPC URL bases
+ethereum_mainnet=https://eth-mainnet.g.alchemy.com/v2
+ethereum_testnet=https://eth-testnet.g.alchemy.com/v2
+
+# Set the stage
export PUBLIC_STAGE=${STAGE}
+# Secret ID is just the name or ARN
+seed_secret_id=consensus-networks-bip39-seed
+
+# Get the secret from AWS
+seed=$(aws secretsmanager get-secret-value \
+--secret-id $seed_secret_id \
+--query SecretString \
+--output text \
+--profile $profile)
+
+# Set the shared bip39 seed
+export BIP39_SEED="$seed"
+
# Get args
-while getopts :a:m:s: flag
+while getopts :a:f:m:n:s:t: flag
do
case "${flag}" in
a) app=${OPTARG};;
+ f) fork=${OPTARG};;
m) mock=${OPTARG};;
+ n) network=${OPTARG};;
s) speculos=${OPTARG};;
+ t) tunnel=${OPTARG};;
esac
done
+# Default to mainnet if fork is set vaguely
+if [ "$fork" = true ]; then
+ fork=mainnet
+fi
+
+# Default to mainnet if network is set vaguely
+if [ "$network" = true ]; then
+ network=mainnet
+fi
+
+commands=()
+
if [ "$app" == "landing" ]; then
services="users"
else
# Default app
app="web"
+ chains="ethereum"
services=""
+
+ # Loop over comma-separated string of chains
+ IFS=',' read -r -a chain_list <<< "$chains"
+
+ for chain in "${chain_list[@]}"
+ do
+ # Expose RPC URL directly if network is set to mainnet or testnet
+ if [ -n "$network" ]; then
+ # Get the RPC API key from AWS
+ rpc_secret_id=consensus-networks-$chain-$network
+ rpc_key=$(aws secretsmanager get-secret-value \
+ --secret-id $rpc_secret_id \
+ --query SecretString \
+ --output text \
+ --profile $profile)
+
+ CHAIN=$(echo $chain | tr '[:lower:]' '[:upper:]')
+ rpc_base=${chain}_${network}
+ export "PUBLIC_${CHAIN}_RPC"="${!rpc_base}/$rpc_key"
+ else
+ # Pass fork or network to chain-specific script
+ commands+=("npm run dev:$chain --fork=$fork")
+ fi
+ done
+
+ # Set project-wide contracts for local (default) chain
+ if [ -z "$network" ]; then
+ export PUBLIC_SSV_ADDRESS="0x967Ada0ed736FC6916dABe7f0193BAb811C74f50"
+
+ # Tunnel local (default) chain networks if specified
+ if [ -n "$tunnel" ]; then
+ export LOCAL_TUNNEL="$tunnel"
+ fi
+ fi
fi
-commands=("npm run dev --workspace @casimir/$app")
+commands+=("npm run dev --workspace @casimir/$app")
if [ -n "$mock" ]; then
-
# Loop over comma-separated string of services
IFS=',' read -r -a service_list <<< "$services"
port=3999
diff --git a/services/crawler/src/index.ts b/services/crawler/src/index.ts
index 77a715215..047b73d55 100644
--- a/services/crawler/src/index.ts
+++ b/services/crawler/src/index.ts
@@ -1,21 +1,23 @@
-import { EventTableColumn } from '@casimir/data'
-import {IotexNetworkType, IotexService, newIotexService} from './providers/Iotex'
-import { EthereumService, newEthereumService } from './providers/Ethereum'
+import { EventTableSchema } from '@casimir/data'
+import {IotexNetworkType, IotexService, IotexServiceOptions, newIotexService} from './providers/Iotex'
+import {EthereumService, EthereumServiceOptions, newEthereumService} from './providers/Ethereum'
import { queryAthena, uploadToS3 } from '@casimir/helpers'
+import * as fs from "fs";
export enum Chain {
- Iotex = 'iotex',
- Ethereum = 'ethereum'
+ Ethereum = 'ethereum',
+ Iotex = 'iotex'
}
export enum Provider {
Casimir = 'casimir',
}
-export const defaultEventBucket = 'casimir-etl-event-bucket-dev'
+export const eventOutputBucket = 'casimir-etl-event-bucket-dev'
export interface CrawlerConfig {
chain: Chain
+ options?: IotexServiceOptions | EthereumServiceOptions
output?: `s3://${string}`
verbose?: boolean
}
@@ -30,7 +32,11 @@ class Crawler {
async setup(): Promise {
if (this.config.chain === Chain.Ethereum) {
- this.service = await newEthereumService({ url: 'http://localhost:8545'})
+ try {
+ this.service = await newEthereumService({ url: this.config?.options?.url || process.env.PUBLIC_ETHEREUM_RPC_URL || 'http://localhost:8545' })
+ } catch (err) {
+ throw new Error(`failed to setup ethereum service: ${err}`)
+ }
return
}
@@ -41,7 +47,7 @@ class Crawler {
throw new Error('InvalidChain: chain is not supported')
}
- async getLastProcessedEvent(): Promise {
+ async getLastProcessedEvent(): Promise {
const event = await queryAthena(`SELECT * FROM "casimir_etl_database_dev"."casimir_etl_event_table_dev" where chain = '${this.config.chain}' ORDER BY height DESC limit 1`)
if (event !== null && event.length === 1) {
@@ -53,7 +59,6 @@ class Crawler {
async start(): Promise {
if (this.service instanceof EthereumService) {
const lastEvent = await this.getLastProcessedEvent()
-
const last = lastEvent !== null ? lastEvent.height : 0
const start = parseInt(last.toString()) + 1
@@ -63,16 +68,16 @@ class Crawler {
const current = await this.service.getCurrentBlock()
- for (let i = start as number; i < current.number; i++) {
+ for (let i = start; i < current.number; i++) {
const { events, blockHash } = await this.service.getEvents(i)
- const ndjson = events.map((e: EventTableColumn) => JSON.stringify(e)).join('\n')
+ const ndjson = events.map((e: Partial) => JSON.stringify(e)).join('\n')
await uploadToS3({
- bucket: defaultEventBucket,
+ bucket: eventOutputBucket,
key: `${blockHash}-event.json`,
data: ndjson
}).finally(() => {
if (this.config.verbose) {
- console.log(`uploaded ${events.length} event at height ${i}`)
+ console.log(`uploaded events for block ${blockHash}`)
}
})
}
@@ -94,15 +99,15 @@ class Crawler {
for (let i = start; i < currentHeight; i++) {
const { hash, events } = await this.service.getEvents(i)
- const ndjson = events.map((e: EventTableColumn) => JSON.stringify(e)).join('\n')
+ const ndjson = events.map((e: Partial) => JSON.stringify(e)).join('\n')
await uploadToS3({
- bucket: defaultEventBucket,
+ bucket: eventOutputBucket,
key: `${hash}-event.json`,
data: ndjson
}).finally(() => {
if (this.config.verbose) {
- console.log(`uploaded ${events.length} event at height ${i}`)
+ console.log(`uploaded events for block ${hash}`)
}
})
}
@@ -113,9 +118,10 @@ class Crawler {
export async function crawler (config: CrawlerConfig): Promise {
const chainCrawler = new Crawler({
- chain: config.chain,
- output: config?.output ?? `s3://${defaultEventBucket}`,
- verbose: config?.verbose ?? false
+ chain: config.chain,
+ options: config.options,
+ output: config?.output ?? `s3://${eventOutputBucket}`,
+ verbose: config?.verbose ?? false
})
await chainCrawler.setup()
diff --git a/services/crawler/src/providers/Ethereum.ts b/services/crawler/src/providers/Ethereum.ts
index ba835e7ac..fe6d4f135 100644
--- a/services/crawler/src/providers/Ethereum.ts
+++ b/services/crawler/src/providers/Ethereum.ts
@@ -1,10 +1,18 @@
import { ethers } from 'ethers'
-import { EventTableColumn } from '@casimir/data'
-import {Chain, Provider} from '../index'
+import { EventTableSchema } from '@casimir/data'
+import { Chain, Provider } from '../index'
+
+const ContractsOfInterest = {
+ BeaconDepositContract: {
+ hash: '0x00000000219ab540356cBB839Cbe05303d7705Fa',
+ abi: ['event DepositEvent (bytes pubkey, bytes withdrawal_credentials, bytes amount, bytes signature, bytes index)']
+ }
+}
export type EthereumServiceOptions = {
url: string
network?: string
+ chainId?: number
}
export class EthereumService {
@@ -15,48 +23,100 @@ export class EthereumService {
this.chain = Chain.Ethereum
this.network = opt.network || 'mainnet'
this.provider = new ethers.providers.JsonRpcProvider({
- url: opt.url || 'http://localhost:8545',
+ url: opt.url,
+ })
+ }
+
+ parseLog(log: ethers.providers.Log): Record {
+ const abi = ContractsOfInterest[log.address as keyof typeof ContractsOfInterest].abi
+ const contractInterface = new ethers.utils.Interface(abi)
+ const parsedLog = contractInterface.parseLog(log)
+ const args = parsedLog.args.slice(-1 * parsedLog.eventFragment.inputs.length)
+
+ const input: Record = {}
+
+ parsedLog.eventFragment.inputs.forEach((key, index) => {
+ input[key.name] = args[index]
})
+ return input
}
- async getEvents(height: number): Promise<{ blockHash: string, events: EventTableColumn[] }> {
- const events: EventTableColumn[] = []
+ async getEvents(height: number): Promise<{ blockHash: string, events: Partial[] }> {
+ const events: Partial[] = []
const block = await this.provider.getBlockWithTransactions(height)
- events.push({
+ const blockEvent = {
chain: this.chain,
network: this.network,
provider: Provider.Casimir,
type: 'block',
+ height: block.number,
+ block: block.hash,
created_at: new Date(block.timestamp * 1000).toISOString().replace('T', ' ').replace('Z', ''),
address: block.miner,
- height: block.number,
- to_address: '',
- candidate: '',
- duration: 0,
- candidate_list: [],
- amount: '0',
- auto_stake: false,
- })
+ gasUsed: block.gasUsed.toNumber(),
+ gasLimit: block.gasLimit.toNumber(),
+ baseFee: block.baseFeePerGas?.toNumber(),
+ // burntFee: parseFloat(ethers.utils.formatEther(ethers.BigNumber.from(block.gasUsed).mul(block.baseFeePerGas as ethers.BigNumber))),
+ }
- if (block.transactions.length > 0) {
- for (const tx of block.transactions) {
- events.push({
- chain: this.chain,
- network: this.network,
- provider: Provider.Casimir,
- type: tx.type === 0 ? 'transfer' : 'contract',
- created_at: new Date(block.timestamp * 1000).toISOString(),
- address: tx.from,
- height: block.number,
- to_address: tx.to || '',
- candidate: '',
- candidate_list: [],
- duration: 0,
- amount: tx.value.toString(),
- auto_stake: false,
- })
+ events.push(blockEvent)
+
+ if (block.transactions.length === 0) {
+ return { blockHash: block.hash, events }
+ }
+
+ for await (const tx of block.transactions) {
+ const txEvent = {
+ chain: this.chain,
+ network: this.network,
+ provider: Provider.Casimir,
+ type: 'transaction',
+ block: block.hash,
+ transaction: tx.hash,
+ created_at: new Date(block.timestamp * 1000).toISOString().replace('T', ' ').replace('Z', ''),
+ address: tx.from,
+ to_address: tx.to,
+ height: block.number,
+ amount: ethers.utils.formatEther(tx.value.toString()),
+ gasUsed: block.gasUsed.toNumber(),
+ gasLimit: block.gasLimit.toNumber(),
+ baseFee: block.baseFeePerGas?.toNumber(),
+ // burntFee: parseFloat(ethers.utils.formatEther(ethers.BigNumber.from(block.gasUsed).mul(block.baseFeePerGas as ethers.BigNumber))),
+ }
+
+ events.push(txEvent)
+
+ const receipts = await this.provider.getTransactionReceipt(tx.hash)
+
+ if (receipts.logs.length === 0) {
+ continue
+ }
+
+ for (const log of receipts.logs) {
+ if (log.address in ContractsOfInterest) {
+ const parsedLog = this.parseLog(log)
+ const deposit = {
+ chain: this.chain,
+ network: this.network,
+ provider: Provider.Casimir,
+ type: 'deposit',
+ block: block.hash,
+ transaction: log.transactionHash,
+ created_at: new Date(block.timestamp * 1000).toISOString().replace('T', ' ').replace('Z', ''),
+ address: log.address,
+ height: block.number,
+ to_address: tx.to || '',
+ amount: parsedLog.amount,
+ gasUsed: block.gasUsed.toNumber(),
+ gasLimit: block.gasLimit.toNumber(),
+ baseFee: block.baseFeePerGas?.toNumber(),
+ // burntFee: parseFloat(ethers.utils.formatEther(ethers.BigNumber.from(block.gasUsed).mul(block.baseFeePerGas as ethers.BigNumber))),
+ }
+ events.push(deposit)
+ continue
+ }
}
}
return {
@@ -69,17 +129,13 @@ export class EthereumService {
return await this.provider.getBlock(height)
}
- async getBlock(num: number): Promise {
+ async getBlockWithTx(num: number): Promise {
return await this.provider.getBlockWithTransactions(num)
}
- async getTransaction(tx: string): Promise {
- return await this.provider.getTransaction(tx)
- }
-
on(event:string, cb: (block: ethers.providers.Block) => void): void {
this.provider.on('block', async (blockNumber: number) => {
- const block = await this.getBlock(blockNumber)
+ const block = await this.getBlockWithTx(blockNumber)
cb(block)
})
}
diff --git a/services/crawler/src/providers/Iotex.ts b/services/crawler/src/providers/Iotex.ts
index cb0f96979..f085f69aa 100644
--- a/services/crawler/src/providers/Iotex.ts
+++ b/services/crawler/src/providers/Iotex.ts
@@ -7,7 +7,7 @@ import {
IStreamBlocksResponse,
} from 'iotex-antenna/lib/rpc-method/types'
import { Opts } from 'iotex-antenna/lib/antenna'
-import { EventTableColumn } from '@casimir/data'
+import { EventTableSchema } from '@casimir/data'
import {Chain, Provider} from '../index'
export enum IotexNetworkType {
@@ -34,7 +34,7 @@ export enum IotexActionType {
StakeChangeCandidate = 'stakeChangeCandidate',
}
-export type IotexOptions = Opts & {
+export type IotexServiceOptions = Opts & {
url: string
network: IotexNetworkType
}
@@ -44,7 +44,7 @@ export class IotexService {
network: IotexNetworkType
provider: Antenna
chainId: number
- constructor (opt: IotexOptions) {
+ constructor (opt: IotexServiceOptions) {
this.chain = Chain.Iotex
this.network = opt.network || IotexNetworkType.Mainnet
this.chainId = IotexNetworkType.Mainnet ? 4689 : 4690
@@ -63,14 +63,68 @@ export class IotexService {
return type as IotexActionType
}
- async getEvents(height: number): Promise<{ hash: string, events: EventTableColumn[]}> {
- const events: EventTableColumn[] = []
+ async getBlocks(start: number, count: number): Promise {
+ if (start < 0 || count < 0) {
+ throw new Error('start and count must be greater than 0')
+ }
+
+ if (start === 0) {
+ start = 1
+ }
+
+ if (count === 0) {
+ count = 100
+ }
+
+ const blocks = await this.provider.iotx.getBlockMetas({ byIndex: { start: start, count: count } })
+
+ return blocks
+ }
+
+ async getBlockActions (index: number, count: number): Promise {
+ const actions = await this.provider.iotx.getActions({
+ byIndex: {
+ start: index,
+ count: count
+ }
+ })
+ return actions.actionInfo
+ }
+
+ async getCurrentBlock(): Promise {
+ const { chainMeta } = await this.provider.iotx.getChainMeta({
+ includePendingActions: false
+ })
+
+ const block = await this.provider.iotx.getBlockMetas({ byIndex: { start: parseInt(chainMeta.height), count: 1 } })
+ return block
+ }
+
+ async readableBlockStream (): Promise> {
+ const stream = await this.provider.iotx.streamBlocks({
+ start: 1
+ })
+ return stream
+ }
+
+ on(event: string, callback: (data: IStreamBlocksResponse) => void): void {
+ this.provider.iotx.streamBlocks({
+ start: 1
+ }).on('data', (data: IStreamBlocksResponse) => {
+ callback(data)
+ })
+ }
+
+ async getEvents(height: number): Promise<{ hash: string, events: Partial[]}> {
+ const events: Partial[] = []
const block = await this.provider.iotx.getBlockMetas({byIndex: {start: height, count: 1}})
const blockMeta = block.blkMetas[0]
- events.push({
+ const blockEvent = {
+ block: blockMeta.hash,
+ transaction: "",
chain: this.chain,
network: this.network,
provider: Provider.Casimir,
@@ -79,12 +133,14 @@ export class IotexService {
address: blockMeta.producerAddress,
height: blockMeta.height,
to_address: '',
- candidate: '',
+ validator: '',
duration: 0,
- candidate_list: [],
- amount: '0',
- auto_stake: false,
- })
+ validator_list: [],
+ amount: 0,
+ auto_stake: false
+ }
+
+
const numOfActions = block.blkMetas[0].numActions
@@ -98,7 +154,7 @@ export class IotexService {
const actionType = this.deduceActionType(action)
if (actionType === null) return
- const actionEvent: Partial = {
+ const actionEvent: Partial = {
chain: this.chain,
network: this.network,
provider: Provider.Casimir,
@@ -107,70 +163,70 @@ export class IotexService {
address: blockMeta.producerAddress,
height: blockMeta.height,
to_address: '',
- candidate: '',
+ validator: '',
duration: 0,
- candidate_list: [],
+ validator_list: [],
amount: '0',
auto_stake: false,
}
if (actionType === IotexActionType.transfer && actionCore.transfer) {
- actionEvent.amount = actionCore.transfer.amount
+ actionEvent.amount = parseInt(actionCore.transfer.amount).toString()
actionEvent.to_address = actionCore.transfer.recipient
- events.push(actionEvent as EventTableColumn)
+ events.push(actionEvent as EventTableSchema)
}
if (actionType === IotexActionType.stakeCreate && actionCore.stakeCreate) {
actionEvent.amount = actionCore.stakeCreate.stakedAmount
- actionEvent.candidate = actionCore.stakeCreate.candidateName
+ actionEvent.validator = actionCore.stakeCreate.candidateName
actionEvent.auto_stake = actionCore.stakeCreate.autoStake
actionEvent.duration = actionCore.stakeCreate.stakedDuration
- events.push(actionEvent as EventTableColumn)
+ events.push(actionEvent as EventTableSchema)
}
if (actionType === IotexActionType.stakeAddDeposit && actionCore.stakeAddDeposit) {
actionEvent.amount = actionCore.stakeAddDeposit.amount
- events.push(actionEvent as EventTableColumn)
+ events.push(actionEvent as EventTableSchema)
}
if (actionType === IotexActionType.execution && actionCore.execution) {
actionEvent.amount = actionCore.execution.amount
- events.push(actionEvent as EventTableColumn)
+ events.push(actionEvent as EventTableSchema)
}
if (actionType === IotexActionType.putPollResult && actionCore.putPollResult) {
if (actionCore.putPollResult.candidates) {
- actionEvent.candidate_list = actionCore.putPollResult.candidates.candidates.map(c => c.address)
+ actionEvent.validator_list = actionCore.putPollResult.candidates.candidates.map(c => c.address)
}
if (actionCore.putPollResult.height) {
actionEvent.height = typeof actionCore.putPollResult.height === 'string' ? parseInt(actionCore.putPollResult.height) : actionCore.putPollResult.height
}
- events.push(actionEvent as EventTableColumn)
+ events.push(actionEvent as EventTableSchema)
}
if (actionType === IotexActionType.StakeChangeCandidate && actionCore.stakeChangeCandidate) {
- actionEvent.candidate = actionCore.stakeChangeCandidate.candidateName
- events.push(actionEvent as EventTableColumn)
+ actionEvent.validator = actionCore.stakeChangeCandidate.candidateName
+ events.push(actionEvent as EventTableSchema)
}
if (actionType === IotexActionType.stakeRestake && actionCore.stakeRestake) {
actionEvent.duration = actionCore.stakeRestake.stakedDuration
actionEvent.auto_stake = actionCore.stakeRestake.autoStake
- events.push(actionEvent as EventTableColumn)
+ events.push(actionEvent as EventTableSchema)
}
if (actionType === IotexActionType.candidateRegister && actionCore.candidateRegister) {
actionEvent.amount = actionCore.candidateRegister.stakedAmount
actionEvent.duration = actionCore.candidateRegister.stakedDuration
actionEvent.auto_stake = actionCore.candidateRegister.autoStake
- actionEvent.candidate = actionCore.candidateRegister.candidate.name
- events.push(actionEvent as EventTableColumn)
+ actionEvent.validator = actionCore.candidateRegister.candidate.name
+ events.push(actionEvent as EventTableSchema)
}
if (actionType === IotexActionType.candidateUpdate && actionCore.candidateUpdate) {
- actionEvent.candidate = actionCore.candidateUpdate.name
- events.push(actionEvent as EventTableColumn)
+ actionEvent.validator = actionCore.candidateUpdate.name
+ events.push(actionEvent as EventTableSchema)
}
if (actionType === IotexActionType.claimFromRewardingFund && actionCore.claimFromRewardingFund) {
@@ -179,7 +235,7 @@ export class IotexService {
if (actionType === IotexActionType.depositToRewardingFund && actionCore.depositToRewardingFund) {
actionEvent.amount = actionCore.depositToRewardingFund.amount
- events.push(actionEvent as EventTableColumn)
+ events.push(actionEvent as EventTableSchema)
}
// if (actionType === IotexActionType.grantReward) {}
@@ -187,66 +243,14 @@ export class IotexService {
// if (actionType === IotexActionType.stakeWithdraw) {}
return actionEvent
})
- events.push(...blockActions as EventTableColumn[])
+ events.push(...blockActions as EventTableSchema[])
}
return {
hash: blockMeta.hash,
events
}
}
-
- async getBlocks(start: number, count: number): Promise {
- if (start < 0 || count < 0) {
- throw new Error('start and count must be greater than 0')
- }
-
- if (start === 0) {
- start = 1
- }
-
- if (count === 0) {
- count = 100
- }
-
- const blocks = await this.provider.iotx.getBlockMetas({ byIndex: { start: start, count: count } })
-
- return blocks
- }
-
- async getBlockActions (index: number, count: number): Promise {
- const actions = await this.provider.iotx.getActions({
- byIndex: {
- start: index,
- count: count
- }
- })
- return actions.actionInfo
- }
-
- async getCurrentBlock(): Promise {
- const { chainMeta } = await this.provider.iotx.getChainMeta({
- includePendingActions: false
- })
-
- const block = await this.provider.iotx.getBlockMetas({ byIndex: { start: parseInt(chainMeta.height), count: 1 } })
- return block
- }
-
- async readableBlockStream (): Promise> {
- const stream = await this.provider.iotx.streamBlocks({
- start: 1
- })
- return stream
- }
-
- on(event: string, callback: (data: IStreamBlocksResponse) => void): void {
- this.provider.iotx.streamBlocks({
- start: 1
- }).on('data', (data: IStreamBlocksResponse) => {
- callback(data)
- })
- }
}
-export function newIotexService (opt: IotexOptions): IotexService {
+export function newIotexService (opt: IotexServiceOptions): IotexService {
return new IotexService(opt)
}
\ No newline at end of file
diff --git a/services/crawler/test/crawler.test.ts b/services/crawler/test/crawler.test.ts
index 1f4c106c5..e2decfc17 100644
--- a/services/crawler/test/crawler.test.ts
+++ b/services/crawler/test/crawler.test.ts
@@ -1,30 +1,30 @@
import { crawler } from '../src/index'
import { Chain } from '../src/index'
-test('init crawler for iotex', async () => {
- const iotex = await crawler({
- chain: Chain.Iotex,
+jest.setTimeout(1000000)
+
+test('init crawler for ethereum', async () => {
+ const eth = await crawler({
+ chain: Chain.Ethereum,
verbose: true
})
- await iotex.start()
- expect(iotex.service).not.toBe(null)
+ await eth.start()
+ expect(eth.service).not.toBe(null)
})
-jest.setTimeout(1000000)
-
-// test('init crawler for ethereum', async () => {
-// const eth = await crawler({
-// chain: Chain.Ethereum,
+// test('init crawler for iotex', async () => {
+// const iotex = await crawler({
+// chain: Chain.Iotex,
// verbose: true
// })
-// await eth.start()
-// expect(eth.service).not.toBe(null)
+// await iotex.start()
+// expect(iotex.service).not.toBe(null)
// })
// test('query athena thru service', async () => {
// const supercrawler = await crawler({
// chain: Chain.Ethereum,
-// verbose: true
+// verbose: true,
// })
//
// const lastBlock = await supercrawler.getLastProcessedEvent()