@iota/graphql-transport 0.1.1 → 0.2.0

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.
Files changed (35) hide show
  1. package/CHANGELOG.md +28 -0
  2. package/README.md +1 -1
  3. package/dist/cjs/generated/queries.d.ts +1054 -1944
  4. package/dist/cjs/generated/queries.js +126 -752
  5. package/dist/cjs/generated/queries.js.map +3 -3
  6. package/dist/cjs/mappers/bcs.js.map +1 -1
  7. package/dist/cjs/mappers/move.js.map +2 -2
  8. package/dist/cjs/mappers/transaction-block.d.ts +1 -0
  9. package/dist/cjs/mappers/transaction-block.js +316 -146
  10. package/dist/cjs/mappers/transaction-block.js.map +2 -2
  11. package/dist/cjs/mappers/validator.js +4 -6
  12. package/dist/cjs/mappers/validator.js.map +2 -2
  13. package/dist/cjs/methods.js +26 -58
  14. package/dist/cjs/methods.js.map +2 -2
  15. package/dist/cjs/transport.d.ts +1 -1
  16. package/dist/cjs/transport.js +18 -33
  17. package/dist/cjs/transport.js.map +2 -2
  18. package/dist/esm/generated/queries.d.ts +1054 -1944
  19. package/dist/esm/generated/queries.js +126 -752
  20. package/dist/esm/generated/queries.js.map +3 -3
  21. package/dist/esm/mappers/bcs.js.map +1 -1
  22. package/dist/esm/mappers/move.js.map +2 -2
  23. package/dist/esm/mappers/transaction-block.d.ts +1 -0
  24. package/dist/esm/mappers/transaction-block.js +318 -148
  25. package/dist/esm/mappers/transaction-block.js.map +2 -2
  26. package/dist/esm/mappers/validator.js +4 -6
  27. package/dist/esm/mappers/validator.js.map +2 -2
  28. package/dist/esm/methods.js +27 -61
  29. package/dist/esm/methods.js.map +2 -2
  30. package/dist/esm/transport.d.ts +1 -1
  31. package/dist/esm/transport.js +17 -32
  32. package/dist/esm/transport.js.map +2 -2
  33. package/dist/tsconfig.esm.tsbuildinfo +1 -1
  34. package/dist/tsconfig.tsbuildinfo +1 -1
  35. package/package.json +16 -16
