@airgap/coinlib-core 0.13.5 → 0.13.6-beta.2

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 (49) hide show
  1. package/airgap-coinlib-core.min.js +9538 -6290
  2. package/package.json +3 -3
  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 +155 -135
  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 +10 -6
  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/TezosSaplingOutput.d.ts +1 -0
  38. package/protocols/tezos/types/sapling/TezosSaplingTransaction.d.ts +1 -0
  39. package/serializer/schemas/definitions/unsigned-transaction-tezos-sapling.d.ts +2 -1
  40. package/serializer/types.d.ts +1 -1
  41. package/serializer-v3/schemas/definitions/unsigned-transaction-tezos-sapling.d.ts +1 -1
  42. package/serializer-v3/schemas/generated/transaction-sign-request-tezos-sapling.json +4 -4
  43. package/serializer-v3/types.d.ts +2 -1
  44. package/utils/hex.d.ts +1 -1
  45. package/utils/hex.js +15 -4
  46. package/utils/hex.js.map +1 -1
  47. package/protocols/tezos/types/sapling/TezosSaplingWrappedTransaction.d.ts +0 -6
  48. package/protocols/tezos/types/sapling/TezosSaplingWrappedTransaction.js +0 -3
  49. 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.5",
3
+ "version": "0.13.6-beta.2",
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",
@@ -100,4 +100,4 @@
100
100
  "instrument": true
101
101
  },
102
102
  "gitHead": "8e8feb6788204501b7173aa825f5456c2a5f185b"
