@wuwei-labs/srsly 2.0.0-beta.26 → 2.0.0-beta.28

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.
Files changed (72) hide show
  1. package/README.md +189 -97
  2. package/dist/cjs/contract/close.js +33 -24
  3. package/dist/cjs/contract/close.js.map +1 -1
  4. package/dist/cjs/contract/create.js +67 -52
  5. package/dist/cjs/contract/create.js.map +1 -1
  6. package/dist/cjs/package.json +2 -13
  7. package/dist/cjs/rental/accept.js +35 -29
  8. package/dist/cjs/rental/accept.js.map +1 -1
  9. package/dist/cjs/rental/cancel.js +13 -9
  10. package/dist/cjs/rental/cancel.js.map +1 -1
  11. package/dist/cjs/rental/close.js +15 -11
  12. package/dist/cjs/rental/close.js.map +1 -1
  13. package/dist/cjs/rental/reset.js +20 -17
  14. package/dist/cjs/rental/reset.js.map +1 -1
  15. package/dist/cjs/utils/config.js +0 -88
  16. package/dist/cjs/utils/config.js.map +1 -1
  17. package/dist/cjs/utils/index.js +1 -0
  18. package/dist/cjs/utils/index.js.map +1 -1
  19. package/dist/cjs/utils/instruction-converter.js +49 -0
  20. package/dist/cjs/utils/instruction-converter.js.map +1 -0
  21. package/dist/esm/contract/close.js +34 -25
  22. package/dist/esm/contract/close.js.map +1 -1
  23. package/dist/esm/contract/create.js +67 -51
  24. package/dist/esm/contract/create.js.map +1 -1
  25. package/dist/esm/package.json +2 -13
  26. package/dist/esm/rental/accept.js +36 -30
  27. package/dist/esm/rental/accept.js.map +1 -1
  28. package/dist/esm/rental/cancel.js +13 -9
  29. package/dist/esm/rental/cancel.js.map +1 -1
  30. package/dist/esm/rental/close.js +15 -11
  31. package/dist/esm/rental/close.js.map +1 -1
  32. package/dist/esm/rental/reset.js +22 -19
  33. package/dist/esm/rental/reset.js.map +1 -1
  34. package/dist/esm/utils/config.js +0 -88
  35. package/dist/esm/utils/config.js.map +1 -1
  36. package/dist/esm/utils/index.js +1 -0
  37. package/dist/esm/utils/index.js.map +1 -1
  38. package/dist/esm/utils/instruction-converter.js +45 -0
  39. package/dist/esm/utils/instruction-converter.js.map +1 -0
  40. package/dist/types/contract/close.d.ts +12 -11
  41. package/dist/types/contract/close.d.ts.map +1 -1
  42. package/dist/types/contract/create.d.ts +49 -65
  43. package/dist/types/contract/create.d.ts.map +1 -1
  44. package/dist/types/rental/accept.d.ts +32 -28
  45. package/dist/types/rental/accept.d.ts.map +1 -1
  46. package/dist/types/rental/cancel.d.ts +16 -12
  47. package/dist/types/rental/cancel.d.ts.map +1 -1
  48. package/dist/types/rental/close.d.ts +16 -13
  49. package/dist/types/rental/close.d.ts.map +1 -1
  50. package/dist/types/rental/reset.d.ts +19 -16
  51. package/dist/types/rental/reset.d.ts.map +1 -1
  52. package/dist/types/utils/config.d.ts +0 -95
  53. package/dist/types/utils/config.d.ts.map +1 -1
  54. package/dist/types/utils/index.d.ts +1 -0
  55. package/dist/types/utils/index.d.ts.map +1 -1
  56. package/dist/types/utils/instruction-converter.d.ts +76 -0
  57. package/dist/types/utils/instruction-converter.d.ts.map +1 -0
  58. package/dist/types/utils/types.d.ts +0 -8
  59. package/dist/types/utils/types.d.ts.map +1 -1
  60. package/package.json +2 -13
  61. package/dist/cjs/utils/pack-functions.js +0 -148
  62. package/dist/cjs/utils/pack-functions.js.map +0 -1
  63. package/dist/cjs/utils/solana-adapter.js +0 -120
  64. package/dist/cjs/utils/solana-adapter.js.map +0 -1
  65. package/dist/esm/utils/pack-functions.js +0 -110
  66. package/dist/esm/utils/pack-functions.js.map +0 -1
  67. package/dist/esm/utils/solana-adapter.js +0 -82
  68. package/dist/esm/utils/solana-adapter.js.map +0 -1
  69. package/dist/types/utils/pack-functions.d.ts +0 -18
  70. package/dist/types/utils/pack-functions.d.ts.map +0 -1
  71. package/dist/types/utils/solana-adapter.d.ts +0 -26
  72. package/dist/types/utils/solana-adapter.d.ts.map +0 -1
