@aurigami/sdk 1.4.8 → 1.5.0-dummy-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.
@@ -1,28 +1,51 @@
1
1
  import { BlockchainEntity, BlockchainEntityRead } from './BlockchainEntity';
2
- import { MoneyMarketDetails, NetworkConnection, Address, ComptrollerRewardType } from './types';
2
+ import {
3
+ MoneyMarketDetails,
4
+ NetworkConnection,
5
+ Address,
6
+ ComptrollerRewardType,
7
+ } from './types';
3
8
  import { Contract, BigNumber as BN } from 'ethers';
4
9
  import AuErc20ABI from '@aurigami/contracts/artifacts/contracts/AuErc20.sol/AuErc20.json';
5
10
  import AuETHABI from '@aurigami/contracts/artifacts/contracts/AuETH.sol/AuETH.json';
6
11
  import ComptrollerABI from '@aurigami/contracts/artifacts/contracts/Comptroller.sol/Comptroller.json';
7
12
  import AuriLensABI from '@aurigami/contracts/artifacts/contracts/AuriLens.sol/AuriLens.json';
8
- import EthRepayHelperABI from "@aurigami/contracts/artifacts/contracts/EthRepayHelper.sol/EthRepayHelper.json"
9
- import { AuErc20, AuETH, AuriLens, Comptroller, EthRepayHelper } from "@aurigami/contracts/typechain";
13
+ import EthRepayHelperABI from '@aurigami/contracts/artifacts/contracts/EthRepayHelper.sol/EthRepayHelper.json';
14
+ import {
15
+ AuErc20,
16
+ AuETH,
17
+ AuriLens,
18
+ Comptroller,
19
+ EthRepayHelper,
20
+ } from '@aurigami/contracts/typechain';
10
21
  import { TransactionResponse } from '@ethersproject/abstract-provider';
11
- import { networkAddresses, ETHAddress, ONE_YEAR, INF, ONE_DAY, DEPOSIT_NEAR_REWARDS_PER_WEEK, BORROW_NEAR_REWARDS_PER_WEEK } from "./constants";
12
- import BigNumber from "bignumber.js";
13
- import { decimalFactor, isSameAddress, calcLMRewardApr, getCurrentTimestamp } from './helpers';
22
+ import {
23
+ networkAddresses,
24
+ ETHAddress,
25
+ ONE_YEAR,
26
+ INF,
27
+ ONE_DAY,
28
+ DEPOSIT_NEAR_REWARDS_PER_WEEK,
29
+ BORROW_NEAR_REWARDS_PER_WEEK,
30
+ } from './constants';
31
+ import BigNumber from 'bignumber.js';
32
+ import {
33
+ decimalFactor,
34
+ isSameAddress,
35
+ calcLMRewardApr,
36
+ getCurrentTimestamp,
37
+ } from './helpers';
14
38
  import { Token, PLYToken } from './token';
15
39
  import { TokenAmount } from './tokenAmount';
16
40
  import { getDecimal, validateAndParseAddress } from './helpers';
17
- import { fetchPrice, calcValuation, fetchValuation } from "./priceFetcher";
18
-
41
+ import { fetchPrice, calcValuation, fetchValuation } from './priceFetcher';
19
42
 
20
43
  type RewardSpeeds = {
21
44
  plyRewardSupplySpeed: BN;
22
45
  plyRewardBorrowSpeed: BN;
23
46
  auroraRewardSupplySpeed: BN;
24
47
  auroraRewardBorrowSpeed: BN;
25
- }
48
+ };
26
49
 
