@ixo/openhands-sdk 0.3.0 → 0.4.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 (475) hide show
  1. package/dist/cjs/campaign/campaign.js +3 -2
  2. package/dist/cjs/campaign/campaign.js.map +1 -1
  3. package/dist/cjs/campaign/funding.d.ts.map +1 -1
  4. package/dist/cjs/campaign/funding.js +3 -0
  5. package/dist/cjs/campaign/funding.js.map +1 -1
  6. package/dist/cjs/campaign/pool.d.ts.map +1 -1
  7. package/dist/cjs/campaign/pool.js +2 -1
  8. package/dist/cjs/campaign/pool.js.map +1 -1
  9. package/dist/cjs/campaign/spots.d.ts.map +1 -1
  10. package/dist/cjs/campaign/spots.js +8 -6
  11. package/dist/cjs/campaign/spots.js.map +1 -1
  12. package/dist/cjs/chain/ask.d.ts +104 -14
  13. package/dist/cjs/chain/ask.d.ts.map +1 -1
  14. package/dist/cjs/chain/ask.js +151 -78
  15. package/dist/cjs/chain/ask.js.map +1 -1
  16. package/dist/cjs/chain/askImage.d.ts +19 -0
  17. package/dist/cjs/chain/askImage.d.ts.map +1 -0
  18. package/dist/cjs/chain/askImage.js +56 -0
  19. package/dist/cjs/chain/askImage.js.map +1 -0
  20. package/dist/cjs/chain/bridge.d.ts +7 -33
  21. package/dist/cjs/chain/bridge.d.ts.map +1 -1
  22. package/dist/cjs/chain/bridge.js +10 -25
  23. package/dist/cjs/chain/bridge.js.map +1 -1
  24. package/dist/cjs/chain/claimSubmit.d.ts +15 -0
  25. package/dist/cjs/chain/claimSubmit.d.ts.map +1 -0
  26. package/dist/cjs/chain/claimSubmit.js +14 -0
  27. package/dist/cjs/chain/claimSubmit.js.map +1 -0
  28. package/dist/cjs/chain/delegate.d.ts +52 -7
  29. package/dist/cjs/chain/delegate.d.ts.map +1 -1
  30. package/dist/cjs/chain/delegate.js +66 -14
  31. package/dist/cjs/chain/delegate.js.map +1 -1
  32. package/dist/cjs/chain/domainIndexer.d.ts +26 -0
  33. package/dist/cjs/chain/domainIndexer.d.ts.map +1 -0
  34. package/dist/cjs/chain/domainIndexer.js +51 -0
  35. package/dist/cjs/chain/domainIndexer.js.map +1 -0
  36. package/dist/cjs/chain/entityShape.d.ts +27 -2
  37. package/dist/cjs/chain/entityShape.d.ts.map +1 -1
  38. package/dist/cjs/chain/entityShape.js +57 -7
  39. package/dist/cjs/chain/entityShape.js.map +1 -1
  40. package/dist/cjs/chain/env.d.ts +33 -3
  41. package/dist/cjs/chain/env.d.ts.map +1 -1
  42. package/dist/cjs/chain/env.js +38 -6
  43. package/dist/cjs/chain/env.js.map +1 -1
  44. package/dist/cjs/chain/guest.d.ts +14 -0
  45. package/dist/cjs/chain/guest.d.ts.map +1 -1
  46. package/dist/cjs/chain/guest.js +9 -9
  47. package/dist/cjs/chain/guest.js.map +1 -1
  48. package/dist/cjs/chain/money.d.ts +47 -2
  49. package/dist/cjs/chain/money.d.ts.map +1 -1
  50. package/dist/cjs/chain/money.js +63 -6
  51. package/dist/cjs/chain/money.js.map +1 -1
  52. package/dist/cjs/chain/orgReviewBilling.d.ts +124 -0
  53. package/dist/cjs/chain/orgReviewBilling.d.ts.map +1 -0
  54. package/dist/cjs/chain/orgReviewBilling.js +290 -0
  55. package/dist/cjs/chain/orgReviewBilling.js.map +1 -0
  56. package/dist/cjs/chain/orgReviewBillingSign.d.ts +63 -0
  57. package/dist/cjs/chain/orgReviewBillingSign.d.ts.map +1 -0
  58. package/dist/cjs/chain/orgReviewBillingSign.js +166 -0
  59. package/dist/cjs/chain/orgReviewBillingSign.js.map +1 -0
  60. package/dist/cjs/chain/payoutSettings.d.ts +97 -0
  61. package/dist/cjs/chain/payoutSettings.d.ts.map +1 -0
  62. package/dist/cjs/chain/payoutSettings.js +123 -0
  63. package/dist/cjs/chain/payoutSettings.js.map +1 -0
  64. package/dist/cjs/chain/payoutTerms.d.ts +72 -0
  65. package/dist/cjs/chain/payoutTerms.d.ts.map +1 -0
  66. package/dist/cjs/chain/payoutTerms.js +141 -0
  67. package/dist/cjs/chain/payoutTerms.js.map +1 -0
  68. package/dist/cjs/chain/query.d.ts +14 -0
  69. package/dist/cjs/chain/query.d.ts.map +1 -1
  70. package/dist/cjs/chain/query.js +27 -0
  71. package/dist/cjs/chain/query.js.map +1 -1
  72. package/dist/cjs/chain/reviewBilling.d.ts +86 -0
  73. package/dist/cjs/chain/reviewBilling.d.ts.map +1 -0
  74. package/dist/cjs/chain/reviewBilling.js +265 -0
  75. package/dist/cjs/chain/reviewBilling.js.map +1 -0
  76. package/dist/cjs/chain/store.d.ts +7 -6
  77. package/dist/cjs/chain/store.d.ts.map +1 -1
  78. package/dist/cjs/chain/store.js +7 -6
  79. package/dist/cjs/chain/store.js.map +1 -1
  80. package/dist/cjs/chain/subscription.d.ts +0 -7
  81. package/dist/cjs/chain/subscription.d.ts.map +1 -1
  82. package/dist/cjs/chain/subscription.js +4 -47
  83. package/dist/cjs/chain/subscription.js.map +1 -1
  84. package/dist/cjs/chain/takeBack.d.ts +12 -0
  85. package/dist/cjs/chain/takeBack.d.ts.map +1 -1
  86. package/dist/cjs/chain/takeBack.js +24 -10
  87. package/dist/cjs/chain/takeBack.js.map +1 -1
  88. package/dist/cjs/chain/why.d.ts +44 -0
  89. package/dist/cjs/chain/why.d.ts.map +1 -0
  90. package/dist/cjs/chain/why.js +153 -0
  91. package/dist/cjs/chain/why.js.map +1 -0
  92. package/dist/cjs/chain/whyMint.d.ts +8 -0
  93. package/dist/cjs/chain/whyMint.d.ts.map +1 -0
  94. package/dist/cjs/chain/whyMint.js +53 -0
  95. package/dist/cjs/chain/whyMint.js.map +1 -0
  96. package/dist/cjs/chain.d.ts +8 -4
  97. package/dist/cjs/chain.d.ts.map +1 -1
  98. package/dist/cjs/chain.js +19 -9
  99. package/dist/cjs/chain.js.map +1 -1
  100. package/dist/cjs/config.d.ts +11 -5
  101. package/dist/cjs/config.d.ts.map +1 -1
  102. package/dist/cjs/config.js +2 -0
  103. package/dist/cjs/config.js.map +1 -1
  104. package/dist/cjs/data/askEntity.d.ts +40 -0
  105. package/dist/cjs/data/askEntity.d.ts.map +1 -0
  106. package/dist/cjs/data/askEntity.js +48 -0
  107. package/dist/cjs/data/askEntity.js.map +1 -0
  108. package/dist/cjs/data/askLinks.d.ts +6 -0
  109. package/dist/cjs/data/askLinks.d.ts.map +1 -0
  110. package/dist/cjs/data/askLinks.js +21 -0
  111. package/dist/cjs/data/askLinks.js.map +1 -0
  112. package/dist/cjs/data/board/assemble.d.ts.map +1 -1
  113. package/dist/cjs/data/board/assemble.js +15 -2
  114. package/dist/cjs/data/board/assemble.js.map +1 -1
  115. package/dist/cjs/data/board/facts.d.ts +11 -0
  116. package/dist/cjs/data/board/facts.d.ts.map +1 -1
  117. package/dist/cjs/data/board/facts.js +16 -0
  118. package/dist/cjs/data/board/facts.js.map +1 -1
  119. package/dist/cjs/data/board/read.d.ts.map +1 -1
  120. package/dist/cjs/data/board/read.js +2 -1
  121. package/dist/cjs/data/board/read.js.map +1 -1
  122. package/dist/cjs/data/board/types.d.ts +9 -0
  123. package/dist/cjs/data/board/types.d.ts.map +1 -1
  124. package/dist/cjs/data/board/types.js.map +1 -1
  125. package/dist/cjs/data/docs.d.ts +10 -2
  126. package/dist/cjs/data/docs.d.ts.map +1 -1
  127. package/dist/cjs/data/docs.js +43 -3
  128. package/dist/cjs/data/docs.js.map +1 -1
  129. package/dist/cjs/data/format.js +1 -1
  130. package/dist/cjs/data/format.js.map +1 -1
  131. package/dist/cjs/data/install.d.ts +8 -0
  132. package/dist/cjs/data/install.d.ts.map +1 -1
  133. package/dist/cjs/data/install.js +9 -1
  134. package/dist/cjs/data/install.js.map +1 -1
  135. package/dist/cjs/data/oracleInfo.d.ts +6 -1
  136. package/dist/cjs/data/oracleInfo.d.ts.map +1 -1
  137. package/dist/cjs/data/oracleInfo.js +22 -3
  138. package/dist/cjs/data/oracleInfo.js.map +1 -1
  139. package/dist/cjs/data/oracles.d.ts +62 -5
  140. package/dist/cjs/data/oracles.d.ts.map +1 -1
  141. package/dist/cjs/data/oracles.js +90 -11
  142. package/dist/cjs/data/oracles.js.map +1 -1
  143. package/dist/cjs/data/orgPayouts.d.ts +87 -0
  144. package/dist/cjs/data/orgPayouts.d.ts.map +1 -0
  145. package/dist/cjs/data/orgPayouts.js +183 -0
  146. package/dist/cjs/data/orgPayouts.js.map +1 -0
  147. package/dist/cjs/data/plans.d.ts +8 -0
  148. package/dist/cjs/data/plans.d.ts.map +1 -0
  149. package/dist/cjs/data/plans.js +12 -0
  150. package/dist/cjs/data/plans.js.map +1 -0
  151. package/dist/cjs/data/profiles.d.ts +20 -0
  152. package/dist/cjs/data/profiles.d.ts.map +1 -1
  153. package/dist/cjs/data/profiles.js +63 -4
  154. package/dist/cjs/data/profiles.js.map +1 -1
  155. package/dist/cjs/data/receipt.d.ts +7 -0
  156. package/dist/cjs/data/receipt.d.ts.map +1 -1
  157. package/dist/cjs/data/receipt.js +19 -4
  158. package/dist/cjs/data/receipt.js.map +1 -1
  159. package/dist/cjs/data/resources.d.ts +3 -0
  160. package/dist/cjs/data/resources.d.ts.map +1 -1
  161. package/dist/cjs/data/resources.js +4 -1
  162. package/dist/cjs/data/resources.js.map +1 -1
  163. package/dist/cjs/data/threads.d.ts +14 -0
  164. package/dist/cjs/data/threads.d.ts.map +1 -1
  165. package/dist/cjs/data/threads.js +32 -20
  166. package/dist/cjs/data/threads.js.map +1 -1
  167. package/dist/cjs/data/trace.d.ts +8 -0
  168. package/dist/cjs/data/trace.d.ts.map +1 -1
  169. package/dist/cjs/data/trace.js +1 -1
  170. package/dist/cjs/data/trace.js.map +1 -1
  171. package/dist/cjs/data/traceWords.d.ts +4 -1
  172. package/dist/cjs/data/traceWords.d.ts.map +1 -1
  173. package/dist/cjs/data/traceWords.js +8 -2
  174. package/dist/cjs/data/traceWords.js.map +1 -1
  175. package/dist/cjs/data/why.d.ts +38 -0
  176. package/dist/cjs/data/why.d.ts.map +1 -0
  177. package/dist/cjs/data/why.js +86 -0
  178. package/dist/cjs/data/why.js.map +1 -0
  179. package/dist/cjs/data/whyReceipt.d.ts +33 -0
  180. package/dist/cjs/data/whyReceipt.d.ts.map +1 -0
  181. package/dist/cjs/data/whyReceipt.js +291 -0
  182. package/dist/cjs/data/whyReceipt.js.map +1 -0
  183. package/dist/cjs/geo/exifcarry.d.ts +9 -0
  184. package/dist/cjs/geo/exifcarry.d.ts.map +1 -1
  185. package/dist/cjs/geo/exifcarry.js +35 -0
  186. package/dist/cjs/geo/exifcarry.js.map +1 -1
  187. package/dist/cjs/geo/geohash.d.ts +11 -0
  188. package/dist/cjs/geo/geohash.d.ts.map +1 -1
  189. package/dist/cjs/geo/geohash.js +53 -3
  190. package/dist/cjs/geo/geohash.js.map +1 -1
  191. package/dist/cjs/geo/provenance.d.ts +41 -0
  192. package/dist/cjs/geo/provenance.d.ts.map +1 -0
  193. package/dist/cjs/geo/provenance.js +134 -0
  194. package/dist/cjs/geo/provenance.js.map +1 -0
  195. package/dist/cjs/rubric/bridge.d.ts +98 -2
  196. package/dist/cjs/rubric/bridge.d.ts.map +1 -1
  197. package/dist/cjs/rubric/bridge.js +132 -15
  198. package/dist/cjs/rubric/bridge.js.map +1 -1
  199. package/dist/cjs/rubric/card.d.ts +28 -14
  200. package/dist/cjs/rubric/card.d.ts.map +1 -1
  201. package/dist/cjs/rubric/card.js +28 -7
  202. package/dist/cjs/rubric/card.js.map +1 -1
  203. package/dist/cjs/rubric/claimForm.d.ts +116 -0
  204. package/dist/cjs/rubric/claimForm.d.ts.map +1 -1
  205. package/dist/cjs/rubric/claimForm.js +12 -1
  206. package/dist/cjs/rubric/claimForm.js.map +1 -1
  207. package/dist/cjs/rubric/compose.d.ts +5 -0
  208. package/dist/cjs/rubric/compose.d.ts.map +1 -1
  209. package/dist/cjs/rubric/compose.js +9 -3
  210. package/dist/cjs/rubric/compose.js.map +1 -1
  211. package/dist/cjs/rubric/gateMet.d.ts.map +1 -1
  212. package/dist/cjs/rubric/gateMet.js +4 -2
  213. package/dist/cjs/rubric/gateMet.js.map +1 -1
  214. package/dist/cjs/rubric/leg.d.ts +2 -2
  215. package/dist/cjs/rubric/leg.d.ts.map +1 -1
  216. package/dist/cjs/rubric/leg.js +7 -5
  217. package/dist/cjs/rubric/leg.js.map +1 -1
  218. package/dist/cjs/rubric/marketPlan.d.ts +41 -3
  219. package/dist/cjs/rubric/marketPlan.d.ts.map +1 -1
  220. package/dist/cjs/rubric/marketPlan.js +110 -10
  221. package/dist/cjs/rubric/marketPlan.js.map +1 -1
  222. package/dist/cjs/rubric/observation.d.ts +56 -14
  223. package/dist/cjs/rubric/observation.d.ts.map +1 -1
  224. package/dist/cjs/rubric/observation.js +61 -11
  225. package/dist/cjs/rubric/observation.js.map +1 -1
  226. package/dist/cjs/rubric/survey.d.ts +65 -0
  227. package/dist/cjs/rubric/survey.d.ts.map +1 -0
  228. package/dist/cjs/rubric/survey.js +101 -0
  229. package/dist/cjs/rubric/survey.js.map +1 -0
  230. package/dist/cjs/rubric/terms.d.ts +7 -0
  231. package/dist/cjs/rubric/terms.d.ts.map +1 -1
  232. package/dist/cjs/rubric/terms.js +12 -1
  233. package/dist/cjs/rubric/terms.js.map +1 -1
  234. package/dist/cjs/rubric.d.ts +1 -1
  235. package/dist/cjs/rubric.d.ts.map +1 -1
  236. package/dist/cjs/rubric.js +4 -2
  237. package/dist/cjs/rubric.js.map +1 -1
  238. package/dist/esm/campaign/campaign.js +4 -3
  239. package/dist/esm/campaign/campaign.js.map +1 -1
  240. package/dist/esm/campaign/funding.d.ts.map +1 -1
  241. package/dist/esm/campaign/funding.js +3 -0
  242. package/dist/esm/campaign/funding.js.map +1 -1
  243. package/dist/esm/campaign/pool.d.ts.map +1 -1
  244. package/dist/esm/campaign/pool.js +2 -1
  245. package/dist/esm/campaign/pool.js.map +1 -1
  246. package/dist/esm/campaign/spots.d.ts.map +1 -1
  247. package/dist/esm/campaign/spots.js +8 -6
  248. package/dist/esm/campaign/spots.js.map +1 -1
  249. package/dist/esm/chain/ask.d.ts +104 -14
  250. package/dist/esm/chain/ask.d.ts.map +1 -1
  251. package/dist/esm/chain/ask.js +152 -80
  252. package/dist/esm/chain/ask.js.map +1 -1
  253. package/dist/esm/chain/askImage.d.ts +19 -0
  254. package/dist/esm/chain/askImage.d.ts.map +1 -0
  255. package/dist/esm/chain/askImage.js +50 -0
  256. package/dist/esm/chain/askImage.js.map +1 -0
  257. package/dist/esm/chain/bridge.d.ts +7 -33
  258. package/dist/esm/chain/bridge.d.ts.map +1 -1
  259. package/dist/esm/chain/bridge.js +10 -24
  260. package/dist/esm/chain/bridge.js.map +1 -1
  261. package/dist/esm/chain/claimSubmit.d.ts +15 -0
  262. package/dist/esm/chain/claimSubmit.d.ts.map +1 -0
  263. package/dist/esm/chain/claimSubmit.js +10 -0
  264. package/dist/esm/chain/claimSubmit.js.map +1 -0
  265. package/dist/esm/chain/delegate.d.ts +52 -7
  266. package/dist/esm/chain/delegate.d.ts.map +1 -1
  267. package/dist/esm/chain/delegate.js +64 -13
  268. package/dist/esm/chain/delegate.js.map +1 -1
  269. package/dist/esm/chain/domainIndexer.d.ts +26 -0
  270. package/dist/esm/chain/domainIndexer.d.ts.map +1 -0
  271. package/dist/esm/chain/domainIndexer.js +48 -0
  272. package/dist/esm/chain/domainIndexer.js.map +1 -0
  273. package/dist/esm/chain/entityShape.d.ts +27 -2
  274. package/dist/esm/chain/entityShape.d.ts.map +1 -1
  275. package/dist/esm/chain/entityShape.js +53 -6
  276. package/dist/esm/chain/entityShape.js.map +1 -1
  277. package/dist/esm/chain/env.d.ts +33 -3
  278. package/dist/esm/chain/env.d.ts.map +1 -1
  279. package/dist/esm/chain/env.js +33 -5
  280. package/dist/esm/chain/env.js.map +1 -1
  281. package/dist/esm/chain/guest.d.ts +14 -0
  282. package/dist/esm/chain/guest.d.ts.map +1 -1
  283. package/dist/esm/chain/guest.js +7 -8
  284. package/dist/esm/chain/guest.js.map +1 -1
  285. package/dist/esm/chain/money.d.ts +47 -2
  286. package/dist/esm/chain/money.d.ts.map +1 -1
  287. package/dist/esm/chain/money.js +54 -4
  288. package/dist/esm/chain/money.js.map +1 -1
  289. package/dist/esm/chain/orgReviewBilling.d.ts +124 -0
  290. package/dist/esm/chain/orgReviewBilling.d.ts.map +1 -0
  291. package/dist/esm/chain/orgReviewBilling.js +241 -0
  292. package/dist/esm/chain/orgReviewBilling.js.map +1 -0
  293. package/dist/esm/chain/orgReviewBillingSign.d.ts +63 -0
  294. package/dist/esm/chain/orgReviewBillingSign.d.ts.map +1 -0
  295. package/dist/esm/chain/orgReviewBillingSign.js +124 -0
  296. package/dist/esm/chain/orgReviewBillingSign.js.map +1 -0
  297. package/dist/esm/chain/payoutSettings.d.ts +97 -0
  298. package/dist/esm/chain/payoutSettings.d.ts.map +1 -0
  299. package/dist/esm/chain/payoutSettings.js +111 -0
  300. package/dist/esm/chain/payoutSettings.js.map +1 -0
  301. package/dist/esm/chain/payoutTerms.d.ts +72 -0
  302. package/dist/esm/chain/payoutTerms.d.ts.map +1 -0
  303. package/dist/esm/chain/payoutTerms.js +127 -0
  304. package/dist/esm/chain/payoutTerms.js.map +1 -0
  305. package/dist/esm/chain/query.d.ts +14 -0
  306. package/dist/esm/chain/query.d.ts.map +1 -1
  307. package/dist/esm/chain/query.js +25 -0
  308. package/dist/esm/chain/query.js.map +1 -1
  309. package/dist/esm/chain/reviewBilling.d.ts +86 -0
  310. package/dist/esm/chain/reviewBilling.d.ts.map +1 -0
  311. package/dist/esm/chain/reviewBilling.js +215 -0
  312. package/dist/esm/chain/reviewBilling.js.map +1 -0
  313. package/dist/esm/chain/store.d.ts +7 -6
  314. package/dist/esm/chain/store.d.ts.map +1 -1
  315. package/dist/esm/chain/store.js +7 -6
  316. package/dist/esm/chain/store.js.map +1 -1
  317. package/dist/esm/chain/subscription.d.ts +0 -7
  318. package/dist/esm/chain/subscription.d.ts.map +1 -1
  319. package/dist/esm/chain/subscription.js +4 -13
  320. package/dist/esm/chain/subscription.js.map +1 -1
  321. package/dist/esm/chain/takeBack.d.ts +12 -0
  322. package/dist/esm/chain/takeBack.d.ts.map +1 -1
  323. package/dist/esm/chain/takeBack.js +22 -9
  324. package/dist/esm/chain/takeBack.js.map +1 -1
  325. package/dist/esm/chain/why.d.ts +44 -0
  326. package/dist/esm/chain/why.d.ts.map +1 -0
  327. package/dist/esm/chain/why.js +111 -0
  328. package/dist/esm/chain/why.js.map +1 -0
  329. package/dist/esm/chain/whyMint.d.ts +8 -0
  330. package/dist/esm/chain/whyMint.d.ts.map +1 -0
  331. package/dist/esm/chain/whyMint.js +17 -0
  332. package/dist/esm/chain/whyMint.js.map +1 -0
  333. package/dist/esm/chain.d.ts +8 -4
  334. package/dist/esm/chain.d.ts.map +1 -1
  335. package/dist/esm/chain.js +9 -4
  336. package/dist/esm/chain.js.map +1 -1
  337. package/dist/esm/config.d.ts +11 -5
  338. package/dist/esm/config.d.ts.map +1 -1
  339. package/dist/esm/config.js +3 -1
  340. package/dist/esm/config.js.map +1 -1
  341. package/dist/esm/data/askEntity.d.ts +40 -0
  342. package/dist/esm/data/askEntity.d.ts.map +1 -0
  343. package/dist/esm/data/askEntity.js +41 -0
  344. package/dist/esm/data/askEntity.js.map +1 -0
  345. package/dist/esm/data/askLinks.d.ts +6 -0
  346. package/dist/esm/data/askLinks.d.ts.map +1 -0
  347. package/dist/esm/data/askLinks.js +16 -0
  348. package/dist/esm/data/askLinks.js.map +1 -0
  349. package/dist/esm/data/board/assemble.d.ts.map +1 -1
  350. package/dist/esm/data/board/assemble.js +15 -2
  351. package/dist/esm/data/board/assemble.js.map +1 -1
  352. package/dist/esm/data/board/facts.d.ts +11 -0
  353. package/dist/esm/data/board/facts.d.ts.map +1 -1
  354. package/dist/esm/data/board/facts.js +15 -0
  355. package/dist/esm/data/board/facts.js.map +1 -1
  356. package/dist/esm/data/board/read.d.ts.map +1 -1
  357. package/dist/esm/data/board/read.js +2 -1
  358. package/dist/esm/data/board/read.js.map +1 -1
  359. package/dist/esm/data/board/types.d.ts +9 -0
  360. package/dist/esm/data/board/types.d.ts.map +1 -1
  361. package/dist/esm/data/board/types.js.map +1 -1
  362. package/dist/esm/data/docs.d.ts +10 -2
  363. package/dist/esm/data/docs.d.ts.map +1 -1
  364. package/dist/esm/data/docs.js +43 -4
  365. package/dist/esm/data/docs.js.map +1 -1
  366. package/dist/esm/data/format.js +1 -1
  367. package/dist/esm/data/format.js.map +1 -1
  368. package/dist/esm/data/install.d.ts +8 -0
  369. package/dist/esm/data/install.d.ts.map +1 -1
  370. package/dist/esm/data/install.js +8 -0
  371. package/dist/esm/data/install.js.map +1 -1
  372. package/dist/esm/data/oracleInfo.d.ts +6 -1
  373. package/dist/esm/data/oracleInfo.d.ts.map +1 -1
  374. package/dist/esm/data/oracleInfo.js +22 -3
  375. package/dist/esm/data/oracleInfo.js.map +1 -1
  376. package/dist/esm/data/oracles.d.ts +62 -5
  377. package/dist/esm/data/oracles.d.ts.map +1 -1
  378. package/dist/esm/data/oracles.js +87 -12
  379. package/dist/esm/data/oracles.js.map +1 -1
  380. package/dist/esm/data/orgPayouts.d.ts +87 -0
  381. package/dist/esm/data/orgPayouts.d.ts.map +1 -0
  382. package/dist/esm/data/orgPayouts.js +170 -0
  383. package/dist/esm/data/orgPayouts.js.map +1 -0
  384. package/dist/esm/data/plans.d.ts +8 -0
  385. package/dist/esm/data/plans.d.ts.map +1 -0
  386. package/dist/esm/data/plans.js +8 -0
  387. package/dist/esm/data/plans.js.map +1 -0
  388. package/dist/esm/data/profiles.d.ts +20 -0
  389. package/dist/esm/data/profiles.d.ts.map +1 -1
  390. package/dist/esm/data/profiles.js +60 -4
  391. package/dist/esm/data/profiles.js.map +1 -1
  392. package/dist/esm/data/receipt.d.ts +7 -0
  393. package/dist/esm/data/receipt.d.ts.map +1 -1
  394. package/dist/esm/data/receipt.js +20 -5
  395. package/dist/esm/data/receipt.js.map +1 -1
  396. package/dist/esm/data/resources.d.ts +3 -0
  397. package/dist/esm/data/resources.d.ts.map +1 -1
  398. package/dist/esm/data/resources.js +2 -0
  399. package/dist/esm/data/resources.js.map +1 -1
  400. package/dist/esm/data/threads.d.ts +14 -0
  401. package/dist/esm/data/threads.d.ts.map +1 -1
  402. package/dist/esm/data/threads.js +32 -21
  403. package/dist/esm/data/threads.js.map +1 -1
  404. package/dist/esm/data/trace.d.ts +8 -0
  405. package/dist/esm/data/trace.d.ts.map +1 -1
  406. package/dist/esm/data/trace.js +1 -1
  407. package/dist/esm/data/trace.js.map +1 -1
  408. package/dist/esm/data/traceWords.d.ts +4 -1
  409. package/dist/esm/data/traceWords.d.ts.map +1 -1
  410. package/dist/esm/data/traceWords.js +8 -2
  411. package/dist/esm/data/traceWords.js.map +1 -1
  412. package/dist/esm/data/why.d.ts +38 -0
  413. package/dist/esm/data/why.d.ts.map +1 -0
  414. package/dist/esm/data/why.js +78 -0
  415. package/dist/esm/data/why.js.map +1 -0
  416. package/dist/esm/data/whyReceipt.d.ts +33 -0
  417. package/dist/esm/data/whyReceipt.d.ts.map +1 -0
  418. package/dist/esm/data/whyReceipt.js +284 -0
  419. package/dist/esm/data/whyReceipt.js.map +1 -0
  420. package/dist/esm/geo/exifcarry.d.ts +9 -0
  421. package/dist/esm/geo/exifcarry.d.ts.map +1 -1
  422. package/dist/esm/geo/exifcarry.js +34 -0
  423. package/dist/esm/geo/exifcarry.js.map +1 -1
  424. package/dist/esm/geo/geohash.d.ts +11 -0
  425. package/dist/esm/geo/geohash.d.ts.map +1 -1
  426. package/dist/esm/geo/geohash.js +52 -3
  427. package/dist/esm/geo/geohash.js.map +1 -1
  428. package/dist/esm/geo/provenance.d.ts +41 -0
  429. package/dist/esm/geo/provenance.d.ts.map +1 -0
  430. package/dist/esm/geo/provenance.js +129 -0
  431. package/dist/esm/geo/provenance.js.map +1 -0
  432. package/dist/esm/rubric/bridge.d.ts +98 -2
  433. package/dist/esm/rubric/bridge.d.ts.map +1 -1
  434. package/dist/esm/rubric/bridge.js +130 -14
  435. package/dist/esm/rubric/bridge.js.map +1 -1
  436. package/dist/esm/rubric/card.d.ts +28 -14
  437. package/dist/esm/rubric/card.d.ts.map +1 -1
  438. package/dist/esm/rubric/card.js +24 -5
  439. package/dist/esm/rubric/card.js.map +1 -1
  440. package/dist/esm/rubric/claimForm.d.ts +116 -0
  441. package/dist/esm/rubric/claimForm.d.ts.map +1 -1
  442. package/dist/esm/rubric/claimForm.js +11 -0
  443. package/dist/esm/rubric/claimForm.js.map +1 -1
  444. package/dist/esm/rubric/compose.d.ts +5 -0
  445. package/dist/esm/rubric/compose.d.ts.map +1 -1
  446. package/dist/esm/rubric/compose.js +7 -2
  447. package/dist/esm/rubric/compose.js.map +1 -1
  448. package/dist/esm/rubric/gateMet.d.ts.map +1 -1
  449. package/dist/esm/rubric/gateMet.js +4 -2
  450. package/dist/esm/rubric/gateMet.js.map +1 -1
  451. package/dist/esm/rubric/leg.d.ts +2 -2
  452. package/dist/esm/rubric/leg.d.ts.map +1 -1
  453. package/dist/esm/rubric/leg.js +7 -5
  454. package/dist/esm/rubric/leg.js.map +1 -1
  455. package/dist/esm/rubric/marketPlan.d.ts +41 -3
  456. package/dist/esm/rubric/marketPlan.d.ts.map +1 -1
  457. package/dist/esm/rubric/marketPlan.js +107 -9
  458. package/dist/esm/rubric/marketPlan.js.map +1 -1
  459. package/dist/esm/rubric/observation.d.ts +56 -14
  460. package/dist/esm/rubric/observation.d.ts.map +1 -1
  461. package/dist/esm/rubric/observation.js +61 -12
  462. package/dist/esm/rubric/observation.js.map +1 -1
  463. package/dist/esm/rubric/survey.d.ts +65 -0
  464. package/dist/esm/rubric/survey.d.ts.map +1 -0
  465. package/dist/esm/rubric/survey.js +94 -0
  466. package/dist/esm/rubric/survey.js.map +1 -0
  467. package/dist/esm/rubric/terms.d.ts +7 -0
  468. package/dist/esm/rubric/terms.d.ts.map +1 -1
  469. package/dist/esm/rubric/terms.js +12 -2
  470. package/dist/esm/rubric/terms.js.map +1 -1
  471. package/dist/esm/rubric.d.ts +1 -1
  472. package/dist/esm/rubric.d.ts.map +1 -1
  473. package/dist/esm/rubric.js +1 -1
  474. package/dist/esm/rubric.js.map +1 -1
  475. package/package.json +8 -2
