@kamino-finance/klend-sdk 5.11.15 → 5.11.17

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.
@@ -1,6 +1,5 @@
1
1
  import { Connection, PublicKey, TransactionInstruction } from '@solana/web3.js';
2
2
  import Decimal from 'decimal.js';
3
- import { AnchorProvider } from '@coral-xyz/anchor';
4
3
  /**
5
4
  * Create an idempotent create ATA instruction
6
5
  * Overrides the create ATA ix to use the idempotent version as the spl-token library does not provide this ix yet
@@ -29,6 +28,20 @@ export declare function createAtasIdempotent(user: PublicKey, mints: Array<{
29
28
  }>;
30
29
  export declare function getTransferWsolIxns(owner: PublicKey, ata: PublicKey, amountLamports: Decimal): TransactionInstruction[];
31
30
  export declare function removeBudgetAndAtaIxns(ixns: TransactionInstruction[], mints: string[]): TransactionInstruction[];
32
- export declare function getTokenAccountBalance(provider: AnchorProvider, tokenAccount: PublicKey): Promise<number>;
31
+ export declare function getTokenAccountBalance(connection: Connection, tokenAccount: PublicKey): Promise<number>;
33
32
  export declare function getTokenAccountBalanceDecimal(connection: Connection, mint: PublicKey, owner: PublicKey, tokenProgram?: PublicKey): Promise<Decimal>;
33
+ export type CreateWsolAtaIxs = {
34
+ wsolAta: PublicKey;
35
+ createAtaIxs: TransactionInstruction[];
36
+ closeAtaIxs: TransactionInstruction[];
37
+ };
38
+ /**
39
+ * Creates a wSOL ata if missing and syncs the balance. If the ata exists and it has more or equal no wrapping happens
40
+ * @param connection - Solana RPC connection (read)
41
+ * @param amount min amount to have in the wSOL ata. If the ata exists and it has more or equal no wrapping happens
42
+ * @param owner - owner of the ata
43
+ * @returns wsolAta: the keypair of the ata, used to sign the initialization transaction; createAtaIxs: a list with ixs to initialize the ata and wrap SOL if needed; closeAtaIxs: a list with ixs to close the ata
44
+ */
45
+ export declare const createWsolAtaIfMissing: (connection: Connection, amount: Decimal, owner: PublicKey) => Promise<CreateWsolAtaIxs>;
46
+ export declare const isWsolInfoInvalid: (wsolAtaAccountInfo: any) => boolean;
34
47
  //# sourceMappingURL=ata.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ata.d.ts","sourceRoot":"","sources":["../../src/utils/ata.ts"],"names":[],"mappings":"AAKA,OAAO,EAAwB,UAAU,EAAE,SAAS,EAAiB,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AACrH,OAAO,OAAO,MAAM,YAAY,CAAC;AACjC,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD;;;;;;;;;GASG;AACH,wBAAgB,iDAAiD,CAC/D,KAAK,EAAE,SAAS,EAChB,IAAI,EAAE,SAAS,EACf,KAAK,GAAE,SAAiB,EACxB,YAAY,GAAE,SAA4B,EAC1C,GAAG,CAAC,EAAE,SAAS,GACd,CAAC,SAAS,EAAE,sBAAsB,CAAC,CAcrC;AAED,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,SAAS,EACf,KAAK,EAAE,SAAS,EAChB,kBAAkB,UAAO,EACzB,SAAS,YAAmB,EAC5B,wBAAwB,YAA8B,GACrD,SAAS,CASX;AAED,eAAO,MAAM,8BAA8B,eAC7B,UAAU,QAChB,SAAS,SACR,KAAK,CAAC;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,YAAY,EAAE,SAAS,CAAA;CAAE,CAAC,KACzD,OAAO,CAAC;IAAE,IAAI,EAAE,SAAS,EAAE,CAAC;IAAC,YAAY,EAAE,sBAAsB,EAAE,CAAA;CAAE,CAgBvE,CAAC;AAEF,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,SAAS,EACf,KAAK,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,YAAY,EAAE,SAAS,CAAA;CAAE,CAAC,GACzD,KAAK,CAAC;IAAE,GAAG,EAAE,SAAS,CAAC;IAAC,WAAW,EAAE,sBAAsB,CAAA;CAAE,CAAC,CAehE;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,cAAc,EAAE,OAAO,4BA0B5F;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,sBAAsB,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,sBAAsB,EAAE,CAgBhH;AAED,wBAAsB,sBAAsB,CAAC,QAAQ,EAAE,cAAc,EAAE,YAAY,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAI/G;AAGD,wBAAsB,6BAA6B,CACjD,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,SAAS,EACf,KAAK,EAAE,SAAS,EAChB,YAAY,GAAE,SAA4B,GACzC,OAAO,CAAC,OAAO,CAAC,CAQlB"}
