@xyo-network/xl1-protocol-sdk 1.19.0 → 1.19.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/CreatableProvider/CreatableProviderRegistry.d.ts.map +1 -1
- package/dist/neutral/index.mjs +44 -44
- package/dist/neutral/index.mjs.map +1 -1
- package/dist/neutral/provider/DataLake.d.ts +5 -3
- package/dist/neutral/provider/DataLake.d.ts.map +1 -1
- package/dist/neutral/provider/DataLakes.d.ts +20 -0
- package/dist/neutral/provider/DataLakes.d.ts.map +1 -0
- package/dist/neutral/provider/TransactionSubmitter.d.ts.map +1 -1
- package/dist/neutral/provider/XyoGateway.d.ts +14 -10
- package/dist/neutral/provider/XyoGateway.d.ts.map +1 -1
- package/dist/neutral/provider/XyoGatewayRunner.d.ts +10 -6
- package/dist/neutral/provider/XyoGatewayRunner.d.ts.map +1 -1
- package/dist/neutral/provider/index.d.ts +1 -0
- package/dist/neutral/provider/index.d.ts.map +1 -1
- package/dist/neutral/provider/signer/XyoSigner.d.ts +4 -1
- package/dist/neutral/provider/signer/XyoSigner.d.ts.map +1 -1
- package/dist/neutral/services/Chain/ChainService.d.ts +1 -0
- package/dist/neutral/services/Chain/ChainService.d.ts.map +1 -1
- package/dist/neutral/simple/gateway/SimpleXyoGateway.d.ts +15 -10
- package/dist/neutral/simple/gateway/SimpleXyoGateway.d.ts.map +1 -1
- package/dist/neutral/simple/gateway/SimpleXyoGatewayRunner.d.ts +19 -16
- package/dist/neutral/simple/gateway/SimpleXyoGatewayRunner.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/CreatableProvider/CreatableProviderRegistry.ts +0 -1
- package/src/provider/DataLake.ts +5 -3
- package/src/provider/DataLakes.ts +26 -0
- package/src/provider/TransactionSubmitter.ts +0 -1
- package/src/provider/XyoGateway.ts +20 -12
- package/src/provider/XyoGatewayRunner.ts +11 -6
- package/src/provider/index.ts +1 -0
- package/src/provider/signer/XyoSigner.ts +5 -1
- package/src/services/Chain/ChainService.ts +1 -0
- package/src/simple/gateway/SimpleXyoGateway.ts +24 -19
- package/src/simple/gateway/SimpleXyoGatewayRunner.ts +35 -40
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type {
|
|
2
|
-
Address, Hash, Hex,
|
|
2
|
+
Address, Hash, Hex,
|
|
3
3
|
} from '@xylabs/sdk-js'
|
|
4
4
|
import {
|
|
5
5
|
assertEx, BigIntToJsonZod, isDefined,
|
|
@@ -18,50 +18,55 @@ import {
|
|
|
18
18
|
TransferSchema,
|
|
19
19
|
} from '@xyo-network/xl1-protocol'
|
|
20
20
|
|
|
21
|
+
import type { CreatableProviderParams } from '../../CreatableProvider/index.ts'
|
|
22
|
+
import { AbstractCreatableProvider } from '../../CreatableProvider/index.ts'
|
|
21
23
|
import type {
|
|
22
24
|
DataLakeRunner,
|
|
25
|
+
DataLakesRunner,
|
|
23
26
|
TransactionOptions,
|
|
24
|
-
XyoConnection,
|
|
27
|
+
XyoConnection,
|
|
28
|
+
XyoGatewayRunner,
|
|
25
29
|
XyoSigner,
|
|
26
30
|
} from '../../provider/index.ts'
|
|
31
|
+
import {
|
|
32
|
+
XyoConnectionMoniker, XyoGatewayMoniker, XyoGatewayRunnerMoniker, XyoSignerMoniker,
|
|
33
|
+
} from '../../provider/index.ts'
|
|
27
34
|
import type { ConfirmSubmittedTransactionOptions } from '../../transaction/index.ts'
|
|
28
35
|
import { buildUnsignedTransaction, confirmSubmittedTransaction } from '../../transaction/index.ts'
|
|
29
36
|
|
|
30
|
-
export
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
37
|
+
export interface SimpleXyoGatewayRunnerParams extends CreatableProviderParams {
|
|
38
|
+
dataLakes?: DataLakeRunner[]
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
export class SimpleXyoGatewayRunner extends AbstractCreatableProvider<SimpleXyoGatewayRunnerParams> implements XyoGatewayRunner {
|
|
42
|
+
static readonly defaultMoniker = XyoGatewayRunnerMoniker
|
|
43
|
+
static readonly dependencies = [XyoConnectionMoniker, XyoSignerMoniker]
|
|
44
|
+
static readonly monikers = [XyoGatewayRunnerMoniker, XyoGatewayMoniker]
|
|
45
|
+
moniker = SimpleXyoGatewayRunner.defaultMoniker
|
|
34
46
|
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
this._signer = signer
|
|
39
|
-
}
|
|
47
|
+
private _connection!: XyoConnection
|
|
48
|
+
private _dataLakes?: DataLakesRunner
|
|
49
|
+
private _signer!: XyoSigner
|
|
40
50
|
|
|
41
|
-
get
|
|
51
|
+
get connection(): XyoConnection {
|
|
42
52
|
return this._connection
|
|
43
53
|
}
|
|
44
54
|
|
|
45
|
-
get dataLakes():
|
|
55
|
+
get dataLakes(): DataLakesRunner {
|
|
46
56
|
throw new Error('Method [dataLakes] not implemented.')
|
|
47
57
|
}
|
|
48
58
|
|
|
49
|
-
get
|
|
59
|
+
get signer(): XyoSigner {
|
|
50
60
|
return this._signer
|
|
51
61
|
}
|
|
52
62
|
|
|
53
|
-
addDataLake(dataLake: DataLakeRunner): number {
|
|
54
|
-
this._dataLakes.push(dataLake)
|
|
55
|
-
return this._dataLakes.length - 1
|
|
56
|
-
}
|
|
57
|
-
|
|
58
63
|
async addPayloadsToChain(
|
|
59
64
|
onChain: AllowedBlockPayload[],
|
|
60
65
|
offChain: Payload[],
|
|
61
66
|
options?: TransactionOptions,
|
|
62
67
|
): Promise<[Hash, SignedHydratedTransactionWithHashMeta]> {
|
|
63
68
|
// Get chain providers
|
|
64
|
-
const viewer = assertEx(this.
|
|
69
|
+
const viewer = assertEx(this.connection.viewer, () => 'No viewer available on connection')
|
|
65
70
|
|
|
66
71
|
// Resolve transaction options
|
|
67
72
|
const {
|
|
@@ -72,15 +77,14 @@ export class SimpleXyoGatewayRunner implements XyoGatewayRunner {
|
|
|
72
77
|
const resolvedExp = asXL1BlockNumber(isDefined(exp) ? exp : resolvedNbf + 10, true)
|
|
73
78
|
|
|
74
79
|
// Build, sign, and broadcast the transaction
|
|
75
|
-
|
|
76
|
-
const tx = await buildUnsignedTransaction(resolvedChainId, onChain, offChain, resolvedNbf, resolvedExp, await (await this.signer()).address(), fees)
|
|
80
|
+
const tx = await buildUnsignedTransaction(resolvedChainId, onChain, offChain, resolvedNbf, resolvedExp, await this.signer.address(), fees)
|
|
77
81
|
return await this.addTransactionToChain(tx)
|
|
78
82
|
}
|
|
79
83
|
|
|
80
84
|
async addTransactionToChain(tx: UnsignedHydratedTransaction): Promise<[Hash, SignedHydratedTransactionWithHashMeta]> {
|
|
81
|
-
const connection = this.
|
|
85
|
+
const connection = this.connection
|
|
82
86
|
|
|
83
|
-
const signer = this.
|
|
87
|
+
const signer = this.signer
|
|
84
88
|
const runner = assertEx(connection.runner, () => 'No runner available on connection')
|
|
85
89
|
const signedTx = await signer.signTransaction(tx)
|
|
86
90
|
await this.addPayloadsToDataLakes(signedTx[1])
|
|
@@ -91,19 +95,15 @@ export class SimpleXyoGatewayRunner implements XyoGatewayRunner {
|
|
|
91
95
|
|
|
92
96
|
async confirmSubmittedTransaction(txHash: Hash, options?: ConfirmSubmittedTransactionOptions): Promise<SignedHydratedTransaction> {
|
|
93
97
|
return await confirmSubmittedTransaction(
|
|
94
|
-
assertEx(this.
|
|
98
|
+
assertEx(this.connection.viewer, () => 'Connection viewer is undefined'),
|
|
95
99
|
txHash,
|
|
96
100
|
options,
|
|
97
101
|
)
|
|
98
102
|
}
|
|
99
103
|
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
removeDataLake(index: number): void {
|
|
106
|
-
this._dataLakes[index] = null
|
|
104
|
+
override async createHandler() {
|
|
105
|
+
await super.createHandler()
|
|
106
|
+
this._signer = await this.locator.getInstance<XyoSigner>(XyoSignerMoniker)
|
|
107
107
|
}
|
|
108
108
|
|
|
109
109
|
async send(to: Address, amount: AttoXL1, options?: TransactionOptions): Promise<Hash> {
|
|
@@ -111,8 +111,7 @@ export class SimpleXyoGatewayRunner implements XyoGatewayRunner {
|
|
|
111
111
|
}
|
|
112
112
|
|
|
113
113
|
async sendMany(transfers: Record<Address, AttoXL1>, options?: TransactionOptions): Promise<Hash> {
|
|
114
|
-
|
|
115
|
-
const from = await (await this.signer()).address()
|
|
114
|
+
const from = await this.signer.address()
|
|
116
115
|
const hexTransfers: Record<Address, Hex> = Object.fromEntries(
|
|
117
116
|
Object.entries(transfers).map(([address, amount]) => ([
|
|
118
117
|
address, BigIntToJsonZod.parse(amount),
|
|
@@ -127,13 +126,9 @@ export class SimpleXyoGatewayRunner implements XyoGatewayRunner {
|
|
|
127
126
|
return hash
|
|
128
127
|
}
|
|
129
128
|
|
|
130
|
-
/** @deprecated use signerInstance instead */
|
|
131
|
-
signer(): Promisable<XyoSigner> {
|
|
132
|
-
return this.signerInstance
|
|
133
|
-
}
|
|
134
|
-
|
|
135
129
|
protected async addPayloadsToDataLakes(payloads: WithHashMeta<Payload>[]): Promise<void> {
|
|
136
|
-
|
|
130
|
+
const dataLakes = this._dataLakes?.dataLakes ?? []
|
|
131
|
+
await Promise.all(dataLakes.map(async (dataLake) => {
|
|
137
132
|
await Promise.all(payloads.map(async (payload) => {
|
|
138
133
|
await dataLake?.set(payload._hash, payload)
|
|
139
134
|
}))
|