@solana/keychain 0.1.0 → 0.3.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/README.md ADDED
@@ -0,0 +1,109 @@
1
+ # @solana/keychain
2
+
3
+ Unified Solana transaction signing for TypeScript applications. This umbrella package provides access to all keychain signers through a single import.
4
+
5
+ ## Installation
6
+
7
+ ```bash
8
+ pnpm add @solana/keychain
9
+ ```
10
+
11
+ This installs all signer implementations. For a smaller bundle, install individual packages instead:
12
+
13
+ - `@solana/keychain-aws-kms` - AWS KMS signer
14
+ - `@solana/keychain-fireblocks` - Fireblocks signer
15
+ - `@solana/keychain-privy` - Privy signer
16
+ - `@solana/keychain-turnkey` - Turnkey signer
17
+ - `@solana/keychain-vault` - HashiCorp Vault signer
18
+
19
+ ## Usage
20
+
21
+ ### Direct Signer Imports
22
+
23
+ The main signer classes are exported directly for convenience:
24
+
25
+ ```typescript
26
+ import {
27
+ AwsKmsSigner,
28
+ FireblocksSigner,
29
+ PrivySigner,
30
+ TurnkeySigner,
31
+ VaultSigner,
32
+ } from '@solana/keychain';
33
+
34
+ // Use any signer directly
35
+ const signer = new VaultSigner({
36
+ vaultAddr: 'https://vault.example.com',
37
+ vaultToken: 'hvs.xxx',
38
+ keyName: 'my-solana-key',
39
+ publicKey: 'YourSolanaPublicKey',
40
+ });
41
+ ```
42
+
43
+ ### Namespaced Imports
44
+
45
+ Each signer package is also available under its namespace for accessing types and utilities:
46
+
47
+ ```typescript
48
+ import { awsKms, fireblocks, privy, turnkey, vault } from '@solana/keychain';
49
+
50
+ // Access types
51
+ type VaultConfig = vault.VaultSignerConfig;
52
+ type FireblocksStatus = fireblocks.FireblocksTransactionStatus;
53
+
54
+ // Or use signers via namespace
55
+ const signer = new vault.VaultSigner({ ... });
56
+ ```
57
+
58
+ ### Core Utilities
59
+
60
+ Core types and utilities from `@solana/keychain-core` are re-exported:
61
+
62
+ ```typescript
63
+ import { SignerErrorCode, SolanaSigner } from '@solana/keychain';
64
+
65
+ // Use error codes
66
+ try {
67
+ await signer.signMessages([message]);
68
+ } catch (error) {
69
+ if (error.code === SignerErrorCode.REMOTE_API_ERROR) {
70
+ // Handle API error
71
+ }
72
+ }
73
+ ```
74
+
75
+ ## Available Signers
76
+
77
+ | Signer | Package |
78
+ |--------|----------|
79
+ | `AwsKmsSigner` | [@solana/keychain-aws-kms](../aws-kms/README.md) |
80
+ | `FireblocksSigner` | [@solana/keychain-fireblocks](../fireblocks/README.md) |
81
+ | `PrivySigner` | [@solana/keychain-privy](../privy/README.md) |
82
+ | `TurnkeySigner` | [@solana/keychain-turnkey](../turnkey/README.md) |
83
+ | `VaultSigner` | [@solana/keychain-vault](../vault/README.md) |
84
+
85
+ ## Common Interface
86
+
87
+ All signers are compatible with the `@solana/kit` and `@solana/signers` libraries and implement the `SolanaSigner` interface:
88
+
89
+ ```typescript
90
+ interface SolanaSigner<TAddress extends string = string> {
91
+ readonly address: Address<TAddress>;
92
+ signMessages(messages: SignableMessage[]): Promise<SignatureDictionary[]>;
93
+ signTransactions(transactions: Transaction[]): Promise<SignatureDictionary[]>;
94
+ isAvailable(): Promise<boolean>;
95
+ }
96
+ ```
97
+
98
+ This allows you to write code that works with any signer:
99
+
100
+ ```typescript
101
+ async function signAndSend(signer: SolanaSigner, transaction: Transaction) {
102
+ const [signatures] = await signer.signTransactions([transaction]);
103
+ // ... send transaction
104
+ }
105
+ ```
106
+
107
+ ## License
108
+
109
+ MIT
package/dist/index.d.ts CHANGED
@@ -1,11 +1,13 @@
1
1
  export * from '@solana/keychain-core';
2
2
  export * as awsKms from '@solana/keychain-aws-kms';
