@xyo-network/xl1-protocol 1.12.21 → 1.12.22
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/block/AllowedBlockPayload.d.ts +2 -2
- package/dist/neutral/block/AllowedBlockPayload.d.ts.map +1 -1
- package/dist/neutral/index.mjs +101 -90
- package/dist/neutral/index.mjs.map +1 -1
- package/dist/neutral/payload/elevatable/Bridge/BridgeDestinationObservation.d.ts +21 -0
- package/dist/neutral/payload/elevatable/Bridge/BridgeDestinationObservation.d.ts.map +1 -0
- package/dist/neutral/payload/elevatable/Bridge/BridgeSourceObservation.d.ts +21 -0
- package/dist/neutral/payload/elevatable/Bridge/BridgeSourceObservation.d.ts.map +1 -0
- package/dist/neutral/payload/elevatable/Bridge/index.d.ts +2 -1
- package/dist/neutral/payload/elevatable/Bridge/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/block/AllowedBlockPayload.ts +17 -15
- package/src/payload/elevatable/Bridge/BridgeDestinationObservation.ts +28 -0
- package/src/payload/elevatable/Bridge/BridgeSourceObservation.ts +28 -0
- package/src/payload/elevatable/Bridge/index.ts +2 -1
- package/src/payload/elevatable/Bridge/spec/Bridge.test.ts +6 -5
- package/dist/neutral/payload/elevatable/Bridge/BridgeObservation.d.ts +0 -31
- package/dist/neutral/payload/elevatable/Bridge/BridgeObservation.d.ts.map +0 -1
- package/src/payload/elevatable/Bridge/BridgeObservation.ts +0 -39
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import type { Schema, WithStorageMeta } from '@xyo-network/payload-model';
|
|
2
2
|
import type { SchemaPayload } from '@xyo-network/schema-payload-plugin';
|
|
3
3
|
import z from 'zod';
|
|
4
|
-
import type { BridgeIntent,
|
|
4
|
+
import type { BridgeDestinationObservation, BridgeIntent, BridgeSourceObservation, ChainStakeIntent, HashPayload, StepComplete, TimePayload, Transfer } from '../payload/index.ts';
|
|
5
5
|
import { type TransactionBoundWitness } from '../transaction/index.ts';
|
|
6
|
-
export type AllowedBlockPayload = Transfer | BridgeIntent |
|
|
6
|
+
export type AllowedBlockPayload = Transfer | BridgeDestinationObservation | BridgeIntent | BridgeSourceObservation | ChainStakeIntent | HashPayload | SchemaPayload | StepComplete | TimePayload | TransactionBoundWitness;
|
|
7
7
|
export declare const AllowedBlockPayloadSchemas: Schema[];
|
|
8
8
|
export type AllowedBlockPayloadSchema = typeof AllowedBlockPayloadSchemas[number];
|
|
9
9
|
export declare const isAllowedBlockPayloadSchema: (value: unknown) => value is AllowedBlockPayloadSchema;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AllowedBlockPayload.d.ts","sourceRoot":"","sources":["../../../src/block/AllowedBlockPayload.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAEzE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAA;AAEvE,OAAO,CAAC,MAAM,KAAK,CAAA;AAEnB,OAAO,KAAK,EACV,YAAY,
|
|
1
|
+
{"version":3,"file":"AllowedBlockPayload.d.ts","sourceRoot":"","sources":["../../../src/block/AllowedBlockPayload.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAEzE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAA;AAEvE,OAAO,CAAC,MAAM,KAAK,CAAA;AAEnB,OAAO,KAAK,EACV,4BAA4B,EAAE,YAAY,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,QAAQ,EACxI,MAAM,qBAAqB,CAAA;AAM5B,OAAO,EAA6B,KAAK,uBAAuB,EAAE,MAAM,yBAAyB,CAAA;AAEjG,MAAM,MAAM,mBAAmB,GAC3B,QAAQ,GACN,4BAA4B,GAC5B,YAAY,GACZ,uBAAuB,GACvB,gBAAgB,GAChB,WAAW,GACX,aAAa,GACb,YAAY,GACZ,WAAW,GACX,uBAAuB,CAAA;AAE7B,eAAO,MAAM,0BAA0B,EAAE,MAAM,EAY9C,CAAA;AAED,MAAM,MAAM,yBAAyB,GAAG,OAAO,0BAA0B,CAAC,MAAM,CAAC,CAAA;AAEjF,eAAO,MAAM,2BAA2B,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,yBAErE,CAAA;AAED,eAAO,MAAM,qBAAqB,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,mBAU/D,CAAA;AAED,eAAO,MAAM,wCAAwC,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,eAAe,CAAC,mBAAmB,CAErH,CAAA;AAED,eAAO,MAAM,sBAAsB;;;;mBAA2D,CAAA"}
|
package/dist/neutral/index.mjs
CHANGED
|
@@ -4,49 +4,56 @@ import { isHashStorageMeta as isHashStorageMeta2, isSchema } from "@xyo-network/
|
|
|
4
4
|
import { isSchemaPayload, SchemaSchema } from "@xyo-network/schema-payload-plugin";
|
|
5
5
|
import z2 from "zod";
|
|
6
6
|
|
|
7
|
-
// src/payload/elevatable/Bridge/
|
|
7
|
+
// src/payload/elevatable/Bridge/BridgeDestinationObservation.ts
|
|
8
8
|
import { AsObjectFactory } from "@xylabs/object";
|
|
9
9
|
import { isPayloadOfSchemaType } from "@xyo-network/payload-model";
|
|
10
|
-
var
|
|
11
|
-
var
|
|
12
|
-
var
|
|
10
|
+
var BridgeDestinationObservationSchema = "network.xyo.chain.bridge.observation.destination";
|
|
11
|
+
var isBridgeDestinationObservation = isPayloadOfSchemaType(BridgeDestinationObservationSchema);
|
|
12
|
+
var asBridgeDestinationObservation = AsObjectFactory.create(isBridgeDestinationObservation);
|
|
13
13
|
|
|
14
|
-
// src/payload/elevatable/Bridge/
|
|
14
|
+
// src/payload/elevatable/Bridge/BridgeIntent.ts
|
|
15
15
|
import { AsObjectFactory as AsObjectFactory2 } from "@xylabs/object";
|
|
16
16
|
import { isPayloadOfSchemaType as isPayloadOfSchemaType2 } from "@xyo-network/payload-model";
|
|
17
|
-
var
|
|
18
|
-
var
|
|
19
|
-
var
|
|
17
|
+
var BridgeIntentSchema = "network.xyo.chain.bridge.intent";
|
|
18
|
+
var isBridgeIntent = isPayloadOfSchemaType2(BridgeIntentSchema);
|
|
19
|
+
var asBridgeIntent = AsObjectFactory2.create(isBridgeIntent);
|
|
20
20
|
|
|
21
|
-
// src/payload/elevatable/
|
|
21
|
+
// src/payload/elevatable/Bridge/BridgeSourceObservation.ts
|
|
22
22
|
import { AsObjectFactory as AsObjectFactory3 } from "@xylabs/object";
|
|
23
23
|
import { isPayloadOfSchemaType as isPayloadOfSchemaType3 } from "@xyo-network/payload-model";
|
|
24
|
-
var
|
|
25
|
-
var
|
|
26
|
-
var
|
|
24
|
+
var BridgeSourceObservationSchema = "network.xyo.chain.bridge.observation.source";
|
|
25
|
+
var isBridgeSourceObservation = isPayloadOfSchemaType3(BridgeSourceObservationSchema);
|
|
26
|
+
var asBridgeSourceObservation = AsObjectFactory3.create(isBridgeSourceObservation);
|
|
27
27
|
|
|
28
|
-
// src/payload/elevatable/
|
|
28
|
+
// src/payload/elevatable/BridgeBack.ts
|
|
29
29
|
import { AsObjectFactory as AsObjectFactory4 } from "@xylabs/object";
|
|
30
30
|
import { isPayloadOfSchemaType as isPayloadOfSchemaType4 } from "@xyo-network/payload-model";
|
|
31
|
-
var
|
|
32
|
-
var
|
|
33
|
-
var
|
|
31
|
+
var BridgeBackSchema = "network.xyo.chain.bridge.back";
|
|
32
|
+
var isBridgeBack = isPayloadOfSchemaType4(BridgeBackSchema);
|
|
33
|
+
var asBridgeBack = AsObjectFactory4.create(isBridgeBack);
|
|
34
34
|
|
|
35
|
-
// src/payload/elevatable/
|
|
35
|
+
// src/payload/elevatable/BridgeComplete.ts
|
|
36
36
|
import { AsObjectFactory as AsObjectFactory5 } from "@xylabs/object";
|
|
37
37
|
import { isPayloadOfSchemaType as isPayloadOfSchemaType5 } from "@xyo-network/payload-model";
|
|
38
|
+
var BridgeCompleteSchema = "network.xyo.chain.bridge.complete";
|
|
39
|
+
var isBridgeComplete = isPayloadOfSchemaType5(BridgeCompleteSchema);
|
|
40
|
+
var asBridgeComplete = AsObjectFactory5.create(isBridgeComplete);
|
|
41
|
+
|
|
42
|
+
// src/payload/elevatable/BridgeRequest.ts
|
|
43
|
+
import { AsObjectFactory as AsObjectFactory6 } from "@xylabs/object";
|
|
44
|
+
import { isPayloadOfSchemaType as isPayloadOfSchemaType6 } from "@xyo-network/payload-model";
|
|
38
45
|
var BridgeRequestSchema = "network.xyo.chain.bridge.request";
|
|
39
|
-
var isBridgeRequest =
|
|
40
|
-
var asBridgeRequest =
|
|
46
|
+
var isBridgeRequest = isPayloadOfSchemaType6(BridgeRequestSchema);
|
|
47
|
+
var asBridgeRequest = AsObjectFactory6.create(isBridgeRequest);
|
|
41
48
|
|
|
42
49
|
// src/payload/elevatable/ChainStakeIntent.ts
|
|
43
|
-
import { AsObjectFactory as
|
|
44
|
-
import { isPayloadOfSchemaType as
|
|
50
|
+
import { AsObjectFactory as AsObjectFactory7 } from "@xylabs/object";
|
|
51
|
+
import { isPayloadOfSchemaType as isPayloadOfSchemaType7, isStorageMeta } from "@xyo-network/payload-model";
|
|
45
52
|
var ChainStakeIntentSchema = "network.xyo.chain.stake.intent";
|
|
46
53
|
var isChainStakeIntent = (x) => {
|
|
47
|
-
return
|
|
54
|
+
return isPayloadOfSchemaType7(ChainStakeIntentSchema)(x) && asNonNegativeInteger(x.nbf) !== void 0 && asNonNegativeInteger(x.exp) !== void 0;
|
|
48
55
|
};
|
|
49
|
-
var asChainStakeIntent =
|
|
56
|
+
var asChainStakeIntent = AsObjectFactory7.create(isChainStakeIntent);
|
|
50
57
|
var isChainStakeIntentWithStorageMeta = (x) => {
|
|
51
58
|
return isChainStakeIntent(x) && isStorageMeta(x);
|
|
52
59
|
};
|
|
@@ -67,40 +74,40 @@ var asExecutable = (value) => {
|
|
|
67
74
|
};
|
|
68
75
|
|
|
69
76
|
// src/payload/elevatable/Hash.ts
|
|
70
|
-
import { AsObjectFactory as
|
|
71
|
-
import { isPayloadOfSchemaType as
|
|
77
|
+
import { AsObjectFactory as AsObjectFactory8 } from "@xylabs/object";
|
|
78
|
+
import { isPayloadOfSchemaType as isPayloadOfSchemaType8 } from "@xyo-network/payload-model";
|
|
72
79
|
var HashSchema = "network.xyo.hash";
|
|
73
|
-
var isHashPayload =
|
|
74
|
-
var asHashPayload =
|
|
75
|
-
var asHashPayloadWithStorageMeta =
|
|
80
|
+
var isHashPayload = isPayloadOfSchemaType8(HashSchema);
|
|
81
|
+
var asHashPayload = AsObjectFactory8.create(isHashPayload);
|
|
82
|
+
var asHashPayloadWithStorageMeta = AsObjectFactory8.create(isHashPayload);
|
|
76
83
|
|
|
77
84
|
// src/payload/elevatable/StepComplete.ts
|
|
78
|
-
import { AsObjectFactory as
|
|
79
|
-
import { isPayloadOfSchemaType as
|
|
85
|
+
import { AsObjectFactory as AsObjectFactory9 } from "@xylabs/object";
|
|
86
|
+
import { isPayloadOfSchemaType as isPayloadOfSchemaType9 } from "@xyo-network/payload-model";
|
|
80
87
|
var StepCompleteSchema = "network.xyo.chain.step.complete";
|
|
81
|
-
var isStepComplete =
|
|
82
|
-
var asStepComplete =
|
|
88
|
+
var isStepComplete = isPayloadOfSchemaType9(StepCompleteSchema);
|
|
89
|
+
var asStepComplete = AsObjectFactory9.create(isStepComplete);
|
|
83
90
|
|
|
84
91
|
// src/payload/elevatable/Time.ts
|
|
85
|
-
import { AsObjectFactory as
|
|
86
|
-
import { isPayloadOfSchemaType as
|
|
92
|
+
import { AsObjectFactory as AsObjectFactory10 } from "@xylabs/object";
|
|
93
|
+
import { isPayloadOfSchemaType as isPayloadOfSchemaType10 } from "@xyo-network/payload-model";
|
|
87
94
|
var TimeSchema = "network.xyo.time";
|
|
88
|
-
var isTimePayload =
|
|
89
|
-
var asTimePayload =
|
|
90
|
-
var asTimePayloadWithStorageMeta =
|
|
95
|
+
var isTimePayload = isPayloadOfSchemaType10(TimeSchema);
|
|
96
|
+
var asTimePayload = AsObjectFactory10.create(isTimePayload);
|
|
97
|
+
var asTimePayloadWithStorageMeta = AsObjectFactory10.create(isTimePayload);
|
|
91
98
|
|
|
92
99
|
// src/payload/elevatable/TransferPayload.ts
|
|
93
|
-
import { AsObjectFactory as
|
|
94
|
-
import { isPayloadOfSchemaType as
|
|
100
|
+
import { AsObjectFactory as AsObjectFactory11 } from "@xylabs/object";
|
|
101
|
+
import { isPayloadOfSchemaType as isPayloadOfSchemaType11 } from "@xyo-network/payload-model";
|
|
95
102
|
var TransferSchema = "network.xyo.transfer";
|
|
96
|
-
var isTransfer =
|
|
97
|
-
var asTransfer =
|
|
103
|
+
var isTransfer = isPayloadOfSchemaType11(TransferSchema);
|
|
104
|
+
var asTransfer = AsObjectFactory11.create(isTransfer);
|
|
98
105
|
|
|
99
106
|
// src/transaction/AnyHydratedTransaction.ts
|
|
100
|
-
import { AsObjectFactory as
|
|
107
|
+
import { AsObjectFactory as AsObjectFactory14 } from "@xylabs/object";
|
|
101
108
|
|
|
102
109
|
// src/isHydratedBoundWitness.ts
|
|
103
|
-
import { AsObjectFactory as
|
|
110
|
+
import { AsObjectFactory as AsObjectFactory12 } from "@xylabs/object";
|
|
104
111
|
import { isBoundWitness } from "@xyo-network/boundwitness-model";
|
|
105
112
|
import { isAnyPayload as isAnyPayload2, isStorageMeta as isStorageMeta2 } from "@xyo-network/payload-model";
|
|
106
113
|
var isHydratedBoundWitness = (value) => {
|
|
@@ -109,10 +116,10 @@ var isHydratedBoundWitness = (value) => {
|
|
|
109
116
|
var isHydratedBoundWitnessWithStorageMeta = (value) => {
|
|
110
117
|
return isHydratedBoundWitness(value) && isStorageMeta2(value[0]) && !value[1].some((item) => !isStorageMeta2(item));
|
|
111
118
|
};
|
|
112
|
-
var asHydratedBoundWitness =
|
|
119
|
+
var asHydratedBoundWitness = AsObjectFactory12.create(
|
|
113
120
|
isHydratedBoundWitness
|
|
114
121
|
);
|
|
115
|
-
var asHydratedBoundWitnessWithStorageMeta =
|
|
122
|
+
var asHydratedBoundWitnessWithStorageMeta = AsObjectFactory12.create(
|
|
116
123
|
isHydratedBoundWitnessWithStorageMeta
|
|
117
124
|
);
|
|
118
125
|
|
|
@@ -120,24 +127,24 @@ var asHydratedBoundWitnessWithStorageMeta = AsObjectFactory11.create(
|
|
|
120
127
|
import {
|
|
121
128
|
isAddress
|
|
122
129
|
} from "@xylabs/hex";
|
|
123
|
-
import { AsObjectFactory as
|
|
130
|
+
import { AsObjectFactory as AsObjectFactory13 } from "@xylabs/object";
|
|
124
131
|
import { isBoundWitness as isBoundWitness2 } from "@xyo-network/boundwitness-model";
|
|
125
132
|
var isTransactionBoundWitness = (value) => {
|
|
126
133
|
const typedObj = value;
|
|
127
134
|
return isBoundWitness2(value) && isAddress(typedObj.chain) && typedObj.fees !== void 0 && typedObj.exp !== void 0 && typedObj.nbf !== void 0;
|
|
128
135
|
};
|
|
129
|
-
var asTransactionBoundWitness =
|
|
136
|
+
var asTransactionBoundWitness = AsObjectFactory13.create(isTransactionBoundWitness);
|
|
130
137
|
|
|
131
138
|
// src/transaction/AnyHydratedTransaction.ts
|
|
132
139
|
var isAnyHydratedTransaction = (value) => {
|
|
133
140
|
return isHydratedBoundWitness(value) && isTransactionBoundWitness(value[0]);
|
|
134
141
|
};
|
|
135
|
-
var asAnyHydratedTransaction =
|
|
142
|
+
var asAnyHydratedTransaction = AsObjectFactory14.create(
|
|
136
143
|
isAnyHydratedTransaction
|
|
137
144
|
);
|
|
138
145
|
|
|
139
146
|
// src/transaction/HydratedTransaction.ts
|
|
140
|
-
import { AsObjectFactory as
|
|
147
|
+
import { AsObjectFactory as AsObjectFactory15 } from "@xylabs/object";
|
|
141
148
|
import { isSigned } from "@xyo-network/boundwitness-model";
|
|
142
149
|
import {
|
|
143
150
|
isStorageMeta as isStorageMeta3
|
|
@@ -145,47 +152,47 @@ import {
|
|
|
145
152
|
var isHydratedTransaction = (value) => {
|
|
146
153
|
return isHydratedBoundWitness(value) && isTransactionBoundWitness(value[0]) && isSigned(value[0]) && isStorageMeta3(value[0]);
|
|
147
154
|
};
|
|
148
|
-
var asHydratedTransaction =
|
|
155
|
+
var asHydratedTransaction = AsObjectFactory15.create(
|
|
149
156
|
// eslint-disable-next-line sonarjs/deprecation
|
|
150
157
|
isHydratedTransaction
|
|
151
158
|
);
|
|
152
159
|
|
|
153
160
|
// src/transaction/HydratedTransactionWithStorageMeta.ts
|
|
154
|
-
import { AsObjectFactory as
|
|
161
|
+
import { AsObjectFactory as AsObjectFactory16 } from "@xylabs/object";
|
|
155
162
|
import {
|
|
156
163
|
isStorageMeta as isStorageMeta4
|
|
157
164
|
} from "@xyo-network/payload-model";
|
|
158
165
|
var isHydratedTransactionWithStorageMeta = (value) => {
|
|
159
166
|
return isAnyHydratedTransaction(value) && isStorageMeta4(value[0]) && !value[1].some((v) => !isStorageMeta4(v));
|
|
160
167
|
};
|
|
161
|
-
var asHydratedTransactionWithStorageMeta =
|
|
168
|
+
var asHydratedTransactionWithStorageMeta = AsObjectFactory16.create(
|
|
162
169
|
isHydratedTransactionWithStorageMeta
|
|
163
170
|
);
|
|
164
171
|
|
|
165
172
|
// src/transaction/SignedHydratedTransaction.ts
|
|
166
|
-
import { AsObjectFactory as
|
|
173
|
+
import { AsObjectFactory as AsObjectFactory17 } from "@xylabs/object";
|
|
167
174
|
import { isSigned as isSigned2 } from "@xyo-network/boundwitness-model";
|
|
168
175
|
var isSignedHydratedTransaction = (value) => {
|
|
169
176
|
return isAnyHydratedTransaction(value) && isSigned2(value[0]);
|
|
170
177
|
};
|
|
171
|
-
var asSignedHydratedTransaction =
|
|
178
|
+
var asSignedHydratedTransaction = AsObjectFactory17.create(
|
|
172
179
|
isSignedHydratedTransaction
|
|
173
180
|
);
|
|
174
181
|
|
|
175
182
|
// src/transaction/SignedHydratedTransactionWithStorageMeta.ts
|
|
176
|
-
import { AsObjectFactory as
|
|
183
|
+
import { AsObjectFactory as AsObjectFactory18 } from "@xylabs/object";
|
|
177
184
|
import {
|
|
178
185
|
isStorageMeta as isStorageMeta5
|
|
179
186
|
} from "@xyo-network/payload-model";
|
|
180
187
|
var isSignedHydratedTransactionWithStorageMeta = (value) => {
|
|
181
188
|
return isSignedHydratedTransaction(value) && isStorageMeta5(value[0]) && !value[1].some((v) => !isStorageMeta5(v));
|
|
182
189
|
};
|
|
183
|
-
var asSignedHydratedTransactionWithStorageMeta =
|
|
190
|
+
var asSignedHydratedTransactionWithStorageMeta = AsObjectFactory18.create(
|
|
184
191
|
isSignedHydratedTransactionWithStorageMeta
|
|
185
192
|
);
|
|
186
193
|
|
|
187
194
|
// src/transaction/TransactionBoundWitnessDeprecated.ts
|
|
188
|
-
import { AsObjectFactory as
|
|
195
|
+
import { AsObjectFactory as AsObjectFactory19 } from "@xylabs/object";
|
|
189
196
|
import { isSigned as isSigned3 } from "@xyo-network/boundwitness-model";
|
|
190
197
|
import { isHashStorageMeta, isStorageMeta as isStorageMeta6 } from "@xyo-network/payload-model";
|
|
191
198
|
var isSignedTransactionBoundWitness = (value) => {
|
|
@@ -195,12 +202,12 @@ var isTransactionBoundWitnessWithStorageMeta = (value) => isTransactionBoundWitn
|
|
|
195
202
|
var isTransactionBoundWitnessWithHashStorageMeta = (value) => isTransactionBoundWitness(value) && isHashStorageMeta(value);
|
|
196
203
|
var isSignedTransactionBoundWitnessWithStorageMeta = (value) => isSignedTransactionBoundWitness(value) && isStorageMeta6(value);
|
|
197
204
|
var isSignedTransactionBoundWitnessWithHashStorageMeta = (value) => isSignedTransactionBoundWitness(value) && isHashStorageMeta(value);
|
|
198
|
-
var asTransactionBoundWitnessWithStorageMeta =
|
|
199
|
-
var asTransactionBoundWitnessWithHashStorageMeta =
|
|
205
|
+
var asTransactionBoundWitnessWithStorageMeta = AsObjectFactory19.create(isTransactionBoundWitnessWithStorageMeta);
|
|
206
|
+
var asTransactionBoundWitnessWithHashStorageMeta = AsObjectFactory19.create(isTransactionBoundWitnessWithHashStorageMeta);
|
|
200
207
|
|
|
201
208
|
// src/transaction/TransactionFeesFields.ts
|
|
202
209
|
import { isHex } from "@xylabs/hex";
|
|
203
|
-
import { AsObjectFactory as
|
|
210
|
+
import { AsObjectFactory as AsObjectFactory20 } from "@xylabs/object";
|
|
204
211
|
import { isObject } from "@xylabs/typeof";
|
|
205
212
|
|
|
206
213
|
// src/xl1/isXL1Factory.ts
|
|
@@ -336,7 +343,7 @@ var isTransactionFeesBigInt = (value) => {
|
|
|
336
343
|
} = value;
|
|
337
344
|
return isAttoXL1(base) && isAttoXL1(gasLimit) && isAttoXL1(gasPrice) && isAttoXL1(priority);
|
|
338
345
|
};
|
|
339
|
-
var asTransactionFeesBigInt =
|
|
346
|
+
var asTransactionFeesBigInt = AsObjectFactory20.create(
|
|
340
347
|
isTransactionFeesBigInt
|
|
341
348
|
);
|
|
342
349
|
var isTransactionFeesHex = (value) => {
|
|
@@ -351,26 +358,27 @@ var isTransactionFeesHex = (value) => {
|
|
|
351
358
|
} = value;
|
|
352
359
|
return isHex(base) && isHex(gasLimit) && isHex(gasPrice) && isHex(priority);
|
|
353
360
|
};
|
|
354
|
-
var asTransactionFeesHex =
|
|
361
|
+
var asTransactionFeesHex = AsObjectFactory20.create(
|
|
355
362
|
isTransactionFeesHex
|
|
356
363
|
);
|
|
357
364
|
|
|
358
365
|
// src/transaction/UnsignedHydratedTransaction.ts
|
|
359
|
-
import { AsObjectFactory as
|
|
366
|
+
import { AsObjectFactory as AsObjectFactory21 } from "@xylabs/object";
|
|
360
367
|
import { isUnsigned } from "@xyo-network/boundwitness-model";
|
|
361
368
|
var isUnsignedHydratedTransaction = (value) => {
|
|
362
369
|
return isAnyHydratedTransaction(value) && isUnsigned(value[0]);
|
|
363
370
|
};
|
|
364
|
-
var asUnsignedHydratedTransaction =
|
|
371
|
+
var asUnsignedHydratedTransaction = AsObjectFactory21.create(
|
|
365
372
|
isUnsignedHydratedTransaction
|
|
366
373
|
);
|
|
367
374
|
|
|
368
375
|
// src/block/AllowedBlockPayload.ts
|
|
369
376
|
var AllowedBlockPayloadSchemas = [
|
|
370
377
|
BoundWitnessSchema,
|
|
378
|
+
BridgeDestinationObservationSchema,
|
|
371
379
|
BridgeIntentSchema,
|
|
372
|
-
BridgeObservationSchema,
|
|
373
380
|
BridgeRequestSchema,
|
|
381
|
+
BridgeSourceObservationSchema,
|
|
374
382
|
ChainStakeIntentSchema,
|
|
375
383
|
HashSchema,
|
|
376
384
|
SchemaSchema,
|
|
@@ -382,7 +390,7 @@ var isAllowedBlockPayloadSchema = (value) => {
|
|
|
382
390
|
return isSchema(value) && AllowedBlockPayloadSchemas.includes(value);
|
|
383
391
|
};
|
|
384
392
|
var isAllowedBlockPayload = (value) => {
|
|
385
|
-
return isTransfer(value) ||
|
|
393
|
+
return isTransfer(value) || isBridgeDestinationObservation(value) || isBridgeIntent(value) || isBridgeSourceObservation(value) || isChainStakeIntent(value) || isHashPayload(value) || isSchemaPayload(value) || isTimePayload(value) || isTransactionBoundWitness(value);
|
|
386
394
|
};
|
|
387
395
|
var isAllowedBlockPayloadWithHashStorageMeta = (value) => {
|
|
388
396
|
return isAllowedBlockPayload(value) && isHashStorageMeta2(value);
|
|
@@ -391,7 +399,7 @@ var AllowedBlockPayloadZod = z2.object({ schema: z2.enum(AllowedBlockPayloadSche
|
|
|
391
399
|
|
|
392
400
|
// src/block/BlockBoundWitness.ts
|
|
393
401
|
import { isHex as isHex2 } from "@xylabs/hex";
|
|
394
|
-
import { AsObjectFactory as
|
|
402
|
+
import { AsObjectFactory as AsObjectFactory22 } from "@xylabs/object";
|
|
395
403
|
import { isBoundWitness as isBoundWitness3, isSigned as isSigned4 } from "@xyo-network/boundwitness-model";
|
|
396
404
|
import { isHashStorageMeta as isHashStorageMeta3, isStorageMeta as isStorageMeta7 } from "@xyo-network/payload-model";
|
|
397
405
|
var isBlockBoundWitness = (value) => {
|
|
@@ -413,19 +421,19 @@ var isBlockBoundWitnessWithHashStorageMeta = (value) => {
|
|
|
413
421
|
var isSignedBlockBoundWitnessWithHashStorageMeta = (value) => {
|
|
414
422
|
return isBlockBoundWitnessWithHashStorageMeta(value) && isSigned4(value);
|
|
415
423
|
};
|
|
416
|
-
var asBlockBoundWitness =
|
|
417
|
-
var asSignedBlockBoundWitness =
|
|
418
|
-
var asBlockBoundWitnessWithStorageMeta =
|
|
419
|
-
var asSignedBlockBoundWitnessWithStorageMeta =
|
|
420
|
-
var asBlockBoundWitnessWithHashStorageMeta =
|
|
421
|
-
var asSignedBlockBoundWitnessWithHashStorageMeta =
|
|
424
|
+
var asBlockBoundWitness = AsObjectFactory22.create(isBlockBoundWitness);
|
|
425
|
+
var asSignedBlockBoundWitness = AsObjectFactory22.create(isSignedBlockBoundWitness);
|
|
426
|
+
var asBlockBoundWitnessWithStorageMeta = AsObjectFactory22.create(isBlockBoundWitnessWithStorageMeta);
|
|
427
|
+
var asSignedBlockBoundWitnessWithStorageMeta = AsObjectFactory22.create(isSignedBlockBoundWitnessWithStorageMeta);
|
|
428
|
+
var asBlockBoundWitnessWithHashStorageMeta = AsObjectFactory22.create(isBlockBoundWitnessWithHashStorageMeta);
|
|
429
|
+
var asSignedBlockBoundWitnessWithHashStorageMeta = AsObjectFactory22.create(isSignedBlockBoundWitnessWithHashStorageMeta);
|
|
422
430
|
|
|
423
431
|
// src/block/HydratedBlock.ts
|
|
424
|
-
import { AsObjectFactory as
|
|
432
|
+
import { AsObjectFactory as AsObjectFactory23 } from "@xylabs/object";
|
|
425
433
|
var isHydratedBlock = (value) => {
|
|
426
434
|
return isHydratedBoundWitness(value) && isBlockBoundWitnessWithStorageMeta(value[0]);
|
|
427
435
|
};
|
|
428
|
-
var asHydratedBlock =
|
|
436
|
+
var asHydratedBlock = AsObjectFactory23.create(
|
|
429
437
|
isHydratedBlock
|
|
430
438
|
);
|
|
431
439
|
|
|
@@ -493,21 +501,21 @@ var XL1_PROTOCOL_VERSION_STRING = `${XL1_PROTOCOL_VERSION_MAJOR}.${XL1_PROTOCOL_
|
|
|
493
501
|
var XL1_PROTOCOL_VERSION = XL1_PROTOCOL_VERSION_MAJOR * 1e6 + XL1_PROTOCOL_VERSION_MINOR * 1e3 + XL1_PROTOCOL_VERSION_PATCH;
|
|
494
502
|
|
|
495
503
|
// src/fields/BlockNumber.ts
|
|
496
|
-
import { AsObjectFactory as
|
|
504
|
+
import { AsObjectFactory as AsObjectFactory24 } from "@xylabs/object";
|
|
497
505
|
import {
|
|
498
|
-
isPayloadOfSchemaType as
|
|
506
|
+
isPayloadOfSchemaType as isPayloadOfSchemaType12,
|
|
499
507
|
isPayloadOfSchemaTypeWithSources
|
|
500
508
|
} from "@xyo-network/payload-model";
|
|
501
509
|
var BlockNumberSchema = "network.xyo.chain.block.number";
|
|
502
|
-
var isBlockNumber =
|
|
503
|
-
var asBlockNumber =
|
|
510
|
+
var isBlockNumber = isPayloadOfSchemaType12(BlockNumberSchema);
|
|
511
|
+
var asBlockNumber = AsObjectFactory24.create(isBlockNumber);
|
|
504
512
|
var isBlockNumberWithSources = isPayloadOfSchemaTypeWithSources(BlockNumberSchema);
|
|
505
|
-
var asBlockNumberWithSources =
|
|
513
|
+
var asBlockNumberWithSources = AsObjectFactory24.create(isBlockNumberWithSources);
|
|
506
514
|
|
|
507
515
|
// src/network/Status.ts
|
|
508
|
-
import { isPayloadOfSchemaType as
|
|
516
|
+
import { isPayloadOfSchemaType as isPayloadOfSchemaType13 } from "@xyo-network/payload-model";
|
|
509
517
|
var NetworkStatusSchema = "network.xyo.chain.status";
|
|
510
|
-
var isNetworkStatus =
|
|
518
|
+
var isNetworkStatus = isPayloadOfSchemaType13(NetworkStatusSchema);
|
|
511
519
|
|
|
512
520
|
// src/provider/XyoDataLake.ts
|
|
513
521
|
var isDataLakeViewer = (value) => {
|
|
@@ -518,15 +526,15 @@ var isDataLakeProvider = (value) => {
|
|
|
518
526
|
};
|
|
519
527
|
|
|
520
528
|
// src/services/StakeIntentService/ChainIndexingServiceStateSchema.ts
|
|
521
|
-
import { AsObjectFactory as
|
|
522
|
-
import { isPayloadOfSchemaType as
|
|
529
|
+
import { AsObjectFactory as AsObjectFactory25 } from "@xylabs/object";
|
|
530
|
+
import { isPayloadOfSchemaType as isPayloadOfSchemaType14, isStorageMeta as isStorageMeta8 } from "@xyo-network/payload-model";
|
|
523
531
|
var ChainIndexingServiceStateSchema = "network.xyo.chain.indexing.service.state";
|
|
524
532
|
var isChainIndexingServiceState = (payload) => {
|
|
525
|
-
return
|
|
533
|
+
return isPayloadOfSchemaType14(ChainIndexingServiceStateSchema)(payload);
|
|
526
534
|
};
|
|
527
|
-
var asChainIndexingServiceState =
|
|
535
|
+
var asChainIndexingServiceState = AsObjectFactory25.create(isChainIndexingServiceState);
|
|
528
536
|
var isChainIndexingServiceStateWithStorageMeta = (value) => isChainIndexingServiceState(value) && isStorageMeta8(value);
|
|
529
|
-
var asChainIndexingServiceStateWithStorageMeta =
|
|
537
|
+
var asChainIndexingServiceStateWithStorageMeta = AsObjectFactory25.create(isChainIndexingServiceStateWithStorageMeta);
|
|
530
538
|
|
|
531
539
|
// src/validation/error.ts
|
|
532
540
|
import { isHash } from "@xylabs/hex";
|
|
@@ -616,9 +624,10 @@ export {
|
|
|
616
624
|
BoundWitnessValidationError,
|
|
617
625
|
BridgeBackSchema,
|
|
618
626
|
BridgeCompleteSchema,
|
|
627
|
+
BridgeDestinationObservationSchema,
|
|
619
628
|
BridgeIntentSchema,
|
|
620
|
-
BridgeObservationSchema,
|
|
621
629
|
BridgeRequestSchema,
|
|
630
|
+
BridgeSourceObservationSchema,
|
|
622
631
|
ChainIndexingServiceStateSchema,
|
|
623
632
|
ChainStakeIntentSchema,
|
|
624
633
|
FemtoXL1,
|
|
@@ -664,9 +673,10 @@ export {
|
|
|
664
673
|
asBlockNumberWithSources,
|
|
665
674
|
asBridgeBack,
|
|
666
675
|
asBridgeComplete,
|
|
676
|
+
asBridgeDestinationObservation,
|
|
667
677
|
asBridgeIntent,
|
|
668
|
-
asBridgeObservation,
|
|
669
678
|
asBridgeRequest,
|
|
679
|
+
asBridgeSourceObservation,
|
|
670
680
|
asChainIndexingServiceState,
|
|
671
681
|
asChainIndexingServiceStateWithStorageMeta,
|
|
672
682
|
asChainStakeIntent,
|
|
@@ -715,9 +725,10 @@ export {
|
|
|
715
725
|
isBoundWitnessValidationError,
|
|
716
726
|
isBridgeBack,
|
|
717
727
|
isBridgeComplete,
|
|
728
|
+
isBridgeDestinationObservation,
|
|
718
729
|
isBridgeIntent,
|
|
719
|
-
isBridgeObservation,
|
|
720
730
|
isBridgeRequest,
|
|
731
|
+
isBridgeSourceObservation,
|
|
721
732
|
isChainIndexingServiceState,
|
|
722
733
|
isChainIndexingServiceStateWithStorageMeta,
|
|
723
734
|
isChainStakeIntent,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/block/AllowedBlockPayload.ts","../../src/payload/elevatable/Bridge/BridgeIntent.ts","../../src/payload/elevatable/Bridge/BridgeObservation.ts","../../src/payload/elevatable/BridgeBack.ts","../../src/payload/elevatable/BridgeComplete.ts","../../src/payload/elevatable/BridgeRequest.ts","../../src/payload/elevatable/ChainStakeIntent.ts","../../src/payload/elevatable/Executable.ts","../../src/payload/elevatable/Hash.ts","../../src/payload/elevatable/StepComplete.ts","../../src/payload/elevatable/Time.ts","../../src/payload/elevatable/TransferPayload.ts","../../src/transaction/AnyHydratedTransaction.ts","../../src/isHydratedBoundWitness.ts","../../src/transaction/TransactionBoundWitness.ts","../../src/transaction/HydratedTransaction.ts","../../src/transaction/HydratedTransactionWithStorageMeta.ts","../../src/transaction/SignedHydratedTransaction.ts","../../src/transaction/SignedHydratedTransactionWithStorageMeta.ts","../../src/transaction/TransactionBoundWitnessDeprecated.ts","../../src/transaction/TransactionFeesFields.ts","../../src/xl1/isXL1Factory.ts","../../src/xl1/xl1MaxValue.ts","../../src/xl1/XL1Units.ts","../../src/xl1/AttoXL1.ts","../../src/xl1/FemtoXL1.ts","../../src/xl1/MicroXL1.ts","../../src/xl1/MilliXL1.ts","../../src/xl1/NanoXL1.ts","../../src/xl1/PicoXL1.ts","../../src/xl1/XL1.ts","../../src/transaction/UnsignedHydratedTransaction.ts","../../src/block/BlockBoundWitness.ts","../../src/block/HydratedBlock.ts","../../src/constants/addresses.ts","../../src/constants/defaultRewardRatio.ts","../../src/constants/minTransactionFees.ts","../../src/constants/defaultTransactionFees.ts","../../src/constants/StepSizes.ts","../../src/constants/TransactionGasCosts.ts","../../src/constants/version.ts","../../src/fields/BlockNumber.ts","../../src/network/Status.ts","../../src/provider/XyoDataLake.ts","../../src/services/StakeIntentService/ChainIndexingServiceStateSchema.ts","../../src/validation/error.ts","../../src/validation/block/error.ts","../../src/validation/boundwitness/error.ts","../../src/validation/payload/error.ts","../../src/validation/transaction/error.ts"],"sourcesContent":["import { BoundWitnessSchema } from '@xyo-network/boundwitness-model'\nimport type { Schema, WithStorageMeta } from '@xyo-network/payload-model'\nimport { isHashStorageMeta, isSchema } from '@xyo-network/payload-model'\nimport type { SchemaPayload } from '@xyo-network/schema-payload-plugin'\nimport { isSchemaPayload, SchemaSchema } from '@xyo-network/schema-payload-plugin'\nimport z from 'zod'\n\nimport type {\n BridgeIntent,\n BridgeObservation,\n ChainStakeIntent, HashPayload, StepComplete,\n TimePayload,\n Transfer,\n} from '../payload/index.ts'\nimport {\n BridgeIntentSchema,\n BridgeObservationSchema,\n BridgeRequestSchema,\n ChainStakeIntentSchema, HashSchema, isBridgeBack, isBridgeComplete,\n isBridgeRequest, isChainStakeIntent, isHashPayload, isTimePayload,\n isTransfer, StepCompleteSchema, TimeSchema, TransferSchema,\n} from '../payload/index.ts'\nimport { isTransactionBoundWitness, type TransactionBoundWitness } from '../transaction/index.ts'\n\nexport type AllowedBlockPayload\n = Transfer\n | BridgeIntent\n | BridgeObservation\n | ChainStakeIntent\n | HashPayload\n | SchemaPayload\n | StepComplete\n | TimePayload\n | TransactionBoundWitness\n\nexport const AllowedBlockPayloadSchemas: Schema[] = [\n BoundWitnessSchema,\n BridgeIntentSchema,\n BridgeObservationSchema,\n BridgeRequestSchema,\n ChainStakeIntentSchema,\n HashSchema,\n SchemaSchema,\n StepCompleteSchema,\n TimeSchema,\n TransferSchema,\n]\n\nexport type AllowedBlockPayloadSchema = typeof AllowedBlockPayloadSchemas[number]\n\nexport const isAllowedBlockPayloadSchema = (value: unknown): value is AllowedBlockPayloadSchema => {\n return isSchema(value) && AllowedBlockPayloadSchemas.includes(value)\n}\n\nexport const isAllowedBlockPayload = (value: unknown): value is AllowedBlockPayload => {\n return isTransfer(value) || isChainStakeIntent(value) || isSchemaPayload(value) || isTransactionBoundWitness(value)\n || isHashPayload(value) || isTimePayload(value) || isBridgeBack(value) || isBridgeComplete(value) || isBridgeRequest(value)\n}\n\nexport const isAllowedBlockPayloadWithHashStorageMeta = (value: unknown): value is WithStorageMeta<AllowedBlockPayload> => {\n return isAllowedBlockPayload(value) && isHashStorageMeta(value)\n}\n\nexport const AllowedBlockPayloadZod = z.object({ schema: z.enum(AllowedBlockPayloadSchemas) })\n","import { AsObjectFactory } from '@xylabs/object'\nimport type { Payload } from '@xyo-network/payload-model'\nimport { isPayloadOfSchemaType } from '@xyo-network/payload-model'\n\nimport type { BridgeDetailsFields } from './BridgeDetails.ts'\n\nexport const BridgeIntentSchema = 'network.xyo.chain.bridge.intent' as const\nexport type BridgeIntentSchema = typeof BridgeIntentSchema\n\n/**\n * Represents an Addresses intent to initiate a token bridge.\n */\nexport interface BridgeIntentFields extends BridgeDetailsFields {\n /**\n * Unique identifier for replay protection\n */\n nonce: string\n}\n\nexport type BridgeIntent = Payload<BridgeIntentFields, BridgeIntentSchema>\n\nexport const isBridgeIntent = isPayloadOfSchemaType<BridgeIntent>(BridgeIntentSchema)\n\nexport const asBridgeIntent = AsObjectFactory.create(isBridgeIntent)\n","import type { Hex } from '@xylabs/hex'\nimport { AsObjectFactory } from '@xylabs/object'\nimport type { Payload } from '@xyo-network/payload-model'\nimport { isPayloadOfSchemaType } from '@xyo-network/payload-model'\n\nimport type { BridgeDetailsFields } from './BridgeDetails.ts'\n\nexport const BridgeObservationSchema = 'network.xyo.chain.bridge.observation' as const\nexport type BridgeObservationSchema = typeof BridgeObservationSchema\n\n/**\n * Represents an observation that confirms a bridge action occurred on the source chain.\n */\nexport interface BridgeSourceObservationFields extends BridgeDetailsFields {\n /**\n * Source chain confirmation\n */\n srcConfirmation?: Hex\n}\n/**\n * Represents an observation that confirms a bridge action occurred on the destination chain.\n */\nexport interface BridgeDestinationObservationFields extends BridgeDetailsFields {\n /**\n * Destination chain confirmation\n */\n destConfirmation?: Hex\n}\n\n/**\n * Represents an observation that confirms a bridge action occurred on either the source or destination chain.\n */\nexport type BridgeObservationFields = BridgeSourceObservationFields | BridgeDestinationObservationFields\n\nexport type BridgeObservation = Payload<BridgeObservationFields, BridgeObservationSchema>\n\nexport const isBridgeObservation = isPayloadOfSchemaType<BridgeObservation>(BridgeObservationSchema)\n\nexport const asBridgeObservation = AsObjectFactory.create(isBridgeObservation)\n","import type { Address, EthAddress } from '@xylabs/hex'\nimport { AsObjectFactory } from '@xylabs/object'\nimport type { Payload } from '@xyo-network/payload-model'\nimport { isPayloadOfSchemaType } from '@xyo-network/payload-model'\n\nimport type { FromFields } from './Executable.ts'\n\nexport const BridgeBackSchema = 'network.xyo.chain.bridge.back' as const\nexport type BridgeBackSchema = typeof BridgeBackSchema\n\n/* Report a bridging from WXL1 to XL1 */\n\nexport interface BridgeBackFields extends FromFields {\n destAddress: Address\n src: 'ethereum'\n srcAddress: EthAddress\n // usually the source's block number\n srcTime: number\n}\n\n// if this payload is included in a boundwitness, it needs to be available for inspection to be included in block\nexport type BridgeBack = Payload<BridgeBackFields, BridgeBackSchema>\n\nexport const isBridgeBack = isPayloadOfSchemaType<BridgeBack>(BridgeBackSchema)\n\nexport const asBridgeBack = AsObjectFactory.create(isBridgeBack)\n","import type { Hash } from '@xylabs/hex'\nimport { AsObjectFactory } from '@xylabs/object'\nimport type { Payload } from '@xyo-network/payload-model'\nimport { isPayloadOfSchemaType } from '@xyo-network/payload-model'\n\nimport type { FromFields } from './Executable.ts'\n\nexport const BridgeCompleteSchema = 'network.xyo.chain.bridge.complete' as const\nexport type BridgeCompleteSchema = typeof BridgeCompleteSchema\n\n/* Complete a bridging from XL1 to WXL1 */\n\nexport interface BridgeCompleteFields extends FromFields {\n // usually the destination's block number\n destTime: number\n request: Hash\n}\n\n// if this payload is included in a boundwitness, it needs to be available for inspection to be included in block\nexport type BridgeComplete = Payload<BridgeCompleteFields, BridgeCompleteSchema>\n\nexport const isBridgeComplete = isPayloadOfSchemaType<BridgeComplete>(BridgeCompleteSchema)\n\nexport const asBridgeComplete = AsObjectFactory.create(isBridgeComplete)\n","import type {\n Address, EthAddress, Hex,\n} from '@xylabs/hex'\nimport { AsObjectFactory } from '@xylabs/object'\nimport type { Payload } from '@xyo-network/payload-model'\nimport { isPayloadOfSchemaType } from '@xyo-network/payload-model'\n\nimport type { FromFields } from './Executable.ts'\n\n/* Request a bridging from XL1 to WXL1 */\n\nexport const BridgeRequestSchema = 'network.xyo.chain.bridge.request' as const\nexport type BridgeRequestSchema = typeof BridgeRequestSchema\n\nexport interface BridgeRequestFields extends FromFields {\n amount: Hex\n\n dest: 'ethereum'\n destAddress: EthAddress\n\n // xl1 address\n srcAddress: Address\n}\n\n// if this payload is included in a boundwitness, it needs to be available for inspection to be included in block\nexport type BridgeRequest = Payload<BridgeRequestFields, BridgeRequestSchema>\n\nexport const isBridgeRequest = isPayloadOfSchemaType<BridgeRequest>(BridgeRequestSchema)\n\nexport const asBridgeRequest = AsObjectFactory.create(isBridgeRequest)\n","import { AsObjectFactory } from '@xylabs/object'\nimport type { Payload, WithStorageMeta } from '@xyo-network/payload-model'\nimport { isPayloadOfSchemaType, isStorageMeta } from '@xyo-network/payload-model'\n\nimport type { BlockDuration } from '../../fields/index.ts'\nimport type { FromFields } from './Executable.ts'\n\nexport const ChainStakeIntentSchema = 'network.xyo.chain.stake.intent' as const\nexport type ChainStakeIntentSchema = typeof ChainStakeIntentSchema\n\nexport type Intent = 'producer' // | 'bank'\n\nexport interface ChainStakeIntentFields extends BlockDuration, FromFields {\n /*\n * The intent of the staking\n */\n intent: Intent\n}\n\nexport type ChainStakeIntent = Payload<ChainStakeIntentFields, ChainStakeIntentSchema>\n\nexport const isChainStakeIntent = (x?: unknown | null): x is ChainStakeIntent => {\n return isPayloadOfSchemaType<ChainStakeIntent>(ChainStakeIntentSchema)(x)\n && asNonNegativeInteger(x.nbf) !== undefined\n && asNonNegativeInteger(x.exp) !== undefined\n}\nexport const asChainStakeIntent = AsObjectFactory.create(isChainStakeIntent)\n\nexport const isChainStakeIntentWithStorageMeta = (x?: unknown | null): x is WithStorageMeta<ChainStakeIntent> => {\n return isChainStakeIntent(x) && isStorageMeta(x)\n}\n\nconst asNonNegativeInteger = (num: number) => {\n return (Number.isInteger(num) && num >= 0) ? num : undefined\n}\n","import type { Address } from '@xylabs/hex'\nimport type { EmptyObject } from '@xylabs/object'\nimport { isAnyPayload } from '@xyo-network/payload-model'\n\nexport interface FromFields {\n // the address that is treated as the source of this action\n from: Address\n}\n\nexport const hasFrom = (value: unknown): value is FromFields => {\n return (value as FromFields).from !== undefined\n}\n\nexport interface ExecutableFields {\n script: string[]\n}\n\nexport type Executable<T extends EmptyObject = EmptyObject> = T & ExecutableFields\nexport type OptionalExecutable<T extends EmptyObject = EmptyObject> = T & Partial<ExecutableFields>\n\nexport const isExecutable = <T extends EmptyObject>(value: T | undefined): value is Executable<T> => {\n return isAnyPayload(value) && Array.isArray((value as unknown as ExecutableFields).script)\n}\n\nexport const asExecutable = <T extends EmptyObject>(value: T | undefined): Executable<T> | undefined => {\n return isExecutable(value)\n ? value as unknown as Executable<T>\n : undefined\n}\n","import type { Hash } from '@xylabs/hex'\nimport { AsObjectFactory } from '@xylabs/object'\nimport type { Payload } from '@xyo-network/payload-model'\nimport { isPayloadOfSchemaType } from '@xyo-network/payload-model'\n\nexport const HashSchema = 'network.xyo.hash' as const\nexport type HashSchema = typeof HashSchema\n\nexport interface HashFields {\n hash: Hash\n}\n\nexport type HashPayload = Payload<HashFields, HashSchema>\n\nexport const isHashPayload = isPayloadOfSchemaType<HashPayload>(HashSchema)\n\nexport const asHashPayload = AsObjectFactory.create(isHashPayload)\nexport const asHashPayloadWithStorageMeta = AsObjectFactory.create(isHashPayload)\n","import type { Hash } from '@xylabs/hex'\nimport { AsObjectFactory } from '@xylabs/object'\nimport type { Payload } from '@xyo-network/payload-model'\nimport { isPayloadOfSchemaType } from '@xyo-network/payload-model'\n\nimport type { FromFields } from './Executable.ts'\n\nexport const StepCompleteSchema = 'network.xyo.chain.step.complete' as const\nexport type StepCompleteSchema = typeof StepCompleteSchema\n\n/* This records the completion of a step in the network - needed for network staking rewards */\n/* We will only write these for steps that are eligible for rewards Step 3 (2311) */\n\nexport interface StepCompleteFields extends FromFields {\n block: number /* The block number on the XL1 network */\n hash: Hash /* The Step Hash */\n size: number /* The size of the step */\n stakeBlock: number /* The block number on ethereum or other staking system */\n}\n\n// if this payload is included in a boundwitness, it needs to be available for inspection to be included in block\nexport type StepComplete = Payload<StepCompleteFields, StepCompleteSchema>\n\nexport const isStepComplete = isPayloadOfSchemaType<StepComplete>(StepCompleteSchema)\n\nexport const asStepComplete = AsObjectFactory.create(isStepComplete)\n","import { AsObjectFactory } from '@xylabs/object'\nimport type { Payload } from '@xyo-network/payload-model'\nimport { isPayloadOfSchemaType } from '@xyo-network/payload-model'\n\n// xl1 = xl1 block number, epoch = epoch number, ethereum = ethereum block number\nexport type TimeDomain = 'xl1' | 'epoch' | 'ethereum'\n\nexport const TimeSchema = 'network.xyo.time' as const\nexport type TimeSchema = typeof TimeSchema\n\nexport interface TimeFields {\n // in milliseconds\n epoch: number\n // in block number\n ethereum?: number\n // in block number\n xl1?: number\n}\n\nexport type TimePayload = Payload<TimeFields, TimeSchema>\n\nexport const isTimePayload = isPayloadOfSchemaType<TimePayload>(TimeSchema)\n\nexport const asTimePayload = AsObjectFactory.create(isTimePayload)\nexport const asTimePayloadWithStorageMeta = AsObjectFactory.create(isTimePayload)\n","import type {\n Address,\n Hex,\n} from '@xylabs/hex'\nimport { AsObjectFactory } from '@xylabs/object'\nimport type { Payload } from '@xyo-network/payload-model'\nimport { isPayloadOfSchemaType } from '@xyo-network/payload-model'\n\nimport type { FromFields } from './Executable.ts'\n\nexport const TransferSchema = 'network.xyo.transfer' as const\nexport type TransferSchema = typeof TransferSchema\n\nexport interface TransferFields extends FromFields {\n epoch: number\n // the amount that is being sent to other addresses\n transfers: Partial<Record<Address, Hex>>\n}\n\n// if this payload is included in a boundwitness, it needs to be available for inspection to be included in block\nexport type Transfer = Payload<TransferFields, TransferSchema>\n\nexport const isTransfer = isPayloadOfSchemaType<Transfer>(TransferSchema)\n\nexport const asTransfer = AsObjectFactory.create(isTransfer)\n","import { AsObjectFactory } from '@xylabs/object'\nimport { type Payload } from '@xyo-network/payload-model'\n\nimport { isHydratedBoundWitness } from '../isHydratedBoundWitness.ts'\nimport { isTransactionBoundWitness, type TransactionBoundWitness } from './TransactionBoundWitness.ts'\n\nexport type AnyHydratedTransaction<T extends TransactionBoundWitness = TransactionBoundWitness,\n P extends Payload = Payload> = [T, P[]]\n\nexport const isAnyHydratedTransaction = (\n value: unknown,\n): value is AnyHydratedTransaction => {\n return (\n isHydratedBoundWitness(value) && isTransactionBoundWitness(value[0])\n )\n}\n\nexport const asAnyHydratedTransaction = AsObjectFactory.create<AnyHydratedTransaction>(\n isAnyHydratedTransaction,\n)\n","import { AsObjectFactory } from '@xylabs/object'\nimport type { HydratedBoundWitness, HydratedBoundWitnessWithStorageMeta } from '@xyo-network/archivist-model'\nimport { isBoundWitness } from '@xyo-network/boundwitness-model'\nimport { isAnyPayload, isStorageMeta } from '@xyo-network/payload-model'\n\nexport const isHydratedBoundWitness = (\n value: unknown,\n): value is HydratedBoundWitness => {\n return (\n Array.isArray(value)\n && value.length === 2\n && isBoundWitness(value[0])\n && Array.isArray(value[1])\n && !value[1].some(item => (!isAnyPayload(item)))\n )\n}\n\nexport const isHydratedBoundWitnessWithStorageMeta = (\n value: unknown,\n): value is HydratedBoundWitnessWithStorageMeta => {\n return (\n isHydratedBoundWitness(value)\n && isStorageMeta(value[0])\n && !value[1].some(item => (!isStorageMeta(item)))\n )\n}\n\nexport const asHydratedBoundWitness = AsObjectFactory.create<HydratedBoundWitness>(\n isHydratedBoundWitness,\n)\n\nexport const asHydratedBoundWitnessWithStorageMeta = AsObjectFactory.create<HydratedBoundWitnessWithStorageMeta>(\n isHydratedBoundWitnessWithStorageMeta,\n)\n","import {\n type Address, type Hex, isAddress,\n} from '@xylabs/hex'\nimport { AsObjectFactory } from '@xylabs/object'\nimport type { BoundWitness } from '@xyo-network/boundwitness-model'\nimport { isBoundWitness } from '@xyo-network/boundwitness-model'\n\nimport type { BlockDuration } from '../fields/index.ts'\nimport type { FromFields, OptionalExecutable } from '../payload/index.ts'\nimport type { TransactionFeesFields } from './TransactionFeesFields.ts'\n\nexport interface TransactionBoundWitnessFields extends BlockDuration, TransactionFeesFields {\n chain: Hex | Address & { __chain: true }\n}\n\nexport type TransactionBoundWitness = BoundWitness<TransactionBoundWitnessFields & OptionalExecutable & FromFields>\n\nexport const isTransactionBoundWitness = (value: unknown): value is TransactionBoundWitness => {\n const typedObj = value as TransactionBoundWitness\n return isBoundWitness(value)\n && isAddress(typedObj.chain)\n && typedObj.fees !== undefined\n && typedObj.exp !== undefined\n && typedObj.nbf !== undefined\n}\n\nexport const asTransactionBoundWitness = AsObjectFactory.create(isTransactionBoundWitness)\n","import { AsObjectFactory } from '@xylabs/object'\nimport { isSigned, type Signed } from '@xyo-network/boundwitness-model'\nimport {\n isStorageMeta, type Payload, type WithStorageMeta,\n} from '@xyo-network/payload-model'\n\nimport { isHydratedBoundWitness } from '../isHydratedBoundWitness.ts'\nimport { isTransactionBoundWitness, type TransactionBoundWitness } from './TransactionBoundWitness.ts'\n\n/** @deprecated Use HydratedTransactionWithStorageMeta instead */\nexport type HydratedTransaction<T extends TransactionBoundWitness = TransactionBoundWitness,\n P extends Payload = Payload> = [WithStorageMeta<Signed<T>>, WithStorageMeta<P>[]]\n\n/** @deprecated Use isHydratedTransactionWithStorageMeta instead */\nexport const isHydratedTransaction = (\n value: unknown,\n// eslint-disable-next-line sonarjs/deprecation\n): value is HydratedTransaction => {\n return (\n isHydratedBoundWitness(value) && isTransactionBoundWitness(value[0]) && isSigned(value[0]) && isStorageMeta(value[0])\n )\n}\n\n/** @deprecated Use asHydratedTransactionWithStorageMeta instead */\n// eslint-disable-next-line sonarjs/deprecation\nexport const asHydratedTransaction = AsObjectFactory.create<HydratedTransaction>(\n // eslint-disable-next-line sonarjs/deprecation\n isHydratedTransaction,\n)\n","import { AsObjectFactory } from '@xylabs/object'\nimport { type Signed } from '@xyo-network/boundwitness-model'\nimport {\n isStorageMeta, type Payload, type WithStorageMeta,\n} from '@xyo-network/payload-model'\n\nimport { isAnyHydratedTransaction } from './AnyHydratedTransaction.ts'\nimport { type TransactionBoundWitness } from './TransactionBoundWitness.ts'\n\nexport type HydratedTransactionWithStorageMeta<T extends TransactionBoundWitness = TransactionBoundWitness,\n P extends Payload = Payload> = [WithStorageMeta<Signed<T>>, WithStorageMeta<P>[]]\n\nexport const isHydratedTransactionWithStorageMeta = (\n value: unknown,\n): value is HydratedTransactionWithStorageMeta => {\n return (\n isAnyHydratedTransaction(value) && isStorageMeta(value[0]) && !value[1].some(v => !isStorageMeta(v))\n )\n}\n\nexport const asHydratedTransactionWithStorageMeta = AsObjectFactory.create<HydratedTransactionWithStorageMeta>(\n isHydratedTransactionWithStorageMeta,\n)\n","import { AsObjectFactory } from '@xylabs/object'\nimport type { Signed } from '@xyo-network/boundwitness-model'\nimport { isSigned } from '@xyo-network/boundwitness-model'\nimport type { Payload } from '@xyo-network/payload-model'\n\nimport { isAnyHydratedTransaction } from './AnyHydratedTransaction.ts'\nimport { type TransactionBoundWitness } from './TransactionBoundWitness.ts'\n\nexport type SignedHydratedTransaction<T extends TransactionBoundWitness = TransactionBoundWitness,\n P extends Payload = Payload> = [Signed<T>, P[]]\n\nexport const isSignedHydratedTransaction = (\n value: unknown,\n): value is SignedHydratedTransaction => {\n return (\n isAnyHydratedTransaction(value) && isSigned(value[0])\n )\n}\n\nexport const asSignedHydratedTransaction = AsObjectFactory.create<SignedHydratedTransaction>(\n isSignedHydratedTransaction,\n)\n","import { AsObjectFactory } from '@xylabs/object'\nimport { type Signed } from '@xyo-network/boundwitness-model'\nimport {\n isStorageMeta, type Payload, type WithStorageMeta,\n} from '@xyo-network/payload-model'\n\nimport { isSignedHydratedTransaction } from './SignedHydratedTransaction.ts'\nimport { type TransactionBoundWitness } from './TransactionBoundWitness.ts'\n\nexport type SignedHydratedTransactionWithStorageMeta<T extends TransactionBoundWitness = TransactionBoundWitness,\n P extends Payload = Payload> = [WithStorageMeta<Signed<T>>, WithStorageMeta<P>[]]\n\nexport const isSignedHydratedTransactionWithStorageMeta = (\n value: unknown,\n): value is SignedHydratedTransactionWithStorageMeta => {\n return (\n isSignedHydratedTransaction(value) && isStorageMeta(value[0]) && !value[1].some(v => !isStorageMeta(v))\n )\n}\n\nexport const asSignedHydratedTransactionWithStorageMeta = AsObjectFactory.create<SignedHydratedTransactionWithStorageMeta>(\n isSignedHydratedTransactionWithStorageMeta,\n)\n","import { AsObjectFactory } from '@xylabs/object'\nimport type { Signed } from '@xyo-network/boundwitness-model'\nimport { isSigned } from '@xyo-network/boundwitness-model'\nimport type { WithHashStorageMeta, WithStorageMeta } from '@xyo-network/payload-model'\nimport { isHashStorageMeta, isStorageMeta } from '@xyo-network/payload-model'\n\nimport { isTransactionBoundWitness, type TransactionBoundWitness } from './TransactionBoundWitness.ts'\n\nexport const isSignedTransactionBoundWitness = (value: unknown): value is Signed<TransactionBoundWitness> => {\n return isTransactionBoundWitness(value) && isSigned(value)\n}\n\nexport const isTransactionBoundWitnessWithStorageMeta = (value: unknown): value is WithStorageMeta<TransactionBoundWitness> =>\n isTransactionBoundWitness(value)\n && isStorageMeta(value)\n\nexport const isTransactionBoundWitnessWithHashStorageMeta = (value: unknown): value is WithHashStorageMeta<TransactionBoundWitness> =>\n isTransactionBoundWitness(value)\n && isHashStorageMeta(value)\n\nexport const isSignedTransactionBoundWitnessWithStorageMeta = (value: unknown): value is WithStorageMeta<Signed<TransactionBoundWitness>> =>\n\n isSignedTransactionBoundWitness(value)\n && isStorageMeta(value)\n\nexport const isSignedTransactionBoundWitnessWithHashStorageMeta = (value: unknown): value is WithHashStorageMeta<Signed<TransactionBoundWitness>> =>\n\n isSignedTransactionBoundWitness(value)\n && isHashStorageMeta(value)\n\nexport const asTransactionBoundWitnessWithStorageMeta = AsObjectFactory.create(isTransactionBoundWitnessWithStorageMeta)\n\nexport const asTransactionBoundWitnessWithHashStorageMeta = AsObjectFactory.create(isTransactionBoundWitnessWithHashStorageMeta)\n","import { type Hex, isHex } from '@xylabs/hex'\nimport { AsObjectFactory } from '@xylabs/object'\nimport { isObject } from '@xylabs/typeof'\n\nimport { type AttoXL1, isAttoXL1 } from '../xl1/index.ts'\n\nexport interface TransactionFeesBigInt {\n base: AttoXL1\n gasLimit: AttoXL1\n gasPrice: AttoXL1\n priority: AttoXL1\n}\n\nexport type TransactionFeesHex = {\n [K in keyof TransactionFeesBigInt]: Hex;\n}\n\nexport interface TransactionFeesFields {\n fees: TransactionFeesHex\n}\n\nexport const isTransactionFeesBigInt = (value: unknown): value is TransactionFeesBigInt => {\n if (!isObject(value)) {\n return false\n }\n const {\n base, gasLimit, gasPrice, priority,\n } = value as TransactionFeesBigInt\n return (\n isAttoXL1(base)\n && isAttoXL1(gasLimit)\n && isAttoXL1(gasPrice)\n && isAttoXL1(priority)\n )\n}\n\nexport const asTransactionFeesBigInt = AsObjectFactory.create<TransactionFeesBigInt>(\n isTransactionFeesBigInt,\n)\n\nexport const isTransactionFeesHex = (value: unknown): value is TransactionFeesHex => {\n if (!isObject(value)) {\n return false\n }\n const {\n base, gasLimit, gasPrice, priority,\n } = value as TransactionFeesHex\n return (\n isHex(base)\n && isHex(gasLimit)\n && isHex(gasPrice)\n && isHex(priority)\n )\n}\n\nexport const asTransactionFeesHex = AsObjectFactory.create<TransactionFeesHex>(\n isTransactionFeesHex,\n)\n","import * as z from 'zod'\n\nimport { xl1MaxValue } from './xl1MaxValue.ts'\n\nexport const isXL1Factory = <T extends bigint>(places: bigint) => (val: unknown): val is T => {\n if (typeof val !== 'bigint') return false\n return val >= 0n && val <= xl1MaxValue(places)\n}\n\nexport const XL1ZodFactory = <T extends bigint>(places: bigint, name: string) => {\n const is = isXL1Factory<T>(places)\n const message = `Invalid value for ${name}, must be between 0 and ${xl1MaxValue(places)}`\n return z.bigint().refine(\n (x) => {\n const result = is(x)\n return result\n },\n { message },\n )\n}\n\nexport const XL1TransformZodFactory = <T extends bigint>(places: bigint, name: string) => {\n const is = isXL1Factory<T>(places)\n const message = `Invalid value for ${name}, must be between 0 and ${xl1MaxValue(places)}`\n return z.union([z.bigint(), z.number(), z.string(), z.boolean()]).transform(val => BigInt(val) as T).refine(\n (x) => {\n const result = is(x)\n return result\n },\n { message },\n )\n}\n\nexport const asXL1Factory = <T extends bigint>(places: bigint) => {\n const zod = XL1ZodFactory<T>(places, 'local')\n return (val: unknown): T => {\n const result = zod.safeParse(val)\n if (result.success) {\n return result.data as T\n }\n throw result.error\n }\n}\n\nexport const toXL1Factory = <T extends bigint>(places: bigint) => {\n const zod = XL1TransformZodFactory<T>(places, 'local')\n return (val: unknown): T | undefined => {\n const result = zod.safeParse(val)\n return result.success ? result.data as T : undefined\n }\n}\n","export const xl1MaxValue = (places: bigint) => 10n ** (32n - places) - 1n\n","type XL1Units = 'xl1' | 'milli' | 'micro' | 'nano' | 'pico' | 'femto' | 'atto'\n\nexport const XL1Places: Record<XL1Units, bigint> = {\n xl1: 18n,\n milli: 15n,\n micro: 12n,\n nano: 9n,\n pico: 6n,\n femto: 3n,\n atto: 0n,\n} as const\n\n/**\n * Convert factor by which a respective unit is multiplied to convert it to AttoXL1 or\n * by which AttoXL1 is divided to convert it to respective unit is multiplied.\n */\nexport const AttoXL1ConvertFactor: Record<XL1Units, bigint> = {\n xl1: 10n ** XL1Places.xl1,\n milli: 10n ** XL1Places.milli,\n micro: 10n ** XL1Places.micro,\n nano: 10n ** XL1Places.nano,\n pico: 10n ** XL1Places.pico,\n femto: 10n ** XL1Places.femto,\n atto: 10n ** XL1Places.atto,\n} as const\n","import {\n asXL1Factory, isXL1Factory, toXL1Factory,\n} from './isXL1Factory.ts'\nimport { xl1MaxValue } from './xl1MaxValue.ts'\nimport { XL1Places } from './XL1Units.ts'\n\nexport const AttoXL1MaxValue = xl1MaxValue(XL1Places.atto)\nexport type AttoXL1 = bigint & { readonly _tag: 'AttoXL1' }\nexport const isAttoXL1 = isXL1Factory<AttoXL1>(XL1Places.atto)\nexport const asAttoXL1 = asXL1Factory<AttoXL1>(XL1Places.atto)\nexport const toAttoXL1 = toXL1Factory<AttoXL1>(XL1Places.atto)\n\nexport const AttoXL1 = asAttoXL1\n","import {\n asXL1Factory, isXL1Factory, toXL1Factory,\n} from './isXL1Factory.ts'\nimport { xl1MaxValue } from './xl1MaxValue.ts'\nimport { XL1Places } from './XL1Units.ts'\n\nexport const FemtoXL1MaxValue = xl1MaxValue(XL1Places.femto)\nexport type FemtoXL1 = bigint & { readonly _tag: 'FemtoXL1' }\nexport const isFemtoXL1 = isXL1Factory<FemtoXL1>(XL1Places.femto)\nexport const asFemtoXL1 = asXL1Factory<FemtoXL1>(XL1Places.femto)\n\nexport const toFemtoXL1 = toXL1Factory<FemtoXL1>(XL1Places.femto)\n\nexport const FemtoXL1 = asFemtoXL1\n","import {\n asXL1Factory, isXL1Factory, toXL1Factory,\n} from './isXL1Factory.ts'\nimport { xl1MaxValue } from './xl1MaxValue.ts'\nimport { XL1Places } from './XL1Units.ts'\n\nexport const MicroXL1MaxValue = xl1MaxValue(XL1Places.micro)\nexport type MicroXL1 = bigint & { readonly _tag: 'MicroXL1' }\nexport const isMicroXL1 = isXL1Factory<MicroXL1>(XL1Places.micro)\nexport const asMicroXL1 = asXL1Factory<MicroXL1>(XL1Places.micro)\n\nexport const toMicroXL1 = toXL1Factory<MicroXL1>(XL1Places.micro)\n\nexport const MicroXL1 = asMicroXL1\n","import {\n asXL1Factory, isXL1Factory, toXL1Factory,\n} from './isXL1Factory.ts'\nimport { xl1MaxValue } from './xl1MaxValue.ts'\nimport { XL1Places } from './XL1Units.ts'\n\nexport const MilliXL1MaxValue = xl1MaxValue(XL1Places.milli)\nexport type MilliXL1 = bigint & { readonly _tag: 'MilliXL1' }\nexport const isMilliXL1 = isXL1Factory<MilliXL1>(XL1Places.milli)\nexport const asMilliXL1 = asXL1Factory<MilliXL1>(XL1Places.milli)\n\nexport const toMilliXL1 = toXL1Factory<MilliXL1>(XL1Places.milli)\n\nexport const MilliXL1 = asMilliXL1\n","import {\n asXL1Factory, isXL1Factory, toXL1Factory,\n} from './isXL1Factory.ts'\nimport { xl1MaxValue } from './xl1MaxValue.ts'\nimport { XL1Places } from './XL1Units.ts'\n\nexport const NanoXL1MaxValue = xl1MaxValue(XL1Places.nano)\nexport type NanoXL1 = bigint & { readonly _tag: 'NanoXL1' }\nexport const isNanoXL1 = isXL1Factory<NanoXL1>(XL1Places.nano)\nexport const asNanoXL1 = asXL1Factory<NanoXL1>(XL1Places.nano)\n\nexport const toNanoXL1 = toXL1Factory<NanoXL1>(XL1Places.nano)\n\nexport const NanoXL1 = asNanoXL1\n","import {\n asXL1Factory, isXL1Factory, toXL1Factory,\n} from './isXL1Factory.ts'\nimport { xl1MaxValue } from './xl1MaxValue.ts'\nimport { XL1Places } from './XL1Units.ts'\n\nexport const PicoXL1MaxValue = xl1MaxValue(XL1Places.pico)\nexport type PicoXL1 = bigint & { readonly _tag: 'PicoXL1' }\nexport const isPicoXL1 = isXL1Factory<PicoXL1>(XL1Places.pico)\nexport const asPicoXL1 = asXL1Factory<PicoXL1>(XL1Places.pico)\n\nexport const toPicoXL1 = toXL1Factory<PicoXL1>(XL1Places.pico)\n\nexport const PicoXL1 = asPicoXL1\n","import {\n asXL1Factory, isXL1Factory, toXL1Factory,\n} from './isXL1Factory.ts'\nimport { xl1MaxValue } from './xl1MaxValue.ts'\nimport { XL1Places } from './XL1Units.ts'\n\nexport const XL1MaxValue = xl1MaxValue(XL1Places.xl1)\nexport type XL1 = bigint & { readonly _tag: 'XL1' }\nexport const isXL1 = isXL1Factory<XL1>(XL1Places.xl1)\nexport const asXL1 = asXL1Factory<XL1>(XL1Places.xl1)\n\nexport const toXL1 = toXL1Factory<XL1>(XL1Places.xl1)\n\nexport const XL1 = asXL1\n","import { AsObjectFactory } from '@xylabs/object'\nimport { isUnsigned } from '@xyo-network/boundwitness-model'\nimport type { Payload } from '@xyo-network/payload-model'\n\nimport { isAnyHydratedTransaction } from './AnyHydratedTransaction.ts'\nimport { type TransactionBoundWitness } from './TransactionBoundWitness.ts'\n\nexport type UnsignedHydratedTransaction<T extends TransactionBoundWitness = TransactionBoundWitness,\n P extends Payload = Payload> = [T, P[]]\n\nexport const isUnsignedHydratedTransaction = (\n value: unknown,\n): value is UnsignedHydratedTransaction => {\n return (\n isAnyHydratedTransaction(value) && isUnsigned(value[0])\n )\n}\n\nexport const asUnsignedHydratedTransaction = AsObjectFactory.create<UnsignedHydratedTransaction>(\n isUnsignedHydratedTransaction,\n)\n","import type { Hash } from '@xylabs/hex'\nimport { isHex } from '@xylabs/hex'\nimport { AsObjectFactory } from '@xylabs/object'\nimport type { BoundWitness, Signed } from '@xyo-network/boundwitness-model'\nimport { isBoundWitness, isSigned } from '@xyo-network/boundwitness-model'\nimport type { WithHashStorageMeta, WithStorageMeta } from '@xyo-network/payload-model'\nimport { isHashStorageMeta, isStorageMeta } from '@xyo-network/payload-model'\n\nimport type { Chain } from '../model.ts'\n\nexport interface BlockBoundWitnessMeta {\n $epoch: number\n}\n\nexport interface BlockBoundWitnessFields {\n /** Block number */\n block: number\n /** Chain id - this should be \"0\" for the genesis block */\n chain: Chain\n /** Previous block hash if not block 0 */\n previous: Hash | null /* the previous block hash */\n /** Version of the protocol being used major * 1,000,000 + minor * 1,000 + patch */\n protocol: number\n /** Step hashes */\n step_hashes: Hash[]\n}\n\nexport type BlockBoundWitness = BoundWitness<BlockBoundWitnessFields & BlockBoundWitnessMeta>\n\nexport const isBlockBoundWitness = (value: unknown): value is BlockBoundWitness => {\n const typedObj = value as BlockBoundWitness\n return isBoundWitness(value)\n && Number.isInteger(typedObj.block)\n && isHex(typedObj.chain)\n}\n\nexport const isSignedBlockBoundWitness = (value: unknown): value is Signed<BlockBoundWitness> => {\n return isBlockBoundWitness(value) && isSigned(value)\n}\n\nexport const isBlockBoundWitnessWithStorageMeta = (value: unknown): value is WithStorageMeta<BlockBoundWitness> => {\n return isBlockBoundWitness(value) && isStorageMeta(value)\n}\n\nexport const isSignedBlockBoundWitnessWithStorageMeta = (value: unknown): value is Signed<WithStorageMeta<BlockBoundWitness>> => {\n return isBlockBoundWitnessWithStorageMeta(value) && isSigned(value)\n}\n\nexport const isBlockBoundWitnessWithHashStorageMeta = (value: unknown): value is WithHashStorageMeta<BlockBoundWitness> => {\n return isBlockBoundWitness(value) && isHashStorageMeta(value)\n}\n\nexport const isSignedBlockBoundWitnessWithHashStorageMeta = (value: unknown): value is Signed<WithHashStorageMeta<BlockBoundWitness>> => {\n return isBlockBoundWitnessWithHashStorageMeta(value) && isSigned(value)\n}\n\nexport const asBlockBoundWitness = AsObjectFactory.create(isBlockBoundWitness)\nexport const asSignedBlockBoundWitness = AsObjectFactory.create(isSignedBlockBoundWitness)\n\nexport const asBlockBoundWitnessWithStorageMeta = AsObjectFactory.create(isBlockBoundWitnessWithStorageMeta)\nexport const asSignedBlockBoundWitnessWithStorageMeta = AsObjectFactory.create(isSignedBlockBoundWitnessWithStorageMeta)\n\nexport const asBlockBoundWitnessWithHashStorageMeta = AsObjectFactory.create(isBlockBoundWitnessWithHashStorageMeta)\nexport const asSignedBlockBoundWitnessWithHashStorageMeta = AsObjectFactory.create(isSignedBlockBoundWitnessWithHashStorageMeta)\n","import { AsObjectFactory } from '@xylabs/object'\nimport type { Signed } from '@xyo-network/boundwitness-model'\nimport { type Payload, type WithStorageMeta } from '@xyo-network/payload-model'\n\nimport { isHydratedBoundWitness } from '../isHydratedBoundWitness.ts'\nimport {\n type BlockBoundWitness,\n isBlockBoundWitnessWithStorageMeta,\n} from './BlockBoundWitness.ts'\n\nexport type HydratedBlock<T extends BlockBoundWitness = BlockBoundWitness,\n P extends Payload = Payload> = [WithStorageMeta<Signed<T>>, WithStorageMeta<P>[]]\n\nexport const isHydratedBlock = (\n value: unknown,\n): value is HydratedBlock => {\n return (\n isHydratedBoundWitness(value) && isBlockBoundWitnessWithStorageMeta(value[0])\n )\n}\n\nexport const asHydratedBlock = AsObjectFactory.create<HydratedBlock>(\n isHydratedBlock,\n)\n","import type { Address } from '@xylabs/hex'\n\nexport const XYO_ZERO_ADDRESS = '0000000000000000000000000000000000000000' as const as Address\n\nexport const XYO_STEP_REWARD_ADDRESS = '1216197612161976121619761216197612161976' as const as Address\nexport const XYO_BRIDGE_ADDRESS = '3012193230121932301219323012193230121932' as const as Address\n","// the percent of the block rewards the producer gets\nexport const defaultRewardRatio = 0.5 as const\n","import type { TransactionFeesBigInt } from '../transaction/index.ts'\nimport { AttoXL1, AttoXL1ConvertFactor } from '../xl1/index.ts'\n\nexport const minTransactionFees: TransactionFeesBigInt = {\n base: AttoXL1(1000n * AttoXL1ConvertFactor.nano),\n gasPrice: AttoXL1(10n * AttoXL1ConvertFactor.nano),\n gasLimit: AttoXL1(1_000_000n * AttoXL1ConvertFactor.nano),\n priority: AttoXL1(0n * AttoXL1ConvertFactor.nano),\n} as const\n","import type { TransactionFeesBigInt } from '../transaction/index.ts'\nimport { AttoXL1, AttoXL1ConvertFactor } from '../xl1/index.ts'\nimport { minTransactionFees } from './minTransactionFees.ts'\n\nexport const defaultTransactionFees: TransactionFeesBigInt = {\n base: minTransactionFees.base,\n gasPrice: AttoXL1(10n * AttoXL1ConvertFactor.nano),\n gasLimit: AttoXL1(1_000_000n * AttoXL1ConvertFactor.nano),\n priority: minTransactionFees.priority,\n} as const\n","import { AsTypeFactory } from '@xylabs/object'\n\n// StepsV2 are primorial(n+2) + 1, where n is the index of the step size\n// primorial(n+2) = 2 → 2×3=6 → 6×5=30 → 30×7=210 → 210×11=2310\n\nexport const StepSizes = [7, 31, 211, 2311, 30_031, 510_511, 9_699_691, 223_092_871, 6_469_693_231] as const\n\nexport function isValidStep(step: unknown): step is number {\n if (typeof step === 'number' && Number.isInteger(step)) {\n return ((step >= 0) && (step < StepSizes.length))\n }\n return false\n}\n\nexport const asValidStep = AsTypeFactory.create<number>(isValidStep)\n\nexport function stepSize(step: number): number {\n const validatedStep = asValidStep(step, () => `Invalid step (${step}), must be an integer between 0 and ${StepSizes.length - 1}`, { required: true })\n return StepSizes[validatedStep]\n}\n","export const TransactionGasCosts = {\n /**\n * The cost of storing each character that is added to the chain\n * This includes the transaction JSON and all the elevated payloads' JSON\n */\n characterStorage: 10n,\n\n /** The cost of static validating every payload that will be included in the chain */\n payloadValidation: 1000n,\n\n /** The cost of validating each signature that will be included in the chain */\n signatureValidation: 1000n,\n\n /** The cost of validating each hash that will be included in the chain */\n hashValidation: 100n,\n\n /** The cost of validating a balance state, triggered by a Transfer payload or gas collection */\n balanceValidation: 100n,\n} as const\n\n/** Gas Calculation\n *\n * 1 Million microXL1 (mXL1) = 1 XL1\n *\n * Gas amount is calculated as follows:\n *\n * 1. Each byte in the transaction cost 10 gas\n * 2. Each payload validation in the transaction costs 1000 gas\n * 3. Each signature verification in the transaction costs 1000 gas\n * 4. Each hash validation in the transaction costs 100 gas\n * 5. Each balance validation in the transaction costs 100 gas\n * 6. Processing/Compute/Storage Cost?\n * 7. operation Costs?\n *\n * The total gas cost is calculated by multiplying the gas amount by the gas price.\n *\n * minGasPrice is initially set to 100 mXL1\n * minBase is initially set to 1000 mXL1\n * minPriority is always 0 mXL1, but can be set to increase the priority of the transaction\n *\n */\n","export const XL1_PROTOCOL_VERSION_MAJOR = 1 as const\nexport const XL1_PROTOCOL_VERSION_MINOR = 2 as const\nexport const XL1_PROTOCOL_VERSION_PATCH = 0 as const\nexport const XL1_PROTOCOL_VERSION_STRING = `${XL1_PROTOCOL_VERSION_MAJOR}.${XL1_PROTOCOL_VERSION_MINOR}.${XL1_PROTOCOL_VERSION_PATCH}` as const\nexport const XL1_PROTOCOL_VERSION = XL1_PROTOCOL_VERSION_MAJOR * 1_000_000 + XL1_PROTOCOL_VERSION_MINOR * 1000 + XL1_PROTOCOL_VERSION_PATCH\n","import type { Hex } from '@xylabs/hex'\nimport { AsObjectFactory } from '@xylabs/object'\nimport type { Payload, WithSources } from '@xyo-network/payload-model'\nimport {\n isPayloadOfSchemaType,\n isPayloadOfSchemaTypeWithSources,\n} from '@xyo-network/payload-model'\n\nexport const BlockNumberSchema = 'network.xyo.chain.block.number' as const\nexport type BlockNumberSchema = typeof BlockNumberSchema\n\nexport interface BlockNumberFields {\n /**\n * The block number\n */\n block: Hex\n}\n/**\n * The number of a block\n */\nexport type BlockNumber = Payload<BlockNumberFields, BlockNumberSchema>\n\n/**\n * Identity function for determining if an object is a BlockNumber\n */\nexport const isBlockNumber = isPayloadOfSchemaType<BlockNumber>(BlockNumberSchema)\nexport const asBlockNumber = AsObjectFactory.create<BlockNumber>(isBlockNumber)\n\n/**\n * Identity function for determining if an object is a BlockNumber with sources\n */\nexport const isBlockNumberWithSources = isPayloadOfSchemaTypeWithSources<BlockNumber>(BlockNumberSchema)\nexport const asBlockNumberWithSources = AsObjectFactory.create<WithSources<BlockNumber>>(isBlockNumberWithSources)\n","import type { Payload } from '@xyo-network/payload-model'\nimport { isPayloadOfSchemaType } from '@xyo-network/payload-model'\n\nexport const NetworkStatusSchema = 'network.xyo.chain.status' as const\nexport type NetworkStatusSchema = typeof NetworkStatusSchema\n\nexport type NetworkStatusState = 'online' | 'offline' | 'degraded' | 'unknown'\n\nexport type NetworkStatusUpdate = {\n end: number\n start: number\n update: string\n}\n\nexport interface NetworkStatusFields {\n description: string\n state: NetworkStatusState\n updates?: NetworkStatusUpdate[]\n}\n\nexport type NetworkStatus = Payload<NetworkStatusFields, NetworkStatusSchema>\n\nexport const isNetworkStatus = isPayloadOfSchemaType<NetworkStatus>(NetworkStatusSchema)\n","import type { Hash } from '@xylabs/hex'\nimport type { Promisable } from '@xylabs/promise'\nimport type { Payload } from '@xyo-network/payload-model'\n\nexport type DataLakeData = Payload | ArrayBuffer\n\nexport interface XyoDataLakeViewer {\n // if resolves to hash payload, keep going until hitting a non-payload or maxDepth, or unable to find\n fetch(hashes: Hash[], maxDepth?: number): Promisable<DataLakeData[]>\n // same as fetch but never follows hash payloads\n get(hashes: Hash[]): Promisable<DataLakeData[]>\n // same as fetch, except returns each step in tuple containing the result and the steps\n trace(hash: Hash): Promisable<[DataLakeData | undefined, Payload[]]>\n}\n\nexport interface XyoDataLake extends XyoDataLakeViewer {\n add(items: DataLakeData[]): Promisable<DataLakeData[]>\n}\n\n/** @deprecated use XyoDataLake instead */\nexport interface XyoDataLakeProvider extends XyoDataLake {\n}\n\nexport const isDataLakeViewer = (value: unknown): value is XyoDataLakeViewer => {\n return (\n typeof value === 'object'\n && value !== null\n && 'fetch' in value\n && typeof (value as XyoDataLakeViewer).fetch === 'function'\n && 'get' in value\n && typeof (value as XyoDataLakeViewer).get === 'function'\n && 'trace' in value\n && typeof (value as XyoDataLakeViewer).trace === 'function'\n )\n}\n\nexport const isDataLakeProvider = (value: unknown): value is XyoDataLake => {\n return (\n isDataLakeViewer(value)\n && 'add' in value\n && typeof (value as XyoDataLake).add === 'function'\n )\n}\n","import type { Hash } from '@xylabs/hex'\nimport type { JsonValue } from '@xylabs/object'\nimport { AsObjectFactory } from '@xylabs/object'\nimport type { Payload, WithStorageMeta } from '@xyo-network/payload-model'\nimport { isPayloadOfSchemaType, isStorageMeta } from '@xyo-network/payload-model'\n\nexport interface ChainIndexingServiceStateFields<T extends JsonValue = JsonValue> {\n /**\n * The hash of the last block that this service has indexing\n */\n endBlockHash: Hash\n /**\n * The hash of the block that the service started indexing. If undefined, the service is\n * assumed to have started indexing from the genesis block\n */\n startBlockHash?: Hash\n /**\n * The indexed state for the range\n */\n state: T\n}\nexport const ChainIndexingServiceStateSchema = 'network.xyo.chain.indexing.service.state' as const\nexport type ChainIndexingServiceStateSchema = typeof ChainIndexingServiceStateSchema\n\n/**\n * The result of a ChainIndexingServiceState\n */\nexport type ChainIndexingServiceState<T extends JsonValue = JsonValue> = Payload<ChainIndexingServiceStateFields<T>, ChainIndexingServiceStateSchema>\n\n/**\n * Identity functions for determining if an object is an ChainIndexingServiceState\n */\nexport const isChainIndexingServiceState = <T extends JsonValue = JsonValue>(payload?: unknown): payload is ChainIndexingServiceState<T> => {\n return isPayloadOfSchemaType<ChainIndexingServiceState<T>>(ChainIndexingServiceStateSchema)(payload)\n}\nexport const asChainIndexingServiceState = AsObjectFactory.create<ChainIndexingServiceState<JsonValue>>(isChainIndexingServiceState)\n\nexport const isChainIndexingServiceStateWithStorageMeta\n= <T extends JsonValue = JsonValue>(value: unknown): value is WithStorageMeta<ChainIndexingServiceState<T>> =>\n isChainIndexingServiceState<T>(value) && isStorageMeta(value)\n\nexport const asChainIndexingServiceStateWithStorageMeta\n= AsObjectFactory.create<WithStorageMeta<ChainIndexingServiceState>>(isChainIndexingServiceStateWithStorageMeta)\n","import { type Hash, isHash } from '@xylabs/hex'\nimport { isError } from '@xylabs/typeof'\nimport type { Payload } from '@xyo-network/payload-model'\n\nexport class ValidationError<TValue = Payload> extends Error {\n hash: Hash\n value: TValue\n constructor(hash: Hash, value: TValue, message?: string, cause?: unknown) {\n super(message)\n this.hash = hash\n this.name = this.constructor.name\n this.value = value\n this.cause = cause\n }\n}\n\nexport const isValidationError = <TValue = Payload>(\n error: unknown,\n): error is ValidationError<TValue> => {\n return (\n isError(error) && isHash((error as ValidationError<TValue>)?.hash) && (error as ValidationError<TValue>)?.value !== undefined\n )\n}\n","import type { Hash, Hex } from '@xylabs/hex'\n\nimport { type BlockBoundWitness, type HydratedBlock } from '../../block/index.ts'\nimport type { Chain } from '../../model.ts'\nimport { isValidationError, ValidationError } from '../error.ts'\n\nexport class BlockValidationError extends ValidationError<BlockBoundWitness> {}\n\nexport const isBlockValidationError = (\n error: unknown,\n): error is BlockValidationError => {\n if (!isValidationError(error)) return false\n return (\n error.name === BlockValidationError.constructor.name\n )\n}\n\nexport class HydratedBlockValidationError extends ValidationError<HydratedBlock> {}\n\nexport const isHydratedBlockValidationError = (\n error: unknown,\n): error is HydratedBlockValidationError => {\n if (!isValidationError(error)) return false\n return (\n error.name === HydratedBlockValidationError.constructor.name\n )\n}\n\nexport class HydratedBlockStateValidationError extends ValidationError<HydratedBlock> {\n chainId: Chain\n constructor(hash: Hash, chainId: Hex, value: HydratedBlock, message?: string, cause?: unknown) {\n super(hash, value, message, cause)\n this.chainId = chainId\n }\n}\n\nexport const isHydratedBlockStateValidationError = (\n error: unknown,\n): error is HydratedBlockStateValidationError => {\n if (!isValidationError(error)) return false\n return (\n error.name === HydratedBlockStateValidationError.constructor.name\n )\n}\n","import type { HydratedBoundWitness } from '@xyo-network/archivist-model'\nimport { type BoundWitness } from '@xyo-network/boundwitness-model'\n\nimport { isValidationError, ValidationError } from '../error.ts'\n\nexport class BoundWitnessValidationError extends ValidationError<BoundWitness> {}\n\nexport const isBoundWitnessValidationError = (\n error: unknown,\n): error is BoundWitnessValidationError => {\n if (!isValidationError(error)) return false\n return (\n error.name === BoundWitnessValidationError.constructor.name\n )\n}\n\nexport class HydratedBoundWitnessValidationError extends ValidationError<HydratedBoundWitness> {}\n\nexport const isHydratedBoundWitnessValidationError = (\n error: unknown,\n): error is HydratedBoundWitnessValidationError => {\n if (!isValidationError(error)) return false\n return (\n error.name === HydratedBoundWitnessValidationError.constructor.name\n )\n}\n","import type { Hash } from '@xylabs/hex'\nimport { type Payload } from '@xyo-network/payload-model'\n\nimport { type HydratedBlock } from '../../block/index.ts'\nimport { isValidationError, ValidationError } from '../error.ts'\n\nexport class InBlockPayloadValidationError extends ValidationError<Payload> {\n block: HydratedBlock\n constructor(hash: Hash, block: HydratedBlock, value: Payload, message?: string, cause?: unknown) {\n super(hash, value, message, cause)\n this.block = block\n }\n}\n\nexport const isInBlockPayloadValidationError = (\n error: unknown,\n): error is InBlockPayloadValidationError => {\n if (!isValidationError(error)) return false\n return (\n error.name === InBlockPayloadValidationError.constructor.name\n )\n}\n","import { type SignedHydratedTransaction } from '../../transaction/index.ts'\nimport { isValidationError, ValidationError } from '../error.ts'\n\nexport class HydratedTransactionValidationError extends ValidationError<SignedHydratedTransaction> {}\n\nexport const isHydratedTransactionValidationError = (\n error: unknown,\n): error is HydratedTransactionValidationError => {\n if (!isValidationError(error)) return false\n return (\n error.name === HydratedTransactionValidationError.constructor.name\n )\n}\n"],"mappings":"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","names":["isHashStorageMeta","z","AsObjectFactory","isPayloadOfSchemaType","AsObjectFactory","isPayloadOfSchemaType","AsObjectFactory","isPayloadOfSchemaType","AsObjectFactory","isPayloadOfSchemaType","AsObjectFactory","isPayloadOfSchemaType","AsObjectFactory","isPayloadOfSchemaType","AsObjectFactory","isPayloadOfSchemaType","AsObjectFactory","isPayloadOfSchemaType","AsObjectFactory","isPayloadOfSchemaType","AsObjectFactory","AsObjectFactory","isAnyPayload","isStorageMeta","AsObjectFactory","isBoundWitness","AsObjectFactory","AsObjectFactory","isStorageMeta","isStorageMeta","AsObjectFactory","AsObjectFactory","isStorageMeta","isStorageMeta","AsObjectFactory","AsObjectFactory","isSigned","isSigned","AsObjectFactory","AsObjectFactory","isStorageMeta","isStorageMeta","AsObjectFactory","AsObjectFactory","isSigned","isStorageMeta","isSigned","isStorageMeta","AsObjectFactory","AsObjectFactory","AsObjectFactory","AsObjectFactory","AsObjectFactory","isHashStorageMeta","z","isHex","AsObjectFactory","isBoundWitness","isSigned","isHashStorageMeta","isStorageMeta","AsObjectFactory","AsObjectFactory","AsObjectFactory","isPayloadOfSchemaType","isPayloadOfSchemaType","AsObjectFactory","isPayloadOfSchemaType","isStorageMeta"]}
|
|
1
|
+
{"version":3,"sources":["../../src/block/AllowedBlockPayload.ts","../../src/payload/elevatable/Bridge/BridgeDestinationObservation.ts","../../src/payload/elevatable/Bridge/BridgeIntent.ts","../../src/payload/elevatable/Bridge/BridgeSourceObservation.ts","../../src/payload/elevatable/BridgeBack.ts","../../src/payload/elevatable/BridgeComplete.ts","../../src/payload/elevatable/BridgeRequest.ts","../../src/payload/elevatable/ChainStakeIntent.ts","../../src/payload/elevatable/Executable.ts","../../src/payload/elevatable/Hash.ts","../../src/payload/elevatable/StepComplete.ts","../../src/payload/elevatable/Time.ts","../../src/payload/elevatable/TransferPayload.ts","../../src/transaction/AnyHydratedTransaction.ts","../../src/isHydratedBoundWitness.ts","../../src/transaction/TransactionBoundWitness.ts","../../src/transaction/HydratedTransaction.ts","../../src/transaction/HydratedTransactionWithStorageMeta.ts","../../src/transaction/SignedHydratedTransaction.ts","../../src/transaction/SignedHydratedTransactionWithStorageMeta.ts","../../src/transaction/TransactionBoundWitnessDeprecated.ts","../../src/transaction/TransactionFeesFields.ts","../../src/xl1/isXL1Factory.ts","../../src/xl1/xl1MaxValue.ts","../../src/xl1/XL1Units.ts","../../src/xl1/AttoXL1.ts","../../src/xl1/FemtoXL1.ts","../../src/xl1/MicroXL1.ts","../../src/xl1/MilliXL1.ts","../../src/xl1/NanoXL1.ts","../../src/xl1/PicoXL1.ts","../../src/xl1/XL1.ts","../../src/transaction/UnsignedHydratedTransaction.ts","../../src/block/BlockBoundWitness.ts","../../src/block/HydratedBlock.ts","../../src/constants/addresses.ts","../../src/constants/defaultRewardRatio.ts","../../src/constants/minTransactionFees.ts","../../src/constants/defaultTransactionFees.ts","../../src/constants/StepSizes.ts","../../src/constants/TransactionGasCosts.ts","../../src/constants/version.ts","../../src/fields/BlockNumber.ts","../../src/network/Status.ts","../../src/provider/XyoDataLake.ts","../../src/services/StakeIntentService/ChainIndexingServiceStateSchema.ts","../../src/validation/error.ts","../../src/validation/block/error.ts","../../src/validation/boundwitness/error.ts","../../src/validation/payload/error.ts","../../src/validation/transaction/error.ts"],"sourcesContent":["import { BoundWitnessSchema } from '@xyo-network/boundwitness-model'\nimport type { Schema, WithStorageMeta } from '@xyo-network/payload-model'\nimport { isHashStorageMeta, isSchema } from '@xyo-network/payload-model'\nimport type { SchemaPayload } from '@xyo-network/schema-payload-plugin'\nimport { isSchemaPayload, SchemaSchema } from '@xyo-network/schema-payload-plugin'\nimport z from 'zod'\n\nimport type {\n BridgeDestinationObservation, BridgeIntent, BridgeSourceObservation, ChainStakeIntent, HashPayload, StepComplete, TimePayload, Transfer,\n} from '../payload/index.ts'\nimport {\n BridgeDestinationObservationSchema, BridgeIntentSchema, BridgeRequestSchema, BridgeSourceObservationSchema, ChainStakeIntentSchema, HashSchema,\n isBridgeDestinationObservation, isBridgeIntent, isBridgeSourceObservation, isChainStakeIntent, isHashPayload, isTimePayload, isTransfer, StepCompleteSchema,\n TimeSchema, TransferSchema,\n} from '../payload/index.ts'\nimport { isTransactionBoundWitness, type TransactionBoundWitness } from '../transaction/index.ts'\n\nexport type AllowedBlockPayload\n = Transfer\n | BridgeDestinationObservation\n | BridgeIntent\n | BridgeSourceObservation\n | ChainStakeIntent\n | HashPayload\n | SchemaPayload\n | StepComplete\n | TimePayload\n | TransactionBoundWitness\n\nexport const AllowedBlockPayloadSchemas: Schema[] = [\n BoundWitnessSchema,\n BridgeDestinationObservationSchema,\n BridgeIntentSchema,\n BridgeRequestSchema,\n BridgeSourceObservationSchema,\n ChainStakeIntentSchema,\n HashSchema,\n SchemaSchema,\n StepCompleteSchema,\n TimeSchema,\n TransferSchema,\n]\n\nexport type AllowedBlockPayloadSchema = typeof AllowedBlockPayloadSchemas[number]\n\nexport const isAllowedBlockPayloadSchema = (value: unknown): value is AllowedBlockPayloadSchema => {\n return isSchema(value) && AllowedBlockPayloadSchemas.includes(value)\n}\n\nexport const isAllowedBlockPayload = (value: unknown): value is AllowedBlockPayload => {\n return isTransfer(value)\n || isBridgeDestinationObservation(value)\n || isBridgeIntent(value)\n || isBridgeSourceObservation(value)\n || isChainStakeIntent(value)\n || isHashPayload(value)\n || isSchemaPayload(value)\n || isTimePayload(value)\n || isTransactionBoundWitness(value)\n}\n\nexport const isAllowedBlockPayloadWithHashStorageMeta = (value: unknown): value is WithStorageMeta<AllowedBlockPayload> => {\n return isAllowedBlockPayload(value) && isHashStorageMeta(value)\n}\n\nexport const AllowedBlockPayloadZod = z.object({ schema: z.enum(AllowedBlockPayloadSchemas) })\n","import type { Hex } from '@xylabs/hex'\nimport { AsObjectFactory } from '@xylabs/object'\nimport type { Payload } from '@xyo-network/payload-model'\nimport { isPayloadOfSchemaType } from '@xyo-network/payload-model'\n\nimport type { BridgeDetailsFields } from './BridgeDetails.ts'\n\nexport const BridgeDestinationObservationSchema = 'network.xyo.chain.bridge.observation.destination' as const\nexport type BridgeDestinationObservationSchema = typeof BridgeDestinationObservationSchema\n\n/**\n * Represents an observation that confirms a bridge action occurred on the destination chain.\n */\nexport interface BridgeDestinationObservationFields extends BridgeDetailsFields {\n /**\n * Destination chain confirmation\n */\n destConfirmation?: Hex\n}\n\n/**\n * Represents an observation that confirms a bridge action occurred on the destination chain.\n */\nexport type BridgeDestinationObservation = Payload<BridgeDestinationObservationFields, BridgeDestinationObservationSchema>\n\nexport const isBridgeDestinationObservation = isPayloadOfSchemaType<BridgeDestinationObservation>(BridgeDestinationObservationSchema)\n\nexport const asBridgeDestinationObservation = AsObjectFactory.create(isBridgeDestinationObservation)\n","import { AsObjectFactory } from '@xylabs/object'\nimport type { Payload } from '@xyo-network/payload-model'\nimport { isPayloadOfSchemaType } from '@xyo-network/payload-model'\n\nimport type { BridgeDetailsFields } from './BridgeDetails.ts'\n\nexport const BridgeIntentSchema = 'network.xyo.chain.bridge.intent' as const\nexport type BridgeIntentSchema = typeof BridgeIntentSchema\n\n/**\n * Represents an Addresses intent to initiate a token bridge.\n */\nexport interface BridgeIntentFields extends BridgeDetailsFields {\n /**\n * Unique identifier for replay protection\n */\n nonce: string\n}\n\nexport type BridgeIntent = Payload<BridgeIntentFields, BridgeIntentSchema>\n\nexport const isBridgeIntent = isPayloadOfSchemaType<BridgeIntent>(BridgeIntentSchema)\n\nexport const asBridgeIntent = AsObjectFactory.create(isBridgeIntent)\n","import type { Hex } from '@xylabs/hex'\nimport { AsObjectFactory } from '@xylabs/object'\nimport type { Payload } from '@xyo-network/payload-model'\nimport { isPayloadOfSchemaType } from '@xyo-network/payload-model'\n\nimport type { BridgeDetailsFields } from './BridgeDetails.ts'\n\nexport const BridgeSourceObservationSchema = 'network.xyo.chain.bridge.observation.source' as const\nexport type BridgeSourceObservationSchema = typeof BridgeSourceObservationSchema\n\n/**\n * Represents an observation that confirms a bridge action occurred on the source chain.\n */\nexport interface BridgeSourceObservationFields extends BridgeDetailsFields {\n /**\n * Source chain confirmation\n */\n srcConfirmation?: Hex\n}\n\n/**\n * Represents an observation that confirms a bridge action occurred on the source chain.\n */\nexport type BridgeSourceObservation = Payload<BridgeSourceObservationFields, BridgeSourceObservationSchema>\n\nexport const isBridgeSourceObservation = isPayloadOfSchemaType<BridgeSourceObservation>(BridgeSourceObservationSchema)\n\nexport const asBridgeSourceObservation = AsObjectFactory.create(isBridgeSourceObservation)\n","import type { Address, EthAddress } from '@xylabs/hex'\nimport { AsObjectFactory } from '@xylabs/object'\nimport type { Payload } from '@xyo-network/payload-model'\nimport { isPayloadOfSchemaType } from '@xyo-network/payload-model'\n\nimport type { FromFields } from './Executable.ts'\n\nexport const BridgeBackSchema = 'network.xyo.chain.bridge.back' as const\nexport type BridgeBackSchema = typeof BridgeBackSchema\n\n/* Report a bridging from WXL1 to XL1 */\n\nexport interface BridgeBackFields extends FromFields {\n destAddress: Address\n src: 'ethereum'\n srcAddress: EthAddress\n // usually the source's block number\n srcTime: number\n}\n\n// if this payload is included in a boundwitness, it needs to be available for inspection to be included in block\nexport type BridgeBack = Payload<BridgeBackFields, BridgeBackSchema>\n\nexport const isBridgeBack = isPayloadOfSchemaType<BridgeBack>(BridgeBackSchema)\n\nexport const asBridgeBack = AsObjectFactory.create(isBridgeBack)\n","import type { Hash } from '@xylabs/hex'\nimport { AsObjectFactory } from '@xylabs/object'\nimport type { Payload } from '@xyo-network/payload-model'\nimport { isPayloadOfSchemaType } from '@xyo-network/payload-model'\n\nimport type { FromFields } from './Executable.ts'\n\nexport const BridgeCompleteSchema = 'network.xyo.chain.bridge.complete' as const\nexport type BridgeCompleteSchema = typeof BridgeCompleteSchema\n\n/* Complete a bridging from XL1 to WXL1 */\n\nexport interface BridgeCompleteFields extends FromFields {\n // usually the destination's block number\n destTime: number\n request: Hash\n}\n\n// if this payload is included in a boundwitness, it needs to be available for inspection to be included in block\nexport type BridgeComplete = Payload<BridgeCompleteFields, BridgeCompleteSchema>\n\nexport const isBridgeComplete = isPayloadOfSchemaType<BridgeComplete>(BridgeCompleteSchema)\n\nexport const asBridgeComplete = AsObjectFactory.create(isBridgeComplete)\n","import type {\n Address, EthAddress, Hex,\n} from '@xylabs/hex'\nimport { AsObjectFactory } from '@xylabs/object'\nimport type { Payload } from '@xyo-network/payload-model'\nimport { isPayloadOfSchemaType } from '@xyo-network/payload-model'\n\nimport type { FromFields } from './Executable.ts'\n\n/* Request a bridging from XL1 to WXL1 */\n\nexport const BridgeRequestSchema = 'network.xyo.chain.bridge.request' as const\nexport type BridgeRequestSchema = typeof BridgeRequestSchema\n\nexport interface BridgeRequestFields extends FromFields {\n amount: Hex\n\n dest: 'ethereum'\n destAddress: EthAddress\n\n // xl1 address\n srcAddress: Address\n}\n\n// if this payload is included in a boundwitness, it needs to be available for inspection to be included in block\nexport type BridgeRequest = Payload<BridgeRequestFields, BridgeRequestSchema>\n\nexport const isBridgeRequest = isPayloadOfSchemaType<BridgeRequest>(BridgeRequestSchema)\n\nexport const asBridgeRequest = AsObjectFactory.create(isBridgeRequest)\n","import { AsObjectFactory } from '@xylabs/object'\nimport type { Payload, WithStorageMeta } from '@xyo-network/payload-model'\nimport { isPayloadOfSchemaType, isStorageMeta } from '@xyo-network/payload-model'\n\nimport type { BlockDuration } from '../../fields/index.ts'\nimport type { FromFields } from './Executable.ts'\n\nexport const ChainStakeIntentSchema = 'network.xyo.chain.stake.intent' as const\nexport type ChainStakeIntentSchema = typeof ChainStakeIntentSchema\n\nexport type Intent = 'producer' // | 'bank'\n\nexport interface ChainStakeIntentFields extends BlockDuration, FromFields {\n /*\n * The intent of the staking\n */\n intent: Intent\n}\n\nexport type ChainStakeIntent = Payload<ChainStakeIntentFields, ChainStakeIntentSchema>\n\nexport const isChainStakeIntent = (x?: unknown | null): x is ChainStakeIntent => {\n return isPayloadOfSchemaType<ChainStakeIntent>(ChainStakeIntentSchema)(x)\n && asNonNegativeInteger(x.nbf) !== undefined\n && asNonNegativeInteger(x.exp) !== undefined\n}\nexport const asChainStakeIntent = AsObjectFactory.create(isChainStakeIntent)\n\nexport const isChainStakeIntentWithStorageMeta = (x?: unknown | null): x is WithStorageMeta<ChainStakeIntent> => {\n return isChainStakeIntent(x) && isStorageMeta(x)\n}\n\nconst asNonNegativeInteger = (num: number) => {\n return (Number.isInteger(num) && num >= 0) ? num : undefined\n}\n","import type { Address } from '@xylabs/hex'\nimport type { EmptyObject } from '@xylabs/object'\nimport { isAnyPayload } from '@xyo-network/payload-model'\n\nexport interface FromFields {\n // the address that is treated as the source of this action\n from: Address\n}\n\nexport const hasFrom = (value: unknown): value is FromFields => {\n return (value as FromFields).from !== undefined\n}\n\nexport interface ExecutableFields {\n script: string[]\n}\n\nexport type Executable<T extends EmptyObject = EmptyObject> = T & ExecutableFields\nexport type OptionalExecutable<T extends EmptyObject = EmptyObject> = T & Partial<ExecutableFields>\n\nexport const isExecutable = <T extends EmptyObject>(value: T | undefined): value is Executable<T> => {\n return isAnyPayload(value) && Array.isArray((value as unknown as ExecutableFields).script)\n}\n\nexport const asExecutable = <T extends EmptyObject>(value: T | undefined): Executable<T> | undefined => {\n return isExecutable(value)\n ? value as unknown as Executable<T>\n : undefined\n}\n","import type { Hash } from '@xylabs/hex'\nimport { AsObjectFactory } from '@xylabs/object'\nimport type { Payload } from '@xyo-network/payload-model'\nimport { isPayloadOfSchemaType } from '@xyo-network/payload-model'\n\nexport const HashSchema = 'network.xyo.hash' as const\nexport type HashSchema = typeof HashSchema\n\nexport interface HashFields {\n hash: Hash\n}\n\nexport type HashPayload = Payload<HashFields, HashSchema>\n\nexport const isHashPayload = isPayloadOfSchemaType<HashPayload>(HashSchema)\n\nexport const asHashPayload = AsObjectFactory.create(isHashPayload)\nexport const asHashPayloadWithStorageMeta = AsObjectFactory.create(isHashPayload)\n","import type { Hash } from '@xylabs/hex'\nimport { AsObjectFactory } from '@xylabs/object'\nimport type { Payload } from '@xyo-network/payload-model'\nimport { isPayloadOfSchemaType } from '@xyo-network/payload-model'\n\nimport type { FromFields } from './Executable.ts'\n\nexport const StepCompleteSchema = 'network.xyo.chain.step.complete' as const\nexport type StepCompleteSchema = typeof StepCompleteSchema\n\n/* This records the completion of a step in the network - needed for network staking rewards */\n/* We will only write these for steps that are eligible for rewards Step 3 (2311) */\n\nexport interface StepCompleteFields extends FromFields {\n block: number /* The block number on the XL1 network */\n hash: Hash /* The Step Hash */\n size: number /* The size of the step */\n stakeBlock: number /* The block number on ethereum or other staking system */\n}\n\n// if this payload is included in a boundwitness, it needs to be available for inspection to be included in block\nexport type StepComplete = Payload<StepCompleteFields, StepCompleteSchema>\n\nexport const isStepComplete = isPayloadOfSchemaType<StepComplete>(StepCompleteSchema)\n\nexport const asStepComplete = AsObjectFactory.create(isStepComplete)\n","import { AsObjectFactory } from '@xylabs/object'\nimport type { Payload } from '@xyo-network/payload-model'\nimport { isPayloadOfSchemaType } from '@xyo-network/payload-model'\n\n// xl1 = xl1 block number, epoch = epoch number, ethereum = ethereum block number\nexport type TimeDomain = 'xl1' | 'epoch' | 'ethereum'\n\nexport const TimeSchema = 'network.xyo.time' as const\nexport type TimeSchema = typeof TimeSchema\n\nexport interface TimeFields {\n // in milliseconds\n epoch: number\n // in block number\n ethereum?: number\n // in block number\n xl1?: number\n}\n\nexport type TimePayload = Payload<TimeFields, TimeSchema>\n\nexport const isTimePayload = isPayloadOfSchemaType<TimePayload>(TimeSchema)\n\nexport const asTimePayload = AsObjectFactory.create(isTimePayload)\nexport const asTimePayloadWithStorageMeta = AsObjectFactory.create(isTimePayload)\n","import type {\n Address,\n Hex,\n} from '@xylabs/hex'\nimport { AsObjectFactory } from '@xylabs/object'\nimport type { Payload } from '@xyo-network/payload-model'\nimport { isPayloadOfSchemaType } from '@xyo-network/payload-model'\n\nimport type { FromFields } from './Executable.ts'\n\nexport const TransferSchema = 'network.xyo.transfer' as const\nexport type TransferSchema = typeof TransferSchema\n\nexport interface TransferFields extends FromFields {\n epoch: number\n // the amount that is being sent to other addresses\n transfers: Partial<Record<Address, Hex>>\n}\n\n// if this payload is included in a boundwitness, it needs to be available for inspection to be included in block\nexport type Transfer = Payload<TransferFields, TransferSchema>\n\nexport const isTransfer = isPayloadOfSchemaType<Transfer>(TransferSchema)\n\nexport const asTransfer = AsObjectFactory.create(isTransfer)\n","import { AsObjectFactory } from '@xylabs/object'\nimport { type Payload } from '@xyo-network/payload-model'\n\nimport { isHydratedBoundWitness } from '../isHydratedBoundWitness.ts'\nimport { isTransactionBoundWitness, type TransactionBoundWitness } from './TransactionBoundWitness.ts'\n\nexport type AnyHydratedTransaction<T extends TransactionBoundWitness = TransactionBoundWitness,\n P extends Payload = Payload> = [T, P[]]\n\nexport const isAnyHydratedTransaction = (\n value: unknown,\n): value is AnyHydratedTransaction => {\n return (\n isHydratedBoundWitness(value) && isTransactionBoundWitness(value[0])\n )\n}\n\nexport const asAnyHydratedTransaction = AsObjectFactory.create<AnyHydratedTransaction>(\n isAnyHydratedTransaction,\n)\n","import { AsObjectFactory } from '@xylabs/object'\nimport type { HydratedBoundWitness, HydratedBoundWitnessWithStorageMeta } from '@xyo-network/archivist-model'\nimport { isBoundWitness } from '@xyo-network/boundwitness-model'\nimport { isAnyPayload, isStorageMeta } from '@xyo-network/payload-model'\n\nexport const isHydratedBoundWitness = (\n value: unknown,\n): value is HydratedBoundWitness => {\n return (\n Array.isArray(value)\n && value.length === 2\n && isBoundWitness(value[0])\n && Array.isArray(value[1])\n && !value[1].some(item => (!isAnyPayload(item)))\n )\n}\n\nexport const isHydratedBoundWitnessWithStorageMeta = (\n value: unknown,\n): value is HydratedBoundWitnessWithStorageMeta => {\n return (\n isHydratedBoundWitness(value)\n && isStorageMeta(value[0])\n && !value[1].some(item => (!isStorageMeta(item)))\n )\n}\n\nexport const asHydratedBoundWitness = AsObjectFactory.create<HydratedBoundWitness>(\n isHydratedBoundWitness,\n)\n\nexport const asHydratedBoundWitnessWithStorageMeta = AsObjectFactory.create<HydratedBoundWitnessWithStorageMeta>(\n isHydratedBoundWitnessWithStorageMeta,\n)\n","import {\n type Address, type Hex, isAddress,\n} from '@xylabs/hex'\nimport { AsObjectFactory } from '@xylabs/object'\nimport type { BoundWitness } from '@xyo-network/boundwitness-model'\nimport { isBoundWitness } from '@xyo-network/boundwitness-model'\n\nimport type { BlockDuration } from '../fields/index.ts'\nimport type { FromFields, OptionalExecutable } from '../payload/index.ts'\nimport type { TransactionFeesFields } from './TransactionFeesFields.ts'\n\nexport interface TransactionBoundWitnessFields extends BlockDuration, TransactionFeesFields {\n chain: Hex | Address & { __chain: true }\n}\n\nexport type TransactionBoundWitness = BoundWitness<TransactionBoundWitnessFields & OptionalExecutable & FromFields>\n\nexport const isTransactionBoundWitness = (value: unknown): value is TransactionBoundWitness => {\n const typedObj = value as TransactionBoundWitness\n return isBoundWitness(value)\n && isAddress(typedObj.chain)\n && typedObj.fees !== undefined\n && typedObj.exp !== undefined\n && typedObj.nbf !== undefined\n}\n\nexport const asTransactionBoundWitness = AsObjectFactory.create(isTransactionBoundWitness)\n","import { AsObjectFactory } from '@xylabs/object'\nimport { isSigned, type Signed } from '@xyo-network/boundwitness-model'\nimport {\n isStorageMeta, type Payload, type WithStorageMeta,\n} from '@xyo-network/payload-model'\n\nimport { isHydratedBoundWitness } from '../isHydratedBoundWitness.ts'\nimport { isTransactionBoundWitness, type TransactionBoundWitness } from './TransactionBoundWitness.ts'\n\n/** @deprecated Use HydratedTransactionWithStorageMeta instead */\nexport type HydratedTransaction<T extends TransactionBoundWitness = TransactionBoundWitness,\n P extends Payload = Payload> = [WithStorageMeta<Signed<T>>, WithStorageMeta<P>[]]\n\n/** @deprecated Use isHydratedTransactionWithStorageMeta instead */\nexport const isHydratedTransaction = (\n value: unknown,\n// eslint-disable-next-line sonarjs/deprecation\n): value is HydratedTransaction => {\n return (\n isHydratedBoundWitness(value) && isTransactionBoundWitness(value[0]) && isSigned(value[0]) && isStorageMeta(value[0])\n )\n}\n\n/** @deprecated Use asHydratedTransactionWithStorageMeta instead */\n// eslint-disable-next-line sonarjs/deprecation\nexport const asHydratedTransaction = AsObjectFactory.create<HydratedTransaction>(\n // eslint-disable-next-line sonarjs/deprecation\n isHydratedTransaction,\n)\n","import { AsObjectFactory } from '@xylabs/object'\nimport { type Signed } from '@xyo-network/boundwitness-model'\nimport {\n isStorageMeta, type Payload, type WithStorageMeta,\n} from '@xyo-network/payload-model'\n\nimport { isAnyHydratedTransaction } from './AnyHydratedTransaction.ts'\nimport { type TransactionBoundWitness } from './TransactionBoundWitness.ts'\n\nexport type HydratedTransactionWithStorageMeta<T extends TransactionBoundWitness = TransactionBoundWitness,\n P extends Payload = Payload> = [WithStorageMeta<Signed<T>>, WithStorageMeta<P>[]]\n\nexport const isHydratedTransactionWithStorageMeta = (\n value: unknown,\n): value is HydratedTransactionWithStorageMeta => {\n return (\n isAnyHydratedTransaction(value) && isStorageMeta(value[0]) && !value[1].some(v => !isStorageMeta(v))\n )\n}\n\nexport const asHydratedTransactionWithStorageMeta = AsObjectFactory.create<HydratedTransactionWithStorageMeta>(\n isHydratedTransactionWithStorageMeta,\n)\n","import { AsObjectFactory } from '@xylabs/object'\nimport type { Signed } from '@xyo-network/boundwitness-model'\nimport { isSigned } from '@xyo-network/boundwitness-model'\nimport type { Payload } from '@xyo-network/payload-model'\n\nimport { isAnyHydratedTransaction } from './AnyHydratedTransaction.ts'\nimport { type TransactionBoundWitness } from './TransactionBoundWitness.ts'\n\nexport type SignedHydratedTransaction<T extends TransactionBoundWitness = TransactionBoundWitness,\n P extends Payload = Payload> = [Signed<T>, P[]]\n\nexport const isSignedHydratedTransaction = (\n value: unknown,\n): value is SignedHydratedTransaction => {\n return (\n isAnyHydratedTransaction(value) && isSigned(value[0])\n )\n}\n\nexport const asSignedHydratedTransaction = AsObjectFactory.create<SignedHydratedTransaction>(\n isSignedHydratedTransaction,\n)\n","import { AsObjectFactory } from '@xylabs/object'\nimport { type Signed } from '@xyo-network/boundwitness-model'\nimport {\n isStorageMeta, type Payload, type WithStorageMeta,\n} from '@xyo-network/payload-model'\n\nimport { isSignedHydratedTransaction } from './SignedHydratedTransaction.ts'\nimport { type TransactionBoundWitness } from './TransactionBoundWitness.ts'\n\nexport type SignedHydratedTransactionWithStorageMeta<T extends TransactionBoundWitness = TransactionBoundWitness,\n P extends Payload = Payload> = [WithStorageMeta<Signed<T>>, WithStorageMeta<P>[]]\n\nexport const isSignedHydratedTransactionWithStorageMeta = (\n value: unknown,\n): value is SignedHydratedTransactionWithStorageMeta => {\n return (\n isSignedHydratedTransaction(value) && isStorageMeta(value[0]) && !value[1].some(v => !isStorageMeta(v))\n )\n}\n\nexport const asSignedHydratedTransactionWithStorageMeta = AsObjectFactory.create<SignedHydratedTransactionWithStorageMeta>(\n isSignedHydratedTransactionWithStorageMeta,\n)\n","import { AsObjectFactory } from '@xylabs/object'\nimport type { Signed } from '@xyo-network/boundwitness-model'\nimport { isSigned } from '@xyo-network/boundwitness-model'\nimport type { WithHashStorageMeta, WithStorageMeta } from '@xyo-network/payload-model'\nimport { isHashStorageMeta, isStorageMeta } from '@xyo-network/payload-model'\n\nimport { isTransactionBoundWitness, type TransactionBoundWitness } from './TransactionBoundWitness.ts'\n\nexport const isSignedTransactionBoundWitness = (value: unknown): value is Signed<TransactionBoundWitness> => {\n return isTransactionBoundWitness(value) && isSigned(value)\n}\n\nexport const isTransactionBoundWitnessWithStorageMeta = (value: unknown): value is WithStorageMeta<TransactionBoundWitness> =>\n isTransactionBoundWitness(value)\n && isStorageMeta(value)\n\nexport const isTransactionBoundWitnessWithHashStorageMeta = (value: unknown): value is WithHashStorageMeta<TransactionBoundWitness> =>\n isTransactionBoundWitness(value)\n && isHashStorageMeta(value)\n\nexport const isSignedTransactionBoundWitnessWithStorageMeta = (value: unknown): value is WithStorageMeta<Signed<TransactionBoundWitness>> =>\n\n isSignedTransactionBoundWitness(value)\n && isStorageMeta(value)\n\nexport const isSignedTransactionBoundWitnessWithHashStorageMeta = (value: unknown): value is WithHashStorageMeta<Signed<TransactionBoundWitness>> =>\n\n isSignedTransactionBoundWitness(value)\n && isHashStorageMeta(value)\n\nexport const asTransactionBoundWitnessWithStorageMeta = AsObjectFactory.create(isTransactionBoundWitnessWithStorageMeta)\n\nexport const asTransactionBoundWitnessWithHashStorageMeta = AsObjectFactory.create(isTransactionBoundWitnessWithHashStorageMeta)\n","import { type Hex, isHex } from '@xylabs/hex'\nimport { AsObjectFactory } from '@xylabs/object'\nimport { isObject } from '@xylabs/typeof'\n\nimport { type AttoXL1, isAttoXL1 } from '../xl1/index.ts'\n\nexport interface TransactionFeesBigInt {\n base: AttoXL1\n gasLimit: AttoXL1\n gasPrice: AttoXL1\n priority: AttoXL1\n}\n\nexport type TransactionFeesHex = {\n [K in keyof TransactionFeesBigInt]: Hex;\n}\n\nexport interface TransactionFeesFields {\n fees: TransactionFeesHex\n}\n\nexport const isTransactionFeesBigInt = (value: unknown): value is TransactionFeesBigInt => {\n if (!isObject(value)) {\n return false\n }\n const {\n base, gasLimit, gasPrice, priority,\n } = value as TransactionFeesBigInt\n return (\n isAttoXL1(base)\n && isAttoXL1(gasLimit)\n && isAttoXL1(gasPrice)\n && isAttoXL1(priority)\n )\n}\n\nexport const asTransactionFeesBigInt = AsObjectFactory.create<TransactionFeesBigInt>(\n isTransactionFeesBigInt,\n)\n\nexport const isTransactionFeesHex = (value: unknown): value is TransactionFeesHex => {\n if (!isObject(value)) {\n return false\n }\n const {\n base, gasLimit, gasPrice, priority,\n } = value as TransactionFeesHex\n return (\n isHex(base)\n && isHex(gasLimit)\n && isHex(gasPrice)\n && isHex(priority)\n )\n}\n\nexport const asTransactionFeesHex = AsObjectFactory.create<TransactionFeesHex>(\n isTransactionFeesHex,\n)\n","import * as z from 'zod'\n\nimport { xl1MaxValue } from './xl1MaxValue.ts'\n\nexport const isXL1Factory = <T extends bigint>(places: bigint) => (val: unknown): val is T => {\n if (typeof val !== 'bigint') return false\n return val >= 0n && val <= xl1MaxValue(places)\n}\n\nexport const XL1ZodFactory = <T extends bigint>(places: bigint, name: string) => {\n const is = isXL1Factory<T>(places)\n const message = `Invalid value for ${name}, must be between 0 and ${xl1MaxValue(places)}`\n return z.bigint().refine(\n (x) => {\n const result = is(x)\n return result\n },\n { message },\n )\n}\n\nexport const XL1TransformZodFactory = <T extends bigint>(places: bigint, name: string) => {\n const is = isXL1Factory<T>(places)\n const message = `Invalid value for ${name}, must be between 0 and ${xl1MaxValue(places)}`\n return z.union([z.bigint(), z.number(), z.string(), z.boolean()]).transform(val => BigInt(val) as T).refine(\n (x) => {\n const result = is(x)\n return result\n },\n { message },\n )\n}\n\nexport const asXL1Factory = <T extends bigint>(places: bigint) => {\n const zod = XL1ZodFactory<T>(places, 'local')\n return (val: unknown): T => {\n const result = zod.safeParse(val)\n if (result.success) {\n return result.data as T\n }\n throw result.error\n }\n}\n\nexport const toXL1Factory = <T extends bigint>(places: bigint) => {\n const zod = XL1TransformZodFactory<T>(places, 'local')\n return (val: unknown): T | undefined => {\n const result = zod.safeParse(val)\n return result.success ? result.data as T : undefined\n }\n}\n","export const xl1MaxValue = (places: bigint) => 10n ** (32n - places) - 1n\n","type XL1Units = 'xl1' | 'milli' | 'micro' | 'nano' | 'pico' | 'femto' | 'atto'\n\nexport const XL1Places: Record<XL1Units, bigint> = {\n xl1: 18n,\n milli: 15n,\n micro: 12n,\n nano: 9n,\n pico: 6n,\n femto: 3n,\n atto: 0n,\n} as const\n\n/**\n * Convert factor by which a respective unit is multiplied to convert it to AttoXL1 or\n * by which AttoXL1 is divided to convert it to respective unit is multiplied.\n */\nexport const AttoXL1ConvertFactor: Record<XL1Units, bigint> = {\n xl1: 10n ** XL1Places.xl1,\n milli: 10n ** XL1Places.milli,\n micro: 10n ** XL1Places.micro,\n nano: 10n ** XL1Places.nano,\n pico: 10n ** XL1Places.pico,\n femto: 10n ** XL1Places.femto,\n atto: 10n ** XL1Places.atto,\n} as const\n","import {\n asXL1Factory, isXL1Factory, toXL1Factory,\n} from './isXL1Factory.ts'\nimport { xl1MaxValue } from './xl1MaxValue.ts'\nimport { XL1Places } from './XL1Units.ts'\n\nexport const AttoXL1MaxValue = xl1MaxValue(XL1Places.atto)\nexport type AttoXL1 = bigint & { readonly _tag: 'AttoXL1' }\nexport const isAttoXL1 = isXL1Factory<AttoXL1>(XL1Places.atto)\nexport const asAttoXL1 = asXL1Factory<AttoXL1>(XL1Places.atto)\nexport const toAttoXL1 = toXL1Factory<AttoXL1>(XL1Places.atto)\n\nexport const AttoXL1 = asAttoXL1\n","import {\n asXL1Factory, isXL1Factory, toXL1Factory,\n} from './isXL1Factory.ts'\nimport { xl1MaxValue } from './xl1MaxValue.ts'\nimport { XL1Places } from './XL1Units.ts'\n\nexport const FemtoXL1MaxValue = xl1MaxValue(XL1Places.femto)\nexport type FemtoXL1 = bigint & { readonly _tag: 'FemtoXL1' }\nexport const isFemtoXL1 = isXL1Factory<FemtoXL1>(XL1Places.femto)\nexport const asFemtoXL1 = asXL1Factory<FemtoXL1>(XL1Places.femto)\n\nexport const toFemtoXL1 = toXL1Factory<FemtoXL1>(XL1Places.femto)\n\nexport const FemtoXL1 = asFemtoXL1\n","import {\n asXL1Factory, isXL1Factory, toXL1Factory,\n} from './isXL1Factory.ts'\nimport { xl1MaxValue } from './xl1MaxValue.ts'\nimport { XL1Places } from './XL1Units.ts'\n\nexport const MicroXL1MaxValue = xl1MaxValue(XL1Places.micro)\nexport type MicroXL1 = bigint & { readonly _tag: 'MicroXL1' }\nexport const isMicroXL1 = isXL1Factory<MicroXL1>(XL1Places.micro)\nexport const asMicroXL1 = asXL1Factory<MicroXL1>(XL1Places.micro)\n\nexport const toMicroXL1 = toXL1Factory<MicroXL1>(XL1Places.micro)\n\nexport const MicroXL1 = asMicroXL1\n","import {\n asXL1Factory, isXL1Factory, toXL1Factory,\n} from './isXL1Factory.ts'\nimport { xl1MaxValue } from './xl1MaxValue.ts'\nimport { XL1Places } from './XL1Units.ts'\n\nexport const MilliXL1MaxValue = xl1MaxValue(XL1Places.milli)\nexport type MilliXL1 = bigint & { readonly _tag: 'MilliXL1' }\nexport const isMilliXL1 = isXL1Factory<MilliXL1>(XL1Places.milli)\nexport const asMilliXL1 = asXL1Factory<MilliXL1>(XL1Places.milli)\n\nexport const toMilliXL1 = toXL1Factory<MilliXL1>(XL1Places.milli)\n\nexport const MilliXL1 = asMilliXL1\n","import {\n asXL1Factory, isXL1Factory, toXL1Factory,\n} from './isXL1Factory.ts'\nimport { xl1MaxValue } from './xl1MaxValue.ts'\nimport { XL1Places } from './XL1Units.ts'\n\nexport const NanoXL1MaxValue = xl1MaxValue(XL1Places.nano)\nexport type NanoXL1 = bigint & { readonly _tag: 'NanoXL1' }\nexport const isNanoXL1 = isXL1Factory<NanoXL1>(XL1Places.nano)\nexport const asNanoXL1 = asXL1Factory<NanoXL1>(XL1Places.nano)\n\nexport const toNanoXL1 = toXL1Factory<NanoXL1>(XL1Places.nano)\n\nexport const NanoXL1 = asNanoXL1\n","import {\n asXL1Factory, isXL1Factory, toXL1Factory,\n} from './isXL1Factory.ts'\nimport { xl1MaxValue } from './xl1MaxValue.ts'\nimport { XL1Places } from './XL1Units.ts'\n\nexport const PicoXL1MaxValue = xl1MaxValue(XL1Places.pico)\nexport type PicoXL1 = bigint & { readonly _tag: 'PicoXL1' }\nexport const isPicoXL1 = isXL1Factory<PicoXL1>(XL1Places.pico)\nexport const asPicoXL1 = asXL1Factory<PicoXL1>(XL1Places.pico)\n\nexport const toPicoXL1 = toXL1Factory<PicoXL1>(XL1Places.pico)\n\nexport const PicoXL1 = asPicoXL1\n","import {\n asXL1Factory, isXL1Factory, toXL1Factory,\n} from './isXL1Factory.ts'\nimport { xl1MaxValue } from './xl1MaxValue.ts'\nimport { XL1Places } from './XL1Units.ts'\n\nexport const XL1MaxValue = xl1MaxValue(XL1Places.xl1)\nexport type XL1 = bigint & { readonly _tag: 'XL1' }\nexport const isXL1 = isXL1Factory<XL1>(XL1Places.xl1)\nexport const asXL1 = asXL1Factory<XL1>(XL1Places.xl1)\n\nexport const toXL1 = toXL1Factory<XL1>(XL1Places.xl1)\n\nexport const XL1 = asXL1\n","import { AsObjectFactory } from '@xylabs/object'\nimport { isUnsigned } from '@xyo-network/boundwitness-model'\nimport type { Payload } from '@xyo-network/payload-model'\n\nimport { isAnyHydratedTransaction } from './AnyHydratedTransaction.ts'\nimport { type TransactionBoundWitness } from './TransactionBoundWitness.ts'\n\nexport type UnsignedHydratedTransaction<T extends TransactionBoundWitness = TransactionBoundWitness,\n P extends Payload = Payload> = [T, P[]]\n\nexport const isUnsignedHydratedTransaction = (\n value: unknown,\n): value is UnsignedHydratedTransaction => {\n return (\n isAnyHydratedTransaction(value) && isUnsigned(value[0])\n )\n}\n\nexport const asUnsignedHydratedTransaction = AsObjectFactory.create<UnsignedHydratedTransaction>(\n isUnsignedHydratedTransaction,\n)\n","import type { Hash } from '@xylabs/hex'\nimport { isHex } from '@xylabs/hex'\nimport { AsObjectFactory } from '@xylabs/object'\nimport type { BoundWitness, Signed } from '@xyo-network/boundwitness-model'\nimport { isBoundWitness, isSigned } from '@xyo-network/boundwitness-model'\nimport type { WithHashStorageMeta, WithStorageMeta } from '@xyo-network/payload-model'\nimport { isHashStorageMeta, isStorageMeta } from '@xyo-network/payload-model'\n\nimport type { Chain } from '../model.ts'\n\nexport interface BlockBoundWitnessMeta {\n $epoch: number\n}\n\nexport interface BlockBoundWitnessFields {\n /** Block number */\n block: number\n /** Chain id - this should be \"0\" for the genesis block */\n chain: Chain\n /** Previous block hash if not block 0 */\n previous: Hash | null /* the previous block hash */\n /** Version of the protocol being used major * 1,000,000 + minor * 1,000 + patch */\n protocol: number\n /** Step hashes */\n step_hashes: Hash[]\n}\n\nexport type BlockBoundWitness = BoundWitness<BlockBoundWitnessFields & BlockBoundWitnessMeta>\n\nexport const isBlockBoundWitness = (value: unknown): value is BlockBoundWitness => {\n const typedObj = value as BlockBoundWitness\n return isBoundWitness(value)\n && Number.isInteger(typedObj.block)\n && isHex(typedObj.chain)\n}\n\nexport const isSignedBlockBoundWitness = (value: unknown): value is Signed<BlockBoundWitness> => {\n return isBlockBoundWitness(value) && isSigned(value)\n}\n\nexport const isBlockBoundWitnessWithStorageMeta = (value: unknown): value is WithStorageMeta<BlockBoundWitness> => {\n return isBlockBoundWitness(value) && isStorageMeta(value)\n}\n\nexport const isSignedBlockBoundWitnessWithStorageMeta = (value: unknown): value is Signed<WithStorageMeta<BlockBoundWitness>> => {\n return isBlockBoundWitnessWithStorageMeta(value) && isSigned(value)\n}\n\nexport const isBlockBoundWitnessWithHashStorageMeta = (value: unknown): value is WithHashStorageMeta<BlockBoundWitness> => {\n return isBlockBoundWitness(value) && isHashStorageMeta(value)\n}\n\nexport const isSignedBlockBoundWitnessWithHashStorageMeta = (value: unknown): value is Signed<WithHashStorageMeta<BlockBoundWitness>> => {\n return isBlockBoundWitnessWithHashStorageMeta(value) && isSigned(value)\n}\n\nexport const asBlockBoundWitness = AsObjectFactory.create(isBlockBoundWitness)\nexport const asSignedBlockBoundWitness = AsObjectFactory.create(isSignedBlockBoundWitness)\n\nexport const asBlockBoundWitnessWithStorageMeta = AsObjectFactory.create(isBlockBoundWitnessWithStorageMeta)\nexport const asSignedBlockBoundWitnessWithStorageMeta = AsObjectFactory.create(isSignedBlockBoundWitnessWithStorageMeta)\n\nexport const asBlockBoundWitnessWithHashStorageMeta = AsObjectFactory.create(isBlockBoundWitnessWithHashStorageMeta)\nexport const asSignedBlockBoundWitnessWithHashStorageMeta = AsObjectFactory.create(isSignedBlockBoundWitnessWithHashStorageMeta)\n","import { AsObjectFactory } from '@xylabs/object'\nimport type { Signed } from '@xyo-network/boundwitness-model'\nimport { type Payload, type WithStorageMeta } from '@xyo-network/payload-model'\n\nimport { isHydratedBoundWitness } from '../isHydratedBoundWitness.ts'\nimport {\n type BlockBoundWitness,\n isBlockBoundWitnessWithStorageMeta,\n} from './BlockBoundWitness.ts'\n\nexport type HydratedBlock<T extends BlockBoundWitness = BlockBoundWitness,\n P extends Payload = Payload> = [WithStorageMeta<Signed<T>>, WithStorageMeta<P>[]]\n\nexport const isHydratedBlock = (\n value: unknown,\n): value is HydratedBlock => {\n return (\n isHydratedBoundWitness(value) && isBlockBoundWitnessWithStorageMeta(value[0])\n )\n}\n\nexport const asHydratedBlock = AsObjectFactory.create<HydratedBlock>(\n isHydratedBlock,\n)\n","import type { Address } from '@xylabs/hex'\n\nexport const XYO_ZERO_ADDRESS = '0000000000000000000000000000000000000000' as const as Address\n\nexport const XYO_STEP_REWARD_ADDRESS = '1216197612161976121619761216197612161976' as const as Address\nexport const XYO_BRIDGE_ADDRESS = '3012193230121932301219323012193230121932' as const as Address\n","// the percent of the block rewards the producer gets\nexport const defaultRewardRatio = 0.5 as const\n","import type { TransactionFeesBigInt } from '../transaction/index.ts'\nimport { AttoXL1, AttoXL1ConvertFactor } from '../xl1/index.ts'\n\nexport const minTransactionFees: TransactionFeesBigInt = {\n base: AttoXL1(1000n * AttoXL1ConvertFactor.nano),\n gasPrice: AttoXL1(10n * AttoXL1ConvertFactor.nano),\n gasLimit: AttoXL1(1_000_000n * AttoXL1ConvertFactor.nano),\n priority: AttoXL1(0n * AttoXL1ConvertFactor.nano),\n} as const\n","import type { TransactionFeesBigInt } from '../transaction/index.ts'\nimport { AttoXL1, AttoXL1ConvertFactor } from '../xl1/index.ts'\nimport { minTransactionFees } from './minTransactionFees.ts'\n\nexport const defaultTransactionFees: TransactionFeesBigInt = {\n base: minTransactionFees.base,\n gasPrice: AttoXL1(10n * AttoXL1ConvertFactor.nano),\n gasLimit: AttoXL1(1_000_000n * AttoXL1ConvertFactor.nano),\n priority: minTransactionFees.priority,\n} as const\n","import { AsTypeFactory } from '@xylabs/object'\n\n// StepsV2 are primorial(n+2) + 1, where n is the index of the step size\n// primorial(n+2) = 2 → 2×3=6 → 6×5=30 → 30×7=210 → 210×11=2310\n\nexport const StepSizes = [7, 31, 211, 2311, 30_031, 510_511, 9_699_691, 223_092_871, 6_469_693_231] as const\n\nexport function isValidStep(step: unknown): step is number {\n if (typeof step === 'number' && Number.isInteger(step)) {\n return ((step >= 0) && (step < StepSizes.length))\n }\n return false\n}\n\nexport const asValidStep = AsTypeFactory.create<number>(isValidStep)\n\nexport function stepSize(step: number): number {\n const validatedStep = asValidStep(step, () => `Invalid step (${step}), must be an integer between 0 and ${StepSizes.length - 1}`, { required: true })\n return StepSizes[validatedStep]\n}\n","export const TransactionGasCosts = {\n /**\n * The cost of storing each character that is added to the chain\n * This includes the transaction JSON and all the elevated payloads' JSON\n */\n characterStorage: 10n,\n\n /** The cost of static validating every payload that will be included in the chain */\n payloadValidation: 1000n,\n\n /** The cost of validating each signature that will be included in the chain */\n signatureValidation: 1000n,\n\n /** The cost of validating each hash that will be included in the chain */\n hashValidation: 100n,\n\n /** The cost of validating a balance state, triggered by a Transfer payload or gas collection */\n balanceValidation: 100n,\n} as const\n\n/** Gas Calculation\n *\n * 1 Million microXL1 (mXL1) = 1 XL1\n *\n * Gas amount is calculated as follows:\n *\n * 1. Each byte in the transaction cost 10 gas\n * 2. Each payload validation in the transaction costs 1000 gas\n * 3. Each signature verification in the transaction costs 1000 gas\n * 4. Each hash validation in the transaction costs 100 gas\n * 5. Each balance validation in the transaction costs 100 gas\n * 6. Processing/Compute/Storage Cost?\n * 7. operation Costs?\n *\n * The total gas cost is calculated by multiplying the gas amount by the gas price.\n *\n * minGasPrice is initially set to 100 mXL1\n * minBase is initially set to 1000 mXL1\n * minPriority is always 0 mXL1, but can be set to increase the priority of the transaction\n *\n */\n","export const XL1_PROTOCOL_VERSION_MAJOR = 1 as const\nexport const XL1_PROTOCOL_VERSION_MINOR = 2 as const\nexport const XL1_PROTOCOL_VERSION_PATCH = 0 as const\nexport const XL1_PROTOCOL_VERSION_STRING = `${XL1_PROTOCOL_VERSION_MAJOR}.${XL1_PROTOCOL_VERSION_MINOR}.${XL1_PROTOCOL_VERSION_PATCH}` as const\nexport const XL1_PROTOCOL_VERSION = XL1_PROTOCOL_VERSION_MAJOR * 1_000_000 + XL1_PROTOCOL_VERSION_MINOR * 1000 + XL1_PROTOCOL_VERSION_PATCH\n","import type { Hex } from '@xylabs/hex'\nimport { AsObjectFactory } from '@xylabs/object'\nimport type { Payload, WithSources } from '@xyo-network/payload-model'\nimport {\n isPayloadOfSchemaType,\n isPayloadOfSchemaTypeWithSources,\n} from '@xyo-network/payload-model'\n\nexport const BlockNumberSchema = 'network.xyo.chain.block.number' as const\nexport type BlockNumberSchema = typeof BlockNumberSchema\n\nexport interface BlockNumberFields {\n /**\n * The block number\n */\n block: Hex\n}\n/**\n * The number of a block\n */\nexport type BlockNumber = Payload<BlockNumberFields, BlockNumberSchema>\n\n/**\n * Identity function for determining if an object is a BlockNumber\n */\nexport const isBlockNumber = isPayloadOfSchemaType<BlockNumber>(BlockNumberSchema)\nexport const asBlockNumber = AsObjectFactory.create<BlockNumber>(isBlockNumber)\n\n/**\n * Identity function for determining if an object is a BlockNumber with sources\n */\nexport const isBlockNumberWithSources = isPayloadOfSchemaTypeWithSources<BlockNumber>(BlockNumberSchema)\nexport const asBlockNumberWithSources = AsObjectFactory.create<WithSources<BlockNumber>>(isBlockNumberWithSources)\n","import type { Payload } from '@xyo-network/payload-model'\nimport { isPayloadOfSchemaType } from '@xyo-network/payload-model'\n\nexport const NetworkStatusSchema = 'network.xyo.chain.status' as const\nexport type NetworkStatusSchema = typeof NetworkStatusSchema\n\nexport type NetworkStatusState = 'online' | 'offline' | 'degraded' | 'unknown'\n\nexport type NetworkStatusUpdate = {\n end: number\n start: number\n update: string\n}\n\nexport interface NetworkStatusFields {\n description: string\n state: NetworkStatusState\n updates?: NetworkStatusUpdate[]\n}\n\nexport type NetworkStatus = Payload<NetworkStatusFields, NetworkStatusSchema>\n\nexport const isNetworkStatus = isPayloadOfSchemaType<NetworkStatus>(NetworkStatusSchema)\n","import type { Hash } from '@xylabs/hex'\nimport type { Promisable } from '@xylabs/promise'\nimport type { Payload } from '@xyo-network/payload-model'\n\nexport type DataLakeData = Payload | ArrayBuffer\n\nexport interface XyoDataLakeViewer {\n // if resolves to hash payload, keep going until hitting a non-payload or maxDepth, or unable to find\n fetch(hashes: Hash[], maxDepth?: number): Promisable<DataLakeData[]>\n // same as fetch but never follows hash payloads\n get(hashes: Hash[]): Promisable<DataLakeData[]>\n // same as fetch, except returns each step in tuple containing the result and the steps\n trace(hash: Hash): Promisable<[DataLakeData | undefined, Payload[]]>\n}\n\nexport interface XyoDataLake extends XyoDataLakeViewer {\n add(items: DataLakeData[]): Promisable<DataLakeData[]>\n}\n\n/** @deprecated use XyoDataLake instead */\nexport interface XyoDataLakeProvider extends XyoDataLake {\n}\n\nexport const isDataLakeViewer = (value: unknown): value is XyoDataLakeViewer => {\n return (\n typeof value === 'object'\n && value !== null\n && 'fetch' in value\n && typeof (value as XyoDataLakeViewer).fetch === 'function'\n && 'get' in value\n && typeof (value as XyoDataLakeViewer).get === 'function'\n && 'trace' in value\n && typeof (value as XyoDataLakeViewer).trace === 'function'\n )\n}\n\nexport const isDataLakeProvider = (value: unknown): value is XyoDataLake => {\n return (\n isDataLakeViewer(value)\n && 'add' in value\n && typeof (value as XyoDataLake).add === 'function'\n )\n}\n","import type { Hash } from '@xylabs/hex'\nimport type { JsonValue } from '@xylabs/object'\nimport { AsObjectFactory } from '@xylabs/object'\nimport type { Payload, WithStorageMeta } from '@xyo-network/payload-model'\nimport { isPayloadOfSchemaType, isStorageMeta } from '@xyo-network/payload-model'\n\nexport interface ChainIndexingServiceStateFields<T extends JsonValue = JsonValue> {\n /**\n * The hash of the last block that this service has indexing\n */\n endBlockHash: Hash\n /**\n * The hash of the block that the service started indexing. If undefined, the service is\n * assumed to have started indexing from the genesis block\n */\n startBlockHash?: Hash\n /**\n * The indexed state for the range\n */\n state: T\n}\nexport const ChainIndexingServiceStateSchema = 'network.xyo.chain.indexing.service.state' as const\nexport type ChainIndexingServiceStateSchema = typeof ChainIndexingServiceStateSchema\n\n/**\n * The result of a ChainIndexingServiceState\n */\nexport type ChainIndexingServiceState<T extends JsonValue = JsonValue> = Payload<ChainIndexingServiceStateFields<T>, ChainIndexingServiceStateSchema>\n\n/**\n * Identity functions for determining if an object is an ChainIndexingServiceState\n */\nexport const isChainIndexingServiceState = <T extends JsonValue = JsonValue>(payload?: unknown): payload is ChainIndexingServiceState<T> => {\n return isPayloadOfSchemaType<ChainIndexingServiceState<T>>(ChainIndexingServiceStateSchema)(payload)\n}\nexport const asChainIndexingServiceState = AsObjectFactory.create<ChainIndexingServiceState<JsonValue>>(isChainIndexingServiceState)\n\nexport const isChainIndexingServiceStateWithStorageMeta\n= <T extends JsonValue = JsonValue>(value: unknown): value is WithStorageMeta<ChainIndexingServiceState<T>> =>\n isChainIndexingServiceState<T>(value) && isStorageMeta(value)\n\nexport const asChainIndexingServiceStateWithStorageMeta\n= AsObjectFactory.create<WithStorageMeta<ChainIndexingServiceState>>(isChainIndexingServiceStateWithStorageMeta)\n","import { type Hash, isHash } from '@xylabs/hex'\nimport { isError } from '@xylabs/typeof'\nimport type { Payload } from '@xyo-network/payload-model'\n\nexport class ValidationError<TValue = Payload> extends Error {\n hash: Hash\n value: TValue\n constructor(hash: Hash, value: TValue, message?: string, cause?: unknown) {\n super(message)\n this.hash = hash\n this.name = this.constructor.name\n this.value = value\n this.cause = cause\n }\n}\n\nexport const isValidationError = <TValue = Payload>(\n error: unknown,\n): error is ValidationError<TValue> => {\n return (\n isError(error) && isHash((error as ValidationError<TValue>)?.hash) && (error as ValidationError<TValue>)?.value !== undefined\n )\n}\n","import type { Hash, Hex } from '@xylabs/hex'\n\nimport { type BlockBoundWitness, type HydratedBlock } from '../../block/index.ts'\nimport type { Chain } from '../../model.ts'\nimport { isValidationError, ValidationError } from '../error.ts'\n\nexport class BlockValidationError extends ValidationError<BlockBoundWitness> {}\n\nexport const isBlockValidationError = (\n error: unknown,\n): error is BlockValidationError => {\n if (!isValidationError(error)) return false\n return (\n error.name === BlockValidationError.constructor.name\n )\n}\n\nexport class HydratedBlockValidationError extends ValidationError<HydratedBlock> {}\n\nexport const isHydratedBlockValidationError = (\n error: unknown,\n): error is HydratedBlockValidationError => {\n if (!isValidationError(error)) return false\n return (\n error.name === HydratedBlockValidationError.constructor.name\n )\n}\n\nexport class HydratedBlockStateValidationError extends ValidationError<HydratedBlock> {\n chainId: Chain\n constructor(hash: Hash, chainId: Hex, value: HydratedBlock, message?: string, cause?: unknown) {\n super(hash, value, message, cause)\n this.chainId = chainId\n }\n}\n\nexport const isHydratedBlockStateValidationError = (\n error: unknown,\n): error is HydratedBlockStateValidationError => {\n if (!isValidationError(error)) return false\n return (\n error.name === HydratedBlockStateValidationError.constructor.name\n )\n}\n","import type { HydratedBoundWitness } from '@xyo-network/archivist-model'\nimport { type BoundWitness } from '@xyo-network/boundwitness-model'\n\nimport { isValidationError, ValidationError } from '../error.ts'\n\nexport class BoundWitnessValidationError extends ValidationError<BoundWitness> {}\n\nexport const isBoundWitnessValidationError = (\n error: unknown,\n): error is BoundWitnessValidationError => {\n if (!isValidationError(error)) return false\n return (\n error.name === BoundWitnessValidationError.constructor.name\n )\n}\n\nexport class HydratedBoundWitnessValidationError extends ValidationError<HydratedBoundWitness> {}\n\nexport const isHydratedBoundWitnessValidationError = (\n error: unknown,\n): error is HydratedBoundWitnessValidationError => {\n if (!isValidationError(error)) return false\n return (\n error.name === HydratedBoundWitnessValidationError.constructor.name\n )\n}\n","import type { Hash } from '@xylabs/hex'\nimport { type Payload } from '@xyo-network/payload-model'\n\nimport { type HydratedBlock } from '../../block/index.ts'\nimport { isValidationError, ValidationError } from '../error.ts'\n\nexport class InBlockPayloadValidationError extends ValidationError<Payload> {\n block: HydratedBlock\n constructor(hash: Hash, block: HydratedBlock, value: Payload, message?: string, cause?: unknown) {\n super(hash, value, message, cause)\n this.block = block\n }\n}\n\nexport const isInBlockPayloadValidationError = (\n error: unknown,\n): error is InBlockPayloadValidationError => {\n if (!isValidationError(error)) return false\n return (\n error.name === InBlockPayloadValidationError.constructor.name\n )\n}\n","import { type SignedHydratedTransaction } from '../../transaction/index.ts'\nimport { isValidationError, ValidationError } from '../error.ts'\n\nexport class HydratedTransactionValidationError extends ValidationError<SignedHydratedTransaction> {}\n\nexport const isHydratedTransactionValidationError = (\n error: unknown,\n): error is HydratedTransactionValidationError => {\n if (!isValidationError(error)) return false\n return (\n error.name === HydratedTransactionValidationError.constructor.name\n )\n}\n"],"mappings":"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","names":["isHashStorageMeta","z","AsObjectFactory","isPayloadOfSchemaType","AsObjectFactory","isPayloadOfSchemaType","AsObjectFactory","isPayloadOfSchemaType","AsObjectFactory","isPayloadOfSchemaType","AsObjectFactory","isPayloadOfSchemaType","AsObjectFactory","isPayloadOfSchemaType","AsObjectFactory","isPayloadOfSchemaType","AsObjectFactory","isPayloadOfSchemaType","AsObjectFactory","isPayloadOfSchemaType","AsObjectFactory","isPayloadOfSchemaType","AsObjectFactory","AsObjectFactory","isAnyPayload","isStorageMeta","AsObjectFactory","isBoundWitness","AsObjectFactory","AsObjectFactory","isStorageMeta","isStorageMeta","AsObjectFactory","AsObjectFactory","isStorageMeta","isStorageMeta","AsObjectFactory","AsObjectFactory","isSigned","isSigned","AsObjectFactory","AsObjectFactory","isStorageMeta","isStorageMeta","AsObjectFactory","AsObjectFactory","isSigned","isStorageMeta","isSigned","isStorageMeta","AsObjectFactory","AsObjectFactory","AsObjectFactory","AsObjectFactory","AsObjectFactory","isHashStorageMeta","z","isHex","AsObjectFactory","isBoundWitness","isSigned","isHashStorageMeta","isStorageMeta","AsObjectFactory","AsObjectFactory","AsObjectFactory","isPayloadOfSchemaType","isPayloadOfSchemaType","AsObjectFactory","isPayloadOfSchemaType","isStorageMeta"]}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { Hex } from '@xylabs/hex';
|
|
2
|
+
import type { Payload } from '@xyo-network/payload-model';
|
|
3
|
+
import type { BridgeDetailsFields } from './BridgeDetails.ts';
|
|
4
|
+
export declare const BridgeDestinationObservationSchema: "network.xyo.chain.bridge.observation.destination";
|
|
5
|
+
export type BridgeDestinationObservationSchema = typeof BridgeDestinationObservationSchema;
|
|
6
|
+
/**
|
|
7
|
+
* Represents an observation that confirms a bridge action occurred on the destination chain.
|
|
8
|
+
*/
|
|
9
|
+
export interface BridgeDestinationObservationFields extends BridgeDetailsFields {
|
|
10
|
+
/**
|
|
11
|
+
* Destination chain confirmation
|
|
12
|
+
*/
|
|
13
|
+
destConfirmation?: Hex;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Represents an observation that confirms a bridge action occurred on the destination chain.
|
|
17
|
+
*/
|
|
18
|
+
export type BridgeDestinationObservation = Payload<BridgeDestinationObservationFields, BridgeDestinationObservationSchema>;
|
|
19
|
+
export declare const isBridgeDestinationObservation: (x?: unknown | null) => x is BridgeDestinationObservation;
|
|
20
|
+
export declare const asBridgeDestinationObservation: import("@xylabs/object").AsTypeFunction<BridgeDestinationObservation>;
|
|
21
|
+
//# sourceMappingURL=BridgeDestinationObservation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BridgeDestinationObservation.d.ts","sourceRoot":"","sources":["../../../../../src/payload/elevatable/Bridge/BridgeDestinationObservation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,aAAa,CAAA;AAEtC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAGzD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AAE7D,eAAO,MAAM,kCAAkC,EAAG,kDAA2D,CAAA;AAC7G,MAAM,MAAM,kCAAkC,GAAG,OAAO,kCAAkC,CAAA;AAE1F;;GAEG;AACH,MAAM,WAAW,kCAAmC,SAAQ,mBAAmB;IAC7E;;OAEG;IACH,gBAAgB,CAAC,EAAE,GAAG,CAAA;CACvB;AAED;;GAEG;AACH,MAAM,MAAM,4BAA4B,GAAG,OAAO,CAAC,kCAAkC,EAAE,kCAAkC,CAAC,CAAA;AAE1H,eAAO,MAAM,8BAA8B,2DAA0F,CAAA;AAErI,eAAO,MAAM,8BAA8B,uEAAyD,CAAA"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { Hex } from '@xylabs/hex';
|
|
2
|
+
import type { Payload } from '@xyo-network/payload-model';
|
|
3
|
+
import type { BridgeDetailsFields } from './BridgeDetails.ts';
|
|
4
|
+
export declare const BridgeSourceObservationSchema: "network.xyo.chain.bridge.observation.source";
|
|
5
|
+
export type BridgeSourceObservationSchema = typeof BridgeSourceObservationSchema;
|
|
6
|
+
/**
|
|
7
|
+
* Represents an observation that confirms a bridge action occurred on the source chain.
|
|
8
|
+
*/
|
|
9
|
+
export interface BridgeSourceObservationFields extends BridgeDetailsFields {
|
|
10
|
+
/**
|
|
11
|
+
* Source chain confirmation
|
|
12
|
+
*/
|
|
13
|
+
srcConfirmation?: Hex;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Represents an observation that confirms a bridge action occurred on the source chain.
|
|
17
|
+
*/
|
|
18
|
+
export type BridgeSourceObservation = Payload<BridgeSourceObservationFields, BridgeSourceObservationSchema>;
|
|
19
|
+
export declare const isBridgeSourceObservation: (x?: unknown | null) => x is BridgeSourceObservation;
|
|
20
|
+
export declare const asBridgeSourceObservation: import("@xylabs/object").AsTypeFunction<BridgeSourceObservation>;
|
|
21
|
+
//# sourceMappingURL=BridgeSourceObservation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BridgeSourceObservation.d.ts","sourceRoot":"","sources":["../../../../../src/payload/elevatable/Bridge/BridgeSourceObservation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,aAAa,CAAA;AAEtC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAGzD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AAE7D,eAAO,MAAM,6BAA6B,EAAG,6CAAsD,CAAA;AACnG,MAAM,MAAM,6BAA6B,GAAG,OAAO,6BAA6B,CAAA;AAEhF;;GAEG;AACH,MAAM,WAAW,6BAA8B,SAAQ,mBAAmB;IACxE;;OAEG;IACH,eAAe,CAAC,EAAE,GAAG,CAAA;CACtB;AAED;;GAEG;AACH,MAAM,MAAM,uBAAuB,GAAG,OAAO,CAAC,6BAA6B,EAAE,6BAA6B,CAAC,CAAA;AAE3G,eAAO,MAAM,yBAAyB,sDAAgF,CAAA;AAEtH,eAAO,MAAM,yBAAyB,kEAAoD,CAAA"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export * from './BridgeCompletion.ts';
|
|
2
|
+
export * from './BridgeDestinationObservation.ts';
|
|
2
3
|
export * from './BridgeDetails.ts';
|
|
3
4
|
export * from './BridgeIntent.ts';
|
|
4
|
-
export * from './
|
|
5
|
+
export * from './BridgeSourceObservation.ts';
|
|
5
6
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/payload/elevatable/Bridge/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAA;AACrC,cAAc,oBAAoB,CAAA;AAClC,cAAc,mBAAmB,CAAA;AACjC,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/payload/elevatable/Bridge/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAA;AACrC,cAAc,mCAAmC,CAAA;AACjD,cAAc,oBAAoB,CAAA;AAClC,cAAc,mBAAmB,CAAA;AACjC,cAAc,8BAA8B,CAAA"}
|
package/package.json
CHANGED
|
@@ -6,26 +6,20 @@ import { isSchemaPayload, SchemaSchema } from '@xyo-network/schema-payload-plugi
|
|
|
6
6
|
import z from 'zod'
|
|
7
7
|
|
|
8
8
|
import type {
|
|
9
|
-
BridgeIntent,
|
|
10
|
-
BridgeObservation,
|
|
11
|
-
ChainStakeIntent, HashPayload, StepComplete,
|
|
12
|
-
TimePayload,
|
|
13
|
-
Transfer,
|
|
9
|
+
BridgeDestinationObservation, BridgeIntent, BridgeSourceObservation, ChainStakeIntent, HashPayload, StepComplete, TimePayload, Transfer,
|
|
14
10
|
} from '../payload/index.ts'
|
|
15
11
|
import {
|
|
16
|
-
BridgeIntentSchema,
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
ChainStakeIntentSchema, HashSchema, isBridgeBack, isBridgeComplete,
|
|
20
|
-
isBridgeRequest, isChainStakeIntent, isHashPayload, isTimePayload,
|
|
21
|
-
isTransfer, StepCompleteSchema, TimeSchema, TransferSchema,
|
|
12
|
+
BridgeDestinationObservationSchema, BridgeIntentSchema, BridgeRequestSchema, BridgeSourceObservationSchema, ChainStakeIntentSchema, HashSchema,
|
|
13
|
+
isBridgeDestinationObservation, isBridgeIntent, isBridgeSourceObservation, isChainStakeIntent, isHashPayload, isTimePayload, isTransfer, StepCompleteSchema,
|
|
14
|
+
TimeSchema, TransferSchema,
|
|
22
15
|
} from '../payload/index.ts'
|
|
23
16
|
import { isTransactionBoundWitness, type TransactionBoundWitness } from '../transaction/index.ts'
|
|
24
17
|
|
|
25
18
|
export type AllowedBlockPayload
|
|
26
19
|
= Transfer
|
|
20
|
+
| BridgeDestinationObservation
|
|
27
21
|
| BridgeIntent
|
|
28
|
-
|
|
|
22
|
+
| BridgeSourceObservation
|
|
29
23
|
| ChainStakeIntent
|
|
30
24
|
| HashPayload
|
|
31
25
|
| SchemaPayload
|
|
@@ -35,9 +29,10 @@ export type AllowedBlockPayload
|
|
|
35
29
|
|
|
36
30
|
export const AllowedBlockPayloadSchemas: Schema[] = [
|
|
37
31
|
BoundWitnessSchema,
|
|
32
|
+
BridgeDestinationObservationSchema,
|
|
38
33
|
BridgeIntentSchema,
|
|
39
|
-
BridgeObservationSchema,
|
|
40
34
|
BridgeRequestSchema,
|
|
35
|
+
BridgeSourceObservationSchema,
|
|
41
36
|
ChainStakeIntentSchema,
|
|
42
37
|
HashSchema,
|
|
43
38
|
SchemaSchema,
|
|
@@ -53,8 +48,15 @@ export const isAllowedBlockPayloadSchema = (value: unknown): value is AllowedBlo
|
|
|
53
48
|
}
|
|
54
49
|
|
|
55
50
|
export const isAllowedBlockPayload = (value: unknown): value is AllowedBlockPayload => {
|
|
56
|
-
return isTransfer(value)
|
|
57
|
-
||
|
|
51
|
+
return isTransfer(value)
|
|
52
|
+
|| isBridgeDestinationObservation(value)
|
|
53
|
+
|| isBridgeIntent(value)
|
|
54
|
+
|| isBridgeSourceObservation(value)
|
|
55
|
+
|| isChainStakeIntent(value)
|
|
56
|
+
|| isHashPayload(value)
|
|
57
|
+
|| isSchemaPayload(value)
|
|
58
|
+
|| isTimePayload(value)
|
|
59
|
+
|| isTransactionBoundWitness(value)
|
|
58
60
|
}
|
|
59
61
|
|
|
60
62
|
export const isAllowedBlockPayloadWithHashStorageMeta = (value: unknown): value is WithStorageMeta<AllowedBlockPayload> => {
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { Hex } from '@xylabs/hex'
|
|
2
|
+
import { AsObjectFactory } from '@xylabs/object'
|
|
3
|
+
import type { Payload } from '@xyo-network/payload-model'
|
|
4
|
+
import { isPayloadOfSchemaType } from '@xyo-network/payload-model'
|
|
5
|
+
|
|
6
|
+
import type { BridgeDetailsFields } from './BridgeDetails.ts'
|
|
7
|
+
|
|
8
|
+
export const BridgeDestinationObservationSchema = 'network.xyo.chain.bridge.observation.destination' as const
|
|
9
|
+
export type BridgeDestinationObservationSchema = typeof BridgeDestinationObservationSchema
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Represents an observation that confirms a bridge action occurred on the destination chain.
|
|
13
|
+
*/
|
|
14
|
+
export interface BridgeDestinationObservationFields extends BridgeDetailsFields {
|
|
15
|
+
/**
|
|
16
|
+
* Destination chain confirmation
|
|
17
|
+
*/
|
|
18
|
+
destConfirmation?: Hex
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Represents an observation that confirms a bridge action occurred on the destination chain.
|
|
23
|
+
*/
|
|
24
|
+
export type BridgeDestinationObservation = Payload<BridgeDestinationObservationFields, BridgeDestinationObservationSchema>
|
|
25
|
+
|
|
26
|
+
export const isBridgeDestinationObservation = isPayloadOfSchemaType<BridgeDestinationObservation>(BridgeDestinationObservationSchema)
|
|
27
|
+
|
|
28
|
+
export const asBridgeDestinationObservation = AsObjectFactory.create(isBridgeDestinationObservation)
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { Hex } from '@xylabs/hex'
|
|
2
|
+
import { AsObjectFactory } from '@xylabs/object'
|
|
3
|
+
import type { Payload } from '@xyo-network/payload-model'
|
|
4
|
+
import { isPayloadOfSchemaType } from '@xyo-network/payload-model'
|
|
5
|
+
|
|
6
|
+
import type { BridgeDetailsFields } from './BridgeDetails.ts'
|
|
7
|
+
|
|
8
|
+
export const BridgeSourceObservationSchema = 'network.xyo.chain.bridge.observation.source' as const
|
|
9
|
+
export type BridgeSourceObservationSchema = typeof BridgeSourceObservationSchema
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Represents an observation that confirms a bridge action occurred on the source chain.
|
|
13
|
+
*/
|
|
14
|
+
export interface BridgeSourceObservationFields extends BridgeDetailsFields {
|
|
15
|
+
/**
|
|
16
|
+
* Source chain confirmation
|
|
17
|
+
*/
|
|
18
|
+
srcConfirmation?: Hex
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Represents an observation that confirms a bridge action occurred on the source chain.
|
|
23
|
+
*/
|
|
24
|
+
export type BridgeSourceObservation = Payload<BridgeSourceObservationFields, BridgeSourceObservationSchema>
|
|
25
|
+
|
|
26
|
+
export const isBridgeSourceObservation = isPayloadOfSchemaType<BridgeSourceObservation>(BridgeSourceObservationSchema)
|
|
27
|
+
|
|
28
|
+
export const asBridgeSourceObservation = AsObjectFactory.create(isBridgeSourceObservation)
|
|
@@ -5,8 +5,9 @@ import {
|
|
|
5
5
|
|
|
6
6
|
import type { Chain } from '../../../../model.ts'
|
|
7
7
|
import { AttoXL1ConvertFactor } from '../../../../xl1/index.ts'
|
|
8
|
+
import type { BridgeDestinationObservationFields } from '../BridgeDestinationObservation.ts'
|
|
8
9
|
import type { BridgeIntentFields } from '../BridgeIntent.ts'
|
|
9
|
-
import type {
|
|
10
|
+
import type { BridgeSourceObservationFields } from '../BridgeSourceObservation.ts'
|
|
10
11
|
|
|
11
12
|
describe('Bridge', () => {
|
|
12
13
|
const srcAmount = toHex(100n * AttoXL1ConvertFactor.xl1) // 100 XL1 in AttoXL1
|
|
@@ -46,7 +47,7 @@ describe('Bridge', () => {
|
|
|
46
47
|
expect(intent).toMatchSnapshot()
|
|
47
48
|
})
|
|
48
49
|
it('BridgeObservation (XL1 Side)', () => {
|
|
49
|
-
const observation:
|
|
50
|
+
const observation: BridgeSourceObservationFields = {
|
|
50
51
|
// Source
|
|
51
52
|
src: xl1ChainId, // From XL1
|
|
52
53
|
srcAddress: xl1Address, // From XL1 sender
|
|
@@ -65,7 +66,7 @@ describe('Bridge', () => {
|
|
|
65
66
|
expect(observation).toMatchSnapshot()
|
|
66
67
|
})
|
|
67
68
|
it('BridgeObservation (ETH Side)', () => {
|
|
68
|
-
const observation:
|
|
69
|
+
const observation: BridgeDestinationObservationFields = {
|
|
69
70
|
// Source
|
|
70
71
|
src: xl1ChainId, // From XL1
|
|
71
72
|
srcAddress: xl1Address, // From XL1 sender
|
|
@@ -86,7 +87,7 @@ describe('Bridge', () => {
|
|
|
86
87
|
})
|
|
87
88
|
describe('ETH to XL1', () => {
|
|
88
89
|
it('BridgeObservation (ETH Side)', () => {
|
|
89
|
-
const observation:
|
|
90
|
+
const observation: BridgeSourceObservationFields = {
|
|
90
91
|
// Source
|
|
91
92
|
src: ethChainId, // From Ethereum
|
|
92
93
|
srcToken: bridgeableTokenContract, // In Ethereum
|
|
@@ -105,7 +106,7 @@ describe('Bridge', () => {
|
|
|
105
106
|
expect(observation).toMatchSnapshot()
|
|
106
107
|
})
|
|
107
108
|
it('BridgeObservation (XL1 Side)', () => {
|
|
108
|
-
const observation:
|
|
109
|
+
const observation: BridgeDestinationObservationFields = {
|
|
109
110
|
// Source
|
|
110
111
|
src: ethChainId, // From Ethereum
|
|
111
112
|
srcToken: bridgeableTokenContract, // In Ethereum
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import type { Hex } from '@xylabs/hex';
|
|
2
|
-
import type { Payload } from '@xyo-network/payload-model';
|
|
3
|
-
import type { BridgeDetailsFields } from './BridgeDetails.ts';
|
|
4
|
-
export declare const BridgeObservationSchema: "network.xyo.chain.bridge.observation";
|
|
5
|
-
export type BridgeObservationSchema = typeof BridgeObservationSchema;
|
|
6
|
-
/**
|
|
7
|
-
* Represents an observation that confirms a bridge action occurred on the source chain.
|
|
8
|
-
*/
|
|
9
|
-
export interface BridgeSourceObservationFields extends BridgeDetailsFields {
|
|
10
|
-
/**
|
|
11
|
-
* Source chain confirmation
|
|
12
|
-
*/
|
|
13
|
-
srcConfirmation?: Hex;
|
|
14
|
-
}
|
|
15
|
-
/**
|
|
16
|
-
* Represents an observation that confirms a bridge action occurred on the destination chain.
|
|
17
|
-
*/
|
|
18
|
-
export interface BridgeDestinationObservationFields extends BridgeDetailsFields {
|
|
19
|
-
/**
|
|
20
|
-
* Destination chain confirmation
|
|
21
|
-
*/
|
|
22
|
-
destConfirmation?: Hex;
|
|
23
|
-
}
|
|
24
|
-
/**
|
|
25
|
-
* Represents an observation that confirms a bridge action occurred on either the source or destination chain.
|
|
26
|
-
*/
|
|
27
|
-
export type BridgeObservationFields = BridgeSourceObservationFields | BridgeDestinationObservationFields;
|
|
28
|
-
export type BridgeObservation = Payload<BridgeObservationFields, BridgeObservationSchema>;
|
|
29
|
-
export declare const isBridgeObservation: (x?: unknown | null) => x is BridgeObservation;
|
|
30
|
-
export declare const asBridgeObservation: import("@xylabs/object").AsTypeFunction<BridgeObservation>;
|
|
31
|
-
//# sourceMappingURL=BridgeObservation.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"BridgeObservation.d.ts","sourceRoot":"","sources":["../../../../../src/payload/elevatable/Bridge/BridgeObservation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,aAAa,CAAA;AAEtC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAGzD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AAE7D,eAAO,MAAM,uBAAuB,EAAG,sCAA+C,CAAA;AACtF,MAAM,MAAM,uBAAuB,GAAG,OAAO,uBAAuB,CAAA;AAEpE;;GAEG;AACH,MAAM,WAAW,6BAA8B,SAAQ,mBAAmB;IACxE;;OAEG;IACH,eAAe,CAAC,EAAE,GAAG,CAAA;CACtB;AACD;;GAEG;AACH,MAAM,WAAW,kCAAmC,SAAQ,mBAAmB;IAC7E;;OAEG;IACH,gBAAgB,CAAC,EAAE,GAAG,CAAA;CACvB;AAED;;GAEG;AACH,MAAM,MAAM,uBAAuB,GAAG,6BAA6B,GAAG,kCAAkC,CAAA;AAExG,MAAM,MAAM,iBAAiB,GAAG,OAAO,CAAC,uBAAuB,EAAE,uBAAuB,CAAC,CAAA;AAEzF,eAAO,MAAM,mBAAmB,gDAAoE,CAAA;AAEpG,eAAO,MAAM,mBAAmB,4DAA8C,CAAA"}
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
import type { Hex } from '@xylabs/hex'
|
|
2
|
-
import { AsObjectFactory } from '@xylabs/object'
|
|
3
|
-
import type { Payload } from '@xyo-network/payload-model'
|
|
4
|
-
import { isPayloadOfSchemaType } from '@xyo-network/payload-model'
|
|
5
|
-
|
|
6
|
-
import type { BridgeDetailsFields } from './BridgeDetails.ts'
|
|
7
|
-
|
|
8
|
-
export const BridgeObservationSchema = 'network.xyo.chain.bridge.observation' as const
|
|
9
|
-
export type BridgeObservationSchema = typeof BridgeObservationSchema
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
* Represents an observation that confirms a bridge action occurred on the source chain.
|
|
13
|
-
*/
|
|
14
|
-
export interface BridgeSourceObservationFields extends BridgeDetailsFields {
|
|
15
|
-
/**
|
|
16
|
-
* Source chain confirmation
|
|
17
|
-
*/
|
|
18
|
-
srcConfirmation?: Hex
|
|
19
|
-
}
|
|
20
|
-
/**
|
|
21
|
-
* Represents an observation that confirms a bridge action occurred on the destination chain.
|
|
22
|
-
*/
|
|
23
|
-
export interface BridgeDestinationObservationFields extends BridgeDetailsFields {
|
|
24
|
-
/**
|
|
25
|
-
* Destination chain confirmation
|
|
26
|
-
*/
|
|
27
|
-
destConfirmation?: Hex
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
/**
|
|
31
|
-
* Represents an observation that confirms a bridge action occurred on either the source or destination chain.
|
|
32
|
-
*/
|
|
33
|
-
export type BridgeObservationFields = BridgeSourceObservationFields | BridgeDestinationObservationFields
|
|
34
|
-
|
|
35
|
-
export type BridgeObservation = Payload<BridgeObservationFields, BridgeObservationSchema>
|
|
36
|
-
|
|
37
|
-
export const isBridgeObservation = isPayloadOfSchemaType<BridgeObservation>(BridgeObservationSchema)
|
|
38
|
-
|
|
39
|
-
export const asBridgeObservation = AsObjectFactory.create(isBridgeObservation)
|