@curvefi/api 2.4.2 → 2.5.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,3 +1,4 @@
1
1
  export declare const ALIASES_ETHEREUM: import("../interfaces").IDict<string>;
2
2
  export declare const ALIASES_POLYGON: import("../interfaces").IDict<string>;
3
+ export declare const ALIASES_FANTOM: import("../interfaces").IDict<string>;
3
4
  export declare const ALIASES_AVALANCHE: import("../interfaces").IDict<string>;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ALIASES_AVALANCHE = exports.ALIASES_POLYGON = exports.ALIASES_ETHEREUM = void 0;
3
+ exports.ALIASES_AVALANCHE = exports.ALIASES_FANTOM = exports.ALIASES_POLYGON = exports.ALIASES_ETHEREUM = void 0;
4
4
  var utils_1 = require("./utils");
5
5
  exports.ALIASES_ETHEREUM = (0, utils_1.lowerCaseValues)({
6
6
  "crv": "0xD533a949740bb3306d119CC777fa900bA034cd52",
@@ -23,7 +23,19 @@ exports.ALIASES_POLYGON = (0, utils_1.lowerCaseValues)({
23
23
  "router": "0xfA9a30350048B2BF66865ee20363067c66f67e58",
24
24
  "deposit_and_stake": "0x43FF7b96808988C9d19C1d05Ef19658B03e8a143",
25
25
  "factory": '0x722272d36ef0da72ff51c5a65db7b870e2e8d4ee',
26
- "crypto_factory": '0xF18056Bbd320E96A48e3Fbf8bC061322531aac99',
26
+ "crypto_factory": "0xE5De15A9C9bBedb4F5EC13B131E61245f2983A69",
27
+ "registry_exchange": "",
28
+ });
29
+ exports.ALIASES_FANTOM = (0, utils_1.lowerCaseValues)({
30
+ "crv": "0x1E4F97b9f9F913c46F1632781732927B9019C68b",
31
+ "minter": "0xabC000d88f23Bb45525E447528DBF656A9D55bf5",
32
+ "voting_escrow": "0x5f3b5DfEb7B28CDbD7FAba78963EE202a494e2A2",
33
+ "gauge_controller": "0x2F50D538606Fa9EDD2B11E2446BEb18C9D5846bB",
34
+ "address_provider": "0x0000000022d53366457f9d5e68ec105046fc4383",
35
+ "router": "0xfA9a30350048B2BF66865ee20363067c66f67e58",
36
+ "deposit_and_stake": "0xB7De33440B7171159a9718CBE748086cecDd9685",
37
+ "factory": "0x686d67265703d1f124c45e33d47d794c566889ba",
38
+ "crypto_factory": "0xE5De15A9C9bBedb4F5EC13B131E61245f2983A69",
27
39
  "registry_exchange": "",
28
40
  });
29
41
  exports.ALIASES_AVALANCHE = (0, utils_1.lowerCaseValues)({
@@ -0,0 +1,7 @@
1
+ export declare const COINS_FANTOM: {
2
+ [index: string]: string;
3
+ };
4
+ export declare const cTokensFantom: string[];
5
+ export declare const yTokensFantom: never[];
6
+ export declare const ycTokensFantom: never[];
7
+ export declare const aTokensFantom: string[];
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.aTokensFantom = exports.ycTokensFantom = exports.yTokensFantom = exports.cTokensFantom = exports.COINS_FANTOM = void 0;
4
+ var utils_1 = require("../utils");
5
+ exports.COINS_FANTOM = (0, utils_1.lowerCaseValues)({
6
+ 'crv': '0x1E4F97b9f9F913c46F1632781732927B9019C68b',
7
+ // --- USD ---
8
+ 'dai': '0x8d11ec38a3eb5e956b052f67da8bdc9bef8abf3e',
9
+ 'usdc': '0x04068da6c83afcfa0e13ba15a6696662335d5b75',
10
+ 'fusdt': '0x049d68029688eabf473097a2fc38ef61633a3c7a',
11
+ 'idai': '0x04c762a5dF2Fa02FE868F25359E0C259fB811CfE',
12
+ 'iusdc': '0x328A7b4d538A2b3942653a9983fdA3C12c571141',
13
+ 'ifusdt': '0x70faC71debfD67394D1278D98A29dea79DC6E57A',
14
+ 'gdai': '0x07e6332dd090d287d3489245038daf987955dcfb',
15
+ 'gusdc': '0xe578c856933d8e1082740bf7661e379aa2a30b26',
16
+ 'gfusdt': '0x940f41f0ec9ba1a34cf001cc03347ac092f5f6b5',
17
+ 'dai+usdc': '0x27e611fd27b276acbd5ffd632e5eaebec9761e40',
18
+ 'frax': '0xdc301622e621166bd8e82f2ca0a26c13ad0be355',
19
+ // --- BTC ---
20
+ 'btc': '0x321162Cd933E2Be498Cd2267a90534A804051b11',
21
+ 'renbtc': '0xDBf31dF14B66535aF65AaC99C32e9eA844e14501',
22
+ // --- ETH ---
23
+ 'eth': '0x74b23882a30290451A17c44f4F05243b6b58C76d',
24
+ });
25
+ exports.cTokensFantom = [
26
+ '0x04c762a5dF2Fa02FE868F25359E0C259fB811CfE',
27
+ '0x328A7b4d538A2b3942653a9983fdA3C12c571141',
28
+ '0x70faC71debfD67394D1278D98A29dea79DC6E57A', // iFUSDT
29
+ ].map(function (a) { return a.toLowerCase(); });
30
+ exports.yTokensFantom = []; //.map((a) => a.toLowerCase());
31
+ exports.ycTokensFantom = []; //.map((a) => a.toLowerCase());
32
+ exports.aTokensFantom = [
33
+ '0x07e6332dd090d287d3489245038daf987955dcfb',
34
+ '0xe578c856933d8e1082740bf7661e379aa2a30b26',
35
+ '0x940f41f0ec9ba1a34cf001cc03347ac092f5f6b5', // gfUSDT
36
+ ].map(function (a) { return a.toLowerCase(); });
@@ -0,0 +1,4 @@
1
+ import { IPoolData } from "../../interfaces";
2
+ export declare const POOLS_DATA_FANTOM: {
3
+ [index: string]: IPoolData;
4
+ };
@@ -0,0 +1,191 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.POOLS_DATA_FANTOM = void 0;
7
+ var utils_1 = require("../utils");
8
+ var swap_json_1 = __importDefault(require("../abis/2pool/swap.json"));
9
+ var swap_json_2 = __importDefault(require("../abis/fusdt/swap.json"));
10
+ var zap_json_1 = __importDefault(require("../abis/fusdt/zap.json"));
11
+ var swap_json_3 = __importDefault(require("../abis/ren-fantom/swap.json"));
12
+ var swapNoZap_json_1 = __importDefault(require("../abis/tricrypto/swapNoZap.json"));
13
+ var swap_json_4 = __importDefault(require("../abis/ib/swap.json"));
14
+ var swap_json_5 = __importDefault(require("../abis/aave/swap.json"));
15
+ // import paaveRewardsabi from '../abis/paave/rewards.json';
16
+ var gauge_child_json_1 = __importDefault(require("../abis/gauge_child.json"));
17
+ var gauge_rewards_only_json_1 = __importDefault(require("../abis/gauge_rewards_only.json"));
18
+ var streamer_json_1 = __importDefault(require("../abis/streamer.json"));
19
+ exports.POOLS_DATA_FANTOM = (0, utils_1.lowerCasePoolDataAddresses)({
20
+ '2pool': {
21
+ name: "2pool",
22
+ full_name: "2pool",
23
+ symbol: "2pool",
24
+ reference_asset: "USD",
25
+ swap_address: '0x27e611fd27b276acbd5ffd632e5eaebec9761e40',
26
+ token_address: '0x27e611fd27b276acbd5ffd632e5eaebec9761e40',
27
+ // old_gauge: '0x0a53FaDa2d943057C47A301D25a4D9b3B8e01e8E', // Unused
28
+ // old_gauge: '0x8866414733F22295b7563f9C5299715D2D76CAf4',
29
+ gauge_address: '0x15bB164F9827De760174d3d3dAD6816eF50dE13c',
30
+ is_plain: true,
31
+ underlying_coins: ['DAI', 'USDC'],
32
+ wrapped_coins: ['DAI', 'USDC'],
33
+ underlying_coin_addresses: [
34
+ '0x8d11ec38a3eb5e956b052f67da8bdc9bef8abf3e',
35
+ '0x04068da6c83afcfa0e13ba15a6696662335d5b75',
36
+ ],
37
+ wrapped_coin_addresses: [
38
+ '0x8d11ec38a3eb5e956b052f67da8bdc9bef8abf3e',
39
+ '0x04068da6c83afcfa0e13ba15a6696662335d5b75',
40
+ ],
41
+ underlying_decimals: [18, 6],
42
+ wrapped_decimals: [18, 6],
43
+ swap_abi: swap_json_1.default,
44
+ gauge_abi: gauge_child_json_1.default,
45
+ },
46
+ fusdt: {
47
+ name: "fusdt",
48
+ full_name: "fusdt",
49
+ symbol: "fusdt",
50
+ reference_asset: "USD",
51
+ swap_address: '0x92d5ebf3593a92888c25c0abef126583d4b5312e',
52
+ token_address: '0x92d5ebf3593a92888c25c0abef126583d4b5312e',
53
+ // old_gauge: '0x4f3E8F405CF5aFC05D68142F3783bDfE13811522', // Unused
54
+ gauge_address: '0x06e3C4da96fd076b97b7ca3Ae23527314b6140dF',
55
+ deposit_address: '0xa42bd395f183726d1a8774cfa795771f8acfd777',
56
+ sCurveRewards_address: '0xfe1a3dd8b169fb5bf0d5dbfe813d956f39ff6310',
57
+ is_meta: true,
58
+ base_pool: '2pool',
59
+ underlying_coins: ['fUSDT', 'DAI', 'USDC'],
60
+ wrapped_coins: ['fUSDT', 'DAI+USDC'],
61
+ underlying_coin_addresses: [
62
+ '0x049d68029688eabf473097a2fc38ef61633a3c7a',
63
+ '0x8d11ec38a3eb5e956b052f67da8bdc9bef8abf3e',
64
+ '0x04068da6c83afcfa0e13ba15a6696662335d5b75',
65
+ ],
66
+ wrapped_coin_addresses: [
67
+ '0x049d68029688eabf473097a2fc38ef61633a3c7a',
68
+ '0x27e611fd27b276acbd5ffd632e5eaebec9761e40',
69
+ ],
70
+ underlying_decimals: [6, 18, 6],
71
+ wrapped_decimals: [6, 18],
72
+ swap_abi: swap_json_2.default,
73
+ gauge_abi: gauge_rewards_only_json_1.default,
74
+ deposit_abi: zap_json_1.default,
75
+ sCurveRewards_abi: streamer_json_1.default,
76
+ },
77
+ ren: {
78
+ name: "ren",
79
+ full_name: "ren",
80
+ symbol: "ren",
81
+ reference_asset: "BTC",
82
+ is_plain: true,
83
+ swap_address: '0x3eF6A01A0f81D6046290f3e2A8c5b843e738E604',
84
+ token_address: '0x5B5CFE992AdAC0C9D48E05854B2d91C73a003858',
85
+ // old_gauge: '0x6600e98b71dabfD4A8Cac03b302B0189Adb86Afb',
86
+ // gauge_address: '0xBdFF0C27dd073C119ebcb1299a68A6A92aE607F0',
87
+ gauge_address: '0xbC38bD19227F91424eD4132F630f51C9A42Fa338',
88
+ underlying_coins: ['BTC', 'renBTC'],
89
+ wrapped_coins: ['BTC', 'renBTC'],
90
+ underlying_coin_addresses: [
91
+ '0x321162Cd933E2Be498Cd2267a90534A804051b11',
92
+ '0xDBf31dF14B66535aF65AaC99C32e9eA844e14501',
93
+ ],
94
+ wrapped_coin_addresses: [
95
+ '0x321162Cd933E2Be498Cd2267a90534A804051b11',
96
+ '0xDBf31dF14B66535aF65AaC99C32e9eA844e14501',
97
+ ],
98
+ underlying_decimals: [8, 8],
99
+ wrapped_decimals: [8, 8],
100
+ swap_abi: swap_json_3.default,
101
+ gauge_abi: gauge_child_json_1.default,
102
+ },
103
+ tricrypto: {
104
+ name: "tricrypto",
105
+ full_name: "tricrypto",
106
+ symbol: "tricrypto",
107
+ reference_asset: "CRYPTO",
108
+ swap_address: '0x3a1659Ddcf2339Be3aeA159cA010979FB49155FF',
109
+ token_address: '0x58e57cA18B7A47112b877E31929798Cd3D703b0f',
110
+ // gauge_address: '0x00702BbDEaD24C40647f235F15971dB0867F6bdB',
111
+ gauge_address: '0x319E268f0A4C85D404734ee7958857F5891506d7',
112
+ is_crypto: true,
113
+ is_plain: true,
114
+ underlying_coins: ['fUSDT', 'BTC', 'ETH'],
115
+ wrapped_coins: ['fUSDT', 'BTC', 'ETH'],
116
+ underlying_coin_addresses: [
117
+ '0x049d68029688eAbF473097a2fC38ef61633A3C7A',
118
+ '0x321162Cd933E2Be498Cd2267a90534A804051b11',
119
+ '0x74b23882a30290451A17c44f4F05243b6b58C76d',
120
+ ],
121
+ wrapped_coin_addresses: [
122
+ '0x049d68029688eAbF473097a2fC38ef61633A3C7A',
123
+ '0x321162Cd933E2Be498Cd2267a90534A804051b11',
124
+ '0x74b23882a30290451A17c44f4F05243b6b58C76d',
125
+ ],
126
+ underlying_decimals: [6, 8, 18],
127
+ wrapped_decimals: [6, 8, 18],
128
+ swap_abi: swapNoZap_json_1.default,
129
+ gauge_abi: gauge_child_json_1.default,
130
+ },
131
+ ib: {
132
+ name: "ib",
133
+ full_name: "ib",
134
+ symbol: "ib",
135
+ reference_asset: "USD",
136
+ swap_address: '0x4FC8D635c3cB1d0aa123859e2B2587d0FF2707b1',
137
+ token_address: '0xDf38ec60c0eC001142a33eAa039e49E9b84E64ED',
138
+ gauge_address: '0xDee85272EAe1aB4afBc6433F4d819BaBC9c7045A',
139
+ sCurveRewards_address: '0x92bbf58c2a4514d44343b987d608627eb7d1d24f',
140
+ is_lending: true,
141
+ underlying_coins: ['DAI', 'USDC', 'fUSDT'],
142
+ wrapped_coins: ['iDAI', 'iUSDC', 'iFUSDT'],
143
+ underlying_coin_addresses: [
144
+ '0x8D11eC38a3EB5E956B052f67Da8Bdc9bef8Abf3E',
145
+ '0x04068DA6C83AFCFA0e13ba15A6696662335D5B75',
146
+ '0x049d68029688eAbF473097a2fC38ef61633A3C7A',
147
+ ],
148
+ wrapped_coin_addresses: [
149
+ '0x04c762a5dF2Fa02FE868F25359E0C259fB811CfE',
150
+ '0x328A7b4d538A2b3942653a9983fdA3C12c571141',
151
+ '0x70faC71debfD67394D1278D98A29dea79DC6E57A',
152
+ ],
153
+ underlying_decimals: [18, 6, 6],
154
+ wrapped_decimals: [8, 8, 8],
155
+ use_lending: [true, true, true],
156
+ swap_abi: swap_json_4.default,
157
+ gauge_abi: gauge_rewards_only_json_1.default,
158
+ sCurveRewards_abi: streamer_json_1.default,
159
+ },
160
+ geist: {
161
+ name: "geist",
162
+ full_name: "geist",
163
+ symbol: "geist",
164
+ reference_asset: "USD",
165
+ swap_address: '0x0fa949783947Bf6c1b171DB13AEACBB488845B3f',
166
+ token_address: '0xD02a30d33153877BC20e5721ee53DeDEE0422B2F',
167
+ // gauge_address: '0xd4F94D0aaa640BBb72b5EEc2D85F6D114D81a88E',
168
+ gauge_address: '0xF7b9c402c4D6c2eDbA04a7a515b53D11B1E9b2cc',
169
+ is_lending: true,
170
+ underlying_coins: ['DAI', 'USDC', 'fUSDT'],
171
+ wrapped_coins: ['gDAI', 'gUSDC', 'gfUSDT'],
172
+ underlying_coin_addresses: [
173
+ '0x8d11ec38a3eb5e956b052f67da8bdc9bef8abf3e',
174
+ '0x04068da6c83afcfa0e13ba15a6696662335d5b75',
175
+ '0x049d68029688eabf473097a2fc38ef61633a3c7a',
176
+ ],
177
+ wrapped_coin_addresses: [
178
+ '0x07e6332dd090d287d3489245038daf987955dcfb',
179
+ '0xe578c856933d8e1082740bf7661e379aa2a30b26',
180
+ '0x940f41f0ec9ba1a34cf001cc03347ac092f5f6b5',
181
+ ],
182
+ underlying_decimals: [18, 6, 6],
183
+ wrapped_decimals: [18, 6, 6],
184
+ use_lending: [true, true, true],
185
+ swap_abi: swap_json_5.default,
186
+ gauge_abi: gauge_child_json_1.default,
187
+ // sCurveRewards_abi: paaveRewardsabi,
188
+ // sCurveRewards_address: '0xd4f94d0aaa640bbb72b5eec2d85f6d114d81a88e',
189
+ // reward_token: "0xd8321aa83fb0a4ecd6348d4577431310a6e0814d",
190
+ },
191
+ });
@@ -1,4 +1,5 @@
1
1
  import { POOLS_DATA_ETHEREUM } from "./ethereum";
2
2
  import { POOLS_DATA_POLYGON } from "./polygon";
3
+ import { POOLS_DATA_FANTOM } from "./fantom";
3
4
  import { POOLS_DATA_AVALANCHE } from "./avalanche";
4
- export { POOLS_DATA_ETHEREUM, POOLS_DATA_POLYGON, POOLS_DATA_AVALANCHE, };
5
+ export { POOLS_DATA_ETHEREUM, POOLS_DATA_POLYGON, POOLS_DATA_FANTOM, POOLS_DATA_AVALANCHE, };
@@ -1,9 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.POOLS_DATA_AVALANCHE = exports.POOLS_DATA_POLYGON = exports.POOLS_DATA_ETHEREUM = void 0;
3
+ exports.POOLS_DATA_AVALANCHE = exports.POOLS_DATA_FANTOM = exports.POOLS_DATA_POLYGON = exports.POOLS_DATA_ETHEREUM = void 0;
4
4
  var ethereum_1 = require("./ethereum");
5
5
  Object.defineProperty(exports, "POOLS_DATA_ETHEREUM", { enumerable: true, get: function () { return ethereum_1.POOLS_DATA_ETHEREUM; } });
6
6
  var polygon_1 = require("./polygon");
7
7
  Object.defineProperty(exports, "POOLS_DATA_POLYGON", { enumerable: true, get: function () { return polygon_1.POOLS_DATA_POLYGON; } });
8
+ var fantom_1 = require("./fantom");
9
+ Object.defineProperty(exports, "POOLS_DATA_FANTOM", { enumerable: true, get: function () { return fantom_1.POOLS_DATA_FANTOM; } });
8
10
  var avalanche_1 = require("./avalanche");
9
11
  Object.defineProperty(exports, "POOLS_DATA_AVALANCHE", { enumerable: true, get: function () { return avalanche_1.POOLS_DATA_AVALANCHE; } });
@@ -138,4 +138,34 @@ exports.POOLS_DATA_POLYGON = (0, utils_1.lowerCasePoolDataAddresses)({
138
138
  gauge_abi: gauge_child_json_1.default,
139
139
  deposit_abi: deposit_json_1.default,
140
140
  },
141
+ eursusd: {
142
+ name: "eursusd",
143
+ full_name: "eursusd",
144
+ symbol: "eursusd",
145
+ reference_asset: 'CRYPTO',
146
+ swap_address: '0x9b3d675FDbe6a0935E8B7d1941bc6f78253549B7',
147
+ token_address: '0x7BD9757FbAc089d60DaFF1Fa6bfE3BC99b0F5735',
148
+ gauge_address: '0x18006c6A7955Bf6Db72DE34089B975f733601660',
149
+ deposit_address: '0x4DF7eF55E99a56851187822d96B4E17D98A47DeD',
150
+ is_meta: true,
151
+ is_crypto: true,
152
+ base_pool: 'aave',
153
+ underlying_coins: ['EURS', 'DAI', 'USDC', 'USDT'],
154
+ wrapped_coins: ['EURS', 'am3CRV'],
155
+ underlying_coin_addresses: [
156
+ '0xe111178a87a3bff0c8d18decba5798827539ae99',
157
+ '0x8f3cf7ad23cd3cadbd9735aff958023239c6a063',
158
+ '0x2791bca1f2de4661ed88a30c99a7a9449aa84174',
159
+ '0xc2132d05d31c914a87c6611c10748aeb04b58e8f', // USDT
160
+ ],
161
+ wrapped_coin_addresses: [
162
+ '0xe111178a87a3bff0c8d18decba5798827539ae99',
163
+ '0xE7a24EF0C5e95Ffb0f6684b813A78F2a3AD7D171', // am3CRV
164
+ ],
165
+ underlying_decimals: [2, 18, 6, 6],
166
+ wrapped_decimals: [2, 18],
167
+ swap_abi: swap_json_4.default,
168
+ gauge_abi: gauge_child_json_1.default,
169
+ deposit_abi: deposit_json_1.default,
170
+ },
141
171
  });
package/lib/curve.js CHANGED
@@ -82,6 +82,7 @@ var factory_crypto_json_1 = __importDefault(require("./constants/abis/factory-cr
82
82
  var pools_1 = require("./constants/pools");
83
83
  var ethereum_1 = require("./constants/coins/ethereum");
84
84
  var polygon_1 = require("./constants/coins/polygon");
85
+ var fantom_1 = require("./constants/coins/fantom");
85
86
  var avalanche_1 = require("./constants/coins/avalanche");
86
87
  var aliases_1 = require("./constants/aliases");
87
88
  var utils_1 = require("./constants/utils");
@@ -106,6 +107,16 @@ exports.NETWORK_CONSTANTS = {
106
107
  ycTokens: polygon_1.ycTokensPolygon,
107
108
  aTokens: polygon_1.aTokensPolygon,
108
109
  },
110
+ 250: {
111
+ NAME: 'fantom',
112
+ ALIASES: aliases_1.ALIASES_FANTOM,
113
+ POOLS_DATA: pools_1.POOLS_DATA_FANTOM,
114
+ COINS: fantom_1.COINS_FANTOM,
115
+ cTokens: fantom_1.cTokensFantom,
116
+ yTokens: fantom_1.yTokensFantom,
117
+ ycTokens: fantom_1.ycTokensFantom,
118
+ aTokens: fantom_1.aTokensFantom,
119
+ },
109
120
  43114: {
110
121
  NAME: 'avalanche',
111
122
  ALIASES: aliases_1.ALIASES_AVALANCHE,
@@ -146,7 +157,7 @@ var Curve = /** @class */ (function () {
146
157
  ) {
147
158
  if (options === void 0) { options = {}; }
148
159
  return __awaiter(this, void 0, void 0, function () {
149
- var network, _a, _b, cTokens, yTokens, ycTokens, aTokens, customAbiTokens, _c, _i, _d, pool, _e, _f, coinAddr, _g, _h, coinAddr, _j, _k, coinAddr, _minterABI, addressProviderContract, _l;
160
+ var network, _a, _b, cTokens, yTokens, ycTokens, aTokens, customAbiTokens, _c, err_1, _i, _d, pool, _e, _f, coinAddr, _g, _h, coinAddr, _j, _k, coinAddr, _minterABI, addressProviderContract, _l;
150
161
  return __generator(this, function (_m) {
151
162
  switch (_m.label) {
152
163
  case 0:
@@ -236,19 +247,27 @@ var Curve = /** @class */ (function () {
236
247
  return [4 /*yield*/, this.multicallProvider.init(this.provider)];
237
248
  case 3:
238
249
  _m.sent();
239
- if (!this.signer) return [3 /*break*/, 5];
250
+ if (!this.signer) return [3 /*break*/, 8];
251
+ _m.label = 4;
252
+ case 4:
253
+ _m.trys.push([4, 6, , 7]);
240
254
  _c = this;
241
255
  return [4 /*yield*/, this.signer.getAddress()];
242
- case 4:
243
- _c.signerAddress = _m.sent();
244
- return [3 /*break*/, 6];
245
256
  case 5:
246
- this.signerAddress = '';
247
- _m.label = 6;
257
+ _c.signerAddress = _m.sent();
258
+ return [3 /*break*/, 7];
248
259
  case 6:
260
+ err_1 = _m.sent();
261
+ this.signer = null;
262
+ return [3 /*break*/, 7];
263
+ case 7: return [3 /*break*/, 9];
264
+ case 8:
265
+ this.signerAddress = '';
266
+ _m.label = 9;
267
+ case 9:
249
268
  this.feeData = { gasPrice: options.gasPrice, maxFeePerGas: options.maxFeePerGas, maxPriorityFeePerGas: options.maxPriorityFeePerGas };
250
269
  return [4 /*yield*/, this.updateFeeData()];
251
- case 7:
270
+ case 10:
252
271
  _m.sent();
253
272
  for (_i = 0, _d = Object.values(this.constants.POOLS_DATA); _i < _d.length; _i++) {
254
273
  pool = _d[_i];
@@ -283,6 +302,8 @@ var Curve = /** @class */ (function () {
283
302
  coinAddr = _h[_g];
284
303
  if (customAbiTokens.includes(coinAddr))
285
304
  continue;
305
+ if (coinAddr in this.contracts)
306
+ continue;
286
307
  this.contracts[coinAddr] = {
287
308
  contract: new ethers_1.Contract(coinAddr, ERC20_json_1.default, this.signer || this.provider),
288
309
  multicallContract: new ethcall_1.Contract(coinAddr, ERC20_json_1.default),
@@ -360,7 +381,7 @@ var Curve = /** @class */ (function () {
360
381
  addressProviderContract = this.contracts[this.constants.ALIASES.address_provider].contract;
361
382
  _l = this.constants.ALIASES;
362
383
  return [4 /*yield*/, addressProviderContract.get_address(2, this.constantOptions)];
363
- case 8:
384
+ case 11:
364
385
  _l.registry_exchange = _m.sent();
365
386
  this.contracts[this.constants.ALIASES.registry_exchange] = {
366
387
  contract: new ethers_1.Contract(this.constants.ALIASES.registry_exchange, registry_exchange_json_1.default, this.signer || this.provider),
@@ -451,7 +472,7 @@ var Curve = /** @class */ (function () {
451
472
  return __generator(this, function (_e) {
452
473
  switch (_e.label) {
453
474
  case 0:
454
- if (this.chainId !== 1 && this.chainId !== 1337)
475
+ if (![1, 137, 250].includes(this.chainId))
455
476
  return [2 /*return*/];
456
477
  if (!useApi) return [3 /*break*/, 2];
457
478
  _a = this.constants;
@@ -10,6 +10,8 @@ var deposit_json_1 = __importDefault(require("../constants/abis/factoryPools/dep
10
10
  var metaZap_json_1 = __importDefault(require("../constants/abis/fraxusdc/metaZap.json"));
11
11
  var DepositZapMetaUsdPolygon_json_1 = __importDefault(require("../constants/abis/factory-v2/DepositZapMetaUsdPolygon.json"));
12
12
  var DepositZapMetaBtcPolygon_json_1 = __importDefault(require("../constants/abis/factory-v2/DepositZapMetaBtcPolygon.json"));
13
+ var DepositZapFantom_json_1 = __importDefault(require("../constants/abis/factory-v2/DepositZapFantom.json"));
14
+ var DepositZapMetaUsd2Fantom_json_1 = __importDefault(require("../constants/abis/factory-v2/DepositZapMetaUsd2Fantom.json"));
13
15
  function setFactoryZapContracts() {
14
16
  if (this.chainId === 1) {
15
17
  var fraxusdcMetaZapAddress = "0x08780fb7E580e492c1935bEe4fA5920b94AA95Da".toLowerCase();
@@ -35,6 +37,23 @@ function setFactoryZapContracts() {
35
37
  multicallContract: new ethcall_1.Contract(metaBtcZapAddress, DepositZapMetaBtcPolygon_json_1.default),
36
38
  };
37
39
  }
40
+ else if (this.chainId === 250) {
41
+ var metaUsdZapAddress = "0x78D51EB71a62c081550EfcC0a9F9Ea94B2Ef081c".toLowerCase();
42
+ this.contracts[metaUsdZapAddress] = {
43
+ contract: new ethers_1.Contract(metaUsdZapAddress, DepositZapFantom_json_1.default, this.signer || this.provider),
44
+ multicallContract: new ethcall_1.Contract(metaUsdZapAddress, DepositZapFantom_json_1.default),
45
+ };
46
+ var metaRenBtcZapAddress = "0x001E3BA199B4FF4B5B6e97aCD96daFC0E2e4156e".toLowerCase();
47
+ this.contracts[metaRenBtcZapAddress] = {
48
+ contract: new ethers_1.Contract(metaRenBtcZapAddress, DepositZapFantom_json_1.default, this.signer || this.provider),
49
+ multicallContract: new ethcall_1.Contract(metaRenBtcZapAddress, DepositZapFantom_json_1.default),
50
+ };
51
+ var metaGeistUsdZapAddress = "0x247aEB220E87f24c40C9F86b65d6bd5d3c987B55".toLowerCase();
52
+ this.contracts[metaGeistUsdZapAddress] = {
53
+ contract: new ethers_1.Contract(metaGeistUsdZapAddress, DepositZapMetaUsd2Fantom_json_1.default, this.signer || this.provider),
54
+ multicallContract: new ethcall_1.Contract(metaGeistUsdZapAddress, DepositZapMetaUsd2Fantom_json_1.default),
55
+ };
56
+ }
38
57
  else if (this.chainId === 43114) {
39
58
  var metaUsdZapAddress = "0x001E3BA199B4FF4B5B6e97aCD96daFC0E2e4156e".toLowerCase();
40
59
  this.contracts[metaUsdZapAddress] = {
@@ -1,15 +1,24 @@
1
1
  import { IDict } from "../interfaces";
2
2
  export declare const implementationABIDictEthereum: IDict<any>;
3
3
  export declare const implementationABIDictPolygon: IDict<any>;
4
+ export declare const implementationABIDictFantom: IDict<any>;
4
5
  export declare const implementationABIDictAvalanche: IDict<any>;
5
6
  export declare const implementationBasePoolIdDictEthereum: IDict<string>;
6
7
  export declare const implementationBasePoolIdDictPolygon: IDict<string>;
8
+ export declare const implementationBasePoolIdDictFantom: IDict<string>;
7
9
  export declare const implementationBasePoolIdDictAvalanche: IDict<string>;
8
10
  export declare const basePoolIdZapDictEthereum: IDict<string>;
9
11
  export declare const basePoolIdZapDictPolygon: IDict<string>;
12
+ export declare const basePoolIdZapDictFantom: IDict<string>;
10
13
  export declare const basePoolIdZapDictAvalanche: IDict<string>;
11
- export declare const WETH_ADDRESS = "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2";
12
- export declare const ETH_ADDRESS = "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee";
14
+ export declare const NATIVE_TOKEN_ADDRESS = "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee";
15
+ export declare const NATIVE_TOKENS: {
16
+ [index: number]: {
17
+ symbol: string;
18
+ wrappedSymbol: string;
19
+ wrappedAddress: string;
20
+ };
21
+ };
13
22
  export declare const FACTORY_CONSTANTS: {
14
23
  [index: number]: {
15
24
  implementationABIDict: IDict<any>;
@@ -3,7 +3,7 @@ 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.FACTORY_CONSTANTS = exports.ETH_ADDRESS = exports.WETH_ADDRESS = exports.basePoolIdZapDictAvalanche = exports.basePoolIdZapDictPolygon = exports.basePoolIdZapDictEthereum = exports.implementationBasePoolIdDictAvalanche = exports.implementationBasePoolIdDictPolygon = exports.implementationBasePoolIdDictEthereum = exports.implementationABIDictAvalanche = exports.implementationABIDictPolygon = exports.implementationABIDictEthereum = void 0;
6
+ exports.FACTORY_CONSTANTS = exports.NATIVE_TOKENS = exports.NATIVE_TOKEN_ADDRESS = exports.basePoolIdZapDictAvalanche = exports.basePoolIdZapDictFantom = exports.basePoolIdZapDictPolygon = exports.basePoolIdZapDictEthereum = exports.implementationBasePoolIdDictAvalanche = exports.implementationBasePoolIdDictFantom = exports.implementationBasePoolIdDictPolygon = exports.implementationBasePoolIdDictEthereum = exports.implementationABIDictAvalanche = exports.implementationABIDictFantom = exports.implementationABIDictPolygon = exports.implementationABIDictEthereum = void 0;
7
7
  var swap_json_1 = __importDefault(require("../constants/abis/factoryPools/swap.json"));
8
8
  var MetaUSD_json_1 = __importDefault(require("../constants/abis/factory-v2/MetaUSD.json"));
9
9
  var MetaUSDBalances_json_1 = __importDefault(require("../constants/abis/factory-v2/MetaUSDBalances.json"));
@@ -13,6 +13,7 @@ var MetaBTC_json_1 = __importDefault(require("../constants/abis/factory-v2/MetaB
13
13
  var MetaBTCBalances_json_1 = __importDefault(require("../constants/abis/factory-v2/MetaBTCBalances.json"));
14
14
  var MetaBTCRen_json_1 = __importDefault(require("../constants/abis/factory-v2/MetaBTCRen.json"));
15
15
  var MetaBTCBalancesRen_json_1 = __importDefault(require("../constants/abis/factory-v2/MetaBTCBalancesRen.json"));
16
+ var MetaUSDGeist_json_1 = __importDefault(require("../constants/abis/factory-v2/MetaUSDGeist.json"));
16
17
  var Plain2Basic_json_1 = __importDefault(require("../constants/abis/factory-v2/Plain2Basic.json"));
17
18
  var Plain2Balances_json_1 = __importDefault(require("../constants/abis/factory-v2/Plain2Balances.json"));
18
19
  var Plain2ETH_json_1 = __importDefault(require("../constants/abis/factory-v2/Plain2ETH.json"));
@@ -66,6 +67,26 @@ exports.implementationABIDictPolygon = {
66
67
  "0xf31bcdf0B9a5eCD7AB463eB905551fBc32e51856": Plain4ETH_json_1.default,
67
68
  "0xAc273d5b4FC06625d8b1abA3BE8De15bDFb8E39f": Plain4Optimized_json_1.default,
68
69
  };
70
+ exports.implementationABIDictFantom = {
71
+ "0xfCE359115dFe1533a2458650123F86C454BC0213": MetaUSD_json_1.default,
72
+ "0x09C62ad0694e3f1ad8cF8876aaBe56138C586f5F": MetaUSDBalances_json_1.default,
73
+ "0xC9438d8928486bD9621D326002F4672bF684187A": MetaBTCRen_json_1.default,
74
+ "0x2b70A5B878665FfDB4A06Ba40a264d6c70f68F4B": MetaBTCBalancesRen_json_1.default,
75
+ "0x210C806F6AE850279f7E298dE749EC4B427d00DD": MetaUSDGeist_json_1.default,
76
+ "0xf82162bB68aD5a168345bb7EFb2faA0EDCCA5177": MetaUSDBalances_json_1.default,
77
+ "0x61E10659fe3aa93d036d099405224E4Ac24996d0": Plain2Basic_json_1.default,
78
+ "0xd9Acb0BAeeD77C99305017821167674Cc7e82f7a": Plain2Balances_json_1.default,
79
+ "0xE6358f6a45B502477e83CC1CDa759f540E4459ee": Plain2ETH_json_1.default,
80
+ "0xAD4768F408dD170e62E074188D81A29AE31B8Fd8": Plain2Optimized_json_1.default,
81
+ "0x3cABd83bCa606768939B843f91df8f4963dBC079": Plain3Basic_json_1.default,
82
+ "0xD1602F68CC7C4c7B59D686243EA35a9C73B0c6a2": Plain3Balances_json_1.default,
83
+ "0x5d58Eb45e97B43e471AF05cD2b11CeB4106E1b1a": Plain3ETH_json_1.default,
84
+ "0x7Ee25A34C921E4009B726cC6be0643fd6a39DbfE": Plain3Optimized_json_1.default,
85
+ "0xABE216918fFDa43B44e3FC09639Fd82fD3527D89": Plain4Basic_json_1.default,
86
+ "0x775A21E0dfE25aF30FF2FCAC37512EbD8fD36471": Plain4Balances_json_1.default,
87
+ "0xb11Dc44A9f981fAF1669dca6DD40c3cc2554A2ce": Plain4ETH_json_1.default,
88
+ "0x9D7C28226AA7142cBF234ab9aa9C203D095c528B": Plain4Optimized_json_1.default,
89
+ };
69
90
  exports.implementationABIDictAvalanche = {
70
91
  "0xA237034249290De2B07988Ac64b96f22c0E76fE0": MetaUSD_json_1.default,
71
92
  "0xc50C05Ca1f8C2346664bd0d4a1eb6aC1Da38414f": MetaUSDBalances_json_1.default,
@@ -101,6 +122,14 @@ exports.implementationBasePoolIdDictPolygon = {
101
122
  "0xC05EB760A135d3D0c839f1141423002681157a17": "ren",
102
123
  "0xD8336532f6ED7b94282fAF724fe41d6145E07Cfc": "ren",
103
124
  };
125
+ exports.implementationBasePoolIdDictFantom = {
126
+ "0xfCE359115dFe1533a2458650123F86C454BC0213": "2pool",
127
+ "0x09C62ad0694e3f1ad8cF8876aaBe56138C586f5F": "2pool",
128
+ "0xC9438d8928486bD9621D326002F4672bF684187A": "ren",
129
+ "0x2b70A5B878665FfDB4A06Ba40a264d6c70f68F4B": "ren",
130
+ "0x210C806F6AE850279f7E298dE749EC4B427d00DD": "geist",
131
+ "0xf82162bB68aD5a168345bb7EFb2faA0EDCCA5177": "geist",
132
+ };
104
133
  exports.implementationBasePoolIdDictAvalanche = {
105
134
  "0xA237034249290De2B07988Ac64b96f22c0E76fE0": "aave",
106
135
  "0xc50C05Ca1f8C2346664bd0d4a1eb6aC1Da38414f": "aave",
@@ -117,12 +146,33 @@ exports.basePoolIdZapDictPolygon = {
117
146
  aave: "0x5ab5C56B9db92Ba45a0B46a207286cD83C15C939".toLowerCase(),
118
147
  ren: "0xE2e6DC1708337A6e59f227921db08F21e3394723".toLowerCase(),
119
148
  };
149
+ exports.basePoolIdZapDictFantom = {
150
+ '2pool': "0x78D51EB71a62c081550EfcC0a9F9Ea94B2Ef081c".toLowerCase(),
151
+ ren: "0x001E3BA199B4FF4B5B6e97aCD96daFC0E2e4156e".toLowerCase(),
152
+ geist: "0x247aEB220E87f24c40C9F86b65d6bd5d3c987B55".toLowerCase(),
153
+ };
120
154
  exports.basePoolIdZapDictAvalanche = {
121
155
  aave: "0x001E3BA199B4FF4B5B6e97aCD96daFC0E2e4156e".toLowerCase(),
122
156
  ren: "0xEeB3DDBcc4174e0b3fd1C13aD462b95D11Ef42C3".toLowerCase(),
123
157
  };
124
- exports.WETH_ADDRESS = "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2";
125
- exports.ETH_ADDRESS = "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee";
158
+ exports.NATIVE_TOKEN_ADDRESS = "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee";
159
+ exports.NATIVE_TOKENS = {
160
+ 1: {
161
+ symbol: 'ETH',
162
+ wrappedSymbol: 'WETH',
163
+ wrappedAddress: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',
164
+ },
165
+ 137: {
166
+ symbol: 'MATIC',
167
+ wrappedSymbol: 'WMATIC',
168
+ wrappedAddress: '0x0d500b1d8e8ef31e21c99d1db9a6444d3adf1270',
169
+ },
170
+ 250: {
171
+ symbol: 'FTM',
172
+ wrappedSymbol: 'WFTM',
173
+ wrappedAddress: '0x21be370D5312f44cB42ce377BC9b8a0cEF1A4C83',
174
+ },
175
+ };
126
176
  exports.FACTORY_CONSTANTS = {
127
177
  1: {
128
178
  implementationABIDict: exports.implementationABIDictEthereum,
@@ -134,6 +184,11 @@ exports.FACTORY_CONSTANTS = {
134
184
  implementationBasePoolIdDict: exports.implementationBasePoolIdDictPolygon,
135
185
  basePoolIdZapDict: exports.basePoolIdZapDictPolygon,
136
186
  },
187
+ 250: {
188
+ implementationABIDict: exports.implementationABIDictFantom,
189
+ implementationBasePoolIdDict: exports.implementationBasePoolIdDictFantom,
190
+ basePoolIdZapDict: exports.basePoolIdZapDictFantom,
191
+ },
137
192
  43114: {
138
193
  implementationABIDict: exports.implementationABIDictAvalanche,
139
194
  implementationBasePoolIdDict: exports.implementationBasePoolIdDictAvalanche,
@@ -162,10 +162,11 @@ function getFactoryPoolsDataFromApi(isCrypto) {
162
162
  var coinAddresses = pool.coins.map(function (c) { return c.address.toLowerCase(); });
163
163
  var coinNames = pool.coins.map(function (c) { return c.symbol; });
164
164
  var coinDecimals = pool.coins.map(function (c) { return Number(c.decimals); });
165
+ var nativeToken = constants_1.NATIVE_TOKENS[_this.chainId];
165
166
  if (isCrypto) {
166
- var cryptoCoinNames = pool.coins.map(function (c) { return c.symbol === "ETH" ? "WETH" : c.symbol; });
167
- var underlyingCoinNames = pool.coins.map(function (c) { return c.symbol === "WETH" ? "ETH" : c.symbol; });
168
- var underlyingCoinAddresses = pool.coins.map(function (c) { return c.address.toLowerCase() === constants_1.WETH_ADDRESS ? constants_1.ETH_ADDRESS : c.address.toLowerCase(); });
167
+ var cryptoCoinNames = pool.coins.map(function (c) { return c.symbol === nativeToken.symbol ? nativeToken.wrappedSymbol : c.symbol; });
168
+ var underlyingCoinNames = pool.coins.map(function (c) { return c.symbol === nativeToken.wrappedSymbol ? nativeToken.symbol : c.symbol; });
169
+ var underlyingCoinAddresses = coinAddresses.map(function (addr) { return addr === nativeToken.wrappedAddress ? constants_1.NATIVE_TOKEN_ADDRESS : addr; });
169
170
  FACTORY_POOLS_DATA[pool.id] = {
170
171
  name: pool.name.split(": ")[1].trim(),
171
172
  full_name: pool.name,