@sonarwatch/portfolio-plugins 0.6.4 → 0.6.6

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 (102) hide show
  1. package/CHANGELOG.md +10 -2
  2. package/package.json +5 -2
  3. package/src/index.js +8 -0
  4. package/src/index.js.map +1 -1
  5. package/src/platforms.d.ts +4 -0
  6. package/src/platforms.js +21 -1
  7. package/src/platforms.js.map +1 -1
  8. package/src/plugins/aftermath/constants.d.ts +2 -0
  9. package/src/plugins/aftermath/constants.js +6 -0
  10. package/src/plugins/aftermath/constants.js.map +1 -0
  11. package/src/plugins/aftermath/index.d.ts +4 -0
  12. package/src/plugins/aftermath/index.js +10 -0
  13. package/src/plugins/aftermath/index.js.map +1 -0
  14. package/src/plugins/aftermath/poolsJob.d.ts +3 -0
  15. package/src/plugins/aftermath/poolsJob.js +80 -0
  16. package/src/plugins/aftermath/poolsJob.js.map +1 -0
  17. package/src/plugins/aftermath/types.d.ts +33 -0
  18. package/src/plugins/aftermath/types.js +3 -0
  19. package/src/plugins/aftermath/types.js.map +1 -0
  20. package/src/plugins/astroport/constants.d.ts +3 -0
  21. package/src/plugins/astroport/constants.js +7 -0
  22. package/src/plugins/astroport/constants.js.map +1 -0
  23. package/src/plugins/astroport/index.d.ts +4 -0
  24. package/src/plugins/astroport/index.js +11 -0
  25. package/src/plugins/astroport/index.js.map +1 -0
  26. package/src/plugins/astroport/lpSeiFetcher.d.ts +3 -0
  27. package/src/plugins/astroport/lpSeiFetcher.js +72 -0
  28. package/src/plugins/astroport/lpSeiFetcher.js.map +1 -0
  29. package/src/plugins/astroport/lpSeiJob.d.ts +3 -0
  30. package/src/plugins/astroport/lpSeiJob.js +75 -0
  31. package/src/plugins/astroport/lpSeiJob.js.map +1 -0
  32. package/src/plugins/astroport/types.d.ts +18 -0
  33. package/src/plugins/astroport/types.js +3 -0
  34. package/src/plugins/astroport/types.js.map +1 -0
  35. package/src/plugins/auxexchange/aptosLpJob.js +5 -7
  36. package/src/plugins/auxexchange/aptosLpJob.js.map +1 -1
  37. package/src/plugins/liquiditypools-sei/constants.d.ts +4 -0
  38. package/src/plugins/liquiditypools-sei/constants.js +15 -0
  39. package/src/plugins/liquiditypools-sei/constants.js.map +1 -0
  40. package/src/plugins/liquiditypools-sei/fetcher.d.ts +3 -0
  41. package/src/plugins/liquiditypools-sei/fetcher.js +87 -0
  42. package/src/plugins/liquiditypools-sei/fetcher.js.map +1 -0
  43. package/src/plugins/liquiditypools-sei/index.d.ts +4 -0
  44. package/src/plugins/liquiditypools-sei/index.js +11 -0
  45. package/src/plugins/liquiditypools-sei/index.js.map +1 -0
  46. package/src/plugins/liquiditypools-sei/job.d.ts +3 -0
  47. package/src/plugins/liquiditypools-sei/job.js +91 -0
  48. package/src/plugins/liquiditypools-sei/job.js.map +1 -0
  49. package/src/plugins/liquiditypools-sei/types.d.ts +4 -0
  50. package/src/plugins/liquiditypools-sei/types.js +3 -0
  51. package/src/plugins/liquiditypools-sei/types.js.map +1 -0
  52. package/src/plugins/liquidswap/aptosLpJob.js +6 -6
  53. package/src/plugins/liquidswap/aptosLpJob.js.map +1 -1
  54. package/src/plugins/orders/index.js +39 -39
  55. package/src/plugins/orders/index.js.map +1 -1
  56. package/src/plugins/pancakeswap/aptosLpJob.js +5 -7
  57. package/src/plugins/pancakeswap/aptosLpJob.js.map +1 -1
  58. package/src/plugins/tokens/fetchers/sei.js +1 -1
  59. package/src/plugins/tokens/fetchers/sei.js.map +1 -1
  60. package/src/utils/clients/constants.js +1 -1
  61. package/src/utils/clients/constants.js.map +1 -1
  62. package/src/utils/clients/getClientCosmWasm.d.ts +3 -0
  63. package/src/utils/clients/getClientCosmWasm.js +10 -0
  64. package/src/utils/clients/getClientCosmWasm.js.map +1 -0
  65. package/src/utils/clients/getClientCosmos.d.ts +99 -0
  66. package/src/utils/clients/getClientCosmos.js +10 -0
  67. package/src/utils/clients/getClientCosmos.js.map +1 -0
  68. package/src/utils/clients/getClientIbc.d.ts +182 -0
  69. package/src/utils/clients/getClientIbc.js +12 -0
  70. package/src/utils/clients/getClientIbc.js.map +1 -0
  71. package/src/utils/clients/getClientSei.d.ts +123 -13
  72. package/src/utils/clients/getClientSei.js +2 -2
  73. package/src/utils/clients/getClientSei.js.map +1 -1
  74. package/src/utils/clients/index.d.ts +3 -0
  75. package/src/utils/clients/index.js +7 -1
  76. package/src/utils/clients/index.js.map +1 -1
  77. package/src/utils/misc/{setLpPriceSource.d.ts → computeAndStoreLpPrice.d.ts} +5 -2
  78. package/src/utils/misc/computeAndStoreLpPrice.js +78 -0
  79. package/src/utils/misc/computeAndStoreLpPrice.js.map +1 -0
  80. package/src/utils/misc/computeAndStoreTokenPrice.d.ts +27 -0
  81. package/src/utils/misc/computeAndStoreTokenPrice.js +175 -0
  82. package/src/utils/misc/computeAndStoreTokenPrice.js.map +1 -0
  83. package/src/utils/misc/getDecimalsForToken.d.ts +1 -1
  84. package/src/utils/misc/getDecimalsForToken.js +24 -1
  85. package/src/utils/misc/getDecimalsForToken.js.map +1 -1
  86. package/src/utils/sei/constants.d.ts +4 -0
  87. package/src/utils/sei/constants.js +16 -0
  88. package/src/utils/sei/constants.js.map +1 -0
  89. package/src/utils/sei/getAllBalances.d.ts +3 -2
  90. package/src/utils/sei/getAllBalances.js +3 -3
  91. package/src/utils/sei/getAllBalances.js.map +1 -1
  92. package/src/utils/sei/getQueryBalanceByOwner.d.ts +1 -0
  93. package/src/utils/sei/getQueryBalanceByOwner.js +11 -0
  94. package/src/utils/sei/getQueryBalanceByOwner.js.map +1 -0
  95. package/src/utils/sei/index.d.ts +2 -0
  96. package/src/utils/sei/index.js +2 -0
  97. package/src/utils/sei/index.js.map +1 -1
  98. package/src/utils/sei/types.d.ts +25 -0
  99. package/src/utils/sei/types.js +3 -0
  100. package/src/utils/sei/types.js.map +1 -0
  101. package/src/utils/misc/setLpPriceSource.js +0 -126
  102. package/src/utils/misc/setLpPriceSource.js.map +0 -1