3
3
  export * as fireblocks from '@solana/keychain-fireblocks';
4
+ export * as gcpKms from '@solana/keychain-gcp-kms';
4
5
  export * as privy from '@solana/keychain-privy';
5
6
  export * as turnkey from '@solana/keychain-turnkey';
6
7
  export * as vault from '@solana/keychain-vault';
7
8
  export { AwsKmsSigner } from '@solana/keychain-aws-kms';
8
9
  export { FireblocksSigner } from '@solana/keychain-fireblocks';
10
+ export { GcpKmsSigner } from '@solana/keychain-gcp-kms';
9
11
  export { PrivySigner } from '@solana/keychain-privy';
10
12
  export { TurnkeySigner } from '@solana/keychain-turnkey';
11
13
  export { VaultSigner } from '@solana/keychain-vault';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,uBAAuB,CAAC;AAGtC,OAAO,KAAK,MAAM,MAAM,0BAA0B,CAAC;AACnD,OAAO,KAAK,UAAU,MAAM,6BAA6B,CAAC;AAC1D,OAAO,KAAK,KAAK,MAAM,wBAAwB,CAAC;AAChD,OAAO,KAAK,OAAO,MAAM,0BAA0B,CAAC;AACpD,OAAO,KAAK,KAAK,MAAM,wBAAwB,CAAC;AAGhD,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,uBAAuB,CAAC;AAGtC,OAAO,KAAK,MAAM,MAAM,0BAA0B,CAAC;AACnD,OAAO,KAAK,UAAU,MAAM,6BAA6B,CAAC;AAC1D,OAAO,KAAK,MAAM,MAAM,0BAA0B,CAAC;AACnD,OAAO,KAAK,KAAK,MAAM,wBAAwB,CAAC;AAChD,OAAO,KAAK,OAAO,MAAM,0BAA0B,CAAC;AACpD,OAAO,KAAK,KAAK,MAAM,wBAAwB,CAAC;AAGhD,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC"}
package/dist/index.js CHANGED
@@ -3,12 +3,14 @@ export * from '@solana/keychain-core';
3
3
  // Signer implementations (namespaced to avoid conflicts)
4
4
  export * as awsKms from '@solana/keychain-aws-kms';
5
5
  export * as fireblocks from '@solana/keychain-fireblocks';
6
+ export * as gcpKms from '@solana/keychain-gcp-kms';
6
7
  export * as privy from '@solana/keychain-privy';
7
8
  export * as turnkey from '@solana/keychain-turnkey';
8
9
  export * as vault from '@solana/keychain-vault';
9
10
  // Re-export signer classes directly for convenience
10
11
  export { AwsKmsSigner } from '@solana/keychain-aws-kms';
11
12
  export { FireblocksSigner } from '@solana/keychain-fireblocks';
13
+ export { GcpKmsSigner } from '@solana/keychain-gcp-kms';
12
14
  export { PrivySigner } from '@solana/keychain-privy';
13
15
  export { TurnkeySigner } from '@solana/keychain-turnkey';
14
16
  export { VaultSigner } from '@solana/keychain-vault';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,cAAc,uBAAuB,CAAC;AAEtC,yDAAyD;AACzD,OAAO,KAAK,MAAM,MAAM,0BAA0B,CAAC;AACnD,OAAO,KAAK,UAAU,MAAM,6BAA6B,CAAC;AAC1D,OAAO,KAAK,KAAK,MAAM,wBAAwB,CAAC;AAChD,OAAO,KAAK,OAAO,MAAM,0BAA0B,CAAC;AACpD,OAAO,KAAK,KAAK,MAAM,wBAAwB,CAAC;AAEhD,oDAAoD;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,cAAc,uBAAuB,CAAC;AAEtC,yDAAyD;AACzD,OAAO,KAAK,MAAM,MAAM,0BAA0B,CAAC;AACnD,OAAO,KAAK,UAAU,MAAM,6BAA6B,CAAC;AAC1D,OAAO,KAAK,MAAM,MAAM,0BAA0B,CAAC;AACnD,OAAO,KAAK,KAAK,MAAM,wBAAwB,CAAC;AAChD,OAAO,KAAK,OAAO,MAAM,0BAA0B,CAAC;AACpD,OAAO,KAAK,KAAK,MAAM,wBAAwB,CAAC;AAEhD,oDAAoD;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC"}
