@sonarwatch/portfolio-plugins 0.14.142 → 0.14.144

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.
Files changed (54) hide show
  1. package/CHANGELOG.md +2177 -2169
  2. package/README.md +3 -3
  3. package/package.json +1 -1
  4. package/src/plugins/balancer/helpers/pools.js +21 -21
  5. package/src/plugins/banx/constants.d.ts +14 -8
  6. package/src/plugins/banx/constants.js +25 -13
  7. package/src/plugins/banx/constants.js.map +1 -1
  8. package/src/plugins/banx/index.js +12 -2
  9. package/src/plugins/banx/index.js.map +1 -1
  10. package/src/plugins/banx/loansFetcher.js +108 -123
  11. package/src/plugins/banx/loansFetcher.js.map +1 -1
  12. package/src/plugins/banx/marketsJob.js +40 -0
  13. package/src/plugins/banx/marketsJob.js.map +1 -0
  14. package/src/plugins/banx/offersFetcher.js +61 -70
  15. package/src/plugins/banx/offersFetcher.js.map +1 -1
  16. package/src/plugins/banx/stakingFetcher.js +6 -3
  17. package/src/plugins/banx/stakingFetcher.js.map +1 -1
  18. package/src/plugins/banx/structs.d.ts +222 -2
  19. package/src/plugins/banx/structs.js +216 -2
  20. package/src/plugins/banx/structs.js.map +1 -1
  21. package/src/plugins/banx/types.d.ts +50 -258
  22. package/src/plugins/banx/vaultsFetcher.d.ts +3 -0
  23. package/src/plugins/banx/vaultsFetcher.js +74 -0
  24. package/src/plugins/banx/vaultsFetcher.js.map +1 -0
  25. package/src/plugins/banx/vaultsJob.d.ts +3 -0
  26. package/src/plugins/banx/{collectionsJob.js → vaultsJob.js} +5 -16
  27. package/src/plugins/banx/vaultsJob.js.map +1 -0
  28. package/src/plugins/jupiter/exchange/dcaFetcher.js +69 -20
  29. package/src/plugins/jupiter/exchange/dcaFetcher.js.map +1 -1
  30. package/src/plugins/jupiter/exchange/limitFetcher.js +73 -23
  31. package/src/plugins/jupiter/exchange/limitFetcher.js.map +1 -1
  32. package/src/plugins/sushiswap/helpers.js +24 -24
  33. package/src/plugins/switchboard/onDemandPricingJob.js +2 -2
  34. package/src/plugins/switchboard/onDemandPricingJob.js.map +1 -1
  35. package/src/plugins/uniswap-v2/helpers.js +22 -22
  36. package/src/utils/misc/getCachedDecimalsForToken.d.ts +0 -1
  37. package/src/utils/misc/getCachedDecimalsForToken.js +3 -51
  38. package/src/utils/misc/getCachedDecimalsForToken.js.map +1 -1
  39. package/src/utils/misc/getDecimalsForToken.d.ts +4 -0
  40. package/src/utils/misc/getDecimalsForToken.js +63 -0
  41. package/src/utils/misc/getDecimalsForToken.js.map +1 -0
  42. package/src/utils/sei/constants.js +8 -8
  43. package/src/utils/sei/getQueryBalanceByOwner.js +4 -4
  44. package/src/plugins/banx/collectionsJob.js.map +0 -1
  45. package/src/plugins/banx/filters.d.ts +0 -6
  46. package/src/plugins/banx/filters.js +0 -39
  47. package/src/plugins/banx/filters.js.map +0 -1
  48. package/src/plugins/banx/helpers.d.ts +0 -5
  49. package/src/plugins/banx/helpers.js +0 -64
  50. package/src/plugins/banx/helpers.js.map +0 -1
  51. package/src/plugins/banx/idl.d.ts +0 -123
  52. package/src/plugins/banx/idl.js +0 -2187
  53. package/src/plugins/banx/idl.js.map +0 -1
  54. /package/src/plugins/banx/{collectionsJob.d.ts → marketsJob.d.ts} +0 -0
package/README.md CHANGED
@@ -1,3 +1,3 @@
1
- # @sonarwatch/portfolio-plugins
2
-
3
- This library is @sonarwatch/portfolio-plugins
1
+ # @sonarwatch/portfolio-plugins
2
+
3
+ This library is @sonarwatch/portfolio-plugins
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sonarwatch/portfolio-plugins",
3
- "version": "0.14.142",
3
+ "version": "0.14.144",
4
4
  "type": "commonjs",
5
5
  "types": "./src/index.d.ts",
