@sly-rentals/core 5.4.0 → 5.5.1

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 +2 -2
@@ -0,0 +1,32 @@
1
+ /**
2
+ * This code was AUTOGENERATED using the Codama library.
3
+ * Please DO NOT EDIT THIS FILE, instead use visitors
4
+ * to add features, then rerun Codama to update it.
5
+ *
6
+ * @see https://github.com/codama-idl/codama
7
+ */
8
+ import { combineCodec, getAddressDecoder, getAddressEncoder, getStructDecoder, getStructEncoder, getU64Decoder, getU64Encoder, } from "@solana/kit";
9
+ export function getReservationForceClosedEncoder() {
10
+ return getStructEncoder([
11
+ ["rentalState", getAddressEncoder()],
12
+ ["contract", getAddressEncoder()],
13
+ ["borrower", getAddressEncoder()],
14
+ ["refund", getU64Encoder()],
15
+ ["fromContract", getU64Encoder()],
16
+ ["fromOwner", getU64Encoder()],
17
+ ]);
18
+ }
19
+ export function getReservationForceClosedDecoder() {
20
+ return getStructDecoder([
21
+ ["rentalState", getAddressDecoder()],
22
+ ["contract", getAddressDecoder()],
23
+ ["borrower", getAddressDecoder()],
24
+ ["refund", getU64Decoder()],
25
+ ["fromContract", getU64Decoder()],
26
+ ["fromOwner", getU64Decoder()],
27
+ ]);
28
+ }
29
+ export function getReservationForceClosedCodec() {
30
+ return combineCodec(getReservationForceClosedEncoder(), getReservationForceClosedDecoder());
31
+ }
32
+ //# sourceMappingURL=reservationForceClosed.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reservationForceClosed.js","sourceRoot":"","sources":["../../../../../src/generated/codama/types/reservationForceClosed.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EACL,YAAY,EACZ,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,aAAa,EACb,aAAa,GAKd,MAAM,aAAa,CAAC;AA4BrB,MAAM,UAAU,gCAAgC;IAC9C,OAAO,gBAAgB,CAAC;QACtB,CAAC,aAAa,EAAE,iBAAiB,EAAE,CAAC;QACpC,CAAC,UAAU,EAAE,iBAAiB,EAAE,CAAC;QACjC,CAAC,UAAU,EAAE,iBAAiB,EAAE,CAAC;QACjC,CAAC,QAAQ,EAAE,aAAa,EAAE,CAAC;QAC3B,CAAC,cAAc,EAAE,aAAa,EAAE,CAAC;QACjC,CAAC,WAAW,EAAE,aAAa,EAAE,CAAC;KAC/B,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,gCAAgC;IAC9C,OAAO,gBAAgB,CAAC;QACtB,CAAC,aAAa,EAAE,iBAAiB,EAAE,CAAC;QACpC,CAAC,UAAU,EAAE,iBAAiB,EAAE,CAAC;QACjC,CAAC,UAAU,EAAE,iBAAiB,EAAE,CAAC;QACjC,CAAC,QAAQ,EAAE,aAAa,EAAE,CAAC;QAC3B,CAAC,cAAc,EAAE,aAAa,EAAE,CAAC;QACjC,CAAC,WAAW,EAAE,aAAa,EAAE,CAAC;KAC/B,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,8BAA8B;IAI5C,OAAO,YAAY,CACjB,gCAAgC,EAAE,EAClC,gCAAgC,EAAE,CACnC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * This code was AUTOGENERATED using the Codama library.
3
+ * Please DO NOT EDIT THIS FILE, instead use visitors
4
+ * to add features, then rerun Codama to update it.
5
+ *
6
+ * @see https://github.com/codama-idl/codama
7
+ */
8
+ import { combineCodec, getAddressDecoder, getAddressEncoder, getBooleanDecoder, getBooleanEncoder, getStructDecoder, getStructEncoder, } from "@solana/kit";
9
+ export function getSerializableAccountMetaEncoder() {
10
+ return getStructEncoder([
11
+ ["pubkey", getAddressEncoder()],
12
+ ["isSigner", getBooleanEncoder()],
13
+ ["isWritable", getBooleanEncoder()],
14
+ ]);
15
+ }
16
+ export function getSerializableAccountMetaDecoder() {
17
+ return getStructDecoder([
18
+ ["pubkey", getAddressDecoder()],
19
+ ["isSigner", getBooleanDecoder()],
20
+ ["isWritable", getBooleanDecoder()],
21
+ ]);
22
+ }
23
+ export function getSerializableAccountMetaCodec() {
24
+ return combineCodec(getSerializableAccountMetaEncoder(), getSerializableAccountMetaDecoder());
25
+ }
26
+ //# sourceMappingURL=serializableAccountMeta.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serializableAccountMeta.js","sourceRoot":"","sources":["../../../../../src/generated/codama/types/serializableAccountMeta.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EACL,YAAY,EACZ,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,GAKjB,MAAM,aAAa,CAAC;AAWrB,MAAM,UAAU,iCAAiC;IAC/C,OAAO,gBAAgB,CAAC;QACtB,CAAC,QAAQ,EAAE,iBAAiB,EAAE,CAAC;QAC/B,CAAC,UAAU,EAAE,iBAAiB,EAAE,CAAC;QACjC,CAAC,YAAY,EAAE,iBAAiB,EAAE,CAAC;KACpC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,iCAAiC;IAC/C,OAAO,gBAAgB,CAAC;QACtB,CAAC,QAAQ,EAAE,iBAAiB,EAAE,CAAC;QAC/B,CAAC,UAAU,EAAE,iBAAiB,EAAE,CAAC;QACjC,CAAC,YAAY,EAAE,iBAAiB,EAAE,CAAC;KACpC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,+BAA+B;IAI7C,OAAO,YAAY,CACjB,iCAAiC,EAAE,EACnC,iCAAiC,EAAE,CACpC,CAAC;AACJ,CAAC"}
@@ -2,7 +2,7 @@
2
2
  "address": "SRSLYxcFnjd5jG2DpJw4as6UEyjwJQK1U4J1TD1hvZH",
