@claw-network/protocol 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (169) hide show
  1. package/dist/contracts/events.d.ts +238 -0
  2. package/dist/contracts/events.d.ts.map +1 -0
  3. package/dist/contracts/events.js +499 -0
  4. package/dist/contracts/events.js.map +1 -0
  5. package/dist/contracts/index.d.ts +5 -0
  6. package/dist/contracts/index.d.ts.map +1 -0
  7. package/dist/contracts/index.js +5 -0
  8. package/dist/contracts/index.js.map +1 -0
  9. package/dist/contracts/state.d.ts +16 -0
  10. package/dist/contracts/state.d.ts.map +1 -0
  11. package/dist/contracts/state.js +399 -0
  12. package/dist/contracts/state.js.map +1 -0
  13. package/dist/contracts/store.d.ts +19 -0
  14. package/dist/contracts/store.d.ts.map +1 -0
  15. package/dist/contracts/store.js +22 -0
  16. package/dist/contracts/store.js.map +1 -0
  17. package/dist/contracts/types.d.ts +81 -0
  18. package/dist/contracts/types.d.ts.map +1 -0
  19. package/dist/contracts/types.js +2 -0
  20. package/dist/contracts/types.js.map +1 -0
  21. package/dist/dao/events.d.ts +191 -0
  22. package/dist/dao/events.d.ts.map +1 -0
  23. package/dist/dao/events.js +294 -0
  24. package/dist/dao/events.js.map +1 -0
  25. package/dist/dao/index.d.ts +6 -0
  26. package/dist/dao/index.d.ts.map +1 -0
  27. package/dist/dao/index.js +6 -0
  28. package/dist/dao/index.js.map +1 -0
  29. package/dist/dao/state.d.ts +44 -0
  30. package/dist/dao/state.d.ts.map +1 -0
  31. package/dist/dao/state.js +373 -0
  32. package/dist/dao/state.js.map +1 -0
  33. package/dist/dao/store.d.ts +47 -0
  34. package/dist/dao/store.d.ts.map +1 -0
  35. package/dist/dao/store.js +52 -0
  36. package/dist/dao/store.js.map +1 -0
  37. package/dist/dao/types.d.ts +149 -0
  38. package/dist/dao/types.d.ts.map +1 -0
  39. package/dist/dao/types.js +95 -0
  40. package/dist/dao/types.js.map +1 -0
  41. package/dist/dao/voting.d.ts +56 -0
  42. package/dist/dao/voting.d.ts.map +1 -0
  43. package/dist/dao/voting.js +129 -0
  44. package/dist/dao/voting.js.map +1 -0
  45. package/dist/identity/document.d.ts +35 -0
  46. package/dist/identity/document.d.ts.map +1 -0
  47. package/dist/identity/document.js +84 -0
  48. package/dist/identity/document.js.map +1 -0
  49. package/dist/identity/events.d.ts +96 -0
  50. package/dist/identity/events.d.ts.map +1 -0
  51. package/dist/identity/events.js +165 -0
  52. package/dist/identity/events.js.map +1 -0
  53. package/dist/identity/index.d.ts +4 -0
  54. package/dist/identity/index.d.ts.map +1 -0
  55. package/dist/identity/index.js +4 -0
  56. package/dist/identity/index.js.map +1 -0
  57. package/dist/identity/resolver.d.ts +10 -0
  58. package/dist/identity/resolver.d.ts.map +1 -0
  59. package/dist/identity/resolver.js +10 -0
  60. package/dist/identity/resolver.js.map +1 -0
  61. package/dist/index.d.ts +8 -0
  62. package/dist/index.d.ts.map +1 -0
  63. package/dist/index.js +8 -0
  64. package/dist/index.js.map +1 -0
  65. package/dist/markets/broadcast.d.ts +5 -0
  66. package/dist/markets/broadcast.d.ts.map +1 -0
  67. package/dist/markets/broadcast.js +9 -0
  68. package/dist/markets/broadcast.js.map +1 -0
  69. package/dist/markets/capability.d.ts +129 -0
  70. package/dist/markets/capability.d.ts.map +1 -0
  71. package/dist/markets/capability.js +262 -0
  72. package/dist/markets/capability.js.map +1 -0
  73. package/dist/markets/events.d.ts +448 -0
  74. package/dist/markets/events.d.ts.map +1 -0
  75. package/dist/markets/events.js +1074 -0
  76. package/dist/markets/events.js.map +1 -0
  77. package/dist/markets/index.d.ts +12 -0
  78. package/dist/markets/index.d.ts.map +1 -0
  79. package/dist/markets/index.js +12 -0
  80. package/dist/markets/index.js.map +1 -0
  81. package/dist/markets/info-flow.d.ts +144 -0
  82. package/dist/markets/info-flow.d.ts.map +1 -0
  83. package/dist/markets/info-flow.js +257 -0
  84. package/dist/markets/info-flow.js.map +1 -0
  85. package/dist/markets/info-store.d.ts +80 -0
  86. package/dist/markets/info-store.d.ts.map +1 -0
  87. package/dist/markets/info-store.js +384 -0
  88. package/dist/markets/info-store.js.map +1 -0
  89. package/dist/markets/info.d.ts +118 -0
  90. package/dist/markets/info.d.ts.map +1 -0
  91. package/dist/markets/info.js +123 -0
  92. package/dist/markets/info.js.map +1 -0
  93. package/dist/markets/search.d.ts +70 -0
  94. package/dist/markets/search.d.ts.map +1 -0
  95. package/dist/markets/search.js +659 -0
  96. package/dist/markets/search.js.map +1 -0
  97. package/dist/markets/state.d.ts +30 -0
  98. package/dist/markets/state.d.ts.map +1 -0
  99. package/dist/markets/state.js +610 -0
  100. package/dist/markets/state.js.map +1 -0
  101. package/dist/markets/store.d.ts +43 -0
  102. package/dist/markets/store.d.ts.map +1 -0
  103. package/dist/markets/store.js +460 -0
  104. package/dist/markets/store.js.map +1 -0
  105. package/dist/markets/task.d.ts +96 -0
  106. package/dist/markets/task.d.ts.map +1 -0
  107. package/dist/markets/task.js +286 -0
  108. package/dist/markets/task.js.map +1 -0
  109. package/dist/markets/types.d.ts +340 -0
  110. package/dist/markets/types.d.ts.map +1 -0
  111. package/dist/markets/types.js +88 -0
  112. package/dist/markets/types.js.map +1 -0
  113. package/dist/p2p/codec.d.ts +42 -0
  114. package/dist/p2p/codec.d.ts.map +1 -0
  115. package/dist/p2p/codec.js +187 -0
  116. package/dist/p2p/codec.js.map +1 -0
  117. package/dist/p2p/flatbuffers.d.ts +57 -0
  118. package/dist/p2p/flatbuffers.d.ts.map +1 -0
  119. package/dist/p2p/flatbuffers.js +418 -0
  120. package/dist/p2p/flatbuffers.js.map +1 -0
  121. package/dist/p2p/index.d.ts +3 -0
  122. package/dist/p2p/index.d.ts.map +1 -0
  123. package/dist/p2p/index.js +3 -0
  124. package/dist/p2p/index.js.map +1 -0
  125. package/dist/p2p/types.d.ts +79 -0
  126. package/dist/p2p/types.d.ts.map +1 -0
  127. package/dist/p2p/types.js +15 -0
  128. package/dist/p2p/types.js.map +1 -0
  129. package/dist/reputation/anti-cheat.d.ts +24 -0
  130. package/dist/reputation/anti-cheat.d.ts.map +1 -0
  131. package/dist/reputation/anti-cheat.js +109 -0
  132. package/dist/reputation/anti-cheat.js.map +1 -0
  133. package/dist/reputation/events.d.ts +29 -0
  134. package/dist/reputation/events.d.ts.map +1 -0
  135. package/dist/reputation/events.js +122 -0
  136. package/dist/reputation/events.js.map +1 -0
  137. package/dist/reputation/index.d.ts +6 -0
  138. package/dist/reputation/index.d.ts.map +1 -0
  139. package/dist/reputation/index.js +6 -0
  140. package/dist/reputation/index.js.map +1 -0
  141. package/dist/reputation/scoring.d.ts +40 -0
  142. package/dist/reputation/scoring.d.ts.map +1 -0
  143. package/dist/reputation/scoring.js +114 -0
  144. package/dist/reputation/scoring.js.map +1 -0
  145. package/dist/reputation/state.d.ts +48 -0
  146. package/dist/reputation/state.d.ts.map +1 -0
  147. package/dist/reputation/state.js +135 -0
  148. package/dist/reputation/state.js.map +1 -0
  149. package/dist/reputation/store.d.ts +23 -0
  150. package/dist/reputation/store.d.ts.map +1 -0
  151. package/dist/reputation/store.js +33 -0
  152. package/dist/reputation/store.js.map +1 -0
  153. package/dist/wallet/events.d.ts +121 -0
  154. package/dist/wallet/events.d.ts.map +1 -0
  155. package/dist/wallet/events.js +175 -0
  156. package/dist/wallet/events.js.map +1 -0
  157. package/dist/wallet/finality.d.ts +4 -0
  158. package/dist/wallet/finality.d.ts.map +1 -0
  159. package/dist/wallet/finality.js +32 -0
  160. package/dist/wallet/finality.js.map +1 -0
  161. package/dist/wallet/index.d.ts +4 -0
  162. package/dist/wallet/index.d.ts.map +1 -0
  163. package/dist/wallet/index.js +4 -0
  164. package/dist/wallet/index.js.map +1 -0
  165. package/dist/wallet/state.d.ts +32 -0
  166. package/dist/wallet/state.d.ts.map +1 -0
  167. package/dist/wallet/state.js +170 -0
  168. package/dist/wallet/state.js.map +1 -0
  169. package/package.json +42 -0