@@ -2,6 +2,9 @@ export { default as getClientAptos } from './getClientAptos';
2
2
  export { default as getClientSolana } from './getClientSolana';
3
3
  export { default as getClientSui } from './getClientSui';
4
4
  export { default as getClientSei } from './getClientSei';
5
+ export { default as getClientCosmos } from './getClientCosmos';
6
+ export { default as getClientIbc } from './getClientIbc';
7
+ export { default as getClientCosmWasm } from './getClientCosmWasm';
5
8
  export { default as getEvmClient } from './getEvmClient';
6
9
  export { default as getEvmClients } from './getEvmClients';
7
10
  export { default as urlToRpcEndpoint } from './urlToRpcEndpoint';
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.urlToRpcEndpoint = exports.getEvmClients = exports.getEvmClient = exports.getClientSei = exports.getClientSui = exports.getClientSolana = exports.getClientAptos = void 0;
6
+ exports.urlToRpcEndpoint = exports.getEvmClients = exports.getEvmClient = exports.getClientCosmWasm = exports.getClientIbc = exports.getClientCosmos = exports.getClientSei = exports.getClientSui = exports.getClientSolana = exports.getClientAptos = void 0;
7
7
  var getClientAptos_1 = require("./getClientAptos");
8
8
  Object.defineProperty(exports, "getClientAptos", { enumerable: true, get: function () { return __importDefault(getClientAptos_1).default; } });
9
9
  var getClientSolana_1 = require("./getClientSolana");
@@ -12,6 +12,12 @@ var getClientSui_1 = require("./getClientSui");
12
12
  Object.defineProperty(exports, "getClientSui", { enumerable: true, get: function () { return __importDefault(getClientSui_1).default; } });
13
13
  var getClientSei_1 = require("./getClientSei");
14
14
  Object.defineProperty(exports, "getClientSei", { enumerable: true, get: function () { return __importDefault(getClientSei_1).default; } });
15
+ var getClientCosmos_1 = require("./getClientCosmos");
16
+ Object.defineProperty(exports, "getClientCosmos", { enumerable: true, get: function () { return __importDefault(getClientCosmos_1).default; } });
17
+ var getClientIbc_1 = require("./getClientIbc");
18
+ Object.defineProperty(exports, "getClientIbc", { enumerable: true, get: function () { return __importDefault(getClientIbc_1).default; } });
19
+ var getClientCosmWasm_1 = require("./getClientCosmWasm");
20
+ Object.defineProperty(exports, "getClientCosmWasm", { enumerable: true, get: function () { return __importDefault(getClientCosmWasm_1).default; } });
15
21
  var getEvmClient_1 = require("./getEvmClient");
16
22
  Object.defineProperty(exports, "getEvmClient", { enumerable: true, get: function () { return __importDefault(getEvmClient_1).default; } });
17
23
  var getEvmClients_1 = require("./getEvmClients");
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/utils/clients/index.ts"],"names":[],"mappings":";;;;;;AAAA,mDAA6D;AAApD,iIAAA,OAAO,OAAkB;AAClC,qDAA+D;AAAtD,mIAAA,OAAO,OAAmB;AACnC,+CAAyD;AAAhD,6HAAA,OAAO,OAAgB;AAChC,+CAAyD;AAAhD,6HAAA,OAAO,OAAgB;AAChC,+CAAyD;AAAhD,6HAAA,OAAO,OAAgB;AAChC,iDAA2D;AAAlD,+HAAA,OAAO,OAAiB;AACjC,uDAAiE;AAAxD,qIAAA,OAAO,OAAoB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/utils/clients/index.ts"],"names":[],"mappings":";;;;;;AAAA,mDAA6D;AAApD,iIAAA,OAAO,OAAkB;AAClC,qDAA+D;AAAtD,mIAAA,OAAO,OAAmB;AACnC,+CAAyD;AAAhD,6HAAA,OAAO,OAAgB;AAChC,+CAAyD;AAAhD,6HAAA,OAAO,OAAgB;AAChC,qDAA+D;AAAtD,mIAAA,OAAO,OAAmB;AACnC,+CAAyD;AAAhD,6HAAA,OAAO,OAAgB;AAChC,yDAAmE;AAA1D,uIAAA,OAAO,OAAqB;AACrC,+CAAyD;AAAhD,6HAAA,OAAO,OAAgB;AAChC,iDAA2D;AAAlD,+HAAA,OAAO,OAAiB;AACjC,uDAAiE;AAAxD,qIAAA,OAAO,OAAoB"}
@@ -8,11 +8,14 @@ export type PoolData = {
8
8
  reserveTokenX: BigNumber;
9
9
  reserveTokenY: BigNumber;
10
10
  mintTokenX: string;
11
+ decimalX?: number;
11
12
  mintTokenY: string;
13
+ decimalY?: number;
12
14
  };
