@perena/bankineco-services 1.0.74 → 1.0.76

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,8 +2,12 @@ import { Environment } from "@perena/bankineco-sdk";
2
2
  export declare const LITTLE_ENGINE_TEST_ACCOUNT = "little-engine-test";
3
3
  export declare const LITTLE_ENGINE_PROD_ACCOUNT = "little-engine-prod888";
4
4
  export declare const LITTLE_ENGINE_10_ACCOUNT = "little-engine-10-prod";
5
+ export declare const GLOW_7_5_ACCOUNT = "glow_7_5_1";
5
6
  export declare const LE_ACCOUNTS: Record<Environment, string[]>;
6
7
  export declare const TEST_LE_CUSTODIAN = "64nZHh2DBKEkH7PC1Vo7DHRE6k5MohcnqcDyM6evwEn8";
7
8
  export declare const PROD_LE_CUSTODIAN = "58ubrW9j4SJ28oYoJauGbnSbCCyycrFiQNV6zu3XX5HZ";
8
9
  export declare const LE_CUSTODIAN: Record<Environment, string>;
10
+ export declare const TEST_MIDPOINT_CUSTODIAN = "64nZHh2DBKEkH7PC1Vo7DHRE6k5MohcnqcDyM6evwEn8";
11
+ export declare const PROD_MIDPOINT_CUSTODIAN = "AjPDeCJpUa5xZ2vwkENQrBXzAXXtXbJA2u8gNYV8DNFs";
12
+ export declare const MIDPOINT_CUSTODIAN: Record<Environment, string>;
9
13
  //# sourceMappingURL=general.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"general.d.ts","sourceRoot":"","sources":["../../src/constants/general.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEpD,eAAO,MAAM,0BAA0B,uBAAuB,CAAC;AAC/D,eAAO,MAAM,0BAA0B,0BAA0B,CAAC;AAClE,eAAO,MAAM,wBAAwB,0BAA0B,CAAC;AAEhE,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,CAIrD,CAAC;AAEF,eAAO,MAAM,iBAAiB,iDAAiD,CAAC;AAChF,eAAO,MAAM,iBAAiB,iDAAiD,CAAC;AAChF,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CAIpD,CAAC"}
