@wireio/stake 0.3.1 → 0.3.69
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +185 -243
- package/lib/stake.browser.js +58399 -13167
- package/lib/stake.browser.js.map +1 -1
- package/lib/stake.d.ts +16786 -3248
- package/lib/stake.js +59136 -13805
- package/lib/stake.js.map +1 -1
- package/lib/stake.m.js +58399 -13167
- package/lib/stake.m.js.map +1 -1
- package/package.json +6 -3
- package/src/assets/ethereum/hoodi/common/Base58.sol/Base58.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/common/Base58.sol/Base58.json +164 -0
- package/src/assets/ethereum/hoodi/common/OpenZepArtifacts.sol/__Dummy_OZ_UUPS__.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/common/OpenZepArtifacts.sol/__Dummy_OZ_UUPS__.json +76 -0
- package/src/assets/ethereum/hoodi/common/RestrictedCallers.sol/RestrictedCallers.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/common/RestrictedCallers.sol/RestrictedCallers.json +10 -0
- package/src/assets/ethereum/hoodi/common/iodata.sol/iodata.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/common/iodata.sol/iodata.json +618 -0
- package/src/assets/ethereum/hoodi/common/iodata_util.sol/iodata_util.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/common/iodata_util.sol/iodata_util.json +40 -0
- package/src/assets/ethereum/hoodi/common/sysio_data.sol/sysio_data.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/common/sysio_data.sol/sysio_data.json +10 -0
- package/src/assets/ethereum/hoodi/common/sysio_errors.sol/sysio_errors.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/common/sysio_errors.sol/sysio_errors.json +10 -0
- package/src/assets/ethereum/hoodi/common/sysio_merkle.sol/sysio_merkle.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/common/sysio_merkle.sol/sysio_merkle.json +233 -0
- package/src/assets/ethereum/hoodi/common/sysio_name.sol/sysio_name.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/common/sysio_name.sol/sysio_name.json +49 -0
- package/src/assets/ethereum/hoodi/common/sysio_pubkey.sol/sysio_pubkey.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/common/sysio_pubkey.sol/sysio_pubkey.json +64 -0
- package/src/assets/ethereum/hoodi/common/sysio_read.sol/sysio_read.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/common/sysio_read.sol/sysio_read.json +1458 -0
- package/src/assets/ethereum/hoodi/common/sysio_tester.sol/SysioTester.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/common/sysio_tester.sol/SysioTester.json +1532 -0
- package/src/assets/ethereum/hoodi/common/sysio_verify.sol/sysio_verify.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/common/sysio_verify.sol/sysio_verify.json +1525 -0
- package/src/assets/ethereum/hoodi/common/sysio_write.sol/sysio_write.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/common/sysio_write.sol/sysio_write.json +1076 -0
- package/src/assets/ethereum/hoodi/liqEth/BeaconState.sol/BeaconState.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/liqEth/DepositManager.sol/DepositManagerV2.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/liqEth/DepositManager.sol/DepositManagerV2.json +985 -0
- package/src/assets/ethereum/hoodi/liqEth/LiqEthAuthority.sol/LiqEthAuthority.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/liqEth/LiqEthCommon.sol/IAccounting.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/liqEth/LiqEthCommon.sol/IAccounting.json +182 -0
- package/src/assets/ethereum/hoodi/liqEth/LiqEthCommon.sol/IDepositContract.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/liqEth/LiqEthCommon.sol/IDepositManager.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/liqEth/LiqEthCommon.sol/ILiqEthUpgradeable.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/liqEth/LiqEthCommon.sol/IRewardsERC20.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/liqEth/LiqEthCommon.sol/IRewardsERC20.json +319 -0
- package/src/assets/ethereum/hoodi/liqEth/LiqEthCommon.sol/IRewardsERC20Pausable.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/liqEth/LiqEthCommon.sol/IRewardsERC20Pausable.json +333 -0
- package/src/assets/ethereum/hoodi/liqEth/LiqEthCommon.sol/IStakingModule.dbg.json +4 -0
- package/src/assets/ethereum/{ABI → hoodi}/liqEth/LiqEthCommon.sol/IStakingModule.json +1 -1
- package/src/assets/ethereum/hoodi/liqEth/LiqEthCommon.sol/IValidatorBalanceVerifier.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/liqEth/LiqEthCommon.sol/IWithdrawalRecord.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/liqEth/LiqEthCommon.sol/LiqEthCommon.dbg.json +4 -0
- package/src/assets/ethereum/{ABI → hoodi}/liqEth/LiqEthCommon.sol/LiqEthCommon.json +2 -2
- package/src/assets/ethereum/hoodi/liqEth/LiqEthDeepFreeze.sol/LiqEthDeepFreeze.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/liqEth/LiqEthDeepFreeze.sol/LiqEthDeepFreeze.json +236 -0
- package/src/assets/ethereum/hoodi/liqEth/LiqEthManaged.sol/LiqEthManaged.dbg.json +4 -0
- package/src/assets/ethereum/{ABI → hoodi}/liqEth/LiqEthManaged.sol/LiqEthManaged.json +2 -2
- package/src/assets/ethereum/hoodi/liqEth/RewardsERC20.sol/RewardsERC20UpgradeableV2.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/liqEth/RewardsERC20.sol/RewardsERC20UpgradeableV2.json +957 -0
- package/src/assets/ethereum/hoodi/liqEth/RewardsERC20Pausable.sol/RewardsERC20PausableUpgradeableV2.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/liqEth/RewardsERC20Pausable.sol/RewardsERC20PausableUpgradeableV2.json +1020 -0
- package/src/assets/ethereum/hoodi/liqEth/Yield.sol/YieldOracle.dbg.json +4 -0
- package/src/assets/ethereum/{ABI → hoodi}/liqEth/Yield.sol/YieldOracle.json +2 -2
- package/src/assets/ethereum/hoodi/liqEth/accounting.sol/AccountingV2.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/liqEth/accounting.sol/AccountingV2.json +629 -0
- package/src/assets/ethereum/hoodi/liqEth/liqEth.sol/LiqEthTokenV2.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/liqEth/liqEth.sol/LiqEthTokenV2.json +1323 -0
- package/src/assets/ethereum/hoodi/liqEth/stakingModule.sol/StakingModuleV2.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/liqEth/stakingModule.sol/StakingModuleV2.json +1779 -0
- package/src/assets/ethereum/hoodi/liqEth/v1/DepositManager.sol/DepositManager.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/liqEth/v1/DepositManager.sol/DepositManager.json +978 -0
- package/src/assets/ethereum/hoodi/liqEth/v1/LiqEthCommon.sol/IAccounting.dbg.json +4 -0
- package/src/assets/ethereum/{ABI/liqEth → hoodi/liqEth/v1}/LiqEthCommon.sol/IAccounting.json +1 -1
- package/src/assets/ethereum/hoodi/liqEth/v1/LiqEthCommon.sol/IDepositContract.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/liqEth/v1/LiqEthCommon.sol/IDepositContract.json +39 -0
- package/src/assets/ethereum/hoodi/liqEth/v1/LiqEthCommon.sol/IDepositManager.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/liqEth/v1/LiqEthCommon.sol/IDepositManager.json +64 -0
- package/src/assets/ethereum/hoodi/liqEth/v1/LiqEthCommon.sol/ILiqEthUpgradeable.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/liqEth/v1/LiqEthCommon.sol/ILiqEthUpgradeable.json +29 -0
- package/src/assets/ethereum/hoodi/liqEth/v1/LiqEthCommon.sol/IRewardsERC20.dbg.json +4 -0
- package/src/assets/ethereum/{ABI/liqEth → hoodi/liqEth/v1}/LiqEthCommon.sol/IRewardsERC20.json +1 -1
- package/src/assets/ethereum/hoodi/liqEth/v1/LiqEthCommon.sol/IRewardsERC20Pausable.dbg.json +4 -0
- package/src/assets/ethereum/{ABI/liqEth → hoodi/liqEth/v1}/LiqEthCommon.sol/IRewardsERC20Pausable.json +1 -1
- package/src/assets/ethereum/hoodi/liqEth/v1/LiqEthCommon.sol/IStakingModule.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/liqEth/v1/LiqEthCommon.sol/IStakingModule.json +344 -0
- package/src/assets/ethereum/hoodi/liqEth/v1/LiqEthCommon.sol/IValidatorBalanceVerifier.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/liqEth/v1/LiqEthCommon.sol/IValidatorBalanceVerifier.json +129 -0
- package/src/assets/ethereum/hoodi/liqEth/v1/LiqEthCommon.sol/IWithdrawalRecord.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/liqEth/v1/LiqEthCommon.sol/IWithdrawalRecord.json +66 -0
- package/src/assets/ethereum/hoodi/liqEth/v1/LiqEthCommon.sol/LiqEthCommon.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/liqEth/v1/LiqEthCommon.sol/LiqEthCommon.json +10 -0
- package/src/assets/ethereum/hoodi/liqEth/v1/RewardsERC20.sol/RewardsERC20Upgradeable.dbg.json +4 -0
- package/src/assets/ethereum/{ABI/liqEth → hoodi/liqEth/v1}/RewardsERC20.sol/RewardsERC20Upgradeable.json +1 -1
- package/src/assets/ethereum/hoodi/liqEth/v1/RewardsERC20Pausable.sol/RewardsERC20PausableUpgradeable.dbg.json +4 -0
- package/src/assets/ethereum/{ABI/liqEth → hoodi/liqEth/v1}/RewardsERC20Pausable.sol/RewardsERC20PausableUpgradeable.json +1 -1
- package/src/assets/ethereum/hoodi/liqEth/v1/accounting.sol/Accounting.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/liqEth/v1/accounting.sol/Accounting.json +548 -0
- package/src/assets/ethereum/hoodi/liqEth/v1/liqEth.sol/LiqEthToken.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/liqEth/v1/liqEth.sol/LiqEthToken.json +1233 -0
- package/src/assets/ethereum/hoodi/liqEth/v1/stakingModule.sol/StakingModule.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/liqEth/v1/stakingModule.sol/StakingModule.json +1772 -0
- package/src/assets/ethereum/hoodi/liqEth/withdrawalQueue.sol/WithdrawalQueue.dbg.json +4 -0
- package/src/assets/ethereum/{ABI → hoodi}/liqEth/withdrawalQueue.sol/WithdrawalQueue.json +2 -2
- package/src/assets/ethereum/hoodi/liqEth/withdrawalVault.sol/Uint64BE.dbg.json +4 -0
- package/src/assets/ethereum/{ABI → hoodi}/liqEth/withdrawalVault.sol/Uint64BE.json +2 -2
- package/src/assets/ethereum/hoodi/liqEth/withdrawalVault.sol/WithdrawalVault.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/liqEth/withdrawalVault.sol/WithdrawalVault.json +441 -0
- package/src/assets/ethereum/hoodi/outpost/BAR.sol/BAR.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/outpost/BAR.sol/BAR.json +1111 -0
- package/src/assets/ethereum/hoodi/outpost/Depositor.sol/Depositor.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/outpost/Depositor.sol/Depositor.json +1696 -0
- package/src/assets/ethereum/hoodi/outpost/EthUsdPriceConsumer.sol/AggregatorV3Interface.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/outpost/EthUsdPriceConsumer.sol/EthUsdPriceConsumer.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/outpost/EthUsdPriceConsumer.sol/EthUsdPriceConsumer.json +274 -0
- package/src/assets/ethereum/hoodi/outpost/InstaswapBridgeAttestations.sol/BridgeDepositCodec.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/outpost/InstaswapBridgeAttestations.sol/BridgeDepositCodec.json +10 -0
- package/src/assets/ethereum/hoodi/outpost/InstaswapBridgeAttestations.sol/BridgeWithdrawCodec.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/outpost/InstaswapBridgeAttestations.sol/BridgeWithdrawCodec.json +10 -0
- package/src/assets/ethereum/hoodi/outpost/InstaswapBridgeAttestations.sol/BridgeWithdrawConfirmCodec.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/outpost/InstaswapBridgeAttestations.sol/BridgeWithdrawConfirmCodec.json +10 -0
- package/src/assets/ethereum/hoodi/outpost/InstaswapBridgeAttestations.sol/InstaswapBridgeAttestationTypeLib.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/outpost/InstaswapBridgeAttestations.sol/InstaswapBridgeAttestationTypeLib.json +10 -0
- package/src/assets/ethereum/hoodi/outpost/LiqEthBridge.sol/LiqEthBridge.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/outpost/LiqEthBridge.sol/LiqEthBridge.json +1044 -0
- package/src/assets/ethereum/hoodi/outpost/OPP.sol/OPP.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/outpost/OPP.sol/OPP.json +1055 -0
- package/src/assets/ethereum/hoodi/outpost/OPPCommon.sol/IOPP.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/outpost/OPPCommon.sol/IOPP.json +81 -0
- package/src/assets/ethereum/hoodi/outpost/OPPCommon.sol/IOPPEndpoint.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/outpost/OPPCommon.sol/IOPPInbound.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/outpost/OPPCommon.sol/IOPPInbound.json +330 -0
- package/src/assets/ethereum/hoodi/outpost/OPPCommon.sol/IOPPReceiver.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/outpost/OPPCommon.sol/IOPPReceiver.json +29 -0
- package/src/assets/ethereum/hoodi/outpost/OPPCommon.sol/IOPPSender.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/outpost/OPPCommon.sol/IOPPSender.json +41 -0
- package/src/assets/ethereum/hoodi/outpost/OPPCommon.sol/OPPCommon.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/outpost/OPPCommon.sol/OPPCommon.json +287 -0
- package/src/assets/ethereum/hoodi/outpost/OPPEndpoint.sol/OPPEndpoint.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/outpost/OPPEndpoint.sol/OPPEndpoint.json +294 -0
- package/src/assets/ethereum/hoodi/outpost/OPPEndpointManaged.sol/OPPEndpointManaged.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/outpost/OPPEndpointManaged.sol/OPPEndpointManaged.json +415 -0
- package/src/assets/ethereum/hoodi/outpost/OPPEndpointOwnable.sol/OPPEndpointOwnable.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/outpost/OPPEndpointOwnable.sol/OPPEndpointOwnable.json +399 -0
- package/src/assets/ethereum/hoodi/outpost/OPPErrors.sol/OPPErrors.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/outpost/OPPErrors.sol/OPPErrors.json +245 -0
- package/src/assets/ethereum/hoodi/outpost/OPPInbound.sol/OPPInbound.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/outpost/OPPInbound.sol/OPPInbound.json +1204 -0
- package/src/assets/ethereum/hoodi/outpost/OPPReceiver.sol/OPPReceiver.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/outpost/OPPReceiver.sol/OPPReceiver.json +312 -0
- package/src/assets/ethereum/hoodi/outpost/OPPSender.sol/OPPSender.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/outpost/OPPSender.sol/OPPSender.json +324 -0
- package/src/assets/ethereum/hoodi/outpost/OperatorRegistry.sol/OperatorRegistry.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/outpost/OperatorRegistry.sol/OperatorRegistry.json +1068 -0
- package/src/assets/ethereum/hoodi/outpost/OutpostErrors.sol/OutpostErrors.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/outpost/OutpostErrors.sol/OutpostErrors.json +211 -0
- package/src/assets/ethereum/hoodi/outpost/OutpostManaged.sol/OutpostManaged.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/outpost/OutpostManaged.sol/OutpostManaged.json +229 -0
- package/src/assets/ethereum/hoodi/outpost/OutpostManager.sol/OutpostManager.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/outpost/OutpostManager.sol/OutpostManager.json +751 -0
- package/src/assets/ethereum/hoodi/outpost/OutpostManagerAuthority.sol/OutpostManagerAuthority.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/outpost/OutpostManagerAuthority.sol/OutpostManagerAuthority.json +1432 -0
- package/src/assets/ethereum/hoodi/outpost/OutpostManagerCommon.sol/IOutpostManager.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/outpost/OutpostManagerCommon.sol/IOutpostManager.json +130 -0
- package/src/assets/ethereum/hoodi/outpost/OutpostManagerCommon.sol/IOutpostUpgradeable.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/outpost/OutpostManagerCommon.sol/OutpostManagerCommon.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/outpost/OutpostManagerCommon.sol/OutpostManagerCommon.json +141 -0
- package/src/assets/ethereum/hoodi/outpost/OutpostOwnable.sol/OutpostOwnable.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/outpost/OutpostOwnable.sol/OutpostOwnable.json +213 -0
- package/src/assets/ethereum/hoodi/outpost/OutpostReserve.sol/OutpostReserve.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/outpost/OutpostReserve.sol/OutpostReserve.json +888 -0
- package/src/assets/ethereum/hoodi/outpost/Pool.sol/Pool.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/outpost/Pool.sol/Pool.json +659 -0
- package/src/assets/ethereum/hoodi/outpost/Pretoken.sol/Pretoken.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/outpost/Pretoken.sol/Pretoken.json +1393 -0
- package/src/assets/ethereum/hoodi/outpost/ReceiptNFT.sol/ReceiptNFT.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/outpost/ReceiptNFT.sol/ReceiptNFT.json +1738 -0
- package/src/assets/ethereum/hoodi/outpost/WireYieldHubAttestations.sol/InstaswapConfirmCodec.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/outpost/WireYieldHubAttestations.sol/InstaswapConfirmCodec.json +10 -0
- package/src/assets/ethereum/hoodi/outpost/WireYieldHubAttestations.sol/InstaswapFailedCodec.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/outpost/WireYieldHubAttestations.sol/InstaswapFailedCodec.json +10 -0
- package/src/assets/ethereum/hoodi/outpost/WireYieldHubAttestations.sol/InstaswapRequestCodec.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/outpost/WireYieldHubAttestations.sol/InstaswapRequestCodec.json +10 -0
- package/src/assets/ethereum/hoodi/outpost/WireYieldHubAttestations.sol/InstaswapSettlementCodec.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/outpost/WireYieldHubAttestations.sol/InstaswapSettlementCodec.json +10 -0
- package/src/assets/ethereum/hoodi/outpost/WireYieldHubAttestations.sol/PrincipalExitConfirmCodec.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/outpost/WireYieldHubAttestations.sol/PrincipalExitConfirmCodec.json +10 -0
- package/src/assets/ethereum/hoodi/outpost/WireYieldHubAttestations.sol/PrincipalExitFailedCodec.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/outpost/WireYieldHubAttestations.sol/PrincipalExitFailedCodec.json +10 -0
- package/src/assets/ethereum/hoodi/outpost/WireYieldHubAttestations.sol/PrincipalExitRequestCodec.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/outpost/WireYieldHubAttestations.sol/PrincipalExitRequestCodec.json +10 -0
- package/src/assets/ethereum/hoodi/outpost/WireYieldHubAttestations.sol/PrincipalStakeDeltaCodec.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/outpost/WireYieldHubAttestations.sol/PrincipalStakeDeltaCodec.json +10 -0
- package/src/assets/ethereum/hoodi/outpost/WireYieldHubAttestations.sol/WireYieldHubAssetCodec.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/outpost/WireYieldHubAttestations.sol/WireYieldHubAssetCodec.json +10 -0
- package/src/assets/ethereum/hoodi/outpost/WireYieldHubAttestations.sol/WireYieldHubAttestationTypeLib.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/outpost/WireYieldHubAttestations.sol/WireYieldHubAttestationTypeLib.json +10 -0
- package/src/assets/ethereum/hoodi/outpost/WireYieldHubAttestations.sol/WireYieldHubAttestations.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/outpost/WireYieldHubAttestations.sol/WireYieldHubAttestations.json +1437 -0
- package/src/assets/ethereum/hoodi/outpost/WireYieldHubAttestations.sol/YieldDepositCodec.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/outpost/WireYieldHubAttestations.sol/YieldDepositCodec.json +10 -0
- package/src/assets/ethereum/hoodi/outpost/interfaces/IPretoken.sol/IPretoken.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/outpost/interfaces/IWarrant.sol/IWarrant.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/outpost/token/ERC721EthEquivalentVotesUpgradeable.sol/ERC721EthEquivalentVotesUpgradeable.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/outpost/token/IERC721EthEquivalent.sol/IERC721EthEquivalent.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/token/ERC1155Token.sol/ERC1155Token.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/token/ERC1155Token.sol/ERC1155Token.json +472 -0
- package/src/assets/ethereum/hoodi/token/ERC20Token.sol/ERC20Token.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/token/ERC20Token.sol/ERC20Token.json +330 -0
- package/src/assets/ethereum/hoodi/token/ERC721Token.sol/ERC721Token.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/token/ERC721Token.sol/ERC721Token.json +449 -0
- package/src/assets/ethereum/hoodi/token/Eman1155.sol/Eman1155.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/token/Eman1155.sol/Eman1155.json +560 -0
- package/src/assets/ethereum/hoodi/token/Eman20.sol/Eman20.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/token/Eman20.sol/Eman20.json +460 -0
- package/src/assets/ethereum/hoodi/token/Eman721.sol/Eman721.dbg.json +4 -0
- package/src/assets/ethereum/hoodi/token/Eman721.sol/Eman721.json +624 -0
- package/src/assets/ethereum/mainnet/common/Base58.sol/Base58.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/common/Base58.sol/Base58.json +164 -0
- package/src/assets/ethereum/mainnet/common/OpenZepArtifacts.sol/__Dummy_OZ_UUPS__.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/common/OpenZepArtifacts.sol/__Dummy_OZ_UUPS__.json +76 -0
- package/src/assets/ethereum/mainnet/common/RestrictedCallers.sol/RestrictedCallers.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/common/RestrictedCallers.sol/RestrictedCallers.json +10 -0
- package/src/assets/ethereum/mainnet/common/iodata.sol/iodata.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/common/iodata.sol/iodata.json +618 -0
- package/src/assets/ethereum/mainnet/common/iodata_util.sol/iodata_util.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/common/iodata_util.sol/iodata_util.json +40 -0
- package/src/assets/ethereum/mainnet/common/sysio_data.sol/sysio_data.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/common/sysio_data.sol/sysio_data.json +10 -0
- package/src/assets/ethereum/mainnet/common/sysio_errors.sol/sysio_errors.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/common/sysio_errors.sol/sysio_errors.json +10 -0
- package/src/assets/ethereum/mainnet/common/sysio_merkle.sol/sysio_merkle.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/common/sysio_merkle.sol/sysio_merkle.json +233 -0
- package/src/assets/ethereum/mainnet/common/sysio_name.sol/sysio_name.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/common/sysio_name.sol/sysio_name.json +49 -0
- package/src/assets/ethereum/mainnet/common/sysio_pubkey.sol/sysio_pubkey.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/common/sysio_pubkey.sol/sysio_pubkey.json +64 -0
- package/src/assets/ethereum/mainnet/common/sysio_read.sol/sysio_read.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/common/sysio_read.sol/sysio_read.json +1458 -0
- package/src/assets/ethereum/mainnet/common/sysio_tester.sol/SysioTester.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/common/sysio_tester.sol/SysioTester.json +1532 -0
- package/src/assets/ethereum/mainnet/common/sysio_verify.sol/sysio_verify.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/common/sysio_verify.sol/sysio_verify.json +1525 -0
- package/src/assets/ethereum/mainnet/common/sysio_write.sol/sysio_write.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/common/sysio_write.sol/sysio_write.json +1076 -0
- package/src/assets/ethereum/mainnet/liqEth/BeaconState.sol/BeaconState.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/liqEth/BeaconState.sol/BeaconState.json +807 -0
- package/src/assets/ethereum/mainnet/liqEth/DepositManager.sol/DepositManagerV2.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/liqEth/DepositManager.sol/DepositManagerV2.json +1004 -0
- package/src/assets/ethereum/mainnet/liqEth/DepositManager.sol/IStakingModuleBondLocker.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/liqEth/DepositManager.sol/IStakingModuleBondLocker.json +29 -0
- package/src/assets/ethereum/mainnet/liqEth/KeyBondManager.sol/KeyBondManager.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/liqEth/KeyBondManager.sol/KeyBondManager.json +897 -0
- package/src/assets/ethereum/mainnet/liqEth/LiqEthAuthority.sol/LiqEthAuthority.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/liqEth/LiqEthAuthority.sol/LiqEthAuthority.json +1289 -0
- package/src/assets/ethereum/mainnet/liqEth/LiqEthCommon.sol/IDepositContract.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/liqEth/LiqEthCommon.sol/IDepositContract.json +39 -0
- package/src/assets/ethereum/mainnet/liqEth/LiqEthCommon.sol/IDepositManager.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/liqEth/LiqEthCommon.sol/IDepositManager.json +64 -0
- package/src/assets/ethereum/mainnet/liqEth/LiqEthCommon.sol/IKeyBondManager.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/liqEth/LiqEthCommon.sol/IKeyBondManager.json +189 -0
- package/src/assets/ethereum/mainnet/liqEth/LiqEthCommon.sol/ILiqEthUpgradeable.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/liqEth/LiqEthCommon.sol/ILiqEthUpgradeable.json +29 -0
- package/src/assets/ethereum/mainnet/liqEth/LiqEthCommon.sol/IRewardsERC20.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/liqEth/LiqEthCommon.sol/IRewardsERC20.json +319 -0
- package/src/assets/ethereum/mainnet/liqEth/LiqEthCommon.sol/IRewardsERC20Pausable.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/liqEth/LiqEthCommon.sol/IRewardsERC20Pausable.json +333 -0
- package/src/assets/ethereum/mainnet/liqEth/LiqEthCommon.sol/IStakingModule.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/liqEth/LiqEthCommon.sol/IStakingModule.json +279 -0
- package/src/assets/ethereum/mainnet/liqEth/LiqEthCommon.sol/IValidatorBalanceVerifier.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/liqEth/LiqEthCommon.sol/IValidatorBalanceVerifier.json +129 -0
- package/src/assets/ethereum/mainnet/liqEth/LiqEthCommon.sol/IWithdrawalRecord.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/liqEth/LiqEthCommon.sol/IWithdrawalRecord.json +66 -0
- package/src/assets/ethereum/mainnet/liqEth/LiqEthCommon.sol/LiqEthCommon.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/liqEth/LiqEthCommon.sol/LiqEthCommon.json +10 -0
- package/src/assets/ethereum/mainnet/liqEth/LiqEthDeepFreeze.sol/LiqEthDeepFreeze.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/liqEth/LiqEthDeepFreeze.sol/LiqEthDeepFreeze.json +236 -0
- package/src/assets/ethereum/mainnet/liqEth/LiqEthManaged.sol/LiqEthManaged.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/liqEth/LiqEthManaged.sol/LiqEthManaged.json +229 -0
- package/src/assets/ethereum/mainnet/liqEth/RewardsERC20.sol/RewardsERC20UpgradeableV2.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/liqEth/RewardsERC20.sol/RewardsERC20UpgradeableV2.json +957 -0
- package/src/assets/ethereum/mainnet/liqEth/RewardsERC20Pausable.sol/RewardsERC20PausableUpgradeableV2.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/liqEth/RewardsERC20Pausable.sol/RewardsERC20PausableUpgradeableV2.json +1020 -0
- package/src/assets/ethereum/mainnet/liqEth/StakingLib.sol/StakingLib.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/liqEth/StakingLib.sol/StakingLib.json +89 -0
- package/src/assets/ethereum/mainnet/liqEth/Yield.sol/YieldOracle.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/liqEth/Yield.sol/YieldOracle.json +1376 -0
- package/src/assets/ethereum/mainnet/liqEth/liqEth.sol/LiqEthTokenV2.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/liqEth/liqEth.sol/LiqEthTokenV2.json +1323 -0
- package/src/assets/ethereum/mainnet/liqEth/stakingModule.sol/StakingModuleV2.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/liqEth/stakingModule.sol/StakingModuleV2.json +1896 -0
- package/src/assets/ethereum/mainnet/liqEth/v1/DepositManager.sol/DepositManager.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/liqEth/v1/DepositManager.sol/DepositManager.json +978 -0
- package/src/assets/ethereum/mainnet/liqEth/v1/LiqEthCommon.sol/IAccounting.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/liqEth/v1/LiqEthCommon.sol/IAccounting.json +176 -0
- package/src/assets/ethereum/mainnet/liqEth/v1/LiqEthCommon.sol/IDepositContract.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/liqEth/v1/LiqEthCommon.sol/IDepositContract.json +39 -0
- package/src/assets/ethereum/mainnet/liqEth/v1/LiqEthCommon.sol/IDepositManager.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/liqEth/v1/LiqEthCommon.sol/IDepositManager.json +64 -0
- package/src/assets/ethereum/mainnet/liqEth/v1/LiqEthCommon.sol/ILiqEthUpgradeable.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/liqEth/v1/LiqEthCommon.sol/ILiqEthUpgradeable.json +29 -0
- package/src/assets/ethereum/mainnet/liqEth/v1/LiqEthCommon.sol/IRewardsERC20.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/liqEth/v1/LiqEthCommon.sol/IRewardsERC20.json +249 -0
- package/src/assets/ethereum/mainnet/liqEth/v1/LiqEthCommon.sol/IRewardsERC20Pausable.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/liqEth/v1/LiqEthCommon.sol/IRewardsERC20Pausable.json +263 -0
- package/src/assets/ethereum/mainnet/liqEth/v1/LiqEthCommon.sol/IStakingModule.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/liqEth/v1/LiqEthCommon.sol/IStakingModule.json +344 -0
- package/src/assets/ethereum/mainnet/liqEth/v1/LiqEthCommon.sol/IValidatorBalanceVerifier.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/liqEth/v1/LiqEthCommon.sol/IValidatorBalanceVerifier.json +129 -0
- package/src/assets/ethereum/mainnet/liqEth/v1/LiqEthCommon.sol/IWithdrawalRecord.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/liqEth/v1/LiqEthCommon.sol/IWithdrawalRecord.json +66 -0
- package/src/assets/ethereum/mainnet/liqEth/v1/LiqEthCommon.sol/LiqEthCommon.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/liqEth/v1/LiqEthCommon.sol/LiqEthCommon.json +10 -0
- package/src/assets/ethereum/mainnet/liqEth/v1/RewardsERC20.sol/RewardsERC20Upgradeable.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/liqEth/v1/RewardsERC20.sol/RewardsERC20Upgradeable.json +874 -0
- package/src/assets/ethereum/mainnet/liqEth/v1/RewardsERC20Pausable.sol/RewardsERC20PausableUpgradeable.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/liqEth/v1/RewardsERC20Pausable.sol/RewardsERC20PausableUpgradeable.json +937 -0
- package/src/assets/ethereum/mainnet/liqEth/v1/accounting.sol/Accounting.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/liqEth/v1/accounting.sol/Accounting.json +542 -0
- package/src/assets/ethereum/mainnet/liqEth/v1/liqEth.sol/LiqEthToken.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/liqEth/v1/liqEth.sol/LiqEthToken.json +1233 -0
- package/src/assets/ethereum/mainnet/liqEth/v1/stakingModule.sol/StakingModule.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/liqEth/v1/stakingModule.sol/StakingModule.json +1772 -0
- package/src/assets/ethereum/mainnet/liqEth/withdrawalQueue.sol/WithdrawalQueue.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/liqEth/withdrawalQueue.sol/WithdrawalQueue.json +973 -0
- package/src/assets/ethereum/mainnet/liqEth/withdrawalVault.sol/Uint64BE.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/liqEth/withdrawalVault.sol/Uint64BE.json +10 -0
- package/src/assets/ethereum/mainnet/liqEth/withdrawalVault.sol/WithdrawalVault.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/liqEth/withdrawalVault.sol/WithdrawalVault.json +441 -0
- package/src/assets/ethereum/mainnet/outpost/BAR.sol/BARV2.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/outpost/BAR.sol/BARV2.json +1915 -0
- package/src/assets/ethereum/mainnet/outpost/Depositor.sol/DepositorV2.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/outpost/Depositor.sol/DepositorV2.json +1845 -0
- package/src/assets/ethereum/mainnet/outpost/EthUsdPriceConsumer.sol/AggregatorV3Interface.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/outpost/EthUsdPriceConsumer.sol/AggregatorV3Interface.json +122 -0
- package/src/assets/ethereum/mainnet/outpost/EthUsdPriceConsumer.sol/EthUsdPriceConsumer.dbg.json +4 -0
- package/src/assets/ethereum/{ABI → mainnet}/outpost/EthUsdPriceConsumer.sol/EthUsdPriceConsumer.json +31 -29
- package/src/assets/ethereum/mainnet/outpost/OPP.sol/OPP.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/outpost/OPPCommon.sol/IOPP.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/outpost/OPPCommon.sol/IOPPEndpoint.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/outpost/OPPCommon.sol/IOPPEndpoint.json +29 -0
- package/src/assets/ethereum/mainnet/outpost/OPPCommon.sol/IOPPInbound.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/outpost/OPPCommon.sol/IOPPReceiver.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/outpost/OPPCommon.sol/IOPPSender.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/outpost/OPPCommon.sol/OPPCommon.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/outpost/OPPEndpoint.sol/OPPEndpoint.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/outpost/OPPEndpointManaged.sol/OPPEndpointManaged.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/outpost/OPPEndpointOwnable.sol/OPPEndpointOwnable.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/outpost/OPPErrors.sol/OPPErrors.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/outpost/OPPInbound.sol/OPPInbound.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/outpost/OPPReceiver.sol/OPPReceiver.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/outpost/OPPSender.sol/OPPSender.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/outpost/OutpostErrors.sol/OutpostErrors.dbg.json +4 -0
- package/src/assets/ethereum/{ABI → mainnet}/outpost/OutpostErrors.sol/OutpostErrors.json +33 -18
- package/src/assets/ethereum/mainnet/outpost/OutpostManaged.sol/OutpostManaged.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/outpost/OutpostManager.sol/OutpostManagerV2.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/outpost/OutpostManager.sol/OutpostManagerV2.json +737 -0
- package/src/assets/ethereum/mainnet/outpost/OutpostManagerAuthority.sol/OutpostManagerAuthority.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/outpost/OutpostManagerCommon.sol/IOutpostManager.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/outpost/OutpostManagerCommon.sol/IOutpostUpgradeable.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/outpost/OutpostManagerCommon.sol/IOutpostUpgradeable.json +29 -0
- package/src/assets/ethereum/mainnet/outpost/OutpostManagerCommon.sol/OutpostManagerCommon.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/outpost/OutpostOwnable.sol/OutpostOwnable.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/outpost/Pool.sol/PoolV2.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/outpost/Pool.sol/PoolV2.json +943 -0
- package/src/assets/ethereum/mainnet/outpost/Pretoken.sol/PretokenV2.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/outpost/Pretoken.sol/PretokenV2.json +1703 -0
- package/src/assets/ethereum/mainnet/outpost/ReceiptNFT.sol/ReceiptNFT.dbg.json +4 -0
- package/src/assets/ethereum/{ABI → mainnet}/outpost/ReceiptNFT.sol/ReceiptNFT.json +33 -18
- package/src/assets/ethereum/mainnet/outpost/interfaces/IPretoken.sol/IPretoken.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/outpost/interfaces/IPretoken.sol/IPretoken.json +29 -0
- package/src/assets/ethereum/mainnet/outpost/interfaces/IWarrant.sol/IWarrant.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/outpost/interfaces/IWarrant.sol/IWarrant.json +29 -0
- package/src/assets/ethereum/mainnet/outpost/token/ERC721EthEquivalentVotesUpgradeable.sol/ERC721EthEquivalentVotesUpgradeable.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/outpost/token/ERC721EthEquivalentVotesUpgradeable.sol/ERC721EthEquivalentVotesUpgradeable.json +858 -0
- package/src/assets/ethereum/mainnet/outpost/token/IERC721EthEquivalent.sol/IERC721EthEquivalent.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/outpost/token/IERC721EthEquivalent.sol/IERC721EthEquivalent.json +30 -0
- package/src/assets/ethereum/mainnet/outpost/v1/BAR.sol/BAR.dbg.json +4 -0
- package/src/assets/ethereum/{ABI/outpost → mainnet/outpost/v1}/BAR.sol/BAR.json +34 -19
- package/src/assets/ethereum/mainnet/outpost/v1/Depositor.sol/Depositor.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/outpost/v1/Depositor.sol/Depositor.json +1653 -0
- package/src/assets/ethereum/mainnet/outpost/v1/OutpostManager.sol/OutpostManager.dbg.json +4 -0
- package/src/assets/ethereum/{ABI/outpost → mainnet/outpost/v1}/OutpostManager.sol/OutpostManager.json +3 -3
- package/src/assets/ethereum/mainnet/outpost/v1/Pool.sol/Pool.dbg.json +4 -0
- package/src/assets/ethereum/{ABI/outpost → mainnet/outpost/v1}/Pool.sol/Pool.json +34 -19
- package/src/assets/ethereum/mainnet/outpost/v1/Pretoken.sol/Pretoken.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/outpost/v1/Pretoken.sol/Pretoken.json +1665 -0
- package/src/assets/ethereum/mainnet/token/ERC1155Token.sol/ERC1155Token.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/token/ERC1155Token.sol/ERC1155Token.json +472 -0
- package/src/assets/ethereum/mainnet/token/ERC20Token.sol/ERC20Token.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/token/ERC20Token.sol/ERC20Token.json +330 -0
- package/src/assets/ethereum/mainnet/token/ERC721Token.sol/ERC721Token.dbg.json +4 -0
- package/src/assets/ethereum/mainnet/token/ERC721Token.sol/ERC721Token.json +449 -0
- package/src/assets/solana/devnet/idl/liqsol_core.json +8566 -0
- package/src/assets/solana/{idl → devnet/idl}/liqsol_token.json +35 -1
- package/src/assets/solana/devnet/idl/transfer_hook.json +490 -0
- package/src/assets/solana/devnet/idl/validator_leaderboard.json +735 -0
- package/src/assets/solana/devnet/types/liqsol_core.ts +8572 -0
- package/src/assets/solana/{types → devnet/types}/liqsol_token.ts +35 -1
- package/src/assets/solana/devnet/types/transfer_hook.ts +496 -0
- package/src/assets/solana/devnet/types/validator_leaderboard.ts +741 -0
- package/src/assets/solana/{idl → mainnet/idl}/liqsol_core.json +3816 -1567
- package/src/assets/solana/mainnet/idl/liqsol_token.json +217 -0
- package/src/assets/solana/mainnet/idl/transfer_hook.json +479 -0
- package/src/assets/solana/{idl → mainnet/idl}/validator_leaderboard.json +4 -4
- package/src/assets/solana/{types → mainnet/types}/liqsol_core.ts +3816 -1567
- package/src/assets/solana/mainnet/types/liqsol_token.ts +223 -0
- package/src/assets/solana/mainnet/types/transfer_hook.ts +485 -0
- package/src/assets/solana/{types → mainnet/types}/validator_leaderboard.ts +4 -4
- package/src/assets/solana/realdevnet/idl/liqsol_core.json +7112 -0
- package/src/assets/solana/realdevnet/idl/liqsol_token.json +217 -0
- package/src/assets/solana/realdevnet/idl/transfer_hook.json +479 -0
- package/src/assets/solana/realdevnet/idl/validator_leaderboard.json +735 -0
- package/src/assets/solana/realdevnet/types/liqsol_core.ts +7118 -0
- package/src/assets/solana/realdevnet/types/liqsol_token.ts +223 -0
- package/src/assets/solana/realdevnet/types/transfer_hook.ts +485 -0
- package/src/assets/solana/realdevnet/types/validator_leaderboard.ts +741 -0
- package/src/index.ts +2 -2
- package/src/networks/ethereum/clients/{deposit.client.ts → convert.client.ts} +66 -5
- package/src/networks/ethereum/clients/opp.client.ts +389 -0
- package/src/networks/ethereum/clients/pretoken.client.ts +87 -49
- package/src/networks/ethereum/clients/receipt.client.ts +199 -0
- package/src/networks/ethereum/clients/stake.client.ts +86 -161
- package/src/networks/ethereum/clients/validator.client.ts +61 -0
- package/src/networks/ethereum/contract.ts +424 -151
- package/src/networks/ethereum/ethereum.ts +454 -244
- package/src/networks/ethereum/types.ts +65 -27
- package/src/networks/ethereum/utils.ts +104 -72
- package/src/networks/solana/clients/convert.client.ts +341 -0
- package/src/networks/solana/clients/distribution.client.ts +269 -263
- package/src/networks/solana/clients/leaderboard.client.ts +68 -26
- package/src/networks/solana/clients/outpost.client.ts +224 -357
- package/src/networks/solana/clients/token.client.ts +96 -106
- package/src/networks/solana/constants.ts +88 -216
- package/src/networks/solana/program.ts +432 -28
- package/src/networks/solana/solana.ts +1064 -292
- package/src/networks/solana/types.ts +688 -78
- package/src/networks/solana/utils.ts +161 -358
- package/src/staker.ts +25 -4
- package/src/types.ts +267 -31
- package/src/assets/ethereum/ABI/liqEth/BeaconState.sol/BeaconState.dbg.json +0 -4
- package/src/assets/ethereum/ABI/liqEth/DepositManager.sol/DepositManager.dbg.json +0 -4
- package/src/assets/ethereum/ABI/liqEth/DepositManager.sol/DepositManager.json +0 -952
- package/src/assets/ethereum/ABI/liqEth/LiqEthAuthority.sol/LiqEthAuthority.dbg.json +0 -4
- package/src/assets/ethereum/ABI/liqEth/LiqEthCommon.sol/IAccounting.dbg.json +0 -4
- package/src/assets/ethereum/ABI/liqEth/LiqEthCommon.sol/IDepositContract.dbg.json +0 -4
- package/src/assets/ethereum/ABI/liqEth/LiqEthCommon.sol/IDepositManager.dbg.json +0 -4
- package/src/assets/ethereum/ABI/liqEth/LiqEthCommon.sol/ILiqEthUpgradeable.dbg.json +0 -4
- package/src/assets/ethereum/ABI/liqEth/LiqEthCommon.sol/IRewardsERC20.dbg.json +0 -4
- package/src/assets/ethereum/ABI/liqEth/LiqEthCommon.sol/IRewardsERC20Pausable.dbg.json +0 -4
- package/src/assets/ethereum/ABI/liqEth/LiqEthCommon.sol/IStakingModule.dbg.json +0 -4
- package/src/assets/ethereum/ABI/liqEth/LiqEthCommon.sol/IValidatorBalanceVerifier.dbg.json +0 -4
- package/src/assets/ethereum/ABI/liqEth/LiqEthCommon.sol/IWithdrawalRecord.dbg.json +0 -4
- package/src/assets/ethereum/ABI/liqEth/LiqEthCommon.sol/LiqEthCommon.dbg.json +0 -4
- package/src/assets/ethereum/ABI/liqEth/LiqEthManaged.sol/LiqEthManaged.dbg.json +0 -4
- package/src/assets/ethereum/ABI/liqEth/RewardsERC20.sol/RewardsERC20Upgradeable.dbg.json +0 -4
- package/src/assets/ethereum/ABI/liqEth/RewardsERC20Pausable.sol/RewardsERC20PausableUpgradeable.dbg.json +0 -4
- package/src/assets/ethereum/ABI/liqEth/ValidatorBalanceVerifier.sol/BeaconRoots.dbg.json +0 -4
- package/src/assets/ethereum/ABI/liqEth/ValidatorBalanceVerifier.sol/BeaconRoots.json +0 -10
- package/src/assets/ethereum/ABI/liqEth/ValidatorBalanceVerifier.sol/SSZ.dbg.json +0 -4
- package/src/assets/ethereum/ABI/liqEth/ValidatorBalanceVerifier.sol/SSZ.json +0 -10
- package/src/assets/ethereum/ABI/liqEth/ValidatorBalanceVerifier.sol/SSZExtras.dbg.json +0 -4
- package/src/assets/ethereum/ABI/liqEth/ValidatorBalanceVerifier.sol/SSZExtras.json +0 -10
- package/src/assets/ethereum/ABI/liqEth/ValidatorBalanceVerifier.sol/SSZVec48.dbg.json +0 -4
- package/src/assets/ethereum/ABI/liqEth/ValidatorBalanceVerifier.sol/SSZVec48.json +0 -10
- package/src/assets/ethereum/ABI/liqEth/ValidatorBalanceVerifier.sol/ValidatorBalanceVerifier.dbg.json +0 -4
- package/src/assets/ethereum/ABI/liqEth/ValidatorBalanceVerifier.sol/ValidatorBalanceVerifier.json +0 -291
- package/src/assets/ethereum/ABI/liqEth/Yield.sol/YieldOracle.dbg.json +0 -4
- package/src/assets/ethereum/ABI/liqEth/accounting.sol/Accounting.dbg.json +0 -4
- package/src/assets/ethereum/ABI/liqEth/accounting.sol/Accounting.json +0 -555
- package/src/assets/ethereum/ABI/liqEth/liqEth.sol/LiqEthToken.dbg.json +0 -4
- package/src/assets/ethereum/ABI/liqEth/liqEth.sol/LiqEthToken.json +0 -1202
- package/src/assets/ethereum/ABI/liqEth/stakingModule.sol/StakingModule.dbg.json +0 -4
- package/src/assets/ethereum/ABI/liqEth/stakingModule.sol/StakingModule.json +0 -1791
- package/src/assets/ethereum/ABI/liqEth/withdrawalQueue.sol/WithdrawalQueue.dbg.json +0 -4
- package/src/assets/ethereum/ABI/liqEth/withdrawalVault.sol/Uint64BE.dbg.json +0 -4
- package/src/assets/ethereum/ABI/liqEth/withdrawalVault.sol/WithdrawalVault.dbg.json +0 -4
- package/src/assets/ethereum/ABI/liqEth/withdrawalVault.sol/WithdrawalVault.json +0 -460
- package/src/assets/ethereum/ABI/outpost/Aggregator.sol/Aggregator.json +0 -82
- package/src/assets/ethereum/ABI/outpost/BAR.sol/BAR.dbg.json +0 -4
- package/src/assets/ethereum/ABI/outpost/Depositor.sol/Depositor.dbg.json +0 -4
- package/src/assets/ethereum/ABI/outpost/Depositor.sol/Depositor.json +0 -1638
- package/src/assets/ethereum/ABI/outpost/EthUsdPriceConsumer.sol/AggregatorV3Interface.dbg.json +0 -4
- package/src/assets/ethereum/ABI/outpost/EthUsdPriceConsumer.sol/EthUsdPriceConsumer.dbg.json +0 -4
- package/src/assets/ethereum/ABI/outpost/OPP.sol/OPP.dbg.json +0 -4
- package/src/assets/ethereum/ABI/outpost/OPPCommon.sol/IOPP.dbg.json +0 -4
- package/src/assets/ethereum/ABI/outpost/OPPCommon.sol/IOPPEndpoint.dbg.json +0 -4
- package/src/assets/ethereum/ABI/outpost/OPPCommon.sol/IOPPInbound.dbg.json +0 -4
- package/src/assets/ethereum/ABI/outpost/OPPCommon.sol/IOPPReceiver.dbg.json +0 -4
- package/src/assets/ethereum/ABI/outpost/OPPCommon.sol/IOPPSender.dbg.json +0 -4
- package/src/assets/ethereum/ABI/outpost/OPPCommon.sol/OPPCommon.dbg.json +0 -4
- package/src/assets/ethereum/ABI/outpost/OPPEndpoint.sol/OPPEndpoint.dbg.json +0 -4
- package/src/assets/ethereum/ABI/outpost/OPPEndpointManaged.sol/OPPEndpointManaged.dbg.json +0 -4
- package/src/assets/ethereum/ABI/outpost/OPPEndpointOwnable.sol/OPPEndpointOwnable.dbg.json +0 -4
- package/src/assets/ethereum/ABI/outpost/OPPErrors.sol/OPPErrors.dbg.json +0 -4
- package/src/assets/ethereum/ABI/outpost/OPPInbound.sol/OPPInbound.dbg.json +0 -4
- package/src/assets/ethereum/ABI/outpost/OPPReceiver.sol/OPPReceiver.dbg.json +0 -4
- package/src/assets/ethereum/ABI/outpost/OPPSender.sol/OPPSender.dbg.json +0 -4
- package/src/assets/ethereum/ABI/outpost/OutpostErrors.sol/OutpostErrors.dbg.json +0 -4
- package/src/assets/ethereum/ABI/outpost/OutpostManaged.sol/OutpostManaged.dbg.json +0 -4
- package/src/assets/ethereum/ABI/outpost/OutpostManager.sol/OutpostManager.dbg.json +0 -4
- package/src/assets/ethereum/ABI/outpost/OutpostManagerAuthority.sol/OutpostManagerAuthority.dbg.json +0 -4
- package/src/assets/ethereum/ABI/outpost/OutpostManagerCommon.sol/IOutpostManager.dbg.json +0 -4
- package/src/assets/ethereum/ABI/outpost/OutpostManagerCommon.sol/IOutpostUpgradeable.dbg.json +0 -4
- package/src/assets/ethereum/ABI/outpost/OutpostManagerCommon.sol/OutpostManagerCommon.dbg.json +0 -4
- package/src/assets/ethereum/ABI/outpost/OutpostOwnable.sol/OutpostOwnable.dbg.json +0 -4
- package/src/assets/ethereum/ABI/outpost/Pool.sol/Pool.dbg.json +0 -4
- package/src/assets/ethereum/ABI/outpost/Pretoken.sol/Pretoken.dbg.json +0 -4
- package/src/assets/ethereum/ABI/outpost/Pretoken.sol/Pretoken.json +0 -1650
- package/src/assets/ethereum/ABI/outpost/ReceiptNFT.sol/ReceiptNFT.dbg.json +0 -4
- package/src/assets/ethereum/ABI/outpost/interfaces/IPretoken.sol/IPretoken.dbg.json +0 -4
- package/src/assets/ethereum/ABI/outpost/interfaces/IWarrant.sol/IWarrant.dbg.json +0 -4
- package/src/assets/ethereum/ABI/outpost/token/ERC721EthEquivalentVotesUpgradeable.sol/ERC721EthEquivalentVotesUpgradeable.dbg.json +0 -4
- package/src/assets/ethereum/ABI/outpost/token/IERC721EthEquivalent.sol/IERC721EthEquivalent.dbg.json +0 -4
- package/src/assets/ethereum/ABI/token/ERC1155Token.sol/ERC1155Token.dbg.json +0 -4
- package/src/assets/ethereum/ABI/token/ERC1155Token.sol/ERC1155Token.json +0 -472
- package/src/assets/ethereum/ABI/token/ERC20Token.sol/ERC20Token.dbg.json +0 -4
- package/src/assets/ethereum/ABI/token/ERC20Token.sol/ERC20Token.json +0 -330
- package/src/assets/ethereum/ABI/token/ERC721Token.sol/ERC721Token.dbg.json +0 -4
- package/src/assets/ethereum/ABI/token/ERC721Token.sol/ERC721Token.json +0 -449
- package/src/networks/ethereum/clients/liq.client.ts +0 -47
- package/src/networks/solana/clients/deposit.client.ts +0 -127
- package/src/staker/types.ts +0 -62
- /package/src/assets/ethereum/{ABI → hoodi}/liqEth/BeaconState.sol/BeaconState.json +0 -0
- /package/src/assets/ethereum/{ABI → hoodi}/liqEth/LiqEthAuthority.sol/LiqEthAuthority.json +0 -0
- /package/src/assets/ethereum/{ABI → hoodi}/liqEth/LiqEthCommon.sol/IDepositContract.json +0 -0
- /package/src/assets/ethereum/{ABI → hoodi}/liqEth/LiqEthCommon.sol/IDepositManager.json +0 -0
- /package/src/assets/ethereum/{ABI → hoodi}/liqEth/LiqEthCommon.sol/ILiqEthUpgradeable.json +0 -0
- /package/src/assets/ethereum/{ABI → hoodi}/liqEth/LiqEthCommon.sol/IValidatorBalanceVerifier.json +0 -0
- /package/src/assets/ethereum/{ABI → hoodi}/liqEth/LiqEthCommon.sol/IWithdrawalRecord.json +0 -0
- /package/src/assets/ethereum/{ABI → hoodi}/outpost/EthUsdPriceConsumer.sol/AggregatorV3Interface.json +0 -0
- /package/src/assets/ethereum/{ABI → hoodi}/outpost/OPPCommon.sol/IOPPEndpoint.json +0 -0
- /package/src/assets/ethereum/{ABI → hoodi}/outpost/OutpostManagerCommon.sol/IOutpostUpgradeable.json +0 -0
- /package/src/assets/ethereum/{ABI → hoodi}/outpost/interfaces/IPretoken.sol/IPretoken.json +0 -0
- /package/src/assets/ethereum/{ABI → hoodi}/outpost/interfaces/IWarrant.sol/IWarrant.json +0 -0
- /package/src/assets/ethereum/{ABI → hoodi}/outpost/token/ERC721EthEquivalentVotesUpgradeable.sol/ERC721EthEquivalentVotesUpgradeable.json +0 -0
- /package/src/assets/ethereum/{ABI → hoodi}/outpost/token/IERC721EthEquivalent.sol/IERC721EthEquivalent.json +0 -0
- /package/src/assets/ethereum/{ABI → mainnet}/outpost/OPP.sol/OPP.json +0 -0
- /package/src/assets/ethereum/{ABI → mainnet}/outpost/OPPCommon.sol/IOPP.json +0 -0
- /package/src/assets/ethereum/{ABI → mainnet}/outpost/OPPCommon.sol/IOPPInbound.json +0 -0
- /package/src/assets/ethereum/{ABI → mainnet}/outpost/OPPCommon.sol/IOPPReceiver.json +0 -0
- /package/src/assets/ethereum/{ABI → mainnet}/outpost/OPPCommon.sol/IOPPSender.json +0 -0
- /package/src/assets/ethereum/{ABI → mainnet}/outpost/OPPCommon.sol/OPPCommon.json +0 -0
- /package/src/assets/ethereum/{ABI → mainnet}/outpost/OPPEndpoint.sol/OPPEndpoint.json +0 -0
- /package/src/assets/ethereum/{ABI → mainnet}/outpost/OPPEndpointManaged.sol/OPPEndpointManaged.json +0 -0
- /package/src/assets/ethereum/{ABI → mainnet}/outpost/OPPEndpointOwnable.sol/OPPEndpointOwnable.json +0 -0
- /package/src/assets/ethereum/{ABI → mainnet}/outpost/OPPErrors.sol/OPPErrors.json +0 -0
- /package/src/assets/ethereum/{ABI → mainnet}/outpost/OPPInbound.sol/OPPInbound.json +0 -0
- /package/src/assets/ethereum/{ABI → mainnet}/outpost/OPPReceiver.sol/OPPReceiver.json +0 -0
- /package/src/assets/ethereum/{ABI → mainnet}/outpost/OPPSender.sol/OPPSender.json +0 -0
- /package/src/assets/ethereum/{ABI → mainnet}/outpost/OutpostManaged.sol/OutpostManaged.json +0 -0
- /package/src/assets/ethereum/{ABI → mainnet}/outpost/OutpostManagerAuthority.sol/OutpostManagerAuthority.json +0 -0
- /package/src/assets/ethereum/{ABI → mainnet}/outpost/OutpostManagerCommon.sol/IOutpostManager.json +0 -0
- /package/src/assets/ethereum/{ABI → mainnet}/outpost/OutpostManagerCommon.sol/OutpostManagerCommon.json +0 -0
- /package/src/assets/ethereum/{ABI → mainnet}/outpost/OutpostOwnable.sol/OutpostOwnable.json +0 -0
|
@@ -1,474 +1,341 @@
|
|
|
1
1
|
import { AnchorProvider, BN, Program } from '@coral-xyz/anchor';
|
|
2
2
|
import {
|
|
3
|
-
Connection,
|
|
4
3
|
PublicKey,
|
|
5
4
|
SystemProgram,
|
|
6
|
-
Transaction,
|
|
7
5
|
TransactionInstruction,
|
|
8
6
|
} from '@solana/web3.js';
|
|
9
7
|
import {
|
|
10
8
|
ASSOCIATED_TOKEN_PROGRAM_ID,
|
|
11
9
|
TOKEN_2022_PROGRAM_ID,
|
|
12
|
-
createAssociatedTokenAccountInstruction,
|
|
13
10
|
} from '@solana/spl-token';
|
|
11
|
+
|
|
14
12
|
import {
|
|
13
|
+
OutpostAccounts,
|
|
15
14
|
buildOutpostAccounts,
|
|
16
|
-
|
|
17
|
-
getErrorMessage,
|
|
15
|
+
safeFetch,
|
|
18
16
|
} from '../utils';
|
|
19
|
-
|
|
20
|
-
import {
|
|
21
|
-
|
|
17
|
+
|
|
18
|
+
import {
|
|
19
|
+
OutpostWireStateSnapshot,
|
|
20
|
+
SharesPreview,
|
|
21
|
+
TrancheState,
|
|
22
|
+
WalletLike,
|
|
23
|
+
} from '../types';
|
|
24
|
+
import { INDEX_SCALE } from '../constants';
|
|
25
|
+
import { LiqsolCoreClientIdl, SolanaProgramService } from '../program';
|
|
22
26
|
|
|
23
27
|
/**
|
|
24
|
-
*
|
|
25
|
-
*
|
|
26
|
-
* -
|
|
28
|
+
* OutpostClient
|
|
29
|
+
*
|
|
30
|
+
* Read-only + preview helper for:
|
|
31
|
+
* - Outpost config + per-user pretokens
|
|
32
|
+
* - Tranche ladder snapshot
|
|
33
|
+
* - Pretoken preview math
|
|
34
|
+
*
|
|
35
|
+
* Write helpers:
|
|
36
|
+
* - buildStakeIx → liqsol_core::synd
|
|
37
|
+
* - buildUnstakeIx → liqsol_core::desynd
|
|
27
38
|
*
|
|
28
|
-
*
|
|
39
|
+
* All PDAs / ATAs are sourced via buildOutpostAccounts, which is kept
|
|
40
|
+
* in sync with the on-chain PDAs and capital-staking Wire utils.
|
|
29
41
|
*/
|
|
30
42
|
export class OutpostClient {
|
|
31
|
-
private readonly program: Program<
|
|
43
|
+
private readonly program: Program<LiqsolCoreClientIdl>;
|
|
32
44
|
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
constructor(private provider: AnchorProvider) {
|
|
40
|
-
const svc = new SolanaProgramService(provider);
|
|
41
|
-
this.program = svc.getProgram('liqsolCore');
|
|
45
|
+
constructor(
|
|
46
|
+
private readonly provider: AnchorProvider,
|
|
47
|
+
private readonly pgs: SolanaProgramService,
|
|
48
|
+
) {
|
|
49
|
+
this.program = pgs.getProgram('liqsolCore');
|
|
42
50
|
}
|
|
43
51
|
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
* without requiring a wallet. Kept here as sugar for callers.
|
|
47
|
-
*/
|
|
48
|
-
getReadOnlyProgram(): Program<LiqsolCore> {
|
|
49
|
-
return getLiqsolCoreProgram(this.connection);
|
|
52
|
+
get connection() {
|
|
53
|
+
return this.provider.connection;
|
|
50
54
|
}
|
|
51
55
|
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
// ---------------------------------------------------------------------------
|
|
55
|
-
|
|
56
|
-
/**
|
|
57
|
-
* Same rounding logic from your tests: ceil(amount * INDEX_SCALE / currentIndex)
|
|
58
|
-
*/
|
|
59
|
-
static tokensToShares(amount: BN, currentIndex: BN): BN {
|
|
60
|
-
const numerator = amount.mul(OutpostClient.INDEX_SCALE);
|
|
61
|
-
const shares = numerator.div(currentIndex);
|
|
62
|
-
const remainder = numerator.mod(currentIndex);
|
|
63
|
-
return remainder.eqn(0) ? shares : shares.addn(1);
|
|
56
|
+
get wallet(): WalletLike {
|
|
57
|
+
return this.provider.wallet as unknown as WalletLike;
|
|
64
58
|
}
|
|
65
59
|
|
|
66
60
|
/**
|
|
67
|
-
*
|
|
68
|
-
*
|
|
61
|
+
* Build all outpost-related PDAs / ATAs for a given user.
|
|
62
|
+
* Defaults to the connected wallet.
|
|
69
63
|
*/
|
|
70
|
-
|
|
71
|
-
const
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
const padding = '0'.repeat(decimals - valueStr.length);
|
|
75
|
-
return `0.${padding}${valueStr}`;
|
|
64
|
+
async buildAccounts(user?: PublicKey): Promise<OutpostAccounts> {
|
|
65
|
+
const userPk = user ?? this.wallet.publicKey;
|
|
66
|
+
if (!userPk) {
|
|
67
|
+
throw new Error('OutpostClient.buildAccounts: wallet not connected');
|
|
76
68
|
}
|
|
77
|
-
|
|
78
|
-
const decPart = valueStr.slice(valueStr.length - decimals);
|
|
79
|
-
return `${intPart}.${decPart}`;
|
|
69
|
+
return buildOutpostAccounts(this.connection, userPk, this.pgs);
|
|
80
70
|
}
|
|
81
71
|
|
|
82
72
|
/**
|
|
83
|
-
*
|
|
84
|
-
* relative to globalState.currentIndex.
|
|
73
|
+
* Internal helper: get raw token balance (BN) for a given ATA.
|
|
85
74
|
*/
|
|
86
|
-
async
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
}): Promise<SharesPreview> {
|
|
90
|
-
const user = params.user ?? this.wallet.publicKey;
|
|
91
|
-
const accounts = await buildOutpostAccounts(this.connection, user);
|
|
92
|
-
const globalState = await this.program.account.globalState.fetch(accounts.globalState);
|
|
93
|
-
const currentIndex = new BN(globalState.currentIndex.toString());
|
|
94
|
-
const expectedShares = OutpostClient.tokensToShares(
|
|
95
|
-
params.amountLamports,
|
|
96
|
-
currentIndex,
|
|
97
|
-
);
|
|
98
|
-
|
|
99
|
-
return {
|
|
100
|
-
amountLamports: params.amountLamports,
|
|
101
|
-
currentIndex,
|
|
102
|
-
indexScale: OutpostClient.INDEX_SCALE,
|
|
103
|
-
expectedShares,
|
|
104
|
-
};
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
// ---------------------------------------------------------------------------
|
|
108
|
-
// Account helpers (user-facing, not admin bootstrap)
|
|
109
|
-
// ---------------------------------------------------------------------------
|
|
110
|
-
|
|
111
|
-
/**
|
|
112
|
-
* Returns whether the user's liqSOL ATA exists.
|
|
113
|
-
* Useful for UX (show "Create token account" prompt).
|
|
114
|
-
*/
|
|
115
|
-
async doesUserAtaExist(user: PublicKey = this.wallet.publicKey): Promise<boolean> {
|
|
116
|
-
const accounts = await buildOutpostAccounts(this.connection, user);
|
|
117
|
-
const info = await this.connection.getAccountInfo(accounts.userAta);
|
|
118
|
-
return !!info;
|
|
75
|
+
private async getTokenBalance(ata: PublicKey): Promise<BN> {
|
|
76
|
+
const bal = await this.connection.getTokenAccountBalance(ata);
|
|
77
|
+
return new BN(bal.value.amount);
|
|
119
78
|
}
|
|
120
79
|
|
|
121
80
|
/**
|
|
122
|
-
*
|
|
123
|
-
*
|
|
81
|
+
* Fetch an OutpostAccount, handling legacy accounts that pre-date the
|
|
82
|
+
* three trailing Option<u64> fields. If the normal decode throws a
|
|
83
|
+
* RangeError we re-fetch the raw data, pad it to the expected size
|
|
84
|
+
* (zeros → Option::None for each missing field), and let Anchor's
|
|
85
|
+
* coder decode the padded buffer.
|
|
124
86
|
*/
|
|
125
|
-
async
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
87
|
+
private async fetchOutpostAccount(address: PublicKey) {
|
|
88
|
+
try {
|
|
89
|
+
return await this.program.account.outpostAccount.fetchNullable(address);
|
|
90
|
+
} catch (e) {
|
|
91
|
+
if (!(e instanceof RangeError)) throw e;
|
|
92
|
+
|
|
93
|
+
const info = await this.connection.getAccountInfo(address);
|
|
94
|
+
if (!info) return null;
|
|
95
|
+
|
|
96
|
+
// 3 × Option<u64> encoded as 1-byte tag (0x00 = None) = 3 bytes
|
|
97
|
+
// when present (Some) each is 9 bytes, but None is just 0x00
|
|
98
|
+
const EXPECTED_SIZE = info.data.length + 3;
|
|
99
|
+
const padded = Buffer.alloc(EXPECTED_SIZE);
|
|
100
|
+
info.data.copy(padded);
|
|
101
|
+
// trailing bytes are already 0x00 → Option::None for each field
|
|
102
|
+
|
|
103
|
+
return this.program.coder.accounts.decode(
|
|
104
|
+
'outpostAccount',
|
|
105
|
+
padded,
|
|
106
|
+
);
|
|
107
|
+
}
|
|
136
108
|
}
|
|
137
109
|
|
|
138
110
|
/**
|
|
139
|
-
*
|
|
140
|
-
* (Does NOT send; caller composes tx)
|
|
111
|
+
* Fetch the core "Wire state" for Outpost / pretokens for a given user.
|
|
141
112
|
*/
|
|
142
|
-
async
|
|
143
|
-
const
|
|
144
|
-
|
|
145
|
-
if (info) return [];
|
|
146
|
-
return [await this.buildCreateUserAtaIx(user)];
|
|
147
|
-
}
|
|
148
|
-
|
|
149
|
-
// ---------------------------------------------------------------------------
|
|
150
|
-
// Reads (UI-first)
|
|
151
|
-
// ---------------------------------------------------------------------------
|
|
152
|
-
|
|
153
|
-
async getWireStateSnapshot(user: PublicKey = this.wallet.publicKey): Promise<OutpostWireStateSnapshot> {
|
|
154
|
-
const accounts = await buildOutpostAccounts(this.connection, user);
|
|
113
|
+
async fetchWireState(user?: PublicKey): Promise<OutpostWireStateSnapshot> {
|
|
114
|
+
const userPk = user ?? this.wallet.publicKey;
|
|
115
|
+
if (!userPk) throw new Error('OutpostClient.fetchWireState: wallet not connected');
|
|
155
116
|
|
|
117
|
+
const pdas = await this.buildAccounts(userPk);
|
|
156
118
|
const [
|
|
157
119
|
globalState,
|
|
158
|
-
|
|
120
|
+
outpostAccount,
|
|
159
121
|
distributionState,
|
|
160
|
-
|
|
122
|
+
userPretokenRecord,
|
|
161
123
|
trancheState,
|
|
162
|
-
] = await Promise.all([
|
|
163
|
-
this.program.account.globalState.fetch(accounts.globalState),
|
|
164
|
-
this.program.account.wireReceipt.fetchNullable(accounts.wireReceipt),
|
|
165
|
-
this.program.account.distributionState.fetch(accounts.distributionState),
|
|
166
|
-
this.program.account.userWarrantRecord.fetchNullable(accounts.userWarrantRecord),
|
|
167
|
-
this.program.account.trancheState.fetchNullable(accounts.trancheState),
|
|
168
|
-
]);
|
|
169
|
-
|
|
170
|
-
const [
|
|
171
124
|
liqsolPoolBalance,
|
|
172
|
-
solBucketLamports,
|
|
173
125
|
userLiqsolBalance,
|
|
174
126
|
] = await Promise.all([
|
|
175
|
-
this.
|
|
176
|
-
this.
|
|
177
|
-
this.
|
|
127
|
+
safeFetch(this.program.account.globalState.fetch(pdas.globalState), 'globalState'),
|
|
128
|
+
safeFetch(this.fetchOutpostAccount(pdas.outpostAccount), 'outpostAccount'),
|
|
129
|
+
safeFetch(this.program.account.distributionState.fetchNullable(pdas.distributionState), 'distributionState'),
|
|
130
|
+
safeFetch(this.program.account.userPretokenRecord.fetchNullable(pdas.userPretokenRecord), 'userPretokenRecord'),
|
|
131
|
+
safeFetch(this.program.account.trancheState.fetchNullable(pdas.trancheState), 'trancheState'),
|
|
132
|
+
safeFetch(this.getTokenBalance(pdas.liqsolPoolAta), 'liqsolPoolAta'),
|
|
133
|
+
safeFetch(this.getTokenBalance(pdas.userAta), 'userAta'),
|
|
178
134
|
]);
|
|
179
135
|
|
|
180
136
|
return {
|
|
181
137
|
globalState,
|
|
138
|
+
outpostAccount,
|
|
182
139
|
distributionState,
|
|
183
|
-
wireReceipt,
|
|
184
140
|
trancheState,
|
|
185
|
-
|
|
141
|
+
userPretokenRecord,
|
|
186
142
|
liqsolPoolBalance,
|
|
187
|
-
solBucketLamports,
|
|
188
143
|
userLiqsolBalance,
|
|
189
144
|
};
|
|
190
145
|
}
|
|
191
146
|
|
|
192
|
-
async getWireReceipt(user: PublicKey = this.wallet.publicKey): Promise<WireReceipt | null> {
|
|
193
|
-
const accounts = await buildOutpostAccounts(this.connection, user);
|
|
194
|
-
return this.program.account.wireReceipt.fetchNullable(accounts.wireReceipt);
|
|
195
|
-
}
|
|
196
147
|
|
|
197
|
-
async getTrancheState(): Promise<TrancheState | null> {
|
|
198
|
-
const accounts = await buildOutpostAccounts(this.connection, this.wallet.publicKey);
|
|
199
|
-
return this.program.account.trancheState.fetchNullable(accounts.trancheState);
|
|
200
|
-
}
|
|
201
|
-
|
|
202
|
-
async getUserWarrantRecord(user: PublicKey = this.wallet.publicKey): Promise<UserWarrantRecord | null> {
|
|
203
|
-
const accounts = await buildOutpostAccounts(this.connection, user);
|
|
204
|
-
return this.program.account.userWarrantRecord.fetchNullable(accounts.userWarrantRecord);
|
|
205
|
-
}
|
|
206
148
|
|
|
207
|
-
//
|
|
208
|
-
//
|
|
209
|
-
//
|
|
149
|
+
// -------------------------------------------------------------------------
|
|
150
|
+
// Outpost stake / unstake builders (syndicate_liqsol_to_wire / desynd)
|
|
151
|
+
// -------------------------------------------------------------------------
|
|
210
152
|
|
|
211
153
|
/**
|
|
212
|
-
*
|
|
213
|
-
*
|
|
154
|
+
* Build the `syndicate_liqsol_to_wire` (stake) instruction:
|
|
155
|
+
* user liqSOL ATA → liqSOL pool ATA, bridged to the Wire chain.
|
|
156
|
+
*
|
|
157
|
+
* @param amountLamports Amount of liqSOL to stake (in lamports / base units).
|
|
158
|
+
* @param user Solana signer. Defaults to the connected wallet.
|
|
159
|
+
* @param wireAccount Wire chain recipient account name. Required.
|
|
214
160
|
*/
|
|
215
|
-
async
|
|
216
|
-
|
|
217
|
-
|
|
161
|
+
async buildStakeIx(
|
|
162
|
+
amountLamports: bigint,
|
|
163
|
+
user: PublicKey = this.wallet.publicKey,
|
|
164
|
+
wireAccount?: string,
|
|
165
|
+
): Promise<TransactionInstruction> {
|
|
166
|
+
if (!user) {
|
|
167
|
+
throw new Error('OutpostClient.buildStakeIx: wallet not connected');
|
|
168
|
+
}
|
|
169
|
+
if (!wireAccount?.trim()) {
|
|
170
|
+
throw new Error('OutpostClient.buildStakeIx: wireAccount is required');
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
const a = await this.buildAccounts(user);
|
|
218
174
|
|
|
219
175
|
return this.program.methods
|
|
220
|
-
.
|
|
176
|
+
.syndicateLiqsolToWire(wireAccount.trim(), new BN(amountLamports.toString()))
|
|
221
177
|
.accounts({
|
|
222
|
-
user
|
|
178
|
+
user,
|
|
223
179
|
liqsolMint: a.liqsolMint,
|
|
180
|
+
distributionState: a.distributionState,
|
|
224
181
|
globalState: a.globalState,
|
|
225
182
|
userAta: a.userAta,
|
|
183
|
+
senderUserRecord: a.userUserRecord,
|
|
226
184
|
poolAuthority: a.poolAuthority,
|
|
227
185
|
liqsolPoolAta: a.liqsolPoolAta,
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
186
|
+
poolUserRecord: a.liqsolPoolUserRecord,
|
|
187
|
+
bridgeState: a.bridgeState,
|
|
188
|
+
extraAccountMetaList: a.extraAccountMetaList,
|
|
189
|
+
liqsolCoreProgram: this.pgs.PROGRAM_IDS.LIQSOL_CORE,
|
|
190
|
+
transferHookProgram: this.pgs.PROGRAM_IDS.TRANSFER_HOOK,
|
|
232
191
|
bucketAuthority: a.bucketAuthority,
|
|
233
192
|
bucketTokenAccount: a.bucketTokenAccount,
|
|
234
|
-
|
|
193
|
+
bucketUserRecord: a.bucketUserRecord,
|
|
235
194
|
tokenProgram: TOKEN_2022_PROGRAM_ID,
|
|
236
195
|
associatedTokenProgram: ASSOCIATED_TOKEN_PROGRAM_ID,
|
|
237
196
|
systemProgram: SystemProgram.programId,
|
|
197
|
+
globalConfig: a.globalConfig,
|
|
198
|
+
oppEpochState: a.oppEpochState,
|
|
199
|
+
pendingAttestations: a.pendingAttestations,
|
|
238
200
|
})
|
|
239
201
|
.instruction();
|
|
240
202
|
}
|
|
241
203
|
|
|
242
204
|
/**
|
|
243
|
-
*
|
|
244
|
-
*
|
|
205
|
+
* Build the `desynd` (unstake / desync) instruction:
|
|
206
|
+
* liqSOL pool ATA → user liqSOL ATA
|
|
207
|
+
*
|
|
208
|
+
* When Wire is in PostLaunch mode this instruction emits a `DesyncRequest`
|
|
209
|
+
* OPP attestation and does NOT immediately return tokens. The Wire chain
|
|
210
|
+
* relay picks up the attestation, and an admin subsequently executes
|
|
211
|
+
* `complete_withdraw` to deliver the tokens to the user.
|
|
212
|
+
*
|
|
213
|
+
* In PreLaunch mode the tokens are returned directly.
|
|
245
214
|
*/
|
|
246
|
-
async
|
|
247
|
-
|
|
248
|
-
|
|
215
|
+
async buildUnstakeIx(
|
|
216
|
+
amountLamports: bigint,
|
|
217
|
+
user?: PublicKey,
|
|
218
|
+
): Promise<TransactionInstruction> {
|
|
219
|
+
const userPk = user ?? this.wallet.publicKey;
|
|
220
|
+
if (!userPk) {
|
|
221
|
+
throw new Error('OutpostClient.buildUnstakeIx: wallet not connected');
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
const a = await this.buildAccounts(userPk);
|
|
249
225
|
|
|
250
226
|
return this.program.methods
|
|
251
|
-
.
|
|
227
|
+
.desynd(new BN(amountLamports.toString()))
|
|
252
228
|
.accounts({
|
|
253
|
-
user:
|
|
229
|
+
user: userPk,
|
|
254
230
|
liqsolMint: a.liqsolMint,
|
|
255
231
|
globalState: a.globalState,
|
|
232
|
+
distributionState: a.distributionState,
|
|
256
233
|
userAta: a.userAta,
|
|
257
234
|
poolAuthority: a.poolAuthority,
|
|
258
|
-
liqsolPoolAta: a.liqsolPoolAta,
|
|
259
|
-
warrantDepositRecord: a.wireReceipt,
|
|
260
|
-
liqsolPoolUserRecord: a.poolUserRecord,
|
|
261
|
-
distributionState: a.distributionState,
|
|
262
|
-
payRateHistory: a.payRateHistory,
|
|
263
235
|
bucketAuthority: a.bucketAuthority,
|
|
264
236
|
bucketTokenAccount: a.bucketTokenAccount,
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
/**
|
|
273
|
-
* purchaseWithLiqsol(amount)
|
|
274
|
-
*/
|
|
275
|
-
async buildPurchaseWithLiqsolIx(amountLamports: bigint, userPubKey = this.wallet.publicKey): Promise<TransactionInstruction> {
|
|
276
|
-
const a = await buildOutpostAccounts(this.connection, userPubKey);
|
|
277
|
-
const amount = new BN(amountLamports.toString());
|
|
278
|
-
|
|
279
|
-
return this.program.methods
|
|
280
|
-
.purchaseWithLiqsol(amount)
|
|
281
|
-
.accounts({
|
|
282
|
-
user: a.user,
|
|
283
|
-
liqsolMint: a.liqsolMint,
|
|
284
|
-
globalState: a.globalState,
|
|
285
|
-
buyerAta: a.userAta,
|
|
286
|
-
poolAuthority: a.poolAuthority,
|
|
237
|
+
bucketUserRecord: a.bucketUserRecord,
|
|
238
|
+
senderUserRecord: a.liqsolPoolUserRecord,
|
|
239
|
+
receiverUserRecord: a.userUserRecord,
|
|
240
|
+
extraAccountMetaList: a.extraAccountMetaList,
|
|
241
|
+
liqsolCoreProgram: this.pgs.PROGRAM_IDS.LIQSOL_CORE,
|
|
242
|
+
transferHookProgram: this.pgs.PROGRAM_IDS.TRANSFER_HOOK,
|
|
287
243
|
liqsolPoolAta: a.liqsolPoolAta,
|
|
288
|
-
|
|
289
|
-
liqsolPoolUserRecord: a.poolUserRecord,
|
|
290
|
-
distributionState: a.distributionState,
|
|
291
|
-
payRateHistory: a.payRateHistory,
|
|
292
|
-
bucketAuthority: a.bucketAuthority,
|
|
293
|
-
bucketTokenAccount: a.bucketTokenAccount,
|
|
294
|
-
solBucket: a.solBucket,
|
|
295
|
-
trancheState: a.trancheState,
|
|
296
|
-
userWarrantRecord: a.userWarrantRecord,
|
|
297
|
-
chainlinkFeed: a.chainLinkFeed,
|
|
298
|
-
chainlinkProgram: a.chainLinkProgram,
|
|
244
|
+
outpostAccount: a.outpostAccount,
|
|
299
245
|
tokenProgram: TOKEN_2022_PROGRAM_ID,
|
|
300
|
-
associatedTokenProgram: ASSOCIATED_TOKEN_PROGRAM_ID,
|
|
301
246
|
systemProgram: SystemProgram.programId,
|
|
247
|
+
associatedTokenProgram: ASSOCIATED_TOKEN_PROGRAM_ID,
|
|
248
|
+
globalConfig: a.globalConfig,
|
|
249
|
+
oppEpochState: a.oppEpochState,
|
|
250
|
+
pendingAttestations: a.pendingAttestations,
|
|
251
|
+
pretokenPurchaseHistory: a.pretokenPurchaseHistory,
|
|
302
252
|
})
|
|
303
253
|
.instruction();
|
|
304
254
|
}
|
|
305
255
|
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
async buildPurchaseWithSolIx(amountLamports: bigint, userPubKey = this.wallet.publicKey): Promise<TransactionInstruction> {
|
|
310
|
-
const a = await buildOutpostAccounts(this.connection, userPubKey);
|
|
311
|
-
const amount = new BN(amountLamports.toString());
|
|
312
|
-
|
|
313
|
-
return this.program.methods
|
|
314
|
-
.purchaseWithSol(amount)
|
|
315
|
-
.accounts({
|
|
316
|
-
user: a.user,
|
|
317
|
-
liqsolMint: a.liqsolMint,
|
|
318
|
-
globalState: a.globalState,
|
|
319
|
-
poolAuthority: a.poolAuthority,
|
|
320
|
-
liqsolPoolAta: a.liqsolPoolAta,
|
|
321
|
-
liqsolPoolUserRecord: a.poolUserRecord,
|
|
322
|
-
distributionState: a.distributionState,
|
|
323
|
-
payRateHistory: a.payRateHistory,
|
|
324
|
-
bucketAuthority: a.bucketAuthority,
|
|
325
|
-
bucketTokenAccount: a.bucketTokenAccount,
|
|
326
|
-
solBucket: a.solBucket,
|
|
327
|
-
warrantDepositRecord: a.wireReceipt,
|
|
328
|
-
trancheState: a.trancheState,
|
|
329
|
-
userWarrantRecord: a.userWarrantRecord,
|
|
330
|
-
chainlinkFeed: a.chainLinkFeed,
|
|
331
|
-
chainlinkProgram: a.chainLinkProgram,
|
|
332
|
-
tokenProgram: TOKEN_2022_PROGRAM_ID,
|
|
333
|
-
systemProgram: SystemProgram.programId,
|
|
334
|
-
})
|
|
335
|
-
.instruction();
|
|
336
|
-
}
|
|
256
|
+
// -------------------------------------------------------------------------
|
|
257
|
+
// Pretoken preview helper (unchanged)
|
|
258
|
+
// -------------------------------------------------------------------------
|
|
337
259
|
|
|
338
260
|
/**
|
|
339
|
-
*
|
|
261
|
+
* Local preview for "how many pretokens would I get for this liqSOL
|
|
262
|
+
* amount at the current tranche price and SOL/USD price?"
|
|
263
|
+
*
|
|
264
|
+
* SCALE = 1e8
|
|
265
|
+
* usdValue = solAmountLamports * solPriceUsd / 1e9
|
|
266
|
+
* pretokens = usdValue * SCALE / pretokenPriceUsd
|
|
340
267
|
*
|
|
341
|
-
*
|
|
342
|
-
* liqsolPoolUserRecord: pdas.userUserRecord, not poolUserRecord).
|
|
268
|
+
* All values are BN integers; solPriceUsd and pretokenPriceUsd are 1e8 scaled.
|
|
343
269
|
*/
|
|
344
|
-
|
|
345
|
-
|
|
270
|
+
previewPretokens(params: {
|
|
271
|
+
liqsolAmountLamports: BN;
|
|
272
|
+
solPriceUsd: BN; // 1e8 scale
|
|
273
|
+
trancheState: TrancheState;
|
|
274
|
+
}): SharesPreview {
|
|
275
|
+
const { liqsolAmountLamports, solPriceUsd, trancheState } = params;
|
|
276
|
+
|
|
277
|
+
// Current tranche price in USD (1e8 scale)
|
|
278
|
+
const pretokenPriceUsd = new BN(
|
|
279
|
+
trancheState.currentTranchePriceUsd.toString(),
|
|
280
|
+
);
|
|
346
281
|
|
|
347
|
-
|
|
348
|
-
.purchaseWarrantsFromYield()
|
|
349
|
-
.accounts({
|
|
350
|
-
user: a.user,
|
|
351
|
-
globalState: a.globalState,
|
|
352
|
-
liqsolMint: a.liqsolMint,
|
|
353
|
-
poolAuthority: a.poolAuthority,
|
|
354
|
-
liqsolPoolAta: a.liqsolPoolAta,
|
|
355
|
-
solBucket: a.solBucket,
|
|
356
|
-
liqsolPoolUserRecord: a.userUserRecord,
|
|
357
|
-
distributionState: a.distributionState,
|
|
358
|
-
payRateHistory: a.payRateHistory,
|
|
359
|
-
bucketAuthority: a.bucketAuthority,
|
|
360
|
-
bucketTokenAccount: a.bucketTokenAccount,
|
|
361
|
-
tokenProgram: TOKEN_2022_PROGRAM_ID,
|
|
362
|
-
systemProgram: SystemProgram.programId,
|
|
363
|
-
trancheState: a.trancheState,
|
|
364
|
-
userWarrantRecord: a.userWarrantRecord,
|
|
365
|
-
chainlinkFeed: a.chainLinkFeed,
|
|
366
|
-
chainlinkProgram: a.chainLinkProgram,
|
|
367
|
-
})
|
|
368
|
-
.instruction();
|
|
369
|
-
}
|
|
282
|
+
const SCALE = new BN('100000000'); // 1e8
|
|
370
283
|
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
284
|
+
// usdValue = (lamports * solPriceUsd) / 1e9
|
|
285
|
+
const usdValue = liqsolAmountLamports
|
|
286
|
+
.mul(solPriceUsd)
|
|
287
|
+
.div(new BN(1_000_000_000));
|
|
374
288
|
|
|
375
|
-
|
|
376
|
-
* Builds and sends a single-instruction transaction.
|
|
377
|
-
* (Hub can ignore this and use builder methods only.)
|
|
378
|
-
*/
|
|
379
|
-
async sendIx(ix: TransactionInstruction, opts?: {
|
|
380
|
-
additionalIxs?: TransactionInstruction[];
|
|
381
|
-
}): Promise<string> {
|
|
382
|
-
const tx = new Transaction();
|
|
383
|
-
if (opts?.additionalIxs?.length) {
|
|
384
|
-
tx.add(...opts.additionalIxs);
|
|
385
|
-
}
|
|
386
|
-
tx.add(ix);
|
|
289
|
+
const estimatedPretokens = usdValue.mul(SCALE).div(pretokenPriceUsd);
|
|
387
290
|
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
}
|
|
291
|
+
return {
|
|
292
|
+
liqsolAmountLamports,
|
|
293
|
+
solPriceUsd,
|
|
294
|
+
pretokenPriceUsd,
|
|
295
|
+
estimatedPretokens,
|
|
296
|
+
};
|
|
395
297
|
}
|
|
396
298
|
|
|
397
299
|
/**
|
|
398
|
-
*
|
|
300
|
+
* Convert liqSOL tokens (lamports) → Outpost “shares”, rounding UP
|
|
301
|
+
* when there is any remainder.
|
|
302
|
+
*
|
|
303
|
+
* This matches the on-chain logic and the capital-staking helper:
|
|
304
|
+
*
|
|
305
|
+
* INDEX_SCALE = 1e12
|
|
306
|
+
* numerator = amount * INDEX_SCALE
|
|
307
|
+
* shares = numerator / currentIndex
|
|
308
|
+
* remainder = numerator % currentIndex
|
|
309
|
+
* if remainder > 0 → shares + 1
|
|
399
310
|
*/
|
|
400
|
-
|
|
401
|
-
amount
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
const user = params.user ?? this.wallet.publicKey;
|
|
406
|
-
const pre: TransactionInstruction[] = [];
|
|
407
|
-
if (params.ensureAta ?? true) {
|
|
408
|
-
pre.push(...(await this.maybeBuildCreateUserAtaIx(user)));
|
|
409
|
-
}
|
|
410
|
-
const ix = await this.buildStakeLiqsolIx(params.amount, user);
|
|
411
|
-
return this.sendIx(ix, { additionalIxs: pre });
|
|
412
|
-
}
|
|
413
|
-
|
|
414
|
-
async withdrawStake(params: {
|
|
415
|
-
amount: BN;
|
|
416
|
-
user?: PublicKey;
|
|
417
|
-
ensureAta?: boolean; // default true (usually exists, but harmless)
|
|
418
|
-
}): Promise<string> {
|
|
419
|
-
const user = params.user ?? this.wallet.publicKey;
|
|
420
|
-
const pre: TransactionInstruction[] = [];
|
|
421
|
-
if (params.ensureAta ?? true) {
|
|
422
|
-
pre.push(...(await this.maybeBuildCreateUserAtaIx(user)));
|
|
423
|
-
}
|
|
424
|
-
const ix = await this.buildWithdrawStakeIx(params.amount, user);
|
|
425
|
-
return this.sendIx(ix, { additionalIxs: pre });
|
|
426
|
-
}
|
|
427
|
-
|
|
428
|
-
async purchaseWithLiqsol(params: {
|
|
429
|
-
amount: BN;
|
|
430
|
-
user?: PublicKey;
|
|
431
|
-
ensureAta?: boolean; // default true
|
|
432
|
-
}): Promise<string> {
|
|
433
|
-
const user = params.user ?? this.wallet.publicKey;
|
|
434
|
-
const pre: TransactionInstruction[] = [];
|
|
435
|
-
if (params.ensureAta ?? true) {
|
|
436
|
-
pre.push(...(await this.maybeBuildCreateUserAtaIx(user)));
|
|
437
|
-
}
|
|
438
|
-
const ix = await this.buildPurchaseWithLiqsolIx(params.amount, user);
|
|
439
|
-
return this.sendIx(ix, { additionalIxs: pre });
|
|
440
|
-
}
|
|
441
|
-
|
|
442
|
-
async purchaseWithSol(params: {
|
|
443
|
-
amount: BN;
|
|
444
|
-
user?: PublicKey;
|
|
445
|
-
}): Promise<string> {
|
|
446
|
-
const user = params.user ?? this.wallet.publicKey;
|
|
447
|
-
const ix = await this.buildPurchaseWithSolIx(params.amount, user);
|
|
448
|
-
return this.sendIx(ix);
|
|
449
|
-
}
|
|
450
|
-
|
|
451
|
-
async purchaseFromYield(params?: {
|
|
452
|
-
user?: PublicKey;
|
|
453
|
-
}): Promise<string> {
|
|
454
|
-
const user = params?.user ?? this.wallet.publicKey;
|
|
455
|
-
const ix = await this.buildPurchaseFromYieldIx(user);
|
|
456
|
-
return this.sendIx(ix);
|
|
311
|
+
static tokensToShares(amount: BN, currentIndex: BN): BN {
|
|
312
|
+
const numerator = amount.mul(new BN(INDEX_SCALE));
|
|
313
|
+
const shares = numerator.div(currentIndex);
|
|
314
|
+
const remainder = numerator.mod(currentIndex);
|
|
315
|
+
return remainder.eqn(0) ? shares : shares.addn(1);
|
|
457
316
|
}
|
|
458
317
|
|
|
459
|
-
// ---------------------------------------------------------------------------
|
|
460
|
-
// Internals
|
|
461
|
-
// ---------------------------------------------------------------------------
|
|
462
|
-
|
|
463
318
|
/**
|
|
464
|
-
*
|
|
319
|
+
* Format a 1e8-scaled integer (e.g. USD price, pretokens, etc.)
|
|
320
|
+
* into a fixed 8-decimal string.
|
|
321
|
+
*
|
|
322
|
+
* Examples:
|
|
323
|
+
* 0 -> "0.00000000"
|
|
324
|
+
* 1 -> "0.00000001"
|
|
325
|
+
* 100000000 -> "1.00000000"
|
|
326
|
+
* 123456789 -> "1.23456789"
|
|
465
327
|
*/
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
328
|
+
static formatScale8(value: BN): string {
|
|
329
|
+
const decimals = 8;
|
|
330
|
+
const valueStr = value.toString();
|
|
331
|
+
|
|
332
|
+
if (valueStr.length <= decimals) {
|
|
333
|
+
const padding = '0'.repeat(decimals - valueStr.length);
|
|
334
|
+
return `0.${padding}${valueStr}`;
|
|
472
335
|
}
|
|
336
|
+
|
|
337
|
+
const intPart = valueStr.slice(0, valueStr.length - decimals);
|
|
338
|
+
const decPart = valueStr.slice(valueStr.length - decimals);
|
|
339
|
+
return `${intPart}.${decPart}`;
|
|
473
340
|
}
|
|
474
|
-
}
|
|
341
|
+
}
|