@perena/bankineco-services 1.0.68 → 1.0.69

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 +1 @@
1
- {"version":3,"file":"updateMarginfiVaultPendingYield.d.ts","sourceRoot":"","sources":["../../src/oracle/updateMarginfiVaultPendingYield.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,aAAa,EAGb,gBAAgB,EAEjB,MAAM,uBAAuB,CAAC;AAwG/B;;GAEG;AACH,wBAAsB,kCAAkC,CACtD,IAAI,EAAE,aAAa,EACnB,gBAAgB,EAAE,gBAAgB,EAClC,iBAAiB,CAAC,EAAE,MAAM,iBAQ3B"}
1
+ {"version":3,"file":"updateMarginfiVaultPendingYield.d.ts","sourceRoot":"","sources":["../../src/oracle/updateMarginfiVaultPendingYield.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,aAAa,EAGb,gBAAgB,EAEjB,MAAM,uBAAuB,CAAC;AA6H/B;;GAEG;AACH,wBAAsB,kCAAkC,CACtD,IAAI,EAAE,aAAa,EACnB,gBAAgB,EAAE,gBAAgB,EAClC,iBAAiB,CAAC,EAAE,MAAM,iBAQ3B"}
@@ -26,6 +26,19 @@ function mostFrequent(arr) {
26
26
  }
27
27
  return best;
28
28
  }
29
+ function reversePerformanceFee(netYield, performanceFeeBps) {
30
+ if (performanceFeeBps === 0) {
31
+ return netYield;
32
+ }
33
+ const basisPoints = 10000;
34
+ const denominator = basisPoints - performanceFeeBps;
35
+ if (denominator <= 0) {
36
+ throw new Error(`Invalid performance fee bps: ${performanceFeeBps}`);
37
+ }
38
+ const numerator = netYield.muln(basisPoints);
39
+ const grossYield = numerator.divn(denominator);
40
+ return numerator.modn(denominator) === 0 ? grossYield : grossYield.addn(1);
41
+ }
29
42
  async function updateMarginFiVaultPendingYield(client, marginfiVaultTag, reportingDiscount) {
30
43
  const poolAccounts = bankineco_sdk_1.MARGINFI_POOL_ACCOUNTS[marginfiVaultTag];
31
44
  const marginfiClient = await (0, marginfi_1.getMarginfiClient)(client.bankineco.provider.connection, undefined, [poolAccounts.bank]);
@@ -35,6 +48,7 @@ async function updateMarginFiVaultPendingYield(client, marginfiVaultTag, reporti
35
48
  return;
36
49
  }
37
50
  const oracleInfo = await client.bankineco.pg.account.oracleGenState.fetch(client.bankineco.oraclePDA(vault));
51
+ const vaultInfo = await client.bankineco.pg.account.vaultGenState.fetch(vault);
38
52
  const marginfiAccount = client.bankineco.marginfiAccountPDA(vault, marginfiVaultTag);
39
53
  const impliedYields = [];
40
54
  for (let i = 0; i < 5; i++) {
@@ -54,7 +68,8 @@ async function updateMarginFiVaultPendingYield(client, marginfiVaultTag, reporti
54
68
  }
55
69
  let impliedYield;
56
70
  if (impliedYields.length < 4) {
57
- impliedYield = oracleInfo.result.yieldingPendingAmount;
71
+ const oraclePendingYield = oracleInfo.result.yieldingPendingAmount;
72
+ impliedYield = reversePerformanceFee(oraclePendingYield, vaultInfo.config.performanceFeeBps);
58
73
  console.log(`Falling back to last reported yield for ${marginfiVaultTag}: ${impliedYield.toString()}`);
59
74
  }
60
75
  else {
@@ -1 +1 @@
1
- {"version":3,"file":"updateMarginfiVaultPendingYield.js","sourceRoot":"","sources":["../../src/oracle/updateMarginfiVaultPendingYield.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"updateMarginfiVaultPendingYield.js","sourceRoot":"","sources":["../../src/oracle/updateMarginfiVaultPendingYield.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.68",
3
+ "version": "1.0.69",
4
4
  "description": "Services infra for maintaining Bankineco program on Solana.",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",