@geoprotocol/geo-sdk 0.18.2 → 0.19.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 (352) hide show
  1. package/README.md +995 -372
  2. package/dist/contracts.d.ts +0 -11
  3. package/dist/contracts.d.ts.map +1 -1
  4. package/dist/contracts.js +0 -11
  5. package/dist/contracts.js.map +1 -1
  6. package/dist/index.d.ts +7 -0
  7. package/dist/index.d.ts.map +1 -1
  8. package/dist/index.js +7 -0
  9. package/dist/index.js.map +1 -1
  10. package/dist/lite.d.ts +2 -0
  11. package/dist/lite.d.ts.map +1 -1
  12. package/dist/lite.js +2 -0
  13. package/dist/lite.js.map +1 -1
  14. package/dist/src/abis/dao-space-v2.test.d.ts +2 -0
  15. package/dist/src/abis/dao-space-v2.test.d.ts.map +1 -0
  16. package/dist/src/abis/dao-space-v2.test.js +67 -0
  17. package/dist/src/abis/dao-space-v2.test.js.map +1 -0
  18. package/dist/src/client/api.d.ts +86 -0
  19. package/dist/src/client/api.d.ts.map +1 -0
  20. package/dist/src/client/api.js +169 -0
  21. package/dist/src/client/api.js.map +1 -0
  22. package/dist/src/client/comments.d.ts +59 -0
  23. package/dist/src/client/comments.d.ts.map +1 -0
  24. package/dist/src/client/comments.js +96 -0
  25. package/dist/src/client/comments.js.map +1 -0
  26. package/dist/src/client/context.d.ts +20 -0
  27. package/dist/src/client/context.d.ts.map +1 -0
  28. package/dist/src/client/context.js +20 -0
  29. package/dist/src/client/context.js.map +1 -0
  30. package/dist/src/client/dao-spaces.d.ts +348 -0
  31. package/dist/src/client/dao-spaces.d.ts.map +1 -0
  32. package/dist/src/client/dao-spaces.js +494 -0
  33. package/dist/src/client/dao-spaces.js.map +1 -0
  34. package/dist/src/client/dao-spaces.test.d.ts +2 -0
  35. package/dist/src/client/dao-spaces.test.d.ts.map +1 -0
  36. package/dist/src/client/dao-spaces.test.js +263 -0
  37. package/dist/src/client/dao-spaces.test.js.map +1 -0
  38. package/dist/src/client/edits.d.ts +100 -0
  39. package/dist/src/client/edits.d.ts.map +1 -0
  40. package/dist/src/client/edits.js +131 -0
  41. package/dist/src/client/edits.js.map +1 -0
  42. package/dist/src/client/edits.test.d.ts +2 -0
  43. package/dist/src/client/edits.test.d.ts.map +1 -0
  44. package/dist/src/client/edits.test.js +98 -0
  45. package/dist/src/client/edits.test.js.map +1 -0
  46. package/dist/src/client/entities.d.ts +23 -0
  47. package/dist/src/client/entities.d.ts.map +1 -0
  48. package/dist/src/client/entities.js +88 -0
  49. package/dist/src/client/entities.js.map +1 -0
  50. package/dist/src/client/entity-votes.d.ts +141 -0
  51. package/dist/src/client/entity-votes.d.ts.map +1 -0
  52. package/dist/src/client/entity-votes.js +168 -0
  53. package/dist/src/client/entity-votes.js.map +1 -0
  54. package/dist/src/client/entity-votes.test.d.ts +2 -0
  55. package/dist/src/client/entity-votes.test.d.ts.map +1 -0
  56. package/dist/src/client/entity-votes.test.js +93 -0
  57. package/dist/src/client/entity-votes.test.js.map +1 -0
  58. package/dist/src/client/graph-workflows.test.d.ts +2 -0
  59. package/dist/src/client/graph-workflows.test.d.ts.map +1 -0
  60. package/dist/src/client/graph-workflows.test.js +83 -0
  61. package/dist/src/client/graph-workflows.test.js.map +1 -0
  62. package/dist/src/client/images-storage.test.d.ts +2 -0
  63. package/dist/src/client/images-storage.test.d.ts.map +1 -0
  64. package/dist/src/client/images-storage.test.js +52 -0
  65. package/dist/src/client/images-storage.test.js.map +1 -0
  66. package/dist/src/client/images.d.ts +35 -0
  67. package/dist/src/client/images.d.ts.map +1 -0
  68. package/dist/src/client/images.js +90 -0
  69. package/dist/src/client/images.js.map +1 -0
  70. package/dist/src/client/personal-spaces.d.ts +155 -0
  71. package/dist/src/client/personal-spaces.d.ts.map +1 -0
  72. package/dist/src/client/personal-spaces.js +198 -0
  73. package/dist/src/client/personal-spaces.js.map +1 -0
  74. package/dist/src/client/proposals.d.ts +185 -0
  75. package/dist/src/client/proposals.d.ts.map +1 -0
  76. package/dist/src/client/proposals.js +294 -0
  77. package/dist/src/client/proposals.js.map +1 -0
  78. package/dist/src/client/proposals.test.d.ts +2 -0
  79. package/dist/src/client/proposals.test.d.ts.map +1 -0
  80. package/dist/src/client/proposals.test.js +243 -0
  81. package/dist/src/client/proposals.test.js.map +1 -0
  82. package/dist/src/client/spaces.test.d.ts +2 -0
  83. package/dist/src/client/spaces.test.d.ts.map +1 -0
  84. package/dist/src/client/spaces.test.js +155 -0
  85. package/dist/src/client/spaces.test.js.map +1 -0
  86. package/dist/src/client/storage.d.ts +52 -0
  87. package/dist/src/client/storage.d.ts.map +1 -0
  88. package/dist/src/client/storage.js +53 -0
  89. package/dist/src/client/storage.js.map +1 -0
  90. package/dist/src/client.d.ts +325 -0
  91. package/dist/src/client.d.ts.map +1 -0
  92. package/dist/src/client.js +452 -0
  93. package/dist/src/client.js.map +1 -0
  94. package/dist/src/client.test.d.ts +2 -0
  95. package/dist/src/client.test.d.ts.map +1 -0
  96. package/dist/src/client.test.js +120 -0
  97. package/dist/src/client.test.js.map +1 -0
  98. package/dist/src/contracts-v2/abis.d.ts +196 -0
  99. package/dist/src/contracts-v2/abis.d.ts.map +1 -0
  100. package/dist/src/contracts-v2/abis.js +110 -0
  101. package/dist/src/contracts-v2/abis.js.map +1 -0
  102. package/dist/src/contracts-v2/actions.d.ts +56 -0
  103. package/dist/src/contracts-v2/actions.d.ts.map +1 -0
  104. package/dist/src/contracts-v2/actions.js +83 -0
  105. package/dist/src/contracts-v2/actions.js.map +1 -0
  106. package/dist/src/contracts-v2/encoding.d.ts +80 -0
  107. package/dist/src/contracts-v2/encoding.d.ts.map +1 -0
  108. package/dist/src/contracts-v2/encoding.js +193 -0
  109. package/dist/src/contracts-v2/encoding.js.map +1 -0
  110. package/dist/src/contracts-v2/encoding.test.d.ts +2 -0
  111. package/dist/src/contracts-v2/encoding.test.d.ts.map +1 -0
  112. package/dist/src/contracts-v2/encoding.test.js +93 -0
  113. package/dist/src/contracts-v2/encoding.test.js.map +1 -0
  114. package/dist/src/contracts-v2/local-geobrowser.e2e.test.d.ts +2 -0
  115. package/dist/src/contracts-v2/local-geobrowser.e2e.test.d.ts.map +1 -0
  116. package/dist/src/contracts-v2/local-geobrowser.e2e.test.js +239 -0
  117. package/dist/src/contracts-v2/local-geobrowser.e2e.test.js.map +1 -0
  118. package/dist/src/contracts-v2/voting-settings.d.ts +48 -0
  119. package/dist/src/contracts-v2/voting-settings.d.ts.map +1 -0
  120. package/dist/src/contracts-v2/voting-settings.js +69 -0
  121. package/dist/src/contracts-v2/voting-settings.js.map +1 -0
  122. package/dist/src/dao-space/constants.d.ts +6 -3
  123. package/dist/src/dao-space/constants.d.ts.map +1 -1
  124. package/dist/src/dao-space/constants.js +6 -5
  125. package/dist/src/dao-space/constants.js.map +1 -1
  126. package/dist/src/dao-space/create-space.d.ts +1 -31
  127. package/dist/src/dao-space/create-space.d.ts.map +1 -1
  128. package/dist/src/dao-space/create-space.js +5 -70
  129. package/dist/src/dao-space/create-space.js.map +1 -1
  130. package/dist/src/dao-space/execute-proposal.d.ts +1 -22
  131. package/dist/src/dao-space/execute-proposal.d.ts.map +1 -1
  132. package/dist/src/dao-space/execute-proposal.js +12 -59
  133. package/dist/src/dao-space/execute-proposal.js.map +1 -1
  134. package/dist/src/dao-space/propose-add-editor.test.js +1 -1
  135. package/dist/src/dao-space/propose-add-editor.test.js.map +1 -1
  136. package/dist/src/dao-space/propose-edit.d.ts +1 -30
  137. package/dist/src/dao-space/propose-edit.d.ts.map +1 -1
  138. package/dist/src/dao-space/propose-edit.js +12 -108
  139. package/dist/src/dao-space/propose-edit.js.map +1 -1
  140. package/dist/src/dao-space/propose-edit.test.js +8 -1
  141. package/dist/src/dao-space/propose-edit.test.js.map +1 -1
  142. package/dist/src/dao-space/propose-remove-editor.d.ts.map +1 -1
  143. package/dist/src/dao-space/propose-remove-editor.js +5 -5
  144. package/dist/src/dao-space/propose-remove-editor.js.map +1 -1
  145. package/dist/src/dao-space/propose-remove-editor.test.js +3 -8
  146. package/dist/src/dao-space/propose-remove-editor.test.js.map +1 -1
  147. package/dist/src/dao-space/propose-remove-member.d.ts.map +1 -1
  148. package/dist/src/dao-space/propose-remove-member.js +5 -5
  149. package/dist/src/dao-space/propose-remove-member.js.map +1 -1
  150. package/dist/src/dao-space/propose-request-membership.d.ts.map +1 -1
  151. package/dist/src/dao-space/propose-request-membership.js +4 -4
  152. package/dist/src/dao-space/propose-request-membership.js.map +1 -1
  153. package/dist/src/dao-space/propose-update-voting-settings.d.ts +8 -0
  154. package/dist/src/dao-space/propose-update-voting-settings.d.ts.map +1 -0
  155. package/dist/src/dao-space/propose-update-voting-settings.js +19 -0
  156. package/dist/src/dao-space/propose-update-voting-settings.js.map +1 -0
  157. package/dist/src/dao-space/propose-update-voting-settings.test.d.ts +2 -0
  158. package/dist/src/dao-space/propose-update-voting-settings.test.d.ts.map +1 -0
  159. package/dist/src/dao-space/propose-update-voting-settings.test.js +118 -0
  160. package/dist/src/dao-space/propose-update-voting-settings.test.js.map +1 -0
  161. package/dist/src/dao-space/vote-proposal.d.ts +1 -24
  162. package/dist/src/dao-space/vote-proposal.d.ts.map +1 -1
  163. package/dist/src/dao-space/vote-proposal.js +12 -64
  164. package/dist/src/dao-space/vote-proposal.js.map +1 -1
  165. package/dist/src/e2e/local-geobrowser.d.ts +9 -0
  166. package/dist/src/e2e/local-geobrowser.d.ts.map +1 -0
  167. package/dist/src/e2e/local-geobrowser.js +35 -0
  168. package/dist/src/e2e/local-geobrowser.js.map +1 -0
  169. package/dist/src/e2e/v2-contracts.test.d.ts +2 -0
  170. package/dist/src/e2e/v2-contracts.test.d.ts.map +1 -0
  171. package/dist/src/e2e/v2-contracts.test.js +25 -0
  172. package/dist/src/e2e/v2-contracts.test.js.map +1 -0
  173. package/dist/src/e2e-api-surface.test.d.ts +2 -0
  174. package/dist/src/e2e-api-surface.test.d.ts.map +1 -0
  175. package/dist/src/e2e-api-surface.test.js +1021 -0
  176. package/dist/src/e2e-api-surface.test.js.map +1 -0
  177. package/dist/src/e2e-flows.test.d.ts +2 -0
  178. package/dist/src/e2e-flows.test.d.ts.map +1 -0
  179. package/dist/src/e2e-flows.test.js +445 -0
  180. package/dist/src/e2e-flows.test.js.map +1 -0
  181. package/dist/src/e2e-legacy-api-surface.test.d.ts +2 -0
  182. package/dist/src/e2e-legacy-api-surface.test.d.ts.map +1 -0
  183. package/dist/src/e2e-legacy-api-surface.test.js +840 -0
  184. package/dist/src/e2e-legacy-api-surface.test.js.map +1 -0
  185. package/dist/src/encoding.d.ts +3 -0
  186. package/dist/src/encoding.d.ts.map +1 -1
  187. package/dist/src/encoding.js +3 -0
  188. package/dist/src/encoding.js.map +1 -1
  189. package/dist/src/encodings/get-create-dao-space-calldata.d.ts +3 -89
  190. package/dist/src/encodings/get-create-dao-space-calldata.d.ts.map +1 -1
  191. package/dist/src/encodings/get-create-dao-space-calldata.js +5 -95
  192. package/dist/src/encodings/get-create-dao-space-calldata.js.map +1 -1
  193. package/dist/src/encodings/get-create-personal-space-calldata.d.ts +2 -0
  194. package/dist/src/encodings/get-create-personal-space-calldata.d.ts.map +1 -1
  195. package/dist/src/encodings/get-create-personal-space-calldata.js +2 -0
  196. package/dist/src/encodings/get-create-personal-space-calldata.js.map +1 -1
  197. package/dist/src/graph/comment-utils.d.ts +4 -0
  198. package/dist/src/graph/comment-utils.d.ts.map +1 -1
  199. package/dist/src/graph/comment-utils.js +4 -0
  200. package/dist/src/graph/comment-utils.js.map +1 -1
  201. package/dist/src/graph/constants.d.ts +12 -3
  202. package/dist/src/graph/constants.d.ts.map +1 -1
  203. package/dist/src/graph/constants.js +11 -5
  204. package/dist/src/graph/constants.js.map +1 -1
  205. package/dist/src/graph/create-comment.d.ts +3 -22
  206. package/dist/src/graph/create-comment.d.ts.map +1 -1
  207. package/dist/src/graph/create-comment.js +6 -136
  208. package/dist/src/graph/create-comment.js.map +1 -1
  209. package/dist/src/graph/create-comment.test.js +19 -8
  210. package/dist/src/graph/create-comment.test.js.map +1 -1
  211. package/dist/src/graph/create-entity.d.ts +2 -0
  212. package/dist/src/graph/create-entity.d.ts.map +1 -1
  213. package/dist/src/graph/create-entity.js +2 -0
  214. package/dist/src/graph/create-entity.js.map +1 -1
  215. package/dist/src/graph/create-image.d.ts +2 -21
  216. package/dist/src/graph/create-image.d.ts.map +1 -1
  217. package/dist/src/graph/create-image.js +7 -69
  218. package/dist/src/graph/create-image.js.map +1 -1
  219. package/dist/src/graph/create-property.d.ts +2 -0
  220. package/dist/src/graph/create-property.d.ts.map +1 -1
  221. package/dist/src/graph/create-property.js +2 -0
  222. package/dist/src/graph/create-property.js.map +1 -1
  223. package/dist/src/graph/create-proposal-review.d.ts +1 -27
  224. package/dist/src/graph/create-proposal-review.d.ts.map +1 -1
  225. package/dist/src/graph/create-proposal-review.js +4 -61
  226. package/dist/src/graph/create-proposal-review.js.map +1 -1
  227. package/dist/src/graph/create-relation.d.ts +2 -0
  228. package/dist/src/graph/create-relation.d.ts.map +1 -1
  229. package/dist/src/graph/create-relation.js +2 -0
  230. package/dist/src/graph/create-relation.js.map +1 -1
  231. package/dist/src/graph/create-type.d.ts +2 -0
  232. package/dist/src/graph/create-type.d.ts.map +1 -1
  233. package/dist/src/graph/create-type.js +2 -0
  234. package/dist/src/graph/create-type.js.map +1 -1
  235. package/dist/src/graph/delete-entity.d.ts +2 -14
  236. package/dist/src/graph/delete-entity.d.ts.map +1 -1
  237. package/dist/src/graph/delete-entity.js +5 -78
  238. package/dist/src/graph/delete-entity.js.map +1 -1
  239. package/dist/src/graph/delete-entity.test.js +7 -0
  240. package/dist/src/graph/delete-entity.test.js.map +1 -1
  241. package/dist/src/graph/delete-relation.d.ts +2 -0
  242. package/dist/src/graph/delete-relation.d.ts.map +1 -1
  243. package/dist/src/graph/delete-relation.js +2 -0
  244. package/dist/src/graph/delete-relation.js.map +1 -1
  245. package/dist/src/graph/entity-vote.d.ts +37 -0
  246. package/dist/src/graph/entity-vote.d.ts.map +1 -0
  247. package/dist/src/graph/entity-vote.js +44 -0
  248. package/dist/src/graph/entity-vote.js.map +1 -0
  249. package/dist/src/graph/entity-vote.test.d.ts +2 -0
  250. package/dist/src/graph/entity-vote.test.d.ts.map +1 -0
  251. package/dist/src/graph/entity-vote.test.js +123 -0
  252. package/dist/src/graph/entity-vote.test.js.map +1 -0
  253. package/dist/src/graph/index.d.ts +1 -0
  254. package/dist/src/graph/index.d.ts.map +1 -1
  255. package/dist/src/graph/index.js +1 -0
  256. package/dist/src/graph/index.js.map +1 -1
  257. package/dist/src/graph/update-comment.d.ts +3 -0
  258. package/dist/src/graph/update-comment.d.ts.map +1 -1
  259. package/dist/src/graph/update-comment.js +3 -0
  260. package/dist/src/graph/update-comment.js.map +1 -1
  261. package/dist/src/graph/update-entity.d.ts +2 -0
  262. package/dist/src/graph/update-entity.d.ts.map +1 -1
  263. package/dist/src/graph/update-entity.js +2 -0
  264. package/dist/src/graph/update-entity.js.map +1 -1
  265. package/dist/src/graph/update-proposal-review.d.ts +2 -27
  266. package/dist/src/graph/update-proposal-review.d.ts.map +1 -1
  267. package/dist/src/graph/update-proposal-review.js +4 -50
  268. package/dist/src/graph/update-proposal-review.js.map +1 -1
  269. package/dist/src/graph/update-relation.d.ts +2 -0
  270. package/dist/src/graph/update-relation.d.ts.map +1 -1
  271. package/dist/src/graph/update-relation.js +2 -0
  272. package/dist/src/graph/update-relation.js.map +1 -1
  273. package/dist/src/ipfs-core.d.ts +42 -0
  274. package/dist/src/ipfs-core.d.ts.map +1 -0
  275. package/dist/src/ipfs-core.js +165 -0
  276. package/dist/src/ipfs-core.js.map +1 -0
  277. package/dist/src/ipfs-core.test.d.ts +2 -0
  278. package/dist/src/ipfs-core.test.d.ts.map +1 -0
  279. package/dist/src/ipfs-core.test.js +56 -0
  280. package/dist/src/ipfs-core.test.js.map +1 -0
  281. package/dist/src/ipfs.d.ts +7 -52
  282. package/dist/src/ipfs.d.ts.map +1 -1
  283. package/dist/src/ipfs.js +27 -170
  284. package/dist/src/ipfs.js.map +1 -1
  285. package/dist/src/networks.d.ts +46 -0
  286. package/dist/src/networks.d.ts.map +1 -0
  287. package/dist/src/networks.js +90 -0
  288. package/dist/src/networks.js.map +1 -0
  289. package/dist/src/ops/comments.d.ts +80 -0
  290. package/dist/src/ops/comments.d.ts.map +1 -0
  291. package/dist/src/ops/comments.js +142 -0
  292. package/dist/src/ops/comments.js.map +1 -0
  293. package/dist/src/ops/entities.d.ts +50 -0
  294. package/dist/src/ops/entities.d.ts.map +1 -0
  295. package/dist/src/ops/entities.js +51 -0
  296. package/dist/src/ops/entities.js.map +1 -0
  297. package/dist/src/ops/images.d.ts +37 -0
  298. package/dist/src/ops/images.d.ts.map +1 -0
  299. package/dist/src/ops/images.js +69 -0
  300. package/dist/src/ops/images.js.map +1 -0
  301. package/dist/src/ops/index.d.ts +7 -0
  302. package/dist/src/ops/index.d.ts.map +1 -0
  303. package/dist/src/ops/index.js +7 -0
  304. package/dist/src/ops/index.js.map +1 -0
  305. package/dist/src/ops/index.test.d.ts +2 -0
  306. package/dist/src/ops/index.test.d.ts.map +1 -0
  307. package/dist/src/ops/index.test.js +115 -0
  308. package/dist/src/ops/index.test.js.map +1 -0
  309. package/dist/src/ops/properties.d.ts +20 -0
  310. package/dist/src/ops/properties.d.ts.map +1 -0
  311. package/dist/src/ops/properties.js +20 -0
  312. package/dist/src/ops/properties.js.map +1 -0
  313. package/dist/src/ops/proposal-reviews.d.ts +43 -0
  314. package/dist/src/ops/proposal-reviews.d.ts.map +1 -0
  315. package/dist/src/ops/proposal-reviews.js +103 -0
  316. package/dist/src/ops/proposal-reviews.js.map +1 -0
  317. package/dist/src/ops/relations.d.ts +57 -0
  318. package/dist/src/ops/relations.d.ts.map +1 -0
  319. package/dist/src/ops/relations.js +59 -0
  320. package/dist/src/ops/relations.js.map +1 -0
  321. package/dist/src/ops/types.d.ts +20 -0
  322. package/dist/src/ops/types.d.ts.map +1 -0
  323. package/dist/src/ops/types.js +20 -0
  324. package/dist/src/ops/types.js.map +1 -0
  325. package/dist/src/personal-space/constants.d.ts +1 -0
  326. package/dist/src/personal-space/constants.d.ts.map +1 -1
  327. package/dist/src/personal-space/constants.js +1 -0
  328. package/dist/src/personal-space/constants.js.map +1 -1
  329. package/dist/src/personal-space/create-space.d.ts +1 -18
  330. package/dist/src/personal-space/create-space.d.ts.map +1 -1
  331. package/dist/src/personal-space/create-space.js +1 -18
  332. package/dist/src/personal-space/create-space.js.map +1 -1
  333. package/dist/src/personal-space/has-space.d.ts +9 -2
  334. package/dist/src/personal-space/has-space.d.ts.map +1 -1
  335. package/dist/src/personal-space/has-space.js +9 -13
  336. package/dist/src/personal-space/has-space.js.map +1 -1
  337. package/dist/src/personal-space/has-space.test.d.ts +2 -0
  338. package/dist/src/personal-space/has-space.test.d.ts.map +1 -0
  339. package/dist/src/personal-space/has-space.test.js +30 -0
  340. package/dist/src/personal-space/has-space.test.js.map +1 -0
  341. package/dist/src/personal-space/publish-edit.d.ts +1 -22
  342. package/dist/src/personal-space/publish-edit.d.ts.map +1 -1
  343. package/dist/src/personal-space/publish-edit.js +10 -64
  344. package/dist/src/personal-space/publish-edit.js.map +1 -1
  345. package/dist/src/smart-wallet.d.ts +2 -4
  346. package/dist/src/smart-wallet.d.ts.map +1 -1
  347. package/dist/src/smart-wallet.js +6 -9
  348. package/dist/src/smart-wallet.js.map +1 -1
  349. package/dist/src/types.d.ts +25 -0
  350. package/dist/src/types.d.ts.map +1 -1
  351. package/dist/src/types.js.map +1 -1
  352. package/package.json +14 -1
