@aurigami/sdk 0.4.2 → 0.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/SDK.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { BlockchainEntity, BlockchainEntityRead } from './BlockchainEntity';
2
- import { LockingDetails, PlyAuroraPoolDetails, NetworkConnection, UserDetails, UserMarketDetails, CurrencyAmount, HypotheticalStats } from './types';
2
+ import { LockingDetails, PlyAuroraPoolDetails, NetworkConnection, UserDetails, UserMarketDetails, CurrencyAmount, HypotheticalStats, MarketAction } from './types';
3
3
  import { TransactionResponse } from '@ethersproject/abstract-provider';
4
4
  import { Contract } from 'ethers';
5
5
  import { AuriFairLaunch, Comptroller, TokenLock } from '@aurigami/contracts/typechain';
@@ -16,17 +16,19 @@ export declare class SdkRead extends BlockchainEntityRead {
16
16
  getPlyAuroraPoolDetails(): Promise<PlyAuroraPoolDetails>;
17
17
  getTokenPrice(token: Token): Promise<CurrencyAmount>;
18
18
  stakeBalanceOf(user: string): Promise<TokenAmount>;
19
- calcHypotheticalStats(args: {
19
+ calcHypotheticalStats({ userMarketDetail, currentBorrowLimit, currentBorrowValuation, action, tokenAmount }: {
20
20
  userMarketDetail: UserMarketDetails;
21
21
  currentBorrowLimit: CurrencyAmount;
22
22
  currentBorrowValuation: CurrencyAmount;
23
- isEnable: boolean;
23
+ action: MarketAction;
24
+ tokenAmount?: TokenAmount;
24
25
  }): HypotheticalStats;
25
26
  }
26
27
  export declare class SdkReadWrite extends SdkRead {
27
28
  claim(): Promise<TransactionResponse>;
28
29
  stake(amount: TokenAmount): Promise<TransactionResponse>;
29
30
  unstake(amount: TokenAmount): Promise<TransactionResponse>;
31
+ faucetDrip(): Promise<TransactionResponse>;
30
32
  }
31
33
  export declare class SDK extends BlockchainEntity {
32
34
  constructor();
@@ -1,8 +1,9 @@
1
1
  import BigNumber from 'bignumber.js';
2
+ import { ethers } from 'ethers';
2
3
  export declare const dummyAddress: string;
3
4
  export declare const ETHAddress: string;
4
5
  export declare const AURORA_CHAINID = 1313161554;
5
- export declare const DECIMAL_PRECISION = 6;
6
+ export declare const DECIMAL_PRECISION = 10;
6
7
  export declare type NetworkAddresses = {
7
8
  auTokens: {
8
9
  address: string;
@@ -17,3 +18,4 @@ export declare const REWARDCLAIMSTART = 1640995200;
17
18
  export declare const ONE_DAY = 86400;
18
19
  export declare const ONE_YEAR: number;
19
20
  export declare const AurPlyPid = 0;
21
+ export declare const INF: ethers.BigNumber;
@@ -18,4 +18,5 @@ export declare function fetchUnderlyingTokensPrices(provider: providers.Provider
18
18
  underlyingPrice: BigNumber;
19
19
  }[]>;
20
20
  export declare function fetchPrice(address: Address, provider: providers.Provider): Promise<BigNumber>;
21
- export declare function fetchValuation(tokenAmount: TokenAmount, provider: providers.Provider, price?: BigNumber): Promise<BigNumber>;
21
+ export declare function fetchValuation(tokenAmount: TokenAmount, provider: providers.Provider): Promise<BigNumber>;
22
+ export declare function calcValuation(tokenAmount: TokenAmount, price: BigNumber): BigNumber;
@@ -897,47 +897,52 @@ var BlockchainEntity = /*#__PURE__*/function () {
897
897
  return BlockchainEntity;
898
898
  }();
899
899
 
900
+ (function (ComptrollerRewardType) {
901
+ ComptrollerRewardType[ComptrollerRewardType["PLY"] = 0] = "PLY";
902
+ ComptrollerRewardType[ComptrollerRewardType["AURORA"] = 1] = "AURORA";
903
+ })(exports.ComptrollerRewardType || (exports.ComptrollerRewardType = {}));
904
+
905
+ (function (MarketAction) {
906
+ MarketAction[MarketAction["Deposit"] = 0] = "Deposit";
907
+ MarketAction[MarketAction["Borrow"] = 1] = "Borrow";
908
+ MarketAction[MarketAction["Withdraw"] = 2] = "Withdraw";
909
+ MarketAction[MarketAction["Repay"] = 3] = "Repay";
910
+ MarketAction[MarketAction["EnableCollateral"] = 4] = "EnableCollateral";
911
+ MarketAction[MarketAction["DisableCollateral"] = 5] = "DisableCollateral";
912
+ })(exports.MarketAction || (exports.MarketAction = {}));
913
+
900
914
  var dummyAddress = "0xDEADbeEfEEeEEEeEEEeEEeeeeeEeEEeeeeEEEEeE";
901
915
  var ETHAddress = "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE";
902
916
  var AURORA_CHAINID = 1313161554;
903
- var DECIMAL_PRECISION = 6;
917
+ var DECIMAL_PRECISION = 10;
904
918
  var networkAddresses = {
905
919
  auTokens: [{
906
- address: /*#__PURE__*/'0x2dEf6eb801757655AD227110d65C80DB595bBc60'.toLowerCase(),
920
+ address: /*#__PURE__*/'0x8bA0b797F3A965C12EF49d924d154B71d63316b5'.toLowerCase(),
907
921
  underlying: /*#__PURE__*/'0xb12bfca5a55806aaf64e99521918a4bf0fc40802'.toLowerCase()
908
922
  }, {
909
- address: /*#__PURE__*/'0x7b47690b04494A628151Dbb86B4cC95CF2629B14'.toLowerCase(),
923
+ address: /*#__PURE__*/'0xA2926acb1BEdBC827000FCA08D4279aC3Bb6a443'.toLowerCase(),
910
924
  underlying: /*#__PURE__*/ETHAddress.toLowerCase()
911
925
  }, {
912
- address: /*#__PURE__*/'0xFB0e4680B8b1c7B69fb6a3988029c74fea871DD9'.toLowerCase(),
926
+ address: /*#__PURE__*/'0x4176c37161E1873FA08C8301c45D4cC02293AF44'.toLowerCase(),
913
927
  underlying: /*#__PURE__*/'0xf4eb217ba2454613b15dbdea6e5f22276410e89e'.toLowerCase()
914
928
  }, {
915
- address: /*#__PURE__*/'0x6bB82009b316A9098C23E3962b4371E879c8D23D'.toLowerCase(),
929
+ address: /*#__PURE__*/'0xaE1B4372e6881f69Caeb44D0793ed710bb345278'.toLowerCase(),
916
930
  underlying: /*#__PURE__*/'0x4988a896b1227218e4a686fde5eabdcabd91571f'.toLowerCase()
917
931
  }, {
918
- address: /*#__PURE__*/'0xBf43057c634868251e65e39b4f27662f644454b4'.toLowerCase(),
932
+ address: /*#__PURE__*/'0x3d3b76B7E62a1f1bB08684933F63215e0582a149'.toLowerCase(),
919
933
  underlying: /*#__PURE__*/'0xe3520349f477a5f6eb06107066048508498a291b'.toLowerCase()
920
- }, {
921
- address: /*#__PURE__*/'0x83Ae17f197C1F1260543d4D5A710772761535066'.toLowerCase(),
922
- underlying: /*#__PURE__*/'0x8bec47865ade3b172a928df8f990bc7f2a3b9f79'.toLowerCase()
923
- }, {
924
- address: /*#__PURE__*/'0xcC5CA0156317C1FF2A96E0f45659625081352071'.toLowerCase(),
925
- underlying: /*#__PURE__*/'0xC42C30aC6Cc15faC9bD938618BcaA1a1FaE8501d'.toLowerCase()
926
- }, {
927
- address: /*#__PURE__*/'0x173Bf18675D52B4887C5d40E935C3ab1192aFb4C'.toLowerCase(),
928
- underlying: /*#__PURE__*/'0xb9b8d9e5557381BF025f1A59B602ad3F19A4e4Be'.toLowerCase()
929
934
  }],
930
935
  misc: {
931
- COMPTROLLER: /*#__PURE__*/"0x3b416D37A85F7aD941e36258d4Da660A1898E181".toLowerCase(),
932
- oracle: /*#__PURE__*/"0x08A74ca75BAE803e92752f8d7A5cD718b1cA6509".toLowerCase(),
933
- AURIFAIRLAUNCH: /*#__PURE__*/"0xeed0433Cbc81F25061bb739Ff8f1D5736b16d038".toLowerCase(),
934
- AURILENS: /*#__PURE__*/'0xb11820C3d8ae1f6C31047644C59190280651C9da'.toLowerCase(),
935
- TOKENLOCK: /*#__PURE__*/'0x537754515509A83Ce2D076c0982292AC5289b408'.toLowerCase()
936
+ COMPTROLLER: /*#__PURE__*/"0x448717B7Be11C3fb7AA7f0284f28B399D0004fE1".toLowerCase(),
937
+ oracle: /*#__PURE__*/"0xfD47837a18ad6a72F564903a7E5162286E059224".toLowerCase(),
938
+ AURIFAIRLAUNCH: /*#__PURE__*/"0x986e3ac1bC3C02714C9Bfd73Cd6a206F10600b4c".toLowerCase(),
939
+ AURILENS: /*#__PURE__*/'0xE770e5f08251622F368Bf1a449E072627Ff6cB62'.toLowerCase(),
940
+ TOKENLOCK: /*#__PURE__*/'0xE130E307eF5b5c157FB233320b7ebD08f2fD320A'.toLowerCase()
936
941
  },
937
942
  tokens: {
938
- AURORA: /*#__PURE__*/"0x8bec47865ade3b172a928df8f990bc7f2a3b9f79".toLowerCase(),
939
- PLY: /*#__PURE__*/"0xb9b8d9e5557381BF025f1A59B602ad3F19A4e4Be".toLowerCase(),
940
- AURPLY: /*#__PURE__*/"0x822E871518C22E8570cFbEa43FddbBFF963d4bdE".toLowerCase()
943
+ AURORA: /*#__PURE__*/"0x8BEc47865aDe3B172A928df8f990Bc7f2A3b9f79".toLowerCase(),
944
+ PLY: /*#__PURE__*/"0x706bd3b9473126D2E7dCA097d7AAc5dB74918E6c".toLowerCase(),
945
+ AURPLY: /*#__PURE__*/"0x95890d73F2995E621F6A66EF9b71413926845542".toLowerCase()
941
946
  }
942
947
  };
943
948
  var BORROW_LIMIT_BUFFER = /*#__PURE__*/new BigNumber(0.95);
@@ -945,25 +950,22 @@ var REWARDCLAIMSTART = 1640995200;
945
950
  var ONE_DAY = 86400;
946
951
  var ONE_YEAR = ONE_DAY * 365;
947
952
  var AurPlyPid = 0;
953
+ var INF = /*#__PURE__*/ethers.BigNumber.from(2).pow(256).sub(1);
948
954
 
949
955
  var decimalRecords = {
950
956
  '0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee': 18,
951
- '0xb9b8d9e5557381bf025f1a59b602ad3f19a4e4be': 18,
952
- '0x83ae17f197c1f1260543d4d5a710772761535066': 8,
957
+ '0x4176c37161e1873fa08c8301c45d4cc02293af44': 8,
958
+ '0x95890d73f2995e621f6a66ef9b71413926845542': 18,
959
+ '0x3d3b76b7e62a1f1bb08684933f63215e0582a149': 8,
953
960
  '0xf4eb217ba2454613b15dbdea6e5f22276410e89e': 8,
954
- '0x4988a896b1227218e4a686fde5eabdcabd91571f': 6,
955
- '0xfb0e4680b8b1c7b69fb6a3988029c74fea871dd9': 8,
961
+ '0x8ba0b797f3a965c12ef49d924d154b71d63316b5': 8,
956
962
  '0xb12bfca5a55806aaf64e99521918a4bf0fc40802': 6,
957
- '0xbf43057c634868251e65e39b4f27662f644454b4': 8,
958
- '0xc42c30ac6cc15fac9bd938618bcaa1a1fae8501d': 24,
959
- '0x7b47690b04494a628151dbb86b4cc95cf2629b14': 8,
960
- '0x822e871518c22e8570cfbea43fddbbff963d4bde': 18,
961
- '0x2def6eb801757655ad227110d65c80db595bbc60': 8,
962
- '0x6bb82009b316a9098c23e3962b4371e879c8d23d': 8,
963
+ '0x706bd3b9473126d2e7dca097d7aac5db74918e6c': 18,
963
964
  '0x8bec47865ade3b172a928df8f990bc7f2a3b9f79': 18,
964
- '0xcc5ca0156317c1ff2a96e0f45659625081352071': 8,
965
- '0xe3520349f477a5f6eb06107066048508498a291b': 18,
966
- '0x173bf18675d52b4887c5d40e935c3ab1192afb4c': 8
965
+ '0xae1b4372e6881f69caeb44d0793ed710bb345278': 8,
966
+ '0x4988a896b1227218e4a686fde5eabdcabd91571f': 6,
967
+ '0xa2926acb1bedbc827000fca08d4279ac3bb6a443': 8,
968
+ '0xe3520349f477a5f6eb06107066048508498a291b': 18
967
969
  };
968
970
 
969
971
  function formatObject(object) {
@@ -1013,11 +1015,6 @@ function calcLMRewardApr(rewardsValue, totalStakeValue, frequencyPerYear) {
1013
1015
  return rewardsValue.multipliedBy(frequencyPerYear).dividedBy(totalStakeValue);
1014
1016
  }
1015
1017
 
1016
- (function (ComptrollerRewardType) {
1017
- ComptrollerRewardType[ComptrollerRewardType["PLY"] = 0] = "PLY";
1018
- ComptrollerRewardType[ComptrollerRewardType["AURORA"] = 1] = "AURORA";
1019
- })(exports.ComptrollerRewardType || (exports.ComptrollerRewardType = {}));
1020
-
1021
1018
  var Token = function Token(address, decimals) {
1022
1019
  this.address = address.toLowerCase();
1023
1020
  this.decimals = decimals;
@@ -2271,31 +2268,25 @@ function _fetchPrice() {
2271
2268
  return _fetchPrice.apply(this, arguments);
2272
2269
  }
2273
2270
 
2274
- function fetchValuation(_x13, _x14, _x15) {
2271
+ function fetchValuation(_x13, _x14) {
2275
2272
  return _fetchValuation.apply(this, arguments);
2276
2273
  }
2277
2274
 
2278
2275
  function _fetchValuation() {
2279
- _fetchValuation = _asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee8(tokenAmount, provider, price) {
2276
+ _fetchValuation = _asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee8(tokenAmount, provider) {
2277
+ var price;
2280
2278
  return runtime_1.wrap(function _callee8$(_context8) {
2281
2279
  while (1) {
2282
2280
  switch (_context8.prev = _context8.next) {
2283
2281
  case 0:
2284
- if (!(price === undefined)) {
2285
- _context8.next = 4;
2286
- break;
2287
- }
2288
-
2289
- _context8.next = 3;
2282
+ _context8.next = 2;
2290
2283
  return fetchPrice(tokenAmount.token.address, provider);
2291
2284
 
2292
- case 3:
2285
+ case 2:
2293
2286
  price = _context8.sent;
2287
+ return _context8.abrupt("return", calcValuation(tokenAmount, price));
2294
2288
 
2295
2289
  case 4:
2296
- return _context8.abrupt("return", new BigNumber(tokenAmount.formattedAmount()).multipliedBy(price));
2297
-
2298
- case 5:
2299
2290
  case "end":
2300
2291
  return _context8.stop();
2301
2292
  }
@@ -2305,6 +2296,10 @@ function _fetchValuation() {
2305
2296
  return _fetchValuation.apply(this, arguments);
2306
2297
  }
2307
2298
 
2299
+ function calcValuation(tokenAmount, price) {
2300
+ return new BigNumber(tokenAmount.formattedAmount()).multipliedBy(price);
2301
+ }
2302
+
2308
2303
  var MoneyMarketRead = /*#__PURE__*/function (_BlockchainEntityRead) {
2309
2304
  _inheritsLoose(MoneyMarketRead, _BlockchainEntityRead);
2310
2305
 
@@ -2626,7 +2621,7 @@ var MoneyMarketRead = /*#__PURE__*/function (_BlockchainEntityRead) {
2626
2621
  case 11:
2627
2622
  _context9.t0 = calcLMRewardApr;
2628
2623
  _context9.next = 14;
2629
- return fetchValuation(new TokenAmount(PLYToken, rewardSpeeds.plyRewardBorrowSpeed.toString()), this._networkConnection.provider, plyPrice);
2624
+ return calcValuation(new TokenAmount(PLYToken, rewardSpeeds.plyRewardBorrowSpeed.toString()), plyPrice);
2630
2625
 
2631
2626
  case 14:
2632
2627
  _context9.t1 = _context9.sent;
@@ -2635,7 +2630,7 @@ var MoneyMarketRead = /*#__PURE__*/function (_BlockchainEntityRead) {
2635
2630
  borrowPlyApy = (0, _context9.t0)(_context9.t1, _context9.t2, _context9.t3);
2636
2631
  _context9.t4 = calcLMRewardApr;
2637
2632
  _context9.next = 21;
2638
- return fetchValuation(new TokenAmount(PLYToken, rewardSpeeds.plyRewardSupplySpeed.toString()), this._networkConnection.provider, plyPrice);
2633
+ return calcValuation(new TokenAmount(PLYToken, rewardSpeeds.plyRewardSupplySpeed.toString()), plyPrice);
2639
2634
 
2640
2635
  case 21:
2641
2636
  _context9.t5 = _context9.sent;
@@ -2799,9 +2794,17 @@ var MoneyMarketReadWrite = /*#__PURE__*/function (_MoneyMarketRead) {
2799
2794
  while (1) {
2800
2795
  switch (_context14.prev = _context14.next) {
2801
2796
  case 0:
2797
+ if (!new BigNumber(amount.rawAmount()).lt(0)) {
2798
+ _context14.next = 2;
2799
+ break;
2800
+ }
2801
+
2802
+ return _context14.abrupt("return", this.auToken.connect(this._networkConnection.signer).redeemUnderlying(INF));
2803
+
2804
+ case 2:
2802
2805
  return _context14.abrupt("return", this.auToken.connect(this._networkConnection.signer).redeemUnderlying(amount.rawAmount()));
2803
2806
 
2804
- case 1:
2807
+ case 3:
2805
2808
  case "end":
2806
2809
  return _context14.stop();
2807
2810
  }
@@ -2818,23 +2821,30 @@ var MoneyMarketReadWrite = /*#__PURE__*/function (_MoneyMarketRead) {
2818
2821
 
2819
2822
  _proto2.repay = /*#__PURE__*/function () {
2820
2823
  var _repay = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee15(amount) {
2824
+ var repayAmount;
2821
2825
  return runtime_1.wrap(function _callee15$(_context15) {
2822
2826
  while (1) {
2823
2827
  switch (_context15.prev = _context15.next) {
2824
2828
  case 0:
2829
+ if (new BigNumber(amount.rawAmount()).lt(0)) {
2830
+ repayAmount = INF;
2831
+ } else {
2832
+ repayAmount = ethers.BigNumber.from(amount.rawAmount());
2833
+ }
2834
+
2825
2835
  if (!isSameAddress(amount.token.address, ETHAddress)) {
2826
- _context15.next = 4;
2836
+ _context15.next = 5;
2827
2837
  break;
2828
2838
  }
2829
2839
 
2830
2840
  return _context15.abrupt("return", this.auToken.connect(this._networkConnection.signer).repayBorrow({
2831
- value: amount.rawAmount()
2841
+ value: repayAmount
2832
2842
  }));
2833
2843
 
2834
- case 4:
2835
- return _context15.abrupt("return", this.auToken.connect(this._networkConnection.signer).repayBorrow(amount.rawAmount()));
2836
-
2837
2844
  case 5:
2845
+ return _context15.abrupt("return", this.auToken.connect(this._networkConnection.signer).repayBorrow(repayAmount));
2846
+
2847
+ case 6:
2838
2848
  case "end":
2839
2849
  return _context15.stop();
2840
2850
  }
@@ -2918,6 +2928,12 @@ var MoneyMarket = /*#__PURE__*/function (_BlockchainEntity) {
2918
2928
  return MoneyMarket;
2919
2929
  }(BlockchainEntity);
2920
2930
 
2931
+ var abi$2 = [
2932
+ ];
2933
+ var FaucetABI = {
2934
+ abi: abi$2
2935
+ };
2936
+
2921
2937
  var SdkRead = /*#__PURE__*/function (_BlockchainEntityRead) {
2922
2938
  _inheritsLoose(SdkRead, _BlockchainEntityRead);
2923
2939
 
@@ -2987,7 +3003,7 @@ var SdkRead = /*#__PURE__*/function (_BlockchainEntityRead) {
2987
3003
  var _getUserDetails = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee2(userAddress) {
2988
3004
  var _this2 = this;
2989
3005
 
2990
- var marketCount, userMarketDetails, assetsIn, promises, totalBorrowLimit, pricePromises, _loop2, _iterator, _step, underlyingPrices, depositValuationPromises, _loop, i, depositValues, accountLiquidity, rewardBalancesMetadata, lockedAmount, values, borrowedvaluation, bufferedBorrowLimit, minimumBorrowLimitAllowed, borrowableAmount, auToken, moneyMarket, maxWithdrawCap;
3006
+ var marketCount, userMarketDetails, assetsIn, promises, totalBorrowLimit, pricePromises, _loop2, _iterator, _step, underlyingPrices, depositValues, _loop, i, accountLiquidity, rewardBalancesMetadata, lockedAmount, values, borrowedvaluation, bufferedBorrowLimit, minimumBorrowLimitAllowed, borrowableAmount, auToken, moneyMarket, maxWithdrawCap;
2991
3007
 
2992
3008
  return runtime_1.wrap(function _callee2$(_context2) {
2993
3009
  while (1) {
@@ -3036,7 +3052,7 @@ var SdkRead = /*#__PURE__*/function (_BlockchainEntityRead) {
3036
3052
 
3037
3053
  case 12:
3038
3054
  underlyingPrices = _context2.sent;
3039
- depositValuationPromises = [];
3055
+ depositValues = [];
3040
3056
 
3041
3057
  _loop = function _loop() {
3042
3058
  var auToken = networkAddresses.auTokens[i];
@@ -3049,18 +3065,13 @@ var SdkRead = /*#__PURE__*/function (_BlockchainEntityRead) {
3049
3065
  userMarketDetails[i].isCollateral = false;
3050
3066
  }
3051
3067
 
3052
- depositValuationPromises.push(fetchValuation(userMarketDetails[i].depositBalance, _this2._networkConnection.provider, underlyingPrices[i]));
3068
+ depositValues.push(calcValuation(userMarketDetails[i].depositBalance, underlyingPrices[i]));
3053
3069
  };
3054
3070
 
3055
3071
  for (i = 0; i < marketCount; i++) {
3056
3072
  _loop();
3057
3073
  }
3058
3074
 
3059
- _context2.next = 18;
3060
- return Promise.all(depositValuationPromises);
3061
-
3062
- case 18:
3063
- depositValues = _context2.sent;
3064
3075
  totalBorrowLimit = depositValues.reduce(function (p, v, index) {
3065
3076
  if (userMarketDetails[index].isCollateral) return p.plus(v.multipliedBy(userMarketDetails[index].collateralRatio));
3066
3077
  return p;
@@ -3069,10 +3080,10 @@ var SdkRead = /*#__PURE__*/function (_BlockchainEntityRead) {
3069
3080
  promises.push(this._comptroller.getAccountLiquidity(userAddress));
3070
3081
  promises.push(this._auriLens.callStatic.getRewardBalancesMetadata(this._comptroller.address, this._auriFairLaunch.address, userAddress, [AurPlyPid]));
3071
3082
  promises.push(this._tokenLock.lockedAmounts(userAddress));
3072
- _context2.next = 26;
3083
+ _context2.next = 23;
3073
3084
  return Promise.all(promises);
3074
3085
 
3075
- case 26:
3086
+ case 23:
3076
3087
  values = _context2.sent;
3077
3088
  accountLiquidity = values[0];
3078
3089
  rewardBalancesMetadata = values[1];
@@ -3113,7 +3124,7 @@ var SdkRead = /*#__PURE__*/function (_BlockchainEntityRead) {
3113
3124
  }
3114
3125
  });
3115
3126
 
3116
- case 37:
3127
+ case 34:
3117
3128
  case "end":
3118
3129
  return _context2.stop();
3119
3130
  }
@@ -3236,15 +3247,41 @@ var SdkRead = /*#__PURE__*/function (_BlockchainEntityRead) {
3236
3247
  return stakeBalanceOf;
3237
3248
  }();
3238
3249
 
3239
- _proto.calcHypotheticalStats = function calcHypotheticalStats(args) {
3240
- var deltaBorrowLimit = new BigNumber(args.userMarketDetail.depositBalance.formattedAmount()).multipliedBy(args.userMarketDetail.underlyingPrice).multipliedBy(args.userMarketDetail.collateralRatio).multipliedBy(BORROW_LIMIT_BUFFER);
3241
- var newBorrowLimit = args.isEnable ? new BigNumber(args.currentBorrowLimit.amount).plus(deltaBorrowLimit) : new BigNumber(args.currentBorrowLimit.amount).minus(deltaBorrowLimit);
3250
+ _proto.calcHypotheticalStats = function calcHypotheticalStats(_ref) {
3251
+ var userMarketDetail = _ref.userMarketDetail,
3252
+ currentBorrowLimit = _ref.currentBorrowLimit,
3253
+ currentBorrowValuation = _ref.currentBorrowValuation,
3254
+ action = _ref.action,
3255
+ tokenAmount = _ref.tokenAmount;
3256
+ var newBorrowLimit = new BigNumber(currentBorrowLimit.amount),
3257
+ newBorrowValuation = new BigNumber(currentBorrowValuation.amount);
3258
+
3259
+ switch (action) {
3260
+ case exports.MarketAction.EnableCollateral:
3261
+ case exports.MarketAction.DisableCollateral:
3262
+ var deltaBorrowLimit = calcValuation(userMarketDetail.depositBalance, new BigNumber(userMarketDetail.underlyingPrice)).multipliedBy(userMarketDetail.collateralRatio).multipliedBy(BORROW_LIMIT_BUFFER);
3263
+ newBorrowLimit = action == exports.MarketAction.EnableCollateral ? newBorrowLimit.plus(deltaBorrowLimit) : newBorrowLimit.minus(deltaBorrowLimit);
3264
+ break;
3265
+
3266
+ case exports.MarketAction.Deposit:
3267
+ case exports.MarketAction.Withdraw:
3268
+ deltaBorrowLimit = calcValuation(tokenAmount, new BigNumber(userMarketDetail.underlyingPrice)).multipliedBy(userMarketDetail.collateralRatio).multipliedBy(BORROW_LIMIT_BUFFER);
3269
+ newBorrowLimit = action == exports.MarketAction.Deposit ? newBorrowLimit.plus(deltaBorrowLimit) : newBorrowLimit.minus(deltaBorrowLimit);
3270
+ break;
3271
+
3272
+ case exports.MarketAction.Borrow:
3273
+ case exports.MarketAction.Repay:
3274
+ var deltaBorrowValuation = calcValuation(tokenAmount, new BigNumber(userMarketDetail.underlyingPrice));
3275
+ newBorrowValuation = action == exports.MarketAction.Borrow ? newBorrowValuation.plus(deltaBorrowValuation) : newBorrowValuation.minus(deltaBorrowValuation);
3276
+ break;
3277
+ }
3278
+
3242
3279
  return {
3243
3280
  newBorrowLimit: {
3244
3281
  amount: newBorrowLimit.toFixed(DECIMAL_PRECISION),
3245
3282
  currency: "USD"
3246
3283
  },
3247
- newBorrowUtilization: new BigNumber(args.currentBorrowValuation.amount).div(newBorrowLimit).toNumber()
3284
+ newBorrowUtilization: newBorrowValuation.div(newBorrowLimit).toNumber()
3248
3285
  };
3249
3286
  };
3250
3287
 
@@ -3328,6 +3365,31 @@ var SdkReadWrite = /*#__PURE__*/function (_SdkRead) {
3328
3365
  return unstake;
3329
3366
  }();
3330
3367
 
3368
+ _proto2.faucetDrip = /*#__PURE__*/function () {
3369
+ var _faucetDrip = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee9() {
3370
+ var faucet;
3371
+ return runtime_1.wrap(function _callee9$(_context9) {
3372
+ while (1) {
3373
+ switch (_context9.prev = _context9.next) {
3374
+ case 0:
3375
+ faucet = new ethers.Contract(networkAddresses.misc.FAUCET, FaucetABI.abi, this._networkConnection.provider);
3376
+ return _context9.abrupt("return", faucet.connect(this._networkConnection.signer).drip());
3377
+
3378
+ case 2:
3379
+ case "end":
3380
+ return _context9.stop();
3381
+ }
3382
+ }
3383
+ }, _callee9, this);
3384
+ }));
3385
+
3386
+ function faucetDrip() {
3387
+ return _faucetDrip.apply(this, arguments);
3388
+ }
3389
+
3390
+ return faucetDrip;
3391
+ }();
3392
+
3331
3393
  return SdkReadWrite;
3332
3394
  }(SdkRead);
3333
3395
  var SDK = /*#__PURE__*/function (_BlockchainEntity) {
@@ -3377,6 +3439,7 @@ exports.BlockchainEntityRead = BlockchainEntityRead;
3377
3439
  exports.BlockchainEntityReadWrite = BlockchainEntityReadWrite;
3378
3440
  exports.DECIMAL_PRECISION = DECIMAL_PRECISION;
3379
3441
  exports.ETHAddress = ETHAddress;
3442
+ exports.INF = INF;
3380
3443
  exports.MoneyMarket = MoneyMarket;
3381
3444
  exports.MoneyMarketRead = MoneyMarketRead;
3382
3445
  exports.MoneyMarketReadWrite = MoneyMarketReadWrite;
@@ -3390,6 +3453,7 @@ exports.SdkReadWrite = SdkReadWrite;
3390
3453
  exports.Token = Token;
3391
3454
  exports.TokenAmount = TokenAmount;
3392
3455
  exports.calcLMRewardApr = calcLMRewardApr;
3456
+ exports.calcValuation = calcValuation;
3393
3457
  exports.decimalFactor = decimalFactor;
3394
3458
  exports.dummyAddress = dummyAddress;
3395
3459
  exports.dummyMarketAddress = dummyMarketAddress;