@aurigami/sdk 0.4.0 → 0.4.5

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.esm.js CHANGED
@@ -1,7 +1,6 @@
1
1
  import { Signer } from '@ethersproject/abstract-signer';
2
2
  import BigNumber from 'bignumber.js';
3
- import { config } from 'dotenv';
4
- import { BigNumber as BigNumber$1, utils, Contract, ethers as ethers$1 } from 'ethers';
3
+ import { BigNumber as BigNumber$1, utils, Contract } from 'ethers';
5
4
  import AuErc20ABI from '@aurigami/contracts/artifacts/contracts/AuErc20.sol/AuErc20.json';
6
5
  import AuETHABI from '@aurigami/contracts/artifacts/contracts/AuETH.sol/AuETH.json';
7
6
  import ComptrollerABI from '@aurigami/contracts/artifacts/contracts/Comptroller.sol/Comptroller.json';
@@ -892,18 +891,27 @@ var BlockchainEntity = /*#__PURE__*/function () {
892
891
  return BlockchainEntity;
893
892
  }();
894
893
 
895
- var ethers = /*#__PURE__*/require('ethers');
896
- config();
897
- var AVAX_DEFAULT_PROVIDER_URL = 'https://api.avax.network/ext/bc/C/rpc';
898
- var AVAX_DEFAULT_PROVIDER = /*#__PURE__*/new ethers.providers.JsonRpcProvider(AVAX_DEFAULT_PROVIDER_URL);
899
- var AURORA_DEFAULT_PROVIDER_URL = "https://mainnet.aurora.dev/" + process.env.AURORA_API_KEY;
900
- var AURORA_DEFAULT_PROVIDER = /*#__PURE__*/new ethers.providers.JsonRpcProvider(AURORA_DEFAULT_PROVIDER_URL);
894
+ var ComptrollerRewardType;
895
+
896
+ (function (ComptrollerRewardType) {
897
+ ComptrollerRewardType[ComptrollerRewardType["PLY"] = 0] = "PLY";
898
+ ComptrollerRewardType[ComptrollerRewardType["AURORA"] = 1] = "AURORA";
899
+ })(ComptrollerRewardType || (ComptrollerRewardType = {}));
900
+ var MarketAction;
901
+
902
+ (function (MarketAction) {
903
+ MarketAction[MarketAction["Deposit"] = 0] = "Deposit";
904
+ MarketAction[MarketAction["Borrow"] = 1] = "Borrow";
905
+ MarketAction[MarketAction["Withdraw"] = 2] = "Withdraw";
906
+ MarketAction[MarketAction["Repay"] = 3] = "Repay";
907
+ MarketAction[MarketAction["EnableCollateral"] = 4] = "EnableCollateral";
908
+ MarketAction[MarketAction["DisableCollateral"] = 5] = "DisableCollateral";
909
+ })(MarketAction || (MarketAction = {}));
910
+
901
911
  var dummyAddress = "0xDEADbeEfEEeEEEeEEEeEEeeeeeEeEEeeeeEEEEeE";
902
912
  var ETHAddress = "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE";
903
- var dummyPrivateKey = '1111111111111111111111111111111111111111111111111111111111111111';
904
- var AURORA_DEFAULT_SIGNER = /*#__PURE__*/new ethers.Wallet(dummyPrivateKey, AURORA_DEFAULT_PROVIDER);
905
913
  var AURORA_CHAINID = 1313161554;