@@ -0,0 +1,69 @@
1
+ export const RATIO_BASE = BigInt(10e6);
2
+ export const MINIMUM_VOTING_DURATION = BigInt(60);
3
+ export const MINIMUM_EXECUTION_GRACE_PERIOD = BigInt(60 * 60);
4
+ export const MINIMUM_VOTING_DURATION_DAYS = MINIMUM_VOTING_DURATION / BigInt(24 * 60 * 60);
5
+ export function percentageToRatio(percentage) {
6
+ return BigInt(Math.floor((percentage * 10e6) / 100));
7
+ }
8
+ export function daysToSeconds(days) {
9
+ return BigInt(Math.floor(days * 24 * 60 * 60));
10
+ }
11
+ export function toContractVotingSettings(input) {
12
+ if ('slowPathPercentageThreshold' in input) {
13
+ return {
14
+ partialPercentageSupportThreshold: percentageToRatio(input.slowPathPercentageThreshold),
15
+ universalPercentageSupportThreshold: percentageToRatio(input.universalPercentageSupportThreshold ?? input.slowPathPercentageThreshold),
16
+ flatSupportThreshold: BigInt(input.fastPathFlatThreshold),
17
+ quorum: BigInt(input.quorum),
18
+ duration: daysToSeconds(input.durationInDays),
19
+ disableFastPathAccessForNewMembers: input.disableFastPathAccessForNewMembers ?? false,
20
+ executionGracePeriod: input.executionGracePeriod !== undefined
21
+ ? BigInt(input.executionGracePeriod)
22
+ : daysToSeconds(input.executionGracePeriodInDays ?? 1),
23
+ };
24
+ }
25
+ return {
26
+ partialPercentageSupportThreshold: percentageToRatio(input.partialPercentageSupportThreshold),
27
+ universalPercentageSupportThreshold: percentageToRatio(input.universalPercentageSupportThreshold),
28
+ flatSupportThreshold: BigInt(input.flatSupportThreshold),
29
+ quorum: BigInt(input.quorum),
30
+ duration: BigInt(input.duration),
31
+ disableFastPathAccessForNewMembers: input.disableFastPathAccessForNewMembers ?? false,
32
+ executionGracePeriod: BigInt(input.executionGracePeriod ?? 24 * 60 * 60),
33
+ };
34
+ }
35
+ export function validateVotingSettingsInput(settings, totalEditors) {
36
+ const partial = 'slowPathPercentageThreshold' in settings
37
+ ? settings.slowPathPercentageThreshold
38
+ : settings.partialPercentageSupportThreshold;
39
+ const universal = 'slowPathPercentageThreshold' in settings
40
+ ? (settings.universalPercentageSupportThreshold ?? settings.slowPathPercentageThreshold)
41
+ : settings.universalPercentageSupportThreshold;
42
+ const flat = 'slowPathPercentageThreshold' in settings ? settings.fastPathFlatThreshold : settings.flatSupportThreshold;
43
+ const duration = 'slowPathPercentageThreshold' in settings ? daysToSeconds(settings.durationInDays) : BigInt(settings.duration);
44
+ const executionGracePeriod = 'slowPathPercentageThreshold' in settings
45
+ ? settings.executionGracePeriod !== undefined
46
+ ? BigInt(settings.executionGracePeriod)
47
+ : daysToSeconds(settings.executionGracePeriodInDays ?? 1)
48
+ : BigInt(settings.executionGracePeriod ?? 24 * 60 * 60);
49
+ if (partial < 0 || partial > 100) {
50
+ return 'partialPercentageSupportThreshold must be between 0 and 100';
51
+ }
52
+ if (universal < 0 || universal > 100) {
53
+ return 'universalPercentageSupportThreshold must be between 0 and 100';
54
+ }
55
+ if (flat < 0 || flat > totalEditors) {
56
+ return `flatSupportThreshold must be between 0 and ${totalEditors} (number of initial editors)`;
57
+ }
58
+ if (settings.quorum < 0 || settings.quorum > totalEditors) {
59
+ return `quorum must be between 0 and ${totalEditors} (number of initial editors)`;
60
+ }
61
+ if (duration < MINIMUM_VOTING_DURATION) {
62
+ return `duration must be at least ${MINIMUM_VOTING_DURATION.toString()} seconds`;
63
+ }
64
+ if (executionGracePeriod < MINIMUM_EXECUTION_GRACE_PERIOD) {
65
+ return `executionGracePeriod must be at least ${MINIMUM_EXECUTION_GRACE_PERIOD.toString()} seconds`;
66
+ }
67
+ return null;
68
+ }
69
+ //# sourceMappingURL=voting-settings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"voting-settings.js","sourceRoot":"","sources":["../../../src/contracts-v2/voting-settings.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { TESTNET } from '../../contracts.js';
1
+ import type { Networkish } from '../types.js';
2
2
  /**
3
3
  * Action hash for GOVERNANCE.PROPOSAL_CREATED
4
4
  * Used when creating proposals via SpaceRegistry.enter()
@@ -59,8 +59,11 @@ export declare function toBytes16(hex32: `0x${string}`): `0x${string}`;
59
59
  * Converts a bytes16 hex string to bytes32 (left-aligned, right-padded with zeros).
60
60
  */
