@bitgo-beta/sdk-coin-canton 1.0.1-beta.8 → 1.0.1-beta.81

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 (100) hide show
  1. package/dist/resources/hash/hash.d.ts +5 -0
  2. package/dist/resources/hash/hash.js +298 -0
  3. package/dist/resources/proto/damlTransaction.js +100 -0
  4. package/dist/resources/proto/damlTransactionNode.js +71 -0
  5. package/dist/resources/proto/damlTransactionNodeSeed.js +56 -0
  6. package/dist/resources/proto/metadata/metadataGlobalKeyMappingEntry.js +53 -0
  7. package/dist/resources/proto/metadata/metadataInputContract.js +80 -0
  8. package/dist/resources/proto/metadata/metadataSubmitterInfo.js +62 -0
  9. package/dist/resources/proto/metadata.js +189 -0
  10. package/dist/resources/proto/node/empty.js +36 -0
  11. package/dist/resources/proto/node/globalKey.js +81 -0
  12. package/dist/resources/proto/node/identifier.js +73 -0
  13. package/dist/resources/proto/node/node.js +664 -0
  14. package/dist/resources/proto/node/timestamp.js +145 -0
  15. package/dist/resources/proto/node/value.js +838 -0
  16. package/dist/resources/proto/preparedTransaction.d.ts +8 -0
  17. package/dist/resources/proto/preparedTransaction.js +66 -0
  18. package/dist/src/canton.d.ts +4 -2
  19. package/dist/src/canton.d.ts.map +1 -1
  20. package/dist/src/canton.js +44 -6
  21. package/dist/src/index.d.ts +1 -0
  22. package/dist/src/index.d.ts.map +1 -1
  23. package/dist/src/index.js +2 -1
  24. package/dist/src/lib/constant.d.ts +16 -0
  25. package/dist/src/lib/constant.d.ts.map +1 -0
  26. package/dist/src/lib/constant.js +19 -0
  27. package/dist/src/lib/iface.d.ts +101 -0
  28. package/dist/src/lib/iface.d.ts.map +1 -1
  29. package/dist/src/lib/iface.js +1 -1
  30. package/dist/src/lib/index.d.ts +7 -1
  31. package/dist/src/lib/index.d.ts.map +1 -1
  32. package/dist/src/lib/index.js +15 -3
  33. package/dist/src/lib/keyPair.d.ts +7 -1
  34. package/dist/src/lib/keyPair.d.ts.map +1 -1
  35. package/dist/src/lib/keyPair.js +24 -4
  36. package/dist/src/lib/oneStepPreApprovalBuilder.d.ts +51 -0
  37. package/dist/src/lib/oneStepPreApprovalBuilder.d.ts.map +1 -0
  38. package/dist/src/lib/oneStepPreApprovalBuilder.js +101 -0
  39. package/dist/src/lib/resourcesInterface.d.ts +214 -0
  40. package/dist/src/lib/resourcesInterface.d.ts.map +1 -0
  41. package/dist/src/lib/resourcesInterface.js +3 -0
  42. package/dist/src/lib/transaction/transaction.d.ts +23 -0
  43. package/dist/src/lib/transaction/transaction.d.ts.map +1 -0
  44. package/dist/src/lib/transaction/transaction.js +168 -0
  45. package/dist/src/lib/transactionBuilder.d.ts +10 -17
  46. package/dist/src/lib/transactionBuilder.d.ts.map +1 -1
  47. package/dist/src/lib/transactionBuilder.js +31 -27
  48. package/dist/src/lib/transactionBuilderFactory.d.ts +15 -3
  49. package/dist/src/lib/transactionBuilderFactory.d.ts.map +1 -1
  50. package/dist/src/lib/transactionBuilderFactory.js +56 -6
  51. package/dist/src/lib/transferAcceptanceBuilder.d.ts +59 -0
  52. package/dist/src/lib/transferAcceptanceBuilder.d.ts.map +1 -0
  53. package/dist/src/lib/transferAcceptanceBuilder.js +116 -0
  54. package/dist/src/lib/transferAcknowledgeBuilder.d.ts +72 -0
  55. package/dist/src/lib/transferAcknowledgeBuilder.d.ts.map +1 -0
  56. package/dist/src/lib/transferAcknowledgeBuilder.js +133 -0
  57. package/dist/src/lib/transferBuilder.d.ts +5 -1
  58. package/dist/src/lib/transferBuilder.d.ts.map +1 -1
  59. package/dist/src/lib/transferBuilder.js +8 -1
  60. package/dist/src/lib/transferRejectionBuilder.d.ts +59 -0
  61. package/dist/src/lib/transferRejectionBuilder.d.ts.map +1 -0
  62. package/dist/src/lib/transferRejectionBuilder.js +116 -0
  63. package/dist/src/lib/utils.d.ts +101 -0
  64. package/dist/src/lib/utils.d.ts.map +1 -1
  65. package/dist/src/lib/utils.js +258 -3
  66. package/dist/src/lib/walletInitBuilder.d.ts +101 -0
  67. package/dist/src/lib/walletInitBuilder.d.ts.map +1 -0
  68. package/dist/src/lib/walletInitBuilder.js +232 -0
  69. package/dist/src/lib/walletInitialization/walletInitTransaction.d.ts +16 -0
  70. package/dist/src/lib/walletInitialization/walletInitTransaction.d.ts.map +1 -0
  71. package/dist/src/lib/walletInitialization/walletInitTransaction.js +87 -0
  72. package/dist/test/resources.d.ts +76 -0
  73. package/dist/test/resources.d.ts.map +1 -0
  74. package/dist/test/resources.js +91 -0
  75. package/dist/test/unit/builder/oneStepEnablement/oneStepEnablementBuilder.d.ts +2 -0
  76. package/dist/test/unit/builder/oneStepEnablement/oneStepEnablementBuilder.d.ts.map +1 -0
  77. package/dist/test/unit/builder/oneStepEnablement/oneStepEnablementBuilder.js +66 -0
  78. package/dist/test/unit/builder/transferAccept/transferAcceptBuilder.d.ts +2 -0
  79. package/dist/test/unit/builder/transferAccept/transferAcceptBuilder.d.ts.map +1 -0
  80. package/dist/test/unit/builder/transferAccept/transferAcceptBuilder.js +56 -0
  81. package/dist/test/unit/builder/transferAcknowledge/transferAcknowledgeBuilder.d.ts +2 -0
  82. package/dist/test/unit/builder/transferAcknowledge/transferAcknowledgeBuilder.d.ts.map +1 -0
  83. package/dist/test/unit/builder/transferAcknowledge/transferAcknowledgeBuilder.js +32 -0
  84. package/dist/test/unit/builder/transferReject/transferRejectBuilder.d.ts +2 -0
  85. package/dist/test/unit/builder/transferReject/transferRejectBuilder.d.ts.map +1 -0
  86. package/dist/test/unit/builder/transferReject/transferRejectBuilder.js +56 -0
  87. package/dist/test/unit/builder/walletInit/walletInitBuilder.d.ts +2 -0
  88. package/dist/test/unit/builder/walletInit/walletInitBuilder.d.ts.map +1 -0
  89. package/dist/test/unit/builder/walletInit/walletInitBuilder.js +65 -0
  90. package/dist/test/unit/keyPair.d.ts +2 -0
  91. package/dist/test/unit/keyPair.d.ts.map +1 -0
  92. package/dist/test/unit/keyPair.js +72 -0
  93. package/dist/test/unit/utils.d.ts +2 -0
  94. package/dist/test/unit/utils.d.ts.map +1 -0
  95. package/dist/test/unit/utils.js +76 -0
  96. package/dist/tsconfig.tsbuildinfo +1 -1
  97. package/package.json +29 -10
  98. package/dist/src/lib/transaction.d.ts +0 -8
  99. package/dist/src/lib/transaction.d.ts.map +0 -1
  100. package/dist/src/lib/transaction.js +0 -17