3
3
  "metadata": {
4
4
  "name": "srsly",
5
- "version": "0.4.0",
5
+ "version": "0.7.0",
6
6
  "spec": "0.1.0",
7
7
  "description": "Space Rental from SLY",
8
8
  "repository": "https://github.com/wuwei-labs/srsly"
@@ -1541,6 +1541,16 @@
1541
1541
  "writable": true,
1542
1542
  "optional": true
1543
1543
  },
1544
+ {
1545
+ "name": "contract_thread",
1546
+ "docs": [
1547
+ "gone when `contract.thread` still names it — `delete_contract_thread`",
1548
+ "tears a thread down without clearing the pointer, which would",
1549
+ "otherwise leave the contract permanently unclosable. Only the address",
1550
+ "is trusted; it must equal `contract.thread` and hold no data."
1551
+ ],
1552
+ "optional": true
1553
+ },
1544
1554
  {
1545
1555
  "name": "rental_authority",
1546
1556
  "pda": {
@@ -1936,6 +1946,146 @@
1936
1946
  }
1937
1947
  }
1938
1948
  },
1949
+ {
1950
+ "name": "contract_doctor_fiber",
1951
+ "docs": [
1952
+ "Rewrite one of a contract thread's fibers, for when `fiber_ids` and the",
1953
+ "accounts it names have diverged and the thread can no longer build.",
1954
+ "Callable by the contract's owner or by admin; `payer` funds the rent and",
1955
+ "`rental_authority` signs the CPI."
1956
+ ],
1957
+ "discriminator": [
1958
+ 129,
1959
+ 173,
1960
+ 84,
1961
+ 247,
1962
+ 167,
1963
+ 228,
1964
+ 206,
1965
+ 192
1966
+ ],
1967
+ "accounts": [
1968
+ {
1969
+ "name": "payer",
1970
+ "docs": [
1971
+ "Signs, and pays rent for the rewritten fiber. The contract's owner or",
1972
+ "`config.admin`. It is *not* the thread's authority — that is",
1973
+ "`rental_authority`, and only this program can sign for it."
1974
+ ],
1975
+ "writable": true,
1976
+ "signer": true
1977
+ },
1978
+ {
1979
+ "name": "config",
1980
+ "docs": [
1981
+ "Bypassed when payer is AUTHORIZED_INITIALIZER (break-glass)."
1982
+ ],
1983
+ "pda": {
1984
+ "seeds": [
1985
+ {
1986
+ "kind": "const",
1987
+ "value": [
1988
+ 99,
1989
+ 111,
1990
+ 110,
1991
+ 102,
1992
+ 105,
1993
+ 103
1994
+ ]
1995
+ }
1996
+ ]
1997
+ }
1998
+ },
1999
+ {
2000
+ "name": "contract",
2001
+ "docs": [
2002
+ "binds the write: it authorizes the payer, pins `contract_thread` to",
2003
+ "`contract.thread`, and scopes the payload. Owners must supply it.",
2004
+ "Optional so admins retain a break-glass path for a contract that is",
2005
+ "mid-migration or undeserializable."
2006
+ ],
2007
+ "optional": true
2008
+ },
2009
+ {
2010
+ "name": "rental_authority",
2011
+ "writable": true,
2012
+ "pda": {
2013
+ "seeds": [
2014
+ {
2015
+ "kind": "const",
2016
+ "value": [
2017
+ 114,
2018
+ 101,
2019
+ 110,
2020
+ 116,
2021
+ 97,
2022
+ 108,
2023
+ 95,
2024
+ 97,
2025
+ 117,
2026
+ 116,
2027
+ 104,
2028
+ 111,
2029
+ 114,
2030
+ 105,
2031
+ 116,
2032
+ 121
2033
+ ]
2034
+ }
2035
+ ]
2036
+ }
2037
+ },
2038
+ {
2039
+ "name": "contract_thread",
2040
+ "docs": [
2041
+ "`contract` is supplied. Left unchecked in the struct so the break-glass",
2042
+ "path still works: antegen's `update_fiber` rejects any thread whose",
2043
+ "authority is not `rental_authority`, which confines this to SRSLY",
2044
+ "threads on its own."
2045
+ ],
2046
+ "writable": true
2047
+ },
2048
+ {
2049
+ "name": "fiber",
2050
+ "docs": [
2051
+ "against the thread via seeds."
2052
+ ],
2053
+ "writable": true
2054
+ },
2055
+ {
2056
+ "name": "antegen_program",
2057
+ "address": "AgTv5w1UvUb6zeqkThwMrztGu9hpepBu8YLghuR4dpSx"
2058
+ },
2059
+ {
2060
+ "name": "fiber_program",
2061
+ "address": "AgFv5afjW9DmSPkiEvJ1er5bAAmRUqaBeTB6Cr8e1hKx"
2062
+ },
2063
+ {
2064
+ "name": "system_program",
2065
+ "address": "11111111111111111111111111111111"
2066
+ }
2067
+ ],
2068
+ "args": [
2069
+ {
2070
+ "name": "fiber_index",
2071
+ "type": "u8"
2072
+ },
2073
+ {
2074
+ "name": "instruction",
2075
+ "type": {
2076
+ "defined": {
2077
+ "name": "SerializableInstruction"
2078
+ }
2079
+ }
2080
+ },
2081
+ {
2082
+ "name": "priority_fee",
2083
+ "type": {
2084
+ "option": "u64"
2085
+ }
2086
+ }
2087
+ ]
2088
+ },
1939
2089
  {
1940
2090
  "name": "create_borrower",
1941
2091
  "docs": [
@@ -3597,7 +3747,9 @@
3597
3747
  {
3598
3748
  "name": "owner_token_account",
3599
3749
  "docs": [
3600
- "Owner's destination token account (created by contract_thread)"
3750
+ "Owner's destination token account (created by contract_thread). The",
3751
+ "owner may close it, in which case payouts are deferred rather than",
3752
+ "failing the tick."
3601
3753
  ],
3602
3754
  "writable": true
3603
3755
  },
@@ -4600,6 +4752,19 @@
4600
4752
  164
4601
4753
  ]
4602
4754
  },