61
61
  export declare function bytes16ToBytes32LeftAligned(bytes16Hex: `0x${string}`): `0x${string}`;
62
+ export type DaoSpaceContractAddresses = {
63
+ SPACE_REGISTRY_ADDRESS: `0x${string}`;
64
+ };
62
65
  /**
63
- * Get Contract Addresses based on Network
66
+ * Get contract addresses based on network.
64
67
  */
65
- export declare function getContractAddressesBasedOnNetwork(network: 'TESTNET' | 'MAINNET'): typeof TESTNET;
68
+ export declare function getContractAddressesBasedOnNetwork(network: Networkish): DaoSpaceContractAddresses;
66
69
  //# sourceMappingURL=constants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/dao-space/constants.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7C;;;GAGG;AACH,eAAO,MAAM,uBAAuB,eAAkD,CAAC;AAEvF;;;GAGG;AACH,eAAO,MAAM,qBAAqB,eAAgD,CAAC;AAEnF;;;GAGG;AACH,eAAO,MAAM,2BAA2B,eAAsD,CAAC;AAE/F;;;GAGG;AACH,eAAO,MAAM,wBAAwB,eAAmD,CAAC;AAEzF;;GAEG;AACH,eAAO,MAAM,kBAAkB;;;;CAIrB,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,WAAW,EAAG,oEAA6E,CAAC;AAEzG;;GAEG;AACH,eAAO,MAAM,eAAe,EAAG,IAAa,CAAC;AAE7C;;GAEG;AACH,eAAO,MAAM,iBAAiB,QAAwB,CAAC;AAEvD;;GAEG;AACH,eAAO,MAAM,iBAAiB,QAAwB,CAAC;AAEvD;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,MAAM,EAAE,CAE3D;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEnD;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,KAAK,MAAM,EAAE,GAAG,KAAK,MAAM,EAAE,CAI7D;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,UAAU,EAAE,KAAK,MAAM,EAAE,GAAG,KAAK,MAAM,EAAE,CAIpF;AAED;;GAEG;AACH,wBAAgB,kCAAkC,CAAC,OAAO,EAAE,SAAS,GAAG,SAAS,GAAG,OAAO,OAAO,CAGjG"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/dao-space/constants.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C;;;GAGG;AACH,eAAO,MAAM,uBAAuB,eAAkD,CAAC;AAEvF;;;GAGG;AACH,eAAO,MAAM,qBAAqB,eAAgD,CAAC;AAEnF;;;GAGG;AACH,eAAO,MAAM,2BAA2B,eAAsD,CAAC;AAE/F;;;GAGG;AACH,eAAO,MAAM,wBAAwB,eAAmD,CAAC;AAEzF;;GAEG;AACH,eAAO,MAAM,kBAAkB;;;;CAIrB,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,WAAW,EAAG,oEAA6E,CAAC;AAEzG;;GAEG;AACH,eAAO,MAAM,eAAe,EAAG,IAAa,CAAC;AAE7C;;GAEG;AACH,eAAO,MAAM,iBAAiB,QAAwB,CAAC;AAEvD;;GAEG;AACH,eAAO,MAAM,iBAAiB,QAAwB,CAAC;AAEvD;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,MAAM,EAAE,CAE3D;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEnD;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,KAAK,MAAM,EAAE,GAAG,KAAK,MAAM,EAAE,CAI7D;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,UAAU,EAAE,KAAK,MAAM,EAAE,GAAG,KAAK,MAAM,EAAE,CAIpF;AAED,MAAM,MAAM,yBAAyB,GAAG;IACtC,sBAAsB,EAAE,KAAK,MAAM,EAAE,CAAC;CACvC,CAAC;AAEF;;GAEG;AACH,wBAAgB,kCAAkC,CAAC,OAAO,EAAE,UAAU,GAAG,yBAAyB,CAKjG"}
