@sonarwatch/portfolio-plugins 0.14.113 → 0.14.114

Sign up to get free protection for your applications and to get access to all the features.
Files changed (68) hide show
  1. package/CHANGELOG.md +2041 -2032
  2. package/README.md +3 -3
  3. package/package.json +1 -1
  4. package/src/plugins/abex/positionsFetcher.js +7 -3
  5. package/src/plugins/abex/positionsFetcher.js.map +1 -1
  6. package/src/plugins/balancer/helpers/pools.js +21 -21
  7. package/src/plugins/jupiter/exchange/constants.d.ts +1 -1
  8. package/src/plugins/jupiter/exchange/constants.js +2 -2
  9. package/src/plugins/jupiter/exchange/constants.js.map +1 -1
  10. package/src/plugins/jupiter/exchange/custodiesJob.js +1 -1
  11. package/src/plugins/jupiter/exchange/custodiesJob.js.map +1 -1
  12. package/src/plugins/jupiter/exchange/dcaFetcher.js +19 -45
  13. package/src/plugins/jupiter/exchange/dcaFetcher.js.map +1 -1
  14. package/src/plugins/jupiter/exchange/helpers.d.ts +2 -0
  15. package/src/plugins/jupiter/exchange/helpers.js +29 -0
  16. package/src/plugins/jupiter/exchange/helpers.js.map +1 -0
  17. package/src/plugins/jupiter/exchange/limitFetcher.js +32 -44
  18. package/src/plugins/jupiter/exchange/limitFetcher.js.map +1 -1
  19. package/src/plugins/jupiter/exchange/perpetualFetcher.js +12 -8
  20. package/src/plugins/jupiter/exchange/perpetualFetcher.js.map +1 -1
  21. package/src/plugins/jupiter/exchange/structs.d.ts +12 -1
  22. package/src/plugins/jupiter/exchange/structs.js +13 -3
  23. package/src/plugins/jupiter/exchange/structs.js.map +1 -1
  24. package/src/plugins/jupiter/exchange/valueAverageFetcher.js +45 -55
  25. package/src/plugins/jupiter/exchange/valueAverageFetcher.js.map +1 -1
  26. package/src/plugins/jupiter/helpers.d.ts +0 -2
  27. package/src/plugins/jupiter/helpers.js +1 -23
  28. package/src/plugins/jupiter/helpers.js.map +1 -1
  29. package/src/plugins/jupiter/types.d.ts +11 -0
  30. package/src/plugins/jupiter/types.js.map +1 -1
  31. package/src/plugins/sushiswap/helpers.js +24 -24
  32. package/src/plugins/uniswap-v2/helpers.js +22 -22
  33. package/src/plugins/zeta/airdropFetcher.js +14 -14
  34. package/src/utils/elementbuilder/AssetBuilder.d.ts +1 -1
  35. package/src/utils/elementbuilder/AssetGenericBuilder.d.ts +3 -3
  36. package/src/utils/elementbuilder/AssetGenericBuilder.js +1 -1
  37. package/src/utils/elementbuilder/AssetGenericBuilder.js.map +1 -1
  38. package/src/utils/elementbuilder/AssetTokenBuilder.d.ts +1 -1
  39. package/src/utils/elementbuilder/AssetTokenBuilder.js +1 -1
  40. package/src/utils/elementbuilder/AssetTokenBuilder.js.map +1 -1
  41. package/src/utils/elementbuilder/ElementBorrowlendBuilder.d.ts +5 -5
  42. package/src/utils/elementbuilder/ElementBorrowlendBuilder.js +7 -11
  43. package/src/utils/elementbuilder/ElementBorrowlendBuilder.js.map +1 -1
  44. package/src/utils/elementbuilder/ElementBuilder.d.ts +1 -1
  45. package/src/utils/elementbuilder/ElementConcentratedLiquidityBuilder.d.ts +3 -3
  46. package/src/utils/elementbuilder/ElementConcentratedLiquidityBuilder.js +1 -1
  47. package/src/utils/elementbuilder/ElementConcentratedLiquidityBuilder.js.map +1 -1
  48. package/src/utils/elementbuilder/ElementLeverageBuilder.d.ts +10 -5
  49. package/src/utils/elementbuilder/ElementLeverageBuilder.js +58 -12
  50. package/src/utils/elementbuilder/ElementLeverageBuilder.js.map +1 -1
  51. package/src/utils/elementbuilder/ElementLiquidityBuilder.d.ts +3 -3
  52. package/src/utils/elementbuilder/ElementLiquidityBuilder.js +2 -2
  53. package/src/utils/elementbuilder/ElementLiquidityBuilder.js.map +1 -1
  54. package/src/utils/elementbuilder/ElementMultipleBuilder.d.ts +3 -3
  55. package/src/utils/elementbuilder/ElementMultipleBuilder.js +3 -3
  56. package/src/utils/elementbuilder/ElementMultipleBuilder.js.map +1 -1
  57. package/src/utils/elementbuilder/ElementRegistry.d.ts +4 -0
  58. package/src/utils/elementbuilder/ElementRegistry.js +10 -1
  59. package/src/utils/elementbuilder/ElementRegistry.js.map +1 -1
  60. package/src/utils/elementbuilder/ElementTradeBuilder.d.ts +11 -0
  61. package/src/utils/elementbuilder/ElementTradeBuilder.js +87 -0
  62. package/src/utils/elementbuilder/ElementTradeBuilder.js.map +1 -0
  63. package/src/utils/elementbuilder/LevPositionBuilder.d.ts +12 -7
  64. package/src/utils/elementbuilder/LevPositionBuilder.js +25 -40
  65. package/src/utils/elementbuilder/LevPositionBuilder.js.map +1 -1
  66. package/src/utils/elementbuilder/Params.d.ts +17 -13
  67. package/src/utils/sei/constants.js +8 -8
  68. package/src/utils/sei/getQueryBalanceByOwner.js +4 -4
@@ -1,12 +1,17 @@
1
1
  import { NetworkIdType, PortfolioElementLeverage } from '@sonarwatch/portfolio-core';
2
2
  import { ElementBuilder } from './ElementBuilder';
