@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,319 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Network configuration for the SRSLY SDK
|
|
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.resolveProgramAddresses = resolveProgramAddresses;
|
|
40
|
+
exports.setConfig = setConfig;
|
|
41
|
+
exports.getConfig = getConfig;
|
|
42
|
+
exports.clearConfig = clearConfig;
|
|
43
|
+
exports.getModule = getModule;
|
|
44
|
+
exports.getCachedNetworkModule = getCachedNetworkModule;
|
|
45
|
+
exports.createConfigSelector = createConfigSelector;
|
|
46
|
+
// Single codama output - network agnostic
|
|
47
|
+
const instructions = __importStar(require("../codama/instructions"));
|
|
48
|
+
const programs = __importStar(require("../codama/programs"));
|
|
49
|
+
const kit_1 = require("@solana/kit");
|
|
50
|
+
const PROGRAM_SETS = {
|
|
51
|
+
mainnet: {
|
|
52
|
+
SAGE_PROGRAM_ADDRESS: 'SAGE2HAwep459SNq61LHvjxPk4pLPEJLoMETef7f7EE',
|
|
53
|
+
PROFILE_FACTION_PROGRAM_ADDRESS: 'pFACSRuobDmvfMKq1bAzwj27t6d2GJhSCHb1VcfnRmq',
|
|
54
|
+
SAGE_GAME_ID: 'GAMEzqJehF8yAnKiTARUuhZMvLvkZVAsCVri5vSfemLr',
|
|
55
|
+
ATLAS_MINT: 'ATLASXmbPQxBUYbxPsV97usA3fPQYEqzQBUHgiFCUsXx',
|
|
56
|
+
RPC_URL: 'https://api.mainnet-beta.solana.com',
|
|
57
|
+
},
|
|
58
|
+
atlasnet: {
|
|
59
|
+
SAGE_PROGRAM_ADDRESS: 'SAgeTraQfBMdvGVDJYoEvjnbq5szW7RJPi6obDTDQUF',
|
|
60
|
+
PROFILE_FACTION_PROGRAM_ADDRESS: 'PprofUW1pURCnMW2si88GWPXEEK3Bvh9Tksy8WtnoYJ',
|
|
61
|
+
SAGE_GAME_ID: 'GAMEC7U7cqmFFaRow33j1LwuV8u4YhAS1mJ5Dqjnar2k',
|
|
62
|
+
ATLAS_MINT: 'ATLA5nAaVRfH6BNwD4SAyWp96EdQaAh6bBmGeTx956sx',
|
|
63
|
+
},
|
|
64
|
+
holosim: {
|
|
65
|
+
SAGE_PROGRAM_ADDRESS: 'SAgeTraQfBMdvGVDJYoEvjnbq5szW7RJPi6obDTDQUF',
|
|
66
|
+
PROFILE_FACTION_PROGRAM_ADDRESS: 'PprofUW1pURCnMW2si88GWPXEEK3Bvh9Tksy8WtnoYJ',
|
|
67
|
+
SAGE_GAME_ID: 'GAMEC7U7cqmFFaRow33j1LwuV8u4YhAS1mJ5Dqjnar2k',
|
|
68
|
+
ATLAS_MINT: 'ATLA5nAaVRfH6BNwD4SAyWp96EdQaAh6bBmGeTx956sx',
|
|
69
|
+
},
|
|
70
|
+
};
|
|
71
|
+
// Default program set when none is specified
|
|
72
|
+
const DEFAULT_PROGRAM_SET = 'atlasnet';
|
|
73
|
+
// Global configuration state
|
|
74
|
+
let globalConfig = {};
|
|
75
|
+
/**
|
|
76
|
+
* Resolve program addresses based on configuration
|
|
77
|
+
* @param config Effective configuration options
|
|
78
|
+
* @returns Resolved program addresses
|
|
79
|
+
*/
|
|
80
|
+
function resolveProgramAddresses(config) {
|
|
81
|
+
// Determine which program set to use
|
|
82
|
+
const programSet = config.programs || DEFAULT_PROGRAM_SET;
|
|
83
|
+
// Get program addresses from program sets
|
|
84
|
+
const programConfig = PROGRAM_SETS[programSet];
|
|
85
|
+
if (!programConfig) {
|
|
86
|
+
throw new Error(`Unknown program set: ${programSet}. Available: ${Object.keys(PROGRAM_SETS).join(', ')}`);
|
|
87
|
+
}
|
|
88
|
+
return {
|
|
89
|
+
srslyProgramAddress: config.srslyProgramAddress || 'SRSLY1fq9TJqCk1gNSE7VZL2bztvTn9wm4VR8u8jMKT',
|
|
90
|
+
sageProgramAddress: programConfig.SAGE_PROGRAM_ADDRESS, // Fixed - cannot be overridden
|
|
91
|
+
profileFactionProgramAddress: config.profileFactionProgramAddress || programConfig.PROFILE_FACTION_PROGRAM_ADDRESS,
|
|
92
|
+
gameId: config.gameId || programConfig.SAGE_GAME_ID,
|
|
93
|
+
atlasMint: config.atlasMint || programConfig.ATLAS_MINT,
|
|
94
|
+
rpcUrl: config.rpcUrl || programConfig.RPC_URL,
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Set global configuration options that will be used as defaults for all SDK operations
|
|
99
|
+
* @param config Configuration options to set globally
|
|
100
|
+
*
|
|
101
|
+
* @example
|
|
102
|
+
* ```typescript
|
|
103
|
+
* // Use default atlasnet program addresses
|
|
104
|
+
* setConfig({ programs: 'atlasnet' });
|
|
105
|
+
*
|
|
106
|
+
* // Use holosim program addresses
|
|
107
|
+
* setConfig({ programs: 'holosim' });
|
|
108
|
+
*
|
|
109
|
+
* // Use holosim program addresses with custom game ID
|
|
110
|
+
* setConfig({
|
|
111
|
+
* programs: 'holosim',
|
|
112
|
+
* gameId: 'custom-game-id...'
|
|
113
|
+
* });
|
|
114
|
+
*
|
|
115
|
+
* // Can still override per instruction
|
|
116
|
+
* await createContract(params).set({ srslyProgramAddress: 'custom...' });
|
|
117
|
+
* ```
|
|
118
|
+
*/
|
|
119
|
+
function setConfig(config) {
|
|
120
|
+
globalConfig = { ...config };
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Get the current global configuration
|
|
124
|
+
* @returns Current global configuration options
|
|
125
|
+
*/
|
|
126
|
+
function getConfig() {
|
|
127
|
+
return { ...globalConfig };
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Clear global configuration (resets to atlasnet program set defaults)
|
|
131
|
+
*/
|
|
132
|
+
function clearConfig() {
|
|
133
|
+
globalConfig = {};
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Get the effective configuration by merging global config with provided overrides
|
|
137
|
+
* @param overrides Optional configuration overrides
|
|
138
|
+
* @returns Merged configuration with global defaults and any overrides
|
|
139
|
+
*/
|
|
140
|
+
function getEffectiveConfig(overrides) {
|
|
141
|
+
return { ...globalConfig, ...overrides };
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Get the single codama module (network agnostic)
|
|
145
|
+
* @param modulePath The module type ('instructions' or 'programs')
|
|
146
|
+
* @returns The codama module
|
|
147
|
+
*/
|
|
148
|
+
function getModule(modulePath) {
|
|
149
|
+
return modulePath === 'instructions' ? instructions : programs;
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* @deprecated Use getModule instead. This function is kept for backward compatibility.
|
|
153
|
+
* Get codama modules (network agnostic)
|
|
154
|
+
*/
|
|
155
|
+
async function getCachedNetworkModule(modulePath) {
|
|
156
|
+
if (modulePath !== 'instructions' && modulePath !== 'programs') {
|
|
157
|
+
throw new Error(`Unsupported module path: ${modulePath}. Use 'instructions' or 'programs'.`);
|
|
158
|
+
}
|
|
159
|
+
return getModule(modulePath);
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* Create a chainable config selector with existing configuration state.
|
|
163
|
+
* This enables config chaining by merging new options with existing ones.
|
|
164
|
+
*
|
|
165
|
+
* Used internally when .set() is called on an existing ConfigSelector.
|
|
166
|
+
*
|
|
167
|
+
* @param executeFn - The function to execute with merged configuration
|
|
168
|
+
* @param existingConfig - The current configuration state to merge with
|
|
169
|
+
* @returns A ConfigSelector that can chain additional .set() calls
|
|
170
|
+
*
|
|
171
|
+
* @example
|
|
172
|
+
* // This creates a chainable selector that merges { programs: 'atlasnet' }
|
|
173
|
+
* // with any additional config options passed to subsequent .set() calls
|
|
174
|
+
* createChainableConfigSelector(executeFn, { programs: 'atlasnet' })
|
|
175
|
+
*/
|
|
176
|
+
function createChainableConfigSelector(executeFn, existingConfig) {
|
|
177
|
+
const selector = {
|
|
178
|
+
set: (additionalOptions) => createChainableConfigSelector(executeFn, { ...existingConfig, ...additionalOptions }),
|
|
179
|
+
build: () => executeFn(existingConfig),
|
|
180
|
+
pack: async (feePayer) => {
|
|
181
|
+
const instruction = await executeFn(existingConfig);
|
|
182
|
+
const effectiveConfig = getEffectiveConfig(existingConfig);
|
|
183
|
+
const resolvedAddresses = resolveProgramAddresses(effectiveConfig);
|
|
184
|
+
if (!resolvedAddresses.rpcUrl) {
|
|
185
|
+
const networkType = effectiveConfig.programs || 'unknown';
|
|
186
|
+
if (networkType === 'atlasnet' || networkType === 'holosim') {
|
|
187
|
+
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" })`);
|
|
188
|
+
}
|
|
189
|
+
throw new Error('RPC URL is required for creating transactions. Please set it via setConfig({ rpcUrl: "..." }) or provide it in .set({ rpcUrl: "..." })');
|
|
190
|
+
}
|
|
191
|
+
// Create RPC connection to get latest blockhash
|
|
192
|
+
const rpc = (0, kit_1.createSolanaRpc)(resolvedAddresses.rpcUrl);
|
|
193
|
+
const { value: latestBlockhash } = await rpc.getLatestBlockhash().send();
|
|
194
|
+
// Build unsigned transaction message
|
|
195
|
+
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));
|
|
196
|
+
// Compile to unsigned transaction
|
|
197
|
+
const unsignedTransaction = (0, kit_1.compileTransaction)(transactionMessage);
|
|
198
|
+
// Ensure messageBytes is a proper Uint8Array for web3.js compatibility
|
|
199
|
+
const messageBytes = unsignedTransaction.messageBytes instanceof Uint8Array
|
|
200
|
+
? unsignedTransaction.messageBytes
|
|
201
|
+
: new Uint8Array(unsignedTransaction.messageBytes);
|
|
202
|
+
// Return PackedTransaction with send() method
|
|
203
|
+
return {
|
|
204
|
+
messageBytes,
|
|
205
|
+
signatures: unsignedTransaction.signatures,
|
|
206
|
+
send: async (signer) => {
|
|
207
|
+
// Create RPC connections for sending
|
|
208
|
+
const sendRpc = (0, kit_1.createSolanaRpc)(resolvedAddresses.rpcUrl);
|
|
209
|
+
const rpcSubscriptions = (0, kit_1.createSolanaRpcSubscriptions)(resolvedAddresses.rpcUrl.replace('https:', 'wss:').replace('http:', 'ws:'));
|
|
210
|
+
// Build transaction message with signer
|
|
211
|
+
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));
|
|
212
|
+
// Sign transaction
|
|
213
|
+
const signedTransaction = await (0, kit_1.signTransactionMessageWithSigners)(signerTransactionMessage);
|
|
214
|
+
// Send and confirm transaction
|
|
215
|
+
const sendAndConfirmTransaction = (0, kit_1.sendAndConfirmTransactionFactory)({ rpc: sendRpc, rpcSubscriptions: rpcSubscriptions });
|
|
216
|
+
try {
|
|
217
|
+
await sendAndConfirmTransaction(signedTransaction, {
|
|
218
|
+
commitment: effectiveConfig.transactionOptions?.commitment || 'confirmed',
|
|
219
|
+
skipPreflight: effectiveConfig.transactionOptions?.skipPreflight || false
|
|
220
|
+
});
|
|
221
|
+
// Extract and return the signature
|
|
222
|
+
const signature = (0, kit_1.getSignatureFromTransaction)(signedTransaction);
|
|
223
|
+
return signature;
|
|
224
|
+
}
|
|
225
|
+
catch (error) {
|
|
226
|
+
throw new Error(`Transaction failed: ${error instanceof Error ? error.message : String(error)}`);
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
};
|
|
230
|
+
},
|
|
231
|
+
// Implement PromiseLike to allow direct awaiting
|
|
232
|
+
then(onfulfilled, onrejected) {
|
|
233
|
+
return executeFn(existingConfig).then(onfulfilled, onrejected);
|
|
234
|
+
}
|
|
235
|
+
};
|
|
236
|
+
return selector;
|
|
237
|
+
}
|
|
238
|
+
/**
|
|
239
|
+
* Create the initial fluent config selector for a function.
|
|
240
|
+
* This is the main entry point for the fluent configuration API.
|
|
241
|
+
*
|
|
242
|
+
* The returned selector can be:
|
|
243
|
+
* - Awaited directly (uses global config + atlasnet fallback)
|
|
244
|
+
* - Configured with .set() to override network/constants
|
|
245
|
+
* - Chained with multiple .set() calls
|
|
246
|
+
*
|
|
247
|
+
* @param executeFn - The function to execute with optional configuration
|
|
248
|
+
* @returns A ConfigSelector that supports fluent configuration
|
|
249
|
+
*
|
|
250
|
+
* @example
|
|
251
|
+
* // Usage patterns:
|
|
252
|
+
* setConfig({ programs: 'mainnet' });
|
|
253
|
+
* await createConfigSelector(executeFn) // Direct await (uses global config)
|
|
254
|
+
* await createConfigSelector(executeFn).set({...}) // Override global config
|
|
255
|
+
* await createConfigSelector(executeFn).set({...}).set({...}) // Chained configs
|
|
256
|
+
*/
|
|
257
|
+
function createConfigSelector(executeFn) {
|
|
258
|
+
const selector = {
|
|
259
|
+
set: (options) => createChainableConfigSelector(executeFn, getEffectiveConfig(options)),
|
|
260
|
+
build: () => executeFn(getEffectiveConfig()),
|
|
261
|
+
pack: async (feePayer) => {
|
|
262
|
+
const instruction = await executeFn(getEffectiveConfig());
|
|
263
|
+
const effectiveConfig = getEffectiveConfig();
|
|
264
|
+
const resolvedAddresses = resolveProgramAddresses(effectiveConfig);
|
|
265
|
+
if (!resolvedAddresses.rpcUrl) {
|
|
266
|
+
const networkType = effectiveConfig.programs || 'unknown';
|
|
267
|
+
if (networkType === 'atlasnet' || networkType === 'holosim') {
|
|
268
|
+
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" })`);
|
|
269
|
+
}
|
|
270
|
+
throw new Error('RPC URL is required for creating transactions. Please set it via setConfig({ rpcUrl: "..." }) or provide it in .set({ rpcUrl: "..." })');
|
|
271
|
+
}
|
|
272
|
+
// Create RPC connection to get latest blockhash
|
|
273
|
+
const rpc = (0, kit_1.createSolanaRpc)(resolvedAddresses.rpcUrl);
|
|
274
|
+
const { value: latestBlockhash } = await rpc.getLatestBlockhash().send();
|
|
275
|
+
// Build unsigned transaction message
|
|
276
|
+
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));
|
|
277
|
+
// Compile to unsigned transaction
|
|
278
|
+
const unsignedTransaction = (0, kit_1.compileTransaction)(transactionMessage);
|
|
279
|
+
// Ensure messageBytes is a proper Uint8Array for web3.js compatibility
|
|
280
|
+
const messageBytes = unsignedTransaction.messageBytes instanceof Uint8Array
|
|
281
|
+
? unsignedTransaction.messageBytes
|
|
282
|
+
: new Uint8Array(unsignedTransaction.messageBytes);
|
|
283
|
+
// Return PackedTransaction with send() method
|
|
284
|
+
return {
|
|
285
|
+
messageBytes,
|
|
286
|
+
signatures: unsignedTransaction.signatures,
|
|
287
|
+
send: async (signer) => {
|
|
288
|
+
// Create RPC connections for sending
|
|
289
|
+
const sendRpc = (0, kit_1.createSolanaRpc)(resolvedAddresses.rpcUrl);
|
|
290
|
+
const rpcSubscriptions = (0, kit_1.createSolanaRpcSubscriptions)(resolvedAddresses.rpcUrl.replace('https:', 'wss:').replace('http:', 'ws:'));
|
|
291
|
+
// Build transaction message with signer
|
|
292
|
+
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));
|
|
293
|
+
// Sign transaction
|
|
294
|
+
const signedTransaction = await (0, kit_1.signTransactionMessageWithSigners)(signerTransactionMessage);
|
|
295
|
+
// Send and confirm transaction
|
|
296
|
+
const sendAndConfirmTransaction = (0, kit_1.sendAndConfirmTransactionFactory)({ rpc: sendRpc, rpcSubscriptions: rpcSubscriptions });
|
|
297
|
+
try {
|
|
298
|
+
await sendAndConfirmTransaction(signedTransaction, {
|
|
299
|
+
commitment: effectiveConfig.transactionOptions?.commitment || 'confirmed',
|
|
300
|
+
skipPreflight: effectiveConfig.transactionOptions?.skipPreflight || false
|
|
301
|
+
});
|
|
302
|
+
// Extract and return the signature
|
|
303
|
+
const signature = (0, kit_1.getSignatureFromTransaction)(signedTransaction);
|
|
304
|
+
return signature;
|
|
305
|
+
}
|
|
306
|
+
catch (error) {
|
|
307
|
+
throw new Error(`Transaction failed: ${error instanceof Error ? error.message : String(error)}`);
|
|
308
|
+
}
|
|
309
|
+
}
|
|
310
|
+
};
|
|
311
|
+
},
|
|
312
|
+
// Implement PromiseLike to allow direct awaiting
|
|
313
|
+
then(onfulfilled, onrejected) {
|
|
314
|
+
return executeFn(getEffectiveConfig()).then(onfulfilled, onrejected);
|
|
315
|
+
}
|
|
316
|
+
};
|
|
317
|
+
return selector;
|
|
318
|
+
}
|
|
319
|
+
//# 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,19 +1,79 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.FACTION_MAPPING = exports.FACTION_SPECIFIC_CSS = exports.PaymentFrequency = exports.ATLAS_TO_STARDUST = exports.PROFILE_FACTION_SEED = exports.SAGE_PLAYER_PROFILE_SEED = exports.STARBASE_PLAYER_SEED = exports.STARBASE_SEED = void 0;
|
|
4
|
+
exports.toAddress = toAddress;
|
|
5
|
+
exports.getSrslyProgramAddress = getSrslyProgramAddress;
|
|
6
|
+
exports.getProgramId = getProgramId;
|
|
7
|
+
exports.getSageProgramAddress = getSageProgramAddress;
|
|
8
|
+
exports.getProfileFactionProgramAddress = getProfileFactionProgramAddress;
|
|
9
|
+
exports.getSageGameId = getSageGameId;
|
|
10
|
+
exports.getAtlasMint = getAtlasMint;
|
|
4
11
|
exports.paymentFrequencyToString = paymentFrequencyToString;
|
|
5
|
-
const
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
+
const config_1 = require("./config");
|
|
13
|
+
const kit_1 = require("@solana/kit");
|
|
14
|
+
/**
|
|
15
|
+
* Converts a string or Address to an Address type
|
|
16
|
+
* This utility ensures consistent address handling across the SDK
|
|
17
|
+
*/
|
|
18
|
+
function toAddress(value) {
|
|
19
|
+
return typeof value === 'string' ? (0, kit_1.address)(value) : value;
|
|
20
|
+
}
|
|
12
21
|
// Seed constants
|
|
13
22
|
exports.STARBASE_SEED = 'Starbase';
|
|
14
23
|
exports.STARBASE_PLAYER_SEED = 'starbase_player';
|
|
15
24
|
exports.SAGE_PLAYER_PROFILE_SEED = 'sage_player_profile';
|
|
16
25
|
exports.PROFILE_FACTION_SEED = 'profile_faction';
|
|
26
|
+
// Token conversion constants
|
|
27
|
+
exports.ATLAS_TO_STARDUST = 100_000_000; // 1 ATLAS = 100,000,000 stardust
|
|
28
|
+
// PaymentFrequency enum to match the Rust program
|
|
29
|
+
var PaymentFrequency;
|
|
30
|
+
(function (PaymentFrequency) {
|
|
31
|
+
PaymentFrequency[PaymentFrequency["Hourly"] = 0] = "Hourly";
|
|
32
|
+
PaymentFrequency[PaymentFrequency["Daily"] = 1] = "Daily";
|
|
33
|
+
PaymentFrequency[PaymentFrequency["DailyOld"] = 2] = "DailyOld";
|
|
34
|
+
PaymentFrequency[PaymentFrequency["Weekly"] = 3] = "Weekly";
|
|
35
|
+
PaymentFrequency[PaymentFrequency["Monthly"] = 4] = "Monthly";
|
|
36
|
+
// Development-only frequencies (not available on mainnet)
|
|
37
|
+
PaymentFrequency[PaymentFrequency["Decasecond"] = 5] = "Decasecond";
|
|
38
|
+
PaymentFrequency[PaymentFrequency["Minute"] = 6] = "Minute";
|
|
39
|
+
})(PaymentFrequency || (exports.PaymentFrequency = PaymentFrequency = {}));
|
|
40
|
+
// Network constants are now managed in config.ts
|
|
41
|
+
async function getSrslyProgramAddress(config) {
|
|
42
|
+
const globalConfig = (0, config_1.getConfig)();
|
|
43
|
+
const effectiveConfig = { ...globalConfig, ...config };
|
|
44
|
+
const resolved = (0, config_1.resolveProgramAddresses)(effectiveConfig);
|
|
45
|
+
return toAddress(resolved.srslyProgramAddress);
|
|
46
|
+
}
|
|
47
|
+
// Export async function to get program ID
|
|
48
|
+
async function getProgramId() {
|
|
49
|
+
return await getSrslyProgramAddress();
|
|
50
|
+
}
|
|
51
|
+
// Network-specific constants with configuration support
|
|
52
|
+
async function getSageProgramAddress(config) {
|
|
53
|
+
const globalConfig = (0, config_1.getConfig)();
|
|
54
|
+
const effectiveConfig = { ...globalConfig, ...config };
|
|
55
|
+
const resolved = (0, config_1.resolveProgramAddresses)(effectiveConfig);
|
|
56
|
+
// Note: SAGE program address is fixed based on network and cannot be overridden
|
|
57
|
+
return toAddress(resolved.sageProgramAddress);
|
|
58
|
+
}
|
|
59
|
+
async function getProfileFactionProgramAddress(config) {
|
|
60
|
+
const globalConfig = (0, config_1.getConfig)();
|
|
61
|
+
const effectiveConfig = { ...globalConfig, ...config };
|
|
62
|
+
const resolved = (0, config_1.resolveProgramAddresses)(effectiveConfig);
|
|
63
|
+
return toAddress(resolved.profileFactionProgramAddress);
|
|
64
|
+
}
|
|
65
|
+
async function getSageGameId(config) {
|
|
66
|
+
const globalConfig = (0, config_1.getConfig)();
|
|
67
|
+
const effectiveConfig = { ...globalConfig, ...config };
|
|
68
|
+
const resolved = (0, config_1.resolveProgramAddresses)(effectiveConfig);
|
|
69
|
+
return toAddress(resolved.gameId);
|
|
70
|
+
}
|
|
71
|
+
async function getAtlasMint(config) {
|
|
72
|
+
const globalConfig = (0, config_1.getConfig)();
|
|
73
|
+
const effectiveConfig = { ...globalConfig, ...config };
|
|
74
|
+
const resolved = (0, config_1.resolveProgramAddresses)(effectiveConfig);
|
|
75
|
+
return toAddress(resolved.atlasMint);
|
|
76
|
+
}
|
|
17
77
|
// Faction-specific CSS coordinates for starbase derivation
|
|
18
78
|
exports.FACTION_SPECIFIC_CSS = {
|
|
19
79
|
mud: { x: 0, y: -39 },
|
|
@@ -29,6 +89,6 @@ exports.FACTION_MAPPING = {
|
|
|
29
89
|
* Convert PaymentFrequency enum to string
|
|
30
90
|
*/
|
|
31
91
|
function paymentFrequencyToString(freq) {
|
|
32
|
-
return
|
|
92
|
+
return PaymentFrequency[freq].toLowerCase();
|
|
33
93
|
}
|
|
34
94
|
//# sourceMappingURL=constants.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/utils/constants.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/utils/constants.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/utils/index.js
CHANGED
|
@@ -16,4 +16,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./constants"), exports);
|
|
18
18
|
__exportStar(require("./profiles"), exports);
|
|
19
|
+
__exportStar(require("./config"), exports);
|
|
19
20
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8CAA4B;AAC5B,6CAA2B"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8CAA4B;AAC5B,6CAA2B;AAC3B,2CAAyB"}
|