@@ -1,5 +1,5 @@
1
1
  import { keccak256, toHex } from 'viem';
2
- import { TESTNET } from '../../contracts.js';
2
+ import { requireGeoContract, resolveGeoNetwork } from '../networks.js';
3
3
  /**
4
4
  * Action hash for GOVERNANCE.PROPOSAL_CREATED
5
5
  * Used when creating proposals via SpaceRegistry.enter()
@@ -75,11 +75,12 @@ export function bytes16ToBytes32LeftAligned(bytes16Hex) {
75
75
  return `0x${s.slice(2)}${'0'.repeat(32)}`;
76
76
  }
77
77
  /**
78
- * Get Contract Addresses based on Network
78
+ * Get contract addresses based on network.
79
79
  */
80
80
  export function getContractAddressesBasedOnNetwork(network) {
81
- if (network === 'MAINNET')
82
- throw Error('MAINNET not supported yet');
83
- return TESTNET;
81
+ const config = resolveGeoNetwork(network);
82
+ return {
83
+ SPACE_REGISTRY_ADDRESS: requireGeoContract(config, 'SPACE_REGISTRY_ADDRESS'),
84
+ };
84
85
  }
85
86
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/dao-space/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,MAAM,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7C;;;GAGG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,SAAS,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC,CAAC;AAEvF;;;GAGG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,SAAS,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC,CAAC;AAEnF;;;GAGG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,SAAS,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC,CAAC;AAE/F;;;GAGG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,SAAS,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC,CAAC;AAEzF;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,GAAG,EAAE,CAAC;IACN,EAAE,EAAE,CAAC;IACL,OAAO,EAAE,CAAC;CACF,CAAC;AAEX;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,oEAA6E,CAAC;AAEzG;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,IAAa,CAAC;AAE7C;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,qBAAqB,CAAC;AAEvD;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,qBAAqB,CAAC;AAEvD;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,KAAa;IAC1C,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,KAAK,EAAE,CAAkB,CAAC;AAC1E,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,KAAa;IACxC,OAAO,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACvC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,SAAS,CAAC,KAAoB;IAC5C,MAAM,CAAC,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;IAC9B,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,kBAAkB,KAAK,EAAE,CAAC,CAAC;IAC3E,OAAO,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAmB,CAAC;AAChD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,2BAA2B,CAAC,UAAyB;IACnE,MAAM,CAAC,GAAG,UAAU,CAAC,WAAW,EAAE,CAAC;IACnC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,UAAU,EAAE,CAAC,CAAC;IACtF,OAAO,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAmB,CAAC;AAC7D,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kCAAkC,CAAC,OAA8B;IAC/E,IAAI,OAAO,KAAK,SAAS;QAAE,MAAM,KAAK,CAAC,2BAA2B,CAAC,CAAC;IACpE,OAAO,OAAO,CAAC;AACjB,CAAC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/dao-space/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,MAAM,CAAC;AACxC,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAGvE;;;GAGG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,SAAS,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC,CAAC;AAEvF;;;GAGG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,SAAS,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC,CAAC;AAEnF;;;GAGG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,SAAS,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC,CAAC;AAE/F;;;GAGG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,SAAS,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC,CAAC;AAEzF;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,GAAG,EAAE,CAAC;IACN,EAAE,EAAE,CAAC;IACL,OAAO,EAAE,CAAC;CACF,CAAC;AAEX;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,oEAA6E,CAAC;AAEzG;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,IAAa,CAAC;AAE7C;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,qBAAqB,CAAC;AAEvD;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,qBAAqB,CAAC;AAEvD;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,KAAa;IAC1C,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,KAAK,EAAE,CAAkB,CAAC;AAC1E,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,KAAa;IACxC,OAAO,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACvC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,SAAS,CAAC,KAAoB;IAC5C,MAAM,CAAC,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;IAC9B,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,kBAAkB,KAAK,EAAE,CAAC,CAAC;IAC3E,OAAO,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAmB,CAAC;AAChD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,2BAA2B,CAAC,UAAyB;IACnE,MAAM,CAAC,GAAG,UAAU,CAAC,WAAW,EAAE,CAAC;IACnC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,UAAU,EAAE,CAAC,CAAC;IACtF,OAAO,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAmB,CAAC;AAC7D,CAAC;AAMD;;GAEG;AACH,MAAM,UAAU,kCAAkC,CAAC,OAAmB;IACpE,MAAM,MAAM,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAC1C,OAAO;QACL,sBAAsB,EAAE,kBAAkB,CAAC,MAAM,EAAE,wBAAwB,CAAC;KAC7E,CAAC;AACJ,CAAC"}
@@ -2,37 +2,7 @@ import type { CreateSpaceParams, CreateSpaceResult } from './types.js';
2
2
  /**
3
3
  * Get the target address and calldata for creating a DAO space.
4
4
  *
5
- * This function creates the space entity, uploads the initial edit to IPFS,
6
- * and returns everything needed to submit a transaction that creates
7
- * a DAO space on the DAO Space Factory contract.
8
- *
9
- * @param params - The parameters for creating the DAO space
10
- * @returns Object containing `to` (contract address), `calldata` for the transaction,
11
- * `spaceEntityId` for the generated space entity, and `cid` for the IPFS content
12
- *
13
- * @example
14
- * ```ts
15
- * import { daoSpace } from '@geoprotocol/geo-sdk';
16
- * import { createWalletClient, http } from 'viem';
17
- *
18
- * const { to, calldata, spaceEntityId, cid } = await daoSpace.createSpace({
19
- * name: 'My DAO Space',
20
- * votingSettings: {
21
- * slowPathPercentageThreshold: 50, // 50% approval needed
22
- * fastPathFlatThreshold: 3, // 3 editors for fast path
23
- * quorum: 2, // minimum 2 editors must vote
24
- * durationInDays: 7, // 7 day voting period
25
- * },
26
- * initialEditorSpaceIds: ['0x01234567890abcdef01234567890abcd'],
27
- * author: 'your-personal-space-id',
28
- * });
29
- *
30
- * // Using viem
31
- * const hash = await walletClient.sendTransaction({
32
- * to,
33
- * data: calldata,
34
- * });
35
- * ```
5
+ * @deprecated Use `createGeoClient({ network }).daoSpaces.create(...)`.
36
6
  */
