@ledgerhq/hw-app-solana 6.27.6 → 7.0.0-next.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.
@@ -1,4 +1,4 @@
1
- @ledgerhq/hw-app-solana:build: cache hit, replaying output 1ce454adc4c01e52
1
+ @ledgerhq/hw-app-solana:build: cache hit, replaying output fc9190d23e4d3b91
2
2
  @ledgerhq/hw-app-solana:build:
3
3
  @ledgerhq/hw-app-solana:build: > @ledgerhq/hw-app-solana@6.27.6 build /home/runner/work/ledger-live/ledger-live/libs/ledgerjs/packages/hw-app-solana
4
4
  @ledgerhq/hw-app-solana:build: > tsc && tsc -m ES6 --outDir lib-es
package/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # @ledgerhq/hw-app-solana
2
2
 
3
+ ## 7.0.0-next.0
4
+
5
+ ### Major Changes
6
+
7
+ - [#1433](https://github.com/LedgerHQ/ledger-live/pull/1433) [`1b43ce613f`](https://github.com/LedgerHQ/ledger-live/commit/1b43ce613f599cef9f69e40e7e3cfa8c1033c786) Thanks [@askibin](https://github.com/askibin)! - Add signOffchainMessage
8
+
9
+ ## 6.28.0
10
+
11
+ ### Major Changes
12
+
13
+ - Add signOffchainMessage
14
+
3
15
  ## 6.27.6
4
16
 
5
17
  ### Patch Changes
package/README.md CHANGED
@@ -48,8 +48,11 @@ If ledger returns error `6808` - enable blind signature in settings (not needed
48
48
  * [signTransaction](#signtransaction)
49
49
  * [Parameters](#parameters-2)
50
50
  * [Examples](#examples-2)
51
- * [getAppConfiguration](#getappconfiguration)
51
+ * [signOffchainMessage](#signoffchainmessage)
52
+ * [Parameters](#parameters-3)
52
53
  * [Examples](#examples-3)
54
+ * [getAppConfiguration](#getappconfiguration)
55
+ * [Examples](#examples-4)
53
56
 
54
57
  ### Solana
55
58
 
@@ -104,6 +107,23 @@ solana.signTransaction("44'/501'/0'", txBuffer).then(r => r.signature)
104
107
 
105
108
  Returns **[Promise](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)<{signature: [Buffer](https://nodejs.org/api/buffer.html)}>** an object with the signature field
106
109
 
110
+ #### signOffchainMessage
111
+
112
+ Sign a Solana off-chain message.
113
+
114
+ ##### Parameters
115
+
116
+ * `path` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** a BIP32 path
117
+ * `msgBuffer` **[Buffer](https://nodejs.org/api/buffer.html)** serialized off-chain message
118
+
119
+ ##### Examples
120
+
121
+ ```javascript
122
+ solana.signOffchainMessage("44'/501'/0'", msgBuffer).then(r => r.signature)
123
+ ```
124
+
125
+ Returns **[Promise](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise)<{signature: [Buffer](https://nodejs.org/api/buffer.html)}>** an object with the signature field
126
+
107
127
  #### getAppConfiguration
108
128
 
109
129
  Get application configuration.
package/lib/Solana.d.ts CHANGED
@@ -43,6 +43,20 @@ export default class Solana {
43
43
  signTransaction(path: string, txBuffer: Buffer): Promise<{
44
44
  signature: Buffer;
45
45
  }>;
46
+ /**
47
+ * Sign a Solana off-chain message.
48
+ *
49
+ * @param path a BIP32 path
50
+ * @param msgBuffer serialized off-chain message
51
+ *
52
+ * @returns an object with the signature field
53
+ *
54
+ * @example
55
+ * solana.signOffchainMessage("44'/501'/0'", msgBuffer).then(r => r.signature)
56
+ */
57
+ signOffchainMessage(path: string, msgBuffer: Buffer): Promise<{
58
+ signature: Buffer;
59
+ }>;
46
60
  /**
47
61
  * Get application configuration.
48
62
  *
@@ -1 +1 @@
1
- {"version":3,"file":"Solana.d.ts","sourceRoot":"","sources":["../src/Solana.ts"],"names":[],"mappings":";AAAA,OAAO,SAAS,MAAM,wBAAwB,CAAC;AA0B/C;;;;;;;;;GASG;AACH,MAAM,CAAC,OAAO,OAAO,MAAM;IACzB,OAAO,CAAC,SAAS,CAAY;gBAG3B,SAAS,EAAE,SAAS,EAGpB,WAAW,GAAE,MAAsC;IAUrD;;;;;;;;;;;;OAYG;IACG,UAAU,CACd,IAAI,EAAE,MAAM,EAGZ,OAAO,GAAE,OAAe,GACvB,OAAO,CAAC;QACT,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IAcF;;;;;;;;;;OAUG;IACG,eAAe,CACnB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC;QACT,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IAmBF;;;;;;;OAOG;IACG,mBAAmB,IAAI,OAAO,CAAC,SAAS,CAAC;IAU/C,OAAO,CAAC,YAAY;IAWpB,OAAO,CAAC,aAAa;YAUP,YAAY;IAiD1B,OAAO,CAAC,cAAc;CAavB;AAED,aAAK,iBAAiB;IACpB,IAAI,IAAA;IACJ,KAAK,IAAA;CACN;AAED,aAAK,SAAS,GAAG;IACf,mBAAmB,EAAE,OAAO,CAAC;IAC7B,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC"}
1
+ {"version":3,"file":"Solana.d.ts","sourceRoot":"","sources":["../src/Solana.ts"],"names":[],"mappings":";AAAA,OAAO,SAAS,MAAM,wBAAwB,CAAC;AA2B/C;;;;;;;;;GASG;AACH,MAAM,CAAC,OAAO,OAAO,MAAM;IACzB,OAAO,CAAC,SAAS,CAAY;gBAG3B,SAAS,EAAE,SAAS,EAGpB,WAAW,GAAE,MAAsC;IAUrD;;;;;;;;;;;;OAYG;IACG,UAAU,CACd,IAAI,EAAE,MAAM,EAGZ,OAAO,GAAE,OAAe,GACvB,OAAO,CAAC;QACT,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IAcF;;;;;;;;;;OAUG;IACG,eAAe,CACnB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC;QACT,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IAmBF;;;;;;;;;;OAUG;IACG,mBAAmB,CACvB,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC;QACT,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IAmBF;;;;;;;OAOG;IACG,mBAAmB,IAAI,OAAO,CAAC,SAAS,CAAC;IAU/C,OAAO,CAAC,YAAY;IAWpB,OAAO,CAAC,aAAa;YAUP,YAAY;IAiD1B,OAAO,CAAC,cAAc;CAavB;AAED,aAAK,iBAAiB;IACpB,IAAI,IAAA;IACJ,KAAK,IAAA;CACN;AAED,aAAK,SAAS,GAAG;IACf,mBAAmB,EAAE,OAAO,CAAC;IAC7B,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC"}
package/lib/Solana.js CHANGED
@@ -77,7 +77,8 @@ var LEDGER_CLA = 0xe0;
77
77
  var INS = {
78
78
  GET_VERSION: 0x04,
79
79
  GET_ADDR: 0x05,
80
- SIGN: 0x06
80
+ SIGN: 0x06,
81
+ SIGN_OFFCHAIN: 0x07
81
82
  };
82
83
  var EXTRA_STATUS_CODES;
83
84
  (function (EXTRA_STATUS_CODES) {
@@ -167,6 +168,37 @@ var Solana = /** @class */ (function () {
167
168
  });
168
169
  });
169
170
  };
171
+ /**
172
+ * Sign a Solana off-chain message.
173
+ *
174
+ * @param path a BIP32 path
175
+ * @param msgBuffer serialized off-chain message
176
+ *
177
+ * @returns an object with the signature field
178
+ *
179
+ * @example
180
+ * solana.signOffchainMessage("44'/501'/0'", msgBuffer).then(r => r.signature)
181
+ */
182
+ Solana.prototype.signOffchainMessage = function (path, msgBuffer) {
183
+ return __awaiter(this, void 0, void 0, function () {
184
+ var pathBuffer, pathsCountBuffer, payload, signatureBuffer;
185
+ return __generator(this, function (_a) {
186
+ switch (_a.label) {
187
+ case 0:
188
+ pathBuffer = this.pathToBuffer(path);
189
+ pathsCountBuffer = Buffer.alloc(1);
190
+ pathsCountBuffer.writeUInt8(1, 0);
191
+ payload = Buffer.concat([pathsCountBuffer, pathBuffer, msgBuffer]);
192
+ return [4 /*yield*/, this.sendToDevice(INS.SIGN_OFFCHAIN, P1_CONFIRM, payload)];
193
+ case 1:
194
+ signatureBuffer = _a.sent();
195
+ return [2 /*return*/, {
196
+ signature: signatureBuffer
197
+ }];
198
+ }
199
+ });
200
+ });
201
+ };
170
202
  /**
171
203
  * Get application configuration.
172
204
  *
package/lib/Solana.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"Solana.js","sourceRoot":"","sources":["../src/Solana.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Solana.js","sourceRoot":"","sources":["../src/Solana.ts"],"names":[],"mappings":"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"}
@@ -43,6 +43,20 @@ export default class Solana {
43
43
  signTransaction(path: string, txBuffer: Buffer): Promise<{
44
44
  signature: Buffer;
45
45
  }>;
46
+ /**
47
+ * Sign a Solana off-chain message.
48
+ *
49
+ * @param path a BIP32 path
50
+ * @param msgBuffer serialized off-chain message
51
+ *
52
+ * @returns an object with the signature field
53
+ *
54
+ * @example
55
+ * solana.signOffchainMessage("44'/501'/0'", msgBuffer).then(r => r.signature)
56
+ */
57
+ signOffchainMessage(path: string, msgBuffer: Buffer): Promise<{
58
+ signature: Buffer;
59
+ }>;
46
60
  /**
47
61
  * Get application configuration.
48
62
  *
@@ -1 +1 @@
1
- {"version":3,"file":"Solana.d.ts","sourceRoot":"","sources":["../src/Solana.ts"],"names":[],"mappings":";AAAA,OAAO,SAAS,MAAM,wBAAwB,CAAC;AA0B/C;;;;;;;;;GASG;AACH,MAAM,CAAC,OAAO,OAAO,MAAM;IACzB,OAAO,CAAC,SAAS,CAAY;gBAG3B,SAAS,EAAE,SAAS,EAGpB,WAAW,GAAE,MAAsC;IAUrD;;;;;;;;;;;;OAYG;IACG,UAAU,CACd,IAAI,EAAE,MAAM,EAGZ,OAAO,GAAE,OAAe,GACvB,OAAO,CAAC;QACT,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IAcF;;;;;;;;;;OAUG;IACG,eAAe,CACnB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC;QACT,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IAmBF;;;;;;;OAOG;IACG,mBAAmB,IAAI,OAAO,CAAC,SAAS,CAAC;IAU/C,OAAO,CAAC,YAAY;IAWpB,OAAO,CAAC,aAAa;YAUP,YAAY;IAiD1B,OAAO,CAAC,cAAc;CAavB;AAED,aAAK,iBAAiB;IACpB,IAAI,IAAA;IACJ,KAAK,IAAA;CACN;AAED,aAAK,SAAS,GAAG;IACf,mBAAmB,EAAE,OAAO,CAAC;IAC7B,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC"}
1
+ {"version":3,"file":"Solana.d.ts","sourceRoot":"","sources":["../src/Solana.ts"],"names":[],"mappings":";AAAA,OAAO,SAAS,MAAM,wBAAwB,CAAC;AA2B/C;;;;;;;;;GASG;AACH,MAAM,CAAC,OAAO,OAAO,MAAM;IACzB,OAAO,CAAC,SAAS,CAAY;gBAG3B,SAAS,EAAE,SAAS,EAGpB,WAAW,GAAE,MAAsC;IAUrD;;;;;;;;;;;;OAYG;IACG,UAAU,CACd,IAAI,EAAE,MAAM,EAGZ,OAAO,GAAE,OAAe,GACvB,OAAO,CAAC;QACT,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IAcF;;;;;;;;;;OAUG;IACG,eAAe,CACnB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC;QACT,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IAmBF;;;;;;;;;;OAUG;IACG,mBAAmB,CACvB,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC;QACT,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IAmBF;;;;;;;OAOG;IACG,mBAAmB,IAAI,OAAO,CAAC,SAAS,CAAC;IAU/C,OAAO,CAAC,YAAY;IAWpB,OAAO,CAAC,aAAa;YAUP,YAAY;IAiD1B,OAAO,CAAC,cAAc;CAavB;AAED,aAAK,iBAAiB;IACpB,IAAI,IAAA;IACJ,KAAK,IAAA;CACN;AAED,aAAK,SAAS,GAAG;IACf,mBAAmB,EAAE,OAAO,CAAC;IAC7B,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC"}
package/lib-es/Solana.js CHANGED
@@ -72,7 +72,8 @@ var LEDGER_CLA = 0xe0;
72
72
  var INS = {
73
73
  GET_VERSION: 0x04,
74
74
  GET_ADDR: 0x05,
75
- SIGN: 0x06
75
+ SIGN: 0x06,
76
+ SIGN_OFFCHAIN: 0x07
76
77
  };
77
78
  var EXTRA_STATUS_CODES;
78
79
  (function (EXTRA_STATUS_CODES) {
@@ -162,6 +163,37 @@ var Solana = /** @class */ (function () {
162
163
  });
163
164
  });
164
165
  };
166
+ /**
167
+ * Sign a Solana off-chain message.
168
+ *
169
+ * @param path a BIP32 path
170
+ * @param msgBuffer serialized off-chain message
171
+ *
172
+ * @returns an object with the signature field
173
+ *
174
+ * @example
175
+ * solana.signOffchainMessage("44'/501'/0'", msgBuffer).then(r => r.signature)
176
+ */
177
+ Solana.prototype.signOffchainMessage = function (path, msgBuffer) {
178
+ return __awaiter(this, void 0, void 0, function () {
179
+ var pathBuffer, pathsCountBuffer, payload, signatureBuffer;
180
+ return __generator(this, function (_a) {
181
+ switch (_a.label) {
182
+ case 0:
183
+ pathBuffer = this.pathToBuffer(path);
184
+ pathsCountBuffer = Buffer.alloc(1);
185
+ pathsCountBuffer.writeUInt8(1, 0);
186
+ payload = Buffer.concat([pathsCountBuffer, pathBuffer, msgBuffer]);
187
+ return [4 /*yield*/, this.sendToDevice(INS.SIGN_OFFCHAIN, P1_CONFIRM, payload)];
188
+ case 1:
189
+ signatureBuffer = _a.sent();
190
+ return [2 /*return*/, {
191
+ signature: signatureBuffer
192
+ }];
193
+ }
194
+ });
195
+ });
196
+ };
165
197
  /**
166
198
  * Get application configuration.
167
199
  *
@@ -1 +1 @@
1
- {"version":3,"file":"Solana.js","sourceRoot":"","sources":["../src/Solana.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Solana.js","sourceRoot":"","sources":["../src/Solana.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ledgerhq/hw-app-solana",
3
- "version": "6.27.6",
3
+ "version": "7.0.0-next.0",
4
4
  "description": "Ledger Hardware Wallet Solana Application API",
5
5
  "keywords": [
6
6
  "Ledger",
package/src/Solana.ts CHANGED
@@ -18,6 +18,7 @@ const INS = {
18
18
  GET_VERSION: 0x04,
19
19
  GET_ADDR: 0x05,
20
20
  SIGN: 0x06,
21
+ SIGN_OFFCHAIN: 0x07,
21
22
  };
22
23
 
23
24
  enum EXTRA_STATUS_CODES {
@@ -120,6 +121,41 @@ export default class Solana {
120
121
  };
121
122
  }
122
123
 
124
+ /**
125
+ * Sign a Solana off-chain message.
126
+ *
127
+ * @param path a BIP32 path
128
+ * @param msgBuffer serialized off-chain message
129
+ *
130
+ * @returns an object with the signature field
131
+ *
132
+ * @example
133
+ * solana.signOffchainMessage("44'/501'/0'", msgBuffer).then(r => r.signature)
134
+ */
135
+ async signOffchainMessage(
136
+ path: string,
137
+ msgBuffer: Buffer
138
+ ): Promise<{
139
+ signature: Buffer;
140
+ }> {
141
+ const pathBuffer = this.pathToBuffer(path);
142
+ // Ledger app supports only a single derivation path per call ATM
143
+ const pathsCountBuffer = Buffer.alloc(1);
144
+ pathsCountBuffer.writeUInt8(1, 0);
145
+
146
+ const payload = Buffer.concat([pathsCountBuffer, pathBuffer, msgBuffer]);
147
+
148
+ const signatureBuffer = await this.sendToDevice(
149
+ INS.SIGN_OFFCHAIN,
150
+ P1_CONFIRM,
151
+ payload
152
+ );
153
+
154
+ return {
155
+ signature: signatureBuffer,
156
+ };
157
+ }
158
+
123
159
  /**
124
160
  * Get application configuration.
125
161
  *
@@ -67,6 +67,25 @@ test("signTransaction", async () => {
67
67
  );
68
68
  });
69
69
 
70
+ test("signOffchainMessage", async () => {
71
+ const transport = await openTransportReplayer(
72
+ RecordStore.fromString(`
73
+ => e00701003a01028000002c800001f5ff736f6c616e61206f6666636861696e00001c004c6f6e67204f66662d436861696e2054657374204d6573736167652e
74
+ <= dd23d8f798aeb0085f97f3aae20e52866bf529e0d880959784ff0e91beaf6f2eb73b7b0ef484801399066b92561f6c523b27f9579e17d0f8106b33edc5f45b079000
75
+ `)
76
+ );
77
+ const solana = new Solana(transport);
78
+ const message = Buffer.from(
79
+ "ff736f6c616e61206f6666636861696e00001c004c6f6e67204f66662d436861696e2054657374204d6573736167652e",
80
+ "hex"
81
+ );
82
+ const { signature } = await solana.signOffchainMessage("44'/501'", message);
83
+ const result = signature.toString("hex");
84
+ expect(result).toEqual(
85
+ "dd23d8f798aeb0085f97f3aae20e52866bf529e0d880959784ff0e91beaf6f2eb73b7b0ef484801399066b92561f6c523b27f9579e17d0f8106b33edc5f45b07"
86
+ );
87
+ });
88
+
70
89
  test("chunked payload (payload length > MAX_PAYLOAD)", async () => {
71
90
  const transport = await openTransportReplayer(
72
91
  RecordStore.fromString(`