@graphprotocol/grc-20 0.25.7 → 0.27.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 +2 -2
- package/dist/contracts.d.ts +2 -0
- package/dist/contracts.d.ts.map +1 -1
- package/dist/contracts.js +2 -0
- package/dist/contracts.js.map +1 -1
- package/dist/src/abis/dao-space-factory.d.ts +250 -0
- package/dist/src/abis/dao-space-factory.d.ts.map +1 -0
- package/dist/src/abis/dao-space-factory.js +326 -0
- package/dist/src/abis/dao-space-factory.js.map +1 -0
- package/dist/src/abis/index.d.ts +2 -0
- package/dist/src/abis/index.d.ts.map +1 -1
- package/dist/src/abis/index.js +2 -0
- package/dist/src/abis/index.js.map +1 -1
- package/dist/src/abis/space-registry.d.ts +367 -0
- package/dist/src/abis/space-registry.d.ts.map +1 -0
- package/dist/src/abis/space-registry.js +192 -0
- package/dist/src/abis/space-registry.js.map +1 -0
- package/dist/src/core/blocks/data.test.js +4 -4
- package/dist/src/core/blocks/data.test.js.map +1 -1
- package/dist/src/core/blocks/text.test.js +2 -2
- package/dist/src/core/blocks/text.test.js.map +1 -1
- package/dist/src/core/ids/content.d.ts.map +1 -1
- package/dist/src/core/ids/content.js +55 -55
- package/dist/src/core/ids/content.js.map +1 -1
- package/dist/src/core/ids/network.d.ts.map +1 -1
- package/dist/src/core/ids/network.js +3 -3
- package/dist/src/core/ids/network.js.map +1 -1
- package/dist/src/core/ids/system.d.ts.map +1 -1
- package/dist/src/core/ids/system.js +140 -140
- package/dist/src/core/ids/system.js.map +1 -1
- package/dist/src/encodings/get-create-dao-space-calldata.d.ts +146 -0
- package/dist/src/encodings/get-create-dao-space-calldata.d.ts.map +1 -0
- package/dist/src/encodings/get-create-dao-space-calldata.js +169 -0
- package/dist/src/encodings/get-create-dao-space-calldata.js.map +1 -0
- package/dist/src/encodings/get-create-dao-space-calldata.test.d.ts +2 -0
- package/dist/src/encodings/get-create-dao-space-calldata.test.d.ts.map +1 -0
- package/dist/src/encodings/get-create-dao-space-calldata.test.js +124 -0
- package/dist/src/encodings/get-create-dao-space-calldata.test.js.map +1 -0
- package/dist/src/encodings/get-register-space-calldata.d.ts +32 -0
- package/dist/src/encodings/get-register-space-calldata.d.ts.map +1 -0
- package/dist/src/encodings/get-register-space-calldata.js +39 -0
- package/dist/src/encodings/get-register-space-calldata.js.map +1 -0
- package/dist/src/encodings/get-register-space-calldata.test.d.ts +2 -0
- package/dist/src/encodings/get-register-space-calldata.test.d.ts.map +1 -0
- package/dist/src/encodings/get-register-space-calldata.test.js +15 -0
- package/dist/src/encodings/get-register-space-calldata.test.js.map +1 -0
- package/dist/src/encodings/index.d.ts +2 -0
- package/dist/src/encodings/index.d.ts.map +1 -1
- package/dist/src/encodings/index.js +2 -0
- package/dist/src/encodings/index.js.map +1 -1
- package/dist/src/graph/create-entity.test.js +25 -25
- package/dist/src/graph/create-entity.test.js.map +1 -1
- package/dist/src/graph/create-image.test.js +2 -2
- package/dist/src/graph/create-image.test.js.map +1 -1
- package/dist/src/graph/create-property.test.js +2 -2
- package/dist/src/graph/create-property.test.js.map +1 -1
- package/dist/src/graph/create-relation.test.js +11 -11
- package/dist/src/graph/create-relation.test.js.map +1 -1
- package/dist/src/graph/create-type.test.js +2 -2
- package/dist/src/graph/create-type.test.js.map +1 -1
- package/dist/src/graph/delete-relation.test.js +1 -1
- package/dist/src/graph/delete-relation.test.js.map +1 -1
- package/dist/src/graph/unset-entity-values.test.js +3 -3
- package/dist/src/graph/unset-entity-values.test.js.map +1 -1
- package/dist/src/graph/unset-relation-fields.test.js +2 -2
- package/dist/src/graph/unset-relation-fields.test.js.map +1 -1
- package/dist/src/graph/update-entity.test.js +3 -3
- package/dist/src/graph/update-entity.test.js.map +1 -1
- package/dist/src/graph/update-relation.test.js +5 -5
- package/dist/src/graph/update-relation.test.js.map +1 -1
- package/dist/src/id-utils.d.ts +2 -2
- package/dist/src/id-utils.d.ts.map +1 -1
- package/dist/src/id-utils.js +5 -4
- package/dist/src/id-utils.js.map +1 -1
- package/dist/src/id-utils.test.js +19 -3
- package/dist/src/id-utils.test.js.map +1 -1
- package/dist/src/id.d.ts +6 -0
- package/dist/src/id.d.ts.map +1 -1
- package/dist/src/id.js +7 -1
- package/dist/src/id.js.map +1 -1
- package/dist/src/id.test.js +1 -0
- package/dist/src/id.test.js.map +1 -1
- package/dist/src/internal/uuid.d.ts +11 -0
- package/dist/src/internal/uuid.d.ts.map +1 -0
- package/dist/src/internal/uuid.js +18 -0
- package/dist/src/internal/uuid.js.map +1 -0
- package/dist/src/proto/edit.test.js +38 -41
- package/dist/src/proto/edit.test.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"system.js","sourceRoot":"","sources":["../../../../src/core/ids/system.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AAEjC,MAAM,CAAC,MAAM,kBAAkB,GAAG,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"system.js","sourceRoot":"","sources":["../../../../src/core/ids/system.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The base value for percentage ratios in the contract.
|
|
3
|
+
* 100% = 10e6 (10,000,000), so 50% = 5e6 (5,000,000)
|
|
4
|
+
*/
|
|
5
|
+
export declare const RATIO_BASE: bigint;
|
|
6
|
+
/** Minimum voting duration in seconds (2 days) */
|
|
7
|
+
export declare const MINIMUM_VOTING_DURATION: bigint;
|
|
8
|
+
/** Minimum voting duration in days */
|
|
9
|
+
export declare const MINIMUM_VOTING_DURATION_DAYS = 2;
|
|
10
|
+
/**
|
|
11
|
+
* User-friendly voting settings input (using percentages and days)
|
|
12
|
+
*/
|
|
13
|
+
export interface VotingSettingsInput {
|
|
14
|
+
/** Percentage threshold for slow path (0-100) */
|
|
15
|
+
slowPathPercentageThreshold: number;
|
|
16
|
+
/** Number of editors required for fast path approval */
|
|
17
|
+
fastPathFlatThreshold: number;
|
|
18
|
+
/** Minimum number of editors required to vote */
|
|
19
|
+
quorum: number;
|
|
20
|
+
/** Voting duration in days (minimum 2 days) */
|
|
21
|
+
durationInDays: number;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Contract-level voting settings (using raw values)
|
|
25
|
+
*/
|
|
26
|
+
export interface VotingSettings {
|
|
27
|
+
slowPathPercentageThreshold: bigint;
|
|
28
|
+
fastPathFlatThreshold: bigint;
|
|
29
|
+
quorum: bigint;
|
|
30
|
+
duration: bigint;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Convert a percentage (0-100) to the contract's ratio format.
|
|
34
|
+
*
|
|
35
|
+
* @param percentage - A number between 0 and 100
|
|
36
|
+
* @returns The ratio value used by the contract (where 10e6 = 100%)
|
|
37
|
+
*
|
|
38
|
+
* @example
|
|
39
|
+
* ```ts
|
|
40
|
+
* percentageToRatio(100) // 10000000n (100%)
|
|
41
|
+
* percentageToRatio(50) // 5000000n (50%)
|
|
42
|
+
* percentageToRatio(0) // 0n (0%)
|
|
43
|
+
* ```
|
|
44
|
+
*/
|
|
45
|
+
export declare function percentageToRatio(percentage: number): bigint;
|
|
46
|
+
/**
|
|
47
|
+
* Convert days to seconds.
|
|
48
|
+
*
|
|
49
|
+
* @param days - Number of days
|
|
50
|
+
* @returns The equivalent duration in seconds as a bigint
|
|
51
|
+
*
|
|
52
|
+
* @example
|
|
53
|
+
* ```ts
|
|
54
|
+
* daysToSeconds(1) // 86400n
|
|
55
|
+
* daysToSeconds(7) // 604800n
|
|
56
|
+
* ```
|
|
57
|
+
*/
|
|
58
|
+
export declare function daysToSeconds(days: number): bigint;
|
|
59
|
+
/**
|
|
60
|
+
* Convert user-friendly voting settings to contract format.
|
|
61
|
+
*
|
|
62
|
+
* @param input - User-friendly voting settings with percentages and days
|
|
63
|
+
* @returns Contract-level voting settings with bigint values
|
|
64
|
+
*
|
|
65
|
+
* @example
|
|
66
|
+
* ```ts
|
|
67
|
+
* const contractSettings = toContractVotingSettings({
|
|
68
|
+
* slowPathPercentageThreshold: 50, // 50%
|
|
69
|
+
* fastPathFlatThreshold: 3, // 3 editors
|
|
70
|
+
* quorum: 2, // 2 editors minimum
|
|
71
|
+
* durationInDays: 7, // 7 days
|
|
72
|
+
* });
|
|
73
|
+
* // Returns: { slowPathPercentageThreshold: 5000000n, fastPathFlatThreshold: 3n, quorum: 2n, duration: 604800n }
|
|
74
|
+
* ```
|
|
75
|
+
*/
|
|
76
|
+
export declare function toContractVotingSettings(input: VotingSettingsInput): VotingSettings;
|
|
77
|
+
/**
|
|
78
|
+
* Validate voting settings input.
|
|
79
|
+
*
|
|
80
|
+
* @param settings - The voting settings to validate
|
|
81
|
+
* @param totalEditors - The total number of initial editors
|
|
82
|
+
* @returns Error message if invalid, null if valid
|
|
83
|
+
*
|
|
84
|
+
* @example
|
|
85
|
+
* ```ts
|
|
86
|
+
* const error = validateVotingSettingsInput(
|
|
87
|
+
* { slowPathPercentageThreshold: 50, fastPathFlatThreshold: 3, quorum: 2, durationInDays: 7 },
|
|
88
|
+
* 5 // total editors
|
|
89
|
+
* );
|
|
90
|
+
* if (error) {
|
|
91
|
+
* console.error(error);
|
|
92
|
+
* }
|
|
93
|
+
* ```
|
|
94
|
+
*/
|
|
95
|
+
export declare function validateVotingSettingsInput(settings: VotingSettingsInput, totalEditors: number): string | null;
|
|
96
|
+
type CreateDaoSpaceCalldataParams = {
|
|
97
|
+
/** Voting settings for the DAO space */
|
|
98
|
+
votingSettings: VotingSettingsInput;
|
|
99
|
+
/** Addresses of initial editors (at least one required) */
|
|
100
|
+
initialEditors: string[];
|
|
101
|
+
/** Addresses of initial members (can be empty) */
|
|
102
|
+
initialMembers: string[];
|
|
103
|
+
};
|
|
104
|
+
/**
|
|
105
|
+
* Get the calldata for creating a DAO space proxy.
|
|
106
|
+
*
|
|
107
|
+
* This function encodes the `createDAOSpaceProxy` function call for the DAO Space Factory contract.
|
|
108
|
+
* The returned calldata can be used with viem or wagmi to send a transaction.
|
|
109
|
+
*
|
|
110
|
+
* @param args - The parameters for creating the DAO space
|
|
111
|
+
* @returns Encoded calldata for the transaction
|
|
112
|
+
* @throws Error if validation fails (e.g., no editors, invalid voting settings)
|
|
113
|
+
*
|
|
114
|
+
* @example
|
|
115
|
+
* ```ts
|
|
116
|
+
* import { getCreateDaoSpaceCalldata, TESTNET } from '@graphprotocol/grc-20';
|
|
117
|
+
* import { createWalletClient, http } from 'viem';
|
|
118
|
+
*
|
|
119
|
+
* const calldata = getCreateDaoSpaceCalldata({
|
|
120
|
+
* votingSettings: {
|
|
121
|
+
* slowPathPercentageThreshold: 50, // 50% approval needed
|
|
122
|
+
* fastPathFlatThreshold: 3, // 3 editors for fast path
|
|
123
|
+
* quorum: 2, // minimum 2 editors must vote
|
|
124
|
+
* durationInDays: 7, // 7 day voting period
|
|
125
|
+
* },
|
|
126
|
+
* initialEditors: ['0x1234...', '0x5678...'],
|
|
127
|
+
* initialMembers: ['0xabcd...'],
|
|
128
|
+
* });
|
|
129
|
+
*
|
|
130
|
+
* // Using viem
|
|
131
|
+
* const hash = await walletClient.sendTransaction({
|
|
132
|
+
* to: TESTNET.DAO_SPACE_FACTORY_ADDRESS,
|
|
133
|
+
* data: calldata,
|
|
134
|
+
* });
|
|
135
|
+
*
|
|
136
|
+
* // Using wagmi
|
|
137
|
+
* const { sendTransaction } = useSendTransaction();
|
|
138
|
+
* sendTransaction({
|
|
139
|
+
* to: TESTNET.DAO_SPACE_FACTORY_ADDRESS,
|
|
140
|
+
* data: calldata,
|
|
141
|
+
* });
|
|
142
|
+
* ```
|
|
143
|
+
*/
|
|
144
|
+
export declare function getCreateDaoSpaceCalldata(args: CreateDaoSpaceCalldataParams): `0x${string}`;
|
|
145
|
+
export {};
|
|
146
|
+
//# sourceMappingURL=get-create-dao-space-calldata.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-create-dao-space-calldata.d.ts","sourceRoot":"","sources":["../../../src/encodings/get-create-dao-space-calldata.ts"],"names":[],"mappings":"AAMA;;;GAGG;AACH,eAAO,MAAM,UAAU,QAAe,CAAC;AAEvC,kDAAkD;AAClD,eAAO,MAAM,uBAAuB,QAA2B,CAAC;AAEhE,sCAAsC;AACtC,eAAO,MAAM,4BAA4B,IAAI,CAAC;AAE9C;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,iDAAiD;IACjD,2BAA2B,EAAE,MAAM,CAAC;IACpC,wDAAwD;IACxD,qBAAqB,EAAE,MAAM,CAAC;IAC9B,iDAAiD;IACjD,MAAM,EAAE,MAAM,CAAC;IACf,+CAA+C;IAC/C,cAAc,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,2BAA2B,EAAE,MAAM,CAAC;IACpC,qBAAqB,EAAE,MAAM,CAAC;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAE5D;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAElD;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,mBAAmB,GAAG,cAAc,CAOnF;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAc9G;AAED,KAAK,4BAA4B,GAAG;IAClC,wCAAwC;IACxC,cAAc,EAAE,mBAAmB,CAAC;IACpC,2DAA2D;IAC3D,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,kDAAkD;IAClD,cAAc,EAAE,MAAM,EAAE,CAAC;CAC1B,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,4BAA4B,GAAG,KAAK,MAAM,EAAE,CA6B3F"}
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
import { encodeFunctionData } from 'viem';
|
|
2
|
+
import { DaoSpaceFactoryAbi } from '../abis/index.js';
|
|
3
|
+
import { getChecksumAddress } from '../core/get-checksum-address.js';
|
|
4
|
+
// Contract constants from DAOSpace.sol
|
|
5
|
+
/**
|
|
6
|
+
* The base value for percentage ratios in the contract.
|
|
7
|
+
* 100% = 10e6 (10,000,000), so 50% = 5e6 (5,000,000)
|
|
8
|
+
*/
|
|
9
|
+
export const RATIO_BASE = BigInt(10e6);
|
|
10
|
+
/** Minimum voting duration in seconds (2 days) */
|
|
11
|
+
export const MINIMUM_VOTING_DURATION = BigInt(2 * 24 * 60 * 60);
|
|
12
|
+
/** Minimum voting duration in days */
|
|
13
|
+
export const MINIMUM_VOTING_DURATION_DAYS = 2;
|
|
14
|
+
/**
|
|
15
|
+
* Convert a percentage (0-100) to the contract's ratio format.
|
|
16
|
+
*
|
|
17
|
+
* @param percentage - A number between 0 and 100
|
|
18
|
+
* @returns The ratio value used by the contract (where 10e6 = 100%)
|
|
19
|
+
*
|
|
20
|
+
* @example
|
|
21
|
+
* ```ts
|
|
22
|
+
* percentageToRatio(100) // 10000000n (100%)
|
|
23
|
+
* percentageToRatio(50) // 5000000n (50%)
|
|
24
|
+
* percentageToRatio(0) // 0n (0%)
|
|
25
|
+
* ```
|
|
26
|
+
*/
|
|
27
|
+
export function percentageToRatio(percentage) {
|
|
28
|
+
return BigInt(Math.floor((percentage * 10e6) / 100));
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Convert days to seconds.
|
|
32
|
+
*
|
|
33
|
+
* @param days - Number of days
|
|
34
|
+
* @returns The equivalent duration in seconds as a bigint
|
|
35
|
+
*
|
|
36
|
+
* @example
|
|
37
|
+
* ```ts
|
|
38
|
+
* daysToSeconds(1) // 86400n
|
|
39
|
+
* daysToSeconds(7) // 604800n
|
|
40
|
+
* ```
|
|
41
|
+
*/
|
|
42
|
+
export function daysToSeconds(days) {
|
|
43
|
+
return BigInt(Math.floor(days * 24 * 60 * 60));
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Convert user-friendly voting settings to contract format.
|
|
47
|
+
*
|
|
48
|
+
* @param input - User-friendly voting settings with percentages and days
|
|
49
|
+
* @returns Contract-level voting settings with bigint values
|
|
50
|
+
*
|
|
51
|
+
* @example
|
|
52
|
+
* ```ts
|
|
53
|
+
* const contractSettings = toContractVotingSettings({
|
|
54
|
+
* slowPathPercentageThreshold: 50, // 50%
|
|
55
|
+
* fastPathFlatThreshold: 3, // 3 editors
|
|
56
|
+
* quorum: 2, // 2 editors minimum
|
|
57
|
+
* durationInDays: 7, // 7 days
|
|
58
|
+
* });
|
|
59
|
+
* // Returns: { slowPathPercentageThreshold: 5000000n, fastPathFlatThreshold: 3n, quorum: 2n, duration: 604800n }
|
|
60
|
+
* ```
|
|
61
|
+
*/
|
|
62
|
+
export function toContractVotingSettings(input) {
|
|
63
|
+
return {
|
|
64
|
+
slowPathPercentageThreshold: percentageToRatio(input.slowPathPercentageThreshold),
|
|
65
|
+
fastPathFlatThreshold: BigInt(input.fastPathFlatThreshold),
|
|
66
|
+
quorum: BigInt(input.quorum),
|
|
67
|
+
duration: daysToSeconds(input.durationInDays),
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Validate voting settings input.
|
|
72
|
+
*
|
|
73
|
+
* @param settings - The voting settings to validate
|
|
74
|
+
* @param totalEditors - The total number of initial editors
|
|
75
|
+
* @returns Error message if invalid, null if valid
|
|
76
|
+
*
|
|
77
|
+
* @example
|
|
78
|
+
* ```ts
|
|
79
|
+
* const error = validateVotingSettingsInput(
|
|
80
|
+
* { slowPathPercentageThreshold: 50, fastPathFlatThreshold: 3, quorum: 2, durationInDays: 7 },
|
|
81
|
+
* 5 // total editors
|
|
82
|
+
* );
|
|
83
|
+
* if (error) {
|
|
84
|
+
* console.error(error);
|
|
85
|
+
* }
|
|
86
|
+
* ```
|
|
87
|
+
*/
|
|
88
|
+
export function validateVotingSettingsInput(settings, totalEditors) {
|
|
89
|
+
if (settings.slowPathPercentageThreshold < 0 || settings.slowPathPercentageThreshold > 100) {
|
|
90
|
+
return 'slowPathPercentageThreshold must be between 0 and 100';
|
|
91
|
+
}
|
|
92
|
+
if (settings.fastPathFlatThreshold < 0 || settings.fastPathFlatThreshold > totalEditors) {
|
|
93
|
+
return `fastPathFlatThreshold must be between 0 and ${totalEditors} (number of initial editors)`;
|
|
94
|
+
}
|
|
95
|
+
if (settings.quorum < 0 || settings.quorum > totalEditors) {
|
|
96
|
+
return `quorum must be between 0 and ${totalEditors} (number of initial editors)`;
|
|
97
|
+
}
|
|
98
|
+
if (settings.durationInDays < MINIMUM_VOTING_DURATION_DAYS) {
|
|
99
|
+
return `durationInDays must be at least ${MINIMUM_VOTING_DURATION_DAYS} days`;
|
|
100
|
+
}
|
|
101
|
+
return null;
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Get the calldata for creating a DAO space proxy.
|
|
105
|
+
*
|
|
106
|
+
* This function encodes the `createDAOSpaceProxy` function call for the DAO Space Factory contract.
|
|
107
|
+
* The returned calldata can be used with viem or wagmi to send a transaction.
|
|
108
|
+
*
|
|
109
|
+
* @param args - The parameters for creating the DAO space
|
|
110
|
+
* @returns Encoded calldata for the transaction
|
|
111
|
+
* @throws Error if validation fails (e.g., no editors, invalid voting settings)
|
|
112
|
+
*
|
|
113
|
+
* @example
|
|
114
|
+
* ```ts
|
|
115
|
+
* import { getCreateDaoSpaceCalldata, TESTNET } from '@graphprotocol/grc-20';
|
|
116
|
+
* import { createWalletClient, http } from 'viem';
|
|
117
|
+
*
|
|
118
|
+
* const calldata = getCreateDaoSpaceCalldata({
|
|
119
|
+
* votingSettings: {
|
|
120
|
+
* slowPathPercentageThreshold: 50, // 50% approval needed
|
|
121
|
+
* fastPathFlatThreshold: 3, // 3 editors for fast path
|
|
122
|
+
* quorum: 2, // minimum 2 editors must vote
|
|
123
|
+
* durationInDays: 7, // 7 day voting period
|
|
124
|
+
* },
|
|
125
|
+
* initialEditors: ['0x1234...', '0x5678...'],
|
|
126
|
+
* initialMembers: ['0xabcd...'],
|
|
127
|
+
* });
|
|
128
|
+
*
|
|
129
|
+
* // Using viem
|
|
130
|
+
* const hash = await walletClient.sendTransaction({
|
|
131
|
+
* to: TESTNET.DAO_SPACE_FACTORY_ADDRESS,
|
|
132
|
+
* data: calldata,
|
|
133
|
+
* });
|
|
134
|
+
*
|
|
135
|
+
* // Using wagmi
|
|
136
|
+
* const { sendTransaction } = useSendTransaction();
|
|
137
|
+
* sendTransaction({
|
|
138
|
+
* to: TESTNET.DAO_SPACE_FACTORY_ADDRESS,
|
|
139
|
+
* data: calldata,
|
|
140
|
+
* });
|
|
141
|
+
* ```
|
|
142
|
+
*/
|
|
143
|
+
export function getCreateDaoSpaceCalldata(args) {
|
|
144
|
+
const initialEditors = args.initialEditors.map(getChecksumAddress);
|
|
145
|
+
const initialMembers = args.initialMembers.map(getChecksumAddress);
|
|
146
|
+
if (initialEditors.length === 0) {
|
|
147
|
+
throw new Error('At least one initial editor is required');
|
|
148
|
+
}
|
|
149
|
+
const validationError = validateVotingSettingsInput(args.votingSettings, initialEditors.length);
|
|
150
|
+
if (validationError) {
|
|
151
|
+
throw new Error(validationError);
|
|
152
|
+
}
|
|
153
|
+
const contractVotingSettings = toContractVotingSettings(args.votingSettings);
|
|
154
|
+
return encodeFunctionData({
|
|
155
|
+
abi: DaoSpaceFactoryAbi,
|
|
156
|
+
functionName: 'createDAOSpaceProxy',
|
|
157
|
+
args: [
|
|
158
|
+
{
|
|
159
|
+
slowPathPercentageThreshold: contractVotingSettings.slowPathPercentageThreshold,
|
|
160
|
+
fastPathFlatThreshold: contractVotingSettings.fastPathFlatThreshold,
|
|
161
|
+
quorum: contractVotingSettings.quorum,
|
|
162
|
+
duration: contractVotingSettings.duration,
|
|
163
|
+
},
|
|
164
|
+
initialEditors,
|
|
165
|
+
initialMembers,
|
|
166
|
+
],
|
|
167
|
+
});
|
|
168
|
+
}
|
|
169
|
+
//# sourceMappingURL=get-create-dao-space-calldata.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-create-dao-space-calldata.js","sourceRoot":"","sources":["../../../src/encodings/get-create-dao-space-calldata.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-create-dao-space-calldata.test.d.ts","sourceRoot":"","sources":["../../../src/encodings/get-create-dao-space-calldata.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
import { describe, expect, it } from 'vitest';
|
|
2
|
+
import { daysToSeconds, getCreateDaoSpaceCalldata, MINIMUM_VOTING_DURATION, MINIMUM_VOTING_DURATION_DAYS, percentageToRatio, RATIO_BASE, toContractVotingSettings, validateVotingSettingsInput, } from './get-create-dao-space-calldata.js';
|
|
3
|
+
describe('percentageToRatio', () => {
|
|
4
|
+
it('should convert 100% to RATIO_BASE', () => {
|
|
5
|
+
expect(percentageToRatio(100)).toBe(RATIO_BASE);
|
|
6
|
+
});
|
|
7
|
+
it('should convert 50% to half of RATIO_BASE', () => {
|
|
8
|
+
expect(percentageToRatio(50)).toBe(RATIO_BASE / BigInt(2));
|
|
9
|
+
});
|
|
10
|
+
it('should convert 0% to 0', () => {
|
|
11
|
+
expect(percentageToRatio(0)).toBe(BigInt(0));
|
|
12
|
+
});
|
|
13
|
+
it('should handle decimal percentages', () => {
|
|
14
|
+
expect(percentageToRatio(33.33)).toBe(BigInt(3333000));
|
|
15
|
+
});
|
|
16
|
+
});
|
|
17
|
+
describe('daysToSeconds', () => {
|
|
18
|
+
it('should convert 1 day to 86400 seconds', () => {
|
|
19
|
+
expect(daysToSeconds(1)).toBe(BigInt(86400));
|
|
20
|
+
});
|
|
21
|
+
it('should convert 2 days to 172800 seconds', () => {
|
|
22
|
+
expect(daysToSeconds(2)).toBe(MINIMUM_VOTING_DURATION);
|
|
23
|
+
});
|
|
24
|
+
it('should handle fractional days', () => {
|
|
25
|
+
expect(daysToSeconds(0.5)).toBe(BigInt(43200));
|
|
26
|
+
});
|
|
27
|
+
});
|
|
28
|
+
describe('toContractVotingSettings', () => {
|
|
29
|
+
it('should convert user-friendly settings to contract format', () => {
|
|
30
|
+
const input = {
|
|
31
|
+
slowPathPercentageThreshold: 50,
|
|
32
|
+
fastPathFlatThreshold: 3,
|
|
33
|
+
quorum: 2,
|
|
34
|
+
durationInDays: 7,
|
|
35
|
+
};
|
|
36
|
+
const result = toContractVotingSettings(input);
|
|
37
|
+
expect(result.slowPathPercentageThreshold).toBe(percentageToRatio(50));
|
|
38
|
+
expect(result.fastPathFlatThreshold).toBe(BigInt(3));
|
|
39
|
+
expect(result.quorum).toBe(BigInt(2));
|
|
40
|
+
expect(result.duration).toBe(daysToSeconds(7));
|
|
41
|
+
});
|
|
42
|
+
});
|
|
43
|
+
describe('validateVotingSettingsInput', () => {
|
|
44
|
+
const validSettings = {
|
|
45
|
+
slowPathPercentageThreshold: 50,
|
|
46
|
+
fastPathFlatThreshold: 3,
|
|
47
|
+
quorum: 2,
|
|
48
|
+
durationInDays: 7,
|
|
49
|
+
};
|
|
50
|
+
it('should return null for valid settings', () => {
|
|
51
|
+
expect(validateVotingSettingsInput(validSettings, 5)).toBeNull();
|
|
52
|
+
});
|
|
53
|
+
it('should reject slowPathPercentageThreshold below 0', () => {
|
|
54
|
+
const settings = { ...validSettings, slowPathPercentageThreshold: -1 };
|
|
55
|
+
expect(validateVotingSettingsInput(settings, 5)).toBe('slowPathPercentageThreshold must be between 0 and 100');
|
|
56
|
+
});
|
|
57
|
+
it('should reject slowPathPercentageThreshold above 100', () => {
|
|
58
|
+
const settings = { ...validSettings, slowPathPercentageThreshold: 101 };
|
|
59
|
+
expect(validateVotingSettingsInput(settings, 5)).toBe('slowPathPercentageThreshold must be between 0 and 100');
|
|
60
|
+
});
|
|
61
|
+
it('should reject fastPathFlatThreshold above total editors', () => {
|
|
62
|
+
const settings = { ...validSettings, fastPathFlatThreshold: 10 };
|
|
63
|
+
expect(validateVotingSettingsInput(settings, 5)).toBe('fastPathFlatThreshold must be between 0 and 5 (number of initial editors)');
|
|
64
|
+
});
|
|
65
|
+
it('should reject quorum above total editors', () => {
|
|
66
|
+
const settings = { ...validSettings, quorum: 10 };
|
|
67
|
+
expect(validateVotingSettingsInput(settings, 5)).toBe('quorum must be between 0 and 5 (number of initial editors)');
|
|
68
|
+
});
|
|
69
|
+
it('should reject durationInDays below minimum', () => {
|
|
70
|
+
const settings = { ...validSettings, durationInDays: 1 };
|
|
71
|
+
expect(validateVotingSettingsInput(settings, 5)).toBe(`durationInDays must be at least ${MINIMUM_VOTING_DURATION_DAYS} days`);
|
|
72
|
+
});
|
|
73
|
+
});
|
|
74
|
+
describe('getCreateDaoSpaceCalldata', () => {
|
|
75
|
+
const validArgs = {
|
|
76
|
+
votingSettings: {
|
|
77
|
+
slowPathPercentageThreshold: 50,
|
|
78
|
+
fastPathFlatThreshold: 2,
|
|
79
|
+
quorum: 1,
|
|
80
|
+
durationInDays: 7,
|
|
81
|
+
},
|
|
82
|
+
initialEditors: [
|
|
83
|
+
'0x1234567890123456789012345678901234567890',
|
|
84
|
+
'0x2234567890123456789012345678901234567890',
|
|
85
|
+
'0x3234567890123456789012345678901234567890',
|
|
86
|
+
],
|
|
87
|
+
initialMembers: ['0xabcdefabcdefabcdefabcdefabcdefabcdefabcd'],
|
|
88
|
+
};
|
|
89
|
+
it('should generate valid calldata', () => {
|
|
90
|
+
const calldata = getCreateDaoSpaceCalldata(validArgs);
|
|
91
|
+
expect(calldata).toBeTypeOf('string');
|
|
92
|
+
expect(calldata.startsWith('0x')).toBe(true);
|
|
93
|
+
});
|
|
94
|
+
it('should throw if no initial editors provided', () => {
|
|
95
|
+
const args = { ...validArgs, initialEditors: [] };
|
|
96
|
+
expect(() => getCreateDaoSpaceCalldata(args)).toThrow('At least one initial editor is required');
|
|
97
|
+
});
|
|
98
|
+
it('should throw if voting settings are invalid', () => {
|
|
99
|
+
const args = {
|
|
100
|
+
...validArgs,
|
|
101
|
+
votingSettings: { ...validArgs.votingSettings, slowPathPercentageThreshold: 150 },
|
|
102
|
+
};
|
|
103
|
+
expect(() => getCreateDaoSpaceCalldata(args)).toThrow('slowPathPercentageThreshold must be between 0 and 100');
|
|
104
|
+
});
|
|
105
|
+
it('should throw if duration is below minimum', () => {
|
|
106
|
+
const args = {
|
|
107
|
+
...validArgs,
|
|
108
|
+
votingSettings: { ...validArgs.votingSettings, durationInDays: 1 },
|
|
109
|
+
};
|
|
110
|
+
expect(() => getCreateDaoSpaceCalldata(args)).toThrow(`durationInDays must be at least ${MINIMUM_VOTING_DURATION_DAYS} days`);
|
|
111
|
+
});
|
|
112
|
+
it('should accept empty initial members', () => {
|
|
113
|
+
const args = { ...validArgs, initialMembers: [] };
|
|
114
|
+
const calldata = getCreateDaoSpaceCalldata(args);
|
|
115
|
+
expect(calldata).toBeTypeOf('string');
|
|
116
|
+
expect(calldata.startsWith('0x')).toBe(true);
|
|
117
|
+
});
|
|
118
|
+
it('should checksum addresses', () => {
|
|
119
|
+
// Should not throw with lowercase addresses - uses validArgs which has 3 editors
|
|
120
|
+
const calldata = getCreateDaoSpaceCalldata(validArgs);
|
|
121
|
+
expect(calldata).toBeTypeOf('string');
|
|
122
|
+
});
|
|
123
|
+
});
|
|
124
|
+
//# sourceMappingURL=get-create-dao-space-calldata.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-create-dao-space-calldata.test.js","sourceRoot":"","sources":["../../../src/encodings/get-create-dao-space-calldata.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Get the calldata for registering a space ID.
|
|
3
|
+
*
|
|
4
|
+
* This function encodes the `registerSpaceId` function call for the Space Registry contract.
|
|
5
|
+
* It is called by a space contract to register itself with the Space Registry.
|
|
6
|
+
* The space ID is deterministically derived from the caller's address and nonce.
|
|
7
|
+
*
|
|
8
|
+
* @returns Encoded calldata for the transaction
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```ts
|
|
12
|
+
* import { getRegisterSpaceCalldata, TESTNET } from '@graphprotocol/grc-20';
|
|
13
|
+
* import { createWalletClient, http } from 'viem';
|
|
14
|
+
*
|
|
15
|
+
* const calldata = getRegisterSpaceCalldata();
|
|
16
|
+
*
|
|
17
|
+
* // Using viem
|
|
18
|
+
* const hash = await walletClient.sendTransaction({
|
|
19
|
+
* to: TESTNET.SPACE_REGISTRY_ADDRESS,
|
|
20
|
+
* data: calldata,
|
|
21
|
+
* });
|
|
22
|
+
*
|
|
23
|
+
* // Using wagmi
|
|
24
|
+
* const { sendTransaction } = useSendTransaction();
|
|
25
|
+
* sendTransaction({
|
|
26
|
+
* to: TESTNET.SPACE_REGISTRY_ADDRESS,
|
|
27
|
+
* data: calldata,
|
|
28
|
+
* });
|
|
29
|
+
* ```
|
|
30
|
+
*/
|
|
31
|
+
export declare function getRegisterSpaceCalldata(): `0x${string}`;
|
|
32
|
+
//# sourceMappingURL=get-register-space-calldata.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-register-space-calldata.d.ts","sourceRoot":"","sources":["../../../src/encodings/get-register-space-calldata.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,wBAAwB,IAAI,KAAK,MAAM,EAAE,CAKxD"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { encodeFunctionData } from 'viem';
|
|
2
|
+
import { SpaceRegistryAbi } from '../abis/index.js';
|
|
3
|
+
/**
|
|
4
|
+
* Get the calldata for registering a space ID.
|
|
5
|
+
*
|
|
6
|
+
* This function encodes the `registerSpaceId` function call for the Space Registry contract.
|
|
7
|
+
* It is called by a space contract to register itself with the Space Registry.
|
|
8
|
+
* The space ID is deterministically derived from the caller's address and nonce.
|
|
9
|
+
*
|
|
10
|
+
* @returns Encoded calldata for the transaction
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```ts
|
|
14
|
+
* import { getRegisterSpaceCalldata, TESTNET } from '@graphprotocol/grc-20';
|
|
15
|
+
* import { createWalletClient, http } from 'viem';
|
|
16
|
+
*
|
|
17
|
+
* const calldata = getRegisterSpaceCalldata();
|
|
18
|
+
*
|
|
19
|
+
* // Using viem
|
|
20
|
+
* const hash = await walletClient.sendTransaction({
|
|
21
|
+
* to: TESTNET.SPACE_REGISTRY_ADDRESS,
|
|
22
|
+
* data: calldata,
|
|
23
|
+
* });
|
|
24
|
+
*
|
|
25
|
+
* // Using wagmi
|
|
26
|
+
* const { sendTransaction } = useSendTransaction();
|
|
27
|
+
* sendTransaction({
|
|
28
|
+
* to: TESTNET.SPACE_REGISTRY_ADDRESS,
|
|
29
|
+
* data: calldata,
|
|
30
|
+
* });
|
|
31
|
+
* ```
|
|
32
|
+
*/
|
|
33
|
+
export function getRegisterSpaceCalldata() {
|
|
34
|
+
return encodeFunctionData({
|
|
35
|
+
abi: SpaceRegistryAbi,
|
|
36
|
+
functionName: 'registerSpaceId',
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=get-register-space-calldata.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-register-space-calldata.js","sourceRoot":"","sources":["../../../src/encodings/get-register-space-calldata.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,MAAM,CAAC;AAE1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEpD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAM,UAAU,wBAAwB;IACtC,OAAO,kBAAkB,CAAC;QACxB,GAAG,EAAE,gBAAgB;QACrB,YAAY,EAAE,iBAAiB;KAChC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-register-space-calldata.test.d.ts","sourceRoot":"","sources":["../../../src/encodings/get-register-space-calldata.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { describe, expect, it } from 'vitest';
|
|
2
|
+
import { getRegisterSpaceCalldata } from './get-register-space-calldata.js';
|
|
3
|
+
describe('getRegisterSpaceCalldata', () => {
|
|
4
|
+
it('should generate valid calldata', () => {
|
|
5
|
+
const calldata = getRegisterSpaceCalldata();
|
|
6
|
+
expect(calldata).toBeTypeOf('string');
|
|
7
|
+
expect(calldata.startsWith('0x')).toBe(true);
|
|
8
|
+
});
|
|
9
|
+
it('should return consistent calldata', () => {
|
|
10
|
+
const calldata1 = getRegisterSpaceCalldata();
|
|
11
|
+
const calldata2 = getRegisterSpaceCalldata();
|
|
12
|
+
expect(calldata1).toBe(calldata2);
|
|
13
|
+
});
|
|
14
|
+
});
|
|
15
|
+
//# sourceMappingURL=get-register-space-calldata.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-register-space-calldata.test.js","sourceRoot":"","sources":["../../../src/encodings/get-register-space-calldata.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAE9C,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAE5E,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;IACxC,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;QACxC,MAAM,QAAQ,GAAG,wBAAwB,EAAE,CAAC;QAC5C,MAAM,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QACtC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;QAC3C,MAAM,SAAS,GAAG,wBAAwB,EAAE,CAAC;QAC7C,MAAM,SAAS,GAAG,wBAAwB,EAAE,CAAC;QAC7C,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
export * from './get-accept-editor-arguments.js';
|
|
2
2
|
export * from './get-accept-subspace-arguments.js';
|
|
3
3
|
export * from './get-calldata-for-space-governance-type.js';
|
|
4
|
+
export * from './get-create-dao-space-calldata.js';
|
|
4
5
|
export * from './get-process-geo-proposal-arguments.js';
|
|
6
|
+
export * from './get-register-space-calldata.js';
|
|
5
7
|
export * from './get-remove-editor-arguments.js';
|
|
6
8
|
export * from './get-remove-subspace-arguments.js';
|
|
7
9
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/encodings/index.ts"],"names":[],"mappings":"AAAA,cAAc,kCAAkC,CAAC;AACjD,cAAc,oCAAoC,CAAC;AACnD,cAAc,6CAA6C,CAAC;AAC5D,cAAc,yCAAyC,CAAC;AACxD,cAAc,kCAAkC,CAAC;AACjD,cAAc,oCAAoC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/encodings/index.ts"],"names":[],"mappings":"AAAA,cAAc,kCAAkC,CAAC;AACjD,cAAc,oCAAoC,CAAC;AACnD,cAAc,6CAA6C,CAAC;AAC5D,cAAc,oCAAoC,CAAC;AACnD,cAAc,yCAAyC,CAAC;AACxD,cAAc,kCAAkC,CAAC;AACjD,cAAc,kCAAkC,CAAC;AACjD,cAAc,oCAAoC,CAAC"}
|