@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
package/src/config/Bridge.ts
CHANGED
|
@@ -1,26 +1,124 @@
|
|
|
1
|
+
import {
|
|
2
|
+
AddressZod, HexZod, toAddress, toHex,
|
|
3
|
+
} from '@xylabs/hex'
|
|
4
|
+
import type { ChainId } from '@xyo-network/xl1-protocol'
|
|
5
|
+
import { AttoXL1ConvertFactor, XL1 } from '@xyo-network/xl1-protocol'
|
|
1
6
|
import { globalRegistry } from 'zod'
|
|
2
7
|
import * as z from 'zod'
|
|
3
8
|
|
|
4
9
|
import { MnemonicStringZod } from '../validation/index.ts'
|
|
5
10
|
|
|
11
|
+
const DEFAULT_FIXED_FEE = toHex(XL1(1n) * AttoXL1ConvertFactor.xl1)
|
|
12
|
+
const DEFAULT_MIN_BRIDGE_AMOUNT = toHex(XL1(10n) * AttoXL1ConvertFactor.xl1)
|
|
13
|
+
const DEFAULT_MAX_BRIDGE_AMOUNT = toHex(XL1(100_000n) * AttoXL1ConvertFactor.xl1)
|
|
14
|
+
const DEFAULT_HARDHAT_CHAIN_ID: ChainId = toHex('7A69')
|
|
15
|
+
const DEFAULT_HARDHAT_TOKEN_CONTRACT = toAddress('5FbDB2315678afecb367f032d93F642f64180aa3')
|
|
16
|
+
const DEFAULT_HARDHAT_BRIDGE_CONTRACT = toAddress('2279B7A0a67DB372996a5FaB50D91eAA73d2eBe6')
|
|
17
|
+
|
|
18
|
+
export const BasisPointsZod = z.coerce.number().int().nonnegative().max(10_000)
|
|
19
|
+
export type BasisPoints = z.infer<typeof BasisPointsZod>
|
|
20
|
+
|
|
6
21
|
export const BridgeConfigZod = z.object({
|
|
22
|
+
chainRpcApiUrl: z.string().default('http://localhost:8080/rpc').register(globalRegistry, {
|
|
23
|
+
default: 'http://localhost:8080/rpc',
|
|
24
|
+
description: 'URL for the Chain RPC API',
|
|
25
|
+
title: 'bridge.chainRpcApiUrl',
|
|
26
|
+
type: 'string',
|
|
27
|
+
}),
|
|
28
|
+
escrowAddress: AddressZod.optional().register(globalRegistry, {
|
|
29
|
+
description: 'Address to which bridge escrow will be sent',
|
|
30
|
+
title: 'bridge.escrowAddress',
|
|
31
|
+
type: 'string',
|
|
32
|
+
}),
|
|
33
|
+
feesAddress: AddressZod.optional().register(globalRegistry, {
|
|
34
|
+
description: 'Address to which bridge fees will be sent',
|
|
35
|
+
title: 'bridge.feesAddress',
|
|
36
|
+
type: 'string',
|
|
37
|
+
}),
|
|
38
|
+
feeFixed: HexZod.default(DEFAULT_FIXED_FEE).register(globalRegistry, {
|
|
39
|
+
default: DEFAULT_FIXED_FEE,
|
|
40
|
+
description: 'Fixed fee (in AttoXL1) applied to bridge transfers',
|
|
41
|
+
title: 'bridge.feeFixed',
|
|
42
|
+
type: 'bigint',
|
|
43
|
+
}),
|
|
44
|
+
feeRateBasisPoints: BasisPointsZod.default(500).register(globalRegistry, {
|
|
45
|
+
default: 500,
|
|
46
|
+
description: 'Variable rate fee (in basis points where 1 bps = 0.01%) applied to bridge transfers',
|
|
47
|
+
title: 'bridge.feeRateBasisPoints',
|
|
48
|
+
type: 'number',
|
|
49
|
+
}),
|
|
7
50
|
host: z.string().default('localhost').register(globalRegistry, {
|
|
8
51
|
default: 'localhost',
|
|
9
52
|
description: 'Host for the Bridge',
|
|
10
|
-
title: '
|
|
53
|
+
title: 'bridge.host',
|
|
54
|
+
type: 'string',
|
|
55
|
+
}),
|
|
56
|
+
maxBridgeAmount: HexZod.default(DEFAULT_MAX_BRIDGE_AMOUNT).register(globalRegistry, {
|
|
57
|
+
default: DEFAULT_MAX_BRIDGE_AMOUNT,
|
|
58
|
+
description: 'Maximum amount allowed for a bridge transfer',
|
|
59
|
+
title: 'bridge.maxBridgeAmount',
|
|
60
|
+
type: 'string',
|
|
61
|
+
}),
|
|
62
|
+
minBridgeAmount: HexZod.default(DEFAULT_MIN_BRIDGE_AMOUNT).register(globalRegistry, {
|
|
63
|
+
default: DEFAULT_MIN_BRIDGE_AMOUNT,
|
|
64
|
+
description: 'Minimum amount required for a bridge transfer',
|
|
65
|
+
title: 'bridge.minBridgeAmount',
|
|
11
66
|
type: 'string',
|
|
12
67
|
}),
|
|
13
68
|
mnemonic: MnemonicStringZod.optional().register(globalRegistry, {
|
|
14
69
|
description: 'Mnemonic for the Bridge wallet',
|
|
15
|
-
title: '
|
|
70
|
+
title: 'bridge.mnemonic',
|
|
16
71
|
type: 'string',
|
|
17
72
|
}),
|
|
18
73
|
port: z.coerce.number().default(8081).register(globalRegistry, {
|
|
19
74
|
default: 8081,
|
|
20
75
|
description: 'Port for the Bridge',
|
|
21
|
-
title: '
|
|
76
|
+
title: 'bridge.port',
|
|
22
77
|
type: 'number',
|
|
23
78
|
}),
|
|
79
|
+
remoteBridgeContractAddress: AddressZod.default(DEFAULT_HARDHAT_BRIDGE_CONTRACT).register(globalRegistry, {
|
|
80
|
+
default: DEFAULT_HARDHAT_BRIDGE_CONTRACT,
|
|
81
|
+
description: 'Hex representation of remote token address used for bridging',
|
|
82
|
+
title: 'bridge.remoteBridgeContractAddress',
|
|
83
|
+
type: 'string',
|
|
84
|
+
}),
|
|
85
|
+
remoteChainId: HexZod.default(DEFAULT_HARDHAT_CHAIN_ID).register(globalRegistry, {
|
|
86
|
+
default: DEFAULT_HARDHAT_CHAIN_ID,
|
|
87
|
+
description: 'Remote chain ID',
|
|
88
|
+
title: 'bridge.remoteChainId',
|
|
89
|
+
type: 'string',
|
|
90
|
+
}),
|
|
91
|
+
remoteTokenAddress: HexZod.default(DEFAULT_HARDHAT_TOKEN_CONTRACT).register(globalRegistry, {
|
|
92
|
+
default: DEFAULT_HARDHAT_TOKEN_CONTRACT,
|
|
93
|
+
description: 'Hex representation of remote token address used for bridging',
|
|
94
|
+
title: 'bridge.remoteTokenAddress',
|
|
95
|
+
type: 'string',
|
|
96
|
+
}),
|
|
97
|
+
xl1ChainId: HexZod.optional().register(globalRegistry, {
|
|
98
|
+
description: 'XL1 chain id used for bridging',
|
|
99
|
+
title: 'bridge.xl1ChainId',
|
|
100
|
+
type: 'string',
|
|
101
|
+
}),
|
|
102
|
+
xl1TokenAddress: HexZod.optional().register(globalRegistry, {
|
|
103
|
+
description: 'XL1 token address used for bridging',
|
|
104
|
+
title: 'bridge.xl1TokenAddress',
|
|
105
|
+
type: 'string',
|
|
106
|
+
}),
|
|
24
107
|
})
|
|
25
108
|
|
|
26
109
|
export type BridgeConfig = z.infer<typeof BridgeConfigZod>
|
|
110
|
+
|
|
111
|
+
export const BridgeSettingsZod = BridgeConfigZod.pick({
|
|
112
|
+
feeFixed: true,
|
|
113
|
+
feeRateBasisPoints: true,
|
|
114
|
+
feesAddress: true,
|
|
115
|
+
escrowAddress: true,
|
|
116
|
+
maxBridgeAmount: true,
|
|
117
|
+
minBridgeAmount: true,
|
|
118
|
+
remoteChainId: true,
|
|
119
|
+
remoteTokenAddress: true,
|
|
120
|
+
xl1TokenAddress: true,
|
|
121
|
+
xl1ChainId: true,
|
|
122
|
+
}).required()
|
|
123
|
+
|
|
124
|
+
export type BridgeSettings = z.infer<typeof BridgeSettingsZod>
|
package/src/config/index.ts
CHANGED
package/src/index.ts
CHANGED
|
@@ -2,6 +2,7 @@ export * from './block/index.ts'
|
|
|
2
2
|
export * from './ChainServiceCollectionV2.ts'
|
|
3
3
|
export * from './config/index.ts'
|
|
4
4
|
export * from './constants.ts'
|
|
5
|
+
export * from './CreatableProvider/index.ts'
|
|
5
6
|
export * from './driver/index.ts'
|
|
6
7
|
export * from './eip-712/index.ts'
|
|
7
8
|
export * from './instances/index.ts'
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { Promisable } from '@xylabs/sdk-js'
|
|
2
|
+
|
|
3
|
+
export interface AsyncMapRead<K, V> {
|
|
4
|
+
get(id: K): Promisable<V | undefined>
|
|
5
|
+
getMany(id: K[]): Promisable<V[]>
|
|
6
|
+
has(id: K): Promisable<boolean>
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* @deprecated Use AsyncMapRead instead
|
|
10
|
+
*/
|
|
11
|
+
export interface AsynchronousMapRead<K, V> extends AsyncMapRead<K, V> {}
|
|
12
|
+
|
|
13
|
+
export interface AsyncMapWrite<K, V> {
|
|
14
|
+
clear(): Promisable<void>
|
|
15
|
+
delete(id: K): Promisable<boolean>
|
|
16
|
+
set(id: K, data: V): Promisable<void>
|
|
17
|
+
setMany(entries: [K, V][]): Promisable<void>
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* @deprecated Use AsyncMapWrite instead
|
|
21
|
+
*/
|
|
22
|
+
export interface AsynchronousMapWrite<K, V> extends AsyncMapWrite<K, V> {}
|
|
23
|
+
|
|
24
|
+
export interface AsyncMap<K, V> extends AsyncMapRead<K, V>, AsyncMapWrite<K, V> {}
|
|
25
|
+
/**
|
|
26
|
+
* @deprecated Use AsyncMap instead
|
|
27
|
+
*/
|
|
28
|
+
export interface AsynchronousMap<K, V> extends AsyncMap<K, V> {}
|
|
29
|
+
|
|
30
|
+
export interface AsyncIterableMapRead<K, V>extends AsyncMapRead<K, V>, AsyncIterable<[K, V]> {}
|
|
31
|
+
export interface AsyncIterableMapWrite<K, V>extends AsyncMapWrite<K, V>, AsyncIterable<[K, V]> {}
|
|
32
|
+
export interface AsyncIterableMap<K, V>extends AsyncMap<K, V>, AsyncIterable<[K, V]> {}
|
package/src/map/MapType.ts
CHANGED
|
@@ -1,12 +1,18 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
|
|
1
|
+
import type {
|
|
2
|
+
AsyncIterableMap, AsyncIterableMapRead, AsyncIterableMapWrite, AsyncMap, AsyncMapRead, AsyncMapWrite,
|
|
3
|
+
} from './AsyncMap.ts'
|
|
4
|
+
import type {
|
|
5
|
+
SyncIterableMap, SyncIterableMapRead, SyncIterableMapWrite, SyncMap, SyncMapRead, SyncMapWrite,
|
|
6
|
+
} from './SyncMap.ts'
|
|
3
7
|
|
|
4
|
-
export type MapTypeWrite<TId, TData> =
|
|
8
|
+
export type MapTypeWrite<TId, TData> = SyncMapWrite<TId, TData> | AsyncMapWrite<TId, TData>
|
|
5
9
|
|
|
6
|
-
export type MapTypeRead<TId, TData> =
|
|
10
|
+
export type MapTypeRead<TId, TData> = SyncMapRead<TId, TData> | AsyncMapRead<TId, TData>
|
|
7
11
|
|
|
8
|
-
export type
|
|
12
|
+
export type MapType<TId, TData> = SyncMap<TId, TData> | AsyncMap<TId, TData>
|
|
9
13
|
|
|
10
|
-
export type
|
|
14
|
+
export type IterableMapRead<TId, TData> = SyncIterableMapRead<TId, TData> | AsyncIterableMapRead<TId, TData>
|
|
11
15
|
|
|
12
|
-
export type
|
|
16
|
+
export type IterableMapWrite<TId, TData> = SyncIterableMapWrite<TId, TData> | AsyncIterableMapWrite<TId, TData>
|
|
17
|
+
|
|
18
|
+
export type IterableMap<TId, TData> = SyncIterableMap<TId, TData> | AsyncIterableMap<TId, TData>
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
export interface SyncMapRead<K, V> {
|
|
2
|
+
get(id: K): V | undefined
|
|
3
|
+
getMany(id: K[]): V[]
|
|
4
|
+
has(id: K): boolean
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* @deprecated Use SyncMapRead instead
|
|
9
|
+
*/
|
|
10
|
+
export interface SynchronousMapRead<K, V> extends SyncMapRead<K, V> {}
|
|
11
|
+
|
|
12
|
+
export interface SyncMapWrite<K, V> {
|
|
13
|
+
clear(): void
|
|
14
|
+
delete(id: K): boolean
|
|
15
|
+
set(id: K, data: V): void
|
|
16
|
+
setMany(entries: [K, V][]): void
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* @deprecated Use SyncMapWrite instead
|
|
21
|
+
*/
|
|
22
|
+
export interface SynchronousMapWrite<K, V> extends SyncMapWrite<K, V> {}
|
|
23
|
+
|
|
24
|
+
export interface SyncMap<K, V> extends SyncMapRead<K, V>, SyncMapWrite<K, V> {}
|
|
25
|
+
/**
|
|
26
|
+
* @deprecated Use SyncMap instead
|
|
27
|
+
*/
|
|
28
|
+
export interface SynchronousMap<K, V> extends SyncMap<K, V> {}
|
|
29
|
+
|
|
30
|
+
export interface SyncIterableMapRead<K, V> extends SyncMapRead<K, V>, Iterable<[K, V]> {}
|
|
31
|
+
export interface SyncIterableMapWrite<K, V> extends SyncMapWrite<K, V>, Iterable<[K, V]> {}
|
|
32
|
+
export interface SyncIterableMap<K, V> extends SyncMap<K, V>, Iterable<[K, V]> {}
|
package/src/map/index.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export * from './
|
|
1
|
+
export * from './AsyncMap.ts'
|
|
2
2
|
export * from './MapType.ts'
|
|
3
|
-
export * from './
|
|
3
|
+
export * from './SyncMap.ts'
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { assertEx, isString } from '@xylabs/sdk-js'
|
|
2
|
+
|
|
3
|
+
export type ProviderMoniker = string
|
|
4
|
+
|
|
5
|
+
export const asProviderMoniker = <T>(value: T) => {
|
|
6
|
+
const moniker = isString(value) ? (value as unknown as ProviderMoniker) : undefined
|
|
7
|
+
return assertEx(moniker)
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
export interface Provider<T extends ProviderMoniker> {
|
|
11
|
+
moniker: T
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export const DefaultProviderMoniker = 'Provider' as const
|
|
15
|
+
export type DefaultProviderMoniker = typeof DefaultProviderMoniker
|
package/src/model/index.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
type Address, type Hex, hexToBigInt, toAddress,
|
|
3
3
|
} from '@xylabs/sdk-js'
|
|
4
|
-
import { span } from '@xylabs/
|
|
4
|
+
import { span } from '@xylabs/sdk-js'
|
|
5
5
|
import type { Payload } from '@xyo-network/payload-model'
|
|
6
6
|
import { isTransfer } from '@xyo-network/xl1-protocol'
|
|
7
7
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
type Address, type Hex, hexToBigInt, toAddress,
|
|
3
3
|
} from '@xylabs/sdk-js'
|
|
4
|
-
import { span } from '@xylabs/
|
|
4
|
+
import { span } from '@xylabs/sdk-js'
|
|
5
5
|
import type { Payload } from '@xyo-network/payload-model'
|
|
6
6
|
import { isTransfer } from '@xyo-network/xl1-protocol'
|
|
7
7
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
type Address, type Hex, hexToBigInt,
|
|
3
3
|
} from '@xylabs/sdk-js'
|
|
4
|
-
import { span } from '@xylabs/
|
|
4
|
+
import { span } from '@xylabs/sdk-js'
|
|
5
5
|
import type { Payload } from '@xyo-network/payload-model'
|
|
6
6
|
import { isTransfer } from '@xyo-network/xl1-protocol'
|
|
7
7
|
|
|
@@ -4,11 +4,11 @@ import { asAttoXL1, type XL1BlockNumber } from '@xyo-network/xl1-protocol'
|
|
|
4
4
|
export const rewardFromBlockNumber = (places = 18) => {
|
|
5
5
|
return (
|
|
6
6
|
blockNumber: XL1BlockNumber,
|
|
7
|
-
startingReward = asAttoXL1(toFixedPoint(
|
|
7
|
+
startingReward = asAttoXL1(toFixedPoint(500n, places)),
|
|
8
8
|
blocksPerStep = 1_000_000,
|
|
9
|
-
stepFactorNumerator =
|
|
9
|
+
stepFactorNumerator = 95n,
|
|
10
10
|
stepFactorDenominator = 100n,
|
|
11
|
-
minBlockReward = asAttoXL1(toFixedPoint(
|
|
11
|
+
minBlockReward = asAttoXL1(toFixedPoint(10n, places)),
|
|
12
12
|
creatorReward = asAttoXL1(toFixedPoint(20_000_000_000n, places)),
|
|
13
13
|
) => {
|
|
14
14
|
if (blockNumber === 0) {
|
package/src/provider/DataLake.ts
CHANGED
|
@@ -12,8 +12,14 @@ export interface DataLakeViewer extends DataLakeViewerMethods {
|
|
|
12
12
|
disallowedSchemas?: Schema[]
|
|
13
13
|
}
|
|
14
14
|
|
|
15
|
+
export const DataLakeViewerMoniker = 'DataLakeViewer' as const
|
|
16
|
+
export type DataLakeViewerMoniker = typeof DataLakeViewerMoniker
|
|
17
|
+
|
|
15
18
|
export type DataLakeRunnerMethods = Pick<MapType<Hash, DataLakeData>, 'set' | 'delete' | 'clear'> & {
|
|
16
19
|
setMany(entries: [Hash, DataLakeData][]): Promise<void>
|
|
17
20
|
}
|
|
18
21
|
|
|
19
|
-
export interface DataLakeRunner extends
|
|
22
|
+
export interface DataLakeRunner extends DataLakeRunnerMethods {}
|
|
23
|
+
|
|
24
|
+
export const DataLakeRunnerMoniker = 'DataLakeRunner' as const
|
|
25
|
+
export type DataLakeRunnerMoniker = typeof DataLakeRunnerMoniker
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { Promisable } from '@xylabs/sdk-js'
|
|
2
2
|
|
|
3
|
+
import type { Provider } from '../../../model/index.ts'
|
|
3
4
|
import type { NetworkStakeStepRewardsViewer } from './Rewards/index.ts'
|
|
4
5
|
|
|
5
6
|
export interface NetworkStakeViewerMethods {
|
|
@@ -7,6 +8,9 @@ export interface NetworkStakeViewerMethods {
|
|
|
7
8
|
active(blockNumber?: number): Promisable<[bigint, number]>
|
|
8
9
|
}
|
|
9
10
|
|
|
10
|
-
export
|
|
11
|
+
export const NetworkStakeViewerMoniker = 'NetworkStakeViewer' as const
|
|
12
|
+
export type NetworkStakeViewerMoniker = typeof NetworkStakeViewerMoniker
|
|
13
|
+
|
|
14
|
+
export interface NetworkStakeViewer extends NetworkStakeViewerMethods, Provider<NetworkStakeViewerMoniker> {
|
|
11
15
|
stepRewards?: NetworkStakeStepRewardsViewer
|
|
12
16
|
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { Provider } from '../../../../model/index.ts'
|
|
1
2
|
import type { NetworkStakeStepRewardsByPositionViewerOptions } from './Options.ts'
|
|
2
3
|
import type { NetworkStakeStepRewardsByIndexViewerMethodsTemplate } from './templates/index.ts'
|
|
3
4
|
|
|
@@ -6,4 +7,8 @@ import type { NetworkStakeStepRewardsByIndexViewerMethodsTemplate } from './temp
|
|
|
6
7
|
export interface NetworkStakeStepRewardsByPositionViewerMethods extends
|
|
7
8
|
NetworkStakeStepRewardsByIndexViewerMethodsTemplate<NetworkStakeStepRewardsByPositionViewerOptions, number> {}
|
|
8
9
|
|
|
9
|
-
export
|
|
10
|
+
export const NetworkStakeStepRewardsByPositionViewerMoniker = 'NetworkStakeStepRewardsByPositionViewer' as const
|
|
11
|
+
export type NetworkStakeStepRewardsByPositionViewerMoniker = typeof NetworkStakeStepRewardsByPositionViewerMoniker
|
|
12
|
+
|
|
13
|
+
export interface NetworkStakeStepRewardsByPositionViewer extends NetworkStakeStepRewardsByPositionViewerMethods,
|
|
14
|
+
Provider<NetworkStakeStepRewardsByPositionViewerMoniker> {}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { Address } from '@xylabs/sdk-js'
|
|
2
2
|
|
|
3
|
+
import type { Provider } from '../../../../model/index.ts'
|
|
3
4
|
import type { NetworkStakeStepRewardsByStakerViewerOptions } from './Options.ts'
|
|
4
5
|
import type { NetworkStakeStepRewardsByIndexViewerMethodsTemplate } from './templates/index.ts'
|
|
5
6
|
|
|
@@ -7,4 +8,9 @@ import type { NetworkStakeStepRewardsByIndexViewerMethodsTemplate } from './temp
|
|
|
7
8
|
|
|
8
9
|
export interface NetworkStakeStepRewardsByStakerViewerMethods
|
|
9
10
|
extends NetworkStakeStepRewardsByIndexViewerMethodsTemplate<NetworkStakeStepRewardsByStakerViewerOptions, Address> {}
|
|
10
|
-
|
|
11
|
+
|
|
12
|
+
export const NetworkStakeStepRewardsByStakerViewerMoniker = 'NetworkStakeStepRewardsByStakerViewer' as const
|
|
13
|
+
export type NetworkStakeStepRewardsByStakerViewerMoniker = typeof NetworkStakeStepRewardsByStakerViewerMoniker
|
|
14
|
+
|
|
15
|
+
export interface NetworkStakeStepRewardsByStakerViewer extends NetworkStakeStepRewardsByStakerViewerMethods,
|
|
16
|
+
Provider<NetworkStakeStepRewardsByStakerViewerMoniker> {}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { StepIdentityString } from '@xyo-network/xl1-protocol'
|
|
2
2
|
|
|
3
|
+
import type { Provider } from '../../../../model/index.ts'
|
|
3
4
|
import type { NetworkStakeStepRewardsByStepViewerOptions } from './Options.ts'
|
|
4
5
|
import type { NetworkStakeStepRewardsByIndexViewerMethodsTemplate } from './templates/index.ts'
|
|
5
6
|
|
|
@@ -7,4 +8,8 @@ import type { NetworkStakeStepRewardsByIndexViewerMethodsTemplate } from './temp
|
|
|
7
8
|
|
|
8
9
|
export interface NetworkStakeStepRewardsByStepViewerMethods extends
|
|
9
10
|
NetworkStakeStepRewardsByIndexViewerMethodsTemplate<NetworkStakeStepRewardsByStepViewerOptions, StepIdentityString> {}
|
|
10
|
-
|
|
11
|
+
|
|
12
|
+
export const NetworkStakeStepRewardsByStepViewerMoniker = 'NetworkStakeStepRewardsByStepViewer' as const
|
|
13
|
+
export type NetworkStakeStepRewardsByStepViewerMoniker = typeof NetworkStakeStepRewardsByStepViewerMoniker
|
|
14
|
+
|
|
15
|
+
export interface NetworkStakeStepRewardsByStepViewer extends NetworkStakeStepRewardsByStepViewerMethods, Provider<NetworkStakeStepRewardsByStepViewerMoniker> {}
|
|
@@ -1,9 +1,14 @@
|
|
|
1
1
|
import type { AttoXL1 } from '@xyo-network/xl1-protocol'
|
|
2
2
|
|
|
3
|
+
import type { Provider } from '../../../../model/index.ts'
|
|
3
4
|
import type { NetworkStakeStepRewardsRangeOptions } from './Options.ts'
|
|
4
5
|
import type { NetworkStakeStepRewardsViewerMethodsTemplate } from './templates/index.ts'
|
|
5
6
|
|
|
6
7
|
// Viewers are client objects that can nest other viewers and ViewerMethods objects consist only of methods that return data.
|
|
7
8
|
|
|
8
9
|
export interface NetworkStakeStepRewardsTotalViewerMethods extends NetworkStakeStepRewardsViewerMethodsTemplate<NetworkStakeStepRewardsRangeOptions, AttoXL1> {}
|
|
9
|
-
|
|
10
|
+
|
|
11
|
+
export const NetworkStakeStepRewardsTotalViewerMoniker = 'NetworkStakeStepRewardsTotalViewer' as const
|
|
12
|
+
export type NetworkStakeStepRewardsTotalViewerMoniker = typeof NetworkStakeStepRewardsTotalViewerMoniker
|
|
13
|
+
|
|
14
|
+
export interface NetworkStakeStepRewardsTotalViewer extends NetworkStakeStepRewardsTotalViewerMethods, Provider<NetworkStakeStepRewardsTotalViewerMoniker> {}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { Provider } from '../../../../model/index.ts'
|
|
1
2
|
import type { NetworkStakeStepRewardsByPositionViewer } from './ByPositionViewer.ts'
|
|
2
3
|
import type { NetworkStakeStepRewardsByStakerViewer } from './ByStakerViewer.ts'
|
|
3
4
|
import type { NetworkStakeStepRewardsByStepViewer } from './ByStepViewer.ts'
|
|
@@ -5,7 +6,10 @@ import type { NetworkStakeStepRewardsTotalViewer } from './TotalViewer.ts'
|
|
|
5
6
|
|
|
6
7
|
export interface NetworkStakeStepRewardsViewerMethods {}
|
|
7
8
|
|
|
8
|
-
export
|
|
9
|
+
export const NetworkStakeStepRewardsViewerMoniker = 'NetworkStakeStepRewardsViewer' as const
|
|
10
|
+
export type NetworkStakeStepRewardsViewerMoniker = typeof NetworkStakeStepRewardsViewerMoniker
|
|
11
|
+
|
|
12
|
+
export interface NetworkStakeStepRewardsViewer extends NetworkStakeStepRewardsViewerMethods, Provider<NetworkStakeStepRewardsViewerMoniker> {
|
|
9
13
|
position?: NetworkStakeStepRewardsByPositionViewer
|
|
10
14
|
staker?: NetworkStakeStepRewardsByStakerViewer
|
|
11
15
|
step?: NetworkStakeStepRewardsByStepViewer
|
|
@@ -3,6 +3,7 @@ import type {
|
|
|
3
3
|
} from '@xylabs/sdk-js'
|
|
4
4
|
import type { AttoXL1, XL1BlockRange } from '@xyo-network/xl1-protocol'
|
|
5
5
|
|
|
6
|
+
import type { Provider } from '../../model/index.ts'
|
|
6
7
|
import type {
|
|
7
8
|
AccountBalanceHistoryItem,
|
|
8
9
|
AccountBalanceViewer,
|
|
@@ -11,22 +12,25 @@ import type {
|
|
|
11
12
|
ChainViewerMethods,
|
|
12
13
|
ForkViewerMethods,
|
|
13
14
|
MempoolViewer,
|
|
14
|
-
|
|
15
|
+
NetworkStakeStepRewardViewerMethods,
|
|
15
16
|
StakeViewerMethods,
|
|
16
17
|
StepViewer,
|
|
17
18
|
TransactionViewerMethods,
|
|
18
|
-
TransferBalanceViewerMethods,
|
|
19
19
|
} from '../../viewers/index.ts'
|
|
20
20
|
import type { NetworkStakeViewer } from './NetworkStake/index.ts'
|
|
21
21
|
|
|
22
22
|
export interface XyoViewerMethods extends
|
|
23
|
-
|
|
24
|
-
|
|
23
|
+
NetworkStakeStepRewardViewerMethods, Pick<ChainViewerMethods, 'chainId'>, BlockViewerMethods,
|
|
24
|
+
TransactionViewerMethods, StakeViewerMethods, ForkViewerMethods {
|
|
25
25
|
accountBalance(address: Address, headOrRange?: Hash | XL1BlockRange): Promisable<AttoXL1>
|
|
26
26
|
accountBalanceHistory(address: Address, headOrRange?: Hash | XL1BlockRange): Promisable<AccountBalanceHistoryItem[]>
|
|
27
27
|
}
|
|
28
28
|
|
|
29
|
-
export
|
|
29
|
+
export const XyoViewerMoniker = 'XyoViewer' as const
|
|
30
|
+
export type XyoViewerMoniker = typeof XyoViewerMoniker
|
|
31
|
+
|
|
32
|
+
export interface XyoViewer extends Omit<BlockViewer, 'moniker'>, XyoViewerMethods,
|
|
33
|
+
Omit<StakeViewerMethods, 'moniker'>, Provider<XyoViewerMoniker> {
|
|
30
34
|
account?: {
|
|
31
35
|
balance?: AccountBalanceViewer
|
|
32
36
|
}
|
|
@@ -3,4 +3,4 @@ import type {
|
|
|
3
3
|
} from '../../viewers/index.ts'
|
|
4
4
|
import type { BaseChainService } from './BaseChainService.ts'
|
|
5
5
|
|
|
6
|
-
export interface ChainService extends ChainContractViewer, ChainStakeViewer, ChainViewer, BaseChainService {}
|
|
6
|
+
export interface ChainService extends Omit<ChainContractViewer, 'moniker'>, Omit<ChainStakeViewer, 'moniker'>, Omit<ChainViewer, 'moniker'>, BaseChainService {}
|
|
@@ -1,12 +1,8 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
Address, CreatableParams, Hash,
|
|
3
|
-
} from '@xylabs/sdk-js'
|
|
1
|
+
import type { Address, Hash } from '@xylabs/sdk-js'
|
|
4
2
|
import {
|
|
5
|
-
AbstractCreatable,
|
|
6
3
|
asHash,
|
|
7
|
-
assertEx, exists, isDefined,
|
|
4
|
+
assertEx, exists, isDefined, spanRootAsync,
|
|
8
5
|
} from '@xylabs/sdk-js'
|
|
9
|
-
import { spanRootAsync } from '@xylabs/telemetry'
|
|
10
6
|
import type { WithHashMeta, WithStorageMeta } from '@xyo-network/payload-model'
|
|
11
7
|
import type {
|
|
12
8
|
SignedBlockBoundWitnessWithHashMeta, Transfer, XL1BlockNumber, XL1BlockRange,
|
|
@@ -18,7 +14,9 @@ import {
|
|
|
18
14
|
} from '@xyo-network/xl1-protocol'
|
|
19
15
|
|
|
20
16
|
import { deepCalculateFramesFromRange } from '../../block/index.ts'
|
|
21
|
-
import type {
|
|
17
|
+
import type { CreatableProviderParams } from '../../CreatableProvider/index.ts'
|
|
18
|
+
import { AbstractCreatableProvider, creatableProvider } from '../../CreatableProvider/index.ts'
|
|
19
|
+
import type { ProviderMoniker, Qualified } from '../../model/index.ts'
|
|
22
20
|
import type {
|
|
23
21
|
BalanceStepSummaryContext, TransfersStepSummary,
|
|
24
22
|
TransfersStepSummaryContext,
|
|
@@ -27,17 +25,23 @@ import {
|
|
|
27
25
|
balancesSummary,
|
|
28
26
|
transfersStepSummaryFromRange,
|
|
29
27
|
} from '../../summary/index.ts'
|
|
30
|
-
import
|
|
31
|
-
AccountBalanceHistoryItem, AccountBalanceViewer,
|
|
28
|
+
import {
|
|
29
|
+
type AccountBalanceHistoryItem, type AccountBalanceViewer, AccountBalanceViewerMoniker,
|
|
30
|
+
type BlockViewer,
|
|
32
31
|
} from '../../viewers/index.ts'
|
|
33
32
|
|
|
34
|
-
export interface SimpleAccountBalanceViewerParams extends
|
|
33
|
+
export interface SimpleAccountBalanceViewerParams extends CreatableProviderParams {
|
|
35
34
|
blockViewer: BlockViewer
|
|
36
35
|
context: BalanceStepSummaryContext
|
|
37
36
|
transfersSummaryContext: TransfersStepSummaryContext
|
|
38
37
|
}
|
|
39
38
|
|
|
40
|
-
|
|
39
|
+
@creatableProvider()
|
|
40
|
+
export class SimpleAccountBalanceViewer extends AbstractCreatableProvider<SimpleAccountBalanceViewerParams> implements AccountBalanceViewer {
|
|
41
|
+
static readonly defaultMoniker = AccountBalanceViewerMoniker
|
|
42
|
+
static readonly monikers = [AccountBalanceViewerMoniker]
|
|
43
|
+
moniker = SimpleAccountBalanceViewer.defaultMoniker
|
|
44
|
+
|
|
41
45
|
get blockViewer(): BlockViewer {
|
|
42
46
|
return this.params.blockViewer!
|
|
43
47
|
}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { Hash } from '@xylabs/sdk-js'
|
|
2
2
|
import {
|
|
3
|
-
AbstractCreatable,
|
|
4
3
|
assertEx,
|
|
5
4
|
exists,
|
|
6
5
|
isDefined,
|
|
@@ -16,6 +15,8 @@ import {
|
|
|
16
15
|
} from '@xyo-network/xl1-protocol'
|
|
17
16
|
|
|
18
17
|
import { hydrateBlock } from '../../block/index.ts'
|
|
18
|
+
import type { CreatableProviderParams } from '../../CreatableProvider/index.ts'
|
|
19
|
+
import { AbstractCreatableProvider, creatableProvider } from '../../CreatableProvider/index.ts'
|
|
19
20
|
import { LruCacheMap } from '../../driver/index.ts'
|
|
20
21
|
import type {
|
|
21
22
|
ChainContextRead,
|
|
@@ -23,14 +24,19 @@ import type {
|
|
|
23
24
|
} from '../../model/index.ts'
|
|
24
25
|
import { findMostRecentBlock, hydratedBlockByNumber } from '../../primitives/index.ts'
|
|
25
26
|
import { HydratedCache } from '../../utils/index.ts'
|
|
26
|
-
import type
|
|
27
|
+
import { type BlockViewer, BlockViewerMoniker } from '../../viewers/index.ts'
|
|
27
28
|
|
|
28
|
-
export interface SimpleBlockViewerParams extends
|
|
29
|
+
export interface SimpleBlockViewerParams extends CreatableProviderParams {
|
|
29
30
|
context: ChainContextRead
|
|
30
|
-
finalizedArchivist
|
|
31
|
+
finalizedArchivist: ReadArchivist
|
|
31
32
|
}
|
|
32
33
|
|
|
33
|
-
|
|
34
|
+
@creatableProvider()
|
|
35
|
+
export class SimpleBlockViewer extends AbstractCreatableProvider<SimpleBlockViewerParams> implements BlockViewer {
|
|
36
|
+
static readonly defaultMoniker = BlockViewerMoniker
|
|
37
|
+
static readonly monikers = [BlockViewerMoniker]
|
|
38
|
+
moniker = SimpleBlockViewer.defaultMoniker
|
|
39
|
+
|
|
34
40
|
private _payloadCache: PayloadMap<WithHashMeta<Payload>> | undefined
|
|
35
41
|
private _signedHydratedBlockCache: HydratedCache<SignedHydratedBlockWithHashMeta> | undefined
|
|
36
42
|
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import {
|
|
2
|
-
AbstractCreatable,
|
|
3
|
-
creatable, CreatableParams, Promisable,
|
|
4
|
-
} from '@xylabs/sdk-js'
|
|
1
|
+
import { Promisable } from '@xylabs/sdk-js'
|
|
5
2
|
import { AttoXL1, XL1BlockNumber } from '@xyo-network/xl1-protocol'
|
|
6
3
|
|
|
4
|
+
import {
|
|
5
|
+
AbstractCreatableProvider, creatableProvider, CreatableProviderParams,
|
|
6
|
+
} from '../../CreatableProvider/index.ts'
|
|
7
7
|
import { rewardFromBlockNumber } from '../../primitives/index.ts'
|
|
8
|
-
import { BlockRewardViewer } from '../../viewers/index.ts'
|
|
8
|
+
import { BlockRewardViewer, BlockRewardViewerMoniker } from '../../viewers/index.ts'
|
|
9
9
|
|
|
10
|
-
export interface SimpleBlockRewardViewerParams extends
|
|
10
|
+
export interface SimpleBlockRewardViewerParams extends CreatableProviderParams {
|
|
11
11
|
creatorReward: AttoXL1
|
|
12
12
|
initialReward: AttoXL1
|
|
13
13
|
minRewardPerBlock: AttoXL1
|
|
@@ -16,8 +16,12 @@ export interface SimpleBlockRewardViewerParams extends CreatableParams {
|
|
|
16
16
|
stepSize: XL1BlockNumber
|
|
17
17
|
}
|
|
18
18
|
|
|
19
|
-
@
|
|
20
|
-
export class SimpleBlockRewardViewer extends
|
|
19
|
+
@creatableProvider()
|
|
20
|
+
export class SimpleBlockRewardViewer extends AbstractCreatableProvider<SimpleBlockRewardViewerParams> implements BlockRewardViewer {
|
|
21
|
+
static readonly defaultMoniker = BlockRewardViewerMoniker
|
|
22
|
+
static readonly monikers = [BlockRewardViewerMoniker]
|
|
23
|
+
moniker = SimpleBlockRewardViewer.defaultMoniker
|
|
24
|
+
|
|
21
25
|
protected rewardFromBlockNumber = rewardFromBlockNumber(18)
|
|
22
26
|
|
|
23
27
|
allowedRewardForBlock(block: XL1BlockNumber): Promisable<AttoXL1> {
|
|
@@ -1,20 +1,23 @@
|
|
|
1
1
|
import {
|
|
2
2
|
type Address, asHex, Promisable,
|
|
3
3
|
} from '@xylabs/sdk-js'
|
|
4
|
-
import {
|
|
5
|
-
AbstractCreatable,
|
|
6
|
-
creatable, CreatableParams,
|
|
7
|
-
} from '@xylabs/sdk-js'
|
|
8
4
|
import { ChainId } from '@xyo-network/xl1-protocol'
|
|
9
5
|
|
|
10
|
-
import {
|
|
6
|
+
import {
|
|
7
|
+
AbstractCreatableProvider, creatableProvider, CreatableProviderParams,
|
|
8
|
+
} from '../../CreatableProvider/index.ts'
|
|
9
|
+
import { ChainViewer, ChainViewerMoniker } from '../../viewers/index.ts'
|
|
11
10
|
|
|
12
|
-
export interface SimpleChainParams extends
|
|
11
|
+
export interface SimpleChainParams extends CreatableProviderParams {
|
|
13
12
|
chainId: Address
|
|
14
13
|
}
|
|
15
14
|
|
|
16
|
-
@
|
|
17
|
-
export class SimpleChainViewer extends
|
|
15
|
+
@creatableProvider()
|
|
16
|
+
export class SimpleChainViewer extends AbstractCreatableProvider<SimpleChainParams> implements ChainViewer {
|
|
17
|
+
static readonly defaultMoniker = ChainViewerMoniker
|
|
18
|
+
static readonly monikers = [ChainViewerMoniker]
|
|
19
|
+
moniker = SimpleChainViewer.defaultMoniker
|
|
20
|
+
|
|
18
21
|
static override async paramsHandler(params?: Partial<SimpleChainParams>) {
|
|
19
22
|
return ({ ...await super.paramsHandler(params), chainId: asHex(params?.chainId, () => 'chainId not set') }) as SimpleChainParams
|
|
20
23
|
}
|