@wuwei-labs/srsly 2.0.0-beta.19 → 2.0.0-beta.20
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 +52 -15
- package/dist/cjs/package.json +1 -1
- package/dist/cjs/utils/config.js +56 -2
- package/dist/cjs/utils/config.js.map +1 -1
- package/dist/esm/package.json +1 -1
- package/dist/esm/utils/config.js +57 -3
- package/dist/esm/utils/config.js.map +1 -1
- package/dist/types/utils/config.d.ts +44 -10
- package/dist/types/utils/config.d.ts.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -13,10 +13,11 @@ The SRSLY SDK is a complete toolkit that helps you create Solana transactions fo
|
|
|
13
13
|
- ✅ Account derivation and validation
|
|
14
14
|
- ✅ Instruction data encoding
|
|
15
15
|
- ✅ Type-safe parameter handling
|
|
16
|
-
- ✅
|
|
16
|
+
- ✅ Direct transaction sending via `.send()` (server/CLI)
|
|
17
|
+
- ✅ Unsigned transaction building via `.pack()` (browser/wallets)
|
|
17
18
|
- ✅ Wallet-agnostic design (works with any signing method)
|
|
18
19
|
|
|
19
|
-
**Current Status**: Full instruction building and
|
|
20
|
+
**Current Status**: Full instruction building, transaction packing, and direct sending support.
|
|
20
21
|
|
|
21
22
|
## Installation
|
|
22
23
|
|
|
@@ -30,7 +31,49 @@ yarn add @wuwei-labs/srsly
|
|
|
30
31
|
|
|
31
32
|
## Quick Start
|
|
32
33
|
|
|
33
|
-
### Option 1:
|
|
34
|
+
### Option 1: Pack and Send (Server/CLI)
|
|
35
|
+
|
|
36
|
+
```typescript
|
|
37
|
+
import { createContract, setConfig } from '@wuwei-labs/srsly';
|
|
38
|
+
import { createKeyPairSignerFromBytes } from '@solana/kit';
|
|
39
|
+
|
|
40
|
+
// 1. Configure SDK with RPC endpoint
|
|
41
|
+
setConfig({
|
|
42
|
+
programs: 'atlasnet',
|
|
43
|
+
rpcUrl: 'https://api.atlasnet.solana.com'
|
|
44
|
+
});
|
|
45
|
+
|
|
46
|
+
// 2. Create signer from keypair
|
|
47
|
+
const signer = await createKeyPairSignerFromBytes(keypairBytes);
|
|
48
|
+
|
|
49
|
+
// 3. Pack transaction then send in one step
|
|
50
|
+
const signature = await createContract({
|
|
51
|
+
owner: signer,
|
|
52
|
+
fleet: fleetAddress,
|
|
53
|
+
ownerProfile: profileAddress,
|
|
54
|
+
rate: 1000000, // ATLAS tokens
|
|
55
|
+
durationMin: 86400, // 1 day
|
|
56
|
+
durationMax: 604800, // 1 week
|
|
57
|
+
paymentsFreq: 'daily'
|
|
58
|
+
})
|
|
59
|
+
.pack(signer.address) // Pack with fee payer
|
|
60
|
+
.send(signer); // Send with signer
|
|
61
|
+
|
|
62
|
+
console.log('Transaction signature:', signature);
|
|
63
|
+
|
|
64
|
+
// With custom transaction options
|
|
65
|
+
const signature = await createContract(params)
|
|
66
|
+
.set({
|
|
67
|
+
transactionOptions: {
|
|
68
|
+
commitment: 'finalized',
|
|
69
|
+
skipPreflight: true
|
|
70
|
+
}
|
|
71
|
+
})
|
|
72
|
+
.pack(signer.address)
|
|
73
|
+
.send(signer);
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
### Option 2: Pack for Wallet Adapters (Browser)
|
|
34
77
|
|
|
35
78
|
```typescript
|
|
36
79
|
import { createContract, setConfig } from '@wuwei-labs/srsly';
|
|
@@ -41,7 +84,7 @@ setConfig({
|
|
|
41
84
|
rpcUrl: 'https://api.atlasnet.solana.com'
|
|
42
85
|
});
|
|
43
86
|
|
|
44
|
-
// 2.
|
|
87
|
+
// 2. Pack transaction for wallet adapter
|
|
45
88
|
const packedTx = await createContract({
|
|
46
89
|
owner: walletPublicKey,
|
|
47
90
|
fleet: fleetAddress,
|
|
@@ -50,16 +93,9 @@ const packedTx = await createContract({
|
|
|
50
93
|
durationMin: 86400, // 1 day
|
|
51
94
|
durationMax: 604800, // 1 week
|
|
52
95
|
paymentsFreq: 'daily'
|
|
53
|
-
}).pack(walletPublicKey); //
|
|
54
|
-
|
|
55
|
-
// 3. Sign and send with your preferred method:
|
|
56
|
-
|
|
57
|
-
// With @solana/kit (server-side/CLI)
|
|
58
|
-
import { signTransactionMessageWithSigners, sendAndConfirmTransactionFactory } from '@solana/kit';
|
|
59
|
-
const signedTx = await signTransactionMessageWithSigners(packedTx);
|
|
60
|
-
// ... send with sendAndConfirmTransactionFactory
|
|
96
|
+
}).pack(walletPublicKey); // Pack with fee payer address
|
|
61
97
|
|
|
62
|
-
//
|
|
98
|
+
// 3. Sign and send with wallet adapter
|
|
63
99
|
import { useWallet } from '@solana/wallet-adapter-react';
|
|
64
100
|
import { VersionedTransaction } from '@solana/web3.js';
|
|
65
101
|
const wallet = useWallet();
|
|
@@ -67,10 +103,11 @@ const versionedTx = VersionedTransaction.deserialize(packedTx.messageBytes);
|
|
|
67
103
|
const signedTx = await wallet.signTransaction(versionedTx);
|
|
68
104
|
// ... send with connection.sendRawTransaction(signedTx.serialize())
|
|
69
105
|
|
|
70
|
-
//
|
|
106
|
+
// Note: packedTx also has a .send() method, but it requires a TransactionSigner
|
|
107
|
+
// which wallet adapters don't provide directly
|
|
71
108
|
```
|
|
72
109
|
|
|
73
|
-
### Option
|
|
110
|
+
### Option 3: Manual Instruction Building
|
|
74
111
|
|
|
75
112
|
```typescript
|
|
76
113
|
import { createContract } from '@wuwei-labs/srsly';
|
package/dist/cjs/package.json
CHANGED
package/dist/cjs/utils/config.js
CHANGED
|
@@ -191,7 +191,34 @@ function createChainableConfigSelector(executeFn, existingConfig) {
|
|
|
191
191
|
const transactionMessage = (0, kit_1.pipe)((0, kit_1.createTransactionMessage)({ version: 0 }), (msg) => (0, kit_1.setTransactionMessageFeePayer)(feePayer, msg), (msg) => (0, kit_1.setTransactionMessageLifetimeUsingBlockhash)(latestBlockhash, msg), (msg) => (0, kit_1.appendTransactionMessageInstructions)([instruction], msg));
|
|
192
192
|
// Compile to unsigned transaction
|
|
193
193
|
const unsignedTransaction = (0, kit_1.compileTransaction)(transactionMessage);
|
|
194
|
-
|
|
194
|
+
// Return PackedTransaction with send() method
|
|
195
|
+
return {
|
|
196
|
+
messageBytes: unsignedTransaction.messageBytes,
|
|
197
|
+
signatures: unsignedTransaction.signatures,
|
|
198
|
+
send: async (signer) => {
|
|
199
|
+
// Create RPC connections for sending
|
|
200
|
+
const sendRpc = (0, kit_1.createSolanaRpc)(resolvedAddresses.rpcUrl);
|
|
201
|
+
const rpcSubscriptions = (0, kit_1.createSolanaRpcSubscriptions)(resolvedAddresses.rpcUrl.replace('https:', 'wss:').replace('http:', 'ws:'));
|
|
202
|
+
// Build transaction message with signer
|
|
203
|
+
const signerTransactionMessage = (0, kit_1.pipe)((0, kit_1.createTransactionMessage)({ version: 0 }), (msg) => (0, kit_1.setTransactionMessageFeePayerSigner)(signer, msg), (msg) => (0, kit_1.setTransactionMessageLifetimeUsingBlockhash)(latestBlockhash, msg), (msg) => (0, kit_1.appendTransactionMessageInstructions)([instruction], msg));
|
|
204
|
+
// Sign transaction
|
|
205
|
+
const signedTransaction = await (0, kit_1.signTransactionMessageWithSigners)(signerTransactionMessage);
|
|
206
|
+
// Send and confirm transaction
|
|
207
|
+
const sendAndConfirmTransaction = (0, kit_1.sendAndConfirmTransactionFactory)({ rpc: sendRpc, rpcSubscriptions: rpcSubscriptions });
|
|
208
|
+
try {
|
|
209
|
+
await sendAndConfirmTransaction(signedTransaction, {
|
|
210
|
+
commitment: effectiveConfig.transactionOptions?.commitment || 'confirmed',
|
|
211
|
+
skipPreflight: effectiveConfig.transactionOptions?.skipPreflight || false
|
|
212
|
+
});
|
|
213
|
+
// Extract and return the signature
|
|
214
|
+
const signature = (0, kit_1.getSignatureFromTransaction)(signedTransaction);
|
|
215
|
+
return signature;
|
|
216
|
+
}
|
|
217
|
+
catch (error) {
|
|
218
|
+
throw new Error(`Transaction failed: ${error instanceof Error ? error.message : String(error)}`);
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
};
|
|
195
222
|
},
|
|
196
223
|
// Implement PromiseLike to allow direct awaiting
|
|
197
224
|
then(onfulfilled, onrejected) {
|
|
@@ -237,7 +264,34 @@ function createConfigSelector(executeFn) {
|
|
|
237
264
|
const transactionMessage = (0, kit_1.pipe)((0, kit_1.createTransactionMessage)({ version: 0 }), (msg) => (0, kit_1.setTransactionMessageFeePayer)(feePayer, msg), (msg) => (0, kit_1.setTransactionMessageLifetimeUsingBlockhash)(latestBlockhash, msg), (msg) => (0, kit_1.appendTransactionMessageInstructions)([instruction], msg));
|
|
238
265
|
// Compile to unsigned transaction
|
|
239
266
|
const unsignedTransaction = (0, kit_1.compileTransaction)(transactionMessage);
|
|
240
|
-
|
|
267
|
+
// Return PackedTransaction with send() method
|
|
268
|
+
return {
|
|
269
|
+
messageBytes: unsignedTransaction.messageBytes,
|
|
270
|
+
signatures: unsignedTransaction.signatures,
|
|
271
|
+
send: async (signer) => {
|
|
272
|
+
// Create RPC connections for sending
|
|
273
|
+
const sendRpc = (0, kit_1.createSolanaRpc)(resolvedAddresses.rpcUrl);
|
|
274
|
+
const rpcSubscriptions = (0, kit_1.createSolanaRpcSubscriptions)(resolvedAddresses.rpcUrl.replace('https:', 'wss:').replace('http:', 'ws:'));
|
|
275
|
+
// Build transaction message with signer
|
|
276
|
+
const signerTransactionMessage = (0, kit_1.pipe)((0, kit_1.createTransactionMessage)({ version: 0 }), (msg) => (0, kit_1.setTransactionMessageFeePayerSigner)(signer, msg), (msg) => (0, kit_1.setTransactionMessageLifetimeUsingBlockhash)(latestBlockhash, msg), (msg) => (0, kit_1.appendTransactionMessageInstructions)([instruction], msg));
|
|
277
|
+
// Sign transaction
|
|
278
|
+
const signedTransaction = await (0, kit_1.signTransactionMessageWithSigners)(signerTransactionMessage);
|
|
279
|
+
// Send and confirm transaction
|
|
280
|
+
const sendAndConfirmTransaction = (0, kit_1.sendAndConfirmTransactionFactory)({ rpc: sendRpc, rpcSubscriptions: rpcSubscriptions });
|
|
281
|
+
try {
|
|
282
|
+
await sendAndConfirmTransaction(signedTransaction, {
|
|
283
|
+
commitment: effectiveConfig.transactionOptions?.commitment || 'confirmed',
|
|
284
|
+
skipPreflight: effectiveConfig.transactionOptions?.skipPreflight || false
|
|
285
|
+
});
|
|
286
|
+
// Extract and return the signature
|
|
287
|
+
const signature = (0, kit_1.getSignatureFromTransaction)(signedTransaction);
|
|
288
|
+
return signature;
|
|
289
|
+
}
|
|
290
|
+
catch (error) {
|
|
291
|
+
throw new Error(`Transaction failed: ${error instanceof Error ? error.message : String(error)}`);
|
|
292
|
+
}
|
|
293
|
+
}
|
|
294
|
+
};
|
|
241
295
|
},
|
|
242
296
|
// Implement PromiseLike to allow direct awaiting
|
|
243
297
|
then(onfulfilled, onrejected) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/utils/config.ts"],"names":[],"mappings":";AAAA;;GAEG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/utils/config.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/package.json
CHANGED
package/dist/esm/utils/config.js
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
// Single codama output - network agnostic
|
|
5
5
|
import * as instructions from '../codama/instructions';
|
|
6
6
|
import * as programs from '../codama/programs';
|
|
7
|
-
import { createSolanaRpc, createTransactionMessage, setTransactionMessageFeePayer, setTransactionMessageLifetimeUsingBlockhash, appendTransactionMessageInstructions, compileTransaction, pipe, } from '@solana/kit';
|
|
7
|
+
import { createSolanaRpc, createSolanaRpcSubscriptions, createTransactionMessage, setTransactionMessageFeePayer, setTransactionMessageFeePayerSigner, setTransactionMessageLifetimeUsingBlockhash, appendTransactionMessageInstructions, compileTransaction, signTransactionMessageWithSigners, sendAndConfirmTransactionFactory, getSignatureFromTransaction, pipe, } from '@solana/kit';
|
|
8
8
|
const PROGRAM_SETS = {
|
|
9
9
|
mainnet: {
|
|
10
10
|
SAGE_PROGRAM_ADDRESS: 'SAGE2HAwep459SNq61LHvjxPk4pLPEJLoMETef7f7EE',
|
|
@@ -149,7 +149,34 @@ function createChainableConfigSelector(executeFn, existingConfig) {
|
|
|
149
149
|
const transactionMessage = pipe(createTransactionMessage({ version: 0 }), (msg) => setTransactionMessageFeePayer(feePayer, msg), (msg) => setTransactionMessageLifetimeUsingBlockhash(latestBlockhash, msg), (msg) => appendTransactionMessageInstructions([instruction], msg));
|
|
150
150
|
// Compile to unsigned transaction
|
|
151
151
|
const unsignedTransaction = compileTransaction(transactionMessage);
|
|
152
|
-
|
|
152
|
+
// Return PackedTransaction with send() method
|
|
153
|
+
return {
|
|
154
|
+
messageBytes: unsignedTransaction.messageBytes,
|
|
155
|
+
signatures: unsignedTransaction.signatures,
|
|
156
|
+
send: async (signer) => {
|
|
157
|
+
// Create RPC connections for sending
|
|
158
|
+
const sendRpc = createSolanaRpc(resolvedAddresses.rpcUrl);
|
|
159
|
+
const rpcSubscriptions = createSolanaRpcSubscriptions(resolvedAddresses.rpcUrl.replace('https:', 'wss:').replace('http:', 'ws:'));
|
|
160
|
+
// Build transaction message with signer
|
|
161
|
+
const signerTransactionMessage = pipe(createTransactionMessage({ version: 0 }), (msg) => setTransactionMessageFeePayerSigner(signer, msg), (msg) => setTransactionMessageLifetimeUsingBlockhash(latestBlockhash, msg), (msg) => appendTransactionMessageInstructions([instruction], msg));
|
|
162
|
+
// Sign transaction
|
|
163
|
+
const signedTransaction = await signTransactionMessageWithSigners(signerTransactionMessage);
|
|
164
|
+
// Send and confirm transaction
|
|
165
|
+
const sendAndConfirmTransaction = sendAndConfirmTransactionFactory({ rpc: sendRpc, rpcSubscriptions: rpcSubscriptions });
|
|
166
|
+
try {
|
|
167
|
+
await sendAndConfirmTransaction(signedTransaction, {
|
|
168
|
+
commitment: effectiveConfig.transactionOptions?.commitment || 'confirmed',
|
|
169
|
+
skipPreflight: effectiveConfig.transactionOptions?.skipPreflight || false
|
|
170
|
+
});
|
|
171
|
+
// Extract and return the signature
|
|
172
|
+
const signature = getSignatureFromTransaction(signedTransaction);
|
|
173
|
+
return signature;
|
|
174
|
+
}
|
|
175
|
+
catch (error) {
|
|
176
|
+
throw new Error(`Transaction failed: ${error instanceof Error ? error.message : String(error)}`);
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
};
|
|
153
180
|
},
|
|
154
181
|
// Implement PromiseLike to allow direct awaiting
|
|
155
182
|
then(onfulfilled, onrejected) {
|
|
@@ -195,7 +222,34 @@ export function createConfigSelector(executeFn) {
|
|
|
195
222
|
const transactionMessage = pipe(createTransactionMessage({ version: 0 }), (msg) => setTransactionMessageFeePayer(feePayer, msg), (msg) => setTransactionMessageLifetimeUsingBlockhash(latestBlockhash, msg), (msg) => appendTransactionMessageInstructions([instruction], msg));
|
|
196
223
|
// Compile to unsigned transaction
|
|
197
224
|
const unsignedTransaction = compileTransaction(transactionMessage);
|
|
198
|
-
|
|
225
|
+
// Return PackedTransaction with send() method
|
|
226
|
+
return {
|
|
227
|
+
messageBytes: unsignedTransaction.messageBytes,
|
|
228
|
+
signatures: unsignedTransaction.signatures,
|
|
229
|
+
send: async (signer) => {
|
|
230
|
+
// Create RPC connections for sending
|
|
231
|
+
const sendRpc = createSolanaRpc(resolvedAddresses.rpcUrl);
|
|
232
|
+
const rpcSubscriptions = createSolanaRpcSubscriptions(resolvedAddresses.rpcUrl.replace('https:', 'wss:').replace('http:', 'ws:'));
|
|
233
|
+
// Build transaction message with signer
|
|
234
|
+
const signerTransactionMessage = pipe(createTransactionMessage({ version: 0 }), (msg) => setTransactionMessageFeePayerSigner(signer, msg), (msg) => setTransactionMessageLifetimeUsingBlockhash(latestBlockhash, msg), (msg) => appendTransactionMessageInstructions([instruction], msg));
|
|
235
|
+
// Sign transaction
|
|
236
|
+
const signedTransaction = await signTransactionMessageWithSigners(signerTransactionMessage);
|
|
237
|
+
// Send and confirm transaction
|
|
238
|
+
const sendAndConfirmTransaction = sendAndConfirmTransactionFactory({ rpc: sendRpc, rpcSubscriptions: rpcSubscriptions });
|
|
239
|
+
try {
|
|
240
|
+
await sendAndConfirmTransaction(signedTransaction, {
|
|
241
|
+
commitment: effectiveConfig.transactionOptions?.commitment || 'confirmed',
|
|
242
|
+
skipPreflight: effectiveConfig.transactionOptions?.skipPreflight || false
|
|
243
|
+
});
|
|
244
|
+
// Extract and return the signature
|
|
245
|
+
const signature = getSignatureFromTransaction(signedTransaction);
|
|
246
|
+
return signature;
|
|
247
|
+
}
|
|
248
|
+
catch (error) {
|
|
249
|
+
throw new Error(`Transaction failed: ${error instanceof Error ? error.message : String(error)}`);
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
};
|
|
199
253
|
},
|
|
200
254
|
// Implement PromiseLike to allow direct awaiting
|
|
201
255
|
then(onfulfilled, onrejected) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/utils/config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,0CAA0C;AAC1C,OAAO,KAAK,YAAY,MAAM,wBAAwB,CAAC;AACvD,OAAO,KAAK,QAAQ,MAAM,oBAAoB,CAAC;AAC/C,OAAO,
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/utils/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Network configuration for the SRSLY SDK
|
|
3
3
|
*/
|
|
4
|
-
import { type Address } from '@solana/kit';
|
|
4
|
+
import { type Address, type TransactionSigner } from '@solana/kit';
|
|
5
5
|
export type ProgramSet = 'mainnet' | 'atlasnet' | 'holosim';
|
|
6
6
|
/**
|
|
7
7
|
* Configuration options that can be set globally or overridden per call
|
|
@@ -13,6 +13,10 @@ export interface ConfigOptions {
|
|
|
13
13
|
gameId?: string;
|
|
14
14
|
atlasMint?: string;
|
|
15
15
|
rpcUrl?: string;
|
|
16
|
+
transactionOptions?: {
|
|
17
|
+
commitment?: 'processed' | 'confirmed' | 'finalized';
|
|
18
|
+
skipPreflight?: boolean;
|
|
19
|
+
};
|
|
16
20
|
}
|
|
17
21
|
/**
|
|
18
22
|
* Resolve program addresses based on configuration
|
|
@@ -70,6 +74,35 @@ export declare function getModule(modulePath: 'instructions' | 'programs'): any;
|
|
|
70
74
|
* Get codama modules (network agnostic)
|
|
71
75
|
*/
|
|
72
76
|
export declare function getCachedNetworkModule<T = any>(modulePath: string): Promise<T>;
|
|
77
|
+
/**
|
|
78
|
+
* Interface for a packed transaction that can be sent or used with wallet adapters
|
|
79
|
+
*/
|
|
80
|
+
export interface PackedTransaction {
|
|
81
|
+
/** Raw transaction message bytes for wallet adapters */
|
|
82
|
+
messageBytes: any;
|
|
83
|
+
/** Transaction signature map (empty for unsigned transactions) */
|
|
84
|
+
signatures: any;
|
|
85
|
+
/**
|
|
86
|
+
* Send the packed transaction using @solana/kit (for server-side/CLI usage)
|
|
87
|
+
*
|
|
88
|
+
* @param signer The transaction signer that will sign and pay for the transaction
|
|
89
|
+
* @returns Promise resolving to the transaction signature
|
|
90
|
+
*
|
|
91
|
+
* @example
|
|
92
|
+
* ```typescript
|
|
93
|
+
* import { createKeyPairSignerFromBytes } from '@solana/kit';
|
|
94
|
+
*
|
|
95
|
+
* // Create signer from keypair bytes
|
|
96
|
+
* const signer = await createKeyPairSignerFromBytes(keypairBytes);
|
|
97
|
+
*
|
|
98
|
+
* // Pack transaction, then send
|
|
99
|
+
* const signature = await createContract(params)
|
|
100
|
+
* .pack(signer.address)
|
|
101
|
+
* .send(signer);
|
|
102
|
+
* ```
|
|
103
|
+
*/
|
|
104
|
+
send(signer: TransactionSigner): Promise<string>;
|
|
105
|
+
}
|
|
73
106
|
/**
|
|
74
107
|
* Configuration selector for overriding network and constants
|
|
75
108
|
* Also implements PromiseLike to allow direct awaiting
|
|
@@ -87,18 +120,19 @@ export interface ConfigSelector<T> extends PromiseLike<T> {
|
|
|
87
120
|
* Pack the instruction into an unsigned transaction ready for signing and sending
|
|
88
121
|
*
|
|
89
122
|
* @param feePayer The address that will pay for the transaction fees
|
|
90
|
-
* @returns Promise resolving to a
|
|
123
|
+
* @returns Promise resolving to a PackedTransaction with send() method
|
|
91
124
|
*
|
|
92
125
|
* @example
|
|
93
126
|
* ```typescript
|
|
94
|
-
* //
|
|
95
|
-
*
|
|
96
|
-
*
|
|
97
|
-
*
|
|
98
|
-
*
|
|
99
|
-
*
|
|
127
|
+
* // Option 1: Pack and send (server-side/CLI)
|
|
128
|
+
* import { createKeyPairSignerFromBytes } from '@solana/kit';
|
|
129
|
+
* const signer = await createKeyPairSignerFromBytes(keypairBytes);
|
|
130
|
+
* const signature = await createContract(params)
|
|
131
|
+
* .pack(signer.address)
|
|
132
|
+
* .send(signer);
|
|
100
133
|
*
|
|
101
|
-
* // Option 2:
|
|
134
|
+
* // Option 2: Pack for wallet adapter (browser)
|
|
135
|
+
* const packedTx = await createContract(params).pack(wallet.publicKey);
|
|
102
136
|
* import { VersionedTransaction } from '@solana/web3.js';
|
|
103
137
|
* const versionedTx = VersionedTransaction.deserialize(packedTx.messageBytes);
|
|
104
138
|
* const signedTx = await wallet.signTransaction(versionedTx);
|
|
@@ -108,7 +142,7 @@ export interface ConfigSelector<T> extends PromiseLike<T> {
|
|
|
108
142
|
* const txBytes = packedTx.messageBytes;
|
|
109
143
|
* ```
|
|
110
144
|
*/
|
|
111
|
-
pack(feePayer: Address | string): Promise<
|
|
145
|
+
pack(feePayer: Address | string): Promise<PackedTransaction>;
|
|
112
146
|
}
|
|
113
147
|
/**
|
|
114
148
|
* Create the initial fluent config selector for a function.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/utils/config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,EACL,KAAK,OAAO,
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/utils/config.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,iBAAiB,EAcvB,MAAM,aAAa,CAAC;AAErB,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,UAAU,GAAG,SAAS,CAAC;AAwB5D;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,EAAE,UAAU,CAAC;IACtB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,4BAA4B,CAAC,EAAE,MAAM,CAAC;IACtC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,kBAAkB,CAAC,EAAE;QACnB,UAAU,CAAC,EAAE,WAAW,GAAG,WAAW,GAAG,WAAW,CAAC;QACrD,aAAa,CAAC,EAAE,OAAO,CAAC;KACzB,CAAC;CACH;AAQD;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,aAAa;;;;;;;EAkB5D;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI,CAErD;AAED;;;GAGG;AACH,wBAAgB,SAAS,IAAI,aAAa,CAEzC;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,IAAI,CAElC;AAYD;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,UAAU,EAAE,cAAc,GAAG,UAAU,GAAG,GAAG,CAEtE;AAED;;;GAGG;AACH,wBAAsB,sBAAsB,CAAC,CAAC,GAAG,GAAG,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAKpF;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,wDAAwD;IACxD,YAAY,EAAE,GAAG,CAAC;IAClB,kEAAkE;IAClE,UAAU,EAAE,GAAG,CAAC;IAEhB;;;;;;;;;;;;;;;;;;OAkBG;IACH,IAAI,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAClD;AAED;;;GAGG;AACH,MAAM,WAAW,cAAc,CAAC,CAAC,CAAE,SAAQ,WAAW,CAAC,CAAC,CAAC;IACvD;;OAEG;IACH,GAAG,CAAC,OAAO,EAAE,aAAa,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;IAE/C;;OAEG;IACH,KAAK,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC;IAEpB;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,IAAI,CAAC,QAAQ,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;CAC9D;AAqGD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,EACpC,SAAS,EAAE,CAAC,MAAM,CAAC,EAAE,aAAa,KAAK,OAAO,CAAC,CAAC,CAAC,GAChD,cAAc,CAAC,CAAC,CAAC,CA6EnB"}
|