@cardano-sdk/key-management 0.11.0 → 0.12.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.
@@ -1,4 +1,26 @@
1
+ import * as Crypto from '@cardano-sdk/crypto';
1
2
  import { AccountKeyDerivationPath, GroupedAddress } from '../types';
2
3
  import { Cardano } from '@cardano-sdk/core';
3
- export declare const ownSignatureKeyPaths: (txBody: Cardano.TxBody, knownAddresses: GroupedAddress[], inputResolver: Cardano.InputResolver) => Promise<AccountKeyDerivationPath[]>;
4
+ export declare type StakeKeySignerData = {
5
+ poolId: Cardano.PoolId;
6
+ rewardAccount: Cardano.RewardAccount;
7
+ stakeKeyHash: Crypto.Ed25519KeyHashHex;
8
+ derivationPath: AccountKeyDerivationPath;
9
+ };
10
+ declare type SignatureCheck = {
11
+ derivationPaths: AccountKeyDerivationPath[];
12
+ requiresForeignSignatures: boolean;
13
+ };
14
+ export declare const checkStakeCredentialCertificates: (accounts: StakeKeySignerData[], { certificates }: Pick<Cardano.TxBody, 'certificates'>) => SignatureCheck;
15
+ export declare const getVotingProcedureKeyPaths: ({ groupedAddresses, dRepKeyHash, txBody }: {
16
+ groupedAddresses: GroupedAddress[];
17
+ dRepKeyHash?: Crypto.Ed25519KeyHashHex | undefined;
18
+ txBody: Cardano.TxBody;
19
+ }) => SignatureCheck;
20
+ export declare const getDRepCredentialKeyPaths: ({ dRepKeyHash, txBody }: {
21
+ dRepKeyHash?: Crypto.Ed25519KeyHashHex | undefined;
22
+ txBody: Cardano.TxBody;
23
+ }) => SignatureCheck;
24
+ export declare const ownSignatureKeyPaths: (txBody: Cardano.TxBody, knownAddresses: GroupedAddress[], inputResolver: Cardano.InputResolver, dRepKeyHash?: Crypto.Ed25519KeyHashHex) => Promise<AccountKeyDerivationPath[]>;
25
+ export {};
4
26
  //# sourceMappingURL=ownSignatureKeyPaths.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ownSignatureKeyPaths.d.ts","sourceRoot":"","sources":["../../../src/util/ownSignatureKeyPaths.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,wBAAwB,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AACpE,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAyG5C,eAAO,MAAM,oBAAoB,WACvB,QAAQ,MAAM,kBACN,cAAc,EAAE,iBACjB,QAAQ,aAAa,KACnC,QAAQ,wBAAwB,EAAE,CAsBpC,CAAC"}
