@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
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AnchorProvider, BN
|
|
1
|
+
import { AnchorProvider, BN } from '@coral-xyz/anchor';
|
|
2
2
|
import {
|
|
3
3
|
PublicKey,
|
|
4
4
|
SystemProgram,
|
|
@@ -9,8 +9,6 @@ import {
|
|
|
9
9
|
TOKEN_2022_PROGRAM_ID,
|
|
10
10
|
} from '@solana/spl-token';
|
|
11
11
|
|
|
12
|
-
import { LiqsolCore } from '../../../assets/solana/devnet/types/liqsol_core';
|
|
13
|
-
|
|
14
12
|
import {
|
|
15
13
|
OutpostAccounts,
|
|
16
14
|
buildOutpostAccounts,
|
|
@@ -18,13 +16,52 @@ import {
|
|
|
18
16
|
} from '../utils';
|
|
19
17
|
|
|
20
18
|
import {
|
|
19
|
+
DistributionState,
|
|
20
|
+
GlobalState,
|
|
21
|
+
OutpostAccount,
|
|
21
22
|
OutpostWireStateSnapshot,
|
|
22
23
|
SharesPreview,
|
|
23
24
|
TrancheState,
|
|
25
|
+
UserPretokenRecord,
|
|
24
26
|
WalletLike,
|
|
25
27
|
} from '../types';
|
|
26
28
|
import { INDEX_SCALE } from '../constants';
|
|
27
|
-
import {
|
|
29
|
+
import { SolanaProgramService } from '../program';
|
|
30
|
+
|
|
31
|
+
export function buildSolanaSyndicateAccounts(params: {
|
|
32
|
+
user: PublicKey;
|
|
33
|
+
accounts: OutpostAccounts;
|
|
34
|
+
liqsolCoreProgram: PublicKey;
|
|
35
|
+
transferHookProgram: PublicKey;
|
|
36
|
+
}) {
|
|
37
|
+
const { user, accounts, liqsolCoreProgram, transferHookProgram } = params;
|
|
38
|
+
|
|
39
|
+
return {
|
|
40
|
+
user,
|
|
41
|
+
liqsolMint: accounts.liqsolMint,
|
|
42
|
+
distributionState: accounts.distributionState,
|
|
43
|
+
globalState: accounts.globalState,
|
|
44
|
+
userAta: accounts.userAta,
|
|
45
|
+
senderUserRecord: accounts.userUserRecord,
|
|
46
|
+
bridgeAuthority: accounts.bridgeAuthority,
|
|
47
|
+
bridgeVaultAta: accounts.bridgeVaultAta,
|
|
48
|
+
bridgeUserRecord: accounts.bridgeUserRecord,
|
|
49
|
+
bridgeState: accounts.bridgeState,
|
|
50
|
+
outpostAccount: accounts.outpostAccount,
|
|
51
|
+
extraAccountMetaList: accounts.extraAccountMetaList,
|
|
52
|
+
liqsolCoreProgram,
|
|
53
|
+
transferHookProgram,
|
|
54
|
+
bucketAuthority: accounts.bucketAuthority,
|
|
55
|
+
bucketTokenAccount: accounts.bucketTokenAccount,
|
|
56
|
+
bucketUserRecord: accounts.bucketUserRecord,
|
|
57
|
+
tokenProgram: TOKEN_2022_PROGRAM_ID,
|
|
58
|
+
associatedTokenProgram: ASSOCIATED_TOKEN_PROGRAM_ID,
|
|
59
|
+
systemProgram: SystemProgram.programId,
|
|
60
|
+
globalConfig: accounts.globalConfig,
|
|
61
|
+
oppEpochState: accounts.oppEpochState,
|
|
62
|
+
pendingAttestations: accounts.pendingAttestations,
|
|
63
|
+
};
|
|
64
|
+
}
|
|
28
65
|
|
|
29
66
|
/**
|
|
30
67
|
* OutpostClient
|
|
@@ -42,7 +79,7 @@ import { LiqsolCoreClientIdl, SolanaProgramService } from '../program';
|
|
|
42
79
|
* in sync with the on-chain PDAs and capital-staking Wire utils.
|
|
43
80
|
*/
|
|
44
81
|
export class OutpostClient {
|
|
45
|
-
private readonly program:
|
|
82
|
+
private readonly program: any;
|
|
46
83
|
|
|
47
84
|
constructor(
|
|
48
85
|
private readonly provider: AnchorProvider,
|
|
@@ -75,8 +112,26 @@ export class OutpostClient {
|
|
|
75
112
|
* Internal helper: get raw token balance (BN) for a given ATA.
|
|
76
113
|
*/
|
|
77
114
|
private async getTokenBalance(ata: PublicKey): Promise<BN> {
|
|
78
|
-
|
|
79
|
-
|
|
115
|
+
try {
|
|
116
|
+
const bal = await this.connection.getTokenAccountBalance(ata);
|
|
117
|
+
return new BN(bal.value.amount);
|
|
118
|
+
} catch (error) {
|
|
119
|
+
if (this.isMissingTokenAccountError(error)) {
|
|
120
|
+
return new BN(0);
|
|
121
|
+
}
|
|
122
|
+
throw error;
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
private isMissingTokenAccountError(error: unknown): boolean {
|
|
127
|
+
const message = String(
|
|
128
|
+
(error as { message?: string } | null)?.message ?? '',
|
|
129
|
+
).toLowerCase();
|
|
130
|
+
|
|
131
|
+
return (
|
|
132
|
+
message.includes('failed to get token account balance') &&
|
|
133
|
+
message.includes('could not find account')
|
|
134
|
+
);
|
|
80
135
|
}
|
|
81
136
|
|
|
82
137
|
/**
|
|
@@ -87,8 +142,9 @@ export class OutpostClient {
|
|
|
87
142
|
* coder decode the padded buffer.
|
|
88
143
|
*/
|
|
89
144
|
private async fetchOutpostAccount(address: PublicKey) {
|
|
145
|
+
const program = this.program;
|
|
90
146
|
try {
|
|
91
|
-
return await
|
|
147
|
+
return await program.account.outpostAccount.fetchNullable(address);
|
|
92
148
|
} catch (e) {
|
|
93
149
|
if (!(e instanceof RangeError)) throw e;
|
|
94
150
|
|
|
@@ -102,7 +158,7 @@ export class OutpostClient {
|
|
|
102
158
|
info.data.copy(padded);
|
|
103
159
|
// trailing bytes are already 0x00 → Option::None for each field
|
|
104
160
|
|
|
105
|
-
return
|
|
161
|
+
return program.coder.accounts.decode(
|
|
106
162
|
'outpostAccount',
|
|
107
163
|
padded,
|
|
108
164
|
);
|
|
@@ -113,6 +169,7 @@ export class OutpostClient {
|
|
|
113
169
|
* Fetch the core "Wire state" for Outpost / pretokens for a given user.
|
|
114
170
|
*/
|
|
115
171
|
async fetchWireState(user?: PublicKey): Promise<OutpostWireStateSnapshot> {
|
|
172
|
+
const program = this.program;
|
|
116
173
|
const userPk = user ?? this.wallet.publicKey;
|
|
117
174
|
if (!userPk) throw new Error('OutpostClient.fetchWireState: wallet not connected');
|
|
118
175
|
|
|
@@ -126,21 +183,21 @@ export class OutpostClient {
|
|
|
126
183
|
liqsolPoolBalance,
|
|
127
184
|
userLiqsolBalance,
|
|
128
185
|
] = await Promise.all([
|
|
129
|
-
safeFetch(
|
|
186
|
+
safeFetch(program.account.globalState.fetch(pdas.globalState), 'globalState'),
|
|
130
187
|
safeFetch(this.fetchOutpostAccount(pdas.outpostAccount), 'outpostAccount'),
|
|
131
|
-
safeFetch(
|
|
132
|
-
safeFetch(
|
|
133
|
-
safeFetch(
|
|
188
|
+
safeFetch(program.account.distributionState.fetchNullable(pdas.distributionState), 'distributionState'),
|
|
189
|
+
safeFetch(program.account.userPretokenRecord.fetchNullable(pdas.userPretokenRecord), 'userPretokenRecord'),
|
|
190
|
+
safeFetch(program.account.trancheState.fetchNullable(pdas.trancheState), 'trancheState'),
|
|
134
191
|
safeFetch(this.getTokenBalance(pdas.liqsolPoolAta), 'liqsolPoolAta'),
|
|
135
192
|
safeFetch(this.getTokenBalance(pdas.userAta), 'userAta'),
|
|
136
193
|
]);
|
|
137
194
|
|
|
138
195
|
return {
|
|
139
|
-
globalState,
|
|
140
|
-
outpostAccount,
|
|
141
|
-
distributionState,
|
|
142
|
-
trancheState,
|
|
143
|
-
userPretokenRecord,
|
|
196
|
+
globalState: globalState as GlobalState | null,
|
|
197
|
+
outpostAccount: outpostAccount as OutpostAccount | null,
|
|
198
|
+
distributionState: distributionState as DistributionState | null,
|
|
199
|
+
trancheState: trancheState as TrancheState | null,
|
|
200
|
+
userPretokenRecord: userPretokenRecord as UserPretokenRecord | null,
|
|
144
201
|
liqsolPoolBalance,
|
|
145
202
|
userLiqsolBalance,
|
|
146
203
|
};
|
|
@@ -149,58 +206,61 @@ export class OutpostClient {
|
|
|
149
206
|
|
|
150
207
|
|
|
151
208
|
// -------------------------------------------------------------------------
|
|
152
|
-
// Outpost stake / unstake builders (
|
|
209
|
+
// Outpost stake / unstake builders (syndicate_liqsol_to_wire / desynd)
|
|
153
210
|
// -------------------------------------------------------------------------
|
|
154
211
|
|
|
155
212
|
/**
|
|
156
|
-
* Build the `
|
|
157
|
-
* user liqSOL ATA → liqSOL pool ATA
|
|
213
|
+
* Build the `syndicate_liqsol_to_wire` (stake) instruction:
|
|
214
|
+
* user liqSOL ATA → liqSOL pool ATA, bridged to the Wire chain.
|
|
215
|
+
*
|
|
216
|
+
* @param amountLamports Amount of liqSOL to stake (in lamports / base units).
|
|
217
|
+
* @param user Solana signer. Defaults to the connected wallet.
|
|
218
|
+
* @param wireAccount Wire chain recipient account name. Required.
|
|
158
219
|
*/
|
|
159
220
|
async buildStakeIx(
|
|
160
221
|
amountLamports: bigint,
|
|
161
222
|
user: PublicKey = this.wallet.publicKey,
|
|
223
|
+
wireAccount?: string,
|
|
162
224
|
): Promise<TransactionInstruction> {
|
|
225
|
+
const program = this.program;
|
|
163
226
|
if (!user) {
|
|
164
227
|
throw new Error('OutpostClient.buildStakeIx: wallet not connected');
|
|
165
228
|
}
|
|
229
|
+
if (!wireAccount?.trim()) {
|
|
230
|
+
throw new Error('OutpostClient.buildStakeIx: wireAccount is required');
|
|
231
|
+
}
|
|
166
232
|
|
|
167
233
|
const a = await this.buildAccounts(user);
|
|
168
234
|
|
|
169
|
-
return
|
|
170
|
-
.
|
|
171
|
-
.accounts(
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
bucketTokenAccount: a.bucketTokenAccount,
|
|
180
|
-
bucketUserRecord: a.bucketUserRecord,
|
|
181
|
-
senderUserRecord: a.userUserRecord,
|
|
182
|
-
receiverUserRecord: a.liqsolPoolUserRecord,
|
|
183
|
-
extraAccountMetaList: a.extraAccountMetaList,
|
|
184
|
-
liqsolCoreProgram: this.pgs.PROGRAM_IDS.LIQSOL_CORE,
|
|
185
|
-
transferHookProgram: this.pgs.PROGRAM_IDS.TRANSFER_HOOK,
|
|
186
|
-
liqsolPoolAta: a.liqsolPoolAta,
|
|
187
|
-
outpostAccount: a.outpostAccount,
|
|
188
|
-
tokenProgram: TOKEN_2022_PROGRAM_ID,
|
|
189
|
-
associatedTokenProgram: ASSOCIATED_TOKEN_PROGRAM_ID,
|
|
190
|
-
systemProgram: SystemProgram.programId,
|
|
191
|
-
pretokenPurchaseHistory: a.pretokenPurchaseHistory,
|
|
192
|
-
})
|
|
235
|
+
return program.methods
|
|
236
|
+
.syndicateLiqsolToWire(wireAccount.trim(), new BN(amountLamports.toString()))
|
|
237
|
+
.accounts(
|
|
238
|
+
buildSolanaSyndicateAccounts({
|
|
239
|
+
user,
|
|
240
|
+
accounts: a,
|
|
241
|
+
liqsolCoreProgram: this.pgs.PROGRAM_IDS.LIQSOL_CORE,
|
|
242
|
+
transferHookProgram: this.pgs.PROGRAM_IDS.TRANSFER_HOOK,
|
|
243
|
+
}),
|
|
244
|
+
)
|
|
193
245
|
.instruction();
|
|
194
246
|
}
|
|
195
247
|
|
|
196
248
|
/**
|
|
197
|
-
* Build the `desynd` (unstake) instruction:
|
|
249
|
+
* Build the `desynd` (unstake / desync) instruction:
|
|
198
250
|
* liqSOL pool ATA → user liqSOL ATA
|
|
251
|
+
*
|
|
252
|
+
* When Wire is in PostLaunch mode this instruction emits a `DesyncRequest`
|
|
253
|
+
* OPP attestation and does NOT immediately return tokens. The Wire chain
|
|
254
|
+
* relay picks up the attestation, and an admin subsequently executes
|
|
255
|
+
* `complete_withdraw` to deliver the tokens to the user.
|
|
256
|
+
*
|
|
257
|
+
* In PreLaunch mode the tokens are returned directly.
|
|
199
258
|
*/
|
|
200
259
|
async buildUnstakeIx(
|
|
201
260
|
amountLamports: bigint,
|
|
202
261
|
user?: PublicKey,
|
|
203
262
|
): Promise<TransactionInstruction> {
|
|
263
|
+
const program = this.program;
|
|
204
264
|
const userPk = user ?? this.wallet.publicKey;
|
|
205
265
|
if (!userPk) {
|
|
206
266
|
throw new Error('OutpostClient.buildUnstakeIx: wallet not connected');
|
|
@@ -208,7 +268,7 @@ export class OutpostClient {
|
|
|
208
268
|
|
|
209
269
|
const a = await this.buildAccounts(userPk);
|
|
210
270
|
|
|
211
|
-
return
|
|
271
|
+
return program.methods
|
|
212
272
|
.desynd(new BN(amountLamports.toString()))
|
|
213
273
|
.accounts({
|
|
214
274
|
user: userPk,
|
|
@@ -230,6 +290,9 @@ export class OutpostClient {
|
|
|
230
290
|
tokenProgram: TOKEN_2022_PROGRAM_ID,
|
|
231
291
|
systemProgram: SystemProgram.programId,
|
|
232
292
|
associatedTokenProgram: ASSOCIATED_TOKEN_PROGRAM_ID,
|
|
293
|
+
globalConfig: a.globalConfig,
|
|
294
|
+
oppEpochState: a.oppEpochState,
|
|
295
|
+
pendingAttestations: a.pendingAttestations,
|
|
233
296
|
pretokenPurchaseHistory: a.pretokenPurchaseHistory,
|
|
234
297
|
})
|
|
235
298
|
.instruction();
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AnchorProvider, BN
|
|
1
|
+
import { AnchorProvider, BN } from '@coral-xyz/anchor';
|
|
2
2
|
import type { TransactionInstruction, Connection } from '@solana/web3.js';
|
|
3
3
|
import { PublicKey, SystemProgram } from '@solana/web3.js';
|
|
4
4
|
import {
|
|
@@ -11,8 +11,7 @@ import {
|
|
|
11
11
|
type OutpostAccounts,
|
|
12
12
|
} from '../utils';
|
|
13
13
|
|
|
14
|
-
import {
|
|
15
|
-
import type { LiqsolCore } from '../../../assets/solana/devnet/types/liqsol_core';
|
|
14
|
+
import { SolanaProgramService } from '../program';
|
|
16
15
|
|
|
17
16
|
import {
|
|
18
17
|
GlobalState,
|
|
@@ -29,7 +28,7 @@ import {
|
|
|
29
28
|
} from '../constants';
|
|
30
29
|
|
|
31
30
|
export class TokenClient {
|
|
32
|
-
private readonly program:
|
|
31
|
+
private readonly program: any;
|
|
33
32
|
|
|
34
33
|
get wallet(): WalletLike {
|
|
35
34
|
return this.provider.wallet;
|
|
@@ -55,13 +54,15 @@ export class TokenClient {
|
|
|
55
54
|
}
|
|
56
55
|
|
|
57
56
|
async fetchGlobalState(): Promise<GlobalState> {
|
|
57
|
+
const program = this.program;
|
|
58
58
|
const { globalState } = await this.getAccounts(this.wallet.publicKey);
|
|
59
|
-
return
|
|
59
|
+
return program.account.globalState.fetch(globalState);
|
|
60
60
|
}
|
|
61
61
|
|
|
62
62
|
async fetchTrancheState(): Promise<TrancheState> {
|
|
63
|
+
const program = this.program;
|
|
63
64
|
const { trancheState } = await this.getAccounts(this.wallet.publicKey);
|
|
64
|
-
return
|
|
65
|
+
return program.account.trancheState.fetch(trancheState);
|
|
65
66
|
}
|
|
66
67
|
|
|
67
68
|
/**
|
|
@@ -69,8 +70,9 @@ export class TokenClient {
|
|
|
69
70
|
* Returns null if the user has never interacted with Outpost.
|
|
70
71
|
*/
|
|
71
72
|
async fetchOutpostAccount(user: PublicKey): Promise<OutpostAccount | null> {
|
|
73
|
+
const program = this.program;
|
|
72
74
|
const { outpostAccount } = await this.getAccounts(user);
|
|
73
|
-
return
|
|
75
|
+
return program.account.outpostAccount.fetchNullable(outpostAccount);
|
|
74
76
|
}
|
|
75
77
|
|
|
76
78
|
/**
|
|
@@ -80,8 +82,9 @@ export class TokenClient {
|
|
|
80
82
|
async fetchUserPretokenRecord(
|
|
81
83
|
user: PublicKey,
|
|
82
84
|
): Promise<UserPretokenRecord | null> {
|
|
85
|
+
const program = this.program;
|
|
83
86
|
const { userPretokenRecord } = await this.getAccounts(user);
|
|
84
|
-
return
|
|
87
|
+
return program.account.userPretokenRecord.fetchNullable(
|
|
85
88
|
userPretokenRecord,
|
|
86
89
|
);
|
|
87
90
|
}
|
|
@@ -100,6 +103,7 @@ export class TokenClient {
|
|
|
100
103
|
amountLamports: bigint,
|
|
101
104
|
user = this.wallet.publicKey,
|
|
102
105
|
): Promise<TransactionInstruction> {
|
|
106
|
+
const program = this.program;
|
|
103
107
|
console.log('build purchase for', user.toBase58());
|
|
104
108
|
|
|
105
109
|
const a = await this.getAccounts(user);
|
|
@@ -108,7 +112,7 @@ export class TokenClient {
|
|
|
108
112
|
const liqsolCoreProgram = this.pgs.PROGRAM_IDS.LIQSOL_CORE;
|
|
109
113
|
const transferHookProgram = this.pgs.PROGRAM_IDS.TRANSFER_HOOK;
|
|
110
114
|
|
|
111
|
-
return
|
|
115
|
+
return program.methods
|
|
112
116
|
.purchase(new BN(amountLamports.toString()))
|
|
113
117
|
.accounts({
|
|
114
118
|
user: a.user,
|
|
@@ -149,6 +153,10 @@ export class TokenClient {
|
|
|
149
153
|
systemProgram: SystemProgram.programId,
|
|
150
154
|
|
|
151
155
|
pretokenPurchaseHistory: a.pretokenPurchaseHistory,
|
|
156
|
+
|
|
157
|
+
globalConfig: a.globalConfig,
|
|
158
|
+
oppEpochState: a.oppEpochState,
|
|
159
|
+
pendingAttestations: a.pendingAttestations
|
|
152
160
|
})
|
|
153
161
|
.instruction();
|
|
154
162
|
}
|
|
@@ -179,8 +187,9 @@ export class TokenClient {
|
|
|
179
187
|
* Uses the ring-buffer semantics from capital-staking.
|
|
180
188
|
*/
|
|
181
189
|
async getSolPriceUsd(): Promise<bigint> {
|
|
190
|
+
const program = this.program;
|
|
182
191
|
const priceHistoryPda = this.pgs.derivePriceHistoryPda();
|
|
183
|
-
const history = (await
|
|
192
|
+
const history = (await program.account.priceHistory.fetch(
|
|
184
193
|
priceHistoryPda,
|
|
185
194
|
)) as PriceHistory;
|
|
186
195
|
|
|
@@ -208,4 +217,4 @@ export class TokenClient {
|
|
|
208
217
|
|
|
209
218
|
return BigInt(latest.toString());
|
|
210
219
|
}
|
|
211
|
-
}
|
|
220
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// src/networks/solana/constants.ts
|
|
2
|
+
import { ChainID, SolChainID } from '@wireio/core';
|
|
2
3
|
import { PublicKey, StakeProgram } from '@solana/web3.js';
|
|
3
|
-
import { SolChainID } from '@wireio/core';
|
|
4
4
|
|
|
5
5
|
import mainnetLiqsolCoreIDL from '../../assets/solana/mainnet/idl/liqsol_core.json';
|
|
6
6
|
import mainnetLiqSolTokenIDL from '../../assets/solana/mainnet/idl/liqsol_token.json';
|
|
@@ -11,7 +11,11 @@ import devnetLiqsolCoreIDL from '../../assets/solana/devnet/idl/liqsol_core.json
|
|
|
11
11
|
import devnetLiqSolTokenIDL from '../../assets/solana/devnet/idl/liqsol_token.json';
|
|
12
12
|
import devnetValidatorLeaderboardIDL from '../../assets/solana/devnet/idl/validator_leaderboard.json';
|
|
13
13
|
import devnetTransferHookIDL from '../../assets/solana/devnet/idl/transfer_hook.json';
|
|
14
|
-
import
|
|
14
|
+
import wiredevLiqsolCoreIDL from '../../assets/solana/wiredev/idl/liqsol_core.json';
|
|
15
|
+
import wiredevLiqSolTokenIDL from '../../assets/solana/wiredev/idl/liqsol_token.json';
|
|
16
|
+
import wiredevValidatorLeaderboardIDL from '../../assets/solana/wiredev/idl/validator_leaderboard.json';
|
|
17
|
+
import wiredevTransferHookIDL from '../../assets/solana/wiredev/idl/transfer_hook.json';
|
|
18
|
+
import { SOL_WIRE_DEVNET_CHAIN_ID, type SupportedSolProgramChainID } from '../../chains';
|
|
15
19
|
|
|
16
20
|
/**
|
|
17
21
|
* Per-chain program IDs (NOT global anymore).
|
|
@@ -37,16 +41,25 @@ const DEVNET_PROGRAM_IDS: SolanaProgramIds = {
|
|
|
37
41
|
LIQSOL_TOKEN: new PublicKey(devnetLiqSolTokenIDL.address),
|
|
38
42
|
VALIDATOR_LEADERBOARD: new PublicKey(devnetValidatorLeaderboardIDL.address),
|
|
39
43
|
TRANSFER_HOOK: new PublicKey(devnetTransferHookIDL.address),
|
|
40
|
-
ALT: new PublicKey("
|
|
44
|
+
ALT: new PublicKey("9WhQt82Ym5LDDaGEB6eV86MUV6BtUxZQbw1R4uuhVPSt")
|
|
41
45
|
};
|
|
42
46
|
|
|
43
|
-
|
|
47
|
+
const WIREDEV_PROGRAM_IDS: SolanaProgramIds = {
|
|
48
|
+
LIQSOL_CORE: new PublicKey(wiredevLiqsolCoreIDL.address),
|
|
49
|
+
LIQSOL_TOKEN: new PublicKey(wiredevLiqSolTokenIDL.address),
|
|
50
|
+
VALIDATOR_LEADERBOARD: new PublicKey(wiredevValidatorLeaderboardIDL.address),
|
|
51
|
+
TRANSFER_HOOK: new PublicKey(wiredevTransferHookIDL.address),
|
|
52
|
+
ALT: new PublicKey("9WhQt82Ym5LDDaGEB6eV86MUV6BtUxZQbw1R4uuhVPSt")
|
|
53
|
+
};
|
|
54
|
+
|
|
55
|
+
export const PROGRAM_IDS_BY_CHAIN: Record<SupportedSolProgramChainID, SolanaProgramIds> = {
|
|
44
56
|
[SolChainID.Mainnet]: MAINNET_PROGRAM_IDS,
|
|
45
57
|
[SolChainID.Devnet]: DEVNET_PROGRAM_IDS,
|
|
58
|
+
[SOL_WIRE_DEVNET_CHAIN_ID]: WIREDEV_PROGRAM_IDS,
|
|
46
59
|
};
|
|
47
60
|
|
|
48
|
-
export const getProgramIds = (chainId:
|
|
49
|
-
const ids = PROGRAM_IDS_BY_CHAIN[chainId];
|
|
61
|
+
export const getProgramIds = (chainId: ChainID | string): SolanaProgramIds => {
|
|
62
|
+
const ids = PROGRAM_IDS_BY_CHAIN[chainId as SupportedSolProgramChainID];
|
|
50
63
|
if (!ids) throw new Error(`Unsupported Solana chainId=${chainId}`);
|
|
51
64
|
return ids;
|
|
52
65
|
};
|
|
@@ -112,6 +125,13 @@ export const PDA_SEEDS = {
|
|
|
112
125
|
|
|
113
126
|
// New
|
|
114
127
|
PRETOKEN_PURCHASE_HISTORY: 'pretoken_purchase_history',
|
|
128
|
+
|
|
129
|
+
// OPP (outpost protocol pipeline)
|
|
130
|
+
OPP_EPOCH_STATE: 'opp_epoch_state',
|
|
131
|
+
PENDING_ATTESTATIONS: 'pending_attestations',
|
|
132
|
+
EPOCH_HEADER: 'epoch_header',
|
|
133
|
+
EPOCH_MESSAGE: 'epoch_message',
|
|
134
|
+
OPP_BRIDGE_STATE: 'opp_bridge_state',
|
|
115
135
|
} as const;
|
|
116
136
|
|
|
117
137
|
/**
|
|
@@ -153,4 +173,4 @@ export const lamportsToSol = (lamports: number | bigint): number =>
|
|
|
153
173
|
Number(lamports) / LAMPORTS_PER_SOL;
|
|
154
174
|
|
|
155
175
|
export const solToLamports = (sol: number): bigint =>
|
|
156
|
-
BigInt(Math.round(sol * LAMPORTS_PER_SOL));
|
|
176
|
+
BigInt(Math.round(sol * LAMPORTS_PER_SOL));
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
// src/networks/solana/programs.ts
|
|
2
2
|
import { AnchorProvider, Program } from '@coral-xyz/anchor';
|
|
3
3
|
import { ChainID, SolChainID } from '@wireio/core';
|
|
4
|
-
import { PublicKey, StakeProgram } from '@solana/web3.js';
|
|
4
|
+
import { Connection, PublicKey, StakeProgram } from '@solana/web3.js';
|
|
5
5
|
|
|
6
6
|
import {
|
|
7
7
|
PDA_SEEDS,
|
|
8
8
|
getProgramIds,
|
|
9
9
|
SolanaProgramIds,
|
|
10
10
|
} from './constants';
|
|
11
|
+
import { SOL_WIRE_DEVNET_CHAIN_ID } from '../../chains';
|
|
11
12
|
|
|
12
13
|
// Mainnet IDLs
|
|
13
14
|
import liqsolCoreMainnetJson from '../../assets/solana/mainnet/idl/liqsol_core.json';
|
|
@@ -18,6 +19,9 @@ import validatorLeaderboardMainnetJson from '../../assets/solana/mainnet/idl/val
|
|
|
18
19
|
import liqsolCoreDevnetJson from '../../assets/solana/devnet/idl/liqsol_core.json';
|
|
19
20
|
import liqsolTokenDevnetJson from '../../assets/solana/devnet/idl/liqsol_token.json';
|
|
20
21
|
import validatorLeaderboardDevnetJson from '../../assets/solana/devnet/idl/validator_leaderboard.json';
|
|
22
|
+
import liqsolCoreWiredevJson from '../../assets/solana/wiredev/idl/liqsol_core.json';
|
|
23
|
+
import liqsolTokenWiredevJson from '../../assets/solana/wiredev/idl/liqsol_token.json';
|
|
24
|
+
import validatorLeaderboardWiredevJson from '../../assets/solana/wiredev/idl/validator_leaderboard.json';
|
|
21
25
|
|
|
22
26
|
// Mainnet types
|
|
23
27
|
import type { LiqsolCore as LiqSolCoreMainnet } from '../../assets/solana/mainnet/types/liqsol_core';
|
|
@@ -28,17 +32,19 @@ import type { ValidatorLeaderboard as ValidatorLeaderboardMainnet } from '../../
|
|
|
28
32
|
import type { LiqsolCore as LiqSolCoreDevnet } from '../../assets/solana/devnet/types/liqsol_core';
|
|
29
33
|
import type { LiqsolToken as LiqsolTokenDevnet } from '../../assets/solana/devnet/types/liqsol_token';
|
|
30
34
|
import type { ValidatorLeaderboard as ValidatorLeaderboardDevnet } from '../../assets/solana/devnet/types/validator_leaderboard';
|
|
35
|
+
import type { LiqsolCore as LiqSolCoreWiredev } from '../../assets/solana/wiredev/types/liqsol_core';
|
|
36
|
+
import type { LiqsolToken as LiqsolTokenWiredev } from '../../assets/solana/wiredev/types/liqsol_token';
|
|
37
|
+
import type { ValidatorLeaderboard as ValidatorLeaderboardWiredev } from '../../assets/solana/wiredev/types/validator_leaderboard';
|
|
31
38
|
|
|
32
|
-
//
|
|
39
|
+
// Anchor's generated Program<T> type becomes excessively deep once the same
|
|
40
|
+
// client can select among mainnet, public devnet, and Wire devnet IDLs. Keep the
|
|
41
|
+
// runtime IDL selection strict and expose a shallow client IDL type at this
|
|
42
|
+
// boundary.
|
|
43
|
+
type ClientIdl = any;
|
|
33
44
|
|
|
34
|
-
export type LiqsolCoreClientIdl =
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
export type LiqsolTokenClientIdl =
|
|
38
|
-
(LiqsolTokenMainnet | LiqsolTokenDevnet) & { address: string };
|
|
39
|
-
|
|
40
|
-
export type ValidatorLeaderboardClientIdl =
|
|
41
|
-
(ValidatorLeaderboardMainnet | ValidatorLeaderboardDevnet) & { address: string };
|
|
45
|
+
export type LiqsolCoreClientIdl = ClientIdl;
|
|
46
|
+
export type LiqsolTokenClientIdl = ClientIdl;
|
|
47
|
+
export type ValidatorLeaderboardClientIdl = ClientIdl;
|
|
42
48
|
|
|
43
49
|
export type SolanaProgramIdlMap = {
|
|
44
50
|
liqsolCore: LiqsolCoreClientIdl;
|
|
@@ -82,17 +88,33 @@ const PROGRAMS_BY_CHAIN = {
|
|
|
82
88
|
address: validatorLeaderboardDevnetJson.address,
|
|
83
89
|
} as Entry<ValidatorLeaderboardDevnet>,
|
|
84
90
|
},
|
|
91
|
+
[SOL_WIRE_DEVNET_CHAIN_ID]: {
|
|
92
|
+
liqsolCore: {
|
|
93
|
+
idl: liqsolCoreWiredevJson,
|
|
94
|
+
address: liqsolCoreWiredevJson.address,
|
|
95
|
+
} as Entry<LiqSolCoreWiredev>,
|
|
96
|
+
liqsolToken: {
|
|
97
|
+
idl: liqsolTokenWiredevJson,
|
|
98
|
+
address: liqsolTokenWiredevJson.address,
|
|
99
|
+
} as Entry<LiqsolTokenWiredev>,
|
|
100
|
+
validatorLeaderboard: {
|
|
101
|
+
idl: validatorLeaderboardWiredevJson,
|
|
102
|
+
address: validatorLeaderboardWiredevJson.address,
|
|
103
|
+
} as Entry<ValidatorLeaderboardWiredev>,
|
|
104
|
+
},
|
|
85
105
|
} as const;
|
|
86
106
|
|
|
107
|
+
type SolanaProgramEntries = (typeof PROGRAMS_BY_CHAIN)[keyof typeof PROGRAMS_BY_CHAIN];
|
|
108
|
+
|
|
87
109
|
export class SolanaProgramService {
|
|
88
110
|
private readonly ids: SolanaProgramIds;
|
|
89
|
-
private readonly programs:
|
|
111
|
+
private readonly programs: SolanaProgramEntries;
|
|
90
112
|
|
|
91
113
|
constructor(
|
|
92
114
|
private provider: AnchorProvider,
|
|
93
115
|
private chainId: ChainID,
|
|
94
116
|
) {
|
|
95
|
-
const solChain = chainId as
|
|
117
|
+
const solChain = chainId as keyof typeof PROGRAMS_BY_CHAIN;
|
|
96
118
|
this.ids = getProgramIds(solChain);
|
|
97
119
|
const programs = PROGRAMS_BY_CHAIN[solChain];
|
|
98
120
|
if (!programs) {
|
|
@@ -106,14 +128,14 @@ export class SolanaProgramService {
|
|
|
106
128
|
return this.ids;
|
|
107
129
|
}
|
|
108
130
|
|
|
109
|
-
//
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
):
|
|
131
|
+
// Anchor's fluent builder types are intentionally erased here. The SDK
|
|
132
|
+
// performs dynamic IDL selection by chain, and callers keep their runtime
|
|
133
|
+
// account/method wiring unchanged.
|
|
134
|
+
getProgram(name: SolanaProgramName): any {
|
|
113
135
|
const { idl, address } = this.programs[name];
|
|
114
|
-
const idlWithAddr = { ...(idl as any), address }
|
|
136
|
+
const idlWithAddr = { ...(idl as any), address };
|
|
115
137
|
|
|
116
|
-
return new Program(idlWithAddr, this.provider) as
|
|
138
|
+
return new Program(idlWithAddr, this.provider) as any;
|
|
117
139
|
}
|
|
118
140
|
|
|
119
141
|
listProgramNames(): SolanaProgramName[] {
|
|
@@ -383,6 +405,69 @@ export class SolanaProgramService {
|
|
|
383
405
|
)[0];
|
|
384
406
|
}
|
|
385
407
|
|
|
408
|
+
// --- OPP (outpost protocol pipeline) ---
|
|
409
|
+
|
|
410
|
+
deriveOppEpochStatePda(): PublicKey {
|
|
411
|
+
return PublicKey.findProgramAddressSync(
|
|
412
|
+
[Buffer.from(PDA_SEEDS.OPP_EPOCH_STATE)],
|
|
413
|
+
this.ids.LIQSOL_CORE,
|
|
414
|
+
)[0];
|
|
415
|
+
}
|
|
416
|
+
|
|
417
|
+
derivePendingAttestationsPda(epochNumber: number): PublicKey {
|
|
418
|
+
const epochBuf = Buffer.alloc(4);
|
|
419
|
+
epochBuf.writeUInt32LE(epochNumber, 0);
|
|
420
|
+
return PublicKey.findProgramAddressSync(
|
|
421
|
+
[Buffer.from(PDA_SEEDS.PENDING_ATTESTATIONS), epochBuf],
|
|
422
|
+
this.ids.LIQSOL_CORE,
|
|
423
|
+
)[0];
|
|
424
|
+
}
|
|
425
|
+
|
|
426
|
+
deriveEpochHeaderPda(epochNumber: number): PublicKey {
|
|
427
|
+
const epochBuf = Buffer.alloc(4);
|
|
428
|
+
epochBuf.writeUInt32LE(epochNumber, 0);
|
|
429
|
+
return PublicKey.findProgramAddressSync(
|
|
430
|
+
[Buffer.from(PDA_SEEDS.EPOCH_HEADER), epochBuf],
|
|
431
|
+
this.ids.LIQSOL_CORE,
|
|
432
|
+
)[0];
|
|
433
|
+
}
|
|
434
|
+
|
|
435
|
+
deriveEpochMessagePda(epochNumber: number, messageIndex: number): PublicKey {
|
|
436
|
+
const epochBuf = Buffer.alloc(4);
|
|
437
|
+
epochBuf.writeUInt32LE(epochNumber, 0);
|
|
438
|
+
const indexBuf = Buffer.alloc(4);
|
|
439
|
+
indexBuf.writeUInt32LE(messageIndex, 0);
|
|
440
|
+
return PublicKey.findProgramAddressSync(
|
|
441
|
+
[Buffer.from(PDA_SEEDS.EPOCH_MESSAGE), epochBuf, indexBuf],
|
|
442
|
+
this.ids.LIQSOL_CORE,
|
|
443
|
+
)[0];
|
|
444
|
+
}
|
|
445
|
+
|
|
446
|
+
/**
|
|
447
|
+
* Fetch the current OPP epoch number from the on-chain OppEpochState account.
|
|
448
|
+
*
|
|
449
|
+
* Layout (after 8-byte Anchor discriminator):
|
|
450
|
+
* [u32 nextEpochNumber] — little-endian
|
|
451
|
+
*
|
|
452
|
+
* This is used to derive the `pending_attestations` PDA for synd / desynd.
|
|
453
|
+
*/
|
|
454
|
+
async fetchOppEpochNumber(connection: Connection): Promise<number> {
|
|
455
|
+
const pda = this.deriveOppEpochStatePda();
|
|
456
|
+
const info = await connection.getAccountInfo(pda);
|
|
457
|
+
if (!info?.data) {
|
|
458
|
+
throw new Error(`OPP epoch state account not found: ${pda.toBase58()}`);
|
|
459
|
+
}
|
|
460
|
+
// Skip 8-byte Anchor discriminator; nextEpochNumber is the first u32 field.
|
|
461
|
+
return Buffer.from(info.data).readUInt32LE(8);
|
|
462
|
+
}
|
|
463
|
+
|
|
464
|
+
deriveOppBridgeStatePda(): PublicKey {
|
|
465
|
+
return PublicKey.findProgramAddressSync(
|
|
466
|
+
[Buffer.from(PDA_SEEDS.OPP_BRIDGE_STATE)],
|
|
467
|
+
this.ids.LIQSOL_CORE,
|
|
468
|
+
)[0];
|
|
469
|
+
}
|
|
470
|
+
|
|
386
471
|
// --- Transfer-hook extra metas ---
|
|
387
472
|
|
|
388
473
|
deriveExtraAccountMetaListPda(liqsolMint: PublicKey): PublicKey {
|
|
@@ -405,4 +490,4 @@ export class SolanaProgramService {
|
|
|
405
490
|
const seedStr = `ephemeral_${seed}`;
|
|
406
491
|
return PublicKey.createWithSeed(user, seedStr, StakeProgram.programId);
|
|
407
492
|
}
|
|
408
|
-
}
|
|
493
|
+
}
|