@bitgo-beta/sdk-coin-xdc 1.0.1-beta.885 → 1.0.1-beta.887

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.
@@ -0,0 +1,431 @@
1
+ [
2
+ {
3
+ "constant": false,
4
+ "inputs": [
5
+ {
6
+ "name": "kychash",
7
+ "type": "string"
8
+ }
9
+ ],
10
+ "name": "uploadKYC",
11
+ "outputs": [],
12
+ "payable": false,
13
+ "stateMutability": "nonpayable",
14
+ "type": "function"
15
+ },
16
+ {
17
+ "constant": false,
18
+ "inputs": [
19
+ {
20
+ "name": "_candidate",
21
+ "type": "address"
22
+ }
23
+ ],
24
+ "name": "propose",
25
+ "outputs": [],
26
+ "payable": true,
27
+ "stateMutability": "payable",
28
+ "type": "function"
29
+ },
30
+ {
31
+ "constant": false,
32
+ "inputs": [
33
+ {
34
+ "name": "_candidate",
35
+ "type": "address"
36
+ }
37
+ ],
38
+ "name": "vote",
39
+ "outputs": [],
40
+ "payable": true,
41
+ "stateMutability": "payable",
42
+ "type": "function"
43
+ },
44
+ {
45
+ "constant": false,
46
+ "inputs": [
47
+ {
48
+ "name": "_candidate",
49
+ "type": "address"
50
+ },
51
+ {
52
+ "name": "_cap",
53
+ "type": "uint256"
54
+ }
55
+ ],
56
+ "name": "unvote",
57
+ "outputs": [],
58
+ "payable": false,
59
+ "stateMutability": "nonpayable",
60
+ "type": "function"
61
+ },
62
+ {
63
+ "constant": false,
64
+ "inputs": [
65
+ {
66
+ "name": "_candidate",
67
+ "type": "address"
68
+ }
69
+ ],
70
+ "name": "resign",
71
+ "outputs": [],
72
+ "payable": false,
73
+ "stateMutability": "nonpayable",
74
+ "type": "function"
75
+ },
76
+ {
77
+ "constant": false,
78
+ "inputs": [
79
+ {
80
+ "name": "_blockNumber",
81
+ "type": "uint256"
82
+ },
83
+ {
84
+ "name": "_index",
85
+ "type": "uint256"
86
+ }
87
+ ],
88
+ "name": "withdraw",
89
+ "outputs": [],
90
+ "payable": false,
91
+ "stateMutability": "nonpayable",
92
+ "type": "function"
93
+ },
94
+ {
95
+ "constant": true,
96
+ "inputs": [],
97
+ "name": "getCandidates",
98
+ "outputs": [
99
+ {
100
+ "name": "",
101
+ "type": "address[]"
102
+ }
103
+ ],
104
+ "payable": false,
105
+ "stateMutability": "view",
106
+ "type": "function"
107
+ },
108
+ {
109
+ "constant": true,
110
+ "inputs": [
111
+ {
112
+ "name": "_candidate",
113
+ "type": "address"
114
+ }
115
+ ],
116
+ "name": "getCandidateCap",
117
+ "outputs": [
118
+ {
119
+ "name": "",
120
+ "type": "uint256"
121
+ }
122
+ ],
123
+ "payable": false,
124
+ "stateMutability": "view",
125
+ "type": "function"
126
+ },
127
+ {
128
+ "constant": true,
129
+ "inputs": [
130
+ {
131
+ "name": "_candidate",
132
+ "type": "address"
133
+ }
134
+ ],
135
+ "name": "getCandidateOwner",
136
+ "outputs": [
137
+ {
138
+ "name": "",
139
+ "type": "address"
140
+ }
141
+ ],
142
+ "payable": false,
143
+ "stateMutability": "view",
144
+ "type": "function"
145
+ },
146
+ {
147
+ "constant": true,
148
+ "inputs": [
149
+ {
150
+ "name": "_candidate",
151
+ "type": "address"
152
+ },
153
+ {
154
+ "name": "_voter",
155
+ "type": "address"
156
+ }
157
+ ],
158
+ "name": "getVoterCap",
159
+ "outputs": [
160
+ {
161
+ "name": "",
162
+ "type": "uint256"
163
+ }
164
+ ],
165
+ "payable": false,
166
+ "stateMutability": "view",
167
+ "type": "function"
168
+ },
169
+ {
170
+ "constant": true,
171
+ "inputs": [
172
+ {
173
+ "name": "_candidate",
174
+ "type": "address"
175
+ }
176
+ ],
177
+ "name": "getVoters",
178
+ "outputs": [
179
+ {
180
+ "name": "",
181
+ "type": "address[]"
182
+ }
183
+ ],
184
+ "payable": false,
185
+ "stateMutability": "view",
186
+ "type": "function"
187
+ },
188
+ {
189
+ "constant": true,
190
+ "inputs": [
191
+ {
192
+ "name": "_candidate",
193
+ "type": "address"
194
+ }
195
+ ],
196
+ "name": "isCandidate",
197
+ "outputs": [
198
+ {
199
+ "name": "",
200
+ "type": "bool"
201
+ }
202
+ ],
203
+ "payable": false,
204
+ "stateMutability": "view",
205
+ "type": "function"
206
+ },
207
+ {
208
+ "constant": true,
209
+ "inputs": [
210
+ {
211
+ "name": "_address",
212
+ "type": "address"
213
+ }
214
+ ],
215
+ "name": "getLatestKYC",
216
+ "outputs": [
217
+ {
218
+ "name": "",
219
+ "type": "string"
220
+ }
221
+ ],
222
+ "payable": false,
223
+ "stateMutability": "view",
224
+ "type": "function"
225
+ },
226
+ {
227
+ "constant": true,
228
+ "inputs": [
229
+ {
230
+ "name": "_address",
231
+ "type": "address"
232
+ }
233
+ ],
234
+ "name": "getHashCount",
235
+ "outputs": [
236
+ {
237
+ "name": "",
238
+ "type": "uint256"
239
+ }
240
+ ],
241
+ "payable": false,
242
+ "stateMutability": "view",
243
+ "type": "function"
244
+ },
245
+ {
246
+ "constant": true,
247
+ "inputs": [],
248
+ "name": "getOwnerCount",
249
+ "outputs": [
250
+ {
251
+ "name": "",
252
+ "type": "uint256"
253
+ }
254
+ ],
255
+ "payable": false,
256
+ "stateMutability": "view",
257
+ "type": "function"
258
+ },
259
+ {
260
+ "constant": false,
261
+ "inputs": [
262
+ {
263
+ "name": "_invalidCandidate",
264
+ "type": "address"
265
+ }
266
+ ],
267
+ "name": "voteInvalidKYC",
268
+ "outputs": [],
269
+ "payable": false,
270
+ "stateMutability": "nonpayable",
271
+ "type": "function"
272
+ },
273
+ {
274
+ "constant": true,
275
+ "inputs": [
276
+ {
277
+ "name": "_invalidCandidate",
278
+ "type": "address"
279
+ }
280
+ ],
281
+ "name": "invalidPercent",
282
+ "outputs": [
283
+ {
284
+ "name": "",
285
+ "type": "uint256"
286
+ }
287
+ ],
288
+ "payable": false,
289
+ "stateMutability": "view",
290
+ "type": "function"
291
+ },
292
+ {
293
+ "anonymous": false,
294
+ "inputs": [
295
+ {
296
+ "indexed": false,
297
+ "name": "_voter",
298
+ "type": "address"
299
+ },
300
+ {
301
+ "indexed": false,
302
+ "name": "_candidate",
303
+ "type": "address"
304
+ },
305
+ {
306
+ "indexed": false,
307
+ "name": "_cap",
308
+ "type": "uint256"
309
+ }
310
+ ],
311
+ "name": "Vote",
312
+ "type": "event"
313
+ },
314
+ {
315
+ "anonymous": false,
316
+ "inputs": [
317
+ {
318
+ "indexed": false,
319
+ "name": "_voter",
320
+ "type": "address"
321
+ },
322
+ {
323
+ "indexed": false,
324
+ "name": "_candidate",
325
+ "type": "address"
326
+ },
327
+ {
328
+ "indexed": false,
329
+ "name": "_cap",
330
+ "type": "uint256"
331
+ }
332
+ ],
333
+ "name": "Unvote",
334
+ "type": "event"
335
+ },
336
+ {
337
+ "anonymous": false,
338
+ "inputs": [
339
+ {
340
+ "indexed": false,
341
+ "name": "_owner",
342
+ "type": "address"
343
+ },
344
+ {
345
+ "indexed": false,
346
+ "name": "_candidate",
347
+ "type": "address"
348
+ },
349
+ {
350
+ "indexed": false,
351
+ "name": "_cap",
352
+ "type": "uint256"
353
+ }
354
+ ],
355
+ "name": "Propose",
356
+ "type": "event"
357
+ },
358
+ {
359
+ "anonymous": false,
360
+ "inputs": [
361
+ {
362
+ "indexed": false,
363
+ "name": "_owner",
364
+ "type": "address"
365
+ },
366
+ {
367
+ "indexed": false,
368
+ "name": "_candidate",
369
+ "type": "address"
370
+ }
371
+ ],
372
+ "name": "Resign",
373
+ "type": "event"
374
+ },
375
+ {
376
+ "anonymous": false,
377
+ "inputs": [
378
+ {
379
+ "indexed": false,
380
+ "name": "_owner",
381
+ "type": "address"
382
+ },
383
+ {
384
+ "indexed": false,
385
+ "name": "_blockNumber",
386
+ "type": "uint256"
387
+ },
388
+ {
389
+ "indexed": false,
390
+ "name": "_cap",
391
+ "type": "uint256"
392
+ }
393
+ ],
394
+ "name": "Withdraw",
395
+ "type": "event"
396
+ },
397
+ {
398
+ "anonymous": false,
399
+ "inputs": [
400
+ {
401
+ "indexed": false,
402
+ "name": "_owner",
403
+ "type": "address"
404
+ },
405
+ {
406
+ "indexed": false,
407
+ "name": "kycHash",
408
+ "type": "string"
409
+ }
410
+ ],
411
+ "name": "UploadedKYC",
412
+ "type": "event"
413
+ },
414
+ {
415
+ "anonymous": false,
416
+ "inputs": [
417
+ {
418
+ "indexed": false,
419
+ "name": "_masternodeOwner",
420
+ "type": "address"
421
+ },
422
+ {
423
+ "indexed": false,
424
+ "name": "_masternodes",
425
+ "type": "address[]"
426
+ }
427
+ ],
428
+ "name": "InvalidatedNode",
429
+ "type": "event"
430
+ }
431
+ ]
@@ -1,6 +1,8 @@
1
1
  import * as Utils from './utils';
