From 178851631a3d06dd52c8dd9df24cbaaff7aa6390 Mon Sep 17 00:00:00 2001 From: ByteZhang Date: Fri, 17 Jul 2026 16:24:06 +0800 Subject: [PATCH] feat(kaspa): surface prev-tx-id mismatch under its own error code MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The device recomputes each spent input's previous-transaction id from the refTxs the caller supplies and refuses to sign when it doesn't match the outpoint. The kaspa REST source that refTxs are built from omits some consensus fields (lockTime, per-input sequence), so they get defaulted and can be wrong, which surfaced only as a generic RuntimeError carrying the firmware's raw text. Map that rejection to KaspaPrevTxIdMismatch (829) so the caller can act on it — rebuild the refTxs, or let the user confirm signing without on-device verification — instead of matching an English firmware string itself. The SDK deliberately does not retry without refTxs: dropping on-device input verification is the caller's decision to make, not a silent downgrade. Scoped to the streaming flow, the only path that sends refTxs; legacy blind signing never requests a previous transaction. Only the mismatch text gets the new code — user cancellation and every other device error pass through untouched. --- .../electron-example/package.json | 4 +- .../expo-example/package.json | 10 ++-- .../expo-playground/package.json | 8 +-- .../connect-examples/hwk-demo/package.json | 18 +++--- .../__tests__/kaspaSignTransaction.test.ts | 60 +++++++++++++++++++ packages/core/package.json | 6 +- .../src/api/kaspa/KaspaSignTransaction.ts | 13 +++- packages/hd-ble-sdk/package.json | 8 +-- packages/hd-cli/package.json | 10 ++-- packages/hd-common-connect-sdk/package.json | 16 ++--- packages/hd-transport-electron/package.json | 8 +-- packages/hd-transport-emulator/package.json | 6 +- packages/hd-transport-http/package.json | 6 +- packages/hd-transport-lowlevel/package.json | 6 +- .../hd-transport-react-native/package.json | 8 +-- packages/hd-transport-usb/package.json | 6 +- packages/hd-transport-web-device/package.json | 8 +-- packages/hd-transport/package.json | 2 +- packages/hd-web-sdk/package.json | 10 ++-- packages/hwk-adapter-core/package.json | 2 +- packages/hwk-ledger-adapter/package.json | 4 +- .../hwk-ledger-connector-ble/package.json | 6 +- .../hwk-ledger-connector-webhid/package.json | 6 +- packages/hwk-trezor-adapter/package.json | 6 +- .../package.json | 8 +-- .../hwk-trezor-connector-rn-ble/package.json | 8 +-- .../hwk-trezor-connector-webusb/package.json | 6 +- packages/hwk-trezor-connector/package.json | 12 ++-- packages/hwk-trezor-core/package.json | 8 +-- packages/hwk-trezor-protobuf/package.json | 4 +- packages/hwk-trezor-protocol/package.json | 2 +- packages/hwk-trezor-schema-utils/package.json | 4 +- packages/hwk-trezor-transport/package.json | 10 ++-- packages/hwk-trezor-type-utils/package.json | 2 +- packages/hwk-trezor-utils/package.json | 4 +- packages/shared/package.json | 2 +- packages/shared/src/HardwareError.ts | 6 ++ 37 files changed, 195 insertions(+), 118 deletions(-) diff --git a/packages/connect-examples/electron-example/package.json b/packages/connect-examples/electron-example/package.json index fe2015095..859a76b0c 100644 --- a/packages/connect-examples/electron-example/package.json +++ b/packages/connect-examples/electron-example/package.json @@ -2,7 +2,7 @@ "name": "hardware-example", "productName": "HardwareExample", "executableName": "onekey-hardware-example", - "version": "1.1.32", + "version": "1.1.34-alpha.0", "author": "OneKey", "description": "End-to-end encrypted workspaces for teams", "main": "dist/index.js", @@ -22,7 +22,7 @@ "ts:check": "yarn tsc --noEmit" }, "dependencies": { - "@onekeyfe/hd-transport-electron": "1.1.32", + "@onekeyfe/hd-transport-electron": "1.1.34-alpha.0", "@stoprocent/noble": "2.3.16", "debug": "4.3.4", "electron-is-dev": "^3.0.1", diff --git a/packages/connect-examples/expo-example/package.json b/packages/connect-examples/expo-example/package.json index 886fb036d..070a8f774 100644 --- a/packages/connect-examples/expo-example/package.json +++ b/packages/connect-examples/expo-example/package.json @@ -1,6 +1,6 @@ { "name": "expo-example", - "version": "1.1.32", + "version": "1.1.34-alpha.0", "scripts": { "start": "cross-env CONNECT_SRC=https://localhost:8087/ yarn expo start --dev-client", "android": "yarn expo run:android", @@ -19,10 +19,10 @@ "@noble/ed25519": "^2.1.0", "@noble/hashes": "^1.3.3", "@noble/secp256k1": "^1.7.1", - "@onekeyfe/hd-ble-sdk": "1.1.32", - "@onekeyfe/hd-common-connect-sdk": "1.1.32", - "@onekeyfe/hd-core": "1.1.32", - "@onekeyfe/hd-web-sdk": "1.1.32", + "@onekeyfe/hd-ble-sdk": "1.1.34-alpha.0", + "@onekeyfe/hd-common-connect-sdk": "1.1.34-alpha.0", + "@onekeyfe/hd-core": "1.1.34-alpha.0", + "@onekeyfe/hd-web-sdk": "1.1.34-alpha.0", "@onekeyfe/react-native-ble-utils": "^0.1.3", "@polkadot/util-crypto": "13.1.1", "@react-native-async-storage/async-storage": "1.21.0", diff --git a/packages/connect-examples/expo-playground/package.json b/packages/connect-examples/expo-playground/package.json index bc5b36237..ac8ed6c9d 100644 --- a/packages/connect-examples/expo-playground/package.json +++ b/packages/connect-examples/expo-playground/package.json @@ -1,6 +1,6 @@ { "name": "onekey-hardware-playground", - "version": "1.1.32", + "version": "1.1.34-alpha.0", "private": true, "sideEffects": [ "app/utils/shim.js", @@ -17,9 +17,9 @@ }, "dependencies": { "@noble/hashes": "^1.8.0", - "@onekeyfe/hd-common-connect-sdk": "1.1.32", - "@onekeyfe/hd-core": "1.1.32", - "@onekeyfe/hd-shared": "1.1.32", + "@onekeyfe/hd-common-connect-sdk": "1.1.34-alpha.0", + "@onekeyfe/hd-core": "1.1.34-alpha.0", + "@onekeyfe/hd-shared": "1.1.34-alpha.0", "@radix-ui/react-checkbox": "^1.3.2", "@radix-ui/react-dialog": "^1.1.14", "@radix-ui/react-dropdown-menu": "^2.1.15", diff --git a/packages/connect-examples/hwk-demo/package.json b/packages/connect-examples/hwk-demo/package.json index 7e3b73476..617bfad21 100644 --- a/packages/connect-examples/hwk-demo/package.json +++ b/packages/connect-examples/hwk-demo/package.json @@ -1,6 +1,6 @@ { "name": "hwk-demo", - "version": "1.1.32", + "version": "1.1.34-alpha.0", "private": true, "main": "index.js", "scripts": { @@ -13,14 +13,14 @@ }, "dependencies": { "@expo/metro-runtime": "~3.1.3", - "@onekeyfe/hwk-adapter-core": "1.1.32", - "@onekeyfe/hwk-ledger-adapter": "1.1.32", - "@onekeyfe/hwk-ledger-connector-ble": "1.1.32", - "@onekeyfe/hwk-ledger-connector-webhid": "1.1.32", - "@onekeyfe/hwk-trezor-adapter": "1.1.32", - "@onekeyfe/hwk-trezor-connector": "1.1.32", - "@onekeyfe/hwk-trezor-connector-rn-ble": "1.1.32", - "@onekeyfe/hwk-trezor-connector-webusb": "1.1.32", + "@onekeyfe/hwk-adapter-core": "1.1.34-alpha.0", + "@onekeyfe/hwk-ledger-adapter": "1.1.34-alpha.0", + "@onekeyfe/hwk-ledger-connector-ble": "1.1.34-alpha.0", + "@onekeyfe/hwk-ledger-connector-webhid": "1.1.34-alpha.0", + "@onekeyfe/hwk-trezor-adapter": "1.1.34-alpha.0", + "@onekeyfe/hwk-trezor-connector": "1.1.34-alpha.0", + "@onekeyfe/hwk-trezor-connector-rn-ble": "1.1.34-alpha.0", + "@onekeyfe/hwk-trezor-connector-webusb": "1.1.34-alpha.0", "@react-native-async-storage/async-storage": "1.21.0", "browserify-zlib": "^0.2.0", "buffer": "^6.0.3", diff --git a/packages/core/__tests__/kaspaSignTransaction.test.ts b/packages/core/__tests__/kaspaSignTransaction.test.ts index dd6559f2b..dfbdc7560 100644 --- a/packages/core/__tests__/kaspaSignTransaction.test.ts +++ b/packages/core/__tests__/kaspaSignTransaction.test.ts @@ -454,6 +454,66 @@ describe('KaspaSignTransaction protocol negotiation', () => { // Back to the current transaction after the previous one is streamed. expect(mockTypedCall.mock.calls[4][0]).toBe('KaspaTxAckInput'); }); + + describe('previous-transaction id mismatch', () => { + const PREV_ID = 'aa'.repeat(32); + const withRefTxs = { + outputs: [{ satoshis: 100000, script: SCRIPT, address: ADDRESS }], + refTxs: [ + { + txId: PREV_ID, + version: 0, + inputs: [], + outputs: [{ satoshis: '200000', script: SCRIPT }], + }, + ], + }; + + const streamThenReject = (error: unknown) => + mockTypedCall + .mockResolvedValueOnce( + txRequest({ request_type: 'KASPA_TX_PREV_META', prev_tx_id: PREV_ID }) + ) + .mockRejectedValueOnce(error); + + it('surfaces the device rejection under its own error code', async () => { + streamThenReject( + ERRORS.TypedError( + HardwareErrorCode.RuntimeError, + 'Failure_ProcessError,Kaspa previous transaction id mismatch' + ) + ); + + await expect(runMethod(withRefTxs)).rejects.toMatchObject({ + errorCode: HardwareErrorCode.KaspaPrevTxIdMismatch, + }); + // Never silently re-signs without refTxs. + expect(mockTypedCall).toHaveBeenCalledTimes(2); + }); + + it('leaves an unrelated device error untouched', async () => { + streamThenReject( + ERRORS.TypedError( + HardwareErrorCode.RuntimeError, + 'Failure_ProcessError,some other device error' + ) + ); + + await expect(runMethod(withRefTxs)).rejects.toMatchObject({ + errorCode: HardwareErrorCode.RuntimeError, + }); + expect(mockTypedCall).toHaveBeenCalledTimes(2); + }); + + it('leaves user cancellation untouched', async () => { + streamThenReject(ERRORS.TypedError(HardwareErrorCode.ActionCancelled)); + + await expect(runMethod(withRefTxs)).rejects.toMatchObject({ + errorCode: HardwareErrorCode.ActionCancelled, + }); + expect(mockTypedCall).toHaveBeenCalledTimes(2); + }); + }); }); describe('KaspaSignTransaction wire encoding', () => { diff --git a/packages/core/package.json b/packages/core/package.json index 9c827eff5..9c67e1dc9 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,6 +1,6 @@ { "name": "@onekeyfe/hd-core", - "version": "1.1.32", + "version": "1.1.34-alpha.0", "description": "Core processes and APIs for communicating with OneKey hardware devices.", "author": "OneKey", "homepage": "https://github.com/OneKeyHQ/hardware-js-sdk#readme", @@ -25,8 +25,8 @@ "url": "https://github.com/OneKeyHQ/hardware-js-sdk/issues" }, "dependencies": { - "@onekeyfe/hd-shared": "1.1.32", - "@onekeyfe/hd-transport": "1.1.32", + "@onekeyfe/hd-shared": "1.1.34-alpha.0", + "@onekeyfe/hd-transport": "1.1.34-alpha.0", "axios": "1.15.2", "bignumber.js": "^9.0.2", "bytebuffer": "^5.0.1", diff --git a/packages/core/src/api/kaspa/KaspaSignTransaction.ts b/packages/core/src/api/kaspa/KaspaSignTransaction.ts index 879a60451..35c4981b5 100644 --- a/packages/core/src/api/kaspa/KaspaSignTransaction.ts +++ b/packages/core/src/api/kaspa/KaspaSignTransaction.ts @@ -476,7 +476,18 @@ export default class KaspaSignTransaction extends BaseMethod=4.0.0" }, "dependencies": { - "@onekeyfe/hd-core": "1.1.32", - "@onekeyfe/hd-shared": "1.1.32", - "@onekeyfe/hd-transport": "1.1.32", + "@onekeyfe/hd-core": "1.1.34-alpha.0", + "@onekeyfe/hd-shared": "1.1.34-alpha.0", + "@onekeyfe/hd-transport": "1.1.34-alpha.0", "@stoprocent/noble": "2.3.16", "p-retry": "^4.6.2" }, diff --git a/packages/hd-transport-emulator/package.json b/packages/hd-transport-emulator/package.json index d6310cd8d..88a71f937 100644 --- a/packages/hd-transport-emulator/package.json +++ b/packages/hd-transport-emulator/package.json @@ -1,6 +1,6 @@ { "name": "@onekeyfe/hd-transport-emulator", - "version": "1.1.32", + "version": "1.1.34-alpha.0", "description": "hardware emulator transport", "author": "OneKey", "homepage": "https://github.com/OneKeyHQ/hardware-js-sdk#readme", @@ -24,8 +24,8 @@ "url": "https://github.com/OneKeyHQ/hardware-js-sdk/issues" }, "dependencies": { - "@onekeyfe/hd-shared": "1.1.32", - "@onekeyfe/hd-transport": "1.1.32", + "@onekeyfe/hd-shared": "1.1.34-alpha.0", + "@onekeyfe/hd-transport": "1.1.34-alpha.0", "axios": "1.15.2", "secure-json-parse": "^4.0.0" } diff --git a/packages/hd-transport-http/package.json b/packages/hd-transport-http/package.json index ce0a62598..b598a6e3d 100644 --- a/packages/hd-transport-http/package.json +++ b/packages/hd-transport-http/package.json @@ -1,6 +1,6 @@ { "name": "@onekeyfe/hd-transport-http", - "version": "1.1.32", + "version": "1.1.34-alpha.0", "description": "hardware http transport", "author": "OneKey", "homepage": "https://github.com/OneKeyHQ/hardware-js-sdk#readme", @@ -24,8 +24,8 @@ "url": "https://github.com/OneKeyHQ/hardware-js-sdk/issues" }, "dependencies": { - "@onekeyfe/hd-shared": "1.1.32", - "@onekeyfe/hd-transport": "1.1.32", + "@onekeyfe/hd-shared": "1.1.34-alpha.0", + "@onekeyfe/hd-transport": "1.1.34-alpha.0", "axios": "1.15.2", "secure-json-parse": "^4.0.0" } diff --git a/packages/hd-transport-lowlevel/package.json b/packages/hd-transport-lowlevel/package.json index ad4b31c05..dab8c0cad 100644 --- a/packages/hd-transport-lowlevel/package.json +++ b/packages/hd-transport-lowlevel/package.json @@ -1,6 +1,6 @@ { "name": "@onekeyfe/hd-transport-lowlevel", - "version": "1.1.32", + "version": "1.1.34-alpha.0", "homepage": "https://github.com/OneKeyHQ/hardware-js-sdk#readme", "license": "MIT", "main": "dist/index.js", @@ -19,7 +19,7 @@ "lint:fix": "eslint . --fix" }, "dependencies": { - "@onekeyfe/hd-shared": "1.1.32", - "@onekeyfe/hd-transport": "1.1.32" + "@onekeyfe/hd-shared": "1.1.34-alpha.0", + "@onekeyfe/hd-transport": "1.1.34-alpha.0" } } diff --git a/packages/hd-transport-react-native/package.json b/packages/hd-transport-react-native/package.json index 8546226ed..0aca66e46 100644 --- a/packages/hd-transport-react-native/package.json +++ b/packages/hd-transport-react-native/package.json @@ -1,6 +1,6 @@ { "name": "@onekeyfe/hd-transport-react-native", - "version": "1.1.32", + "version": "1.1.34-alpha.0", "homepage": "https://github.com/OneKeyHQ/hardware-js-sdk#readme", "license": "MIT", "main": "dist/index.js", @@ -19,9 +19,9 @@ "lint:fix": "eslint . --fix" }, "dependencies": { - "@onekeyfe/hd-core": "1.1.32", - "@onekeyfe/hd-shared": "1.1.32", - "@onekeyfe/hd-transport": "1.1.32", + "@onekeyfe/hd-core": "1.1.34-alpha.0", + "@onekeyfe/hd-shared": "1.1.34-alpha.0", + "@onekeyfe/hd-transport": "1.1.34-alpha.0", "@onekeyfe/react-native-ble-utils": "^0.1.6", "react-native-ble-plx": "3.5.1" } diff --git a/packages/hd-transport-usb/package.json b/packages/hd-transport-usb/package.json index 39b69129f..e7ceee7d8 100644 --- a/packages/hd-transport-usb/package.json +++ b/packages/hd-transport-usb/package.json @@ -1,6 +1,6 @@ { "name": "@onekeyfe/hd-transport-usb", - "version": "1.1.32", + "version": "1.1.34-alpha.0", "description": "OneKey hardware wallet direct USB transport plugin (libusb)", "homepage": "https://github.com/OneKeyHQ/hardware-js-sdk#readme", "license": "MIT", @@ -20,8 +20,8 @@ "lint:fix": "eslint . --fix" }, "dependencies": { - "@onekeyfe/hd-shared": "1.1.32", - "@onekeyfe/hd-transport": "1.1.32", + "@onekeyfe/hd-shared": "1.1.34-alpha.0", + "@onekeyfe/hd-transport": "1.1.34-alpha.0", "bytebuffer": "^5.0.1", "usb": "^2.14.0" } diff --git a/packages/hd-transport-web-device/package.json b/packages/hd-transport-web-device/package.json index 14d5da036..8b84ffc56 100644 --- a/packages/hd-transport-web-device/package.json +++ b/packages/hd-transport-web-device/package.json @@ -1,6 +1,6 @@ { "name": "@onekeyfe/hd-transport-web-device", - "version": "1.1.32", + "version": "1.1.34-alpha.0", "author": "OneKey", "homepage": "https://github.com/OneKeyHQ/hardware-js-sdk#readme", "license": "MIT", @@ -20,11 +20,11 @@ "lint:fix": "eslint . --fix" }, "dependencies": { - "@onekeyfe/hd-shared": "1.1.32", - "@onekeyfe/hd-transport": "1.1.32" + "@onekeyfe/hd-shared": "1.1.34-alpha.0", + "@onekeyfe/hd-transport": "1.1.34-alpha.0" }, "devDependencies": { - "@onekeyfe/hd-transport-electron": "1.1.32", + "@onekeyfe/hd-transport-electron": "1.1.34-alpha.0", "@types/w3c-web-usb": "^1.0.6", "@types/web-bluetooth": "^0.0.17" } diff --git a/packages/hd-transport/package.json b/packages/hd-transport/package.json index cf2ad9d01..b39dbdd8a 100644 --- a/packages/hd-transport/package.json +++ b/packages/hd-transport/package.json @@ -1,6 +1,6 @@ { "name": "@onekeyfe/hd-transport", - "version": "1.1.32", + "version": "1.1.34-alpha.0", "description": "Transport layer abstractions and utilities for OneKey hardware SDK.", "author": "OneKey", "homepage": "https://github.com/OneKeyHQ/hardware-js-sdk#readme", diff --git a/packages/hd-web-sdk/package.json b/packages/hd-web-sdk/package.json index 45cc94f22..2cd635473 100644 --- a/packages/hd-web-sdk/package.json +++ b/packages/hd-web-sdk/package.json @@ -1,6 +1,6 @@ { "name": "@onekeyfe/hd-web-sdk", - "version": "1.1.32", + "version": "1.1.34-alpha.0", "author": "OneKey", "homepage": "https://github.com/OneKeyHQ/hardware-js-sdk#readme", "license": "ISC", @@ -23,10 +23,10 @@ }, "dependencies": { "@onekeyfe/cross-inpage-provider-core": "2.2.67", - "@onekeyfe/hd-core": "1.1.32", - "@onekeyfe/hd-shared": "1.1.32", - "@onekeyfe/hd-transport-http": "1.1.32", - "@onekeyfe/hd-transport-web-device": "1.1.32" + "@onekeyfe/hd-core": "1.1.34-alpha.0", + "@onekeyfe/hd-shared": "1.1.34-alpha.0", + "@onekeyfe/hd-transport-http": "1.1.34-alpha.0", + "@onekeyfe/hd-transport-web-device": "1.1.34-alpha.0" }, "devDependencies": { "@babel/plugin-proposal-optional-chaining": "^7.17.12", diff --git a/packages/hwk-adapter-core/package.json b/packages/hwk-adapter-core/package.json index 3510545c9..56436f838 100644 --- a/packages/hwk-adapter-core/package.json +++ b/packages/hwk-adapter-core/package.json @@ -1,6 +1,6 @@ { "name": "@onekeyfe/hwk-adapter-core", - "version": "1.1.32", + "version": "1.1.34-alpha.0", "description": "Shared types and utilities for OneKey hardware wallet kit", "author": "OneKey", "license": "MIT", diff --git a/packages/hwk-ledger-adapter/package.json b/packages/hwk-ledger-adapter/package.json index d9d603b8c..27b3c1aa5 100644 --- a/packages/hwk-ledger-adapter/package.json +++ b/packages/hwk-ledger-adapter/package.json @@ -1,6 +1,6 @@ { "name": "@onekeyfe/hwk-ledger-adapter", - "version": "1.1.32", + "version": "1.1.34-alpha.0", "description": "Ledger hardware wallet adapter for OneKey", "author": "OneKey", "license": "MIT", @@ -50,7 +50,7 @@ "@ledgerhq/device-signer-kit-solana": "^1.7.0", "@ledgerhq/hw-app-trx": "^6.34.1", "@ledgerhq/hw-transport": "^6.34.1", - "@onekeyfe/hwk-adapter-core": "1.1.32", + "@onekeyfe/hwk-adapter-core": "1.1.34-alpha.0", "bitcoinjs-lib": "npm:@onekeyfe/bitcoinjs-lib@7.0.1" }, "devDependencies": { diff --git a/packages/hwk-ledger-connector-ble/package.json b/packages/hwk-ledger-connector-ble/package.json index e75b0f221..366c76442 100644 --- a/packages/hwk-ledger-connector-ble/package.json +++ b/packages/hwk-ledger-connector-ble/package.json @@ -1,6 +1,6 @@ { "name": "@onekeyfe/hwk-ledger-connector-ble", - "version": "1.1.32", + "version": "1.1.34-alpha.0", "description": "IConnector implementation for Ledger hardware wallets via React Native BLE", "author": "OneKey", "license": "MIT", @@ -51,8 +51,8 @@ "@ledgerhq/device-signer-kit-ethereum": "^1.9.0", "@ledgerhq/device-signer-kit-solana": "^1.7.0", "@ledgerhq/device-transport-kit-react-native-ble": "^1.0.0", - "@onekeyfe/hwk-adapter-core": "1.1.32", - "@onekeyfe/hwk-ledger-adapter": "1.1.32" + "@onekeyfe/hwk-adapter-core": "1.1.34-alpha.0", + "@onekeyfe/hwk-ledger-adapter": "1.1.34-alpha.0" }, "peerDependencies": { "react-native": "*" diff --git a/packages/hwk-ledger-connector-webhid/package.json b/packages/hwk-ledger-connector-webhid/package.json index 8984c777e..43656a45f 100644 --- a/packages/hwk-ledger-connector-webhid/package.json +++ b/packages/hwk-ledger-connector-webhid/package.json @@ -1,6 +1,6 @@ { "name": "@onekeyfe/hwk-ledger-connector-webhid", - "version": "1.1.32", + "version": "1.1.34-alpha.0", "description": "IConnector implementation for Ledger hardware wallets via WebHID (DMK)", "author": "OneKey", "license": "MIT", @@ -49,8 +49,8 @@ "@ledgerhq/device-signer-kit-ethereum": "^1.9.0", "@ledgerhq/device-signer-kit-solana": "^1.7.0", "@ledgerhq/device-transport-kit-web-hid": "^1.0.0", - "@onekeyfe/hwk-adapter-core": "1.1.32", - "@onekeyfe/hwk-ledger-adapter": "1.1.32" + "@onekeyfe/hwk-adapter-core": "1.1.34-alpha.0", + "@onekeyfe/hwk-ledger-adapter": "1.1.34-alpha.0" }, "devDependencies": { "rimraf": "^5.0.0", diff --git a/packages/hwk-trezor-adapter/package.json b/packages/hwk-trezor-adapter/package.json index 035c4d60c..9d220d874 100644 --- a/packages/hwk-trezor-adapter/package.json +++ b/packages/hwk-trezor-adapter/package.json @@ -1,6 +1,6 @@ { "name": "@onekeyfe/hwk-trezor-adapter", - "version": "1.1.32", + "version": "1.1.34-alpha.0", "description": "Trezor hardware wallet adapter primitives for OneKey", "author": "OneKey", "license": "MIT", @@ -43,8 +43,8 @@ "crypto" ], "dependencies": { - "@onekeyfe/hwk-adapter-core": "1.1.32", - "@onekeyfe/hwk-trezor-core": "1.1.32", + "@onekeyfe/hwk-adapter-core": "1.1.34-alpha.0", + "@onekeyfe/hwk-trezor-core": "1.1.34-alpha.0", "tslib": "^2.6.2" }, "devDependencies": { diff --git a/packages/hwk-trezor-connector-electron-ble/package.json b/packages/hwk-trezor-connector-electron-ble/package.json index 41068ff21..e584dcdd9 100644 --- a/packages/hwk-trezor-connector-electron-ble/package.json +++ b/packages/hwk-trezor-connector-electron-ble/package.json @@ -1,6 +1,6 @@ { "name": "@onekeyfe/hwk-trezor-connector-electron-ble", - "version": "1.1.32", + "version": "1.1.34-alpha.0", "description": "IConnector implementation for Trezor hardware wallets via Electron BLE (noble in main process)", "author": "OneKey", "license": "MIT", @@ -56,9 +56,9 @@ "connector" ], "dependencies": { - "@onekeyfe/hwk-adapter-core": "1.1.32", - "@onekeyfe/hwk-trezor-adapter": "1.1.32", - "@onekeyfe/hwk-trezor-connector": "1.1.32", + "@onekeyfe/hwk-adapter-core": "1.1.34-alpha.0", + "@onekeyfe/hwk-trezor-adapter": "1.1.34-alpha.0", + "@onekeyfe/hwk-trezor-connector": "1.1.34-alpha.0", "buffer": "^6.0.3" }, "peerDependencies": { diff --git a/packages/hwk-trezor-connector-rn-ble/package.json b/packages/hwk-trezor-connector-rn-ble/package.json index 9cf6657b5..92a070b9d 100644 --- a/packages/hwk-trezor-connector-rn-ble/package.json +++ b/packages/hwk-trezor-connector-rn-ble/package.json @@ -1,6 +1,6 @@ { "name": "@onekeyfe/hwk-trezor-connector-rn-ble", - "version": "1.1.32", + "version": "1.1.34-alpha.0", "description": "IConnector implementation for Trezor hardware wallets via React Native BLE", "author": "OneKey", "license": "MIT", @@ -46,9 +46,9 @@ "connector" ], "dependencies": { - "@onekeyfe/hwk-adapter-core": "1.1.32", - "@onekeyfe/hwk-trezor-adapter": "1.1.32", - "@onekeyfe/hwk-trezor-connector": "1.1.32", + "@onekeyfe/hwk-adapter-core": "1.1.34-alpha.0", + "@onekeyfe/hwk-trezor-adapter": "1.1.34-alpha.0", + "@onekeyfe/hwk-trezor-connector": "1.1.34-alpha.0", "buffer": "^6.0.3", "react-native-ble-plx": "^3.5.1" }, diff --git a/packages/hwk-trezor-connector-webusb/package.json b/packages/hwk-trezor-connector-webusb/package.json index d7b6e6f3b..f1a3ebd30 100644 --- a/packages/hwk-trezor-connector-webusb/package.json +++ b/packages/hwk-trezor-connector-webusb/package.json @@ -1,6 +1,6 @@ { "name": "@onekeyfe/hwk-trezor-connector-webusb", - "version": "1.1.32", + "version": "1.1.34-alpha.0", "description": "IConnector implementation for Trezor hardware wallets via WebUSB", "author": "OneKey", "license": "MIT", @@ -55,8 +55,8 @@ "connector" ], "dependencies": { - "@onekeyfe/hwk-adapter-core": "1.1.32", - "@onekeyfe/hwk-trezor-connector": "1.1.32", + "@onekeyfe/hwk-adapter-core": "1.1.34-alpha.0", + "@onekeyfe/hwk-trezor-connector": "1.1.34-alpha.0", "buffer": "^6.0.3" }, "devDependencies": { diff --git a/packages/hwk-trezor-connector/package.json b/packages/hwk-trezor-connector/package.json index d00bbebc3..ea868419e 100644 --- a/packages/hwk-trezor-connector/package.json +++ b/packages/hwk-trezor-connector/package.json @@ -1,6 +1,6 @@ { "name": "@onekeyfe/hwk-trezor-connector", - "version": "1.1.32", + "version": "1.1.34-alpha.0", "description": "Shared Trezor connector base for Hardware Wallet Kit", "author": "OneKey", "license": "MIT", @@ -38,13 +38,13 @@ }, "sideEffects": false, "dependencies": { - "@onekeyfe/hwk-adapter-core": "1.1.32", - "@onekeyfe/hwk-trezor-core": "1.1.32" + "@onekeyfe/hwk-adapter-core": "1.1.34-alpha.0", + "@onekeyfe/hwk-trezor-core": "1.1.34-alpha.0" }, "devDependencies": { - "@onekeyfe/hwk-trezor-protobuf": "1.1.32", - "@onekeyfe/hwk-trezor-protocol": "1.1.32", - "@onekeyfe/hwk-trezor-transport": "1.1.32", + "@onekeyfe/hwk-trezor-protobuf": "1.1.34-alpha.0", + "@onekeyfe/hwk-trezor-protocol": "1.1.34-alpha.0", + "@onekeyfe/hwk-trezor-transport": "1.1.34-alpha.0", "rimraf": "^5.0.0", "tsup": "^8.0.0", "typescript": "5.1.6" diff --git a/packages/hwk-trezor-core/package.json b/packages/hwk-trezor-core/package.json index 97d400f25..13288b789 100644 --- a/packages/hwk-trezor-core/package.json +++ b/packages/hwk-trezor-core/package.json @@ -1,6 +1,6 @@ { "name": "@onekeyfe/hwk-trezor-core", - "version": "1.1.32", + "version": "1.1.34-alpha.0", "description": "Minimal Trezor core call layer for Hardware Wallet Kit", "author": "OneKey", "license": "MIT", @@ -41,9 +41,9 @@ "devDependencies": { "@noble/ciphers": "^1.3.0", "@noble/hashes": "^1.8.0", - "@onekeyfe/hwk-trezor-protobuf": "1.1.32", - "@onekeyfe/hwk-trezor-protocol": "1.1.32", - "@onekeyfe/hwk-trezor-transport": "1.1.32", + "@onekeyfe/hwk-trezor-protobuf": "1.1.34-alpha.0", + "@onekeyfe/hwk-trezor-protocol": "1.1.34-alpha.0", + "@onekeyfe/hwk-trezor-transport": "1.1.34-alpha.0", "buffer": "^6.0.3", "rimraf": "^5.0.0", "tsup": "^8.0.0", diff --git a/packages/hwk-trezor-protobuf/package.json b/packages/hwk-trezor-protobuf/package.json index 865cf7149..b125374cb 100644 --- a/packages/hwk-trezor-protobuf/package.json +++ b/packages/hwk-trezor-protobuf/package.json @@ -1,6 +1,6 @@ { "name": "@onekeyfe/hwk-trezor-protobuf", - "version": "1.1.32", + "version": "1.1.34-alpha.0", "private": true, "description": "Trezor protobuf helpers vendored from Trezor Suite MIT sources", "author": "OneKey", @@ -50,7 +50,7 @@ "sideEffects": false, "dependencies": { "@bufbuild/protobuf": "^2.11.0", - "@onekeyfe/hwk-trezor-schema-utils": "1.1.32" + "@onekeyfe/hwk-trezor-schema-utils": "1.1.34-alpha.0" }, "devDependencies": { "rimraf": "^5.0.0", diff --git a/packages/hwk-trezor-protocol/package.json b/packages/hwk-trezor-protocol/package.json index 6012dd2de..738b9f3aa 100644 --- a/packages/hwk-trezor-protocol/package.json +++ b/packages/hwk-trezor-protocol/package.json @@ -1,6 +1,6 @@ { "name": "@onekeyfe/hwk-trezor-protocol", - "version": "1.1.32", + "version": "1.1.34-alpha.0", "private": true, "description": "Trezor transport protocol helpers vendored from Trezor Suite MIT sources", "author": "OneKey", diff --git a/packages/hwk-trezor-schema-utils/package.json b/packages/hwk-trezor-schema-utils/package.json index 6e43b7cd2..a9bfeb403 100644 --- a/packages/hwk-trezor-schema-utils/package.json +++ b/packages/hwk-trezor-schema-utils/package.json @@ -1,6 +1,6 @@ { "name": "@onekeyfe/hwk-trezor-schema-utils", - "version": "1.1.32", + "version": "1.1.34-alpha.0", "private": true, "description": "Schema helpers vendored from Trezor Suite MIT sources for HWK Trezor support", "author": "OneKey", @@ -44,7 +44,7 @@ }, "sideEffects": false, "dependencies": { - "@onekeyfe/hwk-trezor-type-utils": "1.1.32", + "@onekeyfe/hwk-trezor-type-utils": "1.1.34-alpha.0", "@sinclair/typebox": "^0.34.49", "ts-mixer": "^6.0.4" }, diff --git a/packages/hwk-trezor-transport/package.json b/packages/hwk-trezor-transport/package.json index 89d7a5bc6..25a4f9cb2 100644 --- a/packages/hwk-trezor-transport/package.json +++ b/packages/hwk-trezor-transport/package.json @@ -1,6 +1,6 @@ { "name": "@onekeyfe/hwk-trezor-transport", - "version": "1.1.32", + "version": "1.1.34-alpha.0", "private": true, "description": "Low-level Trezor transport helpers vendored from Trezor Suite MIT sources", "author": "OneKey", @@ -49,10 +49,10 @@ }, "sideEffects": false, "dependencies": { - "@onekeyfe/hwk-trezor-protobuf": "1.1.32", - "@onekeyfe/hwk-trezor-protocol": "1.1.32", - "@onekeyfe/hwk-trezor-type-utils": "1.1.32", - "@onekeyfe/hwk-trezor-utils": "1.1.32", + "@onekeyfe/hwk-trezor-protobuf": "1.1.34-alpha.0", + "@onekeyfe/hwk-trezor-protocol": "1.1.34-alpha.0", + "@onekeyfe/hwk-trezor-type-utils": "1.1.34-alpha.0", + "@onekeyfe/hwk-trezor-utils": "1.1.34-alpha.0", "cross-fetch": "^4.1.0", "usb": "^2.17.0" }, diff --git a/packages/hwk-trezor-type-utils/package.json b/packages/hwk-trezor-type-utils/package.json index 2f3bcf04d..58e95d2eb 100644 --- a/packages/hwk-trezor-type-utils/package.json +++ b/packages/hwk-trezor-type-utils/package.json @@ -1,6 +1,6 @@ { "name": "@onekeyfe/hwk-trezor-type-utils", - "version": "1.1.32", + "version": "1.1.34-alpha.0", "private": true, "description": "Type helpers vendored from Trezor Suite MIT sources for HWK Trezor support", "author": "OneKey", diff --git a/packages/hwk-trezor-utils/package.json b/packages/hwk-trezor-utils/package.json index f7b47b7f3..f90f88c2a 100644 --- a/packages/hwk-trezor-utils/package.json +++ b/packages/hwk-trezor-utils/package.json @@ -1,6 +1,6 @@ { "name": "@onekeyfe/hwk-trezor-utils", - "version": "1.1.32", + "version": "1.1.34-alpha.0", "private": true, "description": "Utility helpers vendored from Trezor Suite MIT sources for HWK Trezor support", "author": "OneKey", @@ -39,7 +39,7 @@ }, "sideEffects": false, "dependencies": { - "@onekeyfe/hwk-trezor-type-utils": "1.1.32", + "@onekeyfe/hwk-trezor-type-utils": "1.1.34-alpha.0", "bignumber.js": "^9.3.1", "events": "^3.3.0" }, diff --git a/packages/shared/package.json b/packages/shared/package.json index fe3e0b215..7929e2fd9 100644 --- a/packages/shared/package.json +++ b/packages/shared/package.json @@ -1,6 +1,6 @@ { "name": "@onekeyfe/hd-shared", - "version": "1.1.32", + "version": "1.1.34-alpha.0", "description": "Hardware SDK's shared tool library", "keywords": [ "Hardware-SDK", diff --git a/packages/shared/src/HardwareError.ts b/packages/shared/src/HardwareError.ts index 3d6acdec6..0a4cc41c8 100644 --- a/packages/shared/src/HardwareError.ts +++ b/packages/shared/src/HardwareError.ts @@ -484,6 +484,11 @@ export const HardwareErrorCode = { */ PinMismatch: 828, + /** + * Device refused to sign: refTxs don't match the spent input's outpoint + */ + KaspaPrevTxIdMismatch: 829, + /** * Lowlevel transport connect error */ @@ -635,6 +640,7 @@ export const HardwareErrorCodeMessage: HardwareErrorCodeMessageMapping = { [HardwareErrorCode.DeviceSettingsLanguageNotSupport]: 'Language not supported', [HardwareErrorCode.TooManyInputs]: 'Too many inputs', [HardwareErrorCode.PinMismatch]: 'PIN mismatch', + [HardwareErrorCode.KaspaPrevTxIdMismatch]: 'Kaspa previous transaction id mismatch', /** * Lowlevel transport