1
+ {"version":3,"file":"general.d.ts","sourceRoot":"","sources":["../../src/constants/general.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEpD,eAAO,MAAM,0BAA0B,uBAAuB,CAAC;AAC/D,eAAO,MAAM,0BAA0B,0BAA0B,CAAC;AAClE,eAAO,MAAM,wBAAwB,0BAA0B,CAAC;AAChE,eAAO,MAAM,gBAAgB,eAAe,CAAC;AAE7C,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,CAIrD,CAAC;AAEF,eAAO,MAAM,iBAAiB,iDAAiD,CAAC;AAChF,eAAO,MAAM,iBAAiB,iDAAiD,CAAC;AAChF,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CAIpD,CAAC;AAEF,eAAO,MAAM,uBAAuB,iDAAiD,CAAC;AACtF,eAAO,MAAM,uBAAuB,iDAAiD,CAAC;AACtF,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CAI1D,CAAC"}
@@ -1,9 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.LE_CUSTODIAN = exports.PROD_LE_CUSTODIAN = exports.TEST_LE_CUSTODIAN = exports.LE_ACCOUNTS = exports.LITTLE_ENGINE_10_ACCOUNT = exports.LITTLE_ENGINE_PROD_ACCOUNT = exports.LITTLE_ENGINE_TEST_ACCOUNT = void 0;
3
+ exports.MIDPOINT_CUSTODIAN = exports.PROD_MIDPOINT_CUSTODIAN = exports.TEST_MIDPOINT_CUSTODIAN = exports.LE_CUSTODIAN = exports.PROD_LE_CUSTODIAN = exports.TEST_LE_CUSTODIAN = exports.LE_ACCOUNTS = exports.GLOW_7_5_ACCOUNT = exports.LITTLE_ENGINE_10_ACCOUNT = exports.LITTLE_ENGINE_PROD_ACCOUNT = exports.LITTLE_ENGINE_TEST_ACCOUNT = void 0;
4
4
  exports.LITTLE_ENGINE_TEST_ACCOUNT = "little-engine-test";
5
5
  exports.LITTLE_ENGINE_PROD_ACCOUNT = "little-engine-prod888";
6
6
  exports.LITTLE_ENGINE_10_ACCOUNT = "little-engine-10-prod";
7
+ exports.GLOW_7_5_ACCOUNT = "glow_7_5_1";
7
8
  exports.LE_ACCOUNTS = {
8
9
  local: [],
9
10
  test: [exports.LITTLE_ENGINE_TEST_ACCOUNT],
@@ -16,4 +17,11 @@ exports.LE_CUSTODIAN = {
16
17
  test: exports.TEST_LE_CUSTODIAN,
17
18
  prod: exports.PROD_LE_CUSTODIAN,
18
19
  };
20
+ exports.TEST_MIDPOINT_CUSTODIAN = "64nZHh2DBKEkH7PC1Vo7DHRE6k5MohcnqcDyM6evwEn8"; // test-custodian.json
21
+ exports.PROD_MIDPOINT_CUSTODIAN = "AjPDeCJpUa5xZ2vwkENQrBXzAXXtXbJA2u8gNYV8DNFs";
22
+ exports.MIDPOINT_CUSTODIAN = {
23
+ local: "",
24
+ test: exports.TEST_MIDPOINT_CUSTODIAN,
25
+ prod: exports.PROD_MIDPOINT_CUSTODIAN,
26
+ };
19
27
  //# sourceMappingURL=general.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"general.js","sourceRoot":"","sources":["../../src/constants/general.ts"],"names":[],"mappings":";;;AAEa,QAAA,0BAA0B,GAAG,oBAAoB,CAAC;AAClD,QAAA,0BAA0B,GAAG,uBAAuB,CAAC;AACrD,QAAA,wBAAwB,GAAG,uBAAuB,CAAC;AAEnD,QAAA,WAAW,GAAkC;IACxD,KAAK,EAAE,EAAE;IACT,IAAI,EAAE,CAAC,kCAA0B,CAAC;IAClC,IAAI,EAAE,CAAC,kCAA0B,EAAE,gCAAwB,CAAC;CAC7D,CAAC;AAEW,QAAA,iBAAiB,GAAG,8CAA8C,CAAC,CAAC,sBAAsB;AAC1F,QAAA,iBAAiB,GAAG,8CAA8C,CAAC;AACnE,QAAA,YAAY,GAAgC;IACvD,KAAK,EAAE,EAAE;IACT,IAAI,EAAE,yBAAiB;IACvB,IAAI,EAAE,yBAAiB;CACxB,CAAC"}
1
+ {"version":3,"file":"general.js","sourceRoot":"","sources":["../../src/constants/general.ts"],"names":[],"mappings":";;;AAEa,QAAA,0BAA0B,GAAG,oBAAoB,CAAC;AAClD,QAAA,0BAA0B,GAAG,uBAAuB,CAAC;AACrD,QAAA,wBAAwB,GAAG,uBAAuB,CAAC;AACnD,QAAA,gBAAgB,GAAG,YAAY,CAAC;AAEhC,QAAA,WAAW,GAAkC;IACxD,KAAK,EAAE,EAAE;IACT,IAAI,EAAE,CAAC,kCAA0B,CAAC;IAClC,IAAI,EAAE,CAAC,kCAA0B,EAAE,gCAAwB,CAAC;CAC7D,CAAC;AAEW,QAAA,iBAAiB,GAAG,8CAA8C,CAAC,CAAC,sBAAsB;AAC1F,QAAA,iBAAiB,GAAG,8CAA8C,CAAC;AACnE,QAAA,YAAY,GAAgC;IACvD,KAAK,EAAE,EAAE;IACT,IAAI,EAAE,yBAAiB;IACvB,IAAI,EAAE,yBAAiB;CACxB,CAAC;AAEW,QAAA,uBAAuB,GAAG,8CAA8C,CAAC,CAAC,sBAAsB;AAChG,QAAA,uBAAuB,GAAG,8CAA8C,CAAC;AACzE,QAAA,kBAAkB,GAAgC;IAC7D,KAAK,EAAE,EAAE;IACT,IAAI,EAAE,+BAAuB;IAC7B,IAAI,EAAE,+BAAuB;CAC9B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"updateGlowUsdtVaultPrice.d.ts","sourceRoot":"","sources":["../../src/oracle/updateGlowUsdtVaultPrice.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,aAAa,EAId,MAAM,uBAAuB,CAAC;AAkD/B,wBAAsB,2BAA2B,CAC/C,IAAI,EAAE,aAAa,EACnB,iBAAiB,CAAC,EAAE,MAAM,iBAI3B"}
1
+ {"version":3,"file":"updateGlowUsdtVaultPrice.d.ts","sourceRoot":"","sources":["../../src/oracle/updateGlowUsdtVaultPrice.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,aAAa,EAMd,MAAM,uBAAuB,CAAC;AAyE/B,wBAAsB,2BAA2B,CAC/C,IAAI,EAAE,aAAa,EACnB,iBAAiB,CAAC,EAAE,MAAM,iBAI3B"}
@@ -4,6 +4,8 @@ exports.runUpdateGlowUsdtVaultPrice = runUpdateGlowUsdtVaultPrice;
4
4
  const anchor_1 = require("@coral-xyz/anchor");
5
5
  const bankineco_sdk_1 = require("@perena/bankineco-sdk");
6
6
  const utils_1 = require("../utils");
7
+ const api_1 = require("../api");
8
+ const constants_1 = require("../constants");
7
9
  async function updateGlowUsdtVaultPrice(client, reportingDiscount) {
8
10
  const vaultState = client.bankineco.vaultPDA(client.bankineco.bankPDA(bankineco_sdk_1.USD_STAR_CONFIG.bankIndex), bankineco_sdk_1.USDT_MINT, bankineco_sdk_1.GLOW_USDT_VAULT_CONTRACT_INDEX);
9
11
  if (!(await (0, utils_1.ensureVaultExists)(client, vaultState, "Glow USDT oracle update"))) {
@@ -19,11 +21,23 @@ async function updateGlowUsdtVaultPrice(client, reportingDiscount) {
19
21
  const connection = client.bankineco.connection;
20
22
  // Total USDT value of the Glow position; pending yield is appreciation over principal
21
23
  // tracked on-chain as external_yielding_amount (same pattern as Kamino / MarginFi oracles).
22
- const totalGlowUsdt = await (0, utils_1.fetchGlowUsdtOwed)(connection, shareHolder);
24
+ const onChainGlowUsdt = await (0, utils_1.fetchGlowUsdtOwed)(connection, shareHolder);
23
25
  const principal = new anchor_1.BN(vaultInfo.accounting.externalYieldingAmount.toString());
26
+ // Off-chain NAV from the yield API: principal + accrued yield for the Glow
27
+ // 7.5 account since the oracle's start marker. Take the larger of on-chain
28
+ // and API NAV so we never under-report yield while either source lags.
29
+ const oracleInfo = await client.bankineco.pg.account.oracleGenState.fetch(client.bankineco.oraclePDA(vaultState));
30
+ const startAt = new Date(oracleInfo.result.startMarkerUnixSeconds.toNumber() * 1000);
31
+ const endAt = new Date();
32
+ const apiYield = await (0, api_1.getTotalYield)([constants_1.GLOW_7_5_ACCOUNT], startAt, endAt);
33
+ // Sub 3950 due to bridging costs that we pay for
34
+ const apiNavUsdt = principal.add(apiYield).sub((0, bankineco_sdk_1.fromUiAmount)(3950, bankineco_sdk_1.USDT_DECIMALS));
35
+ const totalGlowUsdt = anchor_1.BN.max(onChainGlowUsdt, apiNavUsdt);
24
36
  const rawPending = totalGlowUsdt.sub(principal);
25
37
  const impliedYield = rawPending.gt(new anchor_1.BN(0)) ? rawPending : new anchor_1.BN(0);
26
- console.log(totalGlowUsdt.toNumber());
38
+ console.log("Glow on-chain USDT:", onChainGlowUsdt.toNumber());
39
+ console.log("Glow 7.5 API NAV USDT:", apiNavUsdt.toNumber());
40
+ console.log("Effective total USDT:", totalGlowUsdt.toNumber());
27
41
  await client.updateYieldInfoIfNeeded(vaultState, impliedYield, reportingDiscount);
28
42
  }
29
43
  async function runUpdateGlowUsdtVaultPrice(args, reportingDiscount) {
@@ -1 +1 @@
1
- {"version":3,"file":"updateGlowUsdtVaultPrice.js","sourceRoot":"","sources":["../../src/oracle/updateGlowUsdtVaultPrice.ts"],"names":[],"mappings":";;AAyDA,kEAMC;AA/DD,8CAAuC;AACvC,yDAM+B;AAC/B,oCAAgE;AAEhE,KAAK,UAAU,wBAAwB,CACrC,MAA4B,EAC5B,iBAA0B;IAE1B,MAAM,UAAU,GAAG,MAAM,CAAC,SAAS,CAAC,QAAQ,CAC1C,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,+BAAe,CAAC,SAAS,CAAC,EACnD,yBAAS,EACT,8CAA8B,CAC/B,CAAC;IAEF,IAAI,CAAC,CAAC,MAAM,IAAA,yBAAiB,EAAC,MAAM,EAAE,UAAU,EAAE,yBAAyB,CAAC,CAAC,EAAE,CAAC;QAC9E,OAAO;IACT,CAAC;IAED,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CACrE,UAAU,CACX,CAAC;IAEF,wEAAwE;IACxE,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,CACpE,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,UAAU,CAAC,CACrC,CAAC;IAEF,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;QACpC,MAAM,IAAI,KAAK,CACb,4DAA4D,CAC7D,CAAC;IACJ,CAAC;IAED,MAAM,WAAW,GAAG,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC;IACnD,MAAM,UAAU,GAAG,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC;IAC/C,sFAAsF;IACtF,4FAA4F;IAC5F,MAAM,aAAa,GAAG,MAAM,IAAA,yBAAiB,EAAC,UAAU,EAAE,WAAW,CAAC,CAAC;IACvE,MAAM,SAAS,GAAG,IAAI,WAAE,CAAC,SAAS,CAAC,UAAU,CAAC,sBAAsB,CAAC,QAAQ,EAAE,CAAC,CAAC;IACjF,MAAM,UAAU,GAAG,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAChD,MAAM,YAAY,GAAG,UAAU,CAAC,EAAE,CAAC,IAAI,WAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,WAAE,CAAC,CAAC,CAAC,CAAC;IAEvE,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC,CAAC;IAEtC,MAAM,MAAM,CAAC,uBAAuB,CAClC,UAAU,EACV,YAAY,EACZ,iBAAiB,CAClB,CAAC;AACJ,CAAC;AAEM,KAAK,UAAU,2BAA2B,CAC/C,IAAmB,EACnB,iBAA0B;IAE1B,MAAM,MAAM,GAAG,IAAI,oCAAoB,CAAC,IAAI,EAAE,+BAAe,CAAC,SAAS,CAAC,CAAC;IACzE,MAAM,wBAAwB,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;AAC5D,CAAC"}
1
+ {"version":3,"file":"updateGlowUsdtVaultPrice.js","sourceRoot":"","sources":["../../src/oracle/updateGlowUsdtVaultPrice.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@perena/bankineco-services",
3
- "version": "1.0.74",
3
+ "version": "1.0.76",
4
4
  "description": "Services infra for maintaining Bankineco program on Solana.",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -28,7 +28,7 @@
28
28
  "@drift-labs/sdk": "=2.137.0",
29
29
  "@kamino-finance/klend-sdk": "^7.3.9",
30
30
  "@mrgnlabs/marginfi-client-v2": "=6.4.1",
31
- "@perena/bankineco-sdk": "=1.0.162",
31
+ "@perena/bankineco-sdk": "=1.0.166",
32
32
  "@perena/numeraire-sdk-new": "=1.1.1",
33
33
  "@solana/addresses": "^5.1.0",
34
34
  "@solana/kit": "^2.3.0",