@hyr0-xyz/program 0.0.1

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.
@@ -0,0 +1,709 @@
1
+ import { Address, FixedSizeEncoder, FixedSizeDecoder, FixedSizeCodec, fetchEncodedAccount, FetchAccountConfig, Account, ReadonlyUint8Array, Option, TransactionSigner, ProgramDerivedAddress, Instruction, AccountMeta, InstructionWithData, InstructionWithAccounts, WritableSignerAccount, AccountSignerMeta, WritableAccount, ReadonlyAccount, Encoder, Decoder, Codec, ReadonlySignerAccount } from '@solana/kit';
2
+ export { Account, Address, MaybeAccount, ProgramDerivedAddress, TransactionSigner } from '@solana/kit';
3
+
4
+ type TransactionAccount = {
5
+ pubkey: Address;
6
+ isSigner: boolean;
7
+ isWritable: boolean;
8
+ };
9
+ type TransactionAccountArgs = TransactionAccount;
10
+ declare function getTransactionAccountEncoder(): FixedSizeEncoder<TransactionAccountArgs>;
11
+ declare function getTransactionAccountDecoder(): FixedSizeDecoder<TransactionAccount>;
12
+ declare function getTransactionAccountCodec(): FixedSizeCodec<TransactionAccountArgs, TransactionAccount>;
13
+
14
+ declare enum FeeCollectionFrequency {
15
+ Monthly = 0,
16
+ Quarterly = 1,
17
+ Annually = 2,
18
+ OnWithdrawal = 3
19
+ }
20
+ type FeeCollectionFrequencyArgs = FeeCollectionFrequency;
21
+ declare function getFeeCollectionFrequencyEncoder(): FixedSizeEncoder<FeeCollectionFrequencyArgs>;
22
+ declare function getFeeCollectionFrequencyDecoder(): FixedSizeDecoder<FeeCollectionFrequency>;
23
+ declare function getFeeCollectionFrequencyCodec(): FixedSizeCodec<FeeCollectionFrequencyArgs, FeeCollectionFrequency>;
24
+
25
+ type ManagerFeeStructure = {
26
+ performanceFeeRate: number;
27
+ managementFeeRate: number;
28
+ collectionFrequency: FeeCollectionFrequency;
29
+ highWaterMark: bigint;
30
+ feeRecipient: Address;
31
+ };
32
+ type ManagerFeeStructureArgs = {
33
+ performanceFeeRate: number;
34
+ managementFeeRate: number;
35
+ collectionFrequency: FeeCollectionFrequencyArgs;
36
+ highWaterMark: number | bigint;
37
+ feeRecipient: Address;
38
+ };
39
+ declare function getManagerFeeStructureEncoder(): FixedSizeEncoder<ManagerFeeStructureArgs>;
40
+ declare function getManagerFeeStructureDecoder(): FixedSizeDecoder<ManagerFeeStructure>;
41
+ declare function getManagerFeeStructureCodec(): FixedSizeCodec<ManagerFeeStructureArgs, ManagerFeeStructure>;
42
+
43
+ /**
44
+ * Policy enum for vault access control
45
+ */
46
+ declare enum Policy {
47
+ AllowAny = "AllowAny",
48
+ DenyAll = "DenyAll",
49
+ LimitTransfer = "LimitTransfer",
50
+ Owners = "Owners",
51
+ Multisig = "Multisig"
52
+ }
53
+
54
+ type Vault$1 = {
55
+ discriminator: ReadonlyUint8Array;
56
+ policyProgram: Address;
57
+ seed: string;
58
+ authority: Address;
59
+ shareMint: Address;
60
+ underlyingMint: Address;
61
+ manager: Option<Address>;
62
+ parentVault: Option<Address>;
63
+ allocation: bigint;
64
+ onchainBalance: bigint;
65
+ offchainBalance: bigint;
66
+ totalBalance: bigint;
67
+ lastBalanceUpdate: bigint;
68
+ highWaterMark: bigint;
69
+ totalFeesPaid: bigint;
70
+ managerFees: Option<ManagerFeeStructure>;
71
+ createdAt: bigint;
72
+ lastFeeCollection: bigint;
73
+ };
74
+ declare function fetchVault<TAddress extends string = string>(rpc: Parameters<typeof fetchEncodedAccount>[0], address: Address<TAddress>, config?: FetchAccountConfig): Promise<Account<Vault$1, TAddress>>;
75
+
76
+ type Transaction = {
77
+ discriminator: ReadonlyUint8Array;
78
+ nonce: bigint;
79
+ didExecute: boolean;
80
+ vault: Address;
81
+ programId: Address;
82
+ data: ReadonlyUint8Array;
83
+ accounts: Array<TransactionAccount>;
84
+ };
85
+ declare function fetchTransaction<TAddress extends string = string>(rpc: Parameters<typeof fetchEncodedAccount>[0], address: Address<TAddress>, config?: FetchAccountConfig): Promise<Account<Transaction, TAddress>>;
86
+
87
+ /**
88
+ * High-level Vault class for easy vault operations
89
+ */
90
+
91
+ declare class Vault {
92
+ private _seed;
93
+ private _signer;
94
+ private _policy;
95
+ private _vaultPda?;
96
+ private _authorityPda?;
97
+ private _policyProgram;
98
+ private _policyAccount?;
99
+ private _params?;
100
+ /**
101
+ * Create a new Vault instance
102
+ * @param seed - The seed string for the vault
103
+ * @param signer - The transaction signer
104
+ * @param policy - The policy type to use for the vault
105
+ */
106
+ constructor(seed: string, signer: TransactionSigner, policy: Policy, params?: any);
107
+ private getPolicyProgramAddress;
108
+ /**
109
+ * Initialize the vault (lazy loads PDAs)
110
+ */
111
+ private initialize;
112
+ /**
113
+ * Get the vault PDA
114
+ */
115
+ getVaultPda(): Promise<ProgramDerivedAddress>;
116
+ /**
117
+ * Get the authority PDA
118
+ */
119
+ getAuthorityPda(): Promise<ProgramDerivedAddress>;
120
+ /**
121
+ * Get the vault address
122
+ */
123
+ getAddress(): Promise<Address>;
124
+ /**
125
+ * Get the authority address
126
+ */
127
+ getAuthorityAddress(): Promise<Address>;
128
+ /**
129
+ * Get share signer PDA
130
+ */
131
+ getShareSignerPda(): Promise<ProgramDerivedAddress>;
132
+ /**
133
+ * Get share mint PDA
134
+ */
135
+ getShareMintPda(): Promise<ProgramDerivedAddress>;
136
+ /**
137
+ * Get vault token account PDA
138
+ */
139
+ getVaultTokenAccountPda(underlyingMint: Address): Promise<ProgramDerivedAddress>;
140
+ /**
141
+ * Get transaction PDA for a given nonce
142
+ */
143
+ getTransactionPda(nonce: number | bigint): Promise<ProgramDerivedAddress>;
144
+ /**
145
+ * Get policy account address
146
+ */
147
+ private getPolicyAccountAddress;
148
+ /**
149
+ * Build initialize vault instruction
150
+ */
151
+ buildInitializeVaultInstruction(params: {
152
+ underlyingMint: Address;
153
+ vault?: Address;
154
+ authority?: Address;
155
+ shareSignerPda?: Address;
156
+ shareMint?: Address;
157
+ vaultTokenAccount?: Address;
158
+ authorityTokenAccount?: Address;
159
+ tokenProgram?: Address;
160
+ systemProgram?: Address;
161
+ rent?: Address;
162
+ }): Promise<Instruction[]>;
163
+ /**
164
+ * Create a transaction from an instruction (high-level method)
165
+ * Automatically maps accounts and adds required program account
166
+ */
167
+ createTx(instruction: Instruction): Promise<{
168
+ ix: Instruction;
169
+ nonce: number;
170
+ transferInstruction: Instruction;
171
+ }>;
172
+ /**
173
+ * Execute a transaction (high-level method)
174
+ * Automatically resolves all required accounts
175
+ */
176
+ executeTx(createOp: {
177
+ ix: Instruction;
178
+ nonce: number;
179
+ transferInstruction: Instruction;
180
+ }): Promise<{
181
+ ix: Instruction;
182
+ nonce: number;
183
+ }>;
184
+ /**
185
+ * Fetch vault account data
186
+ */
187
+ fetch(rpc: Parameters<typeof fetchVault>[0]): Promise<{
188
+ address: Address;
189
+ data: Vault$1;
190
+ }>;
191
+ /**
192
+ * Fetch transaction account data
193
+ */
194
+ fetchTransaction(rpc: Parameters<typeof fetchTransaction>[0], nonce: number | bigint): Promise<{
195
+ address: Address;
196
+ data: Transaction;
197
+ }>;
198
+ }
199
+
200
+ declare const HYRO_PROTOCOL_PROGRAM_ADDRESS: Address<"EGfondqUWdztf79joC5CBDi9HQEhgUtSsVmbPK838At4">;
201
+
202
+ declare const DROPPER_PROGRAM_ADDRESS: Address<"5Lk3HERSPsH82FQH9xGnp6YXjoTczQs6jpJoyG7M5kiC">;
203
+
204
+ /**
205
+ * Allow Any Policy - Permits all transactions
206
+ */
207
+ declare const POLICY_ALLOW_ANY_PROGRAM_ADDRESS: Address<"8PahHajSVz2QZn3cCTVH5Ldq2CJzD1GiPrqAiVmuB91Q">;
208
+ /**
209
+ * Deny All Policy - Blocks all transactions
210
+ */
211
+ declare const POLICY_DENY_ALL_PROGRAM_ADDRESS: Address<"FK8qiE3SoLfvtoQUXSdTwKEwmcBWjGBteh5m1VrD91zu">;
212
+ /**
213
+ * Limit Transfer Policy - Enforces transfer limits
214
+ */
215
+ declare const POLICY_LIMIT_TRANSFER_PROGRAM_ADDRESS: Address<"BhX5NffdrXhv7sPPBkobYNDQbBLsTQhrcTsTbTYGj389">;
216
+ /**
217
+ * Owners Policy - Restricts access to specific owners
218
+ */
219
+ declare const POLICY_OWNERS_PROGRAM_ADDRESS: Address<"AgcQY5x8iB3vf2oQwR1V78ZczTkCy5EUP6pZAdrmHbLX">;
220
+ /**
221
+ * Multisig Policy - Multi-signature policy
222
+ */
223
+ declare const POLICY_MULTISIG_PROGRAM_ADDRESS: Address<"CaiBHtLhiBJJCdzUksjjXWEQfcXpFnCvLDLU6QhstAwE">;
224
+ /**
225
+ * Challenges Policy - Challenge-based verification
226
+ */
227
+ declare const POLICY_CHALLENGES_PROGRAM_ADDRESS: Address<"8Vewok54U1fwpbytBX7JDfv2nNTKCEqu93DcFPCRdgWM">;
228
+
229
+ declare const TRANSFER_LAMPORTS_DISCRIMINATOR: Uint8Array<ArrayBuffer>;
230
+ declare function getTransferLamportsDiscriminatorBytes(): ReadonlyUint8Array;
231
+ type TransferLamportsInstruction<TProgram extends string = typeof DROPPER_PROGRAM_ADDRESS, TAccountFrom extends string | AccountMeta<string> = string, TAccountTo extends string | AccountMeta<string> = string, TAccountSystemProgram extends string | AccountMeta<string> = '11111111111111111111111111111111', TRemainingAccounts extends readonly AccountMeta<string>[] = []> = Instruction<TProgram> & InstructionWithData<ReadonlyUint8Array> & InstructionWithAccounts<[
232
+ TAccountFrom extends string ? WritableSignerAccount<TAccountFrom> & AccountSignerMeta<TAccountFrom> : TAccountFrom,
233
+ TAccountTo extends string ? WritableAccount<TAccountTo> : TAccountTo,
234
+ TAccountSystemProgram extends string ? ReadonlyAccount<TAccountSystemProgram> : TAccountSystemProgram,
235
+ ...TRemainingAccounts
236
+ ]>;
237
+ type TransferLamportsInstructionData = {
238
+ discriminator: ReadonlyUint8Array;
239
+ amount: bigint;
240
+ };
241
+ type TransferLamportsInstructionDataArgs = {
242
+ amount: number | bigint;
243
+ };
244
+ declare function getTransferLamportsInstructionDataEncoder(): FixedSizeEncoder<TransferLamportsInstructionDataArgs>;
245
+ declare function getTransferLamportsInstructionDataDecoder(): FixedSizeDecoder<TransferLamportsInstructionData>;
246
+ declare function getTransferLamportsInstructionDataCodec(): FixedSizeCodec<TransferLamportsInstructionDataArgs, TransferLamportsInstructionData>;
247
+ type TransferLamportsInput<TAccountFrom extends string = string, TAccountTo extends string = string, TAccountSystemProgram extends string = string> = {
248
+ from: TransactionSigner<TAccountFrom>;
249
+ to: Address<TAccountTo>;
250
+ systemProgram?: Address<TAccountSystemProgram>;
251
+ amount: TransferLamportsInstructionDataArgs['amount'];
252
+ };
253
+ declare function getTransferLamportsInstruction<TAccountFrom extends string, TAccountTo extends string, TAccountSystemProgram extends string, TProgramAddress extends Address = typeof DROPPER_PROGRAM_ADDRESS>(input: TransferLamportsInput<TAccountFrom, TAccountTo, TAccountSystemProgram>, config?: {
254
+ programAddress?: TProgramAddress;
255
+ }): TransferLamportsInstruction<TProgramAddress, TAccountFrom, TAccountTo, TAccountSystemProgram>;
256
+ type ParsedTransferLamportsInstruction<TProgram extends string = typeof DROPPER_PROGRAM_ADDRESS, TAccountMetas extends readonly AccountMeta[] = readonly AccountMeta[]> = {
257
+ programAddress: Address<TProgram>;
258
+ accounts: {
259
+ from: TAccountMetas[0];
260
+ to: TAccountMetas[1];
261
+ systemProgram: TAccountMetas[2];
262
+ };
263
+ data: TransferLamportsInstructionData;
264
+ };
265
+ declare function parseTransferLamportsInstruction<TProgram extends string, TAccountMetas extends readonly AccountMeta[]>(instruction: Instruction<TProgram> & InstructionWithAccounts<TAccountMetas> & InstructionWithData<ReadonlyUint8Array>): ParsedTransferLamportsInstruction<TProgram, TAccountMetas>;
266
+
267
+ declare const CREATE_TX_DISCRIMINATOR: Uint8Array<ArrayBuffer>;
268
+ declare function getCreateTxDiscriminatorBytes(): ReadonlyUint8Array;
269
+ type CreateTxInstruction<TProgram extends string = typeof HYRO_PROTOCOL_PROGRAM_ADDRESS, TAccountVault extends string | AccountMeta<string> = string, TAccountTransaction extends string | AccountMeta<string> = string, TAccountPolicyAccount extends string | AccountMeta<string> = string, TAccountPolicyProgram extends string | AccountMeta<string> = string, TAccountVaultSigner extends string | AccountMeta<string> = string, TAccountSigner extends string | AccountMeta<string> = string, TAccountSystemProgram extends string | AccountMeta<string> = '11111111111111111111111111111111', TRemainingAccounts extends readonly AccountMeta<string>[] = []> = Instruction<TProgram> & InstructionWithData<ReadonlyUint8Array> & InstructionWithAccounts<[
270
+ TAccountVault extends string ? ReadonlyAccount<TAccountVault> : TAccountVault,
271
+ TAccountTransaction extends string ? WritableAccount<TAccountTransaction> : TAccountTransaction,
272
+ TAccountPolicyAccount extends string ? WritableAccount<TAccountPolicyAccount> : TAccountPolicyAccount,
273
+ TAccountPolicyProgram extends string ? ReadonlyAccount<TAccountPolicyProgram> : TAccountPolicyProgram,
274
+ TAccountVaultSigner extends string ? ReadonlyAccount<TAccountVaultSigner> : TAccountVaultSigner,
275
+ TAccountSigner extends string ? WritableSignerAccount<TAccountSigner> & AccountSignerMeta<TAccountSigner> : TAccountSigner,
276
+ TAccountSystemProgram extends string ? ReadonlyAccount<TAccountSystemProgram> : TAccountSystemProgram,
277
+ ...TRemainingAccounts
278
+ ]>;
279
+ type CreateTxInstructionData = {
280
+ discriminator: ReadonlyUint8Array;
281
+ nonce: bigint;
282
+ pid: Address;
283
+ accs: Array<TransactionAccount>;
284
+ data: ReadonlyUint8Array;
285
+ };
286
+ type CreateTxInstructionDataArgs = {
287
+ nonce: number | bigint;
288
+ pid: Address;
289
+ accs: Array<TransactionAccountArgs>;
290
+ data: ReadonlyUint8Array;
291
+ };
292
+ declare function getCreateTxInstructionDataEncoder(): Encoder<CreateTxInstructionDataArgs>;
293
+ declare function getCreateTxInstructionDataDecoder(): Decoder<CreateTxInstructionData>;
294
+ declare function getCreateTxInstructionDataCodec(): Codec<CreateTxInstructionDataArgs, CreateTxInstructionData>;
295
+ type CreateTxAsyncInput<TAccountVault extends string = string, TAccountTransaction extends string = string, TAccountPolicyAccount extends string = string, TAccountPolicyProgram extends string = string, TAccountVaultSigner extends string = string, TAccountSigner extends string = string, TAccountSystemProgram extends string = string> = {
296
+ vault: Address<TAccountVault>;
297
+ transaction?: Address<TAccountTransaction>;
298
+ policyAccount: Address<TAccountPolicyAccount>;
299
+ policyProgram: Address<TAccountPolicyProgram>;
300
+ vaultSigner?: Address<TAccountVaultSigner>;
301
+ signer: TransactionSigner<TAccountSigner>;
302
+ systemProgram?: Address<TAccountSystemProgram>;
303
+ nonce: CreateTxInstructionDataArgs['nonce'];
304
+ pid: CreateTxInstructionDataArgs['pid'];
305
+ accs: CreateTxInstructionDataArgs['accs'];
306
+ data: CreateTxInstructionDataArgs['data'];
307
+ };
308
+ declare function getCreateTxInstructionAsync<TAccountVault extends string, TAccountTransaction extends string, TAccountPolicyAccount extends string, TAccountPolicyProgram extends string, TAccountVaultSigner extends string, TAccountSigner extends string, TAccountSystemProgram extends string, TProgramAddress extends Address = typeof HYRO_PROTOCOL_PROGRAM_ADDRESS>(input: CreateTxAsyncInput<TAccountVault, TAccountTransaction, TAccountPolicyAccount, TAccountPolicyProgram, TAccountVaultSigner, TAccountSigner, TAccountSystemProgram>, config?: {
309
+ programAddress?: TProgramAddress;
310
+ }): Promise<CreateTxInstruction<TProgramAddress, TAccountVault, TAccountTransaction, TAccountPolicyAccount, TAccountPolicyProgram, TAccountVaultSigner, TAccountSigner, TAccountSystemProgram>>;
311
+ type CreateTxInput<TAccountVault extends string = string, TAccountTransaction extends string = string, TAccountPolicyAccount extends string = string, TAccountPolicyProgram extends string = string, TAccountVaultSigner extends string = string, TAccountSigner extends string = string, TAccountSystemProgram extends string = string> = {
312
+ vault: Address<TAccountVault>;
313
+ transaction: Address<TAccountTransaction>;
314
+ policyAccount: Address<TAccountPolicyAccount>;
315
+ policyProgram: Address<TAccountPolicyProgram>;
316
+ vaultSigner: Address<TAccountVaultSigner>;
317
+ signer: TransactionSigner<TAccountSigner>;
318
+ systemProgram?: Address<TAccountSystemProgram>;
319
+ nonce: CreateTxInstructionDataArgs['nonce'];
320
+ pid: CreateTxInstructionDataArgs['pid'];
321
+ accs: CreateTxInstructionDataArgs['accs'];
322
+ data: CreateTxInstructionDataArgs['data'];
323
+ };
324
+ declare function getCreateTxInstruction<TAccountVault extends string, TAccountTransaction extends string, TAccountPolicyAccount extends string, TAccountPolicyProgram extends string, TAccountVaultSigner extends string, TAccountSigner extends string, TAccountSystemProgram extends string, TProgramAddress extends Address = typeof HYRO_PROTOCOL_PROGRAM_ADDRESS>(input: CreateTxInput<TAccountVault, TAccountTransaction, TAccountPolicyAccount, TAccountPolicyProgram, TAccountVaultSigner, TAccountSigner, TAccountSystemProgram>, config?: {
325
+ programAddress?: TProgramAddress;
326
+ }): CreateTxInstruction<TProgramAddress, TAccountVault, TAccountTransaction, TAccountPolicyAccount, TAccountPolicyProgram, TAccountVaultSigner, TAccountSigner, TAccountSystemProgram>;
327
+ type ParsedCreateTxInstruction<TProgram extends string = typeof HYRO_PROTOCOL_PROGRAM_ADDRESS, TAccountMetas extends readonly AccountMeta[] = readonly AccountMeta[]> = {
328
+ programAddress: Address<TProgram>;
329
+ accounts: {
330
+ vault: TAccountMetas[0];
331
+ transaction: TAccountMetas[1];
332
+ policyAccount: TAccountMetas[2];
333
+ policyProgram: TAccountMetas[3];
334
+ vaultSigner: TAccountMetas[4];
335
+ signer: TAccountMetas[5];
336
+ systemProgram: TAccountMetas[6];
337
+ };
338
+ data: CreateTxInstructionData;
339
+ };
340
+ declare function parseCreateTxInstruction<TProgram extends string, TAccountMetas extends readonly AccountMeta[]>(instruction: Instruction<TProgram> & InstructionWithAccounts<TAccountMetas> & InstructionWithData<ReadonlyUint8Array>): ParsedCreateTxInstruction<TProgram, TAccountMetas>;
341
+
342
+ declare const EXECUTE_TX_DISCRIMINATOR: Uint8Array<ArrayBuffer>;
343
+ declare function getExecuteTxDiscriminatorBytes(): ReadonlyUint8Array;
344
+ type ExecuteTxInstruction<TProgram extends string = typeof HYRO_PROTOCOL_PROGRAM_ADDRESS, TAccountVault extends string | AccountMeta<string> = string, TAccountTransaction extends string | AccountMeta<string> = string, TAccountVaultSigner extends string | AccountMeta<string> = string, TAccountPolicyAccount extends string | AccountMeta<string> = string, TAccountPolicyProgram extends string | AccountMeta<string> = string, TAccountSigner extends string | AccountMeta<string> = string, TRemainingAccounts extends readonly AccountMeta<string>[] = []> = Instruction<TProgram> & InstructionWithData<ReadonlyUint8Array> & InstructionWithAccounts<[
345
+ TAccountVault extends string ? ReadonlyAccount<TAccountVault> : TAccountVault,
346
+ TAccountTransaction extends string ? ReadonlyAccount<TAccountTransaction> : TAccountTransaction,
347
+ TAccountVaultSigner extends string ? ReadonlyAccount<TAccountVaultSigner> : TAccountVaultSigner,
348
+ TAccountPolicyAccount extends string ? WritableAccount<TAccountPolicyAccount> : TAccountPolicyAccount,
349
+ TAccountPolicyProgram extends string ? ReadonlyAccount<TAccountPolicyProgram> : TAccountPolicyProgram,
350
+ TAccountSigner extends string ? WritableSignerAccount<TAccountSigner> & AccountSignerMeta<TAccountSigner> : TAccountSigner,
351
+ ...TRemainingAccounts
352
+ ]>;
353
+ type ExecuteTxInstructionData = {
354
+ discriminator: ReadonlyUint8Array;
355
+ };
356
+ type ExecuteTxInstructionDataArgs = {};
357
+ declare function getExecuteTxInstructionDataEncoder(): FixedSizeEncoder<ExecuteTxInstructionDataArgs>;
358
+ declare function getExecuteTxInstructionDataDecoder(): FixedSizeDecoder<ExecuteTxInstructionData>;
359
+ declare function getExecuteTxInstructionDataCodec(): FixedSizeCodec<ExecuteTxInstructionDataArgs, ExecuteTxInstructionData>;
360
+ type ExecuteTxAsyncInput<TAccountVault extends string = string, TAccountTransaction extends string = string, TAccountVaultSigner extends string = string, TAccountPolicyAccount extends string = string, TAccountPolicyProgram extends string = string, TAccountSigner extends string = string> = {
361
+ vault: Address<TAccountVault>;
362
+ transaction: Address<TAccountTransaction>;
363
+ vaultSigner?: Address<TAccountVaultSigner>;
364
+ policyAccount: Address<TAccountPolicyAccount>;
365
+ policyProgram: Address<TAccountPolicyProgram>;
366
+ signer: TransactionSigner<TAccountSigner>;
367
+ };
368
+ declare function getExecuteTxInstructionAsync<TAccountVault extends string, TAccountTransaction extends string, TAccountVaultSigner extends string, TAccountPolicyAccount extends string, TAccountPolicyProgram extends string, TAccountSigner extends string, TProgramAddress extends Address = typeof HYRO_PROTOCOL_PROGRAM_ADDRESS>(input: ExecuteTxAsyncInput<TAccountVault, TAccountTransaction, TAccountVaultSigner, TAccountPolicyAccount, TAccountPolicyProgram, TAccountSigner>, config?: {
369
+ programAddress?: TProgramAddress;
370
+ }): Promise<ExecuteTxInstruction<TProgramAddress, TAccountVault, TAccountTransaction, TAccountVaultSigner, TAccountPolicyAccount, TAccountPolicyProgram, TAccountSigner>>;
371
+ type ExecuteTxInput<TAccountVault extends string = string, TAccountTransaction extends string = string, TAccountVaultSigner extends string = string, TAccountPolicyAccount extends string = string, TAccountPolicyProgram extends string = string, TAccountSigner extends string = string> = {
372
+ vault: Address<TAccountVault>;
373
+ transaction: Address<TAccountTransaction>;
374
+ vaultSigner: Address<TAccountVaultSigner>;
375
+ policyAccount: Address<TAccountPolicyAccount>;
376
+ policyProgram: Address<TAccountPolicyProgram>;
377
+ signer: TransactionSigner<TAccountSigner>;
378
+ };
379
+ declare function getExecuteTxInstruction<TAccountVault extends string, TAccountTransaction extends string, TAccountVaultSigner extends string, TAccountPolicyAccount extends string, TAccountPolicyProgram extends string, TAccountSigner extends string, TProgramAddress extends Address = typeof HYRO_PROTOCOL_PROGRAM_ADDRESS>(input: ExecuteTxInput<TAccountVault, TAccountTransaction, TAccountVaultSigner, TAccountPolicyAccount, TAccountPolicyProgram, TAccountSigner>, config?: {
380
+ programAddress?: TProgramAddress;
381
+ }): ExecuteTxInstruction<TProgramAddress, TAccountVault, TAccountTransaction, TAccountVaultSigner, TAccountPolicyAccount, TAccountPolicyProgram, TAccountSigner>;
382
+ type ParsedExecuteTxInstruction<TProgram extends string = typeof HYRO_PROTOCOL_PROGRAM_ADDRESS, TAccountMetas extends readonly AccountMeta[] = readonly AccountMeta[]> = {
383
+ programAddress: Address<TProgram>;
384
+ accounts: {
385
+ vault: TAccountMetas[0];
386
+ transaction: TAccountMetas[1];
387
+ vaultSigner: TAccountMetas[2];
388
+ policyAccount: TAccountMetas[3];
389
+ policyProgram: TAccountMetas[4];
390
+ signer: TAccountMetas[5];
391
+ };
392
+ data: ExecuteTxInstructionData;
393
+ };
394
+ declare function parseExecuteTxInstruction<TProgram extends string, TAccountMetas extends readonly AccountMeta[]>(instruction: Instruction<TProgram> & InstructionWithAccounts<TAccountMetas> & InstructionWithData<ReadonlyUint8Array>): ParsedExecuteTxInstruction<TProgram, TAccountMetas>;
395
+
396
+ declare const INITIALIZE_VAULT_DISCRIMINATOR: Uint8Array<ArrayBuffer>;
397
+ declare function getInitializeVaultDiscriminatorBytes(): ReadonlyUint8Array;
398
+ type InitializeVaultInstruction<TProgram extends string = typeof HYRO_PROTOCOL_PROGRAM_ADDRESS, TAccountVault extends string | AccountMeta<string> = string, TAccountAuthority extends string | AccountMeta<string> = string, TAccountSigner extends string | AccountMeta<string> = string, TAccountSystemProgram extends string | AccountMeta<string> = '11111111111111111111111111111111', TAccountShareSignerPda extends string | AccountMeta<string> = string, TAccountShareMint extends string | AccountMeta<string> = string, TAccountVaultTokenAccount extends string | AccountMeta<string> = string, TAccountAuthorityTokenAccount extends string | AccountMeta<string> = string, TAccountUnderlyingMint extends string | AccountMeta<string> = string, TAccountTokenProgram extends string | AccountMeta<string> = 'TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA', TAccountRent extends string | AccountMeta<string> = 'SysvarRent111111111111111111111111111111111', TRemainingAccounts extends readonly AccountMeta<string>[] = []> = Instruction<TProgram> & InstructionWithData<ReadonlyUint8Array> & InstructionWithAccounts<[
399
+ TAccountVault extends string ? WritableAccount<TAccountVault> : TAccountVault,
400
+ TAccountAuthority extends string ? ReadonlyAccount<TAccountAuthority> : TAccountAuthority,
401
+ TAccountSigner extends string ? WritableSignerAccount<TAccountSigner> & AccountSignerMeta<TAccountSigner> : TAccountSigner,
402
+ TAccountSystemProgram extends string ? ReadonlyAccount<TAccountSystemProgram> : TAccountSystemProgram,
403
+ TAccountShareSignerPda extends string ? ReadonlyAccount<TAccountShareSignerPda> : TAccountShareSignerPda,
404
+ TAccountShareMint extends string ? WritableAccount<TAccountShareMint> : TAccountShareMint,
405
+ TAccountVaultTokenAccount extends string ? WritableAccount<TAccountVaultTokenAccount> : TAccountVaultTokenAccount,
406
+ TAccountAuthorityTokenAccount extends string ? WritableAccount<TAccountAuthorityTokenAccount> : TAccountAuthorityTokenAccount,
407
+ TAccountUnderlyingMint extends string ? ReadonlyAccount<TAccountUnderlyingMint> : TAccountUnderlyingMint,
408
+ TAccountTokenProgram extends string ? ReadonlyAccount<TAccountTokenProgram> : TAccountTokenProgram,
409
+ TAccountRent extends string ? ReadonlyAccount<TAccountRent> : TAccountRent,
410
+ ...TRemainingAccounts
411
+ ]>;
412
+ type InitializeVaultInstructionData = {
413
+ discriminator: ReadonlyUint8Array;
414
+ seed: string;
415
+ policyProgram: Address;
416
+ };
417
+ type InitializeVaultInstructionDataArgs = {
418
+ seed: string;
419
+ policyProgram: Address;
420
+ };
421
+ declare function getInitializeVaultInstructionDataEncoder(): Encoder<InitializeVaultInstructionDataArgs>;
422
+ declare function getInitializeVaultInstructionDataDecoder(): Decoder<InitializeVaultInstructionData>;
423
+ declare function getInitializeVaultInstructionDataCodec(): Codec<InitializeVaultInstructionDataArgs, InitializeVaultInstructionData>;
424
+ type InitializeVaultAsyncInput<TAccountVault extends string = string, TAccountAuthority extends string = string, TAccountSigner extends string = string, TAccountSystemProgram extends string = string, TAccountShareSignerPda extends string = string, TAccountShareMint extends string = string, TAccountVaultTokenAccount extends string = string, TAccountAuthorityTokenAccount extends string = string, TAccountUnderlyingMint extends string = string, TAccountTokenProgram extends string = string, TAccountRent extends string = string> = {
425
+ vault?: Address<TAccountVault>;
426
+ authority?: Address<TAccountAuthority>;
427
+ signer: TransactionSigner<TAccountSigner>;
428
+ systemProgram?: Address<TAccountSystemProgram>;
429
+ shareSignerPda?: Address<TAccountShareSignerPda>;
430
+ shareMint?: Address<TAccountShareMint>;
431
+ vaultTokenAccount?: Address<TAccountVaultTokenAccount>;
432
+ authorityTokenAccount?: Address<TAccountAuthorityTokenAccount>;
433
+ underlyingMint: Address<TAccountUnderlyingMint>;
434
+ tokenProgram?: Address<TAccountTokenProgram>;
435
+ rent?: Address<TAccountRent>;
436
+ seed: InitializeVaultInstructionDataArgs['seed'];
437
+ policyProgram: InitializeVaultInstructionDataArgs['policyProgram'];
438
+ };
439
+ declare function getInitializeVaultInstructionAsync<TAccountVault extends string, TAccountAuthority extends string, TAccountSigner extends string, TAccountSystemProgram extends string, TAccountShareSignerPda extends string, TAccountShareMint extends string, TAccountVaultTokenAccount extends string, TAccountAuthorityTokenAccount extends string, TAccountUnderlyingMint extends string, TAccountTokenProgram extends string, TAccountRent extends string, TProgramAddress extends Address = typeof HYRO_PROTOCOL_PROGRAM_ADDRESS>(input: InitializeVaultAsyncInput<TAccountVault, TAccountAuthority, TAccountSigner, TAccountSystemProgram, TAccountShareSignerPda, TAccountShareMint, TAccountVaultTokenAccount, TAccountAuthorityTokenAccount, TAccountUnderlyingMint, TAccountTokenProgram, TAccountRent>, config?: {
440
+ programAddress?: TProgramAddress;
441
+ }): Promise<InitializeVaultInstruction<TProgramAddress, TAccountVault, TAccountAuthority, TAccountSigner, TAccountSystemProgram, TAccountShareSignerPda, TAccountShareMint, TAccountVaultTokenAccount, TAccountAuthorityTokenAccount, TAccountUnderlyingMint, TAccountTokenProgram, TAccountRent>>;
442
+ type InitializeVaultInput<TAccountVault extends string = string, TAccountAuthority extends string = string, TAccountSigner extends string = string, TAccountSystemProgram extends string = string, TAccountShareSignerPda extends string = string, TAccountShareMint extends string = string, TAccountVaultTokenAccount extends string = string, TAccountAuthorityTokenAccount extends string = string, TAccountUnderlyingMint extends string = string, TAccountTokenProgram extends string = string, TAccountRent extends string = string> = {
443
+ vault: Address<TAccountVault>;
444
+ authority: Address<TAccountAuthority>;
445
+ signer: TransactionSigner<TAccountSigner>;
446
+ systemProgram?: Address<TAccountSystemProgram>;
447
+ shareSignerPda: Address<TAccountShareSignerPda>;
448
+ shareMint: Address<TAccountShareMint>;
449
+ vaultTokenAccount: Address<TAccountVaultTokenAccount>;
450
+ authorityTokenAccount: Address<TAccountAuthorityTokenAccount>;
451
+ underlyingMint: Address<TAccountUnderlyingMint>;
452
+ tokenProgram?: Address<TAccountTokenProgram>;
453
+ rent?: Address<TAccountRent>;
454
+ seed: InitializeVaultInstructionDataArgs['seed'];
455
+ policyProgram: InitializeVaultInstructionDataArgs['policyProgram'];
456
+ };
457
+ declare function getInitializeVaultInstruction<TAccountVault extends string, TAccountAuthority extends string, TAccountSigner extends string, TAccountSystemProgram extends string, TAccountShareSignerPda extends string, TAccountShareMint extends string, TAccountVaultTokenAccount extends string, TAccountAuthorityTokenAccount extends string, TAccountUnderlyingMint extends string, TAccountTokenProgram extends string, TAccountRent extends string, TProgramAddress extends Address = typeof HYRO_PROTOCOL_PROGRAM_ADDRESS>(input: InitializeVaultInput<TAccountVault, TAccountAuthority, TAccountSigner, TAccountSystemProgram, TAccountShareSignerPda, TAccountShareMint, TAccountVaultTokenAccount, TAccountAuthorityTokenAccount, TAccountUnderlyingMint, TAccountTokenProgram, TAccountRent>, config?: {
458
+ programAddress?: TProgramAddress;
459
+ }): InitializeVaultInstruction<TProgramAddress, TAccountVault, TAccountAuthority, TAccountSigner, TAccountSystemProgram, TAccountShareSignerPda, TAccountShareMint, TAccountVaultTokenAccount, TAccountAuthorityTokenAccount, TAccountUnderlyingMint, TAccountTokenProgram, TAccountRent>;
460
+ type ParsedInitializeVaultInstruction<TProgram extends string = typeof HYRO_PROTOCOL_PROGRAM_ADDRESS, TAccountMetas extends readonly AccountMeta[] = readonly AccountMeta[]> = {
461
+ programAddress: Address<TProgram>;
462
+ accounts: {
463
+ vault: TAccountMetas[0];
464
+ authority: TAccountMetas[1];
465
+ signer: TAccountMetas[2];
466
+ systemProgram: TAccountMetas[3];
467
+ shareSignerPda: TAccountMetas[4];
468
+ shareMint: TAccountMetas[5];
469
+ vaultTokenAccount: TAccountMetas[6];
470
+ authorityTokenAccount: TAccountMetas[7];
471
+ underlyingMint: TAccountMetas[8];
472
+ tokenProgram: TAccountMetas[9];
473
+ rent: TAccountMetas[10];
474
+ };
475
+ data: InitializeVaultInstructionData;
476
+ };
477
+ declare function parseInitializeVaultInstruction<TProgram extends string, TAccountMetas extends readonly AccountMeta[]>(instruction: Instruction<TProgram> & InstructionWithAccounts<TAccountMetas> & InstructionWithData<ReadonlyUint8Array>): ParsedInitializeVaultInstruction<TProgram, TAccountMetas>;
478
+
479
+ declare const INITIALIZE_LIMIT_TRANSFER_DISCRIMINATOR: Uint8Array<ArrayBuffer>;
480
+ declare function getInitializeLimitTransferDiscriminatorBytes(): ReadonlyUint8Array;
481
+ type InitializeLimitTransferInstruction<TProgram extends string = typeof POLICY_LIMIT_TRANSFER_PROGRAM_ADDRESS, TAccountVault extends string | AccountMeta<string> = string, TAccountPolicyAccount extends string | AccountMeta<string> = string, TAccountSigner extends string | AccountMeta<string> = string, TAccountSystemProgram extends string | AccountMeta<string> = '11111111111111111111111111111111', TRemainingAccounts extends readonly AccountMeta<string>[] = []> = Instruction<TProgram> & InstructionWithData<ReadonlyUint8Array> & InstructionWithAccounts<[
482
+ TAccountVault extends string ? ReadonlyAccount<TAccountVault> : TAccountVault,
483
+ TAccountPolicyAccount extends string ? WritableAccount<TAccountPolicyAccount> : TAccountPolicyAccount,
484
+ TAccountSigner extends string ? WritableSignerAccount<TAccountSigner> & AccountSignerMeta<TAccountSigner> : TAccountSigner,
485
+ TAccountSystemProgram extends string ? ReadonlyAccount<TAccountSystemProgram> : TAccountSystemProgram,
486
+ ...TRemainingAccounts
487
+ ]>;
488
+ type InitializeLimitTransferInstructionData = {
489
+ discriminator: ReadonlyUint8Array;
490
+ min: bigint;
491
+ max: bigint;
492
+ };
493
+ type InitializeLimitTransferInstructionDataArgs = {
494
+ min: number | bigint;
495
+ max: number | bigint;
496
+ };
497
+ declare function getInitializeLimitTransferInstructionDataEncoder(): FixedSizeEncoder<InitializeLimitTransferInstructionDataArgs>;
498
+ declare function getInitializeLimitTransferInstructionDataDecoder(): FixedSizeDecoder<InitializeLimitTransferInstructionData>;
499
+ declare function getInitializeLimitTransferInstructionDataCodec(): FixedSizeCodec<InitializeLimitTransferInstructionDataArgs, InitializeLimitTransferInstructionData>;
500
+ type InitializeLimitTransferAsyncInput<TAccountVault extends string = string, TAccountPolicyAccount extends string = string, TAccountSigner extends string = string, TAccountSystemProgram extends string = string> = {
501
+ vault: Address<TAccountVault>;
502
+ policyAccount?: Address<TAccountPolicyAccount>;
503
+ signer: TransactionSigner<TAccountSigner>;
504
+ systemProgram?: Address<TAccountSystemProgram>;
505
+ min: InitializeLimitTransferInstructionDataArgs['min'];
506
+ max: InitializeLimitTransferInstructionDataArgs['max'];
507
+ };
508
+ declare function getInitializeLimitTransferInstructionAsync<TAccountVault extends string, TAccountPolicyAccount extends string, TAccountSigner extends string, TAccountSystemProgram extends string, TProgramAddress extends Address = typeof POLICY_LIMIT_TRANSFER_PROGRAM_ADDRESS>(input: InitializeLimitTransferAsyncInput<TAccountVault, TAccountPolicyAccount, TAccountSigner, TAccountSystemProgram>, config?: {
509
+ programAddress?: TProgramAddress;
510
+ }): Promise<InitializeLimitTransferInstruction<TProgramAddress, TAccountVault, TAccountPolicyAccount, TAccountSigner, TAccountSystemProgram>>;
511
+ type InitializeLimitTransferInput<TAccountVault extends string = string, TAccountPolicyAccount extends string = string, TAccountSigner extends string = string, TAccountSystemProgram extends string = string> = {
512
+ vault: Address<TAccountVault>;
513
+ policyAccount: Address<TAccountPolicyAccount>;
514
+ signer: TransactionSigner<TAccountSigner>;
515
+ systemProgram?: Address<TAccountSystemProgram>;
516
+ min: InitializeLimitTransferInstructionDataArgs['min'];
517
+ max: InitializeLimitTransferInstructionDataArgs['max'];
518
+ };
519
+ declare function getInitializeLimitTransferInstruction<TAccountVault extends string, TAccountPolicyAccount extends string, TAccountSigner extends string, TAccountSystemProgram extends string, TProgramAddress extends Address = typeof POLICY_LIMIT_TRANSFER_PROGRAM_ADDRESS>(input: InitializeLimitTransferInput<TAccountVault, TAccountPolicyAccount, TAccountSigner, TAccountSystemProgram>, config?: {
520
+ programAddress?: TProgramAddress;
521
+ }): InitializeLimitTransferInstruction<TProgramAddress, TAccountVault, TAccountPolicyAccount, TAccountSigner, TAccountSystemProgram>;
522
+ type ParsedInitializeLimitTransferInstruction<TProgram extends string = typeof POLICY_LIMIT_TRANSFER_PROGRAM_ADDRESS, TAccountMetas extends readonly AccountMeta[] = readonly AccountMeta[]> = {
523
+ programAddress: Address<TProgram>;
524
+ accounts: {
525
+ vault: TAccountMetas[0];
526
+ policyAccount: TAccountMetas[1];
527
+ signer: TAccountMetas[2];
528
+ systemProgram: TAccountMetas[3];
529
+ };
530
+ data: InitializeLimitTransferInstructionData;
531
+ };
532
+ declare function parseInitializeLimitTransferInstruction<TProgram extends string, TAccountMetas extends readonly AccountMeta[]>(instruction: Instruction<TProgram> & InstructionWithAccounts<TAccountMetas> & InstructionWithData<ReadonlyUint8Array>): ParsedInitializeLimitTransferInstruction<TProgram, TAccountMetas>;
533
+
534
+ declare const APPROVE_DISCRIMINATOR: Uint8Array<ArrayBuffer>;
535
+ declare function getApproveDiscriminatorBytes(): ReadonlyUint8Array;
536
+ type ApproveInstruction<TProgram extends string = typeof POLICY_MULTISIG_PROGRAM_ADDRESS, TAccountPolicyAccount extends string | AccountMeta<string> = string, TAccountOwner extends string | AccountMeta<string> = string, TRemainingAccounts extends readonly AccountMeta<string>[] = []> = Instruction<TProgram> & InstructionWithData<ReadonlyUint8Array> & InstructionWithAccounts<[
537
+ TAccountPolicyAccount extends string ? WritableAccount<TAccountPolicyAccount> : TAccountPolicyAccount,
538
+ TAccountOwner extends string ? ReadonlySignerAccount<TAccountOwner> & AccountSignerMeta<TAccountOwner> : TAccountOwner,
539
+ ...TRemainingAccounts
540
+ ]>;
541
+ type ApproveInstructionData = {
542
+ discriminator: ReadonlyUint8Array;
543
+ };
544
+ type ApproveInstructionDataArgs = {};
545
+ declare function getApproveInstructionDataEncoder(): FixedSizeEncoder<ApproveInstructionDataArgs>;
546
+ declare function getApproveInstructionDataDecoder(): FixedSizeDecoder<ApproveInstructionData>;
547
+ declare function getApproveInstructionDataCodec(): FixedSizeCodec<ApproveInstructionDataArgs, ApproveInstructionData>;
548
+ type ApproveInput<TAccountPolicyAccount extends string = string, TAccountOwner extends string = string> = {
549
+ policyAccount: Address<TAccountPolicyAccount>;
550
+ owner: TransactionSigner<TAccountOwner>;
551
+ };
552
+ declare function getApproveInstruction<TAccountPolicyAccount extends string, TAccountOwner extends string, TProgramAddress extends Address = typeof POLICY_MULTISIG_PROGRAM_ADDRESS>(input: ApproveInput<TAccountPolicyAccount, TAccountOwner>, config?: {
553
+ programAddress?: TProgramAddress;
554
+ }): ApproveInstruction<TProgramAddress, TAccountPolicyAccount, TAccountOwner>;
555
+ type ParsedApproveInstruction<TProgram extends string = typeof POLICY_MULTISIG_PROGRAM_ADDRESS, TAccountMetas extends readonly AccountMeta[] = readonly AccountMeta[]> = {
556
+ programAddress: Address<TProgram>;
557
+ accounts: {
558
+ policyAccount: TAccountMetas[0];
559
+ owner: TAccountMetas[1];
560
+ };
561
+ data: ApproveInstructionData;
562
+ };
563
+ declare function parseApproveInstruction<TProgram extends string, TAccountMetas extends readonly AccountMeta[]>(instruction: Instruction<TProgram> & InstructionWithAccounts<TAccountMetas> & InstructionWithData<ReadonlyUint8Array>): ParsedApproveInstruction<TProgram, TAccountMetas>;
564
+
565
+ declare const INITIALIZE_MULTISIG_DISCRIMINATOR: Uint8Array<ArrayBuffer>;
566
+ declare function getInitializeMultisigDiscriminatorBytes(): ReadonlyUint8Array;
567
+ type InitializeMultisigInstruction<TProgram extends string = typeof POLICY_MULTISIG_PROGRAM_ADDRESS, TAccountVault extends string | AccountMeta<string> = string, TAccountPolicyAccount extends string | AccountMeta<string> = string, TAccountSigner extends string | AccountMeta<string> = string, TAccountSystemProgram extends string | AccountMeta<string> = '11111111111111111111111111111111', TRemainingAccounts extends readonly AccountMeta<string>[] = []> = Instruction<TProgram> & InstructionWithData<ReadonlyUint8Array> & InstructionWithAccounts<[
568
+ TAccountVault extends string ? ReadonlyAccount<TAccountVault> : TAccountVault,
569
+ TAccountPolicyAccount extends string ? WritableAccount<TAccountPolicyAccount> : TAccountPolicyAccount,
570
+ TAccountSigner extends string ? WritableSignerAccount<TAccountSigner> & AccountSignerMeta<TAccountSigner> : TAccountSigner,
571
+ TAccountSystemProgram extends string ? ReadonlyAccount<TAccountSystemProgram> : TAccountSystemProgram,
572
+ ...TRemainingAccounts
573
+ ]>;
574
+ type InitializeMultisigInstructionData = {
575
+ discriminator: ReadonlyUint8Array;
576
+ owners: Array<Address>;
577
+ threshold: bigint;
578
+ };
579
+ type InitializeMultisigInstructionDataArgs = {
580
+ owners: Array<Address>;
581
+ threshold: number | bigint;
582
+ };
583
+ declare function getInitializeMultisigInstructionDataEncoder(): Encoder<InitializeMultisigInstructionDataArgs>;
584
+ declare function getInitializeMultisigInstructionDataDecoder(): Decoder<InitializeMultisigInstructionData>;
585
+ declare function getInitializeMultisigInstructionDataCodec(): Codec<InitializeMultisigInstructionDataArgs, InitializeMultisigInstructionData>;
586
+ type InitializeMultisigAsyncInput<TAccountVault extends string = string, TAccountPolicyAccount extends string = string, TAccountSigner extends string = string, TAccountSystemProgram extends string = string> = {
587
+ vault: Address<TAccountVault>;
588
+ policyAccount?: Address<TAccountPolicyAccount>;
589
+ signer: TransactionSigner<TAccountSigner>;
590
+ systemProgram?: Address<TAccountSystemProgram>;
591
+ owners: InitializeMultisigInstructionDataArgs['owners'];
592
+ threshold: InitializeMultisigInstructionDataArgs['threshold'];
593
+ };
594
+ declare function getInitializeMultisigInstructionAsync<TAccountVault extends string, TAccountPolicyAccount extends string, TAccountSigner extends string, TAccountSystemProgram extends string, TProgramAddress extends Address = typeof POLICY_MULTISIG_PROGRAM_ADDRESS>(input: InitializeMultisigAsyncInput<TAccountVault, TAccountPolicyAccount, TAccountSigner, TAccountSystemProgram>, config?: {
595
+ programAddress?: TProgramAddress;
596
+ }): Promise<InitializeMultisigInstruction<TProgramAddress, TAccountVault, TAccountPolicyAccount, TAccountSigner, TAccountSystemProgram>>;
597
+ type InitializeMultisigInput<TAccountVault extends string = string, TAccountPolicyAccount extends string = string, TAccountSigner extends string = string, TAccountSystemProgram extends string = string> = {
598
+ vault: Address<TAccountVault>;
599
+ policyAccount: Address<TAccountPolicyAccount>;
600
+ signer: TransactionSigner<TAccountSigner>;
601
+ systemProgram?: Address<TAccountSystemProgram>;
602
+ owners: InitializeMultisigInstructionDataArgs['owners'];
603
+ threshold: InitializeMultisigInstructionDataArgs['threshold'];
604
+ };
605
+ declare function getInitializeMultisigInstruction<TAccountVault extends string, TAccountPolicyAccount extends string, TAccountSigner extends string, TAccountSystemProgram extends string, TProgramAddress extends Address = typeof POLICY_MULTISIG_PROGRAM_ADDRESS>(input: InitializeMultisigInput<TAccountVault, TAccountPolicyAccount, TAccountSigner, TAccountSystemProgram>, config?: {
606
+ programAddress?: TProgramAddress;
607
+ }): InitializeMultisigInstruction<TProgramAddress, TAccountVault, TAccountPolicyAccount, TAccountSigner, TAccountSystemProgram>;
608
+ type ParsedInitializeMultisigInstruction<TProgram extends string = typeof POLICY_MULTISIG_PROGRAM_ADDRESS, TAccountMetas extends readonly AccountMeta[] = readonly AccountMeta[]> = {
609
+ programAddress: Address<TProgram>;
610
+ accounts: {
611
+ vault: TAccountMetas[0];
612
+ policyAccount: TAccountMetas[1];
613
+ signer: TAccountMetas[2];
614
+ systemProgram: TAccountMetas[3];
615
+ };
616
+ data: InitializeMultisigInstructionData;
617
+ };
618
+ declare function parseInitializeMultisigInstruction<TProgram extends string, TAccountMetas extends readonly AccountMeta[]>(instruction: Instruction<TProgram> & InstructionWithAccounts<TAccountMetas> & InstructionWithData<ReadonlyUint8Array>): ParsedInitializeMultisigInstruction<TProgram, TAccountMetas>;
619
+
620
+ declare const INITIALIZE_OWNERS_DISCRIMINATOR: Uint8Array<ArrayBuffer>;
621
+ declare function getInitializeOwnersDiscriminatorBytes(): ReadonlyUint8Array;
622
+ type InitializeOwnersInstruction<TProgram extends string = typeof POLICY_OWNERS_PROGRAM_ADDRESS, TAccountVault extends string | AccountMeta<string> = string, TAccountPolicyAccount extends string | AccountMeta<string> = string, TAccountSigner extends string | AccountMeta<string> = string, TAccountSystemProgram extends string | AccountMeta<string> = '11111111111111111111111111111111', TRemainingAccounts extends readonly AccountMeta<string>[] = []> = Instruction<TProgram> & InstructionWithData<ReadonlyUint8Array> & InstructionWithAccounts<[
623
+ TAccountVault extends string ? ReadonlyAccount<TAccountVault> : TAccountVault,
624
+ TAccountPolicyAccount extends string ? WritableAccount<TAccountPolicyAccount> : TAccountPolicyAccount,
625
+ TAccountSigner extends string ? WritableSignerAccount<TAccountSigner> & AccountSignerMeta<TAccountSigner> : TAccountSigner,
626
+ TAccountSystemProgram extends string ? ReadonlyAccount<TAccountSystemProgram> : TAccountSystemProgram,
627
+ ...TRemainingAccounts
628
+ ]>;
629
+ type InitializeOwnersInstructionData = {
630
+ discriminator: ReadonlyUint8Array;
631
+ owners: Array<Address>;
632
+ };
633
+ type InitializeOwnersInstructionDataArgs = {
634
+ owners: Array<Address>;
635
+ };
636
+ declare function getInitializeOwnersInstructionDataEncoder(): Encoder<InitializeOwnersInstructionDataArgs>;
637
+ declare function getInitializeOwnersInstructionDataDecoder(): Decoder<InitializeOwnersInstructionData>;
638
+ declare function getInitializeOwnersInstructionDataCodec(): Codec<InitializeOwnersInstructionDataArgs, InitializeOwnersInstructionData>;
639
+ type InitializeOwnersAsyncInput<TAccountVault extends string = string, TAccountPolicyAccount extends string = string, TAccountSigner extends string = string, TAccountSystemProgram extends string = string> = {
640
+ vault: Address<TAccountVault>;
641
+ policyAccount?: Address<TAccountPolicyAccount>;
642
+ signer: TransactionSigner<TAccountSigner>;
643
+ systemProgram?: Address<TAccountSystemProgram>;
644
+ owners: InitializeOwnersInstructionDataArgs['owners'];
645
+ };
646
+ declare function getInitializeOwnersInstructionAsync<TAccountVault extends string, TAccountPolicyAccount extends string, TAccountSigner extends string, TAccountSystemProgram extends string, TProgramAddress extends Address = typeof POLICY_OWNERS_PROGRAM_ADDRESS>(input: InitializeOwnersAsyncInput<TAccountVault, TAccountPolicyAccount, TAccountSigner, TAccountSystemProgram>, config?: {
647
+ programAddress?: TProgramAddress;
648
+ }): Promise<InitializeOwnersInstruction<TProgramAddress, TAccountVault, TAccountPolicyAccount, TAccountSigner, TAccountSystemProgram>>;
649
+ type InitializeOwnersInput<TAccountVault extends string = string, TAccountPolicyAccount extends string = string, TAccountSigner extends string = string, TAccountSystemProgram extends string = string> = {
650
+ vault: Address<TAccountVault>;
651
+ policyAccount: Address<TAccountPolicyAccount>;
652
+ signer: TransactionSigner<TAccountSigner>;
653
+ systemProgram?: Address<TAccountSystemProgram>;
654
+ owners: InitializeOwnersInstructionDataArgs['owners'];
655
+ };
656
+ declare function getInitializeOwnersInstruction<TAccountVault extends string, TAccountPolicyAccount extends string, TAccountSigner extends string, TAccountSystemProgram extends string, TProgramAddress extends Address = typeof POLICY_OWNERS_PROGRAM_ADDRESS>(input: InitializeOwnersInput<TAccountVault, TAccountPolicyAccount, TAccountSigner, TAccountSystemProgram>, config?: {
657
+ programAddress?: TProgramAddress;
658
+ }): InitializeOwnersInstruction<TProgramAddress, TAccountVault, TAccountPolicyAccount, TAccountSigner, TAccountSystemProgram>;
659
+ type ParsedInitializeOwnersInstruction<TProgram extends string = typeof POLICY_OWNERS_PROGRAM_ADDRESS, TAccountMetas extends readonly AccountMeta[] = readonly AccountMeta[]> = {
660
+ programAddress: Address<TProgram>;
661
+ accounts: {
662
+ vault: TAccountMetas[0];
663
+ policyAccount: TAccountMetas[1];
664
+ signer: TAccountMetas[2];
665
+ systemProgram: TAccountMetas[3];
666
+ };
667
+ data: InitializeOwnersInstructionData;
668
+ };
669
+ declare function parseInitializeOwnersInstruction<TProgram extends string, TAccountMetas extends readonly AccountMeta[]>(instruction: Instruction<TProgram> & InstructionWithAccounts<TAccountMetas> & InstructionWithData<ReadonlyUint8Array>): ParsedInitializeOwnersInstruction<TProgram, TAccountMetas>;
670
+
671
+ /**
672
+ * PDA Helper Functions for Hyro Protocol
673
+ */
674
+
675
+ /**
676
+ * Get Vault PDA and Authority PDA
677
+ * @param seed - The seed string for the vault
678
+ * @returns A tuple of [vaultPda, authorityPda]
679
+ */
680
+ declare function getVaultPda(seed: string): Promise<[ProgramDerivedAddress, ProgramDerivedAddress]>;
681
+ /**
682
+ * Get Transaction PDA
683
+ * @param vault - The vault PDA
684
+ * @param nonce - The transaction nonce
685
+ * @returns The transaction PDA
686
+ */
687
+ declare function getTransactionPda(vault: ProgramDerivedAddress, nonce: number | bigint): Promise<ProgramDerivedAddress>;
688
+ /**
689
+ * Get Vault Signer PDA (for share operations)
690
+ * @param vault - The vault PDA
691
+ * @returns The vault signer PDA
692
+ */
693
+ declare function getShareSignerPda(vault: ProgramDerivedAddress): Promise<ProgramDerivedAddress>;
694
+ /**
695
+ * Get Share Mint PDA
696
+ * @param vault - The vault PDA
697
+ * @returns The share mint PDA
698
+ */
699
+ declare function getShareMintPda(vault: ProgramDerivedAddress): Promise<ProgramDerivedAddress>;
700
+ /**
701
+ * Get Vault Token Account PDA
702
+ * @param vault - The vault PDA
703
+ * @param underlyingMint - The underlying token mint address
704
+ * @returns The vault token account PDA
705
+ */
706
+ declare function getVaultTokenAccountPda(vault: ProgramDerivedAddress, underlyingMint: Address): Promise<ProgramDerivedAddress>;
707
+ declare function getPolicyAccountPda(vault: ProgramDerivedAddress, policyprogram: Address): Promise<Address>;
708
+
709
+ export { APPROVE_DISCRIMINATOR, type ApproveInput, type ApproveInstruction, type ApproveInstructionData, type ApproveInstructionDataArgs, CREATE_TX_DISCRIMINATOR, type CreateTxAsyncInput, type CreateTxInput, type CreateTxInstruction, type CreateTxInstructionData, type CreateTxInstructionDataArgs, DROPPER_PROGRAM_ADDRESS, EXECUTE_TX_DISCRIMINATOR, type ExecuteTxAsyncInput, type ExecuteTxInput, type ExecuteTxInstruction, type ExecuteTxInstructionData, type ExecuteTxInstructionDataArgs, FeeCollectionFrequency, type FeeCollectionFrequencyArgs, HYRO_PROTOCOL_PROGRAM_ADDRESS, INITIALIZE_LIMIT_TRANSFER_DISCRIMINATOR, INITIALIZE_MULTISIG_DISCRIMINATOR, INITIALIZE_OWNERS_DISCRIMINATOR, INITIALIZE_VAULT_DISCRIMINATOR, type InitializeLimitTransferAsyncInput, type InitializeLimitTransferInput, type InitializeLimitTransferInstruction, type InitializeLimitTransferInstructionData, type InitializeLimitTransferInstructionDataArgs, type InitializeMultisigAsyncInput, type InitializeMultisigInput, type InitializeMultisigInstruction, type InitializeMultisigInstructionData, type InitializeMultisigInstructionDataArgs, type InitializeOwnersAsyncInput, type InitializeOwnersInput, type InitializeOwnersInstruction, type InitializeOwnersInstructionData, type InitializeOwnersInstructionDataArgs, type InitializeVaultAsyncInput, type InitializeVaultInput, type InitializeVaultInstruction, type InitializeVaultInstructionData, type InitializeVaultInstructionDataArgs, type ManagerFeeStructure, type ManagerFeeStructureArgs, POLICY_ALLOW_ANY_PROGRAM_ADDRESS, POLICY_CHALLENGES_PROGRAM_ADDRESS, POLICY_DENY_ALL_PROGRAM_ADDRESS, POLICY_LIMIT_TRANSFER_PROGRAM_ADDRESS, POLICY_MULTISIG_PROGRAM_ADDRESS, POLICY_OWNERS_PROGRAM_ADDRESS, type ParsedApproveInstruction, type ParsedCreateTxInstruction, type ParsedExecuteTxInstruction, type ParsedInitializeLimitTransferInstruction, type ParsedInitializeMultisigInstruction, type ParsedInitializeOwnersInstruction, type ParsedInitializeVaultInstruction, type ParsedTransferLamportsInstruction, Policy, TRANSFER_LAMPORTS_DISCRIMINATOR, type TransactionAccount, type TransactionAccountArgs, type TransferLamportsInput, type TransferLamportsInstruction, type TransferLamportsInstructionData, type TransferLamportsInstructionDataArgs, Vault, getApproveDiscriminatorBytes, getApproveInstruction, getApproveInstructionDataCodec, getApproveInstructionDataDecoder, getApproveInstructionDataEncoder, getCreateTxDiscriminatorBytes, getCreateTxInstruction, getCreateTxInstructionAsync, getCreateTxInstructionDataCodec, getCreateTxInstructionDataDecoder, getCreateTxInstructionDataEncoder, getExecuteTxDiscriminatorBytes, getExecuteTxInstruction, getExecuteTxInstructionAsync, getExecuteTxInstructionDataCodec, getExecuteTxInstructionDataDecoder, getExecuteTxInstructionDataEncoder, getFeeCollectionFrequencyCodec, getFeeCollectionFrequencyDecoder, getFeeCollectionFrequencyEncoder, getInitializeLimitTransferDiscriminatorBytes, getInitializeLimitTransferInstruction, getInitializeLimitTransferInstructionAsync, getInitializeLimitTransferInstructionDataCodec, getInitializeLimitTransferInstructionDataDecoder, getInitializeLimitTransferInstructionDataEncoder, getInitializeMultisigDiscriminatorBytes, getInitializeMultisigInstruction, getInitializeMultisigInstructionAsync, getInitializeMultisigInstructionDataCodec, getInitializeMultisigInstructionDataDecoder, getInitializeMultisigInstructionDataEncoder, getInitializeOwnersDiscriminatorBytes, getInitializeOwnersInstruction, getInitializeOwnersInstructionAsync, getInitializeOwnersInstructionDataCodec, getInitializeOwnersInstructionDataDecoder, getInitializeOwnersInstructionDataEncoder, getInitializeVaultDiscriminatorBytes, getInitializeVaultInstruction, getInitializeVaultInstructionAsync, getInitializeVaultInstructionDataCodec, getInitializeVaultInstructionDataDecoder, getInitializeVaultInstructionDataEncoder, getManagerFeeStructureCodec, getManagerFeeStructureDecoder, getManagerFeeStructureEncoder, getPolicyAccountPda, getShareMintPda, getShareSignerPda, getTransactionAccountCodec, getTransactionAccountDecoder, getTransactionAccountEncoder, getTransactionPda, getTransferLamportsDiscriminatorBytes, getTransferLamportsInstruction, getTransferLamportsInstructionDataCodec, getTransferLamportsInstructionDataDecoder, getTransferLamportsInstructionDataEncoder, getVaultPda, getVaultTokenAccountPda, parseApproveInstruction, parseCreateTxInstruction, parseExecuteTxInstruction, parseInitializeLimitTransferInstruction, parseInitializeMultisigInstruction, parseInitializeOwnersInstruction, parseInitializeVaultInstruction, parseTransferLamportsInstruction };