@@ -0,0 +1,97 @@
1
+ import { type PayoutRail } from "./payoutTerms.ts";
2
+ /** "chain" is today's on-chain escrow; the others are paid off chain by the facilitator. */
3
+ export type SettingsRail = "chain" | PayoutRail;
4
+ export declare const SETTINGS_RAILS: readonly SettingsRail[];
5
+ export interface PayoutSettings {
6
+ v: 1;
7
+ /** The company's facilitator, as a canonical did:web. Absent when the company pays on chain only. */
8
+ facilitator?: string;
9
+ /** The rails the company pays on, in its own order. */
10
+ rails: SettingsRail[];
11
+ /** The oracles the company allows; the first is the default. */
12
+ oracles: string[];
13
+ /** What off-chain amounts are quoted in. Absent: USD. */
14
+ currency?: "USD" | "USDC";
15
+ }
16
+ export interface SettingsInput {
17
+ /** Needed only for the off-chain rails (usdc_base, stripe); blank or absent for a chain-only company. */
18
+ facilitator?: string;
19
+ rails: string[];
20
+ oracles: string[];
21
+ currency?: string;
22
+ }
23
+ export declare function buildPayoutSettings(input: SettingsInput): PayoutSettings;
24
+ /** The document as stored, believed field by field; anything else is null. */
25
+ export declare function readPayoutSettings(doc: unknown): PayoutSettings | null;
26
+ /** The exact bytes that are published and hashed. */
27
+ export declare const payoutSettingsJson: (settings: PayoutSettings) => string;
28
+ export declare const payoutSettingsCid: (settings: PayoutSettings) => Promise<string>;
29
+ /** The linked resource on the org's IID; the endpoint is the https address its store gave, as `#payoutTerms`. */
30
+ export declare const payoutSettingsResource: (ref: {
31
+ cid: string;
32
+ url?: string;
33
+ uri?: string;
34
+ }) => {
35
+ type: string;
36
+ id: string;
37
+ description: string;
38
+ mediaType: string;
39
+ serviceEndpoint: string;
40
+ proof: string;
41
+ encrypted: string;
42
+ right: string;
43
+ };
44
+ /** Where an org's settings are, found by id suffix. */
45
+ export declare function payoutSettingsRef(linked: {
46
+ id?: string | null;
47
+ proof?: string | null;
48
+ }[] | null | undefined): {
49
+ id: string;
50
+ cid: string;
51
+ } | null;
52
+ /** The fetched bytes, believed only when they hash to the anchored CID. */
53
+ export declare function verifiedPayoutSettings(text: string | null, cid: string): Promise<PayoutSettings | null>;
54
+ /**
55
+ * Whether `address` may edit this IID: a key in its `authentication` with that
56
+ * account (a `controller` entry is not enough — the chain answers code 1106).
57
+ * The org-admin check of OpenHands HQ, shared with the worker's shaped post.
58
+ * shortcut: matches on blockchainAccountID only, as every key minted by createIidVerificationMethods has one; upgrade if an org authenticates by bare public key.
59
+ */
60
+ export declare function canEditIid(doc: {
61
+ verificationMethod?: {
62
+ id?: string;
63
+ blockchainAccountID?: string;
64
+ }[] | null;
65
+ authentication?: string[] | null;
66
+ } | null | undefined, address: string): boolean;
67
+ /** The settings edit, as one transaction's IID messages: the old resource out (when there is one) and the new one in. */
68
+ export declare function replaceSettingsMsgs(org: string, signer: string, stored: {
69
+ cid: string;
70
+ url: string;
71
+ }, oldId: string | null): ({
72
+ typeUrl: "/ixo.iid.v1beta1.MsgDeleteLinkedResource";
73
+ value: {
74
+ id: string;
75
+ resourceId: string;
76
+ signer: string;
77
+ linkedResource?: undefined;
78
+ };
79
+ } | {
80
+ typeUrl: "/ixo.iid.v1beta1.MsgAddLinkedResource";
81
+ value: {
82
+ id: string;
83
+ signer: string;
84
+ linkedResource: {
85
+ type: string;
86
+ id: string;
87
+ description: string;
88
+ mediaType: string;
89
+ serviceEndpoint: string;
90
+ proof: string;
91
+ encrypted: string;
92
+ right: string;
93
+ };
94
+ resourceId?: undefined;
95
+ };
96
+ })[];
97
+ //# sourceMappingURL=payoutSettings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"payoutSettings.d.ts","sourceRoot":"","sources":["../../../src/chain/payoutSettings.ts"],"names":[],"mappings":"AAYA,OAAO,EAA+B,KAAK,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEhF,4FAA4F;AAC5F,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,UAAU,CAAC;AAChD,eAAO,MAAM,cAAc,EAAE,SAAS,YAAY,EAAqC,CAAC;AAMxF,MAAM,WAAW,cAAc;IAC7B,CAAC,EAAE,CAAC,CAAC;IACL,qGAAqG;IACrG,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,uDAAuD;IACvD,KAAK,EAAE,YAAY,EAAE,CAAC;IACtB,gEAAgE;IAChE,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,yDAAyD;IACzD,QAAQ,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,aAAa;IAC5B,yGAAyG;IACzG,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,aAAa,GAAG,cAAc,CAexE;AAED,8EAA8E;AAC9E,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,OAAO,GAAG,cAAc,GAAG,IAAI,CAatE;AAED,qDAAqD;AACrD,eAAO,MAAM,kBAAkB,GAAI,UAAU,cAAc,KAAG,MAAkC,CAAC;AAEjG,eAAO,MAAM,iBAAiB,GAAI,UAAU,cAAc,KAAG,OAAO,CAAC,MAAM,CAA4C,CAAC;AAExH,iHAAiH;AACjH,eAAO,MAAM,sBAAsB,GAAI,KAAK;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE;;;;;;;;;CASrF,CAAC;AAEH,uDAAuD;AACvD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE;IAAE,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,EAAE,GAAG,IAAI,GAAG,SAAS,GAAG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAGhJ;AAED,2EAA2E;AAC3E,wBAAsB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAO7G;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE;IAAE,kBAAkB,CAAC,EAAE;QAAE,EAAE,CAAC,EAAE,MAAM,CAAC;QAAC,mBAAmB,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,GAAG,IAAI,CAAC;IAAC,cAAc,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAA;CAAE,GAAG,IAAI,GAAG,SAAS,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAI9L;AAED,yHAAyH;AACzH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;KAK1H"}
@@ -0,0 +1,111 @@
1
+ /**
2
+ * A company's payout settings (OpenHands HQ), on the org's own chain record.
3
+ *
4
+ * One linked resource on the org's IID, `{orgDid}#payoutSettings`, points at
5
+ * this small JSON document by the https address its store gave (Vault or
6
+ * gateway) with the CID as its proof — stored
7
+ * and anchored exactly as `#payoutTerms` is (payoutTerms.ts). An ask posted for
8
+ * the org builds its `#payoutTerms` from these plus the poster's per-ask
9
+ * choices. Strict: unknown fields, a bad value or a CID that is not the bytes'
10
+ * own read as no settings at all.
11
+ */
12
+ import { cidOfText } from "../udid/cid.js";
13
+ import { facilitatorDid, storedHttps } from "./payoutTerms.js";
14
+ export const SETTINGS_RAILS = ["chain", "usdc_base", "stripe"];
15
+ const KEYS = ["v", "facilitator", "rails", "oracles", "currency"];
16
+ const MAX_ORACLES = 10;
17
+ // An oracle the company allows: its did:web (IXO's and hosted oracles) or its on-chain entity.
18
+ const ORACLE = /^(did:web:[a-z0-9.-]+(%3A\d+)?(:[A-Za-z0-9._~-]+)*|did:ixo:entity:[0-9a-f]{32})$/;
19
+ export function buildPayoutSettings(input) {
20
+ const rails = [...new Set(input.rails)];
21
+ if (rails.length === 0 || !rails.every((rail) => SETTINGS_RAILS.includes(rail)))
22
+ throw new Error(`rails are some of ${SETTINGS_RAILS.join(", ")}, at least one`);
23
+ const oracles = [...new Set(input.oracles.map((one) => one.trim()).filter(Boolean))];
24
+ if (oracles.length === 0)
25
+ throw new Error("name at least one oracle");
26
+ if (oracles.length > MAX_ORACLES)
27
+ throw new Error(`at most ${MAX_ORACLES} oracles`);
28
+ const bad = oracles.find((one) => !ORACLE.test(one));
29
+ if (bad)
30
+ throw new Error(`an oracle is a did:web or a did:ixo:entity, not ${bad}`);
31
+ if (input.currency !== undefined && input.currency !== "USD" && input.currency !== "USDC")
32
+ throw new Error(`currency is USD or USDC, not ${input.currency}`);
33
+ if (input.currency === "USDC" && rails.includes("stripe"))
34
+ throw new Error("Stripe pays in USD");
35
+ const facilitator = input.facilitator?.trim();
36
+ const offChain = rails.filter((rail) => rail !== "chain");
37
+ if (!facilitator && offChain.length)
38
+ throw new Error(`${offChain.join(" and ")} ${offChain.length === 1 ? "is" : "are"} paid by the company's facilitator: name one`);
39
+ /* Key order is the stored bytes' (and so the CID's): a doc with a facilitator reads exactly as it was written. */
40
+ return { v: 1, ...(facilitator ? { facilitator: facilitatorDid(facilitator) } : {}), rails, oracles, ...(input.currency ? { currency: input.currency } : {}) };
41
+ }
42
+ /** The document as stored, believed field by field; anything else is null. */
43
+ export function readPayoutSettings(doc) {
44
+ if (!doc || typeof doc !== "object" || Array.isArray(doc))
45
+ return null;
46
+ if (Object.keys(doc).some((key) => !KEYS.includes(key)))
47
+ return null;
48
+ const d = doc;
49
+ if (d.v !== 1 || !Array.isArray(d.rails) || !Array.isArray(d.oracles) || (d.facilitator !== undefined && typeof d.facilitator !== "string"))
50
+ return null;
51
+ if (!d.rails.every((rail) => typeof rail === "string") || !d.oracles.every((one) => typeof one === "string"))
52
+ return null;
53
+ try {
54
+ const built = buildPayoutSettings({ ...(d.facilitator !== undefined ? { facilitator: d.facilitator } : {}), rails: d.rails, oracles: d.oracles, ...(d.currency !== undefined ? { currency: d.currency } : {}) });
55
+ // Canonical only: what was stored must be what the builder writes, or a reader and the facilitator could disagree.
56
+ return payoutSettingsJson(built) === JSON.stringify(doc) ? built : null;
57
+ }
58
+ catch {
59
+ return null;
60
+ }
61
+ }
62
+ /** The exact bytes that are published and hashed. */
63
+ export const payoutSettingsJson = (settings) => JSON.stringify(settings);
64
+ export const payoutSettingsCid = (settings) => cidOfText(payoutSettingsJson(settings));
65
+ /** The linked resource on the org's IID; the endpoint is the https address its store gave, as `#payoutTerms`. */
66
+ export const payoutSettingsResource = (ref) => ({
67
+ type: "PayoutSettings",
68
+ id: "{id}#payoutSettings",
69
+ description: "How this organisation pays for answers",
70
+ mediaType: "application/json",
71
+ serviceEndpoint: storedHttps(ref, "#payoutSettings"),
72
+ proof: ref.cid,
73
+ encrypted: "false",
74
+ right: ""
75
+ });
76
+ /** Where an org's settings are, found by id suffix. */
77
+ export function payoutSettingsRef(linked) {
78
+ const found = (linked ?? []).find((one) => typeof one?.id === "string" && one.id.endsWith("#payoutSettings"));
79
+ return found?.id && found.proof ? { id: found.id, cid: found.proof } : null;
80
+ }
81
+ /** The fetched bytes, believed only when they hash to the anchored CID. */
82
+ export async function verifiedPayoutSettings(text, cid) {
83
+ if (text === null || (await cidOfText(text)) !== cid)
84
+ return null;
85
+ try {
86
+ return readPayoutSettings(JSON.parse(text));
87
+ }
88
+ catch {
89
+ return null;
90
+ }
91
+ }
92
+ /**
93
+ * Whether `address` may edit this IID: a key in its `authentication` with that
94
+ * account (a `controller` entry is not enough — the chain answers code 1106).
95
+ * The org-admin check of OpenHands HQ, shared with the worker's shaped post.
96
+ * shortcut: matches on blockchainAccountID only, as every key minted by createIidVerificationMethods has one; upgrade if an org authenticates by bare public key.
97
+ */
98
+ export function canEditIid(doc, address) {
99
+ if (!doc || !address)
100
+ return false;
101
+ const authn = new Set(doc.authentication ?? []);
102
+ return (doc.verificationMethod ?? []).some((method) => authn.has(method.id ?? "") && (method.blockchainAccountID ?? "").split(":").pop() === address);
103
+ }
104
+ /** The settings edit, as one transaction's IID messages: the old resource out (when there is one) and the new one in. */
105
+ export function replaceSettingsMsgs(org, signer, stored, oldId) {
106
+ return [
107
+ ...(oldId ? [{ typeUrl: "/ixo.iid.v1beta1.MsgDeleteLinkedResource", value: { id: org, resourceId: oldId, signer } }] : []),
108
+ { typeUrl: "/ixo.iid.v1beta1.MsgAddLinkedResource", value: { id: org, signer, linkedResource: payoutSettingsResource(stored) } }
109
+ ];
110
+ }
111
+ //# sourceMappingURL=payoutSettings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"payoutSettings.js","sourceRoot":"","sources":["../../../src/chain/payoutSettings.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,72 @@
1
+ export type PayoutRail = "usdc_base" | "stripe";
2
+ export interface PayoutTerms {
3
+ v: 1;
4
+ /** The organisation that pays: its did:ixo:entity, the collection's `entity`. */
5
+ org: string;
6
+ /** The org's facilitator, as a canonical did:web. */
7
+ facilitator: string;
8
+ rails: PayoutRail[];
9
+ /** Per approved answer, a decimal string: two decimals for USD, up to six for USDC. */
10
+ amount: string;
11
+ /** USD when the rails include stripe; USDC only with usdc_base alone (which also pays USD 1:1). */
12
+ currency: "USD" | "USDC";
13
+ payee: "submitter";
14
+ /** A hint, not authority: the org's trusted-oracle list decides. */
15
+ oracle?: string;
16
+ }
17
+ export interface PayoutInput {
18
+ org: string;
19
+ facilitator: string;
20
+ rail: PayoutRail;
21
+ amount: number;
22
+ currency: string;
23
+ oracle?: string;
24
+ }
25
+ /** `https://host/any/path` or `did:web:host[:path]` → `did:web:host`, a port as `%3A`. */
26
+ export declare function facilitatorDid(facilitator: string): string;
27
+ /** The facilitator's https origin, from either form. */
28
+ export declare const facilitatorOrigin: (facilitator: string) => string;
29
+ export declare function buildPayoutTerms(input: PayoutInput): PayoutTerms;
30
+ /** The document as stored, believed field by field; anything else is null. */
31
+ export declare function readPayoutTerms(doc: unknown): PayoutTerms | null;
32
+ /** The exact bytes that are published and hashed. */
33
+ export declare const payoutTermsJson: (terms: PayoutTerms) => string;
34
+ /** CIDv1 raw sha256 of those bytes: the facilitator recomputes it and refuses a mismatch. */
35
+ export declare const payoutTermsCid: (terms: PayoutTerms) => Promise<string>;
36
+ /** The https address the store gave (`url` from the browser's store, `uri` from the worker's); an extra resource is never `ipfs:`. */
37
+ export declare function storedHttps(ref: {
38
+ url?: string;
39
+ uri?: string;
40
+ }, what: string): string;
41
+ /** The linked resource on the ask entity. Wrap in `ixo.iid.v1beta1.LinkedResource.fromPartial` at the call site. The proof is the CID the facilitator recomputes. */
42
+ export declare const payoutTermsResource: (ref: {
43
+ cid: string;
44
+ url?: string;
45
+ uri?: string;
46
+ }) => {
47
+ type: string;
48
+ id: string;
49
+ description: string;
50
+ mediaType: string;
51
+ serviceEndpoint: string;
52
+ proof: string;
53
+ encrypted: string;
54
+ right: string;
55
+ };
56
+ /** Where an entity's payout terms are, found by id suffix as the engine finds `#vct`. */
57
+ export declare function payoutTermsRef(linked: {
58
+ id?: string | null;
59
+ serviceEndpoint?: string | null;
60
+ proof?: string | null;
61
+ }[]): {
62
+ cid: string;
63
+ url: string;
64
+ } | null;
65
+ /** What the ask's own `#done` terms carry for the board: no org, no facilitator, those are this document's. */
66
+ export declare const payoutSummary: (terms: PayoutTerms) => {
67
+ rail: PayoutRail;
68
+ amount: string;
69
+ currency: "USD" | "USDC";
70
+ };
71
+ export declare const railWords: (rail: PayoutRail) => string;
72
+ //# sourceMappingURL=payoutTerms.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"payoutTerms.d.ts","sourceRoot":"","sources":["../../../src/chain/payoutTerms.ts"],"names":[],"mappings":"AAYA,MAAM,MAAM,UAAU,GAAG,WAAW,GAAG,QAAQ,CAAC;AAIhD,MAAM,WAAW,WAAW;IAC1B,CAAC,EAAE,CAAC,CAAC;IACL,iFAAiF;IACjF,GAAG,EAAE,MAAM,CAAC;IACZ,qDAAqD;IACrD,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,uFAAuF;IACvF,MAAM,EAAE,MAAM,CAAC;IACf,mGAAmG;IACnG,QAAQ,EAAE,KAAK,GAAG,MAAM,CAAC;IACzB,KAAK,EAAE,WAAW,CAAC;IACnB,oEAAoE;IACpE,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,UAAU,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAQD,0FAA0F;AAC1F,wBAAgB,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAU1D;AAED,wDAAwD;AACxD,eAAO,MAAM,iBAAiB,GAAI,aAAa,MAAM,KAAG,MAAgG,CAAC;AAEzJ,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,WAAW,GAAG,WAAW,CAuBhE;AAED,8EAA8E;AAC9E,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,GAAG,WAAW,GAAG,IAAI,CAkBhE;AAED,qDAAqD;AACrD,eAAO,MAAM,eAAe,GAAI,OAAO,WAAW,KAAG,MAA+B,CAAC;AAErF,6FAA6F;AAC7F,eAAO,MAAM,cAAc,GAAI,OAAO,WAAW,KAAG,OAAO,CAAC,MAAM,CAAsC,CAAC;AAEzG,sIAAsI;AACtI,wBAAgB,WAAW,CAAC,GAAG,EAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAIrF;AAED,qKAAqK;AACrK,eAAO,MAAM,mBAAmB,GAAI,KAAK;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE;;;;;;;;;CASlF,CAAC;AAEH,yFAAyF;AACzF,wBAAgB,cAAc,CAAC,MAAM,EAAE;IAAE,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,EAAE,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAG5J;AAED,+GAA+G;AAC/G,eAAO,MAAM,aAAa,GAAI,OAAO,WAAW;;;;CAAgF,CAAC;AAEjI,eAAO,MAAM,SAAS,GAAI,MAAM,UAAU,KAAG,MAAyE,CAAC"}
@@ -0,0 +1,127 @@
1
+ /**
2
+ * How an ask paid off chain pays (OpenHands HQ, ways B and C).
3
+ *
4
+ * The approval leg of such an ask is empty, so the chain pays nobody; the
5
+ * organisation's facilitator reads this document at `{askDid}#payoutTerms`
6
+ * and pays the submitter on USDC on Base or Stripe once an approved oracle
7
+ * approves. **The shape is S4's #payoutTerms v1 contract (confirmed
8
+ * 2026-10-13); strict, unknown fields are refused.** This file is the only
9
+ * writer and reader, so a change to it is a change here.
10
+ */
11
+ import { cidOfText } from "../udid/cid.js";
12
+ const RAILS = ["usdc_base", "stripe"];
13
+ const KEYS = ["v", "org", "facilitator", "rails", "amount", "currency", "payee", "oracle"];
14
+ const ORG = /^did:ixo:entity:[0-9a-f]{32}$/;
15
+ const HOST = /^[a-z0-9.-]+(%3a\d+)?$/i;
16
+ // The facilitator verifies the oracle by did:web or did:key; an on-chain entity DID is not one.
17
+ const WEB_OR_KEY = (did) => did.startsWith("did:web:") || did.startsWith("did:key:");
18
+ const MAX_DECIMALS = { USD: 2, USDC: 6 };
19
+ /** `https://host/any/path` or `did:web:host[:path]` → `did:web:host`, a port as `%3A`. */
20
+ export function facilitatorDid(facilitator) {
21
+ const value = facilitator.trim();
22
+ if (value.toLowerCase().startsWith("did:web:")) {
23
+ const host = value.slice("did:web:".length).split(":")[0] ?? "";
24
+ if (!host || !HOST.test(host))
25
+ throw new Error(`not a facilitator did:web: ${facilitator}`);
26
+ return `did:web:${host.toLowerCase().replace(/%3a/, "%3A")}`;
27
+ }
28
+ const url = URL.canParse(value) ? new URL(value) : null;
29
+ if (url?.protocol !== "https:" || !url.hostname)
30
+ throw new Error(`a facilitator is a did:web or an https URL, not ${facilitator}`);
31
+ return `did:web:${url.host.toLowerCase().replace(/:/g, "%3A")}`;
32
+ }
33
+ /** The facilitator's https origin, from either form. */
34
+ export const facilitatorOrigin = (facilitator) => `https://${facilitatorDid(facilitator).slice("did:web:".length).replace(/%3A/g, ":")}`;
35
+ export function buildPayoutTerms(input) {
36
+ if (!ORG.test(input.org))
37
+ throw new Error(`org must be the organisation's did:ixo:entity, not ${input.org}`);
38
+ if (!RAILS.includes(input.rail))
39
+ throw new Error(`rail must be usdc_base or stripe, not ${input.rail}`);
40
+ // USDC on Base pays USD 1:1, so usdc_base takes either; Stripe only USD.
41
+ if (input.currency !== "USD" && !(input.rail === "usdc_base" && input.currency === "USDC"))
42
+ throw new Error(`${input.rail === "stripe" ? "Stripe pays in USD" : "USDC on Base pays in USDC or USD"}, not ${input.currency}`);
43
+ const currency = input.currency;
44
+ if (!Number.isFinite(input.amount) || input.amount <= 0)
45
+ throw new Error("the payout amount must be more than 0");
46
+ if (input.amount > 1_000_000)
47
+ throw new Error("the payout amount is at most 1,000,000");
48
+ const places = MAX_DECIMALS[currency];
49
+ const scaled = input.amount * 10 ** places;
50
+ if (Math.abs(Math.round(scaled) - scaled) > 1e-6)
51
+ throw new Error(`a ${currency} payout amount has at most ${places} decimals (${places === 2 ? "cents" : "micro-dollars"})`);
52
+ // Two decimals when that is exact, else the shortest exact form (USDC only gets here).
53
+ const amount = Math.abs(Math.round(input.amount * 100) - input.amount * 100) <= 1e-6 ? input.amount.toFixed(2) : input.amount.toFixed(places).replace(/0+$/, "");
54
+ return {
55
+ v: 1,
56
+ org: input.org,
57
+ facilitator: facilitatorDid(input.facilitator),
58
+ rails: [input.rail],
59
+ amount,
60
+ currency,
61
+ payee: "submitter",
62
+ ...(input.oracle !== undefined && WEB_OR_KEY(input.oracle) && { oracle: input.oracle })
63
+ };
64
+ }
65
+ /** The document as stored, believed field by field; anything else is null. */
66
+ export function readPayoutTerms(doc) {
67
+ if (!doc || typeof doc !== "object" || Array.isArray(doc))
68
+ return null;
69
+ if (Object.keys(doc).some((key) => !KEYS.includes(key)))
70
+ return null;
71
+ const d = doc;
72
+ if (d.v !== 1 || d.payee !== "submitter")
73
+ return null;
74
+ if (typeof d.org !== "string" || !ORG.test(d.org))
75
+ return null;
76
+ if (d.oracle !== undefined && (typeof d.oracle !== "string" || !WEB_OR_KEY(d.oracle)))
77
+ return null;
78
+ if (!Array.isArray(d.rails) || d.rails.length === 0 || !d.rails.every((rail) => RAILS.includes(rail)) || new Set(d.rails).size !== d.rails.length)
79
+ return null;
80
+ if (d.currency !== "USD" && d.currency !== "USDC")
81
+ return null;
82
+ if (d.rails.includes("stripe") && d.currency !== "USD")
83
+ return null; // no stripe means usdc_base alone (rails are unique): USD or USDC
84
+ if (typeof d.amount !== "string" || !/^\d+(\.\d+)?$/.test(d.amount) || Number(d.amount) <= 0)
85
+ return null;
86
+ if ((d.amount.split(".")[1]?.length ?? 0) > MAX_DECIMALS[d.currency])
87
+ return null;
88
+ try {
89
+ if (typeof d.facilitator !== "string" || facilitatorDid(d.facilitator) !== d.facilitator)
90
+ return null;
91
+ }
92
+ catch {
93
+ return null;
94
+ }
95
+ return { v: 1, org: d.org, facilitator: d.facilitator, rails: [...d.rails], amount: d.amount, currency: d.currency, payee: "submitter", ...(d.oracle !== undefined && { oracle: d.oracle }) };
96
+ }
97
+ /** The exact bytes that are published and hashed. */
98
+ export const payoutTermsJson = (terms) => JSON.stringify(terms);
99
+ /** CIDv1 raw sha256 of those bytes: the facilitator recomputes it and refuses a mismatch. */
100
+ export const payoutTermsCid = (terms) => cidOfText(payoutTermsJson(terms));
101
+ /** The https address the store gave (`url` from the browser's store, `uri` from the worker's); an extra resource is never `ipfs:`. */
102
+ export function storedHttps(ref, what) {
103
+ const url = (ref.url ?? ref.uri ?? "").trim();
104
+ if (!/^https:\/\/\S+$/.test(url))
105
+ throw new Error(`${what} needs the https address its store gave, got ${JSON.stringify(url)}`);
106
+ return url;
107
+ }
108
+ /** The linked resource on the ask entity. Wrap in `ixo.iid.v1beta1.LinkedResource.fromPartial` at the call site. The proof is the CID the facilitator recomputes. */
109
+ export const payoutTermsResource = (ref) => ({
110
+ type: "PayoutTerms",
111
+ id: "{id}#payoutTerms",
112
+ description: "How an approved answer is paid, off chain",
113
+ mediaType: "application/json",
114
+ serviceEndpoint: storedHttps(ref, "#payoutTerms"),
115
+ proof: ref.cid,
116
+ encrypted: "false",
117
+ right: ""
118
+ });
119
+ /** Where an entity's payout terms are, found by id suffix as the engine finds `#vct`. */
120
+ export function payoutTermsRef(linked) {
121
+ const found = linked.find((one) => typeof one?.id === "string" && one.id.endsWith("#payoutTerms"));
122
+ return found?.proof && found.serviceEndpoint ? { cid: found.proof, url: found.serviceEndpoint } : null;
123
+ }
124
+ /** What the ask's own `#done` terms carry for the board: no org, no facilitator, those are this document's. */
125
+ export const payoutSummary = (terms) => ({ rail: terms.rails[0], amount: terms.amount, currency: terms.currency });
126
+ export const railWords = (rail) => (rail === "stripe" ? "Paid by Stripe" : "Paid in USDC on Base");
127
+ //# sourceMappingURL=payoutTerms.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"payoutTerms.js","sourceRoot":"","sources":["../../../src/chain/payoutTerms.ts"],"names":[],"mappings":"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"}
@@ -71,5 +71,19 @@ export declare function txEvents(transactionHash: string): Promise<{
71
71
  * `utils.common.getValueFromEvents` does for an inline result.
72
72
  */
73
73
  export declare function valueFromTx(transactionHash: string, type: string, key: string): Promise<string>;
74
+ /**
75
+ * EVERY value of that attribute, in the order the messages emitted them — a
76
+ * transaction that mints two entities (W4: the ask's claim protocol and its
77
+ * deed) emits `wasm.token_id` twice, and `valueFromTx` only ever answers the first.
78
+ */
79
+ export declare function valuesFromEvents(events: readonly {
80
+ type: string;
81
+ attributes: readonly {
82
+ key: string;
83
+ value: string;
84
+ }[];
85
+ }[], type: string, key: string): string[];
86
+ /** `valuesFromEvents` over a transaction fetched by hash — the phone-broadcast path. */
87
+ export declare function valuesFromTx(transactionHash: string, type: string, key: string): Promise<string[]>;
74
88
  export {};
75
89
  //# sourceMappingURL=query.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../../src/chain/query.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAInE,KAAK,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,iBAAiB,CAAC,CAAC,CAAC;AAIjE,wBAAgB,cAAc,IAAI,OAAO,CAAC,WAAW,CAAC,CAGrD;AAED,wBAAsB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAIrE;AAED;;;;;;;;;GASG;AACH,wBAAgB,OAAO,CAAC,SAAS,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,UAAU,CAAA;CAAE,GAAG,SAAS,EAAE,GAAG,SAAa,GAAG,OAAO,CAiBjH;AAED;;;;;;;GAOG;AACH,wBAAgB,MAAM,CAAC,SAAS,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,UAAU,CAAA;CAAE,GAAG,SAAS,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAStH;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,WAAW,CACzB,UAAU,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,UAAU,CAAA;KAAE,CAAA;CAAE,EAAE,EACvF,WAAW,CAAC,EAAE,MAAM,EAAE,EACtB,GAAG,SAAa,GACf,MAAM,GAAG,SAAS,CAOpB;AAED,uGAAuG;AACvG,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAS7G;AAED,wFAAwF;AACxF,wBAAsB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAS9D;AAED;;;;;;;GAOG;AACH,wBAAsB,QAAQ,CAAC,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;CAAE,EAAE,CAAC,CAYjI;AAED;;;GAGG;AACH,wBAAsB,WAAW,CAAC,eAAe,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAerG"}
1
+ {"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../../src/chain/query.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAInE,KAAK,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,iBAAiB,CAAC,CAAC,CAAC;AAIjE,wBAAgB,cAAc,IAAI,OAAO,CAAC,WAAW,CAAC,CAGrD;AAED,wBAAsB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAIrE;AAED;;;;;;;;;GASG;AACH,wBAAgB,OAAO,CAAC,SAAS,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,UAAU,CAAA;CAAE,GAAG,SAAS,EAAE,GAAG,SAAa,GAAG,OAAO,CAiBjH;AAED;;;;;;;GAOG;AACH,wBAAgB,MAAM,CAAC,SAAS,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,UAAU,CAAA;CAAE,GAAG,SAAS,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAStH;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,WAAW,CACzB,UAAU,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,UAAU,CAAA;KAAE,CAAA;CAAE,EAAE,EACvF,WAAW,CAAC,EAAE,MAAM,EAAE,EACtB,GAAG,SAAa,GACf,MAAM,GAAG,SAAS,CAOpB;AAED,uGAAuG;AACvG,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAS7G;AAED,wFAAwF;AACxF,wBAAsB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAS9D;AAED;;;;;;;GAOG;AACH,wBAAsB,QAAQ,CAAC,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;CAAE,EAAE,CAAC,CAYjI;AAED;;;GAGG;AACH,wBAAsB,WAAW,CAAC,eAAe,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAerG;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,SAAS;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,SAAS;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;CAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAahK;AAED,wFAAwF;AACxF,wBAAsB,YAAY,CAAC,eAAe,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAExG"}
@@ -157,4 +157,29 @@ export async function valueFromTx(transactionHash, type, key) {
157
157
  }
158
158
  return "";
159
159
  }
