@sonarwatch/portfolio-plugins 0.5.49 → 0.5.51
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 +22 -14
- package/package.json +2 -2
- package/src/plugins/cetus/clmmsFetcher.js +6 -4
- package/src/plugins/cetus/clmmsFetcher.js.map +1 -1
- package/src/plugins/drift/spotPositionsFetcher.js +2 -0
- package/src/plugins/drift/spotPositionsFetcher.js.map +1 -1
- package/src/plugins/mango/collateralFetcher.js +6 -6
- package/src/plugins/mango/collateralFetcher.js.map +1 -1
- package/src/plugins/mango/redeemFetcher.js +4 -0
- package/src/plugins/mango/redeemFetcher.js.map +1 -1
- package/src/plugins/marginfi/fetcherExecutor.js +7 -7
- package/src/plugins/marginfi/fetcherExecutor.js.map +1 -1
- package/src/plugins/orca/constants.d.ts +1 -0
- package/src/plugins/orca/constants.js +2 -1
- package/src/plugins/orca/constants.js.map +1 -1
- package/src/plugins/orca/getWhirlpoolPositions.d.ts +4 -0
- package/src/plugins/orca/getWhirlpoolPositions.js +128 -0
- package/src/plugins/orca/getWhirlpoolPositions.js.map +1 -0
- package/src/plugins/orca/helpers.d.ts +2 -0
- package/src/plugins/orca/helpers.js +6 -1
- package/src/plugins/orca/helpers.js.map +1 -1
- package/src/plugins/orca/index.js +3 -5
- package/src/plugins/orca/index.js.map +1 -1
- package/src/plugins/orders/jupiter/limitFetcher.js +2 -0
- package/src/plugins/orders/jupiter/limitFetcher.js.map +1 -1
- package/src/plugins/raydium/constants.d.ts +1 -1
- package/src/plugins/raydium/constants.js +2 -2
- package/src/plugins/raydium/constants.js.map +1 -1
- package/src/plugins/raydium/getRaydiumCLMMPositions.d.ts +4 -0
- package/src/plugins/raydium/getRaydiumCLMMPositions.js +102 -0
- package/src/plugins/raydium/getRaydiumCLMMPositions.js.map +1 -0
- package/src/plugins/raydium/helpers.d.ts +2 -40
- package/src/plugins/raydium/helpers.js +5 -276
- package/src/plugins/raydium/helpers.js.map +1 -1
- package/src/plugins/raydium/index.js +1 -4
- package/src/plugins/raydium/index.js.map +1 -1
- package/src/plugins/solend/obligationsFetcher.js +8 -2
- package/src/plugins/solend/obligationsFetcher.js.map +1 -1
- package/src/plugins/tensor/tensorFetcher.js +2 -5
- package/src/plugins/tensor/tensorFetcher.js.map +1 -1
- package/src/plugins/thala/stabilityPoolFetcher.js +1 -1
- package/src/plugins/thala/stabilityPoolFetcher.js.map +1 -1
- package/src/plugins/thala/vaultsFetcher.js +6 -4
- package/src/plugins/thala/vaultsFetcher.js.map +1 -1
- package/src/plugins/{orca/clmmPositionsFetcher.d.ts → tokens/fetchers/solana-nfts-underlyings.d.ts} +1 -1
- package/src/plugins/tokens/fetchers/solana-nfts-underlyings.js +69 -0
- package/src/plugins/tokens/fetchers/solana-nfts-underlyings.js.map +1 -0
- package/src/plugins/tokens/index.js +2 -0
- package/src/plugins/tokens/index.js.map +1 -1
- package/src/plugins/turbos/clmmsPositionsFetcher.js +3 -3
- package/src/plugins/turbos/clmmsPositionsFetcher.js.map +1 -1
- package/src/utils/clmm/tokenAmountFromLiquidity.d.ts +3 -3
- package/src/utils/clmm/tokenAmountFromLiquidity.js +4 -4
- package/src/utils/clmm/tokenAmountFromLiquidity.js.map +1 -1
- package/src/plugins/orca/clmmPositionsFetcher.js +0 -140
- package/src/plugins/orca/clmmPositionsFetcher.js.map +0 -1
- package/src/plugins/raydium/clmmPositionsFetcher.d.ts +0 -3
- package/src/plugins/raydium/clmmPositionsFetcher.js +0 -111
- package/src/plugins/raydium/clmmPositionsFetcher.js.map +0 -1
package/CHANGELOG.md
CHANGED
@@ -2,26 +2,34 @@
|
|
2
2
|
|
3
3
|
This file was generated using [@jscutlery/semver](https://github.com/jscutlery/semver).
|
4
4
|
|
5
|
-
## [0.5.
|
5
|
+
## [0.5.51](https://github.com/sonarwatch/portfolio/compare/plugins-0.5.50...plugins-0.5.51) (2023-08-17)
|
6
6
|
|
7
7
|
|
8
8
|
|
9
|
-
## [0.5.
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
## [0.5.47](https://github.com/sonarwatch/portfolio/compare/plugins-0.5.46...plugins-0.5.47) (2023-08-17)
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
## [0.5.46](https://github.com/sonarwatch/portfolio/compare/plugins-0.5.45...plugins-0.5.46) (2023-08-17)
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
## [0.5.45](https://github.com/sonarwatch/portfolio/compare/plugins-0.5.44...plugins-0.5.45) (2023-08-17)
|
9
|
+
## [0.5.50](https://github.com/sonarwatch/portfolio/compare/plugins-0.5.49...plugins-0.5.50) (2023-08-17)
|
22
10
|
|
23
11
|
|
24
12
|
|
13
|
+
## [0.5.49](https://github.com/sonarwatch/portfolio/compare/plugins-0.5.48...plugins-0.5.49) (2023-08-17)
|
14
|
+
|
15
|
+
|
16
|
+
|
17
|
+
## [0.5.48](https://github.com/sonarwatch/portfolio/compare/plugins-0.5.47...plugins-0.5.48) (2023-08-17)
|
18
|
+
|
19
|
+
|
20
|
+
|
21
|
+
## [0.5.47](https://github.com/sonarwatch/portfolio/compare/plugins-0.5.46...plugins-0.5.47) (2023-08-17)
|
22
|
+
|
23
|
+
|
24
|
+
|
25
|
+
## [0.5.46](https://github.com/sonarwatch/portfolio/compare/plugins-0.5.45...plugins-0.5.46) (2023-08-17)
|
26
|
+
|
27
|
+
|
28
|
+
|
29
|
+
## [0.5.45](https://github.com/sonarwatch/portfolio/compare/plugins-0.5.44...plugins-0.5.45) (2023-08-17)
|
30
|
+
|
31
|
+
|
32
|
+
|
25
33
|
## [0.5.44](https://github.com/sonarwatch/portfolio/compare/plugins-0.5.43...plugins-0.5.44) (2023-08-16)
|
26
34
|
|
27
35
|
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@sonarwatch/portfolio-plugins",
|
3
|
-
"version": "0.5.
|
3
|
+
"version": "0.5.51",
|
4
4
|
"type": "commonjs",
|
5
5
|
"generators": "./generators.json",
|
6
6
|
"dependencies": {
|
@@ -32,7 +32,7 @@
|
|
32
32
|
"web3-v1": "npm:web3@^1.5.0"
|
33
33
|
},
|
34
34
|
"peerDependencies": {
|
35
|
-
"@sonarwatch/portfolio-core": "0.5.
|
35
|
+
"@sonarwatch/portfolio-core": "0.5.51"
|
36
36
|
},
|
37
37
|
"main": "./src/index.js",
|
38
38
|
"types": "./src/index.d.ts"
|
@@ -31,7 +31,7 @@ const executor = (owner, cache) => __awaiter(void 0, void 0, void 0, function* (
|
|
31
31
|
},
|
32
32
|
filter: { Package: constants_1.clmmPoolPackageId },
|
33
33
|
});
|
34
|
-
if (!ownerRes.data)
|
34
|
+
if (!ownerRes.data || ownerRes.data.length === 0)
|
35
35
|
return [];
|
36
36
|
const clmmPositions = [];
|
37
37
|
for (let i = 0; i < ownerRes.data.length; i++) {
|
@@ -44,6 +44,8 @@ const executor = (owner, cache) => __awaiter(void 0, void 0, void 0, function* (
|
|
44
44
|
clmmPositions.push(position);
|
45
45
|
}
|
46
46
|
}
|
47
|
+
if (clmmPositions.length === 0)
|
48
|
+
return [];
|
47
49
|
const poolsIds = clmmPositions.map((position) => position.pool);
|
48
50
|
const pools = yield cache.getItems(poolsIds, {
|
49
51
|
prefix: constants_1.clmmPoolsPrefix,
|
@@ -63,15 +65,15 @@ const executor = (owner, cache) => __awaiter(void 0, void 0, void 0, function* (
|
|
63
65
|
const pool = poolsById.get(clmmPosition.pool);
|
64
66
|
if (!pool)
|
65
67
|
continue;
|
66
|
-
const { tokenAmountA, tokenAmountB } = (0, tokenAmountFromLiquidity_1.getTokenAmountsFromLiquidity)(new bignumber_js_1.default(clmmPosition.liquidity)
|
68
|
+
const { tokenAmountA, tokenAmountB } = (0, tokenAmountFromLiquidity_1.getTokenAmountsFromLiquidity)(new bignumber_js_1.default(clmmPosition.liquidity), pool.current_tick_index, clmmPosition.tick_lower_index, clmmPosition.tick_upper_index, 0);
|
67
69
|
const tokenPriceA = yield cache.getTokenPrice(pool.coinTypeA, portfolio_core_1.NetworkId.sui);
|
68
70
|
if (!tokenPriceA)
|
69
71
|
continue;
|
70
|
-
const assetTokenA = (0, tokenPriceToAssetToken_1.default)(pool.coinTypeA, tokenAmountA
|
72
|
+
const assetTokenA = (0, tokenPriceToAssetToken_1.default)(pool.coinTypeA, tokenAmountA.dividedBy(Math.pow(10, tokenPriceA.decimals)).toNumber(), portfolio_core_1.NetworkId.sui, tokenPriceA);
|
71
73
|
const tokenPriceB = yield cache.getTokenPrice(pool.coinTypeB, portfolio_core_1.NetworkId.sui);
|
72
74
|
if (!tokenPriceB)
|
73
75
|
continue;
|
74
|
-
const assetTokenB = (0, tokenPriceToAssetToken_1.default)(pool.coinTypeB, tokenAmountB
|
76
|
+
const assetTokenB = (0, tokenPriceToAssetToken_1.default)(pool.coinTypeB, tokenAmountB.dividedBy(Math.pow(10, tokenPriceB.decimals)).toNumber(), portfolio_core_1.NetworkId.sui, tokenPriceB);
|
75
77
|
if (!assetTokenA ||
|
76
78
|
!assetTokenB ||
|
77
79
|
assetTokenA.value === null ||
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"clmmsFetcher.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/cetus/clmmsFetcher.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,+DAIoC;AACpC,gEAAqC;AAGrC,2CAKqB;AACrB,iDAAmD;AACnD,uCAAoE;AAGpE,qGAA6E;AAC7E,wFAAyF;AAEzF,MAAM,QAAQ,GAAoB,CAAO,KAAa,EAAE,KAAY,EAAE,EAAE;IACtE,MAAM,MAAM,GAAG,IAAA,sBAAY,GAAE,CAAC;IAC9B,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC;QAC5C,KAAK;QACL,OAAO,EAAE;YACP,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,IAAI;YACjB,WAAW,EAAE,IAAI;YACjB,SAAS,EAAE,IAAI;SAChB;QACD,MAAM,EAAE,EAAE,OAAO,EAAE,6BAAiB,EAAE;KACvC,CAAC,CAAC;IACH,IAAI,CAAC,QAAQ,CAAC,IAAI;QAAE,OAAO,EAAE,CAAC;
|
1
|
+
{"version":3,"file":"clmmsFetcher.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/cetus/clmmsFetcher.ts"],"names":[],"mappings":"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"}
|
@@ -67,6 +67,8 @@ const executor = (owner, cache) => __awaiter(void 0, void 0, void 0, function* (
|
|
67
67
|
const marketIndexRef = 0;
|
68
68
|
// Each account has up to 8 SpotPositions
|
69
69
|
for (const spotPosition of userAccount.spotPositions) {
|
70
|
+
if (spotPosition.scaledBalance.isZero())
|
71
|
+
continue;
|
70
72
|
const countForBase = marketIndexRef === undefined ||
|
71
73
|
spotPosition.marketIndex === marketIndexRef;
|
72
74
|
const countForQuote = marketIndexRef === undefined || marketIndexRef === 0;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"spotPositionsFetcher.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/drift/spotPositionsFetcher.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,+DASoC;AACpC,gEAAqC;AAGrC,2CAA0E;AAC1E,qCAA8D;AAC9D,uCAA2C;AAC3C,uCAKmB;AAEnB,+CAA8D;AAC9D,iDAAsD;AACtD,qGAA6E;AAC7E,6EAAqD;AAErD,MAAM,QAAQ,GAAoB,CAAO,KAAa,EAAE,KAAY,EAAE,EAAE;IACtE,MAAM,MAAM,GAAG,IAAA,yBAAe,GAAE,CAAC;IAEjC,MAAM,YAAY,GAAG,MAAM,IAAA,iCAAwB,EACjD,MAAM,EACN,0BAAiB,EACjB,wBAAY,EACZ,IAAA,wBAAc,EAAC,KAAK,CAAC,CACtB,CAAC;IACF,IAAI,CAAC,YAAY;QAAE,OAAO,EAAE,CAAC;IAE7B,MAAM,iBAAiB,GAAgB,IAAI,GAAG,EAAE,CAAC;IACjD,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE;QACtC,KAAK,MAAM,YAAY,IAAI,WAAW,CAAC,aAAa,EAAE;YACpD,iBAAiB,CAAC,GAAG,CAAC,YAAY,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC;SAC5D;KACF;IACD,MAAM,gBAAgB,GAAG,MAAM,KAAK,CAAC,QAAQ,CAC3C,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,EAC7B;QACE,MAAM,EAAE,6BAAiB;QACzB,SAAS,EAAE,0BAAS,CAAC,MAAM;KAC5B,CACF,CAAC;IACF,IAAI,CAAC,gBAAgB;QAAE,OAAO,EAAE,CAAC;
|
1
|
+
{"version":3,"file":"spotPositionsFetcher.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/drift/spotPositionsFetcher.ts"],"names":[],"mappings":"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"}
|
@@ -25,6 +25,8 @@ const runInBatch_1 = __importDefault(require("../../utils/misc/runInBatch"));
|
|
25
25
|
const executor = (owner, cache) => __awaiter(void 0, void 0, void 0, function* () {
|
26
26
|
const client = (0, clients_1.getClientSolana)();
|
27
27
|
const userAccounts = yield (0, solana_1.getParsedProgramAccounts)(client, struct_1.mangoAccountStruct, constants_1.MangoProgram, (0, filters_1.accountsFilter)(owner));
|
28
|
+
if (userAccounts.length === 0)
|
29
|
+
return [];
|
28
30
|
const banks = yield cache.getAllItems({
|
29
31
|
prefix: constants_1.banksPrefix,
|
30
32
|
networkId: portfolio_core_1.NetworkId.solana,
|
@@ -46,16 +48,12 @@ const executor = (owner, cache) => __awaiter(void 0, void 0, void 0, function* (
|
|
46
48
|
return;
|
47
49
|
tokenPrices.set(r.value.address, r.value);
|
48
50
|
});
|
49
|
-
if (!userAccounts)
|
50
|
-
return [];
|
51
51
|
const elements = [];
|
52
52
|
for (let index = 0; index < userAccounts.length; index++) {
|
53
53
|
const userAccount = userAccounts[index];
|
54
|
-
if (!userAccount)
|
55
|
-
continue;
|
56
|
-
if (!userAccount.tokens)
|
57
|
-
continue;
|
58
54
|
const tokenPositions = userAccount.tokens;
|
55
|
+
if (tokenPositions.length === 0)
|
56
|
+
continue;
|
59
57
|
const borrowedAssets = [];
|
60
58
|
const borrowedYields = [];
|
61
59
|
const suppliedAssets = [];
|
@@ -116,6 +114,8 @@ const executor = (owner, cache) => __awaiter(void 0, void 0, void 0, function* (
|
|
116
114
|
]);
|
117
115
|
}
|
118
116
|
}
|
117
|
+
if (suppliedAssets.length === 0 && borrowedAssets.length === 0)
|
118
|
+
return [];
|
119
119
|
const { borrowedValue, collateralRatio, suppliedValue, value } = (0, portfolio_core_1.getElementLendingValues)(suppliedAssets, borrowedAssets, rewardAssets);
|
120
120
|
elements.push({
|
121
121
|
type: portfolio_core_1.PortfolioElementType.borrowlend,
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"collateralFetcher.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/mango/collateralFetcher.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,+DASoC;AACpC,gEAAqC;AAGrC,2CAAoE;AACpE,iDAAsD;AACtD,qCAA8C;AAC9C,uCAA2C;AAC3C,+CAA8D;AAC9D,qGAA6E;AAC7E,uCAAuC;AACvC,6EAAqD;AAGrD,MAAM,QAAQ,GAAoB,CAAO,KAAa,EAAE,KAAY,EAAE,EAAE;IACtE,MAAM,MAAM,GAAG,IAAA,yBAAe,GAAE,CAAC;IACjC,MAAM,YAAY,GAAG,MAAM,IAAA,iCAAwB,EACjD,MAAM,EACN,2BAAkB,EAClB,wBAAY,EACZ,IAAA,wBAAc,EAAC,KAAK,CAAC,CACtB,CAAC;IACF,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,WAAW,CAAe;QAClD,MAAM,EAAE,uBAAW;QACnB,SAAS,EAAE,0BAAS,CAAC,MAAM;KAC5B,CAAC,CAAC;IACH,MAAM,WAAW,GAAgB,IAAI,GAAG,EAAE,CAAC;IAC3C,MAAM,WAAW,GAA8B,IAAI,GAAG,EAAE,CAAC;IACzD,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QACrB,IAAI,CAAC,IAAI;YAAE,OAAO;QAClB,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QACvC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,MAAM,iBAAiB,GAAG,MAAM,IAAA,oBAAU,EACxC,CAAC,GAAG,WAAW,CAAC,CAAC,GAAG,CAClB,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,0BAAS,CAAC,MAAM,CAAC,CACvE,CACF,CAAC;IACF,MAAM,WAAW,GAA4B,IAAI,GAAG,EAAE,CAAC;IACvD,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;QAC9B,IAAI,CAAC,CAAC,MAAM,KAAK,UAAU;YAAE,OAAO;QACpC,IAAI,CAAC,CAAC,CAAC,KAAK;YAAE,OAAO;QACrB,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEH,
|
1
|
+
{"version":3,"file":"collateralFetcher.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/mango/collateralFetcher.ts"],"names":[],"mappings":"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"}
|
@@ -41,6 +41,8 @@ const mints = [
|
|
41
41
|
const executor = (owner, cache) => __awaiter(void 0, void 0, void 0, function* () {
|
42
42
|
const client = (0, clients_1.getClientSolana)();
|
43
43
|
const redeemAccounts = yield (0, solana_1.getParsedProgramAccounts)(client, struct_1.mangoAccountV3Struct, constants_1.redeemProgramId, (0, filters_1.redeemFilter)(owner));
|
44
|
+
if (redeemAccounts.length === 0)
|
45
|
+
return [];
|
44
46
|
const tokenPriceResults = yield (0, runInBatch_1.default)(mints.map((mint) => () => cache.getTokenPrice(mint, portfolio_core_1.NetworkId.solana)));
|
45
47
|
const tokenPrices = new Map();
|
46
48
|
tokenPriceResults.forEach((r) => {
|
@@ -89,6 +91,8 @@ const executor = (owner, cache) => __awaiter(void 0, void 0, void 0, function* (
|
|
89
91
|
}
|
90
92
|
}
|
91
93
|
}
|
94
|
+
if (suppliedAssets.length === 0)
|
95
|
+
return [];
|
92
96
|
const elements = [];
|
93
97
|
const { borrowedValue, collateralRatio, suppliedValue, value } = (0, portfolio_core_1.getElementLendingValues)(suppliedAssets, borrowedAssets, rewardAssets);
|
94
98
|
elements.push({
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"redeemFetcher.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/mango/redeemFetcher.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,+DAQoC;AAGpC,2CAKqB;AACrB,iDAAsD;AACtD,+CAA8D;AAC9D,uCAAyC;AACzC,qCAAqE;AACrE,6EAAqD;AACrD,qGAA6E;AAE7E,MAAM,KAAK,GAAG;IACZ,6CAA6C;IAC7C,8CAA8C;IAC9C,8CAA8C;IAC9C,6CAA6C;IAC7C,8CAA8C;IAC9C,6CAA6C;IAC7C,8CAA8C;IAC9C,kCAAkC;IAClC,8CAA8C;IAC9C,kCAAkC;IAClC,6CAA6C;IAC7C,8CAA8C;IAC9C,6CAA6C;IAC7C,kCAAkC;IAClC,8CAA8C;IAC9C,8CAA8C;CAC/C,CAAC;AAEF,MAAM,QAAQ,GAAoB,CAAO,KAAa,EAAE,KAAY,EAAE,EAAE;IACtE,MAAM,MAAM,GAAG,IAAA,yBAAe,GAAE,CAAC;IACjC,MAAM,cAAc,GAAG,MAAM,IAAA,iCAAwB,EACnD,MAAM,EACN,6BAAoB,EACpB,2BAAe,EACf,IAAA,sBAAY,EAAC,KAAK,CAAC,CACpB,CAAC;IAEF,MAAM,iBAAiB,GAAG,MAAM,IAAA,oBAAU,EACxC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,EAAE,0BAAS,CAAC,MAAM,CAAC,CAAC,CACvE,CAAC;IACF,MAAM,WAAW,GAA4B,IAAI,GAAG,EAAE,CAAC;IACvD,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;QAC9B,IAAI,CAAC,CAAC,MAAM,KAAK,UAAU;YAAE,OAAO;QACpC,IAAI,CAAC,CAAC,CAAC,KAAK;YAAE,OAAO;QACrB,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEH,MAAM,cAAc,GAAqB,EAAE,CAAC;IAC5C,MAAM,cAAc,GAAqB,EAAE,CAAC;IAC5C,MAAM,YAAY,GAAqB,EAAE,CAAC;IAC1C,MAAM,cAAc,GAAc,EAAE,CAAC;IACrC,MAAM,cAAc,GAAc,EAAE,CAAC;IAErC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QAC9C,MAAM,OAAO,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;QAClC,MAAM,UAAU,GAAG,MAAM,KAAK,CAAC,OAAO,CACpC,OAAO,CAAC,UAAU,CAAC,QAAQ,EAAE,EAC7B;YACE,MAAM,EAAE,uBAAW;YACnB,SAAS,EAAE,0BAAS,CAAC,MAAM;SAC5B,CACF,CAAC;QACF,IAAI,CAAC,UAAU;YAAE,SAAS;QAE1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAChD,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YAC3B,IAAI,SAAS,KAAK,kCAAkC;gBAAE,SAAS;YAC/D,MAAM,YAAY,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YAEzC,IAAI,YAAY,CAAC,MAAM,EAAE;gBAAE,SAAS;YAEpC,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAC9C,IAAI,CAAC,UAAU;gBAAE,SAAS;YAE1B,MAAM,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;YAEpD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,OAAO,CAAW,SAAS,EAAE;gBACxD,MAAM,EAAE,0BAAc;gBACtB,SAAS,EAAE,0BAAS,CAAC,MAAM;aAC5B,CAAC,CAAC;YACH,IAAI,CAAC,QAAQ;gBAAE,SAAS;YAExB,MAAM,aAAa,GAAG,YAAY;iBAC/B,YAAY,CAAC,QAAQ,CAAC,YAAY,CAAC;iBACnC,SAAS,CAAC,SAAA,EAAE,EAAI,UAAU,CAAC,QAAQ,CAAA,CAAC;iBACpC,QAAQ,EAAE,CAAC;YAEd,IAAI,aAAa,KAAK,CAAC,EAAE;gBACvB,cAAc,CAAC,IAAI,CACjB,IAAA,gCAAsB,EACpB,SAAS,EACT,aAAa,EACb,0BAAS,CAAC,MAAM,EAChB,UAAU,CACX,CACF,CAAC;aACH;SACF;KACF;IAED,MAAM,QAAQ,GAAuB,EAAE,CAAC;IACxC,MAAM,EAAE,aAAa,EAAE,eAAe,EAAE,aAAa,EAAE,KAAK,EAAE,GAC5D,IAAA,wCAAuB,EAAC,cAAc,EAAE,cAAc,EAAE,YAAY,CAAC,CAAC;IAExE,QAAQ,CAAC,IAAI,CAAC;QACZ,IAAI,EAAE,qCAAoB,CAAC,UAAU;QACrC,SAAS,EAAE,0BAAS,CAAC,MAAM;QAC3B,UAAU,EAAV,sBAAU;QACV,KAAK,EAAE,SAAS;QAChB,KAAK;QACL,IAAI,EAAE;YACJ,cAAc;YACd,aAAa;YACb,cAAc;YACd,cAAc;YACd,aAAa;YACb,cAAc;YACd,eAAe;YACf,YAAY;YACZ,KAAK;SACN;QACD,IAAI,EAAE,WAAW;KAClB,CAAC,CAAC;IAEH,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAA,CAAC;AAEF,MAAM,OAAO,GAAY;IACvB,EAAE,EAAE,GAAG,sBAAU,SAAS;IAC1B,SAAS,EAAE,0BAAS,CAAC,MAAM;IAC3B,QAAQ;CACT,CAAC;AAEF,kBAAe,OAAO,CAAC"}
|
1
|
+
{"version":3,"file":"redeemFetcher.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/mango/redeemFetcher.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,+DAQoC;AAGpC,2CAKqB;AACrB,iDAAsD;AACtD,+CAA8D;AAC9D,uCAAyC;AACzC,qCAAqE;AACrE,6EAAqD;AACrD,qGAA6E;AAE7E,MAAM,KAAK,GAAG;IACZ,6CAA6C;IAC7C,8CAA8C;IAC9C,8CAA8C;IAC9C,6CAA6C;IAC7C,8CAA8C;IAC9C,6CAA6C;IAC7C,8CAA8C;IAC9C,kCAAkC;IAClC,8CAA8C;IAC9C,kCAAkC;IAClC,6CAA6C;IAC7C,8CAA8C;IAC9C,6CAA6C;IAC7C,kCAAkC;IAClC,8CAA8C;IAC9C,8CAA8C;CAC/C,CAAC;AAEF,MAAM,QAAQ,GAAoB,CAAO,KAAa,EAAE,KAAY,EAAE,EAAE;IACtE,MAAM,MAAM,GAAG,IAAA,yBAAe,GAAE,CAAC;IACjC,MAAM,cAAc,GAAG,MAAM,IAAA,iCAAwB,EACnD,MAAM,EACN,6BAAoB,EACpB,2BAAe,EACf,IAAA,sBAAY,EAAC,KAAK,CAAC,CACpB,CAAC;IAEF,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAE3C,MAAM,iBAAiB,GAAG,MAAM,IAAA,oBAAU,EACxC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,EAAE,0BAAS,CAAC,MAAM,CAAC,CAAC,CACvE,CAAC;IACF,MAAM,WAAW,GAA4B,IAAI,GAAG,EAAE,CAAC;IACvD,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;QAC9B,IAAI,CAAC,CAAC,MAAM,KAAK,UAAU;YAAE,OAAO;QACpC,IAAI,CAAC,CAAC,CAAC,KAAK;YAAE,OAAO;QACrB,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEH,MAAM,cAAc,GAAqB,EAAE,CAAC;IAC5C,MAAM,cAAc,GAAqB,EAAE,CAAC;IAC5C,MAAM,YAAY,GAAqB,EAAE,CAAC;IAC1C,MAAM,cAAc,GAAc,EAAE,CAAC;IACrC,MAAM,cAAc,GAAc,EAAE,CAAC;IAErC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QAC9C,MAAM,OAAO,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;QAClC,MAAM,UAAU,GAAG,MAAM,KAAK,CAAC,OAAO,CACpC,OAAO,CAAC,UAAU,CAAC,QAAQ,EAAE,EAC7B;YACE,MAAM,EAAE,uBAAW;YACnB,SAAS,EAAE,0BAAS,CAAC,MAAM;SAC5B,CACF,CAAC;QACF,IAAI,CAAC,UAAU;YAAE,SAAS;QAE1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YAChD,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YAC3B,IAAI,SAAS,KAAK,kCAAkC;gBAAE,SAAS;YAC/D,MAAM,YAAY,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YAEzC,IAAI,YAAY,CAAC,MAAM,EAAE;gBAAE,SAAS;YAEpC,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAC9C,IAAI,CAAC,UAAU;gBAAE,SAAS;YAE1B,MAAM,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;YAEpD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,OAAO,CAAW,SAAS,EAAE;gBACxD,MAAM,EAAE,0BAAc;gBACtB,SAAS,EAAE,0BAAS,CAAC,MAAM;aAC5B,CAAC,CAAC;YACH,IAAI,CAAC,QAAQ;gBAAE,SAAS;YAExB,MAAM,aAAa,GAAG,YAAY;iBAC/B,YAAY,CAAC,QAAQ,CAAC,YAAY,CAAC;iBACnC,SAAS,CAAC,SAAA,EAAE,EAAI,UAAU,CAAC,QAAQ,CAAA,CAAC;iBACpC,QAAQ,EAAE,CAAC;YAEd,IAAI,aAAa,KAAK,CAAC,EAAE;gBACvB,cAAc,CAAC,IAAI,CACjB,IAAA,gCAAsB,EACpB,SAAS,EACT,aAAa,EACb,0BAAS,CAAC,MAAM,EAChB,UAAU,CACX,CACF,CAAC;aACH;SACF;KACF;IAED,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAE3C,MAAM,QAAQ,GAAuB,EAAE,CAAC;IACxC,MAAM,EAAE,aAAa,EAAE,eAAe,EAAE,aAAa,EAAE,KAAK,EAAE,GAC5D,IAAA,wCAAuB,EAAC,cAAc,EAAE,cAAc,EAAE,YAAY,CAAC,CAAC;IAExE,QAAQ,CAAC,IAAI,CAAC;QACZ,IAAI,EAAE,qCAAoB,CAAC,UAAU;QACrC,SAAS,EAAE,0BAAS,CAAC,MAAM;QAC3B,UAAU,EAAV,sBAAU;QACV,KAAK,EAAE,SAAS;QAChB,KAAK;QACL,IAAI,EAAE;YACJ,cAAc;YACd,aAAa;YACb,cAAc;YACd,cAAc;YACd,aAAa;YACb,cAAc;YACd,eAAe;YACf,YAAY;YACZ,KAAK;SACN;QACD,IAAI,EAAE,WAAW;KAClB,CAAC,CAAC;IAEH,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAA,CAAC;AAEF,MAAM,OAAO,GAAY;IACvB,EAAE,EAAE,GAAG,sBAAU,SAAS;IAC1B,SAAS,EAAE,0BAAS,CAAC,MAAM;IAC3B,QAAQ;CACT,CAAC;AAEF,kBAAe,OAAO,CAAC"}
|
@@ -23,12 +23,12 @@ const tokenPriceToAssetToken_1 = __importDefault(require("../../utils/misc/token
|
|
23
23
|
const runInBatch_1 = __importDefault(require("../../utils/misc/runInBatch"));
|
24
24
|
const fetcherExecutor = (owner, cache) => __awaiter(void 0, void 0, void 0, function* () {
|
25
25
|
var _a;
|
26
|
-
const
|
27
|
-
const accounts = yield (0, solana_1.getParsedProgramAccounts)(
|
26
|
+
const client = (0, clients_1.getClientSolana)();
|
27
|
+
const accounts = yield (0, solana_1.getParsedProgramAccounts)(client, MarginfiAccount_1.marginfiAccountStruct, constants_1.MarginfiProgram, (0, filters_1.accountsFilter)(owner));
|
28
28
|
if (accounts.length === 0)
|
29
29
|
return [];
|
30
30
|
const lendingAccountBalances = (_a = accounts.at(0)) === null || _a === void 0 ? void 0 : _a.lendingAccount.balances;
|
31
|
-
if (!lendingAccountBalances)
|
31
|
+
if (!lendingAccountBalances || lendingAccountBalances.length === 0)
|
32
32
|
return [];
|
33
33
|
const borrowedAssets = [];
|
34
34
|
const borrowedYields = [];
|
@@ -40,6 +40,8 @@ const fetcherExecutor = (owner, cache) => __awaiter(void 0, void 0, void 0, func
|
|
40
40
|
prefix: constants_1.prefix,
|
41
41
|
networkId: portfolio_core_1.NetworkId.solana,
|
42
42
|
});
|
43
|
+
if (banksInfo.length === 0)
|
44
|
+
return [];
|
43
45
|
const banksInfoByAddress = new Map();
|
44
46
|
const tokensAddresses = new Set();
|
45
47
|
banksInfo.forEach((bankInfo) => {
|
@@ -93,11 +95,9 @@ const fetcherExecutor = (owner, cache) => __awaiter(void 0, void 0, void 0, func
|
|
93
95
|
suppliedYields.push(bankLendingYields);
|
94
96
|
borrowedYields.push(bankBorrowedYields);
|
95
97
|
}
|
96
|
-
|
97
|
-
if (borrowedAssets.length === 0 &&
|
98
|
-
suppliedAssets.length === 0 &&
|
99
|
-
rewardAssets.length === 0)
|
98
|
+
if (suppliedAssets.length === 0 && borrowedAssets.length === 0)
|
100
99
|
return [];
|
100
|
+
const { borrowedValue, collateralRatio, suppliedValue, value } = (0, portfolio_core_1.getElementLendingValues)(suppliedAssets, borrowedAssets, rewardAssets);
|
101
101
|
const element = {
|
102
102
|
type: portfolio_core_1.PortfolioElementType.borrowlend,
|
103
103
|
networkId: portfolio_core_1.NetworkId.solana,
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"fetcherExecutor.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/marginfi/fetcherExecutor.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,+DASoC;AACpC,2CAAkE;AAClE,+DAAkE;AAClE,uCAAuE;AACvE,uCAA2C;AAE3C,+CAA6E;AAC7E,iDAAsD;AACtD,qGAA6E;AAC7E,6EAAqD;AAIrD,MAAM,eAAe,GAAoB,CACvC,KAAa,EACb,KAAY,EACZ,EAAE;;IACF,MAAM,
|
1
|
+
{"version":3,"file":"fetcherExecutor.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/marginfi/fetcherExecutor.ts"],"names":[],"mappings":"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"}
|
@@ -2,6 +2,7 @@ import { PublicKey } from '@solana/web3.js';
|
|
2
2
|
export declare const platformId = "orca";
|
3
3
|
export declare const aquafarmsPrefix: string;
|
4
4
|
export declare const aquafarmsProgram: PublicKey;
|
5
|
+
export declare const positionsIdentifier = "Orca Whirlpool Position";
|
5
6
|
export declare const whirlpoolPrefix: string;
|
6
7
|
export declare const whirlpoolProgram: PublicKey;
|
7
8
|
export declare const whirlpoolConfig: PublicKey;
|
@@ -1,10 +1,11 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.apiWhirlpool = exports.whirlpoolConfig = exports.whirlpoolProgram = exports.whirlpoolPrefix = exports.aquafarmsProgram = exports.aquafarmsPrefix = exports.platformId = void 0;
|
3
|
+
exports.apiWhirlpool = exports.whirlpoolConfig = exports.whirlpoolProgram = exports.whirlpoolPrefix = exports.positionsIdentifier = exports.aquafarmsProgram = exports.aquafarmsPrefix = exports.platformId = void 0;
|
4
4
|
const web3_js_1 = require("@solana/web3.js");
|
5
5
|
exports.platformId = 'orca';
|
6
6
|
exports.aquafarmsPrefix = `${exports.platformId}-aquafarms`;
|
7
7
|
exports.aquafarmsProgram = new web3_js_1.PublicKey('82yxjeMsvaURa4MbZZ7WZZHfobirZYkH1zF8fmeGtyaQ');
|
8
|
+
exports.positionsIdentifier = 'Orca Whirlpool Position';
|
8
9
|
exports.whirlpoolPrefix = `${exports.platformId}-whirlpool`;
|
9
10
|
exports.whirlpoolProgram = new web3_js_1.PublicKey('whirLbMiicVdio4qvUfM5KAg6Ct8VwpYzGff3uctyCc');
|
10
11
|
exports.whirlpoolConfig = new web3_js_1.PublicKey('2LecshUwdy9xi7meFgHtFJQNSKk4KdTrcpvaB56dP2NQ');
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/orca/constants.ts"],"names":[],"mappings":";;;AAAA,6CAA4C;AAE/B,QAAA,UAAU,GAAG,MAAM,CAAC;AAEpB,QAAA,eAAe,GAAG,GAAG,kBAAU,YAAY,CAAC;AAC5C,QAAA,gBAAgB,GAAG,IAAI,mBAAS,CAC3C,8CAA8C,CAC/C,CAAC;AAEW,QAAA,eAAe,GAAG,GAAG,kBAAU,YAAY,CAAC;AAC5C,QAAA,gBAAgB,GAAG,IAAI,mBAAS,CAC3C,6CAA6C,CAC9C,CAAC;AACW,QAAA,eAAe,GAAG,IAAI,mBAAS,CAC1C,8CAA8C,CAC/C,CAAC;AACW,QAAA,YAAY,GAAG,+CAA+C,CAAC"}
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/orca/constants.ts"],"names":[],"mappings":";;;AAAA,6CAA4C;AAE/B,QAAA,UAAU,GAAG,MAAM,CAAC;AAEpB,QAAA,eAAe,GAAG,GAAG,kBAAU,YAAY,CAAC;AAC5C,QAAA,gBAAgB,GAAG,IAAI,mBAAS,CAC3C,8CAA8C,CAC/C,CAAC;AAEW,QAAA,mBAAmB,GAAG,yBAAyB,CAAC;AAChD,QAAA,eAAe,GAAG,GAAG,kBAAU,YAAY,CAAC;AAC5C,QAAA,gBAAgB,GAAG,IAAI,mBAAS,CAC3C,6CAA6C,CAC9C,CAAC;AACW,QAAA,eAAe,GAAG,IAAI,mBAAS,CAC1C,8CAA8C,CAC/C,CAAC;AACW,QAAA,YAAY,GAAG,+CAA+C,CAAC"}
|
@@ -0,0 +1,4 @@
|
|
1
|
+
import { PortfolioElement } from '@sonarwatch/portfolio-core';
|
2
|
+
import { FindNftsByOwnerOutput } from '@metaplex-foundation/js';
|
3
|
+
import { Cache } from '../../Cache';
|
4
|
+
export declare function getWhirlpoolPositions(cache: Cache, nfts: FindNftsByOwnerOutput): Promise<PortfolioElement[]>;
|
@@ -0,0 +1,128 @@
|
|
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
|
+
exports.getWhirlpoolPositions = void 0;
|
16
|
+
const portfolio_core_1 = require("@sonarwatch/portfolio-core");
|
17
|
+
const web3_js_1 = require("@solana/web3.js");
|
18
|
+
const constants_1 = require("./constants");
|
19
|
+
const clients_1 = require("../../utils/clients");
|
20
|
+
const solana_1 = require("../../utils/solana");
|
21
|
+
const whirlpool_1 = require("./structs/whirlpool");
|
22
|
+
const tokenPriceToAssetToken_1 = __importDefault(require("../../utils/misc/tokenPriceToAssetToken"));
|
23
|
+
const runInBatch_1 = __importDefault(require("../../utils/misc/runInBatch"));
|
24
|
+
const tokenAmountFromLiquidity_1 = require("../../utils/clmm/tokenAmountFromLiquidity");
|
25
|
+
function getWhirlpoolPositions(cache, nfts) {
|
26
|
+
return __awaiter(this, void 0, void 0, function* () {
|
27
|
+
const client = (0, clients_1.getClientSolana)();
|
28
|
+
const positionsProgramAddress = [];
|
29
|
+
nfts.forEach((nft) => {
|
30
|
+
const address = nft.model === 'metadata'
|
31
|
+
? new web3_js_1.PublicKey(nft.mintAddress.toString())
|
32
|
+
: new web3_js_1.PublicKey(nft.mint.address.toString());
|
33
|
+
const positionSeed = [Buffer.from('position'), address.toBuffer()];
|
34
|
+
const [programAddress] = web3_js_1.PublicKey.findProgramAddressSync(positionSeed, constants_1.whirlpoolProgram);
|
35
|
+
positionsProgramAddress.push(programAddress);
|
36
|
+
});
|
37
|
+
if (positionsProgramAddress.length === 0)
|
38
|
+
return [];
|
39
|
+
const positionsInfo = yield (0, solana_1.getParsedMultipleAccountsInfo)(client, whirlpool_1.positionStruct, positionsProgramAddress);
|
40
|
+
if (!positionsInfo || positionsInfo.length === 0)
|
41
|
+
return [];
|
42
|
+
const whirlpoolAddresses = new Set();
|
43
|
+
positionsInfo.forEach((pos) => {
|
44
|
+
if (pos)
|
45
|
+
whirlpoolAddresses.add(pos.whirlpool.toString());
|
46
|
+
});
|
47
|
+
const allWhirlpoolsInfo = yield cache.getItems(Array.from(whirlpoolAddresses), {
|
48
|
+
prefix: constants_1.whirlpoolPrefix,
|
49
|
+
networkId: portfolio_core_1.NetworkId.solana,
|
50
|
+
});
|
51
|
+
const tokensMints = [];
|
52
|
+
const whirlpoolMap = new Map();
|
53
|
+
allWhirlpoolsInfo.forEach((wInfo) => {
|
54
|
+
if (!wInfo)
|
55
|
+
return;
|
56
|
+
if (whirlpoolAddresses.has(wInfo.pubkey.toString())) {
|
57
|
+
whirlpoolMap.set(wInfo.pubkey.toString(), wInfo);
|
58
|
+
tokensMints.push(wInfo.tokenMintA.toString(), wInfo.tokenMintB.toString());
|
59
|
+
}
|
60
|
+
});
|
61
|
+
const tokenPriceResults = yield (0, runInBatch_1.default)(tokensMints.map((mint) => () => cache.getTokenPrice(mint, portfolio_core_1.NetworkId.solana)));
|
62
|
+
const tokenPrices = new Map();
|
63
|
+
tokenPriceResults.forEach((r) => {
|
64
|
+
if (r.status === 'rejected')
|
65
|
+
return;
|
66
|
+
if (!r.value)
|
67
|
+
return;
|
68
|
+
tokenPrices.set(r.value.address, r.value);
|
69
|
+
});
|
70
|
+
if (whirlpoolMap.size === 0)
|
71
|
+
return [];
|
72
|
+
const assets = [];
|
73
|
+
let totalLiquidityValue = 0;
|
74
|
+
for (let index = 0; index < positionsInfo.length; index++) {
|
75
|
+
const positionInfo = positionsInfo[index];
|
76
|
+
if (!positionInfo)
|
77
|
+
continue;
|
78
|
+
const whirlpoolInfo = whirlpoolMap.get(positionInfo.whirlpool.toString());
|
79
|
+
if (!whirlpoolInfo)
|
80
|
+
continue;
|
81
|
+
if (!whirlpoolInfo.tokenMintA ||
|
82
|
+
!whirlpoolInfo.tokenMintB ||
|
83
|
+
!whirlpoolInfo.tickCurrentIndex)
|
84
|
+
continue;
|
85
|
+
const { tokenAmountA, tokenAmountB } = (0, tokenAmountFromLiquidity_1.getTokenAmountsFromLiquidity)(positionInfo.liquidity, whirlpoolInfo.tickCurrentIndex, positionInfo.tickLowerIndex, positionInfo.tickUpperIndex, 0);
|
86
|
+
const tokenPriceA = tokenPrices.get(whirlpoolInfo.tokenMintA.toString());
|
87
|
+
if (!tokenPriceA)
|
88
|
+
continue;
|
89
|
+
const assetTokenA = (0, tokenPriceToAssetToken_1.default)(whirlpoolInfo.tokenMintA.toString(), tokenAmountA.dividedBy(Math.pow(10, tokenPriceA.decimals)).toNumber(), portfolio_core_1.NetworkId.solana, tokenPriceA);
|
90
|
+
const tokenPriceB = tokenPrices.get(whirlpoolInfo.tokenMintB.toString());
|
91
|
+
if (!tokenPriceB)
|
92
|
+
continue;
|
93
|
+
const assetTokenB = (0, tokenPriceToAssetToken_1.default)(whirlpoolInfo.tokenMintB.toString(), tokenAmountB.dividedBy(Math.pow(10, tokenPriceB.decimals)).toNumber(), portfolio_core_1.NetworkId.solana, tokenPriceB);
|
94
|
+
if (!assetTokenA ||
|
95
|
+
!assetTokenB ||
|
96
|
+
assetTokenA.value === null ||
|
97
|
+
assetTokenB.value === null)
|
98
|
+
continue;
|
99
|
+
const value = assetTokenA.value + assetTokenB.value;
|
100
|
+
assets.push({
|
101
|
+
assets: [assetTokenA, assetTokenB],
|
102
|
+
assetsValue: value,
|
103
|
+
rewardAssets: [],
|
104
|
+
rewardAssetsValue: 0,
|
105
|
+
value,
|
106
|
+
yields: [],
|
107
|
+
});
|
108
|
+
totalLiquidityValue += value;
|
109
|
+
}
|
110
|
+
if (assets.length === 0)
|
111
|
+
return [];
|
112
|
+
return [
|
113
|
+
{
|
114
|
+
type: portfolio_core_1.PortfolioElementType.liquidity,
|
115
|
+
networkId: portfolio_core_1.NetworkId.solana,
|
116
|
+
platformId: constants_1.platformId,
|
117
|
+
label: 'LiquidityPool',
|
118
|
+
tags: ['Concentrated'],
|
119
|
+
value: totalLiquidityValue,
|
120
|
+
data: {
|
121
|
+
liquidities: assets,
|
122
|
+
},
|
123
|
+
},
|
124
|
+
];
|
125
|
+
});
|
126
|
+
}
|
127
|
+
exports.getWhirlpoolPositions = getWhirlpoolPositions;
|
128
|
+
//# sourceMappingURL=getWhirlpoolPositions.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"getWhirlpoolPositions.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/orca/getWhirlpoolPositions.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,+DAMoC;AAEpC,6CAA4C;AAC5C,2CAA4E;AAC5E,iDAAsD;AACtD,+CAG4B;AAE5B,mDAAgE;AAChE,qGAA6E;AAC7E,6EAAqD;AACrD,wFAAyF;AAEzF,SAAsB,qBAAqB,CACzC,KAAY,EACZ,IAA2B;;QAE3B,MAAM,MAAM,GAAG,IAAA,yBAAe,GAAE,CAAC;QACjC,MAAM,uBAAuB,GAAgB,EAAE,CAAC;QAEhD,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YACnB,MAAM,OAAO,GACX,GAAG,CAAC,KAAK,KAAK,UAAU;gBACtB,CAAC,CAAC,IAAI,mBAAS,CAAC,GAAG,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;gBAC3C,CAAC,CAAC,IAAI,mBAAS,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;YAEjD,MAAM,YAAY,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;YAEnE,MAAM,CAAC,cAAc,CAAC,GAAG,mBAAS,CAAC,sBAAsB,CACvD,YAAY,EACZ,4BAAgB,CACjB,CAAC;YACF,uBAAuB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;QACH,IAAI,uBAAuB,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QAEpD,MAAM,aAAa,GAAG,MAAM,IAAA,sCAA6B,EACvD,MAAM,EACN,0BAAc,EACd,uBAAuB,CACxB,CAAC;QACF,IAAI,CAAC,aAAa,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QAE5D,MAAM,kBAAkB,GAAgB,IAAI,GAAG,EAAE,CAAC;QAClD,aAAa,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YAC5B,IAAI,GAAG;gBAAE,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC5D,CAAC,CAAC,CAAC;QAEH,MAAM,iBAAiB,GAAG,MAAM,KAAK,CAAC,QAAQ,CAC5C,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,EAC9B;YACE,MAAM,EAAE,2BAAe;YACvB,SAAS,EAAE,0BAAS,CAAC,MAAM;SAC5B,CACF,CAAC;QACF,MAAM,WAAW,GAAa,EAAE,CAAC;QACjC,MAAM,YAAY,GAA2B,IAAI,GAAG,EAAE,CAAC;QACvD,iBAAiB,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;YAClC,IAAI,CAAC,KAAK;gBAAE,OAAO;YACnB,IAAI,kBAAkB,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,EAAE;gBACnD,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,KAAK,CAAC,CAAC;gBACjD,WAAW,CAAC,IAAI,CACd,KAAK,CAAC,UAAU,CAAC,QAAQ,EAAE,EAC3B,KAAK,CAAC,UAAU,CAAC,QAAQ,EAAE,CAC5B,CAAC;aACH;QACH,CAAC,CAAC,CAAC;QAEH,MAAM,iBAAiB,GAAG,MAAM,IAAA,oBAAU,EACxC,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,EAAE,0BAAS,CAAC,MAAM,CAAC,CAAC,CAC7E,CAAC;QACF,MAAM,WAAW,GAA4B,IAAI,GAAG,EAAE,CAAC;QACvD,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;YAC9B,IAAI,CAAC,CAAC,MAAM,KAAK,UAAU;gBAAE,OAAO;YACpC,IAAI,CAAC,CAAC,CAAC,KAAK;gBAAE,OAAO;YACrB,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;QAC5C,CAAC,CAAC,CAAC;QAEH,IAAI,YAAY,CAAC,IAAI,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QAEvC,MAAM,MAAM,GAAyB,EAAE,CAAC;QACxC,IAAI,mBAAmB,GAAG,CAAC,CAAC;QAC5B,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,aAAa,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;YACzD,MAAM,YAAY,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;YAC1C,IAAI,CAAC,YAAY;gBAAE,SAAS;YAE5B,MAAM,aAAa,GAAG,YAAY,CAAC,GAAG,CAAC,YAAY,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC1E,IAAI,CAAC,aAAa;gBAAE,SAAS;YAE7B,IACE,CAAC,aAAa,CAAC,UAAU;gBACzB,CAAC,aAAa,CAAC,UAAU;gBACzB,CAAC,aAAa,CAAC,gBAAgB;gBAE/B,SAAS;YAEX,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,GAAG,IAAA,uDAA4B,EACjE,YAAY,CAAC,SAAS,EACtB,aAAa,CAAC,gBAAgB,EAC9B,YAAY,CAAC,cAAc,EAC3B,YAAY,CAAC,cAAc,EAC3B,CAAC,CACF,CAAC;YAEF,MAAM,WAAW,GAAG,WAAW,CAAC,GAAG,CAAC,aAAa,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;YACzE,IAAI,CAAC,WAAW;gBAAE,SAAS;YAE3B,MAAM,WAAW,GAAG,IAAA,gCAAsB,EACxC,aAAa,CAAC,UAAU,CAAC,QAAQ,EAAE,EACnC,YAAY,CAAC,SAAS,CAAC,SAAA,EAAE,EAAI,WAAW,CAAC,QAAQ,CAAA,CAAC,CAAC,QAAQ,EAAE,EAC7D,0BAAS,CAAC,MAAM,EAChB,WAAW,CACZ,CAAC;YACF,MAAM,WAAW,GAAG,WAAW,CAAC,GAAG,CAAC,aAAa,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;YACzE,IAAI,CAAC,WAAW;gBAAE,SAAS;YAE3B,MAAM,WAAW,GAAG,IAAA,gCAAsB,EACxC,aAAa,CAAC,UAAU,CAAC,QAAQ,EAAE,EACnC,YAAY,CAAC,SAAS,CAAC,SAAA,EAAE,EAAI,WAAW,CAAC,QAAQ,CAAA,CAAC,CAAC,QAAQ,EAAE,EAC7D,0BAAS,CAAC,MAAM,EAChB,WAAW,CACZ,CAAC;YACF,IACE,CAAC,WAAW;gBACZ,CAAC,WAAW;gBACZ,WAAW,CAAC,KAAK,KAAK,IAAI;gBAC1B,WAAW,CAAC,KAAK,KAAK,IAAI;gBAE1B,SAAS;YAEX,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC;YACpD,MAAM,CAAC,IAAI,CAAC;gBACV,MAAM,EAAE,CAAC,WAAW,EAAE,WAAW,CAAC;gBAClC,WAAW,EAAE,KAAK;gBAClB,YAAY,EAAE,EAAE;gBAChB,iBAAiB,EAAE,CAAC;gBACpB,KAAK;gBACL,MAAM,EAAE,EAAE;aACX,CAAC,CAAC;YACH,mBAAmB,IAAI,KAAK,CAAC;SAC9B;QACD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QACnC,OAAO;YACL;gBACE,IAAI,EAAE,qCAAoB,CAAC,SAAS;gBACpC,SAAS,EAAE,0BAAS,CAAC,MAAM;gBAC3B,UAAU,EAAV,sBAAU;gBACV,KAAK,EAAE,eAAe;gBACtB,IAAI,EAAE,CAAC,cAAc,CAAC;gBACtB,KAAK,EAAE,mBAAmB;gBAC1B,IAAI,EAAE;oBACJ,WAAW,EAAE,MAAM;iBACpB;aACF;SACF,CAAC;IACJ,CAAC;CAAA;AA9ID,sDA8IC"}
|
@@ -1,5 +1,7 @@
|
|
1
1
|
import { TokenPrice } from '@sonarwatch/portfolio-core';
|
2
|
+
import { Metadata, Nft, Sft } from '@metaplex-foundation/js';
|
2
3
|
import { Aquafarm } from './structs/aquafarms';
|
4
|
+
export declare function isAnOrcaPosition(nft: Metadata | Nft | Sft): boolean;
|
3
5
|
export declare function getYields(aquafarm: Aquafarm, rewardToken: TokenPrice, baseVaultValue: number): {
|
4
6
|
mint: string;
|
5
7
|
apr: number;
|
@@ -1,7 +1,12 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.getYields = void 0;
|
3
|
+
exports.getYields = exports.isAnOrcaPosition = void 0;
|
4
4
|
const portfolio_core_1 = require("@sonarwatch/portfolio-core");
|
5
|
+
const constants_1 = require("./constants");
|
6
|
+
function isAnOrcaPosition(nft) {
|
7
|
+
return nft && nft.name === constants_1.positionsIdentifier;
|
8
|
+
}
|
9
|
+
exports.isAnOrcaPosition = isAnOrcaPosition;
|
5
10
|
function getYields(aquafarm, rewardToken, baseVaultValue) {
|
6
11
|
const apr = aquafarm.emissionsPerSecondNumerator
|
7
12
|
.div(aquafarm.emissionsPerSecondDenominator)
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/orca/helpers.ts"],"names":[],"mappings":";;;AAAA,+DAAkE;AAGlE,SAAgB,SAAS,CACvB,QAAkB,EAClB,WAAuB,EACvB,cAAsB;IAEtB,MAAM,GAAG,GAAG,QAAQ,CAAC,2BAA2B;SAC7C,GAAG,CAAC,QAAQ,CAAC,6BAA6B,CAAC;SAC3C,GAAG,CAAC,SAAA,EAAE,EAAI,WAAW,CAAC,QAAQ,CAAA,CAAC;SAC/B,KAAK,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,CAAC;SACzB,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC;SACxB,GAAG,CAAC,cAAc,CAAC;SACnB,KAAK,CAAC,GAAG,CAAC;SACV,QAAQ,EAAE,CAAC;IACd,MAAM,MAAM,GAAG;QACb;YACE,IAAI,EAAE,WAAW,CAAC,OAAO;YACzB,GAAG;YACH,GAAG,EAAE,IAAA,yBAAQ,EAAC,GAAG,CAAC;SACnB;KACF,CAAC;IACF,OAAO,MAAM,CAAC;AAChB,CAAC;AArBD,8BAqBC"}
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/orca/helpers.ts"],"names":[],"mappings":";;;AAAA,+DAAkE;AAGlE,2CAAkD;AAElD,SAAgB,gBAAgB,CAAC,GAAyB;IACxD,OAAO,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,+BAAmB,CAAC;AACjD,CAAC;AAFD,4CAEC;AAED,SAAgB,SAAS,CACvB,QAAkB,EAClB,WAAuB,EACvB,cAAsB;IAEtB,MAAM,GAAG,GAAG,QAAQ,CAAC,2BAA2B;SAC7C,GAAG,CAAC,QAAQ,CAAC,6BAA6B,CAAC;SAC3C,GAAG,CAAC,SAAA,EAAE,EAAI,WAAW,CAAC,QAAQ,CAAA,CAAC;SAC/B,KAAK,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,CAAC;SACzB,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC;SACxB,GAAG,CAAC,cAAc,CAAC;SACnB,KAAK,CAAC,GAAG,CAAC;SACV,QAAQ,EAAE,CAAC;IACd,MAAM,MAAM,GAAG;QACb;YACE,IAAI,EAAE,WAAW,CAAC,OAAO;YACzB,GAAG;YACH,GAAG,EAAE,IAAA,yBAAQ,EAAC,GAAG,CAAC;SACnB;KACF,CAAC;IACF,OAAO,MAAM,CAAC;AAChB,CAAC;AArBD,8BAqBC"}
|
@@ -4,10 +4,8 @@ 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 lpTokensJob_1 = __importDefault(require("./lpTokensJob"));
|
7
8
|
const whirlpoolsJob_1 = __importDefault(require("./whirlpoolsJob"));
|
8
|
-
|
9
|
-
exports.
|
10
|
-
exports.fetchers = [
|
11
|
-
// clmmPositionsFetcher
|
12
|
-
];
|
9
|
+
exports.jobs = [whirlpoolsJob_1.default, lpTokensJob_1.default];
|
10
|
+
exports.fetchers = [];
|
13
11
|
//# sourceMappingURL=index.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/orca/index.ts"],"names":[],"mappings":";;;;;;
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/orca/index.ts"],"names":[],"mappings":";;;;;;AAAA,gEAAkC;AAGlC,oEAA2C;AAE9B,QAAA,IAAI,GAAU,CAAC,uBAAY,EAAE,qBAAK,CAAC,CAAC;AACpC,QAAA,QAAQ,GAAc,EAAE,CAAC"}
|
@@ -24,6 +24,8 @@ const platforms_1 = require("../../../platforms");
|
|
24
24
|
const executor = (owner, cache) => __awaiter(void 0, void 0, void 0, function* () {
|
25
25
|
const client = (0, clients_1.getClientSolana)();
|
26
26
|
const limitOrdersAccounts = yield (0, solana_1.getParsedProgramAccounts)(client, struct_1.limitOrderStruct, constants_1.jupiterLimitProgramId, (0, filters_1.jupiterLimitsFilter)(owner));
|
27
|
+
if (limitOrdersAccounts.length === 0)
|
28
|
+
return [];
|
27
29
|
const tokensMints = new Set();
|
28
30
|
for (let i = 0; i < limitOrdersAccounts.length; i += 1) {
|
29
31
|
tokensMints.add(limitOrdersAccounts[i].inputMint);
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"limitFetcher.js","sourceRoot":"","sources":["../../../../../../../packages/plugins/src/plugins/orders/jupiter/limitFetcher.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,+DAKoC;AAKpC,4CAAiE;AACjE,oDAAyD;AACzD,qCAA4C;AAC5C,kDAAiE;AACjE,uCAAgD;AAChD,gFAAwD;AACxD,wGAAgF;AAChF,kDAAqD;AAErD,MAAM,QAAQ,GAAoB,CAAO,KAAa,EAAE,KAAY,EAAE,EAAE;IACtE,MAAM,MAAM,GAAG,IAAA,yBAAe,GAAE,CAAC;IAEjC,MAAM,mBAAmB,GAAG,MAAM,IAAA,iCAAwB,EACxD,MAAM,EACN,yBAAgB,EAChB,iCAAqB,EACrB,IAAA,6BAAmB,EAAC,KAAK,CAAC,CAC3B,CAAC;
|
1
|
+
{"version":3,"file":"limitFetcher.js","sourceRoot":"","sources":["../../../../../../../packages/plugins/src/plugins/orders/jupiter/limitFetcher.ts"],"names":[],"mappings":"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"}
|
@@ -3,4 +3,4 @@ export declare const platformId = "raydium";
|
|
3
3
|
export declare const AMM_PROGRAM_ID_V4: PublicKey;
|
4
4
|
export declare const AMM_PROGRAM_ID_V5: PublicKey;
|
5
5
|
export declare const raydiumProgram: PublicKey;
|
6
|
-
export declare const
|
6
|
+
export declare const positionsIdentifier = "Raydium Concentrated Liquidity";
|
@@ -1,10 +1,10 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.
|
3
|
+
exports.positionsIdentifier = exports.raydiumProgram = exports.AMM_PROGRAM_ID_V5 = exports.AMM_PROGRAM_ID_V4 = exports.platformId = void 0;
|
4
4
|
const web3_js_1 = require("@solana/web3.js");
|
5
5
|
exports.platformId = 'raydium';
|
6
6
|
exports.AMM_PROGRAM_ID_V4 = new web3_js_1.PublicKey('675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8');
|
7
7
|
exports.AMM_PROGRAM_ID_V5 = new web3_js_1.PublicKey('5quBtoiQqxF9Jv6KYKctB59NT3gtJD2Y65kdnB1Uev3h');
|
8
8
|
exports.raydiumProgram = new web3_js_1.PublicKey('CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK');
|
9
|
-
exports.
|
9
|
+
exports.positionsIdentifier = 'Raydium Concentrated Liquidity';
|
10
10
|
//# sourceMappingURL=constants.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/raydium/constants.ts"],"names":[],"mappings":";;;AAAA,6CAA4C;AAE/B,QAAA,UAAU,GAAG,SAAS,CAAC;AAEvB,QAAA,iBAAiB,GAAG,IAAI,mBAAS,CAC5C,8CAA8C,CAC/C,CAAC;AAEW,QAAA,iBAAiB,GAAG,IAAI,mBAAS,CAC5C,8CAA8C,CAC/C,CAAC;AAEW,QAAA,cAAc,GAAG,IAAI,mBAAS,CACzC,8CAA8C,CAC/C,CAAC;AAEW,QAAA,
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/raydium/constants.ts"],"names":[],"mappings":";;;AAAA,6CAA4C;AAE/B,QAAA,UAAU,GAAG,SAAS,CAAC;AAEvB,QAAA,iBAAiB,GAAG,IAAI,mBAAS,CAC5C,8CAA8C,CAC/C,CAAC;AAEW,QAAA,iBAAiB,GAAG,IAAI,mBAAS,CAC5C,8CAA8C,CAC/C,CAAC;AAEW,QAAA,cAAc,GAAG,IAAI,mBAAS,CACzC,8CAA8C,CAC/C,CAAC;AAEW,QAAA,mBAAmB,GAAG,gCAAgC,CAAC"}
|
@@ -0,0 +1,4 @@
|
|
1
|
+
import { PortfolioElement } from '@sonarwatch/portfolio-core';
|
2
|
+
import { FindNftsByOwnerOutput } from '@metaplex-foundation/js';
|
3
|
+
import { Cache } from '../../Cache';
|
4
|
+
export declare function getRaydiumCLMMPositions(cache: Cache, nfts: FindNftsByOwnerOutput): Promise<PortfolioElement[]>;
|