103
- }
103
+ }
@@ -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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAA6C;AAC7C,6EAA+E;AAC/E,kGAA2E;AAC3E,sFAAyE;AACzE,uCAAqE;AACrE,4DAAmD;AACnD,uCAAgD;AAEhD,0EAAwE;AACxE,0EAAwE;AAExE,2EAAyE;AACzE,8EAA4E;AAC5E,0EAAwE;AACxE,gFAA8E;AAE9E;IAAA;IAiPA,CAAC;IAzMe,uBAAY,GAA1B,UAA2B,KAAsB;QAC/C,IAAI,aAAa,GAAW,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;QAErF,IAAI,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;YAClC,aAAa,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;SACvC;QACK,IAAA,KAAqD,IAAI,CAAC,kBAAkB,CAAC,aAAa,EAAE,CAAC,CAAC,EAA5F,MAAM,YAAA,EAAE,IAAI,UAAgF,CAAA;QACpG,IAAM,aAAa,GAAW,MAAM,CAAA;QACpC,IAAI,aAAa,KAAK,IAAI,EAAE;YAC1B,aAAa;YACb,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAA;SACjC;aAAM,IAAI,aAAa,KAAK,IAAI,EAAE;YACjC,aAAa;YACb,OAAO,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAA;SACjF;aAAM;YACL,MAAM,IAAI,yBAAgB,CAAC,sBAAM,CAAC,KAAK,EAAE,mCAAiC,aAAa,MAAG,CAAC,CAAA;SAC5F;IACH,CAAC;IAEa,wBAAa,GAA3B,UAA4B,OAAe;QACzC,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;YAC5B,aAAa;YACb,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;SACxE;aAAM,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;YACnC,aAAa;YACb,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,0BAA0B,CAAC,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;SAC1G;aAAM;YACL,MAAM,IAAI,KAAK,CAAC,mCAAiC,OAAO,MAAG,CAAC,CAAA;SAC7D;IACH,CAAC;IAEa,4BAAiB,GAA/B,UAAgC,IAAmB;QACjD,OAAO,KAAG,UAAU,CAAC,SAAS,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,EAAI,CAAA;IAC1D,CAAC;IAEa,mBAAQ,GAAtB,UAAuB,MAAyB;QAC9C,IAAI,GAAa,CAAA;QACjB,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;YAC9B,GAAG,GAAG,UAAU,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAA;SAC1C;aAAM;YACL,GAAG,GAAG,MAAM,CAAA;SACb;QACD,IAAM,IAAI,GAAG,GAAG,CAAC,KAAK,EAAE,CAAA;QACxB,QAAQ,IAAI,EAAE;YACZ,KAAK,IAAI,EAAE,OAAO;gBAChB,IAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,EAAE,CAAA;gBAC5B,IAAI,QAAQ,KAAK,uCAAkB,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;oBACrE,OAAO,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;iBACjC;gBACD,MAAM,IAAI,yBAAgB,CAAC,sBAAM,CAAC,KAAK,EAAE,yBAAyB,CAAC,CAAA;YACrE,KAAK,uCAAkB,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC;gBACzD,IAAM,QAAQ,GAAa,EAAE,CAAA;gBAC7B,IAAI,IAAI,SAAoB,CAAA;gBAC5B,GAAG;oBACD,IAAI,GAAG,GAAG,CAAC,KAAK,EAAE,CAAA;oBAClB,IAAI,IAAI,KAAK,SAAS,EAAE;wBACtB,MAAK;qBACN;oBACD,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;iBACpB,QAAQ,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,EAAC;gBAEnC,OAAO,2BAAY,CAAC,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;YACzE,KAAK,uCAAkB,CAAC,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;gBAC5D,IAAM,YAAY,GAAG,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;gBAE7D,OAAO,iCAAe,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,CAAA;YAClF,KAAK,IAAI,EAAE,kBAAkB;gBAC3B,OAAO,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;YACjC,KAAK,uCAAkB,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;gBAC3D,OAAO,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;YAClC,KAAK,uCAAkB,CAAC,eAAe,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC;gBAC3D,IAAM,WAAW,GAAG,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;gBAE5D,OAAO,+BAAc,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAA;YACjE;gBACE,MAAM,IAAI,yBAAgB,CAAC,sBAAM,CAAC,KAAK,EAAE,wBAAsB,IAAM,CAAC,CAAA;SACzE;IACH,CAAC;IAEmB,qBAAU,GAA9B,UAA+B,KAAoB;;;;;4BACjD,qBAAM,MAAM,CAAC,KAAK,EAAA;;wBAAlB,SAAkB,CAAA;wBAEZ,MAAM,GAAW,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAA;wBACxE,IAAI,GAAe,MAAM,CAAC,kBAAkB,CAAC,EAAE,EAAE,MAAM,CAAC,CAAA;wBAE9D,sBAAO,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAA;;;;KAC3F;IAEc,0BAAe,GAA9B,UAA+B,GAAW;QACxC,IAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAA;QAC7E,IAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,UAAC,CAAC,EAAE,CAAC,IAAK,OAAA,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,EAA/B,CAA+B,CAAC,CAAA;QAClF,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,CAAA;QACnB,KAAK,IAAI,CAAC,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;YACxC,IAAI,CAAC,KAAK,CAAC,EAAE;gBACX,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;aACjB;iBAAM;gBACL,CAAC,GAAG,CAAC,CAAA,CAAC,2CAA2C;aAClD;SACF;QAED,OAAO,IAAI,mBAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAA;IACvE,CAAC;IAEc,2BAAgB,GAA/B,UAAgC,SAAiB;QAC/C,IAAM,QAAQ,GAA4B,oBAAc,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QAClF,IAAI,QAAQ,KAAK,IAAI,EAAE;YACrB,MAAM,IAAI,6BAAoB,CAAC,sBAAM,CAAC,KAAK,EAAE,4BAA4B,CAAC,CAAA;SAC3E;QAED,OAAO,QAAQ,CAAA;IACjB,CAAC;IAEc,oBAAS,GAAxB,UAAyB,GAAa;QACpC,IAAM,KAAK,GAAG,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;QACtC,IAAM,MAAM,GAAG,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;QAEvC,OAAO,6BAAa,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAA;IAC5C,CAAC;IAEc,oBAAS,GAAxB,UAAyB,GAAa;QACpC,IAAM,KAAK,GAAoB,EAAE,CAAA;QACjC,IAAM,WAAW,GAAG,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;QAC5D,IAAI,WAAW,GAAG,CAAC,EAAE;YACnB,IAAM,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,WAAW,CAAC,CAAA;YAC5C,OAAO,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC3B,IAAM,IAAI,GAAG,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAA;gBAC3C,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;aACjB;SACF;QAED,OAAO,6BAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAClC,CAAC;IAEc,sBAAW,GAA1B,UAA2B,GAAa;QACtC,OAAO,GAAG,CAAC,GAAG,CAAC,UAAC,IAAI,IAAK,OAAA,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAvC,CAAuC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAC5E,CAAC;IAEc,sBAAW,GAA1B,UAA2B,GAAa;QACtC,IAAM,WAAW,GAAG,GAAG,CAAC,MAAM,CAAC,UAAC,QAAQ,EAAE,IAAI;YAC5C,IAAI,IAAI,KAAK,IAAI,EAAE;gBACjB,OAAO,QAAQ,CAAA;aAChB;YAED,OAAO,KAAG,QAAQ,GAAG,IAAM,CAAA;QAC7B,CAAC,EAAE,EAAE,CAAC,CAAA;QAEN,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;YAC1B,OAAO,QAAQ,CAAC,WAAW,EAAE,EAAE,CAAC,CAAA;SACjC;QAED,OAAO,CAAC,CAAA;IACV,CAAC;IAEc,6BAAkB,GAAjC,UAAkC,OAAe,EAAE,MAAc;QAC/D,IAAM,MAAM,GAAW,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,CAAA;QAChD,IAAM,IAAI,GAAW,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC,CAAA;QAEpE,OAAO,EAAE,MAAM,QAAA,EAAE,IAAI,MAAA,EAAE,CAAA;IACzB,CAAC;IAEa,yBAAc,GAA5B,UAA6B,KAAsB;QACjD,IAAM,aAAa,GAAW,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;QAEvF,cAAc;QACR,IAAA,KAAqD,IAAI,CAAC,kBAAkB,CAAC,aAAa,EAAE,CAAC,CAAC,EAA5F,MAAM,YAAA,EAAE,IAAI,UAAgF,CAAA;QACpG,IAAM,gBAAgB,GAAW,MAAM,CAAA;QACvC,QAAQ,gBAAgB,EAAE;YACxB,KAAK,IAAI;gBACP,OAAO,IAAI,CAAC,0BAA0B,CAAC,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAA;YACtE,KAAK,IAAI;gBACP,OAAO,IAAI,CAAC,0BAA0B,CAAC,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAA;YACtE,KAAK,IAAI;gBACP,OAAO,IAAI,CAAC,0BAA0B,CAAC,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAA;YACtE;gBACE,MAAM,IAAI,yBAAgB,CAAC,sBAAM,CAAC,KAAK,EAAE,mCAAiC,aAAa,MAAG,CAAC,CAAA;SAC9F;IACH,CAAC;IAEc,0BAAe,GAA9B,UAA+B,OAAe;QAC5C,IAAI,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE;YAC7B,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,0BAA0B,CAAC,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;SAC3G;aAAM,IAAI,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE;YACpC,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,0BAA0B,CAAC,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;SAC3G;aAAM,IAAI,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE;YACpC,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,0BAA0B,CAAC,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;SAC3G;aAAM;YACL,MAAM,IAAI,KAAK,CAAC,mCAAiC,OAAO,MAAG,CAAC,CAAA;SAC7D;IACH,CAAC;IAEc,qCAA0B,GAAzC,UAA0C,gBAAwB,EAAE,WAAuB;QACzF,IAAM,SAAS,GAAW,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;QAElE,OAAO,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,GAAG,gBAAgB,EAAE,KAAK,CAAC,CAAC,CAAA;IAC3E,CAAC;IAEc,qCAA0B,GAAzC,UAA0C,OAAe,EAAE,WAAuB;QAChF,IAAM,OAAO,GAAW,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;QAEjD,OAAO,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAA;IAC1C,CAAC;IA/OD,kFAAkF;IAC3D,wBAAa,GAYhC;QACF,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;QAC/C,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;QAC/C,GAAG,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;QAC/C,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC;QAC7C,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC;QACpD,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;QACnD,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;QAC1D,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QAC5C,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;QACpD,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC;QACpD,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;KACpD,CAAA;IAEsB,oBAAS,GAK5B;QACF,KAAK,EAAE,IAAI;QACX,WAAW,EAAE,IAAI;QACjB,SAAS,EAAE,IAAI;QACf,OAAO,EAAE,IAAI;KACd,CAAA;IA2MH,iBAAC;CAAA,AAjPD,IAiPC;AAjPY,gCAAU"}
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: {
@@ -102,6 +102,7 @@ var TezosContract_1 = require("../contract/TezosContract");
102
102
  var TezosAddress_1 = require("../TezosAddress");
103
103
  var TezosProtocol_1 = require("../TezosProtocol");
104
104
  var TezosProtocolOptions_1 = require("../TezosProtocolOptions");
105
+ var MichelsonAddress_1 = require("../types/michelson/primitives/MichelsonAddress");
105
106
  var TezosOperationType_1 = require("../types/TezosOperationType");
106
107
  var TezosSaplingNodeClient_1 = require("./node/TezosSaplingNodeClient");
107
108
  var TezosSaplingAddress_1 = require("./TezosSaplingAddress");
@@ -327,80 +328,97 @@ var TezosSaplingProtocol = /** @class */ (function (_super) {
327
328
  };
328
329
  TezosSaplingProtocol.prototype.signWithPrivateKey = function (privateKey, transaction) {
329
330
  return __awaiter(this, void 0, void 0, function () {
330
- var stateTree, forgedTransaction, signed;
331
+ var stateTree, boundData, forgedTransaction;
331
332
  return __generator(this, function (_a) {
332
333
  switch (_a.label) {
333
334
  case 0: return [4 /*yield*/, this.state.getStateTreeFromStateDiff(transaction.stateDiff)];
334
335
  case 1:
335
336
  stateTree = _a.sent();
336
- return [4 /*yield*/, this.forger.forgeSaplingTransaction(transaction.ins, transaction.outs, stateTree, this.getAntiReplay(transaction.chainId, transaction.contractAddress), privateKey)];
337
+ boundData = transaction.unshieldTarget && transaction.unshieldTarget.length > 0
338
+ ? this.createAddressBoundData(transaction.unshieldTarget)
339
+ : undefined;
340
+ return [4 /*yield*/, this.forger.forgeSaplingTransaction(transaction.ins, transaction.outs, stateTree, this.getAntiReplay(transaction.chainId, transaction.contractAddress), boundData, privateKey)];
337
341
  case 2:
338
342
  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)];
343
+ return [2 /*return*/, this.encoder.encodeTransaction(forgedTransaction).toString('hex')];
341
344
  }
342
345
  });
343
346
  });
344
347
  };