27
50
  export class MoneyMarketRead extends BlockchainEntityRead {
28
51
  public underlying: Token;
@@ -30,111 +53,233 @@ export class MoneyMarketRead extends BlockchainEntityRead {
30
53
  protected _comptroller: Comptroller;
31
54
 
32
55
  protected _auriLens: AuriLens;
33
- constructor(networkConnection: NetworkConnection, auToken: Address, underlyingAsset: Address) {
56
+ constructor(
57
+ networkConnection: NetworkConnection,
58
+ auToken: Address,
59
+ underlyingAsset: Address
60
+ ) {
34
61
  super(networkConnection);
35
62
  if (isSameAddress(underlyingAsset, ETHAddress)) {
36
- this.auToken = new Contract(auToken, AuETHABI.abi, networkConnection.provider) as AuETH;
63
+ this.auToken = new Contract(
64
+ auToken,
65
+ AuETHABI.abi,
66
+ networkConnection.provider
67
+ ) as AuETH;
37
68
  } else {
38
- this.auToken = new Contract(auToken, AuErc20ABI.abi, networkConnection.provider) as AuErc20;
69
+ this.auToken = new Contract(
70
+ auToken,
71
+ AuErc20ABI.abi,
72
+ networkConnection.provider
73
+ ) as AuErc20;
39
74
  }
40
- this.underlying = new Token(
41
- underlyingAsset,
42
- getDecimal(underlyingAsset),
43
- );
44
- this._comptroller = new Contract(networkAddresses.misc.COMPTROLLER, ComptrollerABI.abi, networkConnection.provider) as Comptroller;
45
- this._auriLens = new Contract(networkAddresses.misc.AURILENS, AuriLensABI.abi, networkConnection.provider) as AuriLens;
75
+ this.underlying = new Token(underlyingAsset, getDecimal(underlyingAsset));
76
+ this._comptroller = new Contract(
77
+ networkAddresses.misc.COMPTROLLER,
78
+ ComptrollerABI.abi,
79
+ networkConnection.provider
80
+ ) as Comptroller;
81
+ this._auriLens = new Contract(
82
+ networkAddresses.misc.AURILENS,
83
+ AuriLensABI.abi,
84
+ networkConnection.provider
85
+ ) as AuriLens;
46
86
  }
47
87
 
48
88
  protected async getRewardSpeeds(): Promise<RewardSpeeds> {
49
- var speeds = await this._auriLens.getRewardSpeeds(this._comptroller.address, this.auToken.address);
89
+ var speeds = await this._auriLens.getRewardSpeeds(
90
+ this._comptroller.address,
91
+ this.auToken.address
92
+ );
50
93
  return speeds;
51
94
  }
52
95
  public async getTotalTokenBorrowed(): Promise<TokenAmount> {
53
96
  return new TokenAmount(
54
97
  this.underlying,
55
98
  (await this.auToken.totalBorrows()).toString()
56
- )
99
+ );
57
100
  }
58
101
  public async getTotalTokenDeposited(): Promise<TokenAmount> {
59
102
  var promises = [];
60
103
  var totalBorrow: TokenAmount, totalCash: TokenAmount;
61
- promises.push(this.getTotalTokenBorrowed().then((res: TokenAmount) => {
62
- totalBorrow = res
63
- }));
64
- promises.push(this.auToken.getCash().then((res: BN) => {
65
- totalCash = new TokenAmount(
66
- this.underlying,
67
- res.toString()
68
- )
69
- }))
104
+ promises.push(
105
+ this.getTotalTokenBorrowed().then((res: TokenAmount) => {
106
+ totalBorrow = res;
107
+ })
108
+ );
109
+ promises.push(
110
+ this.auToken.getCash().then((res: BN) => {
111
+ totalCash = new TokenAmount(this.underlying, res.toString());
112
+ })
113
+ );
70
114
  await Promise.all(promises);
71
115
  return new TokenAmount(
72
116
  this.underlying,
73
117
  BN.from(totalCash!.rawAmount()).add(totalBorrow!.rawAmount()).toString()
74
- )
118
+ );
75
119
  }
76
120
 
77
121
  public async getDepositAPY(): Promise<BigNumber> {
78
122
  const supplyRatePerTimestamp = await this.auToken.supplyRatePerTimestamp();
79
- return new BigNumber(supplyRatePerTimestamp.toString()).multipliedBy(60*60*24*365).div(decimalFactor(18));
123
+ return new BigNumber(supplyRatePerTimestamp.toString())
124
+ .multipliedBy(60 * 60 * 24 * 365)
125
+ .div(decimalFactor(18));
80
126
  }
81
127
 
82
128
  public async getBorrowAPY(): Promise<BigNumber> {
83
129
  const borrowRatePerTimestamp = await this.auToken.borrowRatePerTimestamp();
84
- return new BigNumber(borrowRatePerTimestamp.toString()).multipliedBy(60*60*24*365).div(decimalFactor(18));
130
+ return new BigNumber(borrowRatePerTimestamp.toString())
131
+ .multipliedBy(60 * 60 * 24 * 365)
132
+ .div(decimalFactor(18));
85
133
  }
86
134
 
87
135
  public async getCollateralRatio(): Promise<BigNumber> {
88
136
  return this._comptroller.markets(this.auToken.address).then((res: any) => {
89
- return new BigNumber(res.collateralFactorMantissa.toString()).div(decimalFactor(18));
90
- })
137
+ return new BigNumber(res.collateralFactorMantissa.toString()).div(
138
+ decimalFactor(18)
139
+ );
140
+ });
91
141
  }