@@ -0,0 +1,76 @@
1
+ /**
2
+ * Fluent instruction interface for format conversion between @solana/kit and @solana/web3.js
3
+ */
4
+ import { ConfigSelector } from './config';
5
+ /**
6
+ * @solana/kit instruction format
7
+ */
8
+ export interface KitInstruction {
9
+ accounts: Array<{
10
+ address: string;
11
+ role: number;
12
+ }>;
13
+ programAddress: string;
14
+ data: Uint8Array | {
15
+ [key: string]: number;
16
+ };
17
+ }
18
+ /**
19
+ * @solana/web3.js instruction format
20
+ */
21
+ export interface Web3jsInstruction {
22
+ keys: Array<{
23
+ pubkey: string;
24
+ isWritable: boolean;
25
+ isSigner: boolean;
26
+ }>;
27
+ programId: string;
28
+ data: Uint8Array | {
29
+ [key: string]: number;
30
+ };
31
+ }
32
+ /**
33
+ * Fluent instruction wrapper that provides format conversion methods
34
+ * @example
35
+ * ```typescript
36
+ * // Default returns kit format
37
+ * const kitInstruction = await createContract(params);
38
+ *
39
+ * // Convert to web3.js format
40
+ * const web3jsInstruction = await createContract(params).web3js();
41
+ *
42
+ * // Use with libraries
43
+ * const transaction = new Transaction().add(web3jsInstruction);
44
+ * ```
45
+ */
46
+ export interface FluentInstruction extends KitInstruction {
47
+ /**
48
+ * Convert instruction to @solana/web3.js format
49
+ * @returns Instruction in @solana/web3.js format
50
+ */
51
+ web3js(): Web3jsInstruction;
52
+ }
53
+ /**
54
+ * Fluent config selector that adds format conversion methods
55
+ * This allows chaining both configuration and format conversion
56
+ */
57
+ export interface FluentConfigSelector<T extends FluentInstruction> extends ConfigSelector<T> {
58
+ /**
59
+ * Convert instruction to @solana/web3.js format
60
+ * @returns Promise that resolves to Web3jsInstruction
61
+ */
62
+ web3js(): Promise<Web3jsInstruction>;
63
+ }
64
+ /**
65
+ * Create a fluent instruction wrapper around a kit instruction
66
+ * @param kitInstruction The base instruction in kit format
67
+ * @returns Fluent instruction with conversion methods
68
+ */
69
+ export declare function createFluentInstruction(kitInstruction: KitInstruction): FluentInstruction;
70
+ /**
71
+ * Create a fluent config selector that adds format conversion methods
72
+ * @param baseSelector The base ConfigSelector
73
+ * @returns FluentConfigSelector with additional format conversion methods
74
+ */
75
+ export declare function createFluentConfigSelector<T extends FluentInstruction>(baseSelector: ConfigSelector<T>): FluentConfigSelector<T>;
76
+ //# sourceMappingURL=instruction-converter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"instruction-converter.d.ts","sourceRoot":"","sources":["../../../src/utils/instruction-converter.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE1C;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,KAAK,CAAC;QACd,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;KACd,CAAC,CAAC;IACH,cAAc,EAAE,MAAM,CAAC;IACvB,IAAI,EAAE,UAAU,GAAG;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC;CAC9C;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,KAAK,CAAC;QACV,MAAM,EAAE,MAAM,CAAC;QACf,UAAU,EAAE,OAAO,CAAC;QACpB,QAAQ,EAAE,OAAO,CAAC;KACnB,CAAC,CAAC;IACH,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,UAAU,GAAG;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC;CAC9C;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,iBAAkB,SAAQ,cAAc;IACvD;;;OAGG;IACH,MAAM,IAAI,iBAAiB,CAAC;CAC7B;AAED;;;GAGG;AACH,MAAM,WAAW,oBAAoB,CAAC,CAAC,SAAS,iBAAiB,CAAE,SAAQ,cAAc,CAAC,CAAC,CAAC;IAC1F;;;OAGG;IACH,MAAM,IAAI,OAAO,CAAC,iBAAiB,CAAC,CAAC;CACtC;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,cAAc,EAAE,cAAc,GAAG,iBAAiB,CAezF;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,CAAC,SAAS,iBAAiB,EACpE,YAAY,EAAE,cAAc,CAAC,CAAC,CAAC,GAC9B,oBAAoB,CAAC,CAAC,CAAC,CAczB"}
@@ -2,13 +2,5 @@
2
2
  * Universal types that work with both @solana/kit and @solana/web3.js
3
3
  */
4
4
  export type UniversalAddress = string | any;
5
- export type UniversalTransactionSigner = any;
6
5
  export type UniversalInstruction = any;
7
- export interface PackedTransaction {
8
- messageBytes: Uint8Array;
9
- signatures: any[];
10
- send: (signer: UniversalTransactionSigner) => Promise<string>;
11
- transaction?: any;
12
- }
13
- export type { SolanaLibrary } from './solana-adapter';
14
6
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/utils/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,GAAG,CAAC;AAG5C,MAAM,MAAM,0BAA0B,GAAG,GAAG,CAAC;AAG7C,MAAM,MAAM,oBAAoB,GAAG,GAAG,CAAC;AAGvC,MAAM,WAAW,iBAAiB;IAChC,YAAY,EAAE,UAAU,CAAC;IACzB,UAAU,EAAE,GAAG,EAAE,CAAC;IAClB,IAAI,EAAE,CAAC,MAAM,EAAE,0BAA0B,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAE9D,WAAW,CAAC,EAAE,GAAG,CAAC;CACnB;AAGD,YAAY,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/utils/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,GAAG,CAAC;AAG5C,MAAM,MAAM,oBAAoB,GAAG,GAAG,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wuwei-labs/srsly",
3
- "version": "2.0.0-beta.26",
3
+ "version": "2.0.0-beta.28",
4
4
  "description": "",