4755
+ {
4756
+ "name": "ContractFiberDoctored",
4757
+ "discriminator": [
4758
+ 14,
4759
+ 49,
4760
+ 216,
4761
+ 13,
4762
+ 84,
4763
+ 33,
4764
+ 142,
4765
+ 31
4766
+ ]
4767
+ },
4603
4768
  {
4604
4769
  "name": "ContractUpdated",
4605
4770
  "discriminator": [
@@ -4704,6 +4869,19 @@
4704
4869
  59
4705
4870
  ]
4706
4871
  },
4872
+ {
4873
+ "name": "ReservationForceClosed",
4874
+ "discriminator": [
4875
+ 242,
4876
+ 40,
4877
+ 22,
4878
+ 31,
4879
+ 119,
4880
+ 14,
4881
+ 46,
4882
+ 11
4883
+ ]
4884
+ },
4707
4885
  {
4708
4886
  "name": "ReservationKnockedOff",
4709
4887
  "discriminator": [
@@ -5253,6 +5431,11 @@
5253
5431
  "code": 6093,
5254
5432
  "name": "InsufficientFundsToCloseQueuedReservation",
5255
5433
  "msg": "Owner has insufficient ATLAS to refund the queued challenger's full bid. \\\n Deposit more ATLAS into your token account and retry. The exact \\\n shortfall amount is emitted in the program log."
5434
+ },
5435
+ {
5436
+ "code": 6094,
5437
+ "name": "InvalidInstructionData",
5438
+ "msg": "Fiber payload rejected. Index 0 must carry ProcessContract and index 1 \\\n must carry CloseRental, both targeting this program; and when the \\\n caller is the contract owner rather than admin, the payload must \\\n name that same contract, and that same thread."
5256
5439
  }
5257
5440
  ],
