Skip to content

Commit c8b9e38

Browse files
Merge pull request #1381 from input-output-hk/fix/lw-10852-stub-sign-transaction
fix: use drep key hash in stubSignTransaction
2 parents 3630c5c + af30b6b commit c8b9e38

File tree

2 files changed

+8
-7
lines changed

2 files changed

+8
-7
lines changed

packages/key-management/src/util/stubSignTransaction.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ const randomPublicKey = () => Crypto.Ed25519PublicKeyHex(Array.from({ length: 64
1111

1212
export interface StubSignTransactionProps {
1313
txBody: Cardano.TxBody;
14-
dRepPublicKey?: Crypto.Ed25519PublicKeyHex;
1514
context: SignTransactionContext;
1615
signTransactionOptions?: SignTransactionOptions;
1716
}

packages/tx-construction/src/tx-builder/initializeTx.ts

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,17 @@
11
import { StaticChangeAddressResolver, roundRobinRandomImprove } from '@cardano-sdk/input-selection';
22

3+
import { Bip32Account, SignTransactionContext, util } from '@cardano-sdk/key-management';
34
import { Cardano, Serialization } from '@cardano-sdk/core';
5+
import { Ed25519KeyHashHex } from '@cardano-sdk/crypto';
46
import { GreedyTxEvaluator } from './GreedyTxEvaluator';
57
import { InitializeTxProps, InitializeTxResult } from '../types';
68
import { RedeemersByType, defaultSelectionConstraints } from '../input-selection';
79
import { TxBuilderDependencies } from './types';
810
import { createPreInputSelectionTxBody, includeChangeAndInputs } from '../createTransactionInternals';
911
import { ensureValidityInterval } from '../ensureValidityInterval';
10-
import { util } from '@cardano-sdk/key-management';
12+
13+
const dRepPublicKeyHash = async (addressManager?: Bip32Account): Promise<Ed25519KeyHashHex | undefined> =>
14+
addressManager && (await (await addressManager.derivePublicKey(util.DREP_KEY_DERIVATION_PATH)).hash()).hex();
1115

1216
export const initializeTx = async (
1317
props: InitializeTxProps,
@@ -72,9 +76,7 @@ export const initializeTx = async (
7276
witness: props.witness as Cardano.Witness
7377
});
7478

75-
const dRepPublicKey = addressManager
76-
? (await addressManager.derivePublicKey(util.DREP_KEY_DERIVATION_PATH)).hex()
77-
: undefined;
79+
const dRepKeyHashHex = await dRepPublicKeyHash(addressManager);
7880

7981
const transaction = new Serialization.Transaction(
8082
Serialization.TransactionBody.fromCore(unwitnessedTx.body),
@@ -84,8 +86,8 @@ export const initializeTx = async (
8486
auxiliaryData ? Serialization.AuxiliaryData.fromCore(auxiliaryData) : undefined
8587
);
8688

87-
const signingContext = {
88-
dRepPublicKey,
89+
const signingContext: SignTransactionContext = {
90+
...(dRepKeyHashHex && { dRepKeyHashHex }),
8991
handleResolutions: props.handleResolutions ?? [],
9092
knownAddresses: addresses,
9193
txInKeyPathMap: await util.createTxInKeyPathMap(unwitnessedTx.body, addresses, inputResolver)

0 commit comments

Comments
 (0)