@solana/keychain 0.2.1 → 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 +109 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/package.json +8 -7
- package/src/index.ts +2 -0
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';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -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
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"author": "Solana Foundation",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"repository": "https://github.com/solana-foundation/solana-keychain",
|
|
6
|
-
"version": "0.
|
|
6
|
+
"version": "0.3.0",
|
|
7
7
|
"description": "Unified Solana transaction signing across multiple backends",
|
|
8
8
|
"keywords": [
|
|
9
9
|
"solana",
|
|
@@ -31,12 +31,13 @@
|
|
|
31
31
|
"src"
|
|
32
32
|
],
|
|
33
33
|
"dependencies": {
|
|
34
|
-
"@solana/keychain-core": "0.
|
|
35
|
-
"@solana/keychain-
|
|
36
|
-
"@solana/keychain-
|
|
37
|
-
"@solana/keychain-
|
|
38
|
-
"@solana/keychain-turnkey": "0.
|
|
39
|
-
"@solana/keychain-
|
|
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"
|
|
40
41
|
},
|
|
41
42
|
"publishConfig": {
|
|
42
43
|
"access": "public"
|
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';
|