@sonarwatch/portfolio-plugins 0.8.68 → 0.8.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.
package/CHANGELOG.md CHANGED
@@ -2,10 +2,14 @@
2
2
 
3
3
  This file was generated using [@jscutlery/semver](https://github.com/jscutlery/semver).
4
4
 
5
- ## [0.8.68](https://github.com/sonarwatch/portfolio/compare/plugins-0.8.67...plugins-0.8.68) (2023-11-09)
5
+ ## [0.8.69](https://github.com/sonarwatch/portfolio/compare/plugins-0.8.68...plugins-0.8.69) (2023-11-09)
6
6
 
7
7
 
8
8
 
9
+ ## [0.8.68](https://github.com/sonarwatch/portfolio/compare/plugins-0.8.67...plugins-0.8.68) (2023-11-09)
10
+
11
+
12
+
9
13
  ## [0.8.67](https://github.com/sonarwatch/portfolio/compare/plugins-0.8.66...plugins-0.8.67) (2023-11-08)
10
14
 
11
15
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sonarwatch/portfolio-plugins",
3
- "version": "0.8.68",
3
+ "version": "0.8.69",
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.68"
42
+ "@sonarwatch/portfolio-core": "0.8.69"
43
43
  },
44
44
  "main": "./src/index.js",
45
45
  "types": "./src/index.d.ts"
package/src/index.js CHANGED
@@ -63,6 +63,7 @@ const hawksight_1 = require("./plugins/hawksight");
63
63
  const realms_1 = require("./plugins/realms");
64
64
  const maple_1 = require("./plugins/maple");
65
65
  const flexlend_1 = require("./plugins/flexlend");
66
+ const fluxbeam_1 = require("./plugins/fluxbeam");
66
67
  const jupiter_1 = require("./plugins/jupiter");
67
68
  var constants_1 = require("./plugins/tokens/constants");
68
69
  Object.defineProperty(exports, "walletTokensPlatform", { enumerable: true, get: function () { return constants_1.walletTokensPlatform; } });
@@ -117,6 +118,7 @@ exports.platforms = [
117
118
  ...realms_1.platforms,
118
119
  ...maple_1.platforms,
119
120
  ...flexlend_1.platforms,
121
+ ...fluxbeam_1.platforms,
120
122
  ];
121
123
  // JOBS //