1
+ {"version":3,"file":"ownSignatureKeyPaths.d.ts","sourceRoot":"","sources":["../../../src/util/ownSignatureKeyPaths.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,wBAAwB,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AACpE,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAQ5C,oBAAY,kBAAkB,GAAG;IAC/B,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC;IACvB,aAAa,EAAE,OAAO,CAAC,aAAa,CAAC;IACrC,YAAY,EAAE,MAAM,CAAC,iBAAiB,CAAC;IACvC,cAAc,EAAE,wBAAwB,CAAC;CAC1C,CAAC;AAGF,aAAK,cAAc,GAAG;IAEpB,eAAe,EAAE,wBAAwB,EAAE,CAAC;IAE5C,yBAAyB,EAAE,OAAO,CAAC;CACpC,CAAC;AAwGF,eAAO,MAAM,gCAAgC,aACjC,kBAAkB,EAAE,oBACZ,KAAK,QAAQ,MAAM,EAAE,cAAc,CAAC,KACrD,cA6BF,CAAC;AAqDF,eAAO,MAAM,0BAA0B;sBAKnB,cAAc,EAAE;;YAE1B,QAAQ,MAAM;MACpB,cAoCH,CAAC;AAoCF,eAAO,MAAM,yBAAyB;;YAK5B,QAAQ,MAAM;MACpB,cAwBH,CAAC;AAOF,eAAO,MAAM,oBAAoB,WACvB,QAAQ,MAAM,kBACN,cAAc,EAAE,iBACjB,QAAQ,aAAa,gBACtB,OAAO,iBAAiB,KACrC,QAAQ,wBAAwB,EAAE,CA0BpC,CAAC"}
@@ -1,55 +1,173 @@
1
1
  import * as Crypto from '@cardano-sdk/crypto';
2
2
  import { Cardano } from '@cardano-sdk/core';
3
+ import { DREP_KEY_DERIVATION_PATH } from './key';
3
4
  import { isNotNil } from '@cardano-sdk/util';
4
5
  import isEqual from 'lodash/isEqual';
5
6
  import uniq from 'lodash/uniq';
6
7
  import uniqBy from 'lodash/uniqBy';
7
8
  import uniqWith from 'lodash/uniqWith';
8
- const getStakeKeyPaths = (groupedAddresses, txBody) => {
9
- const paths = new Set();
10
- const uniqueAccounts = uniqBy(groupedAddresses, 'rewardAccount');
11
- for (const account of uniqueAccounts) {
12
- const stakeKeyHash = Cardano.RewardAccount.toHash(account.rewardAccount);
13
- const poolId = Cardano.PoolId.fromKeyHash(stakeKeyHash);
14
- if (!account.stakeKeyDerivationPath)
15
- continue;
16
- if (txBody.withdrawals?.some((withdrawal) => account.rewardAccount === withdrawal.stakeAddress))
17
- paths.add(account.stakeKeyDerivationPath);
18
- if (!txBody.certificates)
19
- continue;
20
- for (const certificate of txBody.certificates) {
21
- switch (certificate.__typename) {
22
- case Cardano.CertificateType.StakeKeyDeregistration:
23
- case Cardano.CertificateType.StakeDelegation:
24
- if (certificate.stakeKeyHash === stakeKeyHash)
25
- paths.add(account.stakeKeyDerivationPath);
26
- break;
27
- case Cardano.CertificateType.PoolRegistration:
28
- for (const owner of certificate.poolParameters.owners) {
29
- if (owner === account.rewardAccount)
30
- paths.add(account.stakeKeyDerivationPath);
31
- }
32
- break;
33
- case Cardano.CertificateType.PoolRetirement:
34
- if (certificate.poolId === poolId)
35
- paths.add(account.stakeKeyDerivationPath);
36
- break;
37
- case Cardano.CertificateType.MIR:
38
- if (certificate.kind === Cardano.MirCertificateKind.ToStakeCreds &&
39
- certificate.stakeCredential.hash ===
40
- Crypto.Hash28ByteBase16(Cardano.RewardAccount.toHash(account.rewardAccount)))
41
- paths.add(account.stakeKeyDerivationPath);
42
- break;
43
- case Cardano.CertificateType.StakeKeyRegistration:
44
- case Cardano.CertificateType.GenesisKeyDelegation:
45
- default:
9
+ const checkWithdrawals = ({ withdrawals }, accounts) => {
10
+ const signatureCheck = { derivationPaths: [], requiresForeignSignatures: false };
11
+ if (withdrawals) {
12
+ for (const withdrawal of withdrawals) {
13
+ const account = accounts.find((acct) => acct.rewardAccount === withdrawal.stakeAddress);
14
+ if (account) {
15
+ signatureCheck.derivationPaths.push(account.derivationPath);
16
+ }
17
+ else {
18
+ signatureCheck.requiresForeignSignatures = true;
46
19
  }
47
20
  }
48
21
  }
49
- return paths;
22
+ return signatureCheck;
23
+ };
24
+ const checkStakeKeyHashCertificate = (certificate, accounts) => {
25
+ const signatureCheck = { derivationPaths: [], requiresForeignSignatures: false };
26
+ switch (certificate.__typename) {
27
+ case Cardano.CertificateType.VoteDelegation:
28
+ case Cardano.CertificateType.StakeVoteDelegation:
29
+ case Cardano.CertificateType.StakeRegistrationDelegation:
30
+ case Cardano.CertificateType.VoteRegistrationDelegation:
31
+ case Cardano.CertificateType.StakeVoteRegistrationDelegation:
32
+ case Cardano.CertificateType.Unregistration:
33
+ case Cardano.CertificateType.StakeKeyDeregistration:
34
+ case Cardano.CertificateType.StakeDelegation: {
35
+ const account = accounts.find((acct) => acct.stakeKeyHash === certificate.stakeKeyHash);
36
+ if (account) {
37
+ signatureCheck.derivationPaths = [account.derivationPath];
38
+ }
39
+ else {
40
+ signatureCheck.requiresForeignSignatures = true;
41
+ }
42
+ }
43
+ }
44
+ return signatureCheck;
45
+ };
46
+ const checkPoolRegistrationCertificate = (certificate, accounts) => {
47
+ const signatureCheck = { derivationPaths: [], requiresForeignSignatures: false };
48
+ if (certificate.__typename === Cardano.CertificateType.PoolRegistration) {
49
+ for (const owner of certificate.poolParameters.owners) {
50
+ const account = accounts.find((acct) => acct.rewardAccount === owner);
51
+ if (account) {
52
+ signatureCheck.derivationPaths.push(account.derivationPath);
53
+ }
54
+ else {
55
+ signatureCheck.requiresForeignSignatures = true;
56
+ }
57
+ }
58
+ }
59
+ return signatureCheck;
60
+ };
61
+ const checkPoolRetirementCertificate = (certificate, accounts) => {
62
+ const signatureCheck = { derivationPaths: [], requiresForeignSignatures: false };
63
+ if (certificate.__typename === Cardano.CertificateType.PoolRetirement) {
64
+ const account = accounts.find((acct) => acct.poolId === certificate.poolId);
65
+ if (account) {
66
+ signatureCheck.derivationPaths.push(account.derivationPath);
67
+ }
68
+ else {
69
+ signatureCheck.requiresForeignSignatures = true;
70
+ }
71
+ }
72
+ return signatureCheck;
73
+ };
74
+ const checkMirCertificate = (certificate, accounts) => {
75
+ const signatureCheck = { derivationPaths: [], requiresForeignSignatures: false };
76
+ if (certificate.__typename === Cardano.CertificateType.MIR) {
77
+ if (certificate.kind === Cardano.MirCertificateKind.ToStakeCreds) {
78
+ const account = accounts.find((acct) => Crypto.Hash28ByteBase16(acct.stakeKeyHash) === certificate.stakeCredential.hash);
79
+ if (account) {
80
+ signatureCheck.derivationPaths.push(account.derivationPath);
81
+ }
82
+ else {
83
+ signatureCheck.requiresForeignSignatures = true;
84
+ }
85
+ }
86
+ else {
87
+ signatureCheck.requiresForeignSignatures = true;
88
+ }
89
+ }
90
+ return signatureCheck;
91
+ };
92
+ export const checkStakeCredentialCertificates = (accounts, { certificates }) => {
93
+ const signatureCheck = { derivationPaths: [], requiresForeignSignatures: false };
94
+ if (!certificates?.length) {
95
+ return signatureCheck;
96
+ }
97
+ for (const certificate of certificates) {
98
+ const stakeKeyHashCheck = checkStakeKeyHashCertificate(certificate, accounts);
99
+ signatureCheck.requiresForeignSignatures ||= stakeKeyHashCheck.requiresForeignSignatures;
100
+ signatureCheck.derivationPaths.push(...stakeKeyHashCheck.derivationPaths);
101
+ const poolOwnerCheck = checkPoolRegistrationCertificate(certificate, accounts);
102
+ signatureCheck.requiresForeignSignatures ||= poolOwnerCheck.requiresForeignSignatures;
103
+ signatureCheck.derivationPaths.push(...poolOwnerCheck.derivationPaths);
104
+ const poolIdCheck = checkPoolRetirementCertificate(certificate, accounts);
105
+ signatureCheck.requiresForeignSignatures ||= poolIdCheck.requiresForeignSignatures;
106
+ signatureCheck.derivationPaths.push(...poolIdCheck.derivationPaths);
107
+ const mirCheck = checkMirCertificate(certificate, accounts);
108
+ signatureCheck.requiresForeignSignatures ||= mirCheck.requiresForeignSignatures;
109
+ signatureCheck.derivationPaths.push(...mirCheck.derivationPaths);
110
+ }
111
+ signatureCheck.derivationPaths = uniqWith(signatureCheck.derivationPaths, isEqual);
112
+ return signatureCheck;
113
+ };
114
+ const getSignersData = (groupedAddresses) => uniqBy(groupedAddresses, 'rewardAccount')
115
+ .map((groupedAddress) => {
116
+ const stakeKeyHash = Cardano.RewardAccount.toHash(groupedAddress.rewardAccount);
117
+ const poolId = Cardano.PoolId.fromKeyHash(stakeKeyHash);
118
+ return {
119
+ derivationPath: groupedAddress.stakeKeyDerivationPath,
120
+ poolId,
121
+ rewardAccount: groupedAddress.rewardAccount,
122
+ stakeKeyHash
123
+ };
124
+ })
125
+ .filter((acct) => acct.derivationPath !== undefined);
126
+ const getStakeCredentialKeyPaths = (groupedAddresses, txBody) => {
127
+ let requiresForeignSignatures = false;
128
+ const paths = [];
129
+ const uniqueAccounts = getSignersData(groupedAddresses);
130
+ const withdrawalCheck = checkWithdrawals(txBody, uniqueAccounts);
131
+ requiresForeignSignatures ||= withdrawalCheck.requiresForeignSignatures;
132
+ paths.push(...withdrawalCheck.derivationPaths);
133
+ const stakeCredentialCertificatesCheck = checkStakeCredentialCertificates(uniqueAccounts, txBody);
134
+ requiresForeignSignatures ||= stakeCredentialCertificatesCheck.requiresForeignSignatures;
135
+ paths.push(...stakeCredentialCertificatesCheck.derivationPaths);
136
+ return { derivationPaths: new Set(paths), requiresForeignSignatures };
137
+ };
138
+ export const getVotingProcedureKeyPaths = ({ groupedAddresses, dRepKeyHash, txBody }) => {
139
+ const signatureCheck = { derivationPaths: [], requiresForeignSignatures: false };
140
+ const accounts = getSignersData(groupedAddresses);
141
+ for (const { voter } of txBody.votingProcedures || []) {
142
+ switch (voter.__typename) {
143
+ case Cardano.VoterType.dRepKeyHash: {
144
+ if (dRepKeyHash && voter.credential.hash === Crypto.Hash28ByteBase16.fromEd25519KeyHashHex(dRepKeyHash)) {
145
+ signatureCheck.derivationPaths.push(DREP_KEY_DERIVATION_PATH);
146
+ }
147
+ else {
148
+ signatureCheck.requiresForeignSignatures = true;
149
+ }
150
+ break;
151
+ }
152
+ case Cardano.VoterType.stakePoolKeyHash: {
153
+ const account = accounts.find((acct) => Crypto.Hash28ByteBase16.fromEd25519KeyHashHex(acct.stakeKeyHash) === voter.credential.hash);
154
+ if (account) {
155
+ signatureCheck.derivationPaths.push(account.derivationPath);
156
+ }
157
+ else {
158
+ signatureCheck.requiresForeignSignatures = true;
159
+ }
160
+ break;
161
+ }
162
+ default:
163
+ signatureCheck.requiresForeignSignatures = true;
164
+ break;
165
+ }
166
+ }
167
+ return signatureCheck;
50
168
  };
51
169
  const getRequiredSignersKeyPaths = (groupedAddresses, keyHashes) => {
52
- const paths = new Set();
170
+ const paths = [];
53
171
  if (!keyHashes)
54
172
  return paths;
55
173
  for (const keyHash of keyHashes) {
@@ -57,16 +175,33 @@ const getRequiredSignersKeyPaths = (groupedAddresses, keyHashes) => {
57
175
  const paymentCredential = Cardano.Address.fromBech32(address.address)?.asBase()?.getPaymentCredential().hash;
58
176
  const stakeCredential = Cardano.RewardAccount.toHash(address.rewardAccount);
59
177
  if (paymentCredential && paymentCredential.toString() === keyHash) {
60
- paths.add({ index: address.index, role: Number(address.type) });
178
+ paths.push({ index: address.index, role: Number(address.type) });
61
179
  }
62
180
  if (stakeCredential && address.stakeKeyDerivationPath && stakeCredential.toString() === keyHash) {
63
- paths.add(address.stakeKeyDerivationPath);
181
+ paths.push(address.stakeKeyDerivationPath);
64
182
  }
65
183
  }
66
184
  }
67
185
  return paths;
68
186
  };
69
- export const ownSignatureKeyPaths = async (txBody, knownAddresses, inputResolver) => {
187
+ export const getDRepCredentialKeyPaths = ({ dRepKeyHash, txBody }) => {
188
+ const signature = { derivationPaths: [], requiresForeignSignatures: false };
189
+ for (const certificate of txBody.certificates || []) {
190
+ if (certificate.__typename === Cardano.CertificateType.UnregisterDelegateRepresentative ||
191
+ certificate.__typename === Cardano.CertificateType.UpdateDelegateRepresentative) {
192
+ if (certificate.dRepCredential.type === Cardano.CredentialType.ScriptHash ||
193
+ !dRepKeyHash ||
194
+ certificate.dRepCredential.hash !== Crypto.Hash28ByteBase16.fromEd25519KeyHashHex(dRepKeyHash)) {
195
+ signature.requiresForeignSignatures = true;
196
+ }
197
+ else {
198
+ signature.derivationPaths = [DREP_KEY_DERIVATION_PATH];
199
+ }
200
+ }
201
+ }
202
+ return signature;
203
+ };
204
+ export const ownSignatureKeyPaths = async (txBody, knownAddresses, inputResolver, dRepKeyHash) => {
70
205
  const txInputs = [...txBody.inputs, ...(txBody.collaterals ? txBody.collaterals : [])];
71
206
  const paymentKeyPaths = uniq((await Promise.all(txInputs.map(async (input) => {
72
207
  const resolution = await inputResolver.resolveInput(input);
@@ -76,8 +211,10 @@ export const ownSignatureKeyPaths = async (txBody, knownAddresses, inputResolver
76
211
  }))).filter(isNotNil)).map(({ type, index }) => ({ index, role: Number(type) }));
77
212
  return uniqWith([
78
213
  ...paymentKeyPaths,
79
- ...getStakeKeyPaths(knownAddresses, txBody),
80
- ...getRequiredSignersKeyPaths(knownAddresses, txBody.requiredExtraSignatures)
214
+ ...getStakeCredentialKeyPaths(knownAddresses, txBody).derivationPaths,
215
+ ...getDRepCredentialKeyPaths({ dRepKeyHash, txBody }).derivationPaths,
216
+ ...getRequiredSignersKeyPaths(knownAddresses, txBody.requiredExtraSignatures),
217
+ ...getVotingProcedureKeyPaths({ dRepKeyHash, groupedAddresses: knownAddresses, txBody }).derivationPaths
81
218
  ], isEqual);
82
219
  };
83
220
  //# sourceMappingURL=ownSignatureKeyPaths.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ownSignatureKeyPaths.js","sourceRoot":"","sources":["../../../src/util/ownSignatureKeyPaths.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ownSignatureKeyPaths.js","sourceRoot":"","sources":["../../../src/util/ownSignatureKeyPaths.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,13 @@
1
+ import * as Crypto from '@cardano-sdk/crypto';
1
2
  import { Cardano } from '@cardano-sdk/core';
2
3
  import { GroupedAddress, SignTransactionOptions, TransactionSigner } from '../types';
3
- export declare const stubSignTransaction: (txBody: Cardano.TxBody, knownAddresses: GroupedAddress[], inputResolver: Cardano.InputResolver, extraSigners?: TransactionSigner[], { additionalKeyPaths }?: SignTransactionOptions) => Promise<Cardano.Signatures>;
4
+ export interface StubSignTransactionProps {
5
+ txBody: Cardano.TxBody;
6
+ knownAddresses: GroupedAddress[];
7
+ inputResolver: Cardano.InputResolver;
8
+ extraSigners?: TransactionSigner[];
9
+ dRepPublicKey: Crypto.Ed25519PublicKeyHex;
10
+ signTransactionOptions?: SignTransactionOptions;
11
+ }
12
+ export declare const stubSignTransaction: ({ txBody, knownAddresses, inputResolver, extraSigners, dRepPublicKey, signTransactionOptions }: StubSignTransactionProps) => Promise<Cardano.Signatures>;
4
13
  //# sourceMappingURL=stubSignTransaction.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"stubSignTransaction.d.ts","sourceRoot":"","sources":["../../../src/util/stubSignTransaction.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AASrF,eAAO,MAAM,mBAAmB,WACtB,QAAQ,MAAM,kBACN,cAAc,EAAE,iBACjB,QAAQ,aAAa,iBACrB,iBAAiB,EAAE,2BACL,sBAAsB,KAClD,QAAQ,QAAQ,UAAU,CAgB5B,CAAC"}
1
+ {"version":3,"file":"stubSignTransaction.d.ts","sourceRoot":"","sources":["../../../src/util/stubSignTransaction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AASrF,MAAM,WAAW,wBAAwB;IACvC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC;IACvB,cAAc,EAAE,cAAc,EAAE,CAAC;IACjC,aAAa,EAAE,OAAO,CAAC,aAAa,CAAC;IACrC,YAAY,CAAC,EAAE,iBAAiB,EAAE,CAAC;IACnC,aAAa,EAAE,MAAM,CAAC,mBAAmB,CAAC;IAC1C,sBAAsB,CAAC,EAAE,sBAAsB,CAAC;CACjD;AAED,eAAO,MAAM,mBAAmB,mGAO7B,wBAAwB,KAAG,QAAQ,QAAQ,UAAU,CAkBvD,CAAC"}
@@ -4,9 +4,11 @@ import { ownSignatureKeyPaths } from './ownSignatureKeyPaths';
4
4
  import uniqWith from 'lodash/uniqWith';
5
5
  const randomHexChar = () => Math.floor(Math.random() * 16).toString(16);
6
6
  const randomPublicKey = () => Crypto.Ed25519PublicKeyHex(Array.from({ length: 64 }).map(randomHexChar).join(''));
7
- export const stubSignTransaction = async (txBody, knownAddresses, inputResolver, extraSigners, { additionalKeyPaths = [] } = {}) => {
7
+ export const stubSignTransaction = async ({ txBody, knownAddresses, inputResolver, extraSigners, dRepPublicKey, signTransactionOptions = { additionalKeyPaths: [] } }) => {
8
+ const { additionalKeyPaths = [] } = signTransactionOptions;
8
9
  const mockSignature = Crypto.Ed25519SignatureHex('ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff');
9
- const signatureKeyPaths = uniqWith([...(await ownSignatureKeyPaths(txBody, knownAddresses, inputResolver)), ...additionalKeyPaths], deepEquals);
10
+ const dRepKeyHash = (await Crypto.Ed25519PublicKey.fromHex(dRepPublicKey).hash()).hex();
11
+ const signatureKeyPaths = uniqWith([...(await ownSignatureKeyPaths(txBody, knownAddresses, inputResolver, dRepKeyHash)), ...additionalKeyPaths], deepEquals);
10
12
  const totalSignature = signatureKeyPaths.length + (extraSigners?.length || 0);
11
13
  const signatureMap = new Map();
12
14
  for (let i = 0; i < totalSignature; ++i)
@@ -1 +1 @@
1
- {"version":3,"file":"stubSignTransaction.js","sourceRoot":"","sources":["../../../src/util/stubSignTransaction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,qBAAqB,CAAC;AAG9C,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9D,OAAO,QAAQ,MAAM,iBAAiB,CAAC;AAEvC,MAAM,aAAa,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACxE,MAAM,eAAe,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;AAEjH,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,EACtC,MAAsB,EACtB,cAAgC,EAChC,aAAoC,EACpC,YAAkC,EAClC,EAAE,kBAAkB,GAAG,EAAE,KAA6B,EAAE,EAC3B,EAAE;IAC/B,MAAM,aAAa,GAAG,MAAM,CAAC,mBAAmB,CAE9C,kIAAkI,CACnI,CAAC;IACF,MAAM,iBAAiB,GAAG,QAAQ,CAChC,CAAC,GAAG,CAAC,MAAM,oBAAoB,CAAC,MAAM,EAAE,cAAc,EAAE,aAAa,CAAC,CAAC,EAAE,GAAG,kBAAkB,CAAC,EAC/F,UAAU,CACX,CAAC;IAEF,MAAM,cAAc,GAAG,iBAAiB,CAAC,MAAM,GAAG,CAAC,YAAY,EAAE,MAAM,IAAI,CAAC,CAAC,CAAC;IAC9E,MAAM,YAAY,GAAG,IAAI,GAAG,EAAE,CAAC;IAE/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,EAAE,EAAE,CAAC;QAAE,YAAY,CAAC,GAAG,CAAC,eAAe,EAAE,EAAE,aAAa,CAAC,CAAC;IAE5F,OAAO,YAAY,CAAC;AACtB,CAAC,CAAC"}
1
+ {"version":3,"file":"stubSignTransaction.js","sourceRoot":"","sources":["../../../src/util/stubSignTransaction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,qBAAqB,CAAC;AAG9C,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9D,OAAO,QAAQ,MAAM,iBAAiB,CAAC;AAEvC,MAAM,aAAa,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACxE,MAAM,eAAe,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;AAWjH,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,EAAE,EACxC,MAAM,EACN,cAAc,EACd,aAAa,EACb,YAAY,EACZ,aAAa,EACb,sBAAsB,GAAG,EAAE,kBAAkB,EAAE,EAAE,EAAE,EAC1B,EAA+B,EAAE;IAC1D,MAAM,EAAE,kBAAkB,GAAG,EAAE,EAAE,GAAG,sBAAsB,CAAC;IAC3D,MAAM,aAAa,GAAG,MAAM,CAAC,mBAAmB,CAE9C,kIAAkI,CACnI,CAAC;IACF,MAAM,WAAW,GAAG,CAAC,MAAM,MAAM,CAAC,gBAAgB,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC;IACxF,MAAM,iBAAiB,GAAG,QAAQ,CAChC,CAAC,GAAG,CAAC,MAAM,oBAAoB,CAAC,MAAM,EAAE,cAAc,EAAE,aAAa,EAAE,WAAW,CAAC,CAAC,EAAE,GAAG,kBAAkB,CAAC,EAC5G,UAAU,CACX,CAAC;IAEF,MAAM,cAAc,GAAG,iBAAiB,CAAC,MAAM,GAAG,CAAC,YAAY,EAAE,MAAM,IAAI,CAAC,CAAC,CAAC;IAC9E,MAAM,YAAY,GAAG,IAAI,GAAG,EAAE,CAAC;IAE/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,EAAE,EAAE,CAAC;QAAE,YAAY,CAAC,GAAG,CAAC,eAAe,EAAE,EAAE,aAAa,CAAC,CAAC;IAE5F,OAAO,YAAY,CAAC;AACtB,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "name": "@cardano-sdk/key-management",
3
- "version": "0.11.0",
3
+ "version": "0.12.0",
4
4
  "description": "Key management types and utilities for Cardano",
5
5
  "engines": {
6
- "node": ">=16.20.1"
6
+ "node": ">=16.20.2"
7
7
  },
8
8
  "main": "dist/cjs/index.js",
9
9
  "module": "dist/esm/index.js",
@@ -38,7 +38,6 @@
38
38
  "prepack": "yarn build"
39
39
  },
40
40
  "devDependencies": {
41
- "@cardano-sdk/util-dev": "~0.16.0",
42
41
  "@types/lodash": "^4.14.182",
43
42
  "@types/pbkdf2": "^3.1.0",
44
43
  "eslint": "^7.32.0",
@@ -52,10 +51,10 @@
52
51
  },
53
52
  "dependencies": {
54
53
  "@cardano-foundation/ledgerjs-hw-app-cardano": "^6.0.0",
55
- "@cardano-sdk/core": "~0.20.0",
56
- "@cardano-sdk/crypto": "~0.1.14",
57
- "@cardano-sdk/dapp-connector": "~0.10.0",
58
- "@cardano-sdk/util": "~0.14.1",
54
+ "@cardano-sdk/core": "~0.20.1",
55
+ "@cardano-sdk/crypto": "~0.1.15",
56
+ "@cardano-sdk/dapp-connector": "~0.11.0",
57
+ "@cardano-sdk/util": "~0.14.2",
59
58
  "@emurgo/cardano-message-signing-nodejs": "^1.0.1",
60
59
  "@trezor/connect": "9.0.11",
61
60
  "@trezor/connect-web": "9.0.11",
@@ -74,5 +73,5 @@
74
73
  "LICENSE",
75
74
  "NOTICE"
76
75
  ],
77
- "gitHead": "88248ef21f11b3f38564b6cddd642c1c91aec66b"
76
+ "gitHead": "a7314af0d95b4ad530492f35375885cd2f3d6fb5"
78
77
  }