92
142
 
93
143
  public async getBorrowPlyAPY(): Promise<BigNumber> {
94
144
  var promises = [];
95
- var totalBorrowed: TokenAmount, rewardSpeed: TokenAmount, plyPrice: BigNumber, underlyingPrice: BigNumber;
96
- promises.push(this.getTotalTokenBorrowed().then((res: TokenAmount) => {totalBorrowed = res}));
97
- promises.push(this._comptroller.rewardSpeeds(ComptrollerRewardType.PLY, this.auToken.address, false).then((res) => {
98
- rewardSpeed = new TokenAmount(
99
- PLYToken,
100
- res.toString()
101
- )
102
- }));
103
- promises.push(fetchPrice(networkAddresses.tokens.PLY, this._networkConnection.provider).then((res) => {plyPrice = res}));
104
- promises.push(fetchPrice(this.underlying.address, this._networkConnection.provider).then((res) => {underlyingPrice = res}));
145
+ var totalBorrowed: TokenAmount,
146
+ rewardSpeed: TokenAmount,
147
+ plyPrice: BigNumber,
148
+ underlyingPrice: BigNumber;
149
+ promises.push(
150
+ this.getTotalTokenBorrowed().then((res: TokenAmount) => {
151
+ totalBorrowed = res;
152
+ })
153
+ );
154
+ promises.push(
155
+ this._comptroller
156
+ .rewardSpeeds(ComptrollerRewardType.PLY, this.auToken.address, false)
157
+ .then((res) => {
158
+ rewardSpeed = new TokenAmount(PLYToken, res.toString());
159
+ })
160
+ );
161
+ promises.push(
162
+ fetchPrice(
163
+ networkAddresses.tokens.PLY,
164
+ this._networkConnection.provider
165
+ ).then((res) => {
166
+ plyPrice = res;
167
+ })
168
+ );
169
+ promises.push(
170
+ fetchPrice(
171
+ this.underlying.address,
172
+ this._networkConnection.provider
173
+ ).then((res) => {
174
+ underlyingPrice = res;
175
+ })
176
+ );
105
177
  await Promise.all(promises);
106
- return calcLMRewardApr(plyPrice!.multipliedBy(rewardSpeed!.formattedAmount()),
107
- underlyingPrice!.multipliedBy(totalBorrowed!.formattedAmount()), ONE_YEAR);
178
+ return calcLMRewardApr(
179
+ plyPrice!.multipliedBy(rewardSpeed!.formattedAmount()),
180
+ underlyingPrice!.multipliedBy(totalBorrowed!.formattedAmount()),
181
+ ONE_YEAR
182
+ );
108
183
  }
109
184
 