122
124
  exports.jobs = [
@@ -156,6 +158,7 @@ exports.jobs = [
156
158
  ...realms_1.jobs,
157
159
  ...maple_1.jobs,
158
160
  ...flexlend_1.jobs,
161
+ ...fluxbeam_1.jobs,
159
162
  ...jupiter_1.jobs,
160
163
  ];
161
164
  // FETCHERS //
@@ -195,6 +198,7 @@ exports.fetchers = [
195
198
  ...realms_1.fetchers,
196
199
  ...maple_1.fetchers,
197
200
  ...flexlend_1.fetchers,
201
+ ...fluxbeam_1.fetchers,
198
202
  ...jupiter_1.fetchers,
199
203
  ];
200
204
  exports.fetchersByAddressSystem = (0, getFetchersByAddressSystem_1.getFetchersByAddressSystem)(exports.fetchers);
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":";;;;;;;;;;;;;;;;;;;;AAGA,wFAAqF;AACrF,sEAA8C;AAC9C,6CAI0B;AAC1B,yDAIgC;AAChC,iDAG4B;AAC5B,iDAI4B;AAC5B,2CAGyB;AACzB,6CAI0B;AAC1B,+CAI2B;AAC3B,yCAIwB;AACxB,+CAG2B;AAC3B,2CAIyB;AACzB,6CAI0B;AAC1B,2CAIyB;AACzB,6CAG0B;AAC1B,6CAI0B;AAC1B,yCAIwB;AACxB,2DAGiC;AACjC,6CAI0B;AAC1B,2CAIyB;AACzB,2CAIyB;AACzB,qDAA6D;AAC7D,qEAIsC;AACtC,uDAG+B;AAC/B,mDAG6B;AAC7B,qDAG8B;AAC9B,uDAG+B;AAC/B,2CAIyB;AACzB,6CAG0B;AAC1B,6CAG0B;AAC1B,yCAIwB;AACxB,uDAG+B;AAC/B,yCAGwB;AACxB,2CAIyB;AACzB,iDAI4B;AAC5B,iDAI4B;AAC5B,6CAI0B;AAC1B,+CAI2B;AAC3B,qDAG8B;AAC9B,iDAI4B;AAC5B,iDAI4B;AAC5B,mDAG6B;AAC7B,6CAI0B;AAC1B,2CAIyB;AACzB,iDAI4B;AAC5B,iDAI4B;AAC5B,+CAG2B;AAE3B,wDAGoC;AAFlC,iHAAA,oBAAoB,OAAA;AACpB,+GAAA,kBAAkB,OAAA;AAGpB,0CAAwB;AACxB,4CAA0B;AAC1B,wCAAsB;AACtB,uDAAqC;AACrC,gDAA8B;AAC9B,4DAA0C;AAE1C,eAAe;AACF,QAAA,SAAS,GAAe;IACnC,GAAG,wBAAc;IACjB,GAAG,gBAAa;IAChB,GAAG,gBAAa;IAChB,GAAG,iBAAc;IACjB,GAAG,iBAAc;IACjB,GAAG,uBAAoB;IACvB,GAAG,8BAA0B;IAC7B,GAAG,sBAAmB;IACtB,GAAG,qBAAkB;IACrB,GAAG,uBAAoB;IACvB,GAAG,kBAAe;IAClB,GAAG,wBAAoB;IACvB,GAAG,oBAAiB;IACpB,GAAG,iBAAc;IACjB,GAAG,kBAAe;IAClB,GAAG,oBAAiB;IACpB,GAAG,mBAAgB;IACnB,GAAG,mBAAgB;IACnB,GAAG,kBAAe;IAClB,GAAG,iBAAc;IACjB,GAAG,kBAAe;IAClB,GAAG,kBAAe;IAClB,GAAG,yBAAqB;IACxB,GAAG,kBAAe;IAClB,GAAG,iBAAc;IACjB,GAAG,kBAAe;IAClB,GAAG,kBAAe;IAClB,GAAG,gBAAa;IAChB,GAAG,iBAAc;IACjB,GAAG,uBAAmB;IACtB,GAAG,gBAAa;IAChB,GAAG,iBAAc;IACjB,GAAG,oBAAiB;IACpB,GAAG,oBAAiB;IACpB,GAAG,kBAAe;IAClB,GAAG,mBAAgB;IACnB,GAAG,oBAAiB;IACpB,GAAG,oBAAiB;IACpB,GAAG,qBAAkB;IACrB,GAAG,kBAAe;IAClB,GAAG,iBAAc;IACjB,GAAG,oBAAiB;IACpB,GAAG,oBAAiB;CACrB,CAAC;AAEF,UAAU;AACG,QAAA,IAAI,GAAU;IACzB,GAAG,aAAU;IACb,GAAG,mBAAe;IAClB,GAAG,YAAS;IACZ,GAAG,eAAY;IACf,GAAG,cAAW;IACd,GAAG,aAAU;IACb,GAAG,cAAW;IACd,GAAG,WAAQ;IACX,GAAG,YAAS;IACZ,GAAG,YAAS;IACZ,GAAG,YAAS;IACZ,GAAG,aAAU;IACb,GAAG,iBAAa;IAChB,GAAG,kBAAe;IAClB,GAAG,kBAAe;IAClB,GAAG,YAAS;IACZ,GAAG,WAAQ;IACX,GAAG,aAAU;IACb,GAAG,aAAU;IACb,GAAG,YAAS;IACZ,GAAG,yBAAqB;IACxB,GAAG,gBAAa;IAChB,GAAG,iBAAc;IACjB,GAAG,aAAU;IACb,GAAG,WAAQ;IACX,GAAG,YAAS;IACZ,GAAG,eAAY;IACf,GAAG,eAAY;IACf,GAAG,aAAU;IACb,GAAG,iBAAa;IAChB,GAAG,cAAW;IACd,GAAG,eAAY;IACf,GAAG,eAAY;IACf,GAAG,aAAU;IACb,GAAG,YAAS;IACZ,GAAG,eAAY;IACf,GAAG,eAAY;IACf,GAAG,cAAW;CACf,CAAC;AAEF,cAAc;AACD,QAAA,QAAQ,GAAc;IACjC,GAAG,iBAAc;IACjB,GAAG,uBAAmB;IACtB,GAAG,iBAAc;IACjB,GAAG,mBAAgB;IACnB,GAAG,mBAAgB;IACnB,GAAG,iBAAc;IACjB,GAAG,gBAAa;IAChB,GAAG,kBAAe;IAClB,GAAG,eAAY;IACf,GAAG,gBAAa;IAChB,GAAG,gBAAa;IAChB,GAAG,gBAAa;IAChB,GAAG,iBAAc;IACjB,GAAG,wBAAoB;IACvB,GAAG,eAAY;IACf,GAAG,iBAAc;IACjB,GAAG,iBAAc;IACjB,GAAG,6BAAyB;IAC5B,GAAG,iBAAc;IACjB,GAAG,eAAY;IACf,GAAG,sBAAkB;IACrB,GAAG,gBAAa;IAChB,GAAG,mBAAgB;IACnB,GAAG,gBAAa;IAChB,GAAG,mBAAgB;IACnB,GAAG,eAAY;IACf,GAAG,iBAAc;IACjB,GAAG,qBAAiB;IACpB,GAAG,kBAAe;IAClB,GAAG,mBAAgB;IACnB,GAAG,mBAAgB;IACnB,GAAG,oBAAiB;IACpB,GAAG,iBAAc;IACjB,GAAG,gBAAa;IAChB,GAAG,mBAAgB;IACnB,GAAG,mBAAgB;IACnB,GAAG,kBAAe;CACnB,CAAC;AACW,QAAA,uBAAuB,GAAG,IAAA,uDAA0B,EAAC,gBAAQ,CAAC,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { Platform } from '@sonarwatch/portfolio-core';
2
+ export declare const platformId = "fluxbeam";
3
+ export declare const platform: Platform;
4
+ export declare const poolsCachePrefix: string;
5
+ export declare const fluxbeamPoolsPid = "FLUXubRmkEi2q6K3Y9kBPg9248ggaZVsoSFhtJHSrm1X";
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.fluxbeamPoolsPid = exports.poolsCachePrefix = exports.platform = exports.platformId = void 0;
4
+ exports.platformId = 'fluxbeam';
5
+ exports.platform = {
6
+ id: exports.platformId,
7
+ name: 'Flux Beam',
8
+ image: 'https://sonar.watch/img/platforms/fluxbeam.png',
9
+ defiLlamaId: 'fluxbeam', // from https://defillama.com/docs/api
10
+ };
11
+ exports.poolsCachePrefix = `${exports.platformId}-pools`;
12
+ exports.fluxbeamPoolsPid = 'FLUXubRmkEi2q6K3Y9kBPg9248ggaZVsoSFhtJHSrm1X';
13
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/fluxbeam/constants.ts"],"names":[],"mappings":";;;AAEa,QAAA,UAAU,GAAG,UAAU,CAAC;AACxB,QAAA,QAAQ,GAAa;IAChC,EAAE,EAAE,kBAAU;IACd,IAAI,EAAE,WAAW;IACjB,KAAK,EAAE,gDAAgD;IACvD,WAAW,EAAE,UAAU,EAAE,sCAAsC;CAChE,CAAC;AACW,QAAA,gBAAgB,GAAG,GAAG,kBAAU,QAAQ,CAAC;AACzC,QAAA,gBAAgB,GAAG,8CAA8C,CAAC"}
@@ -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 platforms: Platform[];
5
+ export declare const jobs: Job[];
6
+ export declare const fetchers: Fetcher[];
@@ -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.fetchers = exports.jobs = exports.platforms = void 0;
7
+ const constants_1 = require("./constants");
8
+ const poolsJob_1 = __importDefault(require("./poolsJob"));
9
+ exports.platforms = [constants_1.platform];
10
+ exports.jobs = [poolsJob_1.default];
11
+ exports.fetchers = [];
12
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/fluxbeam/index.ts"],"names":[],"mappings":";;;;;;AAGA,2CAAuC;AACvC,0DAAkC;AAErB,QAAA,SAAS,GAAe,CAAC,oBAAQ,CAAC,CAAC;AACnC,QAAA,IAAI,GAAU,CAAC,kBAAQ,CAAC,CAAC;AACzB,QAAA,QAAQ,GAAc,EAAE,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { Job } from '../../Job';
2
+ declare const job: Job;
3
+ export default job;
@@ -0,0 +1,116 @@
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 web3_js_1 = require("@solana/web3.js");
16
+ const bignumber_js_1 = __importDefault(require("bignumber.js"));
17
+ const portfolio_core_1 = require("@sonarwatch/portfolio-core");
18
+ const constants_1 = require("./constants");
19
+ const clients_1 = require("../../utils/clients");
20
+ const solana_1 = require("../../utils/solana");
21
+ const structs_1 = require("./structs");
22
+ const executor = (cache) => __awaiter(void 0, void 0, void 0, function* () {
23
+ const connection = (0, clients_1.getClientSolana)();
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 }]);
25
+ const tokenAccountsAddresses = pools
26
+ .map((pool) => [pool.tokenA, pool.tokenB])
27
+ .flat();
28
+ const tokenAccounts = yield (0, solana_1.getParsedMultipleAccountsInfo)(connection, solana_1.tokenAccountStruct, tokenAccountsAddresses);
29
+ const tokenAccountsMap = new Map();
30
+ tokenAccounts.forEach((tokenAccount) => {
31
+ if (!tokenAccount)
32
+ return;
33
+ tokenAccountsMap.set(tokenAccount.pubkey.toString(), tokenAccount);
34
+ });
35
+ const poolMints = yield (0, solana_1.getParsedMultipleAccountsInfo)(connection, solana_1.mintAccountStruct, pools.map((p) => p.poolMint));
36
+ const tokenMintsAddresses = pools
37
+ .map((pool) => [pool.tokenAMint.toString(), pool.tokenBMint.toString()])
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
+ const tokenPriceResults = yield cache.getTokenPrices(tokenMintsAddresses, portfolio_core_1.NetworkId.solana);
50
+ const tokenPrices = new Map();
51
+ tokenPriceResults.forEach((tokenPrice) => {
52
+ if (!tokenPrice)
53
+ return;
54
+ tokenPrices.set(tokenPrice.address, tokenPrice);
55
+ });
56
+ for (let i = 0; i < pools.length; i++) {
57
+ const pool = pools[i];
58
+ if (!pool.isInitialized)
59
+ continue;
60
+ const poolMint = poolMints[i];
61
+ if (!poolMint)
62
+ continue;
63
+ const tokenPriceA = tokenPrices.get(pool.tokenAMint.toString());
64
+ const tokenPriceB = tokenPrices.get(pool.tokenBMint.toString());
65
+ if (!tokenPriceA || !tokenPriceB)
66
+ continue;
67
+ const tokenAccountA = tokenAccountsMap.get(pool.tokenA.toString());
68
+ const tokenAccountB = tokenAccountsMap.get(pool.tokenB.toString());
69
+ if (!tokenAccountA || !tokenAccountB)
70
+ 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,
87
+ address: pool.poolMint.toString(),
88
+ price,
89
+ 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
+ };
108
+ yield cache.setTokenPriceSource(source);
109
+ }
110
+ });
111
+ const job = {
112
+ id: `${constants_1.platformId}-pools`,
113
+ executor,
114
+ };
115
+ exports.default = job;
116
+ //# sourceMappingURL=poolsJob.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"poolsJob.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/fluxbeam/poolsJob.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ /// <reference types="node" />
2
+ import { BeetStruct } from '@metaplex-foundation/beet';
3
+ import BigNumber from 'bignumber.js';
4
+ import { PublicKey } from '@solana/web3.js';
5
+ export type Fees = {
6
+ tradeFeeNumerator: BigNumber;
7
+ tradeFeeDenominator: BigNumber;
8
+ ownerTradeFeeNumerator: BigNumber;
9
+ ownerTradeFeeDenominator: BigNumber;
10
+ ownerWithdrawFeeNumerator: BigNumber;
11
+ ownerWithdrawFeeDenominator: BigNumber;
12
+ hostFeeNumerator: BigNumber;
13
+ hostFeeDenominator: BigNumber;
14
+ };
15
+ export declare const feesStruct: BeetStruct<Fees, Partial<Fees>>;
16
+ export declare enum CurveType {
17
+ ConstantProduct = 0,
18
+ ConstantPrice = 1,
19
+ Offset = 2
20
+ }
21
+ export type SwapCurve = {
22
+ curveType: CurveType;
23
+ calculator: Buffer;
24
+ };
25
+ export declare const swapCurveStruct: BeetStruct<SwapCurve, Partial<SwapCurve>>;
26
+ export type Pool = {
27
+ padding: Buffer;
28
+ isInitialized: number;
29
+ bumpSeed: number;
30
+ tokenProgramId: PublicKey;
31
+ tokenA: PublicKey;
32
+ tokenB: PublicKey;
33
+ poolMint: PublicKey;
34
+ tokenAMint: PublicKey;
35
+ tokenBMint: PublicKey;
36
+ poolFeeAccount: PublicKey;
37
+ fees: Fees;
38
+ swapCurve: SwapCurve;
39
+ };
40
+ export declare const poolStruct: BeetStruct<Pool, Partial<Pool>>;
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.poolStruct = exports.swapCurveStruct = exports.CurveType = exports.feesStruct = 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
+ exports.feesStruct = new beet_1.BeetStruct([
8
+ ['tradeFeeNumerator', solana_1.u64],
9
+ ['tradeFeeDenominator', solana_1.u64],
10
+ ['ownerTradeFeeNumerator', solana_1.u64],
11
+ ['ownerTradeFeeDenominator', solana_1.u64],
12
+ ['ownerWithdrawFeeNumerator', solana_1.u64],
13
+ ['ownerWithdrawFeeDenominator', solana_1.u64],
14
+ ['hostFeeNumerator', solana_1.u64],
15
+ ['hostFeeDenominator', solana_1.u64],
16
+ ], (args) => args);
17
+ var CurveType;
18
+ (function (CurveType) {
19
+ CurveType[CurveType["ConstantProduct"] = 0] = "ConstantProduct";
20
+ CurveType[CurveType["ConstantPrice"] = 1] = "ConstantPrice";
21
+ CurveType[CurveType["Offset"] = 2] = "Offset";
22
+ })(CurveType || (exports.CurveType = CurveType = {}));
23
+ exports.swapCurveStruct = new beet_1.BeetStruct([
24
+ ['curveType', beet_1.u8],
25
+ ['calculator', (0, solana_1.blob)(32)],
26
+ ], (args) => args);
27
+ exports.poolStruct = new beet_1.BeetStruct([
28
+ ['padding', (0, solana_1.blob)(1)],
29
+ ['isInitialized', beet_1.u8],
30
+ ['bumpSeed', beet_1.u8],
31
+ ['tokenProgramId', beet_solana_1.publicKey],
32
+ ['tokenA', beet_solana_1.publicKey],
33
+ ['tokenB', beet_solana_1.publicKey],
34
+ ['poolMint', beet_solana_1.publicKey],
35
+ ['tokenAMint', beet_solana_1.publicKey],
36
+ ['tokenBMint', beet_solana_1.publicKey],
37
+ ['poolFeeAccount', beet_solana_1.publicKey],
38
+ ['fees', exports.feesStruct],
39
+ ['swapCurve', exports.swapCurveStruct],
40
+ ], (args) => args);
41
+ //# sourceMappingURL=structs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"structs.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/fluxbeam/structs.ts"],"names":[],"mappings":";;;AAAA,oDAA2D;AAC3D,kEAA6D;AAG7D,+CAA+C;AAalC,QAAA,UAAU,GAAG,IAAI,iBAAU,CACtC;IACE,CAAC,mBAAmB,EAAE,YAAG,CAAC;IAC1B,CAAC,qBAAqB,EAAE,YAAG,CAAC;IAC5B,CAAC,wBAAwB,EAAE,YAAG,CAAC;IAC/B,CAAC,0BAA0B,EAAE,YAAG,CAAC;IACjC,CAAC,2BAA2B,EAAE,YAAG,CAAC;IAClC,CAAC,6BAA6B,EAAE,YAAG,CAAC;IACpC,CAAC,kBAAkB,EAAE,YAAG,CAAC;IACzB,CAAC,oBAAoB,EAAE,YAAG,CAAC;CAC5B,EACD,CAAC,IAAI,EAAE,EAAE,CAAC,IAAY,CACvB,CAAC;AAEF,IAAY,SAIX;AAJD,WAAY,SAAS;IACnB,+DAAe,CAAA;IACf,2DAAa,CAAA;IACb,6CAAM,CAAA;AACR,CAAC,EAJW,SAAS,yBAAT,SAAS,QAIpB;AAOY,QAAA,eAAe,GAAG,IAAI,iBAAU,CAC3C;IACE,CAAC,WAAW,EAAE,SAAE,CAAC;IACjB,CAAC,YAAY,EAAE,IAAA,aAAI,EAAC,EAAE,CAAC,CAAC;CACzB,EACD,CAAC,IAAI,EAAE,EAAE,CAAC,IAAiB,CAC5B,CAAC;AAiBW,QAAA,UAAU,GAAG,IAAI,iBAAU,CACtC;IACE,CAAC,SAAS,EAAE,IAAA,aAAI,EAAC,CAAC,CAAC,CAAC;IACpB,CAAC,eAAe,EAAE,SAAE,CAAC;IACrB,CAAC,UAAU,EAAE,SAAE,CAAC;IAChB,CAAC,gBAAgB,EAAE,uBAAS,CAAC;IAC7B,CAAC,QAAQ,EAAE,uBAAS,CAAC;IACrB,CAAC,QAAQ,EAAE,uBAAS,CAAC;IACrB,CAAC,UAAU,EAAE,uBAAS,CAAC;IACvB,CAAC,YAAY,EAAE,uBAAS,CAAC;IACzB,CAAC,YAAY,EAAE,uBAAS,CAAC;IACzB,CAAC,gBAAgB,EAAE,uBAAS,CAAC;IAC7B,CAAC,MAAM,EAAE,kBAAU,CAAC;IACpB,CAAC,WAAW,EAAE,uBAAe,CAAC;CAC/B,EACD,CAAC,IAAI,EAAE,EAAE,CAAC,IAAY,CACvB,CAAC"}
@@ -36,28 +36,28 @@ exports.getPairsV2 = void 0;
36
36
  const graphql_request_1 = __importStar(require("graphql-request"));