1
+ {"version":3,"file":"ata.d.ts","sourceRoot":"","sources":["../../src/utils/ata.ts"],"names":[],"mappings":"AASA,OAAO,EAGL,UAAU,EACV,SAAS,EAET,sBAAsB,EACvB,MAAM,iBAAiB,CAAC;AACzB,OAAO,OAAO,MAAM,YAAY,CAAC;AAGjC;;;;;;;;;GASG;AACH,wBAAgB,iDAAiD,CAC/D,KAAK,EAAE,SAAS,EAChB,IAAI,EAAE,SAAS,EACf,KAAK,GAAE,SAAiB,EACxB,YAAY,GAAE,SAA4B,EAC1C,GAAG,CAAC,EAAE,SAAS,GACd,CAAC,SAAS,EAAE,sBAAsB,CAAC,CAcrC;AAED,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,SAAS,EACf,KAAK,EAAE,SAAS,EAChB,kBAAkB,UAAO,EACzB,SAAS,YAAmB,EAC5B,wBAAwB,YAA8B,GACrD,SAAS,CASX;AAED,eAAO,MAAM,8BAA8B,eAC7B,UAAU,QAChB,SAAS,SACR,KAAK,CAAC;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,YAAY,EAAE,SAAS,CAAA;CAAE,CAAC,KACzD,OAAO,CAAC;IAAE,IAAI,EAAE,SAAS,EAAE,CAAC;IAAC,YAAY,EAAE,sBAAsB,EAAE,CAAA;CAAE,CAgBvE,CAAC;AAEF,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,SAAS,EACf,KAAK,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,YAAY,EAAE,SAAS,CAAA;CAAE,CAAC,GACzD,KAAK,CAAC;IAAE,GAAG,EAAE,SAAS,CAAC;IAAC,WAAW,EAAE,sBAAsB,CAAA;CAAE,CAAC,CAehE;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,cAAc,EAAE,OAAO,4BA0B5F;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,sBAAsB,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,sBAAsB,EAAE,CAgBhH;AAED,wBAAsB,sBAAsB,CAAC,UAAU,EAAE,UAAU,EAAE,YAAY,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAI7G;AAGD,wBAAsB,6BAA6B,CACjD,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,SAAS,EACf,KAAK,EAAE,SAAS,EAChB,YAAY,GAAE,SAA4B,GACzC,OAAO,CAAC,OAAO,CAAC,CAQlB;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC7B,OAAO,EAAE,SAAS,CAAC;IACnB,YAAY,EAAE,sBAAsB,EAAE,CAAC;IACvC,WAAW,EAAE,sBAAsB,EAAE,CAAC;CACvC,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,sBAAsB,eACrB,UAAU,UACd,OAAO,SACR,SAAS,KACf,OAAO,CAAC,gBAAgB,CA0D1B,CAAC;AAEF,eAAO,MAAM,iBAAiB,uBAAwB,GAAG,KAAG,OAQ3D,CAAC"}
package/dist/utils/ata.js CHANGED
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.getAtasWithCreateIxnsIfMissing = void 0;
6
+ exports.isWsolInfoInvalid = exports.createWsolAtaIfMissing = exports.getAtasWithCreateIxnsIfMissing = void 0;
7
7
  exports.createAssociatedTokenAccountIdempotentInstruction = createAssociatedTokenAccountIdempotentInstruction;
8
8
  exports.getAssociatedTokenAddress = getAssociatedTokenAddress;
9
9
  exports.createAtasIdempotent = createAtasIdempotent;
@@ -14,6 +14,7 @@ exports.getTokenAccountBalanceDecimal = getTokenAccountBalanceDecimal;
14
14
  const spl_token_1 = require("@solana/spl-token");
15
15
  const web3_js_1 = require("@solana/web3.js");
16
16
  const decimal_js_1 = __importDefault(require("decimal.js"));
