Skip to content

Commit 09680a7

Browse files
committed
solana-core: export secp256k1, add optional guardianSetData param
1 parent 76b2031 commit 09680a7

File tree

2 files changed

+16
-7
lines changed

2 files changed

+16
-7
lines changed

platforms/solana/protocols/core/src/utils/instructions/index.ts

+1
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,5 @@ export * from './governance.js';
33
export * from './initialize.js';
44
export * from './postMessage.js';
55
export * from './postVaa.js';
6+
export * from './secp256k1.js';
67
export * from './verifySignature.js';

platforms/solana/protocols/core/src/utils/instructions/verifySignature.ts

+15-7
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,11 @@ import {
1212
} from '@solana/web3.js';
1313
import type { VAA } from '@wormhole-foundation/sdk-connect';
1414
import { createReadOnlyWormholeProgramInterface } from '../program.js';
15-
import { deriveGuardianSetKey, getGuardianSet } from './../accounts/index.js';
15+
import {
16+
GuardianSetData,
17+
deriveGuardianSetKey,
18+
getGuardianSet,
19+
} from './../accounts/index.js';
1620
import { createSecp256k1Instruction } from './secp256k1.js';
1721

1822
const MAX_LEN_GUARDIAN_KEYS = 19;
@@ -35,6 +39,7 @@ const MAX_LEN_GUARDIAN_KEYS = 19;
3539
* @param {SignedVaa | ParsedVaa} vaa - either signed VAA bytes or parsed VAA
3640
* @param {PublicKeyInitData} signatureSet - address to account of verified signatures
3741
* @param {web3.ConfirmOptions} [options] - Solana confirmation options
42+
* @param {GuardianSetData} [guardianSetData] - guardian set data
3843
*/
3944
export async function createVerifySignaturesInstructions(
4045
connection: Connection,
@@ -43,14 +48,17 @@ export async function createVerifySignaturesInstructions(
4348
vaa: VAA<any>,
4449
signatureSet: PublicKeyInitData,
4550
commitment?: Commitment,
51+
guardianSetData?: GuardianSetData,
4652
): Promise<TransactionInstruction[]> {
4753
const guardianSetIndex = vaa.guardianSet;
48-
const guardianSetData = await getGuardianSet(
49-
connection,
50-
wormholeProgramId,
51-
guardianSetIndex,
52-
commitment,
53-
);
54+
if (guardianSetData === undefined) {
55+
guardianSetData = await getGuardianSet(
56+
connection,
57+
wormholeProgramId,
58+
guardianSetIndex,
59+
commitment,
60+
);
61+
}
5462

5563
const guardianSignatures = vaa.signatures;
5664
const guardianKeys = guardianSetData.keys;

0 commit comments

Comments
 (0)