@airgap/coinlib-core 0.13.4-beta.1 → 0.13.6-beta.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 (48) hide show
  1. package/airgap-coinlib-core.min.js +9523 -6288
  2. package/package.json +2 -2
  3. package/protocols/tezos/TezosUtils.d.ts +2 -1
  4. package/protocols/tezos/TezosUtils.js +14 -1
  5. package/protocols/tezos/TezosUtils.js.map +1 -1
  6. package/protocols/tezos/sapling/TezosSaplingProtocol.d.ts +7 -7
  7. package/protocols/tezos/sapling/TezosSaplingProtocol.js +141 -134
  8. package/protocols/tezos/sapling/TezosSaplingProtocol.js.map +1 -1
  9. package/protocols/tezos/sapling/TezosSaplingProtocolOptions.js +7 -3
  10. package/protocols/tezos/sapling/TezosSaplingProtocolOptions.js.map +1 -1
  11. package/protocols/tezos/sapling/TezosShieldedTezProtocol.d.ts +2 -3
  12. package/protocols/tezos/sapling/TezosShieldedTezProtocol.js +4 -60
  13. package/protocols/tezos/sapling/TezosShieldedTezProtocol.js.map +1 -1
  14. package/protocols/tezos/sapling/utils/TezosSaplingBookkeeper.d.ts +2 -3
  15. package/protocols/tezos/sapling/utils/TezosSaplingBookkeeper.js +39 -31
  16. package/protocols/tezos/sapling/utils/TezosSaplingBookkeeper.js.map +1 -1
  17. package/protocols/tezos/sapling/utils/TezosSaplingEncoder.d.ts +1 -1
  18. package/protocols/tezos/sapling/utils/TezosSaplingEncoder.js +20 -4
  19. package/protocols/tezos/sapling/utils/TezosSaplingEncoder.js.map +1 -1
  20. package/protocols/tezos/sapling/utils/TezosSaplingForger.d.ts +1 -1
  21. package/protocols/tezos/sapling/utils/TezosSaplingForger.js +9 -5
  22. package/protocols/tezos/sapling/utils/TezosSaplingForger.js.map +1 -1
  23. package/protocols/tezos/types/michelson/MichelsonType.d.ts +2 -1
  24. package/protocols/tezos/types/michelson/MichelsonTypeUtils.d.ts +1 -0
  25. package/protocols/tezos/types/michelson/MichelsonTypeUtils.js +28 -0
  26. package/protocols/tezos/types/michelson/MichelsonTypeUtils.js.map +1 -1
  27. package/protocols/tezos/types/michelson/primitives/MichelsonAddress.d.ts +2 -1
  28. package/protocols/tezos/types/michelson/primitives/MichelsonBytes.d.ts +2 -1
  29. package/protocols/tezos/types/michelson/primitives/MichelsonBytes.js +14 -1
  30. package/protocols/tezos/types/michelson/primitives/MichelsonBytes.js.map +1 -1
  31. package/protocols/tezos/types/michelson/primitives/MichelsonInt.d.ts +2 -1
  32. package/protocols/tezos/types/michelson/primitives/MichelsonInt.js +1 -3
  33. package/protocols/tezos/types/michelson/primitives/MichelsonInt.js.map +1 -1
  34. package/protocols/tezos/types/michelson/primitives/MichelsonString.d.ts +3 -1
  35. package/protocols/tezos/types/michelson/primitives/MichelsonString.js +14 -1
  36. package/protocols/tezos/types/michelson/primitives/MichelsonString.js.map +1 -1
  37. package/protocols/tezos/types/sapling/TezosSaplingTransaction.d.ts +1 -0
  38. package/serializer/schemas/definitions/unsigned-transaction-tezos-sapling.d.ts +1 -1
  39. package/serializer/types.d.ts +1 -1
  40. package/serializer-v3/schemas/definitions/unsigned-transaction-tezos-sapling.d.ts +1 -1
  41. package/serializer-v3/schemas/generated/transaction-sign-request-tezos-sapling.json +4 -4
  42. package/serializer-v3/types.d.ts +2 -1
  43. package/utils/hex.d.ts +1 -1
  44. package/utils/hex.js +15 -4
  45. package/utils/hex.js.map +1 -1
  46. package/protocols/tezos/types/sapling/TezosSaplingWrappedTransaction.d.ts +0 -6
  47. package/protocols/tezos/types/sapling/TezosSaplingWrappedTransaction.js +0 -3
  48. package/protocols/tezos/types/sapling/TezosSaplingWrappedTransaction.js.map +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@airgap/coinlib-core",
3
- "version": "0.13.4-beta.1",
3
+ "version": "0.13.6-beta.0",
4
4
  "description": "The @airgap/coinlib-core is a protocol agnostic library to prepare, sign and broadcast cryptocurrency transactions.",
5
5
  "keywords": [
6
6
  "airgap",
@@ -38,7 +38,7 @@
38
38
  },
39
39
  "author": "Papers GmbH <contact@papers.ch> (https://papers.ch)",
