@wireio/stake 2.7.4 → 3.0.0
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 +34 -15
- package/lib/stake.browser.js +50561 -13484
- package/lib/stake.browser.js.map +1 -1
- package/lib/stake.d.ts +564 -15719
- package/lib/stake.js +47546 -10288
- package/lib/stake.js.map +1 -1
- package/lib/stake.m.js +50561 -13484
- package/lib/stake.m.js.map +1 -1
- package/package.json +1 -1
- package/src/assets/evm/hoodi/.gitkeep +1 -0
- package/src/assets/evm/monad-testnet/.gitkeep +0 -0
- package/src/assets/evm/polygon-amoy/.gitkeep +0 -0
- package/src/assets/evm/wiredev/common/Base58.sol/Base58.dbg.json +4 -0
- package/src/assets/evm/wiredev/common/Base58.sol/Base58.json +164 -0
- package/src/assets/evm/wiredev/common/OpenZepArtifacts.sol/__Dummy_OZ_UUPS__.dbg.json +4 -0
- package/src/assets/evm/wiredev/common/OpenZepArtifacts.sol/__Dummy_OZ_UUPS__.json +76 -0
- package/src/assets/evm/wiredev/common/RestrictedCallers.sol/RestrictedCallers.dbg.json +4 -0
- package/src/assets/evm/wiredev/common/RestrictedCallers.sol/RestrictedCallers.json +10 -0
- package/src/assets/evm/wiredev/common/iodata.sol/iodata.dbg.json +4 -0
- package/src/assets/evm/wiredev/common/iodata.sol/iodata.json +618 -0
- package/src/assets/evm/wiredev/common/iodata_util.sol/iodata_util.dbg.json +4 -0
- package/src/assets/evm/wiredev/common/iodata_util.sol/iodata_util.json +40 -0
- package/src/assets/evm/wiredev/common/sysio_data.sol/sysio_data.dbg.json +4 -0
- package/src/assets/evm/wiredev/common/sysio_data.sol/sysio_data.json +10 -0
- package/src/assets/evm/wiredev/common/sysio_errors.sol/sysio_errors.dbg.json +4 -0
- package/src/assets/evm/wiredev/common/sysio_errors.sol/sysio_errors.json +10 -0
- package/src/assets/evm/wiredev/common/sysio_merkle.sol/sysio_merkle.dbg.json +4 -0
- package/src/assets/evm/wiredev/common/sysio_merkle.sol/sysio_merkle.json +233 -0
- package/src/assets/evm/wiredev/common/sysio_name.sol/sysio_name.dbg.json +4 -0
- package/src/assets/evm/wiredev/common/sysio_name.sol/sysio_name.json +49 -0
- package/src/assets/evm/wiredev/common/sysio_pubkey.sol/sysio_pubkey.dbg.json +4 -0
- package/src/assets/evm/wiredev/common/sysio_pubkey.sol/sysio_pubkey.json +64 -0
- package/src/assets/evm/wiredev/common/sysio_read.sol/sysio_read.dbg.json +4 -0
- package/src/assets/evm/wiredev/common/sysio_read.sol/sysio_read.json +1458 -0
- package/src/assets/evm/wiredev/common/sysio_tester.sol/SysioTester.dbg.json +4 -0
- package/src/assets/evm/wiredev/common/sysio_tester.sol/SysioTester.json +1532 -0
- package/src/assets/evm/wiredev/common/sysio_verify.sol/sysio_verify.dbg.json +4 -0
- package/src/assets/evm/wiredev/common/sysio_verify.sol/sysio_verify.json +1525 -0
- package/src/assets/evm/wiredev/common/sysio_write.sol/sysio_write.dbg.json +4 -0
- package/src/assets/evm/wiredev/common/sysio_write.sol/sysio_write.json +1076 -0
- package/src/assets/evm/wiredev/liqEth/BeaconState.sol/BeaconState.dbg.json +4 -0
- package/src/assets/evm/wiredev/liqEth/BeaconState.sol/BeaconState.json +807 -0
- package/src/assets/evm/wiredev/liqEth/DepositManager.sol/DepositManagerV2.dbg.json +4 -0
- package/src/assets/evm/wiredev/liqEth/DepositManager.sol/DepositManagerV2.json +985 -0
- package/src/assets/evm/wiredev/liqEth/LiqEthAuthority.sol/LiqEthAuthority.dbg.json +4 -0
- package/src/assets/evm/wiredev/liqEth/LiqEthAuthority.sol/LiqEthAuthority.json +1289 -0
- package/src/assets/evm/wiredev/liqEth/LiqEthCommon.sol/IAccounting.dbg.json +4 -0
- package/src/assets/evm/wiredev/liqEth/LiqEthCommon.sol/IAccounting.json +182 -0
- package/src/assets/evm/wiredev/liqEth/LiqEthCommon.sol/IDepositContract.dbg.json +4 -0
- package/src/assets/evm/wiredev/liqEth/LiqEthCommon.sol/IDepositContract.json +39 -0
- package/src/assets/evm/wiredev/liqEth/LiqEthCommon.sol/IDepositManager.dbg.json +4 -0
- package/src/assets/evm/wiredev/liqEth/LiqEthCommon.sol/IDepositManager.json +64 -0
- package/src/assets/evm/wiredev/liqEth/LiqEthCommon.sol/ILiqEthUpgradeable.dbg.json +4 -0
- package/src/assets/evm/wiredev/liqEth/LiqEthCommon.sol/ILiqEthUpgradeable.json +29 -0
- package/src/assets/evm/wiredev/liqEth/LiqEthCommon.sol/IRewardsERC20.dbg.json +4 -0
- package/src/assets/evm/wiredev/liqEth/LiqEthCommon.sol/IRewardsERC20.json +319 -0
- package/src/assets/evm/wiredev/liqEth/LiqEthCommon.sol/IRewardsERC20Pausable.dbg.json +4 -0
- package/src/assets/evm/wiredev/liqEth/LiqEthCommon.sol/IRewardsERC20Pausable.json +333 -0
- package/src/assets/evm/wiredev/liqEth/LiqEthCommon.sol/IStakingModule.dbg.json +4 -0
- package/src/assets/evm/wiredev/liqEth/LiqEthCommon.sol/IStakingModule.json +344 -0
- package/src/assets/evm/wiredev/liqEth/LiqEthCommon.sol/IValidatorBalanceVerifier.dbg.json +4 -0
- package/src/assets/evm/wiredev/liqEth/LiqEthCommon.sol/IValidatorBalanceVerifier.json +129 -0
- package/src/assets/evm/wiredev/liqEth/LiqEthCommon.sol/IWithdrawalRecord.dbg.json +4 -0
- package/src/assets/evm/wiredev/liqEth/LiqEthCommon.sol/IWithdrawalRecord.json +66 -0
- package/src/assets/evm/wiredev/liqEth/LiqEthCommon.sol/LiqEthCommon.dbg.json +4 -0
- package/src/assets/evm/wiredev/liqEth/LiqEthCommon.sol/LiqEthCommon.json +10 -0
- package/src/assets/evm/wiredev/liqEth/LiqEthDeepFreeze.sol/LiqEthDeepFreeze.dbg.json +4 -0
- package/src/assets/evm/wiredev/liqEth/LiqEthDeepFreeze.sol/LiqEthDeepFreeze.json +236 -0
- package/src/assets/evm/wiredev/liqEth/LiqEthManaged.sol/LiqEthManaged.dbg.json +4 -0
- package/src/assets/evm/wiredev/liqEth/LiqEthManaged.sol/LiqEthManaged.json +229 -0
- package/src/assets/evm/wiredev/liqEth/RewardsERC20.sol/RewardsERC20UpgradeableV2.dbg.json +4 -0
- package/src/assets/evm/wiredev/liqEth/RewardsERC20.sol/RewardsERC20UpgradeableV2.json +957 -0
- package/src/assets/evm/wiredev/liqEth/RewardsERC20Pausable.sol/RewardsERC20PausableUpgradeableV2.dbg.json +4 -0
- package/src/assets/evm/wiredev/liqEth/RewardsERC20Pausable.sol/RewardsERC20PausableUpgradeableV2.json +1020 -0
- package/src/assets/evm/wiredev/liqEth/Yield.sol/YieldOracle.dbg.json +4 -0
- package/src/assets/evm/wiredev/liqEth/Yield.sol/YieldOracle.json +1376 -0
- package/src/assets/evm/wiredev/liqEth/accounting.sol/AccountingV2.dbg.json +4 -0
- package/src/assets/evm/wiredev/liqEth/accounting.sol/AccountingV2.json +629 -0
- package/src/assets/evm/wiredev/liqEth/liqEth.sol/LiqEthTokenV2.dbg.json +4 -0
- package/src/assets/evm/wiredev/liqEth/liqEth.sol/LiqEthTokenV2.json +1323 -0
- package/src/assets/evm/wiredev/liqEth/stakingModule.sol/StakingModuleV2.dbg.json +4 -0
- package/src/assets/evm/wiredev/liqEth/stakingModule.sol/StakingModuleV2.json +1779 -0
- package/src/assets/evm/wiredev/liqEth/v1/DepositManager.sol/DepositManager.dbg.json +4 -0
- package/src/assets/evm/wiredev/liqEth/v1/DepositManager.sol/DepositManager.json +978 -0
- package/src/assets/evm/wiredev/liqEth/v1/LiqEthCommon.sol/IAccounting.dbg.json +4 -0
- package/src/assets/evm/wiredev/liqEth/v1/LiqEthCommon.sol/IAccounting.json +176 -0
- package/src/assets/evm/wiredev/liqEth/v1/LiqEthCommon.sol/IDepositContract.dbg.json +4 -0
- package/src/assets/evm/wiredev/liqEth/v1/LiqEthCommon.sol/IDepositContract.json +39 -0
- package/src/assets/evm/wiredev/liqEth/v1/LiqEthCommon.sol/IDepositManager.dbg.json +4 -0
- package/src/assets/evm/wiredev/liqEth/v1/LiqEthCommon.sol/IDepositManager.json +64 -0
- package/src/assets/evm/wiredev/liqEth/v1/LiqEthCommon.sol/ILiqEthUpgradeable.dbg.json +4 -0
- package/src/assets/evm/wiredev/liqEth/v1/LiqEthCommon.sol/ILiqEthUpgradeable.json +29 -0
- package/src/assets/evm/wiredev/liqEth/v1/LiqEthCommon.sol/IRewardsERC20.dbg.json +4 -0
- package/src/assets/evm/wiredev/liqEth/v1/LiqEthCommon.sol/IRewardsERC20.json +249 -0
- package/src/assets/evm/wiredev/liqEth/v1/LiqEthCommon.sol/IRewardsERC20Pausable.dbg.json +4 -0
- package/src/assets/evm/wiredev/liqEth/v1/LiqEthCommon.sol/IRewardsERC20Pausable.json +263 -0
- package/src/assets/evm/wiredev/liqEth/v1/LiqEthCommon.sol/IStakingModule.dbg.json +4 -0
- package/src/assets/evm/wiredev/liqEth/v1/LiqEthCommon.sol/IStakingModule.json +344 -0
- package/src/assets/evm/wiredev/liqEth/v1/LiqEthCommon.sol/IValidatorBalanceVerifier.dbg.json +4 -0
- package/src/assets/evm/wiredev/liqEth/v1/LiqEthCommon.sol/IValidatorBalanceVerifier.json +129 -0
- package/src/assets/evm/wiredev/liqEth/v1/LiqEthCommon.sol/IWithdrawalRecord.dbg.json +4 -0
- package/src/assets/evm/wiredev/liqEth/v1/LiqEthCommon.sol/IWithdrawalRecord.json +66 -0
- package/src/assets/evm/wiredev/liqEth/v1/LiqEthCommon.sol/LiqEthCommon.dbg.json +4 -0
- package/src/assets/evm/wiredev/liqEth/v1/LiqEthCommon.sol/LiqEthCommon.json +10 -0
- package/src/assets/evm/wiredev/liqEth/v1/RewardsERC20.sol/RewardsERC20Upgradeable.dbg.json +4 -0
- package/src/assets/evm/wiredev/liqEth/v1/RewardsERC20.sol/RewardsERC20Upgradeable.json +874 -0
- package/src/assets/evm/wiredev/liqEth/v1/RewardsERC20Pausable.sol/RewardsERC20PausableUpgradeable.dbg.json +4 -0
- package/src/assets/evm/wiredev/liqEth/v1/RewardsERC20Pausable.sol/RewardsERC20PausableUpgradeable.json +937 -0
- package/src/assets/evm/wiredev/liqEth/v1/accounting.sol/Accounting.dbg.json +4 -0
- package/src/assets/evm/wiredev/liqEth/v1/accounting.sol/Accounting.json +548 -0
- package/src/assets/evm/wiredev/liqEth/v1/liqEth.sol/LiqEthToken.dbg.json +4 -0
- package/src/assets/evm/wiredev/liqEth/v1/liqEth.sol/LiqEthToken.json +1233 -0
- package/src/assets/evm/wiredev/liqEth/v1/stakingModule.sol/StakingModule.dbg.json +4 -0
- package/src/assets/evm/wiredev/liqEth/v1/stakingModule.sol/StakingModule.json +1772 -0
- package/src/assets/evm/wiredev/liqEth/withdrawalQueue.sol/WithdrawalQueue.dbg.json +4 -0
- package/src/assets/evm/wiredev/liqEth/withdrawalQueue.sol/WithdrawalQueue.json +973 -0
- package/src/assets/evm/wiredev/liqEth/withdrawalVault.sol/Uint64BE.dbg.json +4 -0
- package/src/assets/evm/wiredev/liqEth/withdrawalVault.sol/Uint64BE.json +10 -0
- package/src/assets/evm/wiredev/liqEth/withdrawalVault.sol/WithdrawalVault.dbg.json +4 -0
- package/src/assets/evm/wiredev/liqEth/withdrawalVault.sol/WithdrawalVault.json +441 -0
- package/src/assets/evm/wiredev/outpost/BAR.sol/BAR.dbg.json +4 -0
- package/src/assets/evm/wiredev/outpost/BAR.sol/BAR.json +1154 -0
- package/src/assets/evm/wiredev/outpost/Depositor.sol/Depositor.dbg.json +4 -0
- package/src/assets/evm/wiredev/outpost/Depositor.sol/Depositor.json +1633 -0
- package/src/assets/evm/wiredev/outpost/EthUsdPriceConsumer.sol/AggregatorV3Interface.dbg.json +4 -0
- package/src/assets/evm/wiredev/outpost/EthUsdPriceConsumer.sol/AggregatorV3Interface.json +122 -0
- package/src/assets/evm/wiredev/outpost/EthUsdPriceConsumer.sol/EthUsdPriceConsumer.dbg.json +4 -0
- package/src/assets/evm/wiredev/outpost/EthUsdPriceConsumer.sol/EthUsdPriceConsumer.json +274 -0
- package/src/assets/evm/wiredev/outpost/InstaswapBridgeAttestations.sol/BridgeDepositCodec.dbg.json +4 -0
- package/src/assets/evm/wiredev/outpost/InstaswapBridgeAttestations.sol/BridgeDepositCodec.json +10 -0
- package/src/assets/evm/wiredev/outpost/InstaswapBridgeAttestations.sol/BridgeWithdrawCodec.dbg.json +4 -0
- package/src/assets/evm/wiredev/outpost/InstaswapBridgeAttestations.sol/BridgeWithdrawCodec.json +10 -0
- package/src/assets/evm/wiredev/outpost/InstaswapBridgeAttestations.sol/BridgeWithdrawConfirmCodec.dbg.json +4 -0
- package/src/assets/evm/wiredev/outpost/InstaswapBridgeAttestations.sol/BridgeWithdrawConfirmCodec.json +10 -0
- package/src/assets/evm/wiredev/outpost/InstaswapBridgeAttestations.sol/BridgeWithdrawFailedCodec.dbg.json +4 -0
- package/src/assets/evm/wiredev/outpost/InstaswapBridgeAttestations.sol/BridgeWithdrawFailedCodec.json +10 -0
- package/src/assets/evm/wiredev/outpost/InstaswapBridgeAttestations.sol/InstaswapBridgeAttestationTypeLib.dbg.json +4 -0
- package/src/assets/evm/wiredev/outpost/InstaswapBridgeAttestations.sol/InstaswapBridgeAttestationTypeLib.json +10 -0
- package/src/assets/evm/wiredev/outpost/LiqEthBridge.sol/IDepositorBridgeHooks.dbg.json +4 -0
- package/src/assets/evm/wiredev/outpost/LiqEthBridge.sol/IDepositorBridgeHooks.json +29 -0
- package/src/assets/evm/wiredev/outpost/LiqEthBridge.sol/LiqEthBridge.dbg.json +4 -0
- package/src/assets/evm/wiredev/outpost/LiqEthBridge.sol/LiqEthBridge.json +1076 -0
- package/src/assets/evm/wiredev/outpost/OPP.sol/OPP.dbg.json +4 -0
- package/src/assets/evm/wiredev/outpost/OPP.sol/OPP.json +1098 -0
- package/src/assets/evm/wiredev/outpost/OPPCommon.sol/IOPP.dbg.json +4 -0
- package/src/assets/evm/wiredev/outpost/OPPCommon.sol/IOPP.json +81 -0
- package/src/assets/evm/wiredev/outpost/OPPCommon.sol/IOPPEndpoint.dbg.json +4 -0
- package/src/assets/evm/wiredev/outpost/OPPCommon.sol/IOPPEndpoint.json +29 -0
- package/src/assets/evm/wiredev/outpost/OPPCommon.sol/IOPPInbound.dbg.json +4 -0
- package/src/assets/evm/wiredev/outpost/OPPCommon.sol/IOPPInbound.json +330 -0
- package/src/assets/evm/wiredev/outpost/OPPCommon.sol/IOPPReceiver.dbg.json +4 -0
- package/src/assets/evm/wiredev/outpost/OPPCommon.sol/IOPPReceiver.json +29 -0
- package/src/assets/evm/wiredev/outpost/OPPCommon.sol/IOPPSender.dbg.json +4 -0
- package/src/assets/evm/wiredev/outpost/OPPCommon.sol/IOPPSender.json +41 -0
- package/src/assets/evm/wiredev/outpost/OPPCommon.sol/OPPCommon.dbg.json +4 -0
- package/src/assets/evm/wiredev/outpost/OPPCommon.sol/OPPCommon.json +287 -0
- package/src/assets/evm/wiredev/outpost/OPPEndpoint.sol/OPPEndpoint.dbg.json +4 -0
- package/src/assets/evm/wiredev/outpost/OPPEndpoint.sol/OPPEndpoint.json +337 -0
- package/src/assets/evm/wiredev/outpost/OPPEndpointManaged.sol/OPPEndpointManaged.dbg.json +4 -0
- package/src/assets/evm/wiredev/outpost/OPPEndpointManaged.sol/OPPEndpointManaged.json +458 -0
- package/src/assets/evm/wiredev/outpost/OPPEndpointOwnable.sol/OPPEndpointOwnable.dbg.json +4 -0
- package/src/assets/evm/wiredev/outpost/OPPEndpointOwnable.sol/OPPEndpointOwnable.json +442 -0
- package/src/assets/evm/wiredev/outpost/OPPErrors.sol/OPPErrors.dbg.json +4 -0
- package/src/assets/evm/wiredev/outpost/OPPErrors.sol/OPPErrors.json +288 -0
- package/src/assets/evm/wiredev/outpost/OPPInbound.sol/OPPInbound.dbg.json +4 -0
- package/src/assets/evm/wiredev/outpost/OPPInbound.sol/OPPInbound.json +1298 -0
- package/src/assets/evm/wiredev/outpost/OPPReceiver.sol/OPPReceiver.dbg.json +4 -0
- package/src/assets/evm/wiredev/outpost/OPPReceiver.sol/OPPReceiver.json +355 -0
- package/src/assets/evm/wiredev/outpost/OPPSender.sol/OPPSender.dbg.json +4 -0
- package/src/assets/evm/wiredev/outpost/OPPSender.sol/OPPSender.json +367 -0
- package/src/assets/evm/wiredev/outpost/OperatorRegistry.sol/OperatorRegistry.dbg.json +4 -0
- package/src/assets/evm/wiredev/outpost/OperatorRegistry.sol/OperatorRegistry.json +1111 -0
- package/src/assets/evm/wiredev/outpost/OutpostErrors.sol/OutpostErrors.dbg.json +4 -0
- package/src/assets/evm/wiredev/outpost/OutpostErrors.sol/OutpostErrors.json +211 -0
- package/src/assets/evm/wiredev/outpost/OutpostManaged.sol/OutpostManaged.dbg.json +4 -0
- package/src/assets/evm/wiredev/outpost/OutpostManaged.sol/OutpostManaged.json +229 -0
- package/src/assets/evm/wiredev/outpost/OutpostManager.sol/OutpostManager.dbg.json +4 -0
- package/src/assets/evm/wiredev/outpost/OutpostManager.sol/OutpostManager.json +794 -0
- package/src/assets/evm/wiredev/outpost/OutpostManagerAuthority.sol/OutpostManagerAuthority.dbg.json +4 -0
- package/src/assets/evm/wiredev/outpost/OutpostManagerAuthority.sol/OutpostManagerAuthority.json +1432 -0
- package/src/assets/evm/wiredev/outpost/OutpostManagerCommon.sol/IOutpostManager.dbg.json +4 -0
- package/src/assets/evm/wiredev/outpost/OutpostManagerCommon.sol/IOutpostManager.json +130 -0
- package/src/assets/evm/wiredev/outpost/OutpostManagerCommon.sol/IOutpostUpgradeable.dbg.json +4 -0
- package/src/assets/evm/wiredev/outpost/OutpostManagerCommon.sol/IOutpostUpgradeable.json +29 -0
- package/src/assets/evm/wiredev/outpost/OutpostManagerCommon.sol/OutpostManagerCommon.dbg.json +4 -0
- package/src/assets/evm/wiredev/outpost/OutpostManagerCommon.sol/OutpostManagerCommon.json +141 -0
- package/src/assets/evm/wiredev/outpost/OutpostOwnable.sol/OutpostOwnable.dbg.json +4 -0
- package/src/assets/evm/wiredev/outpost/OutpostOwnable.sol/OutpostOwnable.json +213 -0
- package/src/assets/evm/wiredev/outpost/OutpostReserve.sol/OutpostReserve.dbg.json +4 -0
- package/src/assets/evm/wiredev/outpost/OutpostReserve.sol/OutpostReserve.json +931 -0
- package/src/assets/evm/wiredev/outpost/Pool.sol/Pool.dbg.json +4 -0
- package/src/assets/evm/wiredev/outpost/Pool.sol/Pool.json +659 -0
- package/src/assets/evm/wiredev/outpost/Pretoken.sol/Pretoken.dbg.json +4 -0
- package/src/assets/evm/wiredev/outpost/Pretoken.sol/Pretoken.json +1436 -0
- package/src/assets/evm/wiredev/outpost/ReceiptNFT.sol/ReceiptNFT.dbg.json +4 -0
- package/src/assets/evm/wiredev/outpost/ReceiptNFT.sol/ReceiptNFT.json +1738 -0
- package/src/assets/evm/wiredev/outpost/WireYieldHubAttestations.sol/InstaswapConfirmCodec.dbg.json +4 -0
- package/src/assets/evm/wiredev/outpost/WireYieldHubAttestations.sol/InstaswapConfirmCodec.json +10 -0
- package/src/assets/evm/wiredev/outpost/WireYieldHubAttestations.sol/InstaswapFailedCodec.dbg.json +4 -0
- package/src/assets/evm/wiredev/outpost/WireYieldHubAttestations.sol/InstaswapFailedCodec.json +10 -0
- package/src/assets/evm/wiredev/outpost/WireYieldHubAttestations.sol/InstaswapRequestCodec.dbg.json +4 -0
- package/src/assets/evm/wiredev/outpost/WireYieldHubAttestations.sol/InstaswapRequestCodec.json +10 -0
- package/src/assets/evm/wiredev/outpost/WireYieldHubAttestations.sol/InstaswapSettlementCodec.dbg.json +4 -0
- package/src/assets/evm/wiredev/outpost/WireYieldHubAttestations.sol/InstaswapSettlementCodec.json +10 -0
- package/src/assets/evm/wiredev/outpost/WireYieldHubAttestations.sol/PrincipalExitConfirmCodec.dbg.json +4 -0
- package/src/assets/evm/wiredev/outpost/WireYieldHubAttestations.sol/PrincipalExitConfirmCodec.json +10 -0
- package/src/assets/evm/wiredev/outpost/WireYieldHubAttestations.sol/PrincipalExitFailedCodec.dbg.json +4 -0
- package/src/assets/evm/wiredev/outpost/WireYieldHubAttestations.sol/PrincipalExitFailedCodec.json +10 -0
- package/src/assets/evm/wiredev/outpost/WireYieldHubAttestations.sol/PrincipalExitRequestCodec.dbg.json +4 -0
- package/src/assets/evm/wiredev/outpost/WireYieldHubAttestations.sol/PrincipalExitRequestCodec.json +10 -0
- package/src/assets/evm/wiredev/outpost/WireYieldHubAttestations.sol/PrincipalStakeDeltaCodec.dbg.json +4 -0
- package/src/assets/evm/wiredev/outpost/WireYieldHubAttestations.sol/PrincipalStakeDeltaCodec.json +10 -0
- package/src/assets/evm/wiredev/outpost/WireYieldHubAttestations.sol/WireYieldHubAssetCodec.dbg.json +4 -0
- package/src/assets/evm/wiredev/outpost/WireYieldHubAttestations.sol/WireYieldHubAssetCodec.json +10 -0
- package/src/assets/evm/wiredev/outpost/WireYieldHubAttestations.sol/WireYieldHubAttestationTypeLib.dbg.json +4 -0
- package/src/assets/evm/wiredev/outpost/WireYieldHubAttestations.sol/WireYieldHubAttestationTypeLib.json +10 -0
- package/src/assets/evm/wiredev/outpost/WireYieldHubAttestations.sol/WireYieldHubAttestations.dbg.json +4 -0
- package/src/assets/evm/wiredev/outpost/WireYieldHubAttestations.sol/WireYieldHubAttestations.json +1437 -0
- package/src/assets/evm/wiredev/outpost/WireYieldHubAttestations.sol/YieldDepositCodec.dbg.json +4 -0
- package/src/assets/evm/wiredev/outpost/WireYieldHubAttestations.sol/YieldDepositCodec.json +10 -0
- package/src/assets/evm/wiredev/outpost/interfaces/IPretoken.sol/IPretoken.dbg.json +4 -0
- package/src/assets/evm/wiredev/outpost/interfaces/IPretoken.sol/IPretoken.json +29 -0
- package/src/assets/evm/wiredev/outpost/interfaces/IWarrant.sol/IWarrant.dbg.json +4 -0
- package/src/assets/evm/wiredev/outpost/interfaces/IWarrant.sol/IWarrant.json +29 -0
- package/src/assets/evm/wiredev/outpost/token/ERC721EthEquivalentVotesUpgradeable.sol/ERC721EthEquivalentVotesUpgradeable.dbg.json +4 -0
- package/src/assets/evm/wiredev/outpost/token/ERC721EthEquivalentVotesUpgradeable.sol/ERC721EthEquivalentVotesUpgradeable.json +858 -0
- package/src/assets/evm/wiredev/outpost/token/IERC721EthEquivalent.sol/IERC721EthEquivalent.dbg.json +4 -0
- package/src/assets/evm/wiredev/outpost/token/IERC721EthEquivalent.sol/IERC721EthEquivalent.json +30 -0
- package/src/assets/evm/wiredev/token/ERC1155Token.sol/ERC1155Token.dbg.json +4 -0
- package/src/assets/evm/wiredev/token/ERC1155Token.sol/ERC1155Token.json +472 -0
- package/src/assets/evm/wiredev/token/ERC20Token.sol/ERC20Token.dbg.json +4 -0
- package/src/assets/evm/wiredev/token/ERC20Token.sol/ERC20Token.json +330 -0
- package/src/assets/evm/wiredev/token/ERC721Token.sol/ERC721Token.dbg.json +4 -0
- package/src/assets/evm/wiredev/token/ERC721Token.sol/ERC721Token.json +449 -0
- package/src/assets/evm/wiredev/token/Eman1155.sol/Eman1155.dbg.json +4 -0
- package/src/assets/evm/wiredev/token/Eman1155.sol/Eman1155.json +560 -0
- package/src/assets/evm/wiredev/token/Eman20.sol/Eman20.dbg.json +4 -0
- package/src/assets/evm/wiredev/token/Eman20.sol/Eman20.json +460 -0
- package/src/assets/evm/wiredev/token/Eman721.sol/Eman721.dbg.json +4 -0
- package/src/assets/evm/wiredev/token/Eman721.sol/Eman721.json +624 -0
- package/src/assets/solana/mainnet/idl/validator_leaderboard.json.bak +568 -0
- package/src/assets/solana/wiredev/idl/liqsol_core.json +8726 -0
- package/src/assets/solana/wiredev/idl/liqsol_token.json +217 -0
- package/src/assets/solana/wiredev/idl/transfer_hook.json +490 -0
- package/src/assets/solana/wiredev/idl/validator_leaderboard.json +735 -0
- package/src/assets/solana/wiredev/types/liqsol_core.ts +8732 -0
- package/src/assets/solana/wiredev/types/liqsol_token.ts +223 -0
- package/src/assets/solana/wiredev/types/transfer_hook.ts +496 -0
- package/src/assets/solana/wiredev/types/validator_leaderboard.ts +741 -0
- package/src/chains.ts +165 -0
- package/src/index.ts +7 -3
- package/src/networks/{ethereum → evm}/clients/convert.client.ts +8 -3
- package/src/networks/evm/clients/instaswap.client.ts +440 -0
- package/src/networks/{ethereum → evm}/clients/opp.client.ts +3 -3
- package/src/networks/{ethereum → evm}/clients/pretoken.client.ts +11 -6
- package/src/networks/{ethereum → evm}/clients/receipt.client.ts +3 -3
- package/src/networks/{ethereum → evm}/clients/stake.client.ts +144 -20
- package/src/networks/{ethereum → evm}/clients/validator.client.ts +3 -3
- package/src/networks/{ethereum → evm}/contract.ts +207 -116
- package/src/networks/{ethereum/ethereum.ts → evm/evm.ts} +214 -68
- package/src/networks/{ethereum → evm}/utils.ts +56 -4
- package/src/networks/solana/clients/convert.client.ts +47 -11
- package/src/networks/solana/clients/distribution.client.ts +17 -13
- package/src/networks/solana/clients/instaswap.client.ts +486 -0
- package/src/networks/solana/clients/leaderboard.client.ts +4 -5
- package/src/networks/solana/clients/outpost.client.ts +110 -47
- package/src/networks/solana/clients/token.client.ts +20 -11
- package/src/networks/solana/constants.ts +27 -7
- package/src/networks/solana/program.ts +104 -19
- package/src/networks/solana/solana.ts +145 -15
- package/src/networks/solana/types.ts +1 -2
- package/src/networks/solana/utils.ts +36 -4
- package/src/staker.ts +22 -20
- package/src/status.ts +301 -0
- package/src/types.ts +6 -11
- /package/src/assets/{ethereum → evm}/mainnet/common/Base58.sol/Base58.dbg.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/common/Base58.sol/Base58.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/common/OpenZepArtifacts.sol/__Dummy_OZ_UUPS__.dbg.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/common/OpenZepArtifacts.sol/__Dummy_OZ_UUPS__.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/common/RestrictedCallers.sol/RestrictedCallers.dbg.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/common/RestrictedCallers.sol/RestrictedCallers.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/common/iodata.sol/iodata.dbg.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/common/iodata.sol/iodata.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/common/iodata_util.sol/iodata_util.dbg.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/common/iodata_util.sol/iodata_util.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/common/sysio_data.sol/sysio_data.dbg.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/common/sysio_data.sol/sysio_data.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/common/sysio_errors.sol/sysio_errors.dbg.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/common/sysio_errors.sol/sysio_errors.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/common/sysio_merkle.sol/sysio_merkle.dbg.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/common/sysio_merkle.sol/sysio_merkle.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/common/sysio_name.sol/sysio_name.dbg.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/common/sysio_name.sol/sysio_name.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/common/sysio_pubkey.sol/sysio_pubkey.dbg.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/common/sysio_pubkey.sol/sysio_pubkey.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/common/sysio_read.sol/sysio_read.dbg.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/common/sysio_read.sol/sysio_read.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/common/sysio_tester.sol/SysioTester.dbg.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/common/sysio_tester.sol/SysioTester.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/common/sysio_verify.sol/sysio_verify.dbg.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/common/sysio_verify.sol/sysio_verify.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/common/sysio_write.sol/sysio_write.dbg.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/common/sysio_write.sol/sysio_write.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/liqEth/BeaconState.sol/BeaconState.dbg.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/liqEth/BeaconState.sol/BeaconState.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/liqEth/DepositManager.sol/DepositManagerV2.dbg.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/liqEth/DepositManager.sol/DepositManagerV2.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/liqEth/DepositManager.sol/IStakingModuleBondLocker.dbg.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/liqEth/DepositManager.sol/IStakingModuleBondLocker.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/liqEth/KeyBondManager.sol/KeyBondManager.dbg.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/liqEth/KeyBondManager.sol/KeyBondManager.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/liqEth/LiqEthAuthority.sol/LiqEthAuthority.dbg.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/liqEth/LiqEthAuthority.sol/LiqEthAuthority.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/liqEth/LiqEthCommon.sol/IDepositContract.dbg.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/liqEth/LiqEthCommon.sol/IDepositContract.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/liqEth/LiqEthCommon.sol/IDepositManager.dbg.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/liqEth/LiqEthCommon.sol/IDepositManager.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/liqEth/LiqEthCommon.sol/IKeyBondManager.dbg.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/liqEth/LiqEthCommon.sol/IKeyBondManager.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/liqEth/LiqEthCommon.sol/ILiqEthUpgradeable.dbg.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/liqEth/LiqEthCommon.sol/ILiqEthUpgradeable.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/liqEth/LiqEthCommon.sol/IRewardsERC20.dbg.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/liqEth/LiqEthCommon.sol/IRewardsERC20.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/liqEth/LiqEthCommon.sol/IRewardsERC20Pausable.dbg.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/liqEth/LiqEthCommon.sol/IRewardsERC20Pausable.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/liqEth/LiqEthCommon.sol/IStakingModule.dbg.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/liqEth/LiqEthCommon.sol/IStakingModule.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/liqEth/LiqEthCommon.sol/IValidatorBalanceVerifier.dbg.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/liqEth/LiqEthCommon.sol/IValidatorBalanceVerifier.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/liqEth/LiqEthCommon.sol/IWithdrawalRecord.dbg.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/liqEth/LiqEthCommon.sol/IWithdrawalRecord.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/liqEth/LiqEthCommon.sol/LiqEthCommon.dbg.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/liqEth/LiqEthCommon.sol/LiqEthCommon.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/liqEth/LiqEthDeepFreeze.sol/LiqEthDeepFreeze.dbg.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/liqEth/LiqEthDeepFreeze.sol/LiqEthDeepFreeze.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/liqEth/LiqEthManaged.sol/LiqEthManaged.dbg.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/liqEth/LiqEthManaged.sol/LiqEthManaged.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/liqEth/RewardsERC20.sol/RewardsERC20UpgradeableV2.dbg.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/liqEth/RewardsERC20.sol/RewardsERC20UpgradeableV2.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/liqEth/RewardsERC20Pausable.sol/RewardsERC20PausableUpgradeableV2.dbg.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/liqEth/RewardsERC20Pausable.sol/RewardsERC20PausableUpgradeableV2.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/liqEth/StakingLib.sol/StakingLib.dbg.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/liqEth/StakingLib.sol/StakingLib.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/liqEth/Yield.sol/YieldOracle.dbg.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/liqEth/Yield.sol/YieldOracle.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/liqEth/liqEth.sol/LiqEthTokenV2.dbg.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/liqEth/liqEth.sol/LiqEthTokenV2.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/liqEth/stakingModule.sol/StakingModuleV2.dbg.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/liqEth/stakingModule.sol/StakingModuleV2.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/liqEth/v1/DepositManager.sol/DepositManager.dbg.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/liqEth/v1/DepositManager.sol/DepositManager.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/liqEth/v1/LiqEthCommon.sol/IAccounting.dbg.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/liqEth/v1/LiqEthCommon.sol/IAccounting.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/liqEth/v1/LiqEthCommon.sol/IDepositContract.dbg.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/liqEth/v1/LiqEthCommon.sol/IDepositContract.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/liqEth/v1/LiqEthCommon.sol/IDepositManager.dbg.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/liqEth/v1/LiqEthCommon.sol/IDepositManager.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/liqEth/v1/LiqEthCommon.sol/ILiqEthUpgradeable.dbg.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/liqEth/v1/LiqEthCommon.sol/ILiqEthUpgradeable.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/liqEth/v1/LiqEthCommon.sol/IRewardsERC20.dbg.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/liqEth/v1/LiqEthCommon.sol/IRewardsERC20.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/liqEth/v1/LiqEthCommon.sol/IRewardsERC20Pausable.dbg.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/liqEth/v1/LiqEthCommon.sol/IRewardsERC20Pausable.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/liqEth/v1/LiqEthCommon.sol/IStakingModule.dbg.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/liqEth/v1/LiqEthCommon.sol/IStakingModule.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/liqEth/v1/LiqEthCommon.sol/IValidatorBalanceVerifier.dbg.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/liqEth/v1/LiqEthCommon.sol/IValidatorBalanceVerifier.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/liqEth/v1/LiqEthCommon.sol/IWithdrawalRecord.dbg.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/liqEth/v1/LiqEthCommon.sol/IWithdrawalRecord.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/liqEth/v1/LiqEthCommon.sol/LiqEthCommon.dbg.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/liqEth/v1/LiqEthCommon.sol/LiqEthCommon.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/liqEth/v1/RewardsERC20.sol/RewardsERC20Upgradeable.dbg.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/liqEth/v1/RewardsERC20.sol/RewardsERC20Upgradeable.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/liqEth/v1/RewardsERC20Pausable.sol/RewardsERC20PausableUpgradeable.dbg.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/liqEth/v1/RewardsERC20Pausable.sol/RewardsERC20PausableUpgradeable.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/liqEth/v1/accounting.sol/Accounting.dbg.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/liqEth/v1/accounting.sol/Accounting.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/liqEth/v1/liqEth.sol/LiqEthToken.dbg.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/liqEth/v1/liqEth.sol/LiqEthToken.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/liqEth/v1/stakingModule.sol/StakingModule.dbg.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/liqEth/v1/stakingModule.sol/StakingModule.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/liqEth/withdrawalQueue.sol/WithdrawalQueue.dbg.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/liqEth/withdrawalQueue.sol/WithdrawalQueue.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/liqEth/withdrawalVault.sol/Uint64BE.dbg.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/liqEth/withdrawalVault.sol/Uint64BE.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/liqEth/withdrawalVault.sol/WithdrawalVault.dbg.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/liqEth/withdrawalVault.sol/WithdrawalVault.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/outpost/BAR.sol/BARV2.dbg.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/outpost/BAR.sol/BARV2.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/outpost/Depositor.sol/DepositorV2.dbg.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/outpost/Depositor.sol/DepositorV2.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/outpost/EthUsdPriceConsumer.sol/AggregatorV3Interface.dbg.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/outpost/EthUsdPriceConsumer.sol/AggregatorV3Interface.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/outpost/EthUsdPriceConsumer.sol/EthUsdPriceConsumer.dbg.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/outpost/EthUsdPriceConsumer.sol/EthUsdPriceConsumer.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/outpost/OPP.sol/OPP.dbg.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/outpost/OPP.sol/OPP.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/outpost/OPPCommon.sol/IOPP.dbg.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/outpost/OPPCommon.sol/IOPP.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/outpost/OPPCommon.sol/IOPPEndpoint.dbg.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/outpost/OPPCommon.sol/IOPPEndpoint.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/outpost/OPPCommon.sol/IOPPInbound.dbg.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/outpost/OPPCommon.sol/IOPPInbound.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/outpost/OPPCommon.sol/IOPPReceiver.dbg.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/outpost/OPPCommon.sol/IOPPReceiver.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/outpost/OPPCommon.sol/IOPPSender.dbg.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/outpost/OPPCommon.sol/IOPPSender.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/outpost/OPPCommon.sol/OPPCommon.dbg.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/outpost/OPPCommon.sol/OPPCommon.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/outpost/OPPEndpoint.sol/OPPEndpoint.dbg.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/outpost/OPPEndpoint.sol/OPPEndpoint.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/outpost/OPPEndpointManaged.sol/OPPEndpointManaged.dbg.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/outpost/OPPEndpointManaged.sol/OPPEndpointManaged.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/outpost/OPPEndpointOwnable.sol/OPPEndpointOwnable.dbg.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/outpost/OPPEndpointOwnable.sol/OPPEndpointOwnable.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/outpost/OPPErrors.sol/OPPErrors.dbg.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/outpost/OPPErrors.sol/OPPErrors.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/outpost/OPPInbound.sol/OPPInbound.dbg.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/outpost/OPPInbound.sol/OPPInbound.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/outpost/OPPReceiver.sol/OPPReceiver.dbg.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/outpost/OPPReceiver.sol/OPPReceiver.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/outpost/OPPSender.sol/OPPSender.dbg.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/outpost/OPPSender.sol/OPPSender.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/outpost/OutpostErrors.sol/OutpostErrors.dbg.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/outpost/OutpostErrors.sol/OutpostErrors.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/outpost/OutpostManaged.sol/OutpostManaged.dbg.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/outpost/OutpostManaged.sol/OutpostManaged.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/outpost/OutpostManager.sol/OutpostManagerV2.dbg.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/outpost/OutpostManager.sol/OutpostManagerV2.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/outpost/OutpostManagerAuthority.sol/OutpostManagerAuthority.dbg.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/outpost/OutpostManagerAuthority.sol/OutpostManagerAuthority.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/outpost/OutpostManagerCommon.sol/IOutpostManager.dbg.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/outpost/OutpostManagerCommon.sol/IOutpostManager.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/outpost/OutpostManagerCommon.sol/IOutpostUpgradeable.dbg.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/outpost/OutpostManagerCommon.sol/IOutpostUpgradeable.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/outpost/OutpostManagerCommon.sol/OutpostManagerCommon.dbg.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/outpost/OutpostManagerCommon.sol/OutpostManagerCommon.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/outpost/OutpostOwnable.sol/OutpostOwnable.dbg.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/outpost/OutpostOwnable.sol/OutpostOwnable.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/outpost/Pool.sol/PoolV2.dbg.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/outpost/Pool.sol/PoolV2.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/outpost/Pretoken.sol/PretokenV2.dbg.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/outpost/Pretoken.sol/PretokenV2.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/outpost/ReceiptNFT.sol/ReceiptNFT.dbg.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/outpost/ReceiptNFT.sol/ReceiptNFT.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/outpost/interfaces/IPretoken.sol/IPretoken.dbg.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/outpost/interfaces/IPretoken.sol/IPretoken.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/outpost/interfaces/IWarrant.sol/IWarrant.dbg.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/outpost/interfaces/IWarrant.sol/IWarrant.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/outpost/token/ERC721EthEquivalentVotesUpgradeable.sol/ERC721EthEquivalentVotesUpgradeable.dbg.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/outpost/token/ERC721EthEquivalentVotesUpgradeable.sol/ERC721EthEquivalentVotesUpgradeable.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/outpost/token/IERC721EthEquivalent.sol/IERC721EthEquivalent.dbg.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/outpost/token/IERC721EthEquivalent.sol/IERC721EthEquivalent.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/outpost/v1/BAR.sol/BAR.dbg.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/outpost/v1/BAR.sol/BAR.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/outpost/v1/Depositor.sol/Depositor.dbg.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/outpost/v1/Depositor.sol/Depositor.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/outpost/v1/OutpostManager.sol/OutpostManager.dbg.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/outpost/v1/OutpostManager.sol/OutpostManager.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/outpost/v1/Pool.sol/Pool.dbg.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/outpost/v1/Pool.sol/Pool.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/outpost/v1/Pretoken.sol/Pretoken.dbg.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/outpost/v1/Pretoken.sol/Pretoken.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/token/ERC1155Token.sol/ERC1155Token.dbg.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/token/ERC1155Token.sol/ERC1155Token.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/token/ERC20Token.sol/ERC20Token.dbg.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/token/ERC20Token.sol/ERC20Token.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/token/ERC721Token.sol/ERC721Token.dbg.json +0 -0
- /package/src/assets/{ethereum → evm}/mainnet/token/ERC721Token.sol/ERC721Token.json +0 -0
- /package/src/networks/{ethereum → evm}/types.ts +0 -0
package/src/chains.ts
ADDED
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
import { ChainID, Curve, EvmChainID, SolChainID } from '@wireio/core';
|
|
2
|
+
|
|
3
|
+
export const EVM_WIRE_DEVNET_CHAIN_ID = 31337;
|
|
4
|
+
export const SOL_WIRE_DEVNET_CHAIN_ID = 'devnet-wire';
|
|
5
|
+
export const MONAD_TESTNET_CHAIN_ID = 10143;
|
|
6
|
+
export const POLYGON_AMOY_CHAIN_ID = 80002;
|
|
7
|
+
|
|
8
|
+
export type ChainFamily = 'evm' | 'solana';
|
|
9
|
+
export type ChainAssetKey =
|
|
10
|
+
| 'ethereum'
|
|
11
|
+
| 'hoodi'
|
|
12
|
+
| 'wiredev'
|
|
13
|
+
| 'monad-testnet'
|
|
14
|
+
| 'polygon-amoy'
|
|
15
|
+
| 'solana-mainnet'
|
|
16
|
+
| 'solana-devnet';
|
|
17
|
+
|
|
18
|
+
export type ChainCapabilities = {
|
|
19
|
+
connect: boolean;
|
|
20
|
+
readNativeBalance: boolean;
|
|
21
|
+
staking: boolean;
|
|
22
|
+
outpost: boolean;
|
|
23
|
+
instaswap: boolean;
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
export type SdkChainConfig = {
|
|
27
|
+
chainId: ChainID | number | string;
|
|
28
|
+
family: ChainFamily;
|
|
29
|
+
curve: Curve;
|
|
30
|
+
name: string;
|
|
31
|
+
assetKey: ChainAssetKey;
|
|
32
|
+
nativeSymbol: string;
|
|
33
|
+
liqSymbol?: string;
|
|
34
|
+
capabilities: ChainCapabilities;
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
const FULL_OUTPOST: ChainCapabilities = {
|
|
38
|
+
connect: true,
|
|
39
|
+
readNativeBalance: true,
|
|
40
|
+
staking: true,
|
|
41
|
+
outpost: true,
|
|
42
|
+
instaswap: true,
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
const CONNECT_READ_ONLY: ChainCapabilities = {
|
|
46
|
+
connect: true,
|
|
47
|
+
readNativeBalance: true,
|
|
48
|
+
staking: false,
|
|
49
|
+
outpost: false,
|
|
50
|
+
instaswap: false,
|
|
51
|
+
};
|
|
52
|
+
|
|
53
|
+
export const SDK_CHAIN_REGISTRY = [
|
|
54
|
+
{
|
|
55
|
+
chainId: EvmChainID.Ethereum,
|
|
56
|
+
family: 'evm',
|
|
57
|
+
curve: Curve.EC,
|
|
58
|
+
name: 'Ethereum Mainnet',
|
|
59
|
+
assetKey: 'ethereum',
|
|
60
|
+
nativeSymbol: 'ETH',
|
|
61
|
+
liqSymbol: 'LiqETH',
|
|
62
|
+
capabilities: FULL_OUTPOST,
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
chainId: EVM_WIRE_DEVNET_CHAIN_ID,
|
|
66
|
+
family: 'evm',
|
|
67
|
+
curve: Curve.EC,
|
|
68
|
+
name: 'EVM Wire Devnet',
|
|
69
|
+
assetKey: 'wiredev',
|
|
70
|
+
nativeSymbol: 'ETH',
|
|
71
|
+
liqSymbol: 'LiqETH',
|
|
72
|
+
capabilities: FULL_OUTPOST,
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
chainId: EvmChainID.Hoodi,
|
|
76
|
+
family: 'evm',
|
|
77
|
+
curve: Curve.EC,
|
|
78
|
+
name: 'Hoodi Testnet',
|
|
79
|
+
assetKey: 'hoodi',
|
|
80
|
+
nativeSymbol: 'ETH',
|
|
81
|
+
liqSymbol: 'LiqETH',
|
|
82
|
+
capabilities: CONNECT_READ_ONLY,
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
chainId: MONAD_TESTNET_CHAIN_ID,
|
|
86
|
+
family: 'evm',
|
|
87
|
+
curve: Curve.EC,
|
|
88
|
+
name: 'Monad Testnet',
|
|
89
|
+
assetKey: 'monad-testnet',
|
|
90
|
+
nativeSymbol: 'MON',
|
|
91
|
+
liqSymbol: 'LiqMON',
|
|
92
|
+
capabilities: CONNECT_READ_ONLY,
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
chainId: POLYGON_AMOY_CHAIN_ID,
|
|
96
|
+
family: 'evm',
|
|
97
|
+
curve: Curve.EC,
|
|
98
|
+
name: 'Polygon Amoy',
|
|
99
|
+
assetKey: 'polygon-amoy',
|
|
100
|
+
nativeSymbol: 'POL',
|
|
101
|
+
liqSymbol: 'LiqPOL',
|
|
102
|
+
capabilities: CONNECT_READ_ONLY,
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
chainId: SolChainID.Mainnet,
|
|
106
|
+
family: 'solana',
|
|
107
|
+
curve: Curve.ED,
|
|
108
|
+
name: 'Solana Mainnet',
|
|
109
|
+
assetKey: 'solana-mainnet',
|
|
110
|
+
nativeSymbol: 'SOL',
|
|
111
|
+
liqSymbol: 'LiqSOL',
|
|
112
|
+
capabilities: FULL_OUTPOST,
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
chainId: SolChainID.Devnet,
|
|
116
|
+
family: 'solana',
|
|
117
|
+
curve: Curve.ED,
|
|
118
|
+
name: 'Solana Devnet',
|
|
119
|
+
assetKey: 'solana-devnet',
|
|
120
|
+
nativeSymbol: 'SOL',
|
|
121
|
+
liqSymbol: 'LiqSOL',
|
|
122
|
+
capabilities: FULL_OUTPOST,
|
|
123
|
+
},
|
|
124
|
+
{
|
|
125
|
+
chainId: SOL_WIRE_DEVNET_CHAIN_ID,
|
|
126
|
+
family: 'solana',
|
|
127
|
+
curve: Curve.ED,
|
|
128
|
+
name: 'Solana Wire Devnet',
|
|
129
|
+
assetKey: 'wiredev',
|
|
130
|
+
nativeSymbol: 'SOL',
|
|
131
|
+
liqSymbol: 'LiqSOL',
|
|
132
|
+
capabilities: FULL_OUTPOST,
|
|
133
|
+
},
|
|
134
|
+
] as const satisfies readonly SdkChainConfig[];
|
|
135
|
+
|
|
136
|
+
export type SupportedEvmContractChainID =
|
|
137
|
+
| EvmChainID.Ethereum
|
|
138
|
+
| EvmChainID.Hoodi
|
|
139
|
+
| typeof EVM_WIRE_DEVNET_CHAIN_ID;
|
|
140
|
+
|
|
141
|
+
export type SupportedSolProgramChainID =
|
|
142
|
+
| SolChainID.Mainnet
|
|
143
|
+
| SolChainID.Devnet
|
|
144
|
+
| typeof SOL_WIRE_DEVNET_CHAIN_ID;
|
|
145
|
+
|
|
146
|
+
export function getSdkChainConfig(chainId: ChainID | number | string | undefined): SdkChainConfig | undefined {
|
|
147
|
+
if (chainId == null) return undefined;
|
|
148
|
+
return SDK_CHAIN_REGISTRY.find((entry) => String(entry.chainId) === String(chainId));
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
export function hasSdkStakingClient(chainId: ChainID | number | string | undefined): boolean {
|
|
152
|
+
return !!getSdkChainConfig(chainId)?.capabilities.staking;
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
export function isSupportedEvmContractChain(chainId: ChainID | number | string | undefined): chainId is SupportedEvmContractChainID {
|
|
156
|
+
return String(chainId) === String(EvmChainID.Ethereum)
|
|
157
|
+
|| String(chainId) === String(EvmChainID.Hoodi)
|
|
158
|
+
|| String(chainId) === String(EVM_WIRE_DEVNET_CHAIN_ID);
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
export function isSupportedSolProgramChain(chainId: ChainID | number | string | undefined): chainId is SupportedSolProgramChainID {
|
|
162
|
+
return String(chainId) === String(SolChainID.Mainnet)
|
|
163
|
+
|| String(chainId) === String(SolChainID.Devnet)
|
|
164
|
+
|| String(chainId) === String(SOL_WIRE_DEVNET_CHAIN_ID);
|
|
165
|
+
}
|
package/src/index.ts
CHANGED
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
// Staker utilities
|
|
2
2
|
export * from './staker';
|
|
3
3
|
export * from './types';
|
|
4
|
+
export * from './status';
|
|
5
|
+
export * from './chains';
|
|
4
6
|
|
|
5
7
|
// NETWORKS
|
|
6
|
-
export * from './networks/
|
|
7
|
-
export * from './networks/
|
|
8
|
-
export * as
|
|
8
|
+
export * from './networks/evm/evm';
|
|
9
|
+
export * from './networks/evm/contract';
|
|
10
|
+
export * as EVM from './networks/evm/types';
|
|
11
|
+
export * from './networks/evm/clients/instaswap.client';
|
|
9
12
|
|
|
10
13
|
export * from './networks/solana/solana';
|
|
11
14
|
export * from './networks/solana/constants';
|
|
@@ -15,6 +18,7 @@ export * from './networks/solana/utils';
|
|
|
15
18
|
// CLIENTS
|
|
16
19
|
export * from './networks/solana/clients/convert.client';
|
|
17
20
|
export * from './networks/solana/clients/distribution.client';
|
|
21
|
+
export * from './networks/solana/clients/instaswap.client';
|
|
18
22
|
export * from './networks/solana/clients/leaderboard.client';
|
|
19
23
|
export * from './networks/solana/clients/outpost.client';
|
|
20
24
|
export * from './networks/solana/clients/token.client';
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import { BigNumber, ethers } from "ethers";
|
|
2
2
|
import { ClaimedEvent, DepositEvent, DepositResult, SharesBurnedEvent } from "../types";
|
|
3
|
-
import {
|
|
3
|
+
import { EvmContractService } from "../contract";
|
|
4
4
|
import { formatContractErrors } from "../utils";
|
|
5
5
|
|
|
6
6
|
export class ConvertClient {
|
|
7
7
|
|
|
8
|
-
private readonly contractService:
|
|
8
|
+
private readonly contractService: EvmContractService;
|
|
9
9
|
|
|
10
10
|
get contract() { return this.contractService.contract; }
|
|
11
11
|
|
|
12
|
-
constructor(contract:
|
|
12
|
+
constructor(contract: EvmContractService) {
|
|
13
13
|
this.contractService = contract;
|
|
14
14
|
}
|
|
15
15
|
|
|
@@ -51,6 +51,11 @@ export class ConvertClient {
|
|
|
51
51
|
);
|
|
52
52
|
}
|
|
53
53
|
|
|
54
|
+
// test the transaction with callStatic to get any revert reasons before sending an actual transaction
|
|
55
|
+
await this.contract.DepositManager.callStatic.deposit({
|
|
56
|
+
value: amountWei,
|
|
57
|
+
});
|
|
58
|
+
|
|
54
59
|
let tx, receipt;
|
|
55
60
|
try {
|
|
56
61
|
tx = await this.contract.DepositManager.deposit({ value: amountWei });
|
|
@@ -0,0 +1,440 @@
|
|
|
1
|
+
import { BigNumber, ethers } from 'ethers';
|
|
2
|
+
|
|
3
|
+
import { EvmContractService } from '../contract';
|
|
4
|
+
import { resolveContractWriteOverrides, sendOPPFinalize } from '../utils';
|
|
5
|
+
import WiredevLiqEthBridgeArtifact from '../../../assets/evm/wiredev/outpost/LiqEthBridge.sol/LiqEthBridge.json';
|
|
6
|
+
import { EVM_WIRE_DEVNET_CHAIN_ID } from '../../../chains';
|
|
7
|
+
|
|
8
|
+
export type EvmInstaswapSubmitParams = {
|
|
9
|
+
amountWei: ethers.BigNumberish;
|
|
10
|
+
destinationChain: number | string | bigint;
|
|
11
|
+
destinationAddress: Uint8Array;
|
|
12
|
+
minOutWei: ethers.BigNumberish;
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
export type EvmInstaswapSubmitHooks = {
|
|
16
|
+
onSubmitted?: (txHash: string) => void | Promise<void>;
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
export type EvmEnsureLiqEthBalanceParams = {
|
|
20
|
+
targetAmountWei: ethers.BigNumberish;
|
|
21
|
+
bufferBps?: number;
|
|
22
|
+
extraNativeWei?: ethers.BigNumberish;
|
|
23
|
+
maxAttempts?: number;
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
export type EvmDepositToWireParams = {
|
|
27
|
+
quantityWei: ethers.BigNumberish;
|
|
28
|
+
recipient: string;
|
|
29
|
+
topUpBufferBps?: number;
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
export type EvmInstaswapOutpostAddresses = {
|
|
33
|
+
liqEthToken: string;
|
|
34
|
+
depositManager: string;
|
|
35
|
+
depositor: string;
|
|
36
|
+
opp: string;
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
export type EvmInstaswapConnectedBalances = {
|
|
40
|
+
nativeWei: string;
|
|
41
|
+
liqEthWei: string;
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
type ParsedContractError = {
|
|
45
|
+
name: string;
|
|
46
|
+
signature?: string;
|
|
47
|
+
args?: unknown[];
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
type EnsureLiqEthBalanceResult = {
|
|
51
|
+
balance: BigNumber;
|
|
52
|
+
lastTxHash: string;
|
|
53
|
+
};
|
|
54
|
+
|
|
55
|
+
type EvmBridgeConfig = {
|
|
56
|
+
oppAddress: string;
|
|
57
|
+
liqEthBridgeAddress: string;
|
|
58
|
+
};
|
|
59
|
+
|
|
60
|
+
const DEFAULT_BUFFER_BPS = 100;
|
|
61
|
+
const DEFAULT_MAX_TOP_UP_ATTEMPTS = 3;
|
|
62
|
+
const LOCAL_EVM_BRIDGE_BY_CHAIN: Partial<Record<number, EvmBridgeConfig>> = {
|
|
63
|
+
[Number(EVM_WIRE_DEVNET_CHAIN_ID)]: {
|
|
64
|
+
oppAddress: '0x7969c5eD335650692Bc04293B07F5BF2e7A673C0',
|
|
65
|
+
liqEthBridgeAddress: '0x162A433068F51e18b7d13932F27e66a3f99E6890',
|
|
66
|
+
},
|
|
67
|
+
};
|
|
68
|
+
|
|
69
|
+
export class EvmInstaswapClient {
|
|
70
|
+
constructor(
|
|
71
|
+
private readonly contractService: EvmContractService,
|
|
72
|
+
private readonly signer?: ethers.Signer,
|
|
73
|
+
private readonly chainId?: number,
|
|
74
|
+
private readonly rpcUrl?: string,
|
|
75
|
+
) { }
|
|
76
|
+
|
|
77
|
+
async submitCrossChain(
|
|
78
|
+
params: EvmInstaswapSubmitParams,
|
|
79
|
+
hooks?: EvmInstaswapSubmitHooks,
|
|
80
|
+
): Promise<string> {
|
|
81
|
+
const signer = this.requireSigner();
|
|
82
|
+
const owner = await signer.getAddress();
|
|
83
|
+
const amountIn = BigNumber.from(params.amountWei);
|
|
84
|
+
const minOut = BigNumber.from(params.minOutWei);
|
|
85
|
+
const destinationChain = BigNumber.from(params.destinationChain.toString());
|
|
86
|
+
const destinationAddress = Uint8Array.from(params.destinationAddress);
|
|
87
|
+
|
|
88
|
+
const liqEthRead = this.contractService.getReadOnly('LiqEthToken');
|
|
89
|
+
const liqEthWrite = this.contractService.getWrite('LiqEthToken');
|
|
90
|
+
const depositorWrite = this.contractService.getWrite('Depositor');
|
|
91
|
+
|
|
92
|
+
const currentBalance = await liqEthRead['balanceOf'](owner);
|
|
93
|
+
if (currentBalance.lt(amountIn)) {
|
|
94
|
+
throw new Error('Insufficient LIQETH balance for the outpost swap.');
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
const depositorAddress = this.contractService.getAddress('Depositor');
|
|
98
|
+
const allowance = await liqEthRead['allowance'](owner, depositorAddress);
|
|
99
|
+
if (allowance.lt(amountIn)) {
|
|
100
|
+
const approvalTx = await liqEthWrite['approve'](depositorAddress, amountIn);
|
|
101
|
+
const approvalReceipt = await approvalTx.wait();
|
|
102
|
+
if (!approvalReceipt || approvalReceipt.status === 0) {
|
|
103
|
+
throw new Error(`EVM approval transaction ${approvalTx.hash} reverted.`);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
await this.runPreflight(
|
|
108
|
+
depositorWrite,
|
|
109
|
+
owner,
|
|
110
|
+
amountIn,
|
|
111
|
+
destinationChain,
|
|
112
|
+
destinationAddress,
|
|
113
|
+
minOut,
|
|
114
|
+
);
|
|
115
|
+
|
|
116
|
+
const txOverrides = await resolveContractWriteOverrides(
|
|
117
|
+
depositorWrite,
|
|
118
|
+
'instaswapCrossChain',
|
|
119
|
+
[amountIn, destinationChain, destinationAddress, minOut],
|
|
120
|
+
);
|
|
121
|
+
|
|
122
|
+
const swapTx = await depositorWrite['instaswapCrossChain'](
|
|
123
|
+
amountIn,
|
|
124
|
+
destinationChain,
|
|
125
|
+
destinationAddress,
|
|
126
|
+
minOut,
|
|
127
|
+
txOverrides,
|
|
128
|
+
);
|
|
129
|
+
await hooks?.onSubmitted?.(swapTx.hash);
|
|
130
|
+
|
|
131
|
+
const receipt = await swapTx.wait();
|
|
132
|
+
if (!receipt || receipt.status === 0) {
|
|
133
|
+
throw new Error(`EVM transaction ${swapTx.hash} reverted.`);
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
return swapTx.hash;
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
async ensureLiqEthBalance(params: EvmEnsureLiqEthBalanceParams): Promise<EnsureLiqEthBalanceResult> {
|
|
140
|
+
const signer = this.requireSigner();
|
|
141
|
+
const owner = await signer.getAddress();
|
|
142
|
+
const targetAmount = BigNumber.from(params.targetAmountWei);
|
|
143
|
+
const bufferBps = params.bufferBps ?? 0;
|
|
144
|
+
const extraNativeWei = params.extraNativeWei == null
|
|
145
|
+
? ethers.constants.Zero
|
|
146
|
+
: BigNumber.from(params.extraNativeWei);
|
|
147
|
+
const maxAttempts = params.maxAttempts ?? DEFAULT_MAX_TOP_UP_ATTEMPTS;
|
|
148
|
+
let lastTxHash = '';
|
|
149
|
+
|
|
150
|
+
let currentBalance = await this.getLiqEthBalance(owner);
|
|
151
|
+
for (let attempt = 0; attempt < maxAttempts && currentBalance.lt(targetAmount); attempt += 1) {
|
|
152
|
+
const shortfall = targetAmount.sub(currentBalance);
|
|
153
|
+
const buffered = shortfall.mul(10_000 + bufferBps).div(10_000);
|
|
154
|
+
const topUpValue = buffered.add(extraNativeWei);
|
|
155
|
+
lastTxHash = await this.depositNativeForLiqEth(topUpValue);
|
|
156
|
+
currentBalance = await this.getLiqEthBalance(owner);
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
if (currentBalance.lt(targetAmount)) {
|
|
160
|
+
throw new Error('Insufficient LIQETH balance after topping up from native ETH.');
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
return {
|
|
164
|
+
balance: currentBalance,
|
|
165
|
+
lastTxHash,
|
|
166
|
+
};
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
async depositToWire(
|
|
170
|
+
params: EvmDepositToWireParams,
|
|
171
|
+
hooks?: EvmInstaswapSubmitHooks,
|
|
172
|
+
): Promise<string> {
|
|
173
|
+
const signer = this.requireSigner();
|
|
174
|
+
const quantity = BigNumber.from(params.quantityWei);
|
|
175
|
+
const recipient = params.recipient.trim();
|
|
176
|
+
if (!recipient) {
|
|
177
|
+
throw new Error('Wire recipient is required.');
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
await this.ensureLiqEthBalance({
|
|
181
|
+
targetAmountWei: quantity,
|
|
182
|
+
bufferBps: params.topUpBufferBps ?? DEFAULT_BUFFER_BPS,
|
|
183
|
+
});
|
|
184
|
+
|
|
185
|
+
const owner = await signer.getAddress();
|
|
186
|
+
const liqEthRead = this.contractService.getReadOnly('LiqEthToken');
|
|
187
|
+
const bridge = this.getLiqEthBridgeContract();
|
|
188
|
+
const bridgeAddress = bridge.address;
|
|
189
|
+
|
|
190
|
+
const allowance = await liqEthRead['allowance'](owner, bridgeAddress);
|
|
191
|
+
if (allowance.lt(quantity)) {
|
|
192
|
+
const approvalTx = await this.contractService.getWrite('LiqEthToken')['approve'](
|
|
193
|
+
bridgeAddress,
|
|
194
|
+
quantity,
|
|
195
|
+
);
|
|
196
|
+
const approvalReceipt = await approvalTx.wait();
|
|
197
|
+
if (!approvalReceipt || approvalReceipt.status === 0) {
|
|
198
|
+
throw new Error(`EVM approval transaction ${approvalTx.hash} reverted.`);
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
const depositTx = await bridge['depositToWire'](quantity, recipient);
|
|
203
|
+
await hooks?.onSubmitted?.(depositTx.hash);
|
|
204
|
+
const depositReceipt = await depositTx.wait();
|
|
205
|
+
if (!depositReceipt || depositReceipt.status === 0) {
|
|
206
|
+
throw new Error(`EVM transaction ${depositTx.hash} reverted.`);
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
await this.reconcileOppEpochAtAddress(this.requireBridgeConfig().oppAddress);
|
|
210
|
+
return depositTx.hash;
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
getOutpostAddresses(): EvmInstaswapOutpostAddresses {
|
|
214
|
+
return {
|
|
215
|
+
liqEthToken: this.contractService.getAddress('LiqEthToken'),
|
|
216
|
+
depositManager: this.contractService.getAddress('DepositManager'),
|
|
217
|
+
depositor: this.contractService.getAddress('Depositor'),
|
|
218
|
+
opp: this.contractService.getAddress('OPP'),
|
|
219
|
+
};
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
async getConnectedBalances(address?: string): Promise<EvmInstaswapConnectedBalances> {
|
|
223
|
+
const owner = await this.resolveAddress(address);
|
|
224
|
+
const provider = this.getLocalRpcProvider();
|
|
225
|
+
const liqEthRead = new ethers.Contract(
|
|
226
|
+
this.contractService.getAddress('LiqEthToken'),
|
|
227
|
+
this.contractService.getInterface('LiqEthToken'),
|
|
228
|
+
provider,
|
|
229
|
+
);
|
|
230
|
+
|
|
231
|
+
const [nativeBalance, liqEthBalance] = await Promise.all([
|
|
232
|
+
provider.getBalance(owner),
|
|
233
|
+
liqEthRead['balanceOf'](owner),
|
|
234
|
+
]);
|
|
235
|
+
|
|
236
|
+
return {
|
|
237
|
+
nativeWei: nativeBalance.toString(),
|
|
238
|
+
liqEthWei: BigNumber.from(liqEthBalance).toString(),
|
|
239
|
+
};
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
private async runPreflight(
|
|
243
|
+
depositorWrite: ethers.Contract,
|
|
244
|
+
owner: string,
|
|
245
|
+
amountIn: BigNumber,
|
|
246
|
+
destinationChain: BigNumber,
|
|
247
|
+
destinationAddress: Uint8Array,
|
|
248
|
+
minOut: BigNumber,
|
|
249
|
+
): Promise<void> {
|
|
250
|
+
try {
|
|
251
|
+
await depositorWrite.callStatic['instaswapCrossChain'](
|
|
252
|
+
amountIn,
|
|
253
|
+
destinationChain,
|
|
254
|
+
destinationAddress,
|
|
255
|
+
minOut,
|
|
256
|
+
{ from: owner },
|
|
257
|
+
);
|
|
258
|
+
return;
|
|
259
|
+
} catch (error) {
|
|
260
|
+
const decoded = this.decodeContractError(depositorWrite, error);
|
|
261
|
+
if (!decoded?.name || !this.isRecoverableOppError(decoded.name)) {
|
|
262
|
+
throw error;
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
await this.reconcileOppEpochAtAddress(this.contractService.getAddress('OPP'));
|
|
267
|
+
await depositorWrite.callStatic['instaswapCrossChain'](
|
|
268
|
+
amountIn,
|
|
269
|
+
destinationChain,
|
|
270
|
+
destinationAddress,
|
|
271
|
+
minOut,
|
|
272
|
+
{ from: owner },
|
|
273
|
+
);
|
|
274
|
+
}
|
|
275
|
+
|
|
276
|
+
private async reconcileOppEpochAtAddress(oppAddress: string): Promise<void> {
|
|
277
|
+
const oppRead = new ethers.Contract(
|
|
278
|
+
oppAddress,
|
|
279
|
+
this.contractService.getInterface('OPP'),
|
|
280
|
+
this.getLocalRpcProvider(),
|
|
281
|
+
);
|
|
282
|
+
const oppWrite = new ethers.Contract(oppAddress, this.contractService.getInterface('OPP'), this.requireSigner());
|
|
283
|
+
|
|
284
|
+
if (this.supportsFunction(oppWrite, 'testAdvanceEpochClock')) {
|
|
285
|
+
const epochSecs = await oppRead['MESSAGE_EPOCH_SECS']();
|
|
286
|
+
const advanceTx = await oppWrite['testAdvanceEpochClock'](
|
|
287
|
+
BigNumber.from(epochSecs).add(1),
|
|
288
|
+
);
|
|
289
|
+
const advanceReceipt = await advanceTx.wait();
|
|
290
|
+
if (!advanceReceipt || advanceReceipt.status === 0) {
|
|
291
|
+
throw new Error(`EVM transaction ${advanceTx.hash} reverted.`);
|
|
292
|
+
}
|
|
293
|
+
}
|
|
294
|
+
|
|
295
|
+
await sendOPPFinalize(oppWrite);
|
|
296
|
+
}
|
|
297
|
+
|
|
298
|
+
private async depositNativeForLiqEth(amountWei: ethers.BigNumberish): Promise<string> {
|
|
299
|
+
const tx = await this.contractService.getWrite('DepositManager')['deposit']({
|
|
300
|
+
value: BigNumber.from(amountWei),
|
|
301
|
+
});
|
|
302
|
+
const receipt = await tx.wait();
|
|
303
|
+
if (!receipt || receipt.status === 0) {
|
|
304
|
+
throw new Error(`EVM transaction ${tx.hash} reverted.`);
|
|
305
|
+
}
|
|
306
|
+
return tx.hash;
|
|
307
|
+
}
|
|
308
|
+
|
|
309
|
+
private async getLiqEthBalance(address: string): Promise<BigNumber> {
|
|
310
|
+
return this.contractService.getReadOnly('LiqEthToken')['balanceOf'](address);
|
|
311
|
+
}
|
|
312
|
+
|
|
313
|
+
private async resolveAddress(address?: string): Promise<string> {
|
|
314
|
+
if (address?.trim()) {
|
|
315
|
+
return address.trim();
|
|
316
|
+
}
|
|
317
|
+
return this.requireSigner().getAddress();
|
|
318
|
+
}
|
|
319
|
+
|
|
320
|
+
private requireSigner(): ethers.Signer {
|
|
321
|
+
if (!this.signer) {
|
|
322
|
+
throw new Error('Connect an EVM wallet first.');
|
|
323
|
+
}
|
|
324
|
+
return this.signer;
|
|
325
|
+
}
|
|
326
|
+
|
|
327
|
+
private getLocalRpcProvider(): ethers.providers.JsonRpcProvider {
|
|
328
|
+
if (!this.rpcUrl) {
|
|
329
|
+
throw new Error('EVM RPC URL is not configured.');
|
|
330
|
+
}
|
|
331
|
+
return new ethers.providers.JsonRpcProvider(this.rpcUrl);
|
|
332
|
+
}
|
|
333
|
+
|
|
334
|
+
private getLiqEthBridgeContract(): ethers.Contract {
|
|
335
|
+
const { liqEthBridgeAddress } = this.requireBridgeConfig();
|
|
336
|
+
return new ethers.Contract(
|
|
337
|
+
liqEthBridgeAddress,
|
|
338
|
+
WiredevLiqEthBridgeArtifact.abi,
|
|
339
|
+
this.requireSigner(),
|
|
340
|
+
);
|
|
341
|
+
}
|
|
342
|
+
|
|
343
|
+
private requireBridgeConfig(): EvmBridgeConfig {
|
|
344
|
+
const chainId = this.chainId ?? 0;
|
|
345
|
+
const config = LOCAL_EVM_BRIDGE_BY_CHAIN[chainId];
|
|
346
|
+
if (!config) {
|
|
347
|
+
throw new Error(`No EVM bridge config is registered for chainId=${chainId}.`);
|
|
348
|
+
}
|
|
349
|
+
return config;
|
|
350
|
+
}
|
|
351
|
+
|
|
352
|
+
private supportsFunction(contract: ethers.Contract, name: string): boolean {
|
|
353
|
+
try {
|
|
354
|
+
contract.interface.getFunction(name);
|
|
355
|
+
return true;
|
|
356
|
+
} catch {
|
|
357
|
+
return false;
|
|
358
|
+
}
|
|
359
|
+
}
|
|
360
|
+
|
|
361
|
+
private decodeContractError(
|
|
362
|
+
contract: ethers.Contract,
|
|
363
|
+
error: unknown,
|
|
364
|
+
): ParsedContractError | null {
|
|
365
|
+
if (error && typeof error === 'object') {
|
|
366
|
+
const record = error as Record<string, unknown>;
|
|
367
|
+
const directName = record['errorName'];
|
|
368
|
+
const directArgs = record['errorArgs'];
|
|
369
|
+
const directSignature = record['errorSignature'];
|
|
370
|
+
if (typeof directName === 'string' && directName) {
|
|
371
|
+
return {
|
|
372
|
+
name: directName,
|
|
373
|
+
signature: typeof directSignature === 'string' ? directSignature : undefined,
|
|
374
|
+
args: Array.isArray(directArgs) ? directArgs : undefined,
|
|
375
|
+
};
|
|
376
|
+
}
|
|
377
|
+
}
|
|
378
|
+
|
|
379
|
+
const revertData = this.extractRevertData(error);
|
|
380
|
+
if (!revertData) {
|
|
381
|
+
return null;
|
|
382
|
+
}
|
|
383
|
+
|
|
384
|
+
try {
|
|
385
|
+
const parsed = contract.interface.parseError(revertData);
|
|
386
|
+
return {
|
|
387
|
+
name: parsed.name,
|
|
388
|
+
signature: parsed.signature,
|
|
389
|
+
args: Array.from(parsed.args ?? []),
|
|
390
|
+
};
|
|
391
|
+
} catch {
|
|
392
|
+
try {
|
|
393
|
+
const parsed = this.contractService.parseError(revertData);
|
|
394
|
+
return {
|
|
395
|
+
name: parsed.name,
|
|
396
|
+
signature: parsed.signature,
|
|
397
|
+
args: Array.from(parsed.args ?? []),
|
|
398
|
+
};
|
|
399
|
+
} catch {
|
|
400
|
+
return null;
|
|
401
|
+
}
|
|
402
|
+
}
|
|
403
|
+
}
|
|
404
|
+
|
|
405
|
+
private extractRevertData(error: unknown): string | null {
|
|
406
|
+
if (!error || typeof error !== 'object') {
|
|
407
|
+
return null;
|
|
408
|
+
}
|
|
409
|
+
|
|
410
|
+
const record = error as Record<string, unknown>;
|
|
411
|
+
const candidates = [
|
|
412
|
+
record['data'],
|
|
413
|
+
(record['error'] as Record<string, unknown> | undefined)?.['data'],
|
|
414
|
+
(record['error'] as Record<string, unknown> | undefined)?.['error'],
|
|
415
|
+
(record['receipt'] as Record<string, unknown> | undefined)?.['revertReason'],
|
|
416
|
+
];
|
|
417
|
+
|
|
418
|
+
for (const candidate of candidates) {
|
|
419
|
+
if (typeof candidate === 'string' && candidate.startsWith('0x')) {
|
|
420
|
+
return candidate;
|
|
421
|
+
}
|
|
422
|
+
if (candidate && typeof candidate === 'object') {
|
|
423
|
+
const nested = (candidate as Record<string, unknown>)['data'];
|
|
424
|
+
if (typeof nested === 'string' && nested.startsWith('0x')) {
|
|
425
|
+
return nested;
|
|
426
|
+
}
|
|
427
|
+
}
|
|
428
|
+
}
|
|
429
|
+
|
|
430
|
+
return null;
|
|
431
|
+
}
|
|
432
|
+
|
|
433
|
+
private isRecoverableOppError(name: string): boolean {
|
|
434
|
+
return [
|
|
435
|
+
'OPP_PreviousEpochUnsent',
|
|
436
|
+
'OPP_PreviousEpochPendingMessages',
|
|
437
|
+
'OPP_PreviousEpochSent',
|
|
438
|
+
].includes(name);
|
|
439
|
+
}
|
|
440
|
+
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ethers } from "ethers";
|
|
2
|
-
import {
|
|
2
|
+
import { EvmContractService } from "../contract";
|
|
3
3
|
import { OPPAssertion } from "../../../types";
|
|
4
4
|
|
|
5
5
|
|
|
@@ -18,11 +18,11 @@ export class OPPClient {
|
|
|
18
18
|
3006: (d) => this.decodeYieldPretoken3006(d),
|
|
19
19
|
};
|
|
20
20
|
|
|
21
|
-
private readonly contractService:
|
|
21
|
+
private readonly contractService: EvmContractService;
|
|
22
22
|
|
|
23
23
|
get contract() { return this.contractService.contract; }
|
|
24
24
|
|
|
25
|
-
constructor(contract:
|
|
25
|
+
constructor(contract: EvmContractService) {
|
|
26
26
|
this.contractService = contract;
|
|
27
27
|
}
|
|
28
28
|
|