37
7
  export declare function createSpace(params: CreateSpaceParams): Promise<CreateSpaceResult>;
38
8
  //# sourceMappingURL=create-space.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"create-space.d.ts","sourceRoot":"","sources":["../../../src/dao-space/create-space.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEvE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,wBAAsB,WAAW,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAyCvF"}
1
+ {"version":3,"file":"create-space.d.ts","sourceRoot":"","sources":["../../../src/dao-space/create-space.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEvE;;;;GAIG;AACH,wBAAsB,WAAW,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAGvF"}
@@ -1,77 +1,12 @@
1
- import { TESTNET } from '../../contracts.js';
2
- import { SPACE_TYPE } from '../core/ids/system.js';
3
- import { getCreateDaoSpaceCalldata } from '../encodings/index.js';
4
- import { createEntity } from '../graph/create-entity.js';
5
- import * as IdUtils from '../id-utils.js';
6
- import { publishEdit } from '../ipfs.js';
1
+ import { createGeoClient } from '../client.js';
2
+ import { resolveGeoNetwork } from '../networks.js';
7
3
  /**
8
4
  * Get the target address and calldata for creating a DAO space.
9
5
  *
10
- * This function creates the space entity, uploads the initial edit to IPFS,
11
- * and returns everything needed to submit a transaction that creates
12
- * a DAO space on the DAO Space Factory contract.
13
- *
14
- * @param params - The parameters for creating the DAO space
15
- * @returns Object containing `to` (contract address), `calldata` for the transaction,
16
- * `spaceEntityId` for the generated space entity, and `cid` for the IPFS content
17
- *
18
- * @example
19
- * ```ts
20
- * import { daoSpace } from '@geoprotocol/geo-sdk';
21
- * import { createWalletClient, http } from 'viem';
22
- *
23
- * const { to, calldata, spaceEntityId, cid } = await daoSpace.createSpace({
24
- * name: 'My DAO Space',
25
- * votingSettings: {
26
- * slowPathPercentageThreshold: 50, // 50% approval needed
27
- * fastPathFlatThreshold: 3, // 3 editors for fast path
28
- * quorum: 2, // minimum 2 editors must vote
29
- * durationInDays: 7, // 7 day voting period
30
- * },
31
- * initialEditorSpaceIds: ['0x01234567890abcdef01234567890abcd'],
32
- * author: 'your-personal-space-id',
33
- * });
34
- *
35
- * // Using viem
36
- * const hash = await walletClient.sendTransaction({
37
- * to,
38
- * data: calldata,
39
- * });
40
- * ```
6
+ * @deprecated Use `createGeoClient({ network }).daoSpaces.create(...)`.
41
7
  */
42
8
  export async function createSpace(params) {
43
- const { name, author, ops: additionalOps = [], network = 'TESTNET' } = params;
44
- // Generate a space entity ID
45
- const spaceEntityId = IdUtils.generate();
46
- // Create ops for the space entity with name and type
47
- const ops = [];
48
- const { ops: createSpaceEntityOps } = createEntity({
49
- id: spaceEntityId,
50
- name,
51
- types: [SPACE_TYPE],
52
- });
53
- ops.push(...createSpaceEntityOps);
54
- // Add any additional ops
55
- ops.push(...additionalOps);
56
- // Upload ops to IPFS
57
- const { cid } = await publishEdit({
58
- name: `Create DAO Space: ${name}`,
59
- ops,
60
- author,
61
- network,
62
- });
63
- const calldata = getCreateDaoSpaceCalldata({
64
- votingSettings: params.votingSettings,
65
- initialEditorSpaceIds: params.initialEditorSpaceIds,
66
- initialMemberSpaceIds: params.initialMemberSpaceIds ?? [],
67
- initialEditsContentUri: cid,
68
- initialTopicId: params.initialTopicId,
69
- });
70
- return {
71
- to: TESTNET.DAO_SPACE_FACTORY_ADDRESS,
72
- calldata,
73
- spaceEntityId,
74
- cid,
75
- };
9
+ const { network = 'TESTNET', ...args } = params;
10
+ return createGeoClient({ network: resolveGeoNetwork(network) }).daoSpaces.create(args);
76
11
  }
77
12
  //# sourceMappingURL=create-space.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"create-space.js","sourceRoot":"","sources":["../../../src/dao-space/create-space.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAGzC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,MAAyB;IACzD,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,aAAa,GAAG,EAAE,EAAE,OAAO,GAAG,SAAS,EAAE,GAAG,MAAM,CAAC;IAE9E,6BAA6B;IAC7B,MAAM,aAAa,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAEzC,qDAAqD;IACrD,MAAM,GAAG,GAAS,EAAE,CAAC;IAErB,MAAM,EAAE,GAAG,EAAE,oBAAoB,EAAE,GAAG,YAAY,CAAC;QACjD,EAAE,EAAE,aAAa;QACjB,IAAI;QACJ,KAAK,EAAE,CAAC,UAAU,CAAC;KACpB,CAAC,CAAC;IACH,GAAG,CAAC,IAAI,CAAC,GAAG,oBAAoB,CAAC,CAAC;IAElC,yBAAyB;IACzB,GAAG,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,CAAC;IAE3B,qBAAqB;IACrB,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,WAAW,CAAC;QAChC,IAAI,EAAE,qBAAqB,IAAI,EAAE;QACjC,GAAG;QACH,MAAM;QACN,OAAO;KACR,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAG,yBAAyB,CAAC;QACzC,cAAc,EAAE,MAAM,CAAC,cAAc;QACrC,qBAAqB,EAAE,MAAM,CAAC,qBAAqB;QACnD,qBAAqB,EAAE,MAAM,CAAC,qBAAqB,IAAI,EAAE;QACzD,sBAAsB,EAAE,GAAG;QAC3B,cAAc,EAAE,MAAM,CAAC,cAAc;KACtC,CAAC,CAAC;IAEH,OAAO;QACL,EAAE,EAAE,OAAO,CAAC,yBAAyB;QACrC,QAAQ;QACR,aAAa;QACb,GAAG;KACJ,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"create-space.js","sourceRoot":"","sources":["../../../src/dao-space/create-space.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAGnD;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,MAAyB;IACzD,MAAM,EAAE,OAAO,GAAG,SAAS,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM,CAAC;IAChD,OAAO,eAAe,CAAC,EAAE,OAAO,EAAE,iBAAiB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AACzF,CAAC"}
@@ -2,28 +2,7 @@ import type { ExecuteProposalParams, ExecuteProposalResult } from './types.js';
2
2
  /**
3
3
  * Creates an execute transaction for a passed DAO space proposal.
4
4
  *
5
- * This function:
6
- * 1. Validates the author, DAO space, and proposal IDs
7
- * 2. Encodes the proposal ID as the data payload
8
- * 3. Encodes the SpaceRegistry's `enter()` call with the `PROPOSAL_EXECUTED` action
9
- *
10
- * Anyone can execute a proposal once it has passed the support threshold.
11
- *
12
- * @param params - The parameters for executing a proposal
13
- * @returns Object containing `to` (Space Registry address) and `calldata`
14
- *
15
- * @example
16
- * ```ts
17
- * import { daoSpace } from '@geoprotocol/geo-sdk';
18
- *
19
- * const { to, calldata } = daoSpace.executeProposal({
20
- * authorSpaceId: '0xAuthorBytes16SpaceId...',
21
- * spaceId: '0xDAOBytes16SpaceId...',
22
- * proposalId: '0xProposalBytes16Id...',
23
- * });
24
- *
25
- * await walletClient.sendTransaction({ to, data: calldata });
26
- * ```
5
+ * @deprecated Use `createGeoClient({ network }).daoSpaces.proposals.execute(...)`.
27
6
  */
28
7
  export declare function executeProposal(params: ExecuteProposalParams): ExecuteProposalResult;
29
8
  //# sourceMappingURL=execute-proposal.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"execute-proposal.d.ts","sourceRoot":"","sources":["../../../src/dao-space/execute-proposal.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAE/E;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,qBAAqB,GAAG,qBAAqB,CA2CpF"}
1
+ {"version":3,"file":"execute-proposal.d.ts","sourceRoot":"","sources":["../../../src/dao-space/execute-proposal.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAE/E;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,qBAAqB,GAAG,qBAAqB,CAapF"}
@@ -1,69 +1,22 @@
1
- import { encodeAbiParameters, encodeFunctionData } from 'viem';
2
- import { TESTNET } from '../../contracts.js';
3
- import { SpaceRegistryAbi } from '../abis/index.js';
4
- import { bytes16ToBytes32LeftAligned, EMPTY_SIGNATURE, ensure0xPrefix, isBytes16Hex, PROPOSAL_EXECUTED_ACTION, } from './constants.js';
1
+ import { createGeoClient } from '../client.js';
2
+ import { resolveGeoNetwork } from '../networks.js';
3
+ import { ensure0xPrefix, isBytes16Hex } from './constants.js';
5
4
  /**
6
5
  * Creates an execute transaction for a passed DAO space proposal.
7
6
  *
8
- * This function:
9
- * 1. Validates the author, DAO space, and proposal IDs
10
- * 2. Encodes the proposal ID as the data payload
11
- * 3. Encodes the SpaceRegistry's `enter()` call with the `PROPOSAL_EXECUTED` action
12
- *
13
- * Anyone can execute a proposal once it has passed the support threshold.
14
- *
15
- * @param params - The parameters for executing a proposal
16
- * @returns Object containing `to` (Space Registry address) and `calldata`
17
- *
18
- * @example
19
- * ```ts
20
- * import { daoSpace } from '@geoprotocol/geo-sdk';
21
- *
22
- * const { to, calldata } = daoSpace.executeProposal({
23
- * authorSpaceId: '0xAuthorBytes16SpaceId...',
24
- * spaceId: '0xDAOBytes16SpaceId...',
25
- * proposalId: '0xProposalBytes16Id...',
26
- * });
27
- *
28
- * await walletClient.sendTransaction({ to, data: calldata });
29
- * ```
7
+ * @deprecated Use `createGeoClient({ network }).daoSpaces.proposals.execute(...)`.
30
8
  */
31
9
  export function executeProposal(params) {
32
- const { authorSpaceId: rawAuthorSpaceId, spaceId: rawSpaceId, proposalId: rawProposalId } = params;
33
- // Ensure 0x prefix on all IDs
34
- const authorSpaceId = ensure0xPrefix(rawAuthorSpaceId);
35
- const spaceId = ensure0xPrefix(rawSpaceId);
36
- const proposalId = ensure0xPrefix(rawProposalId);
37
- // Validate inputs
38
- if (!isBytes16Hex(authorSpaceId)) {
39
- throw new Error(`authorSpaceId must be bytes16 hex (32 hex chars). Received: ${rawAuthorSpaceId}`);
10
+ const { network = 'TESTNET', ...args } = params;
11
+ if (!isBytes16Hex(ensure0xPrefix(args.authorSpaceId))) {
12
+ throw new Error(`authorSpaceId must be bytes16 hex (32 hex chars). Received: ${args.authorSpaceId}`);
40
13
  }
41
- if (!isBytes16Hex(spaceId)) {
42
- throw new Error(`spaceId must be bytes16 hex (32 hex chars). Received: ${rawSpaceId}`);
14
+ if (!isBytes16Hex(ensure0xPrefix(args.spaceId))) {
15
+ throw new Error(`spaceId must be bytes16 hex (32 hex chars). Received: ${args.spaceId}`);
43
16
  }
44
- if (!isBytes16Hex(proposalId)) {
45
- throw new Error(`proposalId must be bytes16 hex (32 hex chars). Received: ${rawProposalId}`);
17
+ if (!isBytes16Hex(ensure0xPrefix(args.proposalId))) {
18
+ throw new Error(`proposalId must be bytes16 hex (32 hex chars). Received: ${args.proposalId}`);
46
19
  }
47
- // Convert proposalId to bytes32 for the topic (left-aligned)
48
- const topic = bytes16ToBytes32LeftAligned(proposalId);
49
- // Encode the execute data: proposalId (matches the contract's abi.decode format)
50
- const data = encodeAbiParameters([{ type: 'bytes16', name: 'proposalId' }], [proposalId]);
51
- // Encode the SpaceRegistry.enter() call
52
- const calldata = encodeFunctionData({
53
- abi: SpaceRegistryAbi,
54
- functionName: 'enter',
55
- args: [
56
- authorSpaceId, // fromSpaceId
57
- spaceId, // toSpaceId
58
- PROPOSAL_EXECUTED_ACTION, // action
59
- topic, // topic (proposalId left-aligned to bytes32)
60
- data, // data (encoded proposalId)
61
- EMPTY_SIGNATURE, // signature (unused when msg.sender == fromSpace)
62
- ],
63
- });
64
- return {
65
- to: TESTNET.SPACE_REGISTRY_ADDRESS,
66
- calldata,
67
- };
20
+ return createGeoClient({ network: resolveGeoNetwork(network) }).daoSpaces.proposals.execute(args);
68
21
  }
69
22
  //# sourceMappingURL=execute-proposal.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"execute-proposal.js","sourceRoot":"","sources":["../../../src/dao-space/execute-proposal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,MAAM,CAAC;AAC/D,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EACL,2BAA2B,EAC3B,eAAe,EACf,cAAc,EACd,YAAY,EACZ,wBAAwB,GACzB,MAAM,gBAAgB,CAAC;AAGxB;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,UAAU,eAAe,CAAC,MAA6B;IAC3D,MAAM,EAAE,aAAa,EAAE,gBAAgB,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,aAAa,EAAE,GAAG,MAAM,CAAC;IAEnG,8BAA8B;IAC9B,MAAM,aAAa,GAAG,cAAc,CAAC,gBAAgB,CAAC,CAAC;IACvD,MAAM,OAAO,GAAG,cAAc,CAAC,UAAU,CAAC,CAAC;IAC3C,MAAM,UAAU,GAAG,cAAc,CAAC,aAAa,CAAC,CAAC;IAEjD,kBAAkB;IAClB,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CAAC,+DAA+D,gBAAgB,EAAE,CAAC,CAAC;IACrG,CAAC;IACD,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,yDAAyD,UAAU,EAAE,CAAC,CAAC;IACzF,CAAC;IACD,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CAAC,4DAA4D,aAAa,EAAE,CAAC,CAAC;IAC/F,CAAC;IAED,6DAA6D;IAC7D,MAAM,KAAK,GAAG,2BAA2B,CAAC,UAAU,CAAC,CAAC;IAEtD,iFAAiF;IACjF,MAAM,IAAI,GAAG,mBAAmB,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;IAE1F,wCAAwC;IACxC,MAAM,QAAQ,GAAG,kBAAkB,CAAC;QAClC,GAAG,EAAE,gBAAgB;QACrB,YAAY,EAAE,OAAO;QACrB,IAAI,EAAE;YACJ,aAAa,EAAE,cAAc;YAC7B,OAAO,EAAE,YAAY;YACrB,wBAAwB,EAAE,SAAS;YACnC,KAAK,EAAE,6CAA6C;YACpD,IAAI,EAAE,4BAA4B;YAClC,eAAe,EAAE,kDAAkD;SACpE;KACF,CAAC,CAAC;IAEH,OAAO;QACL,EAAE,EAAE,OAAO,CAAC,sBAAsB;QAClC,QAAQ;KACT,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"execute-proposal.js","sourceRoot":"","sources":["../../../src/dao-space/execute-proposal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAG9D;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,MAA6B;IAC3D,MAAM,EAAE,OAAO,GAAG,SAAS,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM,CAAC;IAChD,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC;QACtD,MAAM,IAAI,KAAK,CAAC,+DAA+D,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;IACvG,CAAC;IACD,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;QAChD,MAAM,IAAI,KAAK,CAAC,yDAAyD,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IAC3F,CAAC;IACD,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;QACnD,MAAM,IAAI,KAAK,CAAC,4DAA4D,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;IACjG,CAAC;IAED,OAAO,eAAe,CAAC,EAAE,OAAO,EAAE,iBAAiB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AACpG,CAAC"}
@@ -58,7 +58,7 @@ describe('proposeAddEditor', () => {
58
58
  });
59
59
  expect(result.calldata).toBeTruthy();
60
60
  });
61
- it('should accept FAST voting mode', () => {
61
+ it('should preserve legacy FAST voting mode support', () => {
62
62
  const result = proposeAddEditor({
63
63
  authorSpaceId: validAuthorSpaceId,
64
64
  spaceId: validSpaceId,
@@ -1 +1 @@
1
- {"version":3,"file":"propose-add-editor.test.js","sourceRoot":"","sources":["../../../src/dao-space/propose-add-editor.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAE9C,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAE3D,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;IAChC,MAAM,kBAAkB,GAAG,oCAA6C,CAAC;IACzE,MAAM,YAAY,GAAG,oCAA6C,CAAC;IACnE,MAAM,qBAAqB,GAAG,oCAA6C,CAAC;IAE5E,EAAE,CAAC,iCAAiC,EAAE,GAAG,EAAE;QACzC,MAAM,MAAM,GAAG,gBAAgB,CAAC;YAC9B,aAAa,EAAE,kBAAkB;YACjC,OAAO,EAAE,YAAY;YACrB,gBAAgB,EAAE,qBAAqB;SACxC,CAAC,CAAC;QAEH,MAAM,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QACpC,MAAM,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;QAC1C,MAAM,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6DAA6D,EAAE,GAAG,EAAE;QACrE,MAAM,EAAE,EAAE,EAAE,GAAG,gBAAgB,CAAC;YAC9B,aAAa,EAAE,kBAAkB;YACjC,OAAO,EAAE,YAAY;YACrB,gBAAgB,EAAE,qBAAqB;SACxC,CAAC,CAAC;QAEH,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;QACtC,MAAM,EAAE,QAAQ,EAAE,GAAG,gBAAgB,CAAC;YACpC,aAAa,EAAE,kBAAkB;YACjC,OAAO,EAAE,YAAY;YACrB,gBAAgB,EAAE,qBAAqB;SACxC,CAAC,CAAC;QAEH,MAAM,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QACtC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;QACtD,MAAM,EAAE,UAAU,EAAE,GAAG,gBAAgB,CAAC;YACtC,aAAa,EAAE,kBAAkB;YACjC,OAAO,EAAE,YAAY;YACrB,gBAAgB,EAAE,qBAAqB;SACxC,CAAC,CAAC;QAEH,MAAM,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iCAAiC,EAAE,GAAG,EAAE;QACzC,MAAM,gBAAgB,GAAG,oCAA6C,CAAC;QAEvE,MAAM,EAAE,UAAU,EAAE,GAAG,gBAAgB,CAAC;YACtC,aAAa,EAAE,kBAAkB;YACjC,OAAO,EAAE,YAAY;YACrB,gBAAgB,EAAE,qBAAqB;YACvC,UAAU,EAAE,gBAAgB;SAC7B,CAAC,CAAC;QAEH,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+DAA+D,EAAE,GAAG,EAAE;QACvE,MAAM,MAAM,GAAG,gBAAgB,CAAC;YAC9B,aAAa,EAAE,kBAAkB;YACjC,OAAO,EAAE,YAAY;YACrB,gBAAgB,EAAE,qBAAqB;SACxC,CAAC,CAAC;QAEH,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,UAAU,EAAE,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;QACxC,MAAM,MAAM,GAAG,gBAAgB,CAAC;YAC9B,aAAa,EAAE,kBAAkB;YACjC,OAAO,EAAE,YAAY;YACrB,gBAAgB,EAAE,qBAAqB;YACvC,UAAU,EAAE,MAAM;SACnB,CAAC,CAAC;QAEH,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,UAAU,EAAE,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uDAAuD,EAAE,GAAG,EAAE;QAC/D,MAAM,OAAO,GAAG,gBAAgB,CAAC;YAC/B,aAAa,EAAE,kBAAkB;YACjC,OAAO,EAAE,YAAY;YACrB,gBAAgB,EAAE,qBAAqB;SACxC,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG,gBAAgB,CAAC;YAC/B,aAAa,EAAE,kBAAkB;YACjC,OAAO,EAAE,YAAY;YACrB,gBAAgB,EAAE,qBAAqB;SACxC,CAAC,CAAC;QAEH,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;QACjD,MAAM,CAAC,GAAG,EAAE,CACV,gBAAgB,CAAC;YACf,aAAa,EAAE,WAA4B;YAC3C,OAAO,EAAE,YAAY;YACrB,gBAAgB,EAAE,qBAAqB;SACxC,CAAC,CACH,CAAC,OAAO,CAAC,mCAAmC,CAAC,CAAC;IACjD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;QACpD,MAAM,CAAC,GAAG,EAAE,CACV,gBAAgB,CAAC;YACf,aAAa,EAAE,kBAAkB;YACjC,OAAO,EAAE,YAA6B;YACtC,gBAAgB,EAAE,qBAAqB;SACxC,CAAC,CACH,CAAC,OAAO,CAAC,6BAA6B,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;QAC1D,MAAM,CAAC,GAAG,EAAE,CACV,gBAAgB,CAAC;YACf,aAAa,EAAE,kBAAkB;YACjC,OAAO,EAAE,YAAY;YACrB,gBAAgB,EAAE,WAA4B;SAC/C,CAAC,CACH,CAAC,OAAO,CAAC,sCAAsC,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"propose-add-editor.test.js","sourceRoot":"","sources":["../../../src/dao-space/propose-add-editor.test.ts"],"names":[],"mappings":"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"}
@@ -2,36 +2,7 @@ import type { ProposeEditParams, ProposeEditResult } from './types.js';
2
2
  /**
3
3
  * Creates a proposal to publish an edit to a DAO space.
4
4
  *
5
- * This function:
6
- * 1. Publishes the ops to IPFS using the GRC-20 binary format
7
- * 2. Generates a unique proposal ID (or uses the provided one)
8
- * 3. Encodes the proposal data for the SpaceRegistry's `enter()` function
9
- *
10
- * The proposal, when executed, will call the DAO space's `publish()` function
11
- * to publish the edit. Since `publish()` is a valid fast-path action, with
12
- * FAST voting mode and sufficient votes, the proposal will auto-execute.
13
- *
14
- * @param params - The parameters for creating the proposal
15
- * @returns Object containing `editId`, `cid`, `to` (Space Registry address),
16
- * `calldata`, and `proposalId`
17
- *
18
- * @example
19
- * ```ts
20
- * import { daoSpace, Graph } from '@geoprotocol/geo-sdk';
21
- *
22
- * const { ops } = Graph.createEntity({ name: 'New Entity' });
23
- * const { editId, cid, to, calldata, proposalId } = await daoSpace.proposeEdit({
24
- * name: 'Add new entity',
25
- * ops,
26
- * author: 'your-personal-space-id',
27
- * daoSpaceAddress: '0xDAOSpaceContractAddress...',
28
- * callerSpaceId: '0xCallerBytes16SpaceId...',
29
- * daoSpaceId: '0xDAOBytes16SpaceId...',
30
- * });
31
- *
32
- * // Submit the transaction using viem or another client
33
- * await walletClient.sendTransaction({ to, data: calldata });
34
- * ```
5
+ * @deprecated Use `createGeoClient({ network }).daoSpaces.proposeEdit(...)`.
35
6
  */
36
7
  export declare function proposeEdit(params: ProposeEditParams): Promise<ProposeEditResult>;
37
8
  //# sourceMappingURL=propose-edit.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"propose-edit.d.ts","sourceRoot":"","sources":["../../../src/dao-space/propose-edit.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEvE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,wBAAsB,WAAW,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAmGvF"}
1
+ {"version":3,"file":"propose-edit.d.ts","sourceRoot":"","sources":["../../../src/dao-space/propose-edit.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEvE;;;;GAIG;AACH,wBAAsB,WAAW,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAavF"}
@@ -1,118 +1,22 @@
1
- import { v4 as uuidv4 } from 'uuid';
2
- import { encodeAbiParameters, encodeFunctionData } from 'viem';
3
- import { TESTNET } from '../../contracts.js';
4
- import { DaoSpaceAbi, SpaceRegistryAbi } from '../abis/index.js';
5
- import { assertValid } from '../id-utils.js';
6
- import * as Ipfs from '../ipfs.js';
7
- import { bytes16ToBytes32LeftAligned, EMPTY_SIGNATURE, EMPTY_TOPIC, isBytes16Hex, PROPOSAL_CREATED_ACTION, } from './constants.js';
1
+ import { createGeoClient } from '../client.js';
2
+ import { resolveGeoNetwork } from '../networks.js';
3
+ import { isBytes16Hex } from './constants.js';
8
4
  /**
9
5
  * Creates a proposal to publish an edit to a DAO space.
10
6
  *
11
- * This function:
12
- * 1. Publishes the ops to IPFS using the GRC-20 binary format
13
- * 2. Generates a unique proposal ID (or uses the provided one)
14
- * 3. Encodes the proposal data for the SpaceRegistry's `enter()` function
15
- *
16
- * The proposal, when executed, will call the DAO space's `publish()` function
17
- * to publish the edit. Since `publish()` is a valid fast-path action, with
18
- * FAST voting mode and sufficient votes, the proposal will auto-execute.
19
- *
20
- * @param params - The parameters for creating the proposal
21
- * @returns Object containing `editId`, `cid`, `to` (Space Registry address),
22
- * `calldata`, and `proposalId`
23
- *
24
- * @example
25
- * ```ts
26
- * import { daoSpace, Graph } from '@geoprotocol/geo-sdk';
27
- *
28
- * const { ops } = Graph.createEntity({ name: 'New Entity' });
29
- * const { editId, cid, to, calldata, proposalId } = await daoSpace.proposeEdit({
30
- * name: 'Add new entity',
31
- * ops,
32
- * author: 'your-personal-space-id',
33
- * daoSpaceAddress: '0xDAOSpaceContractAddress...',
34
- * callerSpaceId: '0xCallerBytes16SpaceId...',
35
- * daoSpaceId: '0xDAOBytes16SpaceId...',
36
- * });
37
- *
38
- * // Submit the transaction using viem or another client
39
- * await walletClient.sendTransaction({ to, data: calldata });
40
- * ```
7
+ * @deprecated Use `createGeoClient({ network }).daoSpaces.proposeEdit(...)`.
41
8
  */
42
9
  export async function proposeEdit(params) {
43
- const { name, ops, author, daoSpaceAddress, callerSpaceId, daoSpaceId, votingMode = 'FAST', proposalId: proposalIdInput, network = 'TESTNET', } = params;
44
- // Validate inputs
45
- assertValid(author, '`author` in `proposeEdit`');
46
- if (!isBytes16Hex(callerSpaceId)) {
47
- throw new Error(`callerSpaceId must be bytes16 hex (0x followed by 32 hex chars). Received: ${callerSpaceId}`);
10
+ const { network = 'TESTNET', ...args } = params;
11
+ if (!isBytes16Hex(args.callerSpaceId)) {
12
+ throw new Error(`callerSpaceId must be bytes16 hex (0x followed by 32 hex chars). Received: ${args.callerSpaceId}`);
48
13
  }
49
- if (!isBytes16Hex(daoSpaceId)) {
50
- throw new Error(`daoSpaceId must be bytes16 hex (0x followed by 32 hex chars). Received: ${daoSpaceId}`);
14
+ if (!isBytes16Hex(args.daoSpaceId)) {
15
+ throw new Error(`daoSpaceId must be bytes16 hex (0x followed by 32 hex chars). Received: ${args.daoSpaceId}`);
51
16
  }
52
- // Publish the edit to IPFS
53
- const { cid, editId } = await Ipfs.publishEdit({
54
- name,
55
- ops,
56
- author,
57
- network,
58
- });
59
- // Generate or use provided proposal ID (UUID v4 as bytes16 hex)
60
- const proposalId = proposalIdInput ?? `0x${uuidv4().replaceAll('-', '')}`;
61
- if (!isBytes16Hex(proposalId)) {
62
- throw new Error(`proposalId must be bytes16 hex (0x followed by 32 hex chars). Received: ${proposalId}`);
17
+ if (args.proposalId && !isBytes16Hex(args.proposalId)) {
18
+ throw new Error(`proposalId must be bytes16 hex (0x followed by 32 hex chars). Received: ${args.proposalId}`);
63
19
  }
64
- // Encode the CID as bytes for the editsContentUri parameter
65
- const editsContentUri = encodeAbiParameters([{ type: 'string' }], [cid]);
66
- const editsMetadata = '0x';
67
- // Encode the publish function call: publish(bytes32 _topic, bytes _editsContentUri, bytes _editsMetadata)
68
- const proposalActionCalldata = encodeFunctionData({
69
- abi: DaoSpaceAbi,
70
- functionName: 'publish',
71
- args: [EMPTY_TOPIC, editsContentUri, editsMetadata],
72
- });
73
- // Create the proposal action (calling publish on the DAO space)
74
- const proposalActions = [
75
- {
76
- to: daoSpaceAddress,
77
- value: 0n,
78
- data: proposalActionCalldata,
79
- },
80
- ];
81
- // Encode the proposal data: abi.encode(bytes16 proposalId, VotingMode votingMode, Action[] actions)
82
- const data = encodeAbiParameters([
83
- { type: 'bytes16', name: 'proposalId' },
84
- { type: 'uint8', name: 'votingMode' },
85
- {
86
- type: 'tuple[]',
87
- name: 'actions',
88
- components: [
89
- { type: 'address', name: 'to' },
90
- { type: 'uint256', name: 'value' },
91
- { type: 'bytes', name: 'data' },
92
- ],
93
- },
94
- ], [proposalId, votingMode === 'FAST' ? 1 : 0, proposalActions]);
95
- // Convert proposalId to bytes32 for the topic (left-aligned)
96
- const topic = bytes16ToBytes32LeftAligned(proposalId);
97
- // Encode the SpaceRegistry.enter() call
98
- const calldata = encodeFunctionData({
99
- abi: SpaceRegistryAbi,
100
- functionName: 'enter',
101
- args: [
102
- callerSpaceId, // fromSpaceId
103
- daoSpaceId, // toSpaceId
104
- PROPOSAL_CREATED_ACTION, // action
105
- topic, // topic (proposalId left-aligned to bytes32)
106
- data, // data (encoded proposal)
107
- EMPTY_SIGNATURE, // signature (unused when msg.sender == fromSpace)
108
- ],
109
- });
110
- return {
111
- editId,
112
- cid,
113
- to: TESTNET.SPACE_REGISTRY_ADDRESS,
114
- calldata,
115
- proposalId,
116
- };
20
+ return createGeoClient({ network: resolveGeoNetwork(network) }).daoSpaces.proposeEdit(args);
117
21
  }
118
22
  //# sourceMappingURL=propose-edit.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"propose-edit.js","sourceRoot":"","sources":["../../../src/dao-space/propose-edit.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"propose-edit.js","sourceRoot":"","sources":["../../../src/dao-space/propose-edit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAG9C;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,MAAyB;IACzD,MAAM,EAAE,OAAO,GAAG,SAAS,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM,CAAC;IAChD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC;QACtC,MAAM,IAAI,KAAK,CAAC,8EAA8E,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;IACtH,CAAC;IACD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;QACnC,MAAM,IAAI,KAAK,CAAC,2EAA2E,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;IAChH,CAAC;IACD,IAAI,IAAI,CAAC,UAAU,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;QACtD,MAAM,IAAI,KAAK,CAAC,2EAA2E,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;IAChH,CAAC;IAED,OAAO,eAAe,CAAC,EAAE,OAAO,EAAE,iBAAiB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;AAC9F,CAAC"}