17
+ const dist_1 = require("@kamino-finance/kliquidity-sdk/dist");
17
18
  /**
18
19
  * Create an idempotent create ATA instruction
19
20
  * Overrides the create ATA ix to use the idempotent version as the spl-token library does not provide this ix yet
@@ -100,8 +101,8 @@ function removeBudgetAndAtaIxns(ixns, mints) {
100
101
  return true;
101
102
  });
102
103
  }
103
- async function getTokenAccountBalance(provider, tokenAccount) {
104
- const tokenAccountBalance = await provider.connection.getTokenAccountBalance(tokenAccount);
104
+ async function getTokenAccountBalance(connection, tokenAccount) {
105
+ const tokenAccountBalance = await connection.getTokenAccountBalance(tokenAccount);
105
106
  return Number(tokenAccountBalance.value.amount).valueOf();
106
107
  }
107
108
  /// Get the balance of a token account in decimal format (tokens, not lamports)
@@ -114,4 +115,68 @@ async function getTokenAccountBalanceDecimal(connection, mint, owner, tokenProgr
114
115
  const { value } = await connection.getTokenAccountBalance(ata);
115
116
  return new decimal_js_1.default(value.uiAmountString);
116
117
  }
118
+ /**
119
+ * Creates a wSOL ata if missing and syncs the balance. If the ata exists and it has more or equal no wrapping happens
120
+ * @param connection - Solana RPC connection (read)
121
+ * @param amount min amount to have in the wSOL ata. If the ata exists and it has more or equal no wrapping happens
122
+ * @param owner - owner of the ata
123
+ * @returns wsolAta: the keypair of the ata, used to sign the initialization transaction; createAtaIxs: a list with ixs to initialize the ata and wrap SOL if needed; closeAtaIxs: a list with ixs to close the ata
124
+ */
125
+ const createWsolAtaIfMissing = async (connection, amount, owner) => {
126
+ const createIxns = [];
127
+ const closeIxns = [];
128
+ const wsolAta = (0, spl_token_1.getAssociatedTokenAddressSync)(spl_token_1.NATIVE_MINT, owner, true, spl_token_1.TOKEN_PROGRAM_ID);
129
+ const solDeposit = amount;
130
+ const wsolAtaAccountInfo = await connection.getAccountInfo(wsolAta);
131
+ // This checks if we need to create it
132
+ if ((0, exports.isWsolInfoInvalid)(wsolAtaAccountInfo)) {
133
+ createIxns.push((0, spl_token_1.createAssociatedTokenAccountInstruction)(owner, wsolAta, owner, spl_token_1.NATIVE_MINT, spl_token_1.TOKEN_PROGRAM_ID));
134
+ }
135
+ let wsolExistingBalanceLamports = new decimal_js_1.default(0);
136
+ try {
137
+ if (wsolAtaAccountInfo != null) {
138
+ const uiAmount = (await getTokenAccountBalanceDecimal(connection, spl_token_1.NATIVE_MINT, owner)).toNumber();
139
+ wsolExistingBalanceLamports = (0, dist_1.collToLamportsDecimal)(new decimal_js_1.default(uiAmount), dist_1.DECIMALS_SOL);
140
+ }
141
+ }
142
+ catch (err) {
143
+ console.log('Err Token Balance', err);
144
+ }
145
+ if (solDeposit !== null && solDeposit.gt(wsolExistingBalanceLamports)) {
146
+ createIxns.push(web3_js_1.SystemProgram.transfer({
147
+ fromPubkey: owner,
148
+ toPubkey: wsolAta,
149
+ lamports: BigInt(solDeposit.sub(wsolExistingBalanceLamports).floor().toString()),
150
+ }));
151
+ }
152
+ if (createIxns.length > 0) {
153
+ // Primitive way of wrapping SOL
154
+ createIxns.push(new web3_js_1.TransactionInstruction({
155
+ keys: [
156
+ {
157
+ pubkey: wsolAta,
158
+ isSigner: false,
159
+ isWritable: true,
160
+ },
161
+ ],
162
+ data: Buffer.from(new Uint8Array([17])),
163
+ programId: spl_token_1.TOKEN_PROGRAM_ID,
164
+ }));
165
+ }
166
+ closeIxns.push((0, spl_token_1.createCloseAccountInstruction)(wsolAta, owner, owner, [], spl_token_1.TOKEN_PROGRAM_ID));
167
+ return {
168
+ wsolAta,
169
+ createAtaIxs: createIxns,
170
+ closeAtaIxs: closeIxns,
171
+ };
172
+ };
173
+ exports.createWsolAtaIfMissing = createWsolAtaIfMissing;
174
+ const isWsolInfoInvalid = (wsolAtaAccountInfo) => {
175
+ const res = wsolAtaAccountInfo === null ||
176
+ (wsolAtaAccountInfo !== null &&
177
+ wsolAtaAccountInfo.data.length === 0 &&
178
+ wsolAtaAccountInfo.owner.eq(web3_js_1.PublicKey.default));
179
+ return res;
180
+ };
181
+ exports.isWsolInfoInvalid = isWsolInfoInvalid;
117
182
  //# sourceMappingURL=ata.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ata.js","sourceRoot":"","sources":["../../src/utils/ata.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ata.js","sourceRoot":"","sources":["../../src/utils/ata.ts"],"names":[],"mappings":"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"}
@@ -55,4 +55,5 @@ export declare const SOL_PADDING_FOR_INTEREST: BN;
55
55
  */
56
56
  export declare const MIN_INITIAL_DEPOSIT = 100000;
57
57
  export declare const MIN_VAULT_INITIAL_DEPOSIT = 1000000000;
