@aurigami/sdk 0.3.2 → 0.4.0
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 +7 -1
- package/dist/constants.d.ts +1 -1
- package/dist/priceFetcher.d.ts +4 -1
- package/dist/sdk.cjs.development.js +48 -36
- package/dist/sdk.cjs.development.js.map +1 -1
- package/dist/sdk.cjs.production.min.js +1 -1
- package/dist/sdk.cjs.production.min.js.map +1 -1
- package/dist/sdk.esm.js +48 -36
- package/dist/sdk.esm.js.map +1 -1
- package/dist/types.d.ts +6 -0
- package/package.json +2 -1
- package/src/MoneyMarket.ts +1 -1
- package/src/SDK.ts +35 -14
- package/src/constants.ts +4 -1
- package/src/dummy.ts +1 -0
- package/src/priceFetcher.ts +7 -5
- package/src/types.ts +9 -2
package/dist/SDK.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { BlockchainEntity, BlockchainEntityRead } from './BlockchainEntity';
|
|
2
|
-
import { LockingDetails, PlyAuroraPoolDetails, NetworkConnection, UserDetails, CurrencyAmount } from './types';
|
|
2
|
+
import { LockingDetails, PlyAuroraPoolDetails, NetworkConnection, UserDetails, UserMarketDetails, CurrencyAmount, HypotheticalStats } from './types';
|
|
3
3
|
import { TransactionResponse } from '@ethersproject/abstract-provider';
|
|
4
4
|
import { Contract, providers } from 'ethers';
|
|
5
5
|
import { AuriFairLaunch, Comptroller, TokenLock } from '@aurigami/contracts/typechain';
|
|
@@ -16,6 +16,12 @@ 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: {
|
|
20
|
+
userMarketDetail: UserMarketDetails;
|
|
21
|
+
currentBorrowLimit: CurrencyAmount;
|
|
22
|
+
currentBorrowValuation: CurrencyAmount;
|
|
23
|
+
isEnable: boolean;
|
|
24
|
+
}): HypotheticalStats;
|
|
19
25
|
}
|
|
20
26
|
export declare class SdkReadWrite extends SdkRead {
|
|
21
27
|
claim(): Promise<TransactionResponse>;
|
package/dist/constants.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import BigNumber from 'bignumber.js';
|
|
|
2
2
|
import { Signer } from 'ethers';
|
|
3
3
|
export declare const AVAX_DEFAULT_PROVIDER_URL = "https://api.avax.network/ext/bc/C/rpc";
|
|
4
4
|
export declare const AVAX_DEFAULT_PROVIDER: any;
|
|
5
|
-
export declare const AURORA_DEFAULT_PROVIDER_URL
|
|
5
|
+
export declare const AURORA_DEFAULT_PROVIDER_URL: string;
|
|
6
6
|
export declare const AURORA_DEFAULT_PROVIDER: any;
|
|
7
7
|
export declare const dummyAddress: string;
|
|
8
8
|
export declare const ETHAddress: string;
|
package/dist/priceFetcher.d.ts
CHANGED
|
@@ -13,6 +13,9 @@ export declare function fetchLPPositions(LPAddress: Address, provider: providers
|
|
|
13
13
|
}>;
|
|
14
14
|
export declare function fetchLPPrice(address: Address, provider: providers.Provider): Promise<BigNumber>;
|
|
15
15
|
export declare function fetchPriceFromOracle(auTokenAddress: Address, underlyingDecimal: number, provider: providers.Provider): Promise<BigNumber>;
|
|
16
|
-
export declare function fetchUnderlyingTokensPrices(provider: providers.Provider): Promise<
|
|
16
|
+
export declare function fetchUnderlyingTokensPrices(provider: providers.Provider): Promise<{
|
|
17
|
+
auToken: string;
|
|
18
|
+
underlyingPrice: BigNumber;
|
|
19
|
+
}[]>;
|
|
17
20
|
export declare function fetchPrice(address: Address, provider: providers.Provider): Promise<BigNumber>;
|
|
18
21
|
export declare function fetchValuation(tokenAmount: TokenAmount, provider: providers.Provider, price?: BigNumber): Promise<BigNumber>;
|
|
@@ -6,11 +6,13 @@ function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'defau
|
|
|
6
6
|
|
|
7
7
|
var abstractSigner = require('@ethersproject/abstract-signer');
|
|
8
8
|
var BigNumber = _interopDefault(require('bignumber.js'));
|
|
9
|
+
var dotenv = require('dotenv');
|
|
9
10
|
var ethers$1 = require('ethers');
|
|
10
11
|
var AuErc20ABI = _interopDefault(require('@aurigami/contracts/artifacts/contracts/AuErc20.sol/AuErc20.json'));
|
|
11
12
|
var AuETHABI = _interopDefault(require('@aurigami/contracts/artifacts/contracts/AuETH.sol/AuETH.json'));
|
|
12
13
|
var ComptrollerABI = _interopDefault(require('@aurigami/contracts/artifacts/contracts/Comptroller.sol/Comptroller.json'));
|
|
13
14
|
var AuriLensABI = _interopDefault(require('@aurigami/contracts/artifacts/contracts/AuriLens.sol/AuriLens.json'));
|
|
15
|
+
var axios = _interopDefault(require('axios'));
|
|
14
16
|
var TokenLockABI = _interopDefault(require('@aurigami/contracts/artifacts/contracts/TokenLock.sol/TokenLock.json'));
|
|
15
17
|
var AuriFairLaunchABI = _interopDefault(require('@aurigami/contracts/artifacts/contracts/AuriFairLaunch.sol/AuriFairLaunch.json'));
|
|
16
18
|
|
|
@@ -897,10 +899,10 @@ var BlockchainEntity = /*#__PURE__*/function () {
|
|
|
897
899
|
}();
|
|
898
900
|
|
|
899
901
|
var ethers = /*#__PURE__*/require('ethers');
|
|
900
|
-
|
|
902
|
+
dotenv.config();
|
|
901
903
|
var AVAX_DEFAULT_PROVIDER_URL = 'https://api.avax.network/ext/bc/C/rpc';
|
|
902
904
|
var AVAX_DEFAULT_PROVIDER = /*#__PURE__*/new ethers.providers.JsonRpcProvider(AVAX_DEFAULT_PROVIDER_URL);
|
|
903
|
-
var AURORA_DEFAULT_PROVIDER_URL = "https://mainnet.aurora.dev";
|
|
905
|
+
var AURORA_DEFAULT_PROVIDER_URL = "https://mainnet.aurora.dev/" + process.env.AURORA_API_KEY;
|
|
904
906
|
var AURORA_DEFAULT_PROVIDER = /*#__PURE__*/new ethers.providers.JsonRpcProvider(AURORA_DEFAULT_PROVIDER_URL);
|
|
905
907
|
var dummyAddress = "0xDEADbeEfEEeEEEeEEEeEEeeeeeEeEEeeeeEEEEeE";
|
|
906
908
|
var ETHAddress = "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE";
|
|
@@ -2009,14 +2011,6 @@ var IUniswapV2PairABI = {
|
|
|
2009
2011
|
deployedLinkReferences: deployedLinkReferences
|
|
2010
2012
|
};
|
|
2011
2013
|
|
|
2012
|
-
var abi$2 = [
|
|
2013
|
-
];
|
|
2014
|
-
var dummyABI = {
|
|
2015
|
-
abi: abi$2
|
|
2016
|
-
};
|
|
2017
|
-
|
|
2018
|
-
var axios = /*#__PURE__*/require('axios');
|
|
2019
|
-
|
|
2020
2014
|
function fetchPriceFromCoingeckoAPI(_x) {
|
|
2021
2015
|
return _fetchPriceFromCoingeckoAPI.apply(this, arguments);
|
|
2022
2016
|
}
|
|
@@ -2214,7 +2208,7 @@ function _fetchUnderlyingTokensPrices() {
|
|
|
2214
2208
|
while (1) {
|
|
2215
2209
|
switch (_context6.prev = _context6.next) {
|
|
2216
2210
|
case 0:
|
|
2217
|
-
auriLens = new ethers$1.Contract(networkAddresses.misc.AURILENS,
|
|
2211
|
+
auriLens = new ethers$1.Contract(networkAddresses.misc.AURILENS, AuriLensABI.abi, provider);
|
|
2218
2212
|
auTokenAddresses = networkAddresses.auTokens.map(function (auToken) {
|
|
2219
2213
|
return auToken.address;
|
|
2220
2214
|
});
|
|
@@ -2956,11 +2950,10 @@ var SdkRead = /*#__PURE__*/function (_BlockchainEntityRead) {
|
|
|
2956
2950
|
while (1) {
|
|
2957
2951
|
switch (_context.prev = _context.next) {
|
|
2958
2952
|
case 0:
|
|
2959
|
-
|
|
2960
|
-
_context.next = 3;
|
|
2953
|
+
_context.next = 2;
|
|
2961
2954
|
return getCurrentTimestamp(this._networkConnection.provider);
|
|
2962
2955
|
|
|
2963
|
-
case
|
|
2956
|
+
case 2:
|
|
2964
2957
|
currentTime = _context.sent;
|
|
2965
2958
|
currentWeek = ethers$1.BigNumber.from(currentTime - REWARDCLAIMSTART).div(7 * ONE_DAY).toNumber();
|
|
2966
2959
|
denominator = 10000;
|
|
@@ -2969,14 +2962,14 @@ var SdkRead = /*#__PURE__*/function (_BlockchainEntityRead) {
|
|
|
2969
2962
|
promises.push(this._tokenLock.percentageLock(currentWeek + 1)["catch"](function (err) {
|
|
2970
2963
|
return denominator;
|
|
2971
2964
|
}));
|
|
2972
|
-
_context.next =
|
|
2965
|
+
_context.next = 10;
|
|
2973
2966
|
return Promise.all(promises).then(function (res) {
|
|
2974
2967
|
return res.map(function (v) {
|
|
2975
2968
|
return v.toString();
|
|
2976
2969
|
});
|
|
2977
2970
|
});
|
|
2978
2971
|
|
|
2979
|
-
case
|
|
2972
|
+
case 10:
|
|
2980
2973
|
values = _context.sent;
|
|
2981
2974
|
return _context.abrupt("return", {
|
|
2982
2975
|
vestingStart: REWARDCLAIMSTART,
|
|
@@ -2984,7 +2977,7 @@ var SdkRead = /*#__PURE__*/function (_BlockchainEntityRead) {
|
|
|
2984
2977
|
nextUnlockPortion: new BigNumber(denominator).minus(values[1]).div(denominator).toNumber()
|
|
2985
2978
|
});
|
|
2986
2979
|
|
|
2987
|
-
case
|
|
2980
|
+
case 12:
|
|
2988
2981
|
case "end":
|
|
2989
2982
|
return _context.stop();
|
|
2990
2983
|
}
|
|
@@ -3003,7 +2996,7 @@ var SdkRead = /*#__PURE__*/function (_BlockchainEntityRead) {
|
|
|
3003
2996
|
var _getUserDetails = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee2(userAddress) {
|
|
3004
2997
|
var _this2 = this;
|
|
3005
2998
|
|
|
3006
|
-
var marketCount, userMarketDetails, assetsIn,
|
|
2999
|
+
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;
|
|
3007
3000
|
|
|
3008
3001
|
return runtime_1.wrap(function _callee2$(_context2) {
|
|
3009
3002
|
while (1) {
|
|
@@ -3011,7 +3004,6 @@ var SdkRead = /*#__PURE__*/function (_BlockchainEntityRead) {
|
|
|
3011
3004
|
case 0:
|
|
3012
3005
|
marketCount = networkAddresses.auTokens.length;
|
|
3013
3006
|
userMarketDetails = [];
|
|
3014
|
-
collateralRatio = new Array(marketCount);
|
|
3015
3007
|
promises = [];
|
|
3016
3008
|
totalBorrowLimit = new BigNumber(0);
|
|
3017
3009
|
pricePromises = [];
|
|
@@ -3029,9 +3021,12 @@ var SdkRead = /*#__PURE__*/function (_BlockchainEntityRead) {
|
|
|
3029
3021
|
userMarketDetail.borrowBalance = res;
|
|
3030
3022
|
}));
|
|
3031
3023
|
promises.push(moneyMarket.getCollateralRatio().then(function (res) {
|
|
3032
|
-
collateralRatio
|
|
3024
|
+
userMarketDetail.collateralRatio = res.toNumber();
|
|
3025
|
+
}));
|
|
3026
|
+
pricePromises.push(fetchPrice(moneyMarket.underlying.address, _this2._networkConnection.provider).then(function (res) {
|
|
3027
|
+
userMarketDetail.underlyingPrice = res.toString();
|
|
3028
|
+
return res;
|
|
3033
3029
|
}));
|
|
3034
|
-
pricePromises.push(fetchPrice(moneyMarket.underlying.address, _this2._networkConnection.provider));
|
|
3035
3030
|
};
|
|
3036
3031
|
|
|
3037
3032
|
for (_iterator = _createForOfIteratorHelperLoose(networkAddresses.auTokens); !(_step = _iterator()).done;) {
|
|
@@ -3041,24 +3036,26 @@ var SdkRead = /*#__PURE__*/function (_BlockchainEntityRead) {
|
|
|
3041
3036
|
promises.push(this._comptroller.getAssetsIn(userAddress).then(function (res) {
|
|
3042
3037
|
assetsIn = res;
|
|
3043
3038
|
}));
|
|
3044
|
-
_context2.next =
|
|
3039
|
+
_context2.next = 10;
|
|
3045
3040
|
return Promise.all(promises);
|
|
3046
3041
|
|
|
3047
|
-
case
|
|
3048
|
-
_context2.next =
|
|
3042
|
+
case 10:
|
|
3043
|
+
_context2.next = 12;
|
|
3049
3044
|
return Promise.all(pricePromises);
|
|
3050
3045
|
|
|
3051
|
-
case
|
|
3046
|
+
case 12:
|
|
3052
3047
|
underlyingPrices = _context2.sent;
|
|
3053
3048
|
depositValuationPromises = [];
|
|
3054
3049
|
|
|
3055
3050
|
_loop = function _loop() {
|
|
3056
3051
|
var auToken = networkAddresses.auTokens[i];
|
|
3057
3052
|
|
|
3058
|
-
if (assetsIn.
|
|
3059
|
-
isSameAddress(auToken.address, auAddress);
|
|
3060
|
-
})
|
|
3053
|
+
if (assetsIn.find(function (auAddress) {
|
|
3054
|
+
return isSameAddress(auToken.address, auAddress);
|
|
3055
|
+
}) !== undefined) {
|
|
3061
3056
|
userMarketDetails[i].isCollateral = true;
|
|
3057
|
+
} else {
|
|
3058
|
+
userMarketDetails[i].isCollateral = false;
|
|
3062
3059
|
}
|
|
3063
3060
|
|
|
3064
3061
|
depositValuationPromises.push(fetchValuation(userMarketDetails[i].depositBalance, _this2._networkConnection.provider, underlyingPrices[i]));
|
|
@@ -3068,29 +3065,30 @@ var SdkRead = /*#__PURE__*/function (_BlockchainEntityRead) {
|
|
|
3068
3065
|
_loop();
|
|
3069
3066
|
}
|
|
3070
3067
|
|
|
3071
|
-
_context2.next =
|
|
3068
|
+
_context2.next = 18;
|
|
3072
3069
|
return Promise.all(depositValuationPromises);
|
|
3073
3070
|
|
|
3074
|
-
case
|
|
3071
|
+
case 18:
|
|
3075
3072
|
depositValues = _context2.sent;
|
|
3076
3073
|
totalBorrowLimit = depositValues.reduce(function (p, v, index) {
|
|
3077
|
-
if (userMarketDetails[index].isCollateral) return p.plus(v.multipliedBy(
|
|
3074
|
+
if (userMarketDetails[index].isCollateral) return p.plus(v.multipliedBy(userMarketDetails[index].collateralRatio));
|
|
3078
3075
|
return p;
|
|
3079
|
-
});
|
|
3076
|
+
}, new BigNumber(0));
|
|
3080
3077
|
promises = [];
|
|
3081
3078
|
promises.push(this._comptroller.getAccountLiquidity(userAddress));
|
|
3082
3079
|
promises.push(this._auriLens.callStatic.getRewardBalancesMetadata(this._comptroller.address, this._auriFairLaunch.address, userAddress, [AurPlyPid]));
|
|
3083
3080
|
promises.push(this._tokenLock.lockedAmounts(userAddress));
|
|
3084
|
-
_context2.next =
|
|
3081
|
+
_context2.next = 26;
|
|
3085
3082
|
return Promise.all(promises);
|
|
3086
3083
|
|
|
3087
|
-
case
|
|
3084
|
+
case 26:
|
|
3088
3085
|
values = _context2.sent;
|
|
3089
3086
|
accountLiquidity = values[0];
|
|
3090
3087
|
rewardBalancesMetadata = values[1];
|
|
3091
3088
|
lockedAmount = values[2];
|
|
3092
3089
|
borrowedvaluation = totalBorrowLimit.minus(new BigNumber(accountLiquidity[1].toString()).div(decimalFactor(18)));
|
|
3093
3090
|
bufferedBorrowLimit = totalBorrowLimit.multipliedBy(BORROW_LIMIT_BUFFER);
|
|
3091
|
+
minimumBorrowLimitAllowed = borrowedvaluation.div(BORROW_LIMIT_BUFFER);
|
|
3094
3092
|
|
|
3095
3093
|
if (bufferedBorrowLimit.lte(borrowedvaluation)) {
|
|
3096
3094
|
borrowableAmount = new BigNumber(0);
|
|
@@ -3101,7 +3099,8 @@ var SdkRead = /*#__PURE__*/function (_BlockchainEntityRead) {
|
|
|
3101
3099
|
for (i = 0; i < marketCount; i++) {
|
|
3102
3100
|
auToken = networkAddresses.auTokens[i];
|
|
3103
3101
|
moneyMarket = new MoneyMarketRead(this._networkConnection, auToken.address, auToken.underlying);
|
|
3104
|
-
|
|
3102
|
+
maxWithdrawCap = totalBorrowLimit.minus(minimumBorrowLimitAllowed).div(userMarketDetails[i].collateralRatio).div(underlyingPrices[i]);
|
|
3103
|
+
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());
|
|
3105
3104
|
}
|
|
3106
3105
|
|
|
3107
3106
|
return _context2.abrupt("return", {
|
|
@@ -3241,6 +3240,18 @@ var SdkRead = /*#__PURE__*/function (_BlockchainEntityRead) {
|
|
|
3241
3240
|
return stakeBalanceOf;
|
|
3242
3241
|
}();
|
|
3243
3242
|
|
|
3243
|
+
_proto.calcHypotheticalStats = function calcHypotheticalStats(args) {
|
|
3244
|
+
var deltaBorrowLimit = new BigNumber(args.userMarketDetail.depositBalance.formattedAmount()).multipliedBy(args.userMarketDetail.underlyingPrice).multipliedBy(args.userMarketDetail.collateralRatio).multipliedBy(BORROW_LIMIT_BUFFER);
|
|
3245
|
+
var newBorrowLimit = args.isEnable ? new BigNumber(args.currentBorrowLimit.amount).plus(deltaBorrowLimit) : new BigNumber(args.currentBorrowLimit.amount).minus(deltaBorrowLimit);
|
|
3246
|
+
return {
|
|
3247
|
+
newBorrowLimit: {
|
|
3248
|
+
amount: newBorrowLimit.toFixed(DECIMAL_PRECISION),
|
|
3249
|
+
currency: "USD"
|
|
3250
|
+
},
|
|
3251
|
+
newBorrowUtilization: new BigNumber(args.currentBorrowValuation.amount).div(newBorrowLimit).toNumber()
|
|
3252
|
+
};
|
|
3253
|
+
};
|
|
3254
|
+
|
|
3244
3255
|
return SdkRead;
|
|
3245
3256
|
}(BlockchainEntityRead);
|
|
3246
3257
|
var SdkReadWrite = /*#__PURE__*/function (_SdkRead) {
|
|
@@ -3356,7 +3367,8 @@ var dummyUserMarketDetails = {
|
|
|
3356
3367
|
depositBalance: dummyTokenAmount2,
|
|
3357
3368
|
borrowBalance: dummyZeroTokenAmount,
|
|
3358
3369
|
isCollateral: true,
|
|
3359
|
-
maxWithdrawableAmount: dummyTokenAmount
|
|
3370
|
+
maxWithdrawableAmount: dummyTokenAmount,
|
|
3371
|
+
collateralRatio: 0.5
|
|
3360
3372
|
};
|
|
3361
3373
|
|
|
3362
3374
|
exports.AURORA_CHAINID = AURORA_CHAINID;
|