6
6
  "peerDependencies": {
@@ -36,27 +36,27 @@ exports.getBalancerPoolsV2 = void 0;
36
36
  const graphql_request_1 = __importStar(require("graphql-request"));
37
37
  function getBalancerPoolsV2(url) {
38
38
  return __awaiter(this, void 0, void 0, function* () {
39
- const query = (0, graphql_request_1.gql) `
40
- query pools {
41
- pools(
42
- first: 1000
43
- orderBy: totalLiquidity
44
- orderDirection: desc
45
- where: { totalLiquidity_gt: "500" }
46
- ) {
47
- id
48
- address
49
- symbol
50
- totalLiquidity
51
- totalShares
52
- tokens {
53
- balance
54
- decimals
55
- symbol
56
- address
57
- }
58
- }
59
- }
39
+ const query = (0, graphql_request_1.gql) `
40
+ query pools {
41
+ pools(
42
+ first: 1000
43
+ orderBy: totalLiquidity
44
+ orderDirection: desc
45
+ where: { totalLiquidity_gt: "500" }
46
+ ) {
47
+ id
48
+ address
49
+ symbol
50
+ totalLiquidity
51
+ totalShares
52
+ tokens {
53
+ balance
54
+ decimals
55
+ symbol
56
+ address
57
+ }
58
+ }
59
+ }
60
60
  `;
61
61
  const res = yield (0, graphql_request_1.default)(url, query);
62
62
  const pools = res.pools;
@@ -2,16 +2,22 @@
2
2
  /// <reference types="jito-ts/node_modules/@solana/web3.js" />
3
3
  import { PublicKey } from '@solana/web3.js';
4
4
  import { Platform } from '@sonarwatch/portfolio-core';
5
- import { IdlItem } from '@solanafm/explorer-kit-idls';
5
+ import { MemoizedCache } from '../../utils/misc/MemoizedCache';
6
+ import { Collection, SplAssetMarket, Vault } from './types';
6
7
  export declare const platformId = "banx";
7
8
  export declare const banxMint = "BANXbTpN8U2cU41FjPxe2Ti37PiT5cCxLUKDQZuJeMMR";
9
+ export declare const banxDecimals = 9;
10
+ export declare const banxSolMint = "BANXyWgPpa519e2MtQF1ecRbKYKKDMXPF1dyBxUq9NQG";
8
11
  export declare const platform: Platform;
9
12
  export declare const banxPid: PublicKey;
10
- export declare const banxDecimals = 9;
11
- export declare const banxApiUrl = "https://api.banx.gg/staking/v2/info?walletPubkey=";
12
- export declare const banxApiCollectionsUrl = "https://api.banx.gg/bonds/preview?isPrivate=false&getAll=true";
13
- export declare const collectionsCacheKey = "banx-collections";
13
+ export declare const banxVaultsPid: PublicKey;
14
+ export declare const banxApiCollectionsUrl = "https://api.banx.gg/bonds/preview?getAll=true&marketType=banxSol&isPrivate=false";
15
+ export declare const banxApiMarketsUrl = "https://api.banx.gg/spl-assets/undefined?isPrivate=false&marketType=usdc";
16
+ export declare const banxApiVaultsUrl = "https://api.banx.gg/vaults/preview?walletPublicKey=&getAll=true&isPrivate=false";
17
+ export declare const nftMarketsCacheKey = "banx-nft-markets";
18
+ export declare const splMarketsCacheKey = "banx-spl-markets";
19
+ export declare const vaultsCacheKey = "banx-spl-vaults";
14
20
  export declare const cachePrefix = "banx";
15
- export declare const bondOfferDataSize = 208;
16
- export declare const bondTradeTransactionV3DataSize = 336;
17
- export declare const banxIdlItem: IdlItem;
21
+ export declare const splMarketsMemo: MemoizedCache<SplAssetMarket[], Map<string, SplAssetMarket>>;
22
+ export declare const nftMarketsMemo: MemoizedCache<Collection[], Map<string, Collection>>;
23
+ export declare const vaultsMemo: MemoizedCache<Vault[], Map<string, Vault>>;
@@ -1,10 +1,14 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.banxIdlItem = exports.bondTradeTransactionV3DataSize = exports.bondOfferDataSize = exports.cachePrefix = exports.collectionsCacheKey = exports.banxApiCollectionsUrl = exports.banxApiUrl = exports.banxDecimals = exports.banxPid = exports.platform = exports.banxMint = exports.platformId = void 0;
3
+ exports.vaultsMemo = exports.nftMarketsMemo = exports.splMarketsMemo = exports.cachePrefix = exports.vaultsCacheKey = exports.splMarketsCacheKey = exports.nftMarketsCacheKey = exports.banxApiVaultsUrl = exports.banxApiMarketsUrl = exports.banxApiCollectionsUrl = exports.banxVaultsPid = exports.banxPid = exports.platform = exports.banxSolMint = exports.banxDecimals = exports.banxMint = exports.platformId = void 0;
4
4
  const web3_js_1 = require("@solana/web3.js");
5
- const idl_1 = require("./idl");
5
+ const portfolio_core_1 = require("@sonarwatch/portfolio-core");
6
+ const MemoizedCache_1 = require("../../utils/misc/MemoizedCache");
7
+ const arrayToMap_1 = require("../../utils/misc/arrayToMap");
6
8
  exports.platformId = 'banx';
7
9
  exports.banxMint = 'BANXbTpN8U2cU41FjPxe2Ti37PiT5cCxLUKDQZuJeMMR';
10
+ exports.banxDecimals = 9;
11
+ exports.banxSolMint = 'BANXyWgPpa519e2MtQF1ecRbKYKKDMXPF1dyBxUq9NQG';
8
12
  exports.platform = {
9
13
  id: exports.platformId,
10
14
  name: 'Banx',
@@ -19,16 +23,24 @@ exports.platform = {
19
23
  tokens: [exports.banxMint],
20
24
  };
21
25
  exports.banxPid = new web3_js_1.PublicKey('4tdmkuY6EStxbS6Y8s5ueznL3VPMSugrvQuDeAHGZhSt');
22
- exports.banxDecimals = 9;
23
- exports.banxApiUrl = 'https://api.banx.gg/staking/v2/info?walletPubkey=';
24
- exports.banxApiCollectionsUrl = 'https://api.banx.gg/bonds/preview?isPrivate=false&getAll=true';
25
- exports.collectionsCacheKey = `${exports.platformId}-collections`;
26
+ exports.banxVaultsPid = new web3_js_1.PublicKey('BanxxEcFZPJLKhS59EkwTa8SZez8vDYTiJVN78mGHWDi');
27
+ exports.banxApiCollectionsUrl = 'https://api.banx.gg/bonds/preview?getAll=true&marketType=banxSol&isPrivate=false';
28
+ exports.banxApiMarketsUrl = 'https://api.banx.gg/spl-assets/undefined?isPrivate=false&marketType=usdc';
29
+ exports.banxApiVaultsUrl = 'https://api.banx.gg/vaults/preview?walletPublicKey=&getAll=true&isPrivate=false';
30
+ exports.nftMarketsCacheKey = `${exports.platformId}-nft-markets`;
31
+ exports.splMarketsCacheKey = `${exports.platformId}-spl-markets`;
32
+ exports.vaultsCacheKey = `${exports.platformId}-spl-vaults`;
26
33
  exports.cachePrefix = `${exports.platformId}`;
27
- exports.bondOfferDataSize = 208;
28
- exports.bondTradeTransactionV3DataSize = 336;
29
- exports.banxIdlItem = {
30
- programId: exports.banxPid.toString(),
31
- idl: idl_1.BanxIDL,
32
- idlType: 'anchor',
33
- };
34
+ exports.splMarketsMemo = new MemoizedCache_1.MemoizedCache(exports.splMarketsCacheKey, {
35
+ prefix: exports.cachePrefix,
36
+ networkId: portfolio_core_1.NetworkId.solana,
37
+ }, (arr) => (0, arrayToMap_1.arrayToMap)(arr || [], 'marketPubkey'));
38
+ exports.nftMarketsMemo = new MemoizedCache_1.MemoizedCache(exports.nftMarketsCacheKey, {
39
+ prefix: exports.cachePrefix,
40
+ networkId: portfolio_core_1.NetworkId.solana,
41
+ }, (arr) => (0, arrayToMap_1.arrayToMap)(arr || [], 'marketPubkey'));
42
+ exports.vaultsMemo = new MemoizedCache_1.MemoizedCache(exports.vaultsCacheKey, {
43
+ prefix: exports.cachePrefix,
44
+ networkId: portfolio_core_1.NetworkId.solana,
45
+ }, (arr) => (0, arrayToMap_1.arrayToMap)(arr || [], 'vaultPubkey'));
34
46
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/banx/constants.ts"],"names":[],"mappings":";;;AAAA,6CAA4C;AAG5C,+BAAgC;AAEnB,QAAA,UAAU,GAAG,MAAM,CAAC;AACpB,QAAA,QAAQ,GAAG,8CAA8C,CAAC;AAC1D,QAAA,QAAQ,GAAa;IAChC,EAAE,EAAE,kBAAU;IACd,IAAI,EAAE,MAAM;IACZ,KAAK,EACH,0EAA0E;IAC5E,WAAW,EAAE,MAAM,EAAE,sCAAsC;IAC3D,OAAO,EAAE,kBAAkB;IAC3B,OAAO,EAAE,6BAA6B;IACtC,WAAW,EACT,gGAAgG;IAClG,aAAa,EAAE,uBAAuB;IACtC,OAAO,EAAE,0CAA0C;IACnD,MAAM,EAAE,iCAAiC;IACzC,MAAM,EAAE,CAAC,gBAAQ,CAAC;CACnB,CAAC;AAEW,QAAA,OAAO,GAAG,IAAI,mBAAS,CAClC,8CAA8C,CAC/C,CAAC;AACW,QAAA,YAAY,GAAG,CAAC,CAAC;AACjB,QAAA,UAAU,GAAG,mDAAmD,CAAC;AAEjE,QAAA,qBAAqB,GAChC,+DAA+D,CAAC;AAErD,QAAA,mBAAmB,GAAG,GAAG,kBAAU,cAAc,CAAC;AAClD,QAAA,WAAW,GAAG,GAAG,kBAAU,EAAE,CAAC;AAE9B,QAAA,iBAAiB,GAAG,GAAG,CAAC;AACxB,QAAA,8BAA8B,GAAG,GAAG,CAAC;AAErC,QAAA,WAAW,GAAG;IACzB,SAAS,EAAE,eAAO,CAAC,QAAQ,EAAE;IAC7B,GAAG,EAAE,aAAO;IACZ,OAAO,EAAE,QAAQ;CACP,CAAC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/banx/constants.ts"],"names":[],"mappings":";;;AAAA,6CAA4C;AAC5C,+DAAiE;AACjE,kEAA+D;AAE/D,4DAAyD;AAE5C,QAAA,UAAU,GAAG,MAAM,CAAC;AAEpB,QAAA,QAAQ,GAAG,8CAA8C,CAAC;AAC1D,QAAA,YAAY,GAAG,CAAC,CAAC;AACjB,QAAA,WAAW,GAAG,8CAA8C,CAAC;AAE7D,QAAA,QAAQ,GAAa;IAChC,EAAE,EAAE,kBAAU;IACd,IAAI,EAAE,MAAM;IACZ,KAAK,EACH,0EAA0E;IAC5E,WAAW,EAAE,MAAM,EAAE,sCAAsC;IAC3D,OAAO,EAAE,kBAAkB;IAC3B,OAAO,EAAE,6BAA6B;IACtC,WAAW,EACT,gGAAgG;IAClG,aAAa,EAAE,uBAAuB;IACtC,OAAO,EAAE,0CAA0C;IACnD,MAAM,EAAE,iCAAiC;IACzC,MAAM,EAAE,CAAC,gBAAQ,CAAC;CACnB,CAAC;AAEW,QAAA,OAAO,GAAG,IAAI,mBAAS,CAClC,8CAA8C,CAC/C,CAAC;AACW,QAAA,aAAa,GAAG,IAAI,mBAAS,CACxC,8CAA8C,CAC/C,CAAC;AAEW,QAAA,qBAAqB,GAChC,kFAAkF,CAAC;AACxE,QAAA,iBAAiB,GAC5B,0EAA0E,CAAC;AAChE,QAAA,gBAAgB,GAC3B,iFAAiF,CAAC;AAEvE,QAAA,kBAAkB,GAAG,GAAG,kBAAU,cAAc,CAAC;AACjD,QAAA,kBAAkB,GAAG,GAAG,kBAAU,cAAc,CAAC;AACjD,QAAA,cAAc,GAAG,GAAG,kBAAU,aAAa,CAAC;AAC5C,QAAA,WAAW,GAAG,GAAG,kBAAU,EAAE,CAAC;AAE9B,QAAA,cAAc,GAAG,IAAI,6BAAa,CAI7C,0BAAkB,EAClB;IACE,MAAM,EAAE,mBAAW;IACnB,SAAS,EAAE,0BAAS,CAAC,MAAM;CAC5B,EACD,CAAC,GAAG,EAAE,EAAE,CAAC,IAAA,uBAAU,EAAC,GAAG,IAAI,EAAE,EAAE,cAAc,CAAC,CAC/C,CAAC;AACW,QAAA,cAAc,GAAG,IAAI,6BAAa,CAI7C,0BAAkB,EAClB;IACE,MAAM,EAAE,mBAAW;IACnB,SAAS,EAAE,0BAAS,CAAC,MAAM;CAC5B,EACD,CAAC,GAAG,EAAE,EAAE,CAAC,IAAA,uBAAU,EAAC,GAAG,IAAI,EAAE,EAAE,cAAc,CAAC,CAC/C,CAAC;AAEW,QAAA,UAAU,GAAG,IAAI,6BAAa,CACzC,sBAAc,EACd;IACE,MAAM,EAAE,mBAAW;IACnB,SAAS,EAAE,0BAAS,CAAC,MAAM;CAC5B,EACD,CAAC,GAAG,EAAE,EAAE,CAAC,IAAA,uBAAU,EAAC,GAAG,IAAI,EAAE,EAAE,aAAa,CAAC,CAC9C,CAAC"}
@@ -6,7 +6,17 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.fetchers = exports.jobs = exports.platforms = void 0;
7
7
  const constants_1 = require("./constants");
8
8
  const stakingFetcher_1 = __importDefault(require("./stakingFetcher"));
9
+ const marketsJob_1 = __importDefault(require("./marketsJob"));
10
+ const loansFetcher_1 = __importDefault(require("./loansFetcher"));
11
+ const offersFetcher_1 = __importDefault(require("./offersFetcher"));
12
+ const vaultsJob_1 = __importDefault(require("./vaultsJob"));
13
+ const vaultsFetcher_1 = __importDefault(require("./vaultsFetcher"));
9
14
  exports.platforms = [constants_1.platform];
10
- exports.jobs = [];
11
- exports.fetchers = [stakingFetcher_1.default];
15
+ exports.jobs = [marketsJob_1.default, vaultsJob_1.default];
16
+ exports.fetchers = [
17
+ stakingFetcher_1.default,
18
+ loansFetcher_1.default,
19
+ offersFetcher_1.default,
20
+ vaultsFetcher_1.default,
21
+ ];
12
22
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/banx/index.ts"],"names":[],"mappings":";;;;;;AAGA,2CAAuC;AACvC,sEAA8C;AAEjC,QAAA,SAAS,GAAe,CAAC,oBAAQ,CAAC,CAAC;AACnC,QAAA,IAAI,GAAU,EAAE,CAAC;AACjB,QAAA,QAAQ,GAAc,CAAC,wBAAc,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/banx/index.ts"],"names":[],"mappings":";;;;;;AAGA,2CAAuC;AACvC,sEAA8C;AAC9C,8DAAsC;AACtC,kEAA0C;AAC1C,oEAA4C;AAC5C,4DAAoC;AACpC,oEAA4C;AAE/B,QAAA,SAAS,GAAe,CAAC,oBAAQ,CAAC,CAAC;AACnC,QAAA,IAAI,GAAU,CAAC,oBAAU,EAAE,mBAAS,CAAC,CAAC;AACtC,QAAA,QAAQ,GAAc;IACjC,wBAAc;IACd,sBAAY;IACZ,uBAAa;IACb,uBAAa;CACd,CAAC"}
@@ -16,149 +16,134 @@ const portfolio_core_1 = require("@sonarwatch/portfolio-core");
16
16
  const web3_js_1 = require("@solana/web3.js");
17
17
  const bignumber_js_1 = __importDefault(require("bignumber.js"));
18
18
  const clients_1 = require("../../utils/clients");
19
- const getSolanaDasEndpoint_1 = __importDefault(require("../../utils/clients/getSolanaDasEndpoint"));
20
- const solana_1 = require("../../utils/solana");
21
- const getAssetBatchDas_1 = require("../../utils/solana/das/getAssetBatchDas");
22
- const heliusAssetToAssetCollectible_1 = require("../../utils/solana/das/heliusAssetToAssetCollectible");
23
- const tokenPriceToAssetToken_1 = __importDefault(require("../../utils/misc/tokenPriceToAssetToken"));
24
19
  const constants_1 = require("./constants");
25
- const helpers_1 = require("./helpers");
26
- const filters_1 = require("./filters");
27
- const MemoizedCache_1 = require("../../utils/misc/MemoizedCache");
28
- const arrayToMap_1 = require("../../utils/misc/arrayToMap");
29
- const collectionsMemo = new MemoizedCache_1.MemoizedCache(constants_1.collectionsCacheKey, {
30
- prefix: constants_1.cachePrefix,
31
- networkId: portfolio_core_1.NetworkId.solana,
32
- }, (arr) => (0, arrayToMap_1.arrayToMap)(arr || [], 'marketPubkey'));
33
- /**
34
- * @deprecated
35
- * this fetcher has been deprecated following protocol changes
36
- */
20
+ const ParsedGpa_1 = require("../../utils/solana/beets/ParsedGpa");
21
+ const structs_1 = require("./structs");
22
+ const ElementRegistry_1 = require("../../utils/elementbuilder/ElementRegistry");
23
+ const solana_1 = require("../../utils/solana");
37
24
  const executor = (owner, cache) => __awaiter(void 0, void 0, void 0, function* () {
38
25
  const connection = (0, clients_1.getClientSolana)();
39
- const dasUrl = (0, getSolanaDasEndpoint_1.default)();
40
26
  const accounts = (yield Promise.all([
41
- (0, solana_1.getAutoParsedProgramAccounts)(connection, constants_1.banxIdlItem, (0, filters_1.loanFiltersA)(owner)),
42
- (0, solana_1.getAutoParsedProgramAccounts)(connection, constants_1.banxIdlItem, (0, filters_1.loanFiltersB)(owner)),
27
+ ParsedGpa_1.ParsedGpa.build(connection, structs_1.Bondtradetransactionv3Struct, constants_1.banxPid)
28
+ .addFilter('accountDiscriminator', [203, 220, 99, 58, 119, 173, 245, 89])
29
+ .addFilter('user', new web3_js_1.PublicKey(owner))
30
+ .run(),
31
+ ParsedGpa_1.ParsedGpa.build(connection, structs_1.Bondtradetransactionv3Struct, constants_1.banxPid)
32
+ .addFilter('accountDiscriminator', [203, 220, 99, 58, 119, 173, 245, 89])
33
+ .addFilter('seller', new web3_js_1.PublicKey(owner))
34
+ .run(),
43
35
  ]))
44
36
  .flat()
45
- .filter((acc) => (acc.bondTradeTransactionState.perpetualActive ||
46
- acc.bondTradeTransactionState.perpetualPartialRepaid ||
47
- acc.bondTradeTransactionState.perpetualRefinancedActive ||
48
- acc.bondTradeTransactionState.perpetualManualTerminating ||
49
- acc.bondTradeTransactionState.active) &&
50
- acc.redeemedAt === '0' &&
51
- !acc.redeemResult.instantRefinanced);
37
+ .filter((acc) => (acc.bondTradeTransactionState ===
38
+ structs_1.BondtradeTransactionv2State.Perpetualactive ||
39
+ acc.bondTradeTransactionState ===
40
+ structs_1.BondtradeTransactionv2State.Perpetualpartialrepaid ||
41
+ acc.bondTradeTransactionState ===
42
+ structs_1.BondtradeTransactionv2State.Perpetualrefinancedactive ||
43
+ acc.bondTradeTransactionState ===
44
+ structs_1.BondtradeTransactionv2State.Perpetualmanualterminating ||
45
+ acc.bondTradeTransactionState ===
46
+ structs_1.BondtradeTransactionv2State.Active) &&
47
+ acc.redeemedAt.isZero() &&
48
+ acc.redeemResult !== structs_1.RedeemResult.Instantrefinanced);
52
49
  if (accounts.length === 0)
53
50
  return [];
54
- const [tokenPrices, fbondTokenMints, bondOffers, collections] = yield Promise.all([
55
- cache.getTokenPricesAsMap([solana_1.usdcSolanaMint, portfolio_core_1.solanaNativeAddress], portfolio_core_1.NetworkId.solana),
56
- (0, solana_1.getAutoParsedMultipleAccountsInfo)(connection, constants_1.banxIdlItem, accounts.map((acc) => new web3_js_1.PublicKey(acc.fbondTokenMint))),
57
- (0, solana_1.getAutoParsedMultipleAccountsInfo)(connection, constants_1.banxIdlItem, accounts.map((acc) => new web3_js_1.PublicKey(acc.bondOffer))),
58
- collectionsMemo.getItem(cache),
51
+ const [solTokenPrice, splMarkets, nftMarkets, fraktBonds, bondOffers] = yield Promise.all([
52
+ cache.getTokenPrice(portfolio_core_1.solanaNativeAddress, portfolio_core_1.NetworkId.solana),
53
+ constants_1.splMarketsMemo.getItem(cache),
54
+ constants_1.nftMarketsMemo.getItem(cache),
55
+ (0, solana_1.getParsedMultipleAccountsInfo)(connection, structs_1.FraktbondStruct, accounts.map((a) => a.fbondTokenMint)),
56
+ (0, solana_1.getParsedMultipleAccountsInfo)(connection, structs_1.bondOfferv3Struct, accounts.map((a) => a.bondOffer)),
59
57
  ]);
60
- if (!collections)
61
- return [];
62
- const solTokenPrice = tokenPrices.get(portfolio_core_1.solanaNativeAddress);
58
+ if (!splMarkets)
59
+ throw new Error('SPL Markets not cached');
60
+ if (!nftMarkets)
61
+ throw new Error('NFT Markets not cached');
63
62
  if (!solTokenPrice)
64
- return [];
65
- const fbondTokenMintsMap = new Map();
66
- fbondTokenMints.forEach((fbondTokenMint) => {
67
- if (!fbondTokenMint)
68
- return;
69
- fbondTokenMintsMap.set(fbondTokenMint.pubkey.toString(), fbondTokenMint);
70
- });
71
- const bondOffersMap = new Map();
72
- bondOffers.forEach((bondOffer) => {
63
+ throw new Error('SOL Price not cached');
64
+ const elementRegistry = new ElementRegistry_1.ElementRegistry(portfolio_core_1.NetworkId.solana, constants_1.platformId);
65
+ accounts.forEach((account, i) => {
66
+ const bondOffer = bondOffers[i];
73
67
  if (!bondOffer)
74
68
  return;
75
- bondOffersMap.set(bondOffer.pubkey.toString(), bondOffer);
76
- });
77
- const heliusAssets = yield (0, getAssetBatchDas_1.getAssetBatchDasAsMap)(dasUrl, fbondTokenMints.map((acc) => acc && acc.fbondTokenMint));
78
- const elements = [];
79
- accounts.forEach((acc) => {
80
- const fbondTokenMint = fbondTokenMintsMap.get(acc.fbondTokenMint);
81
- const bondOffer = bondOffersMap.get(acc.bondOffer);
82
- if (!fbondTokenMint)
69
+ const fraktBond = fraktBonds[i];
70
+ if (!fraktBond)
83
71
  return;
84
- if (!fbondTokenMint.fraktBondState.perpetualActive &&
85
- !fbondTokenMint.fraktBondState.active)
72
+ const splMarket = splMarkets.get(bondOffer.hadoMarket.toString());
73
+ const nftMarket = nftMarkets.get(bondOffer.hadoMarket.toString());
74
+ if (!splMarket && !nftMarket) {
86
75
  return;
87
- const collection = bondOffer && bondOffer.hadoMarket
88
- ? collections.get(bondOffer.hadoMarket)
89
- : undefined;
90
- const tokenPrice = acc.lendingToken.usdc
91
- ? tokenPrices.get(solana_1.usdcSolanaMint)
92
- : tokenPrices.get(portfolio_core_1.solanaNativeAddress);
93
- if (!tokenPrice)
94
- return;
95
- const borrowedAssets = [];
96
- const suppliedAssets = [];
97
- let mintAsset = null;
98
- if (acc.fbondTokenMint) {
99
- const heliusAsset = heliusAssets.get(fbondTokenMint.fbondTokenMint);
100
- if (heliusAsset) {
101
- mintAsset = (0, heliusAssetToAssetCollectible_1.heliusAssetToAssetCollectible)(heliusAsset, {
102
- tags: [portfolio_core_1.collectibleFreezedTag],
103
- collection: collection
104
- ? {
105
- name: collection.collectionName,
106
- floorPrice: new bignumber_js_1.default(collection.collectionFloor)
107
- .dividedBy(Math.pow(10, 9))
108
- .multipliedBy(solTokenPrice.price)
109
- .toNumber(),
110
- }
111
- : undefined,
112
- });
113
- }
114
76
  }
115
- const name = `Active Loan`;
116
- if (acc.user === owner.toString()) {
117
- // LENDER
118
- suppliedAssets.push((0, tokenPriceToAssetToken_1.default)(tokenPrice.address, (0, helpers_1.calculateLoanRepayValue)(acc)
119
- .dividedBy(Math.pow(10, tokenPrice.decimals))
120
- .toNumber(), portfolio_core_1.NetworkId.solana, tokenPrice));
121
- if (mintAsset)
122
- borrowedAssets.push(mintAsset);
77
+ const isLender = account.user.toString() === owner;
78
+ const element = elementRegistry.addElementBorrowlend({
79
+ label: 'Lending',
80
+ name: `Active Loan`,
81
+ ref: account.pubkey,
82
+ sourceRefs: [
83
+ {
84
+ name: 'Market',
85
+ address: bondOffer.hadoMarket.toString(),
86
+ },
87
+ ],
88
+ });
89
+ element.setFixedTerms(isLender);
90
+ let mint;
91
+ switch (account.lendingToken) {
92
+ case structs_1.LendingTokenType.Usdc:
93
+ mint = solana_1.usdcSolanaMint;
94
+ break;
95
+ case structs_1.LendingTokenType.Banxsol:
96
+ mint = constants_1.banxSolMint;
97
+ break;
98
+ case structs_1.LendingTokenType.Nativesol:
99
+ default:
100
+ mint = portfolio_core_1.solanaNativeAddress;
101
+ break;
123
102
  }
124
- else {
125
- // BORROWER
126
- if (mintAsset)
127
- suppliedAssets.push(mintAsset);
128
- borrowedAssets.push((0, tokenPriceToAssetToken_1.default)(tokenPrice.address, (0, helpers_1.calculateDebtValue)(acc)
129
- .dividedBy(Math.pow(10, tokenPrice.decimals))
130
- .toNumber(), portfolio_core_1.NetworkId.solana, tokenPrice));
103
+ let collateral;
104
+ if (splMarket) {
105
+ collateral = {
106
+ address: splMarket.collateral.mint,
107
+ amount: fraktBond.fbondTokenSupply,
108
+ };
131
109
  }
132
- if (suppliedAssets.length > 0) {
133
- const { borrowedValue, suppliedValue, rewardValue, value } = (0, portfolio_core_1.getElementNFTLendingValues)({
134
- suppliedAssets,
135
- borrowedAssets,
136
- rewardAssets: [],
137
- lender: acc.user === owner.toString(),
138
- });
139
- elements.push({
140
- networkId: portfolio_core_1.NetworkId.solana,
141
- label: 'Lending',
142
- platformId: constants_1.platformId,
143
- type: portfolio_core_1.PortfolioElementType.borrowlend,
144
- value,
145
- name,
146
- data: {
147
- borrowedAssets,
148
- borrowedValue,
149
- borrowedYields: [],
150
- suppliedAssets,
151
- suppliedValue,
152
- suppliedYields: [],
153
- rewardAssets: [],
154
- rewardValue,
155
- healthRatio: null,
156
- value,
110
+ else if (nftMarket) {
111
+ collateral = {
112
+ address: fraktBond.fbondTokenMint,
113
+ collection: {
114
+ name: nftMarket.collectionName,
115
+ floorPrice: new bignumber_js_1.default(nftMarket.collectionFloor)
116
+ .shiftedBy(-portfolio_core_1.solanaNativeDecimals)
117
+ .multipliedBy(solTokenPrice.price),
118
+ imageUri: nftMarket.collectionImage,
157
119
  },
158
- });
120
+ attributes: { tags: [portfolio_core_1.collectibleFreezedTag] },
121
+ };
122
+ }
123
+ else {
124
+ return;
125
+ }
126
+ const borrowed = {
127
+ address: mint,
128
+ amount: account.solAmount,
129
+ };
130
+ if (isLender) {
131
+ if (splMarket)
132
+ element.addBorrowedAsset(collateral);
133
+ else {
134
+ element.addBorrowedCollectibleAsset(collateral);
135
+ }
136
+ element.addSuppliedAsset(borrowed);
137
+ }
138
+ else {
139
+ if (splMarket)
140
+ element.addSuppliedAsset(collateral);
141
+ else
142
+ element.addSuppliedCollectibleAsset(collateral);
143
+ element.addBorrowedAsset(borrowed);
159
144
  }
160
145
  });
161
- return elements;
146
+ return elementRegistry.getElements(cache);
162
147
  });
163
148
  const fetcher = {
164
149
  id: `${constants_1.platformId}-loans`,
@@ -1 +1 @@
1
- {"version":3,"file":"loansFetcher.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/banx/loansFetcher.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"loansFetcher.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/banx/loansFetcher.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,+DAKoC;AACpC,6CAA4C;AAC5C,gEAAqC;AAGrC,iDAAsD;AACtD,2CAMqB;AACrB,kEAA+D;AAC/D,uCAOmB;AACnB,gFAA6E;AAC7E,+CAG4B;AAM5B,MAAM,QAAQ,GAAoB,CAAO,KAAa,EAAE,KAAY,EAAE,EAAE;IACtE,MAAM,UAAU,GAAG,IAAA,yBAAe,GAAE,CAAC;IAErC,MAAM,QAAQ,GAAG,CACf,MAAM,OAAO,CAAC,GAAG,CAAC;QAChB,qBAAS,CAAC,KAAK,CAAC,UAAU,EAAE,sCAA4B,EAAE,mBAAO,CAAC;aAC/D,SAAS,CACR,sBAAsB,EACtB,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,CACtC;aACA,SAAS,CAAC,MAAM,EAAE,IAAI,mBAAS,CAAC,KAAK,CAAC,CAAC;aACvC,GAAG,EAAE;QACR,qBAAS,CAAC,KAAK,CAAC,UAAU,EAAE,sCAA4B,EAAE,mBAAO,CAAC;aAC/D,SAAS,CACR,sBAAsB,EACtB,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,CACtC;aACA,SAAS,CAAC,QAAQ,EAAE,IAAI,mBAAS,CAAC,KAAK,CAAC,CAAC;aACzC,GAAG,EAAE;KACT,CAAC,CACH;SACE,IAAI,EAAE;SACN,MAAM,CACL,CAAC,GAAG,EAAE,EAAE,CACN,CAAC,GAAG,CAAC,yBAAyB;QAC5B,qCAA2B,CAAC,eAAe;QAC3C,GAAG,CAAC,yBAAyB;YAC3B,qCAA2B,CAAC,sBAAsB;QACpD,GAAG,CAAC,yBAAyB;YAC3B,qCAA2B,CAAC,yBAAyB;QACvD,GAAG,CAAC,yBAAyB;YAC3B,qCAA2B,CAAC,0BAA0B;QACxD,GAAG,CAAC,yBAAyB;YAC3B,qCAA2B,CAAC,MAAM,CAAC;QACvC,GAAG,CAAC,UAAU,CAAC,MAAM,EAAE;QACvB,GAAG,CAAC,YAAY,KAAK,sBAAY,CAAC,iBAAiB,CACtD,CAAC;IAEJ,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAErC,MAAM,CAAC,aAAa,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,CAAC,GACnE,MAAM,OAAO,CAAC,GAAG,CAAC;QAChB,KAAK,CAAC,aAAa,CAAC,oCAAmB,EAAE,0BAAS,CAAC,MAAM,CAAC;QAC1D,0BAAc,CAAC,OAAO,CAAC,KAAK,CAAC;QAC7B,0BAAc,CAAC,OAAO,CAAC,KAAK,CAAC;QAC7B,IAAA,sCAA6B,EAC3B,UAAU,EACV,yBAAe,EACf,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,CACtC;QACD,IAAA,sCAA6B,EAC3B,UAAU,EACV,2BAAiB,EACjB,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CACjC;KACF,CAAC,CAAC;IAEL,IAAI,CAAC,UAAU;QAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;IAC3D,IAAI,CAAC,UAAU;QAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;IAC3D,IAAI,CAAC,aAAa;QAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;IAE5D,MAAM,eAAe,GAAG,IAAI,iCAAe,CAAC,0BAAS,CAAC,MAAM,EAAE,sBAAU,CAAC,CAAC;IAC1E,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE;QAC9B,MAAM,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;QAChC,IAAI,CAAC,SAAS;YAAE,OAAO;QACvB,MAAM,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;QAChC,IAAI,CAAC,SAAS;YAAE,OAAO;QACvB,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;QAClE,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;QAClE,IAAI,CAAC,SAAS,IAAI,CAAC,SAAS,EAAE,CAAC;YAC7B,OAAO;QACT,CAAC;QAED,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,KAAK,CAAC;QACnD,MAAM,OAAO,GAAG,eAAe,CAAC,oBAAoB,CAAC;YACnD,KAAK,EAAE,SAAS;YAChB,IAAI,EAAE,aAAa;YACnB,GAAG,EAAE,OAAO,CAAC,MAAM;YACnB,UAAU,EAAE;gBACV;oBACE,IAAI,EAAE,QAAQ;oBACd,OAAO,EAAE,SAAS,CAAC,UAAU,CAAC,QAAQ,EAAE;iBACzC;aACF;SACF,CAAC,CAAC;QACH,OAAO,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAEhC,IAAI,IAAI,CAAC;QACT,QAAQ,OAAO,CAAC,YAAY,EAAE,CAAC;YAC7B,KAAK,0BAAgB,CAAC,IAAI;gBACxB,IAAI,GAAG,uBAAc,CAAC;gBACtB,MAAM;YACR,KAAK,0BAAgB,CAAC,OAAO;gBAC3B,IAAI,GAAG,uBAAW,CAAC;gBACnB,MAAM;YACR,KAAK,0BAAgB,CAAC,SAAS,CAAC;YAChC;gBACE,IAAI,GAAG,oCAAmB,CAAC;gBAC3B,MAAM;QACV,CAAC;QAED,IAAI,UAAU,CAAC;QACf,IAAI,SAAS,EAAE,CAAC;YACd,UAAU,GAAG;gBACX,OAAO,EAAE,SAAS,CAAC,UAAU,CAAC,IAAI;gBAClC,MAAM,EAAE,SAAS,CAAC,gBAAgB;aACnC,CAAC;QACJ,CAAC;aAAM,IAAI,SAAS,EAAE,CAAC;YACrB,UAAU,GAAG;gBACX,OAAO,EAAE,SAAS,CAAC,cAAc;gBACjC,UAAU,EAAE;oBACV,IAAI,EAAE,SAAS,CAAC,cAAc;oBAC9B,UAAU,EAAE,IAAI,sBAAS,CAAC,SAAS,CAAC,eAAe,CAAC;yBACjD,SAAS,CAAC,CAAC,qCAAoB,CAAC;yBAChC,YAAY,CAAC,aAAa,CAAC,KAAK,CAAC;oBACpC,QAAQ,EAAE,SAAS,CAAC,eAAe;iBACpC;gBACD,UAAU,EAAE,EAAE,IAAI,EAAE,CAAC,sCAAqB,CAAC,EAAE;aAC9C,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,OAAO;QACT,CAAC;QAED,MAAM,QAAQ,GAA8B;YAC1C,OAAO,EAAE,IAAI;YACb,MAAM,EAAE,OAAO,CAAC,SAAS;SAC1B,CAAC;QAEF,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,SAAS;gBACX,OAAO,CAAC,gBAAgB,CAAC,UAAuC,CAAC,CAAC;iBAC/D,CAAC;gBACJ,OAAO,CAAC,2BAA2B,CACjC,UAA6C,CAC9C,CAAC;YACJ,CAAC;YACD,OAAO,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QACrC,CAAC;aAAM,CAAC;YACN,IAAI,SAAS;gBACX,OAAO,CAAC,gBAAgB,CAAC,UAAuC,CAAC,CAAC;;gBAElE,OAAO,CAAC,2BAA2B,CACjC,UAA6C,CAC9C,CAAC;YACJ,OAAO,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QACrC,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,eAAe,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;AAC5C,CAAC,CAAA,CAAC;AAEF,MAAM,OAAO,GAAY;IACvB,EAAE,EAAE,GAAG,sBAAU,QAAQ;IACzB,SAAS,EAAE,0BAAS,CAAC,MAAM;IAC3B,QAAQ;CACT,CAAC;AAEF,kBAAe,OAAO,CAAC"}
@@ -0,0 +1,40 @@
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
+ const portfolio_core_1 = require("@sonarwatch/portfolio-core");
16
+ const axios_1 = __importDefault(require("axios"));
17
+ const constants_1 = require("./constants");
18
+ const executor = (cache) => __awaiter(void 0, void 0, void 0, function* () {
19
+ const resSpl = yield axios_1.default.get(constants_1.banxApiMarketsUrl, {
20
+ timeout: 3000,
21
+ });
22
+ yield cache.setItem(constants_1.splMarketsCacheKey, resSpl.data.data, {
23
+ prefix: constants_1.cachePrefix,
24
+ networkId: portfolio_core_1.NetworkId.solana,
25
+ });
26
+ const resNft = yield axios_1.default.get(constants_1.banxApiCollectionsUrl, {
27
+ timeout: 10000,
28
+ });
29
+ yield cache.setItem(constants_1.nftMarketsCacheKey, resNft.data.data, {
30
+ prefix: constants_1.cachePrefix,
31
+ networkId: portfolio_core_1.NetworkId.solana,
32
+ });
33
+ });
34
+ const job = {
35
+ id: `${constants_1.platformId}-markets`,
36
+ executor,
37
+ labels: ['normal'],
38
+ };
39
+ exports.default = job;
40
+ //# sourceMappingURL=marketsJob.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"marketsJob.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/plugins/banx/marketsJob.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,+DAAuD;AACvD,kDAA0B;AAG1B,2CAOqB;AAGrB,MAAM,QAAQ,GAAgB,CAAO,KAAY,EAAE,EAAE;IACnD,MAAM,MAAM,GAAG,MAAM,eAAK,CAAC,GAAG,CAC5B,6BAAiB,EACjB;QACE,OAAO,EAAE,IAAI;KACd,CACF,CAAC;IAEF,MAAM,KAAK,CAAC,OAAO,CAAC,8BAAkB,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE;QACxD,MAAM,EAAE,uBAAW;QACnB,SAAS,EAAE,0BAAS,CAAC,MAAM;KAC5B,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,MAAM,eAAK,CAAC,GAAG,CAC5B,iCAAqB,EACrB;QACE,OAAO,EAAE,KAAK;KACf,CACF,CAAC;IAEF,MAAM,KAAK,CAAC,OAAO,CAAC,8BAAkB,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE;QACxD,MAAM,EAAE,uBAAW;QACnB,SAAS,EAAE,0BAAS,CAAC,MAAM;KAC5B,CAAC,CAAC;AACL,CAAC,CAAA,CAAC;AAEF,MAAM,GAAG,GAAQ;IACf,EAAE,EAAE,GAAG,sBAAU,UAAU;IAC3B,QAAQ;IACR,MAAM,EAAE,CAAC,QAAQ,CAAC;CACnB,CAAC;AAEF,kBAAe,GAAG,CAAC"}