datai-sdk 1.1.1 → 1.1.3
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/@graphprotocol/graph-ts/README.md +13 -0
- package/@graphprotocol/graph-ts/chain/arweave.ts +82 -0
- package/@graphprotocol/graph-ts/chain/cosmos.ts +426 -0
- package/@graphprotocol/graph-ts/chain/ethereum.ts +727 -0
- package/@graphprotocol/graph-ts/chain/near.ts +420 -0
- package/@graphprotocol/graph-ts/chain/starknet.ts +39 -0
- package/@graphprotocol/graph-ts/common/collections.ts +495 -0
- package/@graphprotocol/graph-ts/common/conversion.ts +3 -0
- package/@graphprotocol/graph-ts/common/datasource.ts +41 -0
- package/@graphprotocol/graph-ts/common/eager_offset.ts +42 -0
- package/@graphprotocol/graph-ts/common/json.ts +28 -0
- package/@graphprotocol/graph-ts/common/numbers.ts +407 -0
- package/@graphprotocol/graph-ts/common/value.ts +585 -0
- package/@graphprotocol/graph-ts/global/global.ts +4 -0
- package/@graphprotocol/graph-ts/helper-functions.ts +79 -0
- package/@graphprotocol/graph-ts/index.ts +156 -0
- package/@graphprotocol/graph-ts/package.json +3 -0
- package/@graphprotocol/graph-ts/tsconfig.json +4 -0
- package/@graphprotocol/graph-ts/types/tsconfig.base.json +3 -0
- package/API/v1/proto/activePositions/activePositions/ActivePositionsResultPb.ts +1 -1
- package/package.json +1 -1
- package/patch-graph-ts.js +70 -0
- package/postinstall-script.js +28 -22
- package/API/v1/proto/activePositions/google/protobuf/Timestamp.ts +0 -48
|
@@ -0,0 +1,420 @@
|
|
|
1
|
+
import '../common/eager_offset';
|
|
2
|
+
import { Bytes } from '../common/collections';
|
|
3
|
+
import { BigInt } from '../common/numbers';
|
|
4
|
+
|
|
5
|
+
// Most types from this namespace are direct mappings or adaptations from:
|
|
6
|
+
// https://github.com/streamingfast/proto-near/blob/develop/sf/near/codec/v1/codec.proto
|
|
7
|
+
export namespace near {
|
|
8
|
+
export type CryptoHash = Bytes;
|
|
9
|
+
|
|
10
|
+
export type Account = string;
|
|
11
|
+
|
|
12
|
+
export type BlockHeight = u64;
|
|
13
|
+
|
|
14
|
+
export type Balance = BigInt;
|
|
15
|
+
|
|
16
|
+
export type Gas = u64;
|
|
17
|
+
|
|
18
|
+
export type ShardId = u64;
|
|
19
|
+
|
|
20
|
+
export type NumBlocks = u64;
|
|
21
|
+
|
|
22
|
+
export type ProtocolVersion = u32;
|
|
23
|
+
|
|
24
|
+
export type Payload = u64;
|
|
25
|
+
|
|
26
|
+
export enum CurveKind {
|
|
27
|
+
ED25519 = 0,
|
|
28
|
+
SECP256K1 = 1,
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
export class Signature {
|
|
32
|
+
constructor(
|
|
33
|
+
public kind: CurveKind,
|
|
34
|
+
public bytes: Bytes,
|
|
35
|
+
) {}
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
export class PublicKey {
|
|
39
|
+
constructor(
|
|
40
|
+
public kind: CurveKind,
|
|
41
|
+
public bytes: Bytes,
|
|
42
|
+
) {}
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
export enum AccessKeyPermissionKind {
|
|
46
|
+
FUNCTION_CALL = 0,
|
|
47
|
+
FULL_ACCESS = 1,
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
export class FunctionCallPermission {
|
|
51
|
+
constructor(
|
|
52
|
+
public allowance: BigInt,
|
|
53
|
+
public receiverId: string,
|
|
54
|
+
public methodNames: Array<string>,
|
|
55
|
+
) {}
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
export class FullAccessPermission {}
|
|
59
|
+
|
|
60
|
+
export class AccessKeyPermissionValue {
|
|
61
|
+
constructor(
|
|
62
|
+
public kind: AccessKeyPermissionKind,
|
|
63
|
+
public data: Payload,
|
|
64
|
+
) {}
|
|
65
|
+
|
|
66
|
+
toFunctionCall(): FunctionCallPermission {
|
|
67
|
+
assert(
|
|
68
|
+
this.kind == AccessKeyPermissionKind.FUNCTION_CALL,
|
|
69
|
+
"AccessKeyPermissionValue is not a 'FunctionCall'.",
|
|
70
|
+
);
|
|
71
|
+
return changetype<FunctionCallPermission>(this.data as u32);
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
toFullAccess(): FullAccessPermission {
|
|
75
|
+
assert(
|
|
76
|
+
this.kind == AccessKeyPermissionKind.FULL_ACCESS,
|
|
77
|
+
"AccessKeyPermissionValue is not a 'FullAccess'.",
|
|
78
|
+
);
|
|
79
|
+
return changetype<FullAccessPermission>(this.data as u32);
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
static fromFunctionCall(input: FunctionCallPermission): AccessKeyPermissionValue {
|
|
83
|
+
return new AccessKeyPermissionValue(
|
|
84
|
+
AccessKeyPermissionKind.FUNCTION_CALL,
|
|
85
|
+
changetype<u32>(input),
|
|
86
|
+
);
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
static fromFullAccess(input: FullAccessPermission): AccessKeyPermissionValue {
|
|
90
|
+
return new AccessKeyPermissionValue(
|
|
91
|
+
AccessKeyPermissionKind.FULL_ACCESS,
|
|
92
|
+
changetype<u32>(input),
|
|
93
|
+
);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
export class AccessKey {
|
|
98
|
+
constructor(
|
|
99
|
+
public nonce: u64,
|
|
100
|
+
public permission: AccessKeyPermissionValue,
|
|
101
|
+
) {}
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
export class DataReceiver {
|
|
105
|
+
constructor(
|
|
106
|
+
public dataId: CryptoHash,
|
|
107
|
+
public receiverId: string,
|
|
108
|
+
) {}
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
export enum ActionKind {
|
|
112
|
+
CREATE_ACCOUNT = 0,
|
|
113
|
+
DEPLOY_CONTRACT = 1,
|
|
114
|
+
FUNCTION_CALL = 2,
|
|
115
|
+
TRANSFER = 3,
|
|
116
|
+
STAKE = 4,
|
|
117
|
+
ADD_KEY = 5,
|
|
118
|
+
DELETE_KEY = 6,
|
|
119
|
+
DELETE_ACCOUNT = 7,
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
export class CreateAccountAction {}
|
|
123
|
+
|
|
124
|
+
export class DeployContractAction {
|
|
125
|
+
constructor(public codeHash: Bytes) {}
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
export class FunctionCallAction {
|
|
129
|
+
constructor(
|
|
130
|
+
public methodName: string,
|
|
131
|
+
public args: Bytes,
|
|
132
|
+
public gas: u64,
|
|
133
|
+
public deposit: BigInt,
|
|
134
|
+
) {}
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
export class TransferAction {
|
|
138
|
+
constructor(public deposit: BigInt) {}
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
export class StakeAction {
|
|
142
|
+
constructor(
|
|
143
|
+
public stake: Balance,
|
|
144
|
+
public publicKey: PublicKey,
|
|
145
|
+
) {}
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
export class AddKeyAction {
|
|
149
|
+
constructor(
|
|
150
|
+
public publicKey: PublicKey,
|
|
151
|
+
public accessKey: AccessKey,
|
|
152
|
+
) {}
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
export class DeleteKeyAction {
|
|
156
|
+
constructor(public publicKey: PublicKey) {}
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
export class DeleteAccountAction {
|
|
160
|
+
constructor(public beneficiaryId: Account) {}
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
export class ActionValue {
|
|
164
|
+
constructor(
|
|
165
|
+
public kind: ActionKind,
|
|
166
|
+
public data: Payload,
|
|
167
|
+
) {}
|
|
168
|
+
|
|
169
|
+
toCreateAccount(): CreateAccountAction {
|
|
170
|
+
assert(this.kind == ActionKind.CREATE_ACCOUNT, "ActionValue is not a 'CreateAccount'.");
|
|
171
|
+
return changetype<CreateAccountAction>(this.data as u32);
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
toDeployContract(): DeployContractAction {
|
|
175
|
+
assert(this.kind == ActionKind.DEPLOY_CONTRACT, "ActionValue is not a 'DeployContract'.");
|
|
176
|
+
return changetype<DeployContractAction>(this.data as u32);
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
toFunctionCall(): FunctionCallAction {
|
|
180
|
+
assert(this.kind == ActionKind.FUNCTION_CALL, "ActionValue is not a 'FunctionCall'.");
|
|
181
|
+
return changetype<FunctionCallAction>(this.data as u32);
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
toTransfer(): TransferAction {
|
|
185
|
+
assert(this.kind == ActionKind.TRANSFER, "ActionValue is not a 'Transfer'.");
|
|
186
|
+
return changetype<TransferAction>(this.data as u32);
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
toStake(): StakeAction {
|
|
190
|
+
assert(this.kind == ActionKind.STAKE, "ActionValue is not a 'Stake'.");
|
|
191
|
+
return changetype<StakeAction>(this.data as u32);
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
toAddKey(): AddKeyAction {
|
|
195
|
+
assert(this.kind == ActionKind.ADD_KEY, "ActionValue is not a 'AddKey'.");
|
|
196
|
+
return changetype<AddKeyAction>(this.data as u32);
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
toDeleteKey(): DeleteKeyAction {
|
|
200
|
+
assert(this.kind == ActionKind.DELETE_KEY, "ActionValue is not a 'DeleteKey'.");
|
|
201
|
+
return changetype<DeleteKeyAction>(this.data as u32);
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
toDeleteAccount(): DeleteAccountAction {
|
|
205
|
+
assert(this.kind == ActionKind.DELETE_ACCOUNT, "ActionValue is not a 'DeleteAccount'.");
|
|
206
|
+
return changetype<DeleteAccountAction>(this.data as u32);
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
static fromCreateAccount(input: CreateAccountAction): ActionValue {
|
|
210
|
+
return new ActionValue(ActionKind.CREATE_ACCOUNT, changetype<u32>(input));
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
static fromDeployContract(input: DeployContractAction): ActionValue {
|
|
214
|
+
return new ActionValue(ActionKind.DEPLOY_CONTRACT, changetype<u32>(input));
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
static fromFunctionCall(input: FunctionCallAction): ActionValue {
|
|
218
|
+
return new ActionValue(ActionKind.FUNCTION_CALL, changetype<u32>(input));
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
static fromTransfer(input: TransferAction): ActionValue {
|
|
222
|
+
return new ActionValue(ActionKind.TRANSFER, changetype<u32>(input));
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
static fromStake(input: StakeAction): ActionValue {
|
|
226
|
+
return new ActionValue(ActionKind.STAKE, changetype<u32>(input));
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
static fromAddKey(input: AddKeyAction): ActionValue {
|
|
230
|
+
return new ActionValue(ActionKind.ADD_KEY, changetype<u32>(input));
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
static fromDeleteKey(input: DeleteKeyAction): ActionValue {
|
|
234
|
+
return new ActionValue(ActionKind.DELETE_KEY, changetype<u32>(input));
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
static fromDeleteAccount(input: DeleteAccountAction): ActionValue {
|
|
238
|
+
return new ActionValue(ActionKind.DELETE_ACCOUNT, changetype<u32>(input));
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
// We don't map ReceiptData
|
|
243
|
+
export class ActionReceipt {
|
|
244
|
+
constructor(
|
|
245
|
+
// Receipt fields
|
|
246
|
+
public predecessorId: string,
|
|
247
|
+
public receiverId: string,
|
|
248
|
+
public id: CryptoHash,
|
|
249
|
+
|
|
250
|
+
// ReceiptAction fields
|
|
251
|
+
public signerId: string,
|
|
252
|
+
public signerPublicKey: PublicKey,
|
|
253
|
+
public gasPrice: BigInt,
|
|
254
|
+
public outputDataReceivers: Array<DataReceiver>,
|
|
255
|
+
public inputDataIds: Array<CryptoHash>,
|
|
256
|
+
public actions: Array<ActionValue>,
|
|
257
|
+
) {}
|
|
258
|
+
}
|
|
259
|
+
|
|
260
|
+
export enum SuccessStatusKind {
|
|
261
|
+
VALUE = 0,
|
|
262
|
+
RECEIPT_ID = 1,
|
|
263
|
+
}
|
|
264
|
+
|
|
265
|
+
// Doesn't have Value suffix because it has
|
|
266
|
+
// VALUE variant/kind, that would be confusing.
|
|
267
|
+
export class SuccessStatus {
|
|
268
|
+
constructor(
|
|
269
|
+
public kind: SuccessStatusKind,
|
|
270
|
+
public data: Payload,
|
|
271
|
+
) {}
|
|
272
|
+
|
|
273
|
+
toValue(): Bytes {
|
|
274
|
+
assert(this.kind == SuccessStatusKind.VALUE, "SuccessStatus is not a 'Value'.");
|
|
275
|
+
return changetype<Bytes>(this.data as u32);
|
|
276
|
+
}
|
|
277
|
+
|
|
278
|
+
toReceiptId(): CryptoHash {
|
|
279
|
+
assert(this.kind == SuccessStatusKind.RECEIPT_ID, "SuccessStatus is not a 'ReceiptId'.");
|
|
280
|
+
return changetype<CryptoHash>(this.data as u32);
|
|
281
|
+
}
|
|
282
|
+
|
|
283
|
+
static fromValue(input: Bytes): SuccessStatus {
|
|
284
|
+
return new SuccessStatus(SuccessStatusKind.VALUE, changetype<u32>(input));
|
|
285
|
+
}
|
|
286
|
+
|
|
287
|
+
static fromReceiptId(input: CryptoHash): SuccessStatus {
|
|
288
|
+
return new SuccessStatus(SuccessStatusKind.RECEIPT_ID, changetype<u32>(input));
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
|
|
292
|
+
export enum Direction {
|
|
293
|
+
LEFT = 0,
|
|
294
|
+
RIGHT = 1,
|
|
295
|
+
}
|
|
296
|
+
|
|
297
|
+
export class MerklePathItem {
|
|
298
|
+
constructor(
|
|
299
|
+
public hash: CryptoHash,
|
|
300
|
+
public direction: Direction,
|
|
301
|
+
) {}
|
|
302
|
+
|
|
303
|
+
@operator('<')
|
|
304
|
+
lt(_: MerklePathItem): boolean {
|
|
305
|
+
abort("Less than operator isn't supported in MerklePathItem");
|
|
306
|
+
return false;
|
|
307
|
+
}
|
|
308
|
+
|
|
309
|
+
@operator('>')
|
|
310
|
+
gt(_: MerklePathItem): boolean {
|
|
311
|
+
abort("Greater than operator isn't supported in MerklePathItem");
|
|
312
|
+
return false;
|
|
313
|
+
}
|
|
314
|
+
|
|
315
|
+
toString(): string {
|
|
316
|
+
return `{hash: ${this.hash.toString()}}, direction: ${this.direction.toString()}`;
|
|
317
|
+
}
|
|
318
|
+
}
|
|
319
|
+
|
|
320
|
+
export class MerklePath extends Array<MerklePathItem> {}
|
|
321
|
+
|
|
322
|
+
export class ExecutionOutcome {
|
|
323
|
+
constructor(
|
|
324
|
+
public gasBurnt: u64,
|
|
325
|
+
public proof: MerklePath,
|
|
326
|
+
public blockHash: CryptoHash,
|
|
327
|
+
public id: CryptoHash,
|
|
328
|
+
public logs: Array<string>,
|
|
329
|
+
public receiptIds: Array<CryptoHash>,
|
|
330
|
+
public tokensBurnt: BigInt,
|
|
331
|
+
public executorId: string,
|
|
332
|
+
public status: SuccessStatus,
|
|
333
|
+
) {}
|
|
334
|
+
}
|
|
335
|
+
|
|
336
|
+
export class SlashedValidator {
|
|
337
|
+
constructor(
|
|
338
|
+
public account: Account,
|
|
339
|
+
public isDoubleSign: bool,
|
|
340
|
+
) {}
|
|
341
|
+
}
|
|
342
|
+
|
|
343
|
+
export class BlockHeader {
|
|
344
|
+
constructor(
|
|
345
|
+
public height: BlockHeight,
|
|
346
|
+
public prevHeight: BlockHeight, // Always zero when version < V3
|
|
347
|
+
public blockOrdinal: NumBlocks, // Always zero when version < V3
|
|
348
|
+
public epochId: CryptoHash,
|
|
349
|
+
public nextEpochId: CryptoHash,
|
|
350
|
+
public chunksIncluded: u64,
|
|
351
|
+
public hash: CryptoHash,
|
|
352
|
+
public prevHash: CryptoHash,
|
|
353
|
+
public timestampNanosec: u64,
|
|
354
|
+
public prevStateRoot: CryptoHash,
|
|
355
|
+
public chunkReceiptsRoot: CryptoHash,
|
|
356
|
+
public chunkHeadersRoot: CryptoHash,
|
|
357
|
+
public chunkTxRoot: CryptoHash,
|
|
358
|
+
public outcomeRoot: CryptoHash,
|
|
359
|
+
public challengesRoot: CryptoHash,
|
|
360
|
+
public randomValue: CryptoHash,
|
|
361
|
+
public validatorProposals: Array<ValidatorStake>,
|
|
362
|
+
public chunkMask: Array<bool>,
|
|
363
|
+
public gasPrice: Balance,
|
|
364
|
+
public totalSupply: Balance,
|
|
365
|
+
public challengesResult: Array<SlashedValidator>,
|
|
366
|
+
public lastFinalBlock: CryptoHash,
|
|
367
|
+
public lastDsFinalBlock: CryptoHash,
|
|
368
|
+
public nextBpHash: CryptoHash,
|
|
369
|
+
public blockMerkleRoot: CryptoHash,
|
|
370
|
+
public epochSyncDataHash: CryptoHash, // Always empty when version < V3
|
|
371
|
+
public approvals: Array<Signature>, // Array<Option<Signature>>
|
|
372
|
+
public signature: Signature,
|
|
373
|
+
public latestProtocolVersion: ProtocolVersion,
|
|
374
|
+
) {}
|
|
375
|
+
}
|
|
376
|
+
|
|
377
|
+
export class ValidatorStake {
|
|
378
|
+
constructor(
|
|
379
|
+
public account: Account,
|
|
380
|
+
public publicKey: PublicKey,
|
|
381
|
+
public stake: Balance,
|
|
382
|
+
) {}
|
|
383
|
+
}
|
|
384
|
+
|
|
385
|
+
export class ChunkHeader {
|
|
386
|
+
constructor(
|
|
387
|
+
public encodedLength: u64,
|
|
388
|
+
public gasUsed: Gas,
|
|
389
|
+
public gasLimit: Gas,
|
|
390
|
+
public shardId: ShardId,
|
|
391
|
+
public heightCreated: BlockHeight,
|
|
392
|
+
public heightIncluded: BlockHeight,
|
|
393
|
+
public chunkHash: CryptoHash,
|
|
394
|
+
public signature: Signature,
|
|
395
|
+
public prevBlockHash: CryptoHash,
|
|
396
|
+
public prevStateRoot: CryptoHash,
|
|
397
|
+
public encodedMerkleRoot: CryptoHash,
|
|
398
|
+
public balanceBurnt: Balance,
|
|
399
|
+
public outgoingReceiptsRoot: CryptoHash,
|
|
400
|
+
public txRoot: CryptoHash,
|
|
401
|
+
public validatorProposals: Array<ValidatorStake>,
|
|
402
|
+
) {}
|
|
403
|
+
}
|
|
404
|
+
|
|
405
|
+
export class Block {
|
|
406
|
+
constructor(
|
|
407
|
+
public author: Account,
|
|
408
|
+
public header: BlockHeader,
|
|
409
|
+
public chunks: Array<ChunkHeader>,
|
|
410
|
+
) {}
|
|
411
|
+
}
|
|
412
|
+
|
|
413
|
+
export class ReceiptWithOutcome {
|
|
414
|
+
constructor(
|
|
415
|
+
public outcome: ExecutionOutcome,
|
|
416
|
+
public receipt: ActionReceipt,
|
|
417
|
+
public block: Block,
|
|
418
|
+
) {}
|
|
419
|
+
}
|
|
420
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import '../common/eager_offset';
|
|
2
|
+
import { Bytes } from '../common/collections';
|
|
3
|
+
import { BigInt } from '../common/numbers';
|
|
4
|
+
|
|
5
|
+
export namespace starknet {
|
|
6
|
+
export class Block {
|
|
7
|
+
constructor(
|
|
8
|
+
public number: BigInt,
|
|
9
|
+
public hash: Bytes,
|
|
10
|
+
public prevHash: Bytes,
|
|
11
|
+
public timestamp: BigInt,
|
|
12
|
+
) {}
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export class Transaction {
|
|
16
|
+
constructor(
|
|
17
|
+
public type: TransactionType,
|
|
18
|
+
public hash: Bytes,
|
|
19
|
+
) {}
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export enum TransactionType {
|
|
23
|
+
DEPLOY = 0,
|
|
24
|
+
INVOKE_FUNCTION = 1,
|
|
25
|
+
DECLARE = 2,
|
|
26
|
+
L1_HANDLER = 3,
|
|
27
|
+
DEPLOY_ACCOUNT = 4,
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
export class Event {
|
|
31
|
+
constructor(
|
|
32
|
+
public fromAddr: Bytes,
|
|
33
|
+
public keys: Array<Bytes>,
|
|
34
|
+
public data: Array<Bytes>,
|
|
35
|
+
public block: Block,
|
|
36
|
+
public transaction: Transaction,
|
|
37
|
+
) {}
|
|
38
|
+
}
|
|
39
|
+
}
|