110
185
  public async getDepositPlyAPY(): Promise<BigNumber> {
111
186
  var promises = [];
112
- var totalDeposited: TokenAmount, rewardSpeed: TokenAmount, plyPrice: BigNumber, underlyingPrice: BigNumber;
113
- promises.push(this.getTotalTokenDeposited().then((res: TokenAmount) => {totalDeposited = res}));
114
- promises.push(this._comptroller.rewardSpeeds(ComptrollerRewardType.PLY, this.auToken.address, true).then((res) => {
115
- rewardSpeed = new TokenAmount(
116
- PLYToken,
117
- res.toString()
118
- )
119
- }));
120
- promises.push(fetchPrice(networkAddresses.tokens.PLY, this._networkConnection.provider).then((res) => {plyPrice = res}));
121
- promises.push(fetchPrice(this.underlying.address, this._networkConnection.provider).then((res) => {underlyingPrice = res}));
187
+ var totalDeposited: TokenAmount,
188
+ rewardSpeed: TokenAmount,
189
+ plyPrice: BigNumber,
190
+ underlyingPrice: BigNumber;
191
+ promises.push(
192
+ this.getTotalTokenDeposited().then((res: TokenAmount) => {
193
+ totalDeposited = res;
194
+ })
195
+ );
196
+ promises.push(
197
+ this._comptroller
198
+ .rewardSpeeds(ComptrollerRewardType.PLY, this.auToken.address, true)
199
+ .then((res) => {
200
+ rewardSpeed = new TokenAmount(PLYToken, res.toString());
201
+ })
202
+ );
203
+ promises.push(
204
+ fetchPrice(
205
+ networkAddresses.tokens.PLY,
206
+ this._networkConnection.provider
207
+ ).then((res) => {
208
+ plyPrice = res;
209
+ })
210
+ );
211
+ promises.push(
212
+ fetchPrice(
213
+ this.underlying.address,
214
+ this._networkConnection.provider
215
+ ).then((res) => {
216
+ underlyingPrice = res;
217
+ })
218
+ );
122
219
  await Promise.all(promises);
123
- return calcLMRewardApr(plyPrice!.multipliedBy(rewardSpeed!.formattedAmount()),
124
- underlyingPrice!.multipliedBy(totalDeposited!.formattedAmount()), ONE_YEAR);
220
+ return calcLMRewardApr(
221
+ plyPrice!.multipliedBy(rewardSpeed!.formattedAmount()),
222
+ underlyingPrice!.multipliedBy(totalDeposited!.formattedAmount()),
223
+ ONE_YEAR
224
+ );
125
225
  }
