@haneullabs/signers 1.0.1 → 1.0.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/CHANGELOG.md +10 -0
- package/README.md +8 -8
- package/dist/aws/aws-client.d.mts.map +1 -1
- package/dist/aws/aws-kms-signer.d.mts +0 -1
- package/dist/aws/aws-kms-signer.d.mts.map +1 -1
- package/dist/aws/aws4fetch.d.mts.map +1 -1
- package/dist/gcp/gcp-kms-client.d.mts +0 -1
- package/dist/gcp/gcp-kms-client.d.mts.map +1 -1
- package/dist/ledger/index.d.mts +3 -4
- package/dist/ledger/index.d.mts.map +1 -1
- package/dist/ledger/index.mjs +6 -6
- package/dist/ledger/index.mjs.map +1 -1
- package/dist/ledger/objects.d.mts.map +1 -1
- package/dist/webcrypto/index.d.mts.map +1 -1
- package/package.json +5 -5
- package/src/ledger/index.ts +7 -7
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,15 @@
|
|
|
1
1
|
# @mysten/signers
|
|
2
2
|
|
|
3
|
+
## 1.0.2
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- Updated dependencies [78a577b]
|
|
8
|
+
- Updated dependencies [ef90be0]
|
|
9
|
+
- Updated dependencies [2ee1a2a]
|
|
10
|
+
- @mysten/sui@2.10.0
|
|
11
|
+
- @mysten/ledgerjs-hw-app-sui@0.8.0
|
|
12
|
+
|
|
3
13
|
## 1.0.1
|
|
4
14
|
|
|
5
15
|
### Patch Changes
|
package/README.md
CHANGED
|
@@ -133,7 +133,7 @@ const signer = await GcpKmsSigner.fromOptions({
|
|
|
133
133
|
|
|
134
134
|
// Retrieve the public key and get the Haneul address
|
|
135
135
|
const publicKey = signer.getPublicKey();
|
|
136
|
-
console.log(publicKey.
|
|
136
|
+
console.log(publicKey.toHaneulAddress());
|
|
137
137
|
|
|
138
138
|
// Define a test message
|
|
139
139
|
const testMessage = 'Hello, GCP KMS Signer!';
|
|
@@ -172,26 +172,26 @@ cryptographic operations.
|
|
|
172
172
|
|
|
173
173
|
```typescript
|
|
174
174
|
import Transport from '@ledgerhq/hw-transport-node-hid';
|
|
175
|
-
import
|
|
175
|
+
import HaneulLedgerClient from '@haneullabs/ledgerjs-hw-app-haneul';
|
|
176
176
|
import { LedgerSigner } from '@haneullabs/signers/ledger';
|
|
177
|
-
import {
|
|
177
|
+
import { HaneulGrpcClient } from '@haneullabs/haneul/grpc';
|
|
178
178
|
import { Transaction } from '@haneullabs/haneul/transactions';
|
|
179
179
|
|
|
180
180
|
const transport = await Transport.open(undefined);
|
|
181
|
-
const ledgerClient = new
|
|
182
|
-
const
|
|
181
|
+
const ledgerClient = new HaneulLedgerClient(transport);
|
|
182
|
+
const haneulClient = new HaneulGrpcClient({
|
|
183
183
|
network: 'testnet',
|
|
184
184
|
baseUrl: 'https://fullnode.testnet.haneul.io:443',
|
|
185
185
|
});
|
|
186
186
|
|
|
187
187
|
const signer = await LedgerSigner.fromDerivationPath(
|
|
188
|
-
"m/44'/
|
|
188
|
+
"m/44'/8282'/0'/0'/0'",
|
|
189
189
|
ledgerClient,
|
|
190
|
-
|
|
190
|
+
haneulClient,
|
|
191
191
|
);
|
|
192
192
|
|
|
193
193
|
// Log the Haneul address:
|
|
194
|
-
console.log(signer.
|
|
194
|
+
console.log(signer.toHaneulAddress());
|
|
195
195
|
|
|
196
196
|
// Define a test transaction:
|
|
197
197
|
const testTransaction = new Transaction();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aws-client.d.mts","names":[],"sources":["../../src/aws/aws-client.ts"],"
|
|
1
|
+
{"version":3,"file":"aws-client.d.mts","names":[],"sources":["../../src/aws/aws-client.ts"],"mappings":";;;;;UAUU,WAAA;EACT,IAAA;IACC,OAAA;MACC,KAAA;MACA,OAAA;MACA,WAAA;MACA,gBAAA;IAAA;IAED,QAAA;MACC,KAAA;MACA,SAAA;MACA,SAAA;MACA,gBAAA;IAAA;EAAA;EAGF,YAAA;IACC,OAAA;MAAW,KAAA;IAAA;IACX,QAAA;MACC,qBAAA;MACA,KAAA;MACA,SAAA;MACA,OAAA;MACA,QAAA;MACA,SAAA;MACA,iBAAA;IAAA;EAAA;AAAA;AAAA,UAKc,gBAAA,SAAyB,OAAA,CAAQ,qBAAA,QAA6B,SAAA;AAAA,cAElE,YAAA,SAAqB,SAAA;cACrB,OAAA,GAAS,gBAAA;EAkBf,YAAA,CAAa,KAAA,WAAa,OAAA,CAAA,kBAAA,GAAA,kBAAA;EAmB1B,UAAA,iBAA2B,WAAA,CAAA,CAChC,OAAA,EAAS,CAAA,EACT,IAAA,EAAM,WAAA,CAAY,CAAA;IAEjB;EAAA;IAEA,MAAA;EAAA,IAEC,OAAA,CAAQ,WAAA,CAAY,CAAA;AAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aws-kms-signer.d.mts","names":[],"sources":["../../src/aws/aws-kms-signer.ts"],"
|
|
1
|
+
{"version":3,"file":"aws-kms-signer.d.mts","names":[],"sources":["../../src/aws/aws-kms-signer.ts"],"mappings":";;;;AAaA;;;AAAA,UAAiB,mBAAA;EAEhB;EAAA,QAAA;EAEQ;EAAR,MAAA,EAAQ,YAAA;EAEG;EAAX,SAAA,EAAW,SAAA;AAAA;AAOZ;;;;AAAA,cAAa,YAAA,SAAqB,MAAA;EAAA;EAeY;;;;;;;;;IAA/B,QAAA;IAAU,MAAA;IAAQ;EAAA,GAAa,mBAAA;EAfZ;;;;EA4BjC,YAAA,CAAA;;;;;;EASA,YAAA,CAAA,GAAY,SAAA;EAtBoB;;;;;;EAgC1B,IAAA,CAAK,KAAA,EAAO,UAAA,GAAa,OAAA,CAAQ,UAAA,CAAW,WAAA;EAAvC;;;;;EAAA,OAiBE,SAAA,CAAU,KAAA,UAAe,OAAA,EAAS,gBAAA,GAAgB,OAAA,CAAA,YAAA;AAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aws4fetch.d.mts","names":[],"sources":["../../src/aws/aws4fetch.ts"],"
|
|
1
|
+
{"version":3,"file":"aws4fetch.d.mts","names":[],"sources":["../../src/aws/aws4fetch.ts"],"mappings":";KAsCK,cAAA,GAAiB,WAAA;EACrB,GAAA;IACC,WAAA;IACA,eAAA;IACA,YAAA;IACA,OAAA;IACA,MAAA;IACA,KAAA,GAAQ,GAAA,SAAY,WAAA;IACpB,QAAA;IACA,SAAA;IACA,kBAAA;IACA,UAAA;IACA,YAAA;EAAA;AAAA;AAAA,cAIW,SAAA;EACZ,WAAA;EACA,eAAA;EACA,YAAA;EACA,OAAA;EACA,MAAA;EACA,KAAA,EAAO,GAAA;EACP,OAAA;EACA,WAAA;EAZa;;AAId;;IAaE,WAAA;IACA,eAAA;IACA,YAAA;IACA,OAAA;IACA,MAAA;IACA,KAAA;IACA,OAAA;IACA;EAAA;IAEA,WAAA;IACA,eAAA;IACA,YAAA;IACA,OAAA;IACA,MAAA;IACA,KAAA,GAAQ,GAAA,SAAY,WAAA;IACpB,OAAA;IACA,WAAA;EAAA;EAeK,IAAA,CAAK,KAAA,EAAO,OAAA;IAAY,QAAA;EAAA,GAA0B,IAAA,EAAM,cAAA,GAAiB,OAAA,CAAQ,OAAA;EAArE;;;;;EAiCZ,KAAA,CAAM,KAAA,EAAO,OAAA;IAAY,QAAA;EAAA,GAA0B,IAAA,EAAM,cAAA,GAAc,OAAA,CAAA,QAAA;AAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gcp-kms-client.d.mts","names":[],"sources":["../../src/gcp/gcp-kms-client.ts"],"
|
|
1
|
+
{"version":3,"file":"gcp-kms-client.d.mts","names":[],"sources":["../../src/gcp/gcp-kms-client.ts"],"mappings":";;;;;AAcA;;UAAiB,mBAAA;EAMI;EAJpB,WAAA;EAEA;EAAA,MAAA,EAAQ,0BAAA;EAER;EAAA,SAAA,EAAW,SAAA;AAAA;;AAOZ;;;cAAa,YAAA,SAAqB,MAAA;EAAA;EAgBE;;;;;;;;;;IAArB,WAAA;IAAa,MAAA;IAAQ;EAAA,GAAa,mBAAA;EA0EA;;;;EA7DhD,YAAA,CAAA;;;;;;EASA,YAAA,CAAA,GAAY,SAAA;EAtBuB;;;;;;EAgC7B,IAAA,CAAK,KAAA,EAAO,UAAA,GAAa,OAAA,CAAQ,UAAA,CAAW,WAAA;EAAhC;;;;;EAAA,OAkBL,WAAA,CAAY,OAAA;IACxB,SAAA;IACA,QAAA;IACA,OAAA;IACA,SAAA;IACA,gBAAA;EAAA,IACA,OAAA,CAAA,YAAA;EAAA,OAkBY,eAAA,CAAgB,WAAA,WAAmB,OAAA,CAAA,YAAA;AAAA"}
|
package/dist/ledger/index.d.mts
CHANGED
|
@@ -5,7 +5,6 @@ import HaneulLedgerClient, { Resolution } from "@haneullabs/ledgerjs-hw-app-hane
|
|
|
5
5
|
import { ClientWithCoreApi } from "@haneullabs/haneul/client";
|
|
6
6
|
|
|
7
7
|
//#region src/ledger/index.d.ts
|
|
8
|
-
|
|
9
8
|
/**
|
|
10
9
|
* Configuration options for initializing the LedgerSigner.
|
|
11
10
|
*/
|
|
@@ -13,7 +12,7 @@ interface LedgerSignerOptions {
|
|
|
13
12
|
publicKey: Ed25519PublicKey;
|
|
14
13
|
derivationPath: string;
|
|
15
14
|
ledgerClient: HaneulLedgerClient;
|
|
16
|
-
|
|
15
|
+
haneulClient: ClientWithCoreApi;
|
|
17
16
|
}
|
|
18
17
|
/**
|
|
19
18
|
* Ledger integrates with the Haneul blockchain to provide signing capabilities using Ledger devices.
|
|
@@ -31,7 +30,7 @@ declare class LedgerSigner extends Signer {
|
|
|
31
30
|
publicKey,
|
|
32
31
|
derivationPath,
|
|
33
32
|
ledgerClient,
|
|
34
|
-
|
|
33
|
+
haneulClient
|
|
35
34
|
}: LedgerSignerOptions);
|
|
36
35
|
/**
|
|
37
36
|
* Retrieves the key scheme used by this signer.
|
|
@@ -57,7 +56,7 @@ declare class LedgerSigner extends Signer {
|
|
|
57
56
|
* It is recommended to initialize an `LedgerSigner` instance using this function.
|
|
58
57
|
* @returns A promise that resolves once a `LedgerSigner` instance is prepared (public key is set).
|
|
59
58
|
*/
|
|
60
|
-
static fromDerivationPath(derivationPath: string, ledgerClient: HaneulLedgerClient,
|
|
59
|
+
static fromDerivationPath(derivationPath: string, ledgerClient: HaneulLedgerClient, haneulClient: ClientWithCoreApi): Promise<LedgerSigner>;
|
|
61
60
|
/**
|
|
62
61
|
* Generic signing is not supported by Ledger.
|
|
63
62
|
* @throws Always throws an error indicating generic signing is unsupported.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.mts","names":[],"sources":["../../src/ledger/index.ts"],"
|
|
1
|
+
{"version":3,"file":"index.d.mts","names":[],"sources":["../../src/ledger/index.ts"],"mappings":";;;;;;;AAoBA;;;AAAA,UAAiB,mBAAA;EAChB,SAAA,EAAW,gBAAA;EACX,cAAA;EACA,YAAA,EAAc,kBAAA;EACd,YAAA,EAAc,iBAAA;AAAA;;;;cAMF,YAAA,SAAqB,MAAA;EAAA;EANnB;;;AAMf;;;;;IAae,SAAA;IAAW,cAAA;IAAgB,YAAA;IAAc;EAAA,GAAgB,mBAAA;EAA9B;;;EAWhC,YAAA,CAAA;EAiBD;;;;EATC,YAAA,CAAA,GAAY,gBAAA;EA0CqB;;;;EAlC3B,eAAA,CACd,KAAA,EAAO,UAAA,EACP,UAAA,GAAa,UAAA,IACb,UAAA,GAAa,UAAA,GACX,OAAA,CAAQ,kBAAA;EA0DqB;;;;EA5BjB,mBAAA,CAAoB,KAAA,EAAO,UAAA,GAAa,OAAA,CAAQ,kBAAA;EA1E9B;;;;;EAAA,OAmGpB,kBAAA,CACZ,cAAA,UACA,YAAA,EAAc,kBAAA,EACd,YAAA,EAAc,iBAAA,GAAiB,OAAA,CAAA,YAAA;EAzFP;;;;EA4GhB,IAAA,CAAA;EA5G8D;;;;EAoH9D,cAAA,CAAA;AAAA"}
|
package/dist/ledger/index.mjs
CHANGED
|
@@ -13,7 +13,7 @@ var LedgerSigner = class LedgerSigner extends Signer {
|
|
|
13
13
|
#derivationPath;
|
|
14
14
|
#publicKey;
|
|
15
15
|
#ledgerClient;
|
|
16
|
-
#
|
|
16
|
+
#haneulClient;
|
|
17
17
|
/**
|
|
18
18
|
* Creates an instance of LedgerSigner. It's expected to call the static `fromDerivationPath` method to create an instance.
|
|
19
19
|
* @example
|
|
@@ -21,12 +21,12 @@ var LedgerSigner = class LedgerSigner extends Signer {
|
|
|
21
21
|
* const signer = await LedgerSigner.fromDerivationPath(derivationPath, options);
|
|
22
22
|
* ```
|
|
23
23
|
*/
|
|
24
|
-
constructor({ publicKey, derivationPath, ledgerClient,
|
|
24
|
+
constructor({ publicKey, derivationPath, ledgerClient, haneulClient }) {
|
|
25
25
|
super();
|
|
26
26
|
this.#publicKey = publicKey;
|
|
27
27
|
this.#derivationPath = derivationPath;
|
|
28
28
|
this.#ledgerClient = ledgerClient;
|
|
29
|
-
this.#
|
|
29
|
+
this.#haneulClient = haneulClient;
|
|
30
30
|
}
|
|
31
31
|
/**
|
|
32
32
|
* Retrieves the key scheme used by this signer.
|
|
@@ -46,7 +46,7 @@ var LedgerSigner = class LedgerSigner extends Signer {
|
|
|
46
46
|
* @returns The signed transaction bytes and signature.
|
|
47
47
|
*/
|
|
48
48
|
async signTransaction(bytes, bcsObjects, resolution) {
|
|
49
|
-
const transactionOptions = bcsObjects ? { bcsObjects } : await getInputObjects(Transaction.from(bytes), this.#
|
|
49
|
+
const transactionOptions = bcsObjects ? { bcsObjects } : await getInputObjects(Transaction.from(bytes), this.#haneulClient).catch(() => ({ bcsObjects: [] }));
|
|
50
50
|
const intentMessage = messageWithIntent("TransactionData", bytes);
|
|
51
51
|
const { signature } = await this.#ledgerClient.signTransaction(this.#derivationPath, intentMessage, transactionOptions, resolution);
|
|
52
52
|
return {
|
|
@@ -79,14 +79,14 @@ var LedgerSigner = class LedgerSigner extends Signer {
|
|
|
79
79
|
* It is recommended to initialize an `LedgerSigner` instance using this function.
|
|
80
80
|
* @returns A promise that resolves once a `LedgerSigner` instance is prepared (public key is set).
|
|
81
81
|
*/
|
|
82
|
-
static async fromDerivationPath(derivationPath, ledgerClient,
|
|
82
|
+
static async fromDerivationPath(derivationPath, ledgerClient, haneulClient) {
|
|
83
83
|
const { publicKey } = await ledgerClient.getPublicKey(derivationPath);
|
|
84
84
|
if (!publicKey) throw new Error("Failed to get public key from Ledger.");
|
|
85
85
|
return new LedgerSigner({
|
|
86
86
|
derivationPath,
|
|
87
87
|
publicKey: new Ed25519PublicKey(publicKey),
|
|
88
88
|
ledgerClient,
|
|
89
|
-
|
|
89
|
+
haneulClient
|
|
90
90
|
});
|
|
91
91
|
}
|
|
92
92
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","names":["#publicKey","#derivationPath","#ledgerClient","#
|
|
1
|
+
{"version":3,"file":"index.mjs","names":["#publicKey","#derivationPath","#ledgerClient","#haneulClient"],"sources":["../../src/ledger/index.ts"],"sourcesContent":["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type HaneulLedgerClient from '@haneullabs/ledgerjs-hw-app-haneul';\nimport type { ClientWithCoreApi } from '@haneullabs/haneul/client';\nimport type { SignatureWithBytes } from '@haneullabs/haneul/cryptography';\nimport { messageWithIntent, Signer, toSerializedSignature } from '@haneullabs/haneul/cryptography';\nimport { Ed25519PublicKey } from '@haneullabs/haneul/keypairs/ed25519';\nimport { Transaction } from '@haneullabs/haneul/transactions';\nimport { toBase64 } from '@haneullabs/haneul/utils';\n\nimport { bcs } from '@haneullabs/haneul/bcs';\nimport { getInputObjects } from './objects.js';\nimport type { Resolution } from '@haneullabs/ledgerjs-hw-app-haneul';\n\nexport { getInputObjects } from './objects.js';\n\n/**\n * Configuration options for initializing the LedgerSigner.\n */\nexport interface LedgerSignerOptions {\n\tpublicKey: Ed25519PublicKey;\n\tderivationPath: string;\n\tledgerClient: HaneulLedgerClient;\n\thaneulClient: ClientWithCoreApi;\n}\n\n/**\n * Ledger integrates with the Haneul blockchain to provide signing capabilities using Ledger devices.\n */\nexport class LedgerSigner extends Signer {\n\t#derivationPath: string;\n\t#publicKey: Ed25519PublicKey;\n\t#ledgerClient: HaneulLedgerClient;\n\t#haneulClient: ClientWithCoreApi;\n\n\t/**\n\t * Creates an instance of LedgerSigner. It's expected to call the static `fromDerivationPath` method to create an instance.\n\t * @example\n\t * ```\n\t * const signer = await LedgerSigner.fromDerivationPath(derivationPath, options);\n\t * ```\n\t */\n\tconstructor({ publicKey, derivationPath, ledgerClient, haneulClient }: LedgerSignerOptions) {\n\t\tsuper();\n\t\tthis.#publicKey = publicKey;\n\t\tthis.#derivationPath = derivationPath;\n\t\tthis.#ledgerClient = ledgerClient;\n\t\tthis.#haneulClient = haneulClient;\n\t}\n\n\t/**\n\t * Retrieves the key scheme used by this signer.\n\t */\n\toverride getKeyScheme() {\n\t\treturn 'ED25519' as const;\n\t}\n\n\t/**\n\t * Retrieves the public key associated with this signer.\n\t * @returns The Ed25519PublicKey instance.\n\t */\n\toverride getPublicKey() {\n\t\treturn this.#publicKey;\n\t}\n\n\t/**\n\t * Signs the provided transaction bytes.\n\t * @returns The signed transaction bytes and signature.\n\t */\n\toverride async signTransaction(\n\t\tbytes: Uint8Array,\n\t\tbcsObjects?: Uint8Array[],\n\t\tresolution?: Resolution,\n\t): Promise<SignatureWithBytes> {\n\t\tconst transactionOptions = bcsObjects\n\t\t\t? { bcsObjects }\n\t\t\t: await getInputObjects(Transaction.from(bytes), this.#haneulClient).catch(() => ({\n\t\t\t\t\t// Fail gracefully so network errors or serialization issues don't break transaction signing:\n\t\t\t\t\tbcsObjects: [],\n\t\t\t\t}));\n\n\t\tconst intentMessage = messageWithIntent('TransactionData', bytes);\n\t\tconst { signature } = await this.#ledgerClient.signTransaction(\n\t\t\tthis.#derivationPath,\n\t\t\tintentMessage,\n\t\t\ttransactionOptions,\n\t\t\tresolution,\n\t\t);\n\n\t\treturn {\n\t\t\tbytes: toBase64(bytes),\n\t\t\tsignature: toSerializedSignature({\n\t\t\t\tsignature,\n\t\t\t\tsignatureScheme: this.getKeyScheme(),\n\t\t\t\tpublicKey: this.#publicKey,\n\t\t\t}),\n\t\t};\n\t}\n\n\t/**\n\t * Signs the provided personal message.\n\t * @returns The signed message bytes and signature.\n\t */\n\toverride async signPersonalMessage(bytes: Uint8Array): Promise<SignatureWithBytes> {\n\t\tconst intentMessage = messageWithIntent(\n\t\t\t'PersonalMessage',\n\t\t\tbcs.byteVector().serialize(bytes).toBytes(),\n\t\t);\n\t\tconst { signature } = await this.#ledgerClient.signTransaction(\n\t\t\tthis.#derivationPath,\n\t\t\tintentMessage,\n\t\t);\n\n\t\treturn {\n\t\t\tbytes: toBase64(bytes),\n\t\t\tsignature: toSerializedSignature({\n\t\t\t\tsignature,\n\t\t\t\tsignatureScheme: this.getKeyScheme(),\n\t\t\t\tpublicKey: this.#publicKey,\n\t\t\t}),\n\t\t};\n\t}\n\n\t/**\n\t * Prepares the signer by fetching and setting the public key from a Ledger device.\n\t * It is recommended to initialize an `LedgerSigner` instance using this function.\n\t * @returns A promise that resolves once a `LedgerSigner` instance is prepared (public key is set).\n\t */\n\tstatic async fromDerivationPath(\n\t\tderivationPath: string,\n\t\tledgerClient: HaneulLedgerClient,\n\t\thaneulClient: ClientWithCoreApi,\n\t) {\n\t\tconst { publicKey } = await ledgerClient.getPublicKey(derivationPath);\n\t\tif (!publicKey) {\n\t\t\tthrow new Error('Failed to get public key from Ledger.');\n\t\t}\n\n\t\treturn new LedgerSigner({\n\t\t\tderivationPath,\n\t\t\tpublicKey: new Ed25519PublicKey(publicKey),\n\t\t\tledgerClient,\n\t\t\thaneulClient,\n\t\t});\n\t}\n\n\t/**\n\t * Generic signing is not supported by Ledger.\n\t * @throws Always throws an error indicating generic signing is unsupported.\n\t */\n\toverride sign(): never {\n\t\tthrow new Error('Ledger Signer does not support generic signing.');\n\t}\n\n\t/**\n\t * Generic signing is not supported by Ledger.\n\t * @throws Always throws an error indicating generic signing is unsupported.\n\t */\n\toverride signWithIntent(): never {\n\t\tthrow new Error('Ledger Signer does not support generic signing.');\n\t}\n}\n"],"mappings":";;;;;;;;;;;AA8BA,IAAa,eAAb,MAAa,qBAAqB,OAAO;CACxC;CACA;CACA;CACA;;;;;;;;CASA,YAAY,EAAE,WAAW,gBAAgB,cAAc,gBAAqC;AAC3F,SAAO;AACP,QAAKA,YAAa;AAClB,QAAKC,iBAAkB;AACvB,QAAKC,eAAgB;AACrB,QAAKC,eAAgB;;;;;CAMtB,AAAS,eAAe;AACvB,SAAO;;;;;;CAOR,AAAS,eAAe;AACvB,SAAO,MAAKH;;;;;;CAOb,MAAe,gBACd,OACA,YACA,YAC8B;EAC9B,MAAM,qBAAqB,aACxB,EAAE,YAAY,GACd,MAAM,gBAAgB,YAAY,KAAK,MAAM,EAAE,MAAKG,aAAc,CAAC,aAAa,EAEhF,YAAY,EAAE,EACd,EAAE;EAEL,MAAM,gBAAgB,kBAAkB,mBAAmB,MAAM;EACjE,MAAM,EAAE,cAAc,MAAM,MAAKD,aAAc,gBAC9C,MAAKD,gBACL,eACA,oBACA,WACA;AAED,SAAO;GACN,OAAO,SAAS,MAAM;GACtB,WAAW,sBAAsB;IAChC;IACA,iBAAiB,KAAK,cAAc;IACpC,WAAW,MAAKD;IAChB,CAAC;GACF;;;;;;CAOF,MAAe,oBAAoB,OAAgD;EAClF,MAAM,gBAAgB,kBACrB,mBACA,IAAI,YAAY,CAAC,UAAU,MAAM,CAAC,SAAS,CAC3C;EACD,MAAM,EAAE,cAAc,MAAM,MAAKE,aAAc,gBAC9C,MAAKD,gBACL,cACA;AAED,SAAO;GACN,OAAO,SAAS,MAAM;GACtB,WAAW,sBAAsB;IAChC;IACA,iBAAiB,KAAK,cAAc;IACpC,WAAW,MAAKD;IAChB,CAAC;GACF;;;;;;;CAQF,aAAa,mBACZ,gBACA,cACA,cACC;EACD,MAAM,EAAE,cAAc,MAAM,aAAa,aAAa,eAAe;AACrE,MAAI,CAAC,UACJ,OAAM,IAAI,MAAM,wCAAwC;AAGzD,SAAO,IAAI,aAAa;GACvB;GACA,WAAW,IAAI,iBAAiB,UAAU;GAC1C;GACA;GACA,CAAC;;;;;;CAOH,AAAS,OAAc;AACtB,QAAM,IAAI,MAAM,kDAAkD;;;;;;CAOnE,AAAS,iBAAwB;AAChC,QAAM,IAAI,MAAM,kDAAkD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"objects.d.mts","names":[],"sources":["../../src/ledger/objects.ts"],"
|
|
1
|
+
{"version":3,"file":"objects.d.mts","names":[],"sources":["../../src/ledger/objects.ts"],"mappings":";;;;cAMa,eAAA,GAAyB,WAAA,EAAa,WAAA,EAAa,MAAA,EAAQ,iBAAA,KAAiB,OAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.mts","names":[],"sources":["../../src/webcrypto/index.ts"],"
|
|
1
|
+
{"version":3,"file":"index.d.mts","names":[],"sources":["../../src/webcrypto/index.ts"],"mappings":";;;;UAuBiB,wBAAA;EAChB,UAAA,EAAY,SAAA;EACZ,SAAA,EAAW,UAAA,CAAW,WAAA;AAAA;AAAA,cAGV,eAAA,SAAwB,MAAA;EAAA;EACpC,UAAA,EAAY,SAAA;EAAA,OAIC,QAAA,CAAA;IAAW;EAAA;IAAyB,WAAA;EAAA,IAA4B,OAAA,CAAA,eAAA;EATjE;;;EAAA,OA8BL,MAAA,CAAO,IAAA,EAAM,wBAAA,GAAwB,eAAA;EAI5C,YAAA,CAAA,GAAgB,eAAA;cAIJ,UAAA,EAAY,SAAA,EAAW,SAAA,EAAW,UAAA;EAlClC;;;EA2CZ,MAAA,CAAA,GAAU,wBAAA;EAkBV,YAAA,CAAA,GAAY,kBAAA;EAIN,IAAA,CAAK,KAAA,EAAO,UAAA,GAAa,OAAA,CAAQ,UAAA,CAAW,WAAA;AAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@haneullabs/signers",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.2",
|
|
4
4
|
"description": "A collection of signers for various providers",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"author": "Haneul Labs <build@haneul-labs.com>",
|
|
@@ -45,7 +45,7 @@
|
|
|
45
45
|
"url": "git+https://github.com/GeunhwaJeong/ts-sdks.git"
|
|
46
46
|
},
|
|
47
47
|
"bugs": {
|
|
48
|
-
"url": "https://github.com/
|
|
48
|
+
"url": "https://github.com/GeunhwaJeong/ts-sdks/issues"
|
|
49
49
|
},
|
|
50
50
|
"homepage": "https://github.com/GeunhwaJeong/ts-sdks/tree/main/packages/signers#readme",
|
|
51
51
|
"devDependencies": {
|
|
@@ -53,20 +53,20 @@
|
|
|
53
53
|
"dotenv": "^17.2.3",
|
|
54
54
|
"typescript": "^5.9.3",
|
|
55
55
|
"vitest": "^4.0.17",
|
|
56
|
-
"@haneullabs/haneul": "^2.
|
|
56
|
+
"@haneullabs/haneul": "^2.13.0"
|
|
57
57
|
},
|
|
58
58
|
"dependencies": {
|
|
59
59
|
"@google-cloud/kms": "^5.2.1",
|
|
60
60
|
"@noble/curves": "^2.0.1",
|
|
61
61
|
"@noble/hashes": "^2.0.1",
|
|
62
62
|
"asn1-ts": "^11.0.5",
|
|
63
|
-
"@haneullabs/ledgerjs-hw-app-haneul": "^0.
|
|
63
|
+
"@haneullabs/ledgerjs-hw-app-haneul": "^0.8.0"
|
|
64
64
|
},
|
|
65
65
|
"engines": {
|
|
66
66
|
"node": ">=22"
|
|
67
67
|
},
|
|
68
68
|
"peerDependencies": {
|
|
69
|
-
"@haneullabs/haneul": "^2.
|
|
69
|
+
"@haneullabs/haneul": "^2.13.0"
|
|
70
70
|
},
|
|
71
71
|
"scripts": {
|
|
72
72
|
"clean": "rm -rf tsconfig.tsbuildinfo ./dist",
|
package/src/ledger/index.ts
CHANGED
|
@@ -22,7 +22,7 @@ export interface LedgerSignerOptions {
|
|
|
22
22
|
publicKey: Ed25519PublicKey;
|
|
23
23
|
derivationPath: string;
|
|
24
24
|
ledgerClient: HaneulLedgerClient;
|
|
25
|
-
|
|
25
|
+
haneulClient: ClientWithCoreApi;
|
|
26
26
|
}
|
|
27
27
|
|
|
28
28
|
/**
|
|
@@ -32,7 +32,7 @@ export class LedgerSigner extends Signer {
|
|
|
32
32
|
#derivationPath: string;
|
|
33
33
|
#publicKey: Ed25519PublicKey;
|
|
34
34
|
#ledgerClient: HaneulLedgerClient;
|
|
35
|
-
#
|
|
35
|
+
#haneulClient: ClientWithCoreApi;
|
|
36
36
|
|
|
37
37
|
/**
|
|
38
38
|
* Creates an instance of LedgerSigner. It's expected to call the static `fromDerivationPath` method to create an instance.
|
|
@@ -41,12 +41,12 @@ export class LedgerSigner extends Signer {
|
|
|
41
41
|
* const signer = await LedgerSigner.fromDerivationPath(derivationPath, options);
|
|
42
42
|
* ```
|
|
43
43
|
*/
|
|
44
|
-
constructor({ publicKey, derivationPath, ledgerClient,
|
|
44
|
+
constructor({ publicKey, derivationPath, ledgerClient, haneulClient }: LedgerSignerOptions) {
|
|
45
45
|
super();
|
|
46
46
|
this.#publicKey = publicKey;
|
|
47
47
|
this.#derivationPath = derivationPath;
|
|
48
48
|
this.#ledgerClient = ledgerClient;
|
|
49
|
-
this.#
|
|
49
|
+
this.#haneulClient = haneulClient;
|
|
50
50
|
}
|
|
51
51
|
|
|
52
52
|
/**
|
|
@@ -75,7 +75,7 @@ export class LedgerSigner extends Signer {
|
|
|
75
75
|
): Promise<SignatureWithBytes> {
|
|
76
76
|
const transactionOptions = bcsObjects
|
|
77
77
|
? { bcsObjects }
|
|
78
|
-
: await getInputObjects(Transaction.from(bytes), this.#
|
|
78
|
+
: await getInputObjects(Transaction.from(bytes), this.#haneulClient).catch(() => ({
|
|
79
79
|
// Fail gracefully so network errors or serialization issues don't break transaction signing:
|
|
80
80
|
bcsObjects: [],
|
|
81
81
|
}));
|
|
@@ -130,7 +130,7 @@ export class LedgerSigner extends Signer {
|
|
|
130
130
|
static async fromDerivationPath(
|
|
131
131
|
derivationPath: string,
|
|
132
132
|
ledgerClient: HaneulLedgerClient,
|
|
133
|
-
|
|
133
|
+
haneulClient: ClientWithCoreApi,
|
|
134
134
|
) {
|
|
135
135
|
const { publicKey } = await ledgerClient.getPublicKey(derivationPath);
|
|
136
136
|
if (!publicKey) {
|
|
@@ -141,7 +141,7 @@ export class LedgerSigner extends Signer {
|
|
|
141
141
|
derivationPath,
|
|
142
142
|
publicKey: new Ed25519PublicKey(publicKey),
|
|
143
143
|
ledgerClient,
|
|
144
|
-
|
|
144
|
+
haneulClient,
|
|
145
145
|
});
|
|
146
146
|
}
|
|
147
147
|
|