2
2
  export { TransactionBuilder } from './transactionBuilder';
3
3
  export { TransferBuilder } from './transferBuilder';
4
+ export { UploadKycBuilder, UploadKycCall } from './uploadKycBuilder';
4
5
  export { Transaction, KeyPair } from '@bitgo-beta/abstract-eth';
5
6
  export { Utils };
7
+ export * from './validatorContract';
6
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AAEjC,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,KAAK,EAAE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AAEjC,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACrE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,KAAK,EAAE,CAAC;AACjB,cAAc,qBAAqB,CAAC"}
@@ -32,15 +32,22 @@ var __importStar = (this && this.__importStar) || (function () {
32
32
  return result;
33
33
  };
34
34
  })();
35
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
36
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
37
+ };
35
38
  Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.Utils = exports.KeyPair = exports.Transaction = exports.TransferBuilder = exports.TransactionBuilder = void 0;
39
+ exports.Utils = exports.KeyPair = exports.Transaction = exports.UploadKycCall = exports.UploadKycBuilder = exports.TransferBuilder = exports.TransactionBuilder = void 0;
37
40
  const Utils = __importStar(require("./utils"));
38
41
  exports.Utils = Utils;
39
42
  var transactionBuilder_1 = require("./transactionBuilder");
40
43
  Object.defineProperty(exports, "TransactionBuilder", { enumerable: true, get: function () { return transactionBuilder_1.TransactionBuilder; } });
