@wuwei-labs/srsly 2.0.0-beta.2 → 2.0.0-beta.21
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 +305 -110
- package/dist/cjs/codama/accounts/config.js +88 -0
- package/dist/cjs/codama/accounts/config.js.map +1 -0
- package/dist/cjs/codama/accounts/contractState.js +17 -39
- package/dist/cjs/codama/accounts/contractState.js.map +1 -1
- package/dist/cjs/codama/accounts/index.js +1 -1
- package/dist/cjs/codama/accounts/index.js.map +1 -1
- package/dist/cjs/codama/accounts/rentalState.js +18 -33
- package/dist/cjs/codama/accounts/rentalState.js.map +1 -1
- package/dist/cjs/codama/accounts/thread.js +15 -32
- package/dist/cjs/codama/accounts/thread.js.map +1 -1
- package/dist/cjs/codama/errors/srsly.js +24 -3
- package/dist/cjs/codama/errors/srsly.js.map +1 -1
- package/dist/cjs/codama/instructions/acceptRental.js +202 -224
- package/dist/cjs/codama/instructions/acceptRental.js.map +1 -1
- package/dist/cjs/codama/instructions/cancelRental.js +100 -136
- package/dist/cjs/codama/instructions/cancelRental.js.map +1 -1
- package/dist/cjs/codama/instructions/closeContract.js +95 -116
- package/dist/cjs/codama/instructions/closeContract.js.map +1 -1
- package/dist/cjs/codama/instructions/closeRental.js +119 -132
- package/dist/cjs/codama/instructions/closeRental.js.map +1 -1
- package/dist/cjs/codama/instructions/createContract.js +127 -143
- package/dist/cjs/codama/instructions/createContract.js.map +1 -1
- package/dist/cjs/codama/instructions/index.js +2 -1
- package/dist/cjs/codama/instructions/index.js.map +1 -1
- package/dist/cjs/codama/instructions/initializeConfig.js +131 -0
- package/dist/cjs/codama/instructions/initializeConfig.js.map +1 -0
- package/dist/cjs/codama/instructions/payRental.js +125 -129
- package/dist/cjs/codama/instructions/payRental.js.map +1 -1
- package/dist/cjs/codama/instructions/resetRental.js +55 -77
- package/dist/cjs/codama/instructions/resetRental.js.map +1 -1
- package/dist/cjs/codama/instructions/updateConfig.js +145 -0
- package/dist/cjs/codama/instructions/updateConfig.js.map +1 -0
- package/dist/cjs/codama/programs/srsly.js +12 -8
- package/dist/cjs/codama/programs/srsly.js.map +1 -1
- package/dist/cjs/codama/shared/index.js +6 -2
- package/dist/cjs/codama/shared/index.js.map +1 -1
- package/dist/cjs/codama/types/trigger.js +1 -1
- package/dist/cjs/codama/types/trigger.js.map +1 -1
- package/dist/cjs/codama/types/triggerContext.js +1 -1
- package/dist/cjs/codama/types/triggerContext.js.map +1 -1
- package/dist/cjs/contract/close.js +75 -34
- package/dist/cjs/contract/close.js.map +1 -1
- package/dist/cjs/contract/create.js +59 -43
- package/dist/cjs/contract/create.js.map +1 -1
- package/dist/cjs/index.js +7 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/package.json +54 -0
- package/dist/cjs/rental/accept.js +68 -40
- package/dist/cjs/rental/accept.js.map +1 -1
- package/dist/cjs/rental/cancel.js +36 -28
- package/dist/cjs/rental/cancel.js.map +1 -1
- package/dist/cjs/rental/close.js +37 -29
- package/dist/cjs/rental/close.js.map +1 -1
- package/dist/cjs/rental/reset.js +46 -42
- package/dist/cjs/rental/reset.js.map +1 -1
- package/dist/cjs/utils/config.js +319 -0
- package/dist/cjs/utils/config.js.map +1 -0
- package/dist/cjs/utils/constants.js +69 -9
- package/dist/cjs/utils/constants.js.map +1 -1
- package/dist/cjs/utils/index.js +1 -0
- package/dist/cjs/utils/index.js.map +1 -1
- package/dist/cjs/utils/profiles.js +96 -95
- package/dist/cjs/utils/profiles.js.map +1 -1
- package/dist/esm/codama/accounts/config.js +76 -0
- package/dist/esm/codama/accounts/config.js.map +1 -0
- package/dist/esm/codama/accounts/contractState.js +3 -7
- package/dist/esm/codama/accounts/contractState.js.map +1 -1
- package/dist/esm/codama/accounts/index.js +1 -1
- package/dist/esm/codama/accounts/index.js.map +1 -1
- package/dist/esm/codama/accounts/rentalState.js +3 -1
- package/dist/esm/codama/accounts/rentalState.js.map +1 -1
- package/dist/esm/codama/errors/srsly.js +23 -2
- package/dist/esm/codama/errors/srsly.js.map +1 -1
- package/dist/esm/codama/instructions/acceptRental.js +30 -39
- package/dist/esm/codama/instructions/acceptRental.js.map +1 -1
- package/dist/esm/codama/instructions/cancelRental.js +10 -33
- package/dist/esm/codama/instructions/cancelRental.js.map +1 -1
- package/dist/esm/codama/instructions/closeContract.js +17 -25
- package/dist/esm/codama/instructions/closeContract.js.map +1 -1
- package/dist/esm/codama/instructions/closeRental.js +19 -19
- package/dist/esm/codama/instructions/closeRental.js.map +1 -1
- package/dist/esm/codama/instructions/createContract.js +13 -16
- package/dist/esm/codama/instructions/createContract.js.map +1 -1
- package/dist/esm/codama/instructions/index.js +2 -1
- package/dist/esm/codama/instructions/index.js.map +1 -1
- package/dist/esm/codama/instructions/initializeConfig.js +121 -0
- package/dist/esm/codama/instructions/initializeConfig.js.map +1 -0
- package/dist/esm/codama/instructions/payRental.js +34 -25
- package/dist/esm/codama/instructions/payRental.js.map +1 -1
- package/dist/esm/codama/instructions/resetRental.js +0 -9
- package/dist/esm/codama/instructions/resetRental.js.map +1 -1
- package/dist/esm/codama/instructions/updateConfig.js +135 -0
- package/dist/esm/codama/instructions/updateConfig.js.map +1 -0
- package/dist/esm/codama/programs/srsly.js +12 -8
- package/dist/esm/codama/programs/srsly.js.map +1 -1
- package/dist/esm/contract/close.js +68 -16
- package/dist/esm/contract/close.js.map +1 -1
- package/dist/esm/contract/create.js +60 -33
- package/dist/esm/contract/create.js.map +1 -1
- package/dist/esm/index.js +5 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/package.json +54 -0
- package/dist/esm/rental/accept.js +70 -31
- package/dist/esm/rental/accept.js.map +1 -1
- package/dist/esm/rental/cancel.js +37 -18
- package/dist/esm/rental/cancel.js.map +1 -1
- package/dist/esm/rental/close.js +38 -19
- package/dist/esm/rental/close.js.map +1 -1
- package/dist/esm/rental/reset.js +48 -33
- package/dist/esm/rental/reset.js.map +1 -1
- package/dist/esm/utils/config.js +277 -0
- package/dist/esm/utils/config.js.map +1 -0
- package/dist/esm/utils/constants.js +60 -7
- package/dist/esm/utils/constants.js.map +1 -1
- package/dist/esm/utils/index.js +1 -0
- package/dist/esm/utils/index.js.map +1 -1
- package/dist/esm/utils/profiles.js +39 -19
- package/dist/esm/utils/profiles.js.map +1 -1
- package/dist/types/codama/accounts/config.d.ts +52 -0
- package/dist/types/codama/accounts/config.d.ts.map +1 -0
- package/dist/types/codama/accounts/contractState.d.ts +2 -4
- package/dist/types/codama/accounts/contractState.d.ts.map +1 -1
- package/dist/types/codama/accounts/index.d.ts +1 -1
- package/dist/types/codama/accounts/index.d.ts.map +1 -1
- package/dist/types/codama/accounts/rentalState.d.ts +2 -0
- package/dist/types/codama/accounts/rentalState.d.ts.map +1 -1
- package/dist/types/codama/errors/srsly.d.ts +16 -2
- package/dist/types/codama/errors/srsly.d.ts.map +1 -1
- package/dist/types/codama/instructions/acceptRental.d.ts +41 -34
- package/dist/types/codama/instructions/acceptRental.d.ts.map +1 -1
- package/dist/types/codama/instructions/cancelRental.d.ts +14 -10
- package/dist/types/codama/instructions/cancelRental.d.ts.map +1 -1
- package/dist/types/codama/instructions/closeContract.d.ts +29 -21
- package/dist/types/codama/instructions/closeContract.d.ts.map +1 -1
- package/dist/types/codama/instructions/closeRental.d.ts +20 -12
- package/dist/types/codama/instructions/closeRental.d.ts.map +1 -1
- package/dist/types/codama/instructions/createContract.d.ts +27 -23
- package/dist/types/codama/instructions/createContract.d.ts.map +1 -1
- package/dist/types/codama/instructions/index.d.ts +2 -1
- package/dist/types/codama/instructions/index.d.ts.map +1 -1
- package/dist/types/codama/instructions/initializeConfig.d.ts +60 -0
- package/dist/types/codama/instructions/initializeConfig.d.ts.map +1 -0
- package/dist/types/codama/instructions/payRental.d.ts +28 -13
- package/dist/types/codama/instructions/payRental.d.ts.map +1 -1
- package/dist/types/codama/instructions/resetRental.d.ts +3 -3
- package/dist/types/codama/instructions/resetRental.d.ts.map +1 -1
- package/dist/types/codama/instructions/updateConfig.d.ts +93 -0
- package/dist/types/codama/instructions/updateConfig.d.ts.map +1 -0
- package/dist/types/codama/programs/srsly.d.ts +11 -8
- package/dist/types/codama/programs/srsly.d.ts.map +1 -1
- package/dist/types/contract/close.d.ts +20 -24
- package/dist/types/contract/close.d.ts.map +1 -1
- package/dist/types/contract/create.d.ts +34 -22
- package/dist/types/contract/create.d.ts.map +1 -1
- package/dist/types/index.d.ts +4 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/rental/accept.d.ts +42 -20
- package/dist/types/rental/accept.d.ts.map +1 -1
- package/dist/types/rental/cancel.d.ts +16 -11
- package/dist/types/rental/cancel.d.ts.map +1 -1
- package/dist/types/rental/close.d.ts +16 -11
- package/dist/types/rental/close.d.ts.map +1 -1
- package/dist/types/rental/reset.d.ts +17 -20
- package/dist/types/rental/reset.d.ts.map +1 -1
- package/dist/types/utils/config.d.ts +167 -0
- package/dist/types/utils/config.d.ts.map +1 -0
- package/dist/types/utils/constants.d.ts +23 -7
- package/dist/types/utils/constants.d.ts.map +1 -1
- package/dist/types/utils/index.d.ts +1 -0
- package/dist/types/utils/index.d.ts.map +1 -1
- package/dist/types/utils/profiles.d.ts +14 -8
- package/dist/types/utils/profiles.d.ts.map +1 -1
- package/package.json +36 -14
- package/target/idl/srsly.json +3279 -0
- package/target/types/srsly.ts +1 -0
- package/dist/cjs/codama/accounts/fleet.js +0 -94
- package/dist/cjs/codama/accounts/fleet.js.map +0 -1
- package/dist/cjs/codama/instructions/normalizeAdmin.js +0 -165
- package/dist/cjs/codama/instructions/normalizeAdmin.js.map +0 -1
- package/dist/esm/codama/accounts/fleet.js +0 -64
- package/dist/esm/codama/accounts/fleet.js.map +0 -1
- package/dist/esm/codama/instructions/normalizeAdmin.js +0 -142
- package/dist/esm/codama/instructions/normalizeAdmin.js.map +0 -1
- package/dist/types/codama/accounts/fleet.d.ts +0 -38
- package/dist/types/codama/accounts/fleet.d.ts.map +0 -1
- package/dist/types/codama/instructions/normalizeAdmin.d.ts +0 -67
- package/dist/types/codama/instructions/normalizeAdmin.d.ts.map +0 -1
|
@@ -0,0 +1,277 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Network configuration for the SRSLY SDK
|
|
3
|
+
*/
|
|
4
|
+
// Single codama output - network agnostic
|
|
5
|
+
import * as instructions from '../codama/instructions';
|
|
6
|
+
import * as programs from '../codama/programs';
|
|
7
|
+
import { createSolanaRpc, createSolanaRpcSubscriptions, createTransactionMessage, setTransactionMessageFeePayer, setTransactionMessageFeePayerSigner, setTransactionMessageLifetimeUsingBlockhash, appendTransactionMessageInstructions, compileTransaction, signTransactionMessageWithSigners, sendAndConfirmTransactionFactory, getSignatureFromTransaction, pipe, } from '@solana/kit';
|
|
8
|
+
const PROGRAM_SETS = {
|
|
9
|
+
mainnet: {
|
|
10
|
+
SAGE_PROGRAM_ADDRESS: 'SAGE2HAwep459SNq61LHvjxPk4pLPEJLoMETef7f7EE',
|
|
11
|
+
PROFILE_FACTION_PROGRAM_ADDRESS: 'pFACSRuobDmvfMKq1bAzwj27t6d2GJhSCHb1VcfnRmq',
|
|
12
|
+
SAGE_GAME_ID: 'GAMEzqJehF8yAnKiTARUuhZMvLvkZVAsCVri5vSfemLr',
|
|
13
|
+
ATLAS_MINT: 'ATLASXmbPQxBUYbxPsV97usA3fPQYEqzQBUHgiFCUsXx',
|
|
14
|
+
RPC_URL: 'https://api.mainnet-beta.solana.com',
|
|
15
|
+
},
|
|
16
|
+
atlasnet: {
|
|
17
|
+
SAGE_PROGRAM_ADDRESS: 'SAgeTraQfBMdvGVDJYoEvjnbq5szW7RJPi6obDTDQUF',
|
|
18
|
+
PROFILE_FACTION_PROGRAM_ADDRESS: 'PprofUW1pURCnMW2si88GWPXEEK3Bvh9Tksy8WtnoYJ',
|
|
19
|
+
SAGE_GAME_ID: 'GAMEC7U7cqmFFaRow33j1LwuV8u4YhAS1mJ5Dqjnar2k',
|
|
20
|
+
ATLAS_MINT: 'ATLA5nAaVRfH6BNwD4SAyWp96EdQaAh6bBmGeTx956sx',
|
|
21
|
+
},
|
|
22
|
+
holosim: {
|
|
23
|
+
SAGE_PROGRAM_ADDRESS: 'SAgeTraQfBMdvGVDJYoEvjnbq5szW7RJPi6obDTDQUF',
|
|
24
|
+
PROFILE_FACTION_PROGRAM_ADDRESS: 'PprofUW1pURCnMW2si88GWPXEEK3Bvh9Tksy8WtnoYJ',
|
|
25
|
+
SAGE_GAME_ID: 'GAMEC7U7cqmFFaRow33j1LwuV8u4YhAS1mJ5Dqjnar2k',
|
|
26
|
+
ATLAS_MINT: 'ATLA5nAaVRfH6BNwD4SAyWp96EdQaAh6bBmGeTx956sx',
|
|
27
|
+
},
|
|
28
|
+
};
|
|
29
|
+
// Default program set when none is specified
|
|
30
|
+
const DEFAULT_PROGRAM_SET = 'atlasnet';
|
|
31
|
+
// Global configuration state
|
|
32
|
+
let globalConfig = {};
|
|
33
|
+
/**
|
|
34
|
+
* Resolve program addresses based on configuration
|
|
35
|
+
* @param config Effective configuration options
|
|
36
|
+
* @returns Resolved program addresses
|
|
37
|
+
*/
|
|
38
|
+
export function resolveProgramAddresses(config) {
|
|
39
|
+
// Determine which program set to use
|
|
40
|
+
const programSet = config.programs || DEFAULT_PROGRAM_SET;
|
|
41
|
+
// Get program addresses from program sets
|
|
42
|
+
const programConfig = PROGRAM_SETS[programSet];
|
|
43
|
+
if (!programConfig) {
|
|
44
|
+
throw new Error(`Unknown program set: ${programSet}. Available: ${Object.keys(PROGRAM_SETS).join(', ')}`);
|
|
45
|
+
}
|
|
46
|
+
return {
|
|
47
|
+
srslyProgramAddress: config.srslyProgramAddress || 'SRSLY1fq9TJqCk1gNSE7VZL2bztvTn9wm4VR8u8jMKT',
|
|
48
|
+
sageProgramAddress: programConfig.SAGE_PROGRAM_ADDRESS, // Fixed - cannot be overridden
|
|
49
|
+
profileFactionProgramAddress: config.profileFactionProgramAddress || programConfig.PROFILE_FACTION_PROGRAM_ADDRESS,
|
|
50
|
+
gameId: config.gameId || programConfig.SAGE_GAME_ID,
|
|
51
|
+
atlasMint: config.atlasMint || programConfig.ATLAS_MINT,
|
|
52
|
+
rpcUrl: config.rpcUrl || programConfig.RPC_URL,
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Set global configuration options that will be used as defaults for all SDK operations
|
|
57
|
+
* @param config Configuration options to set globally
|
|
58
|
+
*
|
|
59
|
+
* @example
|
|
60
|
+
* ```typescript
|
|
61
|
+
* // Use default atlasnet program addresses
|
|
62
|
+
* setConfig({ programs: 'atlasnet' });
|
|
63
|
+
*
|
|
64
|
+
* // Use holosim program addresses
|
|
65
|
+
* setConfig({ programs: 'holosim' });
|
|
66
|
+
*
|
|
67
|
+
* // Use holosim program addresses with custom game ID
|
|
68
|
+
* setConfig({
|
|
69
|
+
* programs: 'holosim',
|
|
70
|
+
* gameId: 'custom-game-id...'
|
|
71
|
+
* });
|
|
72
|
+
*
|
|
73
|
+
* // Can still override per instruction
|
|
74
|
+
* await createContract(params).set({ srslyProgramAddress: 'custom...' });
|
|
75
|
+
* ```
|
|
76
|
+
*/
|
|
77
|
+
export function setConfig(config) {
|
|
78
|
+
globalConfig = { ...config };
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Get the current global configuration
|
|
82
|
+
* @returns Current global configuration options
|
|
83
|
+
*/
|
|
84
|
+
export function getConfig() {
|
|
85
|
+
return { ...globalConfig };
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Clear global configuration (resets to atlasnet program set defaults)
|
|
89
|
+
*/
|
|
90
|
+
export function clearConfig() {
|
|
91
|
+
globalConfig = {};
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Get the effective configuration by merging global config with provided overrides
|
|
95
|
+
* @param overrides Optional configuration overrides
|
|
96
|
+
* @returns Merged configuration with global defaults and any overrides
|
|
97
|
+
*/
|
|
98
|
+
function getEffectiveConfig(overrides) {
|
|
99
|
+
return { ...globalConfig, ...overrides };
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Get the single codama module (network agnostic)
|
|
103
|
+
* @param modulePath The module type ('instructions' or 'programs')
|
|
104
|
+
* @returns The codama module
|
|
105
|
+
*/
|
|
106
|
+
export function getModule(modulePath) {
|
|
107
|
+
return modulePath === 'instructions' ? instructions : programs;
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* @deprecated Use getModule instead. This function is kept for backward compatibility.
|
|
111
|
+
* Get codama modules (network agnostic)
|
|
112
|
+
*/
|
|
113
|
+
export async function getCachedNetworkModule(modulePath) {
|
|
114
|
+
if (modulePath !== 'instructions' && modulePath !== 'programs') {
|
|
115
|
+
throw new Error(`Unsupported module path: ${modulePath}. Use 'instructions' or 'programs'.`);
|
|
116
|
+
}
|
|
117
|
+
return getModule(modulePath);
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Create a chainable config selector with existing configuration state.
|
|
121
|
+
* This enables config chaining by merging new options with existing ones.
|
|
122
|
+
*
|
|
123
|
+
* Used internally when .set() is called on an existing ConfigSelector.
|
|
124
|
+
*
|
|
125
|
+
* @param executeFn - The function to execute with merged configuration
|
|
126
|
+
* @param existingConfig - The current configuration state to merge with
|
|
127
|
+
* @returns A ConfigSelector that can chain additional .set() calls
|
|
128
|
+
*
|
|
129
|
+
* @example
|
|
130
|
+
* // This creates a chainable selector that merges { programs: 'atlasnet' }
|
|
131
|
+
* // with any additional config options passed to subsequent .set() calls
|
|
132
|
+
* createChainableConfigSelector(executeFn, { programs: 'atlasnet' })
|
|
133
|
+
*/
|
|
134
|
+
function createChainableConfigSelector(executeFn, existingConfig) {
|
|
135
|
+
const selector = {
|
|
136
|
+
set: (additionalOptions) => createChainableConfigSelector(executeFn, { ...existingConfig, ...additionalOptions }),
|
|
137
|
+
build: () => executeFn(existingConfig),
|
|
138
|
+
pack: async (feePayer) => {
|
|
139
|
+
const instruction = await executeFn(existingConfig);
|
|
140
|
+
const effectiveConfig = getEffectiveConfig(existingConfig);
|
|
141
|
+
const resolvedAddresses = resolveProgramAddresses(effectiveConfig);
|
|
142
|
+
if (!resolvedAddresses.rpcUrl) {
|
|
143
|
+
const networkType = effectiveConfig.programs || 'unknown';
|
|
144
|
+
if (networkType === 'atlasnet' || networkType === 'holosim') {
|
|
145
|
+
throw new Error(`RPC URL is required for ${networkType} network. Please provide your RPC endpoint via setConfig({ rpcUrl: "your-rpc-url-with-api-key" }) or .set({ rpcUrl: "your-rpc-url-with-api-key" })`);
|
|
146
|
+
}
|
|
147
|
+
throw new Error('RPC URL is required for creating transactions. Please set it via setConfig({ rpcUrl: "..." }) or provide it in .set({ rpcUrl: "..." })');
|
|
148
|
+
}
|
|
149
|
+
// Create RPC connection to get latest blockhash
|
|
150
|
+
const rpc = createSolanaRpc(resolvedAddresses.rpcUrl);
|
|
151
|
+
const { value: latestBlockhash } = await rpc.getLatestBlockhash().send();
|
|
152
|
+
// Build unsigned transaction message
|
|
153
|
+
const transactionMessage = pipe(createTransactionMessage({ version: 0 }), (msg) => setTransactionMessageFeePayer(feePayer, msg), (msg) => setTransactionMessageLifetimeUsingBlockhash(latestBlockhash, msg), (msg) => appendTransactionMessageInstructions([instruction], msg));
|
|
154
|
+
// Compile to unsigned transaction
|
|
155
|
+
const unsignedTransaction = compileTransaction(transactionMessage);
|
|
156
|
+
// Ensure messageBytes is a proper Uint8Array for web3.js compatibility
|
|
157
|
+
const messageBytes = unsignedTransaction.messageBytes instanceof Uint8Array
|
|
158
|
+
? unsignedTransaction.messageBytes
|
|
159
|
+
: new Uint8Array(unsignedTransaction.messageBytes);
|
|
160
|
+
// Return PackedTransaction with send() method
|
|
161
|
+
return {
|
|
162
|
+
messageBytes,
|
|
163
|
+
signatures: unsignedTransaction.signatures,
|
|
164
|
+
send: async (signer) => {
|
|
165
|
+
// Create RPC connections for sending
|
|
166
|
+
const sendRpc = createSolanaRpc(resolvedAddresses.rpcUrl);
|
|
167
|
+
const rpcSubscriptions = createSolanaRpcSubscriptions(resolvedAddresses.rpcUrl.replace('https:', 'wss:').replace('http:', 'ws:'));
|
|
168
|
+
// Build transaction message with signer
|
|
169
|
+
const signerTransactionMessage = pipe(createTransactionMessage({ version: 0 }), (msg) => setTransactionMessageFeePayerSigner(signer, msg), (msg) => setTransactionMessageLifetimeUsingBlockhash(latestBlockhash, msg), (msg) => appendTransactionMessageInstructions([instruction], msg));
|
|
170
|
+
// Sign transaction
|
|
171
|
+
const signedTransaction = await signTransactionMessageWithSigners(signerTransactionMessage);
|
|
172
|
+
// Send and confirm transaction
|
|
173
|
+
const sendAndConfirmTransaction = sendAndConfirmTransactionFactory({ rpc: sendRpc, rpcSubscriptions: rpcSubscriptions });
|
|
174
|
+
try {
|
|
175
|
+
await sendAndConfirmTransaction(signedTransaction, {
|
|
176
|
+
commitment: effectiveConfig.transactionOptions?.commitment || 'confirmed',
|
|
177
|
+
skipPreflight: effectiveConfig.transactionOptions?.skipPreflight || false
|
|
178
|
+
});
|
|
179
|
+
// Extract and return the signature
|
|
180
|
+
const signature = getSignatureFromTransaction(signedTransaction);
|
|
181
|
+
return signature;
|
|
182
|
+
}
|
|
183
|
+
catch (error) {
|
|
184
|
+
throw new Error(`Transaction failed: ${error instanceof Error ? error.message : String(error)}`);
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
};
|
|
188
|
+
},
|
|
189
|
+
// Implement PromiseLike to allow direct awaiting
|
|
190
|
+
then(onfulfilled, onrejected) {
|
|
191
|
+
return executeFn(existingConfig).then(onfulfilled, onrejected);
|
|
192
|
+
}
|
|
193
|
+
};
|
|
194
|
+
return selector;
|
|
195
|
+
}
|
|
196
|
+
/**
|
|
197
|
+
* Create the initial fluent config selector for a function.
|
|
198
|
+
* This is the main entry point for the fluent configuration API.
|
|
199
|
+
*
|
|
200
|
+
* The returned selector can be:
|
|
201
|
+
* - Awaited directly (uses global config + atlasnet fallback)
|
|
202
|
+
* - Configured with .set() to override network/constants
|
|
203
|
+
* - Chained with multiple .set() calls
|
|
204
|
+
*
|
|
205
|
+
* @param executeFn - The function to execute with optional configuration
|
|
206
|
+
* @returns A ConfigSelector that supports fluent configuration
|
|
207
|
+
*
|
|
208
|
+
* @example
|
|
209
|
+
* // Usage patterns:
|
|
210
|
+
* setConfig({ programs: 'mainnet' });
|
|
211
|
+
* await createConfigSelector(executeFn) // Direct await (uses global config)
|
|
212
|
+
* await createConfigSelector(executeFn).set({...}) // Override global config
|
|
213
|
+
* await createConfigSelector(executeFn).set({...}).set({...}) // Chained configs
|
|
214
|
+
*/
|
|
215
|
+
export function createConfigSelector(executeFn) {
|
|
216
|
+
const selector = {
|
|
217
|
+
set: (options) => createChainableConfigSelector(executeFn, getEffectiveConfig(options)),
|
|
218
|
+
build: () => executeFn(getEffectiveConfig()),
|
|
219
|
+
pack: async (feePayer) => {
|
|
220
|
+
const instruction = await executeFn(getEffectiveConfig());
|
|
221
|
+
const effectiveConfig = getEffectiveConfig();
|
|
222
|
+
const resolvedAddresses = resolveProgramAddresses(effectiveConfig);
|
|
223
|
+
if (!resolvedAddresses.rpcUrl) {
|
|
224
|
+
const networkType = effectiveConfig.programs || 'unknown';
|
|
225
|
+
if (networkType === 'atlasnet' || networkType === 'holosim') {
|
|
226
|
+
throw new Error(`RPC URL is required for ${networkType} network. Please provide your RPC endpoint via setConfig({ rpcUrl: "your-rpc-url-with-api-key" }) or .set({ rpcUrl: "your-rpc-url-with-api-key" })`);
|
|
227
|
+
}
|
|
228
|
+
throw new Error('RPC URL is required for creating transactions. Please set it via setConfig({ rpcUrl: "..." }) or provide it in .set({ rpcUrl: "..." })');
|
|
229
|
+
}
|
|
230
|
+
// Create RPC connection to get latest blockhash
|
|
231
|
+
const rpc = createSolanaRpc(resolvedAddresses.rpcUrl);
|
|
232
|
+
const { value: latestBlockhash } = await rpc.getLatestBlockhash().send();
|
|
233
|
+
// Build unsigned transaction message
|
|
234
|
+
const transactionMessage = pipe(createTransactionMessage({ version: 0 }), (msg) => setTransactionMessageFeePayer(feePayer, msg), (msg) => setTransactionMessageLifetimeUsingBlockhash(latestBlockhash, msg), (msg) => appendTransactionMessageInstructions([instruction], msg));
|
|
235
|
+
// Compile to unsigned transaction
|
|
236
|
+
const unsignedTransaction = compileTransaction(transactionMessage);
|
|
237
|
+
// Ensure messageBytes is a proper Uint8Array for web3.js compatibility
|
|
238
|
+
const messageBytes = unsignedTransaction.messageBytes instanceof Uint8Array
|
|
239
|
+
? unsignedTransaction.messageBytes
|
|
240
|
+
: new Uint8Array(unsignedTransaction.messageBytes);
|
|
241
|
+
// Return PackedTransaction with send() method
|
|
242
|
+
return {
|
|
243
|
+
messageBytes,
|
|
244
|
+
signatures: unsignedTransaction.signatures,
|
|
245
|
+
send: async (signer) => {
|
|
246
|
+
// Create RPC connections for sending
|
|
247
|
+
const sendRpc = createSolanaRpc(resolvedAddresses.rpcUrl);
|
|
248
|
+
const rpcSubscriptions = createSolanaRpcSubscriptions(resolvedAddresses.rpcUrl.replace('https:', 'wss:').replace('http:', 'ws:'));
|
|
249
|
+
// Build transaction message with signer
|
|
250
|
+
const signerTransactionMessage = pipe(createTransactionMessage({ version: 0 }), (msg) => setTransactionMessageFeePayerSigner(signer, msg), (msg) => setTransactionMessageLifetimeUsingBlockhash(latestBlockhash, msg), (msg) => appendTransactionMessageInstructions([instruction], msg));
|
|
251
|
+
// Sign transaction
|
|
252
|
+
const signedTransaction = await signTransactionMessageWithSigners(signerTransactionMessage);
|
|
253
|
+
// Send and confirm transaction
|
|
254
|
+
const sendAndConfirmTransaction = sendAndConfirmTransactionFactory({ rpc: sendRpc, rpcSubscriptions: rpcSubscriptions });
|
|
255
|
+
try {
|
|
256
|
+
await sendAndConfirmTransaction(signedTransaction, {
|
|
257
|
+
commitment: effectiveConfig.transactionOptions?.commitment || 'confirmed',
|
|
258
|
+
skipPreflight: effectiveConfig.transactionOptions?.skipPreflight || false
|
|
259
|
+
});
|
|
260
|
+
// Extract and return the signature
|
|
261
|
+
const signature = getSignatureFromTransaction(signedTransaction);
|
|
262
|
+
return signature;
|
|
263
|
+
}
|
|
264
|
+
catch (error) {
|
|
265
|
+
throw new Error(`Transaction failed: ${error instanceof Error ? error.message : String(error)}`);
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
};
|
|
269
|
+
},
|
|
270
|
+
// Implement PromiseLike to allow direct awaiting
|
|
271
|
+
then(onfulfilled, onrejected) {
|
|
272
|
+
return executeFn(getEffectiveConfig()).then(onfulfilled, onrejected);
|
|
273
|
+
}
|
|
274
|
+
};
|
|
275
|
+
return selector;
|
|
276
|
+
}
|
|
277
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/utils/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +1,68 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
import { getConfig, resolveProgramAddresses } from './config';
|
|
2
|
+
import { address } from '@solana/kit';
|
|
3
|
+
/**
|
|
4
|
+
* Converts a string or Address to an Address type
|
|
5
|
+
* This utility ensures consistent address handling across the SDK
|
|
6
|
+
*/
|
|
7
|
+
export function toAddress(value) {
|
|
8
|
+
return typeof value === 'string' ? address(value) : value;
|
|
9
|
+
}
|
|
7
10
|
// Seed constants
|
|
8
11
|
export const STARBASE_SEED = 'Starbase';
|
|
9
12
|
export const STARBASE_PLAYER_SEED = 'starbase_player';
|
|
10
13
|
export const SAGE_PLAYER_PROFILE_SEED = 'sage_player_profile';
|
|
11
14
|
export const PROFILE_FACTION_SEED = 'profile_faction';
|
|
15
|
+
// Token conversion constants
|
|
16
|
+
export const ATLAS_TO_STARDUST = 100_000_000; // 1 ATLAS = 100,000,000 stardust
|
|
17
|
+
// PaymentFrequency enum to match the Rust program
|
|
18
|
+
export var PaymentFrequency;
|
|
19
|
+
(function (PaymentFrequency) {
|
|
20
|
+
PaymentFrequency[PaymentFrequency["Hourly"] = 0] = "Hourly";
|
|
21
|
+
PaymentFrequency[PaymentFrequency["Daily"] = 1] = "Daily";
|
|
22
|
+
PaymentFrequency[PaymentFrequency["DailyOld"] = 2] = "DailyOld";
|
|
23
|
+
PaymentFrequency[PaymentFrequency["Weekly"] = 3] = "Weekly";
|
|
24
|
+
PaymentFrequency[PaymentFrequency["Monthly"] = 4] = "Monthly";
|
|
25
|
+
// Development-only frequencies (not available on mainnet)
|
|
26
|
+
PaymentFrequency[PaymentFrequency["Decasecond"] = 5] = "Decasecond";
|
|
27
|
+
PaymentFrequency[PaymentFrequency["Minute"] = 6] = "Minute";
|
|
28
|
+
})(PaymentFrequency || (PaymentFrequency = {}));
|
|
29
|
+
// Network constants are now managed in config.ts
|
|
30
|
+
export async function getSrslyProgramAddress(config) {
|
|
31
|
+
const globalConfig = getConfig();
|
|
32
|
+
const effectiveConfig = { ...globalConfig, ...config };
|
|
33
|
+
const resolved = resolveProgramAddresses(effectiveConfig);
|
|
34
|
+
return toAddress(resolved.srslyProgramAddress);
|
|
35
|
+
}
|
|
36
|
+
// Export async function to get program ID
|
|
37
|
+
export async function getProgramId() {
|
|
38
|
+
return await getSrslyProgramAddress();
|
|
39
|
+
}
|
|
40
|
+
// Network-specific constants with configuration support
|
|
41
|
+
export async function getSageProgramAddress(config) {
|
|
42
|
+
const globalConfig = getConfig();
|
|
43
|
+
const effectiveConfig = { ...globalConfig, ...config };
|
|
44
|
+
const resolved = resolveProgramAddresses(effectiveConfig);
|
|
45
|
+
// Note: SAGE program address is fixed based on network and cannot be overridden
|
|
46
|
+
return toAddress(resolved.sageProgramAddress);
|
|
47
|
+
}
|
|
48
|
+
export async function getProfileFactionProgramAddress(config) {
|
|
49
|
+
const globalConfig = getConfig();
|
|
50
|
+
const effectiveConfig = { ...globalConfig, ...config };
|
|
51
|
+
const resolved = resolveProgramAddresses(effectiveConfig);
|
|
52
|
+
return toAddress(resolved.profileFactionProgramAddress);
|
|
53
|
+
}
|
|
54
|
+
export async function getSageGameId(config) {
|
|
55
|
+
const globalConfig = getConfig();
|
|
56
|
+
const effectiveConfig = { ...globalConfig, ...config };
|
|
57
|
+
const resolved = resolveProgramAddresses(effectiveConfig);
|
|
58
|
+
return toAddress(resolved.gameId);
|
|
59
|
+
}
|
|
60
|
+
export async function getAtlasMint(config) {
|
|
61
|
+
const globalConfig = getConfig();
|
|
62
|
+
const effectiveConfig = { ...globalConfig, ...config };
|
|
63
|
+
const resolved = resolveProgramAddresses(effectiveConfig);
|
|
64
|
+
return toAddress(resolved.atlasMint);
|
|
65
|
+
}
|
|
12
66
|
// Faction-specific CSS coordinates for starbase derivation
|
|
13
67
|
export const FACTION_SPECIFIC_CSS = {
|
|
14
68
|
mud: { x: 0, y: -39 },
|
|
@@ -26,5 +80,4 @@ export const FACTION_MAPPING = {
|
|
|
26
80
|
export function paymentFrequencyToString(freq) {
|
|
27
81
|
return PaymentFrequency[freq].toLowerCase();
|
|
28
82
|
}
|
|
29
|
-
export { PaymentFrequency };
|
|
30
83
|
//# sourceMappingURL=constants.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/utils/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/utils/constants.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/utils/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { getBytesEncoder, getAddressEncoder, getProgramDerivedAddress } from '@solana/kit';
|
|
2
|
-
import {
|
|
2
|
+
import { FACTION_MAPPING, FACTION_SPECIFIC_CSS, PROFILE_FACTION_SEED, SAGE_PLAYER_PROFILE_SEED, STARBASE_PLAYER_SEED, STARBASE_SEED } from './constants';
|
|
3
|
+
import { getSageGameId, getSageProgramAddress, getProfileFactionProgramAddress } from './constants';
|
|
3
4
|
/**
|
|
4
5
|
* Helper function to convert a string seed to a Uint8Array
|
|
5
6
|
* This is necessary for @solana/kit's getBytesEncoder().encode()
|
|
@@ -14,11 +15,13 @@ function seedToBytes(seed) {
|
|
|
14
15
|
* Helper function to derive the borrower's profile faction account
|
|
15
16
|
*
|
|
16
17
|
* @param profile The borrower's profile address
|
|
18
|
+
* @param config Optional configuration for network-specific constants
|
|
17
19
|
* @returns Promise that resolves to the derived profile faction address
|
|
18
20
|
*/
|
|
19
|
-
export async function deriveProfileFaction(profile) {
|
|
21
|
+
export async function deriveProfileFaction(profile, config) {
|
|
22
|
+
const programAddress = await getProfileFactionProgramAddress(config);
|
|
20
23
|
const [address] = await getProgramDerivedAddress({
|
|
21
|
-
programAddress:
|
|
24
|
+
programAddress: programAddress,
|
|
22
25
|
seeds: [
|
|
23
26
|
seedToBytes(PROFILE_FACTION_SEED),
|
|
24
27
|
getAddressEncoder().encode(profile)
|
|
@@ -30,16 +33,21 @@ export async function deriveProfileFaction(profile) {
|
|
|
30
33
|
* Helper function to derive the sage player profile
|
|
31
34
|
*
|
|
32
35
|
* @param borrowerProfile The borrower's profile address
|
|
33
|
-
* @param gameId The game ID (
|
|
36
|
+
* @param gameId The game ID (if not provided, uses network-specific default)
|
|
37
|
+
* @param config Optional configuration for network-specific constants
|
|
34
38
|
* @returns Promise that resolves to the derived sage player profile address
|
|
35
39
|
*/
|
|
36
|
-
export async function deriveSagePlayerProfile(borrowerProfile, gameId
|
|
40
|
+
export async function deriveSagePlayerProfile(borrowerProfile, gameId, config) {
|
|
41
|
+
const [programAddress, actualGameId] = await Promise.all([
|
|
42
|
+
getSageProgramAddress(config),
|
|
43
|
+
gameId || getSageGameId(config)
|
|
44
|
+
]);
|
|
37
45
|
const [address] = await getProgramDerivedAddress({
|
|
38
|
-
programAddress:
|
|
46
|
+
programAddress: programAddress,
|
|
39
47
|
seeds: [
|
|
40
48
|
seedToBytes(SAGE_PLAYER_PROFILE_SEED),
|
|
41
49
|
getAddressEncoder().encode(borrowerProfile),
|
|
42
|
-
getAddressEncoder().encode(
|
|
50
|
+
getAddressEncoder().encode(actualGameId)
|
|
43
51
|
]
|
|
44
52
|
});
|
|
45
53
|
return address;
|
|
@@ -48,10 +56,11 @@ export async function deriveSagePlayerProfile(borrowerProfile, gameId = DEFAULT_
|
|
|
48
56
|
* Helper function to derive the starbase address based on faction
|
|
49
57
|
*
|
|
50
58
|
* @param faction The faction (1/2/3 or 'mud'/'oni'/'ustur')
|
|
51
|
-
* @param gameId The game ID (
|
|
59
|
+
* @param gameId The game ID (if not provided, uses network-specific default)
|
|
60
|
+
* @param config Optional configuration for network-specific constants
|
|
52
61
|
* @returns Promise that resolves to the derived starbase address
|
|
53
62
|
*/
|
|
54
|
-
export async function deriveStarbase(faction, gameId
|
|
63
|
+
export async function deriveStarbase(faction, gameId, config) {
|
|
55
64
|
// Convert faction to string representation if it's a number
|
|
56
65
|
const factionName = typeof faction === 'number'
|
|
57
66
|
? FACTION_MAPPING[faction]
|
|
@@ -62,6 +71,11 @@ export async function deriveStarbase(faction, gameId = DEFAULT_GAME_ID) {
|
|
|
62
71
|
}
|
|
63
72
|
// Get coordinates for the faction
|
|
64
73
|
const coords = FACTION_SPECIFIC_CSS[factionName];
|
|
74
|
+
// Get network-specific constants
|
|
75
|
+
const [programAddress, actualGameId] = await Promise.all([
|
|
76
|
+
getSageProgramAddress(config),
|
|
77
|
+
gameId || getSageGameId(config)
|
|
78
|
+
]);
|
|
65
79
|
// Convert coordinates to bytes (little-endian, two's complement)
|
|
66
80
|
const xCoord = new DataView(new ArrayBuffer(8));
|
|
67
81
|
const yCoord = new DataView(new ArrayBuffer(8));
|
|
@@ -71,10 +85,10 @@ export async function deriveStarbase(faction, gameId = DEFAULT_GAME_ID) {
|
|
|
71
85
|
const xBytes = new Uint8Array(xCoord.buffer);
|
|
72
86
|
const yBytes = new Uint8Array(yCoord.buffer);
|
|
73
87
|
const [address] = await getProgramDerivedAddress({
|
|
74
|
-
programAddress:
|
|
88
|
+
programAddress: programAddress,
|
|
75
89
|
seeds: [
|
|
76
90
|
seedToBytes(STARBASE_SEED),
|
|
77
|
-
getAddressEncoder().encode(
|
|
91
|
+
getAddressEncoder().encode(actualGameId),
|
|
78
92
|
getBytesEncoder().encode(xBytes),
|
|
79
93
|
getBytesEncoder().encode(yBytes)
|
|
80
94
|
]
|
|
@@ -87,15 +101,18 @@ export async function deriveStarbase(faction, gameId = DEFAULT_GAME_ID) {
|
|
|
87
101
|
* @param sagePlayerProfile The sage player profile address
|
|
88
102
|
* @param starbase The starbase address
|
|
89
103
|
* @param starbaseSeqId The starbase sequence ID (defaults to 0)
|
|
104
|
+
* @param config Optional configuration for network-specific constants
|
|
90
105
|
* @returns Promise that resolves to the derived starbase player address
|
|
91
106
|
*/
|
|
92
|
-
export async function deriveStarbasePlayer(sagePlayerProfile, starbase, starbaseSeqId = 0) {
|
|
107
|
+
export async function deriveStarbasePlayer(sagePlayerProfile, starbase, starbaseSeqId = 0, config) {
|
|
108
|
+
// Get network-specific SAGE program address
|
|
109
|
+
const programAddress = await getSageProgramAddress(config);
|
|
93
110
|
// Convert sequence ID to bytes (little-endian uint16)
|
|
94
111
|
const seqIdView = new DataView(new ArrayBuffer(2));
|
|
95
112
|
seqIdView.setUint16(0, starbaseSeqId, true);
|
|
96
113
|
const seqIdBytes = new Uint8Array(seqIdView.buffer);
|
|
97
114
|
const [address] = await getProgramDerivedAddress({
|
|
98
|
-
programAddress:
|
|
115
|
+
programAddress: programAddress,
|
|
99
116
|
seeds: [
|
|
100
117
|
seedToBytes(STARBASE_PLAYER_SEED),
|
|
101
118
|
getAddressEncoder().encode(starbase),
|
|
@@ -110,19 +127,22 @@ export async function deriveStarbasePlayer(sagePlayerProfile, starbase, starbase
|
|
|
110
127
|
*
|
|
111
128
|
* @param profile The borrower's profile address
|
|
112
129
|
* @param faction The faction (1/2/3 or 'mud'/'oni'/'ustur')
|
|
113
|
-
* @param gameId The game ID (
|
|
130
|
+
* @param gameId The game ID (if not provided, uses network-specific default)
|
|
114
131
|
* @param starbaseSeqId The starbase sequence ID (defaults to 0)
|
|
132
|
+
* @param config Optional configuration for network-specific constants
|
|
115
133
|
* @returns Promise that resolves to the three derived addresses
|
|
116
134
|
*/
|
|
117
|
-
export async function deriveGameAccounts(profile, faction, gameId
|
|
135
|
+
export async function deriveGameAccounts(profile, faction, gameId, starbaseSeqId = 0, config) {
|
|
136
|
+
// Get the actual game ID to use
|
|
137
|
+
const actualGameId = gameId || await getSageGameId(config);
|
|
118
138
|
// Derive the three accounts in parallel
|
|
119
139
|
const [profileFaction, sagePlayerProfile, starbase] = await Promise.all([
|
|
120
|
-
deriveProfileFaction(profile),
|
|
121
|
-
deriveSagePlayerProfile(profile,
|
|
122
|
-
deriveStarbase(faction,
|
|
140
|
+
deriveProfileFaction(profile, config),
|
|
141
|
+
deriveSagePlayerProfile(profile, actualGameId, config),
|
|
142
|
+
deriveStarbase(faction, actualGameId, config)
|
|
123
143
|
]);
|
|
124
144
|
// Derive starbasePlayer using the results from above
|
|
125
|
-
const starbasePlayer = await deriveStarbasePlayer(sagePlayerProfile, starbase, starbaseSeqId);
|
|
145
|
+
const starbasePlayer = await deriveStarbasePlayer(sagePlayerProfile, starbase, starbaseSeqId, config);
|
|
126
146
|
return {
|
|
127
147
|
profileFaction,
|
|
128
148
|
starbase,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"profiles.js","sourceRoot":"","sources":["../../../src/utils/profiles.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,eAAe,EACf,iBAAiB,EACjB,wBAAwB,EACzB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,eAAe,EAAE,
|
|
1
|
+
{"version":3,"file":"profiles.js","sourceRoot":"","sources":["../../../src/utils/profiles.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This code was AUTOGENERATED using the codama library.
|
|
3
|
+
* Please DO NOT EDIT THIS FILE, instead use visitors
|
|
4
|
+
* to add features, then rerun codama to update it.
|
|
5
|
+
*
|
|
6
|
+
* @see https://github.com/codama-idl/codama
|
|
7
|
+
*/
|
|
8
|
+
import { fetchEncodedAccount, fetchEncodedAccounts, type Account, type Address, type Codec, type Decoder, type EncodedAccount, type Encoder, type FetchAccountConfig, type FetchAccountsConfig, type MaybeAccount, type MaybeEncodedAccount, type ReadonlyUint8Array } from '@solana/kit';
|
|
9
|
+
import { type PaymentFrequency, type PaymentFrequencyArgs } from '../types';
|
|
10
|
+
export declare const CONFIG_DISCRIMINATOR: Uint8Array<ArrayBuffer>;
|
|
11
|
+
export declare function getConfigDiscriminatorBytes(): ReadonlyUint8Array;
|
|
12
|
+
export type Config = {
|
|
13
|
+
discriminator: ReadonlyUint8Array;
|
|
14
|
+
version: number;
|
|
15
|
+
bump: number;
|
|
16
|
+
authority: Address;
|
|
17
|
+
stardustToAtlas: bigint;
|
|
18
|
+
serviceFeeBps: bigint;
|
|
19
|
+
referralFeeBps: bigint;
|
|
20
|
+
baseBps: bigint;
|
|
21
|
+
rentalDurationMinSeconds: bigint;
|
|
22
|
+
rentalDurationMaxSeconds: bigint;
|
|
23
|
+
feesAccount: Address;
|
|
24
|
+
atlasMint: Address;
|
|
25
|
+
defaultPaymentFrequency: PaymentFrequency;
|
|
26
|
+
allowedFrequencies: Array<PaymentFrequency>;
|
|
27
|
+
};
|
|
28
|
+
export type ConfigArgs = {
|
|
29
|
+
version: number;
|
|
30
|
+
bump: number;
|
|
31
|
+
authority: Address;
|
|
32
|
+
stardustToAtlas: number | bigint;
|
|
33
|
+
serviceFeeBps: number | bigint;
|
|
34
|
+
referralFeeBps: number | bigint;
|
|
35
|
+
baseBps: number | bigint;
|
|
36
|
+
rentalDurationMinSeconds: number | bigint;
|
|
37
|
+
rentalDurationMaxSeconds: number | bigint;
|
|
38
|
+
feesAccount: Address;
|
|
39
|
+
atlasMint: Address;
|
|
40
|
+
defaultPaymentFrequency: PaymentFrequencyArgs;
|
|
41
|
+
allowedFrequencies: Array<PaymentFrequencyArgs>;
|
|
42
|
+
};
|
|
43
|
+
export declare function getConfigEncoder(): Encoder<ConfigArgs>;
|
|
44
|
+
export declare function getConfigDecoder(): Decoder<Config>;
|
|
45
|
+
export declare function getConfigCodec(): Codec<ConfigArgs, Config>;
|
|
46
|
+
export declare function decodeConfig<TAddress extends string = string>(encodedAccount: EncodedAccount<TAddress>): Account<Config, TAddress>;
|
|
47
|
+
export declare function decodeConfig<TAddress extends string = string>(encodedAccount: MaybeEncodedAccount<TAddress>): MaybeAccount<Config, TAddress>;
|
|
48
|
+
export declare function fetchConfig<TAddress extends string = string>(rpc: Parameters<typeof fetchEncodedAccount>[0], address: Address<TAddress>, config?: FetchAccountConfig): Promise<Account<Config, TAddress>>;
|
|
49
|
+
export declare function fetchMaybeConfig<TAddress extends string = string>(rpc: Parameters<typeof fetchEncodedAccount>[0], address: Address<TAddress>, config?: FetchAccountConfig): Promise<MaybeAccount<Config, TAddress>>;
|
|
50
|
+
export declare function fetchAllConfig(rpc: Parameters<typeof fetchEncodedAccounts>[0], addresses: Array<Address>, config?: FetchAccountsConfig): Promise<Account<Config>[]>;
|
|
51
|
+
export declare function fetchAllMaybeConfig(rpc: Parameters<typeof fetchEncodedAccounts>[0], addresses: Array<Address>, config?: FetchAccountsConfig): Promise<MaybeAccount<Config>[]>;
|
|
52
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../../src/codama/accounts/config.ts"],"names":[],"mappings":"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"}
|