@sonarwatch/portfolio-plugins 0.7.1 → 0.7.3
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 +21 -13
- package/package.json +3 -2
- package/src/index.d.ts +2 -0
- package/src/index.js +8 -1
- package/src/index.js.map +1 -1
- package/src/plugins/cetus/clmmsFetcher.js +1 -1
- package/src/plugins/cetus/clmmsFetcher.js.map +1 -1
- package/src/plugins/kamino/constants.d.ts +5 -0
- package/src/plugins/kamino/constants.js +12 -0
- package/src/plugins/kamino/constants.js.map +1 -0
- package/src/plugins/kamino/helpers.d.ts +11 -0
- package/src/plugins/kamino/helpers.js +73 -0
- package/src/plugins/kamino/helpers.js.map +1 -0
- package/src/plugins/kamino/index.d.ts +6 -0
- package/src/plugins/kamino/index.js +12 -0
- package/src/plugins/kamino/index.js.map +1 -0
- package/src/plugins/kamino/poolsJob.d.ts +3 -0
- package/src/plugins/kamino/poolsJob.js +117 -0
- package/src/plugins/kamino/poolsJob.js.map +1 -0
- package/src/plugins/kamino/structs.d.ts +176 -0
- package/src/plugins/kamino/structs.js +163 -0
- package/src/plugins/kamino/structs.js.map +1 -0
- package/src/plugins/mango/struct.js +1 -0
- package/src/plugins/mango/struct.js.map +1 -1
- package/src/plugins/marginfi/structs/Bank.js +1 -0
- package/src/plugins/marginfi/structs/Bank.js.map +1 -1
- package/src/plugins/orca/getWhirlpoolPositions.js +1 -1
- package/src/plugins/orca/getWhirlpoolPositions.js.map +1 -1
- package/src/plugins/orca/helpers.d.ts +10 -0
- package/src/plugins/orca/helpers.js +193 -1
- package/src/plugins/orca/helpers.js.map +1 -1
- package/src/plugins/orders/clobs-solana/MarketJobExecutorGenerator.js +2 -2
- package/src/plugins/orders/clobs-solana/MarketJobExecutorGenerator.js.map +1 -1
- package/src/plugins/orders/clobs-solana/filters.d.ts +1 -2
- package/src/plugins/orders/clobs-solana/filters.js +1 -7
- package/src/plugins/orders/clobs-solana/filters.js.map +1 -1
- package/src/plugins/raydium/getRaydiumCLMMPositions.js +1 -1
- package/src/plugins/raydium/getRaydiumCLMMPositions.js.map +1 -1
- package/src/plugins/raydium/helpers.d.ts +7 -0
- package/src/plugins/raydium/helpers.js +158 -1
- package/src/plugins/raydium/helpers.js.map +1 -1
- package/src/plugins/raydium/structs/clmms.js +2 -2
- package/src/plugins/raydium/structs/clmms.js.map +1 -1
- package/src/plugins/tokens/constants.d.ts +0 -1
- package/src/plugins/tokens/constants.js +1 -2
- package/src/plugins/tokens/constants.js.map +1 -1
- package/src/plugins/tokens/fetchers/sui-nfts.js +48 -1
- package/src/plugins/tokens/fetchers/sui-nfts.js.map +1 -1
- package/src/plugins/tokens/helpers.js +1 -1
- package/src/plugins/tokens/helpers.js.map +1 -1
- package/src/plugins/tokens/types.d.ts +12 -0
- package/src/plugins/turbos/clmmsPositionsFetcher.js +1 -1
- package/src/plugins/turbos/clmmsPositionsFetcher.js.map +1 -1
- package/src/utils/clients/constants.js +1 -2
- package/src/utils/clients/constants.js.map +1 -1
- package/src/utils/clients/getEvmEthersClient.d.ts +3 -0
- package/src/utils/clients/getEvmEthersClient.js +18 -0
- package/src/utils/clients/getEvmEthersClient.js.map +1 -0
- package/src/utils/clients/index.d.ts +1 -0
- package/src/utils/clients/index.js +3 -1
- package/src/utils/clients/index.js.map +1 -1
- package/src/utils/clmm/tokenAmountFromLiquidity.d.ts +1 -1
- package/src/utils/clmm/tokenAmountFromLiquidity.js.map +1 -1
- package/src/utils/misc/computeAndStoreTokenPrice.js +1 -1
- package/src/utils/misc/computeAndStoreTokenPrice.js.map +1 -1
- package/src/utils/misc/getDecimalsForToken.js +8 -0
- package/src/utils/misc/getDecimalsForToken.js.map +1 -1
- package/src/utils/name-service/avalanche.d.ts +3 -0
- package/src/utils/name-service/avalanche.js +69 -0
- package/src/utils/name-service/avalanche.js.map +1 -0
- package/src/utils/name-service/ethereum.d.ts +3 -0
- package/src/utils/name-service/ethereum.js +42 -0
- package/src/utils/name-service/ethereum.js.map +1 -0
- package/src/utils/name-service/evm.d.ts +2 -0
- package/src/utils/name-service/evm.js +32 -0
- package/src/utils/name-service/evm.js.map +1 -0
- package/src/utils/name-service/getNames.d.ts +3 -0
- package/src/utils/name-service/getNames.js +35 -0
- package/src/utils/name-service/getNames.js.map +1 -0
- package/src/utils/name-service/getOwner.d.ts +6 -0
- package/src/utils/name-service/getOwner.js +65 -0
- package/src/utils/name-service/getOwner.js.map +1 -0
- package/src/utils/name-service/index.d.ts +2 -0
- package/src/utils/name-service/index.js +8 -0
- package/src/utils/name-service/index.js.map +1 -0
- package/src/utils/name-service/solana.d.ts +3 -0
- package/src/utils/name-service/solana.js +47 -0
- package/src/utils/name-service/solana.js.map +1 -0
- package/src/utils/name-service/types.d.ts +5 -0
- package/src/utils/name-service/types.js +3 -0
- package/src/utils/name-service/types.js.map +1 -0
- package/src/utils/solana/filters.d.ts +10 -0
- package/src/utils/solana/filters.js +17 -0
- package/src/utils/solana/filters.js.map +1 -0
- package/src/utils/sui/constants.d.ts +2 -0
- package/src/utils/sui/constants.js +6 -0
- package/src/utils/sui/constants.js.map +1 -0
package/CHANGELOG.md
CHANGED
@@ -2,22 +2,30 @@
|
|
2
2
|
|
3
3
|
This file was generated using [@jscutlery/semver](https://github.com/jscutlery/semver).
|
4
4
|
|
5
|
-
## [0.7.
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
# [0.7.0](https://github.com/sonarwatch/portfolio/compare/plugins-0.6.9...plugins-0.7.0) (2023-08-30)
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
## [0.6.9](https://github.com/sonarwatch/portfolio/compare/plugins-0.6.8...plugins-0.6.9) (2023-08-29)
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
## [0.6.8](https://github.com/sonarwatch/portfolio/compare/plugins-0.6.7...plugins-0.6.8) (2023-08-28)
|
5
|
+
## [0.7.3](https://github.com/sonarwatch/portfolio/compare/plugins-0.7.2...plugins-0.7.3) (2023-09-04)
|
18
6
|
|
19
7
|
|
20
8
|
|
9
|
+
## [0.7.2](https://github.com/sonarwatch/portfolio/compare/plugins-0.7.1...plugins-0.7.2) (2023-08-31)
|
10
|
+
|
11
|
+
|
12
|
+
|
13
|
+
## [0.7.1](https://github.com/sonarwatch/portfolio/compare/plugins-0.7.0...plugins-0.7.1) (2023-08-30)
|
14
|
+
|
15
|
+
|
16
|
+
|
17
|
+
# [0.7.0](https://github.com/sonarwatch/portfolio/compare/plugins-0.6.9...plugins-0.7.0) (2023-08-30)
|
18
|
+
|
19
|
+
|
20
|
+
|
21
|
+
## [0.6.9](https://github.com/sonarwatch/portfolio/compare/plugins-0.6.8...plugins-0.6.9) (2023-08-29)
|
22
|
+
|
23
|
+
|
24
|
+
|
25
|
+
## [0.6.8](https://github.com/sonarwatch/portfolio/compare/plugins-0.6.7...plugins-0.6.8) (2023-08-28)
|
26
|
+
|
27
|
+
|
28
|
+
|
21
29
|
## [0.6.7](https://github.com/sonarwatch/portfolio/compare/plugins-0.6.6...plugins-0.6.7) (2023-08-25)
|
22
30
|
|
23
31
|
|
package/package.json
CHANGED
@@ -1,11 +1,12 @@
|
|
1
1
|
{
|
2
2
|
"name": "@sonarwatch/portfolio-plugins",
|
3
|
-
"version": "0.7.
|
3
|
+
"version": "0.7.3",
|
4
4
|
"type": "commonjs",
|
5
5
|
"generators": "./generators.json",
|
6
6
|
"dependencies": {
|
7
7
|
"@aave/contract-helpers": "^1.18.3",
|
8
8
|
"@aave/math-utils": "^1.18.3",
|
9
|
+
"@bonfida/spl-name-service": "^1.0.10",
|
9
10
|
"@cosmjs/cosmwasm-stargate": "^0.31.1",
|
10
11
|
"@ethersproject/address": "^5.7.0",
|
11
12
|
"@ethersproject/bignumber": "^5.7.0",
|
@@ -35,7 +36,7 @@
|
|
35
36
|
"web3-v1": "npm:web3@^1.5.0"
|
36
37
|
},
|
37
38
|
"peerDependencies": {
|
38
|
-
"@sonarwatch/portfolio-core": "0.7.
|
39
|
+
"@sonarwatch/portfolio-core": "0.7.3"
|
39
40
|
},
|
40
41
|
"main": "./src/index.js",
|
41
42
|
"types": "./src/index.d.ts"
|
package/src/index.d.ts
CHANGED
@@ -1,9 +1,11 @@
|
|
1
1
|
import { Platform } from '@sonarwatch/portfolio-core';
|
2
2
|
import { Fetcher } from './Fetcher';
|
3
3
|
import { Job } from './Job';
|
4
|
+
export { walletTokensPlatform, walletNftsPlatform, } from './plugins/tokens/constants';
|
4
5
|
export * from './Cache';
|
5
6
|
export * from './Fetcher';
|
6
7
|
export * from './Job';
|
8
|
+
export * from './utils/name-service';
|
7
9
|
export declare const platforms: Platform[];
|
8
10
|
export declare const jobs: Job[];
|
9
11
|
export declare const fetchers: Fetcher[];
|
package/src/index.js
CHANGED
@@ -14,7 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
15
15
|
};
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
17
|
-
exports.fetchersByAddressSystem = exports.fetchers = exports.jobs = exports.platforms = void 0;
|
17
|
+
exports.fetchersByAddressSystem = exports.fetchers = exports.jobs = exports.platforms = exports.walletNftsPlatform = exports.walletTokensPlatform = void 0;
|
18
18
|
const tokens_1 = require("./plugins/tokens");
|
19
19
|
const native_stake_1 = require("./plugins/native-stake");
|
20
20
|
const marinade_1 = require("./plugins/marinade");
|
@@ -42,10 +42,15 @@ const aftermath_1 = require("./plugins/aftermath");
|
|
42
42
|
const liquidswap_1 = require("./plugins/liquidswap");
|
43
43
|
const auxexchange_1 = require("./plugins/auxexchange");
|
44
44
|
const maker_1 = require("./plugins/maker");
|
45
|
+
const kamino_1 = require("./plugins/kamino");
|
45
46
|
const getFetchersByAddressSystem_1 = require("./utils/misc/getFetchersByAddressSystem");
|
47
|
+
var constants_1 = require("./plugins/tokens/constants");
|
48
|
+
Object.defineProperty(exports, "walletTokensPlatform", { enumerable: true, get: function () { return constants_1.walletTokensPlatform; } });
|
49
|
+
Object.defineProperty(exports, "walletNftsPlatform", { enumerable: true, get: function () { return constants_1.walletNftsPlatform; } });
|
46
50
|
__exportStar(require("./Cache"), exports);
|
47
51
|
__exportStar(require("./Fetcher"), exports);
|
48
52
|
__exportStar(require("./Job"), exports);
|
53
|
+
__exportStar(require("./utils/name-service"), exports);
|
49
54
|
// PLATFORMS //
|
50
55
|
exports.platforms = [
|
51
56
|
...aave_1.platforms,
|
@@ -73,6 +78,7 @@ exports.platforms = [
|
|
73
78
|
...morpho_1.platforms,
|
74
79
|
...mango_1.platforms,
|
75
80
|
...astroport_1.platforms,
|
81
|
+
...kamino_1.platforms,
|
76
82
|
];
|
77
83
|
// JOBS //
|
78
84
|
exports.jobs = [
|
@@ -100,6 +106,7 @@ exports.jobs = [
|
|
100
106
|
...astroport_1.jobs,
|
101
107
|
...aftermath_1.jobs,
|
102
108
|
...liquidswap_1.jobs,
|
109
|
+
...kamino_1.jobs,
|
103
110
|
];
|
104
111
|
// FETCHERS //
|
105
112
|
exports.fetchers = [
|
package/src/index.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/plugins/src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAGA,6CAI0B;AAC1B,yDAIgC;AAChC,iDAG4B;AAC5B,iDAI4B;AAC5B,2CAGyB;AACzB,6CAI0B;AAC1B,+CAI2B;AAC3B,yCAIwB;AACxB,+CAG2B;AAC3B,2CAIyB;AACzB,6CAI0B;AAC1B,2CAIyB;AACzB,6CAG0B;AAC1B,6CAI0B;AAC1B,yCAIwB;AACxB,2DAGiC;AACjC,6CAI0B;AAC1B,2CAIyB;AACzB,2CAIyB;AACzB,qDAA6D;AAC7D,mDAI6B;AAC7B,qEAIsC;AACtC,uDAG+B;AAC/B,mDAG6B;AAC7B,qDAG8B;AAC9B,uDAG+B;AAC/B,2CAAoD;AACpD,wFAAqF;AAErF,0CAAwB;AACxB,4CAA0B;AAC1B,wCAAsB;
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/plugins/src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAGA,6CAI0B;AAC1B,yDAIgC;AAChC,iDAG4B;AAC5B,iDAI4B;AAC5B,2CAGyB;AACzB,6CAI0B;AAC1B,+CAI2B;AAC3B,yCAIwB;AACxB,+CAG2B;AAC3B,2CAIyB;AACzB,6CAI0B;AAC1B,2CAIyB;AACzB,6CAG0B;AAC1B,6CAI0B;AAC1B,yCAIwB;AACxB,2DAGiC;AACjC,6CAI0B;AAC1B,2CAIyB;AACzB,2CAIyB;AACzB,qDAA6D;AAC7D,mDAI6B;AAC7B,qEAIsC;AACtC,uDAG+B;AAC/B,mDAG6B;AAC7B,qDAG8B;AAC9B,uDAG+B;AAC/B,2CAAoD;AACpD,6CAG0B;AAC1B,wFAAqF;AAErF,wDAGoC;AAFlC,iHAAA,oBAAoB,OAAA;AACpB,+GAAA,kBAAkB,OAAA;AAGpB,0CAAwB;AACxB,4CAA0B;AAC1B,wCAAsB;AACtB,uDAAqC;AAErC,eAAe;AACF,QAAA,SAAS,GAAe;IACnC,GAAG,gBAAa;IAChB,GAAG,gBAAa;IAChB,GAAG,iBAAc;IACjB,GAAG,iBAAc;IACjB,GAAG,uBAAoB;IACvB,GAAG,8BAA0B;IAC7B,GAAG,sBAAmB;IACtB,GAAG,qBAAkB;IACrB,GAAG,uBAAoB;IACvB,GAAG,kBAAe;IAClB,GAAG,wBAAoB;IACvB,GAAG,oBAAiB;IACpB,GAAG,iBAAc;IACjB,GAAG,kBAAe;IAClB,GAAG,oBAAiB;IACpB,GAAG,mBAAgB;IACnB,GAAG,mBAAgB;IACnB,GAAG,kBAAe;IAClB,GAAG,iBAAc;IACjB,GAAG,kBAAe;IAClB,GAAG,kBAAe;IAClB,GAAG,yBAAqB;IACxB,GAAG,kBAAe;IAClB,GAAG,iBAAc;IACjB,GAAG,qBAAkB;IACrB,GAAG,kBAAe;CACnB,CAAC;AAEF,UAAU;AACG,QAAA,IAAI,GAAU;IACzB,GAAG,aAAU;IACb,GAAG,mBAAe;IAClB,GAAG,YAAS;IACZ,GAAG,eAAY;IACf,GAAG,cAAW;IACd,GAAG,aAAU;IACb,GAAG,cAAW;IACd,GAAG,WAAQ;IACX,GAAG,YAAS;IACZ,GAAG,YAAS;IACZ,GAAG,YAAS;IACZ,GAAG,aAAU;IACb,GAAG,iBAAa;IAChB,GAAG,kBAAe;IAClB,GAAG,kBAAe;IAClB,GAAG,YAAS;IACZ,GAAG,WAAQ;IACX,GAAG,aAAU;IACb,GAAG,aAAU;IACb,GAAG,YAAS;IACZ,GAAG,yBAAqB;IACxB,GAAG,gBAAa;IAChB,GAAG,gBAAa;IAChB,GAAG,iBAAc;IACjB,GAAG,aAAU;CACd,CAAC;AAEF,cAAc;AACD,QAAA,QAAQ,GAAc;IACjC,GAAG,iBAAc;IACjB,GAAG,uBAAmB;IACtB,GAAG,iBAAc;IACjB,GAAG,mBAAgB;IACnB,GAAG,mBAAgB;IACnB,GAAG,iBAAc;IACjB,GAAG,gBAAa;IAChB,GAAG,kBAAe;IAClB,GAAG,eAAY;IACf,GAAG,gBAAa;IAChB,GAAG,gBAAa;IAChB,GAAG,gBAAa;IAChB,GAAG,iBAAc;IACjB,GAAG,wBAAoB;IACvB,GAAG,eAAY;IACf,GAAG,iBAAc;IACjB,GAAG,iBAAc;IACjB,GAAG,6BAAyB;IAC5B,GAAG,oBAAiB;CACrB,CAAC;AACW,QAAA,uBAAuB,GAAG,IAAA,uDAA0B,EAAC,gBAAQ,CAAC,CAAC"}
|
@@ -65,7 +65,7 @@ const executor = (owner, cache) => __awaiter(void 0, void 0, void 0, function* (
|
|
65
65
|
const pool = poolsById.get(clmmPosition.pool);
|
66
66
|
if (!pool)
|
67
67
|
continue;
|
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,
|
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, false);
|
69
69
|
const tokenPriceA = yield cache.getTokenPrice(pool.coinTypeA, portfolio_core_1.NetworkId.sui);
|
70
70
|
if (!tokenPriceA)
|
71
71
|
continue;
|
@@ -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,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAE5D,MAAM,aAAa,GAAe,EAAE,CAAC;IACrC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QAC7C,MAAM,eAAe,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACzC,IAAI,CAAC,eAAe,CAAC,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI;YAAE,SAAS;QAClE,MAAM,IAAI,GAAG,IAAA,kCAAwB,EAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjE,IAAI,IAAI,CAAC,YAAY,KAAK,oBAAQ,EAAE;YAClC,MAAM,QAAQ,GAAG,IAAA,uBAAa,EAAC,eAAe,CAAC,CAAC;YAChD,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SAC9B;KACF;IACD,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAE1C,MAAM,QAAQ,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAChE,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,QAAQ,CAAO,QAAQ,EAAE;QACjD,MAAM,EAAE,2BAAe;QACvB,SAAS,EAAE,0BAAS,CAAC,GAAG;KACzB,CAAC,CAAC;IACH,MAAM,SAAS,GAAsB,IAAI,GAAG,EAAE,CAAC;IAC/C,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QACrB,IAAI,IAAI,EAAE;YACR,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;SACvC;IACH,CAAC,CAAC,CAAC;IACH,IAAI,SAAS,CAAC,IAAI,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAEpC,MAAM,MAAM,GAAyB,EAAE,CAAC;IACxC,IAAI,mBAAmB,GAAG,CAAC,CAAC;IAC5B,KAAK,MAAM,YAAY,IAAI,aAAa,EAAE;QACxC,MAAM,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QAC9C,IAAI,CAAC,IAAI;YAAE,SAAS;QAEpB,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,GAAG,IAAA,uDAA4B,EACjE,IAAI,sBAAS,CAAC,YAAY,CAAC,SAAS,CAAC,EACrC,IAAI,CAAC,kBAAkB,EACvB,YAAY,CAAC,gBAAgB,EAC7B,YAAY,CAAC,gBAAgB,EAC7B,
|
1
|
+
{"version":3,"file":"clmmsFetcher.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/cetus/clmmsFetcher.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,12 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.programId = exports.kaminoPlatform = exports.platformId = void 0;
|
4
|
+
const web3_js_1 = require("@solana/web3.js");
|
5
|
+
exports.platformId = 'kamino';
|
6
|
+
exports.kaminoPlatform = {
|
7
|
+
id: exports.platformId,
|
8
|
+
name: 'Kamino',
|
9
|
+
image: `https://alpha.sonar.watch/img/platforms/${exports.platformId}.png`,
|
10
|
+
};
|
11
|
+
exports.programId = new web3_js_1.PublicKey('6LtLpnUFNByNXLyCoK9wA2MykKAmQNZKBdY8s47dehDc');
|
12
|
+
//# sourceMappingURL=constants.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/kamino/constants.ts"],"names":[],"mappings":";;;AAAA,6CAA4C;AAG/B,QAAA,UAAU,GAAG,QAAQ,CAAC;AACtB,QAAA,cAAc,GAAa;IACtC,EAAE,EAAE,kBAAU;IACd,IAAI,EAAE,QAAQ;IACd,KAAK,EAAE,2CAA2C,kBAAU,MAAM;CACnE,CAAC;AACW,QAAA,SAAS,GAAG,IAAI,mBAAS,CACpC,8CAA8C,CAC/C,CAAC"}
|
@@ -0,0 +1,11 @@
|
|
1
|
+
import BigNumber from 'bignumber.js';
|
2
|
+
import { Position, Whirlpool } from '../orca/structs/whirlpool';
|
3
|
+
import { PersonalPositionState, PoolState } from '../raydium/structs/clmms';
|
4
|
+
import { WhirlpoolStrategy } from './structs';
|
5
|
+
import { ParsedAccount } from '../../utils/solana';
|
6
|
+
export declare function dexToNumber(dex: string): number;
|
7
|
+
export declare function getTokenAmountsFromInfos(strategy: ParsedAccount<WhirlpoolStrategy>, pool: PoolState | Whirlpool, position: PersonalPositionState | Position): {
|
8
|
+
tokenAmountA: BigNumber;
|
9
|
+
tokenAmountB: BigNumber;
|
10
|
+
};
|
11
|
+
export declare function isActive(strategy: WhirlpoolStrategy): boolean;
|
@@ -0,0 +1,73 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.isActive = exports.getTokenAmountsFromInfos = exports.dexToNumber = void 0;
|
4
|
+
const tokenAmountFromLiquidity_1 = require("../../utils/clmm/tokenAmountFromLiquidity");
|
5
|
+
const dexes = ['ORCA', 'RAYDIUM', 'CREMA'];
|
6
|
+
function dexToNumber(dex) {
|
7
|
+
for (let i = 0; i < dexes.length; i += 1) {
|
8
|
+
if (dexes[i] === dex) {
|
9
|
+
return i;
|
10
|
+
}
|
11
|
+
}
|
12
|
+
throw new Error(`Unknown DEX ${dex}`);
|
13
|
+
}
|
14
|
+
exports.dexToNumber = dexToNumber;
|
15
|
+
function getTokenAmountsFromInfos(strategy, pool, position) {
|
16
|
+
if (strategy.strategyDex.toNumber() === dexToNumber('ORCA')) {
|
17
|
+
const orcaPool = pool;
|
18
|
+
const orcaPosition = position;
|
19
|
+
return (0, tokenAmountFromLiquidity_1.getTokenAmountsFromLiquidity)(orcaPosition.liquidity, orcaPool.tickCurrentIndex, orcaPosition.tickLowerIndex, orcaPosition.tickUpperIndex, false);
|
20
|
+
// const whirlpoolSqrtPrice = orcaPool.sqrtPrice;
|
21
|
+
// const vaultPositionLiquidity = orcaPosition.liquidity;
|
22
|
+
// const vaultPositionTickLowerIndex = orcaPosition.tickLowerIndex;
|
23
|
+
// const vaultPositionTickUpperIndex = orcaPosition.tickUpperIndex;
|
24
|
+
// const priceLower = orcaTickToPriceX64(vaultPositionTickLowerIndex);
|
25
|
+
// const priceUpper = orcaTickToPriceX64(vaultPositionTickUpperIndex);
|
26
|
+
// return getOrcaTokenAmountsFromLiquidity(
|
27
|
+
// vaultPositionLiquidity.toNumber(),
|
28
|
+
// whirlpoolSqrtPrice,
|
29
|
+
// priceLower,
|
30
|
+
// priceUpper,
|
31
|
+
// false
|
32
|
+
// );
|
33
|
+
}
|
34
|
+
if (strategy.strategyDex.toNumber() === dexToNumber('RAYDIUM')) {
|
35
|
+
const raydiumPool = pool;
|
36
|
+
const raydiumPosition = position;
|
37
|
+
return (0, tokenAmountFromLiquidity_1.getTokenAmountsFromLiquidity)(raydiumPosition.liquidity, raydiumPool.tickCurrent, raydiumPosition.tickLowerIndex, raydiumPosition.tickUpperIndex, false);
|
38
|
+
// const lowerSqrtPriceX64 = new BigNumber(
|
39
|
+
// raydiumTickToPriceX64(raydiumPosition.tickLowerIndex).toString()
|
40
|
+
// );
|
41
|
+
// const upperSqrtPriceX64 = new BigNumber(
|
42
|
+
// raydiumTickToPriceX64(raydiumPosition.tickUpperIndex).toString()
|
43
|
+
// );
|
44
|
+
// return getRaydiumTokenAmountsFromLiquidity(
|
45
|
+
// new BigNumber(raydiumPool.sqrtPriceX64),
|
46
|
+
// lowerSqrtPriceX64,
|
47
|
+
// upperSqrtPriceX64,
|
48
|
+
// raydiumPosition.liquidity,
|
49
|
+
// false
|
50
|
+
// );
|
51
|
+
}
|
52
|
+
throw new Error(`Invalid dex ${strategy.strategyDex.toString()}`);
|
53
|
+
}
|
54
|
+
exports.getTokenAmountsFromInfos = getTokenAmountsFromInfos;
|
55
|
+
const statusByNum = new Map([
|
56
|
+
[0, 'IGNORED'],
|
57
|
+
[1, 'SHADOW'],
|
58
|
+
[2, 'LIVE'],
|
59
|
+
[3, 'DEPRECATED'],
|
60
|
+
[4, 'STAGING'],
|
61
|
+
]);
|
62
|
+
function isActive(strategy) {
|
63
|
+
if (strategy.sharesIssued.isZero())
|
64
|
+
return false;
|
65
|
+
const status = statusByNum.get(strategy.status.toNumber());
|
66
|
+
if (!status)
|
67
|
+
return false;
|
68
|
+
if (status === 'IGNORED' || status === 'STAGING')
|
69
|
+
return false;
|
70
|
+
return true;
|
71
|
+
}
|
72
|
+
exports.isActive = isActive;
|
73
|
+
//# sourceMappingURL=helpers.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/kamino/helpers.ts"],"names":[],"mappings":";;;AAKA,wFAAyF;AAEzF,MAAM,KAAK,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;AAE3C,SAAgB,WAAW,CAAC,GAAW;IACrC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;QACxC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;YACpB,OAAO,CAAC,CAAC;SACV;KACF;IACD,MAAM,IAAI,KAAK,CAAC,eAAe,GAAG,EAAE,CAAC,CAAC;AACxC,CAAC;AAPD,kCAOC;AAED,SAAgB,wBAAwB,CACtC,QAA0C,EAC1C,IAA2B,EAC3B,QAA0C;IAE1C,IAAI,QAAQ,CAAC,WAAW,CAAC,QAAQ,EAAE,KAAK,WAAW,CAAC,MAAM,CAAC,EAAE;QAC3D,MAAM,QAAQ,GAAG,IAAiB,CAAC;QACnC,MAAM,YAAY,GAAG,QAAoB,CAAC;QAE1C,OAAO,IAAA,uDAA4B,EACjC,YAAY,CAAC,SAAS,EACtB,QAAQ,CAAC,gBAAgB,EACzB,YAAY,CAAC,cAAc,EAC3B,YAAY,CAAC,cAAc,EAC3B,KAAK,CACN,CAAC;QAEF,iDAAiD;QACjD,yDAAyD;QACzD,mEAAmE;QACnE,mEAAmE;QACnE,sEAAsE;QACtE,sEAAsE;QACtE,2CAA2C;QAC3C,uCAAuC;QACvC,wBAAwB;QACxB,gBAAgB;QAChB,gBAAgB;QAChB,UAAU;QACV,KAAK;KACN;IACD,IAAI,QAAQ,CAAC,WAAW,CAAC,QAAQ,EAAE,KAAK,WAAW,CAAC,SAAS,CAAC,EAAE;QAC9D,MAAM,WAAW,GAAG,IAAiB,CAAC;QACtC,MAAM,eAAe,GAAG,QAAiC,CAAC;QAE1D,OAAO,IAAA,uDAA4B,EACjC,eAAe,CAAC,SAAS,EACzB,WAAW,CAAC,WAAW,EACvB,eAAe,CAAC,cAAc,EAC9B,eAAe,CAAC,cAAc,EAC9B,KAAK,CACN,CAAC;QACF,2CAA2C;QAC3C,qEAAqE;QACrE,KAAK;QACL,2CAA2C;QAC3C,qEAAqE;QACrE,KAAK;QACL,8CAA8C;QAC9C,6CAA6C;QAC7C,uBAAuB;QACvB,uBAAuB;QACvB,+BAA+B;QAC/B,UAAU;QACV,KAAK;KACN;IACD,MAAM,IAAI,KAAK,CAAC,eAAe,QAAQ,CAAC,WAAW,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;AACpE,CAAC;AAzDD,4DAyDC;AAED,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC;IAC1B,CAAC,CAAC,EAAE,SAAS,CAAC;IACd,CAAC,CAAC,EAAE,QAAQ,CAAC;IACb,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,CAAC,CAAC,EAAE,YAAY,CAAC;IACjB,CAAC,CAAC,EAAE,SAAS,CAAC;CACf,CAAC,CAAC;AAEH,SAAgB,QAAQ,CAAC,QAA2B;IAClD,IAAI,QAAQ,CAAC,YAAY,CAAC,MAAM,EAAE;QAAE,OAAO,KAAK,CAAC;IACjD,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC3D,IAAI,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAC1B,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IAC/D,OAAO,IAAI,CAAC;AACd,CAAC;AAND,4BAMC"}
|
@@ -0,0 +1,12 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
4
|
+
};
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
6
|
+
exports.fetchers = exports.jobs = exports.platforms = void 0;
|
7
|
+
const constants_1 = require("./constants");
|
8
|
+
const poolsJob_1 = __importDefault(require("./poolsJob"));
|
9
|
+
exports.platforms = [constants_1.kaminoPlatform];
|
10
|
+
exports.jobs = [poolsJob_1.default];
|
11
|
+
exports.fetchers = [];
|
12
|
+
//# sourceMappingURL=index.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/kamino/index.ts"],"names":[],"mappings":";;;;;;AAGA,2CAA6C;AAC7C,0DAAkC;AAErB,QAAA,SAAS,GAAe,CAAC,0BAAc,CAAC,CAAC;AACzC,QAAA,IAAI,GAAU,CAAC,kBAAQ,CAAC,CAAC;AACzB,QAAA,QAAQ,GAAc,EAAE,CAAC"}
|
@@ -0,0 +1,117 @@
|
|
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 clients_1 = require("../../utils/clients");
|
14
|
+
const constants_1 = require("./constants");
|
15
|
+
const solana_1 = require("../../utils/solana");
|
16
|
+
const getMultipleAccountsInfoSafe_1 = require("../../utils/solana/getMultipleAccountsInfoSafe");
|
17
|
+
const helpers_1 = require("./helpers");
|
18
|
+
const whirlpool_1 = require("../orca/structs/whirlpool");
|
19
|
+
const clmms_1 = require("../raydium/structs/clmms");
|
20
|
+
const structs_1 = require("./structs");
|
21
|
+
const filters_1 = require("../../utils/solana/filters");
|
22
|
+
const executor = (cache) => __awaiter(void 0, void 0, void 0, function* () {
|
23
|
+
const client = (0, clients_1.getClientSolana)();
|
24
|
+
const strategies = yield (0, solana_1.getParsedProgramAccounts)(client, structs_1.whirlpoolStrategyStruct, constants_1.programId, (0, filters_1.dataSizeFilter)(structs_1.whirlpoolStrategyStruct));
|
25
|
+
const tokensMint = strategies
|
26
|
+
.map((str) => [str.tokenAMint.toString(), str.tokenBMint.toString()])
|
27
|
+
.flat();
|
28
|
+
const tokenPrices = yield cache.getTokenPrices(tokensMint, portfolio_core_1.NetworkId.solana);
|
29
|
+
const tokenPriceByAddress = new Map();
|
30
|
+
tokenPrices.forEach((tP) => tP ? tokenPriceByAddress.set(tP.address, tP) : undefined);
|
31
|
+
const positions = strategies.map((strategy) => strategy.position);
|
32
|
+
const pools = strategies.map((strategy) => strategy.pool);
|
33
|
+
const strategiesPositionsAndWhirlpool = [];
|
34
|
+
strategiesPositionsAndWhirlpool.push(...positions, ...pools);
|
35
|
+
const positionSizeIndex = positions.length;
|
36
|
+
const positionAndWhirlpoolAccountsInfo = yield (0, getMultipleAccountsInfoSafe_1.getMultipleAccountsInfoSafe)(client, strategiesPositionsAndWhirlpool);
|
37
|
+
for (let i = 0; i < strategies.length; i += 1) {
|
38
|
+
const strategy = strategies[i];
|
39
|
+
if (!(0, helpers_1.isActive)(strategy))
|
40
|
+
continue;
|
41
|
+
// Here is a Kamino error.
|
42
|
+
// They've tested a pool with 11111111111111111111111111111111 for whirlpool
|
43
|
+
if (pools[i].toString() === '11111111111111111111111111111111')
|
44
|
+
continue;
|
45
|
+
const tokenPriceA = tokenPriceByAddress.get(strategy.tokenAMint.toString());
|
46
|
+
const tokenPriceB = tokenPriceByAddress.get(strategy.tokenBMint.toString());
|
47
|
+
if (!tokenPriceA || !tokenPriceB)
|
48
|
+
continue;
|
49
|
+
const address = strategy.sharesMint;
|
50
|
+
const decimals = strategy.sharesMintDecimals.toNumber();
|
51
|
+
const supply = strategy.sharesIssued.dividedBy(Math.pow(10, decimals));
|
52
|
+
const isOrca = strategy.strategyDex.toNumber() === (0, helpers_1.dexToNumber)('ORCA');
|
53
|
+
const rawPool = positionAndWhirlpoolAccountsInfo[positionSizeIndex + i];
|
54
|
+
if (!rawPool)
|
55
|
+
continue;
|
56
|
+
const rawPoolData = rawPool.data;
|
57
|
+
const pool = isOrca
|
58
|
+
? whirlpool_1.whirlpoolStruct.deserialize(rawPoolData)[0]
|
59
|
+
: clmms_1.poolStateStruct.deserialize(rawPoolData)[0];
|
60
|
+
const rawPosition = positionAndWhirlpoolAccountsInfo[i];
|
61
|
+
if (!rawPosition)
|
62
|
+
continue;
|
63
|
+
const positionData = rawPosition.data;
|
64
|
+
const position = isOrca
|
65
|
+
? whirlpool_1.positionStruct.deserialize(positionData)[0]
|
66
|
+
: clmms_1.personalPositionStateStruct.deserialize(positionData)[0];
|
67
|
+
const { tokenAmountA, tokenAmountB } = (0, helpers_1.getTokenAmountsFromInfos)(strategy, pool, position);
|
68
|
+
const tokenAAmount = tokenAmountA
|
69
|
+
.plus(strategy.tokenAAmounts)
|
70
|
+
.div(Math.pow(10, strategy.tokenAMintDecimals.toNumber()));
|
71
|
+
const tokenBAmount = tokenAmountB
|
72
|
+
.plus(strategy.tokenBAmounts)
|
73
|
+
.div(Math.pow(10, strategy.tokenBMintDecimals.toNumber()));
|
74
|
+
const tokenALocked = tokenAAmount.multipliedBy(tokenPriceA.price);
|
75
|
+
const tokenBLocked = tokenBAmount.multipliedBy(tokenPriceB.price);
|
76
|
+
const tvl = tokenALocked.plus(tokenBLocked);
|
77
|
+
if (tvl.isLessThan(5))
|
78
|
+
continue;
|
79
|
+
const price = tvl.dividedBy(supply).toNumber();
|
80
|
+
const underlyings = (0, portfolio_core_1.getTokenPricesUnderlyingsFromTokensPrices)([tokenPriceA, tokenPriceB], [
|
81
|
+
tokenAAmount.dividedBy(supply).toNumber(),
|
82
|
+
tokenBAmount.dividedBy(supply).toNumber(),
|
83
|
+
]);
|
84
|
+
// if (supply.isGreaterThan(20000)) {
|
85
|
+
// console.log('Strat : ', strategy.pubkey.toString());
|
86
|
+
// console.log('Shares Mint : ', strategy.sharesMint.toString());
|
87
|
+
// console.log('Initial tokenAmountA:', tokenAmountA.toNumber());
|
88
|
+
// console.log('Token A Amount', tokenAAmount.toNumber());
|
89
|
+
// console.log('Initial tokenAmountB:', tokenAmountB.toNumber());
|
90
|
+
// console.log('Token B Amount', tokenBAmount.toNumber());
|
91
|
+
// console.log('Token A tvl', tokenALocked.toNumber());
|
92
|
+
// console.log('Token B tvl', tokenBLocked.toNumber());
|
93
|
+
// console.log('Supply:', supply.toNumber());
|
94
|
+
// console.log('Total tvl', tvl.toNumber());
|
95
|
+
// console.log('Price:', price);
|
96
|
+
// console.log('Underlyings:', underlyings);
|
97
|
+
// }
|
98
|
+
yield cache.setTokenPriceSource({
|
99
|
+
address: address.toString(),
|
100
|
+
decimals,
|
101
|
+
id: constants_1.platformId,
|
102
|
+
networkId: portfolio_core_1.NetworkId.solana,
|
103
|
+
platformId: constants_1.platformId,
|
104
|
+
price,
|
105
|
+
timestamp: Date.now(),
|
106
|
+
weight: 1,
|
107
|
+
elementName: 'Vault',
|
108
|
+
underlyings,
|
109
|
+
});
|
110
|
+
}
|
111
|
+
});
|
112
|
+
const job = {
|
113
|
+
id: `${constants_1.platformId}-pools`,
|
114
|
+
executor,
|
115
|
+
};
|
116
|
+
exports.default = job;
|
117
|
+
//# sourceMappingURL=poolsJob.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"poolsJob.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/kamino/poolsJob.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,176 @@
|
|
1
|
+
/// <reference types="node" />
|
2
|
+
import { PublicKey } from '@solana/web3.js';
|
3
|
+
import { BeetStruct, FixableBeetStruct } from '@metaplex-foundation/beet';
|
4
|
+
import BigNumber from 'bignumber.js';
|
5
|
+
export type Price = {
|
6
|
+
value: BigNumber;
|
7
|
+
exp: BigNumber;
|
8
|
+
};
|
9
|
+
export declare const priceStruct: BeetStruct<Price, Partial<Price>>;
|
10
|
+
export type CollateralInfo = {
|
11
|
+
mint: PublicKey;
|
12
|
+
lowerHeuristic: BigNumber;
|
13
|
+
upperHeuristic: BigNumber;
|
14
|
+
expHeuristic: BigNumber;
|
15
|
+
maxTwapDivergenceBps: BigNumber;
|
16
|
+
scopePriceIdTwap: BigNumber;
|
17
|
+
scopePriceChain: number[];
|
18
|
+
name: number[];
|
19
|
+
maxAgePriceSeconds: BigNumber;
|
20
|
+
maxAgeTwapSeconds: BigNumber;
|
21
|
+
maxIgnorableAmountAsReward: BigNumber;
|
22
|
+
disabled: number;
|
23
|
+
padding0: number[];
|
24
|
+
padding: BigNumber[];
|
25
|
+
};
|
26
|
+
export declare const collateralInfoStruct: BeetStruct<CollateralInfo, Partial<CollateralInfo>>;
|
27
|
+
export type CollateralInfos = {
|
28
|
+
infos: CollateralInfo[];
|
29
|
+
};
|
30
|
+
export declare const collateralInfosStruct: FixableBeetStruct<CollateralInfos, Partial<CollateralInfos>>;
|
31
|
+
export type ScopeChainAccount = {
|
32
|
+
chainArray: number[][];
|
33
|
+
};
|
34
|
+
export declare const scopeChainAccountStruct: FixableBeetStruct<ScopeChainAccount, Partial<ScopeChainAccount>>;
|
35
|
+
export type TermsSignature = {
|
36
|
+
signature: number[];
|
37
|
+
};
|
38
|
+
export declare const termsSignatureStruct: BeetStruct<TermsSignature, Partial<TermsSignature>>;
|
39
|
+
export type WithdrawalCaps = {
|
40
|
+
configCapacity: BigNumber;
|
41
|
+
currentTotal: BigNumber;
|
42
|
+
lastIntervalStartTimestamp: BigNumber;
|
43
|
+
configIntervalLengthSeconds: BigNumber;
|
44
|
+
};
|
45
|
+
export declare const withdrawalCapsStruct: BeetStruct<WithdrawalCaps, Partial<WithdrawalCaps>>;
|
46
|
+
export type KaminoRewardInfo = {
|
47
|
+
decimals: BigNumber;
|
48
|
+
rewardVault: PublicKey;
|
49
|
+
rewardMint: PublicKey;
|
50
|
+
rewardCollateralId: BigNumber;
|
51
|
+
lastIssuanceTs: BigNumber;
|
52
|
+
rewardPerSecond: BigNumber;
|
53
|
+
amountUncollected: BigNumber;
|
54
|
+
amountIssuedCumulative: BigNumber;
|
55
|
+
amountAvailable: BigNumber;
|
56
|
+
};
|
57
|
+
export declare const kaminoRewardInfoStruct: BeetStruct<KaminoRewardInfo, Partial<KaminoRewardInfo>>;
|
58
|
+
export type RebalanceRaw = {
|
59
|
+
params: number[];
|
60
|
+
state: number[];
|
61
|
+
referencePriceType: number;
|
62
|
+
};
|
63
|
+
export declare const rebalanceRawStruct: BeetStruct<RebalanceRaw, Partial<RebalanceRaw>>;
|
64
|
+
export type WhirlpoolStrategy = {
|
65
|
+
buffer: Buffer;
|
66
|
+
adminAuthority: PublicKey;
|
67
|
+
globalConfig: PublicKey;
|
68
|
+
baseVaultAuthority: PublicKey;
|
69
|
+
baseVaultAuthorityBump: BigNumber;
|
70
|
+
pool: PublicKey;
|
71
|
+
poolTokenVaultA: PublicKey;
|
72
|
+
poolTokenVaultB: PublicKey;
|
73
|
+
tickArrayLower: PublicKey;
|
74
|
+
tickArrayUpper: PublicKey;
|
75
|
+
position: PublicKey;
|
76
|
+
positionMint: PublicKey;
|
77
|
+
positionMetadata: PublicKey;
|
78
|
+
positionTokenAccount: PublicKey;
|
79
|
+
tokenAVault: PublicKey;
|
80
|
+
tokenBVault: PublicKey;
|
81
|
+
tokenAVaultAuthority: PublicKey;
|
82
|
+
tokenBVaultAuthority: PublicKey;
|
83
|
+
tokenAVaultAuthorityBump: BigNumber;
|
84
|
+
tokenBVaultAuthorityBump: BigNumber;
|
85
|
+
tokenAMint: PublicKey;
|
86
|
+
tokenBMint: PublicKey;
|
87
|
+
tokenAMintDecimals: BigNumber;
|
88
|
+
tokenBMintDecimals: BigNumber;
|
89
|
+
tokenAAmounts: BigNumber;
|
90
|
+
tokenBAmounts: BigNumber;
|
91
|
+
tokenACollateralId: BigNumber;
|
92
|
+
tokenBCollateralId: BigNumber;
|
93
|
+
scopePrices: PublicKey;
|
94
|
+
scopeProgram: PublicKey;
|
95
|
+
sharesMint: PublicKey;
|
96
|
+
sharesMintDecimals: BigNumber;
|
97
|
+
sharesMintAuthority: PublicKey;
|
98
|
+
sharesMintAuthorityBump: BigNumber;
|
99
|
+
sharesIssued: BigNumber;
|
100
|
+
status: BigNumber;
|
101
|
+
reward0Amount: BigNumber;
|
102
|
+
reward0Vault: PublicKey;
|
103
|
+
reward0CollateralId: BigNumber;
|
104
|
+
reward0Decimals: BigNumber;
|
105
|
+
reward1Amount: BigNumber;
|
106
|
+
reward1Vault: PublicKey;
|
107
|
+
reward1CollateralId: BigNumber;
|
108
|
+
reward1Decimals: BigNumber;
|
109
|
+
reward2Amount: BigNumber;
|
110
|
+
reward2Vault: PublicKey;
|
111
|
+
reward2CollateralId: BigNumber;
|
112
|
+
reward2Decimals: BigNumber;
|
113
|
+
depositCapUsd: BigNumber;
|
114
|
+
feesACumulative: BigNumber;
|
115
|
+
feesBCumulative: BigNumber;
|
116
|
+
reward0AmountCumulative: BigNumber;
|
117
|
+
reward1AmountCumulative: BigNumber;
|
118
|
+
reward2AmountCumulative: BigNumber;
|
119
|
+
depositCapUsdPerIxn: BigNumber;
|
120
|
+
withdrawalCapA: WithdrawalCaps;
|
121
|
+
withdrawalCapB: WithdrawalCaps;
|
122
|
+
maxPriceDeviationBps: BigNumber;
|
123
|
+
swapVaultMaxSlippageBps: BigNumber;
|
124
|
+
swapVaultMaxSlippageFromReferenceBps: BigNumber;
|
125
|
+
strategyType: BigNumber;
|
126
|
+
depositFee: BigNumber;
|
127
|
+
withdrawFee: BigNumber;
|
128
|
+
feesFee: BigNumber;
|
129
|
+
reward0Fee: BigNumber;
|
130
|
+
reward1Fee: BigNumber;
|
131
|
+
reward2Fee: BigNumber;
|
132
|
+
positionTimestamp: BigNumber;
|
133
|
+
kaminoRewards: KaminoRewardInfo[];
|
134
|
+
strategyDex: BigNumber;
|
135
|
+
raydiumProtocolPositionOrBaseVaultAuthority: PublicKey;
|
136
|
+
allowDepositWithoutInvest: BigNumber;
|
137
|
+
raydiumPoolConfigOrBaseVaultAuthority: PublicKey;
|
138
|
+
depositBlocked: number;
|
139
|
+
creationStatus: number;
|
140
|
+
investBlocked: number;
|
141
|
+
shareCalculationMethod: number;
|
142
|
+
withdrawBlocked: number;
|
143
|
+
reservedFlag2: number;
|
144
|
+
localAdminBlocked: number;
|
145
|
+
flashVaultSwapAllowed: number;
|
146
|
+
referenceSwapPriceA: Price;
|
147
|
+
referenceSwapPriceB: Price;
|
148
|
+
isCommunity: number;
|
149
|
+
rebalanceType: number;
|
150
|
+
padding0: number[];
|
151
|
+
rebalanceRaw: RebalanceRaw;
|
152
|
+
padding1: number[];
|
153
|
+
tokenAFeesFromRewardsCumulative: BigNumber;
|
154
|
+
tokenBFeesFromRewardsCumulative: BigNumber;
|
155
|
+
strategyLookupTable: PublicKey;
|
156
|
+
padding3: BigNumber[];
|
157
|
+
padding4: BigNumber[];
|
158
|
+
padding5: BigNumber[];
|
159
|
+
padding6: BigNumber[];
|
160
|
+
};
|
161
|
+
export declare const whirlpoolStrategyStruct: BeetStruct<WhirlpoolStrategy, Partial<WhirlpoolStrategy>>;
|
162
|
+
export type ProtocolPositionState = {
|
163
|
+
buffer: Buffer;
|
164
|
+
bump: number;
|
165
|
+
poolId: PublicKey;
|
166
|
+
tickLowerIndex: BigNumber;
|
167
|
+
tickUpperIndex: BigNumber;
|
168
|
+
liquidity: BigNumber;
|
169
|
+
feeGrowthInside0LastX64: BigNumber;
|
170
|
+
feeGrowthInside1LastX64: BigNumber;
|
171
|
+
tokenFeesOwed0: BigNumber;
|
172
|
+
tokenFeesOwed1: BigNumber;
|
173
|
+
rewardGrowthInside: BigNumber[];
|
174
|
+
padding: BigNumber[];
|
175
|
+
};
|
176
|
+
export declare const protocolPositionStateStruct: BeetStruct<ProtocolPositionState, Partial<ProtocolPositionState>>;
|