41
44
  var transferBuilder_1 = require("./transferBuilder");
42
45
  Object.defineProperty(exports, "TransferBuilder", { enumerable: true, get: function () { return transferBuilder_1.TransferBuilder; } });
46
+ var uploadKycBuilder_1 = require("./uploadKycBuilder");
47
+ Object.defineProperty(exports, "UploadKycBuilder", { enumerable: true, get: function () { return uploadKycBuilder_1.UploadKycBuilder; } });
48
+ Object.defineProperty(exports, "UploadKycCall", { enumerable: true, get: function () { return uploadKycBuilder_1.UploadKycCall; } });
43
49
  var abstract_eth_1 = require("@bitgo-beta/abstract-eth");
44
50
  Object.defineProperty(exports, "Transaction", { enumerable: true, get: function () { return abstract_eth_1.Transaction; } });
45
51
  Object.defineProperty(exports, "KeyPair", { enumerable: true, get: function () { return abstract_eth_1.KeyPair; } });
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLCtDQUFpQztBQUt4QixzQkFBSztBQUhkLDJEQUEwRDtBQUFqRCx3SEFBQSxrQkFBa0IsT0FBQTtBQUMzQixxREFBb0Q7QUFBM0Msa0hBQUEsZUFBZSxPQUFBO0FBQ3hCLHlEQUFnRTtBQUF2RCwyR0FBQSxXQUFXLE9BQUE7QUFBRSx1R0FBQSxPQUFPLE9BQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBVdGlscyBmcm9tICcuL3V0aWxzJztcblxuZXhwb3J0IHsgVHJhbnNhY3Rpb25CdWlsZGVyIH0gZnJvbSAnLi90cmFuc2FjdGlvbkJ1aWxkZXInO1xuZXhwb3J0IHsgVHJhbnNmZXJCdWlsZGVyIH0gZnJvbSAnLi90cmFuc2ZlckJ1aWxkZXInO1xuZXhwb3J0IHsgVHJhbnNhY3Rpb24sIEtleVBhaXIgfSBmcm9tICdAYml0Z28tYmV0YS9hYnN0cmFjdC1ldGgnO1xuZXhwb3J0IHsgVXRpbHMgfTtcbiJdfQ==
52
+ __exportStar(require("./validatorContract"), exports);
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLCtDQUFpQztBQU14QixzQkFBSztBQUpkLDJEQUEwRDtBQUFqRCx3SEFBQSxrQkFBa0IsT0FBQTtBQUMzQixxREFBb0Q7QUFBM0Msa0hBQUEsZUFBZSxPQUFBO0FBQ3hCLHVEQUFxRTtBQUE1RCxvSEFBQSxnQkFBZ0IsT0FBQTtBQUFFLGlIQUFBLGFBQWEsT0FBQTtBQUN4Qyx5REFBZ0U7QUFBdkQsMkdBQUEsV0FBVyxPQUFBO0FBQUUsdUdBQUEsT0FBTyxPQUFBO0FBRTdCLHNEQUFvQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFV0aWxzIGZyb20gJy4vdXRpbHMnO1xuXG5leHBvcnQgeyBUcmFuc2FjdGlvbkJ1aWxkZXIgfSBmcm9tICcuL3RyYW5zYWN0aW9uQnVpbGRlcic7XG5leHBvcnQgeyBUcmFuc2ZlckJ1aWxkZXIgfSBmcm9tICcuL3RyYW5zZmVyQnVpbGRlcic7XG5leHBvcnQgeyBVcGxvYWRLeWNCdWlsZGVyLCBVcGxvYWRLeWNDYWxsIH0gZnJvbSAnLi91cGxvYWRLeWNCdWlsZGVyJztcbmV4cG9ydCB7IFRyYW5zYWN0aW9uLCBLZXlQYWlyIH0gZnJvbSAnQGJpdGdvLWJldGEvYWJzdHJhY3QtZXRoJztcbmV4cG9ydCB7IFV0aWxzIH07XG5leHBvcnQgKiBmcm9tICcuL3ZhbGlkYXRvckNvbnRyYWN0JztcbiJdfQ==
@@ -1,13 +1,33 @@
1
1
  import { BaseCoin as CoinConfig } from '@bitgo-beta/statics';
2
- import { TransactionBuilder as AbstractTransactionBuilder } from '@bitgo-beta/abstract-eth';
2
+ import { PublicKey } from '@bitgo-beta/sdk-core';
3
+ import { TransactionBuilder as AbstractTransactionBuilder, Transaction, TxData } from '@bitgo-beta/abstract-eth';
3
4
  import { TransferBuilder } from './transferBuilder';
