@ledgerhq/coin-mina 1.14.2 → 1.15.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.
- package/CHANGELOG.md +40 -0
- package/jest.config.js +1 -0
- package/lib/bridge/broadcast.d.ts.map +1 -1
- package/lib/bridge/broadcast.js +3 -0
- package/lib/bridge/broadcast.js.map +1 -1
- package/lib/test/fixtures.d.ts +4 -0
- package/lib/test/fixtures.d.ts.map +1 -1
- package/lib/test/fixtures.js +16 -2
- package/lib/test/fixtures.js.map +1 -1
- package/lib-es/bridge/broadcast.d.ts.map +1 -1
- package/lib-es/bridge/broadcast.js +3 -0
- package/lib-es/bridge/broadcast.js.map +1 -1
- package/lib-es/test/fixtures.d.ts +4 -0
- package/lib-es/test/fixtures.d.ts.map +1 -1
- package/lib-es/test/fixtures.js +14 -1
- package/lib-es/test/fixtures.js.map +1 -1
- package/package.json +7 -6
- package/src/bridge/broadcast.integ.test.ts +86 -0
- package/src/bridge/broadcast.test.ts +7 -0
- package/src/bridge/broadcast.ts +4 -0
- package/src/logic/transaction/broadcast.integ.test.ts +72 -0
- package/src/test/fixtures.ts +17 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,45 @@
|
|
|
1
1
|
# @ledgerhq/coin-mina
|
|
2
2
|
|
|
3
|
+
## 1.15.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [#16996](https://github.com/LedgerHQ/ledger-live/pull/16996) [`3be5049`](https://github.com/LedgerHQ/ledger-live/commit/3be5049c9462d5760d6fec2c99647f0b9773b5b2) Thanks [@YazhuEth](https://github.com/YazhuEth)! - fix: ensure broadcast throws on network errors at all layers (canton, concordium, mina)
|
|
8
|
+
|
|
9
|
+
### Patch Changes
|
|
10
|
+
|
|
11
|
+
- Updated dependencies [[`ed0dc8a`](https://github.com/LedgerHQ/ledger-live/commit/ed0dc8abc2c8f5054e655c4e12efe6fb433fbaca), [`4ddd97a`](https://github.com/LedgerHQ/ledger-live/commit/4ddd97a99bab5b581ad5ccfd36eb420ec4ee6352), [`7fafa10`](https://github.com/LedgerHQ/ledger-live/commit/7fafa10d8af581f4433a60ea908980a726d3a777), [`ac26c8b`](https://github.com/LedgerHQ/ledger-live/commit/ac26c8bffa9b5cc9f28bed5ce3d44e32982d655c), [`fb79639`](https://github.com/LedgerHQ/ledger-live/commit/fb79639eb81258bae4830ed6ffe375ae625054ad), [`0d11df6`](https://github.com/LedgerHQ/ledger-live/commit/0d11df6ef8dc781171071824ad1c39e3beed7730), [`321a0e2`](https://github.com/LedgerHQ/ledger-live/commit/321a0e2ce948fac11f7bdf0e106eb0af57168caa), [`d308b1a`](https://github.com/LedgerHQ/ledger-live/commit/d308b1a6b9c629839f051cf367a527f4232120c7), [`21e69fe`](https://github.com/LedgerHQ/ledger-live/commit/21e69fea49cffc0b1204903e539a64b83e4b28f0), [`e6dc658`](https://github.com/LedgerHQ/ledger-live/commit/e6dc658b83ebd2102e19a1fead021443457c05d9), [`fb4d165`](https://github.com/LedgerHQ/ledger-live/commit/fb4d1656be8dc8e933e55600970a2e991fbaeebb), [`5bd95a9`](https://github.com/LedgerHQ/ledger-live/commit/5bd95a9ceaac4d08c87d635f721265357368f8ee), [`73bfe05`](https://github.com/LedgerHQ/ledger-live/commit/73bfe055ec23e0d630f2da9f4dbc9731b6fe5190)]:
|
|
12
|
+
- @ledgerhq/types-live@6.107.0
|
|
13
|
+
- @ledgerhq/ledger-wallet-framework@1.4.0
|
|
14
|
+
- @ledgerhq/errors@6.35.0
|
|
15
|
+
- @ledgerhq/cryptoassets@13.47.0
|
|
16
|
+
- @ledgerhq/live-network@2.6.0
|
|
17
|
+
- @ledgerhq/devices@8.14.2
|
|
18
|
+
|
|
19
|
+
## 1.15.0-next.1
|
|
20
|
+
|
|
21
|
+
### Patch Changes
|
|
22
|
+
|
|
23
|
+
- Updated dependencies [[`e6dc658`](https://github.com/LedgerHQ/ledger-live/commit/e6dc658b83ebd2102e19a1fead021443457c05d9)]:
|
|
24
|
+
- @ledgerhq/cryptoassets@13.47.0-next.1
|
|
25
|
+
- @ledgerhq/ledger-wallet-framework@1.4.0-next.1
|
|
26
|
+
|
|
27
|
+
## 1.15.0-next.0
|
|
28
|
+
|
|
29
|
+
### Minor Changes
|
|
30
|
+
|
|
31
|
+
- [#16996](https://github.com/LedgerHQ/ledger-live/pull/16996) [`3be5049`](https://github.com/LedgerHQ/ledger-live/commit/3be5049c9462d5760d6fec2c99647f0b9773b5b2) Thanks [@YazhuEth](https://github.com/YazhuEth)! - fix: ensure broadcast throws on network errors at all layers (canton, concordium, mina)
|
|
32
|
+
|
|
33
|
+
### Patch Changes
|
|
34
|
+
|
|
35
|
+
- Updated dependencies [[`ed0dc8a`](https://github.com/LedgerHQ/ledger-live/commit/ed0dc8abc2c8f5054e655c4e12efe6fb433fbaca), [`4ddd97a`](https://github.com/LedgerHQ/ledger-live/commit/4ddd97a99bab5b581ad5ccfd36eb420ec4ee6352), [`7fafa10`](https://github.com/LedgerHQ/ledger-live/commit/7fafa10d8af581f4433a60ea908980a726d3a777), [`ac26c8b`](https://github.com/LedgerHQ/ledger-live/commit/ac26c8bffa9b5cc9f28bed5ce3d44e32982d655c), [`fb79639`](https://github.com/LedgerHQ/ledger-live/commit/fb79639eb81258bae4830ed6ffe375ae625054ad), [`0d11df6`](https://github.com/LedgerHQ/ledger-live/commit/0d11df6ef8dc781171071824ad1c39e3beed7730), [`321a0e2`](https://github.com/LedgerHQ/ledger-live/commit/321a0e2ce948fac11f7bdf0e106eb0af57168caa), [`d308b1a`](https://github.com/LedgerHQ/ledger-live/commit/d308b1a6b9c629839f051cf367a527f4232120c7), [`21e69fe`](https://github.com/LedgerHQ/ledger-live/commit/21e69fea49cffc0b1204903e539a64b83e4b28f0), [`fb4d165`](https://github.com/LedgerHQ/ledger-live/commit/fb4d1656be8dc8e933e55600970a2e991fbaeebb), [`5bd95a9`](https://github.com/LedgerHQ/ledger-live/commit/5bd95a9ceaac4d08c87d635f721265357368f8ee), [`73bfe05`](https://github.com/LedgerHQ/ledger-live/commit/73bfe055ec23e0d630f2da9f4dbc9731b6fe5190)]:
|
|
36
|
+
- @ledgerhq/types-live@6.107.0-next.0
|
|
37
|
+
- @ledgerhq/ledger-wallet-framework@1.4.0-next.0
|
|
38
|
+
- @ledgerhq/errors@6.35.0-next.0
|
|
39
|
+
- @ledgerhq/cryptoassets@13.47.0-next.0
|
|
40
|
+
- @ledgerhq/live-network@2.6.0-next.0
|
|
41
|
+
- @ledgerhq/devices@8.14.2-next.0
|
|
42
|
+
|
|
3
43
|
## 1.14.2
|
|
4
44
|
|
|
5
45
|
### Patch Changes
|
package/jest.config.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"broadcast.d.ts","sourceRoot":"","sources":["../../src/bridge/broadcast.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAIvE,QAAA,MAAM,SAAS,GAAU,gDAEtB;IACD,eAAe,EAAE,eAAe,CAAC;CAClC,KAAG,OAAO,CAAC,SAAS,
|
|
1
|
+
{"version":3,"file":"broadcast.d.ts","sourceRoot":"","sources":["../../src/bridge/broadcast.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAIvE,QAAA,MAAM,SAAS,GAAU,gDAEtB;IACD,eAAe,EAAE,eAAe,CAAC;CAClC,KAAG,OAAO,CAAC,SAAS,CASpB,CAAC;AAEF,eAAe,SAAS,CAAC"}
|
package/lib/bridge/broadcast.js
CHANGED
|
@@ -5,6 +5,9 @@ const broadcast_1 = require("../logic/transaction/broadcast");
|
|
|
5
5
|
const broadcast = async ({ signedOperation: { signature, operation }, }) => {
|
|
6
6
|
const signedPayload = JSON.parse(signature);
|
|
7
7
|
const hash = await (0, broadcast_1.broadcastTransaction)(signedPayload);
|
|
8
|
+
if (!hash) {
|
|
9
|
+
throw new Error("mina: broadcast returned no transaction id");
|
|
10
|
+
}
|
|
8
11
|
return (0, operation_1.patchOperationWithHash)(operation, hash);
|
|
9
12
|
};
|
|
10
13
|
exports.default = broadcast;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"broadcast.js","sourceRoot":"","sources":["../../src/bridge/broadcast.ts"],"names":[],"mappings":";;AAAA,2EAAqF;AAErF,8DAAsE;AAGtE,MAAM,SAAS,GAAG,KAAK,EAAE,EACvB,eAAe,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,GAG1C,EAAsB,EAAE;IACvB,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAA0B,CAAC;IACrE,MAAM,IAAI,GAAG,MAAM,IAAA,gCAAoB,EAAC,aAAa,CAAC,CAAC;IAEvD,OAAO,IAAA,kCAAsB,EAAC,SAAS,EAAE,IAAI,CAAC,CAAC;AACjD,CAAC,CAAC;AAEF,kBAAe,SAAS,CAAC"}
|
|
1
|
+
{"version":3,"file":"broadcast.js","sourceRoot":"","sources":["../../src/bridge/broadcast.ts"],"names":[],"mappings":";;AAAA,2EAAqF;AAErF,8DAAsE;AAGtE,MAAM,SAAS,GAAG,KAAK,EAAE,EACvB,eAAe,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,GAG1C,EAAsB,EAAE;IACvB,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAA0B,CAAC;IACrE,MAAM,IAAI,GAAG,MAAM,IAAA,gCAAoB,EAAC,aAAa,CAAC,CAAC;IAEvD,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;IAChE,CAAC;IAED,OAAO,IAAA,kCAAsB,EAAC,SAAS,EAAE,IAAI,CAAC,CAAC;AACjD,CAAC,CAAC;AAEF,kBAAe,SAAS,CAAC"}
|
package/lib/test/fixtures.d.ts
CHANGED
|
@@ -7,6 +7,10 @@ import { DeviceId } from "@ledgerhq/types-live";
|
|
|
7
7
|
import BigNumber from "bignumber.js";
|
|
8
8
|
import { RosettaBlockInfoResponse, RosettaTransaction } from "../network/types";
|
|
9
9
|
import { Transaction } from "../types";
|
|
10
|
+
export declare const signatureJsonToHex: (sig: {
|
|
11
|
+
field: string;
|
|
12
|
+
scalar: string;
|
|
13
|
+
}) => string;
|
|
10
14
|
export declare const mockAccountData: {
|
|
11
15
|
blockHeight: number;
|
|
12
16
|
balance: BigNumber;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fixtures.d.ts","sourceRoot":"","sources":["../../src/test/fixtures.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAEvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oDAAoD,CAAC;AACtF,OAAO,EAAE,aAAa,EAAE,MAAM,0CAA0C,CAAC;AAEzE,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,SAAS,MAAM,cAAc,CAAC;AACrC,OAAO,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAChF,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"fixtures.d.ts","sourceRoot":"","sources":["../../src/test/fixtures.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAEvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oDAAoD,CAAC;AACtF,OAAO,EAAE,aAAa,EAAE,MAAM,0CAA0C,CAAC;AAEzE,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,SAAS,MAAM,cAAc,CAAC;AACrC,OAAO,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAChF,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAEvC,eAAO,MAAM,kBAAkB,GAAI,KAAK;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,KAAG,MAe3E,CAAC;AAGF,eAAO,MAAM,eAAe;;;;CAI3B,CAAC;AAGF,eAAO,MAAM,aAAa,EAAE,wBAM3B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,aAAa,GAAI,SAAS;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,SAAS,GAAG,QAAQ,CAAC;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,KAAG,kBAwDH,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,qBAAqB,QAAO,gBAAgB,CAAC,OAAO,CAkC/D,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,iBAAiB,GAAI,YAAY,OAAO,CAAC,OAAO,CAAC,KAAG,OA4B/D,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,qBAAqB,GAAI,YAAY,OAAO,CAAC,WAAW,CAAC,KAAG,WAWvE,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,6BAA6B,GACxC,UAAS,OAAO,CAAC,OAAO,CAAuB,EAC/C,cAAa,OAAO,CAAC,WAAW,CAA2B,KAC1D,uBAUD,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,YAAY,EAAE,QAA2B,CAAC;AAEvD;;GAEG;AACH,eAAO,MAAM,uBAAuB,GAClC,oBAAmB;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAGzD,KACA,aAAa,CAAC,UAAU,CAOvB,CAAC"}
|
package/lib/test/fixtures.js
CHANGED
|
@@ -3,9 +3,24 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.createMockSignerContext = exports.mockDeviceId = exports.createMockUnsignedTransaction = exports.createMockTransaction = exports.createMockAccount = exports.createMockAccountInfo = exports.createMockTxn = exports.mockBlockInfo = exports.mockAccountData = void 0;
|
|
6
|
+
exports.createMockSignerContext = exports.mockDeviceId = exports.createMockUnsignedTransaction = exports.createMockTransaction = exports.createMockAccount = exports.createMockAccountInfo = exports.createMockTxn = exports.mockBlockInfo = exports.mockAccountData = exports.signatureJsonToHex = void 0;
|
|
7
7
|
const currencies_1 = require("@ledgerhq/cryptoassets/currencies");
|
|
8
8
|
const bignumber_js_1 = __importDefault(require("bignumber.js"));
|
|
9
|
+
const signatureJsonToHex = (sig) => {
|
|
10
|
+
const toLE32Hex = (decimal) => {
|
|
11
|
+
let n = BigInt(decimal);
|
|
12
|
+
const bytes = [];
|
|
13
|
+
for (let i = 0; i < 32; i++) {
|
|
14
|
+
bytes.push(Number(n & 0xffn)
|
|
15
|
+
.toString(16)
|
|
16
|
+
.padStart(2, "0"));
|
|
17
|
+
n >>= 8n;
|
|
18
|
+
}
|
|
19
|
+
return bytes.join("");
|
|
20
|
+
};
|
|
21
|
+
return toLE32Hex(sig.field) + toLE32Hex(sig.scalar);
|
|
22
|
+
};
|
|
23
|
+
exports.signatureJsonToHex = signatureJsonToHex;
|
|
9
24
|
// Mock account data
|
|
10
25
|
exports.mockAccountData = {
|
|
11
26
|
blockHeight: 123,
|
|
@@ -190,5 +205,4 @@ const createMockSignerContext = (signatureResponse = {
|
|
|
190
205
|
return cb(mockSigner);
|
|
191
206
|
});
|
|
192
207
|
exports.createMockSignerContext = createMockSignerContext;
|
|
193
|
-
// ... existing code ...
|
|
194
208
|
//# sourceMappingURL=fixtures.js.map
|
package/lib/test/fixtures.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fixtures.js","sourceRoot":"","sources":["../../src/test/fixtures.ts"],"names":[],"mappings":";;;;;;AAEA,kEAA0E;AAM1E,gEAAqC;
|
|
1
|
+
{"version":3,"file":"fixtures.js","sourceRoot":"","sources":["../../src/test/fixtures.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"broadcast.d.ts","sourceRoot":"","sources":["../../src/bridge/broadcast.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAIvE,QAAA,MAAM,SAAS,GAAU,gDAEtB;IACD,eAAe,EAAE,eAAe,CAAC;CAClC,KAAG,OAAO,CAAC,SAAS,
|
|
1
|
+
{"version":3,"file":"broadcast.d.ts","sourceRoot":"","sources":["../../src/bridge/broadcast.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAIvE,QAAA,MAAM,SAAS,GAAU,gDAEtB;IACD,eAAe,EAAE,eAAe,CAAC;CAClC,KAAG,OAAO,CAAC,SAAS,CASpB,CAAC;AAEF,eAAe,SAAS,CAAC"}
|
|
@@ -3,6 +3,9 @@ import { broadcastTransaction } from "../logic/transaction/broadcast";
|
|
|
3
3
|
const broadcast = async ({ signedOperation: { signature, operation }, }) => {
|
|
4
4
|
const signedPayload = JSON.parse(signature);
|
|
5
5
|
const hash = await broadcastTransaction(signedPayload);
|
|
6
|
+
if (!hash) {
|
|
7
|
+
throw new Error("mina: broadcast returned no transaction id");
|
|
8
|
+
}
|
|
6
9
|
return patchOperationWithHash(operation, hash);
|
|
7
10
|
};
|
|
8
11
|
export default broadcast;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"broadcast.js","sourceRoot":"","sources":["../../src/bridge/broadcast.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,6CAA6C,CAAC;AAErF,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AAGtE,MAAM,SAAS,GAAG,KAAK,EAAE,EACvB,eAAe,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,GAG1C,EAAsB,EAAE;IACvB,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAA0B,CAAC;IACrE,MAAM,IAAI,GAAG,MAAM,oBAAoB,CAAC,aAAa,CAAC,CAAC;IAEvD,OAAO,sBAAsB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;AACjD,CAAC,CAAC;AAEF,eAAe,SAAS,CAAC"}
|
|
1
|
+
{"version":3,"file":"broadcast.js","sourceRoot":"","sources":["../../src/bridge/broadcast.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,6CAA6C,CAAC;AAErF,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AAGtE,MAAM,SAAS,GAAG,KAAK,EAAE,EACvB,eAAe,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,GAG1C,EAAsB,EAAE;IACvB,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAA0B,CAAC;IACrE,MAAM,IAAI,GAAG,MAAM,oBAAoB,CAAC,aAAa,CAAC,CAAC;IAEvD,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;IAChE,CAAC;IAED,OAAO,sBAAsB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;AACjD,CAAC,CAAC;AAEF,eAAe,SAAS,CAAC"}
|
|
@@ -7,6 +7,10 @@ import { DeviceId } from "@ledgerhq/types-live";
|
|
|
7
7
|
import BigNumber from "bignumber.js";
|
|
8
8
|
import { RosettaBlockInfoResponse, RosettaTransaction } from "../network/types";
|
|
9
9
|
import { Transaction } from "../types";
|
|
10
|
+
export declare const signatureJsonToHex: (sig: {
|
|
11
|
+
field: string;
|
|
12
|
+
scalar: string;
|
|
13
|
+
}) => string;
|
|
10
14
|
export declare const mockAccountData: {
|
|
11
15
|
blockHeight: number;
|
|
12
16
|
balance: BigNumber;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fixtures.d.ts","sourceRoot":"","sources":["../../src/test/fixtures.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAEvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oDAAoD,CAAC;AACtF,OAAO,EAAE,aAAa,EAAE,MAAM,0CAA0C,CAAC;AAEzE,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,SAAS,MAAM,cAAc,CAAC;AACrC,OAAO,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAChF,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"fixtures.d.ts","sourceRoot":"","sources":["../../src/test/fixtures.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAEvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oDAAoD,CAAC;AACtF,OAAO,EAAE,aAAa,EAAE,MAAM,0CAA0C,CAAC;AAEzE,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,SAAS,MAAM,cAAc,CAAC;AACrC,OAAO,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAChF,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAEvC,eAAO,MAAM,kBAAkB,GAAI,KAAK;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,KAAG,MAe3E,CAAC;AAGF,eAAO,MAAM,eAAe;;;;CAI3B,CAAC;AAGF,eAAO,MAAM,aAAa,EAAE,wBAM3B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,aAAa,GAAI,SAAS;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,SAAS,GAAG,QAAQ,CAAC;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,KAAG,kBAwDH,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,qBAAqB,QAAO,gBAAgB,CAAC,OAAO,CAkC/D,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,iBAAiB,GAAI,YAAY,OAAO,CAAC,OAAO,CAAC,KAAG,OA4B/D,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,qBAAqB,GAAI,YAAY,OAAO,CAAC,WAAW,CAAC,KAAG,WAWvE,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,6BAA6B,GACxC,UAAS,OAAO,CAAC,OAAO,CAAuB,EAC/C,cAAa,OAAO,CAAC,WAAW,CAA2B,KAC1D,uBAUD,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,YAAY,EAAE,QAA2B,CAAC;AAEvD;;GAEG;AACH,eAAO,MAAM,uBAAuB,GAClC,oBAAmB;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAGzD,KACA,aAAa,CAAC,UAAU,CAOvB,CAAC"}
|
package/lib-es/test/fixtures.js
CHANGED
|
@@ -1,5 +1,19 @@
|
|
|
1
1
|
import { getCryptoCurrencyById } from "@ledgerhq/cryptoassets/currencies";
|
|
2
2
|
import BigNumber from "bignumber.js";
|
|
3
|
+
export const signatureJsonToHex = (sig) => {
|
|
4
|
+
const toLE32Hex = (decimal) => {
|
|
5
|
+
let n = BigInt(decimal);
|
|
6
|
+
const bytes = [];
|
|
7
|
+
for (let i = 0; i < 32; i++) {
|
|
8
|
+
bytes.push(Number(n & 0xffn)
|
|
9
|
+
.toString(16)
|
|
10
|
+
.padStart(2, "0"));
|
|
11
|
+
n >>= 8n;
|
|
12
|
+
}
|
|
13
|
+
return bytes.join("");
|
|
14
|
+
};
|
|
15
|
+
return toLE32Hex(sig.field) + toLE32Hex(sig.scalar);
|
|
16
|
+
};
|
|
3
17
|
// Mock account data
|
|
4
18
|
export const mockAccountData = {
|
|
5
19
|
blockHeight: 123,
|
|
@@ -178,5 +192,4 @@ export const createMockSignerContext = (signatureResponse = {
|
|
|
178
192
|
};
|
|
179
193
|
return cb(mockSigner);
|
|
180
194
|
});
|
|
181
|
-
// ... existing code ...
|
|
182
195
|
//# sourceMappingURL=fixtures.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fixtures.js","sourceRoot":"","sources":["../../src/test/fixtures.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"fixtures.js","sourceRoot":"","sources":["../../src/test/fixtures.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ledgerhq/coin-mina",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.15.0",
|
|
4
4
|
"description": "Mina Coin integration",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"Ledger",
|
|
@@ -118,14 +118,14 @@
|
|
|
118
118
|
"invariant": "^2.2.2",
|
|
119
119
|
"lodash": "^4.17.21",
|
|
120
120
|
"rxjs": "7.8.2",
|
|
121
|
-
"@ledgerhq/cryptoassets": "^13.
|
|
121
|
+
"@ledgerhq/cryptoassets": "^13.47.0",
|
|
122
122
|
"@ledgerhq/devices": "8.14.2",
|
|
123
|
-
"@ledgerhq/errors": "^6.
|
|
124
|
-
"@ledgerhq/ledger-wallet-framework": "^1.
|
|
125
|
-
"@ledgerhq/live-network": "^2.
|
|
123
|
+
"@ledgerhq/errors": "^6.35.0",
|
|
124
|
+
"@ledgerhq/ledger-wallet-framework": "^1.4.0",
|
|
125
|
+
"@ledgerhq/live-network": "^2.6.0",
|
|
126
126
|
"@ledgerhq/logs": "^6.17.0",
|
|
127
127
|
"@ledgerhq/types-cryptoassets": "^7.36.0",
|
|
128
|
-
"@ledgerhq/types-live": "^6.
|
|
128
|
+
"@ledgerhq/types-live": "^6.107.0"
|
|
129
129
|
},
|
|
130
130
|
"devDependencies": {
|
|
131
131
|
"@swc/core": "1.15.11",
|
|
@@ -137,6 +137,7 @@
|
|
|
137
137
|
"@types/node": "24.12.0",
|
|
138
138
|
"expect": "30.2.0",
|
|
139
139
|
"jest": "30.2.0",
|
|
140
|
+
"mina-signer": "4.0.0",
|
|
140
141
|
"msw": "^2.7.3",
|
|
141
142
|
"oxfmt": "0.36.0",
|
|
142
143
|
"oxlint": "1.51.0",
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import Client from "mina-signer";
|
|
2
|
+
import { setCoinConfig } from "../config";
|
|
3
|
+
import { signatureJsonToHex } from "../test/fixtures";
|
|
4
|
+
import broadcast from "./broadcast";
|
|
5
|
+
import { TxType } from "../types/common";
|
|
6
|
+
|
|
7
|
+
describe("Broadcast", () => {
|
|
8
|
+
beforeAll(() => {
|
|
9
|
+
setCoinConfig(() => ({
|
|
10
|
+
status: { type: "active" },
|
|
11
|
+
infra: {
|
|
12
|
+
API_MINA_ROSETTA_NODE: "https://mina.coin.ledger.com/node",
|
|
13
|
+
API_MINA_GRAPHQL_NODE: "https://mina.coin.ledger.com/node/graphql",
|
|
14
|
+
API_VALIDATORS_BASE_URL: "https://mina.coin.ledger.com/node/validators",
|
|
15
|
+
},
|
|
16
|
+
}));
|
|
17
|
+
});
|
|
18
|
+
|
|
19
|
+
it("throws when broadcasting a transaction with an invalid signature", async () => {
|
|
20
|
+
const signedTx = JSON.stringify({
|
|
21
|
+
signature:
|
|
22
|
+
"3b8b17cb9cf9a65cef39d91d7678ad0f1a84c153079bc0a5a18931717c19bb76f308c9ae1891e423fb5a1fd5ba56a5a886aafb0fd720a20cb2d1c1d374507920",
|
|
23
|
+
transaction: {
|
|
24
|
+
txType: TxType.PAYMENT,
|
|
25
|
+
senderAccount: 0,
|
|
26
|
+
senderAddress: "B62qjWLs1W3J2fFGixeX49w1o7VvSGuMBNotnFhzs3PZ7PbtdFbhdeD",
|
|
27
|
+
receiverAddress: "B62qkWcHhoisWDCR7v3gvWzX6wXEVuGYLHXq3mSym4GEzfYXmSDv314",
|
|
28
|
+
amount: 1000000000,
|
|
29
|
+
fee: 10000000,
|
|
30
|
+
nonce: 0,
|
|
31
|
+
memo: "",
|
|
32
|
+
networkId: 1,
|
|
33
|
+
},
|
|
34
|
+
});
|
|
35
|
+
|
|
36
|
+
await expect(
|
|
37
|
+
broadcast({
|
|
38
|
+
signedOperation: {
|
|
39
|
+
signature: signedTx,
|
|
40
|
+
operation: { id: "integ", hash: "", extra: {} },
|
|
41
|
+
},
|
|
42
|
+
} as any),
|
|
43
|
+
).rejects.toThrow("Can't send transaction: Nonce invalid");
|
|
44
|
+
});
|
|
45
|
+
|
|
46
|
+
it("throws when broadcasting a properly signed transaction from an unfunded account", async () => {
|
|
47
|
+
const client = new Client({ network: "mainnet" });
|
|
48
|
+
const keypair = client.genKeys();
|
|
49
|
+
|
|
50
|
+
const signed = client.signPayment(
|
|
51
|
+
{
|
|
52
|
+
from: keypair.publicKey,
|
|
53
|
+
to: keypair.publicKey,
|
|
54
|
+
amount: 1000000000,
|
|
55
|
+
fee: 10000000,
|
|
56
|
+
nonce: 0,
|
|
57
|
+
memo: "",
|
|
58
|
+
},
|
|
59
|
+
keypair.privateKey,
|
|
60
|
+
);
|
|
61
|
+
|
|
62
|
+
const signedTx = JSON.stringify({
|
|
63
|
+
signature: signatureJsonToHex(signed.signature),
|
|
64
|
+
transaction: {
|
|
65
|
+
txType: TxType.PAYMENT,
|
|
66
|
+
senderAccount: 0,
|
|
67
|
+
senderAddress: keypair.publicKey,
|
|
68
|
+
receiverAddress: keypair.publicKey,
|
|
69
|
+
amount: 1000000000,
|
|
70
|
+
fee: 10000000,
|
|
71
|
+
nonce: 0,
|
|
72
|
+
memo: "",
|
|
73
|
+
networkId: 1,
|
|
74
|
+
},
|
|
75
|
+
});
|
|
76
|
+
|
|
77
|
+
await expect(
|
|
78
|
+
broadcast({
|
|
79
|
+
signedOperation: {
|
|
80
|
+
signature: signedTx,
|
|
81
|
+
operation: { id: "integ", hash: "", extra: {} },
|
|
82
|
+
},
|
|
83
|
+
} as any),
|
|
84
|
+
).rejects.toThrow("Can't send transaction: No sender found in ledger");
|
|
85
|
+
});
|
|
86
|
+
});
|
|
@@ -34,4 +34,11 @@ describe("broadcast", () => {
|
|
|
34
34
|
} as { signedOperation: SignedOperation });
|
|
35
35
|
expect(patchOperationSpy).toHaveBeenCalledWith({}, "hash");
|
|
36
36
|
});
|
|
37
|
+
|
|
38
|
+
it("throws when broadcastTransaction returns no hash", async () => {
|
|
39
|
+
(broadcastLogic as jest.Mock).mockResolvedValueOnce("");
|
|
40
|
+
await expect(
|
|
41
|
+
broadcast({ signedOperation } as { signedOperation: SignedOperation }),
|
|
42
|
+
).rejects.toThrow("mina: broadcast returned no transaction id");
|
|
43
|
+
});
|
|
37
44
|
});
|
package/src/bridge/broadcast.ts
CHANGED
|
@@ -11,6 +11,10 @@ const broadcast = async ({
|
|
|
11
11
|
const signedPayload = JSON.parse(signature) as MinaSignedTransaction;
|
|
12
12
|
const hash = await broadcastTransaction(signedPayload);
|
|
13
13
|
|
|
14
|
+
if (!hash) {
|
|
15
|
+
throw new Error("mina: broadcast returned no transaction id");
|
|
16
|
+
}
|
|
17
|
+
|
|
14
18
|
return patchOperationWithHash(operation, hash);
|
|
15
19
|
};
|
|
16
20
|
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import Client from "mina-signer";
|
|
2
|
+
import { setCoinConfig } from "../../config";
|
|
3
|
+
import { signatureJsonToHex } from "../../test/fixtures";
|
|
4
|
+
import { broadcastTransaction } from "./broadcast";
|
|
5
|
+
import { TxType } from "../../types/common";
|
|
6
|
+
|
|
7
|
+
describe("broadcastTransaction", () => {
|
|
8
|
+
beforeAll(() => {
|
|
9
|
+
setCoinConfig(() => ({
|
|
10
|
+
status: { type: "active" },
|
|
11
|
+
infra: {
|
|
12
|
+
API_MINA_ROSETTA_NODE: "https://mina.coin.ledger.com/node",
|
|
13
|
+
API_MINA_GRAPHQL_NODE: "https://mina.coin.ledger.com/node/graphql",
|
|
14
|
+
API_VALIDATORS_BASE_URL: "https://mina.coin.ledger.com/node/validators",
|
|
15
|
+
},
|
|
16
|
+
}));
|
|
17
|
+
});
|
|
18
|
+
|
|
19
|
+
it("throws when broadcasting a transaction with an invalid signature", async () => {
|
|
20
|
+
await expect(
|
|
21
|
+
broadcastTransaction({
|
|
22
|
+
signature:
|
|
23
|
+
"3b8b17cb9cf9a65cef39d91d7678ad0f1a84c153079bc0a5a18931717c19bb76f308c9ae1891e423fb5a1fd5ba56a5a886aafb0fd720a20cb2d1c1d374507920",
|
|
24
|
+
transaction: {
|
|
25
|
+
txType: TxType.PAYMENT,
|
|
26
|
+
senderAccount: 0,
|
|
27
|
+
senderAddress: "B62qjWLs1W3J2fFGixeX49w1o7VvSGuMBNotnFhzs3PZ7PbtdFbhdeD",
|
|
28
|
+
receiverAddress: "B62qkWcHhoisWDCR7v3gvWzX6wXEVuGYLHXq3mSym4GEzfYXmSDv314",
|
|
29
|
+
amount: 1000000000,
|
|
30
|
+
fee: 10000000,
|
|
31
|
+
nonce: 0,
|
|
32
|
+
memo: "",
|
|
33
|
+
networkId: 1,
|
|
34
|
+
},
|
|
35
|
+
}),
|
|
36
|
+
).rejects.toThrow("Can't send transaction: Nonce invalid");
|
|
37
|
+
});
|
|
38
|
+
|
|
39
|
+
it("throws when broadcasting a properly signed transaction from an unfunded account", async () => {
|
|
40
|
+
const client = new Client({ network: "mainnet" });
|
|
41
|
+
const keypair = client.genKeys();
|
|
42
|
+
|
|
43
|
+
const signed = client.signPayment(
|
|
44
|
+
{
|
|
45
|
+
from: keypair.publicKey,
|
|
46
|
+
to: keypair.publicKey,
|
|
47
|
+
amount: 1000000000,
|
|
48
|
+
fee: 10000000,
|
|
49
|
+
nonce: 0,
|
|
50
|
+
memo: "",
|
|
51
|
+
},
|
|
52
|
+
keypair.privateKey,
|
|
53
|
+
);
|
|
54
|
+
|
|
55
|
+
await expect(
|
|
56
|
+
broadcastTransaction({
|
|
57
|
+
signature: signatureJsonToHex(signed.signature),
|
|
58
|
+
transaction: {
|
|
59
|
+
txType: TxType.PAYMENT,
|
|
60
|
+
senderAccount: 0,
|
|
61
|
+
senderAddress: keypair.publicKey,
|
|
62
|
+
receiverAddress: keypair.publicKey,
|
|
63
|
+
amount: 1000000000,
|
|
64
|
+
fee: 10000000,
|
|
65
|
+
nonce: 0,
|
|
66
|
+
memo: "",
|
|
67
|
+
networkId: 1,
|
|
68
|
+
},
|
|
69
|
+
}),
|
|
70
|
+
).rejects.toThrow("Can't send transaction: No sender found in ledger");
|
|
71
|
+
});
|
|
72
|
+
});
|
package/src/test/fixtures.ts
CHANGED
|
@@ -10,6 +10,23 @@ import BigNumber from "bignumber.js";
|
|
|
10
10
|
import { RosettaBlockInfoResponse, RosettaTransaction } from "../network/types";
|
|
11
11
|
import { Transaction } from "../types";
|
|
12
12
|
|
|
13
|
+
export const signatureJsonToHex = (sig: { field: string; scalar: string }): string => {
|
|
14
|
+
const toLE32Hex = (decimal: string): string => {
|
|
15
|
+
let n = BigInt(decimal);
|
|
16
|
+
const bytes: string[] = [];
|
|
17
|
+
for (let i = 0; i < 32; i++) {
|
|
18
|
+
bytes.push(
|
|
19
|
+
Number(n & 0xffn)
|
|
20
|
+
.toString(16)
|
|
21
|
+
.padStart(2, "0"),
|
|
22
|
+
);
|
|
23
|
+
n >>= 8n;
|
|
24
|
+
}
|
|
25
|
+
return bytes.join("");
|
|
26
|
+
};
|
|
27
|
+
return toLE32Hex(sig.field) + toLE32Hex(sig.scalar);
|
|
28
|
+
};
|
|
29
|
+
|
|
13
30
|
// Mock account data
|
|
14
31
|
export const mockAccountData = {
|
|
15
32
|
blockHeight: 123,
|
|
@@ -222,5 +239,3 @@ export const createMockSignerContext = (
|
|
|
222
239
|
};
|
|
223
240
|
return cb(mockSigner);
|
|
224
241
|
});
|
|
225
|
-
|
|
226
|
-
// ... existing code ...
|