5
5
  "main": "./dist/cjs/index.js",
6
6
  "types": "./dist/types/index.d.ts",
@@ -63,23 +63,12 @@
63
63
  "devDependencies": {
64
64
  "@codama/nodes-from-anchor": "^1.1.13",
65
65
  "@codama/renderers": "^1.0.21",
66
+ "@solana/kit": "^2.0.0",
66
67
  "@types/node": "^24.0.3",
67
68
  "codama": "^1.2.13",
68
69
  "tsconfig-to-dual-package": "^1.2.0",
69
70
  "typedoc": "^0.28.3",
70
71
  "typescript": "^5.8.3",
71
72
  "vitest": "^3.2.4"
72
- },
73
- "peerDependencies": {
74
- "@solana/kit": ">=2.0.0",
75
- "@solana/web3.js": ">=1.95.0"
76
- },
77
- "peerDependenciesMeta": {
78
- "@solana/kit": {
79
- "optional": true
80
- },
81
- "@solana/web3.js": {
82
- "optional": true
83
- }
84
73
  }
85
74
  }
@@ -1,148 +0,0 @@
1
- "use strict";
2
- /**
3
- * Pack function implementations for different Solana libraries
4
- */
5
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
6
- if (k2 === undefined) k2 = k;
7
- var desc = Object.getOwnPropertyDescriptor(m, k);
8
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
9
- desc = { enumerable: true, get: function() { return m[k]; } };
10
- }
11
- Object.defineProperty(o, k2, desc);
12
- }) : (function(o, m, k, k2) {
13
- if (k2 === undefined) k2 = k;
14
- o[k2] = m[k];
15
- }));
16
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
17
- Object.defineProperty(o, "default", { enumerable: true, value: v });
18
- }) : function(o, v) {
19
- o["default"] = v;
20
- });
21
- var __importStar = (this && this.__importStar) || (function () {
22
- var ownKeys = function(o) {
23
- ownKeys = Object.getOwnPropertyNames || function (o) {
24
- var ar = [];
25
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
26
- return ar;
27
- };
28
- return ownKeys(o);
29
- };
30
- return function (mod) {
31
- if (mod && mod.__esModule) return mod;
32
- var result = {};
33
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
34
- __setModuleDefault(result, mod);
35
- return result;
36
- };
37
- })();
38
- Object.defineProperty(exports, "__esModule", { value: true });
39
- exports.packWithKit = packWithKit;
40
- exports.packWithWeb3js = packWithWeb3js;
41
- exports.packWithAuto = packWithAuto;
42
- const config_1 = require("./config");
43
- /**
44
- * Pack instruction using @solana/kit
45
- */
46
- async function packWithKit(instruction, feePayer, config) {
47
- const kit = await Promise.resolve().then(() => __importStar(require('@solana/kit')));
48
- const { createSolanaRpc, createSolanaRpcSubscriptions, createTransactionMessage, setTransactionMessageFeePayer, setTransactionMessageFeePayerSigner, setTransactionMessageLifetimeUsingBlockhash, appendTransactionMessageInstructions, compileTransaction, signTransactionMessageWithSigners, sendAndConfirmTransactionFactory, getSignatureFromTransaction, pipe, address } = kit;
49
- const resolvedAddresses = (0, config_1.resolveProgramAddresses)(config);
50
- if (!resolvedAddresses.rpcUrl) {
51
- throw new Error('RPC URL is required for creating transactions. Please set it via setConfig({ rpcUrl: "..." })');
52
- }
53
- // Create RPC connection to get latest blockhash
54
- const rpc = createSolanaRpc(resolvedAddresses.rpcUrl);
55
- const { value: latestBlockhash } = await rpc.getLatestBlockhash().send();
56
- // Convert feePayer to proper Address type
57
- const feePayerAddress = typeof feePayer === 'string' ? address(feePayer) : feePayer;
58
- // Build unsigned transaction message
59
- const transactionMessage = pipe(createTransactionMessage({ version: 0 }), (msg) => setTransactionMessageFeePayer(feePayerAddress, msg), (msg) => setTransactionMessageLifetimeUsingBlockhash(latestBlockhash, msg), (msg) => appendTransactionMessageInstructions([instruction], msg));
60
- // Compile to unsigned transaction
61
- const unsignedTransaction = compileTransaction(transactionMessage);
62
- return {
63
- messageBytes: new Uint8Array(unsignedTransaction.messageBytes),
64
- signatures: [], // Empty for unsigned transactions
65
- send: async (signer) => {
66
- // Create RPC connections for sending
67
- const sendRpc = createSolanaRpc(resolvedAddresses.rpcUrl);
68
- const rpcSubscriptions = createSolanaRpcSubscriptions(resolvedAddresses.rpcUrl.replace('https:', 'wss:').replace('http:', 'ws:'));
69
- // Build transaction message with signer
70
- const signerTransactionMessage = pipe(createTransactionMessage({ version: 0 }), (msg) => setTransactionMessageFeePayerSigner(signer, msg), (msg) => setTransactionMessageLifetimeUsingBlockhash(latestBlockhash, msg), (msg) => appendTransactionMessageInstructions([instruction], msg));
71
- // Sign transaction
72
- const signedTransaction = await signTransactionMessageWithSigners(signerTransactionMessage);
73
- // Send and confirm transaction
74
- const sendAndConfirmTransaction = sendAndConfirmTransactionFactory({
75
- rpc: sendRpc,
76
- rpcSubscriptions: rpcSubscriptions
77
- });
78
- try {
79
- await sendAndConfirmTransaction(signedTransaction, {
80
- commitment: config.transactionOptions?.commitment || 'confirmed',
81
- skipPreflight: config.transactionOptions?.skipPreflight || false
82
- });
83
- // Extract and return the signature
84
- const signature = getSignatureFromTransaction(signedTransaction);
85
- return signature;
86
- }
87
- catch (error) {
88
- throw new Error(`Transaction failed: ${error instanceof Error ? error.message : String(error)}`);
89
- }
90
- }
91
- };
92
- }
93
- /**
94
- * Pack instruction using @solana/web3.js
95
- */
96
- async function packWithWeb3js(instruction, feePayer, config) {
97
- const web3 = await Promise.resolve().then(() => __importStar(require('@solana/web3.js')));
98
- const { Connection, Transaction, PublicKey, sendAndConfirmTransaction } = web3;
99
- const resolvedAddresses = (0, config_1.resolveProgramAddresses)(config);
100
- if (!resolvedAddresses.rpcUrl) {
101
- throw new Error('RPC URL is required for creating transactions. Please set it via setConfig({ rpcUrl: "..." })');
102
- }
103
- const connection = new Connection(resolvedAddresses.rpcUrl, 'confirmed');
104
- // Convert feePayer to PublicKey
105
- const feePayerPubkey = typeof feePayer === 'string' ? new PublicKey(feePayer) : feePayer;
106
- // Create transaction and add instruction
107
- const transaction = new Transaction();
108
- transaction.add(instruction);
109
- transaction.feePayer = feePayerPubkey;
110
- // Get recent blockhash
111
- const { blockhash } = await connection.getLatestBlockhash();
112
- transaction.recentBlockhash = blockhash;
113
- return {
114
- messageBytes: transaction.serializeMessage(),
115
- signatures: [],
116
- transaction, // Include the actual Transaction object
117
- send: async (signer) => {
118
- // Sign and send transaction
119
- transaction.sign(signer);
120
- const signature = await sendAndConfirmTransaction(connection, transaction, [signer], {
121
- commitment: config.transactionOptions?.commitment || 'confirmed',
122
- skipPreflight: config.transactionOptions?.skipPreflight || false
123
- });
124
- return signature;
125
- }
126
- };
127
- }
128
- /**
129
- * Auto-detect and pack with the best available library
130
- */
131
- async function packWithAuto(instruction, feePayer, config) {
132
- // Prefer @solana/kit if available
133
- try {
134
- await Promise.resolve().then(() => __importStar(require('@solana/kit')));
135
- return await packWithKit(instruction, feePayer, config);
136
- }
137
- catch {
138
- // Fallback to @solana/web3.js
139
- try {
140
- await Promise.resolve().then(() => __importStar(require('@solana/web3.js')));
141
- return await packWithWeb3js(instruction, feePayer, config);
142
- }
143
- catch {
144
- throw new Error('No Solana library found. Please install either @solana/kit (recommended) or @solana/web3.js as a peer dependency.');
145
- }
146
- }
147
- }
148
- //# sourceMappingURL=pack-functions.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pack-functions.js","sourceRoot":"","sources":["../../../src/utils/pack-functions.ts"],"names":[],"mappings":"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"}
@@ -1,120 +0,0 @@
1
- "use strict";
2
- /**
3
- * Solana library adapter for handling both @solana/kit and @solana/web3.js
4
- */
5
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
6
- if (k2 === undefined) k2 = k;
7
- var desc = Object.getOwnPropertyDescriptor(m, k);
8
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
9
- desc = { enumerable: true, get: function() { return m[k]; } };
10
- }
11
- Object.defineProperty(o, k2, desc);
12
- }) : (function(o, m, k, k2) {
13
- if (k2 === undefined) k2 = k;
14
- o[k2] = m[k];
15
- }));
16
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
17
- Object.defineProperty(o, "default", { enumerable: true, value: v });
18
- }) : function(o, v) {
19
- o["default"] = v;
20
- });
21
- var __importStar = (this && this.__importStar) || (function () {
22
- var ownKeys = function(o) {
23
- ownKeys = Object.getOwnPropertyNames || function (o) {
24
- var ar = [];
25
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
26
- return ar;
27
- };
28
- return ownKeys(o);
29
- };
30
- return function (mod) {
31
- if (mod && mod.__esModule) return mod;
32
- var result = {};
33
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
34
- __setModuleDefault(result, mod);
35
- return result;
36
- };
37
- })();
38
- Object.defineProperty(exports, "__esModule", { value: true });
39
- exports.detectSolanaLibraries = detectSolanaLibraries;
40
- exports.validateSolanaLibraryAvailability = validateSolanaLibraryAvailability;
41
- exports.getSolanaLibrary = getSolanaLibrary;
42
- /**
43
- * Detects which Solana libraries are available
44
- */
45
- async function detectSolanaLibraries() {
46
- let hasKit = false;
47
- let hasWeb3js = false;
48
- try {
49
- await Promise.resolve().then(() => __importStar(require('@solana/kit')));
50
- hasKit = true;
51
- }
52
- catch {
53
- // @solana/kit not available
54
- }
55
- try {
56
- await Promise.resolve().then(() => __importStar(require('@solana/web3.js')));
57
- hasWeb3js = true;
58
- }
59
- catch {
60
- // @solana/web3.js not available
61
- }
62
- // Prefer @solana/kit if available, fallback to web3.js
63
- const preferred = hasKit ? 'kit' : hasWeb3js ? 'web3js' : 'auto';
64
- return { hasKit, hasWeb3js, preferred };
65
- }
66
- /**
67
- * Validates that at least one Solana library is available
68
- */
69
- async function validateSolanaLibraryAvailability() {
70
- const detection = await detectSolanaLibraries();
71
- if (!detection.hasKit && !detection.hasWeb3js) {
72
- throw new Error('No Solana library found. Please install either @solana/kit (recommended) or @solana/web3.js as a peer dependency.');
73
- }
74
- }
75
- /**
76
- * Gets the appropriate Solana library based on preference and availability
77
- */
78
- async function getSolanaLibrary(preference = 'auto') {
79
- const detection = await detectSolanaLibraries();
80
- let selectedLibrary;
81
- switch (preference) {
82
- case 'kit':
83
- if (!detection.hasKit) {
84
- throw new Error('@solana/kit is required but not available. Please install it as a peer dependency.');
85
- }
86
- selectedLibrary = 'kit';
87
- break;
88
- case 'web3js':
89
- if (!detection.hasWeb3js) {
90
- throw new Error('@solana/web3.js is required but not available. Please install it as a peer dependency.');
91
- }
92
- selectedLibrary = 'web3js';
93
- break;
94
- case 'auto':
95
- default:
96
- selectedLibrary = detection.preferred;
97
- break;
98
- }
99
- const result = {
100
- library: selectedLibrary
101
- };
102
- if (selectedLibrary === 'kit' || detection.hasKit) {
103
- try {
104
- result.kit = await Promise.resolve().then(() => __importStar(require('@solana/kit')));
105
- }
106
- catch {
107
- // Handle import error gracefully
108
- }
109
- }
110
- if (selectedLibrary === 'web3js' || detection.hasWeb3js) {
111
- try {
112
- result.web3js = await Promise.resolve().then(() => __importStar(require('@solana/web3.js')));
113
- }
114
- catch {
115
- // Handle import error gracefully
116
- }
117
- }
118
- return result;
119
- }
120
- //# sourceMappingURL=solana-adapter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"solana-adapter.js","sourceRoot":"","sources":["../../../src/utils/solana-adapter.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAaH,sDAsBC;AAKD,8EAQC;AAKD,4CAmDC;AA9FD;;GAEG;AACI,KAAK,UAAU,qBAAqB;IACzC,IAAI,MAAM,GAAG,KAAK,CAAC;IACnB,IAAI,SAAS,GAAG,KAAK,CAAC;IAEtB,IAAI,CAAC;QACH,wDAAa,aAAa,GAAC,CAAC;QAC5B,MAAM,GAAG,IAAI,CAAC;IAChB,CAAC;IAAC,MAAM,CAAC;QACP,4BAA4B;IAC9B,CAAC;IAED,IAAI,CAAC;QACH,wDAAa,iBAAiB,GAAC,CAAC;QAChC,SAAS,GAAG,IAAI,CAAC;IACnB,CAAC;IAAC,MAAM,CAAC;QACP,gCAAgC;IAClC,CAAC;IAED,uDAAuD;IACvD,MAAM,SAAS,GAAkB,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC;IAEhF,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC;AAC1C,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,iCAAiC;IACrD,MAAM,SAAS,GAAG,MAAM,qBAAqB,EAAE,CAAC;IAEhD,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC;QAC9C,MAAM,IAAI,KAAK,CACb,mHAAmH,CACpH,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,gBAAgB,CAAC,aAA4B,MAAM;IAKvE,MAAM,SAAS,GAAG,MAAM,qBAAqB,EAAE,CAAC;IAEhD,IAAI,eAA8B,CAAC;IAEnC,QAAQ,UAAU,EAAE,CAAC;QACnB,KAAK,KAAK;YACR,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;gBACtB,MAAM,IAAI,KAAK,CAAC,oFAAoF,CAAC,CAAC;YACxG,CAAC;YACD,eAAe,GAAG,KAAK,CAAC;YACxB,MAAM;QAER,KAAK,QAAQ;YACX,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC;gBACzB,MAAM,IAAI,KAAK,CAAC,wFAAwF,CAAC,CAAC;YAC5G,CAAC;YACD,eAAe,GAAG,QAAQ,CAAC;YAC3B,MAAM;QAER,KAAK,MAAM,CAAC;QACZ;YACE,eAAe,GAAG,SAAS,CAAC,SAAS,CAAC;YACtC,MAAM;IACV,CAAC;IAED,MAAM,MAAM,GAAwD;QAClE,OAAO,EAAE,eAAe;KACzB,CAAC;IAEF,IAAI,eAAe,KAAK,KAAK,IAAI,SAAS,CAAC,MAAM,EAAE,CAAC;QAClD,IAAI,CAAC;YACH,MAAM,CAAC,GAAG,GAAG,wDAAa,aAAa,GAAC,CAAC;QAC3C,CAAC;QAAC,MAAM,CAAC;YACP,iCAAiC;QACnC,CAAC;IACH,CAAC;IAED,IAAI,eAAe,KAAK,QAAQ,IAAI,SAAS,CAAC,SAAS,EAAE,CAAC;QACxD,IAAI,CAAC;YACH,MAAM,CAAC,MAAM,GAAG,wDAAa,iBAAiB,GAAC,CAAC;QAClD,CAAC;QAAC,MAAM,CAAC;YACP,iCAAiC;QACnC,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -1,110 +0,0 @@
1
- /**
2
- * Pack function implementations for different Solana libraries
3
- */
4
- import { resolveProgramAddresses } from './config';
5
- /**
6
- * Pack instruction using @solana/kit
7
- */
8
- export async function packWithKit(instruction, feePayer, config) {
9
- const kit = await import('@solana/kit');
10
- const { createSolanaRpc, createSolanaRpcSubscriptions, createTransactionMessage, setTransactionMessageFeePayer, setTransactionMessageFeePayerSigner, setTransactionMessageLifetimeUsingBlockhash, appendTransactionMessageInstructions, compileTransaction, signTransactionMessageWithSigners, sendAndConfirmTransactionFactory, getSignatureFromTransaction, pipe, address } = kit;
11
- const resolvedAddresses = resolveProgramAddresses(config);
12
- if (!resolvedAddresses.rpcUrl) {
13
- throw new Error('RPC URL is required for creating transactions. Please set it via setConfig({ rpcUrl: "..." })');
14
- }
15
- // Create RPC connection to get latest blockhash
16
- const rpc = createSolanaRpc(resolvedAddresses.rpcUrl);
17
- const { value: latestBlockhash } = await rpc.getLatestBlockhash().send();
18
- // Convert feePayer to proper Address type
19
- const feePayerAddress = typeof feePayer === 'string' ? address(feePayer) : feePayer;
20
- // Build unsigned transaction message
21
- const transactionMessage = pipe(createTransactionMessage({ version: 0 }), (msg) => setTransactionMessageFeePayer(feePayerAddress, msg), (msg) => setTransactionMessageLifetimeUsingBlockhash(latestBlockhash, msg), (msg) => appendTransactionMessageInstructions([instruction], msg));
22
- // Compile to unsigned transaction
23
- const unsignedTransaction = compileTransaction(transactionMessage);
24
- return {
25
- messageBytes: new Uint8Array(unsignedTransaction.messageBytes),
26
- signatures: [], // Empty for unsigned transactions
27
- send: async (signer) => {
28
- // Create RPC connections for sending
29
- const sendRpc = createSolanaRpc(resolvedAddresses.rpcUrl);
30
- const rpcSubscriptions = createSolanaRpcSubscriptions(resolvedAddresses.rpcUrl.replace('https:', 'wss:').replace('http:', 'ws:'));
31
- // Build transaction message with signer
32
- const signerTransactionMessage = pipe(createTransactionMessage({ version: 0 }), (msg) => setTransactionMessageFeePayerSigner(signer, msg), (msg) => setTransactionMessageLifetimeUsingBlockhash(latestBlockhash, msg), (msg) => appendTransactionMessageInstructions([instruction], msg));
33
- // Sign transaction
34
- const signedTransaction = await signTransactionMessageWithSigners(signerTransactionMessage);
35
- // Send and confirm transaction
36
- const sendAndConfirmTransaction = sendAndConfirmTransactionFactory({
37
- rpc: sendRpc,
38
- rpcSubscriptions: rpcSubscriptions
39
- });
40
- try {
41
- await sendAndConfirmTransaction(signedTransaction, {
42
- commitment: config.transactionOptions?.commitment || 'confirmed',
43
- skipPreflight: config.transactionOptions?.skipPreflight || false
44
- });
45
- // Extract and return the signature
46
- const signature = getSignatureFromTransaction(signedTransaction);
47
- return signature;
48
- }
49
- catch (error) {
50
- throw new Error(`Transaction failed: ${error instanceof Error ? error.message : String(error)}`);
51
- }
52
- }
53
- };
54
- }
55
- /**
56
- * Pack instruction using @solana/web3.js
57
- */
58
- export async function packWithWeb3js(instruction, feePayer, config) {
59
- const web3 = await import('@solana/web3.js');
60
- const { Connection, Transaction, PublicKey, sendAndConfirmTransaction } = web3;
61
- const resolvedAddresses = resolveProgramAddresses(config);
62
- if (!resolvedAddresses.rpcUrl) {
63
- throw new Error('RPC URL is required for creating transactions. Please set it via setConfig({ rpcUrl: "..." })');
64
- }
65
- const connection = new Connection(resolvedAddresses.rpcUrl, 'confirmed');
66
- // Convert feePayer to PublicKey
67
- const feePayerPubkey = typeof feePayer === 'string' ? new PublicKey(feePayer) : feePayer;
68
- // Create transaction and add instruction
69
- const transaction = new Transaction();
70
- transaction.add(instruction);
71
- transaction.feePayer = feePayerPubkey;
72
- // Get recent blockhash
73
- const { blockhash } = await connection.getLatestBlockhash();
74
- transaction.recentBlockhash = blockhash;
75
- return {
76
- messageBytes: transaction.serializeMessage(),
77
- signatures: [],
78
- transaction, // Include the actual Transaction object
79
- send: async (signer) => {
80
- // Sign and send transaction
81
- transaction.sign(signer);
82
- const signature = await sendAndConfirmTransaction(connection, transaction, [signer], {
83
- commitment: config.transactionOptions?.commitment || 'confirmed',
84
- skipPreflight: config.transactionOptions?.skipPreflight || false
85
- });
86
- return signature;
87
- }
88
- };
89
- }
90
- /**
91
- * Auto-detect and pack with the best available library
92
- */
93
- export async function packWithAuto(instruction, feePayer, config) {
94
- // Prefer @solana/kit if available
95
- try {
96
- await import('@solana/kit');
97
- return await packWithKit(instruction, feePayer, config);
98
- }
99
- catch {
100
- // Fallback to @solana/web3.js
101
- try {
102
- await import('@solana/web3.js');
103
- return await packWithWeb3js(instruction, feePayer, config);
104
- }
105
- catch {
106
- throw new Error('No Solana library found. Please install either @solana/kit (recommended) or @solana/web3.js as a peer dependency.');
107
- }
108
- }
109
- }
110
- //# sourceMappingURL=pack-functions.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pack-functions.js","sourceRoot":"","sources":["../../../src/utils/pack-functions.ts"],"names":[],"mappings":"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"}
@@ -1,82 +0,0 @@
1
- /**
2
- * Solana library adapter for handling both @solana/kit and @solana/web3.js
3
- */
4
- /**
5
- * Detects which Solana libraries are available
6
- */
7
- export async function detectSolanaLibraries() {
8
- let hasKit = false;
9
- let hasWeb3js = false;
10
- try {
11
- await import('@solana/kit');
12
- hasKit = true;
13
- }
14
- catch {
15
- // @solana/kit not available
16
- }
17
- try {
18
- await import('@solana/web3.js');
19
- hasWeb3js = true;
20
- }
21
- catch {
22
- // @solana/web3.js not available
23
- }
24
- // Prefer @solana/kit if available, fallback to web3.js
25
- const preferred = hasKit ? 'kit' : hasWeb3js ? 'web3js' : 'auto';
26
- return { hasKit, hasWeb3js, preferred };
27
- }
28
- /**
29
- * Validates that at least one Solana library is available
30
- */
31
- export async function validateSolanaLibraryAvailability() {
32
- const detection = await detectSolanaLibraries();
33
- if (!detection.hasKit && !detection.hasWeb3js) {
34
- throw new Error('No Solana library found. Please install either @solana/kit (recommended) or @solana/web3.js as a peer dependency.');
35
- }
36
- }
37
- /**
38
- * Gets the appropriate Solana library based on preference and availability
39
- */
40
- export async function getSolanaLibrary(preference = 'auto') {
41
- const detection = await detectSolanaLibraries();
42
- let selectedLibrary;
43
- switch (preference) {
44
- case 'kit':
45
- if (!detection.hasKit) {
46
- throw new Error('@solana/kit is required but not available. Please install it as a peer dependency.');
47
- }
48
- selectedLibrary = 'kit';
49
- break;
50
- case 'web3js':
51
- if (!detection.hasWeb3js) {
52
- throw new Error('@solana/web3.js is required but not available. Please install it as a peer dependency.');
53
- }
54
- selectedLibrary = 'web3js';
55
- break;
56
- case 'auto':
57
- default:
58
- selectedLibrary = detection.preferred;
59
- break;
60
- }
61
- const result = {
62
- library: selectedLibrary
63
- };
64
- if (selectedLibrary === 'kit' || detection.hasKit) {
65
- try {
66
- result.kit = await import('@solana/kit');
67
- }
68
- catch {
69
- // Handle import error gracefully
70
- }
71
- }
72
- if (selectedLibrary === 'web3js' || detection.hasWeb3js) {
73
- try {
74
- result.web3js = await import('@solana/web3.js');
75
- }
76
- catch {
77
- // Handle import error gracefully
78
- }
79
- }
80
- return result;
81
- }
82
- //# sourceMappingURL=solana-adapter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"solana-adapter.js","sourceRoot":"","sources":["../../../src/utils/solana-adapter.ts"],"names":[],"mappings":"AAAA;;GAEG;AAUH;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB;IACzC,IAAI,MAAM,GAAG,KAAK,CAAC;IACnB,IAAI,SAAS,GAAG,KAAK,CAAC;IAEtB,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;QAC5B,MAAM,GAAG,IAAI,CAAC;IAChB,CAAC;IAAC,MAAM,CAAC;QACP,4BAA4B;IAC9B,CAAC;IAED,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,iBAAiB,CAAC,CAAC;QAChC,SAAS,GAAG,IAAI,CAAC;IACnB,CAAC;IAAC,MAAM,CAAC;QACP,gCAAgC;IAClC,CAAC;IAED,uDAAuD;IACvD,MAAM,SAAS,GAAkB,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC;IAEhF,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC;AAC1C,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,iCAAiC;IACrD,MAAM,SAAS,GAAG,MAAM,qBAAqB,EAAE,CAAC;IAEhD,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC;QAC9C,MAAM,IAAI,KAAK,CACb,mHAAmH,CACpH,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,aAA4B,MAAM;IAKvE,MAAM,SAAS,GAAG,MAAM,qBAAqB,EAAE,CAAC;IAEhD,IAAI,eAA8B,CAAC;IAEnC,QAAQ,UAAU,EAAE,CAAC;QACnB,KAAK,KAAK;YACR,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;gBACtB,MAAM,IAAI,KAAK,CAAC,oFAAoF,CAAC,CAAC;YACxG,CAAC;YACD,eAAe,GAAG,KAAK,CAAC;YACxB,MAAM;QAER,KAAK,QAAQ;YACX,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC;gBACzB,MAAM,IAAI,KAAK,CAAC,wFAAwF,CAAC,CAAC;YAC5G,CAAC;YACD,eAAe,GAAG,QAAQ,CAAC;YAC3B,MAAM;QAER,KAAK,MAAM,CAAC;QACZ;YACE,eAAe,GAAG,SAAS,CAAC,SAAS,CAAC;YACtC,MAAM;IACV,CAAC;IAED,MAAM,MAAM,GAAwD;QAClE,OAAO,EAAE,eAAe;KACzB,CAAC;IAEF,IAAI,eAAe,KAAK,KAAK,IAAI,SAAS,CAAC,MAAM,EAAE,CAAC;QAClD,IAAI,CAAC;YACH,MAAM,CAAC,GAAG,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC;QAC3C,CAAC;QAAC,MAAM,CAAC;YACP,iCAAiC;QACnC,CAAC;IACH,CAAC;IAED,IAAI,eAAe,KAAK,QAAQ,IAAI,SAAS,CAAC,SAAS,EAAE,CAAC;QACxD,IAAI,CAAC;YACH,MAAM,CAAC,MAAM,GAAG,MAAM,MAAM,CAAC,iBAAiB,CAAC,CAAC;QAClD,CAAC;QAAC,MAAM,CAAC;YACP,iCAAiC;QACnC,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -1,18 +0,0 @@
1
- /**
2
- * Pack function implementations for different Solana libraries
3
- */
4
- import { UniversalAddress, PackedTransaction } from './types';
5
- import { ConfigOptions } from './config';
6
- /**
7
- * Pack instruction using @solana/kit
8
- */
9
- export declare function packWithKit(instruction: any, feePayer: UniversalAddress, config: ConfigOptions): Promise<PackedTransaction>;
10
- /**
11
- * Pack instruction using @solana/web3.js
12
- */
13
- export declare function packWithWeb3js(instruction: any, feePayer: UniversalAddress, config: ConfigOptions): Promise<PackedTransaction>;
14
- /**
15
- * Auto-detect and pack with the best available library
16
- */
17
- export declare function packWithAuto(instruction: any, feePayer: UniversalAddress, config: ConfigOptions): Promise<PackedTransaction>;
18
- //# sourceMappingURL=pack-functions.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pack-functions.d.ts","sourceRoot":"","sources":["../../../src/utils/pack-functions.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAC9D,OAAO,EAAE,aAAa,EAA2B,MAAM,UAAU,CAAC;AAElE;;GAEG;AACH,wBAAsB,WAAW,CAC/B,WAAW,EAAE,GAAG,EAChB,QAAQ,EAAE,gBAAgB,EAC1B,MAAM,EAAE,aAAa,GACpB,OAAO,CAAC,iBAAiB,CAAC,CAmF5B;AAED;;GAEG;AACH,wBAAsB,cAAc,CAClC,WAAW,EAAE,GAAG,EAChB,QAAQ,EAAE,gBAAgB,EAC1B,MAAM,EAAE,aAAa,GACpB,OAAO,CAAC,iBAAiB,CAAC,CAkD5B;AAED;;GAEG;AACH,wBAAsB,YAAY,CAChC,WAAW,EAAE,GAAG,EAChB,QAAQ,EAAE,gBAAgB,EAC1B,MAAM,EAAE,aAAa,GACpB,OAAO,CAAC,iBAAiB,CAAC,CAc5B"}