13
15
  /**
14
16
  * Add a price source for a pool in the cache.
15
- * If one of the token composing the pool doesn't have a price in the cache, add a new token price source for it.
17
+ * If one of the token composing the pool doesn't have a price and can be safely calculated, add a new token price.
18
+ * WARNING : check tokensToRelyOnByNetwork for further details on how the new token price is calculated.
16
19
  *
17
20
  * @param cache The cache on which the LP price will be stored
18
21
  * @param tokenMintX The address/mint of the first token
@@ -22,4 +25,4 @@ export type PoolData = {
22
25
  * @param platformId The platform from which the price is calculated
23
26
  *
24
27
  */
25
- export default function setLpPriceSource(cache: Cache, poolData: PoolData, networkId: NetworkIdType, platformId: string): Promise<void>;
28
+ export default function computeAndStoreLpPrice(cache: Cache, poolData: PoolData, networkId: NetworkIdType, platformId: string): Promise<void>;
@@ -0,0 +1,78 @@
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 bignumber_js_1 = __importDefault(require("bignumber.js"));
16
+ const computeAndStoreTokenPrice_1 = __importDefault(require("./computeAndStoreTokenPrice"));
17
+ // This number is used to prevent very low liquidity pools to be added, as a safeguard against price manipulation.
18
+ const minimumLiquidity = new bignumber_js_1.default(5000);
19
+ /**
20
+ * Add a price source for a pool in the cache.
21
+ * If one of the token composing the pool doesn't have a price and can be safely calculated, add a new token price.
22
+ * WARNING : check tokensToRelyOnByNetwork for further details on how the new token price is calculated.
23
+ *
24
+ * @param cache The cache on which the LP price will be stored
25
+ * @param tokenMintX The address/mint of the first token
26
+ * @param tokenMintY The address/mint of the second token
27
+ * @param poolData An object with informmations about the pool
28
+ * @param networkId The network for which the LP price source is stored
29
+ * @param platformId The platform from which the price is calculated
30
+ *
31
+ */
32
+ function computeAndStoreLpPrice(cache, poolData, networkId, platformId) {
33
+ return __awaiter(this, void 0, void 0, function* () {
34
+ const tokenX = poolData.mintTokenX;
35
+ const tokenY = poolData.mintTokenY;
36
+ const { decimalX } = poolData;
37
+ const { decimalY } = poolData;
38
+ const rawReserveX = poolData.reserveTokenX;
39
+ const rawReserveY = poolData.reserveTokenY;
40
+ const partialTokensPrices = yield (0, computeAndStoreTokenPrice_1.default)(cache, `${platformId}-${poolData.id}`, networkId, { mint: tokenX, decimal: decimalX, rawReserve: rawReserveX }, { mint: tokenY, decimal: decimalY, rawReserve: rawReserveY });
41
+ if (!partialTokensPrices)
42
+ return;
43
+ const partialTokenX = partialTokensPrices.partialTokenUnderlyingX;
44
+ const partialTokenY = partialTokensPrices.partialTokenUnderlyingY;
45
+ const reserveAmountX = rawReserveX.div(Math.pow(10, partialTokenX.decimals));
46
+ const reserveAmountY = rawReserveY.div(Math.pow(10, partialTokenY.decimals));
47
+ const totalLiquidity = reserveAmountX
48
+ .multipliedBy(partialTokenX.price)
49
+ .plus(reserveAmountY.multipliedBy(partialTokenY.price));
50
+ if (totalLiquidity.isLessThan(minimumLiquidity))
51
+ return;
52
+ const reserveValueX = reserveAmountX.multipliedBy(partialTokenX.price);
53
+ const reserveValueY = reserveAmountY.multipliedBy(partialTokenY.price);
54
+ const poolSupply = poolData.supply.dividedBy(Math.pow(10, poolData.lpDecimals));
55
+ const lpPrice = reserveValueX
56
+ .plus(reserveValueY)
57
+ .dividedBy(poolSupply)
58
+ .toNumber();
59
+ const amountXPerLp = reserveAmountX.dividedBy(poolSupply).toNumber();
60
+ const amountYPerLp = reserveAmountY.dividedBy(poolSupply).toNumber();
61
+ yield cache.setTokenPriceSource({
62
+ id: platformId,
63
+ weight: 1,
64
+ address: poolData.id,
65
+ networkId,
66
+ platformId,
67
+ decimals: poolData.lpDecimals,
68
+ price: lpPrice,
69
+ underlyings: [
70
+ Object.assign(Object.assign({}, partialTokenX), { amountPerLp: amountXPerLp }),
71
+ Object.assign(Object.assign({}, partialTokenY), { amountPerLp: amountYPerLp }),
72
+ ],
73
+ timestamp: Date.now(),
74
+ });
75
+ });
76
+ }
77
+ exports.default = computeAndStoreLpPrice;
78
+ //# sourceMappingURL=computeAndStoreLpPrice.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"computeAndStoreLpPrice.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/utils/misc/computeAndStoreLpPrice.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AACA,gEAAqC;AAErC,4FAA2E;AAE3E,kHAAkH;AAClH,MAAM,gBAAgB,GAAG,IAAI,sBAAS,CAAC,IAAI,CAAC,CAAC;AAa7C;;;;;;;;;;;;GAYG;AACH,SAA8B,sBAAsB,CAClD,KAAY,EACZ,QAAkB,EAClB,SAAwB,EACxB,UAAkB;;QAElB,MAAM,MAAM,GAAG,QAAQ,CAAC,UAAU,CAAC;QACnC,MAAM,MAAM,GAAG,QAAQ,CAAC,UAAU,CAAC;QACnC,MAAM,EAAE,QAAQ,EAAE,GAAG,QAAQ,CAAC;QAC9B,MAAM,EAAE,QAAQ,EAAE,GAAG,QAAQ,CAAC;QAC9B,MAAM,WAAW,GAAG,QAAQ,CAAC,aAAa,CAAC;QAC3C,MAAM,WAAW,GAAG,QAAQ,CAAC,aAAa,CAAC;QAE3C,MAAM,mBAAmB,GAAG,MAAM,IAAA,mCAAgC,EAChE,KAAK,EACL,GAAG,UAAU,IAAI,QAAQ,CAAC,EAAE,EAAE,EAC9B,SAAS,EACT,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAE,EAC5D,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAE,CAC7D,CAAC;QACF,IAAI,CAAC,mBAAmB;YAAE,OAAO;QAEjC,MAAM,aAAa,GAAG,mBAAmB,CAAC,uBAAuB,CAAC;QAClE,MAAM,aAAa,GAAG,mBAAmB,CAAC,uBAAuB,CAAC;QAElE,MAAM,cAAc,GAAG,WAAW,CAAC,GAAG,CAAC,SAAA,EAAE,EAAI,aAAa,CAAC,QAAQ,CAAA,CAAC,CAAC;QACrE,MAAM,cAAc,GAAG,WAAW,CAAC,GAAG,CAAC,SAAA,EAAE,EAAI,aAAa,CAAC,QAAQ,CAAA,CAAC,CAAC;QAErE,MAAM,cAAc,GAAG,cAAc;aAClC,YAAY,CAAC,aAAa,CAAC,KAAK,CAAC;aACjC,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;QAC1D,IAAI,cAAc,CAAC,UAAU,CAAC,gBAAgB,CAAC;YAAE,OAAO;QAExD,MAAM,aAAa,GAAG,cAAc,CAAC,YAAY,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QACvE,MAAM,aAAa,GAAG,cAAc,CAAC,YAAY,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAEvE,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,SAAA,EAAE,EAAI,QAAQ,CAAC,UAAU,CAAA,CAAC,CAAC;QAExE,MAAM,OAAO,GAAG,aAAa;aAC1B,IAAI,CAAC,aAAa,CAAC;aACnB,SAAS,CAAC,UAAU,CAAC;aACrB,QAAQ,EAAE,CAAC;QAEd,MAAM,YAAY,GAAG,cAAc,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,QAAQ,EAAE,CAAC;QACrE,MAAM,YAAY,GAAG,cAAc,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,QAAQ,EAAE,CAAC;QAErE,MAAM,KAAK,CAAC,mBAAmB,CAAC;YAC9B,EAAE,EAAE,UAAU;YACd,MAAM,EAAE,CAAC;YACT,OAAO,EAAE,QAAQ,CAAC,EAAE;YACpB,SAAS;YACT,UAAU;YACV,QAAQ,EAAE,QAAQ,CAAC,UAAU;YAC7B,KAAK,EAAE,OAAO;YACd,WAAW,EAAE;gDAEN,aAAa,KAChB,WAAW,EAAE,YAAY;gDAGtB,aAAa,KAChB,WAAW,EAAE,YAAY;aAE5B;YACD,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;SACtB,CAAC,CAAC;IACL,CAAC;CAAA;AAlED,yCAkEC"}
@@ -0,0 +1,27 @@
1
+ import { NetworkIdType } from '@sonarwatch/portfolio-core';
2
+ import BigNumber from 'bignumber.js';
3
+ import { Cache } from '../../Cache';
4
+ export type TokenInfo = {
5
+ mint: string;
6
+ decimal?: number;
7
+ rawReserve: BigNumber;
8
+ };
9
+ export type PartialTokenUnderlying = {
10
+ networkId: NetworkIdType;
11
+ address: string;
12
+ decimals: number;
13
+ price: number;
14
+ };
15
+ /**
16
+ * This list is used to avoid calulating low liquidity tokens with others low liquidity tokens.
17
+ * To prevent wrong prices (with very low precision) to be calculated, we setup a list of tokens to rely on.
18
+ * These tokens have very low chance of having price manipulation.
19
+ * Therefore, they can be safely used to compute other tokens prices.
20
+ *
21
+ * If you think other tokens should be added to this list, please send a PR.
22
+ */
23
+ export declare const tokensToRelyOnByNetwork: Map<NetworkIdType, string[]>;
24
+ export default function checkComputeAndStoreTokensPrices(cache: Cache, source: string, networkId: NetworkIdType, tokenX: TokenInfo, tokenY: TokenInfo): Promise<{
25
+ partialTokenUnderlyingX: PartialTokenUnderlying;
26
+ partialTokenUnderlyingY: PartialTokenUnderlying;
27
+ } | undefined>;
@@ -0,0 +1,175 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.tokensToRelyOnByNetwork = void 0;
16
+ const portfolio_core_1 = require("@sonarwatch/portfolio-core");
17
+ const getSourceWeight_1 = __importDefault(require("./getSourceWeight"));
18
+ const platforms_1 = require("../../platforms");
19
+ const getDecimalsForToken_1 = require("./getDecimalsForToken");
20
+ /**
21
+ * This list is used to avoid calulating low liquidity tokens with others low liquidity tokens.
22
+ * To prevent wrong prices (with very low precision) to be calculated, we setup a list of tokens to rely on.
23
+ * These tokens have very low chance of having price manipulation.
24
+ * Therefore, they can be safely used to compute other tokens prices.
25
+ *
26
+ * If you think other tokens should be added to this list, please send a PR.
27
+ */
28
+ exports.tokensToRelyOnByNetwork = new Map([
29
+ [
30
+ portfolio_core_1.NetworkId.sei,
31
+ [
32
+ portfolio_core_1.networks.sei.native.address,
33
+ 'ibc/ED07A3391A112B175915CD8FAF43A2DA8E4790EDE12566649D0C2F97716B8518',
34
+ 'factory/sei189adguawugk3e55zn63z8r9ll29xrjwca636ra7v7gxuzn98sxyqwzt47l/Hq4tuDzhRBnxw3tFA5n6M52NVMVcC19XggbyDiJKCD6H', // USDCet
35
+ ],
36
+ ],
37
+ [
38
+ portfolio_core_1.NetworkId.solana,
39
+ [
40
+ portfolio_core_1.networks.solana.native.address,
41
+ 'So11111111111111111111111111111111111111112',
42
+ 'J1toso1uCk3RLmjorhTtrVwY9HJ7X8V9yYac6Y7kGCPn',
43
+ 'mSoLzYCxHdYgdzU16g5QSh3i5K3z3KZK7ytfqcJm7So',
44
+ '7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj',
45
+ 'EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v',
46
+ 'Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB', // USDT
47
+ ],
48
+ ],
49
+ [
50
+ portfolio_core_1.NetworkId.aptos,
51
+ [
52
+ portfolio_core_1.networks.aptos.native.address,
53
+ '0x5e156f1207d0ebfa19a9eeff00d62a282278fb8719f4fab3a586a0a2c0fffbea::coin::T',
54
+ '0x6f986d146e4a90b828d8c12c14b6f4e003fdff11a8eecceceb63744363eaac01::mod_coin::MOD', // MOD (Move Dollar)
55
+ ],
56
+ ],
57
+ [
58
+ portfolio_core_1.NetworkId.sui,
59
+ [
60
+ portfolio_core_1.networks.sui.native.address,
61
+ '0x5d4b302506645c37ff133b98c4b50a5ae14841659738d6d733d59d0d217a93bf::coin::COIN',
62
+ '0x6864a6f921804860930db6ddbe2e16acdf8504495ea7481637a1c8b9a8fe54b::cetus::CETUS', // CETUS
63
+ ],
64
+ ],
65
+ ]);
66
+ function checkComputeAndStoreTokensPrices(cache, source, networkId, tokenX, tokenY) {
67
+ return __awaiter(this, void 0, void 0, function* () {
68
+ const tokenPrices = yield cache.getTokenPrices([tokenX.mint, tokenY.mint], networkId);
69
+ const tokenPriceX = tokenPrices[0];
70
+ const tokenPriceY = tokenPrices[1];
71
+ if (!tokenPriceX && !tokenPriceY)
72
+ return undefined;
73
+ let partialTokenUnderlyingX;
74
+ let partialTokenUnderlyingY;
75
+ if (tokenPriceX && tokenPriceY) {
76
+ partialTokenUnderlyingX = {
77
+ networkId,
78
+ address: tokenX.mint,
79
+ decimals: tokenPriceX.decimals,
80
+ price: tokenPriceX.price,
81
+ };
82
+ partialTokenUnderlyingY = {
83
+ networkId,
84
+ address: tokenY.mint,
85
+ decimals: tokenPriceY.decimals,
86
+ price: tokenPriceY.price,
87
+ };
88
+ return { partialTokenUnderlyingX, partialTokenUnderlyingY };
89
+ }
90
+ const tokensToRelyOn = exports.tokensToRelyOnByNetwork.get(networkId);
91
+ if (!tokensToRelyOn)
92
+ return undefined;
93
+ if (!tokensToRelyOn.includes(tokenX.mint) &&
94
+ !tokensToRelyOn.includes(tokenY.mint))
95
+ return undefined;
96
+ if (!tokenPriceX || !tokenPriceY) {
97
+ let decimalsTokenX;
98
+ if (tokenX.decimal) {
99
+ decimalsTokenX = tokenX.decimal;
100
+ }
101
+ else if (tokenPriceX) {
102
+ decimalsTokenX = tokenPriceX.decimals;
103
+ }
104
+ else {
105
+ decimalsTokenX = yield (0, getDecimalsForToken_1.getDecimalsForToken)(tokenX.mint, networkId);
106
+ }
107
+ let decimalsTokenY;
108
+ if (tokenY.decimal) {
109
+ decimalsTokenY = tokenY.decimal;
110
+ }
111
+ else if (tokenPriceY) {
112
+ decimalsTokenY = tokenPriceY.decimals;
113
+ }
114
+ else {
115
+ decimalsTokenY = yield (0, getDecimalsForToken_1.getDecimalsForToken)(tokenY.mint, networkId);
116
+ }
117
+ if (decimalsTokenX === undefined || decimalsTokenY === undefined)
118
+ return undefined;
119
+ const tokenXReserve = tokenX.rawReserve.dividedBy(Math.pow(10, decimalsTokenX));
120
+ const tokenYReserve = tokenY.rawReserve.dividedBy(Math.pow(10, decimalsTokenY));
121
+ let priceX;
122
+ let priceY;
123
+ if (!tokenPriceX && tokenPriceY) {
124
+ priceX = tokenY.rawReserve
125
+ .multipliedBy(tokenPriceY.price)
126
+ .dividedBy(tokenXReserve)
127
+ .toNumber();
128
+ priceY = tokenPriceY.price;
129
+ }
130
+ else if (!tokenPriceY && tokenPriceX) {
131
+ priceX = tokenPriceX.price;
132
+ priceY = tokenXReserve
133
+ .multipliedBy(tokenPriceX.price)
134
+ .dividedBy(tokenYReserve)
135
+ .toNumber();
136
+ }
137
+ else {
138
+ return undefined;
139
+ }
140
+ const weight = (0, getSourceWeight_1.default)(tokenXReserve.multipliedBy(priceX).multipliedBy(2));
141
+ const address = tokenPriceX ? tokenY.mint : tokenX.mint;
142
+ const price = tokenPriceX ? priceY : priceX;
143
+ const decimals = tokenPriceX ? decimalsTokenY : decimalsTokenX;
144
+ if (decimals === undefined)
145
+ return undefined;
146
+ const tokenPriceSourceDest = {
147
+ id: source,
148
+ weight,
149
+ address,
150
+ networkId,
151
+ platformId: platforms_1.walletTokensPlatform.id,
152
+ decimals,
153
+ price,
154
+ timestamp: Date.now(),
155
+ };
156
+ partialTokenUnderlyingX = {
157
+ networkId,
158
+ address: tokenX.mint,
159
+ decimals: decimalsTokenX,
160
+ price: priceX,
161
+ };
162
+ partialTokenUnderlyingY = {
163
+ networkId,
164
+ address: tokenY.mint,
165
+ decimals: decimalsTokenY,
166
+ price: priceY,
167
+ };
168
+ yield cache.setTokenPriceSource(tokenPriceSourceDest);
169
+ return { partialTokenUnderlyingX, partialTokenUnderlyingY };
170
+ }
171
+ return undefined;
172
+ });
173
+ }
174
+ exports.default = checkComputeAndStoreTokensPrices;
175
+ //# sourceMappingURL=computeAndStoreTokenPrice.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"computeAndStoreTokenPrice.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/utils/misc/computeAndStoreTokenPrice.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { NetworkIdType } from '@sonarwatch/portfolio-core';
2
2
  /**
3
- * Return the decimals of a token on any network using RPC calls.
3
+ * Return the decimals of a token on any network using RPC calls or TokenList.
4
4
  *
5
5
  * @param address The mint/address of the token.
6
6
  * @param networkId The network on which to execute the request.
@@ -10,11 +10,15 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.getDecimalsForToken = void 0;
13
+ const portfolio_core_1 = require("@sonarwatch/portfolio-core");
13
14
  const web3_js_1 = require("@solana/web3.js");
15
+ const core_1 = require("@sei-js/core");
14
16
  const clients_1 = require("../clients");
15
17
  const aptos_1 = require("../aptos");
18
+ const constants_1 = require("../clients/constants");
19
+ const sei_1 = require("../sei");
16
20
  /**
17
- * Return the decimals of a token on any network using RPC calls.
21
+ * Return the decimals of a token on any network using RPC calls or TokenList.
18
22
  *
19
23
  * @param address The mint/address of the token.
20
24
  * @param networkId The network on which to execute the request.
@@ -40,6 +44,25 @@ function getDecimalsForToken(address, networkId) {
40
44
  const res = yield client.getTokenSupply(new web3_js_1.PublicKey(address));
41
45
  return res.value.decimals ? res.value.decimals : undefined;
42
46
  }
47
+ case 'sei': {
48
+ if (address.startsWith('factory')) {
49
+ const client = yield (0, clients_1.getClientSei)();
50
+ const rep = yield client.cosmos.bank.v1beta1.denomMetadata({
51
+ denom: address,
52
+ });
53
+ const denoms = rep.metadata.denomUnits;
54
+ return denoms[denoms.length - 1].exponent;
55
+ }
56
+ if (address.startsWith('ibc')) {
57
+ return 0;
58
+ }
59
+ if (address.startsWith('sei')) {
60
+ const client = yield (0, core_1.getCosmWasmClient)((0, constants_1.getUrlEndpoint)(portfolio_core_1.NetworkId.sei));
61
+ const tokenInfo = (yield client.queryContractSmart(address, sei_1.tokenInfoQueryMsg));
62
+ return tokenInfo.decimals || undefined;
63
+ }
64
+ return undefined;
65
+ }
43
66
  default:
44
67
  throw new Error('getDecimalsForToken : Network not supported');
45
68
  }
@@ -1 +1 @@
1
- {"version":3,"file":"getDecimalsForToken.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/utils/misc/getDecimalsForToken.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,6CAA4C;AAC5C,wCAA6D;AAC7D,oCAAwC;AAExC;;;;;;;GAOG;AACH,SAAsB,mBAAmB,CACvC,OAAe,EACf,SAAwB;;QAExB,QAAQ,SAAS,EAAE;YACjB,KAAK,OAAO,CAAC,CAAC;gBACZ,MAAM,MAAM,GAAG,IAAA,wBAAc,GAAE,CAAC;gBAChC,MAAM,OAAO,GAAG,CAAC,MAAM,MAAM,CAAC,IAAI,CAAC;oBACjC,QAAQ,EAAE,oBAAY;oBACtB,cAAc,EAAE,CAAC,OAAO,CAAC;oBACzB,SAAS,EAAE,EAAE;iBACd,CAAC,CAAa,CAAC;gBAChB,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;oBAAE,OAAO,SAAS,CAAC;gBAC3C,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC;aACnB;YACD,KAAK,QAAQ,CAAC,CAAC;gBACb,MAAM,MAAM,GAAG,IAAA,yBAAe,GAAE,CAAC;gBACjC,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,IAAI,mBAAS,CAAC,OAAO,CAAC,CAAC,CAAC;gBAChE,OAAO,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;aAC5D;YACD;gBACE,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;SAClE;IACH,CAAC;CAAA;AAvBD,kDAuBC"}
1
+ {"version":3,"file":"getDecimalsForToken.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/utils/misc/getDecimalsForToken.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,+DAAsE;AACtE,6CAA4C;AAC5C,uCAAiD;AACjD,wCAA2E;AAC3E,oCAAwC;AACxC,oDAAsD;AACtD,gCAAsD;AAEtD;;;;;;;GAOG;AACH,SAAsB,mBAAmB,CACvC,OAAe,EACf,SAAwB;;QAExB,QAAQ,SAAS,EAAE;YACjB,KAAK,OAAO,CAAC,CAAC;gBACZ,MAAM,MAAM,GAAG,IAAA,wBAAc,GAAE,CAAC;gBAChC,MAAM,OAAO,GAAG,CAAC,MAAM,MAAM,CAAC,IAAI,CAAC;oBACjC,QAAQ,EAAE,oBAAY;oBACtB,cAAc,EAAE,CAAC,OAAO,CAAC;oBACzB,SAAS,EAAE,EAAE;iBACd,CAAC,CAAa,CAAC;gBAChB,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;oBAAE,OAAO,SAAS,CAAC;gBAC3C,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC;aACnB;YACD,KAAK,QAAQ,CAAC,CAAC;gBACb,MAAM,MAAM,GAAG,IAAA,yBAAe,GAAE,CAAC;gBACjC,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,IAAI,mBAAS,CAAC,OAAO,CAAC,CAAC,CAAC;gBAChE,OAAO,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;aAC5D;YACD,KAAK,KAAK,CAAC,CAAC;gBACV,IAAI,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE;oBACjC,MAAM,MAAM,GAAG,MAAM,IAAA,sBAAY,GAAE,CAAC;oBACpC,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC;wBACzD,KAAK,EAAE,OAAO;qBACf,CAAC,CAAC;oBACH,MAAM,MAAM,GAAG,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC;oBACvC,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC;iBAC3C;gBACD,IAAI,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE;oBAC7B,OAAO,CAAC,CAAC;iBACV;gBACD,IAAI,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE;oBAC7B,MAAM,MAAM,GAAG,MAAM,IAAA,wBAAiB,EAAC,IAAA,0BAAc,EAAC,0BAAS,CAAC,GAAG,CAAC,CAAC,CAAC;oBACtE,MAAM,SAAS,GAAG,CAAC,MAAM,MAAM,CAAC,kBAAkB,CAChD,OAAO,EACP,uBAAiB,CAClB,CAAc,CAAC;oBAChB,OAAO,SAAS,CAAC,QAAQ,IAAI,SAAS,CAAC;iBACxC;gBACD,OAAO,SAAS,CAAC;aAClB;YACD;gBACE,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;SAClE;IACH,CAAC;CAAA;AA7CD,kDA6CC"}
@@ -0,0 +1,4 @@
1
+ export declare const infoQueryMsg: any;
2
+ export declare const tokenInfoQueryMsg: any;
3
+ export declare const minterQueryMsg: any;
4
+ export declare const poolQueryMsg: any;
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.poolQueryMsg = exports.minterQueryMsg = exports.tokenInfoQueryMsg = exports.infoQueryMsg = void 0;
4
+ exports.infoQueryMsg = JSON.parse(`{
5
+ "info": {}
6
+ }`);
7
+ exports.tokenInfoQueryMsg = JSON.parse(`{
8
+ "token_info": {}
9
+ }`);
10
+ exports.minterQueryMsg = JSON.parse(`{
11
+ "minter": {}
12
+ }`);
13
+ exports.poolQueryMsg = JSON.parse(`{
14
+ "pool": {}
15
+ }`);
16
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/utils/sei/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC;;EAErC,CAAC,CAAC;AACS,QAAA,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC;;EAE1C,CAAC,CAAC;AAES,QAAA,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC;;EAEvC,CAAC,CAAC;AAES,QAAA,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC;;EAErC,CAAC,CAAC"}
@@ -1,2 +1,3 @@
1
- import { LCDQueryClient } from '@sei-js/proto/types/codegen/cosmos/bank/v1beta1/query.lcd';
2
- export declare function getAllBalances(client: LCDQueryClient, owner: string): Promise<import("@sei-js/proto/types/codegen/cosmos/base/v1beta1/coin").CoinSDKType[]>;
1
+ import { QueryAllBalancesRequest, QueryAllBalancesResponse } from '@sei-js/proto/types/codegen/cosmos/bank/v1beta1/query';
2
+ export type AllBalances = (request: QueryAllBalancesRequest) => Promise<QueryAllBalancesResponse>;
3
+ export declare function getAllBalances(allBalances: AllBalances, owner: string): Promise<import("@sei-js/proto/types/codegen/cosmos/base/v1beta1/coin").Coin[]>;
@@ -17,13 +17,13 @@ const long_1 = __importDefault(require("long"));
17
17
  const maxBalances = 1500;
18
18
  const limit = long_1.default.fromNumber(200);
19
19
  const key = new Uint8Array(0);
20
- function getAllBalances(client, owner) {
20
+ function getAllBalances(allBalances, owner) {
21
21
  return __awaiter(this, void 0, void 0, function* () {
22
22
  const balances = [];
23
23
  let offset = long_1.default.ZERO;
24
24
  let nextKey = new Uint8Array(0);
25
25
  do {
26
- const res = yield client.allBalances({
26
+ const res = yield allBalances({
27
27
  address: owner,
28
28
  pagination: {
29
29
  countTotal: true,
@@ -34,7 +34,7 @@ function getAllBalances(client, owner) {
34
34
  },
35
35
  });
36
36
  balances.push(...res.balances);
37
- nextKey = res.pagination.next_key;
37
+ nextKey = res.pagination.nextKey;
38
38
  offset = offset.add(limit);
39
39
  if (offset.greaterThanOrEqual(res.pagination.total))
40
40
  break;
@@ -1 +1 @@
1
- {"version":3,"file":"getAllBalances.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/utils/sei/getAllBalances.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,gDAAwB;AAExB,MAAM,WAAW,GAAG,IAAI,CAAC;AACzB,MAAM,KAAK,GAAG,cAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AACnC,MAAM,GAAG,GAAe,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;AAE1C,SAAsB,cAAc,CAAC,MAAsB,EAAE,KAAa;;QACxE,MAAM,QAAQ,GAAG,EAAE,CAAC;QACpB,IAAI,MAAM,GAAG,cAAI,CAAC,IAAI,CAAC;QACvB,IAAI,OAAO,GAAsB,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;QACnD,GAAG;YACD,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC;gBACnC,OAAO,EAAE,KAAK;gBACd,UAAU,EAAE;oBACV,UAAU,EAAE,IAAI;oBAChB,GAAG;oBACH,KAAK;oBACL,MAAM;oBACN,OAAO,EAAE,KAAK;iBACf;aACF,CAAC,CAAC;YACH,QAAQ,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC/B,OAAO,GAAG,GAAG,CAAC,UAAU,CAAC,QAA6B,CAAC;YACvD,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAC3B,IAAI,MAAM,CAAC,kBAAkB,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC;gBAAE,MAAM;SAC5D,QAAQ,OAAO,KAAK,IAAI,IAAI,MAAM,CAAC,EAAE,CAAC,WAAW,CAAC,EAAE;QACrD,OAAO,QAAQ,CAAC;IAClB,CAAC;CAAA;AArBD,wCAqBC"}
1
+ {"version":3,"file":"getAllBalances.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/utils/sei/getAllBalances.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAIA,gDAAwB;AAExB,MAAM,WAAW,GAAG,IAAI,CAAC;AACzB,MAAM,KAAK,GAAG,cAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AACnC,MAAM,GAAG,GAAe,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;AAM1C,SAAsB,cAAc,CAAC,WAAwB,EAAE,KAAa;;QAC1E,MAAM,QAAQ,GAAG,EAAE,CAAC;QACpB,IAAI,MAAM,GAAG,cAAI,CAAC,IAAI,CAAC;QACvB,IAAI,OAAO,GAAsB,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;QACnD,GAAG;YACD,MAAM,GAAG,GAAG,MAAM,WAAW,CAAC;gBAC5B,OAAO,EAAE,KAAK;gBACd,UAAU,EAAE;oBACV,UAAU,EAAE,IAAI;oBAChB,GAAG;oBACH,KAAK;oBACL,MAAM;oBACN,OAAO,EAAE,KAAK;iBACf;aACF,CAAC,CAAC;YACH,QAAQ,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC/B,OAAO,GAAG,GAAG,CAAC,UAAU,CAAC,OAA4B,CAAC;YACtD,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAC3B,IAAI,MAAM,CAAC,kBAAkB,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC;gBAAE,MAAM;SAC5D,QAAQ,OAAO,KAAK,IAAI,IAAI,MAAM,CAAC,EAAE,CAAC,WAAW,CAAC,EAAE;QACrD,OAAO,QAAQ,CAAC;IAClB,CAAC;CAAA;AArBD,wCAqBC"}
@@ -0,0 +1 @@
1
+ export default function getQueryBalanceByOwner(owner: string): JSON;
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ function getQueryBalanceByOwner(owner) {
4
+ return JSON.parse(`{
5
+ "balance": {
6
+ "address": "${owner}"
7
+ }
8
+ }`);
9
+ }
10
+ exports.default = getQueryBalanceByOwner;
11
+ //# sourceMappingURL=getQueryBalanceByOwner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getQueryBalanceByOwner.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/utils/sei/getQueryBalanceByOwner.ts"],"names":[],"mappings":";;AAAA,SAAwB,sBAAsB,CAAC,KAAa;IAC1D,OAAO,IAAI,CAAC,KAAK,CAAC;;oBAEA,KAAK;;IAErB,CAAC,CAAC;AACN,CAAC;AAND,yCAMC"}
@@ -1 +1,3 @@
1
1
  export * from './getAllBalances';
2
+ export * from './constants';
3
+ export * from './types';
@@ -15,4 +15,6 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./getAllBalances"), exports);
18
+ __exportStar(require("./constants"), exports);
19
+ __exportStar(require("./types"), exports);
18
20
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/utils/sei/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,mDAAiC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/utils/sei/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,mDAAiC;AACjC,8CAA4B;AAC5B,0CAAwB"}
@@ -0,0 +1,25 @@
1
+ export type PoolInfo = {
2
+ lp_token_address: string;
3
+ lp_token_supply: string;
4
+ token1_denom: {
5
+ [k: string]: string;
6
+ };
7
+ token1_reserve: string;
8
+ token2_denom: {
9
+ [k: string]: string;
10
+ };
11
+ token2_reserve: string;
12
+ };
13
+ export type TokenInfo = {
14
+ decimals: number;
15
+ name: string;
16
+ symbol: string;
17
+ total_supply: string;
18
+ };
19
+ export type MinterInfo = {
20
+ cap: string;
21
+ minter: string;
22
+ };
23
+ export type Balance = {
24
+ balance: string;
25
+ };
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../../packages/plugins/src/utils/sei/types.ts"],"names":[],"mappings":""}