@zebec-network/zebec-vault-sdk 3.1.0 → 4.1.0

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.
@@ -2,4 +2,6 @@ export type RpcNetwork = "mainnet-beta" | "devnet";
2
2
  export declare const ZEBEC_VAULT_PROGRAM_ID: Record<RpcNetwork, string>;
3
3
  export declare const TEN_BIGNUM: BigNumber;
4
4
  export declare const JUPITER_AGGREGATOR_PROGRAM_ID = "JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4";
5
- export declare const CARD_LOOKUP_TABLE_ADDRESS = "CgPARkLEbygMJ8C9Z1u6MP57gvdnUERCxdhmR9bTFUSJ";
5
+ export declare const CARD_LOOKUP_TABLE_ADDRESS: Record<RpcNetwork, string>;
6
+ export declare const JUPITER_SWAP_API = "https://lite-api.jup.ag/swap/v1/swap";
7
+ export declare const STAKE_LOOKUP_TABLE_ADDRESS: Record<RpcNetwork, string>;
package/dist/constants.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CARD_LOOKUP_TABLE_ADDRESS = exports.JUPITER_AGGREGATOR_PROGRAM_ID = exports.TEN_BIGNUM = exports.ZEBEC_VAULT_PROGRAM_ID = void 0;
3
+ exports.STAKE_LOOKUP_TABLE_ADDRESS = exports.JUPITER_SWAP_API = exports.CARD_LOOKUP_TABLE_ADDRESS = exports.JUPITER_AGGREGATOR_PROGRAM_ID = exports.TEN_BIGNUM = exports.ZEBEC_VAULT_PROGRAM_ID = void 0;
4
4
  const bignumber_js_1 = require("bignumber.js");
