@curvefi/api 2.53.0 → 2.53.2

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.
@@ -0,0 +1,857 @@
1
+ [
2
+ {
3
+ "anonymous": false,
4
+ "inputs": [
5
+ {
6
+ "indexed": true,
7
+ "name": "sender",
8
+ "type": "address"
9
+ },
10
+ {
11
+ "indexed": true,
12
+ "name": "receiver",
13
+ "type": "address"
14
+ },
15
+ {
16
+ "indexed": false,
17
+ "name": "value",
18
+ "type": "uint256"
19
+ }
20
+ ],
21
+ "name": "Transfer",
22
+ "type": "event"
23
+ },
24
+ {
25
+ "anonymous": false,
26
+ "inputs": [
27
+ {
28
+ "indexed": true,
29
+ "name": "owner",
30
+ "type": "address"
31
+ },
32
+ {
33
+ "indexed": true,
34
+ "name": "spender",
35
+ "type": "address"
36
+ },
37
+ {
38
+ "indexed": false,
39
+ "name": "value",
40
+ "type": "uint256"
41
+ }
42
+ ],
43
+ "name": "Approval",
44
+ "type": "event"
45
+ },
46
+ {
47
+ "anonymous": false,
48
+ "inputs": [
49
+ {
50
+ "indexed": true,
51
+ "name": "buyer",
52
+ "type": "address"
53
+ },
54
+ {
55
+ "indexed": false,
56
+ "name": "sold_id",
57
+ "type": "int128"
58
+ },
59
+ {
60
+ "indexed": false,
61
+ "name": "tokens_sold",
62
+ "type": "uint256"
63
+ },
64
+ {
65
+ "indexed": false,
66
+ "name": "bought_id",
67
+ "type": "int128"
68
+ },
69
+ {
70
+ "indexed": false,
71
+ "name": "tokens_bought",
72
+ "type": "uint256"
73
+ }
74
+ ],
75
+ "name": "TokenExchange",
76
+ "type": "event"
77
+ },
78
+ {
79
+ "anonymous": false,
80
+ "inputs": [
81
+ {
82
+ "indexed": true,
83
+ "name": "provider",
84
+ "type": "address"
85
+ },
86
+ {
87
+ "indexed": false,
88
+ "name": "token_amounts",
89
+ "type": "uint256[2]"
90
+ },
91
+ {
92
+ "indexed": false,
93
+ "name": "fees",
94
+ "type": "uint256[2]"
95
+ },
96
+ {
97
+ "indexed": false,
98
+ "name": "invariant",
99
+ "type": "uint256"
100
+ },
101
+ {
102
+ "indexed": false,
103
+ "name": "token_supply",
104
+ "type": "uint256"
105
+ }
106
+ ],
107
+ "name": "AddLiquidity",
108
+ "type": "event"
109
+ },
110
+ {
111
+ "anonymous": false,
112
+ "inputs": [
113
+ {
114
+ "indexed": true,
115
+ "name": "provider",
116
+ "type": "address"
117
+ },
118
+ {
119
+ "indexed": false,
120
+ "name": "token_amounts",
121
+ "type": "uint256[2]"
122
+ },
123
+ {
124
+ "indexed": false,
125
+ "name": "fees",
126
+ "type": "uint256[2]"
127
+ },
128
+ {
129
+ "indexed": false,
130
+ "name": "token_supply",
131
+ "type": "uint256"
132
+ }
133
+ ],
134
+ "name": "RemoveLiquidity",
135
+ "type": "event"
136
+ },
137
+ {
138
+ "anonymous": false,
139
+ "inputs": [
140
+ {
141
+ "indexed": true,
142
+ "name": "provider",
143
+ "type": "address"
144
+ },
145
+ {
146
+ "indexed": false,
147
+ "name": "token_amount",
148
+ "type": "uint256"
149
+ },
150
+ {
151
+ "indexed": false,
152
+ "name": "coin_amount",
153
+ "type": "uint256"
154
+ },
155
+ {
156
+ "indexed": false,
157
+ "name": "token_supply",
158
+ "type": "uint256"
159
+ }
160
+ ],
161
+ "name": "RemoveLiquidityOne",
162
+ "type": "event"
163
+ },
164
+ {
165
+ "anonymous": false,
166
+ "inputs": [
167
+ {
168
+ "indexed": true,
169
+ "name": "provider",
170
+ "type": "address"
171
+ },
172
+ {
173
+ "indexed": false,
174
+ "name": "token_amounts",
175
+ "type": "uint256[2]"
176
+ },
177
+ {
178
+ "indexed": false,
179
+ "name": "fees",
180
+ "type": "uint256[2]"
181
+ },
182
+ {
183
+ "indexed": false,
184
+ "name": "invariant",
185
+ "type": "uint256"
186
+ },
187
+ {
188
+ "indexed": false,
189
+ "name": "token_supply",
190
+ "type": "uint256"
191
+ }
192
+ ],
193
+ "name": "RemoveLiquidityImbalance",
194
+ "type": "event"
195
+ },
196
+ {
197
+ "anonymous": false,
198
+ "inputs": [
199
+ {
200
+ "indexed": false,
201
+ "name": "old_A",
202
+ "type": "uint256"
203
+ },
204
+ {
205
+ "indexed": false,
206
+ "name": "new_A",
207
+ "type": "uint256"
208
+ },
209
+ {
210
+ "indexed": false,
211
+ "name": "initial_time",
212
+ "type": "uint256"
213
+ },
214
+ {
215
+ "indexed": false,
216
+ "name": "future_time",
217
+ "type": "uint256"
218
+ }
219
+ ],
220
+ "name": "RampA",
221
+ "type": "event"
222
+ },
223
+ {
224
+ "anonymous": false,
225
+ "inputs": [
226
+ {
227
+ "indexed": false,
228
+ "name": "A",
229
+ "type": "uint256"
230
+ },
231
+ {
232
+ "indexed": false,
233
+ "name": "t",
234
+ "type": "uint256"
235
+ }
236
+ ],
237
+ "name": "StopRampA",
238
+ "type": "event"
239
+ },
240
+ {
241
+ "inputs": [],
242
+ "outputs": [],
243
+ "stateMutability": "nonpayable",
244
+ "type": "constructor"
245
+ },
246
+ {
247
+ "gas": "464602",
248
+ "inputs": [
249
+ {
250
+ "name": "_name",
251
+ "type": "string"
252
+ },
253
+ {
254
+ "name": "_symbol",
255
+ "type": "string"
256
+ },
257
+ {
258
+ "name": "_coins",
259
+ "type": "address[4]"
260
+ },
261
+ {
262
+ "name": "_rate_multipliers",
263
+ "type": "uint256[4]"
264
+ },
265
+ {
266
+ "name": "_A",
267
+ "type": "uint256"
268
+ },
269
+ {
270
+ "name": "_fee",
271
+ "type": "uint256"
272
+ }
273
+ ],
274
+ "name": "initialize",
275
+ "outputs": [],
276
+ "stateMutability": "nonpayable",
277
+ "type": "function"
278
+ },
279
+ {
280
+ "gas": "318",
281
+ "inputs": [],
282
+ "name": "decimals",
283
+ "outputs": [
284
+ {
285
+ "name": "",
286
+ "type": "uint256"
287
+ }
288
+ ],
289
+ "stateMutability": "view",
290
+ "type": "function"
291
+ },
292
+ {
293
+ "gas": "75377",
294
+ "inputs": [
295
+ {
296
+ "name": "_to",
297
+ "type": "address"
298
+ },
299
+ {
300
+ "name": "_value",
301
+ "type": "uint256"
302
+ }
303
+ ],
304
+ "name": "transfer",
305
+ "outputs": [
306
+ {
307
+ "name": "",
308
+ "type": "bool"
309
+ }
310
+ ],
311
+ "stateMutability": "nonpayable",
312
+ "type": "function"
313
+ },
314
+ {
315
+ "gas": "112012",
316
+ "inputs": [
317
+ {
318
+ "name": "_from",
319
+ "type": "address"
320
+ },
321
+ {
322
+ "name": "_to",
323
+ "type": "address"
324
+ },
325
+ {
326
+ "name": "_value",
327
+ "type": "uint256"
328
+ }
329
+ ],
330
+ "name": "transferFrom",
331
+ "outputs": [
332
+ {
333
+ "name": "",
334
+ "type": "bool"
335
+ }
336
+ ],
337
+ "stateMutability": "nonpayable",
338
+ "type": "function"
339
+ },
340
+ {
341
+ "gas": "37851",
342
+ "inputs": [
343
+ {
344
+ "name": "_spender",
345
+ "type": "address"
346
+ },
347
+ {
348
+ "name": "_value",
349
+ "type": "uint256"
350
+ }
351
+ ],
352
+ "name": "approve",
353
+ "outputs": [
354
+ {
355
+ "name": "",
356
+ "type": "bool"
357
+ }
358
+ ],
359
+ "stateMutability": "nonpayable",
360
+ "type": "function"
361
+ },
362
+ {
363
+ "gas": "2107",
364
+ "inputs": [],
365
+ "name": "get_balances",
366
+ "outputs": [
367
+ {
368
+ "name": "",
369
+ "type": "uint256[2]"
370
+ }
371
+ ],
372
+ "stateMutability": "view",
373
+ "type": "function"
374
+ },
375
+ {
376
+ "gas": "468",
377
+ "inputs": [],
378
+ "name": "admin_fee",
379
+ "outputs": [
380
+ {
381
+ "name": "",
382
+ "type": "uint256"
383
+ }
384
+ ],
385
+ "stateMutability": "view",
386
+ "type": "function"
387
+ },
388
+ {
389
+ "gas": "5564",
390
+ "inputs": [],
391
+ "name": "A",
392
+ "outputs": [
393
+ {
394
+ "name": "",
395
+ "type": "uint256"
396
+ }
397
+ ],
398
+ "stateMutability": "view",
399
+ "type": "function"
400
+ },
401
+ {
402
+ "gas": "5526",
403
+ "inputs": [],
404
+ "name": "A_precise",
405
+ "outputs": [
406
+ {
407
+ "name": "",
408
+ "type": "uint256"
409
+ }
410
+ ],
411
+ "stateMutability": "view",
412
+ "type": "function"
413
+ },
414
+ {
415
+ "gas": "836956",
416
+ "inputs": [],
417
+ "name": "get_virtual_price",
418
+ "outputs": [
419
+ {
420
+ "name": "",
421
+ "type": "uint256"
422
+ }
423
+ ],
424
+ "stateMutability": "view",
425
+ "type": "function"
426
+ },
427
+ {
428
+ "gas": "3322008",
429
+ "inputs": [
430
+ {
431
+ "name": "_amounts",
432
+ "type": "uint256[2]"
433
+ },
434
+ {
435
+ "name": "_is_deposit",
436
+ "type": "bool"
437
+ }
438
+ ],
439
+ "name": "calc_token_amount",
440
+ "outputs": [
441
+ {
442
+ "name": "",
443
+ "type": "uint256"
444
+ }
445
+ ],
446
+ "stateMutability": "view",
447
+ "type": "function"
448
+ },
449
+ {
450
+ "inputs": [
451
+ {
452
+ "name": "_amounts",
453
+ "type": "uint256[2]"
454
+ },
455
+ {
456
+ "name": "_min_mint_amount",
457
+ "type": "uint256"
458
+ }
459
+ ],
460
+ "name": "add_liquidity",
461
+ "outputs": [
462
+ {
463
+ "name": "",
464
+ "type": "uint256"
465
+ }
466
+ ],
467
+ "stateMutability": "nonpayable",
468
+ "type": "function"
469
+ },
470
+ {
471
+ "gas": "2100691",
472
+ "inputs": [
473
+ {
474
+ "name": "i",
475
+ "type": "int128"
476
+ },
477
+ {
478
+ "name": "j",
479
+ "type": "int128"
480
+ },
481
+ {
482
+ "name": "dx",
483
+ "type": "uint256"
484
+ }
485
+ ],
486
+ "name": "get_dy",
487
+ "outputs": [
488
+ {
489
+ "name": "",
490
+ "type": "uint256"
491
+ }
492
+ ],
493
+ "stateMutability": "view",
494
+ "type": "function"
495
+ },
496
+ {
497
+ "inputs": [
498
+ {
499
+ "name": "i",
500
+ "type": "int128"
501
+ },
502
+ {
503
+ "name": "j",
504
+ "type": "int128"
505
+ },
506
+ {
507
+ "name": "_dx",
508
+ "type": "uint256"
509
+ },
510
+ {
511
+ "name": "_min_dy",
512
+ "type": "uint256"
513
+ }
514
+ ],
515
+ "name": "exchange",
516
+ "outputs": [
517
+ {
518
+ "name": "",
519
+ "type": "uint256"
520
+ }
521
+ ],
522
+ "stateMutability": "nonpayable",
523
+ "type": "function"
524
+ },
525
+ {
526
+ "inputs": [
527
+ {
528
+ "name": "_burn_amount",
529
+ "type": "uint256"
530
+ },
531
+ {
532
+ "name": "_min_amounts",
533
+ "type": "uint256[2]"
534
+ }
535
+ ],
536
+ "name": "remove_liquidity",
537
+ "outputs": [
538
+ {
539
+ "name": "",
540
+ "type": "uint256[2]"
541
+ }
542
+ ],
543
+ "stateMutability": "nonpayable",
544
+ "type": "function"
545
+ },
546
+ {
547
+ "inputs": [
548
+ {
549
+ "name": "_amounts",
550
+ "type": "uint256[2]"
551
+ },
552
+ {
553
+ "name": "_max_burn_amount",
554
+ "type": "uint256"
555
+ }
556
+ ],
557
+ "name": "remove_liquidity_imbalance",
558
+ "outputs": [
559
+ {
560
+ "name": "",
561
+ "type": "uint256"
562
+ }
563
+ ],
564
+ "stateMutability": "nonpayable",
565
+ "type": "function"
566
+ },
567
+ {
568
+ "gas": "1100",
569
+ "inputs": [
570
+ {
571
+ "name": "_burn_amount",
572
+ "type": "uint256"
573
+ },
574
+ {
575
+ "name": "i",
576
+ "type": "int128"
577
+ }
578
+ ],
579
+ "name": "calc_withdraw_one_coin",
580
+ "outputs": [
581
+ {
582
+ "name": "",
583
+ "type": "uint256"
584
+ }
585
+ ],
586
+ "stateMutability": "view",
587
+ "type": "function"
588
+ },
589
+ {
590
+ "inputs": [
591
+ {
592
+ "name": "_burn_amount",
593
+ "type": "uint256"
594
+ },
595
+ {
596
+ "name": "i",
597
+ "type": "int128"
598
+ },
599
+ {
600
+ "name": "_min_received",
601
+ "type": "uint256"
602
+ }
603
+ ],
604
+ "name": "remove_liquidity_one_coin",
605
+ "outputs": [
606
+ {
607
+ "name": "",
608
+ "type": "uint256"
609
+ }
610
+ ],
611
+ "stateMutability": "nonpayable",
612
+ "type": "function"
613
+ },
614
+ {
615
+ "gas": "152901",
616
+ "inputs": [
617
+ {
618
+ "name": "_future_A",
619
+ "type": "uint256"
620
+ },
621
+ {
622
+ "name": "_future_time",
623
+ "type": "uint256"
624
+ }
625
+ ],
626
+ "name": "ramp_A",
627
+ "outputs": [],
628
+ "stateMutability": "nonpayable",
629
+ "type": "function"
630
+ },
631
+ {
632
+ "gas": "149665",
633
+ "inputs": [],
634
+ "name": "stop_ramp_A",
635
+ "outputs": [],
636
+ "stateMutability": "nonpayable",
637
+ "type": "function"
638
+ },
639
+ {
640
+ "gas": "3740",
641
+ "inputs": [
642
+ {
643
+ "name": "i",
644
+ "type": "uint256"
645
+ }
646
+ ],
647
+ "name": "admin_balances",
648
+ "outputs": [
649
+ {
650
+ "name": "",
651
+ "type": "uint256"
652
+ }
653
+ ],
654
+ "stateMutability": "view",
655
+ "type": "function"
656
+ },
657
+ {
658
+ "gas": "14082",
659
+ "inputs": [],
660
+ "name": "withdraw_admin_fees",
661
+ "outputs": [],
662
+ "stateMutability": "nonpayable",
663
+ "type": "function"
664
+ },
665
+ {
666
+ "gas": "1793",
667
+ "inputs": [
668
+ {
669
+ "name": "arg0",
670
+ "type": "uint256"
671
+ }
672
+ ],
673
+ "name": "coins",
674
+ "outputs": [
675
+ {
676
+ "name": "",
677
+ "type": "address"
678
+ }
679
+ ],
680
+ "stateMutability": "view",
681
+ "type": "function"
682
+ },
683
+ {
684
+ "gas": "1823",
685
+ "inputs": [
686
+ {
687
+ "name": "arg0",
688
+ "type": "uint256"
689
+ }
690
+ ],
691
+ "name": "balances",
692
+ "outputs": [
693
+ {
694
+ "name": "",
695
+ "type": "uint256"
696
+ }
697
+ ],
698
+ "stateMutability": "view",
699
+ "type": "function"
700
+ },
701
+ {
702
+ "gas": "1808",
703
+ "inputs": [],
704
+ "name": "fee",
705
+ "outputs": [
706
+ {
707
+ "name": "",
708
+ "type": "uint256"
709
+ }
710
+ ],
711
+ "stateMutability": "view",
712
+ "type": "function"
713
+ },
714
+ {
715
+ "gas": "1838",
716
+ "inputs": [],
717
+ "name": "initial_A",
718
+ "outputs": [
719
+ {
720
+ "name": "",
721
+ "type": "uint256"
722
+ }
723
+ ],
724
+ "stateMutability": "view",
725
+ "type": "function"
726
+ },
727
+ {
728
+ "gas": "1868",
729
+ "inputs": [],
730
+ "name": "future_A",
731
+ "outputs": [
732
+ {
733
+ "name": "",
734
+ "type": "uint256"
735
+ }
736
+ ],
737
+ "stateMutability": "view",
738
+ "type": "function"
739
+ },
740
+ {
741
+ "gas": "1898",
742
+ "inputs": [],
743
+ "name": "initial_A_time",
744
+ "outputs": [
745
+ {
746
+ "name": "",
747
+ "type": "uint256"
748
+ }
749
+ ],
750
+ "stateMutability": "view",
751
+ "type": "function"
752
+ },
753
+ {
754
+ "gas": "1928",
755
+ "inputs": [],
756
+ "name": "future_A_time",
757
+ "outputs": [
758
+ {
759
+ "name": "",
760
+ "type": "uint256"
761
+ }
762
+ ],
763
+ "stateMutability": "view",
764
+ "type": "function"
765
+ },
766
+ {
767
+ "gas": "8288",
768
+ "inputs": [],
769
+ "name": "name",
770
+ "outputs": [
771
+ {
772
+ "name": "",
773
+ "type": "string"
774
+ }
775
+ ],
776
+ "stateMutability": "view",
777
+ "type": "function"
778
+ },
779
+ {
780
+ "gas": "7341",
781
+ "inputs": [],
782
+ "name": "symbol",
783
+ "outputs": [
784
+ {
785
+ "name": "",
786
+ "type": "string"
787
+ }
788
+ ],
789
+ "stateMutability": "view",
790
+ "type": "function"
791
+ },
792
+ {
793
+ "gas": "2233",
794
+ "inputs": [
795
+ {
796
+ "name": "arg0",
797
+ "type": "address"
798
+ }
799
+ ],
800
+ "name": "balanceOf",
801
+ "outputs": [
802
+ {
803
+ "name": "",
804
+ "type": "uint256"
805
+ }
806
+ ],
807
+ "stateMutability": "view",
808
+ "type": "function"
809
+ },
810
+ {
811
+ "gas": "2478",
812
+ "inputs": [
813
+ {
814
+ "name": "arg0",
815
+ "type": "address"
816
+ },
817
+ {
818
+ "name": "arg1",
819
+ "type": "address"
820
+ }
821
+ ],
822
+ "name": "allowance",
823
+ "outputs": [
824
+ {
825
+ "name": "",
826
+ "type": "uint256"
827
+ }
828
+ ],
829
+ "stateMutability": "view",
830
+ "type": "function"
831
+ },
832
+ {
833
+ "stateMutability": "view",
834
+ "type": "function",
835
+ "name": "stored_rates",
836
+ "inputs": [],
837
+ "outputs": [
838
+ {
839
+ "name": "",
840
+ "type": "uint256[2]"
841
+ }
842
+ ]
843
+ },
844
+ {
845
+ "gas": "2078",
846
+ "inputs": [],
847
+ "name": "totalSupply",
848
+ "outputs": [
849
+ {
850
+ "name": "",
851
+ "type": "uint256"
852
+ }
853
+ ],
854
+ "stateMutability": "view",
855
+ "type": "function"
856
+ }
857
+ ]
@@ -11,6 +11,7 @@ import MetaSbtc2ABI from "../constants/abis/factory-v2/MetaSbtc2.json" assert {
11
11
  import MetaSbtc2BalancesABI from "../constants/abis/factory-v2/MetaSbtc2Balance.json" assert { type: 'json' };
12
12
  import MetaUSDGeistABI from "../constants/abis/factory-v2/MetaUSDGeist.json" assert { type: 'json' };
13
13
  import Plain2BasicABI from "../constants/abis/factory-v2/Plain2Basic.json" assert { type: 'json' };
14
+ import Plain2BasicWithRatesABI from "../constants/abis/factory-v2/Plain2BasicWithRates.json" assert { type: 'json' };
14
15
  import Plain2BalancesABI from "../constants/abis/factory-v2/Plain2Balances.json" assert { type: 'json' };
15
16
  import Plain2ETHABI from "../constants/abis/factory-v2/Plain2ETH.json" assert { type: 'json' };
16
17
  import Plain2ETHOracleABI from "../constants/abis/factory-v2/Plain2ETHOracle.json" assert { type: 'json' };
@@ -63,7 +64,7 @@ export var implementationABIDictEthereum = lowerCaseKeys({
63
64
  // !!! crvUSD Factory !!!
64
65
  "0x67fe41A94e779CcFa22cff02cc2957DC9C0e4286": Plain2BasicABI,
65
66
  "0x7Ca46A636b02D4aBC66883D7FF164bDE506DC66a": Plain2BalancesABI,
66
- "0x36Dc03C0e12a1C241306a6A8F327Fe28bA2Be5b0": Plain2BasicABI,
67
+ "0x36Dc03C0e12a1C241306a6A8F327Fe28bA2Be5b0": Plain2BasicWithRatesABI,
67
68
  // !!! crvUSD Factory !!!
68
69
  "0x9B52F13DF69D79Ec5aAB6D1aCe3157d29B409cC3": Plain3BasicABI,
69
70
  "0x50b085f2e5958C4A87baf93A8AB79F6bec068494": Plain3BalancesABI,
@@ -78,6 +79,8 @@ export var implementationABIDictEthereum = lowerCaseKeys({
78
79
  //"0x1f7C86AffE5bCF7a1D74a8c8E2ef9E03BF31c1BD": MetaStableSwapNGABI,
79
80
  "0x933f4769DCC27fC7345D9d5975AE48EC4D0F829C": PlainStableSwapNGABI,
80
81
  "0xDD7EBB1C49780519dD9755B8B1A23a6f42CE099E": MetaStableSwapNGABI,
82
+ "0xDCc91f930b42619377C200BA05b7513f2958b202": PlainStableSwapNGABI,
83
+ "0xede71F77d7c900dCA5892720E76316C6E575F0F7": MetaStableSwapNGABI,
81
84
  });
82
85
  export var implementationABIDictPolygon = lowerCaseKeys({
83
86
  "0x4fb93D7d320E8A263F22f62C2059dFC2A8bCbC4c": MetaUSDABI,
@@ -100,6 +103,8 @@ export var implementationABIDictPolygon = lowerCaseKeys({
100
103
  //"0x87FE17697D0f14A222e8bEf386a0860eCffDD617": MetaStableSwapNGABI,
101
104
  "0xa7Ba18EeFcD9513230987eC2faB6711AF5AbD9c2": PlainStableSwapNGABI,
102
105
  "0x7C2085419BE6a04f4ad88ea91bC9F5C6E6C463D8": MetaStableSwapNGABI,
106
+ "0xe265FC390E9129b7E337Da23cD42E00C34Da2CE3": PlainStableSwapNGABI,
107
+ "0xa7b9d886A9a374A1C86DC52d2BA585c5CDFdac26": MetaStableSwapNGABI,
103
108
  });
104
109
  export var implementationABIDictFantom = lowerCaseKeys({
105
110
  "0xfCE359115dFe1533a2458650123F86C454BC0213": MetaUSDABI,
@@ -129,6 +134,8 @@ export var implementationABIDictFantom = lowerCaseKeys({
129
134
  //"0x686bdb3D24Bc6F3ED89ed3d3B659765c54aC78B4": MetaStableSwapNGABI,
130
135
  "0xd7E72f3615aa65b92A4DBdC211E296a35512988B": PlainStableSwapNGABI,
131
136
  "0xbC0797015fcFc47d9C1856639CaE50D0e69FbEE8": MetaStableSwapNGABI,
137
+ "0x5702BDB1Ec244704E3cBBaAE11a0275aE5b07499": PlainStableSwapNGABI,
138
+ "0x046207cB759F527b6c10C2D61DBaca45513685CC": MetaStableSwapNGABI,
132
139
  });
133
140
  export var implementationABIDictAvalanche = lowerCaseKeys({
134
141
  "0xA237034249290De2B07988Ac64b96f22c0E76fE0": MetaUSDABI,
@@ -149,6 +156,8 @@ export var implementationABIDictAvalanche = lowerCaseKeys({
149
156
  "0xCE94D3E5b0D80565D7B713A687b39a3Dc81780BA": Plain4OptimizedABI,
150
157
  "0xa7Ba18EeFcD9513230987eC2faB6711AF5AbD9c2": PlainStableSwapNGABI,
151
158
  "0x7C2085419BE6a04f4ad88ea91bC9F5C6E6C463D8": MetaStableSwapNGABI,
159
+ "0xe265FC390E9129b7E337Da23cD42E00C34Da2CE3": PlainStableSwapNGABI,
160
+ "0xa7b9d886A9a374A1C86DC52d2BA585c5CDFdac26": MetaStableSwapNGABI,
152
161
  });
153
162
  export var implementationABIDictArbitrum = lowerCaseKeys({
154
163
  "0x09672362833d8f703D5395ef3252D4Bfa51c15ca": MetaUSDABI,
@@ -175,6 +184,8 @@ export var implementationABIDictArbitrum = lowerCaseKeys({
175
184
  //"0xd125E7a0cEddF89c6473412d85835450897be6Dc": MetaStableSwapNGABI,
176
185
  "0x0458ea5f4cd00e873264be2031ceb8f9d9b3116c": PlainStableSwapNGABI,
177
186
  "0xc6c09471ee39c7e30a067952fcc89c8922f9ab53": MetaStableSwapNGABI,
187
+ "0xf6841C27fe35ED7069189aFD5b81513578AFD7FF": PlainStableSwapNGABI,
188
+ "0xFf02cBD91F57A778Bab7218DA562594a680B8B61": MetaStableSwapNGABI,
178
189
  });
179
190
  export var implementationABIDictOptimism = lowerCaseKeys({
180
191
  "0x78CF256256C8089d68Cde634Cf7cDEFb39286470": MetaUSDABI,
@@ -199,6 +210,8 @@ export var implementationABIDictOptimism = lowerCaseKeys({
199
210
  //"0x1764ee18e8B3ccA4787249Ceb249356192594585": MetaStableSwapNGABI,
200
211
  "0x06452f9c013fc37169B57Eab8F50A7A48c9198A3": PlainStableSwapNGABI,
201
212
  "0xd7E72f3615aa65b92A4DBdC211E296a35512988B": MetaStableSwapNGABI,
213
+ "0x635742dCC8313DCf8c904206037d962c042EAfBd": PlainStableSwapNGABI,
214
+ "0x5702BDB1Ec244704E3cBBaAE11a0275aE5b07499": MetaStableSwapNGABI,
202
215
  });
203
216
  export var implementationABIDictXDai = lowerCaseKeys({
204
217
  "0x4A5bF7Ab9A8202692051c19B102d3eDD62aaBAE6": MetaUSDABI,
@@ -219,6 +232,8 @@ export var implementationABIDictXDai = lowerCaseKeys({
219
232
  //"0xd3B17f862956464ae4403cCF829CE69199856e1e": MetaStableSwapNGABI,
220
233
  "0xc9Fe0C63Af9A39402e8a5514f9c43Af0322b665F": PlainStableSwapNGABI,
221
234
  "0x166c4084Ad2434E8F2425C64dabFE6875A0D45c5": MetaStableSwapNGABI,
235
+ "0x3d6cb2f6dcf47cdd9c13e4e3beae9af041d8796a": PlainStableSwapNGABI,
236
+ "0xC1b393EfEF38140662b91441C6710Aa704973228": MetaStableSwapNGABI,
222
237
  });
223
238
  export var implementationABIDictMoonbeam = lowerCaseKeys({
224
239
  "0x6842E0412AC1c00464dc48961330156a07268d14": Plain2BasicABI,
@@ -251,6 +266,8 @@ export var implementationABIDictKava = lowerCaseKeys({
251
266
  //"0x87FE17697D0f14A222e8bEf386a0860eCffDD617": MetaStableSwapNGABI,
252
267
  "0xa7Ba18EeFcD9513230987eC2faB6711AF5AbD9c2": PlainStableSwapNGABI,
253
268
  "0x7C2085419BE6a04f4ad88ea91bC9F5C6E6C463D8": MetaStableSwapNGABI,
269
+ "0xe265FC390E9129b7E337Da23cD42E00C34Da2CE3": PlainStableSwapNGABI,
270
+ "0xa7b9d886A9a374A1C86DC52d2BA585c5CDFdac26": MetaStableSwapNGABI,
254
271
  });
255
272
  export var implementationABIDictCelo = lowerCaseKeys({
256
273
  "0xfEE7166C32Bdf6356Ef60636f43400AA55551A96": Plain2BasicABI,
@@ -269,6 +286,8 @@ export var implementationABIDictCelo = lowerCaseKeys({
269
286
  //"0x87FE17697D0f14A222e8bEf386a0860eCffDD617": MetaStableSwapNGABI,
270
287
  "0xa7Ba18EeFcD9513230987eC2faB6711AF5AbD9c2": PlainStableSwapNGABI,
271
288
  "0x7C2085419BE6a04f4ad88ea91bC9F5C6E6C463D8": MetaStableSwapNGABI,
289
+ "0xe265FC390E9129b7E337Da23cD42E00C34Da2CE3": PlainStableSwapNGABI,
290
+ "0xa7b9d886A9a374A1C86DC52d2BA585c5CDFdac26": MetaStableSwapNGABI,
272
291
  });
273
292
  export var implementationABIDictZkSync = lowerCaseKeys({
274
293
  "0x7c2a205C52361410233540008f7095dEF5915843": Plain2BasicABI,
@@ -301,6 +320,8 @@ export var implementationABIDictBase = lowerCaseKeys({
301
320
  //"0x5eee3091f747e60a045a2e715a4c71e600e31f6e": MetaStableSwapNGABI,
302
321
  "0x604388Bb1159AFd21eB5191cE22b4DeCdEE2Ae22": PlainStableSwapNGABI,
303
322
  "0x06452f9c013fc37169B57Eab8F50A7A48c9198A3": MetaStableSwapNGABI,
323
+ "0xf3A6aa40cf048a3960E9664847E9a7be025a390a": PlainStableSwapNGABI,
324
+ "0x635742dCC8313DCf8c904206037d962c042EAfBd": MetaStableSwapNGABI,
304
325
  });
305
326
  export var implementationABIDictBsc = lowerCaseKeys({
306
327
  "0xB90B9B1F91a01Ea22A182CD84C1E22222e39B415": Plain2BasicABI,
@@ -319,6 +340,8 @@ export var implementationABIDictBsc = lowerCaseKeys({
319
340
  //"0x06452f9c013fc37169B57Eab8F50A7A48c9198A3": MetaStableSwapNGABI,
320
341
  "0x64379C265Fc6595065D7d835AAaa731c0584dB80": PlainStableSwapNGABI,
321
342
  "0xd3B17f862956464ae4403cCF829CE69199856e1e": MetaStableSwapNGABI,
343
+ "0x505d666E4DD174DcDD7FA090ed95554486d2Be44": PlainStableSwapNGABI,
344
+ "0x5a8C93EE12a8Df4455BA111647AdA41f29D5CfcC": MetaStableSwapNGABI,
322
345
  });
323
346
  export var basePoolIdZapDictEthereum = {
324
347
  '3pool': {
@@ -203,6 +203,7 @@ export function getFactoryPoolsDataFromApi(factoryType) {
203
203
  gauge_abi: _this.chainId === 1 ? factoryGaugeABI : gaugeChildABI,
204
204
  deposit_abi: basePoolZap.ABI,
205
205
  in_api: true,
206
+ is_stable_ng: false,
206
207
  };
207
208
  }
208
209
  else {
@@ -226,6 +227,7 @@ export function getFactoryPoolsDataFromApi(factoryType) {
226
227
  swap_abi: factoryType === "factory-tricrypto" ? tricryptoFactorySwapABI : cryptoFactorySwapABI,
227
228
  gauge_abi: _this.chainId === 1 ? factoryGaugeABI : gaugeChildABI,
228
229
  in_api: true,
230
+ is_stable_ng: false,
229
231
  };
230
232
  }
231
233
  }
@@ -261,6 +263,7 @@ export function getFactoryPoolsDataFromApi(factoryType) {
261
263
  gauge_abi: _this.chainId === 1 ? factoryGaugeABI : gaugeChildABI,
262
264
  deposit_abi: basePoolZap.ABI,
263
265
  in_api: true,
266
+ is_stable_ng: factoryType === 'factory-stable-ng',
264
267
  };
265
268
  }
266
269
  else {
@@ -285,6 +288,7 @@ export function getFactoryPoolsDataFromApi(factoryType) {
285
288
  swap_abi: implementationABIDict[pool.implementationAddress],
286
289
  gauge_abi: _this.chainId === 1 ? factoryGaugeABI : gaugeChildABI,
287
290
  in_api: true,
291
+ is_stable_ng: factoryType === 'factory-stable-ng',
288
292
  };
289
293
  }
290
294
  });
@@ -414,6 +414,7 @@ export function getFactoryPoolData(fromIdx, swapAddress, factoryAddress) {
414
414
  wrapped_decimals: __spreadArray([], coinAddresses[i].map(function (addr) { return coinAddressDecimalsDict[addr]; }), true),
415
415
  swap_abi: swapABIs[i],
416
416
  gauge_abi: this_1.chainId === 1 ? factoryGaugeABI : gaugeChildABI,
417
+ is_stable_ng: factoryAddress === curve.constants.ALIASES.stable_ng_factory,
417
418
  };
418
419
  }
419
420
  else {
@@ -448,6 +449,7 @@ export function getFactoryPoolData(fromIdx, swapAddress, factoryAddress) {
448
449
  swap_abi: swapABIs[i],
449
450
  gauge_abi: this_1.chainId === 1 ? factoryGaugeABI : gaugeChildABI,
450
451
  deposit_abi: basePoolZap.ABI,
452
+ is_stable_ng: factoryAddress === curve.constants.ALIASES.stable_ng_factory,
451
453
  };
452
454
  }
453
455
  };
@@ -28,6 +28,7 @@ export interface IPoolData {
28
28
  is_fake?: boolean;
29
29
  is_factory?: boolean;
30
30
  is_llamma?: boolean;
31
+ is_stable_ng?: boolean;
31
32
  base_pool?: string;
32
33
  meta_coin_idx?: number;
33
34
  underlying_coins: string[];
@@ -20,6 +20,7 @@ export declare class PoolTemplate {
20
20
  isFake: boolean;
21
21
  isFactory: boolean;
22
22
  isMetaFactory: boolean;
23
+ isStableNg: boolean;
23
24
  isLlamma: boolean;
24
25
  basePool: string;
25
26
  metaCoinIdx: number;
@@ -258,6 +259,7 @@ export declare class PoolTemplate {
258
259
  private _getCoinIdx;
259
260
  private _getRates;
260
261
  private _balances;
262
+ private _stored_rates;
261
263
  private _underlyingPrices;
262
264
  private _wrappedPrices;
263
265
  }
@@ -56,7 +56,7 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
56
56
  };
57
57
  import memoize from "memoizee";
58
58
  import { _getPoolsFromApi, _getSubgraphData, _getFactoryAPYsAndVolumes, _getLegacyAPYsAndVolumes } from '../external-api.js';
59
- import { _getCoinAddresses, _getBalances, _prepareAddresses, _ensureAllowance, _getUsdRate, hasAllowance, ensureAllowance, ensureAllowanceEstimateGas, BN, toBN, toStringFromBN, parseUnits, getEthIndex, fromBN, _cutZeros, _setContracts, _get_small_x, _get_price_impact, checkNumber, _getCrvApyFromApi, _getRewardsFromApi, mulBy1_3, smartNumber, DIGas, _getAddress, } from '../utils.js';
59
+ import { _getCoinAddresses, _getBalances, _prepareAddresses, _ensureAllowance, _getUsdRate, hasAllowance, ensureAllowance, ensureAllowanceEstimateGas, BN, toBN, toStringFromBN, parseUnits, getEthIndex, fromBN, _cutZeros, _setContracts, _get_small_x, _get_price_impact, checkNumber, _getCrvApyFromApi, _getRewardsFromApi, mulBy1_3, smartNumber, DIGas, _getAddress, isMethodExist, } from '../utils.js';
60
60
  import { curve } from "../curve.js";
61
61
  import ERC20Abi from '../constants/abis/ERC20.json' assert { type: 'json' };
62
62
  var DAY = 86400;
@@ -1145,6 +1145,14 @@ var PoolTemplate = /** @class */ (function () {
1145
1145
  });
1146
1146
  });
1147
1147
  };
1148
+ this._stored_rates = function () { return __awaiter(_this, void 0, void 0, function () {
1149
+ return __generator(this, function (_c) {
1150
+ switch (_c.label) {
1151
+ case 0: return [4 /*yield*/, curve.contracts[this.address].contract.stored_rates()];
1152
+ case 1: return [2 /*return*/, _c.sent()];
1153
+ }
1154
+ });
1155
+ }); };
1148
1156
  this._underlyingPrices = function () { return __awaiter(_this, void 0, void 0, function () {
1149
1157
  var promises, _i, _c, addr;
1150
1158
  return __generator(this, function (_d) {
@@ -1196,6 +1204,7 @@ var PoolTemplate = /** @class */ (function () {
1196
1204
  this.isFake = poolData.is_fake || false;
1197
1205
  this.isFactory = poolData.is_factory || false;
1198
1206
  this.isMetaFactory = (this.isMeta && this.isFactory) || this.zap === '0xa79828df1850e8a3a3064576f380d90aecdd3359';
1207
+ this.isStableNg = poolData.is_stable_ng || false;
1199
1208
  this.isLlamma = poolData.is_llamma || false;
1200
1209
  this.basePool = poolData.base_pool || '';
1201
1210
  this.metaCoinIdx = this.isMeta ? (_c = poolData.meta_coin_idx) !== null && _c !== void 0 ? _c : poolData.wrapped_coins.length - 1 : -1;
@@ -1496,34 +1505,45 @@ var PoolTemplate = /** @class */ (function () {
1496
1505
  };
1497
1506
  PoolTemplate.prototype.depositBonus = function (amounts) {
1498
1507
  return __awaiter(this, void 0, void 0, function () {
1499
- var amountsBN, prices, _c, pricesBN, balancesBN, balancedAmounts, expectedBN, _d, balancedExpectedBN, _e;
1500
- return __generator(this, function (_f) {
1501
- switch (_f.label) {
1508
+ var amountsBN, prices, isUseStoredRates, result, pricesBN, balancesBN, balancedAmounts, expectedBN, _c, balancedExpectedBN, _d;
1509
+ var _this = this;
1510
+ return __generator(this, function (_e) {
1511
+ switch (_e.label) {
1502
1512
  case 0:
1503
1513
  amountsBN = amounts.map(BN);
1504
- if (!(this.isCrypto || this.id === 'wsteth' || this.id === 'factory-crvusd-24')) return [3 /*break*/, 2];
1514
+ prices = [];
1515
+ isUseStoredRates = isMethodExist(curve.contracts[this.address].contract, 'stored_rates') && this.isPlain;
1516
+ if (!(this.isCrypto || this.id === 'wsteth')) return [3 /*break*/, 2];
1505
1517
  return [4 /*yield*/, this._underlyingPrices()];
1506
1518
  case 1:
1507
- _c = _f.sent();
1508
- return [3 /*break*/, 3];
1519
+ prices = _e.sent();
1520
+ return [3 /*break*/, 5];
1509
1521
  case 2:
1510
- _c = this.underlyingCoins.map(function () { return 1; });
1511
- _f.label = 3;
1522
+ if (!isUseStoredRates) return [3 /*break*/, 4];
1523
+ return [4 /*yield*/, this._stored_rates()];
1512
1524
  case 3:
1513
- prices = _c;
1525
+ result = _e.sent();
1526
+ result.forEach(function (item, index) {
1527
+ prices.push(Number(item) / (Math.pow(10, (36 - _this.underlyingDecimals[index]))));
1528
+ });
1529
+ return [3 /*break*/, 5];
1530
+ case 4:
1531
+ prices = this.underlyingCoins.map(function () { return 1; });
1532
+ _e.label = 5;
1533
+ case 5:
1514
1534
  pricesBN = prices.map(BN);
1515
1535
  return [4 /*yield*/, this.stats.underlyingBalances()];
1516
- case 4:
1517
- balancesBN = (_f.sent()).map(BN);
1536
+ case 6:
1537
+ balancesBN = (_e.sent()).map(BN);
1518
1538
  balancedAmounts = this._balancedAmountsWithSameValue(amountsBN, pricesBN, balancesBN);
1519
- _d = BN;
1539
+ _c = BN;
1520
1540
  return [4 /*yield*/, this.depositExpected(amounts)];
1521
- case 5:
1522
- expectedBN = _d.apply(void 0, [_f.sent()]);
1523
- _e = BN;
1541
+ case 7:
1542
+ expectedBN = _c.apply(void 0, [_e.sent()]);
1543
+ _d = BN;
1524
1544
  return [4 /*yield*/, this.depositExpected(balancedAmounts)];
1525
- case 6:
1526
- balancedExpectedBN = _e.apply(void 0, [_f.sent()]);
1545
+ case 8:
1546
+ balancedExpectedBN = _d.apply(void 0, [_e.sent()]);
1527
1547
  return [2 /*return*/, String(expectedBN.minus(balancedExpectedBN).div(balancedExpectedBN).times(100))];
1528
1548
  }
1529
1549
  });
package/lib/utils.d.ts CHANGED
@@ -57,5 +57,6 @@ export declare const getCoinsData: (...coins: string[] | string[][]) => Promise<
57
57
  export declare const hasDepositAndStake: () => boolean;
58
58
  export declare const hasRouter: () => boolean;
59
59
  export declare const getCountArgsOfMethodByContract: (contract: Contract, methodName: string) => number;
60
+ export declare const isMethodExist: (contract: Contract, methodName: string) => boolean;
60
61
  export declare const getPoolName: (name: string) => string;
61
62
  export declare const assetTypeNameHandler: (assetTypeName: string) => REFERENCE_ASSET;
package/lib/utils.js CHANGED
@@ -914,6 +914,15 @@ export var getCountArgsOfMethodByContract = function (contract, methodName) {
914
914
  return -1;
915
915
  }
916
916
  };
917
+ export var isMethodExist = function (contract, methodName) {
918
+ var func = contract.interface.fragments.find(function (item) { return item.name === methodName; });
919
+ if (func) {
920
+ return true;
921
+ }
922
+ else {
923
+ return false;
924
+ }
925
+ };
917
926
  export var getPoolName = function (name) {
918
927
  var separatedName = name.split(": ");
919
928
  if (separatedName.length > 1) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@curvefi/api",
3
- "version": "2.53.0",
3
+ "version": "2.53.2",
4
4
  "description": "JavaScript library for curve.fi",
5
5
  "main": "lib/index.js",
6
6
  "author": "Macket",