@raac/rpc 1.1.0-beta.9 → 1.1.0-beta.91
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/RPCLibrary.js +53 -6
- package/dist/artifacts/core/collectors/FeeCollector.sol/FeeCollector.json +279 -309
- package/dist/artifacts/core/collectors/NFTRoyaltyFeeCollector.sol/NFTRoyaltyFeeCollector.json +246 -0
- package/dist/artifacts/core/collectors/RAACTokenCollector.sol/RAACTokenCollector.json +458 -0
- package/dist/artifacts/core/collectors/RWAIndexTokenCollector.sol/RWAIndexTokenCollector.json +458 -0
- package/dist/artifacts/core/collectors/Treasury.sol/Treasury.json +529 -0
- package/dist/artifacts/core/minters/RAACMinter/RAACMinter.sol/RAACMinter.json +2 -93
- package/dist/artifacts/core/oracles/BaseVRFv2Consumer.sol/BaseVRFv2Consumer.json +169 -13
- package/dist/artifacts/core/oracles/CrvUSDToUSDOracle.sol/CrvUSDToUSDOracle.json +556 -0
- package/dist/artifacts/core/oracles/RAACHousePriceOracle.sol/RAACHousePriceOracle.json +637 -0
- package/dist/artifacts/core/oracles/RAACPrimeRateOracle.sol/RAACPrimeRateOracle.json +190 -29
- package/dist/artifacts/core/pools/LendingPool/ERC20AssetAdapter.sol/ERC20AssetAdapter.json +20 -2
- package/dist/artifacts/core/pools/LendingPool/ERC721AssetAdapter.sol/ERC721AssetAdapter.json +55 -3
- package/dist/artifacts/core/pools/LendingPool/LendingPool.sol/LendingPool.json +267 -220
- package/dist/artifacts/core/pools/StabilityPool/StabilityPool.sol/StabilityPool.json +421 -124
- package/dist/artifacts/core/primitives/ComplianceRegistry.sol/ComplianceRegistry.json +397 -0
- package/dist/artifacts/core/primitives/RAACHousePrices.sol/RAACHousePrices.json +223 -7
- package/dist/artifacts/core/tokens/DEToken.sol/DEToken.json +111 -8
- package/dist/artifacts/core/tokens/RAACNFT.sol/RAACNFT.json +272 -28
- package/dist/artifacts/core/tokens/RAACToken.sol/RAACToken.json +2 -2
- package/dist/artifacts/core/tokens/RToken.sol/RToken.json +50 -39
- package/dist/artifacts/core/tokens/RWAIndexToken.sol/RWAIndexToken.json +25 -2
- package/dist/artifacts/core/tokens/veRAACToken.sol/veRAACToken.json +2 -2
- package/dist/artifacts/core/vaults/ERC20VaultAdapter.sol/ERC20VaultAdapter.json +17 -9
- package/dist/artifacts/core/vaults/ERC721VaultAdapter.sol/ERC721VaultAdapter.json +89 -9
- package/dist/artifacts/core/vaults/RWAVault.sol/RWAVault.json +405 -108
- package/dist/artifacts/mocks/core/oracles/MockVRFCoordinatorV2.sol/MockVRFCoordinatorV2.json +2 -2
- package/dist/artifacts/mocks/core/tokens/crvUSDToken.sol/crvUSDToken.json +2 -2
- package/dist/artifacts/zeno/Auction.sol/Auction.json +57 -2
- package/dist/artifacts/zeno/AuctionFactory.sol/AuctionFactory.json +44 -2
- package/dist/artifacts/zeno/Zeno.sol/Zeno.json +2 -2
- package/dist/artifacts/zeno/ZenoFactory.sol/ZenoFactory.json +2 -2
- package/dist/configs/chains/1.json +197 -0
- package/dist/configs/chains/11155111.json +80 -20
- package/dist/configs/chains/17000.json +35 -0
- package/dist/configs/chains/18453.json +197 -0
- package/dist/configs/chains/8453.json +71 -18
- package/dist/configs/chains/index.js +4 -0
- package/dist/minter/get.js +1 -3
- package/dist/minter/getApy.js +2 -2
- package/dist/nfts/approveNFT.js +25 -0
- package/dist/nfts/getApprovalForAll.js +32 -0
- package/dist/nfts/getNFTApproval.js +33 -0
- package/dist/nfts/getOwnerOfNFT.js +39 -0
- package/dist/nfts/setApprovalForAll.js +34 -0
- package/dist/oracles/chainlink-networks-config.js +252 -0
- package/dist/oracles/encryptSecretURLs.js +14 -0
- package/dist/oracles/encryptSecrets.js +15 -0
- package/dist/oracles/houses/config.js +20 -0
- package/dist/oracles/houses/request.js +147 -0
- package/dist/oracles/houses/simulate.js +22 -0
- package/dist/oracles/prime-rate/config.js +17 -0
- package/dist/oracles/prime-rate/request.js +140 -0
- package/dist/oracles/prime-rate/simulate.js +26 -0
- package/dist/pools/lendingPool/_helpers.js +2 -3
- package/dist/pools/lendingPool/adapters/erc721/getERC721AdapterDeposits.js +4 -3
- package/dist/pools/lendingPool/adapters/erc721/getERC721AdapterInfo.js +4 -3
- package/dist/pools/lendingPool/borrowFromLendingPool.js +5 -3
- package/dist/pools/lendingPool/borrowFromLendingPoolWithInsurance.js +34 -3
- package/dist/pools/lendingPool/calculateInsuranceFee.js +2 -2
- package/dist/pools/lendingPool/closeLiquidation.js +2 -2
- package/dist/pools/lendingPool/depositAssetToLendingPool.js +2 -2
- package/dist/pools/lendingPool/depositToLendingPool.js +4 -2
- package/dist/pools/lendingPool/getAdapterAddress.js +8 -10
- package/dist/pools/lendingPool/getAdapters.js +1 -1
- package/dist/pools/lendingPool/getEligibleUserDeposits.js +1 -1
- package/dist/pools/lendingPool/getHealthFactor.js +2 -2
- package/dist/pools/lendingPool/getLendingPoolInfo.js +24 -15
- package/dist/pools/lendingPool/getLendingPoolTotalLiquidity.js +1 -1
- package/dist/pools/lendingPool/getParameters.js +3 -4
- package/dist/pools/lendingPool/getPositionDebt.js +2 -2
- package/dist/pools/lendingPool/getPositionScaledDebt.js +2 -2
- package/dist/pools/lendingPool/getPositionView.js +1 -1
- package/dist/pools/lendingPool/getPositionsScaledDebt.js +1 -1
- package/dist/pools/lendingPool/getRawUserDepositsInLendingPool.js +1 -1
- package/dist/pools/lendingPool/getUserCollateralValue.js +1 -1
- package/dist/pools/lendingPool/initializeLiquidation.js +2 -2
- package/dist/pools/lendingPool/openVaultPosition.js +2 -4
- package/dist/pools/lendingPool/repayToLendingPool.js +2 -2
- package/dist/pools/lendingPool/vaultOpened.js +22 -0
- package/dist/pools/lendingPool/withdrawAssetFromLendingPool.js +3 -4
- package/dist/pools/lendingPool/withdrawFromLendingPool.js +7 -4
- package/dist/pools/rwaVault/_helpers.js +2 -3
- package/dist/pools/rwaVault/depositToRWAVault.js +6 -5
- package/dist/pools/rwaVault/getNextRandomNFT.js +1 -1
- package/dist/pools/rwaVault/getRWAVaultInfo.js +3 -14
- package/dist/pools/rwaVault/previewDeposit.js +16 -0
- package/dist/pools/rwaVault/previewWithdraw.js +16 -0
- package/dist/pools/rwaVault/redeemNFTFromRWAVault.js +9 -5
- package/dist/pools/rwaVault/requestRandomSeed.js +1 -1
- package/dist/pools/stabilityPool/_helpers.js +11 -0
- package/dist/pools/stabilityPool/getStabilityPoolInfo.js +2 -39
- package/dist/pools/stabilityPool/getWithdrawRequestInfo.js +28 -0
- package/dist/pools/{lendingPool → stabilityPool}/requestWithdraw.js +2 -7
- package/dist/scripts/analyze_lending_positions.js +277 -0
- package/dist/scripts/analyze_transfers.js +247 -0
- package/dist/scripts/calculate_portfolio.js +167 -0
- package/dist/scripts/generateErrorMap.js +180 -0
- package/dist/scripts/index.js +210 -78
- package/dist/scripts/liquidation.js +176 -0
- package/dist/scripts/run_analysis.js +115 -0
- package/dist/scripts/test_lending_analysis.js +105 -0
- package/dist/scripts/users.js +305 -0
- package/dist/test.js +323 -0
- package/dist/types/RPCLibrary.d.ts +37 -9
- package/dist/types/configs/chains/index.d.ts +7 -3
- package/dist/types/configs/index.d.ts +3 -1
- package/dist/types/nfts/approveNFT.d.ts +9 -0
- package/dist/types/nfts/getApprovalForAll.d.ts +14 -0
- package/dist/types/nfts/getNFTApproval.d.ts +14 -0
- package/dist/types/nfts/getOwnerOfNFT.d.ts +13 -0
- package/dist/types/nfts/setApprovalForAll.d.ts +14 -0
- package/dist/types/oracles/chainlink-networks-config.d.ts +222 -0
- package/dist/types/oracles/encryptSecretURLs.d.ts +5 -0
- package/dist/types/oracles/encryptSecrets.d.ts +2 -0
- package/dist/types/oracles/houses/config.d.ts +12 -0
- package/dist/types/oracles/houses/request.d.ts +3 -0
- package/dist/types/oracles/houses/simulate.d.ts +1 -0
- package/dist/types/oracles/prime-rate/config.d.ts +13 -0
- package/dist/types/oracles/prime-rate/request.d.ts +2 -0
- package/dist/types/oracles/prime-rate/simulate.d.ts +1 -0
- package/dist/types/pools/lendingPool/_helpers.d.ts +2 -2
- package/dist/types/pools/lendingPool/adapters/erc721/getERC721AdapterDeposits.d.ts +4 -2
- package/dist/types/pools/lendingPool/adapters/erc721/getERC721AdapterInfo.d.ts +4 -2
- package/dist/types/pools/lendingPool/borrowFromLendingPool.d.ts +2 -2
- package/dist/types/pools/lendingPool/borrowFromLendingPoolWithInsurance.d.ts +2 -2
- package/dist/types/pools/lendingPool/closeLiquidation.d.ts +2 -2
- package/dist/types/pools/lendingPool/depositAssetToLendingPool.d.ts +2 -2
- package/dist/types/pools/lendingPool/getHealthFactor.d.ts +2 -2
- package/dist/types/pools/lendingPool/getLendingPoolInfo.d.ts +2 -0
- package/dist/types/pools/lendingPool/getParameters.d.ts +1 -2
- package/dist/types/pools/lendingPool/getPositionDebt.d.ts +2 -2
- package/dist/types/pools/lendingPool/getPositionScaledDebt.d.ts +2 -2
- package/dist/types/pools/lendingPool/initializeLiquidation.d.ts +2 -2
- package/dist/types/pools/lendingPool/repayToLendingPool.d.ts +2 -2
- package/dist/types/pools/lendingPool/vaultOpened.d.ts +11 -0
- package/dist/types/pools/lendingPool/withdrawAssetFromLendingPool.d.ts +2 -3
- package/dist/types/pools/rwaVault/_helpers.d.ts +2 -2
- package/dist/types/pools/rwaVault/depositToRWAVault.d.ts +2 -2
- package/dist/types/pools/rwaVault/getRWAVaultInfo.d.ts +2 -6
- package/dist/types/pools/rwaVault/previewDeposit.d.ts +4 -0
- package/dist/types/pools/rwaVault/previewWithdraw.d.ts +4 -0
- package/dist/types/pools/rwaVault/redeemNFTFromRWAVault.d.ts +3 -2
- package/dist/types/pools/stabilityPool/_helpers.d.ts +4 -0
- package/dist/types/pools/stabilityPool/getStabilityPoolInfo.d.ts +0 -3
- package/dist/types/pools/stabilityPool/getWithdrawRequestInfo.d.ts +13 -0
- package/dist/types/scripts/analyze_lending_positions.d.ts +1 -0
- package/dist/types/scripts/analyze_transfers.d.ts +1 -0
- package/dist/types/scripts/calculate_portfolio.d.ts +1 -0
- package/dist/types/scripts/generateErrorMap.d.ts +1 -0
- package/dist/types/scripts/liquidation.d.ts +1 -0
- package/dist/types/scripts/run_analysis.d.ts +1 -0
- package/dist/types/scripts/test_lending_analysis.d.ts +1 -0
- package/dist/types/scripts/users.d.ts +1 -0
- package/dist/types/test.d.ts +1 -0
- package/dist/types/typechain-types/@chainlink/contracts/src/v0.8/vrf/index.d.ts +0 -3
- package/dist/types/typechain-types/@openzeppelin/contracts/index.d.ts +2 -0
- package/dist/types/typechain-types/@openzeppelin/contracts/interfaces/IERC1967.d.ts +65 -0
- package/dist/types/typechain-types/@openzeppelin/contracts/interfaces/index.d.ts +1 -0
- package/dist/types/typechain-types/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.d.ts +36 -0
- package/dist/types/typechain-types/@openzeppelin/contracts/{utils/math/Math.d.ts → proxy/ERC1967/ERC1967Utils.d.ts} +4 -4
- package/dist/types/typechain-types/@openzeppelin/contracts/proxy/ERC1967/index.d.ts +2 -0
- package/dist/types/typechain-types/@openzeppelin/contracts/proxy/Proxy.d.ts +20 -0
- package/dist/types/typechain-types/@openzeppelin/contracts/proxy/beacon/IBeacon.d.ts +25 -0
- package/dist/types/typechain-types/@openzeppelin/contracts/proxy/beacon/index.d.ts +1 -0
- package/dist/types/typechain-types/@openzeppelin/contracts/proxy/index.d.ts +7 -0
- package/dist/types/typechain-types/@openzeppelin/contracts/proxy/transparent/ProxyAdmin.d.ts +74 -0
- package/dist/types/typechain-types/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/ITransparentUpgradeableProxy.d.ts +80 -0
- package/dist/types/typechain-types/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy.d.ts +51 -0
- package/dist/types/typechain-types/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/index.d.ts +2 -0
- package/dist/types/typechain-types/@openzeppelin/contracts/proxy/transparent/index.d.ts +3 -0
- package/dist/types/typechain-types/@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardUpgradeable.d.ts +36 -0
- package/dist/types/typechain-types/@openzeppelin/contracts-upgradeable/utils/index.d.ts +1 -0
- package/dist/types/typechain-types/contracts/core/collectors/ERC20Collector.d.ts +264 -0
- package/dist/types/typechain-types/contracts/core/collectors/FeeCollector.d.ts +180 -178
- package/dist/types/typechain-types/contracts/core/collectors/NFTRoyaltyFeeCollector.sol/NFTRoyaltyFeeCollector.d.ts +17 -5
- package/dist/types/typechain-types/contracts/core/collectors/RAACTokenCollector.d.ts +264 -0
- package/dist/types/typechain-types/contracts/core/collectors/RWAIndexTokenCollector.d.ts +264 -0
- package/dist/types/typechain-types/contracts/core/collectors/Treasury.d.ts +53 -52
- package/dist/types/typechain-types/contracts/core/collectors/index.d.ts +3 -0
- package/dist/types/typechain-types/contracts/core/governance/gauges/BaseGauge.d.ts +119 -5
- package/dist/types/typechain-types/contracts/core/governance/gauges/GaugeRewardsDistributor.d.ts +19 -1
- package/dist/types/typechain-types/contracts/core/governance/gauges/RAACGauge.d.ts +119 -5
- package/dist/types/typechain-types/contracts/core/governance/gauges/RWAGauge.d.ts +119 -5
- package/dist/types/typechain-types/contracts/core/governance/proposals/Governance.d.ts +2 -6
- package/dist/types/typechain-types/contracts/core/governance/proposals/TimelockController.d.ts +33 -3
- package/dist/types/typechain-types/contracts/core/minters/RAACMinter/RAACMinter.d.ts +1 -41
- package/dist/types/typechain-types/contracts/core/minters/RAACReleaseOrchestrator/RAACReleaseOrchestrator.d.ts +36 -20
- package/dist/types/typechain-types/contracts/core/oracles/BaseChainlinkFunctionsOracle.d.ts +112 -27
- package/dist/types/typechain-types/contracts/core/oracles/BaseVRFv2Consumer.d.ts +116 -10
- package/dist/types/typechain-types/contracts/core/oracles/CrvUSDToUSDOracle.sol/CrvUSDToUSDOracle.d.ts +338 -0
- package/dist/types/typechain-types/contracts/core/oracles/CrvUSDToUSDOracle.sol/ICrvUSDToUSDOracle.d.ts +55 -0
- package/dist/types/typechain-types/contracts/{mocks/tests/VotingPowerFuzzHelper.sol/IVMTimeControl.d.ts → core/oracles/CrvUSDToUSDOracle.sol/ICrvUsdCurveOracle.d.ts} +9 -9
- package/dist/types/typechain-types/contracts/core/oracles/CrvUSDToUSDOracle.sol/index.d.ts +3 -0
- package/dist/types/typechain-types/contracts/core/oracles/RAACHousePriceOracle.d.ts +128 -27
- package/dist/types/typechain-types/contracts/core/oracles/RAACPrimeRateOracle.d.ts +112 -27
- package/dist/types/typechain-types/contracts/core/oracles/RWAIndexTokenOracle.sol/RWAIndexTokenOracle.d.ts +37 -0
- package/dist/types/typechain-types/contracts/core/oracles/RWAIndexTokenOracle.sol/index.d.ts +2 -0
- package/dist/types/typechain-types/contracts/core/oracles/crvUSDPriceOracle.sol/CrvUSDPriceOracle.d.ts +33 -0
- package/dist/types/typechain-types/contracts/{mocks/core/oracles/MockERC20PriceOracle.sol → core/oracles/crvUSDPriceOracle.sol}/IPriceOracle.d.ts +1 -1
- package/dist/types/typechain-types/contracts/core/oracles/crvUSDPriceOracle.sol/index.d.ts +2 -0
- package/dist/types/typechain-types/contracts/core/oracles/index.d.ts +6 -0
- package/dist/types/typechain-types/contracts/core/pools/LendingPool/ERC20AssetAdapter.sol/ERC20AssetAdapter.d.ts +10 -1
- package/dist/types/typechain-types/contracts/core/pools/LendingPool/{ERC721AssetAdapter.sol/ERC721AssetAdapter.d.ts → ERC721AssetAdapter.d.ts} +29 -2
- package/dist/types/typechain-types/contracts/core/pools/LendingPool/LendingPool.d.ts +145 -153
- package/dist/types/typechain-types/contracts/core/pools/LendingPool/LendingPoolStorage.d.ts +94 -63
- package/dist/types/typechain-types/contracts/core/pools/LendingPool/LiquidationProxy.d.ts +94 -63
- package/dist/types/typechain-types/contracts/core/pools/LendingPool/VaultProxy.d.ts +105 -62
- package/dist/types/typechain-types/contracts/core/pools/LendingPool/index.d.ts +1 -2
- package/dist/types/typechain-types/contracts/core/pools/StabilityPool/LiquidationStrategyProxy.d.ts +66 -28
- package/dist/types/typechain-types/contracts/core/pools/StabilityPool/LiquidationSwap.d.ts +36 -8
- package/dist/types/typechain-types/contracts/core/pools/StabilityPool/StabilityPool.d.ts +312 -81
- package/dist/types/typechain-types/contracts/core/pools/StabilityPool/StabilityPoolStorage.d.ts +61 -25
- package/dist/types/typechain-types/contracts/core/primitives/{ComplianceRegistry.d.ts → ComplianceRegistry.sol/ComplianceRegistry.d.ts} +30 -2
- package/dist/types/typechain-types/contracts/core/primitives/ComplianceRegistry.sol/SanctionsList.d.ts +25 -0
- package/dist/types/typechain-types/contracts/core/primitives/ComplianceRegistry.sol/index.d.ts +2 -0
- package/dist/types/typechain-types/contracts/core/primitives/RAACHousePrices.d.ts +129 -7
- package/dist/types/typechain-types/contracts/core/primitives/index.d.ts +2 -1
- package/dist/types/typechain-types/contracts/core/tokens/DEToken.d.ts +39 -9
- package/dist/types/typechain-types/contracts/core/tokens/DebtToken.d.ts +12 -111
- package/dist/types/typechain-types/contracts/core/tokens/RAACNFT.d.ts +191 -31
- package/dist/types/typechain-types/contracts/core/tokens/RToken.d.ts +15 -33
- package/dist/types/typechain-types/contracts/core/tokens/RWAIndexToken.d.ts +5 -1
- package/dist/types/typechain-types/contracts/core/vaults/{ERC20VaultAdapter.sol/ERC20VaultAdapter.d.ts → ERC20VaultAdapter.d.ts} +10 -8
- package/dist/types/typechain-types/contracts/core/vaults/{ERC721VaultAdapter.sol/ERC721VaultAdapter.d.ts → ERC721VaultAdapter.d.ts} +40 -8
- package/dist/types/typechain-types/contracts/core/vaults/RAACNFTVaultAdapterV2.d.ts +262 -0
- package/dist/types/typechain-types/contracts/core/vaults/RWAVault.d.ts +321 -65
- package/dist/types/typechain-types/contracts/core/vaults/index.d.ts +3 -4
- package/dist/types/typechain-types/contracts/{mocks/libraries/governance/RAACVotingMock.d.ts → interfaces/core/collectors/IDistributionTarget.d.ts} +25 -23
- package/dist/types/typechain-types/contracts/interfaces/core/collectors/IFeeCollector.d.ts +136 -44
- package/dist/types/typechain-types/contracts/interfaces/core/collectors/ITreasury.d.ts +23 -42
- package/dist/types/typechain-types/contracts/interfaces/core/collectors/index.d.ts +1 -0
- package/dist/types/typechain-types/contracts/interfaces/core/governance/gauges/IBaseGauge.d.ts +101 -5
- package/dist/types/typechain-types/contracts/interfaces/core/governance/proposals/IGovernance.d.ts +2 -6
- package/dist/types/typechain-types/contracts/interfaces/core/governance/proposals/ITimelockController.d.ts +33 -3
- package/dist/types/typechain-types/contracts/interfaces/core/minters/RAACMinter/IRAACMinter.d.ts +1 -37
- package/dist/types/typechain-types/contracts/interfaces/core/minters/RAACReleaseOrchestrator/IReleaseOrchestrator.d.ts +21 -20
- package/dist/types/typechain-types/contracts/interfaces/core/oracles/IBaseVRFv2Consumer.d.ts +47 -1
- package/dist/types/typechain-types/contracts/{core/pools/LendingPool/ERC721AssetAdapter.sol/IPriceOracle.d.ts → interfaces/core/oracles/IERC20PriceOracle.d.ts} +9 -13
- package/dist/types/typechain-types/contracts/{core/vaults/ERC721VaultAdapter.sol/IPriceOracle.d.ts → interfaces/core/oracles/IERC721PriceOracle.d.ts} +6 -6
- package/dist/types/typechain-types/contracts/interfaces/core/oracles/IRAACHousePriceOracle.d.ts +29 -0
- package/dist/types/typechain-types/contracts/interfaces/core/oracles/IRAACHousePrices.sol/IRAACHousePriceSyncer.d.ts +71 -0
- package/dist/types/typechain-types/contracts/interfaces/core/oracles/IRAACHousePrices.sol/IRAACHousePrices.d.ts +49 -0
- package/dist/types/typechain-types/contracts/interfaces/core/oracles/IRAACHousePrices.sol/index.d.ts +2 -0
- package/dist/types/typechain-types/contracts/interfaces/core/oracles/IZKMEVerifyUpgradeable.d.ts +35 -0
- package/dist/types/typechain-types/contracts/interfaces/core/oracles/index.d.ts +6 -1
- package/dist/types/typechain-types/contracts/interfaces/core/pools/ILiquidityPool.d.ts +26 -12
- package/dist/types/typechain-types/contracts/interfaces/core/pools/LendingPool/IAssetAdapter.d.ts +10 -1
- package/dist/types/typechain-types/contracts/interfaces/core/pools/LendingPool/ILendingPool.d.ts +80 -70
- package/dist/types/typechain-types/contracts/interfaces/core/pools/LendingPool/ILendingPoolStorage.d.ts +52 -1
- package/dist/types/typechain-types/contracts/interfaces/core/pools/StabilityPool/IStabilityPool.d.ts +205 -42
- package/dist/types/typechain-types/contracts/interfaces/core/tokens/IDEToken.d.ts +31 -1
- package/dist/types/typechain-types/contracts/interfaces/core/tokens/IDebtToken.d.ts +7 -15
- package/dist/types/typechain-types/contracts/interfaces/core/tokens/IRAACNFT.d.ts +127 -29
- package/dist/types/typechain-types/contracts/interfaces/core/tokens/IRToken.d.ts +11 -33
- package/dist/types/typechain-types/contracts/interfaces/core/vaults/IBaseHybridVault.d.ts +315 -23
- package/dist/types/typechain-types/contracts/interfaces/core/vaults/IERC721VaultAdapter.d.ts +37 -0
- package/dist/types/typechain-types/contracts/interfaces/core/vaults/IVaultAssetAdapter.d.ts +1 -3
- package/dist/types/typechain-types/contracts/interfaces/core/vaults/index.d.ts +1 -0
- package/dist/types/typechain-types/contracts/interfaces/curve/ICurveCrvUSDVault.d.ts +33 -1
- package/dist/types/typechain-types/contracts/libraries/pools/LendingPoolFeeLibrary.d.ts +20 -0
- package/dist/types/typechain-types/contracts/libraries/pools/index.d.ts +1 -0
- package/dist/types/typechain-types/contracts/mocks/core/collectors/MockTreasury.d.ts +23 -58
- package/dist/types/typechain-types/contracts/mocks/core/curve/CurveCrvUSDVaultMock.d.ts +358 -0
- package/dist/types/typechain-types/contracts/mocks/core/curve/index.d.ts +1 -0
- package/dist/types/typechain-types/contracts/mocks/core/governance/proposals/TimelockPayableTestTarget.d.ts +37 -0
- package/dist/types/typechain-types/contracts/mocks/core/governance/proposals/index.d.ts +1 -0
- package/dist/types/typechain-types/contracts/mocks/core/oracles/MockChainlinkAggregator.d.ts +151 -0
- package/dist/types/typechain-types/contracts/{interfaces/IHousePrices.d.ts → mocks/core/oracles/MockCurveEMA.sol/ICrvUsdCurveOracle.d.ts} +10 -14
- package/dist/types/typechain-types/contracts/mocks/core/oracles/MockCurveEMA.sol/MockCurveEMA.d.ts +59 -0
- package/dist/types/typechain-types/contracts/mocks/core/oracles/MockCurveEMA.sol/index.d.ts +2 -0
- package/dist/types/typechain-types/contracts/mocks/core/oracles/{MockERC20PriceOracle.sol/MockERC20PriceOracle.d.ts → MockERC20PriceOracle.d.ts} +1 -1
- package/dist/types/typechain-types/contracts/mocks/core/oracles/MockRAACNFTVaultAdapterNAVOracle.d.ts +169 -0
- package/dist/types/typechain-types/contracts/mocks/core/oracles/MockZKMEVerifyUpgradeable.d.ts +171 -0
- package/dist/types/typechain-types/contracts/mocks/core/oracles/TestRAACHousePriceOracle.d.ts +128 -27
- package/dist/types/typechain-types/contracts/mocks/core/oracles/TestRAACPrimeRateOracle.d.ts +112 -27
- package/dist/types/typechain-types/contracts/mocks/core/oracles/index.d.ts +6 -2
- package/dist/types/typechain-types/contracts/mocks/core/pools/CurveStyleCrvUSDiRAACPool.d.ts +593 -0
- package/dist/types/typechain-types/contracts/mocks/core/pools/MockLendingPool.d.ts +11 -17
- package/dist/types/typechain-types/contracts/mocks/core/pools/MockLendingPoolCollector.d.ts +10 -7
- package/dist/types/typechain-types/contracts/mocks/core/pools/MockLendingPoolDebtToken.d.ts +80 -70
- package/dist/types/typechain-types/contracts/mocks/core/pools/MockLiquidityPool.d.ts +26 -12
- package/dist/types/typechain-types/contracts/mocks/core/pools/index.d.ts +1 -0
- package/dist/types/typechain-types/{@chainlink/contracts/src/v0.8/vrf/VRFConsumerBaseV2.d.ts → contracts/mocks/core/primitives/MockChainAnalysis.sol/MockChainAnalysis.d.ts} +18 -14
- package/dist/types/typechain-types/contracts/mocks/core/primitives/MockChainAnalysis.sol/SanctionsList.d.ts +25 -0
- package/dist/types/typechain-types/contracts/mocks/core/primitives/MockChainAnalysis.sol/index.d.ts +2 -0
- package/dist/types/typechain-types/contracts/mocks/core/primitives/MockDistributableContract.d.ts +9 -1
- package/dist/types/typechain-types/contracts/mocks/core/primitives/index.d.ts +2 -0
- package/dist/types/typechain-types/contracts/{core/tokens/IndexToken.d.ts → mocks/core/tokens/CrvUSDTokenLimited.d.ts} +53 -155
- package/dist/types/typechain-types/contracts/mocks/core/tokens/index.d.ts +1 -0
- package/dist/types/typechain-types/contracts/mocks/libraries/pools/ReserveLibraryMock.d.ts +5 -1
- package/dist/types/typechain-types/contracts/mocks/libraries/pools/ReserveLibraryMockCalculation.d.ts +185 -0
- package/dist/types/typechain-types/contracts/mocks/libraries/pools/index.d.ts +1 -0
- package/dist/types/typechain-types/contracts/zeno/Auction.d.ts +33 -2
- package/dist/types/typechain-types/contracts/zeno/AuctionFactory.d.ts +34 -2
- package/dist/types/typechain-types/factories/@chainlink/contracts/src/v0.8/functions/v1_0_0/libraries/FunctionsRequest__factory.d.ts +1 -1
- package/dist/types/typechain-types/factories/@chainlink/contracts/src/v0.8/shared/access/ConfirmedOwnerWithProposal__factory.d.ts +1 -1
- package/dist/types/typechain-types/factories/@chainlink/contracts/src/v0.8/shared/access/ConfirmedOwner__factory.d.ts +1 -1
- package/dist/types/typechain-types/factories/@chainlink/contracts/src/v0.8/vrf/dev/libraries/VRFV2PlusClient__factory.d.ts +1 -1
- package/dist/types/typechain-types/factories/@chainlink/contracts/src/v0.8/vrf/index.d.ts +0 -2
- package/dist/types/typechain-types/factories/@chainlink/contracts/src/v0.8/vrf/mocks/VRFCoordinatorV2_5Mock__factory.d.ts +1 -1
- package/dist/types/typechain-types/factories/@openzeppelin/contracts/index.d.ts +1 -0
- package/dist/types/typechain-types/factories/@openzeppelin/contracts/interfaces/IERC1967__factory.d.ts +42 -0
- package/dist/types/typechain-types/factories/@openzeppelin/contracts/interfaces/index.d.ts +1 -0
- package/dist/types/typechain-types/factories/@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy__factory.d.ts +71 -0
- package/dist/types/typechain-types/factories/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils__factory.d.ts +50 -0
- package/dist/types/typechain-types/factories/@openzeppelin/contracts/proxy/ERC1967/index.d.ts +2 -0
- package/dist/types/typechain-types/factories/@openzeppelin/contracts/proxy/Proxy__factory.d.ts +10 -0
- package/dist/types/typechain-types/factories/@openzeppelin/contracts/proxy/beacon/IBeacon__factory.d.ts +17 -0
- package/dist/types/typechain-types/factories/@openzeppelin/contracts/proxy/beacon/index.d.ts +1 -0
- package/dist/types/typechain-types/factories/@openzeppelin/contracts/proxy/index.d.ts +4 -0
- package/dist/types/typechain-types/factories/@openzeppelin/contracts/proxy/transparent/ProxyAdmin__factory.d.ts +115 -0
- package/dist/types/typechain-types/factories/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/ITransparentUpgradeableProxy__factory.d.ts +56 -0
- package/dist/types/typechain-types/factories/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/TransparentUpgradeableProxy__factory.d.ts +102 -0
- package/dist/types/typechain-types/factories/@openzeppelin/contracts/proxy/transparent/TransparentUpgradeableProxy.sol/index.d.ts +2 -0
- package/dist/types/typechain-types/factories/@openzeppelin/contracts/proxy/transparent/index.d.ts +2 -0
- package/dist/types/typechain-types/factories/@openzeppelin/contracts/token/ERC20/utils/SafeERC20__factory.d.ts +1 -1
- package/dist/types/typechain-types/factories/@openzeppelin/contracts/utils/Address__factory.d.ts +1 -1
- package/dist/types/typechain-types/factories/@openzeppelin/contracts/utils/Errors__factory.d.ts +1 -1
- package/dist/types/typechain-types/factories/@openzeppelin/contracts/utils/ShortStrings__factory.d.ts +1 -1
- package/dist/types/typechain-types/factories/@openzeppelin/contracts/utils/Strings__factory.d.ts +1 -1
- package/dist/types/typechain-types/factories/@openzeppelin/contracts/utils/cryptography/ECDSA__factory.d.ts +1 -1
- package/dist/types/typechain-types/factories/@openzeppelin/contracts/utils/cryptography/MerkleProof__factory.d.ts +1 -1
- package/dist/types/typechain-types/factories/@openzeppelin/contracts/utils/math/SafeCast__factory.d.ts +1 -1
- package/dist/types/typechain-types/factories/@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardUpgradeable__factory.d.ts +29 -0
- package/dist/types/typechain-types/factories/@openzeppelin/contracts-upgradeable/utils/index.d.ts +1 -0
- package/dist/types/typechain-types/factories/contracts/core/collectors/ERC20Collector__factory.d.ts +373 -0
- package/dist/types/typechain-types/factories/contracts/core/collectors/FeeCollector__factory.d.ts +214 -238
- package/dist/types/typechain-types/factories/contracts/core/collectors/NFTRoyaltyFeeCollector.sol/NFTRoyaltyFeeCollector__factory.d.ts +29 -3
- package/dist/types/typechain-types/factories/contracts/core/collectors/RAACTokenCollector__factory.d.ts +369 -0
- package/dist/types/typechain-types/factories/contracts/core/collectors/RWAIndexTokenCollector__factory.d.ts +369 -0
- package/dist/types/typechain-types/factories/contracts/core/collectors/Treasury__factory.d.ts +80 -59
- package/dist/types/typechain-types/factories/contracts/core/collectors/index.d.ts +3 -0
- package/dist/types/typechain-types/factories/contracts/core/governance/gauges/BaseGauge__factory.d.ts +159 -1
- package/dist/types/typechain-types/factories/contracts/core/governance/gauges/GaugeController__factory.d.ts +1 -1
- package/dist/types/typechain-types/factories/contracts/core/governance/gauges/GaugeRewardsDistributor__factory.d.ts +29 -1
- package/dist/types/typechain-types/factories/contracts/core/governance/gauges/RAACGauge__factory.d.ts +160 -2
- package/dist/types/typechain-types/factories/contracts/core/governance/gauges/RWAGauge__factory.d.ts +160 -2
- package/dist/types/typechain-types/factories/contracts/core/governance/proposals/Governance__factory.d.ts +14 -2
- package/dist/types/typechain-types/factories/contracts/core/governance/proposals/TimelockController__factory.d.ts +25 -1
- package/dist/types/typechain-types/factories/contracts/core/lockers/LLamaTemple__factory.d.ts +1 -1
- package/dist/types/typechain-types/factories/contracts/core/minters/RAACMinter/RAACMinter__factory.d.ts +1 -71
- package/dist/types/typechain-types/factories/contracts/core/minters/RAACReleaseOrchestrator/RAACReleaseOrchestrator__factory.d.ts +43 -10
- package/dist/types/typechain-types/factories/contracts/core/oracles/BaseChainlinkFunctionsOracle__factory.d.ts +128 -23
- package/dist/types/typechain-types/factories/contracts/core/oracles/BaseVRFv2Consumer__factory.d.ts +135 -14
- package/dist/types/typechain-types/factories/contracts/core/oracles/CrvUSDToUSDOracle.sol/CrvUSDToUSDOracle__factory.d.ts +443 -0
- package/dist/types/typechain-types/factories/contracts/core/oracles/CrvUSDToUSDOracle.sol/ICrvUSDToUSDOracle__factory.d.ts +45 -0
- package/dist/types/typechain-types/factories/contracts/{interfaces/IHousePrices__factory.d.ts → core/oracles/CrvUSDToUSDOracle.sol/ICrvUsdCurveOracle__factory.d.ts} +6 -6
- package/dist/types/typechain-types/factories/contracts/core/oracles/CrvUSDToUSDOracle.sol/index.d.ts +3 -0
- package/dist/types/typechain-types/factories/contracts/core/oracles/RAACHousePriceOracle__factory.d.ts +203 -28
- package/dist/types/typechain-types/factories/contracts/core/oracles/RAACPrimeRateOracle__factory.d.ts +153 -28
- package/dist/types/typechain-types/factories/contracts/{mocks/core/oracles/MockERC20PriceOracle.sol → core/oracles/RWAIndexTokenOracle.sol}/IPriceOracle__factory.d.ts +1 -1
- package/dist/types/typechain-types/factories/contracts/core/oracles/RWAIndexTokenOracle.sol/RWAIndexTokenOracle__factory.d.ts +74 -0
- package/dist/types/typechain-types/factories/contracts/core/oracles/RWAIndexTokenOracle.sol/index.d.ts +2 -0
- package/dist/types/typechain-types/factories/contracts/core/oracles/crvUSDPriceOracle.sol/CrvUSDPriceOracle__factory.d.ts +52 -0
- package/dist/types/typechain-types/factories/contracts/core/{vaults/ERC20VaultAdapter.sol → oracles/crvUSDPriceOracle.sol}/IPriceOracle__factory.d.ts +1 -1
- package/dist/types/typechain-types/factories/contracts/core/{vaults/ERC20VaultAdapter.sol → oracles/crvUSDPriceOracle.sol}/index.d.ts +1 -1
- package/dist/types/typechain-types/factories/contracts/core/oracles/index.d.ts +3 -0
- package/dist/types/typechain-types/factories/contracts/core/pools/LendingPool/ERC20AssetAdapter.sol/ERC20AssetAdapter__factory.d.ts +15 -1
- package/dist/types/typechain-types/factories/contracts/core/pools/LendingPool/{ERC721AssetAdapter.sol/ERC721AssetAdapter__factory.d.ts → ERC721AssetAdapter__factory.d.ts} +44 -4
- package/dist/types/typechain-types/factories/contracts/core/pools/LendingPool/LendingPoolStorage__factory.d.ts +103 -50
- package/dist/types/typechain-types/factories/contracts/core/pools/LendingPool/LendingPool__factory.d.ts +186 -173
- package/dist/types/typechain-types/factories/contracts/core/pools/LendingPool/LiquidationProxy__factory.d.ts +101 -56
- package/dist/types/typechain-types/factories/contracts/core/pools/LendingPool/VaultProxy__factory.d.ts +117 -48
- package/dist/types/typechain-types/factories/contracts/core/pools/LendingPool/index.d.ts +1 -1
- package/dist/types/typechain-types/factories/contracts/core/pools/StabilityPool/LiquidationStrategyProxy__factory.d.ts +70 -34
- package/dist/types/typechain-types/factories/contracts/core/pools/StabilityPool/LiquidationSwap__factory.d.ts +82 -8
- package/dist/types/typechain-types/factories/contracts/core/pools/StabilityPool/StabilityPoolStorage__factory.d.ts +58 -34
- package/dist/types/typechain-types/factories/contracts/core/pools/StabilityPool/StabilityPool__factory.d.ts +344 -109
- package/dist/types/typechain-types/factories/contracts/core/primitives/{ComplianceRegistry__factory.d.ts → ComplianceRegistry.sol/ComplianceRegistry__factory.d.ts} +47 -3
- package/dist/types/typechain-types/factories/contracts/core/primitives/ComplianceRegistry.sol/SanctionsList__factory.d.ts +21 -0
- package/dist/types/typechain-types/factories/contracts/core/primitives/ComplianceRegistry.sol/index.d.ts +2 -0
- package/dist/types/typechain-types/factories/contracts/core/primitives/RAACHousePrices__factory.d.ts +174 -8
- package/dist/types/typechain-types/factories/contracts/core/primitives/index.d.ts +1 -1
- package/dist/types/typechain-types/factories/contracts/core/tokens/DEToken__factory.d.ts +87 -9
- package/dist/types/typechain-types/factories/contracts/core/tokens/DebtToken__factory.d.ts +15 -168
- package/dist/types/typechain-types/factories/contracts/core/tokens/LPToken__factory.d.ts +1 -1
- package/dist/types/typechain-types/factories/contracts/core/tokens/RAACNFT__factory.d.ts +213 -24
- package/dist/types/typechain-types/factories/contracts/core/tokens/RAACToken__factory.d.ts +1 -1
- package/dist/types/typechain-types/factories/contracts/core/tokens/RToken__factory.d.ts +40 -32
- package/dist/types/typechain-types/factories/contracts/core/tokens/RWAIndexToken__factory.d.ts +22 -4
- package/dist/types/typechain-types/factories/contracts/core/tokens/VeRAACToken__factory.d.ts +1 -1
- package/dist/types/typechain-types/factories/contracts/core/vaults/{ERC20VaultAdapter.sol/ERC20VaultAdapter__factory.d.ts → ERC20VaultAdapter__factory.d.ts} +15 -9
- package/dist/types/typechain-types/factories/contracts/core/vaults/ERC721VaultAdapter__factory.d.ts +347 -0
- package/dist/types/typechain-types/factories/contracts/core/vaults/RAACNFTVaultAdapterV2__factory.d.ts +417 -0
- package/dist/types/typechain-types/factories/contracts/core/vaults/RWAVault__factory.d.ts +318 -86
- package/dist/types/typechain-types/factories/contracts/core/vaults/index.d.ts +3 -2
- package/dist/types/typechain-types/factories/contracts/interfaces/IComplianceRegistry__factory.d.ts +4 -0
- package/dist/types/typechain-types/factories/contracts/interfaces/core/collectors/IDistributionTarget__factory.d.ts +39 -0
- package/dist/types/typechain-types/factories/contracts/interfaces/core/collectors/IFeeCollector__factory.d.ts +131 -95
- package/dist/types/typechain-types/factories/contracts/interfaces/core/collectors/ITreasury__factory.d.ts +20 -49
- package/dist/types/typechain-types/factories/contracts/interfaces/core/collectors/index.d.ts +1 -0
- package/dist/types/typechain-types/factories/contracts/interfaces/core/governance/gauges/IBaseGauge__factory.d.ts +133 -1
- package/dist/types/typechain-types/factories/contracts/interfaces/core/governance/proposals/IGovernance__factory.d.ts +13 -1
- package/dist/types/typechain-types/factories/contracts/interfaces/core/governance/proposals/ITimelockController__factory.d.ts +24 -0
- package/dist/types/typechain-types/factories/contracts/interfaces/core/minters/RAACMinter/IRAACMinter__factory.d.ts +0 -60
- package/dist/types/typechain-types/factories/contracts/interfaces/core/minters/RAACReleaseOrchestrator/IReleaseOrchestrator__factory.d.ts +19 -16
- package/dist/types/typechain-types/factories/contracts/interfaces/core/oracles/IBaseVRFv2Consumer__factory.d.ts +52 -1
- package/dist/types/typechain-types/factories/contracts/interfaces/core/oracles/IERC20PriceOracle__factory.d.ts +17 -0
- package/dist/types/typechain-types/factories/contracts/{core/vaults/ERC721VaultAdapter.sol/IPriceOracle__factory.d.ts → interfaces/core/oracles/IERC721PriceOracle__factory.d.ts} +8 -4
- package/dist/types/typechain-types/factories/contracts/interfaces/core/oracles/IRAACHousePriceOracle__factory.d.ts +21 -0
- package/dist/types/typechain-types/factories/contracts/interfaces/core/oracles/IRAACHousePrices.sol/IRAACHousePriceSyncer__factory.d.ts +59 -0
- package/dist/types/typechain-types/factories/contracts/interfaces/core/oracles/IRAACHousePrices.sol/IRAACHousePrices__factory.d.ts +67 -0
- package/dist/types/typechain-types/factories/contracts/interfaces/core/oracles/IRAACHousePrices.sol/index.d.ts +2 -0
- package/dist/types/typechain-types/factories/contracts/interfaces/core/oracles/IZKMEVerifyUpgradeable__factory.d.ts +25 -0
- package/dist/types/typechain-types/factories/contracts/interfaces/core/oracles/index.d.ts +5 -1
- package/dist/types/typechain-types/factories/contracts/interfaces/core/pools/ILiquidityPool__factory.d.ts +26 -10
- package/dist/types/typechain-types/factories/contracts/interfaces/core/pools/LendingPool/IAssetAdapter__factory.d.ts +14 -0
- package/dist/types/typechain-types/factories/contracts/interfaces/core/pools/LendingPool/ILendingPoolStorage__factory.d.ts +53 -0
- package/dist/types/typechain-types/factories/contracts/interfaces/core/pools/LendingPool/ILendingPool__factory.d.ts +113 -92
- package/dist/types/typechain-types/factories/contracts/interfaces/core/pools/StabilityPool/ILiquidationSwap__factory.d.ts +12 -0
- package/dist/types/typechain-types/factories/contracts/interfaces/core/pools/StabilityPool/IStabilityPool__factory.d.ts +236 -41
- package/dist/types/typechain-types/factories/contracts/interfaces/core/tokens/IDEToken__factory.d.ts +70 -0
- package/dist/types/typechain-types/factories/contracts/interfaces/core/tokens/IDebtToken__factory.d.ts +10 -16
- package/dist/types/typechain-types/factories/contracts/interfaces/core/tokens/IRAACNFT__factory.d.ts +122 -22
- package/dist/types/typechain-types/factories/contracts/interfaces/core/tokens/IRToken__factory.d.ts +19 -29
- package/dist/types/typechain-types/factories/contracts/interfaces/core/vaults/IBaseHybridVault__factory.d.ts +301 -19
- package/dist/types/typechain-types/factories/contracts/interfaces/{IPoolManager__factory.d.ts → core/vaults/IERC721VaultAdapter__factory.d.ts} +20 -22
- package/dist/types/typechain-types/factories/contracts/interfaces/core/vaults/IVaultAssetAdapter__factory.d.ts +0 -4
- package/dist/types/typechain-types/factories/contracts/interfaces/core/vaults/index.d.ts +1 -0
- package/dist/types/typechain-types/factories/contracts/interfaces/curve/ICurveCrvUSDVault__factory.d.ts +64 -0
- package/dist/types/typechain-types/factories/contracts/interfaces/zeno/IAuction__factory.d.ts +4 -0
- package/dist/types/typechain-types/factories/contracts/libraries/governance/BoostCalculator__factory.d.ts +1 -1
- package/dist/types/typechain-types/factories/contracts/libraries/governance/LockManager__factory.d.ts +1 -1
- package/dist/types/typechain-types/factories/contracts/libraries/governance/PowerCheckpoint__factory.d.ts +1 -1
- package/dist/types/typechain-types/factories/contracts/libraries/math/TimeWeightedAverage__factory.d.ts +1 -1
- package/dist/types/typechain-types/factories/contracts/libraries/pools/LendingPoolFeeLibrary__factory.d.ts +42 -0
- package/dist/types/typechain-types/factories/contracts/libraries/pools/ReserveLibrary__factory.d.ts +1 -1
- package/dist/types/typechain-types/factories/contracts/libraries/pools/index.d.ts +1 -0
- package/dist/types/typechain-types/factories/contracts/libraries/utils/StringUtils__factory.d.ts +1 -1
- package/dist/types/typechain-types/factories/contracts/mocks/core/collectors/MockTreasury__factory.d.ts +21 -68
- package/dist/types/typechain-types/factories/contracts/mocks/core/collectors/MockWETH__factory.d.ts +1 -1
- package/dist/types/typechain-types/factories/contracts/mocks/core/curve/CurveCrvUSDVaultMock__factory.d.ts +651 -0
- package/dist/types/typechain-types/factories/contracts/mocks/core/curve/CurveLiquidityGaugeV5Mock.sol/CurveLiquidityGaugeV5Mock__factory.d.ts +1 -1
- package/dist/types/typechain-types/factories/contracts/mocks/core/curve/index.d.ts +1 -0
- package/dist/types/typechain-types/factories/contracts/mocks/core/governance/gauges/MockGaugeController__factory.d.ts +1 -1
- package/dist/types/typechain-types/factories/contracts/mocks/core/governance/proposals/TimelockPayableTestTarget__factory.d.ts +65 -0
- package/dist/types/typechain-types/factories/contracts/mocks/core/governance/proposals/TimelockTestTarget__factory.d.ts +1 -1
- package/dist/types/typechain-types/factories/contracts/mocks/core/governance/proposals/index.d.ts +1 -0
- package/dist/types/typechain-types/factories/contracts/mocks/core/lockers/LLamaLocker.sol/LlamaLocker__factory.d.ts +1 -1
- package/dist/types/typechain-types/factories/contracts/mocks/core/oracles/MockChainlinkAggregator__factory.d.ts +168 -0
- package/dist/types/typechain-types/factories/contracts/{core/pools/LendingPool/ERC721AssetAdapter.sol/IPriceOracle__factory.d.ts → mocks/core/oracles/MockCurveEMA.sol/ICrvUsdCurveOracle__factory.d.ts} +7 -7
- package/dist/types/typechain-types/factories/contracts/mocks/core/oracles/MockCurveEMA.sol/MockCurveEMA__factory.d.ts +98 -0
- package/dist/types/typechain-types/factories/contracts/mocks/core/oracles/MockCurveEMA.sol/index.d.ts +2 -0
- package/dist/types/typechain-types/factories/contracts/mocks/core/oracles/{MockERC20PriceOracle.sol/MockERC20PriceOracle__factory.d.ts → MockERC20PriceOracle__factory.d.ts} +3 -3
- package/dist/types/typechain-types/factories/contracts/mocks/core/oracles/MockFunctionsRouter.sol/MockFunctionsRouter__factory.d.ts +1 -1
- package/dist/types/typechain-types/factories/contracts/mocks/core/oracles/MockOracle__factory.d.ts +1 -1
- package/dist/types/typechain-types/factories/contracts/mocks/core/oracles/MockRAACNFTVaultAdapterNAVOracle__factory.d.ts +242 -0
- package/dist/types/typechain-types/factories/contracts/mocks/core/oracles/MockVRFCoordinatorV2__factory.d.ts +1 -1
- package/dist/types/typechain-types/factories/contracts/mocks/core/oracles/MockZKMEVerifyUpgradeable__factory.d.ts +184 -0
- package/dist/types/typechain-types/factories/contracts/mocks/core/oracles/TestRAACHousePriceOracle__factory.d.ts +203 -28
- package/dist/types/typechain-types/factories/contracts/mocks/core/oracles/TestRAACPrimeRateOracle__factory.d.ts +153 -28
- package/dist/types/typechain-types/factories/contracts/mocks/core/oracles/index.d.ts +5 -1
- package/dist/types/typechain-types/factories/contracts/mocks/core/pools/CurveStyleCrvUSDiRAACPool__factory.d.ts +938 -0
- package/dist/types/typechain-types/factories/contracts/mocks/core/pools/MockLendingPoolCollector__factory.d.ts +9 -11
- package/dist/types/typechain-types/factories/contracts/mocks/core/pools/MockLendingPoolDebtToken__factory.d.ts +114 -83
- package/dist/types/typechain-types/factories/contracts/mocks/core/pools/MockLendingPool__factory.d.ts +15 -19
- package/dist/types/typechain-types/factories/contracts/mocks/core/pools/MockLiquidityPool__factory.d.ts +27 -11
- package/dist/types/typechain-types/factories/contracts/mocks/core/pools/MockPool__factory.d.ts +1 -1
- package/dist/types/typechain-types/factories/contracts/mocks/core/pools/MockStabilityPool__factory.d.ts +1 -1
- package/dist/types/typechain-types/factories/contracts/mocks/core/pools/index.d.ts +1 -0
- package/dist/types/typechain-types/factories/contracts/mocks/core/primitives/MockChainAnalysis.sol/MockChainAnalysis__factory.d.ts +50 -0
- package/dist/types/typechain-types/factories/contracts/mocks/core/primitives/MockChainAnalysis.sol/SanctionsList__factory.d.ts +21 -0
- package/dist/types/typechain-types/factories/contracts/mocks/core/primitives/MockChainAnalysis.sol/index.d.ts +2 -0
- package/dist/types/typechain-types/factories/contracts/mocks/core/primitives/MockContractWithConfig__factory.d.ts +1 -1
- package/dist/types/typechain-types/factories/contracts/mocks/core/primitives/MockContract__factory.d.ts +1 -1
- package/dist/types/typechain-types/factories/contracts/mocks/core/primitives/MockDistributableContract__factory.d.ts +15 -1
- package/dist/types/typechain-types/factories/contracts/mocks/core/primitives/RAACHousePricesMock__factory.d.ts +1 -1
- package/dist/types/typechain-types/factories/contracts/mocks/core/primitives/index.d.ts +1 -0
- package/dist/types/typechain-types/factories/contracts/mocks/core/tokens/CrvUSDTokenLimited__factory.d.ts +431 -0
- package/dist/types/typechain-types/factories/contracts/mocks/core/tokens/CrvUSDToken__factory.d.ts +1 -1
- package/dist/types/typechain-types/factories/contracts/mocks/core/tokens/ERC20Mock__factory.d.ts +1 -1
- package/dist/types/typechain-types/factories/contracts/mocks/core/tokens/ERC721Mock__factory.d.ts +1 -1
- package/dist/types/typechain-types/factories/contracts/mocks/core/tokens/MockCollectableUnderlying__factory.d.ts +1 -1
- package/dist/types/typechain-types/factories/contracts/mocks/core/tokens/MockFeeCollectorToken__factory.d.ts +1 -1
- package/dist/types/typechain-types/factories/contracts/mocks/core/tokens/MockToken__factory.d.ts +1 -1
- package/dist/types/typechain-types/factories/contracts/mocks/core/tokens/MockUSDC__factory.d.ts +1 -1
- package/dist/types/typechain-types/factories/contracts/mocks/core/tokens/RAACMockERC20__factory.d.ts +1 -1
- package/dist/types/typechain-types/factories/contracts/mocks/core/tokens/index.d.ts +1 -0
- package/dist/types/typechain-types/factories/contracts/mocks/core/vaults/MockVault__factory.d.ts +1 -1
- package/dist/types/typechain-types/factories/contracts/mocks/libraries/MockStringUtils__factory.d.ts +1 -1
- package/dist/types/typechain-types/factories/contracts/mocks/libraries/governance/BoostCalculatorMock__factory.d.ts +1 -1
- package/dist/types/typechain-types/factories/contracts/mocks/libraries/governance/LockManagerMock__factory.d.ts +1 -1
- package/dist/types/typechain-types/factories/contracts/mocks/libraries/governance/PowerCheckpointMock__factory.d.ts +1 -1
- package/dist/types/typechain-types/factories/contracts/mocks/libraries/math/TimeWeightedAverageMock__factory.d.ts +1 -1
- package/dist/types/typechain-types/factories/contracts/mocks/libraries/math/WadRayMathMock__factory.d.ts +1 -1
- package/dist/types/typechain-types/factories/contracts/mocks/libraries/pools/ReserveLibraryMockCalculation__factory.d.ts +228 -0
- package/dist/types/typechain-types/factories/contracts/mocks/libraries/pools/ReserveLibraryMock__factory.d.ts +23 -5
- package/dist/types/typechain-types/factories/contracts/mocks/libraries/pools/index.d.ts +1 -0
- package/dist/types/typechain-types/factories/contracts/mocks/tests/MaliciousDeposit__factory.d.ts +1 -1
- package/dist/types/typechain-types/factories/contracts/mocks/tests/MaliciousWithdraw__factory.d.ts +1 -1
- package/dist/types/typechain-types/factories/contracts/mocks/tests/VeRAACFuzzHelper__factory.d.ts +1 -1
- package/dist/types/typechain-types/factories/contracts/zeno/AuctionFactory__factory.d.ts +34 -1
- package/dist/types/typechain-types/factories/contracts/zeno/Auction__factory.d.ts +44 -1
- package/dist/types/typechain-types/factories/contracts/zeno/ZENOFactory__factory.d.ts +1 -1
- package/dist/types/typechain-types/factories/contracts/zeno/ZENO__factory.d.ts +1 -1
- package/dist/types/typechain-types/index.d.ts +88 -18
- package/dist/types/utils/artifacts.d.ts +997 -284
- package/dist/types/utils/contracts.d.ts +6 -2
- package/dist/types/utils/errorDecoder.d.ts +37 -0
- package/dist/types/wallet/assets/approveNFT.d.ts +0 -0
- package/dist/types/wallet/assets/getAllowance.d.ts +1 -1
- package/dist/types/wallet/assets/getBalance.d.ts +2 -6
- package/dist/utils/artifacts.js +16 -0
- package/dist/utils/errorDecoder.js +137 -0
- package/dist/wallet/assets/approveNFT.js +0 -0
- package/dist/wallet/assets/getAllowance.js +3 -3
- package/dist/wallet/assets/getBalance.js +9 -5
- package/package.json +11 -8
- package/dist/pools/lendingPool/getWithdrawRequestInfo.js +0 -25
- package/dist/types/pools/lendingPool/getWithdrawRequestInfo.d.ts +0 -8
- package/dist/types/typechain-types/@chainlink/contracts/src/v0.8/vrf/interfaces/VRFCoordinatorV2Interface.d.ts +0 -156
- package/dist/types/typechain-types/@chainlink/contracts/src/v0.8/vrf/interfaces/index.d.ts +0 -1
- package/dist/types/typechain-types/contracts/core/governance/boost/BoostController.d.ts +0 -573
- package/dist/types/typechain-types/contracts/core/governance/boost/index.d.ts +0 -1
- package/dist/types/typechain-types/contracts/core/pools/LendingPool/ERC721AssetAdapter.sol/index.d.ts +0 -2
- package/dist/types/typechain-types/contracts/core/pools/StabilityPool/NFTLiquidator.d.ts +0 -283
- package/dist/types/typechain-types/contracts/core/vaults/ERC20VaultAdapter.sol/index.d.ts +0 -2
- package/dist/types/typechain-types/contracts/core/vaults/ERC721VaultAdapter.sol/index.d.ts +0 -2
- package/dist/types/typechain-types/contracts/interfaces/IPoolManager.d.ts +0 -37
- package/dist/types/typechain-types/contracts/interfaces/IReserveAllocationLibraryMock.d.ts +0 -164
- package/dist/types/typechain-types/contracts/interfaces/IveRAACDistributor.d.ts +0 -59
- package/dist/types/typechain-types/contracts/interfaces/core/governance/IBoostController.d.ts +0 -269
- package/dist/types/typechain-types/contracts/interfaces/core/governance/gauges/IGauge.d.ts +0 -235
- package/dist/types/typechain-types/contracts/interfaces/core/oracles/IRAACHousePrices.d.ts +0 -117
- package/dist/types/typechain-types/contracts/libraries/governance/Checkpoints.d.ts +0 -55
- package/dist/types/typechain-types/contracts/libraries/governance/RAACVoting.d.ts +0 -45
- package/dist/types/typechain-types/contracts/libraries/governance/VotingPowerLib.d.ts +0 -66
- package/dist/types/typechain-types/contracts/mocks/core/governance/gauges/MockBaseGauge.d.ts +0 -845
- package/dist/types/typechain-types/contracts/mocks/core/oracles/MockERC20PriceOracle.sol/index.d.ts +0 -2
- package/dist/types/typechain-types/contracts/mocks/core/tokens/MockVeToken.d.ts +0 -510
- package/dist/types/typechain-types/contracts/mocks/libraries/governance/CheckpointsMock.d.ts +0 -83
- package/dist/types/typechain-types/contracts/mocks/libraries/governance/VotingPowerMock.d.ts +0 -281
- package/dist/types/typechain-types/contracts/mocks/tests/VotingPowerFuzzHelper.sol/VotingPowerFuzzHelper.d.ts +0 -100
- package/dist/types/typechain-types/contracts/mocks/tests/VotingPowerFuzzHelper.sol/index.d.ts +0 -2
- package/dist/types/typechain-types/factories/@chainlink/contracts/src/v0.8/vrf/VRFConsumerBaseV2__factory.d.ts +0 -33
- package/dist/types/typechain-types/factories/@chainlink/contracts/src/v0.8/vrf/interfaces/VRFCoordinatorV2Interface__factory.d.ts +0 -171
- package/dist/types/typechain-types/factories/@chainlink/contracts/src/v0.8/vrf/interfaces/index.d.ts +0 -1
- package/dist/types/typechain-types/factories/@openzeppelin/contracts/utils/math/Math__factory.d.ts +0 -26
- package/dist/types/typechain-types/factories/contracts/core/governance/boost/BoostController__factory.d.ts +0 -716
- package/dist/types/typechain-types/factories/contracts/core/governance/boost/index.d.ts +0 -1
- package/dist/types/typechain-types/factories/contracts/core/pools/LendingPool/ERC721AssetAdapter.sol/index.d.ts +0 -2
- package/dist/types/typechain-types/factories/contracts/core/pools/StabilityPool/NFTLiquidator__factory.d.ts +0 -390
- package/dist/types/typechain-types/factories/contracts/core/tokens/IndexToken__factory.d.ts +0 -602
- package/dist/types/typechain-types/factories/contracts/core/vaults/ERC721VaultAdapter.sol/ERC721VaultAdapter__factory.d.ts +0 -287
- package/dist/types/typechain-types/factories/contracts/core/vaults/ERC721VaultAdapter.sol/index.d.ts +0 -2
- package/dist/types/typechain-types/factories/contracts/interfaces/IReserveAllocationLibraryMock__factory.d.ts +0 -189
- package/dist/types/typechain-types/factories/contracts/interfaces/IveRAACDistributor__factory.d.ts +0 -75
- package/dist/types/typechain-types/factories/contracts/interfaces/core/governance/IBoostController__factory.d.ts +0 -295
- package/dist/types/typechain-types/factories/contracts/interfaces/core/governance/gauges/IGauge__factory.d.ts +0 -307
- package/dist/types/typechain-types/factories/contracts/interfaces/core/oracles/IRAACHousePrices__factory.d.ts +0 -141
- package/dist/types/typechain-types/factories/contracts/libraries/governance/Checkpoints__factory.d.ts +0 -68
- package/dist/types/typechain-types/factories/contracts/libraries/governance/RAACVoting__factory.d.ts +0 -92
- package/dist/types/typechain-types/factories/contracts/libraries/governance/VotingPowerLib__factory.d.ts +0 -74
- package/dist/types/typechain-types/factories/contracts/mocks/core/governance/gauges/MockBaseGauge__factory.d.ts +0 -1194
- package/dist/types/typechain-types/factories/contracts/mocks/core/oracles/MockERC20PriceOracle.sol/index.d.ts +0 -2
- package/dist/types/typechain-types/factories/contracts/mocks/core/tokens/MockVeToken__factory.d.ts +0 -714
- package/dist/types/typechain-types/factories/contracts/mocks/libraries/governance/CheckpointsMock__factory.d.ts +0 -124
- package/dist/types/typechain-types/factories/contracts/mocks/libraries/governance/RAACVotingMock__factory.d.ts +0 -70
- package/dist/types/typechain-types/factories/contracts/mocks/libraries/governance/VotingPowerMock__factory.d.ts +0 -341
- package/dist/types/typechain-types/factories/contracts/mocks/tests/VotingPowerFuzzHelper.sol/IVMTimeControl__factory.d.ts +0 -17
- package/dist/types/typechain-types/factories/contracts/mocks/tests/VotingPowerFuzzHelper.sol/VotingPowerFuzzHelper__factory.d.ts +0 -113
- package/dist/types/typechain-types/factories/contracts/mocks/tests/VotingPowerFuzzHelper.sol/index.d.ts +0 -2
- /package/dist/types/pools/{lendingPool → stabilityPool}/requestWithdraw.d.ts +0 -0
- /package/dist/types/typechain-types/contracts/core/{vaults/ERC20VaultAdapter.sol → oracles/RWAIndexTokenOracle.sol}/IPriceOracle.d.ts +0 -0
|
@@ -0,0 +1,277 @@
|
|
|
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
|
+
const ethers_1 = require("ethers");
|
|
7
|
+
const fs_1 = require("fs");
|
|
8
|
+
const chains_1 = __importDefault(require("../configs/chains"));
|
|
9
|
+
const RPCLibrary_1 = __importDefault(require("../RPCLibrary"));
|
|
10
|
+
const artifacts_1 = require("../utils/artifacts");
|
|
11
|
+
const _helpers_1 = require("../pools/lendingPool/_helpers");
|
|
12
|
+
const BLOCK = 8718016;
|
|
13
|
+
const chainId = 11155111; // Sepolia
|
|
14
|
+
const config = chains_1.default[chainId];
|
|
15
|
+
// Health factor thresholds
|
|
16
|
+
const HEALTH_FACTOR_THRESHOLDS = {
|
|
17
|
+
HIGH_RISK: 1.1e18, // 1.1 in wei
|
|
18
|
+
MEDIUM_RISK: 1.3e18, // 1.3 in wei
|
|
19
|
+
LOW_RISK: 1.5e18, // 1.5 in wei
|
|
20
|
+
};
|
|
21
|
+
// RPC constraints
|
|
22
|
+
const MAX_BLOCK_RANGE = 500; // Maximum blocks per eth_getLogs request
|
|
23
|
+
async function getProvider() {
|
|
24
|
+
return new ethers_1.ethers.JsonRpcProvider(config.rpcs[0]);
|
|
25
|
+
}
|
|
26
|
+
async function getEventsInChunks(contract, filter, fromBlock, toBlock) {
|
|
27
|
+
const allEvents = [];
|
|
28
|
+
// Query events in chunks of MAX_BLOCK_RANGE
|
|
29
|
+
for (let startBlock = fromBlock; startBlock <= toBlock; startBlock += MAX_BLOCK_RANGE) {
|
|
30
|
+
const endBlock = Math.min(startBlock + MAX_BLOCK_RANGE - 1, toBlock);
|
|
31
|
+
console.log(` Querying blocks ${startBlock} to ${endBlock}...`);
|
|
32
|
+
try {
|
|
33
|
+
const events = await contract.queryFilter(filter, startBlock, endBlock);
|
|
34
|
+
allEvents.push(...events);
|
|
35
|
+
console.log(` Found ${events.length} events in this range`);
|
|
36
|
+
}
|
|
37
|
+
catch (error) {
|
|
38
|
+
console.error(` Error querying blocks ${startBlock}-${endBlock}:`, error);
|
|
39
|
+
// Continue with next chunk even if this one fails
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
return allEvents;
|
|
43
|
+
}
|
|
44
|
+
async function getAllDepositedUsers() {
|
|
45
|
+
const provider = await getProvider();
|
|
46
|
+
const rpc = new RPCLibrary_1.default();
|
|
47
|
+
rpc.provider = provider;
|
|
48
|
+
rpc.chainId = chainId;
|
|
49
|
+
const allUsers = [];
|
|
50
|
+
// Get current block number
|
|
51
|
+
const currentBlock = await provider.getBlockNumber();
|
|
52
|
+
console.log(`Current block number: ${currentBlock}`);
|
|
53
|
+
// Process each adapter
|
|
54
|
+
for (const adapterName of [
|
|
55
|
+
"raacnftadapter",
|
|
56
|
+
"rwaindextokenadapter"
|
|
57
|
+
]) {
|
|
58
|
+
try {
|
|
59
|
+
// Get adapter info
|
|
60
|
+
const adapterInfo = rpc.pools.lendingPool.getAdapterAddress(chainId, adapterName);
|
|
61
|
+
if (!adapterInfo) {
|
|
62
|
+
console.log(`Skipping adapter ${adapterName} - not found in config`);
|
|
63
|
+
continue;
|
|
64
|
+
}
|
|
65
|
+
console.log(`Processing adapter: ${adapterInfo.address} (${adapterInfo.type})`);
|
|
66
|
+
if (adapterInfo.type === "ERC20") {
|
|
67
|
+
// For ERC20, we need to scan TokenDeposited events
|
|
68
|
+
const erc20AdapterABI = (0, artifacts_1.getABI)("erc20assetadapter");
|
|
69
|
+
const erc20AdapterContract = new ethers_1.ethers.Contract(adapterInfo.address, erc20AdapterABI, provider);
|
|
70
|
+
// Get all TokenDeposited events in chunks
|
|
71
|
+
const events = await getEventsInChunks(erc20AdapterContract, erc20AdapterContract.filters.TokenDeposited(), BLOCK, // from block
|
|
72
|
+
currentBlock // to block
|
|
73
|
+
);
|
|
74
|
+
for (const event of events) {
|
|
75
|
+
const { token, user, amount } = event.args;
|
|
76
|
+
allUsers.push({
|
|
77
|
+
user,
|
|
78
|
+
adapter: adapterInfo.address,
|
|
79
|
+
adapterType: "ERC20",
|
|
80
|
+
amount: amount.toString()
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
else if (adapterInfo.type === "ERC721") {
|
|
85
|
+
// For ERC721, we need to scan NFTDeposited events
|
|
86
|
+
const erc721AdapterABI = (0, artifacts_1.getABI)("erc721assetadapter");
|
|
87
|
+
const erc721AdapterContract = new ethers_1.ethers.Contract(adapterInfo.address, erc721AdapterABI, provider);
|
|
88
|
+
// Get all NFTDeposited events in chunks
|
|
89
|
+
const events = await getEventsInChunks(erc721AdapterContract, erc721AdapterContract.filters.NFTDeposited(), BLOCK, // from block
|
|
90
|
+
currentBlock // to block
|
|
91
|
+
);
|
|
92
|
+
for (const event of events) {
|
|
93
|
+
const { token, user, tokenId } = event.args;
|
|
94
|
+
allUsers.push({
|
|
95
|
+
user,
|
|
96
|
+
adapter: adapterInfo.address,
|
|
97
|
+
adapterType: "ERC721",
|
|
98
|
+
tokenId: tokenId.toString()
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
catch (error) {
|
|
104
|
+
console.error(`Error processing adapter ${adapterName}:`, error);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
// Remove duplicates (same user, adapter, and tokenId/amount)
|
|
108
|
+
const uniqueUsers = allUsers.filter((user, index, self) => index === self.findIndex(u => u.user === user.user &&
|
|
109
|
+
u.adapter === user.adapter &&
|
|
110
|
+
u.tokenId === user.tokenId &&
|
|
111
|
+
u.amount === user.amount));
|
|
112
|
+
return uniqueUsers;
|
|
113
|
+
}
|
|
114
|
+
async function getPositionData(user, adapter, adapterType, tokenId, amount) {
|
|
115
|
+
const provider = await getProvider();
|
|
116
|
+
const rpc = new RPCLibrary_1.default();
|
|
117
|
+
rpc.provider = provider;
|
|
118
|
+
rpc.chainId = chainId;
|
|
119
|
+
try {
|
|
120
|
+
// Encode the data parameter based on adapter type
|
|
121
|
+
let data;
|
|
122
|
+
if (adapterType === "ERC20") {
|
|
123
|
+
// For ERC20, data is encoded as uint256 0
|
|
124
|
+
data = new ethers_1.ethers.AbiCoder().encode(["uint256"], [0]);
|
|
125
|
+
}
|
|
126
|
+
else {
|
|
127
|
+
// For ERC721, data is encoded as uint256 tokenId
|
|
128
|
+
data = new ethers_1.ethers.AbiCoder().encode(["uint256"], [tokenId || 0]);
|
|
129
|
+
}
|
|
130
|
+
// Get position view from lending pool
|
|
131
|
+
const lendingPoolContract = await (0, _helpers_1.getLendingPoolContract)(chainId, provider);
|
|
132
|
+
const positionView = await lendingPoolContract.getPositionView(adapter, user, data);
|
|
133
|
+
// Get asset value if available
|
|
134
|
+
let assetValue;
|
|
135
|
+
try {
|
|
136
|
+
if (adapterType === "ERC20") {
|
|
137
|
+
const erc20AdapterABI = (0, artifacts_1.getABI)("erc20assetadapter");
|
|
138
|
+
const erc20AdapterContract = new ethers_1.ethers.Contract(adapter, erc20AdapterABI, provider);
|
|
139
|
+
assetValue = (await erc20AdapterContract.getAssetValue(user, data)).toString();
|
|
140
|
+
}
|
|
141
|
+
else {
|
|
142
|
+
const erc721AdapterABI = (0, artifacts_1.getABI)("erc721assetadapter");
|
|
143
|
+
const erc721AdapterContract = new ethers_1.ethers.Contract(adapter, erc721AdapterABI, provider);
|
|
144
|
+
assetValue = (await erc721AdapterContract.getAssetValue(user, data)).toString();
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
catch (error) {
|
|
148
|
+
console.log(`Could not get asset value for user ${user}:`, error);
|
|
149
|
+
}
|
|
150
|
+
return {
|
|
151
|
+
user,
|
|
152
|
+
adapter,
|
|
153
|
+
adapterType,
|
|
154
|
+
asset: positionView.asset,
|
|
155
|
+
tokenId,
|
|
156
|
+
amount,
|
|
157
|
+
rawDebtBalance: positionView.rawDebtBalance.toString(),
|
|
158
|
+
scaledDebtBalance: positionView.scaledDebtBalance.toString(),
|
|
159
|
+
healthFactor: positionView.healthFactor.toString(),
|
|
160
|
+
isUnderLiquidation: positionView.isUnderLiquidation,
|
|
161
|
+
liquidationStartTime: positionView.liquidationStartTime.toString(),
|
|
162
|
+
positionIndex: positionView.positionIndex.toString(),
|
|
163
|
+
isInsured: positionView.isInsured,
|
|
164
|
+
assetValue
|
|
165
|
+
};
|
|
166
|
+
}
|
|
167
|
+
catch (error) {
|
|
168
|
+
console.error(`Error getting position data for user ${user}:`, error);
|
|
169
|
+
return null;
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
function determineRiskLevel(healthFactor) {
|
|
173
|
+
if (healthFactor < HEALTH_FACTOR_THRESHOLDS.HIGH_RISK) {
|
|
174
|
+
return "HIGH";
|
|
175
|
+
}
|
|
176
|
+
else if (healthFactor < HEALTH_FACTOR_THRESHOLDS.MEDIUM_RISK) {
|
|
177
|
+
return "MEDIUM";
|
|
178
|
+
}
|
|
179
|
+
else if (healthFactor < HEALTH_FACTOR_THRESHOLDS.LOW_RISK) {
|
|
180
|
+
return "LOW";
|
|
181
|
+
}
|
|
182
|
+
return "LOW"; // Safe
|
|
183
|
+
}
|
|
184
|
+
function convertToCSV(data, headers) {
|
|
185
|
+
const csvHeaders = headers.join(",");
|
|
186
|
+
const csvRows = data.map(row => headers.map(header => {
|
|
187
|
+
const value = row[header];
|
|
188
|
+
// Escape commas and quotes in CSV
|
|
189
|
+
if (typeof value === "string" && (value.includes(",") || value.includes('"'))) {
|
|
190
|
+
return `"${value.replace(/"/g, '""')}"`;
|
|
191
|
+
}
|
|
192
|
+
return value;
|
|
193
|
+
}).join(","));
|
|
194
|
+
return [csvHeaders, ...csvRows].join("\n");
|
|
195
|
+
}
|
|
196
|
+
async function analyzeLendingPositions() {
|
|
197
|
+
console.log("Starting lending position analysis...");
|
|
198
|
+
try {
|
|
199
|
+
// Get all users who have deposited collateral
|
|
200
|
+
console.log("Scanning for users with deposited collateral...");
|
|
201
|
+
const depositedUsers = await getAllDepositedUsers();
|
|
202
|
+
console.log(`Found ${depositedUsers.length} unique positions`);
|
|
203
|
+
// Get position data for each user
|
|
204
|
+
console.log("Fetching position data...");
|
|
205
|
+
const allPositions = [];
|
|
206
|
+
const lowHealthFactorPositions = [];
|
|
207
|
+
for (let i = 0; i < depositedUsers.length; i++) {
|
|
208
|
+
const user = depositedUsers[i];
|
|
209
|
+
console.log(`Processing position ${i + 1}/${depositedUsers.length}: ${user.user} on ${user.adapter}`);
|
|
210
|
+
const positionData = await getPositionData(user.user, user.adapter, user.adapterType, user.tokenId, user.amount);
|
|
211
|
+
if (positionData) {
|
|
212
|
+
allPositions.push(positionData);
|
|
213
|
+
// Check if health factor is below threshold
|
|
214
|
+
const healthFactor = BigInt(positionData.healthFactor);
|
|
215
|
+
if (healthFactor < HEALTH_FACTOR_THRESHOLDS.LOW_RISK) {
|
|
216
|
+
const riskLevel = determineRiskLevel(healthFactor);
|
|
217
|
+
lowHealthFactorPositions.push({
|
|
218
|
+
...positionData,
|
|
219
|
+
riskLevel
|
|
220
|
+
});
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
// Generate CSV files
|
|
225
|
+
console.log("Generating CSV reports...");
|
|
226
|
+
// All positions CSV
|
|
227
|
+
const allPositionsHeaders = [
|
|
228
|
+
"user", "adapter", "adapterType", "asset", "tokenId", "amount",
|
|
229
|
+
"rawDebtBalance", "scaledDebtBalance", "healthFactor", "isUnderLiquidation",
|
|
230
|
+
"liquidationStartTime", "positionIndex", "isInsured", "assetValue"
|
|
231
|
+
];
|
|
232
|
+
const allPositionsCSV = convertToCSV(allPositions, allPositionsHeaders);
|
|
233
|
+
(0, fs_1.writeFileSync)("all_lending_positions.csv", allPositionsCSV);
|
|
234
|
+
console.log(`All positions saved to all_lending_positions.csv (${allPositions.length} positions)`);
|
|
235
|
+
// Low health factor positions CSV
|
|
236
|
+
const lowHealthFactorHeaders = [
|
|
237
|
+
"user", "adapter", "adapterType", "asset", "tokenId", "amount",
|
|
238
|
+
"rawDebtBalance", "scaledDebtBalance", "healthFactor", "isUnderLiquidation",
|
|
239
|
+
"liquidationStartTime", "positionIndex", "isInsured", "assetValue", "riskLevel"
|
|
240
|
+
];
|
|
241
|
+
const lowHealthFactorCSV = convertToCSV(lowHealthFactorPositions, lowHealthFactorHeaders);
|
|
242
|
+
(0, fs_1.writeFileSync)("low_health_factor_positions.csv", lowHealthFactorCSV);
|
|
243
|
+
console.log(`Low health factor positions saved to low_health_factor_positions.csv (${lowHealthFactorPositions.length} positions)`);
|
|
244
|
+
// Print summary
|
|
245
|
+
console.log("\n=== ANALYSIS SUMMARY ===");
|
|
246
|
+
console.log(`Total positions analyzed: ${allPositions.length}`);
|
|
247
|
+
console.log(`Positions with low health factor: ${lowHealthFactorPositions.length}`);
|
|
248
|
+
const highRisk = lowHealthFactorPositions.filter(p => p.riskLevel === "HIGH").length;
|
|
249
|
+
const mediumRisk = lowHealthFactorPositions.filter(p => p.riskLevel === "MEDIUM").length;
|
|
250
|
+
const lowRisk = lowHealthFactorPositions.filter(p => p.riskLevel === "LOW").length;
|
|
251
|
+
console.log(` - High risk (< 1.1): ${highRisk}`);
|
|
252
|
+
console.log(` - Medium risk (< 1.3): ${mediumRisk}`);
|
|
253
|
+
console.log(` - Low risk (< 1.5): ${lowRisk}`);
|
|
254
|
+
// Print details of high-risk positions
|
|
255
|
+
if (highRisk > 0) {
|
|
256
|
+
console.log("\n=== HIGH RISK POSITIONS ===");
|
|
257
|
+
lowHealthFactorPositions
|
|
258
|
+
.filter(p => p.riskLevel === "HIGH")
|
|
259
|
+
.forEach(p => {
|
|
260
|
+
console.log(`User: ${p.user}`);
|
|
261
|
+
console.log(` Adapter: ${p.adapter} (${p.adapterType})`);
|
|
262
|
+
console.log(` Health Factor: ${ethers_1.ethers.formatEther(p.healthFactor)}`);
|
|
263
|
+
console.log(` Debt: ${ethers_1.ethers.formatEther(p.rawDebtBalance)}`);
|
|
264
|
+
console.log(` Asset Value: ${p.assetValue ? ethers_1.ethers.formatEther(p.assetValue) : "N/A"}`);
|
|
265
|
+
console.log(` Under Liquidation: ${p.isUnderLiquidation}`);
|
|
266
|
+
console.log("---");
|
|
267
|
+
});
|
|
268
|
+
}
|
|
269
|
+
console.log("\nAnalysis complete! Check the CSV files for detailed data.");
|
|
270
|
+
}
|
|
271
|
+
catch (error) {
|
|
272
|
+
console.error("Error during analysis:", error);
|
|
273
|
+
throw error;
|
|
274
|
+
}
|
|
275
|
+
}
|
|
276
|
+
// Run the analysis
|
|
277
|
+
analyzeLendingPositions().catch(console.error);
|
|
@@ -0,0 +1,247 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
const ethers_1 = require("ethers");
|
|
40
|
+
const fs = __importStar(require("fs"));
|
|
41
|
+
const csv_parser_1 = __importDefault(require("csv-parser"));
|
|
42
|
+
const RPC_URL = 'https://eth-sepolia.g.alchemy.com/v2/GRu4-s8cjabOCnh-3ZFzapF-MwUcURV_';
|
|
43
|
+
const provider = new ethers_1.ethers.JsonRpcProvider(RPC_URL);
|
|
44
|
+
const TOKEN_CONTRACT_ADDRESS = '0x990c1Aa9162d2c5B51378F86420f1752874e034B';
|
|
45
|
+
const START_BLOCK = 9000000;
|
|
46
|
+
const END_BLOCK = 'latest';
|
|
47
|
+
const BLOCK_RANGE_LIMIT = 500;
|
|
48
|
+
// User to exclude from all calculations
|
|
49
|
+
const EXCLUDED_USER = '0x7FaE0737292cD3B7Dc9067AA30a67C42c205015c'.toLowerCase();
|
|
50
|
+
const ERC20_ABI = [
|
|
51
|
+
'event Transfer(address indexed from, address indexed to, uint256 value)',
|
|
52
|
+
'function balanceOf(address owner) view returns (uint256)'
|
|
53
|
+
];
|
|
54
|
+
async function isEOA(address) {
|
|
55
|
+
const code = await provider.getCode(address);
|
|
56
|
+
return code === '0x';
|
|
57
|
+
}
|
|
58
|
+
async function queryLogsInChunks(contract, filter, startBlock, endBlock) {
|
|
59
|
+
const logs = [];
|
|
60
|
+
let endBlockNumber;
|
|
61
|
+
if (typeof endBlock === 'string' && endBlock === 'latest') {
|
|
62
|
+
endBlockNumber = await provider.getBlockNumber();
|
|
63
|
+
}
|
|
64
|
+
else {
|
|
65
|
+
endBlockNumber = endBlock;
|
|
66
|
+
}
|
|
67
|
+
let currentBlock = startBlock;
|
|
68
|
+
while (currentBlock < endBlockNumber) {
|
|
69
|
+
const chunkEndBlock = Math.min(currentBlock + BLOCK_RANGE_LIMIT - 1, endBlockNumber);
|
|
70
|
+
console.log(`Querying logs from block ${currentBlock} to ${chunkEndBlock}...`);
|
|
71
|
+
try {
|
|
72
|
+
const chunkLogs = await contract.queryFilter(filter, currentBlock, chunkEndBlock);
|
|
73
|
+
logs.push(...chunkLogs);
|
|
74
|
+
console.log(`Found ${chunkLogs.length} logs in this chunk`);
|
|
75
|
+
}
|
|
76
|
+
catch (error) {
|
|
77
|
+
console.error(`Error querying logs from ${currentBlock} to ${chunkEndBlock}:`, error);
|
|
78
|
+
if (chunkEndBlock - currentBlock > 100) {
|
|
79
|
+
console.log('Retrying with smaller block range...');
|
|
80
|
+
const smallerEndBlock = Math.min(currentBlock + 100 - 1, endBlockNumber);
|
|
81
|
+
const smallerChunkLogs = await contract.queryFilter(filter, currentBlock, smallerEndBlock);
|
|
82
|
+
logs.push(...smallerChunkLogs);
|
|
83
|
+
console.log(`Found ${smallerChunkLogs.length} logs in smaller chunk`);
|
|
84
|
+
currentBlock = smallerEndBlock + 1;
|
|
85
|
+
}
|
|
86
|
+
else {
|
|
87
|
+
throw error;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
currentBlock = chunkEndBlock + 1;
|
|
91
|
+
}
|
|
92
|
+
return logs;
|
|
93
|
+
}
|
|
94
|
+
function arrayToCSV(data) {
|
|
95
|
+
if (data.length === 0)
|
|
96
|
+
return '';
|
|
97
|
+
const headers = Object.keys(data[0]);
|
|
98
|
+
const csvRows = [headers.join(',')];
|
|
99
|
+
for (const row of data) {
|
|
100
|
+
const values = headers.map(header => {
|
|
101
|
+
const value = row[header];
|
|
102
|
+
if (typeof value === 'string' && (value.includes(',') || value.includes('"'))) {
|
|
103
|
+
return `"${value.replace(/"/g, '""')}"`;
|
|
104
|
+
}
|
|
105
|
+
return value;
|
|
106
|
+
});
|
|
107
|
+
csvRows.push(values.join(','));
|
|
108
|
+
}
|
|
109
|
+
return csvRows.join('\n');
|
|
110
|
+
}
|
|
111
|
+
async function readUserBalances() {
|
|
112
|
+
return new Promise((resolve, reject) => {
|
|
113
|
+
const users = [];
|
|
114
|
+
fs.createReadStream('user_balances.csv')
|
|
115
|
+
.pipe((0, csv_parser_1.default)())
|
|
116
|
+
.on('data', (row) => {
|
|
117
|
+
users.push(row);
|
|
118
|
+
})
|
|
119
|
+
.on('end', () => {
|
|
120
|
+
console.log(`✅ Loaded ${users.length} users from user_balances.csv`);
|
|
121
|
+
resolve(users);
|
|
122
|
+
})
|
|
123
|
+
.on('error', reject);
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
async function main() {
|
|
127
|
+
// Check if user_balances.csv exists
|
|
128
|
+
if (!fs.existsSync('user_balances.csv')) {
|
|
129
|
+
console.error('❌ user_balances.csv not found. Please run the users.ts script first.');
|
|
130
|
+
return;
|
|
131
|
+
}
|
|
132
|
+
console.log('Loading user data from user_balances.csv...');
|
|
133
|
+
const users = await readUserBalances();
|
|
134
|
+
// Filter out the excluded user
|
|
135
|
+
const filteredUsers = users.filter(user => user.address.toLowerCase() !== EXCLUDED_USER);
|
|
136
|
+
const userAddresses = filteredUsers.map(u => u.address.toLowerCase());
|
|
137
|
+
console.log(`Analyzing transfers for ${userAddresses.length} users (excluded ${users.length - filteredUsers.length} user)...`);
|
|
138
|
+
const token = new ethers_1.ethers.Contract(TOKEN_CONTRACT_ADDRESS, ERC20_ABI, provider);
|
|
139
|
+
console.log('Querying all transfer events...');
|
|
140
|
+
const allTransferEvents = await queryLogsInChunks(token, token.filters.Transfer(), START_BLOCK, END_BLOCK);
|
|
141
|
+
console.log(`Found ${allTransferEvents.length} total transfer events`);
|
|
142
|
+
const eoaTransfers = [];
|
|
143
|
+
const processedTransactions = new Set();
|
|
144
|
+
console.log('Analyzing transfers involving EOAs...');
|
|
145
|
+
for (const event of allTransferEvents) {
|
|
146
|
+
const from = event?.args?.from?.toLowerCase();
|
|
147
|
+
const to = event?.args?.to?.toLowerCase();
|
|
148
|
+
const value = event?.args?.value;
|
|
149
|
+
const blockNumber = event.blockNumber;
|
|
150
|
+
const transactionHash = event.transactionHash;
|
|
151
|
+
// Skip if we've already processed this transaction
|
|
152
|
+
if (processedTransactions.has(transactionHash))
|
|
153
|
+
continue;
|
|
154
|
+
processedTransactions.add(transactionHash);
|
|
155
|
+
// Skip if either from or to is the excluded user
|
|
156
|
+
if (from === EXCLUDED_USER || to === EXCLUDED_USER)
|
|
157
|
+
continue;
|
|
158
|
+
// Check if either from or to is one of our users
|
|
159
|
+
const isFromUser = userAddresses.includes(from);
|
|
160
|
+
const isToUser = userAddresses.includes(to);
|
|
161
|
+
if (isFromUser || isToUser) {
|
|
162
|
+
// Check if the other party is an EOA
|
|
163
|
+
const otherParty = isFromUser ? to : from;
|
|
164
|
+
const isOtherPartyEOA = await isEOA(otherParty);
|
|
165
|
+
if (isOtherPartyEOA) {
|
|
166
|
+
if (isFromUser) {
|
|
167
|
+
// User sent tokens to EOA
|
|
168
|
+
eoaTransfers.push({
|
|
169
|
+
user: from,
|
|
170
|
+
type: 'sent',
|
|
171
|
+
toFrom: to,
|
|
172
|
+
amount: ethers_1.ethers.formatUnits(value, 18),
|
|
173
|
+
blockNumber: blockNumber,
|
|
174
|
+
transactionHash: transactionHash
|
|
175
|
+
});
|
|
176
|
+
}
|
|
177
|
+
else {
|
|
178
|
+
// User received tokens from EOA
|
|
179
|
+
eoaTransfers.push({
|
|
180
|
+
user: to,
|
|
181
|
+
type: 'received',
|
|
182
|
+
toFrom: from,
|
|
183
|
+
amount: ethers_1.ethers.formatUnits(value, 18),
|
|
184
|
+
blockNumber: blockNumber,
|
|
185
|
+
transactionHash: transactionHash
|
|
186
|
+
});
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
console.log(`\n=== USERS WHO TRANSFERRED/RECEIVED TOKENS WITH EOAs ===`);
|
|
192
|
+
console.log(`Found ${eoaTransfers.length} transfers involving EOAs`);
|
|
193
|
+
// Group by user
|
|
194
|
+
const userTransfers = {};
|
|
195
|
+
for (const transfer of eoaTransfers) {
|
|
196
|
+
if (!userTransfers[transfer.user]) {
|
|
197
|
+
userTransfers[transfer.user] = [];
|
|
198
|
+
}
|
|
199
|
+
userTransfers[transfer.user].push(transfer);
|
|
200
|
+
}
|
|
201
|
+
console.log(`\nUsers involved in EOA transfers: ${Object.keys(userTransfers).length}`);
|
|
202
|
+
for (const [user, transfers] of Object.entries(userTransfers)) {
|
|
203
|
+
const userData = filteredUsers.find(u => u.address.toLowerCase() === user);
|
|
204
|
+
console.log(`\nUser: ${user}`);
|
|
205
|
+
console.log(` Mint Count: ${userData?.mintCount || 'N/A'}`);
|
|
206
|
+
console.log(` Current Token Balance: ${userData?.tokenBalance || 'N/A'}`);
|
|
207
|
+
console.log(` Transfers with EOAs:`);
|
|
208
|
+
for (const transfer of transfers) {
|
|
209
|
+
const direction = transfer.type === 'sent' ? '→' : '←';
|
|
210
|
+
console.log(` ${direction} ${transfer.amount} tokens ${transfer.type === 'sent' ? 'to' : 'from'} ${transfer.toFrom} (Block: ${transfer.blockNumber})`);
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
// Save detailed transfer data to CSV
|
|
214
|
+
const transferCSVData = eoaTransfers.map(transfer => ({
|
|
215
|
+
user: transfer.user,
|
|
216
|
+
type: transfer.type,
|
|
217
|
+
toFrom: transfer.toFrom,
|
|
218
|
+
amount: transfer.amount,
|
|
219
|
+
blockNumber: transfer.blockNumber,
|
|
220
|
+
transactionHash: transfer.transactionHash
|
|
221
|
+
}));
|
|
222
|
+
const transferCSV = arrayToCSV(transferCSVData);
|
|
223
|
+
fs.writeFileSync('eoa_transfers.csv', transferCSV);
|
|
224
|
+
console.log('\n✅ Saved detailed transfer data to eoa_transfers.csv');
|
|
225
|
+
// Save summary by user
|
|
226
|
+
const userSummaryData = Object.entries(userTransfers).map(([user, transfers]) => {
|
|
227
|
+
const userData = filteredUsers.find(u => u.address.toLowerCase() === user);
|
|
228
|
+
const sentTransfers = transfers.filter(t => t.type === 'sent');
|
|
229
|
+
const receivedTransfers = transfers.filter(t => t.type === 'received');
|
|
230
|
+
const totalSent = sentTransfers.reduce((sum, t) => sum + parseFloat(t.amount), 0);
|
|
231
|
+
const totalReceived = receivedTransfers.reduce((sum, t) => sum + parseFloat(t.amount), 0);
|
|
232
|
+
return {
|
|
233
|
+
address: user,
|
|
234
|
+
mintCount: userData?.mintCount || '0',
|
|
235
|
+
currentTokenBalance: userData?.tokenBalance || '0',
|
|
236
|
+
totalSentToEOA: totalSent.toString(),
|
|
237
|
+
totalReceivedFromEOA: totalReceived.toString(),
|
|
238
|
+
sentTransactions: sentTransfers.length,
|
|
239
|
+
receivedTransactions: receivedTransfers.length,
|
|
240
|
+
totalTransactions: transfers.length
|
|
241
|
+
};
|
|
242
|
+
});
|
|
243
|
+
const summaryCSV = arrayToCSV(userSummaryData);
|
|
244
|
+
fs.writeFileSync('eoa_transfer_summary.csv', summaryCSV);
|
|
245
|
+
console.log('✅ Saved user summary to eoa_transfer_summary.csv');
|
|
246
|
+
}
|
|
247
|
+
main().catch(console.error);
|