@curvefi/api 2.59.1 → 2.60.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.
|
@@ -875,5 +875,29 @@
|
|
|
875
875
|
}
|
|
876
876
|
],
|
|
877
877
|
"gas": "3648"
|
|
878
|
+
},
|
|
879
|
+
{
|
|
880
|
+
"stateMutability": "view",
|
|
881
|
+
"type": "function",
|
|
882
|
+
"name": "manager",
|
|
883
|
+
"inputs": [],
|
|
884
|
+
"outputs": [
|
|
885
|
+
{
|
|
886
|
+
"name": "",
|
|
887
|
+
"type": "address"
|
|
888
|
+
}
|
|
889
|
+
]
|
|
890
|
+
},
|
|
891
|
+
{
|
|
892
|
+
"stateMutability": "view",
|
|
893
|
+
"type": "function",
|
|
894
|
+
"name": "version",
|
|
895
|
+
"inputs": [],
|
|
896
|
+
"outputs": [
|
|
897
|
+
{
|
|
898
|
+
"name": "",
|
|
899
|
+
"type": "string"
|
|
900
|
+
}
|
|
901
|
+
]
|
|
878
902
|
}
|
|
879
903
|
]
|
package/lib/factory/deploy.js
CHANGED
|
@@ -384,8 +384,6 @@ implementationIdx, methodName, oracleAddress, estimateGas) {
|
|
|
384
384
|
throw Error("Max name length = 32");
|
|
385
385
|
if (symbol.length > 10)
|
|
386
386
|
throw Error("Max symbol length = 10");
|
|
387
|
-
if (BN(fee).lt(0.04))
|
|
388
|
-
throw Error("fee must be >= 0.04%. Passed fee = ".concat(fee));
|
|
389
387
|
if (BN(fee).gt(1))
|
|
390
388
|
throw Error("fee must be <= 1%. Passed fee = ".concat(fee));
|
|
391
389
|
if (![0, 1].includes(implementationIdx))
|
|
@@ -34,16 +34,22 @@ export declare class PoolTemplate {
|
|
|
34
34
|
inApi: boolean;
|
|
35
35
|
isGaugeKilled: () => Promise<boolean>;
|
|
36
36
|
gaugeStatus: () => Promise<any>;
|
|
37
|
+
gaugeManager: () => Promise<string>;
|
|
38
|
+
gaugeDistributors: () => Promise<IDict<string>>;
|
|
39
|
+
gaugeVersion: () => Promise<string | null>;
|
|
37
40
|
estimateGas: {
|
|
38
41
|
depositApprove: (amounts: (number | string)[]) => Promise<number | number[]>;
|
|
39
42
|
deposit: (amounts: (number | string)[]) => Promise<number | number[]>;
|
|
43
|
+
depositRewardApprove: (rewardToken: string, amount: number | string) => Promise<number | number[]>;
|
|
40
44
|
depositWrappedApprove: (amounts: (number | string)[]) => Promise<number | number[]>;
|
|
45
|
+
depositReward: (rewardToken: string, amount: string | number, epoch: number) => Promise<number | number[]>;
|
|
41
46
|
depositWrapped: (amounts: (number | string)[]) => Promise<number | number[]>;
|
|
42
47
|
stakeApprove: (lpTokenAmount: number | string) => Promise<number | number[]>;
|
|
43
48
|
stake: (lpTokenAmount: number | string) => Promise<number | number[]>;
|
|
44
49
|
unstake: (lpTokenAmount: number | string) => Promise<number | number[]>;
|
|
45
50
|
claimCrv: () => Promise<number | number[]>;
|
|
46
51
|
claimRewards: () => Promise<number | number[]>;
|
|
52
|
+
addReward: (rewardToken: string, distributor: string) => Promise<number | number[]>;
|
|
47
53
|
depositAndStakeApprove: (amounts: (number | string)[]) => Promise<number | number[]>;
|
|
48
54
|
depositAndStake: (amounts: (number | string)[]) => Promise<number>;
|
|
49
55
|
depositAndStakeWrappedApprove: (amounts: (number | string)[]) => Promise<number | number[]>;
|
|
@@ -263,5 +269,18 @@ export declare class PoolTemplate {
|
|
|
263
269
|
private _underlyingPrices;
|
|
264
270
|
private _wrappedPrices;
|
|
265
271
|
private getGaugeStatus;
|
|
272
|
+
private _addReward;
|
|
273
|
+
addRewardEstimateGas(rewardToken: string, distributor: string): Promise<number | number[]>;
|
|
274
|
+
addReward(rewardToken: string, distributor: string): Promise<string>;
|
|
275
|
+
private getGaugeManager;
|
|
276
|
+
private getGaugeVersion;
|
|
277
|
+
isDepositRewardAvailable(): Promise<boolean>;
|
|
278
|
+
getGaugeDistributors(): Promise<IDict<string>>;
|
|
279
|
+
depositRewardIsApproved(rewardToken: string, amount: number | string): Promise<boolean>;
|
|
280
|
+
private depositRewardApproveEstimateGas;
|
|
281
|
+
depositRewardApprove(rewardToken: string, amount: number | string): Promise<string[]>;
|
|
282
|
+
private _depositReward;
|
|
283
|
+
depositRewardEstimateGas(rewardToken: string, amount: string | number, epoch: number): Promise<number | number[]>;
|
|
284
|
+
depositReward(rewardToken: string, amount: string | number, epoch: number): Promise<string>;
|
|
266
285
|
private getIsGaugeKilled;
|
|
267
286
|
}
|
|
@@ -1182,16 +1182,23 @@ var PoolTemplate = /** @class */ (function () {
|
|
|
1182
1182
|
this.inApi = (_d = poolData.in_api) !== null && _d !== void 0 ? _d : false;
|
|
1183
1183
|
this.isGaugeKilled = this.getIsGaugeKilled.bind(this);
|
|
1184
1184
|
this.gaugeStatus = this.getGaugeStatus.bind(this);
|
|
1185
|
+
this.gaugeManager = this.getGaugeManager.bind(this);
|
|
1186
|
+
this.gaugeDistributors = this.getGaugeDistributors.bind(this);
|
|
1187
|
+
this.gaugeVersion = this.getGaugeVersion.bind(this);
|
|
1188
|
+
this.addReward = this.addReward.bind(this);
|
|
1185
1189
|
this.estimateGas = {
|
|
1186
1190
|
depositApprove: this.depositApproveEstimateGas.bind(this),
|
|
1187
1191
|
deposit: this.depositEstimateGas.bind(this),
|
|
1188
1192
|
depositWrappedApprove: this.depositWrappedApproveEstimateGas.bind(this),
|
|
1193
|
+
depositReward: this.depositRewardEstimateGas.bind(this),
|
|
1189
1194
|
depositWrapped: this.depositWrappedEstimateGas.bind(this),
|
|
1195
|
+
depositRewardApprove: this.depositRewardApproveEstimateGas.bind(this),
|
|
1190
1196
|
stakeApprove: this.stakeApproveEstimateGas.bind(this),
|
|
1191
1197
|
stake: this.stakeEstimateGas.bind(this),
|
|
1192
1198
|
unstake: this.unstakeEstimateGas.bind(this),
|
|
1193
1199
|
claimCrv: this.claimCrvEstimateGas.bind(this),
|
|
1194
1200
|
claimRewards: this.claimRewardsEstimateGas.bind(this),
|
|
1201
|
+
addReward: this.addRewardEstimateGas.bind(this),
|
|
1195
1202
|
depositAndStakeApprove: this.depositAndStakeApproveEstimateGas.bind(this),
|
|
1196
1203
|
depositAndStake: this.depositAndStakeEstimateGas.bind(this),
|
|
1197
1204
|
depositAndStakeWrappedApprove: this.depositAndStakeWrappedApproveEstimateGas.bind(this),
|
|
@@ -3367,6 +3374,224 @@ var PoolTemplate = /** @class */ (function () {
|
|
|
3367
3374
|
});
|
|
3368
3375
|
});
|
|
3369
3376
|
};
|
|
3377
|
+
PoolTemplate.prototype._addReward = function (_reward_token, _distributor, estimateGas) {
|
|
3378
|
+
if (estimateGas === void 0) { estimateGas = false; }
|
|
3379
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
3380
|
+
var gas, gasLimit;
|
|
3381
|
+
return __generator(this, function (_c) {
|
|
3382
|
+
switch (_c.label) {
|
|
3383
|
+
case 0:
|
|
3384
|
+
if (!(this.gauge !== curve.constants.ZERO_ADDRESS && this.gauge)) return [3 /*break*/, 3];
|
|
3385
|
+
return [4 /*yield*/, curve.contracts[this.gauge].contract.add_reward.estimateGas(_reward_token, _distributor, __assign({}, curve.constantOptions))];
|
|
3386
|
+
case 1:
|
|
3387
|
+
gas = _c.sent();
|
|
3388
|
+
if (estimateGas)
|
|
3389
|
+
return [2 /*return*/, smartNumber(gas)];
|
|
3390
|
+
gasLimit = mulBy1_3(DIGas(gas));
|
|
3391
|
+
return [4 /*yield*/, curve.contracts[this.gauge].contract.add_reward(_reward_token, _distributor, __assign(__assign({}, curve.options), { gasLimit: gasLimit }))];
|
|
3392
|
+
case 2: return [2 /*return*/, (_c.sent()).hash];
|
|
3393
|
+
case 3: throw Error("Pool ".concat(this.name, " does not have gauge"));
|
|
3394
|
+
}
|
|
3395
|
+
});
|
|
3396
|
+
});
|
|
3397
|
+
};
|
|
3398
|
+
PoolTemplate.prototype.addRewardEstimateGas = function (rewardToken, distributor) {
|
|
3399
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
3400
|
+
return __generator(this, function (_c) {
|
|
3401
|
+
switch (_c.label) {
|
|
3402
|
+
case 0: return [4 /*yield*/, this._addReward(rewardToken, distributor, true)];
|
|
3403
|
+
case 1:
|
|
3404
|
+
// @ts-ignore
|
|
3405
|
+
return [2 /*return*/, _c.sent()];
|
|
3406
|
+
}
|
|
3407
|
+
});
|
|
3408
|
+
});
|
|
3409
|
+
};
|
|
3410
|
+
PoolTemplate.prototype.addReward = function (rewardToken, distributor) {
|
|
3411
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
3412
|
+
return __generator(this, function (_c) {
|
|
3413
|
+
switch (_c.label) {
|
|
3414
|
+
case 0: return [4 /*yield*/, this._addReward(rewardToken, distributor)];
|
|
3415
|
+
case 1:
|
|
3416
|
+
// @ts-ignore
|
|
3417
|
+
return [2 /*return*/, _c.sent()];
|
|
3418
|
+
}
|
|
3419
|
+
});
|
|
3420
|
+
});
|
|
3421
|
+
};
|
|
3422
|
+
PoolTemplate.prototype.getGaugeManager = function () {
|
|
3423
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
3424
|
+
var e_4;
|
|
3425
|
+
return __generator(this, function (_c) {
|
|
3426
|
+
switch (_c.label) {
|
|
3427
|
+
case 0:
|
|
3428
|
+
if (!(!this.gauge || this.gauge === curve.constants.ZERO_ADDRESS)) return [3 /*break*/, 1];
|
|
3429
|
+
return [2 /*return*/, curve.constants.ZERO_ADDRESS];
|
|
3430
|
+
case 1:
|
|
3431
|
+
_c.trys.push([1, 3, , 4]);
|
|
3432
|
+
return [4 /*yield*/, curve.contracts[this.gauge].contract.manager()];
|
|
3433
|
+
case 2: return [2 /*return*/, _c.sent()];
|
|
3434
|
+
case 3:
|
|
3435
|
+
e_4 = _c.sent();
|
|
3436
|
+
return [2 /*return*/, curve.constants.ZERO_ADDRESS];
|
|
3437
|
+
case 4: return [2 /*return*/];
|
|
3438
|
+
}
|
|
3439
|
+
});
|
|
3440
|
+
});
|
|
3441
|
+
};
|
|
3442
|
+
PoolTemplate.prototype.getGaugeVersion = function () {
|
|
3443
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
3444
|
+
var e_5;
|
|
3445
|
+
return __generator(this, function (_c) {
|
|
3446
|
+
switch (_c.label) {
|
|
3447
|
+
case 0:
|
|
3448
|
+
if (!(!this.gauge || this.gauge === curve.constants.ZERO_ADDRESS)) return [3 /*break*/, 1];
|
|
3449
|
+
return [2 /*return*/, null];
|
|
3450
|
+
case 1:
|
|
3451
|
+
_c.trys.push([1, 3, , 4]);
|
|
3452
|
+
return [4 /*yield*/, curve.contracts[this.gauge].contract.version()];
|
|
3453
|
+
case 2: return [2 /*return*/, _c.sent()];
|
|
3454
|
+
case 3:
|
|
3455
|
+
e_5 = _c.sent();
|
|
3456
|
+
return [2 /*return*/, null];
|
|
3457
|
+
case 4: return [2 /*return*/];
|
|
3458
|
+
}
|
|
3459
|
+
});
|
|
3460
|
+
});
|
|
3461
|
+
};
|
|
3462
|
+
PoolTemplate.prototype.isDepositRewardAvailable = function () {
|
|
3463
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
3464
|
+
var versionsWithDepositReward, version;
|
|
3465
|
+
return __generator(this, function (_c) {
|
|
3466
|
+
switch (_c.label) {
|
|
3467
|
+
case 0:
|
|
3468
|
+
versionsWithDepositReward = ['v6.1.0'];
|
|
3469
|
+
return [4 /*yield*/, this.getGaugeVersion()];
|
|
3470
|
+
case 1:
|
|
3471
|
+
version = _c.sent();
|
|
3472
|
+
return [2 /*return*/, version ? versionsWithDepositReward.includes(version) : Boolean(version)];
|
|
3473
|
+
}
|
|
3474
|
+
});
|
|
3475
|
+
});
|
|
3476
|
+
};
|
|
3477
|
+
PoolTemplate.prototype.getGaugeDistributors = function () {
|
|
3478
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
3479
|
+
var gaugeContract, gaugeMulticallContract, rewardCount, _c, _d, _e, calls, i, rewardTokens, i, rewardData, gaugeDistributors, i;
|
|
3480
|
+
return __generator(this, function (_f) {
|
|
3481
|
+
switch (_f.label) {
|
|
3482
|
+
case 0: return [4 /*yield*/, curve.contracts[this.gauge].contract];
|
|
3483
|
+
case 1:
|
|
3484
|
+
gaugeContract = _f.sent();
|
|
3485
|
+
return [4 /*yield*/, curve.contracts[this.gauge].multicallContract];
|
|
3486
|
+
case 2:
|
|
3487
|
+
gaugeMulticallContract = _f.sent();
|
|
3488
|
+
_c = Number;
|
|
3489
|
+
_e = (_d = curve).formatUnits;
|
|
3490
|
+
return [4 /*yield*/, gaugeContract.reward_count(curve.constantOptions)];
|
|
3491
|
+
case 3:
|
|
3492
|
+
rewardCount = _c.apply(void 0, [_e.apply(_d, [_f.sent(), 0])]);
|
|
3493
|
+
calls = [];
|
|
3494
|
+
for (i = 0; i < rewardCount; i++) {
|
|
3495
|
+
calls.push(gaugeMulticallContract.reward_tokens(i));
|
|
3496
|
+
}
|
|
3497
|
+
return [4 /*yield*/, curve.multicallProvider.all(calls)];
|
|
3498
|
+
case 4:
|
|
3499
|
+
rewardTokens = _f.sent();
|
|
3500
|
+
for (i = 0; i < rewardCount; i++) {
|
|
3501
|
+
calls.push(gaugeMulticallContract.reward_data(rewardTokens[i]));
|
|
3502
|
+
}
|
|
3503
|
+
return [4 /*yield*/, curve.multicallProvider.all(calls)];
|
|
3504
|
+
case 5:
|
|
3505
|
+
rewardData = _f.sent();
|
|
3506
|
+
gaugeDistributors = {};
|
|
3507
|
+
for (i = 0; i < rewardCount; i++) {
|
|
3508
|
+
gaugeDistributors[rewardTokens[i]] = rewardData[i];
|
|
3509
|
+
}
|
|
3510
|
+
return [2 /*return*/, gaugeDistributors];
|
|
3511
|
+
}
|
|
3512
|
+
});
|
|
3513
|
+
});
|
|
3514
|
+
};
|
|
3515
|
+
PoolTemplate.prototype.depositRewardIsApproved = function (rewardToken, amount) {
|
|
3516
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
3517
|
+
return __generator(this, function (_c) {
|
|
3518
|
+
switch (_c.label) {
|
|
3519
|
+
case 0: return [4 /*yield*/, hasAllowance([rewardToken], [amount], curve.signerAddress, this.gauge)];
|
|
3520
|
+
case 1: return [2 /*return*/, _c.sent()];
|
|
3521
|
+
}
|
|
3522
|
+
});
|
|
3523
|
+
});
|
|
3524
|
+
};
|
|
3525
|
+
PoolTemplate.prototype.depositRewardApproveEstimateGas = function (rewardToken, amount) {
|
|
3526
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
3527
|
+
return __generator(this, function (_c) {
|
|
3528
|
+
switch (_c.label) {
|
|
3529
|
+
case 0: return [4 /*yield*/, ensureAllowanceEstimateGas([rewardToken], [amount], this.gauge)];
|
|
3530
|
+
case 1: return [2 /*return*/, _c.sent()];
|
|
3531
|
+
}
|
|
3532
|
+
});
|
|
3533
|
+
});
|
|
3534
|
+
};
|
|
3535
|
+
PoolTemplate.prototype.depositRewardApprove = function (rewardToken, amount) {
|
|
3536
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
3537
|
+
return __generator(this, function (_c) {
|
|
3538
|
+
switch (_c.label) {
|
|
3539
|
+
case 0: return [4 /*yield*/, ensureAllowance([rewardToken], [amount], this.gauge)];
|
|
3540
|
+
case 1: return [2 /*return*/, _c.sent()];
|
|
3541
|
+
}
|
|
3542
|
+
});
|
|
3543
|
+
});
|
|
3544
|
+
};
|
|
3545
|
+
PoolTemplate.prototype._depositReward = function (rewardToken, amount, epoch, estimateGas) {
|
|
3546
|
+
if (estimateGas === void 0) { estimateGas = false; }
|
|
3547
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
3548
|
+
var contract, gas, gasLimit;
|
|
3549
|
+
return __generator(this, function (_c) {
|
|
3550
|
+
switch (_c.label) {
|
|
3551
|
+
case 0:
|
|
3552
|
+
if (!!estimateGas) return [3 /*break*/, 2];
|
|
3553
|
+
return [4 /*yield*/, ensureAllowance([rewardToken], [amount], this.gauge)];
|
|
3554
|
+
case 1:
|
|
3555
|
+
_c.sent();
|
|
3556
|
+
_c.label = 2;
|
|
3557
|
+
case 2:
|
|
3558
|
+
contract = curve.contracts[this.gauge].contract;
|
|
3559
|
+
return [4 /*yield*/, contract.deposit_reward_token.estimateGas(rewardToken, amount, __assign({}, curve.constantOptions))];
|
|
3560
|
+
case 3:
|
|
3561
|
+
gas = _c.sent();
|
|
3562
|
+
if (estimateGas)
|
|
3563
|
+
return [2 /*return*/, smartNumber(gas)];
|
|
3564
|
+
gasLimit = mulBy1_3(DIGas(gas));
|
|
3565
|
+
return [4 /*yield*/, contract.deposit_reward_token(rewardToken, amount, __assign(__assign({}, curve.options), { gasLimit: gasLimit }))];
|
|
3566
|
+
case 4: return [2 /*return*/, (_c.sent()).hash];
|
|
3567
|
+
}
|
|
3568
|
+
});
|
|
3569
|
+
});
|
|
3570
|
+
};
|
|
3571
|
+
PoolTemplate.prototype.depositRewardEstimateGas = function (rewardToken, amount, epoch) {
|
|
3572
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
3573
|
+
return __generator(this, function (_c) {
|
|
3574
|
+
switch (_c.label) {
|
|
3575
|
+
case 0: return [4 /*yield*/, this._depositReward(rewardToken, amount, epoch, true)];
|
|
3576
|
+
case 1:
|
|
3577
|
+
// @ts-ignore
|
|
3578
|
+
return [2 /*return*/, _c.sent()];
|
|
3579
|
+
}
|
|
3580
|
+
});
|
|
3581
|
+
});
|
|
3582
|
+
};
|
|
3583
|
+
PoolTemplate.prototype.depositReward = function (rewardToken, amount, epoch) {
|
|
3584
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
3585
|
+
return __generator(this, function (_c) {
|
|
3586
|
+
switch (_c.label) {
|
|
3587
|
+
case 0: return [4 /*yield*/, this._depositReward(rewardToken, amount, epoch)];
|
|
3588
|
+
case 1:
|
|
3589
|
+
// @ts-ignore
|
|
3590
|
+
return [2 /*return*/, _c.sent()];
|
|
3591
|
+
}
|
|
3592
|
+
});
|
|
3593
|
+
});
|
|
3594
|
+
};
|
|
3370
3595
|
PoolTemplate.prototype.getIsGaugeKilled = function () {
|
|
3371
3596
|
return __awaiter(this, void 0, void 0, function () {
|
|
3372
3597
|
var gaugeData;
|