curvance 1.0.24 → 1.0.25

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.
Files changed (55) hide show
  1. package/dist/abis/BaseCToken.json +13 -5
  2. package/dist/abis/BorrowableCToken.json +13 -5
  3. package/dist/abis/SimpleZapper.json +411 -0
  4. package/dist/chains/index.d.ts +22 -14
  5. package/dist/chains/index.d.ts.map +1 -1
  6. package/dist/chains/monad-testnet.json +82 -74
  7. package/dist/classes/BorrowableCToken.d.ts +51 -0
  8. package/dist/classes/BorrowableCToken.d.ts.map +1 -0
  9. package/dist/classes/BorrowableCToken.js +113 -0
  10. package/dist/classes/BorrowableCToken.js.map +1 -0
  11. package/dist/classes/CToken.d.ts +30 -59
  12. package/dist/classes/CToken.d.ts.map +1 -1
  13. package/dist/classes/CToken.js +191 -133
  14. package/dist/classes/CToken.js.map +1 -1
  15. package/dist/classes/Calldata.d.ts +12 -0
  16. package/dist/classes/Calldata.d.ts.map +1 -0
  17. package/dist/classes/Calldata.js +19 -0
  18. package/dist/classes/Calldata.js.map +1 -0
  19. package/dist/classes/ERC20.d.ts +3 -3
  20. package/dist/classes/ERC20.d.ts.map +1 -1
  21. package/dist/classes/ERC20.js +5 -2
  22. package/dist/classes/ERC20.js.map +1 -1
  23. package/dist/classes/Faucet.d.ts +1 -1
  24. package/dist/classes/Faucet.d.ts.map +1 -1
  25. package/dist/classes/Faucet.js +2 -1
  26. package/dist/classes/Faucet.js.map +1 -1
  27. package/dist/classes/Market.d.ts +8 -7
  28. package/dist/classes/Market.d.ts.map +1 -1
  29. package/dist/classes/Market.js +12 -8
  30. package/dist/classes/Market.js.map +1 -1
  31. package/dist/classes/OracleManager.d.ts +1 -1
  32. package/dist/classes/OracleManager.d.ts.map +1 -1
  33. package/dist/classes/OracleManager.js +2 -1
  34. package/dist/classes/OracleManager.js.map +1 -1
  35. package/dist/classes/ProtocolReader.d.ts +9 -8
  36. package/dist/classes/ProtocolReader.d.ts.map +1 -1
  37. package/dist/classes/ProtocolReader.js +9 -5
  38. package/dist/classes/ProtocolReader.js.map +1 -1
  39. package/dist/classes/Redstone.d.ts +3 -2
  40. package/dist/classes/Redstone.d.ts.map +1 -1
  41. package/dist/classes/Redstone.js +3 -3
  42. package/dist/classes/Redstone.js.map +1 -1
  43. package/dist/classes/Zapper.d.ts +28 -0
  44. package/dist/classes/Zapper.d.ts.map +1 -0
  45. package/dist/classes/Zapper.js +52 -0
  46. package/dist/classes/Zapper.js.map +1 -0
  47. package/dist/helpers.d.ts +34 -15
  48. package/dist/helpers.d.ts.map +1 -1
  49. package/dist/helpers.js +14 -1
  50. package/dist/helpers.js.map +1 -1
  51. package/dist/setup.d.ts +18 -3
  52. package/dist/setup.d.ts.map +1 -1
  53. package/dist/setup.js +31 -14
  54. package/dist/setup.js.map +1 -1
  55. package/package.json +1 -1
@@ -3,29 +3,47 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.BorrowableCToken = exports.CToken = void 0;
6
+ exports.CToken = void 0;
7
+ const ethers_1 = require("ethers");
7
8
  const helpers_1 = require("../helpers");
8
9
  const ProtocolReader_1 = require("./ProtocolReader");
9
10
  const ERC20_1 = require("./ERC20");
11
+ const Calldata_1 = require("./Calldata");
10
12
  const decimal_js_1 = __importDefault(require("decimal.js"));
11
13
  const BaseCToken_json_1 = __importDefault(require("../abis/BaseCToken.json"));
12
- const BorrowableCToken_json_1 = __importDefault(require("../abis/BorrowableCToken.json"));
13
- const IDynamicIRM_json_1 = __importDefault(require("../abis/IDynamicIRM.json"));
14
14
  const Redstone_1 = require("./Redstone");
