@sly-rentals/core 5.4.0 → 5.5.0
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/api.json +13092 -9148
- package/dist/cjs/audit/events-registry.js +3 -0
- package/dist/cjs/audit/events-registry.js.map +1 -1
- package/dist/cjs/audit/events.js +41 -0
- package/dist/cjs/audit/events.js.map +1 -1
- package/dist/cjs/doctor/contract.js +297 -0
- package/dist/cjs/doctor/contract.js.map +1 -0
- package/dist/cjs/doctor/contract.test.js +143 -0
- package/dist/cjs/doctor/contract.test.js.map +1 -0
- package/dist/cjs/doctor/index.js +18 -0
- package/dist/cjs/doctor/index.js.map +1 -0
- package/dist/cjs/generated/codama/errors/srsly.js +10 -1
- package/dist/cjs/generated/codama/errors/srsly.js.map +1 -1
- package/dist/cjs/generated/codama/instructions/closeContract.js +6 -1
- package/dist/cjs/generated/codama/instructions/closeContract.js.map +1 -1
- package/dist/cjs/generated/codama/instructions/contractDoctorFiber.js +202 -0
- package/dist/cjs/generated/codama/instructions/contractDoctorFiber.js.map +1 -0
- package/dist/cjs/generated/codama/instructions/index.js +1 -0
- package/dist/cjs/generated/codama/instructions/index.js.map +1 -1
- package/dist/cjs/generated/codama/instructions/processContract.js.map +1 -1
- package/dist/cjs/generated/codama/programs/srsly.js +23 -19
- package/dist/cjs/generated/codama/programs/srsly.js.map +1 -1
- package/dist/cjs/generated/codama/types/contractFiberDoctored.js +31 -0
- package/dist/cjs/generated/codama/types/contractFiberDoctored.js.map +1 -0
- package/dist/cjs/generated/codama/types/index.js +3 -0
- package/dist/cjs/generated/codama/types/index.js.map +1 -1
- package/dist/cjs/generated/codama/types/reservationForceClosed.js +37 -0
- package/dist/cjs/generated/codama/types/reservationForceClosed.js.map +1 -0
- package/dist/cjs/generated/codama/types/serializableAccountMeta.js +31 -0
- package/dist/cjs/generated/codama/types/serializableAccountMeta.js.map +1 -0
- package/dist/cjs/idl/srsly.json +301 -2
- package/dist/cjs/instructions/closeContract.js +56 -12
- package/dist/cjs/instructions/closeContract.js.map +1 -1
- package/dist/cjs/instructions/closeContract.test.js +117 -0
- package/dist/cjs/instructions/closeContract.test.js.map +1 -0
- package/dist/cjs/instructions/closeRental.js +7 -4
- package/dist/cjs/instructions/closeRental.js.map +1 -1
- package/dist/cjs/instructions/contractDoctorFiber.js +75 -0
- package/dist/cjs/instructions/contractDoctorFiber.js.map +1 -0
- package/dist/cjs/instructions/index.js +3 -1
- package/dist/cjs/instructions/index.js.map +1 -1
- package/dist/cjs/kit/index.js +1 -0
- package/dist/cjs/kit/index.js.map +1 -1
- package/dist/cjs/legacy/index.js +3 -1
- package/dist/cjs/legacy/index.js.map +1 -1
- package/dist/cjs/package.json +1 -1
- package/dist/cjs/utils/config.js +48 -11
- package/dist/cjs/utils/config.js.map +1 -1
- package/dist/cjs/utils/config.test.js +86 -0
- package/dist/cjs/utils/config.test.js.map +1 -0
- package/dist/cjs/version.js +1 -1
- package/dist/esm/audit/events-registry.js +3 -0
- package/dist/esm/audit/events-registry.js.map +1 -1
- package/dist/esm/audit/events.js +41 -0
- package/dist/esm/audit/events.js.map +1 -1
- package/dist/esm/doctor/contract.js +292 -0
- package/dist/esm/doctor/contract.js.map +1 -0
- package/dist/esm/doctor/contract.test.js +141 -0
- package/dist/esm/doctor/contract.test.js.map +1 -0
- package/dist/esm/doctor/index.js +12 -0
- package/dist/esm/doctor/index.js.map +1 -0
- package/dist/esm/generated/codama/errors/srsly.js +9 -0
- package/dist/esm/generated/codama/errors/srsly.js.map +1 -1
- package/dist/esm/generated/codama/instructions/closeContract.js +6 -1
- package/dist/esm/generated/codama/instructions/closeContract.js.map +1 -1
- package/dist/esm/generated/codama/instructions/contractDoctorFiber.js +192 -0
- package/dist/esm/generated/codama/instructions/contractDoctorFiber.js.map +1 -0
- package/dist/esm/generated/codama/instructions/index.js +1 -0
- package/dist/esm/generated/codama/instructions/index.js.map +1 -1
- package/dist/esm/generated/codama/instructions/processContract.js.map +1 -1
- package/dist/esm/generated/codama/programs/srsly.js +23 -19
- package/dist/esm/generated/codama/programs/srsly.js.map +1 -1
- package/dist/esm/generated/codama/types/contractFiberDoctored.js +26 -0
- package/dist/esm/generated/codama/types/contractFiberDoctored.js.map +1 -0
- package/dist/esm/generated/codama/types/index.js +3 -0
- package/dist/esm/generated/codama/types/index.js.map +1 -1
- package/dist/esm/generated/codama/types/reservationForceClosed.js +32 -0
- package/dist/esm/generated/codama/types/reservationForceClosed.js.map +1 -0
- package/dist/esm/generated/codama/types/serializableAccountMeta.js +26 -0
- package/dist/esm/generated/codama/types/serializableAccountMeta.js.map +1 -0
- package/dist/esm/idl/srsly.json +301 -2
- package/dist/esm/instructions/closeContract.js +57 -13
- package/dist/esm/instructions/closeContract.js.map +1 -1
- package/dist/esm/instructions/closeContract.test.js +115 -0
- package/dist/esm/instructions/closeContract.test.js.map +1 -0
- package/dist/esm/instructions/closeRental.js +7 -4
- package/dist/esm/instructions/closeRental.js.map +1 -1
- package/dist/esm/instructions/contractDoctorFiber.js +72 -0
- package/dist/esm/instructions/contractDoctorFiber.js.map +1 -0
- package/dist/esm/instructions/index.js +1 -0
- package/dist/esm/instructions/index.js.map +1 -1
- package/dist/esm/kit/index.js +1 -0
- package/dist/esm/kit/index.js.map +1 -1
- package/dist/esm/legacy/index.js +2 -0
- package/dist/esm/legacy/index.js.map +1 -1
- package/dist/esm/package.json +1 -1
- package/dist/esm/utils/config.js +49 -12
- package/dist/esm/utils/config.js.map +1 -1
- package/dist/esm/utils/config.test.js +84 -0
- package/dist/esm/utils/config.test.js.map +1 -0
- package/dist/esm/version.js +1 -1
- package/dist/idl/srsly.json +301 -2
- package/dist/types/audit/events-registry.d.ts +1 -1
- package/dist/types/audit/events-registry.d.ts.map +1 -1
- package/dist/types/audit/events.d.ts.map +1 -1
- package/dist/types/audit/index.d.ts +1 -1
- package/dist/types/audit/index.d.ts.map +1 -1
- package/dist/types/audit/types.d.ts +46 -1
- package/dist/types/audit/types.d.ts.map +1 -1
- package/dist/types/doctor/contract.d.ts +133 -0
- package/dist/types/doctor/contract.d.ts.map +1 -0
- package/dist/types/doctor/contract.test.d.ts +2 -0
- package/dist/types/doctor/contract.test.d.ts.map +1 -0
- package/dist/types/doctor/index.d.ts +12 -0
- package/dist/types/doctor/index.d.ts.map +1 -0
- package/dist/types/generated/codama/errors/srsly.d.ts +6 -1
- package/dist/types/generated/codama/errors/srsly.d.ts.map +1 -1
- package/dist/types/generated/codama/instructions/closeContract.d.ts +34 -12
- package/dist/types/generated/codama/instructions/closeContract.d.ts.map +1 -1
- package/dist/types/generated/codama/instructions/contractDoctorFiber.d.ts +154 -0
- package/dist/types/generated/codama/instructions/contractDoctorFiber.d.ts.map +1 -0
- package/dist/types/generated/codama/instructions/index.d.ts +1 -0
- package/dist/types/generated/codama/instructions/index.d.ts.map +1 -1
- package/dist/types/generated/codama/instructions/processContract.d.ts +15 -3
- package/dist/types/generated/codama/instructions/processContract.d.ts.map +1 -1
- package/dist/types/generated/codama/programs/srsly.d.ts +23 -20
- package/dist/types/generated/codama/programs/srsly.d.ts.map +1 -1
- package/dist/types/generated/codama/types/contractFiberDoctored.d.ts +22 -0
- package/dist/types/generated/codama/types/contractFiberDoctored.d.ts.map +1 -0
- package/dist/types/generated/codama/types/index.d.ts +3 -0
- package/dist/types/generated/codama/types/index.d.ts.map +1 -1
- package/dist/types/generated/codama/types/reservationForceClosed.d.ts +36 -0
- package/dist/types/generated/codama/types/reservationForceClosed.d.ts.map +1 -0
- package/dist/types/generated/codama/types/serializableAccountMeta.d.ts +19 -0
- package/dist/types/generated/codama/types/serializableAccountMeta.d.ts.map +1 -0
- package/dist/types/instructions/closeContract.d.ts +13 -3
- package/dist/types/instructions/closeContract.d.ts.map +1 -1
- package/dist/types/instructions/closeContract.test.d.ts +2 -0
- package/dist/types/instructions/closeContract.test.d.ts.map +1 -0
- package/dist/types/instructions/closeRental.d.ts +11 -0
- package/dist/types/instructions/closeRental.d.ts.map +1 -1
- package/dist/types/instructions/contractDoctorFiber.d.ts +87 -0
- package/dist/types/instructions/contractDoctorFiber.d.ts.map +1 -0
- package/dist/types/instructions/index.d.ts +1 -0
- package/dist/types/instructions/index.d.ts.map +1 -1
- package/dist/types/kit/index.d.ts +1 -0
- package/dist/types/kit/index.d.ts.map +1 -1
- package/dist/types/legacy/index.d.ts +2 -0
- package/dist/types/legacy/index.d.ts.map +1 -1
- package/dist/types/utils/config.d.ts +5 -0
- package/dist/types/utils/config.d.ts.map +1 -1
- package/dist/types/utils/config.test.d.ts +2 -0
- package/dist/types/utils/config.test.d.ts.map +1 -0
- package/dist/types/version.d.ts +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const vitest_1 = require("vitest");
|
|
4
|
+
vitest_1.vi.mock('../utils/contractSnapshot', () => ({
|
|
5
|
+
resolveContractSnapshot: vitest_1.vi.fn(),
|
|
6
|
+
}));
|
|
7
|
+
vitest_1.vi.mock('./closeRental', () => ({
|
|
8
|
+
closeRental: vitest_1.vi.fn(),
|
|
9
|
+
}));
|
|
10
|
+
vitest_1.vi.mock('../accounts/thread', () => ({
|
|
11
|
+
fetchThreadByAddress: vitest_1.vi.fn(),
|
|
12
|
+
}));
|
|
13
|
+
const contractSnapshot_1 = require("../utils/contractSnapshot");
|
|
14
|
+
const closeRental_1 = require("./closeRental");
|
|
15
|
+
const thread_1 = require("../accounts/thread");
|
|
16
|
+
const closeContract_1 = require("./closeContract");
|
|
17
|
+
const closeContract_2 = require("../generated/codama/instructions/closeContract");
|
|
18
|
+
const closeContractThread_1 = require("../generated/codama/instructions/closeContractThread");
|
|
19
|
+
const SYSTEM = '11111111111111111111111111111111';
|
|
20
|
+
const CONTRACT_ADDR = 'EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v';
|
|
21
|
+
const ACTIVE_ADDR = 'So11111111111111111111111111111111111111112';
|
|
22
|
+
const QUEUED_ADDR = 'TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA';
|
|
23
|
+
const OWNER_ADDR = 'BPFLoader2111111111111111111111111111111111';
|
|
24
|
+
const MINT_ADDR = 'ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL';
|
|
25
|
+
const THREAD_ADDR = 'Sysvar1nstructions1111111111111111111111111';
|
|
26
|
+
const OWNER_SIGNER = {
|
|
27
|
+
address: OWNER_ADDR,
|
|
28
|
+
signTransactionMessage: vitest_1.vi.fn(),
|
|
29
|
+
};
|
|
30
|
+
const makeConfig = () => ({ atlasMint: MINT_ADDR, slyvault: MINT_ADDR });
|
|
31
|
+
const makeContract = (overrides = {}) => ({
|
|
32
|
+
owner: OWNER_ADDR,
|
|
33
|
+
fleet: MINT_ADDR,
|
|
34
|
+
gameId: MINT_ADDR,
|
|
35
|
+
activeRental: SYSTEM,
|
|
36
|
+
queuedRental: SYSTEM,
|
|
37
|
+
thread: SYSTEM,
|
|
38
|
+
managedTokenAccount: MINT_ADDR,
|
|
39
|
+
...overrides,
|
|
40
|
+
});
|
|
41
|
+
const makeRental = (overrides = {}) => ({
|
|
42
|
+
borrower: OWNER_ADDR,
|
|
43
|
+
borrowerProfile: MINT_ADDR,
|
|
44
|
+
endTime: 0n,
|
|
45
|
+
...overrides,
|
|
46
|
+
});
|
|
47
|
+
/** An expired active rental plus a queued reservation — the tricky branch. */
|
|
48
|
+
function mockExpiredActiveWithQueued(thread) {
|
|
49
|
+
vitest_1.vi.mocked(contractSnapshot_1.resolveContractSnapshot).mockResolvedValue({
|
|
50
|
+
config: { data: makeConfig(), address: 'CFG' },
|
|
51
|
+
contract: {
|
|
52
|
+
data: makeContract({
|
|
53
|
+
activeRental: ACTIVE_ADDR,
|
|
54
|
+
queuedRental: QUEUED_ADDR,
|
|
55
|
+
thread,
|
|
56
|
+
}),
|
|
57
|
+
address: CONTRACT_ADDR,
|
|
58
|
+
},
|
|
59
|
+
// endTime in the past — Date.now() is far beyond the epoch.
|
|
60
|
+
activeRental: { data: makeRental({ endTime: 1n }), address: ACTIVE_ADDR },
|
|
61
|
+
queuedRental: { data: makeRental(), address: QUEUED_ADDR },
|
|
62
|
+
nowSeconds: 1_700_000_000,
|
|
63
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
64
|
+
});
|
|
65
|
+
vitest_1.vi.mocked(closeRental_1.closeRental).mockResolvedValue({
|
|
66
|
+
instructions: [{ programAddress: CONTRACT_ADDR, accounts: [], data: new Uint8Array() }],
|
|
67
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
68
|
+
});
|
|
69
|
+
vitest_1.vi.mocked(thread_1.fetchThreadByAddress).mockResolvedValue({
|
|
70
|
+
data: { fiberIds: [0, 1] },
|
|
71
|
+
address: thread,
|
|
72
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
(0, vitest_1.beforeEach)(() => {
|
|
76
|
+
vitest_1.vi.clearAllMocks();
|
|
77
|
+
});
|
|
78
|
+
(0, vitest_1.describe)('closeContract — expired active + queued reservation', () => {
|
|
79
|
+
(0, vitest_1.it)('suppresses the inline activation on the settling closeRental', async () => {
|
|
80
|
+
// If closeRental promotes the queued challenger, the contract ends up with
|
|
81
|
+
// a brand-new live rental and the closes that follow can only re-latch
|
|
82
|
+
// `to_close`. The settle must take Path A.
|
|
83
|
+
mockExpiredActiveWithQueued(THREAD_ADDR);
|
|
84
|
+
await (0, closeContract_1.closeContract)({ owner: OWNER_SIGNER, contract: CONTRACT_ADDR });
|
|
85
|
+
(0, vitest_1.expect)(closeRental_1.closeRental).toHaveBeenCalledTimes(1);
|
|
86
|
+
(0, vitest_1.expect)(vitest_1.vi.mocked(closeRental_1.closeRental).mock.calls[0][0]).toMatchObject({
|
|
87
|
+
contract: CONTRACT_ADDR,
|
|
88
|
+
activateQueued: false,
|
|
89
|
+
});
|
|
90
|
+
});
|
|
91
|
+
(0, vitest_1.it)('emits exactly one closeContract instruction', async () => {
|
|
92
|
+
// The old composition emitted two: the first was expected to force-close
|
|
93
|
+
// the queue and the second to finish the job. Since the first already
|
|
94
|
+
// finishes it, the second could only fail or no-op.
|
|
95
|
+
mockExpiredActiveWithQueued(THREAD_ADDR);
|
|
96
|
+
const result = await (0, closeContract_1.closeContract)({ owner: OWNER_SIGNER, contract: CONTRACT_ADDR });
|
|
97
|
+
const startsWith = (data, disc) => data instanceof Uint8Array && disc.every((b, i) => data[i] === b);
|
|
98
|
+
const closeContractIxs = result.instructions.filter(ix => 'data' in ix && startsWith(ix.data, closeContract_2.CLOSE_CONTRACT_DISCRIMINATOR));
|
|
99
|
+
(0, vitest_1.expect)(closeContractIxs).toHaveLength(1);
|
|
100
|
+
// ...and the thread close is still there, exactly once.
|
|
101
|
+
const threadCloseIxs = result.instructions.filter(ix => 'data' in ix && startsWith(ix.data, closeContractThread_1.CLOSE_CONTRACT_THREAD_DISCRIMINATOR));
|
|
102
|
+
(0, vitest_1.expect)(threadCloseIxs).toHaveLength(1);
|
|
103
|
+
});
|
|
104
|
+
(0, vitest_1.it)('closes the thread before the final close', async () => {
|
|
105
|
+
// The immediate-close branch requires `contract.thread == SystemProgram`,
|
|
106
|
+
// otherwise it errors with ThreadStillExists.
|
|
107
|
+
mockExpiredActiveWithQueued(THREAD_ADDR);
|
|
108
|
+
await (0, closeContract_1.closeContract)({ owner: OWNER_SIGNER, contract: CONTRACT_ADDR });
|
|
109
|
+
(0, vitest_1.expect)(thread_1.fetchThreadByAddress).toHaveBeenCalledTimes(1);
|
|
110
|
+
});
|
|
111
|
+
(0, vitest_1.it)('skips the thread close when the contract has no thread', async () => {
|
|
112
|
+
mockExpiredActiveWithQueued(SYSTEM);
|
|
113
|
+
await (0, closeContract_1.closeContract)({ owner: OWNER_SIGNER, contract: CONTRACT_ADDR });
|
|
114
|
+
(0, vitest_1.expect)(thread_1.fetchThreadByAddress).not.toHaveBeenCalled();
|
|
115
|
+
});
|
|
116
|
+
});
|
|
117
|
+
//# sourceMappingURL=closeContract.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"closeContract.test.js","sourceRoot":"","sources":["../../../src/instructions/closeContract.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -64,20 +64,23 @@ async function closeRental(params, config) {
|
|
|
64
64
|
const rental = snap.activeRental;
|
|
65
65
|
// Check if contract has a queued rental waiting to activate
|
|
66
66
|
const SYSTEM_PROGRAM_ID = '11111111111111111111111111111111';
|
|
67
|
-
const
|
|
67
|
+
const activateQueued = params.activateQueued ?? true;
|
|
68
|
+
const hasQueuedRental = activateQueued && snap.queuedRental !== null;
|
|
68
69
|
let queuedRentalAddress;
|
|
69
70
|
let queuedBorrowerProfileAddress;
|
|
70
71
|
let queuedBorrowerProfileFactionAddress;
|
|
71
|
-
if (snap.queuedRental) {
|
|
72
|
+
if (hasQueuedRental && snap.queuedRental) {
|
|
72
73
|
queuedRentalAddress = snap.queuedRental.address;
|
|
73
74
|
queuedBorrowerProfileAddress = snap.queuedRental.data.borrowerProfile;
|
|
74
75
|
queuedBorrowerProfileFactionAddress = await (0, sage_2.deriveProfileFaction)(queuedBorrowerProfileAddress);
|
|
75
76
|
}
|
|
76
|
-
// Thread accounts
|
|
77
|
+
// Thread accounts. Needed to restage fiber 1 after an inline activation
|
|
78
|
+
// (Path B) *and* to wipe it after a plain close (Path A) — omitting them on
|
|
79
|
+
// Path A leaves fiber 1 staged with the outgoing rental's accounts.
|
|
77
80
|
const hasThread = contractAccount.data.thread !== SYSTEM_PROGRAM_ID;
|
|
78
81
|
let contractThreadAddress;
|
|
79
82
|
let closeRentalFiberAddress;
|
|
80
|
-
if (
|
|
83
|
+
if (hasThread) {
|
|
81
84
|
const rentalAuthority = await (0, srsly_1.deriveRentalAuthority)();
|
|
82
85
|
contractThreadAddress = await (0, thread_1.deriveContractThread)(params.contract, rentalAuthority);
|
|
83
86
|
closeRentalFiberAddress = await (0, thread_1.deriveFiber)(contractThreadAddress, 1);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"closeRental.js","sourceRoot":"","sources":["../../../src/instructions/closeRental.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;
|
|
1
|
+
{"version":3,"file":"closeRental.js","sourceRoot":"","sources":["../../../src/instructions/closeRental.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @purpose Simplified contractDoctorFiber instruction wrapper
|
|
4
|
+
*
|
|
5
|
+
* Thin convenience wrapper around Codama-generated contractDoctorFiber
|
|
6
|
+
* instruction. Rewrites one of a contract thread's fibers, for when the
|
|
7
|
+
* thread's `fiber_ids` and the accounts they name have diverged.
|
|
8
|
+
*/
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.contractDoctorFiber = contractDoctorFiber;
|
|
11
|
+
const kit_1 = require("@solana/kit");
|
|
12
|
+
const instructions_1 = require("../generated/codama/instructions");
|
|
13
|
+
const config_1 = require("../utils/config");
|
|
14
|
+
const signer_1 = require("../utils/signer");
|
|
15
|
+
const instructions_2 = require("../utils/instructions");
|
|
16
|
+
const thread_1 = require("../pda/thread");
|
|
17
|
+
const srsly_1 = require("../pda/srsly");
|
|
18
|
+
/**
|
|
19
|
+
* Rewrite one of a contract thread's fibers.
|
|
20
|
+
*
|
|
21
|
+
* Nothing on chain keeps a thread's `fiber_ids` and the accounts those indices
|
|
22
|
+
* name in agreement, so a thread can be intact, funded and scheduled and still
|
|
23
|
+
* permanently unable to build — every executor fails with
|
|
24
|
+
* `Fiber <pubkey> not found` and the contract stops settling.
|
|
25
|
+
*
|
|
26
|
+
* Writing a fiber requires the thread's authority to sign, and for every SRSLY
|
|
27
|
+
* thread that authority is `rental_authority`, a PDA of the SRSLY program. No
|
|
28
|
+
* wallet holds its key, so this instruction is the only route back.
|
|
29
|
+
*
|
|
30
|
+
* The payload is supplied rather than rebuilt from contract state: a fiber's
|
|
31
|
+
* compiled instruction captured a specific account set at the moment it was
|
|
32
|
+
* written, and contract state has moved on since.
|
|
33
|
+
*
|
|
34
|
+
* Idempotent — re-running converges rather than duplicating.
|
|
35
|
+
*
|
|
36
|
+
* @param params - Fiber rewrite parameters
|
|
37
|
+
* @param config - Optional SDK configuration overrides
|
|
38
|
+
* @returns Kit instruction (or web3.js if PublicKey in config)
|
|
39
|
+
*/
|
|
40
|
+
async function contractDoctorFiber(params, config) {
|
|
41
|
+
const finalConfig = (0, config_1.mergeConfig)(config);
|
|
42
|
+
if (!params.payer) {
|
|
43
|
+
throw new Error('payer is required');
|
|
44
|
+
}
|
|
45
|
+
if (!params.contract && !params.thread) {
|
|
46
|
+
throw new Error('one of contract or thread is required');
|
|
47
|
+
}
|
|
48
|
+
if (!params.instruction) {
|
|
49
|
+
throw new Error('instruction is required');
|
|
50
|
+
}
|
|
51
|
+
const payerSigner = (0, signer_1.toTransactionSigner)(params.payer);
|
|
52
|
+
const addresses = (0, config_1.getAddresses)(config);
|
|
53
|
+
const programAddress = (0, kit_1.address)(addresses.srsly);
|
|
54
|
+
const contract = params.contract ? (0, kit_1.address)(params.contract) : undefined;
|
|
55
|
+
const contractThread = params.thread
|
|
56
|
+
? (0, kit_1.address)(params.thread)
|
|
57
|
+
: await (0, thread_1.deriveContractThread)(contract, await (0, srsly_1.deriveRentalAuthority)());
|
|
58
|
+
const fiber = await (0, thread_1.deriveFiber)(contractThread, params.fiberIndex);
|
|
59
|
+
const kitInstruction = await (0, instructions_1.getContractDoctorFiberInstructionAsync)({
|
|
60
|
+
payer: payerSigner,
|
|
61
|
+
contract,
|
|
62
|
+
contractThread,
|
|
63
|
+
fiber,
|
|
64
|
+
fiberIndex: params.fiberIndex,
|
|
65
|
+
programId: (0, kit_1.address)(params.instruction.programId),
|
|
66
|
+
accounts: params.instruction.accounts,
|
|
67
|
+
data: params.instruction.data,
|
|
68
|
+
priorityFee: params.priorityFee ?? null,
|
|
69
|
+
}, { programAddress });
|
|
70
|
+
return (0, instructions_2.prepareInstructions)(kitInstruction, {
|
|
71
|
+
computeUnits: params.computeUnits,
|
|
72
|
+
PublicKey: finalConfig.PublicKey,
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
//# sourceMappingURL=contractDoctorFiber.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contractDoctorFiber.js","sourceRoot":"","sources":["../../../src/instructions/contractDoctorFiber.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;AA4FH,kDA8CC;AAxID,qCAAoD;AACpD,mEAA0F;AAE1F,4CAA4E;AAC5E,4CAA4E;AAC5E,wDAA4D;AAC5D,0CAAkE;AAClE,wCAAqD;AA6DrD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACI,KAAK,UAAU,mBAAmB,CACvC,MAAiC,EACjC,MAA2B;IAE3B,MAAM,WAAW,GAAG,IAAA,oBAAW,EAAC,MAAM,CAAC,CAAC;IAExC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;IACvC,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QACvC,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;IAC3D,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IAED,MAAM,WAAW,GAAG,IAAA,4BAAmB,EAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACtD,MAAM,SAAS,GAAG,IAAA,qBAAY,EAAC,MAAM,CAAC,CAAC;IACvC,MAAM,cAAc,GAAG,IAAA,aAAO,EAAC,SAAS,CAAC,KAAgB,CAAC,CAAC;IAC3D,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAA,aAAO,EAAC,MAAM,CAAC,QAAmB,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAEnF,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM;QAClC,CAAC,CAAC,IAAA,aAAO,EAAC,MAAM,CAAC,MAAiB,CAAC;QACnC,CAAC,CAAC,MAAM,IAAA,6BAAoB,EAAC,QAAmB,EAAE,MAAM,IAAA,6BAAqB,GAAE,CAAC,CAAC;IAEnF,MAAM,KAAK,GAAG,MAAM,IAAA,oBAAW,EAAC,cAAc,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;IAEnE,MAAM,cAAc,GAAG,MAAM,IAAA,qDAAsC,EACjE;QACE,KAAK,EAAE,WAAW;QAClB,QAAQ;QACR,cAAc;QACd,KAAK;QACL,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,SAAS,EAAE,IAAA,aAAO,EAAC,MAAM,CAAC,WAAW,CAAC,SAAoB,CAAC;QAC3D,QAAQ,EAAE,MAAM,CAAC,WAAW,CAAC,QAAQ;QACrC,IAAI,EAAE,MAAM,CAAC,WAAW,CAAC,IAAI;QAC7B,WAAW,EAAE,MAAM,CAAC,WAAW,IAAI,IAAI;KACxC,EACD,EAAE,cAAc,EAAE,CACnB,CAAC;IAEF,OAAO,IAAA,kCAAmB,EAAC,cAAc,EAAE;QACzC,YAAY,EAAE,MAAM,CAAC,YAAY;QACjC,SAAS,EAAE,WAAW,CAAC,SAAS;KACjC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
* @module instructions
|
|
13
13
|
*/
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
exports.updateAffiliate = exports.removeAffiliate = exports.approveAffiliate = exports.createAffiliate = exports.migrateContract = exports.migrateConfig = exports.deleteConfig = exports.updateConfig = exports.createConfig = exports.updateContractThread = exports.deleteContractThread = exports.closeContractThread = exports.createContractThread = exports.claimContract = exports.deleteBorrower = exports.createBorrower = exports.closeBorrower = exports.claimBorrower = exports.deleteRental = exports.reserveRental = exports.invalidateRental = exports.releaseRental = exports.closeRental = exports.cancelRental = exports.acceptRental = exports.setDelegate = exports.deleteContract = exports.closeContract = exports.updateContract = exports.createContract = void 0;
|
|
15
|
+
exports.updateAffiliate = exports.removeAffiliate = exports.approveAffiliate = exports.createAffiliate = exports.migrateContract = exports.migrateConfig = exports.deleteConfig = exports.updateConfig = exports.createConfig = exports.contractDoctorFiber = exports.updateContractThread = exports.deleteContractThread = exports.closeContractThread = exports.createContractThread = exports.claimContract = exports.deleteBorrower = exports.createBorrower = exports.closeBorrower = exports.claimBorrower = exports.deleteRental = exports.reserveRental = exports.invalidateRental = exports.releaseRental = exports.closeRental = exports.cancelRental = exports.acceptRental = exports.setDelegate = exports.deleteContract = exports.closeContract = exports.updateContract = exports.createContract = void 0;
|
|
16
16
|
var createContract_1 = require("./createContract");
|
|
17
17
|
Object.defineProperty(exports, "createContract", { enumerable: true, get: function () { return createContract_1.createContract; } });
|
|
18
18
|
var updateContract_1 = require("./updateContract");
|
|
@@ -55,6 +55,8 @@ var deleteContractThread_1 = require("./deleteContractThread");
|
|
|
55
55
|
Object.defineProperty(exports, "deleteContractThread", { enumerable: true, get: function () { return deleteContractThread_1.deleteContractThread; } });
|
|
56
56
|
var updateContractThread_1 = require("./updateContractThread");
|
|
57
57
|
Object.defineProperty(exports, "updateContractThread", { enumerable: true, get: function () { return updateContractThread_1.updateContractThread; } });
|
|
58
|
+
var contractDoctorFiber_1 = require("./contractDoctorFiber");
|
|
59
|
+
Object.defineProperty(exports, "contractDoctorFiber", { enumerable: true, get: function () { return contractDoctorFiber_1.contractDoctorFiber; } });
|
|
58
60
|
var createConfig_1 = require("./createConfig");
|
|
59
61
|
Object.defineProperty(exports, "createConfig", { enumerable: true, get: function () { return createConfig_1.createConfig; } });
|
|
60
62
|
var updateConfig_1 = require("./updateConfig");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/instructions/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;GAWG;;;AAEH,mDAA6E;AAApE,gHAAA,cAAc,OAAA;AACvB,mDAA6E;AAApE,gHAAA,cAAc,OAAA;AACvB,iDAA0E;AAAjE,8GAAA,aAAa,OAAA;AACtB,mDAA6E;AAApE,gHAAA,cAAc,OAAA;AACvB,6CAAoE;AAA3D,0GAAA,WAAW,OAAA;AACpB,+CAAuE;AAA9D,4GAAA,YAAY,OAAA;AACrB,+CAAuE;AAA9D,4GAAA,YAAY,OAAA;AACrB,6CAAoE;AAA3D,0GAAA,WAAW,OAAA;AACpB,iDAA0E;AAAjE,8GAAA,aAAa,OAAA;AACtB,uDAAmF;AAA1E,oHAAA,gBAAgB,OAAA;AACzB,iDAA0E;AAAjE,8GAAA,aAAa,OAAA;AACtB,+CAAuE;AAA9D,4GAAA,YAAY,OAAA;AACrB,iDAA0E;AAAjE,8GAAA,aAAa,OAAA;AACtB,iDAA0E;AAAjE,8GAAA,aAAa,OAAA;AACtB,mDAA6E;AAApE,gHAAA,cAAc,OAAA;AACvB,mDAA6E;AAApE,gHAAA,cAAc,OAAA;AACvB,iDAA0E;AAAjE,8GAAA,aAAa,OAAA;AACtB,+DAA+F;AAAtF,4HAAA,oBAAoB,OAAA;AAC7B,6DAA4F;AAAnF,0HAAA,mBAAmB,OAAA;AAC5B,+DAA+F;AAAtF,4HAAA,oBAAoB,OAAA;AAC7B,+DAA+F;AAAtF,4HAAA,oBAAoB,OAAA;AAC7B,+CAAuE;AAA9D,4GAAA,YAAY,OAAA;AACrB,+CAAuE;AAA9D,4GAAA,YAAY,OAAA;AACrB,+CAAuE;AAA9D,4GAAA,YAAY,OAAA;AACrB,iDAA0E;AAAjE,8GAAA,aAAa,OAAA;AACtB,qDAAgF;AAAvE,kHAAA,eAAe,OAAA;AACxB,qDAAgF;AAAvE,kHAAA,eAAe,OAAA;AACxB,uDAAmF;AAA1E,oHAAA,gBAAgB,OAAA;AACzB,qDAAgF;AAAvE,kHAAA,eAAe,OAAA;AACxB,qDAAgF;AAAvE,kHAAA,eAAe,OAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/instructions/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;GAWG;;;AAEH,mDAA6E;AAApE,gHAAA,cAAc,OAAA;AACvB,mDAA6E;AAApE,gHAAA,cAAc,OAAA;AACvB,iDAA0E;AAAjE,8GAAA,aAAa,OAAA;AACtB,mDAA6E;AAApE,gHAAA,cAAc,OAAA;AACvB,6CAAoE;AAA3D,0GAAA,WAAW,OAAA;AACpB,+CAAuE;AAA9D,4GAAA,YAAY,OAAA;AACrB,+CAAuE;AAA9D,4GAAA,YAAY,OAAA;AACrB,6CAAoE;AAA3D,0GAAA,WAAW,OAAA;AACpB,iDAA0E;AAAjE,8GAAA,aAAa,OAAA;AACtB,uDAAmF;AAA1E,oHAAA,gBAAgB,OAAA;AACzB,iDAA0E;AAAjE,8GAAA,aAAa,OAAA;AACtB,+CAAuE;AAA9D,4GAAA,YAAY,OAAA;AACrB,iDAA0E;AAAjE,8GAAA,aAAa,OAAA;AACtB,iDAA0E;AAAjE,8GAAA,aAAa,OAAA;AACtB,mDAA6E;AAApE,gHAAA,cAAc,OAAA;AACvB,mDAA6E;AAApE,gHAAA,cAAc,OAAA;AACvB,iDAA0E;AAAjE,8GAAA,aAAa,OAAA;AACtB,+DAA+F;AAAtF,4HAAA,oBAAoB,OAAA;AAC7B,6DAA4F;AAAnF,0HAAA,mBAAmB,OAAA;AAC5B,+DAA+F;AAAtF,4HAAA,oBAAoB,OAAA;AAC7B,+DAA+F;AAAtF,4HAAA,oBAAoB,OAAA;AAC7B,6DAI+B;AAH7B,0HAAA,mBAAmB,OAAA;AAIrB,+CAAuE;AAA9D,4GAAA,YAAY,OAAA;AACrB,+CAAuE;AAA9D,4GAAA,YAAY,OAAA;AACrB,+CAAuE;AAA9D,4GAAA,YAAY,OAAA;AACrB,iDAA0E;AAAjE,8GAAA,aAAa,OAAA;AACtB,qDAAgF;AAAvE,kHAAA,eAAe,OAAA;AACxB,qDAAgF;AAAvE,kHAAA,eAAe,OAAA;AACxB,uDAAmF;AAA1E,oHAAA,gBAAgB,OAAA;AACzB,qDAAgF;AAAvE,kHAAA,eAAe,OAAA;AACxB,qDAAgF;AAAvE,kHAAA,eAAe,OAAA"}
|
package/dist/cjs/kit/index.js
CHANGED
|
@@ -39,6 +39,7 @@ __exportStar(require("../accounts"), exports);
|
|
|
39
39
|
__exportStar(require("../params"), exports);
|
|
40
40
|
__exportStar(require("../pda"), exports);
|
|
41
41
|
__exportStar(require("../cost"), exports);
|
|
42
|
+
__exportStar(require("../doctor"), exports);
|
|
42
43
|
// Hand-picked codama enums that callers commonly need to compare against
|
|
43
44
|
// account state (e.g. `rental.status === RentalStatus.Cancelled`).
|
|
44
45
|
// Full codama surface stays at `@sly-rentals/core/codama`.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/kit/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;GAeG;;;;;;;;;;;;;;;;;AAEH,sCAAqC;AAA5B,kGAAA,OAAO,OAAA;AAChB,2CAAyB;AACzB,kDAAgC;AAChC,8CAA4B;AAC5B,4CAA0B;AAC1B,yCAAuB;AACvB,0CAAwB;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/kit/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;GAeG;;;;;;;;;;;;;;;;;AAEH,sCAAqC;AAA5B,kGAAA,OAAO,OAAA;AAChB,2CAAyB;AACzB,kDAAgC;AAChC,8CAA4B;AAC5B,4CAA0B;AAC1B,yCAAuB;AACvB,0CAAwB;AACxB,4CAA0B;AAE1B,yEAAyE;AACzE,mEAAmE;AACnE,2DAA2D;AAC3D,mDAAyD;AAAhD,qGAAA,YAAY,OAAA;AAErB,sBAAsB;AACtB,4CAA6D;AAApD,8FAAA,KAAK,OAAA;AAEd,0EAA0E;AAC1E,8EAA8E;AAC9E,wEAAwE;AACxE,4DAA4D;AAC5D,wEAAwE;AACxE,iEAAiE;AACjE,kCAA0F;AAAjF,gHAAA,uBAAuB,OAAA;AAAE,+FAAA,MAAM,OAAA;AAAE,wGAAA,eAAe,OAAA;AAAE,qGAAA,YAAY,OAAA"}
|
package/dist/cjs/legacy/index.js
CHANGED
|
@@ -59,7 +59,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
59
59
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
60
60
|
};
|
|
61
61
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
62
|
-
exports.claim = exports.updateAffiliate = exports.removeAffiliate = exports.approveAffiliate = exports.createAffiliate = exports.migrateContract = exports.migrateConfig = exports.deleteConfig = exports.updateConfig = exports.createConfig = exports.updateContractThread = exports.deleteContractThread = exports.closeContractThread = exports.createContractThread = exports.claimContract = exports.deleteBorrower = exports.createBorrower = exports.closeBorrower = exports.claimBorrower = exports.deleteRental = exports.reserveRental = exports.invalidateRental = exports.releaseRental = exports.closeRental = exports.cancelRental = exports.acceptRental = exports.setDelegate = exports.deleteContract = exports.closeContract = exports.updateContract = exports.createContract = exports.onSrslyEvent = exports.getEventsFromTx = exports.events = exports.closeSrslyEventListener = exports.VERSION = void 0;
|
|
62
|
+
exports.claim = exports.updateAffiliate = exports.removeAffiliate = exports.approveAffiliate = exports.createAffiliate = exports.migrateContract = exports.migrateConfig = exports.deleteConfig = exports.updateConfig = exports.createConfig = exports.contractDoctorFiber = exports.updateContractThread = exports.deleteContractThread = exports.closeContractThread = exports.createContractThread = exports.claimContract = exports.deleteBorrower = exports.createBorrower = exports.closeBorrower = exports.claimBorrower = exports.deleteRental = exports.reserveRental = exports.invalidateRental = exports.releaseRental = exports.closeRental = exports.cancelRental = exports.acceptRental = exports.setDelegate = exports.deleteContract = exports.closeContract = exports.updateContract = exports.createContract = exports.onSrslyEvent = exports.getEventsFromTx = exports.events = exports.closeSrslyEventListener = exports.VERSION = void 0;
|
|
63
63
|
const utils_1 = require("../utils");
|
|
64
64
|
const kit = __importStar(require("../instructions"));
|
|
65
65
|
const vault_1 = require("@sly-rentals/vault");
|
|
@@ -69,6 +69,7 @@ __exportStar(require("../accounts"), exports);
|
|
|
69
69
|
__exportStar(require("../params"), exports);
|
|
70
70
|
__exportStar(require("../pda"), exports);
|
|
71
71
|
__exportStar(require("../cost"), exports);
|
|
72
|
+
__exportStar(require("../doctor"), exports);
|
|
72
73
|
var version_1 = require("../version");
|
|
73
74
|
Object.defineProperty(exports, "VERSION", { enumerable: true, get: function () { return version_1.VERSION; } });
|
|
74
75
|
// `codama` and `audit` namespaces are intentionally NOT re-exported here
|
|
@@ -120,6 +121,7 @@ exports.createContractThread = w(kit.createContractThread);
|
|
|
120
121
|
exports.closeContractThread = w(kit.closeContractThread);
|
|
121
122
|
exports.deleteContractThread = w(kit.deleteContractThread);
|
|
122
123
|
exports.updateContractThread = w(kit.updateContractThread);
|
|
124
|
+
exports.contractDoctorFiber = w(kit.contractDoctorFiber);
|
|
123
125
|
exports.createConfig = w(kit.createConfig);
|
|
124
126
|
exports.updateConfig = w(kit.updateConfig);
|
|
125
127
|
exports.deleteConfig = w(kit.deleteConfig);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/legacy/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,oCAAwF;AACxF,qDAAuC;AACvC,8CAA4D;AAE5D,oDAAoD;AACpD,2CAAyB;AACzB,8CAA4B;AAC5B,4CAA0B;AAC1B,yCAAuB;AACvB,0CAAwB;AACxB,sCAAqC;AAA5B,kGAAA,OAAO,OAAA;AAChB,yEAAyE;AACzE,yEAAyE;AACzE,yDAAyD;AACzD,wDAAwD;AACxD,kCAA0F;AAAjF,gHAAA,uBAAuB,OAAA;AAAE,+FAAA,MAAM,OAAA;AAAE,wGAAA,eAAe,OAAA;AAAE,qGAAA,YAAY,OAAA;AAevE;;GAEG;AACH,SAAS,UAAU,CACjB,EAAkD;IAElD,OAAO,KAAK,EAAE,GAAG,IAAW,EAAgC,EAAE;QAC5D,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;QACjC,MAAM,EAAE,GAAG,IAAA,oBAAY,GAAE,CAAC,SAAS,CAAC;QACpC,IAAI,CAAC,EAAE,EAAE,CAAC;YACR,MAAM,IAAI,KAAK,CACb,8DAA8D;gBAC5D,iCAAiC;gBACjC,kDAAkD;gBAClD,8DAA8D;gBAC9D,gCAAgC,CACnC,CAAC;QACJ,CAAC;QACD,OAAO,MAAM,CAAC,QAAQ,EAAE,CAAC;IAC3B,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,GAAG,UAAU,CAAC;AAErB,+DAA+D;AAClD,QAAA,cAAc,GAAG,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;AACvC,QAAA,cAAc,GAAG,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;AACvC,QAAA,aAAa,GAAG,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;AACrC,QAAA,cAAc,GAAG,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;AACvC,QAAA,WAAW,GAAG,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;AACjC,QAAA,YAAY,GAAG,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;AACnC,QAAA,YAAY,GAAG,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;AACnC,QAAA,WAAW,GAAG,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;AACjC,QAAA,aAAa,GAAG,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;AACrC,QAAA,gBAAgB,GAAG,CAAC,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;AAC3C,QAAA,aAAa,GAAG,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;AACrC,QAAA,YAAY,GAAG,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;AACnC,QAAA,aAAa,GAAG,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;AACrC,QAAA,aAAa,GAAG,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;AACrC,QAAA,cAAc,GAAG,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;AACvC,QAAA,cAAc,GAAG,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;AACvC,QAAA,aAAa,GAAG,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;AACrC,QAAA,oBAAoB,GAAG,CAAC,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;AACnD,QAAA,mBAAmB,GAAG,CAAC,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;AACjD,QAAA,oBAAoB,GAAG,CAAC,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;AACnD,QAAA,oBAAoB,GAAG,CAAC,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;AACnD,QAAA,YAAY,GAAG,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;AACnC,QAAA,YAAY,GAAG,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;AACnC,QAAA,YAAY,GAAG,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;AACnC,QAAA,aAAa,GAAG,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;AACrC,QAAA,eAAe,GAAG,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;AACzC,QAAA,eAAe,GAAG,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;AACzC,QAAA,gBAAgB,GAAG,CAAC,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;AAC3C,QAAA,eAAe,GAAG,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;AACzC,QAAA,eAAe,GAAG,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;AACzC,QAAA,KAAK,GAAG,CAAC,CAAC,aAAa,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/legacy/index.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/package.json
CHANGED
package/dist/cjs/utils/config.js
CHANGED
|
@@ -22,6 +22,15 @@ const codama_1 = require("../generated/codama");
|
|
|
22
22
|
const addresses_1 = require("./addresses");
|
|
23
23
|
const rpc_1 = require("./rpc");
|
|
24
24
|
const vault_1 = require("@sly-rentals/vault");
|
|
25
|
+
/**
|
|
26
|
+
* Drop keys whose value is `undefined`, so spreading the result cannot
|
|
27
|
+
* overwrite an existing value with "unset".
|
|
28
|
+
*/
|
|
29
|
+
function stripUndefined(source) {
|
|
30
|
+
if (!source)
|
|
31
|
+
return {};
|
|
32
|
+
return Object.fromEntries(Object.entries(source).filter(([, value]) => value !== undefined));
|
|
33
|
+
}
|
|
25
34
|
/**
|
|
26
35
|
* Default RPC URLs keyed by genesis hash
|
|
27
36
|
*/
|
|
@@ -83,12 +92,23 @@ let globalConfig = {
|
|
|
83
92
|
* ```
|
|
84
93
|
*/
|
|
85
94
|
function setSdkConfig(config) {
|
|
86
|
-
|
|
87
|
-
//
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
95
|
+
// Drop keys explicitly set to `undefined` so a partial update can't wipe a
|
|
96
|
+
// previously configured value. A spread treats a present-but-undefined key
|
|
97
|
+
// as an assignment, so `setSdkConfig({ programs, rpcUrl: undefined })` — the
|
|
98
|
+
// shape you get from spreading an options object — silently discards the
|
|
99
|
+
// configured endpoint and falls back to whatever public RPC `programs`
|
|
100
|
+
// names. That reads as an account that doesn't exist, not as a config error.
|
|
101
|
+
const defined = stripUndefined(config);
|
|
102
|
+
globalConfig = { ...globalConfig, ...defined };
|
|
103
|
+
// Propagate relevant config to slyvault SDK. Only forward the keys this
|
|
104
|
+
// call actually set — slyvault applies the same undefined-skipping rule,
|
|
105
|
+
// but forwarding a bare `{}` keeps the intent obvious.
|
|
106
|
+
const slyvaultConfig = {};
|
|
107
|
+
if (defined.rpcUrl !== undefined)
|
|
108
|
+
slyvaultConfig.rpcUrl = defined.rpcUrl;
|
|
109
|
+
if (defined.PublicKey !== undefined)
|
|
110
|
+
slyvaultConfig.PublicKey = defined.PublicKey;
|
|
111
|
+
(0, vault_1.setSdkConfig)(slyvaultConfig);
|
|
92
112
|
}
|
|
93
113
|
/**
|
|
94
114
|
* Get the current global SDK configuration
|
|
@@ -113,22 +133,39 @@ function clearSdkConfig() {
|
|
|
113
133
|
* @returns Merged configuration
|
|
114
134
|
*/
|
|
115
135
|
function mergeConfig(overrides) {
|
|
116
|
-
|
|
136
|
+
// Same undefined-skipping rule as `setSdkConfig`: a per-call override of
|
|
137
|
+
// `{ rpcUrl: undefined }` must not erase the configured URL for that call.
|
|
138
|
+
return { ...globalConfig, ...stripUndefined(overrides) };
|
|
117
139
|
}
|
|
118
140
|
/**
|
|
119
141
|
* Get the effective RPC URL for a configuration
|
|
120
142
|
*
|
|
143
|
+
* Resolution order: an explicit `rpcUrl` wins; otherwise the public endpoint
|
|
144
|
+
* for whichever cluster `programs` names.
|
|
145
|
+
*
|
|
121
146
|
* @param config - Optional SDK configuration. If not provided, uses global config
|
|
122
147
|
* @returns RPC URL to use
|
|
148
|
+
* @throws Error if `programs` names a cluster with no public RPC (atlasnet) or
|
|
149
|
+
* is not recognized at all. Both cases need an explicit `rpcUrl`.
|
|
123
150
|
*/
|
|
124
151
|
function getRpcUrl(config) {
|
|
125
152
|
const finalConfig = mergeConfig(config);
|
|
126
153
|
if (finalConfig.rpcUrl)
|
|
127
154
|
return finalConfig.rpcUrl;
|
|
128
|
-
//
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
155
|
+
// Resolve aliases to a genesis hash first so both spellings of a cluster
|
|
156
|
+
// ('mainnet' and its hash) take the same path.
|
|
157
|
+
const genesis = (0, addresses_1.resolveGenesisHash)(finalConfig.programs);
|
|
158
|
+
const url = DEFAULT_RPC_URLS[genesis] ?? ALIAS_RPC_URLS[finalConfig.programs];
|
|
159
|
+
if (url)
|
|
160
|
+
return url;
|
|
161
|
+
// Previously this fell through to the devnet endpoint. That turned a config
|
|
162
|
+
// mistake into a silent wrong-cluster query: every lookup returns null and
|
|
163
|
+
// the caller reports a missing account, with nothing to distinguish "this
|
|
164
|
+
// account does not exist" from "you asked the wrong chain". Atlasnet has no
|
|
165
|
+
// public RPC at all, so it always landed here.
|
|
166
|
+
throw new Error(`No public RPC endpoint for programs '${finalConfig.programs}'` +
|
|
167
|
+
`${genesis === finalConfig.programs ? '' : ` (genesis ${genesis})`}. ` +
|
|
168
|
+
`Set an explicit rpcUrl, e.g. setSdkConfig({ programs: '${finalConfig.programs}', rpcUrl: '<your-endpoint>' }).`);
|
|
132
169
|
}
|
|
133
170
|
/**
|
|
134
171
|
* Get the effective WebSocket URL, if any. Returns `undefined` when neither
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/utils/config.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/utils/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const vitest_1 = require("vitest");
|
|
4
|
+
const config_1 = require("./config");
|
|
5
|
+
const addresses_1 = require("./addresses");
|
|
6
|
+
const CUSTOM_RPC = 'https://my-endpoint.example/rpc';
|
|
7
|
+
(0, vitest_1.beforeEach)(() => {
|
|
8
|
+
// The config is a module singleton, so a leaked rpcUrl would mask exactly
|
|
9
|
+
// the bug under test. `clearSdkConfig` is the reset — `setSdkConfig` can no
|
|
10
|
+
// longer unset a key, which is the whole point of the change below.
|
|
11
|
+
(0, config_1.clearSdkConfig)();
|
|
12
|
+
});
|
|
13
|
+
(0, vitest_1.describe)('setSdkConfig — partial updates must not wipe rpcUrl', () => {
|
|
14
|
+
(0, vitest_1.it)('keeps a configured rpcUrl when a later call only sets programs', () => {
|
|
15
|
+
// The incident: a thread that exists on mainnet reported "no account
|
|
16
|
+
// found", because the second call reset the endpoint to a public default
|
|
17
|
+
// for a different cluster and every lookup there returns null.
|
|
18
|
+
(0, config_1.setSdkConfig)({ programs: 'mainnet', rpcUrl: CUSTOM_RPC });
|
|
19
|
+
(0, config_1.setSdkConfig)({ programs: 'mainnet' });
|
|
20
|
+
(0, vitest_1.expect)((0, config_1.getSdkConfig)().rpcUrl).toBe(CUSTOM_RPC);
|
|
21
|
+
(0, vitest_1.expect)((0, config_1.getRpcUrl)()).toBe(CUSTOM_RPC);
|
|
22
|
+
});
|
|
23
|
+
(0, vitest_1.it)('keeps it when the key is present but explicitly undefined', () => {
|
|
24
|
+
// This is the shape that actually occurs — spreading an options object
|
|
25
|
+
// whose rpcUrl was never populated yields `{ rpcUrl: undefined }`, and a
|
|
26
|
+
// plain spread treats that as an assignment rather than an absence.
|
|
27
|
+
(0, config_1.setSdkConfig)({ programs: 'mainnet', rpcUrl: CUSTOM_RPC });
|
|
28
|
+
(0, config_1.setSdkConfig)({ programs: 'mainnet', rpcUrl: undefined });
|
|
29
|
+
(0, vitest_1.expect)((0, config_1.getSdkConfig)().rpcUrl).toBe(CUSTOM_RPC);
|
|
30
|
+
});
|
|
31
|
+
(0, vitest_1.it)('still allows an intentional change', () => {
|
|
32
|
+
(0, config_1.setSdkConfig)({ rpcUrl: CUSTOM_RPC });
|
|
33
|
+
(0, config_1.setSdkConfig)({ rpcUrl: 'https://other.example/rpc' });
|
|
34
|
+
(0, vitest_1.expect)((0, config_1.getSdkConfig)().rpcUrl).toBe('https://other.example/rpc');
|
|
35
|
+
});
|
|
36
|
+
});
|
|
37
|
+
(0, vitest_1.describe)('mergeConfig — per-call overrides follow the same rule', () => {
|
|
38
|
+
(0, vitest_1.it)('does not let an undefined override erase the configured rpcUrl', () => {
|
|
39
|
+
(0, config_1.setSdkConfig)({ programs: 'mainnet', rpcUrl: CUSTOM_RPC });
|
|
40
|
+
(0, vitest_1.expect)((0, config_1.mergeConfig)({ rpcUrl: undefined }).rpcUrl).toBe(CUSTOM_RPC);
|
|
41
|
+
(0, vitest_1.expect)((0, config_1.getRpcUrl)({ rpcUrl: undefined })).toBe(CUSTOM_RPC);
|
|
42
|
+
});
|
|
43
|
+
(0, vitest_1.it)('applies a real override', () => {
|
|
44
|
+
(0, config_1.setSdkConfig)({ programs: 'mainnet', rpcUrl: CUSTOM_RPC });
|
|
45
|
+
(0, vitest_1.expect)((0, config_1.getRpcUrl)({ rpcUrl: 'https://override.example' })).toBe('https://override.example');
|
|
46
|
+
});
|
|
47
|
+
});
|
|
48
|
+
(0, vitest_1.describe)('getRpcUrl — cluster resolution', () => {
|
|
49
|
+
(0, vitest_1.it)('resolves an alias to its public endpoint', () => {
|
|
50
|
+
(0, config_1.setSdkConfig)({ programs: 'mainnet' });
|
|
51
|
+
(0, vitest_1.expect)((0, config_1.getRpcUrl)()).toBe('https://api.mainnet-beta.solana.com');
|
|
52
|
+
});
|
|
53
|
+
(0, vitest_1.it)('resolves a genesis hash the same way as its alias', () => {
|
|
54
|
+
(0, config_1.setSdkConfig)({ programs: addresses_1.MAINNET_GENESIS });
|
|
55
|
+
(0, vitest_1.expect)((0, config_1.getRpcUrl)()).toBe('https://api.mainnet-beta.solana.com');
|
|
56
|
+
});
|
|
57
|
+
(0, vitest_1.it)('throws for atlasnet by genesis hash instead of silently using devnet', () => {
|
|
58
|
+
// Atlasnet has no public RPC. The old fallback handed back the devnet
|
|
59
|
+
// endpoint, so callers queried the wrong chain and read the empty results
|
|
60
|
+
// as missing accounts.
|
|
61
|
+
(0, config_1.setSdkConfig)({ programs: addresses_1.ATLASNET_GENESIS });
|
|
62
|
+
(0, vitest_1.expect)(() => (0, config_1.getRpcUrl)()).toThrow(/No public RPC endpoint/);
|
|
63
|
+
(0, vitest_1.expect)(() => (0, config_1.getRpcUrl)()).toThrow(/Set an explicit rpcUrl/);
|
|
64
|
+
});
|
|
65
|
+
(0, vitest_1.it)('throws for an unrecognized programs value', () => {
|
|
66
|
+
(0, config_1.setSdkConfig)({ programs: 'not-a-cluster' });
|
|
67
|
+
(0, vitest_1.expect)(() => (0, config_1.getRpcUrl)()).toThrow(/not-a-cluster/);
|
|
68
|
+
});
|
|
69
|
+
(0, vitest_1.it)('does not throw once an explicit rpcUrl is supplied', () => {
|
|
70
|
+
(0, config_1.setSdkConfig)({ programs: addresses_1.ATLASNET_GENESIS, rpcUrl: CUSTOM_RPC });
|
|
71
|
+
(0, vitest_1.expect)((0, config_1.getRpcUrl)()).toBe(CUSTOM_RPC);
|
|
72
|
+
});
|
|
73
|
+
});
|
|
74
|
+
(0, vitest_1.describe)('clearSdkConfig — the way to actually unset', () => {
|
|
75
|
+
(0, vitest_1.it)('drops a configured rpcUrl that setSdkConfig can no longer clear', () => {
|
|
76
|
+
// Skipping undefined means `setSdkConfig` is additive only. That is
|
|
77
|
+
// deliberate, so the escape hatch has to keep working.
|
|
78
|
+
(0, config_1.setSdkConfig)({ programs: 'mainnet', rpcUrl: CUSTOM_RPC });
|
|
79
|
+
(0, config_1.setSdkConfig)({ rpcUrl: undefined });
|
|
80
|
+
(0, vitest_1.expect)((0, config_1.getSdkConfig)().rpcUrl).toBe(CUSTOM_RPC);
|
|
81
|
+
(0, config_1.clearSdkConfig)();
|
|
82
|
+
(0, vitest_1.expect)((0, config_1.getSdkConfig)().rpcUrl).toBeUndefined();
|
|
83
|
+
(0, vitest_1.expect)((0, config_1.getSdkConfig)().programs).toBe('atlasnet');
|
|
84
|
+
});
|
|
85
|
+
});
|
|
86
|
+
//# sourceMappingURL=config.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.test.js","sourceRoot":"","sources":["../../../src/utils/config.test.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/version.js
CHANGED
|
@@ -3,5 +3,5 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.VERSION = void 0;
|
|
4
4
|
// Auto-generated from package.json - DO NOT EDIT
|
|
5
5
|
// Run "pnpm run generate:version" to update
|
|
6
|
-
exports.VERSION = '5.
|
|
6
|
+
exports.VERSION = '5.5.0';
|
|
7
7
|
//# sourceMappingURL=version.js.map
|
|
@@ -29,11 +29,14 @@ const EVENT_MANIFEST = [
|
|
|
29
29
|
['ContractCloseQueued', 'contract', 'closeQueued'],
|
|
30
30
|
['ContractClosed', 'contract', 'closed'],
|
|
31
31
|
['DelegateSet', 'contract', 'delegateSet'],
|
|
32
|
+
['StaleDecayApplied', 'contract', 'staleDecayApplied'],
|
|
32
33
|
['ReservationPlaced', 'reservation', 'placed'],
|
|
33
34
|
['ReservationKnockedOff', 'reservation', 'knockedOff'],
|
|
35
|
+
['ReservationForceClosed', 'reservation', 'forceClosed'],
|
|
34
36
|
['ThreadCreated', 'thread', 'created'],
|
|
35
37
|
['ThreadFunded', 'thread', 'funded'],
|
|
36
38
|
['ThreadClosed', 'thread', 'closed'],
|
|
39
|
+
['ContractFiberDoctored', 'contract', 'fiberDoctored'],
|
|
37
40
|
['BorrowerCreated', 'borrower', 'created'],
|
|
38
41
|
['BorrowerClaimed', 'borrower', 'claimed'],
|
|
39
42
|
['BorrowerClosed', 'borrower', 'closed'],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"events-registry.js","sourceRoot":"","sources":["../../../src/audit/events-registry.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"events-registry.js","sourceRoot":"","sources":["../../../src/audit/events-registry.ts"],"names":[],"mappings":"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"}
|