@ledgerhq/coin-tezos 0.6.9 → 0.7.0-nightly.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.
@@ -1,4 +1,4 @@
1
1
 
2
- > @ledgerhq/coin-tezos@0.6.9 build /home/runner/work/ledger-live/ledger-live/libs/coin-modules/coin-tezos
2
+ > @ledgerhq/coin-tezos@0.6.9-nightly.1 build /home/runner/work/ledger-live/ledger-live/libs/coin-modules/coin-tezos
3
3
  > tsc && tsc -m ES6 --outDir lib-es
4
4
 
package/CHANGELOG.md CHANGED
@@ -1,20 +1,31 @@
1
1
  # @ledgerhq/coin-tezos
2
2
 
3
- ## 0.6.9
3
+ ## 0.7.0-nightly.2
4
+
5
+ ### Minor Changes
6
+
7
+ - [#8432](https://github.com/LedgerHQ/ledger-live/pull/8432) [`daa059a`](https://github.com/LedgerHQ/ledger-live/commit/daa059a90eb4381a0936c4a3703e8061db24072a) Thanks [@sprohaszka-ledger](https://github.com/sprohaszka-ledger)! - Alpaca allows delegate and undelegate tx crafting
8
+
9
+ ### Patch Changes
10
+
11
+ - Updated dependencies [[`daa059a`](https://github.com/LedgerHQ/ledger-live/commit/daa059a90eb4381a0936c4a3703e8061db24072a)]:
12
+ - @ledgerhq/coin-framework@0.20.0-nightly.2
13
+
14
+ ## 0.6.9-nightly.1
4
15
 
5
16
  ### Patch Changes
6
17
 
7
- - Updated dependencies [[`5ce33a4`](https://github.com/LedgerHQ/ledger-live/commit/5ce33a417ecc87face54c1864aa49476c5f394b9), [`a52f6ae`](https://github.com/LedgerHQ/ledger-live/commit/a52f6ae3d49ea8daea42d9cdc24e9dd0d6d0f371), [`748cf14`](https://github.com/LedgerHQ/ledger-live/commit/748cf146b3e903172831e7e5ddbc29a3565c8932), [`61f8b03`](https://github.com/LedgerHQ/ledger-live/commit/61f8b033f710369171e277f5c0faede636207160)]:
8
- - @ledgerhq/types-live@6.53.1
9
- - @ledgerhq/coin-framework@0.19.1
18
+ - Updated dependencies [[`0b51d37`](https://github.com/LedgerHQ/ledger-live/commit/0b51d37762c73a88d7204d1fcc3bb60a110568ed), [`724fa8b`](https://github.com/LedgerHQ/ledger-live/commit/724fa8b29cbda74a729c5756f91c5c9b745fdbdb)]:
19
+ - @ledgerhq/coin-framework@0.20.0-nightly.1
20
+ - @ledgerhq/types-live@6.54.0-nightly.1
10
21
 
11
- ## 0.6.9-next.0
22
+ ## 0.6.9-nightly.0
12
23
 
13
24
  ### Patch Changes
14
25
 
15
- - Updated dependencies [[`5ce33a4`](https://github.com/LedgerHQ/ledger-live/commit/5ce33a417ecc87face54c1864aa49476c5f394b9), [`a52f6ae`](https://github.com/LedgerHQ/ledger-live/commit/a52f6ae3d49ea8daea42d9cdc24e9dd0d6d0f371), [`748cf14`](https://github.com/LedgerHQ/ledger-live/commit/748cf146b3e903172831e7e5ddbc29a3565c8932), [`61f8b03`](https://github.com/LedgerHQ/ledger-live/commit/61f8b033f710369171e277f5c0faede636207160)]:
16
- - @ledgerhq/types-live@6.53.1-next.0
17
- - @ledgerhq/coin-framework@0.19.1-next.0
26
+ - Updated dependencies [[`61f8b03`](https://github.com/LedgerHQ/ledger-live/commit/61f8b033f710369171e277f5c0faede636207160)]:
27
+ - @ledgerhq/types-live@6.53.1-nightly.0
28
+ - @ledgerhq/coin-framework@0.19.1-nightly.0
18
29
 
19
30
  ## 0.6.8
20
31
 
@@ -1,4 +1,4 @@
1
- import type { Api } from "@ledgerhq/coin-framework/api/index";
1
+ import { type Api } from "@ledgerhq/coin-framework/api/index";
2
2
  import { type TezosConfig } from "../config";
3
3
  export declare function createApi(config: TezosConfig): Api;
4
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,oCAAoC,CAAC;AAC9D,OAAmB,EAAE,KAAK,WAAW,EAAE,MAAM,WAAW,CAAC;AAazD,wBAAgB,SAAS,CAAC,MAAM,EAAE,WAAW,GAAG,GAAG,CAYlD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,GAAG,EAET,MAAM,oCAAoC,CAAC;AAC5C,OAAmB,EAAE,KAAK,WAAW,EAAE,MAAM,WAAW,CAAC;AAazD,wBAAgB,SAAS,CAAC,MAAM,EAAE,WAAW,GAAG,GAAG,CAYlD"}
@@ -9,6 +9,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
9
9
  });
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
+ const index_1 = require("@ledgerhq/coin-framework/api/index");
12
13
  const _1 = require(".");
13
14
  /**
14
15
  * https://teztnets.com/ghostnet-about
@@ -80,16 +81,38 @@ describe("Tezos Api", () => {
80
81
  }));
81
82
  });
82
83
  describe("craftTransaction", () => {
83
- it("returns a raw transaction", () => __awaiter(void 0, void 0, void 0, function* () {
84
+ it.each([
85
+ {
86
+ type: "send",
87
+ rawTx: "6c0053ddb3b3a89ed5c8d8326066032beac6de225c9e010300000a0000a31e81ac3425310e3274a4698a793b2839dc0afa00",
88
+ },
89
+ {
90
+ type: "delegate",
91
+ rawTx: "6e0053ddb3b3a89ed5c8d8326066032beac6de225c9e01030000ff00a31e81ac3425310e3274a4698a793b2839dc0afa",
92
+ },
93
+ {
94
+ type: "undelegate",
95
+ rawTx: "6e0053ddb3b3a89ed5c8d8326066032beac6de225c9e0103000000",
96
+ },
97
+ ])("returns a raw transaction with $type", (_a) => __awaiter(void 0, [_a], void 0, function* ({ type, rawTx }) {
84
98
  // When
85
99
  const result = yield module.craftTransaction(address, {
86
- mode: "send",
100
+ type,
87
101
  recipient: "tz1aWXP237BLwNHJcCD4b3DutCevhqq2T1Z9",
88
102
  amount: BigInt(10),
89
103
  fee: BigInt(1),
90
104
  });
91
105
  // Then
92
- expect(result.slice(64)).toEqual("6c0053ddb3b3a89ed5c8d8326066032beac6de225c9e010300000a0000a31e81ac3425310e3274a4698a793b2839dc0afa00");
106
+ expect(result.slice(64)).toEqual(rawTx);
107
+ }));
108
+ it("throws an error if type in 'send' or 'delegate' or 'undelegate'", () => __awaiter(void 0, void 0, void 0, function* () {
109
+ // When
110
+ yield expect(module.craftTransaction(address, {
111
+ type: "WHATEVERTYPE",
112
+ recipient: "tz1aWXP237BLwNHJcCD4b3DutCevhqq2T1Z9",
113
+ amount: BigInt(10),
114
+ fee: BigInt(1),
115
+ })).rejects.toThrow(index_1.IncorrectTypeError);
93
116
  }));
94
117
  });
95
118
  });
@@ -1 +1 @@
1
- {"version":3,"file":"index.integ.test.js","sourceRoot":"","sources":["../../src/api/index.integ.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.integ.test.js","sourceRoot":"","sources":["../../src/api/index.integ.test.ts"],"names":[],"mappings":"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"}
package/lib/api/index.js CHANGED
@@ -13,6 +13,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
13
13
  };
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
15
  exports.createApi = void 0;
16
+ const index_1 = require("@ledgerhq/coin-framework/api/index");
16
17
  const config_1 = __importDefault(require("../config"));
17
18
  const logic_1 = require("../logic");
18
19
  const tzkt_1 = __importDefault(require("../network/tzkt"));
@@ -29,9 +30,15 @@ function createApi(config) {
29
30
  };
30
31
  }
31
32
  exports.createApi = createApi;
32
- function craft(address, transaction) {
33
- return __awaiter(this, void 0, void 0, function* () {
34
- const { contents } = yield (0, logic_1.craftTransaction)({ address }, Object.assign(Object.assign({}, transaction), { type: "send", fee: { fees: transaction.fee.toString() } }));
33
+ function isTezosTransactionType(type) {
34
+ return ["send", "delegate", "undelegate"].includes(type);
35
+ }
36
+ function craft(address_1, _a) {
37
+ return __awaiter(this, arguments, void 0, function* (address, { type, recipient, amount, fee }) {
38
+ if (!isTezosTransactionType(type)) {
39
+ throw new index_1.IncorrectTypeError(type);
40
+ }
41
+ const { contents } = yield (0, logic_1.craftTransaction)({ address }, { recipient, amount, type, fee: { fees: fee.toString() } });
35
42
  return (0, logic_1.rawEncode)(contents);
36
43
  });
37
44
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,uDAAyD;AACzD,oCASkB;AAClB,2DAAkC;AAElC,SAAgB,SAAS,CAAC,MAAmB;IAC3C,gBAAU,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC,iCAAM,MAAM,KAAE,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAG,CAAC,CAAC;IAE5E,OAAO;QACL,SAAS,EAAT,iBAAS;QACT,OAAO,EAAP,eAAO;QACP,gBAAgB,EAAE,KAAK;QACvB,YAAY,EAAE,QAAQ;QACtB,UAAU,EAAV,kBAAU;QACV,SAAS,EAAT,iBAAS;QACT,cAAc,EAAd,sBAAc;KACf,CAAC;AACJ,CAAC;AAZD,8BAYC;AAED,SAAe,KAAK,CAClB,OAAe,EACf,WAIC;;QAED,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,IAAA,wBAAgB,EACzC,EAAE,OAAO,EAAE,kCACN,WAAW,KAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,WAAW,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,IAC1E,CAAC;QACF,OAAO,IAAA,iBAAS,EAAC,QAAQ,CAAC,CAAC;IAC7B,CAAC;CAAA;AAED,SAAe,QAAQ,CAAC,IAAY,EAAE,MAAc;;QAClD,MAAM,WAAW,GAAG,MAAM,cAAG,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;QACxD,IAAI,WAAW,CAAC,IAAI,KAAK,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAE5E,MAAM,aAAa,GAAG,MAAM,IAAA,oBAAY,EAAC;YACvC,OAAO,EAAE;gBACP,OAAO,EAAE,IAAI;gBACb,QAAQ,EAAE,WAAW,CAAC,QAAQ;gBAC9B,OAAO,EAAE,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC;gBACpC,IAAI,EAAE,WAAW,CAAC,SAAS;aAC5B;YACD,WAAW,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE;SAC/D,CAAC,CAAC;QACH,OAAO,aAAa,CAAC,aAAa,CAAC;IACrC,CAAC;CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,8DAI4C;AAC5C,uDAAyD;AACzD,oCASkB;AAClB,2DAAkC;AAElC,SAAgB,SAAS,CAAC,MAAmB;IAC3C,gBAAU,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC,iCAAM,MAAM,KAAE,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAG,CAAC,CAAC;IAE5E,OAAO;QACL,SAAS,EAAT,iBAAS;QACT,OAAO,EAAP,eAAO;QACP,gBAAgB,EAAE,KAAK;QACvB,YAAY,EAAE,QAAQ;QACtB,UAAU,EAAV,kBAAU;QACV,SAAS,EAAT,iBAAS;QACT,cAAc,EAAd,sBAAc;KACf,CAAC;AACJ,CAAC;AAZD,8BAYC;AAED,SAAS,sBAAsB,CAAC,IAAY;IAC1C,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC3D,CAAC;AACD,SAAe,KAAK;yDAClB,OAAe,EACf,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAkB;QAEhD,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,EAAE,CAAC;YAClC,MAAM,IAAI,0BAAkB,CAAC,IAAI,CAAC,CAAC;QACrC,CAAC;QAED,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,IAAA,wBAAgB,EACzC,EAAE,OAAO,EAAE,EACX,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,QAAQ,EAAE,EAAE,EAAE,CAC3D,CAAC;QACF,OAAO,IAAA,iBAAS,EAAC,QAAQ,CAAC,CAAC;IAC7B,CAAC;CAAA;AAED,SAAe,QAAQ,CAAC,IAAY,EAAE,MAAc;;QAClD,MAAM,WAAW,GAAG,MAAM,cAAG,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;QACxD,IAAI,WAAW,CAAC,IAAI,KAAK,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAE5E,MAAM,aAAa,GAAG,MAAM,IAAA,oBAAY,EAAC;YACvC,OAAO,EAAE;gBACP,OAAO,EAAE,IAAI;gBACb,QAAQ,EAAE,WAAW,CAAC,QAAQ;gBAC9B,OAAO,EAAE,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC;gBACpC,IAAI,EAAE,WAAW,CAAC,SAAS;aAC5B;YACD,WAAW,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE;SAC/D,CAAC,CAAC;QACH,OAAO,aAAa,CAAC,aAAa,CAAC;IACrC,CAAC;CAAA"}
@@ -1,4 +1,4 @@
1
- import type { Api } from "@ledgerhq/coin-framework/api/index";
1
+ import { type Api } from "@ledgerhq/coin-framework/api/index";
2
2
  import { type TezosConfig } from "../config";
3
3
  export declare function createApi(config: TezosConfig): Api;
4
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,oCAAoC,CAAC;AAC9D,OAAmB,EAAE,KAAK,WAAW,EAAE,MAAM,WAAW,CAAC;AAazD,wBAAgB,SAAS,CAAC,MAAM,EAAE,WAAW,GAAG,GAAG,CAYlD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,GAAG,EAET,MAAM,oCAAoC,CAAC;AAC5C,OAAmB,EAAE,KAAK,WAAW,EAAE,MAAM,WAAW,CAAC;AAazD,wBAAgB,SAAS,CAAC,MAAM,EAAE,WAAW,GAAG,GAAG,CAYlD"}
@@ -7,6 +7,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
7
7
  step((generator = generator.apply(thisArg, _arguments || [])).next());
8
8
  });
9
9
  };
10
+ import { IncorrectTypeError } from "@ledgerhq/coin-framework/api/index";
10
11
  import { createApi } from ".";
11
12
  /**
12
13
  * https://teztnets.com/ghostnet-about
@@ -78,16 +79,38 @@ describe("Tezos Api", () => {
78
79
  }));
79
80
  });
80
81
  describe("craftTransaction", () => {
81
- it("returns a raw transaction", () => __awaiter(void 0, void 0, void 0, function* () {
82
+ it.each([
83
+ {
84
+ type: "send",
85
+ rawTx: "6c0053ddb3b3a89ed5c8d8326066032beac6de225c9e010300000a0000a31e81ac3425310e3274a4698a793b2839dc0afa00",
86
+ },
87
+ {
88
+ type: "delegate",
89
+ rawTx: "6e0053ddb3b3a89ed5c8d8326066032beac6de225c9e01030000ff00a31e81ac3425310e3274a4698a793b2839dc0afa",
90
+ },
91
+ {
92
+ type: "undelegate",
93
+ rawTx: "6e0053ddb3b3a89ed5c8d8326066032beac6de225c9e0103000000",
94
+ },
95
+ ])("returns a raw transaction with $type", (_a) => __awaiter(void 0, [_a], void 0, function* ({ type, rawTx }) {
82
96
  // When
83
97
  const result = yield module.craftTransaction(address, {
84
- mode: "send",
98
+ type,
85
99
  recipient: "tz1aWXP237BLwNHJcCD4b3DutCevhqq2T1Z9",
86
100
  amount: BigInt(10),
87
101
  fee: BigInt(1),
88
102
  });
89
103
  // Then
90
- expect(result.slice(64)).toEqual("6c0053ddb3b3a89ed5c8d8326066032beac6de225c9e010300000a0000a31e81ac3425310e3274a4698a793b2839dc0afa00");
104
+ expect(result.slice(64)).toEqual(rawTx);
105
+ }));
106
+ it("throws an error if type in 'send' or 'delegate' or 'undelegate'", () => __awaiter(void 0, void 0, void 0, function* () {
107
+ // When
108
+ yield expect(module.craftTransaction(address, {
109
+ type: "WHATEVERTYPE",
110
+ recipient: "tz1aWXP237BLwNHJcCD4b3DutCevhqq2T1Z9",
111
+ amount: BigInt(10),
112
+ fee: BigInt(1),
113
+ })).rejects.toThrow(IncorrectTypeError);
91
114
  }));
92
115
  });
93
116
  });
@@ -1 +1 @@
1
- {"version":3,"file":"index.integ.test.js","sourceRoot":"","sources":["../../src/api/index.integ.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.integ.test.js","sourceRoot":"","sources":["../../src/api/index.integ.test.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
7
7
  step((generator = generator.apply(thisArg, _arguments || [])).next());
8
8
  });
9
9
  };
10
+ import { IncorrectTypeError, } from "@ledgerhq/coin-framework/api/index";
10
11
  import coinConfig from "../config";
11
12
  import { broadcast, combine, craftTransaction, estimateFees, getBalance, listOperations, lastBlock, rawEncode, } from "../logic";
12
13
  import api from "../network/tzkt";
@@ -22,9 +23,15 @@ export function createApi(config) {
22
23
  listOperations,
23
24
  };
24
25
  }
25
- function craft(address, transaction) {
26
- return __awaiter(this, void 0, void 0, function* () {
27
- const { contents } = yield craftTransaction({ address }, Object.assign(Object.assign({}, transaction), { type: "send", fee: { fees: transaction.fee.toString() } }));
26
+ function isTezosTransactionType(type) {
27
+ return ["send", "delegate", "undelegate"].includes(type);
28
+ }
29
+ function craft(address_1, _a) {
30
+ return __awaiter(this, arguments, void 0, function* (address, { type, recipient, amount, fee }) {
31
+ if (!isTezosTransactionType(type)) {
32
+ throw new IncorrectTypeError(type);
33
+ }
34
+ const { contents } = yield craftTransaction({ address }, { recipient, amount, type, fee: { fees: fee.toString() } });
28
35
  return rawEncode(contents);
29
36
  });
30
37
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":";;;;;;;;;AACA,OAAO,UAAgC,MAAM,WAAW,CAAC;AACzD,OAAO,EACL,SAAS,EACT,OAAO,EACP,gBAAgB,EAChB,YAAY,EACZ,UAAU,EACV,cAAc,EACd,SAAS,EACT,SAAS,GACV,MAAM,UAAU,CAAC;AAClB,OAAO,GAAG,MAAM,iBAAiB,CAAC;AAElC,MAAM,UAAU,SAAS,CAAC,MAAmB;IAC3C,UAAU,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC,iCAAM,MAAM,KAAE,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAG,CAAC,CAAC;IAE5E,OAAO;QACL,SAAS;QACT,OAAO;QACP,gBAAgB,EAAE,KAAK;QACvB,YAAY,EAAE,QAAQ;QACtB,UAAU;QACV,SAAS;QACT,cAAc;KACf,CAAC;AACJ,CAAC;AAED,SAAe,KAAK,CAClB,OAAe,EACf,WAIC;;QAED,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,gBAAgB,CACzC,EAAE,OAAO,EAAE,kCACN,WAAW,KAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,WAAW,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,IAC1E,CAAC;QACF,OAAO,SAAS,CAAC,QAAQ,CAAC,CAAC;IAC7B,CAAC;CAAA;AAED,SAAe,QAAQ,CAAC,IAAY,EAAE,MAAc;;QAClD,MAAM,WAAW,GAAG,MAAM,GAAG,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;QACxD,IAAI,WAAW,CAAC,IAAI,KAAK,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAE5E,MAAM,aAAa,GAAG,MAAM,YAAY,CAAC;YACvC,OAAO,EAAE;gBACP,OAAO,EAAE,IAAI;gBACb,QAAQ,EAAE,WAAW,CAAC,QAAQ;gBAC9B,OAAO,EAAE,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC;gBACpC,IAAI,EAAE,WAAW,CAAC,SAAS;aAC5B;YACD,WAAW,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE;SAC/D,CAAC,CAAC;QACH,OAAO,aAAa,CAAC,aAAa,CAAC;IACrC,CAAC;CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EACL,kBAAkB,GAGnB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,UAAgC,MAAM,WAAW,CAAC;AACzD,OAAO,EACL,SAAS,EACT,OAAO,EACP,gBAAgB,EAChB,YAAY,EACZ,UAAU,EACV,cAAc,EACd,SAAS,EACT,SAAS,GACV,MAAM,UAAU,CAAC;AAClB,OAAO,GAAG,MAAM,iBAAiB,CAAC;AAElC,MAAM,UAAU,SAAS,CAAC,MAAmB;IAC3C,UAAU,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC,iCAAM,MAAM,KAAE,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAG,CAAC,CAAC;IAE5E,OAAO;QACL,SAAS;QACT,OAAO;QACP,gBAAgB,EAAE,KAAK;QACvB,YAAY,EAAE,QAAQ;QACtB,UAAU;QACV,SAAS;QACT,cAAc;KACf,CAAC;AACJ,CAAC;AAED,SAAS,sBAAsB,CAAC,IAAY;IAC1C,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC3D,CAAC;AACD,SAAe,KAAK;yDAClB,OAAe,EACf,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAkB;QAEhD,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,EAAE,CAAC;YAClC,MAAM,IAAI,kBAAkB,CAAC,IAAI,CAAC,CAAC;QACrC,CAAC;QAED,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,gBAAgB,CACzC,EAAE,OAAO,EAAE,EACX,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,QAAQ,EAAE,EAAE,EAAE,CAC3D,CAAC;QACF,OAAO,SAAS,CAAC,QAAQ,CAAC,CAAC;IAC7B,CAAC;CAAA;AAED,SAAe,QAAQ,CAAC,IAAY,EAAE,MAAc;;QAClD,MAAM,WAAW,GAAG,MAAM,GAAG,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;QACxD,IAAI,WAAW,CAAC,IAAI,KAAK,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAE5E,MAAM,aAAa,GAAG,MAAM,YAAY,CAAC;YACvC,OAAO,EAAE;gBACP,OAAO,EAAE,IAAI;gBACb,QAAQ,EAAE,WAAW,CAAC,QAAQ;gBAC9B,OAAO,EAAE,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC;gBACpC,IAAI,EAAE,WAAW,CAAC,SAAS;aAC5B;YACD,WAAW,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE;SAC/D,CAAC,CAAC;QACH,OAAO,aAAa,CAAC,aAAa,CAAC;IACrC,CAAC;CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ledgerhq/coin-tezos",
3
- "version": "0.6.9",
3
+ "version": "0.7.0-nightly.2",
4
4
  "description": "Tezos Coin integration",
5
5
  "keywords": [
6
6
  "Ledger",
@@ -77,14 +77,14 @@
77
77
  "invariant": "^2.2.4",
78
78
  "lodash": "^4.17.21",
79
79
  "rxjs": "^7.8.1",
80
- "@ledgerhq/coin-framework": "^0.19.1",
80
+ "@ledgerhq/coin-framework": "^0.20.0-nightly.2",
81
81
  "@ledgerhq/cryptoassets": "^13.7.0",
82
82
  "@ledgerhq/devices": "8.4.4",
83
83
  "@ledgerhq/errors": "^6.19.1",
84
84
  "@ledgerhq/live-network": "^2.0.3",
85
85
  "@ledgerhq/logs": "^6.12.0",
86
86
  "@ledgerhq/types-cryptoassets": "^7.17.0",
87
- "@ledgerhq/types-live": "^6.53.1"
87
+ "@ledgerhq/types-live": "^6.54.0-nightly.1"
88
88
  },
89
89
  "devDependencies": {
90
90
  "@faker-js/faker": "^8.4.1",
@@ -1,4 +1,4 @@
1
- import type { Api } from "@ledgerhq/coin-framework/api/index";
1
+ import { IncorrectTypeError, type Api } from "@ledgerhq/coin-framework/api/index";
2
2
  import { createApi } from ".";
3
3
  /**
4
4
  * https://teztnets.com/ghostnet-about
@@ -82,19 +82,44 @@ describe("Tezos Api", () => {
82
82
  });
83
83
 
84
84
  describe("craftTransaction", () => {
85
- it("returns a raw transaction", async () => {
85
+ it.each([
86
+ {
87
+ type: "send",
88
+ rawTx:
89
+ "6c0053ddb3b3a89ed5c8d8326066032beac6de225c9e010300000a0000a31e81ac3425310e3274a4698a793b2839dc0afa00",
90
+ },
91
+ {
92
+ type: "delegate",
93
+ rawTx:
94
+ "6e0053ddb3b3a89ed5c8d8326066032beac6de225c9e01030000ff00a31e81ac3425310e3274a4698a793b2839dc0afa",
95
+ },
96
+ {
97
+ type: "undelegate",
98
+ rawTx: "6e0053ddb3b3a89ed5c8d8326066032beac6de225c9e0103000000",
99
+ },
100
+ ])("returns a raw transaction with $type", async ({ type, rawTx }) => {
86
101
  // When
87
102
  const result = await module.craftTransaction(address, {
88
- mode: "send",
103
+ type,
89
104
  recipient: "tz1aWXP237BLwNHJcCD4b3DutCevhqq2T1Z9",
90
105
  amount: BigInt(10),
91
106
  fee: BigInt(1),
92
107
  });
93
108
 
94
109
  // Then
95
- expect(result.slice(64)).toEqual(
96
- "6c0053ddb3b3a89ed5c8d8326066032beac6de225c9e010300000a0000a31e81ac3425310e3274a4698a793b2839dc0afa00",
97
- );
110
+ expect(result.slice(64)).toEqual(rawTx);
111
+ });
112
+
113
+ it("throws an error if type in 'send' or 'delegate' or 'undelegate'", async () => {
114
+ // When
115
+ await expect(
116
+ module.craftTransaction(address, {
117
+ type: "WHATEVERTYPE",
118
+ recipient: "tz1aWXP237BLwNHJcCD4b3DutCevhqq2T1Z9",
119
+ amount: BigInt(10),
120
+ fee: BigInt(1),
121
+ }),
122
+ ).rejects.toThrow(IncorrectTypeError);
98
123
  });
99
124
  });
100
125
  });
package/src/api/index.ts CHANGED
@@ -1,4 +1,8 @@
1
- import type { Api } from "@ledgerhq/coin-framework/api/index";
1
+ import {
2
+ IncorrectTypeError,
3
+ type Api,
4
+ type Transaction as ApiTransaction,
5
+ } from "@ledgerhq/coin-framework/api/index";
2
6
  import coinConfig, { type TezosConfig } from "../config";
3
7
  import {
4
8
  broadcast,
@@ -26,17 +30,20 @@ export function createApi(config: TezosConfig): Api {
26
30
  };
27
31
  }
28
32
 
33
+ function isTezosTransactionType(type: string): type is "send" | "delegate" | "undelegate" {
34
+ return ["send", "delegate", "undelegate"].includes(type);
35
+ }
29
36
  async function craft(
30
37
  address: string,
31
- transaction: {
32
- recipient: string;
33
- amount: bigint;
34
- fee: bigint;
35
- },
38
+ { type, recipient, amount, fee }: ApiTransaction,
36
39
  ): Promise<string> {
40
+ if (!isTezosTransactionType(type)) {
41
+ throw new IncorrectTypeError(type);
42
+ }
43
+
37
44
  const { contents } = await craftTransaction(
38
45
  { address },
39
- { ...transaction, type: "send", fee: { fees: transaction.fee.toString() } },
46
+ { recipient, amount, type, fee: { fees: fee.toString() } },
40
47
  );
41
48
  return rawEncode(contents);
42
49
  }