@cardano-sdk/hardware-trezor 0.7.25 → 0.7.27
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/README.md +355 -0
- package/dist/cjs/TrezorKeyAgent.d.ts +4 -2
- package/dist/cjs/TrezorKeyAgent.d.ts.map +1 -1
- package/dist/cjs/TrezorKeyAgent.js +32 -5
- package/dist/cjs/TrezorKeyAgent.js.map +1 -1
- package/dist/cjs/tsconfig.tsbuildinfo +1 -1
- package/dist/esm/TrezorKeyAgent.d.ts +4 -2
- package/dist/esm/TrezorKeyAgent.d.ts.map +1 -1
- package/dist/esm/TrezorKeyAgent.js +32 -5
- package/dist/esm/TrezorKeyAgent.js.map +1 -1
- package/dist/esm/tsconfig.tsbuildinfo +1 -1
- package/package.json +4 -4
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as Crypto from '@cardano-sdk/crypto';
|
|
2
2
|
import * as Trezor from '@trezor/connect';
|
|
3
3
|
import { Cardano, Serialization } from '@cardano-sdk/core';
|
|
4
|
-
import { CommunicationType, KeyAgentBase, KeyAgentDependencies, KeyPurpose, SerializableTrezorKeyAgentData, SignBlobResult, SignTransactionContext, TrezorConfig } from '@cardano-sdk/key-management';
|
|
4
|
+
import { CommunicationType, KeyAgentBase, KeyAgentDependencies, KeyPurpose, MasterKeyGeneration, SerializableTrezorKeyAgentData, SignBlobResult, SignTransactionContext, TrezorConfig } from '@cardano-sdk/key-management';
|
|
5
5
|
import { Cip30DataSignature } from '@cardano-sdk/dapp-connector';
|
|
6
6
|
declare const TrezorConnectNode: Trezor.TrezorConnect;
|
|
7
7
|
declare const TrezorConnectWeb: Trezor.TrezorConnect;
|
|
@@ -12,6 +12,7 @@ export interface GetTrezorXpubProps {
|
|
|
12
12
|
accountIndex: number;
|
|
13
13
|
communicationType: CommunicationType;
|
|
14
14
|
purpose: KeyPurpose;
|
|
15
|
+
derivationType?: MasterKeyGeneration;
|
|
15
16
|
}
|
|
16
17
|
export interface CreateTrezorKeyAgentProps {
|
|
17
18
|
chainId: Cardano.ChainId;
|
|
@@ -24,9 +25,10 @@ export declare class TrezorKeyAgent extends KeyAgentBase {
|
|
|
24
25
|
#private;
|
|
25
26
|
readonly isTrezorInitialized: Promise<boolean>;
|
|
26
27
|
constructor({ isTrezorInitialized, ...serializableData }: TrezorKeyAgentProps, dependencies: KeyAgentDependencies);
|
|
28
|
+
get trezorConfig(): TrezorConfig;
|
|
27
29
|
static initializeTrezorTransport({ manifest, communicationType, silentMode, lazyLoad, shouldHandlePassphrase }: TrezorConfig): Promise<boolean>;
|
|
28
30
|
static checkDeviceConnection(communicationType: CommunicationType): Promise<Trezor.Features>;
|
|
29
|
-
static getXpub({ accountIndex, communicationType, purpose }: GetTrezorXpubProps): Promise<Crypto.Bip32PublicKeyHex>;
|
|
31
|
+
static getXpub({ accountIndex, communicationType, purpose, derivationType }: GetTrezorXpubProps): Promise<Crypto.Bip32PublicKeyHex>;
|
|
30
32
|
static createWithDevice({ chainId, accountIndex, trezorConfig, purpose }: CreateTrezorKeyAgentProps, dependencies: KeyAgentDependencies): Promise<TrezorKeyAgent>;
|
|
31
33
|
static matchSigningMode(tx: Omit<Trezor.CardanoSignTransaction, 'signingMode'>): Trezor.PROTO.CardanoTxSigningMode;
|
|
32
34
|
signTransaction(txBody: Serialization.TransactionBody, { knownAddresses, txInKeyPathMap, scripts }: SignTransactionContext): Promise<Cardano.Signatures>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TrezorKeyAgent.d.ts","sourceRoot":"","sources":["../../src/TrezorKeyAgent.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,MAAM,qBAAqB,CAAC;AAC9C,OAAO,KAAK,MAAM,MAAM,iBAAiB,CAAC;AAE1C,OAAO,EAAE,OAAO,EAAuB,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAChF,OAAO,EAEL,iBAAiB,EACjB,YAAY,EACZ,oBAAoB,EAEpB,UAAU,EAEV,8BAA8B,EAC9B,cAAc,EACd,sBAAsB,EACtB,YAAY,EAGb,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAKjE,QAAA,MAAM,iBAAiB,sBAAiB,CAAC;AACzC,QAAA,MAAM,gBAAgB,sBAED,CAAC;AAQtB,MAAM,WAAW,mBAAoB,SAAQ,IAAI,CAAC,8BAA8B,EAAE,YAAY,CAAC;IAC7F,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED,MAAM,WAAW,kBAAkB;IACjC,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,OAAO,EAAE,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"TrezorKeyAgent.d.ts","sourceRoot":"","sources":["../../src/TrezorKeyAgent.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,MAAM,qBAAqB,CAAC;AAC9C,OAAO,KAAK,MAAM,MAAM,iBAAiB,CAAC;AAE1C,OAAO,EAAE,OAAO,EAAuB,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAChF,OAAO,EAEL,iBAAiB,EACjB,YAAY,EACZ,oBAAoB,EAEpB,UAAU,EAEV,mBAAmB,EACnB,8BAA8B,EAC9B,cAAc,EACd,sBAAsB,EACtB,YAAY,EAGb,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAKjE,QAAA,MAAM,iBAAiB,sBAAiB,CAAC;AACzC,QAAA,MAAM,gBAAgB,sBAED,CAAC;AAQtB,MAAM,WAAW,mBAAoB,SAAQ,IAAI,CAAC,8BAA8B,EAAE,YAAY,CAAC;IAC7F,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED,MAAM,WAAW,kBAAkB;IACjC,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,OAAO,EAAE,UAAU,CAAC;IACpB,cAAc,CAAC,EAAE,mBAAmB,CAAC;CACtC;AAED,MAAM,WAAW,yBAAyB;IACxC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,YAAY,CAAC;IAC3B,OAAO,CAAC,EAAE,UAAU,CAAC;CACtB;AAED,oBAAY,yBAAyB,GAAG,OAAO,iBAAiB,GAAG,OAAO,gBAAgB,CAAC;AAqD3F,qBAAa,cAAe,SAAQ,YAAY;;IAC9C,QAAQ,CAAC,mBAAmB,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;gBAInC,EAAE,mBAAmB,EAAE,GAAG,gBAAgB,EAAE,EAAE,mBAAmB,EAAE,YAAY,EAAE,oBAAoB;IASjH,IAAI,YAAY,IAAI,YAAY,CAE/B;WAEY,yBAAyB,CAAC,EACrC,QAAQ,EACR,iBAAiB,EACjB,UAAkB,EAClB,QAAgB,EAChB,sBAA8B,EAC/B,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC;WAuCrB,qBAAqB,CAAC,iBAAiB,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC;WAarF,OAAO,CAAC,EACnB,YAAY,EACZ,iBAAiB,EACjB,OAAO,EACP,cAAc,EACf,EAAE,kBAAkB,GAAG,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAC;WAuB5C,gBAAgB,CAC3B,EAAE,OAAO,EAAE,YAAgB,EAAE,YAAY,EAAE,OAA6B,EAAE,EAAE,yBAAyB,EACrG,YAAY,EAAE,oBAAoB;IA2BpC,MAAM,CAAC,gBAAgB,CAAC,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,sBAAsB,EAAE,aAAa,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,oBAAoB;IA2B5G,eAAe,CACnB,MAAM,EAAE,aAAa,CAAC,eAAe,EACrC,EAAE,cAAc,EAAE,cAAc,EAAE,OAAO,EAAE,EAAE,sBAAsB,GAClE,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC;IA8ExB,QAAQ,IAAI,OAAO,CAAC,cAAc,CAAC;IAInC,YAAY,IAAI,OAAO,CAAC,kBAAkB,CAAC;IAI3C,oBAAoB,IAAI,OAAO,CAAC,MAAM,CAAC,kBAAkB,CAAC;CAGjE"}
|
|
@@ -9,7 +9,7 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
|
|
|
9
9
|
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
10
10
|
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
11
11
|
};
|
|
12
|
-
var _TrezorKeyAgent_communicationType;
|
|
12
|
+
var _TrezorKeyAgent_communicationType, _TrezorKeyAgent_trezorConfig;
|
|
13
13
|
import * as Crypto from '@cardano-sdk/crypto';
|
|
14
14
|
import * as Trezor from '@trezor/connect';
|
|
15
15
|
import { NotImplementedError } from '@cardano-sdk/core';
|
|
@@ -23,6 +23,18 @@ const TrezorConnectWeb = _TrezorConnectWeb.default
|
|
|
23
23
|
: _TrezorConnectWeb;
|
|
24
24
|
const transportTypedError = (error) => new errors.AuthenticationError('Trezor transport failed', new errors.TransportError('Trezor transport failed', error));
|
|
25
25
|
const getTrezorConnect = (communicationType) => communicationType === CommunicationType.Node ? TrezorConnectNode : TrezorConnectWeb;
|
|
26
|
+
const mapDerivationType = (derivationType) => {
|
|
27
|
+
switch (derivationType) {
|
|
28
|
+
case 'ICARUS':
|
|
29
|
+
return Trezor.PROTO.CardanoDerivationType.ICARUS;
|
|
30
|
+
case 'ICARUS_TREZOR':
|
|
31
|
+
return Trezor.PROTO.CardanoDerivationType.ICARUS_TREZOR;
|
|
32
|
+
case 'LEDGER':
|
|
33
|
+
return Trezor.PROTO.CardanoDerivationType.LEDGER;
|
|
34
|
+
default:
|
|
35
|
+
throw new Error(`Unsupported derivation type: ${derivationType}`);
|
|
36
|
+
}
|
|
37
|
+
};
|
|
26
38
|
const stakeCredentialCert = (certificateType) => certificateType === Trezor.PROTO.CardanoCertificateType.STAKE_REGISTRATION ||
|
|
27
39
|
certificateType === Trezor.PROTO.CardanoCertificateType.STAKE_DEREGISTRATION ||
|
|
28
40
|
certificateType === Trezor.PROTO.CardanoCertificateType.STAKE_DELEGATION;
|
|
@@ -53,10 +65,15 @@ export class TrezorKeyAgent extends KeyAgentBase {
|
|
|
53
65
|
constructor({ isTrezorInitialized, ...serializableData }, dependencies) {
|
|
54
66
|
super({ ...serializableData, __typename: KeyAgentType.Trezor }, dependencies);
|
|
55
67
|
_TrezorKeyAgent_communicationType.set(this, void 0);
|
|
68
|
+
_TrezorKeyAgent_trezorConfig.set(this, void 0);
|
|
56
69
|
if (!isTrezorInitialized) {
|
|
57
70
|
this.isTrezorInitialized = TrezorKeyAgent.initializeTrezorTransport(serializableData.trezorConfig);
|
|
58
71
|
}
|
|
59
72
|
__classPrivateFieldSet(this, _TrezorKeyAgent_communicationType, serializableData.trezorConfig.communicationType, "f");
|
|
73
|
+
__classPrivateFieldSet(this, _TrezorKeyAgent_trezorConfig, serializableData.trezorConfig, "f");
|
|
74
|
+
}
|
|
75
|
+
get trezorConfig() {
|
|
76
|
+
return __classPrivateFieldGet(this, _TrezorKeyAgent_trezorConfig, "f");
|
|
60
77
|
}
|
|
61
78
|
static async initializeTrezorTransport({ manifest, communicationType, silentMode = false, lazyLoad = false, shouldHandlePassphrase = false }) {
|
|
62
79
|
const trezorConnect = getTrezorConnect(communicationType);
|
|
@@ -101,14 +118,18 @@ export class TrezorKeyAgent extends KeyAgentBase {
|
|
|
101
118
|
throw transportTypedError(error);
|
|
102
119
|
}
|
|
103
120
|
}
|
|
104
|
-
static async getXpub({ accountIndex, communicationType, purpose }) {
|
|
121
|
+
static async getXpub({ accountIndex, communicationType, purpose, derivationType }) {
|
|
105
122
|
try {
|
|
106
123
|
await TrezorKeyAgent.checkDeviceConnection(communicationType);
|
|
107
124
|
const derivationPath = `m/${purpose}'/${CardanoKeyConst.COIN_TYPE}'/${accountIndex}'`;
|
|
108
125
|
const trezorConnect = getTrezorConnect(communicationType);
|
|
126
|
+
const trezorDerivationType = derivationType ? mapDerivationType(derivationType) : undefined;
|
|
109
127
|
const extendedPublicKey = await trezorConnect.cardanoGetPublicKey({
|
|
110
128
|
path: derivationPath,
|
|
111
|
-
showOnTrezor: true
|
|
129
|
+
showOnTrezor: true,
|
|
130
|
+
...(derivationType && {
|
|
131
|
+
derivationType: trezorDerivationType
|
|
132
|
+
})
|
|
112
133
|
});
|
|
113
134
|
if (!extendedPublicKey.success) {
|
|
114
135
|
throw new errors.TransportError('Failed to export extended account public key', extendedPublicKey.payload);
|
|
@@ -124,6 +145,7 @@ export class TrezorKeyAgent extends KeyAgentBase {
|
|
|
124
145
|
const extendedAccountPublicKey = await TrezorKeyAgent.getXpub({
|
|
125
146
|
accountIndex,
|
|
126
147
|
communicationType: trezorConfig.communicationType,
|
|
148
|
+
derivationType: trezorConfig.derivationType,
|
|
127
149
|
purpose
|
|
128
150
|
});
|
|
129
151
|
return new TrezorKeyAgent({
|
|
@@ -180,7 +202,12 @@ export class TrezorKeyAgent extends KeyAgentBase {
|
|
|
180
202
|
...(signingMode === Trezor.PROTO.CardanoTxSigningMode.MULTISIG_TRANSACTION && {
|
|
181
203
|
additionalWitnessRequests: multiSigWitnessPaths
|
|
182
204
|
}),
|
|
183
|
-
signingMode
|
|
205
|
+
signingMode,
|
|
206
|
+
...(this.trezorConfig.derivationType
|
|
207
|
+
? {
|
|
208
|
+
derivationType: mapDerivationType(this.trezorConfig.derivationType)
|
|
209
|
+
}
|
|
210
|
+
: {})
|
|
184
211
|
});
|
|
185
212
|
const expectedPublicKeys = await Promise.all(util
|
|
186
213
|
.ownSignatureKeyPaths(body, knownAddresses, txInKeyPathMap, undefined, scripts)
|
|
@@ -217,5 +244,5 @@ export class TrezorKeyAgent extends KeyAgentBase {
|
|
|
217
244
|
throw new NotImplementedError('Operation not supported!');
|
|
218
245
|
}
|
|
219
246
|
}
|
|
220
|
-
_TrezorKeyAgent_communicationType = new WeakMap();
|
|
247
|
+
_TrezorKeyAgent_communicationType = new WeakMap(), _TrezorKeyAgent_trezorConfig = new WeakMap();
|
|
221
248
|
//# sourceMappingURL=TrezorKeyAgent.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TrezorKeyAgent.js","sourceRoot":"","sources":["../../src/TrezorKeyAgent.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,OAAO,KAAK,MAAM,MAAM,qBAAqB,CAAC;AAC9C,OAAO,KAAK,MAAM,MAAM,iBAAiB,CAAC;AAE1C,OAAO,EAAW,mBAAmB,EAAiB,MAAM,mBAAmB,CAAC;AAChF,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,YAAY,EAEZ,YAAY,EACZ,UAAU,EACV,OAAO,
|
|
1
|
+
{"version":3,"file":"TrezorKeyAgent.js","sourceRoot":"","sources":["../../src/TrezorKeyAgent.ts"],"names":[],"mappings":"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"}
|