58
+ export declare const VAULT_INITIAL_DEPOSIT = 1000;
58
59
  //# sourceMappingURL=constants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/utils/constants.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,YAAY,CAAC;AAEjC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,MAAM,OAAO,CAAC;AAEvB,eAAO,MAAM,kBAAkB,EAAE,SAAwE,CAAC;AAC1G,eAAO,MAAM,wBAAwB,EAAE,MAA8B,CAAC;AACtE,eAAO,MAAM,OAAO,yBAAyB,CAAC;AAE9C,eAAO,MAAM,uBAAuB,SAAwC,CAAC;AAE7E,eAAO,MAAM,gBAAgB,QAAmC,CAAC;AAEjE,eAAO,MAAM,4BAA4B,KAAK,CAAC;AAE/C,MAAM,MAAM,GAAG,GAAG,cAAc,GAAG,QAAQ,GAAG,UAAU,CAAC;AAEzD,wBAAgB,KAAK,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,IAAI,GAAG,CAE9C;AAED,wBAAgB,cAAc,CAAC,SAAS,EAAE,SAAS,UAMlD;AAED,eAAO,MAAM,YAAY,0DAA0D,CAAC;AAEpF,eAAO,MAAM,sBAAsB,QAAS,CAAC;AAE7C,wBAAgB,YAAY,CAAC,GAAG,GAAE,cAAc,GAAG,SAA0B,aAM5E;AAED;;GAEG;AACH,eAAO,MAAM,gBAAgB,IAAI,CAAC;AAElC;;;GAGG;AACH,eAAO,MAAM,gBAAgB,QAAwB,CAAC;AAEtD;;;GAGG;AACH,eAAO,MAAM,cAAc,QAAwB,CAAC;AAEpD;;;GAGG;AACH,eAAO,MAAM,aAAa,QAAsB,CAAC;AAEjD;;;GAGG;AACH,eAAO,MAAM,cAAc,QAAsB,CAAC;AAElD;;GAEG;AACH,eAAO,MAAM,4BAA4B,KAAK,CAAC;AAE/C,eAAO,MAAM,YAAY,IAAI,CAAC;AAE9B,eAAO,MAAM,qBAAqB,MAAM,CAAC;AAEzC,eAAO,MAAM,aAAa,IAAI,CAAC;AAC/B,eAAO,MAAM,cAAc,IAAI,CAAC;AAEhC,eAAO,MAAM,yBAAyB,UAAY,CAAC;AAEnD;;GAEG;AACH,eAAO,MAAM,wBAAwB,IAAoB,CAAC;AAE1D;;GAEG;AACH,eAAO,MAAM,mBAAmB,SAAU,CAAC;AAC3C,eAAO,MAAM,yBAAyB,aAAgB,CAAC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/utils/constants.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,YAAY,CAAC;AAEjC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,MAAM,OAAO,CAAC;AAEvB,eAAO,MAAM,kBAAkB,EAAE,SAAwE,CAAC;AAC1G,eAAO,MAAM,wBAAwB,EAAE,MAA8B,CAAC;AACtE,eAAO,MAAM,OAAO,yBAAyB,CAAC;AAE9C,eAAO,MAAM,uBAAuB,SAAwC,CAAC;AAE7E,eAAO,MAAM,gBAAgB,QAAmC,CAAC;AAEjE,eAAO,MAAM,4BAA4B,KAAK,CAAC;AAE/C,MAAM,MAAM,GAAG,GAAG,cAAc,GAAG,QAAQ,GAAG,UAAU,CAAC;AAEzD,wBAAgB,KAAK,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,IAAI,GAAG,CAE9C;AAED,wBAAgB,cAAc,CAAC,SAAS,EAAE,SAAS,UAMlD;AAED,eAAO,MAAM,YAAY,0DAA0D,CAAC;AAEpF,eAAO,MAAM,sBAAsB,QAAS,CAAC;AAE7C,wBAAgB,YAAY,CAAC,GAAG,GAAE,cAAc,GAAG,SAA0B,aAM5E;AAED;;GAEG;AACH,eAAO,MAAM,gBAAgB,IAAI,CAAC;AAElC;;;GAGG;AACH,eAAO,MAAM,gBAAgB,QAAwB,CAAC;AAEtD;;;GAGG;AACH,eAAO,MAAM,cAAc,QAAwB,CAAC;AAEpD;;;GAGG;AACH,eAAO,MAAM,aAAa,QAAsB,CAAC;AAEjD;;;GAGG;AACH,eAAO,MAAM,cAAc,QAAsB,CAAC;AAElD;;GAEG;AACH,eAAO,MAAM,4BAA4B,KAAK,CAAC;AAE/C,eAAO,MAAM,YAAY,IAAI,CAAC;AAE9B,eAAO,MAAM,qBAAqB,MAAM,CAAC;AAEzC,eAAO,MAAM,aAAa,IAAI,CAAC;AAC/B,eAAO,MAAM,cAAc,IAAI,CAAC;AAEhC,eAAO,MAAM,yBAAyB,UAAY,CAAC;AAEnD;;GAEG;AACH,eAAO,MAAM,wBAAwB,IAAoB,CAAC;AAE1D;;GAEG;AACH,eAAO,MAAM,mBAAmB,SAAU,CAAC;AAC3C,eAAO,MAAM,yBAAyB,aAAgB,CAAC;AAEvD,eAAO,MAAM,qBAAqB,OAAO,CAAC"}
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.MIN_VAULT_INITIAL_DEPOSIT = exports.MIN_INITIAL_DEPOSIT = exports.SOL_PADDING_FOR_INTEREST = exports.DEFAULT_MAX_COMPUTE_UNITS = exports.DEPOSITS_LIMIT = exports.BORROWS_LIMIT = exports.MAINNET_BETA_CHAIN_ID = exports.SOL_DECIMALS = exports.MIN_AUTODELEVERAGE_BONUS_BPS = exports.SLOTS_PER_YEAR = exports.SLOTS_PER_DAY = exports.SLOTS_PER_HOUR = exports.SLOTS_PER_MINUTE = exports.SLOTS_PER_SECOND = exports.ONE_HUNDRED_PCT_IN_BPS = exports.CDN_ENDPOINT = exports.TOTAL_NUMBER_OF_IDS_TO_CHECK = exports.SECONDS_PER_YEAR = exports.INITIAL_COLLATERAL_RATE = exports.U64_MAX = exports.DEFAULT_KLEND_PROGRAM_ID = exports.STAGING_PROGRAM_ID = void 0;
6
+ exports.VAULT_INITIAL_DEPOSIT = exports.MIN_VAULT_INITIAL_DEPOSIT = exports.MIN_INITIAL_DEPOSIT = exports.SOL_PADDING_FOR_INTEREST = exports.DEFAULT_MAX_COMPUTE_UNITS = exports.DEPOSITS_LIMIT = exports.BORROWS_LIMIT = exports.MAINNET_BETA_CHAIN_ID = exports.SOL_DECIMALS = exports.MIN_AUTODELEVERAGE_BONUS_BPS = exports.SLOTS_PER_YEAR = exports.SLOTS_PER_DAY = exports.SLOTS_PER_HOUR = exports.SLOTS_PER_MINUTE = exports.SLOTS_PER_SECOND = exports.ONE_HUNDRED_PCT_IN_BPS = exports.CDN_ENDPOINT = exports.TOTAL_NUMBER_OF_IDS_TO_CHECK = exports.SECONDS_PER_YEAR = exports.INITIAL_COLLATERAL_RATE = exports.U64_MAX = exports.DEFAULT_KLEND_PROGRAM_ID = exports.STAGING_PROGRAM_ID = void 0;
7
7
  exports.isENV = isENV;
