@geoprotocol/geo-sdk 0.10.1 → 0.11.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 +1 -3
- package/dist/src/dao-space/constants.d.ts +13 -0
- package/dist/src/dao-space/constants.d.ts.map +1 -1
- package/dist/src/dao-space/constants.js +13 -0
- package/dist/src/dao-space/constants.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/types.d.ts +36 -0
- package/dist/src/dao-space/types.d.ts.map +1 -1
- package/dist/src/dao-space/vote-proposal.d.ts +31 -0
- package/dist/src/dao-space/vote-proposal.d.ts.map +1 -0
- package/dist/src/dao-space/vote-proposal.js +80 -0
- package/dist/src/dao-space/vote-proposal.js.map +1 -0
- package/dist/src/dao-space/vote-proposal.test.d.ts +2 -0
- package/dist/src/dao-space/vote-proposal.test.d.ts.map +1 -0
- package/dist/src/dao-space/vote-proposal.test.js +143 -0
- package/dist/src/dao-space/vote-proposal.test.js.map +1 -0
- package/dist/src/encodings/get-remove-editor-arguments.js +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -27,9 +27,7 @@ Relations describe the edges within the graph. Relations are themselves entities
|
|
|
27
27
|
|
|
28
28
|
An entity is a unique identifier representing a person, a place, an idea, a concept, or anything else. Entities are comprised of triples and relations which provide semantic meaning as to what the entity _is_. An entity's data can be composed from multiple spaces at once. This property is what enables pluralism within The Graph.
|
|
29
29
|
|
|
30
|
-
[More about entities and knowledge graphs](https://www.geobrowser.io/space/
|
|
31
|
-
|
|
32
|
-
[More about pluralism](https://www.geobrowser.io/space/6tfhqywXtteatMeGUtd5EB/5WHP8BuoCdSiqtfy87SYWG)
|
|
30
|
+
[More about entities and knowledge graphs](https://www.geobrowser.io/space/720eb279c64d56735dccd17a2a416ba2/a72654b014fa405bbf1250ba901bc082)
|
|
33
31
|
|
|
34
32
|
### Ops and edits
|
|
35
33
|
|
|
@@ -3,6 +3,19 @@
|
|
|
3
3
|
* Used when creating proposals via SpaceRegistry.enter()
|
|
4
4
|
*/
|
|
5
5
|
export declare const PROPOSAL_CREATED_ACTION: `0x${string}`;
|
|
6
|
+
/**
|
|
7
|
+
* Action hash for GOVERNANCE.PROPOSAL_VOTED
|
|
8
|
+
* Used when voting on proposals via SpaceRegistry.enter()
|
|
9
|
+
*/
|
|
10
|
+
export declare const PROPOSAL_VOTED_ACTION: `0x${string}`;
|
|
11
|
+
/**
|
|
12
|
+
* Maps VoteOption strings to their on-chain uint8 values (IDAOSpace.VoteOption enum).
|
|
13
|
+
*/
|
|
14
|
+
export declare const VOTE_OPTION_VALUES: {
|
|
15
|
+
readonly YES: 1;
|
|
16
|
+
readonly NO: 2;
|
|
17
|
+
readonly ABSTAIN: 3;
|
|
18
|
+
};
|
|
6
19
|
/**
|
|
7
20
|
* Empty topic (bytes32(0)) used for proposals
|
|
8
21
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/dao-space/constants.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,eAAO,MAAM,uBAAuB,eAAkD,CAAC;AAEvF;;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,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"}
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/dao-space/constants.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,eAAO,MAAM,uBAAuB,eAAkD,CAAC;AAEvF;;;GAGG;AACH,eAAO,MAAM,qBAAqB,eAAgD,CAAC;AAEnF;;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,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"}
|
|
@@ -4,6 +4,19 @@ import { keccak256, toHex } from 'viem';
|
|
|
4
4
|
* Used when creating proposals via SpaceRegistry.enter()
|
|
5
5
|
*/
|
|
6
6
|
export const PROPOSAL_CREATED_ACTION = keccak256(toHex('GOVERNANCE.PROPOSAL_CREATED'));
|
|
7
|
+
/**
|
|
8
|
+
* Action hash for GOVERNANCE.PROPOSAL_VOTED
|
|
9
|
+
* Used when voting on proposals via SpaceRegistry.enter()
|
|
10
|
+
*/
|
|
11
|
+
export const PROPOSAL_VOTED_ACTION = keccak256(toHex('GOVERNANCE.PROPOSAL_VOTED'));
|
|
12
|
+
/**
|
|
13
|
+
* Maps VoteOption strings to their on-chain uint8 values (IDAOSpace.VoteOption enum).
|
|
14
|
+
*/
|
|
15
|
+
export const VOTE_OPTION_VALUES = {
|
|
16
|
+
YES: 1,
|
|
17
|
+
NO: 2,
|
|
18
|
+
ABSTAIN: 3,
|
|
19
|
+
};
|
|
7
20
|
/**
|
|
8
21
|
* Empty topic (bytes32(0)) used for proposals
|
|
9
22
|
*/
|
|
@@ -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;AAExC;;;GAGG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,SAAS,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC,CAAC;AAEvF;;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,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"}
|
|
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;AAExC;;;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;;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,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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export { createSpace } from './create-space.js';
|
|
2
2
|
export { proposeEdit } from './propose-edit.js';
|
|
3
|
-
export type { CreateSpaceParams, CreateSpaceResult, ProposeEditParams, ProposeEditResult, VotingMode, } from './types.js';
|
|
3
|
+
export type { CreateSpaceParams, CreateSpaceResult, ProposeEditParams, ProposeEditResult, VoteOption, VoteProposalParams, VoteProposalResult, VotingMode, } from './types.js';
|
|
4
|
+
export { voteProposal } from './vote-proposal.js';
|
|
4
5
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/dao-space/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,YAAY,EACV,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,UAAU,GACX,MAAM,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/dao-space/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,YAAY,EACV,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,UAAU,EACV,kBAAkB,EAClB,kBAAkB,EAClB,UAAU,GACX,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/dao-space/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/dao-space/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAWhD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC"}
|
|
@@ -81,4 +81,40 @@ export type ProposeEditResult = {
|
|
|
81
81
|
/** The proposal ID (bytes16 hex) */
|
|
82
82
|
proposalId: `0x${string}`;
|
|
83
83
|
};
|
|
84
|
+
/**
|
|
85
|
+
* Vote option for a DAO proposal.
|
|
86
|
+
* Maps to the IDAOSpace.VoteOption enum on-chain:
|
|
87
|
+
* - 'YES' = 1
|
|
88
|
+
* - 'NO' = 2
|
|
89
|
+
* - 'ABSTAIN' = 3
|
|
90
|
+
*/
|
|
91
|
+
export type VoteOption = 'YES' | 'NO' | 'ABSTAIN';
|
|
92
|
+
export type VoteProposalParams = {
|
|
93
|
+
/**
|
|
94
|
+
* The voter's space ID (bytes16 hex, with or without 0x prefix).
|
|
95
|
+
* This is the fromSpaceId in the enter() call.
|
|
96
|
+
*/
|
|
97
|
+
authorSpaceId: string;
|
|
98
|
+
/**
|
|
99
|
+
* The DAO space ID (bytes16 hex, with or without 0x prefix).
|
|
100
|
+
* This is the toSpaceId in the enter() call.
|
|
101
|
+
*/
|
|
102
|
+
spaceId: string;
|
|
103
|
+
/**
|
|
104
|
+
* The proposal to vote on (bytes16 hex, with or without 0x prefix).
|
|
105
|
+
*/
|
|
106
|
+
proposalId: string;
|
|
107
|
+
/**
|
|
108
|
+
* The vote option: 'YES', 'NO', or 'ABSTAIN'.
|
|
109
|
+
*/
|
|
110
|
+
vote: VoteOption;
|
|
111
|
+
/** Network to use (defaults to TESTNET) */
|
|
112
|
+
network?: Network;
|
|
113
|
+
};
|
|
114
|
+
export type VoteProposalResult = {
|
|
115
|
+
/** The contract address to send the transaction to (Space Registry) */
|
|
116
|
+
to: `0x${string}`;
|
|
117
|
+
/** The calldata for the enter() function call */
|
|
118
|
+
calldata: `0x${string}`;
|
|
119
|
+
};
|
|
84
120
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/dao-space/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,+CAA+C,CAAC;AACzF,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,UAAU,CAAC;AACnC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAE3C,MAAM,MAAM,iBAAiB,GAAG;IAC9B,4BAA4B;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,wCAAwC;IACxC,cAAc,EAAE,mBAAmB,CAAC;IACpC,yFAAyF;IACzF,qBAAqB,EAAE,KAAK,MAAM,EAAE,EAAE,CAAC;IACvC,gFAAgF;IAChF,qBAAqB,CAAC,EAAE,KAAK,MAAM,EAAE,EAAE,CAAC;IACxC,4CAA4C;IAC5C,MAAM,EAAE,EAAE,GAAG,MAAM,CAAC;IACpB,+DAA+D;IAC/D,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC;IACX,6FAA6F;IAC7F,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,2CAA2C;IAC3C,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,EAAE,EAAE,KAAK,MAAM,EAAE,CAAC;IAClB,QAAQ,EAAE,KAAK,MAAM,EAAE,CAAC;IACxB,oCAAoC;IACpC,aAAa,EAAE,MAAM,CAAC;IACtB,uCAAuC;IACvC,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,MAAM,CAAC;AAEzC,MAAM,MAAM,iBAAiB,GAAG;IAC9B,gDAAgD;IAChD,IAAI,EAAE,MAAM,CAAC;IACb,qCAAqC;IACrC,GAAG,EAAE,EAAE,EAAE,CAAC;IACV,4CAA4C;IAC5C,MAAM,EAAE,EAAE,GAAG,MAAM,CAAC;IACpB;;;OAGG;IACH,eAAe,EAAE,KAAK,MAAM,EAAE,CAAC;IAC/B;;;OAGG;IACH,aAAa,EAAE,KAAK,MAAM,EAAE,CAAC;IAC7B;;;OAGG;IACH,UAAU,EAAE,KAAK,MAAM,EAAE,CAAC;IAC1B;;;OAGG;IACH,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB;;;OAGG;IACH,UAAU,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;IAC3B,2CAA2C;IAC3C,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,4BAA4B;IAC5B,MAAM,EAAE,EAAE,CAAC;IACX,yCAAyC;IACzC,GAAG,EAAE,MAAM,CAAC;IACZ,uEAAuE;IACvE,EAAE,EAAE,KAAK,MAAM,EAAE,CAAC;IAClB,iDAAiD;IACjD,QAAQ,EAAE,KAAK,MAAM,EAAE,CAAC;IACxB,oCAAoC;IACpC,UAAU,EAAE,KAAK,MAAM,EAAE,CAAC;CAC3B,CAAC"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/dao-space/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { VoteProposalParams, VoteProposalResult } from './types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Creates a vote transaction for a DAO space proposal.
|
|
4
|
+
*
|
|
5
|
+
* This function:
|
|
6
|
+
* 1. Validates the author, DAO space, and proposal IDs
|
|
7
|
+
* 2. Encodes the vote option as the data payload
|
|
8
|
+
* 3. Encodes the SpaceRegistry's `enter()` call with the `PROPOSAL_VOTED` action
|
|
9
|
+
*
|
|
10
|
+
* No IPFS publish is needed — this is purely a governance action.
|
|
11
|
+
*
|
|
12
|
+
* @param params - The parameters for voting on 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.voteProposal({
|
|
20
|
+
* authorSpaceId: '0xAuthorBytes16SpaceId...',
|
|
21
|
+
* spaceId: '0xDAOBytes16SpaceId...',
|
|
22
|
+
* proposalId: '0xProposalBytes16Id...',
|
|
23
|
+
* vote: 'YES',
|
|
24
|
+
* });
|
|
25
|
+
*
|
|
26
|
+
* // Submit the transaction using viem or another client
|
|
27
|
+
* await walletClient.sendTransaction({ to, data: calldata });
|
|
28
|
+
* ```
|
|
29
|
+
*/
|
|
30
|
+
export declare function voteProposal(params: VoteProposalParams): VoteProposalResult;
|
|
31
|
+
//# sourceMappingURL=vote-proposal.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vote-proposal.d.ts","sourceRoot":"","sources":["../../../src/dao-space/vote-proposal.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AASzE;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,kBAAkB,GAAG,kBAAkB,CAiD3E"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { encodeAbiParameters, encodeFunctionData } from 'viem';
|
|
2
|
+
import { TESTNET } from '../../contracts.js';
|
|
3
|
+
import { SpaceRegistryAbi } from '../abis/index.js';
|
|
4
|
+
import { bytes16ToBytes32LeftAligned, EMPTY_SIGNATURE, isBytes16Hex, PROPOSAL_VOTED_ACTION, VOTE_OPTION_VALUES, } from './constants.js';
|
|
5
|
+
/**
|
|
6
|
+
* Ensures a hex string has the 0x prefix.
|
|
7
|
+
*/
|
|
8
|
+
function ensure0xPrefix(value) {
|
|
9
|
+
return (value.startsWith('0x') ? value : `0x${value}`);
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Creates a vote transaction for a DAO space proposal.
|
|
13
|
+
*
|
|
14
|
+
* This function:
|
|
15
|
+
* 1. Validates the author, DAO space, and proposal IDs
|
|
16
|
+
* 2. Encodes the vote option as the data payload
|
|
17
|
+
* 3. Encodes the SpaceRegistry's `enter()` call with the `PROPOSAL_VOTED` action
|
|
18
|
+
*
|
|
19
|
+
* No IPFS publish is needed — this is purely a governance action.
|
|
20
|
+
*
|
|
21
|
+
* @param params - The parameters for voting on a proposal
|
|
22
|
+
* @returns Object containing `to` (Space Registry address) and `calldata`
|
|
23
|
+
*
|
|
24
|
+
* @example
|
|
25
|
+
* ```ts
|
|
26
|
+
* import { daoSpace } from '@geoprotocol/geo-sdk';
|
|
27
|
+
*
|
|
28
|
+
* const { to, calldata } = daoSpace.voteProposal({
|
|
29
|
+
* authorSpaceId: '0xAuthorBytes16SpaceId...',
|
|
30
|
+
* spaceId: '0xDAOBytes16SpaceId...',
|
|
31
|
+
* proposalId: '0xProposalBytes16Id...',
|
|
32
|
+
* vote: 'YES',
|
|
33
|
+
* });
|
|
34
|
+
*
|
|
35
|
+
* // Submit the transaction using viem or another client
|
|
36
|
+
* await walletClient.sendTransaction({ to, data: calldata });
|
|
37
|
+
* ```
|
|
38
|
+
*/
|
|
39
|
+
export function voteProposal(params) {
|
|
40
|
+
const { authorSpaceId: rawAuthorSpaceId, spaceId: rawSpaceId, proposalId: rawProposalId, vote } = params;
|
|
41
|
+
// Ensure 0x prefix on all IDs
|
|
42
|
+
const authorSpaceId = ensure0xPrefix(rawAuthorSpaceId);
|
|
43
|
+
const spaceId = ensure0xPrefix(rawSpaceId);
|
|
44
|
+
const proposalId = ensure0xPrefix(rawProposalId);
|
|
45
|
+
// Validate inputs
|
|
46
|
+
if (!isBytes16Hex(authorSpaceId)) {
|
|
47
|
+
throw new Error(`authorSpaceId must be bytes16 hex (32 hex chars). Received: ${rawAuthorSpaceId}`);
|
|
48
|
+
}
|
|
49
|
+
if (!isBytes16Hex(spaceId)) {
|
|
50
|
+
throw new Error(`spaceId must be bytes16 hex (32 hex chars). Received: ${rawSpaceId}`);
|
|
51
|
+
}
|
|
52
|
+
if (!isBytes16Hex(proposalId)) {
|
|
53
|
+
throw new Error(`proposalId must be bytes16 hex (32 hex chars). Received: ${rawProposalId}`);
|
|
54
|
+
}
|
|
55
|
+
// Convert proposalId to bytes32 for the topic (left-aligned)
|
|
56
|
+
const topic = bytes16ToBytes32LeftAligned(proposalId);
|
|
57
|
+
// Encode the vote data: proposalId + voteOption (matches the contract's abi.decode format)
|
|
58
|
+
const data = encodeAbiParameters([
|
|
59
|
+
{ type: 'bytes16', name: 'proposalId' },
|
|
60
|
+
{ type: 'uint8', name: 'voteOption' },
|
|
61
|
+
], [proposalId, VOTE_OPTION_VALUES[vote]]);
|
|
62
|
+
// Encode the SpaceRegistry.enter() call
|
|
63
|
+
const calldata = encodeFunctionData({
|
|
64
|
+
abi: SpaceRegistryAbi,
|
|
65
|
+
functionName: 'enter',
|
|
66
|
+
args: [
|
|
67
|
+
authorSpaceId, // fromSpaceId
|
|
68
|
+
spaceId, // toSpaceId
|
|
69
|
+
PROPOSAL_VOTED_ACTION, // action
|
|
70
|
+
topic, // topic (proposalId left-aligned to bytes32)
|
|
71
|
+
data, // data (encoded vote option)
|
|
72
|
+
EMPTY_SIGNATURE, // signature (unused when msg.sender == fromSpace)
|
|
73
|
+
],
|
|
74
|
+
});
|
|
75
|
+
return {
|
|
76
|
+
to: TESTNET.SPACE_REGISTRY_ADDRESS,
|
|
77
|
+
calldata,
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
//# sourceMappingURL=vote-proposal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vote-proposal.js","sourceRoot":"","sources":["../../../src/dao-space/vote-proposal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,MAAM,CAAC;AAE/D,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EACL,2BAA2B,EAC3B,eAAe,EACf,YAAY,EACZ,qBAAqB,EACrB,kBAAkB,GACnB,MAAM,gBAAgB,CAAC;AAGxB;;GAEG;AACH,SAAS,cAAc,CAAC,KAAa;IACnC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,KAAK,EAAE,CAAkB,CAAC;AAC1E,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,UAAU,YAAY,CAAC,MAA0B;IACrD,MAAM,EAAE,aAAa,EAAE,gBAAgB,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,aAAa,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC;IAEzG,8BAA8B;IAC9B,MAAM,aAAa,GAAG,cAAc,CAAC,gBAAgB,CAAC,CAAC;IACvD,MAAM,OAAO,GAAG,cAAc,CAAC,UAAU,CAAC,CAAC;IAC3C,MAAM,UAAU,GAAG,cAAc,CAAC,aAAa,CAAC,CAAC;IAEjD,kBAAkB;IAClB,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CAAC,+DAA+D,gBAAgB,EAAE,CAAC,CAAC;IACrG,CAAC;IACD,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,yDAAyD,UAAU,EAAE,CAAC,CAAC;IACzF,CAAC;IACD,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CAAC,4DAA4D,aAAa,EAAE,CAAC,CAAC;IAC/F,CAAC;IAED,6DAA6D;IAC7D,MAAM,KAAK,GAAG,2BAA2B,CAAC,UAAU,CAAC,CAAC;IAEtD,2FAA2F;IAC3F,MAAM,IAAI,GAAG,mBAAmB,CAC9B;QACE,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,YAAY,EAAE;QACvC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE;KACtC,EACD,CAAC,UAAU,EAAE,kBAAkB,CAAC,IAAI,CAAC,CAAC,CACvC,CAAC;IAEF,wCAAwC;IACxC,MAAM,QAAQ,GAAG,kBAAkB,CAAC;QAClC,GAAG,EAAE,gBAAgB;QACrB,YAAY,EAAE,OAAO;QACrB,IAAI,EAAE;YACJ,aAAa,EAAE,cAAc;YAC7B,OAAO,EAAE,YAAY;YACrB,qBAAqB,EAAE,SAAS;YAChC,KAAK,EAAE,6CAA6C;YACpD,IAAI,EAAE,6BAA6B;YACnC,eAAe,EAAE,kDAAkD;SACpE;KACF,CAAC,CAAC;IAEH,OAAO;QACL,EAAE,EAAE,OAAO,CAAC,sBAAsB;QAClC,QAAQ;KACT,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vote-proposal.test.d.ts","sourceRoot":"","sources":["../../../src/dao-space/vote-proposal.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
import { describe, expect, it } from 'vitest';
|
|
2
|
+
import { TESTNET } from '../../contracts.js';
|
|
3
|
+
import { voteProposal } from './vote-proposal.js';
|
|
4
|
+
describe('voteProposal', () => {
|
|
5
|
+
// Valid test values
|
|
6
|
+
const validAuthorSpaceId = '0x0eed5491b917cf58b33ac81255fe7ae9';
|
|
7
|
+
const validDaoSpaceId = '0xabcdef12345678901234567890abcdef';
|
|
8
|
+
const validProposalId = '0x11111111111111111111111111111111';
|
|
9
|
+
it('should return correct structure', () => {
|
|
10
|
+
const result = voteProposal({
|
|
11
|
+
authorSpaceId: validAuthorSpaceId,
|
|
12
|
+
spaceId: validDaoSpaceId,
|
|
13
|
+
proposalId: validProposalId,
|
|
14
|
+
vote: 'YES',
|
|
15
|
+
});
|
|
16
|
+
expect(result).toHaveProperty('to');
|
|
17
|
+
expect(result).toHaveProperty('calldata');
|
|
18
|
+
});
|
|
19
|
+
it('should return the correct contract address (Space Registry)', () => {
|
|
20
|
+
const { to } = voteProposal({
|
|
21
|
+
authorSpaceId: validAuthorSpaceId,
|
|
22
|
+
spaceId: validDaoSpaceId,
|
|
23
|
+
proposalId: validProposalId,
|
|
24
|
+
vote: 'YES',
|
|
25
|
+
});
|
|
26
|
+
expect(to).toBe(TESTNET.SPACE_REGISTRY_ADDRESS);
|
|
27
|
+
});
|
|
28
|
+
it('should return valid calldata', () => {
|
|
29
|
+
const { calldata } = voteProposal({
|
|
30
|
+
authorSpaceId: validAuthorSpaceId,
|
|
31
|
+
spaceId: validDaoSpaceId,
|
|
32
|
+
proposalId: validProposalId,
|
|
33
|
+
vote: 'YES',
|
|
34
|
+
});
|
|
35
|
+
expect(calldata).toBeTypeOf('string');
|
|
36
|
+
expect(calldata.startsWith('0x')).toBe(true);
|
|
37
|
+
});
|
|
38
|
+
it('should accept YES vote', () => {
|
|
39
|
+
const result = voteProposal({
|
|
40
|
+
authorSpaceId: validAuthorSpaceId,
|
|
41
|
+
spaceId: validDaoSpaceId,
|
|
42
|
+
proposalId: validProposalId,
|
|
43
|
+
vote: 'YES',
|
|
44
|
+
});
|
|
45
|
+
expect(result.calldata).toBeTruthy();
|
|
46
|
+
});
|
|
47
|
+
it('should accept NO vote', () => {
|
|
48
|
+
const result = voteProposal({
|
|
49
|
+
authorSpaceId: validAuthorSpaceId,
|
|
50
|
+
spaceId: validDaoSpaceId,
|
|
51
|
+
proposalId: validProposalId,
|
|
52
|
+
vote: 'NO',
|
|
53
|
+
});
|
|
54
|
+
expect(result.calldata).toBeTruthy();
|
|
55
|
+
});
|
|
56
|
+
it('should accept ABSTAIN vote', () => {
|
|
57
|
+
const result = voteProposal({
|
|
58
|
+
authorSpaceId: validAuthorSpaceId,
|
|
59
|
+
spaceId: validDaoSpaceId,
|
|
60
|
+
proposalId: validProposalId,
|
|
61
|
+
vote: 'ABSTAIN',
|
|
62
|
+
});
|
|
63
|
+
expect(result.calldata).toBeTruthy();
|
|
64
|
+
});
|
|
65
|
+
it('should produce different calldata for different vote options', () => {
|
|
66
|
+
const params = {
|
|
67
|
+
authorSpaceId: validAuthorSpaceId,
|
|
68
|
+
spaceId: validDaoSpaceId,
|
|
69
|
+
proposalId: validProposalId,
|
|
70
|
+
};
|
|
71
|
+
const yesResult = voteProposal({ ...params, vote: 'YES' });
|
|
72
|
+
const noResult = voteProposal({ ...params, vote: 'NO' });
|
|
73
|
+
const abstainResult = voteProposal({ ...params, vote: 'ABSTAIN' });
|
|
74
|
+
expect(yesResult.calldata).not.toBe(noResult.calldata);
|
|
75
|
+
expect(yesResult.calldata).not.toBe(abstainResult.calldata);
|
|
76
|
+
expect(noResult.calldata).not.toBe(abstainResult.calldata);
|
|
77
|
+
});
|
|
78
|
+
it('should produce different calldata for different proposals', () => {
|
|
79
|
+
const otherProposalId = '0x22222222222222222222222222222222';
|
|
80
|
+
const result1 = voteProposal({
|
|
81
|
+
authorSpaceId: validAuthorSpaceId,
|
|
82
|
+
spaceId: validDaoSpaceId,
|
|
83
|
+
proposalId: validProposalId,
|
|
84
|
+
vote: 'YES',
|
|
85
|
+
});
|
|
86
|
+
const result2 = voteProposal({
|
|
87
|
+
authorSpaceId: validAuthorSpaceId,
|
|
88
|
+
spaceId: validDaoSpaceId,
|
|
89
|
+
proposalId: otherProposalId,
|
|
90
|
+
vote: 'YES',
|
|
91
|
+
});
|
|
92
|
+
expect(result1.calldata).not.toBe(result2.calldata);
|
|
93
|
+
});
|
|
94
|
+
it('should accept IDs without 0x prefix', () => {
|
|
95
|
+
const result = voteProposal({
|
|
96
|
+
authorSpaceId: '0eed5491b917cf58b33ac81255fe7ae9',
|
|
97
|
+
spaceId: 'abcdef12345678901234567890abcdef',
|
|
98
|
+
proposalId: '11111111111111111111111111111111',
|
|
99
|
+
vote: 'YES',
|
|
100
|
+
});
|
|
101
|
+
expect(result.calldata).toBeTruthy();
|
|
102
|
+
});
|
|
103
|
+
it('should produce same calldata with or without 0x prefix', () => {
|
|
104
|
+
const withPrefix = voteProposal({
|
|
105
|
+
authorSpaceId: '0x0eed5491b917cf58b33ac81255fe7ae9',
|
|
106
|
+
spaceId: '0xabcdef12345678901234567890abcdef',
|
|
107
|
+
proposalId: '0x11111111111111111111111111111111',
|
|
108
|
+
vote: 'YES',
|
|
109
|
+
});
|
|
110
|
+
const withoutPrefix = voteProposal({
|
|
111
|
+
authorSpaceId: '0eed5491b917cf58b33ac81255fe7ae9',
|
|
112
|
+
spaceId: 'abcdef12345678901234567890abcdef',
|
|
113
|
+
proposalId: '11111111111111111111111111111111',
|
|
114
|
+
vote: 'YES',
|
|
115
|
+
});
|
|
116
|
+
expect(withPrefix.calldata).toBe(withoutPrefix.calldata);
|
|
117
|
+
});
|
|
118
|
+
it('should throw for invalid authorSpaceId format', () => {
|
|
119
|
+
expect(() => voteProposal({
|
|
120
|
+
authorSpaceId: 'invalid',
|
|
121
|
+
spaceId: validDaoSpaceId,
|
|
122
|
+
proposalId: validProposalId,
|
|
123
|
+
vote: 'YES',
|
|
124
|
+
})).toThrow('authorSpaceId must be bytes16 hex');
|
|
125
|
+
});
|
|
126
|
+
it('should throw for invalid spaceId format', () => {
|
|
127
|
+
expect(() => voteProposal({
|
|
128
|
+
authorSpaceId: validAuthorSpaceId,
|
|
129
|
+
spaceId: 'tooshort',
|
|
130
|
+
proposalId: validProposalId,
|
|
131
|
+
vote: 'YES',
|
|
132
|
+
})).toThrow('spaceId must be bytes16 hex');
|
|
133
|
+
});
|
|
134
|
+
it('should throw for invalid proposalId format', () => {
|
|
135
|
+
expect(() => voteProposal({
|
|
136
|
+
authorSpaceId: validAuthorSpaceId,
|
|
137
|
+
spaceId: validDaoSpaceId,
|
|
138
|
+
proposalId: 'badid',
|
|
139
|
+
vote: 'YES',
|
|
140
|
+
})).toThrow('proposalId must be bytes16 hex');
|
|
141
|
+
});
|
|
142
|
+
});
|
|
143
|
+
//# sourceMappingURL=vote-proposal.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vote-proposal.test.js","sourceRoot":"","sources":["../../../src/dao-space/vote-proposal.test.ts"],"names":[],"mappings":"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"}
|