@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 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.toSuiAddress());
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 SuiLedgerClient from '@haneullabs/ledgerjs-hw-app-haneul';
175
+ import HaneulLedgerClient from '@haneullabs/ledgerjs-hw-app-haneul';
176
176
  import { LedgerSigner } from '@haneullabs/signers/ledger';
177
- import { SuiGrpcClient } from '@haneullabs/haneul/grpc';
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 SuiLedgerClient(transport);
182
- const suiClient = new SuiGrpcClient({
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'/784'/0'/0'/0'",
188
+ "m/44'/8282'/0'/0'/0'",
189
189
  ledgerClient,
190
- suiClient,
190
+ haneulClient,
191
191
  );
192
192
 
193
193
  // Log the Haneul address:
194
- console.log(signer.toSuiAddress());
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"],"sourcesContent":[],"mappings":";;;;;UAUU,WAAA;;IAAA,OAAA,EAAA;MA6BO,KAAA,EAAA,MAAiB;MAA6C,OAAA,EAAA,MAAA;MAA7B,WAAA,EAAA,KAAA,GAAA,QAAA;MAAR,gBAAA,EAAA,eAAA;IAAO,CAAA;IAEpC,QAAA,EAAA;MACS,KAAA,EAAA,MAAA;MAkBW,SAAA,EAAA,MAAA;MAAA,SAAA,EAAA,MAAA;MAAA,gBAAA,EAAA,MAAA;IAmBC,CAAA;EACvB,CAAA;EACH,YAAA,EAAA;IAAY,OAAA,EAAA;MAEjB,KAAA,EAAA,MAAA;IAIS,CAAA;IAAY,QAAA,EAAA;MAApB,qBAAA,EAAA,MAAA;MA9C8B,KAAA,EAAA,MAAA;MAAS,SAAA,EAAA,MAAA;;;;;;;;UAF1B,gBAAA,SAAyB,QAAQ,6BAA6B;cAElE,YAAA,SAAqB,SAAA;wBACZ;+BAkBW,QAAA,qBAAA;6BAmBC,sBACvB,SACH,YAAY;;;;MAMhB,QAAQ,YAAY"}
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"}
@@ -2,7 +2,6 @@ import { AwsClientOptions, AwsKmsClient } from "./aws-client.mjs";
2
2
  import { PublicKey, Signer } from "@haneullabs/haneul/cryptography";
3
3
 
4
4
  //#region src/aws/aws-kms-signer.d.ts
5
-
6
5
  /**
7
6
  * Configuration options for initializing the AwsKmsSigner.
8
7
  */
@@ -1 +1 @@
1
- {"version":3,"file":"aws-kms-signer.d.mts","names":[],"sources":["../../src/aws/aws-kms-signer.ts"],"sourcesContent":[],"mappings":";;;;;AAaA;AAaA;;AAeyB,UA5BR,mBAAA,CA4BQ;EAAQ;EAAa,QAAA,EAAA,MAAA;EAsBjC;EAUM,MAAA,EAxDV,YAwDU;EAAgC;EAAX,SAAA,EAtD5B,SAsD4B;;;;;;AA/CA,cAA3B,YAAA,SAAqB,MAAA,CAAM;;;;;;;;;;;;;;KAeM;;;;;;;;;;;kBAsBjC;;;;;;;cAUM,aAAa,QAAQ,WAAW;;;;;;2CAiBH,mBAAgB,QAAA"}
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"],"sourcesContent":[],"mappings":";KAsCK,cAAA,GAAiB;EAAjB,GAAA,CAAA,EAAA;IAAiB,WAAA,CAAA,EAAA,MAAA;IAOA,eAAA,CAAA,EAAA,MAAA;IAAZ,YAAA,CAAA,EAAA,MAAA;IAAG,OAAA,CAAA,EAAA,MAAA;IASA,MAAA,CAAA,EAAS,MAAA;IAMd,KAAA,CAAA,EAfE,GAeF,CAAA,MAAA,EAfc,WAed,CAAA;IAON,QAAA,CAAA,EAAA,MAAA;IACA,SAAA,CAAA,EAAA,OAAA;IACA,kBAAA,CAAA,EAAA,OAAA;IACA,UAAA,CAAA,EAAA,OAAA;IACA,YAAA,CAAA,EAAA,OAAA;EACA,CAAA;CACA;AACA,cApBW,SAAA,CAoBX;EAOoB,WAAA,EAAA,MAAA;EAAZ,eAAA,EAAA,MAAA;EAiBS,YAAA,EAAA,MAAA,GAAA,SAAA;EAA4C,OAAA,EAAA,MAAA,GAAA,SAAA;EAAyB,MAAA,EAAA,MAAA,GAAA,SAAA;EAAR,KAAA,EAtCxE,GAsCwE,CAAA,GAAA,EAAA,GAAA,CAAA;EAiC5D,OAAA,EAAA,MAAA;EAA4C,WAAA,EAAA,MAAA;EAAc;;;;;;;;;;;;;;;;;;YAlDpE,YAAY;;;;cAiBH;;WAA4C,iBAAiB,QAAQ;;;;;;eAiCpE;;WAA4C,iBAAc,QAAA"}
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"}
@@ -2,7 +2,6 @@ import { PublicKey, Signer } from "@haneullabs/haneul/cryptography";
2
2
  import { KeyManagementServiceClient } from "@google-cloud/kms";
3
3
 
4
4
  //#region src/gcp/gcp-kms-client.d.ts
5
-
6
5
  /**
7
6
  * Configuration options for initializing the GcpKmsSigner.
8
7
  */
@@ -1 +1 @@
1
- {"version":3,"file":"gcp-kms-client.d.mts","names":[],"sources":["../../src/gcp/gcp-kms-client.ts"],"sourcesContent":[],"mappings":";;;;;;AAcA;AAaA;AAgBe,UA7BE,mBAAA,CA6BF;EAAa;EAAQ,WAAA,EAAA,MAAA;EAAa;EAsBpC,MAAA,EA/CJ,0BA+CI;EAUM;EAAgC,SAAA,EAvDvC,SAuDuC;;;;;;AA0CF,cA1FpC,YAAA,SAAqB,MAAA,CA0Fe;EA1Ff,CAAA,OAAA;EAAM;;;;;;;;;;;;;KAgBS;;;;;;;;;;;kBAsBpC;;;;;;;cAUM,aAAa,QAAQ,WAAW;;;;;;;;;;;;MAwBjD,QAAA;+CAkB+C,QAAA"}
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"}
@@ -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
- suiClient: ClientWithCoreApi;
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
- suiClient
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, suiClient: ClientWithCoreApi): Promise<LedgerSigner>;
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"],"sourcesContent":[],"mappings":";;;;;;;;AAoBA;;;AAIY,UAJK,mBAAA,CAIL;EAAiB,SAAA,EAHjB,gBAGiB;EAMhB,cAAA,EAAa,MAAA;EAaX,YAAA,EApBA,kBAoBA;EAAW,SAAA,EAnBd,iBAmBc;;;;;AA4BjB,cAzCI,YAAA,SAAqB,MAAA,CAyCzB;EACM,CAAA,OAAA;EACA;;;;;;;EA2DF,WAAA,CAAA;IAAA,SAAA;IAAA,cAAA;IAAA,YAAA;IAAA;EAAA,CAAA,EAzFwD,mBAyFxD;EAAiB;;;EAtGU,YAAA,CAAA,CAAA,EAAA,SAAA;;;;;kBAgClB;;;;;yBASb,yBACM,2BACA,aACX,QAAQ;;;;;6BA8B+B,aAAa,QAAQ;;;;;;kEA2BhD,+BACH,oBAAiB,QAAA"}
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"}
@@ -13,7 +13,7 @@ var LedgerSigner = class LedgerSigner extends Signer {
13
13
  #derivationPath;
14
14
  #publicKey;
15
15
  #ledgerClient;
16
- #suiClient;
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, suiClient }) {
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.#suiClient = suiClient;
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.#suiClient).catch(() => ({ bcsObjects: [] }));
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, suiClient) {
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
- suiClient
89
+ haneulClient
90
90
  });
