@trezor/connect 9.2.0 → 9.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +18 -0
- package/README.md +1 -1
- package/lib/api/cardano/cardanoOutputs.d.ts +1 -1
- package/lib/api/cardano/cardanoTokenBundle.d.ts +2 -2
- package/lib/api/ethereum/api/ethereumGetPublicKey.d.ts +2 -0
- package/lib/api/ethereum/api/ethereumSignTypedData.d.ts +4 -4
- package/lib/api/getAccountInfo.d.ts +2 -2
- package/lib/api/getAccountInfo.js +3 -0
- package/lib/api/getFeatures.d.ts +3 -2
- package/lib/api/getPublicKey.d.ts +2 -0
- package/lib/backend/BackendManager.d.ts +1 -2
- package/lib/backend/BackendManager.js +15 -15
- package/lib/backend/Blockchain.d.ts +1 -1
- package/lib/backend/Blockchain.js +1 -1
- package/lib/data/version.d.ts +1 -1
- package/lib/data/version.js +1 -1
- package/lib/device/DeviceCommands.d.ts +4 -0
- package/lib/device/DeviceCommands.js +8 -5
- package/lib/device/resolveDescriptorForTaproot.d.ts +15 -0
- package/lib/device/resolveDescriptorForTaproot.js +26 -0
- package/lib/types/account.d.ts +2 -0
- package/lib/types/api/applySettings.d.ts +1 -1
- package/lib/types/api/binance/index.d.ts +10 -10
- package/lib/types/api/cardano/index.d.ts +4 -4
- package/lib/types/api/changeLanguage.d.ts +1 -1
- package/lib/types/api/cipherKeyValue.d.ts +2 -2
- package/lib/types/api/eos/index.d.ts +3 -3
- package/lib/types/api/ethereum/index.d.ts +3 -3
- package/lib/types/api/firmwareUpdate.d.ts +1 -1
- package/lib/types/api/getPublicKey.d.ts +1 -0
- package/lib/types/api/getPublicKey.js +1 -0
- package/lib/types/api/nem/index.d.ts +7 -7
- package/lib/types/api/stellar/index.d.ts +146 -146
- package/package.json +5 -5
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,21 @@
|
|
|
1
|
+
# 9.2.1
|
|
2
|
+
|
|
3
|
+
Main motivation for this release was [issue](https://github.com/trezor/trezor-suite/issues/11442) introduced in 9.2.0 release in @trezor/connect-web npm package.
|
|
4
|
+
|
|
5
|
+
- fix(connect): fix build of connect-web (50f35cb) [related issue](https://github.com/trezor/trezor-suite/issues/11442)
|
|
6
|
+
- feat(connect): return checksum in the xpub for taproot (458ddf9)
|
|
7
|
+
- fix(connect-ui): analytics button to reflect state (cc59ef9)
|
|
8
|
+
- chore(connect): unify failed connection and disconnection (c863646)
|
|
9
|
+
- feat(connect): leave sticky backend after some time (021ec5c)
|
|
10
|
+
- chore(connect-iframe): fix conflicting variable webpack warning on build:lib (cdbdfb2)
|
|
11
|
+
|
|
12
|
+
## Dependencies update
|
|
13
|
+
|
|
14
|
+
- npm-release: @trezor/blockchain-link 2.1.27
|
|
15
|
+
- npm-release: @trezor/connect-common 0.0.30
|
|
16
|
+
- npm-release: @trezor/transport 1.1.26
|
|
17
|
+
- npm-release: @trezor/protobuf 1.0.10
|
|
18
|
+
|
|
1
19
|
# 9.2.0
|
|
2
20
|
|
|
3
21
|
## @trezor/connect-web npm package
|
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# @trezor/connect
|
|
2
2
|
|
|
3
|
-
API version 9.2.
|
|
3
|
+
API version 9.2.1
|
|
4
4
|
|
|
5
5
|
[](https://github.com/trezor/trezor-suite/actions/workflows/connect-test.yml)
|
|
6
6
|
[](https://www.npmjs.org/package/@trezor/connect)
|
|
@@ -8,7 +8,7 @@ export type OutputWithData = {
|
|
|
8
8
|
};
|
|
9
9
|
export declare const OutputValidation: import("@sinclair/typebox").TObject<{
|
|
10
10
|
address: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
11
|
-
amount: import("@trezor/schema-utils/
|
|
11
|
+
amount: import("@trezor/schema-utils/lib/custom-types/uint").TUint;
|
|
12
12
|
tokenBundle: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
|
|
13
13
|
policyId: import("@sinclair/typebox").TString;
|
|
14
14
|
tokenAmounts: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
|
|
@@ -5,8 +5,8 @@ export declare const AssetGroupWithTokens: import("@sinclair/typebox").TObject<{
|
|
|
5
5
|
policyId: import("@sinclair/typebox").TString;
|
|
6
6
|
tokens: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
|
|
7
7
|
asset_name_bytes: import("@sinclair/typebox").TString;
|
|
8
|
-
amount: import("@sinclair/typebox").TOptional<import("@trezor/schema-utils/
|
|
9
|
-
mint_amount: import("@sinclair/typebox").TOptional<import("@trezor/schema-utils/
|
|
8
|
+
amount: import("@sinclair/typebox").TOptional<import("@trezor/schema-utils/lib/custom-types/uint").TUint>;
|
|
9
|
+
mint_amount: import("@sinclair/typebox").TOptional<import("@trezor/schema-utils/lib/custom-types/uint").TUint>;
|
|
10
10
|
}>>;
|
|
11
11
|
}>;
|
|
12
12
|
export declare const tokenBundleToProto: (tokenBundle: CardanoAssetGroup[]) => AssetGroupWithTokens[];
|
|
@@ -12,6 +12,7 @@ export default class EthereumGetPublicKey extends AbstractMethod<'ethereumGetPub
|
|
|
12
12
|
confirmation(): Promise<boolean>;
|
|
13
13
|
run(): Promise<{
|
|
14
14
|
xpubSegwit?: string | undefined;
|
|
15
|
+
descriptorChecksum?: string | undefined;
|
|
15
16
|
path: number[];
|
|
16
17
|
depth: number;
|
|
17
18
|
fingerprint: number;
|
|
@@ -22,6 +23,7 @@ export default class EthereumGetPublicKey extends AbstractMethod<'ethereumGetPub
|
|
|
22
23
|
childNum: number;
|
|
23
24
|
} | {
|
|
24
25
|
xpubSegwit?: string | undefined;
|
|
26
|
+
descriptorChecksum?: string | undefined;
|
|
25
27
|
path: number[];
|
|
26
28
|
depth: number;
|
|
27
29
|
fingerprint: number;
|
|
@@ -21,7 +21,7 @@ declare const Params: import("@sinclair/typebox").TIntersect<[import("@sinclair/
|
|
|
21
21
|
version: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
22
22
|
chainId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TNumber, import("@sinclair/typebox").TBigInt, import("@sinclair/typebox").TString]>>;
|
|
23
23
|
verifyingContract: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
24
|
-
salt: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@trezor/schema-utils/
|
|
24
|
+
salt: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@trezor/schema-utils/lib/custom-types/array-buffer").TArrayBuffer, import("@sinclair/typebox").TString]>>;
|
|
25
25
|
}>;
|
|
26
26
|
message: import("@sinclair/typebox").TObject<{}>;
|
|
27
27
|
}>;
|
|
@@ -42,7 +42,7 @@ declare const Params: import("@sinclair/typebox").TIntersect<[import("@sinclair/
|
|
|
42
42
|
version: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
43
43
|
chainId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TNumber, import("@sinclair/typebox").TBigInt, import("@sinclair/typebox").TString]>>;
|
|
44
44
|
verifyingContract: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
45
|
-
salt: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@trezor/schema-utils/
|
|
45
|
+
salt: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@trezor/schema-utils/lib/custom-types/array-buffer").TArrayBuffer, import("@sinclair/typebox").TString]>>;
|
|
46
46
|
}>;
|
|
47
47
|
message: import("@sinclair/typebox").TObject<{}>;
|
|
48
48
|
}>;
|
|
@@ -83,8 +83,8 @@ declare const Params: import("@sinclair/typebox").TIntersect<[import("@sinclair/
|
|
|
83
83
|
network: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUndefined>;
|
|
84
84
|
}>]>>;
|
|
85
85
|
definitions: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
|
|
86
|
-
encoded_network: import("@sinclair/typebox").TOptional<import("@trezor/schema-utils/
|
|
87
|
-
encoded_token: import("@sinclair/typebox").TOptional<import("@trezor/schema-utils/
|
|
86
|
+
encoded_network: import("@sinclair/typebox").TOptional<import("@trezor/schema-utils/lib/custom-types/array-buffer").TArrayBuffer>;
|
|
87
|
+
encoded_token: import("@sinclair/typebox").TOptional<import("@trezor/schema-utils/lib/custom-types/array-buffer").TArrayBuffer>;
|
|
88
88
|
}>>;
|
|
89
89
|
}>]>;
|
|
90
90
|
export default class EthereumSignTypedData extends AbstractMethod<'ethereumSignTypedData', Params> {
|
|
@@ -54,7 +54,7 @@ export default class GetAccountInfo extends AbstractMethod<'getAccountInfo', Req
|
|
|
54
54
|
ledger: number;
|
|
55
55
|
seq: number;
|
|
56
56
|
} | undefined;
|
|
57
|
-
stakingPools?: import("@trezor/blockchain-link-types
|
|
57
|
+
stakingPools?: import("@trezor/blockchain-link-types").StakingPool[] | undefined;
|
|
58
58
|
path: string;
|
|
59
59
|
}>;
|
|
60
60
|
discover(request: Request): Promise<{
|
|
@@ -96,7 +96,7 @@ export default class GetAccountInfo extends AbstractMethod<'getAccountInfo', Req
|
|
|
96
96
|
ledger: number;
|
|
97
97
|
seq: number;
|
|
98
98
|
} | undefined;
|
|
99
|
-
stakingPools?: import("@trezor/blockchain-link-types
|
|
99
|
+
stakingPools?: import("@trezor/blockchain-link-types").StakingPool[] | undefined;
|
|
100
100
|
path: string;
|
|
101
101
|
}>;
|
|
102
102
|
dispose(): void;
|
|
@@ -171,6 +171,7 @@ class GetAccountInfo extends AbstractMethod_1.AbstractMethod {
|
|
|
171
171
|
const { address_n } = request;
|
|
172
172
|
let { descriptor } = request;
|
|
173
173
|
let legacyXpub;
|
|
174
|
+
let descriptorChecksum;
|
|
174
175
|
if (this.disposed)
|
|
175
176
|
break;
|
|
176
177
|
if (address_n && typeof descriptor !== 'string') {
|
|
@@ -183,6 +184,7 @@ class GetAccountInfo extends AbstractMethod_1.AbstractMethod {
|
|
|
183
184
|
if (accountDescriptor) {
|
|
184
185
|
descriptor = accountDescriptor.descriptor;
|
|
185
186
|
legacyXpub = accountDescriptor.legacyXpub;
|
|
187
|
+
descriptorChecksum = accountDescriptor.descriptorChecksum;
|
|
186
188
|
}
|
|
187
189
|
}
|
|
188
190
|
catch (error) {
|
|
@@ -233,6 +235,7 @@ class GetAccountInfo extends AbstractMethod_1.AbstractMethod {
|
|
|
233
235
|
descriptor,
|
|
234
236
|
legacyXpub,
|
|
235
237
|
utxo,
|
|
238
|
+
descriptorChecksum,
|
|
236
239
|
};
|
|
237
240
|
responses.push(account);
|
|
238
241
|
sendProgress(i, account);
|
package/lib/api/getFeatures.d.ts
CHANGED
|
@@ -11,6 +11,7 @@ export default class GetFeatures extends AbstractMethod<'getFeatures'> {
|
|
|
11
11
|
homescreen_width?: number | undefined;
|
|
12
12
|
homescreen_height?: number | undefined;
|
|
13
13
|
bootloader_locked?: boolean | undefined;
|
|
14
|
+
language_version_matches?: boolean | undefined;
|
|
14
15
|
session_id: string | null;
|
|
15
16
|
vendor: string;
|
|
16
17
|
major_version: number;
|
|
@@ -38,7 +39,7 @@ export default class GetFeatures extends AbstractMethod<'getFeatures'> {
|
|
|
38
39
|
unfinished_backup: boolean | null;
|
|
39
40
|
no_backup: boolean | null;
|
|
40
41
|
recovery_mode: boolean | null;
|
|
41
|
-
capabilities: ("Capability_Bitcoin" | "Capability_Bitcoin_like" | "Capability_Binance" | "Capability_Cardano" | "Capability_Crypto" | "Capability_EOS" | "Capability_Ethereum" | "Capability_Lisk" | "Capability_Monero" | "Capability_NEM" | "Capability_Ripple" | "Capability_Stellar" | "Capability_Tezos" | "Capability_U2F" | "Capability_Shamir" | "Capability_ShamirGroups" | "Capability_PassphraseEntry" | "Capability_Solana")[];
|
|
42
|
+
capabilities: ("Capability_Bitcoin" | "Capability_Bitcoin_like" | "Capability_Binance" | "Capability_Cardano" | "Capability_Crypto" | "Capability_EOS" | "Capability_Ethereum" | "Capability_Lisk" | "Capability_Monero" | "Capability_NEM" | "Capability_Ripple" | "Capability_Stellar" | "Capability_Tezos" | "Capability_U2F" | "Capability_Shamir" | "Capability_ShamirGroups" | "Capability_PassphraseEntry" | "Capability_Solana" | "Capability_Translations")[];
|
|
42
43
|
backup_type: "Bip39" | "Slip39_Basic" | "Slip39_Advanced" | null;
|
|
43
44
|
sd_card_present: boolean | null;
|
|
44
45
|
sd_protection: boolean | null;
|
|
@@ -48,7 +49,7 @@ export default class GetFeatures extends AbstractMethod<'getFeatures'> {
|
|
|
48
49
|
auto_lock_delay_ms: number | null;
|
|
49
50
|
display_rotation: number | null;
|
|
50
51
|
experimental_features: boolean | null;
|
|
51
|
-
internal_model: import("@trezor/protobuf
|
|
52
|
+
internal_model: import("@trezor/protobuf").DeviceModelInternal;
|
|
52
53
|
}>;
|
|
53
54
|
}
|
|
54
55
|
//# sourceMappingURL=getFeatures.d.ts.map
|
|
@@ -15,6 +15,7 @@ export default class GetPublicKey extends AbstractMethod<'getPublicKey', Params[
|
|
|
15
15
|
noBackupConfirmation(allowSuppression?: boolean): Promise<boolean>;
|
|
16
16
|
run(): Promise<{
|
|
17
17
|
xpubSegwit?: string | undefined;
|
|
18
|
+
descriptorChecksum?: string | undefined;
|
|
18
19
|
path: number[];
|
|
19
20
|
depth: number;
|
|
20
21
|
fingerprint: number;
|
|
@@ -25,6 +26,7 @@ export default class GetPublicKey extends AbstractMethod<'getPublicKey', Params[
|
|
|
25
26
|
childNum: number;
|
|
26
27
|
} | {
|
|
27
28
|
xpubSegwit?: string | undefined;
|
|
29
|
+
descriptorChecksum?: string | undefined;
|
|
28
30
|
path: number[];
|
|
29
31
|
depth: number;
|
|
30
32
|
fingerprint: number;
|
|
@@ -15,9 +15,8 @@ export declare class BackendManager {
|
|
|
15
15
|
removeCustom(shortcut: CoinShortcut): void;
|
|
16
16
|
private setInstance;
|
|
17
17
|
private setPreferred;
|
|
18
|
-
private
|
|
18
|
+
private onDisconnect;
|
|
19
19
|
private clearReconnect;
|
|
20
|
-
private onDisconnected;
|
|
21
20
|
private patchCoinInfo;
|
|
22
21
|
}
|
|
23
22
|
export {};
|
|
@@ -24,7 +24,10 @@ class BackendManager {
|
|
|
24
24
|
postMessage,
|
|
25
25
|
debug: DataManager_1.DataManager.getSettings('debug'),
|
|
26
26
|
proxy: DataManager_1.DataManager.getSettings('proxy'),
|
|
27
|
-
onDisconnected:
|
|
27
|
+
onDisconnected: pendingSubscriptions => {
|
|
28
|
+
const reconnectAttempts = pendingSubscriptions ? 0 : undefined;
|
|
29
|
+
this.onDisconnect(coinInfo, postMessage, reconnectAttempts);
|
|
30
|
+
},
|
|
28
31
|
});
|
|
29
32
|
this.setInstance(coinInfo.shortcut, backend);
|
|
30
33
|
}
|
|
@@ -35,11 +38,7 @@ class BackendManager {
|
|
|
35
38
|
return backend;
|
|
36
39
|
}
|
|
37
40
|
catch (error) {
|
|
38
|
-
this.
|
|
39
|
-
this.setPreferred(coinInfo.shortcut, undefined);
|
|
40
|
-
if (reconnect) {
|
|
41
|
-
this.planReconnect(backend.coinInfo, backend.postMessage, reconnect.attempts);
|
|
42
|
-
}
|
|
41
|
+
this.onDisconnect(coinInfo, postMessage, reconnect === null || reconnect === void 0 ? void 0 : reconnect.attempts);
|
|
43
42
|
throw error;
|
|
44
43
|
}
|
|
45
44
|
}
|
|
@@ -79,15 +78,22 @@ class BackendManager {
|
|
|
79
78
|
else
|
|
80
79
|
this.preferred[shortcut] = url;
|
|
81
80
|
}
|
|
82
|
-
|
|
81
|
+
onDisconnect(coinInfo, postMessage, reconnectAttempt) {
|
|
83
82
|
var _a;
|
|
84
|
-
|
|
83
|
+
this.setInstance(coinInfo.shortcut, undefined);
|
|
84
|
+
if (reconnectAttempt === undefined || reconnectAttempt === 4) {
|
|
85
|
+
this.setPreferred(coinInfo.shortcut, undefined);
|
|
86
|
+
}
|
|
87
|
+
if (reconnectAttempt === undefined) {
|
|
88
|
+
return;
|
|
89
|
+
}
|
|
90
|
+
const timeout = Math.min(2500 * reconnectAttempt, 20000);
|
|
85
91
|
const time = Date.now() + timeout;
|
|
86
92
|
const handle = setTimeout(() => {
|
|
87
93
|
this.getOrConnect(coinInfo, postMessage).catch(() => { });
|
|
88
94
|
}, timeout);
|
|
89
95
|
clearTimeout((_a = this.reconnect[coinInfo.shortcut]) === null || _a === void 0 ? void 0 : _a.handle);
|
|
90
|
-
this.reconnect[coinInfo.shortcut] = { attempts:
|
|
96
|
+
this.reconnect[coinInfo.shortcut] = { attempts: reconnectAttempt + 1, handle };
|
|
91
97
|
postMessage((0, events_1.createBlockchainMessage)(events_1.BLOCKCHAIN.RECONNECTING, { coin: coinInfo, time }));
|
|
92
98
|
}
|
|
93
99
|
clearReconnect(shortcut) {
|
|
@@ -96,12 +102,6 @@ class BackendManager {
|
|
|
96
102
|
delete this.reconnect[shortcut];
|
|
97
103
|
return reconnect;
|
|
98
104
|
}
|
|
99
|
-
onDisconnected(backend, pendingSubscriptions) {
|
|
100
|
-
this.setInstance(backend.coinInfo.shortcut, undefined);
|
|
101
|
-
if (pendingSubscriptions) {
|
|
102
|
-
this.planReconnect(backend.coinInfo, backend.postMessage, 0);
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
105
|
patchCoinInfo(coinInfo) {
|
|
106
106
|
var _a, _b;
|
|
107
107
|
const custom = this.custom[coinInfo.shortcut];
|
|
@@ -7,7 +7,7 @@ export type BlockchainOptions = {
|
|
|
7
7
|
postMessage: (message: CoreEventMessage) => void;
|
|
8
8
|
proxy?: Proxy;
|
|
9
9
|
debug?: boolean;
|
|
10
|
-
onDisconnected?: (
|
|
10
|
+
onDisconnected?: (pendingSubscriptions?: boolean) => void;
|
|
11
11
|
};
|
|
12
12
|
export declare class Blockchain {
|
|
13
13
|
link: BlockchainLink;
|
|
@@ -58,7 +58,7 @@ class Blockchain {
|
|
|
58
58
|
error: error.message,
|
|
59
59
|
code: error.code,
|
|
60
60
|
}));
|
|
61
|
-
(_a = this.onDisconnected) === null || _a === void 0 ? void 0 : _a.call(this,
|
|
61
|
+
(_a = this.onDisconnected) === null || _a === void 0 ? void 0 : _a.call(this, !!pendingSubscriptions);
|
|
62
62
|
}
|
|
63
63
|
async initLink() {
|
|
64
64
|
let info;
|
package/lib/data/version.d.ts
CHANGED
package/lib/data/version.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.DEFAULT_DOMAIN = exports.VERSION = void 0;
|
|
4
|
-
exports.VERSION = '9.2.
|
|
4
|
+
exports.VERSION = '9.2.1';
|
|
5
5
|
const versionN = exports.VERSION.split('.').map(s => parseInt(s, 10));
|
|
6
6
|
exports.DEFAULT_DOMAIN = `https://connect.trezor.io/${versionN[0]}/`;
|
|
7
7
|
//# sourceMappingURL=version.js.map
|
|
@@ -32,6 +32,7 @@ export declare class DeviceCommands {
|
|
|
32
32
|
unlockPath(params?: Messages.UnlockPath): Promise<TypedResponseMessage<"UnlockedPathRequest">>;
|
|
33
33
|
getPublicKey(params: Messages.GetPublicKey, unlockPath?: Messages.UnlockPath): Promise<{
|
|
34
34
|
root_fingerprint?: number | undefined;
|
|
35
|
+
descriptor?: string | undefined;
|
|
35
36
|
node: {
|
|
36
37
|
private_key?: string | undefined;
|
|
37
38
|
public_key: string;
|
|
@@ -48,6 +49,7 @@ export declare class DeviceCommands {
|
|
|
48
49
|
unlockPath?: Messages.UnlockPath;
|
|
49
50
|
}): Promise<{
|
|
50
51
|
xpubSegwit?: string | undefined;
|
|
52
|
+
descriptorChecksum?: string | undefined;
|
|
51
53
|
path: number[];
|
|
52
54
|
depth: number;
|
|
53
55
|
fingerprint: number;
|
|
@@ -59,6 +61,7 @@ export declare class DeviceCommands {
|
|
|
59
61
|
}>;
|
|
60
62
|
getBitcoinHDNode(path: number[], coinInfo?: BitcoinNetworkInfo, validation?: boolean): Promise<{
|
|
61
63
|
xpubSegwit?: string | undefined;
|
|
64
|
+
descriptorChecksum?: string | undefined;
|
|
62
65
|
path: number[];
|
|
63
66
|
depth: number;
|
|
64
67
|
fingerprint: number;
|
|
@@ -94,6 +97,7 @@ export declare class DeviceCommands {
|
|
|
94
97
|
descriptor: string;
|
|
95
98
|
legacyXpub?: string;
|
|
96
99
|
address_n: number[];
|
|
100
|
+
descriptorChecksum?: string;
|
|
97
101
|
}>;
|
|
98
102
|
cancel(): Promise<void>;
|
|
99
103
|
}
|
|
@@ -13,6 +13,7 @@ const accountUtils_1 = require("../utils/accountUtils");
|
|
|
13
13
|
const coinInfo_1 = require("../data/coinInfo");
|
|
14
14
|
const debug_1 = require("../utils/debug");
|
|
15
15
|
const schema_utils_1 = require("@trezor/schema-utils");
|
|
16
|
+
const resolveDescriptorForTaproot_1 = require("./resolveDescriptorForTaproot");
|
|
16
17
|
const logger = (0, debug_1.initLog)('DeviceCommands');
|
|
17
18
|
const assertType = (res, resType) => {
|
|
18
19
|
const splitResTypes = Array.isArray(resType) ? resType : resType.split('|');
|
|
@@ -115,11 +116,12 @@ class DeviceCommands {
|
|
|
115
116
|
response.xpub = hdnodeUtils.convertXpub(publicKey.xpub, network, coinInfo.network);
|
|
116
117
|
}
|
|
117
118
|
if ((0, pathUtils_1.isTaprootPath)(path)) {
|
|
118
|
-
const
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
response.xpubSegwit =
|
|
119
|
+
const { checksum, xpub: xpubSegwit } = (0, resolveDescriptorForTaproot_1.resolveDescriptorForTaproot)({
|
|
120
|
+
response,
|
|
121
|
+
publicKey,
|
|
122
|
+
});
|
|
123
|
+
response.xpubSegwit = xpubSegwit;
|
|
124
|
+
response.descriptorChecksum = checksum;
|
|
123
125
|
}
|
|
124
126
|
return response;
|
|
125
127
|
}
|
|
@@ -453,6 +455,7 @@ class DeviceCommands {
|
|
|
453
455
|
descriptor: resp.xpubSegwit || resp.xpub,
|
|
454
456
|
legacyXpub: resp.xpub,
|
|
455
457
|
address_n,
|
|
458
|
+
descriptorChecksum: resp.descriptorChecksum,
|
|
456
459
|
};
|
|
457
460
|
}
|
|
458
461
|
if (coinInfo.type === 'ethereum') {
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { HDNodeResponse } from '../types/api/getPublicKey';
|
|
2
|
+
import { MessagesSchema as Messages } from '@trezor/protobuf';
|
|
3
|
+
interface Params {
|
|
4
|
+
response: HDNodeResponse;
|
|
5
|
+
publicKey: Messages.PublicKey;
|
|
6
|
+
}
|
|
7
|
+
export declare const resolveDescriptorForTaproot: ({ response, publicKey }: Params) => {
|
|
8
|
+
xpub: string;
|
|
9
|
+
checksum: string;
|
|
10
|
+
} | {
|
|
11
|
+
xpub: string;
|
|
12
|
+
checksum: undefined;
|
|
13
|
+
};
|
|
14
|
+
export {};
|
|
15
|
+
//# sourceMappingURL=resolveDescriptorForTaproot.d.ts.map
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.resolveDescriptorForTaproot = void 0;
|
|
4
|
+
const resolveDescriptorForTaproot = ({ response, publicKey }) => {
|
|
5
|
+
if (publicKey.descriptor !== null && publicKey.descriptor !== undefined) {
|
|
6
|
+
const [xpub, checksum] = publicKey.descriptor.split('#');
|
|
7
|
+
return {
|
|
8
|
+
xpub: xpub
|
|
9
|
+
.replace(/h\//g, "'/")
|
|
10
|
+
.replace(/h]/g, "']"),
|
|
11
|
+
checksum,
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
else {
|
|
15
|
+
const fingerprint = Number(publicKey.root_fingerprint || 0)
|
|
16
|
+
.toString(16)
|
|
17
|
+
.padStart(8, '0');
|
|
18
|
+
const descriptorPath = `${fingerprint}${response.serializedPath.substring(1)}`;
|
|
19
|
+
return {
|
|
20
|
+
xpub: `tr([${descriptorPath}]${response.xpub}/<0;1>/*)`,
|
|
21
|
+
checksum: undefined,
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
exports.resolveDescriptorForTaproot = resolveDescriptorForTaproot;
|
|
26
|
+
//# sourceMappingURL=resolveDescriptorForTaproot.js.map
|
package/lib/types/account.d.ts
CHANGED
|
@@ -5,6 +5,7 @@ export interface AccountInfo extends AccountInfoBase {
|
|
|
5
5
|
path?: string;
|
|
6
6
|
legacyXpub?: string;
|
|
7
7
|
utxo?: AccountUtxo[];
|
|
8
|
+
descriptorChecksum?: string;
|
|
8
9
|
}
|
|
9
10
|
export interface DiscoveryAccount {
|
|
10
11
|
type: DiscoveryAccountType;
|
|
@@ -14,5 +15,6 @@ export interface DiscoveryAccount {
|
|
|
14
15
|
empty?: boolean;
|
|
15
16
|
balance?: string;
|
|
16
17
|
addresses?: AccountAddresses;
|
|
18
|
+
descriptorChecksum?: string;
|
|
17
19
|
}
|
|
18
20
|
//# sourceMappingURL=account.d.ts.map
|
|
@@ -6,7 +6,7 @@ export declare const ApplySettings: import("@sinclair/typebox").TObject<{
|
|
|
6
6
|
language: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
7
7
|
label: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
8
8
|
passphrase_always_on_device: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
|
|
9
|
-
safety_checks: import("@sinclair/typebox").TOptional<import("@trezor/schema-utils/
|
|
9
|
+
safety_checks: import("@sinclair/typebox").TOptional<import("@trezor/schema-utils/lib/custom-types/keyof-enum").TKeyOfEnum<typeof PROTO.Enum_SafetyCheckLevel>>;
|
|
10
10
|
auto_lock_delay_ms: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
|
|
11
11
|
display_rotation: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
|
|
12
12
|
experimental_features: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
|
|
@@ -11,14 +11,14 @@ export declare const BinanceSDKTransaction: import("@sinclair/typebox").TObject<
|
|
|
11
11
|
inputs: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
|
|
12
12
|
address: import("@sinclair/typebox").TString;
|
|
13
13
|
coins: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
|
|
14
|
-
amount: import("@trezor/schema-utils/
|
|
14
|
+
amount: import("@trezor/schema-utils/lib/custom-types/uint").TUint;
|
|
15
15
|
denom: import("@sinclair/typebox").TString;
|
|
16
16
|
}>>;
|
|
17
17
|
}>>;
|
|
18
18
|
outputs: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
|
|
19
19
|
address: import("@sinclair/typebox").TString;
|
|
20
20
|
coins: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
|
|
21
|
-
amount: import("@trezor/schema-utils/
|
|
21
|
+
amount: import("@trezor/schema-utils/lib/custom-types/uint").TUint;
|
|
22
22
|
denom: import("@sinclair/typebox").TString;
|
|
23
23
|
}>>;
|
|
24
24
|
}>>;
|
|
@@ -45,14 +45,14 @@ export declare const BinancePreparedMessage: import("@sinclair/typebox").TUnion<
|
|
|
45
45
|
inputs: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
|
|
46
46
|
address: import("@sinclair/typebox").TString;
|
|
47
47
|
coins: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
|
|
48
|
-
amount: import("@trezor/schema-utils/
|
|
48
|
+
amount: import("@trezor/schema-utils/lib/custom-types/uint").TUint;
|
|
49
49
|
denom: import("@sinclair/typebox").TString;
|
|
50
50
|
}>>;
|
|
51
51
|
}>>;
|
|
52
52
|
outputs: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
|
|
53
53
|
address: import("@sinclair/typebox").TString;
|
|
54
54
|
coins: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
|
|
55
|
-
amount: import("@trezor/schema-utils/
|
|
55
|
+
amount: import("@trezor/schema-utils/lib/custom-types/uint").TUint;
|
|
56
56
|
denom: import("@sinclair/typebox").TString;
|
|
57
57
|
}>>;
|
|
58
58
|
}>>;
|
|
@@ -88,14 +88,14 @@ export declare const BinancePreparedTransaction: import("@sinclair/typebox").TIn
|
|
|
88
88
|
inputs: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
|
|
89
89
|
address: import("@sinclair/typebox").TString;
|
|
90
90
|
coins: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
|
|
91
|
-
amount: import("@trezor/schema-utils/
|
|
91
|
+
amount: import("@trezor/schema-utils/lib/custom-types/uint").TUint;
|
|
92
92
|
denom: import("@sinclair/typebox").TString;
|
|
93
93
|
}>>;
|
|
94
94
|
}>>;
|
|
95
95
|
outputs: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
|
|
96
96
|
address: import("@sinclair/typebox").TString;
|
|
97
97
|
coins: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
|
|
98
|
-
amount: import("@trezor/schema-utils/
|
|
98
|
+
amount: import("@trezor/schema-utils/lib/custom-types/uint").TUint;
|
|
99
99
|
denom: import("@sinclair/typebox").TString;
|
|
100
100
|
}>>;
|
|
101
101
|
}>>;
|
|
@@ -121,14 +121,14 @@ export declare const BinancePreparedTransaction: import("@sinclair/typebox").TIn
|
|
|
121
121
|
inputs: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
|
|
122
122
|
address: import("@sinclair/typebox").TString;
|
|
123
123
|
coins: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
|
|
124
|
-
amount: import("@trezor/schema-utils/
|
|
124
|
+
amount: import("@trezor/schema-utils/lib/custom-types/uint").TUint;
|
|
125
125
|
denom: import("@sinclair/typebox").TString;
|
|
126
126
|
}>>;
|
|
127
127
|
}>>;
|
|
128
128
|
outputs: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
|
|
129
129
|
address: import("@sinclair/typebox").TString;
|
|
130
130
|
coins: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
|
|
131
|
-
amount: import("@trezor/schema-utils/
|
|
131
|
+
amount: import("@trezor/schema-utils/lib/custom-types/uint").TUint;
|
|
132
132
|
denom: import("@sinclair/typebox").TString;
|
|
133
133
|
}>>;
|
|
134
134
|
}>>;
|
|
@@ -170,14 +170,14 @@ export declare const BinanceSignTransaction: import("@sinclair/typebox").TObject
|
|
|
170
170
|
inputs: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
|
|
171
171
|
address: import("@sinclair/typebox").TString;
|
|
172
172
|
coins: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
|
|
173
|
-
amount: import("@trezor/schema-utils/
|
|
173
|
+
amount: import("@trezor/schema-utils/lib/custom-types/uint").TUint;
|
|
174
174
|
denom: import("@sinclair/typebox").TString;
|
|
175
175
|
}>>;
|
|
176
176
|
}>>;
|
|
177
177
|
outputs: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
|
|
178
178
|
address: import("@sinclair/typebox").TString;
|
|
179
179
|
coins: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
|
|
180
|
-
amount: import("@trezor/schema-utils/
|
|
180
|
+
amount: import("@trezor/schema-utils/lib/custom-types/uint").TUint;
|
|
181
181
|
denom: import("@sinclair/typebox").TString;
|
|
182
182
|
}>>;
|
|
183
183
|
}>>;
|
|
@@ -358,8 +358,8 @@ export declare const CardanoSignTransaction: import("@sinclair/typebox").TObject
|
|
|
358
358
|
inlineDatum: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
359
359
|
referenceScript: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
360
360
|
}>]>>;
|
|
361
|
-
fee: import("@trezor/schema-utils/
|
|
362
|
-
ttl: import("@sinclair/typebox").TOptional<import("@trezor/schema-utils/
|
|
361
|
+
fee: import("@trezor/schema-utils/lib/custom-types/uint").TUint;
|
|
362
|
+
ttl: import("@sinclair/typebox").TOptional<import("@trezor/schema-utils/lib/custom-types/uint").TUint>;
|
|
363
363
|
certificates: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
|
|
364
364
|
type: import("@sinclair/typebox").TEnum<typeof PROTO.CardanoCertificateType>;
|
|
365
365
|
path: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TArray<import("@sinclair/typebox").TNumber>]>>;
|
|
@@ -528,8 +528,8 @@ export declare const CardanoSignTransactionExtended: import("@sinclair/typebox")
|
|
|
528
528
|
inlineDatum: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
529
529
|
referenceScript: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
530
530
|
}>]>>;
|
|
531
|
-
fee: import("@trezor/schema-utils/
|
|
532
|
-
ttl: import("@sinclair/typebox").TOptional<import("@trezor/schema-utils/
|
|
531
|
+
fee: import("@trezor/schema-utils/lib/custom-types/uint").TUint;
|
|
532
|
+
ttl: import("@sinclair/typebox").TOptional<import("@trezor/schema-utils/lib/custom-types/uint").TUint>;
|
|
533
533
|
certificates: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
|
|
534
534
|
type: import("@sinclair/typebox").TEnum<typeof PROTO.CardanoCertificateType>;
|
|
535
535
|
path: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TArray<import("@sinclair/typebox").TNumber>]>>;
|
|
@@ -7,7 +7,7 @@ export declare const ChangeLanguage: import("@sinclair/typebox").TUnion<[import(
|
|
|
7
7
|
language: import("@sinclair/typebox").TString;
|
|
8
8
|
baseUrl: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
9
9
|
}>, import("@sinclair/typebox").TObject<{
|
|
10
|
-
binary: import("@trezor/schema-utils/
|
|
10
|
+
binary: import("@trezor/schema-utils/lib/custom-types/array-buffer").TArrayBuffer;
|
|
11
11
|
language: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUndefined>;
|
|
12
12
|
baseUrl: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUndefined>;
|
|
13
13
|
}>]>;
|
|
@@ -4,11 +4,11 @@ export type CipherKeyValue = Static<typeof CipherKeyValue>;
|
|
|
4
4
|
export declare const CipherKeyValue: import("@sinclair/typebox").TObject<{
|
|
5
5
|
path: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TArray<import("@sinclair/typebox").TNumber>]>;
|
|
6
6
|
key: import("@sinclair/typebox").TString;
|
|
7
|
-
value: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@trezor/schema-utils/
|
|
7
|
+
value: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@trezor/schema-utils/lib/custom-types/buffer").TBuffer]>;
|
|
8
8
|
encrypt: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
|
|
9
9
|
askOnEncrypt: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
|
|
10
10
|
askOnDecrypt: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
|
|
11
|
-
iv: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@trezor/schema-utils/
|
|
11
|
+
iv: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@trezor/schema-utils/lib/custom-types/buffer").TBuffer]>>;
|
|
12
12
|
}>;
|
|
13
13
|
export interface CipheredValue {
|
|
14
14
|
value: string;
|
|
@@ -8,7 +8,7 @@ export declare const EosPublicKey: import("@sinclair/typebox").TObject<{
|
|
|
8
8
|
}>;
|
|
9
9
|
export type EosTxHeader = Static<typeof EosTxHeader>;
|
|
10
10
|
export declare const EosTxHeader: import("@sinclair/typebox").TObject<{
|
|
11
|
-
expiration: import("@sinclair/typebox").TUnion<[import("@trezor/schema-utils/
|
|
11
|
+
expiration: import("@sinclair/typebox").TUnion<[import("@trezor/schema-utils/lib/custom-types/uint").TUint, import("@sinclair/typebox").TString]>;
|
|
12
12
|
refBlockNum: import("@sinclair/typebox").TNumber;
|
|
13
13
|
refBlockPrefix: import("@sinclair/typebox").TNumber;
|
|
14
14
|
maxNetUsageWords: import("@sinclair/typebox").TNumber;
|
|
@@ -279,7 +279,7 @@ export type EosSDKTransaction = Static<typeof EosSDKTransaction>;
|
|
|
279
279
|
export declare const EosSDKTransaction: import("@sinclair/typebox").TObject<{
|
|
280
280
|
chainId: import("@sinclair/typebox").TString;
|
|
281
281
|
header: import("@sinclair/typebox").TObject<{
|
|
282
|
-
expiration: import("@sinclair/typebox").TUnion<[import("@trezor/schema-utils/
|
|
282
|
+
expiration: import("@sinclair/typebox").TUnion<[import("@trezor/schema-utils/lib/custom-types/uint").TUint, import("@sinclair/typebox").TString]>;
|
|
283
283
|
refBlockNum: import("@sinclair/typebox").TNumber;
|
|
284
284
|
refBlockPrefix: import("@sinclair/typebox").TNumber;
|
|
285
285
|
maxNetUsageWords: import("@sinclair/typebox").TNumber;
|
|
@@ -532,7 +532,7 @@ export declare const EosSignTransaction: import("@sinclair/typebox").TObject<{
|
|
|
532
532
|
transaction: import("@sinclair/typebox").TObject<{
|
|
533
533
|
chainId: import("@sinclair/typebox").TString;
|
|
534
534
|
header: import("@sinclair/typebox").TObject<{
|
|
535
|
-
expiration: import("@sinclair/typebox").TUnion<[import("@trezor/schema-utils/
|
|
535
|
+
expiration: import("@sinclair/typebox").TUnion<[import("@trezor/schema-utils/lib/custom-types/uint").TUint, import("@sinclair/typebox").TString]>;
|
|
536
536
|
refBlockNum: import("@sinclair/typebox").TNumber;
|
|
537
537
|
refBlockPrefix: import("@sinclair/typebox").TNumber;
|
|
538
538
|
maxNetUsageWords: import("@sinclair/typebox").TNumber;
|