UNPKG

@aave/protocol-js

Version:

Aave protocol data aggregation tool

1 lines • 135 kB
"use strict";function e(e){return e&&"object"==typeof e&&"default"in e?e.default:e}Object.defineProperty(exports,"__esModule",{value:!0});var t=require("bignumber.js"),n=e(t),r=require("tslib"),a=require("ethers");require("reflect-metadata");var i=require("ethers/lib/utils"),o=e(require("axios"));function s(e,t,n,r,a,i,o){try{var s=e[i](o),u=s.value}catch(e){return void n(e)}s.done?t(u):Promise.resolve(u).then(r,a)}function u(e){return function(){var t=this,n=arguments;return new Promise((function(r,a){var i=e.apply(t,n);function o(e){s(i,r,a,o,u,"next",e)}function u(e){s(i,r,a,o,u,"throw",e)}o(void 0)}))}}function p(){return(p=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e}).apply(this,arguments)}function l(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}function d(e,t){if(null==e)return{};var n,r,a={},i=Object.keys(e);for(r=0;r<i.length;r++)t.indexOf(n=i[r])>=0||(a[n]=e[n]);return a}var c=n.clone({DECIMAL_PLACES:0,ROUNDING_MODE:n.ROUND_DOWN});function y(e){return new n(e)}function m(e){return new c(e)}var f=new n(10),T={};function g(e){return T[e]||(T[e]=f.pow(e)),T[e]}function v(e,t){return h(e,t).toString(10)}function h(e,t){return y(e).dividedBy(g(t))}var _,b=m(10).pow(18),x=b.dividedBy(2),w=m(10).pow(27),A=w.dividedBy(2),E=m(10).pow(9);function C(e,t){return A.plus(m(e).multipliedBy(t)).div(w)}function S(e,t){return m(t).div(2).plus(m(e).multipliedBy(w)).div(t)}function B(e){return m(E).div(2).plus(e).div(E)}function P(e){return m(e).multipliedBy(E).decimalPlaces(0)}function D(e,t){var n=m(e),r=m(t),a=r.modulo(2).eq(0)?m(w):n;for(r=r.div(2);!r.eq(0);r=r.div(2))n=C(n,n),r.modulo(2).eq(0)||(a=C(a,n));return a}function R(e,t){var n=m(e),r=m(t);if(r.eq(0))return w;var a=r.minus(1),i=r.gt(2)?r.minus(2):0,o=C(n,n),s=C(o,n),u=r.multipliedBy(n),p=r.multipliedBy(a).multipliedBy(o).div(2),l=r.multipliedBy(a).multipliedBy(i).multipliedBy(s).div(6);return w.plus(u).plus(p).plus(l)}!function(e){e.None="None",e.Stable="Stable",e.Variable="Variable"}(_||(_={}));var k=y("31536000");function O(e,t,n){var r=m(t-n);return R(m(e).dividedBy(k),r)}function I(e,t,n,r,a){var i=m(e);if(i.eq("0"))return i;var o=C(O(n,a,r),t);return B(C(P(i),o))}var N=function(e,t,n){return C(e,S(P(m(t-n)),P(k))).plus(w)};function L(e,t,n,r){return m(e).eq("0")?m(t):C(N(e,r,n),t)}function V(e,t,n,r,a){return B(C(P(e),L(n,t,r,a)))}function M(e,t,n,r){var a=m(e);if(a.eq("0"))return a;var i=O(t,r,n);return B(C(P(a),i))}function U(e,t,n){return y(t).eq(0)?y("-1"):y(e).multipliedBy(n).dividedBy(g(4)).div(t)}function H(e,t,n){if(m(n).eq(0))return m("0");var r=m(e).multipliedBy(n).dividedBy(g(4)).minus(t);return r.gt("0")?r:m("0")}function F(e,t,n,r){return y(t).dividedBy(e).minus("1").dividedBy(r-n).multipliedBy(k).toString()}function G(e,t,n){var r,a=m(t.principalBorrows);return a.eq("0")?m("0"):(r=t.borrowRateMode===_.Variable?S(C(q(e.variableBorrowRate,n,e.lastUpdateTimestamp),e.variableBorrowIndex),t.variableBorrowIndex):q(t.borrowRate,n,t.lastUpdateTimestamp),B(C(P(a),r)))}var q=function(e,t,n){var r=m(t-n);return R(m(e).dividedBy(k),r)};function W(e,t,n,r){return y(t).eq(0)?y("-1"):y(e).multipliedBy(r).dividedBy(100).div(y(t).plus(n))}function j(e,t,n,r){if(m(r).eq(0))return m("0");var a=m(e).multipliedBy(r).dividedBy(100);if(a.lt(t))return m("0");var i=(a=a.minus(t).minus(n)).multipliedBy("0.0025");return a.minus(i)}function K(e,t,n,r){return B(S(C(P(e),L(n.liquidityRate,n.liquidityIndex,n.lastUpdateTimestamp,r)),t.userBalanceIndex))}function Y(e,t,n){return"0"===e.principalATokenBalance&&"0"===e.redirectedBalance?m("0"):"0x0000000000000000000000000000000000000000"!==e.interestRedirectionAddress?m(e.principalATokenBalance).plus(K(e.redirectedBalance,e,t,n).minus(e.redirectedBalance)):K(y(e.redirectedBalance).plus(e.principalATokenBalance).toString(),e,t,n).minus(e.redirectedBalance)}function X(e,t,r,a,i){var o=m("0"),s=m("0"),u=m("0"),l=m("0"),d=y("0"),c=y("0"),f=t.map((function(t){var n=e.find((function(e){return e.id===t.reserve.id}));if(!n)throw new Error("Reserve is not registered on platform, please contact support");var r=function(e,t,n,r){var a=e.price.priceInEth,i=e.decimals,o=Y(t,e,r),s=o.multipliedBy(a).dividedBy(g(i)),u=s.multipliedBy(g(10)).dividedBy(n).toFixed(0),l=m(t.principalBorrows).multipliedBy(a).dividedBy(g(i)),d=l.multipliedBy(g(10)).dividedBy(n).toFixed(0),c=G(e,t,r),y=c.multipliedBy(a).dividedBy(g(i)),f=y.multipliedBy(g(10)).dividedBy(n).toFixed(0),T=m(t.originationFee).multipliedBy(a).dividedBy(g(i));return p({},t,{principalBorrowsUSD:d,currentBorrowsUSD:f,originationFeeUSD:T.multipliedBy(g(10)).dividedBy(n).toFixed(0),currentUnderlyingBalanceUSD:u,originationFeeETH:T.toString(),currentBorrows:c.toString(),currentBorrowsETH:y.toString(),principalBorrowsETH:l.toString(),currentUnderlyingBalance:o.toFixed(),currentUnderlyingBalanceETH:s.toFixed()})}(n,t,a,i);return o=o.plus(r.currentUnderlyingBalanceETH),u=u.plus(r.currentBorrowsETH),l=l.plus(r.originationFeeETH),n.usageAsCollateralEnabled&&t.usageAsCollateralEnabledOnUser&&(s=s.plus(r.currentUnderlyingBalanceETH),d=d.plus(y(r.currentUnderlyingBalanceETH).multipliedBy(n.baseLTVasCollateral)),c=c.plus(y(r.currentUnderlyingBalanceETH).multipliedBy(n.reserveLiquidationThreshold))),r})).sort((function(e,t){return e.reserve.symbol>t.reserve.symbol?1:e.reserve.symbol<t.reserve.symbol?-1:0}));d.gt(0)&&(d=d.div(s).decimalPlaces(0,n.ROUND_DOWN)),c.gt(0)&&(c=c.div(s).decimalPlaces(0,n.ROUND_DOWN));var T=W(s,u,l,c),v=s.multipliedBy(g(10)).dividedBy(a).toString(),h=o.multipliedBy(g(10)).dividedBy(a).toString(),_=u.multipliedBy(g(10)).dividedBy(a).toString(),b=l.multipliedBy(g(10)).dividedBy(a),x=l.plus(u),w=b.plus(_),A=j(s,u,l,d),E=u.plus(l),C=o.minus(E.eq(0)?"0":E.multipliedBy(100).dividedBy(c));return{totalLiquidityUSD:h,totalCollateralUSD:v,totalBorrowsUSD:_,id:r,totalLiquidityETH:o.toString(),totalCollateralETH:s.toString(),totalFeesETH:l.toString(),totalBorrowsETH:u.toString(),availableBorrowsETH:A.toString(),currentLoanToValue:d.toString(),currentLiquidationThreshold:c.toString(),maxAmountToWithdrawInEth:C.toString(),healthFactor:T.toString(),reservesData:f,totalFeesUSD:b.toString(),totalBorrowsWithFeesETH:x.toString(),totalBorrowsWithFeesUSD:w.toString()}}var Q={__proto__:null,getCompoundedBorrowBalance:G,calculateCompoundedInterest:q,calculateHealthFactorFromBalances:W,calculateHealthFactorFromBalancesBigUnits:function(e,t,r,a){return W(e,t,r,new n(a).multipliedBy(100).decimalPlaces(0,n.ROUND_DOWN))},calculateAvailableBorrowsETH:j,calculateCumulatedBalance:K,calculateCurrentUnderlyingBalance:Y,computeRawUserSummaryData:X,formatUserSummaryData:function(e,t,n,r,a){var i=X(e,t,n,r,a),o=i.reservesData.map((function(e){var t=e.reserve,n=d(e,["reserve"]),r=t.decimals;return p({},n,{reserve:p({},t,{reserveLiquidationBonus:v(y(t.reserveLiquidationBonus).minus(100),2),liquidityRate:v(t.liquidityRate,27)}),redirectedBalance:v(n.redirectedBalance,r),principalATokenBalance:v(n.principalATokenBalance,r),borrowRate:v(n.borrowRate,27),lastUpdateTimestamp:n.lastUpdateTimestamp,variableBorrowIndex:v(n.variableBorrowIndex,27),userBalanceIndex:v(n.userBalanceIndex,27),currentUnderlyingBalance:v(n.currentUnderlyingBalance,r),currentUnderlyingBalanceETH:v(n.currentUnderlyingBalanceETH,18),currentUnderlyingBalanceUSD:v(n.currentUnderlyingBalanceUSD,10),principalBorrows:v(n.principalBorrows,r),principalBorrowsETH:v(n.principalBorrowsETH,18),principalBorrowsUSD:v(n.principalBorrowsUSD,10),currentBorrows:v(n.currentBorrows,r),currentBorrowsETH:v(n.currentBorrowsETH,18),currentBorrowsUSD:v(n.currentBorrowsUSD,10),originationFee:v(n.originationFee,r),originationFeeETH:v(n.originationFeeETH,18),originationFeeUSD:v(n.originationFeeUSD,10)})}));return{id:i.id,reservesData:o,totalLiquidityETH:v(i.totalLiquidityETH,18),totalLiquidityUSD:v(i.totalLiquidityUSD,10),totalCollateralETH:v(i.totalCollateralETH,18),totalCollateralUSD:v(i.totalCollateralUSD,10),totalFeesETH:v(i.totalFeesETH,18),totalFeesUSD:v(i.totalFeesUSD,10),totalBorrowsETH:v(i.totalBorrowsETH,18),totalBorrowsUSD:v(i.totalBorrowsUSD,10),totalBorrowsWithFeesETH:v(i.totalBorrowsWithFeesETH,18),totalBorrowsWithFeesUSD:v(i.totalBorrowsWithFeesUSD,10),availableBorrowsETH:v(i.availableBorrowsETH,18),currentLoanToValue:v(i.currentLoanToValue,2),currentLiquidationThreshold:v(i.currentLiquidationThreshold,2),maxAmountToWithdrawInEth:v(i.maxAmountToWithdrawInEth,18),healthFactor:i.healthFactor}},formatReserves:function(e,t){return e.map((function(e){var n,r,a=null==t?void 0:null==(n=t.find((function(t){return t.id===e.id})))?void 0:null==(r=n.paramsHistory)?void 0:r[0];return p({},e,{price:p({},e.price,{priceInEth:v(e.price.priceInEth,18)}),baseLTVasCollateral:v(e.baseLTVasCollateral,2),variableBorrowRate:v(e.variableBorrowRate,27),avg30DaysVariableBorrowRate:a?F(a.variableBorrowIndex,e.variableBorrowIndex,a.timestamp,e.lastUpdateTimestamp):void 0,avg30DaysLiquidityRate:a?F(a.liquidityIndex,e.liquidityIndex,a.timestamp,e.lastUpdateTimestamp):void 0,stableBorrowRate:v(e.stableBorrowRate,27),liquidityRate:v(e.liquidityRate,27),totalLiquidity:v(e.totalLiquidity,e.decimals),availableLiquidity:v(e.availableLiquidity,e.decimals),liquidityIndex:v(e.liquidityIndex,27),reserveLiquidationThreshold:v(e.reserveLiquidationThreshold,2),reserveLiquidationBonus:v(y(e.reserveLiquidationBonus).minus(100),2),totalBorrows:v(e.totalBorrows,e.decimals),totalBorrowsVariable:v(e.totalBorrowsVariable,e.decimals),totalBorrowsStable:v(e.totalBorrowsStable,e.decimals),variableBorrowIndex:v(e.variableBorrowIndex,27)})}))},calculateInterestRates:function(e,t,n,r){void 0===r&&(r="variable");var a=e.optimalUtilisationRate,i=y(e.baseVariableBorrowRate),o=y(e.totalBorrowsStable).plus("stable"===r?n:"0"),s=y(e.totalBorrowsVariable).plus("variable"===r?n:"0"),u=o.plus(s),p=y(e.totalLiquidity).plus(t),l=p.eq(0)&&u.eq(0)?y(0):u.dividedBy(p),d=y(e.stableBorrowRate),c=y(0),m=y(0);if(l.gt(a)){var f=l.minus(a).dividedBy(y(1).minus(a));d=d.plus(e.stableRateSlope1).plus(f.multipliedBy(e.stableRateSlope2)),c=i.plus(e.variableRateSlope1).plus(f.multipliedBy(e.variableRateSlope2))}else d=c.plus(l.dividedBy(a).multipliedBy(e.stableRateSlope1)),c=i.plus(l.dividedBy(a).multipliedBy(e.variableRateSlope1));if(!u.eq(0)){var T=c.multipliedBy(s),g=y(e.averageStableBorrowRate).multipliedBy(o);m=T.plus(g).dividedBy(u)}return{variableBorrowRate:c.toString(),stableBorrowRate:d.toString(),liquidityRate:m.toString()}},get BorrowRateMode(){return _}};function z(e,t,n,r){var a=m(e).multipliedBy(t).dividedBy(g(n)),i=a.multipliedBy(g(10)).dividedBy(r).toFixed(0);return[a.toString(),i]}function J(e,t,r,a,i){var o=e.price.priceInEth,s=e.decimals,u=V(t.scaledATokenBalance,e.liquidityIndex,e.liquidityRate,e.lastUpdateTimestamp,a).toString(),l=z(u,o,s,r),d=l[0],c=l[1],y=I(t.scaledVariableDebt,e.variableBorrowIndex,e.variableBorrowRate,e.lastUpdateTimestamp,a).toString(),f=z(y,o,s,r),T=f[0],g=f[1],h=M(t.principalStableDebt,e.stableBorrowRate,t.stableBorrowLastUpdateTimestamp,a).toString(),_=z(h,o,s,r),b=_[0],x=_[1],A=re({totalScaledVariableDebt:e.totalScaledVariableDebt,variableBorrowIndex:e.variableBorrowIndex,variableBorrowRate:e.variableBorrowRate,totalPrincipalStableDebt:e.totalPrincipalStableDebt,averageStableRate:e.averageStableRate,availableLiquidity:e.availableLiquidity,stableDebtLastUpdateTimestamp:e.stableDebtLastUpdateTimestamp,lastUpdateTimestamp:e.lastUpdateTimestamp},a),E=A.totalLiquidity,C=A.totalStableDebt,B=A.totalVariableDebt,P=E.gt(0)?ie(t.scaledATokenBalance,e.aTokenIncentivesIndex,t.aTokenincentivesUserIndex,i.incentivePrecision,i.rewardTokenDecimals,e.aIncentivesLastUpdateTimestamp,e.aEmissionPerSecond,S(E,e.liquidityIndex),a,i.emissionEndTimestamp):"0",R=z(P,i.rewardTokenPriceEth,i.rewardTokenDecimals,r),O=R[0],N=R[1],L=B.gt(0)?ie(t.scaledVariableDebt,e.vTokenIncentivesIndex,t.vTokenincentivesUserIndex,i.incentivePrecision,i.rewardTokenDecimals,e.vIncentivesLastUpdateTimestamp,e.vEmissionPerSecond,new n(e.totalScaledVariableDebt),a,i.emissionEndTimestamp):"0",U=z(L,i.rewardTokenPriceEth,i.rewardTokenDecimals,r),H=U[0],F=U[1],G=C.gt(0)?ie(t.principalStableDebt,e.sTokenIncentivesIndex,t.sTokenincentivesUserIndex,i.incentivePrecision,i.rewardTokenDecimals,e.sIncentivesLastUpdateTimestamp,e.sEmissionPerSecond,new n(e.totalPrincipalStableDebt),a,i.emissionEndTimestamp):"0",q=z(G,i.rewardTokenPriceEth,i.rewardTokenDecimals,r),W=q[0],j=q[1],K=D(m(t.stableBorrowRate).dividedBy(k).plus(w),k).minus(w);return p({},t,{underlyingBalance:u,underlyingBalanceETH:d,underlyingBalanceUSD:c,variableBorrows:y,variableBorrowsETH:T,variableBorrowsUSD:g,stableBorrows:h,stableBorrowsETH:b,stableBorrowsUSD:x,totalBorrows:m(y).plus(h).toString(),totalBorrowsETH:m(T).plus(b).toString(),totalBorrowsUSD:m(g).plus(x).toString(),aTokenRewards:P,aTokenRewardsETH:O,aTokenRewardsUSD:N,vTokenRewards:L,vTokenRewardsETH:H,vTokenRewardsUSD:F,sTokenRewards:G,sTokenRewardsETH:W,sTokenRewardsUSD:j,totalRewards:m(P).plus(L).plus(G).toString(),totalRewardsETH:m(O).plus(H).plus(W).toString(),totalRewardsUSD:m(N).plus(F).plus(j).toString(),stableBorrowAPR:v(t.stableBorrowRate,27),stableBorrowAPY:v(K,27)})}function Z(e,t,r,a,i,o){var s=m("0"),u=m("0"),p=m("0"),l=y("0"),d=y("0"),c=y("0"),f=y("0"),T=y("0"),v=t.map((function(t){var n=e.find((function(e){return e.id===t.reserve.id}));if(!n)throw new Error("Reserve is not registered on platform, please contact support");var r=J(n,t,a,i,o);return c=c.plus(r.totalRewards),f=f.plus(r.totalRewardsETH),T=T.plus(r.totalRewardsUSD),s=s.plus(r.underlyingBalanceETH),p=p.plus(r.variableBorrowsETH).plus(r.stableBorrowsETH),n.usageAsCollateralEnabled&&t.usageAsCollateralEnabledOnUser&&(u=u.plus(r.underlyingBalanceETH),l=l.plus(y(r.underlyingBalanceETH).multipliedBy(n.baseLTVasCollateral)),d=d.plus(y(r.underlyingBalanceETH).multipliedBy(n.reserveLiquidationThreshold))),r})).sort((function(e,t){return e.reserve.symbol>t.reserve.symbol?1:e.reserve.symbol<t.reserve.symbol?-1:0}));l.gt(0)&&(l=l.div(u).decimalPlaces(0,n.ROUND_DOWN)),d.gt(0)&&(d=d.div(u).decimalPlaces(0,n.ROUND_DOWN));var h=U(u,p,d),_=u.multipliedBy(g(10)).dividedBy(a).toString(),b=s.multipliedBy(g(10)).dividedBy(a).toString(),x=p.multipliedBy(g(10)).dividedBy(a).toString(),w=H(u,p,l);return{totalLiquidityUSD:b,totalCollateralUSD:_,totalBorrowsUSD:x,totalRewards:c.toString(),totalRewardsETH:f.toString(),totalRewardsUSD:T.toString(),id:r,totalLiquidityETH:s.toString(),totalCollateralETH:u.toString(),totalBorrowsETH:p.toString(),availableBorrowsETH:w.toString(),currentLoanToValue:l.toString(),currentLiquidationThreshold:d.toString(),healthFactor:h.toString(),reservesData:v}}function $(e,t,n,r,a,i){var o=Z(e,t,n,r,a,i),s=o.reservesData.map((function(e){var t=e.reserve,n=d(e,["reserve"]),r=t.decimals,a=D(m(n.stableBorrowRate).dividedBy(k).plus(w),k).minus(w);return p({},n,{reserve:p({},t,{reserveLiquidationBonus:v(y(t.reserveLiquidationBonus).minus(g(4)),4)}),scaledATokenBalance:v(n.scaledATokenBalance,r),stableBorrowAPR:v(n.stableBorrowRate,27),stableBorrowAPY:v(a,27),variableBorrowIndex:v(n.variableBorrowIndex,27),underlyingBalance:v(n.underlyingBalance,r),underlyingBalanceETH:v(n.underlyingBalanceETH,18),underlyingBalanceUSD:v(n.underlyingBalanceUSD,10),stableBorrows:v(n.stableBorrows,r),stableBorrowsETH:v(n.stableBorrowsETH,18),stableBorrowsUSD:v(n.stableBorrowsUSD,10),variableBorrows:v(n.variableBorrows,r),variableBorrowsETH:v(n.variableBorrowsETH,18),variableBorrowsUSD:v(n.variableBorrowsUSD,10),totalBorrows:v(n.totalBorrows,r),totalBorrowsETH:v(n.totalBorrowsETH,18),totalBorrowsUSD:v(n.totalBorrowsUSD,10)})}));return{id:o.id,reservesData:s,totalLiquidityETH:v(o.totalLiquidityETH,18),totalLiquidityUSD:v(o.totalLiquidityUSD,10),totalCollateralETH:v(o.totalCollateralETH,18),totalCollateralUSD:v(o.totalCollateralUSD,10),totalBorrowsETH:v(o.totalBorrowsETH,18),totalBorrowsUSD:v(o.totalBorrowsUSD,10),availableBorrowsETH:v(o.availableBorrowsETH,18),currentLoanToValue:v(o.currentLoanToValue,4),currentLiquidationThreshold:v(o.currentLiquidationThreshold,4),healthFactor:o.healthFactor,totalRewards:o.totalRewards,totalRewardsETH:o.totalRewardsETH,totalRewardsUSD:o.totalRewardsUSD}}function ee(e,t){return{totalVariableDebt:v(C(C(e.totalScaledVariableDebt,e.variableBorrowIndex),O(e.variableBorrowRate,t,e.lastUpdateTimestamp)),e.decimals),totalStableDebt:v(C(e.totalPrincipalStableDebt,O(e.averageStableRate,t,e.stableDebtLastUpdateTimestamp)),e.decimals)}}function te(e,t,n,r,a){return void 0===r&&(r="0"),e.map((function(e){var i,o,s=null==n?void 0:null==(i=n.find((function(t){return t.id===e.id})))?void 0:null==(o=i.paramsHistory)?void 0:o[0],u=v(e.availableLiquidity,e.decimals),l=ee(e,t||e.lastUpdateTimestamp),d=l.totalVariableDebt,c=l.totalStableDebt,f=y(c).plus(d),T=f.plus(u).toString(),g="0"!==T?f.dividedBy(T).toString():"0",h=a&&a>(t||Math.floor(Date.now()/1e3)),_=h&&"0"!==T?ae(e.aEmissionPerSecond,r,T,e.price.priceInEth):"0",b=h&&"0"!==d?ae(e.vEmissionPerSecond,r,d,e.price.priceInEth):"0",x=h&&"0"!==c?ae(e.sEmissionPerSecond,r,c,e.price.priceInEth):"0",A=D(m(e.liquidityRate).dividedBy(k).plus(w),k).minus(w),E=D(m(e.variableBorrowRate).dividedBy(k).plus(w),k).minus(w),C=D(m(e.stableBorrowRate).dividedBy(k).plus(w),k).minus(w);return p({},e,{totalVariableDebt:d,totalStableDebt:c,totalLiquidity:T,availableLiquidity:u,utilizationRate:g,aIncentivesAPY:_,vIncentivesAPY:b,sIncentivesAPY:x,totalDebt:f.toString(),price:p({},e.price,{priceInEth:v(e.price.priceInEth,18)}),baseLTVasCollateral:v(e.baseLTVasCollateral,4),reserveFactor:v(e.reserveFactor,4),variableBorrowAPR:v(e.variableBorrowRate,27),variableBorrowAPY:v(E,27),avg30DaysVariableBorrowRate:s?F(s.variableBorrowIndex,e.variableBorrowIndex,s.timestamp,e.lastUpdateTimestamp):void 0,avg30DaysLiquidityRate:s?F(s.liquidityIndex,e.liquidityIndex,s.timestamp,e.lastUpdateTimestamp):void 0,stableBorrowAPR:v(e.stableBorrowRate,27),stableBorrowAPY:v(C,27),supplyAPR:v(e.liquidityRate,27),supplyAPY:v(A,27),liquidityIndex:v(e.liquidityIndex,27),reserveLiquidationThreshold:v(e.reserveLiquidationThreshold,4),reserveLiquidationBonus:v(y(e.reserveLiquidationBonus).minus(Math.pow(10,4)),4),totalScaledVariableDebt:v(e.totalScaledVariableDebt,e.decimals),totalPrincipalStableDebt:v(e.totalPrincipalStableDebt,e.decimals),variableBorrowIndex:v(e.variableBorrowIndex,27)})}))}function ne(e,t){return{totalVariableDebt:C(C(e.totalScaledVariableDebt,e.variableBorrowIndex),O(e.variableBorrowRate,t,e.lastUpdateTimestamp)),totalStableDebt:C(e.totalPrincipalStableDebt,O(e.averageStableRate,t,e.stableDebtLastUpdateTimestamp))}}function re(e,t){var n=ne(e,t),r=n.totalVariableDebt,a=n.totalStableDebt,i=r.plus(a);return{totalVariableDebt:r,totalStableDebt:a,totalLiquidity:i.plus(e.availableLiquidity)}}function ae(e,t,n,r){var a=h(e,18).multipliedBy(t).multipliedBy(k),i=y(n).multipliedBy(r);return a.dividedBy(i).toString(10)}function ie(e,t,n,r,a,i,o,s,u,p){var l,d=(u>p?p:u)-i;return l=i==+u||i>=p?m(t):m(o).multipliedBy(d).multipliedBy(g(r)).dividedBy(s).plus(t),v(m(e).multipliedBy(l.minus(n)).dividedBy(g(r)),a)}var oe,se,ue,pe,le,de,ce,ye,me={__proto__:null,getEthAndUsdBalance:z,computeUserReserveData:J,computeRawUserSummaryData:Z,formatUserSummaryData:$,calculateReserveDebt:ee,formatReserves:te,calculateReserveDebtSuppliesRaw:ne,calculateSupplies:re,calculateIncentivesAPY:ae,calculateRewards:ie};(oe=exports.InterestRate||(exports.InterestRate={})).None="None",oe.Stable="Stable",oe.Variable="Variable",(se=exports.Market||(exports.Market={})).Proto="proto",se.AMM="amm",(ue=exports.Network||(exports.Network={})).mainnet="mainnet",ue.ropsten="ropsten",ue.kovan="kovan",ue.polygon="polygon",ue.fork="fork",ue.mumbai="mumbai",ue.polygon_fork="polygon_fork",ue.avalanche="avalanche",ue.avalanche_fork="avalanche_fork",ue.fuji="fuji",ue.arbitrum_one="arbitrum_one",ue.arbitrum_rinkeby="arbitrum_rinkeby",(pe=exports.ChainId||(exports.ChainId={}))[pe.mainnet=1]="mainnet",pe[pe.ropsten=3]="ropsten",pe[pe.kovan=42]="kovan",pe[pe.polygon=137]="polygon",pe[pe.fork=1337]="fork",pe[pe.mumbai=80001]="mumbai",pe[pe.polygon_fork=1338]="polygon_fork",pe[pe.avalanche=43114]="avalanche",pe[pe.avalanche_fork=1337]="avalanche_fork",pe[pe.fuji=43113]="fuji",pe[pe.arbitrum_one=42161]="arbitrum_one",pe[pe.arbitrum_rinkeby=421611]="arbitrum_rinkeby",(le=exports.eEthereumTxType||(exports.eEthereumTxType={})).ERC20_APPROVAL="ERC20_APPROVAL",le.DLP_ACTION="DLP_ACTION",le.GOVERNANCE_ACTION="GOVERNANCE_ACTION",le.GOV_DELEGATION_ACTION="GOV_DELEGATION_ACTION",le.STAKE_ACTION="STAKE_ACTION",le.MIGRATION_LEND_AAVE="MIGRATION_LEND_AAVE",le.FAUCET_MINT="FAUCET_MINT",le.REWARD_ACTION="REWARD_ACTION",(de=exports.ProtocolAction||(exports.ProtocolAction={})).default="default",de.withdraw="withdraw",de.deposit="deposit",de.liquidationCall="liquidationCall",de.liquidationFlash="liquidationFlash",de.repay="repay",de.swapCollateral="swapCollateral",de.repayCollateral="repayCollateral",de.withdrawETH="withdrawETH",de.borrowETH="borrwoETH",(ce=exports.GovernanceVote||(exports.GovernanceVote={}))[ce.Abstain=0]="Abstain",ce[ce.Yes=1]="Yes",ce[ce.No=2]="No",(ye=exports.Stake||(exports.Stake={})).aave="aave",ye.bpt="bpt";var fe,Te,ge,ve=(function(e){var t=function(e){var t=Object.prototype,n=t.hasOwnProperty,r="function"==typeof Symbol?Symbol:{},a=r.iterator||"@@iterator",i=r.asyncIterator||"@@asyncIterator",o=r.toStringTag||"@@toStringTag";function s(e,t,n,r){var a=Object.create((t&&t.prototype instanceof l?t:l).prototype),i=new x(r||[]);return a._invoke=function(e,t,n){var r="suspendedStart";return function(a,i){if("executing"===r)throw new Error("Generator is already running");if("completed"===r){if("throw"===a)throw i;return{value:void 0,done:!0}}for(n.method=a,n.arg=i;;){var o=n.delegate;if(o){var s=h(o,n);if(s){if(s===p)continue;return s}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if("suspendedStart"===r)throw r="completed",n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);r="executing";var l=u(e,t,n);if("normal"===l.type){if(r=n.done?"completed":"suspendedYield",l.arg===p)continue;return{value:l.arg,done:n.done}}"throw"===l.type&&(r="completed",n.method="throw",n.arg=l.arg)}}}(e,n,i),a}function u(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}e.wrap=s;var p={};function l(){}function d(){}function c(){}var y={};y[a]=function(){return this};var m=Object.getPrototypeOf,f=m&&m(m(w([])));f&&f!==t&&n.call(f,a)&&(y=f);var T=c.prototype=l.prototype=Object.create(y);function g(e){["next","throw","return"].forEach((function(t){e[t]=function(e){return this._invoke(t,e)}}))}function v(e){var t;this._invoke=function(r,a){function i(){return new Promise((function(t,i){!function t(r,a,i,o){var s=u(e[r],e,a);if("throw"!==s.type){var p=s.arg,l=p.value;return l&&"object"==typeof l&&n.call(l,"__await")?Promise.resolve(l.__await).then((function(e){t("next",e,i,o)}),(function(e){t("throw",e,i,o)})):Promise.resolve(l).then((function(e){p.value=e,i(p)}),(function(e){return t("throw",e,i,o)}))}o(s.arg)}(r,a,t,i)}))}return t=t?t.then(i,i):i()}}function h(e,t){var n=e.iterator[t.method];if(void 0===n){if(t.delegate=null,"throw"===t.method){if(e.iterator.return&&(t.method="return",t.arg=void 0,h(e,t),"throw"===t.method))return p;t.method="throw",t.arg=new TypeError("The iterator does not provide a 'throw' method")}return p}var r=u(n,e.iterator,t.arg);if("throw"===r.type)return t.method="throw",t.arg=r.arg,t.delegate=null,p;var a=r.arg;return a?a.done?(t[e.resultName]=a.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=void 0),t.delegate=null,p):a:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,p)}function _(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function b(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function x(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(_,this),this.reset(!0)}function w(e){if(e){var t=e[a];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var r=-1,i=function t(){for(;++r<e.length;)if(n.call(e,r))return t.value=e[r],t.done=!1,t;return t.value=void 0,t.done=!0,t};return i.next=i}}return{next:A}}function A(){return{value:void 0,done:!0}}return d.prototype=T.constructor=c,c.constructor=d,c[o]=d.displayName="GeneratorFunction",e.isGeneratorFunction=function(e){var t="function"==typeof e&&e.constructor;return!!t&&(t===d||"GeneratorFunction"===(t.displayName||t.name))},e.mark=function(e){return Object.setPrototypeOf?Object.setPrototypeOf(e,c):(e.__proto__=c,o in e||(e[o]="GeneratorFunction")),e.prototype=Object.create(T),e},e.awrap=function(e){return{__await:e}},g(v.prototype),v.prototype[i]=function(){return this},e.AsyncIterator=v,e.async=function(t,n,r,a){var i=new v(s(t,n,r,a));return e.isGeneratorFunction(n)?i:i.next().then((function(e){return e.done?e.value:i.next()}))},g(T),T[o]="Generator",T[a]=function(){return this},T.toString=function(){return"[object Generator]"},e.keys=function(e){var t=[];for(var n in e)t.push(n);return t.reverse(),function n(){for(;t.length;){var r=t.pop();if(r in e)return n.value=r,n.done=!1,n}return n.done=!0,n}},e.values=w,x.prototype={constructor:x,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method="next",this.arg=void 0,this.tryEntries.forEach(b),!e)for(var t in this)"t"===t.charAt(0)&&n.call(this,t)&&!isNaN(+t.slice(1))&&(this[t]=void 0)},stop:function(){this.done=!0;var e=this.tryEntries[0].completion;if("throw"===e.type)throw e.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var t=this;function r(n,r){return o.type="throw",o.arg=e,t.next=n,r&&(t.method="next",t.arg=void 0),!!r}for(var a=this.tryEntries.length-1;a>=0;--a){var i=this.tryEntries[a],o=i.completion;if("root"===i.tryLoc)return r("end");if(i.tryLoc<=this.prev){var s=n.call(i,"catchLoc"),u=n.call(i,"finallyLoc");if(s&&u){if(this.prev<i.catchLoc)return r(i.catchLoc,!0);if(this.prev<i.finallyLoc)return r(i.finallyLoc)}else if(s){if(this.prev<i.catchLoc)return r(i.catchLoc,!0)}else{if(!u)throw new Error("try statement without catch or finally");if(this.prev<i.finallyLoc)return r(i.finallyLoc)}}}},abrupt:function(e,t){for(var r=this.tryEntries.length-1;r>=0;--r){var a=this.tryEntries[r];if(a.tryLoc<=this.prev&&n.call(a,"finallyLoc")&&this.prev<a.finallyLoc){var i=a;break}}i&&("break"===e||"continue"===e)&&i.tryLoc<=t&&t<=i.finallyLoc&&(i=null);var o=i?i.completion:{};return o.type=e,o.arg=t,i?(this.method="next",this.next=i.finallyLoc,p):this.complete(o)},complete:function(e,t){if("throw"===e.type)throw e.arg;return"break"===e.type||"continue"===e.type?this.next=e.arg:"return"===e.type?(this.rval=this.arg=e.arg,this.method="return",this.next="end"):"normal"===e.type&&t&&(this.next=t),p},finish:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),b(n),p}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var a=r.arg;b(n)}return a}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,n){return this.delegate={iterator:w(e),resultName:t,nextLoc:n},"next"===this.method&&(this.arg=void 0),p}},e}(e.exports);try{regeneratorRuntime=t}catch(e){Function("r","regeneratorRuntime = r")(t)}}(ge={exports:{}}),ge.exports),he=a.BigNumber.from(0).toHexString(),_e=a.constants.MaxUint256.toString(),be="115792089237316195423570985008687907853269984665640564039457584007913129639935",xe="0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE",we=((fe={})[exports.ProtocolAction.default]={limit:"210000",recommended:"210000"},fe[exports.ProtocolAction.deposit]={limit:"300000",recommended:"300000"},fe[exports.ProtocolAction.withdraw]={limit:"230000",recommended:"300000"},fe[exports.ProtocolAction.liquidationCall]={limit:"700000",recommended:"700000"},fe[exports.ProtocolAction.liquidationFlash]={limit:"995000",recommended:"995000"},fe[exports.ProtocolAction.repay]={limit:"300000",recommended:"300000"},fe[exports.ProtocolAction.borrowETH]={limit:"450000",recommended:"450000"},fe[exports.ProtocolAction.withdrawETH]={limit:"640000",recommended:"640000"},fe[exports.ProtocolAction.swapCollateral]={limit:"1000000",recommended:"1000000"},fe[exports.ProtocolAction.repayCollateral]={limit:"700000",recommended:"700000"},fe),Ae=((Te={})[exports.Network.mainnet]={SYNTHETIX_PROXY_ADDRESS:"0xc011a73ee8576fb46f5e1c5751ca3b9fe0af2a6f"},Te),Ee=function(){function e(){}return e.connect=function(e,t){return new a.Contract(e,Ce,t)},e}(),Ce=[{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"executor",type:"address"}],name:"ExecutorAuthorized",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"executor",type:"address"}],name:"ExecutorUnauthorized",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"newStrategy",type:"address"},{indexed:!0,internalType:"address",name:"initiatorChange",type:"address"}],name:"GovernanceStrategyChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"id",type:"uint256"}],name:"ProposalCanceled",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"id",type:"uint256"},{indexed:!0,internalType:"address",name:"creator",type:"address"},{indexed:!0,internalType:"contract IExecutorWithTimelock",name:"executor",type:"address"},{indexed:!1,internalType:"address[]",name:"targets",type:"address[]"},{indexed:!1,internalType:"uint256[]",name:"values",type:"uint256[]"},{indexed:!1,internalType:"string[]",name:"signatures",type:"string[]"},{indexed:!1,internalType:"bytes[]",name:"calldatas",type:"bytes[]"},{indexed:!1,internalType:"bool[]",name:"withDelegatecalls",type:"bool[]"},{indexed:!1,internalType:"uint256",name:"startBlock",type:"uint256"},{indexed:!1,internalType:"uint256",name:"endBlock",type:"uint256"},{indexed:!1,internalType:"address",name:"strategy",type:"address"},{indexed:!1,internalType:"bytes32",name:"ipfsHash",type:"bytes32"}],name:"ProposalCreated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"id",type:"uint256"},{indexed:!0,internalType:"address",name:"initiatorExecution",type:"address"}],name:"ProposalExecuted",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"id",type:"uint256"},{indexed:!1,internalType:"uint256",name:"executionTime",type:"uint256"},{indexed:!0,internalType:"address",name:"initiatorQueueing",type:"address"}],name:"ProposalQueued",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"id",type:"uint256"},{indexed:!0,internalType:"address",name:"voter",type:"address"},{indexed:!1,internalType:"bool",name:"support",type:"bool"},{indexed:!1,internalType:"uint256",name:"votingPower",type:"uint256"}],name:"VoteEmitted",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"newVotingDelay",type:"uint256"},{indexed:!0,internalType:"address",name:"initiatorChange",type:"address"}],name:"VotingDelayChanged",type:"event"},{inputs:[],name:"__abdicate",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address[]",name:"executors",type:"address[]"}],name:"authorizeExecutors",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"proposalId",type:"uint256"}],name:"cancel",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"contract IExecutorWithTimelock",name:"executor",type:"address"},{internalType:"address[]",name:"targets",type:"address[]"},{internalType:"uint256[]",name:"values",type:"uint256[]"},{internalType:"string[]",name:"signatures",type:"string[]"},{internalType:"bytes[]",name:"calldatas",type:"bytes[]"},{internalType:"bool[]",name:"withDelegatecalls",type:"bool[]"},{internalType:"bytes32",name:"ipfsHash",type:"bytes32"}],name:"create",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"proposalId",type:"uint256"}],name:"execute",outputs:[],stateMutability:"payable",type:"function"},{inputs:[],name:"getGovernanceStrategy",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"getGuardian",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"proposalId",type:"uint256"}],name:"getProposalById",outputs:[{components:[{internalType:"uint256",name:"id",type:"uint256"},{internalType:"address",name:"creator",type:"address"},{internalType:"contract IExecutorWithTimelock",name:"executor",type:"address"},{internalType:"address[]",name:"targets",type:"address[]"},{internalType:"uint256[]",name:"values",type:"uint256[]"},{internalType:"string[]",name:"signatures",type:"string[]"},{internalType:"bytes[]",name:"calldatas",type:"bytes[]"},{internalType:"bool[]",name:"withDelegatecalls",type:"bool[]"},{internalType:"uint256",name:"startBlock",type:"uint256"},{internalType:"uint256",name:"endBlock",type:"uint256"},{internalType:"uint256",name:"executionTime",type:"uint256"},{internalType:"uint256",name:"forVotes",type:"uint256"},{internalType:"uint256",name:"againstVotes",type:"uint256"},{internalType:"bool",name:"executed",type:"bool"},{internalType:"bool",name:"canceled",type:"bool"},{internalType:"address",name:"strategy",type:"address"},{internalType:"bytes32",name:"ipfsHash",type:"bytes32"}],internalType:"struct IAaveGovernanceV2.ProposalWithoutVotes",name:"",type:"tuple"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"proposalId",type:"uint256"}],name:"getProposalState",outputs:[{internalType:"enum IAaveGovernanceV2.ProposalState",name:"",type:"uint8"}],stateMutability:"view",type:"function"},{inputs:[],name:"getProposalsCount",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"proposalId",type:"uint256"},{internalType:"address",name:"voter",type:"address"}],name:"getVoteOnProposal",outputs:[{components:[{internalType:"bool",name:"support",type:"bool"},{internalType:"uint248",name:"votingPower",type:"uint248"}],internalType:"struct IAaveGovernanceV2.Vote",name:"",type:"tuple"}],stateMutability:"view",type:"function"},{inputs:[],name:"getVotingDelay",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"executor",type:"address"}],name:"isExecutorAuthorized",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"proposalId",type:"uint256"}],name:"queue",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"governanceStrategy",type:"address"}],name:"setGovernanceStrategy",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"votingDelay",type:"uint256"}],name:"setVotingDelay",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"proposalId",type:"uint256"},{internalType:"bool",name:"support",type:"bool"}],name:"submitVote",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"proposalId",type:"uint256"},{internalType:"bool",name:"support",type:"bool"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"}],name:"submitVoteBySignature",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address[]",name:"executors",type:"address[]"}],name:"unauthorizeExecutors",outputs:[],stateMutability:"nonpayable",type:"function"}],Se=function(){function e(){}return e.connect=function(e,t){return new a.Contract(e,Be,t)},e}(),Be=[{inputs:[{internalType:"address[]",name:"assets",type:"address[]"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"address",name:"to",type:"address"}],name:"claimRewards",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"nonpayable",type:"function"}],Pe=function(){function e(){}return e.connect=function(e,t){return new a.Contract(e,De,t)},e}(),De=[{inputs:[{internalType:"address",name:"user",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"}],name:"stake",outputs:[],stateMutability:"nonpayable",type:"function"}],Re=function(){function e(){}return e.connect=function(e,t){return new a.Contract(e,ke,t)},e}(),ke=[{inputs:[{internalType:"address",name:"delegatee",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"approveDelegation",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"fromUser",type:"address"},{internalType:"address",name:"toUser",type:"address"}],name:"borrowAllowance",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"}],Oe=function(){function e(){}return e.connect=function(e,t){return new a.Contract(e,Ie,t)},e}(),Ie=[{inputs:[{internalType:"address",name:"owner",type:"address"},{internalType:"address",name:"spender",type:"address"}],name:"allowance",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"approve",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"decimals",outputs:[{internalType:"uint8",name:"",type:"uint8"}],stateMutability:"view",type:"function"},{inputs:[],name:"name",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[],name:"symbol",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"}],Ne=function(){function e(){}return e.connect=function(e,t){return new a.Contract(e,Le,t)},e}(),Le=[{inputs:[{internalType:"address",name:"_token",type:"address"}],name:"getMinter",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"_token",type:"address"},{internalType:"uint256",name:"_amount",type:"uint256"}],name:"mint",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"payable",type:"function"}],Ve=function(){function e(){}return e.connect=function(e,t){return new a.Contract(e,Me,t)},e}(),Me=[{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"delegator",type:"address"},{indexed:!0,internalType:"address",name:"delegatee",type:"address"},{indexed:!1,internalType:"enum IGovernancePowerDelegationToken.DelegationType",name:"delegationType",type:"uint8"}],name:"DelegateChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"user",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"},{indexed:!1,internalType:"enum IGovernancePowerDelegationToken.DelegationType",name:"delegationType",type:"uint8"}],name:"DelegatedPowerChanged",type:"event"},{inputs:[{internalType:"address",name:"",type:"address"}],name:"_nonces",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"delegatee",type:"address"}],name:"delegate",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"delegatee",type:"address"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"uint256",name:"expiry",type:"uint256"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"}],name:"delegateBySig",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"delegatee",type:"address"},{internalType:"enum IGovernancePowerDelegationToken.DelegationType",name:"delegationType",type:"uint8"}],name:"delegateByType",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"delegatee",type:"address"},{internalType:"enum IGovernancePowerDelegationToken.DelegationType",name:"delegationType",type:"uint8"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"uint256",name:"expiry",type:"uint256"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"}],name:"delegateByTypeBySig",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"delegator",type:"address"},{internalType:"enum IGovernancePowerDelegationToken.DelegationType",name:"delegationType",type:"uint8"}],name:"getDelegateeByType",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"user",type:"address"},{internalType:"uint256",name:"blockNumber",type:"uint256"},{internalType:"enum IGovernancePowerDelegationToken.DelegationType",name:"delegationType",type:"uint8"}],name:"getPowerAtBlock",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"user",type:"address"},{internalType:"enum IGovernancePowerDelegationToken.DelegationType",name:"delegationType",type:"uint8"}],name:"getPowerCurrent",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"}],name:"totalSupplyAt",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"}],Ue=function(){function e(){}return e.connect=function(e,t){return new a.Contract(e,He,t)},e}(),He=[{inputs:[],name:"AAVE",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"STK_AAVE",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"user",type:"address"},{internalType:"uint256",name:"blockNumber",type:"uint256"}],name:"getPropositionPowerAt",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"}],name:"getTotalPropositionSupplyAt",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"blockNumber",type:"uint256"}],name:"getTotalVotingSupplyAt",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"user",type:"address"},{internalType:"uint256",name:"blockNumber",type:"uint256"}],name:"getVotingPowerAt",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"}],Fe=function(){function e(){}return e.connect=function(e,t){return new a.Contract(e,Ge,t)},e}(),Ge=[{inputs:[{internalType:"uint256",name:"id",type:"uint256"},{internalType:"contract IAaveGovernanceV2",name:"governance",type:"address"}],name:"getProposal",outputs:[{components:[{internalType:"uint256",name:"totalVotingSupply",type:"uint256"},{internalType:"uint256",name:"minimumQuorum",type:"uint256"},{internalType:"uint256",name:"minimumDiff",type:"uint256"},{internalType:"uint256",name:"executionTimeWithGracePeriod",type:"uint256"},{internalType:"uint256",name:"proposalCreated",type:"uint256"},{internalType:"uint256",name:"id",type:"uint256"},{internalType:"address",name:"creator",type:"address"},{internalType:"contract IExecutorWithTimelock",name:"executor",type:"address"},{internalType:"address[]",name:"targets",type:"address[]"},{internalType:"uint256[]",name:"values",type:"uint256[]"},{internalType:"string[]",name:"signatures",type:"string[]"},{internalType:"bytes[]",name:"calldatas",type:"bytes[]"},{internalType:"bool[]",name:"withDelegatecalls",type:"bool[]"},{internalType:"uint256",name:"startBlock",type:"uint256"},{internalType:"uint256",name:"endBlock",type:"uint256"},{internalType:"uint256",name:"executionTime",type:"uint256"},{internalType:"uint256",name:"forVotes",type:"uint256"},{internalType:"uint256",name:"againstVotes",type:"uint256"},{internalType:"bool",name:"executed",type:"bool"},{internalType:"bool",name:"canceled",type:"bool"},{internalType:"address",name:"strategy",type:"address"},{internalType:"bytes32",name:"ipfsHash",type:"bytes32"},{internalType:"enum IAaveGovernanceV2.ProposalState",name:"proposalState",type:"uint8"}],internalType:"struct IGovernanceV2Helper.ProposalStats",name:"proposalStats",type:"tuple"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"skip",type:"uint256"},{internalType:"uint256",name:"limit",type:"uint256"},{internalType:"contract IAaveGovernanceV2",name:"governance",type:"address"}],name:"getProposals",outputs:[{components:[{internalType:"uint256",name:"totalVotingSupply",type:"uint256"},{internalType:"uint256",name:"minimumQuorum",type:"uint256"},{internalType:"uint256",name:"minimumDiff",type:"uint256"},{internalType:"uint256",name:"executionTimeWithGracePeriod",type:"uint256"},{internalType:"uint256",name:"proposalCreated",type:"uint256"},{internalType:"uint256",name:"id",type:"uint256"},{internalType:"address",name:"creator",type:"address"},{internalType:"contract IExecutorWithTimelock",name:"executor",type:"address"},{internalType:"address[]",name:"targets",type:"address[]"},{internalType:"uint256[]",name:"values",type:"uint256[]"},{internalType:"string[]",name:"signatures",type:"string[]"},{internalType:"bytes[]",name:"calldatas",type:"bytes[]"},{internalType:"bool[]",name:"withDelegatecalls",type:"bool[]"},{internalType:"uint256",name:"startBlock",type:"uint256"},{internalType:"uint256",name:"endBlock",type:"uint256"},{internalType:"uint256",name:"executionTime",type:"uint256"},{internalType:"uint256",name:"forVotes",type:"uint256"},{internalType:"uint256",name:"againstVotes",type:"uint256"},{internalType:"bool",name:"executed",type:"bool"},{internalType:"bool",name:"canceled",type:"bool"},{internalType:"address",name:"strategy",type:"address"},{internalType:"bytes32",name:"ipfsHash",type:"bytes32"},{internalType:"enum IAaveGovernanceV2.ProposalState",name:"proposalState",type:"uint8"}],internalType:"struct IGovernanceV2Helper.ProposalStats[]",name:"proposalsStats",type:"tuple[]"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"user",type:"address"},{internalType:"address[]",name:"tokens",type:"address[]"}],name:"getTokensPower",outputs:[{components:[{internalType:"uint256",name:"votingPower",type:"uint256"},{internalType:"address",name:"delegatedAddressVotingPower",type:"address"},{internalType:"uint256",name:"propositionPower",type:"uint256"},{internalType:"address",name:"delegatedAddressPropositionPower",type:"address"}],internalType:"struct IGovernanceV2Helper.Power[]",name:"power",type:"tuple[]"}],stateMutability:"view",type:"function"}],qe=function(){function e(){}return e.connect=function(e,t){return new a.Contract(e,We,t)},e}(),We=[{inputs:[],name:"FLASHLOAN_PREMIUM_TOTAL",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"reserve",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"uint256",name:"interestRateMode",type:"uint256"},{internalType:"uint16",name:"referralCode",type:"uint16"},{internalType:"address",name:"onBehalfOf",type:"address"}],name:"borrow",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"reserve",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"address",name:"onBehalfOf",type:"address"},{internalType:"uint16",name:"referralCode",type:"uint16"}],name:"deposit",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"receiver",type:"address"},{internalType:"address[]",name:"assets",type:"address[]"},{internalType:"uint256[]",name:"amounts",type:"uint256[]"},{internalType:"uint256[]",name:"modes",type:"uint256[]"},{internalType:"address",name:"onBehalfOf",type:"address"},{internalType:"bytes",name:"params",type:"bytes"},{internalType:"uint16",name:"referralCode",type:"uint16"}],name:"flashLoan",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"collateral",type:"address"},{internalType:"address",name:"reserve",type:"address"},{internalType:"address",name:"user",type:"address"},{internalType:"uint256",name:"purchaseAmount",type:"uint256"},{internalType:"bool",name:"receiveAToken",type:"bool"}],name:"liquidationCall",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"reserve",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"uint256",name:"rateMode",type:"uint256"},{internalType:"address",name:"onBehalfOf",type:"address"}],name:"repay",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"reserve",type:"address"},{internalType:"bool",name:"useAsCollateral",type:"bool"}],name:"setUserUseReserveAsCollateral",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"reserve",type:"address"},{internalType:"uint256",name:"rateMode",type:"uint256"}],name:"swapBorr