@sonarwatch/portfolio-plugins 0.4.34 → 0.4.36
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 +9 -1
- package/package.json +2 -2
- package/src/generators/fetcher/generator.js +5 -2
- package/src/generators/fetcher/generator.js.map +1 -1
- package/src/generators/helpers.d.ts +3 -0
- package/src/generators/helpers.js +19 -1
- package/src/generators/helpers.js.map +1 -1
- package/src/generators/job/generator.js +5 -2
- package/src/generators/job/generator.js.map +1 -1
- package/src/generators/plugin/generator.js +3 -18
- package/src/generators/plugin/generator.js.map +1 -1
- package/src/index.js +5 -1
- package/src/index.js.map +1 -1
- package/src/platforms.d.ts +1 -0
- package/src/platforms.js +6 -1
- package/src/platforms.js.map +1 -1
- package/src/plugins/orca/clmmPositionsFetcher.d.ts +3 -0
- package/src/plugins/orca/clmmPositionsFetcher.js +139 -0
- package/src/plugins/orca/clmmPositionsFetcher.js.map +1 -0
- package/src/plugins/orca/constants.d.ts +8 -0
- package/src/plugins/orca/constants.js +12 -0
- package/src/plugins/orca/constants.js.map +1 -0
- package/src/plugins/orca/filters.d.ts +3 -0
- package/src/plugins/orca/filters.js +12 -0
- package/src/plugins/orca/filters.js.map +1 -0
- package/src/plugins/orca/helpers.d.ts +17 -0
- package/src/plugins/orca/helpers.js +216 -0
- package/src/plugins/orca/helpers.js.map +1 -0
- package/src/plugins/orca/index.d.ts +3 -0
- package/src/plugins/orca/index.js +12 -0
- package/src/plugins/orca/index.js.map +1 -0
- package/src/plugins/orca/lpTokensJob.d.ts +3 -0
- package/src/plugins/orca/lpTokensJob.js +103 -0
- package/src/plugins/orca/lpTokensJob.js.map +1 -0
- package/src/plugins/orca/structs/aquafarms.d.ts +37 -0
- package/src/plugins/orca/structs/aquafarms.js +37 -0
- package/src/plugins/orca/structs/aquafarms.js.map +1 -0
- package/src/plugins/orca/structs/whirlpool.d.ts +59 -0
- package/src/plugins/orca/structs/whirlpool.js +53 -0
- package/src/plugins/orca/structs/whirlpool.js.map +1 -0
- package/src/plugins/orca/whirlpoolsJob.d.ts +3 -0
- package/src/plugins/orca/whirlpoolsJob.js +36 -0
- package/src/plugins/orca/whirlpoolsJob.js.map +1 -0
- package/src/plugins/raydium/clmmPositionsFetcher.d.ts +3 -0
- package/src/plugins/raydium/clmmPositionsFetcher.js +110 -0
- package/src/plugins/raydium/clmmPositionsFetcher.js.map +1 -0
- package/src/plugins/raydium/constants.d.ts +2 -0
- package/src/plugins/raydium/constants.js +3 -1
- package/src/plugins/raydium/constants.js.map +1 -1
- package/src/plugins/raydium/filters.js +3 -3
- package/src/plugins/raydium/filters.js.map +1 -1
- package/src/plugins/raydium/helpers.d.ts +40 -0
- package/src/plugins/raydium/helpers.js +280 -0
- package/src/plugins/raydium/helpers.js.map +1 -0
- package/src/plugins/raydium/index.js +2 -1
- package/src/plugins/raydium/index.js.map +1 -1
- package/src/plugins/raydium/lpTokensJob.js +7 -13
- package/src/plugins/raydium/lpTokensJob.js.map +1 -1
- package/src/plugins/raydium/{structs.d.ts → structs/amms.d.ts} +0 -44
- package/src/plugins/raydium/{structs.js → structs/amms.js} +3 -43
- package/src/plugins/raydium/structs/amms.js.map +1 -0
- package/src/plugins/raydium/structs/clmms.d.ts +80 -0
- package/src/plugins/raydium/structs/clmms.js +79 -0
- package/src/plugins/raydium/structs/clmms.js.map +1 -0
- package/src/plugins/raydium/structs/openOrders.d.ts +47 -0
- package/src/plugins/raydium/structs/openOrders.js +47 -0
- package/src/plugins/raydium/structs/openOrders.js.map +1 -0
- package/src/plugins/solend/obligationsFetcher.js +2 -2
- package/src/plugins/solend/obligationsFetcher.js.map +1 -1
- package/src/plugins/solend/reservesJob.js +3 -1
- package/src/plugins/solend/reservesJob.js.map +1 -1
- package/src/plugins/raydium/structs.js.map +0 -1
@@ -0,0 +1,216 @@
|
|
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.getTokenAmountsFromLiquidity = exports.tickIndexToSqrtPriceX64 = exports.tickIndexToSqrtPriceNegative = exports.tickIndexToSqrtPricePositive = exports.signedShiftRight = exports.getYields = void 0;
|
7
|
+
/* eslint-disable no-bitwise */
|
8
|
+
const bignumber_js_1 = __importDefault(require("bignumber.js"));
|
9
|
+
const bn_js_1 = __importDefault(require("bn.js"));
|
10
|
+
const decimal_js_1 = __importDefault(require("decimal.js"));
|
11
|
+
const portfolio_core_1 = require("@sonarwatch/portfolio-core");
|
12
|
+
function getYields(aquafarm, rewardToken, baseVaultValue) {
|
13
|
+
const apr = aquafarm.emissionsPerSecondNumerator
|
14
|
+
.div(aquafarm.emissionsPerSecondDenominator)
|
15
|
+
.div(Math.pow(10, rewardToken.decimals))
|
16
|
+
.times(60 * 60 * 24 * 365)
|
17
|
+
.times(rewardToken.price)
|
18
|
+
.div(baseVaultValue)
|
19
|
+
.times(100)
|
20
|
+
.toNumber();
|
21
|
+
const yields = [
|
22
|
+
{
|
23
|
+
mint: rewardToken.address,
|
24
|
+
apr,
|
25
|
+
apy: (0, portfolio_core_1.aprToApy)(apr),
|
26
|
+
},
|
27
|
+
];
|
28
|
+
return yields;
|
29
|
+
}
|
30
|
+
exports.getYields = getYields;
|
31
|
+
function signedShiftRight(n0, shiftBy, bitWidth) {
|
32
|
+
const twoN0 = n0.toTwos(bitWidth).shrn(shiftBy);
|
33
|
+
twoN0.imaskn(bitWidth - shiftBy + 1);
|
34
|
+
return twoN0.fromTwos(bitWidth - shiftBy);
|
35
|
+
}
|
36
|
+
exports.signedShiftRight = signedShiftRight;
|
37
|
+
function tickIndexToSqrtPricePositive(tick) {
|
38
|
+
let ratio;
|
39
|
+
if ((tick & 1) !== 0) {
|
40
|
+
ratio = new bn_js_1.default('79232123823359799118286999567');
|
41
|
+
}
|
42
|
+
else {
|
43
|
+
ratio = new bn_js_1.default('79228162514264337593543950336');
|
44
|
+
}
|
45
|
+
if ((tick & 2) !== 0) {
|
46
|
+
ratio = signedShiftRight(ratio.mul(new bn_js_1.default('79236085330515764027303304731')), 96, 256);
|
47
|
+
}
|
48
|
+
if ((tick & 4) !== 0) {
|
49
|
+
ratio = signedShiftRight(ratio.mul(new bn_js_1.default('79244008939048815603706035061')), 96, 256);
|
50
|
+
}
|
51
|
+
if ((tick & 8) !== 0) {
|
52
|
+
ratio = signedShiftRight(ratio.mul(new bn_js_1.default('79259858533276714757314932305')), 96, 256);
|
53
|
+
}
|
54
|
+
if ((tick & 16) !== 0) {
|
55
|
+
ratio = signedShiftRight(ratio.mul(new bn_js_1.default('79291567232598584799939703904')), 96, 256);
|
56
|
+
}
|
57
|
+
if ((tick & 32) !== 0) {
|
58
|
+
ratio = signedShiftRight(ratio.mul(new bn_js_1.default('79355022692464371645785046466')), 96, 256);
|
59
|
+
}
|
60
|
+
if ((tick & 64) !== 0) {
|
61
|
+
ratio = signedShiftRight(ratio.mul(new bn_js_1.default('79482085999252804386437311141')), 96, 256);
|
62
|
+
}
|
63
|
+
if ((tick & 128) !== 0) {
|
64
|
+
ratio = signedShiftRight(ratio.mul(new bn_js_1.default('79736823300114093921829183326')), 96, 256);
|
65
|
+
}
|
66
|
+
if ((tick & 256) !== 0) {
|
67
|
+
ratio = signedShiftRight(ratio.mul(new bn_js_1.default('80248749790819932309965073892')), 96, 256);
|
68
|
+
}
|
69
|
+
if ((tick & 512) !== 0) {
|
70
|
+
ratio = signedShiftRight(ratio.mul(new bn_js_1.default('81282483887344747381513967011')), 96, 256);
|
71
|
+
}
|
72
|
+
if ((tick & 1024) !== 0) {
|
73
|
+
ratio = signedShiftRight(ratio.mul(new bn_js_1.default('83390072131320151908154831281')), 96, 256);
|
74
|
+
}
|
75
|
+
if ((tick & 2048) !== 0) {
|
76
|
+
ratio = signedShiftRight(ratio.mul(new bn_js_1.default('87770609709833776024991924138')), 96, 256);
|
77
|
+
}
|
78
|
+
if ((tick & 4096) !== 0) {
|
79
|
+
ratio = signedShiftRight(ratio.mul(new bn_js_1.default('97234110755111693312479820773')), 96, 256);
|
80
|
+
}
|
81
|
+
if ((tick & 8192) !== 0) {
|
82
|
+
ratio = signedShiftRight(ratio.mul(new bn_js_1.default('119332217159966728226237229890')), 96, 256);
|
83
|
+
}
|
84
|
+
if ((tick & 16384) !== 0) {
|
85
|
+
ratio = signedShiftRight(ratio.mul(new bn_js_1.default('179736315981702064433883588727')), 96, 256);
|
86
|
+
}
|
87
|
+
if ((tick & 32768) !== 0) {
|
88
|
+
ratio = signedShiftRight(ratio.mul(new bn_js_1.default('407748233172238350107850275304')), 96, 256);
|
89
|
+
}
|
90
|
+
if ((tick & 65536) !== 0) {
|
91
|
+
ratio = signedShiftRight(ratio.mul(new bn_js_1.default('2098478828474011932436660412517')), 96, 256);
|
92
|
+
}
|
93
|
+
if ((tick & 131072) !== 0) {
|
94
|
+
ratio = signedShiftRight(ratio.mul(new bn_js_1.default('55581415166113811149459800483533')), 96, 256);
|
95
|
+
}
|
96
|
+
if ((tick & 262144) !== 0) {
|
97
|
+
ratio = signedShiftRight(ratio.mul(new bn_js_1.default('38992368544603139932233054999993551')), 96, 256);
|
98
|
+
}
|
99
|
+
return new bignumber_js_1.default(signedShiftRight(ratio, 32, 256).toString());
|
100
|
+
}
|
101
|
+
exports.tickIndexToSqrtPricePositive = tickIndexToSqrtPricePositive;
|
102
|
+
function tickIndexToSqrtPriceNegative(tickIndex) {
|
103
|
+
const tick = Math.abs(tickIndex);
|
104
|
+
let ratio;
|
105
|
+
if ((tick & 1) !== 0) {
|
106
|
+
ratio = new bn_js_1.default('18445821805675392311');
|
107
|
+
}
|
108
|
+
else {
|
109
|
+
ratio = new bn_js_1.default('18446744073709551616');
|
110
|
+
}
|
111
|
+
if ((tick & 2) !== 0) {
|
112
|
+
ratio = signedShiftRight(ratio.mul(new bn_js_1.default('18444899583751176498')), 64, 256);
|
113
|
+
}
|
114
|
+
if ((tick & 4) !== 0) {
|
115
|
+
ratio = signedShiftRight(ratio.mul(new bn_js_1.default('18443055278223354162')), 64, 256);
|
116
|
+
}
|
117
|
+
if ((tick & 8) !== 0) {
|
118
|
+
ratio = signedShiftRight(ratio.mul(new bn_js_1.default('18439367220385604838')), 64, 256);
|
119
|
+
}
|
120
|
+
if ((tick & 16) !== 0) {
|
121
|
+
ratio = signedShiftRight(ratio.mul(new bn_js_1.default('18431993317065449817')), 64, 256);
|
122
|
+
}
|
123
|
+
if ((tick & 32) !== 0) {
|
124
|
+
ratio = signedShiftRight(ratio.mul(new bn_js_1.default('18417254355718160513')), 64, 256);
|
125
|
+
}
|
126
|
+
if ((tick & 64) !== 0) {
|
127
|
+
ratio = signedShiftRight(ratio.mul(new bn_js_1.default('18387811781193591352')), 64, 256);
|
128
|
+
}
|
129
|
+
if ((tick & 128) !== 0) {
|
130
|
+
ratio = signedShiftRight(ratio.mul(new bn_js_1.default('18329067761203520168')), 64, 256);
|
131
|
+
}
|
132
|
+
if ((tick & 256) !== 0) {
|
133
|
+
ratio = signedShiftRight(ratio.mul(new bn_js_1.default('18212142134806087854')), 64, 256);
|
134
|
+
}
|
135
|
+
if ((tick & 512) !== 0) {
|
136
|
+
ratio = signedShiftRight(ratio.mul(new bn_js_1.default('17980523815641551639')), 64, 256);
|
137
|
+
}
|
138
|
+
if ((tick & 1024) !== 0) {
|
139
|
+
ratio = signedShiftRight(ratio.mul(new bn_js_1.default('17526086738831147013')), 64, 256);
|
140
|
+
}
|
141
|
+
if ((tick & 2048) !== 0) {
|
142
|
+
ratio = signedShiftRight(ratio.mul(new bn_js_1.default('16651378430235024244')), 64, 256);
|
143
|
+
}
|
144
|
+
if ((tick & 4096) !== 0) {
|
145
|
+
ratio = signedShiftRight(ratio.mul(new bn_js_1.default('15030750278693429944')), 64, 256);
|
146
|
+
}
|
147
|
+
if ((tick & 8192) !== 0) {
|
148
|
+
ratio = signedShiftRight(ratio.mul(new bn_js_1.default('12247334978882834399')), 64, 256);
|
149
|
+
}
|
150
|
+
if ((tick & 16384) !== 0) {
|
151
|
+
ratio = signedShiftRight(ratio.mul(new bn_js_1.default('8131365268884726200')), 64, 256);
|
152
|
+
}
|
153
|
+
if ((tick & 32768) !== 0) {
|
154
|
+
ratio = signedShiftRight(ratio.mul(new bn_js_1.default('3584323654723342297')), 64, 256);
|
155
|
+
}
|
156
|
+
if ((tick & 65536) !== 0) {
|
157
|
+
ratio = signedShiftRight(ratio.mul(new bn_js_1.default('696457651847595233')), 64, 256);
|
158
|
+
}
|
159
|
+
if ((tick & 131072) !== 0) {
|
160
|
+
ratio = signedShiftRight(ratio.mul(new bn_js_1.default('26294789957452057')), 64, 256);
|
161
|
+
}
|
162
|
+
if ((tick & 262144) !== 0) {
|
163
|
+
ratio = signedShiftRight(ratio.mul(new bn_js_1.default('37481735321082')), 64, 256);
|
164
|
+
}
|
165
|
+
return new bignumber_js_1.default(ratio.toString());
|
166
|
+
}
|
167
|
+
exports.tickIndexToSqrtPriceNegative = tickIndexToSqrtPriceNegative;
|
168
|
+
function tickIndexToSqrtPriceX64(tickIndex) {
|
169
|
+
if (tickIndex > 0) {
|
170
|
+
return new bignumber_js_1.default(tickIndexToSqrtPricePositive(tickIndex));
|
171
|
+
}
|
172
|
+
return new bignumber_js_1.default(tickIndexToSqrtPriceNegative(tickIndex));
|
173
|
+
}
|
174
|
+
exports.tickIndexToSqrtPriceX64 = tickIndexToSqrtPriceX64;
|
175
|
+
const fromX64Decimal = (num) => num.times(decimal_js_1.default.pow(2, -64));
|
176
|
+
const toX64Decimal = (num) => num.times(decimal_js_1.default.pow(2, 64));
|
177
|
+
function getTokenAmountsFromLiquidity(liquidity, currentSqrtPrice, lowerSqrtPrice, upperSqrtPrice, roundUp) {
|
178
|
+
const decLiquidity = new decimal_js_1.default(liquidity.toString());
|
179
|
+
const currentPrice = new decimal_js_1.default(currentSqrtPrice.toString());
|
180
|
+
const lowerPrice = new decimal_js_1.default(lowerSqrtPrice.toString());
|
181
|
+
const upperPrice = new decimal_js_1.default(upperSqrtPrice.toString());
|
182
|
+
let tokenA;
|
183
|
+
let tokenB;
|
184
|
+
if (currentSqrtPrice.lt(lowerSqrtPrice)) {
|
185
|
+
// x = L * (pb - pa) / (pa * pb)
|
186
|
+
tokenA = toX64Decimal(decLiquidity)
|
187
|
+
.times(upperPrice.sub(lowerPrice))
|
188
|
+
.div(lowerPrice.mul(upperPrice));
|
189
|
+
tokenB = new decimal_js_1.default(0);
|
190
|
+
}
|
191
|
+
else if (currentSqrtPrice.lt(upperSqrtPrice)) {
|
192
|
+
// x = L * (pb - p) / (p * pb)
|
193
|
+
// y = L * (p - pa)
|
194
|
+
tokenA = toX64Decimal(decLiquidity)
|
195
|
+
.times(upperPrice.sub(currentPrice))
|
196
|
+
.div(currentPrice.mul(upperPrice));
|
197
|
+
tokenB = fromX64Decimal(decLiquidity.mul(currentPrice.sub(lowerPrice)));
|
198
|
+
}
|
199
|
+
else {
|
200
|
+
// y = L * (pb - pa)
|
201
|
+
tokenA = new decimal_js_1.default(0);
|
202
|
+
tokenB = fromX64Decimal(decLiquidity.mul(upperPrice.sub(lowerPrice)));
|
203
|
+
}
|
204
|
+
if (roundUp) {
|
205
|
+
return {
|
206
|
+
tokenAmountA: tokenA.ceil().toNumber(),
|
207
|
+
tokenAmountB: tokenB.ceil().toNumber(),
|
208
|
+
};
|
209
|
+
}
|
210
|
+
return {
|
211
|
+
tokenAmountA: tokenA.floor().toNumber(),
|
212
|
+
tokenAmountB: tokenB.floor().toNumber(),
|
213
|
+
};
|
214
|
+
}
|
215
|
+
exports.getTokenAmountsFromLiquidity = getTokenAmountsFromLiquidity;
|
216
|
+
//# sourceMappingURL=helpers.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/orca/helpers.ts"],"names":[],"mappings":"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"}
|
@@ -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 = void 0;
|
7
|
+
// import lpJob from './lpTokensJob';
|
8
|
+
const whirlpoolsJob_1 = __importDefault(require("./whirlpoolsJob"));
|
9
|
+
const clmmPositionsFetcher_1 = __importDefault(require("./clmmPositionsFetcher"));
|
10
|
+
exports.jobs = [whirlpoolsJob_1.default];
|
11
|
+
exports.fetchers = [clmmPositionsFetcher_1.default];
|
12
|
+
//# sourceMappingURL=index.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/orca/index.ts"],"names":[],"mappings":";;;;;;AACA,qCAAqC;AACrC,oEAA2C;AAC3C,kFAA0D;AAE7C,QAAA,IAAI,GAAU,CAAC,uBAAY,CAAC,CAAC;AAC7B,QAAA,QAAQ,GAAc,CAAC,8BAAoB,CAAC,CAAC"}
|
@@ -0,0 +1,103 @@
|
|
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
|
+
const portfolio_core_1 = require("@sonarwatch/portfolio-core");
|
13
|
+
const js_1 = require("@metaplex-foundation/js");
|
14
|
+
const constants_1 = require("./constants");
|
15
|
+
const filters_1 = require("./filters");
|
16
|
+
const clients_1 = require("../../utils/clients");
|
17
|
+
const aquafarms_1 = require("./structs/aquafarms");
|
18
|
+
const solana_1 = require("../../utils/solana");
|
19
|
+
const fetchTokenSupplyAndDecimals_1 = require("../../utils/solana/fetchTokenSupplyAndDecimals");
|
20
|
+
// import { getYields } from './helpers';
|
21
|
+
const getMultipleAccountsInfoSafe_1 = require("../../utils/solana/getMultipleAccountsInfoSafe");
|
22
|
+
const executor = (cache) => __awaiter(void 0, void 0, void 0, function* () {
|
23
|
+
const client = (0, clients_1.getClientSolana)();
|
24
|
+
const aquafarmsRes = yield client.getProgramAccounts(constants_1.aquafarmsProgram, {
|
25
|
+
filters: filters_1.aquafarmFilters,
|
26
|
+
});
|
27
|
+
const aquafarms = aquafarmsRes.map((i) => (Object.assign(Object.assign({}, aquafarms_1.aquafarmStruct.deserialize(i.account.data)[0]), { pubkey: i.pubkey })));
|
28
|
+
const tokenAccountsToFetch = [
|
29
|
+
...aquafarms.map((a) => a.baseTokenVault),
|
30
|
+
...aquafarms.map((a) => a.rewardTokenVault),
|
31
|
+
];
|
32
|
+
const tokenAccountsRes = yield (0, getMultipleAccountsInfoSafe_1.getMultipleAccountsInfoSafe)(client, tokenAccountsToFetch);
|
33
|
+
if (!tokenAccountsRes)
|
34
|
+
return;
|
35
|
+
const tokenAccountsMap = new Map();
|
36
|
+
tokenAccountsRes.forEach((tokenAccountRes, i) => {
|
37
|
+
if (!tokenAccountRes)
|
38
|
+
return;
|
39
|
+
const tokenAccount = solana_1.tokenAccountStruct.deserialize(tokenAccountRes.data)[0];
|
40
|
+
tokenAccountsMap.set(tokenAccountsToFetch[i].toString(), tokenAccount);
|
41
|
+
});
|
42
|
+
for (let i = 0; i < aquafarms.length; i += 1) {
|
43
|
+
const aquafarm = aquafarms[i];
|
44
|
+
const baseMint = aquafarm.baseTokenMint.toString();
|
45
|
+
const baseToken = yield cache.getTokenPrice(baseMint, portfolio_core_1.NetworkId.solana);
|
46
|
+
if (!baseToken)
|
47
|
+
continue;
|
48
|
+
const baseVault = tokenAccountsMap.get(aquafarm.baseTokenVault.toString());
|
49
|
+
if (!baseVault)
|
50
|
+
continue;
|
51
|
+
if (baseVault.amount.isZero())
|
52
|
+
continue;
|
53
|
+
const farmMint = aquafarm.farmTokenMint.toString();
|
54
|
+
const tokenSupplyRes = yield (0, fetchTokenSupplyAndDecimals_1.fetchTokenSupplyAndDecimals)(new js_1.PublicKey(farmMint), client, 0);
|
55
|
+
if (!tokenSupplyRes)
|
56
|
+
continue;
|
57
|
+
const { decimals: farmDecimals, supply: farmSupply } = tokenSupplyRes;
|
58
|
+
const baseVaultAmount = baseVault.amount
|
59
|
+
.div(Math.pow(10, baseToken.decimals))
|
60
|
+
.toNumber();
|
61
|
+
const baseVaultValue = baseVaultAmount * baseToken.price;
|
62
|
+
const price = baseVaultValue / farmSupply;
|
63
|
+
// Yields
|
64
|
+
// const rewardToken = null;
|
65
|
+
// const rewardVault = tokenAccountsMap.get(
|
66
|
+
// aquafarm.rewardTokenVault.toString()
|
67
|
+
// );
|
68
|
+
// if (rewardVault) rewardToken = tokenAccountsMap.get(rewardVault.mint.toString());
|
69
|
+
// if (rewardVault)
|
70
|
+
// rewardToken = await cache.getTokenPrice(
|
71
|
+
// rewardVault.mint.toString(),
|
72
|
+
// NetworkId.solana
|
73
|
+
// );
|
74
|
+
// let yields;
|
75
|
+
// if (rewardToken) yields = getYields(aquafarm, rewardToken, baseVaultValue);
|
76
|
+
// console.log('constexecutor:JobExecutor= ~ yields:', yields);
|
77
|
+
yield cache.setTokenPriceSource({
|
78
|
+
id: constants_1.platformId,
|
79
|
+
weight: 1,
|
80
|
+
address: farmMint.toString(),
|
81
|
+
networkId: portfolio_core_1.NetworkId.solana,
|
82
|
+
platformId: constants_1.platformId,
|
83
|
+
decimals: farmDecimals,
|
84
|
+
price,
|
85
|
+
underlyings: [
|
86
|
+
{
|
87
|
+
networkId: portfolio_core_1.NetworkId.solana,
|
88
|
+
address: baseToken.address,
|
89
|
+
decimals: baseToken.decimals,
|
90
|
+
price: baseToken.price,
|
91
|
+
amountPerLp: baseVaultAmount / baseVaultValue,
|
92
|
+
},
|
93
|
+
],
|
94
|
+
timestamp: Date.now(),
|
95
|
+
});
|
96
|
+
}
|
97
|
+
});
|
98
|
+
const job = {
|
99
|
+
id: `${constants_1.platformId}-lp-tokens`,
|
100
|
+
executor,
|
101
|
+
};
|
102
|
+
exports.default = job;
|
103
|
+
//# sourceMappingURL=lpTokensJob.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"lpTokensJob.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/orca/lpTokensJob.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,37 @@
|
|
1
|
+
/// <reference types="node" />
|
2
|
+
import { BeetStruct } from '@metaplex-foundation/beet';
|
3
|
+
import { PublicKey } from '@metaplex-foundation/js';
|
4
|
+
import BigNumber from 'bignumber.js';
|
5
|
+
export type AMMV4Info = {
|
6
|
+
isInitialized: number;
|
7
|
+
accountType: number;
|
8
|
+
globalFarm: PublicKey;
|
9
|
+
owner: PublicKey;
|
10
|
+
baseTokensConverted: BigNumber;
|
11
|
+
cumulativeEmissionsCheckpoint: BigNumber;
|
12
|
+
};
|
13
|
+
export declare const ammV4InfoStruct: BeetStruct<AMMV4Info, Partial<AMMV4Info>>;
|
14
|
+
export type UserAquafarm = {
|
15
|
+
isInitialized: number;
|
16
|
+
accountType: number;
|
17
|
+
globalFarm: PublicKey;
|
18
|
+
owner: PublicKey;
|
19
|
+
baseTokensConverted: BigNumber;
|
20
|
+
cumulativeEmissionsCheckpoint: BigNumber;
|
21
|
+
};
|
22
|
+
export declare const userAquafarmStruct: BeetStruct<UserAquafarm, Partial<UserAquafarm>>;
|
23
|
+
export type Aquafarm = {
|
24
|
+
buffer: Buffer;
|
25
|
+
tokenProgramId: PublicKey;
|
26
|
+
emissionsAuthority: PublicKey;
|
27
|
+
removeRewardsAuthority: PublicKey;
|
28
|
+
baseTokenMint: PublicKey;
|
29
|
+
baseTokenVault: PublicKey;
|
30
|
+
rewardTokenVault: PublicKey;
|
31
|
+
farmTokenMint: PublicKey;
|
32
|
+
emissionsPerSecondNumerator: BigNumber;
|
33
|
+
emissionsPerSecondDenominator: BigNumber;
|
34
|
+
lastUpdatedTimestamp: BigNumber;
|
35
|
+
cumulativeEmissionsPerFarmToken: BigNumber;
|
36
|
+
};
|
37
|
+
export declare const aquafarmStruct: BeetStruct<Aquafarm, Partial<Aquafarm>>;
|
@@ -0,0 +1,37 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.aquafarmStruct = exports.userAquafarmStruct = exports.ammV4InfoStruct = 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.ammV4InfoStruct = new beet_1.BeetStruct([
|
8
|
+
['isInitialized', beet_1.u8],
|
9
|
+
['accountType', beet_1.u8],
|
10
|
+
['globalFarm', beet_solana_1.publicKey],
|
11
|
+
['owner', beet_solana_1.publicKey],
|
12
|
+
['baseTokensConverted', solana_1.u64],
|
13
|
+
['cumulativeEmissionsCheckpoint', solana_1.u256],
|
14
|
+
], (args) => args);
|
15
|
+
exports.userAquafarmStruct = new beet_1.BeetStruct([
|
16
|
+
['isInitialized', beet_1.u8],
|
17
|
+
['accountType', beet_1.u8],
|
18
|
+
['globalFarm', beet_solana_1.publicKey],
|
19
|
+
['owner', beet_solana_1.publicKey],
|
20
|
+
['baseTokensConverted', solana_1.u64],
|
21
|
+
['cumulativeEmissionsCheckpoint', solana_1.u256],
|
22
|
+
], (args) => args);
|
23
|
+
exports.aquafarmStruct = new beet_1.BeetStruct([
|
24
|
+
['buffer', (0, solana_1.blob)(3)],
|
25
|
+
['tokenProgramId', beet_solana_1.publicKey],
|
26
|
+
['emissionsAuthority', beet_solana_1.publicKey],
|
27
|
+
['removeRewardsAuthority', beet_solana_1.publicKey],
|
28
|
+
['baseTokenMint', beet_solana_1.publicKey],
|
29
|
+
['baseTokenVault', beet_solana_1.publicKey],
|
30
|
+
['rewardTokenVault', beet_solana_1.publicKey],
|
31
|
+
['farmTokenMint', beet_solana_1.publicKey],
|
32
|
+
['emissionsPerSecondNumerator', solana_1.u64],
|
33
|
+
['emissionsPerSecondDenominator', solana_1.u64],
|
34
|
+
['lastUpdatedTimestamp', solana_1.u64],
|
35
|
+
['cumulativeEmissionsPerFarmToken', solana_1.u256],
|
36
|
+
], (args) => args);
|
37
|
+
//# sourceMappingURL=aquafarms.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"aquafarms.js","sourceRoot":"","sources":["../../../../../../../packages/plugins/src/plugins/orca/structs/aquafarms.ts"],"names":[],"mappings":";;;AAAA,oDAA2D;AAC3D,kEAA6D;AAG7D,kDAAwD;AAW3C,QAAA,eAAe,GAAG,IAAI,iBAAU,CAC3C;IACE,CAAC,eAAe,EAAE,SAAE,CAAC;IACrB,CAAC,aAAa,EAAE,SAAE,CAAC;IACnB,CAAC,YAAY,EAAE,uBAAS,CAAC;IACzB,CAAC,OAAO,EAAE,uBAAS,CAAC;IACpB,CAAC,qBAAqB,EAAE,YAAG,CAAC;IAC5B,CAAC,+BAA+B,EAAE,aAAI,CAAC;CACxC,EACD,CAAC,IAAI,EAAE,EAAE,CAAC,IAAiB,CAC5B,CAAC;AAWW,QAAA,kBAAkB,GAAG,IAAI,iBAAU,CAC9C;IACE,CAAC,eAAe,EAAE,SAAE,CAAC;IACrB,CAAC,aAAa,EAAE,SAAE,CAAC;IACnB,CAAC,YAAY,EAAE,uBAAS,CAAC;IACzB,CAAC,OAAO,EAAE,uBAAS,CAAC;IACpB,CAAC,qBAAqB,EAAE,YAAG,CAAC;IAC5B,CAAC,+BAA+B,EAAE,aAAI,CAAC;CACxC,EACD,CAAC,IAAI,EAAE,EAAE,CAAC,IAAoB,CAC/B,CAAC;AAiBW,QAAA,cAAc,GAAG,IAAI,iBAAU,CAC1C;IACE,CAAC,QAAQ,EAAE,IAAA,aAAI,EAAC,CAAC,CAAC,CAAC;IACnB,CAAC,gBAAgB,EAAE,uBAAS,CAAC;IAC7B,CAAC,oBAAoB,EAAE,uBAAS,CAAC;IACjC,CAAC,wBAAwB,EAAE,uBAAS,CAAC;IACrC,CAAC,eAAe,EAAE,uBAAS,CAAC;IAC5B,CAAC,gBAAgB,EAAE,uBAAS,CAAC;IAC7B,CAAC,kBAAkB,EAAE,uBAAS,CAAC;IAC/B,CAAC,eAAe,EAAE,uBAAS,CAAC;IAC5B,CAAC,6BAA6B,EAAE,YAAG,CAAC;IACpC,CAAC,+BAA+B,EAAE,YAAG,CAAC;IACtC,CAAC,sBAAsB,EAAE,YAAG,CAAC;IAC7B,CAAC,iCAAiC,EAAE,aAAI,CAAC;CAC1C,EACD,CAAC,IAAI,EAAE,EAAE,CAAC,IAAgB,CAC3B,CAAC"}
|
@@ -0,0 +1,59 @@
|
|
1
|
+
/// <reference types="node" />
|
2
|
+
import { BeetStruct } from '@metaplex-foundation/beet';
|
3
|
+
import { PublicKey } from '@metaplex-foundation/js';
|
4
|
+
import BigNumber from 'bignumber.js';
|
5
|
+
export type PositionRewardInfo = {
|
6
|
+
growthInsideCheckpoint: BigNumber;
|
7
|
+
amountOwed: BigNumber;
|
8
|
+
};
|
9
|
+
export declare const positionRewardInfoStruct: BeetStruct<PositionRewardInfo, Partial<PositionRewardInfo>>;
|
10
|
+
export type PositionWhirlpool = Position & {
|
11
|
+
tickCurrentIndex?: number;
|
12
|
+
tokenMintA?: PublicKey;
|
13
|
+
tokenMintB?: PublicKey;
|
14
|
+
};
|
15
|
+
export type Position = {
|
16
|
+
padding: Buffer;
|
17
|
+
whirlpool: PublicKey;
|
18
|
+
positionMint: PublicKey;
|
19
|
+
liquidity: BigNumber;
|
20
|
+
tickLowerIndex: number;
|
21
|
+
tickUpperIndex: number;
|
22
|
+
feeGrowthCheckpointA: BigNumber;
|
23
|
+
feeOwedA: BigNumber;
|
24
|
+
feeGrowthCheckpointB: BigNumber;
|
25
|
+
feeOwedB: BigNumber;
|
26
|
+
rewardInfos: PositionRewardInfo[];
|
27
|
+
};
|
28
|
+
export declare const positionStruct: BeetStruct<Position, Partial<Position>>;
|
29
|
+
export type WhirlpoolRewardInfo = {
|
30
|
+
mint: PublicKey;
|
31
|
+
vault: PublicKey;
|
32
|
+
authority: PublicKey;
|
33
|
+
emissionsPerSecondX64: BigNumber;
|
34
|
+
growthGlobalX64: BigNumber;
|
35
|
+
};
|
36
|
+
export declare const whirlpoolRewardInfoStruct: BeetStruct<WhirlpoolRewardInfo, Partial<WhirlpoolRewardInfo>>;
|
37
|
+
export type Whirlpool = {
|
38
|
+
padding: Buffer;
|
39
|
+
whirlpoolsConfig: PublicKey;
|
40
|
+
whirlpoolBump: number[];
|
41
|
+
tickSpacing: number;
|
42
|
+
tickSpacingSeed: number[];
|
43
|
+
feeRate: number;
|
44
|
+
protocolFeeRate: number;
|
45
|
+
liquidity: BigNumber;
|
46
|
+
sqrtPrice: BigNumber;
|
47
|
+
tickCurrentIndex: number;
|
48
|
+
protocolFeeOwedA: BigNumber;
|
49
|
+
protocolFeeOwedB: BigNumber;
|
50
|
+
tokenMintA: PublicKey;
|
51
|
+
tokenVaultA: PublicKey;
|
52
|
+
feeGrowthGlobalA: BigNumber;
|
53
|
+
tokenMintB: PublicKey;
|
54
|
+
tokenVaultB: PublicKey;
|
55
|
+
feeGrowthGlobalB: BigNumber;
|
56
|
+
rewardLastUpdatedTimestamp: BigNumber;
|
57
|
+
rewardInfos: WhirlpoolRewardInfo[];
|
58
|
+
};
|
59
|
+
export declare const whirlpoolStruct: BeetStruct<Whirlpool, Partial<Whirlpool>>;
|
@@ -0,0 +1,53 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.whirlpoolStruct = exports.whirlpoolRewardInfoStruct = exports.positionStruct = exports.positionRewardInfoStruct = 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.positionRewardInfoStruct = new beet_1.BeetStruct([
|
8
|
+
['growthInsideCheckpoint', solana_1.u128],
|
9
|
+
['amountOwed', solana_1.u64],
|
10
|
+
], (args) => args);
|
11
|
+
exports.positionStruct = new beet_1.BeetStruct([
|
12
|
+
['padding', (0, solana_1.blob)(8)],
|
13
|
+
['whirlpool', beet_solana_1.publicKey],
|
14
|
+
['positionMint', beet_solana_1.publicKey],
|
15
|
+
['liquidity', solana_1.u128],
|
16
|
+
['tickLowerIndex', beet_1.i32],
|
17
|
+
['tickUpperIndex', beet_1.i32],
|
18
|
+
['feeGrowthCheckpointA', solana_1.u128],
|
19
|
+
['feeOwedA', solana_1.u64],
|
20
|
+
['feeGrowthCheckpointB', solana_1.u128],
|
21
|
+
['feeOwedB', solana_1.u64],
|
22
|
+
['rewardInfos', (0, beet_1.uniformFixedSizeArray)(exports.positionRewardInfoStruct, 3)],
|
23
|
+
], (args) => args);
|
24
|
+
exports.whirlpoolRewardInfoStruct = new beet_1.BeetStruct([
|
25
|
+
['mint', beet_solana_1.publicKey],
|
26
|
+
['vault', beet_solana_1.publicKey],
|
27
|
+
['authority', beet_solana_1.publicKey],
|
28
|
+
['emissionsPerSecondX64', solana_1.u128],
|
29
|
+
['growthGlobalX64', solana_1.u128],
|
30
|
+
], (args) => args);
|
31
|
+
exports.whirlpoolStruct = new beet_1.BeetStruct([
|
32
|
+
['padding', (0, solana_1.blob)(8)],
|
33
|
+
['whirlpoolsConfig', beet_solana_1.publicKey],
|
34
|
+
['whirlpoolBump', (0, beet_1.uniformFixedSizeArray)(beet_1.u8, 1)],
|
35
|
+
['tickSpacing', beet_1.u16],
|
36
|
+
['tickSpacingSeed', (0, beet_1.uniformFixedSizeArray)(beet_1.u8, 2)],
|
37
|
+
['feeRate', beet_1.u16],
|
38
|
+
['protocolFeeRate', beet_1.u16],
|
39
|
+
['liquidity', solana_1.u128],
|
40
|
+
['sqrtPrice', solana_1.u128],
|
41
|
+
['tickCurrentIndex', beet_1.i32],
|
42
|
+
['protocolFeeOwedA', solana_1.u64],
|
43
|
+
['protocolFeeOwedB', solana_1.u64],
|
44
|
+
['tokenMintA', beet_solana_1.publicKey],
|
45
|
+
['tokenVaultA', beet_solana_1.publicKey],
|
46
|
+
['feeGrowthGlobalA', solana_1.u128],
|
47
|
+
['tokenMintB', beet_solana_1.publicKey],
|
48
|
+
['tokenVaultB', beet_solana_1.publicKey],
|
49
|
+
['feeGrowthGlobalB', solana_1.u128],
|
50
|
+
['rewardLastUpdatedTimestamp', solana_1.u64],
|
51
|
+
['rewardInfos', (0, beet_1.uniformFixedSizeArray)(exports.whirlpoolRewardInfoStruct, 3)],
|
52
|
+
], (args) => args);
|
53
|
+
//# sourceMappingURL=whirlpool.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"whirlpool.js","sourceRoot":"","sources":["../../../../../../../packages/plugins/src/plugins/orca/structs/whirlpool.ts"],"names":[],"mappings":";;;AAAA,oDAMmC;AACnC,kEAA6D;AAG7D,kDAAwD;AAO3C,QAAA,wBAAwB,GAAG,IAAI,iBAAU,CACpD;IACE,CAAC,wBAAwB,EAAE,aAAI,CAAC;IAChC,CAAC,YAAY,EAAE,YAAG,CAAC;CACpB,EACD,CAAC,IAAI,EAAE,EAAE,CAAC,IAA0B,CACrC,CAAC;AAsBW,QAAA,cAAc,GAAG,IAAI,iBAAU,CAC1C;IACE,CAAC,SAAS,EAAE,IAAA,aAAI,EAAC,CAAC,CAAC,CAAC;IACpB,CAAC,WAAW,EAAE,uBAAS,CAAC;IACxB,CAAC,cAAc,EAAE,uBAAS,CAAC;IAC3B,CAAC,WAAW,EAAE,aAAI,CAAC;IACnB,CAAC,gBAAgB,EAAE,UAAG,CAAC;IACvB,CAAC,gBAAgB,EAAE,UAAG,CAAC;IACvB,CAAC,sBAAsB,EAAE,aAAI,CAAC;IAC9B,CAAC,UAAU,EAAE,YAAG,CAAC;IACjB,CAAC,sBAAsB,EAAE,aAAI,CAAC;IAC9B,CAAC,UAAU,EAAE,YAAG,CAAC;IACjB,CAAC,aAAa,EAAE,IAAA,4BAAqB,EAAC,gCAAwB,EAAE,CAAC,CAAC,CAAC;CACpE,EACD,CAAC,IAAI,EAAE,EAAE,CAAC,IAAgB,CAC3B,CAAC;AAUW,QAAA,yBAAyB,GAAG,IAAI,iBAAU,CACrD;IACE,CAAC,MAAM,EAAE,uBAAS,CAAC;IACnB,CAAC,OAAO,EAAE,uBAAS,CAAC;IACpB,CAAC,WAAW,EAAE,uBAAS,CAAC;IACxB,CAAC,uBAAuB,EAAE,aAAI,CAAC;IAC/B,CAAC,iBAAiB,EAAE,aAAI,CAAC;CAC1B,EACD,CAAC,IAAI,EAAE,EAAE,CAAC,IAA2B,CACtC,CAAC;AAyBW,QAAA,eAAe,GAAG,IAAI,iBAAU,CAC3C;IACE,CAAC,SAAS,EAAE,IAAA,aAAI,EAAC,CAAC,CAAC,CAAC;IACpB,CAAC,kBAAkB,EAAE,uBAAS,CAAC;IAC/B,CAAC,eAAe,EAAE,IAAA,4BAAqB,EAAC,SAAE,EAAE,CAAC,CAAC,CAAC;IAC/C,CAAC,aAAa,EAAE,UAAG,CAAC;IACpB,CAAC,iBAAiB,EAAE,IAAA,4BAAqB,EAAC,SAAE,EAAE,CAAC,CAAC,CAAC;IACjD,CAAC,SAAS,EAAE,UAAG,CAAC;IAChB,CAAC,iBAAiB,EAAE,UAAG,CAAC;IACxB,CAAC,WAAW,EAAE,aAAI,CAAC;IACnB,CAAC,WAAW,EAAE,aAAI,CAAC;IACnB,CAAC,kBAAkB,EAAE,UAAG,CAAC;IACzB,CAAC,kBAAkB,EAAE,YAAG,CAAC;IACzB,CAAC,kBAAkB,EAAE,YAAG,CAAC;IACzB,CAAC,YAAY,EAAE,uBAAS,CAAC;IACzB,CAAC,aAAa,EAAE,uBAAS,CAAC;IAC1B,CAAC,kBAAkB,EAAE,aAAI,CAAC;IAC1B,CAAC,YAAY,EAAE,uBAAS,CAAC;IACzB,CAAC,aAAa,EAAE,uBAAS,CAAC;IAC1B,CAAC,kBAAkB,EAAE,aAAI,CAAC;IAC1B,CAAC,4BAA4B,EAAE,YAAG,CAAC;IACnC,CAAC,aAAa,EAAE,IAAA,4BAAqB,EAAC,iCAAyB,EAAE,CAAC,CAAC,CAAC;CACrE,EACD,CAAC,IAAI,EAAE,EAAE,CAAC,IAAiB,CAC5B,CAAC"}
|
@@ -0,0 +1,36 @@
|
|
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
|
+
const portfolio_core_1 = require("@sonarwatch/portfolio-core");
|
13
|
+
const constants_1 = require("./constants");
|
14
|
+
const solana_1 = require("../../utils/solana");
|
15
|
+
const clients_1 = require("../../utils/clients");
|
16
|
+
const whirlpool_1 = require("./structs/whirlpool");
|
17
|
+
const filters_1 = require("./filters");
|
18
|
+
const executor = (cache) => __awaiter(void 0, void 0, void 0, function* () {
|
19
|
+
const client = (0, clients_1.getClientSolana)();
|
20
|
+
const whirlpoolsInfo = yield (0, solana_1.getParsedProgramAccounts)(client, whirlpool_1.whirlpoolStruct, constants_1.whirlpoolProgram, filters_1.whirlpoolFilters);
|
21
|
+
for (let id = 0; id < whirlpoolsInfo.length; id++) {
|
22
|
+
const whirlpoolInfo = whirlpoolsInfo[id];
|
23
|
+
if (whirlpoolInfo.liquidity.isZero())
|
24
|
+
continue;
|
25
|
+
yield cache.setItem(whirlpoolInfo.pubkey.toString(), whirlpoolInfo, {
|
26
|
+
prefix: constants_1.whirlpoolPrefix,
|
27
|
+
networkId: portfolio_core_1.NetworkId.solana,
|
28
|
+
});
|
29
|
+
}
|
30
|
+
});
|
31
|
+
const job = {
|
32
|
+
id: `${constants_1.platformId}-whirlpools`,
|
33
|
+
executor,
|
34
|
+
};
|
35
|
+
exports.default = job;
|
36
|
+
//# sourceMappingURL=whirlpoolsJob.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"whirlpoolsJob.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/orca/whirlpoolsJob.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,+DAAgF;AAChF,2CAA4E;AAC5E,+CAA8D;AAC9D,iDAAsD;AACtD,mDAAsD;AACtD,uCAA6C;AAE7C,MAAM,QAAQ,GAAgB,CAAO,KAAY,EAAE,EAAE;IACnD,MAAM,MAAM,GAAG,IAAA,yBAAe,GAAE,CAAC;IAEjC,MAAM,cAAc,GAAG,MAAM,IAAA,iCAAwB,EACnD,MAAM,EACN,2BAAe,EACf,4BAAgB,EAChB,0BAAgB,CACjB,CAAC;IACF,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,cAAc,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE;QACjD,MAAM,aAAa,GAAG,cAAc,CAAC,EAAE,CAAC,CAAC;QACzC,IAAI,aAAa,CAAC,SAAS,CAAC,MAAM,EAAE;YAAE,SAAS;QAC/C,MAAM,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,aAAa,EAAE;YAClE,MAAM,EAAE,2BAAe;YACvB,SAAS,EAAE,0BAAS,CAAC,MAAM;SAC5B,CAAC,CAAC;KACJ;AACH,CAAC,CAAA,CAAC;AAEF,MAAM,GAAG,GAAQ;IACf,EAAE,EAAE,GAAG,sBAAU,aAAa;IAC9B,QAAQ;CACT,CAAC;AACF,kBAAe,GAAG,CAAC"}
|