345
348
  TezosSaplingProtocol.prototype.getTransactionDetails = function (transaction, data) {
346
349
  return __awaiter(this, void 0, void 0, function () {
347
- var tx, airGapTxs, from, parameters, wrappedTransactions, details, wrappedOperation, _a, _b, _c;
350
+ var tx, airGapTxs, unshieldTarget, from, details, wrappedOperation, _a, _b, _c;
348
351
  return __generator(this, function (_d) {
349
352
  switch (_d.label) {
350
353
  case 0:
351
354
  tx = transaction.transaction;
352
355
  airGapTxs = [];
353
- if (!this.isRawTezosSaplingTransaction(tx)) return [3 /*break*/, 3];
356
+ if (!this.isRawTezosSaplingTransaction(tx)) return [3 /*break*/, 2];
357
+ unshieldTarget = tx.unshieldTarget.length > 0 ? tx.unshieldTarget : undefined;
354
358
  return [4 /*yield*/, this.getAddressFromPublicKey(transaction.publicKey)];
355
359
  case 1:
356
360
  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
361
  details = this.bookkeeper
362
- .getUnsignedTransactionDetails(from, tx.ins, tx.outs, wrappedTransactions)
362
+ .getUnsignedTransactionDetails(from, tx.ins, tx.outs, unshieldTarget)
363
363
  .map(function (details) { return (__assign(__assign({}, details), { extra: __assign(__assign({}, details.extra), { destination: tx.contractAddress, chainId: tx.chainId }), transactionDetails: tx })); });
364
364
  airGapTxs.push.apply(airGapTxs, details);
365
- return [3 /*break*/, 6];
366
- case 3: return [4 /*yield*/, this.tezosProtocol.unforgeUnsignedTezosWrappedOperation(tx.binaryTransaction)];
367
- case 4:
365
+ return [3 /*break*/, 5];
366
+ case 2: return [4 /*yield*/, this.tezosProtocol.unforgeUnsignedTezosWrappedOperation(tx.binaryTransaction)];
367
+ case 3:
368
368
  wrappedOperation = _d.sent();
369
369
  _b = (_a = airGapTxs.push).apply;
370
370
  _c = [airGapTxs];
371
371
  return [4 /*yield*/, this.getTransactionDetailsFromWrappedOperation(wrappedOperation, data === null || data === void 0 ? void 0 : data.knownViewingKeys)];
372
- case 5:
372
+ case 4:
373
373
  _b.apply(_a, _c.concat([(_d.sent())]));
374
- _d.label = 6;
375
- case 6: return [2 /*return*/, this.filterOutPaybacks(airGapTxs)];
374
+ _d.label = 5;
375
+ case 5: return [2 /*return*/, this.filterOutPaybacks(airGapTxs)];
376
376
  }
377
377
  });
378
378
  });
379
379
  };
