@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.
- package/.turbo/turbo-build.log +1 -1
- package/CHANGELOG.md +19 -8
- package/lib/api/index.d.ts +1 -1
- package/lib/api/index.d.ts.map +1 -1
- package/lib/api/index.integ.test.js +26 -3
- package/lib/api/index.integ.test.js.map +1 -1
- package/lib/api/index.js +10 -3
- package/lib/api/index.js.map +1 -1
- package/lib-es/api/index.d.ts +1 -1
- package/lib-es/api/index.d.ts.map +1 -1
- package/lib-es/api/index.integ.test.js +26 -3
- package/lib-es/api/index.integ.test.js.map +1 -1
- package/lib-es/api/index.js +10 -3
- package/lib-es/api/index.js.map +1 -1
- package/package.json +3 -3
- package/src/api/index.integ.test.ts +31 -6
- package/src/api/index.ts +14 -7
package/.turbo/turbo-build.log
CHANGED
package/CHANGELOG.md
CHANGED
|
@@ -1,20 +1,31 @@
|
|
|
1
1
|
# @ledgerhq/coin-tezos
|
|
2
2
|
|
|
3
|
-
## 0.
|
|
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 [[`
|
|
8
|
-
- @ledgerhq/
|
|
9
|
-
- @ledgerhq/
|
|
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-
|
|
22
|
+
## 0.6.9-nightly.0
|
|
12
23
|
|
|
13
24
|
### Patch Changes
|
|
14
25
|
|
|
15
|
-
- Updated dependencies [[`
|
|
16
|
-
- @ledgerhq/types-live@6.53.1-
|
|
17
|
-
- @ledgerhq/coin-framework@0.19.1-
|
|
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
|
|
package/lib/api/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type
|
|
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
|
package/lib/api/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
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(
|
|
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
|
-
|
|
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(
|
|
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":";;;;;;;;;;;
|
|
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
|
|
33
|
-
return
|
|
34
|
-
|
|
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
|
}
|
package/lib/api/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;
|
|
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"}
|
package/lib-es/api/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type
|
|
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,
|
|
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(
|
|
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
|
-
|
|
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(
|
|
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":";;;;;;;;;
|
|
1
|
+
{"version":3,"file":"index.integ.test.js","sourceRoot":"","sources":["../../src/api/index.integ.test.ts"],"names":[],"mappings":"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"}
|
package/lib-es/api/index.js
CHANGED
|
@@ -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
|
|
26
|
-
return
|
|
27
|
-
|
|
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
|
}
|
package/lib-es/api/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":";;;;;;;;;
|
|
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.
|
|
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.
|
|
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.
|
|
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
|
|
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(
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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
|
-
{
|
|
46
|
+
{ recipient, amount, type, fee: { fees: fee.toString() } },
|
|
40
47
|
);
|
|
41
48
|
return rawEncode(contents);
|
|
42
49
|
}
|