5258
5441
  "types": [
@@ -5947,6 +6130,30 @@
5947
6130
  ]
5948
6131
  }
5949
6132
  },
6133
+ {
6134
+ "name": "ContractFiberDoctored",
6135
+ "docs": [
6136
+ "Emitted on `contract_doctor_fiber` — one per fiber rewritten to bring a",
6137
+ "thread's `fiber_ids` back into agreement with the accounts they name."
6138
+ ],
6139
+ "type": {
6140
+ "kind": "struct",
6141
+ "fields": [
6142
+ {
6143
+ "name": "thread",
6144
+ "type": "pubkey"
6145
+ },
6146
+ {
6147
+ "name": "fiber",
6148
+ "type": "pubkey"
6149
+ },
6150
+ {
6151
+ "name": "fiber_index",
6152
+ "type": "u8"
6153
+ }
6154
+ ]
6155
+ }
6156
+ },
5950
6157
  {
5951
6158
  "name": "ContractState",
5952
6159
  "docs": [
@@ -6944,6 +7151,46 @@
6944
7151
  ]
6945
7152
  }
6946
7153
  },
7154
+ {
7155
+ "name": "ReservationForceClosed",
7156
+ "docs": [
7157
+ "Emitted when the owner closes a contract out from under a queued",
7158
+ "reservation. The challenger is made whole on their gross stake —",
7159
+ "`refund` = `from_contract` + `from_owner`, where `from_owner` is the",
7160
+ "shortfall the owner tops up (the bonus already paid out during the",
7161
+ "contract's auction history). No CTF points are awarded: the rental",
7162
+ "never happened."
7163
+ ],
7164
+ "type": {
7165
+ "kind": "struct",
7166
+ "fields": [
7167
+ {
7168
+ "name": "rental_state",
7169
+ "type": "pubkey"
7170
+ },
7171
+ {
7172
+ "name": "contract",
7173
+ "type": "pubkey"
7174
+ },
7175
+ {
7176
+ "name": "borrower",
7177
+ "type": "pubkey"
7178
+ },
7179
+ {
7180
+ "name": "refund",
7181
+ "type": "u64"
7182
+ },
7183
+ {
7184
+ "name": "from_contract",
7185
+ "type": "u64"
7186
+ },
7187
+ {
7188
+ "name": "from_owner",
7189
+ "type": "u64"
7190
+ }
7191
+ ]
7192
+ }
7193
+ },
6947
7194
  {
6948
7195
  "name": "ReservationKnockedOff",
6949
7196
  "docs": [
@@ -7070,6 +7317,58 @@
7070
7317
  ]
7071
7318
  }
7072
7319
  },
