@ledgerhq/hw-app-near 6.28.7 → 6.28.8

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/hw-app-near@6.28.7 build /home/runner/work/ledger-live/ledger-live/libs/ledgerjs/packages/hw-app-near
2
+ > @ledgerhq/hw-app-near@6.28.8 build /home/runner/work/ledger-live/ledger-live/libs/ledgerjs/packages/hw-app-near
3
3
  > tsc && tsc -m ES6 --outDir lib-es
4
4
 
package/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # @ledgerhq/hw-app-near
2
2
 
3
+ ## 6.28.8
4
+
5
+ ### Patch Changes
6
+
7
+ - [#6712](https://github.com/LedgerHQ/ledger-live/pull/6712) [`e7ed028`](https://github.com/LedgerHQ/ledger-live/commit/e7ed028716bccb9dc29aa2fc672ecc7a3e78276a) Thanks [@lambertkevin](https://github.com/lambertkevin)! - Increase chunk size in order to prevent a nano app bug from happening too quickly (should be fixed after nano app v1.3.0)
8
+
9
+ ## 6.28.8-next.0
10
+
11
+ ### Patch Changes
12
+
13
+ - [#6712](https://github.com/LedgerHQ/ledger-live/pull/6712) [`e7ed028`](https://github.com/LedgerHQ/ledger-live/commit/e7ed028716bccb9dc29aa2fc672ecc7a3e78276a) Thanks [@lambertkevin](https://github.com/lambertkevin)! - Increase chunk size in order to prevent a nano app bug from happening too quickly (should be fixed after nano app v1.3.0)
14
+
3
15
  ## 6.28.7
4
16
 
5
17
  ### Patch Changes
package/lib/Near.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Near.d.ts","sourceRoot":"","sources":["../src/Near.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;kFAekF;AAClF,OAAO,KAAK,SAAS,MAAM,wBAAwB,CAAC;AAcpD;;;;;;GAMG;AAEH,MAAM,CAAC,OAAO,OAAO,IAAI;IACvB,SAAS,EAAE,SAAS,CAAC;gBAET,SAAS,EAAE,SAAS;IAKhC;;;;;;OAMG;IACG,UAAU,CACd,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,OAAO,GACf,OAAO,CAAC;QACT,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IAoBF;;;;OAIG;IACG,eAAe,CAAC,WAAW,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;CAM1F"}
1
+ {"version":3,"file":"Near.d.ts","sourceRoot":"","sources":["../src/Near.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;kFAekF;AAClF,OAAO,KAAK,SAAS,MAAM,wBAAwB,CAAC;AAepD;;;;;;GAMG;AAEH,MAAM,CAAC,OAAO,OAAO,IAAI;IACvB,SAAS,EAAE,SAAS,CAAC;gBAET,SAAS,EAAE,SAAS;IAKhC;;;;;;OAMG;IACG,UAAU,CACd,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,OAAO,GACf,OAAO,CAAC;QACT,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IAoBF;;;;OAIG;IACG,eAAe,CAAC,WAAW,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;CAM1F"}
package/lib/Near.js CHANGED
@@ -12,8 +12,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
12
12
  const utils_1 = require("near-api-js/lib/utils");
13
13
  const key_pair_1 = require("near-api-js/lib/utils/key_pair");
14
14
  const utils_2 = require("./utils");
15
- // 128 - 5 service bytes
16
- const CHUNK_SIZE = 123;
15
+ // Based on https://github.com/LedgerHQ/ledger-secure-sdk/blob/master/include/os_io.h#L16
16
+ // 255B + CLA + INS + P1 + P2 + Lc
17
+ const CHUNK_SIZE = 255;
17
18
  const CLA = 0x80;
18
19
  const INS_GET_PUBLIC_KEY = 4;
19
20
  const INS_GET_ADDRESS = 5;
@@ -89,10 +90,12 @@ function createClient(transport) {
89
90
  sign(transactionData, path) {
90
91
  return __awaiter(this, void 0, void 0, function* () {
91
92
  transactionData = Buffer.from(transactionData);
92
- const allData = Buffer.concat([(0, utils_2.bip32PathToBytes)(path), transactionData]);
93
- for (let offset = 0; offset < allData.length; offset += CHUNK_SIZE) {
94
- const chunk = Buffer.from(allData.subarray(offset, offset + CHUNK_SIZE));
95
- const isLastChunk = offset + CHUNK_SIZE >= allData.length;
93
+ const concatenatedData = Buffer.concat([(0, utils_2.bip32PathToBytes)(path), transactionData]);
94
+ const chunks = new Array(Math.ceil(concatenatedData.length / CHUNK_SIZE))
95
+ .fill("")
96
+ .map((_, i) => concatenatedData.subarray(i * CHUNK_SIZE, (i + 1) * CHUNK_SIZE));
97
+ for (const chunk of chunks) {
98
+ const isLastChunk = chunks.indexOf(chunk) === chunks.length - 1;
96
99
  const response = yield this.transport.send(CLA, INS_SIGN, isLastChunk ? P1_LAST_CHUNK : 0, NETWORK_ID, chunk);
97
100
  if (isLastChunk) {
98
101
  return Buffer.from(response.subarray(0, -2));
package/lib/Near.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Near.js","sourceRoot":"","sources":["../src/Near.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Near.js","sourceRoot":"","sources":["../src/Near.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Near.d.ts","sourceRoot":"","sources":["../src/Near.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;kFAekF;AAClF,OAAO,KAAK,SAAS,MAAM,wBAAwB,CAAC;AAcpD;;;;;;GAMG;AAEH,MAAM,CAAC,OAAO,OAAO,IAAI;IACvB,SAAS,EAAE,SAAS,CAAC;gBAET,SAAS,EAAE,SAAS;IAKhC;;;;;;OAMG;IACG,UAAU,CACd,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,OAAO,GACf,OAAO,CAAC;QACT,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IAoBF;;;;OAIG;IACG,eAAe,CAAC,WAAW,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;CAM1F"}
1
+ {"version":3,"file":"Near.d.ts","sourceRoot":"","sources":["../src/Near.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;kFAekF;AAClF,OAAO,KAAK,SAAS,MAAM,wBAAwB,CAAC;AAepD;;;;;;GAMG;AAEH,MAAM,CAAC,OAAO,OAAO,IAAI;IACvB,SAAS,EAAE,SAAS,CAAC;gBAET,SAAS,EAAE,SAAS;IAKhC;;;;;;OAMG;IACG,UAAU,CACd,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,OAAO,GACf,OAAO,CAAC;QACT,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IAoBF;;;;OAIG;IACG,eAAe,CAAC,WAAW,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;CAM1F"}
package/lib-es/Near.js CHANGED
@@ -10,8 +10,9 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
10
10
  import { PublicKey } from "near-api-js/lib/utils";
11
11
  import { KeyType } from "near-api-js/lib/utils/key_pair";
12
12
  import { bip32PathToBytes } from "./utils";
13
- // 128 - 5 service bytes
14
- const CHUNK_SIZE = 123;
13
+ // Based on https://github.com/LedgerHQ/ledger-secure-sdk/blob/master/include/os_io.h#L16
14
+ // 255B + CLA + INS + P1 + P2 + Lc
15
+ const CHUNK_SIZE = 255;
15
16
  const CLA = 0x80;
16
17
  const INS_GET_PUBLIC_KEY = 4;
17
18
  const INS_GET_ADDRESS = 5;
@@ -86,10 +87,12 @@ function createClient(transport) {
86
87
  sign(transactionData, path) {
87
88
  return __awaiter(this, void 0, void 0, function* () {
88
89
  transactionData = Buffer.from(transactionData);
89
- const allData = Buffer.concat([bip32PathToBytes(path), transactionData]);
90
- for (let offset = 0; offset < allData.length; offset += CHUNK_SIZE) {
91
- const chunk = Buffer.from(allData.subarray(offset, offset + CHUNK_SIZE));
92
- const isLastChunk = offset + CHUNK_SIZE >= allData.length;
90
+ const concatenatedData = Buffer.concat([bip32PathToBytes(path), transactionData]);
91
+ const chunks = new Array(Math.ceil(concatenatedData.length / CHUNK_SIZE))
92
+ .fill("")
93
+ .map((_, i) => concatenatedData.subarray(i * CHUNK_SIZE, (i + 1) * CHUNK_SIZE));
94
+ for (const chunk of chunks) {
95
+ const isLastChunk = chunks.indexOf(chunk) === chunks.length - 1;
93
96
  const response = yield this.transport.send(CLA, INS_SIGN, isLastChunk ? P1_LAST_CHUNK : 0, NETWORK_ID, chunk);
94
97
  if (isLastChunk) {
95
98
  return Buffer.from(response.subarray(0, -2));
@@ -1 +1 @@
1
- {"version":3,"file":"Near.js","sourceRoot":"","sources":["../src/Near.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Near.js","sourceRoot":"","sources":["../src/Near.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ledgerhq/hw-app-near",
3
- "version": "6.28.7",
3
+ "version": "6.28.8",
4
4
  "description": "Ledger Hardware Wallet Near Application API",
5
5
  "keywords": [
6
6
  "Ledger",
package/src/Near.ts CHANGED
@@ -19,8 +19,9 @@ import { PublicKey } from "near-api-js/lib/utils";
19
19
  import { KeyType } from "near-api-js/lib/utils/key_pair";
20
20
  import { bip32PathToBytes } from "./utils";
21
21
 
22
- // 128 - 5 service bytes
23
- const CHUNK_SIZE = 123;
22
+ // Based on https://github.com/LedgerHQ/ledger-secure-sdk/blob/master/include/os_io.h#L16
23
+ // 255B + CLA + INS + P1 + P2 + Lc
24
+ const CHUNK_SIZE = 255;
24
25
  const CLA = 0x80;
25
26
  const INS_GET_PUBLIC_KEY = 4;
26
27
  const INS_GET_ADDRESS = 5;
@@ -115,10 +116,13 @@ async function createClient(transport) {
115
116
  },
116
117
  async sign(transactionData, path) {
117
118
  transactionData = Buffer.from(transactionData);
118
- const allData = Buffer.concat([bip32PathToBytes(path), transactionData]);
119
- for (let offset = 0; offset < allData.length; offset += CHUNK_SIZE) {
120
- const chunk = Buffer.from(allData.subarray(offset, offset + CHUNK_SIZE));
121
- const isLastChunk = offset + CHUNK_SIZE >= allData.length;
119
+ const concatenatedData = Buffer.concat([bip32PathToBytes(path), transactionData]);
120
+ const chunks = new Array(Math.ceil(concatenatedData.length / CHUNK_SIZE))
121
+ .fill("")
122
+ .map((_, i) => concatenatedData.subarray(i * CHUNK_SIZE, (i + 1) * CHUNK_SIZE));
123
+
124
+ for (const chunk of chunks) {
125
+ const isLastChunk = chunks.indexOf(chunk) === chunks.length - 1;
122
126
  const response = await this.transport.send(
123
127
  CLA,
124
128
  INS_SIGN,
@@ -126,6 +130,7 @@ async function createClient(transport) {
126
130
  NETWORK_ID,
127
131
  chunk,
128
132
  );
133
+
129
134
  if (isLastChunk) {
130
135
  return Buffer.from(response.subarray(0, -2));
131
136
  }