@carrot-protocol/clend-vaults-rpc 0.0.30-execution-fee1-dev-c23f9d0 → 0.0.30-execution-fee1-dev-e23928b
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.
- package/dist/addresses.d.ts +2 -0
- package/dist/addresses.js +9 -0
- package/dist/addresses.js.map +1 -1
- package/dist/events.d.ts +70 -13
- package/dist/events.js +166 -18
- package/dist/events.js.map +1 -1
- package/dist/idl/clend_vaults.d.ts +1660 -180
- package/dist/idl/clend_vaults.json +1747 -267
- package/dist/math.d.ts +23 -1
- package/dist/math.js +71 -3
- package/dist/math.js.map +1 -1
- package/dist/program.d.ts +10 -3
- package/dist/program.js +135 -25
- package/dist/program.js.map +1 -1
- package/dist/rpc.d.ts +40 -9
- package/dist/rpc.js +341 -90
- package/dist/rpc.js.map +1 -1
- package/dist/state.d.ts +6 -2
- package/dist/state.js +14 -7
- package/dist/state.js.map +1 -1
- package/dist/swapper.d.ts +3 -2
- package/dist/swapper.js +15 -3
- package/dist/swapper.js.map +1 -1
- package/package.json +2 -2
package/dist/math.d.ts
CHANGED
|
@@ -22,7 +22,10 @@ export declare function uiToAmount(uiAmount: number, decimals: number): BN;
|
|
|
22
22
|
* @returns Number in UI format (e.g., 1.5 USDC)
|
|
23
23
|
*/
|
|
24
24
|
export declare function amountToUi(amount: BN, decimals: number): number;
|
|
25
|
-
export declare function
|
|
25
|
+
export declare function calculateLendingAccountEquityAndLeverage(lendingAccountBalances: Balance[]): {
|
|
26
|
+
equity: number;
|
|
27
|
+
leverage: number;
|
|
28
|
+
};
|
|
26
29
|
/**
|
|
27
30
|
* Converts a token amount to its USD value based on price and decimals.
|
|
28
31
|
*/
|
|
@@ -36,3 +39,22 @@ export declare function usdToAmount(usdAmount: number, decimals: number, price:
|
|
|
36
39
|
*/
|
|
37
40
|
export declare function convertSharesToAsset(vaultNav: number, sharesAmountUi: number, assetDecimals: number, assetPrice: number): BN;
|
|
38
41
|
export declare function convertAssetToShares(vaultNav: number, assetAmount: BN, assetDecimals: number, sharesDecimals: number, assetPrice: number): BN;
|
|
42
|
+
/**
|
|
43
|
+
* Adjusts an amount upwards to compensate for potential swap slippage,
|
|
44
|
+
* assuming worst-case based on slippageBps.
|
|
45
|
+
*
|
|
46
|
+
* @param amountToAdjust - The amount to adjust (native units, BN), typically after cost adjustments.
|
|
47
|
+
* @param slippageBps - The maximum slippage tolerance in basis points (e.g., 100 for 1%).
|
|
48
|
+
* @returns Adjusted amount (native units, BN), slightly more than the input amount. Returns input amount if slippageBps is zero or invalid.
|
|
49
|
+
*/
|
|
50
|
+
export declare function adjustAmountForSlippage(amountToAdjust: BN, slippageBps: number): BN;
|
|
51
|
+
export declare function calculateLeverage(totalAssetValueUi: number, equityUi: number): number;
|
|
52
|
+
export declare const CLEND_VAULTS_MATH_PRECISION = 9;
|
|
53
|
+
export declare const SWITCHBOARD_ORACLE_PRECISION = 18;
|
|
54
|
+
/**
|
|
55
|
+
* Converts a scaled u128/BN USD value into a standard JavaScript number (float).
|
|
56
|
+
*
|
|
57
|
+
* @param scaledUsdValue The u128/BN value (e.g., from vault_equity) scaled by 10^9.
|
|
58
|
+
* @returns The unscaled USD value as a number.
|
|
59
|
+
*/
|
|
60
|
+
export declare function scaledUsdToNumber(scaledUsdValue: BN, precision: number): number;
|
package/dist/math.js
CHANGED
|
@@ -1,15 +1,24 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.SWITCHBOARD_ORACLE_PRECISION = exports.CLEND_VAULTS_MATH_PRECISION = void 0;
|
|
3
7
|
exports.calculateVaultNav = calculateVaultNav;
|
|
4
8
|
exports.usdEarned = usdEarned;
|
|
5
9
|
exports.uiToAmount = uiToAmount;
|
|
6
10
|
exports.amountToUi = amountToUi;
|
|
7
|
-
exports.
|
|
11
|
+
exports.calculateLendingAccountEquityAndLeverage = calculateLendingAccountEquityAndLeverage;
|
|
8
12
|
exports.amountToUsd = amountToUsd;
|
|
9
13
|
exports.usdToAmount = usdToAmount;
|
|
10
14
|
exports.convertSharesToAsset = convertSharesToAsset;
|
|
11
15
|
exports.convertAssetToShares = convertAssetToShares;
|
|
16
|
+
exports.adjustAmountForSlippage = adjustAmountForSlippage;
|
|
17
|
+
exports.calculateLeverage = calculateLeverage;
|
|
18
|
+
exports.scaledUsdToNumber = scaledUsdToNumber;
|
|
19
|
+
const anchor_1 = require("@coral-xyz/anchor");
|
|
12
20
|
const utils_1 = require("./utils");
|
|
21
|
+
const decimal_js_1 = __importDefault(require("decimal.js"));
|
|
13
22
|
/**
|
|
14
23
|
* Computes the net asset value (NAV) per share based on vault equity and share supply.
|
|
15
24
|
*/
|
|
@@ -45,14 +54,18 @@ function amountToUi(amount, decimals) {
|
|
|
45
54
|
return amount.toNumber() / 10 ** decimals;
|
|
46
55
|
}
|
|
47
56
|
// TODO: add emissions outstanding
|
|
48
|
-
function
|
|
57
|
+
function calculateLendingAccountEquityAndLeverage(lendingAccountBalances) {
|
|
58
|
+
let accountAssetsUi = 0;
|
|
49
59
|
let accountEquity = 0;
|
|
50
60
|
for (const balance of lendingAccountBalances) {
|
|
51
61
|
// calculate equity for each balance
|
|
52
62
|
accountEquity =
|
|
53
63
|
accountEquity + (balance.assetValue - balance.liabilityValue);
|
|
64
|
+
// separetly tally assets
|
|
65
|
+
accountAssetsUi = accountAssetsUi + balance.assetValue;
|
|
54
66
|
}
|
|
55
|
-
|
|
67
|
+
const leverage = calculateLeverage(accountAssetsUi, accountEquity);
|
|
68
|
+
return { equity: accountEquity, leverage };
|
|
56
69
|
}
|
|
57
70
|
/**
|
|
58
71
|
* Converts a token amount to its USD value based on price and decimals.
|
|
@@ -78,4 +91,59 @@ function convertAssetToShares(vaultNav, assetAmount, assetDecimals, sharesDecima
|
|
|
78
91
|
const assetUsd = amountToUsd(assetAmount, assetDecimals, assetPrice);
|
|
79
92
|
return usdToAmount(assetUsd, sharesDecimals, vaultNav);
|
|
80
93
|
}
|
|
94
|
+
/**
|
|
95
|
+
* Adjusts an amount upwards to compensate for potential swap slippage,
|
|
96
|
+
* assuming worst-case based on slippageBps.
|
|
97
|
+
*
|
|
98
|
+
* @param amountToAdjust - The amount to adjust (native units, BN), typically after cost adjustments.
|
|
99
|
+
* @param slippageBps - The maximum slippage tolerance in basis points (e.g., 100 for 1%).
|
|
100
|
+
* @returns Adjusted amount (native units, BN), slightly more than the input amount. Returns input amount if slippageBps is zero or invalid.
|
|
101
|
+
*/
|
|
102
|
+
function adjustAmountForSlippage(amountToAdjust, slippageBps) {
|
|
103
|
+
if (slippageBps <= 0) {
|
|
104
|
+
return amountToAdjust; // No adjustment if no slippage tolerance
|
|
105
|
+
}
|
|
106
|
+
const S = new decimal_js_1.default(slippageBps).div(10000); // Slippage factor S as decimal
|
|
107
|
+
// Ensure S is less than 1 (100% slippage)
|
|
108
|
+
if (S.gte(1)) {
|
|
109
|
+
return amountToAdjust;
|
|
110
|
+
}
|
|
111
|
+
// Formula: B_actual ≈ B_ideal / (1 - S)
|
|
112
|
+
// We borrow slightly more, anticipating the swap output will be worth less by factor S.
|
|
113
|
+
const denominator = new decimal_js_1.default(1).sub(S);
|
|
114
|
+
// Should not happen with S < 1, but safety check
|
|
115
|
+
if (denominator.isZero() ||
|
|
116
|
+
denominator.isNaN() ||
|
|
117
|
+
!denominator.isFinite() ||
|
|
118
|
+
denominator.isNegative()) {
|
|
119
|
+
return amountToAdjust;
|
|
120
|
+
}
|
|
121
|
+
const amountToAdjustDecimal = new decimal_js_1.default(amountToAdjust.toString());
|
|
122
|
+
const adjustedAmountDecimal = amountToAdjustDecimal.div(denominator);
|
|
123
|
+
// Round up when increasing amount due to needing more input for slippage
|
|
124
|
+
const adjustedAmount = new anchor_1.BN(adjustedAmountDecimal.ceil().toFixed());
|
|
125
|
+
return adjustedAmount;
|
|
126
|
+
}
|
|
127
|
+
function calculateLeverage(totalAssetValueUi, equityUi) {
|
|
128
|
+
if (totalAssetValueUi === 0 || equityUi === 0) {
|
|
129
|
+
return 0;
|
|
130
|
+
}
|
|
131
|
+
const leverage = (0, utils_1.parseNumber)(totalAssetValueUi / equityUi);
|
|
132
|
+
const trimmed = (0, utils_1.parseNumber)(leverage.toFixed(3));
|
|
133
|
+
return trimmed;
|
|
134
|
+
}
|
|
135
|
+
exports.CLEND_VAULTS_MATH_PRECISION = 9;
|
|
136
|
+
exports.SWITCHBOARD_ORACLE_PRECISION = 18;
|
|
137
|
+
/**
|
|
138
|
+
* Converts a scaled u128/BN USD value into a standard JavaScript number (float).
|
|
139
|
+
*
|
|
140
|
+
* @param scaledUsdValue The u128/BN value (e.g., from vault_equity) scaled by 10^9.
|
|
141
|
+
* @returns The unscaled USD value as a number.
|
|
142
|
+
*/
|
|
143
|
+
function scaledUsdToNumber(scaledUsdValue, precision) {
|
|
144
|
+
const scale = new decimal_js_1.default(10).pow(precision);
|
|
145
|
+
const decimalScaledUsdValue = new decimal_js_1.default(scaledUsdValue.toString());
|
|
146
|
+
const decimalUsdValue = decimalScaledUsdValue.div(scale);
|
|
147
|
+
return (0, utils_1.parseNumber)(decimalUsdValue.toNumber().toFixed(4));
|
|
148
|
+
}
|
|
81
149
|
//# sourceMappingURL=math.js.map
|
package/dist/math.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"math.js","sourceRoot":"","sources":["../src/math.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"math.js","sourceRoot":"","sources":["../src/math.ts"],"names":[],"mappings":"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"}
|
package/dist/program.d.ts
CHANGED
|
@@ -15,14 +15,21 @@ export declare class ClendVaultsProgram {
|
|
|
15
15
|
updateAssetFlags(vault: web3.PublicKey, manager: web3.PublicKey, assetMint: web3.PublicKey, newFlags: BN): Promise<web3.TransactionInstruction>;
|
|
16
16
|
updateClendAccountFlags(vault: web3.PublicKey, manager: web3.PublicKey, clendAccount: web3.PublicKey, newFlags: BN): Promise<web3.TransactionInstruction>;
|
|
17
17
|
updateVaultFlags(vault: web3.PublicKey, manager: web3.PublicKey, newFlags: BN): Promise<web3.TransactionInstruction>;
|
|
18
|
-
|
|
18
|
+
userSession(vault: web3.PublicKey, manager: web3.PublicKey, user: web3.PublicKey, op: "issue" | "redeem", endSessionIxIndex: number): Promise<{
|
|
19
|
+
startIx: web3.TransactionInstruction;
|
|
20
|
+
endIx: web3.TransactionInstruction;
|
|
21
|
+
}>;
|
|
22
|
+
issue(vault: web3.PublicKey, sharesMint: web3.PublicKey, user: web3.PublicKey, assetMint: web3.PublicKey, assetOracle: web3.PublicKey, amount: BN, minAmountOut: BN, assetTokenProgram: web3.PublicKey, sharesTokenProgram: web3.PublicKey, remainingAccounts: web3.AccountMeta[]): Promise<{
|
|
23
|
+
issueStartIxns: web3.TransactionInstruction[];
|
|
24
|
+
issueEndIxns: web3.TransactionInstruction[];
|
|
25
|
+
}>;
|
|
19
26
|
redeem(vault: web3.PublicKey, sharesMint: web3.PublicKey, user: web3.PublicKey, assetMint: web3.PublicKey, assetOracle: web3.PublicKey, amount: BN, minAmountOut: BN, assetTokenProgram: web3.PublicKey, sharesTokenProgram: web3.PublicKey, remainingAccounts: web3.AccountMeta[]): Promise<web3.TransactionInstruction[]>;
|
|
20
27
|
clendAccountDeposit(vault: web3.PublicKey, vaultManager: web3.PublicKey, clendGroup: web3.PublicKey, clendAccount: web3.PublicKey, assetMint: web3.PublicKey, assetMintTokenProgram: web3.PublicKey, amount: BN, vaultReserve: web3.PublicKey, remainingAccounts: web3.AccountMeta[]): Promise<web3.TransactionInstruction[]>;
|
|
21
28
|
clendAccountWithdraw(vault: web3.PublicKey, vaultManager: web3.PublicKey, clendGroup: web3.PublicKey, clendAccount: web3.PublicKey, assetMint: web3.PublicKey, assetMintTokenProgram: web3.PublicKey, amount: BN, remainingAccounts: web3.AccountMeta[]): Promise<web3.TransactionInstruction[]>;
|
|
22
29
|
clendAccountRepay(vault: web3.PublicKey, vaultManager: web3.PublicKey, clendGroup: web3.PublicKey, clendAccount: web3.PublicKey, assetMint: web3.PublicKey, mintTokenProgram: web3.PublicKey, amount: BN, remainingAccounts: web3.AccountMeta[]): Promise<web3.TransactionInstruction[]>;
|
|
23
|
-
clendAccountBorrow(vault: web3.PublicKey, vaultManager: web3.PublicKey, clendGroup: web3.PublicKey, clendAccount: web3.PublicKey, assetMint: web3.PublicKey, mintTokenProgram: web3.PublicKey, amount: BN, remainingAccounts: web3.AccountMeta[]): Promise<web3.TransactionInstruction[]>;
|
|
30
|
+
clendAccountBorrow(vault: web3.PublicKey, vaultManager: web3.PublicKey, clendGroup: web3.PublicKey, clendAccount: web3.PublicKey, assetMint: web3.PublicKey, assetOracle: web3.PublicKey, mintTokenProgram: web3.PublicKey, userSession: web3.PublicKey | null, amount: BN, remainingAccounts: web3.AccountMeta[]): Promise<web3.TransactionInstruction[]>;
|
|
24
31
|
clendAccountWithdrawEmissions(vault: web3.PublicKey, vaultManager: web3.PublicKey, clendGroup: web3.PublicKey, clendAccount: web3.PublicKey, clendBank: web3.PublicKey, assetMint: web3.PublicKey, assetTokenProgram: web3.PublicKey): Promise<web3.TransactionInstruction>;
|
|
25
|
-
swap(vault: web3.PublicKey, vaultManager: web3.PublicKey, assetInMint: web3.PublicKey, assetOutMint: web3.PublicKey, vaultAssetInOracle: web3.PublicKey, vaultAssetOutOracle: web3.PublicKey, vaultAssetInReserve: web3.PublicKey, vaultAssetOutReserve: web3.PublicKey, swapData: Buffer, remainingAccounts: web3.AccountMeta[]): Promise<web3.TransactionInstruction[]>;
|
|
32
|
+
swap(vault: web3.PublicKey, vaultManager: web3.PublicKey, assetInMint: web3.PublicKey, assetOutMint: web3.PublicKey, vaultAssetInOracle: web3.PublicKey, vaultAssetOutOracle: web3.PublicKey, vaultAssetInReserve: web3.PublicKey, vaultAssetOutReserve: web3.PublicKey, userSession: web3.PublicKey | null, swapData: Buffer, remainingAccounts: web3.AccountMeta[]): Promise<web3.TransactionInstruction[]>;
|
|
26
33
|
distributeFees(vault: web3.PublicKey, manager: web3.PublicKey, shares: web3.PublicKey, sharesDestinationOwner: web3.PublicKey): Promise<web3.TransactionInstruction[]>;
|
|
27
34
|
updateSbOraclePrice(vault: web3.PublicKey, shares: web3.PublicKey, queue: web3.PublicKey, feed: web3.PublicKey, remainingAccounts: web3.AccountMeta[]): Promise<web3.TransactionInstruction>;
|
|
28
35
|
updateAssetOracle(vault: web3.PublicKey, manager: web3.PublicKey, assetMint: web3.PublicKey, oracleMaxAge: number | null, oracle: web3.PublicKey | null): Promise<web3.TransactionInstruction>;
|
package/dist/program.js
CHANGED
|
@@ -33,7 +33,9 @@ class ClendVaultsProgram {
|
|
|
33
33
|
payer: manager,
|
|
34
34
|
vault,
|
|
35
35
|
vaultShares: vaultSharesMint,
|
|
36
|
+
eventAuthority: (0, addresses_1.getEventAuthorityPda)(),
|
|
36
37
|
systemProgram: anchor_1.web3.SystemProgram.programId,
|
|
38
|
+
program: this.program.programId,
|
|
37
39
|
})
|
|
38
40
|
.instruction();
|
|
39
41
|
return { vault, ixns: [transferMintAuthorityIx, ix] };
|
|
@@ -51,7 +53,9 @@ class ClendVaultsProgram {
|
|
|
51
53
|
assetOracle,
|
|
52
54
|
vaultAssetReserve,
|
|
53
55
|
manager,
|
|
56
|
+
eventAuthority: (0, addresses_1.getEventAuthorityPda)(),
|
|
54
57
|
tokenProgram: assetTokenProgram,
|
|
58
|
+
program: this.program.programId,
|
|
55
59
|
})
|
|
56
60
|
.instruction();
|
|
57
61
|
return [createVaultReserveIx, addAssetIx];
|
|
@@ -66,6 +70,8 @@ class ClendVaultsProgram {
|
|
|
66
70
|
manager,
|
|
67
71
|
clendProgram: clend_rpc_1.CLEND_PROGRAM_ID,
|
|
68
72
|
systemProgram: anchor_1.web3.SystemProgram.programId,
|
|
73
|
+
eventAuthority: (0, addresses_1.getEventAuthorityPda)(),
|
|
74
|
+
program: this.program.programId,
|
|
69
75
|
})
|
|
70
76
|
.instruction();
|
|
71
77
|
return [ix];
|
|
@@ -77,6 +83,8 @@ class ClendVaultsProgram {
|
|
|
77
83
|
vault,
|
|
78
84
|
newManager,
|
|
79
85
|
manager: currentManager,
|
|
86
|
+
eventAuthority: (0, addresses_1.getEventAuthorityPda)(),
|
|
87
|
+
program: this.program.programId,
|
|
80
88
|
})
|
|
81
89
|
.instruction();
|
|
82
90
|
return ix;
|
|
@@ -84,7 +92,12 @@ class ClendVaultsProgram {
|
|
|
84
92
|
async updateVaultFees(vault, manager, managementFeeBps) {
|
|
85
93
|
const ix = await this.program.methods
|
|
86
94
|
.updateVaultFees({ managementFeeBps })
|
|
87
|
-
.accountsStrict({
|
|
95
|
+
.accountsStrict({
|
|
96
|
+
vault,
|
|
97
|
+
manager,
|
|
98
|
+
eventAuthority: (0, addresses_1.getEventAuthorityPda)(),
|
|
99
|
+
program: this.program.programId,
|
|
100
|
+
})
|
|
88
101
|
.instruction();
|
|
89
102
|
return ix;
|
|
90
103
|
}
|
|
@@ -95,7 +108,13 @@ class ClendVaultsProgram {
|
|
|
95
108
|
};
|
|
96
109
|
const ix = await this.program.methods
|
|
97
110
|
.updateAssetFees(args)
|
|
98
|
-
.accountsStrict({
|
|
111
|
+
.accountsStrict({
|
|
112
|
+
vault,
|
|
113
|
+
manager,
|
|
114
|
+
assetMint,
|
|
115
|
+
eventAuthority: (0, addresses_1.getEventAuthorityPda)(),
|
|
116
|
+
program: this.program.programId,
|
|
117
|
+
})
|
|
99
118
|
.instruction();
|
|
100
119
|
return ix;
|
|
101
120
|
}
|
|
@@ -105,7 +124,13 @@ class ClendVaultsProgram {
|
|
|
105
124
|
};
|
|
106
125
|
const ix = await this.program.methods
|
|
107
126
|
.updateAssetFlags(args)
|
|
108
|
-
.accountsStrict({
|
|
127
|
+
.accountsStrict({
|
|
128
|
+
vault,
|
|
129
|
+
manager,
|
|
130
|
+
assetMint,
|
|
131
|
+
eventAuthority: (0, addresses_1.getEventAuthorityPda)(),
|
|
132
|
+
program: this.program.programId,
|
|
133
|
+
})
|
|
109
134
|
.instruction();
|
|
110
135
|
return ix;
|
|
111
136
|
}
|
|
@@ -115,7 +140,13 @@ class ClendVaultsProgram {
|
|
|
115
140
|
};
|
|
116
141
|
const ix = await this.program.methods
|
|
117
142
|
.updateClendAccountFlags(args)
|
|
118
|
-
.accountsStrict({
|
|
143
|
+
.accountsStrict({
|
|
144
|
+
vault,
|
|
145
|
+
manager,
|
|
146
|
+
clendAccount,
|
|
147
|
+
eventAuthority: (0, addresses_1.getEventAuthorityPda)(),
|
|
148
|
+
program: this.program.programId,
|
|
149
|
+
})
|
|
119
150
|
.instruction();
|
|
120
151
|
return ix;
|
|
121
152
|
}
|
|
@@ -123,29 +154,60 @@ class ClendVaultsProgram {
|
|
|
123
154
|
const args = { newFlags: { "0": newFlags } };
|
|
124
155
|
const ix = await this.program.methods
|
|
125
156
|
.updateVaultFlags(args)
|
|
126
|
-
.accountsStrict({
|
|
157
|
+
.accountsStrict({
|
|
158
|
+
vault,
|
|
159
|
+
manager,
|
|
160
|
+
eventAuthority: (0, addresses_1.getEventAuthorityPda)(),
|
|
161
|
+
program: this.program.programId,
|
|
162
|
+
})
|
|
127
163
|
.instruction();
|
|
128
164
|
return ix;
|
|
129
165
|
}
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
166
|
+
async userSession(vault, manager, user, op, endSessionIxIndex) {
|
|
167
|
+
const userSession = (0, addresses_1.getUserSessionPda)(vault, user);
|
|
168
|
+
const args = {
|
|
169
|
+
op: op === "issue" ? 0 : 1,
|
|
170
|
+
endSessionIxIndex,
|
|
171
|
+
};
|
|
172
|
+
const startIx = await this.program.methods
|
|
173
|
+
.userSessionStart(args)
|
|
174
|
+
.accountsStrict({
|
|
175
|
+
vault,
|
|
176
|
+
userSession,
|
|
177
|
+
user,
|
|
178
|
+
manager,
|
|
179
|
+
instructions: anchor_1.web3.SYSVAR_INSTRUCTIONS_PUBKEY,
|
|
180
|
+
systemProgram: anchor_1.web3.SystemProgram.programId,
|
|
181
|
+
eventAuthority: (0, addresses_1.getEventAuthorityPda)(),
|
|
182
|
+
program: this.program.programId,
|
|
183
|
+
})
|
|
184
|
+
.instruction();
|
|
185
|
+
const endIx = await this.program.methods
|
|
186
|
+
.userSessionEnd()
|
|
187
|
+
.accountsStrict({
|
|
188
|
+
vault,
|
|
189
|
+
userSession,
|
|
190
|
+
manager,
|
|
191
|
+
eventAuthority: (0, addresses_1.getEventAuthorityPda)(),
|
|
192
|
+
program: this.program.programId,
|
|
193
|
+
})
|
|
194
|
+
.instruction();
|
|
195
|
+
return { startIx, endIx };
|
|
196
|
+
}
|
|
133
197
|
async issue(vault, sharesMint, user, assetMint, assetOracle, amount, minAmountOut, assetTokenProgram, sharesTokenProgram, remainingAccounts) {
|
|
134
198
|
// Vault reserve (owner is vault PDA)
|
|
135
199
|
const vaultAssetReserve = (0, spl_token_1.getAssociatedTokenAddressSync)(assetMint, vault, true, assetTokenProgram);
|
|
136
200
|
// User ATAs (owner is user)
|
|
137
201
|
const userAssetAccount = (0, spl_token_1.getAssociatedTokenAddressSync)(assetMint, user, true, assetTokenProgram);
|
|
138
202
|
const userSharesAccount = (0, spl_token_1.getAssociatedTokenAddressSync)(sharesMint, user, true, sharesTokenProgram);
|
|
139
|
-
const
|
|
203
|
+
const userSession = (0, addresses_1.getUserSessionPda)(vault, user);
|
|
204
|
+
const issueStartIxns = [];
|
|
140
205
|
if (assetMint.equals(SOL_MINT)) {
|
|
141
206
|
// if the asset is sol, wrap it before issue
|
|
142
|
-
|
|
207
|
+
issueStartIxns.push(...createWSolTokenAccountIxns(user, amount));
|
|
143
208
|
}
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
ixns.push(createUserSharesIx);
|
|
147
|
-
const ix = await this.program.methods
|
|
148
|
-
.issue({ amount, minAmountOut })
|
|
209
|
+
const issueStartIx = await this.program.methods
|
|
210
|
+
.issueStart({ amount })
|
|
149
211
|
.accountsStrict({
|
|
150
212
|
vault,
|
|
151
213
|
shares: sharesMint,
|
|
@@ -153,21 +215,42 @@ class ClendVaultsProgram {
|
|
|
153
215
|
assetOracle,
|
|
154
216
|
vaultAssetReserve,
|
|
155
217
|
userAssetAccount,
|
|
156
|
-
|
|
218
|
+
userSession,
|
|
157
219
|
user,
|
|
158
220
|
clendProgram: clend_rpc_1.CLEND_PROGRAM_ID,
|
|
159
221
|
assetTokenProgram,
|
|
160
|
-
|
|
222
|
+
eventAuthority: (0, addresses_1.getEventAuthorityPda)(),
|
|
223
|
+
program: this.program.programId,
|
|
161
224
|
})
|
|
162
225
|
.remainingAccounts(remainingAccounts)
|
|
163
226
|
.instruction();
|
|
164
|
-
|
|
165
|
-
|
|
227
|
+
issueStartIxns.push(issueStartIx);
|
|
228
|
+
// for shares received
|
|
229
|
+
const createUserSharesIx = (0, spl_token_1.createAssociatedTokenAccountIdempotentInstruction)(user, userSharesAccount, user, sharesMint, sharesTokenProgram);
|
|
230
|
+
const issueEndIx = await this.program.methods
|
|
231
|
+
.issueEnd({ minAmountOut })
|
|
232
|
+
.accountsStrict({
|
|
233
|
+
vault,
|
|
234
|
+
shares: sharesMint,
|
|
235
|
+
userSession,
|
|
236
|
+
user,
|
|
237
|
+
userSharesAccount,
|
|
238
|
+
sharesTokenProgram,
|
|
239
|
+
eventAuthority: (0, addresses_1.getEventAuthorityPda)(),
|
|
240
|
+
program: this.program.programId,
|
|
241
|
+
})
|
|
242
|
+
.instruction();
|
|
243
|
+
const issueEndIxns = [
|
|
244
|
+
createUserSharesIx,
|
|
245
|
+
issueEndIx,
|
|
246
|
+
];
|
|
247
|
+
return { issueStartIxns, issueEndIxns };
|
|
166
248
|
}
|
|
167
249
|
async redeem(vault, sharesMint, user, assetMint, assetOracle, amount, minAmountOut, assetTokenProgram, sharesTokenProgram, remainingAccounts) {
|
|
168
250
|
const vaultAssetReserve = (0, spl_token_1.getAssociatedTokenAddressSync)(assetMint, vault, true, assetTokenProgram);
|
|
169
251
|
const userAssetAccount = (0, spl_token_1.getAssociatedTokenAddressSync)(assetMint, user, true, assetTokenProgram);
|
|
170
252
|
const userSharesAccount = (0, spl_token_1.getAssociatedTokenAddressSync)(sharesMint, user, true, sharesTokenProgram);
|
|
253
|
+
const userSession = (0, addresses_1.getUserSessionPda)(vault, user);
|
|
171
254
|
// Make sure the user asset ATA exists
|
|
172
255
|
const createUserAssetIx = (0, spl_token_1.createAssociatedTokenAccountIdempotentInstruction)(user, userAssetAccount, user, assetMint, assetTokenProgram);
|
|
173
256
|
const ix = await this.program.methods
|
|
@@ -180,10 +263,13 @@ class ClendVaultsProgram {
|
|
|
180
263
|
vaultAssetReserve,
|
|
181
264
|
userAssetAccount,
|
|
182
265
|
userSharesAccount,
|
|
266
|
+
userSession,
|
|
183
267
|
user,
|
|
184
268
|
clendProgram: clend_rpc_1.CLEND_PROGRAM_ID,
|
|
185
269
|
assetTokenProgram,
|
|
186
270
|
sharesTokenProgram,
|
|
271
|
+
eventAuthority: (0, addresses_1.getEventAuthorityPda)(),
|
|
272
|
+
program: this.program.programId,
|
|
187
273
|
})
|
|
188
274
|
.remainingAccounts(remainingAccounts)
|
|
189
275
|
.instruction();
|
|
@@ -194,9 +280,6 @@ class ClendVaultsProgram {
|
|
|
194
280
|
}
|
|
195
281
|
return ixns;
|
|
196
282
|
}
|
|
197
|
-
// -----------------
|
|
198
|
-
// Clend-account ops (builders; vault PDA signs via seeds)
|
|
199
|
-
// -----------------
|
|
200
283
|
async clendAccountDeposit(vault, vaultManager, clendGroup, clendAccount, assetMint, assetMintTokenProgram, amount, vaultReserve, remainingAccounts) {
|
|
201
284
|
const bank = (0, clend_rpc_1.getBankPda)(clendGroup, assetMint);
|
|
202
285
|
const bankLiquidityVault = (0, clend_rpc_1.getBankLiquidityVaultPda)(bank);
|
|
@@ -213,6 +296,8 @@ class ClendVaultsProgram {
|
|
|
213
296
|
manager: vaultManager,
|
|
214
297
|
tokenProgram: assetMintTokenProgram,
|
|
215
298
|
clendProgram: clend_rpc_1.CLEND_PROGRAM_ID,
|
|
299
|
+
eventAuthority: (0, addresses_1.getEventAuthorityPda)(),
|
|
300
|
+
program: this.program.programId,
|
|
216
301
|
})
|
|
217
302
|
.remainingAccounts(remainingAccounts)
|
|
218
303
|
.instruction();
|
|
@@ -237,6 +322,8 @@ class ClendVaultsProgram {
|
|
|
237
322
|
manager: vaultManager,
|
|
238
323
|
tokenProgram: assetMintTokenProgram,
|
|
239
324
|
clendProgram: clend_rpc_1.CLEND_PROGRAM_ID,
|
|
325
|
+
eventAuthority: (0, addresses_1.getEventAuthorityPda)(),
|
|
326
|
+
program: this.program.programId,
|
|
240
327
|
})
|
|
241
328
|
.remainingAccounts(remainingAccounts)
|
|
242
329
|
.instruction();
|
|
@@ -259,12 +346,14 @@ class ClendVaultsProgram {
|
|
|
259
346
|
manager: vaultManager,
|
|
260
347
|
tokenProgram: mintTokenProgram,
|
|
261
348
|
clendProgram: clend_rpc_1.CLEND_PROGRAM_ID,
|
|
349
|
+
eventAuthority: (0, addresses_1.getEventAuthorityPda)(),
|
|
350
|
+
program: this.program.programId,
|
|
262
351
|
})
|
|
263
352
|
.remainingAccounts(remainingAccounts)
|
|
264
353
|
.instruction();
|
|
265
354
|
return [ix];
|
|
266
355
|
}
|
|
267
|
-
async clendAccountBorrow(vault, vaultManager, clendGroup, clendAccount, assetMint, mintTokenProgram, amount, remainingAccounts) {
|
|
356
|
+
async clendAccountBorrow(vault, vaultManager, clendGroup, clendAccount, assetMint, assetOracle, mintTokenProgram, userSession, amount, remainingAccounts) {
|
|
268
357
|
const bank = (0, clend_rpc_1.getBankPda)(clendGroup, assetMint);
|
|
269
358
|
const bankLiquidityVault = (0, clend_rpc_1.getBankLiquidityVaultPda)(bank);
|
|
270
359
|
const bankLiquidityVaultAuthority = (0, clend_rpc_1.getBankLiquidityVaultAuthorityPda)(bank);
|
|
@@ -274,15 +363,19 @@ class ClendVaultsProgram {
|
|
|
274
363
|
.accountsStrict({
|
|
275
364
|
vault,
|
|
276
365
|
assetMint,
|
|
366
|
+
assetOracle,
|
|
277
367
|
clendGroup,
|
|
278
368
|
clendAccount,
|
|
279
369
|
bank,
|
|
280
370
|
destinationTokenAccount,
|
|
281
371
|
bankLiquidityVaultAuthority,
|
|
282
372
|
bankLiquidityVault,
|
|
373
|
+
userSession,
|
|
283
374
|
manager: vaultManager,
|
|
284
375
|
tokenProgram: mintTokenProgram,
|
|
285
376
|
clendProgram: clend_rpc_1.CLEND_PROGRAM_ID,
|
|
377
|
+
eventAuthority: (0, addresses_1.getEventAuthorityPda)(),
|
|
378
|
+
program: this.program.programId,
|
|
286
379
|
})
|
|
287
380
|
.remainingAccounts(remainingAccounts)
|
|
288
381
|
.instruction();
|
|
@@ -306,11 +399,13 @@ class ClendVaultsProgram {
|
|
|
306
399
|
manager: vaultManager,
|
|
307
400
|
tokenProgram: assetTokenProgram,
|
|
308
401
|
clendProgram: clend_rpc_1.CLEND_PROGRAM_ID,
|
|
402
|
+
eventAuthority: (0, addresses_1.getEventAuthorityPda)(),
|
|
403
|
+
program: this.program.programId,
|
|
309
404
|
})
|
|
310
405
|
.instruction();
|
|
311
406
|
return ix;
|
|
312
407
|
}
|
|
313
|
-
async swap(vault, vaultManager, assetInMint, assetOutMint, vaultAssetInOracle, vaultAssetOutOracle, vaultAssetInReserve, vaultAssetOutReserve, swapData, remainingAccounts) {
|
|
408
|
+
async swap(vault, vaultManager, assetInMint, assetOutMint, vaultAssetInOracle, vaultAssetOutOracle, vaultAssetInReserve, vaultAssetOutReserve, userSession, swapData, remainingAccounts) {
|
|
314
409
|
const ix = await this.program.methods
|
|
315
410
|
.swap({ swapData: Buffer.from(swapData) })
|
|
316
411
|
.accountsStrict({
|
|
@@ -321,7 +416,11 @@ class ClendVaultsProgram {
|
|
|
321
416
|
vaultAssetOutOracle,
|
|
322
417
|
vaultAssetInReserve,
|
|
323
418
|
vaultAssetOutReserve,
|
|
419
|
+
userSession,
|
|
324
420
|
manager: vaultManager,
|
|
421
|
+
systemProgram: anchor_1.web3.SystemProgram.programId,
|
|
422
|
+
eventAuthority: (0, addresses_1.getEventAuthorityPda)(),
|
|
423
|
+
program: this.program.programId,
|
|
325
424
|
})
|
|
326
425
|
.remainingAccounts(remainingAccounts)
|
|
327
426
|
.instruction();
|
|
@@ -338,6 +437,8 @@ class ClendVaultsProgram {
|
|
|
338
437
|
shares,
|
|
339
438
|
sharesDestination,
|
|
340
439
|
tokenProgram: spl_token_1.TOKEN_2022_PROGRAM_ID,
|
|
440
|
+
eventAuthority: (0, addresses_1.getEventAuthorityPda)(),
|
|
441
|
+
program: this.program.programId,
|
|
341
442
|
})
|
|
342
443
|
.instruction();
|
|
343
444
|
return [createSharesDestinationIx, ix];
|
|
@@ -361,6 +462,8 @@ class ClendVaultsProgram {
|
|
|
361
462
|
switchboardOnDemandProgram: sbProgram,
|
|
362
463
|
tokenProgram: spl_token_1.TOKEN_PROGRAM_ID,
|
|
363
464
|
systemProgram: anchor_1.web3.SystemProgram.programId,
|
|
465
|
+
eventAuthority: (0, addresses_1.getEventAuthorityPda)(),
|
|
466
|
+
program: this.program.programId,
|
|
364
467
|
})
|
|
365
468
|
.remainingAccounts(remainingAccounts)
|
|
366
469
|
.instruction();
|
|
@@ -369,7 +472,14 @@ class ClendVaultsProgram {
|
|
|
369
472
|
async updateAssetOracle(vault, manager, assetMint, oracleMaxAge, oracle) {
|
|
370
473
|
const ix = await this.program.methods
|
|
371
474
|
.updateAssetOracle({ oracleMaxAge })
|
|
372
|
-
.accountsStrict({
|
|
475
|
+
.accountsStrict({
|
|
476
|
+
vault,
|
|
477
|
+
manager,
|
|
478
|
+
oracle,
|
|
479
|
+
assetMint,
|
|
480
|
+
eventAuthority: (0, addresses_1.getEventAuthorityPda)(),
|
|
481
|
+
program: this.program.programId,
|
|
482
|
+
})
|
|
373
483
|
.instruction();
|
|
374
484
|
return ix;
|
|
375
485
|
}
|
package/dist/program.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"program.js","sourceRoot":"","sources":["../src/program.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"program.js","sourceRoot":"","sources":["../src/program.ts"],"names":[],"mappings":"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"}
|