@wuwei-labs/srsly 2.0.0-beta.46 → 2.0.0-beta.48
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/codama/instructions/cancelRental.js +13 -23
- package/dist/cjs/codama/instructions/cancelRental.js.map +1 -1
- package/dist/cjs/contract/close.js +106 -21
- package/dist/cjs/contract/close.js.map +1 -1
- package/dist/cjs/contract/create.js +59 -5
- package/dist/cjs/contract/create.js.map +1 -1
- package/dist/cjs/demos.js +65 -0
- package/dist/cjs/demos.js.map +1 -0
- package/dist/cjs/index.js +2 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/package.json +1 -1
- package/dist/cjs/rental/accept.js +31 -0
- package/dist/cjs/rental/accept.js.map +1 -1
- package/dist/cjs/rental/cancel.js +60 -9
- package/dist/cjs/rental/cancel.js.map +1 -1
- package/dist/cjs/rental/close.js +35 -23
- package/dist/cjs/rental/close.js.map +1 -1
- package/dist/cjs/rental/reset-contract-temp.js +4 -1
- package/dist/cjs/rental/reset-contract-temp.js.map +1 -1
- package/dist/cjs/rental/reset.js +131 -26
- package/dist/cjs/rental/reset.js.map +1 -1
- package/dist/cjs/utils/fetch-accounts.js +26 -0
- package/dist/cjs/utils/fetch-accounts.js.map +1 -1
- package/dist/cjs/utils/index.js +8 -0
- package/dist/cjs/utils/index.js.map +1 -1
- package/dist/cjs/utils/pda.js.map +1 -1
- package/dist/cjs/utils/sdk-helpers.js +122 -0
- package/dist/cjs/utils/sdk-helpers.js.map +1 -0
- package/dist/cjs/utils/signer.js +19 -1
- package/dist/cjs/utils/signer.js.map +1 -1
- package/dist/esm/codama/instructions/cancelRental.js +13 -23
- package/dist/esm/codama/instructions/cancelRental.js.map +1 -1
- package/dist/esm/contract/close.js +106 -22
- package/dist/esm/contract/close.js.map +1 -1
- package/dist/esm/contract/create.js +59 -6
- package/dist/esm/contract/create.js.map +1 -1
- package/dist/esm/demos.js +23 -0
- package/dist/esm/demos.js.map +1 -0
- package/dist/esm/index.js +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/package.json +1 -1
- package/dist/esm/rental/accept.js +30 -0
- package/dist/esm/rental/accept.js.map +1 -1
- package/dist/esm/rental/cancel.js +60 -10
- package/dist/esm/rental/cancel.js.map +1 -1
- package/dist/esm/rental/close.js +37 -26
- package/dist/esm/rental/close.js.map +1 -1
- package/dist/esm/rental/reset-contract-temp.js +4 -1
- package/dist/esm/rental/reset-contract-temp.js.map +1 -1
- package/dist/esm/rental/reset.js +131 -27
- package/dist/esm/rental/reset.js.map +1 -1
- package/dist/esm/utils/fetch-accounts.js +26 -1
- package/dist/esm/utils/fetch-accounts.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/pda.js.map +1 -1
- package/dist/esm/utils/sdk-helpers.js +113 -0
- package/dist/esm/utils/sdk-helpers.js.map +1 -0
- package/dist/esm/utils/signer.js +19 -1
- package/dist/esm/utils/signer.js.map +1 -1
- package/dist/types/codama/instructions/cancelRental.d.ts +2 -2
- package/dist/types/codama/instructions/cancelRental.d.ts.map +1 -1
- package/dist/types/contract/close.d.ts +17 -12
- package/dist/types/contract/close.d.ts.map +1 -1
- package/dist/types/contract/create.d.ts +8 -2
- package/dist/types/contract/create.d.ts.map +1 -1
- package/dist/types/demos.d.ts +58 -0
- package/dist/types/demos.d.ts.map +1 -0
- package/dist/types/index.d.ts +1 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/rental/accept.d.ts +6 -0
- package/dist/types/rental/accept.d.ts.map +1 -1
- package/dist/types/rental/cancel.d.ts +9 -3
- package/dist/types/rental/cancel.d.ts.map +1 -1
- package/dist/types/rental/close.d.ts +11 -5
- package/dist/types/rental/close.d.ts.map +1 -1
- package/dist/types/rental/reset-contract-temp.d.ts +1 -1
- package/dist/types/rental/reset-contract-temp.d.ts.map +1 -1
- package/dist/types/rental/reset.d.ts +35 -24
- package/dist/types/rental/reset.d.ts.map +1 -1
- package/dist/types/utils/fetch-accounts.d.ts +48 -1
- package/dist/types/utils/fetch-accounts.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/pda.d.ts.map +1 -1
- package/dist/types/utils/sdk-helpers.d.ts +49 -0
- package/dist/types/utils/sdk-helpers.d.ts.map +1 -0
- package/dist/types/utils/signer.d.ts.map +1 -1
- package/package.json +7 -1
- package/target/idl/srsly.json +1 -23
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reset.js","sourceRoot":"","sources":["../../../src/rental/reset.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"reset.js","sourceRoot":"","sources":["../../../src/rental/reset.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,12 +2,14 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.fetchContractState = fetchContractState;
|
|
4
4
|
exports.fetchRentalState = fetchRentalState;
|
|
5
|
+
exports.fetchConfigState = fetchConfigState;
|
|
5
6
|
exports.fetchMultipleContractStates = fetchMultipleContractStates;
|
|
6
7
|
exports.fetchMultipleRentalStates = fetchMultipleRentalStates;
|
|
7
8
|
const kit_1 = require("@solana/kit");
|
|
8
9
|
const accounts_1 = require("../codama/accounts");
|
|
9
10
|
const config_1 = require("./config");
|
|
10
11
|
const constants_1 = require("./constants");
|
|
12
|
+
const sdk_helpers_1 = require("./sdk-helpers");
|
|
11
13
|
// Implementation
|
|
12
14
|
async function fetchContractState(rpcUrlOrAddress, contractAddress) {
|
|
13
15
|
// If only one argument, it's the contract address using default RPC
|
|
@@ -40,6 +42,30 @@ async function fetchRentalState(rpcUrlOrAddress, rentalAddress) {
|
|
|
40
42
|
const rpc = (0, kit_1.createSolanaRpc)(rpcUrl);
|
|
41
43
|
return (0, accounts_1.fetchRentalState)(rpc, address);
|
|
42
44
|
}
|
|
45
|
+
// Implementation
|
|
46
|
+
async function fetchConfigState(rpcUrlOrAddress, configAddress) {
|
|
47
|
+
// If no arguments, derive config PDA automatically from global config
|
|
48
|
+
if (rpcUrlOrAddress === undefined) {
|
|
49
|
+
const config = (0, config_1.getConfig)();
|
|
50
|
+
const resolved = await (0, config_1.resolveProgramAddresses)(config);
|
|
51
|
+
const [configPda] = await (0, sdk_helpers_1.deriveConfigPda)(resolved.srslyProgramAddress);
|
|
52
|
+
const rpc = (0, kit_1.createSolanaRpc)(resolved.rpcUrl);
|
|
53
|
+
return (0, accounts_1.fetchMaybeConfig)(rpc, configPda);
|
|
54
|
+
}
|
|
55
|
+
// If only one argument, it's the config address using default RPC
|
|
56
|
+
if (configAddress === undefined) {
|
|
57
|
+
const address = (0, constants_1.toAddress)(rpcUrlOrAddress);
|
|
58
|
+
const config = (0, config_1.getConfig)();
|
|
59
|
+
const resolved = await (0, config_1.resolveProgramAddresses)(config);
|
|
60
|
+
const rpc = (0, kit_1.createSolanaRpc)(resolved.rpcUrl);
|
|
61
|
+
return (0, accounts_1.fetchMaybeConfig)(rpc, address);
|
|
62
|
+
}
|
|
63
|
+
// If two arguments, first is rpcUrl, second is address
|
|
64
|
+
const rpcUrl = rpcUrlOrAddress;
|
|
65
|
+
const address = (0, constants_1.toAddress)(configAddress);
|
|
66
|
+
const rpc = (0, kit_1.createSolanaRpc)(rpcUrl);
|
|
67
|
+
return (0, accounts_1.fetchMaybeConfig)(rpc, address);
|
|
68
|
+
}
|
|
43
69
|
/**
|
|
44
70
|
* Fetches multiple contract states in a single RPC call
|
|
45
71
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetch-accounts.js","sourceRoot":"","sources":["../../../src/utils/fetch-accounts.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"fetch-accounts.js","sourceRoot":"","sources":["../../../src/utils/fetch-accounts.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/utils/index.js
CHANGED
|
@@ -14,6 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.ErrorMessages = exports.deriveAllRentalPDAs = exports.fetchMultipleAccounts = exports.fetchAccountWithValidation = exports.deriveConfigPda = exports.createRpcFromConfig = void 0;
|
|
17
18
|
__exportStar(require("./constants"), exports);
|
|
18
19
|
__exportStar(require("./profiles"), exports);
|
|
19
20
|
__exportStar(require("./config"), exports);
|
|
@@ -23,4 +24,11 @@ __exportStar(require("./instruction-converter"), exports);
|
|
|
23
24
|
__exportStar(require("./fetch-accounts"), exports);
|
|
24
25
|
__exportStar(require("./pda"), exports);
|
|
25
26
|
__exportStar(require("./signer"), exports);
|
|
27
|
+
var sdk_helpers_1 = require("./sdk-helpers");
|
|
28
|
+
Object.defineProperty(exports, "createRpcFromConfig", { enumerable: true, get: function () { return sdk_helpers_1.createRpcFromConfig; } });
|
|
29
|
+
Object.defineProperty(exports, "deriveConfigPda", { enumerable: true, get: function () { return sdk_helpers_1.deriveConfigPda; } });
|
|
30
|
+
Object.defineProperty(exports, "fetchAccountWithValidation", { enumerable: true, get: function () { return sdk_helpers_1.fetchAccountWithValidation; } });
|
|
31
|
+
Object.defineProperty(exports, "fetchMultipleAccounts", { enumerable: true, get: function () { return sdk_helpers_1.fetchMultipleAccounts; } });
|
|
32
|
+
Object.defineProperty(exports, "deriveAllRentalPDAs", { enumerable: true, get: function () { return sdk_helpers_1.deriveAllRentalPDAs; } });
|
|
33
|
+
Object.defineProperty(exports, "ErrorMessages", { enumerable: true, get: function () { return sdk_helpers_1.ErrorMessages; } });
|
|
26
34
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,8CAA4B;AAC5B,6CAA2B;AAC3B,2CAAyB;AACzB,qDAAmC;AACnC,6CAA2B;AAC3B,0DAAwC;AACxC,mDAAiC;AACjC,wCAAsB;AACtB,2CAAyB;AACzB,6CAOuB;AANrB,kHAAA,mBAAmB,OAAA;AACnB,8GAAA,eAAe,OAAA;AACf,yHAAA,0BAA0B,OAAA;AAC1B,oHAAA,qBAAqB,OAAA;AACrB,kHAAA,mBAAmB,OAAA;AACnB,4GAAA,aAAa,OAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pda.js","sourceRoot":"","sources":["../../../src/utils/pda.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;GAmBG;;AA6BH,wCAuBC;AA4BD,gDAqBC;AA0BD,
|
|
1
|
+
{"version":3,"file":"pda.js","sourceRoot":"","sources":["../../../src/utils/pda.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ErrorMessages = void 0;
|
|
4
|
+
exports.createRpcFromConfig = createRpcFromConfig;
|
|
5
|
+
exports.deriveConfigPda = deriveConfigPda;
|
|
6
|
+
exports.fetchAccountWithValidation = fetchAccountWithValidation;
|
|
7
|
+
exports.fetchMultipleAccounts = fetchMultipleAccounts;
|
|
8
|
+
exports.toAddressString = toAddressString;
|
|
9
|
+
exports.deriveAllRentalPDAs = deriveAllRentalPDAs;
|
|
10
|
+
const kit_1 = require("@solana/kit");
|
|
11
|
+
const web3_js_1 = require("@solana/web3.js");
|
|
12
|
+
const kit_2 = require("@solana/kit");
|
|
13
|
+
/**
|
|
14
|
+
* SDK Helper utilities to reduce code duplication across instruction implementations
|
|
15
|
+
*/
|
|
16
|
+
/**
|
|
17
|
+
* Creates an RPC connection from resolved addresses, with validation
|
|
18
|
+
*/
|
|
19
|
+
function createRpcFromConfig(resolvedAddresses, operationName) {
|
|
20
|
+
if (!resolvedAddresses.rpcUrl) {
|
|
21
|
+
throw new Error(`rpcUrl is required for ${operationName} operation. Use setConfig({ rpcUrl: "https://..." })`);
|
|
22
|
+
}
|
|
23
|
+
return (0, kit_1.createSolanaRpc)(resolvedAddresses.rpcUrl);
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Derives the config PDA for the SRSLY program
|
|
27
|
+
*/
|
|
28
|
+
async function deriveConfigPda(programAddress) {
|
|
29
|
+
const programPubkey = typeof programAddress === 'string' ? programAddress : programAddress.toBase58();
|
|
30
|
+
const [pdaAddress, bump] = await (0, kit_2.getProgramDerivedAddress)({
|
|
31
|
+
programAddress: (0, kit_1.address)(programPubkey),
|
|
32
|
+
seeds: [(0, kit_2.getBytesEncoder)().encode(new Uint8Array([99, 111, 110, 102, 105, 103]))], // "config" bytes
|
|
33
|
+
});
|
|
34
|
+
return [pdaAddress, bump];
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Generic fetch function with validation and error handling
|
|
38
|
+
*/
|
|
39
|
+
async function fetchAccountWithValidation(fetchFn, rpc, accountAddress, accountType) {
|
|
40
|
+
const addressStr = typeof accountAddress === 'string' ? accountAddress : accountAddress.toBase58();
|
|
41
|
+
try {
|
|
42
|
+
const account = await fetchFn(rpc, (0, kit_1.address)(addressStr));
|
|
43
|
+
if (!account.exists) {
|
|
44
|
+
throw new Error(`${accountType} not found at address: ${addressStr}`);
|
|
45
|
+
}
|
|
46
|
+
return account;
|
|
47
|
+
}
|
|
48
|
+
catch (error) {
|
|
49
|
+
if (error instanceof Error && error.message.includes('not found')) {
|
|
50
|
+
throw error;
|
|
51
|
+
}
|
|
52
|
+
throw new Error(`Failed to fetch ${accountType}: ${error}`);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Batch fetch multiple accounts with proper error handling
|
|
57
|
+
*/
|
|
58
|
+
async function fetchMultipleAccounts(fetchOperations, rpc) {
|
|
59
|
+
const results = await Promise.all(fetchOperations.map(async ({ fetchFn, address: addr, accountType }) => {
|
|
60
|
+
const account = await fetchAccountWithValidation(fetchFn, rpc, addr, accountType);
|
|
61
|
+
return account;
|
|
62
|
+
}));
|
|
63
|
+
const accountMap = {};
|
|
64
|
+
fetchOperations.forEach((op, index) => {
|
|
65
|
+
accountMap[op.key] = results[index];
|
|
66
|
+
});
|
|
67
|
+
return accountMap;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Convert public key to address format used by the SDK
|
|
71
|
+
*/
|
|
72
|
+
function toAddressString(key) {
|
|
73
|
+
return typeof key === 'string' ? key : key.toBase58();
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Derive all rental-related PDAs in one call
|
|
77
|
+
*/
|
|
78
|
+
async function deriveAllRentalPDAs(contract, borrower, programAddress, antegenProgramAddress) {
|
|
79
|
+
const contractAddr = toAddressString(contract);
|
|
80
|
+
const borrowerAddr = toAddressString(borrower);
|
|
81
|
+
const programAddr = toAddressString(programAddress);
|
|
82
|
+
const antegenAddr = toAddressString(antegenProgramAddress);
|
|
83
|
+
// These would use your existing PDA derivation functions
|
|
84
|
+
const [rentalState, rentalStateBump] = await (0, kit_2.getProgramDerivedAddress)({
|
|
85
|
+
programAddress: (0, kit_1.address)(programAddr),
|
|
86
|
+
seeds: [
|
|
87
|
+
(0, kit_2.getBytesEncoder)().encode(new Uint8Array([114, 101, 110, 116, 97, 108, 95, 115, 116, 97, 116, 101])), // "rental_state"
|
|
88
|
+
(0, kit_2.getBytesEncoder)().encode(new web3_js_1.PublicKey(contractAddr).toBytes()),
|
|
89
|
+
(0, kit_2.getBytesEncoder)().encode(new web3_js_1.PublicKey(borrowerAddr).toBytes()),
|
|
90
|
+
],
|
|
91
|
+
});
|
|
92
|
+
const [rentalAuthority, rentalAuthorityBump] = await (0, kit_2.getProgramDerivedAddress)({
|
|
93
|
+
programAddress: (0, kit_1.address)(programAddr),
|
|
94
|
+
seeds: [
|
|
95
|
+
(0, kit_2.getBytesEncoder)().encode(new Uint8Array([114, 101, 110, 116, 97, 108, 95, 97, 117, 116, 104, 111, 114, 105, 116, 121])), // "rental_authority"
|
|
96
|
+
(0, kit_2.getBytesEncoder)().encode(new web3_js_1.PublicKey(contractAddr).toBytes()),
|
|
97
|
+
(0, kit_2.getBytesEncoder)().encode(new web3_js_1.PublicKey(borrowerAddr).toBytes()),
|
|
98
|
+
],
|
|
99
|
+
});
|
|
100
|
+
const [rentalThread, rentalThreadBump] = await (0, kit_2.getProgramDerivedAddress)({
|
|
101
|
+
programAddress: (0, kit_1.address)(antegenAddr),
|
|
102
|
+
seeds: [
|
|
103
|
+
(0, kit_2.getBytesEncoder)().encode(new Uint8Array([116, 104, 114, 101, 97, 100])), // "thread"
|
|
104
|
+
(0, kit_2.getBytesEncoder)().encode(new web3_js_1.PublicKey(rentalAuthority).toBytes()),
|
|
105
|
+
(0, kit_2.getBytesEncoder)().encode(new web3_js_1.PublicKey(rentalState).toBytes()),
|
|
106
|
+
],
|
|
107
|
+
});
|
|
108
|
+
return {
|
|
109
|
+
rentalState: [rentalState, rentalStateBump],
|
|
110
|
+
rentalAuthority: [rentalAuthority, rentalAuthorityBump],
|
|
111
|
+
rentalThread: [rentalThread, rentalThreadBump],
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Standard error messages for common scenarios
|
|
116
|
+
*/
|
|
117
|
+
exports.ErrorMessages = {
|
|
118
|
+
rpcRequired: (operation) => `rpcUrl is required for ${operation} operation. Use setConfig({ library: "kit", rpcUrl: "https://..." })`,
|
|
119
|
+
accountNotFound: (type, address) => `${type} not found at address: ${address}`,
|
|
120
|
+
fetchFailed: (type, error) => `Failed to fetch ${type}: ${error}`,
|
|
121
|
+
};
|
|
122
|
+
//# sourceMappingURL=sdk-helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sdk-helpers.js","sourceRoot":"","sources":["../../../src/utils/sdk-helpers.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/utils/signer.js
CHANGED
|
@@ -114,13 +114,31 @@ function validateSigner(signer) {
|
|
|
114
114
|
* ```
|
|
115
115
|
*/
|
|
116
116
|
function createTransactionSigner(signer) {
|
|
117
|
+
console.log('🔍 createTransactionSigner called with:', {
|
|
118
|
+
signer,
|
|
119
|
+
type: typeof signer,
|
|
120
|
+
isString: typeof signer === 'string',
|
|
121
|
+
value: signer
|
|
122
|
+
});
|
|
117
123
|
// Validate the signer first
|
|
118
124
|
validateSigner(signer);
|
|
119
125
|
// Handle string address case (browser usage)
|
|
120
126
|
if (typeof signer === 'string') {
|
|
121
|
-
|
|
127
|
+
console.log('🔍 Processing string signer:', signer);
|
|
128
|
+
try {
|
|
129
|
+
const addr = (0, kit_1.address)(signer);
|
|
130
|
+
console.log('🔍 address() result:', addr);
|
|
131
|
+
const noopSigner = (0, kit_1.createNoopSigner)(addr);
|
|
132
|
+
console.log('🔍 createNoopSigner result:', noopSigner);
|
|
133
|
+
return noopSigner;
|
|
134
|
+
}
|
|
135
|
+
catch (error) {
|
|
136
|
+
console.error('🚨 Error in createTransactionSigner string processing:', error);
|
|
137
|
+
throw error;
|
|
138
|
+
}
|
|
122
139
|
}
|
|
123
140
|
// Handle signer object cases (already validated TransactionSigner objects)
|
|
141
|
+
console.log('🔍 Processing object signer, returning as TransactionSigner');
|
|
124
142
|
return signer;
|
|
125
143
|
}
|
|
126
144
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signer.js","sourceRoot":"","sources":["../../../src/utils/signer.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;;AAqCH,wCAgEC;AAiCD,
|
|
1
|
+
{"version":3,"file":"signer.js","sourceRoot":"","sources":["../../../src/utils/signer.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;;AAqCH,wCAgEC;AAiCD,0DA6BC;AAKD,wCAEC;AAKD,0CAEC;AA/KD,qCAA2F;AAG3F;;GAEG;AACH,MAAa,kBAAmB,SAAQ,KAAK;IAC3C,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;IACnC,CAAC;CACF;AALD,gDAKC;AAkBD;;;;;GAKG;AACH,SAAgB,cAAc,CAAC,MAAe;IAC5C,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC/B,qDAAqD;QACrD,IAAI,CAAC;YACH,8EAA8E;YAC9E,IAAA,aAAO,EAAC,MAAM,CAAC,CAAC;YAChB,OAAO;QACT,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,kBAAkB,CAC1B,4BAA4B,MAAM,MAAM,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,0BAA0B,MAAM;gBACjH,sEAAsE;gBACtE,aAAa;gBACb,sDAAsD;gBACtD,mDAAmD,CACpD,CAAC;QACJ,CAAC;IACH,CAAC;IAED,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QACzC,MAAM,SAAS,GAAG,MAA6B,CAAC;QAEhD,gDAAgD;QAChD,IAAI,WAAW,IAAI,SAAS,EAAE,CAAC;YAC7B,MAAM,IAAI,kBAAkB,CAC1B,qDAAqD;gBACrD,gFAAgF;gBAChF,aAAa;gBACb,sCAAsC;gBACtC,+DAA+D,CAChE,CAAC;QACJ,CAAC;QAED,8CAA8C;QAC9C,IAAI,SAAS,IAAI,SAAS,IAAI,OAAO,SAAS,CAAC,gBAAgB,KAAK,UAAU,EAAE,CAAC;YAC/E,oEAAoE;YACpE,IAAI,SAAS,IAAI,SAAS,EAAE,CAAC;gBAC3B,IAAI,CAAC;oBACH,sDAAsD;oBACtD,IAAI,CAAC,IAAA,eAAS,EAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;wBAClC,MAAM,IAAI,kBAAkB,CAC1B,qFAAqF,CACtF,CAAC;oBACJ,CAAC;gBACH,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,MAAM,IAAI,kBAAkB,CAC1B,+CAA+C,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,0BAA0B,EAAE,CACrH,CAAC;gBACJ,CAAC;YACH,CAAC;YACD,OAAO;QACT,CAAC;QAED,+BAA+B;QAC/B,MAAM,IAAI,kBAAkB,CAC1B,oCAAoC;YACpC,6CAA6C;YAC7C,0DAA0D;YAC1D,kCAAkC,CACnC,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,kBAAkB,CAC1B,6DAA6D,CAC9D,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,SAAgB,uBAAuB,CAAC,MAAuB;IAC7D,OAAO,CAAC,GAAG,CAAC,yCAAyC,EAAE;QACrD,MAAM;QACN,IAAI,EAAE,OAAO,MAAM;QACnB,QAAQ,EAAE,OAAO,MAAM,KAAK,QAAQ;QACpC,KAAK,EAAE,MAAM;KACd,CAAC,CAAC;IAEH,4BAA4B;IAC5B,cAAc,CAAC,MAAM,CAAC,CAAC;IAEvB,6CAA6C;IAC7C,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC/B,OAAO,CAAC,GAAG,CAAC,8BAA8B,EAAE,MAAM,CAAC,CAAC;QACpD,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,IAAA,aAAO,EAAC,MAAM,CAAC,CAAC;YAC7B,OAAO,CAAC,GAAG,CAAC,sBAAsB,EAAE,IAAI,CAAC,CAAC;YAC1C,MAAM,UAAU,GAAG,IAAA,sBAAgB,EAAC,IAAI,CAAC,CAAC;YAC1C,OAAO,CAAC,GAAG,CAAC,6BAA6B,EAAE,UAAU,CAAC,CAAC;YACvD,OAAO,UAAU,CAAC;QACpB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,wDAAwD,EAAE,KAAK,CAAC,CAAC;YAC/E,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED,2EAA2E;IAC3E,OAAO,CAAC,GAAG,CAAC,6DAA6D,CAAC,CAAC;IAC3E,OAAO,MAA2B,CAAC;AACrC,CAAC;AAED;;GAEG;AACH,SAAgB,cAAc,CAAC,MAAuB;IACpD,OAAO,OAAO,MAAM,KAAK,QAAQ,CAAC;AACpC,CAAC;AAED;;GAEG;AACH,SAAgB,eAAe,CAAC,MAAuB;IACrD,OAAO,OAAO,MAAM,KAAK,QAAQ,CAAC;AACpC,CAAC"}
|
|
@@ -37,7 +37,7 @@ export async function getCancelRentalInstructionAsync(input, config) {
|
|
|
37
37
|
value: input.borrowerTokenAccount ?? null,
|
|
38
38
|
isWritable: true,
|
|
39
39
|
},
|
|
40
|
-
rentalThread: { value: input.rentalThread ?? null, isWritable:
|
|
40
|
+
rentalThread: { value: input.rentalThread ?? null, isWritable: true },
|
|
41
41
|
contract: { value: input.contract ?? null, isWritable: false },
|
|
42
42
|
rentalState: { value: input.rentalState ?? null, isWritable: true },
|
|
43
43
|
rentalTokenAccount: {
|
|
@@ -79,17 +79,6 @@ export async function getCancelRentalInstructionAsync(input, config) {
|
|
|
79
79
|
],
|
|
80
80
|
});
|
|
81
81
|
}
|
|
82
|
-
if (!accounts.rentalAuthority.value) {
|
|
83
|
-
accounts.rentalAuthority.value = await getProgramDerivedAddress({
|
|
84
|
-
programAddress,
|
|
85
|
-
seeds: [
|
|
86
|
-
getBytesEncoder().encode(new Uint8Array([
|
|
87
|
-
114, 101, 110, 116, 97, 108, 95, 97, 117, 116, 104, 111, 114, 105,
|
|
88
|
-
116, 121,
|
|
89
|
-
])),
|
|
90
|
-
],
|
|
91
|
-
});
|
|
92
|
-
}
|
|
93
82
|
if (!accounts.rentalState.value) {
|
|
94
83
|
accounts.rentalState.value = await getProgramDerivedAddress({
|
|
95
84
|
programAddress,
|
|
@@ -102,16 +91,6 @@ export async function getCancelRentalInstructionAsync(input, config) {
|
|
|
102
91
|
],
|
|
103
92
|
});
|
|
104
93
|
}
|
|
105
|
-
if (!accounts.rentalThread.value) {
|
|
106
|
-
accounts.rentalThread.value = await getProgramDerivedAddress({
|
|
107
|
-
programAddress,
|
|
108
|
-
seeds: [
|
|
109
|
-
getBytesEncoder().encode(new Uint8Array([116, 104, 114, 101, 97, 100])),
|
|
110
|
-
getAddressEncoder().encode(expectAddress(accounts.rentalAuthority.value)),
|
|
111
|
-
getAddressEncoder().encode(expectAddress(accounts.rentalState.value)),
|
|
112
|
-
],
|
|
113
|
-
});
|
|
114
|
-
}
|
|
115
94
|
if (!accounts.rentalTokenAccount.value) {
|
|
116
95
|
accounts.rentalTokenAccount.value = await getProgramDerivedAddress({
|
|
117
96
|
programAddress: 'ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL',
|
|
@@ -126,6 +105,17 @@ export async function getCancelRentalInstructionAsync(input, config) {
|
|
|
126
105
|
],
|
|
127
106
|
});
|
|
128
107
|
}
|
|
108
|
+
if (!accounts.rentalAuthority.value) {
|
|
109
|
+
accounts.rentalAuthority.value = await getProgramDerivedAddress({
|
|
110
|
+
programAddress,
|
|
111
|
+
seeds: [
|
|
112
|
+
getBytesEncoder().encode(new Uint8Array([
|
|
113
|
+
114, 101, 110, 116, 97, 108, 95, 97, 117, 116, 104, 111, 114, 105,
|
|
114
|
+
116, 121,
|
|
115
|
+
])),
|
|
116
|
+
],
|
|
117
|
+
});
|
|
118
|
+
}
|
|
129
119
|
if (!accounts.tokenProgram.value) {
|
|
130
120
|
accounts.tokenProgram.value =
|
|
131
121
|
'TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA';
|
|
@@ -171,7 +161,7 @@ export function getCancelRentalInstruction(input, config) {
|
|
|
171
161
|
value: input.borrowerTokenAccount ?? null,
|
|
172
162
|
isWritable: true,
|
|
173
163
|
},
|
|
174
|
-
rentalThread: { value: input.rentalThread ?? null, isWritable:
|
|
164
|
+
rentalThread: { value: input.rentalThread ?? null, isWritable: true },
|
|
175
165
|
contract: { value: input.contract ?? null, isWritable: false },
|
|
176
166
|
rentalState: { value: input.rentalState ?? null, isWritable: true },
|
|
177
167
|
rentalTokenAccount: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cancelRental.js","sourceRoot":"","sources":["../../../../src/codama/instructions/cancelRental.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EACL,YAAY,EACZ,cAAc,EACd,cAAc,EACd,iBAAiB,EACjB,eAAe,EACf,eAAe,EACf,wBAAwB,EACxB,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,GAejB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EACL,aAAa,EACb,qBAAqB,GAEtB,MAAM,WAAW,CAAC;AAEnB,MAAM,CAAC,MAAM,2BAA2B,GAAG,IAAI,UAAU,CAAC;IACxD,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;CAC/B,CAAC,CAAC;AAEH,MAAM,UAAU,iCAAiC;IAC/C,OAAO,cAAc,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAChD,2BAA2B,CAC5B,CAAC;AACJ,CAAC;AAwED,MAAM,UAAU,qCAAqC;IACnD,OAAO,gBAAgB,CACrB,gBAAgB,CAAC,CAAC,CAAC,eAAe,EAAE,cAAc,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAC3E,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,aAAa,EAAE,2BAA2B,EAAE,CAAC,CACtE,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,qCAAqC;IACnD,OAAO,gBAAgB,CAAC;QACtB,CAAC,eAAe,EAAE,cAAc,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC,CAAC;KACxD,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,mCAAmC;IAIjD,OAAO,YAAY,CACjB,qCAAqC,EAAE,EACvC,qCAAqC,EAAE,CACxC,CAAC;AACJ,CAAC;AA8BD,MAAM,CAAC,KAAK,UAAU,+BAA+B,CAenD,KAaC,EACD,MAA6C;IAkB7C,mBAAmB;IACnB,MAAM,cAAc,GAAG,MAAM,EAAE,cAAc,IAAI,qBAAqB,CAAC;IAEvE,qBAAqB;IACrB,MAAM,gBAAgB,GAAG;QACvB,QAAQ,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,QAAQ,IAAI,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE;QAC7D,MAAM,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,IAAI,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE;QAC1D,IAAI,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,IAAI,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE;QACtD,oBAAoB,EAAE;YACpB,KAAK,EAAE,KAAK,CAAC,oBAAoB,IAAI,IAAI;YACzC,UAAU,EAAE,IAAI;SACjB;QACD,YAAY,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,YAAY,IAAI,IAAI,EAAE,UAAU,EAAE,
|
|
1
|
+
{"version":3,"file":"cancelRental.js","sourceRoot":"","sources":["../../../../src/codama/instructions/cancelRental.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
|
-
import { getModule, createConfigSelector, resolveProgramAddresses } from '../utils/config';
|
|
1
|
+
import { getModule, createConfigSelector, resolveProgramAddresses, getConfig } from '../utils/config';
|
|
2
2
|
import { toAddress } from '../utils/constants';
|
|
3
3
|
import { deriveGameAccounts } from '../utils';
|
|
4
4
|
import { createFluentInstruction, createSmartFluentConfigSelector } from '../utils/instruction-converter';
|
|
5
|
+
import { fetchContractState } from '../utils/fetch-accounts';
|
|
6
|
+
import { createTransactionSigner } from '../utils/signer';
|
|
5
7
|
/**
|
|
6
8
|
* Asynchronously creates an instruction to close a rental contract with minimal required parameters.
|
|
7
9
|
* Derives rentalAuthority automatically and handles optional parameters.
|
|
@@ -9,17 +11,24 @@ import { createFluentInstruction, createSmartFluentConfigSelector } from '../uti
|
|
|
9
11
|
* @example
|
|
10
12
|
* ```typescript
|
|
11
13
|
* // Works with any library - just use strings for addresses!
|
|
14
|
+
* // Fleet will be automatically fetched from contract
|
|
12
15
|
* const instruction = await closeContract({
|
|
13
16
|
* owner: wallet, // Can be signer object or string
|
|
14
|
-
* fleet: "FleetAddress123...", // String address
|
|
15
17
|
* contract: "ContractAddr...", // String address
|
|
16
18
|
* faction: 'mud',
|
|
17
19
|
* });
|
|
18
20
|
*
|
|
21
|
+
* // Optionally provide fleet address to avoid fetching
|
|
22
|
+
* const instruction = await closeContract({
|
|
23
|
+
* owner: wallet,
|
|
24
|
+
* fleet: "FleetAddress123...", // Optional: will be fetched if omitted
|
|
25
|
+
* contract: "ContractAddr...",
|
|
26
|
+
* faction: 'mud',
|
|
27
|
+
* });
|
|
28
|
+
*
|
|
19
29
|
* // Use mainnet configuration
|
|
20
30
|
* const instruction = await closeContract({
|
|
21
31
|
* owner: wallet,
|
|
22
|
-
* fleet: "FleetAddress123...",
|
|
23
32
|
* contract: "ContractAddr...",
|
|
24
33
|
* faction: 'mud',
|
|
25
34
|
* }).set({ programs: 'mainnet' });
|
|
@@ -27,7 +36,6 @@ import { createFluentInstruction, createSmartFluentConfigSelector } from '../uti
|
|
|
27
36
|
* // Override specific constants
|
|
28
37
|
* const instruction = await closeContract({
|
|
29
38
|
* owner: wallet,
|
|
30
|
-
* fleet: "FleetAddress123...",
|
|
31
39
|
* contract: "ContractAddr...",
|
|
32
40
|
* faction: 'mud',
|
|
33
41
|
* }).set({
|
|
@@ -58,29 +66,96 @@ import { createFluentInstruction, createSmartFluentConfigSelector } from '../uti
|
|
|
58
66
|
* @throws Error when account derivation fails or required parameters are missing
|
|
59
67
|
*/
|
|
60
68
|
async function _closeContract(params, config) {
|
|
69
|
+
console.log('🔒 Starting closeContract with params:', {
|
|
70
|
+
hasOwner: !!params.owner,
|
|
71
|
+
hasFleet: !!params.fleet,
|
|
72
|
+
contract: params.contract,
|
|
73
|
+
faction: params.faction
|
|
74
|
+
});
|
|
61
75
|
const { owner, fleet, contract, faction, } = params;
|
|
62
76
|
// Get the resolved addresses from config (including network-specific addresses)
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
const
|
|
66
|
-
const
|
|
77
|
+
// Use global config as fallback, same pattern as acceptRental
|
|
78
|
+
const globalConfig = getConfig();
|
|
79
|
+
const effectiveConfig = { ...globalConfig, ...config };
|
|
80
|
+
const resolvedAddresses = await resolveProgramAddresses(effectiveConfig);
|
|
81
|
+
// Handle owner using smart signer handler for universal compatibility
|
|
82
|
+
const ownerSigner = createTransactionSigner(owner);
|
|
83
|
+
console.log('✅ Owner processed with createTransactionSigner:', ownerSigner.address);
|
|
84
|
+
// Validate contract address before fetching
|
|
85
|
+
if (typeof contract === 'string' && (contract.includes('CONTRACT_ADDRESS') || contract.length < 32)) {
|
|
86
|
+
throw new Error(`Invalid contract address: "${contract}". Please provide a valid Solana address (32-44 characters).`);
|
|
87
|
+
}
|
|
88
|
+
// Fetch fleet from contract if not provided
|
|
89
|
+
let fleetAddress;
|
|
90
|
+
if (fleet) {
|
|
91
|
+
console.log('🚢 Using provided fleet address:', fleet);
|
|
92
|
+
// Validate provided fleet address
|
|
93
|
+
if (typeof fleet === 'string' && (fleet.includes('FLEET_ADDRESS') || fleet.length < 32)) {
|
|
94
|
+
throw new Error(`Invalid fleet address: "${fleet}". Please provide a valid Solana address (32-44 characters).`);
|
|
95
|
+
}
|
|
96
|
+
fleetAddress = fleet;
|
|
97
|
+
}
|
|
98
|
+
else {
|
|
99
|
+
console.log('🔍 Fetching fleet from contract state...');
|
|
100
|
+
try {
|
|
101
|
+
const contractState = await fetchContractState(toAddress(contract));
|
|
102
|
+
fleetAddress = contractState.data.fleet;
|
|
103
|
+
console.log('✅ Contract state fetched:', {
|
|
104
|
+
fleet: fleetAddress,
|
|
105
|
+
owner: contractState.data.owner,
|
|
106
|
+
rate: contractState.data.rate?.toString(),
|
|
107
|
+
toClose: contractState.data.toClose,
|
|
108
|
+
currentRentalState: contractState.data.currentRentalState
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
catch (error) {
|
|
112
|
+
console.error('❌ Failed to fetch contract state:', error);
|
|
113
|
+
throw new Error(`Failed to fetch contract state for fleet derivation: ${error}`);
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
console.log('🎮 Deriving game accounts...');
|
|
117
|
+
console.log('🎯 Derivation inputs:', {
|
|
118
|
+
ownerAddress: ownerSigner.address,
|
|
119
|
+
faction,
|
|
120
|
+
gameId: resolvedAddresses.gameId,
|
|
121
|
+
starbaseSeqId: 0
|
|
122
|
+
});
|
|
123
|
+
const derivedAccounts = await deriveGameAccounts(ownerSigner.address, faction, resolvedAddresses.gameId, 0, // starbaseSeqId
|
|
67
124
|
config);
|
|
125
|
+
console.log('✅ Game accounts derived:', {
|
|
126
|
+
starbase: derivedAccounts.starbase,
|
|
127
|
+
starbasePlayer: derivedAccounts.starbasePlayer,
|
|
128
|
+
profileFaction: derivedAccounts.profileFaction
|
|
129
|
+
});
|
|
68
130
|
// Get network-specific codama functions from centralized config
|
|
69
131
|
const instructionsModule = getModule('instructions');
|
|
70
|
-
const programsModule = getModule('programs');
|
|
71
132
|
const { getCloseContractInstructionAsync } = instructionsModule;
|
|
72
|
-
const { SRSLY_PROGRAM_ADDRESS } = programsModule;
|
|
73
133
|
// Let codama handle all the account derivation and instruction building
|
|
74
134
|
const input = {
|
|
75
|
-
owner, // Pass
|
|
76
|
-
fleet: toAddress(
|
|
135
|
+
owner: ownerSigner, // Pass TransactionSigner for proper handling
|
|
136
|
+
fleet: toAddress(fleetAddress), // Convert fleet to Address
|
|
77
137
|
contract: toAddress(contract), // Convert contract to Address
|
|
78
138
|
starbase: toAddress(derivedAccounts.starbase), // Convert starbase to Address
|
|
79
139
|
starbasePlayer: toAddress(derivedAccounts.starbasePlayer), // Convert starbasePlayer to Address
|
|
80
140
|
gameId: resolvedAddresses.gameId, // Already Address from resolved config or param override
|
|
81
141
|
sageProgram: resolvedAddresses.sageProgramAddress, // Already Address from resolveProgramAddresses
|
|
82
142
|
};
|
|
83
|
-
|
|
143
|
+
console.log('🏗️ Creating instruction with input:', {
|
|
144
|
+
ownerAddress: input.owner.address,
|
|
145
|
+
fleet: input.fleet,
|
|
146
|
+
contract: input.contract,
|
|
147
|
+
starbase: input.starbase,
|
|
148
|
+
starbasePlayer: input.starbasePlayer,
|
|
149
|
+
gameId: input.gameId,
|
|
150
|
+
sageProgram: input.sageProgram,
|
|
151
|
+
programAddress: resolvedAddresses.srslyProgramAddress
|
|
152
|
+
});
|
|
153
|
+
const rawInstruction = await getCloseContractInstructionAsync(input, { programAddress: resolvedAddresses.srslyProgramAddress });
|
|
154
|
+
console.log('✅ Raw instruction created:', {
|
|
155
|
+
programAddress: rawInstruction.programAddress,
|
|
156
|
+
accountCount: rawInstruction.accounts?.length || 0,
|
|
157
|
+
hasData: !!rawInstruction.data
|
|
158
|
+
});
|
|
84
159
|
return createFluentInstruction(rawInstruction);
|
|
85
160
|
}
|
|
86
161
|
/**
|
|
@@ -100,11 +175,12 @@ async function _closeContract(params, config) {
|
|
|
100
175
|
*
|
|
101
176
|
* ## Process
|
|
102
177
|
*
|
|
103
|
-
* 1. **
|
|
104
|
-
* 2. **
|
|
105
|
-
* 3. **
|
|
106
|
-
* 4. **
|
|
107
|
-
* 5. **
|
|
178
|
+
* 1. **Fetch Fleet**: Automatically fetches fleet address from contract if not provided
|
|
179
|
+
* 2. **Derive Accounts**: Automatically derives required game accounts (starbase, etc.)
|
|
180
|
+
* 3. **Validate Authority**: Ensures only the contract owner can close it
|
|
181
|
+
* 4. **Check State**: Verifies no active rentals exist
|
|
182
|
+
* 5. **Close Contract**: Removes rental capability and closes account
|
|
183
|
+
* 6. **Transfer Lamports**: Returns remaining SOL to the owner
|
|
108
184
|
*
|
|
109
185
|
* ## Requirements
|
|
110
186
|
*
|
|
@@ -116,10 +192,9 @@ async function _closeContract(params, config) {
|
|
|
116
192
|
* ```typescript
|
|
117
193
|
* import { closeContract } from '@srsly/sdk';
|
|
118
194
|
*
|
|
119
|
-
* // Basic contract closure
|
|
195
|
+
* // Basic contract closure (fleet automatically fetched)
|
|
120
196
|
* const instruction = await closeContract({
|
|
121
197
|
* owner: wallet, // Contract owner
|
|
122
|
-
* fleet: "FleetAddress123...", // Fleet address
|
|
123
198
|
* contract: "ContractAddr...", // Contract to close
|
|
124
199
|
* faction: 'mud' // Faction for game account derivation
|
|
125
200
|
* });
|
|
@@ -127,7 +202,6 @@ async function _closeContract(params, config) {
|
|
|
127
202
|
* // Configure for mainnet
|
|
128
203
|
* const mainnetInstruction = await closeContract({
|
|
129
204
|
* owner: wallet,
|
|
130
|
-
* fleet: "FleetAddress123...",
|
|
131
205
|
* contract: "ContractAddr...",
|
|
132
206
|
* faction: 'mud'
|
|
133
207
|
* }).set({ programs: 'mainnet' });
|
|
@@ -135,7 +209,6 @@ async function _closeContract(params, config) {
|
|
|
135
209
|
* // Override specific game configuration
|
|
136
210
|
* const customInstruction = await closeContract({
|
|
137
211
|
* owner: wallet,
|
|
138
|
-
* fleet: "FleetAddress123...",
|
|
139
212
|
* contract: "ContractAddr...",
|
|
140
213
|
* faction: 'mud'
|
|
141
214
|
* }).set({
|
|
@@ -163,4 +236,15 @@ export function getCloseContractInstructionAsync(input, options) {
|
|
|
163
236
|
return instructionsModule.getCloseContractInstructionAsync(input, options);
|
|
164
237
|
});
|
|
165
238
|
}
|
|
239
|
+
// Demo export for documentation site
|
|
240
|
+
export const closeContractDemo = {
|
|
241
|
+
tabName: "close",
|
|
242
|
+
description: "Close an existing rental contract",
|
|
243
|
+
imports: `import { closeContract } from '@wuwei-labs/srsly';`,
|
|
244
|
+
instruction: `const instruction = await closeContract({
|
|
245
|
+
owner: (signer || wallet).publicKey?.toBase58(),
|
|
246
|
+
contract: "CONTRACT_ADDRESS",
|
|
247
|
+
faction: "oni" // or 'mud', 'ustur'
|
|
248
|
+
});`
|
|
249
|
+
};
|
|
166
250
|
//# sourceMappingURL=close.js.map
|