@@ -0,0 +1,5 @@
1
+ import type { IPreparedTransaction } from '../../src/lib/iface';
2
+
3
+ declare module '../../resources/hash/hash.js' {
4
+ export function computePreparedTransaction(preparedTransaction: IPreparedTransaction): Promise<Uint8Array>;
5
+ }
@@ -0,0 +1,298 @@
1
+ // This is the static helper file from canton SDK, replicating it here since we won't be using the canton wallet SDK
2
+ // TODO: https://bitgoinc.atlassian.net/browse/COIN-6016
3
+ const PREPARED_TRANSACTION_HASH_PURPOSE = Uint8Array.from([0x00, 0x00, 0x00, 0x30]);
4
+ const NODE_ENCODING_VERSION = Uint8Array.from([0x01]);
5
+ const HASHING_SCHEME_VERSION = Uint8Array.from([2]);
6
+ async function sha256(message) {
7
+ const msg = typeof message === 'string' ? new TextEncoder().encode(message) : message;
8
+ return crypto.subtle.digest('SHA-256', new Uint8Array(msg)).then((hash) => new Uint8Array(hash));
9
+ }
10
+ async function mkByteArray(...args) {
11
+ const normalizedArgs = args.map((arg) => {
12
+ if (typeof arg === 'number') {
13
+ return new Uint8Array([arg]);
14
+ } else {
15
+ return arg;
16
+ }
17
+ });
18
+ let totalLength = 0;
19
+ normalizedArgs.forEach((arg) => {
20
+ totalLength += arg.length;
21
+ });
22
+ const mergedArray = new Uint8Array(totalLength);
23
+ let offset = 0;
24
+ normalizedArgs.forEach((arg) => {
25
+ mergedArray.set(arg, offset);
26
+ offset += arg.length;
27
+ });
28
+ return mergedArray;
29
+ }
30
+ async function encodeBool(value) {
31
+ return new Uint8Array([value ? 1 : 0]);
32
+ }
33
+ async function encodeInt32(value) {
34
+ const buffer = new ArrayBuffer(4);
35
+ const view = new DataView(buffer);
36
+ view.setInt32(0, value, false); // true for little-endian
37
+ return new Uint8Array(buffer);
38
+ }
39
+ async function encodeInt64(value) {
40
+ // eslint-disable-next-line no-undef
41
+ const num = typeof value === 'bigint' ? value : BigInt(value || 0);
42
+ const buffer = new ArrayBuffer(8);
43
+ const view = new DataView(buffer);
44
+ view.setBigInt64(0, num, false); // true for little-endian
45
+ return new Uint8Array(buffer);
46
+ }
47
+ async function encodeString(value = '') {
48
+ const utf8Bytes = new TextEncoder().encode(value);
49
+ return encodeBytes(utf8Bytes);
50
+ }
51
+ async function encodeBytes(value) {
52
+ const length = await encodeInt32(value.length);
53
+ return mkByteArray(length, value);
54
+ }
55
+ async function encodeHash(value) {
56
+ return value;
57
+ }
58
+ function encodeHexString(value = '') {
59
+ // Convert hex string to Uint8Array
60
+ const bytes = new Uint8Array(value.length / 2);
61
+ for (let i = 0; i < value.length; i += 2) {
62
+ bytes[i / 2] = parseInt(value.slice(i, i + 2), 16);
63
+ }
64
+ return encodeBytes(bytes);
65
+ }
66
+ // Maybe suspicious?
67
+ async function encodeOptional(value, encodeFn) {
68
+ if (value === undefined || value === null) {
69
+ return new Uint8Array([0]); // Return empty array for undefined fields
70
+ } else {
71
+ return mkByteArray(1, await encodeFn(value));
72
+ }
73
+ }
74
+ // Maybe suspicious?
75
+ async function encodeProtoOptional(parentValue, fieldName, value, encodeFn) {
76
+ if (parentValue && parentValue[fieldName] !== undefined) {
77
+ return mkByteArray(1, await encodeFn(value));
78
+ } else {
79
+ return new Uint8Array([0]); // Return empty array for undefined fields
80
+ }
81
+ }
82
+ async function encodeRepeated(values = [], encodeFn) {
83
+ const length = await encodeInt32(values.length);
84
+ const encodedValues = await Promise.all(values.map(encodeFn));
85
+ return mkByteArray(length, ...encodedValues);
86
+ }
87
+ function findSeed(nodeId, nodeSeeds) {
88
+ const seed = nodeSeeds.find((seed) => seed.nodeId.toString() === nodeId)?.seed;
89
+ return seed;
90
+ }
91
+ async function encodeIdentifier(identifier) {
92
+ return mkByteArray(
93
+ await encodeString(identifier.packageId),
94
+ await encodeRepeated(identifier.moduleName.split('.'), encodeString),
95
+ await encodeRepeated(identifier.entityName.split('.'), encodeString)
96
+ );
97
+ }
98
+ async function encodeMetadata(metadata) {
99
+ return mkByteArray(
100
+ Uint8Array.from([0x01]),
101
+ await encodeRepeated(metadata.submitterInfo?.actAs, encodeString),
102
+ await encodeString(metadata.submitterInfo?.commandId),
103
+ await encodeString(metadata.transactionUuid),
104
+ await encodeInt32(metadata.mediatorGroup),
105
+ await encodeString(metadata.synchronizerId),
106
+ await encodeProtoOptional(metadata, 'minLedgerEffectiveTime', metadata.minLedgerEffectiveTime, encodeInt64),
107
+ await encodeProtoOptional(metadata, 'maxLedgerEffectiveTime', metadata.maxLedgerEffectiveTime, encodeInt64),
108
+ await encodeInt64(metadata.preparationTime),
109
+ await encodeRepeated(metadata.inputContracts, encodeInputContract)
110
+ );
111
+ }
112
+ async function encodeCreateNode(create, nodeId, nodeSeeds) {
113
+ return create
114
+ ? mkByteArray(
115
+ NODE_ENCODING_VERSION,
116
+ await encodeString(create.lfVersion),
117
+ 0 /** Create node tag */,
118
+ await encodeOptional(findSeed(nodeId, nodeSeeds), encodeHash),
119
+ await encodeHexString(create.contractId),
120
+ await encodeString(create.packageName),
121
+ await encodeIdentifier(create.templateId),
122
+ await encodeValue(create.argument),
123
+ await encodeRepeated(create.signatories, encodeString),
124
+ await encodeRepeated(create.stakeholders, encodeString)
125
+ )
126
+ : mkByteArray();
127
+ }
128
+ async function encodeExerciseNode(exercise, nodeId, nodesDict, nodeSeeds) {
129
+ return mkByteArray(
130
+ NODE_ENCODING_VERSION,
131
+ await encodeString(exercise.lfVersion),
132
+ 1 /** Exercise node tag */,
133
+ await encodeHash(findSeed(nodeId, nodeSeeds)),
134
+ await encodeHexString(exercise.contractId),
135
+ await encodeString(exercise.packageName),
136
+ await encodeIdentifier(exercise.templateId),
137
+ await encodeRepeated(exercise.signatories, encodeString),
138
+ await encodeRepeated(exercise.stakeholders, encodeString),
139
+ await encodeRepeated(exercise.actingParties, encodeString),
140
+ await encodeProtoOptional(exercise, 'interfaceId', exercise.interfaceId, encodeIdentifier),
141
+ await encodeString(exercise.choiceId),
142
+ await encodeValue(exercise.chosenValue),
143
+ await encodeBool(exercise.consuming),
144
+ await encodeProtoOptional(exercise, 'exerciseResult', exercise.exerciseResult, encodeValue),
145
+ await encodeRepeated(exercise.choiceObservers, encodeString),
146
+ await encodeRepeated(exercise.children, encodeNodeId(nodesDict, nodeSeeds))
147
+ );
148
+ }
149
+ async function encodeFetchNode(fetch) {
150
+ return mkByteArray(
151
+ NODE_ENCODING_VERSION,
152
+ await encodeString(fetch.lfVersion),
153
+ 2 /** Fetch node tag */,
154
+ await encodeHexString(fetch.contractId),
155
+ await encodeString(fetch.packageName),
156
+ await encodeIdentifier(fetch.templateId),
157
+ await encodeRepeated(fetch.signatories, encodeString),
158
+ await encodeRepeated(fetch.stakeholders, encodeString),
159
+ await encodeProtoOptional(fetch, 'interfaceId', fetch.interfaceId, encodeIdentifier),
160
+ await encodeRepeated(fetch.actingParties, encodeString)
161
+ );
162
+ }
163
+ async function encodeRollbackNode(rollback, nodesDict, nodeSeeds) {
164
+ return mkByteArray(
165
+ NODE_ENCODING_VERSION,
166
+ 3 /** Rollback node tag */,
167
+ await encodeRepeated(rollback.children, encodeNodeId(nodesDict, nodeSeeds))
168
+ );
169
+ }
170
+ async function encodeInputContract(contract) {
171
+ if (contract.contract.oneofKind === 'v1')
172
+ return mkByteArray(
173
+ await encodeInt64(contract.createdAt),
174
+ await sha256(await encodeCreateNode(contract.contract.v1, 'unused_node_id', []))
175
+ );
176
+ else throw new Error('Unsupported contract version');
177
+ }
178
+ async function encodeValue(value) {
179
+ if (value.sum.oneofKind === 'unit') {
180
+ return Uint8Array.from([0]); // Unit value
181
+ } else if (value.sum.oneofKind === 'bool') {
182
+ return mkByteArray(Uint8Array.from([0x01]), await encodeBool(value.sum.bool));
183
+ } else if (value.sum.oneofKind === 'int64') {
184
+ return mkByteArray(Uint8Array.from([0x02]), await encodeInt64(parseInt(value.sum.int64, 10)));
185
+ } else if (value.sum.oneofKind === 'numeric') {
186
+ return mkByteArray(Uint8Array.from([0x03]), await encodeString(value.sum.numeric));
187
+ } else if (value.sum.oneofKind === 'timestamp') {
188
+ // eslint-disable-next-line no-undef
189
+ return mkByteArray(Uint8Array.from([0x04]), await encodeInt64(BigInt(value.sum.timestamp)));
190
+ } else if (value.sum.oneofKind === 'date') {
191
+ return mkByteArray(Uint8Array.from([0x05]), await encodeInt32(value.sum.date));
192
+ } else if (value.sum.oneofKind === 'party') {
193
+ return mkByteArray(Uint8Array.from([0x06]), await encodeString(value.sum.party));
194
+ } else if (value.sum.oneofKind === 'text') {
195
+ return mkByteArray(Uint8Array.from([0x07]), await encodeString(value.sum.text));
196
+ } else if (value.sum.oneofKind === 'contractId') {
197
+ return mkByteArray(Uint8Array.from([0x08]), await encodeHexString(value.sum.contractId));
198
+ } else if (value.sum.oneofKind === 'optional') {
199
+ return mkByteArray(
200
+ Uint8Array.from([0x09]),
201
+ await encodeProtoOptional(value.sum.optional, 'value', value.sum.optional.value, encodeValue)
202
+ );
203
+ } else if (value.sum.oneofKind === 'list') {
204
+ return mkByteArray(Uint8Array.from([0x0a]), await encodeRepeated(value.sum.list.elements, encodeValue));
205
+ } else if (value.sum.oneofKind === 'textMap') {
206
+ return mkByteArray(Uint8Array.from([0x0b]), await encodeRepeated(value.sum.textMap?.entries, encodeTextMapEntry));
207
+ } else if (value.sum.oneofKind === 'record') {
208
+ return mkByteArray(
209
+ Uint8Array.from([0x0c]),
210
+ await encodeProtoOptional(value.sum.record, 'recordId', value.sum.record.recordId, encodeIdentifier),
211
+ await encodeRepeated(value.sum.record.fields, encodeRecordField)
212
+ );
213
+ } else if (value.sum.oneofKind === 'variant') {
214
+ return mkByteArray(
215
+ Uint8Array.from([0x0d]),
216
+ await encodeProtoOptional(value.sum.variant, 'variantId', value.sum.variant.variantId, encodeIdentifier),
217
+ await encodeString(value.sum.variant.constructor),
218
+ await encodeValue(value.sum.variant.value)
219
+ );
220
+ } else if (value.sum.oneofKind === 'enum') {
221
+ return mkByteArray(
222
+ Uint8Array.from([0x0e]),
223
+ await encodeProtoOptional(value.sum.enum, 'enumId', value.sum.enum.enumId, encodeIdentifier),
224
+ await encodeString(value.sum.enum.constructor)
225
+ );
226
+ } else if (value.sum.oneofKind === 'genMap') {
227
+ return mkByteArray(Uint8Array.from([0x0f]), await encodeRepeated(value.sum.genMap?.entries, encodeGenMapEntry));
228
+ }
229
+ throw new Error('Unsupported value type: ' + JSON.stringify(value));
230
+ }
231
+ async function encodeTextMapEntry(entry) {
232
+ return mkByteArray(await encodeString(entry.key), await encodeValue(entry.value));
233
+ }
234
+ async function encodeRecordField(field) {
235
+ return mkByteArray(await encodeOptional(field.label, encodeString), await encodeValue(field.value));
236
+ }
237
+ async function encodeGenMapEntry(entry) {
238
+ return mkByteArray(await encodeValue(entry.key), await encodeValue(entry.value));
239
+ }
240
+ function encodeNodeId(nodesDict, nodeSeeds) {
241
+ return async (nodeId) => {
242
+ const node = nodesDict[nodeId];
243
+ if (!node) {
244
+ throw new Error(`Node with ID ${nodeId} not found in transaction`);
245
+ }
246
+ const encodedNode = await encodeNode(node, nodesDict, nodeSeeds);
247
+ return sha256(encodedNode);
248
+ };
249
+ }
250
+ async function encodeNode(node, nodesDict, nodeSeeds) {
251
+ if (node.versionedNode.oneofKind === 'v1') {
252
+ if (node.versionedNode.v1.nodeType.oneofKind === 'create') {
253
+ return encodeCreateNode(node.versionedNode.v1.nodeType.create, node.nodeId, nodeSeeds);
254
+ } else if (node.versionedNode.v1.nodeType.oneofKind === 'exercise') {
255
+ return encodeExerciseNode(node.versionedNode.v1.nodeType.exercise, node.nodeId, nodesDict, nodeSeeds);
256
+ } else if (node.versionedNode.v1.nodeType.oneofKind === 'fetch') {
257
+ return encodeFetchNode(node.versionedNode.v1.nodeType.fetch);
258
+ } else if (node.versionedNode.v1.nodeType.oneofKind === 'rollback') {
259
+ return encodeRollbackNode(node.versionedNode.v1.nodeType.rollback, nodesDict, nodeSeeds);
260
+ }
261
+ throw new Error('Unsupported node type');
262
+ } else {
263
+ throw new Error(`Unsupported node version`);
264
+ }
265
+ }
266
+ function createNodesDict(preparedTransaction) {
267
+ const nodesDict = {};
268
+ const nodes = preparedTransaction.transaction?.nodes || [];
269
+ for (const node of nodes) {
270
+ nodesDict[node.nodeId] = node;
271
+ }
272
+ return nodesDict;
273
+ }
274
+ async function encodeTransaction(transaction, nodesDict, nodeSeeds) {
275
+ return mkByteArray(
276
+ await encodeString(transaction.version),
277
+ await encodeRepeated(transaction.roots, encodeNodeId(nodesDict, nodeSeeds))
278
+ );
279
+ }
280
+ async function hashTransaction(transaction, nodesDict) {
281
+ const encodedTransaction = await encodeTransaction(transaction, nodesDict, transaction.nodeSeeds);
282
+ const hash = await sha256(await mkByteArray(PREPARED_TRANSACTION_HASH_PURPOSE, encodedTransaction));
283
+ return hash;
284
+ }
285
+ async function hashMetadata(metadata) {
286
+ const hash = await sha256(await mkByteArray(PREPARED_TRANSACTION_HASH_PURPOSE, await encodeMetadata(metadata)));
287
+ return hash;
288
+ }
289
+ async function encodePreparedTransaction(preparedTransaction) {
290
+ const nodesDict = createNodesDict(preparedTransaction);
291
+ const transactionHash = await hashTransaction(preparedTransaction.transaction, nodesDict);
292
+ const metadataHash = await hashMetadata(preparedTransaction.metadata);
293
+ return mkByteArray(PREPARED_TRANSACTION_HASH_PURPOSE, HASHING_SCHEME_VERSION, transactionHash, metadataHash);
294
+ }
295
+ async function computePreparedTransaction(preparedTransaction) {
296
+ return sha256(await encodePreparedTransaction(preparedTransaction));
297
+ }
298
+ module.exports.computePreparedTransaction = computePreparedTransaction;
@@ -0,0 +1,100 @@
1
+ const { MessageType, UnknownFieldHandler, reflectionMergePartial, WireType } = require('@protobuf-ts/runtime');
2
+ const { DamlTransaction_Node } = require('./damlTransactionNode.js');
3
+ const { DamlTransaction_NodeSeed } = require('./damlTransactionNodeSeed.js');
4
+
5
+ class DamlTransaction$Type extends MessageType {
6
+ constructor() {
7
+ super('com.daml.ledger.api.v2.interactive.DamlTransaction', [
8
+ {
9
+ no: 1,
10
+ name: 'version',
11
+ kind: 'scalar',
12
+ T: 9 /*ScalarType.STRING*/,
13
+ },
14
+ {
15
+ no: 2,
16
+ name: 'roots',
17
+ kind: 'scalar',
18
+ repeat: 2 /*RepeatType.UNPACKED*/,
19
+ T: 9 /*ScalarType.STRING*/,
20
+ },
21
+ {
22
+ no: 3,
23
+ name: 'nodes',
24
+ kind: 'message',
25
+ repeat: 2 /*RepeatType.UNPACKED*/,
26
+ T: () => DamlTransaction_Node,
27
+ },
28
+ {
29
+ no: 4,
30
+ name: 'node_seeds',
31
+ kind: 'message',
32
+ repeat: 2 /*RepeatType.UNPACKED*/,
33
+ T: () => DamlTransaction_NodeSeed,
34
+ },
35
+ ]);
36
+ }
37
+ create(value) {
38
+ const message = Object.create(this.messagePrototype);
39
+ message.version = '';
40
+ message.roots = [];
41
+ message.nodes = [];
42
+ message.nodeSeeds = [];
43
+ if (value !== undefined) reflectionMergePartial(this, message, value);
44
+ return message;
45
+ }
46
+ internalBinaryRead(reader, length, options, target) {
47
+ const message = target ?? this.create(),
48
+ end = reader.pos + length;
49
+ while (reader.pos < end) {
50
+ const [fieldNo, wireType] = reader.tag();
51
+ switch (fieldNo) {
52
+ case /* string version */ 1:
53
+ message.version = reader.string();
54
+ break;
55
+ case /* repeated string roots */ 2:
56
+ message.roots.push(reader.string());
57
+ break;
58
+ case /* repeated com.daml.ledger.api.v2.interactive.DamlTransaction.Node nodes */ 3:
59
+ message.nodes.push(DamlTransaction_Node.internalBinaryRead(reader, reader.uint32(), options));
60
+ break;
61
+ case /* repeated com.daml.ledger.api.v2.interactive.DamlTransaction.NodeSeed node_seeds */ 4:
62
+ message.nodeSeeds.push(DamlTransaction_NodeSeed.internalBinaryRead(reader, reader.uint32(), options));
63
+ break;
64
+ default:
65
+ const u = options.readUnknownField;
66
+ if (u === 'throw') throw new Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
67
+ const d = reader.skip(wireType);
68
+ if (u !== false) (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
69
+ }
70
+ }
71
+ return message;
72
+ }
73
+ internalBinaryWrite(message, writer, options) {
74
+ /* string version = 1; */
75
+ if (message.version !== '') writer.tag(1, WireType.LengthDelimited).string(message.version);
76
+ /* repeated string roots = 2; */
77
+ for (let i = 0; i < message.roots.length; i++) writer.tag(2, WireType.LengthDelimited).string(message.roots[i]);
78
+ /* repeated com.daml.ledger.api.v2.interactive.DamlTransaction.Node nodes = 3; */
79
+ for (let i = 0; i < message.nodes.length; i++)
80
+ DamlTransaction_Node.internalBinaryWrite(
81
+ message.nodes[i],
82
+ writer.tag(3, WireType.LengthDelimited).fork(),
83
+ options
84
+ ).join();
85
+ /* repeated com.daml.ledger.api.v2.interactive.DamlTransaction.NodeSeed node_seeds = 4; */
86
+ for (let i = 0; i < message.nodeSeeds.length; i++)
87
+ DamlTransaction_NodeSeed.internalBinaryWrite(
88
+ message.nodeSeeds[i],
89
+ writer.tag(4, WireType.LengthDelimited).fork(),
90
+ options
91
+ ).join();
92
+ const u = options.writeUnknownFields;
93
+ if (u !== false) (u === true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
94
+ return writer;
95
+ }
96
+ }
97
+ /**
98
+ * @generated MessageType for protobuf message com.daml.ledger.api.v2.interactive.DamlTransaction
99
+ */
100
+ module.exports.DamlTransaction = new DamlTransaction$Type();
@@ -0,0 +1,71 @@
1
+ const { MessageType, UnknownFieldHandler, reflectionMergePartial, WireType } = require('@protobuf-ts/runtime');
2
+ const { Node } = require('./node/node.js');
3
+
4
+ class DamlTransaction_Node$Type extends MessageType {
5
+ constructor() {
6
+ super('com.daml.ledger.api.v2.interactive.DamlTransaction.Node', [
7
+ {
8
+ no: 1,
9
+ name: 'node_id',
10
+ kind: 'scalar',
11
+ T: 9 /*ScalarType.STRING*/,
12
+ },
13
+ {
14
+ no: 1000,
15
+ name: 'v1',
16
+ kind: 'message',
17
+ oneof: 'versionedNode',
18
+ T: () => Node,
19
+ },
20
+ ]);
21
+ }
22
+ create(value) {
23
+ const message = Object.create(this.messagePrototype);
24
+ message.nodeId = '';
25
+ message.versionedNode = { oneofKind: undefined };
26
+ if (value !== undefined) reflectionMergePartial(this, message, value);
27
+ return message;
28
+ }
29
+ internalBinaryRead(reader, length, options, target) {
30
+ const message = target ?? this.create(),
31
+ end = reader.pos + length;
32
+ while (reader.pos < end) {
33
+ const [fieldNo, wireType] = reader.tag();
34
+ switch (fieldNo) {
35
+ case /* string node_id */ 1:
36
+ message.nodeId = reader.string();
37
+ break;
38
+ case /* com.daml.ledger.api.v2.interactive.transaction.v1.Node v1 */ 1000:
39
+ message.versionedNode = {
40
+ oneofKind: 'v1',
41
+ v1: Node.internalBinaryRead(reader, reader.uint32(), options, message.versionedNode.v1),
42
+ };
43
+ break;
44
+ default:
45
+ const u = options.readUnknownField;
46
+ if (u === 'throw') throw new Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
47
+ const d = reader.skip(wireType);
48
+ if (u !== false) (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
49
+ }
50
+ }
51
+ return message;
52
+ }
53
+ internalBinaryWrite(message, writer, options) {
54
+ /* string node_id = 1; */
55
+ if (message.nodeId !== '') writer.tag(1, WireType.LengthDelimited).string(message.nodeId);
56
+ /* com.daml.ledger.api.v2.interactive.transaction.v1.Node v1 = 1000; */
57
+ if (message.versionedNode.oneofKind === 'v1')
58
+ Node.internalBinaryWrite(
59
+ message.versionedNode.v1,
60
+ writer.tag(1000, WireType.LengthDelimited).fork(),
61
+ options
62
+ ).join();
63
+ const u = options.writeUnknownFields;
64
+ if (u !== false) (u === true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
65
+ return writer;
66
+ }
67
+ }
68
+ /**
69
+ * @generated MessageType for protobuf message com.daml.ledger.api.v2.interactive.DamlTransaction.Node
70
+ */
71
+ module.exports.DamlTransaction_Node = new DamlTransaction_Node$Type();
@@ -0,0 +1,56 @@
1
+ const { MessageType, UnknownFieldHandler, reflectionMergePartial, WireType } = require('@protobuf-ts/runtime');
2
+
3
+ class DamlTransaction_NodeSeed$Type extends MessageType {
4
+ constructor() {
5
+ super('com.daml.ledger.api.v2.interactive.DamlTransaction.NodeSeed', [
6
+ {
7
+ no: 1,
8
+ name: 'node_id',
9
+ kind: 'scalar',
10
+ T: 5 /*ScalarType.INT32*/,
11
+ },
12
+ { no: 2, name: 'seed', kind: 'scalar', T: 12 /*ScalarType.BYTES*/ },
13
+ ]);
14
+ }
15
+ create(value) {
16
+ const message = Object.create(this.messagePrototype);
17
+ message.nodeId = 0;
18
+ message.seed = new Uint8Array(0);
19
+ if (value !== undefined) reflectionMergePartial(this, message, value);
20
+ return message;
21
+ }
22
+ internalBinaryRead(reader, length, options, target) {
23
+ const message = target ?? this.create(),
24
+ end = reader.pos + length;
25
+ while (reader.pos < end) {
26
+ const [fieldNo, wireType] = reader.tag();
27
+ switch (fieldNo) {
28
+ case /* int32 node_id */ 1:
29
+ message.nodeId = reader.int32();
30
+ break;
31
+ case /* bytes seed */ 2:
32
+ message.seed = reader.bytes();
33
+ break;
34
+ default:
35
+ const u = options.readUnknownField;
36
+ if (u === 'throw') throw new Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
37
+ const d = reader.skip(wireType);
38
+ if (u !== false) (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
39
+ }
40
+ }
41
+ return message;
42
+ }
43
+ internalBinaryWrite(message, writer, options) {
44
+ /* int32 node_id = 1; */
45
+ if (message.nodeId !== 0) writer.tag(1, WireType.Varint).int32(message.nodeId);
46
+ /* bytes seed = 2; */
47
+ if (message.seed.length) writer.tag(2, WireType.LengthDelimited).bytes(message.seed);
48
+ const u = options.writeUnknownFields;
49
+ if (u !== false) (u === true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
50
+ return writer;
51
+ }
52
+ }
53
+ /**
54
+ * @generated MessageType for protobuf message com.daml.ledger.api.v2.interactive.DamlTransaction.NodeSeed
55
+ */
56
+ module.exports.DamlTransaction_NodeSeed = new DamlTransaction_NodeSeed$Type();
@@ -0,0 +1,53 @@
1
+ const { MessageType, UnknownFieldHandler, reflectionMergePartial, WireType } = require('@protobuf-ts/runtime');
2
+ const { Value } = require('../node/value.js');
3
+ const { GlobalKey } = require('../node/globalKey.js');
4
+
5
+ class Metadata_GlobalKeyMappingEntry$Type extends MessageType {
6
+ constructor() {
7
+ super('com.daml.ledger.api.v2.interactive.Metadata.GlobalKeyMappingEntry', [
8
+ { no: 1, name: 'key', kind: 'message', T: () => GlobalKey },
9
+ { no: 2, name: 'value', kind: 'message', T: () => Value },
10
+ ]);
11
+ }
12
+ create(value) {
13
+ const message = Object.create(this.messagePrototype);
14
+ if (value !== undefined) reflectionMergePartial(this, message, value);
15
+ return message;
16
+ }
17
+ internalBinaryRead(reader, length, options, target) {
18
+ const message = target ?? this.create(),
19
+ end = reader.pos + length;
20
+ while (reader.pos < end) {
21
+ const [fieldNo, wireType] = reader.tag();
22
+ switch (fieldNo) {
23
+ case /* com.daml.ledger.api.v2.interactive.GlobalKey key */ 1:
24
+ message.key = GlobalKey.internalBinaryRead(reader, reader.uint32(), options, message.key);
25
+ break;
26
+ case /* optional com.daml.ledger.api.v2.Value value */ 2:
27
+ message.value = Value.internalBinaryRead(reader, reader.uint32(), options, message.value);
28
+ break;
29
+ default:
30
+ const u = options.readUnknownField;
31
+ if (u === 'throw') throw new Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
32
+ const d = reader.skip(wireType);
33
+ if (u !== false) (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
34
+ }
35
+ }
36
+ return message;
37
+ }
38
+ internalBinaryWrite(message, writer, options) {
39
+ /* com.daml.ledger.api.v2.interactive.GlobalKey key = 1; */
40
+ if (message.key)
41
+ GlobalKey.internalBinaryWrite(message.key, writer.tag(1, WireType.LengthDelimited).fork(), options).join();
42
+ /* optional com.daml.ledger.api.v2.Value value = 2; */
43
+ if (message.value)
44
+ Value.internalBinaryWrite(message.value, writer.tag(2, WireType.LengthDelimited).fork(), options).join();
45
+ const u = options.writeUnknownFields;
46
+ if (u !== false) (u === true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
47
+ return writer;
48
+ }
49
+ }
50
+ /**
51
+ * @generated MessageType for protobuf message com.daml.ledger.api.v2.interactive.Metadata.GlobalKeyMappingEntry
52
+ */
53
+ module.exports.Metadata_GlobalKeyMappingEntry = new Metadata_GlobalKeyMappingEntry$Type();
@@ -0,0 +1,80 @@
1
+ const { MessageType, UnknownFieldHandler, reflectionMergePartial, WireType } = require('@protobuf-ts/runtime');
2
+ const { Create } = require('../node/node.js');
3
+
4
+ class Metadata_InputContract$Type extends MessageType {
5
+ constructor() {
6
+ super('com.daml.ledger.api.v2.interactive.Metadata.InputContract', [
7
+ {
8
+ no: 1,
9
+ name: 'v1',
10
+ kind: 'message',
11
+ oneof: 'contract',
12
+ T: () => Create,
13
+ },
14
+ {
15
+ no: 1000,
16
+ name: 'created_at',
17
+ kind: 'scalar',
18
+ T: 4 /*ScalarType.UINT64*/,
19
+ L: 0 /*LongType.BIGINT*/,
20
+ },
21
+ {
22
+ no: 1002,
23
+ name: 'event_blob',
24
+ kind: 'scalar',
25
+ T: 12 /*ScalarType.BYTES*/,
26
+ },
27
+ ]);
28
+ }
29
+ create(value) {
30
+ const message = Object.create(this.messagePrototype);
31
+ message.contract = { oneofKind: undefined };
32
+ message.createdAt = 0n;
33
+ message.eventBlob = new Uint8Array(0);
34
+ if (value !== undefined) reflectionMergePartial(this, message, value);
35
+ return message;
36
+ }
37
+ internalBinaryRead(reader, length, options, target) {
38
+ const message = target ?? this.create(),
39
+ end = reader.pos + length;
40
+ while (reader.pos < end) {
41
+ const [fieldNo, wireType] = reader.tag();
42
+ switch (fieldNo) {
43
+ case /* com.daml.ledger.api.v2.interactive.transaction.v1.Create v1 */ 1:
44
+ message.contract = {
45
+ oneofKind: 'v1',
46
+ v1: Create.internalBinaryRead(reader, reader.uint32(), options, message.contract.v1),
47
+ };
48
+ break;
49
+ case /* uint64 created_at */ 1000:
50
+ message.createdAt = reader.uint64().toBigInt();
51
+ break;
52
+ case /* bytes event_blob */ 1002:
53
+ message.eventBlob = reader.bytes();
54
+ break;
55
+ default:
56
+ const u = options.readUnknownField;
57
+ if (u === 'throw') throw new Error(`Unknown field ${fieldNo} (wire type ${wireType}) for ${this.typeName}`);
58
+ const d = reader.skip(wireType);
59
+ if (u !== false) (u === true ? UnknownFieldHandler.onRead : u)(this.typeName, message, fieldNo, wireType, d);
60
+ }
61
+ }
62
+ return message;
63
+ }
64
+ internalBinaryWrite(message, writer, options) {
65
+ /* com.daml.ledger.api.v2.interactive.transaction.v1.Create v1 = 1; */
66
+ if (message.contract.oneofKind === 'v1')
67
+ Create.internalBinaryWrite(message.contract.v1, writer.tag(1, WireType.LengthDelimited).fork(), options).join();
68
+ /* uint64 created_at = 1000; */
69
+ if (message.createdAt !== 0n) writer.tag(1000, WireType.Varint).uint64(message.createdAt);
70
+ /* bytes event_blob = 1002; */
71
+ if (message.eventBlob.length) writer.tag(1002, WireType.LengthDelimited).bytes(message.eventBlob);
72
+ const u = options.writeUnknownFields;
73
+ if (u !== false) (u === true ? UnknownFieldHandler.onWrite : u)(this.typeName, message, writer);
74
+ return writer;
75
+ }
76
+ }
77
+ /**
78
+ * @generated MessageType for protobuf message com.daml.ledger.api.v2.interactive.Metadata.InputContract
79
+ */
80
+ module.exports.Metadata_InputContract = new Metadata_InputContract$Type();