@@ -0,0 +1,191 @@
1
+ /**
2
+ * DAO Governance — Event Envelopes
3
+ *
4
+ * Event types:
5
+ * dao.proposal.create — Create a new proposal
6
+ * dao.proposal.advance — Advance proposal status
7
+ * dao.vote.cast — Cast a vote
8
+ * dao.delegate.set — Set delegation
9
+ * dao.delegate.revoke — Revoke delegation
10
+ * dao.timelock.queue — Queue action in timelock
11
+ * dao.timelock.execute — Execute timelocked action
12
+ * dao.timelock.cancel — Cancel timelocked action
13
+ * dao.treasury.deposit — Deposit into treasury
14
+ * dao.treasury.spend — Spend from treasury
15
+ */
16
+ import { EventEnvelope } from '@claw-network/core/protocol';
17
+ import type { ProposalAction, ProposalType, VoteOption, DelegationScope } from './types.js';
18
+ export interface DaoProposalCreatePayload extends Record<string, unknown> {
19
+ proposalId: string;
20
+ type: ProposalType;
21
+ title: string;
22
+ description: string;
23
+ discussionUrl?: string;
24
+ actions: ProposalAction[];
25
+ discussionPeriod: number;
26
+ votingPeriod: number;
27
+ timelockDelay: number;
28
+ }
29
+ export interface DaoProposalCreateEventParams {
30
+ issuer: string;
31
+ privateKey: Uint8Array;
32
+ proposalId: string;
33
+ proposalType: ProposalType;
34
+ title: string;
35
+ description: string;
36
+ discussionUrl?: string;
37
+ actions: ProposalAction[];
38
+ discussionPeriod: number;
39
+ votingPeriod: number;
40
+ timelockDelay: number;
41
+ ts: number;
42
+ nonce: number;
43
+ prev?: string;
44
+ }
45
+ export declare function parseDaoProposalCreatePayload(raw: Record<string, unknown>): DaoProposalCreatePayload;
46
+ export declare function createDaoProposalCreateEnvelope(params: DaoProposalCreateEventParams): Promise<EventEnvelope>;
47
+ export interface DaoProposalAdvancePayload extends Record<string, unknown> {
48
+ proposalId: string;
49
+ newStatus: string;
50
+ resourcePrev: string;
51
+ }
52
+ export interface DaoProposalAdvanceEventParams {
53
+ issuer: string;
54
+ privateKey: Uint8Array;
55
+ proposalId: string;
56
+ newStatus: string;
57
+ resourcePrev: string;
58
+ ts: number;
59
+ nonce: number;
60
+ prev?: string;
61
+ }
62
+ export declare function parseDaoProposalAdvancePayload(raw: Record<string, unknown>): DaoProposalAdvancePayload;
63
+ export declare function createDaoProposalAdvanceEnvelope(params: DaoProposalAdvanceEventParams): Promise<EventEnvelope>;
64
+ export interface DaoVoteCastPayload extends Record<string, unknown> {
65
+ proposalId: string;
66
+ option: VoteOption;
67
+ power: string;
68
+ reason?: string;
69
+ }
70
+ export interface DaoVoteCastEventParams {
71
+ issuer: string;
72
+ privateKey: Uint8Array;
73
+ proposalId: string;
74
+ option: VoteOption;
75
+ power: string | number | bigint;
76
+ reason?: string;
77
+ ts: number;
78
+ nonce: number;
79
+ prev?: string;
80
+ }
81
+ export declare function parseDaoVoteCastPayload(raw: Record<string, unknown>): DaoVoteCastPayload;
82
+ export declare function createDaoVoteCastEnvelope(params: DaoVoteCastEventParams): Promise<EventEnvelope>;
83
+ export interface DaoDelegateSetPayload extends Record<string, unknown> {
84
+ delegate: string;
85
+ scope: DelegationScope;
86
+ percentage: number;
87
+ expiresAt?: number;
88
+ }
89
+ export interface DaoDelegateSetEventParams {
90
+ issuer: string;
91
+ privateKey: Uint8Array;
92
+ delegate: string;
93
+ scope: DelegationScope;
94
+ percentage: number;
95
+ expiresAt?: number;
96
+ ts: number;
97
+ nonce: number;
98
+ prev?: string;
99
+ }
100
+ export declare function parseDaoDelegateSetPayload(raw: Record<string, unknown>): DaoDelegateSetPayload;
101
+ export declare function createDaoDelegateSetEnvelope(params: DaoDelegateSetEventParams): Promise<EventEnvelope>;
102
+ export interface DaoDelegateRevokePayload extends Record<string, unknown> {
103
+ delegate: string;
104
+ }
105
+ export interface DaoDelegateRevokeEventParams {
106
+ issuer: string;
107
+ privateKey: Uint8Array;
108
+ delegate: string;
109
+ ts: number;
110
+ nonce: number;
111
+ prev?: string;
112
+ }
113
+ export declare function parseDaoDelegateRevokePayload(raw: Record<string, unknown>): DaoDelegateRevokePayload;
114
+ export declare function createDaoDelegateRevokeEnvelope(params: DaoDelegateRevokeEventParams): Promise<EventEnvelope>;
115
+ export interface DaoTimelockQueuePayload extends Record<string, unknown> {
116
+ actionId: string;
117
+ proposalId: string;
118
+ action: ProposalAction;
119
+ executeAfter: number;
120
+ }
121
+ export interface DaoTimelockQueueEventParams {
122
+ issuer: string;
123
+ privateKey: Uint8Array;
124
+ actionId: string;
125
+ proposalId: string;
126
+ action: ProposalAction;
127
+ executeAfter: number;
128
+ ts: number;
129
+ nonce: number;
130
+ prev?: string;
131
+ }
132
+ export declare function createDaoTimelockQueueEnvelope(params: DaoTimelockQueueEventParams): Promise<EventEnvelope>;
133
+ export interface DaoTimelockExecutePayload extends Record<string, unknown> {
134
+ actionId: string;
135
+ }
136
+ export interface DaoTimelockExecuteEventParams {
137
+ issuer: string;
138
+ privateKey: Uint8Array;
139
+ actionId: string;
140
+ ts: number;
141
+ nonce: number;
142
+ prev?: string;
143
+ }
144
+ export declare function createDaoTimelockExecuteEnvelope(params: DaoTimelockExecuteEventParams): Promise<EventEnvelope>;
145
+ export interface DaoTimelockCancelPayload extends Record<string, unknown> {
146
+ actionId: string;
147
+ reason: string;
148
+ }
149
+ export interface DaoTimelockCancelEventParams {
150
+ issuer: string;
151
+ privateKey: Uint8Array;
152
+ actionId: string;
153
+ reason: string;
154
+ ts: number;
155
+ nonce: number;
156
+ prev?: string;
157
+ }
158
+ export declare function createDaoTimelockCancelEnvelope(params: DaoTimelockCancelEventParams): Promise<EventEnvelope>;
159
+ export interface DaoTreasuryDepositPayload extends Record<string, unknown> {
160
+ amount: string;
161
+ source: string;
162
+ }
163
+ export interface DaoTreasuryDepositEventParams {
164
+ issuer: string;
165
+ privateKey: Uint8Array;
166
+ amount: string | number | bigint;
167
+ source: string;
168
+ ts: number;
169
+ nonce: number;
170
+ prev?: string;
171
+ }
172
+ export declare function createDaoTreasuryDepositEnvelope(params: DaoTreasuryDepositEventParams): Promise<EventEnvelope>;
173
+ export interface DaoTreasurySpendPayload extends Record<string, unknown> {
174
+ proposalId: string;
175
+ recipient: string;
176
+ amount: string;
177
+ purpose: string;
178
+ }
179
+ export interface DaoTreasurySpendEventParams {
180
+ issuer: string;
181
+ privateKey: Uint8Array;
182
+ proposalId: string;
183
+ recipient: string;
184
+ amount: string | number | bigint;
185
+ purpose: string;
186
+ ts: number;
187
+ nonce: number;
188
+ prev?: string;
189
+ }
190
+ export declare function createDaoTreasurySpendEnvelope(params: DaoTreasurySpendEventParams): Promise<EventEnvelope>;
191
+ //# sourceMappingURL=events.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/dao/events.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,294 @@
1
+ /**
2
+ * DAO Governance — Event Envelopes
3
+ *
4
+ * Event types:
5
+ * dao.proposal.create — Create a new proposal
6
+ * dao.proposal.advance — Advance proposal status
7
+ * dao.vote.cast — Cast a vote
8
+ * dao.delegate.set — Set delegation
9
+ * dao.delegate.revoke — Revoke delegation
10
+ * dao.timelock.queue — Queue action in timelock
11
+ * dao.timelock.execute — Execute timelocked action
12
+ * dao.timelock.cancel — Cancel timelocked action
13
+ * dao.treasury.deposit — Deposit into treasury
14
+ * dao.treasury.spend — Spend from treasury
15
+ */
16
+ import { multibaseEncode } from '@claw-network/core/encoding';
17
+ import { publicKeyFromDid } from '@claw-network/core/identity';
18
+ import { eventHashHex, signEvent } from '@claw-network/core/protocol';
19
+ import { isProposalType, isVoteOption } from './types.js';
20
+ // ---------------------------------------------------------------------------
21
+ // Helpers
22
+ // ---------------------------------------------------------------------------
23
+ function requireNonEmpty(value, field) {
24
+ if (!value || value.trim().length === 0) {
25
+ throw new Error(`${field} is required`);
26
+ }
27
+ }
28
+ function assertValidDid(value, field) {
29
+ requireNonEmpty(value, field);
30
+ try {
31
+ publicKeyFromDid(value);
32
+ }
33
+ catch {
34
+ throw new Error(`${field} must be a valid did:claw identifier`);
35
+ }
36
+ }
37
+ function normalizeAmount(value, field) {
38
+ let parsed;
39
+ if (typeof value === 'bigint') {
40
+ parsed = value;
41
+ }
42
+ else if (typeof value === 'number') {
43
+ if (!Number.isFinite(value) || !Number.isInteger(value)) {
44
+ throw new Error(`${field} must be an integer`);
45
+ }
46
+ parsed = BigInt(value);
47
+ }
48
+ else {
49
+ requireNonEmpty(value, field);
50
+ parsed = BigInt(value);
51
+ }
52
+ if (parsed < 0n) {
53
+ throw new Error(`${field} must be >= 0`);
54
+ }
55
+ return parsed.toString();
56
+ }
57
+ function buildEnvelope(type, issuer, publicKey, payload, ts, nonce, prev) {
58
+ return {
59
+ v: 1,
60
+ type,
61
+ issuer,
62
+ ts,
63
+ nonce,
64
+ payload,
65
+ prev,
66
+ sig: '',
67
+ pub: multibaseEncode(publicKey),
68
+ hash: '',
69
+ };
70
+ }
71
+ export function parseDaoProposalCreatePayload(raw) {
72
+ const proposalId = String(raw.proposalId ?? '');
73
+ requireNonEmpty(proposalId, 'proposalId');
74
+ const typeValue = String(raw.type ?? '');
75
+ if (!isProposalType(typeValue)) {
76
+ throw new Error('type must be a valid proposal type');
77
+ }
78
+ const title = String(raw.title ?? '');
79
+ requireNonEmpty(title, 'title');
80
+ const description = String(raw.description ?? '');
81
+ requireNonEmpty(description, 'description');
82
+ const discussionUrl = raw.discussionUrl !== undefined && raw.discussionUrl !== null
83
+ ? String(raw.discussionUrl)
84
+ : undefined;
85
+ const actions = raw.actions;
86
+ if (!Array.isArray(actions) || actions.length === 0) {
87
+ throw new Error('actions must be a non-empty array');
88
+ }
89
+ const discussionPeriod = Number(raw.discussionPeriod ?? 0);
90
+ const votingPeriod = Number(raw.votingPeriod ?? 0);
91
+ const timelockDelay = Number(raw.timelockDelay ?? 0);
92
+ if (votingPeriod <= 0 && typeValue !== 'emergency' && typeValue !== 'signal') {
93
+ throw new Error('votingPeriod must be > 0');
94
+ }
95
+ return {
96
+ proposalId,
97
+ type: typeValue,
98
+ title,
99
+ description,
100
+ discussionUrl,
101
+ actions,
102
+ discussionPeriod,
103
+ votingPeriod,
104
+ timelockDelay,
105
+ };
106
+ }
107
+ export async function createDaoProposalCreateEnvelope(params) {
108
+ assertValidDid(params.issuer, 'issuer');
109
+ const publicKey = publicKeyFromDid(params.issuer);
110
+ const payload = parseDaoProposalCreatePayload({
111
+ proposalId: params.proposalId,
112
+ type: params.proposalType,
113
+ title: params.title,
114
+ description: params.description,
115
+ discussionUrl: params.discussionUrl,
116
+ actions: params.actions,
117
+ discussionPeriod: params.discussionPeriod,
118
+ votingPeriod: params.votingPeriod,
119
+ timelockDelay: params.timelockDelay,
120
+ });
121
+ const base = buildEnvelope('dao.proposal.create', params.issuer, publicKey, payload, params.ts, params.nonce, params.prev);
122
+ const hash = eventHashHex(base);
123
+ const sig = await signEvent(base, params.privateKey);
124
+ return { ...base, hash, sig };
125
+ }
126
+ export function parseDaoProposalAdvancePayload(raw) {
127
+ const proposalId = String(raw.proposalId ?? '');
128
+ requireNonEmpty(proposalId, 'proposalId');
129
+ const newStatus = String(raw.newStatus ?? '');
130
+ requireNonEmpty(newStatus, 'newStatus');
131
+ const resourcePrev = String(raw.resourcePrev ?? '');
132
+ requireNonEmpty(resourcePrev, 'resourcePrev');
133
+ return { proposalId, newStatus, resourcePrev };
134
+ }
135
+ export async function createDaoProposalAdvanceEnvelope(params) {
136
+ assertValidDid(params.issuer, 'issuer');
137
+ const publicKey = publicKeyFromDid(params.issuer);
138
+ const payload = parseDaoProposalAdvancePayload({
139
+ proposalId: params.proposalId,
140
+ newStatus: params.newStatus,
141
+ resourcePrev: params.resourcePrev,
142
+ });
143
+ const base = buildEnvelope('dao.proposal.advance', params.issuer, publicKey, payload, params.ts, params.nonce, params.prev);
144
+ const hash = eventHashHex(base);
145
+ const sig = await signEvent(base, params.privateKey);
146
+ return { ...base, hash, sig };
147
+ }
148
+ export function parseDaoVoteCastPayload(raw) {
149
+ const proposalId = String(raw.proposalId ?? '');
150
+ requireNonEmpty(proposalId, 'proposalId');
151
+ const optionValue = String(raw.option ?? '');
152
+ if (!isVoteOption(optionValue)) {
153
+ throw new Error('option must be for, against, or abstain');
154
+ }
155
+ const power = normalizeAmount(raw.power, 'power');
156
+ const reason = raw.reason !== undefined && raw.reason !== null
157
+ ? String(raw.reason).trim() || undefined
158
+ : undefined;
159
+ return { proposalId, option: optionValue, power, reason };
160
+ }
161
+ export async function createDaoVoteCastEnvelope(params) {
162
+ assertValidDid(params.issuer, 'issuer');
163
+ const publicKey = publicKeyFromDid(params.issuer);
164
+ const payload = parseDaoVoteCastPayload({
165
+ proposalId: params.proposalId,
166
+ option: params.option,
167
+ power: normalizeAmount(params.power, 'power'),
168
+ reason: params.reason,
169
+ });
170
+ const base = buildEnvelope('dao.vote.cast', params.issuer, publicKey, payload, params.ts, params.nonce, params.prev);
171
+ const hash = eventHashHex(base);
172
+ const sig = await signEvent(base, params.privateKey);
173
+ return { ...base, hash, sig };
174
+ }
175
+ export function parseDaoDelegateSetPayload(raw) {
176
+ const delegate = String(raw.delegate ?? '');
177
+ assertValidDid(delegate, 'delegate');
178
+ const scope = (raw.scope ?? { all: true });
179
+ const percentage = Number(raw.percentage ?? 100);
180
+ if (!Number.isFinite(percentage) || percentage < 0 || percentage > 100) {
181
+ throw new Error('percentage must be between 0 and 100');
182
+ }
183
+ const expiresAt = typeof raw.expiresAt === 'number' && Number.isFinite(raw.expiresAt)
184
+ ? raw.expiresAt
185
+ : undefined;
186
+ return { delegate, scope, percentage, expiresAt };
187
+ }
188
+ export async function createDaoDelegateSetEnvelope(params) {
189
+ assertValidDid(params.issuer, 'issuer');
190
+ const publicKey = publicKeyFromDid(params.issuer);
191
+ const payload = parseDaoDelegateSetPayload({
192
+ delegate: params.delegate,
193
+ scope: params.scope,
194
+ percentage: params.percentage,
195
+ expiresAt: params.expiresAt,
196
+ });
197
+ const base = buildEnvelope('dao.delegate.set', params.issuer, publicKey, payload, params.ts, params.nonce, params.prev);
198
+ const hash = eventHashHex(base);
199
+ const sig = await signEvent(base, params.privateKey);
200
+ return { ...base, hash, sig };
201
+ }
202
+ export function parseDaoDelegateRevokePayload(raw) {
203
+ const delegate = String(raw.delegate ?? '');
204
+ assertValidDid(delegate, 'delegate');
205
+ return { delegate };
206
+ }
207
+ export async function createDaoDelegateRevokeEnvelope(params) {
208
+ assertValidDid(params.issuer, 'issuer');
209
+ const publicKey = publicKeyFromDid(params.issuer);
210
+ const payload = parseDaoDelegateRevokePayload({ delegate: params.delegate });
211
+ const base = buildEnvelope('dao.delegate.revoke', params.issuer, publicKey, payload, params.ts, params.nonce, params.prev);
212
+ const hash = eventHashHex(base);
213
+ const sig = await signEvent(base, params.privateKey);
214
+ return { ...base, hash, sig };
215
+ }
216
+ export async function createDaoTimelockQueueEnvelope(params) {
217
+ assertValidDid(params.issuer, 'issuer');
218
+ const publicKey = publicKeyFromDid(params.issuer);
219
+ requireNonEmpty(params.actionId, 'actionId');
220
+ requireNonEmpty(params.proposalId, 'proposalId');
221
+ const payload = {
222
+ actionId: params.actionId,
223
+ proposalId: params.proposalId,
224
+ action: params.action,
225
+ executeAfter: params.executeAfter,
226
+ };
227
+ const base = buildEnvelope('dao.timelock.queue', params.issuer, publicKey, payload, params.ts, params.nonce, params.prev);
228
+ const hash = eventHashHex(base);
229
+ const sig = await signEvent(base, params.privateKey);
230
+ return { ...base, hash, sig };
231
+ }
232
+ export async function createDaoTimelockExecuteEnvelope(params) {
233
+ assertValidDid(params.issuer, 'issuer');
234
+ requireNonEmpty(params.actionId, 'actionId');
235
+ const publicKey = publicKeyFromDid(params.issuer);
236
+ const payload = { actionId: params.actionId };
237
+ const base = buildEnvelope('dao.timelock.execute', params.issuer, publicKey, payload, params.ts, params.nonce, params.prev);
238
+ const hash = eventHashHex(base);
239
+ const sig = await signEvent(base, params.privateKey);
240
+ return { ...base, hash, sig };
241
+ }
242
+ export async function createDaoTimelockCancelEnvelope(params) {
243
+ assertValidDid(params.issuer, 'issuer');
244
+ requireNonEmpty(params.actionId, 'actionId');
245
+ requireNonEmpty(params.reason, 'reason');
246
+ const publicKey = publicKeyFromDid(params.issuer);
247
+ const payload = {
248
+ actionId: params.actionId,
249
+ reason: params.reason,
250
+ };
251
+ const base = buildEnvelope('dao.timelock.cancel', params.issuer, publicKey, payload, params.ts, params.nonce, params.prev);
252
+ const hash = eventHashHex(base);
253
+ const sig = await signEvent(base, params.privateKey);
254
+ return { ...base, hash, sig };
255
+ }
256
+ export async function createDaoTreasuryDepositEnvelope(params) {
257
+ assertValidDid(params.issuer, 'issuer');
258
+ const amount = normalizeAmount(params.amount, 'amount');
259
+ if (BigInt(amount) <= 0n) {
260
+ throw new Error('amount must be > 0');
261
+ }
262
+ requireNonEmpty(params.source, 'source');
263
+ const publicKey = publicKeyFromDid(params.issuer);
264
+ const payload = {
265
+ amount,
266
+ source: params.source,
267
+ };
268
+ const base = buildEnvelope('dao.treasury.deposit', params.issuer, publicKey, payload, params.ts, params.nonce, params.prev);
269
+ const hash = eventHashHex(base);
270
+ const sig = await signEvent(base, params.privateKey);
271
+ return { ...base, hash, sig };
272
+ }
273
+ export async function createDaoTreasurySpendEnvelope(params) {
274
+ assertValidDid(params.issuer, 'issuer');
275
+ requireNonEmpty(params.proposalId, 'proposalId');
276
+ assertValidDid(params.recipient, 'recipient');
277
+ requireNonEmpty(params.purpose, 'purpose');
278
+ const amount = normalizeAmount(params.amount, 'amount');
279
+ if (BigInt(amount) <= 0n) {
280
+ throw new Error('amount must be > 0');
281
+ }
282
+ const publicKey = publicKeyFromDid(params.issuer);
283
+ const payload = {
284
+ proposalId: params.proposalId,
285
+ recipient: params.recipient,
286
+ amount,
287
+ purpose: params.purpose,
288
+ };
289
+ const base = buildEnvelope('dao.treasury.spend', params.issuer, publicKey, payload, params.ts, params.nonce, params.prev);
290
+ const hash = eventHashHex(base);
291
+ const sig = await signEvent(base, params.privateKey);
292
+ return { ...base, hash, sig };
293
+ }
294
+ //# sourceMappingURL=events.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/dao/events.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ export * from './types.js';
2
+ export * from './voting.js';
3
+ export * from './events.js';
4
+ export * from './state.js';
5
+ export * from './store.js';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/dao/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC"}
@@ -0,0 +1,6 @@
1
+ export * from './types.js';
2
+ export * from './voting.js';
3
+ export * from './events.js';
4
+ export * from './state.js';
5
+ export * from './store.js';
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/dao/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC"}
@@ -0,0 +1,44 @@
1
+ /**
2
+ * DAO Governance — State & Reducer
3
+ *
4
+ * Pure, deterministic state transitions for DAO events.
5
+ */
6
+ import { EventEnvelope } from '@claw-network/core/protocol';
7
+ import type { Proposal, ProposalStatus, Vote, Delegation, TimelockEntry, Treasury } from './types.js';
8
+ export interface DaoHistoryEntry {
9
+ hash: string;
10
+ type: string;
11
+ ts: number;
12
+ payload: Record<string, unknown>;
13
+ }
14
+ export interface DaoState {
15
+ proposals: Record<string, Proposal>;
16
+ proposalEvents: Record<string, string>;
17
+ votes: Record<string, Vote[]>;
18
+ voterIndex: Record<string, Set<string>>;
19
+ delegations: Delegation[];
20
+ delegationsByDelegator: Record<string, Delegation[]>;
21
+ delegationsByDelegate: Record<string, Delegation[]>;
22
+ timelock: Record<string, TimelockEntry>;
23
+ treasury: Treasury;
24
+ history: DaoHistoryEntry[];
25
+ }
26
+ export declare function createDaoState(): DaoState;
27
+ export declare function applyDaoEvent(state: DaoState, envelope: EventEnvelope): DaoState;
28
+ export declare function getProposal(state: DaoState, proposalId: string): Proposal | undefined;
29
+ export declare function listProposals(state: DaoState, status?: ProposalStatus): Proposal[];
30
+ export declare function getProposalVotes(state: DaoState, proposalId: string): Vote[];
31
+ export declare function getDelegationsFrom(state: DaoState, delegator: string): Delegation[];
32
+ export declare function getDelegationsTo(state: DaoState, delegate: string): Delegation[];
33
+ export declare function getTimelockEntry(state: DaoState, actionId: string): TimelockEntry | undefined;
34
+ export declare function listTimelockEntries(state: DaoState): TimelockEntry[];
35
+ export declare function getTreasury(state: DaoState): Treasury;
36
+ /**
37
+ * Check if a proposal has passed (based on votes vs thresholds).
38
+ */
39
+ export declare function checkProposalResult(state: DaoState, proposalId: string, totalSupply: string): {
40
+ passed: boolean;
41
+ forPct: number;
42
+ quorumMet: boolean;
43
+ };
44
+ //# sourceMappingURL=state.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../src/dao/state.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,aAAa,EAAgB,MAAM,6BAA6B,CAAC;AAC1E,OAAO,KAAK,EACV,QAAQ,EACR,cAAc,EAGd,IAAI,EACJ,UAAU,EACV,aAAa,EACb,QAAQ,EAET,MAAM,YAAY,CAAC;AAmBpB,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,QAAQ;IACvB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACpC,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9B,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;IACxC,WAAW,EAAE,UAAU,EAAE,CAAC;IAC1B,sBAAsB,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;IACrD,qBAAqB,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;IACpD,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IACxC,QAAQ,EAAE,QAAQ,CAAC;IACnB,OAAO,EAAE,eAAe,EAAE,CAAC;CAC5B;AAED,wBAAgB,cAAc,IAAI,QAAQ,CA6BzC;AA8CD,wBAAgB,aAAa,CAC3B,KAAK,EAAE,QAAQ,EACf,QAAQ,EAAE,aAAa,GACtB,QAAQ,CAoDV;AAyRD,wBAAgB,WAAW,CAAC,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,CAErF;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,cAAc,GAAG,QAAQ,EAAE,CAIlF;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI,EAAE,CAE5E;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,GAAG,UAAU,EAAE,CAEnF;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,GAAG,UAAU,EAAE,CAEhF;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS,CAE7F;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,QAAQ,GAAG,aAAa,EAAE,CAEpE;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,QAAQ,GAAG,QAAQ,CAErD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,QAAQ,EACf,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,GAClB;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAAE,CAuBzD"}