380
380
  TezosSaplingProtocol.prototype.getTransactionDetailsFromSigned = function (transaction, data) {
381
381
  return __awaiter(this, void 0, void 0, function () {
382
- var airGapTxs, partialDetails, wrappedOperation, _a, _b, _c;
383
- var _this = this;
384
- return __generator(this, function (_d) {
385
- switch (_d.label) {
382
+ var airGapTxs, tx, defaultDetails, partialDetails, wrappedOperation, _a, _b, _c, _d, partialDetails;
383
+ return __generator(this, function (_e) {
384
+ switch (_e.label) {
386
385
  case 0:
387
386
  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)];
387
+ tx = transaction.transaction;
388
+ defaultDetails = {
389
+ from: ['Shielded Pool'],
390
+ to: ['Shielded Pool'],
391
+ isInbound: false,
392
+ amount: '0',
393
+ fee: '0',
394
+ protocolIdentifier: this.identifier,
395
+ network: this.options.network
396
+ };
397
+ if (!this.contract.areValidParameters(tx)) return [3 /*break*/, 2];
398
+ return [4 /*yield*/, this.getPartialDetailsFromContractParameters(tx, data === null || data === void 0 ? void 0 : data.knownViewingKeys)];
390
399
  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)];
400
+ partialDetails = _e.sent();
401
+ airGapTxs.push.apply(airGapTxs, partialDetails.map(function (partial) { return (__assign(__assign({}, defaultDetails), partial)); }));
402
+ return [3 /*break*/, 7];
403
+ case 2:
404
+ _e.trys.push([2, 5, , 7]);
405
+ return [4 /*yield*/, this.tezosProtocol.unforgeSignedTezosWrappedOperation(tx)];
395
406
  case 3:
396
- wrappedOperation = _d.sent();
407
+ wrappedOperation = _e.sent();
397
408
  _b = (_a = airGapTxs.push).apply;
398
409
  _c = [airGapTxs];
399
410
  return [4 /*yield*/, this.getTransactionDetailsFromWrappedOperation(wrappedOperation, data === null || data === void 0 ? void 0 : data.knownViewingKeys)];
400
411
  case 4:
401
- _b.apply(_a, _c.concat([(_d.sent())]));
402
- _d.label = 5;
403
- case 5: return [2 /*return*/, this.filterOutPaybacks(airGapTxs)];
412
+ _b.apply(_a, _c.concat([(_e.sent())]));
413
+ return [3 /*break*/, 7];
414
+ case 5:
415
+ _d = _e.sent();
416
+ return [4 /*yield*/, this.bookkeeper.getTransactionsPartialDetails([tx], data === null || data === void 0 ? void 0 : data.knownViewingKeys)];
417
+ case 6:
418
+ partialDetails = _e.sent();
419
+ airGapTxs.push.apply(airGapTxs, partialDetails.map(function (partial) { return (__assign(__assign({}, defaultDetails), partial)); }));
420
+ return [3 /*break*/, 7];
421
+ case 7: return [2 /*return*/, this.filterOutPaybacks(airGapTxs)];
404
422
  }
405
423
  });
406
424
  });
