@geoprotocol/geo-sdk 0.18.3 → 0.20.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1047 -371
- package/dist/contracts.d.ts +0 -11
- package/dist/contracts.d.ts.map +1 -1
- package/dist/contracts.js +0 -11
- package/dist/contracts.js.map +1 -1
- package/dist/index.d.ts +8 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -1
- package/dist/index.js.map +1 -1
- package/dist/lite.d.ts +2 -0
- package/dist/lite.d.ts.map +1 -1
- package/dist/lite.js +2 -0
- package/dist/lite.js.map +1 -1
- package/dist/src/abis/dao-space-factory.d.ts +43 -6
- package/dist/src/abis/dao-space-factory.d.ts.map +1 -1
- package/dist/src/abis/dao-space-factory.js +38 -27
- package/dist/src/abis/dao-space-factory.js.map +1 -1
- package/dist/src/abis/dao-space-v2.test.d.ts +2 -0
- package/dist/src/abis/dao-space-v2.test.d.ts.map +1 -0
- package/dist/src/abis/dao-space-v2.test.js +67 -0
- package/dist/src/abis/dao-space-v2.test.js.map +1 -0
- package/dist/src/abis/dao-space.d.ts +98 -7
- package/dist/src/abis/dao-space.d.ts.map +1 -1
- package/dist/src/abis/dao-space.js +61 -99
- package/dist/src/abis/dao-space.js.map +1 -1
- package/dist/src/abis/index.d.ts +2 -2
- package/dist/src/abis/index.d.ts.map +1 -1
- package/dist/src/abis/index.js +2 -2
- package/dist/src/abis/index.js.map +1 -1
- package/dist/src/api-surface.e2e.test.d.ts +2 -0
- package/dist/src/api-surface.e2e.test.d.ts.map +1 -0
- package/dist/src/api-surface.e2e.test.js +1007 -0
- package/dist/src/api-surface.e2e.test.js.map +1 -0
- package/dist/src/client/api.d.ts +86 -0
- package/dist/src/client/api.d.ts.map +1 -0
- package/dist/src/client/api.js +169 -0
- package/dist/src/client/api.js.map +1 -0
- package/dist/src/client/comments.d.ts +59 -0
- package/dist/src/client/comments.d.ts.map +1 -0
- package/dist/src/client/comments.js +96 -0
- package/dist/src/client/comments.js.map +1 -0
- package/dist/src/client/context.d.ts +20 -0
- package/dist/src/client/context.d.ts.map +1 -0
- package/dist/src/client/context.js +20 -0
- package/dist/src/client/context.js.map +1 -0
- package/dist/src/client/dao-spaces.d.ts +380 -0
- package/dist/src/client/dao-spaces.d.ts.map +1 -0
- package/dist/src/client/dao-spaces.js +585 -0
- package/dist/src/client/dao-spaces.js.map +1 -0
- package/dist/src/client/dao-spaces.test.d.ts +2 -0
- package/dist/src/client/dao-spaces.test.d.ts.map +1 -0
- package/dist/src/client/dao-spaces.test.js +461 -0
- package/dist/src/client/dao-spaces.test.js.map +1 -0
- package/dist/src/client/edits.d.ts +100 -0
- package/dist/src/client/edits.d.ts.map +1 -0
- package/dist/src/client/edits.js +131 -0
- package/dist/src/client/edits.js.map +1 -0
- package/dist/src/client/edits.test.d.ts +2 -0
- package/dist/src/client/edits.test.d.ts.map +1 -0
- package/dist/src/client/edits.test.js +98 -0
- package/dist/src/client/edits.test.js.map +1 -0
- package/dist/src/client/entities.d.ts +23 -0
- package/dist/src/client/entities.d.ts.map +1 -0
- package/dist/src/client/entities.js +88 -0
- package/dist/src/client/entities.js.map +1 -0
- package/dist/src/client/entity-votes.d.ts +141 -0
- package/dist/src/client/entity-votes.d.ts.map +1 -0
- package/dist/src/client/entity-votes.js +168 -0
- package/dist/src/client/entity-votes.js.map +1 -0
- package/dist/src/client/entity-votes.test.d.ts +2 -0
- package/dist/src/client/entity-votes.test.d.ts.map +1 -0
- package/dist/src/client/entity-votes.test.js +93 -0
- package/dist/src/client/entity-votes.test.js.map +1 -0
- package/dist/src/client/graph-workflows.test.d.ts +2 -0
- package/dist/src/client/graph-workflows.test.d.ts.map +1 -0
- package/dist/src/client/graph-workflows.test.js +83 -0
- package/dist/src/client/graph-workflows.test.js.map +1 -0
- package/dist/src/client/images-storage.test.d.ts +2 -0
- package/dist/src/client/images-storage.test.d.ts.map +1 -0
- package/dist/src/client/images-storage.test.js +52 -0
- package/dist/src/client/images-storage.test.js.map +1 -0
- package/dist/src/client/images.d.ts +35 -0
- package/dist/src/client/images.d.ts.map +1 -0
- package/dist/src/client/images.js +90 -0
- package/dist/src/client/images.js.map +1 -0
- package/dist/src/client/personal-spaces.d.ts +155 -0
- package/dist/src/client/personal-spaces.d.ts.map +1 -0
- package/dist/src/client/personal-spaces.js +198 -0
- package/dist/src/client/personal-spaces.js.map +1 -0
- package/dist/src/client/spaces.test.d.ts +2 -0
- package/dist/src/client/spaces.test.d.ts.map +1 -0
- package/dist/src/client/spaces.test.js +157 -0
- package/dist/src/client/spaces.test.js.map +1 -0
- package/dist/src/client/storage.d.ts +52 -0
- package/dist/src/client/storage.d.ts.map +1 -0
- package/dist/src/client/storage.js +53 -0
- package/dist/src/client/storage.js.map +1 -0
- package/dist/src/client.d.ts +328 -0
- package/dist/src/client.d.ts.map +1 -0
- package/dist/src/client.js +441 -0
- package/dist/src/client.js.map +1 -0
- package/dist/src/client.test.d.ts +2 -0
- package/dist/src/client.test.d.ts.map +1 -0
- package/dist/src/client.test.js +125 -0
- package/dist/src/client.test.js.map +1 -0
- package/dist/src/contracts-v2/local-geobrowser.e2e.test.d.ts +2 -0
- package/dist/src/contracts-v2/local-geobrowser.e2e.test.d.ts.map +1 -0
- package/dist/src/contracts-v2/local-geobrowser.e2e.test.js +239 -0
- package/dist/src/contracts-v2/local-geobrowser.e2e.test.js.map +1 -0
- package/dist/src/dao-space/constants.d.ts +16 -3
- package/dist/src/dao-space/constants.d.ts.map +1 -1
- package/dist/src/dao-space/constants.js +16 -5
- package/dist/src/dao-space/constants.js.map +1 -1
- package/dist/src/dao-space/create-space.d.ts +1 -31
- package/dist/src/dao-space/create-space.d.ts.map +1 -1
- package/dist/src/dao-space/create-space.js +5 -70
- package/dist/src/dao-space/create-space.js.map +1 -1
- package/dist/src/dao-space/execute-proposal.d.ts +1 -22
- package/dist/src/dao-space/execute-proposal.d.ts.map +1 -1
- package/dist/src/dao-space/execute-proposal.js +12 -59
- package/dist/src/dao-space/execute-proposal.js.map +1 -1
- package/dist/src/dao-space/index.d.ts +2 -1
- package/dist/src/dao-space/index.d.ts.map +1 -1
- package/dist/src/dao-space/index.js +1 -0
- package/dist/src/dao-space/index.js.map +1 -1
- package/dist/src/dao-space/propose-add-editor.d.ts +1 -20
- package/dist/src/dao-space/propose-add-editor.d.ts.map +1 -1
- package/dist/src/dao-space/propose-add-editor.js +12 -87
- package/dist/src/dao-space/propose-add-editor.js.map +1 -1
- package/dist/src/dao-space/propose-add-editor.test.js +16 -4
- package/dist/src/dao-space/propose-add-editor.test.js.map +1 -1
- package/dist/src/dao-space/propose-add-member.d.ts +1 -20
- package/dist/src/dao-space/propose-add-member.d.ts.map +1 -1
- package/dist/src/dao-space/propose-add-member.js +12 -87
- package/dist/src/dao-space/propose-add-member.js.map +1 -1
- package/dist/src/dao-space/propose-add-member.test.js +13 -0
- package/dist/src/dao-space/propose-add-member.test.js.map +1 -1
- package/dist/src/dao-space/propose-edit.d.ts +1 -30
- package/dist/src/dao-space/propose-edit.d.ts.map +1 -1
- package/dist/src/dao-space/propose-edit.js +12 -108
- package/dist/src/dao-space/propose-edit.js.map +1 -1
- package/dist/src/dao-space/propose-edit.test.js +53 -1
- package/dist/src/dao-space/propose-edit.test.js.map +1 -1
- package/dist/src/dao-space/propose-remove-editor.d.ts +1 -22
- package/dist/src/dao-space/propose-remove-editor.d.ts.map +1 -1
- package/dist/src/dao-space/propose-remove-editor.js +12 -94
- package/dist/src/dao-space/propose-remove-editor.js.map +1 -1
- package/dist/src/dao-space/propose-remove-editor.test.js +24 -11
- package/dist/src/dao-space/propose-remove-editor.test.js.map +1 -1
- package/dist/src/dao-space/propose-remove-member.d.ts +1 -22
- package/dist/src/dao-space/propose-remove-member.d.ts.map +1 -1
- package/dist/src/dao-space/propose-remove-member.js +12 -94
- package/dist/src/dao-space/propose-remove-member.js.map +1 -1
- package/dist/src/dao-space/propose-remove-member.test.js +19 -0
- package/dist/src/dao-space/propose-remove-member.test.js.map +1 -1
- package/dist/src/dao-space/propose-request-membership.d.ts.map +1 -1
- package/dist/src/dao-space/propose-request-membership.js +4 -4
- package/dist/src/dao-space/propose-request-membership.js.map +1 -1
- package/dist/src/dao-space/propose-update-voting-settings.d.ts +8 -0
- package/dist/src/dao-space/propose-update-voting-settings.d.ts.map +1 -0
- package/dist/src/dao-space/propose-update-voting-settings.js +19 -0
- package/dist/src/dao-space/propose-update-voting-settings.js.map +1 -0
- package/dist/src/dao-space/propose-update-voting-settings.test.d.ts +2 -0
- package/dist/src/dao-space/propose-update-voting-settings.test.d.ts.map +1 -0
- package/dist/src/dao-space/propose-update-voting-settings.test.js +118 -0
- package/dist/src/dao-space/propose-update-voting-settings.test.js.map +1 -0
- package/dist/src/dao-space/types.d.ts +72 -11
- package/dist/src/dao-space/types.d.ts.map +1 -1
- package/dist/src/dao-space/vote-proposal.d.ts +1 -24
- package/dist/src/dao-space/vote-proposal.d.ts.map +1 -1
- package/dist/src/dao-space/vote-proposal.js +12 -64
- package/dist/src/dao-space/vote-proposal.js.map +1 -1
- package/dist/src/dao-space/vote-proposal.test.js +54 -0
- package/dist/src/dao-space/vote-proposal.test.js.map +1 -1
- package/dist/src/e2e-test-environment.d.ts +26 -0
- package/dist/src/e2e-test-environment.d.ts.map +1 -0
- package/dist/src/e2e-test-environment.js +150 -0
- package/dist/src/e2e-test-environment.js.map +1 -0
- package/dist/src/encoding.d.ts +3 -0
- package/dist/src/encoding.d.ts.map +1 -1
- package/dist/src/encoding.js +3 -0
- package/dist/src/encoding.js.map +1 -1
- package/dist/src/encodings/get-create-dao-space-calldata.d.ts +34 -97
- package/dist/src/encodings/get-create-dao-space-calldata.d.ts.map +1 -1
- package/dist/src/encodings/get-create-dao-space-calldata.js +66 -109
- package/dist/src/encodings/get-create-dao-space-calldata.js.map +1 -1
- package/dist/src/encodings/get-create-dao-space-calldata.test.js +90 -23
- package/dist/src/encodings/get-create-dao-space-calldata.test.js.map +1 -1
- package/dist/src/encodings/get-create-personal-space-calldata.d.ts +2 -0
- package/dist/src/encodings/get-create-personal-space-calldata.d.ts.map +1 -1
- package/dist/src/encodings/get-create-personal-space-calldata.js +2 -0
- package/dist/src/encodings/get-create-personal-space-calldata.js.map +1 -1
- package/dist/src/full-flow-test.test.js +5 -2
- package/dist/src/full-flow-test.test.js.map +1 -1
- package/dist/src/graph/comment-utils.d.ts +4 -0
- package/dist/src/graph/comment-utils.d.ts.map +1 -1
- package/dist/src/graph/comment-utils.js +4 -0
- package/dist/src/graph/comment-utils.js.map +1 -1
- package/dist/src/graph/constants.d.ts +12 -3
- package/dist/src/graph/constants.d.ts.map +1 -1
- package/dist/src/graph/constants.js +11 -5
- package/dist/src/graph/constants.js.map +1 -1
- package/dist/src/graph/create-comment.d.ts +3 -22
- package/dist/src/graph/create-comment.d.ts.map +1 -1
- package/dist/src/graph/create-comment.js +6 -136
- package/dist/src/graph/create-comment.js.map +1 -1
- package/dist/src/graph/create-comment.test.js +19 -8
- package/dist/src/graph/create-comment.test.js.map +1 -1
- package/dist/src/graph/create-entity.d.ts +2 -0
- package/dist/src/graph/create-entity.d.ts.map +1 -1
- package/dist/src/graph/create-entity.js +2 -0
- package/dist/src/graph/create-entity.js.map +1 -1
- package/dist/src/graph/create-image.d.ts +2 -21
- package/dist/src/graph/create-image.d.ts.map +1 -1
- package/dist/src/graph/create-image.js +7 -69
- package/dist/src/graph/create-image.js.map +1 -1
- package/dist/src/graph/create-property.d.ts +2 -0
- package/dist/src/graph/create-property.d.ts.map +1 -1
- package/dist/src/graph/create-property.js +2 -0
- package/dist/src/graph/create-property.js.map +1 -1
- package/dist/src/graph/create-proposal-review.d.ts +1 -27
- package/dist/src/graph/create-proposal-review.d.ts.map +1 -1
- package/dist/src/graph/create-proposal-review.js +4 -61
- package/dist/src/graph/create-proposal-review.js.map +1 -1
- package/dist/src/graph/create-relation.d.ts +2 -0
- package/dist/src/graph/create-relation.d.ts.map +1 -1
- package/dist/src/graph/create-relation.js +2 -0
- package/dist/src/graph/create-relation.js.map +1 -1
- package/dist/src/graph/create-type.d.ts +2 -0
- package/dist/src/graph/create-type.d.ts.map +1 -1
- package/dist/src/graph/create-type.js +2 -0
- package/dist/src/graph/create-type.js.map +1 -1
- package/dist/src/graph/delete-entity.d.ts +2 -14
- package/dist/src/graph/delete-entity.d.ts.map +1 -1
- package/dist/src/graph/delete-entity.js +5 -78
- package/dist/src/graph/delete-entity.js.map +1 -1
- package/dist/src/graph/delete-entity.test.js +7 -0
- package/dist/src/graph/delete-entity.test.js.map +1 -1
- package/dist/src/graph/delete-relation.d.ts +2 -0
- package/dist/src/graph/delete-relation.d.ts.map +1 -1
- package/dist/src/graph/delete-relation.js +2 -0
- package/dist/src/graph/delete-relation.js.map +1 -1
- package/dist/src/graph/entity-vote.d.ts +3 -3
- package/dist/src/graph/entity-vote.d.ts.map +1 -1
- package/dist/src/graph/entity-vote.js +21 -46
- package/dist/src/graph/entity-vote.js.map +1 -1
- package/dist/src/graph/update-comment.d.ts +3 -0
- package/dist/src/graph/update-comment.d.ts.map +1 -1
- package/dist/src/graph/update-comment.js +3 -0
- package/dist/src/graph/update-comment.js.map +1 -1
- package/dist/src/graph/update-entity.d.ts +2 -0
- package/dist/src/graph/update-entity.d.ts.map +1 -1
- package/dist/src/graph/update-entity.js +2 -0
- package/dist/src/graph/update-entity.js.map +1 -1
- package/dist/src/graph/update-proposal-review.d.ts +2 -27
- package/dist/src/graph/update-proposal-review.d.ts.map +1 -1
- package/dist/src/graph/update-proposal-review.js +4 -50
- package/dist/src/graph/update-proposal-review.js.map +1 -1
- package/dist/src/graph/update-relation.d.ts +2 -0
- package/dist/src/graph/update-relation.d.ts.map +1 -1
- package/dist/src/graph/update-relation.js +2 -0
- package/dist/src/graph/update-relation.js.map +1 -1
- package/dist/src/ipfs-core.d.ts +42 -0
- package/dist/src/ipfs-core.d.ts.map +1 -0
- package/dist/src/ipfs-core.js +165 -0
- package/dist/src/ipfs-core.js.map +1 -0
- package/dist/src/ipfs-core.test.d.ts +2 -0
- package/dist/src/ipfs-core.test.d.ts.map +1 -0
- package/dist/src/ipfs-core.test.js +56 -0
- package/dist/src/ipfs-core.test.js.map +1 -0
- package/dist/src/ipfs.d.ts +7 -52
- package/dist/src/ipfs.d.ts.map +1 -1
- package/dist/src/ipfs.js +27 -170
- package/dist/src/ipfs.js.map +1 -1
- package/dist/src/legacy-api-surface.e2e.test.d.ts +2 -0
- package/dist/src/legacy-api-surface.e2e.test.d.ts.map +1 -0
- package/dist/src/legacy-api-surface.e2e.test.js +860 -0
- package/dist/src/legacy-api-surface.e2e.test.js.map +1 -0
- package/dist/src/networks.d.ts +46 -0
- package/dist/src/networks.d.ts.map +1 -0
- package/dist/src/networks.js +90 -0
- package/dist/src/networks.js.map +1 -0
- package/dist/src/ops/comments.d.ts +80 -0
- package/dist/src/ops/comments.d.ts.map +1 -0
- package/dist/src/ops/comments.js +142 -0
- package/dist/src/ops/comments.js.map +1 -0
- package/dist/src/ops/entities.d.ts +50 -0
- package/dist/src/ops/entities.d.ts.map +1 -0
- package/dist/src/ops/entities.js +51 -0
- package/dist/src/ops/entities.js.map +1 -0
- package/dist/src/ops/index.d.ts +7 -0
- package/dist/src/ops/index.d.ts.map +1 -0
- package/dist/src/ops/index.js +7 -0
- package/dist/src/ops/index.js.map +1 -0
- package/dist/src/ops/index.test.d.ts +2 -0
- package/dist/src/ops/index.test.d.ts.map +1 -0
- package/dist/src/ops/index.test.js +115 -0
- package/dist/src/ops/index.test.js.map +1 -0
- package/dist/src/ops/properties.d.ts +20 -0
- package/dist/src/ops/properties.d.ts.map +1 -0
- package/dist/src/ops/properties.js +20 -0
- package/dist/src/ops/properties.js.map +1 -0
- package/dist/src/ops/proposal-reviews.d.ts +43 -0
- package/dist/src/ops/proposal-reviews.d.ts.map +1 -0
- package/dist/src/ops/proposal-reviews.js +103 -0
- package/dist/src/ops/proposal-reviews.js.map +1 -0
- package/dist/src/ops/relations.d.ts +57 -0
- package/dist/src/ops/relations.d.ts.map +1 -0
- package/dist/src/ops/relations.js +59 -0
- package/dist/src/ops/relations.js.map +1 -0
- package/dist/src/ops/types.d.ts +20 -0
- package/dist/src/ops/types.d.ts.map +1 -0
- package/dist/src/ops/types.js +20 -0
- package/dist/src/ops/types.js.map +1 -0
- package/dist/src/personal-space/constants.d.ts +1 -0
- package/dist/src/personal-space/constants.d.ts.map +1 -1
- package/dist/src/personal-space/constants.js +1 -0
- package/dist/src/personal-space/constants.js.map +1 -1
- package/dist/src/personal-space/create-space.d.ts +3 -20
- package/dist/src/personal-space/create-space.d.ts.map +1 -1
- package/dist/src/personal-space/create-space.js +5 -21
- package/dist/src/personal-space/create-space.js.map +1 -1
- package/dist/src/personal-space/has-space.d.ts +9 -2
- package/dist/src/personal-space/has-space.d.ts.map +1 -1
- package/dist/src/personal-space/has-space.js +9 -13
- package/dist/src/personal-space/has-space.js.map +1 -1
- package/dist/src/personal-space/has-space.test.d.ts +2 -0
- package/dist/src/personal-space/has-space.test.d.ts.map +1 -0
- package/dist/src/personal-space/has-space.test.js +30 -0
- package/dist/src/personal-space/has-space.test.js.map +1 -0
- package/dist/src/personal-space/publish-edit.d.ts +1 -22
- package/dist/src/personal-space/publish-edit.d.ts.map +1 -1
- package/dist/src/personal-space/publish-edit.js +10 -64
- package/dist/src/personal-space/publish-edit.js.map +1 -1
- package/dist/src/personal-space/types.d.ts +4 -1
- package/dist/src/personal-space/types.d.ts.map +1 -1
- package/dist/src/smart-wallet.d.ts +2 -4
- package/dist/src/smart-wallet.d.ts.map +1 -1
- package/dist/src/smart-wallet.js +6 -9
- package/dist/src/smart-wallet.js.map +1 -1
- package/dist/src/types.d.ts +25 -0
- package/dist/src/types.d.ts.map +1 -1
- package/dist/src/types.js.map +1 -1
- package/package.json +16 -2
- package/dist/proto.d.ts +0 -5
- package/dist/proto.d.ts.map +0 -1
- package/dist/proto.js +0 -5
- package/dist/proto.js.map +0 -1
- package/dist/src/graph/create-space.d.ts +0 -37
- package/dist/src/graph/create-space.d.ts.map +0 -1
- package/dist/src/graph/create-space.js +0 -67
- package/dist/src/graph/create-space.js.map +0 -1
- package/dist/src/proto/index.d.ts +0 -7
- package/dist/src/proto/index.d.ts.map +0 -1
- package/dist/src/proto/index.js +0 -7
- package/dist/src/proto/index.js.map +0 -1
|
@@ -0,0 +1,585 @@
|
|
|
1
|
+
import { v4 as uuidv4 } from 'uuid';
|
|
2
|
+
import { createPublicClient, encodeAbiParameters, encodeFunctionData, http, toHex } from 'viem';
|
|
3
|
+
import { DaoSpaceAbi, SpaceRegistryAbi } from '../abis/index.js';
|
|
4
|
+
import { SPACE_TYPE } from '../core/ids/system.js';
|
|
5
|
+
import { bytes16ToBytes32LeftAligned, EDITS_PUBLISHED_ACTION, EMPTY_SIGNATURE, EMPTY_TOPIC, ensure0xPrefix, isBytes16Hex, MEMBERSHIP_REQUESTED_ACTION, PROPOSAL_CREATED_ACTION, PROPOSAL_EXECUTED_ACTION, PROPOSAL_UPDATED_ACTION, PROPOSAL_VOTED_ACTION, VOTE_OPTION_VALUES, } from '../dao-space/constants.js';
|
|
6
|
+
import { getCreateDaoSpaceCalldata, toContractVotingSettings, validateIpfsUri, validateVotingSettingsInput, } from '../encodings/get-create-dao-space-calldata.js';
|
|
7
|
+
import * as IdUtils from '../id-utils.js';
|
|
8
|
+
import { assertValid } from '../id-utils.js';
|
|
9
|
+
import { requireGeoContract } from '../networks.js';
|
|
10
|
+
import * as Ops from '../ops/index.js';
|
|
11
|
+
const VALIDATION_CID = 'ipfs://QmP6aJhM3SgoRSPUccBQK9VMHNqqezixG1Qvjy2xPWvPh5';
|
|
12
|
+
function bytes16Id(value, name) {
|
|
13
|
+
const normalized = ensure0xPrefix(value);
|
|
14
|
+
if (!isBytes16Hex(normalized)) {
|
|
15
|
+
throw new Error(`${name} must be bytes16 hex (32 hex chars). Received: ${value}`);
|
|
16
|
+
}
|
|
17
|
+
return normalized;
|
|
18
|
+
}
|
|
19
|
+
function createRoleProposal(context, params, action) {
|
|
20
|
+
return createProposal(context, {
|
|
21
|
+
fromSpaceId: params.authorSpaceId,
|
|
22
|
+
daoSpaceId: params.spaceId,
|
|
23
|
+
proposalId: params.proposalId,
|
|
24
|
+
votingMode: params.votingMode ?? 'SLOW',
|
|
25
|
+
actions: [action],
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
function requireDaoSpaceAddress(daoSpaceAddress) {
|
|
29
|
+
if (!daoSpaceAddress) {
|
|
30
|
+
throw new Error('daoSpaceAddress is required for DAO role proposal actions');
|
|
31
|
+
}
|
|
32
|
+
return daoSpaceAddress;
|
|
33
|
+
}
|
|
34
|
+
function validateProposalVersion(versionId, fallback = 1) {
|
|
35
|
+
const version = versionId ?? fallback;
|
|
36
|
+
if (!Number.isInteger(version) || version < 1 || version > 255) {
|
|
37
|
+
throw new Error('versionId must be an integer between 1 and 255');
|
|
38
|
+
}
|
|
39
|
+
return version;
|
|
40
|
+
}
|
|
41
|
+
async function resolveProposalVersion(context, params) {
|
|
42
|
+
if (!params.updateProposal) {
|
|
43
|
+
if (params.versionId !== undefined) {
|
|
44
|
+
throw new Error('versionId can only be provided when updateProposal is true');
|
|
45
|
+
}
|
|
46
|
+
return 1;
|
|
47
|
+
}
|
|
48
|
+
const requestedVersion = params.versionId === undefined ? undefined : validateProposalVersion(params.versionId);
|
|
49
|
+
const rpcUrl = context.network.chain?.rpcUrl;
|
|
50
|
+
if (!rpcUrl) {
|
|
51
|
+
if (requestedVersion !== undefined) {
|
|
52
|
+
return requestedVersion;
|
|
53
|
+
}
|
|
54
|
+
throw new Error('versionId is required when updateProposal is true and the network has no RPC URL');
|
|
55
|
+
}
|
|
56
|
+
const publicClient = createPublicClient({
|
|
57
|
+
transport: http(rpcUrl),
|
|
58
|
+
});
|
|
59
|
+
const latestVersion = await publicClient.readContract({
|
|
60
|
+
address: params.daoSpaceAddress,
|
|
61
|
+
abi: DaoSpaceAbi,
|
|
62
|
+
functionName: 'latestProposalVersion',
|
|
63
|
+
args: [params.proposalId],
|
|
64
|
+
});
|
|
65
|
+
const nextVersion = validateProposalVersion(Number(latestVersion) + 1);
|
|
66
|
+
if (requestedVersion !== undefined && requestedVersion !== nextVersion) {
|
|
67
|
+
throw new Error(`versionId ${requestedVersion} does not match next on-chain proposal version ${nextVersion}`);
|
|
68
|
+
}
|
|
69
|
+
return nextVersion;
|
|
70
|
+
}
|
|
71
|
+
function encodeCreateProposal(params) {
|
|
72
|
+
const fromSpaceId = bytes16Id(params.fromSpaceId, 'fromSpaceId');
|
|
73
|
+
const daoSpaceId = bytes16Id(params.daoSpaceId, 'daoSpaceId');
|
|
74
|
+
const proposalId = params.proposalId
|
|
75
|
+
? bytes16Id(params.proposalId, 'proposalId')
|
|
76
|
+
: `0x${uuidv4().replaceAll('-', '')}`;
|
|
77
|
+
const votingMode = params.votingMode ?? 'FAST';
|
|
78
|
+
if (votingMode !== 'FAST' && votingMode !== 'SLOW') {
|
|
79
|
+
throw new Error('votingMode must be "FAST" or "SLOW"');
|
|
80
|
+
}
|
|
81
|
+
const data = encodeAbiParameters([
|
|
82
|
+
{ type: 'bytes16', name: 'proposalId' },
|
|
83
|
+
{ type: 'uint8', name: 'votingMode' },
|
|
84
|
+
{
|
|
85
|
+
type: 'tuple[]',
|
|
86
|
+
name: 'actions',
|
|
87
|
+
components: [
|
|
88
|
+
{ type: 'address', name: 'to' },
|
|
89
|
+
{ type: 'uint256', name: 'value' },
|
|
90
|
+
{ type: 'bytes', name: 'data' },
|
|
91
|
+
],
|
|
92
|
+
},
|
|
93
|
+
], [proposalId, votingMode === 'FAST' ? 1 : 0, params.actions]);
|
|
94
|
+
const calldata = encodeFunctionData({
|
|
95
|
+
abi: SpaceRegistryAbi,
|
|
96
|
+
functionName: 'enter',
|
|
97
|
+
args: [
|
|
98
|
+
fromSpaceId,
|
|
99
|
+
daoSpaceId,
|
|
100
|
+
params.updateProposal ? PROPOSAL_UPDATED_ACTION : PROPOSAL_CREATED_ACTION,
|
|
101
|
+
bytes16ToBytes32LeftAligned(proposalId),
|
|
102
|
+
data,
|
|
103
|
+
EMPTY_SIGNATURE,
|
|
104
|
+
],
|
|
105
|
+
});
|
|
106
|
+
return {
|
|
107
|
+
to: params.spaceRegistryAddress,
|
|
108
|
+
calldata,
|
|
109
|
+
proposalId,
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
function encodePublishEditProposalAction(daoSpaceAddress, cid) {
|
|
113
|
+
const ipfsError = validateIpfsUri(cid);
|
|
114
|
+
if (ipfsError) {
|
|
115
|
+
throw new Error(ipfsError);
|
|
116
|
+
}
|
|
117
|
+
return {
|
|
118
|
+
to: daoSpaceAddress,
|
|
119
|
+
value: 0n,
|
|
120
|
+
data: encodeFunctionData({
|
|
121
|
+
abi: DaoSpaceAbi,
|
|
122
|
+
functionName: 'ping',
|
|
123
|
+
args: [
|
|
124
|
+
EDITS_PUBLISHED_ACTION,
|
|
125
|
+
EMPTY_TOPIC,
|
|
126
|
+
encodeAbiParameters([
|
|
127
|
+
{ type: 'bytes', name: 'editsContentUri' },
|
|
128
|
+
{ type: 'bytes', name: 'editsMetadata' },
|
|
129
|
+
], [toHex(cid), '0x']),
|
|
130
|
+
],
|
|
131
|
+
}),
|
|
132
|
+
};
|
|
133
|
+
}
|
|
134
|
+
function encodeDaoRoleAction(daoSpaceAddress, functionName, spaceId) {
|
|
135
|
+
return {
|
|
136
|
+
to: daoSpaceAddress,
|
|
137
|
+
value: 0n,
|
|
138
|
+
data: encodeFunctionData({
|
|
139
|
+
abi: DaoSpaceAbi,
|
|
140
|
+
functionName,
|
|
141
|
+
args: [bytes16Id(spaceId, 'spaceId')],
|
|
142
|
+
}),
|
|
143
|
+
};
|
|
144
|
+
}
|
|
145
|
+
function encodeUpdateVotingSettingsAction(daoSpaceAddress, votingSettings) {
|
|
146
|
+
const validationError = validateVotingSettingsInput(votingSettings);
|
|
147
|
+
if (validationError) {
|
|
148
|
+
throw new Error(validationError);
|
|
149
|
+
}
|
|
150
|
+
const contractVotingSettings = toContractVotingSettings(votingSettings);
|
|
151
|
+
return {
|
|
152
|
+
to: daoSpaceAddress,
|
|
153
|
+
value: 0n,
|
|
154
|
+
data: encodeFunctionData({
|
|
155
|
+
abi: DaoSpaceAbi,
|
|
156
|
+
functionName: 'updateVotingSettings',
|
|
157
|
+
args: [
|
|
158
|
+
{
|
|
159
|
+
partialPercentageSupportThreshold: contractVotingSettings.partialPercentageSupportThreshold,
|
|
160
|
+
universalPercentageSupportThreshold: contractVotingSettings.universalPercentageSupportThreshold,
|
|
161
|
+
flatSupportThreshold: contractVotingSettings.flatSupportThreshold,
|
|
162
|
+
quorum: contractVotingSettings.quorum,
|
|
163
|
+
duration: contractVotingSettings.duration,
|
|
164
|
+
disableFastPathAccessForNewMembers: contractVotingSettings.disableFastPathAccessForNewMembers,
|
|
165
|
+
executionGracePeriod: contractVotingSettings.executionGracePeriod,
|
|
166
|
+
},
|
|
167
|
+
],
|
|
168
|
+
}),
|
|
169
|
+
};
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* Publishes the initial DAO edit and returns calldata for creating a DAO space.
|
|
173
|
+
*
|
|
174
|
+
* The helper first validates DAO voting settings and required contract
|
|
175
|
+
* addresses, then creates the space entity ops, publishes the initial edit, and
|
|
176
|
+
* encodes `createDAOSpaceProxy` calldata using the resulting CID. Unless
|
|
177
|
+
* `initialTopicId` is provided, the DAO topic is set to the generated space
|
|
178
|
+
* entity ID.
|
|
179
|
+
*
|
|
180
|
+
* @example
|
|
181
|
+
* ```ts
|
|
182
|
+
* const tx = await geo.daoSpaces.create({
|
|
183
|
+
* name: 'Research DAO',
|
|
184
|
+
* author: authorSpaceId,
|
|
185
|
+
* initialEditorSpaceIds: [authorSpaceId],
|
|
186
|
+
* votingSettings: {
|
|
187
|
+
* partialPercentageSupportThreshold: 50,
|
|
188
|
+
* universalPercentageSupportThreshold: 90,
|
|
189
|
+
* flatSupportThreshold: 1,
|
|
190
|
+
* quorum: 1,
|
|
191
|
+
* durationInDays: 2,
|
|
192
|
+
* disableFastPathAccessForNewMembers: true,
|
|
193
|
+
* executionGracePeriodInDays: 14,
|
|
194
|
+
* },
|
|
195
|
+
* });
|
|
196
|
+
*
|
|
197
|
+
* await walletClient.sendTransaction({
|
|
198
|
+
* to: tx.to,
|
|
199
|
+
* data: tx.calldata,
|
|
200
|
+
* });
|
|
201
|
+
* ```
|
|
202
|
+
*
|
|
203
|
+
* @param context Client context containing network, contract, API, and fetch configuration.
|
|
204
|
+
* @param params DAO name, author, voting settings, initial editors/members, and optional extra ops.
|
|
205
|
+
* @returns DAO factory address, calldata, generated space entity ID, and initial edit CID.
|
|
206
|
+
* @throws When DAO settings are invalid, required contracts are missing, IDs are invalid, or edit publishing fails.
|
|
207
|
+
*/
|
|
208
|
+
export async function create(context, params) {
|
|
209
|
+
const daoSpaceFactoryAddress = requireGeoContract(context.network, 'DAO_SPACE_FACTORY_ADDRESS');
|
|
210
|
+
const spaceEntityId = IdUtils.generate();
|
|
211
|
+
const initialTopicId = params.initialTopicId ?? spaceEntityId;
|
|
212
|
+
getCreateDaoSpaceCalldata({
|
|
213
|
+
votingSettings: params.votingSettings,
|
|
214
|
+
initialEditorSpaceIds: params.initialEditorSpaceIds,
|
|
215
|
+
initialMemberSpaceIds: params.initialMemberSpaceIds ?? [],
|
|
216
|
+
initialEditsContentUri: 'ipfs://QmP6aJhM3SgoRSPUccBQK9VMHNqqezixG1Qvjy2xPWvPh5',
|
|
217
|
+
initialTopicId,
|
|
218
|
+
});
|
|
219
|
+
const ops = [];
|
|
220
|
+
const { ops: createSpaceEntityOps } = Ops.entities.create({
|
|
221
|
+
id: spaceEntityId,
|
|
222
|
+
name: params.name,
|
|
223
|
+
types: [SPACE_TYPE],
|
|
224
|
+
});
|
|
225
|
+
ops.push(...createSpaceEntityOps);
|
|
226
|
+
ops.push(...(params.ops ?? []));
|
|
227
|
+
const { publish } = await import('./edits.js');
|
|
228
|
+
const { cid } = await publish(context, {
|
|
229
|
+
name: `Create DAO Space: ${params.name}`,
|
|
230
|
+
ops,
|
|
231
|
+
author: params.author,
|
|
232
|
+
});
|
|
233
|
+
const calldata = getCreateDaoSpaceCalldata({
|
|
234
|
+
votingSettings: params.votingSettings,
|
|
235
|
+
initialEditorSpaceIds: params.initialEditorSpaceIds,
|
|
236
|
+
initialMemberSpaceIds: params.initialMemberSpaceIds ?? [],
|
|
237
|
+
initialEditsContentUri: cid,
|
|
238
|
+
initialTopicId,
|
|
239
|
+
});
|
|
240
|
+
return {
|
|
241
|
+
to: daoSpaceFactoryAddress,
|
|
242
|
+
calldata,
|
|
243
|
+
spaceEntityId,
|
|
244
|
+
cid,
|
|
245
|
+
};
|
|
246
|
+
}
|
|
247
|
+
/**
|
|
248
|
+
* Builds calldata for creating or updating a DAO proposal from prebuilt proposal actions.
|
|
249
|
+
*
|
|
250
|
+
* This uses the configured `SPACE_REGISTRY_ADDRESS` and encodes a
|
|
251
|
+
* `GOVERNANCE.PROPOSAL_CREATED` or `GOVERNANCE.PROPOSAL_UPDATED`
|
|
252
|
+
* `SpaceRegistry.enter(...)` call. Prefer the high-level
|
|
253
|
+
* `geo.daoSpaces.propose*` helpers for public client code.
|
|
254
|
+
*
|
|
255
|
+
* @example
|
|
256
|
+
* ```ts
|
|
257
|
+
* const tx = geo.daoSpaces.proposeAddMember({
|
|
258
|
+
* authorSpaceId,
|
|
259
|
+
* spaceId: daoSpaceId,
|
|
260
|
+
* daoSpaceAddress,
|
|
261
|
+
* newMemberSpaceId,
|
|
262
|
+
* });
|
|
263
|
+
* ```
|
|
264
|
+
*
|
|
265
|
+
* @param context Client context containing the target network configuration.
|
|
266
|
+
* @param params Caller space, DAO space, voting mode, optional proposal ID, and actions.
|
|
267
|
+
* @returns Target registry address, calldata, and proposal ID.
|
|
268
|
+
* @throws When IDs are invalid or the configured network is missing `SPACE_REGISTRY_ADDRESS`.
|
|
269
|
+
* @internal
|
|
270
|
+
*/
|
|
271
|
+
export function createProposal(context, params) {
|
|
272
|
+
return encodeCreateProposal({
|
|
273
|
+
...params,
|
|
274
|
+
spaceRegistryAddress: requireGeoContract(context.network, 'SPACE_REGISTRY_ADDRESS'),
|
|
275
|
+
});
|
|
276
|
+
}
|
|
277
|
+
/**
|
|
278
|
+
* Publishes an edit and wraps it in a DAO-space proposal.
|
|
279
|
+
*
|
|
280
|
+
* This helper validates the proposal shape before upload, publishes the edit
|
|
281
|
+
* through the configured API, creates a DAO `ping(...)` action with the
|
|
282
|
+
* resulting CID, and returns calldata for proposal creation.
|
|
283
|
+
*
|
|
284
|
+
* @example
|
|
285
|
+
* ```ts
|
|
286
|
+
* const proposal = await geo.daoSpaces.proposeEdit({
|
|
287
|
+
* name: 'Update entity',
|
|
288
|
+
* ops,
|
|
289
|
+
* author: authorSpaceId,
|
|
290
|
+
* daoSpaceAddress,
|
|
291
|
+
* callerSpaceId: authorSpaceId,
|
|
292
|
+
* daoSpaceId,
|
|
293
|
+
* });
|
|
294
|
+
* ```
|
|
295
|
+
*
|
|
296
|
+
* @param context Client context containing network, contract, API, and fetch configuration.
|
|
297
|
+
* @param params Edit publication params plus DAO proposal target details.
|
|
298
|
+
* @returns Edit ID, CID, target registry address, calldata, and proposal ID.
|
|
299
|
+
* @throws When IDs are invalid, required contracts are missing, or edit publishing fails.
|
|
300
|
+
*/
|
|
301
|
+
export async function proposeEdit(context, params) {
|
|
302
|
+
assertValid(String(params.author), '`author` in `proposeEdit`');
|
|
303
|
+
if (params.updateProposal && !params.proposalId) {
|
|
304
|
+
throw new Error('proposalId is required when updateProposal is true');
|
|
305
|
+
}
|
|
306
|
+
const spaceRegistryAddress = requireGeoContract(context.network, 'SPACE_REGISTRY_ADDRESS');
|
|
307
|
+
const validated = encodeCreateProposal({
|
|
308
|
+
fromSpaceId: params.callerSpaceId,
|
|
309
|
+
daoSpaceId: params.daoSpaceId,
|
|
310
|
+
proposalId: params.proposalId,
|
|
311
|
+
votingMode: params.votingMode ?? 'FAST',
|
|
312
|
+
updateProposal: params.updateProposal,
|
|
313
|
+
actions: [encodePublishEditProposalAction(params.daoSpaceAddress, VALIDATION_CID)],
|
|
314
|
+
spaceRegistryAddress,
|
|
315
|
+
});
|
|
316
|
+
const versionId = await resolveProposalVersion(context, {
|
|
317
|
+
daoSpaceAddress: params.daoSpaceAddress,
|
|
318
|
+
proposalId: validated.proposalId,
|
|
319
|
+
updateProposal: params.updateProposal,
|
|
320
|
+
versionId: params.versionId,
|
|
321
|
+
});
|
|
322
|
+
const { publish } = await import('./edits.js');
|
|
323
|
+
const { cid, editId } = await publish(context, {
|
|
324
|
+
name: params.name,
|
|
325
|
+
ops: params.ops,
|
|
326
|
+
author: params.author,
|
|
327
|
+
});
|
|
328
|
+
const result = encodeCreateProposal({
|
|
329
|
+
fromSpaceId: params.callerSpaceId,
|
|
330
|
+
daoSpaceId: params.daoSpaceId,
|
|
331
|
+
proposalId: validated.proposalId,
|
|
332
|
+
votingMode: params.votingMode ?? 'FAST',
|
|
333
|
+
updateProposal: params.updateProposal,
|
|
334
|
+
actions: [encodePublishEditProposalAction(params.daoSpaceAddress, cid)],
|
|
335
|
+
spaceRegistryAddress,
|
|
336
|
+
});
|
|
337
|
+
return {
|
|
338
|
+
editId,
|
|
339
|
+
cid,
|
|
340
|
+
versionId,
|
|
341
|
+
...result,
|
|
342
|
+
};
|
|
343
|
+
}
|
|
344
|
+
/**
|
|
345
|
+
* Builds calldata for a DAO proposal that adds a member space.
|
|
346
|
+
*
|
|
347
|
+
* `daoSpaceAddress` is required because the proposal action calls the DAO
|
|
348
|
+
* space contract directly.
|
|
349
|
+
*
|
|
350
|
+
* @example
|
|
351
|
+
* ```ts
|
|
352
|
+
* const tx = geo.daoSpaces.proposeAddMember({
|
|
353
|
+
* authorSpaceId,
|
|
354
|
+
* spaceId: daoSpaceId,
|
|
355
|
+
* daoSpaceAddress,
|
|
356
|
+
* newMemberSpaceId: memberSpaceId,
|
|
357
|
+
* });
|
|
358
|
+
* ```
|
|
359
|
+
*/
|
|
360
|
+
export function proposeAddMember(context, params) {
|
|
361
|
+
return createRoleProposal(context, params, actions.addMember(requireDaoSpaceAddress(params.daoSpaceAddress), params.newMemberSpaceId));
|
|
362
|
+
}
|
|
363
|
+
/**
|
|
364
|
+
* Builds calldata for a DAO proposal that removes a member space.
|
|
365
|
+
*
|
|
366
|
+
* @example
|
|
367
|
+
* ```ts
|
|
368
|
+
* const tx = geo.daoSpaces.proposeRemoveMember({
|
|
369
|
+
* authorSpaceId,
|
|
370
|
+
* spaceId: daoSpaceId,
|
|
371
|
+
* daoSpaceAddress,
|
|
372
|
+
* memberToRemoveSpaceId,
|
|
373
|
+
* });
|
|
374
|
+
* ```
|
|
375
|
+
*/
|
|
376
|
+
export function proposeRemoveMember(context, params) {
|
|
377
|
+
return createRoleProposal(context, params, actions.removeMember(requireDaoSpaceAddress(params.daoSpaceAddress), params.memberToRemoveSpaceId));
|
|
378
|
+
}
|
|
379
|
+
/**
|
|
380
|
+
* Builds calldata for a DAO proposal that adds an editor space.
|
|
381
|
+
*
|
|
382
|
+
* Editor changes only support SLOW voting.
|
|
383
|
+
*
|
|
384
|
+
* @example
|
|
385
|
+
* ```ts
|
|
386
|
+
* const tx = geo.daoSpaces.proposeAddEditor({
|
|
387
|
+
* authorSpaceId,
|
|
388
|
+
* spaceId: daoSpaceId,
|
|
389
|
+
* daoSpaceAddress,
|
|
390
|
+
* newEditorSpaceId: editorSpaceId,
|
|
391
|
+
* });
|
|
392
|
+
* ```
|
|
393
|
+
*/
|
|
394
|
+
export function proposeAddEditor(context, params) {
|
|
395
|
+
const votingMode = params.votingMode ?? 'SLOW';
|
|
396
|
+
if (votingMode !== 'SLOW') {
|
|
397
|
+
throw new Error('proposeAddEditor only supports SLOW voting mode');
|
|
398
|
+
}
|
|
399
|
+
return createRoleProposal(context, params, actions.addEditor(requireDaoSpaceAddress(params.daoSpaceAddress), params.newEditorSpaceId));
|
|
400
|
+
}
|
|
401
|
+
/**
|
|
402
|
+
* Builds calldata for a DAO proposal that removes an editor space.
|
|
403
|
+
*
|
|
404
|
+
* Editor changes only support SLOW voting.
|
|
405
|
+
*
|
|
406
|
+
* @example
|
|
407
|
+
* ```ts
|
|
408
|
+
* const tx = geo.daoSpaces.proposeRemoveEditor({
|
|
409
|
+
* authorSpaceId,
|
|
410
|
+
* spaceId: daoSpaceId,
|
|
411
|
+
* daoSpaceAddress,
|
|
412
|
+
* editorToRemoveSpaceId,
|
|
413
|
+
* });
|
|
414
|
+
* ```
|
|
415
|
+
*/
|
|
416
|
+
export function proposeRemoveEditor(context, params) {
|
|
417
|
+
const votingMode = params.votingMode ?? 'SLOW';
|
|
418
|
+
if (votingMode !== 'SLOW') {
|
|
419
|
+
throw new Error('proposeRemoveEditor only supports SLOW voting mode');
|
|
420
|
+
}
|
|
421
|
+
return createRoleProposal(context, params, actions.removeEditor(requireDaoSpaceAddress(params.daoSpaceAddress), params.editorToRemoveSpaceId));
|
|
422
|
+
}
|
|
423
|
+
/**
|
|
424
|
+
* Builds calldata for a DAO proposal that updates voting settings.
|
|
425
|
+
*
|
|
426
|
+
* Updating voting settings only supports SLOW voting.
|
|
427
|
+
* The client validates deterministic numeric bounds before encoding; the DAO
|
|
428
|
+
* contract still enforces flat threshold and quorum against the current editor
|
|
429
|
+
* count when the proposal executes.
|
|
430
|
+
*
|
|
431
|
+
* @example
|
|
432
|
+
* ```ts
|
|
433
|
+
* const tx = geo.daoSpaces.proposeUpdateVotingSettings({
|
|
434
|
+
* authorSpaceId,
|
|
435
|
+
* spaceId: daoSpaceId,
|
|
436
|
+
* daoSpaceAddress,
|
|
437
|
+
* votingSettings: {
|
|
438
|
+
* partialPercentageSupportThreshold: 50,
|
|
439
|
+
* universalPercentageSupportThreshold: 90,
|
|
440
|
+
* flatSupportThreshold: 1,
|
|
441
|
+
* quorum: 1,
|
|
442
|
+
* durationInDays: 2,
|
|
443
|
+
* disableFastPathAccessForNewMembers: true,
|
|
444
|
+
* executionGracePeriodInDays: 14,
|
|
445
|
+
* },
|
|
446
|
+
* });
|
|
447
|
+
* ```
|
|
448
|
+
*/
|
|
449
|
+
export function proposeUpdateVotingSettings(context, params) {
|
|
450
|
+
const votingMode = params.votingMode ?? 'SLOW';
|
|
451
|
+
if (votingMode !== 'SLOW') {
|
|
452
|
+
throw new Error('proposeUpdateVotingSettings only supports SLOW voting mode');
|
|
453
|
+
}
|
|
454
|
+
return createRoleProposal(context, params, actions.updateVotingSettings(requireDaoSpaceAddress(params.daoSpaceAddress), params.votingSettings));
|
|
455
|
+
}
|
|
456
|
+
/**
|
|
457
|
+
* Builds calldata for requesting membership in a DAO space.
|
|
458
|
+
*
|
|
459
|
+
* Unlike governance proposals, this emits `GOVERNANCE.MEMBERSHIP_REQUESTED`
|
|
460
|
+
* and can be submitted by a non-member space.
|
|
461
|
+
*
|
|
462
|
+
* @example
|
|
463
|
+
* ```ts
|
|
464
|
+
* const tx = geo.daoSpaces.proposeRequestMembership({
|
|
465
|
+
* authorSpaceId: requesterSpaceId,
|
|
466
|
+
* spaceId: daoSpaceId,
|
|
467
|
+
* });
|
|
468
|
+
* ```
|
|
469
|
+
*/
|
|
470
|
+
export function proposeRequestMembership(context, params) {
|
|
471
|
+
const authorSpaceId = bytes16Id(params.authorSpaceId, 'authorSpaceId');
|
|
472
|
+
const spaceId = bytes16Id(params.spaceId, 'spaceId');
|
|
473
|
+
const proposalId = params.proposalId
|
|
474
|
+
? bytes16Id(params.proposalId, 'proposalId')
|
|
475
|
+
: `0x${uuidv4().replaceAll('-', '')}`;
|
|
476
|
+
const data = encodeAbiParameters([
|
|
477
|
+
{ type: 'bytes16', name: 'proposalId' },
|
|
478
|
+
{ type: 'bytes16', name: 'newMemberSpaceId' },
|
|
479
|
+
], [proposalId, authorSpaceId]);
|
|
480
|
+
const calldata = encodeFunctionData({
|
|
481
|
+
abi: SpaceRegistryAbi,
|
|
482
|
+
functionName: 'enter',
|
|
483
|
+
args: [authorSpaceId, spaceId, MEMBERSHIP_REQUESTED_ACTION, EMPTY_TOPIC, data, EMPTY_SIGNATURE],
|
|
484
|
+
});
|
|
485
|
+
return {
|
|
486
|
+
to: requireGeoContract(context.network, 'SPACE_REGISTRY_ADDRESS'),
|
|
487
|
+
calldata,
|
|
488
|
+
proposalId,
|
|
489
|
+
};
|
|
490
|
+
}
|
|
491
|
+
/**
|
|
492
|
+
* Builds calldata for voting on a DAO proposal.
|
|
493
|
+
*
|
|
494
|
+
* @example
|
|
495
|
+
* ```ts
|
|
496
|
+
* const tx = geo.daoSpaces.voteProposal({
|
|
497
|
+
* authorSpaceId,
|
|
498
|
+
* spaceId: daoSpaceId,
|
|
499
|
+
* proposalId,
|
|
500
|
+
* versionId: 1,
|
|
501
|
+
* vote: 'YES',
|
|
502
|
+
* });
|
|
503
|
+
* ```
|
|
504
|
+
*
|
|
505
|
+
* @param context Client context containing the target network configuration.
|
|
506
|
+
* @param params Author space, DAO space, proposal ID, and vote option.
|
|
507
|
+
* @returns Target registry address and calldata for `GOVERNANCE.PROPOSAL_VOTED`.
|
|
508
|
+
* @throws When IDs are invalid or the configured network is missing `SPACE_REGISTRY_ADDRESS`.
|
|
509
|
+
*/
|
|
510
|
+
export function voteProposal(context, params) {
|
|
511
|
+
const authorSpaceId = bytes16Id(params.authorSpaceId, 'authorSpaceId');
|
|
512
|
+
const spaceId = bytes16Id(params.spaceId, 'spaceId');
|
|
513
|
+
const proposalId = bytes16Id(params.proposalId, 'proposalId');
|
|
514
|
+
const versionId = validateProposalVersion(params.versionId, 1);
|
|
515
|
+
const topic = bytes16ToBytes32LeftAligned(proposalId);
|
|
516
|
+
const data = encodeAbiParameters([
|
|
517
|
+
{ type: 'bytes16', name: 'proposalId' },
|
|
518
|
+
{ type: 'uint8', name: 'versionId' },
|
|
519
|
+
{ type: 'uint8', name: 'voteOption' },
|
|
520
|
+
], [proposalId, versionId, VOTE_OPTION_VALUES[params.vote]]);
|
|
521
|
+
const calldata = encodeFunctionData({
|
|
522
|
+
abi: SpaceRegistryAbi,
|
|
523
|
+
functionName: 'enter',
|
|
524
|
+
args: [authorSpaceId, spaceId, PROPOSAL_VOTED_ACTION, topic, data, EMPTY_SIGNATURE],
|
|
525
|
+
});
|
|
526
|
+
return {
|
|
527
|
+
to: requireGeoContract(context.network, 'SPACE_REGISTRY_ADDRESS'),
|
|
528
|
+
calldata,
|
|
529
|
+
};
|
|
530
|
+
}
|
|
531
|
+
/**
|
|
532
|
+
* Builds calldata for executing a passed DAO proposal.
|
|
533
|
+
*
|
|
534
|
+
* @example
|
|
535
|
+
* ```ts
|
|
536
|
+
* const tx = geo.daoSpaces.executeProposal({
|
|
537
|
+
* authorSpaceId,
|
|
538
|
+
* spaceId: daoSpaceId,
|
|
539
|
+
* proposalId,
|
|
540
|
+
* });
|
|
541
|
+
* ```
|
|
542
|
+
*
|
|
543
|
+
* @param context Client context containing the target network configuration.
|
|
544
|
+
* @param params Author space, DAO space, and proposal ID.
|
|
545
|
+
* @returns Target registry address and calldata for `GOVERNANCE.PROPOSAL_EXECUTED`.
|
|
546
|
+
* @throws When IDs are invalid or the configured network is missing `SPACE_REGISTRY_ADDRESS`.
|
|
547
|
+
*/
|
|
548
|
+
export function executeProposal(context, params) {
|
|
549
|
+
const authorSpaceId = bytes16Id(params.authorSpaceId, 'authorSpaceId');
|
|
550
|
+
const spaceId = bytes16Id(params.spaceId, 'spaceId');
|
|
551
|
+
const proposalId = bytes16Id(params.proposalId, 'proposalId');
|
|
552
|
+
const topic = bytes16ToBytes32LeftAligned(proposalId);
|
|
553
|
+
const data = encodeAbiParameters([{ type: 'bytes16', name: 'proposalId' }], [proposalId]);
|
|
554
|
+
const calldata = encodeFunctionData({
|
|
555
|
+
abi: SpaceRegistryAbi,
|
|
556
|
+
functionName: 'enter',
|
|
557
|
+
args: [authorSpaceId, spaceId, PROPOSAL_EXECUTED_ACTION, topic, data, EMPTY_SIGNATURE],
|
|
558
|
+
});
|
|
559
|
+
return {
|
|
560
|
+
to: requireGeoContract(context.network, 'SPACE_REGISTRY_ADDRESS'),
|
|
561
|
+
calldata,
|
|
562
|
+
};
|
|
563
|
+
}
|
|
564
|
+
/**
|
|
565
|
+
* Internal helpers for constructing DAO proposal actions.
|
|
566
|
+
*
|
|
567
|
+
* These helpers only encode DAO-space action payloads for the higher-level
|
|
568
|
+
* proposal helpers in this module.
|
|
569
|
+
*
|
|
570
|
+
* @example
|
|
571
|
+
* ```ts
|
|
572
|
+
* const action = actions.addEditor(daoSpaceAddress, editorSpaceId);
|
|
573
|
+
* ```
|
|
574
|
+
*
|
|
575
|
+
* @internal
|
|
576
|
+
*/
|
|
577
|
+
export const actions = {
|
|
578
|
+
publishEdit: encodePublishEditProposalAction,
|
|
579
|
+
addEditor: (daoSpaceAddress, spaceId) => encodeDaoRoleAction(daoSpaceAddress, 'addEditor', spaceId),
|
|
580
|
+
removeEditor: (daoSpaceAddress, spaceId) => encodeDaoRoleAction(daoSpaceAddress, 'removeEditor', spaceId),
|
|
581
|
+
addMember: (daoSpaceAddress, spaceId) => encodeDaoRoleAction(daoSpaceAddress, 'addMember', spaceId),
|
|
582
|
+
removeMember: (daoSpaceAddress, spaceId) => encodeDaoRoleAction(daoSpaceAddress, 'removeMember', spaceId),
|
|
583
|
+
updateVotingSettings: encodeUpdateVotingSettingsAction,
|
|
584
|
+
};
|
|
585
|
+
//# sourceMappingURL=dao-spaces.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dao-spaces.js","sourceRoot":"","sources":["../../../src/client/dao-spaces.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dao-spaces.test.d.ts","sourceRoot":"","sources":["../../../src/client/dao-spaces.test.ts"],"names":[],"mappings":""}
|