@@ -12,7 +12,11 @@ import {
12
12
} from '@solana/web3.js' ;
13
13
import type { VAA } from '@wormhole-foundation/sdk-connect' ;
14
14
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' ;
16
20
import { createSecp256k1Instruction } from './secp256k1.js' ;
17
21
18
22
const MAX_LEN_GUARDIAN_KEYS = 19 ;
@@ -35,6 +39,7 @@ const MAX_LEN_GUARDIAN_KEYS = 19;
35
39
* @param {SignedVaa | ParsedVaa } vaa - either signed VAA bytes or parsed VAA
36
40
* @param {PublicKeyInitData } signatureSet - address to account of verified signatures
37
41
* @param {web3.ConfirmOptions } [options] - Solana confirmation options
42
+ * @param {GuardianSetData } [guardianSetData] - guardian set data
38
43
*/
39
44
export async function createVerifySignaturesInstructions (
40
45
connection : Connection ,
@@ -43,14 +48,17 @@ export async function createVerifySignaturesInstructions(
43
48
vaa : VAA < any > ,
44
49
signatureSet : PublicKeyInitData ,
45
50
commitment ?: Commitment ,
51
+ guardianSetData ?: GuardianSetData ,
46
52
) : Promise < TransactionInstruction [ ] > {
47
53
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
+ }
54
62
55
63
const guardianSignatures = vaa . signatures ;
56
64
const guardianKeys = guardianSetData . keys ;
0 commit comments