@sonarwatch/portfolio-plugins 0.8.70 → 0.8.72

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/CHANGELOG.md CHANGED
@@ -2,10 +2,18 @@
2
2
 
3
3
  This file was generated using [@jscutlery/semver](https://github.com/jscutlery/semver).
4
4
 
5
- ## [0.8.70](https://github.com/sonarwatch/portfolio/compare/plugins-0.8.69...plugins-0.8.70) (2023-11-09)
5
+ ## [0.8.72](https://github.com/sonarwatch/portfolio/compare/plugins-0.8.71...plugins-0.8.72) (2023-11-10)
6
6
 
7
7
 
8
8
 
9
+ ## [0.8.71](https://github.com/sonarwatch/portfolio/compare/plugins-0.8.70...plugins-0.8.71) (2023-11-09)
10
+
11
+
12
+
13
+ ## [0.8.70](https://github.com/sonarwatch/portfolio/compare/plugins-0.8.69...plugins-0.8.70) (2023-11-09)
14
+
15
+
16
+
9
17
  ## [0.8.69](https://github.com/sonarwatch/portfolio/compare/plugins-0.8.68...plugins-0.8.69) (2023-11-09)
10
18
 
11
19
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sonarwatch/portfolio-plugins",
3
- "version": "0.8.70",
3
+ "version": "0.8.72",
4
4
  "type": "commonjs",
5
5
  "generators": "./generators.json",
6
6
  "dependencies": {
@@ -39,7 +39,7 @@
39
39
  "web3-v1": "npm:web3@^1.5.0"
40
40
  },
41
41
  "peerDependencies": {
42
- "@sonarwatch/portfolio-core": "0.8.70"
42
+ "@sonarwatch/portfolio-core": "0.8.72"
43
43
  },
44
44
  "main": "./src/index.js",
45
45
  "types": "./src/index.d.ts"
package/src/index.js CHANGED
@@ -65,6 +65,7 @@ const maple_1 = require("./plugins/maple");
65
65
  const flexlend_1 = require("./plugins/flexlend");
66
66
  const fluxbeam_1 = require("./plugins/fluxbeam");
67
67
  const jupiter_1 = require("./plugins/jupiter");
68
+ const zeta_1 = require("./plugins/zeta");
68
69
  var constants_1 = require("./plugins/tokens/constants");
69
70
  Object.defineProperty(exports, "walletTokensPlatform", { enumerable: true, get: function () { return constants_1.walletTokensPlatform; } });
70
71
  Object.defineProperty(exports, "walletNftsPlatform", { enumerable: true, get: function () { return constants_1.walletNftsPlatform; } });
@@ -119,6 +120,7 @@ exports.platforms = [
119
120
  ...maple_1.platforms,
120
121
  ...flexlend_1.platforms,
121
122
  ...fluxbeam_1.platforms,
123
+ ...zeta_1.platforms,
122
124
  ];
123
125
  // JOBS //
124
126
  exports.jobs = [
@@ -160,6 +162,7 @@ exports.jobs = [
160
162
  ...flexlend_1.jobs,
161
163
  ...fluxbeam_1.jobs,
162
164
  ...jupiter_1.jobs,
165
+ ...zeta_1.jobs,
163
166
  ];
164
167
  // FETCHERS //
165
168
  exports.fetchers = [
@@ -200,6 +203,7 @@ exports.fetchers = [
200
203
  ...flexlend_1.fetchers,
201
204
  ...fluxbeam_1.fetchers,
202
205
  ...jupiter_1.fetchers,
206
+ ...zeta_1.fetchers,
203
207
  ];
204
208
  exports.fetchersByAddressSystem = (0, getFetchersByAddressSystem_1.getFetchersByAddressSystem)(exports.fetchers);
205
209
  //# sourceMappingURL=index.js.map
package/src/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/plugins/src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/plugins/src/index.ts"],"names":[],"mappings":"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"}
@@ -13,12 +13,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
13
13
  };
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
15
  const web3_js_1 = require("@solana/web3.js");
16
- const bignumber_js_1 = __importDefault(require("bignumber.js"));
17
16
  const portfolio_core_1 = require("@sonarwatch/portfolio-core");
18
17
  const constants_1 = require("./constants");
19
18
  const clients_1 = require("../../utils/clients");
20
19
  const solana_1 = require("../../utils/solana");
21
20
  const structs_1 = require("./structs");
21
+ const getLpTokenSourceRaw_1 = __importDefault(require("../../utils/misc/getLpTokenSourceRaw"));
22
22
  const executor = (cache) => __awaiter(void 0, void 0, void 0, function* () {
23
23
  const connection = (0, clients_1.getClientSolana)();
24
24
  const pools = yield (0, solana_1.getParsedProgramAccounts)(connection, structs_1.poolStruct, new web3_js_1.PublicKey(constants_1.fluxbeamPoolsPid), [{ dataSize: structs_1.poolStruct.byteSize }]);
@@ -36,16 +36,6 @@ const executor = (cache) => __awaiter(void 0, void 0, void 0, function* () {
36
36
  const tokenMintsAddresses = pools
37
37
  .map((pool) => [pool.tokenAMint.toString(), pool.tokenBMint.toString()])
38
38
  .flat();
39
- // const tokenMints = await getParsedMultipleAccountsInfo(
40
- // connection,
41
- // mintAccountStruct,
42
- // tokenMintsAddresses
43
- // );
44
- // const tokenMintsMap: Map<string, ParsedAccount<MintAccount>> = new Map();
45
- // tokenMints.forEach((tokenMint) => {
46
- // if (!tokenMint) return;
47
- // tokenMintsMap.set(tokenMint.pubkey.toString(), tokenMint);
48
- // });
49
39
  const tokenPriceResults = yield cache.getTokenPrices(tokenMintsAddresses, portfolio_core_1.NetworkId.solana);
50
40
  const tokenPrices = new Map();
51
41
  tokenPriceResults.forEach((tokenPrice) => {
@@ -68,43 +58,24 @@ const executor = (cache) => __awaiter(void 0, void 0, void 0, function* () {
68
58
  const tokenAccountB = tokenAccountsMap.get(pool.tokenB.toString());
69
59
  if (!tokenAccountA || !tokenAccountB)
70
60
  continue;
71
- const amountA = new bignumber_js_1.default(tokenAccountA.amount.toString())
72
- .div(Math.pow(10, tokenPriceA.decimals))
73
- .toNumber();
74
- const amountB = new bignumber_js_1.default(tokenAccountB.amount.toString())
75
- .div(Math.pow(10, tokenPriceB.decimals))
76
- .toNumber();
77
- const lpSupply = new bignumber_js_1.default(poolMint.supply)
78
- .div(Math.pow(10, poolMint.decimals))
79
- .toNumber();
80
- const price = (amountA * tokenPriceA.price + amountB * tokenPriceB.price) / lpSupply;
81
- const source = {
82
- networkId: portfolio_core_1.NetworkId.solana,
83
- elementName: 'Pools',
84
- platformId: constants_1.platformId,
85
- id: constants_1.platformId,
86
- weight: 1,
61
+ const source = (0, getLpTokenSourceRaw_1.default)(portfolio_core_1.NetworkId.solana, constants_1.platformId, constants_1.platformId, 'Pools', {
87
62
  address: pool.poolMint.toString(),
88
- price,
89
63
  decimals: poolMint.decimals,
90
- underlyings: [
91
- {
92
- networkId: portfolio_core_1.NetworkId.solana,
93
- address: tokenPriceA.address.toString(),
94
- decimals: tokenPriceA.decimals,
95
- price: tokenPriceA.price,
96
- amountPerLp: amountA / lpSupply,
97
- },
98
- {
99
- networkId: portfolio_core_1.NetworkId.solana,
100
- address: tokenPriceB.address.toString(),
101
- decimals: tokenPriceB.decimals,
102
- price: tokenPriceB.price,
103
- amountPerLp: amountB / lpSupply,
104
- },
105
- ],
106
- timestamp: Date.now(),
107
- };
64
+ supplyRaw: poolMint.supply,
65
+ }, [
66
+ {
67
+ address: tokenPriceA.address,
68
+ decimals: tokenPriceA.decimals,
69
+ price: tokenPriceA.price,
70
+ reserveAmountRaw: tokenAccountA.amount,
71
+ },
72
+ {
73
+ address: tokenPriceB.address,
74
+ decimals: tokenPriceB.decimals,
75
+ price: tokenPriceB.price,
76
+ reserveAmountRaw: tokenAccountB.amount,
77
+ },
78
+ ]);
108
79
  yield cache.setTokenPriceSource(source);
109
80
  }
110
81
  });
@@ -1 +1 @@
1
- {"version":3,"file":"poolsJob.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/fluxbeam/poolsJob.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"poolsJob.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/fluxbeam/poolsJob.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,6CAA4C;AAC5C,+DAAmE;AAGnE,2CAA2D;AAC3D,iDAAsD;AACtD,+CAO4B;AAC5B,uCAAuC;AACvC,+FAAuE;AAEvE,MAAM,QAAQ,GAAgB,CAAO,KAAY,EAAE,EAAE;IACnD,MAAM,UAAU,GAAG,IAAA,yBAAe,GAAE,CAAC;IACrC,MAAM,KAAK,GAAG,MAAM,IAAA,iCAAwB,EAC1C,UAAU,EACV,oBAAU,EACV,IAAI,mBAAS,CAAC,4BAAgB,CAAC,EAC/B,CAAC,EAAE,QAAQ,EAAE,oBAAU,CAAC,QAAQ,EAAE,CAAC,CACpC,CAAC;IACF,MAAM,sBAAsB,GAAG,KAAK;SACjC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;SACzC,IAAI,EAAE,CAAC;IACV,MAAM,aAAa,GAAG,MAAM,IAAA,sCAA6B,EACvD,UAAU,EACV,2BAAkB,EAClB,sBAAsB,CACvB,CAAC;IACF,MAAM,gBAAgB,GAA6C,IAAI,GAAG,EAAE,CAAC;IAC7E,aAAa,CAAC,OAAO,CAAC,CAAC,YAAY,EAAE,EAAE;QACrC,IAAI,CAAC,YAAY;YAAE,OAAO;QAC1B,gBAAgB,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,YAAY,CAAC,CAAC;IACrE,CAAC,CAAC,CAAC;IAEH,MAAM,SAAS,GAAG,MAAM,IAAA,sCAA6B,EACnD,UAAU,EACV,0BAAiB,EACjB,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAC7B,CAAC;IAEF,MAAM,mBAAmB,GAAG,KAAK;SAC9B,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;SACvE,IAAI,EAAE,CAAC;IAEV,MAAM,iBAAiB,GAAG,MAAM,KAAK,CAAC,cAAc,CAClD,mBAAmB,EACnB,0BAAS,CAAC,MAAM,CACjB,CAAC;IACF,MAAM,WAAW,GAA4B,IAAI,GAAG,EAAE,CAAC;IACvD,iBAAiB,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE;QACvC,IAAI,CAAC,UAAU;YAAE,OAAO;QACxB,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACrC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACtB,IAAI,CAAC,IAAI,CAAC,aAAa;YAAE,SAAS;QAClC,MAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;QAC9B,IAAI,CAAC,QAAQ;YAAE,SAAS;QAExB,MAAM,WAAW,GAAG,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;QAChE,MAAM,WAAW,GAAG,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;QAChE,IAAI,CAAC,WAAW,IAAI,CAAC,WAAW;YAAE,SAAS;QAE3C,MAAM,aAAa,GAAG,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;QACnE,MAAM,aAAa,GAAG,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;QACnE,IAAI,CAAC,aAAa,IAAI,CAAC,aAAa;YAAE,SAAS;QAE/C,MAAM,MAAM,GAAG,IAAA,6BAAmB,EAChC,0BAAS,CAAC,MAAM,EAChB,sBAAU,EACV,sBAAU,EACV,OAAO,EACP;YACE,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE;YACjC,QAAQ,EAAE,QAAQ,CAAC,QAAQ;YAC3B,SAAS,EAAE,QAAQ,CAAC,MAAM;SAC3B,EACD;YACE;gBACE,OAAO,EAAE,WAAW,CAAC,OAAO;gBAC5B,QAAQ,EAAE,WAAW,CAAC,QAAQ;gBAC9B,KAAK,EAAE,WAAW,CAAC,KAAK;gBACxB,gBAAgB,EAAE,aAAa,CAAC,MAAM;aACvC;YACD;gBACE,OAAO,EAAE,WAAW,CAAC,OAAO;gBAC5B,QAAQ,EAAE,WAAW,CAAC,QAAQ;gBAC9B,KAAK,EAAE,WAAW,CAAC,KAAK;gBACxB,gBAAgB,EAAE,aAAa,CAAC,MAAM;aACvC;SACF,CACF,CAAC;QACF,MAAM,KAAK,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;KACzC;AACH,CAAC,CAAA,CAAC;AACF,MAAM,GAAG,GAAQ;IACf,EAAE,EAAE,GAAG,sBAAU,QAAQ;IACzB,QAAQ;CACT,CAAC;AACF,kBAAe,GAAG,CAAC"}
@@ -106,7 +106,7 @@ const executor = (owner, cache) => __awaiter(void 0, void 0, void 0, function* (
106
106
  borrowedAssets.push(assetToken);
107
107
  const apr = bank.borrowApr;
108
108
  if (apr)
109
- suppliedYields.push([
109
+ borrowedYields.push([
110
110
  {
111
111
  apr,
112
112
  apy: (0, portfolio_core_1.aprToApy)(apr),
@@ -0,0 +1,6 @@
1
+ import { PublicKey } from '@solana/web3.js';
2
+ import { Platform } from '@sonarwatch/portfolio-core';
3
+ export declare const platformId = "zeta";
4
+ export declare const zetaPlatform: Platform;
5
+ export declare const usdcMint = "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v";
6
+ export declare const programId: PublicKey;
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.programId = exports.usdcMint = exports.zetaPlatform = exports.platformId = void 0;
4
+ const web3_js_1 = require("@solana/web3.js");
5
+ exports.platformId = 'zeta';
6
+ exports.zetaPlatform = {
7
+ id: exports.platformId,
8
+ name: 'Zeta',
9
+ image: 'https://sonar.watch/img/platforms/zeta.png',
10
+ defiLlamaId: 'zeta',
11
+ };
12
+ exports.usdcMint = 'EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v';
13
+ exports.programId = new web3_js_1.PublicKey('ZETAxsqBRek56DhiGXrn75yj2NHU3aYUnxvHXpkf3aD');
14
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/zeta/constants.ts"],"names":[],"mappings":";;;AAAA,6CAA4C;AAG/B,QAAA,UAAU,GAAG,MAAM,CAAC;AACpB,QAAA,YAAY,GAAa;IACpC,EAAE,EAAE,kBAAU;IACd,IAAI,EAAE,MAAM;IACZ,KAAK,EAAE,4CAA4C;IACnD,WAAW,EAAE,MAAM;CACpB,CAAC;AAEW,QAAA,QAAQ,GAAG,8CAA8C,CAAC;AAC1D,QAAA,SAAS,GAAG,IAAI,mBAAS,CACpC,6CAA6C,CAC9C,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { Fetcher } from '../../Fetcher';
2
+ declare const fetcher: Fetcher;
3
+ export default fetcher;
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ const portfolio_core_1 = require("@sonarwatch/portfolio-core");
16
+ const web3_js_1 = require("@solana/web3.js");
17
+ const constants_1 = require("./constants");
18
+ const clients_1 = require("../../utils/clients");
19
+ const helpers_1 = require("./helpers");
20
+ const solana_1 = require("../../utils/solana");
21
+ const structs_1 = require("./structs");
22
+ const tokenPriceToAssetToken_1 = __importDefault(require("../../utils/misc/tokenPriceToAssetToken"));
23
+ const executor = (owner, cache) => __awaiter(void 0, void 0, void 0, function* () {
24
+ const client = (0, clients_1.getClientSolana)();
25
+ const usdcTokenPrice = yield cache.getTokenPrice(constants_1.usdcMint, portfolio_core_1.NetworkId.solana);
26
+ if (!usdcTokenPrice)
27
+ return [];
28
+ let id = 0;
29
+ const userAccounts = [];
30
+ let parsedAccount;
31
+ do {
32
+ const accountPubKeys = (0, helpers_1.getCrossMarginAccounts)(constants_1.programId, new web3_js_1.PublicKey(owner), id, id + 3);
33
+ parsedAccount = yield (0, solana_1.getParsedMultipleAccountsInfo)(client, structs_1.crossMarginAccountStruct, accountPubKeys);
34
+ userAccounts.push(...parsedAccount);
35
+ id += 3;
36
+ } while (parsedAccount[parsedAccount.length]);
37
+ const elements = [];
38
+ if (!userAccounts)
39
+ return elements;
40
+ for (const account of userAccounts) {
41
+ if (!account)
42
+ continue;
43
+ if (account.balance.isZero())
44
+ continue;
45
+ const asset = (0, tokenPriceToAssetToken_1.default)(constants_1.usdcMint, account.balance.dividedBy(Math.pow(10, usdcTokenPrice.decimals)).toNumber(), portfolio_core_1.NetworkId.solana, usdcTokenPrice);
46
+ elements.push({
47
+ label: 'Deposit',
48
+ networkId: portfolio_core_1.NetworkId.solana,
49
+ platformId: constants_1.platformId,
50
+ name: `N° ${account.subaccountIndex.toString()}`,
51
+ type: portfolio_core_1.PortfolioElementType.single,
52
+ data: { asset },
53
+ value: asset.value,
54
+ });
55
+ }
56
+ return elements;
57
+ });
58
+ const fetcher = {
59
+ id: `${constants_1.platformId}-deposits`,
60
+ networkId: portfolio_core_1.NetworkId.solana,
61
+ executor,
62
+ };
63
+ exports.default = fetcher;
64
+ //# sourceMappingURL=depositsFetcher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"depositsFetcher.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/zeta/depositsFetcher.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,+DAKoC;AACpC,6CAA4C;AAG5C,2CAA8D;AAC9D,iDAAsD;AACtD,uCAAmD;AACnD,+CAAmE;AACnE,uCAAqD;AACrD,qGAA6E;AAE7E,MAAM,QAAQ,GAAoB,CAAO,KAAa,EAAE,KAAY,EAAE,EAAE;IACtE,MAAM,MAAM,GAAG,IAAA,yBAAe,GAAE,CAAC;IAEjC,MAAM,cAAc,GAAG,MAAM,KAAK,CAAC,aAAa,CAAC,oBAAQ,EAAE,0BAAS,CAAC,MAAM,CAAC,CAAC;IAC7E,IAAI,CAAC,cAAc;QAAE,OAAO,EAAE,CAAC;IAE/B,IAAI,EAAE,GAAG,CAAC,CAAC;IACX,MAAM,YAAY,GAAG,EAAE,CAAC;IACxB,IAAI,aAAa,CAAC;IAClB,GAAG;QACD,MAAM,cAAc,GAAG,IAAA,gCAAsB,EAC3C,qBAAS,EACT,IAAI,mBAAS,CAAC,KAAK,CAAC,EACpB,EAAE,EACF,EAAE,GAAG,CAAC,CACP,CAAC;QACF,aAAa,GAAG,MAAM,IAAA,sCAA6B,EACjD,MAAM,EACN,kCAAwB,EACxB,cAAc,CACf,CAAC;QACF,YAAY,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,CAAC;QACpC,EAAE,IAAI,CAAC,CAAC;KACT,QAAQ,aAAa,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE;IAE9C,MAAM,QAAQ,GAAuB,EAAE,CAAC;IACxC,IAAI,CAAC,YAAY;QAAE,OAAO,QAAQ,CAAC;IAEnC,KAAK,MAAM,OAAO,IAAI,YAAY,EAAE;QAClC,IAAI,CAAC,OAAO;YAAE,SAAS;QACvB,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE;YAAE,SAAS;QACvC,MAAM,KAAK,GAAmB,IAAA,gCAAsB,EAClD,oBAAQ,EACR,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,SAAA,EAAE,EAAI,cAAc,CAAC,QAAQ,CAAA,CAAC,CAAC,QAAQ,EAAE,EACnE,0BAAS,CAAC,MAAM,EAChB,cAAc,CACf,CAAC;QACF,QAAQ,CAAC,IAAI,CAAC;YACZ,KAAK,EAAE,SAAS;YAChB,SAAS,EAAE,0BAAS,CAAC,MAAM;YAC3B,UAAU,EAAV,sBAAU;YACV,IAAI,EAAE,MAAM,OAAO,CAAC,eAAe,CAAC,QAAQ,EAAE,EAAE;YAChD,IAAI,EAAE,qCAAoB,CAAC,MAAM;YACjC,IAAI,EAAE,EAAE,KAAK,EAAE;YACf,KAAK,EAAE,KAAK,CAAC,KAAK;SACnB,CAAC,CAAC;KACJ;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAA,CAAC;AAEF,MAAM,OAAO,GAAY;IACvB,EAAE,EAAE,GAAG,sBAAU,WAAW;IAC5B,SAAS,EAAE,0BAAS,CAAC,MAAM;IAC3B,QAAQ;CACT,CAAC;AAEF,kBAAe,OAAO,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { PublicKey } from '@solana/web3.js';
2
+ export declare function getCrossMarginAccount(programId: PublicKey, userKey: PublicKey, seedNumber: number): PublicKey;
3
+ export declare function getMarginAccount(programId: PublicKey, zetaGroup: PublicKey, userKey: PublicKey): [PublicKey, number];
4
+ export declare function getCrossMarginAccounts(programId: PublicKey, owner: PublicKey, startId: number, endId: number): PublicKey[];
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getCrossMarginAccounts = exports.getMarginAccount = exports.getCrossMarginAccount = void 0;
4
+ const web3_js_1 = require("@solana/web3.js");
5
+ function getCrossMarginAccount(programId, userKey, seedNumber) {
6
+ return web3_js_1.PublicKey.findProgramAddressSync([
7
+ Buffer.from('cross-margin', 'utf-8'),
8
+ userKey.toBuffer(),
9
+ Uint8Array.from([seedNumber]),
10
+ ], programId)[0];
11
+ }
12
+ exports.getCrossMarginAccount = getCrossMarginAccount;
13
+ function getMarginAccount(programId, zetaGroup, userKey) {
14
+ return web3_js_1.PublicKey.findProgramAddressSync([Buffer.from('margin', 'utf-8'), zetaGroup.toBuffer(), userKey.toBuffer()], programId);
15
+ }
16
+ exports.getMarginAccount = getMarginAccount;
17
+ function getCrossMarginAccounts(programId, owner, startId, endId) {
18
+ const keys = [];
19
+ for (let i = startId; i < endId; i++) {
20
+ keys.push(getCrossMarginAccount(programId, owner, i));
21
+ }
22
+ return keys;
23
+ }
24
+ exports.getCrossMarginAccounts = getCrossMarginAccounts;
25
+ //# sourceMappingURL=helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/zeta/helpers.ts"],"names":[],"mappings":";;;AAAA,6CAA4C;AAE5C,SAAgB,qBAAqB,CACnC,SAAoB,EACpB,OAAkB,EAClB,UAAkB;IAElB,OAAO,mBAAS,CAAC,sBAAsB,CACrC;QACE,MAAM,CAAC,IAAI,CAAC,cAAc,EAAE,OAAO,CAAC;QACpC,OAAO,CAAC,QAAQ,EAAE;QAClB,UAAU,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,CAAC;KAC9B,EACD,SAAS,CACV,CAAC,CAAC,CAAC,CAAC;AACP,CAAC;AAbD,sDAaC;AAED,SAAgB,gBAAgB,CAC9B,SAAoB,EACpB,SAAoB,EACpB,OAAkB;IAElB,OAAO,mBAAS,CAAC,sBAAsB,CACrC,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,SAAS,CAAC,QAAQ,EAAE,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,EAC1E,SAAS,CACV,CAAC;AACJ,CAAC;AATD,4CASC;AAED,SAAgB,sBAAsB,CACpC,SAAoB,EACpB,KAAgB,EAChB,OAAe,EACf,KAAa;IAEb,MAAM,IAAI,GAAG,EAAE,CAAC;IAChB,KAAK,IAAI,CAAC,GAAG,OAAO,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE;QACpC,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;KACvD;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAXD,wDAWC"}
@@ -0,0 +1,6 @@
1
+ import { Platform } from '@sonarwatch/portfolio-core';
2
+ import { Fetcher } from '../../Fetcher';
3
+ import { Job } from '../../Job';
4
+ export declare const jobs: Job[];
5
+ export declare const fetchers: Fetcher[];
6
+ export declare const platforms: Platform[];
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.platforms = exports.fetchers = exports.jobs = void 0;
7
+ const depositsFetcher_1 = __importDefault(require("./depositsFetcher"));
8
+ const constants_1 = require("./constants");
9
+ exports.jobs = [];
10
+ exports.fetchers = [depositsFetcher_1.default];
11
+ exports.platforms = [constants_1.zetaPlatform];
12
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/zeta/index.ts"],"names":[],"mappings":";;;;;;AAGA,wEAAgD;AAChD,2CAA2C;AAE9B,QAAA,IAAI,GAAU,EAAE,CAAC;AACjB,QAAA,QAAQ,GAAc,CAAC,yBAAe,CAAC,CAAC;AACxC,QAAA,SAAS,GAAe,CAAC,wBAAY,CAAC,CAAC"}
@@ -0,0 +1,50 @@
1
+ /// <reference types="node" />
2
+ import { BeetStruct, FixableBeetStruct } from '@metaplex-foundation/beet';
3
+ import { PublicKey } from '@metaplex-foundation/js';
4
+ import BigNumber from 'bignumber.js';
5
+ export declare enum MarginAccountType {
6
+ Normal = 0,
7
+ MarketMaker = 1
8
+ }
9
+ export type AnchorDecimal = {
10
+ flags: number;
11
+ hi: number;
12
+ lo: number;
13
+ mid: number;
14
+ };
15
+ export declare const anchorDecimalStruct: BeetStruct<AnchorDecimal, Partial<AnchorDecimal>>;
16
+ export type Position = {
17
+ size: BigNumber;
18
+ costOfTrades: BigNumber;
19
+ };
20
+ export declare const positionStruct: BeetStruct<Position, Partial<Position>>;
21
+ export type OrderState = {
22
+ closingOrders: BigNumber;
23
+ openingOrder1: BigNumber;
24
+ openingOrder2: BigNumber;
25
+ };
26
+ export declare const orderStateStruct: BeetStruct<OrderState, Partial<OrderState>>;
27
+ export type ProductLedger = {
28
+ position: Position;
29
+ orderState: OrderState;
30
+ };
31
+ export declare const productLedgerStruct: BeetStruct<ProductLedger, Partial<ProductLedger>>;
32
+ export type CrossMarginAccount = {
33
+ buffer: Buffer;
34
+ authority: PublicKey;
35
+ delegatedPubkey: PublicKey;
36
+ balance: BigNumber;
37
+ subaccountIndex: number;
38
+ nonce: number;
39
+ forceCancelFlag: boolean;
40
+ accountType: MarginAccountType;
41
+ openOrdersNonces: number[];
42
+ openOrdersNoncesPadding: number[];
43
+ rebalanceAmount: BigNumber;
44
+ lastFundingDeltas: AnchorDecimal[];
45
+ lastFundingDeltasPadding: AnchorDecimal[];
46
+ productLedgers: ProductLedger[];
47
+ productLedgersPadding: ProductLedger[];
48
+ padding: Buffer[];
49
+ };
50
+ export declare const crossMarginAccountStruct: FixableBeetStruct<CrossMarginAccount, Partial<CrossMarginAccount>>;
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.crossMarginAccountStruct = exports.productLedgerStruct = exports.orderStateStruct = exports.positionStruct = exports.anchorDecimalStruct = exports.MarginAccountType = void 0;
4
+ const beet_1 = require("@metaplex-foundation/beet");
5
+ const beet_solana_1 = require("@metaplex-foundation/beet-solana");
6
+ const solana_1 = require("../../utils/solana");
7
+ var MarginAccountType;
8
+ (function (MarginAccountType) {
9
+ MarginAccountType[MarginAccountType["Normal"] = 0] = "Normal";
10
+ MarginAccountType[MarginAccountType["MarketMaker"] = 1] = "MarketMaker";
11
+ })(MarginAccountType || (exports.MarginAccountType = MarginAccountType = {}));
12
+ exports.anchorDecimalStruct = new beet_1.BeetStruct([
13
+ ['flags', beet_1.u32],
14
+ ['hi', beet_1.u32],
15
+ ['lo', beet_1.u32],
16
+ ['mid', beet_1.u32],
17
+ ], (args) => args);
18
+ exports.positionStruct = new beet_1.BeetStruct([
19
+ ['size', solana_1.i64],
20
+ ['costOfTrades', solana_1.u64],
21
+ ], (args) => args);
22
+ exports.orderStateStruct = new beet_1.BeetStruct([
23
+ ['closingOrders', solana_1.u64],
24
+ ['openingOrder1', solana_1.u64],
25
+ ['openingOrder2', solana_1.u64],
26
+ ], (args) => args);
27
+ exports.productLedgerStruct = new beet_1.BeetStruct([
28
+ ['position', exports.positionStruct],
29
+ ['orderState', exports.orderStateStruct],
30
+ ], (args) => args);
31
+ exports.crossMarginAccountStruct = new beet_1.FixableBeetStruct([
32
+ ['buffer', (0, solana_1.blob)(8)],
33
+ ['authority', beet_solana_1.publicKey],
34
+ ['delegatedPubkey', beet_solana_1.publicKey],
35
+ ['balance', solana_1.u64],
36
+ ['subaccountIndex', beet_1.u8],
37
+ ['nonce', beet_1.u8],
38
+ ['forceCancelFlag', beet_1.bool],
39
+ ['accountType', beet_1.u8],
40
+ ['openOrdersNonces', (0, beet_1.uniformFixedSizeArray)(beet_1.u8, 5)],
41
+ ['openOrdersNoncesPadding', (0, beet_1.uniformFixedSizeArray)(beet_1.u8, 20)],
42
+ ['rebalanceAmount', solana_1.i64],
43
+ ['lastFundingDeltas', (0, beet_1.uniformFixedSizeArray)(exports.anchorDecimalStruct, 5)],
44
+ [
45
+ 'lastFundingDeltasPadding',
46
+ (0, beet_1.uniformFixedSizeArray)(exports.anchorDecimalStruct, 20),
47
+ ],
48
+ ['productLedgers', (0, beet_1.uniformFixedSizeArray)(exports.productLedgerStruct, 5)],
49
+ ['productLedgersPadding', (0, beet_1.uniformFixedSizeArray)(exports.productLedgerStruct, 20)],
50
+ ['padding', (0, beet_1.uniformFixedSizeArray)(beet_1.u8, 2000)],
51
+ ], (args) => args);
52
+ //# sourceMappingURL=structs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"structs.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/zeta/structs.ts"],"names":[],"mappings":";;;AAAA,oDAOmC;AACnC,kEAA6D;AAG7D,+CAAoD;AAEpD,IAAY,iBAGX;AAHD,WAAY,iBAAiB;IAC3B,6DAAM,CAAA;IACN,uEAAW,CAAA;AACb,CAAC,EAHW,iBAAiB,iCAAjB,iBAAiB,QAG5B;AAQY,QAAA,mBAAmB,GAAG,IAAI,iBAAU,CAC/C;IACE,CAAC,OAAO,EAAE,UAAG,CAAC;IACd,CAAC,IAAI,EAAE,UAAG,CAAC;IACX,CAAC,IAAI,EAAE,UAAG,CAAC;IACX,CAAC,KAAK,EAAE,UAAG,CAAC;CACb,EACD,CAAC,IAAI,EAAE,EAAE,CAAC,IAAqB,CAChC,CAAC;AAMW,QAAA,cAAc,GAAG,IAAI,iBAAU,CAC1C;IACE,CAAC,MAAM,EAAE,YAAG,CAAC;IACb,CAAC,cAAc,EAAE,YAAG,CAAC;CACtB,EACD,CAAC,IAAI,EAAE,EAAE,CAAC,IAAgB,CAC3B,CAAC;AAOW,QAAA,gBAAgB,GAAG,IAAI,iBAAU,CAC5C;IACE,CAAC,eAAe,EAAE,YAAG,CAAC;IACtB,CAAC,eAAe,EAAE,YAAG,CAAC;IACtB,CAAC,eAAe,EAAE,YAAG,CAAC;CACvB,EACD,CAAC,IAAI,EAAE,EAAE,CAAC,IAAkB,CAC7B,CAAC;AAMW,QAAA,mBAAmB,GAAG,IAAI,iBAAU,CAC/C;IACE,CAAC,UAAU,EAAE,sBAAc,CAAC;IAC5B,CAAC,YAAY,EAAE,wBAAgB,CAAC;CACjC,EACD,CAAC,IAAI,EAAE,EAAE,CAAC,IAAqB,CAChC,CAAC;AAqBW,QAAA,wBAAwB,GACnC,IAAI,wBAAiB,CACnB;IACE,CAAC,QAAQ,EAAE,IAAA,aAAI,EAAC,CAAC,CAAC,CAAC;IACnB,CAAC,WAAW,EAAE,uBAAS,CAAC;IACxB,CAAC,iBAAiB,EAAE,uBAAS,CAAC;IAC9B,CAAC,SAAS,EAAE,YAAG,CAAC;IAChB,CAAC,iBAAiB,EAAE,SAAE,CAAC;IACvB,CAAC,OAAO,EAAE,SAAE,CAAC;IACb,CAAC,iBAAiB,EAAE,WAAI,CAAC;IACzB,CAAC,aAAa,EAAE,SAAE,CAAC;IACnB,CAAC,kBAAkB,EAAE,IAAA,4BAAqB,EAAC,SAAE,EAAE,CAAC,CAAC,CAAC;IAClD,CAAC,yBAAyB,EAAE,IAAA,4BAAqB,EAAC,SAAE,EAAE,EAAE,CAAC,CAAC;IAC1D,CAAC,iBAAiB,EAAE,YAAG,CAAC;IACxB,CAAC,mBAAmB,EAAE,IAAA,4BAAqB,EAAC,2BAAmB,EAAE,CAAC,CAAC,CAAC;IACpE;QACE,0BAA0B;QAC1B,IAAA,4BAAqB,EAAC,2BAAmB,EAAE,EAAE,CAAC;KAC/C;IACD,CAAC,gBAAgB,EAAE,IAAA,4BAAqB,EAAC,2BAAmB,EAAE,CAAC,CAAC,CAAC;IACjE,CAAC,uBAAuB,EAAE,IAAA,4BAAqB,EAAC,2BAAmB,EAAE,EAAE,CAAC,CAAC;IACzE,CAAC,SAAS,EAAE,IAAA,4BAAqB,EAAC,SAAE,EAAE,IAAI,CAAC,CAAC;CAC7C,EACD,CAAC,IAAI,EAAE,EAAE,CAAC,IAA0B,CACrC,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { NetworkIdType, TokenPriceSource } from '@sonarwatch/portfolio-core';
2
+ type PoolUnderlying = {
3
+ address: string;
4
+ reserveAmount: number;
5
+ price: number;
6
+ decimals: number;
7
+ };
8
+ type LpDetails = {
9
+ address: string;
10
+ decimals: number;
11
+ supply: number;
12
+ };
13
+ export default function getLpTokenSource(networkId: NetworkIdType, sourceId: string, platformId: string, elementName: string, lpDetails: LpDetails, poolUnderlyings: PoolUnderlying[]): TokenPriceSource;
14
+ export {};
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ function getLpTokenSource(networkId, sourceId, platformId, elementName, lpDetails, poolUnderlyings) {
4
+ const price = poolUnderlyings.reduce((acc, u) => u.reserveAmount * u.price, 0) /
5
+ lpDetails.supply;
6
+ return {
7
+ networkId,
8
+ platformId,
9
+ id: sourceId,
10
+ elementName,
11
+ weight: 1,
12
+ address: lpDetails.address,
13
+ price,
14
+ decimals: lpDetails.decimals,
15
+ underlyings: poolUnderlyings.map((u) => ({
16
+ networkId,
17
+ address: u.address,
18
+ price: u.price,
19
+ amountPerLp: u.reserveAmount / lpDetails.supply,
20
+ decimals: u.decimals,
21
+ })),
22
+ timestamp: Date.now(),
23
+ };
24
+ }
25
+ exports.default = getLpTokenSource;
26
+ //# sourceMappingURL=getLpTokenSource.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getLpTokenSource.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/utils/misc/getLpTokenSource.ts"],"names":[],"mappings":";;AAeA,SAAwB,gBAAgB,CACtC,SAAwB,EACxB,QAAgB,EAChB,UAAkB,EAClB,WAAmB,EACnB,SAAoB,EACpB,eAAiC;IAEjC,MAAM,KAAK,GACT,eAAe,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;QAChE,SAAS,CAAC,MAAM,CAAC;IAEnB,OAAO;QACL,SAAS;QACT,UAAU;QACV,EAAE,EAAE,QAAQ;QACZ,WAAW;QACX,MAAM,EAAE,CAAC;QACT,OAAO,EAAE,SAAS,CAAC,OAAO;QAC1B,KAAK;QACL,QAAQ,EAAE,SAAS,CAAC,QAAQ;QAC5B,WAAW,EAAE,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACvC,SAAS;YACT,OAAO,EAAE,CAAC,CAAC,OAAO;YAClB,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,WAAW,EAAE,CAAC,CAAC,aAAa,GAAG,SAAS,CAAC,MAAM;YAC/C,QAAQ,EAAE,CAAC,CAAC,QAAQ;SACrB,CAAC,CAAC;QACH,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;KACtB,CAAC;AACJ,CAAC;AA9BD,mCA8BC"}
@@ -0,0 +1,15 @@
1
+ import { NetworkIdType, TokenPriceSource } from '@sonarwatch/portfolio-core';
2
+ import BigNumber from 'bignumber.js';
3
+ type PoolUnderlyingRaw = {
4
+ address: string;
5
+ reserveAmountRaw: BigNumber;
6
+ price: number;
7
+ decimals: number;
8
+ };
9
+ type LpDetailsRaw = {
10
+ address: string;
11
+ decimals: number;
12
+ supplyRaw: BigNumber;
13
+ };
14
+ export default function getLpTokenSourceRaw(networkId: NetworkIdType, sourceId: string, platformId: string, elementName: string, lpDetailsRaw: LpDetailsRaw, poolUnderlyingsRaw: PoolUnderlyingRaw[]): TokenPriceSource;
15
+ export {};
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const getLpTokenSource_1 = __importDefault(require("./getLpTokenSource"));
7
+ function getLpTokenSourceRaw(networkId, sourceId, platformId, elementName, lpDetailsRaw, poolUnderlyingsRaw) {
8
+ return (0, getLpTokenSource_1.default)(networkId, sourceId, platformId, elementName, Object.assign(Object.assign({}, lpDetailsRaw), { supply: lpDetailsRaw.supplyRaw
9
+ .div(Math.pow(10, lpDetailsRaw.decimals))
10
+ .toNumber() }), poolUnderlyingsRaw.map((u) => (Object.assign(Object.assign({}, u), { reserveAmount: u.reserveAmountRaw.div(Math.pow(10, u.decimals)).toNumber() }))));
11
+ }
12
+ exports.default = getLpTokenSourceRaw;
13
+ //# sourceMappingURL=getLpTokenSourceRaw.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getLpTokenSourceRaw.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/utils/misc/getLpTokenSourceRaw.ts"],"names":[],"mappings":";;;;;AAEA,0EAAkD;AAelD,SAAwB,mBAAmB,CACzC,SAAwB,EACxB,QAAgB,EAChB,UAAkB,EAClB,WAAmB,EACnB,YAA0B,EAC1B,kBAAuC;IAEvC,OAAO,IAAA,0BAAgB,EACrB,SAAS,EACT,QAAQ,EACR,UAAU,EACV,WAAW,kCAEN,YAAY,KACf,MAAM,EAAE,YAAY,CAAC,SAAS;aAC3B,GAAG,CAAC,SAAA,EAAE,EAAI,YAAY,CAAC,QAAQ,CAAA,CAAC;aAChC,QAAQ,EAAE,KAEf,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,iCACzB,CAAC,KACJ,aAAa,EAAE,CAAC,CAAC,gBAAgB,CAAC,GAAG,CAAC,SAAA,EAAE,EAAI,CAAC,CAAC,QAAQ,CAAA,CAAC,CAAC,QAAQ,EAAE,IAClE,CAAC,CACJ,CAAC;AACJ,CAAC;AAxBD,sCAwBC"}