126
226
  public async getDetails(): Promise<MoneyMarketDetails> {
127
- var promises = [], totalDeposited: TokenAmount, totalBorrowed: TokenAmount, depositAPY: number, borrowAPY: number, collateralRatio: number;
128
- promises.push(this.getTotalTokenDeposited().then((res: TokenAmount) => {totalDeposited = res}));
129
- promises.push(this.getTotalTokenBorrowed().then((res: TokenAmount) => {totalBorrowed = res}));
130
- promises.push(this.getDepositAPY().then((res: BigNumber) => {depositAPY = res.toNumber()}));
131
- promises.push(this.getBorrowAPY().then((res: BigNumber) => {borrowAPY = res.toNumber()}));
132
- promises.push(this.getCollateralRatio().then((res: BigNumber) => {collateralRatio = res.toNumber()}));
227
+ var promises = [],
228
+ totalDeposited: TokenAmount,
229
+ totalBorrowed: TokenAmount,
230
+ depositAPY: number,
231
+ borrowAPY: number,
232
+ collateralRatio: number;
233
+ promises.push(
234
+ this.getTotalTokenDeposited().then((res: TokenAmount) => {
235
+ totalDeposited = res;
236
+ })
237
+ );
238
+ promises.push(
239
+ this.getTotalTokenBorrowed().then((res: TokenAmount) => {
240
+ totalBorrowed = res;
241
+ })
242
+ );
243
+ promises.push(
244
+ this.getDepositAPY().then((res: BigNumber) => {
245
+ depositAPY = res.toNumber();
246
+ })
247
+ );
248
+ promises.push(
249
+ this.getBorrowAPY().then((res: BigNumber) => {
250
+ borrowAPY = res.toNumber();
251
+ })
252
+ );
253
+ promises.push(
254
+ this.getCollateralRatio().then((res: BigNumber) => {
255
+ collateralRatio = res.toNumber();
256
+ })
257
+ );
133
258
 
134
- var plyPrice: BigNumber, underlyingPrice: BigNumber, rewardSpeeds: RewardSpeeds;
135
- promises.push(this.getRewardSpeeds().then((res) => {rewardSpeeds = res}));
136
- promises.push(fetchPrice(networkAddresses.tokens.PLY, this._networkConnection.provider).then((res) => {plyPrice = res}));
137
- promises.push(fetchPrice(this.underlying.address, this._networkConnection.provider).then((res) => {underlyingPrice = res}));
259
+ var plyPrice: BigNumber,
260
+ underlyingPrice: BigNumber,
261
+ rewardSpeeds: RewardSpeeds;
262
+ promises.push(
263
+ this.getRewardSpeeds().then((res) => {
264
+ rewardSpeeds = res;
265
+ })
266
+ );
267
+ promises.push(
268
+ fetchPrice(
269
+ networkAddresses.tokens.PLY,
270
+ this._networkConnection.provider
271
+ ).then((res) => {
272
+ plyPrice = res;
273
+ })
274
+ );
275
+ promises.push(
276
+ fetchPrice(
277
+ this.underlying.address,
278
+ this._networkConnection.provider
279
+ ).then((res) => {
280
+ underlyingPrice = res;
281
+ })
282
+ );
138
283
 
139
284
  await Promise.all(promises);
140
285
 
@@ -161,11 +306,31 @@ export class MoneyMarketRead extends BlockchainEntityRead {
161
306
  ONE_YEAR
162
307
  );
163
308
 
164
- var depositNEARApy = calcLMRewardApr(await fetchValuation(this.getDepositNEARRewardPerWeek(), this._networkConnection.provider), underlyingPrice!.multipliedBy(totalDeposited!.formattedAmount()), 52)
165
- var borrowNEARApy = calcLMRewardApr(await fetchValuation(this.getBorrowNEARRewardPerWeek(), this._networkConnection.provider), underlyingPrice!.multipliedBy(totalBorrowed!.formattedAmount()), 52)
309
+ var depositNEARApy = calcLMRewardApr(
310
+ await fetchValuation(
311
+ this.getDepositNEARRewardPerWeek(),
312
+ this._networkConnection.provider
313
+ ),
314
+ underlyingPrice!.multipliedBy(totalDeposited!.formattedAmount()),
315
+ 52
316
+ );
317
+ var borrowNEARApy = calcLMRewardApr(
318
+ await fetchValuation(
319
+ this.getBorrowNEARRewardPerWeek(),
320
+ this._networkConnection.provider
321
+ ),
322
+ underlyingPrice!.multipliedBy(totalBorrowed!.formattedAmount()),
323
+ 52
324
+ );
166
325
  var depositMETAApy;
167
- if (isSameAddress(this.underlying.address, networkAddresses.tokens.stNEAR)) {
168
- depositMETAApy = calcLMRewardApr(new BigNumber(50000), underlyingPrice!.multipliedBy(totalDeposited!.formattedAmount()), 12);
326
+ if (
327
+ isSameAddress(this.underlying.address, networkAddresses.tokens.stNEAR)
328
+ ) {
329
+ depositMETAApy = calcLMRewardApr(
330
+ new BigNumber(50000),
331
+ underlyingPrice!.multipliedBy(totalDeposited!.formattedAmount()),
332
+ 12
333
+ );
169
334
  } else {
170
335
  depositMETAApy = new BigNumber(0);
171
336
  }
@@ -189,93 +354,132 @@ export class MoneyMarketRead extends BlockchainEntityRead {
189
354
  ),
190
355
  depositNEARApy: depositNEARApy.toNumber(),
191
356
  borrowNEARApy: borrowNEARApy.toNumber() * -1,
192
- depositMETAApy: depositMETAApy.toNumber()
357
+ depositMETAApy: depositMETAApy.toNumber(),
193
358
  };
194
359
  }
195
360
 
196
361
  public async getUserBorrowBalance(userAddress: string): Promise<TokenAmount> {
197
- const totalBorrow: BN = await this.auToken.callStatic.borrowBalanceCurrent(userAddress);
198
- return new TokenAmount(
199
- this.underlying,
200
- totalBorrow.toString()
201
- )
362
+ const totalBorrow: BN = await this.auToken.callStatic.borrowBalanceCurrent(
363
+ userAddress
364
+ );
365
+ return new TokenAmount(this.underlying, totalBorrow.toString());
202
366
  }
203
367
 
