@carrot-protocol/clend-vaults-rpc 0.0.30-exec-fee-2-dev-1383e4d → 0.0.30-execution-fee1-dev-c23f9d0
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 +0 -1
- package/dist/addresses.js +0 -5
- package/dist/addresses.js.map +1 -1
- package/dist/events.d.ts +3 -35
- package/dist/events.js +4 -56
- package/dist/events.js.map +1 -1
- package/dist/idl/clend_vaults.d.ts +50 -790
- package/dist/idl/clend_vaults.json +71 -811
- package/dist/math.d.ts +0 -9
- package/dist/math.js +0 -39
- package/dist/math.js.map +1 -1
- package/dist/program.d.ts +3 -10
- package/dist/program.js +19 -60
- package/dist/program.js.map +1 -1
- package/dist/rpc.d.ts +4 -4
- package/dist/rpc.js +54 -47
- package/dist/rpc.js.map +1 -1
- package/dist/swapper.js +1 -1
- package/dist/swapper.js.map +1 -1
- package/package.json +1 -1
package/dist/math.d.ts
CHANGED
|
@@ -36,12 +36,3 @@ export declare function usdToAmount(usdAmount: number, decimals: number, price:
|
|
|
36
36
|
*/
|
|
37
37
|
export declare function convertSharesToAsset(vaultNav: number, sharesAmountUi: number, assetDecimals: number, assetPrice: number): BN;
|
|
38
38
|
export declare function convertAssetToShares(vaultNav: number, assetAmount: BN, assetDecimals: number, sharesDecimals: number, assetPrice: number): BN;
|
|
39
|
-
/**
|
|
40
|
-
* Adjusts an amount upwards to compensate for potential swap slippage,
|
|
41
|
-
* assuming worst-case based on slippageBps.
|
|
42
|
-
*
|
|
43
|
-
* @param amountToAdjust - The amount to adjust (native units, BN), typically after cost adjustments.
|
|
44
|
-
* @param slippageBps - The maximum slippage tolerance in basis points (e.g., 100 for 1%).
|
|
45
|
-
* @returns Adjusted amount (native units, BN), slightly more than the input amount. Returns input amount if slippageBps is zero or invalid.
|
|
46
|
-
*/
|
|
47
|
-
export declare function adjustAmountForSlippage(amountToAdjust: BN, slippageBps: number): BN;
|
package/dist/math.js
CHANGED
|
@@ -1,7 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
3
|
exports.calculateVaultNav = calculateVaultNav;
|
|
7
4
|
exports.usdEarned = usdEarned;
|
|
@@ -12,10 +9,7 @@ exports.amountToUsd = amountToUsd;
|
|
|
12
9
|
exports.usdToAmount = usdToAmount;
|
|
13
10
|
exports.convertSharesToAsset = convertSharesToAsset;
|
|
14
11
|
exports.convertAssetToShares = convertAssetToShares;
|
|
15
|
-
exports.adjustAmountForSlippage = adjustAmountForSlippage;
|
|
16
|
-
const anchor_1 = require("@coral-xyz/anchor");
|
|
17
12
|
const utils_1 = require("./utils");
|
|
18
|
-
const decimal_js_1 = __importDefault(require("decimal.js"));
|
|
19
13
|
/**
|
|
20
14
|
* Computes the net asset value (NAV) per share based on vault equity and share supply.
|
|
21
15
|
*/
|
|
@@ -84,37 +78,4 @@ function convertAssetToShares(vaultNav, assetAmount, assetDecimals, sharesDecima
|
|
|
84
78
|
const assetUsd = amountToUsd(assetAmount, assetDecimals, assetPrice);
|
|
85
79
|
return usdToAmount(assetUsd, sharesDecimals, vaultNav);
|
|
86
80
|
}
|
|
87
|
-
/**
|
|
88
|
-
* Adjusts an amount upwards to compensate for potential swap slippage,
|
|
89
|
-
* assuming worst-case based on slippageBps.
|
|
90
|
-
*
|
|
91
|
-
* @param amountToAdjust - The amount to adjust (native units, BN), typically after cost adjustments.
|
|
92
|
-
* @param slippageBps - The maximum slippage tolerance in basis points (e.g., 100 for 1%).
|
|
93
|
-
* @returns Adjusted amount (native units, BN), slightly more than the input amount. Returns input amount if slippageBps is zero or invalid.
|
|
94
|
-
*/
|
|
95
|
-
function adjustAmountForSlippage(amountToAdjust, slippageBps) {
|
|
96
|
-
if (slippageBps <= 0) {
|
|
97
|
-
return amountToAdjust; // No adjustment if no slippage tolerance
|
|
98
|
-
}
|
|
99
|
-
const S = new decimal_js_1.default(slippageBps).div(10000); // Slippage factor S as decimal
|
|
100
|
-
// Ensure S is less than 1 (100% slippage)
|
|
101
|
-
if (S.gte(1)) {
|
|
102
|
-
return amountToAdjust;
|
|
103
|
-
}
|
|
104
|
-
// Formula: B_actual ≈ B_ideal / (1 - S)
|
|
105
|
-
// We borrow slightly more, anticipating the swap output will be worth less by factor S.
|
|
106
|
-
const denominator = new decimal_js_1.default(1).sub(S);
|
|
107
|
-
// Should not happen with S < 1, but safety check
|
|
108
|
-
if (denominator.isZero() ||
|
|
109
|
-
denominator.isNaN() ||
|
|
110
|
-
!denominator.isFinite() ||
|
|
111
|
-
denominator.isNegative()) {
|
|
112
|
-
return amountToAdjust;
|
|
113
|
-
}
|
|
114
|
-
const amountToAdjustDecimal = new decimal_js_1.default(amountToAdjust.toString());
|
|
115
|
-
const adjustedAmountDecimal = amountToAdjustDecimal.div(denominator);
|
|
116
|
-
// Round up when increasing amount due to needing more input for slippage
|
|
117
|
-
const adjustedAmount = new anchor_1.BN(adjustedAmountDecimal.ceil().toFixed());
|
|
118
|
-
return adjustedAmount;
|
|
119
|
-
}
|
|
120
81
|
//# 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":";;AAOA,8CAQC;AAKD,8BAEC;AAQD,gCAGC;AAQD,gCAEC;AAGD,sEAUC;AAKD,kCAMC;AAKD,kCAMC;AAKD,oDAWC;AAED,oDASC;AAvGD,mCAAkC;AAElC;;GAEG;AACH,SAAgB,iBAAiB,CAC/B,MAAc,EACd,cAAsB;IAEtB,IAAI,MAAM,KAAK,CAAC,IAAI,cAAc,KAAK,CAAC,EAAE,CAAC;QACzC,OAAO,CAAC,CAAC;IACX,CAAC;IACD,OAAO,MAAM,GAAG,cAAc,CAAC;AACjC,CAAC;AAED;;GAEG;AACH,SAAgB,SAAS,CAAC,QAAgB,EAAE,GAAW;IACrD,OAAO,QAAQ,GAAG,GAAG,CAAC;AACxB,CAAC;AAED;;;;;GAKG;AACH,SAAgB,UAAU,CAAC,QAAgB,EAAE,QAAgB;IAC3D,8BAA8B;IAC9B,OAAO,IAAA,eAAO,EAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,EAAE,IAAI,QAAQ,CAAC,CAAC,CAAC;AACxD,CAAC;AAED;;;;;GAKG;AACH,SAAgB,UAAU,CAAC,MAAU,EAAE,QAAgB;IACrD,OAAO,MAAM,CAAC,QAAQ,EAAE,GAAG,EAAE,IAAI,QAAQ,CAAC;AAC5C,CAAC;AAED,kCAAkC;AAClC,SAAgB,6BAA6B,CAC3C,sBAAiC;IAEjC,IAAI,aAAa,GAAG,CAAC,CAAC;IACtB,KAAK,MAAM,OAAO,IAAI,sBAAsB,EAAE,CAAC;QAC7C,oCAAoC;QACpC,aAAa;YACX,aAAa,GAAG,CAAC,OAAO,CAAC,UAAU,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IAClE,CAAC;IACD,OAAO,aAAa,CAAC;AACvB,CAAC;AAED;;GAEG;AACH,SAAgB,WAAW,CACzB,MAAU,EACV,QAAgB,EAChB,KAAa;IAEb,OAAO,UAAU,CAAC,MAAM,EAAE,QAAQ,CAAC,GAAG,KAAK,CAAC;AAC9C,CAAC;AAED;;GAEG;AACH,SAAgB,WAAW,CACzB,SAAiB,EACjB,QAAgB,EAChB,KAAa;IAEb,OAAO,UAAU,CAAC,SAAS,GAAG,KAAK,EAAE,QAAQ,CAAC,CAAC;AACjD,CAAC;AAED;;GAEG;AACH,SAAgB,oBAAoB,CAClC,QAAgB,EAChB,cAAsB,EACtB,aAAqB,EACrB,UAAkB;IAElB,MAAM,SAAS,GAAG,SAAS,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;IAEtD,MAAM,WAAW,GAAG,WAAW,CAAC,SAAS,EAAE,aAAa,EAAE,UAAU,CAAC,CAAC;IAEtE,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,SAAgB,oBAAoB,CAClC,QAAgB,EAChB,WAAe,EACf,aAAqB,EACrB,cAAsB,EACtB,UAAkB;IAElB,MAAM,QAAQ,GAAG,WAAW,CAAC,WAAW,EAAE,aAAa,EAAE,UAAU,CAAC,CAAC;IACrE,OAAO,WAAW,CAAC,QAAQ,EAAE,cAAc,EAAE,QAAQ,CAAC,CAAC;AACzD,CAAC"}
|
package/dist/program.d.ts
CHANGED
|
@@ -15,21 +15,14 @@ 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
|
-
|
|
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
|
-
}>;
|
|
18
|
+
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<web3.TransactionInstruction[]>;
|
|
26
19
|
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[]>;
|
|
27
20
|
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[]>;
|
|
28
21
|
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[]>;
|
|
29
22
|
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[]>;
|
|
30
|
-
clendAccountBorrow(vault: web3.PublicKey, vaultManager: web3.PublicKey, clendGroup: web3.PublicKey, clendAccount: web3.PublicKey, assetMint: web3.PublicKey,
|
|
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[]>;
|
|
31
24
|
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>;
|
|
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,
|
|
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[]>;
|
|
33
26
|
distributeFees(vault: web3.PublicKey, manager: web3.PublicKey, shares: web3.PublicKey, sharesDestinationOwner: web3.PublicKey): Promise<web3.TransactionInstruction[]>;
|
|
34
27
|
updateSbOraclePrice(vault: web3.PublicKey, shares: web3.PublicKey, queue: web3.PublicKey, feed: web3.PublicKey, remainingAccounts: web3.AccountMeta[]): Promise<web3.TransactionInstruction>;
|
|
35
28
|
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
|
@@ -127,47 +127,25 @@ class ClendVaultsProgram {
|
|
|
127
127
|
.instruction();
|
|
128
128
|
return ix;
|
|
129
129
|
}
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
op: op === "issue" ? 0 : 1,
|
|
134
|
-
endSessionIxIndex,
|
|
135
|
-
};
|
|
136
|
-
const startIx = await this.program.methods
|
|
137
|
-
.userSessionStart(args)
|
|
138
|
-
.accountsStrict({
|
|
139
|
-
vault,
|
|
140
|
-
userSession,
|
|
141
|
-
user,
|
|
142
|
-
manager,
|
|
143
|
-
instructions: anchor_1.web3.SYSVAR_INSTRUCTIONS_PUBKEY,
|
|
144
|
-
systemProgram: anchor_1.web3.SystemProgram.programId,
|
|
145
|
-
})
|
|
146
|
-
.instruction();
|
|
147
|
-
const endIx = await this.program.methods
|
|
148
|
-
.userSessionEnd()
|
|
149
|
-
.accountsStrict({
|
|
150
|
-
vault,
|
|
151
|
-
userSession,
|
|
152
|
-
manager,
|
|
153
|
-
})
|
|
154
|
-
.instruction();
|
|
155
|
-
return { startIx, endIx };
|
|
156
|
-
}
|
|
130
|
+
// -----------------
|
|
131
|
+
// Shares ops
|
|
132
|
+
// -----------------
|
|
157
133
|
async issue(vault, sharesMint, user, assetMint, assetOracle, amount, minAmountOut, assetTokenProgram, sharesTokenProgram, remainingAccounts) {
|
|
158
134
|
// Vault reserve (owner is vault PDA)
|
|
159
135
|
const vaultAssetReserve = (0, spl_token_1.getAssociatedTokenAddressSync)(assetMint, vault, true, assetTokenProgram);
|
|
160
136
|
// User ATAs (owner is user)
|
|
161
137
|
const userAssetAccount = (0, spl_token_1.getAssociatedTokenAddressSync)(assetMint, user, true, assetTokenProgram);
|
|
162
138
|
const userSharesAccount = (0, spl_token_1.getAssociatedTokenAddressSync)(sharesMint, user, true, sharesTokenProgram);
|
|
163
|
-
const
|
|
164
|
-
const issueStartIxns = [];
|
|
139
|
+
const ixns = [];
|
|
165
140
|
if (assetMint.equals(SOL_MINT)) {
|
|
166
141
|
// if the asset is sol, wrap it before issue
|
|
167
|
-
|
|
142
|
+
ixns.push(...createWSolTokenAccountIxns(user, amount));
|
|
168
143
|
}
|
|
169
|
-
|
|
170
|
-
|
|
144
|
+
// for shares received
|
|
145
|
+
const createUserSharesIx = (0, spl_token_1.createAssociatedTokenAccountIdempotentInstruction)(user, userSharesAccount, user, sharesMint, sharesTokenProgram);
|
|
146
|
+
ixns.push(createUserSharesIx);
|
|
147
|
+
const ix = await this.program.methods
|
|
148
|
+
.issue({ amount, minAmountOut })
|
|
171
149
|
.accountsStrict({
|
|
172
150
|
vault,
|
|
173
151
|
shares: sharesMint,
|
|
@@ -175,38 +153,21 @@ class ClendVaultsProgram {
|
|
|
175
153
|
assetOracle,
|
|
176
154
|
vaultAssetReserve,
|
|
177
155
|
userAssetAccount,
|
|
178
|
-
|
|
156
|
+
userSharesAccount,
|
|
179
157
|
user,
|
|
180
158
|
clendProgram: clend_rpc_1.CLEND_PROGRAM_ID,
|
|
181
159
|
assetTokenProgram,
|
|
182
|
-
})
|
|
183
|
-
.remainingAccounts(remainingAccounts)
|
|
184
|
-
.instruction();
|
|
185
|
-
issueStartIxns.push(issueStartIx);
|
|
186
|
-
// for shares received
|
|
187
|
-
const createUserSharesIx = (0, spl_token_1.createAssociatedTokenAccountIdempotentInstruction)(user, userSharesAccount, user, sharesMint, sharesTokenProgram);
|
|
188
|
-
const issueEndIx = await this.program.methods
|
|
189
|
-
.issueEnd({ minAmountOut })
|
|
190
|
-
.accountsStrict({
|
|
191
|
-
vault,
|
|
192
|
-
shares: sharesMint,
|
|
193
|
-
userSession,
|
|
194
|
-
user,
|
|
195
|
-
userSharesAccount,
|
|
196
160
|
sharesTokenProgram,
|
|
197
161
|
})
|
|
162
|
+
.remainingAccounts(remainingAccounts)
|
|
198
163
|
.instruction();
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
issueEndIx,
|
|
202
|
-
];
|
|
203
|
-
return { issueStartIxns, issueEndIxns };
|
|
164
|
+
ixns.push(ix);
|
|
165
|
+
return ixns;
|
|
204
166
|
}
|
|
205
167
|
async redeem(vault, sharesMint, user, assetMint, assetOracle, amount, minAmountOut, assetTokenProgram, sharesTokenProgram, remainingAccounts) {
|
|
206
168
|
const vaultAssetReserve = (0, spl_token_1.getAssociatedTokenAddressSync)(assetMint, vault, true, assetTokenProgram);
|
|
207
169
|
const userAssetAccount = (0, spl_token_1.getAssociatedTokenAddressSync)(assetMint, user, true, assetTokenProgram);
|
|
208
170
|
const userSharesAccount = (0, spl_token_1.getAssociatedTokenAddressSync)(sharesMint, user, true, sharesTokenProgram);
|
|
209
|
-
const userSession = (0, addresses_1.getUserSessionPda)(vault, user);
|
|
210
171
|
// Make sure the user asset ATA exists
|
|
211
172
|
const createUserAssetIx = (0, spl_token_1.createAssociatedTokenAccountIdempotentInstruction)(user, userAssetAccount, user, assetMint, assetTokenProgram);
|
|
212
173
|
const ix = await this.program.methods
|
|
@@ -219,7 +180,6 @@ class ClendVaultsProgram {
|
|
|
219
180
|
vaultAssetReserve,
|
|
220
181
|
userAssetAccount,
|
|
221
182
|
userSharesAccount,
|
|
222
|
-
userSession,
|
|
223
183
|
user,
|
|
224
184
|
clendProgram: clend_rpc_1.CLEND_PROGRAM_ID,
|
|
225
185
|
assetTokenProgram,
|
|
@@ -234,6 +194,9 @@ class ClendVaultsProgram {
|
|
|
234
194
|
}
|
|
235
195
|
return ixns;
|
|
236
196
|
}
|
|
197
|
+
// -----------------
|
|
198
|
+
// Clend-account ops (builders; vault PDA signs via seeds)
|
|
199
|
+
// -----------------
|
|
237
200
|
async clendAccountDeposit(vault, vaultManager, clendGroup, clendAccount, assetMint, assetMintTokenProgram, amount, vaultReserve, remainingAccounts) {
|
|
238
201
|
const bank = (0, clend_rpc_1.getBankPda)(clendGroup, assetMint);
|
|
239
202
|
const bankLiquidityVault = (0, clend_rpc_1.getBankLiquidityVaultPda)(bank);
|
|
@@ -301,7 +264,7 @@ class ClendVaultsProgram {
|
|
|
301
264
|
.instruction();
|
|
302
265
|
return [ix];
|
|
303
266
|
}
|
|
304
|
-
async clendAccountBorrow(vault, vaultManager, clendGroup, clendAccount, assetMint,
|
|
267
|
+
async clendAccountBorrow(vault, vaultManager, clendGroup, clendAccount, assetMint, mintTokenProgram, amount, remainingAccounts) {
|
|
305
268
|
const bank = (0, clend_rpc_1.getBankPda)(clendGroup, assetMint);
|
|
306
269
|
const bankLiquidityVault = (0, clend_rpc_1.getBankLiquidityVaultPda)(bank);
|
|
307
270
|
const bankLiquidityVaultAuthority = (0, clend_rpc_1.getBankLiquidityVaultAuthorityPda)(bank);
|
|
@@ -311,14 +274,12 @@ class ClendVaultsProgram {
|
|
|
311
274
|
.accountsStrict({
|
|
312
275
|
vault,
|
|
313
276
|
assetMint,
|
|
314
|
-
assetOracle,
|
|
315
277
|
clendGroup,
|
|
316
278
|
clendAccount,
|
|
317
279
|
bank,
|
|
318
280
|
destinationTokenAccount,
|
|
319
281
|
bankLiquidityVaultAuthority,
|
|
320
282
|
bankLiquidityVault,
|
|
321
|
-
userSession,
|
|
322
283
|
manager: vaultManager,
|
|
323
284
|
tokenProgram: mintTokenProgram,
|
|
324
285
|
clendProgram: clend_rpc_1.CLEND_PROGRAM_ID,
|
|
@@ -349,7 +310,7 @@ class ClendVaultsProgram {
|
|
|
349
310
|
.instruction();
|
|
350
311
|
return ix;
|
|
351
312
|
}
|
|
352
|
-
async swap(vault, vaultManager, assetInMint, assetOutMint, vaultAssetInOracle, vaultAssetOutOracle, vaultAssetInReserve, vaultAssetOutReserve,
|
|
313
|
+
async swap(vault, vaultManager, assetInMint, assetOutMint, vaultAssetInOracle, vaultAssetOutOracle, vaultAssetInReserve, vaultAssetOutReserve, swapData, remainingAccounts) {
|
|
353
314
|
const ix = await this.program.methods
|
|
354
315
|
.swap({ swapData: Buffer.from(swapData) })
|
|
355
316
|
.accountsStrict({
|
|
@@ -360,9 +321,7 @@ class ClendVaultsProgram {
|
|
|
360
321
|
vaultAssetOutOracle,
|
|
361
322
|
vaultAssetInReserve,
|
|
362
323
|
vaultAssetOutReserve,
|
|
363
|
-
userSession,
|
|
364
324
|
manager: vaultManager,
|
|
365
|
-
systemProgram: anchor_1.web3.SystemProgram.programId,
|
|
366
325
|
})
|
|
367
326
|
.remainingAccounts(remainingAccounts)
|
|
368
327
|
.instruction();
|
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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"}
|
package/dist/rpc.d.ts
CHANGED
|
@@ -33,10 +33,10 @@ export declare class ClendVaultsClient {
|
|
|
33
33
|
updateAssetFlags(vault: web3.PublicKey, assetMint: web3.PublicKey, newFlags: BN): Promise<string>;
|
|
34
34
|
updateClendAccountFlags(vault: web3.PublicKey, clendAccount: web3.PublicKey, newFlags: BN): Promise<string>;
|
|
35
35
|
updateVaultFlags(vault: web3.PublicKey, newFlags: BN): Promise<string>;
|
|
36
|
-
issue(vault: web3.PublicKey, assetMint: web3.PublicKey, amount: BN, minAmountOut: BN
|
|
37
|
-
prepareIssueIxns(user: web3.PublicKey, vault: web3.PublicKey, assetMint: web3.PublicKey, amount: BN, minAmountOut: BN
|
|
38
|
-
redeem(vault: web3.PublicKey, assetMint: web3.PublicKey, sharesAmount: BN, minAmountOut: BN
|
|
39
|
-
prepareRedeemIxns(user: web3.PublicKey, vault: web3.PublicKey, assetMint: web3.PublicKey, amount: BN, minAmountOut: BN
|
|
36
|
+
issue(vault: web3.PublicKey, assetMint: web3.PublicKey, amount: BN, minAmountOut: BN): Promise<string>;
|
|
37
|
+
prepareIssueIxns(user: web3.PublicKey, vault: web3.PublicKey, assetMint: web3.PublicKey, amount: BN, minAmountOut: BN): Promise<web3.TransactionInstruction[]>;
|
|
38
|
+
redeem(vault: web3.PublicKey, assetMint: web3.PublicKey, sharesAmount: BN, minAmountOut: BN): Promise<string>;
|
|
39
|
+
prepareRedeemIxns(user: web3.PublicKey, vault: web3.PublicKey, assetMint: web3.PublicKey, amount: BN, minAmountOut: BN): Promise<web3.TransactionInstruction[]>;
|
|
40
40
|
clendAccountDeposit(vault: web3.PublicKey, clendAccount: web3.PublicKey, assetMint: web3.PublicKey, amount: BN): Promise<string>;
|
|
41
41
|
clendAccountWithdraw(vault: web3.PublicKey, clendAccount: web3.PublicKey, assetMint: web3.PublicKey, amount: BN): Promise<string>;
|
|
42
42
|
clendAccountRepay(vault: web3.PublicKey, clendAccount: web3.PublicKey, assetMint: web3.PublicKey, amount: BN | number): Promise<string>;
|
package/dist/rpc.js
CHANGED
|
@@ -128,52 +128,29 @@ class ClendVaultsClient {
|
|
|
128
128
|
const txSig = await this.send([ix]);
|
|
129
129
|
return txSig;
|
|
130
130
|
}
|
|
131
|
-
async issue(vault, assetMint, amount, minAmountOut
|
|
132
|
-
const ixns = await this.prepareIssueIxns(this.address(), vault, assetMint, amount, minAmountOut
|
|
133
|
-
const
|
|
134
|
-
const txSig = await this.send(ixns, additionalSigners);
|
|
131
|
+
async issue(vault, assetMint, amount, minAmountOut) {
|
|
132
|
+
const ixns = await this.prepareIssueIxns(this.address(), vault, assetMint, amount, minAmountOut);
|
|
133
|
+
const txSig = await this.send(ixns);
|
|
135
134
|
return txSig;
|
|
136
135
|
}
|
|
137
|
-
async prepareIssueIxns(user, vault, assetMint, amount, minAmountOut
|
|
136
|
+
async prepareIssueIxns(user, vault, assetMint, amount, minAmountOut) {
|
|
138
137
|
// get vault and asset data
|
|
139
138
|
const vaultState = await this.getVault(vault);
|
|
140
139
|
const assetData = vaultState.assets.find((a) => a.mint.address.equals(assetMint));
|
|
141
140
|
const remainingAccounts = await buildEquityRemainingAccounts(vaultState, this.clendClient);
|
|
142
|
-
const
|
|
143
|
-
const endSessionIxIndex = additionalIxnCount +
|
|
144
|
-
1 + // userSessionStartIx
|
|
145
|
-
issueStartIxns.length +
|
|
146
|
-
issueEndIxns.length;
|
|
147
|
-
const { startIx: userSessionStartIx, endIx: userSessionEndIx } = await this.program.userSession(vault, vaultState.manager, user, "issue", endSessionIxIndex);
|
|
148
|
-
const ixns = [
|
|
149
|
-
userSessionStartIx,
|
|
150
|
-
...issueStartIxns,
|
|
151
|
-
...issueEndIxns,
|
|
152
|
-
userSessionEndIx,
|
|
153
|
-
];
|
|
141
|
+
const ixns = await this.program.issue(vault, vaultState.sharesMint, user, assetMint, assetData.oracle.address, amount, minAmountOut, assetData.mint.tokenProgram, spl_token_1.TOKEN_2022_PROGRAM_ID, remainingAccounts);
|
|
154
142
|
return ixns;
|
|
155
143
|
}
|
|
156
|
-
async redeem(vault, assetMint, sharesAmount, minAmountOut
|
|
157
|
-
const ixns = await this.prepareRedeemIxns(this.address(), vault, assetMint, sharesAmount, minAmountOut
|
|
158
|
-
const
|
|
159
|
-
const txSig = await this.send(ixns, additionalSigners);
|
|
144
|
+
async redeem(vault, assetMint, sharesAmount, minAmountOut) {
|
|
145
|
+
const ixns = await this.prepareRedeemIxns(this.address(), vault, assetMint, sharesAmount, minAmountOut);
|
|
146
|
+
const txSig = await this.send(ixns);
|
|
160
147
|
return txSig;
|
|
161
148
|
}
|
|
162
|
-
async prepareRedeemIxns(user, vault, assetMint, amount, minAmountOut
|
|
149
|
+
async prepareRedeemIxns(user, vault, assetMint, amount, minAmountOut) {
|
|
163
150
|
const vaultState = await this.getVault(vault);
|
|
164
151
|
const assetData = vaultState.assets.find((a) => a.mint.address.equals(assetMint));
|
|
165
152
|
const remainingAccounts = await buildEquityRemainingAccounts(vaultState, this.clendClient);
|
|
166
|
-
|
|
167
|
-
const endSessionIxIndex = additionalIxnCount +
|
|
168
|
-
1 + // userSessionStartIx
|
|
169
|
-
redeemIxns.length;
|
|
170
|
-
const { startIx: userSessionStartIx, endIx: userSessionEndIx } = await this.program.userSession(vault, vaultState.manager, user, "redeem", endSessionIxIndex);
|
|
171
|
-
const ixns = [
|
|
172
|
-
userSessionStartIx,
|
|
173
|
-
...redeemIxns,
|
|
174
|
-
userSessionEndIx,
|
|
175
|
-
];
|
|
176
|
-
return ixns;
|
|
153
|
+
return this.program.redeem(vault, vaultState.sharesMint, user, assetMint, assetData.oracle.address, amount, minAmountOut, assetData.mint.tokenProgram, spl_token_1.TOKEN_2022_PROGRAM_ID, remainingAccounts);
|
|
177
154
|
}
|
|
178
155
|
async clendAccountDeposit(vault, clendAccount, assetMint, amount) {
|
|
179
156
|
// fetch clend account data
|
|
@@ -242,7 +219,7 @@ class ClendVaultsClient {
|
|
|
242
219
|
}
|
|
243
220
|
const activeBankData = await this.clendClient.getBanks(clendAccountActiveBanks);
|
|
244
221
|
const ra = (0, clend_rpc_1.getClendAccountRemainingAccounts)(activeBankData);
|
|
245
|
-
const ixns = await this.program.clendAccountBorrow(vault, this.address(), clendAccountData.group, clendAccount, assetMint, assetData.
|
|
222
|
+
const ixns = await this.program.clendAccountBorrow(vault, this.address(), clendAccountData.group, clendAccount, assetMint, assetData.mint.tokenProgram, amount, ra);
|
|
246
223
|
const txSig = await this.send(ixns);
|
|
247
224
|
return txSig;
|
|
248
225
|
}
|
|
@@ -432,9 +409,9 @@ class ClendVaultsClient {
|
|
|
432
409
|
if (isIncrease && finalDebtDeltaUi > 0) {
|
|
433
410
|
// how much debt is actually borrowable in UI terms
|
|
434
411
|
const availableDebtUiRaw = (0, math_1.amountToUi)(debtBankData.availableSupply, debtDecimals);
|
|
435
|
-
//
|
|
436
|
-
const
|
|
437
|
-
const maxUsableDebtUi = availableDebtUiRaw
|
|
412
|
+
// leave a tiny buffer so we don't try to consume the very last lamport
|
|
413
|
+
const MIN_REMAINING_UI = 0.01; // e.g. 1 cent of USDC
|
|
414
|
+
const maxUsableDebtUi = Math.max(0, availableDebtUiRaw - MIN_REMAINING_UI);
|
|
438
415
|
if (maxUsableDebtUi <= 0) {
|
|
439
416
|
// error if there's literally no debt available to borrow
|
|
440
417
|
throw new Error("Not enough debt available to adjust leverage");
|
|
@@ -526,11 +503,7 @@ class ClendVaultsClient {
|
|
|
526
503
|
});
|
|
527
504
|
const swapIxns = await this.swapper.getSwapIxns(swapQuote);
|
|
528
505
|
const debtTokenProgram = await (0, clend_rpc_1.getTokenProgramForMintFromRpc)(this.program.program.provider.connection, debtBankData.mint);
|
|
529
|
-
const
|
|
530
|
-
if (!debtVaultAssetState) {
|
|
531
|
-
throw new Error(`Vault asset not found: ${debtBankData.mint.toString()}`);
|
|
532
|
-
}
|
|
533
|
-
const borrowIxns = await this.program.clendAccountBorrow(vault, vaultManager, clendAccountState.group, clendAccount, debtBankData.mint, debtVaultAssetState.oracle.address, debtTokenProgram, null, additionalDebtAmount, remainingAccounts);
|
|
506
|
+
const borrowIxns = await this.program.clendAccountBorrow(vault, vaultManager, clendAccountState.group, clendAccount, debtBankData.mint, debtTokenProgram, additionalDebtAmount, remainingAccounts);
|
|
534
507
|
const additionalCollateralAmount = swapQuote.outAmount;
|
|
535
508
|
const depositIxns = await this.program.clendAccountDeposit(vault, vaultManager, clendAccountState.group, clendAccount, collateralBankData.mint, collateralTokenProgram, additionalCollateralAmount, userCollateralAta, remainingAccounts);
|
|
536
509
|
instructions.push(...borrowIxns, ...swapIxns.ixns, ...depositIxns);
|
|
@@ -605,8 +578,7 @@ class ClendVaultsClient {
|
|
|
605
578
|
prependedIxCount += cuIxCount;
|
|
606
579
|
// get the redemption ixns
|
|
607
580
|
// these are run after the withdraw leverage ixns
|
|
608
|
-
const redeemIxns = await this.prepareRedeemIxns(user, vault, outputAssetMint, totalSharesToRedeem, new anchor_1.BN(0)
|
|
609
|
-
2);
|
|
581
|
+
const redeemIxns = await this.prepareRedeemIxns(user, vault, outputAssetMint, totalSharesToRedeem, new anchor_1.BN(0));
|
|
610
582
|
// calculate parameters for withdraw leverage
|
|
611
583
|
// based on output asset mint
|
|
612
584
|
let debtToRepay;
|
|
@@ -693,7 +665,11 @@ class ClendVaultsClient {
|
|
|
693
665
|
const debtToRepayUi = new decimal_js_1.Decimal((0, math_1.amountToUi)(debtToRepay, debtDecimals).toString());
|
|
694
666
|
const collateralToSwapUi_ideal = debtToRepayUi.div(outAmountUi);
|
|
695
667
|
const collateralToSwap_ideal = (0, math_1.uiToAmount)(collateralToSwapUi_ideal.toNumber(), collateralDecimals);
|
|
696
|
-
collateralToSwap =
|
|
668
|
+
collateralToSwap = collateralToSwap_ideal;
|
|
669
|
+
//collateralToSwap = adjustAmountForSlippage(
|
|
670
|
+
// collateralToSwap_ideal,
|
|
671
|
+
// slippageBps,
|
|
672
|
+
//);
|
|
697
673
|
// Step 4 (Final Quote): Get the real quote for the buffered amount.
|
|
698
674
|
swapQuote = await this.swapper.getQuote(vault, {
|
|
699
675
|
payer: vaultManager,
|
|
@@ -901,8 +877,10 @@ class ClendVaultsClient {
|
|
|
901
877
|
return { ixns: instructions, luts: swapIxns.luts };
|
|
902
878
|
}
|
|
903
879
|
async swap(vault, inputMint, outputMint, inAmount) {
|
|
904
|
-
const { state: inputMintState, tokenProgram:
|
|
905
|
-
const { state: outputMintState, tokenProgram:
|
|
880
|
+
const { state: inputMintState, tokenProgram: inputMintTokenProgram } = await (0, state_1.getMintState)(inputMint, this.connection);
|
|
881
|
+
const { state: outputMintState, tokenProgram: outputMintTokenProgram } = await (0, state_1.getMintState)(outputMint, this.connection);
|
|
882
|
+
const vaultAssetInReserve = (0, spl_token_1.getAssociatedTokenAddressSync)(inputMint, vault, true, inputMintTokenProgram);
|
|
883
|
+
const vaultAssetOutReserve = (0, spl_token_1.getAssociatedTokenAddressSync)(outputMint, vault, true, outputMintTokenProgram);
|
|
906
884
|
const quote = await this.swapper.getQuote(vault, {
|
|
907
885
|
payer: this.address(),
|
|
908
886
|
inputMint: inputMint,
|
|
@@ -914,6 +892,35 @@ class ClendVaultsClient {
|
|
|
914
892
|
slippageBps: 30,
|
|
915
893
|
});
|
|
916
894
|
const swapIxns = await this.swapper.getSwapIxns(quote);
|
|
895
|
+
//const swapIx = swapIxns.ixns[0];
|
|
896
|
+
////const swapIx = swapIxns.ixns.find((ix) =>
|
|
897
|
+
//// ix.programId.equals(JUPITER_SWAP_PROGRAM_ID),
|
|
898
|
+
////);
|
|
899
|
+
////if (!swapIx) {
|
|
900
|
+
//// throw new Error(
|
|
901
|
+
//// `Swap ix not found in swapIxns, programIds: ${JSON.stringify(swapIxns.ixns.map((ix) => ix.programId.toString()))}`,
|
|
902
|
+
//// );
|
|
903
|
+
////}
|
|
904
|
+
//const swapRemainingAccounts: web3.AccountMeta[] = swapIx.keys.map(
|
|
905
|
+
// (key) => ({
|
|
906
|
+
// pubkey: key.pubkey,
|
|
907
|
+
// // If the account is the vault PDA, mark it as NOT a signer for the client transaction.
|
|
908
|
+
// isSigner: key.pubkey.equals(vault) ? false : key.isSigner,
|
|
909
|
+
// isWritable: key.isWritable,
|
|
910
|
+
// }),
|
|
911
|
+
//);
|
|
912
|
+
//const swapData = swapIx.data;
|
|
913
|
+
//const ixns = await this.program.swap(
|
|
914
|
+
// vault,
|
|
915
|
+
// this.address(),
|
|
916
|
+
// inputMint,
|
|
917
|
+
// outputMint,
|
|
918
|
+
// vaultAssetInReserve,
|
|
919
|
+
// vaultAssetOutReserve,
|
|
920
|
+
// swapData,
|
|
921
|
+
// swapRemainingAccounts,
|
|
922
|
+
// JUPITER_SWAP_PROGRAM_ID,
|
|
923
|
+
//);
|
|
917
924
|
const txSig = await this.send(swapIxns.ixns, [], swapIxns.luts);
|
|
918
925
|
return txSig;
|
|
919
926
|
}
|