906
- var DECIMAL_PRECISION = 6;
914
+ var DECIMAL_PRECISION = 10;
907
915
  var networkAddresses = {
908
916
  auTokens: [{
909
917
  address: /*#__PURE__*/'0x2dEf6eb801757655AD227110d65C80DB595bBc60'.toLowerCase(),
@@ -948,6 +956,7 @@ var REWARDCLAIMSTART = 1640995200;
948
956
  var ONE_DAY = 86400;
949
957
  var ONE_YEAR = ONE_DAY * 365;
950
958
  var AurPlyPid = 0;
959
+ var INF = /*#__PURE__*/BigNumber$1.from(2).pow(256).sub(1);
951
960
 
952
961
  var decimalRecords = {
953
962
  '0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee': 18,
@@ -1016,13 +1025,6 @@ function calcLMRewardApr(rewardsValue, totalStakeValue, frequencyPerYear) {
1016
1025
  return rewardsValue.multipliedBy(frequencyPerYear).dividedBy(totalStakeValue);
1017
1026
  }
1018
1027
 
1019
- var ComptrollerRewardType;
1020
-
1021
- (function (ComptrollerRewardType) {
1022
- ComptrollerRewardType[ComptrollerRewardType["PLY"] = 0] = "PLY";
1023
- ComptrollerRewardType[ComptrollerRewardType["AURORA"] = 1] = "AURORA";
1024
- })(ComptrollerRewardType || (ComptrollerRewardType = {}));
1025
-
1026
1028
  var Token = function Token(address, decimals) {
1027
1029
  this.address = address.toLowerCase();
1028
1030
  this.decimals = decimals;
@@ -2276,31 +2278,25 @@ function _fetchPrice() {
2276
2278
  return _fetchPrice.apply(this, arguments);
2277
2279
  }
2278
2280
 
2279
- function fetchValuation(_x13, _x14, _x15) {
2281
+ function fetchValuation(_x13, _x14) {
2280
2282
  return _fetchValuation.apply(this, arguments);
2281
2283
  }
2282
2284
 
2283
2285
  function _fetchValuation() {
2284
- _fetchValuation = _asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee8(tokenAmount, provider, price) {
2286
+ _fetchValuation = _asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee8(tokenAmount, provider) {
2287
+ var price;
2285
2288
  return runtime_1.wrap(function _callee8$(_context8) {
2286
2289
  while (1) {
2287
2290
  switch (_context8.prev = _context8.next) {
2288
2291
  case 0:
2289
- if (!(price === null)) {
2290
- _context8.next = 4;
2291
- break;
2292
- }
2293
-
2294
- _context8.next = 3;
2292
+ _context8.next = 2;
2295
2293
  return fetchPrice(tokenAmount.token.address, provider);
2296
2294
 
2297
- case 3:
2295
+ case 2:
2298
2296
  price = _context8.sent;
2297
+ return _context8.abrupt("return", calcValuation(tokenAmount, price));
2299
2298
 
2300
2299
  case 4:
2301
- return _context8.abrupt("return", new BigNumber(tokenAmount.formattedAmount()).multipliedBy(price));
2302
-
2303
- case 5:
2304
2300
  case "end":
2305
2301
  return _context8.stop();
2306
2302
  }
@@ -2310,6 +2306,10 @@ function _fetchValuation() {
2310
2306
  return _fetchValuation.apply(this, arguments);
2311
2307
  }
2312
2308
 
2309
+ function calcValuation(tokenAmount, price) {
2310
+ return new BigNumber(tokenAmount.formattedAmount()).multipliedBy(price);
2311
+ }
2312
+
2313
2313
  var MoneyMarketRead = /*#__PURE__*/function (_BlockchainEntityRead) {
2314
2314
  _inheritsLoose(MoneyMarketRead, _BlockchainEntityRead);
2315
2315
 
@@ -2631,7 +2631,7 @@ var MoneyMarketRead = /*#__PURE__*/function (_BlockchainEntityRead) {
2631
2631
  case 11:
2632
2632
  _context9.t0 = calcLMRewardApr;
2633
2633
  _context9.next = 14;
2634
- return fetchValuation(new TokenAmount(PLYToken, rewardSpeeds.plyRewardBorrowSpeed.toString()), this._networkConnection.provider, plyPrice);
2634
+ return calcValuation(new TokenAmount(PLYToken, rewardSpeeds.plyRewardBorrowSpeed.toString()), plyPrice);
2635
2635
 
2636
2636
  case 14:
2637
2637
  _context9.t1 = _context9.sent;
@@ -2640,7 +2640,7 @@ var MoneyMarketRead = /*#__PURE__*/function (_BlockchainEntityRead) {
2640
2640
  borrowPlyApy = (0, _context9.t0)(_context9.t1, _context9.t2, _context9.t3);
2641
2641
  _context9.t4 = calcLMRewardApr;
2642
2642
  _context9.next = 21;
2643
- return fetchValuation(new TokenAmount(PLYToken, rewardSpeeds.plyRewardSupplySpeed.toString()), this._networkConnection.provider, plyPrice);
2643
+ return calcValuation(new TokenAmount(PLYToken, rewardSpeeds.plyRewardSupplySpeed.toString()), plyPrice);
2644
2644
 
2645
2645
  case 21:
2646
2646
  _context9.t5 = _context9.sent;
@@ -2804,9 +2804,17 @@ var MoneyMarketReadWrite = /*#__PURE__*/function (_MoneyMarketRead) {
2804
2804
  while (1) {
2805
2805
  switch (_context14.prev = _context14.next) {
2806
2806
  case 0:
2807
+ if (!new BigNumber(amount.rawAmount()).lt(0)) {
2808
+ _context14.next = 2;
2809
+ break;
2810
+ }
2811
+
2812
+ return _context14.abrupt("return", this.auToken.connect(this._networkConnection.signer).redeemUnderlying(INF));
2813
+
2814
+ case 2:
2807
2815
  return _context14.abrupt("return", this.auToken.connect(this._networkConnection.signer).redeemUnderlying(amount.rawAmount()));
2808
2816
 
2809
- case 1:
2817
+ case 3:
2810
2818
  case "end":
2811
2819
  return _context14.stop();
2812
2820
  }
@@ -2992,7 +3000,7 @@ var SdkRead = /*#__PURE__*/function (_BlockchainEntityRead) {
2992
3000
  var _getUserDetails = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee2(userAddress) {
2993
3001
  var _this2 = this;
2994
3002
 
2995
- 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;
3003
+ 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;
2996
3004
 
2997
3005
  return runtime_1.wrap(function _callee2$(_context2) {
2998
3006
  while (1) {
@@ -3041,7 +3049,7 @@ var SdkRead = /*#__PURE__*/function (_BlockchainEntityRead) {
3041
3049
 
3042
3050
  case 12:
3043
3051
  underlyingPrices = _context2.sent;
3044
- depositValuationPromises = [];
3052
+ depositValues = [];
3045
3053
 
3046
3054
  _loop = function _loop() {
3047
3055
  var auToken = networkAddresses.auTokens[i];
@@ -3054,18 +3062,13 @@ var SdkRead = /*#__PURE__*/function (_BlockchainEntityRead) {
3054
3062
  userMarketDetails[i].isCollateral = false;
3055
3063
  }
3056
3064
 
3057
- depositValuationPromises.push(fetchValuation(userMarketDetails[i].depositBalance, _this2._networkConnection.provider, underlyingPrices[i]));
3065
+ depositValues.push(calcValuation(userMarketDetails[i].depositBalance, underlyingPrices[i]));
3058
3066
  };
3059
3067
 
3060
3068
  for (i = 0; i < marketCount; i++) {
3061
3069
  _loop();
3062
3070
  }
3063
3071
 
3064
- _context2.next = 18;
3065
- return Promise.all(depositValuationPromises);
3066
-
3067
- case 18:
3068
- depositValues = _context2.sent;
3069
3072
  totalBorrowLimit = depositValues.reduce(function (p, v, index) {
3070
3073
  if (userMarketDetails[index].isCollateral) return p.plus(v.multipliedBy(userMarketDetails[index].collateralRatio));
3071
3074
  return p;
@@ -3074,15 +3077,20 @@ var SdkRead = /*#__PURE__*/function (_BlockchainEntityRead) {
3074
3077
  promises.push(this._comptroller.getAccountLiquidity(userAddress));
3075
3078
  promises.push(this._auriLens.callStatic.getRewardBalancesMetadata(this._comptroller.address, this._auriFairLaunch.address, userAddress, [AurPlyPid]));
3076
3079
  promises.push(this._tokenLock.lockedAmounts(userAddress));
3077
- _context2.next = 26;
3080
+ _context2.next = 23;
3078
3081
  return Promise.all(promises);
3079
3082
 
3080
- case 26:
3083
+ case 23:
3081
3084
  values = _context2.sent;
3082
3085
  accountLiquidity = values[0];
3083
3086
  rewardBalancesMetadata = values[1];
3084
3087
  lockedAmount = values[2];
3085
3088
  borrowedvaluation = totalBorrowLimit.minus(new BigNumber(accountLiquidity[1].toString()).div(decimalFactor(18)));
3089
+
3090
+ if (borrowedvaluation.lt("0.00001")) {
3091
+ borrowedvaluation = new BigNumber(0);
3092
+ }
3093
+
3086
3094
  bufferedBorrowLimit = totalBorrowLimit.multipliedBy(BORROW_LIMIT_BUFFER);
3087
3095
  minimumBorrowLimitAllowed = borrowedvaluation.div(BORROW_LIMIT_BUFFER);
3088
3096
 
@@ -3113,7 +3121,7 @@ var SdkRead = /*#__PURE__*/function (_BlockchainEntityRead) {
3113
3121
  }
3114
3122
  });
3115
3123
 
3116
- case 36:
3124
+ case 34:
3117
3125
  case "end":
3118
3126
  return _context2.stop();
3119
3127
  }
@@ -3236,15 +3244,41 @@ var SdkRead = /*#__PURE__*/function (_BlockchainEntityRead) {
3236
3244
  return stakeBalanceOf;
3237
3245
  }();
3238
3246
 
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);
3247
+ _proto.calcHypotheticalStats = function calcHypotheticalStats(_ref) {
3248
+ var userMarketDetail = _ref.userMarketDetail,
3249
+ currentBorrowLimit = _ref.currentBorrowLimit,
3250
+ currentBorrowValuation = _ref.currentBorrowValuation,
3251
+ action = _ref.action,
3252
+ tokenAmount = _ref.tokenAmount;
3253
+ var newBorrowLimit = new BigNumber(currentBorrowLimit.amount),
3254
+ newBorrowValuation = new BigNumber(currentBorrowValuation.amount);
3255
+
3256
+ switch (action) {
3257
+ case MarketAction.EnableCollateral:
3258
+ case MarketAction.DisableCollateral:
3259
+ var deltaBorrowLimit = calcValuation(userMarketDetail.depositBalance, new BigNumber(userMarketDetail.underlyingPrice)).multipliedBy(userMarketDetail.collateralRatio).multipliedBy(BORROW_LIMIT_BUFFER);
3260
+ newBorrowLimit = action == MarketAction.EnableCollateral ? newBorrowLimit.plus(deltaBorrowLimit) : newBorrowLimit.minus(deltaBorrowLimit);
3261
+ break;
3262
+
3263
+ case MarketAction.Deposit:
3264
+ case MarketAction.Withdraw:
3265
+ deltaBorrowLimit = calcValuation(tokenAmount, new BigNumber(userMarketDetail.underlyingPrice)).multipliedBy(userMarketDetail.collateralRatio).multipliedBy(BORROW_LIMIT_BUFFER);
3266
+ newBorrowLimit = action == MarketAction.Deposit ? newBorrowLimit.plus(deltaBorrowLimit) : newBorrowLimit.minus(deltaBorrowLimit);
3267
+ break;
3268
+
3269
+ case MarketAction.Borrow:
3270
+ case MarketAction.Repay:
3271
+ var deltaBorrowValuation = calcValuation(tokenAmount, new BigNumber(userMarketDetail.underlyingPrice));
3272
+ newBorrowValuation = action == MarketAction.Borrow ? newBorrowValuation.plus(deltaBorrowValuation) : newBorrowValuation.minus(deltaBorrowValuation);
3273
+ break;
3274
+ }
3275
+
3242
3276
  return {
3243
3277
  newBorrowLimit: {
3244
3278
  amount: newBorrowLimit.toFixed(DECIMAL_PRECISION),
3245
3279
  currency: "USD"
3246
3280
  },
3247
- newBorrowUtilization: new BigNumber(args.currentBorrowValuation.amount).div(newBorrowLimit).toNumber()
3281
+ newBorrowUtilization: newBorrowValuation.div(newBorrowLimit).toNumber()
3248
3282
  };
3249
3283
  };
3250
3284
 
@@ -3343,8 +3377,8 @@ var SDK = /*#__PURE__*/function (_BlockchainEntity) {
3343
3377
  return new SdkRead(networkConnection);
3344
3378
  };
3345
3379
 
3346
- SDK.defaultProvider = function defaultProvider() {
3347
- return new ethers$1.providers.JsonRpcProvider(AVAX_DEFAULT_PROVIDER_URL);
3380
+ _proto3.readWrite = function readWrite(networkConnection) {
3381
+ return new SdkReadWrite(networkConnection);
3348
3382
  };
3349
3383
 
3350
3384
  return SDK;
@@ -3364,8 +3398,9 @@ var dummyUserMarketDetails = {
3364
3398
  borrowBalance: dummyZeroTokenAmount,
3365
3399
  isCollateral: true,
3366
3400
  maxWithdrawableAmount: dummyTokenAmount,
3367
- collateralRatio: 0.5
3401
+ collateralRatio: 0.5,
3402
+ underlyingPrice: "1"
3368
3403
  };
3369
3404
 
3370
- export { AURORA_CHAINID, AURORA_DEFAULT_PROVIDER, AURORA_DEFAULT_PROVIDER_URL, AURORA_DEFAULT_SIGNER, AURPLYToken, AVAX_DEFAULT_PROVIDER, AVAX_DEFAULT_PROVIDER_URL, AurPlyPid, BORROW_LIMIT_BUFFER, BlockchainEntity, BlockchainEntityRead, BlockchainEntityReadWrite, ComptrollerRewardType, DECIMAL_PRECISION, ETHAddress, MoneyMarket, MoneyMarketRead, MoneyMarketReadWrite, ONE_DAY, ONE_YEAR, PLYToken, REWARDCLAIMSTART, SDK, SdkRead, SdkReadWrite, Token, TokenAmount, calcLMRewardApr, decimalFactor, dummyAddress, dummyMarketAddress, dummyPly, dummyPlyAurora, dummyToken, dummyTokenAmount, dummyTokenAmount2, dummyTokenAmount3, dummyUserMarketDetails, dummyZeroTokenAmount, fetchLPPositions, fetchLPPrice, fetchPrice, fetchPriceFromCoingecko, fetchPriceFromCoingeckoAPI, fetchPriceFromOracle, fetchUnderlyingTokensPrices, fetchValuation, formatObject, getCurrentTimestamp, getDecimal, isSameAddress, networkAddresses, validateAndParseAddress };
3405
+ export { AURORA_CHAINID, AURPLYToken, AurPlyPid, BORROW_LIMIT_BUFFER, BlockchainEntity, BlockchainEntityRead, BlockchainEntityReadWrite, ComptrollerRewardType, DECIMAL_PRECISION, ETHAddress, INF, MarketAction, MoneyMarket, MoneyMarketRead, MoneyMarketReadWrite, ONE_DAY, ONE_YEAR, PLYToken, REWARDCLAIMSTART, SDK, SdkRead, SdkReadWrite, Token, TokenAmount, calcLMRewardApr, calcValuation, decimalFactor, dummyAddress, dummyMarketAddress, dummyPly, dummyPlyAurora, dummyToken, dummyTokenAmount, dummyTokenAmount2, dummyTokenAmount3, dummyUserMarketDetails, dummyZeroTokenAmount, fetchLPPositions, fetchLPPrice, fetchPrice, fetchPriceFromCoingecko, fetchPriceFromCoingeckoAPI, fetchPriceFromOracle, fetchUnderlyingTokensPrices, fetchValuation, formatObject, getCurrentTimestamp, getDecimal, isSameAddress, networkAddresses, validateAndParseAddress };
3371
3406
  //# sourceMappingURL=sdk.esm.js.map