@wireio/stake 0.4.2 → 0.4.69
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +185 -243
- package/lib/stake.browser.js +52382 -10034
- package/lib/stake.browser.js.map +1 -1
- package/lib/stake.d.ts +12552 -964
- package/lib/stake.js +52993 -10538
- package/lib/stake.js.map +1 -1
- package/lib/stake.m.js +52382 -10034
- package/lib/stake.m.js.map +1 -1
- package/package.json +4 -3
- package/src/assets/ethereum/hoodi/common/Base58.sol/Base58.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/common/Base58.sol/Base58.json +164 -0
- package/src/assets/ethereum/hoodi/common/OpenZepArtifacts.sol/__Dummy_OZ_UUPS__.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/common/OpenZepArtifacts.sol/__Dummy_OZ_UUPS__.json +76 -0
- package/src/assets/ethereum/hoodi/common/RestrictedCallers.sol/RestrictedCallers.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/common/RestrictedCallers.sol/RestrictedCallers.json +10 -0
- package/src/assets/ethereum/hoodi/common/iodata.sol/iodata.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/common/iodata.sol/iodata.json +618 -0
- package/src/assets/ethereum/hoodi/common/iodata_util.sol/iodata_util.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/common/iodata_util.sol/iodata_util.json +40 -0
- package/src/assets/ethereum/hoodi/common/sysio_data.sol/sysio_data.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/common/sysio_data.sol/sysio_data.json +10 -0
- package/src/assets/ethereum/hoodi/common/sysio_errors.sol/sysio_errors.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/common/sysio_errors.sol/sysio_errors.json +10 -0
- package/src/assets/ethereum/hoodi/common/sysio_merkle.sol/sysio_merkle.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/common/sysio_merkle.sol/sysio_merkle.json +233 -0
- package/src/assets/ethereum/hoodi/common/sysio_name.sol/sysio_name.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/common/sysio_name.sol/sysio_name.json +49 -0
- package/src/assets/ethereum/hoodi/common/sysio_pubkey.sol/sysio_pubkey.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/common/sysio_pubkey.sol/sysio_pubkey.json +64 -0
- package/src/assets/ethereum/hoodi/common/sysio_read.sol/sysio_read.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/common/sysio_read.sol/sysio_read.json +1458 -0
- package/src/assets/ethereum/hoodi/common/sysio_tester.sol/SysioTester.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/common/sysio_tester.sol/SysioTester.json +1532 -0
- package/src/assets/ethereum/hoodi/common/sysio_verify.sol/sysio_verify.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/common/sysio_verify.sol/sysio_verify.json +1525 -0
- package/src/assets/ethereum/hoodi/common/sysio_write.sol/sysio_write.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/common/sysio_write.sol/sysio_write.json +1076 -0
- package/src/assets/ethereum/hoodi/liqEth/BeaconState.sol/BeaconState.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/liqEth/DepositManager.sol/DepositManagerV2.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/liqEth/DepositManager.sol/DepositManagerV2.json +985 -0
- package/src/assets/ethereum/hoodi/liqEth/LiqEthAuthority.sol/LiqEthAuthority.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/liqEth/LiqEthCommon.sol/IAccounting.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/liqEth/LiqEthCommon.sol/IAccounting.json +182 -0
- package/src/assets/ethereum/hoodi/liqEth/LiqEthCommon.sol/IDepositContract.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/liqEth/LiqEthCommon.sol/IDepositManager.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/liqEth/LiqEthCommon.sol/ILiqEthUpgradeable.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/liqEth/LiqEthCommon.sol/IRewardsERC20.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/liqEth/LiqEthCommon.sol/IRewardsERC20.json +319 -0
- package/src/assets/ethereum/hoodi/liqEth/LiqEthCommon.sol/IRewardsERC20Pausable.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/liqEth/LiqEthCommon.sol/IRewardsERC20Pausable.json +333 -0
- package/src/assets/ethereum/hoodi/liqEth/LiqEthCommon.sol/IStakingModule.dbg.json +4 -0
- package/src/assets/ethereum/{ABI → hoodi}/liqEth/LiqEthCommon.sol/IStakingModule.json +1 -1
- package/src/assets/ethereum/hoodi/liqEth/LiqEthCommon.sol/IValidatorBalanceVerifier.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/liqEth/LiqEthCommon.sol/IWithdrawalRecord.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/liqEth/LiqEthCommon.sol/LiqEthCommon.dbg.json +4 -0
- package/src/assets/ethereum/{ABI → hoodi}/liqEth/LiqEthCommon.sol/LiqEthCommon.json +2 -2
- package/src/assets/ethereum/hoodi/liqEth/LiqEthDeepFreeze.sol/LiqEthDeepFreeze.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/liqEth/LiqEthDeepFreeze.sol/LiqEthDeepFreeze.json +236 -0
- package/src/assets/ethereum/hoodi/liqEth/LiqEthManaged.sol/LiqEthManaged.dbg.json +4 -0
- package/src/assets/ethereum/{ABI → hoodi}/liqEth/LiqEthManaged.sol/LiqEthManaged.json +2 -2
- package/src/assets/ethereum/hoodi/liqEth/RewardsERC20.sol/RewardsERC20UpgradeableV2.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/liqEth/RewardsERC20.sol/RewardsERC20UpgradeableV2.json +957 -0
- package/src/assets/ethereum/hoodi/liqEth/RewardsERC20Pausable.sol/RewardsERC20PausableUpgradeableV2.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/liqEth/RewardsERC20Pausable.sol/RewardsERC20PausableUpgradeableV2.json +1020 -0
- package/src/assets/ethereum/hoodi/liqEth/Yield.sol/YieldOracle.dbg.json +4 -0
- package/src/assets/ethereum/{ABI → hoodi}/liqEth/Yield.sol/YieldOracle.json +2 -2
- package/src/assets/ethereum/hoodi/liqEth/accounting.sol/AccountingV2.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/liqEth/accounting.sol/AccountingV2.json +629 -0
- package/src/assets/ethereum/hoodi/liqEth/liqEth.sol/LiqEthTokenV2.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/liqEth/liqEth.sol/LiqEthTokenV2.json +1323 -0
- package/src/assets/ethereum/hoodi/liqEth/stakingModule.sol/StakingModuleV2.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/liqEth/stakingModule.sol/StakingModuleV2.json +1779 -0
- package/src/assets/ethereum/hoodi/liqEth/v1/DepositManager.sol/DepositManager.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/liqEth/v1/DepositManager.sol/DepositManager.json +978 -0
- package/src/assets/ethereum/hoodi/liqEth/v1/LiqEthCommon.sol/IAccounting.dbg.json +4 -0
- package/src/assets/ethereum/{ABI/liqEth → hoodi/liqEth/v1}/LiqEthCommon.sol/IAccounting.json +1 -1
- package/src/assets/ethereum/hoodi/liqEth/v1/LiqEthCommon.sol/IDepositContract.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/liqEth/v1/LiqEthCommon.sol/IDepositContract.json +39 -0
- package/src/assets/ethereum/hoodi/liqEth/v1/LiqEthCommon.sol/IDepositManager.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/liqEth/v1/LiqEthCommon.sol/IDepositManager.json +64 -0
- package/src/assets/ethereum/hoodi/liqEth/v1/LiqEthCommon.sol/ILiqEthUpgradeable.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/liqEth/v1/LiqEthCommon.sol/ILiqEthUpgradeable.json +29 -0
- package/src/assets/ethereum/hoodi/liqEth/v1/LiqEthCommon.sol/IRewardsERC20.dbg.json +4 -0
- package/src/assets/ethereum/{ABI/liqEth → hoodi/liqEth/v1}/LiqEthCommon.sol/IRewardsERC20.json +1 -1
- package/src/assets/ethereum/hoodi/liqEth/v1/LiqEthCommon.sol/IRewardsERC20Pausable.dbg.json +4 -0
- package/src/assets/ethereum/{ABI/liqEth → hoodi/liqEth/v1}/LiqEthCommon.sol/IRewardsERC20Pausable.json +1 -1
- package/src/assets/ethereum/hoodi/liqEth/v1/LiqEthCommon.sol/IStakingModule.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/liqEth/v1/LiqEthCommon.sol/IStakingModule.json +344 -0
- package/src/assets/ethereum/hoodi/liqEth/v1/LiqEthCommon.sol/IValidatorBalanceVerifier.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/liqEth/v1/LiqEthCommon.sol/IValidatorBalanceVerifier.json +129 -0
- package/src/assets/ethereum/hoodi/liqEth/v1/LiqEthCommon.sol/IWithdrawalRecord.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/liqEth/v1/LiqEthCommon.sol/IWithdrawalRecord.json +66 -0
- package/src/assets/ethereum/hoodi/liqEth/v1/LiqEthCommon.sol/LiqEthCommon.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/liqEth/v1/LiqEthCommon.sol/LiqEthCommon.json +10 -0
- package/src/assets/ethereum/hoodi/liqEth/v1/RewardsERC20.sol/RewardsERC20Upgradeable.dbg.json +4 -0
- package/src/assets/ethereum/{ABI/liqEth → hoodi/liqEth/v1}/RewardsERC20.sol/RewardsERC20Upgradeable.json +1 -1
- package/src/assets/ethereum/hoodi/liqEth/v1/RewardsERC20Pausable.sol/RewardsERC20PausableUpgradeable.dbg.json +4 -0
- package/src/assets/ethereum/{ABI/liqEth → hoodi/liqEth/v1}/RewardsERC20Pausable.sol/RewardsERC20PausableUpgradeable.json +1 -1
- package/src/assets/ethereum/hoodi/liqEth/v1/accounting.sol/Accounting.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/liqEth/v1/accounting.sol/Accounting.json +548 -0
- package/src/assets/ethereum/hoodi/liqEth/v1/liqEth.sol/LiqEthToken.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/liqEth/v1/liqEth.sol/LiqEthToken.json +1233 -0
- package/src/assets/ethereum/hoodi/liqEth/v1/stakingModule.sol/StakingModule.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/liqEth/v1/stakingModule.sol/StakingModule.json +1772 -0
- package/src/assets/ethereum/hoodi/liqEth/withdrawalQueue.sol/WithdrawalQueue.dbg.json +4 -0
- package/src/assets/ethereum/{ABI → hoodi}/liqEth/withdrawalQueue.sol/WithdrawalQueue.json +2 -2
- package/src/assets/ethereum/hoodi/liqEth/withdrawalVault.sol/Uint64BE.dbg.json +4 -0
- package/src/assets/ethereum/{ABI → hoodi}/liqEth/withdrawalVault.sol/Uint64BE.json +2 -2
- package/src/assets/ethereum/hoodi/liqEth/withdrawalVault.sol/WithdrawalVault.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/liqEth/withdrawalVault.sol/WithdrawalVault.json +441 -0
- package/src/assets/ethereum/hoodi/outpost/BAR.sol/BAR.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/outpost/BAR.sol/BAR.json +1111 -0
- package/src/assets/ethereum/hoodi/outpost/Depositor.sol/Depositor.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/outpost/Depositor.sol/Depositor.json +1696 -0
- package/src/assets/ethereum/hoodi/outpost/EthUsdPriceConsumer.sol/AggregatorV3Interface.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/outpost/EthUsdPriceConsumer.sol/EthUsdPriceConsumer.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/outpost/EthUsdPriceConsumer.sol/EthUsdPriceConsumer.json +274 -0
- package/src/assets/ethereum/hoodi/outpost/InstaswapBridgeAttestations.sol/BridgeDepositCodec.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/outpost/InstaswapBridgeAttestations.sol/BridgeDepositCodec.json +10 -0
- package/src/assets/ethereum/hoodi/outpost/InstaswapBridgeAttestations.sol/BridgeWithdrawCodec.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/outpost/InstaswapBridgeAttestations.sol/BridgeWithdrawCodec.json +10 -0
- package/src/assets/ethereum/hoodi/outpost/InstaswapBridgeAttestations.sol/BridgeWithdrawConfirmCodec.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/outpost/InstaswapBridgeAttestations.sol/BridgeWithdrawConfirmCodec.json +10 -0
- package/src/assets/ethereum/hoodi/outpost/InstaswapBridgeAttestations.sol/InstaswapBridgeAttestationTypeLib.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/outpost/InstaswapBridgeAttestations.sol/InstaswapBridgeAttestationTypeLib.json +10 -0
- package/src/assets/ethereum/hoodi/outpost/LiqEthBridge.sol/LiqEthBridge.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/outpost/LiqEthBridge.sol/LiqEthBridge.json +1044 -0
- package/src/assets/ethereum/hoodi/outpost/OPP.sol/OPP.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/outpost/OPP.sol/OPP.json +1055 -0
- package/src/assets/ethereum/hoodi/outpost/OPPCommon.sol/IOPP.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/outpost/OPPCommon.sol/IOPP.json +81 -0
- package/src/assets/ethereum/hoodi/outpost/OPPCommon.sol/IOPPEndpoint.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/outpost/OPPCommon.sol/IOPPInbound.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/outpost/OPPCommon.sol/IOPPInbound.json +330 -0
- package/src/assets/ethereum/hoodi/outpost/OPPCommon.sol/IOPPReceiver.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/outpost/OPPCommon.sol/IOPPReceiver.json +29 -0
- package/src/assets/ethereum/hoodi/outpost/OPPCommon.sol/IOPPSender.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/outpost/OPPCommon.sol/IOPPSender.json +41 -0
- package/src/assets/ethereum/hoodi/outpost/OPPCommon.sol/OPPCommon.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/outpost/OPPCommon.sol/OPPCommon.json +287 -0
- package/src/assets/ethereum/hoodi/outpost/OPPEndpoint.sol/OPPEndpoint.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/outpost/OPPEndpoint.sol/OPPEndpoint.json +294 -0
- package/src/assets/ethereum/hoodi/outpost/OPPEndpointManaged.sol/OPPEndpointManaged.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/outpost/OPPEndpointManaged.sol/OPPEndpointManaged.json +415 -0
- package/src/assets/ethereum/hoodi/outpost/OPPEndpointOwnable.sol/OPPEndpointOwnable.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/outpost/OPPEndpointOwnable.sol/OPPEndpointOwnable.json +399 -0
- package/src/assets/ethereum/hoodi/outpost/OPPErrors.sol/OPPErrors.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/outpost/OPPErrors.sol/OPPErrors.json +245 -0
- package/src/assets/ethereum/hoodi/outpost/OPPInbound.sol/OPPInbound.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/outpost/OPPInbound.sol/OPPInbound.json +1204 -0
- package/src/assets/ethereum/hoodi/outpost/OPPReceiver.sol/OPPReceiver.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/outpost/OPPReceiver.sol/OPPReceiver.json +312 -0
- package/src/assets/ethereum/hoodi/outpost/OPPSender.sol/OPPSender.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/outpost/OPPSender.sol/OPPSender.json +324 -0
- package/src/assets/ethereum/hoodi/outpost/OperatorRegistry.sol/OperatorRegistry.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/outpost/OperatorRegistry.sol/OperatorRegistry.json +1068 -0
- package/src/assets/ethereum/hoodi/outpost/OutpostErrors.sol/OutpostErrors.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/outpost/OutpostErrors.sol/OutpostErrors.json +211 -0
- package/src/assets/ethereum/hoodi/outpost/OutpostManaged.sol/OutpostManaged.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/outpost/OutpostManaged.sol/OutpostManaged.json +229 -0
- package/src/assets/ethereum/hoodi/outpost/OutpostManager.sol/OutpostManager.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/outpost/OutpostManager.sol/OutpostManager.json +751 -0
- package/src/assets/ethereum/hoodi/outpost/OutpostManagerAuthority.sol/OutpostManagerAuthority.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/outpost/OutpostManagerAuthority.sol/OutpostManagerAuthority.json +1432 -0
- package/src/assets/ethereum/hoodi/outpost/OutpostManagerCommon.sol/IOutpostManager.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/outpost/OutpostManagerCommon.sol/IOutpostManager.json +130 -0
- package/src/assets/ethereum/hoodi/outpost/OutpostManagerCommon.sol/IOutpostUpgradeable.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/outpost/OutpostManagerCommon.sol/OutpostManagerCommon.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/outpost/OutpostManagerCommon.sol/OutpostManagerCommon.json +141 -0
- package/src/assets/ethereum/hoodi/outpost/OutpostOwnable.sol/OutpostOwnable.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/outpost/OutpostOwnable.sol/OutpostOwnable.json +213 -0
- package/src/assets/ethereum/hoodi/outpost/OutpostReserve.sol/OutpostReserve.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/outpost/OutpostReserve.sol/OutpostReserve.json +888 -0
- package/src/assets/ethereum/hoodi/outpost/Pool.sol/Pool.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/outpost/Pool.sol/Pool.json +659 -0
- package/src/assets/ethereum/hoodi/outpost/Pretoken.sol/Pretoken.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/outpost/Pretoken.sol/Pretoken.json +1393 -0
- package/src/assets/ethereum/hoodi/outpost/ReceiptNFT.sol/ReceiptNFT.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/outpost/ReceiptNFT.sol/ReceiptNFT.json +1738 -0
- package/src/assets/ethereum/hoodi/outpost/WireYieldHubAttestations.sol/InstaswapConfirmCodec.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/outpost/WireYieldHubAttestations.sol/InstaswapConfirmCodec.json +10 -0
- package/src/assets/ethereum/hoodi/outpost/WireYieldHubAttestations.sol/InstaswapFailedCodec.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/outpost/WireYieldHubAttestations.sol/InstaswapFailedCodec.json +10 -0
- package/src/assets/ethereum/hoodi/outpost/WireYieldHubAttestations.sol/InstaswapRequestCodec.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/outpost/WireYieldHubAttestations.sol/InstaswapRequestCodec.json +10 -0
- package/src/assets/ethereum/hoodi/outpost/WireYieldHubAttestations.sol/InstaswapSettlementCodec.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/outpost/WireYieldHubAttestations.sol/InstaswapSettlementCodec.json +10 -0
- package/src/assets/ethereum/hoodi/outpost/WireYieldHubAttestations.sol/PrincipalExitConfirmCodec.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/outpost/WireYieldHubAttestations.sol/PrincipalExitConfirmCodec.json +10 -0
- package/src/assets/ethereum/hoodi/outpost/WireYieldHubAttestations.sol/PrincipalExitFailedCodec.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/outpost/WireYieldHubAttestations.sol/PrincipalExitFailedCodec.json +10 -0
- package/src/assets/ethereum/hoodi/outpost/WireYieldHubAttestations.sol/PrincipalExitRequestCodec.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/outpost/WireYieldHubAttestations.sol/PrincipalExitRequestCodec.json +10 -0
- package/src/assets/ethereum/hoodi/outpost/WireYieldHubAttestations.sol/PrincipalStakeDeltaCodec.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/outpost/WireYieldHubAttestations.sol/PrincipalStakeDeltaCodec.json +10 -0
- package/src/assets/ethereum/hoodi/outpost/WireYieldHubAttestations.sol/WireYieldHubAssetCodec.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/outpost/WireYieldHubAttestations.sol/WireYieldHubAssetCodec.json +10 -0
- package/src/assets/ethereum/hoodi/outpost/WireYieldHubAttestations.sol/WireYieldHubAttestationTypeLib.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/outpost/WireYieldHubAttestations.sol/WireYieldHubAttestationTypeLib.json +10 -0
- package/src/assets/ethereum/hoodi/outpost/WireYieldHubAttestations.sol/WireYieldHubAttestations.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/outpost/WireYieldHubAttestations.sol/WireYieldHubAttestations.json +1437 -0
- package/src/assets/ethereum/hoodi/outpost/WireYieldHubAttestations.sol/YieldDepositCodec.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/outpost/WireYieldHubAttestations.sol/YieldDepositCodec.json +10 -0
- package/src/assets/ethereum/hoodi/outpost/interfaces/IPretoken.sol/IPretoken.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/outpost/interfaces/IWarrant.sol/IWarrant.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/outpost/token/ERC721EthEquivalentVotesUpgradeable.sol/ERC721EthEquivalentVotesUpgradeable.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/outpost/token/IERC721EthEquivalent.sol/IERC721EthEquivalent.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/token/ERC1155Token.sol/ERC1155Token.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/token/ERC1155Token.sol/ERC1155Token.json +472 -0
- package/src/assets/ethereum/hoodi/token/ERC20Token.sol/ERC20Token.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/token/ERC20Token.sol/ERC20Token.json +330 -0
- package/src/assets/ethereum/hoodi/token/ERC721Token.sol/ERC721Token.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/token/ERC721Token.sol/ERC721Token.json +449 -0
- package/src/assets/ethereum/hoodi/token/Eman1155.sol/Eman1155.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/token/Eman1155.sol/Eman1155.json +560 -0
- package/src/assets/ethereum/hoodi/token/Eman20.sol/Eman20.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/token/Eman20.sol/Eman20.json +460 -0
- package/src/assets/ethereum/hoodi/token/Eman721.sol/Eman721.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/token/Eman721.sol/Eman721.json +624 -0
- package/src/assets/ethereum/mainnet/common/Base58.sol/Base58.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/common/Base58.sol/Base58.json +164 -0
- package/src/assets/ethereum/mainnet/common/OpenZepArtifacts.sol/__Dummy_OZ_UUPS__.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/common/OpenZepArtifacts.sol/__Dummy_OZ_UUPS__.json +76 -0
- package/src/assets/ethereum/mainnet/common/RestrictedCallers.sol/RestrictedCallers.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/common/RestrictedCallers.sol/RestrictedCallers.json +10 -0
- package/src/assets/ethereum/mainnet/common/iodata.sol/iodata.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/common/iodata.sol/iodata.json +618 -0
- package/src/assets/ethereum/mainnet/common/iodata_util.sol/iodata_util.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/common/iodata_util.sol/iodata_util.json +40 -0
- package/src/assets/ethereum/mainnet/common/sysio_data.sol/sysio_data.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/common/sysio_data.sol/sysio_data.json +10 -0
- package/src/assets/ethereum/mainnet/common/sysio_errors.sol/sysio_errors.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/common/sysio_errors.sol/sysio_errors.json +10 -0
- package/src/assets/ethereum/mainnet/common/sysio_merkle.sol/sysio_merkle.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/common/sysio_merkle.sol/sysio_merkle.json +233 -0
- package/src/assets/ethereum/mainnet/common/sysio_name.sol/sysio_name.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/common/sysio_name.sol/sysio_name.json +49 -0
- package/src/assets/ethereum/mainnet/common/sysio_pubkey.sol/sysio_pubkey.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/common/sysio_pubkey.sol/sysio_pubkey.json +64 -0
- package/src/assets/ethereum/mainnet/common/sysio_read.sol/sysio_read.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/common/sysio_read.sol/sysio_read.json +1458 -0
- package/src/assets/ethereum/mainnet/common/sysio_tester.sol/SysioTester.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/common/sysio_tester.sol/SysioTester.json +1532 -0
- package/src/assets/ethereum/mainnet/common/sysio_verify.sol/sysio_verify.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/common/sysio_verify.sol/sysio_verify.json +1525 -0
- package/src/assets/ethereum/mainnet/common/sysio_write.sol/sysio_write.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/common/sysio_write.sol/sysio_write.json +1076 -0
- package/src/assets/ethereum/mainnet/liqEth/BeaconState.sol/BeaconState.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/liqEth/BeaconState.sol/BeaconState.json +807 -0
- package/src/assets/ethereum/mainnet/liqEth/DepositManager.sol/DepositManagerV2.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/liqEth/DepositManager.sol/DepositManagerV2.json +1004 -0
- package/src/assets/ethereum/mainnet/liqEth/DepositManager.sol/IStakingModuleBondLocker.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/liqEth/DepositManager.sol/IStakingModuleBondLocker.json +29 -0
- package/src/assets/ethereum/mainnet/liqEth/KeyBondManager.sol/KeyBondManager.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/liqEth/KeyBondManager.sol/KeyBondManager.json +897 -0
- package/src/assets/ethereum/mainnet/liqEth/LiqEthAuthority.sol/LiqEthAuthority.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/liqEth/LiqEthAuthority.sol/LiqEthAuthority.json +1289 -0
- package/src/assets/ethereum/mainnet/liqEth/LiqEthCommon.sol/IDepositContract.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/liqEth/LiqEthCommon.sol/IDepositContract.json +39 -0
- package/src/assets/ethereum/mainnet/liqEth/LiqEthCommon.sol/IDepositManager.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/liqEth/LiqEthCommon.sol/IDepositManager.json +64 -0
- package/src/assets/ethereum/mainnet/liqEth/LiqEthCommon.sol/IKeyBondManager.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/liqEth/LiqEthCommon.sol/IKeyBondManager.json +189 -0
- package/src/assets/ethereum/mainnet/liqEth/LiqEthCommon.sol/ILiqEthUpgradeable.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/liqEth/LiqEthCommon.sol/ILiqEthUpgradeable.json +29 -0
- package/src/assets/ethereum/mainnet/liqEth/LiqEthCommon.sol/IRewardsERC20.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/liqEth/LiqEthCommon.sol/IRewardsERC20.json +319 -0
- package/src/assets/ethereum/mainnet/liqEth/LiqEthCommon.sol/IRewardsERC20Pausable.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/liqEth/LiqEthCommon.sol/IRewardsERC20Pausable.json +333 -0
- package/src/assets/ethereum/mainnet/liqEth/LiqEthCommon.sol/IStakingModule.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/liqEth/LiqEthCommon.sol/IStakingModule.json +279 -0
- package/src/assets/ethereum/mainnet/liqEth/LiqEthCommon.sol/IValidatorBalanceVerifier.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/liqEth/LiqEthCommon.sol/IValidatorBalanceVerifier.json +129 -0
- package/src/assets/ethereum/mainnet/liqEth/LiqEthCommon.sol/IWithdrawalRecord.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/liqEth/LiqEthCommon.sol/IWithdrawalRecord.json +66 -0
- package/src/assets/ethereum/mainnet/liqEth/LiqEthCommon.sol/LiqEthCommon.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/liqEth/LiqEthCommon.sol/LiqEthCommon.json +10 -0
- package/src/assets/ethereum/mainnet/liqEth/LiqEthDeepFreeze.sol/LiqEthDeepFreeze.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/liqEth/LiqEthDeepFreeze.sol/LiqEthDeepFreeze.json +236 -0
- package/src/assets/ethereum/mainnet/liqEth/LiqEthManaged.sol/LiqEthManaged.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/liqEth/LiqEthManaged.sol/LiqEthManaged.json +229 -0
- package/src/assets/ethereum/mainnet/liqEth/RewardsERC20.sol/RewardsERC20UpgradeableV2.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/liqEth/RewardsERC20.sol/RewardsERC20UpgradeableV2.json +957 -0
- package/src/assets/ethereum/mainnet/liqEth/RewardsERC20Pausable.sol/RewardsERC20PausableUpgradeableV2.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/liqEth/RewardsERC20Pausable.sol/RewardsERC20PausableUpgradeableV2.json +1020 -0
- package/src/assets/ethereum/mainnet/liqEth/StakingLib.sol/StakingLib.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/liqEth/StakingLib.sol/StakingLib.json +89 -0
- package/src/assets/ethereum/mainnet/liqEth/Yield.sol/YieldOracle.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/liqEth/Yield.sol/YieldOracle.json +1376 -0
- package/src/assets/ethereum/mainnet/liqEth/liqEth.sol/LiqEthTokenV2.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/liqEth/liqEth.sol/LiqEthTokenV2.json +1323 -0
- package/src/assets/ethereum/mainnet/liqEth/stakingModule.sol/StakingModuleV2.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/liqEth/stakingModule.sol/StakingModuleV2.json +1896 -0
- package/src/assets/ethereum/mainnet/liqEth/v1/DepositManager.sol/DepositManager.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/liqEth/v1/DepositManager.sol/DepositManager.json +978 -0
- package/src/assets/ethereum/mainnet/liqEth/v1/LiqEthCommon.sol/IAccounting.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/liqEth/v1/LiqEthCommon.sol/IAccounting.json +176 -0
- package/src/assets/ethereum/mainnet/liqEth/v1/LiqEthCommon.sol/IDepositContract.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/liqEth/v1/LiqEthCommon.sol/IDepositContract.json +39 -0
- package/src/assets/ethereum/mainnet/liqEth/v1/LiqEthCommon.sol/IDepositManager.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/liqEth/v1/LiqEthCommon.sol/IDepositManager.json +64 -0
- package/src/assets/ethereum/mainnet/liqEth/v1/LiqEthCommon.sol/ILiqEthUpgradeable.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/liqEth/v1/LiqEthCommon.sol/ILiqEthUpgradeable.json +29 -0
- package/src/assets/ethereum/mainnet/liqEth/v1/LiqEthCommon.sol/IRewardsERC20.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/liqEth/v1/LiqEthCommon.sol/IRewardsERC20.json +249 -0
- package/src/assets/ethereum/mainnet/liqEth/v1/LiqEthCommon.sol/IRewardsERC20Pausable.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/liqEth/v1/LiqEthCommon.sol/IRewardsERC20Pausable.json +263 -0
- package/src/assets/ethereum/mainnet/liqEth/v1/LiqEthCommon.sol/IStakingModule.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/liqEth/v1/LiqEthCommon.sol/IStakingModule.json +344 -0
- package/src/assets/ethereum/mainnet/liqEth/v1/LiqEthCommon.sol/IValidatorBalanceVerifier.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/liqEth/v1/LiqEthCommon.sol/IValidatorBalanceVerifier.json +129 -0
- package/src/assets/ethereum/mainnet/liqEth/v1/LiqEthCommon.sol/IWithdrawalRecord.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/liqEth/v1/LiqEthCommon.sol/IWithdrawalRecord.json +66 -0
- package/src/assets/ethereum/mainnet/liqEth/v1/LiqEthCommon.sol/LiqEthCommon.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/liqEth/v1/LiqEthCommon.sol/LiqEthCommon.json +10 -0
- package/src/assets/ethereum/mainnet/liqEth/v1/RewardsERC20.sol/RewardsERC20Upgradeable.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/liqEth/v1/RewardsERC20.sol/RewardsERC20Upgradeable.json +874 -0
- package/src/assets/ethereum/mainnet/liqEth/v1/RewardsERC20Pausable.sol/RewardsERC20PausableUpgradeable.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/liqEth/v1/RewardsERC20Pausable.sol/RewardsERC20PausableUpgradeable.json +937 -0
- package/src/assets/ethereum/mainnet/liqEth/v1/accounting.sol/Accounting.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/liqEth/v1/accounting.sol/Accounting.json +542 -0
- package/src/assets/ethereum/mainnet/liqEth/v1/liqEth.sol/LiqEthToken.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/liqEth/v1/liqEth.sol/LiqEthToken.json +1233 -0
- package/src/assets/ethereum/mainnet/liqEth/v1/stakingModule.sol/StakingModule.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/liqEth/v1/stakingModule.sol/StakingModule.json +1772 -0
- package/src/assets/ethereum/mainnet/liqEth/withdrawalQueue.sol/WithdrawalQueue.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/liqEth/withdrawalQueue.sol/WithdrawalQueue.json +973 -0
- package/src/assets/ethereum/mainnet/liqEth/withdrawalVault.sol/Uint64BE.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/liqEth/withdrawalVault.sol/Uint64BE.json +10 -0
- package/src/assets/ethereum/mainnet/liqEth/withdrawalVault.sol/WithdrawalVault.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/liqEth/withdrawalVault.sol/WithdrawalVault.json +441 -0
- package/src/assets/ethereum/mainnet/outpost/BAR.sol/BARV2.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/outpost/BAR.sol/BARV2.json +1915 -0
- package/src/assets/ethereum/mainnet/outpost/Depositor.sol/DepositorV2.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/outpost/Depositor.sol/DepositorV2.json +1845 -0
- package/src/assets/ethereum/mainnet/outpost/EthUsdPriceConsumer.sol/AggregatorV3Interface.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/outpost/EthUsdPriceConsumer.sol/AggregatorV3Interface.json +122 -0
- package/src/assets/ethereum/mainnet/outpost/EthUsdPriceConsumer.sol/EthUsdPriceConsumer.dbg.json +4 -0
- package/src/assets/ethereum/{ABI → mainnet}/outpost/EthUsdPriceConsumer.sol/EthUsdPriceConsumer.json +31 -29
- package/src/assets/ethereum/mainnet/outpost/OPP.sol/OPP.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/outpost/OPPCommon.sol/IOPP.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/outpost/OPPCommon.sol/IOPPEndpoint.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/outpost/OPPCommon.sol/IOPPEndpoint.json +29 -0
- package/src/assets/ethereum/mainnet/outpost/OPPCommon.sol/IOPPInbound.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/outpost/OPPCommon.sol/IOPPReceiver.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/outpost/OPPCommon.sol/IOPPSender.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/outpost/OPPCommon.sol/OPPCommon.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/outpost/OPPEndpoint.sol/OPPEndpoint.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/outpost/OPPEndpointManaged.sol/OPPEndpointManaged.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/outpost/OPPEndpointOwnable.sol/OPPEndpointOwnable.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/outpost/OPPErrors.sol/OPPErrors.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/outpost/OPPInbound.sol/OPPInbound.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/outpost/OPPReceiver.sol/OPPReceiver.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/outpost/OPPSender.sol/OPPSender.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/outpost/OutpostErrors.sol/OutpostErrors.dbg.json +4 -0
- package/src/assets/ethereum/{ABI → mainnet}/outpost/OutpostErrors.sol/OutpostErrors.json +33 -18
- package/src/assets/ethereum/mainnet/outpost/OutpostManaged.sol/OutpostManaged.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/outpost/OutpostManager.sol/OutpostManagerV2.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/outpost/OutpostManager.sol/OutpostManagerV2.json +737 -0
- package/src/assets/ethereum/mainnet/outpost/OutpostManagerAuthority.sol/OutpostManagerAuthority.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/outpost/OutpostManagerCommon.sol/IOutpostManager.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/outpost/OutpostManagerCommon.sol/IOutpostUpgradeable.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/outpost/OutpostManagerCommon.sol/IOutpostUpgradeable.json +29 -0
- package/src/assets/ethereum/mainnet/outpost/OutpostManagerCommon.sol/OutpostManagerCommon.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/outpost/OutpostOwnable.sol/OutpostOwnable.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/outpost/Pool.sol/PoolV2.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/outpost/Pool.sol/PoolV2.json +943 -0
- package/src/assets/ethereum/mainnet/outpost/Pretoken.sol/PretokenV2.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/outpost/Pretoken.sol/PretokenV2.json +1703 -0
- package/src/assets/ethereum/mainnet/outpost/ReceiptNFT.sol/ReceiptNFT.dbg.json +4 -0
- package/src/assets/ethereum/{ABI → mainnet}/outpost/ReceiptNFT.sol/ReceiptNFT.json +33 -18
- package/src/assets/ethereum/mainnet/outpost/interfaces/IPretoken.sol/IPretoken.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/outpost/interfaces/IPretoken.sol/IPretoken.json +29 -0
- package/src/assets/ethereum/mainnet/outpost/interfaces/IWarrant.sol/IWarrant.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/outpost/interfaces/IWarrant.sol/IWarrant.json +29 -0
- package/src/assets/ethereum/mainnet/outpost/token/ERC721EthEquivalentVotesUpgradeable.sol/ERC721EthEquivalentVotesUpgradeable.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/outpost/token/ERC721EthEquivalentVotesUpgradeable.sol/ERC721EthEquivalentVotesUpgradeable.json +858 -0
- package/src/assets/ethereum/mainnet/outpost/token/IERC721EthEquivalent.sol/IERC721EthEquivalent.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/outpost/token/IERC721EthEquivalent.sol/IERC721EthEquivalent.json +30 -0
- package/src/assets/ethereum/mainnet/outpost/v1/BAR.sol/BAR.dbg.json +4 -0
- package/src/assets/ethereum/{ABI/outpost → mainnet/outpost/v1}/BAR.sol/BAR.json +34 -19
- package/src/assets/ethereum/mainnet/outpost/v1/Depositor.sol/Depositor.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/outpost/v1/Depositor.sol/Depositor.json +1653 -0
- package/src/assets/ethereum/mainnet/outpost/v1/OutpostManager.sol/OutpostManager.dbg.json +4 -0
- package/src/assets/ethereum/{ABI/outpost → mainnet/outpost/v1}/OutpostManager.sol/OutpostManager.json +3 -3
- package/src/assets/ethereum/mainnet/outpost/v1/Pool.sol/Pool.dbg.json +4 -0
- package/src/assets/ethereum/{ABI/outpost → mainnet/outpost/v1}/Pool.sol/Pool.json +34 -19
- package/src/assets/ethereum/mainnet/outpost/v1/Pretoken.sol/Pretoken.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/outpost/v1/Pretoken.sol/Pretoken.json +1665 -0
- package/src/assets/ethereum/mainnet/token/ERC1155Token.sol/ERC1155Token.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/token/ERC1155Token.sol/ERC1155Token.json +472 -0
- package/src/assets/ethereum/mainnet/token/ERC20Token.sol/ERC20Token.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/token/ERC20Token.sol/ERC20Token.json +330 -0
- package/src/assets/ethereum/mainnet/token/ERC721Token.sol/ERC721Token.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/token/ERC721Token.sol/ERC721Token.json +449 -0
- package/src/assets/solana/devnet/idl/liqsol_core.json +8566 -0
- package/src/assets/solana/{idl → devnet/idl}/liqsol_token.json +35 -1
- package/src/assets/solana/devnet/idl/transfer_hook.json +490 -0
- package/src/assets/solana/{idl → devnet/idl}/validator_leaderboard.json +19 -1
- package/src/assets/solana/devnet/types/liqsol_core.ts +8572 -0
- package/src/assets/solana/{types → devnet/types}/liqsol_token.ts +35 -1
- package/src/assets/solana/devnet/types/transfer_hook.ts +496 -0
- package/src/assets/solana/{types → devnet/types}/validator_leaderboard.ts +19 -1
- package/src/assets/solana/{idl → mainnet/idl}/liqsol_core.json +1466 -657
- package/src/assets/solana/mainnet/idl/liqsol_token.json +217 -0
- package/src/assets/solana/mainnet/idl/transfer_hook.json +479 -0
- package/src/assets/solana/mainnet/idl/validator_leaderboard.json +574 -0
- package/src/assets/solana/{types → mainnet/types}/liqsol_core.ts +1466 -657
- package/src/assets/solana/mainnet/types/liqsol_token.ts +223 -0
- package/src/assets/solana/mainnet/types/transfer_hook.ts +485 -0
- package/src/assets/solana/mainnet/types/validator_leaderboard.ts +580 -0
- package/src/assets/solana/realdevnet/idl/liqsol_core.json +7112 -0
- package/src/assets/solana/realdevnet/idl/liqsol_token.json +217 -0
- package/src/assets/solana/realdevnet/idl/transfer_hook.json +479 -0
- package/src/assets/solana/realdevnet/idl/validator_leaderboard.json +735 -0
- package/src/assets/solana/realdevnet/types/liqsol_core.ts +7118 -0
- package/src/assets/solana/realdevnet/types/liqsol_token.ts +223 -0
- package/src/assets/solana/realdevnet/types/transfer_hook.ts +485 -0
- package/src/assets/solana/realdevnet/types/validator_leaderboard.ts +741 -0
- package/src/index.ts +2 -2
- package/src/networks/ethereum/clients/convert.client.ts +32 -3
- package/src/networks/ethereum/clients/opp.client.ts +20 -21
- package/src/networks/ethereum/clients/pretoken.client.ts +8 -9
- package/src/networks/ethereum/clients/receipt.client.ts +93 -23
- package/src/networks/ethereum/clients/stake.client.ts +86 -14
- package/src/networks/ethereum/clients/validator.client.ts +61 -0
- package/src/networks/ethereum/contract.ts +425 -153
- package/src/networks/ethereum/ethereum.ts +378 -163
- package/src/networks/ethereum/types.ts +65 -28
- package/src/networks/ethereum/utils.ts +104 -72
- package/src/networks/solana/clients/convert.client.ts +341 -0
- package/src/networks/solana/clients/distribution.client.ts +245 -20
- package/src/networks/solana/clients/leaderboard.client.ts +10 -13
- package/src/networks/solana/clients/outpost.client.ts +93 -55
- package/src/networks/solana/clients/token.client.ts +20 -15
- package/src/networks/solana/constants.ts +59 -277
- package/src/networks/solana/program.ts +446 -28
- package/src/networks/solana/solana.ts +917 -281
- package/src/networks/solana/types.ts +173 -24
- package/src/networks/solana/utils.ts +125 -339
- package/src/staker.ts +25 -4
- package/src/types.ts +113 -27
- package/src/assets/ethereum/ABI/liqEth/BeaconState.sol/BeaconState.dbg.json +0 -4
- package/src/assets/ethereum/ABI/liqEth/DepositManager.sol/DepositManager.dbg.json +0 -4
- package/src/assets/ethereum/ABI/liqEth/DepositManager.sol/DepositManager.json +0 -952
- package/src/assets/ethereum/ABI/liqEth/LiqEthAuthority.sol/LiqEthAuthority.dbg.json +0 -4
- package/src/assets/ethereum/ABI/liqEth/LiqEthCommon.sol/IAccounting.dbg.json +0 -4
- package/src/assets/ethereum/ABI/liqEth/LiqEthCommon.sol/IDepositContract.dbg.json +0 -4
- package/src/assets/ethereum/ABI/liqEth/LiqEthCommon.sol/IDepositManager.dbg.json +0 -4
- package/src/assets/ethereum/ABI/liqEth/LiqEthCommon.sol/ILiqEthUpgradeable.dbg.json +0 -4
- package/src/assets/ethereum/ABI/liqEth/LiqEthCommon.sol/IRewardsERC20.dbg.json +0 -4
- package/src/assets/ethereum/ABI/liqEth/LiqEthCommon.sol/IRewardsERC20Pausable.dbg.json +0 -4
- package/src/assets/ethereum/ABI/liqEth/LiqEthCommon.sol/IStakingModule.dbg.json +0 -4
- package/src/assets/ethereum/ABI/liqEth/LiqEthCommon.sol/IValidatorBalanceVerifier.dbg.json +0 -4
- package/src/assets/ethereum/ABI/liqEth/LiqEthCommon.sol/IWithdrawalRecord.dbg.json +0 -4
- package/src/assets/ethereum/ABI/liqEth/LiqEthCommon.sol/LiqEthCommon.dbg.json +0 -4
- package/src/assets/ethereum/ABI/liqEth/LiqEthManaged.sol/LiqEthManaged.dbg.json +0 -4
- package/src/assets/ethereum/ABI/liqEth/RewardsERC20.sol/RewardsERC20Upgradeable.dbg.json +0 -4
- package/src/assets/ethereum/ABI/liqEth/RewardsERC20Pausable.sol/RewardsERC20PausableUpgradeable.dbg.json +0 -4
- package/src/assets/ethereum/ABI/liqEth/ValidatorBalanceVerifier.sol/BeaconRoots.dbg.json +0 -4
- package/src/assets/ethereum/ABI/liqEth/ValidatorBalanceVerifier.sol/BeaconRoots.json +0 -10
- package/src/assets/ethereum/ABI/liqEth/ValidatorBalanceVerifier.sol/SSZ.dbg.json +0 -4
- package/src/assets/ethereum/ABI/liqEth/ValidatorBalanceVerifier.sol/SSZ.json +0 -10
- package/src/assets/ethereum/ABI/liqEth/ValidatorBalanceVerifier.sol/SSZExtras.dbg.json +0 -4
- package/src/assets/ethereum/ABI/liqEth/ValidatorBalanceVerifier.sol/SSZExtras.json +0 -10
- package/src/assets/ethereum/ABI/liqEth/ValidatorBalanceVerifier.sol/SSZVec48.dbg.json +0 -4
- package/src/assets/ethereum/ABI/liqEth/ValidatorBalanceVerifier.sol/SSZVec48.json +0 -10
- package/src/assets/ethereum/ABI/liqEth/ValidatorBalanceVerifier.sol/ValidatorBalanceVerifier.dbg.json +0 -4
- package/src/assets/ethereum/ABI/liqEth/ValidatorBalanceVerifier.sol/ValidatorBalanceVerifier.json +0 -291
- package/src/assets/ethereum/ABI/liqEth/Yield.sol/YieldOracle.dbg.json +0 -4
- package/src/assets/ethereum/ABI/liqEth/accounting.sol/Accounting.dbg.json +0 -4
- package/src/assets/ethereum/ABI/liqEth/accounting.sol/Accounting.json +0 -555
- package/src/assets/ethereum/ABI/liqEth/liqEth.sol/LiqEthToken.dbg.json +0 -4
- package/src/assets/ethereum/ABI/liqEth/liqEth.sol/LiqEthToken.json +0 -1202
- package/src/assets/ethereum/ABI/liqEth/stakingModule.sol/StakingModule.dbg.json +0 -4
- package/src/assets/ethereum/ABI/liqEth/stakingModule.sol/StakingModule.json +0 -1791
- package/src/assets/ethereum/ABI/liqEth/withdrawalQueue.sol/WithdrawalQueue.dbg.json +0 -4
- package/src/assets/ethereum/ABI/liqEth/withdrawalVault.sol/Uint64BE.dbg.json +0 -4
- package/src/assets/ethereum/ABI/liqEth/withdrawalVault.sol/WithdrawalVault.dbg.json +0 -4
- package/src/assets/ethereum/ABI/liqEth/withdrawalVault.sol/WithdrawalVault.json +0 -460
- package/src/assets/ethereum/ABI/outpost/Aggregator.sol/Aggregator.json +0 -82
- package/src/assets/ethereum/ABI/outpost/BAR.sol/BAR.dbg.json +0 -4
- package/src/assets/ethereum/ABI/outpost/Depositor.sol/Depositor.dbg.json +0 -4
- package/src/assets/ethereum/ABI/outpost/Depositor.sol/Depositor.json +0 -1638
- package/src/assets/ethereum/ABI/outpost/EthUsdPriceConsumer.sol/AggregatorV3Interface.dbg.json +0 -4
- package/src/assets/ethereum/ABI/outpost/EthUsdPriceConsumer.sol/EthUsdPriceConsumer.dbg.json +0 -4
- package/src/assets/ethereum/ABI/outpost/OPP.sol/OPP.dbg.json +0 -4
- package/src/assets/ethereum/ABI/outpost/OPPCommon.sol/IOPP.dbg.json +0 -4
- package/src/assets/ethereum/ABI/outpost/OPPCommon.sol/IOPPEndpoint.dbg.json +0 -4
- package/src/assets/ethereum/ABI/outpost/OPPCommon.sol/IOPPInbound.dbg.json +0 -4
- package/src/assets/ethereum/ABI/outpost/OPPCommon.sol/IOPPReceiver.dbg.json +0 -4
- package/src/assets/ethereum/ABI/outpost/OPPCommon.sol/IOPPSender.dbg.json +0 -4
- package/src/assets/ethereum/ABI/outpost/OPPCommon.sol/OPPCommon.dbg.json +0 -4
- package/src/assets/ethereum/ABI/outpost/OPPEndpoint.sol/OPPEndpoint.dbg.json +0 -4
- package/src/assets/ethereum/ABI/outpost/OPPEndpointManaged.sol/OPPEndpointManaged.dbg.json +0 -4
- package/src/assets/ethereum/ABI/outpost/OPPEndpointOwnable.sol/OPPEndpointOwnable.dbg.json +0 -4
- package/src/assets/ethereum/ABI/outpost/OPPErrors.sol/OPPErrors.dbg.json +0 -4
- package/src/assets/ethereum/ABI/outpost/OPPInbound.sol/OPPInbound.dbg.json +0 -4
- package/src/assets/ethereum/ABI/outpost/OPPReceiver.sol/OPPReceiver.dbg.json +0 -4
- package/src/assets/ethereum/ABI/outpost/OPPSender.sol/OPPSender.dbg.json +0 -4
- package/src/assets/ethereum/ABI/outpost/OutpostErrors.sol/OutpostErrors.dbg.json +0 -4
- package/src/assets/ethereum/ABI/outpost/OutpostManaged.sol/OutpostManaged.dbg.json +0 -4
- package/src/assets/ethereum/ABI/outpost/OutpostManager.sol/OutpostManager.dbg.json +0 -4
- package/src/assets/ethereum/ABI/outpost/OutpostManagerAuthority.sol/OutpostManagerAuthority.dbg.json +0 -4
- package/src/assets/ethereum/ABI/outpost/OutpostManagerCommon.sol/IOutpostManager.dbg.json +0 -4
- package/src/assets/ethereum/ABI/outpost/OutpostManagerCommon.sol/IOutpostUpgradeable.dbg.json +0 -4
- package/src/assets/ethereum/ABI/outpost/OutpostManagerCommon.sol/OutpostManagerCommon.dbg.json +0 -4
- package/src/assets/ethereum/ABI/outpost/OutpostOwnable.sol/OutpostOwnable.dbg.json +0 -4
- package/src/assets/ethereum/ABI/outpost/Pool.sol/Pool.dbg.json +0 -4
- package/src/assets/ethereum/ABI/outpost/Pretoken.sol/Pretoken.dbg.json +0 -4
- package/src/assets/ethereum/ABI/outpost/Pretoken.sol/Pretoken.json +0 -1650
- package/src/assets/ethereum/ABI/outpost/ReceiptNFT.sol/ReceiptNFT.dbg.json +0 -4
- package/src/assets/ethereum/ABI/outpost/interfaces/IPretoken.sol/IPretoken.dbg.json +0 -4
- package/src/assets/ethereum/ABI/outpost/interfaces/IWarrant.sol/IWarrant.dbg.json +0 -4
- package/src/assets/ethereum/ABI/outpost/token/ERC721EthEquivalentVotesUpgradeable.sol/ERC721EthEquivalentVotesUpgradeable.dbg.json +0 -4
- package/src/assets/ethereum/ABI/outpost/token/IERC721EthEquivalent.sol/IERC721EthEquivalent.dbg.json +0 -4
- package/src/assets/ethereum/ABI/token/ERC1155Token.sol/ERC1155Token.dbg.json +0 -4
- package/src/assets/ethereum/ABI/token/ERC1155Token.sol/ERC1155Token.json +0 -472
- package/src/assets/ethereum/ABI/token/ERC20Token.sol/ERC20Token.dbg.json +0 -4
- package/src/assets/ethereum/ABI/token/ERC20Token.sol/ERC20Token.json +0 -330
- package/src/assets/ethereum/ABI/token/ERC721Token.sol/ERC721Token.dbg.json +0 -4
- package/src/assets/ethereum/ABI/token/ERC721Token.sol/ERC721Token.json +0 -449
- package/src/assets/solana/idl/transfer_hook.json +0 -192
- package/src/assets/solana/types/transfer_hook.ts +0 -198
- package/src/networks/solana/clients/deposit.client.ts +0 -273
- package/src/staker/types.ts +0 -62
- /package/src/assets/ethereum/{ABI → hoodi}/liqEth/BeaconState.sol/BeaconState.json +0 -0
- /package/src/assets/ethereum/{ABI → hoodi}/liqEth/LiqEthAuthority.sol/LiqEthAuthority.json +0 -0
- /package/src/assets/ethereum/{ABI → hoodi}/liqEth/LiqEthCommon.sol/IDepositContract.json +0 -0
- /package/src/assets/ethereum/{ABI → hoodi}/liqEth/LiqEthCommon.sol/IDepositManager.json +0 -0
- /package/src/assets/ethereum/{ABI → hoodi}/liqEth/LiqEthCommon.sol/ILiqEthUpgradeable.json +0 -0
- /package/src/assets/ethereum/{ABI → hoodi}/liqEth/LiqEthCommon.sol/IValidatorBalanceVerifier.json +0 -0
- /package/src/assets/ethereum/{ABI → hoodi}/liqEth/LiqEthCommon.sol/IWithdrawalRecord.json +0 -0
- /package/src/assets/ethereum/{ABI → hoodi}/outpost/EthUsdPriceConsumer.sol/AggregatorV3Interface.json +0 -0
- /package/src/assets/ethereum/{ABI → hoodi}/outpost/OPPCommon.sol/IOPPEndpoint.json +0 -0
- /package/src/assets/ethereum/{ABI → hoodi}/outpost/OutpostManagerCommon.sol/IOutpostUpgradeable.json +0 -0
- /package/src/assets/ethereum/{ABI → hoodi}/outpost/interfaces/IPretoken.sol/IPretoken.json +0 -0
- /package/src/assets/ethereum/{ABI → hoodi}/outpost/interfaces/IWarrant.sol/IWarrant.json +0 -0
- /package/src/assets/ethereum/{ABI → hoodi}/outpost/token/ERC721EthEquivalentVotesUpgradeable.sol/ERC721EthEquivalentVotesUpgradeable.json +0 -0
- /package/src/assets/ethereum/{ABI → hoodi}/outpost/token/IERC721EthEquivalent.sol/IERC721EthEquivalent.json +0 -0
- /package/src/assets/ethereum/{ABI → mainnet}/outpost/OPP.sol/OPP.json +0 -0
- /package/src/assets/ethereum/{ABI → mainnet}/outpost/OPPCommon.sol/IOPP.json +0 -0
- /package/src/assets/ethereum/{ABI → mainnet}/outpost/OPPCommon.sol/IOPPInbound.json +0 -0
- /package/src/assets/ethereum/{ABI → mainnet}/outpost/OPPCommon.sol/IOPPReceiver.json +0 -0
- /package/src/assets/ethereum/{ABI → mainnet}/outpost/OPPCommon.sol/IOPPSender.json +0 -0
- /package/src/assets/ethereum/{ABI → mainnet}/outpost/OPPCommon.sol/OPPCommon.json +0 -0
- /package/src/assets/ethereum/{ABI → mainnet}/outpost/OPPEndpoint.sol/OPPEndpoint.json +0 -0
- /package/src/assets/ethereum/{ABI → mainnet}/outpost/OPPEndpointManaged.sol/OPPEndpointManaged.json +0 -0
- /package/src/assets/ethereum/{ABI → mainnet}/outpost/OPPEndpointOwnable.sol/OPPEndpointOwnable.json +0 -0
- /package/src/assets/ethereum/{ABI → mainnet}/outpost/OPPErrors.sol/OPPErrors.json +0 -0
- /package/src/assets/ethereum/{ABI → mainnet}/outpost/OPPInbound.sol/OPPInbound.json +0 -0
- /package/src/assets/ethereum/{ABI → mainnet}/outpost/OPPReceiver.sol/OPPReceiver.json +0 -0
- /package/src/assets/ethereum/{ABI → mainnet}/outpost/OPPSender.sol/OPPSender.json +0 -0
- /package/src/assets/ethereum/{ABI → mainnet}/outpost/OutpostManaged.sol/OutpostManaged.json +0 -0
- /package/src/assets/ethereum/{ABI → mainnet}/outpost/OutpostManagerAuthority.sol/OutpostManagerAuthority.json +0 -0
- /package/src/assets/ethereum/{ABI → mainnet}/outpost/OutpostManagerCommon.sol/IOutpostManager.json +0 -0
- /package/src/assets/ethereum/{ABI → mainnet}/outpost/OutpostManagerCommon.sol/OutpostManagerCommon.json +0 -0
- /package/src/assets/ethereum/{ABI → mainnet}/outpost/OutpostOwnable.sol/OutpostOwnable.json +0 -0
|
@@ -8,13 +8,16 @@ import {
|
|
|
8
8
|
TrancheSnapshot
|
|
9
9
|
} from '../../types';
|
|
10
10
|
import { EthereumContractService } from './contract';
|
|
11
|
-
import { preLaunchReceipt } from './types';
|
|
11
|
+
import { preLaunchReceipt, WithdrawReceipt } from './types';
|
|
12
12
|
import { buildEthereumTrancheSnapshot } from './utils';
|
|
13
13
|
import { ConvertClient } from './clients/convert.client';
|
|
14
14
|
import { StakeClient } from './clients/stake.client';
|
|
15
15
|
import { PretokenClient } from './clients/pretoken.client';
|
|
16
16
|
import { OPPClient } from './clients/opp.client';
|
|
17
17
|
import { ReceiptClient } from './clients/receipt.client';
|
|
18
|
+
import { ValidatorClient } from './clients/validator.client';
|
|
19
|
+
|
|
20
|
+
export const INITIAL_TRANCHE_SUPPLY = 35000;
|
|
18
21
|
|
|
19
22
|
export class EthereumStakingClient implements IStakingClient {
|
|
20
23
|
private readonly provider: ethers.providers.Web3Provider | ethers.providers.JsonRpcProvider;
|
|
@@ -27,10 +30,11 @@ export class EthereumStakingClient implements IStakingClient {
|
|
|
27
30
|
private stakeClient: StakeClient;
|
|
28
31
|
private oppClient: OPPClient;
|
|
29
32
|
private receiptClient: ReceiptClient;
|
|
30
|
-
|
|
33
|
+
private validatorClient: ValidatorClient;
|
|
31
34
|
|
|
32
35
|
get contract() { return this.contractService.contract; }
|
|
33
36
|
get network() { return this.config.network; }
|
|
37
|
+
get address() { return this.signer?.getAddress(); }
|
|
34
38
|
|
|
35
39
|
constructor(private config: StakerConfig) {
|
|
36
40
|
try {
|
|
@@ -46,6 +50,7 @@ export class EthereumStakingClient implements IStakingClient {
|
|
|
46
50
|
this.contractService = new EthereumContractService({
|
|
47
51
|
provider: this.provider,
|
|
48
52
|
signer: this.signer,
|
|
53
|
+
chainId: config.network.chainId as EvmChainID,
|
|
49
54
|
});
|
|
50
55
|
|
|
51
56
|
this.convertClient = new ConvertClient(this.contractService);
|
|
@@ -53,6 +58,7 @@ export class EthereumStakingClient implements IStakingClient {
|
|
|
53
58
|
this.stakeClient = new StakeClient(this.contractService);
|
|
54
59
|
this.oppClient = new OPPClient(this.contractService);
|
|
55
60
|
this.receiptClient = new ReceiptClient(this.contractService);
|
|
61
|
+
this.validatorClient = new ValidatorClient(this.contractService)
|
|
56
62
|
}
|
|
57
63
|
catch (error) {
|
|
58
64
|
// console.error('Error initializing EthereumStakingClient:', error);
|
|
@@ -89,13 +95,38 @@ export class EthereumStakingClient implements IStakingClient {
|
|
|
89
95
|
async withdraw(amount: bigint): Promise<string> {
|
|
90
96
|
this.ensureUser();
|
|
91
97
|
|
|
92
|
-
const address = await this.
|
|
98
|
+
const address = await this.address!;
|
|
93
99
|
const amountWei = BigNumber.from(amount);
|
|
94
100
|
|
|
95
101
|
const result = await this.convertClient.performWithdraw(address, amountWei)
|
|
96
102
|
return result.txHash;
|
|
97
103
|
}
|
|
98
104
|
|
|
105
|
+
/**
|
|
106
|
+
* List withdrawal queue receipts for a wallet (pending / in-progress exits after safeBurn).
|
|
107
|
+
* @param address Owner to query; defaults to the connected wallet.
|
|
108
|
+
* @returns Withdrawal receipt NFT entries from the protocol view
|
|
109
|
+
*/
|
|
110
|
+
async getPendingWithdraws(address?: string): Promise<WithdrawReceipt[]> {
|
|
111
|
+
this.ensureUser();
|
|
112
|
+
const owner = address ?? await this.address!;
|
|
113
|
+
return await this.receiptClient.fetchWithdrawReceipts(owner);
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
/**
|
|
117
|
+
* Claim native ETH for a matured withdrawal using the WithdrawalQueue NFT token id
|
|
118
|
+
* (via DepositManager.claim after the delay has passed).
|
|
119
|
+
* @param tokenId Withdrawal request / queue NFT token id
|
|
120
|
+
* @returns transaction hash
|
|
121
|
+
*/
|
|
122
|
+
async claimWithdraw(tokenId: bigint): Promise<string> {
|
|
123
|
+
this.ensureUser();
|
|
124
|
+
|
|
125
|
+
const tokenIdBigNum = BigNumber.from(tokenId)
|
|
126
|
+
const result = await this.convertClient.claimWithdraw(tokenIdBigNum)
|
|
127
|
+
return result.txHash;
|
|
128
|
+
}
|
|
129
|
+
|
|
99
130
|
|
|
100
131
|
/**
|
|
101
132
|
* Stake liqETH via DepositManager.
|
|
@@ -105,7 +136,7 @@ export class EthereumStakingClient implements IStakingClient {
|
|
|
105
136
|
async stake(amount: bigint): Promise<string> {
|
|
106
137
|
this.ensureUser();
|
|
107
138
|
|
|
108
|
-
const walletAddress = await this.
|
|
139
|
+
const walletAddress = await this.address!;
|
|
109
140
|
const amountWei = BigNumber.from(amount);
|
|
110
141
|
|
|
111
142
|
const result = await this.stakeClient.performStake(amountWei, walletAddress);
|
|
@@ -118,6 +149,46 @@ export class EthereumStakingClient implements IStakingClient {
|
|
|
118
149
|
throw new Error("Method not yet implemented.");
|
|
119
150
|
}
|
|
120
151
|
|
|
152
|
+
/**
|
|
153
|
+
* Deposit ETH to liqETH, then stake liqETH in a single transaction.
|
|
154
|
+
* @param amountWei Amount in wei.
|
|
155
|
+
* @returns transaction hash
|
|
156
|
+
*/
|
|
157
|
+
async depositAndStake(amountWei: bigint): Promise<string> {
|
|
158
|
+
this.ensureUser();
|
|
159
|
+
if (!amountWei || amountWei <= BigInt(0))
|
|
160
|
+
throw new Error('Amount must be greater than zero.');
|
|
161
|
+
|
|
162
|
+
const result = await this.stakeClient.performDepositAndStake(BigNumber.from(amountWei));
|
|
163
|
+
return result.txHash;
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
/**
|
|
167
|
+
* Deposit ETH to liqETH, then purchase pretokens in a single transaction.
|
|
168
|
+
* @param amountWei Amount in wei.
|
|
169
|
+
* @returns transaction hash
|
|
170
|
+
*/
|
|
171
|
+
async depositAndBuy(amountWei: bigint): Promise<string> {
|
|
172
|
+
this.ensureUser();
|
|
173
|
+
if (!amountWei || amountWei <= BigInt(0))
|
|
174
|
+
throw new Error('Amount must be greater than zero.');
|
|
175
|
+
|
|
176
|
+
const result = await this.stakeClient.performDepositAndPurchase(BigNumber.from(amountWei));
|
|
177
|
+
return result.txHash;
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
/**
|
|
181
|
+
* Unstake liqETH, then request a withdrawal in a single transaction.
|
|
182
|
+
* @param tokenId The ReceiptNFT token ID for the stake position
|
|
183
|
+
* @returns transaction hash
|
|
184
|
+
*/
|
|
185
|
+
async unstakeAndWithdraw(tokenId: bigint): Promise<string> {
|
|
186
|
+
this.ensureUser();
|
|
187
|
+
|
|
188
|
+
const result = await this.stakeClient.performUnstakeAndRequestWithdraw(BigNumber.from(tokenId));
|
|
189
|
+
return result.txHash;
|
|
190
|
+
}
|
|
191
|
+
|
|
121
192
|
|
|
122
193
|
/**
|
|
123
194
|
* ETH Prelaunch function to unstake liqEth
|
|
@@ -137,16 +208,34 @@ export class EthereumStakingClient implements IStakingClient {
|
|
|
137
208
|
async buy(amount: bigint): Promise<string> {
|
|
138
209
|
this.ensureUser();
|
|
139
210
|
|
|
140
|
-
const buyer = await this.
|
|
211
|
+
const buyer = await this.address!;
|
|
141
212
|
|
|
142
213
|
// ! Hoodi only - check if the mock aggregator price is stale, and if so, update it before submitting the buy request
|
|
143
|
-
await this.
|
|
214
|
+
// const network = await this.provider.getNetwork();
|
|
215
|
+
// const chainId = network.chainId;
|
|
216
|
+
// const allowedTestChains = new Set([560048]);
|
|
217
|
+
// if (allowedTestChains.has(chainId)) await this.updateMockAggregatorPrice();
|
|
144
218
|
|
|
145
219
|
let result = await this.pretokenClient.purchasePretokensWithLiqETH(amount, buyer);
|
|
146
220
|
return result && result.txHash ? result.txHash : "Error - no resulting txHash";
|
|
147
221
|
}
|
|
148
222
|
|
|
149
223
|
|
|
224
|
+
/**
|
|
225
|
+
* Validator functions
|
|
226
|
+
*/
|
|
227
|
+
async validatorDeposit(): Promise<string> {
|
|
228
|
+
this.ensureUser();
|
|
229
|
+
|
|
230
|
+
let result = await this.validatorClient.validatorDepositAndLockBond();
|
|
231
|
+
return result && result.txHash ? result.txHash : "Error - no resulting txHash";
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
|
|
235
|
+
|
|
236
|
+
|
|
237
|
+
|
|
238
|
+
|
|
150
239
|
/**
|
|
151
240
|
* Resolve the user's ETH + liqETH balances.
|
|
152
241
|
*
|
|
@@ -154,54 +243,107 @@ export class EthereumStakingClient implements IStakingClient {
|
|
|
154
243
|
* actual = liqETH token balance (ERC-20)
|
|
155
244
|
* tracked = liqETH tracked balance (protocol/accounting view)
|
|
156
245
|
*/
|
|
157
|
-
async getPortfolio(): Promise<Portfolio> {
|
|
158
|
-
this.ensureUser();
|
|
246
|
+
async getPortfolio(address?: string): Promise<Portfolio | null> {
|
|
159
247
|
|
|
160
|
-
|
|
248
|
+
try {
|
|
249
|
+
if (!this.signer) return Promise.resolve(null);
|
|
161
250
|
|
|
162
|
-
|
|
163
|
-
const nativeBalance = await this.provider.getBalance(walletAddress);
|
|
164
|
-
const nativeDecimals = this.network?.nativeCurrency?.decimals ?? 18;
|
|
165
|
-
const nativeSymbol = this.network?.nativeCurrency?.symbol ?? 'ETH';
|
|
251
|
+
const walletAddress = address ?? await this.address!;
|
|
166
252
|
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
253
|
+
// 1) Native ETH balance
|
|
254
|
+
const nativeBalance = await this.provider.getBalance(walletAddress);
|
|
255
|
+
const nativeDecimals = this.network?.nativeCurrency?.decimals ?? 18;
|
|
256
|
+
const nativeSymbol = this.network?.nativeCurrency?.symbol ?? 'ETH';
|
|
257
|
+
|
|
258
|
+
// 2) liqETH ERC-20 balance (actual)
|
|
259
|
+
const liqBalance: ethers.BigNumber = await this.contract.LiqEthToken.balanceOf(walletAddress);
|
|
260
|
+
const liqSymbol = 'Liq' + (this.network?.nativeCurrency?.symbol ?? 'ETH');
|
|
261
|
+
|
|
262
|
+
// 3) staked liqEth ERC-20 balance (calculate from receipts)
|
|
263
|
+
let stakeReceipts = await this.receiptClient.stakeReceipts(walletAddress);
|
|
264
|
+
|
|
265
|
+
let stakeBalanceBN = BigNumber.from(0);
|
|
266
|
+
for (let r of stakeReceipts) {
|
|
267
|
+
stakeBalanceBN = stakeBalanceBN.add(BigNumber.from(r.receipt.principal.amount));
|
|
268
|
+
}
|
|
269
|
+
let stakeSharesBN = BigNumber.from(0);
|
|
270
|
+
for (let r of stakeReceipts) {
|
|
271
|
+
stakeSharesBN = stakeSharesBN.add(BigNumber.from(r.receipt.shares.amount));
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
// 4) WIRE pretoken balance
|
|
275
|
+
const wireBalance: ethers.BigNumber = await this.contract.Pretoken.balanceOf(walletAddress);
|
|
276
|
+
|
|
277
|
+
// 5) Calculate staking yield
|
|
278
|
+
let currentIndex = BigInt(0);
|
|
279
|
+
let totalShares = BigInt(0);
|
|
280
|
+
let userShares = BigInt(0);
|
|
281
|
+
const indexScale = BigInt(1e27);
|
|
282
|
+
try {
|
|
283
|
+
// These may throw if not implemented on contract
|
|
284
|
+
const [indexBn, totalSharesBn] = await Promise.all([
|
|
285
|
+
this.contract.Depositor.index().catch(() => BigNumber.from(0)),
|
|
286
|
+
this.contract.Depositor.totalShares().catch(() => BigNumber.from(0)),
|
|
287
|
+
]);
|
|
288
|
+
|
|
289
|
+
const userSharesBn = stakeSharesBN;
|
|
290
|
+
currentIndex = BigInt(indexBn.toString());
|
|
291
|
+
totalShares = BigInt(totalSharesBn.toString());
|
|
292
|
+
userShares = BigInt(userSharesBn.toString());
|
|
293
|
+
} catch (error) {
|
|
294
|
+
console.log('Error fetching staking index/shares:', error);
|
|
295
|
+
}
|
|
296
|
+
|
|
297
|
+
// sharesToTokens(userShares, currentIndex) = userShares * currentIndex / indexScale
|
|
298
|
+
let estimatedClaim = BigInt(0);
|
|
299
|
+
let estimatedYield = BigInt(0);
|
|
300
|
+
|
|
301
|
+
if (userShares > BigInt(0) && currentIndex > BigInt(0)) {
|
|
302
|
+
estimatedClaim = (userShares * currentIndex) / indexScale;
|
|
303
|
+
if (estimatedClaim > stakeBalanceBN.toBigInt()) {
|
|
304
|
+
estimatedYield = estimatedClaim - stakeBalanceBN.toBigInt();
|
|
305
|
+
}
|
|
306
|
+
}
|
|
170
307
|
|
|
171
|
-
// 3) staked liqEth ERC-20 balance (calculate from receipts)
|
|
172
|
-
let stakeReceipts = await this.receiptClient.stakeReceipts(walletAddress);
|
|
173
|
-
let stakeBalanceBN = BigNumber.from(0);
|
|
174
|
-
for (let r of stakeReceipts) {
|
|
175
|
-
stakeBalanceBN = stakeBalanceBN.add(BigNumber.from(r.receipt.principal.amount));
|
|
176
|
-
}
|
|
177
308
|
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
309
|
+
const portfolio: Portfolio = {
|
|
310
|
+
native: {
|
|
311
|
+
amount: nativeBalance.toBigInt(),
|
|
312
|
+
decimals: nativeDecimals,
|
|
313
|
+
symbol: nativeSymbol,
|
|
314
|
+
},
|
|
315
|
+
liq: {
|
|
316
|
+
amount: liqBalance.toBigInt(),
|
|
317
|
+
decimals: nativeDecimals,
|
|
318
|
+
symbol: liqSymbol,
|
|
319
|
+
},
|
|
320
|
+
staked: {
|
|
321
|
+
amount: stakeBalanceBN.toBigInt(),
|
|
322
|
+
decimals: nativeDecimals,
|
|
323
|
+
symbol: liqSymbol,
|
|
324
|
+
},
|
|
325
|
+
wire: {
|
|
326
|
+
amount: wireBalance.toBigInt(),
|
|
327
|
+
decimals: 18,
|
|
328
|
+
symbol: '$WIRE',
|
|
329
|
+
},
|
|
330
|
+
|
|
331
|
+
yield: {
|
|
332
|
+
currentIndex,
|
|
333
|
+
indexScale,
|
|
334
|
+
totalShares,
|
|
335
|
+
userShares,
|
|
336
|
+
estimatedClaim,
|
|
337
|
+
estimatedYield,
|
|
338
|
+
},
|
|
339
|
+
chainID: this.network.chainId
|
|
340
|
+
}
|
|
341
|
+
return portfolio;
|
|
342
|
+
}
|
|
343
|
+
catch (error) {
|
|
344
|
+
// console.log('Error fetching Ethereum portfolio:', error);
|
|
345
|
+
throw error;
|
|
203
346
|
}
|
|
204
|
-
return portfolio;
|
|
205
347
|
}
|
|
206
348
|
|
|
207
349
|
/**
|
|
@@ -212,7 +354,7 @@ export class EthereumStakingClient implements IStakingClient {
|
|
|
212
354
|
async fetchPrelaunchReceipts(address?: string): Promise<preLaunchReceipt[]> {
|
|
213
355
|
this.ensureUser();
|
|
214
356
|
|
|
215
|
-
if (address === undefined) address = await this.
|
|
357
|
+
if (address === undefined) address = await this.address!;
|
|
216
358
|
|
|
217
359
|
//default to stake receipts
|
|
218
360
|
return await this.receiptClient.stakeReceipts(address);
|
|
@@ -221,11 +363,13 @@ export class EthereumStakingClient implements IStakingClient {
|
|
|
221
363
|
async getOPPMessages(address?: string): Promise<OPPAssertion[]> {
|
|
222
364
|
this.ensureUser();
|
|
223
365
|
|
|
224
|
-
if (!address) address = await this.
|
|
366
|
+
if (!address) address = await this.address!;
|
|
225
367
|
|
|
226
368
|
return await this.oppClient.getMessages(address);
|
|
227
369
|
}
|
|
228
370
|
|
|
371
|
+
|
|
372
|
+
|
|
229
373
|
// Ensure that signer wallet is available for write operations
|
|
230
374
|
private ensureUser() {
|
|
231
375
|
if (!this.signer) {
|
|
@@ -240,16 +384,24 @@ export class EthereumStakingClient implements IStakingClient {
|
|
|
240
384
|
// READ-ONLY Public Methods
|
|
241
385
|
// ---------------------------------------------------------------------
|
|
242
386
|
|
|
243
|
-
//
|
|
244
|
-
getSystemAPY(): Promise<number> {
|
|
245
|
-
//
|
|
246
|
-
|
|
387
|
+
// Protocol-wide ETH staking APY in percent, e.g. 3.0 => "3.00%"
|
|
388
|
+
async getSystemAPY(): Promise<number> {
|
|
389
|
+
// NOTE: despite the name, this value is effectively *annual* BPS on-chain.
|
|
390
|
+
// e.g. 300 => 3% APY
|
|
391
|
+
const annualBpsBn = await this.contract.DepositManager.dailyRateBPS();
|
|
392
|
+
const annualBps = annualBpsBn.toNumber(); // e.g. 300 for 3%
|
|
393
|
+
|
|
394
|
+
// Convert basis points (1/100 of 1%) to percent:
|
|
395
|
+
// 10,000 bps = 100% ⇒ 100 bps = 1% ⇒ divide by 100.
|
|
396
|
+
const apyPercent = annualBps / 100;
|
|
397
|
+
|
|
398
|
+
return apyPercent; // 3 => "3.00%"
|
|
247
399
|
}
|
|
248
400
|
|
|
249
401
|
// Protocol fee charged for deposit from Native to LIQ
|
|
250
|
-
getDepositFee(
|
|
251
|
-
|
|
252
|
-
return
|
|
402
|
+
async getDepositFee(amountWei: bigint): Promise<bigint> {
|
|
403
|
+
const feeBn: BigNumber = await this.contract.DepositManager.procFee(amountWei);
|
|
404
|
+
return BigInt(feeBn.toString());
|
|
253
405
|
}
|
|
254
406
|
|
|
255
407
|
async getOPPStatus(): Promise<any> {
|
|
@@ -257,7 +409,7 @@ export class EthereumStakingClient implements IStakingClient {
|
|
|
257
409
|
}
|
|
258
410
|
|
|
259
411
|
async getEthStats(): Promise<any> {
|
|
260
|
-
let withdrawDelay = await this.contract.
|
|
412
|
+
let withdrawDelay = await this.contract.WithdrawalQueue.withdrawDelay();
|
|
261
413
|
let minDeposit = await this.contract.DepositManager.minDeposit();
|
|
262
414
|
let rewardCooldown = await this.contract.DepositManager.rewardCooldown();
|
|
263
415
|
|
|
@@ -273,117 +425,180 @@ export class EthereumStakingClient implements IStakingClient {
|
|
|
273
425
|
*
|
|
274
426
|
* SUPPORTS READ-ONLY ACcESS
|
|
275
427
|
*/
|
|
276
|
-
async getTrancheSnapshot(
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
this.contract.
|
|
300
|
-
this.
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
minPriceUsd,
|
|
330
|
-
maxPriceUsd,
|
|
331
|
-
|
|
332
|
-
ethPriceUsd,
|
|
333
|
-
nativePriceTimestamp,
|
|
334
|
-
ladderWindowBefore: windowBefore,
|
|
335
|
-
ladderWindowAfter: windowAfter,
|
|
336
|
-
});
|
|
428
|
+
async getTrancheSnapshot(chainID: ChainID): Promise<TrancheSnapshot> {
|
|
429
|
+
try {
|
|
430
|
+
const blockNumber = await this.provider.getBlockNumber();
|
|
431
|
+
const blockTag = { blockTag: blockNumber };
|
|
432
|
+
|
|
433
|
+
// Fetch all required contract data
|
|
434
|
+
const [totalSharesBn, indexBn, trancheNumberBn, trancheSupplyBn, tranchePriceUsdBn, totalSupplyBn, supplyGrowthBps, priceGrowthCents, minPriceUsd, maxPriceUsd] = await Promise.all([
|
|
435
|
+
this.contract.Depositor.totalShares(blockTag),
|
|
436
|
+
this.contract.Depositor.index(blockTag),
|
|
437
|
+
this.contract.Pretoken.trancheNumber(blockTag),
|
|
438
|
+
this.contract.Pretoken.trancheSupply(blockTag),
|
|
439
|
+
this.contract.Pretoken.tranchePriceUsd(blockTag),
|
|
440
|
+
this.contract.Pretoken.totalSupply(blockTag),
|
|
441
|
+
this.contract.Pretoken.supplyGrowthBps(blockTag),
|
|
442
|
+
this.contract.Pretoken.priceIncrementUsd(blockTag),
|
|
443
|
+
this.contract.EthUsdPriceConsumer.MIN_PRICE(),
|
|
444
|
+
this.contract.EthUsdPriceConsumer.MAX_PRICE(),
|
|
445
|
+
]);
|
|
446
|
+
|
|
447
|
+
const totalTrancheSupply = BigInt(totalSupplyBn.toString()) / BigInt(1e10);
|
|
448
|
+
const currentTrancheSupply = BigInt(trancheSupplyBn.toString()) / BigInt(1e10);
|
|
449
|
+
|
|
450
|
+
// fetch price and timestamp from aggregator
|
|
451
|
+
// const [roundId, answer, startedAt, updatedAt, answeredInRound] = await this.contract.MockAggregator.latestRoundData();
|
|
452
|
+
//originally fetched ethPrice from aggregator - pulling from EthUsdPriceConsumer instead - this is where the actual price gets pulled from when purchasing pretokens.
|
|
453
|
+
// let ethPriceUsd: bigint = BigInt(answer.toString());)
|
|
454
|
+
|
|
455
|
+
let ethPriceUsdBn = await this.contract.EthUsdPriceConsumer.getPrice18Decimals();
|
|
456
|
+
let ethPriceUsd: bigint = BigInt(ethPriceUsdBn.toString()) / BigInt(1e10);
|
|
457
|
+
|
|
458
|
+
// let nativePriceTimestamp: number = Number(updatedAt);
|
|
459
|
+
|
|
460
|
+
const initialTrancheSupply = BigInt(INITIAL_TRANCHE_SUPPLY) * BigInt(1e8);
|
|
461
|
+
|
|
462
|
+
return buildEthereumTrancheSnapshot({
|
|
463
|
+
chainID,
|
|
464
|
+
totalSharesBn,
|
|
465
|
+
indexBn,
|
|
466
|
+
trancheNumberBn,
|
|
467
|
+
currentTrancheSupply,
|
|
468
|
+
tranchePriceUsdBn,
|
|
469
|
+
totalTrancheSupply,
|
|
470
|
+
initialTrancheSupply,
|
|
471
|
+
supplyGrowthBps,
|
|
472
|
+
priceGrowthCents,
|
|
473
|
+
minPriceUsd,
|
|
474
|
+
maxPriceUsd,
|
|
475
|
+
ethPriceUsd,
|
|
476
|
+
});
|
|
477
|
+
}
|
|
478
|
+
catch (err: any) {
|
|
479
|
+
throw new Error(`Error fetching Ethereum tranche snapshot: ${err?.message || err}`);
|
|
480
|
+
}
|
|
337
481
|
}
|
|
338
482
|
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
483
|
+
/**
|
|
484
|
+
* Estimate a conservative native ETH buffer (in wei) to leave in the wallet
|
|
485
|
+
* so the user can pay gas for the current deposit and at least one more tx.
|
|
486
|
+
*
|
|
487
|
+
* Typical usage in UI:
|
|
488
|
+
* const buffer = await client.estimateGasBuffer();
|
|
489
|
+
* const maxSpendable = balanceWei > buffer ? balanceWei - buffer : 0n;
|
|
490
|
+
*
|
|
491
|
+
* @param options.txCount How many transactions to cover (default 2: deposit + 1 more)
|
|
492
|
+
* @param options.safetyMultiplier Additional safety multiplier on top of txCount (default 1.5x)
|
|
493
|
+
* @param options.minBufferWei Optional override minimum buffer (defaults ~0.002 ETH)
|
|
494
|
+
*/
|
|
495
|
+
async getDepositBuffer(options?: {
|
|
496
|
+
txCount?: number;
|
|
497
|
+
safetyMultiplier?: number;
|
|
498
|
+
minBufferWei?: bigint;
|
|
499
|
+
balanceOverrideLamports?: bigint;
|
|
500
|
+
}): Promise<bigint> {
|
|
501
|
+
this.ensureUser();
|
|
342
502
|
|
|
343
|
-
|
|
344
|
-
private async updateMockAggregatorPrice() {
|
|
345
|
-
const aggregator = this.contract.Aggregator;
|
|
346
|
-
|
|
347
|
-
// read latest round & compute age
|
|
348
|
-
const [roundId, answer, startedAt, updatedAt, answeredInRound] = await aggregator.latestRoundData();
|
|
349
|
-
const now = (await this.provider.getBlock("latest")).timestamp;
|
|
350
|
-
const ageSec = Number(now) - Number(updatedAt);
|
|
351
|
-
|
|
352
|
-
const ONE_HOUR = 1 * 3600;
|
|
353
|
-
// const ONE_HOUR = 10;
|
|
354
|
-
if (ageSec > ONE_HOUR) {
|
|
355
|
-
// safety check - only run in non-production contexts
|
|
356
|
-
const network = await this.provider.getNetwork();
|
|
357
|
-
const chainId = network.chainId;
|
|
358
|
-
const allowedTestChains = new Set([560048]);
|
|
359
|
-
if (!allowedTestChains.has(chainId)) {
|
|
360
|
-
console.warn(`MockAggregator is stale (${ageSec}s) but chainId ${chainId} is not a test/local network — skipping update.`);
|
|
361
|
-
return;
|
|
362
|
-
}
|
|
503
|
+
const walletAddress = await this.address!;
|
|
363
504
|
|
|
505
|
+
// 1) Estimate a baseline gas usage using a simple self-transfer.
|
|
506
|
+
// This is cheap and doesn't depend on your contract ABI at all.
|
|
507
|
+
const baseGas = await this.provider.estimateGas({
|
|
508
|
+
from: walletAddress,
|
|
509
|
+
to: walletAddress,
|
|
510
|
+
value: ethers.constants.Zero,
|
|
511
|
+
});
|
|
364
512
|
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
513
|
+
// 2) Fetch current gas price / max fee per gas.
|
|
514
|
+
const feeData = await this.provider.getFeeData();
|
|
515
|
+
let gasPrice =
|
|
516
|
+
feeData.maxFeePerGas ??
|
|
517
|
+
feeData.gasPrice ??
|
|
518
|
+
ethers.utils.parseUnits('20', 'gwei'); // conservative fallback
|
|
369
519
|
|
|
370
|
-
|
|
520
|
+
// 3) How many txs do we want to cover?
|
|
521
|
+
// Default: 2 (deposit + one extra action such as stake or small follow-up).
|
|
522
|
+
const txCount = options?.txCount ?? 2;
|
|
371
523
|
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
524
|
+
// We also assume that contract interactions are more expensive than a simple transfer.
|
|
525
|
+
// Use a multiplier (e.g., 5x) on baseGas to approximate a more complex tx.
|
|
526
|
+
const COMPLEX_TX_MULTIPLIER = 5; // tuning knob
|
|
527
|
+
const totalGasUnits = baseGas
|
|
528
|
+
.mul(COMPLEX_TX_MULTIPLIER)
|
|
529
|
+
.mul(txCount);
|
|
530
|
+
|
|
531
|
+
const baseCost = totalGasUnits.mul(gasPrice);
|
|
532
|
+
|
|
533
|
+
// 4) Safety multiplier on top of that (e.g. 1.5x).
|
|
534
|
+
const safetyMultiplier = options?.safetyMultiplier ?? 1.5;
|
|
535
|
+
const safetyScaled = Math.round(safetyMultiplier * 100); // e.g. 150
|
|
536
|
+
|
|
537
|
+
const bufferedCost = baseCost
|
|
538
|
+
.mul(safetyScaled)
|
|
539
|
+
.div(100); // apply safety factor
|
|
540
|
+
|
|
541
|
+
let bufferWei = bufferedCost.toBigInt();
|
|
542
|
+
|
|
543
|
+
// 5) Enforce a minimum floor (e.g. ~0.002 ETH).
|
|
544
|
+
const defaultMinBufferWei = BigInt(2_000_000_000_000_000); // 0.002 ETH
|
|
545
|
+
const minBufferWei = options?.minBufferWei ?? defaultMinBufferWei;
|
|
546
|
+
|
|
547
|
+
if (bufferWei < minBufferWei) {
|
|
548
|
+
bufferWei = minBufferWei;
|
|
387
549
|
}
|
|
550
|
+
|
|
551
|
+
return bufferWei;
|
|
388
552
|
}
|
|
389
|
-
|
|
553
|
+
|
|
554
|
+
// ---------------------------------------------------------------------
|
|
555
|
+
// Internal ETH Staking client helper functions
|
|
556
|
+
// ---------------------------------------------------------------------
|
|
557
|
+
|
|
558
|
+
// ! This is a temporary measure for Hoodi testnet because there is no aggregator deployed
|
|
559
|
+
// private async updateMockAggregatorPrice() {
|
|
560
|
+
// const aggregator = this.contract.MockAggregator;
|
|
561
|
+
|
|
562
|
+
// // read latest round & compute age
|
|
563
|
+
// const [roundId, answer, startedAt, updatedAt, answeredInRound] = await aggregator.latestRoundData();
|
|
564
|
+
// const now = (await this.provider.getBlock("latest")).timestamp;
|
|
565
|
+
// const ageSec = Number(now) - Number(updatedAt);
|
|
566
|
+
|
|
567
|
+
// const ONE_HOUR = 1 * 3600;
|
|
568
|
+
// // const ONE_HOUR = 10;
|
|
569
|
+
// if (ageSec > ONE_HOUR) {
|
|
570
|
+
// // safety check - only run in non-production contexts
|
|
571
|
+
// const network = await this.provider.getNetwork();
|
|
572
|
+
// const chainId = network.chainId;
|
|
573
|
+
// const allowedTestChains = new Set([560048]);
|
|
574
|
+
// if (!allowedTestChains.has(chainId)) {
|
|
575
|
+
// console.warn(`MockAggregator is stale (${ageSec}s) but chainId ${chainId} is not a test/local network — skipping update.`);
|
|
576
|
+
// return;
|
|
577
|
+
// }
|
|
578
|
+
|
|
579
|
+
|
|
580
|
+
// //fetch the current ETH / USD price
|
|
581
|
+
// const res = await fetch('https://api.coingecko.com/api/v3/simple/price?ids=ethereum&vs_currencies=usd');
|
|
582
|
+
// const data = await res.json();
|
|
583
|
+
// const ethUsd = data.ethereum.usd;
|
|
584
|
+
|
|
585
|
+
// const currentEthPrice = ethers.utils.parseUnits(ethUsd.toString(), 8);
|
|
586
|
+
|
|
587
|
+
// try {
|
|
588
|
+
// //update to be intentionally stale
|
|
589
|
+
// // const alttx = await aggregator.updateStale(currentEthPrice, now - 7200);
|
|
590
|
+
// // const altreceipt = await alttx.wait(1);
|
|
591
|
+
// // console.log('stale update receipt', altreceipt)
|
|
592
|
+
|
|
593
|
+
// //update answer with current timestamp
|
|
594
|
+
// const tx = await aggregator.updateAnswer(currentEthPrice);
|
|
595
|
+
// const txreceipt = await tx.wait(1);
|
|
596
|
+
// // console.log('MockAggregator answer updated - receipt:', txreceipt)
|
|
597
|
+
// } catch (err: any) {
|
|
598
|
+
// console.error('MockAggregator updateAnswer failed', err?.message || err);
|
|
599
|
+
// }
|
|
600
|
+
// } else {
|
|
601
|
+
// console.log(`MockAggregator updated ${ageSec}s ago — no update needed`);
|
|
602
|
+
// }
|
|
603
|
+
// }
|
|
604
|
+
}
|