91
91
  }
92
92
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","names":["#publicKey","#derivationPath","#ledgerClient","#suiClient"],"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\tsuiClient: 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#suiClient: 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, suiClient }: LedgerSignerOptions) {\n\t\tsuper();\n\t\tthis.#publicKey = publicKey;\n\t\tthis.#derivationPath = derivationPath;\n\t\tthis.#ledgerClient = ledgerClient;\n\t\tthis.#suiClient = suiClient;\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.#suiClient).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\tsuiClient: 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\tsuiClient,\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,aAAkC;AACxF,SAAO;AACP,QAAKA,YAAa;AAClB,QAAKC,iBAAkB;AACvB,QAAKC,eAAgB;AACrB,QAAKC,YAAa;;;;;CAMnB,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,UAAW,CAAC,aAAa,EAE7E,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,WACC;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
+ {"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"],"sourcesContent":[],"mappings":";;;;cAMa,+BAAsC,qBAAqB,sBAAiB;;AAAzF,CAAA,CAAA"}
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"],"sourcesContent":[],"mappings":";;;;UAuBiB,wBAAA;EAAA,UAAA,EACJ,SADI;EACJ,SAAA,EACD,UADC,CACU,WADV,CAAA;;AACD,cAGC,eAAA,SAAwB,MAAA,CAHzB;EAAU,CAAA,OAAA;EAGT,UAAA,EACA,SADgB;EAChB,OAAA,QAAA,CAAA;IAAA;EAIiE,CAAA,CAJjE,EAAA;IAIY,WAAA,CAAA,EAAA,OAAA;EAAqD,CAAA,CAAA,EAAA,OAAA,CAAA,eAAA,CAAA;EAAA;;;EAyB7D,OAAA,MAAA,CAAA,IAAA,EAJI,wBAIJ,CAAA,EAJ4B,eAI5B;EAIQ,YAAA,CAAA,CAAA,EAJR,eAIQ;EAAsB,WAAA,CAAA,UAAA,EAAtB,SAAsB,EAAA,SAAA,EAAA,UAAA;EASpC;;;EAsBwC,MAAA,CAAA,CAAA,EAtBxC,wBAsBwC;EAAX,YAAA,CAAA,CAAA,EAJ3B,kBAI2B;EAAR,IAAA,CAAA,KAAA,EAAb,UAAa,CAAA,EAAA,OAAA,CAAQ,UAAR,CAAmB,WAAnB,CAAA,CAAA"}
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.1",
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/mystenlabs/ts-sdks/issues"
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.4.0"
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.7.1"
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.4.0"
69
+ "@haneullabs/haneul": "^2.13.0"
70
70
  },
71
71
  "scripts": {
72
72
  "clean": "rm -rf tsconfig.tsbuildinfo ./dist",
@@ -22,7 +22,7 @@ export interface LedgerSignerOptions {
22
22
  publicKey: Ed25519PublicKey;
23
23
  derivationPath: string;
24
24
  ledgerClient: HaneulLedgerClient;
25
- suiClient: ClientWithCoreApi;
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
- #suiClient: ClientWithCoreApi;
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, suiClient }: LedgerSignerOptions) {
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.#suiClient = suiClient;
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.#suiClient).catch(() => ({
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
- suiClient: ClientWithCoreApi,
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
- suiClient,
144
+ haneulClient,
145
145
  });
146
146
  }
147
147