@cardano-sdk/key-management 0.10.2 → 0.11.0
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/dist/cjs/TrezorKeyAgent.d.ts +5 -8
- package/dist/cjs/TrezorKeyAgent.d.ts.map +1 -1
- package/dist/cjs/TrezorKeyAgent.js +10 -150
- package/dist/cjs/TrezorKeyAgent.js.map +1 -1
- package/dist/cjs/cip8/cip30signData.d.ts +1 -1
- package/dist/cjs/cip8/cip30signData.d.ts.map +1 -1
- package/dist/cjs/cip8/cip30signData.js +6 -0
- package/dist/cjs/cip8/cip30signData.js.map +1 -1
- package/dist/cjs/tsconfig.tsbuildinfo +1 -1
- package/dist/cjs/util/index.d.ts +0 -1
- package/dist/cjs/util/index.d.ts.map +1 -1
- package/dist/cjs/util/index.js +0 -1
- package/dist/cjs/util/index.js.map +1 -1
- package/dist/esm/TrezorKeyAgent.d.ts +5 -8
- package/dist/esm/TrezorKeyAgent.d.ts.map +1 -1
- package/dist/esm/TrezorKeyAgent.js +11 -125
- package/dist/esm/TrezorKeyAgent.js.map +1 -1
- package/dist/esm/cip8/cip30signData.d.ts +1 -1
- package/dist/esm/cip8/cip30signData.d.ts.map +1 -1
- package/dist/esm/cip8/cip30signData.js +7 -1
- package/dist/esm/cip8/cip30signData.js.map +1 -1
- package/dist/esm/tsconfig.tsbuildinfo +1 -1
- package/dist/esm/util/index.d.ts +0 -1
- package/dist/esm/util/index.d.ts.map +1 -1
- package/dist/esm/util/index.js +0 -1
- package/dist/esm/util/index.js.map +1 -1
- package/package.json +7 -7
- package/dist/cjs/util/mapHardwareSigningData.d.ts +0 -37
- package/dist/cjs/util/mapHardwareSigningData.d.ts.map +0 -1
- package/dist/cjs/util/mapHardwareSigningData.js +0 -885
- package/dist/cjs/util/mapHardwareSigningData.js.map +0 -1
- package/dist/esm/util/mapHardwareSigningData.d.ts +0 -37
- package/dist/esm/util/mapHardwareSigningData.d.ts.map +0 -1
- package/dist/esm/util/mapHardwareSigningData.js +0 -854
- package/dist/esm/util/mapHardwareSigningData.js.map +0 -1
package/dist/cjs/util/index.d.ts
CHANGED
|
@@ -3,7 +3,6 @@ export * from './createAsyncKeyAgent';
|
|
|
3
3
|
export * from './key';
|
|
4
4
|
export * from './ownSignatureKeyPaths';
|
|
5
5
|
export * from './stubSignTransaction';
|
|
6
|
-
export * from './mapHardwareSigningData';
|
|
7
6
|
export * from './KeyAgentTransactionSigner';
|
|
8
7
|
export * from './ensureStakeKeys';
|
|
9
8
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/util/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,uBAAuB,CAAC;AACtC,cAAc,OAAO,CAAC;AACtB,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/util/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,uBAAuB,CAAC;AACtC,cAAc,OAAO,CAAC;AACtB,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,mBAAmB,CAAC"}
|
package/dist/cjs/util/index.js
CHANGED
|
@@ -19,7 +19,6 @@ __exportStar(require("./createAsyncKeyAgent"), exports);
|
|
|
19
19
|
__exportStar(require("./key"), exports);
|
|
20
20
|
__exportStar(require("./ownSignatureKeyPaths"), exports);
|
|
21
21
|
__exportStar(require("./stubSignTransaction"), exports);
|
|
22
|
-
__exportStar(require("./mapHardwareSigningData"), exports);
|
|
23
22
|
__exportStar(require("./KeyAgentTransactionSigner"), exports);
|
|
24
23
|
__exportStar(require("./ensureStakeKeys"), exports);
|
|
25
24
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/util/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAwB;AACxB,wDAAsC;AACtC,wCAAsB;AACtB,yDAAuC;AACvC,wDAAsC;AACtC,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/util/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAwB;AACxB,wDAAsC;AACtC,wCAAsB;AACtB,yDAAuC;AACvC,wDAAsC;AACtC,8DAA4C;AAC5C,oDAAkC"}
|
|
@@ -18,14 +18,11 @@ export interface CreateTrezorKeyAgentProps {
|
|
|
18
18
|
}
|
|
19
19
|
export declare type TrezorConnectInstanceType = typeof TrezorConnectNode | typeof TrezorConnectWeb;
|
|
20
20
|
export declare class TrezorKeyAgent extends KeyAgentBase {
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
static
|
|
25
|
-
|
|
26
|
-
static getXpub({ accountIndex, communicationType }: GetTrezorXpubProps): Promise<Crypto.Bip32PublicKeyHex>;
|
|
27
|
-
static createWithDevice({ chainId, accountIndex, trezorConfig }: CreateTrezorKeyAgentProps, dependencies: KeyAgentDependencies): Promise<TrezorKeyAgent>;
|
|
28
|
-
signTransaction({ body }: Cardano.TxBodyWithHash): Promise<Cardano.Signatures>;
|
|
21
|
+
static initializeTrezorTransport(__config: TrezorConfig): Promise<boolean>;
|
|
22
|
+
static checkDeviceConnection(_communicationType: CommunicationType): Promise<Features>;
|
|
23
|
+
static getXpub(_props: GetTrezorXpubProps): Promise<Crypto.Bip32PublicKeyHex>;
|
|
24
|
+
static createWithDevice(_props: CreateTrezorKeyAgentProps, _dependencies: KeyAgentDependencies): Promise<TrezorKeyAgent>;
|
|
25
|
+
signTransaction(_body: Cardano.TxBodyWithHash): Promise<Cardano.Signatures>;
|
|
29
26
|
signBlob(): Promise<SignBlobResult>;
|
|
30
27
|
exportRootPrivateKey(): Promise<Crypto.Bip32PrivateKeyHex>;
|
|
31
28
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TrezorKeyAgent.d.ts","sourceRoot":"","sources":["../../src/TrezorKeyAgent.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"TrezorKeyAgent.d.ts","sourceRoot":"","sources":["../../src/TrezorKeyAgent.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAuB,MAAM,mBAAmB,CAAC;AACjE,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,8BAA8B,EAC9B,cAAc,EACd,YAAY,EACb,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,iBAAiB,EAAE,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC9D,OAAO,gBAAgB,MAAM,qBAAqB,CAAC;AAEnD,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;CACtC;AAED,MAAM,WAAW,yBAAyB;IACxC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,YAAY,CAAC;CAC5B;AAED,oBAAY,yBAAyB,GAAG,OAAO,iBAAiB,GAAG,OAAO,gBAAgB,CAAC;AAE3F,qBAAa,cAAe,SAAQ,YAAY;WACjC,yBAAyB,CAAC,QAAQ,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC;WAInE,qBAAqB,CAAC,kBAAkB,EAAE,iBAAiB,GAAG,OAAO,CAAC,QAAQ,CAAC;WAI/E,OAAO,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAC;WAItE,gBAAgB,CAC3B,MAAM,EAAE,yBAAyB,EACjC,aAAa,EAAE,oBAAoB,GAClC,OAAO,CAAC,cAAc,CAAC;IAIpB,eAAe,CAAC,KAAK,EAAE,OAAO,CAAC,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC;IAI3E,QAAQ,IAAI,OAAO,CAAC,cAAc,CAAC;IAInC,oBAAoB,IAAI,OAAO,CAAC,MAAM,CAAC,kBAAkB,CAAC;CAGjE"}
|
|
@@ -1,133 +1,20 @@
|
|
|
1
|
-
|
|
2
|
-
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
3
|
-
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
4
|
-
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
5
|
-
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
6
|
-
};
|
|
7
|
-
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
8
|
-
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
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
|
-
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
11
|
-
};
|
|
12
|
-
var _TrezorKeyAgent_communicationType;
|
|
13
|
-
import * as Crypto from '@cardano-sdk/crypto';
|
|
14
|
-
import { AuthenticationError, TransportError } from './errors';
|
|
15
|
-
import { NotImplementedError, coreToCml } from '@cardano-sdk/core';
|
|
16
|
-
import { CardanoKeyConst, CommunicationType, KeyAgentType } from './types';
|
|
1
|
+
import { NotImplementedError } from '@cardano-sdk/core';
|
|
17
2
|
import { KeyAgentBase } from './KeyAgentBase';
|
|
18
|
-
import { ManagedFreeableScope } from '@cardano-sdk/util';
|
|
19
|
-
import { txToTrezor } from './util';
|
|
20
|
-
import TrezorConnectNode from '@trezor/connect';
|
|
21
|
-
import TrezorConnectWeb from '@trezor/connect-web';
|
|
22
|
-
const getTrezorConnect = (communicationType) => communicationType === CommunicationType.Node ? TrezorConnectNode : TrezorConnectWeb;
|
|
23
|
-
const transportTypedError = (error) => new AuthenticationError('Trezor transport failed', new TransportError('Trezor transport failed', error));
|
|
24
3
|
export class TrezorKeyAgent extends KeyAgentBase {
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
_TrezorKeyAgent_communicationType.set(this, void 0);
|
|
28
|
-
if (!isTrezorInitialized) {
|
|
29
|
-
this.isTrezorInitialized = TrezorKeyAgent.initializeTrezorTransport(serializableData.trezorConfig);
|
|
30
|
-
}
|
|
31
|
-
__classPrivateFieldSet(this, _TrezorKeyAgent_communicationType, serializableData.trezorConfig.communicationType, "f");
|
|
4
|
+
static async initializeTrezorTransport(__config) {
|
|
5
|
+
throw new NotImplementedError('initializeTrezorTransport');
|
|
32
6
|
}
|
|
33
|
-
static async
|
|
34
|
-
|
|
35
|
-
try {
|
|
36
|
-
await trezorConnect.init({
|
|
37
|
-
lazyLoad: communicationType !== CommunicationType.Node && lazyLoad,
|
|
38
|
-
manifest,
|
|
39
|
-
popup: communicationType !== CommunicationType.Node && !silentMode
|
|
40
|
-
});
|
|
41
|
-
return true;
|
|
42
|
-
}
|
|
43
|
-
catch (error) {
|
|
44
|
-
if (error.code === 'Init_AlreadyInitialized')
|
|
45
|
-
return true;
|
|
46
|
-
throw transportTypedError(error);
|
|
47
|
-
}
|
|
7
|
+
static async checkDeviceConnection(_communicationType) {
|
|
8
|
+
throw new NotImplementedError('checkDeviceConnection');
|
|
48
9
|
}
|
|
49
|
-
static async
|
|
50
|
-
|
|
51
|
-
try {
|
|
52
|
-
const deviceFeatures = await trezorConnect.getFeatures();
|
|
53
|
-
if (!deviceFeatures.success) {
|
|
54
|
-
throw new TransportError('Failed to get device', deviceFeatures.payload);
|
|
55
|
-
}
|
|
56
|
-
if (deviceFeatures.payload.model !== 'T') {
|
|
57
|
-
throw new TransportError(`Trezor device model "${deviceFeatures.payload.model}" is not supported.`);
|
|
58
|
-
}
|
|
59
|
-
return deviceFeatures.payload;
|
|
60
|
-
}
|
|
61
|
-
catch (error) {
|
|
62
|
-
throw transportTypedError(error);
|
|
63
|
-
}
|
|
10
|
+
static async getXpub(_props) {
|
|
11
|
+
throw new NotImplementedError('getXpub');
|
|
64
12
|
}
|
|
65
|
-
static async
|
|
66
|
-
|
|
67
|
-
await TrezorKeyAgent.checkDeviceConnection(communicationType);
|
|
68
|
-
const derivationPath = `m/${CardanoKeyConst.PURPOSE}'/${CardanoKeyConst.COIN_TYPE}'/${accountIndex}'`;
|
|
69
|
-
const trezorConnect = getTrezorConnect(communicationType);
|
|
70
|
-
const extendedPublicKey = await trezorConnect.cardanoGetPublicKey({
|
|
71
|
-
path: derivationPath,
|
|
72
|
-
showOnTrezor: true
|
|
73
|
-
});
|
|
74
|
-
if (!extendedPublicKey.success) {
|
|
75
|
-
throw new TransportError('Failed to export extended account public key', extendedPublicKey.payload);
|
|
76
|
-
}
|
|
77
|
-
return Crypto.Bip32PublicKeyHex(extendedPublicKey.payload.publicKey);
|
|
78
|
-
}
|
|
79
|
-
catch (error) {
|
|
80
|
-
throw transportTypedError(error);
|
|
81
|
-
}
|
|
13
|
+
static async createWithDevice(_props, _dependencies) {
|
|
14
|
+
throw new NotImplementedError('createWithDevice');
|
|
82
15
|
}
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
const extendedAccountPublicKey = await TrezorKeyAgent.getXpub({
|
|
86
|
-
accountIndex,
|
|
87
|
-
communicationType: trezorConfig.communicationType
|
|
88
|
-
});
|
|
89
|
-
return new TrezorKeyAgent({
|
|
90
|
-
accountIndex,
|
|
91
|
-
chainId,
|
|
92
|
-
extendedAccountPublicKey,
|
|
93
|
-
isTrezorInitialized,
|
|
94
|
-
knownAddresses: [],
|
|
95
|
-
trezorConfig
|
|
96
|
-
}, dependencies);
|
|
97
|
-
}
|
|
98
|
-
async signTransaction({ body }) {
|
|
99
|
-
const scope = new ManagedFreeableScope();
|
|
100
|
-
try {
|
|
101
|
-
await this.isTrezorInitialized;
|
|
102
|
-
const cslTxBody = coreToCml.txBody(scope, body);
|
|
103
|
-
const trezorTxData = await txToTrezor({
|
|
104
|
-
accountIndex: this.accountIndex,
|
|
105
|
-
chainId: this.chainId,
|
|
106
|
-
cslTxBody,
|
|
107
|
-
inputResolver: this.inputResolver,
|
|
108
|
-
knownAddresses: this.knownAddresses
|
|
109
|
-
});
|
|
110
|
-
const trezorConnect = getTrezorConnect(__classPrivateFieldGet(this, _TrezorKeyAgent_communicationType, "f"));
|
|
111
|
-
const result = await trezorConnect.cardanoSignTransaction(trezorTxData);
|
|
112
|
-
if (!result.success) {
|
|
113
|
-
throw new TransportError('Failed to export extended account public key', result.payload);
|
|
114
|
-
}
|
|
115
|
-
const signedData = result.payload;
|
|
116
|
-
return new Map(await Promise.all(signedData.witnesses.map(async (witness) => {
|
|
117
|
-
const publicKey = Crypto.Ed25519PublicKeyHex(witness.pubKey);
|
|
118
|
-
const signature = Crypto.Ed25519SignatureHex(witness.signature);
|
|
119
|
-
return [publicKey, signature];
|
|
120
|
-
})));
|
|
121
|
-
}
|
|
122
|
-
catch (error) {
|
|
123
|
-
if (error.innerError.code === 'Failure_ActionCancelled') {
|
|
124
|
-
throw new AuthenticationError('Transaction signing aborted', error);
|
|
125
|
-
}
|
|
126
|
-
throw transportTypedError(error);
|
|
127
|
-
}
|
|
128
|
-
finally {
|
|
129
|
-
scope.dispose();
|
|
130
|
-
}
|
|
16
|
+
async signTransaction(_body) {
|
|
17
|
+
throw new NotImplementedError('signTransaction');
|
|
131
18
|
}
|
|
132
19
|
async signBlob() {
|
|
133
20
|
throw new NotImplementedError('signBlob');
|
|
@@ -136,5 +23,4 @@ export class TrezorKeyAgent extends KeyAgentBase {
|
|
|
136
23
|
throw new NotImplementedError('Operation not supported!');
|
|
137
24
|
}
|
|
138
25
|
}
|
|
139
|
-
_TrezorKeyAgent_communicationType = new WeakMap();
|
|
140
26
|
//# sourceMappingURL=TrezorKeyAgent.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TrezorKeyAgent.js","sourceRoot":"","sources":["../../src/TrezorKeyAgent.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"TrezorKeyAgent.js","sourceRoot":"","sources":["../../src/TrezorKeyAgent.ts"],"names":[],"mappings":"AAEA,OAAO,EAAW,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAQjE,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAqB9C,MAAM,OAAO,cAAe,SAAQ,YAAY;IAC9C,MAAM,CAAC,KAAK,CAAC,yBAAyB,CAAC,QAAsB;QAC3D,MAAM,IAAI,mBAAmB,CAAC,2BAA2B,CAAC,CAAC;IAC7D,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,qBAAqB,CAAC,kBAAqC;QACtE,MAAM,IAAI,mBAAmB,CAAC,uBAAuB,CAAC,CAAC;IACzD,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,MAA0B;QAC7C,MAAM,IAAI,mBAAmB,CAAC,SAAS,CAAC,CAAC;IAC3C,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,gBAAgB,CAC3B,MAAiC,EACjC,aAAmC;QAEnC,MAAM,IAAI,mBAAmB,CAAC,kBAAkB,CAAC,CAAC;IACpD,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,KAA6B;QACjD,MAAM,IAAI,mBAAmB,CAAC,iBAAiB,CAAC,CAAC;IACnD,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,MAAM,IAAI,mBAAmB,CAAC,UAAU,CAAC,CAAC;IAC5C,CAAC;IAED,KAAK,CAAC,oBAAoB;QACxB,MAAM,IAAI,mBAAmB,CAAC,0BAA0B,CAAC,CAAC;IAC5D,CAAC;CACF"}
|
|
@@ -4,7 +4,7 @@ import { Cip30DataSignature } from '@cardano-sdk/dapp-connector';
|
|
|
4
4
|
import { ComposableError, HexBlob } from '@cardano-sdk/util';
|
|
5
5
|
export interface Cip30SignDataRequest {
|
|
6
6
|
keyAgent: AsyncKeyAgent;
|
|
7
|
-
signWith: Cardano.PaymentAddress | Cardano.RewardAccount;
|
|
7
|
+
signWith: Cardano.PaymentAddress | Cardano.RewardAccount | Cardano.DRepID;
|
|
8
8
|
payload: HexBlob;
|
|
9
9
|
}
|
|
10
10
|
export declare enum Cip30DataSignErrorCode {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cip30signData.d.ts","sourceRoot":"","sources":["../../../src/cip8/cip30signData.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,aAAa,EAAW,MAAM,UAAU,CAAC;AAClD,OAAO,EAAE,OAAO,EAAQ,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAK7D,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,aAAa,CAAC;IACxB,QAAQ,EAAE,OAAO,CAAC,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"cip30signData.d.ts","sourceRoot":"","sources":["../../../src/cip8/cip30signData.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,aAAa,EAAW,MAAM,UAAU,CAAC;AAClD,OAAO,EAAE,OAAO,EAAQ,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAK7D,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,aAAa,CAAC;IACxB,QAAQ,EAAE,OAAO,CAAC,cAAc,GAAG,OAAO,CAAC,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC;IAC1E,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,oBAAY,sBAAsB;IAChC,eAAe,IAAI;IACnB,YAAY,IAAI;IAChB,YAAY,IAAI;CACjB;AAED,qBAAa,kBAAkB,CAAC,UAAU,GAAG,OAAO,CAAE,SAAQ,eAAe,CAAC,UAAU,CAAC;aAC3D,IAAI,EAAE,sBAAsB;aAAkB,IAAI,EAAE,MAAM;gBAA1D,IAAI,EAAE,sBAAsB,EAAkB,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,UAAU;CAGhH;AA+ED,eAAO,MAAM,aAAa,oCAIvB,oBAAoB,KAAG,QAAQ,kBAAkB,CAsBnD,CAAC"}
|
|
@@ -2,7 +2,7 @@ import { AlgorithmId, CBORValue, COSEKey, KeyType as COSEKeyType, COSESign1Build
|
|
|
2
2
|
import { Cardano, util } from '@cardano-sdk/core';
|
|
3
3
|
import { ComposableError } from '@cardano-sdk/util';
|
|
4
4
|
import { CoseLabel } from './util';
|
|
5
|
-
import { STAKE_KEY_DERIVATION_PATH } from '../util';
|
|
5
|
+
import { DREP_KEY_DERIVATION_PATH, STAKE_KEY_DERIVATION_PATH } from '../util';
|
|
6
6
|
import { filter, firstValueFrom } from 'rxjs';
|
|
7
7
|
export var Cip30DataSignErrorCode;
|
|
8
8
|
(function (Cip30DataSignErrorCode) {
|
|
@@ -25,6 +25,9 @@ const getAddressBytes = (signWith) => {
|
|
|
25
25
|
return Buffer.from(address.toBytes(), 'hex');
|
|
26
26
|
};
|
|
27
27
|
const getDerivationPath = async (signWith, keyAgent) => {
|
|
28
|
+
if (Cardano.DRepID.isValid(signWith)) {
|
|
29
|
+
return DREP_KEY_DERIVATION_PATH;
|
|
30
|
+
}
|
|
28
31
|
const isRewardAccount = signWith.startsWith('stake');
|
|
29
32
|
const knownAddresses = await firstValueFrom(keyAgent.knownAddresses$.pipe(filter((addresses) => addresses.length > 0)));
|
|
30
33
|
if (isRewardAccount) {
|
|
@@ -63,6 +66,9 @@ const createCoseKey = (addressBytes, publicKey) => {
|
|
|
63
66
|
return coseKey;
|
|
64
67
|
};
|
|
65
68
|
export const cip30signData = async ({ keyAgent, signWith, payload }) => {
|
|
69
|
+
if (Cardano.DRepID.isValid(signWith) && !Cardano.DRepID.canSign(signWith)) {
|
|
70
|
+
throw new Cip30DataSignError(Cip30DataSignErrorCode.AddressNotPK, 'Invalid address');
|
|
71
|
+
}
|
|
66
72
|
const addressBytes = getAddressBytes(signWith);
|
|
67
73
|
const derivationPath = await getDerivationPath(signWith, keyAgent);
|
|
68
74
|
const builder = COSESign1Builder.new(Headers.new(ProtectedHeaderMap.new(createSigStructureHeaders(addressBytes)), HeaderMap.new()), Buffer.from(payload, 'hex'), false);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cip30signData.js","sourceRoot":"","sources":["../../../src/cip8/cip30signData.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,WAAW,EACX,SAAS,EACT,OAAO,EACP,OAAO,IAAI,WAAW,EACtB,gBAAgB,EAChB,SAAS,EACT,SAAS,EACT,OAAO,EACP,KAAK,EACL,kBAAkB,EAEnB,MAAM,wCAAwC,CAAC;AAEhD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAElD,OAAO,EAAE,eAAe,EAAW,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"cip30signData.js","sourceRoot":"","sources":["../../../src/cip8/cip30signData.ts"],"names":[],"mappings":"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"}
|