@xyo-network/xl1-protocol-sdk 1.16.0 → 1.16.2
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/config/Config.d.ts +6 -18
- package/dist/neutral/config/Config.d.ts.map +1 -1
- package/dist/neutral/config/Producer.d.ts +2 -6
- package/dist/neutral/config/Producer.d.ts.map +1 -1
- package/dist/neutral/config/Validation.d.ts +4 -12
- package/dist/neutral/config/Validation.d.ts.map +1 -1
- package/dist/neutral/driver/cache/LruCacheMap.d.ts +1 -0
- package/dist/neutral/driver/cache/LruCacheMap.d.ts.map +1 -1
- package/dist/neutral/driver/memory/MemoryMap.d.ts +1 -0
- package/dist/neutral/driver/memory/MemoryMap.d.ts.map +1 -1
- package/dist/neutral/eip-712/Payloads/EIP712Signature.d.ts +1 -9
- package/dist/neutral/eip-712/Payloads/EIP712Signature.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 +462 -31
- package/dist/neutral/index.mjs.map +1 -1
- package/dist/neutral/interfaces/viewers/index.d.ts +0 -1
- package/dist/neutral/interfaces/viewers/index.d.ts.map +1 -1
- package/dist/neutral/map/AsynchronousMap.d.ts +1 -0
- package/dist/neutral/map/AsynchronousMap.d.ts.map +1 -1
- package/dist/neutral/map/SynchronousMap.d.ts +1 -0
- package/dist/neutral/map/SynchronousMap.d.ts.map +1 -1
- package/dist/neutral/model/RecordKeyType.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/payloads/netBalancesForPayloads.d.ts +2 -3
- package/dist/neutral/payloads/netBalancesForPayloads.d.ts.map +1 -1
- package/dist/neutral/provider/DataLake.d.ts +15 -0
- package/dist/neutral/provider/DataLake.d.ts.map +1 -0
- package/dist/neutral/provider/XyoClient.d.ts +3 -3
- package/dist/neutral/provider/XyoClient.d.ts.map +1 -1
- package/dist/neutral/provider/XyoConnection.d.ts +4 -27
- package/dist/neutral/provider/XyoConnection.d.ts.map +1 -1
- package/dist/neutral/provider/XyoGateway.d.ts +4 -10
- package/dist/neutral/provider/XyoGateway.d.ts.map +1 -1
- package/dist/neutral/provider/XyoGatewayRunner.d.ts +25 -0
- package/dist/neutral/provider/XyoGatewayRunner.d.ts.map +1 -0
- package/dist/neutral/provider/index.d.ts +4 -4
- package/dist/neutral/provider/index.d.ts.map +1 -1
- package/dist/neutral/provider/{XyoSigner.d.ts → signer/XyoSigner.d.ts} +2 -2
- package/dist/neutral/provider/signer/XyoSigner.d.ts.map +1 -0
- package/dist/neutral/provider/signer/index.d.ts +2 -0
- package/dist/neutral/provider/signer/index.d.ts.map +1 -0
- package/dist/neutral/{interfaces/viewers/NetworkStakeViewer → provider/viewer/NetworkStake}/NetworkStakeViewer.d.ts +2 -2
- package/dist/neutral/provider/viewer/NetworkStake/NetworkStakeViewer.d.ts.map +1 -0
- package/dist/neutral/provider/viewer/NetworkStake/Rewards/ByPositionViewer.d.ts +7 -0
- package/dist/neutral/provider/viewer/NetworkStake/Rewards/ByPositionViewer.d.ts.map +1 -0
- package/dist/neutral/provider/viewer/NetworkStake/Rewards/ByStakerViewer.d.ts +8 -0
- package/dist/neutral/provider/viewer/NetworkStake/Rewards/ByStakerViewer.d.ts.map +1 -0
- package/dist/neutral/provider/viewer/NetworkStake/Rewards/ByStepViewer.d.ts +8 -0
- package/dist/neutral/provider/viewer/NetworkStake/Rewards/ByStepViewer.d.ts.map +1 -0
- package/dist/neutral/provider/viewer/NetworkStake/Rewards/Options.d.ts +15 -0
- package/dist/neutral/provider/viewer/NetworkStake/Rewards/Options.d.ts.map +1 -0
- package/dist/neutral/provider/viewer/NetworkStake/Rewards/TotalViewer.d.ts +8 -0
- package/dist/neutral/provider/viewer/NetworkStake/Rewards/TotalViewer.d.ts.map +1 -0
- package/dist/neutral/provider/viewer/NetworkStake/Rewards/Viewer.d.ts +13 -0
- package/dist/neutral/provider/viewer/NetworkStake/Rewards/Viewer.d.ts.map +1 -0
- package/dist/neutral/provider/viewer/NetworkStake/Rewards/index.d.ts +8 -0
- package/dist/neutral/provider/viewer/NetworkStake/Rewards/index.d.ts.map +1 -0
- package/dist/neutral/provider/viewer/NetworkStake/Rewards/templates/ByIndexMethodsTemplate.d.ts +6 -0
- package/dist/neutral/provider/viewer/NetworkStake/Rewards/templates/ByIndexMethodsTemplate.d.ts.map +1 -0
- package/dist/neutral/{interfaces/viewers/NetworkStakeViewer/RewardsViewerMethodsTemplate.d.ts → provider/viewer/NetworkStake/Rewards/templates/MethodsTemplate.d.ts} +2 -2
- package/dist/neutral/provider/viewer/NetworkStake/Rewards/templates/MethodsTemplate.d.ts.map +1 -0
- package/dist/neutral/provider/viewer/NetworkStake/Rewards/templates/index.d.ts +3 -0
- package/dist/neutral/provider/viewer/NetworkStake/Rewards/templates/index.d.ts.map +1 -0
- package/dist/neutral/provider/viewer/NetworkStake/index.d.ts +3 -0
- package/dist/neutral/provider/viewer/NetworkStake/index.d.ts.map +1 -0
- package/dist/neutral/{interfaces/viewers/NetworkStakeViewer → provider/viewer}/StepViewer.d.ts +6 -2
- package/dist/neutral/provider/viewer/StepViewer.d.ts.map +1 -0
- package/dist/neutral/provider/{XyoViewer.d.ts → viewer/XyoViewer.d.ts} +5 -2
- package/dist/neutral/provider/viewer/XyoViewer.d.ts.map +1 -0
- package/dist/neutral/provider/viewer/index.d.ts +4 -0
- package/dist/neutral/provider/viewer/index.d.ts.map +1 -0
- package/dist/neutral/simple/client/SimpleXyoClient.d.ts +7 -0
- package/dist/neutral/simple/client/SimpleXyoClient.d.ts.map +1 -0
- package/dist/neutral/simple/client/index.d.ts +2 -0
- package/dist/neutral/simple/client/index.d.ts.map +1 -0
- package/dist/neutral/simple/datalake/SimpleDataLakeRunner.d.ts +15 -0
- package/dist/neutral/simple/datalake/SimpleDataLakeRunner.d.ts.map +1 -0
- package/dist/neutral/simple/datalake/SimpleDataLakeViewer.d.ts +23 -0
- package/dist/neutral/simple/datalake/SimpleDataLakeViewer.d.ts.map +1 -0
- package/dist/neutral/simple/datalake/index.d.ts +3 -0
- package/dist/neutral/simple/datalake/index.d.ts.map +1 -0
- package/dist/neutral/simple/gateway/SimpleXyoGateway.d.ts +9 -0
- package/dist/neutral/simple/gateway/SimpleXyoGateway.d.ts.map +1 -0
- package/dist/neutral/simple/gateway/SimpleXyoGatewayRunner.d.ts +20 -0
- package/dist/neutral/simple/gateway/SimpleXyoGatewayRunner.d.ts.map +1 -0
- package/dist/neutral/simple/gateway/index.d.ts +3 -0
- package/dist/neutral/simple/gateway/index.d.ts.map +1 -0
- package/dist/neutral/simple/index.d.ts +8 -0
- package/dist/neutral/simple/index.d.ts.map +1 -0
- package/dist/neutral/simple/network/SimpleXyoNetwork.d.ts +9 -0
- package/dist/neutral/simple/network/SimpleXyoNetwork.d.ts.map +1 -0
- package/dist/neutral/simple/network/index.d.ts +2 -0
- package/dist/neutral/simple/network/index.d.ts.map +1 -0
- package/dist/neutral/simple/network/lib/FailedNetworkStatusPayloads.d.ts +4 -0
- package/dist/neutral/simple/network/lib/FailedNetworkStatusPayloads.d.ts.map +1 -0
- package/dist/neutral/simple/network/lib/StatusNetworks.d.ts +10 -0
- package/dist/neutral/simple/network/lib/StatusNetworks.d.ts.map +1 -0
- package/dist/neutral/simple/network/lib/index.d.ts +3 -0
- package/dist/neutral/simple/network/lib/index.d.ts.map +1 -0
- package/dist/neutral/simple/network/spec/XyoNetwork.spec.d.ts +2 -0
- package/dist/neutral/simple/network/spec/XyoNetwork.spec.d.ts.map +1 -0
- package/dist/neutral/simple/permissions/SimpleXyoPermissions.d.ts +17 -0
- package/dist/neutral/simple/permissions/SimpleXyoPermissions.d.ts.map +1 -0
- package/dist/neutral/simple/permissions/index.d.ts +3 -0
- package/dist/neutral/simple/permissions/index.d.ts.map +1 -0
- package/dist/neutral/simple/permissions/spec/SimpleXyoPermissions.spec.d.ts +2 -0
- package/dist/neutral/simple/permissions/spec/SimpleXyoPermissions.spec.d.ts.map +1 -0
- package/dist/neutral/simple/permissions/store/MemoryPermissions.d.ts +16 -0
- package/dist/neutral/simple/permissions/store/MemoryPermissions.d.ts.map +1 -0
- package/dist/neutral/simple/permissions/store/PermissionsStore.d.ts +12 -0
- package/dist/neutral/simple/permissions/store/PermissionsStore.d.ts.map +1 -0
- package/dist/neutral/simple/permissions/store/index.d.ts +3 -0
- package/dist/neutral/simple/permissions/store/index.d.ts.map +1 -0
- package/dist/neutral/simple/runner/SimpleXyoRunner.d.ts +11 -0
- package/dist/neutral/simple/runner/SimpleXyoRunner.d.ts.map +1 -0
- package/dist/neutral/simple/runner/index.d.ts +2 -0
- package/dist/neutral/simple/runner/index.d.ts.map +1 -0
- package/dist/neutral/simple/signer/SimpleXyoSigner.d.ts +15 -0
- package/dist/neutral/simple/signer/SimpleXyoSigner.d.ts.map +1 -0
- package/dist/neutral/simple/signer/index.d.ts +2 -0
- package/dist/neutral/simple/signer/index.d.ts.map +1 -0
- package/package.json +22 -17
- package/src/driver/cache/LruCacheMap.ts +6 -0
- package/src/driver/memory/MemoryMap.ts +6 -0
- package/src/index.ts +1 -0
- package/src/interfaces/viewers/index.ts +0 -1
- package/src/map/AsynchronousMap.ts +1 -0
- package/src/map/SynchronousMap.ts +1 -0
- package/src/model/index.ts +1 -0
- package/src/provider/DataLake.ts +19 -0
- package/src/provider/XyoClient.ts +3 -3
- package/src/provider/XyoConnection.ts +4 -47
- package/src/provider/XyoGateway.ts +4 -12
- package/src/provider/XyoGatewayRunner.ts +42 -0
- package/src/provider/index.ts +4 -4
- package/src/provider/{XyoSigner.ts → signer/XyoSigner.ts} +2 -2
- package/src/provider/signer/index.ts +1 -0
- package/src/{interfaces/viewers/NetworkStakeViewer → provider/viewer/NetworkStake}/NetworkStakeViewer.ts +2 -2
- package/src/provider/viewer/NetworkStake/Rewards/ByPositionViewer.ts +9 -0
- package/src/provider/viewer/NetworkStake/Rewards/ByStakerViewer.ts +10 -0
- package/src/provider/viewer/NetworkStake/Rewards/ByStepViewer.ts +10 -0
- package/src/provider/viewer/NetworkStake/Rewards/Options.ts +18 -0
- package/src/provider/viewer/NetworkStake/Rewards/TotalViewer.ts +9 -0
- package/src/provider/viewer/NetworkStake/Rewards/Viewer.ts +13 -0
- package/src/provider/viewer/NetworkStake/Rewards/index.ts +7 -0
- package/src/provider/viewer/NetworkStake/Rewards/templates/ByIndexMethodsTemplate.ts +7 -0
- package/src/{interfaces/viewers/NetworkStakeViewer/RewardsViewerMethodsTemplate.ts → provider/viewer/NetworkStake/Rewards/templates/MethodsTemplate.ts} +1 -1
- package/src/provider/viewer/NetworkStake/Rewards/templates/index.ts +2 -0
- package/src/provider/viewer/NetworkStake/index.ts +4 -0
- package/src/{interfaces/viewers/NetworkStakeViewer → provider/viewer}/StepViewer.ts +8 -3
- package/src/provider/{XyoViewer.ts → viewer/XyoViewer.ts} +5 -3
- package/src/provider/viewer/index.ts +3 -0
- package/src/simple/client/SimpleXyoClient.ts +13 -0
- package/src/simple/client/index.ts +1 -0
- package/src/simple/datalake/SimpleDataLakeRunner.ts +36 -0
- package/src/simple/datalake/SimpleDataLakeViewer.ts +74 -0
- package/src/simple/datalake/index.ts +2 -0
- package/src/simple/gateway/SimpleXyoGateway.ts +21 -0
- package/src/simple/gateway/SimpleXyoGatewayRunner.ts +116 -0
- package/src/simple/gateway/index.ts +2 -0
- package/src/simple/index.ts +7 -0
- package/src/simple/network/SimpleXyoNetwork.ts +48 -0
- package/src/simple/network/index.ts +1 -0
- package/src/simple/network/lib/FailedNetworkStatusPayloads.ts +14 -0
- package/src/simple/network/lib/StatusNetworks.ts +27 -0
- package/src/simple/network/lib/index.ts +2 -0
- package/src/simple/network/spec/XyoNetwork.spec.ts +77 -0
- package/src/simple/permissions/SimpleXyoPermissions.ts +82 -0
- package/src/simple/permissions/index.ts +2 -0
- package/src/simple/permissions/spec/SimpleXyoPermissions.spec.ts +93 -0
- package/src/simple/permissions/store/MemoryPermissions.ts +32 -0
- package/src/simple/permissions/store/PermissionsStore.ts +15 -0
- package/src/simple/permissions/store/index.ts +2 -0
- package/src/simple/runner/SimpleXyoRunner.ts +29 -0
- package/src/simple/runner/index.ts +1 -0
- package/src/simple/signer/SimpleXyoSigner.ts +52 -0
- package/src/simple/signer/index.ts +1 -0
- package/dist/neutral/interfaces/viewers/NetworkStakeViewer/NetworkStakeViewer.d.ts.map +0 -1
- package/dist/neutral/interfaces/viewers/NetworkStakeViewer/RecordKeyType.d.ts.map +0 -1
- package/dist/neutral/interfaces/viewers/NetworkStakeViewer/RewardsByIndexViewerMethodsTemplate.d.ts +0 -6
- package/dist/neutral/interfaces/viewers/NetworkStakeViewer/RewardsByIndexViewerMethodsTemplate.d.ts.map +0 -1
- package/dist/neutral/interfaces/viewers/NetworkStakeViewer/RewardsByPositionViewer.d.ts +0 -7
- package/dist/neutral/interfaces/viewers/NetworkStakeViewer/RewardsByPositionViewer.d.ts.map +0 -1
- package/dist/neutral/interfaces/viewers/NetworkStakeViewer/RewardsByStakerViewer.d.ts +0 -8
- package/dist/neutral/interfaces/viewers/NetworkStakeViewer/RewardsByStakerViewer.d.ts.map +0 -1
- package/dist/neutral/interfaces/viewers/NetworkStakeViewer/RewardsByStepViewer.d.ts +0 -8
- package/dist/neutral/interfaces/viewers/NetworkStakeViewer/RewardsByStepViewer.d.ts.map +0 -1
- package/dist/neutral/interfaces/viewers/NetworkStakeViewer/RewardsTotalViewer.d.ts +0 -8
- package/dist/neutral/interfaces/viewers/NetworkStakeViewer/RewardsTotalViewer.d.ts.map +0 -1
- package/dist/neutral/interfaces/viewers/NetworkStakeViewer/RewardsViewerMethodsTemplate.d.ts.map +0 -1
- package/dist/neutral/interfaces/viewers/NetworkStakeViewer/RewardsViewerOptions.d.ts +0 -15
- package/dist/neutral/interfaces/viewers/NetworkStakeViewer/RewardsViewerOptions.d.ts.map +0 -1
- package/dist/neutral/interfaces/viewers/NetworkStakeViewer/StepRewardsViewer.d.ts +0 -13
- package/dist/neutral/interfaces/viewers/NetworkStakeViewer/StepRewardsViewer.d.ts.map +0 -1
- package/dist/neutral/interfaces/viewers/NetworkStakeViewer/StepViewer.d.ts.map +0 -1
- package/dist/neutral/interfaces/viewers/NetworkStakeViewer/index.d.ts +0 -12
- package/dist/neutral/interfaces/viewers/NetworkStakeViewer/index.d.ts.map +0 -1
- package/dist/neutral/provider/XyoDataLake.d.ts +0 -18
- package/dist/neutral/provider/XyoDataLake.d.ts.map +0 -1
- package/dist/neutral/provider/XyoGatewayHelpers.d.ts +0 -16
- package/dist/neutral/provider/XyoGatewayHelpers.d.ts.map +0 -1
- package/dist/neutral/provider/XyoSigner.d.ts.map +0 -1
- package/dist/neutral/provider/XyoViewer.d.ts.map +0 -1
- package/src/interfaces/viewers/NetworkStakeViewer/RewardsByIndexViewerMethodsTemplate.ts +0 -7
- package/src/interfaces/viewers/NetworkStakeViewer/RewardsByPositionViewer.ts +0 -7
- package/src/interfaces/viewers/NetworkStakeViewer/RewardsByStakerViewer.ts +0 -9
- package/src/interfaces/viewers/NetworkStakeViewer/RewardsByStepViewer.ts +0 -9
- package/src/interfaces/viewers/NetworkStakeViewer/RewardsTotalViewer.ts +0 -9
- package/src/interfaces/viewers/NetworkStakeViewer/RewardsViewerOptions.ts +0 -18
- package/src/interfaces/viewers/NetworkStakeViewer/StepRewardsViewer.ts +0 -13
- package/src/interfaces/viewers/NetworkStakeViewer/index.ts +0 -13
- package/src/provider/XyoDataLake.ts +0 -43
- package/src/provider/XyoGatewayHelpers.ts +0 -30
- /package/dist/neutral/{interfaces/viewers/NetworkStakeViewer → model}/RecordKeyType.d.ts +0 -0
- /package/src/{interfaces/viewers/NetworkStakeViewer → model}/RecordKeyType.ts +0 -0
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import type {
|
|
2
|
+
Address, Hash, Hex,
|
|
3
|
+
} from '@xylabs/hex'
|
|
4
|
+
import type { Promisable } from '@xylabs/promise'
|
|
5
|
+
import type { Payload } from '@xyo-network/payload-model'
|
|
6
|
+
import type {
|
|
7
|
+
AllowedBlockPayload, AttoXL1, SignedHydratedTransaction, SignedHydratedTransactionWithHashMeta, TransactionFeesBigInt,
|
|
8
|
+
UnsignedHydratedTransaction,
|
|
9
|
+
} from '@xyo-network/xl1-protocol'
|
|
10
|
+
|
|
11
|
+
import type { DataLakeRunner } from './DataLake.ts'
|
|
12
|
+
import type { XyoGateway } from './XyoGateway.ts'
|
|
13
|
+
|
|
14
|
+
export interface TransactionOptions {
|
|
15
|
+
chain?: Hex
|
|
16
|
+
exp?: number
|
|
17
|
+
fees?: TransactionFeesBigInt
|
|
18
|
+
from?: Address
|
|
19
|
+
nbf?: number
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export interface XyoGatewayRunnerMethods {
|
|
23
|
+
|
|
24
|
+
addPayloadsToChain(
|
|
25
|
+
onChain: AllowedBlockPayload[],
|
|
26
|
+
offChain: Payload[],
|
|
27
|
+
options?: TransactionOptions
|
|
28
|
+
): Promisable<[Hash, SignedHydratedTransactionWithHashMeta]>
|
|
29
|
+
|
|
30
|
+
addTransactionToChain(
|
|
31
|
+
tx: UnsignedHydratedTransaction | SignedHydratedTransaction,
|
|
32
|
+
): Promisable<[Hash, SignedHydratedTransactionWithHashMeta]>
|
|
33
|
+
|
|
34
|
+
send(to: Address, amount: AttoXL1, options?: TransactionOptions): Promisable<Hash>
|
|
35
|
+
sendMany(transfers: Record<Address, AttoXL1>, options?: TransactionOptions): Promisable<Hash>
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
export interface XyoGatewayRunner extends XyoGatewayRunnerMethods, XyoGateway {
|
|
39
|
+
dataLakes: DataLakeRunner[]
|
|
40
|
+
addDataLake(dataLake: DataLakeRunner): number
|
|
41
|
+
removeDataLake(index: number): void
|
|
42
|
+
}
|
package/src/provider/index.ts
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
+
export * from './DataLake.ts'
|
|
1
2
|
export * from './permissions/index.ts'
|
|
3
|
+
export * from './signer/index.ts'
|
|
2
4
|
export * from './TransactionSubmitter.ts'
|
|
5
|
+
export * from './viewer/index.ts'
|
|
3
6
|
export * from './XyoClient.ts'
|
|
4
7
|
export * from './XyoConnection.ts'
|
|
5
|
-
export * from './XyoDataLake.ts'
|
|
6
8
|
export * from './XyoGateway.ts'
|
|
7
|
-
export * from './
|
|
9
|
+
export * from './XyoGatewayRunner.ts'
|
|
8
10
|
export * from './XyoNetwork.ts'
|
|
9
11
|
export * from './XyoRunner.ts'
|
|
10
|
-
export * from './XyoSigner.ts'
|
|
11
|
-
export * from './XyoViewer.ts'
|
|
12
12
|
export * from './XyoWallet.ts'
|
|
@@ -3,7 +3,7 @@ import type { Promisable } from '@xylabs/promise'
|
|
|
3
3
|
import type { Signed, UnsignedBoundWitness } from '@xyo-network/boundwitness-model'
|
|
4
4
|
import type { Payload } from '@xyo-network/payload-model'
|
|
5
5
|
import type {
|
|
6
|
-
AllowedBlockPayload, ChainId, TransactionBoundWitness,
|
|
6
|
+
AllowedBlockPayload, ChainId, SignedHydratedTransactionWithHashMeta, TransactionBoundWitness,
|
|
7
7
|
TransactionFeesBigInt,
|
|
8
8
|
} from '@xyo-network/xl1-protocol'
|
|
9
9
|
|
|
@@ -12,7 +12,7 @@ export interface XyoSigner {
|
|
|
12
12
|
// The tx passed in must have all the payloads (on and off chain) in the payloads array
|
|
13
13
|
// Returns the signed transaction and the payloads array excluding the off-chain payloads.
|
|
14
14
|
// The return value is ready to be broadcast to block producers
|
|
15
|
-
signTransaction(tx: [UnsignedBoundWitness<TransactionBoundWitness>, Payload[]]): Promisable<
|
|
15
|
+
signTransaction(tx: [UnsignedBoundWitness<TransactionBoundWitness>, Payload[]]): Promisable<SignedHydratedTransactionWithHashMeta>
|
|
16
16
|
}
|
|
17
17
|
|
|
18
18
|
export interface XyoSignerDeprecated {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './XyoSigner.ts'
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { Promisable } from '@xylabs/promise'
|
|
2
2
|
|
|
3
|
-
import type {
|
|
3
|
+
import type { NetworkStakeStepRewardsViewer } from './Rewards/index.ts'
|
|
4
4
|
|
|
5
5
|
export interface NetworkStakeViewerMethods {
|
|
6
6
|
/** @returns the active stake and the number of active validators [active, block] */
|
|
@@ -8,5 +8,5 @@ export interface NetworkStakeViewerMethods {
|
|
|
8
8
|
}
|
|
9
9
|
|
|
10
10
|
export interface NetworkStakeViewer extends NetworkStakeViewerMethods {
|
|
11
|
-
stepRewards?:
|
|
11
|
+
stepRewards?: NetworkStakeStepRewardsViewer
|
|
12
12
|
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { NetworkStakeStepRewardsByPositionViewerOptions } from './Options.ts'
|
|
2
|
+
import type { NetworkStakeStepRewardsByIndexViewerMethodsTemplate } from './templates/index.ts'
|
|
3
|
+
|
|
4
|
+
// Note: Viewers are client objects that can nest other viewers and ViewerMethods objects consist only of methods that return data.
|
|
5
|
+
|
|
6
|
+
export interface NetworkStakeStepRewardsByPositionViewerMethods extends
|
|
7
|
+
NetworkStakeStepRewardsByIndexViewerMethodsTemplate<NetworkStakeStepRewardsByPositionViewerOptions, number> {}
|
|
8
|
+
|
|
9
|
+
export interface NetworkStakeStepRewardsByPositionViewer extends NetworkStakeStepRewardsByPositionViewerMethods {}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { Address } from '@xylabs/hex'
|
|
2
|
+
|
|
3
|
+
import type { NetworkStakeStepRewardsByStakerViewerOptions } from './Options.ts'
|
|
4
|
+
import type { NetworkStakeStepRewardsByIndexViewerMethodsTemplate } from './templates/index.ts'
|
|
5
|
+
|
|
6
|
+
// Note: Viewers are client objects that can nest other viewers and ViewerMethods objects consist only of methods that return data.
|
|
7
|
+
|
|
8
|
+
export interface NetworkStakeStepRewardsByStakerViewerMethods
|
|
9
|
+
extends NetworkStakeStepRewardsByIndexViewerMethodsTemplate<NetworkStakeStepRewardsByStakerViewerOptions, Address> {}
|
|
10
|
+
export interface NetworkStakeStepRewardsByStakerViewer extends NetworkStakeStepRewardsByStakerViewerMethods {}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { StepIdentityString } from '@xyo-network/xl1-protocol'
|
|
2
|
+
|
|
3
|
+
import type { NetworkStakeStepRewardsByStepViewerOptions } from './Options.ts'
|
|
4
|
+
import type { NetworkStakeStepRewardsByIndexViewerMethodsTemplate } from './templates/index.ts'
|
|
5
|
+
|
|
6
|
+
// Note: Viewers are client objects that can nest other viewers and ViewerMethods objects consist only of methods that return data.
|
|
7
|
+
|
|
8
|
+
export interface NetworkStakeStepRewardsByStepViewerMethods extends
|
|
9
|
+
NetworkStakeStepRewardsByIndexViewerMethodsTemplate<NetworkStakeStepRewardsByStepViewerOptions, StepIdentityString> {}
|
|
10
|
+
export interface NetworkStakeStepRewardsByStepViewer extends NetworkStakeStepRewardsByStepViewerMethods {}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { Address } from '@xylabs/hex'
|
|
2
|
+
import type { BlockRange, StepIdentity } from '@xyo-network/xl1-protocol'
|
|
3
|
+
|
|
4
|
+
export interface NetworkStakeStepRewardsRangeOptions {
|
|
5
|
+
range?: BlockRange
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
export interface NetworkStakeStepRewardsByStepViewerOptions extends NetworkStakeStepRewardsRangeOptions {
|
|
9
|
+
steps?: StepIdentity[]
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export interface NetworkStakeStepRewardsByStakerViewerOptions extends NetworkStakeStepRewardsRangeOptions {
|
|
13
|
+
stakers?: Address[]
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export interface NetworkStakeStepRewardsByPositionViewerOptions extends NetworkStakeStepRewardsRangeOptions {
|
|
17
|
+
positions?: number[]
|
|
18
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { AttoXL1 } from '@xyo-network/xl1-protocol'
|
|
2
|
+
|
|
3
|
+
import type { NetworkStakeStepRewardsRangeOptions } from './Options.ts'
|
|
4
|
+
import type { NetworkStakeStepRewardsViewerMethodsTemplate } from './templates/index.ts'
|
|
5
|
+
|
|
6
|
+
// Note: Viewers are client objects that can nest other viewers and ViewerMethods objects consist only of methods that return data.
|
|
7
|
+
|
|
8
|
+
export interface NetworkStakeStepRewardsTotalViewerMethods extends NetworkStakeStepRewardsViewerMethodsTemplate<NetworkStakeStepRewardsRangeOptions, AttoXL1> {}
|
|
9
|
+
export interface NetworkStakeStepRewardsTotalViewer extends NetworkStakeStepRewardsTotalViewerMethods {}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { NetworkStakeStepRewardsByPositionViewer } from './ByPositionViewer.ts'
|
|
2
|
+
import type { NetworkStakeStepRewardsByStakerViewer } from './ByStakerViewer.ts'
|
|
3
|
+
import type { NetworkStakeStepRewardsByStepViewer } from './ByStepViewer.ts'
|
|
4
|
+
import type { NetworkStakeStepRewardsTotalViewer } from './TotalViewer.ts'
|
|
5
|
+
|
|
6
|
+
export interface NetworkStakeStepRewardsViewerMethods {}
|
|
7
|
+
|
|
8
|
+
export interface NetworkStakeStepRewardsViewer extends NetworkStakeStepRewardsViewerMethods {
|
|
9
|
+
position?: NetworkStakeStepRewardsByPositionViewer
|
|
10
|
+
staker?: NetworkStakeStepRewardsByStakerViewer
|
|
11
|
+
step?: NetworkStakeStepRewardsByStepViewer
|
|
12
|
+
total?: NetworkStakeStepRewardsTotalViewer
|
|
13
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { AttoXL1 } from '@xyo-network/xl1-protocol'
|
|
2
|
+
|
|
3
|
+
import type { RecordKeyType } from '../../../../../model/index.ts'
|
|
4
|
+
import type { NetworkStakeStepRewardsViewerMethodsTemplate } from './MethodsTemplate.ts'
|
|
5
|
+
|
|
6
|
+
export interface NetworkStakeStepRewardsByIndexViewerMethodsTemplate<TOptions, TResultIndex extends RecordKeyType>
|
|
7
|
+
extends NetworkStakeStepRewardsViewerMethodsTemplate<TOptions, Record<TResultIndex, AttoXL1>> {}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { Promisable } from '@xylabs/promise'
|
|
2
2
|
|
|
3
|
-
export interface
|
|
3
|
+
export interface NetworkStakeStepRewardsViewerMethodsTemplate<TOptions, TResult> {
|
|
4
4
|
bonus(options?: TOptions): Promisable<TResult>
|
|
5
5
|
claimed(options?: TOptions): Promisable<TResult>
|
|
6
6
|
earned(options?: TOptions): Promisable<TResult>
|
|
@@ -2,7 +2,8 @@ import type { Address } from '@xylabs/hex'
|
|
|
2
2
|
import type { Promisable } from '@xylabs/promise'
|
|
3
3
|
import type { PositionId, StepIdentity } from '@xyo-network/xl1-protocol'
|
|
4
4
|
|
|
5
|
-
import type { Position } from '
|
|
5
|
+
import type { Position } from '../../interfaces/index.ts'
|
|
6
|
+
import type { NetworkStakeStepRewardsViewer } from './NetworkStake/index.ts'
|
|
6
7
|
|
|
7
8
|
export interface PagedPositionsOptions {
|
|
8
9
|
cursor?: PositionId
|
|
@@ -37,6 +38,10 @@ export interface StepViewerMethods {
|
|
|
37
38
|
|
|
38
39
|
stakers(step: StepIdentity, options?: PagedStakersOptions): Promisable<Address[]>
|
|
39
40
|
|
|
40
|
-
//
|
|
41
|
-
weight(step: StepIdentity): Promisable<bigint>
|
|
41
|
+
// if no positionId is supplied, returns the total stake weight for the step
|
|
42
|
+
weight(step: StepIdentity, positionId?: PositionId): Promisable<bigint>
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
export interface StepViewer extends StepViewerMethods {
|
|
46
|
+
rewards?: NetworkStakeStepRewardsViewer
|
|
42
47
|
}
|
|
@@ -2,10 +2,11 @@ import type {
|
|
|
2
2
|
AccountBalanceViewInterface, BlockViewInterface, ChainViewInterface,
|
|
3
3
|
ForkViewer,
|
|
4
4
|
NetworkStakeStepRewardViewInterface,
|
|
5
|
-
NetworkStakeViewer,
|
|
6
5
|
StakeViewer,
|
|
7
6
|
TransactionViewInterface, TransferBalanceViewInterface,
|
|
8
|
-
} from '
|
|
7
|
+
} from '../../interfaces/index.ts'
|
|
8
|
+
import type { NetworkStakeViewer } from './NetworkStake/index.ts'
|
|
9
|
+
import type { StepViewer } from './StepViewer.ts'
|
|
9
10
|
|
|
10
11
|
export interface XyoViewerMethods extends AccountBalanceViewInterface, TransferBalanceViewInterface,
|
|
11
12
|
NetworkStakeStepRewardViewInterface,
|
|
@@ -13,5 +14,6 @@ export interface XyoViewerMethods extends AccountBalanceViewInterface, TransferB
|
|
|
13
14
|
}
|
|
14
15
|
|
|
15
16
|
export interface XyoViewer extends XyoViewerMethods {
|
|
16
|
-
|
|
17
|
+
networkStake?: NetworkStakeViewer
|
|
18
|
+
step?: StepViewer
|
|
17
19
|
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type {
|
|
2
|
+
XyoClient, XyoGateway, XyoPermissions,
|
|
3
|
+
} from '../../provider/index.ts'
|
|
4
|
+
|
|
5
|
+
export class SimpleXyoClient implements XyoClient {
|
|
6
|
+
gateways: Readonly<Record<string, XyoGateway>>
|
|
7
|
+
permissions: XyoPermissions
|
|
8
|
+
|
|
9
|
+
constructor(gateways: Readonly<Record<string, XyoGateway>>, permissions: XyoPermissions) {
|
|
10
|
+
this.gateways = gateways
|
|
11
|
+
this.permissions = permissions
|
|
12
|
+
}
|
|
13
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './SimpleXyoClient.ts'
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import type { Hash } from '@xylabs/hex'
|
|
2
|
+
|
|
3
|
+
import type { MapType } from '../../map/index.ts'
|
|
4
|
+
import type {
|
|
5
|
+
DataLakeData,
|
|
6
|
+
DataLakeRunner,
|
|
7
|
+
} from '../../provider/index.ts'
|
|
8
|
+
import type { DataLakeViewerParams } from './SimpleDataLakeViewer.ts'
|
|
9
|
+
import { SimpleDataLakeViewer } from './SimpleDataLakeViewer.ts'
|
|
10
|
+
|
|
11
|
+
export interface DataLakeRunnerParams extends DataLakeViewerParams<MapType<Hash, DataLakeData>> {}
|
|
12
|
+
|
|
13
|
+
export class SimpleDataLakeRunner<TParams extends DataLakeRunnerParams> extends SimpleDataLakeViewer<MapType<Hash, DataLakeData>> implements DataLakeRunner {
|
|
14
|
+
constructor(params: TParams) {
|
|
15
|
+
super(params)
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
async clear(): Promise<void> {
|
|
19
|
+
await this.map.clear()
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
async delete(hash: Hash): Promise<boolean> {
|
|
23
|
+
return await this.map.delete(hash)
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
async set(hash: Hash, data: DataLakeData): Promise<void> {
|
|
27
|
+
if (this.isAllowed(data)) {
|
|
28
|
+
await this.map.set(hash, data)
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
async setMany(entries: [Hash, DataLakeData][]): Promise<void> {
|
|
33
|
+
const allowed = entries.filter(([_, data]) => this.isAllowed(data))
|
|
34
|
+
return await this.map.setMany(allowed)
|
|
35
|
+
}
|
|
36
|
+
}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import type { Hash } from '@xylabs/hex'
|
|
2
|
+
import { isAnyPayload, type Schema } from '@xyo-network/payload-model'
|
|
3
|
+
|
|
4
|
+
import type { MapTypeRead } from '../../map/index.ts'
|
|
5
|
+
import type {
|
|
6
|
+
DataLakeData,
|
|
7
|
+
DataLakeViewer,
|
|
8
|
+
} from '../../provider/index.ts'
|
|
9
|
+
|
|
10
|
+
export interface DataLakeViewerParams<TMap extends MapTypeRead<Hash, DataLakeData> = MapTypeRead<Hash, DataLakeData>> {
|
|
11
|
+
allowedSchemas?: Schema[]
|
|
12
|
+
disallowedSchemas?: Schema[]
|
|
13
|
+
map: TMap
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export class SimpleDataLakeViewer<TMap extends MapTypeRead<Hash, DataLakeData> = MapTypeRead<Hash, DataLakeData>,
|
|
17
|
+
TParams extends DataLakeViewerParams<TMap> = DataLakeViewerParams<TMap>> implements DataLakeViewer {
|
|
18
|
+
private readonly _params: TParams
|
|
19
|
+
|
|
20
|
+
constructor(params: TParams) {
|
|
21
|
+
this._params = params
|
|
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
|
+
}
|
|
39
|
+
|
|
40
|
+
async get(hash: Hash): Promise<DataLakeData | undefined> {
|
|
41
|
+
const result = await this.map.get(hash)
|
|
42
|
+
return this.isAllowed(result) ? result : undefined
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
async getMany(hashes: Hash[]): Promise<DataLakeData[]> {
|
|
46
|
+
const result = await this.map.getMany(hashes)
|
|
47
|
+
return result.filter(data => this.isAllowed(data))
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
async has(hash: Hash): Promise<boolean> {
|
|
51
|
+
const value = await this.get(hash)
|
|
52
|
+
if (isAnyPayload(value)) {
|
|
53
|
+
return this.isAllowed(value)
|
|
54
|
+
}
|
|
55
|
+
return value !== undefined
|
|
56
|
+
}
|
|
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
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type {
|
|
2
|
+
XyoConnection, XyoGateway, XyoSigner,
|
|
3
|
+
} from '../../provider/index.ts'
|
|
4
|
+
|
|
5
|
+
export class SimpleXyoGateway implements XyoGateway {
|
|
6
|
+
private readonly _connection: XyoConnection
|
|
7
|
+
private readonly _signer: XyoSigner
|
|
8
|
+
|
|
9
|
+
constructor(signer: XyoSigner, connection: XyoConnection) {
|
|
10
|
+
this._signer = signer
|
|
11
|
+
this._connection = connection
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
get connection(): XyoConnection {
|
|
15
|
+
return this._connection
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
get signer(): XyoSigner {
|
|
19
|
+
return this._signer
|
|
20
|
+
}
|
|
21
|
+
}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
import { assertEx } from '@xylabs/assert'
|
|
2
|
+
import type {
|
|
3
|
+
Address, Hash, Hex,
|
|
4
|
+
} from '@xylabs/hex'
|
|
5
|
+
import { BigIntToJsonZod } from '@xylabs/hex'
|
|
6
|
+
import { isDefined } from '@xylabs/typeof'
|
|
7
|
+
import { PayloadBuilder } from '@xyo-network/payload-builder'
|
|
8
|
+
import type { Payload, WithHashMeta } from '@xyo-network/payload-model'
|
|
9
|
+
import {
|
|
10
|
+
type AllowedBlockPayload,
|
|
11
|
+
type AttoXL1,
|
|
12
|
+
type SignedHydratedTransaction,
|
|
13
|
+
type SignedHydratedTransactionWithHashMeta,
|
|
14
|
+
type Transfer,
|
|
15
|
+
TransferSchema,
|
|
16
|
+
} from '@xyo-network/xl1-protocol'
|
|
17
|
+
|
|
18
|
+
import type {
|
|
19
|
+
DataLakeRunner,
|
|
20
|
+
TransactionOptions,
|
|
21
|
+
XyoConnection, XyoGateway, XyoGatewayRunner,
|
|
22
|
+
XyoSigner,
|
|
23
|
+
} from '../../provider/index.ts'
|
|
24
|
+
import { buildUnsignedTransaction } from '../../transaction/index.ts'
|
|
25
|
+
|
|
26
|
+
export class SimpleXyoGatewayRunner implements XyoGatewayRunner {
|
|
27
|
+
protected readonly gateway: XyoGateway
|
|
28
|
+
private _dataLakes: (DataLakeRunner | null)[]
|
|
29
|
+
|
|
30
|
+
constructor(gateway: XyoGateway, dataLakes: DataLakeRunner[] = []) {
|
|
31
|
+
this.gateway = gateway
|
|
32
|
+
this._dataLakes = [...dataLakes]
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
get connection(): XyoConnection {
|
|
36
|
+
return this.gateway.connection
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
get dataLakes(): DataLakeRunner[] {
|
|
40
|
+
throw new Error('Method not implemented.')
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
get signer(): XyoSigner {
|
|
44
|
+
return this.gateway.signer
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
addDataLake(dataLake: DataLakeRunner): number {
|
|
48
|
+
this._dataLakes.push(dataLake)
|
|
49
|
+
return this._dataLakes.length - 1
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
async addPayloadsToChain(
|
|
53
|
+
onChain: AllowedBlockPayload[],
|
|
54
|
+
offChain: Payload[],
|
|
55
|
+
options?: TransactionOptions,
|
|
56
|
+
): Promise<[Hash, SignedHydratedTransactionWithHashMeta]> {
|
|
57
|
+
// Get chain providers
|
|
58
|
+
const viewer = assertEx(this.connection.viewer, () => 'No viewer available on connection')
|
|
59
|
+
|
|
60
|
+
// Resolve transaction options
|
|
61
|
+
const {
|
|
62
|
+
nbf, exp, chain, fees,
|
|
63
|
+
} = options ?? {}
|
|
64
|
+
const resolvedChainId = isDefined(chain) ? chain : await viewer.chainId()
|
|
65
|
+
const resolvedNbf = isDefined(nbf) ? nbf : await viewer?.currentBlockNumber()
|
|
66
|
+
const resolvedExp = isDefined(exp) ? exp : resolvedNbf + 10
|
|
67
|
+
|
|
68
|
+
// Build, sign, and broadcast the transaction
|
|
69
|
+
const tx = await buildUnsignedTransaction(resolvedChainId, onChain, offChain, resolvedNbf, resolvedExp, await this.signer.address(), fees)
|
|
70
|
+
return await this.addTransactionToChain(tx)
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
async addTransactionToChain(tx: SignedHydratedTransaction): Promise<[Hash, SignedHydratedTransactionWithHashMeta]> {
|
|
74
|
+
const connection = this.gateway.connection
|
|
75
|
+
const signer = this.gateway.signer
|
|
76
|
+
const runner = assertEx(connection.runner, () => 'No runner available on connection')
|
|
77
|
+
const signedTx = await signer.signTransaction(tx)
|
|
78
|
+
await this.addPayloadsToDataLakes(signedTx[1])
|
|
79
|
+
return [await runner.broadcastTransaction(
|
|
80
|
+
[await PayloadBuilder.addStorageMeta(signedTx[0]),
|
|
81
|
+
await PayloadBuilder.addStorageMeta(signedTx[1])],
|
|
82
|
+
), signedTx]
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
removeDataLake(index: number): void {
|
|
86
|
+
this._dataLakes[index] = null
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
async send(to: Address, amount: AttoXL1, options?: TransactionOptions): Promise<Hash> {
|
|
90
|
+
return await this.sendMany({ [to]: amount }, options)
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
async sendMany(transfers: Record<Address, AttoXL1>, options?: TransactionOptions): Promise<Hash> {
|
|
94
|
+
const from = await this.signer.address()
|
|
95
|
+
const hexTransfers: Record<Address, Hex> = Object.fromEntries(
|
|
96
|
+
Object.entries(transfers).map(([address, amount]) => ([
|
|
97
|
+
address, BigIntToJsonZod.parse(amount),
|
|
98
|
+
])),
|
|
99
|
+
)
|
|
100
|
+
const transfer = new PayloadBuilder<Transfer>({ schema: TransferSchema }).fields({
|
|
101
|
+
from,
|
|
102
|
+
transfers: hexTransfers,
|
|
103
|
+
epoch: Date.now(),
|
|
104
|
+
}).build()
|
|
105
|
+
const [hash] = await this.addPayloadsToChain([transfer], [], options)
|
|
106
|
+
return hash
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
protected async addPayloadsToDataLakes(payloads: WithHashMeta<Payload>[]): Promise<void> {
|
|
110
|
+
await Promise.all(this._dataLakes.map(async (dataLake) => {
|
|
111
|
+
await Promise.all(payloads.map(async (payload) => {
|
|
112
|
+
await dataLake?.set(payload._hash, payload)
|
|
113
|
+
}))
|
|
114
|
+
}))
|
|
115
|
+
}
|
|
116
|
+
}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { isUndefined } from '@xylabs/typeof'
|
|
2
|
+
import type {
|
|
3
|
+
GatewayName,
|
|
4
|
+
NetworkStatus,
|
|
5
|
+
} from '@xyo-network/xl1-protocol'
|
|
6
|
+
import { isNetworkStatus } from '@xyo-network/xl1-protocol'
|
|
7
|
+
import axios from 'axios'
|
|
8
|
+
|
|
9
|
+
import type { XyoNetwork } from '../../provider/index.ts'
|
|
10
|
+
import {
|
|
11
|
+
errorStatus, StatusNetworks, unknownStatus,
|
|
12
|
+
} from './lib/index.ts'
|
|
13
|
+
|
|
14
|
+
export class SimpleXyoNetwork implements XyoNetwork {
|
|
15
|
+
protected readonly _networkId: GatewayName
|
|
16
|
+
|
|
17
|
+
constructor(networkId: GatewayName) {
|
|
18
|
+
this._networkId = networkId
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
async status(): Promise<NetworkStatus> {
|
|
22
|
+
const statusNetwork = StatusNetworks[this._networkId]
|
|
23
|
+
if (isUndefined(statusNetwork)) {
|
|
24
|
+
throw new Error(`Unknown status network ID: ${this._networkId}`)
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
return await this.makeRequest(statusNetwork.statusUrl)
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
private async makeRequest(url: string): Promise<NetworkStatus> {
|
|
31
|
+
try {
|
|
32
|
+
const response = await axios.get(url)
|
|
33
|
+
if (isNetworkStatus(response.data)) {
|
|
34
|
+
return response.data
|
|
35
|
+
} else {
|
|
36
|
+
if (response.status === 200) {
|
|
37
|
+
console.error('Unknown network status response:', response.data)
|
|
38
|
+
|
|
39
|
+
return unknownStatus
|
|
40
|
+
}
|
|
41
|
+
return errorStatus
|
|
42
|
+
}
|
|
43
|
+
} catch (error) {
|
|
44
|
+
console.error('Error fetching network status:', error)
|
|
45
|
+
return errorStatus
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './SimpleXyoNetwork.ts'
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { NetworkStatus } from '@xyo-network/xl1-protocol'
|
|
2
|
+
import { NetworkStatusSchema } from '@xyo-network/xl1-protocol'
|
|
3
|
+
|
|
4
|
+
export const unknownStatus: NetworkStatus = {
|
|
5
|
+
description: 'Unknown Network Status',
|
|
6
|
+
schema: NetworkStatusSchema,
|
|
7
|
+
state: 'unknown',
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
export const errorStatus: NetworkStatus = {
|
|
11
|
+
description: 'Error Fetching Network Status',
|
|
12
|
+
schema: NetworkStatusSchema,
|
|
13
|
+
state: 'unknown',
|
|
14
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { GatewayName } from '@xyo-network/xl1-protocol'
|
|
2
|
+
|
|
3
|
+
export type StatusNetwork = {
|
|
4
|
+
id: GatewayName
|
|
5
|
+
statusUrl: string
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
export const MainNetworkStats: StatusNetwork = {
|
|
9
|
+
id: 'mainnet' as GatewayName,
|
|
10
|
+
statusUrl: 'https://xyo.network/chain-network-status-mainnet.json',
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export const SequenceNetworkStats: StatusNetwork = {
|
|
14
|
+
id: 'sequence' as GatewayName,
|
|
15
|
+
statusUrl: 'https://beta.xyo.network/chain-network-status-sequence.json',
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export const LocalNetworkStats: StatusNetwork = {
|
|
19
|
+
id: 'local' as GatewayName,
|
|
20
|
+
statusUrl: 'http://localhost:3002/chain-network-status-local.json',
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
export const StatusNetworks: Record<GatewayName, StatusNetwork> = {
|
|
24
|
+
['mainnet' as GatewayName]: MainNetworkStats,
|
|
25
|
+
['sequence' as GatewayName]: SequenceNetworkStats,
|
|
26
|
+
['local' as GatewayName]: LocalNetworkStats,
|
|
27
|
+
}
|