40
40
  "dependencies": {
41
- "@airgap/sapling-wasm": "0.0.5",
41
+ "@airgap/sapling-wasm": "0.0.7",
42
42
  "@ethereumjs/common": "2.6.0",
43
43
  "@ethereumjs/tx": "3.4.0",
44
44
  "@metamask/eth-sig-util": "4.0.0",
@@ -23,6 +23,7 @@ export declare class TezosUtils {
23
23
  static parseAddress(bytes: string | Buffer): string;
24
24
  static encodeAddress(address: string): Buffer;
25
25
  static packMichelsonType(type: MichelsonType): string;
26
+ static unpackMichelsonType(encoded: string): MichelsonType;
26
27
  static parseHex(rawHex: string | string[]): MichelsonType;
27
28
  static encodeExpr(value: MichelsonType): Promise<string>;
28
29
  private static decodeSignedInt;
@@ -33,7 +34,7 @@ export declare class TezosUtils {
33
34
  private static hexToLength;
34
35
  private static splitAndReturnRest;
35
36
  static parseTzAddress(bytes: string | Buffer): string;
36
- private static encodeTzAddress;
37
+ static encodeTzAddress(address: string): Buffer;
37
38
  private static prefixAndBase58CheckEncode;
38
39
  private static prefixAndBase58CheckDecode;
39
40
  }
@@ -108,7 +108,20 @@ var TezosUtils = /** @class */ (function () {
108
108
  }
109
109
  };
110
110
  TezosUtils.packMichelsonType = function (type) {
111
- return "" + TezosUtils.watermark.message + type.encode();
111
+ return "" + TezosUtils.watermark.message + type.encode().toString('hex');
112
+ };
113
+ TezosUtils.unpackMichelsonType = function (encoded) {
114
+ var bytes = hex_1.hexToBytes(encoded);
115
+ var watermarkBytes = hex_1.hexToBytes(TezosUtils.watermark.message);
116
+ var prefix = bytes.slice(0, watermarkBytes.length);
117
+ if (!prefix.equals(watermarkBytes)) {
118
+ throw new errors_1.ConditionViolationError(coinlib_error_1.Domain.TEZOS, 'Invalid packed MichelsonType.');
119
+ }
120
+ var michelsonType = MichelsonTypeUtils_1.MichelsonTypeUtils.decode(bytes.slice(prefix.length));
121
+ if (michelsonType === undefined) {
122
+ throw new errors_1.ConditionViolationError(coinlib_error_1.Domain.TEZOS, 'Could not unpack encoded MichelsonType.');
123
+ }
124
+ return michelsonType;
112
125
  };
113
126
  TezosUtils.parseHex = function (rawHex) {
114
127
  var hex;
@@ -1 +1 @@
1
- {"version":3,"file":"TezosUtils.js","sourceRoot":"","sources":["../../../src/protocols/tezos/TezosUtils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TezosUtils.js","sourceRoot":"","sources":["../../../src/protocols/tezos/TezosUtils.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,9 @@
1
1
  /// <reference types="node" />
2
2
  import { AirGapTransactionStatus, IAirGapTransaction } from '../../../interfaces/IAirGapTransaction';
3
+ import { RawTezosSaplingTransaction, RawTezosTransaction } from '../../../serializer-v3/types';
3
4
  import { SignedTezosTransaction } from '../../../serializer/schemas/definitions/signed-transaction-tezos';
4
5
  import { UnsignedTezosTransaction } from '../../../serializer/schemas/definitions/unsigned-transaction-tezos';
5
6
  import { UnsignedTezosSaplingTransaction } from '../../../serializer/schemas/definitions/unsigned-transaction-tezos-sapling';
6
- import { RawTezosSaplingTransaction, RawTezosTransaction } from '../../../serializer/types';
7
7
  import { ProtocolSymbols } from '../../../utils/ProtocolSymbols';
8
8
  import { CurrencyUnit, FeeDefaults, ICoinProtocol } from '../../ICoinProtocol';
9
9
  import { ICoinSubProtocol } from '../../ICoinSubProtocol';
@@ -14,7 +14,6 @@ import { TezosProtocol } from '../TezosProtocol';
14
14
  import { TezosTransactionParameters } from '../types/operations/Transaction';
15
15
  import { TezosSaplingTransactionCursor } from '../types/sapling/TezosSaplingTransactionCursor';
16
16
  import { TezosSaplingTransactionResult } from '../types/sapling/TezosSaplingTransactionResult';
17
- import { TezosSaplingWrappedTransaction } from '../types/sapling/TezosSaplingWrappedTransaction';
18
17
  import { TezosSaplingNodeClient } from './node/TezosSaplingNodeClient';
19
18
  import { TezosSaplingAddress } from './TezosSaplingAddress';
20
19
  import { TezosSaplingCryptoClient } from './TezosSaplingCryptoClient';
@@ -25,7 +24,6 @@ import { TezosSaplingForger } from './utils/TezosSaplingForger';
25
24
  import { TezosSaplingState } from './utils/TezosSaplingState';
26
25
  export declare abstract class TezosSaplingProtocol extends NonExtendedProtocol implements ICoinProtocol {
27
26
  readonly options: TezosSaplingProtocolOptions;
28
- private static readonly TRANSACTION_PLACEHOLDER;
29
27
  readonly symbol: string;
30
28
  readonly name: string;
31
29
  readonly marketSymbol: string;
@@ -49,8 +47,8 @@ export declare abstract class TezosSaplingProtocol extends NonExtendedProtocol i
49
47
  readonly state: TezosSaplingState;
50
48
  protected readonly tezosProtocol: TezosProtocol;
51
49
  constructor(options: TezosSaplingProtocolOptions);
52
- abstract prepareContractCalls(transactions: TezosSaplingWrappedTransaction[]): Promise<TezosContractCall[]>;
53
- abstract parseParameters(parameters: TezosTransactionParameters): Promise<TezosSaplingWrappedTransaction[]>;
50
+ abstract prepareContractCalls(transactions: string[]): Promise<TezosContractCall[]>;
51
+ abstract parseParameters(parameters: TezosTransactionParameters): Promise<string[]>;
54
52
  initParameters(spendParams: Buffer, outputParams: Buffer): Promise<void>;
55
53
  getBlockExplorerLinkForTxId(txId: string): Promise<string>;
56
54
  getPublicKeyFromMnemonic(mnemonic: string, derivationPath: string, password?: string | undefined): Promise<string>;
@@ -77,20 +75,22 @@ export declare abstract class TezosSaplingProtocol extends NonExtendedProtocol i
77
75
  getTransactionStatuses(transactionHash: string[]): Promise<AirGapTransactionStatus[]>;
78
76
  estimateMaxTransactionValueFromPublicKey(publicKey: string, recipients: string[], fee?: string | undefined): Promise<string>;
79
77
  prepareTransactionFromPublicKey(publicKey: string, recipients: string[], values: string[], fee: string, data?: any): Promise<RawTezosSaplingTransaction>;
80
- wrapSaplingTransactions(publicKey: string, transactions: TezosSaplingWrappedTransaction[] | string, fee: string, overrideFees?: boolean): Promise<RawTezosTransaction>;
78
+ wrapSaplingTransactions(publicKey: string, transactionsOrString: string[] | string, fee: string, overrideFees?: boolean): Promise<RawTezosTransaction>;
81
79
  private prepareTezosOperation;
82
80
  prepareShieldTransaction(publicKey: string, recipient: string, value: string, fee: string, data?: {
83
81
  overrideFees?: boolean;
84
82
  }): Promise<RawTezosTransaction>;
85
83
  prepareUnshieldTransaction(viewingKey: string, recipient: string, value: string, data?: any): Promise<RawTezosSaplingTransaction>;
86
84
  prepareSaplingTransaction(viewingKey: string, recipient: string, value: string, data?: any): Promise<RawTezosSaplingTransaction>;
85
+ private mint;
86
+ private burn;
87
87
  private chooseInputs;
88
- private preparePartialContractCall;
89
88
  private createPaymentOutput;
90
89
  private createPaybackOutput;
91
90
  private createDummyInput;
92
91
  private createDummyOutput;
93
92
  private getDummyAddress;
93
+ private createAddressBoundData;
94
94
  private getAntiReplay;
95
95
  broadcastTransaction(rawTransaction: any): Promise<string>;
96
96
  signMessage(message: string, keypair: {
@@ -97,11 +97,13 @@ var bignumber_1 = __importDefault(require("../../../dependencies/src/bignumber.j
97
97
  var bip39_2_5_0_1 = require("../../../dependencies/src/bip39-2.5.0");
98
98
  var errors_1 = require("../../../errors");
99
99
  var array_1 = require("../../../utils/array");
100
+ var hex_1 = require("../../../utils/hex");
100
101
  var NonExtendedProtocol_1 = require("../../NonExtendedProtocol");
101
102
  var TezosContract_1 = require("../contract/TezosContract");
102
103
  var TezosAddress_1 = require("../TezosAddress");
103
104
  var TezosProtocol_1 = require("../TezosProtocol");
104
105
  var TezosProtocolOptions_1 = require("../TezosProtocolOptions");
106
+ var MichelsonAddress_1 = require("../types/michelson/primitives/MichelsonAddress");
105
107
  var TezosOperationType_1 = require("../types/TezosOperationType");
106
108
  var TezosSaplingNodeClient_1 = require("./node/TezosSaplingNodeClient");
107
109
  var TezosSaplingAddress_1 = require("./TezosSaplingAddress");
@@ -327,80 +329,88 @@ var TezosSaplingProtocol = /** @class */ (function (_super) {
327
329
  };
328
330
  TezosSaplingProtocol.prototype.signWithPrivateKey = function (privateKey, transaction) {
329
331
  return __awaiter(this, void 0, void 0, function () {
330
- var stateTree, forgedTransaction, signed;
332
+ var stateTree, boundData, forgedTransaction;
331
333
  return __generator(this, function (_a) {
332
334
  switch (_a.label) {
333
335
  case 0: return [4 /*yield*/, this.state.getStateTreeFromStateDiff(transaction.stateDiff)];
334
336
  case 1:
335
337
  stateTree = _a.sent();
336
- return [4 /*yield*/, this.forger.forgeSaplingTransaction(transaction.ins, transaction.outs, stateTree, this.getAntiReplay(transaction.chainId, transaction.contractAddress), privateKey)];
338
+ boundData = transaction.unshieldTarget && transaction.unshieldTarget.length > 0
339
+ ? this.createAddressBoundData(transaction.unshieldTarget)
340
+ : undefined;
341
+ return [4 /*yield*/, this.forger.forgeSaplingTransaction(transaction.ins, transaction.outs, stateTree, this.getAntiReplay(transaction.chainId, transaction.contractAddress), boundData, privateKey)];
337
342
  case 2:
338
343
  forgedTransaction = _a.sent();
339
- signed = this.encoder.encodeTransaction(forgedTransaction).toString('hex');
340
- return [2 /*return*/, transaction.callParameters.replace(Buffer.from(TezosSaplingProtocol.TRANSACTION_PLACEHOLDER, 'utf-8').toString('hex'), signed)];
344
+ return [2 /*return*/, this.encoder.encodeTransaction(forgedTransaction).toString('hex')];
341
345
  }
342
346
  });
343
347
  });
344
348
  };
345
349
  TezosSaplingProtocol.prototype.getTransactionDetails = function (transaction, data) {
346
350
  return __awaiter(this, void 0, void 0, function () {
347
- var tx, airGapTxs, from, parameters, wrappedTransactions, details, wrappedOperation, _a, _b, _c;
351
+ var tx, airGapTxs, unshieldTarget, from, details, wrappedOperation, _a, _b, _c;
348
352
  return __generator(this, function (_d) {
349
353
  switch (_d.label) {
350
354
  case 0:
351
355
  tx = transaction.transaction;
352
356
  airGapTxs = [];
353
- if (!this.isRawTezosSaplingTransaction(tx)) return [3 /*break*/, 3];
357
+ if (!this.isRawTezosSaplingTransaction(tx)) return [3 /*break*/, 2];
358
+ unshieldTarget = tx.unshieldTarget.length > 0 ? tx.unshieldTarget : undefined;
354
359
  return [4 /*yield*/, this.getAddressFromPublicKey(transaction.publicKey)];
355
360
  case 1:
356
361
  from = _d.sent();
357
- parameters = this.contract.parseParameters(tx.callParameters);
358
- return [4 /*yield*/, this.parseParameters(parameters)];
359
- case 2:
360
- wrappedTransactions = _d.sent();
361
362
  details = this.bookkeeper
362
- .getUnsignedTransactionDetails(from, tx.ins, tx.outs, wrappedTransactions)
363
+ .getUnsignedTransactionDetails(from, tx.ins, tx.outs, unshieldTarget)
363
364
  .map(function (details) { return (__assign(__assign({}, details), { extra: __assign(__assign({}, details.extra), { destination: tx.contractAddress, chainId: tx.chainId }), transactionDetails: tx })); });
364
365
  airGapTxs.push.apply(airGapTxs, details);
365
- return [3 /*break*/, 6];
366
- case 3: return [4 /*yield*/, this.tezosProtocol.unforgeUnsignedTezosWrappedOperation(tx.binaryTransaction)];
367
- case 4:
366
+ return [3 /*break*/, 5];
367
+ case 2: return [4 /*yield*/, this.tezosProtocol.unforgeUnsignedTezosWrappedOperation(tx.binaryTransaction)];
368
+ case 3:
368
369
  wrappedOperation = _d.sent();
369
370
  _b = (_a = airGapTxs.push).apply;
370
371
  _c = [airGapTxs];
371
372
  return [4 /*yield*/, this.getTransactionDetailsFromWrappedOperation(wrappedOperation, data === null || data === void 0 ? void 0 : data.knownViewingKeys)];
372
- case 5:
373
+ case 4:
373
374
  _b.apply(_a, _c.concat([(_d.sent())]));
374
- _d.label = 6;
375
- case 6: return [2 /*return*/, this.filterOutPaybacks(airGapTxs)];
375
+ _d.label = 5;
376
+ case 5: return [2 /*return*/, this.filterOutPaybacks(airGapTxs)];
376
377
  }
377
378
  });
378
379
  });
379
380
  };
380
381
  TezosSaplingProtocol.prototype.getTransactionDetailsFromSigned = function (transaction, data) {
381
382
  return __awaiter(this, void 0, void 0, function () {
382
- var airGapTxs, partialDetails, wrappedOperation, _a, _b, _c;
383
+ var airGapTxs, tx, partialDetails, _a, wrappedOperation, _b, _c, _d;
383
384
  var _this = this;
384
- return __generator(this, function (_d) {
385
- switch (_d.label) {
385
+ return __generator(this, function (_e) {
386
+ switch (_e.label) {
386
387
  case 0:
387
388
  airGapTxs = [];
388
- if (!this.contract.areValidParameters(transaction.transaction)) return [3 /*break*/, 2];
389
- return [4 /*yield*/, this.getPartialDetailsFromContractParameters(transaction.transaction, data === null || data === void 0 ? void 0 : data.knownViewingKeys)];
389
+ tx = transaction.transaction;
390
+ if (!(this.contract.areValidParameters(tx) || hex_1.isHex(tx))) return [3 /*break*/, 5];
391
+ if (!this.contract.areValidParameters(tx)) return [3 /*break*/, 2];
392
+ return [4 /*yield*/, this.getPartialDetailsFromContractParameters(tx, data === null || data === void 0 ? void 0 : data.knownViewingKeys)];
390
393
  case 1:
391
- partialDetails = _d.sent();
392
- airGapTxs.push.apply(airGapTxs, partialDetails.map(function (partial) { return (__assign({ from: ['Shielded Pool'], to: ['Shielded Pool'], isInbound: false, amount: '0', fee: '0', protocolIdentifier: _this.identifier, network: _this.options.network }, partial)); }));
393
- return [3 /*break*/, 5];
394
- case 2: return [4 /*yield*/, this.tezosProtocol.unforgeSignedTezosWrappedOperation(transaction.transaction)];
394
+ _a = _e.sent();
395
+ return [3 /*break*/, 4];
396
+ case 2: return [4 /*yield*/, this.bookkeeper.getTransactionsPartialDetails([tx], data === null || data === void 0 ? void 0 : data.knownViewingKeys)];
395
397
  case 3:
396
- wrappedOperation = _d.sent();
397
- _b = (_a = airGapTxs.push).apply;
398
- _c = [airGapTxs];
399
- return [4 /*yield*/, this.getTransactionDetailsFromWrappedOperation(wrappedOperation, data === null || data === void 0 ? void 0 : data.knownViewingKeys)];
398
+ _a = _e.sent();
399
+ _e.label = 4;
400
400
  case 4:
401
- _b.apply(_a, _c.concat([(_d.sent())]));
402
- _d.label = 5;
403
- case 5: return [2 /*return*/, this.filterOutPaybacks(airGapTxs)];
401
+ partialDetails = _a;
402
+ airGapTxs.push.apply(airGapTxs, partialDetails.map(function (partial) { return (__assign({ from: ['Shielded Pool'], to: ['Shielded Pool'], isInbound: false, amount: '0', fee: '0', protocolIdentifier: _this.identifier, network: _this.options.network }, partial)); }));
403
+ return [3 /*break*/, 8];
404
+ case 5: return [4 /*yield*/, this.tezosProtocol.unforgeSignedTezosWrappedOperation(tx)];
405
+ case 6:
406
+ wrappedOperation = _e.sent();
407
+ _c = (_b = airGapTxs.push).apply;
408
+ _d = [airGapTxs];
409
+ return [4 /*yield*/, this.getTransactionDetailsFromWrappedOperation(wrappedOperation, data === null || data === void 0 ? void 0 : data.knownViewingKeys)];
410
+ case 7:
411
+ _c.apply(_b, _d.concat([(_e.sent())]));
412
+ _e.label = 8;
413
+ case 8: return [2 /*return*/, this.filterOutPaybacks(airGapTxs)];
404
414
  }
405
415
  });
406
416
  });
@@ -438,15 +448,15 @@ var TezosSaplingProtocol = /** @class */ (function (_super) {
438
448
  TezosSaplingProtocol.prototype.getPartialDetailsFromContractParameters = function (rawOrParsed, knownViewingKeys) {
439
449
  if (knownViewingKeys === void 0) { knownViewingKeys = []; }
440
450
  return __awaiter(this, void 0, void 0, function () {
441
- var parameters, wrappedTransactions;
451
+ var parameters, txs;
442
452
  return __generator(this, function (_a) {
443
453
  switch (_a.label) {
444
454
  case 0:
445
455
  parameters = typeof rawOrParsed === 'string' ? this.contract.parseParameters(rawOrParsed) : rawOrParsed;
446
456
  return [4 /*yield*/, this.parseParameters(parameters)];
447
457
  case 1:
448
- wrappedTransactions = _a.sent();
449
- return [2 /*return*/, this.bookkeeper.getWrappedTransactionsPartialDetails(wrappedTransactions, knownViewingKeys)];
458
+ txs = _a.sent();
459
+ return [2 /*return*/, this.bookkeeper.getTransactionsPartialDetails(txs, knownViewingKeys)];
450
460
  }
451
461
  });
452
462
  });
@@ -515,19 +525,21 @@ var TezosSaplingProtocol = /** @class */ (function (_super) {
515
525
  });
516
526
  });
517
527
  };
518
- TezosSaplingProtocol.prototype.wrapSaplingTransactions = function (publicKey, transactions, fee, overrideFees) {
528
+ TezosSaplingProtocol.prototype.wrapSaplingTransactions = function (publicKey, transactionsOrString, fee, overrideFees) {
519
529
  if (overrideFees === void 0) { overrideFees = false; }
520
530
  return __awaiter(this, void 0, void 0, function () {
521
- var operations, parameters, contractCalls, tezosWrappedOperation, binaryTx, error_1, rpcErrors, cannotPayStorageFee, balanceTooLowError;
531
+ var operations, parameters, transactions, contractCalls, tezosWrappedOperation, binaryTx, error_1, rpcErrors, cannotPayStorageFee, balanceTooLowError;
522
532
  var _this = this;
523
533
  return __generator(this, function (_a) {
524
534
  switch (_a.label) {
525
535
  case 0:
526
- if (!(typeof transactions === 'string')) return [3 /*break*/, 1];
527
- parameters = this.contract.parseParameters(transactions);
536
+ if (!(typeof transactionsOrString === 'string' && this.contract.areValidParameters(transactionsOrString))) return [3 /*break*/, 1];
537
+ parameters = this.contract.parseParameters(transactionsOrString);
528
538
  operations = [this.prepareTezosOperation(parameters, fee)];
529
539
  return [3 /*break*/, 3];
530
- case 1: return [4 /*yield*/, this.prepareContractCalls(transactions)];
540
+ case 1:
541
+ transactions = Array.isArray(transactionsOrString) ? transactionsOrString : [transactionsOrString];
542
+ return [4 /*yield*/, this.prepareContractCalls(transactions)];
531
543
  case 2:
532
544
  contractCalls = _a.sent();
533
545
  operations = contractCalls.map(function (contractCall) { var _a; return _this.prepareTezosOperation(contractCall.toJSON(), fee, (_a = contractCall.amount) === null || _a === void 0 ? void 0 : _a.toString()); });
@@ -573,73 +585,30 @@ var TezosSaplingProtocol = /** @class */ (function (_super) {
573
585
  };
574
586
  TezosSaplingProtocol.prototype.prepareShieldTransaction = function (publicKey, recipient, value, fee, data) {
575
587
  return __awaiter(this, void 0, void 0, function () {
576
- var _a, saplingStateDiff, chainId, output, stateTree, forgedTransaction, encodedTransaction, wrappedTransaction;
577
- var _b;
578
- return __generator(this, function (_c) {
579
- switch (_c.label) {
580
- case 0:
581
- if (!TezosSaplingAddress_1.TezosSaplingAddress.isZetAddress(recipient)) {
582
- return [2 /*return*/, Promise.reject("Invalid recipient, expected a 'zet' address, got " + recipient)];
583
- }
584
- return [4 /*yield*/, Promise.all([
585
- this.nodeClient.getSaplingStateDiff(),
586
- this.nodeClient.getChainId()
587
- ])];
588
+ var encodedTransaction;
589
+ return __generator(this, function (_a) {
590
+ switch (_a.label) {
591
+ case 0: return [4 /*yield*/, this.mint(recipient, value)];
588
592
  case 1:
589
- _a = _c.sent(), saplingStateDiff = _a[0], chainId = _a[1];
590
- _b = {};
591
- return [4 /*yield*/, TezosSaplingAddress_1.TezosSaplingAddress.fromValue(recipient)];
592
- case 2:
593
- output = (_b.address = (_c.sent()).getValue(),
594
- _b.value = value,
595
- _b.memo = Buffer.alloc(this.options.config.memoSize).toString('hex'),
596
- _b);
597
- return [4 /*yield*/, this.state.getStateTreeFromStateDiff(saplingStateDiff, true)];
598
- case 3:
599
- stateTree = _c.sent();
600
- return [4 /*yield*/, this.forger.forgeSaplingTransaction([], [output], stateTree, this.getAntiReplay(chainId))];
601
- case 4:
602
- forgedTransaction = _c.sent();
603
- encodedTransaction = this.encoder.encodeTransaction(forgedTransaction).toString('hex');
604
- wrappedTransaction = { signed: encodedTransaction };
605
- return [2 /*return*/, this.wrapSaplingTransactions(publicKey, [wrappedTransaction], fee, data === null || data === void 0 ? void 0 : data.overrideFees)];
593
+ encodedTransaction = _a.sent();
594
+ return [2 /*return*/, this.wrapSaplingTransactions(publicKey, [encodedTransaction], fee, data === null || data === void 0 ? void 0 : data.overrideFees)];
606
595
  }
607
596
  });
608
597
  });
609
598
  };
610
599
  TezosSaplingProtocol.prototype.prepareUnshieldTransaction = function (viewingKey, recipient, value, data) {
611
600
  return __awaiter(this, void 0, void 0, function () {
612
- var _a, stateDiff, chainId, _b, inputs, toSpend, address, paybackOutput, contractCall;
613
- return __generator(this, function (_c) {
614
- switch (_c.label) {
601
+ var burnTransaction;
602
+ return __generator(this, function (_a) {
603
+ switch (_a.label) {
615
604
  case 0:
616
605
  if (!TezosAddress_1.TezosAddress.isTzAddress(recipient)) {
617
606
  return [2 /*return*/, Promise.reject("Invalid recpient, expected a 'tz' address, got " + recipient)];
618
607
  }
619
- return [4 /*yield*/, Promise.all([
620
- this.nodeClient.getSaplingStateDiff(),
621
- this.nodeClient.getChainId()
622
- ])];
608
+ return [4 /*yield*/, this.burn(viewingKey, value)];
623
609
  case 1:
624
- _a = _c.sent(), stateDiff = _a[0], chainId = _a[1];
625
- return [4 /*yield*/, this.chooseInputs(viewingKey, stateDiff.commitments_and_ciphertexts, stateDiff.nullifiers, value)];
626
- case 2:
627
- _b = _c.sent(), inputs = _b[0], toSpend = _b[1];
628
- return [4 /*yield*/, this.getAddressFromPublicKey(viewingKey)];
629
- case 3:
630
- address = _c.sent();
631
- paybackOutput = this.createPaybackOutput(address, toSpend, value);
632
- return [4 /*yield*/, this.preparePartialContractCall(recipient)];
633
- case 4:
634
- contractCall = _c.sent();
635
- return [2 /*return*/, {
636
- ins: inputs,
637
- outs: [paybackOutput].filter(function (output) { return output !== undefined; }),
638
- contractAddress: this.options.config.contractAddress,
639
- chainId: chainId,
640
- stateDiff: stateDiff,
641
- callParameters: JSON.stringify(contractCall.toJSON())
642
- }];
610
+ burnTransaction = _a.sent();
611
+ return [2 /*return*/, __assign(__assign({}, burnTransaction), { unshieldTarget: recipient })];
643
612
  }
644
613
  });
645
614
  });
@@ -647,7 +616,7 @@ var TezosSaplingProtocol = /** @class */ (function (_super) {
647
616
  TezosSaplingProtocol.prototype.prepareSaplingTransaction = function (viewingKey, recipient, value, data) {
648
617
  var _a, _b;
649
618
  return __awaiter(this, void 0, void 0, function () {
650
- var dummyInputsAmount, dummyOutputsAmount, _c, stateDiff, chainId, _d, inputs, toSpend, address, paymentOutput, _e, paybackOutput, contractCall, _f, dummyInputs, dummyOutputs;
619
+ var dummyInputsAmount, dummyOutputsAmount, _c, stateDiff, chainId, _d, inputs, toSpend, address, paymentOutput, _e, paybackOutput, _f, dummyInputs, dummyOutputs;
651
620
  var _this = this;
652
621
  return __generator(this, function (_g) {
653
622
  switch (_g.label) {
@@ -674,14 +643,11 @@ var TezosSaplingProtocol = /** @class */ (function (_super) {
674
643
  case 4:
675
644
  paymentOutput = _e.apply(this, [_g.sent(), value]);
676
645
  paybackOutput = this.createPaybackOutput(address, toSpend, value);
677
- return [4 /*yield*/, this.preparePartialContractCall()];
678
- case 5:
679
- contractCall = _g.sent();
680
646
  return [4 /*yield*/, Promise.all([
681
647
  Promise.all(Array.from({ length: dummyInputsAmount }, function (_v, _k) { return _this.createDummyInput(address); })),
682
648
  Promise.all(Array.from({ length: dummyOutputsAmount }, function (_v, _k) { return _this.createDummyOutput(); }))
683
649
  ])];
684
- case 6:
650
+ case 5:
685
651
  _f = _g.sent(), dummyInputs = _f[0], dummyOutputs = _f[1];
686
652
  return [2 /*return*/, {
687
653
  ins: inputs.concat(dummyInputs),
@@ -689,7 +655,75 @@ var TezosSaplingProtocol = /** @class */ (function (_super) {
689
655
  contractAddress: this.options.config.contractAddress,
690
656
  chainId: chainId,
691
657
  stateDiff: stateDiff,
692
- callParameters: JSON.stringify(contractCall.toJSON())
658
+ unshieldTarget: ''
659
+ }];
660
+ }
661
+ });
662
+ });
663
+ };
664
+ TezosSaplingProtocol.prototype.mint = function (recipient, value) {
665
+ return __awaiter(this, void 0, void 0, function () {
666
+ var _a, saplingStateDiff, chainId, output, stateTree, forgedTransaction;
667
+ var _b;
668
+ return __generator(this, function (_c) {
669
+ switch (_c.label) {
670
+ case 0:
671
+ if (!TezosSaplingAddress_1.TezosSaplingAddress.isZetAddress(recipient)) {
672
+ return [2 /*return*/, Promise.reject("Invalid recipient, expected a 'zet' address, got " + recipient)];
673
+ }
674
+ return [4 /*yield*/, Promise.all([
675
+ this.nodeClient.getSaplingStateDiff(),
676
+ this.nodeClient.getChainId()
677
+ ])];
678
+ case 1:
679
+ _a = _c.sent(), saplingStateDiff = _a[0], chainId = _a[1];
680
+ _b = {};
681
+ return [4 /*yield*/, TezosSaplingAddress_1.TezosSaplingAddress.fromValue(recipient)];
682
+ case 2:
683
+ output = (_b.address = (_c.sent()).getValue(),
684
+ _b.value = value,
685
+ _b.memo = Buffer.alloc(this.options.config.memoSize).toString('hex'),
686
+ _b);
687
+ return [4 /*yield*/, this.state.getStateTreeFromStateDiff(saplingStateDiff, true)];
688
+ case 3:
689
+ stateTree = _c.sent();
690
+ return [4 /*yield*/, this.forger.forgeSaplingTransaction([], [output], stateTree, this.getAntiReplay(chainId))];
691
+ case 4:
692
+ forgedTransaction = _c.sent();
693
+ return [2 /*return*/, this.encoder.encodeTransaction(forgedTransaction).toString('hex')];
694
+ }
695
+ });
696
+ });
697
+ };
698
+ TezosSaplingProtocol.prototype.burn = function (viewingKey, value) {
699
+ return __awaiter(this, void 0, void 0, function () {
700
+ var _a, stateDiff, chainId, _b, inputs, toSpend, paybackOutput;
701
+ var _c;
702
+ return __generator(this, function (_d) {
703
+ switch (_d.label) {
704
+ case 0: return [4 /*yield*/, Promise.all([
705
+ this.nodeClient.getSaplingStateDiff(),
706
+ this.nodeClient.getChainId()
707
+ ])];
708
+ case 1:
709
+ _a = _d.sent(), stateDiff = _a[0], chainId = _a[1];
710
+ return [4 /*yield*/, this.chooseInputs(viewingKey, stateDiff.commitments_and_ciphertexts, stateDiff.nullifiers, value)];
711
+ case 2:
712
+ _b = _d.sent(), inputs = _b[0], toSpend = _b[1];
713
+ _c = {};
714
+ return [4 /*yield*/, this.getAddressFromPublicKey(viewingKey)];
715
+ case 3:
716
+ paybackOutput = (_c.address = (_d.sent()).getValue(),
717
+ _c.value = toSpend.minus(value).toString(),
718
+ _c.memo = Buffer.alloc(this.options.config.memoSize).toString('hex'),
719
+ _c);
720
+ return [2 /*return*/, {
721
+ ins: inputs,
722
+ outs: [paybackOutput],
723
+ contractAddress: this.options.config.contractAddress,
724
+ chainId: chainId,
725
+ stateDiff: stateDiff,
726
+ unshieldTarget: ''
693
727
  }];
694
728
  }
695
729
  });
@@ -722,35 +756,6 @@ var TezosSaplingProtocol = /** @class */ (function (_super) {
722
756
  });
723
757
  });
724
758
  };
725
- TezosSaplingProtocol.prototype.preparePartialContractCall = function (unshieldTarget) {
726
- return __awaiter(this, void 0, void 0, function () {
727
- var wrappedTransaction, _a, contractCalls;
728
- var _b;
729
- return __generator(this, function (_c) {
730
- switch (_c.label) {
731
- case 0:
732
- _b = {
733
- signed: Buffer.from(TezosSaplingProtocol.TRANSACTION_PLACEHOLDER, 'utf-8')
734
- };
735
- if (!(unshieldTarget !== undefined)) return [3 /*break*/, 2];
736
- return [4 /*yield*/, TezosAddress_1.TezosAddress.fromValue(unshieldTarget)];
737
- case 1:
738
- _a = _c.sent();
739
- return [3 /*break*/, 3];
740
- case 2:
741
- _a = undefined;
742
- _c.label = 3;
743
- case 3:
744
- wrappedTransaction = (_b.unshieldTarget = _a,
745
- _b);
746
- return [4 /*yield*/, this.prepareContractCalls([wrappedTransaction])];
747
- case 4:
748
- contractCalls = _c.sent();
749
- return [2 /*return*/, contractCalls[0]];
750
- }
751
- });
752
- });
753
- };
754
759
  TezosSaplingProtocol.prototype.createPaymentOutput = function (address, value, memo) {
755
760
  if (memo === void 0) { memo = Buffer.alloc(this.options.config.memoSize); }
756
761
  return {
@@ -826,6 +831,10 @@ var TezosSaplingProtocol = /** @class */ (function (_super) {
826
831
  });
827
832
  });
828
833
  };
834
+ TezosSaplingProtocol.prototype.createAddressBoundData = function (address) {
835
+ var michelson = MichelsonAddress_1.MichelsonAddress.from(__1.TezosUtils.encodeTzAddress(address));
836
+ return __1.TezosUtils.packMichelsonType(michelson);
837
+ };
829
838
  TezosSaplingProtocol.prototype.getAntiReplay = function (chainId, contractAddress) {
830
839
  return (contractAddress !== null && contractAddress !== void 0 ? contractAddress : this.options.config.contractAddress) + chainId;
831
840
  };
@@ -926,10 +935,8 @@ var TezosSaplingProtocol = /** @class */ (function (_super) {
926
935
  'outs' in transaction &&
927
936
  'contractAddress' in transaction &&
928
937
  'chainId' in transaction &&
929
- 'stateDiff' in transaction &&
930
- 'callParameters' in transaction);
938
+ 'stateDiff' in transaction);
931
939
  };
932
- TezosSaplingProtocol.TRANSACTION_PLACEHOLDER = 'TRANSACTION_PLACEHOLDER';
933
940
  return TezosSaplingProtocol;
934
941
  }(NonExtendedProtocol_1.NonExtendedProtocol));
935
942
  exports.TezosSaplingProtocol = TezosSaplingProtocol;