@xyo-network/xl1-protocol-sdk 1.15.27 → 1.16.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/dist/neutral/ChainServiceCollectionV2.d.ts +1 -1
- package/dist/neutral/ChainServiceCollectionV2.d.ts.map +1 -1
- package/dist/neutral/block/primitives/blockFromBlockNumber.d.ts +1 -1
- package/dist/neutral/block/primitives/blockFromBlockNumber.d.ts.map +1 -1
- package/dist/neutral/block/primitives/index.d.ts +1 -0
- package/dist/neutral/block/primitives/index.d.ts.map +1 -1
- package/dist/neutral/block/primitives/toStepIdentityString.d.ts +3 -0
- package/dist/neutral/block/primitives/toStepIdentityString.d.ts.map +1 -0
- package/dist/neutral/block/primitives/transfers/transfersStepSummaryFromRange.d.ts.map +1 -1
- package/dist/neutral/block/primitives/transfers/transfersSummary.d.ts +3 -2
- package/dist/neutral/block/primitives/transfers/transfersSummary.d.ts.map +1 -1
- package/dist/neutral/config/Config.d.ts +8 -2
- package/dist/neutral/config/Config.d.ts.map +1 -1
- package/dist/neutral/config/Log.d.ts +1 -1
- package/dist/neutral/config/Mempool.d.ts +9 -0
- package/dist/neutral/config/Mempool.d.ts.map +1 -0
- package/dist/neutral/driver/cache/LruCacheMap.d.ts +13 -0
- package/dist/neutral/driver/cache/LruCacheMap.d.ts.map +1 -0
- package/dist/neutral/driver/cache/index.d.ts +2 -0
- package/dist/neutral/driver/cache/index.d.ts.map +1 -0
- package/dist/neutral/driver/index.d.ts +3 -0
- package/dist/neutral/driver/index.d.ts.map +1 -0
- package/dist/neutral/driver/memory/MemoryMap.d.ts +12 -0
- package/dist/neutral/driver/memory/MemoryMap.d.ts.map +1 -0
- package/dist/neutral/driver/memory/index.d.ts +2 -0
- package/dist/neutral/driver/memory/index.d.ts.map +1 -0
- package/dist/neutral/eip-712/Payloads/EIP712Data.d.ts +0 -16
- package/dist/neutral/eip-712/Payloads/EIP712Data.d.ts.map +1 -1
- package/dist/neutral/index.d.ts +4 -2
- package/dist/neutral/index.d.ts.map +1 -1
- package/dist/neutral/index.mjs +438 -184
- package/dist/neutral/index.mjs.map +1 -1
- package/dist/neutral/instances/index.d.ts +0 -2
- package/dist/neutral/instances/index.d.ts.map +1 -1
- package/dist/neutral/interfaces/index.d.ts +2 -0
- package/dist/neutral/interfaces/index.d.ts.map +1 -0
- package/dist/neutral/interfaces/viewers/AccountBalance.d.ts +19 -0
- package/dist/neutral/interfaces/viewers/AccountBalance.d.ts.map +1 -0
- package/dist/neutral/interfaces/viewers/Block.d.ts +12 -0
- package/dist/neutral/interfaces/viewers/Block.d.ts.map +1 -0
- package/dist/neutral/interfaces/viewers/Chain.d.ts +6 -0
- package/dist/neutral/interfaces/viewers/Chain.d.ts.map +1 -0
- package/dist/neutral/interfaces/viewers/ChainContract.d.ts +10 -0
- package/dist/neutral/interfaces/viewers/ChainContract.d.ts.map +1 -0
- package/dist/neutral/interfaces/viewers/Fork.d.ts +8 -0
- package/dist/neutral/interfaces/viewers/Fork.d.ts.map +1 -0
- package/dist/neutral/interfaces/viewers/NetworkStakeStepReward.d.ts +30 -0
- package/dist/neutral/interfaces/viewers/NetworkStakeStepReward.d.ts.map +1 -0
- package/dist/neutral/interfaces/viewers/NetworkStakeViewer/NetworkStakeViewer.d.ts +10 -0
- package/dist/neutral/interfaces/viewers/NetworkStakeViewer/NetworkStakeViewer.d.ts.map +1 -0
- package/dist/neutral/interfaces/viewers/NetworkStakeViewer/RecordKeyType.d.ts +2 -0
- package/dist/neutral/interfaces/viewers/NetworkStakeViewer/RecordKeyType.d.ts.map +1 -0
- package/dist/neutral/interfaces/viewers/NetworkStakeViewer/RewardsByIndexViewerMethodsTemplate.d.ts +6 -0
- package/dist/neutral/interfaces/viewers/NetworkStakeViewer/RewardsByIndexViewerMethodsTemplate.d.ts.map +1 -0
- package/dist/neutral/interfaces/viewers/NetworkStakeViewer/RewardsByPositionViewer.d.ts +7 -0
- package/dist/neutral/interfaces/viewers/NetworkStakeViewer/RewardsByPositionViewer.d.ts.map +1 -0
- package/dist/neutral/interfaces/viewers/NetworkStakeViewer/RewardsByStakerViewer.d.ts +8 -0
- package/dist/neutral/interfaces/viewers/NetworkStakeViewer/RewardsByStakerViewer.d.ts.map +1 -0
- package/dist/neutral/interfaces/viewers/NetworkStakeViewer/RewardsByStepViewer.d.ts +8 -0
- package/dist/neutral/interfaces/viewers/NetworkStakeViewer/RewardsByStepViewer.d.ts.map +1 -0
- package/dist/neutral/interfaces/viewers/NetworkStakeViewer/RewardsTotalViewer.d.ts +8 -0
- package/dist/neutral/interfaces/viewers/NetworkStakeViewer/RewardsTotalViewer.d.ts.map +1 -0
- package/dist/neutral/interfaces/viewers/NetworkStakeViewer/RewardsViewerMethodsTemplate.d.ts +9 -0
- package/dist/neutral/interfaces/viewers/NetworkStakeViewer/RewardsViewerMethodsTemplate.d.ts.map +1 -0
- package/dist/neutral/interfaces/viewers/NetworkStakeViewer/RewardsViewerOptions.d.ts +15 -0
- package/dist/neutral/interfaces/viewers/NetworkStakeViewer/RewardsViewerOptions.d.ts.map +1 -0
- package/dist/neutral/interfaces/viewers/NetworkStakeViewer/StepRewardsViewer.d.ts +13 -0
- package/dist/neutral/interfaces/viewers/NetworkStakeViewer/StepRewardsViewer.d.ts.map +1 -0
- package/dist/neutral/interfaces/viewers/NetworkStakeViewer/StepViewer.d.ts +26 -0
- package/dist/neutral/interfaces/viewers/NetworkStakeViewer/StepViewer.d.ts.map +1 -0
- package/dist/neutral/interfaces/viewers/NetworkStakeViewer/index.d.ts +12 -0
- package/dist/neutral/interfaces/viewers/NetworkStakeViewer/index.d.ts.map +1 -0
- package/dist/neutral/interfaces/viewers/Stake.d.ts +14 -0
- package/dist/neutral/interfaces/viewers/Stake.d.ts.map +1 -0
- package/dist/neutral/interfaces/viewers/StakeTotalsViewer.d.ts +12 -0
- package/dist/neutral/interfaces/viewers/StakeTotalsViewer.d.ts.map +1 -0
- package/dist/neutral/interfaces/viewers/StakeViewer.d.ts +11 -0
- package/dist/neutral/interfaces/viewers/StakeViewer.d.ts.map +1 -0
- package/dist/neutral/interfaces/viewers/StepStake.d.ts +8 -0
- package/dist/neutral/interfaces/viewers/StepStake.d.ts.map +1 -0
- package/dist/neutral/interfaces/viewers/TimeSync.d.ts +16 -0
- package/dist/neutral/interfaces/viewers/TimeSync.d.ts.map +1 -0
- package/dist/neutral/interfaces/viewers/Transaction.d.ts +9 -0
- package/dist/neutral/interfaces/viewers/Transaction.d.ts.map +1 -0
- package/dist/neutral/interfaces/viewers/TransferBalance.d.ts +23 -0
- package/dist/neutral/interfaces/viewers/TransferBalance.d.ts.map +1 -0
- package/dist/neutral/interfaces/viewers/index.d.ts +15 -0
- package/dist/neutral/interfaces/viewers/index.d.ts.map +1 -0
- package/dist/neutral/model/ChainContext/ChainContext.d.ts +14 -4
- package/dist/neutral/model/ChainContext/ChainContext.d.ts.map +1 -1
- package/dist/neutral/model/ChainContext/ChainStateContext.d.ts +1 -1
- package/dist/neutral/model/ChainContext/ChainStateContext.d.ts.map +1 -1
- package/dist/neutral/model/ChainStake/ChainStakeRead.d.ts +12 -12
- package/dist/neutral/model/ChainStake/ChainStakeRead.d.ts.map +1 -1
- package/dist/neutral/model/StakeEvents.d.ts +1 -0
- package/dist/neutral/model/StakeEvents.d.ts.map +1 -1
- package/dist/neutral/model/summary.d.ts +2 -2
- package/dist/neutral/model/summary.d.ts.map +1 -1
- package/dist/neutral/primitives/index.d.ts +1 -0
- package/dist/neutral/primitives/index.d.ts.map +1 -1
- package/dist/neutral/primitives/timeBudget.d.ts +3 -0
- package/dist/neutral/primitives/timeBudget.d.ts.map +1 -0
- package/dist/neutral/provider/TransactionHelper.d.ts +8 -0
- package/dist/neutral/provider/TransactionHelper.d.ts.map +1 -0
- package/dist/neutral/provider/TransactionSubmitter.d.ts +18 -0
- package/dist/neutral/provider/TransactionSubmitter.d.ts.map +1 -0
- package/dist/neutral/provider/XyoClient.d.ts +19 -0
- package/dist/neutral/provider/XyoClient.d.ts.map +1 -0
- package/dist/neutral/provider/XyoConnection.d.ts +35 -0
- package/dist/neutral/provider/XyoConnection.d.ts.map +1 -0
- package/dist/neutral/provider/XyoDataLake.d.ts +18 -0
- package/dist/neutral/provider/XyoDataLake.d.ts.map +1 -0
- package/dist/neutral/provider/XyoGateway.d.ts +19 -0
- package/dist/neutral/provider/XyoGateway.d.ts.map +1 -0
- package/dist/neutral/provider/XyoGatewayHelpers.d.ts +16 -0
- package/dist/neutral/provider/XyoGatewayHelpers.d.ts.map +1 -0
- package/dist/neutral/provider/XyoNetwork.d.ts +6 -0
- package/dist/neutral/provider/XyoNetwork.d.ts.map +1 -0
- package/dist/neutral/provider/XyoRunner.d.ts +7 -0
- package/dist/neutral/provider/XyoRunner.d.ts.map +1 -0
- package/dist/neutral/provider/XyoSigner.d.ts +14 -0
- package/dist/neutral/provider/XyoSigner.d.ts.map +1 -0
- package/dist/neutral/provider/XyoViewer.d.ts +7 -0
- package/dist/neutral/provider/XyoViewer.d.ts.map +1 -0
- package/dist/neutral/provider/XyoWallet.d.ts +15 -0
- package/dist/neutral/provider/XyoWallet.d.ts.map +1 -0
- package/dist/neutral/provider/index.d.ts +13 -0
- package/dist/neutral/provider/index.d.ts.map +1 -0
- package/dist/neutral/provider/permissions/InvokerPermission.d.ts +51 -0
- package/dist/neutral/provider/permissions/InvokerPermission.d.ts.map +1 -0
- package/dist/neutral/provider/permissions/XyoPermissions.d.ts +32 -0
- package/dist/neutral/provider/permissions/XyoPermissions.d.ts.map +1 -0
- package/dist/neutral/provider/permissions/index.d.ts +3 -0
- package/dist/neutral/provider/permissions/index.d.ts.map +1 -0
- package/dist/neutral/services/AccountBalanceService.d.ts +16 -0
- package/dist/neutral/services/AccountBalanceService.d.ts.map +1 -0
- package/dist/neutral/services/AccountTransfersService.d.ts +11 -0
- package/dist/neutral/services/AccountTransfersService.d.ts.map +1 -0
- package/dist/neutral/services/BlockProducerService.d.ts +6 -0
- package/dist/neutral/services/BlockProducerService.d.ts.map +1 -0
- package/dist/neutral/services/BlockRewardService.d.ts +6 -0
- package/dist/neutral/services/BlockRewardService.d.ts.map +1 -0
- package/dist/neutral/services/BlockRewardServiceV2.d.ts +6 -0
- package/dist/neutral/services/BlockRewardServiceV2.d.ts.map +1 -0
- package/dist/neutral/services/Chain/BaseChainService.d.ts +6 -0
- package/dist/neutral/services/Chain/BaseChainService.d.ts.map +1 -0
- package/dist/neutral/services/Chain/ChainHeadService.d.ts +6 -0
- package/dist/neutral/services/Chain/ChainHeadService.d.ts.map +1 -0
- package/dist/neutral/services/Chain/ChainService.d.ts +5 -0
- package/dist/neutral/services/Chain/ChainService.d.ts.map +1 -0
- package/dist/neutral/services/Chain/index.d.ts +5 -0
- package/dist/neutral/services/Chain/index.d.ts.map +1 -0
- package/dist/neutral/services/Chain/interfaces/ChainContractViewer.d.ts +4 -0
- package/dist/neutral/services/Chain/interfaces/ChainContractViewer.d.ts.map +1 -0
- package/dist/neutral/services/Chain/interfaces/ChainStakeViewer.d.ts +5 -0
- package/dist/neutral/services/Chain/interfaces/ChainStakeViewer.d.ts.map +1 -0
- package/dist/neutral/services/Chain/interfaces/ChainStaker.d.ts +6 -0
- package/dist/neutral/services/Chain/interfaces/ChainStaker.d.ts.map +1 -0
- package/dist/neutral/services/Chain/interfaces/index.d.ts +4 -0
- package/dist/neutral/services/Chain/interfaces/index.d.ts.map +1 -0
- package/dist/neutral/services/ChainIterator/ChainIteratorService.d.ts +23 -0
- package/dist/neutral/services/ChainIterator/ChainIteratorService.d.ts.map +1 -0
- package/dist/neutral/services/ChainIterator/ChainIteratorServiceEventData.d.ts +11 -0
- package/dist/neutral/services/ChainIterator/ChainIteratorServiceEventData.d.ts.map +1 -0
- package/dist/neutral/services/ChainIterator/index.d.ts +3 -0
- package/dist/neutral/services/ChainIterator/index.d.ts.map +1 -0
- package/dist/neutral/services/Election.d.ts +12 -0
- package/dist/neutral/services/Election.d.ts.map +1 -0
- package/dist/neutral/services/NetworkStakeService.d.ts +5 -0
- package/dist/neutral/services/NetworkStakeService.d.ts.map +1 -0
- package/dist/neutral/services/Params.d.ts +9 -0
- package/dist/neutral/services/Params.d.ts.map +1 -0
- package/dist/neutral/services/PendingTransactionsService.d.ts +7 -0
- package/dist/neutral/services/PendingTransactionsService.d.ts.map +1 -0
- package/dist/neutral/services/Service.d.ts +5 -0
- package/dist/neutral/services/Service.d.ts.map +1 -0
- package/dist/neutral/services/StakeIntentService/ChainIndexingServiceStateSchema.d.ts +32 -0
- package/dist/neutral/services/StakeIntentService/ChainIndexingServiceStateSchema.d.ts.map +1 -0
- package/dist/neutral/services/StakeIntentService/StakeIntentService.d.ts +31 -0
- package/dist/neutral/services/StakeIntentService/StakeIntentService.d.ts.map +1 -0
- package/dist/neutral/services/StakeIntentService/index.d.ts +3 -0
- package/dist/neutral/services/StakeIntentService/index.d.ts.map +1 -0
- package/dist/neutral/services/StepStakeService.d.ts +5 -0
- package/dist/neutral/services/StepStakeService.d.ts.map +1 -0
- package/dist/neutral/services/TimeSyncService.d.ts +7 -0
- package/dist/neutral/services/TimeSyncService.d.ts.map +1 -0
- package/dist/neutral/services/index.d.ts +15 -0
- package/dist/neutral/services/index.d.ts.map +1 -0
- package/dist/neutral/transaction/buildUnsignedTransaction.d.ts +2 -2
- package/dist/neutral/transaction/buildUnsignedTransaction.d.ts.map +1 -1
- package/dist/neutral/transaction/confirmSubmittedTransaction.d.ts +2 -1
- package/dist/neutral/transaction/confirmSubmittedTransaction.d.ts.map +1 -1
- package/dist/neutral/transaction/primitives/transactionElevatedPayloads.d.ts +2 -2
- package/dist/neutral/transaction/primitives/transactionElevatedPayloads.d.ts.map +1 -1
- package/dist/neutral/validation/block/BlockValidationFunction.d.ts +5 -0
- package/dist/neutral/validation/block/BlockValidationFunction.d.ts.map +1 -0
- package/dist/neutral/validation/block/HydratedBlockStateValidationFunction.d.ts +18 -0
- package/dist/neutral/validation/block/HydratedBlockStateValidationFunction.d.ts.map +1 -0
- package/dist/neutral/validation/block/HydratedBlockValidationFunction.d.ts +11 -0
- package/dist/neutral/validation/block/HydratedBlockValidationFunction.d.ts.map +1 -0
- package/dist/neutral/validation/block/error.d.ts +15 -0
- package/dist/neutral/validation/block/error.d.ts.map +1 -0
- package/dist/neutral/validation/block/error.spec.d.ts +2 -0
- package/dist/neutral/validation/block/error.spec.d.ts.map +1 -0
- package/dist/neutral/validation/block/index.d.ts +5 -0
- package/dist/neutral/validation/block/index.d.ts.map +1 -0
- package/dist/neutral/validation/index.d.ts +1 -0
- package/dist/neutral/validation/index.d.ts.map +1 -1
- package/package.json +31 -27
- package/src/ChainServiceCollectionV2.ts +4 -3
- package/src/block/primitives/blockFromBlockNumber.ts +30 -27
- package/src/block/primitives/frames/spec/calculateFramesFromRange.spec.ts +1 -1
- package/src/block/primitives/index.ts +1 -0
- package/src/block/primitives/toStepIdentityString.ts +5 -0
- package/src/block/primitives/transfers/transfersStepSummaryFromRange.ts +9 -6
- package/src/block/primitives/transfers/transfersSummary.ts +11 -7
- package/src/config/Config.ts +2 -0
- package/src/config/Mempool.ts +42 -0
- package/src/driver/cache/LruCacheMap.ts +42 -0
- package/src/driver/cache/index.ts +1 -0
- package/src/driver/index.ts +2 -0
- package/src/driver/memory/MemoryMap.ts +42 -0
- package/src/driver/memory/index.ts +1 -0
- package/src/eip-712/Payloads/EIP712Data.ts +0 -19
- package/src/index.ts +4 -2
- package/src/instances/index.ts +0 -2
- package/src/interfaces/index.ts +1 -0
- package/src/interfaces/viewers/AccountBalance.ts +25 -0
- package/src/interfaces/viewers/Block.ts +13 -0
- package/src/interfaces/viewers/Chain.ts +6 -0
- package/src/interfaces/viewers/ChainContract.ts +10 -0
- package/src/interfaces/viewers/Fork.ts +9 -0
- package/src/interfaces/viewers/NetworkStakeStepReward.ts +69 -0
- package/src/interfaces/viewers/NetworkStakeViewer/NetworkStakeViewer.ts +12 -0
- package/src/interfaces/viewers/NetworkStakeViewer/RecordKeyType.ts +2 -0
- package/src/interfaces/viewers/NetworkStakeViewer/RewardsByIndexViewerMethodsTemplate.ts +7 -0
- package/src/interfaces/viewers/NetworkStakeViewer/RewardsByPositionViewer.ts +7 -0
- package/src/interfaces/viewers/NetworkStakeViewer/RewardsByStakerViewer.ts +9 -0
- package/src/interfaces/viewers/NetworkStakeViewer/RewardsByStepViewer.ts +9 -0
- package/src/interfaces/viewers/NetworkStakeViewer/RewardsTotalViewer.ts +9 -0
- package/src/interfaces/viewers/NetworkStakeViewer/RewardsViewerMethodsTemplate.ts +9 -0
- package/src/interfaces/viewers/NetworkStakeViewer/RewardsViewerOptions.ts +18 -0
- package/src/interfaces/viewers/NetworkStakeViewer/StepRewardsViewer.ts +13 -0
- package/src/interfaces/viewers/NetworkStakeViewer/StepViewer.ts +42 -0
- package/src/interfaces/viewers/NetworkStakeViewer/index.ts +13 -0
- package/src/interfaces/viewers/Stake.ts +22 -0
- package/src/interfaces/viewers/StakeTotalsViewer.ts +12 -0
- package/src/interfaces/viewers/StakeViewer.ts +13 -0
- package/src/interfaces/viewers/StepStake.ts +19 -0
- package/src/interfaces/viewers/TimeSync.ts +19 -0
- package/src/interfaces/viewers/Transaction.ts +9 -0
- package/src/interfaces/viewers/TransferBalance.ts +29 -0
- package/src/interfaces/viewers/index.ts +14 -0
- package/src/model/ChainContext/ChainContext.ts +49 -4
- package/src/model/ChainContext/ChainStateContext.ts +1 -1
- package/src/model/ChainStake/ChainStakeRead.ts +13 -12
- package/src/model/StakeEvents.ts +1 -0
- package/src/model/summary.ts +3 -2
- package/src/primitives/index.ts +1 -0
- package/src/primitives/summary/balances/balancesStepSummaryFromRange.ts +2 -2
- package/src/primitives/summary/balances/balancesSummary.ts +3 -3
- package/src/primitives/summary/transfers/transfersStepSummaryFromRange.ts +2 -2
- package/src/primitives/summary/transfers/transfersSummary.ts +3 -3
- package/src/primitives/timeBudget.ts +11 -0
- package/src/provider/TransactionHelper.ts +14 -0
- package/src/provider/TransactionSubmitter.ts +26 -0
- package/src/provider/XyoClient.ts +21 -0
- package/src/provider/XyoConnection.ts +55 -0
- package/src/provider/XyoDataLake.ts +43 -0
- package/src/provider/XyoGateway.ts +21 -0
- package/src/provider/XyoGatewayHelpers.ts +30 -0
- package/src/provider/XyoNetwork.ts +6 -0
- package/src/provider/XyoRunner.ts +7 -0
- package/src/provider/XyoSigner.ts +29 -0
- package/src/provider/XyoViewer.ts +17 -0
- package/src/provider/XyoWallet.ts +15 -0
- package/src/provider/index.ts +12 -0
- package/src/provider/permissions/InvokerPermission.ts +56 -0
- package/src/provider/permissions/XyoPermissions.ts +40 -0
- package/src/provider/permissions/index.ts +2 -0
- package/src/services/AccountBalanceService.ts +22 -0
- package/src/services/AccountTransfersService.ts +12 -0
- package/src/services/BlockProducerService.ts +10 -0
- package/src/services/BlockRewardService.ts +8 -0
- package/src/services/BlockRewardServiceV2.ts +8 -0
- package/src/services/Chain/BaseChainService.ts +7 -0
- package/src/services/Chain/ChainHeadService.ts +7 -0
- package/src/services/Chain/ChainService.ts +6 -0
- package/src/services/Chain/index.ts +4 -0
- package/src/services/Chain/interfaces/ChainContractViewer.ts +5 -0
- package/src/services/Chain/interfaces/ChainStakeViewer.ts +6 -0
- package/src/services/Chain/interfaces/ChainStaker.ts +5 -0
- package/src/services/Chain/interfaces/index.ts +3 -0
- package/src/services/ChainIterator/ChainIteratorService.ts +45 -0
- package/src/services/ChainIterator/ChainIteratorServiceEventData.ts +13 -0
- package/src/services/ChainIterator/index.ts +2 -0
- package/src/services/Election.ts +15 -0
- package/src/services/NetworkStakeService.ts +4 -0
- package/src/services/Params.ts +11 -0
- package/src/services/PendingTransactionsService.ts +8 -0
- package/src/services/Service.ts +5 -0
- package/src/services/StakeIntentService/ChainIndexingServiceStateSchema.ts +43 -0
- package/src/services/StakeIntentService/StakeIntentService.ts +36 -0
- package/src/services/StakeIntentService/index.ts +2 -0
- package/src/services/StepStakeService.ts +4 -0
- package/src/services/TimeSyncService.ts +6 -0
- package/src/services/index.ts +14 -0
- package/src/transaction/buildUnsignedTransaction.ts +4 -8
- package/src/transaction/confirmSubmittedTransaction.ts +3 -3
- package/src/transaction/primitives/transactionElevatedPayloads.ts +2 -2
- package/src/transaction/script.ts +3 -3
- package/src/validation/block/BlockValidationFunction.ts +9 -0
- package/src/validation/block/HydratedBlockStateValidationFunction.ts +24 -0
- package/src/validation/block/HydratedBlockValidationFunction.ts +15 -0
- package/src/validation/block/error.spec.ts +20 -0
- package/src/validation/block/error.ts +46 -0
- package/src/validation/block/index.ts +4 -0
- package/src/validation/index.ts +1 -0
- package/dist/neutral/ChainServiceCollection.d.ts +0 -61
- package/dist/neutral/ChainServiceCollection.d.ts.map +0 -1
- package/dist/neutral/instances/ShiftedBigIntConfig.d.ts +0 -9
- package/dist/neutral/instances/ShiftedBigIntConfig.d.ts.map +0 -1
- package/dist/neutral/instances/XL1Amount.d.ts +0 -15
- package/dist/neutral/instances/XL1Amount.d.ts.map +0 -1
- package/src/ChainServiceCollection.ts +0 -66
- package/src/instances/ShiftedBigIntConfig.ts +0 -8
- package/src/instances/XL1Amount.ts +0 -29
|
@@ -10,7 +10,7 @@ import { calculateFramesFromRange } from '../calculateFramesFromRange.ts'
|
|
|
10
10
|
|
|
11
11
|
describe('calculateFramesFromRange', () => {
|
|
12
12
|
it('handles range aligned with step size', () => {
|
|
13
|
-
const step = 1 //
|
|
13
|
+
const step = 1 // 31
|
|
14
14
|
const range: XL1BlockRange = [XL1_BLOCK_NUMBER_ZERO, asXL1BlockNumber(stepSize(step) - 1)]
|
|
15
15
|
const [fitted, remaining] = calculateFramesFromRange(range, step)
|
|
16
16
|
|
|
@@ -16,15 +16,16 @@ import {
|
|
|
16
16
|
import { hydrateBlock } from '../../hydrate/index.ts'
|
|
17
17
|
import { deepCalculateFramesFromRange } from '../frames/index.ts'
|
|
18
18
|
import { hashFromBlockNumber } from '../hashFromBlockNumber.ts'
|
|
19
|
+
import { transfersSummaryKey } from './transfersSummary.ts'
|
|
19
20
|
|
|
20
21
|
export async function transfersStepSummaryFromRange(
|
|
21
22
|
context: TransfersStepSummaryContext,
|
|
22
23
|
range: XL1BlockRange,
|
|
23
24
|
): Promise<WithStorageMeta<TransfersStepSummary>> {
|
|
24
|
-
// console.log(`transfersStepSummaryFromRange: head=${head}, range=${range[0]}-${range[1]}`)
|
|
25
|
+
// console.log(`transfersStepSummaryFromRange: head=${context.head}, range=${range[0]}-${range[1]}`)
|
|
25
26
|
const frameHeadHash = await hashFromBlockNumber(context, range[1])
|
|
26
27
|
const frameSize = range[1] - range[0] + 1
|
|
27
|
-
const
|
|
28
|
+
const [headHash] = await context.head()
|
|
28
29
|
|
|
29
30
|
let result: TransfersStepSummary | undefined = undefined
|
|
30
31
|
|
|
@@ -39,14 +40,16 @@ export async function transfersStepSummaryFromRange(
|
|
|
39
40
|
}
|
|
40
41
|
}
|
|
41
42
|
result = {
|
|
42
|
-
schema: TransfersStepSummarySchema, hash:
|
|
43
|
+
schema: TransfersStepSummarySchema, hash: headHash, stepSize: -1, transfers,
|
|
43
44
|
}
|
|
44
45
|
} else {
|
|
45
46
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
46
47
|
const step = (StepSizes as any).indexOf(frameSize)
|
|
47
48
|
assertEx(step !== -1, () => `Invalid step size: ${frameSize}. Must be one of ${StepSizes.join(', ')}`)
|
|
48
49
|
|
|
49
|
-
const
|
|
50
|
+
const key = transfersSummaryKey(frameHeadHash, frameSize)
|
|
51
|
+
|
|
52
|
+
const summaryResult = await context.summaryMap.get(key)
|
|
50
53
|
if (isAnyPayload(summaryResult)) {
|
|
51
54
|
result = summaryResult as WithStorageMeta<TransfersStepSummary>
|
|
52
55
|
} else {
|
|
@@ -83,13 +86,13 @@ export async function transfersStepSummaryFromRange(
|
|
|
83
86
|
schema: TransfersStepSummarySchema, hash: frameHeadHash, stepSize: frameSize, transfers,
|
|
84
87
|
}
|
|
85
88
|
|
|
86
|
-
await context.summaryMap.set(
|
|
89
|
+
await context.summaryMap.set(key, result)
|
|
87
90
|
} finally {
|
|
88
91
|
context.stepSemaphores[step].release()
|
|
89
92
|
}
|
|
90
93
|
}
|
|
91
94
|
}
|
|
92
|
-
// console.log(`transfersStepSummaryFromRange-result: head=${head}, range=${range[0]}-${range[1]}: ${toSafeJsonString(result, 10)}`)
|
|
95
|
+
// console.log(`transfersStepSummaryFromRange-result: head=${context.head}, range=${range[0]}-${range[1]}: ${toSafeJsonString(result, 10)}`)
|
|
93
96
|
const finalResult = await PayloadBuilder.addStorageMeta(result)
|
|
94
97
|
return finalResult
|
|
95
98
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { Address } from '@xylabs/hex'
|
|
1
|
+
import type { Address, Hash } from '@xylabs/hex'
|
|
2
2
|
import { asAddress } from '@xylabs/hex'
|
|
3
3
|
import { spanRootAsync } from '@xylabs/telemetry'
|
|
4
4
|
import { isDefined } from '@xylabs/typeof'
|
|
@@ -11,15 +11,15 @@ import { transfersStepSummaryFromRange } from './transfersStepSummaryFromRange.t
|
|
|
11
11
|
|
|
12
12
|
// the summary of amount of rewards claimed from the step reward pool by addresses
|
|
13
13
|
export async function transfersSummary(
|
|
14
|
-
|
|
14
|
+
transferContext: TransfersStepSummaryContext,
|
|
15
15
|
): Promise<Partial<Record<Address, Partial<Record<Address, bigint>>>>> {
|
|
16
16
|
return await spanRootAsync('transferSummary', async () => {
|
|
17
|
-
const
|
|
18
|
-
const headResult = await
|
|
19
|
-
const headBoundWitness = asBlockBoundWitnessWithStorageMeta(headResult, () => `Head block not found for hash: ${
|
|
20
|
-
const rangeStart = asXL1BlockNumber(isDefined(
|
|
17
|
+
const [headHash] = await transferContext.head()
|
|
18
|
+
const headResult = await transferContext.store.chainMap.get(headHash)
|
|
19
|
+
const headBoundWitness = asBlockBoundWitnessWithStorageMeta(headResult, () => `Head block not found for hash: ${transferContext.head}`, { required: true })
|
|
20
|
+
const rangeStart = asXL1BlockNumber(isDefined(transferContext.windowSize) ? Math.max(headBoundWitness.block - transferContext.windowSize + 1, 0) : 0)
|
|
21
21
|
const ranges = deepCalculateFramesFromRange([rangeStart, asXL1BlockNumber(headBoundWitness.block)])
|
|
22
|
-
const summaries = await Promise.all(ranges.map(range => transfersStepSummaryFromRange(
|
|
22
|
+
const summaries = await Promise.all(ranges.map(range => transfersStepSummaryFromRange(transferContext, range)))
|
|
23
23
|
const transfers: Partial<Record<Address, Partial<Record<Address, bigint>>>> = {}
|
|
24
24
|
for (let summary of summaries) {
|
|
25
25
|
for (const [from, toMap] of Object.entries(summary.transfers)) {
|
|
@@ -34,3 +34,7 @@ export async function transfersSummary(
|
|
|
34
34
|
return transfers
|
|
35
35
|
})
|
|
36
36
|
}
|
|
37
|
+
|
|
38
|
+
export function transfersSummaryKey(frameHeadHash: Hash, frameSize: number) {
|
|
39
|
+
return `${frameHeadHash}|${frameSize}`
|
|
40
|
+
}
|
package/src/config/Config.ts
CHANGED
|
@@ -6,6 +6,7 @@ import { BridgeConfigZod } from './Bridge.ts'
|
|
|
6
6
|
import { ChainConfigZod } from './Chain.ts'
|
|
7
7
|
import { EvmConfigZod } from './Evm.ts'
|
|
8
8
|
import { LogConfigZod } from './Log.ts'
|
|
9
|
+
import { MempoolConfigZod } from './Mempool.ts'
|
|
9
10
|
import { ProducerConfigZod } from './Producer.ts'
|
|
10
11
|
import { RewardRedemptionApiConfigZod } from './RewardRedemptionApi.ts'
|
|
11
12
|
import { StorageConfigZod } from './storage/index.ts'
|
|
@@ -21,6 +22,7 @@ export const ConfigZod = z.object({
|
|
|
21
22
|
bridge: BridgeConfigZod.default(BridgeConfigZod.parse({})).describe('Configuration for the Bridge node'),
|
|
22
23
|
chain: ChainConfigZod.default(ChainConfigZod.parse({})).describe('Configuration for the chain'),
|
|
23
24
|
evm: EvmConfigZod.default(EvmConfigZod.parse({})).describe('Configuration for EVM-backed services'),
|
|
25
|
+
mempool: MempoolConfigZod.default(MempoolConfigZod.parse({})).describe('Configuration for the mempool'),
|
|
24
26
|
producer: ProducerConfigZod.default(ProducerConfigZod.parse({})).describe('Configuration for the producer'),
|
|
25
27
|
rewardRedemptionApi: RewardRedemptionApiConfigZod.default(RewardRedemptionApiConfigZod.parse({})).describe('Configuration for the rewards redemption API'),
|
|
26
28
|
storage: StorageConfigZod.default(StorageConfigZod.parse({})).describe('Configuration for the storage'),
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { globalRegistry } from 'zod'
|
|
2
|
+
import * as z from 'zod'
|
|
3
|
+
|
|
4
|
+
import { MnemonicStringZod } from '../validation/index.ts'
|
|
5
|
+
|
|
6
|
+
export const MempoolConfigZod = z.object({
|
|
7
|
+
enabled: z.string().default('false').transform((val, ctx) => {
|
|
8
|
+
const normalized = val.toLowerCase().trim()
|
|
9
|
+
if (['true', '1', 'yes', 'on'].includes(normalized)) return true
|
|
10
|
+
if (['false', '0', 'no', 'off'].includes(normalized)) return false
|
|
11
|
+
ctx.addIssue({
|
|
12
|
+
code: 'invalid_type',
|
|
13
|
+
expected: 'boolean',
|
|
14
|
+
message: `Invalid boolean value: "${val}". Use true/false, 1/0, yes/no.`,
|
|
15
|
+
})
|
|
16
|
+
return z.NEVER
|
|
17
|
+
}).register(globalRegistry, {
|
|
18
|
+
default: 'false',
|
|
19
|
+
description: 'Enable the Mempool',
|
|
20
|
+
title: 'mempool.enabled',
|
|
21
|
+
type: 'boolean',
|
|
22
|
+
}),
|
|
23
|
+
host: z.string().default('localhost').register(globalRegistry, {
|
|
24
|
+
default: 'localhost',
|
|
25
|
+
description: 'Host for the Mempool',
|
|
26
|
+
title: 'mempool.host',
|
|
27
|
+
type: 'string',
|
|
28
|
+
}),
|
|
29
|
+
mnemonic: MnemonicStringZod.optional().register(globalRegistry, {
|
|
30
|
+
description: 'Mnemonic for the Mempool wallet',
|
|
31
|
+
title: 'mempool.mnemonic',
|
|
32
|
+
type: 'string',
|
|
33
|
+
}),
|
|
34
|
+
port: z.coerce.number().default(8083).register(globalRegistry, {
|
|
35
|
+
default: 8083,
|
|
36
|
+
description: 'Port for the Mempool',
|
|
37
|
+
title: 'mempool.port',
|
|
38
|
+
type: 'number',
|
|
39
|
+
}),
|
|
40
|
+
})
|
|
41
|
+
|
|
42
|
+
export type MempoolConfig = z.infer<typeof MempoolConfigZod>
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { LRUCache } from 'lru-cache'
|
|
2
|
+
|
|
3
|
+
import type { SynchronousMap } from '../../map/index.ts'
|
|
4
|
+
|
|
5
|
+
export class LruCacheMap<K extends {}, V extends {} | string | number | bigint, FC = () => void> implements SynchronousMap<K, V> {
|
|
6
|
+
private lruCache: LRUCache<K, V, FC>
|
|
7
|
+
|
|
8
|
+
constructor(options?: LRUCache.Options<K, V, FC>) {
|
|
9
|
+
this.lruCache = new LRUCache<K, V, FC>(options ?? { max: 5000 })
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
clear(): void {
|
|
13
|
+
this.lruCache.clear()
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
delete(id: K): boolean {
|
|
17
|
+
return this.lruCache.delete(id)
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
get(id: K): V | undefined {
|
|
21
|
+
return this.lruCache.get(id)
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
getMany(id: K[]): V[] {
|
|
25
|
+
const results: V[] = []
|
|
26
|
+
for (const key of id) {
|
|
27
|
+
const value = this.lruCache.get(key)
|
|
28
|
+
if (value !== undefined) {
|
|
29
|
+
results.push(value)
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
return results
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
has(id: K): boolean {
|
|
36
|
+
return this.lruCache.has(id)
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
set(id: K, data: V) {
|
|
40
|
+
this.lruCache.set(id, data)
|
|
41
|
+
}
|
|
42
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './LruCacheMap.ts'
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { isDefined } from '@xylabs/typeof'
|
|
2
|
+
|
|
3
|
+
import type { SynchronousMap } from '../../map/index.ts'
|
|
4
|
+
|
|
5
|
+
export class MemoryMap<K extends {}, V = {}> implements SynchronousMap<K, V> {
|
|
6
|
+
private map: Map<K, V>
|
|
7
|
+
|
|
8
|
+
constructor() {
|
|
9
|
+
this.map = new Map<K, V>()
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
clear(): void {
|
|
13
|
+
this.map.clear()
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
delete(id: K): boolean {
|
|
17
|
+
return this.map.delete(id)
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
get(id: K): V | undefined {
|
|
21
|
+
return this.map.get(id)
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
getMany(ids: K[]): V[] {
|
|
25
|
+
const results: V[] = []
|
|
26
|
+
for (const id of ids) {
|
|
27
|
+
const data = this.map.get(id)
|
|
28
|
+
if (isDefined(data)) {
|
|
29
|
+
results.push(data)
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
return results
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
has(id: K): boolean {
|
|
36
|
+
return this.map.has(id)
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
set(id: K, data: V) {
|
|
40
|
+
this.map.set(id, data)
|
|
41
|
+
}
|
|
42
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './MemoryMap.ts'
|
|
@@ -13,30 +13,11 @@ export const EIP712DataPayloadFieldsZod = z.object({
|
|
|
13
13
|
})
|
|
14
14
|
export type EIP712DataPayloadFields = z.infer<typeof EIP712DataPayloadFieldsZod>
|
|
15
15
|
|
|
16
|
-
/**
|
|
17
|
-
* @deprecated Use EIP712DataPayloadFields instead
|
|
18
|
-
*/
|
|
19
|
-
export type EIP712PayloadFields = EIP712DataPayloadFields
|
|
20
|
-
|
|
21
16
|
export const EIP712DataPayloadSchema = 'network.xyo.chains.ethereum.eip712.data' as const
|
|
22
17
|
export type EIP712DataPayloadSchema = typeof EIP712DataPayloadSchema
|
|
23
18
|
|
|
24
|
-
/**
|
|
25
|
-
* @deprecated Use EIP712DataPayloadSchema instead
|
|
26
|
-
*/
|
|
27
|
-
export const EIP712PayloadSchema = EIP712DataPayloadSchema
|
|
28
|
-
/**
|
|
29
|
-
* @deprecated Use EIP712DataPayloadSchema instead
|
|
30
|
-
*/
|
|
31
|
-
export type EIP712PayloadSchema = typeof EIP712DataPayloadSchema
|
|
32
|
-
|
|
33
19
|
export type EIP712DataPayload = Payload<EIP712DataPayloadFields, EIP712DataPayloadSchema>
|
|
34
20
|
|
|
35
|
-
/**
|
|
36
|
-
* @deprecated Use EIP712DataPayload instead
|
|
37
|
-
*/
|
|
38
|
-
export type EIP712Payload = EIP712DataPayload
|
|
39
|
-
|
|
40
21
|
export const isEIP712DataPayload = isPayloadOfZodType<EIP712DataPayload>(
|
|
41
22
|
EIP712DataPayloadFieldsZod,
|
|
42
23
|
EIP712DataPayloadSchema,
|
package/src/index.ts
CHANGED
|
@@ -1,16 +1,18 @@
|
|
|
1
1
|
export * from './block/index.ts'
|
|
2
|
-
export * from './ChainServiceCollection.ts'
|
|
3
2
|
export * from './ChainServiceCollectionV2.ts'
|
|
4
3
|
export * from './config/index.ts'
|
|
5
4
|
export * from './constants.ts'
|
|
5
|
+
export * from './driver/index.ts'
|
|
6
6
|
export * from './eip-712/index.ts'
|
|
7
7
|
export * from './instances/index.ts'
|
|
8
|
+
export * from './interfaces/index.ts'
|
|
8
9
|
export * from './map/index.ts'
|
|
9
10
|
export * from './model/index.ts'
|
|
10
11
|
export * from './multipliers.ts'
|
|
11
12
|
export * from './payloads/index.ts'
|
|
12
13
|
export * from './primitives/index.ts'
|
|
13
|
-
export * from './
|
|
14
|
+
export * from './provider/index.ts'
|
|
15
|
+
export * from './services/index.ts'
|
|
14
16
|
export * from './SignedBigInt.ts'
|
|
15
17
|
export * from './time/index.ts'
|
|
16
18
|
export * from './transaction/index.ts'
|
package/src/instances/index.ts
CHANGED
|
@@ -6,7 +6,5 @@ export * from './Fees.ts'
|
|
|
6
6
|
export * from './modifiers/index.ts'
|
|
7
7
|
export * from './Object.ts'
|
|
8
8
|
export * from './Payload.ts'
|
|
9
|
-
export * from './ShiftedBigIntConfig.ts'
|
|
10
9
|
export * from './Signature.ts'
|
|
11
10
|
export * from './transaction/index.ts'
|
|
12
|
-
export * from './XL1Amount.ts'
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './viewers/index.ts'
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { Address } from '@xylabs/hex'
|
|
2
|
+
import type { Promisable } from '@xylabs/promise'
|
|
3
|
+
import type { Signed } from '@xyo-network/boundwitness-model'
|
|
4
|
+
import type { WithStorageMeta } from '@xyo-network/payload-model'
|
|
5
|
+
import type {
|
|
6
|
+
AttoXL1,
|
|
7
|
+
BlockBoundWitness, TransactionBoundWitness, Transfer,
|
|
8
|
+
XL1BlockRange,
|
|
9
|
+
} from '@xyo-network/xl1-protocol'
|
|
10
|
+
|
|
11
|
+
export type AccountBalanceHistoryItem = [
|
|
12
|
+
WithStorageMeta<Signed<BlockBoundWitness>> /* block */,
|
|
13
|
+
WithStorageMeta<Signed<TransactionBoundWitness>> | null,
|
|
14
|
+
WithStorageMeta<Transfer>, /* the actual transfer payload */
|
|
15
|
+
]
|
|
16
|
+
|
|
17
|
+
export interface AccountBalancesViewInterface {
|
|
18
|
+
accountBalances(address: Address[]): Promisable<Partial<Record<Address, AttoXL1>>>
|
|
19
|
+
accountBalancesHistories(address: Address[]): Promisable<Partial<Record<Address, AccountBalanceHistoryItem[]>>>
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export interface AccountBalanceViewInterface {
|
|
23
|
+
accountBalance(address: Address): Promisable<AttoXL1>
|
|
24
|
+
accountBalanceHistory(address: Address, range?: XL1BlockRange): Promisable<AccountBalanceHistoryItem[]>
|
|
25
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { Hash } from '@xylabs/hex'
|
|
2
|
+
import type { Promisable } from '@xylabs/promise'
|
|
3
|
+
import type { HydratedBlock } from '@xyo-network/xl1-protocol'
|
|
4
|
+
|
|
5
|
+
export interface BlockViewInterface {
|
|
6
|
+
blockByHash(hash: Hash): Promisable<HydratedBlock | null>
|
|
7
|
+
blockByNumber(blockNumber: number): Promisable<HydratedBlock | null>
|
|
8
|
+
blocksByHash(hash: Hash, limit?: number): Promisable<HydratedBlock[]>
|
|
9
|
+
|
|
10
|
+
currentBlock(): Promisable<HydratedBlock>
|
|
11
|
+
currentBlockHash(): Promisable<Hash>
|
|
12
|
+
currentBlockNumber(): Promisable<number>
|
|
13
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { Address } from '@xylabs/hex'
|
|
2
|
+
|
|
3
|
+
export interface ChainContractViewInterface {
|
|
4
|
+
forkedAtBlockNumber(): Promise<bigint>
|
|
5
|
+
forkedAtHash(): Promise<bigint>
|
|
6
|
+
forkedChainId(): Promise<Address>
|
|
7
|
+
minWithdrawalBlocks(): Promise<bigint>
|
|
8
|
+
rewardsContract(): Promise<string>
|
|
9
|
+
stakingTokenAddress(): Promise<string>
|
|
10
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { Promisable } from '@xylabs/promise'
|
|
2
|
+
import type { ChainId } from '@xyo-network/xl1-protocol'
|
|
3
|
+
|
|
4
|
+
export type ForkHistory = Record<number, ChainId>
|
|
5
|
+
|
|
6
|
+
export interface ForkViewer {
|
|
7
|
+
chainIdAtBlock(blockNumber: number): Promisable<ChainId | undefined>
|
|
8
|
+
forkHistory(): Promisable<ForkHistory>
|
|
9
|
+
}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import type { Address } from '@xylabs/hex'
|
|
2
|
+
import type { Promisable } from '@xylabs/promise'
|
|
3
|
+
import type { StepIdentity, StepIdentityString } from '@xyo-network/xl1-protocol'
|
|
4
|
+
|
|
5
|
+
export interface NetworkStakeStepAddressRewardViewInterface {
|
|
6
|
+
// the step rewards for a specific network stakers for all of history
|
|
7
|
+
networkStakeStepRewardAddressHistory(address: Address): Promisable<Record<Address, bigint>>
|
|
8
|
+
|
|
9
|
+
// the step rewards for a specific network stakers for a given step and block
|
|
10
|
+
networkStakeStepRewardAddressReward(context: StepIdentity, address: Address): Promisable<Record<Address, bigint>>
|
|
11
|
+
|
|
12
|
+
// the shares for a specific network staker for a given step and block
|
|
13
|
+
networkStakeStepRewardAddressShare(context: StepIdentity, address: Address): Promisable<[/* address shares */bigint, /* total shares */bigint]>
|
|
14
|
+
|
|
15
|
+
// estimate the current reward weight for a given address at a given step
|
|
16
|
+
networkStakeStepRewardWeightForAddress(context: StepIdentity, address: Address): Promisable<bigint>
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export interface NetworkStakeStepPoolRewardViewInterface {
|
|
20
|
+
|
|
21
|
+
// all the step rewards for all the network stakers for a given step and block
|
|
22
|
+
networkStakeStepRewardPoolRewards(context: StepIdentity): Promisable<Record<Address, bigint>>
|
|
23
|
+
|
|
24
|
+
// all the shares for all the network stakers for a given step and block
|
|
25
|
+
networkStakeStepRewardPoolShares(context: StepIdentity): Promisable<Record<Address, bigint>>
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
export interface NetworkStakeStepRewardPositionViewInterface {
|
|
29
|
+
// estimate the current weight for a given position at a given step
|
|
30
|
+
networkStakeStepRewardPositionWeight(context: StepIdentity, position: number): Promisable<bigint>
|
|
31
|
+
|
|
32
|
+
// estimate the potential loss for removing a given position at a given step
|
|
33
|
+
networkStakeStepRewardPotentialPositionLoss(context: StepIdentity, position: number): Promisable<bigint>
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
export interface NetworkStakeStepRewardViewInterface extends
|
|
37
|
+
NetworkStakeStepPoolRewardViewInterface,
|
|
38
|
+
NetworkStakeStepAddressRewardViewInterface,
|
|
39
|
+
NetworkStakeStepRewardPositionViewInterface
|
|
40
|
+
{
|
|
41
|
+
networkStakeStepRewardClaimedByAddress(address: Address): Promisable<bigint>
|
|
42
|
+
|
|
43
|
+
// the share & total rewards for a given position
|
|
44
|
+
networkStakeStepRewardForPosition(position: number, range: [number, number]): Promisable<[bigint, bigint]>
|
|
45
|
+
|
|
46
|
+
// estimate the total possible block rewards for a given step
|
|
47
|
+
networkStakeStepRewardForStep(context: StepIdentity): Promisable<bigint>
|
|
48
|
+
|
|
49
|
+
// the share & total rewards for a given step and block for a given position
|
|
50
|
+
networkStakeStepRewardForStepForPosition(context: StepIdentity, position: number): Promisable<[bigint, bigint]>
|
|
51
|
+
|
|
52
|
+
// the predictable random number for a given step and block
|
|
53
|
+
networkStakeStepRewardRandomizer(context: StepIdentity): Promisable<bigint>
|
|
54
|
+
|
|
55
|
+
// the total number of stakers for a given step and block
|
|
56
|
+
networkStakeStepRewardStakerCount(context: StepIdentity): Promisable<number>
|
|
57
|
+
|
|
58
|
+
networkStakeStepRewardUnclaimedByAddress(address: Address): Promisable<bigint>
|
|
59
|
+
|
|
60
|
+
// the share & total rewards for a given position for each step in range
|
|
61
|
+
networkStakeStepRewardsForPosition(position: number,
|
|
62
|
+
range: [number, number]): Promisable<Record<StepIdentityString, [bigint, bigint]>>
|
|
63
|
+
|
|
64
|
+
// the total rewards for a given range
|
|
65
|
+
networkStakeStepRewardsForRange(range: [number, number]): Promisable<bigint>
|
|
66
|
+
|
|
67
|
+
// the total rewards for a given range and step level
|
|
68
|
+
networkStakeStepRewardsForStepLevel(stepLevel: number, range: [number, number]): Promisable<bigint>
|
|
69
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { Promisable } from '@xylabs/promise'
|
|
2
|
+
|
|
3
|
+
import type { StepRewardsViewer } from './StepRewardsViewer.ts'
|
|
4
|
+
|
|
5
|
+
export interface NetworkStakeViewerMethods {
|
|
6
|
+
/** @returns the active stake and the number of active validators [active, block] */
|
|
7
|
+
active(blockNumber?: number): Promisable<[bigint, number]>
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
export interface NetworkStakeViewer extends NetworkStakeViewerMethods {
|
|
11
|
+
stepRewards?: StepRewardsViewer
|
|
12
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { AttoXL1 } from '@xyo-network/xl1-protocol'
|
|
2
|
+
|
|
3
|
+
import type { RecordKeyType } from './RecordKeyType.ts'
|
|
4
|
+
import type { RewardsViewerMethodsTemplate } from './RewardsViewerMethodsTemplate.ts'
|
|
5
|
+
|
|
6
|
+
export interface RewardsByIndexViewerMethodsTemplate<TOptions, TResultIndex extends RecordKeyType>
|
|
7
|
+
extends RewardsViewerMethodsTemplate<TOptions, Record<TResultIndex, AttoXL1>> {}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { RewardsByIndexViewerMethodsTemplate } from './RewardsByIndexViewerMethodsTemplate.ts'
|
|
2
|
+
import type { RewardsByPositionViewerOptions } from './RewardsViewerOptions.ts'
|
|
3
|
+
|
|
4
|
+
// Note: Viewers are client objects that can nest other viewers and ViewerMethods objects consist only of methods that return data.
|
|
5
|
+
|
|
6
|
+
export interface RewardsByPositionViewerMethods extends RewardsByIndexViewerMethodsTemplate<RewardsByPositionViewerOptions, number> {}
|
|
7
|
+
export interface RewardsByPositionViewer extends RewardsByPositionViewerMethods {}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { Address } from '@xylabs/hex'
|
|
2
|
+
|
|
3
|
+
import type { RewardsByIndexViewerMethodsTemplate } from './RewardsByIndexViewerMethodsTemplate.ts'
|
|
4
|
+
import type { RewardsByStakerViewerOptions } from './RewardsViewerOptions.ts'
|
|
5
|
+
|
|
6
|
+
// Note: Viewers are client objects that can nest other viewers and ViewerMethods objects consist only of methods that return data.
|
|
7
|
+
|
|
8
|
+
export interface RewardsByStakerViewerMethods extends RewardsByIndexViewerMethodsTemplate<RewardsByStakerViewerOptions, Address> {}
|
|
9
|
+
export interface RewardsByStakerViewer extends RewardsByStakerViewerMethods {}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { StepIdentityString } from '@xyo-network/xl1-protocol'
|
|
2
|
+
|
|
3
|
+
import type { RewardsByIndexViewerMethodsTemplate } from './RewardsByIndexViewerMethodsTemplate.ts'
|
|
4
|
+
import type { RewardsByStepViewerOptions } from './RewardsViewerOptions.ts'
|
|
5
|
+
|
|
6
|
+
// Note: Viewers are client objects that can nest other viewers and ViewerMethods objects consist only of methods that return data.
|
|
7
|
+
|
|
8
|
+
export interface RewardsByStepViewerMethods extends RewardsByIndexViewerMethodsTemplate<RewardsByStepViewerOptions, StepIdentityString> {}
|
|
9
|
+
export interface RewardsByStepViewer extends RewardsByStepViewerMethods {}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { AttoXL1 } from '@xyo-network/xl1-protocol'
|
|
2
|
+
|
|
3
|
+
import type { RewardsViewerMethodsTemplate } from './RewardsViewerMethodsTemplate.ts'
|
|
4
|
+
import type { RewardsRangeOptions } from './RewardsViewerOptions.ts'
|
|
5
|
+
|
|
6
|
+
// Note: Viewers are client objects that can nest other viewers and ViewerMethods objects consist only of methods that return data.
|
|
7
|
+
|
|
8
|
+
export interface RewardsTotalViewerMethods extends RewardsViewerMethodsTemplate<RewardsRangeOptions, AttoXL1> {}
|
|
9
|
+
export interface RewardsTotalViewer extends RewardsTotalViewerMethods {}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { Promisable } from '@xylabs/promise'
|
|
2
|
+
|
|
3
|
+
export interface RewardsViewerMethodsTemplate<TOptions, TResult> {
|
|
4
|
+
bonus(options?: TOptions): Promisable<TResult>
|
|
5
|
+
claimed(options?: TOptions): Promisable<TResult>
|
|
6
|
+
earned(options?: TOptions): Promisable<TResult>
|
|
7
|
+
total(options?: TOptions): Promisable<TResult>
|
|
8
|
+
unclaimed(options?: TOptions): Promisable<TResult>
|
|
9
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { Address } from '@xylabs/hex'
|
|
2
|
+
import type { BlockRange, StepIdentity } from '@xyo-network/xl1-protocol'
|
|
3
|
+
|
|
4
|
+
export interface RewardsRangeOptions {
|
|
5
|
+
range?: BlockRange
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
export interface RewardsByStepViewerOptions extends RewardsRangeOptions {
|
|
9
|
+
steps?: StepIdentity[]
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export interface RewardsByStakerViewerOptions extends RewardsRangeOptions {
|
|
13
|
+
stakers?: Address[]
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export interface RewardsByPositionViewerOptions extends RewardsRangeOptions {
|
|
17
|
+
positions?: number[]
|
|
18
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { RewardsByPositionViewer } from './RewardsByPositionViewer.ts'
|
|
2
|
+
import type { RewardsByStakerViewer } from './RewardsByStakerViewer.ts'
|
|
3
|
+
import type { RewardsByStepViewer } from './RewardsByStepViewer.ts'
|
|
4
|
+
import type { RewardsTotalViewer } from './RewardsTotalViewer.ts'
|
|
5
|
+
|
|
6
|
+
export interface StepRewardsViewerMethods {}
|
|
7
|
+
|
|
8
|
+
export interface StepRewardsViewer extends StepRewardsViewerMethods {
|
|
9
|
+
position?: RewardsByPositionViewer
|
|
10
|
+
staker?: RewardsByStakerViewer
|
|
11
|
+
step?: RewardsByStepViewer
|
|
12
|
+
total?: RewardsTotalViewer
|
|
13
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import type { Address } from '@xylabs/hex'
|
|
2
|
+
import type { Promisable } from '@xylabs/promise'
|
|
3
|
+
import type { PositionId, StepIdentity } from '@xyo-network/xl1-protocol'
|
|
4
|
+
|
|
5
|
+
import type { Position } from '../Stake.ts'
|
|
6
|
+
|
|
7
|
+
export interface PagedPositionsOptions {
|
|
8
|
+
cursor?: PositionId
|
|
9
|
+
limit?: number
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export interface PagedStakersOptions {
|
|
13
|
+
cursor?: Address
|
|
14
|
+
limit?: number
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export interface StepStatistics {
|
|
18
|
+
endTime: number
|
|
19
|
+
startTime: number
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export interface StepViewerMethods {
|
|
23
|
+
|
|
24
|
+
// the total number of positions for a given step
|
|
25
|
+
positionCount(step: StepIdentity): Promisable<number>
|
|
26
|
+
|
|
27
|
+
positions(step: StepIdentity, options?: PagedPositionsOptions): Promisable<Position[]>
|
|
28
|
+
|
|
29
|
+
// the predictable random number for a given step
|
|
30
|
+
randomizer(step: StepIdentity): Promisable<bigint>
|
|
31
|
+
|
|
32
|
+
// total amount staked during a given step
|
|
33
|
+
stake(step: StepIdentity): Promisable<bigint>
|
|
34
|
+
|
|
35
|
+
// the total number of stakers for a given step
|
|
36
|
+
stakerCount(step: StepIdentity): Promisable<number>
|
|
37
|
+
|
|
38
|
+
stakers(step: StepIdentity, options?: PagedStakersOptions): Promisable<Address[]>
|
|
39
|
+
|
|
40
|
+
// total weight of all stakers during a given step
|
|
41
|
+
weight(step: StepIdentity): Promisable<bigint>
|
|
42
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export * from './NetworkStakeViewer.ts'
|
|
2
|
+
export * from './RecordKeyType.ts'
|
|
3
|
+
export * from './RewardsByIndexViewerMethodsTemplate.ts'
|
|
4
|
+
export * from './RewardsByPositionViewer.ts'
|
|
5
|
+
export * from './RewardsByStakerViewer.ts'
|
|
6
|
+
export * from './RewardsByStepViewer.ts'
|
|
7
|
+
export * from './RewardsTotalViewer.ts'
|
|
8
|
+
export * from './RewardsViewerMethodsTemplate.ts'
|
|
9
|
+
export * from './RewardsViewerOptions.ts'
|
|
10
|
+
export * from './StepRewardsViewer.ts'
|
|
11
|
+
export * from './StepViewer.ts'
|
|
12
|
+
|
|
13
|
+
// Note: Viewers are client objects that can nest other viewers and ViewerMethods objects consist only of methods that return data.
|