@@ -438,15 +456,15 @@ var TezosSaplingProtocol = /** @class */ (function (_super) {
438
456
  TezosSaplingProtocol.prototype.getPartialDetailsFromContractParameters = function (rawOrParsed, knownViewingKeys) {
439
457
  if (knownViewingKeys === void 0) { knownViewingKeys = []; }
440
458
  return __awaiter(this, void 0, void 0, function () {
441
- var parameters, wrappedTransactions;
459
+ var parameters, txs;
442
460
  return __generator(this, function (_a) {
443
461
  switch (_a.label) {
444
462
  case 0:
445
463
  parameters = typeof rawOrParsed === 'string' ? this.contract.parseParameters(rawOrParsed) : rawOrParsed;
446
464
  return [4 /*yield*/, this.parseParameters(parameters)];
447
465
  case 1:
448
- wrappedTransactions = _a.sent();
449
- return [2 /*return*/, this.bookkeeper.getWrappedTransactionsPartialDetails(wrappedTransactions, knownViewingKeys)];
466
+ txs = _a.sent();
467
+ return [2 /*return*/, this.bookkeeper.getTransactionsPartialDetails(txs, knownViewingKeys)];
450
468
  }
451
469
  });
452
470
  });
@@ -515,19 +533,21 @@ var TezosSaplingProtocol = /** @class */ (function (_super) {
515
533
  });
516
534
  });
517
535
  };
