@curvefi/api 1.16.1 → 1.18.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +98 -0
- package/lib/constants/abis/abis-ethereum.js +6 -6
- package/lib/constants/abis/json/deposit_and_stake.json +51 -0
- package/lib/constants/abis/json/factory-v2/DepositZapMetaBtcPolygon.json +197 -0
- package/lib/constants/abis/json/factory-v2/DepositZapMetaUsdPolygon.json +197 -0
- package/lib/constants/abis/json/factory-v2/MetaBTC.json +919 -0
- package/lib/constants/abis/json/factory-v2/MetaBTCBalances.json +932 -0
- package/lib/constants/abis/json/factory-v2/MetaBTCBalancesRen.json +932 -0
- package/lib/constants/abis/json/factory-v2/MetaBTCRen.json +919 -0
- package/lib/constants/abis/json/factory-v2/MetaUSD.json +919 -0
- package/lib/constants/abis/json/factory-v2/MetaUSDBalances.json +932 -0
- package/lib/constants/abis/json/factory-v2/Plain2Balances.json +845 -0
- package/lib/constants/abis/json/factory-v2/Plain2Basic.json +845 -0
- package/lib/constants/abis/json/factory-v2/Plain2ETH.json +845 -0
- package/lib/constants/abis/json/factory-v2/Plain2Optimized.json +844 -0
- package/lib/constants/abis/json/factory-v2/Plain3Balances.json +845 -0
- package/lib/constants/abis/json/factory-v2/Plain3Basic.json +845 -0
- package/lib/constants/abis/json/factory-v2/Plain3ETH.json +845 -0
- package/lib/constants/abis/json/factory-v2/Plain3Optimized.json +845 -0
- package/lib/constants/abis/json/factory-v2/Plain4Balances.json +845 -0
- package/lib/constants/abis/json/factory-v2/Plain4Basic.json +845 -0
- package/lib/constants/abis/json/factory-v2/Plain4ETH.json +845 -0
- package/lib/constants/abis/json/factory-v2/Plain4Optimized.json +845 -0
- package/lib/constants/abis/json/factory.json +1063 -0
- package/lib/constants/aliases.d.ts +4 -0
- package/lib/constants/aliases.js +4 -0
- package/lib/constants/coins-polygon.js +3 -2
- package/lib/curve.d.ts +4 -0
- package/lib/curve.js +44 -0
- package/lib/factory.d.ts +32 -0
- package/lib/factory.js +607 -0
- package/lib/index.d.ts +4 -0
- package/lib/index.js +15 -0
- package/lib/interfaces.d.ts +15 -1
- package/lib/pools.d.ts +22 -0
- package/lib/pools.js +462 -69
- package/lib/utils.d.ts +8 -1
- package/lib/utils.js +121 -8
- package/package.json +4 -2
|
@@ -5,6 +5,8 @@ export declare const ALIASES_ETHEREUM: {
|
|
|
5
5
|
gauge_controller: string;
|
|
6
6
|
address_provider: string;
|
|
7
7
|
router: string;
|
|
8
|
+
deposit_and_stake: string;
|
|
9
|
+
factory: string;
|
|
8
10
|
registry_exchange: string;
|
|
9
11
|
};
|
|
10
12
|
export declare const ALIASES_POLYGON: {
|
|
@@ -14,5 +16,7 @@ export declare const ALIASES_POLYGON: {
|
|
|
14
16
|
gauge_controller: string;
|
|
15
17
|
address_provider: string;
|
|
16
18
|
router: string;
|
|
19
|
+
deposit_and_stake: string;
|
|
20
|
+
factory: string;
|
|
17
21
|
registry_exchange: string;
|
|
18
22
|
};
|
package/lib/constants/aliases.js
CHANGED
|
@@ -8,6 +8,8 @@ exports.ALIASES_ETHEREUM = {
|
|
|
8
8
|
"gauge_controller": "0x2F50D538606Fa9EDD2B11E2446BEb18C9D5846bB",
|
|
9
9
|
"address_provider": "0x0000000022d53366457f9d5e68ec105046fc4383",
|
|
10
10
|
"router": "0xfA9a30350048B2BF66865ee20363067c66f67e58",
|
|
11
|
+
"deposit_and_stake": "0x271fbE8aB7f1fB262f81C77Ea5303F03DA9d3d6A",
|
|
12
|
+
"factory": '0xb9fc157394af804a3578134a6585c0dc9cc990d4',
|
|
11
13
|
"registry_exchange": "",
|
|
12
14
|
};
|
|
13
15
|
exports.ALIASES_POLYGON = {
|
|
@@ -17,5 +19,7 @@ exports.ALIASES_POLYGON = {
|
|
|
17
19
|
"gauge_controller": "0x2F50D538606Fa9EDD2B11E2446BEb18C9D5846bB",
|
|
18
20
|
"address_provider": "0x0000000022d53366457f9d5e68ec105046fc4383",
|
|
19
21
|
"router": "0xfA9a30350048B2BF66865ee20363067c66f67e58",
|
|
22
|
+
"deposit_and_stake": "0x43FF7b96808988C9d19C1d05Ef19658B03e8a143",
|
|
23
|
+
"factory": '0x722272d36ef0da72ff51c5a65db7b870e2e8d4ee',
|
|
20
24
|
"registry_exchange": "",
|
|
21
25
|
};
|
|
@@ -44,7 +44,7 @@ exports.USD_COINS_POLYGON = {
|
|
|
44
44
|
};
|
|
45
45
|
// @ts-ignore
|
|
46
46
|
exports.USD_COINS_LOWER_CASE_POLYGON = Object.fromEntries(Object.entries(exports.USD_COINS_POLYGON).map(function (entry) { return [entry[0], entry[1].toLowerCase()]; }));
|
|
47
|
-
exports.COINS_POLYGON = __assign(__assign(__assign(__assign(__assign(__assign({}, exports.BTC_COINS_POLYGON), exports.ETH_COINS_POLYGON), exports.LINK_COINS_POLYGON), exports.EUR_COINS_POLYGON), exports.USD_COINS_POLYGON), { crv: "0x172370d5cd63279efa6d502dab29171933a610af" });
|
|
47
|
+
exports.COINS_POLYGON = __assign(__assign(__assign(__assign(__assign(__assign({}, exports.BTC_COINS_POLYGON), exports.ETH_COINS_POLYGON), exports.LINK_COINS_POLYGON), exports.EUR_COINS_POLYGON), exports.USD_COINS_POLYGON), { crv: "0x172370d5cd63279efa6d502dab29171933a610af", matic: "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE" });
|
|
48
48
|
exports.DECIMALS_POLYGON = {
|
|
49
49
|
"0x8f3cf7ad23cd3cadbd9735aff958023239c6a063": 18,
|
|
50
50
|
"0x2791bca1f2de4661ed88a30c99a7a9449aa84174": 6,
|
|
@@ -59,7 +59,8 @@ exports.DECIMALS_POLYGON = {
|
|
|
59
59
|
"0x7ceB23fD6bC0adD59E62ac25578270cFf1b9f619": 18,
|
|
60
60
|
"0x28424507fefb6f7f8E9D3860F56504E4e5f5f390": 18,
|
|
61
61
|
"0x7BDF330f423Ea880FF95fC41A280fD5eCFD3D09f": 6,
|
|
62
|
-
"0x172370d5cd63279efa6d502dab29171933a610af": 18,
|
|
62
|
+
"0x172370d5cd63279efa6d502dab29171933a610af": 18,
|
|
63
|
+
"0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE": 18, // MATIC
|
|
63
64
|
};
|
|
64
65
|
// @ts-ignore
|
|
65
66
|
exports.DECIMALS_LOWER_CASE_POLYGON = Object.fromEntries(Object.entries(exports.DECIMALS_POLYGON).map(function (entry) { return [entry[0].toLowerCase(), entry[1]]; }));
|
package/lib/curve.d.ts
CHANGED
|
@@ -27,6 +27,8 @@ export declare let ALIASES: {
|
|
|
27
27
|
gauge_controller: string;
|
|
28
28
|
address_provider: string;
|
|
29
29
|
router: string;
|
|
30
|
+
deposit_and_stake: string;
|
|
31
|
+
factory: string;
|
|
30
32
|
registry_exchange: string;
|
|
31
33
|
};
|
|
32
34
|
declare class Curve {
|
|
@@ -54,6 +56,7 @@ declare class Curve {
|
|
|
54
56
|
maxFeePerGas?: number | ethers.BigNumber;
|
|
55
57
|
maxPriorityFeePerGas?: number | ethers.BigNumber;
|
|
56
58
|
};
|
|
59
|
+
constants: DictInterface<any>;
|
|
57
60
|
constructor();
|
|
58
61
|
init(providerType: 'JsonRpc' | 'Web3' | 'Infura' | 'Alchemy', providerSettings: {
|
|
59
62
|
url?: string;
|
|
@@ -69,6 +72,7 @@ declare class Curve {
|
|
|
69
72
|
maxPriorityFeePerGas?: number;
|
|
70
73
|
chainId?: number;
|
|
71
74
|
}): Promise<void>;
|
|
75
|
+
fetchFactoryPools(): Promise<void>;
|
|
72
76
|
setCustomFeeData(customFeeData: {
|
|
73
77
|
gasPrice?: number;
|
|
74
78
|
maxFeePerGas?: number;
|
package/lib/curve.js
CHANGED
|
@@ -62,6 +62,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
62
62
|
exports.curve = exports.ALIASES = exports.DECIMALS_LOWER_CASE = exports.DECIMALS = exports.COINS = exports.USD_COINS_LOWER_CASE = exports.USD_COINS = exports.EUR_COINS_LOWER_CASE = exports.EUR_COINS = exports.LINK_COINS_LOWER_CASE = exports.LINK_COINS = exports.ETH_COINS_LOWER_CASE = exports.ETH_COINS = exports.BTC_COINS_LOWER_CASE = exports.BTC_COINS = exports.GAUGES = exports.LP_TOKENS = exports.POOLS_DATA = void 0;
|
|
63
63
|
var ethers_1 = require("ethers");
|
|
64
64
|
var ethcall_1 = require("ethcall");
|
|
65
|
+
var factory_1 = require("./factory");
|
|
65
66
|
var ERC20_json_1 = __importDefault(require("./constants/abis/json/ERC20.json"));
|
|
66
67
|
var cERC20_json_1 = __importDefault(require("./constants/abis/json/cERC20.json"));
|
|
67
68
|
var yERC20_json_1 = __importDefault(require("./constants/abis/json/yERC20.json"));
|
|
@@ -70,8 +71,10 @@ var votingescrow_json_1 = __importDefault(require("./constants/abis/json/votinge
|
|
|
70
71
|
var address_provider_json_1 = __importDefault(require("./constants/abis/json/address_provider.json"));
|
|
71
72
|
var gaugecontroller_json_1 = __importDefault(require("./constants/abis/json/gaugecontroller.json"));
|
|
72
73
|
var router_json_1 = __importDefault(require("./constants/abis/json/router.json"));
|
|
74
|
+
var deposit_and_stake_json_1 = __importDefault(require("./constants/abis/json/deposit_and_stake.json"));
|
|
73
75
|
var registry_exchange_json_1 = __importDefault(require("./constants/abis/json/registry_exchange.json"));
|
|
74
76
|
var streamer_json_1 = __importDefault(require("./constants/abis/json/streamer.json"));
|
|
77
|
+
var factory_json_1 = __importDefault(require("./constants/abis/json/factory.json"));
|
|
75
78
|
var abis_ethereum_1 = require("./constants/abis/abis-ethereum");
|
|
76
79
|
var abis_polygon_1 = require("./constants/abis/abis-polygon");
|
|
77
80
|
var coins_ethereum_1 = require("./constants/coins-ethereum");
|
|
@@ -84,6 +87,8 @@ exports.ALIASES = {
|
|
|
84
87
|
"gauge_controller": "0x2F50D538606Fa9EDD2B11E2446BEb18C9D5846bB",
|
|
85
88
|
"address_provider": "0x0000000022d53366457f9d5e68ec105046fc4383",
|
|
86
89
|
"router": "0xfA9a30350048B2BF66865ee20363067c66f67e58",
|
|
90
|
+
"deposit_and_stake": "0x271fbE8aB7f1fB262f81C77Ea5303F03DA9d3d6A",
|
|
91
|
+
"factory": '0xb9fc157394af804a3578134a6585c0dc9cc990d4',
|
|
87
92
|
"registry_exchange": "",
|
|
88
93
|
};
|
|
89
94
|
var Curve = /** @class */ (function () {
|
|
@@ -100,6 +105,7 @@ var Curve = /** @class */ (function () {
|
|
|
100
105
|
this.feeData = {};
|
|
101
106
|
this.constantOptions = { gasLimit: 12000000 };
|
|
102
107
|
this.options = {};
|
|
108
|
+
this.constants = {};
|
|
103
109
|
}
|
|
104
110
|
Curve.prototype.init = function (providerType, providerSettings, options // gasPrice in Gwei
|
|
105
111
|
) {
|
|
@@ -399,6 +405,44 @@ var Curve = /** @class */ (function () {
|
|
|
399
405
|
contract: new ethers_1.Contract(exports.ALIASES.router, router_json_1.default, this.signer || this.provider),
|
|
400
406
|
multicallContract: new ethcall_1.Contract(exports.ALIASES.router, router_json_1.default),
|
|
401
407
|
};
|
|
408
|
+
this.contracts[exports.ALIASES.deposit_and_stake] = {
|
|
409
|
+
contract: new ethers_1.Contract(exports.ALIASES.deposit_and_stake, deposit_and_stake_json_1.default, this.signer || this.provider),
|
|
410
|
+
multicallContract: new ethcall_1.Contract(exports.ALIASES.deposit_and_stake, deposit_and_stake_json_1.default),
|
|
411
|
+
};
|
|
412
|
+
this.contracts[exports.ALIASES.deposit_and_stake.toLowerCase()] = {
|
|
413
|
+
contract: new ethers_1.Contract(exports.ALIASES.deposit_and_stake, deposit_and_stake_json_1.default, this.signer || this.provider),
|
|
414
|
+
multicallContract: new ethcall_1.Contract(exports.ALIASES.deposit_and_stake, deposit_and_stake_json_1.default),
|
|
415
|
+
};
|
|
416
|
+
this.contracts[exports.ALIASES.factory] = {
|
|
417
|
+
contract: new ethers_1.Contract(exports.ALIASES.factory, factory_json_1.default, this.signer || this.provider),
|
|
418
|
+
multicallContract: new ethcall_1.Contract(exports.ALIASES.factory, factory_json_1.default),
|
|
419
|
+
};
|
|
420
|
+
this.contracts[exports.ALIASES.factory.toLowerCase()] = {
|
|
421
|
+
contract: new ethers_1.Contract(exports.ALIASES.factory, factory_json_1.default, this.signer || this.provider),
|
|
422
|
+
multicallContract: new ethcall_1.Contract(exports.ALIASES.factory, factory_json_1.default),
|
|
423
|
+
};
|
|
424
|
+
return [2 /*return*/];
|
|
425
|
+
}
|
|
426
|
+
});
|
|
427
|
+
});
|
|
428
|
+
};
|
|
429
|
+
Curve.prototype.fetchFactoryPools = function () {
|
|
430
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
431
|
+
var _a;
|
|
432
|
+
return __generator(this, function (_b) {
|
|
433
|
+
switch (_b.label) {
|
|
434
|
+
case 0:
|
|
435
|
+
this.constants = {
|
|
436
|
+
ALIASES: exports.ALIASES,
|
|
437
|
+
POOLS_DATA: exports.POOLS_DATA,
|
|
438
|
+
DECIMALS_LOWER_CASE: exports.DECIMALS_LOWER_CASE,
|
|
439
|
+
LP_TOKENS: exports.LP_TOKENS,
|
|
440
|
+
GAUGES: exports.GAUGES,
|
|
441
|
+
};
|
|
442
|
+
_a = this.constants;
|
|
443
|
+
return [4 /*yield*/, factory_1.getFactoryPoolData.call(this)];
|
|
444
|
+
case 1:
|
|
445
|
+
_a.FACTORY_POOLS_DATA = _b.sent();
|
|
402
446
|
return [2 /*return*/];
|
|
403
447
|
}
|
|
404
448
|
});
|
package/lib/factory.d.ts
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { Contract, ethers } from "ethers";
|
|
2
|
+
import { Contract as MulticallContract, Provider as MulticallProvider } from "ethcall";
|
|
3
|
+
import { DictInterface, PoolDataInterface } from "./interfaces";
|
|
4
|
+
interface CurveInterface {
|
|
5
|
+
provider: ethers.providers.Web3Provider | ethers.providers.JsonRpcProvider;
|
|
6
|
+
multicallProvider: MulticallProvider;
|
|
7
|
+
signer: ethers.Signer;
|
|
8
|
+
signerAddress: string;
|
|
9
|
+
chainId: number;
|
|
10
|
+
contracts: {
|
|
11
|
+
[index: string]: {
|
|
12
|
+
contract: Contract;
|
|
13
|
+
multicallContract: MulticallContract;
|
|
14
|
+
};
|
|
15
|
+
};
|
|
16
|
+
feeData: {
|
|
17
|
+
gasPrice?: number;
|
|
18
|
+
maxFeePerGas?: number;
|
|
19
|
+
maxPriorityFeePerGas?: number;
|
|
20
|
+
};
|
|
21
|
+
constantOptions: {
|
|
22
|
+
gasLimit: number;
|
|
23
|
+
};
|
|
24
|
+
options: {
|
|
25
|
+
gasPrice?: number | ethers.BigNumber;
|
|
26
|
+
maxFeePerGas?: number | ethers.BigNumber;
|
|
27
|
+
maxPriorityFeePerGas?: number | ethers.BigNumber;
|
|
28
|
+
};
|
|
29
|
+
constants: DictInterface<any>;
|
|
30
|
+
}
|
|
31
|
+
export declare function getFactoryPoolData(this: CurveInterface): Promise<DictInterface<PoolDataInterface>>;
|
|
32
|
+
export {};
|