160
+ /**
161
+ * EVERY value of that attribute, in the order the messages emitted them — a
162
+ * transaction that mints two entities (W4: the ask's claim protocol and its
163
+ * deed) emits `wasm.token_id` twice, and `valueFromTx` only ever answers the first.
164
+ */
165
+ export function valuesFromEvents(events, type, key) {
166
+ const out = [];
167
+ for (const event of events) {
168
+ if (event.type !== type)
169
+ continue;
170
+ for (const attribute of event.attributes) {
171
+ const name = /^[A-Za-z0-9+/=]+$/.test(attribute.key) && attribute.key !== key ? Buffer.from(attribute.key, "base64").toString("utf8") : attribute.key;
172
+ if (name !== key)
173
+ continue;
174
+ const raw = attribute.value ?? "";
175
+ const decoded = /^[A-Za-z0-9+/=]+$/.test(raw) ? Buffer.from(raw, "base64").toString("utf8") : raw;
176
+ out.push((decoded || raw).replace(/^"|"$/g, ""));
177
+ }
178
+ }
179
+ return out;
180
+ }
181
+ /** `valuesFromEvents` over a transaction fetched by hash — the phone-broadcast path. */
182
+ export async function valuesFromTx(transactionHash, type, key) {
183
+ return valuesFromEvents(await txEvents(transactionHash), type, key);
184
+ }
160
185
  //# sourceMappingURL=query.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"query.js","sourceRoot":"","sources":["../../../src/chain/query.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"query.js","sourceRoot":"","sources":["../../../src/chain/query.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,86 @@