5
+ import { UploadKycBuilder } from './uploadKycBuilder';
4
6
  export declare class TransactionBuilder extends AbstractTransactionBuilder {
5
7
  protected _transfer: TransferBuilder;
6
8
  private _signatures;
9
+ private _uploadKycBuilder?;
10
+ private _uploadKycCall?;
7
11
  constructor(_coinConfig: Readonly<CoinConfig>);
8
12
  /** @inheritdoc */
9
13
  transfer(data?: string): TransferBuilder;
10
- addSignature(publicKey: any, signature: any): void;
14
+ /**
15
+ * Gets the uploadKYC builder if it exists, or creates a new one for this transaction
16
+ *
17
+ * @returns {UploadKycBuilder} the uploadKYC builder
18
+ * @throws {BuildTransactionError} if transaction type is not ContractCall
19
+ */
20
+ uploadKyc(): UploadKycBuilder;
21
+ /** @inheritdoc */
22
+ build(): Promise<Transaction>;
23
+ /**
24
+ * Build the transaction data for uploadKYC contract call
25
+ * @private
26
+ */
27
+ private buildUploadKycTransaction;
28
+ /** @inheritdoc */
29
+ protected getTransactionData(): TxData;
30
+ addSignature(publicKey: PublicKey, signature: Buffer): void;
11
31
  protected getContractData(addresses: string[]): string;
12
32
  }
13
33
  //# sourceMappingURL=transactionBuilder.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"transactionBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/transactionBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAE7D,OAAO,EAAE,kBAAkB,IAAI,0BAA0B,EAAe,MAAM,0BAA0B,CAAC;AAEzG,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,qBAAa,kBAAmB,SAAQ,0BAA0B;IAChE,SAAS,CAAC,SAAS,EAAE,eAAe,CAAC;IACrC,OAAO,CAAC,WAAW,CAAM;gBAEb,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAM7C,kBAAkB;IAClB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,eAAe;IAUxC,YAAY,CAAC,SAAS,KAAA,EAAE,SAAS,KAAA;IAKjC,SAAS,CAAC,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,MAAM;CAGvD"}
