@xyo-network/xl1-protocol-sdk 1.26.12 → 1.26.13
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/simple/accountBalance/SimpleAccountBalanceViewer.d.ts +2 -2
- package/dist/neutral/simple/block/SimpleBlockViewer.d.ts +2 -2
- package/dist/neutral/simple/datalake/SimpleDataLakeRunner.d.ts +1 -1
- package/dist/neutral/simple/finalization/SimpleFinalizationViewer.d.ts +1 -1
- package/dist/neutral/simple/windowedBlock/SimpleWindowedBlockViewer.d.ts +10 -10
- package/dist/neutral/transaction/TransactionBuilder.d.ts +4 -4
- package/dist/neutral/transaction/signTransaction.d.ts +1 -1
- package/package.json +24 -14
- package/src/ChainContextHelpers.ts +0 -50
- package/src/CreatableProvider/AbstractCreatableProvider.ts +0 -97
- package/src/CreatableProvider/CreatableProvider.ts +0 -102
- package/src/CreatableProvider/CreatableProviderRegistry.ts +0 -94
- package/src/CreatableProvider/GetInstanceOptions.ts +0 -11
- package/src/CreatableProvider/LabeledCreatableProviderFactory.ts +0 -24
- package/src/CreatableProvider/ProviderFactory.ts +0 -138
- package/src/CreatableProvider/ProviderFactoryLocator.ts +0 -170
- package/src/CreatableProvider/ProviderFactoryLocatorInstance.ts +0 -70
- package/src/CreatableProvider/index.ts +0 -8
- package/src/SignedBigInt.ts +0 -59
- package/src/_internal/context/getTestProviderContext.ts +0 -13
- package/src/_internal/context/index.ts +0 -1
- package/src/_internal/index.ts +0 -2
- package/src/actor/ActorV3.ts +0 -177
- package/src/actor/index.ts +0 -1
- package/src/amount/ShiftedBigInt.ts +0 -73
- package/src/amount/XL1Amount.ts +0 -103
- package/src/amount/index.ts +0 -4
- package/src/amount/splitOnDecimal.ts +0 -6
- package/src/amount/splitOnDecimalToString.ts +0 -40
- package/src/block/hydrate/allHashesPresent.ts +0 -8
- package/src/block/hydrate/blockPayloadsFromHydratedBlock.ts +0 -12
- package/src/block/hydrate/flattenHydratedBlock.ts +0 -28
- package/src/block/hydrate/flattenHydratedBlocks.ts +0 -7
- package/src/block/hydrate/hydrateBlock.ts +0 -43
- package/src/block/hydrate/index.ts +0 -7
- package/src/block/hydrate/transactionsFromHydratedBlock.ts +0 -7
- package/src/block/hydrate/tryHydrateBlock.ts +0 -26
- package/src/block/index.ts +0 -2
- package/src/block/primitives/blockFromBlockNumber.ts +0 -69
- package/src/block/primitives/frames/calculateFramesFromRange.ts +0 -30
- package/src/block/primitives/frames/deepCalculateFramesFromRange.ts +0 -28
- package/src/block/primitives/frames/index.ts +0 -2
- package/src/block/primitives/hashFromBlockNumber.ts +0 -9
- package/src/block/primitives/index.ts +0 -7
- package/src/block/primitives/model.ts +0 -18
- package/src/block/primitives/payloads/ChainWindow.ts +0 -7
- package/src/block/primitives/payloads/index.ts +0 -1
- package/src/block/primitives/toStepIdentityString.ts +0 -6
- package/src/block/primitives/validateTransactionOpcodes.ts +0 -45
- package/src/config/Actor.ts +0 -32
- package/src/config/Actors.ts +0 -9
- package/src/config/Base.ts +0 -27
- package/src/config/Chain.ts +0 -23
- package/src/config/Config.ts +0 -24
- package/src/config/DataLake/DataLake.ts +0 -12
- package/src/config/DataLake/DataLakeRemoteConfig.ts +0 -11
- package/src/config/DataLake/RestDataLakeConfig.ts +0 -18
- package/src/config/DataLake/RouterDataLakeConfig.ts +0 -22
- package/src/config/DataLake/index.ts +0 -4
- package/src/config/DeepPartial.ts +0 -4
- package/src/config/Evm.ts +0 -38
- package/src/config/HostActor.ts +0 -32
- package/src/config/Log.ts +0 -25
- package/src/config/Provider.ts +0 -20
- package/src/config/Providers.ts +0 -9
- package/src/config/Remote.ts +0 -59
- package/src/config/Telemetry.ts +0 -49
- package/src/config/UsageMeta.ts +0 -46
- package/src/config/Validation.ts +0 -29
- package/src/config/index.ts +0 -12
- package/src/config/storage/Storage.ts +0 -16
- package/src/config/storage/driver/Mongo.ts +0 -53
- package/src/config/storage/driver/index.ts +0 -1
- package/src/config/storage/index.ts +0 -2
- package/src/constants.ts +0 -4
- package/src/context/Actor.ts +0 -20
- package/src/context/HostActor.ts +0 -20
- package/src/context/getEmptyProviderContext.ts +0 -19
- package/src/context/index.ts +0 -3
- package/src/createDeclarationPayload.ts +0 -15
- package/src/createTransferPayload.ts +0 -16
- package/src/driver/cache/LruCacheMap.ts +0 -48
- package/src/driver/cache/index.ts +0 -1
- package/src/driver/index.ts +0 -2
- package/src/driver/memory/MemoryMap.ts +0 -48
- package/src/driver/memory/index.ts +0 -1
- package/src/eip-712/Payloads/EIP712Data.ts +0 -35
- package/src/eip-712/Payloads/EIP712Signature.ts +0 -32
- package/src/eip-712/Payloads/index.ts +0 -2
- package/src/eip-712/Types.ts +0 -41
- package/src/eip-712/index.ts +0 -4
- package/src/eip-712/sign.ts +0 -19
- package/src/eip-712/spec/fixtures.ts +0 -27
- package/src/eip-712/verify.ts +0 -20
- package/src/getFileConfig.ts +0 -36
- package/src/index.ts +0 -27
- package/src/instances/Address.ts +0 -16
- package/src/instances/BoundWitness.ts +0 -13
- package/src/instances/Data.ts +0 -4
- package/src/instances/Fees.ts +0 -9
- package/src/instances/HydratedBoundWitness.ts +0 -16
- package/src/instances/Object.ts +0 -6
- package/src/instances/Payload.ts +0 -7
- package/src/instances/Signature.ts +0 -12
- package/src/instances/block/BlockFields.ts +0 -18
- package/src/instances/block/HydratedBlock.ts +0 -10
- package/src/instances/block/index.ts +0 -1
- package/src/instances/index.ts +0 -10
- package/src/instances/modifiers/BlockWindowInstance.ts +0 -8
- package/src/instances/modifiers/BlockWindowState.ts +0 -6
- package/src/instances/modifiers/Signed.ts +0 -9
- package/src/instances/modifiers/Validatable.ts +0 -6
- package/src/instances/modifiers/index.ts +0 -4
- package/src/instances/transaction/HydratedTransaction.ts +0 -9
- package/src/instances/transaction/TransactionFields.ts +0 -22
- package/src/instances/transaction/index.ts +0 -1
- package/src/isInternetAvailable.ts +0 -11
- package/src/model/ChainFork/ChainForkStatic.ts +0 -9
- package/src/model/ChainFork/index.ts +0 -1
- package/src/model/ChainIdentity.ts +0 -6
- package/src/model/ChainStore.ts +0 -16
- package/src/model/CreatableProviderContext.ts +0 -6
- package/src/model/CreatableProviderContext.zod.ts +0 -55
- package/src/model/PayloadBundle/bundledPayloadToHydratedBlock.ts +0 -15
- package/src/model/PayloadBundle/bundledPayloadToHydratedTransaction.ts +0 -15
- package/src/model/PayloadBundle/hydratedBlockToPayloadBundle.ts +0 -19
- package/src/model/PayloadBundle/hydratedTransactionToPayloadBundle.ts +0 -19
- package/src/model/PayloadBundle/index.ts +0 -4
- package/src/model/index.ts +0 -6
- package/src/multipliers.ts +0 -18
- package/src/payloads/AddressPairPayload.ts +0 -27
- package/src/payloads/index.ts +0 -4
- package/src/payloads/netBalancesForPayloads.ts +0 -24
- package/src/payloads/netSchemasForPayloads.ts +0 -24
- package/src/payloads/netTransfersForPayloads.ts +0 -27
- package/src/primitives/block/index.ts +0 -2
- package/src/primitives/block/range/blockRangeSteps.ts +0 -23
- package/src/primitives/block/range/index.ts +0 -1
- package/src/primitives/block/rate/blockRate.ts +0 -77
- package/src/primitives/block/rate/index.ts +0 -4
- package/src/primitives/block/rate/stepRate.ts +0 -37
- package/src/primitives/block/rate/timeHelpers.ts +0 -61
- package/src/primitives/block/rate/timeRate.ts +0 -121
- package/src/primitives/chain/getWindowedChain.ts +0 -50
- package/src/primitives/chain/index.ts +0 -3
- package/src/primitives/chain/step/chainStepRewardAddress.ts +0 -30
- package/src/primitives/chain/step/index.ts +0 -4
- package/src/primitives/chain/step/stepRewardBlock.ts +0 -13
- package/src/primitives/chain/step/stepRewardTotal.ts +0 -46
- package/src/primitives/chain/step/stepsRewardTotal.ts +0 -37
- package/src/primitives/chain/time/externalBlockNumberFromXL1BlockNumber.ts +0 -32
- package/src/primitives/chain/time/externalBlockRangeFromStep.ts +0 -21
- package/src/primitives/chain/time/externalBlockRangeFromXL1BlockRange.ts +0 -17
- package/src/primitives/chain/time/index.ts +0 -3
- package/src/primitives/datalake/addDataLakePayloads.ts +0 -18
- package/src/primitives/datalake/addDataLakePayloadsToPayloads.ts +0 -24
- package/src/primitives/datalake/index.ts +0 -2
- package/src/primitives/index.ts +0 -13
- package/src/primitives/mapToMapType.ts +0 -35
- package/src/primitives/payload/index.ts +0 -1
- package/src/primitives/payload/mergeTransfers.ts +0 -16
- package/src/primitives/readPayloadMapFromStore.ts +0 -58
- package/src/primitives/rewardFromBlockNumber.ts +0 -19
- package/src/primitives/rewards/index.ts +0 -1
- package/src/primitives/rewards/networkStakeStepRewardPositionWeight.ts +0 -26
- package/src/primitives/stake/activeStakeAtTimeByAddress.ts +0 -27
- package/src/primitives/stake/activeStakeAtTimeByPosition.ts +0 -25
- package/src/primitives/stake/allStakersForRange.ts +0 -32
- package/src/primitives/stake/allStakersForStep.ts +0 -24
- package/src/primitives/stake/index.ts +0 -6
- package/src/primitives/stake/mergedAddRemoveStakeEventsByPosition.ts +0 -15
- package/src/primitives/stake/mergedAddRemoveStakeEventsByStaker.ts +0 -17
- package/src/primitives/stake/weightedStakeForRangeByPosition.ts +0 -69
- package/src/primitives/state/findMostRecentBlock.ts +0 -44
- package/src/primitives/state/hydratedBlockByNumber.ts +0 -25
- package/src/primitives/state/index.ts +0 -2
- package/src/primitives/step/completedStepRewardAddress.ts +0 -10
- package/src/primitives/step/derivedReceiveAddress.ts +0 -9
- package/src/primitives/step/index.ts +0 -4
- package/src/primitives/step/stepBlockRange.ts +0 -9
- package/src/primitives/step/stepTransferIndex.ts +0 -19
- package/src/primitives/transaction/elevatedPayloads.ts +0 -24
- package/src/primitives/transaction/index.ts +0 -1
- package/src/primitives/uncle/findBestUncle.ts +0 -9
- package/src/primitives/uncle/findUncles.ts +0 -75
- package/src/primitives/uncle/index.ts +0 -3
- package/src/primitives/uncle/scoreUncle.ts +0 -7
- package/src/services/AccountTransfersService.ts +0 -13
- package/src/services/BlockProducerService.ts +0 -11
- package/src/services/Chain/BaseChainService.ts +0 -4
- package/src/services/Chain/ChainHeadService.ts +0 -8
- package/src/services/Chain/ChainService.ts +0 -6
- package/src/services/Chain/index.ts +0 -3
- package/src/services/Election.ts +0 -14
- package/src/services/NetworkStakeService.ts +0 -4
- package/src/services/Params.ts +0 -13
- package/src/services/PendingTransactionsService.ts +0 -7
- package/src/services/SchemasService.ts +0 -11
- package/src/services/StakeIntentService/ChainIndexingServiceStateSchema.ts +0 -50
- package/src/services/StakeIntentService/StakeIntentService.ts +0 -35
- package/src/services/StakeIntentService/index.ts +0 -2
- package/src/services/index.ts +0 -8
- package/src/simple/StakeEventsViewer/SimpleStakeEventsViewer.ts +0 -93
- package/src/simple/StakeEventsViewer/index.ts +0 -1
- package/src/simple/StakeTotalsViewer/SimpleStakeTotalsViewer.ts +0 -116
- package/src/simple/StakeTotalsViewer/index.ts +0 -1
- package/src/simple/StakeViewer/SimpleStakeViewer.ts +0 -164
- package/src/simple/StakeViewer/index.ts +0 -1
- package/src/simple/TransactionViewer/SimpleTransactionViewer.ts +0 -100
- package/src/simple/TransactionViewer/index.ts +0 -1
- package/src/simple/accountBalance/SimpleAccountBalanceViewer.ts +0 -271
- package/src/simple/accountBalance/index.ts +0 -1
- package/src/simple/block/SimpleBlockViewer.ts +0 -231
- package/src/simple/block/index.ts +0 -1
- package/src/simple/blockInvalidation/SimpleBlockInvalidationViewer.ts +0 -197
- package/src/simple/blockInvalidation/index.ts +0 -1
- package/src/simple/blockReward/SimpleBlockRewardViewer.ts +0 -27
- package/src/simple/blockReward/index.ts +0 -1
- package/src/simple/blockValidation/SimpleBlockValidationViewer.ts +0 -194
- package/src/simple/blockValidation/index.ts +0 -1
- package/src/simple/chainContractViewer/SimpleChainContractViewer.ts +0 -92
- package/src/simple/chainContractViewer/index.ts +0 -1
- package/src/simple/client/SimpleXyoClient.ts +0 -14
- package/src/simple/client/index.ts +0 -1
- package/src/simple/datalake/AbstractRestDataLake.ts +0 -70
- package/src/simple/datalake/AbstractSimpleDataLake.ts +0 -62
- package/src/simple/datalake/RestDataLakeRunner.ts +0 -54
- package/src/simple/datalake/RestDataLakeViewer.ts +0 -22
- package/src/simple/datalake/SimpleDataLakeRunner.ts +0 -44
- package/src/simple/datalake/SimpleDataLakeViewer.ts +0 -24
- package/src/simple/datalake/index.ts +0 -4
- package/src/simple/finalization/SimpleFinalizationRunner.ts +0 -45
- package/src/simple/finalization/SimpleFinalizationViewer.ts +0 -123
- package/src/simple/finalization/index.ts +0 -2
- package/src/simple/gateway/SimpleXyoGateway.ts +0 -30
- package/src/simple/gateway/SimpleXyoGatewayRunner.ts +0 -137
- package/src/simple/gateway/index.ts +0 -2
- package/src/simple/index.ts +0 -22
- package/src/simple/mempool/SimpleMempoolRunner.ts +0 -390
- package/src/simple/mempool/SimpleMempoolViewer.ts +0 -215
- package/src/simple/mempool/index.ts +0 -2
- package/src/simple/network/SimpleXyoNetwork.ts +0 -48
- package/src/simple/network/index.ts +0 -1
- package/src/simple/network/lib/FailedNetworkStatusPayloads.ts +0 -16
- package/src/simple/network/lib/StatusNetworks.ts +0 -32
- package/src/simple/network/lib/index.ts +0 -2
- package/src/simple/permissions/SimpleXyoPermissions.ts +0 -82
- package/src/simple/permissions/index.ts +0 -2
- package/src/simple/permissions/store/MemoryPermissions.ts +0 -32
- package/src/simple/permissions/store/PermissionsStore.ts +0 -17
- package/src/simple/permissions/store/index.ts +0 -2
- package/src/simple/runner/SimpleXyoRunner.ts +0 -41
- package/src/simple/runner/index.ts +0 -1
- package/src/simple/signer/SimpleXyoSigner.ts +0 -78
- package/src/simple/signer/index.ts +0 -1
- package/src/simple/timeSync2/SimpleTimeSyncViewer.ts +0 -132
- package/src/simple/timeSync2/index.ts +0 -1
- package/src/simple/transactionInvalidation/SimpleTransactionInvalidationViewer.ts +0 -197
- package/src/simple/transactionInvalidation/index.ts +0 -1
- package/src/simple/transactionValidation/SimpleTransactionValidationViewer.ts +0 -173
- package/src/simple/transactionValidation/index.ts +0 -1
- package/src/simple/windowedBlock/SimpleWindowedBlockViewer.ts +0 -207
- package/src/simple/windowedBlock/index.ts +0 -1
- package/src/status/RuntimeStatusMonitor.ts +0 -120
- package/src/status/ServiceStatus.ts +0 -21
- package/src/status/index.ts +0 -2
- package/src/summary/index.ts +0 -2
- package/src/summary/model/BalancesStepSummary.ts +0 -35
- package/src/summary/model/SchemasStepSummary.ts +0 -33
- package/src/summary/model/StepSummary.ts +0 -20
- package/src/summary/model/TransfersSummary.ts +0 -36
- package/src/summary/model/index.ts +0 -4
- package/src/summary/primitives/balances/balancesStepSummaryFromRange.ts +0 -94
- package/src/summary/primitives/balances/balancesSummary.ts +0 -48
- package/src/summary/primitives/balances/index.ts +0 -2
- package/src/summary/primitives/index.ts +0 -3
- package/src/summary/primitives/schemas/index.ts +0 -2
- package/src/summary/primitives/schemas/schemasStepSummaryFromRange.ts +0 -86
- package/src/summary/primitives/schemas/schemasSummary.ts +0 -44
- package/src/summary/primitives/transfers/index.ts +0 -2
- package/src/summary/primitives/transfers/transfersStepSummaryFromRange.ts +0 -109
- package/src/summary/primitives/transfers/transfersSummary.ts +0 -52
- package/src/test/BuildBlockOptions.ts +0 -81
- package/src/test/buildBlock.ts +0 -105
- package/src/test/buildGenesisBlock.ts +0 -29
- package/src/test/buildNextBlock.ts +0 -37
- package/src/test/buildRandomChain.ts +0 -92
- package/src/test/buildRandomGenesisBlock.ts +0 -47
- package/src/test/createGenesisBlock.ts +0 -41
- package/src/test/createProducerChainStakeIntentTransaction.ts +0 -48
- package/src/test/getSimpleBlockViewerLocator.ts +0 -41
- package/src/test/getTestProviderContext.ts +0 -8
- package/src/test/index.ts +0 -2
- package/src/time/index.ts +0 -1
- package/src/time/primitives/index.ts +0 -1
- package/src/time/primitives/xl1BlockNumberToEthBlockNumber.ts +0 -13
- package/src/transaction/TransactionBuilder.ts +0 -164
- package/src/transaction/buildRandomTransaction.ts +0 -38
- package/src/transaction/buildTransaction.ts +0 -68
- package/src/transaction/buildUnsignedTransaction.ts +0 -56
- package/src/transaction/confirmSubmittedTransaction.ts +0 -42
- package/src/transaction/hydrateTransaction.ts +0 -117
- package/src/transaction/index.ts +0 -9
- package/src/transaction/primitives/index.ts +0 -4
- package/src/transaction/primitives/transactionBlockByteCount.ts +0 -10
- package/src/transaction/primitives/transactionElevatedPayloads.ts +0 -18
- package/src/transaction/primitives/transactionOperations.ts +0 -13
- package/src/transaction/primitives/transactionRequiredGas.ts +0 -22
- package/src/transaction/script.ts +0 -48
- package/src/transaction/signTransaction.ts +0 -32
- package/src/utils/HydratedCache.ts +0 -39
- package/src/utils/index.ts +0 -2
- package/src/utils/isZodError.ts +0 -11
- package/src/validation/index.ts +0 -2
- package/src/validation/lib/getUrl.ts +0 -7
- package/src/validation/lib/index.ts +0 -2
- package/src/validation/lib/isLocalhost.ts +0 -9
- package/src/validation/schema/Address.ts +0 -2
- package/src/validation/schema/Mnemonic.ts +0 -21
- package/src/validation/schema/index.ts +0 -2
- package/src/wallet/generateXyoBaseWalletFromPhrase.ts +0 -13
- package/src/wallet/index.ts +0 -2
- package/src/wallet/paths.ts +0 -17
|
@@ -1,93 +0,0 @@
|
|
|
1
|
-
import { isDefined } from '@xylabs/sdk-js'
|
|
2
|
-
import {
|
|
3
|
-
Position, StakeEvent, StakeEventFilter, StakeEventName, StakeEventsViewer, StakeEventsViewerMoniker,
|
|
4
|
-
} from '@xyo-network/xl1-protocol-lib'
|
|
5
|
-
|
|
6
|
-
import {
|
|
7
|
-
AbstractCreatableProvider, creatableProvider, CreatableProviderParams,
|
|
8
|
-
} from '../../CreatableProvider/index.ts'
|
|
9
|
-
|
|
10
|
-
/** Parameters for SimpleStakeEvents. */
|
|
11
|
-
export interface SimpleStakeEventsParams extends CreatableProviderParams {
|
|
12
|
-
positions: Position[]
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
/** SimpleStakeEventsViewer implementation. */
|
|
16
|
-
@creatableProvider()
|
|
17
|
-
export class SimpleStakeEventsViewer extends AbstractCreatableProvider<SimpleStakeEventsParams> implements StakeEventsViewer {
|
|
18
|
-
static readonly defaultMoniker = StakeEventsViewerMoniker
|
|
19
|
-
static readonly dependencies = []
|
|
20
|
-
static readonly monikers = [StakeEventsViewerMoniker]
|
|
21
|
-
moniker = SimpleStakeEventsViewer.defaultMoniker
|
|
22
|
-
|
|
23
|
-
protected get positions() {
|
|
24
|
-
return this.params.positions
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
positionCount(range: [number, number | 'latest']): number {
|
|
28
|
-
return this.positionsFromRange(range).length
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
stakeEvents<TName extends StakeEventName>(range: [number, number | 'latest'], { name }: StakeEventFilter<TName> = {}): StakeEvent<TName>[] {
|
|
32
|
-
const positions = this.positionsFromRange(range)
|
|
33
|
-
const events = this.eventsFromPositions(positions)
|
|
34
|
-
if (isDefined(name)) {
|
|
35
|
-
return events.filter((event): event is StakeEvent<TName> => event.name === name)
|
|
36
|
-
}
|
|
37
|
-
return events as StakeEvent<TName>[]
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
protected override async startHandler(): Promise<void> {
|
|
41
|
-
await super.startHandler()
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
private eventsFromPositions(positions: Position[]): StakeEvent<StakeEventName>[] {
|
|
45
|
-
const events = positions.map((position) => {
|
|
46
|
-
const events: StakeEvent<StakeEventName>[] = [{
|
|
47
|
-
name: 'StakeAdded',
|
|
48
|
-
time: position.addBlock,
|
|
49
|
-
args: {
|
|
50
|
-
staker: position.staker,
|
|
51
|
-
staked: position.staked,
|
|
52
|
-
amount: position.amount,
|
|
53
|
-
id: position.id,
|
|
54
|
-
},
|
|
55
|
-
}]
|
|
56
|
-
if (position.removeBlock !== 0) {
|
|
57
|
-
events.push({
|
|
58
|
-
name: 'StakeRemoved',
|
|
59
|
-
time: position.removeBlock,
|
|
60
|
-
args: {
|
|
61
|
-
staker: position.staker,
|
|
62
|
-
staked: position.staked,
|
|
63
|
-
amount: position.amount,
|
|
64
|
-
id: position.id,
|
|
65
|
-
},
|
|
66
|
-
})
|
|
67
|
-
}
|
|
68
|
-
if (position.withdrawBlock !== 0) {
|
|
69
|
-
events.push({
|
|
70
|
-
name: 'StakeWithdrawn',
|
|
71
|
-
time: position.withdrawBlock,
|
|
72
|
-
args: {
|
|
73
|
-
staker: position.staker,
|
|
74
|
-
staked: position.staked,
|
|
75
|
-
amount: position.amount,
|
|
76
|
-
id: position.id,
|
|
77
|
-
},
|
|
78
|
-
})
|
|
79
|
-
}
|
|
80
|
-
return events
|
|
81
|
-
})
|
|
82
|
-
return events.flat()
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
private positionsFromRange(range: [number, number | 'latest']): Position[] {
|
|
86
|
-
const startBlock = range[0]
|
|
87
|
-
const endBlock = range[1] === 'latest' ? Number.MAX_SAFE_INTEGER : range[1]
|
|
88
|
-
const filteredPositions = this.positions?.filter((position) => {
|
|
89
|
-
return position.addBlock <= endBlock && (position.removeBlock === 0 || position.removeBlock >= startBlock)
|
|
90
|
-
}) ?? []
|
|
91
|
-
return filteredPositions
|
|
92
|
-
}
|
|
93
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from './SimpleStakeEventsViewer.ts'
|
|
@@ -1,116 +0,0 @@
|
|
|
1
|
-
import { type Address, asAddress } from '@xylabs/sdk-js'
|
|
2
|
-
import { assertEx } from '@xylabs/sdk-js'
|
|
3
|
-
import {
|
|
4
|
-
StakeTotalsViewer, StakeTotalsViewerMoniker,
|
|
5
|
-
StakeViewer,
|
|
6
|
-
StakeViewerMoniker,
|
|
7
|
-
} from '@xyo-network/xl1-protocol-lib'
|
|
8
|
-
|
|
9
|
-
import {
|
|
10
|
-
AbstractCreatableProvider, creatableProvider, CreatableProviderParams,
|
|
11
|
-
} from '../../CreatableProvider/index.ts'
|
|
12
|
-
|
|
13
|
-
/** Parameters for SimpleStakeTotalsViewer. */
|
|
14
|
-
export interface SimpleStakeTotalsViewerParams extends CreatableProviderParams {
|
|
15
|
-
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
/** SimpleStakeTotalsViewer implementation. */
|
|
19
|
-
@creatableProvider()
|
|
20
|
-
export class SimpleStakeTotalsViewer extends AbstractCreatableProvider<SimpleStakeTotalsViewerParams> implements StakeTotalsViewer {
|
|
21
|
-
static readonly defaultMoniker = StakeTotalsViewerMoniker
|
|
22
|
-
static readonly dependencies = [StakeTotalsViewerMoniker]
|
|
23
|
-
static readonly monikers = [StakeTotalsViewerMoniker]
|
|
24
|
-
moniker = SimpleStakeTotalsViewer.defaultMoniker
|
|
25
|
-
|
|
26
|
-
private _stakeViewer!: StakeViewer
|
|
27
|
-
|
|
28
|
-
get stakeViewer() {
|
|
29
|
-
return this._stakeViewer
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
async active(time = Number.MAX_SAFE_INTEGER) {
|
|
33
|
-
let active = 0n
|
|
34
|
-
const positions = await this.stakeViewer.activeStakes()
|
|
35
|
-
for (const position of positions) {
|
|
36
|
-
if (position.removeBlock === 0 || position.removeBlock > time) {
|
|
37
|
-
active += position.amount
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
return active
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
async activeByStaked(staked: Address, time = Number.MAX_SAFE_INTEGER) {
|
|
44
|
-
let active = 0n
|
|
45
|
-
const positions = await this.stakeViewer.activeStakes()
|
|
46
|
-
for (const position of positions) {
|
|
47
|
-
if ((position.removeBlock === 0 || position.removeBlock > time) && asAddress(position.staked) === asAddress(staked)) {
|
|
48
|
-
active += position.amount
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
return active
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
async activeByStaker(staker: Address, time = Number.MAX_SAFE_INTEGER) {
|
|
55
|
-
let active = 0n
|
|
56
|
-
const positions = await this.stakeViewer.activeStakes()
|
|
57
|
-
for (const position of positions) {
|
|
58
|
-
if ((position.removeBlock === 0 || position.removeBlock > time) && asAddress(position.staker) === asAddress(staker)) {
|
|
59
|
-
active += position.amount
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
return active
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
override async createHandler() {
|
|
66
|
-
await super.createHandler()
|
|
67
|
-
this._stakeViewer = assertEx(
|
|
68
|
-
(await this.locateAndCreate<StakeViewer>(StakeViewerMoniker)),
|
|
69
|
-
() => 'Failed to create StakeViewer',
|
|
70
|
-
)
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
async pending(time = Number.MAX_SAFE_INTEGER): Promise<bigint> {
|
|
74
|
-
let pending = 0n
|
|
75
|
-
const positions = await this.stakeViewer.removedStakes()
|
|
76
|
-
for (const position of positions) {
|
|
77
|
-
if ((position.removeBlock !== 0 && position.removeBlock <= time) && (position.withdrawBlock === 0 || position.withdrawBlock > time)) {
|
|
78
|
-
pending += position.amount
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
return pending
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
async pendingByStaker(staker: Address, time = Number.MAX_SAFE_INTEGER) {
|
|
85
|
-
let pending = 0n
|
|
86
|
-
const positions = await this.stakeViewer.removedStakes()
|
|
87
|
-
for (const position of positions) {
|
|
88
|
-
if ((position.removeBlock !== 0 && position.removeBlock <= time) && (position.withdrawBlock === 0 || position.withdrawBlock > time) && asAddress(position.staker) === asAddress(staker)) {
|
|
89
|
-
pending += position.amount
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
return pending
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
async withdrawn(time = Number.MAX_SAFE_INTEGER): Promise<bigint> {
|
|
96
|
-
let withdrawn = 0n
|
|
97
|
-
const positions = await this.stakeViewer.withdrawnStakes()
|
|
98
|
-
for (const position of positions) {
|
|
99
|
-
if (position.withdrawBlock !== 0 && position.withdrawBlock <= time) {
|
|
100
|
-
withdrawn += position.amount
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
return withdrawn
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
async withdrawnByStaker(staker: Address, time = Number.MAX_SAFE_INTEGER): Promise<bigint> {
|
|
107
|
-
let withdrawn = 0n
|
|
108
|
-
const positions = await this.stakeViewer.withdrawnStakes()
|
|
109
|
-
for (const position of positions) {
|
|
110
|
-
if (position.withdrawBlock !== 0 && position.withdrawBlock <= time && asAddress(position.staker) === asAddress(staker)) {
|
|
111
|
-
withdrawn += position.amount
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
return withdrawn
|
|
115
|
-
}
|
|
116
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from './SimpleStakeTotalsViewer.ts'
|
|
@@ -1,164 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
type Address, asAddress, Promisable, toAddress,
|
|
3
|
-
} from '@xylabs/sdk-js'
|
|
4
|
-
import { assertEx } from '@xylabs/sdk-js'
|
|
5
|
-
import {
|
|
6
|
-
Position, StakeEventsViewer, StakeEventsViewerMoniker, StakeViewer, StakeViewerMoniker,
|
|
7
|
-
} from '@xyo-network/xl1-protocol-lib'
|
|
8
|
-
|
|
9
|
-
import {
|
|
10
|
-
AbstractCreatableProvider, creatableProvider, CreatableProviderParams,
|
|
11
|
-
} from '../../CreatableProvider/index.ts'
|
|
12
|
-
|
|
13
|
-
/** Parameters for SimpleStakeViewer. */
|
|
14
|
-
export interface SimpleStakeViewerParams extends CreatableProviderParams {
|
|
15
|
-
chainId?: Address
|
|
16
|
-
minWithdrawalBlocks?: number
|
|
17
|
-
positions: Position[]
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
/** SimpleStakeViewer implementation. */
|
|
21
|
-
@creatableProvider()
|
|
22
|
-
export class SimpleStakeViewer extends AbstractCreatableProvider<SimpleStakeViewerParams> implements StakeViewer {
|
|
23
|
-
static readonly defaultMoniker = StakeViewerMoniker
|
|
24
|
-
static readonly dependencies = [StakeEventsViewerMoniker]
|
|
25
|
-
static readonly monikers = [StakeViewerMoniker]
|
|
26
|
-
moniker = SimpleStakeViewer.defaultMoniker
|
|
27
|
-
|
|
28
|
-
private _chainStakeEventsViewer: StakeEventsViewer | undefined
|
|
29
|
-
|
|
30
|
-
get stakeEvents() {
|
|
31
|
-
return assertEx(this._chainStakeEventsViewer, () => 'Stake events viewer not set')
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
protected get positions() {
|
|
35
|
-
return this.params.positions
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
async active(): Promise<bigint> {
|
|
39
|
-
let active = 0n
|
|
40
|
-
const positions = await this.activeStakes()
|
|
41
|
-
for (const position of positions) {
|
|
42
|
-
if (position.removeBlock === 0) {
|
|
43
|
-
active += position.amount
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
return active
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
async activeByAddressStaked(staked: Address) {
|
|
50
|
-
let active = 0n
|
|
51
|
-
const positions = await this.activeStakes()
|
|
52
|
-
for (const position of positions) {
|
|
53
|
-
if (position.removeBlock === 0 && asAddress(position.staked) === asAddress(staked)) {
|
|
54
|
-
active += position.amount
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
return active
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
async activeByStaker(staker: Address): Promise<bigint> {
|
|
61
|
-
let active = 0n
|
|
62
|
-
const positions = await this.activeStakes()
|
|
63
|
-
for (const position of positions) {
|
|
64
|
-
if (position.removeBlock === 0 && asAddress(position.staker) === asAddress(staker)) {
|
|
65
|
-
active += position.amount
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
return active
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
activeStakes(): Promisable<Position[]> {
|
|
72
|
-
return this.positions.filter(s => (s.withdrawBlock === 0) && (s.removeBlock === 0))
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
override async createHandler() {
|
|
76
|
-
await super.createHandler()
|
|
77
|
-
this._chainStakeEventsViewer = assertEx(
|
|
78
|
-
(await this.locateAndCreate<StakeEventsViewer>(StakeEventsViewerMoniker)),
|
|
79
|
-
() => 'Failed to create StakeEventsViewer',
|
|
80
|
-
)
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
minWithdrawalBlocks(): number {
|
|
84
|
-
return this.params.minWithdrawalBlocks ?? 10
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
async pending() {
|
|
88
|
-
let pending = 0n
|
|
89
|
-
const positions = await this.removedStakes()
|
|
90
|
-
for (const position of positions) {
|
|
91
|
-
if (position.removeBlock !== 0 && position.withdrawBlock === 0) {
|
|
92
|
-
pending += position.amount
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
return pending
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
async pendingByStaker(staker: Address) {
|
|
99
|
-
let pending = 0n
|
|
100
|
-
const positions = await this.removedStakes()
|
|
101
|
-
for (const position of positions) {
|
|
102
|
-
if (position.removeBlock !== 0 && position.withdrawBlock === 0 && asAddress(position.staker) === asAddress(staker)) {
|
|
103
|
-
pending += position.amount
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
return pending
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
removedStakes(): Promisable<Position[]> {
|
|
110
|
-
return this.positions.filter(s => (s.withdrawBlock === 0) && (s.removeBlock !== 0))
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
rewardsContract(): Address {
|
|
114
|
-
return toAddress(toAddress(1n))
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
stakeById(id: number): Position {
|
|
118
|
-
return assertEx(this.positions[id], () => new Error(`Stake with id ${id} not found`))
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
stakeByStaker(staker: Address, slot: number): Position {
|
|
122
|
-
return this.positions.filter(s => asAddress(s.staker) === asAddress(staker))[slot]
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
stakesByStaked(staked: Address, range: [number, number | undefined] = [0, undefined]): Position[] {
|
|
126
|
-
const endBlock = (range[1] ?? Number.MAX_SAFE_INTEGER)
|
|
127
|
-
return this.positions.filter(s => asAddress(s.staked) === asAddress(staked) && s.addBlock <= endBlock && s.removeBlock <= endBlock)
|
|
128
|
-
}
|
|
129
|
-
|
|
130
|
-
stakesByStaker(staker: Address, range: [number, number | undefined] = [0, undefined]): Position[] {
|
|
131
|
-
const endBlock = (range[1] ?? Number.MAX_SAFE_INTEGER)
|
|
132
|
-
return this.positions.filter(s => asAddress(s.staker) === asAddress(staker) && s.addBlock <= endBlock && s.removeBlock <= endBlock)
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
stakingTokenAddress(): Address {
|
|
136
|
-
return toAddress('0x000000000000000000000000000011')
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
async withdrawn() {
|
|
140
|
-
let withdrawn = 0n
|
|
141
|
-
const positions = await this.withdrawnStakes()
|
|
142
|
-
for (const position of positions) {
|
|
143
|
-
if (position.withdrawBlock !== 0) {
|
|
144
|
-
withdrawn += position.amount
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
return withdrawn
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
async withdrawnByStaker(staker: Address) {
|
|
151
|
-
let withdrawn = 0n
|
|
152
|
-
const positions = await this.withdrawnStakes()
|
|
153
|
-
for (const position of positions) {
|
|
154
|
-
if (position.withdrawBlock !== 0 && asAddress(position.staker) === asAddress(staker)) {
|
|
155
|
-
withdrawn += position.amount
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
return withdrawn
|
|
159
|
-
}
|
|
160
|
-
|
|
161
|
-
withdrawnStakes(): Promisable<Position[]> {
|
|
162
|
-
return this.positions.filter(s => (s.withdrawBlock !== 0))
|
|
163
|
-
}
|
|
164
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from './SimpleStakeViewer.ts'
|
|
@@ -1,100 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
assertEx, exists, Hash,
|
|
3
|
-
} from '@xylabs/sdk-js'
|
|
4
|
-
import { BoundWitnessSchema } from '@xyo-network/sdk-js'
|
|
5
|
-
import {
|
|
6
|
-
asSignedHydratedTransactionWithHashMeta,
|
|
7
|
-
asSignedTransactionBoundWitness,
|
|
8
|
-
BlockViewer,
|
|
9
|
-
BlockViewerMoniker,
|
|
10
|
-
isTransactionBoundWitnessWithHashMeta,
|
|
11
|
-
SignedHydratedTransactionWithHashMeta, TransactionViewer, TransactionViewerMoniker,
|
|
12
|
-
XL1BlockNumber,
|
|
13
|
-
} from '@xyo-network/xl1-protocol-lib'
|
|
14
|
-
|
|
15
|
-
import {
|
|
16
|
-
AbstractCreatableProvider, creatableProvider, CreatableProviderParams,
|
|
17
|
-
} from '../../CreatableProvider/index.ts'
|
|
18
|
-
|
|
19
|
-
/** Parameters for SimpleTransactionViewer. */
|
|
20
|
-
export interface SimpleTransactionViewerParams extends CreatableProviderParams {
|
|
21
|
-
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
/** SimpleTransactionViewer implementation. */
|
|
25
|
-
@creatableProvider()
|
|
26
|
-
export class SimpleTransactionViewer extends AbstractCreatableProvider<SimpleTransactionViewerParams> implements TransactionViewer {
|
|
27
|
-
static readonly defaultMoniker = TransactionViewerMoniker
|
|
28
|
-
static readonly dependencies = [BlockViewerMoniker]
|
|
29
|
-
static readonly monikers = [TransactionViewerMoniker]
|
|
30
|
-
moniker = SimpleTransactionViewer.defaultMoniker
|
|
31
|
-
|
|
32
|
-
private _blockViewer!: BlockViewer
|
|
33
|
-
|
|
34
|
-
protected get blockViewer() {
|
|
35
|
-
return this._blockViewer
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
async byBlockHashAndIndex(blockHash: Hash, transactionIndex: number): Promise<SignedHydratedTransactionWithHashMeta | null> {
|
|
39
|
-
return await this.spanAsync('byBlockHashAndIndex', async () => {
|
|
40
|
-
assertEx(transactionIndex >= 0, () => 'transactionIndex must be greater than or equal to 0')
|
|
41
|
-
try {
|
|
42
|
-
const block = await this.blockViewer.blockByHash(blockHash)
|
|
43
|
-
if (!block) return null
|
|
44
|
-
const blockBoundWitnessIndexes = block[0].payload_schemas.map((schema, index) => schema === BoundWitnessSchema ? index : undefined).filter(exists)
|
|
45
|
-
const blockBoundWitnessHashes = new Set(blockBoundWitnessIndexes.map(index => block[0].payload_hashes[index]))
|
|
46
|
-
const blockBoundWitnesses = block[1].filter(payload => blockBoundWitnessHashes.has(payload._hash) || blockBoundWitnessHashes.has(payload._dataHash))
|
|
47
|
-
const blockTransactionBoundWitnesses = blockBoundWitnesses.filter(isTransactionBoundWitnessWithHashMeta)
|
|
48
|
-
const transaction = blockTransactionBoundWitnesses.at(transactionIndex)
|
|
49
|
-
if (!transaction) return null
|
|
50
|
-
return await this.byHash(transaction._hash)
|
|
51
|
-
} catch {
|
|
52
|
-
return null
|
|
53
|
-
}
|
|
54
|
-
}, this.context)
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
async byBlockNumberAndIndex(blockNumber: XL1BlockNumber, transactionIndex: number): Promise<SignedHydratedTransactionWithHashMeta | null> {
|
|
58
|
-
return await this.spanAsync('byBlockNumberAndIndex', async () => {
|
|
59
|
-
try {
|
|
60
|
-
const block = await this.blockViewer.blockByNumber(blockNumber)
|
|
61
|
-
if (!block) return null
|
|
62
|
-
return await this.byBlockHashAndIndex(block[0]._hash, transactionIndex)
|
|
63
|
-
} catch {
|
|
64
|
-
return null
|
|
65
|
-
}
|
|
66
|
-
}, this.context)
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
async byHash(transactionHash: Hash): Promise<SignedHydratedTransactionWithHashMeta | null> {
|
|
70
|
-
return await this.spanAsync('byHash', async () => {
|
|
71
|
-
try {
|
|
72
|
-
const transaction = asSignedTransactionBoundWitness(await this.blockViewer.payloadByHash(transactionHash))
|
|
73
|
-
if (transaction) {
|
|
74
|
-
const payloads = await this.blockViewer.payloadsByHash(transaction.payload_hashes)
|
|
75
|
-
return asSignedHydratedTransactionWithHashMeta([transaction, payloads]) ?? null
|
|
76
|
-
}
|
|
77
|
-
return null
|
|
78
|
-
} catch {
|
|
79
|
-
return null
|
|
80
|
-
}
|
|
81
|
-
}, this.context)
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
override async createHandler(): Promise<void> {
|
|
85
|
-
await super.createHandler()
|
|
86
|
-
this._blockViewer = await this.locator.getInstance<BlockViewer>(BlockViewerMoniker)
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
async transactionByBlockHashAndIndex(blockHash: Hash, transactionIndex: number = 0): Promise<SignedHydratedTransactionWithHashMeta | null> {
|
|
90
|
-
return await this.byBlockHashAndIndex(blockHash, transactionIndex)
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
async transactionByBlockNumberAndIndex(blockNumber: XL1BlockNumber, transactionIndex: number = 0): Promise<SignedHydratedTransactionWithHashMeta | null> {
|
|
94
|
-
return await this.byBlockNumberAndIndex(blockNumber, transactionIndex)
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
async transactionByHash(transactionHash: Hash): Promise<SignedHydratedTransactionWithHashMeta | null> {
|
|
98
|
-
return await this.byHash(transactionHash)
|
|
99
|
-
}
|
|
100
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from './SimpleTransactionViewer.ts'
|