204
- public async getUserDepositBalance(userAddress: string): Promise<TokenAmount> {
205
- const totalDeposit: BN = await this.auToken.callStatic.balanceOfUnderlying(userAddress);
206
- return new TokenAmount(
207
- this.underlying,
208
- totalDeposit.toString()
209
- )
368
+ public async getUserDepositBalance(
369
+ userAddress: string
370
+ ): Promise<TokenAmount> {
371
+ const totalDeposit: BN = await this.auToken.callStatic.balanceOfUnderlying(
372
+ userAddress
373
+ );
374
+ return new TokenAmount(this.underlying, totalDeposit.toString());
210
375
  }
211
376
 
212
377
  private getDepositNEARRewardPerWeek(): TokenAmount {
213
- const NEARToken = new Token(networkAddresses.tokens.WNEAR, getDecimal(networkAddresses.tokens.WNEAR));
378
+ const NEARToken = new Token(
379
+ networkAddresses.tokens.WNEAR,
380
+ getDecimal(networkAddresses.tokens.WNEAR)
381
+ );
214
382
  const rewardStartTime = 1650636000;
215
383
  const rewardStopTime = 1651845600; // May 06, 2022 2 PM GMT
216
384
  const currentTime = getCurrentTimestamp();
217
385
  if (currentTime <= rewardStopTime && currentTime > rewardStartTime) {
218
- const reward = DEPOSIT_NEAR_REWARDS_PER_WEEK[this.underlying.address.toLocaleLowerCase()] ?? "0";
386
+ const reward =
387
+ DEPOSIT_NEAR_REWARDS_PER_WEEK[
388
+ this.underlying.address.toLocaleLowerCase()
389
+ ] ?? '0';
219
390
  return new TokenAmount(NEARToken, reward, false);
220
391
  } else {
221
- return new TokenAmount(NEARToken, "0");
392
+ return new TokenAmount(NEARToken, '0');
222
393
  }
223
394
  }
224
395
 
225
396
  private getBorrowNEARRewardPerWeek(): TokenAmount {
226
- const NEARToken = new Token(networkAddresses.tokens.WNEAR, getDecimal(networkAddresses.tokens.WNEAR));
397
+ const NEARToken = new Token(
398
+ networkAddresses.tokens.WNEAR,
399
+ getDecimal(networkAddresses.tokens.WNEAR)
400
+ );
227
401
  const rewardStartTime = 1650636000;
228
402
  const rewardStopTime = 1651845600; // May 06, 2022 2 PM GMT
229
403
  const currentTime = getCurrentTimestamp();
230
404
  if (currentTime <= rewardStopTime && currentTime > rewardStartTime) {
231
- const reward = BORROW_NEAR_REWARDS_PER_WEEK[this.underlying.address.toLocaleLowerCase()] ?? "0";
405
+ const reward =
406
+ BORROW_NEAR_REWARDS_PER_WEEK[
407
+ this.underlying.address.toLocaleLowerCase()
408
+ ] ?? '0';
232
409
  return new TokenAmount(NEARToken, reward, false);
233
410
  } else {
234
- return new TokenAmount(NEARToken, "0");
411
+ return new TokenAmount(NEARToken, '0');
235
412
  }
236
413
  }
237
414
  }
238
415
 
