@aurigami/sdk 0.3.3 → 0.4.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.esm.js CHANGED
@@ -1,10 +1,11 @@
1
1
  import { Signer } from '@ethersproject/abstract-signer';
2
2
  import BigNumber from 'bignumber.js';
3
- import { BigNumber as BigNumber$1, utils, Contract, ethers as ethers$1 } from 'ethers';
3
+ import { BigNumber as BigNumber$1, utils, Contract } from 'ethers';
4
4
  import AuErc20ABI from '@aurigami/contracts/artifacts/contracts/AuErc20.sol/AuErc20.json';
5
5
  import AuETHABI from '@aurigami/contracts/artifacts/contracts/AuETH.sol/AuETH.json';
6
6
  import ComptrollerABI from '@aurigami/contracts/artifacts/contracts/Comptroller.sol/Comptroller.json';
7
7
  import AuriLensABI from '@aurigami/contracts/artifacts/contracts/AuriLens.sol/AuriLens.json';
8
+ import axios from 'axios';
8
9
  import TokenLockABI from '@aurigami/contracts/artifacts/contracts/TokenLock.sol/TokenLock.json';
9
10
  import AuriFairLaunchABI from '@aurigami/contracts/artifacts/contracts/AuriFairLaunch.sol/AuriFairLaunch.json';
10
11
 
@@ -890,16 +891,8 @@ var BlockchainEntity = /*#__PURE__*/function () {
890
891
  return BlockchainEntity;
891
892
  }();
892
893
 
893
- var ethers = /*#__PURE__*/require('ethers');
894
-
895
- var AVAX_DEFAULT_PROVIDER_URL = 'https://api.avax.network/ext/bc/C/rpc';
896
- var AVAX_DEFAULT_PROVIDER = /*#__PURE__*/new ethers.providers.JsonRpcProvider(AVAX_DEFAULT_PROVIDER_URL);
897
- var AURORA_DEFAULT_PROVIDER_URL = "https://mainnet.aurora.dev";
898
- var AURORA_DEFAULT_PROVIDER = /*#__PURE__*/new ethers.providers.JsonRpcProvider(AURORA_DEFAULT_PROVIDER_URL);
899
894
  var dummyAddress = "0xDEADbeEfEEeEEEeEEEeEEeeeeeEeEEeeeeEEEEeE";
900
895
  var ETHAddress = "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE";
901
- var dummyPrivateKey = '1111111111111111111111111111111111111111111111111111111111111111';
902
- var AURORA_DEFAULT_SIGNER = /*#__PURE__*/new ethers.Wallet(dummyPrivateKey, AURORA_DEFAULT_PROVIDER);
903
896
  var AURORA_CHAINID = 1313161554;
904
897
  var DECIMAL_PRECISION = 6;