5
5
  exports.ZEBEC_VAULT_PROGRAM_ID = {
6
6
  "mainnet-beta": "ANqQ8QaAMAyLrY2LVLKALP7pBWRvdTrSF94PBTAvCyim",
@@ -8,4 +8,12 @@ exports.ZEBEC_VAULT_PROGRAM_ID = {
8
8
  };
9
9
  exports.TEN_BIGNUM = (0, bignumber_js_1.BigNumber)(10);
10
10
  exports.JUPITER_AGGREGATOR_PROGRAM_ID = "JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4";
11
- exports.CARD_LOOKUP_TABLE_ADDRESS = "CgPARkLEbygMJ8C9Z1u6MP57gvdnUERCxdhmR9bTFUSJ";
11
+ exports.CARD_LOOKUP_TABLE_ADDRESS = {
12
+ "mainnet-beta": "CgPARkLEbygMJ8C9Z1u6MP57gvdnUERCxdhmR9bTFUSJ",
13
+ devnet: "CgPARkLEbygMJ8C9Z1u6MP57gvdnUERCxdhmR9bTFUSJ",
14
+ };
15
+ exports.JUPITER_SWAP_API = "https://lite-api.jup.ag/swap/v1/swap";
16
+ exports.STAKE_LOOKUP_TABLE_ADDRESS = {
17
+ "mainnet-beta": "C4R2sL6yj7bzKfbdfwCfH68DZZ3QnzdmedE9wQqTfAAA",
18
+ devnet: "C4R2sL6yj7bzKfbdfwCfH68DZZ3QnzdmedE9wQqTfAAA",
19
+ };
@@ -0,0 +1,30 @@
1
+ export declare class AmountOutOfRangeError extends Error {
2
+ readonly minRange: string;
3
+ readonly maxRange: string;
4
+ readonly value: string;
5
+ name: string;
6
+ constructor(minRange: string, maxRange: string, value: string);
7
+ }
8
+ export declare class DailyCardLimitReachedError extends Error {
9
+ readonly dailyCardLimit: string;
10
+ readonly requestedAmount: string;
11
+ name: string;
12
+ constructor(dailyCardLimit: string, requestedAmount: string);
13
+ }
14
+ export declare class InvalidUsdcAddressError extends Error {
15
+ readonly mintAddress: string;
16
+ name: string;
17
+ constructor(mintAddress: string);
18
+ }
19
+ export declare class NotEnoughBalanceError extends Error {
20
+ name: string;
21
+ constructor(message: string);
22
+ }
23
+ export declare class QuoteResponseError extends Error {
24
+ name: string;
25
+ constructor(message: string);
26
+ }
27
+ export declare class AssociatedTokenAccountDoesNotExistsError extends Error {
28
+ name: string;
29
+ constructor(message: string);
30
+ }
package/dist/errors.js ADDED
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AssociatedTokenAccountDoesNotExistsError = exports.QuoteResponseError = exports.NotEnoughBalanceError = exports.InvalidUsdcAddressError = exports.DailyCardLimitReachedError = exports.AmountOutOfRangeError = void 0;
4
+ class AmountOutOfRangeError extends Error {
5
+ minRange;
6
+ maxRange;
7
+ value;
8
+ name = "AmountOutOfRangeError";
9
+ constructor(minRange, maxRange, value) {
10
+ super("Amount out of range: " + value + "; Must be within " + minRange + "-" + maxRange);
11
+ this.minRange = minRange;
12
+ this.maxRange = maxRange;
13
+ this.value = value;
14
+ }
15
+ }
16
+ exports.AmountOutOfRangeError = AmountOutOfRangeError;
17
+ class DailyCardLimitReachedError extends Error {
18
+ dailyCardLimit;
19
+ requestedAmount;
20
+ name = "DailyCardLimitReachedError";
21
+ constructor(dailyCardLimit, requestedAmount) {
22
+ super("Daily card limit reached. Limit: " + dailyCardLimit + " Requested: " + requestedAmount);
23
+ this.dailyCardLimit = dailyCardLimit;
24
+ this.requestedAmount = requestedAmount;
25
+ }
26
+ }
27
+ exports.DailyCardLimitReachedError = DailyCardLimitReachedError;
28
+ class InvalidUsdcAddressError extends Error {
29
+ mintAddress;
30
+ name = "InvalidUsdcAddressError";
31
+ constructor(mintAddress) {
32
+ super("Invalid USDC address: " + mintAddress);
33
+ this.mintAddress = mintAddress;
34
+ }
35
+ }
36
+ exports.InvalidUsdcAddressError = InvalidUsdcAddressError;
37
+ class NotEnoughBalanceError extends Error {
38
+ name = "NotEnoughBalanceError";
39
+ constructor(message) {
40
+ super(message);
41
+ }
42
+ }
43
+ exports.NotEnoughBalanceError = NotEnoughBalanceError;
44
+ class QuoteResponseError extends Error {
45
+ name = "QuoteResponseError";
46
+ constructor(message) {
47
+ super(message);
48
+ }
49
+ }
50
+ exports.QuoteResponseError = QuoteResponseError;
51
+ class AssociatedTokenAccountDoesNotExistsError extends Error {
52
+ name = "AssociatedTokenAccountDoesNotExistsError";
53
+ constructor(message) {
54
+ super(message);
55
+ }
56
+ }
57
+ exports.AssociatedTokenAccountDoesNotExistsError = AssociatedTokenAccountDoesNotExistsError;
package/dist/pda.d.ts CHANGED
@@ -8,3 +8,8 @@ export declare function deriveCardPurchasePda(buyer: Address, buyerCounter: bigi
8
8
  export declare function deriveUserPurchaseRecordPda(user: Address, programId: Address): [PublicKey, number];
9
9
  export declare function deriveStreamConfigPda(programId: Address): [PublicKey, number];
10
10
  export declare function deriveStreamVaultPda(metatadata: Address, programId: Address): [PublicKey, number];
11
+ export declare function deriveStakeAddress(staker: Address, lockup: Address, nonce: bigint, programId: Address): PublicKey;
12
+ export declare function deriveLockupAddress(name: string, programId: Address): PublicKey;
13
+ export declare function deriveUserNonceAddress(user: Address, lockup: Address, programId: Address): PublicKey;
14
+ export declare function deriveStakeVaultAddress(lockup: Address, programId: Address): PublicKey;
15
+ export declare function deriveRewardVaultAddress(lockup: Address, programId: Address): PublicKey;
package/dist/pda.js CHANGED
@@ -8,6 +8,11 @@ exports.deriveCardPurchasePda = deriveCardPurchasePda;
8
8
  exports.deriveUserPurchaseRecordPda = deriveUserPurchaseRecordPda;
9
9
  exports.deriveStreamConfigPda = deriveStreamConfigPda;
10
10
  exports.deriveStreamVaultPda = deriveStreamVaultPda;
11
+ exports.deriveStakeAddress = deriveStakeAddress;
12
+ exports.deriveLockupAddress = deriveLockupAddress;
13
+ exports.deriveUserNonceAddress = deriveUserNonceAddress;
14
+ exports.deriveStakeVaultAddress = deriveStakeVaultAddress;
15
+ exports.deriveRewardVaultAddress = deriveRewardVaultAddress;
11
16
  const anchor_1 = require("@coral-xyz/anchor");
12
17
  const web3_js_1 = require("@solana/web3.js");
13
18
  const VAULT_PROGRAM_V1_SEEDS = {
@@ -44,12 +49,41 @@ function deriveCardPurchasePda(buyer, buyerCounter, programId) {
44
49
  function deriveUserPurchaseRecordPda(user, programId) {
45
50
  return web3_js_1.PublicKey.findProgramAddressSync([Buffer.from(CARD_PROGRAM_V2_SEEDS.USER_PURCHASE_RECORD), (0, anchor_1.translateAddress)(user).toBuffer()], (0, anchor_1.translateAddress)(programId));
46
51
  }
47
- const SEEDS = {
52
+ const STREAM_PROGRAM_SEEDS = {
48
53
  STREAM_CONFIG: anchor_1.utils.bytes.utf8.encode("config"),
49
54
  };
50
55
  function deriveStreamConfigPda(programId) {
51
- return web3_js_1.PublicKey.findProgramAddressSync([Buffer.from(SEEDS.STREAM_CONFIG)], (0, anchor_1.translateAddress)(programId));
56
+ return web3_js_1.PublicKey.findProgramAddressSync([Buffer.from(STREAM_PROGRAM_SEEDS.STREAM_CONFIG)], (0, anchor_1.translateAddress)(programId));
52
57
  }
53
58
  function deriveStreamVaultPda(metatadata, programId) {
54
59
  return web3_js_1.PublicKey.findProgramAddressSync([(0, anchor_1.translateAddress)(metatadata).toBuffer()], (0, anchor_1.translateAddress)(programId));
55
60
  }
61
+ const STAKE_PROGRAM_SEEDS = {
62
+ LOCKUP: anchor_1.utils.bytes.utf8.encode("zebec_lockup"),
63
+ STAKE_VAULT: anchor_1.utils.bytes.utf8.encode("stake_vault"),
64
+ REWARD_VAULT: anchor_1.utils.bytes.utf8.encode("reward_vault"),
65
+ };
66
+ function deriveStakeAddress(staker, lockup, nonce, programId) {
67
+ const [stakeAddress] = web3_js_1.PublicKey.findProgramAddressSync([
68
+ (0, anchor_1.translateAddress)(staker).toBuffer(),
69
+ (0, anchor_1.translateAddress)(lockup).toBuffer(),
70
+ new anchor_1.BN(nonce.toString()).toArrayLike(Buffer, "le", 8),
71
+ ], (0, anchor_1.translateAddress)(programId));
72
+ return stakeAddress;
73
+ }
74
+ function deriveLockupAddress(name, programId) {
75
+ const [lockupAddress] = web3_js_1.PublicKey.findProgramAddressSync([STAKE_PROGRAM_SEEDS.LOCKUP, anchor_1.utils.bytes.utf8.encode(name)], (0, anchor_1.translateAddress)(programId));
76
+ return lockupAddress;
77
+ }
78
+ function deriveUserNonceAddress(user, lockup, programId) {
79
+ const [userNonceAddress] = web3_js_1.PublicKey.findProgramAddressSync([(0, anchor_1.translateAddress)(user).toBuffer(), (0, anchor_1.translateAddress)(lockup).toBuffer()], (0, anchor_1.translateAddress)(programId));
80
+ return userNonceAddress;
81
+ }
82
+ function deriveStakeVaultAddress(lockup, programId) {
83
+ const [stakeVault] = web3_js_1.PublicKey.findProgramAddressSync([STAKE_PROGRAM_SEEDS.STAKE_VAULT, (0, anchor_1.translateAddress)(lockup).toBuffer()], (0, anchor_1.translateAddress)(programId));
84
+ return stakeVault;
85
+ }
86
+ function deriveRewardVaultAddress(lockup, programId) {
87
+ const [rewardVault] = web3_js_1.PublicKey.findProgramAddressSync([STAKE_PROGRAM_SEEDS.REWARD_VAULT, (0, anchor_1.translateAddress)(lockup).toBuffer()], (0, anchor_1.translateAddress)(programId));
88
+ return rewardVault;
89
+ }
package/dist/service.d.ts CHANGED
@@ -1,16 +1,17 @@
1
1
  import { Address, BN, Program, Provider } from "@coral-xyz/anchor";
2
- import { AccountMeta, Connection, Keypair, PublicKey, Signer, TransactionInstruction } from "@solana/web3.js";
2
+ import { AccountMeta, Commitment, Connection, Keypair, PublicKey, Signer, TransactionInstruction } from "@solana/web3.js";
3
3
  import { MultiTransactionPayload, TransactionPayload } from "@zebec-network/solana-common";
4
- import { ZebecCardV2Idl, ZebecStreamIdl, ZebecVaultV1Idl } from "./artifacts";
4
+ import { ZebecCardV2Idl, ZebecStakeIdlV1, ZebecStreamIdl, ZebecVaultV1Idl } from "./artifacts";
5
5
  import { RpcNetwork } from "./constants";
6
- import { Numeric, ProposalAction, ProposalInfo, VaultInfo } from "./types";
6
+ import { CancelStreamParams, ChangeStreamReceiverParams, createMultipleStreamFromVaultParams, CreateSilverCardInstructionData, CreateSilverCardParams, CreateStreamFromVaultParams, LoadCarbonCardInstructionData, LoadCarbonCardParams, Numeric, PauseResumeStreamParams, ProposalAction, ProposalInfo, StakeInstructionData, StakeUserNonceInfo, StreamMetadataInfo, SwapAndCreateSilverCardParams, SwapAndLoadCarbonCardParams, TokenFeeRecord, VaultInfo, WithdrawStreamParams } from "./types";
7
7
  export declare class ZebecVaultService {
8
8
  readonly provider: Provider;
9
9
  readonly vaultV1Program: Program<ZebecVaultV1Idl>;
10
10
  readonly cardV2Program: Program<ZebecCardV2Idl>;
11
11
  readonly streamProgram: Program<ZebecStreamIdl>;
12
+ readonly stakeProgram: Program<ZebecStakeIdlV1>;
12
13
  readonly network: RpcNetwork;
13
- constructor(provider: Provider, vaultV1Program: Program<ZebecVaultV1Idl>, cardV2Program: Program<ZebecCardV2Idl>, streamProgram: Program<ZebecStreamIdl>, network: RpcNetwork);
14
+ constructor(provider: Provider, vaultV1Program: Program<ZebecVaultV1Idl>, cardV2Program: Program<ZebecCardV2Idl>, streamProgram: Program<ZebecStreamIdl>, stakeProgram: Program<ZebecStakeIdlV1>, network: RpcNetwork);
14
15
  static create(provider: Provider, network: RpcNetwork): ZebecVaultService;
15
16
  getCreateVaultInstruction(payer: PublicKey, owner: PublicKey, signerBump: number): Promise<TransactionInstruction>;
16
17
  getDepositSolInstruction(depositor: PublicKey, amount: BN): Promise<TransactionInstruction>;
@@ -22,37 +23,6 @@ export declare class ZebecVaultService {
22
23
  getDeleteProposalInstruction(proposal: PublicKey): Promise<TransactionInstruction>;
23
24
  getExecuteProposalInstruction(caller: PublicKey, proposal: PublicKey, remainingAccounts: AccountMeta[]): Promise<TransactionInstruction>;
24
25
  getExecuteProposalDirectInstruction(proposer: PublicKey, actions: ProposalAction[], remainingAccounts: AccountMeta[]): Promise<TransactionInstruction>;
25
- getSwapAndCreateSilverCardInstruction(cardVault: PublicKey, cardVaultAta: PublicKey, inputMint: PublicKey, inputMintProgram: PublicKey, outputMint: PublicKey, revenueVault: PublicKey, revenueVaultAta: PublicKey, vaultOwner: PublicKey, data: {
26
- currency: string;
27
- emailHash: number[];
28
- index: BN;
29
- swapData: Buffer;
30
- }, remainingAccounts: AccountMeta[]): Promise<TransactionInstruction>;
31
- getSwapAndLoadCarbonCardInstruction(cardVault: PublicKey, cardVaultAta: PublicKey, inputMint: PublicKey, inputMintProgram: PublicKey, outputMint: PublicKey, revenueVault: PublicKey, revenueVaultAta: PublicKey, vaultOwner: PublicKey, data: {
32
- currency: string;
33
- emailHash: number[];
34
- index: BN;
35
- swapData: Buffer;
36
- reloadCardId: string;
37
- }, remainingAccounts: AccountMeta[]): Promise<TransactionInstruction>;
38
- getCreateStreamFromVaultInstruction(vaultOwner: PublicKey, vault: PublicKey, vaultSigner: PublicKey, vaultSignerAta: PublicKey, receiver: PublicKey, receiverAta: PublicKey, streamToken: PublicKey, streamMetadata: PublicKey, streamConfig: PublicKey, withdrawAccount: PublicKey, streamVault: PublicKey, streamVaultAta: PublicKey, zebecStreamProgram: PublicKey, streamData: {
39
- amount: BN;
40
- automaticWithdrawal: boolean;
41
- cancelableByRecipient: boolean;
42
- cancelableBySender: boolean;
43
- canTopup: boolean;
44
- cliffPercentage: BN;
45
- duration: BN;
46
- isPausable: boolean;
47
- rateUpdatable: boolean;
48
- startNow: boolean;
49
- startTime: BN;
50
- autoWithdrawFrequency: BN;
51
- streamName: Uint8Array | Buffer;
52
- transferableByRecipient: boolean;
53
- transferableBySender: boolean;
54
- numberOfWithdrawls: BN;
55
- }): Promise<TransactionInstruction>;
56
26
  createVault(params: {
57
27
  payer?: Address;
58
28
  }): Promise<TransactionPayload>;
@@ -64,12 +34,14 @@ export declare class ZebecVaultService {
64
34
  withdrawer?: Address;
65
35
  amount: Numeric;
66
36
  }): Promise<TransactionPayload>;
67
- depositToken(params: {
37
+ deposit(params: {
68
38
  depositor?: Address;
69
39
  tokenMint: Address;
70
40
  amount: Numeric;
71
41
  }): Promise<TransactionPayload>;
72
- withdrawToken(params: {
42
+ private getWrapSolInstructions;
43
+ private getUnwrapWsolInstruction;
44
+ withdraw(params: {
73
45
  withdrawer?: Address;
74
46
  tokenMint: Address;
75
47
  amount: Numeric;
@@ -101,121 +73,81 @@ export declare class ZebecVaultService {
101
73
  partialSigners?: Signer[];
102
74
  addressLookupTables?: Address[];
103
75
  }): Promise<TransactionPayload>;
76
+ getVaultInfoOfUser(user?: Address): Promise<VaultInfo | null>;
77
+ getAllVaultsInfo(): Promise<VaultInfo[]>;
78
+ getProposalsInfoOfVault(vaultAddress: Address): Promise<ProposalInfo[]>;
79
+ getCreateSilverCardInstruction(feePayer: PublicKey, cardVault: PublicKey, cardVaultAta: PublicKey, inputMint: PublicKey, revenueVault: PublicKey, revenueVaultAta: PublicKey, usdcToken: PublicKey, user: PublicKey, createSilverCardData: CreateSilverCardInstructionData): Promise<TransactionInstruction>;
80
+ getLoadCarbonCardInstruction(feePayer: PublicKey, cardVault: PublicKey, cardVaultAta: PublicKey, inputMint: PublicKey, revenueVault: PublicKey, revenueVaultAta: PublicKey, usdcToken: PublicKey, user: PublicKey, createCarbonCardData: LoadCarbonCardInstructionData): Promise<TransactionInstruction>;
81
+ getSwapAndCreateSilverCardInstruction(cardVault: PublicKey, cardVaultAta: PublicKey, inputMint: PublicKey, inputMintProgram: PublicKey, outputMint: PublicKey, revenueVault: PublicKey, revenueVaultAta: PublicKey, vaultOwner: PublicKey, data: {
82
+ currency: string;
83
+ emailHash: number[];
84
+ index: BN;
85
+ swapData: Buffer;
86
+ }, remainingAccounts: AccountMeta[]): Promise<TransactionInstruction>;
87
+ getSwapAndLoadCarbonCardInstruction(cardVault: PublicKey, cardVaultAta: PublicKey, inputMint: PublicKey, inputMintProgram: PublicKey, outputMint: PublicKey, revenueVault: PublicKey, revenueVaultAta: PublicKey, vaultOwner: PublicKey, data: {
88
+ currency: string;
89
+ emailHash: number[];
90
+ index: BN;
91
+ swapData: Buffer;
92
+ reloadCardId: string;
93
+ }, remainingAccounts: AccountMeta[]): Promise<TransactionInstruction>;
94
+ private _checkAmountIsWithinDailyCardLimit;
95
+ private _checkAmountIsWithinProviderRange;
96
+ getNextCardIndex(): Promise<bigint>;
97
+ createSilverCard(params: CreateSilverCardParams): Promise<TransactionPayload>;
98
+ loadCarbonCard(params: LoadCarbonCardParams): Promise<TransactionPayload>;
104
99
  swapAndCreateSilverCard(params: SwapAndCreateSilverCardParams): Promise<TransactionPayload>;
105
100
  swapAndLoadCarbonCard(params: SwapAndLoadCarbonCardParams): Promise<TransactionPayload>;
101
+ getCardCustomTokenFees(): Promise<TokenFeeRecord[]>;
102
+ getCreateStreamFromVaultInstruction(vaultOwner: PublicKey, vault: PublicKey, vaultSigner: PublicKey, vaultSignerAta: PublicKey, receiver: PublicKey, receiverAta: PublicKey, streamToken: PublicKey, streamMetadata: PublicKey, streamConfig: PublicKey, withdrawAccount: PublicKey, streamVault: PublicKey, streamVaultAta: PublicKey, zebecStreamProgram: PublicKey, streamData: {
103
+ amount: BN;
104
+ automaticWithdrawal: boolean;
105
+ cancelableByRecipient: boolean;
106
+ cancelableBySender: boolean;
107
+ canTopup: boolean;
108
+ cliffPercentage: BN;
109
+ duration: BN;
110
+ isPausable: boolean;
111
+ rateUpdatable: boolean;
112
+ startNow: boolean;
113
+ startTime: BN;
114
+ autoWithdrawFrequency: BN;
115
+ streamName: Uint8Array | Buffer;
116
+ transferableByRecipient: boolean;
117
+ transferableBySender: boolean;
118
+ numberOfWithdrawls: BN;
119
+ }): Promise<TransactionInstruction>;
120
+ getPauseResumeStreamInstruction(streamMetadata: PublicKey, user: PublicKey): Promise<TransactionInstruction>;
121
+ getCancelStreamInstruction(feePayer: PublicKey, otherParty: PublicKey, otherPartyAta: PublicKey, signer: PublicKey, signerAta: PublicKey, streamMetadata: PublicKey, streamToken: PublicKey, streamVault: PublicKey, streamVaultAta: PublicKey): Promise<TransactionInstruction>;
122
+ getWithdrawStreamInstruction(receiver: PublicKey, receiverAta: PublicKey, streamMetadata: PublicKey, streamToken: PublicKey, streamVault: PublicKey, streamVaultAta: PublicKey, withdrawer: PublicKey, feePayer: PublicKey): Promise<TransactionInstruction>;
123
+ getChangeStreamReceiverInstruction(streamMetadata: PublicKey, newRecipient: PublicKey, signer: PublicKey): Promise<TransactionInstruction>;
106
124
  createStreamFromVault(params: CreateStreamFromVaultParams): Promise<TransactionPayload>;
107
125
  createMultipleStreamFromVault(params: createMultipleStreamFromVaultParams): Promise<MultiTransactionPayload>;
126
+ cancelStream(params: CancelStreamParams): Promise<TransactionPayload>;
127
+ pauseResumeStream(params: PauseResumeStreamParams): Promise<TransactionPayload>;
128
+ changeStreamReceiver(params: ChangeStreamReceiverParams): Promise<TransactionPayload>;
129
+ withdrawStream(params: WithdrawStreamParams): Promise<TransactionPayload>;
130
+ getStreamMetadataInfo(streamMetadata: Address, commitment?: Commitment): Promise<StreamMetadataInfo>;
131
+ getStakeInstruction(feePayer: PublicKey, lockup: PublicKey, stakeToken: PublicKey, stakeVault: PublicKey, staker: PublicKey, userNonce: PublicKey, stakePda: PublicKey, stakeVaultTokenAccount: PublicKey, data: StakeInstructionData): Promise<TransactionInstruction>;
132
+ getUnstakeInstruction(feePayer: PublicKey, feeVault: PublicKey, lockup: PublicKey, stakePda: PublicKey, rewardToken: PublicKey, rewardVault: PublicKey, stakeToken: PublicKey, stakeVault: PublicKey, staker: PublicKey, stakerTokenAccount: PublicKey, nonce: BN): Promise<TransactionInstruction>;
133
+ stake(params: {
134
+ lockupName: string;
135
+ vaultOwner?: Address;
136
+ amount: Numeric;
137
+ lockPeriod: number;
138
+ nonce: bigint;
139
+ }): Promise<TransactionPayload>;
140
+ unstake(params: {
141
+ lockupName: string;
142
+ nonce: bigint;
143
+ vaultOwner?: Address;
144
+ }): Promise<TransactionPayload>;
145
+ getStakeUserNonceInfo(lockupName: string, vaultOwnerAddress: Address, commitment?: Commitment): Promise<StakeUserNonceInfo | null>;
108
146
  private _createTransactionPayload;
109
147
  private _createMultiTransactionPayload;
110
- getVaultInfoOfUser(user?: Address): Promise<VaultInfo | null>;
111
- getAllVaultsInfo(): Promise<VaultInfo[]>;
112
- getProposalsInfoOfVault(vault: Address): Promise<ProposalInfo[]>;
113
148
  get vaultV1ProgramId(): PublicKey;
114
149
  get cardV2ProgramId(): PublicKey;
115
150
  get streamProgramId(): PublicKey;
151
+ get stakeProgramId(): PublicKey;
116
152
  get connection(): Connection;
117
153
  }
118
- export type SwapAndCreateSilverCardParams = {
119
- quoteInfo: QuoteInfo;
120
- vaultOwnerAddress: Address;
121
- nextCardCounter: bigint;
122
- emailHash: Buffer;
123
- currency: string;
124
- wrapAndUnwrapSol?: boolean;
125
- };
126
- export type SwapAndLoadCarbonCardParams = {
127
- quoteInfo: QuoteInfo;
128
- nextCardCounter: bigint;
129
- emailHash: Buffer;
130
- currency: string;
131
- reloadCardId: string;
132
- vaultOwnerAddress: Address;
133
- };
134
- /**
135
- * Juptier quote info
136
- */
137
- export type QuoteInfo = {
138
- inputMint: string;
139
- inAmount: string;
140
- outputMint: string;
141
- outAmount: string;
142
- otherAmountThreshold: string;
143
- swapMode: "ExactIn" | "ExactOut";
144
- slippageBps: number;
145
- platformFee: {
146
- amount: string;
147
- feeBps: number;
148
- } | null;
149
- priceImpactPct: string;
150
- routePlan: RouteInfo[];
151
- contextSlot: number;
152
- timeTaken: number;
153
- swapUsdValue: string;
154
- simplerRouteUsed: boolean;
155
- mostReliableAmmsQuoteReport: {
156
- info: Record<string, string>;
157
- };
158
- } | {
159
- error: string;
160
- };
161
- /**
162
- * Jupiter quote routes info
163
- */
164
- export type RouteInfo = {
165
- swapInfo: {
166
- ammKey: string;
167
- label: string;
168
- inputMint: string;
169
- outputMint: string;
170
- inAmount: string;
171
- outAmount: string;
172
- feeAmount: string;
173
- feeMint: string;
174
- };
175
- percent: number;
176
- bps: number;
177
- };
178
- export type CreateStreamFromVaultParams = {
179
- sender: Address;
180
- receiver: Address;
181
- streamToken: Address;
182
- amount: Numeric;
183
- automaticWithdrawal: boolean;
184
- cancelableByRecipient: boolean;
185
- cancelableBySender: boolean;
186
- cliffPercentage: Numeric;
187
- duration: number;
188
- isPausable: boolean;
189
- startNow: boolean;
190
- startTime: number;
191
- autoWithdrawFrequency: number;
192
- streamName: string;
193
- transferableByRecipient: boolean;
194
- transferableBySender: boolean;
195
- canTopup: boolean;
196
- rateUpdatable: boolean;
197
- streamMetadataKeypair?: Keypair;
198
- };
199
- export type createMultipleStreamFromVaultParams = {
200
- sender: Address;
201
- streamInfo: {
202
- receiver: Address;
203
- streamToken: Address;
204
- amount: Numeric;
205
- automaticWithdrawal: boolean;
206
- cancelableByRecipient: boolean;
207
- cancelableBySender: boolean;
208
- cliffPercentage: Numeric;
209
- duration: number;
210
- isPausable: boolean;
211
- startNow: boolean;
212
- startTime: number;
213
- autoWithdrawFrequency: number;
214
- streamName: string;
215
- transferableByRecipient: boolean;
216
- transferableBySender: boolean;
217
- canTopup: boolean;
218
- rateUpdatable: boolean;
219
- streamMetadataKeypair?: Keypair;
220
- }[];
221
- };