7320
+ {
7321
+ "name": "SerializableAccountMeta",
7322
+ "docs": [
7323
+ "Serializable version of AccountMeta"
7324
+ ],
7325
+ "type": {
7326
+ "kind": "struct",
7327
+ "fields": [
7328
+ {
7329
+ "name": "pubkey",
7330
+ "type": "pubkey"
7331
+ },
7332
+ {
7333
+ "name": "is_signer",
7334
+ "type": "bool"
7335
+ },
7336
+ {
7337
+ "name": "is_writable",
7338
+ "type": "bool"
7339
+ }
7340
+ ]
7341
+ }
7342
+ },
7343
+ {
7344
+ "name": "SerializableInstruction",
7345
+ "docs": [
7346
+ "Serializable version of Solana's Instruction for easier handling"
7347
+ ],
7348
+ "type": {
7349
+ "kind": "struct",
7350
+ "fields": [
7351
+ {
7352
+ "name": "program_id",
7353
+ "type": "pubkey"
7354
+ },
7355
+ {
7356
+ "name": "accounts",
7357
+ "type": {
7358
+ "vec": {
7359
+ "defined": {
7360
+ "name": "SerializableAccountMeta"
7361
+ }
7362
+ }
7363
+ }
7364
+ },
7365
+ {
7366
+ "name": "data",
7367
+ "type": "bytes"
7368
+ }
7369
+ ]
7370
+ }
7371
+ },
7073
7372
  {
7074
7373
  "name": "ShipCounts",
7075
7374
  "docs": [
@@ -6,7 +6,8 @@
6
6
  */
7
7
  import { AccountRole, address } from '@solana/kit';
8
8
  import { getCloseContractInstructionAsync, getCloseContractThreadInstructionAsync, } from '../generated/codama/instructions';
9
- import { mergeConfig, getAddresses } from '../utils/config';
9
+ import { mergeConfig, getAddresses, getRpcUrl } from '../utils/config';
10
+ import { createRpc } from '../utils/rpc';
10
11
  import { toTransactionSigner } from '../utils/signer';
11
12
  import { fetchThreadByAddress } from '../accounts/thread';
12
13
  import { resolveContractSnapshot } from '../utils/contractSnapshot';
@@ -16,9 +17,19 @@ import { deriveContractThread, deriveFiber } from '../pda/thread';
16
17
  import { prepareInstructions } from '../utils/instructions';
17
18
  import { closeRental } from './closeRental';
18
19
  /**
19
- * Close a rental contract and refund rent to the owner. Idempotent
20
- * recovers cleanly from partial prior closes. When no rental is active,
21
- * the contract's automation thread is closed in the same transaction.
20
+ * Close a rental contract and refund rent to the owner. When no rental is
21
+ * active, the contract's automation thread is closed in the same transaction.
22
+ *
23
+ * A live rental cannot be closed out from under its borrower, so the close is
24
+ * latched as `to_close` and completed later by the automation thread, once the
25
+ * rental ends. Antegen execution is permissionless and executors are paid from
26
+ * the thread's own lamport balance, so a drained thread can be revived by
27
+ * anyone with a plain SOL transfer — the owner does not need to come back.
28
+ *
29
+ * Safe to retry while the close is still pending: a repeat call is a no-op
30
+ * that re-latches the flag. It is *not* a no-op after a successful full close
31
+ * — the contract account is gone, so the next call fails during account
32
+ * validation. That reverts cleanly, burning no rent.
22
33
  *
23
34
  * @param params - Contract closing parameters
24
35
  * @param config - Optional SDK configuration overrides
@@ -134,16 +145,43 @@ export async function closeContract(params, config) {
134
145
  const contractThread = await deriveContractThread(contractAddress, rentalAuthority);
135
146
  const threadAccount = await fetchThreadByAddress(contractThread, finalConfig.rpcUrl);
136
147
  const fiberIds = Array.from(threadAccount.data.fiberIds);
137
- const fiberAccounts = await Promise.all(fiberIds.map(async (id) => ({
138
- address: await deriveFiber(contractThread, id),
148
+ // Only pass fibers that still exist. `fiber_ids` records what the thread
149
+ // *tracks*, and nothing on chain keeps that in agreement with the accounts
150
+ // it names — a fiber account can be closed out from under it, which is
151
+ // exactly what the 2026-08-26 rent sweep did to hundreds of them. Passing
152
+ // an id whose account is gone makes the fiber program deserialize an empty
153
+ // buffer and fail with `InvalidFiberData`, so a contract that tracks a
154
+ // destroyed fiber could never be closed at all.
155
+ //
156
+ // A tracked-but-absent fiber needs nothing closed; dropping it from the
157
+ // list is the whole remedy.
158
+ const fiberAddresses = await Promise.all(fiberIds.map(id => deriveFiber(contractThread, id)));
159
+ const rpc = createRpc(finalConfig.rpcUrl || getRpcUrl(config));
160
+ const probed = fiberAddresses.length
161
+ ? (await rpc.getMultipleAccounts(fiberAddresses, { encoding: 'base64' }).send()).value
162
+ : [];
163
+ const fiberAccounts = fiberAddresses
164
+ .filter((_, i) => probed[i] !== null)
165
+ .map(fiberAddress => ({
166
+ address: fiberAddress,
139
167
  role: AccountRole.WRITABLE,
140
- })));
168
+ }));
141
169
  const ix = await getCloseContractThreadInstructionAsync({ owner: ownerSigner, contract: contractAddress, thread: contractThread }, { programAddress });
142
170
  ix.accounts.push(...fiberAccounts);
143
171
  return ix;
144
172
  };
145
173
  // Helper: build a closeContract instruction with optional queued borrower accounts
146
174
  const buildCloseContractIx = async (includeQueued) => {
175
+ // Pass the thread PDA whenever the contract still points at one. Normally
176
+ // it's redundant — `closeContractThread` clears the pointer first. It
177
+ // matters when the pointer is stale: `deleteContractThread` (admin
178
+ // break-glass) closes a thread without touching the contract, and without
179
+ // the account to prove it's gone the contract can never be closed at all.
180
+ let contractThread;
181
+ if (hasThread) {
182
+ const rentalAuthority = await deriveRentalAuthority();
183
+ contractThread = await deriveContractThread(contractAddress, rentalAuthority);
184
+ }
147
185
  return getCloseContractInstructionAsync({
148
186
  owner: ownerSigner,
149
187
  contract: contractAddress,
@@ -151,6 +189,7 @@ export async function closeContract(params, config) {
151
189
  fleet: fleetAddress,
152
190
  contractTokenAccount: contractTokenAccount,
153
191
  sageProgram,
192
+ ...(contractThread ? { contractThread } : {}),
154
193
  ...(includeQueued && queuedBorrowerState && queuedBorrowerTokenAccount
155
194
  ? { queuedBorrowerState, queuedBorrowerTokenAccount }
156
195
  : {}),
@@ -159,18 +198,23 @@ export async function closeContract(params, config) {
159
198
  // Compose instructions based on scenario
160
199
  const ixs = [];
161
200
  if (activeExpired && hasQueuedSlot) {
162
- // Expired active + queued: multi-instruction composition
163
- // 1. closeRental — settles expired active
164
- const closeRentalResult = await closeRental({ payer: params.owner, contract: contractAddress }, config);
201
+ // Expired active + queued.
202
+ //
203
+ // Order is load-bearing. `closeRental` must NOT promote the challenger
204
+ // Path B would install a brand-new live rental and every close after it
205
+ // would just re-latch `to_close`. Suppress the activation so the rental
206
+ // ends and the slot stays empty (Path A), drop the thread so the
207
+ // immediate-close branch isn't blocked by `ThreadStillExists`, then let a
208
+ // single `closeContract` force-refund the challenger and close for real.
209
+ // 1. Settle the expired active without promoting the queued challenger.
210
+ const closeRentalResult = await closeRental({ payer: params.owner, contract: contractAddress, activateQueued: false }, config);
165
211
  ixs.push(...closeRentalResult.instructions);
166
212
  // 2. closeContractThread (if thread exists)
167
213
  if (hasThread) {
168
214
  ixs.push(await buildThreadCloseIx());
169
215
  }
170
- // 3. closeContract — force-closes queued, sets to_close
216
+ // 3. closeContract — force-refunds the queued challenger, then closes.
171
217
  ixs.push(await buildCloseContractIx(true));
172
- // 4. closeContract — final close (no active, no queued, no thread)
173
- ixs.push(await buildCloseContractIx(false));
174
218
  }
175
219
  else if (activeExpired && !hasQueuedSlot) {
176
220
  // Expired active only, no queued — settle then close
@@ -1 +1 @@
1
- {"version":3,"file":"closeContract.js","sourceRoot":"","sources":["../../../src/instructions/closeContract.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"closeContract.js","sourceRoot":"","sources":["../../../src/instructions/closeContract.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,WAAW,EAAE,OAAO,EAAkC,MAAM,aAAa,CAAC;AACnF,OAAO,EACL,gCAAgC,EAChC,sCAAsC,GACvC,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,SAAS,EAAkB,MAAM,iBAAiB,CAAC;AACvF,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,mBAAmB,EAAwB,MAAM,iBAAiB,CAAC;AAC5E,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,uBAAuB,EAAyB,MAAM,2BAA2B,CAAC;AAC3F,OAAO,EAAE,4BAA4B,EAAE,MAAM,cAAc,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAC1F,OAAO,EAAE,oBAAoB,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAClE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAqD5C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,MAA2B,EAC3B,MAA2B;IAE3B,eAAe;IACf,MAAM,WAAW,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;IAExC,2BAA2B;IAC3B,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;IACvC,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;QACtC,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;IAC/D,CAAC;IAED,sCAAsC;IACtC,MAAM,WAAW,GAAG,mBAAmB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAEtD,MAAM,SAAS,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;IACvC,MAAM,cAAc,GAAG,OAAO,CAAC,SAAS,CAAC,KAAgB,CAAC,CAAC;IAE3D,uCAAuC;IACvC,IAAI,YAAqB,CAAC;IAC1B,IAAI,eAAwB,CAAC;IAE7B,IAAI,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QACpC,4BAA4B;QAC5B,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,KAAgB,CAAC,CAAC;QAChD,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,QAAmB,CAAC,CAAC;IACxD,CAAC;SAAM,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACxB,uDAAuD;QACvD,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,KAAgB,CAAC,CAAC;QAChD,eAAe,GAAG,MAAM,cAAc,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;IACvE,CAAC;SAAM,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QAC3B,uDAAuD;QACvD,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,QAAmB,CAAC,CAAC;IACxD,CAAC;SAAM,CAAC;QACN,kDAAkD;QAClD,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;IAC/D,CAAC;IAED,kEAAkE;IAClE,MAAM,IAAI,GAAG,MAAM,uBAAuB,CAAC;QACzC,eAAe;QACf,MAAM,EAAE,WAAW,CAAC,MAAM;QAC1B,QAAQ,EAAE,MAAM,CAAC,QAAQ;KAC1B,CAAC,CAAC;IACH,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC;IAC7C,MAAM,eAAe,GAAG,IAAI,CAAC,QAAQ,CAAC;IACtC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QAClB,YAAY,GAAG,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC;IAC5C,CAAC;IAED,8CAA8C;IAC9C,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW;QACpC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,WAAsB,CAAC;QACxC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,IAAe,CAAC,CAAC;IAEvC,gEAAgE;IAChE,MAAM,oBAAoB,GAAG,MAAM,4BAA4B,CAAC,eAAe,EAAE,SAAS,CAAC,CAAC;IAE5F,uBAAuB;IACvB,MAAM,iBAAiB,GAAG,kCAA6C,CAAC;IACxE,MAAM,SAAS,GAAG,eAAe,CAAC,IAAI,CAAC,MAAM,KAAK,iBAAiB,CAAC;IACpE,MAAM,aAAa,GAAG,eAAe,CAAC,IAAI,CAAC,YAAY,KAAK,iBAAiB,CAAC;IAC9E,MAAM,aAAa,GAAG,eAAe,CAAC,IAAI,CAAC,YAAY,KAAK,iBAAiB,CAAC;IAE9E,oCAAoC;IACpC,IAAI,aAAa,GAAG,KAAK,CAAC;IAC1B,IAAI,aAAa,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;QACvC,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;QAC1C,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,IAAI,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;YAClD,aAAa,GAAG,IAAI,CAAC;QACvB,CAAC;IACH,CAAC;IAED,+DAA+D;IAC/D,IAAI,mBAAwC,CAAC;IAC7C,IAAI,0BAA+C,CAAC;IACpD,IAAI,aAAa,EAAE,CAAC;QAClB,IAAI,cAAuB,CAAC;QAC5B,IAAI,MAAM,CAAC,cAAc,EAAE,CAAC;YAC1B,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,cAAyB,CAAC,CAAC;QAC7D,CAAC;aAAM,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YAC7B,cAAc,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC;QACnD,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CACb,4GAA4G,CAC7G,CAAC;QACJ,CAAC;QACD,mBAAmB,GAAG,MAAM,mBAAmB,CAAC,cAAc,CAAC,CAAC;QAChE,0BAA0B,GAAG,MAAM,4BAA4B,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC;IAC7F,CAAC;IAED,kDAAkD;IAClD,MAAM,kBAAkB,GAAG,KAAK,IAA0B,EAAE;QAC1D,MAAM,eAAe,GAAG,MAAM,qBAAqB,EAAE,CAAC;QACtD,MAAM,cAAc,GAAG,MAAM,oBAAoB,CAAC,eAAe,EAAE,eAAe,CAAC,CAAC;QACpF,MAAM,aAAa,GAAG,MAAM,oBAAoB,CAAC,cAAc,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;QACrF,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAa,CAAC;QAErE,yEAAyE;QACzE,2EAA2E;QAC3E,uEAAuE;QACvE,0EAA0E;QAC1E,2EAA2E;QAC3E,uEAAuE;QACvE,gDAAgD;QAChD,EAAE;QACF,wEAAwE;QACxE,4BAA4B;QAC5B,MAAM,cAAc,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;QAC9F,MAAM,GAAG,GAAG,SAAS,CAAC,WAAW,CAAC,MAAM,IAAI,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;QAC/D,MAAM,MAAM,GAAG,cAAc,CAAC,MAAM;YAClC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,mBAAmB,CAAC,cAAc,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK;YACtF,CAAC,CAAC,EAAE,CAAC;QACP,MAAM,aAAa,GAAG,cAAc;aACjC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;aACpC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;YACpB,OAAO,EAAE,YAAY;YACrB,IAAI,EAAE,WAAW,CAAC,QAAiB;SACpC,CAAC,CAAC,CAAC;QACN,MAAM,EAAE,GAAG,MAAM,sCAAsC,CACrD,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,EAAE,cAAc,EAAE,EACzE,EAAE,cAAc,EAAE,CACnB,CAAC;QACF,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,CAAC;QACnC,OAAO,EAAE,CAAC;IACZ,CAAC,CAAC;IAEF,mFAAmF;IACnF,MAAM,oBAAoB,GAAG,KAAK,EAAE,aAAsB,EAAwB,EAAE;QAClF,0EAA0E;QAC1E,sEAAsE;QACtE,mEAAmE;QACnE,0EAA0E;QAC1E,0EAA0E;QAC1E,IAAI,cAAmC,CAAC;QACxC,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,eAAe,GAAG,MAAM,qBAAqB,EAAE,CAAC;YACtD,cAAc,GAAG,MAAM,oBAAoB,CAAC,eAAe,EAAE,eAAe,CAAC,CAAC;QAChF,CAAC;QAED,OAAO,gCAAgC,CACrC;YACE,KAAK,EAAE,WAAW;YAClB,QAAQ,EAAE,eAAe;YACzB,IAAI,EAAE,SAAS;YACf,KAAK,EAAE,YAAa;YACpB,oBAAoB,EAAE,oBAAqB;YAC3C,WAAW;YACX,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7C,GAAG,CAAC,aAAa,IAAI,mBAAmB,IAAI,0BAA0B;gBACpE,CAAC,CAAC,EAAE,mBAAmB,EAAE,0BAA0B,EAAE;gBACrD,CAAC,CAAC,EAAE,CAAC;SACR,EACD,EAAE,cAAc,EAAE,CACnB,CAAC;IACJ,CAAC,CAAC;IAEF,yCAAyC;IACzC,MAAM,GAAG,GAAkB,EAAE,CAAC;IAE9B,IAAI,aAAa,IAAI,aAAa,EAAE,CAAC;QACnC,2BAA2B;QAC3B,EAAE;QACF,yEAAyE;QACzE,wEAAwE;QACxE,wEAAwE;QACxE,iEAAiE;QACjE,0EAA0E;QAC1E,yEAAyE;QAEzE,wEAAwE;QACxE,MAAM,iBAAiB,GAAG,MAAM,WAAW,CACzC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE,eAAe,EAAE,cAAc,EAAE,KAAK,EAAE,EACzE,MAAM,CACP,CAAC;QACF,GAAG,CAAC,IAAI,CAAC,GAAG,iBAAiB,CAAC,YAAY,CAAC,CAAC;QAE5C,4CAA4C;QAC5C,IAAI,SAAS,EAAE,CAAC;YACd,GAAG,CAAC,IAAI,CAAC,MAAM,kBAAkB,EAAE,CAAC,CAAC;QACvC,CAAC;QAED,uEAAuE;QACvE,GAAG,CAAC,IAAI,CAAC,MAAM,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC;IAC7C,CAAC;SAAM,IAAI,aAAa,IAAI,CAAC,aAAa,EAAE,CAAC;QAC3C,qDAAqD;QACrD,MAAM,iBAAiB,GAAG,MAAM,WAAW,CACzC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE,eAAe,EAAE,EAClD,MAAM,CACP,CAAC;QACF,GAAG,CAAC,IAAI,CAAC,GAAG,iBAAiB,CAAC,YAAY,CAAC,CAAC;QAE5C,IAAI,SAAS,EAAE,CAAC;YACd,GAAG,CAAC,IAAI,CAAC,MAAM,kBAAkB,EAAE,CAAC,CAAC;QACvC,CAAC;QAED,GAAG,CAAC,IAAI,CAAC,MAAM,oBAAoB,CAAC,KAAK,CAAC,CAAC,CAAC;IAC9C,CAAC;SAAM,IAAI,CAAC,aAAa,IAAI,aAAa,EAAE,CAAC;QAC3C,6EAA6E;QAC7E,GAAG,CAAC,IAAI,CAAC,MAAM,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC;IAC7C,CAAC;SAAM,CAAC;QACN,wDAAwD;QACxD,IAAI,SAAS,EAAE,CAAC;YACd,GAAG,CAAC,IAAI,CAAC,MAAM,kBAAkB,EAAE,CAAC,CAAC;QACvC,CAAC;QACD,GAAG,CAAC,IAAI,CAAC,MAAM,oBAAoB,CAAC,KAAK,CAAC,CAAC,CAAC;IAC9C,CAAC;IAED,OAAO,mBAAmB,CAAC,GAAG,EAAE;QAC9B,YAAY,EAAE,MAAM,CAAC,YAAY;QACjC,SAAS,EAAE,WAAW,CAAC,SAAS;KACjC,CAAC,CAAC;AACL,CAAC"}