905
898
  var networkAddresses = {
@@ -2005,14 +1998,6 @@ var IUniswapV2PairABI = {
2005
1998
  deployedLinkReferences: deployedLinkReferences
2006
1999
  };
2007
2000
 
2008
- var abi$2 = [
2009
- ];
2010
- var dummyABI = {
2011
- abi: abi$2
2012
- };
2013
-
2014
- var axios = /*#__PURE__*/require('axios');
2015
-
2016
2001
  function fetchPriceFromCoingeckoAPI(_x) {
2017
2002
  return _fetchPriceFromCoingeckoAPI.apply(this, arguments);
2018
2003
  }
@@ -2210,7 +2195,7 @@ function _fetchUnderlyingTokensPrices() {
2210
2195
  while (1) {
2211
2196
  switch (_context6.prev = _context6.next) {
2212
2197
  case 0:
2213
- auriLens = new Contract(networkAddresses.misc.AURILENS, dummyABI.abi, provider);
2198
+ auriLens = new Contract(networkAddresses.misc.AURILENS, AuriLensABI.abi, provider);
2214
2199
  auTokenAddresses = networkAddresses.auTokens.map(function (auToken) {
2215
2200
  return auToken.address;
2216
2201
  });
@@ -2952,11 +2937,10 @@ var SdkRead = /*#__PURE__*/function (_BlockchainEntityRead) {
2952
2937
  while (1) {
2953
2938
  switch (_context.prev = _context.next) {
2954
2939
  case 0:
2955
- console.log(this._networkConnection.provider);
2956
- _context.next = 3;
2940
+ _context.next = 2;
2957
2941
  return getCurrentTimestamp(this._networkConnection.provider);
2958
2942
 
2959
- case 3:
2943
+ case 2:
2960
2944
  currentTime = _context.sent;
2961
2945
  currentWeek = BigNumber$1.from(currentTime - REWARDCLAIMSTART).div(7 * ONE_DAY).toNumber();
2962
2946
  denominator = 10000;
@@ -2965,14 +2949,14 @@ var SdkRead = /*#__PURE__*/function (_BlockchainEntityRead) {
2965
2949
  promises.push(this._tokenLock.percentageLock(currentWeek + 1)["catch"](function (err) {
2966
2950
  return denominator;
2967
2951
  }));
2968
- _context.next = 11;
2952
+ _context.next = 10;
2969
2953
  return Promise.all(promises).then(function (res) {
2970
2954
  return res.map(function (v) {
2971
2955
  return v.toString();
2972
2956
  });
2973
2957
  });
2974
2958
 
2975
- case 11:
2959
+ case 10:
2976
2960
  values = _context.sent;
2977
2961
  return _context.abrupt("return", {
2978
2962
  vestingStart: REWARDCLAIMSTART,
@@ -2980,7 +2964,7 @@ var SdkRead = /*#__PURE__*/function (_BlockchainEntityRead) {
2980
2964
  nextUnlockPortion: new BigNumber(denominator).minus(values[1]).div(denominator).toNumber()
2981
2965
  });
2982
2966
 
2983
- case 13:
2967
+ case 12:
2984
2968
  case "end":
2985
2969
  return _context.stop();
2986
2970
  }
@@ -2999,7 +2983,7 @@ var SdkRead = /*#__PURE__*/function (_BlockchainEntityRead) {
2999
2983
  var _getUserDetails = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee2(userAddress) {
3000
2984
  var _this2 = this;
3001
2985
 
3002
- var marketCount, userMarketDetails, assetsIn, collateralRatio, promises, totalBorrowLimit, pricePromises, _loop2, _iterator, _step, underlyingPrices, depositValuationPromises, _loop, i, depositValues, accountLiquidity, rewardBalancesMetadata, lockedAmount, values, borrowedvaluation, bufferedBorrowLimit, borrowableAmount, auToken, moneyMarket;
2986
+ 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
2987
 
3004
2988
  return runtime_1.wrap(function _callee2$(_context2) {
3005
2989
  while (1) {
@@ -3007,7 +2991,6 @@ var SdkRead = /*#__PURE__*/function (_BlockchainEntityRead) {
3007
2991
  case 0:
3008
2992
  marketCount = networkAddresses.auTokens.length;
3009
2993
  userMarketDetails = [];
3010
- collateralRatio = new Array(marketCount);
3011
2994
  promises = [];
3012
2995
  totalBorrowLimit = new BigNumber(0);
3013
2996
  pricePromises = [];
@@ -3025,9 +3008,12 @@ var SdkRead = /*#__PURE__*/function (_BlockchainEntityRead) {
3025
3008
  userMarketDetail.borrowBalance = res;
3026
3009
  }));
3027
3010
  promises.push(moneyMarket.getCollateralRatio().then(function (res) {
3028
- collateralRatio[i] = res;
3011
+ userMarketDetail.collateralRatio = res.toNumber();
3012
+ }));
3013
+ pricePromises.push(fetchPrice(moneyMarket.underlying.address, _this2._networkConnection.provider).then(function (res) {
3014
+ userMarketDetail.underlyingPrice = res.toString();
3015
+ return res;
3029
3016
  }));
3030
- pricePromises.push(fetchPrice(moneyMarket.underlying.address, _this2._networkConnection.provider));
3031
3017
  };
3032
3018
 
3033
3019
  for (_iterator = _createForOfIteratorHelperLoose(networkAddresses.auTokens); !(_step = _iterator()).done;) {
@@ -3037,23 +3023,23 @@ var SdkRead = /*#__PURE__*/function (_BlockchainEntityRead) {
3037
3023
  promises.push(this._comptroller.getAssetsIn(userAddress).then(function (res) {
3038
3024
  assetsIn = res;
3039
3025
  }));
3040
- _context2.next = 11;
3026
+ _context2.next = 10;
3041
3027
  return Promise.all(promises);
3042
3028
 
3043
- case 11:
3044
- _context2.next = 13;
3029
+ case 10:
3030
+ _context2.next = 12;
3045
3031
  return Promise.all(pricePromises);
3046
3032
 
3047
- case 13:
3033
+ case 12:
3048
3034
  underlyingPrices = _context2.sent;
3049
3035
  depositValuationPromises = [];
3050
3036
 
3051
3037
  _loop = function _loop() {
3052
3038
  var auToken = networkAddresses.auTokens[i];
3053
3039
 
3054
- if (assetsIn.filter(function (auAddress) {
3055
- isSameAddress(auToken.address, auAddress);
3056
- }).length > 0) {
3040
+ if (assetsIn.find(function (auAddress) {
3041
+ return isSameAddress(auToken.address, auAddress);
3042
+ }) !== undefined) {
3057
3043
  userMarketDetails[i].isCollateral = true;
3058
3044
  } else {
3059
3045
  userMarketDetails[i].isCollateral = false;
@@ -3066,29 +3052,30 @@ var SdkRead = /*#__PURE__*/function (_BlockchainEntityRead) {
3066
3052
  _loop();
3067
3053
  }
3068
3054
 
3069
- _context2.next = 19;
3055
+ _context2.next = 18;
3070
3056
  return Promise.all(depositValuationPromises);
3071
3057
 
3072
- case 19:
3058
+ case 18:
3073
3059
  depositValues = _context2.sent;
3074
3060
  totalBorrowLimit = depositValues.reduce(function (p, v, index) {
3075
- if (userMarketDetails[index].isCollateral) return p.plus(v.multipliedBy(collateralRatio[index]));
3061
+ if (userMarketDetails[index].isCollateral) return p.plus(v.multipliedBy(userMarketDetails[index].collateralRatio));
3076
3062
  return p;
3077
- });
3063
+ }, new BigNumber(0));
3078
3064
  promises = [];
3079
3065
  promises.push(this._comptroller.getAccountLiquidity(userAddress));
3080
3066
  promises.push(this._auriLens.callStatic.getRewardBalancesMetadata(this._comptroller.address, this._auriFairLaunch.address, userAddress, [AurPlyPid]));
3081
3067
  promises.push(this._tokenLock.lockedAmounts(userAddress));
3082
- _context2.next = 27;
3068
+ _context2.next = 26;
3083
3069
  return Promise.all(promises);
3084
3070
 
3085
- case 27:
3071
+ case 26:
3086
3072
  values = _context2.sent;
3087
3073
  accountLiquidity = values[0];
3088
3074
  rewardBalancesMetadata = values[1];
3089
3075
  lockedAmount = values[2];
3090
3076
  borrowedvaluation = totalBorrowLimit.minus(new BigNumber(accountLiquidity[1].toString()).div(decimalFactor(18)));
3091
3077
  bufferedBorrowLimit = totalBorrowLimit.multipliedBy(BORROW_LIMIT_BUFFER);
3078
+ minimumBorrowLimitAllowed = borrowedvaluation.div(BORROW_LIMIT_BUFFER);
3092
3079
 
3093
3080
  if (bufferedBorrowLimit.lte(borrowedvaluation)) {
3094
3081
  borrowableAmount = new BigNumber(0);
@@ -3099,7 +3086,8 @@ var SdkRead = /*#__PURE__*/function (_BlockchainEntityRead) {
3099
3086
  for (i = 0; i < marketCount; i++) {
3100
3087
  auToken = networkAddresses.auTokens[i];
3101
3088
  moneyMarket = new MoneyMarketRead(this._networkConnection, auToken.address, auToken.underlying);
3102
- userMarketDetails[i].maxWithdrawableAmount = new TokenAmount(moneyMarket.underlying, borrowableAmount.div(underlyingPrices[i]).toFixed(18));
3089
+ maxWithdrawCap = totalBorrowLimit.minus(minimumBorrowLimitAllowed).div(userMarketDetails[i].collateralRatio).div(underlyingPrices[i]);
3090
+ userMarketDetails[i].maxWithdrawableAmount = userMarketDetails[i].isCollateral && maxWithdrawCap.lt(userMarketDetails[i].depositBalance.formattedAmount()) ? new TokenAmount(moneyMarket.underlying, maxWithdrawCap.toFixed(24), false) : new TokenAmount(moneyMarket.underlying, userMarketDetails[i].depositBalance.rawAmount());
3103
3091
  }
3104
3092
 
3105
3093
  return _context2.abrupt("return", {
@@ -3239,6 +3227,18 @@ var SdkRead = /*#__PURE__*/function (_BlockchainEntityRead) {
3239
3227
  return stakeBalanceOf;
3240
3228
  }();
3241
3229
 
3230
+ _proto.calcHypotheticalStats = function calcHypotheticalStats(args) {
3231
+ var deltaBorrowLimit = new BigNumber(args.userMarketDetail.depositBalance.formattedAmount()).multipliedBy(args.userMarketDetail.underlyingPrice).multipliedBy(args.userMarketDetail.collateralRatio).multipliedBy(BORROW_LIMIT_BUFFER);
3232
+ var newBorrowLimit = args.isEnable ? new BigNumber(args.currentBorrowLimit.amount).plus(deltaBorrowLimit) : new BigNumber(args.currentBorrowLimit.amount).minus(deltaBorrowLimit);
3233
+ return {
3234
+ newBorrowLimit: {
3235
+ amount: newBorrowLimit.toFixed(DECIMAL_PRECISION),
3236
+ currency: "USD"
3237
+ },
3238
+ newBorrowUtilization: new BigNumber(args.currentBorrowValuation.amount).div(newBorrowLimit).toNumber()
3239
+ };
3240
+ };
3241
+
3242
3242
  return SdkRead;
3243
3243
  }(BlockchainEntityRead);
3244
3244
  var SdkReadWrite = /*#__PURE__*/function (_SdkRead) {
@@ -3334,8 +3334,8 @@ var SDK = /*#__PURE__*/function (_BlockchainEntity) {
3334
3334
  return new SdkRead(networkConnection);
3335
3335
  };
3336
3336
 
3337
- SDK.defaultProvider = function defaultProvider() {
3338
- return new ethers$1.providers.JsonRpcProvider(AVAX_DEFAULT_PROVIDER_URL);
3337
+ _proto3.readWrite = function readWrite(networkConnection) {
3338
+ return new SdkReadWrite(networkConnection);
3339
3339
  };
3340
3340
 
3341
3341
  return SDK;
@@ -3354,8 +3354,9 @@ var dummyUserMarketDetails = {
3354
3354
  depositBalance: dummyTokenAmount2,
3355
3355
  borrowBalance: dummyZeroTokenAmount,
3356
3356
  isCollateral: true,
3357
- maxWithdrawableAmount: dummyTokenAmount
3357
+ maxWithdrawableAmount: dummyTokenAmount,
3358
+ collateralRatio: 0.5
3358
3359
  };
3359
3360
 
3360
- 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 };
3361
+ export { AURORA_CHAINID, AURPLYToken, 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 };
3361
3362
  //# sourceMappingURL=sdk.esm.js.map