package/package.json CHANGED
@@ -1,50 +1,51 @@
1
1
  {
2
- "name": "@solana/keychain",
3
- "author": "Solana Foundation",
4
- "license": "MIT",
5
- "repository": "https://github.com/solana-foundation/solana-keychain",
6
- "version": "0.1.0",
7
- "description": "Unified Solana transaction signing across multiple backends",
8
- "keywords": [
9
- "solana",
10
- "signing",
11
- "wallet",
12
- "privy",
13
- "vault",
14
- "turnkey",
15
- "aws",
16
- "kms",
17
- "fireblocks"
18
- ],
19
- "type": "module",
20
- "sideEffects": false,
21
- "main": "./dist/index.js",
22
- "types": "./dist/index.d.ts",
23
- "exports": {
24
- ".": {
25
- "types": "./dist/index.d.ts",
26
- "import": "./dist/index.js"
27
- }
28
- },
29
- "files": [
30
- "dist",
31
- "src"
32
- ],
33
- "scripts": {
34
- "build": "tsc --build",
35
- "clean": "rm -rf dist *.tsbuildinfo",
36
- "test": "pnpm run typecheck",
37
- "typecheck": "tsc --noEmit"
38
- },
39
- "dependencies": {
40
- "@solana/keychain-core": "workspace:*",
41
- "@solana/keychain-aws-kms": "workspace:*",
42
- "@solana/keychain-fireblocks": "workspace:*",
43
- "@solana/keychain-privy": "workspace:*",
44
- "@solana/keychain-turnkey": "workspace:*",
45
- "@solana/keychain-vault": "workspace:*"
46
- },
47
- "publishConfig": {
48
- "access": "public"
2
+ "name": "@solana/keychain",
3
+ "author": "Solana Foundation",
4
+ "license": "MIT",
5
+ "repository": "https://github.com/solana-foundation/solana-keychain",
6
+ "version": "0.3.0",
7
+ "description": "Unified Solana transaction signing across multiple backends",
8
+ "keywords": [
9
+ "solana",
10
+ "signing",
11
+ "wallet",
12
+ "privy",
13
+ "vault",
14
+ "turnkey",
15
+ "aws",
16
+ "kms",
17
+ "fireblocks"
18
+ ],
19
+ "type": "module",
20
+ "sideEffects": false,
21
+ "main": "./dist/index.js",
22
+ "types": "./dist/index.d.ts",
23
+ "exports": {
24
+ ".": {
25
+ "types": "./dist/index.d.ts",
26
+ "import": "./dist/index.js"
49
27
  }
50
- }
28
+ },
29
+ "files": [
30
+ "dist",
31
+ "src"
32
+ ],
33
+ "dependencies": {
34
+ "@solana/keychain-core": "0.3.0",
35
+ "@solana/keychain-fireblocks": "0.3.0",
36
+ "@solana/keychain-gcp-kms": "0.2.1",
37
+ "@solana/keychain-privy": "0.3.0",
38
+ "@solana/keychain-turnkey": "0.3.0",
39
+ "@solana/keychain-aws-kms": "0.3.0",
40
+ "@solana/keychain-vault": "0.3.0"
41
+ },
42
+ "publishConfig": {
43
+ "access": "public"
44
+ },
45
+ "scripts": {
46
+ "build": "tsc --build",
47
+ "clean": "rm -rf dist *.tsbuildinfo",
48
+ "test": "pnpm run typecheck",
49
+ "typecheck": "tsc --noEmit"
50
+ }
51
+ }
package/src/index.ts CHANGED
@@ -4,6 +4,7 @@ export * from '@solana/keychain-core';
4
4
  // Signer implementations (namespaced to avoid conflicts)
5
5
  export * as awsKms from '@solana/keychain-aws-kms';
6
6
  export * as fireblocks from '@solana/keychain-fireblocks';
7
+ export * as gcpKms from '@solana/keychain-gcp-kms';
7
8
  export * as privy from '@solana/keychain-privy';
8
9
  export * as turnkey from '@solana/keychain-turnkey';
9
10
  export * as vault from '@solana/keychain-vault';
@@ -11,6 +12,7 @@ export * as vault from '@solana/keychain-vault';
11
12
  // Re-export signer classes directly for convenience
12
13
  export { AwsKmsSigner } from '@solana/keychain-aws-kms';
13
14
  export { FireblocksSigner } from '@solana/keychain-fireblocks';
15
+ export { GcpKmsSigner } from '@solana/keychain-gcp-kms';
14
16
  export { PrivySigner } from '@solana/keychain-privy';
15
17
  export { TurnkeySigner } from '@solana/keychain-turnkey';
16
18
  export { VaultSigner } from '@solana/keychain-vault';