1
+ /**
2
+ * Per-review checker billing (owner rulings 2026-10-14). Per ORACLE: one that
3
+ * publishes `reviewBilling.mode: "x402"` on `/v1/info` bills each check to the
4
+ * payer's Decision Console credits, so an ask it judges posts with an EMPTY
5
+ * evaluation leg (no fee grant, send or escrow). The payer is the org's OWNER
6
+ * (the chain owner of the org entity), who turns it on in the Console; for a
7
+ * person's own ask, the poster. `NEXT_PUBLIC_REVIEW_BILLING` is only a kill
8
+ * switch: unless it is "credits", every ask escrows its fee as before.
9
+ *
10
+ * Also here: the words, the owner's register with the oracle (its 402/503 is
11
+ * the only place "billing is not on" shows up), and the collection's pause
12
+ * reason read back from `GET /v1/collections` (S3 contracts, section c).
13
+ * Every oracle call is best effort: it never throws and never blocks a post.
14
+ */
15
+ /** The kill switch: off (anything but "credits") escrows every fee as before. */
16
+ export declare const reviewsBilledPerCheck: () => boolean;
17
+ /** Whether an ask this oracle judges is billed per check: the oracle publishes x402 and the switch is on. */
18
+ export declare const billedPerCheck: (oracle: {
19
+ reviewBilling?: "x402" | "escrow";
20
+ } | null | undefined) => boolean;
21
+ /**
22
+ * Whether the deployment's own checker bills each check to credits (its `/v1/info` says x402, it signs as `checker`,
23
+ * prices in PAY, and the kill switch is on). Then an ask it judges escrows ONE coin, the reward's; otherwise its fee
24
+ * (PAY) is escrowed beside an IXO or USDC reward. False on any read failure: the cautious answer, two coins.
25
+ */
26
+ export declare function deploymentBillsPerCheck(checker: string, read?: import("../data/oracleInfo.ts").FetchJson): Promise<boolean>;
27
+ /** The preview line for an ask whose reviews are billed per check. */
28
+ export declare const creditsCopy: (org: string | null, priceFace: string) => string;
29
+ /** The same, for an oracle whose fee is set aside from the poster's (or the org's) account when the ask is posted. */
30
+ export declare const setAsideCopy: (org: string | null, priceFace: string) => string;
31
+ /** An oracle with no URL (a company's own entity): nothing is charged between the company and itself; IXO's engine bills its decision fee to the oracle owner's credits. */
32
+ export declare const ownOracleCopy = "No review fee here \u00B7 IXO's checking fee comes from the oracle owner's Console credits";
33
+ /** The oracle's register answer, as the poster reads it; null for any other status. */
34
+ export declare function registerRefusal(status: number, org: string | null, consoleUrl?: string | null, message?: string, reason?: string): string | null;
35
+ /** A collection's pause, as the poster reads it; null for any reason that is not the payer's. */
36
+ export declare function pausedCopy(reason: string | null | undefined, org: string | null): string | null;
37
+ /** Signs one invocation for the oracle: `can` on `ixo:eval-oracle`, as the collection's owner, to `audience` (its did:web). */
38
+ export type MintFor = (audience: string, can: "collections/register" | "collections/read") => Promise<string>;
39
+ /**
40
+ * The owner's own invocation, minted from their ed25519 key (as store.ts mints its filesystem token): self-issued by
41
+ * their did:ixo with NO proof chain (the oracle answers 401 to a delegated one), one capability, five minutes, a nonce.
42
+ */
43
+ export declare function ownerMint(owner: {
44
+ address: string;
45
+ mnemonic: string;
46
+ }): MintFor;
47
+ export interface OracleCallOptions {
48
+ fetch?: typeof fetch;
49
+ attempts?: number;
50
+ delayMs?: number;
51
+ }
52
+ /** The oracle's did:web as it publishes it at `/.well-known/did.json` (the UCAN audience), never derived from its host. Null when unread. */
53
+ export declare function oracleDid(oracleUrl: string, options?: Pick<OracleCallOptions, "fetch">): Promise<string | null>;
54
+ /** The first https link in the oracle's message: its Console page, when it names one. */
55
+ export declare const consoleLinkIn: (message: string) => string | null;
56
+ export interface Watched {
57
+ status: string;
58
+ pausedReason: string | null;
59
+ }
60
+ /** The owner's collections this oracle watches (`GET /v1/collections`, `collections/read`), by id; null when unread. */
61
+ export declare function watchedCollections(oracleUrl: string, audience: string, mint: MintFor, options?: Pick<OracleCallOptions, "fetch">): Promise<Map<string, Watched> | null>;
62
+ export type RegisterAnswer = {
63
+ watched: Watched;
64
+ } | {
65
+ status: number;
66
+ message: string;
67
+ reason: string;
68
+ } | null;
69
+ /**
70
+ * The owner registers the ask with the oracle: `POST /v1/collections/register`, but only when the oracle does not
71
+ * already watch it. On the OpenHands and Spongy oracles the hire nudge and their cron register it themselves, and a
72
+ * re-register can RESUME a paused collection, so the watched list is read first, before every try, and a watched
73
+ * collection is only read, never registered. Unread list: nothing is registered (null).
74
+ *
75
+ * Retried by S3's `details.reason` first: collection_not_found, not_hired, company_unavailable, credits_unavailable;
76
+ * every other known code is final. An oracle without the codes: 404, a 409 naming the evaluate grant, 503 and a
77
+ * network error are retried; everything else is final, 403 and any other 409 included. Null when nothing definite came back.
78
+ */
79
+ export declare function registerWithOracle(collectionId: string, oracleUrl: string, mint: MintFor, options?: OracleCallOptions): Promise<RegisterAnswer>;
80
+ /** The poster's register answer, in words: null when there is nothing to act on. */
81
+ export declare function registerNote(collectionId: string, oracleUrl: string, org: string | null, mint: MintFor, options?: OracleCallOptions): Promise<string | null>;
82
+ /** The pause reasons about paying for reviews (contract 1.22.0); every other reason is the oracle's own. */
83
+ export declare const PAYER_PAUSES: ReadonlySet<string>;
84
+ /** The owner's collections the oracle has paused for its payer, `collectionId → pausedReason`. Empty on any failure. */
85
+ export declare function payerPauses(oracleUrl: string, mint: MintFor, options?: Pick<OracleCallOptions, "fetch">): Promise<Map<string, string>>;
86
+ //# sourceMappingURL=reviewBilling.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reviewBilling.d.ts","sourceRoot":"","sources":["../../../src/chain/reviewBilling.ts"],"names":[],"mappings":"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"}