15
- // BaseCToken ABI
16
- class CToken {
15
+ const Zapper_1 = require("./Zapper");
16
+ const setup_1 = require("../setup");
17
+ class CToken extends Calldata_1.Calldata {
17
18
  provider;
18
19
  address;
19
20
  contract;
20
21
  abi;
21
22
  cache;
22
23
  market;
24
+ zapTypes = [];
25
+ leverageTypes = [];
23
26
  constructor(provider, address, cache, market) {
27
+ super();
24
28
  this.provider = provider;
25
29
  this.address = address;
26
30
  this.contract = (0, helpers_1.contractSetup)(provider, address, BaseCToken_json_1.default);
27
31
  this.cache = cache;
28
32
  this.market = market;
33
+ const chain_config = (0, helpers_1.getChainConfig)();
34
+ const isVault = chain_config.vaults.some(vault => vault.contract == this.asset.address);
35
+ if ("simpleZapper" in this.market.plugins)
36
+ this.zapTypes.push('simple');
37
+ if ("vaultZapper" in this.market.plugins && isVault)
38
+ this.zapTypes.push('vault');
39
+ if ("nativeVaultZapper" in this.market.plugins && isVault)
40
+ this.zapTypes.push('native-vault');
41
+ if ("simplePositionManager" in this.market.plugins)
42
+ this.leverageTypes.push('simple');
43
+ if ("vaultPositionManager" in this.market.plugins && isVault)
44
+ this.leverageTypes.push('vault');
45
+ if ("nativeVaultPositionManager" in this.market.plugins && isVault)
46
+ this.leverageTypes.push('native-vault');
29
47
  }
30
48
  get adapters() { return this.cache.adapters; }
31
49
  get borrowPaused() { return this.cache.borrowPaused; }
@@ -39,8 +57,6 @@ class CToken {
39
57
  get remainingDebt() { return this.cache.debtCap - this.cache.debt; }
40
58
  get asset() { return this.cache.asset; }
41
59
  get isBorrowable() { return this.cache.isBorrowable; }
42
- get canZap() { return "simpleZapper" in this.market.plugins || "vaultZapper" in this.market.plugins; }
43
- get canLeverage() { return "simplePositionManager" in this.market.plugins || "vaultPositionManager" in this.market.plugins; }
44
60
  getCollRatio(inBPS) {
45
61
  return inBPS ? (0, decimal_js_1.default)(this.cache.collRatio).div(helpers_1.BPS) : this.cache.collRatio;
46
62
  }
@@ -119,8 +135,7 @@ class CToken {
119
135
  if (lower) {
120
136
  price = asset ? this.cache.assetPriceLower : this.cache.sharePriceLower;
121
137
  }
122
- // Use 1e18 always against USD
123
- return (0, decimal_js_1.default)(price).div((0, decimal_js_1.default)(1e18));
138
+ return (0, decimal_js_1.default)(price).div(helpers_1.WAD);
124
139
  }
125
140
  getApy() {
126
141
  // TODO: add underlying yield rate
@@ -142,6 +157,53 @@ class CToken {
142
157
  const totalCollateral = await this.contract.marketCollateralPosted();
143
158
  return inUSD ? this.fetchConvertTokensToUsd(totalCollateral) : totalCollateral;
144
159
  }
160
+ getZapper(type) {
161
+ const signer = (0, helpers_1.validateProviderAsSigner)(this.provider);
162
+ let zap_contract;
163
+ switch (type) {
164
+ case 'native-vault':
165
+ zap_contract = this.market.plugins['nativeVaultZapper'];
166
+ break;
167
+ case 'vault':
168
+ zap_contract = this.market.plugins['vaultZapper'];
169
+ break;
170
+ case 'simple':
171
+ zap_contract = this.market.plugins['simpleZapper'];
172
+ break;
173
+ default: throw new Error("Unknown zapper type");
174
+ }
175
+ return new Zapper_1.Zapper(zap_contract, signer, type);
176
+ }
177
+ async isPluginApproved(plugin) {
178
+ const signer = (0, helpers_1.validateProviderAsSigner)(this.provider);
179
+ const plugin_address = this.getPluginAddress(plugin);
180
+ return this.contract.isDelegate(signer.address, plugin_address);
181
+ }
182
+ async approvePlugin(plugin) {
183
+ const plugin_address = this.getPluginAddress(plugin);
184
+ return this.contract.setDelegateApproval(plugin_address, true);
185
+ }
186
+ getPluginAddress(plugin) {
187
+ if (!Zapper_1.zapperTypeToName.has(plugin)) {
188
+ throw new Error("Plugin does not have a contract to map too");
189
+ }
190
+ const plugin_name = Zapper_1.zapperTypeToName.get(plugin);
191
+ if (plugin_name in this.market.plugins == false) {
192
+ throw new Error(`Plugin ${plugin_name} not found in market plugins`);
193
+ }
194
+ return this.market.plugins[plugin_name];
195
+ }
196
+ async getAllowance(check_contract) {
197
+ const signer = (0, helpers_1.validateProviderAsSigner)(this.provider);
198
+ const erc20 = new ERC20_1.ERC20(this.provider, this.address);
199
+ const allowance = await erc20.allowance(signer.address, check_contract);
200
+ return allowance;
201
+ }
202
+ async approve(amount, spender) {
203
+ const erc20 = new ERC20_1.ERC20(this.provider, this.address);
204
+ const tx = await erc20.approve(spender, amount);
205
+ return tx;
206
+ }
145
207
  async fetchDecimals() {
146
208
  const decimals = await this.contract.decimals();
147
209
  this.cache.decimals = decimals;
@@ -200,19 +262,38 @@ class CToken {
200
262
  return this.contract.maxDeposit(receiver);
201
263
  }
202
264
  async transfer(receiver, amount) {
203
- return this.contract.transfer(receiver, amount);
204
- }
205
- async redeemCollateral(shares, receiver, owner) {
206
- return this.oracleRoute("redeemCollateral", [shares, receiver, owner]);
207
- }
208
- async postCollateral(shares) {
209
- return this.oracleRoute("postCollateral", [shares]);
210
- }
211
- async removeCollateral(shares) {
212
- return this.oracleRoute("removeCollateral", [shares]);
213
- }
214
- async withdrawCollateral(assets, receiver, owner) {
215
- return this.oracleRoute("withdrawCollateral", [assets, receiver, owner]);
265
+ const shares = this.convertTokenInput(amount, true);
266
+ return this.contract.transfer(receiver, shares);
267
+ }
268
+ async redeemCollateral(amount, receiver = null, owner = null) {
269
+ const signer = (0, helpers_1.validateProviderAsSigner)(this.provider);
270
+ if (receiver == null)
271
+ receiver = signer.address;
272
+ if (owner == null)
273
+ owner = signer.address;
274
+ const shares = this.convertTokenInput(amount, true);
275
+ const calldata = this.getCallData("redeemCollateral", [shares, receiver, owner]);
276
+ return this.oracleRoute(calldata);
277
+ }
278
+ async postCollateral(amount) {
279
+ const shares = this.convertTokenInput(amount, true);
280
+ const calldata = this.getCallData("postCollateral", [shares]);
281
+ return this.oracleRoute(calldata);
282
+ }
283
+ async removeCollateral(amount) {
284
+ const shares = this.convertTokenInput(amount, true);
285
+ const calldata = this.getCallData("removeCollateral", [shares]);
286
+ return this.oracleRoute(calldata);
287
+ }
288
+ async withdrawCollateral(amount, receiver = null, owner = null) {
289
+ const signer = (0, helpers_1.validateProviderAsSigner)(this.provider);
290
+ if (receiver == null)
291
+ receiver = signer.address;
292
+ if (owner == null)
293
+ owner = signer.address;
294
+ const assets = this.convertTokenInput(amount);
295
+ const calldata = this.getCallData("withdrawCollateral", [assets, receiver, owner]);
296
+ return this.oracleRoute(calldata);
216
297
  }
217
298
  async convertToAssets(shares) {
218
299
  return this.contract.convertToAssets(shares);
@@ -220,10 +301,39 @@ class CToken {
220
301
  async convertToShares(assets) {
221
302
  return this.contract.convertToShares(assets);
222
303
  }
223
- async deposit(assets, receiver) {
224
- return this.oracleRoute("deposit", [assets, receiver]);
225
- }
226
- async depositAsCollateral(assets, receiver) {
304
+ convertTokenInput(amount, inShares = false) {
305
+ const decimals = inShares ? this.decimals : this.asset.decimals;
306
+ return (0, ethers_1.parseUnits)(amount.toString(), Number(decimals));
307
+ }
308
+ async deposit(amount, zap = 'none', receiver = null) {
309
+ const signer = (0, helpers_1.validateProviderAsSigner)(this.provider);
310
+ if (receiver == null)
311
+ receiver = signer.address;
312
+ const assets = this.convertTokenInput(amount);
313
+ let calldata;
314
+ let calldata_overrides = {};
315
+ let zapper = null;
316
+ if (zap == 'native-vault') {
317
+ zapper = this.getZapper(zap);
318
+ calldata = zapper.getNativeZapCalldata(this, assets, false);
319
+ calldata_overrides = { value: assets, to: zapper.address };
320
+ }
321
+ else if (zap != 'none') {
322
+ // TODO: implement vault zap
323
+ // TODO: implement simple zap
324
+ throw new Error("This zap type is not supported");
325
+ }
326
+ else {
327
+ calldata = this.getCallData("deposit", [assets, receiver]);
328
+ }
329
+ await this._checkDepositApprovals(signer, null, assets);
330
+ return this.oracleRoute(calldata, calldata_overrides);
331
+ }
332
+ async depositAsCollateral(amount, zap = 'none', receiver = null) {
333
+ const signer = (0, helpers_1.validateProviderAsSigner)(this.provider);
334
+ if (receiver == null)
335
+ receiver = signer.address;
336
+ const assets = this.convertTokenInput(amount);
227
337
  const collateralCapError = "There is not enough collateral left in this tokens collateral cap for this deposit.";
228
338
  if (this.remainingCollateral == 0n)
229
339
  throw new Error(collateralCapError);
@@ -233,10 +343,32 @@ class CToken {
233
343
  throw new Error(collateralCapError);
234
344
  }
235
345
  }
236
- return this.oracleRoute("depositAsCollateral", [assets, receiver]);
237
- }
238
- async redeem(shares, receiver, owner) {
239
- return this.oracleRoute("redeem", [shares, receiver, owner]);
346
+ let calldata;
347
+ let call_overrides = {};
348
+ let zapper = null;
349
+ if (zap == 'native-vault') {
350
+ zapper = this.getZapper(zap);
351
+ calldata = zapper.getNativeZapCalldata(this, assets, true);
352
+ call_overrides = { value: assets, to: zapper.address };
353
+ }
354
+ else if (zap != 'none') {
355
+ throw new Error("This zap type is not supported");
356
+ }
357
+ else {
358
+ calldata = this.getCallData("depositAsCollateral", [assets, receiver]);
359
+ }
360
+ await this._checkDepositApprovals(signer, zapper, assets);
361
+ return this.oracleRoute(calldata, call_overrides);
362
+ }
363
+ async redeem(amount, receiver = null, owner = null) {
364
+ const signer = (0, helpers_1.validateProviderAsSigner)(this.provider);
365
+ if (receiver == null)
366
+ receiver = signer.address;
367
+ if (owner == null)
368
+ owner = signer.address;
369
+ const shares = this.convertTokenInput(amount, true);
370
+ const calldata = this.getCallData("redeem", [shares, receiver, owner]);
371
+ return this.oracleRoute(calldata);
240
372
  }
241
373
  async collateralPosted(account) {
242
374
  return this.contract.collateralPosted(account);
@@ -250,7 +382,6 @@ class CToken {
250
382
  asset: snapshot.asset,
251
383
  decimals: BigInt(snapshot.decimals),
252
384
  isCollateral: snapshot.isCollateral,
253
- exchangeRate: BigInt(snapshot.exchangeRate),
254
385
  collateralPosted: BigInt(snapshot.collateralPosted),
255
386
  debtBalance: BigInt(snapshot.debtBalance)
256
387
  };
@@ -265,118 +396,45 @@ class CToken {
265
396
  const tokenAmountDecimal = (0, decimal_js_1.default)(tokenAmount).div(helpers_1.WAD_DECIMAL);
266
397
  return this.getPrice(asset).mul(tokenAmountDecimal);
267
398
  }
268
- buildMultiCall(functionName, exec_params) {
269
- const encodedFunc = this.contract.interface.encodeFunctionData(functionName, exec_params);
399
+ buildMultiCallAction(calldata) {
270
400
  return {
271
401
  target: this.address,
272
402
  isPriceUpdate: false,
273
- data: encodedFunc
403
+ data: calldata
274
404
  };
275
405
  }
276
- async oracleRoute(functionName, exec_params) {
277
- const adapter_enums = this.adapters.map(num => Number(num));
278
- if (adapter_enums.includes(ProtocolReader_1.AdaptorTypes.REDSTONE_CORE)) {
279
- const price_update = await Redstone_1.Redstone.buildMulticallStruct(this);
280
- const token_action = await this.buildMultiCall(functionName, exec_params);
281
- return this.multicall([price_update, token_action]);
406
+ async _checkDepositApprovals(signer, zapper, assets) {
407
+ if (setup_1.setup_config.approval_protection && zapper) {
408
+ const plugin_allowed = await this.isPluginApproved(zapper.type);
409
+ if (!plugin_allowed) {
410
+ throw new Error(`Please approve the ${zapper.type} Zapper to be able to move ${this.symbol} on your behalf.`);
411
+ }
412
+ }
413
+ else if (setup_1.setup_config.approval_protection) {
414
+ const asset = this.getAsset(true);
415
+ const allowance = await asset.allowance(signer.address, this.address);
416
+ if (allowance < assets) {
417
+ throw new Error(`Please approve the ${asset.symbol} token for ${this.symbol}.`);
418
+ }
282
419
  }
283
- return this.contract[functionName](...exec_params);
284
- }
285
- }
286
- exports.CToken = CToken;
287
- // BorrowableCToken
288
- class BorrowableCToken extends CToken {
289
- contract;
290
- constructor(provider, address, cache, market) {
291
- super(provider, address, cache, market);
292
- this.contract = (0, helpers_1.contractSetup)(provider, address, BorrowableCToken_json_1.default);
293
- }
294
- get liquidity() { return this.cache.liquidity; }
295
- get borrowRate() { return this.cache.borrowRate; }
296
- get predictedBorrowRate() { return this.cache.predictedBorrowRate; }
297
- get utilizationRate() { return this.cache.utilizationRate; }
298
- get supplyRate() { return this.cache.supplyRate; }
299
- borrowChange(amount, rateType) {
300
- const rate = this.borrowRate;
301
- const rate_seconds = (0, helpers_1.getRateSeconds)(rateType);
302
- const rate_percent = (0, decimal_js_1.default)(rate * rate_seconds).div(helpers_1.BPS);
303
- return amount.mul(rate_percent);
304
420
  }
305
- async depositAsCollateral(assets, receiver) {
306
- if (this.cache.userDebt > 0) {
307
- throw new Error("Cannot deposit as collateral when there is outstanding debt");
421
+ async oracleRoute(calldata, override = {}) {
422
+ const price_updates = await this.getPriceUpdates();
423
+ if (price_updates.length > 0) {
424
+ const token_action = this.buildMultiCallAction(calldata);
425
+ calldata = this.getCallData("multicall", [[...price_updates, token_action]]);
308
426
  }
309
- return this.oracleRoute("depositAsCollateral", [assets, receiver]);
427
+ return this.executeCallData(calldata, override);
310
428
  }
311
- async postCollateral(shares) {
312
- if (this.cache.userDebt > 0) {
313
- throw new Error("Cannot post collateral when there is outstanding debt");
429
+ async getPriceUpdates() {
430
+ const adapter_enums = this.adapters.map(num => Number(num));
431
+ let price_updates = [];
432
+ if (adapter_enums.includes(ProtocolReader_1.AdaptorTypes.REDSTONE_CORE)) {
433
+ const redstone = await Redstone_1.Redstone.buildMultiCallAction(this);
434
+ price_updates.push(redstone);
314
435
  }
315
- return this.oracleRoute("postCollateral", [shares]);
316
- }
317
- async fetchDebt(inUSD = true) {
318
- const totalDebt = await this.contract.marketOutstandingDebt();
319
- return inUSD ? this.fetchConvertTokensToUsd(totalDebt) : totalDebt;
320
- }
321
- async borrow(amount, receiver) {
322
- return this.oracleRoute("borrow", [amount, receiver]);
323
- }
324
- async dynamicIRM() {
325
- const irm_addr = await this.contract.IRM();
326
- return (0, helpers_1.contractSetup)(this.provider, irm_addr, IDynamicIRM_json_1.default);
327
- }
328
- async fetchBorrowRate() {
329
- const irm = await this.dynamicIRM();
330
- const assetsHeld = await this.totalAssets();
331
- const debt = await this.contract.marketOutstandingDebt();
332
- const borrowRate = (await irm.borrowRate(assetsHeld, debt)) * helpers_1.SECONDS_PER_YEAR;
333
- this.cache.borrowRate = borrowRate;
334
- return borrowRate;
335
- }
336
- async fetchPredictedBorrowRate() {
337
- const irm = await this.dynamicIRM();
338
- const assetsHeld = await this.totalAssets();
339
- const debt = await this.contract.marketOutstandingDebt();
340
- const predictedBorrowRate = (await irm.predictedBorrowRate(assetsHeld, debt)) * helpers_1.SECONDS_PER_YEAR;
341
- this.cache.predictedBorrowRate = predictedBorrowRate;
342
- return predictedBorrowRate;
343
- }
344
- async fetchUtilizationRate() {
345
- const irm = await this.dynamicIRM();
346
- const assetsHeld = await this.totalAssets();
347
- const debt = await this.contract.marketOutstandingDebt();
348
- const utilizationRate = (await irm.utilizationRate(assetsHeld, debt)) * helpers_1.SECONDS_PER_YEAR;
349
- this.cache.utilizationRate = utilizationRate;
350
- return utilizationRate;
351
- }
352
- async fetchSupplyRate() {
353
- const irm = await this.dynamicIRM();
354
- const assetsHeld = await this.totalAssets();
355
- const debt = await this.contract.marketOutstandingDebt();
356
- const fee = await this.contract.interestFee();
357
- const supplyRate = (await irm.supplyRate(assetsHeld, debt, fee)) * helpers_1.SECONDS_PER_YEAR;
358
- this.cache.supplyRate = supplyRate;
359
- return supplyRate;
360
- }
361
- async fetchLiquidity() {
362
- const assetsHeld = await this.contract.totalAssets();
363
- const debt = await this.contract.marketOutstandingDebt();
364
- const liquidity = assetsHeld - debt;
365
- this.cache.liquidity = liquidity;
366
- return liquidity;
367
- }
368
- async repay(amount) {
369
- return this.oracleRoute("repay", [amount]);
370
- }
371
- async interestFee() {
372
- return this.contract.interestFee();
373
- }
374
- async marketOutstandingDebt() {
375
- return this.contract.marketOutstandingDebt();
376
- }
377
- async debtBalance(account) {
378
- return this.contract.debtBalance(account);
436
+ return price_updates;
379
437
  }
380
438
  }
381
- exports.BorrowableCToken = BorrowableCToken;
439
+ exports.CToken = CToken;
382
440
  //# sourceMappingURL=CToken.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CToken.js","sourceRoot":"","sources":["../../src/classes/CToken.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CToken.js","sourceRoot":"","sources":["../../src/classes/CToken.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import { Contract, TransactionResponse } from "ethers";
2
+ import { address, bytes, curvance_provider } from "../types";
3
+ export declare abstract class Calldata<T> {
4
+ abstract address: address;
5
+ abstract contract: Contract & T;
6
+ abstract provider: curvance_provider;
7
+ getCallData(functionName: string, exec_params: any[]): bytes;
8
+ executeCallData(calldata: bytes, overrides?: {
9
+ [key: string]: any;
10
+ }): Promise<TransactionResponse>;
11
+ }
12
+ //# sourceMappingURL=Calldata.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Calldata.d.ts","sourceRoot":"","sources":["../../src/classes/Calldata.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,QAAQ,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAG7D,8BAAsB,QAAQ,CAAC,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,QAAQ,GAAG,CAAC,CAAC;IAChC,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAC;IAErC,WAAW,CAAC,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,EAAE,GACgC,KAAK;IAGnF,eAAe,CAAC,QAAQ,EAAE,KAAK,EAAE,SAAS,GAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAO,GAAG,OAAO,CAAC,mBAAmB,CAAC;CAQ/G"}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Calldata = void 0;
4
+ const helpers_1 = require("../helpers");
5
+ class Calldata {
6
+ getCallData(functionName, exec_params) {
7
+ return this.contract.interface.encodeFunctionData(functionName, exec_params);
8
+ }
9
+ async executeCallData(calldata, overrides = {}) {
10
+ const signer = (0, helpers_1.validateProviderAsSigner)(this.provider);
11
+ return signer.sendTransaction({
12
+ to: this.address,
13
+ data: calldata,
14
+ ...overrides
15
+ });
16
+ }
17
+ }
18
+ exports.Calldata = Calldata;
19
+ //# sourceMappingURL=Calldata.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Calldata.js","sourceRoot":"","sources":["../../src/classes/Calldata.ts"],"names":[],"mappings":";;;AAEA,wCAAsD;AAEtD,MAAsB,QAAQ;IAK1B,WAAW,CAAC,YAAoB,EAAE,WAAkB;QAChD,OAAO,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,kBAAkB,CAAC,YAAY,EAAE,WAAW,CAAU,CAAC;IAC1F,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,QAAe,EAAE,YAAoC,EAAE;QACzE,MAAM,MAAM,GAAG,IAAA,kCAAwB,EAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACvD,OAAO,MAAM,CAAC,eAAe,CAAC;YAC1B,EAAE,EAAE,IAAI,CAAC,OAAO;YAChB,IAAI,EAAE,QAAQ;YACd,GAAG,SAAS;SACf,CAAC,CAAC;IACP,CAAC;CACJ;AAjBD,4BAiBC"}
@@ -1,7 +1,7 @@
1
1
  import { TransactionResponse } from "ethers";
2
2
  import { Contract } from "ethers";
3
3
  import { StaticMarketAsset } from "./ProtocolReader";
4
- import { address, curvance_provider } from "../types";
4
+ import { address, curvance_provider, TokenInput } from "../types";
5
5
  export interface IERC20 {
6
6
  balanceOf(account: address): Promise<bigint>;
7
7
  transfer(to: address, amount: bigint): Promise<TransactionResponse>;
@@ -23,8 +23,8 @@ export declare class ERC20 {
23
23
  get decimals(): bigint | undefined;
24
24
  get totalSupply(): bigint | undefined;
25
25
  balanceOf(account: address): Promise<bigint>;
26
- transfer(to: address, amount: bigint): Promise<TransactionResponse>;
27
- approve(spender: address, amount: bigint): Promise<TransactionResponse>;
26
+ transfer(to: address, amount: TokenInput): Promise<TransactionResponse>;
27
+ approve(spender: address, amount: TokenInput | null): Promise<TransactionResponse>;
28
28
  fetchName(): Promise<string>;
29
29
  fetchSymbol(): Promise<string>;
30
30
  fetchDecimals(): Promise<bigint>;
@@ -1 +1 @@
1
- {"version":3,"file":"ERC20.d.ts","sourceRoot":"","sources":["../../src/classes/ERC20.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,QAAQ,CAAC;AAE7C,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAClC,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAEtD,MAAM,WAAW,MAAM;IACnB,SAAS,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC7C,QAAQ,CAAC,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;IACpE,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;IACxE,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IACxB,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAC1B,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAC5B,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAC/B,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAChE;AAED,qBAAa,KAAK;IACd,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,QAAQ,GAAG,MAAM,CAAC;IAC5B,KAAK,EAAE,iBAAiB,GAAG,SAAS,CAAa;gBAG7C,QAAQ,EAAE,iBAAiB,EAC3B,OAAO,EAAE,OAAO,EAChB,KAAK,GAAE,iBAAiB,GAAG,SAAqB;IAgBpD,IAAI,IAAI,uBAA+B;IACvC,IAAI,MAAM,uBAAiC;IAC3C,IAAI,QAAQ,uBAAmC;IAC/C,IAAI,WAAW,uBAAsC;IAE/C,SAAS,CAAC,OAAO,EAAE,OAAO;IAI1B,QAAQ,CAAC,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM;IAIpC,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM;IAIxC,SAAS;IAMT,WAAW;IAMX,aAAa;IAMb,gBAAgB;IAMhB,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO;IAIhD,OAAO,CAAC,QAAQ;CAMnB"}
1
+ {"version":3,"file":"ERC20.d.ts","sourceRoot":"","sources":["../../src/classes/ERC20.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,mBAAmB,EAAE,MAAM,QAAQ,CAAC;AAEzD,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAClC,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAElE,MAAM,WAAW,MAAM;IACnB,SAAS,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC7C,QAAQ,CAAC,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;IACpE,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;IACxE,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IACxB,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAC1B,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAC5B,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAC/B,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAChE;AAED,qBAAa,KAAK;IACd,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,QAAQ,GAAG,MAAM,CAAC;IAC5B,KAAK,EAAE,iBAAiB,GAAG,SAAS,CAAa;gBAG7C,QAAQ,EAAE,iBAAiB,EAC3B,OAAO,EAAE,OAAO,EAChB,KAAK,GAAE,iBAAiB,GAAG,SAAqB;IAgBpD,IAAI,IAAI,uBAA+B;IACvC,IAAI,MAAM,uBAAiC;IAC3C,IAAI,QAAQ,uBAAmC;IAC/C,IAAI,WAAW,uBAAsC;IAE/C,SAAS,CAAC,OAAO,EAAE,OAAO;IAI1B,QAAQ,CAAC,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU;IAKxC,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,GAAG,IAAI;IAKnD,SAAS;IAMT,WAAW;IAMX,aAAa;IAMb,gBAAgB;IAMhB,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO;IAIhD,OAAO,CAAC,QAAQ;CAMnB"}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ERC20 = void 0;
4
+ const ethers_1 = require("ethers");
4
5
  const helpers_1 = require("../helpers");
5
6
  class ERC20 {
6
7
  provider;
@@ -29,10 +30,12 @@ class ERC20 {
29
30
  return this.contract.balanceOf(account);
30
31
  }
31
32
  async transfer(to, amount) {
32
- return this.contract.transfer(to, amount);
33
+ const tokens = (0, ethers_1.parseUnits)(amount.toString(), Number(this.decimals));
34
+ return this.contract.transfer(to, tokens);
33
35
  }
34
36
  async approve(spender, amount) {
35
- return this.contract.approve(spender, amount);
37
+ const tokens = amount == null ? helpers_1.UINT256_MAX : (0, ethers_1.parseUnits)(amount.toString(), Number(this.decimals));
38
+ return this.contract.approve(spender, tokens);
36
39
  }
37
40
  async fetchName() {
38
41
  const name = await this.contract.name();
@@ -1 +1 @@
1
- {"version":3,"file":"ERC20.js","sourceRoot":"","sources":["../../src/classes/ERC20.ts"],"names":[],"mappings":";;;AACA,wCAA2C;AAgB3C,MAAa,KAAK;IACd,QAAQ,CAAoB;IAC5B,OAAO,CAAU;IACjB,QAAQ,CAAoB;IAC5B,KAAK,GAAkC,SAAS,CAAC;IAEjD,YACI,QAA2B,EAC3B,OAAgB,EAChB,QAAuC,SAAS;QAEhD,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,QAAQ,GAAG,IAAA,uBAAa,EAAS,QAAQ,EAAE,OAAO,EAAE;YACrD,0DAA0D;YAC1D,8DAA8D;YAC9D,kEAAkE;YAClE,uCAAuC;YACvC,yCAAyC;YACzC,0CAA0C;YAC1C,2EAA2E;SAC9E,CAAC,CAAC;IACP,CAAC;IAED,IAAI,IAAI,KAAK,OAAO,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;IACvC,IAAI,MAAM,KAAK,OAAO,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;IAC3C,IAAI,QAAQ,KAAK,OAAO,IAAI,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC/C,IAAI,WAAW,KAAK,OAAO,IAAI,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC;IAErD,KAAK,CAAC,SAAS,CAAC,OAAgB;QAC5B,OAAO,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IAC5C,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,EAAW,EAAE,MAAc;QACtC,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;IAC9C,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,OAAgB,EAAE,MAAc;QAC1C,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAClD,CAAC;IAED,KAAK,CAAC,SAAS;QACX,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QACxC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAC5B,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,WAAW;QACb,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;QAC5C,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAChC,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,KAAK,CAAC,aAAa;QACf,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;QAChD,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QACpC,OAAO,QAAQ,CAAC;IACpB,CAAC;IAED,KAAK,CAAC,gBAAgB;QAClB,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;QACtD,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;QAC1C,OAAO,WAAW,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,KAAc,EAAE,OAAgB;QAC5C,OAAO,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACnD,CAAC;IAEO,QAAQ,CAAoC,GAAM,EAAE,KAA2B;QACnF,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YACd,IAAI,CAAC,KAAK,GAAG,EAAuB,CAAC;QACzC,CAAC;QACD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IAC5B,CAAC;CACJ;AA5ED,sBA4EC"}
1
+ {"version":3,"file":"ERC20.js","sourceRoot":"","sources":["../../src/classes/ERC20.ts"],"names":[],"mappings":"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"}
@@ -12,7 +12,7 @@ export declare class Faucet {
12
12
  address: address;
13
13
  contract: Contract & IFaucet;
14
14
  token_symbols: string[];
15
- constructor(provider: curvance_provider, address: address);
15
+ constructor(address: address, provider?: curvance_provider);
16
16
  lastClaimed(user: address, token: address): Promise<bigint>;
17
17
  multiLastClaimed(user: address, tokens: address[]): Promise<Date[]>;
18
18
  tokensAvailable(tokens: address[]): Promise<{
@@ -1 +1 @@
1
- {"version":3,"file":"Faucet.d.ts","sourceRoot":"","sources":["../../src/classes/Faucet.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAClC,OAAO,EAAE,mBAAmB,EAAE,MAAM,QAAQ,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAEtD,MAAM,WAAW,OAAO;IACpB,eAAe,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAChE,gBAAgB,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACtE,eAAe,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IACvD,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;CACzD;AAED,qBAAa,MAAM;IACf,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC;IAE7B,aAAa,WAQX;gBAEU,QAAQ,EAAE,iBAAiB,EAAE,OAAO,EAAE,OAAO;IAWnD,WAAW,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO;IAIzC,gBAAgB,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE;IAWjD,eAAe,CAAC,MAAM,EAAE,OAAO,EAAE;;;IAYjC,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE;CAG/B"}
1
+ {"version":3,"file":"Faucet.d.ts","sourceRoot":"","sources":["../../src/classes/Faucet.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAClC,OAAO,EAAE,mBAAmB,EAAE,MAAM,QAAQ,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAGtD,MAAM,WAAW,OAAO;IACpB,eAAe,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAChE,gBAAgB,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACtE,eAAe,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IACvD,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;CACzD;AAED,qBAAa,MAAM;IACf,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC;IAE7B,aAAa,WAQX;gBAEU,OAAO,EAAE,OAAO,EAAE,QAAQ,GAAE,iBAAyC;IAW3E,WAAW,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO;IAIzC,gBAAgB,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE;IAWjD,eAAe,CAAC,MAAM,EAAE,OAAO,EAAE;;;IAYjC,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE;CAG/B"}
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Faucet = void 0;
4
4
  const helpers_1 = require("../helpers");
5
+ const setup_1 = require("../setup");
5
6
  class Faucet {
6
7
  provider;
7
8
  address;
@@ -15,7 +16,7 @@ class Faucet {
15
16
  "mETH",
16
17
  "mUSD"
17
18
  ];
18
- constructor(provider, address) {
19
+ constructor(address, provider = setup_1.setup_config.provider) {
19
20
  this.provider = provider;
20
21
  this.address = address;
21
22
  this.contract = (0, helpers_1.contractSetup)(provider, this.address, [