From 611926a08f2271dff94176a1545cc6caedfd9063 Mon Sep 17 00:00:00 2001 From: Jimi <691742@gmail.com> Date: Tue, 25 Aug 2026 20:29:23 +0800 Subject: [PATCH 1/9] feat(wallet-extensions): add Noir Wallet connector for Zcash (#111) Adds a NOIR_WALLET connector backed by the Noir Wallet browser extension (window.noirwallet). The connector registers Chain.Zcash with the UTXO toolbox, overriding getBalance/transfer/signMessage to delegate to the extension, which spends from the shielded pool and builds/signs transactions internally. Memo'd transfers throw wallet_noir_wallet_memo_not_supported since the extension cannot attach OP_RETURN data to transparent recipients, so OP_RETURN-based routes (Maya) are rejected explicitly while deposit-address routes (NEAR Intents) are fully supported. Requires @swapkit/helpers with WalletOption.NOIR_WALLET and the wallet_noir_wallet_* error codes (companion change in the SwapKit monorepo). --- .changeset/noir-wallet-zcash.md | 6 + packages/wallet-extensions/package.json | 6 + .../noir-wallet/__tests__/noir-wallet.test.ts | 127 ++++++++++++++++++ .../src/noir-wallet/index.ts | 86 ++++++++++++ packages/wallet-extensions/src/types.ts | 9 ++ packages/wallets/src/types.ts | 3 + packages/wallets/src/utils.ts | 1 + 7 files changed, 238 insertions(+) create mode 100644 .changeset/noir-wallet-zcash.md create mode 100644 packages/wallet-extensions/src/noir-wallet/__tests__/noir-wallet.test.ts create mode 100644 packages/wallet-extensions/src/noir-wallet/index.ts diff --git a/.changeset/noir-wallet-zcash.md b/.changeset/noir-wallet-zcash.md new file mode 100644 index 0000000..816e18c --- /dev/null +++ b/.changeset/noir-wallet-zcash.md @@ -0,0 +1,6 @@ +--- +"@swapkit/wallet-extensions": minor +"@swapkit/wallets": minor +--- + +Add Noir Wallet connector for Zcash (`connectNoirWallet`). Noir Wallet is a shielded-first Zcash browser extension; the connector delegates balance and transaction building to the extension and supports deposit-address swap routes (e.g. NEAR Intents). Requires `@swapkit/helpers` with `WalletOption.NOIR_WALLET` and the `wallet_noir_wallet_*` error codes. diff --git a/packages/wallet-extensions/package.json b/packages/wallet-extensions/package.json index 5ce85db..8b38a62 100644 --- a/packages/wallet-extensions/package.json +++ b/packages/wallet-extensions/package.json @@ -82,6 +82,12 @@ "require": "./dist/src/keplr/index.cjs", "types": "./dist/types/keplr/index.d.ts" }, + "./noir-wallet": { + "bun": "./src/noir-wallet/index.ts", + "default": "./dist/src/noir-wallet/index.js", + "require": "./dist/src/noir-wallet/index.cjs", + "types": "./dist/types/noir-wallet/index.d.ts" + }, "./okx": { "bun": "./src/okx/index.ts", "default": "./dist/src/okx/index.js", diff --git a/packages/wallet-extensions/src/noir-wallet/__tests__/noir-wallet.test.ts b/packages/wallet-extensions/src/noir-wallet/__tests__/noir-wallet.test.ts new file mode 100644 index 0000000..d11f55e --- /dev/null +++ b/packages/wallet-extensions/src/noir-wallet/__tests__/noir-wallet.test.ts @@ -0,0 +1,127 @@ +// @ts-nocheck - Test file with intentional mocking of browser globals +import { beforeEach, describe, expect, test } from "bun:test"; +import { AssetValue, Chain, WalletOption } from "@swapkit/helpers"; + +import { noirWallet } from "../index"; + +const TRANSPARENT_ADDRESS = "t1XVXWCvpMgBvUaed4XDqWtgQgJSu1Ghz7F"; + +function mockNoirWallet({ balance = {}, requests = [] } = {}) { + globalThis.window = { + noirwallet: { + isNoirWallet: true, + version: "1.0.25", + zcash: { + disconnect: async () => undefined, + on: () => undefined, + removeListener: () => undefined, + request: ({ method, params }) => { + requests.push({ method, params }); + + switch (method) { + case "zcash_requestAccounts": + return Promise.resolve({ accounts: [], shielded: "zs1mock", transparent: TRANSPARENT_ADDRESS }); + case "zcash_getBalance": + return Promise.resolve({ + available: "1.42", + shielded: "1.5", + spendable: "1.45", + total: "1.6", + transparent: "0.1", + ...balance, + }); + case "zcash_sendTransaction": + return Promise.resolve("mocktxid123"); + case "zcash_signMessage": + return Promise.resolve({ + address: TRANSPARENT_ADDRESS, + pubkey: "02aa", + signature: "sigabc", + signingMode: "current", + }); + default: + return Promise.reject(new Error(`unexpected method ${method}`)); + } + }, + }, + }, + }; + + return requests; +} + +async function connectAndGetWallet() { + let addedWallet = null; + const connect = noirWallet.connectNoirWallet.connectWallet({ + addChain: (wallet) => { + addedWallet = wallet; + }, + }); + + await connect([Chain.Zcash]); + + return addedWallet; +} + +describe("noirWallet", () => { + let requests = []; + + beforeEach(() => { + requests = mockNoirWallet(); + }); + + test("exposes Zcash as the only supported chain", () => { + expect(noirWallet.connectNoirWallet.supportedChains).toEqual([Chain.Zcash]); + }); + + test("connects via zcash_requestAccounts and registers the transparent address", async () => { + const wallet = await connectAndGetWallet(); + + expect(requests.some(({ method }) => method === "zcash_requestAccounts")).toBe(true); + expect(wallet.address).toBe(TRANSPARENT_ADDRESS); + expect(wallet.chain).toBe(Chain.Zcash); + expect(wallet.walletType).toBe(WalletOption.NOIR_WALLET); + }); + + test("getBalance reads the wallet's spendable (shielded pool) balance", async () => { + const wallet = await connectAndGetWallet(); + const [balance] = await wallet.getBalance(); + + expect(balance.chain).toBe(Chain.Zcash); + expect(balance.getValue("string")).toBe("1.42"); + }); + + test("transfer delegates to zcash_sendTransaction without memo/type fields", async () => { + const wallet = await connectAndGetWallet(); + const assetValue = AssetValue.from({ chain: Chain.Zcash, value: "0.5" }); + + const txid = await wallet.transfer({ assetValue, recipient: "t1RecipientAddr" }); + + expect(txid).toBe("mocktxid123"); + const sendCall = requests.find(({ method }) => method === "zcash_sendTransaction"); + expect(sendCall.params).toEqual([{ amount: "0.5", to: "t1RecipientAddr" }]); + }); + + test("transfer with memo throws (OP_RETURN routes unsupported)", async () => { + const wallet = await connectAndGetWallet(); + const assetValue = AssetValue.from({ chain: Chain.Zcash, value: "0.5" }); + + expect(() => wallet.transfer({ assetValue, memo: "=:BTC.BTC:bc1q...", recipient: "t1RecipientAddr" })).toThrow( + "wallet_noir_wallet_memo_not_supported", + ); + }); + + test("signMessage returns the signature string", async () => { + const wallet = await connectAndGetWallet(); + + expect(await wallet.signMessage("hello swapkit")).toBe("sigabc"); + }); + + test("throws when the extension is not installed", () => { + globalThis.window = {}; + + const connect = noirWallet.connectNoirWallet.connectWallet({ addChain: () => undefined }); + + expect(connect([Chain.Zcash])).rejects.toThrow("wallet_noir_wallet_not_found"); + }); +}); diff --git a/packages/wallet-extensions/src/noir-wallet/index.ts b/packages/wallet-extensions/src/noir-wallet/index.ts new file mode 100644 index 0000000..0c82d3f --- /dev/null +++ b/packages/wallet-extensions/src/noir-wallet/index.ts @@ -0,0 +1,86 @@ +import { AssetValue, Chain, type GenericTransferParams, SwapKitError, WalletOption } from "@swapkit/helpers"; +import { createWallet, getWalletSupportedChains } from "@swapkit/wallet-core"; +import type { NoirWalletZcashProvider } from "../types"; +import type { ExtensionWallet } from "../walletTypes"; + +export function getNoirWalletZcashProvider(): NoirWalletZcashProvider { + const provider = window.noirwallet?.zcash; + + if (!provider) { + throw new SwapKitError("wallet_noir_wallet_not_found"); + } + + return provider; +} + +export const noirWallet: ExtensionWallet<"connectNoirWallet"> = createWallet({ + connect: ({ addChain, walletType }) => + async function connectNoirWallet(_chains: Chain[]) { + const provider = getNoirWalletZcashProvider(); + + // Opens the extension's connect-approval popup and returns the primary + // account's addresses. + const account = await provider.request({ method: "zcash_requestAccounts" }); + + if (!account?.transparent) { + throw new SwapKitError("wallet_noir_wallet_connection_failed"); + } + + const { getUtxoToolbox } = await import("@swapkit/toolboxes/utxo"); + const toolbox = await getUtxoToolbox(Chain.Zcash); + + addChain({ + ...toolbox, + address: account.transparent, + chain: Chain.Zcash, + /** + * Noir Wallet spends from the shielded pool, so the spendable balance + * comes from the wallet itself rather than the transparent address' + * UTXO set. + */ + getBalance: async () => { + const balance = await provider.request({ method: "zcash_getBalance" }); + const value = balance?.available ?? balance?.spendable ?? balance?.total ?? "0"; + + return [AssetValue.from({ chain: Chain.Zcash, value })]; + }, + signMessage: async (message: string) => { + const { signature } = await provider.request({ method: "zcash_signMessage", params: [message, {}] }); + + return signature; + }, + /** + * Transaction building, fee selection and signing happen inside the + * extension. Memos are only supported towards shielded recipients, + * which rules out OP_RETURN-based routes (e.g. Maya/THORChain) — + * deposit-address routes such as NEAR Intents work. + */ + transfer: ({ recipient, assetValue, memo }: GenericTransferParams) => { + if (memo) { + throw new SwapKitError("wallet_noir_wallet_memo_not_supported"); + } + + if (!(recipient && assetValue)) { + throw new SwapKitError("wallet_missing_params", { params: { assetValue, recipient } }); + } + + return provider.request({ + method: "zcash_sendTransaction", + params: [{ amount: assetValue.getValue("string"), to: recipient }], + }); + }, + walletType, + }); + + return true; + }, + // Raw-sign RPC is not exposed by the extension; transactions are built and + // signed inside the wallet. + directSigningSupport: {}, + name: "connectNoirWallet", + supportedChains: [Chain.Zcash], + walletType: WalletOption.NOIR_WALLET, +}); + +export const NOIR_WALLET_SUPPORTED_CHAINS = getWalletSupportedChains(noirWallet); +export type NoirWalletSupportedChain = (typeof NOIR_WALLET_SUPPORTED_CHAINS)[number]; diff --git a/packages/wallet-extensions/src/types.ts b/packages/wallet-extensions/src/types.ts index 9b370c7..f6adf53 100644 --- a/packages/wallet-extensions/src/types.ts +++ b/packages/wallet-extensions/src/types.ts @@ -25,6 +25,13 @@ export type VultisigCosmosProvider = { request(request: { method: string; params?: any[] | Record }, callback?: Callback): Promise; }; +export type NoirWalletZcashProvider = { + request(request: { method: string; params?: any[] }): Promise; + on(event: string, handler: (...args: any[]) => void): void; + removeListener?(event: string, handler: (...args: any[]) => void): void; + disconnect(): Promise; +}; + type CtrlInjectedProviders = { binance: Eip1193Provider; bitcoin: Eip1193Provider; @@ -55,6 +62,8 @@ declare global { ctrl?: CtrlInjectedProviders; xfi?: CtrlInjectedProviders; + noirwallet?: { isNoirWallet: boolean; version?: string; zcash: NoirWalletZcashProvider }; + vultisig?: { bitcoin: Eip1193Provider; bitcoincash: Eip1193Provider; diff --git a/packages/wallets/src/types.ts b/packages/wallets/src/types.ts index 76755d8..304bbb7 100644 --- a/packages/wallets/src/types.ts +++ b/packages/wallets/src/types.ts @@ -5,6 +5,7 @@ import type { ctrlWallet } from "@swapkit/wallet-extensions/ctrl"; import type { evmWallet } from "@swapkit/wallet-extensions/evm-extensions"; import type { keepkeyBexWallet } from "@swapkit/wallet-extensions/keepkey-bex"; import type { keplrWallet } from "@swapkit/wallet-extensions/keplr"; +import type { noirWallet } from "@swapkit/wallet-extensions/noir-wallet"; import type { okxWallet } from "@swapkit/wallet-extensions/okx"; import type { onekeyWallet } from "@swapkit/wallet-extensions/onekey"; import type { petraWallet } from "@swapkit/wallet-extensions/petra"; @@ -43,6 +44,7 @@ export type SKWallets = { [WalletOption.LEAP]: typeof keplrWallet; [WalletOption.LEDGER]: typeof ledgerWallet; [WalletOption.METAMASK]: typeof metamaskWallet; + [WalletOption.NOIR_WALLET]: typeof noirWallet; [WalletOption.OKX]: typeof okxWallet; [WalletOption.OKX_MOBILE]: typeof evmWallet; [WalletOption.ONEKEY]: typeof onekeyWallet; @@ -120,6 +122,7 @@ export type SKWalletsSupportedChains = { [WalletOption.LEAP]: typeof keplrWallet.connectKeplr.supportedChains; [WalletOption.LEDGER]: typeof ledgerWallet.connectLedger.supportedChains; [WalletOption.METAMASK]: typeof metamaskWallet.connectMetamask.supportedChains; + [WalletOption.NOIR_WALLET]: typeof noirWallet.connectNoirWallet.supportedChains; [WalletOption.OKX]: typeof okxWallet.connectOkx.supportedChains; [WalletOption.OKX_MOBILE]: typeof evmWallet.connectEVMWallet.supportedChains; [WalletOption.ONEKEY]: typeof onekeyWallet.connectOnekeyWallet.supportedChains; diff --git a/packages/wallets/src/utils.ts b/packages/wallets/src/utils.ts index a20019a..10da3cc 100644 --- a/packages/wallets/src/utils.ts +++ b/packages/wallets/src/utils.ts @@ -46,6 +46,7 @@ export async function loadWallet(walletOption: W): Pr .with(WalletOption.LEDGER, async () => (await import("@swapkit/wallet-hardware/ledger")).ledgerWallet) .with(WalletOption.PASSKEYS, WalletOption.PASSKEY_WALLET, async () => (await import("./passkeys")).passkeysWallet) .with(WalletOption.PETRA, async () => (await import("@swapkit/wallet-extensions/petra")).petraWallet) + .with(WalletOption.NOIR_WALLET, async () => (await import("@swapkit/wallet-extensions/noir-wallet")).noirWallet) .with(WalletOption.PHANTOM, async () => (await import("@swapkit/wallet-extensions/phantom")).phantomWallet) .with(WalletOption.POLKADOT_JS, async () => (await import("@swapkit/wallet-extensions/polkadotjs")).polkadotWallet) .with(WalletOption.RADIX_WALLET, async () => (await import("./radix")).radixWallet) From 162137a5e0ba109ea9b6734f8d4517ab0556e0eb Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 25 Aug 2026 14:40:40 +0400 Subject: [PATCH 2/9] fix(noir-wallet): compile against helpers 5.0.2 via TON_CONNECT-style option shim MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit helpers 5.0.x shipped without the extensible WalletOption registry (swapkit/sdk#346 unmerged), so NOIR_WALLET moves outside the enum the same way TON_CONNECT does: a dedicated option.ts with the literal const + type, threaded through loadWallet's match union and SKWallets literal keys. Interim error keys until the registry ships the wallet_noir_wallet_* range (80101-80103): wallet_provider_not_found, core_wallet_connection_failed, wallet_walletconnect_method_not_supported — each with an info payload carrying the NOIR_WALLET wallet tag and reason. Unwind together with the tonconnect shim once sdk#346 is released. Co-Authored-By: Claude Fable 5 --- .changeset/noir-wallet-zcash.md | 2 +- packages/wallet-extensions/package.json | 6 ++++++ .../noir-wallet/__tests__/noir-wallet.test.ts | 10 ++++++---- .../wallet-extensions/src/noir-wallet/index.ts | 18 +++++++++++++----- .../src/noir-wallet/option.ts | 6 ++++++ packages/wallets/src/types.ts | 4 ++-- packages/wallets/src/utils.ts | 5 +++-- 7 files changed, 37 insertions(+), 14 deletions(-) create mode 100644 packages/wallet-extensions/src/noir-wallet/option.ts diff --git a/.changeset/noir-wallet-zcash.md b/.changeset/noir-wallet-zcash.md index 816e18c..0c538f3 100644 --- a/.changeset/noir-wallet-zcash.md +++ b/.changeset/noir-wallet-zcash.md @@ -3,4 +3,4 @@ "@swapkit/wallets": minor --- -Add Noir Wallet connector for Zcash (`connectNoirWallet`). Noir Wallet is a shielded-first Zcash browser extension; the connector delegates balance and transaction building to the extension and supports deposit-address swap routes (e.g. NEAR Intents). Requires `@swapkit/helpers` with `WalletOption.NOIR_WALLET` and the `wallet_noir_wallet_*` error codes. +Add Noir Wallet connector for Zcash (`connectNoirWallet`). Noir Wallet is a shielded-first Zcash browser extension; the connector delegates balance and transaction building to the extension and supports deposit-address swap routes (e.g. NEAR Intents). OP_RETURN memo routes are rejected with a clear error. `NOIR_WALLET` lives outside the `WalletOption` enum (same shim as `TON_CONNECT`) until the helpers registry (swapkit/sdk#346) is released. diff --git a/packages/wallet-extensions/package.json b/packages/wallet-extensions/package.json index 8b38a62..7a1bfe5 100644 --- a/packages/wallet-extensions/package.json +++ b/packages/wallet-extensions/package.json @@ -88,6 +88,12 @@ "require": "./dist/src/noir-wallet/index.cjs", "types": "./dist/types/noir-wallet/index.d.ts" }, + "./noir-wallet/option": { + "bun": "./src/noir-wallet/option.ts", + "default": "./dist/src/noir-wallet/option.js", + "require": "./dist/src/noir-wallet/option.cjs", + "types": "./dist/types/noir-wallet/option.d.ts" + }, "./okx": { "bun": "./src/okx/index.ts", "default": "./dist/src/okx/index.js", diff --git a/packages/wallet-extensions/src/noir-wallet/__tests__/noir-wallet.test.ts b/packages/wallet-extensions/src/noir-wallet/__tests__/noir-wallet.test.ts index d11f55e..8f4d242 100644 --- a/packages/wallet-extensions/src/noir-wallet/__tests__/noir-wallet.test.ts +++ b/packages/wallet-extensions/src/noir-wallet/__tests__/noir-wallet.test.ts @@ -1,8 +1,9 @@ // @ts-nocheck - Test file with intentional mocking of browser globals import { beforeEach, describe, expect, test } from "bun:test"; -import { AssetValue, Chain, WalletOption } from "@swapkit/helpers"; +import { AssetValue, Chain } from "@swapkit/helpers"; import { noirWallet } from "../index"; +import { NOIR_WALLET } from "../option"; const TRANSPARENT_ADDRESS = "t1XVXWCvpMgBvUaed4XDqWtgQgJSu1Ghz7F"; @@ -80,7 +81,8 @@ describe("noirWallet", () => { expect(requests.some(({ method }) => method === "zcash_requestAccounts")).toBe(true); expect(wallet.address).toBe(TRANSPARENT_ADDRESS); expect(wallet.chain).toBe(Chain.Zcash); - expect(wallet.walletType).toBe(WalletOption.NOIR_WALLET); + expect(wallet.walletType).toBe(NOIR_WALLET); + expect(wallet.walletType).toBe("NOIR_WALLET"); }); test("getBalance reads the wallet's spendable (shielded pool) balance", async () => { @@ -107,7 +109,7 @@ describe("noirWallet", () => { const assetValue = AssetValue.from({ chain: Chain.Zcash, value: "0.5" }); expect(() => wallet.transfer({ assetValue, memo: "=:BTC.BTC:bc1q...", recipient: "t1RecipientAddr" })).toThrow( - "wallet_noir_wallet_memo_not_supported", + "wallet_walletconnect_method_not_supported", ); }); @@ -122,6 +124,6 @@ describe("noirWallet", () => { const connect = noirWallet.connectNoirWallet.connectWallet({ addChain: () => undefined }); - expect(connect([Chain.Zcash])).rejects.toThrow("wallet_noir_wallet_not_found"); + expect(connect([Chain.Zcash])).rejects.toThrow("wallet_provider_not_found"); }); }); diff --git a/packages/wallet-extensions/src/noir-wallet/index.ts b/packages/wallet-extensions/src/noir-wallet/index.ts index 0c82d3f..8c198f0 100644 --- a/packages/wallet-extensions/src/noir-wallet/index.ts +++ b/packages/wallet-extensions/src/noir-wallet/index.ts @@ -1,13 +1,14 @@ -import { AssetValue, Chain, type GenericTransferParams, SwapKitError, WalletOption } from "@swapkit/helpers"; +import { AssetValue, Chain, type GenericTransferParams, SwapKitError, type WalletOption } from "@swapkit/helpers"; import { createWallet, getWalletSupportedChains } from "@swapkit/wallet-core"; import type { NoirWalletZcashProvider } from "../types"; import type { ExtensionWallet } from "../walletTypes"; +import { NOIR_WALLET } from "./option"; export function getNoirWalletZcashProvider(): NoirWalletZcashProvider { const provider = window.noirwallet?.zcash; if (!provider) { - throw new SwapKitError("wallet_noir_wallet_not_found"); + throw new SwapKitError("wallet_provider_not_found", { wallet: NOIR_WALLET }); } return provider; @@ -23,7 +24,7 @@ export const noirWallet: ExtensionWallet<"connectNoirWallet"> = createWallet({ const account = await provider.request({ method: "zcash_requestAccounts" }); if (!account?.transparent) { - throw new SwapKitError("wallet_noir_wallet_connection_failed"); + throw new SwapKitError("core_wallet_connection_failed", { wallet: NOIR_WALLET }); } const { getUtxoToolbox } = await import("@swapkit/toolboxes/utxo"); @@ -57,7 +58,11 @@ export const noirWallet: ExtensionWallet<"connectNoirWallet"> = createWallet({ */ transfer: ({ recipient, assetValue, memo }: GenericTransferParams) => { if (memo) { - throw new SwapKitError("wallet_noir_wallet_memo_not_supported"); + throw new SwapKitError("wallet_walletconnect_method_not_supported", { + method: "transfer", + reason: "Noir Wallet cannot attach OP_RETURN memos to transparent recipients", + wallet: NOIR_WALLET, + }); } if (!(recipient && assetValue)) { @@ -79,7 +84,10 @@ export const noirWallet: ExtensionWallet<"connectNoirWallet"> = createWallet({ directSigningSupport: {}, name: "connectNoirWallet", supportedChains: [Chain.Zcash], - walletType: WalletOption.NOIR_WALLET, + // createWallet constrains walletType to the WalletOption enum, which has no + // NOIR_WALLET member until the registry lands upstream (swapkit/sdk#346) — + // see ./option.ts. + walletType: NOIR_WALLET as unknown as WalletOption, }); export const NOIR_WALLET_SUPPORTED_CHAINS = getWalletSupportedChains(noirWallet); diff --git a/packages/wallet-extensions/src/noir-wallet/option.ts b/packages/wallet-extensions/src/noir-wallet/option.ts new file mode 100644 index 0000000..e4b7d3e --- /dev/null +++ b/packages/wallet-extensions/src/noir-wallet/option.ts @@ -0,0 +1,6 @@ +// @swapkit/helpers 5.0.x shipped without the extensible WalletOption registry +// (swapkit/sdk#346 is unmerged), so NOIR_WALLET lives outside the enum until a +// helpers release carries the registry — same shim as +// packages/wallets/src/tonconnect/option.ts; unwind both together. +export const NOIR_WALLET = "NOIR_WALLET" as const; +export type NoirWalletOption = typeof NOIR_WALLET; diff --git a/packages/wallets/src/types.ts b/packages/wallets/src/types.ts index 304bbb7..d64b2e8 100644 --- a/packages/wallets/src/types.ts +++ b/packages/wallets/src/types.ts @@ -44,7 +44,7 @@ export type SKWallets = { [WalletOption.LEAP]: typeof keplrWallet; [WalletOption.LEDGER]: typeof ledgerWallet; [WalletOption.METAMASK]: typeof metamaskWallet; - [WalletOption.NOIR_WALLET]: typeof noirWallet; + NOIR_WALLET: typeof noirWallet; [WalletOption.OKX]: typeof okxWallet; [WalletOption.OKX_MOBILE]: typeof evmWallet; [WalletOption.ONEKEY]: typeof onekeyWallet; @@ -122,7 +122,7 @@ export type SKWalletsSupportedChains = { [WalletOption.LEAP]: typeof keplrWallet.connectKeplr.supportedChains; [WalletOption.LEDGER]: typeof ledgerWallet.connectLedger.supportedChains; [WalletOption.METAMASK]: typeof metamaskWallet.connectMetamask.supportedChains; - [WalletOption.NOIR_WALLET]: typeof noirWallet.connectNoirWallet.supportedChains; + NOIR_WALLET: typeof noirWallet.connectNoirWallet.supportedChains; [WalletOption.OKX]: typeof okxWallet.connectOkx.supportedChains; [WalletOption.OKX_MOBILE]: typeof evmWallet.connectEVMWallet.supportedChains; [WalletOption.ONEKEY]: typeof onekeyWallet.connectOnekeyWallet.supportedChains; diff --git a/packages/wallets/src/utils.ts b/packages/wallets/src/utils.ts index 10da3cc..efa2bc0 100644 --- a/packages/wallets/src/utils.ts +++ b/packages/wallets/src/utils.ts @@ -1,11 +1,12 @@ import { WalletOption } from "@swapkit/helpers"; +import { NOIR_WALLET, type NoirWalletOption } from "@swapkit/wallet-extensions/noir-wallet/option"; import { TON_CONNECT, type TonConnectOption } from "./tonconnect/option"; import type { SKWallets } from "./types"; export async function loadWallet(walletOption: W): Promise { const { match } = await import("ts-pattern"); - const wallet = await match(walletOption as WalletOption | TonConnectOption) + const wallet = await match(walletOption as WalletOption | TonConnectOption | NoirWalletOption) .with(WalletOption.COINBASE_MOBILE, async () => (await import("./coinbase")).coinbaseWallet) .with(WalletOption.BITGET, async () => (await import("@swapkit/wallet-extensions/bitget")).bitgetWallet) .with(WalletOption.CTRL, async () => (await import("@swapkit/wallet-extensions/ctrl")).ctrlWallet) @@ -46,7 +47,7 @@ export async function loadWallet(walletOption: W): Pr .with(WalletOption.LEDGER, async () => (await import("@swapkit/wallet-hardware/ledger")).ledgerWallet) .with(WalletOption.PASSKEYS, WalletOption.PASSKEY_WALLET, async () => (await import("./passkeys")).passkeysWallet) .with(WalletOption.PETRA, async () => (await import("@swapkit/wallet-extensions/petra")).petraWallet) - .with(WalletOption.NOIR_WALLET, async () => (await import("@swapkit/wallet-extensions/noir-wallet")).noirWallet) + .with(NOIR_WALLET, async () => (await import("@swapkit/wallet-extensions/noir-wallet")).noirWallet) .with(WalletOption.PHANTOM, async () => (await import("@swapkit/wallet-extensions/phantom")).phantomWallet) .with(WalletOption.POLKADOT_JS, async () => (await import("@swapkit/wallet-extensions/polkadotjs")).polkadotWallet) .with(WalletOption.RADIX_WALLET, async () => (await import("./radix")).radixWallet) From 189865bd1f7d2a2aee189d68afe47a3310107b0f Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 25 Aug 2026 16:24:46 +0400 Subject: [PATCH 3/9] chore: adopt @swapkit 2026-08-25 release (helpers 5.1.0 registry) Bump @swapkit/* ranges to today's sdk release train so every package resolves the single helpers@5.1.0 copy carrying the extensible WalletOption/error registries (swapkit/sdk#346). Lockfile regenerated with the CI-pinned bun 1.3.13 from a clean node_modules. Co-Authored-By: Claude Fable 5 --- bun.lock | 222 +++++++++++++++++++----- package.json | 14 +- packages/sdk/package.json | 14 +- packages/wallet-extensions/package.json | 6 +- packages/wallet-hardware/package.json | 6 +- packages/wallet-mobile/package.json | 6 +- packages/wallets/package.json | 6 +- 7 files changed, 207 insertions(+), 67 deletions(-) diff --git a/bun.lock b/bun.lock index 117e7ce..3f11716 100644 --- a/bun.lock +++ b/bun.lock @@ -15,13 +15,13 @@ "@cosmjs/proto-signing": "0.37.0", "@cosmjs/stargate": "0.37.0", "@scure/bip32": "2.2.0", - "@swapkit/core": "^5.0.2", - "@swapkit/helpers": "^5.0.2", - "@swapkit/plugins": "^5.0.0", - "@swapkit/server": "^5.0.0", - "@swapkit/toolboxes": "^5.1.1", - "@swapkit/wallet-core": "^5.0.0", - "@swapkit/wallet-keystore": "^5.0.0", + "@swapkit/core": "^5.0.3", + "@swapkit/helpers": "^5.1.0", + "@swapkit/plugins": "^5.0.3", + "@swapkit/server": "^5.1.1", + "@swapkit/toolboxes": "^5.1.2", + "@swapkit/wallet-core": "^5.0.3", + "@swapkit/wallet-keystore": "^5.0.3", "@types/bun": "1.3.13", "@types/node": "25.6.0", "ledger-bitcoin": "0.3.0", @@ -31,23 +31,23 @@ }, "packages/sdk": { "name": "@swapkit/sdk", - "version": "4.6.47", + "version": "4.6.48", "dependencies": { "@stricahq/typhonjs": "~3.0.1", - "@swapkit/core": "^5.0.2", - "@swapkit/helpers": "^5.0.2", - "@swapkit/plugins": "^5.0.0", - "@swapkit/server": "^5.0.0", - "@swapkit/toolboxes": "^5.1.1", - "@swapkit/wallet-core": "^5.0.0", - "@swapkit/wallet-keystore": "^5.0.0", + "@swapkit/core": "^5.0.3", + "@swapkit/helpers": "^5.1.0", + "@swapkit/plugins": "^5.0.3", + "@swapkit/server": "^5.1.1", + "@swapkit/toolboxes": "^5.1.2", + "@swapkit/wallet-core": "^5.0.3", + "@swapkit/wallet-keystore": "^5.0.3", "@swapkit/wallets": "workspace:*", "cosmjs-types": "0.10.1", }, }, "packages/wallet-extensions": { "name": "@swapkit/wallet-extensions", - "version": "4.5.29", + "version": "4.5.30", "dependencies": { "@aptos-labs/ts-sdk": "~1.34.0", "@cosmjs/amino": "~0.37.0", @@ -59,10 +59,10 @@ "@near-js/transactions": "~2.5.0", "@scure/base": "~2.2.0", "@solana/web3.js": "~1.98.4", - "@swapkit/helpers": "^5.0.2", - "@swapkit/toolboxes": "^5.1.1", + "@swapkit/helpers": "^5.1.0", + "@swapkit/toolboxes": "^5.1.2", "@swapkit/utxo-signer": "^3.0.0", - "@swapkit/wallet-core": "^5.0.0", + "@swapkit/wallet-core": "^5.0.3", "@wallet-standard/app": "^1.1.1", "cosmjs-types": "0.10.1", "ethers": "^6.14.0", @@ -89,7 +89,7 @@ }, "packages/wallet-hardware": { "name": "@swapkit/wallet-hardware", - "version": "4.9.31", + "version": "4.9.32", "dependencies": { "@cosmjs/amino": "~0.37.0", "@cosmjs/crypto": "0.37.0", @@ -112,10 +112,10 @@ "@near-js/transactions": "~2.5.0", "@scure/base": "2.2.0", "@scure/bip32": "2.2.0", - "@swapkit/helpers": "^5.0.2", - "@swapkit/toolboxes": "^5.1.1", + "@swapkit/helpers": "^5.1.0", + "@swapkit/toolboxes": "^5.1.2", "@swapkit/utxo-signer": "^3.0.0", - "@swapkit/wallet-core": "^5.0.0", + "@swapkit/wallet-core": "^5.0.3", "@trezor/connect-web": "~9.7.3", "cosmjs-types": "~0.10.1", "ethers": "^6.14.0", @@ -157,16 +157,16 @@ }, "packages/wallet-mobile": { "name": "@swapkit/wallet-mobile", - "version": "4.3.22", + "version": "4.3.23", "dependencies": { - "@swapkit/helpers": "^5.0.2", - "@swapkit/toolboxes": "^5.1.1", - "@swapkit/wallet-core": "^5.0.0", + "@swapkit/helpers": "^5.1.0", + "@swapkit/toolboxes": "^5.1.2", + "@swapkit/wallet-core": "^5.0.3", }, }, "packages/wallets": { "name": "@swapkit/wallets", - "version": "4.11.0", + "version": "4.11.1", "dependencies": { "@coinbase/wallet-sdk": "~4.3.7", "@cosmjs/amino": "~0.37.0", @@ -184,10 +184,10 @@ "@scure/base": "~2.2.0", "@scure/bip39": "~2.2.0", "@solana/web3.js": "~1.98.4", - "@swapkit/helpers": "^5.0.2", - "@swapkit/toolboxes": "^5.1.1", + "@swapkit/helpers": "^5.1.0", + "@swapkit/toolboxes": "^5.1.2", "@swapkit/utxo-signer": "^3.0.0", - "@swapkit/wallet-core": "^5.0.0", + "@swapkit/wallet-core": "^5.0.3", "@swapkit/wallet-extensions": "workspace:*", "@swapkit/wallet-hardware": "workspace:*", "@ton/core": "~0.63.1", @@ -665,7 +665,7 @@ "@near-js/accounts": ["@near-js/accounts@2.5.1", "", { "dependencies": { "@near-js/crypto": "2.5.1", "@near-js/keystores": "2.5.1", "@near-js/providers": "2.5.1", "@near-js/signers": "2.5.1", "@near-js/tokens": "2.5.1", "@near-js/transactions": "2.5.1", "@near-js/types": "2.5.1", "@near-js/utils": "2.5.1", "@noble/hashes": "1.7.1", "borsh": "1.0.0", "depd": "2.0.0", "is-my-json-valid": "^2.20.6", "lru_map": "0.4.1", "near-abi": "0.2.0" } }, "sha512-L4/Z9Ujwnz8/uvOExESP6h0t/plu4/0SFrL+UJBnfO5LObVwnJH2KG6MCLONy8rKh1FZHOlT9LPhtG/6nUrvOQ=="], - "@near-js/crypto": ["@near-js/crypto@2.5.1", "", { "dependencies": { "@near-js/types": "2.5.1", "@near-js/utils": "2.5.1", "@noble/curves": "1.8.1", "@noble/hashes": "^1.7.1", "borsh": "1.0.0", "secp256k1": "5.0.1" } }, "sha512-Kb+bbnUrfvuzzed9hpLRpcIlCMOaQlw/7BxlZPCq8DggVaK1m0nKR1DHQs2cV0Q0WSKSk2UrFJho1dxeKL5alg=="], + "@near-js/crypto": ["@near-js/crypto@2.5.0", "", { "dependencies": { "@near-js/types": "2.5.0", "@near-js/utils": "2.5.0", "@noble/curves": "1.8.1", "@noble/hashes": "^1.7.1", "borsh": "1.0.0", "secp256k1": "5.0.1" } }, "sha512-bsMCasnjRne9j0u5DuKeO0/xwS49GgRrVxzmW9WRZ7yWWh0U8IidTxNHTL1QCDFJNwwzt9HDnuj8XeVhlpixww=="], "@near-js/keystores": ["@near-js/keystores@2.5.1", "", { "dependencies": { "@near-js/crypto": "2.5.1", "@near-js/types": "2.5.1" } }, "sha512-UlP3GXeDzRyUlL3qKZUkwSwbABDarhOqRRR0vcMBOOu+063GDULGio9GTWDvKDDi11nmfbhOzbiY5vXEW4jR8g=="], @@ -679,7 +679,7 @@ "@near-js/tokens": ["@near-js/tokens@2.5.1", "", {}, "sha512-doDtOaSA2FOsYzzwocg0L02z6ORNL7HFAuL455y2O38//F4C2jp+C9De9fWrItkrim2jKjoSR3UvO2AuVbwmWA=="], - "@near-js/transactions": ["@near-js/transactions@2.5.1", "", { "dependencies": { "@near-js/crypto": "2.5.1", "@near-js/types": "2.5.1", "@near-js/utils": "2.5.1", "@noble/hashes": "1.7.1", "borsh": "1.0.0" } }, "sha512-0svK5K6VqOciSIn9mxreyS0uQf8T1UZc71JBA6yrstpHJhltz/dvNUMY0FV+xHx3H/KAdvCMjX0VLEpyi08yWQ=="], + "@near-js/transactions": ["@near-js/transactions@2.5.0", "", { "dependencies": { "@near-js/crypto": "2.5.0", "@near-js/types": "2.5.0", "@near-js/utils": "2.5.0", "@noble/hashes": "1.7.1", "borsh": "1.0.0" } }, "sha512-gVhWS4T5VcLjyVaW8nxWxK7kcgbGgyJ0YVS+VmaFzQbSZKuYgNnQXxynTycFc34awTNbp3a4/MqAd8RgX9VIcg=="], "@near-js/types": ["@near-js/types@2.5.1", "", {}, "sha512-lUJJmbV6qcilIwswldeP7FIjkjTWvmtgI+yQHVmiBNRVjYvPMiQ/e9vs3SXE/cYtRluAdq0JHJwYoqhFb69mwA=="], @@ -1131,21 +1131,21 @@ "@swapkit/contracts": ["@swapkit/contracts@5.0.0", "", {}, "sha512-iqHjDIYr5dWiQRld7ks2sh/bxPQfkPrw96UpF135xePZJgcjufYPH4OBCoh6aY9JX0n5mr0QyIoe0PDrcBWWKw=="], - "@swapkit/core": ["@swapkit/core@5.0.2", "", { "dependencies": { "@swapkit/helpers": "5.0.2", "@swapkit/plugins": "5.0.2", "@swapkit/toolboxes": "5.1.1", "@swapkit/wallet-core": "5.0.2" }, "peerDependencies": { "@stricahq/typhonjs": "3.1.0", "@ton/core": "0.63.1", "cosmjs-types": "0.11.0", "ts-pattern": "5.9.0" } }, "sha512-J9cYBxjqOxSaILpNyH2AG4OHu8tMNvdm0NwJFP254Fizlm7Xftvuyx8OXduIZyWwneoUfTzTsmIl7/rIwuReUQ=="], + "@swapkit/core": ["@swapkit/core@5.0.3", "", { "dependencies": { "@swapkit/helpers": "5.1.0", "@swapkit/plugins": "5.0.3", "@swapkit/toolboxes": "5.1.2", "@swapkit/wallet-core": "5.0.3" }, "peerDependencies": { "@stricahq/typhonjs": "3.1.0", "@ton/core": "0.63.1", "cosmjs-types": "0.11.0", "ts-pattern": "5.9.0" } }, "sha512-9XDNdcv6FZkiAyCr5ayH/VDHLzF3Ey/RE0Kwm+uqfqBLWkCZ3wILP8Z9YdNrQCNRPCq2TFgKLeSeSCZO1YV85w=="], "@swapkit/cosmos-signer": ["@swapkit/cosmos-signer@0.2.0", "", { "peerDependencies": { "@noble/curves": "2.2.0", "@noble/hashes": "2.2.0", "@scure/base": "2.2.0", "@scure/bip32": "2.2.0", "@scure/bip39": "2.2.0", "cosmjs-types": "0.11.0" } }, "sha512-++NFJuxvIzD9zZsbr69asbtZOgTsnuXHZm5/iKKup8SGdl0WeNlXk2LMDY8YNtEyNYwzzj3jTcAbVvDZQWzLmQ=="], - "@swapkit/helpers": ["@swapkit/helpers@5.0.2", "", { "dependencies": { "@noble/hashes": "2.2.0", "@swapkit/contracts": "5.0.0", "@swapkit/tokens": "5.0.2", "@swapkit/types": "1.0.1" }, "peerDependencies": { "ts-pattern": "5.9.0", "zod": "4.4.3", "zustand": "5.0.13" } }, "sha512-o4cLjYxoXfnIcxhsO+Pbdj/MqIHRt26/tyiiklpu5VORlQcyB86TCf71NOVRhVFUg5/IFFOp4soMQFvhPu2VQw=="], + "@swapkit/helpers": ["@swapkit/helpers@5.1.0", "", { "dependencies": { "@noble/hashes": "2.2.0", "@swapkit/contracts": "5.0.0", "@swapkit/tokens": "5.0.3", "@swapkit/types": "1.0.1" }, "peerDependencies": { "ts-pattern": "5.9.0", "zod": "4.4.3", "zustand": "5.0.13" } }, "sha512-zdAmjnR58fzF61QV65tgb6xAo/prU6T772y4OSOyswTD1SxO8nYIil8xss+XIDHDj9gD4SEFhyFpgcyhA+rrgg=="], - "@swapkit/plugins": ["@swapkit/plugins@5.0.2", "", { "dependencies": { "@swapkit/helpers": "5.0.2", "@swapkit/toolboxes": "5.1.1", "@swapkit/utxo-signer": "3.0.0" }, "peerDependencies": { "@mysten/sui": "2.17.0", "@near-js/transactions": "2.5.1", "@near-js/utils": "2.5.1", "@noble/hashes": "2.2.0", "@scure/base": "2.2.0", "@solana/web3.js": "1.98.4", "@stellar/stellar-sdk": "16.1.0", "ethers": "6.16.0", "ts-pattern": "5.9.0" } }, "sha512-5Oxsy5QVt5lB/d80J7xnPxpld8DJUQ9V74HGX1GknrRfvJl8FSm2weOa4W1YlsPvJ5/xc9PXBhwC2WD3Vjzf9g=="], + "@swapkit/plugins": ["@swapkit/plugins@5.0.3", "", { "dependencies": { "@swapkit/helpers": "5.1.0", "@swapkit/toolboxes": "5.1.2", "@swapkit/utxo-signer": "3.0.0" }, "peerDependencies": { "@mysten/sui": "2.17.0", "@near-js/transactions": "2.5.1", "@near-js/utils": "2.5.1", "@noble/hashes": "2.2.0", "@scure/base": "2.2.0", "@solana/web3.js": "1.98.4", "@stellar/stellar-sdk": "16.1.0", "ethers": "6.16.0", "ts-pattern": "5.9.0" } }, "sha512-2nrj7aUDccRO2pJTreq5VWGv1cSWVg9a5s9ZDvJC66Vqj7bXMf5YzKuMmc3Ynm1XHQ39fhGbLyzsC+P3FllX5w=="], "@swapkit/sdk": ["@swapkit/sdk@workspace:packages/sdk"], - "@swapkit/server": ["@swapkit/server@5.1.0", "", { "dependencies": { "@swapkit/helpers": "5.0.2", "@swapkit/tokens": "5.0.2", "@swapkit/toolboxes": "5.1.1", "@swapkit/wallet-keystore": "5.0.2" }, "peerDependencies": { "ts-pattern": "5.9.0" } }, "sha512-7zC300r37Bs8urVDEj3aDAdQRXl46wrMDyXdr+Qr0/8TzcusMDx/f8DPDGt2BRz1TY+skjGbpcc/xQfueyT5TA=="], + "@swapkit/server": ["@swapkit/server@5.1.1", "", { "dependencies": { "@swapkit/helpers": "5.1.0", "@swapkit/tokens": "5.0.3", "@swapkit/toolboxes": "5.1.2", "@swapkit/wallet-keystore": "5.0.3" }, "peerDependencies": { "ts-pattern": "5.9.0" } }, "sha512-+maFtVW7VVHDHQe6NkRWQgKFOP9Mtv74Q5pVk9jx0R7MgiRdz6OPbAn/MzXJ3SCxOCDvfeWHlvQWfajqmbiq3A=="], - "@swapkit/tokens": ["@swapkit/tokens@5.0.2", "", { "peerDependencies": { "ts-pattern": "5.9.0" } }, "sha512-32zHRhy560xQ/JSF1KNJrJW6+nLdw6mUPZVSvV4ZcTyS4p8b+rz2bDnlf6p9sSVhuubp3KlXJOHYkTy/D9Vmig=="], + "@swapkit/tokens": ["@swapkit/tokens@5.0.3", "", { "peerDependencies": { "ts-pattern": "5.9.0" } }, "sha512-/5ii1kdxBT2+zU63RU1MsRe7juxfAGR+cNytqFd2JgYG2+BmCGdzz6aoBC22wxdwPFU6cfC9r7xe0qJdAxWpvQ=="], - "@swapkit/toolboxes": ["@swapkit/toolboxes@5.1.1", "", { "dependencies": { "@swapkit/helpers": "5.0.2", "@swapkit/utxo-signer": "3.0.0" }, "peerDependencies": { "@aptos-labs/ts-sdk": "7.0.1", "@mysten/sui": "2.17.0", "@near-js/accounts": "2.5.1", "@near-js/crypto": "2.5.1", "@near-js/providers": "2.5.1", "@near-js/signers": "2.5.1", "@near-js/transactions": "2.5.1", "@near-js/utils": "2.5.1", "@noble/curves": "2.2.0", "@noble/hashes": "2.2.0", "@orbs-network/ton-access": "2.3.3", "@polkadot/api": "16.5.6", "@polkadot/keyring": "14.0.3", "@polkadot/rpc-provider": "16.5.6", "@polkadot/util": "14.0.3", "@polkadot/util-crypto": "14.0.3", "@provablehq/sdk": "0.11.3", "@radixdlt/babylon-gateway-api-sdk": "1.10.1", "@radixdlt/radix-dapp-toolkit": "2.3.0", "@scure/base": "2.2.0", "@scure/bip32": "2.2.0", "@scure/bip39": "2.2.0", "@solana/spl-memo": "0.2.5", "@solana/spl-token": "0.4.14", "@solana/web3.js": "1.98.4", "@stellar/stellar-sdk": "16.1.0", "@stricahq/bip32ed25519": "1.1.2", "@stricahq/cbors": "1.0.4", "@stricahq/typhonjs": "3.1.0", "@swapkit/cosmos-signer": "0.2.0", "@ton/core": "0.63.1", "@ton/crypto": "3.3.0", "@ton/ton": "16.2.4", "bignumber.js": "9.3.1", "cosmjs-types": "0.11.0", "ethers": "6.16.0", "micro-key-producer": "0.8.6", "near-seed-phrase": "0.2.1", "protobufjs": "8.0.3", "ripple-address-codec": "5.0.1", "starknet": "10.0.2", "ts-pattern": "5.9.0", "xrpl": "4.6.0" } }, "sha512-ZopaAv3ZJZ4bBspk/0ElCqJPxAHzhS45gbPeipWXuuigtgGeWFMQaWI6oVcI+vakSqlWldhyqhIoZGF3FgVNOA=="], + "@swapkit/toolboxes": ["@swapkit/toolboxes@5.1.2", "", { "dependencies": { "@swapkit/helpers": "5.1.0", "@swapkit/utxo-signer": "3.0.0" }, "peerDependencies": { "@aptos-labs/ts-sdk": "7.0.1", "@mysten/sui": "2.17.0", "@near-js/accounts": "2.5.1", "@near-js/crypto": "2.5.1", "@near-js/providers": "2.5.1", "@near-js/signers": "2.5.1", "@near-js/transactions": "2.5.1", "@near-js/utils": "2.5.1", "@noble/curves": "2.2.0", "@noble/hashes": "2.2.0", "@orbs-network/ton-access": "2.3.3", "@polkadot/api": "16.5.6", "@polkadot/keyring": "14.0.3", "@polkadot/rpc-provider": "16.5.6", "@polkadot/util": "14.0.3", "@polkadot/util-crypto": "14.0.3", "@provablehq/sdk": "0.11.3", "@radixdlt/babylon-gateway-api-sdk": "1.10.1", "@radixdlt/radix-dapp-toolkit": "2.3.0", "@scure/base": "2.2.0", "@scure/bip32": "2.2.0", "@scure/bip39": "2.2.0", "@solana/spl-memo": "0.2.5", "@solana/spl-token": "0.4.14", "@solana/web3.js": "1.98.4", "@stellar/stellar-sdk": "16.1.0", "@stricahq/bip32ed25519": "1.1.2", "@stricahq/cbors": "1.0.4", "@stricahq/typhonjs": "3.1.0", "@swapkit/cosmos-signer": "0.2.0", "@ton/core": "0.63.1", "@ton/crypto": "3.3.0", "@ton/ton": "16.2.4", "bignumber.js": "9.3.1", "cosmjs-types": "0.11.0", "ethers": "6.16.0", "micro-key-producer": "0.8.6", "near-seed-phrase": "0.2.1", "protobufjs": "8.0.3", "ripple-address-codec": "5.0.1", "starknet": "10.0.2", "ts-pattern": "5.9.0", "xrpl": "4.6.0" } }, "sha512-gNj6sOjuvPMQpHS2TcAsX0UeeQfgbxhgJX1j5q5e/tN3BK+E7wt0mXnWfwhtw3WeWc9oEfBx1XEwd0DLQOFu8w=="], "@swapkit/types": ["@swapkit/types@1.0.1", "", {}, "sha512-LMBtyw20Udf913p8//tiE8gk80Zcnbg0VSkgczctZUMSg/OZ4FuBmaOlacrFJA45FqNR7npYgdusgOzIGiWYVg=="], @@ -1153,13 +1153,13 @@ "@swapkit/utxo-signer": ["@swapkit/utxo-signer@3.0.0", "", { "peerDependencies": { "@noble/curves": "2.2.0", "@noble/hashes": "2.2.0", "@scure/base": "2.2.0", "micro-packed": "0.9.0" } }, "sha512-naPyfACwNmQPtoaa4QNXuIsZQLPYNJKt0eFjWK3LatqIhw3BTAnd6Fxaha66Ec3xebn1wr0v1gbzAIkWPwYSHw=="], - "@swapkit/wallet-core": ["@swapkit/wallet-core@5.0.2", "", { "dependencies": { "@swapkit/helpers": "5.0.2" } }, "sha512-McFuhAKzrarQzA+8QD2mO4H1Ti1zoVt3hmqPohXooofZc0iSZPSGm83jSxW/QelnTe/ZXJSoRHb9ZZDRl2oGrg=="], + "@swapkit/wallet-core": ["@swapkit/wallet-core@5.0.3", "", { "dependencies": { "@swapkit/helpers": "5.1.0" } }, "sha512-VmzgXeovQDW2HFmpcsdbhOJ1P4yxzTRDQ+LxSpf1va5dUSxZZI/wPnvrrfPAOTzEBFsL3FQWRPhbMlXtKAShag=="], "@swapkit/wallet-extensions": ["@swapkit/wallet-extensions@workspace:packages/wallet-extensions"], "@swapkit/wallet-hardware": ["@swapkit/wallet-hardware@workspace:packages/wallet-hardware"], - "@swapkit/wallet-keystore": ["@swapkit/wallet-keystore@5.0.2", "", { "dependencies": { "@swapkit/helpers": "5.0.2", "@swapkit/toolboxes": "5.1.1", "@swapkit/wallet-core": "5.0.2" }, "peerDependencies": { "@noble/hashes": "2.2.0", "@scure/bip39": "2.2.0" } }, "sha512-qeVADbUWYkcEVmamLjGvBgwrDleFWGraNgwt+NLFGLuaeWUboqmrvXcghVoyqZGE1VfnpEDQG7iC93HaNtY7KA=="], + "@swapkit/wallet-keystore": ["@swapkit/wallet-keystore@5.0.3", "", { "dependencies": { "@swapkit/helpers": "5.1.0", "@swapkit/toolboxes": "5.1.2", "@swapkit/wallet-core": "5.0.3" }, "peerDependencies": { "@noble/hashes": "2.2.0", "@scure/bip39": "2.2.0" } }, "sha512-Acyn8QiU4R/btGrCRiNPeiwjgmQOjLFWw8DyJ3859cXbB2HVtV+jIqTxiQF1i1F2YmbNXP//iuAWB2cNwFJ9Cg=="], "@swapkit/wallet-mobile": ["@swapkit/wallet-mobile@workspace:packages/wallet-mobile"], @@ -2665,12 +2665,22 @@ "@mysten/utils/@scure/base": ["@scure/base@1.2.6", "", {}, "sha512-g/nm5FgUa//MCj1gV09zTJTaM6KBAHqLN907YVQqf7zC49+DcO4B1so4ZX07Ef10Twr6nuqYEH9GEggFXA4Fmg=="], + "@near-js/accounts/@near-js/crypto": ["@near-js/crypto@2.5.1", "", { "dependencies": { "@near-js/types": "2.5.1", "@near-js/utils": "2.5.1", "@noble/curves": "1.8.1", "@noble/hashes": "^1.7.1", "borsh": "1.0.0", "secp256k1": "5.0.1" } }, "sha512-Kb+bbnUrfvuzzed9hpLRpcIlCMOaQlw/7BxlZPCq8DggVaK1m0nKR1DHQs2cV0Q0WSKSk2UrFJho1dxeKL5alg=="], + + "@near-js/accounts/@near-js/transactions": ["@near-js/transactions@2.5.1", "", { "dependencies": { "@near-js/crypto": "2.5.1", "@near-js/types": "2.5.1", "@near-js/utils": "2.5.1", "@noble/hashes": "1.7.1", "borsh": "1.0.0" } }, "sha512-0svK5K6VqOciSIn9mxreyS0uQf8T1UZc71JBA6yrstpHJhltz/dvNUMY0FV+xHx3H/KAdvCMjX0VLEpyi08yWQ=="], + "@near-js/accounts/@noble/hashes": ["@noble/hashes@1.7.1", "", {}, "sha512-B8XBPsn4vT/KJAGqDzbwztd+6Yte3P4V7iafm24bxgDe/mlRuK6xmWPuCNrKt2vDafZ8MfJLlchDG/vYafQEjQ=="], + "@near-js/crypto/@near-js/types": ["@near-js/types@2.5.0", "", {}, "sha512-U0HgAnRwN/XKJ1O4Htac+G5bvkMalBJ8i/kwAPJpoOI1MUtP9dhbCG4GBErADCpczukhrAWlDBHHdfhPnhgyzQ=="], + + "@near-js/crypto/@near-js/utils": ["@near-js/utils@2.5.0", "", { "dependencies": { "@near-js/types": "2.5.0", "@scure/base": "^1.2.4", "depd": "2.0.0", "mustache": "4.0.0" } }, "sha512-hifdeZVzV9TFcgLNekRVVnB6q7zxdCQPmC9cybT1SjfeiIP/5jPabOZXGWNJPSloRcrTMluCTtaWinIw1HXanQ=="], + "@near-js/crypto/@noble/curves": ["@noble/curves@1.8.1", "", { "dependencies": { "@noble/hashes": "1.7.1" } }, "sha512-warwspo+UYUPep0Q+vtdVB4Ugn8GGQj8iyB3gnRWsztmUHTI3S1nhdiWNsPUGL0vud7JlRRk1XEu7Lq1KGTnMQ=="], "@near-js/crypto/@noble/hashes": ["@noble/hashes@1.8.0", "", {}, "sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A=="], + "@near-js/keystores/@near-js/crypto": ["@near-js/crypto@2.5.1", "", { "dependencies": { "@near-js/types": "2.5.1", "@near-js/utils": "2.5.1", "@noble/curves": "1.8.1", "@noble/hashes": "^1.7.1", "borsh": "1.0.0", "secp256k1": "5.0.1" } }, "sha512-Kb+bbnUrfvuzzed9hpLRpcIlCMOaQlw/7BxlZPCq8DggVaK1m0nKR1DHQs2cV0Q0WSKSk2UrFJho1dxeKL5alg=="], + "@near-js/keystores-browser/@near-js/crypto": ["@near-js/crypto@1.2.1", "", { "dependencies": { "@near-js/types": "0.0.4", "@near-js/utils": "0.1.0", "@noble/curves": "1.2.0", "bn.js": "5.2.1", "borsh": "1.0.0", "randombytes": "2.1.0" } }, "sha512-iJOHaGKvdudYfR8nEtRhGlgcTEHeVmxMoT0JVXmuP3peG96v/sSnA03CE6MZBeCC8txKAQOffagxE7oU6hJp9g=="], "@near-js/keystores-browser/@near-js/keystores": ["@near-js/keystores@0.0.9", "", { "dependencies": { "@near-js/crypto": "1.2.1", "@near-js/types": "0.0.4" } }, "sha512-j8ySgVEcm2Gg6zxkSdadNtPlIqhJZdPGfWWM3tPtEoowNS9snhwZn5NRFPrgmX0+MzpF7E091CRcY90MvRVhsg=="], @@ -2679,10 +2689,22 @@ "@near-js/keystores-node/@near-js/keystores": ["@near-js/keystores@0.0.9", "", { "dependencies": { "@near-js/crypto": "1.2.1", "@near-js/types": "0.0.4" } }, "sha512-j8ySgVEcm2Gg6zxkSdadNtPlIqhJZdPGfWWM3tPtEoowNS9snhwZn5NRFPrgmX0+MzpF7E091CRcY90MvRVhsg=="], + "@near-js/providers/@near-js/crypto": ["@near-js/crypto@2.5.1", "", { "dependencies": { "@near-js/types": "2.5.1", "@near-js/utils": "2.5.1", "@noble/curves": "1.8.1", "@noble/hashes": "^1.7.1", "borsh": "1.0.0", "secp256k1": "5.0.1" } }, "sha512-Kb+bbnUrfvuzzed9hpLRpcIlCMOaQlw/7BxlZPCq8DggVaK1m0nKR1DHQs2cV0Q0WSKSk2UrFJho1dxeKL5alg=="], + + "@near-js/providers/@near-js/transactions": ["@near-js/transactions@2.5.1", "", { "dependencies": { "@near-js/crypto": "2.5.1", "@near-js/types": "2.5.1", "@near-js/utils": "2.5.1", "@noble/hashes": "1.7.1", "borsh": "1.0.0" } }, "sha512-0svK5K6VqOciSIn9mxreyS0uQf8T1UZc71JBA6yrstpHJhltz/dvNUMY0FV+xHx3H/KAdvCMjX0VLEpyi08yWQ=="], + "@near-js/providers/node-fetch": ["node-fetch@2.6.7", "", { "dependencies": { "whatwg-url": "^5.0.0" }, "peerDependencies": { "encoding": "^0.1.0" }, "optionalPeers": ["encoding"] }, "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ=="], + "@near-js/signers/@near-js/crypto": ["@near-js/crypto@2.5.1", "", { "dependencies": { "@near-js/types": "2.5.1", "@near-js/utils": "2.5.1", "@noble/curves": "1.8.1", "@noble/hashes": "^1.7.1", "borsh": "1.0.0", "secp256k1": "5.0.1" } }, "sha512-Kb+bbnUrfvuzzed9hpLRpcIlCMOaQlw/7BxlZPCq8DggVaK1m0nKR1DHQs2cV0Q0WSKSk2UrFJho1dxeKL5alg=="], + + "@near-js/signers/@near-js/transactions": ["@near-js/transactions@2.5.1", "", { "dependencies": { "@near-js/crypto": "2.5.1", "@near-js/types": "2.5.1", "@near-js/utils": "2.5.1", "@noble/hashes": "1.7.1", "borsh": "1.0.0" } }, "sha512-0svK5K6VqOciSIn9mxreyS0uQf8T1UZc71JBA6yrstpHJhltz/dvNUMY0FV+xHx3H/KAdvCMjX0VLEpyi08yWQ=="], + "@near-js/signers/@noble/hashes": ["@noble/hashes@1.7.1", "", {}, "sha512-B8XBPsn4vT/KJAGqDzbwztd+6Yte3P4V7iafm24bxgDe/mlRuK6xmWPuCNrKt2vDafZ8MfJLlchDG/vYafQEjQ=="], + "@near-js/transactions/@near-js/types": ["@near-js/types@2.5.0", "", {}, "sha512-U0HgAnRwN/XKJ1O4Htac+G5bvkMalBJ8i/kwAPJpoOI1MUtP9dhbCG4GBErADCpczukhrAWlDBHHdfhPnhgyzQ=="], + + "@near-js/transactions/@near-js/utils": ["@near-js/utils@2.5.0", "", { "dependencies": { "@near-js/types": "2.5.0", "@scure/base": "^1.2.4", "depd": "2.0.0", "mustache": "4.0.0" } }, "sha512-hifdeZVzV9TFcgLNekRVVnB6q7zxdCQPmC9cybT1SjfeiIP/5jPabOZXGWNJPSloRcrTMluCTtaWinIw1HXanQ=="], + "@near-js/transactions/@noble/hashes": ["@noble/hashes@1.7.1", "", {}, "sha512-B8XBPsn4vT/KJAGqDzbwztd+6Yte3P4V7iafm24bxgDe/mlRuK6xmWPuCNrKt2vDafZ8MfJLlchDG/vYafQEjQ=="], "@near-js/utils/@scure/base": ["@scure/base@1.2.6", "", {}, "sha512-g/nm5FgUa//MCj1gV09zTJTaM6KBAHqLN907YVQqf7zC49+DcO4B1so4ZX07Ef10Twr6nuqYEH9GEggFXA4Fmg=="], @@ -2703,6 +2725,10 @@ "@near-js/wallet-account/bn.js": ["bn.js@5.2.1", "", {}, "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ=="], + "@near-wallet-selector/core/@near-js/crypto": ["@near-js/crypto@2.5.1", "", { "dependencies": { "@near-js/types": "2.5.1", "@near-js/utils": "2.5.1", "@noble/curves": "1.8.1", "@noble/hashes": "^1.7.1", "borsh": "1.0.0", "secp256k1": "5.0.1" } }, "sha512-Kb+bbnUrfvuzzed9hpLRpcIlCMOaQlw/7BxlZPCq8DggVaK1m0nKR1DHQs2cV0Q0WSKSk2UrFJho1dxeKL5alg=="], + + "@near-wallet-selector/core/@near-js/transactions": ["@near-js/transactions@2.5.1", "", { "dependencies": { "@near-js/crypto": "2.5.1", "@near-js/types": "2.5.1", "@near-js/utils": "2.5.1", "@noble/hashes": "1.7.1", "borsh": "1.0.0" } }, "sha512-0svK5K6VqOciSIn9mxreyS0uQf8T1UZc71JBA6yrstpHJhltz/dvNUMY0FV+xHx3H/KAdvCMjX0VLEpyi08yWQ=="], + "@near-wallet-selector/core/borsh": ["borsh@2.0.0", "", {}, "sha512-kc9+BgR3zz9+cjbwM8ODoUB4fs3X3I5A/HtX7LZKxCLaMrEeDFoBpnhZY//DTS1VZBSs6S5v46RZRbZjRFspEg=="], "@near-wallet-selector/core/rxjs": ["rxjs@7.8.1", "", { "dependencies": { "tslib": "^2.1.0" } }, "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg=="], @@ -2897,6 +2923,12 @@ "@swapkit/cosmos-signer/cosmjs-types": ["cosmjs-types@0.11.0", "", {}, "sha512-kDSkgHpRTrg1413jCNehT3P21+EBxZWFMBr9JEzVfmPiNdtuwAoLAkCYo7c7i/pTakAwyHsXbxOg8kkD+AN33w=="], + "@swapkit/plugins/@near-js/transactions": ["@near-js/transactions@2.5.1", "", { "dependencies": { "@near-js/crypto": "2.5.1", "@near-js/types": "2.5.1", "@near-js/utils": "2.5.1", "@noble/hashes": "1.7.1", "borsh": "1.0.0" } }, "sha512-0svK5K6VqOciSIn9mxreyS0uQf8T1UZc71JBA6yrstpHJhltz/dvNUMY0FV+xHx3H/KAdvCMjX0VLEpyi08yWQ=="], + + "@swapkit/toolboxes/@near-js/crypto": ["@near-js/crypto@2.5.1", "", { "dependencies": { "@near-js/types": "2.5.1", "@near-js/utils": "2.5.1", "@noble/curves": "1.8.1", "@noble/hashes": "^1.7.1", "borsh": "1.0.0", "secp256k1": "5.0.1" } }, "sha512-Kb+bbnUrfvuzzed9hpLRpcIlCMOaQlw/7BxlZPCq8DggVaK1m0nKR1DHQs2cV0Q0WSKSk2UrFJho1dxeKL5alg=="], + + "@swapkit/toolboxes/@near-js/transactions": ["@near-js/transactions@2.5.1", "", { "dependencies": { "@near-js/crypto": "2.5.1", "@near-js/types": "2.5.1", "@near-js/utils": "2.5.1", "@noble/hashes": "1.7.1", "borsh": "1.0.0" } }, "sha512-0svK5K6VqOciSIn9mxreyS0uQf8T1UZc71JBA6yrstpHJhltz/dvNUMY0FV+xHx3H/KAdvCMjX0VLEpyi08yWQ=="], + "@swapkit/toolboxes/@stricahq/typhonjs": ["@stricahq/typhonjs@3.1.0", "", { "dependencies": { "@stricahq/cbors": "1.0.2", "bech32": "^2.0.0", "bignumber.js": "^9.0.1", "blakejs": "^1.2.1", "bs58": "^5.0.0", "buffer": "^6.0.3", "lodash": "^4.17.21" } }, "sha512-Eaw0qqNIz+6sA9zD/9pFCdQ+gNbCv8PKFMhXu4Vq6KSR1XsH40jNPFkrqgKaq8q+gbO569U1+tu41dHk40JNbw=="], "@swapkit/toolboxes/cosmjs-types": ["cosmjs-types@0.11.0", "", {}, "sha512-kDSkgHpRTrg1413jCNehT3P21+EBxZWFMBr9JEzVfmPiNdtuwAoLAkCYo7c7i/pTakAwyHsXbxOg8kkD+AN33w=="], @@ -2909,6 +2941,10 @@ "@swapkit/ui/@cosmjs/stargate": ["@cosmjs/stargate@0.39.0", "", { "dependencies": { "@cosmjs/amino": "^0.39.0", "@cosmjs/encoding": "^0.39.0", "@cosmjs/math": "^0.39.0", "@cosmjs/proto-signing": "^0.39.0", "@cosmjs/stream": "^0.39.0", "@cosmjs/tendermint-rpc": "^0.39.0", "@cosmjs/utils": "^0.39.0", "cosmjs-types": "^0.11.0" } }, "sha512-dQtucU9czF2NUUbEKs19PMfv+EusDFKWHMVK6Hinytmpq9sdk5JUIln+g/8k+UjKcV4HPv6S0AywbhE+tl84kQ=="], + "@swapkit/ui/@near-js/crypto": ["@near-js/crypto@2.5.1", "", { "dependencies": { "@near-js/types": "2.5.1", "@near-js/utils": "2.5.1", "@noble/curves": "1.8.1", "@noble/hashes": "^1.7.1", "borsh": "1.0.0", "secp256k1": "5.0.1" } }, "sha512-Kb+bbnUrfvuzzed9hpLRpcIlCMOaQlw/7BxlZPCq8DggVaK1m0nKR1DHQs2cV0Q0WSKSk2UrFJho1dxeKL5alg=="], + + "@swapkit/ui/@near-js/transactions": ["@near-js/transactions@2.5.1", "", { "dependencies": { "@near-js/crypto": "2.5.1", "@near-js/types": "2.5.1", "@near-js/utils": "2.5.1", "@noble/hashes": "1.7.1", "borsh": "1.0.0" } }, "sha512-0svK5K6VqOciSIn9mxreyS0uQf8T1UZc71JBA6yrstpHJhltz/dvNUMY0FV+xHx3H/KAdvCMjX0VLEpyi08yWQ=="], + "@swapkit/ui/@stricahq/typhonjs": ["@stricahq/typhonjs@3.1.0", "", { "dependencies": { "@stricahq/cbors": "1.0.2", "bech32": "^2.0.0", "bignumber.js": "^9.0.1", "blakejs": "^1.2.1", "bs58": "^5.0.0", "buffer": "^6.0.3", "lodash": "^4.17.21" } }, "sha512-Eaw0qqNIz+6sA9zD/9pFCdQ+gNbCv8PKFMhXu4Vq6KSR1XsH40jNPFkrqgKaq8q+gbO569U1+tu41dHk40JNbw=="], "@swapkit/ui/@swapkit/core": ["@swapkit/core@4.6.4", "", { "dependencies": { "@swapkit/helpers": "4.20.1", "@swapkit/plugins": "4.7.4", "@swapkit/toolboxes": "4.28.0", "@swapkit/wallet-core": "4.3.21" }, "peerDependencies": { "@stricahq/typhonjs": "3.1.0", "@ton/core": "0.63.1", "cosmjs-types": "0.11.0", "ts-pattern": "5.9.0" } }, "sha512-0nwvzI7dOy9uieMXcJzTGe6DuQRurmj6DKV4+A4nYT2Me0OOFnfgxSJ+O2Z3qa4Z/KyO47mfOuHKmSXLKEwlLg=="], @@ -2933,14 +2969,24 @@ "@swapkit/wallet-extensions/@cosmjs/stargate": ["@cosmjs/stargate@0.37.1", "", { "dependencies": { "@cosmjs/amino": "^0.37.1", "@cosmjs/encoding": "^0.37.1", "@cosmjs/math": "^0.37.1", "@cosmjs/proto-signing": "^0.37.1", "@cosmjs/stream": "^0.37.1", "@cosmjs/tendermint-rpc": "^0.37.1", "@cosmjs/utils": "^0.37.1", "cosmjs-types": "^0.10.1" } }, "sha512-nQgaJB7A81cRYtmDrcIySq8hbd+QLXJTGFEs6R1xMdxascaABX0x86nS44ALk+EZojQQRnwupOsw1dKLlQmIFg=="], + "@swapkit/wallet-extensions/@near-js/crypto": ["@near-js/crypto@2.5.1", "", { "dependencies": { "@near-js/types": "2.5.1", "@near-js/utils": "2.5.1", "@noble/curves": "1.8.1", "@noble/hashes": "^1.7.1", "borsh": "1.0.0", "secp256k1": "5.0.1" } }, "sha512-Kb+bbnUrfvuzzed9hpLRpcIlCMOaQlw/7BxlZPCq8DggVaK1m0nKR1DHQs2cV0Q0WSKSk2UrFJho1dxeKL5alg=="], + + "@swapkit/wallet-extensions/@near-js/transactions": ["@near-js/transactions@2.5.1", "", { "dependencies": { "@near-js/crypto": "2.5.1", "@near-js/types": "2.5.1", "@near-js/utils": "2.5.1", "@noble/hashes": "1.7.1", "borsh": "1.0.0" } }, "sha512-0svK5K6VqOciSIn9mxreyS0uQf8T1UZc71JBA6yrstpHJhltz/dvNUMY0FV+xHx3H/KAdvCMjX0VLEpyi08yWQ=="], + "@swapkit/wallet-hardware/@cosmjs/amino": ["@cosmjs/amino@0.37.1", "", { "dependencies": { "@cosmjs/crypto": "^0.37.1", "@cosmjs/encoding": "^0.37.1", "@cosmjs/math": "^0.37.1", "@cosmjs/utils": "^0.37.1" } }, "sha512-z3QSfw2S2kGbi5XBahOdAIu2Nnb7XiLgTOphZQoOJXJcTQemAG/wYHLJD9TcQ48SX+eDTJ4i7XRyJaIdg0ClcA=="], "@swapkit/wallet-hardware/@cosmjs/proto-signing": ["@cosmjs/proto-signing@0.37.1", "", { "dependencies": { "@cosmjs/amino": "^0.37.1", "@cosmjs/crypto": "^0.37.1", "@cosmjs/encoding": "^0.37.1", "@cosmjs/math": "^0.37.1", "@cosmjs/utils": "^0.37.1", "cosmjs-types": "^0.10.1" } }, "sha512-cCUfejHOfjx6L/noF9QnXIy4dKoTKl56NFIqz2cizx+kZKszdL0yOtQlu0dD9nR+uMafRHU7aok6v5HH4RZIDw=="], + "@swapkit/wallet-hardware/@near-js/crypto": ["@near-js/crypto@2.5.1", "", { "dependencies": { "@near-js/types": "2.5.1", "@near-js/utils": "2.5.1", "@noble/curves": "1.8.1", "@noble/hashes": "^1.7.1", "borsh": "1.0.0", "secp256k1": "5.0.1" } }, "sha512-Kb+bbnUrfvuzzed9hpLRpcIlCMOaQlw/7BxlZPCq8DggVaK1m0nKR1DHQs2cV0Q0WSKSk2UrFJho1dxeKL5alg=="], + + "@swapkit/wallet-hardware/@near-js/transactions": ["@near-js/transactions@2.5.1", "", { "dependencies": { "@near-js/crypto": "2.5.1", "@near-js/types": "2.5.1", "@near-js/utils": "2.5.1", "@noble/hashes": "1.7.1", "borsh": "1.0.0" } }, "sha512-0svK5K6VqOciSIn9mxreyS0uQf8T1UZc71JBA6yrstpHJhltz/dvNUMY0FV+xHx3H/KAdvCMjX0VLEpyi08yWQ=="], + "@swapkit/wallets/@cosmjs/amino": ["@cosmjs/amino@0.37.1", "", { "dependencies": { "@cosmjs/crypto": "^0.37.1", "@cosmjs/encoding": "^0.37.1", "@cosmjs/math": "^0.37.1", "@cosmjs/utils": "^0.37.1" } }, "sha512-z3QSfw2S2kGbi5XBahOdAIu2Nnb7XiLgTOphZQoOJXJcTQemAG/wYHLJD9TcQ48SX+eDTJ4i7XRyJaIdg0ClcA=="], "@swapkit/wallets/@cosmjs/proto-signing": ["@cosmjs/proto-signing@0.37.1", "", { "dependencies": { "@cosmjs/amino": "^0.37.1", "@cosmjs/crypto": "^0.37.1", "@cosmjs/encoding": "^0.37.1", "@cosmjs/math": "^0.37.1", "@cosmjs/utils": "^0.37.1", "cosmjs-types": "^0.10.1" } }, "sha512-cCUfejHOfjx6L/noF9QnXIy4dKoTKl56NFIqz2cizx+kZKszdL0yOtQlu0dD9nR+uMafRHU7aok6v5HH4RZIDw=="], + "@swapkit/wallets/@near-js/transactions": ["@near-js/transactions@2.5.1", "", { "dependencies": { "@near-js/crypto": "2.5.1", "@near-js/types": "2.5.1", "@near-js/utils": "2.5.1", "@noble/hashes": "1.7.1", "borsh": "1.0.0" } }, "sha512-0svK5K6VqOciSIn9mxreyS0uQf8T1UZc71JBA6yrstpHJhltz/dvNUMY0FV+xHx3H/KAdvCMjX0VLEpyi08yWQ=="], + "@swc/helpers/tslib": ["tslib@2.8.1", "", {}, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="], "@ton/ton/axios": ["axios@1.15.0", "", { "dependencies": { "follow-redirects": "^1.15.11", "form-data": "^4.0.5", "proxy-from-env": "^2.1.0" } }, "sha512-wWyJDlAatxk30ZJer+GeCWS209sA42X+N5jU2jy6oHTp7ufw8uzUTVFBX9+wTfAlhiJXGS0Bq7X6efruWjuK9Q=="], @@ -3279,6 +3325,12 @@ "@mysten/sui/@scure/bip32/@noble/curves": ["@noble/curves@1.9.7", "", { "dependencies": { "@noble/hashes": "1.8.0" } }, "sha512-gbKGcRUYIjA3/zCCNaWDciTMFI0dCkvou3TL8Zmy5Nc7sJ47a0jtOeZoTaMxkuqRo9cRhjOdZJXegxYE5FN/xw=="], + "@near-js/accounts/@near-js/crypto/@noble/curves": ["@noble/curves@1.8.1", "", { "dependencies": { "@noble/hashes": "1.7.1" } }, "sha512-warwspo+UYUPep0Q+vtdVB4Ugn8GGQj8iyB3gnRWsztmUHTI3S1nhdiWNsPUGL0vud7JlRRk1XEu7Lq1KGTnMQ=="], + + "@near-js/accounts/@near-js/crypto/@noble/hashes": ["@noble/hashes@1.8.0", "", {}, "sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A=="], + + "@near-js/crypto/@near-js/utils/@scure/base": ["@scure/base@1.2.6", "", {}, "sha512-g/nm5FgUa//MCj1gV09zTJTaM6KBAHqLN907YVQqf7zC49+DcO4B1so4ZX07Ef10Twr6nuqYEH9GEggFXA4Fmg=="], + "@near-js/crypto/@noble/curves/@noble/hashes": ["@noble/hashes@1.7.1", "", {}, "sha512-B8XBPsn4vT/KJAGqDzbwztd+6Yte3P4V7iafm24bxgDe/mlRuK6xmWPuCNrKt2vDafZ8MfJLlchDG/vYafQEjQ=="], "@near-js/keystores-browser/@near-js/crypto/@near-js/types": ["@near-js/types@0.0.4", "", { "dependencies": { "bn.js": "5.2.1" } }, "sha512-8TTMbLMnmyG06R5YKWuS/qFG1tOA3/9lX4NgBqQPsvaWmDsa+D+QwOkrEHDegped0ZHQwcjAXjKML1S1TyGYKg=="], @@ -3301,6 +3353,22 @@ "@near-js/keystores-node/@near-js/keystores/@near-js/types": ["@near-js/types@0.0.4", "", { "dependencies": { "bn.js": "5.2.1" } }, "sha512-8TTMbLMnmyG06R5YKWuS/qFG1tOA3/9lX4NgBqQPsvaWmDsa+D+QwOkrEHDegped0ZHQwcjAXjKML1S1TyGYKg=="], + "@near-js/keystores/@near-js/crypto/@noble/curves": ["@noble/curves@1.8.1", "", { "dependencies": { "@noble/hashes": "1.7.1" } }, "sha512-warwspo+UYUPep0Q+vtdVB4Ugn8GGQj8iyB3gnRWsztmUHTI3S1nhdiWNsPUGL0vud7JlRRk1XEu7Lq1KGTnMQ=="], + + "@near-js/keystores/@near-js/crypto/@noble/hashes": ["@noble/hashes@1.8.0", "", {}, "sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A=="], + + "@near-js/providers/@near-js/crypto/@noble/curves": ["@noble/curves@1.8.1", "", { "dependencies": { "@noble/hashes": "1.7.1" } }, "sha512-warwspo+UYUPep0Q+vtdVB4Ugn8GGQj8iyB3gnRWsztmUHTI3S1nhdiWNsPUGL0vud7JlRRk1XEu7Lq1KGTnMQ=="], + + "@near-js/providers/@near-js/crypto/@noble/hashes": ["@noble/hashes@1.8.0", "", {}, "sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A=="], + + "@near-js/providers/@near-js/transactions/@noble/hashes": ["@noble/hashes@1.7.1", "", {}, "sha512-B8XBPsn4vT/KJAGqDzbwztd+6Yte3P4V7iafm24bxgDe/mlRuK6xmWPuCNrKt2vDafZ8MfJLlchDG/vYafQEjQ=="], + + "@near-js/signers/@near-js/crypto/@noble/curves": ["@noble/curves@1.8.1", "", { "dependencies": { "@noble/hashes": "1.7.1" } }, "sha512-warwspo+UYUPep0Q+vtdVB4Ugn8GGQj8iyB3gnRWsztmUHTI3S1nhdiWNsPUGL0vud7JlRRk1XEu7Lq1KGTnMQ=="], + + "@near-js/signers/@near-js/crypto/@noble/hashes": ["@noble/hashes@1.8.0", "", {}, "sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A=="], + + "@near-js/transactions/@near-js/utils/@scure/base": ["@scure/base@1.2.6", "", {}, "sha512-g/nm5FgUa//MCj1gV09zTJTaM6KBAHqLN907YVQqf7zC49+DcO4B1so4ZX07Ef10Twr6nuqYEH9GEggFXA4Fmg=="], + "@near-js/wallet-account/@near-js/accounts/@near-js/providers": ["@near-js/providers@0.1.1", "", { "dependencies": { "@near-js/transactions": "1.1.2", "@near-js/types": "0.0.4", "@near-js/utils": "0.1.0", "bn.js": "5.2.1", "borsh": "1.0.0", "http-errors": "1.7.2" }, "optionalDependencies": { "node-fetch": "2.6.7" } }, "sha512-0M/Vz2Ac34ShKVoe2ftVJ5Qg4eSbEqNXDbCDOdVj/2qbLWZa7Wpe+me5ei4TMY2ZhGdawhgJUPrYwdJzOCyf8w=="], "@near-js/wallet-account/@near-js/accounts/near-abi": ["near-abi@0.1.1", "", { "dependencies": { "@types/json-schema": "^7.0.11" } }, "sha512-RVDI8O+KVxRpC3KycJ1bpfVj9Zv+xvq9PlW1yIFl46GhrnLw83/72HqHGjGDjQ8DtltkcpSjY9X3YIGZ+1QyzQ=="], @@ -3313,6 +3381,16 @@ "@near-js/wallet-account/@near-js/utils/bs58": ["bs58@4.0.0", "", { "dependencies": { "base-x": "^2.0.1" } }, "sha512-/jcGuUuSebyxwLLfKrbKnCJttxRf9PM51EnHTwmFKBxl4z1SGkoAhrfd6uZKE0dcjQTfm6XzTP8DPr1tzE4KIw=="], + "@near-wallet-selector/core/@near-js/crypto/@noble/curves": ["@noble/curves@1.8.1", "", { "dependencies": { "@noble/hashes": "1.7.1" } }, "sha512-warwspo+UYUPep0Q+vtdVB4Ugn8GGQj8iyB3gnRWsztmUHTI3S1nhdiWNsPUGL0vud7JlRRk1XEu7Lq1KGTnMQ=="], + + "@near-wallet-selector/core/@near-js/crypto/@noble/hashes": ["@noble/hashes@1.8.0", "", {}, "sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A=="], + + "@near-wallet-selector/core/@near-js/crypto/borsh": ["borsh@1.0.0", "", {}, "sha512-fSVWzzemnyfF89EPwlUNsrS5swF5CrtiN4e+h0/lLf4dz2he4L3ndM20PS9wj7ICSkXJe/TQUHdaPTq15b1mNQ=="], + + "@near-wallet-selector/core/@near-js/transactions/@noble/hashes": ["@noble/hashes@1.7.1", "", {}, "sha512-B8XBPsn4vT/KJAGqDzbwztd+6Yte3P4V7iafm24bxgDe/mlRuK6xmWPuCNrKt2vDafZ8MfJLlchDG/vYafQEjQ=="], + + "@near-wallet-selector/core/@near-js/transactions/borsh": ["borsh@1.0.0", "", {}, "sha512-fSVWzzemnyfF89EPwlUNsrS5swF5CrtiN4e+h0/lLf4dz2he4L3ndM20PS9wj7ICSkXJe/TQUHdaPTq15b1mNQ=="], + "@radixdlt/radix-dapp-toolkit/@noble/curves/@noble/hashes": ["@noble/hashes@1.8.0", "", {}, "sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A=="], "@scure/starknet/@noble/curves/@noble/hashes": ["@noble/hashes@1.6.0", "", {}, "sha512-YUULf0Uk4/mAA89w+k3+yUYh6NrEvxZa5T6SY3wlMvE2chHkxFUUIDI8/XW1QSC357iA5pSnqt7XEhvFOqmDyQ=="], @@ -3361,6 +3439,16 @@ "@swapkit/core/@stricahq/typhonjs/@stricahq/cbors": ["@stricahq/cbors@1.0.2", "", { "dependencies": { "bignumber.js": "^9.0.2", "buffer": "^6.0.3" } }, "sha512-6ePsEiq7EGHA5IiPn9poA7sF5iXPqt30kKw3pjR/BhP7S+XHZNu/OPumESWnVl4AM+IEYC2x9eL+4qRPsTPVww=="], + "@swapkit/plugins/@near-js/transactions/@near-js/crypto": ["@near-js/crypto@2.5.1", "", { "dependencies": { "@near-js/types": "2.5.1", "@near-js/utils": "2.5.1", "@noble/curves": "1.8.1", "@noble/hashes": "^1.7.1", "borsh": "1.0.0", "secp256k1": "5.0.1" } }, "sha512-Kb+bbnUrfvuzzed9hpLRpcIlCMOaQlw/7BxlZPCq8DggVaK1m0nKR1DHQs2cV0Q0WSKSk2UrFJho1dxeKL5alg=="], + + "@swapkit/plugins/@near-js/transactions/@noble/hashes": ["@noble/hashes@1.7.1", "", {}, "sha512-B8XBPsn4vT/KJAGqDzbwztd+6Yte3P4V7iafm24bxgDe/mlRuK6xmWPuCNrKt2vDafZ8MfJLlchDG/vYafQEjQ=="], + + "@swapkit/toolboxes/@near-js/crypto/@noble/curves": ["@noble/curves@1.8.1", "", { "dependencies": { "@noble/hashes": "1.7.1" } }, "sha512-warwspo+UYUPep0Q+vtdVB4Ugn8GGQj8iyB3gnRWsztmUHTI3S1nhdiWNsPUGL0vud7JlRRk1XEu7Lq1KGTnMQ=="], + + "@swapkit/toolboxes/@near-js/crypto/@noble/hashes": ["@noble/hashes@1.8.0", "", {}, "sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A=="], + + "@swapkit/toolboxes/@near-js/transactions/@noble/hashes": ["@noble/hashes@1.7.1", "", {}, "sha512-B8XBPsn4vT/KJAGqDzbwztd+6Yte3P4V7iafm24bxgDe/mlRuK6xmWPuCNrKt2vDafZ8MfJLlchDG/vYafQEjQ=="], + "@swapkit/toolboxes/@stricahq/typhonjs/@stricahq/cbors": ["@stricahq/cbors@1.0.2", "", { "dependencies": { "bignumber.js": "^9.0.2", "buffer": "^6.0.3" } }, "sha512-6ePsEiq7EGHA5IiPn9poA7sF5iXPqt30kKw3pjR/BhP7S+XHZNu/OPumESWnVl4AM+IEYC2x9eL+4qRPsTPVww=="], "@swapkit/ui/@cosmjs/amino/@cosmjs/encoding": ["@cosmjs/encoding@0.39.0", "", { "dependencies": { "@scure/base": "^2.0.0", "base64-js": "^1.3.0", "readonly-date-esm": "^2.0.0" } }, "sha512-+poEaeM8YjGNVtrHLQNWqkhEeDxapjrdpnPCT+JCRh8YNbeHEdftzZLCH5VCBSOtvo7PF0gK1B7sbQbBl6q5pQ=="], @@ -3393,6 +3481,12 @@ "@swapkit/ui/@cosmjs/stargate/@cosmjs/utils": ["@cosmjs/utils@0.39.0", "", {}, "sha512-h7fy7Tbcl9v8ABntp8+kqw2VmUus2HbnRJFyzTkM7byRktLtECHYNMsztwyl1rdHkzc8Nc2xs6K/56d7a+75aw=="], + "@swapkit/ui/@near-js/crypto/@noble/curves": ["@noble/curves@1.8.1", "", { "dependencies": { "@noble/hashes": "1.7.1" } }, "sha512-warwspo+UYUPep0Q+vtdVB4Ugn8GGQj8iyB3gnRWsztmUHTI3S1nhdiWNsPUGL0vud7JlRRk1XEu7Lq1KGTnMQ=="], + + "@swapkit/ui/@near-js/crypto/@noble/hashes": ["@noble/hashes@1.8.0", "", {}, "sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A=="], + + "@swapkit/ui/@near-js/transactions/@noble/hashes": ["@noble/hashes@1.7.1", "", {}, "sha512-B8XBPsn4vT/KJAGqDzbwztd+6Yte3P4V7iafm24bxgDe/mlRuK6xmWPuCNrKt2vDafZ8MfJLlchDG/vYafQEjQ=="], + "@swapkit/ui/@stricahq/typhonjs/@stricahq/cbors": ["@stricahq/cbors@1.0.2", "", { "dependencies": { "bignumber.js": "^9.0.2", "buffer": "^6.0.3" } }, "sha512-6ePsEiq7EGHA5IiPn9poA7sF5iXPqt30kKw3pjR/BhP7S+XHZNu/OPumESWnVl4AM+IEYC2x9eL+4qRPsTPVww=="], "@swapkit/ui/@swapkit/core/@swapkit/wallet-core": ["@swapkit/wallet-core@4.3.21", "", { "dependencies": { "@swapkit/helpers": "4.20.1" } }, "sha512-88zNmn14D9oBWuzDuzWv0Lz5s67UalK9CWR5poVtxEmVep0KxWnxgpITnSi1oHkzRmdF7UPt2OmwFxAXTKPdsw=="], @@ -3415,14 +3509,30 @@ "@swapkit/wallet-extensions/@cosmjs/proto-signing/@cosmjs/crypto": ["@cosmjs/crypto@0.37.1", "", { "dependencies": { "@cosmjs/encoding": "^0.37.1", "@cosmjs/math": "^0.37.1", "@cosmjs/utils": "^0.37.1", "@noble/ciphers": "^1.3.0", "@noble/curves": "^1.9.2", "@noble/hashes": "^1.8.0", "@scure/bip39": "^1.6.0", "hash-wasm": "^4.12.0" } }, "sha512-CdLOKQVJM422UegKpi4T/xkdNwvLZwJwSC7NyYi7tAyty0NzP67u+vNqar7Ok22ECkKLj6N9uRcIl4g62oZThA=="], + "@swapkit/wallet-extensions/@near-js/crypto/@noble/curves": ["@noble/curves@1.8.1", "", { "dependencies": { "@noble/hashes": "1.7.1" } }, "sha512-warwspo+UYUPep0Q+vtdVB4Ugn8GGQj8iyB3gnRWsztmUHTI3S1nhdiWNsPUGL0vud7JlRRk1XEu7Lq1KGTnMQ=="], + + "@swapkit/wallet-extensions/@near-js/crypto/@noble/hashes": ["@noble/hashes@1.8.0", "", {}, "sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A=="], + + "@swapkit/wallet-extensions/@near-js/transactions/@noble/hashes": ["@noble/hashes@1.7.1", "", {}, "sha512-B8XBPsn4vT/KJAGqDzbwztd+6Yte3P4V7iafm24bxgDe/mlRuK6xmWPuCNrKt2vDafZ8MfJLlchDG/vYafQEjQ=="], + "@swapkit/wallet-hardware/@cosmjs/amino/@cosmjs/crypto": ["@cosmjs/crypto@0.37.1", "", { "dependencies": { "@cosmjs/encoding": "^0.37.1", "@cosmjs/math": "^0.37.1", "@cosmjs/utils": "^0.37.1", "@noble/ciphers": "^1.3.0", "@noble/curves": "^1.9.2", "@noble/hashes": "^1.8.0", "@scure/bip39": "^1.6.0", "hash-wasm": "^4.12.0" } }, "sha512-CdLOKQVJM422UegKpi4T/xkdNwvLZwJwSC7NyYi7tAyty0NzP67u+vNqar7Ok22ECkKLj6N9uRcIl4g62oZThA=="], "@swapkit/wallet-hardware/@cosmjs/proto-signing/@cosmjs/crypto": ["@cosmjs/crypto@0.37.1", "", { "dependencies": { "@cosmjs/encoding": "^0.37.1", "@cosmjs/math": "^0.37.1", "@cosmjs/utils": "^0.37.1", "@noble/ciphers": "^1.3.0", "@noble/curves": "^1.9.2", "@noble/hashes": "^1.8.0", "@scure/bip39": "^1.6.0", "hash-wasm": "^4.12.0" } }, "sha512-CdLOKQVJM422UegKpi4T/xkdNwvLZwJwSC7NyYi7tAyty0NzP67u+vNqar7Ok22ECkKLj6N9uRcIl4g62oZThA=="], + "@swapkit/wallet-hardware/@near-js/crypto/@noble/curves": ["@noble/curves@1.8.1", "", { "dependencies": { "@noble/hashes": "1.7.1" } }, "sha512-warwspo+UYUPep0Q+vtdVB4Ugn8GGQj8iyB3gnRWsztmUHTI3S1nhdiWNsPUGL0vud7JlRRk1XEu7Lq1KGTnMQ=="], + + "@swapkit/wallet-hardware/@near-js/crypto/@noble/hashes": ["@noble/hashes@1.8.0", "", {}, "sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A=="], + + "@swapkit/wallet-hardware/@near-js/transactions/@noble/hashes": ["@noble/hashes@1.7.1", "", {}, "sha512-B8XBPsn4vT/KJAGqDzbwztd+6Yte3P4V7iafm24bxgDe/mlRuK6xmWPuCNrKt2vDafZ8MfJLlchDG/vYafQEjQ=="], + "@swapkit/wallets/@cosmjs/amino/@cosmjs/crypto": ["@cosmjs/crypto@0.37.1", "", { "dependencies": { "@cosmjs/encoding": "^0.37.1", "@cosmjs/math": "^0.37.1", "@cosmjs/utils": "^0.37.1", "@noble/ciphers": "^1.3.0", "@noble/curves": "^1.9.2", "@noble/hashes": "^1.8.0", "@scure/bip39": "^1.6.0", "hash-wasm": "^4.12.0" } }, "sha512-CdLOKQVJM422UegKpi4T/xkdNwvLZwJwSC7NyYi7tAyty0NzP67u+vNqar7Ok22ECkKLj6N9uRcIl4g62oZThA=="], "@swapkit/wallets/@cosmjs/proto-signing/@cosmjs/crypto": ["@cosmjs/crypto@0.37.1", "", { "dependencies": { "@cosmjs/encoding": "^0.37.1", "@cosmjs/math": "^0.37.1", "@cosmjs/utils": "^0.37.1", "@noble/ciphers": "^1.3.0", "@noble/curves": "^1.9.2", "@noble/hashes": "^1.8.0", "@scure/bip39": "^1.6.0", "hash-wasm": "^4.12.0" } }, "sha512-CdLOKQVJM422UegKpi4T/xkdNwvLZwJwSC7NyYi7tAyty0NzP67u+vNqar7Ok22ECkKLj6N9uRcIl4g62oZThA=="], + "@swapkit/wallets/@near-js/transactions/@near-js/crypto": ["@near-js/crypto@2.5.1", "", { "dependencies": { "@near-js/types": "2.5.1", "@near-js/utils": "2.5.1", "@noble/curves": "1.8.1", "@noble/hashes": "^1.7.1", "borsh": "1.0.0", "secp256k1": "5.0.1" } }, "sha512-Kb+bbnUrfvuzzed9hpLRpcIlCMOaQlw/7BxlZPCq8DggVaK1m0nKR1DHQs2cV0Q0WSKSk2UrFJho1dxeKL5alg=="], + + "@swapkit/wallets/@near-js/transactions/@noble/hashes": ["@noble/hashes@1.7.1", "", {}, "sha512-B8XBPsn4vT/KJAGqDzbwztd+6Yte3P4V7iafm24bxgDe/mlRuK6xmWPuCNrKt2vDafZ8MfJLlchDG/vYafQEjQ=="], + "@ton/ton/axios/proxy-from-env": ["proxy-from-env@2.1.0", "", {}, "sha512-cJ+oHTW1VAEa8cJslgmUZrc+sjRKgAKl3Zyse6+PV38hZe/V6Z14TbCuXcan9F9ghlz4QrFr2c92TNF82UkYHA=="], "@trezor/blockchain-link-utils/@stellar/stellar-sdk/axios": ["axios@1.18.0", "", { "dependencies": { "follow-redirects": "^1.16.0", "form-data": "^4.0.5", "https-proxy-agent": "^5.0.1", "proxy-from-env": "^2.1.0" } }, "sha512-E32NzpYKp++W7XRe52rHiXV2ehxmh3wbdgO7MHeFM+vqxLBYHzt0ElkiImtOBxtOmyp0yoC8C6uESVV84Y2/hw=="], @@ -3565,6 +3675,8 @@ "@metamask/mobile-wallet-protocol-dapp-client/@metamask/utils/@ethereumjs/tx/@ethereumjs/util": ["@ethereumjs/util@8.1.0", "", { "dependencies": { "@ethereumjs/rlp": "^4.0.1", "ethereum-cryptography": "^2.0.0", "micro-ftch": "^0.3.1" } }, "sha512-zQ0IqbdX8FZ9aw11vP+dZkKDkS+kgIvQPHnSAXzP9pLu+Rfu3D3XEeLbicvoXJTYnhZiPmsZUxgdzXwNKxRPbA=="], + "@near-js/accounts/@near-js/crypto/@noble/curves/@noble/hashes": ["@noble/hashes@1.7.1", "", {}, "sha512-B8XBPsn4vT/KJAGqDzbwztd+6Yte3P4V7iafm24bxgDe/mlRuK6xmWPuCNrKt2vDafZ8MfJLlchDG/vYafQEjQ=="], + "@near-js/keystores-browser/@near-js/crypto/@near-js/utils/bs58": ["bs58@4.0.0", "", { "dependencies": { "base-x": "^2.0.1" } }, "sha512-/jcGuUuSebyxwLLfKrbKnCJttxRf9PM51EnHTwmFKBxl4z1SGkoAhrfd6uZKE0dcjQTfm6XzTP8DPr1tzE4KIw=="], "@near-js/keystores-browser/@near-js/crypto/@noble/curves/@noble/hashes": ["@noble/hashes@1.3.2", "", {}, "sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ=="], @@ -3577,12 +3689,20 @@ "@near-js/keystores-node/@near-js/keystores/@near-js/types/bn.js": ["bn.js@5.2.1", "", {}, "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ=="], + "@near-js/keystores/@near-js/crypto/@noble/curves/@noble/hashes": ["@noble/hashes@1.7.1", "", {}, "sha512-B8XBPsn4vT/KJAGqDzbwztd+6Yte3P4V7iafm24bxgDe/mlRuK6xmWPuCNrKt2vDafZ8MfJLlchDG/vYafQEjQ=="], + + "@near-js/providers/@near-js/crypto/@noble/curves/@noble/hashes": ["@noble/hashes@1.7.1", "", {}, "sha512-B8XBPsn4vT/KJAGqDzbwztd+6Yte3P4V7iafm24bxgDe/mlRuK6xmWPuCNrKt2vDafZ8MfJLlchDG/vYafQEjQ=="], + + "@near-js/signers/@near-js/crypto/@noble/curves/@noble/hashes": ["@noble/hashes@1.7.1", "", {}, "sha512-B8XBPsn4vT/KJAGqDzbwztd+6Yte3P4V7iafm24bxgDe/mlRuK6xmWPuCNrKt2vDafZ8MfJLlchDG/vYafQEjQ=="], + "@near-js/wallet-account/@near-js/accounts/@near-js/providers/node-fetch": ["node-fetch@2.6.7", "", { "dependencies": { "whatwg-url": "^5.0.0" }, "peerDependencies": { "encoding": "^0.1.0" }, "optionalPeers": ["encoding"] }, "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ=="], "@near-js/wallet-account/@near-js/crypto/@noble/curves/@noble/hashes": ["@noble/hashes@1.3.2", "", {}, "sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ=="], "@near-js/wallet-account/@near-js/utils/bs58/base-x": ["base-x@2.0.6", "", { "dependencies": { "safe-buffer": "^5.0.1" } }, "sha512-UAmjxz9KbK+YIi66xej+pZVo/vxUOh49ubEvZW5egCbxhur05pBb+hwuireQwKO4nDpsNm64/jEei17LEpsr5g=="], + "@near-wallet-selector/core/@near-js/crypto/@noble/curves/@noble/hashes": ["@noble/hashes@1.7.1", "", {}, "sha512-B8XBPsn4vT/KJAGqDzbwztd+6Yte3P4V7iafm24bxgDe/mlRuK6xmWPuCNrKt2vDafZ8MfJLlchDG/vYafQEjQ=="], + "@solana/codecs/@solana/codecs-core/@solana/errors/commander": ["commander@12.1.0", "", {}, "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA=="], "@solana/codecs/@solana/codecs-numbers/@solana/errors/commander": ["commander@12.1.0", "", {}, "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA=="], @@ -3591,10 +3711,18 @@ "@starknet-io/get-starknet-wallet-standard/ox/@scure/bip39/@scure/base": ["@scure/base@1.2.6", "", {}, "sha512-g/nm5FgUa//MCj1gV09zTJTaM6KBAHqLN907YVQqf7zC49+DcO4B1so4ZX07Ef10Twr6nuqYEH9GEggFXA4Fmg=="], + "@swapkit/plugins/@near-js/transactions/@near-js/crypto/@noble/curves": ["@noble/curves@1.8.1", "", { "dependencies": { "@noble/hashes": "1.7.1" } }, "sha512-warwspo+UYUPep0Q+vtdVB4Ugn8GGQj8iyB3gnRWsztmUHTI3S1nhdiWNsPUGL0vud7JlRRk1XEu7Lq1KGTnMQ=="], + + "@swapkit/plugins/@near-js/transactions/@near-js/crypto/@noble/hashes": ["@noble/hashes@1.8.0", "", {}, "sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A=="], + + "@swapkit/toolboxes/@near-js/crypto/@noble/curves/@noble/hashes": ["@noble/hashes@1.7.1", "", {}, "sha512-B8XBPsn4vT/KJAGqDzbwztd+6Yte3P4V7iafm24bxgDe/mlRuK6xmWPuCNrKt2vDafZ8MfJLlchDG/vYafQEjQ=="], + "@swapkit/ui/@cosmjs/stargate/@cosmjs/tendermint-rpc/@cosmjs/json-rpc": ["@cosmjs/json-rpc@0.39.0", "", { "dependencies": { "@cosmjs/stream": "^0.39.0", "xstream": "^11.14.0" } }, "sha512-slyo76IYkTuSxrzxvF1s1ScFPIGnW7PbNSx8lr++NzdyPluqe053+cSqsxLUioXb5qI9Nxny2fWxOK8isSn+cg=="], "@swapkit/ui/@cosmjs/stargate/@cosmjs/tendermint-rpc/@cosmjs/socket": ["@cosmjs/socket@0.39.0", "", { "dependencies": { "@cosmjs/stream": "^0.39.0", "isomorphic-ws": "^4.0.1", "ws": "^7", "xstream": "^11.14.0" } }, "sha512-mvA+/ycMn7dnjjdooSPq516poFpSARRXhFhKjCXxGUmBZA+74vLDLbtD6VGzHd08A2JSZBSiAhVOZpjYqgV78A=="], + "@swapkit/ui/@near-js/crypto/@noble/curves/@noble/hashes": ["@noble/hashes@1.7.1", "", {}, "sha512-B8XBPsn4vT/KJAGqDzbwztd+6Yte3P4V7iafm24bxgDe/mlRuK6xmWPuCNrKt2vDafZ8MfJLlchDG/vYafQEjQ=="], + "@swapkit/wallet-extensions/@cosmjs/amino/@cosmjs/crypto/@noble/curves": ["@noble/curves@1.9.7", "", { "dependencies": { "@noble/hashes": "1.8.0" } }, "sha512-gbKGcRUYIjA3/zCCNaWDciTMFI0dCkvou3TL8Zmy5Nc7sJ47a0jtOeZoTaMxkuqRo9cRhjOdZJXegxYE5FN/xw=="], "@swapkit/wallet-extensions/@cosmjs/amino/@cosmjs/crypto/@noble/hashes": ["@noble/hashes@1.8.0", "", {}, "sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A=="], @@ -3607,6 +3735,8 @@ "@swapkit/wallet-extensions/@cosmjs/proto-signing/@cosmjs/crypto/@scure/bip39": ["@scure/bip39@1.6.0", "", { "dependencies": { "@noble/hashes": "~1.8.0", "@scure/base": "~1.2.5" } }, "sha512-+lF0BbLiJNwVlev4eKelw1WWLaiKXw7sSl8T6FvBlWkdX+94aGJ4o8XjUdlyhTCjd8c+B3KT3JfS8P0bLRNU6A=="], + "@swapkit/wallet-extensions/@near-js/crypto/@noble/curves/@noble/hashes": ["@noble/hashes@1.7.1", "", {}, "sha512-B8XBPsn4vT/KJAGqDzbwztd+6Yte3P4V7iafm24bxgDe/mlRuK6xmWPuCNrKt2vDafZ8MfJLlchDG/vYafQEjQ=="], + "@swapkit/wallet-hardware/@cosmjs/amino/@cosmjs/crypto/@noble/curves": ["@noble/curves@1.9.7", "", { "dependencies": { "@noble/hashes": "1.8.0" } }, "sha512-gbKGcRUYIjA3/zCCNaWDciTMFI0dCkvou3TL8Zmy5Nc7sJ47a0jtOeZoTaMxkuqRo9cRhjOdZJXegxYE5FN/xw=="], "@swapkit/wallet-hardware/@cosmjs/amino/@cosmjs/crypto/@noble/hashes": ["@noble/hashes@1.8.0", "", {}, "sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A=="], @@ -3619,6 +3749,8 @@ "@swapkit/wallet-hardware/@cosmjs/proto-signing/@cosmjs/crypto/@scure/bip39": ["@scure/bip39@1.6.0", "", { "dependencies": { "@noble/hashes": "~1.8.0", "@scure/base": "~1.2.5" } }, "sha512-+lF0BbLiJNwVlev4eKelw1WWLaiKXw7sSl8T6FvBlWkdX+94aGJ4o8XjUdlyhTCjd8c+B3KT3JfS8P0bLRNU6A=="], + "@swapkit/wallet-hardware/@near-js/crypto/@noble/curves/@noble/hashes": ["@noble/hashes@1.7.1", "", {}, "sha512-B8XBPsn4vT/KJAGqDzbwztd+6Yte3P4V7iafm24bxgDe/mlRuK6xmWPuCNrKt2vDafZ8MfJLlchDG/vYafQEjQ=="], + "@swapkit/wallets/@cosmjs/amino/@cosmjs/crypto/@noble/curves": ["@noble/curves@1.9.7", "", { "dependencies": { "@noble/hashes": "1.8.0" } }, "sha512-gbKGcRUYIjA3/zCCNaWDciTMFI0dCkvou3TL8Zmy5Nc7sJ47a0jtOeZoTaMxkuqRo9cRhjOdZJXegxYE5FN/xw=="], "@swapkit/wallets/@cosmjs/amino/@cosmjs/crypto/@noble/hashes": ["@noble/hashes@1.8.0", "", {}, "sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A=="], @@ -3631,6 +3763,10 @@ "@swapkit/wallets/@cosmjs/proto-signing/@cosmjs/crypto/@scure/bip39": ["@scure/bip39@1.6.0", "", { "dependencies": { "@noble/hashes": "~1.8.0", "@scure/base": "~1.2.5" } }, "sha512-+lF0BbLiJNwVlev4eKelw1WWLaiKXw7sSl8T6FvBlWkdX+94aGJ4o8XjUdlyhTCjd8c+B3KT3JfS8P0bLRNU6A=="], + "@swapkit/wallets/@near-js/transactions/@near-js/crypto/@noble/curves": ["@noble/curves@1.8.1", "", { "dependencies": { "@noble/hashes": "1.7.1" } }, "sha512-warwspo+UYUPep0Q+vtdVB4Ugn8GGQj8iyB3gnRWsztmUHTI3S1nhdiWNsPUGL0vud7JlRRk1XEu7Lq1KGTnMQ=="], + + "@swapkit/wallets/@near-js/transactions/@near-js/crypto/@noble/hashes": ["@noble/hashes@1.8.0", "", {}, "sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A=="], + "@trezor/blockchain-link-utils/@stellar/stellar-sdk/axios/proxy-from-env": ["proxy-from-env@2.1.0", "", {}, "sha512-cJ+oHTW1VAEa8cJslgmUZrc+sjRKgAKl3Zyse6+PV38hZe/V6Z14TbCuXcan9F9ghlz4QrFr2c92TNF82UkYHA=="], "@trezor/blockchain-link-utils/@trezor/protobuf/protobufjs/long": ["long@5.3.2", "", {}, "sha512-mNAgZ1GmyNhD7AuqnTG3/VQ26o760+ZYBPKjPvugO8+nLbYfX6TVpJPseBvopbdY+qpZ/lKUnmEc1LeZYS3QAA=="], @@ -3677,6 +3813,8 @@ "@near-js/keystores-node/@near-js/crypto/@near-js/utils/bs58/base-x": ["base-x@2.0.6", "", { "dependencies": { "safe-buffer": "^5.0.1" } }, "sha512-UAmjxz9KbK+YIi66xej+pZVo/vxUOh49ubEvZW5egCbxhur05pBb+hwuireQwKO4nDpsNm64/jEei17LEpsr5g=="], + "@swapkit/plugins/@near-js/transactions/@near-js/crypto/@noble/curves/@noble/hashes": ["@noble/hashes@1.7.1", "", {}, "sha512-B8XBPsn4vT/KJAGqDzbwztd+6Yte3P4V7iafm24bxgDe/mlRuK6xmWPuCNrKt2vDafZ8MfJLlchDG/vYafQEjQ=="], + "@swapkit/ui/@cosmjs/stargate/@cosmjs/tendermint-rpc/@cosmjs/socket/ws": ["ws@7.5.13", "", { "peerDependencies": { "bufferutil": "^4.0.1", "utf-8-validate": "^5.0.2" }, "optionalPeers": ["bufferutil", "utf-8-validate"] }, "sha512-rsKI6xDBFVf4r/x8XyChGK04QR/XHroxs/jUcoWvtEZM8TPU/X/uIY9B1CsSzYws9ZJb/6bbBu7dPhFW00CAoA=="], "@swapkit/wallet-extensions/@cosmjs/amino/@cosmjs/crypto/@scure/bip39/@scure/base": ["@scure/base@1.2.6", "", {}, "sha512-g/nm5FgUa//MCj1gV09zTJTaM6KBAHqLN907YVQqf7zC49+DcO4B1so4ZX07Ef10Twr6nuqYEH9GEggFXA4Fmg=="], @@ -3691,6 +3829,8 @@ "@swapkit/wallets/@cosmjs/proto-signing/@cosmjs/crypto/@scure/bip39/@scure/base": ["@scure/base@1.2.6", "", {}, "sha512-g/nm5FgUa//MCj1gV09zTJTaM6KBAHqLN907YVQqf7zC49+DcO4B1so4ZX07Ef10Twr6nuqYEH9GEggFXA4Fmg=="], + "@swapkit/wallets/@near-js/transactions/@near-js/crypto/@noble/curves/@noble/hashes": ["@noble/hashes@1.7.1", "", {}, "sha512-B8XBPsn4vT/KJAGqDzbwztd+6Yte3P4V7iafm24bxgDe/mlRuK6xmWPuCNrKt2vDafZ8MfJLlchDG/vYafQEjQ=="], + "pkg-dir/find-up/locate-path/p-locate/p-limit": ["p-limit@3.1.0", "", { "dependencies": { "yocto-queue": "^0.1.0" } }, "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ=="], } } diff --git a/package.json b/package.json index b5ee423..9b95380 100644 --- a/package.json +++ b/package.json @@ -8,13 +8,13 @@ "@cosmjs/proto-signing": "0.37.0", "@cosmjs/stargate": "0.37.0", "@scure/bip32": "2.2.0", - "@swapkit/core": "^5.0.2", - "@swapkit/helpers": "^5.0.2", - "@swapkit/plugins": "^5.0.0", - "@swapkit/server": "^5.0.0", - "@swapkit/toolboxes": "^5.1.1", - "@swapkit/wallet-core": "^5.0.0", - "@swapkit/wallet-keystore": "^5.0.0", + "@swapkit/core": "^5.0.3", + "@swapkit/helpers": "^5.1.0", + "@swapkit/plugins": "^5.0.3", + "@swapkit/server": "^5.1.1", + "@swapkit/toolboxes": "^5.1.2", + "@swapkit/wallet-core": "^5.0.3", + "@swapkit/wallet-keystore": "^5.0.3", "@types/bun": "1.3.13", "@types/node": "25.6.0", "ledger-bitcoin": "0.3.0", diff --git a/packages/sdk/package.json b/packages/sdk/package.json index 47f5556..c78a2fe 100644 --- a/packages/sdk/package.json +++ b/packages/sdk/package.json @@ -2,13 +2,13 @@ "author": "swapkit-dev", "dependencies": { "@stricahq/typhonjs": "~3.0.1", - "@swapkit/core": "^5.0.2", - "@swapkit/helpers": "^5.0.2", - "@swapkit/plugins": "^5.0.0", - "@swapkit/server": "^5.0.0", - "@swapkit/toolboxes": "^5.1.1", - "@swapkit/wallet-core": "^5.0.0", - "@swapkit/wallet-keystore": "^5.0.0", + "@swapkit/core": "^5.0.3", + "@swapkit/helpers": "^5.1.0", + "@swapkit/plugins": "^5.0.3", + "@swapkit/server": "^5.1.1", + "@swapkit/toolboxes": "^5.1.2", + "@swapkit/wallet-core": "^5.0.3", + "@swapkit/wallet-keystore": "^5.0.3", "@swapkit/wallets": "workspace:*", "cosmjs-types": "0.10.1" }, diff --git a/packages/wallet-extensions/package.json b/packages/wallet-extensions/package.json index 7a1bfe5..5990e50 100644 --- a/packages/wallet-extensions/package.json +++ b/packages/wallet-extensions/package.json @@ -11,10 +11,10 @@ "@near-js/transactions": "~2.5.0", "@scure/base": "~2.2.0", "@solana/web3.js": "~1.98.4", - "@swapkit/helpers": "^5.0.2", - "@swapkit/toolboxes": "^5.1.1", + "@swapkit/helpers": "^5.1.0", + "@swapkit/toolboxes": "^5.1.2", "@swapkit/utxo-signer": "^3.0.0", - "@swapkit/wallet-core": "^5.0.0", + "@swapkit/wallet-core": "^5.0.3", "@wallet-standard/app": "^1.1.1", "cosmjs-types": "0.10.1", "ethers": "^6.14.0", diff --git a/packages/wallet-hardware/package.json b/packages/wallet-hardware/package.json index 5165073..dff509f 100644 --- a/packages/wallet-hardware/package.json +++ b/packages/wallet-hardware/package.json @@ -22,10 +22,10 @@ "@near-js/transactions": "~2.5.0", "@scure/base": "2.2.0", "@scure/bip32": "2.2.0", - "@swapkit/helpers": "^5.0.2", - "@swapkit/toolboxes": "^5.1.1", + "@swapkit/helpers": "^5.1.0", + "@swapkit/toolboxes": "^5.1.2", "@swapkit/utxo-signer": "^3.0.0", - "@swapkit/wallet-core": "^5.0.0", + "@swapkit/wallet-core": "^5.0.3", "@trezor/connect-web": "~9.7.3", "cosmjs-types": "~0.10.1", "ethers": "^6.14.0", diff --git a/packages/wallet-mobile/package.json b/packages/wallet-mobile/package.json index 7a69479..50b7df3 100644 --- a/packages/wallet-mobile/package.json +++ b/packages/wallet-mobile/package.json @@ -1,9 +1,9 @@ { "author": "swapkit", "dependencies": { - "@swapkit/helpers": "^5.0.2", - "@swapkit/toolboxes": "^5.1.1", - "@swapkit/wallet-core": "^5.0.0" + "@swapkit/helpers": "^5.1.0", + "@swapkit/toolboxes": "^5.1.2", + "@swapkit/wallet-core": "^5.0.3" }, "description": "SwapKit - Wallet Mobile", "exports": { diff --git a/packages/wallets/package.json b/packages/wallets/package.json index ed358e0..69d8e91 100644 --- a/packages/wallets/package.json +++ b/packages/wallets/package.json @@ -16,10 +16,10 @@ "@scure/base": "~2.2.0", "@scure/bip39": "~2.2.0", "@solana/web3.js": "~1.98.4", - "@swapkit/helpers": "^5.0.2", - "@swapkit/toolboxes": "^5.1.1", + "@swapkit/helpers": "^5.1.0", + "@swapkit/toolboxes": "^5.1.2", "@swapkit/utxo-signer": "^3.0.0", - "@swapkit/wallet-core": "^5.0.0", + "@swapkit/wallet-core": "^5.0.3", "@swapkit/wallet-extensions": "workspace:*", "@swapkit/wallet-hardware": "workspace:*", "@ton/core": "~0.63.1", From 8a482d9e83e20656025ed9fbe46372c73bf220a6 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 25 Aug 2026 16:26:32 +0400 Subject: [PATCH 4/9] feat(noir-wallet): adopt helpers 5.1.0 registry, drop option shim Replace the TON_CONNECT-style option shim with the real extensible registries from @swapkit/helpers 5.1.0 (swapkit/sdk#346): register.ts declares the WalletOptionRegistry/SwapKitErrorRegistry augmentations and registers NOIR_WALLET plus wallet_noir_wallet_* codes 80101-80103 in the reserved extension range. Connector, loadWallet, and SKWallets go back to WalletOption.NOIR_WALLET; semantic error keys are restored; the register module is side-effect-imported in utils.ts before the match reads it. Co-Authored-By: Claude Fable 5 --- .changeset/noir-wallet-zcash.md | 2 +- packages/wallet-extensions/package.json | 10 ++++----- .../noir-wallet/__tests__/noir-wallet.test.ts | 13 ++++++----- .../src/noir-wallet/index.ts | 22 ++++++++----------- .../src/noir-wallet/option.ts | 6 ----- .../src/noir-wallet/register.ts | 19 ++++++++++++++++ packages/wallets/src/types.ts | 4 ++-- packages/wallets/src/utils.ts | 8 ++++--- 8 files changed, 49 insertions(+), 35 deletions(-) delete mode 100644 packages/wallet-extensions/src/noir-wallet/option.ts create mode 100644 packages/wallet-extensions/src/noir-wallet/register.ts diff --git a/.changeset/noir-wallet-zcash.md b/.changeset/noir-wallet-zcash.md index 0c538f3..627d785 100644 --- a/.changeset/noir-wallet-zcash.md +++ b/.changeset/noir-wallet-zcash.md @@ -3,4 +3,4 @@ "@swapkit/wallets": minor --- -Add Noir Wallet connector for Zcash (`connectNoirWallet`). Noir Wallet is a shielded-first Zcash browser extension; the connector delegates balance and transaction building to the extension and supports deposit-address swap routes (e.g. NEAR Intents). OP_RETURN memo routes are rejected with a clear error. `NOIR_WALLET` lives outside the `WalletOption` enum (same shim as `TON_CONNECT`) until the helpers registry (swapkit/sdk#346) is released. +Add Noir Wallet connector for Zcash (`connectNoirWallet`). Noir Wallet is a shielded-first Zcash browser extension; the connector delegates balance and transaction building to the extension and supports deposit-address swap routes (e.g. NEAR Intents). OP_RETURN memo routes are rejected with `wallet_noir_wallet_memo_not_supported`. `NOIR_WALLET` and the `wallet_noir_wallet_*` error codes (80101-80103) register through the `@swapkit/helpers` 5.1.0 extensible registries. diff --git a/packages/wallet-extensions/package.json b/packages/wallet-extensions/package.json index 5990e50..6b9394b 100644 --- a/packages/wallet-extensions/package.json +++ b/packages/wallet-extensions/package.json @@ -88,11 +88,11 @@ "require": "./dist/src/noir-wallet/index.cjs", "types": "./dist/types/noir-wallet/index.d.ts" }, - "./noir-wallet/option": { - "bun": "./src/noir-wallet/option.ts", - "default": "./dist/src/noir-wallet/option.js", - "require": "./dist/src/noir-wallet/option.cjs", - "types": "./dist/types/noir-wallet/option.d.ts" + "./noir-wallet/register": { + "bun": "./src/noir-wallet/register.ts", + "default": "./dist/src/noir-wallet/register.js", + "require": "./dist/src/noir-wallet/register.cjs", + "types": "./dist/types/noir-wallet/register.d.ts" }, "./okx": { "bun": "./src/okx/index.ts", diff --git a/packages/wallet-extensions/src/noir-wallet/__tests__/noir-wallet.test.ts b/packages/wallet-extensions/src/noir-wallet/__tests__/noir-wallet.test.ts index 8f4d242..ec138e6 100644 --- a/packages/wallet-extensions/src/noir-wallet/__tests__/noir-wallet.test.ts +++ b/packages/wallet-extensions/src/noir-wallet/__tests__/noir-wallet.test.ts @@ -1,9 +1,8 @@ // @ts-nocheck - Test file with intentional mocking of browser globals import { beforeEach, describe, expect, test } from "bun:test"; -import { AssetValue, Chain } from "@swapkit/helpers"; +import { AssetValue, Chain, WalletOption } from "@swapkit/helpers"; import { noirWallet } from "../index"; -import { NOIR_WALLET } from "../option"; const TRANSPARENT_ADDRESS = "t1XVXWCvpMgBvUaed4XDqWtgQgJSu1Ghz7F"; @@ -75,13 +74,17 @@ describe("noirWallet", () => { expect(noirWallet.connectNoirWallet.supportedChains).toEqual([Chain.Zcash]); }); + test("registers NOIR_WALLET in the extensible WalletOption registry", () => { + expect(WalletOption.NOIR_WALLET).toBe("NOIR_WALLET"); + }); + test("connects via zcash_requestAccounts and registers the transparent address", async () => { const wallet = await connectAndGetWallet(); expect(requests.some(({ method }) => method === "zcash_requestAccounts")).toBe(true); expect(wallet.address).toBe(TRANSPARENT_ADDRESS); expect(wallet.chain).toBe(Chain.Zcash); - expect(wallet.walletType).toBe(NOIR_WALLET); + expect(wallet.walletType).toBe(WalletOption.NOIR_WALLET); expect(wallet.walletType).toBe("NOIR_WALLET"); }); @@ -109,7 +112,7 @@ describe("noirWallet", () => { const assetValue = AssetValue.from({ chain: Chain.Zcash, value: "0.5" }); expect(() => wallet.transfer({ assetValue, memo: "=:BTC.BTC:bc1q...", recipient: "t1RecipientAddr" })).toThrow( - "wallet_walletconnect_method_not_supported", + "wallet_noir_wallet_memo_not_supported", ); }); @@ -124,6 +127,6 @@ describe("noirWallet", () => { const connect = noirWallet.connectNoirWallet.connectWallet({ addChain: () => undefined }); - expect(connect([Chain.Zcash])).rejects.toThrow("wallet_provider_not_found"); + expect(connect([Chain.Zcash])).rejects.toThrow("wallet_noir_wallet_not_found"); }); }); diff --git a/packages/wallet-extensions/src/noir-wallet/index.ts b/packages/wallet-extensions/src/noir-wallet/index.ts index 8c198f0..f643d65 100644 --- a/packages/wallet-extensions/src/noir-wallet/index.ts +++ b/packages/wallet-extensions/src/noir-wallet/index.ts @@ -1,14 +1,17 @@ -import { AssetValue, Chain, type GenericTransferParams, SwapKitError, type WalletOption } from "@swapkit/helpers"; +// Registers WalletOption.NOIR_WALLET and the wallet_noir_wallet_* error codes +// before anything below reads them. +import "./register"; + +import { AssetValue, Chain, type GenericTransferParams, SwapKitError, WalletOption } from "@swapkit/helpers"; import { createWallet, getWalletSupportedChains } from "@swapkit/wallet-core"; import type { NoirWalletZcashProvider } from "../types"; import type { ExtensionWallet } from "../walletTypes"; -import { NOIR_WALLET } from "./option"; export function getNoirWalletZcashProvider(): NoirWalletZcashProvider { const provider = window.noirwallet?.zcash; if (!provider) { - throw new SwapKitError("wallet_provider_not_found", { wallet: NOIR_WALLET }); + throw new SwapKitError("wallet_noir_wallet_not_found"); } return provider; @@ -24,7 +27,7 @@ export const noirWallet: ExtensionWallet<"connectNoirWallet"> = createWallet({ const account = await provider.request({ method: "zcash_requestAccounts" }); if (!account?.transparent) { - throw new SwapKitError("core_wallet_connection_failed", { wallet: NOIR_WALLET }); + throw new SwapKitError("wallet_noir_wallet_connection_failed"); } const { getUtxoToolbox } = await import("@swapkit/toolboxes/utxo"); @@ -58,11 +61,7 @@ export const noirWallet: ExtensionWallet<"connectNoirWallet"> = createWallet({ */ transfer: ({ recipient, assetValue, memo }: GenericTransferParams) => { if (memo) { - throw new SwapKitError("wallet_walletconnect_method_not_supported", { - method: "transfer", - reason: "Noir Wallet cannot attach OP_RETURN memos to transparent recipients", - wallet: NOIR_WALLET, - }); + throw new SwapKitError("wallet_noir_wallet_memo_not_supported"); } if (!(recipient && assetValue)) { @@ -84,10 +83,7 @@ export const noirWallet: ExtensionWallet<"connectNoirWallet"> = createWallet({ directSigningSupport: {}, name: "connectNoirWallet", supportedChains: [Chain.Zcash], - // createWallet constrains walletType to the WalletOption enum, which has no - // NOIR_WALLET member until the registry lands upstream (swapkit/sdk#346) — - // see ./option.ts. - walletType: NOIR_WALLET as unknown as WalletOption, + walletType: WalletOption.NOIR_WALLET, }); export const NOIR_WALLET_SUPPORTED_CHAINS = getWalletSupportedChains(noirWallet); diff --git a/packages/wallet-extensions/src/noir-wallet/option.ts b/packages/wallet-extensions/src/noir-wallet/option.ts deleted file mode 100644 index e4b7d3e..0000000 --- a/packages/wallet-extensions/src/noir-wallet/option.ts +++ /dev/null @@ -1,6 +0,0 @@ -// @swapkit/helpers 5.0.x shipped without the extensible WalletOption registry -// (swapkit/sdk#346 is unmerged), so NOIR_WALLET lives outside the enum until a -// helpers release carries the registry — same shim as -// packages/wallets/src/tonconnect/option.ts; unwind both together. -export const NOIR_WALLET = "NOIR_WALLET" as const; -export type NoirWalletOption = typeof NOIR_WALLET; diff --git a/packages/wallet-extensions/src/noir-wallet/register.ts b/packages/wallet-extensions/src/noir-wallet/register.ts new file mode 100644 index 0000000..231371b --- /dev/null +++ b/packages/wallet-extensions/src/noir-wallet/register.ts @@ -0,0 +1,19 @@ +import { registerErrorCodes, registerWalletOption } from "@swapkit/helpers"; + +declare module "@swapkit/helpers" { + interface WalletOptionRegistry { + NOIR_WALLET: "NOIR_WALLET"; + } + interface SwapKitErrorRegistry { + wallet_noir_wallet_not_found: 80101; + wallet_noir_wallet_connection_failed: 80102; + wallet_noir_wallet_memo_not_supported: 80103; + } +} + +registerWalletOption("NOIR_WALLET", "NOIR_WALLET"); +registerErrorCodes({ + wallet_noir_wallet_connection_failed: 80102, + wallet_noir_wallet_memo_not_supported: 80103, + wallet_noir_wallet_not_found: 80101, +}); diff --git a/packages/wallets/src/types.ts b/packages/wallets/src/types.ts index d64b2e8..304bbb7 100644 --- a/packages/wallets/src/types.ts +++ b/packages/wallets/src/types.ts @@ -44,7 +44,7 @@ export type SKWallets = { [WalletOption.LEAP]: typeof keplrWallet; [WalletOption.LEDGER]: typeof ledgerWallet; [WalletOption.METAMASK]: typeof metamaskWallet; - NOIR_WALLET: typeof noirWallet; + [WalletOption.NOIR_WALLET]: typeof noirWallet; [WalletOption.OKX]: typeof okxWallet; [WalletOption.OKX_MOBILE]: typeof evmWallet; [WalletOption.ONEKEY]: typeof onekeyWallet; @@ -122,7 +122,7 @@ export type SKWalletsSupportedChains = { [WalletOption.LEAP]: typeof keplrWallet.connectKeplr.supportedChains; [WalletOption.LEDGER]: typeof ledgerWallet.connectLedger.supportedChains; [WalletOption.METAMASK]: typeof metamaskWallet.connectMetamask.supportedChains; - NOIR_WALLET: typeof noirWallet.connectNoirWallet.supportedChains; + [WalletOption.NOIR_WALLET]: typeof noirWallet.connectNoirWallet.supportedChains; [WalletOption.OKX]: typeof okxWallet.connectOkx.supportedChains; [WalletOption.OKX_MOBILE]: typeof evmWallet.connectEVMWallet.supportedChains; [WalletOption.ONEKEY]: typeof onekeyWallet.connectOnekeyWallet.supportedChains; diff --git a/packages/wallets/src/utils.ts b/packages/wallets/src/utils.ts index efa2bc0..4f9a1b9 100644 --- a/packages/wallets/src/utils.ts +++ b/packages/wallets/src/utils.ts @@ -1,12 +1,14 @@ import { WalletOption } from "@swapkit/helpers"; -import { NOIR_WALLET, type NoirWalletOption } from "@swapkit/wallet-extensions/noir-wallet/option"; +// Registers WalletOption.NOIR_WALLET before the match below reads it; the +// connector itself still loads lazily via the match arm. +import "@swapkit/wallet-extensions/noir-wallet/register"; import { TON_CONNECT, type TonConnectOption } from "./tonconnect/option"; import type { SKWallets } from "./types"; export async function loadWallet(walletOption: W): Promise { const { match } = await import("ts-pattern"); - const wallet = await match(walletOption as WalletOption | TonConnectOption | NoirWalletOption) + const wallet = await match(walletOption as WalletOption | TonConnectOption) .with(WalletOption.COINBASE_MOBILE, async () => (await import("./coinbase")).coinbaseWallet) .with(WalletOption.BITGET, async () => (await import("@swapkit/wallet-extensions/bitget")).bitgetWallet) .with(WalletOption.CTRL, async () => (await import("@swapkit/wallet-extensions/ctrl")).ctrlWallet) @@ -47,7 +49,7 @@ export async function loadWallet(walletOption: W): Pr .with(WalletOption.LEDGER, async () => (await import("@swapkit/wallet-hardware/ledger")).ledgerWallet) .with(WalletOption.PASSKEYS, WalletOption.PASSKEY_WALLET, async () => (await import("./passkeys")).passkeysWallet) .with(WalletOption.PETRA, async () => (await import("@swapkit/wallet-extensions/petra")).petraWallet) - .with(NOIR_WALLET, async () => (await import("@swapkit/wallet-extensions/noir-wallet")).noirWallet) + .with(WalletOption.NOIR_WALLET, async () => (await import("@swapkit/wallet-extensions/noir-wallet")).noirWallet) .with(WalletOption.PHANTOM, async () => (await import("@swapkit/wallet-extensions/phantom")).phantomWallet) .with(WalletOption.POLKADOT_JS, async () => (await import("@swapkit/wallet-extensions/polkadotjs")).polkadotWallet) .with(WalletOption.RADIX_WALLET, async () => (await import("./radix")).radixWallet) From 6188a98f710b2b9c83c52f01b828c96685d6177d Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 25 Aug 2026 16:31:58 +0400 Subject: [PATCH 5/9] refactor(tonconnect): adopt helpers 5.1.0 registry, drop option shim Unwind the TON_CONNECT outside-the-enum literal shim now that the extensible WalletOption registry shipped (swapkit/sdk#346, helpers 5.1.0): tonconnect/register.ts declares the WalletOptionRegistry augmentation and registers the option; index/utils/types/tests go back to WalletOption.TON_CONNECT with no casts. Runtime value unchanged. Co-Authored-By: Claude Fable 5 --- .changeset/tonconnect-registry.md | 5 +++++ packages/wallets/src/tonconnect/index.ts | 13 ++++++------- packages/wallets/src/tonconnect/option.ts | 6 ------ packages/wallets/src/tonconnect/register.ts | 9 +++++++++ packages/wallets/src/types.ts | 4 ++-- packages/wallets/src/utils.ts | 11 ++++++----- packages/wallets/test/tonconnect.test.ts | 8 ++++---- 7 files changed, 32 insertions(+), 24 deletions(-) create mode 100644 .changeset/tonconnect-registry.md delete mode 100644 packages/wallets/src/tonconnect/option.ts create mode 100644 packages/wallets/src/tonconnect/register.ts diff --git a/.changeset/tonconnect-registry.md b/.changeset/tonconnect-registry.md new file mode 100644 index 0000000..feb092b --- /dev/null +++ b/.changeset/tonconnect-registry.md @@ -0,0 +1,5 @@ +--- +"@swapkit/wallets": patch +--- + +`TON_CONNECT` now registers through the `@swapkit/helpers` 5.1.0 extensible `WalletOption` registry (swapkit/sdk#346) instead of the interim outside-the-enum literal shim. No behavior change — the runtime value stays `"TON_CONNECT"`. diff --git a/packages/wallets/src/tonconnect/index.ts b/packages/wallets/src/tonconnect/index.ts index 7de3b08..ecc446c 100644 --- a/packages/wallets/src/tonconnect/index.ts +++ b/packages/wallets/src/tonconnect/index.ts @@ -1,7 +1,9 @@ -import { Chain, filterSupportedChains, type WalletOption } from "@swapkit/helpers"; +// Registers WalletOption.TON_CONNECT before anything below reads it. +import "./register"; + +import { Chain, filterSupportedChains, WalletOption } from "@swapkit/helpers"; import { createWallet, getWalletSupportedChains } from "@swapkit/wallet-core"; import { getWalletForChain } from "./helpers"; -import { TON_CONNECT } from "./option"; import type { TonConnectConfig } from "./types"; import { connectTonConnect, getTonConnectInstance } from "./walletMethods"; @@ -22,7 +24,7 @@ export const tonconnectWallet = createWallet({ balance: [], chain, disconnect: () => tonConnectUI.disconnect(), - walletType: TON_CONNECT, + walletType: WalletOption.TON_CONNECT, }); }); @@ -32,10 +34,7 @@ export const tonconnectWallet = createWallet({ directSigningSupport: { [Chain.Ton]: true }, name: "connectTonConnect", supportedChains: [Chain.Ton], - // createWallet constrains walletType to the WalletOption enum, which has no - // TON_CONNECT member until the registry lands upstream (swapkit/sdk#346) — - // the one sanctioned widening; runtime value is the same literal either way. - walletType: TON_CONNECT as unknown as WalletOption, + walletType: WalletOption.TON_CONNECT, }); export const TON_CONNECT_SUPPORTED_CHAINS = getWalletSupportedChains(tonconnectWallet); diff --git a/packages/wallets/src/tonconnect/option.ts b/packages/wallets/src/tonconnect/option.ts deleted file mode 100644 index 7c50aee..0000000 --- a/packages/wallets/src/tonconnect/option.ts +++ /dev/null @@ -1,6 +0,0 @@ -// @swapkit/helpers 5.0.0 shipped without the extensible WalletOption registry -// (swapkit/sdk#346 is unmerged), so TON_CONNECT lives outside the enum until a -// helpers release carries the registry again. Everything except the -// createWallet call site uses this literal type directly. -export const TON_CONNECT = "TON_CONNECT" as const; -export type TonConnectOption = typeof TON_CONNECT; diff --git a/packages/wallets/src/tonconnect/register.ts b/packages/wallets/src/tonconnect/register.ts new file mode 100644 index 0000000..ae4f932 --- /dev/null +++ b/packages/wallets/src/tonconnect/register.ts @@ -0,0 +1,9 @@ +import { registerWalletOption } from "@swapkit/helpers"; + +declare module "@swapkit/helpers" { + interface WalletOptionRegistry { + TON_CONNECT: "TON_CONNECT"; + } +} + +registerWalletOption("TON_CONNECT", "TON_CONNECT"); diff --git a/packages/wallets/src/types.ts b/packages/wallets/src/types.ts index 304bbb7..8e782d2 100644 --- a/packages/wallets/src/types.ts +++ b/packages/wallets/src/types.ts @@ -55,7 +55,7 @@ export type SKWallets = { [WalletOption.POLKADOT_JS]: typeof polkadotWallet; [WalletOption.RADIX_WALLET]: typeof radixWallet; [WalletOption.TALISMAN]: typeof talismanWallet; - TON_CONNECT: typeof tonconnectWallet; + [WalletOption.TON_CONNECT]: typeof tonconnectWallet; [WalletOption.TREZOR]: typeof trezorWallet; [WalletOption.TRONLINK]: typeof tronlinkWallet; [WalletOption.TRUSTWALLET_WEB]: typeof trustwalletWallet; @@ -133,7 +133,7 @@ export type SKWalletsSupportedChains = { [WalletOption.POLKADOT_JS]: typeof polkadotWallet.connectPolkadotJs.supportedChains; [WalletOption.RADIX_WALLET]: typeof radixWallet.connectRadixWallet.supportedChains; [WalletOption.TALISMAN]: typeof talismanWallet.connectTalisman.supportedChains; - TON_CONNECT: typeof tonconnectWallet.connectTonConnect.supportedChains; + [WalletOption.TON_CONNECT]: typeof tonconnectWallet.connectTonConnect.supportedChains; [WalletOption.TREZOR]: typeof trezorWallet.connectTrezor.supportedChains; [WalletOption.TRONLINK]: typeof tronlinkWallet.connectTronLink.supportedChains; [WalletOption.TRUSTWALLET_WEB]: typeof trustwalletWallet.connectTrustWallet.supportedChains; diff --git a/packages/wallets/src/utils.ts b/packages/wallets/src/utils.ts index 4f9a1b9..3afed41 100644 --- a/packages/wallets/src/utils.ts +++ b/packages/wallets/src/utils.ts @@ -1,14 +1,15 @@ import { WalletOption } from "@swapkit/helpers"; -// Registers WalletOption.NOIR_WALLET before the match below reads it; the -// connector itself still loads lazily via the match arm. +// Registers WalletOption.NOIR_WALLET and WalletOption.TON_CONNECT before the +// match below reads them; the connectors themselves still load lazily via +// their match arms. import "@swapkit/wallet-extensions/noir-wallet/register"; -import { TON_CONNECT, type TonConnectOption } from "./tonconnect/option"; +import "./tonconnect/register"; import type { SKWallets } from "./types"; export async function loadWallet(walletOption: W): Promise { const { match } = await import("ts-pattern"); - const wallet = await match(walletOption as WalletOption | TonConnectOption) + const wallet = await match(walletOption as WalletOption) .with(WalletOption.COINBASE_MOBILE, async () => (await import("./coinbase")).coinbaseWallet) .with(WalletOption.BITGET, async () => (await import("@swapkit/wallet-extensions/bitget")).bitgetWallet) .with(WalletOption.CTRL, async () => (await import("@swapkit/wallet-extensions/ctrl")).ctrlWallet) @@ -55,7 +56,7 @@ export async function loadWallet(walletOption: W): Pr .with(WalletOption.RADIX_WALLET, async () => (await import("./radix")).radixWallet) .with(WalletOption.TALISMAN, async () => (await import("@swapkit/wallet-extensions/talisman")).talismanWallet) .with(WalletOption.TRONLINK, async () => (await import("@swapkit/wallet-extensions/tronlink")).tronlinkWallet) - .with(TON_CONNECT, async () => (await import("./tonconnect")).tonconnectWallet) + .with(WalletOption.TON_CONNECT, async () => (await import("./tonconnect")).tonconnectWallet) .with(WalletOption.WALLET_SELECTOR, async () => (await import("./near-wallet-selector")).walletSelectorWallet) .with(WalletOption.XAMAN, async () => (await import("./xaman")).xamanWallet) .exhaustive(); diff --git a/packages/wallets/test/tonconnect.test.ts b/packages/wallets/test/tonconnect.test.ts index a62f97f..b9fe489 100644 --- a/packages/wallets/test/tonconnect.test.ts +++ b/packages/wallets/test/tonconnect.test.ts @@ -1,9 +1,9 @@ import { describe, expect, it } from "bun:test"; -import { SwapKitError } from "@swapkit/helpers"; +import { SwapKitError, WalletOption } from "@swapkit/helpers"; import { Address, beginCell } from "@ton/core"; import type { TonConnectUI } from "@tonconnect/ui"; -import { TON_CONNECT } from "../src/tonconnect/option"; +import "../src/tonconnect/register"; import { sendTonConnectTransaction, toFriendlyDestination } from "../src/tonconnect/walletMethods"; const RAW_ADDRESS = "0:83dfd552e63729b472fcbcc8c45ebcc6691702558b68ec7527e1ba403a0f31a8"; @@ -22,8 +22,8 @@ function makeFakeTonConnectUI(sentRequests: { address: string }[][]) { } describe("WalletOption", () => { - it("exposes the TON_CONNECT wallet option literal", () => { - expect(TON_CONNECT).toBe("TON_CONNECT"); + it("registers TON_CONNECT in the extensible WalletOption registry", () => { + expect(WalletOption.TON_CONNECT).toBe("TON_CONNECT"); }); }); From b733c2349444c5b43d0bbc9964b327afdcf94df7 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 25 Aug 2026 16:33:24 +0400 Subject: [PATCH 6/9] chore: settle bun.lock @near-js dedupe under bun 1.3.13 frozen check MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The lock carried develop's hoisted @near-js/crypto+transactions 2.5.0 entries alongside nested 2.5.1 pins; bun 1.3.13's frozen validation flags the stale split. Regenerated so both dedupe to 2.5.1 — bun install --frozen-lockfile now passes clean. Co-Authored-By: Claude Fable 5 --- bun.lock | 144 +------------------------------------------------------ 1 file changed, 2 insertions(+), 142 deletions(-) diff --git a/bun.lock b/bun.lock index 3f11716..9c352e3 100644 --- a/bun.lock +++ b/bun.lock @@ -665,7 +665,7 @@ "@near-js/accounts": ["@near-js/accounts@2.5.1", "", { "dependencies": { "@near-js/crypto": "2.5.1", "@near-js/keystores": "2.5.1", "@near-js/providers": "2.5.1", "@near-js/signers": "2.5.1", "@near-js/tokens": "2.5.1", "@near-js/transactions": "2.5.1", "@near-js/types": "2.5.1", "@near-js/utils": "2.5.1", "@noble/hashes": "1.7.1", "borsh": "1.0.0", "depd": "2.0.0", "is-my-json-valid": "^2.20.6", "lru_map": "0.4.1", "near-abi": "0.2.0" } }, "sha512-L4/Z9Ujwnz8/uvOExESP6h0t/plu4/0SFrL+UJBnfO5LObVwnJH2KG6MCLONy8rKh1FZHOlT9LPhtG/6nUrvOQ=="], - "@near-js/crypto": ["@near-js/crypto@2.5.0", "", { "dependencies": { "@near-js/types": "2.5.0", "@near-js/utils": "2.5.0", "@noble/curves": "1.8.1", "@noble/hashes": "^1.7.1", "borsh": "1.0.0", "secp256k1": "5.0.1" } }, "sha512-bsMCasnjRne9j0u5DuKeO0/xwS49GgRrVxzmW9WRZ7yWWh0U8IidTxNHTL1QCDFJNwwzt9HDnuj8XeVhlpixww=="], + "@near-js/crypto": ["@near-js/crypto@2.5.1", "", { "dependencies": { "@near-js/types": "2.5.1", "@near-js/utils": "2.5.1", "@noble/curves": "1.8.1", "@noble/hashes": "^1.7.1", "borsh": "1.0.0", "secp256k1": "5.0.1" } }, "sha512-Kb+bbnUrfvuzzed9hpLRpcIlCMOaQlw/7BxlZPCq8DggVaK1m0nKR1DHQs2cV0Q0WSKSk2UrFJho1dxeKL5alg=="], "@near-js/keystores": ["@near-js/keystores@2.5.1", "", { "dependencies": { "@near-js/crypto": "2.5.1", "@near-js/types": "2.5.1" } }, "sha512-UlP3GXeDzRyUlL3qKZUkwSwbABDarhOqRRR0vcMBOOu+063GDULGio9GTWDvKDDi11nmfbhOzbiY5vXEW4jR8g=="], @@ -679,7 +679,7 @@ "@near-js/tokens": ["@near-js/tokens@2.5.1", "", {}, "sha512-doDtOaSA2FOsYzzwocg0L02z6ORNL7HFAuL455y2O38//F4C2jp+C9De9fWrItkrim2jKjoSR3UvO2AuVbwmWA=="], - "@near-js/transactions": ["@near-js/transactions@2.5.0", "", { "dependencies": { "@near-js/crypto": "2.5.0", "@near-js/types": "2.5.0", "@near-js/utils": "2.5.0", "@noble/hashes": "1.7.1", "borsh": "1.0.0" } }, "sha512-gVhWS4T5VcLjyVaW8nxWxK7kcgbGgyJ0YVS+VmaFzQbSZKuYgNnQXxynTycFc34awTNbp3a4/MqAd8RgX9VIcg=="], + "@near-js/transactions": ["@near-js/transactions@2.5.1", "", { "dependencies": { "@near-js/crypto": "2.5.1", "@near-js/types": "2.5.1", "@near-js/utils": "2.5.1", "@noble/hashes": "1.7.1", "borsh": "1.0.0" } }, "sha512-0svK5K6VqOciSIn9mxreyS0uQf8T1UZc71JBA6yrstpHJhltz/dvNUMY0FV+xHx3H/KAdvCMjX0VLEpyi08yWQ=="], "@near-js/types": ["@near-js/types@2.5.1", "", {}, "sha512-lUJJmbV6qcilIwswldeP7FIjkjTWvmtgI+yQHVmiBNRVjYvPMiQ/e9vs3SXE/cYtRluAdq0JHJwYoqhFb69mwA=="], @@ -2665,22 +2665,12 @@ "@mysten/utils/@scure/base": ["@scure/base@1.2.6", "", {}, "sha512-g/nm5FgUa//MCj1gV09zTJTaM6KBAHqLN907YVQqf7zC49+DcO4B1so4ZX07Ef10Twr6nuqYEH9GEggFXA4Fmg=="], - "@near-js/accounts/@near-js/crypto": ["@near-js/crypto@2.5.1", "", { "dependencies": { "@near-js/types": "2.5.1", "@near-js/utils": "2.5.1", "@noble/curves": "1.8.1", "@noble/hashes": "^1.7.1", "borsh": "1.0.0", "secp256k1": "5.0.1" } }, "sha512-Kb+bbnUrfvuzzed9hpLRpcIlCMOaQlw/7BxlZPCq8DggVaK1m0nKR1DHQs2cV0Q0WSKSk2UrFJho1dxeKL5alg=="], - - "@near-js/accounts/@near-js/transactions": ["@near-js/transactions@2.5.1", "", { "dependencies": { "@near-js/crypto": "2.5.1", "@near-js/types": "2.5.1", "@near-js/utils": "2.5.1", "@noble/hashes": "1.7.1", "borsh": "1.0.0" } }, "sha512-0svK5K6VqOciSIn9mxreyS0uQf8T1UZc71JBA6yrstpHJhltz/dvNUMY0FV+xHx3H/KAdvCMjX0VLEpyi08yWQ=="], - "@near-js/accounts/@noble/hashes": ["@noble/hashes@1.7.1", "", {}, "sha512-B8XBPsn4vT/KJAGqDzbwztd+6Yte3P4V7iafm24bxgDe/mlRuK6xmWPuCNrKt2vDafZ8MfJLlchDG/vYafQEjQ=="], - "@near-js/crypto/@near-js/types": ["@near-js/types@2.5.0", "", {}, "sha512-U0HgAnRwN/XKJ1O4Htac+G5bvkMalBJ8i/kwAPJpoOI1MUtP9dhbCG4GBErADCpczukhrAWlDBHHdfhPnhgyzQ=="], - - "@near-js/crypto/@near-js/utils": ["@near-js/utils@2.5.0", "", { "dependencies": { "@near-js/types": "2.5.0", "@scure/base": "^1.2.4", "depd": "2.0.0", "mustache": "4.0.0" } }, "sha512-hifdeZVzV9TFcgLNekRVVnB6q7zxdCQPmC9cybT1SjfeiIP/5jPabOZXGWNJPSloRcrTMluCTtaWinIw1HXanQ=="], - "@near-js/crypto/@noble/curves": ["@noble/curves@1.8.1", "", { "dependencies": { "@noble/hashes": "1.7.1" } }, "sha512-warwspo+UYUPep0Q+vtdVB4Ugn8GGQj8iyB3gnRWsztmUHTI3S1nhdiWNsPUGL0vud7JlRRk1XEu7Lq1KGTnMQ=="], "@near-js/crypto/@noble/hashes": ["@noble/hashes@1.8.0", "", {}, "sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A=="], - "@near-js/keystores/@near-js/crypto": ["@near-js/crypto@2.5.1", "", { "dependencies": { "@near-js/types": "2.5.1", "@near-js/utils": "2.5.1", "@noble/curves": "1.8.1", "@noble/hashes": "^1.7.1", "borsh": "1.0.0", "secp256k1": "5.0.1" } }, "sha512-Kb+bbnUrfvuzzed9hpLRpcIlCMOaQlw/7BxlZPCq8DggVaK1m0nKR1DHQs2cV0Q0WSKSk2UrFJho1dxeKL5alg=="], - "@near-js/keystores-browser/@near-js/crypto": ["@near-js/crypto@1.2.1", "", { "dependencies": { "@near-js/types": "0.0.4", "@near-js/utils": "0.1.0", "@noble/curves": "1.2.0", "bn.js": "5.2.1", "borsh": "1.0.0", "randombytes": "2.1.0" } }, "sha512-iJOHaGKvdudYfR8nEtRhGlgcTEHeVmxMoT0JVXmuP3peG96v/sSnA03CE6MZBeCC8txKAQOffagxE7oU6hJp9g=="], "@near-js/keystores-browser/@near-js/keystores": ["@near-js/keystores@0.0.9", "", { "dependencies": { "@near-js/crypto": "1.2.1", "@near-js/types": "0.0.4" } }, "sha512-j8ySgVEcm2Gg6zxkSdadNtPlIqhJZdPGfWWM3tPtEoowNS9snhwZn5NRFPrgmX0+MzpF7E091CRcY90MvRVhsg=="], @@ -2689,22 +2679,10 @@ "@near-js/keystores-node/@near-js/keystores": ["@near-js/keystores@0.0.9", "", { "dependencies": { "@near-js/crypto": "1.2.1", "@near-js/types": "0.0.4" } }, "sha512-j8ySgVEcm2Gg6zxkSdadNtPlIqhJZdPGfWWM3tPtEoowNS9snhwZn5NRFPrgmX0+MzpF7E091CRcY90MvRVhsg=="], - "@near-js/providers/@near-js/crypto": ["@near-js/crypto@2.5.1", "", { "dependencies": { "@near-js/types": "2.5.1", "@near-js/utils": "2.5.1", "@noble/curves": "1.8.1", "@noble/hashes": "^1.7.1", "borsh": "1.0.0", "secp256k1": "5.0.1" } }, "sha512-Kb+bbnUrfvuzzed9hpLRpcIlCMOaQlw/7BxlZPCq8DggVaK1m0nKR1DHQs2cV0Q0WSKSk2UrFJho1dxeKL5alg=="], - - "@near-js/providers/@near-js/transactions": ["@near-js/transactions@2.5.1", "", { "dependencies": { "@near-js/crypto": "2.5.1", "@near-js/types": "2.5.1", "@near-js/utils": "2.5.1", "@noble/hashes": "1.7.1", "borsh": "1.0.0" } }, "sha512-0svK5K6VqOciSIn9mxreyS0uQf8T1UZc71JBA6yrstpHJhltz/dvNUMY0FV+xHx3H/KAdvCMjX0VLEpyi08yWQ=="], - "@near-js/providers/node-fetch": ["node-fetch@2.6.7", "", { "dependencies": { "whatwg-url": "^5.0.0" }, "peerDependencies": { "encoding": "^0.1.0" }, "optionalPeers": ["encoding"] }, "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ=="], - "@near-js/signers/@near-js/crypto": ["@near-js/crypto@2.5.1", "", { "dependencies": { "@near-js/types": "2.5.1", "@near-js/utils": "2.5.1", "@noble/curves": "1.8.1", "@noble/hashes": "^1.7.1", "borsh": "1.0.0", "secp256k1": "5.0.1" } }, "sha512-Kb+bbnUrfvuzzed9hpLRpcIlCMOaQlw/7BxlZPCq8DggVaK1m0nKR1DHQs2cV0Q0WSKSk2UrFJho1dxeKL5alg=="], - - "@near-js/signers/@near-js/transactions": ["@near-js/transactions@2.5.1", "", { "dependencies": { "@near-js/crypto": "2.5.1", "@near-js/types": "2.5.1", "@near-js/utils": "2.5.1", "@noble/hashes": "1.7.1", "borsh": "1.0.0" } }, "sha512-0svK5K6VqOciSIn9mxreyS0uQf8T1UZc71JBA6yrstpHJhltz/dvNUMY0FV+xHx3H/KAdvCMjX0VLEpyi08yWQ=="], - "@near-js/signers/@noble/hashes": ["@noble/hashes@1.7.1", "", {}, "sha512-B8XBPsn4vT/KJAGqDzbwztd+6Yte3P4V7iafm24bxgDe/mlRuK6xmWPuCNrKt2vDafZ8MfJLlchDG/vYafQEjQ=="], - "@near-js/transactions/@near-js/types": ["@near-js/types@2.5.0", "", {}, "sha512-U0HgAnRwN/XKJ1O4Htac+G5bvkMalBJ8i/kwAPJpoOI1MUtP9dhbCG4GBErADCpczukhrAWlDBHHdfhPnhgyzQ=="], - - "@near-js/transactions/@near-js/utils": ["@near-js/utils@2.5.0", "", { "dependencies": { "@near-js/types": "2.5.0", "@scure/base": "^1.2.4", "depd": "2.0.0", "mustache": "4.0.0" } }, "sha512-hifdeZVzV9TFcgLNekRVVnB6q7zxdCQPmC9cybT1SjfeiIP/5jPabOZXGWNJPSloRcrTMluCTtaWinIw1HXanQ=="], - "@near-js/transactions/@noble/hashes": ["@noble/hashes@1.7.1", "", {}, "sha512-B8XBPsn4vT/KJAGqDzbwztd+6Yte3P4V7iafm24bxgDe/mlRuK6xmWPuCNrKt2vDafZ8MfJLlchDG/vYafQEjQ=="], "@near-js/utils/@scure/base": ["@scure/base@1.2.6", "", {}, "sha512-g/nm5FgUa//MCj1gV09zTJTaM6KBAHqLN907YVQqf7zC49+DcO4B1so4ZX07Ef10Twr6nuqYEH9GEggFXA4Fmg=="], @@ -2725,10 +2703,6 @@ "@near-js/wallet-account/bn.js": ["bn.js@5.2.1", "", {}, "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ=="], - "@near-wallet-selector/core/@near-js/crypto": ["@near-js/crypto@2.5.1", "", { "dependencies": { "@near-js/types": "2.5.1", "@near-js/utils": "2.5.1", "@noble/curves": "1.8.1", "@noble/hashes": "^1.7.1", "borsh": "1.0.0", "secp256k1": "5.0.1" } }, "sha512-Kb+bbnUrfvuzzed9hpLRpcIlCMOaQlw/7BxlZPCq8DggVaK1m0nKR1DHQs2cV0Q0WSKSk2UrFJho1dxeKL5alg=="], - - "@near-wallet-selector/core/@near-js/transactions": ["@near-js/transactions@2.5.1", "", { "dependencies": { "@near-js/crypto": "2.5.1", "@near-js/types": "2.5.1", "@near-js/utils": "2.5.1", "@noble/hashes": "1.7.1", "borsh": "1.0.0" } }, "sha512-0svK5K6VqOciSIn9mxreyS0uQf8T1UZc71JBA6yrstpHJhltz/dvNUMY0FV+xHx3H/KAdvCMjX0VLEpyi08yWQ=="], - "@near-wallet-selector/core/borsh": ["borsh@2.0.0", "", {}, "sha512-kc9+BgR3zz9+cjbwM8ODoUB4fs3X3I5A/HtX7LZKxCLaMrEeDFoBpnhZY//DTS1VZBSs6S5v46RZRbZjRFspEg=="], "@near-wallet-selector/core/rxjs": ["rxjs@7.8.1", "", { "dependencies": { "tslib": "^2.1.0" } }, "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg=="], @@ -2923,12 +2897,6 @@ "@swapkit/cosmos-signer/cosmjs-types": ["cosmjs-types@0.11.0", "", {}, "sha512-kDSkgHpRTrg1413jCNehT3P21+EBxZWFMBr9JEzVfmPiNdtuwAoLAkCYo7c7i/pTakAwyHsXbxOg8kkD+AN33w=="], - "@swapkit/plugins/@near-js/transactions": ["@near-js/transactions@2.5.1", "", { "dependencies": { "@near-js/crypto": "2.5.1", "@near-js/types": "2.5.1", "@near-js/utils": "2.5.1", "@noble/hashes": "1.7.1", "borsh": "1.0.0" } }, "sha512-0svK5K6VqOciSIn9mxreyS0uQf8T1UZc71JBA6yrstpHJhltz/dvNUMY0FV+xHx3H/KAdvCMjX0VLEpyi08yWQ=="], - - "@swapkit/toolboxes/@near-js/crypto": ["@near-js/crypto@2.5.1", "", { "dependencies": { "@near-js/types": "2.5.1", "@near-js/utils": "2.5.1", "@noble/curves": "1.8.1", "@noble/hashes": "^1.7.1", "borsh": "1.0.0", "secp256k1": "5.0.1" } }, "sha512-Kb+bbnUrfvuzzed9hpLRpcIlCMOaQlw/7BxlZPCq8DggVaK1m0nKR1DHQs2cV0Q0WSKSk2UrFJho1dxeKL5alg=="], - - "@swapkit/toolboxes/@near-js/transactions": ["@near-js/transactions@2.5.1", "", { "dependencies": { "@near-js/crypto": "2.5.1", "@near-js/types": "2.5.1", "@near-js/utils": "2.5.1", "@noble/hashes": "1.7.1", "borsh": "1.0.0" } }, "sha512-0svK5K6VqOciSIn9mxreyS0uQf8T1UZc71JBA6yrstpHJhltz/dvNUMY0FV+xHx3H/KAdvCMjX0VLEpyi08yWQ=="], - "@swapkit/toolboxes/@stricahq/typhonjs": ["@stricahq/typhonjs@3.1.0", "", { "dependencies": { "@stricahq/cbors": "1.0.2", "bech32": "^2.0.0", "bignumber.js": "^9.0.1", "blakejs": "^1.2.1", "bs58": "^5.0.0", "buffer": "^6.0.3", "lodash": "^4.17.21" } }, "sha512-Eaw0qqNIz+6sA9zD/9pFCdQ+gNbCv8PKFMhXu4Vq6KSR1XsH40jNPFkrqgKaq8q+gbO569U1+tu41dHk40JNbw=="], "@swapkit/toolboxes/cosmjs-types": ["cosmjs-types@0.11.0", "", {}, "sha512-kDSkgHpRTrg1413jCNehT3P21+EBxZWFMBr9JEzVfmPiNdtuwAoLAkCYo7c7i/pTakAwyHsXbxOg8kkD+AN33w=="], @@ -2941,10 +2909,6 @@ "@swapkit/ui/@cosmjs/stargate": ["@cosmjs/stargate@0.39.0", "", { "dependencies": { "@cosmjs/amino": "^0.39.0", "@cosmjs/encoding": "^0.39.0", "@cosmjs/math": "^0.39.0", "@cosmjs/proto-signing": "^0.39.0", "@cosmjs/stream": "^0.39.0", "@cosmjs/tendermint-rpc": "^0.39.0", "@cosmjs/utils": "^0.39.0", "cosmjs-types": "^0.11.0" } }, "sha512-dQtucU9czF2NUUbEKs19PMfv+EusDFKWHMVK6Hinytmpq9sdk5JUIln+g/8k+UjKcV4HPv6S0AywbhE+tl84kQ=="], - "@swapkit/ui/@near-js/crypto": ["@near-js/crypto@2.5.1", "", { "dependencies": { "@near-js/types": "2.5.1", "@near-js/utils": "2.5.1", "@noble/curves": "1.8.1", "@noble/hashes": "^1.7.1", "borsh": "1.0.0", "secp256k1": "5.0.1" } }, "sha512-Kb+bbnUrfvuzzed9hpLRpcIlCMOaQlw/7BxlZPCq8DggVaK1m0nKR1DHQs2cV0Q0WSKSk2UrFJho1dxeKL5alg=="], - - "@swapkit/ui/@near-js/transactions": ["@near-js/transactions@2.5.1", "", { "dependencies": { "@near-js/crypto": "2.5.1", "@near-js/types": "2.5.1", "@near-js/utils": "2.5.1", "@noble/hashes": "1.7.1", "borsh": "1.0.0" } }, "sha512-0svK5K6VqOciSIn9mxreyS0uQf8T1UZc71JBA6yrstpHJhltz/dvNUMY0FV+xHx3H/KAdvCMjX0VLEpyi08yWQ=="], - "@swapkit/ui/@stricahq/typhonjs": ["@stricahq/typhonjs@3.1.0", "", { "dependencies": { "@stricahq/cbors": "1.0.2", "bech32": "^2.0.0", "bignumber.js": "^9.0.1", "blakejs": "^1.2.1", "bs58": "^5.0.0", "buffer": "^6.0.3", "lodash": "^4.17.21" } }, "sha512-Eaw0qqNIz+6sA9zD/9pFCdQ+gNbCv8PKFMhXu4Vq6KSR1XsH40jNPFkrqgKaq8q+gbO569U1+tu41dHk40JNbw=="], "@swapkit/ui/@swapkit/core": ["@swapkit/core@4.6.4", "", { "dependencies": { "@swapkit/helpers": "4.20.1", "@swapkit/plugins": "4.7.4", "@swapkit/toolboxes": "4.28.0", "@swapkit/wallet-core": "4.3.21" }, "peerDependencies": { "@stricahq/typhonjs": "3.1.0", "@ton/core": "0.63.1", "cosmjs-types": "0.11.0", "ts-pattern": "5.9.0" } }, "sha512-0nwvzI7dOy9uieMXcJzTGe6DuQRurmj6DKV4+A4nYT2Me0OOFnfgxSJ+O2Z3qa4Z/KyO47mfOuHKmSXLKEwlLg=="], @@ -2969,24 +2933,14 @@ "@swapkit/wallet-extensions/@cosmjs/stargate": ["@cosmjs/stargate@0.37.1", "", { "dependencies": { "@cosmjs/amino": "^0.37.1", "@cosmjs/encoding": "^0.37.1", "@cosmjs/math": "^0.37.1", "@cosmjs/proto-signing": "^0.37.1", "@cosmjs/stream": "^0.37.1", "@cosmjs/tendermint-rpc": "^0.37.1", "@cosmjs/utils": "^0.37.1", "cosmjs-types": "^0.10.1" } }, "sha512-nQgaJB7A81cRYtmDrcIySq8hbd+QLXJTGFEs6R1xMdxascaABX0x86nS44ALk+EZojQQRnwupOsw1dKLlQmIFg=="], - "@swapkit/wallet-extensions/@near-js/crypto": ["@near-js/crypto@2.5.1", "", { "dependencies": { "@near-js/types": "2.5.1", "@near-js/utils": "2.5.1", "@noble/curves": "1.8.1", "@noble/hashes": "^1.7.1", "borsh": "1.0.0", "secp256k1": "5.0.1" } }, "sha512-Kb+bbnUrfvuzzed9hpLRpcIlCMOaQlw/7BxlZPCq8DggVaK1m0nKR1DHQs2cV0Q0WSKSk2UrFJho1dxeKL5alg=="], - - "@swapkit/wallet-extensions/@near-js/transactions": ["@near-js/transactions@2.5.1", "", { "dependencies": { "@near-js/crypto": "2.5.1", "@near-js/types": "2.5.1", "@near-js/utils": "2.5.1", "@noble/hashes": "1.7.1", "borsh": "1.0.0" } }, "sha512-0svK5K6VqOciSIn9mxreyS0uQf8T1UZc71JBA6yrstpHJhltz/dvNUMY0FV+xHx3H/KAdvCMjX0VLEpyi08yWQ=="], - "@swapkit/wallet-hardware/@cosmjs/amino": ["@cosmjs/amino@0.37.1", "", { "dependencies": { "@cosmjs/crypto": "^0.37.1", "@cosmjs/encoding": "^0.37.1", "@cosmjs/math": "^0.37.1", "@cosmjs/utils": "^0.37.1" } }, "sha512-z3QSfw2S2kGbi5XBahOdAIu2Nnb7XiLgTOphZQoOJXJcTQemAG/wYHLJD9TcQ48SX+eDTJ4i7XRyJaIdg0ClcA=="], "@swapkit/wallet-hardware/@cosmjs/proto-signing": ["@cosmjs/proto-signing@0.37.1", "", { "dependencies": { "@cosmjs/amino": "^0.37.1", "@cosmjs/crypto": "^0.37.1", "@cosmjs/encoding": "^0.37.1", "@cosmjs/math": "^0.37.1", "@cosmjs/utils": "^0.37.1", "cosmjs-types": "^0.10.1" } }, "sha512-cCUfejHOfjx6L/noF9QnXIy4dKoTKl56NFIqz2cizx+kZKszdL0yOtQlu0dD9nR+uMafRHU7aok6v5HH4RZIDw=="], - "@swapkit/wallet-hardware/@near-js/crypto": ["@near-js/crypto@2.5.1", "", { "dependencies": { "@near-js/types": "2.5.1", "@near-js/utils": "2.5.1", "@noble/curves": "1.8.1", "@noble/hashes": "^1.7.1", "borsh": "1.0.0", "secp256k1": "5.0.1" } }, "sha512-Kb+bbnUrfvuzzed9hpLRpcIlCMOaQlw/7BxlZPCq8DggVaK1m0nKR1DHQs2cV0Q0WSKSk2UrFJho1dxeKL5alg=="], - - "@swapkit/wallet-hardware/@near-js/transactions": ["@near-js/transactions@2.5.1", "", { "dependencies": { "@near-js/crypto": "2.5.1", "@near-js/types": "2.5.1", "@near-js/utils": "2.5.1", "@noble/hashes": "1.7.1", "borsh": "1.0.0" } }, "sha512-0svK5K6VqOciSIn9mxreyS0uQf8T1UZc71JBA6yrstpHJhltz/dvNUMY0FV+xHx3H/KAdvCMjX0VLEpyi08yWQ=="], - "@swapkit/wallets/@cosmjs/amino": ["@cosmjs/amino@0.37.1", "", { "dependencies": { "@cosmjs/crypto": "^0.37.1", "@cosmjs/encoding": "^0.37.1", "@cosmjs/math": "^0.37.1", "@cosmjs/utils": "^0.37.1" } }, "sha512-z3QSfw2S2kGbi5XBahOdAIu2Nnb7XiLgTOphZQoOJXJcTQemAG/wYHLJD9TcQ48SX+eDTJ4i7XRyJaIdg0ClcA=="], "@swapkit/wallets/@cosmjs/proto-signing": ["@cosmjs/proto-signing@0.37.1", "", { "dependencies": { "@cosmjs/amino": "^0.37.1", "@cosmjs/crypto": "^0.37.1", "@cosmjs/encoding": "^0.37.1", "@cosmjs/math": "^0.37.1", "@cosmjs/utils": "^0.37.1", "cosmjs-types": "^0.10.1" } }, "sha512-cCUfejHOfjx6L/noF9QnXIy4dKoTKl56NFIqz2cizx+kZKszdL0yOtQlu0dD9nR+uMafRHU7aok6v5HH4RZIDw=="], - "@swapkit/wallets/@near-js/transactions": ["@near-js/transactions@2.5.1", "", { "dependencies": { "@near-js/crypto": "2.5.1", "@near-js/types": "2.5.1", "@near-js/utils": "2.5.1", "@noble/hashes": "1.7.1", "borsh": "1.0.0" } }, "sha512-0svK5K6VqOciSIn9mxreyS0uQf8T1UZc71JBA6yrstpHJhltz/dvNUMY0FV+xHx3H/KAdvCMjX0VLEpyi08yWQ=="], - "@swc/helpers/tslib": ["tslib@2.8.1", "", {}, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="], "@ton/ton/axios": ["axios@1.15.0", "", { "dependencies": { "follow-redirects": "^1.15.11", "form-data": "^4.0.5", "proxy-from-env": "^2.1.0" } }, "sha512-wWyJDlAatxk30ZJer+GeCWS209sA42X+N5jU2jy6oHTp7ufw8uzUTVFBX9+wTfAlhiJXGS0Bq7X6efruWjuK9Q=="], @@ -3325,12 +3279,6 @@ "@mysten/sui/@scure/bip32/@noble/curves": ["@noble/curves@1.9.7", "", { "dependencies": { "@noble/hashes": "1.8.0" } }, "sha512-gbKGcRUYIjA3/zCCNaWDciTMFI0dCkvou3TL8Zmy5Nc7sJ47a0jtOeZoTaMxkuqRo9cRhjOdZJXegxYE5FN/xw=="], - "@near-js/accounts/@near-js/crypto/@noble/curves": ["@noble/curves@1.8.1", "", { "dependencies": { "@noble/hashes": "1.7.1" } }, "sha512-warwspo+UYUPep0Q+vtdVB4Ugn8GGQj8iyB3gnRWsztmUHTI3S1nhdiWNsPUGL0vud7JlRRk1XEu7Lq1KGTnMQ=="], - - "@near-js/accounts/@near-js/crypto/@noble/hashes": ["@noble/hashes@1.8.0", "", {}, "sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A=="], - - "@near-js/crypto/@near-js/utils/@scure/base": ["@scure/base@1.2.6", "", {}, "sha512-g/nm5FgUa//MCj1gV09zTJTaM6KBAHqLN907YVQqf7zC49+DcO4B1so4ZX07Ef10Twr6nuqYEH9GEggFXA4Fmg=="], - "@near-js/crypto/@noble/curves/@noble/hashes": ["@noble/hashes@1.7.1", "", {}, "sha512-B8XBPsn4vT/KJAGqDzbwztd+6Yte3P4V7iafm24bxgDe/mlRuK6xmWPuCNrKt2vDafZ8MfJLlchDG/vYafQEjQ=="], "@near-js/keystores-browser/@near-js/crypto/@near-js/types": ["@near-js/types@0.0.4", "", { "dependencies": { "bn.js": "5.2.1" } }, "sha512-8TTMbLMnmyG06R5YKWuS/qFG1tOA3/9lX4NgBqQPsvaWmDsa+D+QwOkrEHDegped0ZHQwcjAXjKML1S1TyGYKg=="], @@ -3353,22 +3301,6 @@ "@near-js/keystores-node/@near-js/keystores/@near-js/types": ["@near-js/types@0.0.4", "", { "dependencies": { "bn.js": "5.2.1" } }, "sha512-8TTMbLMnmyG06R5YKWuS/qFG1tOA3/9lX4NgBqQPsvaWmDsa+D+QwOkrEHDegped0ZHQwcjAXjKML1S1TyGYKg=="], - "@near-js/keystores/@near-js/crypto/@noble/curves": ["@noble/curves@1.8.1", "", { "dependencies": { "@noble/hashes": "1.7.1" } }, "sha512-warwspo+UYUPep0Q+vtdVB4Ugn8GGQj8iyB3gnRWsztmUHTI3S1nhdiWNsPUGL0vud7JlRRk1XEu7Lq1KGTnMQ=="], - - "@near-js/keystores/@near-js/crypto/@noble/hashes": ["@noble/hashes@1.8.0", "", {}, "sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A=="], - - "@near-js/providers/@near-js/crypto/@noble/curves": ["@noble/curves@1.8.1", "", { "dependencies": { "@noble/hashes": "1.7.1" } }, "sha512-warwspo+UYUPep0Q+vtdVB4Ugn8GGQj8iyB3gnRWsztmUHTI3S1nhdiWNsPUGL0vud7JlRRk1XEu7Lq1KGTnMQ=="], - - "@near-js/providers/@near-js/crypto/@noble/hashes": ["@noble/hashes@1.8.0", "", {}, "sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A=="], - - "@near-js/providers/@near-js/transactions/@noble/hashes": ["@noble/hashes@1.7.1", "", {}, "sha512-B8XBPsn4vT/KJAGqDzbwztd+6Yte3P4V7iafm24bxgDe/mlRuK6xmWPuCNrKt2vDafZ8MfJLlchDG/vYafQEjQ=="], - - "@near-js/signers/@near-js/crypto/@noble/curves": ["@noble/curves@1.8.1", "", { "dependencies": { "@noble/hashes": "1.7.1" } }, "sha512-warwspo+UYUPep0Q+vtdVB4Ugn8GGQj8iyB3gnRWsztmUHTI3S1nhdiWNsPUGL0vud7JlRRk1XEu7Lq1KGTnMQ=="], - - "@near-js/signers/@near-js/crypto/@noble/hashes": ["@noble/hashes@1.8.0", "", {}, "sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A=="], - - "@near-js/transactions/@near-js/utils/@scure/base": ["@scure/base@1.2.6", "", {}, "sha512-g/nm5FgUa//MCj1gV09zTJTaM6KBAHqLN907YVQqf7zC49+DcO4B1so4ZX07Ef10Twr6nuqYEH9GEggFXA4Fmg=="], - "@near-js/wallet-account/@near-js/accounts/@near-js/providers": ["@near-js/providers@0.1.1", "", { "dependencies": { "@near-js/transactions": "1.1.2", "@near-js/types": "0.0.4", "@near-js/utils": "0.1.0", "bn.js": "5.2.1", "borsh": "1.0.0", "http-errors": "1.7.2" }, "optionalDependencies": { "node-fetch": "2.6.7" } }, "sha512-0M/Vz2Ac34ShKVoe2ftVJ5Qg4eSbEqNXDbCDOdVj/2qbLWZa7Wpe+me5ei4TMY2ZhGdawhgJUPrYwdJzOCyf8w=="], "@near-js/wallet-account/@near-js/accounts/near-abi": ["near-abi@0.1.1", "", { "dependencies": { "@types/json-schema": "^7.0.11" } }, "sha512-RVDI8O+KVxRpC3KycJ1bpfVj9Zv+xvq9PlW1yIFl46GhrnLw83/72HqHGjGDjQ8DtltkcpSjY9X3YIGZ+1QyzQ=="], @@ -3381,16 +3313,6 @@ "@near-js/wallet-account/@near-js/utils/bs58": ["bs58@4.0.0", "", { "dependencies": { "base-x": "^2.0.1" } }, "sha512-/jcGuUuSebyxwLLfKrbKnCJttxRf9PM51EnHTwmFKBxl4z1SGkoAhrfd6uZKE0dcjQTfm6XzTP8DPr1tzE4KIw=="], - "@near-wallet-selector/core/@near-js/crypto/@noble/curves": ["@noble/curves@1.8.1", "", { "dependencies": { "@noble/hashes": "1.7.1" } }, "sha512-warwspo+UYUPep0Q+vtdVB4Ugn8GGQj8iyB3gnRWsztmUHTI3S1nhdiWNsPUGL0vud7JlRRk1XEu7Lq1KGTnMQ=="], - - "@near-wallet-selector/core/@near-js/crypto/@noble/hashes": ["@noble/hashes@1.8.0", "", {}, "sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A=="], - - "@near-wallet-selector/core/@near-js/crypto/borsh": ["borsh@1.0.0", "", {}, "sha512-fSVWzzemnyfF89EPwlUNsrS5swF5CrtiN4e+h0/lLf4dz2he4L3ndM20PS9wj7ICSkXJe/TQUHdaPTq15b1mNQ=="], - - "@near-wallet-selector/core/@near-js/transactions/@noble/hashes": ["@noble/hashes@1.7.1", "", {}, "sha512-B8XBPsn4vT/KJAGqDzbwztd+6Yte3P4V7iafm24bxgDe/mlRuK6xmWPuCNrKt2vDafZ8MfJLlchDG/vYafQEjQ=="], - - "@near-wallet-selector/core/@near-js/transactions/borsh": ["borsh@1.0.0", "", {}, "sha512-fSVWzzemnyfF89EPwlUNsrS5swF5CrtiN4e+h0/lLf4dz2he4L3ndM20PS9wj7ICSkXJe/TQUHdaPTq15b1mNQ=="], - "@radixdlt/radix-dapp-toolkit/@noble/curves/@noble/hashes": ["@noble/hashes@1.8.0", "", {}, "sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A=="], "@scure/starknet/@noble/curves/@noble/hashes": ["@noble/hashes@1.6.0", "", {}, "sha512-YUULf0Uk4/mAA89w+k3+yUYh6NrEvxZa5T6SY3wlMvE2chHkxFUUIDI8/XW1QSC357iA5pSnqt7XEhvFOqmDyQ=="], @@ -3439,16 +3361,6 @@ "@swapkit/core/@stricahq/typhonjs/@stricahq/cbors": ["@stricahq/cbors@1.0.2", "", { "dependencies": { "bignumber.js": "^9.0.2", "buffer": "^6.0.3" } }, "sha512-6ePsEiq7EGHA5IiPn9poA7sF5iXPqt30kKw3pjR/BhP7S+XHZNu/OPumESWnVl4AM+IEYC2x9eL+4qRPsTPVww=="], - "@swapkit/plugins/@near-js/transactions/@near-js/crypto": ["@near-js/crypto@2.5.1", "", { "dependencies": { "@near-js/types": "2.5.1", "@near-js/utils": "2.5.1", "@noble/curves": "1.8.1", "@noble/hashes": "^1.7.1", "borsh": "1.0.0", "secp256k1": "5.0.1" } }, "sha512-Kb+bbnUrfvuzzed9hpLRpcIlCMOaQlw/7BxlZPCq8DggVaK1m0nKR1DHQs2cV0Q0WSKSk2UrFJho1dxeKL5alg=="], - - "@swapkit/plugins/@near-js/transactions/@noble/hashes": ["@noble/hashes@1.7.1", "", {}, "sha512-B8XBPsn4vT/KJAGqDzbwztd+6Yte3P4V7iafm24bxgDe/mlRuK6xmWPuCNrKt2vDafZ8MfJLlchDG/vYafQEjQ=="], - - "@swapkit/toolboxes/@near-js/crypto/@noble/curves": ["@noble/curves@1.8.1", "", { "dependencies": { "@noble/hashes": "1.7.1" } }, "sha512-warwspo+UYUPep0Q+vtdVB4Ugn8GGQj8iyB3gnRWsztmUHTI3S1nhdiWNsPUGL0vud7JlRRk1XEu7Lq1KGTnMQ=="], - - "@swapkit/toolboxes/@near-js/crypto/@noble/hashes": ["@noble/hashes@1.8.0", "", {}, "sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A=="], - - "@swapkit/toolboxes/@near-js/transactions/@noble/hashes": ["@noble/hashes@1.7.1", "", {}, "sha512-B8XBPsn4vT/KJAGqDzbwztd+6Yte3P4V7iafm24bxgDe/mlRuK6xmWPuCNrKt2vDafZ8MfJLlchDG/vYafQEjQ=="], - "@swapkit/toolboxes/@stricahq/typhonjs/@stricahq/cbors": ["@stricahq/cbors@1.0.2", "", { "dependencies": { "bignumber.js": "^9.0.2", "buffer": "^6.0.3" } }, "sha512-6ePsEiq7EGHA5IiPn9poA7sF5iXPqt30kKw3pjR/BhP7S+XHZNu/OPumESWnVl4AM+IEYC2x9eL+4qRPsTPVww=="], "@swapkit/ui/@cosmjs/amino/@cosmjs/encoding": ["@cosmjs/encoding@0.39.0", "", { "dependencies": { "@scure/base": "^2.0.0", "base64-js": "^1.3.0", "readonly-date-esm": "^2.0.0" } }, "sha512-+poEaeM8YjGNVtrHLQNWqkhEeDxapjrdpnPCT+JCRh8YNbeHEdftzZLCH5VCBSOtvo7PF0gK1B7sbQbBl6q5pQ=="], @@ -3481,12 +3393,6 @@ "@swapkit/ui/@cosmjs/stargate/@cosmjs/utils": ["@cosmjs/utils@0.39.0", "", {}, "sha512-h7fy7Tbcl9v8ABntp8+kqw2VmUus2HbnRJFyzTkM7byRktLtECHYNMsztwyl1rdHkzc8Nc2xs6K/56d7a+75aw=="], - "@swapkit/ui/@near-js/crypto/@noble/curves": ["@noble/curves@1.8.1", "", { "dependencies": { "@noble/hashes": "1.7.1" } }, "sha512-warwspo+UYUPep0Q+vtdVB4Ugn8GGQj8iyB3gnRWsztmUHTI3S1nhdiWNsPUGL0vud7JlRRk1XEu7Lq1KGTnMQ=="], - - "@swapkit/ui/@near-js/crypto/@noble/hashes": ["@noble/hashes@1.8.0", "", {}, "sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A=="], - - "@swapkit/ui/@near-js/transactions/@noble/hashes": ["@noble/hashes@1.7.1", "", {}, "sha512-B8XBPsn4vT/KJAGqDzbwztd+6Yte3P4V7iafm24bxgDe/mlRuK6xmWPuCNrKt2vDafZ8MfJLlchDG/vYafQEjQ=="], - "@swapkit/ui/@stricahq/typhonjs/@stricahq/cbors": ["@stricahq/cbors@1.0.2", "", { "dependencies": { "bignumber.js": "^9.0.2", "buffer": "^6.0.3" } }, "sha512-6ePsEiq7EGHA5IiPn9poA7sF5iXPqt30kKw3pjR/BhP7S+XHZNu/OPumESWnVl4AM+IEYC2x9eL+4qRPsTPVww=="], "@swapkit/ui/@swapkit/core/@swapkit/wallet-core": ["@swapkit/wallet-core@4.3.21", "", { "dependencies": { "@swapkit/helpers": "4.20.1" } }, "sha512-88zNmn14D9oBWuzDuzWv0Lz5s67UalK9CWR5poVtxEmVep0KxWnxgpITnSi1oHkzRmdF7UPt2OmwFxAXTKPdsw=="], @@ -3509,30 +3415,14 @@ "@swapkit/wallet-extensions/@cosmjs/proto-signing/@cosmjs/crypto": ["@cosmjs/crypto@0.37.1", "", { "dependencies": { "@cosmjs/encoding": "^0.37.1", "@cosmjs/math": "^0.37.1", "@cosmjs/utils": "^0.37.1", "@noble/ciphers": "^1.3.0", "@noble/curves": "^1.9.2", "@noble/hashes": "^1.8.0", "@scure/bip39": "^1.6.0", "hash-wasm": "^4.12.0" } }, "sha512-CdLOKQVJM422UegKpi4T/xkdNwvLZwJwSC7NyYi7tAyty0NzP67u+vNqar7Ok22ECkKLj6N9uRcIl4g62oZThA=="], - "@swapkit/wallet-extensions/@near-js/crypto/@noble/curves": ["@noble/curves@1.8.1", "", { "dependencies": { "@noble/hashes": "1.7.1" } }, "sha512-warwspo+UYUPep0Q+vtdVB4Ugn8GGQj8iyB3gnRWsztmUHTI3S1nhdiWNsPUGL0vud7JlRRk1XEu7Lq1KGTnMQ=="], - - "@swapkit/wallet-extensions/@near-js/crypto/@noble/hashes": ["@noble/hashes@1.8.0", "", {}, "sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A=="], - - "@swapkit/wallet-extensions/@near-js/transactions/@noble/hashes": ["@noble/hashes@1.7.1", "", {}, "sha512-B8XBPsn4vT/KJAGqDzbwztd+6Yte3P4V7iafm24bxgDe/mlRuK6xmWPuCNrKt2vDafZ8MfJLlchDG/vYafQEjQ=="], - "@swapkit/wallet-hardware/@cosmjs/amino/@cosmjs/crypto": ["@cosmjs/crypto@0.37.1", "", { "dependencies": { "@cosmjs/encoding": "^0.37.1", "@cosmjs/math": "^0.37.1", "@cosmjs/utils": "^0.37.1", "@noble/ciphers": "^1.3.0", "@noble/curves": "^1.9.2", "@noble/hashes": "^1.8.0", "@scure/bip39": "^1.6.0", "hash-wasm": "^4.12.0" } }, "sha512-CdLOKQVJM422UegKpi4T/xkdNwvLZwJwSC7NyYi7tAyty0NzP67u+vNqar7Ok22ECkKLj6N9uRcIl4g62oZThA=="], "@swapkit/wallet-hardware/@cosmjs/proto-signing/@cosmjs/crypto": ["@cosmjs/crypto@0.37.1", "", { "dependencies": { "@cosmjs/encoding": "^0.37.1", "@cosmjs/math": "^0.37.1", "@cosmjs/utils": "^0.37.1", "@noble/ciphers": "^1.3.0", "@noble/curves": "^1.9.2", "@noble/hashes": "^1.8.0", "@scure/bip39": "^1.6.0", "hash-wasm": "^4.12.0" } }, "sha512-CdLOKQVJM422UegKpi4T/xkdNwvLZwJwSC7NyYi7tAyty0NzP67u+vNqar7Ok22ECkKLj6N9uRcIl4g62oZThA=="], - "@swapkit/wallet-hardware/@near-js/crypto/@noble/curves": ["@noble/curves@1.8.1", "", { "dependencies": { "@noble/hashes": "1.7.1" } }, "sha512-warwspo+UYUPep0Q+vtdVB4Ugn8GGQj8iyB3gnRWsztmUHTI3S1nhdiWNsPUGL0vud7JlRRk1XEu7Lq1KGTnMQ=="], - - "@swapkit/wallet-hardware/@near-js/crypto/@noble/hashes": ["@noble/hashes@1.8.0", "", {}, "sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A=="], - - "@swapkit/wallet-hardware/@near-js/transactions/@noble/hashes": ["@noble/hashes@1.7.1", "", {}, "sha512-B8XBPsn4vT/KJAGqDzbwztd+6Yte3P4V7iafm24bxgDe/mlRuK6xmWPuCNrKt2vDafZ8MfJLlchDG/vYafQEjQ=="], - "@swapkit/wallets/@cosmjs/amino/@cosmjs/crypto": ["@cosmjs/crypto@0.37.1", "", { "dependencies": { "@cosmjs/encoding": "^0.37.1", "@cosmjs/math": "^0.37.1", "@cosmjs/utils": "^0.37.1", "@noble/ciphers": "^1.3.0", "@noble/curves": "^1.9.2", "@noble/hashes": "^1.8.0", "@scure/bip39": "^1.6.0", "hash-wasm": "^4.12.0" } }, "sha512-CdLOKQVJM422UegKpi4T/xkdNwvLZwJwSC7NyYi7tAyty0NzP67u+vNqar7Ok22ECkKLj6N9uRcIl4g62oZThA=="], "@swapkit/wallets/@cosmjs/proto-signing/@cosmjs/crypto": ["@cosmjs/crypto@0.37.1", "", { "dependencies": { "@cosmjs/encoding": "^0.37.1", "@cosmjs/math": "^0.37.1", "@cosmjs/utils": "^0.37.1", "@noble/ciphers": "^1.3.0", "@noble/curves": "^1.9.2", "@noble/hashes": "^1.8.0", "@scure/bip39": "^1.6.0", "hash-wasm": "^4.12.0" } }, "sha512-CdLOKQVJM422UegKpi4T/xkdNwvLZwJwSC7NyYi7tAyty0NzP67u+vNqar7Ok22ECkKLj6N9uRcIl4g62oZThA=="], - "@swapkit/wallets/@near-js/transactions/@near-js/crypto": ["@near-js/crypto@2.5.1", "", { "dependencies": { "@near-js/types": "2.5.1", "@near-js/utils": "2.5.1", "@noble/curves": "1.8.1", "@noble/hashes": "^1.7.1", "borsh": "1.0.0", "secp256k1": "5.0.1" } }, "sha512-Kb+bbnUrfvuzzed9hpLRpcIlCMOaQlw/7BxlZPCq8DggVaK1m0nKR1DHQs2cV0Q0WSKSk2UrFJho1dxeKL5alg=="], - - "@swapkit/wallets/@near-js/transactions/@noble/hashes": ["@noble/hashes@1.7.1", "", {}, "sha512-B8XBPsn4vT/KJAGqDzbwztd+6Yte3P4V7iafm24bxgDe/mlRuK6xmWPuCNrKt2vDafZ8MfJLlchDG/vYafQEjQ=="], - "@ton/ton/axios/proxy-from-env": ["proxy-from-env@2.1.0", "", {}, "sha512-cJ+oHTW1VAEa8cJslgmUZrc+sjRKgAKl3Zyse6+PV38hZe/V6Z14TbCuXcan9F9ghlz4QrFr2c92TNF82UkYHA=="], "@trezor/blockchain-link-utils/@stellar/stellar-sdk/axios": ["axios@1.18.0", "", { "dependencies": { "follow-redirects": "^1.16.0", "form-data": "^4.0.5", "https-proxy-agent": "^5.0.1", "proxy-from-env": "^2.1.0" } }, "sha512-E32NzpYKp++W7XRe52rHiXV2ehxmh3wbdgO7MHeFM+vqxLBYHzt0ElkiImtOBxtOmyp0yoC8C6uESVV84Y2/hw=="], @@ -3675,8 +3565,6 @@ "@metamask/mobile-wallet-protocol-dapp-client/@metamask/utils/@ethereumjs/tx/@ethereumjs/util": ["@ethereumjs/util@8.1.0", "", { "dependencies": { "@ethereumjs/rlp": "^4.0.1", "ethereum-cryptography": "^2.0.0", "micro-ftch": "^0.3.1" } }, "sha512-zQ0IqbdX8FZ9aw11vP+dZkKDkS+kgIvQPHnSAXzP9pLu+Rfu3D3XEeLbicvoXJTYnhZiPmsZUxgdzXwNKxRPbA=="], - "@near-js/accounts/@near-js/crypto/@noble/curves/@noble/hashes": ["@noble/hashes@1.7.1", "", {}, "sha512-B8XBPsn4vT/KJAGqDzbwztd+6Yte3P4V7iafm24bxgDe/mlRuK6xmWPuCNrKt2vDafZ8MfJLlchDG/vYafQEjQ=="], - "@near-js/keystores-browser/@near-js/crypto/@near-js/utils/bs58": ["bs58@4.0.0", "", { "dependencies": { "base-x": "^2.0.1" } }, "sha512-/jcGuUuSebyxwLLfKrbKnCJttxRf9PM51EnHTwmFKBxl4z1SGkoAhrfd6uZKE0dcjQTfm6XzTP8DPr1tzE4KIw=="], "@near-js/keystores-browser/@near-js/crypto/@noble/curves/@noble/hashes": ["@noble/hashes@1.3.2", "", {}, "sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ=="], @@ -3689,20 +3577,12 @@ "@near-js/keystores-node/@near-js/keystores/@near-js/types/bn.js": ["bn.js@5.2.1", "", {}, "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ=="], - "@near-js/keystores/@near-js/crypto/@noble/curves/@noble/hashes": ["@noble/hashes@1.7.1", "", {}, "sha512-B8XBPsn4vT/KJAGqDzbwztd+6Yte3P4V7iafm24bxgDe/mlRuK6xmWPuCNrKt2vDafZ8MfJLlchDG/vYafQEjQ=="], - - "@near-js/providers/@near-js/crypto/@noble/curves/@noble/hashes": ["@noble/hashes@1.7.1", "", {}, "sha512-B8XBPsn4vT/KJAGqDzbwztd+6Yte3P4V7iafm24bxgDe/mlRuK6xmWPuCNrKt2vDafZ8MfJLlchDG/vYafQEjQ=="], - - "@near-js/signers/@near-js/crypto/@noble/curves/@noble/hashes": ["@noble/hashes@1.7.1", "", {}, "sha512-B8XBPsn4vT/KJAGqDzbwztd+6Yte3P4V7iafm24bxgDe/mlRuK6xmWPuCNrKt2vDafZ8MfJLlchDG/vYafQEjQ=="], - "@near-js/wallet-account/@near-js/accounts/@near-js/providers/node-fetch": ["node-fetch@2.6.7", "", { "dependencies": { "whatwg-url": "^5.0.0" }, "peerDependencies": { "encoding": "^0.1.0" }, "optionalPeers": ["encoding"] }, "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ=="], "@near-js/wallet-account/@near-js/crypto/@noble/curves/@noble/hashes": ["@noble/hashes@1.3.2", "", {}, "sha512-MVC8EAQp7MvEcm30KWENFjgR+Mkmf+D189XJTkFIlwohU5hcBbn1ZkKq7KVTi2Hme3PMGF390DaL52beVrIihQ=="], "@near-js/wallet-account/@near-js/utils/bs58/base-x": ["base-x@2.0.6", "", { "dependencies": { "safe-buffer": "^5.0.1" } }, "sha512-UAmjxz9KbK+YIi66xej+pZVo/vxUOh49ubEvZW5egCbxhur05pBb+hwuireQwKO4nDpsNm64/jEei17LEpsr5g=="], - "@near-wallet-selector/core/@near-js/crypto/@noble/curves/@noble/hashes": ["@noble/hashes@1.7.1", "", {}, "sha512-B8XBPsn4vT/KJAGqDzbwztd+6Yte3P4V7iafm24bxgDe/mlRuK6xmWPuCNrKt2vDafZ8MfJLlchDG/vYafQEjQ=="], - "@solana/codecs/@solana/codecs-core/@solana/errors/commander": ["commander@12.1.0", "", {}, "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA=="], "@solana/codecs/@solana/codecs-numbers/@solana/errors/commander": ["commander@12.1.0", "", {}, "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA=="], @@ -3711,18 +3591,10 @@ "@starknet-io/get-starknet-wallet-standard/ox/@scure/bip39/@scure/base": ["@scure/base@1.2.6", "", {}, "sha512-g/nm5FgUa//MCj1gV09zTJTaM6KBAHqLN907YVQqf7zC49+DcO4B1so4ZX07Ef10Twr6nuqYEH9GEggFXA4Fmg=="], - "@swapkit/plugins/@near-js/transactions/@near-js/crypto/@noble/curves": ["@noble/curves@1.8.1", "", { "dependencies": { "@noble/hashes": "1.7.1" } }, "sha512-warwspo+UYUPep0Q+vtdVB4Ugn8GGQj8iyB3gnRWsztmUHTI3S1nhdiWNsPUGL0vud7JlRRk1XEu7Lq1KGTnMQ=="], - - "@swapkit/plugins/@near-js/transactions/@near-js/crypto/@noble/hashes": ["@noble/hashes@1.8.0", "", {}, "sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A=="], - - "@swapkit/toolboxes/@near-js/crypto/@noble/curves/@noble/hashes": ["@noble/hashes@1.7.1", "", {}, "sha512-B8XBPsn4vT/KJAGqDzbwztd+6Yte3P4V7iafm24bxgDe/mlRuK6xmWPuCNrKt2vDafZ8MfJLlchDG/vYafQEjQ=="], - "@swapkit/ui/@cosmjs/stargate/@cosmjs/tendermint-rpc/@cosmjs/json-rpc": ["@cosmjs/json-rpc@0.39.0", "", { "dependencies": { "@cosmjs/stream": "^0.39.0", "xstream": "^11.14.0" } }, "sha512-slyo76IYkTuSxrzxvF1s1ScFPIGnW7PbNSx8lr++NzdyPluqe053+cSqsxLUioXb5qI9Nxny2fWxOK8isSn+cg=="], "@swapkit/ui/@cosmjs/stargate/@cosmjs/tendermint-rpc/@cosmjs/socket": ["@cosmjs/socket@0.39.0", "", { "dependencies": { "@cosmjs/stream": "^0.39.0", "isomorphic-ws": "^4.0.1", "ws": "^7", "xstream": "^11.14.0" } }, "sha512-mvA+/ycMn7dnjjdooSPq516poFpSARRXhFhKjCXxGUmBZA+74vLDLbtD6VGzHd08A2JSZBSiAhVOZpjYqgV78A=="], - "@swapkit/ui/@near-js/crypto/@noble/curves/@noble/hashes": ["@noble/hashes@1.7.1", "", {}, "sha512-B8XBPsn4vT/KJAGqDzbwztd+6Yte3P4V7iafm24bxgDe/mlRuK6xmWPuCNrKt2vDafZ8MfJLlchDG/vYafQEjQ=="], - "@swapkit/wallet-extensions/@cosmjs/amino/@cosmjs/crypto/@noble/curves": ["@noble/curves@1.9.7", "", { "dependencies": { "@noble/hashes": "1.8.0" } }, "sha512-gbKGcRUYIjA3/zCCNaWDciTMFI0dCkvou3TL8Zmy5Nc7sJ47a0jtOeZoTaMxkuqRo9cRhjOdZJXegxYE5FN/xw=="], "@swapkit/wallet-extensions/@cosmjs/amino/@cosmjs/crypto/@noble/hashes": ["@noble/hashes@1.8.0", "", {}, "sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A=="], @@ -3735,8 +3607,6 @@ "@swapkit/wallet-extensions/@cosmjs/proto-signing/@cosmjs/crypto/@scure/bip39": ["@scure/bip39@1.6.0", "", { "dependencies": { "@noble/hashes": "~1.8.0", "@scure/base": "~1.2.5" } }, "sha512-+lF0BbLiJNwVlev4eKelw1WWLaiKXw7sSl8T6FvBlWkdX+94aGJ4o8XjUdlyhTCjd8c+B3KT3JfS8P0bLRNU6A=="], - "@swapkit/wallet-extensions/@near-js/crypto/@noble/curves/@noble/hashes": ["@noble/hashes@1.7.1", "", {}, "sha512-B8XBPsn4vT/KJAGqDzbwztd+6Yte3P4V7iafm24bxgDe/mlRuK6xmWPuCNrKt2vDafZ8MfJLlchDG/vYafQEjQ=="], - "@swapkit/wallet-hardware/@cosmjs/amino/@cosmjs/crypto/@noble/curves": ["@noble/curves@1.9.7", "", { "dependencies": { "@noble/hashes": "1.8.0" } }, "sha512-gbKGcRUYIjA3/zCCNaWDciTMFI0dCkvou3TL8Zmy5Nc7sJ47a0jtOeZoTaMxkuqRo9cRhjOdZJXegxYE5FN/xw=="], "@swapkit/wallet-hardware/@cosmjs/amino/@cosmjs/crypto/@noble/hashes": ["@noble/hashes@1.8.0", "", {}, "sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A=="], @@ -3749,8 +3619,6 @@ "@swapkit/wallet-hardware/@cosmjs/proto-signing/@cosmjs/crypto/@scure/bip39": ["@scure/bip39@1.6.0", "", { "dependencies": { "@noble/hashes": "~1.8.0", "@scure/base": "~1.2.5" } }, "sha512-+lF0BbLiJNwVlev4eKelw1WWLaiKXw7sSl8T6FvBlWkdX+94aGJ4o8XjUdlyhTCjd8c+B3KT3JfS8P0bLRNU6A=="], - "@swapkit/wallet-hardware/@near-js/crypto/@noble/curves/@noble/hashes": ["@noble/hashes@1.7.1", "", {}, "sha512-B8XBPsn4vT/KJAGqDzbwztd+6Yte3P4V7iafm24bxgDe/mlRuK6xmWPuCNrKt2vDafZ8MfJLlchDG/vYafQEjQ=="], - "@swapkit/wallets/@cosmjs/amino/@cosmjs/crypto/@noble/curves": ["@noble/curves@1.9.7", "", { "dependencies": { "@noble/hashes": "1.8.0" } }, "sha512-gbKGcRUYIjA3/zCCNaWDciTMFI0dCkvou3TL8Zmy5Nc7sJ47a0jtOeZoTaMxkuqRo9cRhjOdZJXegxYE5FN/xw=="], "@swapkit/wallets/@cosmjs/amino/@cosmjs/crypto/@noble/hashes": ["@noble/hashes@1.8.0", "", {}, "sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A=="], @@ -3763,10 +3631,6 @@ "@swapkit/wallets/@cosmjs/proto-signing/@cosmjs/crypto/@scure/bip39": ["@scure/bip39@1.6.0", "", { "dependencies": { "@noble/hashes": "~1.8.0", "@scure/base": "~1.2.5" } }, "sha512-+lF0BbLiJNwVlev4eKelw1WWLaiKXw7sSl8T6FvBlWkdX+94aGJ4o8XjUdlyhTCjd8c+B3KT3JfS8P0bLRNU6A=="], - "@swapkit/wallets/@near-js/transactions/@near-js/crypto/@noble/curves": ["@noble/curves@1.8.1", "", { "dependencies": { "@noble/hashes": "1.7.1" } }, "sha512-warwspo+UYUPep0Q+vtdVB4Ugn8GGQj8iyB3gnRWsztmUHTI3S1nhdiWNsPUGL0vud7JlRRk1XEu7Lq1KGTnMQ=="], - - "@swapkit/wallets/@near-js/transactions/@near-js/crypto/@noble/hashes": ["@noble/hashes@1.8.0", "", {}, "sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A=="], - "@trezor/blockchain-link-utils/@stellar/stellar-sdk/axios/proxy-from-env": ["proxy-from-env@2.1.0", "", {}, "sha512-cJ+oHTW1VAEa8cJslgmUZrc+sjRKgAKl3Zyse6+PV38hZe/V6Z14TbCuXcan9F9ghlz4QrFr2c92TNF82UkYHA=="], "@trezor/blockchain-link-utils/@trezor/protobuf/protobufjs/long": ["long@5.3.2", "", {}, "sha512-mNAgZ1GmyNhD7AuqnTG3/VQ26o760+ZYBPKjPvugO8+nLbYfX6TVpJPseBvopbdY+qpZ/lKUnmEc1LeZYS3QAA=="], @@ -3813,8 +3677,6 @@ "@near-js/keystores-node/@near-js/crypto/@near-js/utils/bs58/base-x": ["base-x@2.0.6", "", { "dependencies": { "safe-buffer": "^5.0.1" } }, "sha512-UAmjxz9KbK+YIi66xej+pZVo/vxUOh49ubEvZW5egCbxhur05pBb+hwuireQwKO4nDpsNm64/jEei17LEpsr5g=="], - "@swapkit/plugins/@near-js/transactions/@near-js/crypto/@noble/curves/@noble/hashes": ["@noble/hashes@1.7.1", "", {}, "sha512-B8XBPsn4vT/KJAGqDzbwztd+6Yte3P4V7iafm24bxgDe/mlRuK6xmWPuCNrKt2vDafZ8MfJLlchDG/vYafQEjQ=="], - "@swapkit/ui/@cosmjs/stargate/@cosmjs/tendermint-rpc/@cosmjs/socket/ws": ["ws@7.5.13", "", { "peerDependencies": { "bufferutil": "^4.0.1", "utf-8-validate": "^5.0.2" }, "optionalPeers": ["bufferutil", "utf-8-validate"] }, "sha512-rsKI6xDBFVf4r/x8XyChGK04QR/XHroxs/jUcoWvtEZM8TPU/X/uIY9B1CsSzYws9ZJb/6bbBu7dPhFW00CAoA=="], "@swapkit/wallet-extensions/@cosmjs/amino/@cosmjs/crypto/@scure/bip39/@scure/base": ["@scure/base@1.2.6", "", {}, "sha512-g/nm5FgUa//MCj1gV09zTJTaM6KBAHqLN907YVQqf7zC49+DcO4B1so4ZX07Ef10Twr6nuqYEH9GEggFXA4Fmg=="], @@ -3829,8 +3691,6 @@ "@swapkit/wallets/@cosmjs/proto-signing/@cosmjs/crypto/@scure/bip39/@scure/base": ["@scure/base@1.2.6", "", {}, "sha512-g/nm5FgUa//MCj1gV09zTJTaM6KBAHqLN907YVQqf7zC49+DcO4B1so4ZX07Ef10Twr6nuqYEH9GEggFXA4Fmg=="], - "@swapkit/wallets/@near-js/transactions/@near-js/crypto/@noble/curves/@noble/hashes": ["@noble/hashes@1.7.1", "", {}, "sha512-B8XBPsn4vT/KJAGqDzbwztd+6Yte3P4V7iafm24bxgDe/mlRuK6xmWPuCNrKt2vDafZ8MfJLlchDG/vYafQEjQ=="], - "pkg-dir/find-up/locate-path/p-locate/p-limit": ["p-limit@3.1.0", "", { "dependencies": { "yocto-queue": "^0.1.0" } }, "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ=="], } } From aeeca557e235adbabd0b106a2dc81e171857303e Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 25 Aug 2026 16:35:30 +0400 Subject: [PATCH 7/9] chore: add generated dep changeset for @swapkit bump Co-Authored-By: Claude Fable 5 --- .changeset/swapkit-sdk-36el3mv6gxftc.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 .changeset/swapkit-sdk-36el3mv6gxftc.md diff --git a/.changeset/swapkit-sdk-36el3mv6gxftc.md b/.changeset/swapkit-sdk-36el3mv6gxftc.md new file mode 100644 index 0000000..83ebfb3 --- /dev/null +++ b/.changeset/swapkit-sdk-36el3mv6gxftc.md @@ -0,0 +1,17 @@ +--- +"@swapkit/sdk": patch +"@swapkit/wallet-extensions": patch +"@swapkit/wallet-hardware": patch +"@swapkit/wallet-mobile": patch +"@swapkit/wallets": patch +--- + +Update SwapKit SDK dependencies: + +- @swapkit/core: 5.0.2 → 5.0.3 +- @swapkit/helpers: 5.0.2 → 5.1.0 +- @swapkit/plugins: 5.0.0 → 5.0.3 +- @swapkit/server: 5.0.0 → 5.1.1 +- @swapkit/toolboxes: 5.1.1 → 5.1.2 +- @swapkit/wallet-core: 5.0.0 → 5.0.3 +- @swapkit/wallet-keystore: 5.0.0 → 5.0.3 From 71a042fad68d7de2407a2fd620901be1a9098e6d Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 25 Aug 2026 16:55:11 +0400 Subject: [PATCH 8/9] docs: add README and adding-a-wallet guide (registry pattern) Documents the connector + register.ts workflow against the @swapkit/helpers 5.1.0 extensible registries, the loadWallet/SKWallets wiring, and the gotchas that bit during the Noir Wallet review: type/runtime registration skew, sideEffects tree-shaking, dual-copy helpers lockfile forks, and the vacuous walletType test trap. Co-Authored-By: Claude Fable 5 --- README.md | 48 +++++++++++ docs/adding-a-wallet.md | 179 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 227 insertions(+) create mode 100644 README.md create mode 100644 docs/adding-a-wallet.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..bc5c6d7 --- /dev/null +++ b/README.md @@ -0,0 +1,48 @@ +# SwapKit Wallets + +Wallet connectors for the [SwapKit SDK](https://github.com/swapkit/sdk): +browser extensions, hardware devices, and mobile/protocol wallets, exposed +through a single `loadWallet` entry point and typed `SKWallets` registry. + +## Packages + +| Package | Contents | +| --- | --- | +| [`@swapkit/wallets`](packages/wallets) | aggregator: `loadWallet`, `SKWallets`/`SKWalletsSupportedChains` types, and connectors without their own package (keystore, tonconnect, xaman, radix, passkeys, …) | +| [`@swapkit/wallet-extensions`](packages/wallet-extensions) | injected browser-extension providers (MetaMask/EVM, Keplr, Vultisig, Ctrl, Phantom, Petra, Noir Wallet, …) | +| [`@swapkit/wallet-hardware`](packages/wallet-hardware) | Ledger, Trezor, KeepKey | +| [`@swapkit/wallet-mobile`](packages/wallet-mobile) | mobile wallet support | +| [`@swapkit/sdk`](packages/sdk) | batteries-included bundle re-exporting core, plugins, toolboxes, and wallets | + +Each connector is a lazy-loaded subpath export — apps pull only the wallets +they use. + +## Development + +Requires [bun](https://bun.sh) — use the version pinned in +[`.github/workflows/ci.yml`](.github/workflows/ci.yml) to keep `bun.lock` +reproducible. + +```bash +bun install +bun run build:ci # build all packages + .d.ts generation +bun run type-check # tsc across packages +bun test # bun test across packages +bun run lint # biome check --fix +bun run playground:vite-lite:start # browser playground +``` + +## Adding a wallet + +See [docs/adding-a-wallet.md](docs/adding-a-wallet.md) — covers the connector +module, registering the `WalletOption` and error codes through the +`@swapkit/helpers` extensible registries (no helpers release required), the +`loadWallet`/`SKWallets` wiring, and the gotchas. + +## Releases + +Versioning goes through [changesets](https://github.com/changesets/changesets): +every user-facing change ships a `.changeset/*.md` entry, and `@swapkit/*` +dependency bumps additionally need the generated changeset from +`bun generate:dep-changeset` (CI enforces it). Merges to `develop` roll up +into a "Version Packages" PR; merging that publishes to npm. diff --git a/docs/adding-a-wallet.md b/docs/adding-a-wallet.md new file mode 100644 index 0000000..34d429a --- /dev/null +++ b/docs/adding-a-wallet.md @@ -0,0 +1,179 @@ +# Adding a wallet connector + +How to add a new wallet to this repo, including registering its `WalletOption` +and error codes through the extensible registries that shipped with +`@swapkit/helpers` 5.1.0 ([swapkit/sdk#346]). No `@swapkit/helpers` release is +needed to add a wallet. + +Worked examples in this repo: + +- `packages/wallet-extensions/src/noir-wallet/` — injected browser-extension + wallet with custom error codes (added via fork PR #111 + #144) +- `packages/wallets/src/tonconnect/` — connector living directly in + `@swapkit/wallets`, registry registration only + +## Where things live + +| Package | Contents | +| --- | --- | +| `@swapkit/wallet-extensions` | injected browser-extension providers (`window.*`) | +| `@swapkit/wallet-hardware` | Ledger, Trezor, KeepKey | +| `@swapkit/wallets` | aggregator: `loadWallet`, `SKWallets` types, plus a few connectors that need no separate package (tonconnect, xaman, radix, …) | + +The `WalletOption` union, `SwapKitError` keys, and the registries themselves +are defined upstream in `@swapkit/helpers` (SDK monorepo). + +## 1. The connector module + +Create `packages/wallet-extensions/src//index.ts` built around +`createWallet` from `@swapkit/wallet-core`: + +- `connect` receives `{ addChain, walletType }` and returns the + `connect` function. For each supported chain, spread the chain's + toolbox into `addChain({ ...toolbox, address, chain, walletType, ... })` and + override what the wallet handles itself (`transfer`, `getBalance`, + `signMessage`, `signAndBroadcastTransaction`, …). +- `directSigningSupport` maps chains where the wallet can sign an + API-prebuilt transaction (`route.tx`). With `{ [chain]: true }`, core routes + swaps to the generic SwapKit plugin, which decodes `route.tx` and calls your + `signAndBroadcastTransaction` override. With `{}`, swaps go through the + provider plugin, which calls high-level methods like `transfer`. Wallets + that only expose a "send" RPC can still support direct signing by + translating the decoded transaction back into a send — see + `extractUtxoTransferIntent` in + `packages/wallet-extensions/src/helpers/utxoTransferIntent.ts` (Vultisig, + Ctrl, KeepKey BEX). +- If the wallet cannot serve a method the toolbox spread exposes, override it + with a clear `SwapKitError` throw instead of letting the toolbox default + fail deep inside signing (see `unsupportedUtxoSignTransaction`). + +## 2. The register module + +Create `packages/wallet-extensions/src//register.ts`. The type-level +declaration and the runtime registration must sit side by side — one without +the other compiles to a trap (see [Gotchas](#gotchas)): + +```ts +import { registerErrorCodes, registerWalletOption } from "@swapkit/helpers"; + +declare module "@swapkit/helpers" { + interface WalletOptionRegistry { + MY_WALLET: "MY_WALLET"; + } + interface SwapKitErrorRegistry { + wallet_my_wallet_not_found: 80201; + } +} + +registerWalletOption("MY_WALLET", "MY_WALLET"); +registerErrorCodes({ + wallet_my_wallet_not_found: 80201, +}); +``` + +Rules: + +- The `declare module` must target `"@swapkit/helpers"` — that package + declares the registries — even when consumers import `WalletOption` from + `@swapkit/core`. +- Error codes must use the **80000–89999 extension range**. It is reserved by + convention, not enforced at runtime; first-party codes live outside it and + collisions throw only when two keys claim the same number. Grep this repo's + registers for the next free block (noir-wallet holds 80101–80103). +- Registration is idempotent for identical values and throws + `helpers_invalid_params` on conflicting re-registration, so the module may + safely load through multiple import paths. +- Registered options are appended to `SKConfig`'s default wallet list + automatically (and survive `SKConfig.reinitialize()`). + +Make the connector's `index.ts` import it first: + +```ts +// Registers WalletOption.MY_WALLET and the wallet_my_wallet_* error codes +// before anything below reads them. +import "./register"; +``` + +## 3. Package exports + +Add **two** subpath exports to `packages/wallet-extensions/package.json`, +mirroring the neighbors' shape: + +```jsonc +"./my-wallet": { "bun": "./src/my-wallet/index.ts", ... }, +"./my-wallet/register": { "bun": "./src/my-wallet/register.ts", ... }, +``` + +The separate `register` subpath exists so `loadWallet` (and any app that only +references `WalletOption.MY_WALLET` — wallet pickers, `walletType` +comparisons) can import a ~20-line side-effect module instead of statically +pulling the whole connector, which would defeat the lazy loading in the match +arms. Apps that import the connector subpath directly need nothing extra — +`index.ts` imports `./register` itself. + +## 4. Wiring `@swapkit/wallets` + +Three touch points: + +- **`src/utils.ts`** — side-effect import at the top (ordering matters: the + match reads `WalletOption.MY_WALLET` at call time, before any connector has + loaded), plus a lazy match arm: + + ```ts + import "@swapkit/wallet-extensions/my-wallet/register"; + // ... + .with(WalletOption.MY_WALLET, async () => (await import("@swapkit/wallet-extensions/my-wallet")).myWallet) + ``` + +- **`src/types.ts`** — `SKWallets` and `SKWalletsSupportedChains` entries, + keyed `[WalletOption.MY_WALLET]:` (computed keys in type position work + because the const's properties are distinct string literals). + +## 5. Tests + +Alongside the usual connector tests, always assert the registered value: + +```ts +test("registers MY_WALLET in the extensible WalletOption registry", () => { + expect(WalletOption.MY_WALLET).toBe("MY_WALLET"); +}); +``` + +Without this, a missing registration makes `walletType` assertions pass +vacuously: `expect(wallet.walletType).toBe(WalletOption.MY_WALLET)` is +`undefined === undefined`. This exact false-green happened in the original +Noir Wallet PR. + +## 6. Changeset + +Add a `.changeset/*.md` entry (`minor` for a new connector). If the change +also bumps `@swapkit/*` dependency versions, run `bun generate:dep-changeset` +and commit the generated file — CI's `check` workflow fails without it. + +## Gotchas + +- **Type/runtime skew.** The module augmentation is visible program-wide the + moment the `.d.ts` is in the compilation; the runtime key exists only after + `register.ts` executes. Code that reads `WalletOption.MY_WALLET` before + registration gets `undefined` — and a ts-pattern `.with(undefined, …)` arm + then matches *any* unregistered option. Keep the side-effect import above + the code that reads the key. +- **Tree-shaking.** Neither package sets `"sideEffects"` in package.json, so + bundlers keep the register imports. If `"sideEffects": false` is ever + added, the `register.ts` files must be listed as exceptions or registration + silently disappears from production bundles. +- **One `@swapkit/helpers` copy, exactly.** Published SDK packages pin exact + helpers versions. Bumping helpers alone forks the lockfile into nested + copies — two helpers instances at runtime means registrations land in one + copy while `@swapkit/core` reads the other, with no error. Bump the whole + `@swapkit` release train together, reinstall clean with the CI-pinned bun + (see `.github/workflows/ci.yml`), and verify: + + ```bash + grep -o '@swapkit/helpers@[0-9][^"]*' bun.lock | sort | uniq -c + ``` + + One `5.x` entry is correct. (A legacy `4.x` copy nested under the old + `@swapkit/ui` devDep is expected and inert.) + +[swapkit/sdk#346]: https://github.com/swapkit/sdk/pull/346 From ac55da09a6f557203443d24a0ad72fae67765bd5 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 25 Aug 2026 17:17:23 +0400 Subject: [PATCH 9/9] feat(wallets): expose @swapkit/wallets/register roll-up entry MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Apps that reference registered wallet options at module scope (e.g. the SwapKit UI's static wallet dialog list) evaluate WalletOption.NOIR_WALLET before any connector or loadWallet module runs — without a register import the list silently contains undefined. Roll up the per-wallet register modules into src/register.ts, exported as @swapkit/wallets/register; loadWallet now imports the roll-up. Co-Authored-By: Claude Fable 5 --- docs/adding-a-wallet.md | 7 +++++++ packages/wallets/package.json | 6 ++++++ packages/wallets/src/register.ts | 15 +++++++++++++++ packages/wallets/src/utils.ts | 8 +++----- 4 files changed, 31 insertions(+), 5 deletions(-) create mode 100644 packages/wallets/src/register.ts diff --git a/docs/adding-a-wallet.md b/docs/adding-a-wallet.md index 34d429a..68bd67b 100644 --- a/docs/adding-a-wallet.md +++ b/docs/adding-a-wallet.md @@ -111,6 +111,13 @@ pulling the whole connector, which would defeat the lazy loading in the match arms. Apps that import the connector subpath directly need nothing extra — `index.ts` imports `./register` itself. +Also add the new register module to `packages/wallets/src/register.ts` — the +roll-up that `@swapkit/wallets/register` exposes to apps. An app that puts a +registered option in a module-scope wallet list (as the SwapKit UI does in its +wallet dialog) evaluates `WalletOption.MY_WALLET` before any connector loads; +its entry module must `import "@swapkit/wallets/register"` first or the list +silently contains `undefined`. + ## 4. Wiring `@swapkit/wallets` Three touch points: diff --git a/packages/wallets/package.json b/packages/wallets/package.json index 69d8e91..b13e759 100644 --- a/packages/wallets/package.json +++ b/packages/wallets/package.json @@ -182,6 +182,12 @@ "require": "./dist/src/radix/index.cjs", "types": "./dist/types/radix/index.d.ts" }, + "./register": { + "bun": "./src/register.ts", + "default": "./dist/src/register.js", + "require": "./dist/src/register.cjs", + "types": "./dist/types/register.d.ts" + }, "./talisman": { "bun": "./src/talisman.ts", "default": "./dist/src/talisman.js", diff --git a/packages/wallets/src/register.ts b/packages/wallets/src/register.ts new file mode 100644 index 0000000..f6d2ea0 --- /dev/null +++ b/packages/wallets/src/register.ts @@ -0,0 +1,15 @@ +/** + * Side-effect entry that registers every out-of-enum wallet option (and its + * error codes) with the @swapkit/helpers registries. Apps that reference + * registered options at module scope (e.g. `WalletOption.NOIR_WALLET` in a + * static wallet list) must import this before those modules evaluate: + * + * ```ts + * import "@swapkit/wallets/register"; + * ``` + * + * `loadWallet` imports this itself, so apps that only connect wallets through + * it need nothing extra. + */ +import "@swapkit/wallet-extensions/noir-wallet/register"; +import "./tonconnect/register"; diff --git a/packages/wallets/src/utils.ts b/packages/wallets/src/utils.ts index 3afed41..5289558 100644 --- a/packages/wallets/src/utils.ts +++ b/packages/wallets/src/utils.ts @@ -1,9 +1,7 @@ import { WalletOption } from "@swapkit/helpers"; -// Registers WalletOption.NOIR_WALLET and WalletOption.TON_CONNECT before the -// match below reads them; the connectors themselves still load lazily via -// their match arms. -import "@swapkit/wallet-extensions/noir-wallet/register"; -import "./tonconnect/register"; +// Registers the out-of-enum wallet options before the match below reads them; +// the connectors themselves still load lazily via their match arms. +import "./register"; import type { SKWallets } from "./types"; export async function loadWallet(walletOption: W): Promise {