518
- TezosSaplingProtocol.prototype.wrapSaplingTransactions = function (publicKey, transactions, fee, overrideFees) {
536
+ TezosSaplingProtocol.prototype.wrapSaplingTransactions = function (publicKey, transactionsOrString, fee, overrideFees) {
519
537
  if (overrideFees === void 0) { overrideFees = false; }
520
538
  return __awaiter(this, void 0, void 0, function () {
521
- var operations, parameters, contractCalls, tezosWrappedOperation, binaryTx, error_1, rpcErrors, cannotPayStorageFee, balanceTooLowError;
539
+ var operations, parameters, transactions, contractCalls, tezosWrappedOperation, binaryTx, error_1, rpcErrors, cannotPayStorageFee, balanceTooLowError;
522
540
  var _this = this;
523
541
  return __generator(this, function (_a) {
524
542
  switch (_a.label) {
525
543
  case 0:
526
- if (!(typeof transactions === 'string')) return [3 /*break*/, 1];
527
- parameters = this.contract.parseParameters(transactions);
544
+ if (!(typeof transactionsOrString === 'string' && this.contract.areValidParameters(transactionsOrString))) return [3 /*break*/, 1];
545
+ parameters = this.contract.parseParameters(transactionsOrString);
528
546
  operations = [this.prepareTezosOperation(parameters, fee)];
529
547
  return [3 /*break*/, 3];
530
- case 1: return [4 /*yield*/, this.prepareContractCalls(transactions)];
548
+ case 1:
549
+ transactions = Array.isArray(transactionsOrString) ? transactionsOrString : [transactionsOrString];
550
+ return [4 /*yield*/, this.prepareContractCalls(transactions)];
531
551
  case 2:
532
552
  contractCalls = _a.sent();
533
553
  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 +593,30 @@ var TezosSaplingProtocol = /** @class */ (function (_super) {
573
593
  };
574
594
  TezosSaplingProtocol.prototype.prepareShieldTransaction = function (publicKey, recipient, value, fee, data) {
575
595
  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
- ])];
596
+ var encodedTransaction;
597
+ return __generator(this, function (_a) {
598
+ switch (_a.label) {
599
+ case 0: return [4 /*yield*/, this.mint(recipient, value)];
588
600
  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)];
601
+ encodedTransaction = _a.sent();
602
+ return [2 /*return*/, this.wrapSaplingTransactions(publicKey, [encodedTransaction], fee, data === null || data === void 0 ? void 0 : data.overrideFees)];
606
603
  }
607
604
  });
608
605
  });
609
606
  };
610
607
  TezosSaplingProtocol.prototype.prepareUnshieldTransaction = function (viewingKey, recipient, value, data) {
611
608
  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) {
609
+ var burnTransaction;
610
+ return __generator(this, function (_a) {
611
+ switch (_a.label) {
615
612
  case 0:
616
613
  if (!TezosAddress_1.TezosAddress.isTzAddress(recipient)) {
617
614
  return [2 /*return*/, Promise.reject("Invalid recpient, expected a 'tz' address, got " + recipient)];
618
615
  }
619
- return [4 /*yield*/, Promise.all([
620
- this.nodeClient.getSaplingStateDiff(),
621
- this.nodeClient.getChainId()
622
- ])];
616
+ return [4 /*yield*/, this.burn(viewingKey, value)];
623
617
  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
- }];
618
+ burnTransaction = _a.sent();
619
+ return [2 /*return*/, __assign(__assign({}, burnTransaction), { unshieldTarget: recipient })];
643
620
  }
644
621
  });
645
622
  });
