@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.
Files changed (155) hide show
  1. package/dist/api.json +13092 -9148
  2. package/dist/cjs/audit/events-registry.js +3 -0
  3. package/dist/cjs/audit/events-registry.js.map +1 -1
  4. package/dist/cjs/audit/events.js +41 -0
  5. package/dist/cjs/audit/events.js.map +1 -1
  6. package/dist/cjs/doctor/contract.js +297 -0
  7. package/dist/cjs/doctor/contract.js.map +1 -0
  8. package/dist/cjs/doctor/contract.test.js +143 -0
  9. package/dist/cjs/doctor/contract.test.js.map +1 -0
  10. package/dist/cjs/doctor/index.js +18 -0
  11. package/dist/cjs/doctor/index.js.map +1 -0
  12. package/dist/cjs/generated/codama/errors/srsly.js +10 -1
  13. package/dist/cjs/generated/codama/errors/srsly.js.map +1 -1
  14. package/dist/cjs/generated/codama/instructions/closeContract.js +6 -1
  15. package/dist/cjs/generated/codama/instructions/closeContract.js.map +1 -1
  16. package/dist/cjs/generated/codama/instructions/contractDoctorFiber.js +202 -0
  17. package/dist/cjs/generated/codama/instructions/contractDoctorFiber.js.map +1 -0
  18. package/dist/cjs/generated/codama/instructions/index.js +1 -0
  19. package/dist/cjs/generated/codama/instructions/index.js.map +1 -1
  20. package/dist/cjs/generated/codama/instructions/processContract.js.map +1 -1
  21. package/dist/cjs/generated/codama/programs/srsly.js +23 -19
  22. package/dist/cjs/generated/codama/programs/srsly.js.map +1 -1
  23. package/dist/cjs/generated/codama/types/contractFiberDoctored.js +31 -0
  24. package/dist/cjs/generated/codama/types/contractFiberDoctored.js.map +1 -0
  25. package/dist/cjs/generated/codama/types/index.js +3 -0
  26. package/dist/cjs/generated/codama/types/index.js.map +1 -1
  27. package/dist/cjs/generated/codama/types/reservationForceClosed.js +37 -0
  28. package/dist/cjs/generated/codama/types/reservationForceClosed.js.map +1 -0
  29. package/dist/cjs/generated/codama/types/serializableAccountMeta.js +31 -0
  30. package/dist/cjs/generated/codama/types/serializableAccountMeta.js.map +1 -0
  31. package/dist/cjs/idl/srsly.json +301 -2
  32. package/dist/cjs/instructions/closeContract.js +56 -12
  33. package/dist/cjs/instructions/closeContract.js.map +1 -1
  34. package/dist/cjs/instructions/closeContract.test.js +117 -0
  35. package/dist/cjs/instructions/closeContract.test.js.map +1 -0
  36. package/dist/cjs/instructions/closeRental.js +7 -4
  37. package/dist/cjs/instructions/closeRental.js.map +1 -1
  38. package/dist/cjs/instructions/contractDoctorFiber.js +75 -0
  39. package/dist/cjs/instructions/contractDoctorFiber.js.map +1 -0
  40. package/dist/cjs/instructions/index.js +3 -1
  41. package/dist/cjs/instructions/index.js.map +1 -1
  42. package/dist/cjs/kit/index.js +1 -0
  43. package/dist/cjs/kit/index.js.map +1 -1
  44. package/dist/cjs/legacy/index.js +3 -1
  45. package/dist/cjs/legacy/index.js.map +1 -1
  46. package/dist/cjs/package.json +1 -1
  47. package/dist/cjs/utils/config.js +48 -11
  48. package/dist/cjs/utils/config.js.map +1 -1
  49. package/dist/cjs/utils/config.test.js +86 -0
  50. package/dist/cjs/utils/config.test.js.map +1 -0
  51. package/dist/cjs/version.js +1 -1
  52. package/dist/esm/audit/events-registry.js +3 -0
  53. package/dist/esm/audit/events-registry.js.map +1 -1
  54. package/dist/esm/audit/events.js +41 -0
  55. package/dist/esm/audit/events.js.map +1 -1
  56. package/dist/esm/doctor/contract.js +292 -0
  57. package/dist/esm/doctor/contract.js.map +1 -0
  58. package/dist/esm/doctor/contract.test.js +141 -0
  59. package/dist/esm/doctor/contract.test.js.map +1 -0
  60. package/dist/esm/doctor/index.js +12 -0
  61. package/dist/esm/doctor/index.js.map +1 -0
  62. package/dist/esm/generated/codama/errors/srsly.js +9 -0
  63. package/dist/esm/generated/codama/errors/srsly.js.map +1 -1
  64. package/dist/esm/generated/codama/instructions/closeContract.js +6 -1
  65. package/dist/esm/generated/codama/instructions/closeContract.js.map +1 -1
  66. package/dist/esm/generated/codama/instructions/contractDoctorFiber.js +192 -0
  67. package/dist/esm/generated/codama/instructions/contractDoctorFiber.js.map +1 -0
  68. package/dist/esm/generated/codama/instructions/index.js +1 -0
  69. package/dist/esm/generated/codama/instructions/index.js.map +1 -1
  70. package/dist/esm/generated/codama/instructions/processContract.js.map +1 -1
  71. package/dist/esm/generated/codama/programs/srsly.js +23 -19
  72. package/dist/esm/generated/codama/programs/srsly.js.map +1 -1
  73. package/dist/esm/generated/codama/types/contractFiberDoctored.js +26 -0
  74. package/dist/esm/generated/codama/types/contractFiberDoctored.js.map +1 -0
  75. package/dist/esm/generated/codama/types/index.js +3 -0
  76. package/dist/esm/generated/codama/types/index.js.map +1 -1
  77. package/dist/esm/generated/codama/types/reservationForceClosed.js +32 -0
  78. package/dist/esm/generated/codama/types/reservationForceClosed.js.map +1 -0
  79. package/dist/esm/generated/codama/types/serializableAccountMeta.js +26 -0
  80. package/dist/esm/generated/codama/types/serializableAccountMeta.js.map +1 -0
  81. package/dist/esm/idl/srsly.json +301 -2
  82. package/dist/esm/instructions/closeContract.js +57 -13
  83. package/dist/esm/instructions/closeContract.js.map +1 -1
  84. package/dist/esm/instructions/closeContract.test.js +115 -0
  85. package/dist/esm/instructions/closeContract.test.js.map +1 -0
  86. package/dist/esm/instructions/closeRental.js +7 -4
  87. package/dist/esm/instructions/closeRental.js.map +1 -1
  88. package/dist/esm/instructions/contractDoctorFiber.js +72 -0
  89. package/dist/esm/instructions/contractDoctorFiber.js.map +1 -0
  90. package/dist/esm/instructions/index.js +1 -0
  91. package/dist/esm/instructions/index.js.map +1 -1
  92. package/dist/esm/kit/index.js +1 -0
  93. package/dist/esm/kit/index.js.map +1 -1
  94. package/dist/esm/legacy/index.js +2 -0
  95. package/dist/esm/legacy/index.js.map +1 -1
  96. package/dist/esm/package.json +1 -1
  97. package/dist/esm/utils/config.js +49 -12
  98. package/dist/esm/utils/config.js.map +1 -1
  99. package/dist/esm/utils/config.test.js +84 -0
  100. package/dist/esm/utils/config.test.js.map +1 -0
  101. package/dist/esm/version.js +1 -1
  102. package/dist/idl/srsly.json +301 -2
  103. package/dist/types/audit/events-registry.d.ts +1 -1
  104. package/dist/types/audit/events-registry.d.ts.map +1 -1
  105. package/dist/types/audit/events.d.ts.map +1 -1
  106. package/dist/types/audit/index.d.ts +1 -1
  107. package/dist/types/audit/index.d.ts.map +1 -1
  108. package/dist/types/audit/types.d.ts +46 -1
  109. package/dist/types/audit/types.d.ts.map +1 -1
  110. package/dist/types/doctor/contract.d.ts +133 -0
  111. package/dist/types/doctor/contract.d.ts.map +1 -0
  112. package/dist/types/doctor/contract.test.d.ts +2 -0
  113. package/dist/types/doctor/contract.test.d.ts.map +1 -0
  114. package/dist/types/doctor/index.d.ts +12 -0
  115. package/dist/types/doctor/index.d.ts.map +1 -0
  116. package/dist/types/generated/codama/errors/srsly.d.ts +6 -1
  117. package/dist/types/generated/codama/errors/srsly.d.ts.map +1 -1
  118. package/dist/types/generated/codama/instructions/closeContract.d.ts +34 -12
  119. package/dist/types/generated/codama/instructions/closeContract.d.ts.map +1 -1
  120. package/dist/types/generated/codama/instructions/contractDoctorFiber.d.ts +154 -0
  121. package/dist/types/generated/codama/instructions/contractDoctorFiber.d.ts.map +1 -0
  122. package/dist/types/generated/codama/instructions/index.d.ts +1 -0
  123. package/dist/types/generated/codama/instructions/index.d.ts.map +1 -1
  124. package/dist/types/generated/codama/instructions/processContract.d.ts +15 -3
  125. package/dist/types/generated/codama/instructions/processContract.d.ts.map +1 -1
  126. package/dist/types/generated/codama/programs/srsly.d.ts +23 -20
  127. package/dist/types/generated/codama/programs/srsly.d.ts.map +1 -1
  128. package/dist/types/generated/codama/types/contractFiberDoctored.d.ts +22 -0
  129. package/dist/types/generated/codama/types/contractFiberDoctored.d.ts.map +1 -0
  130. package/dist/types/generated/codama/types/index.d.ts +3 -0
  131. package/dist/types/generated/codama/types/index.d.ts.map +1 -1
  132. package/dist/types/generated/codama/types/reservationForceClosed.d.ts +36 -0
  133. package/dist/types/generated/codama/types/reservationForceClosed.d.ts.map +1 -0
  134. package/dist/types/generated/codama/types/serializableAccountMeta.d.ts +19 -0
  135. package/dist/types/generated/codama/types/serializableAccountMeta.d.ts.map +1 -0
  136. package/dist/types/instructions/closeContract.d.ts +13 -3
  137. package/dist/types/instructions/closeContract.d.ts.map +1 -1
  138. package/dist/types/instructions/closeContract.test.d.ts +2 -0
  139. package/dist/types/instructions/closeContract.test.d.ts.map +1 -0
  140. package/dist/types/instructions/closeRental.d.ts +11 -0
  141. package/dist/types/instructions/closeRental.d.ts.map +1 -1
  142. package/dist/types/instructions/contractDoctorFiber.d.ts +87 -0
  143. package/dist/types/instructions/contractDoctorFiber.d.ts.map +1 -0
  144. package/dist/types/instructions/index.d.ts +1 -0
  145. package/dist/types/instructions/index.d.ts.map +1 -1
  146. package/dist/types/kit/index.d.ts +1 -0
  147. package/dist/types/kit/index.d.ts.map +1 -1
  148. package/dist/types/legacy/index.d.ts +2 -0
  149. package/dist/types/legacy/index.d.ts.map +1 -1
  150. package/dist/types/utils/config.d.ts +5 -0
  151. package/dist/types/utils/config.d.ts.map +1 -1
  152. package/dist/types/utils/config.test.d.ts +2 -0
  153. package/dist/types/utils/config.test.d.ts.map +1 -0
  154. package/dist/types/version.d.ts +1 -1
  155. 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 hasQueuedRental = snap.queuedRental !== null;
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 needed for inline activation restage
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 (hasQueuedRental && hasThread) {
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":"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"}
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"}
@@ -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;AAExB,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"}
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"}
@@ -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":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/legacy/index.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sly-rentals/core",
3
- "version": "5.4.0",
3
+ "version": "5.5.0",
4
4
  "description": "TypeScript SDK for SRSLY",
5
5
  "sideEffects": false,
6
6
  "publishConfig": {
@@ -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
- globalConfig = { ...globalConfig, ...config };
87
- // Propagate relevant config to slyvault SDK
88
- (0, vault_1.setSdkConfig)({
89
- rpcUrl: config.rpcUrl,
90
- PublicKey: config.PublicKey,
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
- return { ...globalConfig, ...overrides };
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
- // Try genesis-hash-keyed lookup first, then alias fallback
129
- return (DEFAULT_RPC_URLS[finalConfig.programs] ||
130
- ALIAS_RPC_URLS[finalConfig.programs] ||
131
- DEFAULT_RPC_URLS[addresses_1.DEVNET_GENESIS]);
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":"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"}
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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"}
@@ -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.4.0';
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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"}