@xyo-network/xl1-protocol-sdk 1.17.2 → 1.17.6
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/CreatableProvider/AbstractCreatableProvider.d.ts +6 -0
- package/dist/neutral/CreatableProvider/AbstractCreatableProvider.d.ts.map +1 -0
- package/dist/neutral/CreatableProvider/CreatableProvider.d.ts +42 -0
- package/dist/neutral/CreatableProvider/CreatableProvider.d.ts.map +1 -0
- package/dist/neutral/CreatableProvider/CreatableProviderRegistry.d.ts +12 -0
- package/dist/neutral/CreatableProvider/CreatableProviderRegistry.d.ts.map +1 -0
- package/dist/neutral/CreatableProvider/LabeledCreatableProviderFactory.d.ts +12 -0
- package/dist/neutral/CreatableProvider/LabeledCreatableProviderFactory.d.ts.map +1 -0
- package/dist/neutral/CreatableProvider/ProviderFactory.d.ts +14 -0
- package/dist/neutral/CreatableProvider/ProviderFactory.d.ts.map +1 -0
- package/dist/neutral/CreatableProvider/ProviderFactoryLocator.d.ts +48 -0
- package/dist/neutral/CreatableProvider/ProviderFactoryLocator.d.ts.map +1 -0
- package/dist/neutral/CreatableProvider/ProviderFactoryLocatorInstance.d.ts +39 -0
- package/dist/neutral/CreatableProvider/ProviderFactoryLocatorInstance.d.ts.map +1 -0
- package/dist/neutral/CreatableProvider/index.d.ts +8 -0
- package/dist/neutral/CreatableProvider/index.d.ts.map +1 -0
- package/dist/neutral/block/hydrate/flattenHydratedBlock.d.ts +3 -1
- package/dist/neutral/block/hydrate/flattenHydratedBlock.d.ts.map +1 -1
- package/dist/neutral/config/Bridge.d.ts +27 -0
- package/dist/neutral/config/Bridge.d.ts.map +1 -1
- package/dist/neutral/config/Config.d.ts +12 -0
- package/dist/neutral/config/Config.d.ts.map +1 -1
- package/dist/neutral/config/index.d.ts +1 -0
- package/dist/neutral/config/index.d.ts.map +1 -1
- package/dist/neutral/index.d.ts +1 -0
- package/dist/neutral/index.d.ts.map +1 -1
- package/dist/neutral/index.mjs +749 -212
- package/dist/neutral/index.mjs.map +1 -1
- package/dist/neutral/map/AsyncMap.d.ts +36 -0
- package/dist/neutral/map/AsyncMap.d.ts.map +1 -0
- package/dist/neutral/map/MapType.d.ts +8 -7
- package/dist/neutral/map/MapType.d.ts.map +1 -1
- package/dist/neutral/map/SyncMap.d.ts +35 -0
- package/dist/neutral/map/SyncMap.d.ts.map +1 -0
- package/dist/neutral/map/index.d.ts +2 -2
- package/dist/neutral/map/index.d.ts.map +1 -1
- package/dist/neutral/model/Provider.d.ts +8 -0
- package/dist/neutral/model/Provider.d.ts.map +1 -0
- package/dist/neutral/model/index.d.ts +1 -0
- package/dist/neutral/model/index.d.ts.map +1 -1
- package/dist/neutral/primitives/rewardFromBlockNumber.d.ts.map +1 -1
- package/dist/neutral/provider/DataLake.d.ts +5 -1
- package/dist/neutral/provider/DataLake.d.ts.map +1 -1
- package/dist/neutral/provider/viewer/NetworkStake/NetworkStakeViewer.d.ts +4 -1
- package/dist/neutral/provider/viewer/NetworkStake/NetworkStakeViewer.d.ts.map +1 -1
- package/dist/neutral/provider/viewer/NetworkStake/Rewards/ByPositionViewer.d.ts +4 -1
- package/dist/neutral/provider/viewer/NetworkStake/Rewards/ByPositionViewer.d.ts.map +1 -1
- package/dist/neutral/provider/viewer/NetworkStake/Rewards/ByStakerViewer.d.ts +4 -1
- package/dist/neutral/provider/viewer/NetworkStake/Rewards/ByStakerViewer.d.ts.map +1 -1
- package/dist/neutral/provider/viewer/NetworkStake/Rewards/ByStepViewer.d.ts +4 -1
- package/dist/neutral/provider/viewer/NetworkStake/Rewards/ByStepViewer.d.ts.map +1 -1
- package/dist/neutral/provider/viewer/NetworkStake/Rewards/TotalViewer.d.ts +4 -1
- package/dist/neutral/provider/viewer/NetworkStake/Rewards/TotalViewer.d.ts.map +1 -1
- package/dist/neutral/provider/viewer/NetworkStake/Rewards/Viewer.d.ts +4 -1
- package/dist/neutral/provider/viewer/NetworkStake/Rewards/Viewer.d.ts.map +1 -1
- package/dist/neutral/provider/viewer/XyoViewer.d.ts +6 -3
- package/dist/neutral/provider/viewer/XyoViewer.d.ts.map +1 -1
- package/dist/neutral/services/Chain/ChainService.d.ts +1 -1
- package/dist/neutral/services/Chain/ChainService.d.ts.map +1 -1
- package/dist/neutral/simple/accountBalance/SimpleAccountBalanceViewer.d.ts +11 -5
- package/dist/neutral/simple/accountBalance/SimpleAccountBalanceViewer.d.ts.map +1 -1
- package/dist/neutral/simple/block/SimpleBlockViewer.d.ts +12 -6
- package/dist/neutral/simple/block/SimpleBlockViewer.d.ts.map +1 -1
- package/dist/neutral/simple/blockReward/SimpleBlockRewardViewer.d.ts +7 -3
- package/dist/neutral/simple/blockReward/SimpleBlockRewardViewer.d.ts.map +1 -1
- package/dist/neutral/simple/chain/SimpleChainViewer.d.ts +6 -3
- package/dist/neutral/simple/chain/SimpleChainViewer.d.ts.map +1 -1
- package/dist/neutral/simple/chainStake/SimpleChainStakeViewer.d.ts +6 -3
- package/dist/neutral/simple/chainStake/SimpleChainStakeViewer.d.ts.map +1 -1
- package/dist/neutral/simple/chainStakeEvents/SimpleChainStakeEventsViewer.d.ts +6 -3
- package/dist/neutral/simple/chainStakeEvents/SimpleChainStakeEventsViewer.d.ts.map +1 -1
- package/dist/neutral/simple/datalake/AbstractSimpleDataLake.d.ts +18 -0
- package/dist/neutral/simple/datalake/AbstractSimpleDataLake.d.ts.map +1 -0
- package/dist/neutral/simple/datalake/SimpleDataLakeRunner.d.ts +8 -7
- package/dist/neutral/simple/datalake/SimpleDataLakeRunner.d.ts.map +1 -1
- package/dist/neutral/simple/datalake/SimpleDataLakeViewer.d.ts +7 -15
- package/dist/neutral/simple/datalake/SimpleDataLakeViewer.d.ts.map +1 -1
- package/dist/neutral/simple/mempool/SimpleMempoolViewer.d.ts +7 -4
- package/dist/neutral/simple/mempool/SimpleMempoolViewer.d.ts.map +1 -1
- package/dist/neutral/simple/timesync/SimpleTimeSyncViewer.d.ts +13 -5
- package/dist/neutral/simple/timesync/SimpleTimeSyncViewer.d.ts.map +1 -1
- package/dist/neutral/summary/primitives/balances/balancesSummary.d.ts.map +1 -1
- package/dist/neutral/summary/primitives/schemas/schemasSummary.d.ts.map +1 -1
- package/dist/neutral/summary/primitives/transfers/transfersSummary.d.ts.map +1 -1
- package/dist/neutral/transaction/hydrateTransaction.d.ts +2 -0
- package/dist/neutral/transaction/hydrateTransaction.d.ts.map +1 -1
- package/dist/neutral/viewers/AccountBalance.d.ts +4 -3
- package/dist/neutral/viewers/AccountBalance.d.ts.map +1 -1
- package/dist/neutral/viewers/Block.d.ts +4 -1
- package/dist/neutral/viewers/Block.d.ts.map +1 -1
- package/dist/neutral/viewers/BlockReward.d.ts +4 -1
- package/dist/neutral/viewers/BlockReward.d.ts.map +1 -1
- package/dist/neutral/viewers/Chain.d.ts +4 -1
- package/dist/neutral/viewers/Chain.d.ts.map +1 -1
- package/dist/neutral/viewers/ChainContract.d.ts +4 -1
- package/dist/neutral/viewers/ChainContract.d.ts.map +1 -1
- package/dist/neutral/viewers/ChainStakeViewer.d.ts +4 -1
- package/dist/neutral/viewers/ChainStakeViewer.d.ts.map +1 -1
- package/dist/neutral/viewers/Mempool.d.ts +4 -1
- package/dist/neutral/viewers/Mempool.d.ts.map +1 -1
- package/dist/neutral/viewers/NetworkStakeStepReward.d.ts +6 -1
- package/dist/neutral/viewers/NetworkStakeStepReward.d.ts.map +1 -1
- package/dist/neutral/viewers/Stake.d.ts +7 -3
- package/dist/neutral/viewers/Stake.d.ts.map +1 -1
- package/dist/neutral/viewers/StakeEvents.d.ts +4 -1
- package/dist/neutral/viewers/StakeEvents.d.ts.map +1 -1
- package/dist/neutral/viewers/StakeIntent.d.ts +4 -2
- package/dist/neutral/viewers/StakeIntent.d.ts.map +1 -1
- package/dist/neutral/viewers/StakeTotals.d.ts +4 -1
- package/dist/neutral/viewers/StakeTotals.d.ts.map +1 -1
- package/dist/neutral/viewers/StepStake.d.ts +4 -1
- package/dist/neutral/viewers/StepStake.d.ts.map +1 -1
- package/dist/neutral/viewers/StepViewer.d.ts +4 -2
- package/dist/neutral/viewers/StepViewer.d.ts.map +1 -1
- package/dist/neutral/viewers/TimeSync.d.ts +4 -1
- package/dist/neutral/viewers/TimeSync.d.ts.map +1 -1
- package/dist/neutral/viewers/TransferBalance.d.ts +5 -2
- package/dist/neutral/viewers/TransferBalance.d.ts.map +1 -1
- package/package.json +8 -7
- package/src/CreatableProvider/AbstractCreatableProvider.ts +17 -0
- package/src/CreatableProvider/CreatableProvider.ts +68 -0
- package/src/CreatableProvider/CreatableProviderRegistry.ts +85 -0
- package/src/CreatableProvider/LabeledCreatableProviderFactory.ts +22 -0
- package/src/CreatableProvider/ProviderFactory.ts +59 -0
- package/src/CreatableProvider/ProviderFactoryLocator.ts +102 -0
- package/src/CreatableProvider/ProviderFactoryLocatorInstance.ts +47 -0
- package/src/CreatableProvider/index.ts +7 -0
- package/src/block/hydrate/flattenHydratedBlock.ts +19 -1
- package/src/config/Bridge.ts +101 -3
- package/src/config/index.ts +1 -0
- package/src/index.ts +1 -0
- package/src/map/AsyncMap.ts +32 -0
- package/src/map/MapType.ts +13 -7
- package/src/map/SyncMap.ts +32 -0
- package/src/map/index.ts +2 -2
- package/src/model/Provider.ts +15 -0
- package/src/model/index.ts +1 -0
- package/src/payloads/netBalancesForPayloads.ts +1 -1
- package/src/payloads/netSchemasForPayloads.ts +1 -1
- package/src/payloads/netTransfersForPayloads.ts +1 -1
- package/src/primitives/rewardFromBlockNumber.ts +3 -3
- package/src/provider/DataLake.ts +7 -1
- package/src/provider/viewer/NetworkStake/NetworkStakeViewer.ts +5 -1
- package/src/provider/viewer/NetworkStake/Rewards/ByPositionViewer.ts +6 -1
- package/src/provider/viewer/NetworkStake/Rewards/ByStakerViewer.ts +7 -1
- package/src/provider/viewer/NetworkStake/Rewards/ByStepViewer.ts +6 -1
- package/src/provider/viewer/NetworkStake/Rewards/TotalViewer.ts +6 -1
- package/src/provider/viewer/NetworkStake/Rewards/Viewer.ts +5 -1
- package/src/provider/viewer/XyoViewer.ts +9 -5
- package/src/services/Chain/ChainService.ts +1 -1
- package/src/simple/accountBalance/SimpleAccountBalanceViewer.ts +15 -11
- package/src/simple/block/SimpleBlockViewer.ts +12 -6
- package/src/simple/blockReward/SimpleBlockRewardViewer.ts +12 -8
- package/src/simple/chain/SimpleChainViewer.ts +11 -8
- package/src/simple/chainStake/SimpleChainStakeViewer.ts +14 -8
- package/src/simple/chainStakeEvents/SimpleChainStakeEventsViewer.ts +12 -7
- package/src/simple/datalake/AbstractSimpleDataLake.ts +64 -0
- package/src/simple/datalake/SimpleDataLakeRunner.ts +14 -11
- package/src/simple/datalake/SimpleDataLakeViewer.ts +15 -48
- package/src/simple/mempool/SimpleMempoolViewer.ts +11 -7
- package/src/simple/timesync/SimpleTimeSyncViewer.ts +20 -7
- package/src/summary/primitives/balances/balancesSummary.ts +3 -2
- package/src/summary/primitives/schemas/schemasSummary.ts +1 -2
- package/src/summary/primitives/transfers/transfersSummary.ts +3 -2
- package/src/transaction/hydrateTransaction.ts +18 -1
- package/src/viewers/AccountBalance.ts +8 -2
- package/src/viewers/Block.ts +6 -1
- package/src/viewers/BlockReward.ts +6 -1
- package/src/viewers/Chain.ts +6 -1
- package/src/viewers/ChainContract.ts +6 -1
- package/src/viewers/ChainStakeViewer.ts +6 -1
- package/src/viewers/Mempool.ts +6 -1
- package/src/viewers/NetworkStakeStepReward.ts +8 -1
- package/src/viewers/Stake.ts +9 -3
- package/src/viewers/StakeEvents.ts +6 -1
- package/src/viewers/StakeIntent.ts +5 -2
- package/src/viewers/StakeTotals.ts +6 -1
- package/src/viewers/StepStake.ts +6 -1
- package/src/viewers/StepViewer.ts +5 -2
- package/src/viewers/TimeSync.ts +6 -1
- package/src/viewers/TransferBalance.ts +7 -2
- package/dist/neutral/map/AsynchronousMap.d.ts +0 -15
- package/dist/neutral/map/AsynchronousMap.d.ts.map +0 -1
- package/dist/neutral/map/SynchronousMap.d.ts +0 -14
- package/dist/neutral/map/SynchronousMap.d.ts.map +0 -1
- package/src/map/AsynchronousMap.ts +0 -16
- package/src/map/SynchronousMap.ts +0 -14
|
@@ -1,25 +1,31 @@
|
|
|
1
1
|
import {
|
|
2
2
|
type Address, asAddress, toAddress,
|
|
3
3
|
} from '@xylabs/sdk-js'
|
|
4
|
-
import {
|
|
5
|
-
AbstractCreatable, assertEx,
|
|
6
|
-
creatable, CreatableParams,
|
|
7
|
-
} from '@xylabs/sdk-js'
|
|
4
|
+
import { assertEx } from '@xylabs/sdk-js'
|
|
8
5
|
import { Account } from '@xyo-network/account'
|
|
9
6
|
|
|
7
|
+
import {
|
|
8
|
+
AbstractCreatableProvider, creatableProvider, CreatableProviderParams,
|
|
9
|
+
} from '../../CreatableProvider/index.ts'
|
|
10
10
|
import { PayloadMap, Position } from '../../model/index.ts'
|
|
11
|
-
import {
|
|
11
|
+
import {
|
|
12
|
+
StakeEventsViewer, StakeViewer, StakeViewerMoniker,
|
|
13
|
+
} from '../../viewers/index.ts'
|
|
12
14
|
import { SimpleChainStakeEventsViewer } from '../chainStakeEvents/index.ts'
|
|
13
15
|
|
|
14
|
-
export interface SimpleChainStakeParams extends
|
|
16
|
+
export interface SimpleChainStakeParams extends CreatableProviderParams {
|
|
15
17
|
chainId?: Address
|
|
16
18
|
chainMap: PayloadMap
|
|
17
19
|
minWithdrawalBlocks?: number
|
|
18
20
|
positions: Position[]
|
|
19
21
|
}
|
|
20
22
|
|
|
21
|
-
@
|
|
22
|
-
export class SimpleChainStakeViewer extends
|
|
23
|
+
@creatableProvider()
|
|
24
|
+
export class SimpleChainStakeViewer extends AbstractCreatableProvider<SimpleChainStakeParams> implements StakeViewer {
|
|
25
|
+
static readonly defaultMoniker = StakeViewerMoniker
|
|
26
|
+
static readonly monikers = [StakeViewerMoniker]
|
|
27
|
+
moniker = SimpleChainStakeViewer.defaultMoniker
|
|
28
|
+
|
|
23
29
|
private _chainId: Address | undefined
|
|
24
30
|
private _chainStakeEventsViewer: StakeEventsViewer | undefined
|
|
25
31
|
|
|
@@ -1,19 +1,24 @@
|
|
|
1
|
-
import {
|
|
2
|
-
AbstractCreatable,
|
|
3
|
-
creatable, CreatableParams, isDefined,
|
|
4
|
-
} from '@xylabs/sdk-js'
|
|
1
|
+
import { isDefined } from '@xylabs/sdk-js'
|
|
5
2
|
|
|
3
|
+
import {
|
|
4
|
+
AbstractCreatableProvider, creatableProvider, CreatableProviderParams,
|
|
5
|
+
} from '../../CreatableProvider/index.ts'
|
|
6
6
|
import { Position } from '../../model/index.ts'
|
|
7
7
|
import {
|
|
8
8
|
StakeEvent, StakeEventFilter, StakeEventName, StakeEventsViewer,
|
|
9
|
+
StakeEventsViewerMoniker,
|
|
9
10
|
} from '../../viewers/index.ts'
|
|
10
11
|
|
|
11
|
-
export interface SimpleChainStakeEventsParams extends
|
|
12
|
+
export interface SimpleChainStakeEventsParams extends CreatableProviderParams {
|
|
12
13
|
positions: Position[]
|
|
13
14
|
}
|
|
14
15
|
|
|
15
|
-
@
|
|
16
|
-
export class SimpleChainStakeEventsViewer extends
|
|
16
|
+
@creatableProvider()
|
|
17
|
+
export class SimpleChainStakeEventsViewer extends AbstractCreatableProvider<SimpleChainStakeEventsParams> implements StakeEventsViewer {
|
|
18
|
+
static readonly defaultMoniker = StakeEventsViewerMoniker
|
|
19
|
+
static readonly monikers = [StakeEventsViewerMoniker]
|
|
20
|
+
moniker = SimpleChainStakeEventsViewer.defaultMoniker
|
|
21
|
+
|
|
17
22
|
protected get positions() {
|
|
18
23
|
return this.params.positions
|
|
19
24
|
}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import type { Hash } from '@xylabs/sdk-js'
|
|
2
|
+
import { isAnyPayload, type Schema } from '@xyo-network/payload-model'
|
|
3
|
+
|
|
4
|
+
import { AbstractCreatableProvider, type CreatableProviderParams } from '../../CreatableProvider/index.ts'
|
|
5
|
+
import type { MapTypeRead, MapTypeWrite } from '../../map/index.ts'
|
|
6
|
+
import { type DataLakeData } from '../../provider/index.ts'
|
|
7
|
+
|
|
8
|
+
export interface AbstractSimpleDataLakeParams<TMap extends
|
|
9
|
+
MapTypeRead<Hash, DataLakeData> | MapTypeWrite<Hash, DataLakeData> = MapTypeRead<Hash, DataLakeData> | MapTypeWrite<Hash, DataLakeData>> extends
|
|
10
|
+
CreatableProviderParams {
|
|
11
|
+
|
|
12
|
+
allowedSchemas?: Schema[]
|
|
13
|
+
disallowedSchemas?: Schema[]
|
|
14
|
+
map: TMap
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export class AbstractSimpleDataLake<TParams extends AbstractSimpleDataLakeParams = AbstractSimpleDataLakeParams> extends AbstractCreatableProvider<TParams> {
|
|
18
|
+
get allowedSchemas(): Schema[] | undefined {
|
|
19
|
+
return this.params.allowedSchemas
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
get disallowedSchemas(): Schema[] | undefined {
|
|
23
|
+
return this.params.disallowedSchemas
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
protected get map(): TParams['map'] {
|
|
27
|
+
return this.params.map
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
// async get(hash: Hash): Promise<DataLakeData | undefined> {
|
|
31
|
+
// const result = await this.map.get(hash)
|
|
32
|
+
// return this.isAllowed(result) ? result : undefined
|
|
33
|
+
// }
|
|
34
|
+
|
|
35
|
+
// async getMany(hashes: Hash[]): Promise<DataLakeData[]> {
|
|
36
|
+
// const result = await this.map.getMany(hashes)
|
|
37
|
+
// return result.filter(data => this.isAllowed(data))
|
|
38
|
+
// }
|
|
39
|
+
|
|
40
|
+
// async has(hash: Hash): Promise<boolean> {
|
|
41
|
+
// const value = await this.get(hash)
|
|
42
|
+
// if (isAnyPayload(value)) {
|
|
43
|
+
// return this.isAllowed(value)
|
|
44
|
+
// }
|
|
45
|
+
// return value !== undefined
|
|
46
|
+
// }
|
|
47
|
+
|
|
48
|
+
protected isAllowed(value: DataLakeData | undefined): boolean {
|
|
49
|
+
if (isAnyPayload(value)) {
|
|
50
|
+
return this.isAllowedSchema(value.schema)
|
|
51
|
+
}
|
|
52
|
+
return true
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
protected isAllowedSchema(schema: Schema): boolean {
|
|
56
|
+
if (this.allowedSchemas && !this.allowedSchemas.includes(schema)) {
|
|
57
|
+
return false
|
|
58
|
+
}
|
|
59
|
+
if (this.disallowedSchemas && this.disallowedSchemas.includes(schema)) {
|
|
60
|
+
return false
|
|
61
|
+
}
|
|
62
|
+
return true
|
|
63
|
+
}
|
|
64
|
+
}
|
|
@@ -1,19 +1,22 @@
|
|
|
1
1
|
import type { Hash } from '@xylabs/sdk-js'
|
|
2
2
|
|
|
3
|
-
import
|
|
4
|
-
import type {
|
|
5
|
-
|
|
6
|
-
|
|
3
|
+
import { creatableProvider } from '../../CreatableProvider/index.ts'
|
|
4
|
+
import type { MapTypeWrite } from '../../map/index.ts'
|
|
5
|
+
import {
|
|
6
|
+
type DataLakeData,
|
|
7
|
+
type DataLakeRunner,
|
|
8
|
+
DataLakeRunnerMoniker,
|
|
7
9
|
} from '../../provider/index.ts'
|
|
8
|
-
import
|
|
9
|
-
import { SimpleDataLakeViewer } from './SimpleDataLakeViewer.ts'
|
|
10
|
+
import { AbstractSimpleDataLake, AbstractSimpleDataLakeParams } from './AbstractSimpleDataLake.ts'
|
|
10
11
|
|
|
11
|
-
export interface DataLakeRunnerParams extends
|
|
12
|
+
export interface DataLakeRunnerParams extends AbstractSimpleDataLakeParams<MapTypeWrite<Hash, DataLakeData>> {}
|
|
12
13
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
14
|
+
@creatableProvider()
|
|
15
|
+
export class SimpleDataLakeRunner<TParams extends DataLakeRunnerParams> extends
|
|
16
|
+
AbstractSimpleDataLake<TParams> implements DataLakeRunner {
|
|
17
|
+
static readonly defaultMoniker = DataLakeRunnerMoniker
|
|
18
|
+
static readonly monikers = [DataLakeRunnerMoniker]
|
|
19
|
+
moniker = SimpleDataLakeRunner.defaultMoniker
|
|
17
20
|
|
|
18
21
|
async clear(): Promise<void> {
|
|
19
22
|
await this.map.clear()
|
|
@@ -1,41 +1,25 @@
|
|
|
1
1
|
import type { Hash } from '@xylabs/sdk-js'
|
|
2
|
-
import { isAnyPayload
|
|
2
|
+
import { isAnyPayload } from '@xyo-network/payload-model'
|
|
3
3
|
|
|
4
|
+
import { creatableProvider } from '../../CreatableProvider/index.ts'
|
|
4
5
|
import type { MapTypeRead } from '../../map/index.ts'
|
|
5
|
-
import
|
|
6
|
-
DataLakeData,
|
|
7
|
-
DataLakeViewer,
|
|
6
|
+
import {
|
|
7
|
+
type DataLakeData,
|
|
8
|
+
type DataLakeViewer,
|
|
9
|
+
DataLakeViewerMoniker,
|
|
8
10
|
} from '../../provider/index.ts'
|
|
11
|
+
import { AbstractSimpleDataLake, AbstractSimpleDataLakeParams } from './AbstractSimpleDataLake.ts'
|
|
9
12
|
|
|
10
|
-
export interface DataLakeViewerParams<TMap extends MapTypeRead<Hash, DataLakeData> = MapTypeRead<Hash, DataLakeData>>
|
|
11
|
-
|
|
12
|
-
disallowedSchemas?: Schema[]
|
|
13
|
-
map: TMap
|
|
13
|
+
export interface DataLakeViewerParams<TMap extends MapTypeRead<Hash, DataLakeData> = MapTypeRead<Hash, DataLakeData>> extends
|
|
14
|
+
AbstractSimpleDataLakeParams<TMap> {
|
|
14
15
|
}
|
|
15
16
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
get allowedSchemas(): Schema[] | undefined {
|
|
25
|
-
return this._params.allowedSchemas
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
get disallowedSchemas(): Schema[] | undefined {
|
|
29
|
-
return this._params.disallowedSchemas
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
protected get map(): TMap {
|
|
33
|
-
return this._params.map
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
protected get params() {
|
|
37
|
-
return this._params
|
|
38
|
-
}
|
|
17
|
+
@creatableProvider()
|
|
18
|
+
export class SimpleDataLakeViewer<TParams extends DataLakeViewerParams = DataLakeViewerParams>
|
|
19
|
+
extends AbstractSimpleDataLake<TParams> implements DataLakeViewer {
|
|
20
|
+
static readonly defaultMoniker = DataLakeViewerMoniker
|
|
21
|
+
static readonly monikers = [DataLakeViewerMoniker]
|
|
22
|
+
moniker = SimpleDataLakeViewer.defaultMoniker
|
|
39
23
|
|
|
40
24
|
async get(hash: Hash): Promise<DataLakeData | undefined> {
|
|
41
25
|
const result = await this.map.get(hash)
|
|
@@ -54,21 +38,4 @@ export class SimpleDataLakeViewer<TMap extends MapTypeRead<Hash, DataLakeData> =
|
|
|
54
38
|
}
|
|
55
39
|
return value !== undefined
|
|
56
40
|
}
|
|
57
|
-
|
|
58
|
-
protected isAllowed(value: DataLakeData | undefined): boolean {
|
|
59
|
-
if (isAnyPayload(value)) {
|
|
60
|
-
return this.isAllowedSchema(value.schema)
|
|
61
|
-
}
|
|
62
|
-
return true
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
protected isAllowedSchema(schema: Schema): boolean {
|
|
66
|
-
if (this.allowedSchemas && !this.allowedSchemas.includes(schema)) {
|
|
67
|
-
return false
|
|
68
|
-
}
|
|
69
|
-
if (this.disallowedSchemas && this.disallowedSchemas.includes(schema)) {
|
|
70
|
-
return false
|
|
71
|
-
}
|
|
72
|
-
return true
|
|
73
|
-
}
|
|
74
41
|
}
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
import {
|
|
2
|
-
AbstractCreatable,
|
|
3
2
|
creatable,
|
|
4
|
-
CreatableParams,
|
|
5
3
|
exists, isDefined, isHash,
|
|
6
4
|
} from '@xylabs/sdk-js'
|
|
7
5
|
import type { ArchivistInstance } from '@xyo-network/archivist-model'
|
|
@@ -10,19 +8,25 @@ import {
|
|
|
10
8
|
} from '@xyo-network/payload-model'
|
|
11
9
|
import type { SignedHydratedBlockWithHashMeta, SignedHydratedTransactionWithHashMeta } from '@xyo-network/xl1-protocol'
|
|
12
10
|
|
|
11
|
+
import { AbstractCreatableProvider, CreatableProviderParams } from '../../CreatableProvider/index.ts'
|
|
13
12
|
import { bundledPayloadToHydratedBlock, bundledPayloadToHydratedTransaction } from '../../model/index.ts'
|
|
14
|
-
import
|
|
15
|
-
MempoolViewer,
|
|
16
|
-
|
|
13
|
+
import {
|
|
14
|
+
type MempoolViewer,
|
|
15
|
+
MempoolViewerMoniker,
|
|
16
|
+
type PendingTransactionsOptions,
|
|
17
17
|
} from '../../viewers/index.ts'
|
|
18
18
|
|
|
19
|
-
export interface SimpleMempoolViewerParams extends
|
|
19
|
+
export interface SimpleMempoolViewerParams extends CreatableProviderParams {
|
|
20
20
|
pendingBlocksArchivist: ArchivistInstance
|
|
21
21
|
pendingTransactionsArchivist: ArchivistInstance
|
|
22
22
|
}
|
|
23
23
|
|
|
24
24
|
@creatable()
|
|
25
|
-
export class SimpleMempoolViewer extends
|
|
25
|
+
export class SimpleMempoolViewer extends AbstractCreatableProvider<SimpleMempoolViewerParams> implements MempoolViewer {
|
|
26
|
+
static readonly defaultMoniker = MempoolViewerMoniker
|
|
27
|
+
static readonly monikers = [MempoolViewerMoniker]
|
|
28
|
+
moniker = SimpleMempoolViewer.defaultMoniker
|
|
29
|
+
|
|
26
30
|
protected get pendingBlocksArchivist() {
|
|
27
31
|
return this.params.pendingBlocksArchivist
|
|
28
32
|
}
|
|
@@ -8,15 +8,28 @@ import {
|
|
|
8
8
|
} from '@xyo-network/xl1-protocol'
|
|
9
9
|
import type { Provider } from 'ethers'
|
|
10
10
|
|
|
11
|
-
import type {
|
|
11
|
+
import type { CreatableProviderParams } from '../../CreatableProvider/index.ts'
|
|
12
|
+
import { AbstractCreatableProvider } from '../../CreatableProvider/index.ts'
|
|
13
|
+
import {
|
|
14
|
+
type BlockViewer, type TimeSyncViewer, TimeSyncViewerMoniker,
|
|
15
|
+
} from '../../viewers/index.ts'
|
|
16
|
+
|
|
17
|
+
export interface SimpleTimeSyncViewerParams extends CreatableProviderParams {
|
|
18
|
+
blockViewer: BlockViewer
|
|
19
|
+
ethProvider?: Provider
|
|
20
|
+
}
|
|
12
21
|
|
|
13
|
-
export class SimpleTimeSyncViewer implements TimeSyncViewer {
|
|
14
|
-
|
|
15
|
-
|
|
22
|
+
export class SimpleTimeSyncViewer extends AbstractCreatableProvider<SimpleTimeSyncViewerParams> implements TimeSyncViewer {
|
|
23
|
+
static readonly defaultMoniker = TimeSyncViewerMoniker
|
|
24
|
+
static readonly monikers = [TimeSyncViewerMoniker]
|
|
25
|
+
moniker = SimpleTimeSyncViewer.defaultMoniker
|
|
26
|
+
|
|
27
|
+
protected get blockViewer() {
|
|
28
|
+
return this.params.blockViewer
|
|
29
|
+
}
|
|
16
30
|
|
|
17
|
-
|
|
18
|
-
this.
|
|
19
|
-
this.ethProvider = ethProvider
|
|
31
|
+
protected get ethProvider() {
|
|
32
|
+
return this.params.ethProvider
|
|
20
33
|
}
|
|
21
34
|
|
|
22
35
|
async convertTime(fromDomain: TimeDomain, toDomain: TimeDomain, from: number): Promise<number> {
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { Address } from '@xylabs/sdk-js'
|
|
2
|
-
import {
|
|
3
|
-
|
|
2
|
+
import {
|
|
3
|
+
asAddress, isDefined, spanRootAsync,
|
|
4
|
+
} from '@xylabs/sdk-js'
|
|
4
5
|
import {
|
|
5
6
|
asBlockBoundWitnessWithStorageMeta, asXL1BlockNumber, asXL1BlockRange,
|
|
6
7
|
} from '@xyo-network/xl1-protocol'
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { isDefined } from '@xylabs/sdk-js'
|
|
2
|
-
import { spanRootAsync } from '@xylabs/telemetry'
|
|
1
|
+
import { isDefined, spanRootAsync } from '@xylabs/sdk-js'
|
|
3
2
|
import type { Schema } from '@xyo-network/payload-model'
|
|
4
3
|
import {
|
|
5
4
|
asBlockBoundWitnessWithStorageMeta, asXL1BlockNumber, asXL1BlockRange,
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { Address, Hash } from '@xylabs/sdk-js'
|
|
2
|
-
import {
|
|
3
|
-
|
|
2
|
+
import {
|
|
3
|
+
asAddress, isDefined, spanRootAsync,
|
|
4
|
+
} from '@xylabs/sdk-js'
|
|
4
5
|
import {
|
|
5
6
|
asBlockBoundWitnessWithStorageMeta, asXL1BlockNumber, asXL1BlockRange,
|
|
6
7
|
} from '@xyo-network/xl1-protocol'
|
|
@@ -6,7 +6,9 @@ import type {
|
|
|
6
6
|
AllowedBlockPayload, SignedHydratedTransaction,
|
|
7
7
|
SignedHydratedTransactionWithStorageMeta, TransactionBoundWitness,
|
|
8
8
|
} from '@xyo-network/xl1-protocol'
|
|
9
|
-
import {
|
|
9
|
+
import {
|
|
10
|
+
asSignedHydratedBlock, asSignedHydratedTransaction, isAllowedBlockPayload, isSignedTransactionBoundWitnessWithStorageMeta,
|
|
11
|
+
} from '@xyo-network/xl1-protocol'
|
|
10
12
|
|
|
11
13
|
import type { ChainStoreRead } from '../model/index.ts'
|
|
12
14
|
|
|
@@ -51,6 +53,21 @@ export const flattenHydratedTransaction = (hydratedTransaction: SignedHydratedTr
|
|
|
51
53
|
return [...txPayloads, tx]
|
|
52
54
|
}
|
|
53
55
|
|
|
56
|
+
export const tryUnflattenHydratedTransaction = (
|
|
57
|
+
flattened: Payload[],
|
|
58
|
+
): SignedHydratedTransaction | undefined => {
|
|
59
|
+
// Last element is always the transaction bound witness
|
|
60
|
+
const tx = flattened.at(-1)
|
|
61
|
+
|
|
62
|
+
// Everything else is a payloads
|
|
63
|
+
const txPayloads = flattened.slice(0, -1)
|
|
64
|
+
|
|
65
|
+
return asSignedHydratedTransaction([tx, txPayloads])
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
export const unflattenHydratedTransaction = (flattened: Payload[]): SignedHydratedTransaction =>
|
|
69
|
+
asSignedHydratedTransaction(tryUnflattenHydratedTransaction(flattened), true)
|
|
70
|
+
|
|
54
71
|
export const flattenHydratedTransactions = (hydratedTransactions: SignedHydratedTransaction[]): Payload[] =>
|
|
55
72
|
hydratedTransactions.flatMap(tx => flattenHydratedTransaction(tx))
|
|
56
73
|
|
|
@@ -10,7 +10,10 @@ import {
|
|
|
10
10
|
import { BlockBoundWitnessZod, TransactionBoundWitnessZod } from '@xyo-network/xl1-protocol'
|
|
11
11
|
import z from 'zod'
|
|
12
12
|
|
|
13
|
-
import type {
|
|
13
|
+
import type {
|
|
14
|
+
Provider,
|
|
15
|
+
Qualified,
|
|
16
|
+
} from '../model/index.ts'
|
|
14
17
|
|
|
15
18
|
export const AccountBalanceHistoryItemZod = z.tuple([
|
|
16
19
|
WithHashMetaZod(BlockBoundWitnessZod),
|
|
@@ -28,9 +31,12 @@ export interface AccountBalanceViewerMethods {
|
|
|
28
31
|
qualifiedAccountBalances(address: Address[], headOrRange?: Hash | XL1BlockRange): Promisable<Qualified<Record<Address, AttoXL1>>>
|
|
29
32
|
}
|
|
30
33
|
|
|
31
|
-
export interface AccountBalanceViewer extends AccountBalanceViewerMethods {
|
|
34
|
+
export interface AccountBalanceViewer extends AccountBalanceViewerMethods, Provider<AccountBalanceViewerMoniker> {
|
|
32
35
|
accountBalance(address: Address, headOrRange?: Hash | XL1BlockRange): Promisable<AttoXL1>
|
|
33
36
|
accountBalanceHistories(address: Address[], headOrRange?: Hash | XL1BlockRange): Promisable<Record<Address, AccountBalanceHistoryItem[]>>
|
|
34
37
|
accountBalanceHistory(address: Address, headOrRange?: Hash | XL1BlockRange): Promisable<AccountBalanceHistoryItem[]>
|
|
35
38
|
accountBalances(address: Address[], headOrRange?: Hash | XL1BlockRange): Promisable<Record<Address, AttoXL1>>
|
|
36
39
|
}
|
|
40
|
+
|
|
41
|
+
export const AccountBalanceViewerMoniker = 'AccountBalanceViewer' as const
|
|
42
|
+
export type AccountBalanceViewerMoniker = typeof AccountBalanceViewerMoniker
|
package/src/viewers/Block.ts
CHANGED
|
@@ -2,6 +2,8 @@ import type { Hash, Promisable } from '@xylabs/sdk-js'
|
|
|
2
2
|
import type { Payload, WithHashMeta } from '@xyo-network/payload-model'
|
|
3
3
|
import type { SignedHydratedBlockWithHashMeta, XL1BlockNumber } from '@xyo-network/xl1-protocol'
|
|
4
4
|
|
|
5
|
+
import type { Provider } from '../model/index.ts'
|
|
6
|
+
|
|
5
7
|
export interface BlockViewerMethods {
|
|
6
8
|
blocksByHash(hash: Hash, limit?: number): Promisable<SignedHydratedBlockWithHashMeta[]>
|
|
7
9
|
blocksByNumber(block: XL1BlockNumber, limit?: number): Promisable<SignedHydratedBlockWithHashMeta[]>
|
|
@@ -9,7 +11,10 @@ export interface BlockViewerMethods {
|
|
|
9
11
|
payloadsByHash(hashes: Hash[]): Promisable<WithHashMeta<Payload>[]>
|
|
10
12
|
}
|
|
11
13
|
|
|
12
|
-
export
|
|
14
|
+
export const BlockViewerMoniker = 'BlockViewer' as const
|
|
15
|
+
export type BlockViewerMoniker = typeof BlockViewerMoniker
|
|
16
|
+
|
|
17
|
+
export interface BlockViewer extends BlockViewerMethods, Provider<BlockViewerMoniker> {
|
|
13
18
|
blockByHash(hash: Hash): Promisable<SignedHydratedBlockWithHashMeta | null>
|
|
14
19
|
blockByNumber(block: XL1BlockNumber): Promisable<SignedHydratedBlockWithHashMeta | null>
|
|
15
20
|
currentBlockHash(): Promisable<Hash>
|
|
@@ -1,9 +1,14 @@
|
|
|
1
1
|
import type { Promisable } from '@xylabs/sdk-js'
|
|
2
2
|
import type { AttoXL1, XL1BlockNumber } from '@xyo-network/xl1-protocol'
|
|
3
3
|
|
|
4
|
+
import type { Provider } from '../model/index.ts'
|
|
5
|
+
|
|
4
6
|
export interface BlockRewardViewerMethods {
|
|
5
7
|
// The amount of xl1 to send to the producer from the block reward
|
|
6
8
|
allowedRewardForBlock(block: XL1BlockNumber): Promisable<AttoXL1>
|
|
7
9
|
}
|
|
8
10
|
|
|
9
|
-
export
|
|
11
|
+
export const BlockRewardViewerMoniker = 'BlockRewardViewer' as const
|
|
12
|
+
export type BlockRewardViewerMoniker = typeof BlockRewardViewerMoniker
|
|
13
|
+
|
|
14
|
+
export interface BlockRewardViewer extends BlockRewardViewerMethods, Provider<BlockRewardViewerMoniker> {}
|
package/src/viewers/Chain.ts
CHANGED
|
@@ -1,8 +1,13 @@
|
|
|
1
1
|
import type { Promisable } from '@xylabs/sdk-js'
|
|
2
2
|
import type { ChainId } from '@xyo-network/xl1-protocol'
|
|
3
3
|
|
|
4
|
+
import type { Provider } from '../model/index.ts'
|
|
5
|
+
|
|
4
6
|
export interface ChainViewerMethods {
|
|
5
7
|
chainId(): Promisable<ChainId>
|
|
6
8
|
}
|
|
7
9
|
|
|
8
|
-
export
|
|
10
|
+
export const ChainViewerMoniker = 'ChainViewer' as const
|
|
11
|
+
export type ChainViewerMoniker = typeof ChainViewerMoniker
|
|
12
|
+
|
|
13
|
+
export interface ChainViewer extends ChainViewerMethods, Provider<ChainViewerMoniker> {}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import type { Address } from '@xylabs/sdk-js'
|
|
2
2
|
|
|
3
|
+
import type { Provider } from '../model/index.ts'
|
|
4
|
+
|
|
3
5
|
export interface ChainContractViewerMethods {
|
|
4
6
|
forkedAtBlockNumber(): Promise<bigint>
|
|
5
7
|
forkedAtHash(): Promise<bigint>
|
|
@@ -9,4 +11,7 @@ export interface ChainContractViewerMethods {
|
|
|
9
11
|
stakingTokenAddress(): Promise<string>
|
|
10
12
|
}
|
|
11
13
|
|
|
12
|
-
export
|
|
14
|
+
export const ChainContractViewerMoniker = 'ChainContractViewer' as const
|
|
15
|
+
export type ChainContractViewerMoniker = typeof ChainContractViewerMoniker
|
|
16
|
+
|
|
17
|
+
export interface ChainContractViewer extends ChainContractViewerMethods, Provider<ChainContractViewerMoniker> {}
|
|
@@ -1,7 +1,12 @@
|
|
|
1
|
+
import type { Provider } from '../model/index.ts'
|
|
1
2
|
import type { ChainViewer } from './Chain.ts'
|
|
2
3
|
import type { ChainContractViewer } from './ChainContract.ts'
|
|
3
4
|
import type { StakeTotalsViewer } from './StakeTotals.ts'
|
|
4
5
|
|
|
5
|
-
export
|
|
6
|
+
export const ChainStakeViewerMoniker = 'ChainStakeViewer' as const
|
|
7
|
+
export type ChainStakeViewerMoniker = typeof ChainStakeViewerMoniker
|
|
8
|
+
|
|
9
|
+
export interface ChainStakeViewer extends Omit<ChainContractViewer, 'moniker'>, Omit<StakeTotalsViewer, 'moniker'>,
|
|
10
|
+
Omit<ChainViewer, 'moniker'>, Provider<ChainStakeViewerMoniker> {
|
|
6
11
|
|
|
7
12
|
}
|
package/src/viewers/Mempool.ts
CHANGED
|
@@ -3,6 +3,8 @@ import type { SignedHydratedBlockWithHashMeta, SignedHydratedTransactionWithHash
|
|
|
3
3
|
import { XL1BlockRangeZod } from '@xyo-network/xl1-protocol'
|
|
4
4
|
import z from 'zod'
|
|
5
5
|
|
|
6
|
+
import type { Provider } from '../model/index.ts'
|
|
7
|
+
|
|
6
8
|
export const PendingTransactionsOptionsZod = z.object({
|
|
7
9
|
cursor: HashZod.optional(),
|
|
8
10
|
limit: z.number().int().positive().optional(),
|
|
@@ -24,4 +26,7 @@ export interface MempoolViewerMethods {
|
|
|
24
26
|
pendingTransactions(options?: PendingTransactionsOptions): Promise<SignedHydratedTransactionWithHashMeta[]>
|
|
25
27
|
}
|
|
26
28
|
|
|
27
|
-
export
|
|
29
|
+
export const MempoolViewerMoniker = 'MempoolViewer' as const
|
|
30
|
+
export type MempoolViewerMoniker = typeof MempoolViewerMoniker
|
|
31
|
+
|
|
32
|
+
export interface MempoolViewer extends MempoolViewerMethods, Provider<MempoolViewerMoniker> {}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import type { Address, Promisable } from '@xylabs/sdk-js'
|
|
2
2
|
import type { StepIdentity, StepIdentityString } from '@xyo-network/xl1-protocol'
|
|
3
3
|
|
|
4
|
+
import type { Provider } from '../model/index.ts'
|
|
5
|
+
|
|
4
6
|
export interface NetworkStakeStepAddressRewardViewerMethods {
|
|
5
7
|
// the step rewards for a specific network stakers for all of history
|
|
6
8
|
networkStakeStepRewardAddressHistory(address: Address): Promisable<Record<Address, bigint>>
|
|
@@ -32,7 +34,7 @@ export interface NetworkStakeStepRewardPositionViewerMethods {
|
|
|
32
34
|
networkStakeStepRewardPotentialPositionLoss(context: StepIdentity, position: number): Promisable<bigint>
|
|
33
35
|
}
|
|
34
36
|
|
|
35
|
-
export interface
|
|
37
|
+
export interface NetworkStakeStepRewardViewerMethods extends
|
|
36
38
|
NetworkStakeStepPoolRewardViewerMethods,
|
|
37
39
|
NetworkStakeStepAddressRewardViewerMethods,
|
|
38
40
|
NetworkStakeStepRewardPositionViewerMethods
|
|
@@ -66,3 +68,8 @@ export interface NetworkStakeStepRewardViewer extends
|
|
|
66
68
|
// the total rewards for a given range and step level
|
|
67
69
|
networkStakeStepRewardsForStepLevel(stepLevel: number, range: [number, number]): Promisable<bigint>
|
|
68
70
|
}
|
|
71
|
+
|
|
72
|
+
export const NetworkStakeStepRewardViewerMoniker = 'NetworkStakeStepRewardViewer' as const
|
|
73
|
+
export type NetworkStakeStepRewardViewerMoniker = typeof NetworkStakeStepRewardViewerMoniker
|
|
74
|
+
|
|
75
|
+
export interface NetworkStakeStepRewardViewer extends NetworkStakeStepRewardViewerMethods, Provider<NetworkStakeStepRewardViewerMoniker> {}
|
package/src/viewers/Stake.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { Address, Promisable } from '@xylabs/sdk-js'
|
|
2
2
|
|
|
3
|
-
import type { Position } from '../model/index.ts'
|
|
3
|
+
import type { Position, Provider } from '../model/index.ts'
|
|
4
4
|
import type { StakeEventsViewer } from './StakeEvents.ts'
|
|
5
5
|
|
|
6
6
|
export interface StakeViewerProperties {
|
|
@@ -18,7 +18,10 @@ export interface StakeViewerMethods {
|
|
|
18
18
|
stakesByStaker(staker: Address): Promisable<Position[]>
|
|
19
19
|
}
|
|
20
20
|
|
|
21
|
-
export
|
|
21
|
+
export const StakeViewerMoniker = 'StakeViewer' as const
|
|
22
|
+
export type StakeViewerMoniker = typeof StakeViewerMoniker
|
|
23
|
+
|
|
24
|
+
export interface StakeViewer extends StakeViewerMethods, StakeViewerProperties, Provider<StakeViewerMoniker> {
|
|
22
25
|
active(time?: number): Promisable<bigint>
|
|
23
26
|
activeByAddressStaked(address: string, time?: number): Promisable<bigint>
|
|
24
27
|
activeByStaker(address: string, time?: number): Promisable<bigint>
|
|
@@ -28,7 +31,10 @@ export interface StakeViewer extends StakeViewerMethods, StakeViewerProperties {
|
|
|
28
31
|
withdrawnByStaker(staker: string, time?: number): Promisable<bigint>
|
|
29
32
|
}
|
|
30
33
|
|
|
31
|
-
export
|
|
34
|
+
export const StakeRunnerMoniker = 'StakeRunner' as const
|
|
35
|
+
export type StakeRunnerMoniker = typeof StakeRunnerMoniker
|
|
36
|
+
|
|
37
|
+
export interface StakeRunner extends Provider<StakeRunnerMoniker> {
|
|
32
38
|
addStake(staked: string, amount: bigint): Promise<boolean>
|
|
33
39
|
removeStake(slot: bigint): Promise<boolean>
|
|
34
40
|
withdrawStake(slot: bigint): Promise<boolean>
|
|
@@ -2,6 +2,8 @@ import type {
|
|
|
2
2
|
Address, JsonObject, Promisable,
|
|
3
3
|
} from '@xylabs/sdk-js'
|
|
4
4
|
|
|
5
|
+
import type { Provider } from '../model/index.ts'
|
|
6
|
+
|
|
5
7
|
export const StakeEventNames = ['StakeAdded', 'StakeRemoved', 'StakeWithdrawn'] as const
|
|
6
8
|
export type StakeEventName = typeof StakeEventNames[number]
|
|
7
9
|
|
|
@@ -33,7 +35,10 @@ export interface StakeEvent<TName extends StakeEventName = StakeEventName> exten
|
|
|
33
35
|
args: StakeEventArgs
|
|
34
36
|
}
|
|
35
37
|
|
|
36
|
-
export
|
|
38
|
+
export const StakeEventsViewerMoniker = 'StakeEventsViewer' as const
|
|
39
|
+
export type StakeEventsViewerMoniker = typeof StakeEventsViewerMoniker
|
|
40
|
+
|
|
41
|
+
export interface StakeEventsViewer extends Provider<StakeEventsViewerMoniker> {
|
|
37
42
|
positionCount(range: [number, number | 'latest']): Promisable<number>
|
|
38
43
|
stakeEvents<TName extends StakeEventName>(range: [number, number | 'latest'], filter?: StakeEventFilter<TName>): Promisable<StakeEvent<TName>[]>
|
|
39
44
|
}
|
|
@@ -3,12 +3,15 @@ import type {
|
|
|
3
3
|
} from '@xylabs/sdk-js'
|
|
4
4
|
import type { ChainStakeIntent, XL1BlockRange } from '@xyo-network/xl1-protocol'
|
|
5
5
|
|
|
6
|
-
import type { Qualified } from '../model/index.ts'
|
|
6
|
+
import type { Provider, Qualified } from '../model/index.ts'
|
|
7
7
|
|
|
8
8
|
export interface StakeIntentViewerMethods {
|
|
9
9
|
qualifiedIntentByAddress(address: Address, headOrRange?: Hash | XL1BlockRange): Promisable<Qualified<ChainStakeIntent | null>>
|
|
10
10
|
}
|
|
11
11
|
|
|
12
|
-
export
|
|
12
|
+
export const StakeIntentViewerMoniker = 'StakeIntentViewer' as const
|
|
13
|
+
export type StakeIntentViewerMoniker = typeof StakeIntentViewerMoniker
|
|
14
|
+
|
|
15
|
+
export interface StakeIntentViewer extends StakeIntentViewerMethods, Provider<StakeIntentViewerMoniker> {
|
|
13
16
|
intentByAddress(address: Address, headOrRange?: Hash | XL1BlockRange): Promisable<ChainStakeIntent | null>
|
|
14
17
|
}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import type { Address, Promisable } from '@xylabs/sdk-js'
|
|
2
2
|
|
|
3
|
+
import type { Provider } from '../model/index.ts'
|
|
4
|
+
|
|
3
5
|
export interface StakeTotalsViewerMethods {
|
|
4
6
|
active(): Promisable<bigint>
|
|
5
7
|
activeByStaked(staked: Address): Promisable<bigint>
|
|
@@ -10,4 +12,7 @@ export interface StakeTotalsViewerMethods {
|
|
|
10
12
|
withdrawnByStaker(staker: Address): Promisable<bigint>
|
|
11
13
|
}
|
|
12
14
|
|
|
13
|
-
export
|
|
15
|
+
export const StakeTotalsViewerMoniker = 'StakeTotalsViewer' as const
|
|
16
|
+
export type StakeTotalsViewerMoniker = typeof StakeTotalsViewerMoniker
|
|
17
|
+
|
|
18
|
+
export interface StakeTotalsViewer extends StakeTotalsViewerMethods, Provider<StakeTotalsViewerMoniker> {}
|