Skip to content

Commit c71549c

Browse files
authored
fix: handle different kaspa derive type address from hw resp (#8845)
* fix: handle kaspa offical derive type address from hw resp * fix: handle kaspa offical derive type address from hw resp * fix: useTweak params
1 parent ed72f4e commit c71549c

File tree

4 files changed

+26
-1
lines changed

4 files changed

+26
-1
lines changed

packages/kit-bg/src/services/ServiceHardware/HardwareAllNetworkGetAddressResponse.ts

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ export class HardwareAllNetworkGetAddressResponse {
1616
const promiseTarget = this.getOrCreateItemPromiseTarget({
1717
path: item.path,
1818
hwSdkNetwork: item.network,
19+
useTweak: item.useTweak,
1920
});
2021
// reject by convertDeviceResponse();
2122
if (item.success) {
@@ -65,11 +66,17 @@ export class HardwareAllNetworkGetAddressResponse {
6566
getOrCreateItemPromiseTarget({
6667
path,
6768
hwSdkNetwork,
69+
useTweak,
6870
}: {
6971
path: string;
7072
hwSdkNetwork: IHwSdkNetwork;
73+
useTweak?: boolean;
7174
}) {
72-
const key = this.buildItemPromiseTargetKey({ path, hwSdkNetwork });
75+
const key = this.buildItemPromiseTargetKey({
76+
path,
77+
hwSdkNetwork,
78+
useTweak,
79+
});
7380
console.log(
7481
'HardwareAllNetworkGetAddressResponse__getOrCreateItemPromiseTarget',
7582
{
@@ -94,16 +101,22 @@ export class HardwareAllNetworkGetAddressResponse {
94101
buildItemPromiseTargetKey({
95102
path,
96103
hwSdkNetwork,
104+
useTweak,
97105
}: {
98106
path: string;
99107
hwSdkNetwork: IHwSdkNetwork;
108+
useTweak?: boolean;
100109
}) {
101110
/*
102111
const account = hwAllNetworkPrepareAccountsResponse?.find(
103112
(item) =>
104113
item.network && item.path === path && item.network === hwSdkNetwork,
105114
);
106115
*/
116+
117+
if (useTweak) {
118+
return `PromiseItem__${hwSdkNetwork}-${path}-useTweak`;
119+
}
107120
return `PromiseItem__${hwSdkNetwork}-${path}`;
108121
}
109122

@@ -120,13 +133,16 @@ export class HardwareAllNetworkGetAddressResponse {
120133
async getItem({
121134
path,
122135
hwSdkNetwork,
136+
useTweak,
123137
}: {
124138
path: string;
125139
hwSdkNetwork: IHwSdkNetwork;
140+
useTweak?: boolean;
126141
}): Promise<IHwAllNetworkPrepareAccountsItem> {
127142
const promiseTarget = this.getOrCreateItemPromiseTarget({
128143
path,
129144
hwSdkNetwork,
145+
useTweak,
130146
});
131147
return promiseTarget.ready;
132148
}

packages/kit-bg/src/vaults/base/KeyringHardwareBase.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
/* eslint-disable @typescript-eslint/no-unused-vars, @typescript-eslint/require-await */
22

3+
import { EAddressEncodings } from '@onekeyhq/core/src/types';
34
import { slicePathTemplate } from '@onekeyhq/core/src/utils';
45
import appGlobals from '@onekeyhq/shared/src/appGlobals';
56
import {
@@ -157,6 +158,7 @@ export abstract class KeyringHardwareBase extends KeyringBase {
157158
usedIndexes,
158159
buildPath,
159160
buildResultAccount,
161+
useTweak,
160162
}: {
161163
hwSdkNetwork: IHwSdkNetwork | undefined;
162164
params: IPrepareHardwareAccountsParams;
@@ -166,6 +168,7 @@ export abstract class KeyringHardwareBase extends KeyringBase {
166168
account: IHwAllNetworkPrepareAccountsItem;
167169
index: number;
168170
}) => T;
171+
useTweak?: boolean;
169172
}): Promise<
170173
| {
171174
success: true;
@@ -191,6 +194,7 @@ export abstract class KeyringHardwareBase extends KeyringBase {
191194
const account = await hwAllNetworkPrepareAccountsResponse.getItem({
192195
path,
193196
hwSdkNetwork,
197+
useTweak,
194198
});
195199
if (account && account.success && account.payload) {
196200
const resultAccount = buildResultAccount({ account, index });

packages/kit-bg/src/vaults/impls/kaspa/KeyringHardware.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,9 @@ export class KeyringHardware extends KeyringHardwareBase {
9393
__hwExtraInfo__: undefined,
9494
}),
9595
hwSdkNetwork: this.hwSdkNetwork,
96+
useTweak:
97+
params.deriveInfo.addressEncoding !==
98+
EAddressEncodings.KASPA_ORG,
9699
});
97100
if (allNetworkAccounts) {
98101
return allNetworkAccounts;

packages/kit-bg/src/vaults/types.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -444,6 +444,8 @@ export type IHwAllNetworkPrepareAccountsItem =
444444

445445
derivedPath?: string; // alph
446446
};
447+
448+
useTweak?: boolean; // kaspa
447449
};
448450

449451
export type IHwAllNetworkPrepareAccountsResponse =

0 commit comments

Comments
 (0)