8
8
  exports.getApiEndpoint = getApiEndpoint;
9
9
  exports.getProgramId = getProgramId;
@@ -81,4 +81,5 @@ exports.SOL_PADDING_FOR_INTEREST = new bn_js_1.default('1000000');
81
81
  */
82
82
  exports.MIN_INITIAL_DEPOSIT = 100_000;
83
83
  exports.MIN_VAULT_INITIAL_DEPOSIT = 1_000_000_000;
84
+ exports.VAULT_INITIAL_DEPOSIT = 1000;
84
85
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/utils/constants.ts"],"names":[],"mappings":";;;;;;AAiBA,sBAEC;AAED,wCAMC;AAMD,oCAMC;AAvCD,4DAAiC;AACjC,wDAAsD;AACtD,6CAA4C;AAC5C,kDAAuB;AAEV,QAAA,kBAAkB,GAAc,IAAI,mBAAS,CAAC,6CAA6C,CAAC,CAAC;AAC7F,QAAA,wBAAwB,GAAW,sBAAU,CAAC,QAAQ,EAAE,CAAC;AACzD,QAAA,OAAO,GAAG,sBAAsB,CAAC;AAC9C,MAAM,wBAAwB,GAAG,CAAC,CAAC;AACtB,QAAA,uBAAuB,GAAG,IAAI,oBAAO,CAAC,wBAAwB,CAAC,CAAC;AAEhE,QAAA,gBAAgB,GAAG,WAAW,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAEpD,QAAA,4BAA4B,GAAG,EAAE,CAAC;AAI/C,SAAgB,KAAK,CAAC,KAAU;IAC9B,OAAO,KAAK,KAAK,cAAc,IAAI,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,UAAU,CAAC;AAChF,CAAC;AAED,SAAgB,cAAc,CAAC,SAAoB;IACjD,IAAI,SAAS,CAAC,MAAM,CAAC,sBAAU,CAAC,EAAE,CAAC;QACjC,OAAO,gDAAgD,CAAC;IAC1D,CAAC;SAAM,CAAC;QACN,OAAO,6DAA6D,SAAS,CAAC,QAAQ,EAAE,EAAE,CAAC;IAC7F,CAAC;AACH,CAAC;AAEY,QAAA,YAAY,GAAG,uDAAuD,CAAC;AAEvE,QAAA,sBAAsB,GAAG,MAAM,CAAC;AAE7C,SAAgB,YAAY,CAAC,MAAkC,cAAc;IAC3E,IAAI,GAAG,KAAK,cAAc,EAAE,CAAC;QAC3B,OAAO,sBAAU,CAAC;IACpB,CAAC;SAAM,CAAC;QACN,OAAO,0BAAkB,CAAC;IAC5B,CAAC;AACH,CAAC;AAED;;GAEG;AACU,QAAA,gBAAgB,GAAG,CAAC,CAAC;AAElC;;;GAGG;AACU,QAAA,gBAAgB,GAAG,wBAAgB,GAAG,EAAE,CAAC;AAEtD;;;GAGG;AACU,QAAA,cAAc,GAAG,wBAAgB,GAAG,EAAE,CAAC;AAEpD;;;GAGG;AACU,QAAA,aAAa,GAAG,sBAAc,GAAG,EAAE,CAAC;AAEjD;;;GAGG;AACU,QAAA,cAAc,GAAG,qBAAa,GAAG,GAAG,CAAC;AAElD;;GAEG;AACU,QAAA,4BAA4B,GAAG,EAAE,CAAC;AAElC,QAAA,YAAY,GAAG,CAAC,CAAC;AAEjB,QAAA,qBAAqB,GAAG,GAAG,CAAC;AAE5B,QAAA,aAAa,GAAG,CAAC,CAAC;AAClB,QAAA,cAAc,GAAG,CAAC,CAAC;AAEnB,QAAA,yBAAyB,GAAG,SAAS,CAAC;AAEnD;;GAEG;AACU,QAAA,wBAAwB,GAAG,IAAI,eAAE,CAAC,SAAS,CAAC,CAAC;AAE1D;;GAEG;AACU,QAAA,mBAAmB,GAAG,OAAO,CAAC;AAC9B,QAAA,yBAAyB,GAAG,aAAa,CAAC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/utils/constants.ts"],"names":[],"mappings":";;;;;;AAiBA,sBAEC;AAED,wCAMC;AAMD,oCAMC;AAvCD,4DAAiC;AACjC,wDAAsD;AACtD,6CAA4C;AAC5C,kDAAuB;AAEV,QAAA,kBAAkB,GAAc,IAAI,mBAAS,CAAC,6CAA6C,CAAC,CAAC;AAC7F,QAAA,wBAAwB,GAAW,sBAAU,CAAC,QAAQ,EAAE,CAAC;AACzD,QAAA,OAAO,GAAG,sBAAsB,CAAC;AAC9C,MAAM,wBAAwB,GAAG,CAAC,CAAC;AACtB,QAAA,uBAAuB,GAAG,IAAI,oBAAO,CAAC,wBAAwB,CAAC,CAAC;AAEhE,QAAA,gBAAgB,GAAG,WAAW,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAEpD,QAAA,4BAA4B,GAAG,EAAE,CAAC;AAI/C,SAAgB,KAAK,CAAC,KAAU;IAC9B,OAAO,KAAK,KAAK,cAAc,IAAI,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,UAAU,CAAC;AAChF,CAAC;AAED,SAAgB,cAAc,CAAC,SAAoB;IACjD,IAAI,SAAS,CAAC,MAAM,CAAC,sBAAU,CAAC,EAAE,CAAC;QACjC,OAAO,gDAAgD,CAAC;IAC1D,CAAC;SAAM,CAAC;QACN,OAAO,6DAA6D,SAAS,CAAC,QAAQ,EAAE,EAAE,CAAC;IAC7F,CAAC;AACH,CAAC;AAEY,QAAA,YAAY,GAAG,uDAAuD,CAAC;AAEvE,QAAA,sBAAsB,GAAG,MAAM,CAAC;AAE7C,SAAgB,YAAY,CAAC,MAAkC,cAAc;IAC3E,IAAI,GAAG,KAAK,cAAc,EAAE,CAAC;QAC3B,OAAO,sBAAU,CAAC;IACpB,CAAC;SAAM,CAAC;QACN,OAAO,0BAAkB,CAAC;IAC5B,CAAC;AACH,CAAC;AAED;;GAEG;AACU,QAAA,gBAAgB,GAAG,CAAC,CAAC;AAElC;;;GAGG;AACU,QAAA,gBAAgB,GAAG,wBAAgB,GAAG,EAAE,CAAC;AAEtD;;;GAGG;AACU,QAAA,cAAc,GAAG,wBAAgB,GAAG,EAAE,CAAC;AAEpD;;;GAGG;AACU,QAAA,aAAa,GAAG,sBAAc,GAAG,EAAE,CAAC;AAEjD;;;GAGG;AACU,QAAA,cAAc,GAAG,qBAAa,GAAG,GAAG,CAAC;AAElD;;GAEG;AACU,QAAA,4BAA4B,GAAG,EAAE,CAAC;AAElC,QAAA,YAAY,GAAG,CAAC,CAAC;AAEjB,QAAA,qBAAqB,GAAG,GAAG,CAAC;AAE5B,QAAA,aAAa,GAAG,CAAC,CAAC;AAClB,QAAA,cAAc,GAAG,CAAC,CAAC;AAEnB,QAAA,yBAAyB,GAAG,SAAS,CAAC;AAEnD;;GAEG;AACU,QAAA,wBAAwB,GAAG,IAAI,eAAE,CAAC,SAAS,CAAC,CAAC;AAE1D;;GAEG;AACU,QAAA,mBAAmB,GAAG,OAAO,CAAC;AAC9B,QAAA,yBAAyB,GAAG,aAAa,CAAC;AAE1C,QAAA,qBAAqB,GAAG,IAAI,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kamino-finance/klend-sdk",
3
- "version": "5.11.15",
3
+ "version": "5.11.17",
4
4
  "description": "Typescript SDK for interacting with the Kamino Lending (klend) protocol",