@@ -647,7 +624,7 @@ var TezosSaplingProtocol = /** @class */ (function (_super) {
647
624
  TezosSaplingProtocol.prototype.prepareSaplingTransaction = function (viewingKey, recipient, value, data) {
648
625
  var _a, _b;
649
626
  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;
627
+ var dummyInputsAmount, dummyOutputsAmount, _c, stateDiff, chainId, _d, inputs, toSpend, address, paymentOutput, _e, paybackOutput, _f, dummyInputs, dummyOutputs;
651
628
  var _this = this;
652
629
  return __generator(this, function (_g) {
653
630
  switch (_g.label) {
@@ -674,14 +651,11 @@ var TezosSaplingProtocol = /** @class */ (function (_super) {
674
651
  case 4:
675
652
  paymentOutput = _e.apply(this, [_g.sent(), value]);
676
653
  paybackOutput = this.createPaybackOutput(address, toSpend, value);
677
- return [4 /*yield*/, this.preparePartialContractCall()];
678
- case 5:
679
- contractCall = _g.sent();
680
654
  return [4 /*yield*/, Promise.all([
681
655
  Promise.all(Array.from({ length: dummyInputsAmount }, function (_v, _k) { return _this.createDummyInput(address); })),
682
656
  Promise.all(Array.from({ length: dummyOutputsAmount }, function (_v, _k) { return _this.createDummyOutput(); }))
683
657
  ])];
684
- case 6:
658
+ case 5:
685
659
  _f = _g.sent(), dummyInputs = _f[0], dummyOutputs = _f[1];
686
660
  return [2 /*return*/, {
687
661
  ins: inputs.concat(dummyInputs),
@@ -689,7 +663,77 @@ var TezosSaplingProtocol = /** @class */ (function (_super) {
689
663
  contractAddress: this.options.config.contractAddress,
690
664
  chainId: chainId,
691
665
  stateDiff: stateDiff,
692
- callParameters: JSON.stringify(contractCall.toJSON())
666
+ unshieldTarget: ''
667
+ }];
668
+ }
669
+ });
670
+ });
671
+ };
672
+ TezosSaplingProtocol.prototype.mint = function (recipient, value) {
673
+ return __awaiter(this, void 0, void 0, function () {
674
+ var _a, saplingStateDiff, chainId, output, stateTree, forgedTransaction;
675
+ var _b;
676
+ return __generator(this, function (_c) {
677
+ switch (_c.label) {
678
+ case 0:
679
+ if (!TezosSaplingAddress_1.TezosSaplingAddress.isZetAddress(recipient)) {
680
+ return [2 /*return*/, Promise.reject("Invalid recipient, expected a 'zet' address, got " + recipient)];
681
+ }
682
+ return [4 /*yield*/, Promise.all([
683
+ this.nodeClient.getSaplingStateDiff(),
684
+ this.nodeClient.getChainId()
685
+ ])];
686
+ case 1:
687
+ _a = _c.sent(), saplingStateDiff = _a[0], chainId = _a[1];
688
+ _b = {};
689
+ return [4 /*yield*/, TezosSaplingAddress_1.TezosSaplingAddress.fromValue(recipient)];
690
+ case 2:
691
+ output = (_b.address = (_c.sent()).getValue(),
692
+ _b.value = value,
693
+ _b.memo = Buffer.alloc(this.options.config.memoSize).toString('hex'),
694
+ _b.browsable = true,
695
+ _b);
696
+ return [4 /*yield*/, this.state.getStateTreeFromStateDiff(saplingStateDiff, true)];
697
+ case 3:
698
+ stateTree = _c.sent();
699
+ return [4 /*yield*/, this.forger.forgeSaplingTransaction([], [output], stateTree, this.getAntiReplay(chainId))];
700
+ case 4:
701
+ forgedTransaction = _c.sent();
702
+ return [2 /*return*/, this.encoder.encodeTransaction(forgedTransaction).toString('hex')];
703
+ }
704
+ });
705
+ });
706
+ };
707
+ TezosSaplingProtocol.prototype.burn = function (viewingKey, value) {
708
+ return __awaiter(this, void 0, void 0, function () {
709
+ var _a, stateDiff, chainId, _b, inputs, toSpend, paybackOutput;
710
+ var _c;
711
+ return __generator(this, function (_d) {
712
+ switch (_d.label) {
713
+ case 0: return [4 /*yield*/, Promise.all([
714
+ this.nodeClient.getSaplingStateDiff(),
715
+ this.nodeClient.getChainId()
716
+ ])];
717
+ case 1:
718
+ _a = _d.sent(), stateDiff = _a[0], chainId = _a[1];
719
+ return [4 /*yield*/, this.chooseInputs(viewingKey, stateDiff.commitments_and_ciphertexts, stateDiff.nullifiers, value)];
720
+ case 2:
721
+ _b = _d.sent(), inputs = _b[0], toSpend = _b[1];
722
+ _c = {};
723
+ return [4 /*yield*/, this.getAddressFromPublicKey(viewingKey)];
724
+ case 3:
725
+ paybackOutput = (_c.address = (_d.sent()).getValue(),
726
+ _c.value = toSpend.minus(value).toString(),
727
+ _c.memo = Buffer.alloc(this.options.config.memoSize).toString('hex'),
728
+ _c.browsable = true,
729
+ _c);
730
+ return [2 /*return*/, {
731
+ ins: inputs,
732
+ outs: [paybackOutput],
733
+ contractAddress: this.options.config.contractAddress,
734
+ chainId: chainId,
735
+ stateDiff: stateDiff,
736
+ unshieldTarget: ''
693
737
  }];
694
738
  }
695
739
  });
@@ -722,41 +766,13 @@ var TezosSaplingProtocol = /** @class */ (function (_super) {
722
766
  });
723
767
  });
724
768
  };
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
769
  TezosSaplingProtocol.prototype.createPaymentOutput = function (address, value, memo) {
755
770
  if (memo === void 0) { memo = Buffer.alloc(this.options.config.memoSize); }
756
771
  return {
757
772
  address: address.getValue(),
758
773
  value: new bignumber_1.default(value).toString(),
759
- memo: memo.toString('hex')
774
+ memo: memo.toString('hex'),
775
+ browsable: true
760
776
  };
761
777
  };
762
778
  TezosSaplingProtocol.prototype.createPaybackOutput = function (address, toSpend, value, memo) {
@@ -766,7 +782,8 @@ var TezosSaplingProtocol = /** @class */ (function (_super) {
766
782
  ? {
767
783
  address: address.getValue(),
768
784
  value: paybackValue.toString(),
769
- memo: memo.toString('hex')
785
+ memo: memo.toString('hex'),
786
+ browsable: true
770
787
  }
771
788
  : undefined;
772
789
  };
@@ -803,7 +820,8 @@ var TezosSaplingProtocol = /** @class */ (function (_super) {
803
820
  return [2 /*return*/, {
804
821
  address: address.getValue(),
805
822
  value: '0',
806
- memo: Buffer.from(memo).toString('hex')
823
+ memo: Buffer.from(memo).toString('hex'),
824
+ browsable: false
807
825
  }];
808
826
  }
809
827
  });
@@ -826,6 +844,10 @@ var TezosSaplingProtocol = /** @class */ (function (_super) {
826
844
  });
827
845
  });
828
846
  };
847
+ TezosSaplingProtocol.prototype.createAddressBoundData = function (address) {
848
+ var michelson = MichelsonAddress_1.MichelsonAddress.from(__1.TezosUtils.encodeTzAddress(address));
849
+ return __1.TezosUtils.packMichelsonType(michelson);
850
+ };
829
851
  TezosSaplingProtocol.prototype.getAntiReplay = function (chainId, contractAddress) {
830
852
  return (contractAddress !== null && contractAddress !== void 0 ? contractAddress : this.options.config.contractAddress) + chainId;
831
853
  };
@@ -926,10 +948,8 @@ var TezosSaplingProtocol = /** @class */ (function (_super) {
926
948
  'outs' in transaction &&
927
949
  'contractAddress' in transaction &&
928
950
  'chainId' in transaction &&
929
- 'stateDiff' in transaction &&
930
- 'callParameters' in transaction);
951
+ 'stateDiff' in transaction);
931
952
  };
932
- TezosSaplingProtocol.TRANSACTION_PLACEHOLDER = 'TRANSACTION_PLACEHOLDER';
933
953
  return TezosSaplingProtocol;
934
954
  }(NonExtendedProtocol_1.NonExtendedProtocol));
935
955
  exports.TezosSaplingProtocol = TezosSaplingProtocol;