diff --git a/.github/workflows/beta-publish.yml b/.github/workflows/beta-publish.yml index 9f92bd2..12edf22 100644 --- a/.github/workflows/beta-publish.yml +++ b/.github/workflows/beta-publish.yml @@ -3,7 +3,7 @@ name: Beta NPM Packages Publishing on: pull_request: types: [closed] - branches: ["develop", "v2"] + branches: ['develop', 'v2', 'solana'] workflow_dispatch: jobs: @@ -22,8 +22,8 @@ jobs: uses: actions/setup-node@v3 with: node-version: 18.13.0 - registry-url: "https://registry.npmjs.org" - cache: "yarn" + registry-url: 'https://registry.npmjs.org' + cache: 'yarn' - name: Cache Yarn dependencies uses: actions/cache@v3 diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index e086a60..846519e 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -2,7 +2,7 @@ name: Huma Monorepo CI on: pull_request: types: [opened, synchronize] - branches: ["develop", "master", "v2"] + branches: ['develop', 'master', 'v2'] jobs: ci: @@ -16,7 +16,7 @@ jobs: uses: actions/setup-node@v3 with: node-version: 18.13.0 - cache: "yarn" + cache: 'yarn' - name: Cache Yarn dependencies uses: actions/cache@v3 diff --git a/packages/examples/package.json b/packages/examples/package.json index 8bb9d26..17e692a 100644 --- a/packages/examples/package.json +++ b/packages/examples/package.json @@ -20,13 +20,37 @@ "startLoadRWR": "ts-node src/loadReceivablesOfOwnerWithMetadata.ts", "startGetPoolBalanceCreditV2": "ts-node src/getPoolBalanceAndCreditV2.ts", "startBurnReceivableV2": "ts-node src/burnReceivableV2.ts", + "solanaCreateReceivable": "ts-node src/solana/createReceivable.ts", + "solanaDeclarePayment": "ts-node src/solana/declarePayment.ts", + "solanaSubmitReceivable": "ts-node src/solana/submitReceivable.ts", + "solanaFetchReceivable": "ts-node src/solana/fetchReceivable.ts", + "solanaFetchBorrowerDetails": "ts-node src/solana/fetchBorrowerDetails.ts", + "solanaDrawdown": "ts-node src/solana/drawdown.ts", + "solanaPayback": "ts-node src/solana/payback.ts", "lint-staged": "lint-staged" }, "dependencies": { "dotenv": "^16.0.3", "ethers": "^5.7.2", - "ts-node": "^10.9.1" + "ts-node": "^10.9.1", + "@coral-xyz/anchor": "^0.30.1", + "@solana/spl-token": "^0.4.8", + "@solana/web3.js": "^1.95.3", + "lodash": "^4.17.21", + "@solana/wallet-adapter-base": "^0.9.23", + "@solana/wallet-adapter-react": "^0.15.35", + "@solana/wallet-adapter-react-ui": "^0.9.35", + "@solana/wallet-adapter-wallets": "^0.19.32", + "@coral-xyz/borsh": "^0.30.1", + "@mui/icons-material": "^5.3.0", + "@mui/material": "^5.0.6", + "@mui/styles": "^5.0.2", + "@mui/system": "^5.0.6", + "@mui/x-date-pickers": "^5.0.7", + "@emotion/react": "^11.5.0", + "@emotion/styled": "^11.3.0" }, + "peerDependencies": {}, "lint-staged": { "src/**/*.{js,ts,tsx,css,sass,less,graphql}": [] } diff --git a/packages/examples/src/solana/createReceivable.ts b/packages/examples/src/solana/createReceivable.ts new file mode 100644 index 0000000..541b68a --- /dev/null +++ b/packages/examples/src/solana/createReceivable.ts @@ -0,0 +1,66 @@ +import { Connection, Keypair, sendAndConfirmTransaction } from '@solana/web3.js' +import { + AnchorProvider, + BN, + setProvider, + Wallet, + web3, +} from '@coral-xyz/anchor' +import { POOL_NAME, SolanaChainEnum } from '@huma-finance/shared' +import { + HumaSolanaContext, + HumaSolanaReceivableHelper, +} from '@huma-finance/sdk' + +require('dotenv').config() + +async function main() { + const TEST_PRIVATE_KEY = process.env.TEST_PRIVATE_KEY + const connection = new Connection( + 'https://api.devnet.solana.com', + 'confirmed', + ) + + const keypair = web3.Keypair.fromSecretKey( + Buffer.from(JSON.parse(TEST_PRIVATE_KEY)), + ) + const wallet = new Wallet(keypair) + setProvider(new AnchorProvider(connection, wallet)) + + const solanaHumaContext = new HumaSolanaContext({ + publicKey: wallet.publicKey, + connection: connection, + chainId: SolanaChainEnum.SolanaDevnet, + poolName: POOL_NAME.HumaCreditLine, + }) + + const humaReceivableHelper = new HumaSolanaReceivableHelper({ + solanaContext: solanaHumaContext, + }) + + const newAsset = Keypair.generate() + + const oneWeekFromNow = Math.floor(Date.now() / 1000) + 7 * 24 * 60 * 60 + const tx = await humaReceivableHelper.buildCreateReceivableTransaction( + newAsset, + { + name: 'Test Receivable', + uri: 'https://test.com', + currencyCode: '840', + receivableAmount: new BN(100), + maturityDate: new BN(oneWeekFromNow), + referenceId: 'test-reference-id2', + }, + ) + + console.log(tx) + + const txResult = await sendAndConfirmTransaction(connection, tx, [ + newAsset, + keypair, + ]) + + console.log(txResult) +} + +main() diff --git a/packages/examples/src/solana/declarePayment.ts b/packages/examples/src/solana/declarePayment.ts new file mode 100644 index 0000000..16d3226 --- /dev/null +++ b/packages/examples/src/solana/declarePayment.ts @@ -0,0 +1,52 @@ +import { Connection, Keypair, sendAndConfirmTransaction } from '@solana/web3.js' +import { + AnchorProvider, + BN, + setProvider, + Wallet, + web3, +} from '@coral-xyz/anchor' +import { POOL_NAME, SolanaChainEnum } from '@huma-finance/shared' +import { + HumaSolanaContext, + HumaSolanaReceivableHelper, +} from '@huma-finance/sdk' + +require('dotenv').config() + +async function main() { + const TEST_PRIVATE_KEY = process.env.TEST_PRIVATE_KEY + const connection = new Connection( + 'https://api.devnet.solana.com', + 'confirmed', + ) + + const keypair = web3.Keypair.fromSecretKey( + Buffer.from(JSON.parse(TEST_PRIVATE_KEY)), + ) + const wallet = new Wallet(keypair) + setProvider(new AnchorProvider(connection, wallet)) + + const solanaHumaContext = new HumaSolanaContext({ + publicKey: wallet.publicKey, + connection: connection, + chainId: SolanaChainEnum.SolanaDevnet, + poolName: POOL_NAME.HumaCreditLine, + }) + + const humaReceivableHelper = new HumaSolanaReceivableHelper({ + solanaContext: solanaHumaContext, + }) + + const tx = await humaReceivableHelper.buildDeclarePaymentTransaction( + 'test-reference-id', + new BN(1), + ) + + console.log(tx) + + const txResult = await sendAndConfirmTransaction(connection, tx, [keypair]) + console.log(txResult) +} + +main() diff --git a/packages/examples/src/solana/drawdown.ts b/packages/examples/src/solana/drawdown.ts new file mode 100644 index 0000000..63e55aa --- /dev/null +++ b/packages/examples/src/solana/drawdown.ts @@ -0,0 +1,46 @@ +import { Connection, Keypair, sendAndConfirmTransaction } from '@solana/web3.js' +import { + AnchorProvider, + BN, + setProvider, + Wallet, + web3, +} from '@coral-xyz/anchor' +import { POOL_NAME, SolanaChainEnum } from '@huma-finance/shared' +import { HumaSolanaContext, HumaSolanaProgramHelper } from '@huma-finance/sdk' + +require('dotenv').config() + +async function main() { + const TEST_PRIVATE_KEY = process.env.TEST_PRIVATE_KEY + const connection = new Connection( + 'https://api.devnet.solana.com', + 'confirmed', + ) + + const keypair = web3.Keypair.fromSecretKey( + Buffer.from(JSON.parse(TEST_PRIVATE_KEY)), + ) + const wallet = new Wallet(keypair) + setProvider(new AnchorProvider(connection, wallet)) + + const solanaHumaContext = new HumaSolanaContext({ + publicKey: wallet.publicKey, + connection: connection, + chainId: SolanaChainEnum.SolanaDevnet, + poolName: POOL_NAME.HumaCreditLine, + }) + + const humaSolanaProgramHelper = new HumaSolanaProgramHelper({ + solanaContext: solanaHumaContext, + }) + + const tx = await humaSolanaProgramHelper.buildDrawdownTransaction(new BN(10)) + + console.log(tx) + + const txResult = await sendAndConfirmTransaction(connection, tx, [keypair]) + console.log(txResult) +} + +main() diff --git a/packages/examples/src/solana/fetchBorrowerDetails.ts b/packages/examples/src/solana/fetchBorrowerDetails.ts new file mode 100644 index 0000000..370b1e5 --- /dev/null +++ b/packages/examples/src/solana/fetchBorrowerDetails.ts @@ -0,0 +1,43 @@ +import { Connection, Keypair, sendAndConfirmTransaction } from '@solana/web3.js' +import { + AnchorProvider, + BN, + setProvider, + Wallet, + web3, +} from '@coral-xyz/anchor' +import { POOL_NAME, SolanaChainEnum } from '@huma-finance/shared' +import { HumaSolanaContext, HumaSolanaProgramHelper } from '@huma-finance/sdk' + +require('dotenv').config() + +async function main() { + const TEST_PRIVATE_KEY = process.env.TEST_PRIVATE_KEY + const connection = new Connection( + 'https://api.devnet.solana.com', + 'confirmed', + ) + + const keypair = web3.Keypair.fromSecretKey( + Buffer.from(JSON.parse(TEST_PRIVATE_KEY)), + ) + const wallet = new Wallet(keypair) + setProvider(new AnchorProvider(connection, wallet)) + + const solanaHumaContext = new HumaSolanaContext({ + publicKey: wallet.publicKey, + connection: connection, + chainId: SolanaChainEnum.SolanaDevnet, + poolName: POOL_NAME.HumaCreditLine, + }) + + const humaSolanaProgramHelper = new HumaSolanaProgramHelper({ + solanaContext: solanaHumaContext, + }) + + const data = await humaSolanaProgramHelper.getAccountInfo() + + console.log(data) +} + +main() diff --git a/packages/examples/src/solana/fetchReceivable.ts b/packages/examples/src/solana/fetchReceivable.ts new file mode 100644 index 0000000..eb05037 --- /dev/null +++ b/packages/examples/src/solana/fetchReceivable.ts @@ -0,0 +1,40 @@ +import { Connection } from '@solana/web3.js' +import { AnchorProvider, setProvider, Wallet, web3 } from '@coral-xyz/anchor' +import { POOL_NAME, SolanaChainEnum } from '@huma-finance/shared' +import { + HumaSolanaContext, + HumaSolanaReceivableHelper, +} from '@huma-finance/sdk' + +require('dotenv').config() + +async function main() { + const TEST_PRIVATE_KEY = process.env.TEST_PRIVATE_KEY + const connection = new Connection( + 'https://api.devnet.solana.com', + 'confirmed', + ) + + const keypair = web3.Keypair.fromSecretKey( + Buffer.from(JSON.parse(TEST_PRIVATE_KEY)), + ) + const wallet = new Wallet(keypair) + setProvider(new AnchorProvider(connection, wallet)) + + const solanaHumaContext = new HumaSolanaContext({ + publicKey: wallet.publicKey, + connection: connection, + chainId: SolanaChainEnum.SolanaDevnet, + poolName: POOL_NAME.HumaCreditLine, + }) + + const humaReceivableHelper = new HumaSolanaReceivableHelper({ + solanaContext: solanaHumaContext, + }) + + const res = await humaReceivableHelper.getReceivableInfo('test-reference-id') + + console.log(res) +} + +main() diff --git a/packages/examples/src/solana/payback.ts b/packages/examples/src/solana/payback.ts new file mode 100644 index 0000000..cc0ba66 --- /dev/null +++ b/packages/examples/src/solana/payback.ts @@ -0,0 +1,49 @@ +import { Connection, Keypair, sendAndConfirmTransaction } from '@solana/web3.js' +import { + AnchorProvider, + BN, + setProvider, + Wallet, + web3, +} from '@coral-xyz/anchor' +import { POOL_NAME, SolanaChainEnum } from '@huma-finance/shared' +import { HumaSolanaContext, HumaSolanaProgramHelper } from '@huma-finance/sdk' + +require('dotenv').config() + +async function main() { + const TEST_PRIVATE_KEY = process.env.TEST_PRIVATE_KEY + const connection = new Connection( + 'https://api.devnet.solana.com', + 'confirmed', + ) + + const keypair = web3.Keypair.fromSecretKey( + Buffer.from(JSON.parse(TEST_PRIVATE_KEY)), + ) + const wallet = new Wallet(keypair) + setProvider(new AnchorProvider(connection, wallet)) + + const solanaHumaContext = new HumaSolanaContext({ + publicKey: wallet.publicKey, + connection: connection, + chainId: SolanaChainEnum.SolanaDevnet, + poolName: POOL_NAME.HumaCreditLine, + }) + + const humaSolanaProgramHelper = new HumaSolanaProgramHelper({ + solanaContext: solanaHumaContext, + }) + + const tx = await humaSolanaProgramHelper.buildPaymentTransaction( + new BN(5), + true /* principalOnly */, + ) + + console.log(tx) + + const txResult = await sendAndConfirmTransaction(connection, tx, [keypair]) + console.log(txResult) +} + +main() diff --git a/packages/examples/src/solana/submitReceivable.ts b/packages/examples/src/solana/submitReceivable.ts new file mode 100644 index 0000000..4b2e657 --- /dev/null +++ b/packages/examples/src/solana/submitReceivable.ts @@ -0,0 +1,49 @@ +import { Connection, Keypair, sendAndConfirmTransaction } from '@solana/web3.js' +import { + AnchorProvider, + BN, + setProvider, + Wallet, + web3, +} from '@coral-xyz/anchor' +import { POOL_NAME, SolanaChainEnum } from '@huma-finance/shared' +import { HumaSolanaContext, HumaSolanaProgramHelper } from '@huma-finance/sdk' + +require('dotenv').config() + +async function main() { + const TEST_PRIVATE_KEY = process.env.TEST_PRIVATE_KEY + const connection = new Connection( + 'https://api.devnet.solana.com', + 'confirmed', + ) + + const keypair = web3.Keypair.fromSecretKey( + Buffer.from(JSON.parse(TEST_PRIVATE_KEY)), + ) + const wallet = new Wallet(keypair) + setProvider(new AnchorProvider(connection, wallet)) + + const solanaHumaContext = new HumaSolanaContext({ + publicKey: wallet.publicKey, + connection: connection, + chainId: SolanaChainEnum.SolanaDevnet, + poolName: POOL_NAME.HumaCreditLine, + }) + + const humaSolanaProgramHelper = new HumaSolanaProgramHelper({ + solanaContext: solanaHumaContext, + }) + + const tx = + await humaSolanaProgramHelper.buildSubmitReceivableTransaction( + 'test-reference-id2', + ) + + console.log(tx) + + const txResult = await sendAndConfirmTransaction(connection, tx, [keypair]) + console.log(txResult) +} + +main() diff --git a/packages/huma-sdk/API.md b/packages/huma-sdk/API.md index 2fd0dab..0c4213d 100644 --- a/packages/huma-sdk/API.md +++ b/packages/huma-sdk/API.md @@ -77,6 +77,8 @@ Note that this does not approve a creditline in Huma's pools and an approve call ## Typedefs
+
IrysConstructorArgs : Object
+

Represents the constructor arguments for the Irys service.

ApprovalResult : Object

Object representing the response to the underwriting approval request.

EAPayload : Object
@@ -95,33 +97,33 @@ Note that this does not approve a creditline in Huma's pools and an approve call **Kind**: global namespace * [ARWeaveService](#ARWeaveService) : object - * [.getBundlrNetworkConfig(chainId)](#ARWeaveService.getBundlrNetworkConfig) ⇒ BundlrConfig - * [.getBundlrInstance(config, privateKey)](#ARWeaveService.getBundlrInstance) ⇒ - * [.prefundBundlr(config, privateKey, amount)](#ARWeaveService.prefundBundlr) ⇒ Promise.<FundResponse> + * [.getIrysNetworkConfig(chainId)](#ARWeaveService.getIrysNetworkConfig) ⇒ [IrysConstructorArgs](#IrysConstructorArgs) + * [.getIrysInstance(config, privateKey)](#ARWeaveService.getIrysInstance) ⇒ + * [.prefundIrys(config, privateKey, amount)](#ARWeaveService.prefundIrys) ⇒ Promise.<FundResponse> * [.storeData(config, privateKey, data, tags, [lazyFund])](#ARWeaveService.storeData) ⇒ Promise.<UploadResponse> * [.queryForMetadata(chainId, sender, referenceId)](#ARWeaveService.queryForMetadata) ⇒ Promise.<any> * [.fetchMetadataFromUrl(url)](#ARWeaveService.fetchMetadataFromUrl) ⇒ Promise.<JSON> * [.getURIFromARWeaveId(arweaveId)](#ARWeaveService.getURIFromARWeaveId) ⇒ string * [.BundlrConfig](#ARWeaveService.BundlrConfig) : Object - + -### ARWeaveService.getBundlrNetworkConfig(chainId) ⇒ BundlrConfig -

Get the configuration for Bundlr network given a chain ID

+### ARWeaveService.getIrysNetworkConfig(chainId) ⇒ [IrysConstructorArgs](#IrysConstructorArgs) +

Get the configuration for the Irys network given a chain ID

**Kind**: static method of [ARWeaveService](#ARWeaveService) -**Returns**: BundlrConfig -
## Typedefs @@ -55,6 +65,10 @@ To be used when re-enabling autopay and other pool actions that require allowanc

Credit line pool payment props

CreditLinePaymentPropsV2 : Object

Credit line pool payment props V2

+
SolanaBorrowProps : Object
+

Lend pool supply props

+
SolanaPaymentProps : Object
+

Lend pool supply props

SupplyFirstLossCoverProps : Object

Supply first loss cover props

InvoiceFactoringBorrowProps : Object
@@ -65,6 +79,12 @@ To be used when re-enabling autopay and other pool actions that require allowanc

Lend pool add redemption props

CancelRedemptionPropsV2 : Object

Lend pool cancel redemption request props

+
SolanaLendAddRedemptionProps : Object
+

Lend pool supply props

+
SolanaLendCancelRedemptionProps : Object
+

Lend pool supply props

+
SolanaLendSupplyProps : Object
+

Lend pool supply props

LendSupplyProps : Object

Lend pool supply props

LendSupplyPropsV2 : Object
@@ -115,6 +135,18 @@ To be used when re-enabling autopay and other pool actions that require allowanc

Receivable backed credit line pool borrow widget props V2

ReceivableBackedCreditLinePaymentWidgetPropsV2 : Object

Receivable backed credit line pool payment widget props V2

+
SolanaWidgetProps : Object
+

Object representing the props passed to Solana widgets

+
SolanaLendSupplyWidgetProps : Object
+

Lend pool supply widget props for Solana pools

+
SolanaLendAddRedemptionWidgetProps : Object
+

Lend pool supply widget props for Solana pools

+
SolanaLendCancelRedemptionWidgetProps : Object
+

Lend pool supply widget props for Solana pools

+
SolanaBorrowWidgetProps : Object
+

Lend pool supply widget props for Solana pools

+
SolanaPaymentWidgetProps : Object
+

Lend pool supply widget props for Solana pools

@@ -334,6 +366,61 @@ To be used when re-enabling autopay and other pool actions that require allowanc | --- | --- | --- | | props | [ReceivableBackedCreditLinePaymentWidgetPropsV2](#ReceivableBackedCreditLinePaymentWidgetPropsV2) |

The receivable backed credit line pool payment widget props V2.

| + + +## SolanaLendSupplyWidget(props) +

Lend pool supply widget for Solana pools

+ +**Kind**: global function + +| Param | Type | Description | +| --- | --- | --- | +| props | [SolanaLendSupplyWidgetProps](#SolanaLendSupplyWidgetProps) |

Widget props

| + + + +## SolanaLendAddRedemptionWidget(props) +

Lend pool supply widget for Solana pools

+ +**Kind**: global function + +| Param | Type | Description | +| --- | --- | --- | +| props | [SolanaLendAddRedemptionWidgetProps](#SolanaLendAddRedemptionWidgetProps) |

Widget props

| + + + +## SolanaLendCancelRedemptionWidget(props) +

Lend pool supply widget for Solana pools

+ +**Kind**: global function + +| Param | Type | Description | +| --- | --- | --- | +| props | [SolanaLendCancelRedemptionWidgetProps](#SolanaLendCancelRedemptionWidgetProps) |

Widget props

| + + + +## SolanaBorrowWidget(props) +

Lend pool supply widget for Solana pools

+ +**Kind**: global function + +| Param | Type | Description | +| --- | --- | --- | +| props | [SolanaBorrowWidgetProps](#SolanaBorrowWidgetProps) |

Widget props

| + + + +## SolanaPaymentWidget(props) +

Lend pool supply widget for Solana pools

+ +**Kind**: global function + +| Param | Type | Description | +| --- | --- | --- | +| props | [SolanaPaymentWidgetProps](#SolanaPaymentWidgetProps) |

Widget props

| + ## CreditLineApproveProps : Object @@ -423,6 +510,33 @@ To be used when re-enabling autopay and other pool actions that require allowanc | handleClose | function |

Function to notify to close the widget modal when user clicks the 'x' close button.

| | handleSuccess | function |

Optional function to notify that the credit line pool payment action is successful.

| + + +## SolanaBorrowProps : Object +

Lend pool supply props

+ +**Kind**: global typedef +**Properties** + +| Name | Type | Description | +| --- | --- | --- | +| poolInfo | SolanaPoolInfo |

The metadata of the pool.

| +| poolState | SolanaPoolState |

The current state config of the pool. * @property {function():void} handleClose Function to notify to close the widget modal when user clicks the 'x' close button.

| +| handleSuccess | function |

Optional function to notify that the lending pool supply action is successful.

| + + + +## SolanaPaymentProps : Object +

Lend pool supply props

+ +**Kind**: global typedef +**Properties** + +| Name | Type | Description | +| --- | --- | --- | +| poolInfo | SolanaPoolInfo |

The metadata of the pool.

| +| handleSuccess | function |

Optional function to notify that the lending pool supply action is successful.

| + ## SupplyFirstLossCoverProps : Object @@ -498,6 +612,51 @@ To be used when re-enabling autopay and other pool actions that require allowanc | handleClose | function |

Function to notify to close the widget modal when user clicks the 'x' close button.

| | handleSuccess | function |

Optional function to notify that the lending pool withdraw action is successful.

| + + +## SolanaLendAddRedemptionProps : Object +

Lend pool supply props

+ +**Kind**: global typedef +**Properties** + +| Name | Type | Description | +| --- | --- | --- | +| poolInfo | SolanaPoolInfo |

The metadata of the pool.

| +| poolState | SolanaPoolState |

The current state config of the pool. * @property {function():void} handleClose Function to notify to close the widget modal when user clicks the 'x' close button.

| +| tranche | POOL\_NTrancheTypeAME |

The tranche type.

| +| handleSuccess | function |

Optional function to notify that the lending pool supply action is successful.

| + + + +## SolanaLendCancelRedemptionProps : Object +

Lend pool supply props

+ +**Kind**: global typedef +**Properties** + +| Name | Type | Description | +| --- | --- | --- | +| poolInfo | SolanaPoolInfo |

The metadata of the pool.

| +| poolState | SolanaPoolState |

The current state config of the pool. * @property {function():void} handleClose Function to notify to close the widget modal when user clicks the 'x' close button.

| +| handleSuccess | function |

Optional function to notify that the lending pool supply action is successful.

| + + + +## SolanaLendSupplyProps : Object +

Lend pool supply props

+ +**Kind**: global typedef +**Properties** + +| Name | Type | Description | +| --- | --- | --- | +| poolInfo | SolanaPoolInfo |

The metadata of the pool.

| +| poolState | SolanaPoolState |

The current state config of the pool.

| +| pointsTestnetExperience | boolean |

If the user is in the testnet experience.

| +| handleClose | function |

Function to notify to close the widget modal when user clicks the 'x' close button.

| +| handleSuccess | function |

Optional function to notify that the lending pool supply action is successful.

| + ## LendSupplyProps : Object @@ -836,3 +995,39 @@ To be used when re-enabling autopay and other pool actions that require allowanc | ReceivableBackedCreditLinePaymentPropsV2 | ReceivableBackedCreditLinePaymentPropsV2 |

Receivable backed credit line pool payment props V2.

| | WidgetProps | [WidgetProps](#WidgetProps) |

Widget general props.

| + + +## SolanaWidgetProps : Object +

Object representing the props passed to Solana widgets

+ +**Kind**: global typedef + + +## SolanaLendSupplyWidgetProps : Object +

Lend pool supply widget props for Solana pools

+ +**Kind**: global typedef + + +## SolanaLendAddRedemptionWidgetProps : Object +

Lend pool supply widget props for Solana pools

+ +**Kind**: global typedef + + +## SolanaLendCancelRedemptionWidgetProps : Object +

Lend pool supply widget props for Solana pools

+ +**Kind**: global typedef + + +## SolanaBorrowWidgetProps : Object +

Lend pool supply widget props for Solana pools

+ +**Kind**: global typedef + + +## SolanaPaymentWidgetProps : Object +

Lend pool supply widget props for Solana pools

+ +**Kind**: global typedef diff --git a/packages/huma-widget/package.json b/packages/huma-widget/package.json index fc07057..dda558d 100644 --- a/packages/huma-widget/package.json +++ b/packages/huma-widget/package.json @@ -21,8 +21,6 @@ "dependencies": { "@apollo/client": "^3.7.2", "@coinbase/wallet-sdk": "^3.5.3", - "@emotion/react": "^11.5.0", - "@emotion/styled": "^11.3.0", "@ethersproject/address": "^5.7.0", "@ethersproject/bignumber": "^5.6.0", "@ethersproject/bytes": "^5.7.0", @@ -78,7 +76,7 @@ "react-router-dom": "^5.3.0", "react-scripts": "5.0.1", "tslib": "^2.5.0", - "typescript": "^4.8.4", + "typescript": "^5.0.0", "utf8": "^3.0.0", "web-vitals": "^2.1.4", "yup": "^0.32.11" @@ -192,7 +190,19 @@ "react": ">=16.8.0", "react-dom": ">=16.8.0", "react-redux": ">=7.2.2", - "redux": ">=4.1.2" + "redux": ">=4.1.2", + "@coral-xyz/anchor": "^0.30.1", + "@solana/spl-token": "^0.4.8", + "@solana/web3.js": "^1.95.3", + "@solana/wallet-adapter-base": "^0.9.23", + "@solana/wallet-adapter-react": "^0.15.35", + "@mui/icons-material": "^5.3.0", + "@mui/material": "^5.0.6", + "@mui/styles": "^5.0.2", + "@mui/system": "^5.0.6", + "@mui/x-date-pickers": "^5.0.7", + "@emotion/react": "^11.5.0", + "@emotion/styled": "^11.3.0" }, "optionalDependencies": { "encoding": "^0.1.13" diff --git a/packages/huma-widget/src/components/CreditLine/paymentV2/1-ChooseAmount.tsx b/packages/huma-widget/src/components/CreditLine/paymentV2/1-ChooseAmount.tsx index d771e37..c74bb47 100644 --- a/packages/huma-widget/src/components/CreditLine/paymentV2/1-ChooseAmount.tsx +++ b/packages/huma-widget/src/components/CreditLine/paymentV2/1-ChooseAmount.tsx @@ -45,6 +45,7 @@ export function ChooseAmount({ ethers.utils.formatUnits(payoffAmountBN, decimals), ) + // TODO: Remove redundant useEffect useEffect(() => { setCurrentAmount(totalDueAmount) }, [totalDueAmount]) diff --git a/packages/huma-widget/src/components/CreditLine/solanaBorrow/1-ChooseAmount.tsx b/packages/huma-widget/src/components/CreditLine/solanaBorrow/1-ChooseAmount.tsx new file mode 100644 index 0000000..5cec577 --- /dev/null +++ b/packages/huma-widget/src/components/CreditLine/solanaBorrow/1-ChooseAmount.tsx @@ -0,0 +1,67 @@ +import { + formatNumber, + SolanaPoolInfo, + SolanaTokenUtils, +} from '@huma-finance/shared' +import { CreditConfigAccount } from '@huma-finance/web-shared' +import React, { useCallback, useMemo, useState } from 'react' + +import { useAppDispatch } from '../../../hooks/useRedux' +import { setBorrowInfo } from '../../../store/widgets.reducers' +import { WIDGET_STEP } from '../../../store/widgets.store' +import { InputAmountModal } from '../../InputAmountModal' + +type Props = { + poolInfo: SolanaPoolInfo + creditConfigAccount: CreditConfigAccount +} + +export function ChooseAmount({ + poolInfo, + creditConfigAccount, +}: Props): React.ReactElement { + const dispatch = useAppDispatch() + const { symbol, decimals } = poolInfo.underlyingMint + const [currentAmount, setCurrentAmount] = useState(0) + const creditAvailable = useMemo( + () => + SolanaTokenUtils.formatUnits( + creditConfigAccount.creditAvailable, + decimals, + ), + [creditConfigAccount.creditAvailable, decimals], + ) + + const handleChangeAmount = (newAmount: number) => { + setCurrentAmount(newAmount) + } + + const handleAction = useCallback(() => { + const borrowAmountBN = SolanaTokenUtils.parseUnits( + String(currentAmount), + decimals, + ) + dispatch( + setBorrowInfo({ + borrowAmount: currentAmount, + borrowAmountBN: JSON.parse(borrowAmountBN.toString()), + chargedFees: 0, + nextStep: WIDGET_STEP.Transfer, + }), + ) + }, [currentAmount, decimals, dispatch]) + + return ( + + ) +} diff --git a/packages/huma-widget/src/components/CreditLine/solanaBorrow/2-Transfer.tsx b/packages/huma-widget/src/components/CreditLine/solanaBorrow/2-Transfer.tsx new file mode 100644 index 0000000..1327784 --- /dev/null +++ b/packages/huma-widget/src/components/CreditLine/solanaBorrow/2-Transfer.tsx @@ -0,0 +1,159 @@ +import { + getCreditAccounts, + getSentinelAddress, + getTokenAccounts, + SolanaPoolInfo, + SolanaTokenUtils, +} from '@huma-finance/shared' +import React, { useCallback, useEffect, useState } from 'react' + +import { BN } from '@coral-xyz/anchor' +import { useHumaProgram } from '@huma-finance/web-shared' +import { + ASSOCIATED_TOKEN_PROGRAM_ID, + createApproveCheckedInstruction, + createAssociatedTokenAccountInstruction, + getAccount, + TOKEN_PROGRAM_ID, + TokenAccountNotFoundError, + TokenInvalidAccountOwnerError, +} from '@solana/spl-token' +import { useConnection, useWallet } from '@solana/wallet-adapter-react' +import { PublicKey, Transaction } from '@solana/web3.js' +import { useAppDispatch, useAppSelector } from '../../../hooks/useRedux' +import { setStep } from '../../../store/widgets.reducers' +import { selectWidgetState } from '../../../store/widgets.selectors' +import { WIDGET_STEP } from '../../../store/widgets.store' +import { SolanaTxSendModal } from '../../SolanaTxSendModal' + +type Props = { + poolInfo: SolanaPoolInfo +} + +export function Transfer({ poolInfo }: Props): React.ReactElement | null { + const dispatch = useAppDispatch() + const { wallet, publicKey } = useWallet() + const sentinel = getSentinelAddress(poolInfo.chainId) + const { connection } = useConnection() + const [transaction, setTransaction] = useState() + const program = useHumaProgram(poolInfo.chainId) + const { borrowAmountBN: borrowAmountBNJson } = + useAppSelector(selectWidgetState) + + const handleSuccess = useCallback(() => { + dispatch(setStep(WIDGET_STEP.Done)) + }, [dispatch]) + + useEffect(() => { + async function getTx() { + if (!wallet || !publicKey || !connection) { + return + } + + const { underlyingTokenATA } = getTokenAccounts(poolInfo, publicKey) + const tx = new Transaction() + + // Create user token account if it doesn't exist + let tokenAccount + try { + tokenAccount = await getAccount( + connection, + underlyingTokenATA, + undefined, + TOKEN_PROGRAM_ID, + ) + } catch (error: unknown) { + // TokenAccountNotFoundError can be possible if the associated address has already received some lamports, + // becoming a system account. Assuming program derived addressing is safe, this is the only case for the + // TokenInvalidAccountOwnerError in this code path. + if ( + error instanceof TokenAccountNotFoundError || + error instanceof TokenInvalidAccountOwnerError + ) { + // As this isn't atomic, it's possible others can create associated accounts meanwhile. + tx.add( + createAssociatedTokenAccountInstruction( + publicKey, + underlyingTokenATA, + publicKey, + new PublicKey(poolInfo.underlyingMint.address), + TOKEN_PROGRAM_ID, + ASSOCIATED_TOKEN_PROGRAM_ID, + ), + ) + } + } + + // Approve allowance to the sentinel if the account is new or delegated amount is not enough + const borrowAmountBN = new BN(borrowAmountBNJson?.toString() ?? '0') + if ( + !tokenAccount || + borrowAmountBN.gt(new BN(tokenAccount.delegatedAmount.toString())) || + tokenAccount.delegate?.toString() !== sentinel + ) { + tx.add( + createApproveCheckedInstruction( + underlyingTokenATA, + new PublicKey(poolInfo.underlyingMint.address), + new PublicKey(sentinel), // delegate + publicKey, // owner of the wallet + BigInt( + SolanaTokenUtils.parseUnits( + '100000000000', // 100 billion + poolInfo.underlyingMint.decimals, + ).toString(), + ), // amount + poolInfo.underlyingMint.decimals, + undefined, // multiSigners + TOKEN_PROGRAM_ID, + ), + ) + } + + const { creditConfigAccount, creditStateAccount } = getCreditAccounts( + poolInfo, + publicKey, + ) + // borrowAmountBNJson is stored as a raw number string in this flow + const programTx = await program.methods + .drawdown(borrowAmountBN) + .accountsPartial({ + borrower: publicKey, + humaConfig: poolInfo.humaConfig, + poolConfig: poolInfo.poolConfig, + poolState: poolInfo.poolState, + creditConfig: creditConfigAccount, + creditState: creditStateAccount, + poolAuthority: poolInfo.poolAuthority, + underlyingMint: poolInfo.underlyingMint.address, + poolUnderlyingToken: poolInfo.poolUnderlyingTokenAccount, + borrowerUnderlyingToken: underlyingTokenATA, + tokenProgram: TOKEN_PROGRAM_ID, + }) + .transaction() + tx.add(programTx) + + setTransaction(tx) + } + getTx() + }, [ + borrowAmountBNJson, + connection, + dispatch, + poolInfo, + poolInfo.underlyingMint.address, + poolInfo.underlyingMint.decimals, + program.methods, + publicKey, + sentinel, + wallet, + ]) + + return ( + + ) +} diff --git a/packages/huma-widget/src/components/CreditLine/solanaBorrow/3-Done.tsx b/packages/huma-widget/src/components/CreditLine/solanaBorrow/3-Done.tsx new file mode 100644 index 0000000..ad1c318 --- /dev/null +++ b/packages/huma-widget/src/components/CreditLine/solanaBorrow/3-Done.tsx @@ -0,0 +1,38 @@ +import { formatNumber, SolanaPoolInfo, timeUtil } from '@huma-finance/shared' +import React from 'react' + +import { SolanaPoolState } from '@huma-finance/web-shared' +import { useAppSelector } from '../../../hooks/useRedux' +import { selectWidgetState } from '../../../store/widgets.selectors' +import { SolanaTxDoneModal } from '../../SolanaTxDoneModal' + +type Props = { + poolInfo: SolanaPoolInfo + poolState: SolanaPoolState + handleAction: () => void +} + +export function Done({ + poolInfo, + poolState, + handleAction, +}: Props): React.ReactElement { + const { borrowAmount, solanaSignature } = useAppSelector(selectWidgetState) + const { symbol } = poolInfo.underlyingMint + const dueDate = timeUtil.timestampToLL(poolState.epochEndTime) + + const content = [ + `${formatNumber(borrowAmount)} ${symbol} is now in your wallet.`, + `Note: your first automatic payment will occur after ${dueDate}.`, + ] + + return ( + + ) +} diff --git a/packages/huma-widget/src/components/CreditLine/solanaBorrow/index.tsx b/packages/huma-widget/src/components/CreditLine/solanaBorrow/index.tsx new file mode 100644 index 0000000..2cb5fb0 --- /dev/null +++ b/packages/huma-widget/src/components/CreditLine/solanaBorrow/index.tsx @@ -0,0 +1,93 @@ +import { SolanaPoolInfo } from '@huma-finance/shared' +import { SolanaPoolState, useBorrowerAccounts } from '@huma-finance/web-shared' +import React, { useEffect } from 'react' +import { useDispatch } from 'react-redux' + +import { useAppSelector } from '../../../hooks/useRedux' +import { selectWidgetState } from '../../../store/widgets.selectors' +import { WidgetWrapper } from '../../WidgetWrapper' +import { WIDGET_STEP } from '../../../store/widgets.store' +import { setStep } from '../../../store/widgets.reducers' +import { ErrorModal } from '../../ErrorModal' +import { ChooseAmount } from './1-ChooseAmount' +import { Transfer } from './2-Transfer' +import { Done } from './3-Done' + +/** + * Lend pool supply props + * @typedef {Object} SolanaBorrowProps + * @property {SolanaPoolInfo} poolInfo The metadata of the pool. + * @property {SolanaPoolState} poolState The current state config of the pool. * @property {function():void} handleClose Function to notify to close the widget modal when user clicks the 'x' close button. + * @property {function():void|undefined} handleSuccess Optional function to notify that the lending pool supply action is successful. + */ +export interface SolanaBorrowProps { + poolInfo: SolanaPoolInfo + poolState: SolanaPoolState + handleClose: () => void + handleSuccess?: () => void +} + +export function SolanaBorrow({ + poolInfo, + poolState, + handleClose, + handleSuccess, +}: SolanaBorrowProps): React.ReactElement | null { + const title = 'Borrow' + const dispatch = useDispatch() + const { step, errorMessage } = useAppSelector(selectWidgetState) + const { creditConfigAccount } = useBorrowerAccounts( + poolInfo.chainId, + poolInfo.poolName, + ) + + useEffect(() => { + if (!step && creditConfigAccount) { + dispatch(setStep(WIDGET_STEP.ChooseAmount)) + } + }, [creditConfigAccount, dispatch, step]) + + if (!creditConfigAccount) { + return ( + + ) + } + + return ( + + {step === WIDGET_STEP.ChooseAmount && creditConfigAccount && ( + + )} + {step === WIDGET_STEP.Transfer && } + {step === WIDGET_STEP.Done && ( + + )} + {step === WIDGET_STEP.Error && ( + + )} + + ) +} diff --git a/packages/huma-widget/src/components/CreditLine/solanaPayment/1-ChooseAmount.tsx b/packages/huma-widget/src/components/CreditLine/solanaPayment/1-ChooseAmount.tsx new file mode 100644 index 0000000..dde62aa --- /dev/null +++ b/packages/huma-widget/src/components/CreditLine/solanaPayment/1-ChooseAmount.tsx @@ -0,0 +1,75 @@ +import { + formatNumber, + SolanaPoolInfo, + SolanaTokenUtils, +} from '@huma-finance/shared' +import { CreditStateAccount } from '@huma-finance/web-shared' +import React, { useCallback, useEffect, useMemo, useState } from 'react' + +import { useAppDispatch } from '../../../hooks/useRedux' +import { setPaymentAmount, setStep } from '../../../store/widgets.reducers' +import { WIDGET_STEP } from '../../../store/widgets.store' +import { InputAmountModal } from '../../InputAmountModal' + +type Props = { + poolInfo: SolanaPoolInfo + creditStateAccount: CreditStateAccount +} + +export function ChooseAmount({ + poolInfo, + creditStateAccount, +}: Props): React.ReactElement { + const dispatch = useAppDispatch() + const { symbol, decimals } = poolInfo.underlyingMint + const [currentAmount, setCurrentAmount] = useState(0) + const totalDueAmount = useMemo( + () => + Number( + SolanaTokenUtils.formatUnits( + creditStateAccount.creditRecord.totalDueAmount, + decimals, + ), + ), + [creditStateAccount.creditRecord.totalDueAmount, decimals], + ) + const payoffAmount = useMemo( + () => + Number( + SolanaTokenUtils.formatUnits( + creditStateAccount.creditRecord.payoffAmount, + decimals, + ), + ), + [creditStateAccount.creditRecord.payoffAmount, decimals], + ) + + useEffect(() => { + setCurrentAmount(totalDueAmount) + dispatch(setPaymentAmount({ paymentAmount: totalDueAmount })) + }, [dispatch, totalDueAmount]) + + const handleChangeAmount = (newAmount: number) => { + setCurrentAmount(newAmount) + dispatch(setPaymentAmount({ paymentAmount: newAmount })) + } + + const handleAction = useCallback(() => { + dispatch(setStep(WIDGET_STEP.Transfer)) + }, [dispatch]) + + return ( + + ) +} diff --git a/packages/huma-widget/src/components/CreditLine/solanaPayment/2-Transfer.tsx b/packages/huma-widget/src/components/CreditLine/solanaPayment/2-Transfer.tsx new file mode 100644 index 0000000..7668150 --- /dev/null +++ b/packages/huma-widget/src/components/CreditLine/solanaPayment/2-Transfer.tsx @@ -0,0 +1,92 @@ +import { + getCreditAccounts, + getTokenAccounts, + SolanaPoolInfo, + SolanaTokenUtils, +} from '@huma-finance/shared' +import React, { useCallback, useEffect, useState } from 'react' + +import { useHumaProgram } from '@huma-finance/web-shared' +import { TOKEN_PROGRAM_ID } from '@solana/spl-token' +import { useConnection, useWallet } from '@solana/wallet-adapter-react' +import { Transaction } from '@solana/web3.js' +import { useAppDispatch, useAppSelector } from '../../../hooks/useRedux' +import { setStep } from '../../../store/widgets.reducers' +import { selectWidgetState } from '../../../store/widgets.selectors' +import { WIDGET_STEP } from '../../../store/widgets.store' +import { SolanaTxSendModal } from '../../SolanaTxSendModal' + +type Props = { + poolInfo: SolanaPoolInfo +} + +export function Transfer({ poolInfo }: Props): React.ReactElement | null { + const dispatch = useAppDispatch() + const { wallet, publicKey } = useWallet() + const { connection } = useConnection() + const [transaction, setTransaction] = useState() + const program = useHumaProgram(poolInfo.chainId) + const { paymentAmount } = useAppSelector(selectWidgetState) + const { decimals } = poolInfo.underlyingMint + + const handleSuccess = useCallback(() => { + dispatch(setStep(WIDGET_STEP.Done)) + }, [dispatch]) + + useEffect(() => { + async function getTx() { + if (!wallet || !publicKey || !connection || !paymentAmount) { + return + } + + const { underlyingTokenATA } = getTokenAccounts(poolInfo, publicKey) + + const { creditConfigAccount, creditStateAccount } = getCreditAccounts( + poolInfo, + publicKey, + ) + const paymentAmountBN = SolanaTokenUtils.parseUnits( + paymentAmount.toString(), + decimals, + ) + const tx = await program.methods + .makePayment(paymentAmountBN) + .accountsPartial({ + signer: publicKey, + humaConfig: poolInfo.humaConfig, + poolConfig: poolInfo.poolConfig, + poolState: poolInfo.poolState, + creditConfig: creditConfigAccount, + creditState: creditStateAccount, + poolAuthority: poolInfo.poolAuthority, + underlyingMint: poolInfo.underlyingMint.address, + poolUnderlyingToken: poolInfo.poolUnderlyingTokenAccount, + borrowerUnderlyingToken: underlyingTokenATA, + tokenProgram: TOKEN_PROGRAM_ID, + }) + .transaction() + + setTransaction(tx) + } + getTx() + }, [ + connection, + decimals, + dispatch, + paymentAmount, + poolInfo, + poolInfo.underlyingMint.address, + poolInfo.underlyingMint.decimals, + program.methods, + publicKey, + wallet, + ]) + + return ( + + ) +} diff --git a/packages/huma-widget/src/components/CreditLine/solanaPayment/3-Done.tsx b/packages/huma-widget/src/components/CreditLine/solanaPayment/3-Done.tsx new file mode 100644 index 0000000..04e8200 --- /dev/null +++ b/packages/huma-widget/src/components/CreditLine/solanaPayment/3-Done.tsx @@ -0,0 +1,60 @@ +import { formatNumber, SolanaPoolInfo } from '@huma-finance/shared' +import React, { useEffect, useMemo, useState } from 'react' + +import { useConnection } from '@solana/wallet-adapter-react' +import { useAppSelector } from '../../../hooks/useRedux' +import { selectWidgetState } from '../../../store/widgets.selectors' +import { SolanaTxDoneModal } from '../../SolanaTxDoneModal' + +type Props = { + poolInfo: SolanaPoolInfo + handleAction: () => void +} + +export function Done({ poolInfo, handleAction }: Props): React.ReactElement { + const { solanaSignature } = useAppSelector(selectWidgetState) + const { symbol } = poolInfo.underlyingMint + const { connection } = useConnection() + const [tokensPaid, setTokensPaid] = useState(null) + + useEffect(() => { + const fetchTokensPaid = async () => { + if (!solanaSignature) { + return + } + + const txData = await connection.getTransaction(solanaSignature, { + maxSupportedTransactionVersion: 2, + }) + + const preTokenBalance = + txData?.meta?.preTokenBalances?.[0]?.uiTokenAmount?.uiAmount + const postTokenBalance = + txData?.meta?.postTokenBalances?.[0]?.uiTokenAmount?.uiAmount + + if (preTokenBalance && postTokenBalance) { + setTokensPaid(preTokenBalance - postTokenBalance) + } + } + + fetchTokensPaid() + }, [connection, solanaSignature]) + + const content = useMemo(() => { + if (tokensPaid !== null) { + return [`You successfully paid ${formatNumber(tokensPaid)} ${symbol}.`] + } + + return ['Your payment to the pool was successful'] + }, [tokensPaid, symbol]) + + return ( + + ) +} diff --git a/packages/huma-widget/src/components/CreditLine/solanaPayment/index.tsx b/packages/huma-widget/src/components/CreditLine/solanaPayment/index.tsx new file mode 100644 index 0000000..047debc --- /dev/null +++ b/packages/huma-widget/src/components/CreditLine/solanaPayment/index.tsx @@ -0,0 +1,86 @@ +import { SolanaPoolInfo } from '@huma-finance/shared' +import { useBorrowerAccounts } from '@huma-finance/web-shared' +import React, { useEffect } from 'react' +import { useDispatch } from 'react-redux' + +import { useAppSelector } from '../../../hooks/useRedux' +import { selectWidgetState } from '../../../store/widgets.selectors' +import { WidgetWrapper } from '../../WidgetWrapper' +import { WIDGET_STEP } from '../../../store/widgets.store' +import { setStep } from '../../../store/widgets.reducers' +import { ErrorModal } from '../../ErrorModal' +import { ChooseAmount } from './1-ChooseAmount' +import { Transfer } from './2-Transfer' +import { Done } from './3-Done' + +/** + * Lend pool supply props + * @typedef {Object} SolanaPaymentProps + * @property {SolanaPoolInfo} poolInfo The metadata of the pool. + * @property {function():void|undefined} handleSuccess Optional function to notify that the lending pool supply action is successful. + */ +export interface SolanaPaymentProps { + poolInfo: SolanaPoolInfo + handleClose: () => void + handleSuccess?: () => void +} + +export function SolanaPayment({ + poolInfo, + handleClose, + handleSuccess, +}: SolanaPaymentProps): React.ReactElement | null { + const title = 'Make Payment' + const dispatch = useDispatch() + const { step, errorMessage } = useAppSelector(selectWidgetState) + const { creditStateAccount } = useBorrowerAccounts( + poolInfo.chainId, + poolInfo.poolName, + ) + + useEffect(() => { + if (!step && creditStateAccount) { + dispatch(setStep(WIDGET_STEP.ChooseAmount)) + } + }, [creditStateAccount, dispatch, step]) + + if (!creditStateAccount) { + return ( + + ) + } + + return ( + + {step === WIDGET_STEP.ChooseAmount && creditStateAccount && ( + + )} + {step === WIDGET_STEP.Transfer && } + {step === WIDGET_STEP.Done && ( + + )} + {step === WIDGET_STEP.Error && ( + + )} + + ) +} diff --git a/packages/huma-widget/src/components/InputAmountModal.tsx b/packages/huma-widget/src/components/InputAmountModal.tsx index 2ec416b..6543a03 100644 --- a/packages/huma-widget/src/components/InputAmountModal.tsx +++ b/packages/huma-widget/src/components/InputAmountModal.tsx @@ -20,6 +20,7 @@ type Props = { tokenSymbol: string suffix?: string currentAmount: number | string + minimumAmount?: number maxAmount: number | string maxAmountText?: string maxAmountTitle?: string @@ -35,6 +36,7 @@ export function InputAmountModal({ tokenSymbol, suffix: defaultSuffix, currentAmount, + minimumAmount, maxAmount, maxAmountText = 'MAX', maxAmountTitle, @@ -91,6 +93,7 @@ export function InputAmountModal({ font-size: 13px; line-height: 22px; letter-spacing: 0.46px; + white-space: nowrap; `, info: css` color: ${theme.palette.text.secondary}; @@ -125,6 +128,9 @@ export function InputAmountModal({ if (!isEmpty(maxAmount) && Number(currentAmount) > Number(maxAmount)) { return true } + if (!isEmpty(minimumAmount) && Number(currentAmount) < minimumAmount!) { + return true + } return false } @@ -157,7 +163,6 @@ export function InputAmountModal({ /> - {infos && ( {infos.map((info) => ( @@ -167,7 +172,13 @@ export function InputAmountModal({ ))} )} - + {!!minimumAmount && minimumAmount > 0 && ( + + + Minimum deposit: {minimumAmount} {tokenSymbol} + + + )} changeTranche: (tranche: TrancheType) => void handleClose: (identityStatus?: IdentityVerificationStatusV2) => void } @@ -40,13 +46,15 @@ export function PersonaEvaluation({ isUniTranche, campaign, pointsTestnetExperience, + chainType, + chainSpecificData, changeTranche, handleClose, }: Props): React.ReactElement | null { const theme = useTheme() const isDev = checkIsDev() const dispatch = useAppDispatch() - const { account, chainId } = useWeb3React() + const { account, chainId } = useChainInfo(isDev, chainType) const { errorType, setError: setAuthError, @@ -95,6 +103,7 @@ export function PersonaEvaluation({ chainId!, poolInfo.juniorTrancheVault, isDev, + chainSpecificData, ) if (!isUniTranche) { await IdentityServiceV2.approveLender( @@ -102,6 +111,7 @@ export function PersonaEvaluation({ chainId!, poolInfo.seniorTrancheVault, isDev, + chainSpecificData, ) } if (isUniTranche) { @@ -117,6 +127,7 @@ export function PersonaEvaluation({ }, [ account, chainId, + chainSpecificData, changeTranche, dispatch, isDev, diff --git a/packages/huma-widget/src/components/Lend/supplyV2/components/SecuritizeEvaluation.tsx b/packages/huma-widget/src/components/Lend/components/SecuritizeEvaluation.tsx similarity index 96% rename from packages/huma-widget/src/components/Lend/supplyV2/components/SecuritizeEvaluation.tsx rename to packages/huma-widget/src/components/Lend/components/SecuritizeEvaluation.tsx index 3b3a34b..2d89812 100644 --- a/packages/huma-widget/src/components/Lend/supplyV2/components/SecuritizeEvaluation.tsx +++ b/packages/huma-widget/src/components/Lend/components/SecuritizeEvaluation.tsx @@ -14,14 +14,13 @@ import { useAuthErrorHandling, useParamsSearch } from '@huma-finance/web-shared' import { Box, css, useTheme } from '@mui/material' import { useWeb3React } from '@web3-react/core' import React, { useCallback, useEffect, useMemo, useState } from 'react' - -import { useAppDispatch } from '../../../../hooks/useRedux' -import { setError } from '../../../../store/widgets.reducers' -import { BottomButton } from '../../../BottomButton' -import { HumaSnackBar } from '../../../HumaSnackBar' -import { ApproveLenderImg } from '../../../images' -import { LoadingModal } from '../../../LoadingModal' -import { WrapperModal } from '../../../WrapperModal' +import { useAppDispatch } from '../../../hooks/useRedux' +import { setError } from '../../../store/widgets.reducers' +import { HumaSnackBar } from '../../HumaSnackBar' +import { WrapperModal } from '../../WrapperModal' +import { ApproveLenderImg } from '../../images' +import { BottomButton } from '../../BottomButton' +import { LoadingModal } from '../../LoadingModal' const LoadingCopiesByType: { [key: string]: { diff --git a/packages/huma-widget/src/components/Lend/solanaAddRedemption/1-ChooseTranche.tsx b/packages/huma-widget/src/components/Lend/solanaAddRedemption/1-ChooseTranche.tsx new file mode 100644 index 0000000..b6324ac --- /dev/null +++ b/packages/huma-widget/src/components/Lend/solanaAddRedemption/1-ChooseTranche.tsx @@ -0,0 +1,114 @@ +import { TrancheType } from '@huma-finance/shared' +import { + css, + FormControl, + FormControlLabel, + FormLabel, + Radio, + RadioGroup, + useTheme, +} from '@mui/material' +import React from 'react' + +import { useAppDispatch } from '../../../hooks/useRedux' +import { setStep } from '../../../store/widgets.reducers' +import { WIDGET_STEP } from '../../../store/widgets.store' +import { BottomButton } from '../../BottomButton' +import { WrapperModal } from '../../WrapperModal' + +type Props = { + selectedTranche: TrancheType | undefined + changeTranche: (tranche: TrancheType) => void +} + +export function ChooseTranche({ + selectedTranche, + changeTranche, +}: Props): React.ReactElement | null { + const theme = useTheme() + const dispatch = useAppDispatch() + + const styles = { + subTitle: css` + color: ${theme.palette.text.primary} !important; + font-weight: 400; + font-size: 16px; + line-height: 150%; + letter-spacing: 0.15px; + margin-top: ${theme.spacing(5)}; + margin-left: ${theme.spacing(2)}; + `, + radioGroup: css` + margin-left: ${theme.spacing(3)}; + margin-top: ${theme.spacing(3)}; + `, + formControl: css` + margin-bottom: ${theme.spacing(1)}; + + .MuiFormControlLabel-label { + color: ${theme.palette.text.primary}; + font-weight: 400; + font-size: 16px; + line-height: 150%; + letter-spacing: 0.15px; + } + `, + } + + const handleNext = () => { + dispatch(setStep(WIDGET_STEP.ChooseAmount)) + } + + const items: { + label: string + value: TrancheType + }[] = [ + { + label: 'Senior', + value: 'senior', + }, + { + label: 'Junior', + value: 'junior', + }, + ] + + return ( + + + Select Tranche Type + changeTranche(e.target.value as TrancheType)} + > + {items.map((item) => ( + + } + label={item.label} + css={styles.formControl} + /> + ))} + + + + NEXT + + + ) +} diff --git a/packages/huma-widget/src/components/Lend/solanaAddRedemption/2-ChooseAmount.tsx b/packages/huma-widget/src/components/Lend/solanaAddRedemption/2-ChooseAmount.tsx new file mode 100644 index 0000000..96bd178 --- /dev/null +++ b/packages/huma-widget/src/components/Lend/solanaAddRedemption/2-ChooseAmount.tsx @@ -0,0 +1,183 @@ +import { + formatNumber, + SolanaPoolInfo, + SolanaTokenUtils, + timestampToLL, + TrancheType, +} from '@huma-finance/shared' +import { + LenderStateAccount, + SolanaPoolState, + useTrancheMintAccounts, + useTrancheTokenAccounts, +} from '@huma-finance/web-shared' +import dayjs from 'dayjs' +import React, { useEffect, useMemo, useState } from 'react' + +import { BN } from '@coral-xyz/anchor' +import { useAppDispatch } from '../../../hooks/useRedux' +import { + setError, + setRedeemAmount, + setRedeemShares, + setStep, +} from '../../../store/widgets.reducers' +import { WIDGET_STEP } from '../../../store/widgets.store' +import { InputAmountModal } from '../../InputAmountModal' +import { LoadingModal } from '../../LoadingModal' + +type Props = { + poolInfo: SolanaPoolInfo + poolState: SolanaPoolState + selectedTranche: TrancheType + lenderState: LenderStateAccount | null | undefined +} + +export function ChooseAmount({ + poolInfo, + poolState, + selectedTranche, + lenderState, +}: Props): React.ReactElement { + const dispatch = useAppDispatch() + const { symbol } = poolInfo.underlyingMint + const [currentAmount, setCurrentAmount] = useState(0) + const [currentShares, setCurrentShares] = useState(0) + const { mintAccount, loading: isLoadingTrancheMintAccounts } = + useTrancheMintAccounts(poolInfo, selectedTranche) + const { + seniorTokenAccount, + juniorTokenAccount, + loading: isLoadingTokenAccounts, + } = useTrancheTokenAccounts(poolInfo) + + const maxSharesFormatted = useMemo(() => { + if (!mintAccount?.decimals) { + return 0 + } + + return SolanaTokenUtils.formatUnits( + selectedTranche === 'senior' + ? new BN(seniorTokenAccount?.amount?.toString() ?? 0) + : new BN(juniorTokenAccount?.amount?.toString() ?? 0), + mintAccount.decimals, + ) + }, [ + mintAccount, + juniorTokenAccount?.amount, + selectedTranche, + seniorTokenAccount?.amount, + ]) + + const sharePrice = useMemo(() => { + if (!mintAccount?.decimals || !mintAccount?.supply) { + return 0 + } + + const mintSupplyFormatted = Number( + SolanaTokenUtils.formatUnits( + new BN(mintAccount.supply.toString()), + mintAccount.decimals, + ), + ) + + if (mintSupplyFormatted === 0) { + return 0 + } + + const seniorTrancheAssetsFormatted = Number( + SolanaTokenUtils.formatUnits( + new BN(poolState?.seniorTrancheAssets ?? 0), + mintAccount.decimals, + ), + ) + + if (selectedTranche === 'senior') { + return seniorTrancheAssetsFormatted / mintSupplyFormatted + } + + const juniorTrancheAssetsFormatted = Number( + SolanaTokenUtils.formatUnits( + new BN(poolState?.juniorTrancheAssets ?? 0), + mintAccount.decimals, + ), + ) + + return juniorTrancheAssetsFormatted / mintSupplyFormatted + }, [ + mintAccount?.decimals, + mintAccount?.supply, + poolState?.juniorTrancheAssets, + poolState?.seniorTrancheAssets, + selectedTranche, + ]) + + useEffect(() => { + if ( + poolState?.withdrawalLockupPeriodDays && + poolState?.epochEndTime && + lenderState + ) { + const SECONDS_IN_A_DAY = 24 * 60 * 60 + const lastDepositTime = Number(lenderState.depositRecord.lastDepositTime) + const lockupEndTime = + lastDepositTime + + poolState.withdrawalLockupPeriodDays * SECONDS_IN_A_DAY + if (poolState.epochEndTime < lockupEndTime) { + const lockupEndTimeDayjs = dayjs.unix(lockupEndTime).date(1) + dispatch(setStep(WIDGET_STEP.Error)) + dispatch( + setError({ + errorReason: 'Redemption too soon', + errorMessage: `Your last deposit was on ${timestampToLL( + lastDepositTime, + )}. You can redeem on ${timestampToLL(lockupEndTimeDayjs.unix())}.`, + }), + ) + } + } + }, [ + dispatch, + lenderState, + poolState.epochEndTime, + poolState.withdrawalLockupPeriodDays, + ]) + + const handleChangeShares = (newShares: number) => { + const amount = Number(newShares) * sharePrice + setCurrentShares(Number(newShares)) + setCurrentAmount(amount) + dispatch(setRedeemShares(Number(newShares))) + dispatch(setRedeemAmount(amount)) + } + + const handleAction = () => { + dispatch(setStep(WIDGET_STEP.Transfer)) + } + + if ( + isLoadingTokenAccounts || + isLoadingTrancheMintAccounts || + !lenderState || + poolState?.withdrawalLockupPeriodDays === undefined || // withdrawalLockupPeriodDays can be 0 + !poolState?.epochEndTime + ) { + return + } + + return ( + + ) +} diff --git a/packages/huma-widget/src/components/Lend/solanaAddRedemption/3-Transfer.tsx b/packages/huma-widget/src/components/Lend/solanaAddRedemption/3-Transfer.tsx new file mode 100644 index 0000000..35d9965 --- /dev/null +++ b/packages/huma-widget/src/components/Lend/solanaAddRedemption/3-Transfer.tsx @@ -0,0 +1,102 @@ +import { + getTokenAccounts, + SolanaPoolInfo, + SolanaTokenUtils, + TrancheType, +} from '@huma-finance/shared' +import React, { useCallback, useEffect, useMemo, useState } from 'react' + +import { + useHumaProgram, + useTrancheMintAccounts, +} from '@huma-finance/web-shared' +import { TOKEN_2022_PROGRAM_ID } from '@solana/spl-token' +import { useWallet } from '@solana/wallet-adapter-react' +import { Transaction } from '@solana/web3.js' +import { useAppDispatch, useAppSelector } from '../../../hooks/useRedux' +import { setStep } from '../../../store/widgets.reducers' +import { selectWidgetState } from '../../../store/widgets.selectors' +import { WIDGET_STEP } from '../../../store/widgets.store' +import { SolanaTxSendModal } from '../../SolanaTxSendModal' + +type Props = { + poolInfo: SolanaPoolInfo + selectedTranche: TrancheType +} + +export function Transfer({ + poolInfo, + selectedTranche, +}: Props): React.ReactElement | null { + const dispatch = useAppDispatch() + const { publicKey } = useWallet() + const { redeemShares } = useAppSelector(selectWidgetState) + const { mintAccount } = useTrancheMintAccounts(poolInfo, selectedTranche) + const [transaction, setTransaction] = useState() + const program = useHumaProgram(poolInfo.chainId) + const redeemBN = useMemo(() => { + if (!mintAccount) { + return null + } + return SolanaTokenUtils.parseUnits( + String(redeemShares), + mintAccount?.decimals, + ) + }, [mintAccount, redeemShares]) + + const handleSuccess = useCallback(() => { + dispatch(setStep(WIDGET_STEP.Done)) + }, [dispatch]) + + useEffect(() => { + async function getTx() { + if (!publicKey || !redeemBN || transaction) { + return + } + + const { + seniorTrancheATA, + juniorTrancheATA, + poolSeniorTrancheATA, + poolJuniorTrancheATA, + } = getTokenAccounts(poolInfo, publicKey) + const tx = await program.methods + .addRedemptionRequest(redeemBN) + .accountsPartial({ + lender: publicKey, + humaConfig: poolInfo.humaConfig, + poolConfig: poolInfo.poolConfig, + trancheMint: + selectedTranche === 'senior' + ? poolInfo.seniorTrancheMint + : poolInfo.juniorTrancheMint, + poolTrancheToken: + selectedTranche === 'senior' + ? poolSeniorTrancheATA + : poolJuniorTrancheATA, + lenderTrancheToken: + selectedTranche === 'senior' ? seniorTrancheATA : juniorTrancheATA, + tokenProgram: TOKEN_2022_PROGRAM_ID, + }) + .transaction() + + setTransaction(tx) + } + getTx() + }, [ + poolInfo, + program.methods, + publicKey, + redeemBN, + selectedTranche, + transaction, + ]) + + return ( + + ) +} diff --git a/packages/huma-widget/src/components/Lend/solanaAddRedemption/4-Done.tsx b/packages/huma-widget/src/components/Lend/solanaAddRedemption/4-Done.tsx new file mode 100644 index 0000000..a10833d --- /dev/null +++ b/packages/huma-widget/src/components/Lend/solanaAddRedemption/4-Done.tsx @@ -0,0 +1,29 @@ +import { formatNumber, SolanaPoolInfo } from '@huma-finance/shared' +import React from 'react' + +import { useAppSelector } from '../../../hooks/useRedux' +import { selectWidgetState } from '../../../store/widgets.selectors' +import { SolanaTxDoneModal } from '../../SolanaTxDoneModal' + +type Props = { + poolInfo: SolanaPoolInfo + handleAction: () => void +} + +export function Done({ poolInfo, handleAction }: Props): React.ReactElement { + const { redeemShares, solanaSignature } = useAppSelector(selectWidgetState) + + const content = [ + `${formatNumber(redeemShares)} shares requested for redemption`, + ] + + return ( + + ) +} diff --git a/packages/huma-widget/src/components/Lend/solanaAddRedemption/index.tsx b/packages/huma-widget/src/components/Lend/solanaAddRedemption/index.tsx new file mode 100644 index 0000000..39f1f3f --- /dev/null +++ b/packages/huma-widget/src/components/Lend/solanaAddRedemption/index.tsx @@ -0,0 +1,155 @@ +import { SolanaPoolInfo, TrancheType } from '@huma-finance/shared' +import { + SolanaPoolState, + useLenderAccounts, + useTrancheTokenAccounts, +} from '@huma-finance/web-shared' +import React, { useEffect, useState } from 'react' +import { useDispatch } from 'react-redux' + +import { BN } from '@coral-xyz/anchor' +import { useAppSelector } from '../../../hooks/useRedux' +import { selectWidgetState } from '../../../store/widgets.selectors' +import { WidgetWrapper } from '../../WidgetWrapper' +import { WIDGET_STEP } from '../../../store/widgets.store' +import { ChooseAmount } from './2-ChooseAmount' +import { setStep } from '../../../store/widgets.reducers' +import { ErrorModal } from '../../ErrorModal' +import { ChooseTranche } from './1-ChooseTranche' +import { Done } from './4-Done' +import { Transfer } from './3-Transfer' + +/** + * Lend pool supply props + * @typedef {Object} SolanaLendAddRedemptionProps + * @property {SolanaPoolInfo} poolInfo The metadata of the pool. + * @property {SolanaPoolState} poolState The current state config of the pool. * @property {function():void} handleClose Function to notify to close the widget modal when user clicks the 'x' close button. + * @property {POOL_NTrancheTypeAME} tranche The tranche type. + * @property {function():void|undefined} handleSuccess Optional function to notify that the lending pool supply action is successful. + */ +export interface SolanaLendAddRedemptionProps { + poolInfo: SolanaPoolInfo + poolState: SolanaPoolState + tranche?: TrancheType + handleClose: () => void + handleSuccess?: () => void +} + +export function SolanaLendAddRedemption({ + poolInfo, + poolState, + tranche, + handleClose, + handleSuccess, +}: SolanaLendAddRedemptionProps): React.ReactElement | null { + const dispatch = useDispatch() + const { + seniorLenderStateAccount, + juniorLenderStateAccount, + loading: isLoadingLenderAccounts, + } = useLenderAccounts(poolInfo.chainId, poolInfo.poolName) + const { + seniorTokenAccount, + juniorTokenAccount, + loading: isLoadingTokenAccounts, + } = useTrancheTokenAccounts(poolInfo) + const { step, errorMessage } = useAppSelector(selectWidgetState) + const [selectedTranche, setSelectedTranche] = useState< + TrancheType | undefined + >(tranche) + + useEffect(() => { + if (!step && !isLoadingLenderAccounts && !isLoadingTokenAccounts) { + const seniorTrancheShares = new BN( + seniorTokenAccount?.amount?.toString() ?? 0, + ) + const juniorTrancheShares = new BN( + juniorTokenAccount?.amount?.toString() ?? 0, + ) + + if (selectedTranche) { + dispatch(setStep(WIDGET_STEP.ChooseAmount)) + return + } + + if (juniorTrancheShares.gtn(0) && seniorTrancheShares.lten(0)) { + setSelectedTranche('junior') + dispatch(setStep(WIDGET_STEP.ChooseAmount)) + return + } + + if (seniorTrancheShares.gtn(0) && juniorTrancheShares.lten(0)) { + setSelectedTranche('senior') + dispatch(setStep(WIDGET_STEP.ChooseAmount)) + return + } + + if (seniorTrancheShares.gtn(0) && juniorTrancheShares.gtn(0)) { + dispatch(setStep(WIDGET_STEP.ChooseTranche)) + } + } + }, [ + dispatch, + step, + isLoadingLenderAccounts, + isLoadingTokenAccounts, + seniorTokenAccount?.amount, + juniorTokenAccount?.amount, + selectedTranche, + ]) + + const title = 'Redemption' + if (isLoadingLenderAccounts || isLoadingTokenAccounts) { + return ( + + ) + } + + return ( + + {step === WIDGET_STEP.ChooseTranche && ( + + )} + {step === WIDGET_STEP.ChooseAmount && selectedTranche && ( + + )} + {step === WIDGET_STEP.Transfer && selectedTranche && ( + + )} + {step === WIDGET_STEP.Done && ( + + )} + {step === WIDGET_STEP.Error && ( + + )} + + ) +} diff --git a/packages/huma-widget/src/components/Lend/solanaCancelRedemption/1-ChooseTranche.tsx b/packages/huma-widget/src/components/Lend/solanaCancelRedemption/1-ChooseTranche.tsx new file mode 100644 index 0000000..2af0d01 --- /dev/null +++ b/packages/huma-widget/src/components/Lend/solanaCancelRedemption/1-ChooseTranche.tsx @@ -0,0 +1,114 @@ +import { TrancheType } from '@huma-finance/shared' +import { + css, + FormControl, + FormControlLabel, + FormLabel, + Radio, + RadioGroup, + useTheme, +} from '@mui/material' +import React from 'react' + +import { useAppDispatch } from '../../../hooks/useRedux' +import { setStep } from '../../../store/widgets.reducers' +import { WIDGET_STEP } from '../../../store/widgets.store' +import { BottomButton } from '../../BottomButton' +import { WrapperModal } from '../../WrapperModal' + +type Props = { + selectedTranche: TrancheType | undefined + changeTranche: (tranche: TrancheType) => void +} + +export function ChooseTranche({ + selectedTranche, + changeTranche, +}: Props): React.ReactElement | null { + const theme = useTheme() + const dispatch = useAppDispatch() + + const styles = { + subTitle: css` + color: ${theme.palette.text.primary} !important; + font-weight: 400; + font-size: 16px; + line-height: 150%; + letter-spacing: 0.15px; + margin-top: ${theme.spacing(5)}; + margin-left: ${theme.spacing(2)}; + `, + radioGroup: css` + margin-left: ${theme.spacing(3)}; + margin-top: ${theme.spacing(3)}; + `, + formControl: css` + margin-bottom: ${theme.spacing(1)}; + + .MuiFormControlLabel-label { + color: ${theme.palette.text.primary}; + font-weight: 400; + font-size: 16px; + line-height: 150%; + letter-spacing: 0.15px; + } + `, + } + + const handleNext = () => { + dispatch(setStep(WIDGET_STEP.ChooseAmount)) + } + + const items: { + label: string + value: TrancheType + }[] = [ + { + label: 'Senior', + value: 'senior', + }, + { + label: 'Junior', + value: 'junior', + }, + ] + + return ( + + + Select Tranche Type + changeTranche(e.target.value as TrancheType)} + > + {items.map((item) => ( + + } + label={item.label} + css={styles.formControl} + /> + ))} + + + + NEXT + + + ) +} diff --git a/packages/huma-widget/src/components/Lend/solanaCancelRedemption/2-Transfer.tsx b/packages/huma-widget/src/components/Lend/solanaCancelRedemption/2-Transfer.tsx new file mode 100644 index 0000000..22fd438 --- /dev/null +++ b/packages/huma-widget/src/components/Lend/solanaCancelRedemption/2-Transfer.tsx @@ -0,0 +1,99 @@ +import { + getTokenAccounts, + SolanaPoolInfo, + TrancheType, +} from '@huma-finance/shared' +import React, { useCallback, useEffect, useState } from 'react' + +import { LenderStateAccount, useHumaProgram } from '@huma-finance/web-shared' +import { TOKEN_2022_PROGRAM_ID } from '@solana/spl-token' +import { useWallet } from '@solana/wallet-adapter-react' +import { Transaction } from '@solana/web3.js' +import { useAppDispatch } from '../../../hooks/useRedux' +import { setStep } from '../../../store/widgets.reducers' +import { WIDGET_STEP } from '../../../store/widgets.store' +import { SolanaTxSendModal } from '../../SolanaTxSendModal' + +type Props = { + poolInfo: SolanaPoolInfo + lenderState: LenderStateAccount | null | undefined + lenderStatePDA: string | null | undefined + selectedTranche: TrancheType +} + +export function Transfer({ + poolInfo, + lenderState, + lenderStatePDA, + selectedTranche, +}: Props): React.ReactElement | null { + const dispatch = useAppDispatch() + const { publicKey } = useWallet() + const [transaction, setTransaction] = useState() + const program = useHumaProgram(poolInfo.chainId) + + const handleSuccess = useCallback(() => { + dispatch(setStep(WIDGET_STEP.Done)) + }, [dispatch]) + + useEffect(() => { + async function getTx() { + if (!publicKey || !lenderState || !lenderStatePDA || transaction) { + return + } + + const { + seniorTrancheATA, + juniorTrancheATA, + poolSeniorTrancheATA, + poolJuniorTrancheATA, + } = getTokenAccounts(poolInfo, publicKey) + const tx = await program.methods + .cancelRedemptionRequest( + lenderState.redemptionRecord.numSharesRequested, + ) + .accountsPartial({ + lender: publicKey, + humaConfig: poolInfo.humaConfig, + poolConfig: poolInfo.poolConfig, + trancheMint: + selectedTranche === 'senior' + ? poolInfo.seniorTrancheMint + : poolInfo.juniorTrancheMint, + trancheState: + selectedTranche === 'senior' + ? poolInfo.seniorTrancheState + : poolInfo.juniorTrancheState, + lenderState: lenderStatePDA, + poolAuthority: poolInfo.poolAuthority, + poolTrancheToken: + selectedTranche === 'senior' + ? poolSeniorTrancheATA + : poolJuniorTrancheATA, + lenderTrancheToken: + selectedTranche === 'senior' ? seniorTrancheATA : juniorTrancheATA, + tokenProgram: TOKEN_2022_PROGRAM_ID, + }) + .transaction() + + setTransaction(tx) + } + getTx() + }, [ + lenderState, + lenderStatePDA, + poolInfo, + program.methods, + publicKey, + selectedTranche, + transaction, + ]) + + return ( + + ) +} diff --git a/packages/huma-widget/src/components/Lend/solanaCancelRedemption/3-Done.tsx b/packages/huma-widget/src/components/Lend/solanaCancelRedemption/3-Done.tsx new file mode 100644 index 0000000..6feea01 --- /dev/null +++ b/packages/huma-widget/src/components/Lend/solanaCancelRedemption/3-Done.tsx @@ -0,0 +1,55 @@ +import { + formatNumber, + SolanaPoolInfo, + SolanaTokenUtils, + TrancheType, +} from '@huma-finance/shared' +import React from 'react' + +import { + LenderStateAccount, + useTrancheMintAccounts, +} from '@huma-finance/web-shared' +import { SolanaTxDoneModal } from '../../SolanaTxDoneModal' +import { useAppSelector } from '../../../hooks/useRedux' +import { selectWidgetState } from '../../../store/widgets.selectors' + +type Props = { + poolInfo: SolanaPoolInfo + lenderState: LenderStateAccount | null | undefined + selectedTranche: TrancheType + handleAction: () => void +} + +export function Done({ + poolInfo, + lenderState, + selectedTranche, + handleAction, +}: Props): React.ReactElement | null { + const { mintAccount, loading: isLoadingTrancheMintAccounts } = + useTrancheMintAccounts(poolInfo, selectedTranche) + const { solanaSignature } = useAppSelector(selectWidgetState) + + const content = + !lenderState || isLoadingTrancheMintAccounts || !mintAccount + ? [''] + : [ + `Your request to cancel the redemption of ${formatNumber( + SolanaTokenUtils.formatUnits( + lenderState.redemptionRecord.numSharesRequested, + mintAccount.decimals, + ), + )} shares has been successfully processed.`, + ] + + return ( + + ) +} diff --git a/packages/huma-widget/src/components/Lend/solanaCancelRedemption/index.tsx b/packages/huma-widget/src/components/Lend/solanaCancelRedemption/index.tsx new file mode 100644 index 0000000..36989a1 --- /dev/null +++ b/packages/huma-widget/src/components/Lend/solanaCancelRedemption/index.tsx @@ -0,0 +1,162 @@ +import { SolanaPoolInfo, TrancheType } from '@huma-finance/shared' +import { useLenderAccounts } from '@huma-finance/web-shared' +import React, { useEffect, useState } from 'react' +import { useDispatch } from 'react-redux' + +import { BN } from '@coral-xyz/anchor' +import { useAppSelector } from '../../../hooks/useRedux' +import { selectWidgetState } from '../../../store/widgets.selectors' +import { WidgetWrapper } from '../../WidgetWrapper' +import { WIDGET_STEP } from '../../../store/widgets.store' +import { setStep } from '../../../store/widgets.reducers' +import { ErrorModal } from '../../ErrorModal' +import { Transfer } from './2-Transfer' +import { ChooseTranche } from './1-ChooseTranche' +import { Done } from './3-Done' + +/** + * Lend pool supply props + * @typedef {Object} SolanaLendCancelRedemptionProps + * @property {SolanaPoolInfo} poolInfo The metadata of the pool. + * @property {SolanaPoolState} poolState The current state config of the pool. * @property {function():void} handleClose Function to notify to close the widget modal when user clicks the 'x' close button. + * @property {function():void|undefined} handleSuccess Optional function to notify that the lending pool supply action is successful. + */ +export interface SolanaLendCancelRedemptionProps { + poolInfo: SolanaPoolInfo + tranche?: TrancheType + handleClose: () => void + handleSuccess?: () => void +} + +export function SolanaLendCancelRedemption({ + poolInfo, + tranche, + handleClose, + handleSuccess, +}: SolanaLendCancelRedemptionProps): React.ReactElement | null { + const dispatch = useDispatch() + const { + seniorLenderStateAccount, + juniorLenderStateAccount, + juniorLenderStateAccountPDA, + seniorLenderStateAccountPDA, + loading: isLoadingLenderAccounts, + } = useLenderAccounts(poolInfo.chainId, poolInfo.poolName) + const { step, errorMessage } = useAppSelector(selectWidgetState) + const [selectedTranche, setSelectedTranche] = useState< + TrancheType | undefined + >(tranche) + + useEffect(() => { + if (!step && !isLoadingLenderAccounts) { + const seniorTrancheSharesRequested = new BN( + seniorLenderStateAccount?.redemptionRecord.numSharesRequested ?? 0, + ) + const juniorTrancheSharesRequested = new BN( + juniorLenderStateAccount?.redemptionRecord.numSharesRequested ?? 0, + ) + + if (selectedTranche) { + dispatch(setStep(WIDGET_STEP.Transfer)) + return + } + + if ( + juniorTrancheSharesRequested.gtn(0) && + seniorTrancheSharesRequested.lten(0) + ) { + setSelectedTranche('junior') + dispatch(setStep(WIDGET_STEP.Transfer)) + return + } + + if ( + seniorTrancheSharesRequested.gtn(0) && + juniorTrancheSharesRequested.lten(0) + ) { + setSelectedTranche('senior') + dispatch(setStep(WIDGET_STEP.Transfer)) + return + } + + if ( + seniorTrancheSharesRequested.gtn(0) && + juniorTrancheSharesRequested.gtn(0) + ) { + dispatch(setStep(WIDGET_STEP.ChooseTranche)) + } + } + }, [ + dispatch, + step, + isLoadingLenderAccounts, + seniorLenderStateAccount?.redemptionRecord.numSharesRequested, + juniorLenderStateAccount?.redemptionRecord.numSharesRequested, + selectedTranche, + ]) + + const title = 'Cancel Redemption' + if (isLoadingLenderAccounts) { + return ( + + ) + } + + return ( + + {step === WIDGET_STEP.ChooseTranche && ( + + )} + {step === WIDGET_STEP.Transfer && selectedTranche && ( + + )} + {step === WIDGET_STEP.Done && selectedTranche && ( + + )} + {step === WIDGET_STEP.Error && ( + + )} + + ) +} diff --git a/packages/huma-widget/src/components/Lend/solanaSupply/1-Evaluation.tsx b/packages/huma-widget/src/components/Lend/solanaSupply/1-Evaluation.tsx new file mode 100644 index 0000000..12db7f2 --- /dev/null +++ b/packages/huma-widget/src/components/Lend/solanaSupply/1-Evaluation.tsx @@ -0,0 +1,54 @@ +import { + CHAIN_TYPE, + SOLANA_CHAIN_INFO, + SolanaPoolInfo, + TrancheType, +} from '@huma-finance/shared' +import React from 'react' + +import { PersonaEvaluation } from '../components/PersonaEvaluation' +import { Campaign } from '../supplyV2' + +type Props = { + poolInfo: SolanaPoolInfo + isUniTranche: boolean + pointsTestnetExperience: boolean + campaign?: Campaign + changeTranche: (tranche: TrancheType) => void + handleClose: () => void +} + +export function Evaluation({ + poolInfo, + isUniTranche, + pointsTestnetExperience, + campaign, + changeTranche, + handleClose, +}: Props): React.ReactElement | null { + if (poolInfo.KYC?.Persona) { + const solanChainInfo = SOLANA_CHAIN_INFO[poolInfo.chainId] + + return ( + + ) + } + + return null +} diff --git a/packages/huma-widget/src/components/Lend/solanaSupply/2-ChooseTranche.tsx b/packages/huma-widget/src/components/Lend/solanaSupply/2-ChooseTranche.tsx new file mode 100644 index 0000000..1f348ea --- /dev/null +++ b/packages/huma-widget/src/components/Lend/solanaSupply/2-ChooseTranche.tsx @@ -0,0 +1,116 @@ +import { TrancheType, UnderlyingTokenInfo } from '@huma-finance/shared' +import { + css, + FormControl, + FormControlLabel, + FormLabel, + Radio, + RadioGroup, + useTheme, +} from '@mui/material' +import React from 'react' + +import { useAppDispatch } from '../../../hooks/useRedux' +import { setStep } from '../../../store/widgets.reducers' +import { WIDGET_STEP } from '../../../store/widgets.store' +import { BottomButton } from '../../BottomButton' +import { WrapperModal } from '../../WrapperModal' + +type Props = { + poolUnderlyingToken: UnderlyingTokenInfo + selectedTranche: TrancheType | undefined + changeTranche: (tranche: TrancheType) => void +} + +export function ChooseTranche({ + poolUnderlyingToken, + selectedTranche, + changeTranche, +}: Props): React.ReactElement | null { + const theme = useTheme() + const dispatch = useAppDispatch() + + const styles = { + subTitle: css` + color: ${theme.palette.text.primary} !important; + font-weight: 400; + font-size: 16px; + line-height: 150%; + letter-spacing: 0.15px; + margin-top: ${theme.spacing(5)}; + margin-left: ${theme.spacing(2)}; + `, + radioGroup: css` + margin-left: ${theme.spacing(3)}; + margin-top: ${theme.spacing(3)}; + `, + formControl: css` + margin-bottom: ${theme.spacing(1)}; + + .MuiFormControlLabel-label { + color: ${theme.palette.text.primary}; + font-weight: 400; + font-size: 16px; + line-height: 150%; + letter-spacing: 0.15px; + } + `, + } + + const handleNext = () => { + dispatch(setStep(WIDGET_STEP.ChooseAmount)) + } + + const items: { + label: string + value: TrancheType + }[] = [ + { + label: 'Senior', + value: 'senior', + }, + { + label: 'Junior', + value: 'junior', + }, + ] + + return ( + + + Select Tranche Type + changeTranche(e.target.value as TrancheType)} + > + {items.map((item) => ( + + } + label={item.label} + css={styles.formControl} + /> + ))} + + + + NEXT + + + ) +} diff --git a/packages/huma-widget/src/components/Lend/solanaSupply/3-ChooseAmount.tsx b/packages/huma-widget/src/components/Lend/solanaSupply/3-ChooseAmount.tsx new file mode 100644 index 0000000..f6761e5 --- /dev/null +++ b/packages/huma-widget/src/components/Lend/solanaSupply/3-ChooseAmount.tsx @@ -0,0 +1,131 @@ +import { + formatNumber, + SolanaPoolInfo, + SolanaTokenUtils, + TrancheType, +} from '@huma-finance/shared' +import { SolanaPoolState } from '@huma-finance/web-shared' +import React, { useMemo, useState } from 'react' +import { BN } from '@coral-xyz/anchor' +import { Account } from '@solana/spl-token' +import { useAppDispatch } from '../../../hooks/useRedux' +import { setStep, setSupplyAmount } from '../../../store/widgets.reducers' +import { WIDGET_STEP } from '../../../store/widgets.store' +import { InputAmountModal } from '../../InputAmountModal' + +type Props = { + poolInfo: SolanaPoolInfo + poolState: SolanaPoolState + tokenAccount?: Account + selectedTranche: TrancheType | undefined + isUniTranche?: boolean +} + +export function ChooseAmount({ + poolInfo, + poolState, + tokenAccount, + selectedTranche, + isUniTranche, +}: Props): React.ReactElement | null { + const dispatch = useAppDispatch() + const { symbol, decimals } = poolInfo.underlyingMint + const [currentAmount, setCurrentAmount] = useState(0) + const balance = tokenAccount + ? new BN(tokenAccount.amount.toString()) + : new BN(0) + + const { juniorAvailableCapBN, seniorAvailableCapBN } = useMemo(() => { + const { + maxSeniorJuniorRatio, + liquidityCap, + seniorTrancheAssets, + juniorTrancheAssets, + } = poolState + const juniorTrancheAssetsBN = new BN(juniorTrancheAssets ?? 0) + const seniorTrancheAssetsBN = new BN(seniorTrancheAssets ?? 0) + const totalDeployedBN = seniorTrancheAssetsBN.add(juniorTrancheAssetsBN) + const totalAvailableCapBN = new BN(liquidityCap ?? 0).sub(totalDeployedBN) + const maxSeniorAssetsBN = juniorTrancheAssetsBN.muln( + maxSeniorJuniorRatio ?? 0, + ) + let seniorAvailableCapBN = maxSeniorAssetsBN.sub(seniorTrancheAssetsBN) + seniorAvailableCapBN = seniorAvailableCapBN.gt(totalAvailableCapBN) + ? totalAvailableCapBN + : seniorAvailableCapBN + + return { + juniorAvailableCapBN: totalAvailableCapBN.sub(seniorAvailableCapBN), + seniorAvailableCapBN, + } + }, [poolState]) + + const handleChangeAmount = (newAmount: number) => { + setCurrentAmount(newAmount) + dispatch(setSupplyAmount(Number(newAmount))) + } + + const handleAction = () => { + dispatch(setStep(WIDGET_STEP.Transfer)) + } + + const getTrancheCap = () => { + if (selectedTranche === 'junior') { + return juniorAvailableCapBN + } + return seniorAvailableCapBN + } + + const getMinAmount = (): number => { + const minAmount = poolState.minDepositAmount + ? SolanaTokenUtils.formatUnits( + new BN(poolState.minDepositAmount), + decimals, + ) + : 0 + return Math.max(0, Math.ceil(Number(minAmount))) + } + + const getMaxAmount = (): BN => { + const trancheCap = getTrancheCap() + return balance.gt(trancheCap) ? trancheCap : balance + } + + const getInfos = () => { + const trancheCap = getTrancheCap() + const currentAmountBN = SolanaTokenUtils.parseUnits( + String(currentAmount), + decimals, + ) + const remainingCap = trancheCap.sub(currentAmountBN) + + if (remainingCap.ltn(0)) { + return ['0 remaining capacity'] + } + return [ + `${formatNumber( + SolanaTokenUtils.formatUnits(remainingCap, decimals), + )} remaining capacity`, + ] + } + + return ( + + ) +} diff --git a/packages/huma-widget/src/components/Lend/solanaSupply/4-Transfer.tsx b/packages/huma-widget/src/components/Lend/solanaSupply/4-Transfer.tsx new file mode 100644 index 0000000..c75bba8 --- /dev/null +++ b/packages/huma-widget/src/components/Lend/solanaSupply/4-Transfer.tsx @@ -0,0 +1,141 @@ +import { + getTokenAccounts, + SolanaPoolInfo, + SolanaTokenUtils, + TrancheType, +} from '@huma-finance/shared' +import React, { useCallback, useEffect, useState } from 'react' + +import { useHumaProgram, useLenderAccounts } from '@huma-finance/web-shared' +import { TOKEN_2022_PROGRAM_ID, TOKEN_PROGRAM_ID } from '@solana/spl-token' +import { useWallet } from '@solana/wallet-adapter-react' +import { Transaction } from '@solana/web3.js' +import { useAppDispatch, useAppSelector } from '../../../hooks/useRedux' +import { setStep } from '../../../store/widgets.reducers' +import { selectWidgetState } from '../../../store/widgets.selectors' +import { WIDGET_STEP } from '../../../store/widgets.store' +import { LoadingModal } from '../../LoadingModal' +import { SolanaTxSendModal } from '../../SolanaTxSendModal' + +type Props = { + poolInfo: SolanaPoolInfo + selectedTranche: TrancheType +} + +export function Transfer({ + poolInfo, + selectedTranche, +}: Props): React.ReactElement | null { + const dispatch = useAppDispatch() + const { publicKey } = useWallet() + const { supplyAmount } = useAppSelector(selectWidgetState) + const { decimals } = poolInfo.underlyingMint + const supplyBigNumber = SolanaTokenUtils.parseUnits( + String(supplyAmount), + decimals, + ) + const [transaction, setTransaction] = useState() + const { + juniorLenderApprovedAccountPDA, + seniorLenderApprovedAccountPDA, + seniorLenderStateAccount, + juniorLenderStateAccount, + loading: isLoadingLenderAccounts, + } = useLenderAccounts(poolInfo.chainId, poolInfo.poolName) + const program = useHumaProgram(poolInfo.chainId) + + const handleSuccess = useCallback(() => { + dispatch(setStep(WIDGET_STEP.Done)) + }, [dispatch]) + + useEffect(() => { + async function getTx() { + if (!publicKey || transaction || isLoadingLenderAccounts) { + return + } + + const tx = new Transaction() + + const { underlyingTokenATA, seniorTrancheATA, juniorTrancheATA } = + getTokenAccounts(poolInfo, publicKey) + + const approvedLender = + selectedTranche === 'senior' + ? seniorLenderApprovedAccountPDA! + : juniorLenderApprovedAccountPDA! + + if ( + (selectedTranche === 'senior' && !seniorLenderStateAccount) || + (selectedTranche === 'junior' && !juniorLenderStateAccount) + ) { + const createLenderAccountsTx = await program.methods + .createLenderAccounts() + .accountsPartial({ + lender: publicKey, + humaConfig: poolInfo.humaConfig, + poolConfig: poolInfo.poolConfig, + approvedLender, + trancheMint: + selectedTranche === 'senior' + ? poolInfo.seniorTrancheMint + : poolInfo.juniorTrancheMint, + lenderTrancheToken: + selectedTranche === 'senior' + ? seniorTrancheATA + : juniorTrancheATA, + tokenProgram: TOKEN_2022_PROGRAM_ID, + }) + .transaction() + tx.add(createLenderAccountsTx) + } + + const depositTx = await program.methods + .deposit(supplyBigNumber) + .accountsPartial({ + approvedLender, + depositor: publicKey, + poolConfig: poolInfo.poolConfig, + underlyingMint: poolInfo.underlyingMint.address, + trancheMint: + selectedTranche === 'senior' + ? poolInfo.seniorTrancheMint + : poolInfo.juniorTrancheMint, + poolUnderlyingToken: poolInfo.poolUnderlyingTokenAccount, + depositorUnderlyingToken: underlyingTokenATA, + depositorTrancheToken: + selectedTranche === 'senior' ? seniorTrancheATA : juniorTrancheATA, + humaConfig: poolInfo.humaConfig, + underlyingTokenProgram: TOKEN_PROGRAM_ID, + }) + .transaction() + tx.add(depositTx) + + setTransaction(tx) + } + getTx() + }, [ + isLoadingLenderAccounts, + juniorLenderApprovedAccountPDA, + juniorLenderStateAccount, + poolInfo, + program.methods, + publicKey, + selectedTranche, + seniorLenderApprovedAccountPDA, + seniorLenderStateAccount, + supplyBigNumber, + transaction, + ]) + + if (isLoadingLenderAccounts) { + return + } + + return ( + + ) +} diff --git a/packages/huma-widget/src/components/Lend/solanaSupply/5-Success.tsx b/packages/huma-widget/src/components/Lend/solanaSupply/5-Success.tsx new file mode 100644 index 0000000..a41f880 --- /dev/null +++ b/packages/huma-widget/src/components/Lend/solanaSupply/5-Success.tsx @@ -0,0 +1,74 @@ +import { formatMoney, SolanaPoolInfo, timeUtil } from '@huma-finance/shared' +import { SolanaPoolState } from '@huma-finance/web-shared' +import dayjs from 'dayjs' +import React, { useCallback, useEffect } from 'react' +import { useDispatch } from 'react-redux' +import { Campaign } from '.' +import { useAppSelector } from '../../../hooks/useRedux' +import { setStep } from '../../../store/widgets.reducers' +import { selectWidgetState } from '../../../store/widgets.selectors' +import { WIDGET_STEP } from '../../../store/widgets.store' +import { SolanaTxDoneModal } from '../../SolanaTxDoneModal' + +type Props = { + poolInfo: SolanaPoolInfo + poolState: SolanaPoolState + campaign?: Campaign + updateTransactionHash: (hash: string) => void + handleAction: () => void +} + +export function Success({ + poolInfo, + poolState, + campaign, + updateTransactionHash, + handleAction, +}: Props): React.ReactElement { + const dispatch = useDispatch() + const { supplyAmount, solanaSignature } = useAppSelector(selectWidgetState) + const { symbol } = poolInfo.underlyingMint + + useEffect(() => { + if (solanaSignature) { + updateTransactionHash(solanaSignature) + } + }, [solanaSignature, updateTransactionHash]) + + const content = [ + `You successfully supplied ${formatMoney(supplyAmount)} ${symbol}.`, + ] + + const getSubContent = () => { + const lockupEndTime = dayjs() + .add(poolState.withdrawalLockupPeriodDays ?? 0, 'day') + .date(1) + const withdrawTime = lockupEndTime.add(1, 'month') + return [ + `You can begin submitting redemption requests on ${timeUtil.timestampToLL( + lockupEndTime.unix(), + )}, which can be redeemed starting ${timeUtil.timestampToLL( + withdrawTime.unix(), + )}.`, + ] + } + + const handleUserAction = useCallback(() => { + if (campaign) { + dispatch(setStep(WIDGET_STEP.PointsEarned)) + } else { + handleAction() + } + }, [campaign, dispatch, handleAction]) + + return ( + + ) +} diff --git a/packages/huma-widget/src/components/Lend/solanaSupply/6-PointsEarned.tsx b/packages/huma-widget/src/components/Lend/solanaSupply/6-PointsEarned.tsx new file mode 100644 index 0000000..939d388 --- /dev/null +++ b/packages/huma-widget/src/components/Lend/solanaSupply/6-PointsEarned.tsx @@ -0,0 +1,250 @@ +import { + CampaignService, + CHAIN_TYPE, + checkIsDev, + formatNumber, + isEmpty, +} from '@huma-finance/shared' +import { + SolanaPoolState, + txAtom, + useAuthErrorHandling, + useChainInfo, +} from '@huma-finance/web-shared' +import { Box, css, useTheme } from '@mui/material' +import { useResetAtom } from 'jotai/utils' +import React, { useCallback, useEffect, useState } from 'react' +import { useDispatch } from 'react-redux' + +import { resetState, setError } from '../../../store/widgets.reducers' +import { BottomButton } from '../../BottomButton' +import { CongratulationsIcon, HumaPointsIcon, RibbonIcon } from '../../icons' +import { LoadingModal } from '../../LoadingModal' +import { SignIn } from '../../SignIn' + +enum STATE { + Loading = 'Loading', + SignIn = 'SignIn', + Congrats = 'Congrats', +} + +const ERROR_MESSAGE = + 'Failed to update wallet points. Be assured that your points will be added later.' + +type Props = { + transactionHash: string + poolState: SolanaPoolState + pointsTestnetExperience: boolean + handleAction: () => void +} + +export function PointsEarned({ + transactionHash, + poolState, + pointsTestnetExperience, + handleAction, +}: Props): React.ReactElement { + const theme = useTheme() + const isDev = checkIsDev() + const dispatch = useDispatch() + const reset = useResetAtom(txAtom) + const { account, chainId } = useChainInfo(isDev, CHAIN_TYPE.SOLANA) + const [pointsAccumulated, setPointsAccumulated] = useState< + number | undefined + >() + const hasPointsAccumulated = + !isEmpty(pointsAccumulated) && pointsAccumulated! > 0 + const lockupMonths = Math.round( + poolState.withdrawalLockupPeriodDays ?? 0 / 30, + ) + const monthText = + lockupMonths > 1 ? `${lockupMonths} months` : `${lockupMonths} month` + + const { + errorType, + setError: setAuthError, + isWalletOwnershipVerified, + isWalletOwnershipVerificationRequired, + } = useAuthErrorHandling(isDev) + const [walletOwnership, setWalletOwnership] = useState() + const [state, setState] = useState(STATE.Loading) + + useEffect(() => { + if (isWalletOwnershipVerificationRequired) { + setState(STATE.Loading) + } + }, [isWalletOwnershipVerificationRequired]) + + useEffect(() => { + if (isWalletOwnershipVerified) { + setWalletOwnership(true) + } + }, [isWalletOwnershipVerified]) + + useEffect(() => { + const checkWalletOwnership = async () => { + if (account) { + const ownership = await CampaignService.checkWalletOwnership( + account, + isDev, + pointsTestnetExperience, + ) + setWalletOwnership(ownership) + if (!ownership) { + setAuthError('WalletNotSignInException') + } + } + } + checkWalletOwnership() + }, [account, isDev, pointsTestnetExperience, setAuthError]) + + useEffect(() => { + if (errorType === 'NotSignedIn') { + setState(STATE.SignIn) + } else if (errorType === 'UserRejected') { + dispatch( + setError({ + errorMessage: 'User has rejected the transaction.', + }), + ) + } else if (errorType === 'Other') { + dispatch( + setError({ + errorMessage: ERROR_MESSAGE, + }), + ) + } + }, [dispatch, errorType]) + + useEffect(() => { + const updateWalletPoints = async () => { + if (walletOwnership) { + try { + const result = await CampaignService.updateWalletPoints( + account!, + transactionHash, + chainId!, + isDev, + pointsTestnetExperience, + ) + setPointsAccumulated(result.pointsAccumulated) + setState(STATE.Congrats) + } catch (error) { + console.error('Failed to update wallet points', error) + } + } + } + updateWalletPoints() + }, [ + account, + chainId, + dispatch, + isDev, + pointsTestnetExperience, + transactionHash, + walletOwnership, + ]) + + const handleCloseModal = useCallback(() => { + reset() + dispatch(resetState()) + handleAction() + }, [dispatch, handleAction, reset]) + + const styles = { + wrapper: css` + height: 518px; + position: relative; + `, + congrats: css` + margin: ${theme.spacing(-4, -4.5, 0, -4.5)}; + `, + ribbon: css` + position: relative; + ${theme.cssMixins.rowHCentered}; + font-weight: 700; + margin-top: ${theme.spacing(-8)}; + color: ${theme.palette.text.primary}; + font-size: 20px; + line-height: 160%; + letter-spacing: 0.15px; + `, + ribbonContent: css` + ${theme.cssMixins.rowVCentered}; + position: absolute; + top: ${theme.spacing(1)}; + + svg { + margin-right: ${theme.spacing(1)}; + } + `, + entirePoints: css` + color: ${theme.palette.text.tertiary}; + text-align: center; + font-weight: 700; + font-size: 20px; + line-height: 160%; + letter-spacing: 0.15px; + margin-top: ${theme.spacing(7)}; + `, + entirePointsDetails: css` + color: ${theme.palette.text.tertiary}; + text-align: center; + font-weight: 400; + font-size: 16px; + line-height: 150%; + letter-spacing: 0.15px; + margin-top: ${theme.spacing(4)}; + `, + everyday: css` + font-weight: 700; + `, + } + + if (state === STATE.SignIn) { + return ( + + ) + } + + if (state === STATE.Congrats) { + return ( + + + + + + + + + + {hasPointsAccumulated + ? `${formatNumber(pointsAccumulated)} Points` + : 'Points earned'} + + + + + {hasPointsAccumulated ? ( + <> + Congratulations, + you've earned {pointsAccumulated} points + + ) : ( + Congratulations on joining the Huma Protocol! + )} + + + You'll earn points everyday for{' '} + {monthText} straight. Plus, If you keep your investment till after{' '} + {monthText}, you’ll gain extra points daily. + + + GREAT + + + ) + } + + return +} diff --git a/packages/huma-widget/src/components/Lend/solanaSupply/index.tsx b/packages/huma-widget/src/components/Lend/solanaSupply/index.tsx new file mode 100644 index 0000000..e0fb1b9 --- /dev/null +++ b/packages/huma-widget/src/components/Lend/solanaSupply/index.tsx @@ -0,0 +1,173 @@ +import { SolanaPoolInfo, TrancheType } from '@huma-finance/shared' +import { + SolanaPoolState, + useLenderAccounts, + useTokenAccount, +} from '@huma-finance/web-shared' +import React, { useEffect, useState } from 'react' +import { useDispatch } from 'react-redux' + +import { useAppSelector } from '../../../hooks/useRedux' +import { setStep } from '../../../store/widgets.reducers' +import { selectWidgetState } from '../../../store/widgets.selectors' +import { WIDGET_STEP } from '../../../store/widgets.store' +import { ErrorModal } from '../../ErrorModal' +import { WidgetWrapper } from '../../WidgetWrapper' +import { Evaluation } from './1-Evaluation' +import { ChooseTranche } from './2-ChooseTranche' +import { ChooseAmount } from './3-ChooseAmount' +import { Transfer } from './4-Transfer' +import { Success } from './5-Success' +import { PointsEarned } from './6-PointsEarned' + +export interface Campaign { + id: string + campaignGroupId: string +} + +/** + * Lend pool supply props + * @typedef {Object} SolanaLendSupplyProps + * @property {SolanaPoolInfo} poolInfo The metadata of the pool. + * @property {SolanaPoolState} poolState The current state config of the pool. + * @property {boolean} pointsTestnetExperience If the user is in the testnet experience. + * @property {function():void} handleClose Function to notify to close the widget modal when user clicks the 'x' close button. + * @property {function():void|undefined} handleSuccess Optional function to notify that the lending pool supply action is successful. + */ +export interface SolanaLendSupplyProps { + poolInfo: SolanaPoolInfo + poolState: SolanaPoolState + pointsTestnetExperience: boolean + handleClose: () => void + handleSuccess?: () => void +} + +export function SolanaLendSupply({ + poolInfo, + poolState, + pointsTestnetExperience, + handleClose, + handleSuccess, +}: SolanaLendSupplyProps): React.ReactElement | null { + const dispatch = useDispatch() + const { isUniTranche } = poolState + const { + seniorLenderApproved, + juniorLenderApproved, + loading: isLoadingLenderAccounts, + } = useLenderAccounts(poolInfo.chainId, poolInfo.poolName) + const [tokenAccount, isLoadingTokenAccount] = useTokenAccount(poolInfo) + const { step, errorMessage } = useAppSelector(selectWidgetState) + const [selectedTranche, setSelectedTranche] = useState() + const [transactionHash, setTransactionHash] = useState() + + useEffect(() => { + if (!step && !isLoadingLenderAccounts && !isLoadingTokenAccount) { + if (!juniorLenderApproved && !seniorLenderApproved) { + dispatch(setStep(WIDGET_STEP.Evaluation)) + return + } + + if (juniorLenderApproved && !seniorLenderApproved) { + setSelectedTranche('junior') + dispatch(setStep(WIDGET_STEP.ChooseAmount)) + return + } + + if (seniorLenderApproved && !juniorLenderApproved) { + setSelectedTranche('senior') + dispatch(setStep(WIDGET_STEP.ChooseAmount)) + return + } + + if (juniorLenderApproved && seniorLenderApproved) { + dispatch(setStep(WIDGET_STEP.ChooseTranche)) + } + } + }, [ + dispatch, + handleClose, + poolInfo, + step, + isLoadingLenderAccounts, + juniorLenderApproved, + seniorLenderApproved, + isLoadingTokenAccount, + ]) + + if (isLoadingLenderAccounts || isLoadingTokenAccount) { + return ( + + ) + } + + return ( + + {step === WIDGET_STEP.Evaluation && ( + + )} + {step === WIDGET_STEP.ChooseTranche && ( + + )} + {step === WIDGET_STEP.ChooseAmount && ( + + )} + {step === WIDGET_STEP.Transfer && selectedTranche && ( + + )} + {step === WIDGET_STEP.Done && ( + + )} + {step === WIDGET_STEP.PointsEarned && transactionHash && ( + + )} + {step === WIDGET_STEP.Error && ( + + )} + + ) +} diff --git a/packages/huma-widget/src/components/Lend/supplyV2/2-Evaluation.tsx b/packages/huma-widget/src/components/Lend/supplyV2/2-Evaluation.tsx index 3ba7186..469666a 100644 --- a/packages/huma-widget/src/components/Lend/supplyV2/2-Evaluation.tsx +++ b/packages/huma-widget/src/components/Lend/supplyV2/2-Evaluation.tsx @@ -1,9 +1,9 @@ -import { PoolInfoV2, TrancheType } from '@huma-finance/shared' +import { CHAIN_TYPE, PoolInfoV2, TrancheType } from '@huma-finance/shared' import React from 'react' import { Campaign } from '.' -import { PersonaEvaluation } from './components/PersonaEvaluation' -import { SecuritizeEvaluation } from './components/SecuritizeEvaluation' +import { PersonaEvaluation } from '../components/PersonaEvaluation' +import { SecuritizeEvaluation } from '../components/SecuritizeEvaluation' type Props = { poolInfo: PoolInfoV2 @@ -35,6 +35,7 @@ export function Evaluation({ isUniTranche={isUniTranche} pointsTestnetExperience={pointsTestnetExperience} campaign={campaign} + chainType={CHAIN_TYPE.EVM} changeTranche={changeTranche} /> ) diff --git a/packages/huma-widget/src/components/Lend/supplyV2/6-Success.tsx b/packages/huma-widget/src/components/Lend/supplyV2/6-Success.tsx index 7a8ba4a..4a50dec 100644 --- a/packages/huma-widget/src/components/Lend/supplyV2/6-Success.tsx +++ b/packages/huma-widget/src/components/Lend/supplyV2/6-Success.tsx @@ -90,13 +90,13 @@ export function Success({ ] const getSubContent = () => { - const redemptionTime = dayjs() + const lockupEndTime = dayjs() .add(lpConfig.withdrawalLockoutPeriodInDays, 'day') .date(1) - const withdrawTime = redemptionTime.add(1, 'month') + const withdrawTime = lockupEndTime.add(1, 'month') return [ `You can begin submitting redemption requests on ${timeUtil.timestampToLL( - redemptionTime.unix(), + lockupEndTime.unix(), )}, which can be redeemed starting ${timeUtil.timestampToLL( withdrawTime.unix(), )}.`, diff --git a/packages/huma-widget/src/components/Lend/supplyV2/8-PointsEarned.tsx b/packages/huma-widget/src/components/Lend/supplyV2/8-PointsEarned.tsx index e0a3c55..3519b75 100644 --- a/packages/huma-widget/src/components/Lend/supplyV2/8-PointsEarned.tsx +++ b/packages/huma-widget/src/components/Lend/supplyV2/8-PointsEarned.tsx @@ -76,14 +76,16 @@ export function PointsEarned({ useEffect(() => { const checkWalletOwnership = async () => { - const ownership = await CampaignService.checkWalletOwnership( - account!, - isDev, - pointsTestnetExperience, - ) - setWalletOwnership(ownership) - if (!ownership) { - setAuthError('WalletNotSignInException') + if (account) { + const ownership = await CampaignService.checkWalletOwnership( + account, + isDev, + pointsTestnetExperience, + ) + setWalletOwnership(ownership) + if (!ownership) { + setAuthError('WalletNotSignInException') + } } } checkWalletOwnership() diff --git a/packages/huma-widget/src/components/SolanaTxDoneModal.tsx b/packages/huma-widget/src/components/SolanaTxDoneModal.tsx new file mode 100644 index 0000000..364873e --- /dev/null +++ b/packages/huma-widget/src/components/SolanaTxDoneModal.tsx @@ -0,0 +1,119 @@ +import { Box, Button, css, Typography, useTheme } from '@mui/material' +import React, { useCallback } from 'react' + +import { SolanaChainEnum } from '@huma-finance/shared' +import { useAppDispatch } from '../hooks/useRedux' +import { resetState } from '../store/widgets.reducers' +import { CheckIcon } from './icons' +import { SolanaViewOnExplorer } from './SolanaViewOnExplorer' + +type Props = { + content: string[] + subContent?: string[] + buttonText?: string + solanaSignature?: string + chainId?: SolanaChainEnum + handleAction: () => void +} + +export function SolanaTxDoneModal({ + content, + subContent, + handleAction, + solanaSignature, + chainId, + buttonText, +}: Props): React.ReactElement { + const theme = useTheme() + const dispatch = useAppDispatch() + + const styles = { + wrapper: css` + height: 518px; + position: relative; + `, + header: css` + ${theme.cssMixins.rowHCentered}; + margin-top: ${theme.spacing(-0.5)}; + `, + content: css` + ${theme.cssMixins.colVCentered}; + font-weight: ${subContent ? 700 : 400}; + font-size: 18px; + color: ${theme.palette.text.secondary}; + margin-top: ${theme.spacing(8)}; + text-align: center; + `, + subContent: css` + ${theme.cssMixins.colVCentered}; + font-weight: 400; + font-size: 18px; + color: ${theme.palette.text.primary}; + margin-top: ${theme.spacing(2)}; + text-align: center; + `, + check: css` + width: 100%; + ${theme.cssMixins.rowHCentered}; + margin-top: ${theme.spacing(10)}; + `, + bottomButtonGroup: css` + width: 100%; + position: absolute; + bottom: 0; + display: flex; + row-gap: ${theme.spacing(1)}; + column-gap: ${theme.spacing(1)}; + + button { + height: 40px; + margin-top: ${theme.spacing(1)}; + } + `, + } + + const handleCloseModal = useCallback(() => { + dispatch(resetState()) + handleAction() + }, [dispatch, handleAction]) + + return ( + + + Transaction Completed + + + + + + {content.map((item) => ( + + {item} + + ))} + + {subContent && ( + + {subContent.map((item) => ( + + {item} + + ))} + + )} + + {solanaSignature && chainId && ( + + )} + + + + ) +} diff --git a/packages/huma-widget/src/components/SolanaTxSendModal.tsx b/packages/huma-widget/src/components/SolanaTxSendModal.tsx new file mode 100644 index 0000000..dbf2fb3 --- /dev/null +++ b/packages/huma-widget/src/components/SolanaTxSendModal.tsx @@ -0,0 +1,61 @@ +import { SolanaChainEnum } from '@huma-finance/shared' +import React, { useEffect, useState } from 'react' + +import { useConnection, useWallet } from '@solana/wallet-adapter-react' +import { Transaction } from '@solana/web3.js' +import { setError, setSolanaSignature } from '../store/widgets.reducers' +import { LoadingModal } from './LoadingModal' +import { SolanaViewOnExplorer } from './SolanaViewOnExplorer' +import { useAppDispatch } from '../hooks/useRedux' + +type Props = { + chainId: SolanaChainEnum + tx?: Transaction + handleSuccess: () => void +} + +export function SolanaTxSendModal({ + chainId, + tx, + handleSuccess, +}: Props): React.ReactElement | null { + const dispatch = useAppDispatch() + const { sendTransaction } = useWallet() + const { connection } = useConnection() + const [signature, setSignature] = useState('') + + useEffect(() => { + async function sendTx() { + if (!connection || !tx) { + return + } + + try { + const latestBlockHash = await connection.getLatestBlockhash() + const signature = await sendTransaction(tx, connection) + setSignature(signature) + dispatch(setSolanaSignature(signature)) + + await connection.confirmTransaction({ + blockhash: latestBlockHash.blockhash, + lastValidBlockHeight: latestBlockHash.lastValidBlockHeight, + signature, + }) + handleSuccess() + } catch (error: unknown) { + const err = error as Error + dispatch(setError({ errorMessage: err?.message || '' })) + } + } + sendTx() + }, [connection, dispatch, handleSuccess, sendTransaction, tx]) + + return ( + + + + ) +} diff --git a/packages/huma-widget/src/components/SolanaViewOnExplorer.tsx b/packages/huma-widget/src/components/SolanaViewOnExplorer.tsx new file mode 100644 index 0000000..073d24b --- /dev/null +++ b/packages/huma-widget/src/components/SolanaViewOnExplorer.tsx @@ -0,0 +1,29 @@ +import { Box, Button } from '@mui/material' +import { + getSolanaExplorerUrl, + openInNewTab, + SolanaChainEnum, +} from '@huma-finance/shared' +import React from 'react' + +type Props = { + chainId: SolanaChainEnum + signature: string +} + +export function SolanaViewOnExplorer({ + chainId, + signature, +}: Props): React.ReactElement | null { + const link = getSolanaExplorerUrl(chainId, signature, 'tx') + + if (!link) { + return null + } + + return ( + + ) +} diff --git a/packages/huma-widget/src/components/WidgetWrapper.tsx b/packages/huma-widget/src/components/WidgetWrapper.tsx index 55529fa..237e1a5 100644 --- a/packages/huma-widget/src/components/WidgetWrapper.tsx +++ b/packages/huma-widget/src/components/WidgetWrapper.tsx @@ -31,7 +31,7 @@ export function WidgetWrapper({ }: WCProps): React.ReactElement | null { const theme = useTheme() const dispatch = useAppDispatch() - const { step } = useAppSelector(selectWidgetState) + const { step, solanaSignature } = useAppSelector(selectWidgetState) const [{ state, failReason, txReceipt }] = useAtom(sendTxAtom) const reset = useResetAtom(txAtom) @@ -42,12 +42,14 @@ export function WidgetWrapper({ }, [dispatch, failReason, state]) useEffect(() => { - if (step === WIDGET_STEP.Done && txReceipt) { - if (handleSuccess) { + if (step === WIDGET_STEP.Done && (txReceipt || solanaSignature)) { + if (handleSuccess && txReceipt) { handleSuccess(txReceipt.blockNumber) + } else if (handleSuccess && solanaSignature) { + handleSuccess(0) // solana tx doesn't have block number } } - }, [handleSuccess, step, txReceipt]) + }, [handleSuccess, solanaSignature, step, txReceipt]) const handleCloseModal = useCallback(() => { reset() diff --git a/packages/huma-widget/src/index.tsx b/packages/huma-widget/src/index.tsx index 7505691..711c1b2 100644 --- a/packages/huma-widget/src/index.tsx +++ b/packages/huma-widget/src/index.tsx @@ -73,6 +73,26 @@ import { SuperfluidFactoring } from './components/SuperfluidFactoring' import { store } from './store' import { themeHuma } from './theme' import { WCProps } from './utilTypes' +import { + SolanaLendSupply, + SolanaLendSupplyProps, +} from './components/Lend/solanaSupply' +import { + SolanaLendAddRedemption, + SolanaLendAddRedemptionProps, +} from './components/Lend/solanaAddRedemption' +import { + SolanaLendCancelRedemption, + SolanaLendCancelRedemptionProps, +} from './components/Lend/solanaCancelRedemption' +import { + SolanaBorrow, + SolanaBorrowProps, +} from './components/CreditLine/solanaBorrow' +import { + SolanaPayment, + SolanaPaymentProps, +} from './components/CreditLine/solanaPayment' import { NotifiContextWrapper } from './components/Notifi/NotifiContextWrapper' /** @@ -534,4 +554,123 @@ export function ReceivableBackedCreditLinePaymentWidgetV2( ) } +/** + * Object representing the props passed to Solana widgets + * @typedef {Object} SolanaWidgetProps + */ +type SolanaWidgetProps = { + handleClose?: () => void +} + +function SolanaWidget(props: WCProps) { + const { children } = props + + return ( + + {children} + + ) +} + +/** + * Lend pool supply widget props for Solana pools + * @typedef {Object} SolanaLendSupplyWidgetProps + */ +type SolanaLendSupplyWidgetProps = SolanaLendSupplyProps & SolanaWidgetProps + +/** + * Lend pool supply widget for Solana pools + * + * @param {SolanaLendSupplyWidgetProps} props - Widget props + */ +export function SolanaLendSupplyWidget(props: SolanaLendSupplyWidgetProps) { + return ( + + + + ) +} + +/** + * Lend pool supply widget props for Solana pools + * @typedef {Object} SolanaLendAddRedemptionWidgetProps + */ +type SolanaLendAddRedemptionWidgetProps = SolanaLendAddRedemptionProps & + SolanaWidgetProps + +/** + * Lend pool supply widget for Solana pools + * + * @param {SolanaLendAddRedemptionWidgetProps} props - Widget props + */ +export function SolanaLendAddRedemptionWidget( + props: SolanaLendAddRedemptionWidgetProps, +) { + return ( + + + + ) +} + +/** + * Lend pool supply widget props for Solana pools + * @typedef {Object} SolanaLendCancelRedemptionWidgetProps + */ +type SolanaLendCancelRedemptionWidgetProps = SolanaLendCancelRedemptionProps & + SolanaWidgetProps + +/** + * Lend pool supply widget for Solana pools + * + * @param {SolanaLendCancelRedemptionWidgetProps} props - Widget props + */ +export function SolanaLendCancelRedemptionWidget( + props: SolanaLendCancelRedemptionWidgetProps, +) { + return ( + + + + ) +} + +/** + * Lend pool supply widget props for Solana pools + * @typedef {Object} SolanaBorrowWidgetProps + */ +type SolanaBorrowWidgetProps = SolanaBorrowProps & SolanaWidgetProps + +/** + * Lend pool supply widget for Solana pools + * + * @param {SolanaBorrowWidgetProps} props - Widget props + */ +export function SolanaBorrowWidget(props: SolanaBorrowWidgetProps) { + return ( + + + + ) +} + +/** + * Lend pool supply widget props for Solana pools + * @typedef {Object} SolanaPaymentWidgetProps + */ +type SolanaPaymentWidgetProps = SolanaPaymentProps & SolanaWidgetProps + +/** + * Lend pool supply widget for Solana pools + * + * @param {SolanaPaymentWidgetProps} props - Widget props + */ +export function SolanaPaymentWidget(props: SolanaPaymentWidgetProps) { + return ( + + + + ) +} + export * from './components/Notifi/NotifiContextWrapper' diff --git a/packages/huma-widget/src/store/widgets.reducers.ts b/packages/huma-widget/src/store/widgets.reducers.ts index 9d19726..079e0f0 100644 --- a/packages/huma-widget/src/store/widgets.reducers.ts +++ b/packages/huma-widget/src/store/widgets.reducers.ts @@ -32,6 +32,7 @@ export const widgetSlice = createSlice({ state.withdrawShares = undefined state.redeemAmount = undefined state.redeemShares = undefined + state.solanaSignature = undefined }, setStep: (state, { payload }: PayloadAction) => { state.step = payload @@ -102,6 +103,9 @@ export const widgetSlice = createSlice({ setMultisend: (state, { payload }: PayloadAction) => { state.multisend = payload }, + setSolanaSignature: (state, { payload }: PayloadAction) => { + state.solanaSignature = payload + }, setError: ( state, { @@ -130,6 +134,7 @@ export const { setWithdrawShares, setRedeemAmount, setRedeemShares, + setSolanaSignature, } = widgetSlice.actions export default widgetSlice.reducer diff --git a/packages/huma-widget/src/store/widgets.store.ts b/packages/huma-widget/src/store/widgets.store.ts index 2944018..29d3224 100644 --- a/packages/huma-widget/src/store/widgets.store.ts +++ b/packages/huma-widget/src/store/widgets.store.ts @@ -58,6 +58,7 @@ export type WidgetState = { tokenId?: string stream?: WidgetStream multisend?: MultisendPayload + solanaSignature?: string } export const initialWidgetState: WidgetState = {} diff --git a/yarn.lock b/yarn.lock index 86bedc1..efa9930 100644 --- a/yarn.lock +++ b/yarn.lock @@ -57,6 +57,11 @@ tslib "^2.3.0" zen-observable-ts "^1.2.5" +"@aptos-labs/aptos-cli@^0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@aptos-labs/aptos-cli/-/aptos-cli-0.2.0.tgz#ee14acd2fe1e97d8aadf0970b5323ead90a58e62" + integrity sha512-6kljJFRsTLXCvgkNhBoOLhVyo7rmih+8+XAtdeciIXkZYwzwVS3TFPLMqBUO2HcY6gYtQQRmTG52R5ihyi/bXA== + "@aptos-labs/aptos-client@^0.1.0": version "0.1.0" resolved "https://registry.yarnpkg.com/@aptos-labs/aptos-client/-/aptos-client-0.1.0.tgz#911fb27e436e5731290de0e0cfce6e0d3feeabaa" @@ -65,6 +70,31 @@ axios "1.6.2" got "^11.8.6" +"@aptos-labs/aptos-client@^0.1.1": + version "0.1.1" + resolved "https://registry.yarnpkg.com/@aptos-labs/aptos-client/-/aptos-client-0.1.1.tgz#cbcd2a73bad252e344318baec32ecc54d8136ee0" + integrity sha512-kJsoy4fAPTOhzVr7Vwq8s/AUg6BQiJDa7WOqRzev4zsuIS3+JCuIZ6vUd7UBsjnxtmguJJulMRs9qWCzVBt2XA== + dependencies: + axios "1.7.4" + got "^11.8.6" + +"@aptos-labs/ts-sdk@^1.26.0": + version "1.27.1" + resolved "https://registry.yarnpkg.com/@aptos-labs/ts-sdk/-/ts-sdk-1.27.1.tgz#44e4719fb6c51dbf35e2da395263dfb1974bd9ac" + integrity sha512-QS4BlivXQy/uJgXcNOfXNjv8l+MSd+qQ256mY/Jc6iaWbfn69nRYh6chjSyLot4fHA49QxlZlWh1mJLlfNdtow== + dependencies: + "@aptos-labs/aptos-cli" "^0.2.0" + "@aptos-labs/aptos-client" "^0.1.1" + "@noble/curves" "^1.4.0" + "@noble/hashes" "^1.4.0" + "@scure/bip32" "^1.4.0" + "@scure/bip39" "^1.3.0" + eventemitter3 "^5.0.1" + form-data "^4.0.0" + js-base64 "^3.7.7" + jwt-decode "^4.0.0" + poseidon-lite "^0.2.0" + "@ardatan/relay-compiler@12.0.0": version "12.0.0" resolved "https://registry.yarnpkg.com/@ardatan/relay-compiler/-/relay-compiler-12.0.0.tgz#2e4cca43088e807adc63450e8cab037020e91106" @@ -119,6 +149,14 @@ "@babel/highlight" "^7.23.4" chalk "^2.4.2" +"@babel/code-frame@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.24.7.tgz#882fd9e09e8ee324e496bd040401c6f046ef4465" + integrity sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA== + dependencies: + "@babel/highlight" "^7.24.7" + picocolors "^1.0.0" + "@babel/compat-data@^7.20.5", "@babel/compat-data@^7.22.6", "@babel/compat-data@^7.23.3", "@babel/compat-data@^7.23.5": version "7.23.5" resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.23.5.tgz#ffb878728bb6bdcb6f4510aa51b1be9afb8cfd98" @@ -164,6 +202,16 @@ "@jridgewell/trace-mapping" "^0.3.17" jsesc "^2.5.1" +"@babel/generator@^7.25.6": + version "7.25.6" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.25.6.tgz#0df1ad8cb32fe4d2b01d8bf437f153d19342a87c" + integrity sha512-VPC82gr1seXOpkjAAKoLhP50vx4vGNlF4msF64dSFq1P8RfB+QAuJWGHPXXPc8QyfVWwwB/TNNU4+ayZmHNbZw== + dependencies: + "@babel/types" "^7.25.6" + "@jridgewell/gen-mapping" "^0.3.5" + "@jridgewell/trace-mapping" "^0.3.25" + jsesc "^2.5.1" + "@babel/helper-annotate-as-pure@^7.18.6", "@babel/helper-annotate-as-pure@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz#e7f06737b197d580a01edf75d97e2c8be99d3882" @@ -171,6 +219,13 @@ dependencies: "@babel/types" "^7.22.5" +"@babel/helper-annotate-as-pure@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.24.7.tgz#5373c7bc8366b12a033b4be1ac13a206c6656aab" + integrity sha512-BaDeOonYvhdKw+JoMVkAixAAJzG2jVPIwWoKBPdYuY9b452e2rPuI9QPYh3KpofZ3pW2akOmwZLOiOsHMiqRAg== + dependencies: + "@babel/types" "^7.24.7" + "@babel/helper-builder-binary-assignment-operator-visitor@^7.22.15": version "7.22.15" resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.22.15.tgz#5426b109cf3ad47b91120f8328d8ab1be8b0b956" @@ -204,6 +259,19 @@ "@babel/helper-split-export-declaration" "^7.22.6" semver "^6.3.1" +"@babel/helper-create-class-features-plugin@^7.25.0": + version "7.25.4" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.25.4.tgz#57eaf1af38be4224a9d9dd01ddde05b741f50e14" + integrity sha512-ro/bFs3/84MDgDmMwbcHgDa8/E6J3QKNTk4xJJnVeFtGE+tL0K26E3pNxhYz2b67fJpt7Aphw5XcploKXuCvCQ== + dependencies: + "@babel/helper-annotate-as-pure" "^7.24.7" + "@babel/helper-member-expression-to-functions" "^7.24.8" + "@babel/helper-optimise-call-expression" "^7.24.7" + "@babel/helper-replace-supers" "^7.25.0" + "@babel/helper-skip-transparent-expression-wrappers" "^7.24.7" + "@babel/traverse" "^7.25.4" + semver "^6.3.1" + "@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.22.15", "@babel/helper-create-regexp-features-plugin@^7.22.5": version "7.22.15" resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.22.15.tgz#5ee90093914ea09639b01c711db0d6775e558be1" @@ -251,6 +319,14 @@ dependencies: "@babel/types" "^7.23.0" +"@babel/helper-member-expression-to-functions@^7.24.8": + version "7.24.8" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.24.8.tgz#6155e079c913357d24a4c20480db7c712a5c3fb6" + integrity sha512-LABppdt+Lp/RlBxqrh4qgf1oEH/WxdzQNDJIu5gC/W1GyvPVrOBiItmmM8wan2fm4oYqFuFfkXmlGpLQhPY8CA== + dependencies: + "@babel/traverse" "^7.24.8" + "@babel/types" "^7.24.8" + "@babel/helper-module-imports@^7.0.0", "@babel/helper-module-imports@^7.10.4", "@babel/helper-module-imports@^7.16.7", "@babel/helper-module-imports@^7.18.6", "@babel/helper-module-imports@^7.22.15", "@babel/helper-module-imports@^7.22.5": version "7.22.15" resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz#16146307acdc40cc00c3b2c647713076464bdbf0" @@ -258,6 +334,14 @@ dependencies: "@babel/types" "^7.22.15" +"@babel/helper-module-imports@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.24.7.tgz#f2f980392de5b84c3328fc71d38bd81bbb83042b" + integrity sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA== + dependencies: + "@babel/traverse" "^7.24.7" + "@babel/types" "^7.24.7" + "@babel/helper-module-transforms@^7.23.3": version "7.23.3" resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz#d7d12c3c5d30af5b3c0fcab2a6d5217773e2d0f1" @@ -269,6 +353,16 @@ "@babel/helper-split-export-declaration" "^7.22.6" "@babel/helper-validator-identifier" "^7.22.20" +"@babel/helper-module-transforms@^7.24.8": + version "7.25.2" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.25.2.tgz#ee713c29768100f2776edf04d4eb23b8d27a66e6" + integrity sha512-BjyRAbix6j/wv83ftcVJmBt72QtHI56C7JXZoG2xATiLpmoC7dpd8WnkikExHDVPpi/3qCmO6WY1EaXOluiecQ== + dependencies: + "@babel/helper-module-imports" "^7.24.7" + "@babel/helper-simple-access" "^7.24.7" + "@babel/helper-validator-identifier" "^7.24.7" + "@babel/traverse" "^7.25.2" + "@babel/helper-optimise-call-expression@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz#f21531a9ccbff644fdd156b4077c16ff0c3f609e" @@ -276,11 +370,23 @@ dependencies: "@babel/types" "^7.22.5" +"@babel/helper-optimise-call-expression@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.24.7.tgz#8b0a0456c92f6b323d27cfd00d1d664e76692a0f" + integrity sha512-jKiTsW2xmWwxT1ixIdfXUZp+P5yURx2suzLZr5Hi64rURpDYdMW0pv+Uf17EYk2Rd428Lx4tLsnjGJzYKDM/6A== + dependencies: + "@babel/types" "^7.24.7" + "@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.20.2", "@babel/helper-plugin-utils@^7.22.5", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz#dd7ee3735e8a313b9f7b05a773d892e88e6d7295" integrity sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg== +"@babel/helper-plugin-utils@^7.24.7", "@babel/helper-plugin-utils@^7.24.8": + version "7.24.8" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.8.tgz#94ee67e8ec0e5d44ea7baeb51e571bd26af07878" + integrity sha512-FFWx5142D8h2Mgr/iPVGH5G7w6jDn4jUSpZTyDnQO0Yn7Ks2Kuz6Pci8H6MPCoUJegd/UZQ3tAvfLCxQSnWWwg== + "@babel/helper-remap-async-to-generator@^7.22.20": version "7.22.20" resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.20.tgz#7b68e1cb4fa964d2996fd063723fb48eca8498e0" @@ -299,6 +405,15 @@ "@babel/helper-member-expression-to-functions" "^7.22.15" "@babel/helper-optimise-call-expression" "^7.22.5" +"@babel/helper-replace-supers@^7.25.0": + version "7.25.0" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.25.0.tgz#ff44deac1c9f619523fe2ca1fd650773792000a9" + integrity sha512-q688zIvQVYtZu+i2PsdIu/uWGRpfxzr5WESsfpShfZECkO+d2o+WROWezCi/Q6kJ0tfPa5+pUGUlfx2HhrA3Bg== + dependencies: + "@babel/helper-member-expression-to-functions" "^7.24.8" + "@babel/helper-optimise-call-expression" "^7.24.7" + "@babel/traverse" "^7.25.0" + "@babel/helper-simple-access@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz#4938357dc7d782b80ed6dbb03a0fba3d22b1d5de" @@ -306,6 +421,14 @@ dependencies: "@babel/types" "^7.22.5" +"@babel/helper-simple-access@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.24.7.tgz#bcade8da3aec8ed16b9c4953b74e506b51b5edb3" + integrity sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg== + dependencies: + "@babel/traverse" "^7.24.7" + "@babel/types" "^7.24.7" + "@babel/helper-skip-transparent-expression-wrappers@^7.20.0", "@babel/helper-skip-transparent-expression-wrappers@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz#007f15240b5751c537c40e77abb4e89eeaaa8847" @@ -313,6 +436,14 @@ dependencies: "@babel/types" "^7.22.5" +"@babel/helper-skip-transparent-expression-wrappers@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.24.7.tgz#5f8fa83b69ed5c27adc56044f8be2b3ea96669d9" + integrity sha512-IO+DLT3LQUElMbpzlatRASEyQtfhSE0+m465v++3jyyXeBTBUjtVZg28/gHeV5mrTJqvEKhKroBGAvhW+qPHiQ== + dependencies: + "@babel/traverse" "^7.24.7" + "@babel/types" "^7.24.7" + "@babel/helper-split-export-declaration@^7.22.6": version "7.22.6" resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz#322c61b7310c0997fe4c323955667f18fcefb91c" @@ -325,16 +456,31 @@ resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz#9478c707febcbbe1ddb38a3d91a2e054ae622d83" integrity sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ== +"@babel/helper-string-parser@^7.24.8": + version "7.24.8" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.24.8.tgz#5b3329c9a58803d5df425e5785865881a81ca48d" + integrity sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ== + "@babel/helper-validator-identifier@^7.22.20": version "7.22.20" resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz#c4ae002c61d2879e724581d96665583dbc1dc0e0" integrity sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A== +"@babel/helper-validator-identifier@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz#75b889cfaf9e35c2aaf42cf0d72c8e91719251db" + integrity sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w== + "@babel/helper-validator-option@^7.22.15", "@babel/helper-validator-option@^7.23.5": version "7.23.5" resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz#907a3fbd4523426285365d1206c423c4c5520307" integrity sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw== +"@babel/helper-validator-option@^7.24.7": + version "7.24.8" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.24.8.tgz#3725cdeea8b480e86d34df15304806a06975e33d" + integrity sha512-xb8t9tD1MHLungh/AIoWYN+gVHaB9kwlu8gffXGSt3FFEIT7RjS+xWbc2vUD1UTZdIpKj/ab3rdqJ7ufngyi2Q== + "@babel/helper-wrap-function@^7.22.20": version "7.22.20" resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.22.20.tgz#15352b0b9bfb10fc9c76f79f6342c00e3411a569" @@ -362,11 +508,28 @@ chalk "^2.4.2" js-tokens "^4.0.0" +"@babel/highlight@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.24.7.tgz#a05ab1df134b286558aae0ed41e6c5f731bf409d" + integrity sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw== + dependencies: + "@babel/helper-validator-identifier" "^7.24.7" + chalk "^2.4.2" + js-tokens "^4.0.0" + picocolors "^1.0.0" + "@babel/parser@^7.1.0", "@babel/parser@^7.14.0", "@babel/parser@^7.14.7", "@babel/parser@^7.16.8", "@babel/parser@^7.20.15", "@babel/parser@^7.20.7", "@babel/parser@^7.22.15", "@babel/parser@^7.23.6": version "7.23.6" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.6.tgz#ba1c9e512bda72a47e285ae42aff9d2a635a9e3b" integrity sha512-Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ== +"@babel/parser@^7.25.0", "@babel/parser@^7.25.6": + version "7.25.6" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.25.6.tgz#85660c5ef388cbbf6e3d2a694ee97a38f18afe2f" + integrity sha512-trGdfBdbD0l1ZPmcJ83eNxB9rbEax4ALFTF7fN386TMYbeCQbyme5cOEXQhbGXKebwGaB/J52w1mrklMcbgy6Q== + dependencies: + "@babel/types" "^7.25.6" + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.23.3": version "7.23.3" resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.23.3.tgz#5cd1c87ba9380d0afb78469292c954fee5d2411a" @@ -558,6 +721,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" +"@babel/plugin-syntax-jsx@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.7.tgz#39a1fa4a7e3d3d7f34e2acc6be585b718d30e02d" + integrity sha512-6ddciUPe/mpMnOKv/U+RSd2vvVy+Yw/JfBB0ZHYjEZt9NLHmCUylNYlsbqCCS1Bffjlb0fCwC9Vqz+sBz6PsiQ== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + "@babel/plugin-syntax-logical-assignment-operators@^7.10.4", "@babel/plugin-syntax-logical-assignment-operators@^7.8.3": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699" @@ -621,6 +791,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" +"@babel/plugin-syntax-typescript@^7.24.7": + version "7.25.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.25.4.tgz#04db9ce5a9043d9c635e75ae7969a2cd50ca97ff" + integrity sha512-uMOCoHVU52BsSWxPOMVv5qKRdeSlPuImUCB2dlPuBSU+W2/ROE7/Zg8F2Kepbk+8yBa68LlRKxO+xgEVWorsDg== + dependencies: + "@babel/helper-plugin-utils" "^7.24.8" + "@babel/plugin-syntax-unicode-sets-regex@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz#d49a3b3e6b52e5be6740022317580234a6a47357" @@ -826,6 +1003,15 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/helper-simple-access" "^7.22.5" +"@babel/plugin-transform-modules-commonjs@^7.24.7": + version "7.24.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.24.8.tgz#ab6421e564b717cb475d6fff70ae7f103536ea3c" + integrity sha512-WHsk9H8XxRs3JXKWFiqtQebdh9b/pTk4EgueygFzYlTKAg0Ud985mSevdNjdXdFBATSKVJGQXP1tv6aGbssLKA== + dependencies: + "@babel/helper-module-transforms" "^7.24.8" + "@babel/helper-plugin-utils" "^7.24.8" + "@babel/helper-simple-access" "^7.24.7" + "@babel/plugin-transform-modules-systemjs@^7.23.3": version "7.23.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.23.3.tgz#fa7e62248931cb15b9404f8052581c302dd9de81" @@ -1056,6 +1242,17 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/plugin-syntax-typescript" "^7.23.3" +"@babel/plugin-transform-typescript@^7.24.7": + version "7.25.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.25.2.tgz#237c5d10de6d493be31637c6b9fa30b6c5461add" + integrity sha512-lBwRvjSmqiMYe/pS0+1gggjJleUJi7NzjvQ1Fkqtt69hBa/0t1YuW/MLQMAPixfwaQOHUXsd6jeU3Z+vdGv3+A== + dependencies: + "@babel/helper-annotate-as-pure" "^7.24.7" + "@babel/helper-create-class-features-plugin" "^7.25.0" + "@babel/helper-plugin-utils" "^7.24.8" + "@babel/helper-skip-transparent-expression-wrappers" "^7.24.7" + "@babel/plugin-syntax-typescript" "^7.24.7" + "@babel/plugin-transform-unicode-escapes@^7.23.3": version "7.23.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.23.3.tgz#1f66d16cab01fab98d784867d24f70c1ca65b925" @@ -1205,6 +1402,17 @@ "@babel/plugin-transform-modules-commonjs" "^7.23.3" "@babel/plugin-transform-typescript" "^7.23.3" +"@babel/preset-typescript@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/preset-typescript/-/preset-typescript-7.24.7.tgz#66cd86ea8f8c014855671d5ea9a737139cbbfef1" + integrity sha512-SyXRe3OdWwIwalxDg5UtJnJQO+YPcTfwiIY2B0Xlddh9o7jpWLvv8X1RthIeDOxQ+O1ML5BLPCONToObyVQVuQ== + dependencies: + "@babel/helper-plugin-utils" "^7.24.7" + "@babel/helper-validator-option" "^7.24.7" + "@babel/plugin-syntax-jsx" "^7.24.7" + "@babel/plugin-transform-modules-commonjs" "^7.24.7" + "@babel/plugin-transform-typescript" "^7.24.7" + "@babel/regjsgen@^0.8.0": version "0.8.0" resolved "https://registry.yarnpkg.com/@babel/regjsgen/-/regjsgen-0.8.0.tgz#f0ba69b075e1f05fb2825b7fad991e7adbb18310" @@ -1232,6 +1440,13 @@ dependencies: regenerator-runtime "^0.14.0" +"@babel/runtime@^7.25.0": + version "7.25.6" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.25.6.tgz#9afc3289f7184d8d7f98b099884c26317b9264d2" + integrity sha512-VBj9MYyDb9tuLq7yzqjgzt6Q+IBQLrGZfdjOekyEirZPHxXWoTSGUTMrpsfi58Up73d13NfYLv8HT9vmznjzhQ== + dependencies: + regenerator-runtime "^0.14.0" + "@babel/template@^7.18.10", "@babel/template@^7.22.15", "@babel/template@^7.3.3": version "7.22.15" resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.22.15.tgz#09576efc3830f0430f4548ef971dde1350ef2f38" @@ -1241,6 +1456,15 @@ "@babel/parser" "^7.22.15" "@babel/types" "^7.22.15" +"@babel/template@^7.25.0": + version "7.25.0" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.25.0.tgz#e733dc3134b4fede528c15bc95e89cb98c52592a" + integrity sha512-aOOgh1/5XzKvg1jvVz7AVrx2piJ2XBi227DHmbY6y+bM9H2FlN+IfecYu4Xl0cNiiVejlsCri89LUsbj8vJD9Q== + dependencies: + "@babel/code-frame" "^7.24.7" + "@babel/parser" "^7.25.0" + "@babel/types" "^7.25.0" + "@babel/traverse@^7.14.0", "@babel/traverse@^7.16.8", "@babel/traverse@^7.23.7", "@babel/traverse@^7.4.5", "@babel/traverse@^7.7.2": version "7.23.7" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.23.7.tgz#9a7bf285c928cb99b5ead19c3b1ce5b310c9c305" @@ -1257,6 +1481,19 @@ debug "^4.3.1" globals "^11.1.0" +"@babel/traverse@^7.24.7", "@babel/traverse@^7.24.8", "@babel/traverse@^7.25.0", "@babel/traverse@^7.25.2", "@babel/traverse@^7.25.4": + version "7.25.6" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.25.6.tgz#04fad980e444f182ecf1520504941940a90fea41" + integrity sha512-9Vrcx5ZW6UwK5tvqsj0nGpp/XzqthkT0dqIc9g1AdtygFToNtTF67XzYS//dm+SAK9cp3B9R4ZO/46p63SCjlQ== + dependencies: + "@babel/code-frame" "^7.24.7" + "@babel/generator" "^7.25.6" + "@babel/parser" "^7.25.6" + "@babel/template" "^7.25.0" + "@babel/types" "^7.25.6" + debug "^4.3.1" + globals "^11.1.0" + "@babel/types@^7.0.0", "@babel/types@^7.12.6", "@babel/types@^7.16.8", "@babel/types@^7.18.13", "@babel/types@^7.20.0", "@babel/types@^7.20.7", "@babel/types@^7.22.15", "@babel/types@^7.22.19", "@babel/types@^7.22.5", "@babel/types@^7.23.0", "@babel/types@^7.23.4", "@babel/types@^7.23.6", "@babel/types@^7.3.3", "@babel/types@^7.4.4": version "7.23.6" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.23.6.tgz#be33fdb151e1f5a56877d704492c240fc71c7ccd" @@ -1266,6 +1503,15 @@ "@babel/helper-validator-identifier" "^7.22.20" to-fast-properties "^2.0.0" +"@babel/types@^7.24.7", "@babel/types@^7.24.8", "@babel/types@^7.25.0", "@babel/types@^7.25.6": + version "7.25.6" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.25.6.tgz#893942ddb858f32ae7a004ec9d3a76b3463ef8e6" + integrity sha512-/l42B1qxpG6RdfYf343Uw1vmDjeNhneUXtzhojE7pDgfpEypmRhI6j1kr17XCVv4Cgl9HdAiQY2x0GwKm7rWCw== + dependencies: + "@babel/helper-string-parser" "^7.24.8" + "@babel/helper-validator-identifier" "^7.24.7" + to-fast-properties "^2.0.0" + "@base2/pretty-print-object@1.0.1": version "1.0.1" resolved "https://registry.yarnpkg.com/@base2/pretty-print-object/-/pretty-print-object-1.0.1.tgz#371ba8be66d556812dc7fb169ebc3c08378f69d4" @@ -1335,6 +1581,40 @@ resolved "https://registry.yarnpkg.com/@colors/colors/-/colors-1.5.0.tgz#bb504579c1cae923e6576a4f5da43d25f97bdbd9" integrity sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ== +"@coral-xyz/anchor-errors@^0.30.1": + version "0.30.1" + resolved "https://registry.yarnpkg.com/@coral-xyz/anchor-errors/-/anchor-errors-0.30.1.tgz#bdfd3a353131345244546876eb4afc0e125bec30" + integrity sha512-9Mkradf5yS5xiLWrl9WrpjqOrAV+/W2RQHDlbnAZBivoGpOs1ECjoDCkVk4aRG8ZdiFiB8zQEVlxf+8fKkmSfQ== + +"@coral-xyz/anchor@^0.30.1": + version "0.30.1" + resolved "https://registry.yarnpkg.com/@coral-xyz/anchor/-/anchor-0.30.1.tgz#17f3e9134c28cd0ea83574c6bab4e410bcecec5d" + integrity sha512-gDXFoF5oHgpriXAaLpxyWBHdCs8Awgf/gLHIo6crv7Aqm937CNdY+x+6hoj7QR5vaJV7MxWSQ0NGFzL3kPbWEQ== + dependencies: + "@coral-xyz/anchor-errors" "^0.30.1" + "@coral-xyz/borsh" "^0.30.1" + "@noble/hashes" "^1.3.1" + "@solana/web3.js" "^1.68.0" + bn.js "^5.1.2" + bs58 "^4.0.1" + buffer-layout "^1.2.2" + camelcase "^6.3.0" + cross-fetch "^3.1.5" + crypto-hash "^1.3.0" + eventemitter3 "^4.0.7" + pako "^2.0.3" + snake-case "^3.0.4" + superstruct "^0.15.4" + toml "^3.0.0" + +"@coral-xyz/borsh@^0.30.1": + version "0.30.1" + resolved "https://registry.yarnpkg.com/@coral-xyz/borsh/-/borsh-0.30.1.tgz#869d8833abe65685c72e9199b8688477a4f6b0e3" + integrity sha512-aaxswpPrCFKl8vZTbxLssA2RvwX2zmKLlRCIktJOwW+VpVwYtXRtlWiIP+c2pPRKneiTiWCN2GEMSH9j1zTlWQ== + dependencies: + bn.js "^5.1.2" + buffer-layout "^1.2.0" + "@cspotcode/source-map-support@^0.8.0": version "0.8.1" resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz#00629c35a688e05a88b1cda684fb9d5e73f000a1" @@ -1708,6 +1988,16 @@ resolved "https://registry.yarnpkg.com/@emotion/weak-memoize/-/weak-memoize-0.3.1.tgz#d0fce5d07b0620caa282b5131c297bb60f9d87e6" integrity sha512-EsBwpc7hBUJWAsNPBmJy4hxWx12v6bshQsldrVmjxJoc3isbxhOrF2IcCpaXxfvq03NwkI7sbsOLXbYuqF/8Ww== +"@emurgo/cardano-serialization-lib-browser@^11.5.0": + version "11.5.0" + resolved "https://registry.yarnpkg.com/@emurgo/cardano-serialization-lib-browser/-/cardano-serialization-lib-browser-11.5.0.tgz#f2d15b538add436e0aa8b67a1d00ca654a680006" + integrity sha512-qchOJ9NYDUz10tzs5r5QhP9hK0p+ZOlRiBwPdTAxqAYLw/8emYBkQQLaS8T1DF6EkeudyrgS00ym5Trw1fo4iA== + +"@emurgo/cardano-serialization-lib-nodejs@11.5.0": + version "11.5.0" + resolved "https://registry.yarnpkg.com/@emurgo/cardano-serialization-lib-nodejs/-/cardano-serialization-lib-nodejs-11.5.0.tgz#0662e2a17d7d1e944f8cdb86396133c8edaec059" + integrity sha512-IlVABlRgo9XaTR1NunwZpWcxnfEv04ba2l1vkUz4S1W7Jt36F4CtffP+jPeqBZGnAe+fnUwo0XjIJC3ZTNToNQ== + "@eslint-community/eslint-utils@^4.2.0": version "4.4.0" resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59" @@ -1740,6 +2030,68 @@ resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.56.0.tgz#ef20350fec605a7f7035a01764731b2de0f3782b" integrity sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A== +"@ethereumjs/common@^3.2.0": + version "3.2.0" + resolved "https://registry.yarnpkg.com/@ethereumjs/common/-/common-3.2.0.tgz#b71df25845caf5456449163012074a55f048e0a0" + integrity sha512-pksvzI0VyLgmuEF2FA/JR/4/y6hcPq8OUail3/AvycBaW1d5VSauOZzqGvJ3RTmR4MU35lWE8KseKOsEhrFRBA== + dependencies: + "@ethereumjs/util" "^8.1.0" + crc-32 "^1.2.0" + +"@ethereumjs/common@^4.3.0", "@ethereumjs/common@^4.4.0": + version "4.4.0" + resolved "https://registry.yarnpkg.com/@ethereumjs/common/-/common-4.4.0.tgz#fba41612f527a815bf304e98653d6b5fc5d6d4de" + integrity sha512-Fy5hMqF6GsE6DpYTyqdDIJPJgUtDn4dL120zKw+Pswuo+iLyBsEYuSyzMw6NVzD2vDzcBG9fE4+qX4X2bPc97w== + dependencies: + "@ethereumjs/util" "^9.1.0" + +"@ethereumjs/rlp@^4.0.1": + version "4.0.1" + resolved "https://registry.yarnpkg.com/@ethereumjs/rlp/-/rlp-4.0.1.tgz#626fabfd9081baab3d0a3074b0c7ecaf674aaa41" + integrity sha512-tqsQiBQDQdmPWE1xkkBq4rlSW5QZpLOUJ5RJh2/9fug+q9tnUhuZoVLk7s0scUIKTOzEtR72DFBXI4WiZcMpvw== + +"@ethereumjs/rlp@^5.0.2": + version "5.0.2" + resolved "https://registry.yarnpkg.com/@ethereumjs/rlp/-/rlp-5.0.2.tgz#c89bd82f2f3bec248ab2d517ae25f5bbc4aac842" + integrity sha512-DziebCdg4JpGlEqEdGgXmjqcFoJi+JGulUXwEjsZGAscAQ7MyD/7LE/GVCP29vEQxKc7AAwjT3A2ywHp2xfoCA== + +"@ethereumjs/tx@^4.1.2": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@ethereumjs/tx/-/tx-4.2.0.tgz#5988ae15daf5a3b3c815493bc6b495e76009e853" + integrity sha512-1nc6VO4jtFd172BbSnTnDQVr9IYBFl1y4xPzZdtkrkKIncBCkdbgfdRV+MiTkJYAtTxvV12GRZLqBFT1PNK6Yw== + dependencies: + "@ethereumjs/common" "^3.2.0" + "@ethereumjs/rlp" "^4.0.1" + "@ethereumjs/util" "^8.1.0" + ethereum-cryptography "^2.0.0" + +"@ethereumjs/tx@^5.3.0": + version "5.4.0" + resolved "https://registry.yarnpkg.com/@ethereumjs/tx/-/tx-5.4.0.tgz#6f47894cc3e2d4e63d87c62b41ed7e8180a1de58" + integrity sha512-SCHnK7m/AouZ7nyoR0MEXw1OO/tQojSbp88t8oxhwes5iZkZCtfFdUrJaiIb72qIpH2FVw6s1k1uP7LXuH7PsA== + dependencies: + "@ethereumjs/common" "^4.4.0" + "@ethereumjs/rlp" "^5.0.2" + "@ethereumjs/util" "^9.1.0" + ethereum-cryptography "^2.2.1" + +"@ethereumjs/util@^8.0.6", "@ethereumjs/util@^8.1.0": + version "8.1.0" + resolved "https://registry.yarnpkg.com/@ethereumjs/util/-/util-8.1.0.tgz#299df97fb6b034e0577ce9f94c7d9d1004409ed4" + integrity sha512-zQ0IqbdX8FZ9aw11vP+dZkKDkS+kgIvQPHnSAXzP9pLu+Rfu3D3XEeLbicvoXJTYnhZiPmsZUxgdzXwNKxRPbA== + dependencies: + "@ethereumjs/rlp" "^4.0.1" + ethereum-cryptography "^2.0.0" + micro-ftch "^0.3.1" + +"@ethereumjs/util@^9.1.0": + version "9.1.0" + resolved "https://registry.yarnpkg.com/@ethereumjs/util/-/util-9.1.0.tgz#75e3898a3116d21c135fa9e29886565609129bce" + integrity sha512-XBEKsYqLGXLah9PNJbgdkigthkG7TAGvlD/sH12beMXEyHDyigfcbdvHhmLyDWgDyOJn4QwiQUaF7yeuhnjdog== + dependencies: + "@ethereumjs/rlp" "^5.0.2" + ethereum-cryptography "^2.2.1" + "@ethersproject/abi@5.7.0", "@ethersproject/abi@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/abi/-/abi-5.7.0.tgz#b3f3e045bbbeed1af3947335c247ad625a44e449" @@ -2096,6 +2448,14 @@ resolved "https://registry.yarnpkg.com/@fastify/busboy/-/busboy-2.1.1.tgz#b9da6a878a371829a0502c9b6c1c143ef6663f4d" integrity sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA== +"@fivebinaries/coin-selection@2.2.1": + version "2.2.1" + resolved "https://registry.yarnpkg.com/@fivebinaries/coin-selection/-/coin-selection-2.2.1.tgz#f5329909ac8cd1bf87decdcd054c88a8d69399a0" + integrity sha512-iYFsYr7RY7TEvTqP9NKR4p/yf3Iybf9abUDR7lRjzanGsrLwVsREvIuyE05iRYFrvqarlk+gWRPsdR1N2hUBrg== + dependencies: + "@emurgo/cardano-serialization-lib-browser" "^11.5.0" + "@emurgo/cardano-serialization-lib-nodejs" "11.5.0" + "@floating-ui/core@^1.5.3": version "1.5.3" resolved "https://registry.yarnpkg.com/@floating-ui/core/-/core-1.5.3.tgz#b6aa0827708d70971c8679a16cf680a515b8a52a" @@ -2123,6 +2483,20 @@ resolved "https://registry.yarnpkg.com/@floating-ui/utils/-/utils-0.2.1.tgz#16308cea045f0fc777b6ff20a9f25474dd8293d2" integrity sha512-9TANp6GPoMtYzQdt54kfAyMmz1+osLlXdg2ENroU7zzrtflTLrrC/lgrIfaSe+Wu0b89GKccT7vxXA0MoAIO+Q== +"@fractalwagmi/popup-connection@^1.0.18": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@fractalwagmi/popup-connection/-/popup-connection-1.1.1.tgz#2dfff4f3bb89d17947adae597f355faf46c194a9" + integrity sha512-hYL+45iYwNbwjvP2DxP3YzVsrAGtj/RV9LOgMpJyCxsfNoyyOoi2+YrnywKkiANingiG2kJ1nKsizbu1Bd4zZw== + +"@fractalwagmi/solana-wallet-adapter@^0.1.1": + version "0.1.1" + resolved "https://registry.yarnpkg.com/@fractalwagmi/solana-wallet-adapter/-/solana-wallet-adapter-0.1.1.tgz#13d97bca657007a62b2118ea60f5d9e73f654a37" + integrity sha512-oTZLEuD+zLKXyhZC5tDRMPKPj8iaxKLxXiCjqRfOo4xmSbS2izGRWLJbKMYYsJysn/OI3UJ3P6CWP8WUWi0dZg== + dependencies: + "@fractalwagmi/popup-connection" "^1.0.18" + "@solana/wallet-adapter-base" "^0.9.17" + bs58 "^5.0.0" + "@gar/promisify@^1.1.3": version "1.1.3" resolved "https://registry.yarnpkg.com/@gar/promisify/-/promisify-1.1.3.tgz#555193ab2e3bb3b6adc3d551c9c030d9e860daf6" @@ -2584,6 +2958,57 @@ resolved "https://registry.yarnpkg.com/@ioredis/commands/-/commands-1.2.0.tgz#6d61b3097470af1fdbbe622795b8921d42018e11" integrity sha512-Sx1pU8EM64o2BrqNpEO1CNLtKQwyhuXuqyfH7oGKCk+1a33d2r5saW8zNwm3j6BTExtjrv2BxTgzzkMwts6vGg== +"@irys/arweave@^0.0.2": + version "0.0.2" + resolved "https://registry.yarnpkg.com/@irys/arweave/-/arweave-0.0.2.tgz#c0e73eb8c15e323342d33ea92701d4036fd22ae3" + integrity sha512-ddE5h4qXbl0xfGlxrtBIwzflaxZUDlDs43TuT0u1OMfyobHul4AA1VEX72Rpzw2bOh4vzoytSqA1jCM7x9YtHg== + dependencies: + asn1.js "^5.4.1" + async-retry "^1.3.3" + axios "^1.4.0" + base64-js "^1.5.1" + bignumber.js "^9.1.1" + +"@irys/query@^0.0.8": + version "0.0.8" + resolved "https://registry.yarnpkg.com/@irys/query/-/query-0.0.8.tgz#c8c91415915d7ad34b1a6ab076a09cc34c7ff210" + integrity sha512-J8zCZDos2vFogSbroCJHZJq5gnPZEal01Iy3duXAotjIMgrI2ElDANiqEbaP1JAImR1jdUo1ChJnZB7MRLN9Hw== + dependencies: + async-retry "^1.3.3" + axios "^1.4.0" + +"@irys/sdk@^0.2.11": + version "0.2.11" + resolved "https://registry.yarnpkg.com/@irys/sdk/-/sdk-0.2.11.tgz#018f6d82bbf819d8d1c5c1d9a1ec310ccfe7fbbe" + integrity sha512-z3zKlKYEqRHuCGyyVoikL1lT4Jwt8wv7e4MrMThNfhfT/bdKQHD9lEVsX77DBnLJrBBKKg5rRcEzMtVkpNx3QA== + dependencies: + "@aptos-labs/ts-sdk" "^1.26.0" + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/contracts" "^5.7.0" + "@ethersproject/providers" "^5.7.2" + "@ethersproject/wallet" "^5.7.0" + "@irys/query" "^0.0.8" + "@near-js/crypto" "^0.0.3" + "@near-js/keystores-browser" "^0.0.3" + "@near-js/providers" "^0.0.4" + "@near-js/transactions" "^0.1.0" + "@solana/web3.js" "^1.36.0" + "@supercharge/promise-pool" "^3.0.0" + algosdk "^1.13.1" + arbundles "^0.11.1" + async-retry "^1.3.3" + axios "^1.6.7" + base64url "^3.0.1" + bignumber.js "^9.0.1" + bs58 "5.0.0" + commander "^8.2.0" + csv "5.5.3" + inquirer "^8.2.0" + js-sha256 "^0.9.0" + mime-types "^2.1.34" + near-seed-phrase "^0.2.0" + tslib "^2.6.2" + "@isaacs/cliui@^8.0.2": version "8.0.2" resolved "https://registry.yarnpkg.com/@isaacs/cliui/-/cliui-8.0.2.tgz#b37667b7bc181c168782259bab42474fbf52b550" @@ -3030,6 +3455,16 @@ "@types/yargs" "^17.0.8" chalk "^4.0.0" +"@jnwng/walletconnect-solana@^0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@jnwng/walletconnect-solana/-/walletconnect-solana-0.2.0.tgz#aebea64beaa47273b9b9a71c62d88d543900ab96" + integrity sha512-nyRq0xLEj9i2J4UXQ0Mr4KzsooTMbLu0ewHOqdQV7iZE0PfbtKa8poTSF4ZBAQD8hoMHEx+I7zGFCNMI9BTrTA== + dependencies: + "@walletconnect/qrcode-modal" "^1.8.0" + "@walletconnect/sign-client" "^2.7.2" + "@walletconnect/utils" "^2.4.5" + bs58 "^5.0.0" + "@jridgewell/gen-mapping@^0.3.0", "@jridgewell/gen-mapping@^0.3.2": version "0.3.3" resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz#7e02e6eb5df901aaedb08514203b096614024098" @@ -3039,6 +3474,15 @@ "@jridgewell/sourcemap-codec" "^1.4.10" "@jridgewell/trace-mapping" "^0.3.9" +"@jridgewell/gen-mapping@^0.3.5": + version "0.3.5" + resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz#dcce6aff74bdf6dad1a95802b69b04a2fcb1fb36" + integrity sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg== + dependencies: + "@jridgewell/set-array" "^1.2.1" + "@jridgewell/sourcemap-codec" "^1.4.10" + "@jridgewell/trace-mapping" "^0.3.24" + "@jridgewell/resolve-uri@^3.0.3", "@jridgewell/resolve-uri@^3.1.0": version "3.1.1" resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz#c08679063f279615a3326583ba3a90d1d82cc721" @@ -3049,6 +3493,11 @@ resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72" integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== +"@jridgewell/set-array@^1.2.1": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.2.1.tgz#558fb6472ed16a4c850b889530e6b36438c49280" + integrity sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A== + "@jridgewell/source-map@^0.3.3": version "0.3.5" resolved "https://registry.yarnpkg.com/@jridgewell/source-map/-/source-map-0.3.5.tgz#a3bb4d5c6825aab0d281268f47f6ad5853431e91" @@ -3078,6 +3527,14 @@ "@jridgewell/resolve-uri" "^3.1.0" "@jridgewell/sourcemap-codec" "^1.4.14" +"@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.25": + version "0.3.25" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz#15f190e98895f3fc23276ee14bc76b675c2e50f0" + integrity sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ== + dependencies: + "@jridgewell/resolve-uri" "^3.1.0" + "@jridgewell/sourcemap-codec" "^1.4.14" + "@jsdoc/salty@^0.2.1": version "0.2.7" resolved "https://registry.yarnpkg.com/@jsdoc/salty/-/salty-0.2.7.tgz#98ddce519fd95d7bee605a658fabf6e8cbf7556d" @@ -3110,11 +3567,119 @@ "@json-rpc-tools/types" "^1.7.6" "@pedrouid/environment" "^1.0.1" +"@keystonehq/alias-sampling@^0.1.1": + version "0.1.2" + resolved "https://registry.yarnpkg.com/@keystonehq/alias-sampling/-/alias-sampling-0.1.2.tgz#63af931ffe6500aef4c0d87775a5b279189abf8d" + integrity sha512-5ukLB3bcgltgaFfQfYKYwHDUbwHicekYo53fSEa7xhVkAEqsA74kxdIwoBIURmGUtXe3EVIRm4SYlgcrt2Ri0w== + +"@keystonehq/bc-ur-registry-sol@^0.3.1": + version "0.3.1" + resolved "https://registry.yarnpkg.com/@keystonehq/bc-ur-registry-sol/-/bc-ur-registry-sol-0.3.1.tgz#5319c7c4a22cc83bbacfa6fe09aaa6fb21363f24" + integrity sha512-Okr5hwPxBZxB4EKLK1GSC9vsrh/tFMQ5dvs3EQ9NCOmCn7CXdXIMSeafrpGCHk484Jf5c6X0Wq0yf0VqY2A/8Q== + dependencies: + "@keystonehq/bc-ur-registry" "^0.5.0" + bs58check "^2.1.2" + uuid "^8.3.2" + +"@keystonehq/bc-ur-registry@^0.5.0": + version "0.5.5" + resolved "https://registry.yarnpkg.com/@keystonehq/bc-ur-registry/-/bc-ur-registry-0.5.5.tgz#b7cd9b08846c627e988933049aac94d3412fbb16" + integrity sha512-PoclPHf0OhpIKLfLwzymsu+CjkWf5ZKvaVjpkq3HUalcI4KW8wLk0m8qI2kBVv6F0BQ0ERPqW8OfjLTVqIgWLA== + dependencies: + "@ngraveio/bc-ur" "^1.1.5" + bs58check "^2.1.2" + tslib "^2.3.0" + +"@keystonehq/sdk@^0.13.1": + version "0.13.1" + resolved "https://registry.yarnpkg.com/@keystonehq/sdk/-/sdk-0.13.1.tgz#782a1f71cfc38a7635a8bcb0cb99ae403a6316a8" + integrity sha512-545l83TE5t1cyUZUaNqZOAh15ibWOg9QbK/YeLwnrxt+GOod+ATk3j9SpN6yTSLO8DNl2/x6dKRIFVtTEkZDAg== + dependencies: + "@ngraveio/bc-ur" "^1.0.0" + qrcode.react "^1.0.1" + react "16.13.1" + react-dom "16.13.1" + react-modal "^3.12.1" + react-qr-reader "^2.2.1" + rxjs "^6.6.3" + typescript "^4.6.2" + +"@keystonehq/sol-keyring@^0.3.1": + version "0.3.1" + resolved "https://registry.yarnpkg.com/@keystonehq/sol-keyring/-/sol-keyring-0.3.1.tgz#9ed61269bab92601eedb7f1adb9ca3258634dbbc" + integrity sha512-RU6I3HQrQ9NpRDP9TwlBIy5DftVcNcyk0NWfhkPy/YanhMcCB0cRPw68iQl1rMnR6n1G2+YrBHMxm6swCW+B4Q== + dependencies: + "@keystonehq/bc-ur-registry" "^0.5.0" + "@keystonehq/bc-ur-registry-sol" "^0.3.1" + "@keystonehq/sdk" "^0.13.1" + "@solana/web3.js" "^1.36.0" + bs58 "^5.0.0" + uuid "^8.3.2" + "@ledgerhq/connect-kit-loader@^1.0.1": version "1.1.8" resolved "https://registry.yarnpkg.com/@ledgerhq/connect-kit-loader/-/connect-kit-loader-1.1.8.tgz#6cc32191660dd9d6e8f89047af09b0f201e30190" integrity sha512-mDJsOucVW8m3Lk2fdQst+P74SgiKebvq1iBk4sXLbADQOwhL9bWGaArvO+tW7jPJZwEfSPWBdHcHoYi11XAwZw== +"@ledgerhq/devices@6.27.1", "@ledgerhq/devices@^6.27.1": + version "6.27.1" + resolved "https://registry.yarnpkg.com/@ledgerhq/devices/-/devices-6.27.1.tgz#3b13ab1d1ba8201e9e74a08f390560483978c962" + integrity sha512-jX++oy89jtv7Dp2X6gwt3MMkoajel80JFWcdc0HCouwDsV1mVJ3SQdwl/bQU0zd8HI6KebvUP95QTwbQLLK/RQ== + dependencies: + "@ledgerhq/errors" "^6.10.0" + "@ledgerhq/logs" "^6.10.0" + rxjs "6" + semver "^7.3.5" + +"@ledgerhq/devices@^8.4.2": + version "8.4.2" + resolved "https://registry.yarnpkg.com/@ledgerhq/devices/-/devices-8.4.2.tgz#f1c56194cf1343d56cad49c8feba92ad93432e14" + integrity sha512-oWNTp3jCMaEvRHsXNYE/yo+PFMgXAJGFHLOU1UdE4/fYkniHbD9wdxwyZrZvrxr9hNw4/9wHiThyITwPtMzG7g== + dependencies: + "@ledgerhq/errors" "^6.18.0" + "@ledgerhq/logs" "^6.12.0" + rxjs "^7.8.1" + semver "^7.3.5" + +"@ledgerhq/errors@^6.10.0", "@ledgerhq/errors@^6.18.0": + version "6.18.0" + resolved "https://registry.yarnpkg.com/@ledgerhq/errors/-/errors-6.18.0.tgz#d55d6a57430d7a86532a9033ce0b45103264c620" + integrity sha512-L3jQWAGyooxRDk/MRlW2v4Ji9+kloBtdmz9wBkHaj2j0n+05rweJSV3GHw9oye1BYMbVFqFffmT4H3hlXlCasw== + +"@ledgerhq/hw-transport-webhid@6.27.1": + version "6.27.1" + resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport-webhid/-/hw-transport-webhid-6.27.1.tgz#8fd1710d23b6bd7cbe2382dd02054dfabe788447" + integrity sha512-u74rBYlibpbyGblSn74fRs2pMM19gEAkYhfVibq0RE1GNFjxDMFC1n7Sb+93Jqmz8flyfB4UFJsxs8/l1tm2Kw== + dependencies: + "@ledgerhq/devices" "^6.27.1" + "@ledgerhq/errors" "^6.10.0" + "@ledgerhq/hw-transport" "^6.27.1" + "@ledgerhq/logs" "^6.10.0" + +"@ledgerhq/hw-transport@6.27.1": + version "6.27.1" + resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport/-/hw-transport-6.27.1.tgz#88072278f69c279cb6569352acd4ae2fec33ace3" + integrity sha512-hnE4/Fq1YzQI4PA1W0H8tCkI99R3UWDb3pJeZd6/Xs4Qw/q1uiQO+vNLC6KIPPhK0IajUfuI/P2jk0qWcMsuAQ== + dependencies: + "@ledgerhq/devices" "^6.27.1" + "@ledgerhq/errors" "^6.10.0" + events "^3.3.0" + +"@ledgerhq/hw-transport@^6.27.1": + version "6.31.2" + resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport/-/hw-transport-6.31.2.tgz#79c95f7928a64a0e3b5bc4ea7b5be04b9f738322" + integrity sha512-B27UIzMzm2IXPGYnEB95R7eHxpXBkTBHh6MUJJQZVknt8LilEz1tfpTYUdzAKDGQ+Z5MZyYb01Eh3Zqm3kn3uw== + dependencies: + "@ledgerhq/devices" "^8.4.2" + "@ledgerhq/errors" "^6.18.0" + "@ledgerhq/logs" "^6.12.0" + events "^3.3.0" + +"@ledgerhq/logs@^6.10.0", "@ledgerhq/logs@^6.12.0": + version "6.12.0" + resolved "https://registry.yarnpkg.com/@ledgerhq/logs/-/logs-6.12.0.tgz#ad903528bf3687a44da435d7b2479d724d374f5d" + integrity sha512-ExDoj1QV5eC6TEbMdLUMMk9cfvNKhhv5gXol4SmULRVCx/3iyCPhJ74nsb3S0Vb+/f+XujBEj3vQn5+cwS0fNA== + "@leichtgewicht/ip-codec@^2.0.1": version "2.0.4" resolved "https://registry.yarnpkg.com/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz#b2ac626d6cb9c8718ab459166d4bb405b8ffa78b" @@ -3233,6 +3798,14 @@ resolved "https://registry.yarnpkg.com/@metamask/detect-provider/-/detect-provider-1.2.0.tgz#3667a7531f2a682e3c3a43eaf3a1958bdb42a696" integrity sha512-ocA76vt+8D0thgXZ7LxFPyqw3H7988qblgzddTDA6B8a/yU0uKV42QR/DhA+Jh11rJjxW0jKvwb5htA6krNZDQ== +"@metamask/rpc-errors@^5.1.1": + version "5.1.1" + resolved "https://registry.yarnpkg.com/@metamask/rpc-errors/-/rpc-errors-5.1.1.tgz#f82732ad0952d34d219eca42699c0c74bee95a9e" + integrity sha512-JjZnDi2y2CfvbohhBl+FOQRzmFlJpybcQlIk37zEX8B96eVSPbH/T8S0p7cSF8IE33IWx6JkD8Ycsd+2TXFxCw== + dependencies: + "@metamask/utils" "^5.0.0" + fast-safe-stringify "^2.0.6" + "@metamask/safe-event-emitter@2.0.0", "@metamask/safe-event-emitter@^2.0.0": version "2.0.0" resolved "https://registry.yarnpkg.com/@metamask/safe-event-emitter/-/safe-event-emitter-2.0.0.tgz#af577b477c683fad17c619a78208cede06f9605c" @@ -3248,6 +3821,22 @@ semver "^7.3.8" superstruct "^1.0.3" +"@metamask/utils@^5.0.0": + version "5.0.2" + resolved "https://registry.yarnpkg.com/@metamask/utils/-/utils-5.0.2.tgz#140ba5061d90d9dac0280c19cab101bc18c8857c" + integrity sha512-yfmE79bRQtnMzarnKfX7AEJBwFTxvTyw3nBQlu/5rmGXrjAeAMltoGxO62TFurxrQAFMNa/fEjIHNvungZp0+g== + dependencies: + "@ethereumjs/tx" "^4.1.2" + "@types/debug" "^4.1.7" + debug "^4.3.4" + semver "^7.3.8" + superstruct "^1.0.3" + +"@mobily/ts-belt@^3.13.1": + version "3.13.1" + resolved "https://registry.yarnpkg.com/@mobily/ts-belt/-/ts-belt-3.13.1.tgz#8f8ce2a2eca41d88c2ca70c84d0f47d0f7f5cd5f" + integrity sha512-K5KqIhPI/EoCTbA6CGbrenM9s41OouyK8A03fGJJcla/zKucsgLbz8HNbeseoLarRPgyWJsUyCYqFhI7t3Ra9Q== + "@motionone/animation@^10.12.0", "@motionone/animation@^10.15.1", "@motionone/animation@^10.17.0": version "10.17.0" resolved "https://registry.yarnpkg.com/@motionone/animation/-/animation-10.17.0.tgz#7633c6f684b5fee2b61c405881b8c24662c68fca" @@ -3597,6 +4186,19 @@ depd "^2.0.0" mustache "^4.0.0" +"@ngraveio/bc-ur@^1.0.0", "@ngraveio/bc-ur@^1.1.5": + version "1.1.13" + resolved "https://registry.yarnpkg.com/@ngraveio/bc-ur/-/bc-ur-1.1.13.tgz#27719fd3e745ccdbe97a7950905edcd1fed4844b" + integrity sha512-j73akJMV4+vLR2yQ4AphPIT5HZmxVjn/LxpL7YHoINnXoH6ccc90Zzck6/n6a3bCXOVZwBxq+YHwbAKRV+P8Zg== + dependencies: + "@keystonehq/alias-sampling" "^0.1.1" + assert "^2.0.0" + bignumber.js "^9.0.1" + cbor-sync "^1.0.4" + crc "^3.8.0" + jsbi "^3.1.5" + sha.js "^2.4.11" + "@nicolo-ribaudo/chokidar-2@2.1.8-no-fsevents.3": version "2.1.8-no-fsevents.3" resolved "https://registry.yarnpkg.com/@nicolo-ribaudo/chokidar-2/-/chokidar-2-2.1.8-no-fsevents.3.tgz#323d72dd25103d0c4fbdce89dadf574a787b1f9b" @@ -3616,6 +4218,20 @@ dependencies: "@noble/hashes" "1.3.2" +"@noble/curves@1.4.2", "@noble/curves@~1.4.0": + version "1.4.2" + resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-1.4.2.tgz#40309198c76ed71bc6dbf7ba24e81ceb4d0d1fe9" + integrity sha512-TavHr8qycMChk8UwMld0ZDRvatedkzWfH8IiaeGCfymOP5i0hSCozz9vHOL0nkwk7HRMlFnAiKpS2jrUmSybcw== + dependencies: + "@noble/hashes" "1.4.0" + +"@noble/curves@^1.1.0", "@noble/curves@^1.4.0", "@noble/curves@^1.4.2", "@noble/curves@~1.6.0": + version "1.6.0" + resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-1.6.0.tgz#be5296ebcd5a1730fccea4786d420f87abfeb40b" + integrity sha512-TlaHRXDehJuRNR9TfZDNQ45mMEd5dwUwmicsafcIX4SsNiqnCHKjE/1alYPd/lDRVhxdhUAlv8uEhMCI5zjIJQ== + dependencies: + "@noble/hashes" "1.5.0" + "@noble/curves@^1.2.0": version "1.3.0" resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-1.3.0.tgz#01be46da4fd195822dab821e72f71bf4aeec635e" @@ -3638,6 +4254,16 @@ resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.3.3.tgz#39908da56a4adc270147bb07968bf3b16cfe1699" integrity sha512-V7/fPHgl+jsVPXqqeOzT8egNj2iBIVt+ECeMMG8TdcnTikP3oaBtUVqpT/gYCR68aEBJSF+XbYUxStjbFMqIIA== +"@noble/hashes@1.4.0", "@noble/hashes@~1.4.0": + version "1.4.0" + resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.4.0.tgz#45814aa329f30e4fe0ba49426f49dfccdd066426" + integrity sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg== + +"@noble/hashes@1.5.0", "@noble/hashes@^1.2.0", "@noble/hashes@^1.3.1", "@noble/hashes@^1.4.0", "@noble/hashes@~1.5.0": + version "1.5.0" + resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.5.0.tgz#abadc5ca20332db2b1b2aa3e496e9af1213570b0" + integrity sha512-1j6kQFb7QRru7eKN3ZDvRcP13rugwdxZqCjbiAVZfIJwgj2A65UmT4TgARXGlXgnRkORLTDTrO19ZErt7+QXgA== + "@noble/secp256k1@1.7.1", "@noble/secp256k1@^1.7.1": version "1.7.1" resolved "https://registry.yarnpkg.com/@noble/secp256k1/-/secp256k1-1.7.1.tgz#b251c70f824ce3ca7f8dc3df08d58f005cc0507c" @@ -4172,6 +4798,45 @@ "@parcel/watcher-win32-ia32" "2.3.0" "@parcel/watcher-win32-x64" "2.3.0" +"@particle-network/analytics@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@particle-network/analytics/-/analytics-1.0.1.tgz#b3657cf7aaea57f90a7ac2c03f72b8786c298012" + integrity sha512-ApcSMo1BXQlywO+lvOpG3Y2/SVGNCpJzXO/4e3zHzE/9j+uMehsilDzPwWQwLhrCXZYwVm7mmE71Gs36yobiNw== + dependencies: + hash.js "^1.1.7" + uuidv4 "^6.2.13" + +"@particle-network/auth@^1.3.1": + version "1.3.1" + resolved "https://registry.yarnpkg.com/@particle-network/auth/-/auth-1.3.1.tgz#f9ee51749e3b10e700e0d8c51a8c0769ab0b9851" + integrity sha512-hu6ie5RjjN4X+6y/vfjyCsSX3pQuS8k8ZoMb61QWwhWsnZXKzpBUVeAEk55aGfxxXY+KfBkSmZosyaZHGoHnfw== + dependencies: + "@particle-network/analytics" "^1.0.1" + "@particle-network/chains" "*" + "@particle-network/crypto" "^1.0.1" + buffer "^6.0.3" + draggabilly "^3.0.0" + +"@particle-network/chains@*": + version "1.6.8" + resolved "https://registry.yarnpkg.com/@particle-network/chains/-/chains-1.6.8.tgz#9e788f92b8ecb4dc99f72c04ea9fe145b738d892" + integrity sha512-8YnKI5yq7Wprdc0vomW4FOnYcbp39GozUgUJomIJIOpOm+m+cJRgsQxLe+IHmJ9ZyfKN4NkOPQF5ANA7maxBUQ== + +"@particle-network/crypto@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@particle-network/crypto/-/crypto-1.0.1.tgz#26afef622a3eb906dca5c810fef8001ffee29029" + integrity sha512-GgvHmHcFiNkCLZdcJOgctSbgvs251yp+EAdUydOE3gSoIxN6KEr/Snu9DebENhd/nFb7FDk5ap0Hg49P7pj1fg== + dependencies: + crypto-js "^4.1.1" + uuidv4 "^6.2.13" + +"@particle-network/solana-wallet@^1.3.2": + version "1.3.2" + resolved "https://registry.yarnpkg.com/@particle-network/solana-wallet/-/solana-wallet-1.3.2.tgz#9966209ccda60abb0114bf0447a524c781536b76" + integrity sha512-KviKVP87OtWq813y8IumM3rIQMNkTjHBaQmCUbTWGebz3csFOv54JIoy1r+3J3NnA+mBxBdZeRedZ5g+07v75w== + dependencies: + "@particle-network/auth" "^1.3.1" + "@peculiar/asn1-schema@^2.3.6": version "2.3.8" resolved "https://registry.yarnpkg.com/@peculiar/asn1-schema/-/asn1-schema-2.3.8.tgz#04b38832a814e25731232dd5be883460a156da3b" @@ -4229,6 +4894,14 @@ resolved "https://registry.yarnpkg.com/@popperjs/core/-/core-2.11.8.tgz#6b79032e760a0899cd4204710beede972a3a185f" integrity sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A== +"@project-serum/sol-wallet-adapter@^0.2.6": + version "0.2.6" + resolved "https://registry.yarnpkg.com/@project-serum/sol-wallet-adapter/-/sol-wallet-adapter-0.2.6.tgz#b4cd25a566294354427c97c26d716112b91a0107" + integrity sha512-cpIb13aWPW8y4KzkZAPDgw+Kb+DXjCC6rZoH74MGm3I/6e/zKyGnfAuW5olb2zxonFqsYgnv7ev8MQnvSgJ3/g== + dependencies: + bs58 "^4.0.1" + eventemitter3 "^4.0.7" + "@protobufjs/aspromise@^1.1.1", "@protobufjs/aspromise@^1.1.2": version "1.1.2" resolved "https://registry.yarnpkg.com/@protobufjs/aspromise/-/aspromise-1.1.2.tgz#9b8b0cc663d669a7d8f6f5d0893a14d348f30fbf" @@ -4294,6 +4967,13 @@ dependencies: "@randlabs/communication-bridge" "1.0.1" +"@react-native-async-storage/async-storage@^1.17.7": + version "1.24.0" + resolved "https://registry.yarnpkg.com/@react-native-async-storage/async-storage/-/async-storage-1.24.0.tgz#888efbc62a26f7d9464b32f4d3027b7f2771999b" + integrity sha512-W4/vbwUOYOjco0x3toB8QCr7EjIP6nE9G7o8PMguvvjYT5Awg09lyV4enACRx4s++PPulBiBSjL0KTFx2u0Z/g== + dependencies: + merge-options "^3.0.4" + "@reduxjs/toolkit@^1.8.6": version "1.9.7" resolved "https://registry.yarnpkg.com/@reduxjs/toolkit/-/toolkit-1.9.7.tgz#7fc07c0b0ebec52043f8cb43510cf346405f78a6" @@ -4504,6 +5184,11 @@ resolved "https://registry.yarnpkg.com/@scure/base/-/base-1.1.5.tgz#1d85d17269fe97694b9c592552dd9e5e33552157" integrity sha512-Brj9FiG2W1MRQSTB212YVPRrcbjkv48FoZi/u4l/zds/ieRrqsh7aUf6CLwkAq61oKXr/ZlTzlY66gLIj3TFTQ== +"@scure/base@~1.1.6", "@scure/base@~1.1.7", "@scure/base@~1.1.8": + version "1.1.8" + resolved "https://registry.yarnpkg.com/@scure/base/-/base-1.1.8.tgz#8f23646c352f020c83bca750a82789e246d42b50" + integrity sha512-6CyAclxj3Nb0XT7GHK6K4zK6k2xJm6E4Ft0Ohjt4WgegiFUHEtFb2CGzmPmGBwoIhrLsqNLYfLr04Y1GePrzZg== + "@scure/bip32@1.3.2": version "1.3.2" resolved "https://registry.yarnpkg.com/@scure/bip32/-/bip32-1.3.2.tgz#90e78c027d5e30f0b22c1f8d50ff12f3fb7559f8" @@ -4513,6 +5198,24 @@ "@noble/hashes" "~1.3.2" "@scure/base" "~1.1.2" +"@scure/bip32@1.4.0": + version "1.4.0" + resolved "https://registry.yarnpkg.com/@scure/bip32/-/bip32-1.4.0.tgz#4e1f1e196abedcef395b33b9674a042524e20d67" + integrity sha512-sVUpc0Vq3tXCkDGYVWGIZTRfnvu8LoTDaev7vbwh0omSvVORONr960MQWdKqJDCReIEmTj3PAr73O3aoxz7OPg== + dependencies: + "@noble/curves" "~1.4.0" + "@noble/hashes" "~1.4.0" + "@scure/base" "~1.1.6" + +"@scure/bip32@^1.4.0": + version "1.5.0" + resolved "https://registry.yarnpkg.com/@scure/bip32/-/bip32-1.5.0.tgz#dd4a2e1b8a9da60e012e776d954c4186db6328e6" + integrity sha512-8EnFYkqEQdnkuGBVpCzKxyIwDCBLDVj3oiX0EKUFre/tOjL/Hqba1D6n/8RcmaQy4f95qQFrO2A8Sr6ybh4NRw== + dependencies: + "@noble/curves" "~1.6.0" + "@noble/hashes" "~1.5.0" + "@scure/base" "~1.1.7" + "@scure/bip39@1.2.1": version "1.2.1" resolved "https://registry.yarnpkg.com/@scure/bip39/-/bip39-1.2.1.tgz#5cee8978656b272a917b7871c981e0541ad6ac2a" @@ -4521,6 +5224,22 @@ "@noble/hashes" "~1.3.0" "@scure/base" "~1.1.0" +"@scure/bip39@1.3.0": + version "1.3.0" + resolved "https://registry.yarnpkg.com/@scure/bip39/-/bip39-1.3.0.tgz#0f258c16823ddd00739461ac31398b4e7d6a18c3" + integrity sha512-disdg7gHuTDZtY+ZdkmLpPCk7fxZSu3gBiEGuoC1XYxv9cGx3Z6cpTggCgW6odSOOIXCiDjuGejW+aJKCY/pIQ== + dependencies: + "@noble/hashes" "~1.4.0" + "@scure/base" "~1.1.6" + +"@scure/bip39@^1.3.0": + version "1.4.0" + resolved "https://registry.yarnpkg.com/@scure/bip39/-/bip39-1.4.0.tgz#664d4f851564e2e1d4bffa0339f9546ea55960a6" + integrity sha512-BEEm6p8IueV/ZTfQLp/0vhw4NPnT9oWf5+28nvmeUICjP99f4vr2d+qc7AVGDDtwRep6ifR43Yed9ERVmiITzw== + dependencies: + "@noble/hashes" "~1.5.0" + "@scure/base" "~1.1.8" + "@sigstore/bundle@^1.1.0": version "1.1.0" resolved "https://registry.yarnpkg.com/@sigstore/bundle/-/bundle-1.1.0.tgz#17f8d813b09348b16eeed66a8cf1c3d6bd3d04f1" @@ -4560,6 +5279,11 @@ resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.27.8.tgz#6667fac16c436b5434a387a34dedb013198f6e6e" integrity sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA== +"@sinclair/typebox@^0.31.28": + version "0.31.28" + resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.31.28.tgz#b68831e7bc7d09daac26968ea32f42bedc968ede" + integrity sha512-/s55Jujywdw/Jpan+vsy6JZs1z2ZTGxTmbZTPiuSL2wz9mfzA2gN1zzaqmvfi4pq+uOt7Du85fkiwv5ymW84aQ== + "@sindresorhus/is@^4.0.0": version "4.6.0" resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-4.6.0.tgz#3c7c9c46e678feefe7a2e5bb609d3dbd665ffb3f" @@ -4611,13 +5335,665 @@ querystring "^0.2.0" strip-ansi "^6.0.0" -"@solana/buffer-layout@^4.0.1": +"@socket.io/component-emitter@~3.1.0": + version "3.1.2" + resolved "https://registry.yarnpkg.com/@socket.io/component-emitter/-/component-emitter-3.1.2.tgz#821f8442f4175d8f0467b9daf26e3a18e2d02af2" + integrity sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA== + +"@solana-mobile/mobile-wallet-adapter-protocol-web3js@^2.1.2": + version "2.1.3" + resolved "https://registry.yarnpkg.com/@solana-mobile/mobile-wallet-adapter-protocol-web3js/-/mobile-wallet-adapter-protocol-web3js-2.1.3.tgz#34da335bc69b6fb0abeadee3f0672841d4f9d688" + integrity sha512-IEvPzp4m39sWTS3gybbVfk1WQ5Bx9TrGlthtRlVw1BJPvjbmT6lTcnndgXp7HmMkz5e6cc8fwJWp3EKx5upAug== + dependencies: + "@solana-mobile/mobile-wallet-adapter-protocol" "^2.1.2" + bs58 "^5.0.0" + js-base64 "^3.7.5" + +"@solana-mobile/mobile-wallet-adapter-protocol@^2.1.2": + version "2.1.3" + resolved "https://registry.yarnpkg.com/@solana-mobile/mobile-wallet-adapter-protocol/-/mobile-wallet-adapter-protocol-2.1.3.tgz#6c87c98f7afec698e14f42726a8b7a161d9e0c78" + integrity sha512-rj1/cSQVjPYdQjHsJDxmlpgRjI9jly/0Md3bEeqCan2sLXPf5F6+TiVlAg9+Hxg+uVWd1peUrepFUdOykbklSw== + dependencies: + "@solana/wallet-standard" "^1.1.2" + "@solana/wallet-standard-util" "^1.1.1" + "@wallet-standard/core" "^1.0.3" + js-base64 "^3.7.5" + +"@solana-mobile/wallet-adapter-mobile@^2.0.0": + version "2.1.3" + resolved "https://registry.yarnpkg.com/@solana-mobile/wallet-adapter-mobile/-/wallet-adapter-mobile-2.1.3.tgz#62892131016cb6128922947db8702993a41e4f71" + integrity sha512-V9gxV7/F1BLode6I+j134kFvQv1mnF0OlN+tYPHEmJOcH4caDfH6rlJy7t9Pktkl9ZEVTO9kT8K19Y4MRl6nxg== + dependencies: + "@solana-mobile/mobile-wallet-adapter-protocol-web3js" "^2.1.2" + "@solana/wallet-adapter-base" "^0.9.23" + "@solana/wallet-standard-features" "^1.2.0" + js-base64 "^3.7.5" + optionalDependencies: + "@react-native-async-storage/async-storage" "^1.17.7" + +"@solana/buffer-layout-utils@^0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@solana/buffer-layout-utils/-/buffer-layout-utils-0.2.0.tgz#b45a6cab3293a2eb7597cceb474f229889d875ca" + integrity sha512-szG4sxgJGktbuZYDg2FfNmkMi0DYQoVjN2h7ta1W1hPrwzarcFLBq9UpX1UjNXsNpT9dn+chgprtWGioUAr4/g== + dependencies: + "@solana/buffer-layout" "^4.0.0" + "@solana/web3.js" "^1.32.0" + bigint-buffer "^1.1.5" + bignumber.js "^9.0.1" + +"@solana/buffer-layout@^4.0.0", "@solana/buffer-layout@^4.0.1": version "4.0.1" resolved "https://registry.yarnpkg.com/@solana/buffer-layout/-/buffer-layout-4.0.1.tgz#b996235eaec15b1e0b5092a8ed6028df77fa6c15" integrity sha512-E1ImOIAD1tBZFRdjeM4/pzTiTApC0AOBGwyAMS4fwIodCWArzJ3DWdoh8cKxeFM2fElkxBh2Aqts1BPC373rHA== dependencies: buffer "~6.0.3" +"@solana/codecs-core@2.0.0-preview.4": + version "2.0.0-preview.4" + resolved "https://registry.yarnpkg.com/@solana/codecs-core/-/codecs-core-2.0.0-preview.4.tgz#770826105f2f884110a21662573e7a2014654324" + integrity sha512-A0VVuDDA5kNKZUinOqHxJQK32aKTucaVbvn31YenGzHX1gPqq+SOnFwgaEY6pq4XEopSmaK16w938ZQS8IvCnw== + dependencies: + "@solana/errors" "2.0.0-preview.4" + +"@solana/codecs-core@2.0.0-rc.1": + version "2.0.0-rc.1" + resolved "https://registry.yarnpkg.com/@solana/codecs-core/-/codecs-core-2.0.0-rc.1.tgz#1a2d76b9c7b9e7b7aeb3bd78be81c2ba21e3ce22" + integrity sha512-bauxqMfSs8EHD0JKESaNmNuNvkvHSuN3bbWAF5RjOfDu2PugxHrvRebmYauvSumZ3cTfQ4HJJX6PG5rN852qyQ== + dependencies: + "@solana/errors" "2.0.0-rc.1" + +"@solana/codecs-data-structures@2.0.0-preview.4": + version "2.0.0-preview.4" + resolved "https://registry.yarnpkg.com/@solana/codecs-data-structures/-/codecs-data-structures-2.0.0-preview.4.tgz#f8a2470982a9792334737ea64000ccbdff287247" + integrity sha512-nt2k2eTeyzlI/ccutPcG36M/J8NAYfxBPI9h/nQjgJ+M+IgOKi31JV8StDDlG/1XvY0zyqugV3I0r3KAbZRJpA== + dependencies: + "@solana/codecs-core" "2.0.0-preview.4" + "@solana/codecs-numbers" "2.0.0-preview.4" + "@solana/errors" "2.0.0-preview.4" + +"@solana/codecs-data-structures@2.0.0-rc.1": + version "2.0.0-rc.1" + resolved "https://registry.yarnpkg.com/@solana/codecs-data-structures/-/codecs-data-structures-2.0.0-rc.1.tgz#d47b2363d99fb3d643f5677c97d64a812982b888" + integrity sha512-rinCv0RrAVJ9rE/rmaibWJQxMwC5lSaORSZuwjopSUE6T0nb/MVg6Z1siNCXhh/HFTOg0l8bNvZHgBcN/yvXog== + dependencies: + "@solana/codecs-core" "2.0.0-rc.1" + "@solana/codecs-numbers" "2.0.0-rc.1" + "@solana/errors" "2.0.0-rc.1" + +"@solana/codecs-numbers@2.0.0-preview.4": + version "2.0.0-preview.4" + resolved "https://registry.yarnpkg.com/@solana/codecs-numbers/-/codecs-numbers-2.0.0-preview.4.tgz#6a53b456bb7866f252d8c032c81a92651e150f66" + integrity sha512-Q061rLtMadsO7uxpguT+Z7G4UHnjQ6moVIxAQxR58nLxDPCC7MB1Pk106/Z7NDhDLHTcd18uO6DZ7ajHZEn2XQ== + dependencies: + "@solana/codecs-core" "2.0.0-preview.4" + "@solana/errors" "2.0.0-preview.4" + +"@solana/codecs-numbers@2.0.0-rc.1": + version "2.0.0-rc.1" + resolved "https://registry.yarnpkg.com/@solana/codecs-numbers/-/codecs-numbers-2.0.0-rc.1.tgz#f34978ddf7ea4016af3aaed5f7577c1d9869a614" + integrity sha512-J5i5mOkvukXn8E3Z7sGIPxsThRCgSdgTWJDQeZvucQ9PT6Y3HiVXJ0pcWiOWAoQ3RX8e/f4I3IC+wE6pZiJzDQ== + dependencies: + "@solana/codecs-core" "2.0.0-rc.1" + "@solana/errors" "2.0.0-rc.1" + +"@solana/codecs-strings@2.0.0-preview.4": + version "2.0.0-preview.4" + resolved "https://registry.yarnpkg.com/@solana/codecs-strings/-/codecs-strings-2.0.0-preview.4.tgz#4d06bb722a55a5d04598d362021bfab4bd446760" + integrity sha512-YDbsQePRWm+xnrfS64losSGRg8Wb76cjK1K6qfR8LPmdwIC3787x9uW5/E4icl/k+9nwgbIRXZ65lpF+ucZUnw== + dependencies: + "@solana/codecs-core" "2.0.0-preview.4" + "@solana/codecs-numbers" "2.0.0-preview.4" + "@solana/errors" "2.0.0-preview.4" + +"@solana/codecs-strings@2.0.0-rc.1": + version "2.0.0-rc.1" + resolved "https://registry.yarnpkg.com/@solana/codecs-strings/-/codecs-strings-2.0.0-rc.1.tgz#e1d9167075b8c5b0b60849f8add69c0f24307018" + integrity sha512-9/wPhw8TbGRTt6mHC4Zz1RqOnuPTqq1Nb4EyuvpZ39GW6O2t2Q7Q0XxiB3+BdoEjwA2XgPw6e2iRfvYgqty44g== + dependencies: + "@solana/codecs-core" "2.0.0-rc.1" + "@solana/codecs-numbers" "2.0.0-rc.1" + "@solana/errors" "2.0.0-rc.1" + +"@solana/codecs@2.0.0-preview.4": + version "2.0.0-preview.4" + resolved "https://registry.yarnpkg.com/@solana/codecs/-/codecs-2.0.0-preview.4.tgz#a1923cc78a6f64ebe656c7ec6335eb6b70405b22" + integrity sha512-gLMupqI4i+G4uPi2SGF/Tc1aXcviZF2ybC81x7Q/fARamNSgNOCUUoSCg9nWu1Gid6+UhA7LH80sWI8XjKaRog== + dependencies: + "@solana/codecs-core" "2.0.0-preview.4" + "@solana/codecs-data-structures" "2.0.0-preview.4" + "@solana/codecs-numbers" "2.0.0-preview.4" + "@solana/codecs-strings" "2.0.0-preview.4" + "@solana/options" "2.0.0-preview.4" + +"@solana/codecs@2.0.0-rc.1": + version "2.0.0-rc.1" + resolved "https://registry.yarnpkg.com/@solana/codecs/-/codecs-2.0.0-rc.1.tgz#146dc5db58bd3c28e04b4c805e6096c2d2a0a875" + integrity sha512-qxoR7VybNJixV51L0G1RD2boZTcxmwUWnKCaJJExQ5qNKwbpSyDdWfFJfM5JhGyKe9DnPVOZB+JHWXnpbZBqrQ== + dependencies: + "@solana/codecs-core" "2.0.0-rc.1" + "@solana/codecs-data-structures" "2.0.0-rc.1" + "@solana/codecs-numbers" "2.0.0-rc.1" + "@solana/codecs-strings" "2.0.0-rc.1" + "@solana/options" "2.0.0-rc.1" + +"@solana/errors@2.0.0-preview.4": + version "2.0.0-preview.4" + resolved "https://registry.yarnpkg.com/@solana/errors/-/errors-2.0.0-preview.4.tgz#056ba76b6dd900dafa70117311bec3aef0f5250b" + integrity sha512-kadtlbRv2LCWr8A9V22On15Us7Nn8BvqNaOB4hXsTB3O0fU40D1ru2l+cReqLcRPij4znqlRzW9Xi0m6J5DIhA== + dependencies: + chalk "^5.3.0" + commander "^12.1.0" + +"@solana/errors@2.0.0-rc.1": + version "2.0.0-rc.1" + resolved "https://registry.yarnpkg.com/@solana/errors/-/errors-2.0.0-rc.1.tgz#3882120886eab98a37a595b85f81558861b29d62" + integrity sha512-ejNvQ2oJ7+bcFAYWj225lyRkHnixuAeb7RQCixm+5mH4n1IA4Qya/9Bmfy5RAAHQzxK43clu3kZmL5eF9VGtYQ== + dependencies: + chalk "^5.3.0" + commander "^12.1.0" + +"@solana/options@2.0.0-preview.4": + version "2.0.0-preview.4" + resolved "https://registry.yarnpkg.com/@solana/options/-/options-2.0.0-preview.4.tgz#212d35d1da87c7efb13de4d3569ad9eb070f013d" + integrity sha512-tv2O/Frxql/wSe3jbzi5nVicIWIus/BftH+5ZR+r9r3FO0/htEllZS5Q9XdbmSboHu+St87584JXeDx3xm4jaA== + dependencies: + "@solana/codecs-core" "2.0.0-preview.4" + "@solana/codecs-data-structures" "2.0.0-preview.4" + "@solana/codecs-numbers" "2.0.0-preview.4" + "@solana/codecs-strings" "2.0.0-preview.4" + "@solana/errors" "2.0.0-preview.4" + +"@solana/options@2.0.0-rc.1": + version "2.0.0-rc.1" + resolved "https://registry.yarnpkg.com/@solana/options/-/options-2.0.0-rc.1.tgz#06924ba316dc85791fc46726a51403144a85fc4d" + integrity sha512-mLUcR9mZ3qfHlmMnREdIFPf9dpMc/Bl66tLSOOWxw4ml5xMT2ohFn7WGqoKcu/UHkT9CrC6+amEdqCNvUqI7AA== + dependencies: + "@solana/codecs-core" "2.0.0-rc.1" + "@solana/codecs-data-structures" "2.0.0-rc.1" + "@solana/codecs-numbers" "2.0.0-rc.1" + "@solana/codecs-strings" "2.0.0-rc.1" + "@solana/errors" "2.0.0-rc.1" + +"@solana/spl-token-group@^0.0.5": + version "0.0.5" + resolved "https://registry.yarnpkg.com/@solana/spl-token-group/-/spl-token-group-0.0.5.tgz#f955dcca782031c85e862b2b46878d1bb02db6c2" + integrity sha512-CLJnWEcdoUBpQJfx9WEbX3h6nTdNiUzswfFdkABUik7HVwSNA98u5AYvBVK2H93d9PGMOHAak2lHW9xr+zAJGQ== + dependencies: + "@solana/codecs" "2.0.0-preview.4" + "@solana/spl-type-length-value" "0.1.0" + +"@solana/spl-token-metadata@^0.1.3": + version "0.1.5" + resolved "https://registry.yarnpkg.com/@solana/spl-token-metadata/-/spl-token-metadata-0.1.5.tgz#91616470d6862ec6b762e6cfcf882b8a8a24b1e8" + integrity sha512-DSBlo7vjuLe/xvNn75OKKndDBkFxlqjLdWlq6rf40StnrhRn7TDntHGLZpry1cf3uzQFShqeLROGNPAJwvkPnA== + dependencies: + "@solana/codecs" "2.0.0-rc.1" + "@solana/spl-type-length-value" "0.1.0" + +"@solana/spl-token@^0.4.8": + version "0.4.8" + resolved "https://registry.yarnpkg.com/@solana/spl-token/-/spl-token-0.4.8.tgz#a84e4131af957fa9fbd2727e5fc45dfbf9083586" + integrity sha512-RO0JD9vPRi4LsAbMUdNbDJ5/cv2z11MGhtAvFeRzT4+hAGE/FUzRi0tkkWtuCfSIU3twC6CtmAihRp/+XXjWsA== + dependencies: + "@solana/buffer-layout" "^4.0.0" + "@solana/buffer-layout-utils" "^0.2.0" + "@solana/spl-token-group" "^0.0.5" + "@solana/spl-token-metadata" "^0.1.3" + buffer "^6.0.3" + +"@solana/spl-type-length-value@0.1.0": + version "0.1.0" + resolved "https://registry.yarnpkg.com/@solana/spl-type-length-value/-/spl-type-length-value-0.1.0.tgz#b5930cf6c6d8f50c7ff2a70463728a4637a2f26b" + integrity sha512-JBMGB0oR4lPttOZ5XiUGyvylwLQjt1CPJa6qQ5oM+MBCndfjz2TKKkw0eATlLLcYmq1jBVsNlJ2cD6ns2GR7lA== + dependencies: + buffer "^6.0.3" + +"@solana/wallet-adapter-alpha@^0.1.10": + version "0.1.10" + resolved "https://registry.yarnpkg.com/@solana/wallet-adapter-alpha/-/wallet-adapter-alpha-0.1.10.tgz#497ac17634dac4de17eba643768df9b30a13129a" + integrity sha512-TOUhDyUNSmp8bqeUueN0LPmurTAEmYm3PTrPGSnsq6JFeTzwTv5xZRygtCvULpBzCPZu/7AfIqh/TSoz4P92aw== + dependencies: + "@solana/wallet-adapter-base" "^0.9.23" + +"@solana/wallet-adapter-avana@^0.1.13": + version "0.1.13" + resolved "https://registry.yarnpkg.com/@solana/wallet-adapter-avana/-/wallet-adapter-avana-0.1.13.tgz#dfa5385edcc24557fa6962ade55915a696abc74a" + integrity sha512-dvKDzaFo9KgfNh0ohI6qOBTnOU2f6cHKPiDxdtLfXVubdic1mUYzuA2PcrBZQuRc5EBcvHbGCpr3Ds90cGB+xQ== + dependencies: + "@solana/wallet-adapter-base" "^0.9.23" + +"@solana/wallet-adapter-base-ui@^0.1.2": + version "0.1.2" + resolved "https://registry.yarnpkg.com/@solana/wallet-adapter-base-ui/-/wallet-adapter-base-ui-0.1.2.tgz#f5ad35c0ac1d086c69591613fb1a0bd2eae20c4e" + integrity sha512-33l0WqY0mKKhcrNBbqS9anvT4MjzNnKewoF1VcdbI/uSlMOZtGy+9fr8ETVFI+ivr44QHpvbiZX9dmz2mTCGXw== + dependencies: + "@solana/wallet-adapter-react" "^0.15.35" + +"@solana/wallet-adapter-base@^0.9.17", "@solana/wallet-adapter-base@^0.9.23": + version "0.9.23" + resolved "https://registry.yarnpkg.com/@solana/wallet-adapter-base/-/wallet-adapter-base-0.9.23.tgz#3b17c28afd44e173f44f658bf9700fd637e12a11" + integrity sha512-apqMuYwFp1jFi55NxDfvXUX2x1T0Zh07MxhZ/nCCTGys5raSfYUh82zen2BLv8BSDj/JxZ2P/s7jrQZGrX8uAw== + dependencies: + "@solana/wallet-standard-features" "^1.1.0" + "@wallet-standard/base" "^1.0.1" + "@wallet-standard/features" "^1.0.3" + eventemitter3 "^4.0.7" + +"@solana/wallet-adapter-bitkeep@^0.3.20": + version "0.3.20" + resolved "https://registry.yarnpkg.com/@solana/wallet-adapter-bitkeep/-/wallet-adapter-bitkeep-0.3.20.tgz#96f59932238d6dad3af3d983cee82ca6665236e8" + integrity sha512-v6Jd13CZOPNIAX0nFlopAJ3HDvC+MhiB4sde3C8sSnNbjVi9h1WLHBmaUfgqU6mAyhDjWUZjKt4zYlMhLdp/bg== + dependencies: + "@solana/wallet-adapter-base" "^0.9.23" + +"@solana/wallet-adapter-bitpie@^0.5.18": + version "0.5.18" + resolved "https://registry.yarnpkg.com/@solana/wallet-adapter-bitpie/-/wallet-adapter-bitpie-0.5.18.tgz#c77e6d3a43811ed133cf9a92e344aed8ddef15f5" + integrity sha512-gEflEwAyUbfmU4NEmsoDYt1JNFyoBQGm99BBvrvXdJsDdExvT6PwHNi5YlQKp1A4EAqjqaEj+nQzr6ygUpmCBQ== + dependencies: + "@solana/wallet-adapter-base" "^0.9.23" + +"@solana/wallet-adapter-clover@^0.4.19": + version "0.4.19" + resolved "https://registry.yarnpkg.com/@solana/wallet-adapter-clover/-/wallet-adapter-clover-0.4.19.tgz#76e63d52d5596f34eb48c1a216f81e9600fa320b" + integrity sha512-48PoaPte/SRYeU25bvOSmSEqoKCcyOBH9CXebsDcXkrgf+g46KRlAlsY605q1ebzr+iaFEONtTdxW8LthvJtbA== + dependencies: + "@solana/wallet-adapter-base" "^0.9.23" + +"@solana/wallet-adapter-coin98@^0.5.20": + version "0.5.20" + resolved "https://registry.yarnpkg.com/@solana/wallet-adapter-coin98/-/wallet-adapter-coin98-0.5.20.tgz#7ad234b4715cadda80bc09e2ccd9e960ceba1e77" + integrity sha512-gnDFNsFq4IeB6jtQj6fZOUthuuQpvtomCkwkwsOWARNhl8nhnsfbuNs3r4XaT4Q79my07ogNQUBPGKY/8CqjiA== + dependencies: + "@solana/wallet-adapter-base" "^0.9.23" + bs58 "^4.0.1" + +"@solana/wallet-adapter-coinbase@^0.1.19": + version "0.1.19" + resolved "https://registry.yarnpkg.com/@solana/wallet-adapter-coinbase/-/wallet-adapter-coinbase-0.1.19.tgz#b750fa739c67390e0918bd7ccc21f39fd602d462" + integrity sha512-hcf9ieAbQxD2g8/5glXVAt67w+3iixpjMMZC7lT7Wa8SJZsq6lmISC9AtZctDEQcWSVV0IkedZp3bg6bp22kng== + dependencies: + "@solana/wallet-adapter-base" "^0.9.23" + +"@solana/wallet-adapter-coinhub@^0.3.18": + version "0.3.18" + resolved "https://registry.yarnpkg.com/@solana/wallet-adapter-coinhub/-/wallet-adapter-coinhub-0.3.18.tgz#3f23b32a88328ae0ba66fc25b15d65e4b13979eb" + integrity sha512-yeJo+cHVlUBlH16Q+knnFDJrH9wzEB3zvSq57PXfqvlWSjySm4PkkK7srRoAwfNOxL/eArSJWfBwRprsymttJQ== + dependencies: + "@solana/wallet-adapter-base" "^0.9.23" + +"@solana/wallet-adapter-fractal@^0.1.8": + version "0.1.8" + resolved "https://registry.yarnpkg.com/@solana/wallet-adapter-fractal/-/wallet-adapter-fractal-0.1.8.tgz#27c6a33c6d56ffb74bab157f2cc6cde7d03d1e54" + integrity sha512-lV/rXOMQSR7sBIEDx8g0jwvXP/fT2Vw/47CSj9BaVYC5LGphhuoYbcI4ko1y0Zv+dJu8JVRTeKbnaiRBjht5DA== + dependencies: + "@fractalwagmi/solana-wallet-adapter" "^0.1.1" + "@solana/wallet-adapter-base" "^0.9.23" + +"@solana/wallet-adapter-huobi@^0.1.15": + version "0.1.15" + resolved "https://registry.yarnpkg.com/@solana/wallet-adapter-huobi/-/wallet-adapter-huobi-0.1.15.tgz#a9e7eaf26fbef743f0b47572ddc46e92e6a62f44" + integrity sha512-VKwlK0fE7v97NEWwP86iBY/xgnB3fQJv2/RYaw8ODAcfJqVQZAV6EhDR8fo6++jdS1KkcWc2GcHdBMrqPli3yQ== + dependencies: + "@solana/wallet-adapter-base" "^0.9.23" + +"@solana/wallet-adapter-hyperpay@^0.1.14": + version "0.1.14" + resolved "https://registry.yarnpkg.com/@solana/wallet-adapter-hyperpay/-/wallet-adapter-hyperpay-0.1.14.tgz#1dcf15366165cc4e742346eb42b353c8c67f44f4" + integrity sha512-K0qMVpPHbeIVAvhwnn+2GR8jjBe/a5EP514TL/10SQQ8vTLd7ggNWZdTRCjUkHRlsbTOK7yYWAOHu3gx7429rw== + dependencies: + "@solana/wallet-adapter-base" "^0.9.23" + +"@solana/wallet-adapter-keystone@^0.1.15": + version "0.1.15" + resolved "https://registry.yarnpkg.com/@solana/wallet-adapter-keystone/-/wallet-adapter-keystone-0.1.15.tgz#baff234defdb932347451bb413f09e93433c9ba6" + integrity sha512-2A31/vuDRAfASOEyWvJ2YjtwCQohwim3/K+KzhPfvG20C4wr6agDbMXi1T2lDWwrd13kyP+dIgOzPfuLn09tWw== + dependencies: + "@keystonehq/sol-keyring" "^0.3.1" + "@solana/wallet-adapter-base" "^0.9.23" + +"@solana/wallet-adapter-krystal@^0.1.12": + version "0.1.12" + resolved "https://registry.yarnpkg.com/@solana/wallet-adapter-krystal/-/wallet-adapter-krystal-0.1.12.tgz#bcb6cdf6a553dde575042353fdd155a890478fdd" + integrity sha512-umQV9cbLZcqJFkcjpdOgPvTeDvUjcivRSzWgbx27drmeQ9bi4w9bYH5XkFmbj9iD98q+fjrYQUOK772IHZqrkQ== + dependencies: + "@solana/wallet-adapter-base" "^0.9.23" + +"@solana/wallet-adapter-ledger@^0.9.25": + version "0.9.25" + resolved "https://registry.yarnpkg.com/@solana/wallet-adapter-ledger/-/wallet-adapter-ledger-0.9.25.tgz#c9243b47d94469788e8090fbe8a136867e944bd9" + integrity sha512-59yD3aveLwlzXqk4zBCaPLobeqAhmtMxPizfUBOjzwRKyepi1Nnnt9AC9Af3JrweU2x4qySRxAaZfU/iNqJ3rQ== + dependencies: + "@ledgerhq/devices" "6.27.1" + "@ledgerhq/hw-transport" "6.27.1" + "@ledgerhq/hw-transport-webhid" "6.27.1" + "@solana/wallet-adapter-base" "^0.9.23" + buffer "^6.0.3" + +"@solana/wallet-adapter-mathwallet@^0.9.18": + version "0.9.18" + resolved "https://registry.yarnpkg.com/@solana/wallet-adapter-mathwallet/-/wallet-adapter-mathwallet-0.9.18.tgz#23172fef715a7dc8b600887c5d0fb996eb6c6cf0" + integrity sha512-sleBX+wB8Wahu2lLBCWihkFtnl64DMJgla/kgsf75PCNmNA93+WLA4gYOK+fFKeBkU12a/Hp5oZKEQsQGFPSOA== + dependencies: + "@solana/wallet-adapter-base" "^0.9.23" + +"@solana/wallet-adapter-neko@^0.2.12": + version "0.2.12" + resolved "https://registry.yarnpkg.com/@solana/wallet-adapter-neko/-/wallet-adapter-neko-0.2.12.tgz#aeacd2ca856692fd41e1c5c86bc986349df42db1" + integrity sha512-ei1QoQZhiYMuH/qm3bnXlueT0jQmH4tZfQvEwudFB8+a0fLtSA8lZU+CYI1jd1YLDjkUEIiXV6R/u32nlCuYDA== + dependencies: + "@solana/wallet-adapter-base" "^0.9.23" + +"@solana/wallet-adapter-nightly@^0.1.16": + version "0.1.16" + resolved "https://registry.yarnpkg.com/@solana/wallet-adapter-nightly/-/wallet-adapter-nightly-0.1.16.tgz#51be8f39d8ccac609c59c96ea1f5df95d71274ca" + integrity sha512-JaPzT8R4HHUqGn/QdElx9iRW98h0NaANBt0j3CZZYWlqsdG0f8fFfy2xofILA+qnDL6NaRI9AzQ4NcQGuVZsVQ== + dependencies: + "@solana/wallet-adapter-base" "^0.9.23" + +"@solana/wallet-adapter-nufi@^0.1.17": + version "0.1.17" + resolved "https://registry.yarnpkg.com/@solana/wallet-adapter-nufi/-/wallet-adapter-nufi-0.1.17.tgz#131a02453905aafdecaef12d251b0b0aaab08a44" + integrity sha512-ggTZKvYPJS3m/9hsMaGSH0F8kqumPqP0WdY7WNihWR6O4Pr401kDBdgXPXNSGorIahdPrRBzp5UrahnrlodvTQ== + dependencies: + "@solana/wallet-adapter-base" "^0.9.23" + +"@solana/wallet-adapter-onto@^0.1.7": + version "0.1.7" + resolved "https://registry.yarnpkg.com/@solana/wallet-adapter-onto/-/wallet-adapter-onto-0.1.7.tgz#f1a9b0aa8205f7bc7c552139ff9a7699e9bf753d" + integrity sha512-WS4LY0Z0J+NcyEkjdjkD11uKURkRQ/RHMYSFE59U+MuBHggEpXJFZuJzUE9SZbG1ltlLTh13hS5ZuiEz7F+faA== + dependencies: + "@solana/wallet-adapter-base" "^0.9.23" + +"@solana/wallet-adapter-particle@^0.1.12": + version "0.1.12" + resolved "https://registry.yarnpkg.com/@solana/wallet-adapter-particle/-/wallet-adapter-particle-0.1.12.tgz#666755a156ad2ce24baa48b92bc1b1c39447a57c" + integrity sha512-6tD5pbyuyCRDswDVD5LCakVQ/vIwjO2lXlVvJFDLdhGa6MinbjTHigLmE58nkTgKATRScyS8FuCCzGmYcXGbow== + dependencies: + "@particle-network/solana-wallet" "^1.3.2" + "@solana/wallet-adapter-base" "^0.9.23" + +"@solana/wallet-adapter-phantom@^0.9.24": + version "0.9.24" + resolved "https://registry.yarnpkg.com/@solana/wallet-adapter-phantom/-/wallet-adapter-phantom-0.9.24.tgz#9cc0c55d784f99f81a711bae895c38819960b2fc" + integrity sha512-D24AxRHmRJ4AYoRvijbiuUb9LmC4xLGKLMSJS2ly+zGxVmaPASPM/ThaY/DlYTDL31QvkYtl8RzSR4yIU1gpLg== + dependencies: + "@solana/wallet-adapter-base" "^0.9.23" + +"@solana/wallet-adapter-react-ui@^0.9.35": + version "0.9.35" + resolved "https://registry.yarnpkg.com/@solana/wallet-adapter-react-ui/-/wallet-adapter-react-ui-0.9.35.tgz#f44bf71a636845cf6862ac7fd556ee6f7b1a3757" + integrity sha512-SyHUavEAyzBL5zim5xAlYaqP5jF3bOtxi/02wgXzMpKXUYpG4EiXXY3DeGw5eUbcvvej45rQENtTHWEEH9fW+A== + dependencies: + "@solana/wallet-adapter-base" "^0.9.23" + "@solana/wallet-adapter-base-ui" "^0.1.2" + "@solana/wallet-adapter-react" "^0.15.35" + +"@solana/wallet-adapter-react@^0.15.35": + version "0.15.35" + resolved "https://registry.yarnpkg.com/@solana/wallet-adapter-react/-/wallet-adapter-react-0.15.35.tgz#0d42e6774c0d55f3782d3eb5edb6ac9888858b08" + integrity sha512-i4hc/gNLTYNLMEt2LS+4lrrc0QAwa5SU2PtYMnZ2A3rsoKF5m1bv1h6cjLj2KBry4/zRGEBoqkiMOC5zHkLnRQ== + dependencies: + "@solana-mobile/wallet-adapter-mobile" "^2.0.0" + "@solana/wallet-adapter-base" "^0.9.23" + "@solana/wallet-standard-wallet-adapter-react" "^1.1.0" + +"@solana/wallet-adapter-safepal@^0.5.18": + version "0.5.18" + resolved "https://registry.yarnpkg.com/@solana/wallet-adapter-safepal/-/wallet-adapter-safepal-0.5.18.tgz#7eaaeaf6cb162beaed74a61b5beb6b95a67c63ea" + integrity sha512-E/EIO5j+f0FS9Yj5o5JLJ/qHh3Se/9jP2KdHKhooWTlXWbQDzrxMjV88qIKKl5sgWEndqRYDuDbAdW+2dhw6hw== + dependencies: + "@solana/wallet-adapter-base" "^0.9.23" + +"@solana/wallet-adapter-saifu@^0.1.15": + version "0.1.15" + resolved "https://registry.yarnpkg.com/@solana/wallet-adapter-saifu/-/wallet-adapter-saifu-0.1.15.tgz#f02df273b3829486b4d26dd265a80f8af1de1960" + integrity sha512-4nrziKQ+4QInh+COsICpNNUlUt456EJ60SZLxvG/z1AOGpatuzT0gN1+RdMcwHGUtiPBPCkEneUVhFZhhbMJlg== + dependencies: + "@solana/wallet-adapter-base" "^0.9.23" + +"@solana/wallet-adapter-salmon@^0.1.14": + version "0.1.14" + resolved "https://registry.yarnpkg.com/@solana/wallet-adapter-salmon/-/wallet-adapter-salmon-0.1.14.tgz#4a6c6d570600e07af731d4ba2565f22a23211d85" + integrity sha512-CMXdbhaj3prloCJwvxO7e1wfAyRd58QiPB8pjvB4GBbznyoSnHbFXmpxZrKX1Dk6FoJOGBgjB71xnreGcc6oMw== + dependencies: + "@solana/wallet-adapter-base" "^0.9.23" + salmon-adapter-sdk "^1.1.1" + +"@solana/wallet-adapter-sky@^0.1.15": + version "0.1.15" + resolved "https://registry.yarnpkg.com/@solana/wallet-adapter-sky/-/wallet-adapter-sky-0.1.15.tgz#43ea9e2f1505b4ab163b276ac8bd9a6a6467d105" + integrity sha512-1vlk1/jnlOC/WfDDgDoUk3XtEhB3hq1fKtUb+xj0pVuSOg2Db+8ka9vPPYlVaKHoGvjm30iGGfr3ZrCxVfG6OQ== + dependencies: + "@solana/wallet-adapter-base" "^0.9.23" + +"@solana/wallet-adapter-solflare@^0.6.28": + version "0.6.28" + resolved "https://registry.yarnpkg.com/@solana/wallet-adapter-solflare/-/wallet-adapter-solflare-0.6.28.tgz#3de42a43220cca361050ebd1755078012a5b0fe2" + integrity sha512-iiUQtuXp8p4OdruDawsm1dRRnzUCcsu+lKo8OezESskHtbmZw2Ifej0P99AbJbBAcBw7q4GPI6987Vh05Si5rw== + dependencies: + "@solana/wallet-adapter-base" "^0.9.23" + "@solana/wallet-standard-chains" "^1.1.0" + "@solflare-wallet/metamask-sdk" "^1.0.2" + "@solflare-wallet/sdk" "^1.3.0" + "@wallet-standard/wallet" "^1.0.1" + +"@solana/wallet-adapter-solong@^0.9.18": + version "0.9.18" + resolved "https://registry.yarnpkg.com/@solana/wallet-adapter-solong/-/wallet-adapter-solong-0.9.18.tgz#c7b2f043c2142d40cda7537ad028f31bd5b95815" + integrity sha512-n40eemFUbJlOP+FKvn8rgq+YAOW51lEsn7uVz5ZjmiaW6MnRQniId9KkGYPPOUjytFyM+6/4x6IXI+QJknlSqA== + dependencies: + "@solana/wallet-adapter-base" "^0.9.23" + +"@solana/wallet-adapter-spot@^0.1.15": + version "0.1.15" + resolved "https://registry.yarnpkg.com/@solana/wallet-adapter-spot/-/wallet-adapter-spot-0.1.15.tgz#f442a2f5560ed3abc0fefa5984aaa0af695f3b28" + integrity sha512-daU2iBTSJp1RGfQrB2uV06+2WHfeyW0uhjoJ3zTkz24kXqv5/ycoPHr8Gi2jkDSGMFkewnjWF8g0KMEzq2VYug== + dependencies: + "@solana/wallet-adapter-base" "^0.9.23" + +"@solana/wallet-adapter-tokenary@^0.1.12": + version "0.1.12" + resolved "https://registry.yarnpkg.com/@solana/wallet-adapter-tokenary/-/wallet-adapter-tokenary-0.1.12.tgz#83d99309528794fb2380354c164729e68abe1440" + integrity sha512-iIsOzzEHfRfDUiwYy2BAVGeMl+xBUu92qYK1yAKeKxQPF5McJrnjS3FXwT/onBU5WMdxI6dWm0HKZUiDwefN6A== + dependencies: + "@solana/wallet-adapter-base" "^0.9.23" + +"@solana/wallet-adapter-tokenpocket@^0.4.19": + version "0.4.19" + resolved "https://registry.yarnpkg.com/@solana/wallet-adapter-tokenpocket/-/wallet-adapter-tokenpocket-0.4.19.tgz#a380eb15270d1d209d4d7b4e961270b977e4070e" + integrity sha512-zKXTN+tuKIr/stSxUeG9XPBks9iqeliBWS9JF8eq+8u/Qb/bIDbNSQmd8Z5u1x2lf0puiStc9/iUu/+MLaOSVg== + dependencies: + "@solana/wallet-adapter-base" "^0.9.23" + +"@solana/wallet-adapter-torus@^0.11.28": + version "0.11.28" + resolved "https://registry.yarnpkg.com/@solana/wallet-adapter-torus/-/wallet-adapter-torus-0.11.28.tgz#b857eeab77ff16a0e2400bc841e261ce58fb9da3" + integrity sha512-bu1oJQ+AoIZICxz8J1lVcdL+iBBrdbynnEs5N6dxwoM/cMGLbX7PGYqaH0J1dEXisA+1H5AzGAnW4UU05VBmLA== + dependencies: + "@solana/wallet-adapter-base" "^0.9.23" + "@toruslabs/solana-embed" "^0.3.4" + assert "^2.0.0" + crypto-browserify "^3.12.0" + process "^0.11.10" + stream-browserify "^3.0.0" + +"@solana/wallet-adapter-trezor@^0.1.2": + version "0.1.2" + resolved "https://registry.yarnpkg.com/@solana/wallet-adapter-trezor/-/wallet-adapter-trezor-0.1.2.tgz#05c1a31ac9bbbbf9457927cec1152965423c7362" + integrity sha512-x4nXntYi1SIv63ZdXWX/Rq/VKwguByKu67WpyUXsu8kOdviksb20bQMuAR7Ue41oJ9zSnLlTxAxA1SuWNkFRBg== + dependencies: + "@solana/wallet-adapter-base" "^0.9.23" + "@trezor/connect-web" "^9.2.1" + buffer "^6.0.3" + +"@solana/wallet-adapter-trust@^0.1.13": + version "0.1.13" + resolved "https://registry.yarnpkg.com/@solana/wallet-adapter-trust/-/wallet-adapter-trust-0.1.13.tgz#7c67b76d1977f9e2e45a8b6f5e4c470b29c1d33e" + integrity sha512-lkmPfNdyRgx+z0K7i2cDa3a6SOKXpi3FiaYSo8Zozoxkp+Ga/NXVWxlXtMca4GAc/MnJMVp7yF/31kyFIee+3A== + dependencies: + "@solana/wallet-adapter-base" "^0.9.23" + +"@solana/wallet-adapter-unsafe-burner@^0.1.7": + version "0.1.7" + resolved "https://registry.yarnpkg.com/@solana/wallet-adapter-unsafe-burner/-/wallet-adapter-unsafe-burner-0.1.7.tgz#11e734988af382f2eeb533d0eacca297de4bf190" + integrity sha512-SuBVqQxA1NNUwP4Lo70rLPaM8aWkV1EFAlxkRoRLtwyw/gM8bxTO6+9EVyKCv+ix3yw1rCGIF3B0idXx0i37eQ== + dependencies: + "@noble/curves" "^1.1.0" + "@solana/wallet-adapter-base" "^0.9.23" + "@solana/wallet-standard-features" "^1.1.0" + "@solana/wallet-standard-util" "^1.1.0" + +"@solana/wallet-adapter-walletconnect@^0.1.16": + version "0.1.16" + resolved "https://registry.yarnpkg.com/@solana/wallet-adapter-walletconnect/-/wallet-adapter-walletconnect-0.1.16.tgz#c335970ddec1247e546a4811fceb4f5edf9487de" + integrity sha512-jNaQwSho8hT7gF1ifePE8TJc1FULx8jCF16KX3fZPtzXDxKrj0R4VUpHMGcw4MlDknrnZNLOJAVvyiawAkPCRQ== + dependencies: + "@jnwng/walletconnect-solana" "^0.2.0" + "@solana/wallet-adapter-base" "^0.9.23" + +"@solana/wallet-adapter-wallets@^0.19.32": + version "0.19.32" + resolved "https://registry.yarnpkg.com/@solana/wallet-adapter-wallets/-/wallet-adapter-wallets-0.19.32.tgz#2b3c887e825a480c7c210d2794c19a7c2c1ed57a" + integrity sha512-voZYQiIy1yXuKvm7x7YpnQ53eiJC7NpIYSQjzApOUiswiBRVeYcnPO4O/MMPUwsGkS7iZKqKZjo5CnOaN44n+g== + dependencies: + "@solana/wallet-adapter-alpha" "^0.1.10" + "@solana/wallet-adapter-avana" "^0.1.13" + "@solana/wallet-adapter-bitkeep" "^0.3.20" + "@solana/wallet-adapter-bitpie" "^0.5.18" + "@solana/wallet-adapter-clover" "^0.4.19" + "@solana/wallet-adapter-coin98" "^0.5.20" + "@solana/wallet-adapter-coinbase" "^0.1.19" + "@solana/wallet-adapter-coinhub" "^0.3.18" + "@solana/wallet-adapter-fractal" "^0.1.8" + "@solana/wallet-adapter-huobi" "^0.1.15" + "@solana/wallet-adapter-hyperpay" "^0.1.14" + "@solana/wallet-adapter-keystone" "^0.1.15" + "@solana/wallet-adapter-krystal" "^0.1.12" + "@solana/wallet-adapter-ledger" "^0.9.25" + "@solana/wallet-adapter-mathwallet" "^0.9.18" + "@solana/wallet-adapter-neko" "^0.2.12" + "@solana/wallet-adapter-nightly" "^0.1.16" + "@solana/wallet-adapter-nufi" "^0.1.17" + "@solana/wallet-adapter-onto" "^0.1.7" + "@solana/wallet-adapter-particle" "^0.1.12" + "@solana/wallet-adapter-phantom" "^0.9.24" + "@solana/wallet-adapter-safepal" "^0.5.18" + "@solana/wallet-adapter-saifu" "^0.1.15" + "@solana/wallet-adapter-salmon" "^0.1.14" + "@solana/wallet-adapter-sky" "^0.1.15" + "@solana/wallet-adapter-solflare" "^0.6.28" + "@solana/wallet-adapter-solong" "^0.9.18" + "@solana/wallet-adapter-spot" "^0.1.15" + "@solana/wallet-adapter-tokenary" "^0.1.12" + "@solana/wallet-adapter-tokenpocket" "^0.4.19" + "@solana/wallet-adapter-torus" "^0.11.28" + "@solana/wallet-adapter-trezor" "^0.1.2" + "@solana/wallet-adapter-trust" "^0.1.13" + "@solana/wallet-adapter-unsafe-burner" "^0.1.7" + "@solana/wallet-adapter-walletconnect" "^0.1.16" + "@solana/wallet-adapter-xdefi" "^0.1.7" + +"@solana/wallet-adapter-xdefi@^0.1.7": + version "0.1.7" + resolved "https://registry.yarnpkg.com/@solana/wallet-adapter-xdefi/-/wallet-adapter-xdefi-0.1.7.tgz#caa3c134148a4b9867a474ec3d139b4d7326d522" + integrity sha512-d0icfBOQyaY8kpsdU/wQwaBIahZZPzkXkXfBjpMGwjixD8oeZUFfsg8LC7T1rOIUObeczlocaR/lwtEqWpnaeg== + dependencies: + "@solana/wallet-adapter-base" "^0.9.23" + +"@solana/wallet-standard-chains@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@solana/wallet-standard-chains/-/wallet-standard-chains-1.1.0.tgz#459b297e71b0d9c1196c11a0578b38c85998be7d" + integrity sha512-IRJHf94UZM8AaRRmY18d34xCJiVPJej1XVwXiTjihHnmwD0cxdQbc/CKjrawyqFyQAKJx7raE5g9mnJsAdspTg== + dependencies: + "@wallet-standard/base" "^1.0.1" + +"@solana/wallet-standard-core@^1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@solana/wallet-standard-core/-/wallet-standard-core-1.1.1.tgz#7187c085dcee38719902217a7ecdd1bf3f27afa3" + integrity sha512-DoQ5Ryly4GAZtxRUmW2rIWrgNvTYVCWrFCFFjZI5s4zu2QNsP7sHZUax3kc1GbmFLXNL1FWRZlPOXRs6e0ZEng== + dependencies: + "@solana/wallet-standard-chains" "^1.1.0" + "@solana/wallet-standard-features" "^1.2.0" + "@solana/wallet-standard-util" "^1.1.1" + +"@solana/wallet-standard-features@^1.1.0", "@solana/wallet-standard-features@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@solana/wallet-standard-features/-/wallet-standard-features-1.2.0.tgz#be8b3824abf5ebcfeaa7298445bf53f76a27c935" + integrity sha512-tUd9srDLkRpe1BYg7we+c4UhRQkq+XQWswsr/L1xfGmoRDF47BPSXf4zE7ZU2GRBGvxtGt7lwJVAufQyQYhxTQ== + dependencies: + "@wallet-standard/base" "^1.0.1" + "@wallet-standard/features" "^1.0.3" + +"@solana/wallet-standard-util@^1.1.0", "@solana/wallet-standard-util@^1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@solana/wallet-standard-util/-/wallet-standard-util-1.1.1.tgz#f645fdd8b7d3c553a3b59aa19c25c51a1badce66" + integrity sha512-dPObl4ntmfOc0VAGGyyFvrqhL8UkHXmVsgbj0K9RcznKV4KB3MgjGwzo8CTSX5El5lkb0rDeEzFqvToJXRz3dw== + dependencies: + "@noble/curves" "^1.1.0" + "@solana/wallet-standard-chains" "^1.1.0" + "@solana/wallet-standard-features" "^1.2.0" + +"@solana/wallet-standard-wallet-adapter-base@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@solana/wallet-standard-wallet-adapter-base/-/wallet-standard-wallet-adapter-base-1.1.2.tgz#f030f412cd16b06e95c6da5548a03113319d3620" + integrity sha512-DqhzYbgh3disHMgcz6Du7fmpG29BYVapNEEiL+JoVMa+bU9d4P1wfwXUNyJyRpGGNXtwhyZjIk2umWbe5ZBNaQ== + dependencies: + "@solana/wallet-adapter-base" "^0.9.23" + "@solana/wallet-standard-chains" "^1.1.0" + "@solana/wallet-standard-features" "^1.2.0" + "@solana/wallet-standard-util" "^1.1.1" + "@wallet-standard/app" "^1.0.1" + "@wallet-standard/base" "^1.0.1" + "@wallet-standard/features" "^1.0.3" + "@wallet-standard/wallet" "^1.0.1" + +"@solana/wallet-standard-wallet-adapter-react@^1.1.0", "@solana/wallet-standard-wallet-adapter-react@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@solana/wallet-standard-wallet-adapter-react/-/wallet-standard-wallet-adapter-react-1.1.2.tgz#a7bc71786e8f891d2dd83f7de30db4708767a56a" + integrity sha512-bN6W4QkzenyjUoUz3sC5PAed+z29icGtPh9VSmLl1ZrRO7NbFB49a8uwUUVXNxhL/ZbMsyVKhb9bNj47/p8uhQ== + dependencies: + "@solana/wallet-standard-wallet-adapter-base" "^1.1.2" + "@wallet-standard/app" "^1.0.1" + "@wallet-standard/base" "^1.0.1" + +"@solana/wallet-standard-wallet-adapter@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@solana/wallet-standard-wallet-adapter/-/wallet-standard-wallet-adapter-1.1.2.tgz#a9ff9e4d5c379e4f38c03a2b69c9a221904181b6" + integrity sha512-lCwoA+vhPfmvjcmJOhSRV94wouVWTfJv1Z7eeULAe+GodCeKA/0T9/uBYgXHUxQjLHd7o8LpLYIkfm+xjA5sMA== + dependencies: + "@solana/wallet-standard-wallet-adapter-base" "^1.1.2" + "@solana/wallet-standard-wallet-adapter-react" "^1.1.2" + +"@solana/wallet-standard@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@solana/wallet-standard/-/wallet-standard-1.1.2.tgz#b68e38db863f6945979fe278f2cecc2e21f84c2d" + integrity sha512-o7wk+zr5/QgyE393cGRC04K1hacR4EkBu3MB925ddaLvCVaXjwr2asgdviGzN9PEm3FiEJp3sMmMKYHFnwOITQ== + dependencies: + "@solana/wallet-standard-core" "^1.1.1" + "@solana/wallet-standard-wallet-adapter" "^1.1.2" + +"@solana/web3.js@^1.32.0", "@solana/web3.js@^1.63.1", "@solana/web3.js@^1.68.0", "@solana/web3.js@^1.95.0", "@solana/web3.js@^1.95.3": + version "1.95.3" + resolved "https://registry.yarnpkg.com/@solana/web3.js/-/web3.js-1.95.3.tgz#70b5f4d76823f56b5af6403da51125fffeb65ff3" + integrity sha512-O6rPUN0w2fkNqx/Z3QJMB9L225Ex10PRDH8bTaIUPZXMPV0QP8ZpPvjQnXK+upUczlRgzHzd6SjKIha1p+I6og== + dependencies: + "@babel/runtime" "^7.25.0" + "@noble/curves" "^1.4.2" + "@noble/hashes" "^1.4.0" + "@solana/buffer-layout" "^4.0.1" + agentkeepalive "^4.5.0" + bigint-buffer "^1.1.5" + bn.js "^5.2.1" + borsh "^0.7.0" + bs58 "^4.0.1" + buffer "6.0.3" + fast-stable-stringify "^1.0.0" + jayson "^4.1.1" + node-fetch "^2.7.0" + rpc-websockets "^9.0.2" + superstruct "^2.0.2" + "@solana/web3.js@^1.36.0", "@solana/web3.js@^1.70.1": version "1.89.0" resolved "https://registry.yarnpkg.com/@solana/web3.js/-/web3.js-1.89.0.tgz#702af6bc5579cdc58706f78048298eac31fe102e" @@ -4639,6 +6015,26 @@ rpc-websockets "^7.5.1" superstruct "^0.14.2" +"@solflare-wallet/metamask-sdk@^1.0.2": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@solflare-wallet/metamask-sdk/-/metamask-sdk-1.0.3.tgz#3baaa22de2c86515e6ba6025285cd1f5d74b04e5" + integrity sha512-os5Px5PTMYKGS5tzOoyjDxtOtj0jZKnbI1Uwt8+Jsw1HHIA+Ib2UACCGNhQ/un2f8sIbTfLD1WuucNMOy8KZpQ== + dependencies: + "@solana/wallet-standard-features" "^1.1.0" + "@wallet-standard/base" "^1.0.1" + bs58 "^5.0.0" + eventemitter3 "^5.0.1" + uuid "^9.0.0" + +"@solflare-wallet/sdk@^1.3.0": + version "1.4.2" + resolved "https://registry.yarnpkg.com/@solflare-wallet/sdk/-/sdk-1.4.2.tgz#630b9a26f7bca255ee4a7088f287ae8c8335e345" + integrity sha512-jrseNWipwl9xXZgrzwZF3hhL0eIVxuEtoZOSLmuPuef7FgHjstuTtNJAeT4icA7pzdDV4hZvu54pI2r2f7SmrQ== + dependencies: + bs58 "^5.0.0" + eventemitter3 "^5.0.1" + uuid "^9.0.0" + "@spruceid/siwe-parser@*": version "2.0.2" resolved "https://registry.yarnpkg.com/@spruceid/siwe-parser/-/siwe-parser-2.0.2.tgz#964dbe9e5611fe95d39e21aa96e67407f610374f" @@ -4743,7 +6139,7 @@ "@stablelib/constant-time" "^1.0.1" "@stablelib/wipe" "^1.0.1" -"@stablelib/random@^1.0.1", "@stablelib/random@^1.0.2": +"@stablelib/random@1.0.2", "@stablelib/random@^1.0.1", "@stablelib/random@^1.0.2": version "1.0.2" resolved "https://registry.yarnpkg.com/@stablelib/random/-/random-1.0.2.tgz#2dece393636489bf7e19c51229dd7900eddf742c" integrity sha512-rIsE83Xpb7clHPVRlBj8qNe5L8ISQOzjghYQm/dZ7VaM2KHYwMW5adjQjrzTZCchFnNCNhkwtnOBa9HTMJCI8w== @@ -4774,7 +6170,7 @@ resolved "https://registry.yarnpkg.com/@stablelib/wipe/-/wipe-1.0.1.tgz#d21401f1d59ade56a62e139462a97f104ed19a36" integrity sha512-WfqfX/eXGiAd3RJe4VU2snh/ZPwtSjLG4ynQ/vYzvghTh7dHFcI1wl+nrkWG6lGhukOxOsUHfv8dUXr58D0ayg== -"@stablelib/x25519@^1.0.3": +"@stablelib/x25519@1.0.3", "@stablelib/x25519@^1.0.3": version "1.0.3" resolved "https://registry.yarnpkg.com/@stablelib/x25519/-/x25519-1.0.3.tgz#13c8174f774ea9f3e5e42213cbf9fc68a3c7b7fd" integrity sha512-KnTbKmUhPhHavzobclVJQG5kuivH+qDLpe84iRqX3CLrKp881cF160JvXJ+hjn1aMyCwYOKeIZefIH/P5cJoRw== @@ -4788,6 +6184,11 @@ resolved "https://registry.yarnpkg.com/@supercharge/promise-pool/-/promise-pool-2.4.0.tgz#6050eea8c2d7f92ddd4ddc582ee328b15c034ad3" integrity sha512-O9CMipBlq5OObdt1uKJGIzm9cdjpPWfj+a+Zw9EgWKxaMNHKC7EU7X9taj3H0EGQNLOSq2jAcOa3EzxlfHsD6w== +"@supercharge/promise-pool@^3.0.0": + version "3.2.0" + resolved "https://registry.yarnpkg.com/@supercharge/promise-pool/-/promise-pool-3.2.0.tgz#a6ab4afdf798e453a6bb51c4ae340852e1266af8" + integrity sha512-pj0cAALblTZBPtMltWOlZTQSLT07jIaFNeM8TWoJD1cQMgDB9mcMlVMoetiB35OzNJpqQ2b+QEtwiR9f20mADg== + "@surma/rollup-plugin-off-main-thread@^2.2.3": version "2.2.3" resolved "https://registry.yarnpkg.com/@surma/rollup-plugin-off-main-thread/-/rollup-plugin-off-main-thread-2.2.3.tgz#ee34985952ca21558ab0d952f00298ad2190c053" @@ -5022,6 +6423,13 @@ "@svgr/plugin-jsx" "^6.5.1" "@svgr/plugin-svgo" "^6.5.1" +"@swc/helpers@^0.5.11": + version "0.5.13" + resolved "https://registry.yarnpkg.com/@swc/helpers/-/helpers-0.5.13.tgz#33e63ff3cd0cade557672bd7888a39ce7d115a8c" + integrity sha512-UoKGxQ3r5kYI9dALKJapMmuK+1zWM/H17Z1+iwnNmzcJRnfFuevZs375TA5rW31pu4BS4NoSy1fRsexDXfWn5w== + dependencies: + tslib "^2.4.0" + "@szmarczak/http-timer@^4.0.5": version "4.0.6" resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-4.0.6.tgz#b4a914bb62e7c272d4e5989fe4440f812ab1d807" @@ -5161,6 +6569,292 @@ resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-2.0.0.tgz#f544a148d3ab35801c1f633a7441fd87c2e484bf" integrity sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A== +"@toruslabs/base-controllers@^2.8.0": + version "2.9.0" + resolved "https://registry.yarnpkg.com/@toruslabs/base-controllers/-/base-controllers-2.9.0.tgz#e23f4228b5a90bf94ba9b0b27451f3024bd1acc4" + integrity sha512-rKc+bR4QB/wdbH0CxLZC5e2PUZcIgkr9yY7TMd3oIffDklaYBnsuC5ES2/rgK1aRUDRWz+qWbTwLqsY6PlT37Q== + dependencies: + "@ethereumjs/util" "^8.0.6" + "@toruslabs/broadcast-channel" "^6.2.0" + "@toruslabs/http-helpers" "^3.3.0" + "@toruslabs/openlogin-jrpc" "^4.0.0" + async-mutex "^0.4.0" + bignumber.js "^9.1.1" + bowser "^2.11.0" + eth-rpc-errors "^4.0.3" + json-rpc-random-id "^1.0.1" + lodash "^4.17.21" + loglevel "^1.8.1" + +"@toruslabs/broadcast-channel@^6.2.0": + version "6.3.1" + resolved "https://registry.yarnpkg.com/@toruslabs/broadcast-channel/-/broadcast-channel-6.3.1.tgz#d4b0a08c3a0fa88d42d7f33387ce9be928c2d4b2" + integrity sha512-BEtJQ+9bMfFoGuCsp5NmxyY+C980Ho+3BZIKSiYwRtl5qymJ+jMX5lsoCppoQblcb34dP6FwEjeFw80Y9QC/rw== + dependencies: + "@babel/runtime" "^7.21.0" + "@toruslabs/eccrypto" "^2.1.1" + "@toruslabs/metadata-helpers" "^3.2.0" + bowser "^2.11.0" + loglevel "^1.8.1" + oblivious-set "1.1.1" + socket.io-client "^4.6.1" + unload "^2.4.1" + +"@toruslabs/eccrypto@^2.1.1": + version "2.2.1" + resolved "https://registry.yarnpkg.com/@toruslabs/eccrypto/-/eccrypto-2.2.1.tgz#19012cc4e774e8c3df7ceebb2c1a07ecfd784917" + integrity sha512-7sviL0wLYsfA5ogEAOIdb0tu/QAOFXfHc9B8ONYtF04x4Mg3Nr89LL35FhjaEm055q8Ru7cUQhEFSiqJqm9GCw== + dependencies: + elliptic "^6.5.4" + +"@toruslabs/http-helpers@^3.3.0", "@toruslabs/http-helpers@^3.4.0": + version "3.4.0" + resolved "https://registry.yarnpkg.com/@toruslabs/http-helpers/-/http-helpers-3.4.0.tgz#6d1da9e6aba094af62e73cf639a69844c82202f3" + integrity sha512-CoeJSL32mpp0gmYjxv48odu6pfjHk/rbJHDwCtYPcMHAl+qUQ/DTpVOOn9U0fGkD+fYZrQmZbRkXFgLhiT0ajQ== + dependencies: + lodash.merge "^4.6.2" + loglevel "^1.8.1" + +"@toruslabs/metadata-helpers@^3.2.0": + version "3.2.0" + resolved "https://registry.yarnpkg.com/@toruslabs/metadata-helpers/-/metadata-helpers-3.2.0.tgz#b297933ac37481a9c86a125ac6a4e5c2f109fb78" + integrity sha512-2bCc6PNKd9y+aWfZQ1FXd47QmfyT4NmmqPGfsqk+sQS2o+MlxIyLuh9uh7deMgXo4b4qBDX+RQGbIKM1zVk56w== + dependencies: + "@toruslabs/eccrypto" "^2.1.1" + "@toruslabs/http-helpers" "^3.4.0" + elliptic "^6.5.4" + ethereum-cryptography "^2.0.0" + json-stable-stringify "^1.0.2" + +"@toruslabs/openlogin-jrpc@^3.2.0": + version "3.2.0" + resolved "https://registry.yarnpkg.com/@toruslabs/openlogin-jrpc/-/openlogin-jrpc-3.2.0.tgz#fff051d05b6c01b6329e2da9b134fae99305d1e0" + integrity sha512-G+K0EHyVUaAEyeD4xGsnAZRpn/ner8lQ2HC2+pGKg6oGmzKI2wGMDcw2KMH6+HKlfBGVJ5/VR9AQfC/tZlLDmQ== + dependencies: + "@toruslabs/openlogin-utils" "^3.0.0" + end-of-stream "^1.4.4" + eth-rpc-errors "^4.0.3" + events "^3.3.0" + fast-safe-stringify "^2.1.1" + once "^1.4.0" + pump "^3.0.0" + readable-stream "^3.6.2" + +"@toruslabs/openlogin-jrpc@^4.0.0": + version "4.7.2" + resolved "https://registry.yarnpkg.com/@toruslabs/openlogin-jrpc/-/openlogin-jrpc-4.7.2.tgz#e04dd6945da92d790f713a58aaa1657c57b330c8" + integrity sha512-9Eb0cPc0lPuS6v2YkQlgzfbRnZ6fLez9Ike5wznoHSFA2/JVu1onwuI56EV1HwswdDrOWPPQEyzI1j9NriZ0ew== + dependencies: + "@metamask/rpc-errors" "^5.1.1" + "@toruslabs/openlogin-utils" "^4.7.0" + end-of-stream "^1.4.4" + events "^3.3.0" + fast-safe-stringify "^2.1.1" + once "^1.4.0" + pump "^3.0.0" + readable-stream "^4.4.2" + +"@toruslabs/openlogin-utils@^3.0.0": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@toruslabs/openlogin-utils/-/openlogin-utils-3.0.0.tgz#2c264fa9a2787a1d2b8c703a38740c7c27967fa7" + integrity sha512-T5t29/AIFqXc84x4OoAkZWjd0uoP2Lk6iaFndnIIMzCPu+BwwV0spX/jd/3YYNjZ8Po8D+faEnwAhiqemYeK2w== + dependencies: + base64url "^3.0.1" + keccak "^3.0.3" + randombytes "^2.1.0" + +"@toruslabs/openlogin-utils@^4.7.0": + version "4.7.0" + resolved "https://registry.yarnpkg.com/@toruslabs/openlogin-utils/-/openlogin-utils-4.7.0.tgz#741d6ba1c0754b59a182b1c6dd8d0263695ed980" + integrity sha512-w6XkHs4WKuufsf/zzteBzs4EJuOknrUmJ+iv5FZ8HzIpMQeL/984CP8HYaFSEYkbGCP4ydAnhY4Uh0QAhpDbPg== + dependencies: + base64url "^3.0.1" + +"@toruslabs/solana-embed@^0.3.4": + version "0.3.4" + resolved "https://registry.yarnpkg.com/@toruslabs/solana-embed/-/solana-embed-0.3.4.tgz#547727e6d202f734d1e97a6658bdb3cf54599938" + integrity sha512-yj+aBJoBAneap7Jlu9/OOp7irWNuC5CqAhyhVcmb0IjWrCUFnioLdL0U7UfGaqVm/5O0leJh7/Z5Ll+3toWJBg== + dependencies: + "@solana/web3.js" "^1.63.1" + "@toruslabs/base-controllers" "^2.8.0" + "@toruslabs/http-helpers" "^3.3.0" + "@toruslabs/openlogin-jrpc" "^3.2.0" + eth-rpc-errors "^4.0.3" + fast-deep-equal "^3.1.3" + is-stream "^2.0.1" + lodash-es "^4.17.21" + loglevel "^1.8.1" + pump "^3.0.0" + +"@trezor/analytics@1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@trezor/analytics/-/analytics-1.2.0.tgz#3096ac08a8019ed7ca41716b4fb30316bf7849f0" + integrity sha512-q3lJtHL0tXDEbjl/pENpmUVzVcTd9NW4G2gskY2OKLsUykWP0pqN+9YX41C/f2TvMePVEA67kzXTm9US2sB2eA== + dependencies: + "@trezor/env-utils" "1.2.0" + "@trezor/utils" "9.2.0" + +"@trezor/blockchain-link-types@1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@trezor/blockchain-link-types/-/blockchain-link-types-1.2.0.tgz#3b6ac069ed6655b95354a649a5598f548568b215" + integrity sha512-MCukIR4R6IuzAS4I51j9r0KRYXGBNzqMAPh0Fc9gerWvEC9rNrcsbYYDJy/7wYsiAxHRVYiqUyq9yTjUzUkdUA== + dependencies: + "@solana/web3.js" "^1.95.0" + "@trezor/type-utils" "1.1.0" + "@trezor/utxo-lib" "2.2.0" + socks-proxy-agent "6.1.1" + +"@trezor/blockchain-link-utils@1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@trezor/blockchain-link-utils/-/blockchain-link-utils-1.2.0.tgz#17d4bd52888917d3b692659c2427e064833d6fd1" + integrity sha512-C9nMCbj5qaMvKzUXfMb1+nfPZd6StTeIBpQBFEnvHOcCl6p4Meab1HUSVJ+Dcd1Y+y0mhlWGcOw8ZvBTLIB/Pg== + dependencies: + "@mobily/ts-belt" "^3.13.1" + "@solana/web3.js" "^1.95.0" + "@trezor/env-utils" "1.2.0" + "@trezor/utils" "9.2.0" + +"@trezor/blockchain-link@2.3.0": + version "2.3.0" + resolved "https://registry.yarnpkg.com/@trezor/blockchain-link/-/blockchain-link-2.3.0.tgz#b0232fc8b3a62a9166727e622cbb6578e9ba9530" + integrity sha512-kuDHXIVhiTzpCmqoCH3zzCtM2BK+MEIvlj+GpA9VHPQbMGM55YU6c7M2jtq3vbw1XdtyvmvTD/s7Y8/WZR+IMg== + dependencies: + "@solana/buffer-layout" "^4.0.1" + "@solana/web3.js" "^1.95.0" + "@trezor/blockchain-link-types" "1.2.0" + "@trezor/blockchain-link-utils" "1.2.0" + "@trezor/utils" "9.2.0" + "@trezor/utxo-lib" "2.2.0" + "@types/web" "^0.0.138" + events "^3.3.0" + ripple-lib "^1.10.1" + socks-proxy-agent "6.1.1" + ws "^8.18.0" + +"@trezor/connect-analytics@1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@trezor/connect-analytics/-/connect-analytics-1.2.0.tgz#9f9586e0b2b228d6d604a281ef432402711d0ac6" + integrity sha512-tgbxoHQN8TUMjZ9k2XgIya3+nYcQFG+eUKNHzBe6zN2vyXuWF93jAph4uC42L+8YbYYya080BwCXjq0YfGZQgA== + dependencies: + "@trezor/analytics" "1.2.0" + +"@trezor/connect-common@0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@trezor/connect-common/-/connect-common-0.2.0.tgz#c5dda8328a3be12e26070927cd150160ffa133aa" + integrity sha512-yfLbOOBQyKoXblLGTjhArv0AxAUrxm+asOYT+WFR+SocuIxFlWLOEk80HYfowucPJ1aN0W8T/kTOPCO+x9pd+Q== + dependencies: + "@trezor/env-utils" "1.2.0" + "@trezor/utils" "9.2.0" + +"@trezor/connect-web@^9.2.1": + version "9.4.0" + resolved "https://registry.yarnpkg.com/@trezor/connect-web/-/connect-web-9.4.0.tgz#22ed3e603b7e984ed494dedf6cffece224526e3f" + integrity sha512-y3upWE6LA7Qq2uHiTcw3IOgT4vSYfG9fxUOBmtiEpBo5A0QHH7MNDk5eTVoKJ7Hcc2A/qOCR8aA++3hOXTZGrA== + dependencies: + "@trezor/connect" "9.4.0" + "@trezor/connect-common" "0.2.0" + "@trezor/utils" "9.2.0" + +"@trezor/connect@9.4.0": + version "9.4.0" + resolved "https://registry.yarnpkg.com/@trezor/connect/-/connect-9.4.0.tgz#803690b47e640666fd8089ff7461ef1249fc097a" + integrity sha512-gtY5coDzTEaJ/mrdXkRgpWARO/bWcEDFIuJMPjpEr27UzeTZy8loSFRA7jR3IsJXHyxJ7g8iLrd4jeuC9rdpow== + dependencies: + "@babel/preset-typescript" "^7.24.7" + "@ethereumjs/common" "^4.3.0" + "@ethereumjs/tx" "^5.3.0" + "@fivebinaries/coin-selection" "2.2.1" + "@trezor/blockchain-link" "2.3.0" + "@trezor/blockchain-link-types" "1.2.0" + "@trezor/connect-analytics" "1.2.0" + "@trezor/connect-common" "0.2.0" + "@trezor/protobuf" "1.2.0" + "@trezor/protocol" "1.2.0" + "@trezor/schema-utils" "1.2.0" + "@trezor/transport" "1.3.0" + "@trezor/utils" "9.2.0" + "@trezor/utxo-lib" "2.2.0" + blakejs "^1.2.1" + bs58 "^5.0.0" + bs58check "^3.0.1" + cross-fetch "^4.0.0" + +"@trezor/env-utils@1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@trezor/env-utils/-/env-utils-1.2.0.tgz#8fb771a6f43e31b7dcf8c383c1f06c21f16b9674" + integrity sha512-dbOR+PIeReZW4iooN+DQIMWloZAV92jMGOTzEdcY6NA63nCV8QUSxoNZwZtU9nVRPeJLrT6cVkVG80nZjlplow== + dependencies: + ua-parser-js "^1.0.37" + +"@trezor/protobuf@1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@trezor/protobuf/-/protobuf-1.2.0.tgz#1d0db025a6167910b3a6d640c04da18188e4dd45" + integrity sha512-lc09F0MotgKx3W9+hPGY1f/egRgymNha6PQJTgTaXam/6yoP7MSA9obQlmvndJZymbdqLb9jbtigGuLgoxx6Bw== + dependencies: + "@trezor/schema-utils" "1.2.0" + protobufjs "7.2.6" + +"@trezor/protocol@1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@trezor/protocol/-/protocol-1.2.0.tgz#54a404b03068924b3eec9b68923a81434e75b2d7" + integrity sha512-2dE/deXGszpnOAF1FHvx1QG8pwkwCm2UqN3lfD0mBobpvTjkLqNROuOCwDN/HApMV0f3OYoIVR6Y3mgkRfc42w== + +"@trezor/schema-utils@1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@trezor/schema-utils/-/schema-utils-1.2.0.tgz#8841cf1ce7351a34727a07dac6c615c361d18f76" + integrity sha512-LUvcNpYjrkOyThVqzMobWXl7W39apyp5tlaj0LRkCQFRvpt1q8eXynjdLb2ofJTiwrMvLLFB4NRRpD3hBqu1LQ== + dependencies: + "@sinclair/typebox" "^0.31.28" + ts-mixer "^6.0.3" + +"@trezor/transport@1.3.0": + version "1.3.0" + resolved "https://registry.yarnpkg.com/@trezor/transport/-/transport-1.3.0.tgz#d011332ad2c34176e5d388b0d763d0f4c834b28b" + integrity sha512-rgUwtH63PJRoOftkLcIo4/ElkaKq/2ban4wf2y/8k7lseU4OQXl5yxBJS7dGc3rVtxSBd3QhL6TY3h9icrJUVQ== + dependencies: + "@trezor/protobuf" "1.2.0" + "@trezor/protocol" "1.2.0" + "@trezor/utils" "9.2.0" + cross-fetch "^4.0.0" + long "^4.0.0" + protobufjs "7.2.6" + usb "^2.11.0" + +"@trezor/type-utils@1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@trezor/type-utils/-/type-utils-1.1.0.tgz#cbf65c188555565afe03b16e2ea1238e6fea5b71" + integrity sha512-zoPN9ZmdYlr03WyCWEQY6xCHPfhsodENYHPcZMKObVsUlhtMh1Z7OSD/pzd/NzOPBAtSctNbldx4aFu9A88afw== + +"@trezor/utils@9.2.0": + version "9.2.0" + resolved "https://registry.yarnpkg.com/@trezor/utils/-/utils-9.2.0.tgz#2fad23ff7e584461707fd7ed449e6a79a5376730" + integrity sha512-OslmtISmVl2r5lS/BPagyaWYudT/fSiezrSaKA1aDctGKOrze1JkA7p5J1j0uUAgjf9HODCiH8+PBAVXjUZL8A== + dependencies: + bignumber.js "^9.1.2" + +"@trezor/utxo-lib@2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@trezor/utxo-lib/-/utxo-lib-2.2.0.tgz#1310900ed01c7851babee54650ba6fa09f9160e8" + integrity sha512-Fhu+QZjOMpiipmJWdRAwbJEVk4DtwZfh7jy67vjgliWlO9p8M5Ap3XzlbZGF9+mKLrACjv/yhN63XMqTbxVcqw== + dependencies: + "@trezor/utils" "9.2.0" + bchaddrjs "^0.5.2" + bech32 "^2.0.0" + bip66 "^1.1.5" + bitcoin-ops "^1.4.1" + blake-hash "^2.0.0" + blakejs "^1.2.1" + bn.js "^5.2.1" + bs58 "^5.0.0" + bs58check "^3.0.1" + create-hmac "^1.1.7" + int64-buffer "^1.0.1" + pushdata-bitcoin "^1.0.1" + tiny-secp256k1 "^1.1.6" + typeforce "^1.18.0" + varuint-bitcoin "^1.1.2" + wif "^4.0.0" + "@trysound/sax@0.2.0": version "0.2.0" resolved "https://registry.yarnpkg.com/@trysound/sax/-/sax-0.2.0.tgz#cccaab758af56761eb7bf37af6f03f326dd798ad" @@ -5250,6 +6944,13 @@ dependencies: "@babel/types" "^7.20.7" +"@types/bn.js@^5.1.0": + version "5.1.5" + resolved "https://registry.yarnpkg.com/@types/bn.js/-/bn.js-5.1.5.tgz#2e0dacdcce2c0f16b905d20ff87aedbc6f7b4bf0" + integrity sha512-V46N0zwKRF5Q00AZ6hWtN0T8gGmDUaUzLWQvHFo5yThtVwK/VCenFY3wXVbOvNfajEpsTfQM4IN9k/d6gUVX3A== + dependencies: + "@types/node" "*" + "@types/body-parser@*": version "1.19.5" resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.5.tgz#04ce9a3b677dc8bd681a17da1ab9835dc9d3ede4" @@ -5461,6 +7162,11 @@ resolved "https://registry.yarnpkg.com/@types/linkify-it/-/linkify-it-3.0.5.tgz#1e78a3ac2428e6d7e6c05c1665c242023a4601d8" integrity sha512-yg6E+u0/+Zjva+buc3EIb+29XEg4wltq7cSmd4Uc2EE/1nUVmxyzpX6gUXD0V8jIrG0r7YeOGVIbYRkxeooCtw== +"@types/lodash@^4.14.136": + version "4.17.7" + resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.17.7.tgz#2f776bcb53adc9e13b2c0dfd493dfcbd7de43612" + integrity sha512-8wTvZawATi/lsmNu10/j2hk1KEP0IvjubqPE3cu1Xz7xfXXt5oCq3SNUz4fMIP4XGF9Ky+Ue2tBA3hcS7LSBlA== + "@types/lodash@^4.14.175": version "4.14.202" resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.202.tgz#f09dbd2fb082d507178b2f2a5c7e74bd72ff98f8" @@ -5754,7 +7460,22 @@ resolved "https://registry.yarnpkg.com/@types/utf8/-/utf8-3.0.3.tgz#e153ada15157477a9e0d2bcc638c34284a1d82ea" integrity sha512-+lqLGxWZsEe4Z6OrzBI7Ym4SMUTaMS5yOrHZ0/IL0bpIye1Qbs4PpobJL2mLDbftUXlPFZR7fu6d1yM+bHLX1w== -"@types/ws@^7.4.4": +"@types/uuid@8.3.4", "@types/uuid@^8.3.4": + version "8.3.4" + resolved "https://registry.yarnpkg.com/@types/uuid/-/uuid-8.3.4.tgz#bd86a43617df0594787d38b735f55c805becf1bc" + integrity sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw== + +"@types/w3c-web-usb@^1.0.6": + version "1.0.10" + resolved "https://registry.yarnpkg.com/@types/w3c-web-usb/-/w3c-web-usb-1.0.10.tgz#cf89cccd2d93b6245e784c19afe0a9f5038d4528" + integrity sha512-CHgUI5kTc/QLMP8hODUHhge0D4vx+9UiAwIGiT0sTy/B2XpdX1U5rJt6JSISgr6ikRT7vxV9EVAFeYZqUnl1gQ== + +"@types/web@^0.0.138": + version "0.0.138" + resolved "https://registry.yarnpkg.com/@types/web/-/web-0.0.138.tgz#52ca1e688275a0b82a5522a7accaaa182aa029b1" + integrity sha512-oQD74hl+cNCZdSWIupJCXZ2azTuB3MJ/mrWlgYt+v4pD7/Dr78gl5hKAdieZNf9NrAqwUez79bHtnFVSNSscWA== + +"@types/ws@^7.2.0", "@types/ws@^7.4.4": version "7.4.7" resolved "https://registry.yarnpkg.com/@types/ws/-/ws-7.4.7.tgz#f7c390a36f7a0679aa69de2d501319f4f8d9b702" integrity sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww== @@ -5768,6 +7489,13 @@ dependencies: "@types/node" "*" +"@types/ws@^8.2.2": + version "8.5.12" + resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.5.12.tgz#619475fe98f35ccca2a2f6c137702d85ec247b7e" + integrity sha512-3tPRkv1EtkDpzlgyKyI8pGsGZAGPEaXeu0DOj5DI25Ja91bdAYddYHbADRYVrZMRbfW+1l5YwXVDKohDJNQxkQ== + dependencies: + "@types/node" "*" + "@types/yargs-parser@*": version "21.0.3" resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-21.0.3.tgz#815e30b786d2e8f0dcd85fd5bcf5e1a04d008f15" @@ -5928,6 +7656,42 @@ eventemitter3 "^4.0.7" zustand "^4.3.1" +"@wallet-standard/app@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@wallet-standard/app/-/app-1.0.1.tgz#f83c3ae887f7fb52497a7b259bba734ae10a2994" + integrity sha512-LnLYq2Vy2guTZ8GQKKSXQK3+FRGPil75XEdkZqE6fiLixJhZJoJa5hT7lXxwe0ykVTt9LEThdTbOpT7KadS26Q== + dependencies: + "@wallet-standard/base" "^1.0.1" + +"@wallet-standard/base@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@wallet-standard/base/-/base-1.0.1.tgz#860dd94d47c9e3c5c43b79d91c6afdbd7a36264e" + integrity sha512-1To3ekMfzhYxe0Yhkpri+Fedq0SYcfrOfJi3vbLjMwF2qiKPjTGLwZkf2C9ftdQmxES+hmxhBzTwF4KgcOwf8w== + +"@wallet-standard/core@^1.0.3": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@wallet-standard/core/-/core-1.0.3.tgz#3b6743e207ca4e1e725ae20f1838b400fb0694ff" + integrity sha512-Jb33IIjC1wM1HoKkYD7xQ6d6PZ8EmMZvyc8R7dFgX66n/xkvksVTW04g9yLvQXrLFbcIjHrCxW6TXMhvpsAAzg== + dependencies: + "@wallet-standard/app" "^1.0.1" + "@wallet-standard/base" "^1.0.1" + "@wallet-standard/features" "^1.0.3" + "@wallet-standard/wallet" "^1.0.1" + +"@wallet-standard/features@^1.0.3": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@wallet-standard/features/-/features-1.0.3.tgz#c992876c5e4f7a0672f8869c4146c87e0dfe48c8" + integrity sha512-m8475I6W5LTatTZuUz5JJNK42wFRgkJTB0I9tkruMwfqBF2UN2eomkYNVf9RbrsROelCRzSFmugqjKZBFaubsA== + dependencies: + "@wallet-standard/base" "^1.0.1" + +"@wallet-standard/wallet@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@wallet-standard/wallet/-/wallet-1.0.1.tgz#95438941a2a1ee12a794444357b59d53e19b374c" + integrity sha512-qkhJeuQU2afQTZ02yMZE5SFc91Fo3hyFjFkpQglHudENNyiSG0oUKcIjky8X32xVSaumgTZSQUAzpXnCTWHzKQ== + dependencies: + "@wallet-standard/base" "^1.0.1" + "@walletconnect/browser-utils@^1.8.0": version "1.8.0" resolved "https://registry.yarnpkg.com/@walletconnect/browser-utils/-/browser-utils-1.8.0.tgz#33c10e777aa6be86c713095b5206d63d32df0951" @@ -5949,6 +7713,28 @@ "@walletconnect/types" "^1.8.0" "@walletconnect/utils" "^1.8.0" +"@walletconnect/core@2.16.1": + version "2.16.1" + resolved "https://registry.yarnpkg.com/@walletconnect/core/-/core-2.16.1.tgz#019b181387792e0d284e75074b961b48193d9b6a" + integrity sha512-UlsnEMT5wwFvmxEjX8s4oju7R3zadxNbZgsFeHEsjh7uknY2zgmUe1Lfc5XU6zyPb1Jx7Nqpdx1KN485ee8ogw== + dependencies: + "@walletconnect/heartbeat" "1.2.2" + "@walletconnect/jsonrpc-provider" "1.0.14" + "@walletconnect/jsonrpc-types" "1.0.4" + "@walletconnect/jsonrpc-utils" "1.0.8" + "@walletconnect/jsonrpc-ws-connection" "1.0.14" + "@walletconnect/keyvaluestorage" "1.1.1" + "@walletconnect/logger" "2.1.2" + "@walletconnect/relay-api" "1.0.11" + "@walletconnect/relay-auth" "1.0.4" + "@walletconnect/safe-json" "1.0.2" + "@walletconnect/time" "1.0.2" + "@walletconnect/types" "2.16.1" + "@walletconnect/utils" "2.16.1" + events "3.3.0" + lodash.isequal "4.5.0" + uint8arrays "3.1.0" + "@walletconnect/core@2.9.0": version "2.9.0" resolved "https://registry.yarnpkg.com/@walletconnect/core/-/core-2.9.0.tgz#7837a5d015a22b48d35b987bcde2aa9ccdf300d8" @@ -6037,7 +7823,7 @@ "@walletconnect/utils" "2.9.0" events "^3.3.0" -"@walletconnect/events@^1.0.1": +"@walletconnect/events@1.0.1", "@walletconnect/events@^1.0.1": version "1.0.1" resolved "https://registry.yarnpkg.com/@walletconnect/events/-/events-1.0.1.tgz#2b5f9c7202019e229d7ccae1369a9e86bda7816c" integrity sha512-NPTqaoi0oPBVNuLv7qPaJazmGHs5JGyO8eEAk5VGKmJzDR7AHzD4k6ilox5kxk1iwiOnFopBOOMLs86Oa76HpQ== @@ -6054,6 +7840,15 @@ "@walletconnect/time" "^1.0.2" tslib "1.14.1" +"@walletconnect/heartbeat@1.2.2": + version "1.2.2" + resolved "https://registry.yarnpkg.com/@walletconnect/heartbeat/-/heartbeat-1.2.2.tgz#e8dc5179db7769950c6f9cf59b23516d9b95227d" + integrity sha512-uASiRmC5MwhuRuf05vq4AT48Pq8RMi876zV8rr8cV969uTOzWdB/k+Lj5yI2PBtB1bGQisGen7MM1GcZlQTBXw== + dependencies: + "@walletconnect/events" "^1.0.1" + "@walletconnect/time" "^1.0.2" + events "^3.3.0" + "@walletconnect/iso-crypto@^1.8.0": version "1.8.0" resolved "https://registry.yarnpkg.com/@walletconnect/iso-crypto/-/iso-crypto-1.8.0.tgz#44ddf337c4f02837c062dbe33fa7ab36789df451" @@ -6082,6 +7877,15 @@ "@walletconnect/safe-json" "^1.0.2" tslib "1.14.1" +"@walletconnect/jsonrpc-provider@1.0.14": + version "1.0.14" + resolved "https://registry.yarnpkg.com/@walletconnect/jsonrpc-provider/-/jsonrpc-provider-1.0.14.tgz#696f3e3b6d728b361f2e8b853cfc6afbdf2e4e3e" + integrity sha512-rtsNY1XqHvWj0EtITNeuf8PHMvlCLiS3EjQL+WOkxEOA4KPxsohFnBDeyPYiNm4ZvkQdLnece36opYidmtbmow== + dependencies: + "@walletconnect/jsonrpc-utils" "^1.0.8" + "@walletconnect/safe-json" "^1.0.2" + events "^3.3.0" + "@walletconnect/jsonrpc-types@1.0.3", "@walletconnect/jsonrpc-types@^1.0.1", "@walletconnect/jsonrpc-types@^1.0.2", "@walletconnect/jsonrpc-types@^1.0.3": version "1.0.3" resolved "https://registry.yarnpkg.com/@walletconnect/jsonrpc-types/-/jsonrpc-types-1.0.3.tgz#65e3b77046f1a7fa8347ae02bc1b841abe6f290c" @@ -6090,6 +7894,14 @@ keyvaluestorage-interface "^1.0.0" tslib "1.14.1" +"@walletconnect/jsonrpc-types@1.0.4": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@walletconnect/jsonrpc-types/-/jsonrpc-types-1.0.4.tgz#ce1a667d79eadf2a2d9d002c152ceb68739c230c" + integrity sha512-P6679fG/M+wuWg9TY8mh6xFSdYnFyFjwFelxyISxMDrlbXokorEVXYOxiqEbrU3x1BmBoCAJJ+vtEaEoMlpCBQ== + dependencies: + events "^3.3.0" + keyvaluestorage-interface "^1.0.0" + "@walletconnect/jsonrpc-utils@1.0.8", "@walletconnect/jsonrpc-utils@^1.0.3", "@walletconnect/jsonrpc-utils@^1.0.4", "@walletconnect/jsonrpc-utils@^1.0.6", "@walletconnect/jsonrpc-utils@^1.0.7", "@walletconnect/jsonrpc-utils@^1.0.8": version "1.0.8" resolved "https://registry.yarnpkg.com/@walletconnect/jsonrpc-utils/-/jsonrpc-utils-1.0.8.tgz#82d0cc6a5d6ff0ecc277cb35f71402c91ad48d72" @@ -6110,7 +7922,17 @@ tslib "1.14.1" ws "^7.5.1" -"@walletconnect/keyvaluestorage@^1.0.2": +"@walletconnect/jsonrpc-ws-connection@1.0.14": + version "1.0.14" + resolved "https://registry.yarnpkg.com/@walletconnect/jsonrpc-ws-connection/-/jsonrpc-ws-connection-1.0.14.tgz#eec700e74766c7887de2bd76c91a0206628732aa" + integrity sha512-Jsl6fC55AYcbkNVkwNM6Jo+ufsuCQRqViOQ8ZBPH9pRREHH9welbBiszuTLqEJiQcO/6XfFDl6bzCJIkrEi8XA== + dependencies: + "@walletconnect/jsonrpc-utils" "^1.0.6" + "@walletconnect/safe-json" "^1.0.2" + events "^3.3.0" + ws "^7.5.1" + +"@walletconnect/keyvaluestorage@1.1.1", "@walletconnect/keyvaluestorage@^1.0.2": version "1.1.1" resolved "https://registry.yarnpkg.com/@walletconnect/keyvaluestorage/-/keyvaluestorage-1.1.1.tgz#dd2caddabfbaf80f6b8993a0704d8b83115a1842" integrity sha512-V7ZQq2+mSxAq7MrRqDxanTzu2RcElfK1PfNYiaVnJgJ7Q7G7hTVwF8voIBx92qsRyGHZihrwNPHuZd1aKkd0rA== @@ -6179,6 +8001,14 @@ detect-browser "^5.3.0" query-string "^6.13.5" +"@walletconnect/logger@2.1.2": + version "2.1.2" + resolved "https://registry.yarnpkg.com/@walletconnect/logger/-/logger-2.1.2.tgz#813c9af61b96323a99f16c10089bfeb525e2a272" + integrity sha512-aAb28I3S6pYXZHQm5ESB+V6rDqIYfsnHaQyzFbwUUBFY4H0OXx/YtTl8lvhUNhMMfb9UxbwEBS253TlXUYJWSw== + dependencies: + "@walletconnect/safe-json" "^1.0.2" + pino "7.11.0" + "@walletconnect/logger@^2.0.1": version "2.0.1" resolved "https://registry.yarnpkg.com/@walletconnect/logger/-/logger-2.0.1.tgz#7f489b96e9a1ff6bf3e58f0fbd6d69718bf844a8" @@ -6239,6 +8069,13 @@ randombytes "^2.1.0" tslib "1.14.1" +"@walletconnect/relay-api@1.0.11": + version "1.0.11" + resolved "https://registry.yarnpkg.com/@walletconnect/relay-api/-/relay-api-1.0.11.tgz#80ab7ef2e83c6c173be1a59756f95e515fb63224" + integrity sha512-tLPErkze/HmC9aCmdZOhtVmYZq1wKfWTJtygQHoWtgg722Jd4homo54Cs4ak2RUFUZIGO2RsOpIcWipaua5D5Q== + dependencies: + "@walletconnect/jsonrpc-types" "^1.0.2" + "@walletconnect/relay-api@^1.0.9": version "1.0.9" resolved "https://registry.yarnpkg.com/@walletconnect/relay-api/-/relay-api-1.0.9.tgz#f8c2c3993dddaa9f33ed42197fc9bfebd790ecaf" @@ -6247,7 +8084,7 @@ "@walletconnect/jsonrpc-types" "^1.0.2" tslib "1.14.1" -"@walletconnect/relay-auth@^1.0.4": +"@walletconnect/relay-auth@1.0.4", "@walletconnect/relay-auth@^1.0.4": version "1.0.4" resolved "https://registry.yarnpkg.com/@walletconnect/relay-auth/-/relay-auth-1.0.4.tgz#0b5c55c9aa3b0ef61f526ce679f3ff8a5c4c2c7c" integrity sha512-kKJcS6+WxYq5kshpPaxGHdwf5y98ZwbfuS4EE/NkQzqrDFm5Cj+dP8LofzWvjrrLkZq7Afy7WrQMXdLy8Sx7HQ== @@ -6264,7 +8101,7 @@ resolved "https://registry.yarnpkg.com/@walletconnect/safe-json/-/safe-json-1.0.0.tgz#12eeb11d43795199c045fafde97e3c91646683b2" integrity sha512-QJzp/S/86sUAgWY6eh5MKYmSfZaRpIlmCJdi5uG4DJlKkZrHEF7ye7gA+VtbVzvTtpM/gRwO2plQuiooIeXjfg== -"@walletconnect/safe-json@^1.0.1", "@walletconnect/safe-json@^1.0.2": +"@walletconnect/safe-json@1.0.2", "@walletconnect/safe-json@^1.0.1", "@walletconnect/safe-json@^1.0.2": version "1.0.2" resolved "https://registry.yarnpkg.com/@walletconnect/safe-json/-/safe-json-1.0.2.tgz#7237e5ca48046e4476154e503c6d3c914126fa77" integrity sha512-Ogb7I27kZ3LPC3ibn8ldyUr5544t3/STow9+lzz7Sfo808YD7SBWk7SAsdBFlYgP2zDRy2hS3sKRcuSRM0OTmA== @@ -6286,6 +8123,21 @@ "@walletconnect/utils" "2.9.0" events "^3.3.0" +"@walletconnect/sign-client@^2.7.2": + version "2.16.1" + resolved "https://registry.yarnpkg.com/@walletconnect/sign-client/-/sign-client-2.16.1.tgz#94a2f630ba741bd180f540c53576c5ceaace4857" + integrity sha512-s2Tx2n2duxt+sHtuWXrN9yZVaHaYqcEcjwlTD+55/vs5NUPlISf+fFmZLwSeX1kUlrSBrAuxPUcqQuRTKcjLOA== + dependencies: + "@walletconnect/core" "2.16.1" + "@walletconnect/events" "1.0.1" + "@walletconnect/heartbeat" "1.2.2" + "@walletconnect/jsonrpc-utils" "1.0.8" + "@walletconnect/logger" "2.1.2" + "@walletconnect/time" "1.0.2" + "@walletconnect/types" "2.16.1" + "@walletconnect/utils" "2.16.1" + events "3.3.0" + "@walletconnect/signer-connection@^1.8.0": version "1.8.0" resolved "https://registry.yarnpkg.com/@walletconnect/signer-connection/-/signer-connection-1.8.0.tgz#6cdf490df770e504cc1a550bdb5bac7696b130bc" @@ -6307,13 +8159,25 @@ "@walletconnect/utils" "^1.8.0" ws "7.5.3" -"@walletconnect/time@^1.0.2": +"@walletconnect/time@1.0.2", "@walletconnect/time@^1.0.2": version "1.0.2" resolved "https://registry.yarnpkg.com/@walletconnect/time/-/time-1.0.2.tgz#6c5888b835750ecb4299d28eecc5e72c6d336523" integrity sha512-uzdd9woDcJ1AaBZRhqy5rNC9laqWGErfc4dxA9a87mPdKOgWMD85mcFo9dIYIts/Jwocfwn07EC6EzclKubk/g== dependencies: tslib "1.14.1" +"@walletconnect/types@2.16.1": + version "2.16.1" + resolved "https://registry.yarnpkg.com/@walletconnect/types/-/types-2.16.1.tgz#6583d458d3f7b1919d482ba516ccb7878ec8c91f" + integrity sha512-9P4RG4VoDEF+yBF/n2TF12gsvT/aTaeZTVDb/AOayafqiPnmrQZMKmNCJJjq1sfdsDcHXFcZWMGsuCeSJCmrXA== + dependencies: + "@walletconnect/events" "1.0.1" + "@walletconnect/heartbeat" "1.2.2" + "@walletconnect/jsonrpc-types" "1.0.4" + "@walletconnect/keyvaluestorage" "1.1.1" + "@walletconnect/logger" "2.1.2" + events "3.3.0" + "@walletconnect/types@2.9.0": version "2.9.0" resolved "https://registry.yarnpkg.com/@walletconnect/types/-/types-2.9.0.tgz#6e5dfdc7212c1ec4ab49a1ec409c743e16093f72" @@ -6346,6 +8210,28 @@ "@walletconnect/utils" "2.9.0" events "^3.3.0" +"@walletconnect/utils@2.16.1", "@walletconnect/utils@^2.4.5": + version "2.16.1" + resolved "https://registry.yarnpkg.com/@walletconnect/utils/-/utils-2.16.1.tgz#2099cc2bd16b0edc32022f64aa2c2c323b45d1d4" + integrity sha512-aoQirVoDoiiEtYeYDtNtQxFzwO/oCrz9zqeEEXYJaAwXlGVTS34KFe7W3/Rxd/pldTYKFOZsku2EzpISfH8Wsw== + dependencies: + "@stablelib/chacha20poly1305" "1.0.1" + "@stablelib/hkdf" "1.0.1" + "@stablelib/random" "1.0.2" + "@stablelib/sha256" "1.0.1" + "@stablelib/x25519" "1.0.3" + "@walletconnect/relay-api" "1.0.11" + "@walletconnect/relay-auth" "1.0.4" + "@walletconnect/safe-json" "1.0.2" + "@walletconnect/time" "1.0.2" + "@walletconnect/types" "2.16.1" + "@walletconnect/window-getters" "1.0.1" + "@walletconnect/window-metadata" "1.0.1" + detect-browser "5.3.0" + elliptic "^6.5.7" + query-string "7.1.3" + uint8arrays "3.1.0" + "@walletconnect/utils@2.9.0": version "2.9.0" resolved "https://registry.yarnpkg.com/@walletconnect/utils/-/utils-2.9.0.tgz#c73925edb9fefe79021bcf028e957028f986b728" @@ -6384,7 +8270,7 @@ resolved "https://registry.yarnpkg.com/@walletconnect/window-getters/-/window-getters-1.0.0.tgz#1053224f77e725dfd611c83931b5f6c98c32bfc8" integrity sha512-xB0SQsLaleIYIkSsl43vm8EwETpBzJ2gnzk7e0wMF3ktqiTGS6TFHxcprMl5R44KKh4tCcHCJwolMCaDSwtAaA== -"@walletconnect/window-getters@^1.0.0", "@walletconnect/window-getters@^1.0.1": +"@walletconnect/window-getters@1.0.1", "@walletconnect/window-getters@^1.0.0", "@walletconnect/window-getters@^1.0.1": version "1.0.1" resolved "https://registry.yarnpkg.com/@walletconnect/window-getters/-/window-getters-1.0.1.tgz#f36d1c72558a7f6b87ecc4451fc8bd44f63cbbdc" integrity sha512-vHp+HqzGxORPAN8gY03qnbTMnhqIwjeRJNOMOAzePRg4xVEEE2WvYsI9G2NMjOknA8hnuYbU3/hwLcKbjhc8+Q== @@ -6398,7 +8284,7 @@ dependencies: "@walletconnect/window-getters" "^1.0.0" -"@walletconnect/window-metadata@^1.0.1": +"@walletconnect/window-metadata@1.0.1", "@walletconnect/window-metadata@^1.0.1": version "1.0.1" resolved "https://registry.yarnpkg.com/@walletconnect/window-metadata/-/window-metadata-1.0.1.tgz#2124f75447b7e989e4e4e1581d55d25bc75f7be5" integrity sha512-9koTqyGrM2cqFRW517BPY/iEtUDx2r1+Pwwu5m7sJ7ka79wi3EyqhqcICk/yDmv6jAS1rjKgTKXlEhanYjijcA== @@ -6849,6 +8735,13 @@ abitype@^0.3.0: resolved "https://registry.yarnpkg.com/abitype/-/abitype-0.3.0.tgz#75150e337d88cc0b2423ed0d3fc36935f139d04c" integrity sha512-0YokyAV4hKMcy97Pl+6QgZBlBdZJN2llslOs7kiFY+cu7kMlVXDBpxMExfv0krzBCQt2t7hNovpQ3y/zvEm18A== +abort-controller@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/abort-controller/-/abort-controller-3.0.0.tgz#eaf54d53b62bae4138e809ca225c8439a6efb392" + integrity sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg== + dependencies: + event-target-shim "^5.0.0" + accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.8: version "1.3.8" resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e" @@ -7123,6 +9016,30 @@ aptos@^1.8.5: form-data "4.0.0" tweetnacl "1.0.3" +arbundles@^0.11.1: + version "0.11.2" + resolved "https://registry.yarnpkg.com/arbundles/-/arbundles-0.11.2.tgz#60375c0d5bda0eeecd9ce9a2aa42da7a89efa3f9" + integrity sha512-vyX7vY6S8B4RFhGSoCixbnR/Z7ckpJjK+b/H7zcgRWJqqXjZqQ+3DQIJ19vKl5AvzNSsj5ja9kQDoZhMiGpBFw== + dependencies: + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/hash" "^5.7.0" + "@ethersproject/providers" "^5.7.2" + "@ethersproject/signing-key" "^5.7.0" + "@ethersproject/transactions" "^5.7.0" + "@ethersproject/wallet" "^5.7.0" + "@irys/arweave" "^0.0.2" + "@noble/ed25519" "^1.6.1" + base64url "^3.0.1" + bs58 "^4.0.1" + keccak "^3.0.2" + secp256k1 "^5.0.0" + optionalDependencies: + "@randlabs/myalgo-connect" "^1.1.2" + algosdk "^1.13.1" + arweave-stream-tx "^1.1.0" + multistream "^4.1.0" + tmp-promise "^3.0.2" + arbundles@^0.9.9: version "0.9.11" resolved "https://registry.yarnpkg.com/arbundles/-/arbundles-0.9.11.tgz#4dbccecc20876b38f01ba4b80abe8ee761c3e1e9" @@ -7480,6 +9397,13 @@ async-mutex@^0.2.6: dependencies: tslib "^2.0.0" +async-mutex@^0.4.0: + version "0.4.1" + resolved "https://registry.yarnpkg.com/async-mutex/-/async-mutex-0.4.1.tgz#bccf55b96f2baf8df90ed798cb5544a1f6ee4c2c" + integrity sha512-WfoBo4E/TbCX1G95XTjbWTE3X2XLG0m1Xbv2cwOtuPdyH9CZvnaA5nCt1ucjaKEgW2A5IF71hxrRhr83Je5xjA== + dependencies: + tslib "^2.4.0" + async-mutex@^0.5.0: version "0.5.0" resolved "https://registry.yarnpkg.com/async-mutex/-/async-mutex-0.5.0.tgz#353c69a0b9e75250971a64ac203b0ebfddd75482" @@ -7567,6 +9491,15 @@ axios@1.6.2: form-data "^4.0.0" proxy-from-env "^1.1.0" +axios@1.7.4: + version "1.7.4" + resolved "https://registry.yarnpkg.com/axios/-/axios-1.7.4.tgz#4c8ded1b43683c8dd362973c393f3ede24052aa2" + integrity sha512-DukmaFRnY6AzAALSH4J2M3k6PkaC+MfaAGdEERRWcC9q3/TWQwLpHR8ZRLKTdQ3aBDL64EdluRDjJqKw+BPZEw== + dependencies: + follow-redirects "^1.15.6" + form-data "^4.0.0" + proxy-from-env "^1.1.0" + axios@^0.21.0: version "0.21.4" resolved "https://registry.yarnpkg.com/axios/-/axios-0.21.4.tgz#c67b90dc0568e5c1cf2b0b858c43ba28e2eda575" @@ -7598,6 +9531,15 @@ axios@^1.0.0, axios@^1.4.0: form-data "^4.0.0" proxy-from-env "^1.1.0" +axios@^1.6.7: + version "1.7.7" + resolved "https://registry.yarnpkg.com/axios/-/axios-1.7.7.tgz#2f554296f9892a72ac8d8e4c5b79c14a91d0a47f" + integrity sha512-S4kL7XrjgBmvdGut0sN3yJxqYzrDOnivkBiN0OFs6hLiUam3UPvswUo0kqGyhqUZGEOytHyumEdXsAkgCOUf3Q== + dependencies: + follow-redirects "^1.15.6" + form-data "^4.0.0" + proxy-from-env "^1.1.0" + axobject-query@^3.2.1: version "3.2.1" resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-3.2.1.tgz#39c378a6e3b06ca679f29138151e45b2b32da62a" @@ -7838,6 +9780,13 @@ base-x@^3.0.2: dependencies: safe-buffer "^5.0.1" +base-x@^3.0.9: + version "3.0.10" + resolved "https://registry.yarnpkg.com/base-x/-/base-x-3.0.10.tgz#62de58653f8762b5d6f8d9fe30fa75f7b2585a75" + integrity sha512-7d0s06rR9rYaIWHkpfLIFICM/tkSVdoPC9qYAQRpxn9DdKNWNsKC0uk++akckyLq16Tx2WIinnZ6WRriAt6njQ== + dependencies: + safe-buffer "^5.0.1" + base-x@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/base-x/-/base-x-4.0.0.tgz#d0e3b7753450c73f8ad2389b5c018a4af7b2224a" @@ -7868,6 +9817,16 @@ batch@0.6.1: resolved "https://registry.yarnpkg.com/batch/-/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16" integrity sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw== +bchaddrjs@^0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/bchaddrjs/-/bchaddrjs-0.5.2.tgz#1f52b5077329774e7c82d4882964628106bb11a0" + integrity sha512-OO7gIn3m7ea4FVx4cT8gdlWQR2+++EquhdpWQJH9BQjK63tJJ6ngB3QMZDO6DiBoXiIGUsTPHjlrHVxPGcGxLQ== + dependencies: + bs58check "2.1.2" + buffer "^6.0.3" + cashaddrjs "0.4.4" + stream-browserify "^3.0.0" + bcrypt-pbkdf@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" @@ -7880,6 +9839,11 @@ bech32@1.1.4: resolved "https://registry.yarnpkg.com/bech32/-/bech32-1.1.4.tgz#e38c9f37bf179b8eb16ae3a772b40c356d4832e9" integrity sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ== +bech32@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/bech32/-/bech32-2.0.0.tgz#078d3686535075c8c79709f054b1b226a133b355" + integrity sha512-LcknSilhIGatDAsY1ak2I8VtGaHNhgMSYVxFrGLXv+xLHytaKZKcaUJJUE7qmBr7h33o5YQwP55pMI0xmkpJwg== + before-after-hook@^2.2.0: version "2.2.3" resolved "https://registry.yarnpkg.com/before-after-hook/-/before-after-hook-2.2.3.tgz#c51e809c81a4e354084422b9b26bad88249c517c" @@ -7903,6 +9867,16 @@ bfj@^7.0.2: jsonpath "^1.1.1" tryer "^1.0.1" +big-integer@1.6.36: + version "1.6.36" + resolved "https://registry.yarnpkg.com/big-integer/-/big-integer-1.6.36.tgz#78631076265d4ae3555c04f85e7d9d2f3a071a36" + integrity sha512-t70bfa7HYEA1D9idDbmuv7YbsbVkQ+Hp+8KFSul4aE5e/i1bjCNIRYJZlA8Q8p0r9T8cF/RVvwUgRA//FydEyg== + +big-integer@^1.6.48: + version "1.6.52" + resolved "https://registry.yarnpkg.com/big-integer/-/big-integer-1.6.52.tgz#60a887f3047614a8e1bffe5d7173490a97dc8c85" + integrity sha512-QxD8cf2eVqJOOz63z6JIN9BzvVs/dlySa5HGSBH5xtR8dPteIRQnBxxKqkNTiT6jbDTF6jAfrd4oMcND9RGbQg== + big.js@^5.2.2: version "5.2.2" resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" @@ -7915,7 +9889,7 @@ bigint-buffer@^1.1.5: dependencies: bindings "^1.3.0" -bignumber.js@^9.0.0, bignumber.js@^9.0.1, bignumber.js@^9.0.2, bignumber.js@^9.1.1: +bignumber.js@^9.0.0, bignumber.js@^9.0.1, bignumber.js@^9.0.2, bignumber.js@^9.1.1, bignumber.js@^9.1.2: version "9.1.2" resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-9.1.2.tgz#b7c4242259c008903b13707983b5f4bbd31eda0c" integrity sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug== @@ -7965,6 +9939,18 @@ bip39@3.0.2: pbkdf2 "^3.0.9" randombytes "^2.0.1" +bip66@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/bip66/-/bip66-1.1.5.tgz#01fa8748785ca70955d5011217d1b3139969ca22" + integrity sha512-nemMHz95EmS38a26XbbdxIYj5csHd3RMP3H5bwQknX0WYHF01qhpufP42mLOwVICuH2JmhIhXiWs89MfUGL7Xw== + dependencies: + safe-buffer "^5.0.1" + +bitcoin-ops@^1.3.0, bitcoin-ops@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/bitcoin-ops/-/bitcoin-ops-1.4.1.tgz#e45de620398e22fd4ca6023de43974ff42240278" + integrity sha512-pef6gxZFztEhaE9RY9HmWVmiIHqCb2OyS4HPKkpc6CIiiOa3Qmuoylxc5P2EkU3w+5eTSifI9SEZC88idAIGow== + bl@^4.0.3, bl@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a" @@ -7974,6 +9960,20 @@ bl@^4.0.3, bl@^4.1.0: inherits "^2.0.4" readable-stream "^3.4.0" +blake-hash@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/blake-hash/-/blake-hash-2.0.0.tgz#af184dce641951126d05b7d1c3de3224f538d66e" + integrity sha512-Igj8YowDu1PRkRsxZA7NVkdFNxH5rKv5cpLxQ0CVXSIA77pVYwCPRQJ2sMew/oneUpfuYRyjG6r8SmmmnbZb1w== + dependencies: + node-addon-api "^3.0.0" + node-gyp-build "^4.2.2" + readable-stream "^3.6.0" + +blakejs@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/blakejs/-/blakejs-1.2.1.tgz#5057e4206eadb4a97f7c0b6e197a505042fc3814" + integrity sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ== + blob-util@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/blob-util/-/blob-util-2.0.2.tgz#3b4e3c281111bb7f11128518006cdc60b403a1eb" @@ -7994,12 +9994,12 @@ bn.js@4.11.8: resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f" integrity sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA== -bn.js@5.2.1, bn.js@^5.0.0, bn.js@^5.1.1, bn.js@^5.2.0, bn.js@^5.2.1: +bn.js@5.2.1, bn.js@^5.0.0, bn.js@^5.1.1, bn.js@^5.1.2, bn.js@^5.2.0, bn.js@^5.2.1: version "5.2.1" resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.1.tgz#0bc527a6a0d18d0aa8d5b0538ce4a77dccfa7b70" integrity sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ== -bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.11.9: +bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.11.8, bn.js@^4.11.9: version "4.12.0" resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88" integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== @@ -8044,6 +10044,11 @@ borsh@^0.7.0: bs58 "^4.0.0" text-encoding-utf-8 "^1.0.2" +bowser@^2.11.0: + version "2.11.0" + resolved "https://registry.yarnpkg.com/bowser/-/bowser-2.11.0.tgz#5ca3c35757a7aa5771500c70a73a9f91ef420a8f" + integrity sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA== + brace-expansion@^1.1.7: version "1.1.11" resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" @@ -8066,7 +10071,7 @@ braces@^3.0.2, braces@~3.0.2: dependencies: fill-range "^7.0.1" -brorand@^1.0.1, brorand@^1.1.0: +brorand@^1.0.1, brorand@^1.0.5, brorand@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" integrity sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w== @@ -8147,7 +10152,7 @@ bs-logger@0.x: dependencies: fast-json-stable-stringify "2.x" -bs58@5.0.0: +bs58@5.0.0, bs58@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/bs58/-/bs58-5.0.0.tgz#865575b4d13c09ea2a84622df6c8cbeb54ffc279" integrity sha512-r+ihvQJvahgYT50JD05dyJNKlmmSlMoOGwn1lCcEzanPglg7TxYjioQUYehQ9mAR/+hOSd2jRc/Z2y5UxBymvQ== @@ -8161,6 +10166,23 @@ bs58@^4.0.0, bs58@^4.0.1: dependencies: base-x "^3.0.2" +bs58check@2.1.2, bs58check@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/bs58check/-/bs58check-2.1.2.tgz#53b018291228d82a5aa08e7d796fdafda54aebfc" + integrity sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA== + dependencies: + bs58 "^4.0.0" + create-hash "^1.1.0" + safe-buffer "^5.1.2" + +bs58check@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/bs58check/-/bs58check-3.0.1.tgz#2094d13720a28593de1cba1d8c4e48602fdd841c" + integrity sha512-hjuuJvoWEybo7Hn/0xOrczQKKEKD63WguEjlhLExYs2wUBcebDC1jDNK17eEAD2lYfw82d5ASC1d7K3SWszjaQ== + dependencies: + "@noble/hashes" "^1.2.0" + bs58 "^5.0.0" + bser@2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/bser/-/bser-2.1.1.tgz#e6787da20ece9d07998533cfd9de6f5c38f4bc05" @@ -8196,6 +10218,11 @@ buffer-from@^1.0.0, buffer-from@^1.1.1: resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== +buffer-layout@^1.2.0, buffer-layout@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/buffer-layout/-/buffer-layout-1.2.2.tgz#b9814e7c7235783085f9ca4966a0cfff112259d5" + integrity sha512-kWSuLN694+KTk8SrYvCqwP2WcgQjoRCiF5b4QDvkkz8EmgD+aWAIceGFKMIAdmF/pH+vpgNV3d3kAKorcdAmWA== + buffer-xor@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" @@ -8209,7 +10236,7 @@ buffer@6.0.3, buffer@^6.0.2, buffer@^6.0.3, buffer@~6.0.3: base64-js "^1.3.1" ieee754 "^1.2.1" -buffer@^5.4.3, buffer@^5.5.0, buffer@^5.6.0: +buffer@^5.1.0, buffer@^5.4.3, buffer@^5.5.0, buffer@^5.6.0: version "5.7.1" resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== @@ -8394,7 +10421,7 @@ camelcase@^5.0.0, camelcase@^5.3.1: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== -camelcase@^6.2.0, camelcase@^6.2.1: +camelcase@^6.2.0, camelcase@^6.2.1, camelcase@^6.3.0: version "6.3.0" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== @@ -8438,6 +10465,13 @@ caseless@~0.12.0: resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" integrity sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw== +cashaddrjs@0.4.4: + version "0.4.4" + resolved "https://registry.yarnpkg.com/cashaddrjs/-/cashaddrjs-0.4.4.tgz#169f1ae620d325db77700273d972282adeeee331" + integrity sha512-xZkuWdNOh0uq/mxJIng6vYWfTowZLd9F4GMAlp2DwFHlcCqCm91NtuAc47RuV4L7r4PYcY5p6Cr2OKNb4hnkWA== + dependencies: + big-integer "1.6.36" + catharsis@^0.9.0: version "0.9.0" resolved "https://registry.yarnpkg.com/catharsis/-/catharsis-0.9.0.tgz#40382a168be0e6da308c277d3a2b3eb40c7d2121" @@ -8445,6 +10479,11 @@ catharsis@^0.9.0: dependencies: lodash "^4.17.15" +cbor-sync@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/cbor-sync/-/cbor-sync-1.0.4.tgz#5a11a1ab75c2a14d1af1b237fd84aa8c1593662f" + integrity sha512-GWlXN4wiz0vdWWXBU71Dvc1q3aBo0HytqwAZnXF1wOwjqNnDWA1vZ1gDMFLlqohak31VQzmhiYfiCX5QSSfagA== + chalk@4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz#4e14870a618d9e2edd97dd8345fd9d9dc315646a" @@ -8478,6 +10517,11 @@ chalk@^4.0.0, chalk@^4.0.2, chalk@^4.1.0, chalk@^4.1.1, chalk@^4.1.2: ansi-styles "^4.1.0" supports-color "^7.1.0" +chalk@^5.3.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.3.0.tgz#67c20a7ebef70e7f3970a01f90fa210cb6860385" + integrity sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w== + change-case-all@1.0.14: version "1.0.14" resolved "https://registry.yarnpkg.com/change-case-all/-/change-case-all-1.0.14.tgz#bac04da08ad143278d0ac3dda7eccd39280bfba1" @@ -8899,6 +10943,11 @@ command-line-usage@^6.1.0: table-layout "^1.0.2" typical "^5.2.0" +commander@^12.1.0: + version "12.1.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-12.1.0.tgz#01423b36f501259fdaac4d0e4d60c96c991585d3" + integrity sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA== + commander@^2.20.0, commander@^2.20.3: version "2.20.3" resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" @@ -9292,6 +11341,18 @@ cosmiconfig@^7.0.0, cosmiconfig@^7.0.1: path-type "^4.0.0" yaml "^1.10.0" +crc-32@^1.2.0: + version "1.2.2" + resolved "https://registry.yarnpkg.com/crc-32/-/crc-32-1.2.2.tgz#3cad35a934b8bf71f25ca524b6da51fb7eace2ff" + integrity sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ== + +crc@^3.8.0: + version "3.8.0" + resolved "https://registry.yarnpkg.com/crc/-/crc-3.8.0.tgz#ad60269c2c856f8c299e2c4cc0de4556914056c6" + integrity sha512-iX3mfgcTMIq3ZKLIsVFAbv7+Mc10kxabAGQb8HvjA1o3T1PIYprbakQ65d3I+2HGHt6nSKkM9PYjgoJO2KcFBQ== + dependencies: + buffer "^5.1.0" + create-ecdh@^4.0.0: version "4.0.4" resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.4.tgz#d6e7f4bffa66736085a0762fd3a632684dabcc4e" @@ -9348,6 +11409,13 @@ cross-fetch@^3.1.4, cross-fetch@^3.1.5: dependencies: node-fetch "^2.6.12" +cross-fetch@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-4.0.0.tgz#f037aef1580bb3a1a35164ea2a848ba81b445983" + integrity sha512-e4a5N8lVvuLgAWgnCrLr2PP0YyDOTHa9H/Rj54dirp61qXnNq46m82bRhNqIA5VccJtWBvPTFRV3TtvHUKPB1g== + dependencies: + node-fetch "^2.6.12" + cross-spawn@^7.0.0, cross-spawn@^7.0.2, cross-spawn@^7.0.3: version "7.0.3" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" @@ -9379,6 +11447,16 @@ crypto-browserify@^3.12.0: randombytes "^2.0.0" randomfill "^1.0.3" +crypto-hash@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/crypto-hash/-/crypto-hash-1.3.0.tgz#b402cb08f4529e9f4f09346c3e275942f845e247" + integrity sha512-lyAZ0EMyjDkVvz8WOeVnuCPvKVBXcMv1l5SVqO1yC7PzTwrD/pPje/BIRbWhMoPe436U+Y2nD7f5bFx0kt+Sbg== + +crypto-js@^4.1.1: + version "4.2.0" + resolved "https://registry.yarnpkg.com/crypto-js/-/crypto-js-4.2.0.tgz#4d931639ecdfd12ff80e8186dba6af2c2e856631" + integrity sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q== + crypto-random-string@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-2.0.0.tgz#ef2a7a966ec11083388369baa02ebead229b30d5" @@ -9843,6 +11921,13 @@ debug@~4.1.0: dependencies: ms "^2.1.1" +debug@~4.3.1, debug@~4.3.2: + version "4.3.7" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.7.tgz#87945b4151a011d76d95a198d7111c865c360a52" + integrity sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ== + dependencies: + ms "^2.1.3" + decamelize-keys@^1.1.0: version "1.1.1" resolved "https://registry.yarnpkg.com/decamelize-keys/-/decamelize-keys-1.1.1.tgz#04a2d523b2f18d80d0158a43b895d56dff8d19d8" @@ -9856,7 +11941,7 @@ decamelize@^1.1.0, decamelize@^1.2.0: resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" integrity sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA== -decimal.js@^10.2.1, decimal.js@^10.4.2: +decimal.js@^10.2.0, decimal.js@^10.2.1, decimal.js@^10.4.2: version "10.4.3" resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.4.3.tgz#1044092884d245d1b7f65725fa4ad4c6f781cc23" integrity sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA== @@ -10325,6 +12410,14 @@ dotenv@^16.0.0, dotenv@^16.0.3: resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.3.1.tgz#369034de7d7e5b120972693352a3bf112172cc3e" integrity sha512-IPzF4w4/Rd94bA9imS68tZBaYyBWSCE47V1RGuMrB94iyTOIEwRmVL2x/4An+6mETpLrKJ5hQkB8W4kFAadeIQ== +draggabilly@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/draggabilly/-/draggabilly-3.0.0.tgz#48defe10a67f346a0338caaa40c0765c4d3912d6" + integrity sha512-aEs+B6prbMZQMxc9lgTpCBfyCUhRur/VFucHhIOvlvvdARTj7TcDmX/cdOUtqbjJJUh7+agyJXR5Z6IFe1MxwQ== + dependencies: + get-size "^3.0.0" + unidragger "^3.0.0" + dset@^3.1.2: version "3.1.3" resolved "https://registry.yarnpkg.com/dset/-/dset-3.1.3.tgz#c194147f159841148e8e34ca41f638556d9542d2" @@ -10395,6 +12488,19 @@ elliptic@6.5.4, elliptic@^6.5.3, elliptic@^6.5.4: minimalistic-assert "^1.0.1" minimalistic-crypto-utils "^1.0.1" +elliptic@^6.4.0, elliptic@^6.5.7: + version "6.5.7" + resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.7.tgz#8ec4da2cb2939926a1b9a73619d768207e647c8b" + integrity sha512-ESVCtTwiA+XhY3wyh24QqRGBoP3rEdDUl3EDUUo9tft074fi19IrdpH7hLCMMP3CIj7jb3W96rn8lt/BqIlt5Q== + dependencies: + bn.js "^4.11.9" + brorand "^1.1.0" + hash.js "^1.0.0" + hmac-drbg "^1.0.1" + inherits "^2.0.4" + minimalistic-assert "^1.0.1" + minimalistic-crypto-utils "^1.0.1" + emittery@^0.10.2: version "0.10.2" resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.10.2.tgz#902eec8aedb8c41938c46e9385e9db7e03182933" @@ -10447,7 +12553,7 @@ encoding@^0.1.13: dependencies: iconv-lite "^0.6.2" -end-of-stream@^1.1.0, end-of-stream@^1.4.1: +end-of-stream@^1.1.0, end-of-stream@^1.4.1, end-of-stream@^1.4.4: version "1.4.4" resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== @@ -10471,6 +12577,17 @@ engine.io-client@~3.3.1: xmlhttprequest-ssl "~1.6.3" yeast "0.1.2" +engine.io-client@~6.5.2: + version "6.5.4" + resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-6.5.4.tgz#b8bc71ed3f25d0d51d587729262486b4b33bd0d0" + integrity sha512-GeZeeRjpD2qf49cZQ0Wvh/8NJNfeXkXXcoGh+F77oEAgo9gUHwT1fCRxSNU+YEEaysOJTnsFHmM5oAcPy4ntvQ== + dependencies: + "@socket.io/component-emitter" "~3.1.0" + debug "~4.3.1" + engine.io-parser "~5.2.1" + ws "~8.17.1" + xmlhttprequest-ssl "~2.0.0" + engine.io-parser@~2.1.0, engine.io-parser@~2.1.1: version "2.1.3" resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-2.1.3.tgz#757ab970fbf2dfb32c7b74b033216d5739ef79a6" @@ -10482,6 +12599,11 @@ engine.io-parser@~2.1.0, engine.io-parser@~2.1.1: blob "0.0.5" has-binary2 "~1.0.2" +engine.io-parser@~5.2.1: + version "5.2.3" + resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-5.2.3.tgz#00dc5b97b1f233a23c9398d0209504cf5f94d92f" + integrity sha512-HqD3yTBfnBxIrbnM1DoD6Pcq8NECnh8d4As1Qgh0z5Gg3jRRIqijury0CL3ghu/edArpUYiYqQiDUQBIs4np3Q== + engine.io@~3.3.1: version "3.3.2" resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-3.3.2.tgz#18cbc8b6f36e9461c5c0f81df2b830de16058a59" @@ -11113,13 +13235,23 @@ eth-rpc-errors@4.0.2: dependencies: fast-safe-stringify "^2.0.6" -eth-rpc-errors@^4.0.2: +eth-rpc-errors@^4.0.2, eth-rpc-errors@^4.0.3: version "4.0.3" resolved "https://registry.yarnpkg.com/eth-rpc-errors/-/eth-rpc-errors-4.0.3.tgz#6ddb6190a4bf360afda82790bb7d9d5e724f423a" integrity sha512-Z3ymjopaoft7JDoxZcEb3pwdGh7yiYMhOwm2doUt6ASXlMavpNlK6Cre0+IMl2VSGyEU9rkiperQhp5iRxn5Pg== dependencies: fast-safe-stringify "^2.0.6" +ethereum-cryptography@^2.0.0, ethereum-cryptography@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/ethereum-cryptography/-/ethereum-cryptography-2.2.1.tgz#58f2810f8e020aecb97de8c8c76147600b0b8ccf" + integrity sha512-r/W8lkHSiTLxUxW8Rf3u4HGB0xQweG2RyETjywylKZSzLWoWAijRz8WCuOtJ6wah+avllXBqZuk29HCCvhEIRg== + dependencies: + "@noble/curves" "1.4.2" + "@noble/hashes" "1.4.0" + "@scure/bip32" "1.4.0" + "@scure/bip39" "1.3.0" + ethers@^5.7.0, ethers@^5.7.2: version "5.7.2" resolved "https://registry.yarnpkg.com/ethers/-/ethers-5.7.2.tgz#3a7deeabbb8c030d4126b24f84e525466145872e" @@ -11156,6 +13288,16 @@ ethers@^5.7.0, ethers@^5.7.2: "@ethersproject/web" "5.7.1" "@ethersproject/wordlists" "5.7.0" +ev-emitter@^2.0.0: + version "2.1.2" + resolved "https://registry.yarnpkg.com/ev-emitter/-/ev-emitter-2.1.2.tgz#91737a2deae9fa95453e7e86cfae976f8c3ced38" + integrity sha512-jQ5Ql18hdCQ4qS+RCrbLfz1n+Pags27q5TwMKvZyhp5hh2UULUYZUy1keqj6k6SYsdqIYjnmz7xyyEY0V67B8Q== + +event-target-shim@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/event-target-shim/-/event-target-shim-5.0.1.tgz#5d4d3ebdf9583d63a5333ce2deb7480ab2b05789" + integrity sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ== + eventemitter2@6.4.7: version "6.4.7" resolved "https://registry.yarnpkg.com/eventemitter2/-/eventemitter2-6.4.7.tgz#a7f6c4d7abf28a14c1ef3442f21cb306a054271d" @@ -11171,7 +13313,7 @@ eventemitter3@^5.0.1: resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-5.0.1.tgz#53f5ffd0a492ac800721bb42c66b841de96423c4" integrity sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA== -events@^3.2.0, events@^3.3.0: +events@3.3.0, events@^3.2.0, events@^3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== @@ -11251,6 +13393,11 @@ executable@^4.1.1: dependencies: pify "^2.2.0" +exenv@^1.2.0: + version "1.2.2" + resolved "https://registry.yarnpkg.com/exenv/-/exenv-1.2.2.tgz#2ae78e85d9894158670b03d47bec1f03bd91bb9d" + integrity sha512-Z+ktTxTwv9ILfgKCk32OX3n/doe+OcLTRtqK9pcL+JsP3J1/VW8Uvl4ZjLlKqeW4rzK4oesDOGMEMRIZqtP4Iw== + exit@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" @@ -11428,7 +13575,7 @@ fast-redact@^3.0.0: resolved "https://registry.yarnpkg.com/fast-redact/-/fast-redact-3.3.0.tgz#7c83ce3a7be4898241a46560d51de10f653f7634" integrity sha512-6T5V1QK1u4oF+ATxs1lWUmlEk6P2T9HqJG3e2DnHOdVgZy2rFJBoEnrIedcTXlkAHU/zKC+7KETJ+KGGKwxgMQ== -fast-safe-stringify@^2.0.6: +fast-safe-stringify@^2.0.6, fast-safe-stringify@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz#c406a83b6e70d9e35ce3b30a81141df30aeba884" integrity sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA== @@ -11643,6 +13790,11 @@ follow-redirects@^1.0.0, follow-redirects@^1.14.0, follow-redirects@^1.14.7, fol resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.5.tgz#54d4d6d062c0fa7d9d17feb008461550e3ba8020" integrity sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw== +follow-redirects@^1.15.6: + version "1.15.9" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.9.tgz#a604fa10e443bf98ca94228d9eebcc2e8a2c8ee1" + integrity sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ== + for-each@^0.3.3: version "0.3.3" resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e" @@ -11965,6 +14117,11 @@ get-port@5.1.1: resolved "https://registry.yarnpkg.com/get-port/-/get-port-5.1.1.tgz#0469ed07563479de6efb986baf053dcd7d4e3193" integrity sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ== +get-size@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/get-size/-/get-size-3.0.0.tgz#00e39a8042a3de237b2fcf288eaf55d3f472417c" + integrity sha512-Y8aiXLq4leR7807UY0yuKEwif5s3kbVp1nTv+i4jBeoUzByTLKkLWu/HorS6/pB+7gsB0o7OTogC8AoOOeT0Hw== + get-stream@6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.0.tgz#3e0012cb6827319da2706e601a1583e8629a6718" @@ -12980,6 +15137,11 @@ inquirer@^8.0.0, inquirer@^8.2.0, inquirer@^8.2.4: through "^2.3.6" wrap-ansi "^6.0.1" +int64-buffer@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/int64-buffer/-/int64-buffer-1.0.1.tgz#c78d841b444cadf036cd04f8683696c740f15dca" + integrity sha512-+3azY4pXrjAupJHU1V9uGERWlhoqNswJNji6aD/02xac7oxol508AsMC5lxKhEqyZeDFy3enq5OGWXF4u75hiw== + internal-slot@^1.0.4, internal-slot@^1.0.5: version "1.0.6" resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.6.tgz#37e756098c4911c5e912b8edbf71ed3aa116f930" @@ -13011,6 +15173,14 @@ ioredis@^5.3.2: redis-parser "^3.0.0" standard-as-callback "^2.1.0" +ip-address@^9.0.5: + version "9.0.5" + resolved "https://registry.yarnpkg.com/ip-address/-/ip-address-9.0.5.tgz#117a960819b08780c3bd1f14ef3c1cc1d3f3ea5a" + integrity sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g== + dependencies: + jsbn "1.1.0" + sprintf-js "^1.1.3" + ip@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ip/-/ip-2.0.0.tgz#4cf4ab182fee2314c75ede1276f8c80b479936da" @@ -13283,6 +15453,11 @@ is-plain-obj@^1.0.0, is-plain-obj@^1.1.0: resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" integrity sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg== +is-plain-obj@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287" + integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA== + is-plain-obj@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-3.0.0.tgz#af6f2ea14ac5a646183a5bbdb5baabbc156ad9d7" @@ -13361,7 +15536,7 @@ is-stream@2.0.0: resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.0.tgz#bde9c32680d6fae04129d6ac9d921ce7815f78e3" integrity sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw== -is-stream@^2.0.0: +is-stream@^2.0.0, is-stream@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== @@ -13620,6 +15795,24 @@ jayson@^4.1.0: uuid "^8.3.2" ws "^7.4.5" +jayson@^4.1.1: + version "4.1.2" + resolved "https://registry.yarnpkg.com/jayson/-/jayson-4.1.2.tgz#443c26a8658703e0b2e881117b09395d88b6982e" + integrity sha512-5nzMWDHy6f+koZOuYsArh2AXs73NfWYVlFyJJuCedr93GpY+Ku8qq10ropSXVfHK+H0T6paA88ww+/dV+1fBNA== + dependencies: + "@types/connect" "^3.4.33" + "@types/node" "^12.12.54" + "@types/ws" "^7.4.4" + JSONStream "^1.3.5" + 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" + uuid "^8.3.2" + ws "^7.5.10" + jest-changed-files@^27.5.1: version "27.5.1" resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-27.5.1.tgz#a348aed00ec9bf671cc58a66fcbe7c3dfd6a68f5" @@ -14496,6 +16689,11 @@ jotai@^1.13.1: resolved "https://registry.yarnpkg.com/jotai/-/jotai-1.13.1.tgz#20cc46454cbb39096b12fddfa635b873b3668236" integrity sha512-RUmH1S4vLsG3V6fbGlKzGJnLrDcC/HNb5gH2AeA9DzuJknoVxSGvvg8OBB7lke+gDc4oXmdVsaKn/xDUhWZ0vw== +js-base64@^3.7.5, js-base64@^3.7.7: + version "3.7.7" + resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-3.7.7.tgz#e51b84bf78fbf5702b9541e2cb7bfcb893b43e79" + integrity sha512-7rCnleh0z2CkXhH67J8K1Ytz0b2Y+yxTPL+/KOJoa20hfnVQ/3/T6W/KflYI4bRHRagNeXeU2bkNGI3v1oS/lw== + js-sha256@^0.9.0: version "0.9.0" resolved "https://registry.yarnpkg.com/js-sha256/-/js-sha256-0.9.0.tgz#0b89ac166583e91ef9123644bd3c5334ce9d0966" @@ -14538,6 +16736,16 @@ js2xmlparser@^4.0.2: dependencies: xmlcreate "^2.0.4" +jsbi@^3.1.5: + version "3.2.5" + resolved "https://registry.yarnpkg.com/jsbi/-/jsbi-3.2.5.tgz#b37bb90e0e5c2814c1c2a1bcd8c729888a2e37d6" + integrity sha512-aBE4n43IPvjaddScbvWRA2YlTzKEynHzu7MqOyTipdHucf/VxS63ViCjxYRg86M8Rxwbt/GfzHl1kKERkt45fQ== + +jsbn@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-1.1.0.tgz#b01307cb29b618a1ed26ec79e911f803c4da0040" + integrity sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A== + jsbn@~0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" @@ -14762,6 +16970,16 @@ json-stable-stringify@^1.0.1: jsonify "^0.0.1" object-keys "^1.1.1" +json-stable-stringify@^1.0.2: + version "1.1.1" + resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.1.1.tgz#52d4361b47d49168bcc4e564189a42e5a7439454" + integrity sha512-SU/971Kt5qVQfJpyDveVhQ/vya+5hvrjClFOcr8c0Fq5aODJjMwutrOfCU+eCnVD5gpx1Q3fEqkyom77zH1iIg== + dependencies: + call-bind "^1.0.5" + isarray "^2.0.5" + jsonify "^0.0.1" + object-keys "^1.1.1" + json-stringify-nice@^1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/json-stringify-nice/-/json-stringify-nice-1.1.4.tgz#2c937962b80181d3f317dd39aa323e14f5a60a67" @@ -14837,6 +17055,11 @@ jsonpointer@^5.0.0: resolved "https://registry.yarnpkg.com/jsonpointer/-/jsonpointer-5.0.1.tgz#2110e0af0900fd37467b5907ecd13a7884a1b559" integrity sha512-p/nXbhSEcu3pZRdkW1OfJhpsVtW1gd4Wa1fnQc9YLiTfAjn0312eMKimbdIQzuZl9aa9xUGaRlP9T/CJE/ditQ== +jsonschema@1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/jsonschema/-/jsonschema-1.2.2.tgz#83ab9c63d65bf4d596f91d81195e78772f6452bc" + integrity sha512-iX5OFQ6yx9NgbHCwse51ohhKgLuLL7Z5cNOeZOPIlDUtAMrxlruHLzVZxbltdHE5mEDXN+75oFOwq6Gn0MZwsA== + jsprim@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-2.0.2.tgz#77ca23dbcd4135cd364800d22ff82c2185803d4d" @@ -14847,6 +17070,11 @@ jsprim@^2.0.2: json-schema "0.4.0" verror "1.10.0" +jsqr@^1.2.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/jsqr/-/jsqr-1.4.0.tgz#8efb8d0a7cc6863cb6d95116b9069123ce9eb2d1" + integrity sha512-dxLob7q65Xg2DvstYkRpkYtmKm2sPJ9oFhrhmudT1dZvNFFTlroai3AWSpLey/w5vMcLBXRgOJsbXpdN9HzU/A== + jss-plugin-camel-case@^10.10.0: version "10.10.0" resolved "https://registry.yarnpkg.com/jss-plugin-camel-case/-/jss-plugin-camel-case-10.10.0.tgz#27ea159bab67eb4837fa0260204eb7925d4daa1c" @@ -14937,7 +17165,12 @@ just-diff@^6.0.0: resolved "https://registry.yarnpkg.com/just-diff/-/just-diff-6.0.2.tgz#03b65908543ac0521caf6d8eb85035f7d27ea285" integrity sha512-S59eriX5u3/QhMNq3v/gm8Kd0w8OS6Tz2FS1NG4blv+z0MuQcBRJyFWjdovM0Rad4/P4aUPFtnkNjMjyMlMSYA== -keccak@^3.0.1, keccak@^3.0.2: +jwt-decode@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/jwt-decode/-/jwt-decode-4.0.0.tgz#2270352425fd413785b2faf11f6e755c5151bd4b" + integrity sha512-+KJGIyHgkGuIq3IEBNftfhW/LfWhXUIY6OmyVWjliu5KH1y0fw7VQ8YndE2O4qZdMSd9SqbnC8GOcZEy0Om7sA== + +keccak@^3.0.1, keccak@^3.0.2, keccak@^3.0.3: version "3.0.4" resolved "https://registry.yarnpkg.com/keccak/-/keccak-3.0.4.tgz#edc09b89e633c0549da444432ecf062ffadee86d" integrity sha512-3vKuW0jV8J3XNTzvfyicFR5qvxrSAGl7KIhvgOu5cmWwM7tZRj3fMbj/pfIf4be7aznbc+prBWGjywox/g2Y6Q== @@ -15429,7 +17662,7 @@ lodash.uniq@^4.5.0: resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" integrity sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ== -lodash@^4.17.10, lodash@^4.17.15, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.7.0, lodash@~4.17.0: +lodash@^4.17.10, lodash@^4.17.15, lodash@^4.17.20, lodash@^4.17.21, lodash@^4.17.4, lodash@^4.7.0, lodash@~4.17.0: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== @@ -15452,6 +17685,16 @@ log-update@^4.0.0: slice-ansi "^4.0.0" wrap-ansi "^6.2.0" +loglevel@^1.8.1: + version "1.9.2" + resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.9.2.tgz#c2e028d6c757720107df4e64508530db6621ba08" + integrity sha512-HgMmCqIJSAKqo68l0rS2AanEWfkxaZ5wNiEFb5ggm08lDs9Xl2KxBlX3PTcaD2chBM1gXAYf491/M2Rv8Jwayg== + +long@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/long/-/long-4.0.0.tgz#9a7b71cfb7d361a194ea555241c92f7468d5bf28" + integrity sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA== + long@^5.0.0, long@^5.2.0, long@^5.2.3: version "5.2.3" resolved "https://registry.yarnpkg.com/long/-/long-5.2.3.tgz#a3ba97f3877cf1d778eccbcb048525ebb77499e1" @@ -15728,6 +17971,13 @@ merge-descriptors@1.0.1: resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" integrity sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w== +merge-options@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/merge-options/-/merge-options-3.0.4.tgz#84709c2aa2a4b24c1981f66c179fe5565cc6dbb7" + integrity sha512-2Sug1+knBjkaMsMgf1ctR1Ujx+Ayku4EdJN4Z+C2+JzoeF7A3OZ9KM2GY0CpQS51NR61LTurMJrRKPhSs3ZRTQ== + dependencies: + is-plain-obj "^2.1.0" + merge-stream@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" @@ -15748,6 +17998,11 @@ methods@~1.1.2: resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w== +micro-ftch@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/micro-ftch/-/micro-ftch-0.3.1.tgz#6cb83388de4c1f279a034fb0cf96dfc050853c5f" + integrity sha512-/0LLxhzP0tfiR5hcQebtudP56gUurs2CLkGarnCiB/OqEyUFQ6U3paQi/tgLv0hBJYt2rnr9MNpxz4fiiugstg== + micromatch@^4.0.2, micromatch@^4.0.4, micromatch@^4.0.5: version "4.0.5" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" @@ -16086,7 +18341,7 @@ ms@2.1.2: resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== -ms@2.1.3, ms@^2.0.0, ms@^2.1.1: +ms@2.1.3, ms@^2.0.0, ms@^2.1.1, ms@^2.1.3: version "2.1.3" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== @@ -16142,6 +18397,11 @@ mz@^2.7.0: object-assign "^4.0.1" thenify-all "^1.0.0" +nan@^2.13.2: + version "2.20.0" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.20.0.tgz#08c5ea813dd54ed16e5bd6505bf42af4f7838ca3" + integrity sha512-bk3gXBZDGILuuo/6sKtr0DQmSThYHLtNCdSdXk9YkxD/jK6X2vmCyyXBBxyqZ4XcnzTyYEAThfX3DCEnLf6igw== + nanoclone@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/nanoclone/-/nanoclone-0.2.1.tgz#dd4090f8f1a110d26bb32c49ed2f5b9235209ed4" @@ -16209,7 +18469,7 @@ node-addon-api@^2.0.0: resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-2.0.2.tgz#432cfa82962ce494b132e9d72a15b29f71ff5d32" integrity sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA== -node-addon-api@^3.2.1: +node-addon-api@^3.0.0, node-addon-api@^3.2.1: version "3.2.1" resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-3.2.1.tgz#81325e0a2117789c0128dab65e7e38f07ceba161" integrity sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A== @@ -16224,6 +18484,11 @@ node-addon-api@^7.0.0: resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-7.0.0.tgz#8136add2f510997b3b94814f4af1cce0b0e3962e" integrity sha512-vgbBJTS4m5/KkE16t5Ly0WW9hz46swAstv0hYYwMtbG7AznRhNyfLRe8HZAiWIpcHzoO7HxhLuBQj9rJ/Ho0ZA== +node-addon-api@^8.0.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-8.1.0.tgz#55a573685dd4bd053f189cffa4e6332d2b1f1645" + integrity sha512-yBY+qqWSv3dWKGODD6OGE6GnTX7Q2r+4+DfpqxHSHh8x0B4EKP9+wVGLS6U/AM1vxSNNmUEuIV5EGhYwPpfOwQ== + node-fetch-native@^1.4.0, node-fetch-native@^1.4.1, node-fetch-native@^1.6.1: version "1.6.1" resolved "https://registry.yarnpkg.com/node-fetch-native/-/node-fetch-native-1.6.1.tgz#f95c74917d3cebc794cdae0cd2a9c7594aad0cb4" @@ -16253,6 +18518,11 @@ node-gyp-build@^4.2.0, node-gyp-build@^4.3.0: resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.8.0.tgz#3fee9c1731df4581a3f9ead74664369ff00d26dd" integrity sha512-u6fs2AEUljNho3EYTJNBfImO5QTo/J/1Etd+NVdCj7qWKUSN/bSLkZwhDv7I+w/MSC6qJ4cknepkAYykDdK8og== +node-gyp-build@^4.2.2, node-gyp-build@^4.5.0: + version "4.8.2" + resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.8.2.tgz#4f802b71c1ab2ca16af830e6c1ea7dd1ad9496fa" + integrity sha512-IRUxE4BVsHWXkV/SFOut4qTlagw2aM8T5/vnTsmrHJvVoKueJHRc/JaFND7QDDc61kLYUJ6qlZM3sqTSyx2dTw== + node-gyp@^9.0.0: version "9.4.1" resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-9.4.1.tgz#8a1023e0d6766ecb52764cc3a734b36ff275e185" @@ -16713,6 +18983,11 @@ object.values@^1.1.0, object.values@^1.1.6, object.values@^1.1.7: define-properties "^1.2.0" es-abstract "^1.22.1" +oblivious-set@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/oblivious-set/-/oblivious-set-1.1.1.tgz#d9d38e9491d51f27a5c3ec1681d2ba40aa81e98b" + integrity sha512-Oh+8fK09mgGmAshFdH6hSVco6KZmd1tTwNFWj35OvzdmJTMZtAkbn05zar2iG3v6sDs1JLEtOiBGNb6BHwkb2w== + obuf@^1.0.0, obuf@^1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e" @@ -17007,6 +19282,11 @@ pacote@^15.0.0, pacote@^15.0.8: ssri "^10.0.0" tar "^6.1.11" +pako@^2.0.3: + version "2.1.0" + resolved "https://registry.yarnpkg.com/pako/-/pako-2.1.0.tgz#266cc37f98c7d883545d11335c00fbd4062c9a86" + integrity sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug== + param-case@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/param-case/-/param-case-3.0.4.tgz#7d17fe4aa12bde34d4a77d91acfb6219caad01c5" @@ -17373,6 +19653,11 @@ popmotion@11.0.3: style-value-types "5.0.0" tslib "^2.1.0" +poseidon-lite@^0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/poseidon-lite/-/poseidon-lite-0.2.1.tgz#7ad98e3a3aa5b91a1fd3a61a87460e9e46fd76d6" + integrity sha512-xIr+G6HeYfOhCuswdqcFpSX47SPhm0EpisWJ6h7fHlWwaVIvH3dLnejpatrtw6Xc6HaLrpq05y7VRfvDmDGIog== + postcss-attribute-case-insensitive@^5.0.2: version "5.0.2" resolved "https://registry.yarnpkg.com/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-5.0.2.tgz#03d761b24afc04c09e757e92ff53716ae8ea2741" @@ -18121,7 +20406,7 @@ promzard@^0.3.0: dependencies: read "1" -prop-types@^15.6.2, prop-types@^15.7.2, prop-types@^15.8.1: +prop-types@^15.6.0, prop-types@^15.6.2, prop-types@^15.7.2, prop-types@^15.8.1: version "15.8.1" resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5" integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg== @@ -18140,6 +20425,24 @@ proto-list@~1.2.1: resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" integrity sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA== +protobufjs@7.2.6: + version "7.2.6" + resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-7.2.6.tgz#4a0ccd79eb292717aacf07530a07e0ed20278215" + integrity sha512-dgJaEDDL6x8ASUZ1YqWciTRrdOuYNzoOf27oHNfdyvKqHr5i0FV7FSLU+aIeFjyFgVxrpTOtQUi0BLLBymZaBw== + dependencies: + "@protobufjs/aspromise" "^1.1.2" + "@protobufjs/base64" "^1.1.2" + "@protobufjs/codegen" "^2.0.4" + "@protobufjs/eventemitter" "^1.1.0" + "@protobufjs/fetch" "^1.1.0" + "@protobufjs/float" "^1.0.2" + "@protobufjs/inquire" "^1.1.0" + "@protobufjs/path" "^1.1.2" + "@protobufjs/pool" "^1.1.0" + "@protobufjs/utf8" "^1.1.0" + "@types/node" ">=13.7.0" + long "^5.0.0" + protobufjs@^7.0.0: version "7.3.2" resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-7.3.2.tgz#60f3b7624968868f6f739430cfbc8c9370e26df4" @@ -18226,6 +20529,13 @@ pure-rand@^6.0.0: resolved "https://registry.yarnpkg.com/pure-rand/-/pure-rand-6.0.4.tgz#50b737f6a925468679bff00ad20eade53f37d5c7" integrity sha512-LA0Y9kxMYv47GIPJy6MI84fqTd2HmYZI83W/kM/SkKfDlajnZYfmXFTxkbY+xSBPkLJxltMa9hIkmdc29eguMA== +pushdata-bitcoin@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/pushdata-bitcoin/-/pushdata-bitcoin-1.0.1.tgz#15931d3cd967ade52206f523aa7331aef7d43af7" + integrity sha512-hw7rcYTJRAl4olM8Owe8x0fBuJJ+WGbMhQuLWOXEMN3PxPCKQHRkhfL+XG0+iXUmSHjkMmb3Ba55Mt21cZc9kQ== + dependencies: + bitcoin-ops "^1.3.0" + pvtsutils@^1.3.2, pvtsutils@^1.3.5: version "1.3.5" resolved "https://registry.yarnpkg.com/pvtsutils/-/pvtsutils-1.3.5.tgz#b8705b437b7b134cd7fd858f025a23456f1ce910" @@ -18243,6 +20553,20 @@ q@^1.1.2, q@^1.5.1: resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" integrity sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw== +qr.js@0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/qr.js/-/qr.js-0.0.0.tgz#cace86386f59a0db8050fa90d9b6b0e88a1e364f" + integrity sha512-c4iYnWb+k2E+vYpRimHqSu575b1/wKl4XFeJGpFmrJQz5I88v9aY2czh7s0w36srfCM1sXgC/xpoJz5dJfq+OQ== + +qrcode.react@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/qrcode.react/-/qrcode.react-1.0.1.tgz#2834bb50e5e275ffe5af6906eff15391fe9e38a5" + integrity sha512-8d3Tackk8IRLXTo67Y+c1rpaiXjoz/Dd2HpcMdW//62/x8J1Nbho14Kh8x974t9prsLHN6XqVgcnRiBGFptQmg== + dependencies: + loose-envify "^1.4.0" + prop-types "^15.6.0" + qr.js "0.0.0" + qrcode@1.4.4: version "1.4.4" resolved "https://registry.yarnpkg.com/qrcode/-/qrcode-1.4.4.tgz#f0c43568a7e7510a55efc3b88d9602f71963ea83" @@ -18513,6 +20837,16 @@ react-dev-utils@^12.0.1: strip-ansi "^6.0.1" text-table "^0.2.0" +react-dom@16.13.1: + version "16.13.1" + resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.13.1.tgz#c1bd37331a0486c078ee54c4740720993b2e0e7f" + integrity sha512-81PIMmVLnCNLO/fFOQxdQkvEq/+Hfpv24XNJfpyZhTRfO0QcmQIF/PgCa1zCOj2w1hrn12MFLyaJ/G0+Mxtfag== + dependencies: + loose-envify "^1.1.0" + object-assign "^4.1.1" + prop-types "^15.6.2" + scheduler "^0.19.1" + react-dom@^18.2.0: version "18.2.0" resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-18.2.0.tgz#22aaf38708db2674ed9ada224ca4aa708d821e3d" @@ -18560,6 +20894,21 @@ react-is@^18.0.0, react-is@^18.2.0: resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.2.0.tgz#199431eeaaa2e09f86427efbb4f1473edb47609b" integrity sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w== +react-lifecycles-compat@^3.0.0: + version "3.0.4" + resolved "https://registry.yarnpkg.com/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz#4f1a273afdfc8f3488a8c516bfda78f872352362" + integrity sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA== + +react-modal@^3.12.1: + version "3.16.1" + resolved "https://registry.yarnpkg.com/react-modal/-/react-modal-3.16.1.tgz#34018528fc206561b1a5467fc3beeaddafb39b2b" + integrity sha512-VStHgI3BVcGo7OXczvnJN7yT2TWHJPDXZWyI/a0ssFNhGZWsPmB8cF0z33ewDXq4VfYMO1vXgiv/g8Nj9NDyWg== + dependencies: + exenv "^1.2.0" + prop-types "^15.7.2" + react-lifecycles-compat "^3.0.0" + warning "^4.0.3" + react-number-format@^5.3.1: version "5.3.1" resolved "https://registry.yarnpkg.com/react-number-format/-/react-number-format-5.3.1.tgz#840c257da9cb4b248990d8db46e4d23e8bac67ff" @@ -18567,6 +20916,15 @@ react-number-format@^5.3.1: dependencies: prop-types "^15.7.2" +react-qr-reader@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/react-qr-reader/-/react-qr-reader-2.2.1.tgz#dc89046d1c1a1da837a683dd970de5926817d55b" + integrity sha512-EL5JEj53u2yAOgtpAKAVBzD/SiKWn0Bl7AZy6ZrSf1lub7xHwtaXe6XSx36Wbhl1VMGmvmrwYMRwO1aSCT2fwA== + dependencies: + jsqr "^1.2.0" + prop-types "^15.7.2" + webrtc-adapter "^7.2.1" + react-redux@^8.0.4: version "8.1.3" resolved "https://registry.yarnpkg.com/react-redux/-/react-redux-8.1.3.tgz#4fdc0462d0acb59af29a13c27ffef6f49ab4df46" @@ -18689,6 +21047,15 @@ react-use-measure@^2.1.1: dependencies: debounce "^1.2.1" +react@16.13.1: + version "16.13.1" + resolved "https://registry.yarnpkg.com/react/-/react-16.13.1.tgz#2e818822f1a9743122c063d6410d85c1e3afe48e" + integrity sha512-YMZQQq32xHLX0bz5Mnibv1/LHb3Sqzngu7xstSM+vrkE5Kzr9xE0yMByK5kMoTK30YVJE61WfbxIFFvfeDKT1w== + dependencies: + loose-envify "^1.1.0" + object-assign "^4.1.1" + prop-types "^15.6.2" + react@^18.2.0: version "18.2.0" resolved "https://registry.yarnpkg.com/react/-/react-18.2.0.tgz#555bd98592883255fa00de14f1151a917b5d77d5" @@ -18824,6 +21191,17 @@ readable-stream@^2.0.1, readable-stream@~2.3.6: string_decoder "~1.1.1" util-deprecate "~1.0.1" +readable-stream@^4.4.2: + version "4.5.2" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-4.5.2.tgz#9e7fc4c45099baeed934bff6eb97ba6cf2729e09" + integrity sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g== + dependencies: + abort-controller "^3.0.0" + buffer "^6.0.3" + events "^3.3.0" + process "^0.11.10" + string_decoder "^1.3.0" + readable-stream@~1.0.31: version "1.0.34" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" @@ -19210,6 +21588,62 @@ ripemd160@^2.0.0, ripemd160@^2.0.1: hash-base "^3.0.0" inherits "^2.0.1" +ripple-address-codec@^4.1.1, ripple-address-codec@^4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/ripple-address-codec/-/ripple-address-codec-4.3.1.tgz#68fbaf646bb8567f70743af7f1ce4479f73efbf6" + integrity sha512-Qa3+9wKVvpL/xYtT6+wANsn0A1QcC5CT6IMZbRJZ/1lGt7gmwIfsrCuz1X0+LCEO7zgb+3UT1I1dc0k/5dwKQQ== + dependencies: + base-x "^3.0.9" + create-hash "^1.1.2" + +ripple-binary-codec@^1.1.3: + version "1.11.0" + resolved "https://registry.yarnpkg.com/ripple-binary-codec/-/ripple-binary-codec-1.11.0.tgz#d99c848c51a19746b738785001fb7208704bfe30" + integrity sha512-g7+gs3T+NfoeW6vIq5dcN0CkIT4t/zwRzFxz8X2RzfbrWRnewPUKqQbmBgs05tXLX5NuWPaneiaAVpFpYBcdfw== + dependencies: + assert "^2.0.0" + big-integer "^1.6.48" + buffer "6.0.3" + create-hash "^1.2.0" + decimal.js "^10.2.0" + ripple-address-codec "^4.3.1" + +ripple-keypairs@^1.0.3: + version "1.3.1" + resolved "https://registry.yarnpkg.com/ripple-keypairs/-/ripple-keypairs-1.3.1.tgz#7fa531df36b138134afb53555a87d7f5eb465b2e" + integrity sha512-dmPlraWKJciFJxHcoubDahGnoIalG5e/BtV6HNDUs7wLXmtnLMHt6w4ed9R8MTL2zNrVPiIdI/HCtMMo0Tm7JQ== + dependencies: + bn.js "^5.1.1" + brorand "^1.0.5" + elliptic "^6.5.4" + hash.js "^1.0.3" + ripple-address-codec "^4.3.1" + +ripple-lib-transactionparser@0.8.2: + version "0.8.2" + resolved "https://registry.yarnpkg.com/ripple-lib-transactionparser/-/ripple-lib-transactionparser-0.8.2.tgz#7aaad3ba1e1aeee1d5bcff32334a7a838f834dce" + integrity sha512-1teosQLjYHLyOQrKUQfYyMjDR3MAq/Ga+MJuLUfpBMypl4LZB4bEoMcmG99/+WVTEiZOezJmH9iCSvm/MyxD+g== + dependencies: + bignumber.js "^9.0.0" + lodash "^4.17.15" + +ripple-lib@^1.10.1: + version "1.10.1" + resolved "https://registry.yarnpkg.com/ripple-lib/-/ripple-lib-1.10.1.tgz#9c353702792b25465cdb269265d6f5bb27b1471b" + integrity sha512-OQk+Syl2JfxKxV2KuF/kBMtnh012I5tNnziP3G4WDGCGSIAgeqkOgkR59IQ0YDNrs1YW8GbApxrdMSRi/QClcA== + dependencies: + "@types/lodash" "^4.14.136" + "@types/ws" "^7.2.0" + bignumber.js "^9.0.0" + https-proxy-agent "^5.0.0" + jsonschema "1.2.2" + lodash "^4.17.4" + ripple-address-codec "^4.1.1" + ripple-binary-codec "^1.1.3" + ripple-keypairs "^1.0.3" + ripple-lib-transactionparser "0.8.2" + ws "^7.2.0" + rollup-plugin-dts@^5.2.0: version "5.3.1" resolved "https://registry.yarnpkg.com/rollup-plugin-dts/-/rollup-plugin-dts-5.3.1.tgz#c2841269a3a5cb986b7791b0328e6a178eba108f" @@ -19299,6 +21733,29 @@ rpc-websockets@^7.5.1: bufferutil "^4.0.1" utf-8-validate "^5.0.2" +rpc-websockets@^9.0.2: + version "9.0.2" + resolved "https://registry.yarnpkg.com/rpc-websockets/-/rpc-websockets-9.0.2.tgz#4c1568d00b8100f997379a363478f41f8f4b242c" + integrity sha512-YzggvfItxMY3Lwuax5rC18inhbjJv9Py7JXRHxTIi94JOLrqBsSsUUc5bbl5W6c11tXhdfpDPK0KzBhoGe8jjw== + dependencies: + "@swc/helpers" "^0.5.11" + "@types/uuid" "^8.3.4" + "@types/ws" "^8.2.2" + buffer "^6.0.3" + eventemitter3 "^5.0.1" + uuid "^8.3.2" + ws "^8.5.0" + optionalDependencies: + bufferutil "^4.0.1" + utf-8-validate "^5.0.2" + +rtcpeerconnection-shim@^1.2.15: + version "1.2.15" + resolved "https://registry.yarnpkg.com/rtcpeerconnection-shim/-/rtcpeerconnection-shim-1.2.15.tgz#e7cc189a81b435324c4949aa3dfb51888684b243" + integrity sha512-C6DxhXt7bssQ1nHb154lqeL0SXz5Dx4RczXZu2Aa/L1NJFnEVDxFwCBo3fqtuljhHIGceg5JKBV4XJ0gW5JKyw== + dependencies: + sdp "^2.6.0" + run-async@^2.4.0: version "2.4.1" resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455" @@ -19311,14 +21768,14 @@ run-parallel@^1.1.9: dependencies: queue-microtask "^1.2.2" -rxjs@^6.6.3: +rxjs@6, rxjs@^6.6.3: version "6.6.7" resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.7.tgz#90ac018acabf491bf65044235d5863c4dab804c9" integrity sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ== dependencies: tslib "^1.9.0" -rxjs@^7.5.1, rxjs@^7.5.5, rxjs@^7.8.0: +rxjs@^7.5.1, rxjs@^7.5.5, rxjs@^7.8.0, rxjs@^7.8.1: version "7.8.1" resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.8.1.tgz#6f6f3d99ea8044291efd92e7c7fcf562c4057543" integrity sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg== @@ -19374,6 +21831,14 @@ safe-stable-stringify@^2.1.0: resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== +salmon-adapter-sdk@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/salmon-adapter-sdk/-/salmon-adapter-sdk-1.1.1.tgz#d5fdd2d27b1a6c58e38c188c977eeeeface8b20c" + integrity sha512-28ysSzmDjx2AbotxSggqdclh9MCwlPJUldKkCph48oS5Xtwu0QOg8T9ZRHS2Mben4Y8sTq6VvxXznKssCYFBJA== + dependencies: + "@project-serum/sol-wallet-adapter" "^0.2.6" + eventemitter3 "^4.0.7" + sanitize.css@*: version "13.0.0" resolved "https://registry.yarnpkg.com/sanitize.css/-/sanitize.css-13.0.0.tgz#2675553974b27964c75562ade3bd85d79879f173" @@ -19415,6 +21880,14 @@ saxes@^6.0.0: dependencies: xmlchars "^2.2.0" +scheduler@^0.19.1: + version "0.19.1" + resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.19.1.tgz#4f3e2ed2c1a7d65681f4c854fa8c5a1ccb40f196" + integrity sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA== + dependencies: + loose-envify "^1.1.0" + object-assign "^4.1.1" + scheduler@^0.23.0: version "0.23.0" resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.23.0.tgz#ba8041afc3d30eb206a487b6b384002e4e61fdfe" @@ -19469,6 +21942,11 @@ scuid@^1.1.0: resolved "https://registry.yarnpkg.com/scuid/-/scuid-1.1.0.tgz#d3f9f920956e737a60f72d0e4ad280bf324d5dab" integrity sha512-MuCAyrGZcTLfQoH2XoBlQ8C6bzwN88XT/0slOGz0pn8+gIP85BOAfYa44ZXQUTOwRwPU0QvgU+V+OSajl/59Xg== +sdp@^2.12.0, sdp@^2.6.0: + version "2.12.0" + resolved "https://registry.yarnpkg.com/sdp/-/sdp-2.12.0.tgz#338a106af7560c86e4523f858349680350d53b22" + integrity sha512-jhXqQAQVM+8Xj5EjJGVweuEzgtGWb3tmEEpl3CLP3cStInSbVHSg0QWOGQzNq8pSID4JkpeV2mPqlMDLrm0/Vw== + secp256k1@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/secp256k1/-/secp256k1-5.0.0.tgz#be6f0c8c7722e2481e9773336d351de8cddd12f7" @@ -19804,6 +22282,16 @@ socket.io-client@2.2.0: socket.io-parser "~3.3.0" to-array "0.1.4" +socket.io-client@^4.6.1: + version "4.7.5" + resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-4.7.5.tgz#919be76916989758bdc20eec63f7ee0ae45c05b7" + integrity sha512-sJ/tqHOCe7Z50JCBCXrsY3I2k03iOiUe+tj1OmKeD2lXPiGH/RUCdTZFoqVyN7l1MnpIzPrGtLcijffmeouNlQ== + dependencies: + "@socket.io/component-emitter" "~3.1.0" + debug "~4.3.2" + engine.io-client "~6.5.2" + socket.io-parser "~4.2.4" + socket.io-parser@~3.3.0: version "3.3.3" resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-3.3.3.tgz#3a8b84823eba87f3f7624e64a8aaab6d6318a72f" @@ -19813,6 +22301,14 @@ socket.io-parser@~3.3.0: debug "~3.1.0" isarray "2.0.1" +socket.io-parser@~4.2.4: + version "4.2.4" + resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-4.2.4.tgz#c806966cf7270601e47469ddeec30fbdfda44c83" + integrity sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew== + dependencies: + "@socket.io/component-emitter" "~3.1.0" + debug "~4.3.1" + socket.io@2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-2.2.0.tgz#f0f633161ef6712c972b307598ecd08c9b1b4d5b" @@ -19834,6 +22330,15 @@ sockjs@^0.3.24: uuid "^8.3.2" websocket-driver "^0.7.4" +socks-proxy-agent@6.1.1: + version "6.1.1" + resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-6.1.1.tgz#e664e8f1aaf4e1fb3df945f09e3d94f911137f87" + integrity sha512-t8J0kG3csjA4g6FTbsMOWws+7R7vuRC8aQ/wy3/1OWmsgwA68zs/+cExQ0koSitUDXqhufF/YJr9wtNMZHw5Ew== + dependencies: + agent-base "^6.0.2" + debug "^4.3.1" + socks "^2.6.1" + socks-proxy-agent@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-7.0.0.tgz#dc069ecf34436621acb41e3efa66ca1b5fed15b6" @@ -19843,6 +22348,14 @@ socks-proxy-agent@^7.0.0: debug "^4.3.3" socks "^2.6.2" +socks@^2.6.1: + version "2.8.3" + resolved "https://registry.yarnpkg.com/socks/-/socks-2.8.3.tgz#1ebd0f09c52ba95a09750afe3f3f9f724a800cb5" + integrity sha512-l5x7VUUWbjVFbafGLxPWkYsHIhEvmF85tbIeFZWc8ZPtoMyybuEhL7Jye/ooC4/d48FgOjSJXgsF/AJPYCW8Zw== + dependencies: + ip-address "^9.0.5" + smart-buffer "^4.2.0" + socks@^2.6.2: version "2.7.1" resolved "https://registry.yarnpkg.com/socks/-/socks-2.7.1.tgz#d8e651247178fde79c0663043e07240196857d55" @@ -20020,6 +22533,11 @@ sponge-case@^1.0.1: dependencies: tslib "^2.0.3" +sprintf-js@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.1.3.tgz#4914b903a2f8b685d17fdf78a70e917e872e444a" + integrity sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA== + sprintf-js@~1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" @@ -20271,7 +22789,7 @@ string.prototype.trimstart@^1.0.7: define-properties "^1.2.0" es-abstract "^1.22.1" -string_decoder@^1.1.1: +string_decoder@^1.1.1, string_decoder@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== @@ -20438,11 +22956,21 @@ superstruct@^0.14.2: resolved "https://registry.yarnpkg.com/superstruct/-/superstruct-0.14.2.tgz#0dbcdf3d83676588828f1cf5ed35cda02f59025b" integrity sha512-nPewA6m9mR3d6k7WkZ8N8zpTWfenFH3q9pA2PkuiZxINr9DKB2+40wEQf0ixn8VaGuJ78AB6iWOtStI+/4FKZQ== +superstruct@^0.15.4: + version "0.15.5" + resolved "https://registry.yarnpkg.com/superstruct/-/superstruct-0.15.5.tgz#0f0a8d3ce31313f0d84c6096cd4fa1bfdedc9dab" + integrity sha512-4AOeU+P5UuE/4nOUkmcQdW5y7i9ndt1cQd/3iUe+LTz3RxESf/W/5lg4B74HbDMMv8PHnPnGCQFH45kBcrQYoQ== + superstruct@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/superstruct/-/superstruct-1.0.3.tgz#de626a5b49c6641ff4d37da3c7598e7a87697046" integrity sha512-8iTn3oSS8nRGn+C2pgXSKPI3jmpm6FExNazNpjvqS6ZUJQCej3PUXEKM8NjHBOs54ExM+LPW/FBRhymrdcCiSg== +superstruct@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/superstruct/-/superstruct-2.0.2.tgz#3f6d32fbdc11c357deff127d591a39b996300c54" + integrity sha512-uV+TFRZdXsqXTL2pRvujROjdZQ4RAlBUS5BTh9IGm+jTqQntYThciG/qu57Gs69yjnVUSqdxF9YLmSnpupBW9A== + supports-color@^5.3.0, supports-color@^5.5.0: version "5.5.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" @@ -20804,6 +23332,17 @@ tiny-invariant@^1.0.2: resolved "https://registry.yarnpkg.com/tiny-invariant/-/tiny-invariant-1.3.1.tgz#8560808c916ef02ecfd55e66090df23a4b7aa642" integrity sha512-AD5ih2NlSssTCwsMznbvwMZpJ1cbhkGd2uueNxzv2jDlEeZdU04JQfRnggJQ8DrcVBGjAsCKwFBbDlVNtEMlzw== +tiny-secp256k1@^1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/tiny-secp256k1/-/tiny-secp256k1-1.1.6.tgz#7e224d2bee8ab8283f284e40e6b4acb74ffe047c" + integrity sha512-FmqJZGduTyvsr2cF3375fqGHUovSwDi/QytexX1Se4BPuPZpTE5Ftp5fg+EFSuEf3lhZqgCRjEG3ydUQ/aNiwA== + dependencies: + bindings "^1.3.0" + bn.js "^4.11.8" + create-hmac "^1.1.7" + elliptic "^6.4.0" + nan "^2.13.2" + tiny-warning@^1.0.0, tiny-warning@^1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/tiny-warning/-/tiny-warning-1.0.3.tgz#94a30db453df4c643d0fd566060d60a875d84754" @@ -20869,6 +23408,11 @@ toidentifier@1.0.1: resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== +toml@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/toml/-/toml-3.0.0.tgz#342160f1af1904ec9d204d03a5d61222d762c5ee" + integrity sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w== + toposort@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/toposort/-/toposort-2.0.2.tgz#ae21768175d1559d48bef35420b2f4962f09c330" @@ -20971,6 +23515,11 @@ ts-log@^2.2.3: resolved "https://registry.yarnpkg.com/ts-log/-/ts-log-2.2.5.tgz#aef3252f1143d11047e2cb6f7cfaac7408d96623" integrity sha512-PGcnJoTBnVGy6yYNFxWVNkdcAuAMstvutN9MgDJIV6L0oG8fB+ZNNy1T+wJzah8RPGor1mZuPQkVfXNDpy9eHA== +ts-mixer@^6.0.3: + version "6.0.4" + resolved "https://registry.yarnpkg.com/ts-mixer/-/ts-mixer-6.0.4.tgz#1da39ceabc09d947a82140d9f09db0f84919ca28" + integrity sha512-ufKpbmrugz5Aou4wcr5Wc1UUFWOLhq+Fm6qa6P0w0K5Qw2yhaUoiWszhCVuNQyNwrlGiscHOmqYoAox1PtvgjA== + ts-node@^10.9.1: version "10.9.2" resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.2.tgz#70f021c9e185bccdca820e26dc413805c101c71f" @@ -21191,11 +23740,21 @@ typedarray@^0.0.6: resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" integrity sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA== -"typescript@^3 || ^4", typescript@^4.8.4: +typeforce@^1.18.0: + version "1.18.0" + resolved "https://registry.yarnpkg.com/typeforce/-/typeforce-1.18.0.tgz#d7416a2c5845e085034d70fcc5b6cc4a90edbfdc" + integrity sha512-7uc1O8h1M1g0rArakJdf0uLRSSgFcYexrVoKo+bzJd32gd4gDy2L/Z+8/FjPnU9ydY3pEnVPtr9FyscYY60K1g== + +"typescript@^3 || ^4", typescript@^4.6.2: version "4.9.5" resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.5.tgz#095979f9bcc0d09da324d58d03ce8f8374cbe65a" integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g== +typescript@^5.0.0: + version "5.6.2" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.6.2.tgz#d1de67b6bef77c41823f822df8f0b3bcff60a5a0" + integrity sha512-NW8ByodCSNCwZeghjN3o+JX5OFH0Ojg6sadjEKY4huZ52TqbJTJnDo5+Tw98lSy63NZvi4n+ez5m2u5d4PkZyw== + typical@^2.4.2, typical@^2.6.0, typical@^2.6.1: version "2.6.1" resolved "https://registry.yarnpkg.com/typical/-/typical-2.6.1.tgz#5c080e5d661cbbe38259d2e70a3c7253e873881d" @@ -21221,6 +23780,11 @@ ua-parser-js@^1.0.35: resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-1.0.37.tgz#b5dc7b163a5c1f0c510b08446aed4da92c46373f" integrity sha512-bhTyI94tZofjo+Dn8SN6Zv8nBDvyXTymAdM3LDI/0IboIUwTu1rEhW7v2TfiVsoYWgkQ4kOVqnI8APUFbIQIFQ== +ua-parser-js@^1.0.37: + version "1.0.38" + resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-1.0.38.tgz#66bb0c4c0e322fe48edfe6d446df6042e62f25e2" + integrity sha512-Aq5ppTOfvrCMgAPneW1HfWj66Xi7XL+/mIy996R1/CLS/rcyJQm6QZdsKrUeivDFQ+Oc9Wyuwor8Ze8peEoUoQ== + uc.micro@^1.0.1, uc.micro@^1.0.5: version "1.0.6" resolved "https://registry.yarnpkg.com/uc.micro/-/uc.micro-1.0.6.tgz#9c411a802a409a91fc6cf74081baba34b24499ac" @@ -21236,6 +23800,13 @@ uglify-js@^3.1.4: resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.17.4.tgz#61678cf5fa3f5b7eb789bb345df29afb8257c22c" integrity sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g== +uint8arrays@3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/uint8arrays/-/uint8arrays-3.1.0.tgz#8186b8eafce68f28bd29bd29d683a311778901e2" + integrity sha512-ei5rfKtoRO8OyOIor2Rz5fhzjThwIHJZ3uyDPnDHTXbP0aMQ1RN/6AI5B5d9dBxJOU+BvOAk7ZQ1xphsX8Lrog== + dependencies: + multiformats "^9.4.2" + uint8arrays@^3.0.0, uint8arrays@^3.1.0: version "3.1.1" resolved "https://registry.yarnpkg.com/uint8arrays/-/uint8arrays-3.1.1.tgz#2d8762acce159ccd9936057572dade9459f65ae0" @@ -21324,6 +23895,13 @@ unicode-property-aliases-ecmascript@^2.0.0: resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz#43d41e3be698bd493ef911077c9b131f827e8ccd" integrity sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w== +unidragger@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/unidragger/-/unidragger-3.0.1.tgz#72b2e63f2571ca6e95a884b139dfec764e08c7f3" + integrity sha512-RngbGSwBFmqGBWjkaH+yB677uzR95blSQyxq6hYbrQCejH3Mx1nm8DVOuh3M9k2fQyTstWUG5qlgCnNqV/9jVw== + dependencies: + ev-emitter "^2.0.0" + unique-filename@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-2.0.1.tgz#e785f8675a9a7589e0ac77e0b5c34d2eaeac6da2" @@ -21386,6 +23964,11 @@ unixify@^1.0.0: dependencies: normalize-path "^2.1.1" +unload@^2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/unload/-/unload-2.4.1.tgz#b0c5b7fb44e17fcbf50dcb8fb53929c59dd226a5" + integrity sha512-IViSAm8Z3sRBYA+9wc0fLQmU9Nrxb16rcDmIiR6Y9LJSZzI7QY5QsDhqPpKOjAn0O9/kfK1TfNEMMAGPTIraPw== + unpipe@1.0.0, unpipe@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" @@ -21493,6 +24076,15 @@ urlpattern-polyfill@^8.0.0: resolved "https://registry.yarnpkg.com/urlpattern-polyfill/-/urlpattern-polyfill-8.0.2.tgz#99f096e35eff8bf4b5a2aa7d58a1523d6ebc7ce5" integrity sha512-Qp95D4TPJl1kC9SKigDcqgyM2VDVO4RiJc2d4qe5GrYm+zbIQCWWKAFaJNQ4BhdFeDGwBmAxqJBwWSJDb9T3BQ== +usb@^2.11.0: + version "2.13.0" + resolved "https://registry.yarnpkg.com/usb/-/usb-2.13.0.tgz#521d11244cbe991a3f247c770821635abdcc9c7f" + integrity sha512-pTNKyxD1DfC1DYu8kFcIdpE8f33e0c2Sbmmi0HEs28HTVC555uocvYR1g5DDv4CBibacCh4BqRyYZJylN4mBbw== + dependencies: + "@types/w3c-web-usb" "^1.0.6" + node-addon-api "^8.0.0" + node-gyp-build "^4.5.0" + use-sync-external-store@1.2.0, use-sync-external-store@^1.0.0, use-sync-external-store@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz#7dbefd6ef3fe4e767a0cf5d7287aacfb5846928a" @@ -21564,11 +24156,19 @@ uuid@8.3.2, uuid@^8.3.2: resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== -uuid@^9.0.1: +uuid@^9.0.0, uuid@^9.0.1: version "9.0.1" resolved "https://registry.yarnpkg.com/uuid/-/uuid-9.0.1.tgz#e188d4c8853cc722220392c424cd637f32293f30" integrity sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA== +uuidv4@^6.2.13: + version "6.2.13" + resolved "https://registry.yarnpkg.com/uuidv4/-/uuidv4-6.2.13.tgz#8f95ec5ef22d1f92c8e5d4c70b735d1c89572cb7" + integrity sha512-AXyzMjazYB3ovL3q051VLH06Ixj//Knx7QnUSi1T//Ie3io6CpsPu9nVMOx5MoLWh6xV0B9J0hIaxungxXUbPQ== + dependencies: + "@types/uuid" "8.3.4" + uuid "8.3.2" + v8-compile-cache-lib@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf" @@ -21649,6 +24249,13 @@ value-or-promise@^1.0.11, value-or-promise@^1.0.12: resolved "https://registry.yarnpkg.com/value-or-promise/-/value-or-promise-1.0.12.tgz#0e5abfeec70148c78460a849f6b003ea7986f15c" integrity sha512-Z6Uz+TYwEqE7ZN50gwn+1LCVo9ZVrpxRPOhOLnncYkY1ZzOYtrX8Fwf/rFktZ8R5mJms6EZf5TqNOMeZmnPq9Q== +varuint-bitcoin@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/varuint-bitcoin/-/varuint-bitcoin-1.1.2.tgz#e76c138249d06138b480d4c5b40ef53693e24e92" + integrity sha512-4EVb+w4rx+YfVM32HQX42AbbT7/1f5zwAYhIujKXKk8NQK+JfRVl3pqT3hjNn/L+RstigmGGKVwHA/P0wgITZw== + dependencies: + safe-buffer "^5.1.1" + vary@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" @@ -21751,6 +24358,13 @@ walker@^1.0.7, walker@^1.0.8: dependencies: makeerror "1.0.12" +warning@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/warning/-/warning-4.0.3.tgz#16e9e077eb8a86d6af7d64aa1e05fd85b4678ca3" + integrity sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w== + dependencies: + loose-envify "^1.0.0" + watchpack@^2.4.0: version "2.4.0" resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.4.0.tgz#fa33032374962c78113f93c7f2fb4c54c9862a5d" @@ -21937,6 +24551,14 @@ webpack@^5.64.4: watchpack "^2.4.0" webpack-sources "^3.2.3" +webrtc-adapter@^7.2.1: + version "7.7.1" + resolved "https://registry.yarnpkg.com/webrtc-adapter/-/webrtc-adapter-7.7.1.tgz#b2c227a6144983b35057df67bd984a7d4bfd17f1" + integrity sha512-TbrbBmiQBL9n0/5bvDdORc6ZfRY/Z7JnEj+EYOD1ghseZdpJ+nF2yx14k3LgQKc7JZnG7HAcL+zHnY25So9d7A== + dependencies: + rtcpeerconnection-shim "^1.2.15" + sdp "^2.12.0" + websocket-driver@>=0.5.1, websocket-driver@^0.7.4: version "0.7.4" resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.4.tgz#89ad5295bbf64b480abcba31e4953aca706f5760" @@ -22097,6 +24719,13 @@ wide-align@^1.1.5: dependencies: string-width "^1.0.2 || 2 || 3 || 4" +wif@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/wif/-/wif-4.0.0.tgz#598d4659f361b1d2a8aed13214783fa374b4b146" + integrity sha512-kADznC+4AFJNXpT8rLhbsfI7EmAcorc5nWvAdKUchGmwXEBD3n55q0/GZ3DBmc6auAvuTSsr/utiKizuXdNYOQ== + dependencies: + bs58check "^3.0.1" + word-wrap@~1.2.3: version "1.2.5" resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.5.tgz#d2c45c6dd4fbce621a66f136cbe328afd0410b34" @@ -22421,6 +25050,11 @@ ws@8.13.0: resolved "https://registry.yarnpkg.com/ws/-/ws-8.13.0.tgz#9a9fb92f93cf41512a0735c8f4dd09b8a1211cd0" integrity sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA== +ws@^7.2.0, ws@^7.5.10: + version "7.5.10" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.10.tgz#58b5c20dc281633f6c19113f39b349bd8bd558d9" + integrity sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ== + ws@^7.4.0, ws@^7.4.5, ws@^7.4.6, ws@^7.5.1: version "7.5.9" resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.9.tgz#54fa7db29f4c7cec68b1ddd3a89de099942bb591" @@ -22431,6 +25065,11 @@ ws@^8.11.0, ws@^8.12.0, ws@^8.13.0, ws@^8.5.0: resolved "https://registry.yarnpkg.com/ws/-/ws-8.16.0.tgz#d1cd774f36fbc07165066a60e40323eab6446fd4" integrity sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ== +ws@^8.18.0: + version "8.18.0" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.18.0.tgz#0d7505a6eafe2b0e712d232b42279f53bc289bbc" + integrity sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw== + ws@~6.1.0: version "6.1.4" resolved "https://registry.yarnpkg.com/ws/-/ws-6.1.4.tgz#5b5c8800afab925e94ccb29d153c8d02c1776ef9" @@ -22438,6 +25077,11 @@ ws@~6.1.0: dependencies: async-limiter "~1.0.0" +ws@~8.17.1: + version "8.17.1" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.17.1.tgz#9293da530bb548febc95371d90f9c878727d919b" + integrity sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ== + xml-name-validator@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a" @@ -22463,6 +25107,11 @@ xmlhttprequest-ssl@~1.6.3: resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.6.3.tgz#03b713873b01659dfa2c1c5d056065b27ddc2de6" integrity sha512-3XfeQE/wNkvrIktn2Kf0869fC0BN6UpydVasGIeSm2B1Llihf7/0UfZM+eCkOw3P7bP4+qPgqhm7ZoxuJtFU0Q== +xmlhttprequest-ssl@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.0.0.tgz#91360c86b914e67f44dce769180027c0da618c67" + integrity sha512-QKxVRxiRACQcVuQEYFsI1hhkrMlrXHPegbbd1yn9UHOmRxY+si12nQYzri3vbzt8VdTTRviqcKxcyllFas5z2A== + xtend@^4.0.1, xtend@~4.0.1: version "4.0.2" resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54"