3
- import { LevPositionParams, Params } from './Params';
3
+ import { CrossLevPositionParams, IsoLevPositionParams, Params, PortfolioAssetTokenParams } from './Params';
4
4
  import { TokenPriceMap } from '../../TokenPriceMap';
5
- import { LevPositionBuilder } from './LevPositionBuilder';
5
+ import { CrossLevPositionBuilder, IsoLevPositionBuilder } from './LevPositionBuilder';
6
+ import { AssetTokenBuilder } from './AssetTokenBuilder';
6
7
  export declare class ElementLeverageBuilder extends ElementBuilder {
7
- positions: LevPositionBuilder[];
8
+ isoPositions: IsoLevPositionBuilder[];
9
+ crossPositions: CrossLevPositionBuilder[];
10
+ crossCollateralAssets: AssetTokenBuilder[];
8
11
  constructor(params: Params);
9
- addPosition(params: LevPositionParams): LevPositionBuilder;
10
- mints(): string[];
12
+ tokenAddresses(): string[];
13
+ addIsoPosition(params: IsoLevPositionParams): IsoLevPositionBuilder;
14
+ addCrossPosition(params: CrossLevPositionParams): CrossLevPositionBuilder;
15
+ addCrossCollateral(params: PortfolioAssetTokenParams): void;
11
16
  get(networkId: NetworkIdType, platformId: string, tokenPrices: TokenPriceMap): PortfolioElementLeverage | null;
12
17
  }
@@ -4,30 +4,76 @@ exports.ElementLeverageBuilder = void 0;
4
4
  const portfolio_core_1 = require("@sonarwatch/portfolio-core");
5
5
  const ElementBuilder_1 = require("./ElementBuilder");
6
6
  const LevPositionBuilder_1 = require("./LevPositionBuilder");
