carbon-js-sdk 0.6.9 → 0.6.10

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.
@@ -1,8 +1,8 @@
1
- /// <reference types="long" />
2
1
  import { AssetParams, DebtInfo, RateStrategyParams, StablecoinDebtInfo, TokenPrice } from "../codec";
3
2
  import { Params } from "../codec/cdp/params";
4
3
  import { CarbonTx } from "../util";
5
4
  import { BigNumber } from "bignumber.js";
5
+ import Long from "long";
6
6
  import { Debt } from "./../codec/cdp/query";
7
7
  import BaseModule from "./base";
8
8
  export declare class CDPModule extends BaseModule {
@@ -18,11 +18,13 @@ const codec_1 = require("../codec");
18
18
  const query_1 = require("../codec/cdp/query");
19
19
  const tx_1 = require("../codec/cdp/tx");
20
20
  const query_2 = require("../codec/cosmos/bank/v1beta1/query");
21
+ const pagination_1 = require("../codec/cosmos/base/query/v1beta1/pagination");
21
22
  const constant_1 = require("../constant");
22
23
  const util_1 = require("../util");
23
24
  const address_1 = require("../util/address");
24
25
  const number_1 = require("../util/number");
25
26
  const bignumber_js_1 = require("bignumber.js");
27
+ const long_1 = __importDefault(require("long"));
26
28
  const query_3 = require("./../codec/cdp/query");
27
29
  const base_1 = __importDefault(require("./base"));
28
30
  class CDPModule extends base_1.default {
@@ -667,38 +669,47 @@ class CDPModule extends base_1.default {
667
669
  const sdk = this.sdkProvider;
668
670
  const network = sdk.getConfig().network;
669
671
  const collateralPoolAddress = address_1.SWTHAddress.getModuleAddress("collateral_pool", network);
670
- const collateralPoolBalancePromise = sdk.query.bank.AllBalances({ address: collateralPoolAddress });
671
- const totalSupplyPromise = sdk.query.bank.TotalSupply(query_2.QueryTotalSupplyRequest.fromPartial({}));
672
+ const cdpModuleBalancesAddress = this.getCdpModuleAddress();
673
+ const maxPageLimit = { pagination: pagination_1.PageRequest.fromPartial({ limit: new long_1.default(10000) }) };
674
+ const collateralPoolBalancePromise = sdk.query.bank.AllBalances(Object.assign(Object.assign({}, maxPageLimit), { address: collateralPoolAddress }));
675
+ const cdpModuleBalancesPromise = sdk.query.bank.AllBalances(Object.assign(Object.assign({}, maxPageLimit), { address: cdpModuleBalancesAddress }));
676
+ const totalSupplyPromise = sdk.query.bank.TotalSupply(query_2.QueryTotalSupplyRequest.fromPartial(Object.assign({}, maxPageLimit)));
672
677
  const cdpParamsPromise = sdk.query.cdp.Params(query_1.QueryParamsRequest.fromPartial({}));
673
- const tokenPriceAllPromise = sdk.query.pricing.TokenPriceAll(codec_1.QueryTokenPriceAllRequest.fromPartial({}));
674
- const debtInfosPromise = sdk.query.cdp.TokenDebtAll(query_3.QueryTokenDebtAllRequest.fromPartial({}));
675
- const assetParamsPromise = sdk.query.cdp.AssetAll(query_3.QueryAssetAllRequest.fromPartial({}));
676
- const rateStrategyPromise = sdk.query.cdp.RateStrategyAll(codec_1.QueryRateStrategyAllRequest.fromPartial({}));
677
- const [collateralPoolBalances, totalSupply, cdpParams, tokenPriceAll, debtInfosAll, assetParamsAll, rateStrategies] = yield Promise.all([collateralPoolBalancePromise, totalSupplyPromise, cdpParamsPromise, tokenPriceAllPromise, debtInfosPromise, assetParamsPromise, rateStrategyPromise]);
678
+ const tokenPriceAllPromise = sdk.query.pricing.TokenPriceAll(codec_1.QueryTokenPriceAllRequest.fromPartial(Object.assign({}, maxPageLimit)));
679
+ const debtInfosPromise = sdk.query.cdp.TokenDebtAll(query_3.QueryTokenDebtAllRequest.fromPartial(Object.assign({}, maxPageLimit)));
680
+ const assetParamsPromise = sdk.query.cdp.AssetAll(query_3.QueryAssetAllRequest.fromPartial(Object.assign({}, maxPageLimit)));
681
+ const rateStrategyPromise = sdk.query.cdp.RateStrategyAll(codec_1.QueryRateStrategyAllRequest.fromPartial(Object.assign({}, maxPageLimit)));
682
+ const [collateralPoolBalances, totalSupply, cdpParams, tokenPriceAll, debtInfosAll, assetParamsAll, rateStrategies, cdpModuleBalances] = yield Promise.all([collateralPoolBalancePromise, totalSupplyPromise, cdpParamsPromise, tokenPriceAllPromise, debtInfosPromise, assetParamsPromise, rateStrategyPromise, cdpModuleBalancesPromise]);
678
683
  const interestFee = (0, number_1.bnOrZero)((_a = cdpParams.params) === null || _a === void 0 ? void 0 : _a.interestFee);
679
684
  if (!interestFee)
680
685
  throw new Error("unable to retrieve interest fee");
681
686
  const tokenPrices = tokenPriceAll.tokenPrices;
682
687
  if (!tokenPrices)
683
688
  throw new Error("unable to retrieve token prices");
689
+ const moduleBalancesMap = cdpModuleBalances.balances.reduce((prev, moduleBalance) => {
690
+ if (!prev[moduleBalance.denom]) {
691
+ prev[moduleBalance.denom] = moduleBalance;
692
+ }
693
+ return prev;
694
+ }, {});
684
695
  const cdpTokenBalances = ((_b = collateralPoolBalances === null || collateralPoolBalances === void 0 ? void 0 : collateralPoolBalances.balances) !== null && _b !== void 0 ? _b : []).filter(balance => TokenClient_1.default.isCdpToken(balance.denom));
685
696
  const cdpTokensBalancePromises = cdpTokenBalances.map(token => {
686
697
  var _a, _b;
687
698
  const underlyingDenom = this.getUnderlyingDenom(token.denom);
688
699
  const tokenPrice = tokenPrices.find((price) => price.denom === underlyingDenom);
689
700
  const supply = (_a = totalSupply.supply.find((supply) => supply.denom === token.denom)) === null || _a === void 0 ? void 0 : _a.amount;
690
- const balance = token.amount;
701
+ const balance = moduleBalancesMap[underlyingDenom].amount;
691
702
  const debtInfo = debtInfosAll.debtInfosAll.find((debtInfo) => debtInfo.denom === underlyingDenom);
692
703
  const assetParam = assetParamsAll.assetParamsAll.find((assetParam) => assetParam.denom === underlyingDenom);
693
704
  const rateStrategy = rateStrategies.rateStrategyParamsAll.find((rateStrategy) => rateStrategy.name === (assetParam === null || assetParam === void 0 ? void 0 : assetParam.rateStrategyName));
694
- if (!debtInfo || !supply || !tokenPrice || !rateStrategy)
705
+ if (!debtInfo || !supply || !tokenPrice || !rateStrategy || !balance)
695
706
  throw new Error("unable to retrieve token info");
696
707
  const apy = CDPModule.calculateInterestAPY(debtInfo, rateStrategy);
697
708
  const newInterestRate = CDPModule.calculateInterestForTimePeriod(apy, (_b = debtInfo.lastUpdatedTime) !== null && _b !== void 0 ? _b : new Date(0), new Date());
698
709
  return this.getTotalTokenDebt(underlyingDenom, debtInfo, interestFee, newInterestRate)
699
710
  .then((totalDebt) => {
700
- const ratio = (0, number_1.bnOrZero)(supply).div((0, number_1.bnOrZero)(totalDebt));
701
- const actualAmount = (0, number_1.bnOrZero)(balance).div(ratio);
711
+ const ratio = (0, number_1.bnOrZero)(supply).div((0, number_1.bnOrZero)(balance).plus((0, number_1.bnOrZero)(totalDebt)));
712
+ const actualAmount = (0, number_1.bnOrZero)(token.amount).div(ratio);
702
713
  return this.getTokenUsdVal(underlyingDenom, actualAmount, tokenPrice);
703
714
  });
704
715
  });
File without changes
@@ -0,0 +1 @@
1
+ "use strict";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "carbon-js-sdk",
3
- "version": "0.6.9",
3
+ "version": "0.6.10",
4
4
  "description": "TypeScript SDK for Carbon blockchain",
5
5
  "main": "lib/index.js",
6
6
  "types": "lib/index.d.ts",