37
37
  function getPairsV2(url) {
38
38
  return __awaiter(this, void 0, void 0, function* () {
39
- const query = (0, graphql_request_1.gql) `
40
- {
41
- pairs(
42
- orderBy: reserveUSD
43
- first: 500
44
- orderDirection: desc
45
- where: { trackedReserveETH_not: "0" }
46
- ) {
47
- id
48
- reserve0
49
- reserve1
50
- totalSupply
51
- token0 {
52
- id
53
- decimals
54
- }
55
- token1 {
56
- id
57
- decimals
58
- }
59
- }
60
- }
39
+ const query = (0, graphql_request_1.gql) `
40
+ {
41
+ pairs(
42
+ orderBy: reserveUSD
43
+ first: 500
44
+ orderDirection: desc
45
+ where: { trackedReserveETH_not: "0" }
46
+ ) {
47
+ id
48
+ reserve0
49
+ reserve1
50
+ totalSupply
51
+ token0 {
52
+ id
53
+ decimals
54
+ }
55
+ token1 {
56
+ id
57
+ decimals
58
+ }
59
+ }
60
+ }
61
61
  `;
62
62
  const res = yield (0, graphql_request_1.default)(url, query);
63
63
  const pairs = res.pairs;
@@ -0,0 +1,3 @@
1
+ import { Connection, PublicKey } from '@solana/web3.js';
2
+ import { GlobalBeetStruct, ParsedAccount } from './types';
3
+ export declare function getParsedAccountInfo<T>(connection: Connection, beetStruct: GlobalBeetStruct<T>, publicKey: PublicKey): Promise<ParsedAccount<T> | null>;
@@ -0,0 +1,22 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.getParsedAccountInfo = void 0;
13
+ function getParsedAccountInfo(connection, beetStruct, publicKey) {
14
+ return __awaiter(this, void 0, void 0, function* () {
15
+ const accountInfo = yield connection.getAccountInfo(publicKey);
16
+ if (accountInfo === null)
17
+ return null;
18
+ return Object.assign({ pubkey: publicKey, lamports: accountInfo.lamports }, beetStruct.deserialize(accountInfo.data)[0]);
19
+ });
20
+ }
21
+ exports.getParsedAccountInfo = getParsedAccountInfo;
22
+ //# sourceMappingURL=getParsedAccountInfo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getParsedAccountInfo.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/utils/solana/getParsedAccountInfo.ts"],"names":[],"mappings":";;;;;;;;;;;;AAGA,SAAsB,oBAAoB,CACxC,UAAsB,EACtB,UAA+B,EAC/B,SAAoB;;QAEpB,MAAM,WAAW,GAAG,MAAM,UAAU,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;QAC/D,IAAI,WAAW,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC;QACtC,OAAO,gBACL,MAAM,EAAE,SAAS,EACjB,QAAQ,EAAE,WAAW,CAAC,QAAQ,IAC3B,UAAU,CAAC,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAC3B,CAAC;IACxB,CAAC;CAAA;AAZD,oDAYC"}