@sonarwatch/portfolio-plugins 0.15.35 → 0.15.37
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 +2832 -2795
- package/README.md +3 -3
- package/package.json +1 -1
- package/src/Cache.js +9 -2
- package/src/Cache.js.map +1 -1
- package/src/memoryDriver.d.ts +1 -1
- package/src/overlayDriver.d.ts +1 -1
- package/src/plugins/balancer/helpers/pools.js +21 -21
- package/src/plugins/cropper/whirlpoolFetcher.js +2 -1
- package/src/plugins/cropper/whirlpoolFetcher.js.map +1 -1
- package/src/plugins/cudis/airdropFetcher.js +0 -1
- package/src/plugins/cudis/airdropFetcher.js.map +1 -1
- package/src/plugins/cudis/stakingFetcher.js +0 -1
- package/src/plugins/cudis/stakingFetcher.js.map +1 -1
- package/src/plugins/daos/constants.d.ts +1 -0
- package/src/plugins/daos/constants.js +37 -1
- package/src/plugins/daos/constants.js.map +1 -1
- package/src/plugins/daos/realmsProgramsJob.js +5 -6
- package/src/plugins/daos/realmsProgramsJob.js.map +1 -1
- package/src/plugins/helium/constants.d.ts +1 -0
- package/src/plugins/helium/constants.js +2 -1
- package/src/plugins/helium/constants.js.map +1 -1
- package/src/plugins/helium/getHeliumPositions.d.ts +2 -2
- package/src/plugins/helium/getHeliumPositions.js +2 -1
- package/src/plugins/helium/getHeliumPositions.js.map +1 -1
- package/src/plugins/helium/positionsFetcher.js +2 -1
- package/src/plugins/helium/positionsFetcher.js.map +1 -1
- package/src/plugins/magiceden/bidsFetcher.js +1 -1
- package/src/plugins/magiceden/bidsFetcher.js.map +1 -1
- package/src/plugins/metaplex/constants.d.ts +1 -1
- package/src/plugins/metaplex/constants.js +2 -2
- package/src/plugins/metaplex/constants.js.map +1 -1
- package/src/plugins/metaplex/helpers.js +3 -3
- package/src/plugins/metaplex/helpers.js.map +1 -1
- package/src/plugins/metaplex/index.js +1 -5
- package/src/plugins/metaplex/index.js.map +1 -1
- package/src/plugins/metaplex/resizableNftFetcher.d.ts +3 -0
- package/src/plugins/metaplex/resizableNftFetcher.js +8 -3
- package/src/plugins/metaplex/resizableNftFetcher.js.map +1 -1
- package/src/plugins/metaplex/structs.d.ts +53 -0
- package/src/plugins/metaplex/structs.js +49 -0
- package/src/plugins/metaplex/structs.js.map +1 -0
- package/src/plugins/meteora/cpamm/cpammPositionsFetcher.d.ts +3 -0
- package/src/plugins/meteora/cpamm/cpammPositionsFetcher.js +10 -2
- package/src/plugins/meteora/cpamm/cpammPositionsFetcher.js.map +1 -1
- package/src/plugins/meteora/index.js +0 -2
- package/src/plugins/meteora/index.js.map +1 -1
- package/src/plugins/orca/getWhirlpoolPositions.d.ts +2 -2
- package/src/plugins/orca/getWhirlpoolPositions.js +5 -3
- package/src/plugins/orca/getWhirlpoolPositions.js.map +1 -1
- package/src/plugins/orca/helpers.d.ts +0 -2
- package/src/plugins/orca/helpers.js +1 -5
- package/src/plugins/orca/helpers.js.map +1 -1
- package/src/plugins/orca/whirlpoolFetcher.js +2 -1
- package/src/plugins/orca/whirlpoolFetcher.js.map +1 -1
- package/src/plugins/picasso/constants.d.ts +1 -0
- package/src/plugins/picasso/constants.js +2 -1
- package/src/plugins/picasso/constants.js.map +1 -1
- package/src/plugins/picasso/getPicassoPositions.d.ts +2 -2
- package/src/plugins/picasso/getPicassoPositions.js +2 -1
- package/src/plugins/picasso/getPicassoPositions.js.map +1 -1
- package/src/plugins/picasso/helpers.js +1 -1
- package/src/plugins/picasso/helpers.js.map +1 -1
- package/src/plugins/picasso/positionsFetcher.js +2 -1
- package/src/plugins/picasso/positionsFetcher.js.map +1 -1
- package/src/plugins/raydium/clmmFetcher.d.ts +3 -0
- package/src/plugins/raydium/clmmFetcher.js +96 -3
- package/src/plugins/raydium/clmmFetcher.js.map +1 -1
- package/src/plugins/raydium/helpers.d.ts +1 -2
- package/src/plugins/raydium/helpers.js +1 -5
- package/src/plugins/raydium/helpers.js.map +1 -1
- package/src/plugins/raydium/structs/clmms.d.ts +1 -0
- package/src/plugins/raydium/structs/clmms.js +2 -1
- package/src/plugins/raydium/structs/clmms.js.map +1 -1
- package/src/plugins/sushiswap/helpers.js +24 -24
- package/src/plugins/tokens/fetchers/solana-native.js +11 -21
- package/src/plugins/tokens/fetchers/solana-native.js.map +1 -1
- package/src/plugins/tokens/fetchers/solana-simple.js +4 -43
- package/src/plugins/tokens/fetchers/solana-simple.js.map +1 -1
- package/src/plugins/tokens/fetchers/solana.d.ts +4 -0
- package/src/plugins/tokens/fetchers/solana.js +86 -104
- package/src/plugins/tokens/fetchers/solana.js.map +1 -1
- package/src/plugins/tokens/index.js +2 -4
- package/src/plugins/tokens/index.js.map +1 -1
- package/src/plugins/tokens/types.d.ts +2 -2
- package/src/plugins/uniswap-v2/helpers.js +22 -22
- package/src/plugins/zeta/airdropFetcher.js +14 -14
- package/src/utils/elementbuilder/AssetCollectibleBuilder.js +5 -6
- package/src/utils/elementbuilder/AssetCollectibleBuilder.js.map +1 -1
- package/src/utils/elementbuilder/AssetGenericBuilder.js +1 -1
- package/src/utils/elementbuilder/AssetGenericBuilder.js.map +1 -1
- package/src/utils/elementbuilder/AssetTokenBuilder.d.ts +2 -1
- package/src/utils/elementbuilder/AssetTokenBuilder.js +2 -1
- package/src/utils/elementbuilder/AssetTokenBuilder.js.map +1 -1
- package/src/utils/elementbuilder/ElementLeverageBuilder.js +2 -2
- package/src/utils/elementbuilder/ElementLeverageBuilder.js.map +1 -1
- package/src/utils/elementbuilder/LevPositionBuilder.js +2 -2
- package/src/utils/elementbuilder/LevPositionBuilder.js.map +1 -1
- package/src/utils/elementbuilder/Params.d.ts +2 -1
- package/src/utils/misc/tokenPriceToAssetToken.js +5 -2
- package/src/utils/misc/tokenPriceToAssetToken.js.map +1 -1
- package/src/utils/misc/tokenPriceToLiquidity.js +2 -2
- package/src/utils/misc/tokenPriceToLiquidity.js.map +1 -1
- package/src/utils/sei/constants.js +8 -8
- package/src/utils/sei/getQueryBalanceByOwner.js +4 -4
- package/src/utils/solana/getTokenAccountsByOwner.d.ts +3 -2
- package/src/utils/solana/getTokenAccountsByOwner.js +22 -5
- package/src/utils/solana/getTokenAccountsByOwner.js.map +1 -1
- package/src/utils/solana/structs.d.ts +6 -0
- package/src/utils/solana/structs.js.map +1 -1
- package/src/plugins/raydium/getClmmPositions.d.ts +0 -3
- package/src/plugins/raydium/getClmmPositions.js +0 -107
- package/src/plugins/raydium/getClmmPositions.js.map +0 -1
- package/src/plugins/tokens/fetchers/solana-nfts-underlyings.d.ts +0 -3
- package/src/plugins/tokens/fetchers/solana-nfts-underlyings.js +0 -44
- package/src/plugins/tokens/fetchers/solana-nfts-underlyings.js.map +0 -1
@@ -40,28 +40,28 @@ function getPairKey(version) {
|
|
40
40
|
exports.getPairKey = getPairKey;
|
41
41
|
function getPairsV2FromTheGraph(url, length = 300) {
|
42
42
|
return __awaiter(this, void 0, void 0, function* () {
|
43
|
-
const query = (0, graphql_request_1.gql) `
|
44
|
-
{
|
45
|
-
pairs(
|
46
|
-
orderBy: reserveUSD
|
47
|
-
first: ${length}
|
48
|
-
orderDirection: desc
|
49
|
-
where: { trackedReserveETH_not: "0" }
|
50
|
-
) {
|
51
|
-
id
|
52
|
-
reserve0
|
53
|
-
reserve1
|
54
|
-
totalSupply
|
55
|
-
token0 {
|
56
|
-
id
|
57
|
-
decimals
|
58
|
-
}
|
59
|
-
token1 {
|
60
|
-
id
|
61
|
-
decimals
|
62
|
-
}
|
63
|
-
}
|
64
|
-
}
|
43
|
+
const query = (0, graphql_request_1.gql) `
|
44
|
+
{
|
45
|
+
pairs(
|
46
|
+
orderBy: reserveUSD
|
47
|
+
first: ${length}
|
48
|
+
orderDirection: desc
|
49
|
+
where: { trackedReserveETH_not: "0" }
|
50
|
+
) {
|
51
|
+
id
|
52
|
+
reserve0
|
53
|
+
reserve1
|
54
|
+
totalSupply
|
55
|
+
token0 {
|
56
|
+
id
|
57
|
+
decimals
|
58
|
+
}
|
59
|
+
token1 {
|
60
|
+
id
|
61
|
+
decimals
|
62
|
+
}
|
63
|
+
}
|
64
|
+
}
|
65
65
|
`;
|
66
66
|
const res = yield (0, graphql_request_1.default)(url, query);
|
67
67
|
const pairs = res.pairs;
|
@@ -41,20 +41,20 @@ const getMultipleAccountsInfoSafe_1 = require("../../utils/solana/getMultipleAcc
|
|
41
41
|
const helpers_1 = require("./helpers");
|
42
42
|
const AirdropFetcher_1 = require("../../AirdropFetcher");
|
43
43
|
const getClaimTransactions_1 = require("../../utils/solana/jupiter/getClaimTransactions");
|
44
|
-
const query = (0, graphql_request_1.gql) `
|
45
|
-
query GetAirdropFinalFrontend($authority: String!) {
|
46
|
-
getAirdropFinalFrontend(authority: $authority) {
|
47
|
-
authority
|
48
|
-
community_allocation
|
49
|
-
eligibility
|
50
|
-
main_allocation
|
51
|
-
og_allocation
|
52
|
-
s1_allocation
|
53
|
-
s2_allocation
|
54
|
-
total_allocation
|
55
|
-
__typename
|
56
|
-
}
|
57
|
-
}
|
44
|
+
const query = (0, graphql_request_1.gql) `
|
45
|
+
query GetAirdropFinalFrontend($authority: String!) {
|
46
|
+
getAirdropFinalFrontend(authority: $authority) {
|
47
|
+
authority
|
48
|
+
community_allocation
|
49
|
+
eligibility
|
50
|
+
main_allocation
|
51
|
+
og_allocation
|
52
|
+
s1_allocation
|
53
|
+
s2_allocation
|
54
|
+
total_allocation
|
55
|
+
__typename
|
56
|
+
}
|
57
|
+
}
|
58
58
|
`;
|
59
59
|
const executor = (owner) => __awaiter(void 0, void 0, void 0, function* () {
|
60
60
|
const res = yield (0, graphql_request_1.default)(constants_1.graphqlApi, query, {
|
@@ -20,20 +20,19 @@ class AssetCollectibleBuilder extends AssetBuilder_1.AssetBuilder {
|
|
20
20
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
21
21
|
tokenPrices) {
|
22
22
|
var _a;
|
23
|
+
const amount = new bignumber_js_1.default(this.params.amount || 1).toFixed(1);
|
23
24
|
return {
|
24
25
|
type: portfolio_core_1.PortfolioAssetType.collectible,
|
25
26
|
networkId,
|
26
|
-
value: new bignumber_js_1.default(this.params.collection.floorPrice)
|
27
|
-
.multipliedBy(
|
28
|
-
.toNumber(),
|
27
|
+
value: (0, portfolio_core_1.fixUsdValue)(new bignumber_js_1.default(this.params.collection.floorPrice)
|
28
|
+
.multipliedBy(amount)
|
29
|
+
.toNumber()),
|
29
30
|
name: this.params.name || this.params.collection.name,
|
30
31
|
data: {
|
31
32
|
address: this.params.address.toString(),
|
32
|
-
amount:
|
33
|
+
amount: Number(amount),
|
33
34
|
price: new bignumber_js_1.default(this.params.collection.floorPrice).toNumber(),
|
34
35
|
name: this.params.name || this.params.collection.name,
|
35
|
-
/* dataUri: asset.content.json_uri,
|
36
|
-
attributes: asset.content.metadata.attributes, */
|
37
36
|
collection: {
|
38
37
|
name: this.params.collection.name,
|
39
38
|
floorPrice: new bignumber_js_1.default(this.params.collection.floorPrice).toNumber(),
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"AssetCollectibleBuilder.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/utils/elementbuilder/AssetCollectibleBuilder.ts"],"names":[],"mappings":";;;;;;AAAA,+
|
1
|
+
{"version":3,"file":"AssetCollectibleBuilder.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/utils/elementbuilder/AssetCollectibleBuilder.ts"],"names":[],"mappings":";;;;;;AAAA,+DAMoC;AACpC,gEAAqC;AACrC,iDAA8C;AAG9C,MAAa,uBAAwB,SAAQ,2BAAY;IAGvD,YAAY,MAAuC;QACjD,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,kDAAkD;IAClD,cAAc;QACZ,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,GAAG,CACD,SAAwB;IACxB,6DAA6D;IAC7D,WAA0B;;QAE1B,MAAM,MAAM,GAAG,IAAI,sBAAS,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACjE,OAAO;YACL,IAAI,EAAE,mCAAkB,CAAC,WAAW;YACpC,SAAS;YACT,KAAK,EAAE,IAAA,4BAAW,EAChB,IAAI,sBAAS,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC;iBAC7C,YAAY,CAAC,MAAM,CAAC;iBACpB,QAAQ,EAAE,CACd;YACD,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI;YACrD,IAAI,EAAE;gBACJ,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE;gBACvC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC;gBACtB,KAAK,EAAE,IAAI,sBAAS,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,QAAQ,EAAE;gBAClE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI;gBACrD,UAAU,EAAE;oBACV,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI;oBACjC,UAAU,EAAE,IAAI,sBAAS,CACvB,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,CAClC,CAAC,QAAQ,EAAE;iBACb;aACF;YACD,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ;YACzC,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,EAAE;YACxC,IAAI,EACF,IAAI,CAAC,MAAM,CAAC,IAAI;gBAChB,iCAAiC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;YACxD,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU;YAClC,GAAG,EAAE,MAAA,IAAI,CAAC,MAAM,CAAC,GAAG,0CAAE,QAAQ,EAAE;SACjC,CAAC;IACJ,CAAC;CACF;AAjDD,0DAiDC"}
|
@@ -30,7 +30,7 @@ class AssetGenericBuilder extends AssetBuilder_1.AssetBuilder {
|
|
30
30
|
return {
|
31
31
|
type: portfolio_core_1.PortfolioAssetType.generic,
|
32
32
|
networkId,
|
33
|
-
value: value.isZero() ? null : value.toNumber(),
|
33
|
+
value: value.isZero() ? null : (0, portfolio_core_1.fixUsdValue)(value.toNumber()),
|
34
34
|
name: this.params.name,
|
35
35
|
data: {
|
36
36
|
address: this.params.address
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"AssetGenericBuilder.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/utils/elementbuilder/AssetGenericBuilder.ts"],"names":[],"mappings":";;;;;;AAAA,+
|
1
|
+
{"version":3,"file":"AssetGenericBuilder.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/utils/elementbuilder/AssetGenericBuilder.ts"],"names":[],"mappings":";;;;;;AAAA,+DAMoC;AACpC,gEAAqC;AACrC,iDAA8C;AAG9C,MAAa,mBAAoB,SAAQ,2BAAY;IAGnD,YAAY,MAAmC;QAC7C,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,kDAAkD;IAClD,cAAc;QACZ,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,GAAG,CACD,SAAwB;IACxB,6DAA6D;IAC7D,WAA0B;;QAE1B,IAAI,KAAK,GAAG,IAAI,sBAAS,CAAC,CAAC,CAAC,CAAC;QAC7B,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YACtB,KAAK,GAAG,IAAI,sBAAS,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC3C,CAAC;aAAM,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YACnD,KAAK,GAAG,IAAI,sBAAS,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,YAAY,CACpD,IAAI,CAAC,MAAM,CAAC,MAAM,CACnB,CAAC;QACJ,CAAC;QAED,OAAO;YACL,IAAI,EAAE,mCAAkB,CAAC,OAAO;YAChC,SAAS;YACT,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAA,4BAAW,EAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;YAC5D,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI;YACtB,IAAI,EAAE;gBACJ,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO;oBAC1B,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE;oBAChC,CAAC,CAAC,SAAS;gBACb,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM;oBACxB,CAAC,CAAC,IAAI,sBAAS,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE;oBAC9C,CAAC,CAAC,SAAS;aACd;YACD,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,EAAE;YACxC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI;YACtB,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU;YAClC,GAAG,EAAE,MAAA,IAAI,CAAC,MAAM,CAAC,GAAG,0CAAE,QAAQ,EAAE;SACjC,CAAC;IACJ,CAAC;CACF;AA9CD,kDA8CC"}
|
@@ -1,6 +1,6 @@
|
|
1
1
|
/// <reference types="@drift-labs/sdk/node_modules/@solana/web3.js" />
|
2
2
|
/// <reference types="jito-ts/node_modules/@solana/web3.js" />
|
3
|
-
import { NetworkIdType, PortfolioAsset, PortfolioAssetAttributes, SourceRef, TokenPriceMap } from '@sonarwatch/portfolio-core';
|
3
|
+
import { NetworkIdType, PortfolioAsset, PortfolioAssetAttributes, SourceRef, TokenPriceMap, TokenYield } from '@sonarwatch/portfolio-core';
|
4
4
|
import BigNumber from 'bignumber.js';
|
5
5
|
import { PublicKey } from '@solana/web3.js';
|
6
6
|
import { AssetBuilder } from './AssetBuilder';
|
@@ -13,6 +13,7 @@ export declare class AssetTokenBuilder extends AssetBuilder {
|
|
13
13
|
sourceRefs?: SourceRef[];
|
14
14
|
ref?: string | PublicKey;
|
15
15
|
link?: string;
|
16
|
+
tokenYield?: TokenYield;
|
16
17
|
constructor(params: PortfolioAssetTokenParams);
|
17
18
|
tokenAddresses(): string[];
|
18
19
|
getUnderlyings(networkId: NetworkIdType, tokenPrices: TokenPriceMap): PortfolioAsset[];
|
@@ -18,6 +18,7 @@ class AssetTokenBuilder extends AssetBuilder_1.AssetBuilder {
|
|
18
18
|
this.ref = params.ref;
|
19
19
|
this.sourceRefs = params.sourceRefs;
|
20
20
|
this.link = params.link;
|
21
|
+
this.tokenYield = params.tokenYield;
|
21
22
|
}
|
22
23
|
tokenAddresses() {
|
23
24
|
return [this.address];
|
@@ -43,7 +44,7 @@ class AssetTokenBuilder extends AssetBuilder_1.AssetBuilder {
|
|
43
44
|
return null;
|
44
45
|
if (!this.alreadyShifted && tokenPrice)
|
45
46
|
amount = amount.dividedBy(Math.pow(10, tokenPrice.decimals));
|
46
|
-
return Object.assign(Object.assign({}, (0, tokenPriceToAssetToken_1.default)(this.address, amount.toNumber(), networkId, tokenPrice, undefined, this.attributes, this.link)), { sourceRefs: this.sourceRefs, ref: (_a = this.ref) === null || _a === void 0 ? void 0 : _a.toString() });
|
47
|
+
return Object.assign(Object.assign({}, (0, tokenPriceToAssetToken_1.default)(this.address, amount.toNumber(), networkId, tokenPrice, undefined, this.attributes, this.link, this.tokenYield)), { sourceRefs: this.sourceRefs, ref: (_a = this.ref) === null || _a === void 0 ? void 0 : _a.toString() });
|
47
48
|
}
|
48
49
|
}
|
49
50
|
exports.AssetTokenBuilder = AssetTokenBuilder;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"AssetTokenBuilder.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/utils/elementbuilder/AssetTokenBuilder.ts"],"names":[],"mappings":";;;;;;
|
1
|
+
{"version":3,"file":"AssetTokenBuilder.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/utils/elementbuilder/AssetTokenBuilder.ts"],"names":[],"mappings":";;;;;;AAQA,gEAAqC;AAErC,4FAAoE;AACpE,8FAAsE;AACtE,iDAA8C;AAG9C,MAAa,iBAAkB,SAAQ,2BAAY;IAUjD,YAAY,MAAiC;QAC3C,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;QACzC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAC5B,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,IAAI,EAAE,CAAC;QAC1C,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,cAAc,IAAI,KAAK,CAAC;QACrD,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC;QACtB,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;QACpC,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;QACxB,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;IACtC,CAAC;IAED,cAAc;QACZ,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACxB,CAAC;IAED,cAAc,CACZ,SAAwB,EACxB,WAA0B;QAE1B,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACjD,IAAI,CAAC,UAAU;YAAE,OAAO,EAAE,CAAC;QAE3B,IAAI,MAAM,GAAG,IAAI,sBAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAExC,IAAI,MAAM,CAAC,MAAM,EAAE,IAAI,UAAU,CAAC,WAAW;YAAE,OAAO,EAAE,CAAC;QAEzD,IAAI,CAAC,IAAI,CAAC,cAAc;YACtB,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,SAAA,EAAE,EAAI,UAAU,CAAC,QAAQ,CAAA,CAAC,CAAC;QAEvD,OAAO,IAAA,iCAAuB,EAC5B,UAAU,CAAC,OAAO,EAClB,MAAM,CAAC,QAAQ,EAAE,EACjB,SAAS,EACT,UAAU,EACV,SAAS,EACT,IAAI,CAAC,UAAU,CAChB,CAAC;IACJ,CAAC;IAED,GAAG,CACD,SAAwB,EACxB,WAA0B;;QAE1B,IAAI,MAAM,GAAG,IAAI,sBAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACxC,IAAI,MAAM,CAAC,MAAM,EAAE;YAAE,OAAO,IAAI,CAAC;QAEjC,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACjD,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,cAAc;YAAE,OAAO,IAAI,CAAC;QAErD,IAAI,CAAC,IAAI,CAAC,cAAc,IAAI,UAAU;YACpC,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,SAAA,EAAE,EAAI,UAAU,CAAC,QAAQ,CAAA,CAAC,CAAC;QAEvD,uCACK,IAAA,gCAAsB,EACvB,IAAI,CAAC,OAAO,EACZ,MAAM,CAAC,QAAQ,EAAE,EACjB,SAAS,EACT,UAAU,EACV,SAAS,EACT,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,UAAU,CAChB,KACD,UAAU,EAAE,IAAI,CAAC,UAAU,EAC3B,GAAG,EAAE,MAAA,IAAI,CAAC,GAAG,0CAAE,QAAQ,EAAE,IACzB;IACJ,CAAC;CACF;AA9ED,8CA8EC"}
|
@@ -69,13 +69,13 @@ class ElementLeverageBuilder extends ElementBuilder_1.ElementBuilder {
|
|
69
69
|
data: {
|
70
70
|
isolated: {
|
71
71
|
positions: isoPositions,
|
72
|
-
value: isoValue,
|
72
|
+
value: (0, portfolio_core_1.fixUsdValue)(isoValue),
|
73
73
|
},
|
74
74
|
cross: {
|
75
75
|
positions: crossPositions,
|
76
76
|
collateralAssets: crossCollateralAssets,
|
77
77
|
collateralValue: (0, portfolio_core_1.getUsdValueSum)(crossCollateralAssets.map((a) => a.value)),
|
78
|
-
value: crossValue,
|
78
|
+
value: (0, portfolio_core_1.fixUsdValue)(crossValue),
|
79
79
|
leverage: crossLeverage,
|
80
80
|
},
|
81
81
|
value,
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"ElementLeverageBuilder.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/utils/elementbuilder/ElementLeverageBuilder.ts"],"names":[],"mappings":";;;AAAA,+
|
1
|
+
{"version":3,"file":"ElementLeverageBuilder.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/utils/elementbuilder/ElementLeverageBuilder.ts"],"names":[],"mappings":";;;AAAA,+DASoC;AACpC,qDAAkD;AAOlD,6DAG8B;AAC9B,2DAAwD;AAExD,MAAa,sBAAuB,SAAQ,+BAAc;IAKxD,YAAY,MAAc;QACxB,KAAK,CAAC,MAAM,CAAC,CAAC;QACd,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;QACzB,IAAI,CAAC,qBAAqB,GAAG,EAAE,CAAC;IAClC,CAAC;IAEQ,cAAc;QACrB,MAAM,SAAS,GAAa,EAAE,CAAC;QAC/B,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;YAC9B,IAAI,CAAC,CAAC,YAAY;gBAAE,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;QACrD,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;YAChC,IAAI,CAAC,CAAC,YAAY;gBAAE,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;QACrD,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;YACvC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QAC5B,CAAC,CAAC,CAAC;QACH,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,cAAc,CAAC,MAA4B;QACzC,MAAM,kBAAkB,GAAG,IAAI,0CAAqB,CAAC,MAAM,CAAC,CAAC;QAC7D,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAC3C,OAAO,kBAAkB,CAAC;IAC5B,CAAC;IAED,gBAAgB,CAAC,MAA8B;QAC7C,MAAM,oBAAoB,GAAG,IAAI,4CAAuB,CAAC,MAAM,CAAC,CAAC;QACjE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QAC/C,OAAO,oBAAoB,CAAC;IAC9B,CAAC;IAED,kBAAkB,CAAC,MAAiC;QAClD,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,qCAAiB,CAAC,MAAM,CAAC,CAAC,CAAC;IACjE,CAAC;IAED,GAAG,CACD,SAAwB,EACxB,UAAkB,EAClB,WAA0B;;QAE1B,IACE,IAAI,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC;YAC9B,IAAI,CAAC,cAAc,CAAC,MAAM,KAAK,CAAC;YAChC,IAAI,CAAC,qBAAqB,CAAC,MAAM,KAAK,CAAC;YAEvC,OAAO,IAAI,CAAC;QAEd,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;QACpE,MAAM,QAAQ,GAAG,IAAA,+BAAc,EAAC,CAAC,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACvE,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;QACxE,MAAM,qBAAqB,GAAG,IAAI,CAAC,qBAAqB;aACrD,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;aACzC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,CAAqB,CAAC;QACjD,MAAM,UAAU,GAAG,IAAA,+BAAc,EAAC;YAChC,GAAG,qBAAqB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;YAC5C,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;SACzC,CAAC,CAAC;QACH,MAAM,mBAAmB,GAAG,IAAA,qCAAoB,EAC9C,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CACvC,CAAC;QACF,MAAM,aAAa,GACjB,mBAAmB,IAAI,UAAU;YAC/B,CAAC,CAAC,mBAAmB,GAAG,UAAU;YAClC,CAAC,CAAC,SAAS,CAAC;QAEhB,MAAM,KAAK,GAAG,IAAA,+BAAc,EAAC,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC;QAErD,OAAO;YACL,IAAI,EAAE,qCAAoB,CAAC,QAAQ;YACnC,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,IAAI,EAAE;gBACJ,QAAQ,EAAE;oBACR,SAAS,EAAE,YAAY;oBACvB,KAAK,EAAE,IAAA,4BAAW,EAAC,QAAQ,CAAC;iBAC7B;gBACD,KAAK,EAAE;oBACL,SAAS,EAAE,cAAc;oBACzB,gBAAgB,EAAE,qBAAqB;oBACvC,eAAe,EAAE,IAAA,+BAAc,EAC7B,qBAAqB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAC1C;oBACD,KAAK,EAAE,IAAA,4BAAW,EAAC,UAAU,CAAC;oBAC9B,QAAQ,EAAE,aAAa;iBACxB;gBACD,KAAK;gBACL,GAAG,EAAE,MAAA,IAAI,CAAC,GAAG,0CAAE,QAAQ,EAAE;gBACzB,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,IAAI,EAAE,IAAI,CAAC,IAAI;aAChB;YACD,SAAS;YACT,UAAU,EAAE,IAAI,CAAC,UAAU,IAAI,UAAU;YACzC,KAAK;SACN,CAAC;IACJ,CAAC;CACF;AAvGD,wDAuGC"}
|
@@ -10,8 +10,8 @@ class IsoLevPositionBuilder {
|
|
10
10
|
get(networkId) {
|
11
11
|
return Object.assign(Object.assign({}, this.params), { address: this.params.address
|
12
12
|
? (0, portfolio_core_1.formatTokenAddress)(this.params.address, networkId)
|
13
|
-
: undefined, value: this.params.value ||
|
14
|
-
(0, portfolio_core_1.getUsdValueSum)([this.params.collateralValue, this.params.pnlValue]) });
|
13
|
+
: undefined, value: (0, portfolio_core_1.fixUsdValue)(this.params.value ||
|
14
|
+
(0, portfolio_core_1.getUsdValueSum)([this.params.collateralValue, this.params.pnlValue])) });
|
15
15
|
}
|
16
16
|
get tokenAddress() {
|
17
17
|
return this.params.address;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"LevPositionBuilder.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/utils/elementbuilder/LevPositionBuilder.ts"],"names":[],"mappings":";;;AAAA,yCAAyC;AACzC,+
|
1
|
+
{"version":3,"file":"LevPositionBuilder.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/utils/elementbuilder/LevPositionBuilder.ts"],"names":[],"mappings":";;;AAAA,yCAAyC;AACzC,+DAOoC;AAGpC,MAAa,qBAAqB;IAGhC,YAAY,MAA4B;QACtC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,GAAG,CAAC,SAAwB;QAC1B,uCACK,IAAI,CAAC,MAAM,KACd,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO;gBAC1B,CAAC,CAAC,IAAA,mCAAkB,EAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC;gBACpD,CAAC,CAAC,SAAS,EACb,KAAK,EAAE,IAAA,4BAAW,EAChB,IAAI,CAAC,MAAM,CAAC,KAAK;gBACf,IAAA,+BAAc,EAAC,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CACtE,IACD;IACJ,CAAC;IAED,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;IAC7B,CAAC;CACF;AAvBD,sDAuBC;AAED,MAAa,uBAAuB;IAGlC,YAAY,MAA8B;QACxC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,GAAG,CAAC,SAAwB;QAC1B,uCACK,IAAI,CAAC,MAAM,KACd,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO;gBAC1B,CAAC,CAAC,IAAA,mCAAkB,EAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC;gBACpD,CAAC,CAAC,SAAS,IACb;IACJ,CAAC;IAED,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;IAC7B,CAAC;CACF;AAnBD,0DAmBC"}
|
@@ -1,6 +1,6 @@
|
|
1
1
|
/// <reference types="@drift-labs/sdk/node_modules/@solana/web3.js" />
|
2
2
|
/// <reference types="jito-ts/node_modules/@solana/web3.js" />
|
3
|
-
import { CrossLevPosition, IsoLevPosition, PortfolioAssetAttributes, PortfolioElementLabel, PortfolioElementTypeType, SourceRef, UsdValue } from '@sonarwatch/portfolio-core';
|
3
|
+
import { CrossLevPosition, IsoLevPosition, PortfolioAssetAttributes, PortfolioElementLabel, PortfolioElementTypeType, SourceRef, TokenYield, UsdValue } from '@sonarwatch/portfolio-core';
|
4
4
|
import { PublicKey } from '@solana/web3.js';
|
5
5
|
import BigNumber from 'bignumber.js';
|
6
6
|
export type Params = {
|
@@ -70,6 +70,7 @@ export type PortfolioAssetTokenParams = {
|
|
70
70
|
sourceRefs?: SourceRef[];
|
71
71
|
ref?: string | PublicKey;
|
72
72
|
link?: string;
|
73
|
+
tokenYield?: TokenYield;
|
73
74
|
};
|
74
75
|
export type TradeParams = {
|
75
76
|
inputAsset: Omit<PortfolioAssetTokenParams, 'amount'> & {
|
@@ -3,13 +3,16 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const portfolio_core_1 = require("@sonarwatch/portfolio-core");
|
4
4
|
function tokenPriceToAssetToken(address, amount, networkId, tokenPrice, price, attributes, link, tokenYield) {
|
5
5
|
const fPrice = (tokenPrice === null || tokenPrice === void 0 ? void 0 : tokenPrice.price) || price || null;
|
6
|
+
const fAmount = tokenPrice
|
7
|
+
? Number(amount.toFixed(tokenPrice.decimals))
|
8
|
+
: amount;
|
6
9
|
return {
|
7
10
|
type: portfolio_core_1.PortfolioAssetType.token,
|
8
11
|
networkId,
|
9
|
-
value: fPrice ? fPrice * amount : null,
|
12
|
+
value: (0, portfolio_core_1.fixUsdValue)(fPrice ? fPrice * amount : null),
|
10
13
|
data: {
|
11
14
|
address: (0, portfolio_core_1.formatTokenAddress)(address, networkId),
|
12
|
-
amount,
|
15
|
+
amount: fAmount,
|
13
16
|
price: fPrice,
|
14
17
|
yield: tokenYield === null || tokenYield === void 0 ? void 0 : tokenYield.yield,
|
15
18
|
},
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"tokenPriceToAssetToken.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/utils/misc/tokenPriceToAssetToken.ts"],"names":[],"mappings":";;AAAA,+
|
1
|
+
{"version":3,"file":"tokenPriceToAssetToken.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/utils/misc/tokenPriceToAssetToken.ts"],"names":[],"mappings":";;AAAA,+DAWoC;AAEpC,SAAwB,sBAAsB,CAC5C,OAAe,EACf,MAAc,EACd,SAAwB,EACxB,UAAqD,EACrD,KAAc,EACd,UAAqC,EACrC,IAAa,EACb,UAA8B;IAE9B,MAAM,MAAM,GAAa,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,KAAK,KAAI,KAAK,IAAI,IAAI,CAAC;IAC5D,MAAM,OAAO,GAAG,UAAU;QACxB,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QAC7C,CAAC,CAAC,MAAM,CAAC;IACX,OAAO;QACL,IAAI,EAAE,mCAAkB,CAAC,KAAK;QAC9B,SAAS;QACT,KAAK,EAAE,IAAA,4BAAW,EAAC,MAAM,CAAC,CAAC,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC;QACnD,IAAI,EAAE;YACJ,OAAO,EAAE,IAAA,mCAAkB,EAAC,OAAO,EAAE,SAAS,CAAC;YAC/C,MAAM,EAAE,OAAO;YACf,KAAK,EAAE,MAAM;YACb,KAAK,EAAE,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,KAAK;SACzB;QACD,UAAU,EAAE,UAAU,IAAI,EAAE;QAC5B,IAAI;KACL,CAAC;AACJ,CAAC;AA3BD,yCA2BC"}
|
@@ -9,10 +9,10 @@ function tokenPriceToLiquidity(address, amount, networkId, tokenPrice, tokenYiel
|
|
9
9
|
const assets = (0, tokenPriceToAssetTokens_1.default)(address, amount, networkId, tokenPrice);
|
10
10
|
return {
|
11
11
|
assets,
|
12
|
-
assetsValue: (0, portfolio_core_1.getUsdValueSum)(assets.map((a) => a.value)),
|
12
|
+
assetsValue: (0, portfolio_core_1.fixUsdValue)((0, portfolio_core_1.getUsdValueSum)(assets.map((a) => a.value))),
|
13
13
|
rewardAssets: [],
|
14
14
|
rewardAssetsValue: 0,
|
15
|
-
value: (0, portfolio_core_1.getUsdValueSum)(assets.map((a) => a.value)),
|
15
|
+
value: (0, portfolio_core_1.fixUsdValue)((0, portfolio_core_1.getUsdValueSum)(assets.map((a) => a.value))),
|
16
16
|
yields: tokenYield ? [tokenYield.yield] : [],
|
17
17
|
name: tokenPrice.liquidityName,
|
18
18
|
link: tokenPrice.link,
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"tokenPriceToLiquidity.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/utils/misc/tokenPriceToLiquidity.ts"],"names":[],"mappings":";;;;;AAAA,+
|
1
|
+
{"version":3,"file":"tokenPriceToLiquidity.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/utils/misc/tokenPriceToLiquidity.ts"],"names":[],"mappings":";;;;;AAAA,+DAOoC;AACpC,wFAAgE;AAEhE,SAAwB,qBAAqB,CAC3C,OAAe,EACf,MAAc,EACd,SAAwB,EACxB,UAAsB,EACtB,UAAuB;IAEvB,MAAM,MAAM,GAAG,IAAA,iCAAuB,EACpC,OAAO,EACP,MAAM,EACN,SAAS,EACT,UAAU,CACX,CAAC;IACF,OAAO;QACL,MAAM;QACN,WAAW,EAAE,IAAA,4BAAW,EAAC,IAAA,+BAAc,EAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;QACpE,YAAY,EAAE,EAAE;QAChB,iBAAiB,EAAE,CAAC;QACpB,KAAK,EAAE,IAAA,4BAAW,EAAC,IAAA,+BAAc,EAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;QAC9D,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE;QAC5C,IAAI,EAAE,UAAU,CAAC,aAAa;QAC9B,IAAI,EAAE,UAAU,CAAC,IAAI;QACrB,UAAU,EAAE;YACV;gBACE,OAAO;gBACP,IAAI,EAAE,MAAM;aACb;SACF;KACF,CAAC;AACJ,CAAC;AA7BD,wCA6BC"}
|
@@ -1,16 +1,16 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
3
|
exports.poolQueryMsg = exports.minterQueryMsg = exports.tokenInfoQueryMsg = exports.infoQueryMsg = void 0;
|
4
|
-
exports.infoQueryMsg = JSON.parse(`{
|
5
|
-
"info": {}
|
4
|
+
exports.infoQueryMsg = JSON.parse(`{
|
5
|
+
"info": {}
|
6
6
|
}`);
|
7
|
-
exports.tokenInfoQueryMsg = JSON.parse(`{
|
8
|
-
"token_info": {}
|
7
|
+
exports.tokenInfoQueryMsg = JSON.parse(`{
|
8
|
+
"token_info": {}
|
9
9
|
}`);
|
10
|
-
exports.minterQueryMsg = JSON.parse(`{
|
11
|
-
"minter": {}
|
10
|
+
exports.minterQueryMsg = JSON.parse(`{
|
11
|
+
"minter": {}
|
12
12
|
}`);
|
13
|
-
exports.poolQueryMsg = JSON.parse(`{
|
14
|
-
"pool": {}
|
13
|
+
exports.poolQueryMsg = JSON.parse(`{
|
14
|
+
"pool": {}
|
15
15
|
}`);
|
16
16
|
//# sourceMappingURL=constants.js.map
|
@@ -1,10 +1,10 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
3
|
function getQueryBalanceByOwner(owner) {
|
4
|
-
return JSON.parse(`{
|
5
|
-
"balance": {
|
6
|
-
"address": "${owner}"
|
7
|
-
}
|
4
|
+
return JSON.parse(`{
|
5
|
+
"balance": {
|
6
|
+
"address": "${owner}"
|
7
|
+
}
|
8
8
|
}`);
|
9
9
|
}
|
10
10
|
exports.default = getQueryBalanceByOwner;
|
@@ -1,4 +1,5 @@
|
|
1
|
-
import { TokenAccount } from './structs';
|
1
|
+
import { TokenAccount, TokenAccountWithMetadata } from './structs';
|
2
2
|
import { ParsedAccount } from './types';
|
3
|
-
|
3
|
+
import { SolanaClient } from '../clients/types';
|
4
|
+
export declare const getTokenAccountsByOwner: (client: SolanaClient, owner: string) => Promise<ParsedAccount<TokenAccountWithMetadata>[]>;
|
4
5
|
export declare const getTokenAccountsByOwnerMemo: (owner: string) => Promise<ParsedAccount<TokenAccount>[]>;
|
@@ -13,10 +13,12 @@ exports.getTokenAccountsByOwnerMemo = exports.getTokenAccountsByOwner = void 0;
|
|
13
13
|
const web3_js_1 = require("@solana/web3.js");
|
14
14
|
const constants_1 = require("./constants");
|
15
15
|
const structs_1 = require("./structs");
|
16
|
-
const clients_1 = require("../clients");
|
17
16
|
const MemoryCache_1 = require("../misc/MemoryCache");
|
18
|
-
const
|
19
|
-
|
17
|
+
const clients_1 = require("../clients");
|
18
|
+
const helpers_1 = require("../../plugins/metaplex/helpers");
|
19
|
+
const getParsedMultipleAccountsInfo_1 = require("./getParsedMultipleAccountsInfo");
|
20
|
+
const structs_2 = require("../../plugins/metaplex/structs");
|
21
|
+
const getTokenAccountsByOwner = (client, owner) => __awaiter(void 0, void 0, void 0, function* () {
|
20
22
|
const tokenAccounts = yield Promise.all([
|
21
23
|
client.getTokenAccountsByOwner(new web3_js_1.PublicKey(owner), {
|
22
24
|
programId: constants_1.solanaTokenPidPk,
|
@@ -25,12 +27,27 @@ const getTokenAccountsByOwner = (owner) => __awaiter(void 0, void 0, void 0, fun
|
|
25
27
|
programId: constants_1.solanaToken2022PidPk,
|
26
28
|
}),
|
27
29
|
]);
|
28
|
-
|
30
|
+
const tokenAccountsInfo = [
|
31
|
+
...tokenAccounts[0].value,
|
32
|
+
...tokenAccounts[1].value,
|
33
|
+
]
|
29
34
|
.map((x) => (Object.assign(Object.assign({}, structs_1.tokenAccountStruct.deserialize(x.account.data)[0]), { pubkey: x.pubkey, lamports: x.account.lamports, tokenProgram: x.account.owner })))
|
30
35
|
.filter((a) => !a.amount.isZero());
|
36
|
+
const metadataAccounts = yield (0, getParsedMultipleAccountsInfo_1.getParsedMultipleAccountsInfo)(client, structs_2.metadataAccountStruct, tokenAccountsInfo
|
37
|
+
.filter((t) => t.amount.isEqualTo(1))
|
38
|
+
.map((t) => (0, helpers_1.getMetadataPubkey)(t.mint)));
|
39
|
+
return tokenAccountsInfo.map((t, i) => {
|
40
|
+
const metadataAccount = metadataAccounts[i];
|
41
|
+
if (!metadataAccount)
|
42
|
+
return t;
|
43
|
+
return Object.assign(Object.assign({}, t), { metadata: {
|
44
|
+
name: metadataAccount.data.name.split('\x00')[0].trim(),
|
45
|
+
symbol: metadataAccount.data.symbol.split('\x00')[0].trim(),
|
46
|
+
} });
|
47
|
+
});
|
31
48
|
});
|
32
49
|
exports.getTokenAccountsByOwner = getTokenAccountsByOwner;
|
33
|
-
const memoCollection = new MemoryCache_1.MemoryCache(exports.getTokenAccountsByOwner);
|
50
|
+
const memoCollection = new MemoryCache_1.MemoryCache((owner) => (0, exports.getTokenAccountsByOwner)((0, clients_1.getClientSolana)(), owner));
|
34
51
|
const getTokenAccountsByOwnerMemo = (owner) => __awaiter(void 0, void 0, void 0, function* () { return memoCollection.getItem(owner); });
|
35
52
|
exports.getTokenAccountsByOwnerMemo = getTokenAccountsByOwnerMemo;
|
36
53
|
//# sourceMappingURL=getTokenAccountsByOwner.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"getTokenAccountsByOwner.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/utils/solana/getTokenAccountsByOwner.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAA4C;AAC5C,2CAAqE;AACrE,
|
1
|
+
{"version":3,"file":"getTokenAccountsByOwner.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/utils/solana/getTokenAccountsByOwner.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAA4C;AAC5C,2CAAqE;AACrE,uCAImB;AAEnB,qDAAkD;AAElD,wCAA6C;AAC7C,4DAAmE;AACnE,mFAAgF;AAChF,4DAAuE;AAEhE,MAAM,uBAAuB,GAAG,CACrC,MAAoB,EACpB,KAAa,EACuC,EAAE;IACtD,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACtC,MAAM,CAAC,uBAAuB,CAAC,IAAI,mBAAS,CAAC,KAAK,CAAC,EAAE;YACnD,SAAS,EAAE,4BAAgB;SAC5B,CAAC;QACF,MAAM,CAAC,uBAAuB,CAAC,IAAI,mBAAS,CAAC,KAAK,CAAC,EAAE;YACnD,SAAS,EAAE,gCAAoB;SAChC,CAAC;KACH,CAAC,CAAC;IAEH,MAAM,iBAAiB,GAAG;QACxB,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,KAAK;QACzB,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,KAAK;KAC1B;SACE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,iCACP,4BAAkB,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KACpD,MAAM,EAAE,CAAC,CAAC,MAAM,EAChB,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,EAC5B,YAAY,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,IAC7B,CAAC;SACF,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAkC,CAAC;IAEtE,MAAM,gBAAgB,GAAG,MAAM,IAAA,6DAA6B,EAC1D,MAAM,EACN,+BAAqB,EACrB,iBAAiB;SACd,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;SACpC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,2BAAiB,EAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CACzC,CAAC;IAEF,OAAO,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACpC,MAAM,eAAe,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;QAC5C,IAAI,CAAC,eAAe;YAAE,OAAO,CAAC,CAAC;QAC/B,uCACK,CAAC,KACJ,QAAQ,EAAE;gBACR,IAAI,EAAE,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;gBACvD,MAAM,EAAE,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;aAC5D,IACD;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAA,CAAC;AA5CW,QAAA,uBAAuB,2BA4ClC;AAEF,MAAM,cAAc,GAAG,IAAI,yBAAW,CACpC,CAAC,KAAa,EAAE,EAAE,CAAC,IAAA,+BAAuB,EAAC,IAAA,yBAAe,GAAE,EAAE,KAAK,CAAC,CACrE,CAAC;AAEK,MAAM,2BAA2B,GAAG,CAAO,KAAa,EAAE,EAAE,kDACjE,OAAA,cAAc,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA,GAAA,CAAC;AADnB,QAAA,2BAA2B,+BACR"}
|
@@ -31,4 +31,10 @@ export type TokenAccount = {
|
|
31
31
|
readonly closeAuthorityOption: number;
|
32
32
|
readonly closeAuthority: PublicKey;
|
33
33
|
};
|
34
|
+
export type TokenAccountWithMetadata = TokenAccount & {
|
35
|
+
readonly metadata?: {
|
36
|
+
name: string;
|
37
|
+
symbol: string;
|
38
|
+
};
|
39
|
+
};
|
34
40
|
export declare const tokenAccountStruct: BeetStruct<TokenAccount, Partial<TokenAccount>>;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"structs.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/utils/solana/structs.ts"],"names":[],"mappings":";;;AAAA,oDAAsE;AACtE,kEAA6D;AAG7D,6CAAsC;AAYzB,QAAA,iBAAiB,GAAG,IAAI,iBAAU,CAC7C;IACE,CAAC,qBAAqB,EAAE,UAAG,CAAC;IAC5B,CAAC,eAAe,EAAE,uBAAS,CAAC;IAC5B,CAAC,QAAQ,EAAE,aAAG,CAAC;IACf,CAAC,UAAU,EAAE,SAAE,CAAC;IAChB,CAAC,aAAa,EAAE,WAAI,CAAC;IACrB,CAAC,uBAAuB,EAAE,UAAG,CAAC;IAC9B,CAAC,iBAAiB,EAAE,uBAAS,CAAC;CAC/B,EACD,CAAC,IAAI,EAAE,EAAE,CAAC,IAAmB,EAC7B,aAAa,CACd,CAAC;AAEF,IAAY,YAIX;AAJD,WAAY,YAAY;IACtB,iEAAiB,CAAA;IACjB,6DAAe,CAAA;IACf,mDAAU,CAAA;AACZ,CAAC,EAJW,YAAY,4BAAZ,YAAY,QAIvB;
|
1
|
+
{"version":3,"file":"structs.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/utils/solana/structs.ts"],"names":[],"mappings":";;;AAAA,oDAAsE;AACtE,kEAA6D;AAG7D,6CAAsC;AAYzB,QAAA,iBAAiB,GAAG,IAAI,iBAAU,CAC7C;IACE,CAAC,qBAAqB,EAAE,UAAG,CAAC;IAC5B,CAAC,eAAe,EAAE,uBAAS,CAAC;IAC5B,CAAC,QAAQ,EAAE,aAAG,CAAC;IACf,CAAC,UAAU,EAAE,SAAE,CAAC;IAChB,CAAC,aAAa,EAAE,WAAI,CAAC;IACrB,CAAC,uBAAuB,EAAE,UAAG,CAAC;IAC9B,CAAC,iBAAiB,EAAE,uBAAS,CAAC;CAC/B,EACD,CAAC,IAAI,EAAE,EAAE,CAAC,IAAmB,EAC7B,aAAa,CACd,CAAC;AAEF,IAAY,YAIX;AAJD,WAAY,YAAY;IACtB,iEAAiB,CAAA;IACjB,6DAAe,CAAA;IACf,mDAAU,CAAA;AACZ,CAAC,EAJW,YAAY,4BAAZ,YAAY,QAIvB;AAuBY,QAAA,kBAAkB,GAAG,IAAI,iBAAU,CAC9C;IACE,CAAC,MAAM,EAAE,uBAAS,CAAC;IACnB,CAAC,OAAO,EAAE,uBAAS,CAAC;IACpB,CAAC,QAAQ,EAAE,aAAG,CAAC;IACf,CAAC,gBAAgB,EAAE,UAAG,CAAC;IACvB,CAAC,UAAU,EAAE,uBAAS,CAAC;IACvB,CAAC,OAAO,EAAE,SAAE,CAAC;IACb,CAAC,gBAAgB,EAAE,UAAG,CAAC;IACvB,CAAC,UAAU,EAAE,aAAG,CAAC;IACjB,CAAC,iBAAiB,EAAE,aAAG,CAAC;IACxB,CAAC,sBAAsB,EAAE,UAAG,CAAC;IAC7B,CAAC,gBAAgB,EAAE,uBAAS,CAAC;CAC9B,EACD,CAAC,IAAI,EAAE,EAAE,CAAC,IAAoB,EAC9B,cAAc,CACf,CAAC"}
|
@@ -1,3 +0,0 @@
|
|
1
|
-
import { ParsedAccount, TokenAccount } from '../../utils/solana';
|
2
|
-
import { Cache } from '../../Cache';
|
3
|
-
export declare const getClmmPositions: (potentialTokens: ParsedAccount<TokenAccount>[], cache: Cache) => Promise<import("@sonarwatch/portfolio-core").PortfolioElement[]>;
|
@@ -1,107 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
9
|
-
});
|
10
|
-
};
|
11
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
12
|
-
exports.getClmmPositions = void 0;
|
13
|
-
const web3_js_1 = require("@solana/web3.js");
|
14
|
-
const portfolio_core_1 = require("@sonarwatch/portfolio-core");
|
15
|
-
const clients_1 = require("../../utils/clients");
|
16
|
-
const solana_1 = require("../../utils/solana");
|
17
|
-
const clmms_1 = require("./structs/clmms");
|
18
|
-
const constants_1 = require("./constants");
|
19
|
-
const helpers_1 = require("./helpers");
|
20
|
-
const ElementRegistry_1 = require("../../utils/elementbuilder/ElementRegistry");
|
21
|
-
const getClmmPositions = (potentialTokens, cache) => __awaiter(void 0, void 0, void 0, function* () {
|
22
|
-
if (!potentialTokens.length)
|
23
|
-
return [];
|
24
|
-
const positionsProgramAddress = potentialTokens.map((address) => web3_js_1.PublicKey.findProgramAddressSync([Buffer.from('position'), address.mint.toBuffer()], constants_1.raydiumProgram)[0]);
|
25
|
-
if (positionsProgramAddress.length === 0)
|
26
|
-
return [];
|
27
|
-
const client = (0, clients_1.getClientSolana)();
|
28
|
-
const personalPositionsInfo = yield (0, solana_1.getParsedMultipleAccountsInfo)(client, clmms_1.personalPositionStateStruct, positionsProgramAddress);
|
29
|
-
if (!personalPositionsInfo || personalPositionsInfo.length === 0)
|
30
|
-
return [];
|
31
|
-
const poolsIds = personalPositionsInfo.flatMap((position) => position ? position.poolId : []);
|
32
|
-
const [poolStatesInfo, poolsStats] = yield Promise.all([
|
33
|
-
(0, solana_1.getParsedMultipleAccountsInfo)(client, clmms_1.poolStateStruct, poolsIds),
|
34
|
-
cache.getItems(poolsIds.map((p) => p.toString()), { prefix: constants_1.poolStatsPrefix, networkId: portfolio_core_1.NetworkId.solana }),
|
35
|
-
]);
|
36
|
-
const tickArrays = yield Promise.all(personalPositionsInfo.map((personalPositionInfo, index) => {
|
37
|
-
if (!personalPositionInfo)
|
38
|
-
return [];
|
39
|
-
const poolStateInfo = poolStatesInfo[index];
|
40
|
-
if (!poolStateInfo)
|
41
|
-
return [];
|
42
|
-
return (0, solana_1.getParsedMultipleAccountsInfo)(client, clmms_1.tickArrayStatetruct, [
|
43
|
-
(0, helpers_1.getTickArrayAddress)(constants_1.raydiumProgram.toString(), poolStateInfo.pubkey.toString(), personalPositionInfo.tickLowerIndex, poolStateInfo.tickSpacing),
|
44
|
-
(0, helpers_1.getTickArrayAddress)(constants_1.raydiumProgram.toString(), poolStateInfo.pubkey.toString(), personalPositionInfo.tickUpperIndex, poolStateInfo.tickSpacing),
|
45
|
-
]);
|
46
|
-
}));
|
47
|
-
const elementRegistry = new ElementRegistry_1.ElementRegistry(portfolio_core_1.NetworkId.solana, constants_1.platformId);
|
48
|
-
for (let index = 0; index < personalPositionsInfo.length; index++) {
|
49
|
-
const personalPositionInfo = personalPositionsInfo[index];
|
50
|
-
if (!personalPositionInfo)
|
51
|
-
continue;
|
52
|
-
const poolStateInfo = poolStatesInfo.find((p) => p && personalPositionInfo.poolId.toString() === p.pubkey.toString());
|
53
|
-
if (!poolStateInfo)
|
54
|
-
continue;
|
55
|
-
const element = elementRegistry.addElementConcentratedLiquidity({
|
56
|
-
link: 'https://raydium.io/portfolio/?position_tab=concentrated',
|
57
|
-
});
|
58
|
-
const poolStats = poolsStats.find((p) => (p === null || p === void 0 ? void 0 : p.address) === personalPositionInfo.poolId.toString());
|
59
|
-
const liquidity = element.setLiquidity({
|
60
|
-
addressA: poolStateInfo.tokenMint0,
|
61
|
-
addressB: poolStateInfo.tokenMint1,
|
62
|
-
liquidity: personalPositionInfo.liquidity,
|
63
|
-
tickCurrentIndex: poolStateInfo.tickCurrent,
|
64
|
-
tickLowerIndex: personalPositionInfo.tickLowerIndex,
|
65
|
-
tickUpperIndex: personalPositionInfo.tickUpperIndex,
|
66
|
-
ref: personalPositionInfo.pubkey,
|
67
|
-
swapVolume24h: poolStats === null || poolStats === void 0 ? void 0 : poolStats.stats['24h'].volume,
|
68
|
-
feeRate: poolStats === null || poolStats === void 0 ? void 0 : poolStats.feeRate,
|
69
|
-
currentSqrtPrice: poolStateInfo.sqrtPriceX64,
|
70
|
-
poolLiquidity: poolStateInfo.liquidity,
|
71
|
-
sourceRefs: [
|
72
|
-
{
|
73
|
-
name: 'Pool',
|
74
|
-
address: personalPositionInfo.poolId.toString(),
|
75
|
-
},
|
76
|
-
{
|
77
|
-
name: 'NFT Mint',
|
78
|
-
address: personalPositionInfo.nftMint.toString(),
|
79
|
-
},
|
80
|
-
],
|
81
|
-
});
|
82
|
-
const feesAndRewardsBalances = (0, helpers_1.getFeesAndRewardsBalance)(personalPositionInfo, poolStateInfo, tickArrays[index]);
|
83
|
-
if (feesAndRewardsBalances) {
|
84
|
-
liquidity.addRewardAsset({
|
85
|
-
address: poolStateInfo.tokenMint0,
|
86
|
-
amount: feesAndRewardsBalances.tokenFeeAmountA,
|
87
|
-
});
|
88
|
-
liquidity.addRewardAsset({
|
89
|
-
address: poolStateInfo.tokenMint1,
|
90
|
-
amount: feesAndRewardsBalances.tokenFeeAmountB,
|
91
|
-
});
|
92
|
-
feesAndRewardsBalances.rewards.forEach((rewardBalance, i) => {
|
93
|
-
if (rewardBalance.isZero() ||
|
94
|
-
poolStateInfo.rewardInfos[i].tokenMint.toString() ===
|
95
|
-
'11111111111111111111111111111111')
|
96
|
-
return;
|
97
|
-
liquidity.addRewardAsset({
|
98
|
-
address: poolStateInfo.rewardInfos[i].tokenMint,
|
99
|
-
amount: rewardBalance,
|
100
|
-
});
|
101
|
-
});
|
102
|
-
}
|
103
|
-
}
|
104
|
-
return elementRegistry.getElements(cache);
|
105
|
-
});
|
106
|
-
exports.getClmmPositions = getClmmPositions;
|
107
|
-
//# sourceMappingURL=getClmmPositions.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"getClmmPositions.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/raydium/getClmmPositions.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAA4C;AAC5C,+DAAuD;AACvD,iDAAsD;AACtD,+CAI4B;AAC5B,2CAIyB;AAEzB,2CAA0E;AAC1E,uCAA0E;AAC1E,gFAA6E;AAGtE,MAAM,gBAAgB,GAAG,CAC9B,eAA8C,EAC9C,KAAY,EACZ,EAAE;IACF,IAAI,CAAC,eAAe,CAAC,MAAM;QAAE,OAAO,EAAE,CAAC;IAEvC,MAAM,uBAAuB,GAAG,eAAe,CAAC,GAAG,CACjD,CAAC,OAAO,EAAE,EAAE,CACV,mBAAS,CAAC,sBAAsB,CAC9B,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,EAClD,0BAAc,CACf,CAAC,CAAC,CAAC,CACP,CAAC;IAEF,IAAI,uBAAuB,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAEpD,MAAM,MAAM,GAAG,IAAA,yBAAe,GAAE,CAAC;IAEjC,MAAM,qBAAqB,GAAG,MAAM,IAAA,sCAA6B,EAC/D,MAAM,EACN,mCAA2B,EAC3B,uBAAuB,CACxB,CAAC;IACF,IAAI,CAAC,qBAAqB,IAAI,qBAAqB,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAE5E,MAAM,QAAQ,GAAgB,qBAAqB,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE,CACvE,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAChC,CAAC;IAEF,MAAM,CAAC,cAAc,EAAE,UAAU,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACrD,IAAA,sCAA6B,EAAC,MAAM,EAAE,uBAAe,EAAE,QAAQ,CAAC;QAChE,KAAK,CAAC,QAAQ,CACZ,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,EACjC,EAAE,MAAM,EAAE,2BAAe,EAAE,SAAS,EAAE,0BAAS,CAAC,MAAM,EAAE,CACzD;KACF,CAAC,CAAC;IAEH,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,GAAG,CAClC,qBAAqB,CAAC,GAAG,CAAC,CAAC,oBAAoB,EAAE,KAAK,EAAE,EAAE;QACxD,IAAI,CAAC,oBAAoB;YAAE,OAAO,EAAE,CAAC;QACrC,MAAM,aAAa,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;QAC5C,IAAI,CAAC,aAAa;YAAE,OAAO,EAAE,CAAC;QAE9B,OAAO,IAAA,sCAA6B,EAAC,MAAM,EAAE,2BAAmB,EAAE;YAChE,IAAA,6BAAmB,EACjB,0BAAc,CAAC,QAAQ,EAAE,EACzB,aAAa,CAAC,MAAM,CAAC,QAAQ,EAAE,EAC/B,oBAAoB,CAAC,cAAc,EACnC,aAAa,CAAC,WAAW,CAC1B;YACD,IAAA,6BAAmB,EACjB,0BAAc,CAAC,QAAQ,EAAE,EACzB,aAAa,CAAC,MAAM,CAAC,QAAQ,EAAE,EAC/B,oBAAoB,CAAC,cAAc,EACnC,aAAa,CAAC,WAAW,CAC1B;SACF,CAAC,CAAC;IACL,CAAC,CAAC,CACH,CAAC;IAEF,MAAM,eAAe,GAAG,IAAI,iCAAe,CAAC,0BAAS,CAAC,MAAM,EAAE,sBAAU,CAAC,CAAC;IAE1E,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,qBAAqB,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;QAClE,MAAM,oBAAoB,GAAG,qBAAqB,CAAC,KAAK,CAAC,CAAC;QAC1D,IAAI,CAAC,oBAAoB;YAAE,SAAS;QAEpC,MAAM,aAAa,GAAG,cAAc,CAAC,IAAI,CACvC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,oBAAoB,CAAC,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,CAC3E,CAAC;QACF,IAAI,CAAC,aAAa;YAAE,SAAS;QAE7B,MAAM,OAAO,GAAG,eAAe,CAAC,+BAA+B,CAAC;YAC9D,IAAI,EAAE,yDAAyD;SAChE,CAAC,CAAC;QAEH,MAAM,SAAS,GAAG,UAAU,CAAC,IAAI,CAC/B,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,OAAO,MAAK,oBAAoB,CAAC,MAAM,CAAC,QAAQ,EAAE,CAC7D,CAAC;QAEF,MAAM,SAAS,GAAG,OAAO,CAAC,YAAY,CAAC;YACrC,QAAQ,EAAE,aAAa,CAAC,UAAU;YAClC,QAAQ,EAAE,aAAa,CAAC,UAAU;YAClC,SAAS,EAAE,oBAAoB,CAAC,SAAS;YACzC,gBAAgB,EAAE,aAAa,CAAC,WAAW;YAC3C,cAAc,EAAE,oBAAoB,CAAC,cAAc;YACnD,cAAc,EAAE,oBAAoB,CAAC,cAAc;YACnD,GAAG,EAAE,oBAAoB,CAAC,MAAM;YAChC,aAAa,EAAE,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,KAAK,CAAC,KAAK,EAAE,MAAM;YAC7C,OAAO,EAAE,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,OAAO;YAC3B,gBAAgB,EAAE,aAAa,CAAC,YAAY;YAC5C,aAAa,EAAE,aAAa,CAAC,SAAS;YACtC,UAAU,EAAE;gBACV;oBACE,IAAI,EAAE,MAAM;oBACZ,OAAO,EAAE,oBAAoB,CAAC,MAAM,CAAC,QAAQ,EAAE;iBAChD;gBACD;oBACE,IAAI,EAAE,UAAU;oBAChB,OAAO,EAAE,oBAAoB,CAAC,OAAO,CAAC,QAAQ,EAAE;iBACjD;aACF;SACF,CAAC,CAAC;QAEH,MAAM,sBAAsB,GAAG,IAAA,kCAAwB,EACrD,oBAAoB,EACpB,aAAa,EACb,UAAU,CAAC,KAAK,CAAC,CAClB,CAAC;QAEF,IAAI,sBAAsB,EAAE,CAAC;YAC3B,SAAS,CAAC,cAAc,CAAC;gBACvB,OAAO,EAAE,aAAa,CAAC,UAAU;gBACjC,MAAM,EAAE,sBAAsB,CAAC,eAAe;aAC/C,CAAC,CAAC;YAEH,SAAS,CAAC,cAAc,CAAC;gBACvB,OAAO,EAAE,aAAa,CAAC,UAAU;gBACjC,MAAM,EAAE,sBAAsB,CAAC,eAAe;aAC/C,CAAC,CAAC;YAEH,sBAAsB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,aAAa,EAAE,CAAC,EAAE,EAAE;gBAC1D,IACE,aAAa,CAAC,MAAM,EAAE;oBACtB,aAAa,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,EAAE;wBAC/C,kCAAkC;oBAEpC,OAAO;gBAET,SAAS,CAAC,cAAc,CAAC;oBACvB,OAAO,EAAE,aAAa,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS;oBAC/C,MAAM,EAAE,aAAa;iBACtB,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO,eAAe,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;AAC5C,CAAC,CAAA,CAAC;AAzIW,QAAA,gBAAgB,oBAyI3B"}
|