diff --git a/packages/transactions/src/signatures.ts b/packages/transactions/src/signatures.ts index 531caa9b463c..6d29671dab10 100644 --- a/packages/transactions/src/signatures.ts +++ b/packages/transactions/src/signatures.ts @@ -4,7 +4,7 @@ import { isSignerRole } from '@solana/instructions'; import { Ed25519Signature, signBytes } from '@solana/keys'; import { ITransactionWithFeePayer } from './fee-payer'; -import { CompiledMessage, compileMessage } from './message'; +import { compileMessage } from './message'; import { getCompiledMessageEncoder } from './serializers/message'; export interface IFullySignedTransaction extends ITransactionWithSignatures { @@ -63,8 +63,7 @@ export function isTransactionSignature( return true; } -async function getCompiledMessageSignature(message: CompiledMessage, secretKey: CryptoKey) { - const wireMessageBytes = getCompiledMessageEncoder().encode(message); +async function getCompiledMessageSignature(wireMessageBytes: Uint8Array, secretKey: CryptoKey) { const signature = await signBytes(secretKey, wireMessageBytes); return signature; } @@ -91,11 +90,12 @@ export async function signTransaction = 'signatures' in transaction ? { ...transaction.signatures } : {}; + const wireMessageBytes = getCompiledMessageEncoder().encode(compiledMessage); const publicKeySignaturePairs = await Promise.all( keyPairs.map(keyPair => Promise.all([ getAddressFromPublicKey(keyPair.publicKey), - getCompiledMessageSignature(compiledMessage, keyPair.privateKey), + getCompiledMessageSignature(wireMessageBytes, keyPair.privateKey), ]) ) );