From 6181b93c6bfba0e59e5a6369f698c22dfbe11f19 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Fri, 27 Mar 2026 13:55:20 +0400 Subject: [PATCH] chore: sync wallet packages from SDK monorepo - Sync latest source from wallet-core, wallet-extensions, wallet-hardware, wallet-mobile, wallets - Remove wallet-keystore package (moved to core SDK) - Clean up keystore references from wallets aggregator (types, utils, exports) --- packages/wallet-core/package.json | 22 +- packages/wallet-extensions/package.json | 32 +- .../wallet-extensions/src/bitget/index.ts | 2 +- .../src/cosmostation/index.ts | 2 +- packages/wallet-extensions/src/ctrl/index.ts | 2 +- .../src/evm-extensions/index.ts | 2 +- .../wallet-extensions/src/helpers/near.ts | 2 +- .../src/keepkey-bex/index.ts | 2 +- packages/wallet-extensions/src/keplr/index.ts | 2 +- packages/wallet-extensions/src/okx/index.ts | 2 +- .../wallet-extensions/src/onekey/index.ts | 2 +- packages/wallet-extensions/src/petra/index.ts | 2 +- .../wallet-extensions/src/phantom/index.ts | 2 +- .../wallet-extensions/src/polkadotjs/index.ts | 2 +- .../wallet-extensions/src/talisman/index.ts | 2 +- .../wallet-extensions/src/tronlink/index.ts | 2 +- .../src/trustwallet/index.ts | 2 +- .../wallet-extensions/src/vultisig/index.ts | 2 +- packages/wallet-hardware/package.json | 36 +-- packages/wallet-hardware/src/keepkey/index.ts | 2 +- packages/wallet-hardware/src/ledger/index.ts | 2 +- packages/wallet-hardware/src/trezor/index.ts | 2 +- packages/wallet-keystore/CHANGELOG.md | 275 ------------------ .../wallet-keystore/__tests__/fixtures.ts | 38 --- .../__tests__/keystore.test.ts | 215 -------------- packages/wallet-keystore/build.ts | 3 - packages/wallet-keystore/package.json | 42 --- .../src/__tests__/hdWallet.test.ts | 153 ---------- packages/wallet-keystore/src/helpers.ts | 93 ------ packages/wallet-keystore/src/index.ts | 178 ------------ packages/wallet-keystore/tsconfig.json | 5 - packages/wallet-mobile/package.json | 23 +- packages/wallets/package.json | 39 +-- packages/wallets/src/bitget.ts | 2 +- packages/wallets/src/coinbase/index.ts | 2 +- packages/wallets/src/cosmostation.ts | 2 +- packages/wallets/src/ctrl.ts | 2 +- packages/wallets/src/evm-extensions.ts | 2 +- packages/wallets/src/index.ts | 2 +- packages/wallets/src/keepkey-bex.ts | 2 +- packages/wallets/src/keepkey.ts | 2 +- packages/wallets/src/keplr.ts | 2 +- packages/wallets/src/keystore.ts | 1 - packages/wallets/src/ledger.ts | 2 +- .../wallets/src/near-wallet-selector/index.ts | 2 +- packages/wallets/src/okx.ts | 2 +- packages/wallets/src/onekey.ts | 2 +- packages/wallets/src/passkeys/index.ts | 2 +- packages/wallets/src/phantom.ts | 2 +- packages/wallets/src/polkadotjs.ts | 2 +- packages/wallets/src/radix/index.ts | 2 +- packages/wallets/src/talisman.ts | 2 +- packages/wallets/src/trezor.ts | 2 +- packages/wallets/src/tronlink.ts | 2 +- packages/wallets/src/types.ts | 39 ++- packages/wallets/src/utils.ts | 37 ++- packages/wallets/src/vultisig.ts | 2 +- packages/wallets/src/walletconnect/index.ts | 2 +- packages/wallets/src/xaman/index.ts | 2 +- 59 files changed, 130 insertions(+), 1185 deletions(-) delete mode 100644 packages/wallet-keystore/CHANGELOG.md delete mode 100644 packages/wallet-keystore/__tests__/fixtures.ts delete mode 100644 packages/wallet-keystore/__tests__/keystore.test.ts delete mode 100644 packages/wallet-keystore/build.ts delete mode 100644 packages/wallet-keystore/package.json delete mode 100644 packages/wallet-keystore/src/__tests__/hdWallet.test.ts delete mode 100644 packages/wallet-keystore/src/helpers.ts delete mode 100644 packages/wallet-keystore/src/index.ts delete mode 100644 packages/wallet-keystore/tsconfig.json delete mode 100644 packages/wallets/src/keystore.ts diff --git a/packages/wallet-core/package.json b/packages/wallet-core/package.json index 6fc38ca..db17046 100644 --- a/packages/wallet-core/package.json +++ b/packages/wallet-core/package.json @@ -1,8 +1,6 @@ { "author": "swapkit-dev", - "dependencies": { - "@swapkit-dev/helpers": "^4.12.0" - }, + "dependencies": { "@swapkit-dev/helpers": "workspace:*" }, "description": "SwapKit - Wallet Core", "exports": { ".": { @@ -12,19 +10,15 @@ "types": "./dist/types/index.d.ts" } }, - "files": [ - "dist/" - ], - "homepage": "https://github.com/swapkit/wallets", + "files": ["dist/", "src/"], + "homepage": "https://github.com/swapkit/SwapKit", "license": "SEE LICENSE IN LICENSE", - "name": "@swapkit/wallet-core", - "publishConfig": { - "access": "public" - }, + "name": "@swapkit-dev/wallet-core", + "publishConfig": { "access": "restricted" }, "repository": { + "directory": "packages/wallet-core", "type": "git", - "url": "git+https://github.com/swapkit/wallets.git", - "directory": "packages/wallet-core" + "url": "git+https://github.com/swapkit/SwapKit.git" }, "scripts": { "build": "bun run ./build.ts", @@ -34,5 +28,5 @@ "type-check:go": "tsgo" }, "type": "module", - "version": "4.1.19" + "version": "4.1.21" } diff --git a/packages/wallet-extensions/package.json b/packages/wallet-extensions/package.json index c3cf803..45e3a5d 100644 --- a/packages/wallet-extensions/package.json +++ b/packages/wallet-extensions/package.json @@ -2,19 +2,16 @@ "author": "swapkit-dev", "dependencies": { "@aptos-labs/ts-sdk": "~1.34.0", - "@cosmjs/amino": "~0.37.0", - "@cosmjs/proto-signing": "~0.37.0", - "@cosmjs/stargate": "~0.37.0", "@keplr-wallet/types": "0.12.285", "@near-js/accounts": "~2.5.0", "@near-js/crypto": "~2.5.0", "@near-js/transactions": "~2.5.0", "@scure/base": "~2.0.0", "@solana/web3.js": "~1.98.4", - "@swapkit-dev/helpers": "^4.12.0", - "@swapkit-dev/toolboxes": "^4.11.2", - "@swapkit-dev/utxo-signer": "^2.1.0", - "@swapkit/wallet-core": "workspace:*", + "@swapkit-dev/helpers": "workspace:*", + "@swapkit-dev/toolboxes": "workspace:*", + "@swapkit-dev/utxo-signer": "workspace:*", + "@swapkit-dev/wallet-core": "workspace:*", "cosmjs-types": "0.10.1", "ethers": "^6.14.0", "sats-connect": "~1.0.0", @@ -23,9 +20,6 @@ "description": "SwapKit - Wallet Extension", "devDependencies": { "@aptos-labs/ts-sdk": "1.34.0", - "@cosmjs/amino": "0.37.0", - "@cosmjs/proto-signing": "0.37.0", - "@cosmjs/stargate": "0.37.0", "@keplr-wallet/types": "0.12.285", "@near-js/accounts": "2.5.0", "@near-js/crypto": "2.5.0", @@ -135,19 +129,15 @@ "types": "./dist/types/vultisig/index.d.ts" } }, - "files": [ - "dist/" - ], - "homepage": "https://github.com/swapkit/wallets", + "files": ["dist/", "src/"], + "homepage": "https://github.com/swapkit/SwapKit", "license": "SEE LICENSE IN LICENSE", - "name": "@swapkit/wallet-extensions", - "publishConfig": { - "access": "public" - }, + "name": "@swapkit-dev/wallet-extensions", + "publishConfig": { "access": "restricted" }, "repository": { + "directory": "packages/wallet-extension", "type": "git", - "url": "git+https://github.com/swapkit/wallets.git", - "directory": "packages/wallet-extensions" + "url": "git+https://github.com/swapkit/SwapKit.git" }, "scripts": { "build": "bun run ./build.ts", @@ -157,5 +147,5 @@ "type-check:go": "tsgo" }, "type": "module", - "version": "4.3.6" + "version": "4.4.1" } diff --git a/packages/wallet-extensions/src/bitget/index.ts b/packages/wallet-extensions/src/bitget/index.ts index a76e3ff..a938900 100644 --- a/packages/wallet-extensions/src/bitget/index.ts +++ b/packages/wallet-extensions/src/bitget/index.ts @@ -1,5 +1,5 @@ import { Chain, EVMChains, filterSupportedChains, WalletOption } from "@swapkit-dev/helpers"; -import { createWallet, getWalletSupportedChains } from "@swapkit/wallet-core"; +import { createWallet, getWalletSupportedChains } from "@swapkit-dev/wallet-core"; import { getWalletMethods } from "./helpers"; diff --git a/packages/wallet-extensions/src/cosmostation/index.ts b/packages/wallet-extensions/src/cosmostation/index.ts index 41d95e0..5600ce5 100644 --- a/packages/wallet-extensions/src/cosmostation/index.ts +++ b/packages/wallet-extensions/src/cosmostation/index.ts @@ -7,7 +7,7 @@ import { SwapKitError, WalletOption, } from "@swapkit-dev/helpers"; -import { createWallet, getWalletSupportedChains } from "@swapkit/wallet-core"; +import { createWallet, getWalletSupportedChains } from "@swapkit-dev/wallet-core"; const cosmostationSupportedChainIds = [ChainId.Cosmos, ChainId.Kujira, ChainId.Noble, ChainId.THORChain] as const; const cosmostationSupportedEVMChains = [ diff --git a/packages/wallet-extensions/src/ctrl/index.ts b/packages/wallet-extensions/src/ctrl/index.ts index 589c44b..d827650 100644 --- a/packages/wallet-extensions/src/ctrl/index.ts +++ b/packages/wallet-extensions/src/ctrl/index.ts @@ -6,7 +6,7 @@ import { SwapKitError, WalletOption, } from "@swapkit-dev/helpers"; -import { createWallet, getWalletSupportedChains } from "@swapkit/wallet-core"; +import { createWallet, getWalletSupportedChains } from "@swapkit-dev/wallet-core"; import { getCtrlAddress, getCtrlProvider, walletTransfer } from "./walletHelpers"; export const ctrlWallet = createWallet({ diff --git a/packages/wallet-extensions/src/evm-extensions/index.ts b/packages/wallet-extensions/src/evm-extensions/index.ts index cfd6dd6..aefa7c0 100644 --- a/packages/wallet-extensions/src/evm-extensions/index.ts +++ b/packages/wallet-extensions/src/evm-extensions/index.ts @@ -9,7 +9,7 @@ import { switchEVMWalletNetwork, WalletOption, } from "@swapkit-dev/helpers"; -import { createWallet, getWalletSupportedChains } from "@swapkit/wallet-core"; +import { createWallet, getWalletSupportedChains } from "@swapkit-dev/wallet-core"; import type { BrowserProvider, Eip1193Provider } from "ethers"; export type EVMWalletOptions = diff --git a/packages/wallet-extensions/src/helpers/near.ts b/packages/wallet-extensions/src/helpers/near.ts index 7b4fe2e..2eae9c4 100644 --- a/packages/wallet-extensions/src/helpers/near.ts +++ b/packages/wallet-extensions/src/helpers/near.ts @@ -159,7 +159,7 @@ function actionToWalletJson(action: Transaction["actions"][number]) { return { params: { // args must be base64 string for wallet JSON - args: Buffer.from(String(data.functionCall?.args ?? "{}")).toString("base64"), + args: typeof Buffer.from(data.functionCall?.args ?? "{}").toString("base64"), deposit: (data.functionCall?.deposit ?? 0).toString(), gas: (data.functionCall?.gas ?? 0).toString(), methodName: data.functionCall?.methodName ?? "", diff --git a/packages/wallet-extensions/src/keepkey-bex/index.ts b/packages/wallet-extensions/src/keepkey-bex/index.ts index 4749399..70ee536 100644 --- a/packages/wallet-extensions/src/keepkey-bex/index.ts +++ b/packages/wallet-extensions/src/keepkey-bex/index.ts @@ -1,5 +1,5 @@ import { AssetValue, Chain, ChainId, filterSupportedChains, SwapKitError, WalletOption } from "@swapkit-dev/helpers"; -import { createWallet, getWalletSupportedChains } from "@swapkit/wallet-core"; +import { createWallet, getWalletSupportedChains } from "@swapkit-dev/wallet-core"; import type { Eip1193Provider } from "ethers"; import { getKEEPKEYAddress, diff --git a/packages/wallet-extensions/src/keplr/index.ts b/packages/wallet-extensions/src/keplr/index.ts index b233eef..9738a74 100644 --- a/packages/wallet-extensions/src/keplr/index.ts +++ b/packages/wallet-extensions/src/keplr/index.ts @@ -6,7 +6,7 @@ import { SwapKitError, WalletOption, } from "@swapkit-dev/helpers"; -import { createWallet, getWalletSupportedChains } from "@swapkit/wallet-core"; +import { createWallet, getWalletSupportedChains } from "@swapkit-dev/wallet-core"; import { chainRegistry } from "./chainRegistry"; const keplrSupportedChainIds = [ChainId.Cosmos, ChainId.Kujira, ChainId.Noble, ChainId.THORChain] as const; diff --git a/packages/wallet-extensions/src/okx/index.ts b/packages/wallet-extensions/src/okx/index.ts index 980492c..8fdc97f 100644 --- a/packages/wallet-extensions/src/okx/index.ts +++ b/packages/wallet-extensions/src/okx/index.ts @@ -1,6 +1,6 @@ import { Chain, filterSupportedChains, WalletOption } from "@swapkit-dev/helpers"; -import { createWallet, getWalletSupportedChains } from "@swapkit/wallet-core"; +import { createWallet, getWalletSupportedChains } from "@swapkit-dev/wallet-core"; import { getWalletMethods } from "./helpers"; export const okxWallet = createWallet({ diff --git a/packages/wallet-extensions/src/onekey/index.ts b/packages/wallet-extensions/src/onekey/index.ts index 2872e69..2752e3a 100644 --- a/packages/wallet-extensions/src/onekey/index.ts +++ b/packages/wallet-extensions/src/onekey/index.ts @@ -9,7 +9,7 @@ import { WalletOption, } from "@swapkit-dev/helpers"; import { Transaction } from "@swapkit-dev/utxo-signer"; -import { createWallet, getWalletSupportedChains } from "@swapkit/wallet-core"; +import { createWallet, getWalletSupportedChains } from "@swapkit-dev/wallet-core"; import type { BitcoinProvider, GetAddressOptions, GetAddressResponse, SignTransactionOptions } from "sats-connect"; async function getWalletMethodsForExtension(chain: Chain) { diff --git a/packages/wallet-extensions/src/petra/index.ts b/packages/wallet-extensions/src/petra/index.ts index 0b2d5f7..eb0ef1c 100644 --- a/packages/wallet-extensions/src/petra/index.ts +++ b/packages/wallet-extensions/src/petra/index.ts @@ -1,5 +1,5 @@ import { Chain, filterSupportedChains, SwapKitError, WalletOption } from "@swapkit-dev/helpers"; -import { createWallet, getWalletSupportedChains } from "@swapkit/wallet-core"; +import { createWallet, getWalletSupportedChains } from "@swapkit-dev/wallet-core"; export const petraWallet = createWallet({ connect: ({ addChain, supportedChains, walletType }) => diff --git a/packages/wallet-extensions/src/phantom/index.ts b/packages/wallet-extensions/src/phantom/index.ts index 48fb82a..c859e8d 100644 --- a/packages/wallet-extensions/src/phantom/index.ts +++ b/packages/wallet-extensions/src/phantom/index.ts @@ -6,7 +6,7 @@ import { SwapKitError, WalletOption, } from "@swapkit-dev/helpers"; -import { createWallet, getWalletSupportedChains } from "@swapkit/wallet-core"; +import { createWallet, getWalletSupportedChains } from "@swapkit-dev/wallet-core"; export const phantomWallet = createWallet({ connect: ({ addChain, supportedChains, walletType }) => diff --git a/packages/wallet-extensions/src/polkadotjs/index.ts b/packages/wallet-extensions/src/polkadotjs/index.ts index 90744e9..9a55486 100644 --- a/packages/wallet-extensions/src/polkadotjs/index.ts +++ b/packages/wallet-extensions/src/polkadotjs/index.ts @@ -1,5 +1,5 @@ import { Chain, filterSupportedChains, SwapKitError, WalletOption } from "@swapkit-dev/helpers"; -import { createWallet, getWalletSupportedChains } from "@swapkit/wallet-core"; +import { createWallet, getWalletSupportedChains } from "@swapkit-dev/wallet-core"; export const polkadotWallet = createWallet({ connect: ({ addChain, supportedChains, walletType }) => diff --git a/packages/wallet-extensions/src/talisman/index.ts b/packages/wallet-extensions/src/talisman/index.ts index b46eb93..6056bd0 100644 --- a/packages/wallet-extensions/src/talisman/index.ts +++ b/packages/wallet-extensions/src/talisman/index.ts @@ -7,7 +7,7 @@ import { switchEVMWalletNetwork, WalletOption, } from "@swapkit-dev/helpers"; -import { createWallet, getWalletSupportedChains } from "@swapkit/wallet-core"; +import { createWallet, getWalletSupportedChains } from "@swapkit-dev/wallet-core"; import type { Eip1193Provider } from "ethers"; export const talismanWallet = createWallet({ diff --git a/packages/wallet-extensions/src/tronlink/index.ts b/packages/wallet-extensions/src/tronlink/index.ts index d63f779..841f73f 100644 --- a/packages/wallet-extensions/src/tronlink/index.ts +++ b/packages/wallet-extensions/src/tronlink/index.ts @@ -1,5 +1,5 @@ import { Chain, filterSupportedChains, WalletOption } from "@swapkit-dev/helpers"; -import { createWallet, getWalletSupportedChains } from "@swapkit/wallet-core"; +import { createWallet, getWalletSupportedChains } from "@swapkit-dev/wallet-core"; import { getExpectedTronNetwork, getWalletForChain, setupEventListeners } from "./helpers.js"; export const tronlinkWallet = createWallet({ diff --git a/packages/wallet-extensions/src/trustwallet/index.ts b/packages/wallet-extensions/src/trustwallet/index.ts index 4dd18f8..4d3c386 100644 --- a/packages/wallet-extensions/src/trustwallet/index.ts +++ b/packages/wallet-extensions/src/trustwallet/index.ts @@ -11,7 +11,7 @@ import { WalletOption, } from "@swapkit-dev/helpers"; import type { TONTransactionMessage } from "@swapkit-dev/toolboxes/ton"; -import { createWallet, getWalletSupportedChains } from "@swapkit/wallet-core"; +import { createWallet, getWalletSupportedChains } from "@swapkit-dev/wallet-core"; import type { Eip1193Provider } from "ethers"; export type TrustWalletTonProvider = { diff --git a/packages/wallet-extensions/src/vultisig/index.ts b/packages/wallet-extensions/src/vultisig/index.ts index 5d8b6b3..0480598 100644 --- a/packages/wallet-extensions/src/vultisig/index.ts +++ b/packages/wallet-extensions/src/vultisig/index.ts @@ -11,7 +11,7 @@ import { UTXOChains, WalletOption, } from "@swapkit-dev/helpers"; -import { createWallet, getWalletSupportedChains } from "@swapkit/wallet-core"; +import { createWallet, getWalletSupportedChains } from "@swapkit-dev/wallet-core"; import { getVultisigAddress, getVultisigMethods, diff --git a/packages/wallet-hardware/package.json b/packages/wallet-hardware/package.json index be730f8..89b0682 100644 --- a/packages/wallet-hardware/package.json +++ b/packages/wallet-hardware/package.json @@ -1,9 +1,7 @@ { "author": "swapkit-dev", "dependencies": { - "@cosmjs/amino": "~0.37.0", "@cosmjs/crypto": "0.37.0", - "@cosmjs/proto-signing": "~0.37.0", "@keepkey/keepkey-sdk": "~0.2.62", "@ledgerhq/devices": "~8.10.0", "@ledgerhq/errors": "~6.29.0", @@ -21,22 +19,19 @@ "@near-js/crypto": "~2.5.0", "@near-js/transactions": "~2.5.0", "@scure/base": "2.0.0", - "@swapkit-dev/helpers": "^4.12.0", - "@swapkit-dev/toolboxes": "^4.11.2", - "@swapkit-dev/utxo-signer": "^2.1.0", - "@swapkit/wallet-core": "workspace:*", + "@swapkit-dev/helpers": "workspace:*", + "@swapkit-dev/toolboxes": "workspace:*", + "@swapkit-dev/utxo-signer": "workspace:*", + "@swapkit-dev/wallet-core": "workspace:*", "@trezor/connect-web": "~9.6.4", "cosmjs-types": "~0.10.1", "ethers": "^6.14.0", "ripple-binary-codec": "2.5.1", - "ts-pattern": "^5.9.0", - "xrpl": "~4.4.2" + "ts-pattern": "^5.9.0" }, "description": "SwapKit - Wallet Hardware", "devDependencies": { - "@cosmjs/amino": "0.37.0", "@cosmjs/crypto": "0.37.0", - "@cosmjs/proto-signing": "0.37.0", "@keepkey/keepkey-sdk": "0.2.62", "@ledgerhq/devices": "8.10.0", "@ledgerhq/errors": "6.29.0", @@ -58,8 +53,7 @@ "cosmjs-types": "0.10.1", "ethers": "6.16.0", "ripple-binary-codec": "2.5.1", - "ts-pattern": "^5.9.0", - "xrpl": "4.4.2" + "ts-pattern": "^5.9.0" }, "exports": { ".": { @@ -87,19 +81,15 @@ "types": "./dist/types/trezor/index.d.ts" } }, - "files": [ - "dist/" - ], - "homepage": "https://github.com/swapkit/wallets", + "files": ["dist/", "src/"], + "homepage": "https://github.com/swapkit/SwapKit", "license": "SEE LICENSE IN LICENSE", - "name": "@swapkit/wallet-hardware", - "publishConfig": { - "access": "public" - }, + "name": "@swapkit-dev/wallet-hardware", + "publishConfig": { "access": "restricted" }, "repository": { + "directory": "packages/wallet-hardware", "type": "git", - "url": "git+https://github.com/swapkit/wallets.git", - "directory": "packages/wallet-hardware" + "url": "git+https://github.com/swapkit/SwapKit.git" }, "scripts": { "build": "bun run ./build.ts", @@ -109,5 +99,5 @@ "type-check:go": "tsgo" }, "type": "module", - "version": "4.5.6" + "version": "4.6.1" } diff --git a/packages/wallet-hardware/src/keepkey/index.ts b/packages/wallet-hardware/src/keepkey/index.ts index 40c5af9..739d0f8 100644 --- a/packages/wallet-hardware/src/keepkey/index.ts +++ b/packages/wallet-hardware/src/keepkey/index.ts @@ -11,7 +11,7 @@ import { export type { PairingInfo } from "@keepkey/keepkey-sdk"; -import { createWallet, getWalletSupportedChains } from "@swapkit/wallet-core"; +import { createWallet, getWalletSupportedChains } from "@swapkit-dev/wallet-core"; import { cosmosWalletMethods } from "./chains/cosmos"; import { KeepKeySigner } from "./chains/evm"; import { mayachainWalletMethods } from "./chains/mayachain"; diff --git a/packages/wallet-hardware/src/ledger/index.ts b/packages/wallet-hardware/src/ledger/index.ts index d826186..e238f51 100644 --- a/packages/wallet-hardware/src/ledger/index.ts +++ b/packages/wallet-hardware/src/ledger/index.ts @@ -23,7 +23,7 @@ import { type UTXOForMultiAddressTransfer, } from "@swapkit-dev/toolboxes/utxo"; import type { Transaction } from "@swapkit-dev/utxo-signer"; -import { createWallet, getWalletSupportedChains } from "@swapkit/wallet-core"; +import { createWallet, getWalletSupportedChains } from "@swapkit-dev/wallet-core"; import { getLedgerAddress, getLedgerClient } from "./helpers"; export const ledgerWallet = createWallet({ diff --git a/packages/wallet-hardware/src/trezor/index.ts b/packages/wallet-hardware/src/trezor/index.ts index e2d4751..84c8a1d 100644 --- a/packages/wallet-hardware/src/trezor/index.ts +++ b/packages/wallet-hardware/src/trezor/index.ts @@ -19,7 +19,7 @@ import { } from "@swapkit-dev/toolboxes/utxo"; import type { BTCNetwork, PCZT, Transaction, ZcashTransaction } from "@swapkit-dev/utxo-signer"; import { NETWORKS, ZcashConsensusBranchId, ZcashVersionGroupId } from "@swapkit-dev/utxo-signer"; -import { createWallet, getWalletSupportedChains } from "@swapkit/wallet-core"; +import { createWallet, getWalletSupportedChains } from "@swapkit-dev/wallet-core"; function decodeOpReturnData(script: Uint8Array): string | null { if (script.length < 2 || script[0] !== 0x6a) return null; diff --git a/packages/wallet-keystore/CHANGELOG.md b/packages/wallet-keystore/CHANGELOG.md deleted file mode 100644 index 14b30ae..0000000 --- a/packages/wallet-keystore/CHANGELOG.md +++ /dev/null @@ -1,275 +0,0 @@ -# @swapkit-dev/wallet-keystore - -## 4.3.6 - -### Patch Changes - -- Updated dependencies [[`686341c`](https://github.com/swapkit/sdk/commit/686341cc66cc09b6389d19f57787203c72566ff8)]: - - @swapkit-dev/toolboxes@4.11.2 - - @swapkit-dev/helpers@4.11.0 - -## 4.3.5 - -### Patch Changes - -- Updated dependencies [[`f661bbe`](https://github.com/swapkit/sdk/commit/f661bbe11f4b4562ecebbfd1f6a024f5ecbb35ad)]: - - @swapkit-dev/toolboxes@4.11.1 - - @swapkit-dev/helpers@4.11.0 - -## 4.3.4 - -### Patch Changes - -- [`9804504`](https://github.com/swapkit/sdk/commit/9804504d0500d2a30dcc2677dba084a8a77cbcc7) Thanks [@towanTG](https://github.com/towanTG)! - feat(widget): add keystore wallet creation and mnemonic import dialogs - -- Updated dependencies [[`9804504`](https://github.com/swapkit/sdk/commit/9804504d0500d2a30dcc2677dba084a8a77cbcc7), [`997361a`](https://github.com/swapkit/sdk/commit/997361a6dabb079731268785c76d92e8e022b2be), [`9804504`](https://github.com/swapkit/sdk/commit/9804504d0500d2a30dcc2677dba084a8a77cbcc7)]: - - @swapkit-dev/toolboxes@4.11.0 - - @swapkit-dev/helpers@4.11.0 - - @swapkit-dev/wallet-core@4.1.19 - -## 4.3.3 - -### Patch Changes - -- Updated dependencies [[`c2de41f`](https://github.com/swapkit/sdk/commit/c2de41f9773f0814a11d3ec0d191598b253d67da)]: - - @swapkit-dev/toolboxes@4.10.3 - - @swapkit-dev/helpers@4.10.7 - - @swapkit-dev/wallet-core@4.1.18 - -## 4.3.2 - -### Patch Changes - -- Updated dependencies []: - - @swapkit-dev/helpers@4.10.6 - - @swapkit-dev/toolboxes@4.10.2 - - @swapkit-dev/wallet-core@4.1.17 - -## 4.3.1 - -### Patch Changes - -- Updated dependencies [[`6346a4a`](https://github.com/swapkit/sdk/commit/6346a4a3c5cdde95f282b841d80d79c8eece47a8)]: - - @swapkit-dev/helpers@4.10.5 - - @swapkit-dev/toolboxes@4.10.1 - - @swapkit-dev/wallet-core@4.1.16 - -## 4.3.0 - -### Minor Changes - -- [#120](https://github.com/swapkit/sdk/pull/120) [`0fd10ee`](https://github.com/swapkit/sdk/commit/0fd10eedd1c39324d4559c3e44f94ab1d55e644a) Thanks [@towanTG](https://github.com/towanTG)! - feat(utxo): replace bitcoinjs-lib with scure-btc-signer for all UTXO chains - - Introduces @swapkit-dev/utxo-signer as a standalone signing package built on @noble/hashes and @scure/btc-signer. Refactors UTXO toolbox with HD wallet derivation, RBF (replace-by-fee) support, Zcash PCZT transaction builder, improved fee estimation, and batch UTXO fetching for Dogecoin. Hardware wallets (Ledger, Trezor, KeepKey) and keystore wallet updated to use the new signer. - -### Patch Changes - -- Updated dependencies [[`0fd10ee`](https://github.com/swapkit/sdk/commit/0fd10eedd1c39324d4559c3e44f94ab1d55e644a)]: - - @swapkit-dev/toolboxes@4.10.0 - - @swapkit-dev/helpers@4.10.4 - - @swapkit-dev/wallet-core@4.1.15 - -## 4.2.18 - -### Patch Changes - -- Updated dependencies [[`365fd35`](https://github.com/swapkit/sdk/commit/365fd35f35e9ad171509ead07c234244187e0a1c)]: - - @swapkit-dev/toolboxes@4.9.7 - - @swapkit-dev/helpers@4.10.3 - -## 4.2.17 - -### Patch Changes - -- Updated dependencies [[`cb3f8b4`](https://github.com/swapkit/sdk/commit/cb3f8b426eda4e65513b0d1fbfc263dff961a30d)]: - - @swapkit-dev/helpers@4.10.3 - - @swapkit-dev/toolboxes@4.9.6 - - @swapkit-dev/wallet-core@4.1.14 - -## 4.2.16 - -### Patch Changes - -- Updated dependencies [[`36f0c95`](https://github.com/swapkit/sdk/commit/36f0c9535bec4d608a853d5a00f178b4f4cc09f4), [`3fbec61`](https://github.com/swapkit/sdk/commit/3fbec61cf9b4a5a6b8604c6c3b94d15a3e9de0d7)]: - - @swapkit-dev/toolboxes@4.9.5 - - @swapkit-dev/helpers@4.10.2 - - @swapkit-dev/wallet-core@4.1.13 - -## 4.2.15 - -### Patch Changes - -- Updated dependencies [[`d49a4f2`](https://github.com/swapkit/sdk/commit/d49a4f21cd8929212161321f3ed9956dceb8d7c1)]: - - @swapkit-dev/helpers@4.10.1 - - @swapkit-dev/toolboxes@4.9.4 - - @swapkit-dev/wallet-core@4.1.12 - -## 4.2.14 - -### Patch Changes - -- Updated dependencies [[`6b26d26`](https://github.com/swapkit/sdk/commit/6b26d26ab61fa4a05021bae1055fbefca14516f2), [`2a3f741`](https://github.com/swapkit/sdk/commit/2a3f74120c83724dc61360ac3bcae848683218c1), [`6b26d26`](https://github.com/swapkit/sdk/commit/6b26d26ab61fa4a05021bae1055fbefca14516f2), [`6b26d26`](https://github.com/swapkit/sdk/commit/6b26d26ab61fa4a05021bae1055fbefca14516f2), [`f041b69`](https://github.com/swapkit/sdk/commit/f041b69431a9c891780c931e591b8691a2a85daa)]: - - @swapkit-dev/helpers@4.10.0 - - @swapkit-dev/toolboxes@4.9.3 - - @swapkit-dev/wallet-core@4.1.11 - -## 4.2.13 - -### Patch Changes - -- Updated dependencies [[`61296c8`](https://github.com/swapkit/sdk/commit/61296c81f33981c96bfba590c98298ee5629a06f)]: - - @swapkit-dev/helpers@4.9.5 - - @swapkit-dev/toolboxes@4.9.2 - - @swapkit-dev/wallet-core@4.1.10 - -## 4.2.12 - -### Patch Changes - -- Updated dependencies [[`01cfad6`](https://github.com/swapkit/sdk/commit/01cfad601398e39fb852f97f4fa6dbf6309bb680), [`01cfad6`](https://github.com/swapkit/sdk/commit/01cfad601398e39fb852f97f4fa6dbf6309bb680), [`01cfad6`](https://github.com/swapkit/sdk/commit/01cfad601398e39fb852f97f4fa6dbf6309bb680), [`bdd6a23`](https://github.com/swapkit/sdk/commit/bdd6a237c41cb6a14465b04c9acbc3fbe2899be4)]: - - @swapkit-dev/helpers@4.9.4 - - @swapkit-dev/toolboxes@4.9.1 - - @swapkit-dev/wallet-core@4.1.9 - -## 4.2.11 - -### Patch Changes - -- Updated dependencies [[`8e2587a`](https://github.com/swapkit/sdk/commit/8e2587a0bfcd41a1023fadb821903a4961d0aeef), [`1640cd7`](https://github.com/swapkit/sdk/commit/1640cd7ba5ff3397d278ce6a08f84ee98cfd356f), [`123f2d6`](https://github.com/swapkit/sdk/commit/123f2d6454e8023d28d0d878f95c876ca5738d10)]: - - @swapkit-dev/toolboxes@4.9.0 - - @swapkit-dev/helpers@4.9.3 - - @swapkit-dev/wallet-core@4.1.8 - -## 4.2.10 - -### Patch Changes - -- Updated dependencies []: - - @swapkit-dev/helpers@4.9.2 - - @swapkit-dev/toolboxes@4.8.1 - - @swapkit-dev/wallet-core@4.1.7 - -## 4.2.9 - -### Patch Changes - -- Updated dependencies [[`8d9fd7d`](https://github.com/swapkit/sdk/commit/8d9fd7d56dbfe57638204060d029680452e08c39)]: - - @swapkit-dev/toolboxes@4.8.0 - - @swapkit-dev/helpers@4.9.1 - - @swapkit-dev/wallet-core@4.1.6 - -## 4.2.8 - -### Patch Changes - -- Updated dependencies [[`08d41d2`](https://github.com/swapkit/sdk/commit/08d41d2476c56a6f81f5ea83902e6c497278c995)]: - - @swapkit-dev/helpers@4.9.0 - - @swapkit-dev/toolboxes@4.7.0 - - @swapkit-dev/wallet-core@4.1.5 - -## 4.2.7 - -### Patch Changes - -- Updated dependencies [[`e8b5bd5`](https://github.com/swapkit/sdk/commit/e8b5bd5e2cb9709265a488b2a0201077342c89b4)]: - - @swapkit-dev/toolboxes@4.6.7 - - @swapkit-dev/helpers@4.8.4 - -## 4.2.6 - -### Patch Changes - -- Updated dependencies [[`f220ae3`](https://github.com/swapkit/sdk/commit/f220ae38a32408093cebddc10b68a40bd088a64e)]: - - @swapkit-dev/toolboxes@4.6.6 - - @swapkit-dev/helpers@4.8.4 - -## 4.2.5 - -### Patch Changes - -- Updated dependencies [[`71d84ca`](https://github.com/swapkit/sdk/commit/71d84ca4c243cbce6617cfdea7ea2f0feb696fd7)]: - - @swapkit-dev/toolboxes@4.6.5 - - @swapkit-dev/helpers@4.8.4 - -## 4.2.4 - -### Patch Changes - -- Updated dependencies [[`c11cd18`](https://github.com/swapkit/sdk/commit/c11cd18052ca4e2f8c8fe0d678378e8d880073cd), [`fd43ab5`](https://github.com/swapkit/sdk/commit/fd43ab57e16d4ebac6960afc507678d427edf278), [`5d34cc2`](https://github.com/swapkit/sdk/commit/5d34cc2feb111517058a355d5215c66658469df6)]: - - @swapkit-dev/helpers@4.8.4 - - @swapkit-dev/toolboxes@4.6.4 - - @swapkit-dev/wallet-core@4.1.4 - -## 4.2.3 - -### Patch Changes - -- Updated dependencies [[`34c9a02`](https://github.com/swapkit/sdk/commit/34c9a024716424e6b1ad0afe1d13097aca8aaca3), [`c79c65a`](https://github.com/swapkit/sdk/commit/c79c65ab5aabde6219e017501e7b1e3238ea316c), [`63c9069`](https://github.com/swapkit/sdk/commit/63c9069c76004e08beb42d289ed6d046c79e4e7f)]: - - @swapkit-dev/toolboxes@4.6.3 - - @swapkit-dev/helpers@4.8.3 - - @swapkit-dev/wallet-core@4.1.3 - -## 4.2.2 - -### Patch Changes - -- Updated dependencies [[`38b55e7`](https://github.com/swapkit/sdk/commit/38b55e7e1455149f932a575cac4837d2b0a144db)]: - - @swapkit-dev/toolboxes@4.6.2 - - @swapkit-dev/helpers@4.8.2 - - @swapkit-dev/wallet-core@4.1.2 - -## 4.2.1 - -### Patch Changes - -- [`50c49f8`](https://github.com/swapkit/sdk/commit/50c49f88c22c149fede95b109bab1b3ea0b300c4) Thanks [@ice-chillios](https://github.com/ice-chillios)! - Bump - -- Updated dependencies [[`49f58fb`](https://github.com/swapkit/sdk/commit/49f58fb78fd08c82bccae0d49d6f9eb9e9e04b2a), [`50c49f8`](https://github.com/swapkit/sdk/commit/50c49f88c22c149fede95b109bab1b3ea0b300c4)]: - - @swapkit-dev/toolboxes@4.6.1 - - @swapkit-dev/helpers@4.8.1 - - @swapkit-dev/wallet-core@4.1.1 - -## 4.2.0 - -### Minor Changes - -- [`a4402e9`](https://github.com/swapkit/sdk/commit/a4402e91de5d634da24aa0c752f5e473132a4c71) Thanks [@github-actions[bot]](https://github.com/github-actions%5Bbot%5D)! - Removes async toolboxes and adapts code for it - -### Patch Changes - -- Updated dependencies [[`a4402e9`](https://github.com/swapkit/sdk/commit/a4402e91de5d634da24aa0c752f5e473132a4c71), [`941d648`](https://github.com/swapkit/sdk/commit/941d648516ce8aca2c5e21827a27f75b34163cee)]: - - @swapkit-dev/helpers@4.8.0 - - @swapkit-dev/toolboxes@4.6.0 - - @swapkit-dev/wallet-core@4.1.0 - -## 4.1.14 - -### Patch Changes - -- [#24](https://github.com/swapkit/sdk/pull/24) [`81936df`](https://github.com/swapkit/sdk/commit/81936df75586c2686ffd4b7b228f47b7461fa8d9) Thanks [@towanTG](https://github.com/towanTG)! - Validates Tron address before fetching balance - -- Updated dependencies [[`148cd88`](https://github.com/swapkit/sdk/commit/148cd88c64ad573514454334e392bd7c65bb62e2), [`81936df`](https://github.com/swapkit/sdk/commit/81936df75586c2686ffd4b7b228f47b7461fa8d9)]: - - @swapkit-dev/toolboxes@4.5.3 - - @swapkit-dev/wallet-core@4.0.57 - -## 4.1.13 - -### Patch Changes - -- [`799ccc8`](https://github.com/swapkit/sdk/commit/799ccc82896823a3233a48f97745b979622d5076) Thanks [@github-actions[bot]](https://github.com/github-actions%5Bbot%5D)! - Manual update to fix release - -- Updated dependencies [[`799ccc8`](https://github.com/swapkit/sdk/commit/799ccc82896823a3233a48f97745b979622d5076)]: - - @swapkit-dev/helpers@4.7.2 - - @swapkit-dev/toolboxes@4.5.2 - - @swapkit-dev/wallet-core@4.0.56 - -## 4.1.12 - -### Patch Changes - -- [`4d60682`](https://github.com/swapkit/sdk/commit/4d606827eda5a8e1842cad9bcf1c88ff0d6f5517) Thanks [@towanTG](https://github.com/towanTG)! - Releases latest changes from public repo - enables monad for some wallets, fixes sui tokens tx building and fixes vultisig - -- Updated dependencies [[`4d60682`](https://github.com/swapkit/sdk/commit/4d606827eda5a8e1842cad9bcf1c88ff0d6f5517), [`f6d9e39`](https://github.com/swapkit/sdk/commit/f6d9e390a3dc47d777c934d891626c2e8e97e45b)]: - - @swapkit-dev/helpers@4.6.0 - - @swapkit-dev/toolboxes@4.5.0 - - @swapkit-dev/wallet-core@4.0.55 diff --git a/packages/wallet-keystore/__tests__/fixtures.ts b/packages/wallet-keystore/__tests__/fixtures.ts deleted file mode 100644 index 6c6044e..0000000 --- a/packages/wallet-keystore/__tests__/fixtures.ts +++ /dev/null @@ -1,38 +0,0 @@ -import { Chain, EVMChains } from "@swapkit-dev/helpers"; -import type { KEYSTORE_SUPPORTED_CHAINS } from "../src"; - -const evmChains = EVMChains.reduce( - (acc, chain) => { - acc[chain] = "0x51176f5F0B7ccC8fA0376F08aaa28F316A38a2a0"; - return acc; - }, - {} as Record<(typeof EVMChains)[number], string>, -); - -// [Chain.Radix]: "16kQVedQo7yYoFSp2MnQ78zP39xWnFGePnZps2APEyt9K9KZ", -export const testKeystoreAddresses: Record<(typeof KEYSTORE_SUPPORTED_CHAINS)[number], string> = { - ...evmChains, - [Chain.BitcoinCash]: "qzhcfqxrnhcw88c433tq0fjlw0uut8c0e5d3cf8566", - [Chain.Bitcoin]: "bc1qjpmp8xvg9k4ysa7nvev3lw7qcclvxzt2ex75kr", - [Chain.Cosmos]: "cosmos12d7d2rlxp7urkp8z0p8sft2fm07ewyjrfvul3f", - [Chain.Dash]: "XoBBveBZv32rq9MMBt88QSVsUtdj9cMCLy", - [Chain.Dogecoin]: "DPrKsuhVibyfMMYRmKP49US5PBQR8zq6v4", - [Chain.Kujira]: "kujira12d7d2rlxp7urkp8z0p8sft2fm07ewyjrcy78ur", - [Chain.Litecoin]: "ltc1qs4h7p8x0kfhs88wazmq2d40t59dwdlxd6rlpjz", - [Chain.Maya]: "maya1hm0sdz9v2h5jwjuu0ssp8x98upvlc6py2t7e6j", - [Chain.Near]: "a03fafdf5f97d3c6be6bff9e55f057dda76fefbb7e149f5469248f41e812cb6e", - [Chain.Noble]: "noble12d7d2rlxp7urkp8z0p8sft2fm07ewyjrp0fhf8", - [Chain.Ripple]: "rhDQXdwWR2RstC7sLjLMbjCeWT3PuSAZVu", - [Chain.Solana]: "4UHWuPwyV3XCcnwrpEdWAEW3WLUP1RDMaK3ANNsRUjfM", - [Chain.Aptos]: "0x7578a5b4b7545b1233988c8ffde9405787ec23b50fb278435f95428d7e1234c0", - [Chain.Stellar]: "GBNO35XKLLTM5G55TAPDWR2E6NDWD2UJJPJ7ZNRY6I2QIND3LSAZYGE3", - [Chain.Sui]: "0x57b861db681d8e47b586e6e9a92f6ed210dbbb440670b8122420848cf0e844fb", - [Chain.THORChain]: "thor1hm0sdz9v2h5jwjuu0ssp8x98upvlc6py2uq4vz", - [Chain.Ton]: "EQCC1GV4iL5EkQqICYshf3AF7ESbceCYhVK-go1SkOMOBTNE", - [Chain.Tron]: "THr473cZqHwBLEmTWUUR1WTotxijWWbRGD", - [Chain.Zcash]: "t1Mh7QW9g1gK94CSRxniD49aLAJ67s6UerX", - [Chain.Cardano]: - "addr1q9g0yfps0f6krj5c0wd5hs4hafxehnlfsq8ynaw24fwp76c390gqe88qk3qtt69lpche6srul462p5nwvhvnwemgtj3q6s37er", -}; - -export const testKeystoreWalletData = { addresses: testKeystoreAddresses }; diff --git a/packages/wallet-keystore/__tests__/keystore.test.ts b/packages/wallet-keystore/__tests__/keystore.test.ts deleted file mode 100644 index 24bbb87..0000000 --- a/packages/wallet-keystore/__tests__/keystore.test.ts +++ /dev/null @@ -1,215 +0,0 @@ -import { afterAll, beforeAll, describe, expect, it } from "bun:test"; -import { SKConfig } from "@swapkit-dev/helpers"; -import { - createKeystoreWallet, - encryptToKeyStore, - generatePhrase, - KEYSTORE_SUPPORTED_CHAINS, - validatePhrase, -} from "../src"; -import { testKeystoreWalletData } from "./fixtures"; - -beforeAll(() => { - SKConfig.set({ apiKeys: { swapKit: process.env.TEST_API_KEY }, envs: { isDev: true } }); -}); - -afterAll(() => { - SKConfig.reinitialize(); -}); - -describe("keystore - Reading address", () => { - it( - "should read address from keystore", - async () => { - if (!process.env.TEST_PHRASE) { - return console.error("TEST_PHRASE is not set. Skipping test."); - } - const wallet = await createKeystoreWallet({ chains: KEYSTORE_SUPPORTED_CHAINS, phrase: process.env.TEST_PHRASE }); - - for (const [chain, address] of Object.entries(testKeystoreWalletData.addresses)) { - const chainWallet = wallet[chain as keyof typeof wallet]; - - expect(`${chain}: ${chainWallet.address}`).toBe(`${chain}: ${address}`); - } - }, - { retry: 3, timeout: 10000 }, - ); -}); - -describe("keystore - Reading balances", () => { - it( - "should read balances from keystore", - async () => { - if (!process.env.TEST_PHRASE) { - return console.error("TEST_PHRASE is not set. Skipping test."); - } - - const wallet = await createKeystoreWallet({ chains: KEYSTORE_SUPPORTED_CHAINS, phrase: process.env.TEST_PHRASE }); - - const failedChains: [string, string][] = []; - - for (const chain of KEYSTORE_SUPPORTED_CHAINS) { - try { - const { balance } = wallet[chain]; - const firstBalance = balance?.[0]; - if (firstBalance) { - console.info(firstBalance.toString(), firstBalance.getValue("string")); - expect(balance.length).toBeGreaterThan(0); - } - } catch (error: any) { - failedChains.push([chain, error?.message]); - } - } - - if (failedChains.length > 0) { - console.error(failedChains.map((chain) => `${chain[0]}: ${chain[1]}`).join("\n")); - } - }, - { retry: 3, timeout: 120000 }, - ); -}); - -describe("validatePhrase — edge cases used by WalletKeystorePhraseDialog", () => { - it("rejects an empty string", () => { - expect(validatePhrase("")).toBe(false); - }); - - it("rejects a single-word input", () => { - expect(validatePhrase("abandon")).toBe(false); - }); - - it("rejects an 11-word phrase (off-by-one from 12)", () => { - const phrase = generatePhrase(12); - const words = phrase.split(" "); - const elevenWords = words.slice(0, 11).join(" "); - expect(validatePhrase(elevenWords)).toBe(false); - }); - - it("rejects a 13-word phrase (off-by-one from 12)", () => { - const phrase = generatePhrase(12); - const words = phrase.split(" "); - // Duplicate one word to get 13 - const thirteenWords = [...words, words[0]].join(" "); - expect(validatePhrase(thirteenWords)).toBe(false); - }); - - it("rejects a phrase with an invalid BIP39 word", () => { - const phrase = generatePhrase(12); - const words = phrase.split(" "); - words[5] = "notabip39word"; - expect(validatePhrase(words.join(" "))).toBe(false); - }); - - it("accepts a valid 12-word phrase", () => { - const phrase = generatePhrase(12); - expect(validatePhrase(phrase)).toBe(true); - }); - - it("accepts a valid 24-word phrase", () => { - const phrase = generatePhrase(24); - expect(validatePhrase(phrase)).toBe(true); - }); - - it("rejects a phrase with extra leading/trailing whitespace (without trim)", () => { - const phrase = generatePhrase(12); - // validatePhrase does NOT trim — the caller (phrase dialog) must trim before calling - // This documents a potential bug: if the dialog passes untrimmed input - const paddedPhrase = ` ${phrase} `; - // BIP39 validateMnemonic from @scure/bip39 normalizes whitespace internally - // so this actually passes — documenting the behavior - const result = validatePhrase(paddedPhrase); - // If this passes, the dialog's trim is redundant but not harmful - // If this fails, the dialog's trim is essential - expect(typeof result).toBe("boolean"); - }); - - it("rejects a phrase with multiple spaces between words", () => { - const phrase = generatePhrase(12); - const multiSpaced = phrase.replace(/ /g, " "); - // @scure/bip39 normalizes whitespace — documenting the behavior - const result = validatePhrase(multiSpaced); - expect(typeof result).toBe("boolean"); - }); - - it("rejects a valid phrase with wrong checksum (last word swapped)", () => { - const phrase = generatePhrase(12); - const words = phrase.split(" "); - // Replace last word (checksum word) with a different valid BIP39 word - words[11] = words[11] === "abandon" ? "ability" : "abandon"; - const tampered = words.join(" "); - // This should almost certainly fail checksum validation - expect(validatePhrase(tampered)).toBe(false); - }); -}); - -describe("generatePhrase — used by WalletKeystoreCreateDialog", () => { - it("generates exactly 12 words for size 12", () => { - const phrase = generatePhrase(12); - expect(phrase.split(" ")).toHaveLength(12); - }); - - it("generates exactly 24 words for size 24", () => { - const phrase = generatePhrase(24); - expect(phrase.split(" ")).toHaveLength(24); - }); - - it("generates different phrases on each call (not deterministic)", () => { - const phrase1 = generatePhrase(12); - const phrase2 = generatePhrase(12); - // Astronomically unlikely to be equal - expect(phrase1).not.toBe(phrase2); - }); - - it("generated phrase passes validation", () => { - const phrase = generatePhrase(12); - expect(validatePhrase(phrase)).toBe(true); - }); -}); - -describe("encryptToKeyStore — keystore download correctness", () => { - it("produces valid keystore JSON structure", async () => { - const phrase = generatePhrase(12); - const keystore = await encryptToKeyStore(phrase, "testpassword"); - - expect(keystore).toHaveProperty("version", 1); - expect(keystore).toHaveProperty("meta", "xchain-keystore"); - expect(keystore).toHaveProperty("crypto"); - expect(keystore.crypto).toHaveProperty("cipher", "aes-128-ctr"); - expect(keystore.crypto).toHaveProperty("ciphertext"); - expect(keystore.crypto).toHaveProperty("kdf", "pbkdf2"); - expect(keystore.crypto).toHaveProperty("mac"); - expect(keystore.crypto.kdfparams).toHaveProperty("c", 262144); - expect(keystore.crypto.kdfparams).toHaveProperty("dklen", 32); - }); - - it("produces valid JSON that can be stringified for download", async () => { - const phrase = generatePhrase(12); - const keystore = await encryptToKeyStore(phrase, "testpassword"); - - const json = JSON.stringify(keystore, null, 2); - const parsed = JSON.parse(json); - - expect(parsed.version).toBe(1); - expect(parsed.crypto.cipher).toBe("aes-128-ctr"); - }); - - it("encrypted keystore can be decrypted back to original phrase", async () => { - const { decryptFromKeystore } = await import("../src/helpers"); - const phrase = generatePhrase(12); - const password = "securepassword123"; - - const keystore = await encryptToKeyStore(phrase, password); - const decrypted = await decryptFromKeystore(keystore, password); - - expect(decrypted).toBe(phrase); - }); - - it("decryption fails with wrong password", async () => { - const { decryptFromKeystore } = await import("../src/helpers"); - const phrase = generatePhrase(12); - - const keystore = await encryptToKeyStore(phrase, "correctpassword"); - - await expect(decryptFromKeystore(keystore, "wrongpassword")).rejects.toThrow(); - }); -}); diff --git a/packages/wallet-keystore/build.ts b/packages/wallet-keystore/build.ts deleted file mode 100644 index 392a109..0000000 --- a/packages/wallet-keystore/build.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { buildPackage } from "../../tools/builder"; - -void buildPackage(); diff --git a/packages/wallet-keystore/package.json b/packages/wallet-keystore/package.json deleted file mode 100644 index 4e6565c..0000000 --- a/packages/wallet-keystore/package.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - "author": "swapkit-dev", - "dependencies": { - "@noble/hashes": "2.0.1", - "@scure/bip39": "2.0.1", - "@swapkit-dev/helpers": "^4.12.0", - "@swapkit-dev/toolboxes": "^4.11.2", - "@swapkit/wallet-core": "workspace:*" - }, - "description": "SwapKit - Wallet Keystore", - "exports": { - ".": { - "bun": "./src/index.ts", - "import": "./dist/index.js", - "require": "./dist/index.cjs", - "types": "./dist/types/index.d.ts" - } - }, - "files": [ - "dist/" - ], - "homepage": "https://github.com/swapkit/wallets", - "license": "SEE LICENSE IN LICENSE", - "name": "@swapkit/wallet-keystore", - "publishConfig": { - "access": "public" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/swapkit/wallets.git", - "directory": "packages/wallet-keystore" - }, - "scripts": { - "build": "bun run ./build.ts", - "build:clean": "rm -rf dist && bun run ./build.ts", - "clean": "rm -rf dist node_modules *.tsbuildinfo", - "type-check": "bun tsc --noEmit", - "type-check:go": "tsgo" - }, - "type": "module", - "version": "4.3.6" -} diff --git a/packages/wallet-keystore/src/__tests__/hdWallet.test.ts b/packages/wallet-keystore/src/__tests__/hdWallet.test.ts deleted file mode 100644 index 9bff9aa..0000000 --- a/packages/wallet-keystore/src/__tests__/hdWallet.test.ts +++ /dev/null @@ -1,153 +0,0 @@ -import { describe, expect, it } from "bun:test"; -import { Chain } from "@swapkit-dev/helpers"; -import type { DerivedAddress } from "@swapkit-dev/toolboxes"; -import { createKeystoreWallet } from "../index"; - -const TEST_PHRASE = "abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon about"; - -type WalletWithHD = { - deriveAddresses: (params: { count: number; startIndex?: number; change?: boolean }) => DerivedAddress[]; - getExtendedPublicKey: () => string | undefined; - deriveAddressAtIndex: (params: { index: number; change?: boolean }) => DerivedAddress | undefined; - scanForAddresses: (params?: { gapLimit?: number; change?: boolean }) => Promise; - address: string; -}; - -describe("Keystore HD Wallet Integration", () => { - describe("deriveAddresses", () => { - it("should derive multiple BTC addresses", async () => { - const wallets = await createKeystoreWallet({ chains: [Chain.Bitcoin], phrase: TEST_PHRASE }); - const btcWallet = wallets[Chain.Bitcoin] as unknown as WalletWithHD; - - expect(btcWallet.deriveAddresses).toBeDefined(); - - const addresses = btcWallet.deriveAddresses({ count: 5 }); - expect(addresses).toHaveLength(5); - - const uniqueAddresses = new Set(addresses.map((a: DerivedAddress) => a.address)); - expect(uniqueAddresses.size).toBe(5); - - for (const addr of addresses) { - expect(addr.address.startsWith("bc1")).toBe(true); - expect(addr.pubkey).toBeString(); - } - }); - - it("should derive addresses with startIndex", async () => { - const wallets = await createKeystoreWallet({ chains: [Chain.Bitcoin], phrase: TEST_PHRASE }); - const btcWallet = wallets[Chain.Bitcoin] as unknown as WalletWithHD; - - const addresses = btcWallet.deriveAddresses({ count: 3, startIndex: 10 }); - - expect(addresses).toHaveLength(3); - expect(addresses[0]?.index).toBe(10); - expect(addresses[1]?.index).toBe(11); - expect(addresses[2]?.index).toBe(12); - }); - - it("should derive change addresses", async () => { - const wallets = await createKeystoreWallet({ chains: [Chain.Bitcoin], phrase: TEST_PHRASE }); - const btcWallet = wallets[Chain.Bitcoin] as unknown as WalletWithHD; - - const receiveAddresses = btcWallet.deriveAddresses({ change: false, count: 3, startIndex: 0 }); - const changeAddresses = btcWallet.deriveAddresses({ change: true, count: 3, startIndex: 0 }); - - expect(receiveAddresses[0]?.address).not.toBe(changeAddresses[0]?.address); - - for (const addr of changeAddresses) { - expect(addr.change).toBe(true); - } - }); - - it("should throw RangeError for invalid count", async () => { - const wallets = await createKeystoreWallet({ chains: [Chain.Bitcoin], phrase: TEST_PHRASE }); - const btcWallet = wallets[Chain.Bitcoin] as unknown as WalletWithHD; - - expect(() => btcWallet.deriveAddresses({ count: 0 })).toThrow(RangeError); - expect(() => btcWallet.deriveAddresses({ count: -1 })).toThrow(RangeError); - expect(() => btcWallet.deriveAddresses({ count: 1001 })).toThrow(RangeError); - }); - - it("should throw RangeError for invalid startIndex", async () => { - const wallets = await createKeystoreWallet({ chains: [Chain.Bitcoin], phrase: TEST_PHRASE }); - const btcWallet = wallets[Chain.Bitcoin] as unknown as WalletWithHD; - - expect(() => btcWallet.deriveAddresses({ count: 1, startIndex: -1 })).toThrow(RangeError); - expect(() => btcWallet.deriveAddresses({ count: 1, startIndex: -100 })).toThrow(RangeError); - }); - }); - - describe("getExtendedPublicKey", () => { - it("should expose xpub from toolbox", async () => { - const wallets = await createKeystoreWallet({ chains: [Chain.Bitcoin], phrase: TEST_PHRASE }); - const btcWallet = wallets[Chain.Bitcoin] as unknown as WalletWithHD; - - const xpub = btcWallet.getExtendedPublicKey(); - - expect(xpub).toBeDefined(); - expect(xpub).toBeString(); - }); - }); - - describe("deriveAddressAtIndex", () => { - it("should expose primitive from toolbox", async () => { - const wallets = await createKeystoreWallet({ chains: [Chain.Bitcoin], phrase: TEST_PHRASE }); - const btcWallet = wallets[Chain.Bitcoin] as unknown as WalletWithHD; - - const derived = btcWallet.deriveAddressAtIndex({ index: 0 }); - - expect(derived).toBeDefined(); - expect(derived?.address).toBe(btcWallet.address); - }); - }); - - describe("multiple UTXO chains", () => { - it("should add HD methods to all UTXO chains", async () => { - const wallets = await createKeystoreWallet({ - chains: [Chain.Bitcoin, Chain.Litecoin, Chain.Dogecoin], - phrase: TEST_PHRASE, - }); - - const btcWallet = wallets[Chain.Bitcoin] as unknown as WalletWithHD; - const ltcWallet = wallets[Chain.Litecoin] as unknown as WalletWithHD; - const dogeWallet = wallets[Chain.Dogecoin] as unknown as WalletWithHD; - - expect(btcWallet.deriveAddresses).toBeDefined(); - expect(btcWallet.getExtendedPublicKey).toBeDefined(); - - expect(ltcWallet.deriveAddresses).toBeDefined(); - expect(ltcWallet.getExtendedPublicKey).toBeDefined(); - - expect(dogeWallet.deriveAddresses).toBeDefined(); - expect(dogeWallet.getExtendedPublicKey).toBeDefined(); - }); - - it("should derive correct address formats per chain", async () => { - const wallets = await createKeystoreWallet({ - chains: [Chain.Bitcoin, Chain.Litecoin, Chain.Dogecoin], - phrase: TEST_PHRASE, - }); - - const btcWallet = wallets[Chain.Bitcoin] as unknown as WalletWithHD; - const ltcWallet = wallets[Chain.Litecoin] as unknown as WalletWithHD; - const dogeWallet = wallets[Chain.Dogecoin] as unknown as WalletWithHD; - - const btcAddr = btcWallet.deriveAddresses({ count: 1 })[0]; - const ltcAddr = ltcWallet.deriveAddresses({ count: 1 })[0]; - const dogeAddr = dogeWallet.deriveAddresses({ count: 1 })[0]; - - expect(btcAddr?.address.startsWith("bc1")).toBe(true); - expect(ltcAddr?.address.startsWith("ltc1")).toBe(true); - expect(dogeAddr?.address.startsWith("D")).toBe(true); - }); - }); - - describe("non-UTXO chains", () => { - it("should NOT add HD methods to EVM chains", async () => { - const wallets = await createKeystoreWallet({ chains: [Chain.Ethereum], phrase: TEST_PHRASE }); - - const ethWallet = wallets[Chain.Ethereum] as unknown as WalletWithHD; - expect(ethWallet.deriveAddresses).toBeUndefined(); - }); - }); -}); diff --git a/packages/wallet-keystore/src/helpers.ts b/packages/wallet-keystore/src/helpers.ts deleted file mode 100644 index f8e3486..0000000 --- a/packages/wallet-keystore/src/helpers.ts +++ /dev/null @@ -1,93 +0,0 @@ -import { createCipheriv, createDecipheriv, pbkdf2Sync, randomBytes } from "node:crypto"; -import { generateMnemonic, validateMnemonic } from "@scure/bip39"; -import { wordlist } from "@scure/bip39/wordlists/english.js"; - -export type Keystore = { - version: number; - meta: string; - crypto: { - cipher: string; - cipherparams: { iv: string }; - ciphertext: string; - kdf: string; - kdfparams: { prf: string; dklen: number; salt: string; c: number }; - mac: string; - }; -}; - -async function blake256(initData: Buffer | string) { - const { blake2b } = await import("@noble/hashes/blake2.js"); - const data = initData instanceof Buffer ? initData : Buffer.from(initData as string, "hex"); - - const hash = blake2b(data, { dkLen: 32 }); - - return Array.from(hash as Uint8Array) - .map((byte) => (byte < 0x10 ? `0${byte.toString(16)}` : byte.toString(16))) - .join(""); -} - -export async function encryptToKeyStore(phrase: string, password: string) { - const cipher = "aes-128-ctr"; - const iv = randomBytes(16); - const salt = randomBytes(32); - const kdfParams = { c: 262144, dklen: 32, prf: "hmac-sha256", salt: salt.toString("hex") }; - - const derivedKey = pbkdf2Sync(password, salt, kdfParams.c, kdfParams.dklen, "sha256"); - const cipherIV = createCipheriv(cipher, derivedKey.subarray(0, 16), iv); - const ciphertext = Buffer.concat([cipherIV.update(Buffer.from(phrase, "utf8")), cipherIV.final()]); - const initData = Buffer.concat([derivedKey.subarray(16, 32), Buffer.from(ciphertext)]); - const mac = await blake256(initData); - - return { - crypto: { - cipher, - cipherparams: { iv: iv.toString("hex") }, - ciphertext: ciphertext.toString("hex"), - kdf: "pbkdf2", - kdfparams: kdfParams, - mac, - }, - meta: "xchain-keystore", - version: 1, - }; -} - -export function generatePhrase(size: 12 | 24 = 12) { - return generateMnemonic(wordlist, size === 12 ? 128 : 256); -} - -export function validatePhrase(phrase: string) { - return validateMnemonic(phrase, wordlist); -} - -export async function decryptFromKeystore(keystore: Keystore, password: string) { - const { SwapKitError } = await import("@swapkit-dev/helpers"); - - switch (keystore.version) { - case 1: { - const kdfParams = keystore.crypto.kdfparams; - const salt = Buffer.from(kdfParams.salt, "hex"); - const derivedKey = pbkdf2Sync(password, salt, kdfParams.c, kdfParams.dklen, "sha256"); - - const ciphertext = Buffer.from(keystore.crypto.ciphertext, "hex"); - const initData = Buffer.concat([derivedKey.subarray(16, 32), ciphertext]); - const mac = await blake256(initData); - - if (mac !== keystore.crypto.mac) { - throw new SwapKitError("wallet_keystore_invalid_password"); - } - - const decipher = createDecipheriv( - keystore.crypto.cipher, - derivedKey.subarray(0, 16), - Buffer.from(keystore.crypto.cipherparams.iv, "hex"), - ); - - const phrase = Buffer.concat([decipher.update(ciphertext), decipher.final()]); - return phrase.toString("utf8"); - } - - default: - throw new SwapKitError("wallet_keystore_unsupported_version"); - } -} diff --git a/packages/wallet-keystore/src/index.ts b/packages/wallet-keystore/src/index.ts deleted file mode 100644 index c744e72..0000000 --- a/packages/wallet-keystore/src/index.ts +++ /dev/null @@ -1,178 +0,0 @@ -import { - type AssetValue, - Chain, - CosmosChains, - type DerivationPathArray, - EVMChains, - filterSupportedChains, - NetworkDerivationPath, - type UTXOChain, - UTXOChains, - updateDerivationPath, - WalletOption, -} from "@swapkit-dev/helpers"; -import type { DerivedAddress, FullWallet } from "@swapkit-dev/toolboxes"; -import { createWallet, getWalletSupportedChains } from "@swapkit/wallet-core"; - -export { - decryptFromKeystore, - encryptToKeyStore, - generatePhrase, - type Keystore, - validatePhrase, -} from "./helpers"; - -type UTXOToolboxWithHD = { - deriveAddressAtIndex: (params: { index: number; change?: boolean }) => DerivedAddress | undefined; - getExtendedPublicKey: () => string | undefined; - getBalance: (address: string) => Promise; - resolveDerivationIndex?: (params: { - address: string; - gapLimit?: number; - }) => { index: number; change: boolean } | undefined; - transferFromMultipleAddresses?: (params: { - utxos: Array<{ - hash: string; - index: number; - value: number; - txHex?: string; - derivationIndex: number; - isChange: boolean; - address: string; - }>; - recipient: string; - assetValue: AssetValue; - memo?: string; - feeRate?: number; - }) => Promise; -}; - -function isUTXOToolboxWithHD(toolbox: unknown): toolbox is UTXOToolboxWithHD { - return ( - typeof toolbox === "object" && - toolbox !== null && - "deriveAddressAtIndex" in toolbox && - typeof (toolbox as UTXOToolboxWithHD).deriveAddressAtIndex === "function" && - "getExtendedPublicKey" in toolbox && - typeof (toolbox as UTXOToolboxWithHD).getExtendedPublicKey === "function" && - "getBalance" in toolbox && - typeof (toolbox as UTXOToolboxWithHD).getBalance === "function" - ); -} - -async function createHDWalletMethods(chain: UTXOChain, toolbox: UTXOToolboxWithHD) { - const { createHDWalletHelpers, getUtxoApi } = await import("@swapkit-dev/toolboxes/utxo"); - - function deriveAddresses(params: { count: number; startIndex?: number; change?: boolean }) { - const { count, startIndex = 0, change = false } = params; - if (count < 1 || count > 1000) throw new RangeError(`count must be between 1 and 1000, got ${count}`); - if (startIndex < 0) throw new RangeError(`startIndex must be non-negative, got ${startIndex}`); - - const addresses: DerivedAddress[] = []; - for (let i = 0; i < count; i++) { - const derived = toolbox.deriveAddressAtIndex({ change, index: startIndex + i }); - if (derived) addresses.push(derived); - } - return addresses; - } - - const { scanForAddresses, getAggregatedBalance, getAggregatedUtxos } = createHDWalletHelpers({ - chain, - deriveAddress: (params) => toolbox.deriveAddressAtIndex(params), - getBalance: toolbox.getBalance, - getUtxos: (address: string) => getUtxoApi(chain).getUtxos({ address, fetchTxHex: true }), - }); - - return { deriveAddresses, getAggregatedBalance, getAggregatedUtxos, scanForAddresses }; -} - -export const keystoreWallet = createWallet({ - connect: ({ addChain }) => - async function connectKeystore( - chains: Chain[], - phrase: string, - derivationPathMapOrIndex?: { [chain in Chain]?: DerivationPathArray } | number, - ) { - const wallets = await createKeystoreWallet({ chains, derivationPathMapOrIndex, phrase }); - - for (const wallet of Object.values(wallets)) { - addChain({ ...wallet, chain: wallet.chain, walletType: WalletOption.KEYSTORE }); - } - - return true; - }, - name: "connectKeystore", - supportedChains: [ - ...EVMChains, - ...UTXOChains, - ...CosmosChains.filter((chain) => chain !== Chain.Harbor), - Chain.Aptos, - Chain.Cardano, - Chain.Ripple, - Chain.Solana, - Chain.Stellar, - Chain.Sui, - Chain.Ton, - Chain.Tron, - Chain.Near, - ], - walletType: WalletOption.KEYSTORE, -}); - -export const KEYSTORE_SUPPORTED_CHAINS = getWalletSupportedChains(keystoreWallet); - -export async function createKeystoreWallet({ - chains, - phrase, - derivationPathMapOrIndex, -}: { - chains: T; - phrase: string; - derivationPathMapOrIndex?: { [chain in Chain]?: DerivationPathArray } | number; -}) { - const filteredChains = filterSupportedChains({ - chains, - supportedChains: KEYSTORE_SUPPORTED_CHAINS, - walletType: WalletOption.KEYSTORE, - }); - - const wallets = await Promise.all( - filteredChains.map(async (chain) => { - const { getToolbox } = await import("@swapkit-dev/toolboxes"); - - const derivationPathIndex = typeof derivationPathMapOrIndex === "number" ? derivationPathMapOrIndex : 0; - const derivationPathFromMap = - derivationPathMapOrIndex && typeof derivationPathMapOrIndex === "object" - ? derivationPathMapOrIndex[chain] - : undefined; - - const derivationArrayToUpdate = NetworkDerivationPath[chain].slice( - 0, - chain === Chain.Solana ? 4 : 5, - ) as DerivationPathArray; - - const derivationPath: DerivationPathArray = - derivationPathFromMap || updateDerivationPath(derivationArrayToUpdate, { index: derivationPathIndex }); - - const toolbox = await getToolbox(chain, { derivationPath, phrase }); - const address = (await toolbox.getAddress()) || ""; - - const hdWalletMethods = - UTXOChains.includes(chain as UTXOChain) && isUTXOToolboxWithHD(toolbox) - ? await createHDWalletMethods(chain as UTXOChain, toolbox) - : {}; - - const wallet = { ...toolbox, ...hdWalletMethods, address, chain }; - - return wallet; - }), - ); - - return wallets.reduce( - (acc, wallet) => { - acc[wallet.chain as T[number]] = wallet as FullWallet[T[number]]; - return acc; - }, - {} as { [key in T[number]]: FullWallet[key] }, - ); -} diff --git a/packages/wallet-keystore/tsconfig.json b/packages/wallet-keystore/tsconfig.json deleted file mode 100644 index a43271e..0000000 --- a/packages/wallet-keystore/tsconfig.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "compilerOptions": { "tsBuildInfoFile": "./tsconfig.tsbuildinfo" }, - "extends": "../../tools/typescript/base.json", - "include": ["src", "./build.ts"] -} diff --git a/packages/wallet-mobile/package.json b/packages/wallet-mobile/package.json index b81c822..9c6d0a7 100644 --- a/packages/wallet-mobile/package.json +++ b/packages/wallet-mobile/package.json @@ -1,9 +1,6 @@ { "author": "swapkit-dev", - "dependencies": { - "@swapkit-dev/helpers": "^4.12.0", - "@swapkit-dev/toolboxes": "^4.11.2" - }, + "dependencies": { "@swapkit-dev/helpers": "workspace:*", "@swapkit-dev/toolboxes": "workspace:*" }, "description": "SwapKit - Wallet Mobile", "exports": { ".": { @@ -13,19 +10,15 @@ "types": "./dist/types/index.d.ts" } }, - "files": [ - "dist/" - ], - "homepage": "https://github.com/swapkit/wallets", + "files": ["dist/", "src/"], + "homepage": "https://github.com/swapkit/SwapKit", "license": "SEE LICENSE IN LICENSE", - "name": "@swapkit/wallet-mobile", - "publishConfig": { - "access": "public" - }, + "name": "@swapkit-dev/wallet-mobile", + "publishConfig": { "access": "restricted" }, "repository": { + "directory": "packages/wallet-mobile", "type": "git", - "url": "git+https://github.com/swapkit/wallets.git", - "directory": "packages/wallet-mobile" + "url": "git+https://github.com/swapkit/SwapKit.git" }, "scripts": { "build": "bun run ./build.ts", @@ -35,5 +28,5 @@ "type-check:go": "tsgo" }, "type": "module", - "version": "4.1.25" + "version": "4.1.27" } diff --git a/packages/wallets/package.json b/packages/wallets/package.json index 022f4af..8a64b44 100644 --- a/packages/wallets/package.json +++ b/packages/wallets/package.json @@ -12,13 +12,12 @@ "@radixdlt/babylon-gateway-api-sdk": "~1.10.0", "@radixdlt/radix-dapp-toolkit": "~2.2.0", "@scure/base": "~2.0.0", - "@swapkit-dev/helpers": "^4.12.0", - "@swapkit-dev/toolboxes": "^4.11.2", - "@swapkit-dev/utxo-signer": "^2.1.0", - "@swapkit/wallet-core": "workspace:*", - "@swapkit/wallet-extensions": "workspace:*", - "@swapkit/wallet-hardware": "workspace:*", - "@swapkit/wallet-keystore": "workspace:*", + "@swapkit-dev/helpers": "workspace:*", + "@swapkit-dev/toolboxes": "workspace:*", + "@swapkit-dev/utxo-signer": "workspace:*", + "@swapkit-dev/wallet-core": "workspace:*", + "@swapkit-dev/wallet-extensions": "workspace:*", + "@swapkit-dev/wallet-hardware": "workspace:*", "@walletconnect/modal": "~2.7.0", "@walletconnect/sign-client": "~2.23.0", "cosmjs-types": "~0.10.1", @@ -113,12 +112,6 @@ "require": "./dist/src/keplr.cjs", "types": "./dist/types/keplr.d.ts" }, - "./keystore": { - "bun": "./src/keystore.ts", - "default": "./dist/src/keystore.js", - "require": "./dist/src/keystore.cjs", - "types": "./dist/types/keystore.d.ts" - }, "./ledger": { "bun": "./src/ledger.ts", "default": "./dist/src/ledger.js", @@ -204,20 +197,12 @@ "types": "./dist/types/xaman/index.d.ts" } }, - "files": [ - "dist/" - ], - "homepage": "https://github.com/swapkit/wallets", + "files": ["dist/", "src/"], + "homepage": "https://github.com/swapkit/SwapKit", "license": "SEE LICENSE IN LICENSE", - "name": "@swapkit/wallets", - "publishConfig": { - "access": "public" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/swapkit/wallets.git", - "directory": "packages/wallets" - }, + "name": "@swapkit-dev/wallets", + "publishConfig": { "access": "restricted" }, + "repository": { "type": "git", "url": "git+https://github.com/swapkit/SwapKit.git" }, "scripts": { "build": "bun run ./build.ts", "build:clean": "rm -rf dist && bun run ./build.ts", @@ -226,5 +211,5 @@ "type-check:go": "tsgo" }, "type": "module", - "version": "4.5.15" + "version": "4.6.1" } diff --git a/packages/wallets/src/bitget.ts b/packages/wallets/src/bitget.ts index 86b9640..06851cb 100644 --- a/packages/wallets/src/bitget.ts +++ b/packages/wallets/src/bitget.ts @@ -1 +1 @@ -export * from "@swapkit/wallet-extensions/bitget"; +export * from "@swapkit-dev/wallet-extensions/bitget"; diff --git a/packages/wallets/src/coinbase/index.ts b/packages/wallets/src/coinbase/index.ts index 8d3d246..7ff7a9d 100644 --- a/packages/wallets/src/coinbase/index.ts +++ b/packages/wallets/src/coinbase/index.ts @@ -1,5 +1,5 @@ import { Chain, ChainToChainId, filterSupportedChains, SKConfig, WalletOption } from "@swapkit-dev/helpers"; -import { createWallet, getWalletSupportedChains } from "@swapkit/wallet-core"; +import { createWallet, getWalletSupportedChains } from "@swapkit-dev/wallet-core"; import { getWalletMethods } from "./signer"; diff --git a/packages/wallets/src/cosmostation.ts b/packages/wallets/src/cosmostation.ts index 6ed837e..cb6bd75 100644 --- a/packages/wallets/src/cosmostation.ts +++ b/packages/wallets/src/cosmostation.ts @@ -1 +1 @@ -export * from "@swapkit/wallet-extensions/cosmostation"; +export * from "@swapkit-dev/wallet-extensions/cosmostation"; diff --git a/packages/wallets/src/ctrl.ts b/packages/wallets/src/ctrl.ts index 50061a2..b60483a 100644 --- a/packages/wallets/src/ctrl.ts +++ b/packages/wallets/src/ctrl.ts @@ -1 +1 @@ -export * from "@swapkit/wallet-extensions/ctrl"; +export * from "@swapkit-dev/wallet-extensions/ctrl"; diff --git a/packages/wallets/src/evm-extensions.ts b/packages/wallets/src/evm-extensions.ts index 10dcf24..d0f039a 100644 --- a/packages/wallets/src/evm-extensions.ts +++ b/packages/wallets/src/evm-extensions.ts @@ -1 +1 @@ -export * from "@swapkit/wallet-extensions/evm-extensions"; +export * from "@swapkit-dev/wallet-extensions/evm-extensions"; diff --git a/packages/wallets/src/index.ts b/packages/wallets/src/index.ts index 0e01732..7ab9179 100644 --- a/packages/wallets/src/index.ts +++ b/packages/wallets/src/index.ts @@ -1,3 +1,3 @@ -export * from "@swapkit/wallet-core"; +export * from "@swapkit-dev/wallet-core"; export * from "./types"; export * from "./utils"; diff --git a/packages/wallets/src/keepkey-bex.ts b/packages/wallets/src/keepkey-bex.ts index c351f37..1e3b72b 100644 --- a/packages/wallets/src/keepkey-bex.ts +++ b/packages/wallets/src/keepkey-bex.ts @@ -1 +1 @@ -export * from "@swapkit/wallet-extensions/keepkey-bex"; +export * from "@swapkit-dev/wallet-extensions/keepkey-bex"; diff --git a/packages/wallets/src/keepkey.ts b/packages/wallets/src/keepkey.ts index 6bce498..9d77de5 100644 --- a/packages/wallets/src/keepkey.ts +++ b/packages/wallets/src/keepkey.ts @@ -1 +1 @@ -export * from "@swapkit/wallet-hardware/keepkey"; +export * from "@swapkit-dev/wallet-hardware/keepkey"; diff --git a/packages/wallets/src/keplr.ts b/packages/wallets/src/keplr.ts index 652728e..9f36a42 100644 --- a/packages/wallets/src/keplr.ts +++ b/packages/wallets/src/keplr.ts @@ -1 +1 @@ -export * from "@swapkit/wallet-extensions/keplr"; +export * from "@swapkit-dev/wallet-extensions/keplr"; diff --git a/packages/wallets/src/keystore.ts b/packages/wallets/src/keystore.ts deleted file mode 100644 index 776cb73..0000000 --- a/packages/wallets/src/keystore.ts +++ /dev/null @@ -1 +0,0 @@ -export * from "@swapkit/wallet-keystore"; diff --git a/packages/wallets/src/ledger.ts b/packages/wallets/src/ledger.ts index 1f92f5b..87d5bb9 100644 --- a/packages/wallets/src/ledger.ts +++ b/packages/wallets/src/ledger.ts @@ -1 +1 @@ -export * from "@swapkit/wallet-hardware/ledger"; +export * from "@swapkit-dev/wallet-hardware/ledger"; diff --git a/packages/wallets/src/near-wallet-selector/index.ts b/packages/wallets/src/near-wallet-selector/index.ts index 7066001..e746e77 100644 --- a/packages/wallets/src/near-wallet-selector/index.ts +++ b/packages/wallets/src/near-wallet-selector/index.ts @@ -3,7 +3,7 @@ import "@near-wallet-selector/modal-ui-js/styles.css"; import type { Transaction } from "@near-js/transactions"; import { Chain, filterSupportedChains, SKConfig, SwapKitError, WalletOption } from "@swapkit-dev/helpers"; import { getNearToolbox } from "@swapkit-dev/toolboxes/near"; -import { createWallet, getWalletSupportedChains } from "@swapkit/wallet-core"; +import { createWallet, getWalletSupportedChains } from "@swapkit-dev/wallet-core"; function createNearSigner(wallet: Wallet) { return { diff --git a/packages/wallets/src/okx.ts b/packages/wallets/src/okx.ts index 680920b..15063df 100644 --- a/packages/wallets/src/okx.ts +++ b/packages/wallets/src/okx.ts @@ -1 +1 @@ -export * from "@swapkit/wallet-extensions/okx"; +export * from "@swapkit-dev/wallet-extensions/okx"; diff --git a/packages/wallets/src/onekey.ts b/packages/wallets/src/onekey.ts index 2618c3e..c7804b6 100644 --- a/packages/wallets/src/onekey.ts +++ b/packages/wallets/src/onekey.ts @@ -1 +1 @@ -export * from "@swapkit/wallet-extensions/onekey"; +export * from "@swapkit-dev/wallet-extensions/onekey"; diff --git a/packages/wallets/src/passkeys/index.ts b/packages/wallets/src/passkeys/index.ts index 69310b2..77d0099 100644 --- a/packages/wallets/src/passkeys/index.ts +++ b/packages/wallets/src/passkeys/index.ts @@ -12,7 +12,7 @@ import { } from "@swapkit-dev/helpers"; import type { SolanaProvider } from "@swapkit-dev/toolboxes/solana"; import { Transaction } from "@swapkit-dev/utxo-signer"; -import { createWallet, getWalletSupportedChains } from "@swapkit/wallet-core"; +import { createWallet, getWalletSupportedChains } from "@swapkit-dev/wallet-core"; import { AddressPurpose, BitcoinNetworkType, diff --git a/packages/wallets/src/phantom.ts b/packages/wallets/src/phantom.ts index c30193a..9fbcbfa 100644 --- a/packages/wallets/src/phantom.ts +++ b/packages/wallets/src/phantom.ts @@ -1 +1 @@ -export * from "@swapkit/wallet-extensions/phantom"; +export * from "@swapkit-dev/wallet-extensions/phantom"; diff --git a/packages/wallets/src/polkadotjs.ts b/packages/wallets/src/polkadotjs.ts index 0032a2b..0b2aafc 100644 --- a/packages/wallets/src/polkadotjs.ts +++ b/packages/wallets/src/polkadotjs.ts @@ -1 +1 @@ -export * from "@swapkit/wallet-extensions/polkadotjs"; +export * from "@swapkit-dev/wallet-extensions/polkadotjs"; diff --git a/packages/wallets/src/radix/index.ts b/packages/wallets/src/radix/index.ts index f00af94..aa10c14 100644 --- a/packages/wallets/src/radix/index.ts +++ b/packages/wallets/src/radix/index.ts @@ -6,7 +6,7 @@ import { SwapKitError, WalletOption, } from "@swapkit-dev/helpers"; -import { createWallet, getWalletSupportedChains } from "@swapkit/wallet-core"; +import { createWallet, getWalletSupportedChains } from "@swapkit-dev/wallet-core"; export const radixWallet = createWallet({ connect: ({ addChain, supportedChains, walletType }) => diff --git a/packages/wallets/src/talisman.ts b/packages/wallets/src/talisman.ts index 6e8e171..bf6d582 100644 --- a/packages/wallets/src/talisman.ts +++ b/packages/wallets/src/talisman.ts @@ -1 +1 @@ -export * from "@swapkit/wallet-extensions/talisman"; +export * from "@swapkit-dev/wallet-extensions/talisman"; diff --git a/packages/wallets/src/trezor.ts b/packages/wallets/src/trezor.ts index 4749aee..7d794ab 100644 --- a/packages/wallets/src/trezor.ts +++ b/packages/wallets/src/trezor.ts @@ -1 +1 @@ -export * from "@swapkit/wallet-hardware/trezor"; +export * from "@swapkit-dev/wallet-hardware/trezor"; diff --git a/packages/wallets/src/tronlink.ts b/packages/wallets/src/tronlink.ts index 81eaf60..6561aed 100644 --- a/packages/wallets/src/tronlink.ts +++ b/packages/wallets/src/tronlink.ts @@ -1 +1 @@ -export * from "@swapkit/wallet-extensions/tronlink"; +export * from "@swapkit-dev/wallet-extensions/tronlink"; diff --git a/packages/wallets/src/types.ts b/packages/wallets/src/types.ts index 0c0b9ea..df1895b 100644 --- a/packages/wallets/src/types.ts +++ b/packages/wallets/src/types.ts @@ -1,24 +1,23 @@ import { WalletOption } from "@swapkit-dev/helpers"; -import type { bitgetWallet } from "@swapkit/wallet-extensions/bitget"; -import type { cosmostationWallet } from "@swapkit/wallet-extensions/cosmostation"; -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 { okxWallet } from "@swapkit/wallet-extensions/okx"; -import type { onekeyWallet } from "@swapkit/wallet-extensions/onekey"; -import type { petraWallet } from "@swapkit/wallet-extensions/petra"; -import type { phantomWallet } from "@swapkit/wallet-extensions/phantom"; -import type { polkadotWallet } from "@swapkit/wallet-extensions/polkadotjs"; -import type { talismanWallet } from "@swapkit/wallet-extensions/talisman"; -import type { tronlinkWallet } from "@swapkit/wallet-extensions/tronlink"; -import type { trustwalletWallet } from "@swapkit/wallet-extensions/trustwallet"; -import type { vultisigWallet } from "@swapkit/wallet-extensions/vultisig"; -import type { keepkeyWallet } from "@swapkit/wallet-hardware/keepkey"; -import type { ledgerWallet } from "@swapkit/wallet-hardware/ledger"; -import type { trezorWallet } from "@swapkit/wallet-hardware/trezor"; +import type { bitgetWallet } from "@swapkit-dev/wallet-extensions/bitget"; +import type { cosmostationWallet } from "@swapkit-dev/wallet-extensions/cosmostation"; +import type { ctrlWallet } from "@swapkit-dev/wallet-extensions/ctrl"; +import type { evmWallet } from "@swapkit-dev/wallet-extensions/evm-extensions"; +import type { keepkeyBexWallet } from "@swapkit-dev/wallet-extensions/keepkey-bex"; +import type { keplrWallet } from "@swapkit-dev/wallet-extensions/keplr"; +import type { okxWallet } from "@swapkit-dev/wallet-extensions/okx"; +import type { onekeyWallet } from "@swapkit-dev/wallet-extensions/onekey"; +import type { petraWallet } from "@swapkit-dev/wallet-extensions/petra"; +import type { phantomWallet } from "@swapkit-dev/wallet-extensions/phantom"; +import type { polkadotWallet } from "@swapkit-dev/wallet-extensions/polkadotjs"; +import type { talismanWallet } from "@swapkit-dev/wallet-extensions/talisman"; +import type { tronlinkWallet } from "@swapkit-dev/wallet-extensions/tronlink"; +import type { trustwalletWallet } from "@swapkit-dev/wallet-extensions/trustwallet"; +import type { vultisigWallet } from "@swapkit-dev/wallet-extensions/vultisig"; +import type { keepkeyWallet } from "@swapkit-dev/wallet-hardware/keepkey"; +import type { ledgerWallet } from "@swapkit-dev/wallet-hardware/ledger"; +import type { trezorWallet } from "@swapkit-dev/wallet-hardware/trezor"; import type { coinbaseWallet } from "./coinbase"; -import type { keystoreWallet } from "./keystore"; import type { walletSelectorWallet } from "./near-wallet-selector"; import type { passkeysWallet } from "./passkeys"; import type { radixWallet } from "./radix"; @@ -37,7 +36,6 @@ export type SKWallets = { [WalletOption.KEEPKEY]: typeof keepkeyWallet; [WalletOption.KEEPKEY_BEX]: typeof keepkeyBexWallet; [WalletOption.KEPLR]: typeof keplrWallet; - [WalletOption.KEYSTORE]: typeof keystoreWallet; [WalletOption.LEAP]: typeof keplrWallet; [WalletOption.LEDGER]: typeof ledgerWallet; [WalletOption.METAMASK]: typeof evmWallet; @@ -73,7 +71,6 @@ export type SKWalletsSupportedChains = { [WalletOption.KEEPKEY]: typeof keepkeyWallet.connectKeepkey.supportedChains; [WalletOption.KEEPKEY_BEX]: typeof keepkeyBexWallet.connectKeepkeyBex.supportedChains; [WalletOption.KEPLR]: typeof keplrWallet.connectKeplr.supportedChains; - [WalletOption.KEYSTORE]: typeof keystoreWallet.connectKeystore.supportedChains; [WalletOption.LEAP]: typeof keplrWallet.connectKeplr.supportedChains; [WalletOption.LEDGER]: typeof ledgerWallet.connectLedger.supportedChains; [WalletOption.METAMASK]: typeof evmWallet.connectEVMWallet.supportedChains; diff --git a/packages/wallets/src/utils.ts b/packages/wallets/src/utils.ts index 76a94e6..f16795f 100644 --- a/packages/wallets/src/utils.ts +++ b/packages/wallets/src/utils.ts @@ -6,26 +6,26 @@ export async function loadWallet(walletOption: W): Promi 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) - .with(WalletOption.VULTISIG, async () => (await import("@swapkit/wallet-extensions/vultisig")).vultisigWallet) - .with(WalletOption.OKX, async () => (await import("@swapkit/wallet-extensions/okx")).okxWallet) - .with(WalletOption.ONEKEY, async () => (await import("@swapkit/wallet-extensions/onekey")).onekeyWallet) + .with(WalletOption.BITGET, async () => (await import("@swapkit-dev/wallet-extensions/bitget")).bitgetWallet) + .with(WalletOption.CTRL, async () => (await import("@swapkit-dev/wallet-extensions/ctrl")).ctrlWallet) + .with(WalletOption.VULTISIG, async () => (await import("@swapkit-dev/wallet-extensions/vultisig")).vultisigWallet) + .with(WalletOption.OKX, async () => (await import("@swapkit-dev/wallet-extensions/okx")).okxWallet) + .with(WalletOption.ONEKEY, async () => (await import("@swapkit-dev/wallet-extensions/onekey")).onekeyWallet) .with(WalletOption.EXODUS, async () => (await import("./passkeys")).passkeysWallet) - .with(WalletOption.KEEPKEY, async () => (await import("@swapkit/wallet-hardware/keepkey")).keepkeyWallet) + .with(WalletOption.KEEPKEY, async () => (await import("@swapkit-dev/wallet-hardware/keepkey")).keepkeyWallet) .with( WalletOption.KEEPKEY_BEX, - async () => (await import("@swapkit/wallet-extensions/keepkey-bex")).keepkeyBexWallet, + async () => (await import("@swapkit-dev/wallet-extensions/keepkey-bex")).keepkeyBexWallet, ) .with(WalletOption.WALLETCONNECT, async () => (await import("./walletconnect")).walletconnectWallet) .with( WalletOption.KEPLR, WalletOption.LEAP, - async () => (await import("@swapkit/wallet-extensions/keplr")).keplrWallet, + async () => (await import("@swapkit-dev/wallet-extensions/keplr")).keplrWallet, ) .with( WalletOption.COSMOSTATION, - async () => (await import("@swapkit/wallet-extensions/cosmostation")).cosmostationWallet, + async () => (await import("@swapkit-dev/wallet-extensions/cosmostation")).cosmostationWallet, ) .with( WalletOption.BRAVE, @@ -33,26 +33,25 @@ export async function loadWallet(walletOption: W): Promi WalletOption.EIP6963, WalletOption.METAMASK, WalletOption.OKX_MOBILE, - async () => (await import("@swapkit/wallet-extensions/evm-extensions")).evmWallet, + async () => (await import("@swapkit-dev/wallet-extensions/evm-extensions")).evmWallet, ) .with( WalletOption.TRUSTWALLET_WEB, - async () => (await import("@swapkit/wallet-extensions/trustwallet")).trustwalletWallet, + async () => (await import("@swapkit-dev/wallet-extensions/trustwallet")).trustwalletWallet, ) - .with(WalletOption.KEYSTORE, async () => (await import("@swapkit/wallet-keystore")).keystoreWallet) - .with(WalletOption.TREZOR, async () => (await import("@swapkit/wallet-hardware/trezor")).trezorWallet) - .with(WalletOption.LEDGER, async () => (await import("@swapkit/wallet-hardware/ledger")).ledgerWallet) + .with(WalletOption.TREZOR, async () => (await import("@swapkit-dev/wallet-hardware/trezor")).trezorWallet) + .with(WalletOption.LEDGER, async () => (await import("@swapkit-dev/wallet-hardware/ledger")).ledgerWallet) .with(WalletOption.PASSKEYS, async () => (await import("./passkeys")).passkeysWallet) - .with(WalletOption.PETRA, async () => (await import("@swapkit/wallet-extensions/petra")).petraWallet) - .with(WalletOption.PHANTOM, async () => (await import("@swapkit/wallet-extensions/phantom")).phantomWallet) + .with(WalletOption.PETRA, async () => (await import("@swapkit-dev/wallet-extensions/petra")).petraWallet) + .with(WalletOption.PHANTOM, async () => (await import("@swapkit-dev/wallet-extensions/phantom")).phantomWallet) .with( WalletOption.POLKADOT_JS, - async () => (await import("@swapkit/wallet-extensions/polkadotjs")).polkadotWallet, + async () => (await import("@swapkit-dev/wallet-extensions/polkadotjs")).polkadotWallet, ) .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(WalletOption.TALISMAN, async () => (await import("@swapkit-dev/wallet-extensions/talisman")).talismanWallet) + .with(WalletOption.TRONLINK, async () => (await import("@swapkit-dev/wallet-extensions/tronlink")).tronlinkWallet) .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/src/vultisig.ts b/packages/wallets/src/vultisig.ts index ca6eb5f..6d18057 100644 --- a/packages/wallets/src/vultisig.ts +++ b/packages/wallets/src/vultisig.ts @@ -1 +1 @@ -export * from "@swapkit/wallet-extensions/vultisig"; +export * from "@swapkit-dev/wallet-extensions/vultisig"; diff --git a/packages/wallets/src/walletconnect/index.ts b/packages/wallets/src/walletconnect/index.ts index e74a633..2e5b166 100644 --- a/packages/wallets/src/walletconnect/index.ts +++ b/packages/wallets/src/walletconnect/index.ts @@ -12,7 +12,7 @@ import { import type { ThorchainDepositParams } from "@swapkit-dev/toolboxes/cosmos"; import type { NearSigner } from "@swapkit-dev/toolboxes/near"; import type { TronSignedTransaction, TronSigner, TronTransaction } from "@swapkit-dev/toolboxes/tron"; -import { createWallet, getWalletSupportedChains } from "@swapkit/wallet-core"; +import { createWallet, getWalletSupportedChains } from "@swapkit-dev/wallet-core"; import type { WalletConnectModal } from "@walletconnect/modal"; import type { SignClient } from "@walletconnect/sign-client"; import type { SessionTypes, SignClientTypes } from "@walletconnect/types"; diff --git a/packages/wallets/src/xaman/index.ts b/packages/wallets/src/xaman/index.ts index a49beee..895d717 100644 --- a/packages/wallets/src/xaman/index.ts +++ b/packages/wallets/src/xaman/index.ts @@ -1,5 +1,5 @@ import { Chain, filterSupportedChains, SKConfig, SwapKitError, WalletOption } from "@swapkit-dev/helpers"; -import { createWallet, getWalletSupportedChains } from "@swapkit/wallet-core"; +import { createWallet, getWalletSupportedChains } from "@swapkit-dev/wallet-core"; import { Xumm } from "xumm"; import { getWalletForChain } from "./helpers"; import type { XamanConfig } from "./types";