@@ -18,6 +18,7 @@ var __copyProps = (to, from, except, desc) => {
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
19
  var transaction_block_exports = {};
20
20
  __export(transaction_block_exports, {
21
+ mapEffects: () => mapEffects,
21
22
  mapGraphQLTransactionBlockToRpcTransactionBlock: () => mapGraphQLTransactionBlockToRpcTransactionBlock,
22
23
  mapProgramableTransaction: () => mapProgramableTransaction,
23
24
  mapTransactionBlockToInput: () => mapTransactionBlockToInput
@@ -25,22 +26,10 @@ __export(transaction_block_exports, {
25
26
  module.exports = __toCommonJS(transaction_block_exports);
26
27
  var import_bcs = require("@iota/bcs");
27
28
  var import_bcs2 = require("@iota/iota-sdk/bcs");
28
- var import_owner = require("./owner.js");
29
+ var import_utils = require("@iota/iota-sdk/utils");
29
30
  var import_util = require("./util.js");
30
31
  function mapGraphQLTransactionBlockToRpcTransactionBlock(transactionBlock, options, errors) {
31
- const deletedChanges = transactionBlock.effects?.objectChanges?.nodes?.filter((change) => change?.idDeleted === true).map((change) => ({
32
- digest: change?.inputState?.digest,
33
- version: String(change?.inputState?.version),
34
- objectId: change?.inputState?.address
35
- }));
36
- const createdChanges = transactionBlock.effects?.objectChanges?.nodes?.filter((change) => change?.idCreated === true).map((change) => ({
37
- owner: (0, import_owner.mapGraphQLOwnerToRpcOwner)(change?.outputState?.owner),
38
- reference: {
39
- digest: change?.outputState?.digest,
40
- version: change?.outputState?.version,
41
- objectId: change?.outputState?.address
42
- }
43
- }));
32
+ const effects = transactionBlock.effects?.bcs ? mapEffects(transactionBlock.effects.bcs) : null;
44
33
  return {
45
34
  balanceChanges: transactionBlock.effects?.balanceChanges?.nodes.map((balanceChange) => ({
46
35
  amount: balanceChange?.amount,
@@ -54,53 +43,12 @@ function mapGraphQLTransactionBlockToRpcTransactionBlock(transactionBlock, optio
54
43
  ...typeof transactionBlock.effects?.checkpoint?.sequenceNumber === "number" ? { checkpoint: transactionBlock.effects.checkpoint.sequenceNumber.toString() } : {},
55
44
  ...transactionBlock.effects?.timestamp ? { timestampMs: new Date(transactionBlock.effects?.timestamp).getTime().toString() } : {},
56
45
  digest: transactionBlock.digest,
57
- effects: options?.showEffects ? {
58
- ...createdChanges?.length ? { created: createdChanges } : {},
59
- ...deletedChanges?.length ? { deleted: deletedChanges } : {},
60
- dependencies: transactionBlock.effects?.dependencies?.nodes.map(
61
- (dep) => dep?.digest
62
- ),
63
- executedEpoch: String(transactionBlock.effects?.executedEpoch?.epochId),
64
- gasObject: {
65
- owner: (0, import_owner.mapGraphQLOwnerToRpcOwner)(
66
- transactionBlock.effects?.gasEffects?.gasObject?.owner
67
- ),
68
- reference: {
69
- digest: transactionBlock.effects?.gasEffects?.gasObject?.digest,
70
- version: transactionBlock.effects?.gasEffects?.gasObject?.version,
71
- objectId: transactionBlock.effects?.gasEffects?.gasObject?.address
72
- }
73
- },
74
- gasUsed: {
75
- computationCost: transactionBlock.effects?.gasEffects?.gasSummary?.computationCost,
76
- nonRefundableStorageFee: transactionBlock.effects?.gasEffects?.gasSummary?.nonRefundableStorageFee,
77
- storageCost: transactionBlock.effects?.gasEffects?.gasSummary?.storageCost,
78
- storageRebate: transactionBlock.effects?.gasEffects?.gasSummary?.storageRebate
79
- },
80
- messageVersion: "v1",
81
- modifiedAtVersions: transactionBlock.effects?.objectChanges?.nodes?.filter((change) => !change?.idCreated && !change?.idDeleted)?.map((change) => ({
82
- objectId: change?.inputState?.address,
83
- sequenceNumber: String(change?.inputState?.version)
84
- })),
85
- mutated: transactionBlock.effects?.objectChanges?.nodes?.filter((change) => !change?.idCreated && !change?.idDeleted)?.map((change) => ({
86
- owner: (0, import_owner.mapGraphQLOwnerToRpcOwner)(change?.outputState?.owner),
87
- reference: {
88
- digest: change?.outputState?.digest,
89
- version: change?.outputState?.version,
90
- objectId: change?.outputState?.address
91
- }
92
- })),
93
- status: {
94
- status: transactionBlock.effects?.status?.toLowerCase()
95
- },
96
- transactionDigest: transactionBlock.digest
97
- // sharedObjects: [], // TODO
98
- // unwrapped: [], // TODO
99
- // unwrappedThenDeleted: [], // TODO
100
- // wrapped: [], // TODO
101
- } : void 0,
46
+ ...options?.showRawEffects ? {
47
+ rawEffects: transactionBlock.effects?.bcs ? Array.from((0, import_bcs.fromB64)(transactionBlock.effects?.bcs)) : void 0
48
+ } : {},
49
+ effects: options?.showEffects ? effects : void 0,
102
50
  ...errors ? { errors } : {},
103
- events: options?.showEvents ? transactionBlock.effects?.events?.nodes.map((event) => ({
51
+ events: transactionBlock.effects?.events?.nodes.map((event) => ({
104
52
  bcs: event.bcs,
105
53
  id: {
106
54
  eventSeq: "",
@@ -114,45 +62,92 @@ function mapGraphQLTransactionBlockToRpcTransactionBlock(transactionBlock, optio
114
62
  timestampMs: new Date(event.timestamp).getTime().toString(),
115
63
  transactionModule: `${event.sendingModule?.package.address}::${event.sendingModule?.name}`,
116
64
  type: (0, import_util.toShortTypeString)(event.type?.repr)
117
- })) ?? [] : void 0,
65
+ })) ?? [],
118
66
  rawTransaction: options?.showRawInput ? transactionBlock.rawTransaction : void 0,
119
67
  ...options?.showInput ? {
120
68
  transaction: transactionBlock.rawTransaction && mapTransactionBlockToInput(
121
69
  import_bcs2.bcs.SenderSignedData.parse((0, import_bcs.fromB64)(transactionBlock.rawTransaction))[0]
122
70
  )
123
71
  } : {},
124
- objectChanges: options?.showObjectChanges ? transactionBlock.effects?.objectChanges?.nodes?.map(
125
- (change) => change?.idDeleted ? {
126
- digest: change?.inputState?.digest,
127
- objectId: change?.inputState?.address,
128
- owner: (0, import_owner.mapGraphQLOwnerToRpcOwner)(change.inputState?.owner),
129
- objectType: (0, import_util.toShortTypeString)(
130
- change?.inputState?.asMoveObject?.contents?.type.repr
131
- ),
132
- sender: transactionBlock.sender?.address,
133
- type: "deleted",
134
- version: change?.inputState?.version.toString()
135
- } : {
136
- digest: change?.outputState?.digest,
137
- objectId: change?.outputState?.address,
138
- owner: (0, import_owner.mapGraphQLOwnerToRpcOwner)(change.outputState?.owner),
72
+ objectChanges: options?.showObjectChanges ? mapObjectChanges(transactionBlock, effects) : void 0
73
+ };
74
+ }
75
+ function mapObjectChanges(transactionBlock, effects) {
76
+ const changes = [];
77
+ effects?.mutated?.forEach((mutated) => {
78
+ const objectChange = transactionBlock.effects?.objectChanges?.nodes.find(
79
+ (change) => change.address === mutated.reference.objectId
80
+ );
81
+ changes.push({
82
+ type: "mutated",
83
+ digest: mutated.reference.digest,
84
+ previousVersion: String(objectChange?.inputState?.version),
85
+ objectId: mutated.reference.objectId,
86
+ owner: mutated.owner,
87
+ objectType: (0, import_util.toShortTypeString)(
88
+ objectChange?.outputState?.asMoveObject?.contents?.type.repr
89
+ ),
90
+ sender: transactionBlock.sender?.address,
91
+ version: mutated.reference.version?.toString()
92
+ });
93
+ });
94
+ effects?.created?.forEach((created) => {
95
+ const objectChange = transactionBlock.effects?.objectChanges?.nodes.find(
96
+ (change) => change.address === created.reference.objectId
97
+ );
98
+ if (objectChange?.outputState?.asMovePackage) {
99
+ changes.push({
100
+ type: "published",
101
+ digest: created.reference.digest,
102
+ version: created.reference.version?.toString(),
103
+ packageId: objectChange.address,
104
+ modules: objectChange.outputState.asMovePackage.modules?.nodes.map(
105
+ (module2) => module2.name
106
+ )
107
+ });
108
+ } else {
109
+ changes.push({
110
+ type: "created",
111
+ digest: created.reference.digest,
112
+ objectId: created.reference.objectId,
113
+ owner: created.owner,
139
114
  objectType: (0, import_util.toShortTypeString)(
140
- change?.outputState?.asMoveObject?.contents?.type.repr
115
+ transactionBlock.effects?.objectChanges?.nodes.find(
116
+ (change) => change.address === created.reference.objectId
117
+ )?.outputState?.asMoveObject?.contents?.type.repr
141
118
  ),
142
- ...typeof change?.inputState?.version === "number" ? { previousVersion: change?.inputState?.version.toString() } : {},
143
119
  sender: transactionBlock.sender?.address,
144
- type: change?.idCreated ? "created" : "mutated",
145
- version: change?.outputState?.version.toString()
146
- }
147
- ).sort((a, b) => {
148
- if (a.type === "created" && b.type === "deleted") {
149
- return -1;
150
- } else if (a.type === "deleted" && b.type === "created") {
151
- return 1;
152
- }
153
- return 0;
154
- }) : void 0
155
- };
120
+ version: created.reference.version?.toString()
121
+ });
122
+ }
123
+ });
124
+ effects?.deleted?.forEach((deleted) => {
125
+ changes.push({
126
+ type: "deleted",
127
+ objectId: deleted.objectId,
128
+ objectType: (0, import_util.toShortTypeString)(
129
+ transactionBlock.effects?.objectChanges?.nodes.find(
130
+ (change) => change.address === deleted.objectId
131
+ )?.inputState?.asMoveObject?.contents?.type.repr
132
+ ),
133
+ sender: transactionBlock.sender?.address,
134
+ version: deleted.version?.toString()
135
+ });
136
+ });
137
+ effects?.unwrapped?.forEach((unwrapped) => {
138
+ changes.push({
139
+ type: "wrapped",
140
+ objectId: unwrapped.reference.objectId,
141
+ objectType: (0, import_util.toShortTypeString)(
142
+ transactionBlock.effects?.objectChanges?.nodes.find(
143
+ (change) => change.address === unwrapped.reference.objectId
144
+ )?.outputState?.asMoveObject?.contents?.type.repr
145
+ ),
146
+ sender: transactionBlock.sender?.address,
147
+ version: unwrapped.reference.version?.toString()
148
+ });
149
+ });
150
+ return changes;
156
151
  }
157
152
  function mapTransactionBlockToInput(data) {
158
153
  const txData = data.intentMessage.value.V1;
@@ -183,105 +178,101 @@ function mapProgramableTransaction(programableTransaction) {
183
178
  return {
184
179
  inputs: programableTransaction.inputs.map(mapTransactionInput),
185
180
  kind: "ProgrammableTransaction",
186
- transactions: programableTransaction.transactions.map(mapTransaction)
181
+ transactions: programableTransaction.commands.map(mapTransaction)
187
182
  };
188
183
  }
189
184
  function mapTransactionInput(input) {
190
- if ("Pure" in input) {
185
+ if (input.Pure) {
191
186
  return {
192
187
  type: "pure",
193
- value: Uint8Array.from(input.Pure)
188
+ value: (0, import_bcs.fromB64)(input.Pure.bytes)
194
189
  };
195
190
  }
196
- if ("Object" in input) {
197
- if ("ImmOrOwned" in input.Object) {
198
- return {
199
- type: "object",
200
- digest: input.Object.ImmOrOwned.digest,
201
- version: input.Object.ImmOrOwned.version,
202
- objectId: input.Object.ImmOrOwned.objectId,
203
- objectType: "immOrOwnedObject"
204
- };
205
- }
206
- if ("Shared" in input.Object) {
207
- return {
208
- type: "object",
209
- initialSharedVersion: input.Object.Shared.initialSharedVersion,
210
- objectId: input.Object.Shared.objectId,
211
- mutable: input.Object.Shared.mutable,
212
- objectType: "sharedObject"
213
- };
214
- }
215
- if ("Receiving" in input.Object) {
216
- return {
217
- type: "object",
218
- digest: input.Object.Receiving.digest,
219
- version: input.Object.Receiving.version,
220
- objectId: input.Object.Receiving.objectId,
221
- objectType: "receiving"
222
- };
223
- }
224
- throw new Error(`Unknown object type: ${input.Object}`);
191
+ if (input.Object.ImmOrOwnedObject) {
192
+ return {
193
+ type: "object",
194
+ digest: input.Object.ImmOrOwnedObject.digest,
195
+ version: input.Object.ImmOrOwnedObject.version,
196
+ objectId: input.Object.ImmOrOwnedObject.objectId,
197
+ objectType: "immOrOwnedObject"
198
+ };
199
+ }
200
+ if (input.Object.SharedObject) {
201
+ return {
202
+ type: "object",
203
+ initialSharedVersion: input.Object.SharedObject.initialSharedVersion,
204
+ objectId: input.Object.SharedObject.objectId,
205
+ mutable: input.Object.SharedObject.mutable,
206
+ objectType: "sharedObject"
207
+ };
208
+ }
209
+ if (input.Object.Receiving) {
210
+ return {
211
+ type: "object",
212
+ digest: input.Object.Receiving.digest,
213
+ version: input.Object.Receiving.version,
214
+ objectId: input.Object.Receiving.objectId,
215
+ objectType: "receiving"
216
+ };
225
217
  }
226
- throw new Error(`Unknown input type ${input}`);
218
+ throw new Error(`Unknown object type: ${input.Object}`);
227
219
  }
228
220
  function mapTransaction(transaction) {
229
- switch (transaction.kind) {
221
+ switch (transaction.$kind) {
230
222
  case "MoveCall": {
231
- const [pkg, module2, fn] = transaction.target.split("::");
232
223
  return {
233
224
  MoveCall: {
234
- arguments: transaction.arguments.map(mapTransactionArgument),
235
- function: fn,
236
- module: module2,
237
- package: pkg,
238
- type_arguments: transaction.typeArguments
225
+ arguments: transaction.MoveCall.arguments.map(mapTransactionArgument),
226
+ function: transaction.MoveCall.function,
227
+ module: transaction.MoveCall.module,
228
+ package: transaction.MoveCall.package,
229
+ type_arguments: transaction.MoveCall.typeArguments
239
230
  }
240
231
  };
241
232
  }
242
233
  case "MakeMoveVec": {
243
234
  return {
244
235
  MakeMoveVec: [
245
- "Some" in transaction.type ? import_bcs2.TypeTagSerializer.tagToString(transaction.type.Some) : null,
246
- transaction.objects.map(mapTransactionArgument)
236
+ transaction.MakeMoveVec.type,
237
+ transaction.MakeMoveVec.elements.map(mapTransactionArgument)
247
238
  ]
248
239
  };
249
240
  }
250
241
  case "MergeCoins": {
251
242
  return {
252
243
  MergeCoins: [
253
- mapTransactionArgument(transaction.destination),
254
- transaction.sources.map(mapTransactionArgument)
244
+ mapTransactionArgument(transaction.MergeCoins.destination),
245
+ transaction.MergeCoins.sources.map(mapTransactionArgument)
255
246
  ]
256
247
  };
257
248
  }
258
249
  case "Publish": {
259
250
  return {
260
- Publish: transaction.modules.map((module2) => (0, import_bcs.toB64)(Uint8Array.from(module2)))
251
+ Publish: transaction.Publish.modules.map((module2) => module2)
261
252
  };
262
253
  }
263
254
  case "SplitCoins": {
264
255
  return {
265
256
  SplitCoins: [
266
- mapTransactionArgument(transaction.coin),
267
- transaction.amounts.map(mapTransactionArgument)
257
+ mapTransactionArgument(transaction.SplitCoins.coin),
258
+ transaction.SplitCoins.amounts.map(mapTransactionArgument)
268
259
  ]
269
260
  };
270
261
  }
271
262
  case "TransferObjects": {
272
263
  return {
273
264
  TransferObjects: [
274
- transaction.objects.map(mapTransactionArgument),
275
- mapTransactionArgument(transaction.address)
265
+ transaction.TransferObjects.objects.map(mapTransactionArgument),
266
+ mapTransactionArgument(transaction.TransferObjects.address)
276
267
  ]
277
268
  };
278
269
  }
279
270
  case "Upgrade": {
280
271
  return {
281
272
  Upgrade: [
282
- transaction.modules.map((module2) => (0, import_bcs.toB64)(Uint8Array.from(module2))),
283
- transaction.packageId,
284
- mapTransactionArgument(transaction.ticket)
273
+ transaction.Upgrade.modules.map((module2) => module2),
274
+ transaction.Upgrade.package,
275
+ mapTransactionArgument(transaction.Upgrade.ticket)
285
276
  ]
286
277
  };
287
278
  }
@@ -289,26 +280,205 @@ function mapTransaction(transaction) {
289
280
  throw new Error(`Unknown transaction type ${transaction}`);
290
281
  }
291
282
  function mapTransactionArgument(arg) {
292
- switch (arg.kind) {
283
+ switch (arg.$kind) {
293
284
  case "GasCoin": {
294
285
  return "GasCoin";
295
286
  }
296
287
  case "Input": {
297
288
  return {
298
- Input: arg.index
289
+ Input: arg.Input
299
290
  };
300
291
  }
301
292
  case "Result": {
302
293
  return {
303
- Result: arg.index
294
+ Result: arg.Result
304
295
  };
305
296
  }
306
297
  case "NestedResult": {
307
298
  return {
308
- NestedResult: [arg.index, arg.resultIndex]
299
+ NestedResult: arg.NestedResult
309
300
  };
310
301
  }
311
302
  }
312
303
  throw new Error(`Unknown argument type ${arg}`);
313
304
  }
305
+ const OBJECT_DIGEST_DELETED = (0, import_bcs.toB58)(Uint8Array.from({ length: 32 }, () => 99));
306
+ const OBJECT_DIGEST_WRAPPED = (0, import_bcs.toB58)(Uint8Array.from({ length: 32 }, () => 88));
307
+ const OBJECT_DIGEST_ZERO = (0, import_bcs.toB58)(Uint8Array.from({ length: 32 }, () => 0));
308
+ const ADDRESS_ZERO = (0, import_utils.normalizeIotaAddress)("0x0");
309
+ function mapEffects(data) {
310
+ const effects = import_bcs2.bcs.TransactionEffects.parse((0, import_bcs.fromB64)(data));
311
+ const sharedObjects = effects.V1.unchangedSharedObjects.map(([id, sharedObject]) => {
312
+ switch (sharedObject.$kind) {
313
+ case "ReadOnlyRoot":
314
+ return {
315
+ objectId: id,
316
+ version: Number(sharedObject.ReadOnlyRoot[0]),
317
+ digest: sharedObject.ReadOnlyRoot[1]
318
+ };
319
+ case "MutateDeleted":
320
+ return {
321
+ objectId: id,
322
+ version: Number(sharedObject.MutateDeleted),
323
+ digest: OBJECT_DIGEST_DELETED
324
+ };
325
+ case "ReadDeleted":
326
+ return {
327
+ objectId: id,
328
+ version: Number(sharedObject.ReadDeleted),
329
+ digest: OBJECT_DIGEST_DELETED
330
+ };
331
+ default:
332
+ throw new Error(`Unknown shared object type: ${sharedObject}`);
333
+ }
334
+ });
335
+ effects.V1.changedObjects.filter(([_id, change]) => change.inputState.Exist?.[1].Shared).forEach(([id, change]) => {
336
+ sharedObjects.push({
337
+ objectId: id,
338
+ version: Number(change.inputState.Exist[0][0]),
339
+ digest: change.inputState.Exist[0][1]
340
+ });
341
+ });
342
+ const modifiedAtVersions = effects.V1.changedObjects.filter(([_id, change]) => change.inputState.Exist).map(([id, change]) => [id, change.inputState.Exist[0][0]]);
343
+ const created = effects.V1.changedObjects.filter(
344
+ ([_id, change]) => change.inputState.NotExist && (change.outputState.ObjectWrite || change.outputState.PackageWrite) && change.idOperation.Created
345
+ ).map(
346
+ ([objectId, change]) => change.outputState.PackageWrite ? [
347
+ {
348
+ objectId,
349
+ version: Number(change.outputState.PackageWrite[0]),
350
+ digest: change.outputState.PackageWrite[1]
351
+ },
352
+ { $kind: "Immutable", Immutable: true }
353
+ ] : [
354
+ {
355
+ objectId,
356
+ version: Number(effects.V1.lamportVersion),
357
+ digest: change.outputState.ObjectWrite[0]
358
+ },
359
+ change.outputState.ObjectWrite[1]
360
+ ]
361
+ );
362
+ const mutated = effects.V1.changedObjects.filter(
363
+ ([_id, change]) => change.inputState.Exist && (change.outputState.ObjectWrite || change.outputState.PackageWrite)
364
+ ).map(([objectId, change]) => [
365
+ change.outputState.PackageWrite ? {
366
+ objectId,
367
+ version: Number(change.outputState.PackageWrite[0]),
368
+ digest: change.outputState.PackageWrite[1]
369
+ } : {
370
+ objectId,
371
+ version: Number(effects.V1.lamportVersion),
372
+ digest: change.outputState.ObjectWrite[0]
373
+ },
374
+ change.outputState.ObjectWrite ? change.outputState.ObjectWrite[1] : { $kind: "Immutable", Immutable: true }
375
+ ]);
376
+ const unwrapped = effects.V1.changedObjects.filter(
377
+ ([_id, change]) => change.inputState.NotExist && change.outputState.ObjectWrite && change.idOperation.None
378
+ ).map(([objectId, change]) => [
379
+ {
380
+ objectId,
381
+ version: Number(effects.V1.lamportVersion),
382
+ digest: change.outputState.ObjectWrite[0]
383
+ },
384
+ change.outputState.ObjectWrite[1]
385
+ ]);
386
+ const deleted = effects.V1.changedObjects.filter(
387
+ ([_id, change]) => change.inputState.Exist && change.outputState.NotExist && change.idOperation.Deleted
388
+ ).map(([objectId, _change]) => ({
389
+ objectId,
390
+ version: Number(effects.V1.lamportVersion),
391
+ digest: OBJECT_DIGEST_DELETED
392
+ }));
393
+ const unwrappedThenDeleted = effects.V1.changedObjects.filter(
394
+ ([_id, change]) => change.inputState.NotExist && change.outputState.NotExist && change.idOperation.Deleted
395
+ ).map(([objectId, _change]) => ({
396
+ objectId,
397
+ version: Number(effects.V1.lamportVersion),
398
+ digest: OBJECT_DIGEST_DELETED
399
+ }));
400
+ const wrapped = effects.V1.changedObjects.filter(
401
+ ([_id, change]) => change.inputState.Exist && change.outputState.NotExist && change.idOperation.None
402
+ ).map(([objectId, _change]) => ({
403
+ objectId,
404
+ version: Number(effects.V1.lamportVersion),
405
+ digest: OBJECT_DIGEST_WRAPPED
406
+ }));
407
+ const gasObjectFromV1 = effects.V1.gasObjectIndex != null ? effects.V1.changedObjects[effects.V1.gasObjectIndex] : null;
408
+ const gasObject = gasObjectFromV1 ? [
409
+ {
410
+ objectId: gasObjectFromV1[0],
411
+ digest: gasObjectFromV1[1].outputState.ObjectWrite[0],
412
+ version: Number(effects.V1.lamportVersion)
413
+ },
414
+ gasObjectFromV1[1].outputState.ObjectWrite[1]
415
+ ] : [
416
+ {
417
+ objectId: ADDRESS_ZERO,
418
+ version: "0",
419
+ digest: OBJECT_DIGEST_ZERO
420
+ },
421
+ {
422
+ $kind: "AddressOwner",
423
+ AddressOwner: ADDRESS_ZERO
424
+ }
425
+ ];
426
+ return {
427
+ messageVersion: "v1",
428
+ status: effects.V1.status.Success ? {
429
+ status: "success"
430
+ } : {
431
+ status: "failure",
432
+ // TODO: we don't have the error message from bcs effects
433
+ error: effects.V1.status.$kind
434
+ },
435
+ executedEpoch: effects.V1.executedEpoch,
436
+ gasUsed: effects.V1.gasUsed,
437
+ modifiedAtVersions: modifiedAtVersions.map(([objectId, sequenceNumber]) => ({
438
+ objectId,
439
+ sequenceNumber
440
+ })),
441
+ ...sharedObjects.length === 0 ? {} : { sharedObjects },
442
+ transactionDigest: effects.V1.transactionDigest,
443
+ ...created.length === 0 ? {} : {
444
+ created: created.map(([reference, owner]) => ({
445
+ reference,
446
+ owner: mapEffectsOwner(owner)
447
+ }))
448
+ },
449
+ ...mutated.length === 0 ? {} : {
450
+ mutated: mutated.map(([reference, owner]) => ({
451
+ reference,
452
+ owner: mapEffectsOwner(owner)
453
+ }))
454
+ },
455
+ ...unwrapped.length === 0 ? {} : {
456
+ unwrapped: unwrapped.length === 0 ? void 0 : unwrapped.map(([reference, owner]) => ({
457
+ reference,
458
+ owner: mapEffectsOwner(owner)
459
+ }))
460
+ },
461
+ ...deleted.length === 0 ? {} : { deleted },
462
+ ...unwrappedThenDeleted.length === 0 ? {} : { unwrappedThenDeleted },
463
+ ...wrapped.length === 0 ? {} : { wrapped },
464
+ gasObject: {
465
+ reference: gasObject[0],
466
+ owner: mapEffectsOwner(gasObject[1])
467
+ },
468
+ ...effects.V1.eventsDigest ? { eventsDigest: effects.V1.eventsDigest } : {},
469
+ dependencies: effects.V1.dependencies
470
+ };
471
+ function mapEffectsOwner(owner) {
472
+ if (owner.Immutable) {
473
+ return "Immutable";
474
+ } else if (owner.Shared) {
475
+ return { Shared: { initial_shared_version: owner.Shared.initialSharedVersion } };
476
+ } else if (owner.AddressOwner) {
477
+ return { AddressOwner: owner.AddressOwner };
478
+ } else if (owner.ObjectOwner) {
479
+ return { ObjectOwner: owner.ObjectOwner };
480
+ }
481
+ throw new Error(`Unknown owner type: ${owner}`);
482
+ }
483
+ }
314
484
  //# sourceMappingURL=transaction-block.js.map