1
+ {"version":3,"file":"transactionBuilder.d.ts","sourceRoot":"","sources":["../../../src/lib/transactionBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAA0C,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACzF,OAAO,EAAE,kBAAkB,IAAI,0BAA0B,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAEjH,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAiB,MAAM,oBAAoB,CAAC;AAErE,qBAAa,kBAAmB,SAAQ,0BAA0B;IAChE,SAAS,CAAC,SAAS,EAAE,eAAe,CAAC;IACrC,OAAO,CAAC,WAAW,CAAgD;IACnE,OAAO,CAAC,iBAAiB,CAAC,CAAmB;IAC7C,OAAO,CAAC,cAAc,CAAC,CAAgB;gBAE3B,WAAW,EAAE,QAAQ,CAAC,UAAU,CAAC;IAO7C,kBAAkB;IAClB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,eAAe;IAUxC;;;;;OAKG;IACH,SAAS,IAAI,gBAAgB;IAU7B,kBAAkB;IACZ,KAAK,IAAI,OAAO,CAAC,WAAW,CAAC;IAWnC;;;OAGG;IACH,OAAO,CAAC,yBAAyB;IAUjC,kBAAkB;IAClB,SAAS,CAAC,kBAAkB,IAAI,MAAM;IAUtC,YAAY,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAK3D,SAAS,CAAC,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,MAAM;CAGvD"}
@@ -5,11 +5,13 @@ const sdk_core_1 = require("@bitgo-beta/sdk-core");
5
5
  const abstract_eth_1 = require("@bitgo-beta/abstract-eth");
6
6
  const utils_1 = require("./utils");
7
7
  const transferBuilder_1 = require("./transferBuilder");
8
+ const uploadKycBuilder_1 = require("./uploadKycBuilder");
8
9
  class TransactionBuilder extends abstract_eth_1.TransactionBuilder {
9
10
  constructor(_coinConfig) {
10
11
  super(_coinConfig);
11
12
  this._common = (0, utils_1.getCommon)(this._coinConfig.network.type);
12
13
  this.transaction = new abstract_eth_1.Transaction(this._coinConfig, this._common);
14
+ this._signatures = [];
13
15
  }
14
16
  /** @inheritdoc */
15
17
  transfer(data) {
@@ -21,6 +23,52 @@ class TransactionBuilder extends abstract_eth_1.TransactionBuilder {
21
23
  }
22
24
  return this._transfer;
23
25
  }
26
+ /**
27
+ * Gets the uploadKYC builder if it exists, or creates a new one for this transaction
28
+ *
29
+ * @returns {UploadKycBuilder} the uploadKYC builder
30
+ * @throws {BuildTransactionError} if transaction type is not ContractCall
31
+ */
32
+ uploadKyc() {
33
+ if (this._type !== sdk_core_1.TransactionType.ContractCall) {
34
+ throw new sdk_core_1.BuildTransactionError('uploadKYC can only be set for contract call transactions');
35
+ }
36
+ if (!this._uploadKycBuilder) {
37
+ this._uploadKycBuilder = new uploadKycBuilder_1.UploadKycBuilder(this._coinConfig);
38
+ }
39
+ return this._uploadKycBuilder;
40
+ }
41
+ /** @inheritdoc */
42
+ async build() {
43
+ // If uploadKYC builder is set, build and cache the result before validation
44
+ if (this._uploadKycBuilder && this._type === sdk_core_1.TransactionType.ContractCall) {
45
+ this._uploadKycCall = this._uploadKycBuilder.build();
46
+ this.contract(this._uploadKycCall.contractAddress);
47
+ this.data(this._uploadKycCall.serialize());
48
+ }
49
+ return (await super.build());
50
+ }
51
+ /**
52
+ * Build the transaction data for uploadKYC contract call
53
+ * @private
54
+ */
55
+ buildUploadKycTransaction() {
56
+ if (!this._uploadKycCall) {
57
+ throw new sdk_core_1.BuildTransactionError('uploadKYC call not initialized');
58
+ }
59
+ // The contract address and data are already set in build() method
60
+ // Just return the base transaction data with the serialized data
61
+ return this.buildBase(this._uploadKycCall.serialize());
62
+ }
63
+ /** @inheritdoc */
64
+ getTransactionData() {
65
+ // If uploadKYC builder is set, build uploadKYC transaction
66
+ if (this._uploadKycBuilder && this._type === sdk_core_1.TransactionType.ContractCall) {
67
+ return this.buildUploadKycTransaction();
68
+ }
69
+ // Otherwise, use the parent implementation
70
+ return super.getTransactionData();
71
+ }
24
72
  addSignature(publicKey, signature) {
25
73
  this._signatures = [];
26
74
  this._signatures.push({ publicKey, signature });
@@ -30,4 +78,4 @@ class TransactionBuilder extends abstract_eth_1.TransactionBuilder {
30
78
  }
31
79
  }
32
80
  exports.TransactionBuilder = TransactionBuilder;
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb25CdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi90cmFuc2FjdGlvbkJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsbURBQThFO0FBQzlFLDJEQUF5RztBQUN6RyxtQ0FBb0M7QUFDcEMsdURBQW9EO0FBRXBELE1BQWEsa0JBQW1CLFNBQVEsaUNBQTBCO0lBSWhFLFlBQVksV0FBaUM7UUFDM0MsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ25CLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBQSxpQkFBUyxFQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3hELElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSwwQkFBVyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3JFLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsUUFBUSxDQUFDLElBQWE7UUFDcEIsSUFBSSxJQUFJLENBQUMsS0FBSyxLQUFLLDBCQUFlLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDeEMsTUFBTSxJQUFJLGdDQUFxQixDQUFDLGlEQUFpRCxDQUFDLENBQUM7UUFDckYsQ0FBQztRQUNELElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDcEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLGlDQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDN0MsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUN4QixDQUFDO0lBRUQsWUFBWSxDQUFDLFNBQVMsRUFBRSxTQUFTO1FBQy9CLElBQUksQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVTLGVBQWUsQ0FBQyxTQUFtQjtRQUMzQyxNQUFNLElBQUksS0FBSyxDQUFDLHlCQUF5QixDQUFDLENBQUM7SUFDN0MsQ0FBQztDQUNGO0FBN0JELGdEQTZCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VDb2luIGFzIENvaW5Db25maWcgfSBmcm9tICdAYml0Z28tYmV0YS9zdGF0aWNzJztcbmltcG9ydCB7IEJ1aWxkVHJhbnNhY3Rpb25FcnJvciwgVHJhbnNhY3Rpb25UeXBlIH0gZnJvbSAnQGJpdGdvLWJldGEvc2RrLWNvcmUnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25CdWlsZGVyIGFzIEFic3RyYWN0VHJhbnNhY3Rpb25CdWlsZGVyLCBUcmFuc2FjdGlvbiB9IGZyb20gJ0BiaXRnby1iZXRhL2Fic3RyYWN0LWV0aCc7XG5pbXBvcnQgeyBnZXRDb21tb24gfSBmcm9tICcuL3V0aWxzJztcbmltcG9ydCB7IFRyYW5zZmVyQnVpbGRlciB9IGZyb20gJy4vdHJhbnNmZXJCdWlsZGVyJztcblxuZXhwb3J0IGNsYXNzIFRyYW5zYWN0aW9uQnVpbGRlciBleHRlbmRzIEFic3RyYWN0VHJhbnNhY3Rpb25CdWlsZGVyIHtcbiAgcHJvdGVjdGVkIF90cmFuc2ZlcjogVHJhbnNmZXJCdWlsZGVyO1xuICBwcml2YXRlIF9zaWduYXR1cmVzOiBhbnk7XG5cbiAgY29uc3RydWN0b3IoX2NvaW5Db25maWc6IFJlYWRvbmx5PENvaW5Db25maWc+KSB7XG4gICAgc3VwZXIoX2NvaW5Db25maWcpO1xuICAgIHRoaXMuX2NvbW1vbiA9IGdldENvbW1vbih0aGlzLl9jb2luQ29uZmlnLm5ldHdvcmsudHlwZSk7XG4gICAgdGhpcy50cmFuc2FjdGlvbiA9IG5ldyBUcmFuc2FjdGlvbih0aGlzLl9jb2luQ29uZmlnLCB0aGlzLl9jb21tb24pO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHRyYW5zZmVyKGRhdGE/OiBzdHJpbmcpOiBUcmFuc2ZlckJ1aWxkZXIge1xuICAgIGlmICh0aGlzLl90eXBlICE9PSBUcmFuc2FjdGlvblR5cGUuU2VuZCkge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignVHJhbnNmZXJzIGNhbiBvbmx5IGJlIHNldCBmb3Igc2VuZCB0cmFuc2FjdGlvbnMnKTtcbiAgICB9XG4gICAgaWYgKCF0aGlzLl90cmFuc2Zlcikge1xuICAgICAgdGhpcy5fdHJhbnNmZXIgPSBuZXcgVHJhbnNmZXJCdWlsZGVyKGRhdGEpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fdHJhbnNmZXI7XG4gIH1cblxuICBhZGRTaWduYXR1cmUocHVibGljS2V5LCBzaWduYXR1cmUpIHtcbiAgICB0aGlzLl9zaWduYXR1cmVzID0gW107XG4gICAgdGhpcy5fc2lnbmF0dXJlcy5wdXNoKHsgcHVibGljS2V5LCBzaWduYXR1cmUgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0Q29udHJhY3REYXRhKGFkZHJlc3Nlczogc3RyaW5nW10pOiBzdHJpbmcge1xuICAgIHRocm93IG5ldyBFcnJvcignTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC4nKTtcbiAgfVxufVxuIl19
81
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb25CdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi90cmFuc2FjdGlvbkJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsbURBQXlGO0FBQ3pGLDJEQUFpSDtBQUNqSCxtQ0FBb0M7QUFDcEMsdURBQW9EO0FBQ3BELHlEQUFxRTtBQUVyRSxNQUFhLGtCQUFtQixTQUFRLGlDQUEwQjtJQU1oRSxZQUFZLFdBQWlDO1FBQzNDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNuQixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUEsaUJBQVMsRUFBQyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN4RCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksMEJBQVcsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNuRSxJQUFJLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLFFBQVEsQ0FBQyxJQUFhO1FBQ3BCLElBQUksSUFBSSxDQUFDLEtBQUssS0FBSywwQkFBZSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3hDLE1BQU0sSUFBSSxnQ0FBcUIsQ0FBQyxpREFBaUQsQ0FBQyxDQUFDO1FBQ3JGLENBQUM7UUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ3BCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxpQ0FBZSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzdDLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDeEIsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsU0FBUztRQUNQLElBQUksSUFBSSxDQUFDLEtBQUssS0FBSywwQkFBZSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ2hELE1BQU0sSUFBSSxnQ0FBcUIsQ0FBQywwREFBMEQsQ0FBQyxDQUFDO1FBQzlGLENBQUM7UUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDNUIsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksbUNBQWdCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ2xFLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztJQUNoQyxDQUFDO0lBRUQsa0JBQWtCO0lBQ2xCLEtBQUssQ0FBQyxLQUFLO1FBQ1QsNEVBQTRFO1FBQzVFLElBQUksSUFBSSxDQUFDLGlCQUFpQixJQUFJLElBQUksQ0FBQyxLQUFLLEtBQUssMEJBQWUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUMxRSxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNyRCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsZUFBZSxDQUFDLENBQUM7WUFDbkQsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUM7UUFDN0MsQ0FBQztRQUVELE9BQU8sQ0FBQyxNQUFNLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBZ0IsQ0FBQztJQUM5QyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0sseUJBQXlCO1FBQy9CLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDekIsTUFBTSxJQUFJLGdDQUFxQixDQUFDLGdDQUFnQyxDQUFDLENBQUM7UUFDcEUsQ0FBQztRQUVELGtFQUFrRTtRQUNsRSxpRUFBaUU7UUFDakUsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRUQsa0JBQWtCO0lBQ1Isa0JBQWtCO1FBQzFCLDJEQUEyRDtRQUMzRCxJQUFJLElBQUksQ0FBQyxpQkFBaUIsSUFBSSxJQUFJLENBQUMsS0FBSyxLQUFLLDBCQUFlLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDMUUsT0FBTyxJQUFJLENBQUMseUJBQXlCLEVBQUUsQ0FBQztRQUMxQyxDQUFDO1FBRUQsMkNBQTJDO1FBQzNDLE9BQU8sS0FBSyxDQUFDLGtCQUFrQixFQUFFLENBQUM7SUFDcEMsQ0FBQztJQUVELFlBQVksQ0FBQyxTQUFvQixFQUFFLFNBQWlCO1FBQ2xELElBQUksQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVTLGVBQWUsQ0FBQyxTQUFtQjtRQUMzQyxNQUFNLElBQUksS0FBSyxDQUFDLHlCQUF5QixDQUFDLENBQUM7SUFDN0MsQ0FBQztDQUNGO0FBckZELGdEQXFGQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJhc2VDb2luIGFzIENvaW5Db25maWcgfSBmcm9tICdAYml0Z28tYmV0YS9zdGF0aWNzJztcbmltcG9ydCB7IEJ1aWxkVHJhbnNhY3Rpb25FcnJvciwgVHJhbnNhY3Rpb25UeXBlLCBQdWJsaWNLZXkgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstY29yZSc7XG5pbXBvcnQgeyBUcmFuc2FjdGlvbkJ1aWxkZXIgYXMgQWJzdHJhY3RUcmFuc2FjdGlvbkJ1aWxkZXIsIFRyYW5zYWN0aW9uLCBUeERhdGEgfSBmcm9tICdAYml0Z28tYmV0YS9hYnN0cmFjdC1ldGgnO1xuaW1wb3J0IHsgZ2V0Q29tbW9uIH0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgeyBUcmFuc2ZlckJ1aWxkZXIgfSBmcm9tICcuL3RyYW5zZmVyQnVpbGRlcic7XG5pbXBvcnQgeyBVcGxvYWRLeWNCdWlsZGVyLCBVcGxvYWRLeWNDYWxsIH0gZnJvbSAnLi91cGxvYWRLeWNCdWlsZGVyJztcblxuZXhwb3J0IGNsYXNzIFRyYW5zYWN0aW9uQnVpbGRlciBleHRlbmRzIEFic3RyYWN0VHJhbnNhY3Rpb25CdWlsZGVyIHtcbiAgcHJvdGVjdGVkIF90cmFuc2ZlcjogVHJhbnNmZXJCdWlsZGVyO1xuICBwcml2YXRlIF9zaWduYXR1cmVzOiB7IHB1YmxpY0tleTogUHVibGljS2V5OyBzaWduYXR1cmU6IEJ1ZmZlciB9W107XG4gIHByaXZhdGUgX3VwbG9hZEt5Y0J1aWxkZXI/OiBVcGxvYWRLeWNCdWlsZGVyO1xuICBwcml2YXRlIF91cGxvYWRLeWNDYWxsPzogVXBsb2FkS3ljQ2FsbDtcblxuICBjb25zdHJ1Y3RvcihfY29pbkNvbmZpZzogUmVhZG9ubHk8Q29pbkNvbmZpZz4pIHtcbiAgICBzdXBlcihfY29pbkNvbmZpZyk7XG4gICAgdGhpcy5fY29tbW9uID0gZ2V0Q29tbW9uKHRoaXMuX2NvaW5Db25maWcubmV0d29yay50eXBlKTtcbiAgICB0aGlzLnRyYW5zYWN0aW9uID0gbmV3IFRyYW5zYWN0aW9uKHRoaXMuX2NvaW5Db25maWcsIHRoaXMuX2NvbW1vbik7XG4gICAgdGhpcy5fc2lnbmF0dXJlcyA9IFtdO1xuICB9XG5cbiAgLyoqIEBpbmhlcml0ZG9jICovXG4gIHRyYW5zZmVyKGRhdGE/OiBzdHJpbmcpOiBUcmFuc2ZlckJ1aWxkZXIge1xuICAgIGlmICh0aGlzLl90eXBlICE9PSBUcmFuc2FjdGlvblR5cGUuU2VuZCkge1xuICAgICAgdGhyb3cgbmV3IEJ1aWxkVHJhbnNhY3Rpb25FcnJvcignVHJhbnNmZXJzIGNhbiBvbmx5IGJlIHNldCBmb3Igc2VuZCB0cmFuc2FjdGlvbnMnKTtcbiAgICB9XG4gICAgaWYgKCF0aGlzLl90cmFuc2Zlcikge1xuICAgICAgdGhpcy5fdHJhbnNmZXIgPSBuZXcgVHJhbnNmZXJCdWlsZGVyKGRhdGEpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fdHJhbnNmZXI7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgdXBsb2FkS1lDIGJ1aWxkZXIgaWYgaXQgZXhpc3RzLCBvciBjcmVhdGVzIGEgbmV3IG9uZSBmb3IgdGhpcyB0cmFuc2FjdGlvblxuICAgKlxuICAgKiBAcmV0dXJucyB7VXBsb2FkS3ljQnVpbGRlcn0gdGhlIHVwbG9hZEtZQyBidWlsZGVyXG4gICAqIEB0aHJvd3Mge0J1aWxkVHJhbnNhY3Rpb25FcnJvcn0gaWYgdHJhbnNhY3Rpb24gdHlwZSBpcyBub3QgQ29udHJhY3RDYWxsXG4gICAqL1xuICB1cGxvYWRLeWMoKTogVXBsb2FkS3ljQnVpbGRlciB7XG4gICAgaWYgKHRoaXMuX3R5cGUgIT09IFRyYW5zYWN0aW9uVHlwZS5Db250cmFjdENhbGwpIHtcbiAgICAgIHRocm93IG5ldyBCdWlsZFRyYW5zYWN0aW9uRXJyb3IoJ3VwbG9hZEtZQyBjYW4gb25seSBiZSBzZXQgZm9yIGNvbnRyYWN0IGNhbGwgdHJhbnNhY3Rpb25zJyk7XG4gICAgfVxuICAgIGlmICghdGhpcy5fdXBsb2FkS3ljQnVpbGRlcikge1xuICAgICAgdGhpcy5fdXBsb2FkS3ljQnVpbGRlciA9IG5ldyBVcGxvYWRLeWNCdWlsZGVyKHRoaXMuX2NvaW5Db25maWcpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fdXBsb2FkS3ljQnVpbGRlcjtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBhc3luYyBidWlsZCgpOiBQcm9taXNlPFRyYW5zYWN0aW9uPiB7XG4gICAgLy8gSWYgdXBsb2FkS1lDIGJ1aWxkZXIgaXMgc2V0LCBidWlsZCBhbmQgY2FjaGUgdGhlIHJlc3VsdCBiZWZvcmUgdmFsaWRhdGlvblxuICAgIGlmICh0aGlzLl91cGxvYWRLeWNCdWlsZGVyICYmIHRoaXMuX3R5cGUgPT09IFRyYW5zYWN0aW9uVHlwZS5Db250cmFjdENhbGwpIHtcbiAgICAgIHRoaXMuX3VwbG9hZEt5Y0NhbGwgPSB0aGlzLl91cGxvYWRLeWNCdWlsZGVyLmJ1aWxkKCk7XG4gICAgICB0aGlzLmNvbnRyYWN0KHRoaXMuX3VwbG9hZEt5Y0NhbGwuY29udHJhY3RBZGRyZXNzKTtcbiAgICAgIHRoaXMuZGF0YSh0aGlzLl91cGxvYWRLeWNDYWxsLnNlcmlhbGl6ZSgpKTtcbiAgICB9XG5cbiAgICByZXR1cm4gKGF3YWl0IHN1cGVyLmJ1aWxkKCkpIGFzIFRyYW5zYWN0aW9uO1xuICB9XG5cbiAgLyoqXG4gICAqIEJ1aWxkIHRoZSB0cmFuc2FjdGlvbiBkYXRhIGZvciB1cGxvYWRLWUMgY29udHJhY3QgY2FsbFxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgcHJpdmF0ZSBidWlsZFVwbG9hZEt5Y1RyYW5zYWN0aW9uKCk6IFR4RGF0YSB7XG4gICAgaWYgKCF0aGlzLl91cGxvYWRLeWNDYWxsKSB7XG4gICAgICB0aHJvdyBuZXcgQnVpbGRUcmFuc2FjdGlvbkVycm9yKCd1cGxvYWRLWUMgY2FsbCBub3QgaW5pdGlhbGl6ZWQnKTtcbiAgICB9XG5cbiAgICAvLyBUaGUgY29udHJhY3QgYWRkcmVzcyBhbmQgZGF0YSBhcmUgYWxyZWFkeSBzZXQgaW4gYnVpbGQoKSBtZXRob2RcbiAgICAvLyBKdXN0IHJldHVybiB0aGUgYmFzZSB0cmFuc2FjdGlvbiBkYXRhIHdpdGggdGhlIHNlcmlhbGl6ZWQgZGF0YVxuICAgIHJldHVybiB0aGlzLmJ1aWxkQmFzZSh0aGlzLl91cGxvYWRLeWNDYWxsLnNlcmlhbGl6ZSgpKTtcbiAgfVxuXG4gIC8qKiBAaW5oZXJpdGRvYyAqL1xuICBwcm90ZWN0ZWQgZ2V0VHJhbnNhY3Rpb25EYXRhKCk6IFR4RGF0YSB7XG4gICAgLy8gSWYgdXBsb2FkS1lDIGJ1aWxkZXIgaXMgc2V0LCBidWlsZCB1cGxvYWRLWUMgdHJhbnNhY3Rpb25cbiAgICBpZiAodGhpcy5fdXBsb2FkS3ljQnVpbGRlciAmJiB0aGlzLl90eXBlID09PSBUcmFuc2FjdGlvblR5cGUuQ29udHJhY3RDYWxsKSB7XG4gICAgICByZXR1cm4gdGhpcy5idWlsZFVwbG9hZEt5Y1RyYW5zYWN0aW9uKCk7XG4gICAgfVxuXG4gICAgLy8gT3RoZXJ3aXNlLCB1c2UgdGhlIHBhcmVudCBpbXBsZW1lbnRhdGlvblxuICAgIHJldHVybiBzdXBlci5nZXRUcmFuc2FjdGlvbkRhdGEoKTtcbiAgfVxuXG4gIGFkZFNpZ25hdHVyZShwdWJsaWNLZXk6IFB1YmxpY0tleSwgc2lnbmF0dXJlOiBCdWZmZXIpOiB2b2lkIHtcbiAgICB0aGlzLl9zaWduYXR1cmVzID0gW107XG4gICAgdGhpcy5fc2lnbmF0dXJlcy5wdXNoKHsgcHVibGljS2V5LCBzaWduYXR1cmUgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0Q29udHJhY3REYXRhKGFkZHJlc3Nlczogc3RyaW5nW10pOiBzdHJpbmcge1xuICAgIHRocm93IG5ldyBFcnJvcignTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC4nKTtcbiAgfVxufVxuIl19
@@ -0,0 +1,73 @@
1
+ /**
2
+ * @prettier
3
+ */
4
+ import { BaseCoin as CoinConfig } from '@bitgo-beta/statics';
5
+ import { ContractCall } from '@bitgo-beta/abstract-eth';
6
+ /**
7
+ * Represents an XDC uploadKYC contract call
8
+ * This is used to submit KYC document hashes (IPFS hashes) to the XDC Validator contract
9
+ */
10
+ export declare class UploadKycCall extends ContractCall {
11
+ readonly contractAddress: string;
12
+ readonly ipfsHash: string;
13
+ constructor(contractAddress: string, ipfsHash: string);
14
+ }
15
+ /**
16
+ * Builder for XDC uploadKYC transactions
17
+ *
18
+ * This builder creates transactions that upload KYC document hashes to the XDC Validator contract.
19
+ * The flow is:
20
+ * 1. Upload KYC document to IPFS → get IPFS hash (e.g., "Qm...")
21
+ * 2. Use this builder to create a transaction that submits the hash to the validator contract
22
+ * 3. The transaction is signed using TSS/MPC
23
+ * 4. After successful upload, the address can propose a validator candidate
24
+ *
25
+ * @example
26
+ * ```typescript
27
+ * const builder = new UploadKycBuilder(coinConfig);
28
+ * const call = builder
29
+ * .ipfsHash('QmRealIPFSHash...')
30
+ * .build();
31
+ * ```
32
+ */
33
+ export declare class UploadKycBuilder {
34
+ private _ipfsHash?;
35
+ private _contractAddress?;
36
+ private readonly _coinConfig;
37
+ constructor(coinConfig: Readonly<CoinConfig>);
38
+ /**
39
+ * Set the IPFS hash of the uploaded KYC document
40
+ *
41
+ * @param {string} hash - The IPFS hash (e.g., "QmRealIPFSHash...")
42
+ * @returns {UploadKycBuilder} this builder instance
43
+ * @throws {InvalidParameterValueError} if the hash is invalid
44
+ */
45
+ ipfsHash(hash: string): this;
46
+ /**
47
+ * Set a custom validator contract address
48
+ * If not set, the default address for the network will be used
49
+ *
50
+ * @param {string} address - The validator contract address
51
+ * @returns {UploadKycBuilder} this builder instance
52
+ * @throws {InvalidParameterValueError} if the address is invalid
53
+ */
54
+ contractAddress(address: string): this;
55
+ /**
56
+ * Build the uploadKYC contract call
57
+ *
58
+ * @returns {UploadKycCall} the constructed contract call
59
+ * @throws {BuildTransactionError} if required fields are missing
60
+ */
61
+ build(): UploadKycCall;
62
+ /**
63
+ * Validate that all mandatory fields are set
64
+ * @private
65
+ */
66
+ private validateMandatoryFields;
67
+ /**
68
+ * Get the default validator contract address for the current network
69
+ * @private
70
+ */
71
+ private getDefaultContractAddress;
72
+ }
73
+ //# sourceMappingURL=uploadKycBuilder.d.ts.map