@gearbox-protocol/sdk 3.0.0-vfour.40 → 3.0.0-vfour.42
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/dist/cjs/sdk/index.cjs +774 -299
- package/dist/cjs/sdk/index.d.ts +459 -214
- package/dist/esm/sdk/index.d.mts +459 -214
- package/dist/esm/sdk/index.mjs +775 -301
- package/package.json +1 -1
package/dist/cjs/sdk/index.cjs
CHANGED
|
@@ -614,87 +614,6 @@ var iCreditAccountCompressorAbi = [
|
|
|
614
614
|
stateMutability: "view"
|
|
615
615
|
}
|
|
616
616
|
];
|
|
617
|
-
var iAdapterCompressorAbi = [
|
|
618
|
-
{
|
|
619
|
-
type: "function",
|
|
620
|
-
name: "contractType",
|
|
621
|
-
inputs: [],
|
|
622
|
-
outputs: [
|
|
623
|
-
{
|
|
624
|
-
name: "",
|
|
625
|
-
type: "bytes32",
|
|
626
|
-
internalType: "bytes32"
|
|
627
|
-
}
|
|
628
|
-
],
|
|
629
|
-
stateMutability: "view"
|
|
630
|
-
},
|
|
631
|
-
{
|
|
632
|
-
type: "function",
|
|
633
|
-
name: "getContractAdapters",
|
|
634
|
-
inputs: [
|
|
635
|
-
{
|
|
636
|
-
name: "creditManager",
|
|
637
|
-
type: "address",
|
|
638
|
-
internalType: "address"
|
|
639
|
-
}
|
|
640
|
-
],
|
|
641
|
-
outputs: [
|
|
642
|
-
{
|
|
643
|
-
name: "result",
|
|
644
|
-
type: "tuple[]",
|
|
645
|
-
internalType: "struct ContractAdapter[]",
|
|
646
|
-
components: [
|
|
647
|
-
{
|
|
648
|
-
name: "baseParams",
|
|
649
|
-
type: "tuple",
|
|
650
|
-
internalType: "struct BaseParams",
|
|
651
|
-
components: [
|
|
652
|
-
{
|
|
653
|
-
name: "addr",
|
|
654
|
-
type: "address",
|
|
655
|
-
internalType: "address"
|
|
656
|
-
},
|
|
657
|
-
{
|
|
658
|
-
name: "version",
|
|
659
|
-
type: "uint256",
|
|
660
|
-
internalType: "uint256"
|
|
661
|
-
},
|
|
662
|
-
{
|
|
663
|
-
name: "contractType",
|
|
664
|
-
type: "bytes32",
|
|
665
|
-
internalType: "bytes32"
|
|
666
|
-
},
|
|
667
|
-
{
|
|
668
|
-
name: "serializedParams",
|
|
669
|
-
type: "bytes",
|
|
670
|
-
internalType: "bytes"
|
|
671
|
-
}
|
|
672
|
-
]
|
|
673
|
-
},
|
|
674
|
-
{
|
|
675
|
-
name: "targetContract",
|
|
676
|
-
type: "address",
|
|
677
|
-
internalType: "address"
|
|
678
|
-
}
|
|
679
|
-
]
|
|
680
|
-
}
|
|
681
|
-
],
|
|
682
|
-
stateMutability: "view"
|
|
683
|
-
},
|
|
684
|
-
{
|
|
685
|
-
type: "function",
|
|
686
|
-
name: "version",
|
|
687
|
-
inputs: [],
|
|
688
|
-
outputs: [
|
|
689
|
-
{
|
|
690
|
-
name: "",
|
|
691
|
-
type: "uint256",
|
|
692
|
-
internalType: "uint256"
|
|
693
|
-
}
|
|
694
|
-
],
|
|
695
|
-
stateMutability: "view"
|
|
696
|
-
}
|
|
697
|
-
];
|
|
698
617
|
var iMarketCompressorAbi = [
|
|
699
618
|
{
|
|
700
619
|
type: "function",
|
|
@@ -1535,6 +1454,45 @@ var iMarketCompressorAbi = [
|
|
|
1535
1454
|
}
|
|
1536
1455
|
]
|
|
1537
1456
|
},
|
|
1457
|
+
{
|
|
1458
|
+
name: "adapters",
|
|
1459
|
+
type: "tuple[]",
|
|
1460
|
+
internalType: "struct ContractAdapter[]",
|
|
1461
|
+
components: [
|
|
1462
|
+
{
|
|
1463
|
+
name: "baseParams",
|
|
1464
|
+
type: "tuple",
|
|
1465
|
+
internalType: "struct BaseParams",
|
|
1466
|
+
components: [
|
|
1467
|
+
{
|
|
1468
|
+
name: "addr",
|
|
1469
|
+
type: "address",
|
|
1470
|
+
internalType: "address"
|
|
1471
|
+
},
|
|
1472
|
+
{
|
|
1473
|
+
name: "version",
|
|
1474
|
+
type: "uint256",
|
|
1475
|
+
internalType: "uint256"
|
|
1476
|
+
},
|
|
1477
|
+
{
|
|
1478
|
+
name: "contractType",
|
|
1479
|
+
type: "bytes32",
|
|
1480
|
+
internalType: "bytes32"
|
|
1481
|
+
},
|
|
1482
|
+
{
|
|
1483
|
+
name: "serializedParams",
|
|
1484
|
+
type: "bytes",
|
|
1485
|
+
internalType: "bytes"
|
|
1486
|
+
}
|
|
1487
|
+
]
|
|
1488
|
+
},
|
|
1489
|
+
{
|
|
1490
|
+
name: "targetContract",
|
|
1491
|
+
type: "address",
|
|
1492
|
+
internalType: "address"
|
|
1493
|
+
}
|
|
1494
|
+
]
|
|
1495
|
+
},
|
|
1538
1496
|
{
|
|
1539
1497
|
name: "totalDebt",
|
|
1540
1498
|
type: "uint256",
|
|
@@ -2459,6 +2417,45 @@ var iMarketCompressorAbi = [
|
|
|
2459
2417
|
}
|
|
2460
2418
|
]
|
|
2461
2419
|
},
|
|
2420
|
+
{
|
|
2421
|
+
name: "adapters",
|
|
2422
|
+
type: "tuple[]",
|
|
2423
|
+
internalType: "struct ContractAdapter[]",
|
|
2424
|
+
components: [
|
|
2425
|
+
{
|
|
2426
|
+
name: "baseParams",
|
|
2427
|
+
type: "tuple",
|
|
2428
|
+
internalType: "struct BaseParams",
|
|
2429
|
+
components: [
|
|
2430
|
+
{
|
|
2431
|
+
name: "addr",
|
|
2432
|
+
type: "address",
|
|
2433
|
+
internalType: "address"
|
|
2434
|
+
},
|
|
2435
|
+
{
|
|
2436
|
+
name: "version",
|
|
2437
|
+
type: "uint256",
|
|
2438
|
+
internalType: "uint256"
|
|
2439
|
+
},
|
|
2440
|
+
{
|
|
2441
|
+
name: "contractType",
|
|
2442
|
+
type: "bytes32",
|
|
2443
|
+
internalType: "bytes32"
|
|
2444
|
+
},
|
|
2445
|
+
{
|
|
2446
|
+
name: "serializedParams",
|
|
2447
|
+
type: "bytes",
|
|
2448
|
+
internalType: "bytes"
|
|
2449
|
+
}
|
|
2450
|
+
]
|
|
2451
|
+
},
|
|
2452
|
+
{
|
|
2453
|
+
name: "targetContract",
|
|
2454
|
+
type: "address",
|
|
2455
|
+
internalType: "address"
|
|
2456
|
+
}
|
|
2457
|
+
]
|
|
2458
|
+
},
|
|
2462
2459
|
{
|
|
2463
2460
|
name: "totalDebt",
|
|
2464
2461
|
type: "uint256",
|
|
@@ -18762,106 +18759,392 @@ var iCreditFacadeV310MulticallAbi = [
|
|
|
18762
18759
|
stateMutability: "nonpayable"
|
|
18763
18760
|
}
|
|
18764
18761
|
];
|
|
18765
|
-
|
|
18766
|
-
|
|
18767
|
-
|
|
18768
|
-
|
|
18769
|
-
|
|
18770
|
-
|
|
18771
|
-
|
|
18772
|
-
|
|
18773
|
-
|
|
18774
|
-
|
|
18775
|
-
var TIMELOCK = {
|
|
18776
|
-
Mainnet: "0xa133C9A92Fb8dDB962Af1cbae58b2723A0bdf23b",
|
|
18777
|
-
Arbitrum: "0x148DD932eCe1155c11006F5650c6Ff428f8D374A",
|
|
18778
|
-
Optimism: "0x148DD932eCe1155c11006F5650c6Ff428f8D374A",
|
|
18779
|
-
Base: NOT_DEPLOYED
|
|
18780
|
-
};
|
|
18781
|
-
|
|
18782
|
-
// src/sdk/constants/address-provider.ts
|
|
18783
|
-
var NO_VERSION = 0;
|
|
18784
|
-
var AP_ACL = "ACL";
|
|
18785
|
-
var AP_CONTRACTS_REGISTER = "CONTRACTS_REGISTER";
|
|
18786
|
-
var AP_PRICE_ORACLE = "PRICE_ORACLE";
|
|
18787
|
-
var AP_ACCOUNT_FACTORY = "ACCOUNT_FACTORY";
|
|
18788
|
-
var AP_DATA_COMPRESSOR = "DATA_COMPRESSOR";
|
|
18789
|
-
var AP_MARKET_COMPRESSOR = "MARKET_COMPRESSOR";
|
|
18790
|
-
var AP_PRICE_FEED_COMPRESSOR = "PRICE_FEED_COMPRESSOR";
|
|
18791
|
-
var AP_CREDIT_ACCOUNT_COMPRESSOR = "CREDIT_ACCOUNT_COMPRESSOR";
|
|
18792
|
-
var AP_ADAPTER_COMPRESSOR = "ADAPTER_COMPRESSOR";
|
|
18793
|
-
var AP_TREASURY = "TREASURY";
|
|
18794
|
-
var AP_GEAR_TOKEN = "GEAR_TOKEN";
|
|
18795
|
-
var AP_WETH_TOKEN = "WETH_TOKEN";
|
|
18796
|
-
var AP_WETH_GATEWAY = "WETH_GATEWAY";
|
|
18797
|
-
var AP_ROUTER = "ROUTER";
|
|
18798
|
-
var AP_BOT_LIST = "BOT_LIST";
|
|
18799
|
-
var AP_GEAR_STAKING = "GEAR_STAKING";
|
|
18800
|
-
var AP_ZAPPER_REGISTER = "ZAPPER_REGISTER";
|
|
18801
|
-
var AP_CONTROLLER_TIMELOCK = "CONTROLLER_TIMELOCK";
|
|
18802
|
-
var AP_DEGEN_NFT = "DEGEN_NFT";
|
|
18803
|
-
var AP_ZERO_PRICE_FEED = "ZERO_PRICE_FEED";
|
|
18804
|
-
var AP_DEGEN_DISTRIBUTOR = "DEGEN_DISTRIBUTOR";
|
|
18805
|
-
var AP_MULTI_PAUSE = "MULTI_PAUSE";
|
|
18806
|
-
var AP_INFLATION_ATTACK_BLOCKER = "INFLATION_ATTACK_BLOCKER";
|
|
18807
|
-
var AP_INSOLVENCY_CHECKER = "INSOLVENCY_CHECKER";
|
|
18808
|
-
var AP_PARTIAL_LIQUIDATION_BOT = "PARTIAL_LIQUIDATION_BOT";
|
|
18809
|
-
var AP_DELEVERAGE_BOT_PEGGED = "DELEVERAGE_BOT_PEGGED";
|
|
18810
|
-
var AP_DELEVERAGE_BOT_LV = "DELEVERAGE_BOT_LV";
|
|
18811
|
-
var AP_DELEVERAGE_BOT_HV = "DELEVERAGE_BOT_HV";
|
|
18812
|
-
var ADDRESS_PROVIDER = {
|
|
18813
|
-
Mainnet: "0x9ea7b04Da02a5373317D745c1571c84aaD03321D",
|
|
18814
|
-
Arbitrum: "0x7d04eCdb892Ae074f03B5D0aBA03796F90F3F2af",
|
|
18815
|
-
Optimism: "0x3761ca4BFAcFCFFc1B8034e69F19116dD6756726",
|
|
18816
|
-
Base: NOT_DEPLOYED
|
|
18817
|
-
};
|
|
18818
|
-
|
|
18819
|
-
// src/sdk/constants/bot-permissions.ts
|
|
18820
|
-
var BotPermissions = /* @__PURE__ */ ((BotPermissions2) => {
|
|
18821
|
-
BotPermissions2[BotPermissions2["ADD_COLLATERAL"] = 1] = "ADD_COLLATERAL";
|
|
18822
|
-
BotPermissions2[BotPermissions2["INCREASE_DEBT"] = 2] = "INCREASE_DEBT";
|
|
18823
|
-
BotPermissions2[BotPermissions2["DECREASE_DEBT"] = 4] = "DECREASE_DEBT";
|
|
18824
|
-
BotPermissions2[BotPermissions2["ENABLE_TOKEN"] = 8] = "ENABLE_TOKEN";
|
|
18825
|
-
BotPermissions2[BotPermissions2["DISABLE_TOKEN"] = 16] = "DISABLE_TOKEN";
|
|
18826
|
-
BotPermissions2[BotPermissions2["WITHDRAW_COLLATERAL"] = 32] = "WITHDRAW_COLLATERAL";
|
|
18827
|
-
BotPermissions2[BotPermissions2["UPDATE_QUOTA"] = 64] = "UPDATE_QUOTA";
|
|
18828
|
-
BotPermissions2[BotPermissions2["REVOKE_ALLOWANCES"] = 128] = "REVOKE_ALLOWANCES";
|
|
18829
|
-
BotPermissions2[BotPermissions2["EXTERNAL_CALLS"] = 65536] = "EXTERNAL_CALLS";
|
|
18830
|
-
BotPermissions2[BotPermissions2["ALL_CREDIT_FACADE_CALLS"] = 255] = "ALL_CREDIT_FACADE_CALLS";
|
|
18831
|
-
BotPermissions2[BotPermissions2["ALLS"] = 65791] = "ALLS";
|
|
18832
|
-
return BotPermissions2;
|
|
18833
|
-
})(BotPermissions || {});
|
|
18834
|
-
function botPermissionsToString(value) {
|
|
18835
|
-
let result = "";
|
|
18836
|
-
for (let i = 0; i < 16; i++) {
|
|
18837
|
-
if ((value & 1n << BigInt(i)) !== 0n) {
|
|
18838
|
-
if (result.length > 0) {
|
|
18839
|
-
result += " | ";
|
|
18762
|
+
var iMarketConfiguratorV310Abi = [
|
|
18763
|
+
{
|
|
18764
|
+
type: "function",
|
|
18765
|
+
name: "adapterFactory",
|
|
18766
|
+
inputs: [],
|
|
18767
|
+
outputs: [
|
|
18768
|
+
{
|
|
18769
|
+
name: "",
|
|
18770
|
+
type: "address",
|
|
18771
|
+
internalType: "address"
|
|
18840
18772
|
}
|
|
18841
|
-
|
|
18842
|
-
|
|
18843
|
-
}
|
|
18844
|
-
|
|
18845
|
-
|
|
18846
|
-
|
|
18847
|
-
|
|
18848
|
-
|
|
18849
|
-
|
|
18850
|
-
|
|
18851
|
-
|
|
18852
|
-
|
|
18853
|
-
|
|
18854
|
-
|
|
18855
|
-
|
|
18856
|
-
|
|
18857
|
-
|
|
18858
|
-
|
|
18859
|
-
|
|
18860
|
-
|
|
18861
|
-
|
|
18862
|
-
|
|
18863
|
-
|
|
18864
|
-
|
|
18773
|
+
],
|
|
18774
|
+
stateMutability: "view"
|
|
18775
|
+
},
|
|
18776
|
+
{
|
|
18777
|
+
type: "function",
|
|
18778
|
+
name: "addressProvider",
|
|
18779
|
+
inputs: [],
|
|
18780
|
+
outputs: [
|
|
18781
|
+
{
|
|
18782
|
+
name: "",
|
|
18783
|
+
type: "address",
|
|
18784
|
+
internalType: "address"
|
|
18785
|
+
}
|
|
18786
|
+
],
|
|
18787
|
+
stateMutability: "view"
|
|
18788
|
+
},
|
|
18789
|
+
{
|
|
18790
|
+
type: "function",
|
|
18791
|
+
name: "contractType",
|
|
18792
|
+
inputs: [],
|
|
18793
|
+
outputs: [
|
|
18794
|
+
{
|
|
18795
|
+
name: "",
|
|
18796
|
+
type: "bytes32",
|
|
18797
|
+
internalType: "bytes32"
|
|
18798
|
+
}
|
|
18799
|
+
],
|
|
18800
|
+
stateMutability: "view"
|
|
18801
|
+
},
|
|
18802
|
+
{
|
|
18803
|
+
type: "function",
|
|
18804
|
+
name: "contractsRegister",
|
|
18805
|
+
inputs: [],
|
|
18806
|
+
outputs: [
|
|
18807
|
+
{
|
|
18808
|
+
name: "",
|
|
18809
|
+
type: "address",
|
|
18810
|
+
internalType: "address"
|
|
18811
|
+
}
|
|
18812
|
+
],
|
|
18813
|
+
stateMutability: "view"
|
|
18814
|
+
},
|
|
18815
|
+
{
|
|
18816
|
+
type: "function",
|
|
18817
|
+
name: "controller",
|
|
18818
|
+
inputs: [],
|
|
18819
|
+
outputs: [
|
|
18820
|
+
{
|
|
18821
|
+
name: "",
|
|
18822
|
+
type: "address",
|
|
18823
|
+
internalType: "address"
|
|
18824
|
+
}
|
|
18825
|
+
],
|
|
18826
|
+
stateMutability: "view"
|
|
18827
|
+
},
|
|
18828
|
+
{
|
|
18829
|
+
type: "function",
|
|
18830
|
+
name: "creditFactory",
|
|
18831
|
+
inputs: [],
|
|
18832
|
+
outputs: [
|
|
18833
|
+
{
|
|
18834
|
+
name: "",
|
|
18835
|
+
type: "address",
|
|
18836
|
+
internalType: "address"
|
|
18837
|
+
}
|
|
18838
|
+
],
|
|
18839
|
+
stateMutability: "view"
|
|
18840
|
+
},
|
|
18841
|
+
{
|
|
18842
|
+
type: "function",
|
|
18843
|
+
name: "interestModelFactory",
|
|
18844
|
+
inputs: [],
|
|
18845
|
+
outputs: [
|
|
18846
|
+
{
|
|
18847
|
+
name: "",
|
|
18848
|
+
type: "address",
|
|
18849
|
+
internalType: "address"
|
|
18850
|
+
}
|
|
18851
|
+
],
|
|
18852
|
+
stateMutability: "view"
|
|
18853
|
+
},
|
|
18854
|
+
{
|
|
18855
|
+
type: "function",
|
|
18856
|
+
name: "owner",
|
|
18857
|
+
inputs: [],
|
|
18858
|
+
outputs: [
|
|
18859
|
+
{
|
|
18860
|
+
name: "",
|
|
18861
|
+
type: "address",
|
|
18862
|
+
internalType: "address"
|
|
18863
|
+
}
|
|
18864
|
+
],
|
|
18865
|
+
stateMutability: "view"
|
|
18866
|
+
},
|
|
18867
|
+
{
|
|
18868
|
+
type: "function",
|
|
18869
|
+
name: "poolFactory",
|
|
18870
|
+
inputs: [],
|
|
18871
|
+
outputs: [
|
|
18872
|
+
{
|
|
18873
|
+
name: "",
|
|
18874
|
+
type: "address",
|
|
18875
|
+
internalType: "address"
|
|
18876
|
+
}
|
|
18877
|
+
],
|
|
18878
|
+
stateMutability: "view"
|
|
18879
|
+
},
|
|
18880
|
+
{
|
|
18881
|
+
type: "function",
|
|
18882
|
+
name: "pools",
|
|
18883
|
+
inputs: [],
|
|
18884
|
+
outputs: [
|
|
18885
|
+
{
|
|
18886
|
+
name: "",
|
|
18887
|
+
type: "address[]",
|
|
18888
|
+
internalType: "address[]"
|
|
18889
|
+
}
|
|
18890
|
+
],
|
|
18891
|
+
stateMutability: "view"
|
|
18892
|
+
},
|
|
18893
|
+
{
|
|
18894
|
+
type: "function",
|
|
18895
|
+
name: "priceOracleFactory",
|
|
18896
|
+
inputs: [],
|
|
18897
|
+
outputs: [
|
|
18898
|
+
{
|
|
18899
|
+
name: "",
|
|
18900
|
+
type: "address",
|
|
18901
|
+
internalType: "address"
|
|
18902
|
+
}
|
|
18903
|
+
],
|
|
18904
|
+
stateMutability: "view"
|
|
18905
|
+
},
|
|
18906
|
+
{
|
|
18907
|
+
type: "function",
|
|
18908
|
+
name: "treasury",
|
|
18909
|
+
inputs: [],
|
|
18910
|
+
outputs: [
|
|
18911
|
+
{
|
|
18912
|
+
name: "",
|
|
18913
|
+
type: "address",
|
|
18914
|
+
internalType: "address"
|
|
18915
|
+
}
|
|
18916
|
+
],
|
|
18917
|
+
stateMutability: "view"
|
|
18918
|
+
},
|
|
18919
|
+
{
|
|
18920
|
+
type: "function",
|
|
18921
|
+
name: "version",
|
|
18922
|
+
inputs: [],
|
|
18923
|
+
outputs: [
|
|
18924
|
+
{
|
|
18925
|
+
name: "",
|
|
18926
|
+
type: "uint256",
|
|
18927
|
+
internalType: "uint256"
|
|
18928
|
+
}
|
|
18929
|
+
],
|
|
18930
|
+
stateMutability: "view"
|
|
18931
|
+
},
|
|
18932
|
+
{
|
|
18933
|
+
type: "event",
|
|
18934
|
+
name: "CreateMarket",
|
|
18935
|
+
inputs: [
|
|
18936
|
+
{
|
|
18937
|
+
name: "pool",
|
|
18938
|
+
type: "address",
|
|
18939
|
+
indexed: true,
|
|
18940
|
+
internalType: "address"
|
|
18941
|
+
},
|
|
18942
|
+
{
|
|
18943
|
+
name: "underlying",
|
|
18944
|
+
type: "address",
|
|
18945
|
+
indexed: true,
|
|
18946
|
+
internalType: "address"
|
|
18947
|
+
},
|
|
18948
|
+
{
|
|
18949
|
+
name: "_name",
|
|
18950
|
+
type: "string",
|
|
18951
|
+
indexed: false,
|
|
18952
|
+
internalType: "string"
|
|
18953
|
+
},
|
|
18954
|
+
{
|
|
18955
|
+
name: "_symbol",
|
|
18956
|
+
type: "string",
|
|
18957
|
+
indexed: false,
|
|
18958
|
+
internalType: "string"
|
|
18959
|
+
}
|
|
18960
|
+
],
|
|
18961
|
+
anonymous: false
|
|
18962
|
+
},
|
|
18963
|
+
{
|
|
18964
|
+
type: "event",
|
|
18965
|
+
name: "DeployDegenNFT",
|
|
18966
|
+
inputs: [
|
|
18967
|
+
{
|
|
18968
|
+
name: "",
|
|
18969
|
+
type: "address",
|
|
18970
|
+
indexed: false,
|
|
18971
|
+
internalType: "address"
|
|
18972
|
+
}
|
|
18973
|
+
],
|
|
18974
|
+
anonymous: false
|
|
18975
|
+
},
|
|
18976
|
+
{
|
|
18977
|
+
type: "event",
|
|
18978
|
+
name: "RemoveMarket",
|
|
18979
|
+
inputs: [
|
|
18980
|
+
{
|
|
18981
|
+
name: "pool",
|
|
18982
|
+
type: "address",
|
|
18983
|
+
indexed: true,
|
|
18984
|
+
internalType: "address"
|
|
18985
|
+
}
|
|
18986
|
+
],
|
|
18987
|
+
anonymous: false
|
|
18988
|
+
},
|
|
18989
|
+
{
|
|
18990
|
+
type: "event",
|
|
18991
|
+
name: "SetName",
|
|
18992
|
+
inputs: [
|
|
18993
|
+
{
|
|
18994
|
+
name: "name",
|
|
18995
|
+
type: "string",
|
|
18996
|
+
indexed: false,
|
|
18997
|
+
internalType: "string"
|
|
18998
|
+
}
|
|
18999
|
+
],
|
|
19000
|
+
anonymous: false
|
|
19001
|
+
},
|
|
19002
|
+
{
|
|
19003
|
+
type: "event",
|
|
19004
|
+
name: "SetPriceFeedFromStore",
|
|
19005
|
+
inputs: [
|
|
19006
|
+
{
|
|
19007
|
+
name: "token",
|
|
19008
|
+
type: "address",
|
|
19009
|
+
indexed: true,
|
|
19010
|
+
internalType: "address"
|
|
19011
|
+
},
|
|
19012
|
+
{
|
|
19013
|
+
name: "priceFeed",
|
|
19014
|
+
type: "address",
|
|
19015
|
+
indexed: true,
|
|
19016
|
+
internalType: "address"
|
|
19017
|
+
},
|
|
19018
|
+
{
|
|
19019
|
+
name: "trusted",
|
|
19020
|
+
type: "bool",
|
|
19021
|
+
indexed: false,
|
|
19022
|
+
internalType: "bool"
|
|
19023
|
+
}
|
|
19024
|
+
],
|
|
19025
|
+
anonymous: false
|
|
19026
|
+
},
|
|
19027
|
+
{
|
|
19028
|
+
type: "event",
|
|
19029
|
+
name: "SetReservePriceFeedFromStore",
|
|
19030
|
+
inputs: [
|
|
19031
|
+
{
|
|
19032
|
+
name: "token",
|
|
19033
|
+
type: "address",
|
|
19034
|
+
indexed: true,
|
|
19035
|
+
internalType: "address"
|
|
19036
|
+
},
|
|
19037
|
+
{
|
|
19038
|
+
name: "priceFeedd",
|
|
19039
|
+
type: "address",
|
|
19040
|
+
indexed: true,
|
|
19041
|
+
internalType: "address"
|
|
19042
|
+
}
|
|
19043
|
+
],
|
|
19044
|
+
anonymous: false
|
|
19045
|
+
}
|
|
19046
|
+
];
|
|
19047
|
+
|
|
19048
|
+
// src/sdk/constants/addresses.ts
|
|
19049
|
+
var ADDRESS_0X0 = "0x0000000000000000000000000000000000000000";
|
|
19050
|
+
var NOT_DEPLOYED = "0xNOT DEPLOYED";
|
|
19051
|
+
var USDC = {
|
|
19052
|
+
Mainnet: "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
|
|
19053
|
+
Arbitrum: "0xaf88d065e77c8cC2239327C5EDb3A432268e5831",
|
|
19054
|
+
Optimism: "0x0b2C639c533813f4Aa9D7837CAf62653d097Ff85",
|
|
19055
|
+
Base: "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"
|
|
19056
|
+
};
|
|
19057
|
+
var TIMELOCK = {
|
|
19058
|
+
Mainnet: "0xa133C9A92Fb8dDB962Af1cbae58b2723A0bdf23b",
|
|
19059
|
+
Arbitrum: "0x148DD932eCe1155c11006F5650c6Ff428f8D374A",
|
|
19060
|
+
Optimism: "0x148DD932eCe1155c11006F5650c6Ff428f8D374A",
|
|
19061
|
+
Base: NOT_DEPLOYED
|
|
19062
|
+
};
|
|
19063
|
+
|
|
19064
|
+
// src/sdk/constants/address-provider.ts
|
|
19065
|
+
var NO_VERSION = 0;
|
|
19066
|
+
var AP_ACL = "ACL";
|
|
19067
|
+
var AP_CONTRACTS_REGISTER = "CONTRACTS_REGISTER";
|
|
19068
|
+
var AP_PRICE_ORACLE = "PRICE_ORACLE";
|
|
19069
|
+
var AP_ACCOUNT_FACTORY = "ACCOUNT_FACTORY";
|
|
19070
|
+
var AP_DATA_COMPRESSOR = "DATA_COMPRESSOR";
|
|
19071
|
+
var AP_MARKET_COMPRESSOR = "MARKET_COMPRESSOR";
|
|
19072
|
+
var AP_MARKET_CONFIGURATOR = "MARKET_CONFIGURATOR";
|
|
19073
|
+
var AP_PRICE_FEED_COMPRESSOR = "PRICE_FEED_COMPRESSOR";
|
|
19074
|
+
var AP_CREDIT_ACCOUNT_COMPRESSOR = "CREDIT_ACCOUNT_COMPRESSOR";
|
|
19075
|
+
var AP_ADAPTER_COMPRESSOR = "ADAPTER_COMPRESSOR";
|
|
19076
|
+
var AP_TREASURY = "TREASURY";
|
|
19077
|
+
var AP_GEAR_TOKEN = "GEAR_TOKEN";
|
|
19078
|
+
var AP_WETH_TOKEN = "WETH_TOKEN";
|
|
19079
|
+
var AP_WETH_GATEWAY = "WETH_GATEWAY";
|
|
19080
|
+
var AP_ROUTER = "ROUTER";
|
|
19081
|
+
var AP_BOT_LIST = "BOT_LIST";
|
|
19082
|
+
var AP_GEAR_STAKING = "GEAR_STAKING";
|
|
19083
|
+
var AP_ZAPPER_REGISTER = "ZAPPER_REGISTER";
|
|
19084
|
+
var AP_CONTROLLER_TIMELOCK = "CONTROLLER_TIMELOCK";
|
|
19085
|
+
var AP_DEGEN_NFT = "DEGEN_NFT";
|
|
19086
|
+
var AP_ZERO_PRICE_FEED = "ZERO_PRICE_FEED";
|
|
19087
|
+
var AP_DEGEN_DISTRIBUTOR = "DEGEN_DISTRIBUTOR";
|
|
19088
|
+
var AP_MULTI_PAUSE = "MULTI_PAUSE";
|
|
19089
|
+
var AP_INFLATION_ATTACK_BLOCKER = "INFLATION_ATTACK_BLOCKER";
|
|
19090
|
+
var AP_INSOLVENCY_CHECKER = "INSOLVENCY_CHECKER";
|
|
19091
|
+
var AP_PARTIAL_LIQUIDATION_BOT = "PARTIAL_LIQUIDATION_BOT";
|
|
19092
|
+
var AP_DELEVERAGE_BOT_PEGGED = "DELEVERAGE_BOT_PEGGED";
|
|
19093
|
+
var AP_DELEVERAGE_BOT_LV = "DELEVERAGE_BOT_LV";
|
|
19094
|
+
var AP_DELEVERAGE_BOT_HV = "DELEVERAGE_BOT_HV";
|
|
19095
|
+
var ADDRESS_PROVIDER = {
|
|
19096
|
+
Mainnet: "0x9ea7b04Da02a5373317D745c1571c84aaD03321D",
|
|
19097
|
+
Arbitrum: "0x7d04eCdb892Ae074f03B5D0aBA03796F90F3F2af",
|
|
19098
|
+
Optimism: "0x3761ca4BFAcFCFFc1B8034e69F19116dD6756726",
|
|
19099
|
+
Base: NOT_DEPLOYED
|
|
19100
|
+
};
|
|
19101
|
+
|
|
19102
|
+
// src/sdk/constants/bot-permissions.ts
|
|
19103
|
+
var BotPermissions = /* @__PURE__ */ ((BotPermissions2) => {
|
|
19104
|
+
BotPermissions2[BotPermissions2["ADD_COLLATERAL"] = 1] = "ADD_COLLATERAL";
|
|
19105
|
+
BotPermissions2[BotPermissions2["INCREASE_DEBT"] = 2] = "INCREASE_DEBT";
|
|
19106
|
+
BotPermissions2[BotPermissions2["DECREASE_DEBT"] = 4] = "DECREASE_DEBT";
|
|
19107
|
+
BotPermissions2[BotPermissions2["ENABLE_TOKEN"] = 8] = "ENABLE_TOKEN";
|
|
19108
|
+
BotPermissions2[BotPermissions2["DISABLE_TOKEN"] = 16] = "DISABLE_TOKEN";
|
|
19109
|
+
BotPermissions2[BotPermissions2["WITHDRAW_COLLATERAL"] = 32] = "WITHDRAW_COLLATERAL";
|
|
19110
|
+
BotPermissions2[BotPermissions2["UPDATE_QUOTA"] = 64] = "UPDATE_QUOTA";
|
|
19111
|
+
BotPermissions2[BotPermissions2["REVOKE_ALLOWANCES"] = 128] = "REVOKE_ALLOWANCES";
|
|
19112
|
+
BotPermissions2[BotPermissions2["EXTERNAL_CALLS"] = 65536] = "EXTERNAL_CALLS";
|
|
19113
|
+
BotPermissions2[BotPermissions2["ALL_CREDIT_FACADE_CALLS"] = 255] = "ALL_CREDIT_FACADE_CALLS";
|
|
19114
|
+
BotPermissions2[BotPermissions2["ALLS"] = 65791] = "ALLS";
|
|
19115
|
+
return BotPermissions2;
|
|
19116
|
+
})(BotPermissions || {});
|
|
19117
|
+
function botPermissionsToString(value) {
|
|
19118
|
+
let result = "";
|
|
19119
|
+
for (let i = 0; i < 16; i++) {
|
|
19120
|
+
if ((value & 1n << BigInt(i)) !== 0n) {
|
|
19121
|
+
if (result.length > 0) {
|
|
19122
|
+
result += " | ";
|
|
19123
|
+
}
|
|
19124
|
+
result += BotPermissions[1 << i];
|
|
19125
|
+
}
|
|
19126
|
+
}
|
|
19127
|
+
return result;
|
|
19128
|
+
}
|
|
19129
|
+
|
|
19130
|
+
// src/sdk/constants/math.ts
|
|
19131
|
+
var MIN_INT96 = -39614081257132168796771975168n;
|
|
19132
|
+
var MAX_UINT256 = 115792089237316195423570985008687907853269984665640564039457584007913129639935n;
|
|
19133
|
+
var RAY_DECIMALS_POW = 27;
|
|
19134
|
+
var RAY = 10n ** BigInt(RAY_DECIMALS_POW);
|
|
19135
|
+
var halfRAY = RAY / 2n;
|
|
19136
|
+
var WAD_DECIMALS_POW = 18;
|
|
19137
|
+
var WAD = 10n ** BigInt(WAD_DECIMALS_POW);
|
|
19138
|
+
var PRICE_DECIMALS_POW = 8;
|
|
19139
|
+
var PRICE_DECIMALS = 10n ** BigInt(PRICE_DECIMALS_POW);
|
|
19140
|
+
var PERCENTAGE_DECIMALS = 100n;
|
|
19141
|
+
var PERCENTAGE_FACTOR = 10000n;
|
|
19142
|
+
var AddressMap = class {
|
|
19143
|
+
#map;
|
|
19144
|
+
#frozen = false;
|
|
19145
|
+
constructor(entries) {
|
|
19146
|
+
this.#map = /* @__PURE__ */ new Map();
|
|
19147
|
+
if (entries) {
|
|
18865
19148
|
for (const [address, value] of entries) {
|
|
18866
19149
|
const key = address.toLowerCase();
|
|
18867
19150
|
if (!viem.isAddress(key)) {
|
|
@@ -18990,12 +19273,12 @@ var json_parse = (s) => {
|
|
|
18990
19273
|
function createRawTx(to, parameters, description) {
|
|
18991
19274
|
const { args } = parameters;
|
|
18992
19275
|
const fname = parameters.functionName;
|
|
18993
|
-
const { abi:
|
|
19276
|
+
const { abi: abi20, functionName } = (() => {
|
|
18994
19277
|
if (parameters.abi.length === 1 && parameters.functionName?.startsWith("0x"))
|
|
18995
19278
|
return parameters;
|
|
18996
19279
|
return viem.prepareEncodeFunctionData(parameters);
|
|
18997
19280
|
})();
|
|
18998
|
-
const abiItem =
|
|
19281
|
+
const abiItem = abi20[0];
|
|
18999
19282
|
const signature = functionName;
|
|
19000
19283
|
const data = "inputs" in abiItem && abiItem.inputs ? viem.encodeAbiParameters(abiItem.inputs, args ?? []) : void 0;
|
|
19001
19284
|
const functionEncodedData = viem.concatHex([signature, data ?? "0x"]);
|
|
@@ -19171,12 +19454,25 @@ var AddressLabeller = class {
|
|
|
19171
19454
|
// src/sdk/base/SDKConstruct.ts
|
|
19172
19455
|
var SDKConstruct = class {
|
|
19173
19456
|
sdk;
|
|
19457
|
+
/**
|
|
19458
|
+
* Indicates that contract state needs to be updated
|
|
19459
|
+
*/
|
|
19460
|
+
#dirty = false;
|
|
19174
19461
|
constructor(sdk) {
|
|
19175
19462
|
this.sdk = sdk;
|
|
19176
19463
|
}
|
|
19177
19464
|
get provider() {
|
|
19178
19465
|
return this.sdk.provider;
|
|
19179
19466
|
}
|
|
19467
|
+
/**
|
|
19468
|
+
* Indicates that contract state needs to be updated
|
|
19469
|
+
*/
|
|
19470
|
+
get dirty() {
|
|
19471
|
+
return this.#dirty;
|
|
19472
|
+
}
|
|
19473
|
+
set dirty(value) {
|
|
19474
|
+
this.#dirty = value;
|
|
19475
|
+
}
|
|
19180
19476
|
};
|
|
19181
19477
|
|
|
19182
19478
|
// src/sdk/base/BaseContract.ts
|
|
@@ -19240,10 +19536,10 @@ var BaseContract = class extends SDKConstruct {
|
|
|
19240
19536
|
};
|
|
19241
19537
|
}
|
|
19242
19538
|
/**
|
|
19243
|
-
* Updates contract's internal state from event
|
|
19539
|
+
* Updates (or not) contract's internal state from event
|
|
19244
19540
|
* @param _log
|
|
19245
19541
|
*/
|
|
19246
|
-
|
|
19542
|
+
processLog(_log) {
|
|
19247
19543
|
}
|
|
19248
19544
|
/**
|
|
19249
19545
|
* Converts contract calldata to some human-friendly string
|
|
@@ -19575,6 +19871,36 @@ var CreditConfiguratorContract = class extends BaseContract {
|
|
|
19575
19871
|
});
|
|
19576
19872
|
this.emergencyLiquidators = [...emergencyLiquidators];
|
|
19577
19873
|
}
|
|
19874
|
+
processLog(log) {
|
|
19875
|
+
switch (log.eventName) {
|
|
19876
|
+
case "AddCollateralToken":
|
|
19877
|
+
case "AddEmergencyLiquidator":
|
|
19878
|
+
case "AllowAdapter":
|
|
19879
|
+
case "AllowToken":
|
|
19880
|
+
case "CreditConfiguratorUpgraded":
|
|
19881
|
+
case "ForbidAdapter":
|
|
19882
|
+
case "ForbidToken":
|
|
19883
|
+
case "NewController":
|
|
19884
|
+
case "Paused":
|
|
19885
|
+
case "QuoteToken":
|
|
19886
|
+
case "RemoveEmergencyLiquidator":
|
|
19887
|
+
case "ResetCumulativeLoss":
|
|
19888
|
+
case "ScheduleTokenLiquidationThresholdRamp":
|
|
19889
|
+
case "SetBorrowingLimits":
|
|
19890
|
+
case "SetBotList":
|
|
19891
|
+
case "SetCreditFacade":
|
|
19892
|
+
case "SetExpirationDate":
|
|
19893
|
+
case "SetMaxCumulativeLoss":
|
|
19894
|
+
case "SetMaxDebtPerBlockMultiplier":
|
|
19895
|
+
case "SetMaxEnabledTokens":
|
|
19896
|
+
case "SetPriceOracle":
|
|
19897
|
+
case "SetTokenLiquidationThreshold":
|
|
19898
|
+
case "Unpaused":
|
|
19899
|
+
case "UpdateFees":
|
|
19900
|
+
this.dirty = true;
|
|
19901
|
+
break;
|
|
19902
|
+
}
|
|
19903
|
+
}
|
|
19578
19904
|
get state() {
|
|
19579
19905
|
return {
|
|
19580
19906
|
...this.contractData,
|
|
@@ -19631,8 +19957,6 @@ var CreditConfiguratorContract = class extends BaseContract {
|
|
|
19631
19957
|
}
|
|
19632
19958
|
}
|
|
19633
19959
|
};
|
|
19634
|
-
|
|
19635
|
-
// src/sdk/market/CreditFacadeV300Contract.ts
|
|
19636
19960
|
var CreditFacadeV300Contract = class extends BaseContract {
|
|
19637
19961
|
state;
|
|
19638
19962
|
constructor(sdk, { creditFacade, creditManager }) {
|
|
@@ -19659,6 +19983,35 @@ var CreditFacadeV300Contract = class extends BaseContract {
|
|
|
19659
19983
|
isPaused: creditFacade.isPaused
|
|
19660
19984
|
};
|
|
19661
19985
|
}
|
|
19986
|
+
processLog(log) {
|
|
19987
|
+
switch (log.eventName) {
|
|
19988
|
+
case "AddCollateral":
|
|
19989
|
+
case "CloseCreditAccount":
|
|
19990
|
+
case "DecreaseDebt":
|
|
19991
|
+
case "Execute":
|
|
19992
|
+
case "FinishMultiCall":
|
|
19993
|
+
case "IncreaseDebt":
|
|
19994
|
+
case "LiquidateCreditAccount":
|
|
19995
|
+
case "NewController":
|
|
19996
|
+
case "OpenCreditAccount":
|
|
19997
|
+
case "Paused":
|
|
19998
|
+
case "StartMultiCall":
|
|
19999
|
+
case "Unpaused":
|
|
20000
|
+
case "WithdrawCollateral":
|
|
20001
|
+
this.dirty = true;
|
|
20002
|
+
break;
|
|
20003
|
+
}
|
|
20004
|
+
}
|
|
20005
|
+
encodeOnDemandPriceUpdates(updates) {
|
|
20006
|
+
return updates.map((u) => ({
|
|
20007
|
+
target: this.address,
|
|
20008
|
+
callData: viem.encodeFunctionData({
|
|
20009
|
+
abi: iCreditFacadeV3MulticallAbi,
|
|
20010
|
+
functionName: "onDemandPriceUpdate",
|
|
20011
|
+
args: [u.token, u.reserve, u.data]
|
|
20012
|
+
})
|
|
20013
|
+
}));
|
|
20014
|
+
}
|
|
19662
20015
|
liquidateCreditAccount(ca, to, calls) {
|
|
19663
20016
|
return this.createRawTx({
|
|
19664
20017
|
functionName: "liquidateCreditAccount",
|
|
@@ -19715,8 +20068,6 @@ var CreditFacadeV300Contract = class extends BaseContract {
|
|
|
19715
20068
|
}
|
|
19716
20069
|
}
|
|
19717
20070
|
};
|
|
19718
|
-
|
|
19719
|
-
// src/sdk/market/CreditFacadeV310Contract.ts
|
|
19720
20071
|
var CreditFacadeV310Contract = class extends BaseContract {
|
|
19721
20072
|
state;
|
|
19722
20073
|
constructor(sdk, { creditFacade, creditManager }) {
|
|
@@ -19743,6 +20094,39 @@ var CreditFacadeV310Contract = class extends BaseContract {
|
|
|
19743
20094
|
isPaused: creditFacade.isPaused
|
|
19744
20095
|
};
|
|
19745
20096
|
}
|
|
20097
|
+
processLog(log) {
|
|
20098
|
+
switch (log.eventName) {
|
|
20099
|
+
case "AddCollateral":
|
|
20100
|
+
case "CloseCreditAccount":
|
|
20101
|
+
case "Execute":
|
|
20102
|
+
case "FinishMultiCall":
|
|
20103
|
+
case "LiquidateCreditAccount":
|
|
20104
|
+
case "OpenCreditAccount":
|
|
20105
|
+
case "PartiallyLiquidateCreditAccount":
|
|
20106
|
+
case "StartMultiCall":
|
|
20107
|
+
case "WithdrawCollateral":
|
|
20108
|
+
case "WithdrawPhantomToken":
|
|
20109
|
+
this.dirty = true;
|
|
20110
|
+
break;
|
|
20111
|
+
}
|
|
20112
|
+
}
|
|
20113
|
+
encodeOnDemandPriceUpdates(updates) {
|
|
20114
|
+
return [
|
|
20115
|
+
{
|
|
20116
|
+
target: this.address,
|
|
20117
|
+
callData: viem.encodeFunctionData({
|
|
20118
|
+
abi: iCreditFacadeV310MulticallAbi,
|
|
20119
|
+
functionName: "onDemandPriceUpdates",
|
|
20120
|
+
args: [
|
|
20121
|
+
updates.map((u) => ({
|
|
20122
|
+
priceFeed: u.priceFeed,
|
|
20123
|
+
data: u.data
|
|
20124
|
+
}))
|
|
20125
|
+
]
|
|
20126
|
+
})
|
|
20127
|
+
}
|
|
20128
|
+
];
|
|
20129
|
+
}
|
|
19746
20130
|
liquidateCreditAccount(ca, to, calls) {
|
|
19747
20131
|
return this.createRawTx({
|
|
19748
20132
|
functionName: "liquidateCreditAccount",
|
|
@@ -19798,14 +20182,23 @@ var CreditManagerContract = class extends BaseContract {
|
|
|
19798
20182
|
/**
|
|
19799
20183
|
* Mapping targetContract => adapter
|
|
19800
20184
|
*/
|
|
19801
|
-
|
|
19802
|
-
constructor(sdk, { creditManager, creditFacade }, pool) {
|
|
20185
|
+
adapters = {};
|
|
20186
|
+
constructor(sdk, { creditManager, creditFacade, adapters }, pool) {
|
|
19803
20187
|
super(sdk, {
|
|
19804
20188
|
...creditManager.baseParams,
|
|
19805
20189
|
name: `CreditManagerV3(${creditManager.name})`,
|
|
19806
20190
|
abi: creditManagerV3Abi
|
|
19807
20191
|
});
|
|
19808
20192
|
const { collateralTokens, liquidationThresholds } = creditManager;
|
|
20193
|
+
for (const adapterData of adapters) {
|
|
20194
|
+
try {
|
|
20195
|
+
const adapter = createAdapter(this.sdk, adapterData);
|
|
20196
|
+
adapter.name = `${adapter.name}(${this.name})`;
|
|
20197
|
+
this.adapters[adapter.targetContract] = adapter;
|
|
20198
|
+
} catch (e) {
|
|
20199
|
+
throw new Error(`cannot attach adapter: ${e}`, { cause: e });
|
|
20200
|
+
}
|
|
20201
|
+
}
|
|
19809
20202
|
this.state = {
|
|
19810
20203
|
...this.contractData,
|
|
19811
20204
|
accountFactory: creditManager.accountFactory,
|
|
@@ -19824,33 +20217,20 @@ var CreditManagerContract = class extends BaseContract {
|
|
|
19824
20217
|
feeLiquidationExpired: creditManager.feeLiquidationExpired,
|
|
19825
20218
|
liquidationDiscountExpired: creditManager.liquidationDiscountExpired,
|
|
19826
20219
|
quotedTokensMask: 0n,
|
|
19827
|
-
contractsToAdapters:
|
|
20220
|
+
contractsToAdapters: Object.fromEntries(
|
|
20221
|
+
adapters.map((a) => [a.targetContract, a.baseParams.addr])
|
|
20222
|
+
),
|
|
19828
20223
|
creditAccounts: [],
|
|
19829
20224
|
// [...result[5].result!],
|
|
19830
20225
|
name: creditManager.name
|
|
19831
20226
|
};
|
|
19832
20227
|
}
|
|
19833
|
-
|
|
19834
|
-
|
|
19835
|
-
|
|
19836
|
-
|
|
19837
|
-
|
|
19838
|
-
adapter.name = `${adapter.name}(${this.name})`;
|
|
19839
|
-
this.adapters[adapter.targetContract] = adapter;
|
|
19840
|
-
} catch (e) {
|
|
19841
|
-
this.logger?.warn(`cannot attach adapter: ${e}`);
|
|
19842
|
-
}
|
|
19843
|
-
}
|
|
19844
|
-
this.state.contractsToAdapters = Object.fromEntries(
|
|
19845
|
-
adapters.map((a) => [a.targetContract, a.baseParams.addr])
|
|
19846
|
-
);
|
|
19847
|
-
this.logger?.debug(`attached ${adapters.length} adapters`);
|
|
19848
|
-
}
|
|
19849
|
-
get adapters() {
|
|
19850
|
-
if (!this.#adapters) {
|
|
19851
|
-
throw new Error("adapters not loaded");
|
|
20228
|
+
processLog(log) {
|
|
20229
|
+
switch (log.eventName) {
|
|
20230
|
+
case "SetCreditConfigurator":
|
|
20231
|
+
this.dirty = true;
|
|
20232
|
+
break;
|
|
19852
20233
|
}
|
|
19853
|
-
return this.#adapters;
|
|
19854
20234
|
}
|
|
19855
20235
|
get collateralTokens() {
|
|
19856
20236
|
return Object.keys(this.state.collateralTokens);
|
|
@@ -19858,7 +20238,7 @@ var CreditManagerContract = class extends BaseContract {
|
|
|
19858
20238
|
};
|
|
19859
20239
|
|
|
19860
20240
|
// src/sdk/market/CreditFactory.ts
|
|
19861
|
-
var CreditFactory = class {
|
|
20241
|
+
var CreditFactory = class extends SDKConstruct {
|
|
19862
20242
|
name;
|
|
19863
20243
|
pool;
|
|
19864
20244
|
underlying;
|
|
@@ -19870,6 +20250,7 @@ var CreditFactory = class {
|
|
|
19870
20250
|
creditFacade;
|
|
19871
20251
|
creditConfigurator;
|
|
19872
20252
|
constructor(sdk, marketData, index) {
|
|
20253
|
+
super(sdk);
|
|
19873
20254
|
const { creditManagers, pool, emergencyLiquidators } = marketData;
|
|
19874
20255
|
const creditManager = creditManagers[index];
|
|
19875
20256
|
const { name, collateralTokens, liquidationThresholds } = creditManager.creditManager;
|
|
@@ -19896,6 +20277,9 @@ var CreditFactory = class {
|
|
|
19896
20277
|
const tvlUSD = 0n;
|
|
19897
20278
|
return { tvl, tvlUSD };
|
|
19898
20279
|
}
|
|
20280
|
+
get dirty() {
|
|
20281
|
+
return this.creditFacade.dirty || this.creditManager.dirty || this.creditConfigurator.dirty;
|
|
20282
|
+
}
|
|
19899
20283
|
get state() {
|
|
19900
20284
|
return {
|
|
19901
20285
|
creditFacade: this.creditFacade.state,
|
|
@@ -19952,6 +20336,21 @@ var GaugeContract = class extends BaseContract {
|
|
|
19952
20336
|
quotaParams
|
|
19953
20337
|
};
|
|
19954
20338
|
}
|
|
20339
|
+
processLog(log) {
|
|
20340
|
+
switch (log.eventName) {
|
|
20341
|
+
case "AddQuotaToken":
|
|
20342
|
+
case "NewController":
|
|
20343
|
+
case "Paused":
|
|
20344
|
+
case "SetFrozenEpoch":
|
|
20345
|
+
case "SetQuotaTokenParams":
|
|
20346
|
+
case "Unpaused":
|
|
20347
|
+
case "Unvote":
|
|
20348
|
+
case "UpdateEpoch":
|
|
20349
|
+
case "Vote":
|
|
20350
|
+
this.dirty = true;
|
|
20351
|
+
break;
|
|
20352
|
+
}
|
|
20353
|
+
}
|
|
19955
20354
|
};
|
|
19956
20355
|
var LinearModelContract = class extends BaseContract {
|
|
19957
20356
|
state;
|
|
@@ -19993,11 +20392,11 @@ var LinearModelContract = class extends BaseContract {
|
|
|
19993
20392
|
};
|
|
19994
20393
|
}
|
|
19995
20394
|
};
|
|
20395
|
+
|
|
20396
|
+
// src/sdk/market/PoolContract.ts
|
|
19996
20397
|
var abi18 = poolV3Abi;
|
|
19997
20398
|
var PoolContract = class extends BaseContract {
|
|
19998
20399
|
state;
|
|
19999
|
-
// Contracts
|
|
20000
|
-
hasOperation = false;
|
|
20001
20400
|
constructor(sdk, data) {
|
|
20002
20401
|
super(sdk, {
|
|
20003
20402
|
...data.baseParams,
|
|
@@ -20021,12 +20420,9 @@ var PoolContract = class extends BaseContract {
|
|
|
20021
20420
|
withdrawFee: Number(data.withdrawFee)
|
|
20022
20421
|
};
|
|
20023
20422
|
}
|
|
20024
|
-
|
|
20025
|
-
|
|
20026
|
-
|
|
20027
|
-
logs: [log]
|
|
20028
|
-
})[0];
|
|
20029
|
-
switch (parsedLog.eventName) {
|
|
20423
|
+
processLog(log) {
|
|
20424
|
+
switch (log.eventName) {
|
|
20425
|
+
// TODO: do we really mark all events?
|
|
20030
20426
|
case "SetCreditManagerDebtLimit":
|
|
20031
20427
|
case "Repay":
|
|
20032
20428
|
case "Borrow":
|
|
@@ -20034,7 +20430,18 @@ var PoolContract = class extends BaseContract {
|
|
|
20034
20430
|
case "Withdraw":
|
|
20035
20431
|
case "SetTotalDebtLimit":
|
|
20036
20432
|
case "SetWithdrawFee":
|
|
20037
|
-
|
|
20433
|
+
case "AddCreditManager":
|
|
20434
|
+
case "Approval":
|
|
20435
|
+
case "EIP712DomainChanged":
|
|
20436
|
+
case "IncurUncoveredLoss":
|
|
20437
|
+
case "NewController":
|
|
20438
|
+
case "Paused":
|
|
20439
|
+
case "Refer":
|
|
20440
|
+
case "SetInterestRateModel":
|
|
20441
|
+
case "SetPoolQuotaKeeper":
|
|
20442
|
+
case "Transfer":
|
|
20443
|
+
case "Unpaused":
|
|
20444
|
+
this.dirty = true;
|
|
20038
20445
|
break;
|
|
20039
20446
|
}
|
|
20040
20447
|
}
|
|
@@ -20075,24 +20482,41 @@ var PoolQuotaKeeperContract = class extends BaseContract {
|
|
|
20075
20482
|
)
|
|
20076
20483
|
};
|
|
20077
20484
|
}
|
|
20485
|
+
processLog(log) {
|
|
20486
|
+
switch (log.eventName) {
|
|
20487
|
+
case "AddCreditManager":
|
|
20488
|
+
case "AddQuotaToken":
|
|
20489
|
+
case "NewController":
|
|
20490
|
+
case "Paused":
|
|
20491
|
+
case "SetGauge":
|
|
20492
|
+
case "SetQuotaIncreaseFee":
|
|
20493
|
+
case "SetTokenLimit":
|
|
20494
|
+
case "Unpaused":
|
|
20495
|
+
case "UpdateQuota":
|
|
20496
|
+
case "UpdateTokenQuotaRate":
|
|
20497
|
+
this.dirty = true;
|
|
20498
|
+
break;
|
|
20499
|
+
}
|
|
20500
|
+
}
|
|
20078
20501
|
};
|
|
20079
20502
|
|
|
20080
20503
|
// src/sdk/market/PoolFactory.ts
|
|
20081
|
-
var PoolFactory = class {
|
|
20504
|
+
var PoolFactory = class extends SDKConstruct {
|
|
20082
20505
|
underlying;
|
|
20083
|
-
|
|
20084
|
-
|
|
20085
|
-
|
|
20506
|
+
pool;
|
|
20507
|
+
pqk;
|
|
20508
|
+
gauge;
|
|
20086
20509
|
linearModel;
|
|
20087
20510
|
constructor(sdk, data) {
|
|
20511
|
+
super(sdk);
|
|
20088
20512
|
this.underlying = data.pool.underlying;
|
|
20089
|
-
this.
|
|
20090
|
-
this.
|
|
20513
|
+
this.pool = new PoolContract(sdk, data.pool);
|
|
20514
|
+
this.pqk = new PoolQuotaKeeperContract(
|
|
20091
20515
|
sdk,
|
|
20092
20516
|
data.pool,
|
|
20093
20517
|
data.poolQuotaKeeper
|
|
20094
20518
|
);
|
|
20095
|
-
this.
|
|
20519
|
+
this.gauge = new GaugeContract(sdk, data.pool, data.rateKeeper);
|
|
20096
20520
|
const irModelAddr = data.interestRateModel.baseParams.addr;
|
|
20097
20521
|
if (sdk.interestRateModels.has(irModelAddr)) {
|
|
20098
20522
|
this.linearModel = sdk.interestRateModels.mustGet(
|
|
@@ -20104,12 +20528,15 @@ var PoolFactory = class {
|
|
|
20104
20528
|
this.linearModel = linearModel;
|
|
20105
20529
|
}
|
|
20106
20530
|
}
|
|
20531
|
+
get dirty() {
|
|
20532
|
+
return this.pool.dirty || this.gauge.dirty || this.pqk.dirty || this.linearModel.dirty;
|
|
20533
|
+
}
|
|
20107
20534
|
get state() {
|
|
20108
20535
|
return {
|
|
20109
|
-
pool: this.
|
|
20110
|
-
poolQuotaKeeper: this.
|
|
20536
|
+
pool: this.pool.state,
|
|
20537
|
+
poolQuotaKeeper: this.pqk.state,
|
|
20111
20538
|
linearModel: this.linearModel.state,
|
|
20112
|
-
gauge: this.
|
|
20539
|
+
gauge: this.gauge.state
|
|
20113
20540
|
};
|
|
20114
20541
|
}
|
|
20115
20542
|
};
|
|
@@ -20203,9 +20630,9 @@ async function simulateMulticall(client, parameters) {
|
|
|
20203
20630
|
let currentChunk = 0;
|
|
20204
20631
|
let currentChunkSize = 0;
|
|
20205
20632
|
for (const contract of contracts) {
|
|
20206
|
-
const { abi:
|
|
20633
|
+
const { abi: abi20, address, args, functionName } = contract;
|
|
20207
20634
|
try {
|
|
20208
|
-
const callData = viem.encodeFunctionData({ abi:
|
|
20635
|
+
const callData = viem.encodeFunctionData({ abi: abi20, args, functionName });
|
|
20209
20636
|
currentChunkSize += (callData.length - 2) / 2;
|
|
20210
20637
|
if (
|
|
20211
20638
|
// Check if batching is enabled.
|
|
@@ -20227,7 +20654,7 @@ async function simulateMulticall(client, parameters) {
|
|
|
20227
20654
|
];
|
|
20228
20655
|
} catch (err) {
|
|
20229
20656
|
const error = viem.getContractError(err, {
|
|
20230
|
-
abi:
|
|
20657
|
+
abi: abi20,
|
|
20231
20658
|
address,
|
|
20232
20659
|
args,
|
|
20233
20660
|
docsPath: "/docs/contract/multicall",
|
|
@@ -20284,12 +20711,12 @@ async function simulateMulticall(client, parameters) {
|
|
|
20284
20711
|
for (let j = 0; j < aggregate3Result.length; j++) {
|
|
20285
20712
|
const { returnData, success } = aggregate3Result[j];
|
|
20286
20713
|
const { callData } = chunkedCalls[i][j];
|
|
20287
|
-
const { abi:
|
|
20714
|
+
const { abi: abi20, address, functionName, args } = contracts[results.length];
|
|
20288
20715
|
try {
|
|
20289
20716
|
if (callData === "0x") throw new viem.AbiDecodingZeroDataError();
|
|
20290
20717
|
if (!success) throw new viem.RawContractError({ data: returnData });
|
|
20291
20718
|
const result2 = viem.decodeFunctionResult({
|
|
20292
|
-
abi:
|
|
20719
|
+
abi: abi20,
|
|
20293
20720
|
args,
|
|
20294
20721
|
data: returnData,
|
|
20295
20722
|
functionName
|
|
@@ -20297,7 +20724,7 @@ async function simulateMulticall(client, parameters) {
|
|
|
20297
20724
|
results.push(allowFailure ? { result: result2, status: "success" } : result2);
|
|
20298
20725
|
} catch (err) {
|
|
20299
20726
|
const error = viem.getContractError(err, {
|
|
20300
|
-
abi:
|
|
20727
|
+
abi: abi20,
|
|
20301
20728
|
address,
|
|
20302
20729
|
args,
|
|
20303
20730
|
docsPath: "/docs/contract/multicall",
|
|
@@ -21201,6 +21628,18 @@ var PriceOracleContract = class extends BaseContract {
|
|
|
21201
21628
|
`Got ${Object.keys(this.mainPriceFeeds).length} main and ${Object.keys(this.reservePriceFeeds).length} reserve price feeds`
|
|
21202
21629
|
);
|
|
21203
21630
|
}
|
|
21631
|
+
processLog(log) {
|
|
21632
|
+
switch (log.eventName) {
|
|
21633
|
+
case "NewController":
|
|
21634
|
+
case "Paused":
|
|
21635
|
+
case "SetPriceFeed":
|
|
21636
|
+
case "SetReservePriceFeed":
|
|
21637
|
+
case "SetReservePriceFeedStatus":
|
|
21638
|
+
case "Unpaused":
|
|
21639
|
+
this.dirty = true;
|
|
21640
|
+
break;
|
|
21641
|
+
}
|
|
21642
|
+
}
|
|
21204
21643
|
/**
|
|
21205
21644
|
* Returns main and reserve price feeds for given tokens
|
|
21206
21645
|
* @param tokens
|
|
@@ -21252,6 +21691,7 @@ var PriceOracleContract = class extends BaseContract {
|
|
|
21252
21691
|
});
|
|
21253
21692
|
const data = args[0];
|
|
21254
21693
|
result.push({
|
|
21694
|
+
priceFeed,
|
|
21255
21695
|
token,
|
|
21256
21696
|
reserve,
|
|
21257
21697
|
data
|
|
@@ -21391,12 +21831,13 @@ var priceFeedToTicker = {
|
|
|
21391
21831
|
};
|
|
21392
21832
|
|
|
21393
21833
|
// src/sdk/market/MarketFactory.ts
|
|
21394
|
-
var MarketFactory = class {
|
|
21834
|
+
var MarketFactory = class extends SDKConstruct {
|
|
21395
21835
|
riskCurator;
|
|
21396
21836
|
poolFactory;
|
|
21397
21837
|
priceOracle;
|
|
21398
21838
|
creditManagers = [];
|
|
21399
21839
|
constructor(sdk, marketData) {
|
|
21840
|
+
super(sdk);
|
|
21400
21841
|
this.riskCurator = marketData.owner;
|
|
21401
21842
|
for (const t of marketData.tokens) {
|
|
21402
21843
|
sdk.marketRegister.tokensMeta.upsert(t.addr, t);
|
|
@@ -21412,6 +21853,9 @@ var MarketFactory = class {
|
|
|
21412
21853
|
marketData.pool.underlying
|
|
21413
21854
|
);
|
|
21414
21855
|
}
|
|
21856
|
+
get dirty() {
|
|
21857
|
+
return this.poolFactory.dirty || this.priceOracle.dirty || this.creditManagers.some((cm) => cm.dirty);
|
|
21858
|
+
}
|
|
21415
21859
|
get state() {
|
|
21416
21860
|
return {
|
|
21417
21861
|
pool: this.poolFactory.state,
|
|
@@ -21421,22 +21865,72 @@ var MarketFactory = class {
|
|
|
21421
21865
|
}
|
|
21422
21866
|
};
|
|
21423
21867
|
|
|
21868
|
+
// src/sdk/market/MarketConfiguratorContract.ts
|
|
21869
|
+
var abi19 = iMarketConfiguratorV310Abi;
|
|
21870
|
+
var MarketConfiguratorContract = class extends BaseContract {
|
|
21871
|
+
constructor(sdk, address) {
|
|
21872
|
+
super(sdk, {
|
|
21873
|
+
abi: abi19,
|
|
21874
|
+
addr: address,
|
|
21875
|
+
contractType: AP_MARKET_CONFIGURATOR,
|
|
21876
|
+
version: 0
|
|
21877
|
+
});
|
|
21878
|
+
}
|
|
21879
|
+
processLog(log) {
|
|
21880
|
+
switch (log.eventName) {
|
|
21881
|
+
// case "DeployDegenNFT":
|
|
21882
|
+
// case "SetName":
|
|
21883
|
+
// case "SetPriceFeedFromStore":
|
|
21884
|
+
// case "SetReservePriceFeedFromStore":
|
|
21885
|
+
case "RemoveMarket":
|
|
21886
|
+
case "CreateMarket":
|
|
21887
|
+
this.dirty = true;
|
|
21888
|
+
break;
|
|
21889
|
+
}
|
|
21890
|
+
}
|
|
21891
|
+
};
|
|
21892
|
+
|
|
21424
21893
|
// src/sdk/market/MarketRegister.ts
|
|
21425
21894
|
var MarketRegister = class extends SDKConstruct {
|
|
21426
21895
|
#logger;
|
|
21896
|
+
#curators;
|
|
21427
21897
|
/**
|
|
21428
|
-
* Mapping pool.
|
|
21898
|
+
* Mapping pool.address -> MarketFactory
|
|
21429
21899
|
*/
|
|
21430
|
-
#markets =
|
|
21900
|
+
#markets = new AddressMap();
|
|
21431
21901
|
/**
|
|
21432
21902
|
* Token metadata such as symbol and decimals, common across all markets
|
|
21433
21903
|
*/
|
|
21434
21904
|
tokensMeta = new AddressMap();
|
|
21905
|
+
// TODO: MarketRegister can be this contract, but v3.0 does not have it
|
|
21906
|
+
marketConfigurator;
|
|
21435
21907
|
constructor(sdk) {
|
|
21436
21908
|
super(sdk);
|
|
21437
21909
|
this.#logger = childLogger("MarketRegister", sdk.logger);
|
|
21910
|
+
try {
|
|
21911
|
+
const mkAddr = this.sdk.addressProvider.getLatestVersion(
|
|
21912
|
+
AP_MARKET_CONFIGURATOR
|
|
21913
|
+
);
|
|
21914
|
+
this.marketConfigurator = new MarketConfiguratorContract(sdk, mkAddr);
|
|
21915
|
+
} catch (e) {
|
|
21916
|
+
this.#logger?.warn(e);
|
|
21917
|
+
}
|
|
21438
21918
|
}
|
|
21439
21919
|
async loadMarkets(curators) {
|
|
21920
|
+
this.#curators = curators;
|
|
21921
|
+
await this.#loadMarkets(curators, []);
|
|
21922
|
+
}
|
|
21923
|
+
async syncState() {
|
|
21924
|
+
if (this.marketConfigurator?.dirty) {
|
|
21925
|
+
await this.#loadMarkets(this.curators, []);
|
|
21926
|
+
return;
|
|
21927
|
+
}
|
|
21928
|
+
const pools = this.markets.filter((m) => m.dirty).map((m) => m.poolFactory.pool.address);
|
|
21929
|
+
if (pools.length) {
|
|
21930
|
+
await this.#loadMarkets([], pools);
|
|
21931
|
+
}
|
|
21932
|
+
}
|
|
21933
|
+
async #loadMarkets(curators, pools) {
|
|
21440
21934
|
this.#logger?.debug("loading markets");
|
|
21441
21935
|
const marketCompressorAddress = this.sdk.addressProvider.getAddress(
|
|
21442
21936
|
AP_MARKET_COMPRESSOR,
|
|
@@ -21449,7 +21943,7 @@ var MarketRegister = class extends SDKConstruct {
|
|
|
21449
21943
|
args: [
|
|
21450
21944
|
{
|
|
21451
21945
|
curators,
|
|
21452
|
-
pools
|
|
21946
|
+
pools,
|
|
21453
21947
|
underlying: ADDRESS_0X0
|
|
21454
21948
|
}
|
|
21455
21949
|
],
|
|
@@ -21458,44 +21952,17 @@ var MarketRegister = class extends SDKConstruct {
|
|
|
21458
21952
|
gas: 500000000n
|
|
21459
21953
|
});
|
|
21460
21954
|
for (const data of markets) {
|
|
21461
|
-
this.#markets
|
|
21955
|
+
this.#markets.upsert(
|
|
21956
|
+
data.pool.baseParams.addr,
|
|
21957
|
+
new MarketFactory(this.sdk, data)
|
|
21958
|
+
);
|
|
21462
21959
|
}
|
|
21463
21960
|
this.#logger?.info(`loaded ${markets.length} markets`);
|
|
21464
21961
|
}
|
|
21465
|
-
/**
|
|
21466
|
-
* Loads adapter state for all attached credit managers
|
|
21467
|
-
*/
|
|
21468
|
-
async loadAdapters() {
|
|
21469
|
-
const adaperCompressorAddr = this.sdk.addressProvider.getLatestVersion(
|
|
21470
|
-
AP_ADAPTER_COMPRESSOR
|
|
21471
|
-
);
|
|
21472
|
-
const resp = await simulateMulticall(this.sdk.provider.publicClient, {
|
|
21473
|
-
contracts: this.creditManagers.map((cm) => ({
|
|
21474
|
-
abi: iAdapterCompressorAbi,
|
|
21475
|
-
address: adaperCompressorAddr,
|
|
21476
|
-
functionName: "getContractAdapters",
|
|
21477
|
-
args: [cm.creditManager.address]
|
|
21478
|
-
})),
|
|
21479
|
-
allowFailure: false,
|
|
21480
|
-
gas: 550000000n
|
|
21481
|
-
});
|
|
21482
|
-
for (let i = 0; i < this.creditManagers.length; i++) {
|
|
21483
|
-
const cm = this.creditManagers[i];
|
|
21484
|
-
cm.creditManager.attachAdapters(resp[i]);
|
|
21485
|
-
}
|
|
21486
|
-
}
|
|
21487
21962
|
get state() {
|
|
21488
|
-
return
|
|
21489
|
-
}
|
|
21490
|
-
get poolState() {
|
|
21491
|
-
return Object.values(this.#markets).map((market) => market.poolFactory.state);
|
|
21963
|
+
return this.markets.map((market) => market.state);
|
|
21492
21964
|
}
|
|
21493
|
-
get
|
|
21494
|
-
return Object.values(this.#markets).flatMap(
|
|
21495
|
-
(market) => market.creditManagers.map((cm) => cm.state)
|
|
21496
|
-
);
|
|
21497
|
-
}
|
|
21498
|
-
getPoolFactories() {
|
|
21965
|
+
get pools() {
|
|
21499
21966
|
return this.markets.map((market) => market.poolFactory);
|
|
21500
21967
|
}
|
|
21501
21968
|
get creditManagers() {
|
|
@@ -21512,7 +21979,7 @@ var MarketRegister = class extends SDKConstruct {
|
|
|
21512
21979
|
throw new Error(`cannot find credit manager ${creditManager}`);
|
|
21513
21980
|
}
|
|
21514
21981
|
findByCreditManager(creditManager) {
|
|
21515
|
-
const market =
|
|
21982
|
+
const market = this.markets.find(
|
|
21516
21983
|
(m) => m.creditManagers.some(
|
|
21517
21984
|
(cm) => cm.creditManager.address.toLowerCase() === creditManager.toLowerCase()
|
|
21518
21985
|
)
|
|
@@ -21523,7 +21990,7 @@ var MarketRegister = class extends SDKConstruct {
|
|
|
21523
21990
|
return market;
|
|
21524
21991
|
}
|
|
21525
21992
|
get markets() {
|
|
21526
|
-
return
|
|
21993
|
+
return Array.from(this.#markets.values());
|
|
21527
21994
|
}
|
|
21528
21995
|
async tvl() {
|
|
21529
21996
|
const creditManagers = this.creditManagers;
|
|
@@ -21537,6 +22004,12 @@ var MarketRegister = class extends SDKConstruct {
|
|
|
21537
22004
|
{ tvl: 0n, tvlUSD: 0n }
|
|
21538
22005
|
);
|
|
21539
22006
|
}
|
|
22007
|
+
get curators() {
|
|
22008
|
+
if (!this.#curators) {
|
|
22009
|
+
throw new Error(`market register has no markets loaded`);
|
|
22010
|
+
}
|
|
22011
|
+
return this.#curators;
|
|
22012
|
+
}
|
|
21540
22013
|
};
|
|
21541
22014
|
|
|
21542
22015
|
// src/sdk/accounts/CreditAccountsService.ts
|
|
@@ -21766,14 +22239,7 @@ var CreditAccountsService = class extends SDKConstruct {
|
|
|
21766
22239
|
async getPriceUpdatesForFacade(acc) {
|
|
21767
22240
|
const cm = this.sdk.marketRegister.findCreditManager(acc.creditManager);
|
|
21768
22241
|
const updates = await this.getOnDemandPriceUpdates(acc);
|
|
21769
|
-
return
|
|
21770
|
-
target: cm.creditFacade.address,
|
|
21771
|
-
callData: viem.encodeFunctionData({
|
|
21772
|
-
abi: iCreditFacadeV3MulticallAbi,
|
|
21773
|
-
functionName: "onDemandPriceUpdate",
|
|
21774
|
-
args: [token, reserve, data]
|
|
21775
|
-
})
|
|
21776
|
-
}));
|
|
22242
|
+
return cm.creditFacade.encodeOnDemandPriceUpdates(updates);
|
|
21777
22243
|
}
|
|
21778
22244
|
async #prepareCloseCreditAccount(ca, cm, assetsToKeep, to, slippage = 50n) {
|
|
21779
22245
|
const closePath = await this.sdk.router.findBestClosePath(
|
|
@@ -21854,7 +22320,7 @@ var CreditAccountsService = class extends SDKConstruct {
|
|
|
21854
22320
|
* Returns addresses of pools of attached markets
|
|
21855
22321
|
*/
|
|
21856
22322
|
get pools() {
|
|
21857
|
-
return this.sdk.marketRegister.
|
|
22323
|
+
return this.sdk.marketRegister.pools.map((p) => p.pool.address);
|
|
21858
22324
|
}
|
|
21859
22325
|
};
|
|
21860
22326
|
var AddressProviderContractV3_1 = class extends BaseContract {
|
|
@@ -21929,7 +22395,7 @@ var AddressProviderContractV3_1 = class extends BaseContract {
|
|
|
21929
22395
|
addresses: this.#addresses
|
|
21930
22396
|
};
|
|
21931
22397
|
}
|
|
21932
|
-
|
|
22398
|
+
processLog(log) {
|
|
21933
22399
|
const parsedLog = viem.parseEventLogs({
|
|
21934
22400
|
abi: this.abi,
|
|
21935
22401
|
logs: [log]
|
|
@@ -21985,9 +22451,9 @@ var BotListContract = class extends BaseContract {
|
|
|
21985
22451
|
fromBlock: 0n,
|
|
21986
22452
|
toBlock
|
|
21987
22453
|
});
|
|
21988
|
-
logs.forEach((e) => this.
|
|
22454
|
+
logs.forEach((e) => this.processLog(e));
|
|
21989
22455
|
}
|
|
21990
|
-
|
|
22456
|
+
processLog(log) {
|
|
21991
22457
|
const parsedLog = viem.parseEventLogs({
|
|
21992
22458
|
abi: this.abi,
|
|
21993
22459
|
logs: [log]
|
|
@@ -22376,6 +22842,7 @@ var GearboxSDK = class _GearboxSDK {
|
|
|
22376
22842
|
// Block which was use for data query
|
|
22377
22843
|
#currentBlock;
|
|
22378
22844
|
#timestamp;
|
|
22845
|
+
#syncing = false;
|
|
22379
22846
|
#gear;
|
|
22380
22847
|
// Collection of core singleton contracts
|
|
22381
22848
|
#addressProvider;
|
|
@@ -22471,11 +22938,6 @@ var GearboxSDK = class _GearboxSDK {
|
|
|
22471
22938
|
this.logger?.info(`attach time: ${Date.now() - time} ms`);
|
|
22472
22939
|
return this;
|
|
22473
22940
|
}
|
|
22474
|
-
parseLogs(logs) {
|
|
22475
|
-
for (const log of logs) {
|
|
22476
|
-
this.contracts.get(log.address)?.parseLog(log);
|
|
22477
|
-
}
|
|
22478
|
-
}
|
|
22479
22941
|
/**
|
|
22480
22942
|
* Converts contract call into some human-friendly string
|
|
22481
22943
|
* @param address
|
|
@@ -22523,21 +22985,33 @@ var GearboxSDK = class _GearboxSDK {
|
|
|
22523
22985
|
this.logger?.info(tvl);
|
|
22524
22986
|
this.logger?.info(`Total TVL: ${formatBN(tvlUSD, 8)}`);
|
|
22525
22987
|
}
|
|
22988
|
+
// TODO: timestamp is annoying - need to make second request to get block timestamp
|
|
22989
|
+
// TODO: make flag to prevent double syncing
|
|
22526
22990
|
async syncState(toBlock, timestamp) {
|
|
22527
|
-
if (toBlock <= this.currentBlock) {
|
|
22991
|
+
if (toBlock <= this.currentBlock || this.#syncing) {
|
|
22528
22992
|
return;
|
|
22529
22993
|
}
|
|
22530
|
-
this
|
|
22531
|
-
|
|
22994
|
+
this.#syncing = true;
|
|
22995
|
+
this.logger?.debug(`syncing state to block ${toBlock}...`);
|
|
22996
|
+
const logs = await this.provider.publicClient.getLogs({
|
|
22532
22997
|
fromBlock: BigInt(this.currentBlock),
|
|
22533
22998
|
toBlock: BigInt(toBlock)
|
|
22534
22999
|
});
|
|
22535
|
-
|
|
22536
|
-
|
|
22537
|
-
if (
|
|
23000
|
+
for (const log of logs) {
|
|
23001
|
+
const contract = this.contracts.get(log.address);
|
|
23002
|
+
if (contract) {
|
|
23003
|
+
const event = viem.parseEventLogs({
|
|
23004
|
+
abi: contract.abi,
|
|
23005
|
+
logs: [log]
|
|
23006
|
+
})[0];
|
|
23007
|
+
contract.processLog(event);
|
|
23008
|
+
}
|
|
22538
23009
|
}
|
|
23010
|
+
await this.marketRegister.syncState();
|
|
22539
23011
|
this.#currentBlock = toBlock;
|
|
22540
23012
|
this.#timestamp = timestamp;
|
|
23013
|
+
this.#syncing = false;
|
|
23014
|
+
this.logger?.debug(`synced state to block ${toBlock}`);
|
|
22541
23015
|
}
|
|
22542
23016
|
get provider() {
|
|
22543
23017
|
return this.#provider;
|
|
@@ -22980,6 +23454,7 @@ exports.AP_GEAR_TOKEN = AP_GEAR_TOKEN;
|
|
|
22980
23454
|
exports.AP_INFLATION_ATTACK_BLOCKER = AP_INFLATION_ATTACK_BLOCKER;
|
|
22981
23455
|
exports.AP_INSOLVENCY_CHECKER = AP_INSOLVENCY_CHECKER;
|
|
22982
23456
|
exports.AP_MARKET_COMPRESSOR = AP_MARKET_COMPRESSOR;
|
|
23457
|
+
exports.AP_MARKET_CONFIGURATOR = AP_MARKET_CONFIGURATOR;
|
|
22983
23458
|
exports.AP_MULTI_PAUSE = AP_MULTI_PAUSE;
|
|
22984
23459
|
exports.AP_PARTIAL_LIQUIDATION_BOT = AP_PARTIAL_LIQUIDATION_BOT;
|
|
22985
23460
|
exports.AP_PRICE_FEED_COMPRESSOR = AP_PRICE_FEED_COMPRESSOR;
|