5
5
  "repository": {
6
6
  "type": "git",
@@ -31,7 +31,6 @@ import {
31
31
  assertNever,
32
32
  CreateKaminoMarketParams,
33
33
  createReserveIxs,
34
- DEFAULT_RECENT_SLOT_DURATION_MS,
35
34
  ENV,
36
35
  getReserveOracleConfigs,
37
36
  initLendingMarket,
@@ -100,19 +99,19 @@ export class KaminoManager {
100
99
 
101
100
  constructor(
102
101
  connection: Connection,
102
+ recentSlotDurationMs: number,
103
103
  kaminoLendProgramId?: PublicKey,
104
- kaminoVaultProgramId?: PublicKey,
105
- recentSlotDurationMs?: number
104
+ kaminoVaultProgramId?: PublicKey
106
105
  ) {
107
106
  this._connection = connection;
107
+ this.recentSlotDurationMs = recentSlotDurationMs;
108
108
  this._kaminoVaultProgramId = kaminoVaultProgramId ? kaminoVaultProgramId : kaminoVaultId;
109
109
  this._kaminoLendProgramId = kaminoLendProgramId ? kaminoLendProgramId : PROGRAM_ID;
110
- this.recentSlotDurationMs = recentSlotDurationMs ? recentSlotDurationMs : DEFAULT_RECENT_SLOT_DURATION_MS;
111
110
  this._vaultClient = new KaminoVaultClient(
112
111
  connection,
112
+ this.recentSlotDurationMs,
113
113
  this._kaminoVaultProgramId,
114
- this._kaminoLendProgramId,
115
- this.recentSlotDurationMs
114
+ this._kaminoLendProgramId
116
115
  );
117
116
  }
118
117
 
@@ -101,6 +101,10 @@ export class KaminoMarket {
101
101
  return null;
102
102
  }
103
103
 
104
+ if (recentSlotDurationMs <= 0) {
105
+ throw new Error('Recent slot duration cannot be 0');
106
+ }
107
+
104
108
  const reserves = withReserves
105
109
  ? await getReservesForMarket(marketAddress, connection, programId, recentSlotDurationMs)
106
110
  : new Map<PublicKey, KaminoReserve>();
@@ -3,9 +3,11 @@ import Decimal from 'decimal.js/decimal';
3
3
 
4
4
  /** the populateLUTIxs should be executed in a separate transaction as we cannot create and populate a lookup table in the same tx */
5
5
  export type InitVaultIxs = {
6
+ createAtaIfNeededIxs: TransactionInstruction[];
6
7
  initVaultIxs: TransactionInstruction[];
7
8
  createLUTIx: TransactionInstruction;
8
9
  populateLUTIxs: TransactionInstruction[];
10
+ cleanupIxs: TransactionInstruction[];
9
11
  };
10
12
 
11
13
  export type AcceptVaultOwnershipIxs = {
@@ -59,3 +61,4 @@ export type APYs = {
59
61
  grossAPY: Decimal;
60
62
  netAPY: Decimal;
61
63
  };
64
+
@@ -64,9 +64,17 @@ import {
64
64
  import { deposit } from '../idl_codegen_kamino_vault/instructions';
65
65
  import { withdraw } from '../idl_codegen_kamino_vault/instructions';
66
66
  import { PROGRAM_ID } from '../idl_codegen/programId';
67
- import { DEFAULT_RECENT_SLOT_DURATION_MS, ReserveWithAddress } from './reserve';
67
+ import { ReserveWithAddress } from './reserve';
68
68
  import { Fraction } from './fraction';
69
- import { createAtasIdempotent, lendingMarketAuthPda, PublicKeySet, SECONDS_PER_YEAR, U64_MAX } from '../utils';
69
+ import {
70
+ createAtasIdempotent,
71
+ createWsolAtaIfMissing,
72
+ lendingMarketAuthPda,
73
+ PublicKeySet,
74
+ SECONDS_PER_YEAR,
75
+ U64_MAX,
76
+ VAULT_INITIAL_DEPOSIT,
77
+ } from '../utils';
70
78
  import bs58 from 'bs58';
71
79
  import { getAccountOwner, getProgramAccounts } from '../utils/rpc';
72
80
  import {
@@ -115,14 +123,14 @@ export class KaminoVaultClient {
115
123
 
116
124
  constructor(
117
125
  connection: Connection,
126
+ recentSlotDurationMs: number,
118
127
  kaminoVaultprogramId?: PublicKey,
119
- kaminoLendProgramId?: PublicKey,
120
- recentSlotDurationMs?: number
128
+ kaminoLendProgramId?: PublicKey
121
129
  ) {
122
130
  this._connection = connection;
131
+ this.recentSlotDurationMs = recentSlotDurationMs;
123
132
  this._kaminoVaultProgramId = kaminoVaultprogramId ? kaminoVaultprogramId : kaminoVaultId;
124
133
  this._kaminoLendProgramId = kaminoLendProgramId ? kaminoLendProgramId : PROGRAM_ID;
125
- this.recentSlotDurationMs = recentSlotDurationMs ? recentSlotDurationMs : DEFAULT_RECENT_SLOT_DURATION_MS;
126
134
  }
127
135
 
128
136
  getConnection() {
@@ -199,12 +207,27 @@ export class KaminoVaultClient {
199
207
  this._kaminoVaultProgramId
200
208
  )[0];
201
209
 
202
- const adminTokenAccount = getAssociatedTokenAddressSync(
203
- vaultConfig.tokenMint,
204
- vaultConfig.admin,
205
- false,
206
- vaultConfig.tokenMintProgramId
207
- );
210
+ let adminTokenAccount: PublicKey;
211
+ const prerequisiteIxs: TransactionInstruction[] = [];
212
+ const cleanupIxs: TransactionInstruction[] = [];
213
+ if (vaultConfig.tokenMint.equals(NATIVE_MINT)) {
214
+ const { wsolAta, createAtaIxs, closeAtaIxs } = await createWsolAtaIfMissing(
215
+ this.getConnection(),
216
+ new Decimal(VAULT_INITIAL_DEPOSIT),
217
+ vaultConfig.admin
218
+ );
219
+ adminTokenAccount = wsolAta;
220
+
221
+ prerequisiteIxs.push(...createAtaIxs);
222
+ cleanupIxs.push(...closeAtaIxs);
223
+ } else {
224
+ adminTokenAccount = getAssociatedTokenAddressSync(
225
+ vaultConfig.tokenMint,
226
+ vaultConfig.admin,
227
+ false,
228
+ vaultConfig.tokenMintProgramId
229
+ );
230
+ }
208
231
 
209
232
  const initVaultAccounts: InitVaultAccounts = {
210
233
  adminAuthority: vaultConfig.admin,
@@ -277,7 +300,16 @@ export class KaminoVaultClient {
277
300
  ixns.push(setNameIx);
278
301
  }
279
302
 
280
- return { vault: vaultState, initVaultIxs: { initVaultIxs: ixns, createLUTIx, populateLUTIxs: insertIntoLUTIxs } };
303
+ return {
304
+ vault: vaultState,
305
+ initVaultIxs: {
306
+ createAtaIfNeededIxs: prerequisiteIxs,
307
+ initVaultIxs: ixns,
308
+ createLUTIx,
309
+ populateLUTIxs: insertIntoLUTIxs,
310
+ cleanupIxs,
311
+ },
312
+ };
281
313
  }
282
314
 
283
315
  /**
@@ -1315,7 +1347,7 @@ export class KaminoVaultClient {
1315
1347
  };
1316
1348
 
1317
1349
  const withdrawFromAvailableArgs: WithdrawFromAvailableArgs = {
1318
- sharesAmount: new BN(shareAmountLamports.toString()),
1350
+ sharesAmount: new BN(shareAmountLamports.floor().toString()),
1319
1351
  };
1320
1352
 
1321
1353
  return withdrawFromAvailable(withdrawFromAvailableArgs, withdrawFromAvailableAccounts, this._kaminoVaultProgramId);