@geoprotocol/geo-sdk 0.18.3 → 0.19.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +995 -372
- 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/abis/space-registry.d.ts +26 -0
- package/dist/src/abis/space-registry.d.ts.map +1 -1
- package/dist/src/abis/space-registry.js +33 -0
- package/dist/src/abis/space-registry.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 +1206 -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 +408 -0
- package/dist/src/client/dao-spaces.d.ts.map +1 -0
- package/dist/src/client/dao-spaces.js +626 -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 +497 -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 +229 -0
- package/dist/src/client/personal-spaces.d.ts.map +1 -0
- package/dist/src/client/personal-spaces.js +278 -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 +175 -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 +338 -0
- package/dist/src/client.d.ts.map +1 -0
- package/dist/src/client.js +494 -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 +14 -1
- 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,239 @@
|
|
|
1
|
+
import { readFileSync } from 'node:fs';
|
|
2
|
+
import { createPublicClient, decodeAbiParameters, decodeFunctionData, encodeFunctionData, hexToString, http, } from 'viem';
|
|
3
|
+
import { describe, expect, it, vi } from 'vitest';
|
|
4
|
+
import { DaoSpaceAbi, DaoSpaceFactoryAbi, SpaceRegistryAbi } from '../abis/index.js';
|
|
5
|
+
import { createGeoClient } from '../client.js';
|
|
6
|
+
import { bytes16ToBytes32LeftAligned, EDITS_PUBLISHED_ACTION, EMPTY_TOPIC, PROPOSAL_CREATED_ACTION, PROPOSAL_VOTED_ACTION, VOTE_OPTION_VALUES, } from '../dao-space/constants.js';
|
|
7
|
+
import { getCreateDaoSpaceCalldata } from '../encodings/get-create-dao-space-calldata.js';
|
|
8
|
+
import { defineGeoNetworkConfig } from '../networks.js';
|
|
9
|
+
import * as Ops from '../ops/index.js';
|
|
10
|
+
const deploymentsPath = process.env.GEO_LOCAL_GEOBROWSER_DEPLOYMENTS;
|
|
11
|
+
const localGeobrowserPath = process.env.GEO_LOCAL_GEOBROWSER_PATH;
|
|
12
|
+
const deployments = deploymentsPath
|
|
13
|
+
? JSON.parse(readFileSync(deploymentsPath, 'utf8'))
|
|
14
|
+
: undefined;
|
|
15
|
+
const localRpcUrl = deployments?.rpcUrl ?? process.env.GEO_LOCAL_GEOBROWSER_RPC_URL;
|
|
16
|
+
const describeLocal = deployments ? describe : describe.skip;
|
|
17
|
+
const describeLocalRpc = deployments && localRpcUrl ? describe : describe.skip;
|
|
18
|
+
const describeLocalSource = localGeobrowserPath ? describe : describe.skip;
|
|
19
|
+
function readDeployments() {
|
|
20
|
+
if (!deployments) {
|
|
21
|
+
throw new Error('Set GEO_LOCAL_GEOBROWSER_DEPLOYMENTS to the local-geobrowser .deployments.json path.');
|
|
22
|
+
}
|
|
23
|
+
return deployments;
|
|
24
|
+
}
|
|
25
|
+
function readLocalContractSource(relativePath) {
|
|
26
|
+
if (!localGeobrowserPath) {
|
|
27
|
+
throw new Error('Set GEO_LOCAL_GEOBROWSER_PATH to the local-geobrowser checkout path.');
|
|
28
|
+
}
|
|
29
|
+
return readFileSync(`${localGeobrowserPath}/contracts/src/${relativePath}`, 'utf8');
|
|
30
|
+
}
|
|
31
|
+
function localNetwork(deployments) {
|
|
32
|
+
return defineGeoNetworkConfig({
|
|
33
|
+
id: 'LOCAL_GEOBROWSER',
|
|
34
|
+
name: 'Local Geobrowser',
|
|
35
|
+
apiOrigin: process.env.GEO_LOCAL_GEOBROWSER_API_ORIGIN ?? 'http://localhost:3000',
|
|
36
|
+
chain: {
|
|
37
|
+
id: Number(process.env.GEO_LOCAL_GEOBROWSER_CHAIN_ID ?? 31337),
|
|
38
|
+
name: 'Anvil',
|
|
39
|
+
rpcUrl: deployments.rpcUrl ?? process.env.GEO_LOCAL_GEOBROWSER_RPC_URL,
|
|
40
|
+
},
|
|
41
|
+
contracts: {
|
|
42
|
+
SPACE_REGISTRY_ADDRESS: deployments.spaceRegistry,
|
|
43
|
+
DAO_SPACE_FACTORY_ADDRESS: deployments.daoSpaceFactory,
|
|
44
|
+
},
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
describeLocal('local-geobrowser contracts v2 calldata', () => {
|
|
48
|
+
const editorSpaceId = '0x11111111111111111111111111111111';
|
|
49
|
+
const daoSpaceId = '0x22222222222222222222222222222222';
|
|
50
|
+
const proposalId = '0x33333333333333333333333333333333';
|
|
51
|
+
const cid = 'ipfs://bafkreigwfjixq5cm3s4youhshorkpqh3ykpviyv76c2ei6gaalujtlqz5i';
|
|
52
|
+
const authorId = '5cade5757ecd41ae83481b22ffc2f94e';
|
|
53
|
+
const votingSettings = {
|
|
54
|
+
partialPercentageSupportThreshold: 50,
|
|
55
|
+
universalPercentageSupportThreshold: 90,
|
|
56
|
+
flatSupportThreshold: 1,
|
|
57
|
+
quorum: 1,
|
|
58
|
+
durationInDays: 2,
|
|
59
|
+
disableFastPathAccessForNewMembers: true,
|
|
60
|
+
executionGracePeriodInDays: 14,
|
|
61
|
+
};
|
|
62
|
+
it('builds a custom network from local-geobrowser deployments', () => {
|
|
63
|
+
const deployments = readDeployments();
|
|
64
|
+
const network = localNetwork(deployments);
|
|
65
|
+
expect(network.contracts?.SPACE_REGISTRY_ADDRESS).toBe(deployments.spaceRegistry);
|
|
66
|
+
expect(network.contracts?.DAO_SPACE_FACTORY_ADDRESS).toBe(deployments.daoSpaceFactory);
|
|
67
|
+
});
|
|
68
|
+
it('decodes DAO creation calldata against the v2 factory ABI', () => {
|
|
69
|
+
const calldata = getCreateDaoSpaceCalldata({
|
|
70
|
+
votingSettings,
|
|
71
|
+
initialEditorSpaceIds: [editorSpaceId],
|
|
72
|
+
initialMemberSpaceIds: [editorSpaceId],
|
|
73
|
+
initialEditsContentUri: cid,
|
|
74
|
+
initialTopicId: '9f9e7d45-5b11-4d6b-9c5d-9567eeb3a001',
|
|
75
|
+
});
|
|
76
|
+
const decoded = decodeFunctionData({
|
|
77
|
+
abi: DaoSpaceFactoryAbi,
|
|
78
|
+
data: calldata,
|
|
79
|
+
});
|
|
80
|
+
const [settings, initialEditors, initialMembers, initialEditContentUri, initialEditMetadata, initialTopicId] = decoded.args;
|
|
81
|
+
expect(decoded.functionName).toBe('createDAOSpaceProxy');
|
|
82
|
+
expect(decoded.args).toHaveLength(6);
|
|
83
|
+
expect(settings.partialPercentageSupportThreshold).toBe(5000000n);
|
|
84
|
+
expect(settings.universalPercentageSupportThreshold).toBe(9000000n);
|
|
85
|
+
expect(settings.executionGracePeriod).toBe(1209600n);
|
|
86
|
+
expect(initialEditors).toEqual([editorSpaceId]);
|
|
87
|
+
expect(initialMembers).toEqual([editorSpaceId]);
|
|
88
|
+
expect(hexToString(initialEditContentUri)).toBe(cid);
|
|
89
|
+
expect(initialEditMetadata).toBe('0x');
|
|
90
|
+
expect(initialTopicId).toBe('0x9f9e7d455b114d6b9c5d9567eeb3a001');
|
|
91
|
+
});
|
|
92
|
+
it('decodes DAO proposal and versioned vote calldata against local v2 ABIs', async () => {
|
|
93
|
+
const deployments = readDeployments();
|
|
94
|
+
const network = localNetwork(deployments);
|
|
95
|
+
const geo = createGeoClient({ network });
|
|
96
|
+
const fetch = vi.fn().mockResolvedValue(new Response(JSON.stringify({ cid })));
|
|
97
|
+
const geoWithFetch = createGeoClient({ network, fetch });
|
|
98
|
+
const updateSettings = geo.daoSpaces.proposeUpdateVotingSettings({
|
|
99
|
+
authorSpaceId: editorSpaceId,
|
|
100
|
+
spaceId: daoSpaceId,
|
|
101
|
+
daoSpaceAddress: deployments.daoSpace,
|
|
102
|
+
proposalId,
|
|
103
|
+
votingSettings,
|
|
104
|
+
});
|
|
105
|
+
const decodedProposal = decodeFunctionData({
|
|
106
|
+
abi: SpaceRegistryAbi,
|
|
107
|
+
data: updateSettings.calldata,
|
|
108
|
+
});
|
|
109
|
+
const [, , proposalAction, proposalTopic, proposalData] = decodedProposal.args;
|
|
110
|
+
const [, votingMode, actions] = decodeAbiParameters([
|
|
111
|
+
{ type: 'bytes16', name: 'proposalId' },
|
|
112
|
+
{ type: 'uint8', name: 'votingMode' },
|
|
113
|
+
{
|
|
114
|
+
type: 'tuple[]',
|
|
115
|
+
name: 'actions',
|
|
116
|
+
components: [
|
|
117
|
+
{ type: 'address', name: 'to' },
|
|
118
|
+
{ type: 'uint256', name: 'value' },
|
|
119
|
+
{ type: 'bytes', name: 'data' },
|
|
120
|
+
],
|
|
121
|
+
},
|
|
122
|
+
], proposalData);
|
|
123
|
+
const decodedAction = decodeFunctionData({
|
|
124
|
+
abi: DaoSpaceAbi,
|
|
125
|
+
data: actions[0]?.data ?? '0x',
|
|
126
|
+
});
|
|
127
|
+
expect(updateSettings.to).toBe(deployments.spaceRegistry);
|
|
128
|
+
expect(proposalAction).toBe(PROPOSAL_CREATED_ACTION);
|
|
129
|
+
expect(proposalTopic).toBe(bytes16ToBytes32LeftAligned(proposalId));
|
|
130
|
+
expect(votingMode).toBe(0);
|
|
131
|
+
expect(actions[0]?.to).toBe(deployments.daoSpace);
|
|
132
|
+
expect(decodedAction.functionName).toBe('updateVotingSettings');
|
|
133
|
+
const { ops } = Ops.entities.create({ name: 'Local v2 edit entity' });
|
|
134
|
+
const editProposal = await geoWithFetch.daoSpaces.proposeEdit({
|
|
135
|
+
name: 'Local v2 edit',
|
|
136
|
+
ops,
|
|
137
|
+
author: authorId,
|
|
138
|
+
daoSpaceAddress: deployments.daoSpace,
|
|
139
|
+
callerSpaceId: editorSpaceId,
|
|
140
|
+
daoSpaceId,
|
|
141
|
+
proposalId,
|
|
142
|
+
});
|
|
143
|
+
const decodedEditProposal = decodeFunctionData({
|
|
144
|
+
abi: SpaceRegistryAbi,
|
|
145
|
+
data: editProposal.calldata,
|
|
146
|
+
});
|
|
147
|
+
const [, , editProposalAction, , editProposalData] = decodedEditProposal.args;
|
|
148
|
+
const [, editVotingMode, editActions] = decodeAbiParameters([
|
|
149
|
+
{ type: 'bytes16', name: 'proposalId' },
|
|
150
|
+
{ type: 'uint8', name: 'votingMode' },
|
|
151
|
+
{
|
|
152
|
+
type: 'tuple[]',
|
|
153
|
+
name: 'actions',
|
|
154
|
+
components: [
|
|
155
|
+
{ type: 'address', name: 'to' },
|
|
156
|
+
{ type: 'uint256', name: 'value' },
|
|
157
|
+
{ type: 'bytes', name: 'data' },
|
|
158
|
+
],
|
|
159
|
+
},
|
|
160
|
+
], editProposalData);
|
|
161
|
+
const decodedEditAction = decodeFunctionData({
|
|
162
|
+
abi: DaoSpaceAbi,
|
|
163
|
+
data: editActions[0]?.data ?? '0x',
|
|
164
|
+
});
|
|
165
|
+
const [editContentUri, editMetadata] = decodeAbiParameters([
|
|
166
|
+
{ type: 'bytes', name: 'editsContentUri' },
|
|
167
|
+
{ type: 'bytes', name: 'editsMetadata' },
|
|
168
|
+
], decodedEditAction.args?.[2]);
|
|
169
|
+
expect(editProposalAction).toBe(PROPOSAL_CREATED_ACTION);
|
|
170
|
+
expect(editVotingMode).toBe(1);
|
|
171
|
+
expect(editActions[0]?.to).toBe(deployments.daoSpace);
|
|
172
|
+
expect(decodedEditAction.functionName).toBe('ping');
|
|
173
|
+
expect(decodedEditAction.args?.[0]).toBe(EDITS_PUBLISHED_ACTION);
|
|
174
|
+
expect(decodedEditAction.args?.[1]).toBe(EMPTY_TOPIC);
|
|
175
|
+
expect(hexToString(editContentUri)).toBe(cid);
|
|
176
|
+
expect(editMetadata).toBe('0x');
|
|
177
|
+
const vote = geo.daoSpaces.voteProposal({
|
|
178
|
+
authorSpaceId: editorSpaceId,
|
|
179
|
+
spaceId: daoSpaceId,
|
|
180
|
+
proposalId,
|
|
181
|
+
versionId: 2,
|
|
182
|
+
vote: 'YES',
|
|
183
|
+
});
|
|
184
|
+
const decodedVote = decodeFunctionData({
|
|
185
|
+
abi: SpaceRegistryAbi,
|
|
186
|
+
data: vote.calldata,
|
|
187
|
+
});
|
|
188
|
+
const [, , voteAction, voteTopic, voteData] = decodedVote.args;
|
|
189
|
+
const [decodedProposalId, versionId, voteOption] = decodeAbiParameters([
|
|
190
|
+
{ type: 'bytes16', name: 'proposalId' },
|
|
191
|
+
{ type: 'uint8', name: 'versionId' },
|
|
192
|
+
{ type: 'uint8', name: 'voteOption' },
|
|
193
|
+
], voteData);
|
|
194
|
+
expect(vote.to).toBe(deployments.spaceRegistry);
|
|
195
|
+
expect(voteAction).toBe(PROPOSAL_VOTED_ACTION);
|
|
196
|
+
expect(voteTopic).toBe(bytes16ToBytes32LeftAligned(proposalId));
|
|
197
|
+
expect(decodedProposalId).toBe(proposalId);
|
|
198
|
+
expect(versionId).toBe(2);
|
|
199
|
+
expect(voteOption).toBe(VOTE_OPTION_VALUES.YES);
|
|
200
|
+
});
|
|
201
|
+
});
|
|
202
|
+
describeLocalSource('local-geobrowser contracts v2 source compatibility', () => {
|
|
203
|
+
it('confirms edit publishing is a DAO ping fast-path action in local contracts', () => {
|
|
204
|
+
const daoSpaceSource = readLocalContractSource('contracts/DAOSpace.sol');
|
|
205
|
+
const actionsSource = readLocalContractSource('ActionsConstants.sol');
|
|
206
|
+
expect(actionsSource).toContain("EDITS_PUBLISHED = keccak256('GOVERNANCE.EDITS_PUBLISHED')");
|
|
207
|
+
expect(daoSpaceSource).toContain('$_.actionIsFastPathValid[IDAOSpace.ping.selector] = true;');
|
|
208
|
+
expect(daoSpaceSource).not.toContain('actionIsFastPathValid[IDAOSpace.publish.selector]');
|
|
209
|
+
expect(daoSpaceSource).toContain("_ping(ActionsConstants.EDITS_PUBLISHED, '', _publishEditsData)");
|
|
210
|
+
});
|
|
211
|
+
});
|
|
212
|
+
describeLocalRpc('local-geobrowser deployed contracts v2 compatibility', () => {
|
|
213
|
+
it('checks the deployed DAO fast-path selector allowlist', async () => {
|
|
214
|
+
const deployments = readDeployments();
|
|
215
|
+
if (!localRpcUrl) {
|
|
216
|
+
throw new Error('Set GEO_LOCAL_GEOBROWSER_RPC_URL or deployments.rpcUrl for local-geobrowser RPC checks.');
|
|
217
|
+
}
|
|
218
|
+
const publicClient = createPublicClient({ transport: http(localRpcUrl) });
|
|
219
|
+
const pingSelector = encodeFunctionData({
|
|
220
|
+
abi: DaoSpaceAbi,
|
|
221
|
+
functionName: 'ping',
|
|
222
|
+
args: [EDITS_PUBLISHED_ACTION, EMPTY_TOPIC, '0x'],
|
|
223
|
+
}).slice(0, 10);
|
|
224
|
+
const publishSelector = '0x6b47f61a';
|
|
225
|
+
await expect(publicClient.readContract({
|
|
226
|
+
address: deployments.daoSpace,
|
|
227
|
+
abi: DaoSpaceAbi,
|
|
228
|
+
functionName: 'actionIsFastPathValid',
|
|
229
|
+
args: [pingSelector],
|
|
230
|
+
})).resolves.toBe(true);
|
|
231
|
+
await expect(publicClient.readContract({
|
|
232
|
+
address: deployments.daoSpace,
|
|
233
|
+
abi: DaoSpaceAbi,
|
|
234
|
+
functionName: 'actionIsFastPathValid',
|
|
235
|
+
args: [publishSelector],
|
|
236
|
+
})).resolves.toBe(false);
|
|
237
|
+
});
|
|
238
|
+
});
|
|
239
|
+
//# sourceMappingURL=local-geobrowser.e2e.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"local-geobrowser.e2e.test.js","sourceRoot":"","sources":["../../../src/contracts-v2/local-geobrowser.e2e.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,14 @@
|
|
|
1
|
-
import {
|
|
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()
|
|
5
5
|
*/
|
|
6
6
|
export declare const PROPOSAL_CREATED_ACTION: `0x${string}`;
|
|
7
|
+
/**
|
|
8
|
+
* Action hash for GOVERNANCE.PROPOSAL_UPDATED
|
|
9
|
+
* Used when publishing a new version of an existing proposal.
|
|
10
|
+
*/
|
|
11
|
+
export declare const PROPOSAL_UPDATED_ACTION: `0x${string}`;
|
|
7
12
|
/**
|
|
8
13
|
* Action hash for GOVERNANCE.PROPOSAL_VOTED
|
|
9
14
|
* Used when voting on proposals via SpaceRegistry.enter()
|
|
@@ -19,6 +24,11 @@ export declare const MEMBERSHIP_REQUESTED_ACTION: `0x${string}`;
|
|
|
19
24
|
* Used when executing a passed proposal via SpaceRegistry.enter()
|
|
20
25
|
*/
|
|
21
26
|
export declare const PROPOSAL_EXECUTED_ACTION: `0x${string}`;
|
|
27
|
+
/**
|
|
28
|
+
* Action hash for GOVERNANCE.EDITS_PUBLISHED
|
|
29
|
+
* Used by DAO edit proposals through DAOSpace.ping().
|
|
30
|
+
*/
|
|
31
|
+
export declare const EDITS_PUBLISHED_ACTION: `0x${string}`;
|
|
22
32
|
/**
|
|
23
33
|
* Maps VoteOption strings to their on-chain uint8 values (IDAOSpace.VoteOption enum).
|
|
24
34
|
*/
|
|
@@ -59,8 +69,11 @@ export declare function toBytes16(hex32: `0x${string}`): `0x${string}`;
|
|
|
59
69
|
* Converts a bytes16 hex string to bytes32 (left-aligned, right-padded with zeros).
|
|
60
70
|
*/
|
|
61
71
|
export declare function bytes16ToBytes32LeftAligned(bytes16Hex: `0x${string}`): `0x${string}`;
|
|
72
|
+
export type DaoSpaceContractAddresses = {
|
|
73
|
+
SPACE_REGISTRY_ADDRESS: `0x${string}`;
|
|
74
|
+
};
|
|
62
75
|
/**
|
|
63
|
-
* Get
|
|
76
|
+
* Get contract addresses based on network.
|
|
64
77
|
*/
|
|
65
|
-
export declare function getContractAddressesBasedOnNetwork(network:
|
|
78
|
+
export declare function getContractAddressesBasedOnNetwork(network: Networkish): DaoSpaceContractAddresses;
|
|
66
79
|
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/dao-space/constants.ts"],"names":[],"mappings":"
|
|
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,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;;;GAGG;AACH,eAAO,MAAM,sBAAsB,eAAiD,CAAC;AAErF;;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,10 +1,15 @@
|
|
|
1
1
|
import { keccak256, toHex } from 'viem';
|
|
2
|
-
import {
|
|
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()
|
|
6
6
|
*/
|
|
7
7
|
export const PROPOSAL_CREATED_ACTION = keccak256(toHex('GOVERNANCE.PROPOSAL_CREATED'));
|
|
8
|
+
/**
|
|
9
|
+
* Action hash for GOVERNANCE.PROPOSAL_UPDATED
|
|
10
|
+
* Used when publishing a new version of an existing proposal.
|
|
11
|
+
*/
|
|
12
|
+
export const PROPOSAL_UPDATED_ACTION = keccak256(toHex('GOVERNANCE.PROPOSAL_UPDATED'));
|
|
8
13
|
/**
|
|
9
14
|
* Action hash for GOVERNANCE.PROPOSAL_VOTED
|
|
10
15
|
* Used when voting on proposals via SpaceRegistry.enter()
|
|
@@ -20,6 +25,11 @@ export const MEMBERSHIP_REQUESTED_ACTION = keccak256(toHex('GOVERNANCE.MEMBERSHI
|
|
|
20
25
|
* Used when executing a passed proposal via SpaceRegistry.enter()
|
|
21
26
|
*/
|
|
22
27
|
export const PROPOSAL_EXECUTED_ACTION = keccak256(toHex('GOVERNANCE.PROPOSAL_EXECUTED'));
|
|
28
|
+
/**
|
|
29
|
+
* Action hash for GOVERNANCE.EDITS_PUBLISHED
|
|
30
|
+
* Used by DAO edit proposals through DAOSpace.ping().
|
|
31
|
+
*/
|
|
32
|
+
export const EDITS_PUBLISHED_ACTION = keccak256(toHex('GOVERNANCE.EDITS_PUBLISHED'));
|
|
23
33
|
/**
|
|
24
34
|
* Maps VoteOption strings to their on-chain uint8 values (IDAOSpace.VoteOption enum).
|
|
25
35
|
*/
|
|
@@ -75,11 +85,12 @@ export function bytes16ToBytes32LeftAligned(bytes16Hex) {
|
|
|
75
85
|
return `0x${s.slice(2)}${'0'.repeat(32)}`;
|
|
76
86
|
}
|
|
77
87
|
/**
|
|
78
|
-
* Get
|
|
88
|
+
* Get contract addresses based on network.
|
|
79
89
|
*/
|
|
80
90
|
export function getContractAddressesBasedOnNetwork(network) {
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
91
|
+
const config = resolveGeoNetwork(network);
|
|
92
|
+
return {
|
|
93
|
+
SPACE_REGISTRY_ADDRESS: requireGeoContract(config, 'SPACE_REGISTRY_ADDRESS'),
|
|
94
|
+
};
|
|
84
95
|
}
|
|
85
96
|
//# 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,
|
|
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,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;;;GAGG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,SAAS,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC,CAAC;AAErF;;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
|
-
*
|
|
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":"
|
|
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 {
|
|
2
|
-
import {
|
|
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
|
-
*
|
|
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 {
|
|
44
|
-
|
|
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":"
|
|
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
|
-
*
|
|
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.executeProposal(...)`.
|
|
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":"
|
|
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 {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
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
|
-
*
|
|
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.executeProposal(...)`.
|
|
30
8
|
*/
|
|
31
9
|
export function executeProposal(params) {
|
|
32
|
-
const {
|
|
33
|
-
|
|
34
|
-
|
|
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: ${
|
|
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: ${
|
|
17
|
+
if (!isBytes16Hex(ensure0xPrefix(args.proposalId))) {
|
|
18
|
+
throw new Error(`proposalId must be bytes16 hex (32 hex chars). Received: ${args.proposalId}`);
|
|
46
19
|
}
|
|
47
|
-
|
|
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.executeProposal(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,
|
|
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,eAAe,CAAC,IAAI,CAAC,CAAC;AAClG,CAAC"}
|