@sonarwatch/portfolio-plugins 0.14.171 → 0.14.172
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 +2321 -2317
- package/README.md +3 -3
- package/package.json +1 -1
- package/src/plugins/balancer/helpers/pools.js +21 -21
- package/src/plugins/goosefx/constants.d.ts +2 -1
- package/src/plugins/goosefx/constants.js +3 -2
- package/src/plugins/goosefx/constants.js.map +1 -1
- package/src/plugins/goosefx/dualPoolFetcher.js +67 -0
- package/src/plugins/goosefx/dualPoolFetcher.js.map +1 -0
- package/src/plugins/goosefx/dualPoolJob.d.ts +3 -0
- package/src/plugins/goosefx/dualPoolJob.js +41 -0
- package/src/plugins/goosefx/dualPoolJob.js.map +1 -0
- package/src/plugins/goosefx/index.js +9 -3
- package/src/plugins/goosefx/index.js.map +1 -1
- package/src/plugins/goosefx/singlePoolFetcher.d.ts +3 -0
- package/src/plugins/goosefx/{poolsFetcher.js → singlePoolFetcher.js} +5 -4
- package/src/plugins/goosefx/singlePoolFetcher.js.map +1 -0
- package/src/plugins/goosefx/structs.d.ts +65 -0
- package/src/plugins/goosefx/structs.js +64 -1
- package/src/plugins/goosefx/structs.js.map +1 -1
- package/src/plugins/stabble/helpers.js +13 -13
- package/src/plugins/stabble/helpers.js.map +1 -1
- package/src/plugins/stabble/stakingFetcher.js +5 -4
- package/src/plugins/stabble/stakingFetcher.js.map +1 -1
- package/src/plugins/sushiswap/helpers.js +24 -24
- package/src/plugins/uniswap-v2/helpers.js +22 -22
- package/src/plugins/zeta/airdropFetcher.js +14 -14
- package/src/utils/sei/constants.js +8 -8
- package/src/utils/sei/getQueryBalanceByOwner.js +4 -4
- package/src/plugins/goosefx/poolsFetcher.js.map +0 -1
- /package/src/plugins/goosefx/{poolsFetcher.d.ts → dualPoolFetcher.d.ts} +0 -0
package/README.md
CHANGED
@@ -1,3 +1,3 @@
|
|
1
|
-
# @sonarwatch/portfolio-plugins
|
2
|
-
|
3
|
-
This library is @sonarwatch/portfolio-plugins
|
1
|
+
# @sonarwatch/portfolio-plugins
|
2
|
+
|
3
|
+
This library is @sonarwatch/portfolio-plugins
|
package/package.json
CHANGED
@@ -36,27 +36,27 @@ exports.getBalancerPoolsV2 = void 0;
|
|
36
36
|
const graphql_request_1 = __importStar(require("graphql-request"));
|
37
37
|
function getBalancerPoolsV2(url) {
|
38
38
|
return __awaiter(this, void 0, void 0, function* () {
|
39
|
-
const query = (0, graphql_request_1.gql) `
|
40
|
-
query pools {
|
41
|
-
pools(
|
42
|
-
first: 1000
|
43
|
-
orderBy: totalLiquidity
|
44
|
-
orderDirection: desc
|
45
|
-
where: { totalLiquidity_gt: "500" }
|
46
|
-
) {
|
47
|
-
id
|
48
|
-
address
|
49
|
-
symbol
|
50
|
-
totalLiquidity
|
51
|
-
totalShares
|
52
|
-
tokens {
|
53
|
-
balance
|
54
|
-
decimals
|
55
|
-
symbol
|
56
|
-
address
|
57
|
-
}
|
58
|
-
}
|
59
|
-
}
|
39
|
+
const query = (0, graphql_request_1.gql) `
|
40
|
+
query pools {
|
41
|
+
pools(
|
42
|
+
first: 1000
|
43
|
+
orderBy: totalLiquidity
|
44
|
+
orderDirection: desc
|
45
|
+
where: { totalLiquidity_gt: "500" }
|
46
|
+
) {
|
47
|
+
id
|
48
|
+
address
|
49
|
+
symbol
|
50
|
+
totalLiquidity
|
51
|
+
totalShares
|
52
|
+
tokens {
|
53
|
+
balance
|
54
|
+
decimals
|
55
|
+
symbol
|
56
|
+
address
|
57
|
+
}
|
58
|
+
}
|
59
|
+
}
|
60
60
|
`;
|
61
61
|
const res = yield (0, graphql_request_1.default)(url, query);
|
62
62
|
const pools = res.pools;
|
@@ -3,5 +3,6 @@
|
|
3
3
|
import { PublicKey } from '@solana/web3.js';
|
4
4
|
export declare const platformId = "goosefx";
|
5
5
|
export declare const gofxMint = "GFX1ZjR2P15tmrSwow6FjyDYcEkoFb4p4gJCpLBjaxHD";
|
6
|
-
export declare const
|
6
|
+
export declare const singlePoolPid: PublicKey;
|
7
|
+
export declare const dualPoolPid: PublicKey;
|
7
8
|
export declare const stakerProgramId: PublicKey;
|
@@ -1,9 +1,10 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.stakerProgramId = exports.
|
3
|
+
exports.stakerProgramId = exports.dualPoolPid = exports.singlePoolPid = exports.gofxMint = exports.platformId = void 0;
|
4
4
|
const web3_js_1 = require("@solana/web3.js");
|
5
5
|
exports.platformId = 'goosefx';
|
6
6
|
exports.gofxMint = 'GFX1ZjR2P15tmrSwow6FjyDYcEkoFb4p4gJCpLBjaxHD';
|
7
|
-
exports.
|
7
|
+
exports.singlePoolPid = new web3_js_1.PublicKey('GFXsSL5sSaDfNFQUYsHekbWBW1TsFdjDYzACh62tEHxn');
|
8
|
+
exports.dualPoolPid = new web3_js_1.PublicKey('GAMMA7meSFWaBXF25oSUgmGRwaW6sCMFLmBNiMSdbHVT');
|
8
9
|
exports.stakerProgramId = new web3_js_1.PublicKey('STKRWxT4irmTthSJydggspWmkc3ovYHx62DHLPVv1f1');
|
9
10
|
//# sourceMappingURL=constants.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/goosefx/constants.ts"],"names":[],"mappings":";;;AAAA,6CAA4C;AAE/B,QAAA,UAAU,GAAG,SAAS,CAAC;AACvB,QAAA,QAAQ,GAAG,8CAA8C,CAAC;AAC1D,QAAA,
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/goosefx/constants.ts"],"names":[],"mappings":";;;AAAA,6CAA4C;AAE/B,QAAA,UAAU,GAAG,SAAS,CAAC;AACvB,QAAA,QAAQ,GAAG,8CAA8C,CAAC;AAC1D,QAAA,aAAa,GAAG,IAAI,mBAAS,CACxC,8CAA8C,CAC/C,CAAC;AAEW,QAAA,WAAW,GAAG,IAAI,mBAAS,CACtC,8CAA8C,CAC/C,CAAC;AAEW,QAAA,eAAe,GAAG,IAAI,mBAAS,CAC1C,6CAA6C,CAC9C,CAAC"}
|
@@ -0,0 +1,67 @@
|
|
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 web3_js_1 = require("@solana/web3.js");
|
14
|
+
const constants_1 = require("./constants");
|
15
|
+
const clients_1 = require("../../utils/clients");
|
16
|
+
const structs_1 = require("./structs");
|
17
|
+
const ParsedGpa_1 = require("../../utils/solana/beets/ParsedGpa");
|
18
|
+
const ElementRegistry_1 = require("../../utils/elementbuilder/ElementRegistry");
|
19
|
+
const executor = (owner, cache) => __awaiter(void 0, void 0, void 0, function* () {
|
20
|
+
const client = (0, clients_1.getClientSolana)();
|
21
|
+
const userLiquidities = yield ParsedGpa_1.ParsedGpa.build(client, structs_1.userPoolLiquidityStruct, constants_1.dualPoolPid)
|
22
|
+
.addFilter('accountDiscriminator', [0, 141, 89, 29, 236, 6, 14, 15])
|
23
|
+
.addFilter('user', new web3_js_1.PublicKey(owner))
|
24
|
+
.addDataSizeFilter(184)
|
25
|
+
.run();
|
26
|
+
if (userLiquidities.length === 0)
|
27
|
+
return [];
|
28
|
+
const cachedPoolStates = yield cache.getItems(userLiquidities.map((liquidity) => liquidity.poolState.toString()), {
|
29
|
+
prefix: constants_1.platformId,
|
30
|
+
networkId: portfolio_core_1.NetworkId.solana,
|
31
|
+
});
|
32
|
+
const registry = new ElementRegistry_1.ElementRegistry(portfolio_core_1.NetworkId.solana, constants_1.platformId);
|
33
|
+
for (const account of userLiquidities) {
|
34
|
+
const poolState = cachedPoolStates.find((pool) => (pool === null || pool === void 0 ? void 0 : pool.pubkey.toString()) === account.poolState.toString());
|
35
|
+
if (!poolState)
|
36
|
+
continue;
|
37
|
+
const liqElement = registry.addElementLiquidity({
|
38
|
+
label: 'LiquidityPool',
|
39
|
+
ref: account.pubkey.toString(),
|
40
|
+
sourceRefs: [{ address: poolState.pubkey.toString(), name: 'Pool' }],
|
41
|
+
link: 'https://app.goosefx.io/gamma',
|
42
|
+
});
|
43
|
+
const liq = liqElement.addLiquidity({});
|
44
|
+
liq.addAsset({
|
45
|
+
address: poolState.token0Mint.toString(),
|
46
|
+
amount: account.token0Deposited
|
47
|
+
.minus(account.token0Withdrawn)
|
48
|
+
.dividedBy(Math.pow(10, poolState.mint0Decimals)),
|
49
|
+
alreadyShifted: true,
|
50
|
+
});
|
51
|
+
liq.addAsset({
|
52
|
+
address: poolState.token1Mint.toString(),
|
53
|
+
amount: account.token1Deposited
|
54
|
+
.minus(account.token1Withdrawn)
|
55
|
+
.dividedBy(Math.pow(10, poolState.mint1Decimals)),
|
56
|
+
alreadyShifted: true,
|
57
|
+
});
|
58
|
+
}
|
59
|
+
return registry.getElements(cache);
|
60
|
+
});
|
61
|
+
const fetcher = {
|
62
|
+
id: `${constants_1.platformId}-dual-pools`,
|
63
|
+
networkId: portfolio_core_1.NetworkId.solana,
|
64
|
+
executor,
|
65
|
+
};
|
66
|
+
exports.default = fetcher;
|
67
|
+
//# sourceMappingURL=dualPoolFetcher.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"dualPoolFetcher.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/goosefx/dualPoolFetcher.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,41 @@
|
|
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 ParsedGpa_1 = require("../../utils/solana/beets/ParsedGpa");
|
15
|
+
const structs_1 = require("./structs");
|
16
|
+
const clients_1 = require("../../utils/clients");
|
17
|
+
const executor = (cache) => __awaiter(void 0, void 0, void 0, function* () {
|
18
|
+
const client = (0, clients_1.getClientSolana)();
|
19
|
+
const poolStates = yield ParsedGpa_1.ParsedGpa.build(client, structs_1.poolStateStruct, constants_1.dualPoolPid)
|
20
|
+
.addFilter('accountDiscriminator', [247, 237, 227, 245, 215, 195, 222, 70])
|
21
|
+
.addDataSizeFilter(637)
|
22
|
+
.run();
|
23
|
+
const items = [];
|
24
|
+
poolStates.forEach((poolState) => {
|
25
|
+
items.push({
|
26
|
+
key: poolState.pubkey.toString(),
|
27
|
+
value: poolState,
|
28
|
+
});
|
29
|
+
});
|
30
|
+
yield cache.setItems(items, {
|
31
|
+
prefix: constants_1.platformId,
|
32
|
+
networkId: portfolio_core_1.NetworkId.solana,
|
33
|
+
});
|
34
|
+
});
|
35
|
+
const job = {
|
36
|
+
id: `${constants_1.platformId}-dual-pools`,
|
37
|
+
executor,
|
38
|
+
labels: ['normal'],
|
39
|
+
};
|
40
|
+
exports.default = job;
|
41
|
+
//# sourceMappingURL=dualPoolJob.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"dualPoolJob.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/goosefx/dualPoolJob.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,+DAAuD;AAGvD,2CAAsD;AACtD,kEAA+D;AAC/D,uCAAuD;AACvD,iDAAsD;AAGtD,MAAM,QAAQ,GAAgB,CAAO,KAAY,EAAE,EAAE;IACnD,MAAM,MAAM,GAAG,IAAA,yBAAe,GAAE,CAAC;IACjC,MAAM,UAAU,GAAG,MAAM,qBAAS,CAAC,KAAK,CAAC,MAAM,EAAE,yBAAe,EAAE,uBAAW,CAAC;SAC3E,SAAS,CAAC,sBAAsB,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;SAC1E,iBAAiB,CAAC,GAAG,CAAC;SACtB,GAAG,EAAE,CAAC;IAET,MAAM,KAAK,GAAuD,EAAE,CAAC;IAErE,UAAU,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE;QAC/B,KAAK,CAAC,IAAI,CAAC;YACT,GAAG,EAAE,SAAS,CAAC,MAAM,CAAC,QAAQ,EAAE;YAChC,KAAK,EAAE,SAAS;SACjB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,MAAM,KAAK,CAAC,QAAQ,CAAC,KAAK,EAAE;QAC1B,MAAM,EAAE,sBAAU;QAClB,SAAS,EAAE,0BAAS,CAAC,MAAM;KAC5B,CAAC,CAAC;AACL,CAAC,CAAA,CAAC;AAEF,MAAM,GAAG,GAAQ;IACf,EAAE,EAAE,GAAG,sBAAU,aAAa;IAC9B,QAAQ;IACR,MAAM,EAAE,CAAC,QAAQ,CAAC;CACnB,CAAC;AAEF,kBAAe,GAAG,CAAC"}
|
@@ -4,8 +4,14 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
4
4
|
};
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
6
6
|
exports.fetchers = exports.jobs = void 0;
|
7
|
-
const
|
7
|
+
const singlePoolFetcher_1 = __importDefault(require("./singlePoolFetcher"));
|
8
8
|
const stakingFetcher_1 = __importDefault(require("./stakingFetcher"));
|
9
|
-
|
10
|
-
|
9
|
+
const dualPoolJob_1 = __importDefault(require("./dualPoolJob"));
|
10
|
+
const dualPoolFetcher_1 = __importDefault(require("./dualPoolFetcher"));
|
11
|
+
exports.jobs = [dualPoolJob_1.default];
|
12
|
+
exports.fetchers = [
|
13
|
+
singlePoolFetcher_1.default,
|
14
|
+
stakingFetcher_1.default,
|
15
|
+
dualPoolFetcher_1.default,
|
16
|
+
];
|
11
17
|
//# sourceMappingURL=index.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/goosefx/index.ts"],"names":[],"mappings":";;;;;;AAEA,
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/goosefx/index.ts"],"names":[],"mappings":";;;;;;AAEA,4EAAmD;AACnD,sEAA8C;AAC9C,gEAAwC;AACxC,wEAAgD;AAEnC,QAAA,IAAI,GAAU,CAAC,qBAAW,CAAC,CAAC;AAC5B,QAAA,QAAQ,GAAc;IACjC,2BAAgB;IAChB,wBAAc;IACd,yBAAe;CAChB,CAAC"}
|
@@ -19,13 +19,12 @@ const solana_1 = require("../../utils/solana");
|
|
19
19
|
const structs_1 = require("./structs");
|
20
20
|
const filters_1 = require("./filters");
|
21
21
|
const tokenPriceToAssetToken_1 = __importDefault(require("../../utils/misc/tokenPriceToAssetToken"));
|
22
|
-
const getTokensPricesMap_1 = __importDefault(require("../../utils/misc/getTokensPricesMap"));
|
23
22
|
const executor = (owner, cache) => __awaiter(void 0, void 0, void 0, function* () {
|
24
23
|
const client = (0, clients_1.getClientSolana)();
|
25
|
-
const accounts = yield (0, solana_1.getParsedProgramAccounts)(client, structs_1.liquidityStruct, constants_1.
|
24
|
+
const accounts = yield (0, solana_1.getParsedProgramAccounts)(client, structs_1.liquidityStruct, constants_1.singlePoolPid, (0, filters_1.liquidityAccountFilter)(owner));
|
26
25
|
if (accounts.length === 0)
|
27
26
|
return [];
|
28
|
-
const tokenPriceById = yield
|
27
|
+
const tokenPriceById = yield cache.getTokenPricesAsMap(accounts.map((account) => account.mint.toString()), portfolio_core_1.NetworkId.solana);
|
29
28
|
const liquidities = [];
|
30
29
|
for (const account of accounts) {
|
31
30
|
if (account.amountDeposited.isZero())
|
@@ -43,6 +42,8 @@ const executor = (owner, cache) => __awaiter(void 0, void 0, void 0, function* (
|
|
43
42
|
rewardAssetsValue: null,
|
44
43
|
value: asset.value,
|
45
44
|
yields: [],
|
45
|
+
ref: account.pubkey.toString(),
|
46
|
+
link: 'https://app.goosefx.io/ssl',
|
46
47
|
});
|
47
48
|
}
|
48
49
|
if (liquidities.length === 0)
|
@@ -64,4 +65,4 @@ const fetcher = {
|
|
64
65
|
executor,
|
65
66
|
};
|
66
67
|
exports.default = fetcher;
|
67
|
-
//# sourceMappingURL=
|
68
|
+
//# sourceMappingURL=singlePoolFetcher.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"singlePoolFetcher.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/goosefx/singlePoolFetcher.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,+DAKoC;AAGpC,2CAAwD;AACxD,iDAAsD;AACtD,+CAA8D;AAC9D,uCAA4C;AAC5C,uCAAmD;AACnD,qGAA6E;AAE7E,MAAM,QAAQ,GAAoB,CAAO,KAAa,EAAE,KAAY,EAAE,EAAE;IACtE,MAAM,MAAM,GAAG,IAAA,yBAAe,GAAE,CAAC;IAEjC,MAAM,QAAQ,GAAG,MAAM,IAAA,iCAAwB,EAC7C,MAAM,EACN,yBAAe,EACf,yBAAa,EACb,IAAA,gCAAsB,EAAC,KAAK,CAAC,CAC9B,CAAC;IAEF,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAErC,MAAM,cAAc,GAAG,MAAM,KAAK,CAAC,mBAAmB,CACpD,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,EAClD,0BAAS,CAAC,MAAM,CACjB,CAAC;IAEF,MAAM,WAAW,GAAyB,EAAE,CAAC;IAC7C,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,IAAI,OAAO,CAAC,eAAe,CAAC,MAAM,EAAE;YAAE,SAAS;QAC/C,MAAM,UAAU,GAAG,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC/D,IAAI,CAAC,UAAU;YAAE,SAAS;QAE1B,MAAM,EAAE,QAAQ,EAAE,GAAG,UAAU,CAAC;QAChC,MAAM,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,SAAS,CAAC,SAAA,EAAE,EAAI,QAAQ,CAAA,CAAC,CAAC,QAAQ,EAAE,CAAC;QAE5E,MAAM,KAAK,GAAG,IAAA,gCAAsB,EAClC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,EACvB,MAAM,EACN,0BAAS,CAAC,MAAM,EAChB,UAAU,CACX,CAAC;QAEF,WAAW,CAAC,IAAI,CAAC;YACf,MAAM,EAAE,CAAC,KAAK,CAAC;YACf,WAAW,EAAE,KAAK,CAAC,KAAK;YACxB,YAAY,EAAE,EAAE;YAChB,iBAAiB,EAAE,IAAI;YACvB,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,MAAM,EAAE,EAAE;YACV,GAAG,EAAE,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE;YAC9B,IAAI,EAAE,4BAA4B;SACnC,CAAC,CAAC;IACL,CAAC;IAED,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAExC,OAAO;QACL;YACE,IAAI,EAAE,qCAAoB,CAAC,SAAS;YACpC,KAAK,EAAE,SAAS;YAChB,SAAS,EAAE,0BAAS,CAAC,MAAM;YAC3B,UAAU,EAAV,sBAAU;YACV,IAAI,EAAE,EAAE,WAAW,EAAE;YACrB,KAAK,EAAE,IAAA,+BAAc,EAAC,WAAW,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;SACvE;KACF,CAAC;AACJ,CAAC,CAAA,CAAC;AAEF,MAAM,OAAO,GAAY;IACvB,EAAE,EAAE,GAAG,sBAAU,QAAQ;IACzB,SAAS,EAAE,0BAAS,CAAC,MAAM;IAC3B,QAAQ;CACT,CAAC;AAEF,kBAAe,OAAO,CAAC"}
|
@@ -33,3 +33,68 @@ export type UserMetadata = {
|
|
33
33
|
unstakingTickets: UnstakingTicket[];
|
34
34
|
};
|
35
35
|
export declare const userMetadataStruct: BeetStruct<UserMetadata, Partial<UserMetadata>>;
|
36
|
+
export type PartnerInfo = {
|
37
|
+
partnerId: BigNumber;
|
38
|
+
lpTokenLinkedWithPartner: BigNumber;
|
39
|
+
cumulativeFeeTotalTimesTvlShareToken0: BigNumber;
|
40
|
+
cumulativeFeeTotalTimesTvlShareToken1: BigNumber;
|
41
|
+
};
|
42
|
+
export declare const partnerInfoStruct: BeetStruct<PartnerInfo, Partial<PartnerInfo>>;
|
43
|
+
export type PoolState = {
|
44
|
+
accountDiscriminator: number[];
|
45
|
+
ammConfig: PublicKey;
|
46
|
+
poolCreator: PublicKey;
|
47
|
+
token0Vault: PublicKey;
|
48
|
+
token1Vault: PublicKey;
|
49
|
+
token0Mint: PublicKey;
|
50
|
+
token1Mint: PublicKey;
|
51
|
+
padding: number[];
|
52
|
+
token0Program: PublicKey;
|
53
|
+
token1Program: PublicKey;
|
54
|
+
observationKey: PublicKey;
|
55
|
+
authBump: number;
|
56
|
+
status: number;
|
57
|
+
padding2: number;
|
58
|
+
mint0Decimals: number;
|
59
|
+
mint1Decimals: number;
|
60
|
+
lpSupply: BigNumber;
|
61
|
+
protocolFeesToken0: BigNumber;
|
62
|
+
protocolFeesToken1: BigNumber;
|
63
|
+
fundFeesToken0: BigNumber;
|
64
|
+
fundFeesToken1: BigNumber;
|
65
|
+
openTime: BigNumber;
|
66
|
+
recentEpoch: BigNumber;
|
67
|
+
cumulativeTradeFeesToken0: BigNumber;
|
68
|
+
cumulativeTradeFeesToken1: BigNumber;
|
69
|
+
cumulativeVolumeToken0: BigNumber;
|
70
|
+
cumulativeVolumeToken1: BigNumber;
|
71
|
+
latestDynamicFeeRate: BigNumber;
|
72
|
+
maxTradeFeeRate: BigNumber;
|
73
|
+
volatilityFactor: BigNumber;
|
74
|
+
token0VaultAmount: BigNumber;
|
75
|
+
token1VaultAmount: BigNumber;
|
76
|
+
maxSharedToken0: BigNumber;
|
77
|
+
maxSharedToken1: BigNumber;
|
78
|
+
partners: PartnerInfo[];
|
79
|
+
token0AmountInKamino: BigNumber;
|
80
|
+
token1AmountInKamino: BigNumber;
|
81
|
+
withdrawnKaminoProfitToken0: BigNumber;
|
82
|
+
withdrawnKaminoProfitToken1: BigNumber;
|
83
|
+
};
|
84
|
+
export declare const poolStateStruct: BeetStruct<PoolState, Partial<PoolState>>;
|
85
|
+
export declare enum PartnerType {
|
86
|
+
AssetDash = 0
|
87
|
+
}
|
88
|
+
export type UserPoolLiquidity = {
|
89
|
+
accountDiscriminator: number[];
|
90
|
+
user: PublicKey;
|
91
|
+
poolState: PublicKey;
|
92
|
+
token0Deposited: BigNumber;
|
93
|
+
token1Deposited: BigNumber;
|
94
|
+
token0Withdrawn: BigNumber;
|
95
|
+
token1Withdrawn: BigNumber;
|
96
|
+
lpTokensOwned: BigNumber;
|
97
|
+
partner: PartnerType;
|
98
|
+
padding: number[];
|
99
|
+
};
|
100
|
+
export declare const userPoolLiquidityStruct: BeetStruct<UserPoolLiquidity, Partial<UserPoolLiquidity>>;
|
@@ -1,6 +1,6 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.userMetadataStruct = exports.unstakingTicketStruct = exports.liquidityStruct = void 0;
|
3
|
+
exports.userPoolLiquidityStruct = exports.PartnerType = exports.poolStateStruct = exports.partnerInfoStruct = exports.userMetadataStruct = exports.unstakingTicketStruct = exports.liquidityStruct = void 0;
|
4
4
|
const beet_1 = require("@metaplex-foundation/beet");
|
5
5
|
const beet_solana_1 = require("@metaplex-foundation/beet-solana");
|
6
6
|
const solana_1 = require("../../utils/solana");
|
@@ -30,4 +30,67 @@ exports.userMetadataStruct = new beet_1.BeetStruct([
|
|
30
30
|
['totalEarned', solana_1.u64],
|
31
31
|
['unstakingTickets', (0, beet_1.uniformFixedSizeArray)(exports.unstakingTicketStruct, 64)],
|
32
32
|
], (args) => args);
|
33
|
+
exports.partnerInfoStruct = new beet_1.BeetStruct([
|
34
|
+
['partnerId', solana_1.u64],
|
35
|
+
['lpTokenLinkedWithPartner', solana_1.u64],
|
36
|
+
['cumulativeFeeTotalTimesTvlShareToken0', solana_1.u64],
|
37
|
+
['cumulativeFeeTotalTimesTvlShareToken1', solana_1.u64],
|
38
|
+
], (args) => args);
|
39
|
+
exports.poolStateStruct = new beet_1.BeetStruct([
|
40
|
+
['accountDiscriminator', (0, beet_1.uniformFixedSizeArray)(beet_1.u8, 8)],
|
41
|
+
['ammConfig', beet_solana_1.publicKey],
|
42
|
+
['poolCreator', beet_solana_1.publicKey],
|
43
|
+
['token0Vault', beet_solana_1.publicKey],
|
44
|
+
['token1Vault', beet_solana_1.publicKey],
|
45
|
+
['padding', (0, beet_1.uniformFixedSizeArray)(beet_1.u8, 32)],
|
46
|
+
['token0Mint', beet_solana_1.publicKey],
|
47
|
+
['token1Mint', beet_solana_1.publicKey],
|
48
|
+
['token0Program', beet_solana_1.publicKey],
|
49
|
+
['token1Program', beet_solana_1.publicKey],
|
50
|
+
['observationKey', beet_solana_1.publicKey],
|
51
|
+
['authBump', beet_1.u8],
|
52
|
+
['status', beet_1.u8],
|
53
|
+
['padding2', beet_1.u8],
|
54
|
+
['mint0Decimals', beet_1.u8],
|
55
|
+
['mint1Decimals', beet_1.u8],
|
56
|
+
['lpSupply', solana_1.u64],
|
57
|
+
['protocolFeesToken0', solana_1.u64],
|
58
|
+
['protocolFeesToken1', solana_1.u64],
|
59
|
+
['fundFeesToken0', solana_1.u64],
|
60
|
+
['fundFeesToken1', solana_1.u64],
|
61
|
+
['openTime', solana_1.u64],
|
62
|
+
['recentEpoch', solana_1.u64],
|
63
|
+
['cumulativeTradeFeesToken0', solana_1.u128],
|
64
|
+
['cumulativeTradeFeesToken1', solana_1.u128],
|
65
|
+
['cumulativeVolumeToken0', solana_1.u128],
|
66
|
+
['cumulativeVolumeToken1', solana_1.u128],
|
67
|
+
['latestDynamicFeeRate', solana_1.u64],
|
68
|
+
['maxTradeFeeRate', solana_1.u64],
|
69
|
+
['volatilityFactor', solana_1.u64],
|
70
|
+
['token0VaultAmount', solana_1.u64],
|
71
|
+
['token1VaultAmount', solana_1.u64],
|
72
|
+
['maxSharedToken0', solana_1.u64],
|
73
|
+
['maxSharedToken1', solana_1.u64],
|
74
|
+
['partners', (0, beet_1.uniformFixedSizeArray)(exports.partnerInfoStruct, 1)],
|
75
|
+
['token0AmountInKamino', solana_1.u64],
|
76
|
+
['token1AmountInKamino', solana_1.u64],
|
77
|
+
['withdrawnKaminoProfitToken0', solana_1.u64],
|
78
|
+
['withdrawnKaminoProfitToken1', solana_1.u64],
|
79
|
+
], (args) => args);
|
80
|
+
var PartnerType;
|
81
|
+
(function (PartnerType) {
|
82
|
+
PartnerType[PartnerType["AssetDash"] = 0] = "AssetDash";
|
83
|
+
})(PartnerType || (exports.PartnerType = PartnerType = {})); // Enum type for PartnerType
|
84
|
+
exports.userPoolLiquidityStruct = new beet_1.BeetStruct([
|
85
|
+
['accountDiscriminator', (0, beet_1.uniformFixedSizeArray)(beet_1.u8, 8)],
|
86
|
+
['user', beet_solana_1.publicKey],
|
87
|
+
['poolState', beet_solana_1.publicKey],
|
88
|
+
['token0Deposited', solana_1.u128],
|
89
|
+
['token1Deposited', solana_1.u128],
|
90
|
+
['token0Withdrawn', solana_1.u128],
|
91
|
+
['token1Withdrawn', solana_1.u128],
|
92
|
+
['lpTokensOwned', solana_1.u128],
|
93
|
+
['partner', beet_1.u8], // Optional enum
|
94
|
+
['padding', (0, beet_1.uniformFixedSizeArray)(beet_1.u8, 23)],
|
95
|
+
], (args) => args);
|
33
96
|
//# sourceMappingURL=structs.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"structs.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/goosefx/structs.ts"],"names":[],"mappings":";;;AAAA,oDAImC;AACnC,kEAA6D;AAG7D,+
|
1
|
+
{"version":3,"file":"structs.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/goosefx/structs.ts"],"names":[],"mappings":"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"}
|
@@ -8,10 +8,9 @@ const bignumber_js_1 = __importDefault(require("bignumber.js"));
|
|
8
8
|
function getRewards(rewarder, pool, miner) {
|
9
9
|
const currentTime = Math.trunc(new Date().getTime() / 1000);
|
10
10
|
const lastUpdatedTime = rewarder.lastUpdatedAt.toNumber();
|
11
|
-
let {
|
11
|
+
let { rewardsPerWeight } = rewarder;
|
12
12
|
if (currentTime > lastUpdatedTime) {
|
13
13
|
const elapsedTime = currentTime - lastUpdatedTime;
|
14
|
-
let { rewardsPerWeight } = rewarder;
|
15
14
|
if (rewarder.totalWeights.isGreaterThan(new bignumber_js_1.default(0))) {
|
16
15
|
rewardsPerWeight = rewarder.totalRewards
|
17
16
|
.times(new bignumber_js_1.default(elapsedTime))
|
@@ -20,17 +19,18 @@ function getRewards(rewarder, pool, miner) {
|
|
20
19
|
.div(rewarder.totalWeights)
|
21
20
|
.plus(rewarder.rewardsPerWeight);
|
22
21
|
}
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
22
|
+
}
|
23
|
+
let { rewardsPerAmount } = pool;
|
24
|
+
if (pool.totalAmount.isGreaterThan(new bignumber_js_1.default(0))) {
|
25
|
+
rewardsPerAmount = rewardsPerWeight
|
26
|
+
.times(pool.totalWeights)
|
27
|
+
.div(new bignumber_js_1.default(1000000000))
|
28
|
+
.plus(pool.totalRewardsCredit)
|
29
|
+
.minus(pool.totalRewardsDebt)
|
30
|
+
.minus(pool.totalRewardsDistributed)
|
31
|
+
.times(new bignumber_js_1.default(1000000000))
|
32
|
+
.div(pool.totalAmount)
|
33
|
+
.plus(pool.rewardsPerAmount);
|
34
34
|
}
|
35
35
|
return rewardsPerAmount
|
36
36
|
.times(miner.amount)
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/stabble/helpers.ts"],"names":[],"mappings":";;;;;;AAAA,gEAAqC;AAGrC,SAAgB,UAAU,CACxB,QAAkB,EAClB,IAAgB,EAChB,KAAY;IAEZ,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;IAC5D,MAAM,eAAe,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;IAE1D,IAAI,EAAE,gBAAgB,EAAE,GAAG,
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/stabble/helpers.ts"],"names":[],"mappings":";;;;;;AAAA,gEAAqC;AAGrC,SAAgB,UAAU,CACxB,QAAkB,EAClB,IAAgB,EAChB,KAAY;IAEZ,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;IAC5D,MAAM,eAAe,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;IAE1D,IAAI,EAAE,gBAAgB,EAAE,GAAG,QAAQ,CAAC;IAEpC,IAAI,WAAW,GAAG,eAAe,EAAE,CAAC;QAClC,MAAM,WAAW,GAAG,WAAW,GAAG,eAAe,CAAC;QAElD,IAAI,QAAQ,CAAC,YAAY,CAAC,aAAa,CAAC,IAAI,sBAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC1D,gBAAgB,GAAG,QAAQ,CAAC,YAAY;iBACrC,KAAK,CAAC,IAAI,sBAAS,CAAC,WAAW,CAAC,CAAC;iBACjC,GAAG,CAAC,QAAQ,CAAC,aAAa,CAAC;iBAC3B,KAAK,CAAC,IAAI,sBAAS,CAAC,UAAU,CAAC,CAAC;iBAChC,GAAG,CAAC,QAAQ,CAAC,YAAY,CAAC;iBAC1B,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;QACrC,CAAC;IACH,CAAC;IAED,IAAI,EAAE,gBAAgB,EAAE,GAAG,IAAI,CAAC;IAEhC,IAAI,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,IAAI,sBAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACrD,gBAAgB,GAAG,gBAAgB;aAChC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC;aACxB,GAAG,CAAC,IAAI,sBAAS,CAAC,UAAU,CAAC,CAAC;aAC9B,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC;aAC7B,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC;aAC5B,KAAK,CAAC,IAAI,CAAC,uBAAuB,CAAC;aACnC,KAAK,CAAC,IAAI,sBAAS,CAAC,UAAU,CAAC,CAAC;aAChC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC;aACrB,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IACjC,CAAC;IAED,OAAO,gBAAgB;SACpB,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC;SACnB,GAAG,CAAC,IAAI,sBAAS,CAAC,UAAU,CAAC,CAAC;SAC9B,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC;SACzB,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC;SACxB,KAAK,CAAC,KAAK,CAAC,cAAc,CAAC;SAC3B,SAAS,CAAC,SAAA,EAAE,EAAI,QAAQ,CAAC,QAAQ,CAAA,CAAC,CAAC;AACxC,CAAC;AA5CD,gCA4CC"}
|
@@ -43,10 +43,10 @@ const executor = (owner, cache) => __awaiter(void 0, void 0, void 0, function* (
|
|
43
43
|
.flat()),
|
44
44
|
]);
|
45
45
|
const registry = new ElementRegistry_1.ElementRegistry(portfolio_core_1.NetworkId.solana, constants_1.platformId);
|
46
|
-
const element = registry.addElementLiquidity({
|
47
|
-
label: 'Farming',
|
48
|
-
});
|
49
46
|
for (let i = 0; i < minerAccounts.length; i += 1) {
|
47
|
+
const element = registry.addElementLiquidity({
|
48
|
+
label: 'Farming',
|
49
|
+
});
|
50
50
|
const mainMiner = minerAccounts[i];
|
51
51
|
// If the beneficiary is not the authority, it means it's a derived miner for additional rewards
|
52
52
|
if (mainMiner.beneficiary.toString() !== mainMiner.authority.toString())
|
@@ -83,8 +83,9 @@ const executor = (owner, cache) => __awaiter(void 0, void 0, void 0, function* (
|
|
83
83
|
if (!nextRewarder)
|
84
84
|
return;
|
85
85
|
liquidityElement.addRewardAsset({
|
86
|
-
address:
|
86
|
+
address: nextRewarder.mint,
|
87
87
|
amount: (0, helpers_1.getRewards)(nextRewarder, pool, miner),
|
88
|
+
alreadyShifted: true,
|
88
89
|
});
|
89
90
|
});
|
90
91
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"stakingFetcher.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/stabble/stakingFetcher.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,+DAAuD;AACvD,6CAA4C;AAE5C,2CAAqD;AACrD,iDAAsD;AAEtD,gFAA6E;AAC7E,kEAA+D;AAC/D,uCAA0E;AAE1E,+CAAmE;AACnE,uCAAuC;AAEvC,MAAM,QAAQ,GAAoB,CAAO,KAAa,EAAE,KAAY,EAAE,EAAE;IACtE,MAAM,UAAU,GAAG,IAAA,yBAAe,GAAE,CAAC;IAErC,MAAM,aAAa,GAAG,MAAM,qBAAS,CAAC,KAAK,CACzC,UAAU,EACV,qBAAW,EACX,sBAAU,CACX;SACE,SAAS,CAAC,sBAAsB,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;SACzE,SAAS,CAAC,aAAa,EAAE,IAAI,mBAAS,CAAC,KAAK,CAAC,CAAC;SAC9C,iBAAiB,CAAC,GAAG,CAAC;SACtB,GAAG,EAAE,CAAC;IACT,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAE1C,MAAM,SAAS,GAAG,MAAM,KAAK,CAAC,QAAQ,CACpC,aAAa,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,EACnD;QACE,MAAM,EAAE,sBAAU;QAClB,SAAS,EAAE,0BAAS,CAAC,MAAM;KAC5B,CACF,CAAC;IACF,IAAI,CAAC,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;IAE/D,MAAM,CAAC,eAAe,EAAE,gBAAgB,EAAE,iBAAiB,CAAC,GAC1D,MAAM,OAAO,CAAC,GAAG,CAAC;QAChB,KAAK,CAAC,mBAAmB,CACvB,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,EACvD,0BAAS,CAAC,MAAM,CACjB;QACD,IAAA,sCAA6B,EAC3B,UAAU,EACV,wBAAc,EACd,SAAS;aACN,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,mBAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;aACzD,IAAI,EAAE,CACV;QACD,IAAA,sCAA6B,EAC3B,UAAU,EACV,0BAAgB,EAChB,SAAS;aACN,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,mBAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;aACxD,IAAI,EAAE,CACV;KACF,CAAC,CAAC;IAEL,MAAM,QAAQ,GAAG,IAAI,iCAAe,CAAC,0BAAS,CAAC,MAAM,EAAE,sBAAU,CAAC,CAAC;
|
1
|
+
{"version":3,"file":"stakingFetcher.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/stabble/stakingFetcher.ts"],"names":[],"mappings":"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"}
|
@@ -54,30 +54,30 @@ function sushiV3PairToUniV2(pair) {
|
|
54
54
|
}
|
55
55
|
function getV3PairsAddresses(url, length = 300) {
|
56
56
|
return __awaiter(this, void 0, void 0, function* () {
|
57
|
-
const query = (0, graphql_request_1.gql) `
|
58
|
-
{
|
59
|
-
pools(
|
60
|
-
orderBy: totalValueLockedUSD
|
61
|
-
first: ${length}
|
62
|
-
orderDirection: desc
|
63
|
-
where: { volumeUSD_not: "0", liquidity_not: "0" }
|
64
|
-
) {
|
65
|
-
id
|
66
|
-
token0Price
|
67
|
-
token1Price
|
68
|
-
liquidity
|
69
|
-
token0 {
|
70
|
-
id
|
71
|
-
totalSupply
|
72
|
-
decimals
|
73
|
-
}
|
74
|
-
token1 {
|
75
|
-
id
|
76
|
-
totalSupply
|
77
|
-
decimals
|
78
|
-
}
|
79
|
-
}
|
80
|
-
}
|
57
|
+
const query = (0, graphql_request_1.gql) `
|
58
|
+
{
|
59
|
+
pools(
|
60
|
+
orderBy: totalValueLockedUSD
|
61
|
+
first: ${length}
|
62
|
+
orderDirection: desc
|
63
|
+
where: { volumeUSD_not: "0", liquidity_not: "0" }
|
64
|
+
) {
|
65
|
+
id
|
66
|
+
token0Price
|
67
|
+
token1Price
|
68
|
+
liquidity
|
69
|
+
token0 {
|
70
|
+
id
|
71
|
+
totalSupply
|
72
|
+
decimals
|
73
|
+
}
|
74
|
+
token1 {
|
75
|
+
id
|
76
|
+
totalSupply
|
77
|
+
decimals
|
78
|
+
}
|
79
|
+
}
|
80
|
+
}
|
81
81
|
`;
|
82
82
|
const res = yield (0, graphql_request_1.default)(url, query);
|
83
83
|
const pools = res.pools;
|