7
+ const AssetTokenBuilder_1 = require("./AssetTokenBuilder");
7
8
  class ElementLeverageBuilder extends ElementBuilder_1.ElementBuilder {
8
9
  constructor(params) {
9
10
  super(params);
10
- this.positions = [];
11
+ this.isoPositions = [];
12
+ this.crossPositions = [];
13
+ this.crossCollateralAssets = [];
11
14
  }
12
- addPosition(params) {
13
- const levPositionBuilder = new LevPositionBuilder_1.LevPositionBuilder(params);
14
- this.positions.push(levPositionBuilder);
15
- return levPositionBuilder;
15
+ tokenAddresses() {
16
+ const addresses = [];
17
+ this.isoPositions.forEach((p) => {
18
+ if (p.tokenAddress)
19
+ addresses.push(p.tokenAddress);
20
+ });
21
+ this.crossPositions.forEach((p) => {
22
+ if (p.tokenAddress)
23
+ addresses.push(p.tokenAddress);
24
+ });
25
+ this.crossCollateralAssets.forEach((p) => {
26
+ addresses.push(p.address);
27
+ });
28
+ return addresses;
16
29
  }
17
- mints() {
18
- return this.positions.map((position) => position.mints()).flat();
30
+ addIsoPosition(params) {
31
+ const isoPositionBuilder = new LevPositionBuilder_1.IsoLevPositionBuilder(params);
32
+ this.isoPositions.push(isoPositionBuilder);
33
+ return isoPositionBuilder;
34
+ }
35
+ addCrossPosition(params) {
36
+ const crossPositionBuilder = new LevPositionBuilder_1.CrossLevPositionBuilder(params);
37
+ this.crossPositions.push(crossPositionBuilder);
38
+ return crossPositionBuilder;
39
+ }
40
+ addCrossCollateral(params) {
41
+ this.crossCollateralAssets.push(new AssetTokenBuilder_1.AssetTokenBuilder(params));
19
42
  }
20
43
  get(networkId, platformId, tokenPrices) {
21
44
  var _a;
22
- const positions = this.positions
45
+ const isoPositions = this.isoPositions.map((p) => p.get(networkId));
46
+ const isoValue = (0, portfolio_core_1.getUsdValueSum)([...isoPositions.map((a) => a.value)]);
47
+ const crossPositions = this.crossPositions.map((p) => p.get(networkId));
48
+ const crossCollateralAssets = this.crossCollateralAssets
23
49
  .map((p) => p.get(networkId, tokenPrices))
24
- .filter((p) => p !== null);
25
- const value = (0, portfolio_core_1.getUsdValueSum)(positions.map((a) => a.value));
50
+ .filter((a) => a !== null);
51
+ const crossValue = (0, portfolio_core_1.getUsdValueSum)([
52
+ ...crossCollateralAssets.map((a) => a.value),
53
+ ...crossPositions.map((p) => p.pnlValue),
54
+ ]);
55
+ const crossSizeValueTotal = (0, portfolio_core_1.getUsdValueSumStrict)(crossPositions.map((p) => p.sizeValue));
56
+ const crossLeverage = crossSizeValueTotal && crossValue
57
+ ? crossSizeValueTotal / crossValue
58
+ : undefined;
59
+ const value = (0, portfolio_core_1.getUsdValueSum)([crossValue, isoValue]);
26
60
  return {
27
- type: this.type,
61
+ type: portfolio_core_1.PortfolioElementType.leverage,
62
+ name: this.name,
63
+ tags: this.tags,
28
64
  label: this.label,
29
65
  data: {
30
- positions,
66
+ isolated: {
67
+ positions: isoPositions,
68
+ value: isoValue,
69
+ },
70
+ cross: {
71
+ positions: crossPositions,
72
+ collateralAssets: crossCollateralAssets,
73
+ collateralValue: (0, portfolio_core_1.getUsdValueSum)(crossCollateralAssets.map((a) => a.value)),
74
+ value: crossValue,
75
+ leverage: crossLeverage,
76
+ },
31
77
  value,
32
78
  ref: (_a = this.ref) === null || _a === void 0 ? void 0 : _a.toString(),
33
79
  sourceRefs: this.sourceRefs,
@@ -1 +1 @@
1
- {"version":3,"file":"ElementLeverageBuilder.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/utils/elementbuilder/ElementLeverageBuilder.ts"],"names":[],"mappings":";;;AAAA,+DAKoC;AACpC,qDAAkD;AAGlD,6DAA0D;AAE1D,MAAa,sBAAuB,SAAQ,+BAAc;IAGxD,YAAY,MAAc;QACxB,KAAK,CAAC,MAAM,CAAC,CAAC;QACd,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;IACtB,CAAC;IAED,WAAW,CAAC,MAAyB;QACnC,MAAM,kBAAkB,GAAG,IAAI,uCAAkB,CAAC,MAAM,CAAC,CAAC;QAC1D,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QACxC,OAAO,kBAAkB,CAAC;IAC5B,CAAC;IAED,KAAK;QACH,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACnE,CAAC;IAED,GAAG,CACD,SAAwB,EACxB,UAAkB,EAClB,WAA0B;;QAE1B,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS;aAC7B,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,CAAkB,CAAC;QAC9C,MAAM,KAAK,GAAG,IAAA,+BAAc,EAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;QAC5D,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,IAAI,EAAE;gBACJ,SAAS;gBACT,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;SACsB,CAAC;IAChC,CAAC;CACF;AA1CD,wDA0CC"}
1
+ {"version":3,"file":"ElementLeverageBuilder.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/utils/elementbuilder/ElementLeverageBuilder.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { NetworkIdType, PortfolioElement } from '@sonarwatch/portfolio-core';
1
+ import { NetworkIdType, PortfolioElementLiquidity } from '@sonarwatch/portfolio-core';
2
2
  import { ElementBuilder } from './ElementBuilder';
3
3
  import { LiquidityParams, Params } from './Params';
4
4
  import { TokenPriceMap } from '../../TokenPriceMap';
@@ -7,6 +7,6 @@ export declare class ElementLiquidityBuilder extends ElementBuilder {
7
7
  liquidities: LiquidityBuilder[];
8
8
  constructor(params: Params);
9
9
  addLiquidity(params?: LiquidityParams): LiquidityBuilder;
10
- mints(): string[];
11
- get(networkId: NetworkIdType, platformId: string, tokenPrices: TokenPriceMap): PortfolioElement | null;
10
+ tokenAddresses(): string[];
11
+ get(networkId: NetworkIdType, platformId: string, tokenPrices: TokenPriceMap): PortfolioElementLiquidity | null;
12
12
  }
@@ -14,7 +14,7 @@ class ElementLiquidityBuilder extends ElementBuilder_1.ElementBuilder {
14
14
  this.liquidities.push(liquidityBuilder);
15
15
  return liquidityBuilder;
16
16
  }
17
- mints() {
17
+ tokenAddresses() {
18
18
  return this.liquidities.map((liquidity) => liquidity.mints()).flat();
19
19
  }
20
20
  get(networkId, platformId, tokenPrices) {
@@ -24,7 +24,7 @@ class ElementLiquidityBuilder extends ElementBuilder_1.ElementBuilder {
24
24
  if (liquidities.length === 0)
25
25
  return null;
26
26
  return {
27
- type: this.type,
27
+ type: portfolio_core_1.PortfolioElementType.liquidity,
28
28
  label: this.label,
29
29
  networkId,
30
30
  platformId: this.platformId || platformId,
@@ -1 +1 @@
1
- {"version":3,"file":"ElementLiquidityBuilder.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/utils/elementbuilder/ElementLiquidityBuilder.ts"],"names":[],"mappings":";;;AAAA,+DAMoC;AACpC,qDAAkD;AAGlD,yDAAsD;AAEtD,MAAa,uBAAwB,SAAQ,+BAAc;IAGzD,YAAY,MAAc;QACxB,KAAK,CAAC,MAAM,CAAC,CAAC;QACd,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;IACxB,CAAC;IAED,YAAY,CAAC,MAAwB;QACnC,MAAM,gBAAgB,GAAG,IAAI,mCAAgB,CAAC,MAAM,CAAC,CAAC;QACtD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACxC,OAAO,gBAAgB,CAAC;IAC1B,CAAC;IAED,KAAK;QACH,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACvE,CAAC;IAEQ,GAAG,CACV,SAAwB,EACxB,UAAkB,EAClB,WAA0B;QAE1B,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW;aACjC,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,CAAyB,CAAC;QAErD,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QAE1C,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,SAAS;YACT,UAAU,EAAE,IAAI,CAAC,UAAU,IAAI,UAAU;YACzC,IAAI,EAAE;gBACJ,WAAW;aACZ;YACD,KAAK,EAAE,IAAA,+BAAc,EAAC,WAAW,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAC9D,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,IAAI,EAAE,IAAI,CAAC,IAAI;SACa,CAAC;IACjC,CAAC;CACF;AA1CD,0DA0CC"}
1
+ {"version":3,"file":"ElementLiquidityBuilder.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/utils/elementbuilder/ElementLiquidityBuilder.ts"],"names":[],"mappings":";;;AAAA,+DAMoC;AACpC,qDAAkD;AAGlD,yDAAsD;AAEtD,MAAa,uBAAwB,SAAQ,+BAAc;IAGzD,YAAY,MAAc;QACxB,KAAK,CAAC,MAAM,CAAC,CAAC;QACd,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;IACxB,CAAC;IAED,YAAY,CAAC,MAAwB;QACnC,MAAM,gBAAgB,GAAG,IAAI,mCAAgB,CAAC,MAAM,CAAC,CAAC;QACtD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACxC,OAAO,gBAAgB,CAAC;IAC1B,CAAC;IAED,cAAc;QACZ,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACvE,CAAC;IAEQ,GAAG,CACV,SAAwB,EACxB,UAAkB,EAClB,WAA0B;QAE1B,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW;aACjC,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,CAAyB,CAAC;QAErD,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QAE1C,OAAO;YACL,IAAI,EAAE,qCAAoB,CAAC,SAAS;YACpC,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,SAAS;YACT,UAAU,EAAE,IAAI,CAAC,UAAU,IAAI,UAAU;YACzC,IAAI,EAAE;gBACJ,WAAW;aACZ;YACD,KAAK,EAAE,IAAA,+BAAc,EAAC,WAAW,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAC9D,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,IAAI,EAAE,IAAI,CAAC,IAAI;SAChB,CAAC;IACJ,CAAC;CACF;AA1CD,0DA0CC"}
@@ -1,4 +1,4 @@
1
- import { NetworkIdType, PortfolioElement } from '@sonarwatch/portfolio-core';
1
+ import { NetworkIdType, PortfolioElementMultiple } from '@sonarwatch/portfolio-core';
2
2
  import { ElementBuilder } from './ElementBuilder';
3
3
  import { Params, PortfolioAssetGenericParams, PortfolioAssetTokenParams } from './Params';
4
4
  import { TokenPriceMap } from '../../TokenPriceMap';
@@ -8,6 +8,6 @@ export declare class ElementMultipleBuilder extends ElementBuilder {
8
8
  constructor(params: Params);
9
9
  addAsset(params: PortfolioAssetTokenParams): void;
10
10
  addGenericAsset(params: PortfolioAssetGenericParams): void;
11
- mints(): string[];
12
- get(networkId: NetworkIdType, platformId: string, tokenPrices: TokenPriceMap): PortfolioElement | null;
11
+ tokenAddresses(): string[];
12
+ get(networkId: NetworkIdType, platformId: string, tokenPrices: TokenPriceMap): PortfolioElementMultiple | null;
13
13
  }
@@ -16,8 +16,8 @@ class ElementMultipleBuilder extends ElementBuilder_1.ElementBuilder {
16
16
  addGenericAsset(params) {
17
17
  this.assets.push(new AssetGenericBuilder_1.AssetGenericBuilder(params));
18
18
  }
19
- mints() {
20
- return [...this.assets.map((a) => a.mints())].flat();
19
+ tokenAddresses() {
20
+ return [...this.assets.map((a) => a.tokenAddresses())].flat();
21
21
  }
22
22
  get(networkId, platformId, tokenPrices) {
23
23
  var _a;
@@ -27,7 +27,7 @@ class ElementMultipleBuilder extends ElementBuilder_1.ElementBuilder {
27
27
  if (assets.length === 0)
28
28
  return null;
29
29
  return {
30
- type: this.type,
30
+ type: portfolio_core_1.PortfolioElementType.multiple,
31
31
  label: this.label,
32
32
  networkId,
33
33
  platformId: this.platformId || platformId,
@@ -1 +1 @@
1
- {"version":3,"file":"ElementMultipleBuilder.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/utils/elementbuilder/ElementMultipleBuilder.ts"],"names":[],"mappings":";;;AAAA,+DAKoC;AACpC,qDAAkD;AAClD,2DAAwD;AAQxD,+DAA4D;AAE5D,MAAa,sBAAuB,SAAQ,+BAAc;IAGxD,YAAY,MAAc;QACxB,KAAK,CAAC,MAAM,CAAC,CAAC;QACd,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;IACnB,CAAC;IAED,QAAQ,CAAC,MAAiC;QACxC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,qCAAiB,CAAC,MAAM,CAAC,CAAC,CAAC;IAClD,CAAC;IAED,eAAe,CAAC,MAAmC;QACjD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,yCAAmB,CAAC,MAAM,CAAC,CAAC,CAAC;IACpD,CAAC;IAED,KAAK;QACH,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACvD,CAAC;IAED,GAAG,CACD,SAAwB,EACxB,UAAkB,EAClB,WAA0B;;QAE1B,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM;aACvB,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;QAEjD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QAErC,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,SAAS;YACT,UAAU,EAAE,IAAI,CAAC,UAAU,IAAI,UAAU;YACzC,IAAI,EAAE;gBACJ,MAAM;gBACN,GAAG,EAAE,MAAA,IAAI,CAAC,GAAG,0CAAE,QAAQ,EAAE;gBACzB,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,IAAI,EAAE,IAAI,CAAC,IAAI;aAChB;YACD,KAAK,EAAE,IAAA,+BAAc,EAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACzD,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,IAAI,EAAE,IAAI,CAAC,IAAI;SACI,CAAC;IACxB,CAAC;CACF;AA/CD,wDA+CC"}
1
+ {"version":3,"file":"ElementMultipleBuilder.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/utils/elementbuilder/ElementMultipleBuilder.ts"],"names":[],"mappings":";;;AAAA,+DAMoC;AACpC,qDAAkD;AAClD,2DAAwD;AAQxD,+DAA4D;AAE5D,MAAa,sBAAuB,SAAQ,+BAAc;IAGxD,YAAY,MAAc;QACxB,KAAK,CAAC,MAAM,CAAC,CAAC;QACd,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;IACnB,CAAC;IAED,QAAQ,CAAC,MAAiC;QACxC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,qCAAiB,CAAC,MAAM,CAAC,CAAC,CAAC;IAClD,CAAC;IAED,eAAe,CAAC,MAAmC;QACjD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,yCAAmB,CAAC,MAAM,CAAC,CAAC,CAAC;IACpD,CAAC;IAED,cAAc;QACZ,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAChE,CAAC;IAED,GAAG,CACD,SAAwB,EACxB,UAAkB,EAClB,WAA0B;;QAE1B,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM;aACvB,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;QAEjD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QAErC,OAAO;YACL,IAAI,EAAE,qCAAoB,CAAC,QAAQ;YACnC,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,SAAS;YACT,UAAU,EAAE,IAAI,CAAC,UAAU,IAAI,UAAU;YACzC,IAAI,EAAE;gBACJ,MAAM;gBACN,GAAG,EAAE,MAAA,IAAI,CAAC,GAAG,0CAAE,QAAQ,EAAE;gBACzB,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,IAAI,EAAE,IAAI,CAAC,IAAI;aAChB;YACD,KAAK,EAAE,IAAA,+BAAc,EAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACzD,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,IAAI,EAAE,IAAI,CAAC,IAAI;SAChB,CAAC;IACJ,CAAC;CACF;AA/CD,wDA+CC"}
@@ -7,6 +7,7 @@ import { ElementLiquidityBuilder } from './ElementLiquidityBuilder';
7
7
  import { ElementBorrowlendBuilder } from './ElementBorrowlendBuilder';
8
8
  import { ElementLeverageBuilder } from './ElementLeverageBuilder';
9
9
  import { ElementConcentratedLiquidityBuilder } from './ElementConcentratedLiquidityBuilder';
10
+ import { ElementTradeBuilder } from './ElementTradeBuilder';
10
11
  export declare class ElementRegistry {
11
12
  readonly networkId: NetworkIdType;
12
13
  readonly platformId: string;
@@ -19,5 +20,8 @@ export declare class ElementRegistry {
19
20
  }): ElementConcentratedLiquidityBuilder;
20
21
  addElementBorrowlend(params: Omit<Params, 'type'>): ElementBorrowlendBuilder;
21
22
  addElementLeverage(params: Omit<Params, 'type'>): ElementLeverageBuilder;
23
+ addElementTrade(elementParams?: Omit<Params, 'type' | 'label'> & {
24
+ label?: PortfolioElementLabel;
25
+ }): ElementTradeBuilder;
22
26
  getElements(cache: Cache): Promise<PortfolioElement[]>;
23
27
  }
@@ -16,6 +16,7 @@ const ElementLiquidityBuilder_1 = require("./ElementLiquidityBuilder");
16
16
  const ElementBorrowlendBuilder_1 = require("./ElementBorrowlendBuilder");
17
17
  const ElementLeverageBuilder_1 = require("./ElementLeverageBuilder");
18
18
  const ElementConcentratedLiquidityBuilder_1 = require("./ElementConcentratedLiquidityBuilder");
19
+ const ElementTradeBuilder_1 = require("./ElementTradeBuilder");
19
20
  class ElementRegistry {
20
21
  constructor(networkId, platformId) {
21
22
  this.networkId = networkId;
@@ -47,9 +48,17 @@ class ElementRegistry {
47
48
  this.elements.push(elementBuilder);
48
49
  return elementBuilder;
49
50
  }
51
+ addElementTrade(elementParams) {
52
+ const elementBuilder = new ElementTradeBuilder_1.ElementTradeBuilder({
53
+ type: portfolio_core_1.PortfolioElementType.trade,
54
+ label: (elementParams === null || elementParams === void 0 ? void 0 : elementParams.label) || 'LimitOrder',
55
+ });
56
+ this.elements.push(elementBuilder);
57
+ return elementBuilder;
58
+ }
50
59
  getElements(cache) {
51
60
  return __awaiter(this, void 0, void 0, function* () {
52
- const mints = this.elements.map((e) => e.mints()).flat();
61
+ const mints = this.elements.map((e) => e.tokenAddresses()).flat();
53
62
  const tokenPrices = yield cache.getTokenPricesAsMap(mints, this.networkId);
54
63
  return this.elements
55
64
  .map((e) => e.get(this.networkId, this.platformId, tokenPrices))
@@ -1 +1 @@
1
- {"version":3,"file":"ElementRegistry.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/utils/elementbuilder/ElementRegistry.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,+DAKoC;AAIpC,qEAAkE;AAClE,uEAAoE;AACpE,yEAAsE;AACtE,qEAAkE;AAClE,+FAA4F;AAE5F,MAAa,eAAe;IAK1B,YAAY,SAAwB,EAAE,UAAkB;QACtD,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;IACrB,CAAC;IAED,kBAAkB,CAAC,MAA4B;QAC7C,MAAM,cAAc,GAAG,IAAI,+CAAsB,iCAC5C,MAAM,KACT,IAAI,EAAE,qCAAoB,CAAC,QAAQ,IACnC,CAAC;QACH,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACnC,OAAO,cAAc,CAAC;IACxB,CAAC;IAED,mBAAmB,CAAC,MAA4B;QAC9C,MAAM,cAAc,GAAG,IAAI,iDAAuB,iCAC7C,MAAM,KACT,IAAI,EAAE,qCAAoB,CAAC,SAAS,IACpC,CAAC;QACH,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACnC,OAAO,cAAc,CAAC;IACxB,CAAC;IAED,+BAA+B,CAC7B,aAEC;QAED,MAAM,cAAc,GAAG,IAAI,yEAAmC,iCACzD,aAAa,KAChB,IAAI,EAAE,qCAAoB,CAAC,SAAS,EACpC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,IAAI,KAAI,EAAE,CAAC,EAAE,cAAc,CAAC,EACtD,KAAK,EAAE,CAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,KAAK,KAAI,eAAe,IAC9C,CAAC;QACH,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACnC,OAAO,cAAc,CAAC;IACxB,CAAC;IAED,oBAAoB,CAAC,MAA4B;QAC/C,MAAM,cAAc,GAAG,IAAI,mDAAwB,iCAC9C,MAAM,KACT,IAAI,EAAE,qCAAoB,CAAC,UAAU,IACrC,CAAC;QACH,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACnC,OAAO,cAAc,CAAC;IACxB,CAAC;IAED,kBAAkB,CAAC,MAA4B;QAC7C,MAAM,cAAc,GAAG,IAAI,+CAAsB,iCAC5C,MAAM,KACT,IAAI,EAAE,qCAAoB,CAAC,QAAQ,IACnC,CAAC;QACH,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACnC,OAAO,cAAc,CAAC;IACxB,CAAC;IAEK,WAAW,CAAC,KAAY;;YAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YACzD,MAAM,WAAW,GAAG,MAAM,KAAK,CAAC,mBAAmB,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;YAE3E,OAAO,IAAI,CAAC,QAAQ;iBACjB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;iBAC/D,MAAM,CACL,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,CACtB,CAAC;QAC5B,CAAC;KAAA;CACF;AAxED,0CAwEC"}
1
+ {"version":3,"file":"ElementRegistry.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/utils/elementbuilder/ElementRegistry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import { NetworkIdType, PortfolioElementTrade } from '@sonarwatch/portfolio-core';
2
+ import { ElementBuilder } from './ElementBuilder';
3
+ import { Params, TradeParams } from './Params';
4
+ import { TokenPriceMap } from '../../TokenPriceMap';
5
+ export declare class ElementTradeBuilder extends ElementBuilder {
6
+ params?: TradeParams;
7
+ constructor(params: Params);
8
+ setTrade(params: TradeParams): void;
9
+ tokenAddresses(): string[];
10
+ get(networkId: NetworkIdType, platformId: string, tokenPrices: TokenPriceMap): PortfolioElementTrade | null;
11
+ }
@@ -0,0 +1,87 @@
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.ElementTradeBuilder = void 0;
7
+ const portfolio_core_1 = require("@sonarwatch/portfolio-core");
8
+ const bignumber_js_1 = __importDefault(require("bignumber.js"));
9
+ const ElementBuilder_1 = require("./ElementBuilder");
10
+ const AssetTokenBuilder_1 = require("./AssetTokenBuilder");
11
+ class ElementTradeBuilder extends ElementBuilder_1.ElementBuilder {
12
+ // eslint-disable-next-line @typescript-eslint/no-useless-constructor
13
+ constructor(params) {
14
+ super(params);
15
+ }
16
+ setTrade(params) {
17
+ this.params = params;
18
+ }
19
+ tokenAddresses() {
20
+ var _a, _b;
21
+ const mints = [];
22
+ if ((_a = this.params) === null || _a === void 0 ? void 0 : _a.inputAsset)
23
+ mints.push(...new AssetTokenBuilder_1.AssetTokenBuilder(this.params.inputAsset).tokenAddresses());
24
+ if ((_b = this.params) === null || _b === void 0 ? void 0 : _b.outputAsset)
25
+ mints.push(this.params.outputAsset.address.toString());
26
+ return mints;
27
+ }
28
+ get(networkId, platformId, tokenPrices) {
29
+ var _a, _b, _c;
30
+ if (!this.params)
31
+ return null;
32
+ const inputAsset = new AssetTokenBuilder_1.AssetTokenBuilder(this.params.inputAsset).get(networkId, tokenPrices);
33
+ if (!(inputAsset === null || inputAsset === void 0 ? void 0 : inputAsset.data.amount))
34
+ return null;
35
+ const outputAsset = new bignumber_js_1.default(this.params.outputAsset.amount || 0).gt(0)
36
+ ? new AssetTokenBuilder_1.AssetTokenBuilder({
37
+ address: this.params.outputAsset.address.toString(),
38
+ amount: new bignumber_js_1.default(this.params.outputAsset.amount || 0).toNumber(),
39
+ }).get(networkId, tokenPrices)
40
+ : null;
41
+ const inputPrice = tokenPrices.get(this.params.inputAsset.address.toString());
42
+ const outputPrice = tokenPrices.get(this.params.outputAsset.address.toString());
43
+ if (!inputPrice)
44
+ return null;
45
+ const initialInputAmount = new bignumber_js_1.default(this.params.initialInputAmount).dividedBy(Math.pow(10, inputPrice.decimals));
46
+ return {
47
+ networkId,
48
+ label: this.label,
49
+ platformId,
50
+ type: portfolio_core_1.PortfolioElementType.trade,
51
+ name: this.name,
52
+ tags: this.tags,
53
+ data: {
54
+ assets: {
55
+ input: inputAsset,
56
+ output: outputAsset,
57
+ },
58
+ inputAddress: this.params.inputAsset.address.toString(),
59
+ outputAddress: this.params.outputAsset.address.toString(),
60
+ initialInputAmount: initialInputAmount.toNumber(),
61
+ withdrawnOutputAmount: this.params.withdrawnOutputAmount && outputPrice
62
+ ? new bignumber_js_1.default(this.params.withdrawnOutputAmount)
63
+ .dividedBy(Math.pow(10, outputPrice.decimals))
64
+ .toNumber()
65
+ : 0,
66
+ expectedOutputAmount: this.params.expectedOutputAmount && outputPrice
67
+ ? new bignumber_js_1.default(this.params.expectedOutputAmount)
68
+ .dividedBy(Math.pow(10, outputPrice.decimals))
69
+ .toNumber()
70
+ : undefined,
71
+ filledPercentage: new bignumber_js_1.default(1)
72
+ .minus(new bignumber_js_1.default(inputAsset.data.amount).dividedBy(initialInputAmount))
73
+ .toNumber(),
74
+ inputPrice: inputPrice.price,
75
+ outputPrice: (outputPrice === null || outputPrice === void 0 ? void 0 : outputPrice.price) || null,
76
+ createdAt: (_a = this.params) === null || _a === void 0 ? void 0 : _a.createdAt,
77
+ expireAt: (_b = this.params) === null || _b === void 0 ? void 0 : _b.expireAt,
78
+ ref: (_c = this.ref) === null || _c === void 0 ? void 0 : _c.toString(),
79
+ sourceRefs: this.sourceRefs,
80
+ link: this.link,
81
+ },
82
+ value: (0, portfolio_core_1.getUsdValueSum)([inputAsset.value, (outputAsset === null || outputAsset === void 0 ? void 0 : outputAsset.value) || 0]),
83
+ };
84
+ }
85
+ }
86
+ exports.ElementTradeBuilder = ElementTradeBuilder;
87
+ //# sourceMappingURL=ElementTradeBuilder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ElementTradeBuilder.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/utils/elementbuilder/ElementTradeBuilder.ts"],"names":[],"mappings":";;;;;;AAAA,+DAKoC;AACpC,gEAAqC;AACrC,qDAAkD;AAGlD,2DAAwD;AAExD,MAAa,mBAAoB,SAAQ,+BAAc;IAGrD,qEAAqE;IACrE,YAAY,MAAc;QACxB,KAAK,CAAC,MAAM,CAAC,CAAC;IAChB,CAAC;IAED,QAAQ,CAAC,MAAmB;QAC1B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,cAAc;;QACZ,MAAM,KAAK,GAAG,EAAE,CAAC;QACjB,IAAI,MAAA,IAAI,CAAC,MAAM,0CAAE,UAAU;YACzB,KAAK,CAAC,IAAI,CACR,GAAG,IAAI,qCAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,cAAc,EAAE,CAClE,CAAC;QACJ,IAAI,MAAA,IAAI,CAAC,MAAM,0CAAE,WAAW;YAC1B,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;QACzD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,GAAG,CACD,SAAwB,EACxB,UAAkB,EAClB,WAA0B;;QAE1B,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC;QAC9B,MAAM,UAAU,GAAG,IAAI,qCAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,GAAG,CAClE,SAAS,EACT,WAAW,CACZ,CAAC;QAEF,IAAI,CAAC,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,IAAI,CAAC,MAAM,CAAA;YAAE,OAAO,IAAI,CAAC;QAE1C,MAAM,WAAW,GAAG,IAAI,sBAAS,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAC1E,CAAC,CAAC,IAAI,qCAAiB,CAAC;gBACpB,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,QAAQ,EAAE;gBACnD,MAAM,EAAE,IAAI,sBAAS,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE;aACtE,CAAC,CAAC,GAAG,CAAC,SAAS,EAAE,WAAW,CAAC;YAChC,CAAC,CAAC,IAAI,CAAC;QAET,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,CAChC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,EAAE,CAC1C,CAAC;QACF,MAAM,WAAW,GAAG,WAAW,CAAC,GAAG,CACjC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,QAAQ,EAAE,CAC3C,CAAC;QAEF,IAAI,CAAC,UAAU;YAAE,OAAO,IAAI,CAAC;QAE7B,MAAM,kBAAkB,GAAG,IAAI,sBAAS,CACtC,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAC/B,CAAC,SAAS,CAAC,SAAA,EAAE,EAAI,UAAU,CAAC,QAAQ,CAAA,CAAC,CAAC;QAEvC,OAAO;YACL,SAAS;YACT,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,UAAU;YACV,IAAI,EAAE,qCAAoB,CAAC,KAAK;YAChC,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,IAAI,EAAE;gBACJ,MAAM,EAAE;oBACN,KAAK,EAAE,UAAU;oBACjB,MAAM,EAAE,WAAW;iBACpB;gBACD,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,EAAE;gBACvD,aAAa,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,QAAQ,EAAE;gBACzD,kBAAkB,EAAE,kBAAkB,CAAC,QAAQ,EAAE;gBACjD,qBAAqB,EACnB,IAAI,CAAC,MAAM,CAAC,qBAAqB,IAAI,WAAW;oBAC9C,CAAC,CAAC,IAAI,sBAAS,CAAC,IAAI,CAAC,MAAM,CAAC,qBAAqB,CAAC;yBAC7C,SAAS,CAAC,SAAA,EAAE,EAAI,WAAW,CAAC,QAAQ,CAAA,CAAC;yBACrC,QAAQ,EAAE;oBACf,CAAC,CAAC,CAAC;gBACP,oBAAoB,EAClB,IAAI,CAAC,MAAM,CAAC,oBAAoB,IAAI,WAAW;oBAC7C,CAAC,CAAC,IAAI,sBAAS,CAAC,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC;yBAC5C,SAAS,CAAC,SAAA,EAAE,EAAI,WAAW,CAAC,QAAQ,CAAA,CAAC;yBACrC,QAAQ,EAAE;oBACf,CAAC,CAAC,SAAS;gBACf,gBAAgB,EAAE,IAAI,sBAAS,CAAC,CAAC,CAAC;qBAC/B,KAAK,CACJ,IAAI,sBAAS,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,kBAAkB,CAAC,CACpE;qBACA,QAAQ,EAAE;gBACb,UAAU,EAAE,UAAU,CAAC,KAAK;gBAC5B,WAAW,EAAE,CAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,KAAK,KAAI,IAAI;gBACvC,SAAS,EAAE,MAAA,IAAI,CAAC,MAAM,0CAAE,SAAS;gBACjC,QAAQ,EAAE,MAAA,IAAI,CAAC,MAAM,0CAAE,QAAQ;gBAC/B,GAAG,EAAE,MAAA,IAAI,CAAC,GAAG,0CAAE,QAAQ,EAAE;gBACzB,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,IAAI,EAAE,IAAI,CAAC,IAAI;aAChB;YACD,KAAK,EAAE,IAAA,+BAAc,EAAC,CAAC,UAAU,CAAC,KAAK,EAAE,CAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,KAAK,KAAI,CAAC,CAAC,CAAC;SACnE,CAAC;IACJ,CAAC;CACF;AAnGD,kDAmGC"}
@@ -1,9 +1,14 @@
1
- import { LevPosition, NetworkIdType } from '@sonarwatch/portfolio-core';
2
- import { TokenPriceMap } from '../../TokenPriceMap';
3
- import { LevPositionParams } from './Params';
4
- export declare class LevPositionBuilder {
1
+ import { CrossLevPosition, IsoLevPosition, NetworkIdType } from '@sonarwatch/portfolio-core';
2
+ import { CrossLevPositionParams, IsoLevPositionParams } from './Params';
3
+ export declare class IsoLevPositionBuilder {
5
4
  private params;
6
- constructor(params: LevPositionParams);
7
- mints(): string[];
8
- get(networkId: NetworkIdType, tokenPrices: TokenPriceMap): LevPosition | null;
5
+ constructor(params: IsoLevPositionParams);
6
+ get(networkId: NetworkIdType): IsoLevPosition;
7
+ get tokenAddress(): string | undefined;
8
+ }
9
+ export declare class CrossLevPositionBuilder {
10
+ private params;
11
+ constructor(params: CrossLevPositionParams);
12
+ get(networkId: NetworkIdType): CrossLevPosition;
13
+ get tokenAddress(): string | undefined;
9
14
  }
@@ -1,50 +1,35 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.LevPositionBuilder = void 0;
3
+ exports.CrossLevPositionBuilder = exports.IsoLevPositionBuilder = void 0;
4
+ /* eslint-disable max-classes-per-file */
7
5
  const portfolio_core_1 = require("@sonarwatch/portfolio-core");
8
- const bignumber_js_1 = __importDefault(require("bignumber.js"));
9
- class LevPositionBuilder {
6
+ class IsoLevPositionBuilder {
10
7
  constructor(params) {
11
8
  this.params = params;
12
9
  }
13
- mints() {
14
- if (this.params.collateralAmount)
15
- return [this.params.address];
16
- return [];
10
+ get(networkId) {
11
+ return Object.assign(Object.assign({}, this.params), { address: this.params.address
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]) });
17
15
  }
18
- get(networkId, tokenPrices) {
19
- var _a;
20
- let collateralValue;
21
- if (this.params.collateralAmount) {
22
- const collateralTokenPrice = tokenPrices.get(this.params.address);
23
- if (!collateralTokenPrice)
24
- return null;
25
- collateralValue = this.params.collateralAmount
26
- .dividedBy(Math.pow(10, collateralTokenPrice.decimals))
27
- .multipliedBy(collateralTokenPrice.price);
28
- }
29
- else if (!this.params.collateralValue) {
30
- return null;
31
- }
32
- else {
33
- collateralValue = new bignumber_js_1.default(this.params.collateralValue);
34
- }
35
- return {
36
- address: (0, portfolio_core_1.formatTokenAddress)(this.params.address, networkId),
37
- side: this.params.side,
38
- liquidationPrice: this.params.liquidationPrice || null,
39
- collateralValue: collateralValue.toNumber(),
40
- sizeValue: this.params.sizeValue.toNumber(),
41
- pnlValue: (_a = this.params.pnlValue) === null || _a === void 0 ? void 0 : _a.toNumber(),
42
- value: collateralValue.plus(this.params.pnlValue || 0).toNumber(),
43
- name: this.params.name,
44
- imageUri: this.params.imageUri,
45
- leverage: this.params.leverage,
46
- };
16
+ get tokenAddress() {
17
+ return this.params.address;
47
18
  }
48
19
  }
49
- exports.LevPositionBuilder = LevPositionBuilder;
20
+ exports.IsoLevPositionBuilder = IsoLevPositionBuilder;
21
+ class CrossLevPositionBuilder {
22
+ constructor(params) {
23
+ this.params = params;
24
+ }
25
+ get(networkId) {
26
+ return Object.assign(Object.assign({}, this.params), { address: this.params.address
27
+ ? (0, portfolio_core_1.formatTokenAddress)(this.params.address, networkId)
28
+ : undefined });
29
+ }
30
+ get tokenAddress() {
31
+ return this.params.address;
32
+ }
33
+ }
34
+ exports.CrossLevPositionBuilder = CrossLevPositionBuilder;
50
35
  //# sourceMappingURL=LevPositionBuilder.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"LevPositionBuilder.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/utils/elementbuilder/LevPositionBuilder.ts"],"names":[],"mappings":";;;;;;AAAA,+DAIoC;AACpC,gEAAqC;AAIrC,MAAa,kBAAkB;IAG7B,YAAY,MAAyB;QACnC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,KAAK;QACH,IAAI,IAAI,CAAC,MAAM,CAAC,gBAAgB;YAAE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC/D,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,GAAG,CACD,SAAwB,EACxB,WAA0B;;QAE1B,IAAI,eAAe,CAAC;QACpB,IAAI,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC;YACjC,MAAM,oBAAoB,GAAG,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAClE,IAAI,CAAC,oBAAoB;gBAAE,OAAO,IAAI,CAAC;YACvC,eAAe,GAAG,IAAI,CAAC,MAAM,CAAC,gBAAgB;iBAC3C,SAAS,CAAC,SAAA,EAAE,EAAI,oBAAoB,CAAC,QAAQ,CAAA,CAAC;iBAC9C,YAAY,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC;QAC9C,CAAC;aAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC;YACxC,OAAO,IAAI,CAAC;QACd,CAAC;aAAM,CAAC;YACN,eAAe,GAAG,IAAI,sBAAS,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;QAC/D,CAAC;QAED,OAAO;YACL,OAAO,EAAE,IAAA,mCAAkB,EAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC;YAC3D,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI;YACtB,gBAAgB,EAAE,IAAI,CAAC,MAAM,CAAC,gBAAgB,IAAI,IAAI;YACtD,eAAe,EAAE,eAAe,CAAC,QAAQ,EAAE;YAC3C,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,EAAE;YAC3C,QAAQ,EAAE,MAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,0CAAE,QAAQ,EAAE;YAC1C,KAAK,EAAE,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE;YACjE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI;YACtB,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ;YAC9B,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ;SAChB,CAAC;IACnB,CAAC;CACF;AA1CD,gDA0CC"}
1
+ {"version":3,"file":"LevPositionBuilder.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/utils/elementbuilder/LevPositionBuilder.ts"],"names":[],"mappings":";;;AAAA,yCAAyC;AACzC,+DAMoC;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,EACH,IAAI,CAAC,MAAM,CAAC,KAAK;gBACjB,IAAA,+BAAc,EAAC,CAAC,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IACrE;IACJ,CAAC;IAED,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;IAC7B,CAAC;CACF;AAtBD,sDAsBC;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 { LeverageSide, PortfolioAssetAttributes, PortfolioElementLabel, PortfolioElementTypeType, SourceRef, UsdValue } from '@sonarwatch/portfolio-core';
3
+ import { CrossLevPosition, IsoLevPosition, PortfolioAssetAttributes, PortfolioElementLabel, PortfolioElementTypeType, SourceRef, 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 = {
@@ -36,18 +36,6 @@ export type ConcentratedLiquidityParams = {
36
36
  ref?: string | PublicKey;
37
37
  link?: string;
38
38
  };
39
- export type LevPositionParams = {
40
- address: string;
41
- collateralAmount?: BigNumber;
42
- collateralValue?: UsdValue;
43
- side: LeverageSide;
44
- sizeValue: BigNumber;
45
- liquidationPrice?: BigNumber;
46
- pnlValue?: BigNumber;
47
- name?: string;
48
- imageUri?: string;
49
- leverage?: number;
50
- };
51
39
  export type PortfolioAssetGenericParams = {
52
40
  address?: string | PublicKey;
53
41
  amount?: number | BigNumber | string;
@@ -62,3 +50,19 @@ export type PortfolioAssetTokenParams = {
62
50
  attributes?: PortfolioAssetAttributes;
63
51
  alreadyShifted?: boolean;
64
52
  };
53
+ export type TradeParams = {
54
+ inputAsset: PortfolioAssetTokenParams;
55
+ outputAsset: {
56
+ address: string | PublicKey;
57
+ amount?: number | BigNumber | string;
58
+ };
59
+ initialInputAmount: number | BigNumber | string;
60
+ expectedOutputAmount?: number | BigNumber | string;
61
+ withdrawnOutputAmount: number | BigNumber | string;
62
+ createdAt?: number;
63
+ expireAt?: number;
64
+ };
65
+ export type IsoLevPositionParams = Omit<IsoLevPosition, 'value'> & {
66
+ value?: UsdValue;
67
+ };
68
+ export type CrossLevPositionParams = CrossLevPosition;
@@ -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;