-
+
{{ decodedTx?.toAddress ?? '~' }}
From 6cab721c5d9481f78ef0a02f50bee402eb6f2db5 Mon Sep 17 00:00:00 2001
From: kvhnuke <10602065+kvhnuke@users.noreply.github.com>
Date: Thu, 22 May 2025 11:58:27 -0700
Subject: [PATCH 03/10] fix: ledger package issue
---
packages/hw-wallets/package.json | 4 ++--
yarn.lock | 4 ++--
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/packages/hw-wallets/package.json b/packages/hw-wallets/package.json
index ba52c0f08..f9caa19c5 100644
--- a/packages/hw-wallets/package.json
+++ b/packages/hw-wallets/package.json
@@ -1,6 +1,6 @@
{
"name": "@enkryptcom/hw-wallets",
- "version": "0.0.4",
+ "version": "0.0.5",
"description": "Hardware wallet manager for enkrypt",
"type": "module",
"main": "src/index.ts",
@@ -57,7 +57,7 @@
"@ledgerhq/hw-app-solana": "^7.4.0",
"@ledgerhq/hw-transport": "^6.31.4",
"@ledgerhq/hw-transport-webusb": "^6.29.4",
- "@ledgerhq/live-common": "^34.20.0",
+ "@ledgerhq/live-common": "34.20.0",
"@polkadot/types": "^15.9.3",
"@polkadot/util": "^13.4.4",
"@trezor/connect": "^9.5.4",
diff --git a/yarn.lock b/yarn.lock
index abab32142..5b74e3338 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1681,7 +1681,7 @@ __metadata:
"@ledgerhq/hw-app-solana": "npm:^7.4.0"
"@ledgerhq/hw-transport": "npm:^6.31.4"
"@ledgerhq/hw-transport-webusb": "npm:^6.29.4"
- "@ledgerhq/live-common": "npm:^34.20.0"
+ "@ledgerhq/live-common": "npm:34.20.0"
"@polkadot/types": "npm:^15.9.3"
"@polkadot/util": "npm:^13.4.4"
"@trezor/connect": "npm:^9.5.4"
@@ -5450,7 +5450,7 @@ __metadata:
languageName: node
linkType: hard
-"@ledgerhq/live-common@npm:^34.20.0":
+"@ledgerhq/live-common@npm:34.20.0":
version: 34.20.0
resolution: "@ledgerhq/live-common@npm:34.20.0"
dependencies:
From a375ae9a8a2602c66cfb8dba09e15e24b189e96a Mon Sep 17 00:00:00 2001
From: kvhnuke <10602065+kvhnuke@users.noreply.github.com>
Date: Thu, 22 May 2025 14:30:52 -0700
Subject: [PATCH 04/10] devop: switch trezor based on platform
---
packages/hw-wallets/package.json | 3 +-
.../hw-wallets/src/trezor/bitcoin/index.ts | 21 +++++--------
.../hw-wallets/src/trezor/ethereum/index.ts | 31 +++++++------------
.../hw-wallets/src/trezor/solana/index.ts | 25 ++++++---------
.../hw-wallets/src/trezor/trezorConnect.ts | 30 ++++++++++++++++++
5 files changed, 60 insertions(+), 50 deletions(-)
create mode 100644 packages/hw-wallets/src/trezor/trezorConnect.ts
diff --git a/packages/hw-wallets/package.json b/packages/hw-wallets/package.json
index f9caa19c5..930c6df54 100644
--- a/packages/hw-wallets/package.json
+++ b/packages/hw-wallets/package.json
@@ -1,6 +1,6 @@
{
"name": "@enkryptcom/hw-wallets",
- "version": "0.0.5",
+ "version": "0.0.6",
"description": "Hardware wallet manager for enkrypt",
"type": "module",
"main": "src/index.ts",
@@ -22,6 +22,7 @@
"node": ">=14.15.0"
},
"devDependencies": {
+ "@trezor/connect-web": "^9.5.5",
"@types/node": "^22.15.17",
"@typescript-eslint/eslint-plugin": "^8.32.1",
"@typescript-eslint/parser": "^8.32.1",
diff --git a/packages/hw-wallets/src/trezor/bitcoin/index.ts b/packages/hw-wallets/src/trezor/bitcoin/index.ts
index a8f1d69e3..dd6fd92eb 100644
--- a/packages/hw-wallets/src/trezor/bitcoin/index.ts
+++ b/packages/hw-wallets/src/trezor/bitcoin/index.ts
@@ -1,8 +1,8 @@
-import TrezorConnect from "@trezor/connect-webextension";
import { getHDPath } from "@trezor/connect/lib/utils/pathUtils";
import { HWwalletCapabilities, NetworkNames } from "@enkryptcom/types";
import HDKey from "hdkey";
import { bufferToHex } from "@enkryptcom/utils";
+import type { TrezorConnect } from "@trezor/connect-web";
import {
AddressResponse,
BitcoinSignMessage,
@@ -13,10 +13,11 @@ import {
SignTransactionRequest,
} from "../../types";
import { supportedPaths, TrezorNetworkConfigs } from "./configs";
+import getTrezorConnect from "../trezorConnect";
class TrezorEthereum implements HWWalletProvider {
network: NetworkNames;
-
+ TrezorConnect: TrezorConnect;
HDNodes: Record
;
constructor(network: NetworkNames) {
@@ -25,15 +26,7 @@ class TrezorEthereum implements HWWalletProvider {
}
async init(): Promise {
- TrezorConnect.init({
- manifest: {
- email: "info@enkrypt.com",
- appUrl: "https://www.enkrypt.com",
- },
- transports: ["BridgeTransport", "WebUsbTransport"],
- connectSrc: "https://connect.trezor.io/9/",
- _extendWebextensionLifetime: true,
- });
+ this.TrezorConnect = await getTrezorConnect();
return true;
}
@@ -42,7 +35,7 @@ class TrezorEthereum implements HWWalletProvider {
return Promise.reject(new Error("trezor-bitcoin: Invalid network name"));
if (!this.HDNodes[options.pathType.basePath]) {
- const rootPub = await TrezorConnect.getPublicKey({
+ const rootPub = await this.TrezorConnect.getPublicKey({
path: options.pathType.basePath,
showOnTrezor: options.confirmAddress,
} as any);
@@ -82,7 +75,7 @@ class TrezorEthereum implements HWWalletProvider {
if (options.type === "bip322-simple") {
throw new Error("trezor-bitcoin: bip322 signing not supported");
}
- const result = await TrezorConnect.signMessage({
+ const result = await this.TrezorConnect.signMessage({
path: options.pathType.path.replace(`{index}`, options.pathIndex),
message: options.message.toString("hex"),
hex: true,
@@ -97,7 +90,7 @@ class TrezorEthereum implements HWWalletProvider {
const addressN = getHDPath(
options.pathType.path.replace(`{index}`, options.pathIndex),
);
- return TrezorConnect.signTransaction({
+ return this.TrezorConnect.signTransaction({
coin: TrezorNetworkConfigs[this.network].symbol,
inputs: transactionOptions.psbtTx.txInputs.map((tx) => ({
address_n: addressN,
diff --git a/packages/hw-wallets/src/trezor/ethereum/index.ts b/packages/hw-wallets/src/trezor/ethereum/index.ts
index 4b2152f36..dc4ee79fe 100644
--- a/packages/hw-wallets/src/trezor/ethereum/index.ts
+++ b/packages/hw-wallets/src/trezor/ethereum/index.ts
@@ -1,9 +1,9 @@
-import TrezorConnect from "@trezor/connect-webextension";
import { HWwalletCapabilities, NetworkNames } from "@enkryptcom/types";
import HDKey from "hdkey";
import { bigIntToHex, bufferToHex, hexToBuffer } from "@enkryptcom/utils";
import { publicToAddress, toRpcSig } from "@ethereumjs/util";
import { FeeMarketEIP1559Transaction, LegacyTransaction } from "@ethereumjs/tx";
+import type { TrezorConnect } from "@trezor/connect-web";
import {
AddressResponse,
getAddressRequest,
@@ -13,10 +13,11 @@ import {
SignTransactionRequest,
} from "../../types";
import { supportedPaths } from "./configs";
+import getTrezorConnect from "../trezorConnect";
class TrezorEthereum implements HWWalletProvider {
network: NetworkNames;
-
+ TrezorConnect: TrezorConnect;
HDNodes: Record;
constructor(network: NetworkNames) {
@@ -25,15 +26,7 @@ class TrezorEthereum implements HWWalletProvider {
}
async init(): Promise {
- TrezorConnect.init({
- manifest: {
- email: "info@enkrypt.com",
- appUrl: "https://www.enkrypt.com",
- },
- transports: ["BridgeTransport", "WebUsbTransport"],
- connectSrc: "https://connect.trezor.io/9/",
- _extendWebextensionLifetime: true,
- });
+ this.TrezorConnect = await getTrezorConnect();
return true;
}
@@ -42,14 +35,14 @@ class TrezorEthereum implements HWWalletProvider {
return Promise.reject(new Error("trezor-ethereum: Invalid network name"));
if (!this.HDNodes[options.pathType.basePath]) {
- const rootPub = await TrezorConnect.ethereumGetPublicKey({
+ const rootPub = await this.TrezorConnect.ethereumGetPublicKey({
path: options.pathType.basePath,
showOnTrezor: options.confirmAddress,
});
if (!rootPub.payload) {
throw new Error("popup failed to open");
}
- if (!rootPub.success) throw new Error(rootPub.payload.error as string);
+ if (!rootPub.success) throw new Error((rootPub.payload as any).error);
const hdKey = new HDKey();
hdKey.publicKey = Buffer.from(rootPub.payload.publicKey, "hex");
@@ -78,12 +71,12 @@ class TrezorEthereum implements HWWalletProvider {
}
async signPersonalMessage(options: SignMessageRequest): Promise {
- const result = await TrezorConnect.ethereumSignMessage({
+ const result = await this.TrezorConnect.ethereumSignMessage({
path: options.pathType.path.replace(`{index}`, options.pathIndex),
message: options.message.toString("hex"),
hex: true,
});
- if (!result.success) throw new Error(result.payload.error as string);
+ if (!result.success) throw new Error((result.payload as any).error);
return bufferToHex(hexToBuffer(result.payload.signature));
}
@@ -100,14 +93,14 @@ class TrezorEthereum implements HWWalletProvider {
data: bufferToHex(tx.data),
};
if ((options.transaction as LegacyTransaction).gasPrice) {
- return TrezorConnect.ethereumSignTransaction({
+ return this.TrezorConnect.ethereumSignTransaction({
path: options.pathType.path.replace(`{index}`, options.pathIndex),
transaction: {
...txObject,
gasPrice: bigIntToHex(tx.gasPrice),
},
}).then((result) => {
- if (!result.success) throw new Error(result.payload.error as string);
+ if (!result.success) throw new Error((result.payload as any).error);
const rv = BigInt(parseInt(result.payload.v, 16));
const cv = tx.common.chainId() * 2n + 35n;
return toRpcSig(
@@ -119,7 +112,7 @@ class TrezorEthereum implements HWWalletProvider {
}
tx = options.transaction as FeeMarketEIP1559Transaction;
- return TrezorConnect.ethereumSignTransaction({
+ return this.TrezorConnect.ethereumSignTransaction({
path: options.pathType.path.replace(`{index}`, options.pathIndex),
transaction: {
...txObject,
@@ -127,7 +120,7 @@ class TrezorEthereum implements HWWalletProvider {
maxPriorityFeePerGas: bigIntToHex(tx.maxPriorityFeePerGas),
},
}).then((result) => {
- if (!result.success) throw new Error(result.payload.error as string);
+ if (!result.success) throw new Error((result.payload as any).error);
return toRpcSig(
BigInt(result.payload.v),
hexToBuffer(result.payload.r),
diff --git a/packages/hw-wallets/src/trezor/solana/index.ts b/packages/hw-wallets/src/trezor/solana/index.ts
index bfa048568..9a13e7c0c 100644
--- a/packages/hw-wallets/src/trezor/solana/index.ts
+++ b/packages/hw-wallets/src/trezor/solana/index.ts
@@ -1,4 +1,4 @@
-import TrezorConnect from "@trezor/connect-webextension";
+import type { TrezorConnect } from "@trezor/connect-web";
import { HWwalletCapabilities, NetworkNames } from "@enkryptcom/types";
import HDKey from "hdkey";
import base58 from "bs58";
@@ -12,10 +12,11 @@ import {
SolSignTransaction,
} from "../../types";
import { supportedPaths } from "./configs";
+import getTrezorConnect from "../trezorConnect";
class TrezorSolana implements HWWalletProvider {
network: NetworkNames;
-
+ TrezorConnect: TrezorConnect;
HDNodes: Record;
constructor(network: NetworkNames) {
@@ -24,28 +25,20 @@ class TrezorSolana implements HWWalletProvider {
}
async init(): Promise {
- TrezorConnect.init({
- manifest: {
- email: "info@enkrypt.com",
- appUrl: "https://www.enkrypt.com",
- },
- transports: ["BridgeTransport", "WebUsbTransport"],
- connectSrc: "https://connect.trezor.io/9/",
- _extendWebextensionLifetime: true,
- });
+ this.TrezorConnect = await getTrezorConnect();
return true;
}
async getAddress(options: getAddressRequest): Promise {
if (!supportedPaths[this.network])
return Promise.reject(new Error("trezor-bitcoin: Invalid network name"));
- const res = await TrezorConnect.solanaGetAddress({
+ const res = await this.TrezorConnect.solanaGetAddress({
path: options.pathType.path.replace(`{index}`, options.pathIndex),
showOnTrezor: options.confirmAddress,
});
return {
- address: bufferToHex(base58.decode(res.payload.address)),
- publicKey: bufferToHex(base58.decode(res.payload.address)),
+ address: bufferToHex(base58.decode((res.payload as any).address)),
+ publicKey: bufferToHex(base58.decode((res.payload as any).address)),
};
}
@@ -66,12 +59,12 @@ class TrezorSolana implements HWWalletProvider {
}
async signTransaction(options: SignTransactionRequest): Promise {
- return TrezorConnect.solanaSignTransaction({
+ return this.TrezorConnect.solanaSignTransaction({
path: options.pathType.path.replace(`{index}`, options.pathIndex),
serializedTx: (options.transaction as SolSignTransaction).solTx.toString(
"hex",
),
- }).then((result) => result.payload.signature);
+ }).then((result) => (result.payload as any).signature);
}
static getSupportedNetworks(): NetworkNames[] {
diff --git a/packages/hw-wallets/src/trezor/trezorConnect.ts b/packages/hw-wallets/src/trezor/trezorConnect.ts
new file mode 100644
index 000000000..8c78e0d44
--- /dev/null
+++ b/packages/hw-wallets/src/trezor/trezorConnect.ts
@@ -0,0 +1,30 @@
+import type { TrezorConnect as TrezorConnectType } from "@trezor/connect-web";
+
+const getTrezorConnect = async () => {
+ if (chrome.runtime) {
+ const TrezorConnect = (await import("@trezor/connect-webextension"))
+ .default;
+ await TrezorConnect.init({
+ manifest: {
+ email: "info@enkrypt.com",
+ appUrl: "https://www.enkrypt.com",
+ },
+ transports: ["BridgeTransport", "WebUsbTransport"],
+ connectSrc: "https://connect.trezor.io/9/",
+ _extendWebextensionLifetime: true,
+ });
+ return TrezorConnect as TrezorConnectType;
+ } else {
+ const TrezorConnect = (await import("@trezor/connect-web")).default;
+ await TrezorConnect.init({
+ lazyLoad: true,
+ manifest: {
+ email: "info@enkrypt.com",
+ appUrl: "http://www.myetherwallet.com",
+ },
+ });
+ return TrezorConnect as TrezorConnectType;
+ }
+};
+
+export default getTrezorConnect;
From 274f1572016771440743d7c56a118babc93386aa Mon Sep 17 00:00:00 2001
From: kvhnuke <10602065+kvhnuke@users.noreply.github.com>
Date: Fri, 23 May 2025 11:16:57 -0700
Subject: [PATCH 05/10] devop: update yarn
---
yarn.lock | 297 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 297 insertions(+)
diff --git a/yarn.lock b/yarn.lock
index 5b74e3338..d3ffab46b 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -1685,6 +1685,7 @@ __metadata:
"@polkadot/types": "npm:^15.9.3"
"@polkadot/util": "npm:^13.4.4"
"@trezor/connect": "npm:^9.5.4"
+ "@trezor/connect-web": "npm:^9.5.5"
"@trezor/connect-webextension": "npm:^9.5.4"
"@types/node": "npm:^22.15.17"
"@typescript-eslint/eslint-plugin": "npm:^8.32.1"
@@ -10571,6 +10572,18 @@ __metadata:
languageName: node
linkType: hard
+"@trezor/analytics@npm:1.3.5":
+ version: 1.3.5
+ resolution: "@trezor/analytics@npm:1.3.5"
+ dependencies:
+ "@trezor/env-utils": "npm:1.3.4"
+ "@trezor/utils": "npm:9.3.5"
+ peerDependencies:
+ tslib: ^2.6.2
+ checksum: 10/ba6afa5f94c337b49ea0a3bc71d1546885b8241cab254dce2e38fd0f2bf9c733de45c3445112abbbe5cc5055f438edb1bda96720c83df234bac273c1c21427ce
+ languageName: node
+ linkType: hard
+
"@trezor/blockchain-link-types@npm:1.3.4":
version: 1.3.4
resolution: "@trezor/blockchain-link-types@npm:1.3.4"
@@ -10583,6 +10596,17 @@ __metadata:
languageName: node
linkType: hard
+"@trezor/blockchain-link-types@npm:1.3.5":
+ version: 1.3.5
+ resolution: "@trezor/blockchain-link-types@npm:1.3.5"
+ dependencies:
+ "@trezor/utxo-lib": "npm:2.3.5"
+ peerDependencies:
+ tslib: ^2.6.2
+ checksum: 10/7500ae9ef574a16b1444054ce8db1c4e1fd9e5fd96c3408ed1ad5c06fa369114ef53444d2d1a5f3000660dce9eefb995dbc5e99ccf7a743023d90d960ef88d97
+ languageName: node
+ linkType: hard
+
"@trezor/blockchain-link-utils@npm:1.3.4":
version: 1.3.4
resolution: "@trezor/blockchain-link-utils@npm:1.3.4"
@@ -10597,6 +10621,20 @@ __metadata:
languageName: node
linkType: hard
+"@trezor/blockchain-link-utils@npm:1.3.5":
+ version: 1.3.5
+ resolution: "@trezor/blockchain-link-utils@npm:1.3.5"
+ dependencies:
+ "@mobily/ts-belt": "npm:^3.13.1"
+ "@trezor/env-utils": "npm:1.3.4"
+ "@trezor/utils": "npm:9.3.5"
+ xrpl: "npm:^4.2.5"
+ peerDependencies:
+ tslib: ^2.6.2
+ checksum: 10/9c2cf46408c00f2baceb026d08d5a2a1ead8377fe2168528eb828ddd82f1831f61a79b1150f7029bcdd166c7dd1d745d946136a03c1b7c09d4720003b55a89cd
+ languageName: node
+ linkType: hard
+
"@trezor/blockchain-link@npm:2.4.4":
version: 2.4.4
resolution: "@trezor/blockchain-link@npm:2.4.4"
@@ -10621,6 +10659,30 @@ __metadata:
languageName: node
linkType: hard
+"@trezor/blockchain-link@npm:2.4.5":
+ version: 2.4.5
+ resolution: "@trezor/blockchain-link@npm:2.4.5"
+ dependencies:
+ "@solana-program/stake": "npm:^0.2.0"
+ "@solana-program/token": "npm:^0.5.1"
+ "@solana-program/token-2022": "npm:^0.4.0"
+ "@solana/kit": "npm:^2.0.0"
+ "@trezor/blockchain-link-types": "npm:1.3.5"
+ "@trezor/blockchain-link-utils": "npm:1.3.5"
+ "@trezor/env-utils": "npm:1.3.4"
+ "@trezor/utils": "npm:9.3.5"
+ "@trezor/utxo-lib": "npm:2.3.5"
+ "@trezor/websocket-client": "npm:1.1.5"
+ "@types/web": "npm:^0.0.197"
+ events: "npm:^3.3.0"
+ socks-proxy-agent: "npm:8.0.5"
+ xrpl: "npm:^4.2.5"
+ peerDependencies:
+ tslib: ^2.6.2
+ checksum: 10/25b67d451eeea07b09b48b6a3d3534eb00dad3bc0856d8d4884650d26bb967707226fc2fb22658e73835c5b99831e67c2c0f13062e628e1005a757596c6ba362
+ languageName: node
+ linkType: hard
+
"@trezor/connect-analytics@npm:1.3.2":
version: 1.3.2
resolution: "@trezor/connect-analytics@npm:1.3.2"
@@ -10632,6 +10694,17 @@ __metadata:
languageName: node
linkType: hard
+"@trezor/connect-analytics@npm:1.3.3":
+ version: 1.3.3
+ resolution: "@trezor/connect-analytics@npm:1.3.3"
+ dependencies:
+ "@trezor/analytics": "npm:1.3.5"
+ peerDependencies:
+ tslib: ^2.6.2
+ checksum: 10/502fcca423c25972118ca14753c37403c4e269cf0f8495715754a216f001f2761c30e3a2fb808de2201e3163fa487f2848078ce4cae77b2674da2506a4a3354a
+ languageName: node
+ linkType: hard
+
"@trezor/connect-common@npm:0.3.4":
version: 0.3.4
resolution: "@trezor/connect-common@npm:0.3.4"
@@ -10644,6 +10717,18 @@ __metadata:
languageName: node
linkType: hard
+"@trezor/connect-common@npm:0.3.5":
+ version: 0.3.5
+ resolution: "@trezor/connect-common@npm:0.3.5"
+ dependencies:
+ "@trezor/env-utils": "npm:1.3.4"
+ "@trezor/utils": "npm:9.3.5"
+ peerDependencies:
+ tslib: ^2.6.2
+ checksum: 10/4f4de25f54d18fb0dc924f171ac67495a3cde5c32eeb2026882f0c3d147bb6710b4d79598cb00559179993cb016b3016a4dd2ea93ed51b275559a8c09dc2fd53
+ languageName: node
+ linkType: hard
+
"@trezor/connect-web@npm:9.5.4":
version: 9.5.4
resolution: "@trezor/connect-web@npm:9.5.4"
@@ -10657,6 +10742,19 @@ __metadata:
languageName: node
linkType: hard
+"@trezor/connect-web@npm:^9.5.5":
+ version: 9.5.5
+ resolution: "@trezor/connect-web@npm:9.5.5"
+ dependencies:
+ "@trezor/connect": "npm:9.5.5"
+ "@trezor/connect-common": "npm:0.3.5"
+ "@trezor/utils": "npm:9.3.5"
+ peerDependencies:
+ tslib: ^2.6.2
+ checksum: 10/4bf59d3e9b50879f090d74554d6dbdc380c3e8a2b13869aded694fc79068d98490dda95dbf4064cd93b31c6b818affd529c0b55d69c44693a626de1479a1cb60
+ languageName: node
+ linkType: hard
+
"@trezor/connect-webextension@npm:^9.5.4":
version: 9.5.4
resolution: "@trezor/connect-webextension@npm:9.5.4"
@@ -10710,6 +10808,45 @@ __metadata:
languageName: node
linkType: hard
+"@trezor/connect@npm:9.5.5":
+ version: 9.5.5
+ resolution: "@trezor/connect@npm:9.5.5"
+ dependencies:
+ "@ethereumjs/common": "npm:^4.4.0"
+ "@ethereumjs/tx": "npm:^5.4.0"
+ "@fivebinaries/coin-selection": "npm:3.0.0"
+ "@mobily/ts-belt": "npm:^3.13.1"
+ "@noble/hashes": "npm:^1.6.1"
+ "@scure/bip39": "npm:^1.5.1"
+ "@solana-program/compute-budget": "npm:^0.7.0"
+ "@solana-program/system": "npm:^0.7.0"
+ "@solana-program/token": "npm:^0.5.1"
+ "@solana-program/token-2022": "npm:^0.4.0"
+ "@solana/kit": "npm:^2.0.0"
+ "@trezor/blockchain-link": "npm:2.4.5"
+ "@trezor/blockchain-link-types": "npm:1.3.5"
+ "@trezor/blockchain-link-utils": "npm:1.3.5"
+ "@trezor/connect-analytics": "npm:1.3.3"
+ "@trezor/connect-common": "npm:0.3.5"
+ "@trezor/crypto-utils": "npm:1.1.3"
+ "@trezor/device-utils": "npm:1.0.3"
+ "@trezor/protobuf": "npm:1.3.5"
+ "@trezor/protocol": "npm:1.2.6"
+ "@trezor/schema-utils": "npm:1.3.3"
+ "@trezor/transport": "npm:1.4.5"
+ "@trezor/type-utils": "npm:1.1.6"
+ "@trezor/utils": "npm:9.3.5"
+ "@trezor/utxo-lib": "npm:2.3.5"
+ blakejs: "npm:^1.2.1"
+ bs58: "npm:^6.0.0"
+ bs58check: "npm:^4.0.0"
+ cross-fetch: "npm:^4.0.0"
+ peerDependencies:
+ tslib: ^2.6.2
+ checksum: 10/6039c794b45155fc09d36aa2d97bdb58924d8d909cf1c5f16361ca9c24692aeac1eabd8161af1fa5ec735e711db03128d551bac5be863651c00c5a8c23229741
+ languageName: node
+ linkType: hard
+
"@trezor/crypto-utils@npm:1.1.2":
version: 1.1.2
resolution: "@trezor/crypto-utils@npm:1.1.2"
@@ -10719,6 +10856,15 @@ __metadata:
languageName: node
linkType: hard
+"@trezor/crypto-utils@npm:1.1.3":
+ version: 1.1.3
+ resolution: "@trezor/crypto-utils@npm:1.1.3"
+ peerDependencies:
+ tslib: ^2.6.2
+ checksum: 10/fae3feb8c78983a36e92ac7855effebc9928e8a6b49ece921a8d387e89a37aad3c0c0016c8732a66d376f3f1b97126de23e84e61fbe190e662afa0c77bb1a2e7
+ languageName: node
+ linkType: hard
+
"@trezor/device-utils@npm:1.0.2":
version: 1.0.2
resolution: "@trezor/device-utils@npm:1.0.2"
@@ -10726,6 +10872,13 @@ __metadata:
languageName: node
linkType: hard
+"@trezor/device-utils@npm:1.0.3":
+ version: 1.0.3
+ resolution: "@trezor/device-utils@npm:1.0.3"
+ checksum: 10/c84cfe07ec3fb48f4f243ba251a869f16ece9d43171cca5887969f782b3504cfdadb77eac03cb42c3755b63003986c38b4dd54ef8b3b35cb53365a1ff5f05d28
+ languageName: node
+ linkType: hard
+
"@trezor/env-utils@npm:1.3.2":
version: 1.3.2
resolution: "@trezor/env-utils@npm:1.3.2"
@@ -10768,6 +10921,27 @@ __metadata:
languageName: node
linkType: hard
+"@trezor/env-utils@npm:1.3.4":
+ version: 1.3.4
+ resolution: "@trezor/env-utils@npm:1.3.4"
+ dependencies:
+ ua-parser-js: "npm:^2.0.3"
+ peerDependencies:
+ expo-constants: "*"
+ expo-localization: "*"
+ react-native: "*"
+ tslib: ^2.6.2
+ peerDependenciesMeta:
+ expo-constants:
+ optional: true
+ expo-localization:
+ optional: true
+ react-native:
+ optional: true
+ checksum: 10/7da0e8f00681f91bf5ff694ab43e143486a62a935b7a7b968221099cc0ed6e827e8c02516838e753cd08bcc95823f9af808c772147075e185e07543d69938d1f
+ languageName: node
+ linkType: hard
+
"@trezor/protobuf@npm:1.3.4":
version: 1.3.4
resolution: "@trezor/protobuf@npm:1.3.4"
@@ -10781,6 +10955,19 @@ __metadata:
languageName: node
linkType: hard
+"@trezor/protobuf@npm:1.3.5":
+ version: 1.3.5
+ resolution: "@trezor/protobuf@npm:1.3.5"
+ dependencies:
+ "@trezor/schema-utils": "npm:1.3.3"
+ long: "npm:5.2.5"
+ protobufjs: "npm:7.4.0"
+ peerDependencies:
+ tslib: ^2.6.2
+ checksum: 10/ece8986ece8330588ad2a2277d01e851b19daa378c3529e37af334d790299ba0043ce708143797dd71f2ebb2ac9de6d96422b333e25d65dd3aca1e881959cb44
+ languageName: node
+ linkType: hard
+
"@trezor/protocol@npm:1.2.5":
version: 1.2.5
resolution: "@trezor/protocol@npm:1.2.5"
@@ -10790,6 +10977,15 @@ __metadata:
languageName: node
linkType: hard
+"@trezor/protocol@npm:1.2.6":
+ version: 1.2.6
+ resolution: "@trezor/protocol@npm:1.2.6"
+ peerDependencies:
+ tslib: ^2.6.2
+ checksum: 10/7f11f0d37e5944c3b61a26ac2cb3baf047f6a769a46c649dbc2dd7312351e0dfbaddbf78618522166a667501b0fc400da76fdc1f54579b2e2076415ab11cbe68
+ languageName: node
+ linkType: hard
+
"@trezor/schema-utils@npm:1.3.2":
version: 1.3.2
resolution: "@trezor/schema-utils@npm:1.3.2"
@@ -10802,6 +10998,18 @@ __metadata:
languageName: node
linkType: hard
+"@trezor/schema-utils@npm:1.3.3":
+ version: 1.3.3
+ resolution: "@trezor/schema-utils@npm:1.3.3"
+ dependencies:
+ "@sinclair/typebox": "npm:^0.33.7"
+ ts-mixer: "npm:^6.0.3"
+ peerDependencies:
+ tslib: ^2.6.2
+ checksum: 10/e0b266f888eef84961bbdbd52f4a02f4e0541e98b823e8fa7af63425106ac5eb16bc5cba6c8ec8ef9caf212b2564856a8824df9c1d8beda1548378f4c2f4a4e4
+ languageName: node
+ linkType: hard
+
"@trezor/transport@npm:1.4.4":
version: 1.4.4
resolution: "@trezor/transport@npm:1.4.4"
@@ -10817,6 +11025,21 @@ __metadata:
languageName: node
linkType: hard
+"@trezor/transport@npm:1.4.5":
+ version: 1.4.5
+ resolution: "@trezor/transport@npm:1.4.5"
+ dependencies:
+ "@trezor/protobuf": "npm:1.3.5"
+ "@trezor/protocol": "npm:1.2.6"
+ "@trezor/utils": "npm:9.3.5"
+ cross-fetch: "npm:^4.0.0"
+ usb: "npm:^2.15.0"
+ peerDependencies:
+ tslib: ^2.6.2
+ checksum: 10/6ae39f0d250a603c97a6bab8db66cc7fd4417917296c2097ea13308436ed3b2949d2a21f050e7f7941b48d2006b7f87af29fb5e75d736a8b635175b32c9f77c5
+ languageName: node
+ linkType: hard
+
"@trezor/type-utils@npm:1.1.5":
version: 1.1.5
resolution: "@trezor/type-utils@npm:1.1.5"
@@ -10824,6 +11047,13 @@ __metadata:
languageName: node
linkType: hard
+"@trezor/type-utils@npm:1.1.6":
+ version: 1.1.6
+ resolution: "@trezor/type-utils@npm:1.1.6"
+ checksum: 10/07523a85c6b7aebc507e5d4b719aa585d925467238f661bb516a0e3dc6cc34064679069a2ca0b36d32a1c52b4ef370d475a771b812970d0f2c6972806aca302b
+ languageName: node
+ linkType: hard
+
"@trezor/utils@npm:9.3.3":
version: 9.3.3
resolution: "@trezor/utils@npm:9.3.3"
@@ -10846,6 +11076,17 @@ __metadata:
languageName: node
linkType: hard
+"@trezor/utils@npm:9.3.5":
+ version: 9.3.5
+ resolution: "@trezor/utils@npm:9.3.5"
+ dependencies:
+ bignumber.js: "npm:^9.1.2"
+ peerDependencies:
+ tslib: ^2.6.2
+ checksum: 10/bf4b7b04409c1cd2f9ff02c691db959a78a17b1e2a974112400dec96151290f8b149c77eb9b581544d511478808695dd51d621d0a37cbc708601733eef29c4fc
+ languageName: node
+ linkType: hard
+
"@trezor/utxo-lib@npm:2.3.4":
version: 2.3.4
resolution: "@trezor/utxo-lib@npm:2.3.4"
@@ -10873,6 +11114,33 @@ __metadata:
languageName: node
linkType: hard
+"@trezor/utxo-lib@npm:2.3.5":
+ version: 2.3.5
+ resolution: "@trezor/utxo-lib@npm:2.3.5"
+ dependencies:
+ "@trezor/utils": "npm:9.3.5"
+ bchaddrjs: "npm:^0.5.2"
+ bech32: "npm:^2.0.0"
+ bip66: "npm:^2.0.0"
+ bitcoin-ops: "npm:^1.4.1"
+ blake-hash: "npm:^2.0.0"
+ blakejs: "npm:^1.2.1"
+ bn.js: "npm:^5.2.1"
+ bs58: "npm:^6.0.0"
+ bs58check: "npm:^4.0.0"
+ create-hmac: "npm:^1.1.7"
+ int64-buffer: "npm:^1.1.0"
+ pushdata-bitcoin: "npm:^1.0.1"
+ tiny-secp256k1: "npm:^1.1.6"
+ typeforce: "npm:^1.18.0"
+ varuint-bitcoin: "npm:2.0.0"
+ wif: "npm:^5.0.0"
+ peerDependencies:
+ tslib: ^2.6.2
+ checksum: 10/356dbabc224c777b06e8cdfbfb9aa417ae3ce70b94f92e9e209b273377b74b2b61fddbc6a545fe49c614ad89fd4b647dd42ffa96daaa64c7df05e5df00a114d4
+ languageName: node
+ linkType: hard
+
"@trezor/websocket-client@npm:1.1.4":
version: 1.1.4
resolution: "@trezor/websocket-client@npm:1.1.4"
@@ -10885,6 +11153,18 @@ __metadata:
languageName: node
linkType: hard
+"@trezor/websocket-client@npm:1.1.5":
+ version: 1.1.5
+ resolution: "@trezor/websocket-client@npm:1.1.5"
+ dependencies:
+ "@trezor/utils": "npm:9.3.5"
+ ws: "npm:^8.18.0"
+ peerDependencies:
+ tslib: ^2.6.2
+ checksum: 10/e446e96e0b93b907b8713dd095819c4457c093388ab824735cd8689f657a5f19ff081d6a2761b6f8e374deac5e15bb6074059b023b816e08226be81ee35ae0cf
+ languageName: node
+ linkType: hard
+
"@tronweb3/google-protobuf@npm:^3.21.2":
version: 3.21.2
resolution: "@tronweb3/google-protobuf@npm:3.21.2"
@@ -32972,6 +33252,23 @@ __metadata:
languageName: node
linkType: hard
+"xrpl@npm:^4.2.5":
+ version: 4.2.5
+ resolution: "xrpl@npm:4.2.5"
+ dependencies:
+ "@scure/bip32": "npm:^1.3.1"
+ "@scure/bip39": "npm:^1.2.1"
+ "@xrplf/isomorphic": "npm:^1.0.1"
+ "@xrplf/secret-numbers": "npm:^1.0.0"
+ bignumber.js: "npm:^9.0.0"
+ eventemitter3: "npm:^5.0.1"
+ ripple-address-codec: "npm:^5.0.0"
+ ripple-binary-codec: "npm:^2.3.0"
+ ripple-keypairs: "npm:^2.0.0"
+ checksum: 10/34c4c39ebf96ec1237c2e756b4d8c39f4a8972c1dd3cbac2acb302c24b905ff4089c0a7342107e298a3dbbd2c3e71162fc1ee8064d27ea0fb1b3ca5ce90ad21d
+ languageName: node
+ linkType: hard
+
"xstate@npm:4.38.3":
version: 4.38.3
resolution: "xstate@npm:4.38.3"
From ab81f6cb53a40446d4ffd26abcc11546098e5d7b Mon Sep 17 00:00:00 2001
From: kvhnuke <10602065+kvhnuke@users.noreply.github.com>
Date: Fri, 23 May 2025 15:03:11 -0700
Subject: [PATCH 06/10] devop: switch extension check
---
packages/hw-wallets/package.json | 2 +-
packages/hw-wallets/src/trezor/trezorConnect.ts | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/packages/hw-wallets/package.json b/packages/hw-wallets/package.json
index 930c6df54..5bc903a0a 100644
--- a/packages/hw-wallets/package.json
+++ b/packages/hw-wallets/package.json
@@ -1,6 +1,6 @@
{
"name": "@enkryptcom/hw-wallets",
- "version": "0.0.6",
+ "version": "0.0.7",
"description": "Hardware wallet manager for enkrypt",
"type": "module",
"main": "src/index.ts",
diff --git a/packages/hw-wallets/src/trezor/trezorConnect.ts b/packages/hw-wallets/src/trezor/trezorConnect.ts
index 8c78e0d44..08f238850 100644
--- a/packages/hw-wallets/src/trezor/trezorConnect.ts
+++ b/packages/hw-wallets/src/trezor/trezorConnect.ts
@@ -1,7 +1,7 @@
import type { TrezorConnect as TrezorConnectType } from "@trezor/connect-web";
const getTrezorConnect = async () => {
- if (chrome.runtime) {
+ if (chrome && chrome.runtime && chrome.runtime.getPlatformInfo) {
const TrezorConnect = (await import("@trezor/connect-webextension"))
.default;
await TrezorConnect.init({
From 081461f0effb979d49f81f302eeb4a0b23df4010 Mon Sep 17 00:00:00 2001
From: kvhnuke <10602065+kvhnuke@users.noreply.github.com>
Date: Tue, 27 May 2025 14:29:18 -0700
Subject: [PATCH 07/10] devop: move trezor-web to dev dep
---
packages/hw-wallets/package.json | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/packages/hw-wallets/package.json b/packages/hw-wallets/package.json
index 5bc903a0a..ea7cdf739 100644
--- a/packages/hw-wallets/package.json
+++ b/packages/hw-wallets/package.json
@@ -1,6 +1,6 @@
{
"name": "@enkryptcom/hw-wallets",
- "version": "0.0.7",
+ "version": "0.0.8",
"description": "Hardware wallet manager for enkrypt",
"type": "module",
"main": "src/index.ts",
@@ -22,7 +22,6 @@
"node": ">=14.15.0"
},
"devDependencies": {
- "@trezor/connect-web": "^9.5.5",
"@types/node": "^22.15.17",
"@typescript-eslint/eslint-plugin": "^8.32.1",
"@typescript-eslint/parser": "^8.32.1",
@@ -62,6 +61,7 @@
"@polkadot/types": "^15.9.3",
"@polkadot/util": "^13.4.4",
"@trezor/connect": "^9.5.4",
+ "@trezor/connect-web": "^9.5.5",
"@trezor/connect-webextension": "^9.5.4",
"@zondax/ledger-substrate": "^1.1.1",
"bitcoinjs-lib": "^6.1.7",
From 6b5a5035dc6504a3e27706517609ba283edcadb8 Mon Sep 17 00:00:00 2001
From: kvhnuke <10602065+kvhnuke@users.noreply.github.com>
Date: Tue, 27 May 2025 15:03:58 -0700
Subject: [PATCH 08/10] devop: move trezor-web to dev dep
---
packages/hw-wallets/src/trezor/trezorConnect.ts | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/packages/hw-wallets/src/trezor/trezorConnect.ts b/packages/hw-wallets/src/trezor/trezorConnect.ts
index 08f238850..c4cd9c967 100644
--- a/packages/hw-wallets/src/trezor/trezorConnect.ts
+++ b/packages/hw-wallets/src/trezor/trezorConnect.ts
@@ -15,15 +15,15 @@ const getTrezorConnect = async () => {
});
return TrezorConnect as TrezorConnectType;
} else {
- const TrezorConnect = (await import("@trezor/connect-web")).default;
- await TrezorConnect.init({
+ const TrezorConnect = await import("@trezor/connect-web");
+ await TrezorConnect.default.init({
lazyLoad: true,
manifest: {
email: "info@enkrypt.com",
appUrl: "http://www.myetherwallet.com",
},
});
- return TrezorConnect as TrezorConnectType;
+ return TrezorConnect.default as TrezorConnectType;
}
};
From fcce244eb60554dd726b864e350ce25472b22468 Mon Sep 17 00:00:00 2001
From: kvhnuke <10602065+kvhnuke@users.noreply.github.com>
Date: Tue, 27 May 2025 15:04:10 -0700
Subject: [PATCH 09/10] devop: move trezor-web to dev dep
---
packages/hw-wallets/package.json | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/packages/hw-wallets/package.json b/packages/hw-wallets/package.json
index ea7cdf739..c37fcda79 100644
--- a/packages/hw-wallets/package.json
+++ b/packages/hw-wallets/package.json
@@ -1,6 +1,6 @@
{
"name": "@enkryptcom/hw-wallets",
- "version": "0.0.8",
+ "version": "0.0.9",
"description": "Hardware wallet manager for enkrypt",
"type": "module",
"main": "src/index.ts",
From e1dab4cd6d496c03503ab18b1331d5ff3e3b2e17 Mon Sep 17 00:00:00 2001
From: kvhnuke <10602065+kvhnuke@users.noreply.github.com>
Date: Wed, 28 May 2025 10:58:49 -0700
Subject: [PATCH 10/10] devop: follow similar logic
---
packages/hw-wallets/src/trezor/trezorConnect.ts | 7 +++----
1 file changed, 3 insertions(+), 4 deletions(-)
diff --git a/packages/hw-wallets/src/trezor/trezorConnect.ts b/packages/hw-wallets/src/trezor/trezorConnect.ts
index c4cd9c967..8a9de1601 100644
--- a/packages/hw-wallets/src/trezor/trezorConnect.ts
+++ b/packages/hw-wallets/src/trezor/trezorConnect.ts
@@ -2,9 +2,8 @@ import type { TrezorConnect as TrezorConnectType } from "@trezor/connect-web";
const getTrezorConnect = async () => {
if (chrome && chrome.runtime && chrome.runtime.getPlatformInfo) {
- const TrezorConnect = (await import("@trezor/connect-webextension"))
- .default;
- await TrezorConnect.init({
+ const TrezorConnect = await import("@trezor/connect-webextension");
+ await TrezorConnect.default.init({
manifest: {
email: "info@enkrypt.com",
appUrl: "https://www.enkrypt.com",
@@ -13,7 +12,7 @@ const getTrezorConnect = async () => {
connectSrc: "https://connect.trezor.io/9/",
_extendWebextensionLifetime: true,
});
- return TrezorConnect as TrezorConnectType;
+ return TrezorConnect.default as TrezorConnectType;
} else {
const TrezorConnect = await import("@trezor/connect-web");
await TrezorConnect.default.init({