@solana/kora 0.2.1 → 0.3.0-beta.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/dist/src/client.d.ts +212 -7
- package/dist/src/client.js +234 -17
- package/dist/src/error.d.ts +41 -0
- package/dist/src/error.js +54 -0
- package/dist/src/index.d.ts +2 -2
- package/dist/src/index.js +2 -2
- package/dist/src/kit/executor.d.ts +2 -2
- package/dist/src/kit/executor.js +20 -7
- package/dist/src/kit/index.d.ts +85 -25
- package/dist/src/kit/index.js +79 -49
- package/dist/src/kit/payment.js +3 -2
- package/dist/src/kit/planner.d.ts +2 -2
- package/dist/src/plugin.d.ts +85 -0
- package/dist/src/plugin.js +179 -0
- package/dist/src/types/index.d.ts +200 -80
- package/dist/test/auth-setup.js +4 -4
- package/dist/test/integration.test.js +223 -298
- package/dist/test/kit-client.test.js +66 -3
- package/dist/test/plugin.test.js +169 -79
- package/dist/test/setup.d.ts +8 -15
- package/dist/test/setup.js +76 -153
- package/dist/test/unit.test.js +365 -161
- package/package.json +37 -34
- package/dist/src/kit/plugin.d.ts +0 -31
- package/dist/src/kit/plugin.js +0 -107
package/package.json
CHANGED
|
@@ -1,10 +1,20 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@solana/kora",
|
|
3
|
-
"version": "0.2
|
|
3
|
+
"version": "0.3.0-beta.2",
|
|
4
4
|
"description": "TypeScript SDK for Kora RPC",
|
|
5
5
|
"main": "dist/src/index.js",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"types": "dist/src/index.d.ts",
|
|
8
|
+
"exports": {
|
|
9
|
+
".": {
|
|
10
|
+
"types": "./dist/src/index.d.ts",
|
|
11
|
+
"default": "./dist/src/index.js"
|
|
12
|
+
},
|
|
13
|
+
"./kit": {
|
|
14
|
+
"types": "./dist/src/kit/index.d.ts",
|
|
15
|
+
"default": "./dist/src/kit/index.js"
|
|
16
|
+
}
|
|
17
|
+
},
|
|
8
18
|
"files": [
|
|
9
19
|
"dist"
|
|
10
20
|
],
|
|
@@ -22,42 +32,36 @@
|
|
|
22
32
|
"directory": "sdks/ts"
|
|
23
33
|
},
|
|
24
34
|
"peerDependencies": {
|
|
25
|
-
"@solana-program/compute-budget": "^0.
|
|
26
|
-
"@solana-program/token": "^0.
|
|
27
|
-
"@solana/kit": "^6.
|
|
28
|
-
"@solana/kit-plugin-instruction-plan": "^0.
|
|
29
|
-
"@solana/kit-plugin-
|
|
30
|
-
"@solana/kit-plugin-
|
|
35
|
+
"@solana-program/compute-budget": "^0.15.0",
|
|
36
|
+
"@solana-program/token": "^0.13.0",
|
|
37
|
+
"@solana/kit": "^6.8.0",
|
|
38
|
+
"@solana/kit-plugin-instruction-plan": "^0.10.0",
|
|
39
|
+
"@solana/kit-plugin-rpc": "^0.10.0",
|
|
40
|
+
"@solana/kit-plugin-signer": "^0.10.0"
|
|
31
41
|
},
|
|
32
42
|
"devDependencies": {
|
|
33
|
-
"@eslint/js": "^
|
|
34
|
-
"@solana-program/
|
|
35
|
-
"@solana-program/system": "^0.11.0",
|
|
36
|
-
"@solana-program/token": "^0.12.0",
|
|
43
|
+
"@eslint/js": "^10.0.1",
|
|
44
|
+
"@solana-program/system": "^0.12.0",
|
|
37
45
|
"@solana/eslint-config-solana": "6.0.0",
|
|
38
|
-
"@solana/kit": "^
|
|
39
|
-
"@solana/kit-plugin-instruction-plan": "^0.6.0",
|
|
40
|
-
"@solana/kit-plugin-payer": "^0.6.0",
|
|
41
|
-
"@solana/kit-plugin-rpc": "^0.6.0",
|
|
46
|
+
"@solana/kit-plugin-litesvm": "^0.10.0",
|
|
42
47
|
"@solana/prettier-config-solana": "^0.0.6",
|
|
43
|
-
"@types/jest": "^
|
|
44
|
-
"@types/node": "^
|
|
45
|
-
"dotenv": "^
|
|
46
|
-
"eslint": "^
|
|
47
|
-
"eslint-plugin-jest": "^29.15.
|
|
48
|
-
"eslint-plugin-simple-import-sort": "^
|
|
48
|
+
"@types/jest": "^30.0.0",
|
|
49
|
+
"@types/node": "^25.9.1",
|
|
50
|
+
"dotenv": "^17.4.2",
|
|
51
|
+
"eslint": "^10.4.0",
|
|
52
|
+
"eslint-plugin-jest": "^29.15.2",
|
|
53
|
+
"eslint-plugin-simple-import-sort": "^13.0.0",
|
|
49
54
|
"eslint-plugin-sort-keys-fix": "^1.1.2",
|
|
50
55
|
"eslint-plugin-typescript-sort-keys": "^3.3.0",
|
|
51
|
-
"globals": "^
|
|
52
|
-
"jest": "^
|
|
53
|
-
"prettier": "^3.
|
|
54
|
-
"ts-jest": "^29.
|
|
56
|
+
"globals": "^17.6.0",
|
|
57
|
+
"jest": "^30.4.2",
|
|
58
|
+
"prettier": "^3.8.3",
|
|
59
|
+
"ts-jest": "^29.4.9",
|
|
55
60
|
"ts-node": "^10.9.2",
|
|
56
|
-
"typedoc": "^0.28.
|
|
57
|
-
"typedoc-plugin-markdown": "^4.
|
|
58
|
-
"typescript": "^
|
|
59
|
-
"typescript-eslint": "^8.
|
|
60
|
-
"ws": "^8.18.3"
|
|
61
|
+
"typedoc": "^0.28.19",
|
|
62
|
+
"typedoc-plugin-markdown": "^4.12.0",
|
|
63
|
+
"typescript": "^6.0.3",
|
|
64
|
+
"typescript-eslint": "^8.61.0"
|
|
61
65
|
},
|
|
62
66
|
"scripts": {
|
|
63
67
|
"build": "tsc",
|
|
@@ -68,12 +72,11 @@
|
|
|
68
72
|
"test:integration": "pnpm test integration.test.ts",
|
|
69
73
|
"test:integration:auth": "ENABLE_AUTH=true pnpm test integration.test.ts",
|
|
70
74
|
"test:integration:free": "FREE_PRICING=true pnpm test integration.test.ts",
|
|
75
|
+
"test:integration:openfort": "KORA_SIGNER_TYPE=openfort pnpm test integration.test.ts",
|
|
71
76
|
"test:integration:privy": "KORA_SIGNER_TYPE=privy pnpm test integration.test.ts",
|
|
72
77
|
"test:integration:turnkey": "KORA_SIGNER_TYPE=turnkey pnpm test integration.test.ts",
|
|
73
|
-
"test:unit": "pnpm test unit.test.ts",
|
|
74
|
-
"test:ci:
|
|
75
|
-
"test:ci:integration:auth": "ENABLE_AUTH=true node scripts/test-with-validator.js",
|
|
76
|
-
"test:ci:unit": "jest test/unit.test.ts",
|
|
78
|
+
"test:unit": "pnpm test unit.test.ts kit-client.test.ts plugin.test.ts",
|
|
79
|
+
"test:ci:unit": "jest test/unit.test.ts test/kit-client.test.ts test/plugin.test.ts",
|
|
77
80
|
"lint": "eslint src/",
|
|
78
81
|
"format": "prettier --write \"src/**/*.ts\" \"test/**/*.ts\"",
|
|
79
82
|
"format:check": "prettier --check \"src/**/*.ts\" \"test/**/*.ts\"",
|
package/dist/src/kit/plugin.d.ts
DELETED
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
import type { EstimateTransactionFeeRequest, GetPaymentInstructionRequest, KitBlockhashResponse, KitConfigResponse, KitEstimateFeeResponse, KitPayerSignerResponse, KitPaymentInstructionResponse, KitSignAndSendTransactionResponse, KitSignTransactionResponse, KitSupportedTokensResponse, KitTransferTransactionResponse, KoraPluginConfig, SignAndSendTransactionRequest, SignTransactionRequest, TransferTransactionRequest } from '../types/index.js';
|
|
2
|
-
/**
|
|
3
|
-
* Kit plugin that adds `.kora` namespace with all Kora RPC methods.
|
|
4
|
-
* Responses are cast to Kit types (Address, Blockhash, Signature).
|
|
5
|
-
*
|
|
6
|
-
* Requires `@solana/kit` v5.4.0+ for the `createEmptyClient().use()` pattern.
|
|
7
|
-
*
|
|
8
|
-
* @example
|
|
9
|
-
* ```typescript
|
|
10
|
-
* const client = createEmptyClient()
|
|
11
|
-
* .use(koraPlugin({ endpoint: 'https://kora.example.com' }));
|
|
12
|
-
*
|
|
13
|
-
* const config = await client.kora.getConfig();
|
|
14
|
-
* const { signer_pubkey } = await client.kora.signTransaction({ transaction: tx });
|
|
15
|
-
* ```
|
|
16
|
-
*/
|
|
17
|
-
export declare function koraPlugin(config: KoraPluginConfig): <T extends object>(c: T) => T & {
|
|
18
|
-
kora: {
|
|
19
|
-
estimateTransactionFee(request: EstimateTransactionFeeRequest): Promise<KitEstimateFeeResponse>;
|
|
20
|
-
getBlockhash(): Promise<KitBlockhashResponse>;
|
|
21
|
-
getConfig(): Promise<KitConfigResponse>;
|
|
22
|
-
getPayerSigner(): Promise<KitPayerSignerResponse>;
|
|
23
|
-
getPaymentInstruction(request: GetPaymentInstructionRequest): Promise<KitPaymentInstructionResponse>;
|
|
24
|
-
getSupportedTokens(): Promise<KitSupportedTokensResponse>;
|
|
25
|
-
signAndSendTransaction(request: SignAndSendTransactionRequest): Promise<KitSignAndSendTransactionResponse>;
|
|
26
|
-
signTransaction(request: SignTransactionRequest): Promise<KitSignTransactionResponse>;
|
|
27
|
-
transferTransaction(request: TransferTransactionRequest): Promise<KitTransferTransactionResponse>;
|
|
28
|
-
};
|
|
29
|
-
};
|
|
30
|
-
/** Type representing the Kora plugin namespace on the client. */
|
|
31
|
-
export type KoraPlugin = ReturnType<ReturnType<typeof koraPlugin>>['kora'];
|
package/dist/src/kit/plugin.js
DELETED
|
@@ -1,107 +0,0 @@
|
|
|
1
|
-
import { address, blockhash, signature } from '@solana/kit';
|
|
2
|
-
import { KoraClient } from '../client.js';
|
|
3
|
-
/**
|
|
4
|
-
* Kit plugin that adds `.kora` namespace with all Kora RPC methods.
|
|
5
|
-
* Responses are cast to Kit types (Address, Blockhash, Signature).
|
|
6
|
-
*
|
|
7
|
-
* Requires `@solana/kit` v5.4.0+ for the `createEmptyClient().use()` pattern.
|
|
8
|
-
*
|
|
9
|
-
* @example
|
|
10
|
-
* ```typescript
|
|
11
|
-
* const client = createEmptyClient()
|
|
12
|
-
* .use(koraPlugin({ endpoint: 'https://kora.example.com' }));
|
|
13
|
-
*
|
|
14
|
-
* const config = await client.kora.getConfig();
|
|
15
|
-
* const { signer_pubkey } = await client.kora.signTransaction({ transaction: tx });
|
|
16
|
-
* ```
|
|
17
|
-
*/
|
|
18
|
-
export function koraPlugin(config) {
|
|
19
|
-
const client = new KoraClient({
|
|
20
|
-
apiKey: config.apiKey,
|
|
21
|
-
hmacSecret: config.hmacSecret,
|
|
22
|
-
rpcUrl: config.endpoint,
|
|
23
|
-
});
|
|
24
|
-
return (c) => ({
|
|
25
|
-
...c,
|
|
26
|
-
kora: {
|
|
27
|
-
async estimateTransactionFee(request) {
|
|
28
|
-
const result = await client.estimateTransactionFee(request);
|
|
29
|
-
return {
|
|
30
|
-
fee_in_lamports: result.fee_in_lamports,
|
|
31
|
-
fee_in_token: result.fee_in_token,
|
|
32
|
-
payment_address: address(result.payment_address),
|
|
33
|
-
signer_pubkey: address(result.signer_pubkey),
|
|
34
|
-
};
|
|
35
|
-
},
|
|
36
|
-
async getBlockhash() {
|
|
37
|
-
const result = await client.getBlockhash();
|
|
38
|
-
return {
|
|
39
|
-
blockhash: blockhash(result.blockhash),
|
|
40
|
-
};
|
|
41
|
-
},
|
|
42
|
-
async getConfig() {
|
|
43
|
-
const result = await client.getConfig();
|
|
44
|
-
return {
|
|
45
|
-
enabled_methods: result.enabled_methods,
|
|
46
|
-
fee_payers: result.fee_payers.map(addr => address(addr)),
|
|
47
|
-
validation_config: {
|
|
48
|
-
...result.validation_config,
|
|
49
|
-
allowed_programs: result.validation_config.allowed_programs.map(addr => address(addr)),
|
|
50
|
-
allowed_spl_paid_tokens: result.validation_config.allowed_spl_paid_tokens.map(addr => address(addr)),
|
|
51
|
-
allowed_tokens: result.validation_config.allowed_tokens.map(addr => address(addr)),
|
|
52
|
-
disallowed_accounts: result.validation_config.disallowed_accounts.map(addr => address(addr)),
|
|
53
|
-
},
|
|
54
|
-
};
|
|
55
|
-
},
|
|
56
|
-
async getPayerSigner() {
|
|
57
|
-
const result = await client.getPayerSigner();
|
|
58
|
-
return {
|
|
59
|
-
payment_address: address(result.payment_address),
|
|
60
|
-
signer_address: address(result.signer_address),
|
|
61
|
-
};
|
|
62
|
-
},
|
|
63
|
-
async getPaymentInstruction(request) {
|
|
64
|
-
const result = await client.getPaymentInstruction(request);
|
|
65
|
-
return {
|
|
66
|
-
original_transaction: result.original_transaction,
|
|
67
|
-
payment_address: address(result.payment_address),
|
|
68
|
-
payment_amount: result.payment_amount,
|
|
69
|
-
payment_instruction: result.payment_instruction,
|
|
70
|
-
payment_token: address(result.payment_token),
|
|
71
|
-
signer_address: address(result.signer_address),
|
|
72
|
-
};
|
|
73
|
-
},
|
|
74
|
-
async getSupportedTokens() {
|
|
75
|
-
const result = await client.getSupportedTokens();
|
|
76
|
-
return {
|
|
77
|
-
tokens: result.tokens.map(addr => address(addr)),
|
|
78
|
-
};
|
|
79
|
-
},
|
|
80
|
-
async signAndSendTransaction(request) {
|
|
81
|
-
const result = await client.signAndSendTransaction(request);
|
|
82
|
-
return {
|
|
83
|
-
signature: signature(result.signature),
|
|
84
|
-
signed_transaction: result.signed_transaction,
|
|
85
|
-
signer_pubkey: address(result.signer_pubkey),
|
|
86
|
-
};
|
|
87
|
-
},
|
|
88
|
-
async signTransaction(request) {
|
|
89
|
-
const result = await client.signTransaction(request);
|
|
90
|
-
return {
|
|
91
|
-
signed_transaction: result.signed_transaction,
|
|
92
|
-
signer_pubkey: address(result.signer_pubkey),
|
|
93
|
-
};
|
|
94
|
-
},
|
|
95
|
-
async transferTransaction(request) {
|
|
96
|
-
const result = await client.transferTransaction(request);
|
|
97
|
-
return {
|
|
98
|
-
blockhash: blockhash(result.blockhash),
|
|
99
|
-
instructions: result.instructions,
|
|
100
|
-
message: result.message,
|
|
101
|
-
signer_pubkey: address(result.signer_pubkey),
|
|
102
|
-
transaction: result.transaction,
|
|
103
|
-
};
|
|
104
|
-
},
|
|
105
|
-
},
|
|
106
|
-
});
|
|
107
|
-
}
|