239
416
  export class MoneyMarketReadWrite extends MoneyMarketRead {
240
-
241
417
  protected _EthRepayHelper: EthRepayHelper;
242
- constructor(networkConnection: NetworkConnection, auToken: Address, underlyingAsset: Address) {
418
+ constructor(
419
+ networkConnection: NetworkConnection,
420
+ auToken: Address,
421
+ underlyingAsset: Address
422
+ ) {
243
423
  super(networkConnection, auToken, underlyingAsset);
244
- this._EthRepayHelper = new Contract(networkAddresses.misc.ETHREPAYHELPER, EthRepayHelperABI.abi, networkConnection.provider) as EthRepayHelper;
424
+ this._EthRepayHelper = new Contract(
425
+ networkAddresses.misc.ETHREPAYHELPER,
426
+ EthRepayHelperABI.abi,
427
+ networkConnection.provider
428
+ ) as EthRepayHelper;
245
429
  }
246
430
 
247
431
  public async deposit(amount: TokenAmount): Promise<TransactionResponse> {
248
432
  if (isSameAddress(amount.token.address, ETHAddress)) {
249
- return (this.auToken as AuETH).connect(this._networkConnection.signer!).mint({value: amount.rawAmount()});
433
+ return (this.auToken as AuETH)
434
+ .connect(this._networkConnection.signer!)
435
+ .mint({ value: amount.rawAmount() });
250
436
  } else {
251
- return (this.auToken as AuErc20).connect(this._networkConnection.signer!).mint(amount.rawAmount());
437
+ return (this.auToken as AuErc20)
438
+ .connect(this._networkConnection.signer!)
439
+ .mint(amount.rawAmount());
252
440
  }
253
441
  }
254
442
  public async borrow(amount: TokenAmount): Promise<TransactionResponse> {
255
- return this.auToken.connect(this._networkConnection.signer!).borrow(amount.rawAmount());
443
+ return this.auToken
444
+ .connect(this._networkConnection.signer!)
445
+ .borrow(amount.rawAmount());
256
446
  }
257
447
  public async withdraw(amount: TokenAmount): Promise<TransactionResponse> {
258
448
  if (new BigNumber(amount.rawAmount()).lt(0)) {
259
- return this.auToken.connect(this._networkConnection.signer!).redeemUnderlying(INF);
449
+ return this.auToken
450
+ .connect(this._networkConnection.signer!)
451
+ .redeemUnderlying(INF);
260
452
  }
261
- return this.auToken.connect(this._networkConnection.signer!).redeemUnderlying(amount.rawAmount());
453
+ return this.auToken
454
+ .connect(this._networkConnection.signer!)
455
+ .redeemUnderlying(amount.rawAmount());
262
456
  }
263
457
  public async repay(amount: TokenAmount): Promise<TransactionResponse> {
264
458
  if (isSameAddress(amount.token.address, ETHAddress)) {
265
- return this._EthRepayHelper.connect(this._networkConnection.signer!).repayBorrow({value: amount.rawAmount()});
459
+ return this._EthRepayHelper
460
+ .connect(this._networkConnection.signer!)
461
+ .repayBorrow({ value: amount.rawAmount() });
266
462
  } else {
267
463
  if (new BigNumber(amount.rawAmount()).lt(0)) {
268
- return this.auToken.connect(this._networkConnection.signer!).repayBorrow(INF);
464
+ return this.auToken
465
+ .connect(this._networkConnection.signer!)
466
+ .repayBorrow(INF);
269
467
  } else {
270
- return this.auToken.connect(this._networkConnection.signer!).repayBorrow(amount.rawAmount());
468
+ return this.auToken
469
+ .connect(this._networkConnection.signer!)
470
+ .repayBorrow(amount.rawAmount());
271
471
  }
272
472
  }
273
473
  }
274
474
  public async enableCollateral(): Promise<TransactionResponse> {
275
- return this._comptroller.connect(this._networkConnection.signer!).enterMarkets([this.auToken.address]);
475
+ return this._comptroller
476
+ .connect(this._networkConnection.signer!)
477
+ .enterMarkets([this.auToken.address]);
276
478
  }
277
479
  public async disableCollateral(): Promise<TransactionResponse> {
278
- return this._comptroller.connect(this._networkConnection.signer!).exitMarket(this.auToken.address);
480
+ return this._comptroller
481
+ .connect(this._networkConnection.signer!)
482
+ .exitMarket(this.auToken.address);
279
483
  }
280
484
  }
281
485
 
@@ -289,10 +493,18 @@ export class MoneyMarket extends BlockchainEntity {
289
493
  this.underlying = validateAndParseAddress(underlying);
290
494
  }
291
495
  public read(networkConnection: NetworkConnection): MoneyMarketRead {
292
- return new MoneyMarketRead(networkConnection, this.address, this.underlying);
496
+ return new MoneyMarketRead(
497
+ networkConnection,
498
+ this.address,
499
+ this.underlying
500
+ );
293
501
  }
294
502
 
295
503
  public readWrite(networkConnection: NetworkConnection): MoneyMarketReadWrite {
296
- return new MoneyMarketReadWrite(networkConnection, this.address, this.underlying);
504
+ return new MoneyMarketReadWrite(
505
+ networkConnection,
506
+ this.address,
507
+ this.underlying
508
+ );
297
509
  }
298
510
  }