@andrewkimjoseph/celina-sdk 0.18.0 → 0.20.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/build/abis/accounts.d.ts +12 -0
- package/build/abis/accounts.js +7 -0
- package/build/abis/accounts.js.map +1 -1
- package/build/abis/governance.d.ts +93 -0
- package/build/abis/governance.js +65 -0
- package/build/abis/governance.js.map +1 -1
- package/build/analytics/mcp-tool-events.js +1 -0
- package/build/analytics/mcp-tool-events.js.map +1 -1
- package/build/analytics/wallet-extract.js +1 -0
- package/build/analytics/wallet-extract.js.map +1 -1
- package/build/services/governance.service.d.ts +45 -0
- package/build/services/governance.service.js +227 -0
- package/build/services/governance.service.js.map +1 -1
- package/build/src/abis/accounts.d.ts +12 -0
- package/build/src/abis/accounts.js +7 -0
- package/build/src/abis/accounts.js.map +1 -1
- package/build/src/abis/governance.d.ts +93 -0
- package/build/src/abis/governance.js +65 -0
- package/build/src/abis/governance.js.map +1 -1
- package/build/src/analytics/mcp-tool-events.js +1 -0
- package/build/src/analytics/mcp-tool-events.js.map +1 -1
- package/build/src/analytics/wallet-extract.js +1 -0
- package/build/src/analytics/wallet-extract.js.map +1 -1
- package/build/src/services/governance.service.d.ts +45 -0
- package/build/src/services/governance.service.js +227 -0
- package/build/src/services/governance.service.js.map +1 -1
- package/build/src/tools/domains/governance.js +116 -0
- package/build/src/tools/domains/governance.js.map +1 -1
- package/build/src/tools/types.d.ts +3 -0
- package/build/src/tools/website-sync.js +7 -0
- package/build/src/tools/website-sync.js.map +1 -1
- package/build/src/utils/governance-queue.d.ts +14 -0
- package/build/src/utils/governance-queue.js +49 -0
- package/build/src/utils/governance-queue.js.map +1 -0
- package/build/tests/catalog/domains/chain-ext.js +79 -0
- package/build/tests/catalog/domains/chain-ext.js.map +1 -1
- package/build/tools/domains/governance.js +116 -0
- package/build/tools/domains/governance.js.map +1 -1
- package/build/tools/types.d.ts +3 -0
- package/build/tools/website-sync.js +7 -0
- package/build/tools/website-sync.js.map +1 -1
- package/build/utils/governance-queue.d.ts +14 -0
- package/build/utils/governance-queue.js +49 -0
- package/build/utils/governance-queue.js.map +1 -0
- package/package.json +1 -1
package/build/abis/accounts.d.ts
CHANGED
|
@@ -22,6 +22,18 @@ export declare const accountsAbi: readonly [{
|
|
|
22
22
|
readonly type: "bool";
|
|
23
23
|
}];
|
|
24
24
|
readonly stateMutability: "view";
|
|
25
|
+
}, {
|
|
26
|
+
readonly type: "function";
|
|
27
|
+
readonly name: "voteSignerToAccount";
|
|
28
|
+
readonly inputs: readonly [{
|
|
29
|
+
readonly name: "signer";
|
|
30
|
+
readonly type: "address";
|
|
31
|
+
}];
|
|
32
|
+
readonly outputs: readonly [{
|
|
33
|
+
readonly name: "";
|
|
34
|
+
readonly type: "address";
|
|
35
|
+
}];
|
|
36
|
+
readonly stateMutability: "view";
|
|
25
37
|
}, {
|
|
26
38
|
readonly type: "function";
|
|
27
39
|
readonly name: "createAccount";
|
package/build/abis/accounts.js
CHANGED
|
@@ -13,6 +13,13 @@ export const accountsAbi = [
|
|
|
13
13
|
outputs: [{ name: "", type: "bool" }],
|
|
14
14
|
stateMutability: "view",
|
|
15
15
|
},
|
|
16
|
+
{
|
|
17
|
+
type: "function",
|
|
18
|
+
name: "voteSignerToAccount",
|
|
19
|
+
inputs: [{ name: "signer", type: "address" }],
|
|
20
|
+
outputs: [{ name: "", type: "address" }],
|
|
21
|
+
stateMutability: "view",
|
|
22
|
+
},
|
|
16
23
|
{
|
|
17
24
|
type: "function",
|
|
18
25
|
name: "createAccount",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accounts.js","sourceRoot":"","sources":["../../src/abis/accounts.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB;QACE,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,SAAS;QACf,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QAC9C,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;QACvC,eAAe,EAAE,MAAM;KACxB;IACD;QACE,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,WAAW;QACjB,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QAC9C,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;QACrC,eAAe,EAAE,MAAM;KACxB;IACD;QACE,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,eAAe;QACrB,MAAM,EAAE,EAAE;QACV,OAAO,EAAE,EAAE;QACX,eAAe,EAAE,YAAY;KAC9B;CACO,CAAC"}
|
|
1
|
+
{"version":3,"file":"accounts.js","sourceRoot":"","sources":["../../src/abis/accounts.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB;QACE,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,SAAS;QACf,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QAC9C,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;QACvC,eAAe,EAAE,MAAM;KACxB;IACD;QACE,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,WAAW;QACjB,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QAC9C,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;QACrC,eAAe,EAAE,MAAM;KACxB;IACD;QACE,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,qBAAqB;QAC3B,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QAC7C,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QACxC,eAAe,EAAE,MAAM;KACxB;IACD;QACE,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,eAAe;QACrB,MAAM,EAAE,EAAE;QACV,OAAO,EAAE,EAAE;QACX,eAAe,EAAE,YAAY;KAC9B;CACO,CAAC"}
|
|
@@ -91,6 +91,99 @@ export declare const governanceAbi: readonly [{
|
|
|
91
91
|
readonly type: "uint256";
|
|
92
92
|
}];
|
|
93
93
|
readonly stateMutability: "view";
|
|
94
|
+
}, {
|
|
95
|
+
readonly type: "function";
|
|
96
|
+
readonly name: "getVoteRecord";
|
|
97
|
+
readonly inputs: readonly [{
|
|
98
|
+
readonly name: "account";
|
|
99
|
+
readonly type: "address";
|
|
100
|
+
}, {
|
|
101
|
+
readonly name: "index";
|
|
102
|
+
readonly type: "uint256";
|
|
103
|
+
}];
|
|
104
|
+
readonly outputs: readonly [{
|
|
105
|
+
readonly name: "proposalId";
|
|
106
|
+
readonly type: "uint256";
|
|
107
|
+
}, {
|
|
108
|
+
readonly name: "deprecatedValue";
|
|
109
|
+
readonly type: "uint256";
|
|
110
|
+
}, {
|
|
111
|
+
readonly name: "deprecatedWeight";
|
|
112
|
+
readonly type: "uint256";
|
|
113
|
+
}, {
|
|
114
|
+
readonly name: "yesVotes";
|
|
115
|
+
readonly type: "uint256";
|
|
116
|
+
}, {
|
|
117
|
+
readonly name: "noVotes";
|
|
118
|
+
readonly type: "uint256";
|
|
119
|
+
}, {
|
|
120
|
+
readonly name: "abstainVotes";
|
|
121
|
+
readonly type: "uint256";
|
|
122
|
+
}];
|
|
123
|
+
readonly stateMutability: "view";
|
|
124
|
+
}, {
|
|
125
|
+
readonly type: "function";
|
|
126
|
+
readonly name: "getUpvoteRecord";
|
|
127
|
+
readonly inputs: readonly [{
|
|
128
|
+
readonly name: "account";
|
|
129
|
+
readonly type: "address";
|
|
130
|
+
}];
|
|
131
|
+
readonly outputs: readonly [{
|
|
132
|
+
readonly name: "proposalId";
|
|
133
|
+
readonly type: "uint256";
|
|
134
|
+
}, {
|
|
135
|
+
readonly name: "weight";
|
|
136
|
+
readonly type: "uint256";
|
|
137
|
+
}];
|
|
138
|
+
readonly stateMutability: "view";
|
|
139
|
+
}, {
|
|
140
|
+
readonly type: "function";
|
|
141
|
+
readonly name: "isDequeuedProposal";
|
|
142
|
+
readonly inputs: readonly [{
|
|
143
|
+
readonly name: "proposalId";
|
|
144
|
+
readonly type: "uint256";
|
|
145
|
+
}, {
|
|
146
|
+
readonly name: "index";
|
|
147
|
+
readonly type: "uint256";
|
|
148
|
+
}];
|
|
149
|
+
readonly outputs: readonly [{
|
|
150
|
+
readonly name: "";
|
|
151
|
+
readonly type: "bool";
|
|
152
|
+
}];
|
|
153
|
+
readonly stateMutability: "view";
|
|
154
|
+
}, {
|
|
155
|
+
readonly type: "function";
|
|
156
|
+
readonly name: "upvote";
|
|
157
|
+
readonly inputs: readonly [{
|
|
158
|
+
readonly name: "proposalId";
|
|
159
|
+
readonly type: "uint256";
|
|
160
|
+
}, {
|
|
161
|
+
readonly name: "lesser";
|
|
162
|
+
readonly type: "uint256";
|
|
163
|
+
}, {
|
|
164
|
+
readonly name: "greater";
|
|
165
|
+
readonly type: "uint256";
|
|
166
|
+
}];
|
|
167
|
+
readonly outputs: readonly [];
|
|
168
|
+
readonly stateMutability: "nonpayable";
|
|
169
|
+
}, {
|
|
170
|
+
readonly type: "function";
|
|
171
|
+
readonly name: "revokeVotes";
|
|
172
|
+
readonly inputs: readonly [];
|
|
173
|
+
readonly outputs: readonly [];
|
|
174
|
+
readonly stateMutability: "nonpayable";
|
|
175
|
+
}, {
|
|
176
|
+
readonly type: "function";
|
|
177
|
+
readonly name: "revokeUpvote";
|
|
178
|
+
readonly inputs: readonly [{
|
|
179
|
+
readonly name: "lesser";
|
|
180
|
+
readonly type: "uint256";
|
|
181
|
+
}, {
|
|
182
|
+
readonly name: "greater";
|
|
183
|
+
readonly type: "uint256";
|
|
184
|
+
}];
|
|
185
|
+
readonly outputs: readonly [];
|
|
186
|
+
readonly stateMutability: "nonpayable";
|
|
94
187
|
}, {
|
|
95
188
|
readonly type: "function";
|
|
96
189
|
readonly name: "vote";
|
package/build/abis/governance.js
CHANGED
|
@@ -56,6 +56,71 @@ export const governanceAbi = [
|
|
|
56
56
|
outputs: [{ name: "", type: "uint256" }],
|
|
57
57
|
stateMutability: "view",
|
|
58
58
|
},
|
|
59
|
+
{
|
|
60
|
+
type: "function",
|
|
61
|
+
name: "getVoteRecord",
|
|
62
|
+
inputs: [
|
|
63
|
+
{ name: "account", type: "address" },
|
|
64
|
+
{ name: "index", type: "uint256" },
|
|
65
|
+
],
|
|
66
|
+
outputs: [
|
|
67
|
+
{ name: "proposalId", type: "uint256" },
|
|
68
|
+
{ name: "deprecatedValue", type: "uint256" },
|
|
69
|
+
{ name: "deprecatedWeight", type: "uint256" },
|
|
70
|
+
{ name: "yesVotes", type: "uint256" },
|
|
71
|
+
{ name: "noVotes", type: "uint256" },
|
|
72
|
+
{ name: "abstainVotes", type: "uint256" },
|
|
73
|
+
],
|
|
74
|
+
stateMutability: "view",
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
type: "function",
|
|
78
|
+
name: "getUpvoteRecord",
|
|
79
|
+
inputs: [{ name: "account", type: "address" }],
|
|
80
|
+
outputs: [
|
|
81
|
+
{ name: "proposalId", type: "uint256" },
|
|
82
|
+
{ name: "weight", type: "uint256" },
|
|
83
|
+
],
|
|
84
|
+
stateMutability: "view",
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
type: "function",
|
|
88
|
+
name: "isDequeuedProposal",
|
|
89
|
+
inputs: [
|
|
90
|
+
{ name: "proposalId", type: "uint256" },
|
|
91
|
+
{ name: "index", type: "uint256" },
|
|
92
|
+
],
|
|
93
|
+
outputs: [{ name: "", type: "bool" }],
|
|
94
|
+
stateMutability: "view",
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
type: "function",
|
|
98
|
+
name: "upvote",
|
|
99
|
+
inputs: [
|
|
100
|
+
{ name: "proposalId", type: "uint256" },
|
|
101
|
+
{ name: "lesser", type: "uint256" },
|
|
102
|
+
{ name: "greater", type: "uint256" },
|
|
103
|
+
],
|
|
104
|
+
outputs: [],
|
|
105
|
+
stateMutability: "nonpayable",
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
type: "function",
|
|
109
|
+
name: "revokeVotes",
|
|
110
|
+
inputs: [],
|
|
111
|
+
outputs: [],
|
|
112
|
+
stateMutability: "nonpayable",
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
type: "function",
|
|
116
|
+
name: "revokeUpvote",
|
|
117
|
+
inputs: [
|
|
118
|
+
{ name: "lesser", type: "uint256" },
|
|
119
|
+
{ name: "greater", type: "uint256" },
|
|
120
|
+
],
|
|
121
|
+
outputs: [],
|
|
122
|
+
stateMutability: "nonpayable",
|
|
123
|
+
},
|
|
59
124
|
{
|
|
60
125
|
type: "function",
|
|
61
126
|
name: "vote",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"governance.js","sourceRoot":"","sources":["../../src/abis/governance.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"governance.js","sourceRoot":"","sources":["../../src/abis/governance.ts"],"names":[],"mappings":"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"}
|
|
@@ -24,6 +24,7 @@ export const MCP_TOOL_EVENT_BY_SDK_METHOD = {
|
|
|
24
24
|
"gooddollar.getUbiClaimEligibility": "get_gooddollar_ubi_entitlement",
|
|
25
25
|
"gooddollar.getWhitelistingInfo": "get_gooddollar_whitelisting_info",
|
|
26
26
|
"governance.getGovernanceProposals": "get_governance_proposals",
|
|
27
|
+
"governance.getGovernanceVotes": "get_governance_votes",
|
|
27
28
|
"governance.getLockedCeloBalance": "get_locked_celo_balance",
|
|
28
29
|
"governance.getPendingWithdrawals": "get_pending_withdrawals",
|
|
29
30
|
"governance.getProposalDetails": "get_proposal_details",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-tool-events.js","sourceRoot":"","sources":["../../src/analytics/mcp-tool-events.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAqC;IAC5E,kBAAkB,EAAE,mBAAmB;IACvC,oBAAoB,EAAE,aAAa;IACnC,gCAAgC,EAAE,+BAA+B;IACjE,0BAA0B,EAAE,oBAAoB;IAChD,qBAAqB,EAAE,WAAW;IAClC,qCAAqC,EAAE,WAAW;IAClD,4BAA4B,EAAE,mBAAmB;IACjD,6BAA6B,EAAE,oBAAoB;IACnD,2BAA2B,EAAE,iBAAiB;IAC9C,uBAAuB,EAAE,wBAAwB;IACjD,sBAAsB,EAAE,uBAAuB;IAC/C,gBAAgB,EAAE,aAAa;IAC/B,qCAAqC,EAAE,kCAAkC;IACzE,4BAA4B,EAAE,8BAA8B;IAC5D,gCAAgC,EAAE,8BAA8B;IAChE,yCAAyC,EAAE,8BAA8B;IACzE,iCAAiC,EAAE,8BAA8B;IACjE,0CAA0C,EAAE,8BAA8B;IAC1E,mCAAmC,EAAE,gCAAgC;IACrE,gCAAgC,EAAE,kCAAkC;IACpE,mCAAmC,EAAE,0BAA0B;IAC/D,iCAAiC,EAAE,yBAAyB;IAC5D,kCAAkC,EAAE,yBAAyB;IAC7D,+BAA+B,EAAE,sBAAsB;IACvD,gCAAgC,EAAE,uBAAuB;IACzD,0BAA0B,EAAE,iBAAiB;IAC7C,oBAAoB,EAAE,mBAAmB;IACzC,oBAAoB,EAAE,oBAAoB;IAC1C,mBAAmB,EAAE,iBAAiB;IACtC,gBAAgB,EAAE,cAAc;IAChC,6BAA6B,EAAE,0BAA0B;IACzD,4BAA4B,EAAE,yBAAyB;IACvD,sBAAsB,EAAE,mBAAmB;IAC3C,sBAAsB,EAAE,mBAAmB;IAC3C,sBAAsB,EAAE,mBAAmB;IAC3C,sBAAsB,EAAE,mBAAmB;IAC3C,wBAAwB,EAAE,qBAAqB;IAC/C,8BAA8B,EAAE,wBAAwB;IACxD,2BAA2B,EAAE,qBAAqB;IAClD,4BAA4B,EAAE,sBAAsB;IACpD,6BAA6B,EAAE,wBAAwB;IACvD,kCAAkC,EAAE,6BAA6B;IACjE,4BAA4B,EAAE,sBAAsB;IACpD,mBAAmB,EAAE,mBAAmB;IACxC,6BAA6B,EAAE,yBAAyB;IACxD,uBAAuB,EAAE,mBAAmB;IAC5C,oBAAoB,EAAE,gBAAgB;IACtC,0BAA0B,EAAE,eAAe;IAC3C,iCAAiC,EAAE,sBAAsB;IACzD,2BAA2B,EAAE,kBAAkB;IAC/C,sBAAsB,EAAE,uBAAuB;IAC/C,sBAAsB,EAAE,mBAAmB;CACnC,CAAC"}
|
|
1
|
+
{"version":3,"file":"mcp-tool-events.js","sourceRoot":"","sources":["../../src/analytics/mcp-tool-events.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAqC;IAC5E,kBAAkB,EAAE,mBAAmB;IACvC,oBAAoB,EAAE,aAAa;IACnC,gCAAgC,EAAE,+BAA+B;IACjE,0BAA0B,EAAE,oBAAoB;IAChD,qBAAqB,EAAE,WAAW;IAClC,qCAAqC,EAAE,WAAW;IAClD,4BAA4B,EAAE,mBAAmB;IACjD,6BAA6B,EAAE,oBAAoB;IACnD,2BAA2B,EAAE,iBAAiB;IAC9C,uBAAuB,EAAE,wBAAwB;IACjD,sBAAsB,EAAE,uBAAuB;IAC/C,gBAAgB,EAAE,aAAa;IAC/B,qCAAqC,EAAE,kCAAkC;IACzE,4BAA4B,EAAE,8BAA8B;IAC5D,gCAAgC,EAAE,8BAA8B;IAChE,yCAAyC,EAAE,8BAA8B;IACzE,iCAAiC,EAAE,8BAA8B;IACjE,0CAA0C,EAAE,8BAA8B;IAC1E,mCAAmC,EAAE,gCAAgC;IACrE,gCAAgC,EAAE,kCAAkC;IACpE,mCAAmC,EAAE,0BAA0B;IAC/D,+BAA+B,EAAE,sBAAsB;IACvD,iCAAiC,EAAE,yBAAyB;IAC5D,kCAAkC,EAAE,yBAAyB;IAC7D,+BAA+B,EAAE,sBAAsB;IACvD,gCAAgC,EAAE,uBAAuB;IACzD,0BAA0B,EAAE,iBAAiB;IAC7C,oBAAoB,EAAE,mBAAmB;IACzC,oBAAoB,EAAE,oBAAoB;IAC1C,mBAAmB,EAAE,iBAAiB;IACtC,gBAAgB,EAAE,cAAc;IAChC,6BAA6B,EAAE,0BAA0B;IACzD,4BAA4B,EAAE,yBAAyB;IACvD,sBAAsB,EAAE,mBAAmB;IAC3C,sBAAsB,EAAE,mBAAmB;IAC3C,sBAAsB,EAAE,mBAAmB;IAC3C,sBAAsB,EAAE,mBAAmB;IAC3C,wBAAwB,EAAE,qBAAqB;IAC/C,8BAA8B,EAAE,wBAAwB;IACxD,2BAA2B,EAAE,qBAAqB;IAClD,4BAA4B,EAAE,sBAAsB;IACpD,6BAA6B,EAAE,wBAAwB;IACvD,kCAAkC,EAAE,6BAA6B;IACjE,4BAA4B,EAAE,sBAAsB;IACpD,mBAAmB,EAAE,mBAAmB;IACxC,6BAA6B,EAAE,yBAAyB;IACxD,uBAAuB,EAAE,mBAAmB;IAC5C,oBAAoB,EAAE,gBAAgB;IACtC,0BAA0B,EAAE,eAAe;IAC3C,iCAAiC,EAAE,sBAAsB;IACzD,2BAA2B,EAAE,kBAAkB;IAC/C,sBAAsB,EAAE,uBAAuB;IAC/C,sBAAsB,EAAE,mBAAmB;CACnC,CAAC"}
|
|
@@ -7,6 +7,7 @@ export const WALLET_EXTRACT_BY_SDK_METHOD = {
|
|
|
7
7
|
"gooddollar.getIdentityLink": { positional: 0, objectKeys: ["address"] },
|
|
8
8
|
"gooddollar.getUbiClaimEligibility": { positional: 0, objectKeys: ["address"] },
|
|
9
9
|
"gooddollar.getWhitelistingInfo": { positional: 0, objectKeys: ["address"] },
|
|
10
|
+
"governance.getGovernanceVotes": { positional: 0, objectKeys: ["address"] },
|
|
10
11
|
"governance.getLockedCeloBalance": { positional: 0, objectKeys: ["address"] },
|
|
11
12
|
"governance.getPendingWithdrawals": { positional: 0, objectKeys: ["address"] },
|
|
12
13
|
"humanness.checkHumanness": { positional: 0, objectKeys: ["address"] },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wallet-extract.js","sourceRoot":"","sources":["../../src/analytics/wallet-extract.ts"],"names":[],"mappings":"AASA,MAAM,CAAC,MAAM,4BAA4B,GAErC;IACF,kBAAkB,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,SAAS,CAAC,EAAE;IAC9D,oBAAoB,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,SAAS,CAAC,EAAE;IAChE,gCAAgC,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,SAAS,CAAC,EAAE;IAC5E,uBAAuB,EAAE,EAAE,UAAU,EAAE,CAAC,SAAS,CAAC,EAAE;IACpD,sBAAsB,EAAE,EAAE,UAAU,EAAE,CAAC,SAAS,CAAC,EAAE;IACnD,4BAA4B,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,SAAS,CAAC,EAAE;IACxE,mCAAmC,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,SAAS,CAAC,EAAE;IAC/E,gCAAgC,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,SAAS,CAAC,EAAE;IAC5E,iCAAiC,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,SAAS,CAAC,EAAE;IAC7E,kCAAkC,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,SAAS,CAAC,EAAE;IAC9E,0BAA0B,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,SAAS,CAAC,EAAE;IACtE,mBAAmB,EAAE,EAAE,UAAU,EAAE,CAAC,SAAS,CAAC,EAAE;IAChD,gBAAgB,EAAE,EAAE,UAAU,EAAE,CAAC,SAAS,CAAC,EAAE;IAC7C,sBAAsB,EAAE,EAAE,UAAU,EAAE,CAAC,SAAS,EAAC,eAAe,CAAC,EAAE;IACnE,8BAA8B,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,SAAS,CAAC,EAAE;IAC1E,2BAA2B,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,SAAS,CAAC,EAAE;IACvE,4BAA4B,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,SAAS,CAAC,EAAE;IACxE,kCAAkC,EAAE,EAAE,UAAU,EAAE,CAAC,SAAS,CAAC,EAAE;IAC/D,mBAAmB,EAAE,EAAE,UAAU,EAAE,CAAC,SAAS,CAAC,EAAE;IAChD,6BAA6B,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,SAAS,CAAC,EAAE;IACzE,uBAAuB,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,SAAS,CAAC,EAAE;IACnE,0BAA0B,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE;IAC7C,iCAAiC,EAAE,EAAE,UAAU,EAAE,CAAC,MAAM,CAAC,EAAE;CACnD,CAAC"}
|
|
1
|
+
{"version":3,"file":"wallet-extract.js","sourceRoot":"","sources":["../../src/analytics/wallet-extract.ts"],"names":[],"mappings":"AASA,MAAM,CAAC,MAAM,4BAA4B,GAErC;IACF,kBAAkB,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,SAAS,CAAC,EAAE;IAC9D,oBAAoB,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,SAAS,CAAC,EAAE;IAChE,gCAAgC,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,SAAS,CAAC,EAAE;IAC5E,uBAAuB,EAAE,EAAE,UAAU,EAAE,CAAC,SAAS,CAAC,EAAE;IACpD,sBAAsB,EAAE,EAAE,UAAU,EAAE,CAAC,SAAS,CAAC,EAAE;IACnD,4BAA4B,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,SAAS,CAAC,EAAE;IACxE,mCAAmC,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,SAAS,CAAC,EAAE;IAC/E,gCAAgC,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,SAAS,CAAC,EAAE;IAC5E,+BAA+B,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,SAAS,CAAC,EAAE;IAC3E,iCAAiC,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,SAAS,CAAC,EAAE;IAC7E,kCAAkC,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,SAAS,CAAC,EAAE;IAC9E,0BAA0B,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,SAAS,CAAC,EAAE;IACtE,mBAAmB,EAAE,EAAE,UAAU,EAAE,CAAC,SAAS,CAAC,EAAE;IAChD,gBAAgB,EAAE,EAAE,UAAU,EAAE,CAAC,SAAS,CAAC,EAAE;IAC7C,sBAAsB,EAAE,EAAE,UAAU,EAAE,CAAC,SAAS,EAAC,eAAe,CAAC,EAAE;IACnE,8BAA8B,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,SAAS,CAAC,EAAE;IAC1E,2BAA2B,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,SAAS,CAAC,EAAE;IACvE,4BAA4B,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,SAAS,CAAC,EAAE;IACxE,kCAAkC,EAAE,EAAE,UAAU,EAAE,CAAC,SAAS,CAAC,EAAE;IAC/D,mBAAmB,EAAE,EAAE,UAAU,EAAE,CAAC,SAAS,CAAC,EAAE;IAChD,6BAA6B,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,SAAS,CAAC,EAAE;IACzE,uBAAuB,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,SAAS,CAAC,EAAE;IACnE,0BAA0B,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE;IAC7C,iCAAiC,EAAE,EAAE,UAAU,EAAE,CAAC,MAAM,CAAC,EAAE;CACnD,CAAC"}
|
|
@@ -16,14 +16,27 @@ export interface GovernanceProposalsOptions {
|
|
|
16
16
|
/** Max proposals when using `offset` (capped at 100). */
|
|
17
17
|
limit?: number;
|
|
18
18
|
}
|
|
19
|
+
/** Options for reading governance votes cast by an address. */
|
|
20
|
+
export interface GovernanceVotesOptions {
|
|
21
|
+
/** When set, return only votes for this proposal ID. */
|
|
22
|
+
proposalId?: number;
|
|
23
|
+
}
|
|
24
|
+
/** Options for revoking a governance queue upvote. */
|
|
25
|
+
export interface GovernanceRevokeUpvoteOptions {
|
|
26
|
+
/** When set, assert the active upvote matches this proposal ID. */
|
|
27
|
+
proposalId?: number;
|
|
28
|
+
}
|
|
19
29
|
/** Celo on-chain governance proposal reads, CGP enrichment, and LockedGold writes. */
|
|
20
30
|
export declare class GovernanceService {
|
|
21
31
|
private readonly clientFactory;
|
|
22
32
|
private readonly attributionTags?;
|
|
23
33
|
constructor(clientFactory: CeloClientFactory);
|
|
24
34
|
private getClient;
|
|
35
|
+
/** Resolve vote-signer EOA to the Celo account that holds vote records. */
|
|
36
|
+
private resolveGovernanceAccount;
|
|
25
37
|
private fetchProposal;
|
|
26
38
|
private listProposalIds;
|
|
39
|
+
private getGovernanceQueue;
|
|
27
40
|
/**
|
|
28
41
|
* List governance proposals with pagination and optional CGP metadata.
|
|
29
42
|
* @param options - Pagination (`page`/`pageSize` or `offset`/`limit`) and filters
|
|
@@ -112,6 +125,32 @@ export declare class GovernanceService {
|
|
|
112
125
|
}[];
|
|
113
126
|
message: string;
|
|
114
127
|
}>;
|
|
128
|
+
/** Referendum votes and queue upvotes cast by an address on Celo governance. */
|
|
129
|
+
getGovernanceVotes(address: `0x${string}`, options?: GovernanceVotesOptions): Promise<{
|
|
130
|
+
goldUsedForVoting: string;
|
|
131
|
+
goldUsedForVotingFormatted: string;
|
|
132
|
+
upvote: {
|
|
133
|
+
proposalId: number;
|
|
134
|
+
weight: string;
|
|
135
|
+
weightFormatted: string;
|
|
136
|
+
} | null;
|
|
137
|
+
referendumVotes: {
|
|
138
|
+
proposalId: number;
|
|
139
|
+
dequeueIndex: number;
|
|
140
|
+
yesVotes: string;
|
|
141
|
+
noVotes: string;
|
|
142
|
+
abstainVotes: string;
|
|
143
|
+
totalWeight: string;
|
|
144
|
+
totalWeightFormatted: string;
|
|
145
|
+
stale: boolean;
|
|
146
|
+
stage: "Approval" | "None" | "Queued" | "Referendum" | "Execution" | "Executed" | "Expiration" | "Rejected" | "Withdrawn" | undefined;
|
|
147
|
+
url: string | undefined;
|
|
148
|
+
}[];
|
|
149
|
+
message: string;
|
|
150
|
+
queriedAddress?: `0x${string}` | undefined;
|
|
151
|
+
network: "mainnet";
|
|
152
|
+
address: `0x${string}`;
|
|
153
|
+
}>;
|
|
115
154
|
/** Locked CELO balances and governance voting power for an address. */
|
|
116
155
|
getLockedCeloBalance(address: `0x${string}`): Promise<{
|
|
117
156
|
network: "mainnet";
|
|
@@ -148,4 +187,10 @@ export declare class GovernanceService {
|
|
|
148
187
|
/** Withdraw all matured pending withdrawals. */
|
|
149
188
|
prepareWithdrawCelo(from: `0x${string}`): Promise<SerializedPreparedFlow>;
|
|
150
189
|
prepareVote(from: `0x${string}`, proposalId: number, vote: VoteValueName): Promise<SerializedPreparedFlow>;
|
|
190
|
+
/** Upvote a Queued governance proposal (one active queue upvote per account). */
|
|
191
|
+
prepareUpvote(from: `0x${string}`, proposalId: number): Promise<SerializedPreparedFlow>;
|
|
192
|
+
/** Revoke all active referendum votes for an account (bulk on-chain). */
|
|
193
|
+
prepareRevokeGovernanceVotes(from: `0x${string}`): Promise<SerializedPreparedFlow>;
|
|
194
|
+
/** Revoke the account's active queue upvote. */
|
|
195
|
+
prepareRevokeGovernanceUpvote(from: `0x${string}`, options?: GovernanceRevokeUpvoteOptions): Promise<SerializedPreparedFlow>;
|
|
151
196
|
}
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import { encodeFunctionData, isAddress, parseEther } from "viem";
|
|
6
6
|
import { CELO_CORE_CONTRACTS } from "../config/celo-core-contracts.js";
|
|
7
|
+
import { accountsAbi } from "../abis/accounts.js";
|
|
7
8
|
import { lockedGoldAbi } from "../abis/locked-gold.js";
|
|
8
9
|
import { governanceAbi, proposalStageName, voteValueToInt, } from "../abis/governance.js";
|
|
9
10
|
import { appendCelinaCalldataTag } from "../config/celina-tag.js";
|
|
@@ -11,6 +12,7 @@ import { CHAIN } from "../config/chains.js";
|
|
|
11
12
|
import { serializePreparedFlow, } from "../types/prepared.js";
|
|
12
13
|
import { assertCeloAccountRegistered } from "../utils/celo-account.js";
|
|
13
14
|
import { formatCeloAmount } from "../utils/celo-format.js";
|
|
15
|
+
import { lesserAndGreaterAfterRevokeUpvote, lesserAndGreaterAfterUpvote, } from "../utils/governance-queue.js";
|
|
14
16
|
const STAGE_EXPIRY_MS = {
|
|
15
17
|
Queued: 4 * 24 * 60 * 60 * 1000,
|
|
16
18
|
Approval: 24 * 60 * 60 * 1000,
|
|
@@ -70,6 +72,35 @@ export class GovernanceService {
|
|
|
70
72
|
getClient() {
|
|
71
73
|
return this.clientFactory.getClients().public;
|
|
72
74
|
}
|
|
75
|
+
/** Resolve vote-signer EOA to the Celo account that holds vote records. */
|
|
76
|
+
async resolveGovernanceAccount(address) {
|
|
77
|
+
const client = this.getClient();
|
|
78
|
+
const accounts = CELO_CORE_CONTRACTS.accounts;
|
|
79
|
+
const isRegistered = await client.readContract({
|
|
80
|
+
address: accounts,
|
|
81
|
+
abi: accountsAbi,
|
|
82
|
+
functionName: "isAccount",
|
|
83
|
+
args: [address],
|
|
84
|
+
});
|
|
85
|
+
if (isRegistered) {
|
|
86
|
+
return address;
|
|
87
|
+
}
|
|
88
|
+
try {
|
|
89
|
+
const account = await client.readContract({
|
|
90
|
+
address: accounts,
|
|
91
|
+
abi: accountsAbi,
|
|
92
|
+
functionName: "voteSignerToAccount",
|
|
93
|
+
args: [address],
|
|
94
|
+
});
|
|
95
|
+
if (account !== "0x0000000000000000000000000000000000000000") {
|
|
96
|
+
return account;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
catch {
|
|
100
|
+
// Not a vote signer; use address as-is.
|
|
101
|
+
}
|
|
102
|
+
return address;
|
|
103
|
+
}
|
|
73
104
|
async fetchProposal(proposalId, upvotes = 0, includeVotes = true) {
|
|
74
105
|
const client = this.getClient();
|
|
75
106
|
const address = CELO_CORE_CONTRACTS.governance;
|
|
@@ -160,6 +191,20 @@ export class GovernanceService {
|
|
|
160
191
|
entries.sort((a, b) => b.id - a.id);
|
|
161
192
|
return entries;
|
|
162
193
|
}
|
|
194
|
+
async getGovernanceQueue() {
|
|
195
|
+
const client = this.getClient();
|
|
196
|
+
const [queuedIds, queuedUpvotes] = (await client.readContract({
|
|
197
|
+
address: CELO_CORE_CONTRACTS.governance,
|
|
198
|
+
abi: governanceAbi,
|
|
199
|
+
functionName: "getQueue",
|
|
200
|
+
}));
|
|
201
|
+
return queuedIds
|
|
202
|
+
.map((id, index) => ({
|
|
203
|
+
proposalId: Number(id),
|
|
204
|
+
upvotes: queuedUpvotes[index] ?? 0n,
|
|
205
|
+
}))
|
|
206
|
+
.filter((entry) => entry.proposalId !== 0);
|
|
207
|
+
}
|
|
163
208
|
/**
|
|
164
209
|
* List governance proposals with pagination and optional CGP metadata.
|
|
165
210
|
* @param options - Pagination (`page`/`pageSize` or `offset`/`limit`) and filters
|
|
@@ -302,6 +347,105 @@ export class GovernanceService {
|
|
|
302
347
|
: "No proposals currently in Referendum",
|
|
303
348
|
};
|
|
304
349
|
}
|
|
350
|
+
/** Referendum votes and queue upvotes cast by an address on Celo governance. */
|
|
351
|
+
async getGovernanceVotes(address, options = {}) {
|
|
352
|
+
if (!isAddress(address)) {
|
|
353
|
+
throw new Error(`Invalid address: ${address}`);
|
|
354
|
+
}
|
|
355
|
+
const governanceAccount = await this.resolveGovernanceAccount(address);
|
|
356
|
+
const client = this.getClient();
|
|
357
|
+
const governance = CELO_CORE_CONTRACTS.governance;
|
|
358
|
+
let entries = (await this.getDequeueWithIndices()).filter((entry) => entry.proposalId !== 0);
|
|
359
|
+
if (options.proposalId !== undefined) {
|
|
360
|
+
entries = entries.filter((entry) => entry.proposalId === options.proposalId);
|
|
361
|
+
}
|
|
362
|
+
const voteRecordCalls = entries.map((entry) => ({
|
|
363
|
+
address: governance,
|
|
364
|
+
abi: governanceAbi,
|
|
365
|
+
functionName: "getVoteRecord",
|
|
366
|
+
args: [governanceAccount, BigInt(entry.index)],
|
|
367
|
+
}));
|
|
368
|
+
const [voteResults, upvoteResult, goldUsed] = await Promise.all([
|
|
369
|
+
voteRecordCalls.length > 0
|
|
370
|
+
? client.multicall({ contracts: voteRecordCalls, allowFailure: true })
|
|
371
|
+
: Promise.resolve([]),
|
|
372
|
+
client.readContract({
|
|
373
|
+
address: governance,
|
|
374
|
+
abi: governanceAbi,
|
|
375
|
+
functionName: "getUpvoteRecord",
|
|
376
|
+
args: [governanceAccount],
|
|
377
|
+
}),
|
|
378
|
+
client.readContract({
|
|
379
|
+
address: governance,
|
|
380
|
+
abi: governanceAbi,
|
|
381
|
+
functionName: "getAmountOfGoldUsedForVoting",
|
|
382
|
+
args: [governanceAccount],
|
|
383
|
+
}),
|
|
384
|
+
]);
|
|
385
|
+
const referendumVotes = [];
|
|
386
|
+
for (let i = 0; i < entries.length; i++) {
|
|
387
|
+
const entry = entries[i];
|
|
388
|
+
const result = voteResults[i];
|
|
389
|
+
if (!result || result.status !== "success") {
|
|
390
|
+
continue;
|
|
391
|
+
}
|
|
392
|
+
const [recordProposalId, , , yesVotes, noVotes, abstainVotes] = result.result;
|
|
393
|
+
const proposalId = Number(recordProposalId);
|
|
394
|
+
if (proposalId === 0) {
|
|
395
|
+
continue;
|
|
396
|
+
}
|
|
397
|
+
const totalWeight = yesVotes + noVotes + abstainVotes;
|
|
398
|
+
if (totalWeight === 0n) {
|
|
399
|
+
continue;
|
|
400
|
+
}
|
|
401
|
+
const stale = proposalId !== entry.proposalId;
|
|
402
|
+
const proposal = await this.fetchProposal(proposalId, 0, false);
|
|
403
|
+
referendumVotes.push({
|
|
404
|
+
proposalId,
|
|
405
|
+
dequeueIndex: entry.index,
|
|
406
|
+
yesVotes: yesVotes.toString(),
|
|
407
|
+
noVotes: noVotes.toString(),
|
|
408
|
+
abstainVotes: abstainVotes.toString(),
|
|
409
|
+
totalWeight: totalWeight.toString(),
|
|
410
|
+
totalWeightFormatted: formatCeloAmount(totalWeight),
|
|
411
|
+
stale,
|
|
412
|
+
stage: proposal ? proposalStageName(proposal.stage) : undefined,
|
|
413
|
+
url: proposal?.url,
|
|
414
|
+
});
|
|
415
|
+
}
|
|
416
|
+
const [upvoteProposalId, upvoteWeight] = upvoteResult;
|
|
417
|
+
let upvote = null;
|
|
418
|
+
if (Number(upvoteProposalId) !== 0) {
|
|
419
|
+
const upvoteEntry = {
|
|
420
|
+
proposalId: Number(upvoteProposalId),
|
|
421
|
+
weight: upvoteWeight.toString(),
|
|
422
|
+
weightFormatted: formatCeloAmount(upvoteWeight),
|
|
423
|
+
};
|
|
424
|
+
if (options.proposalId === undefined ||
|
|
425
|
+
upvoteEntry.proposalId === options.proposalId) {
|
|
426
|
+
upvote = upvoteEntry;
|
|
427
|
+
}
|
|
428
|
+
}
|
|
429
|
+
const parts = [];
|
|
430
|
+
if (referendumVotes.length > 0) {
|
|
431
|
+
parts.push(`${referendumVotes.length} referendum vote(s)`);
|
|
432
|
+
}
|
|
433
|
+
if (upvote) {
|
|
434
|
+
parts.push("1 active upvote");
|
|
435
|
+
}
|
|
436
|
+
return {
|
|
437
|
+
network: "mainnet",
|
|
438
|
+
address: governanceAccount,
|
|
439
|
+
...(governanceAccount !== address ? { queriedAddress: address } : {}),
|
|
440
|
+
goldUsedForVoting: goldUsed.toString(),
|
|
441
|
+
goldUsedForVotingFormatted: formatCeloAmount(goldUsed),
|
|
442
|
+
upvote,
|
|
443
|
+
referendumVotes,
|
|
444
|
+
message: parts.length > 0
|
|
445
|
+
? parts.join(", ")
|
|
446
|
+
: "No governance votes found for this address",
|
|
447
|
+
};
|
|
448
|
+
}
|
|
305
449
|
/** Locked CELO balances and governance voting power for an address. */
|
|
306
450
|
async getLockedCeloBalance(address) {
|
|
307
451
|
if (!isAddress(address)) {
|
|
@@ -501,5 +645,88 @@ export class GovernanceService {
|
|
|
501
645
|
this.buildStep(CELO_CORE_CONTRACTS.governance, data, `Vote ${vote} on proposal #${proposalId} (index ${match.index})`),
|
|
502
646
|
], `Vote ${vote} on governance proposal #${proposalId}`);
|
|
503
647
|
}
|
|
648
|
+
/** Upvote a Queued governance proposal (one active queue upvote per account). */
|
|
649
|
+
async prepareUpvote(from, proposalId) {
|
|
650
|
+
const governanceAccount = await this.resolveGovernanceAccount(from);
|
|
651
|
+
const client = this.getClient();
|
|
652
|
+
const governance = CELO_CORE_CONTRACTS.governance;
|
|
653
|
+
const queue = await this.getGovernanceQueue();
|
|
654
|
+
if (!queue.some((entry) => entry.proposalId === proposalId)) {
|
|
655
|
+
throw new Error(`Proposal ${proposalId} is not in the governance queue. Use get_governance_proposals to find Queued proposals.`);
|
|
656
|
+
}
|
|
657
|
+
const [existingUpvoteProposalId] = (await client.readContract({
|
|
658
|
+
address: governance,
|
|
659
|
+
abi: governanceAbi,
|
|
660
|
+
functionName: "getUpvoteRecord",
|
|
661
|
+
args: [governanceAccount],
|
|
662
|
+
}));
|
|
663
|
+
const existingId = Number(existingUpvoteProposalId);
|
|
664
|
+
if (existingId !== 0 && queue.some((entry) => entry.proposalId === existingId)) {
|
|
665
|
+
throw new Error(`Account already has an active upvote on proposal ${existingId}. Revoke it with prepare_revoke_governance_upvote before upvoting another proposal.`);
|
|
666
|
+
}
|
|
667
|
+
const lockedGold = (await client.readContract({
|
|
668
|
+
address: CELO_CORE_CONTRACTS.lockedGold,
|
|
669
|
+
abi: lockedGoldAbi,
|
|
670
|
+
functionName: "getAccountTotalLockedGold",
|
|
671
|
+
args: [governanceAccount],
|
|
672
|
+
}));
|
|
673
|
+
if (lockedGold === 0n) {
|
|
674
|
+
throw new Error("Cannot upvote without locked CELO. Lock CELO first with execute_lock_celo.");
|
|
675
|
+
}
|
|
676
|
+
const { lesser, greater } = lesserAndGreaterAfterUpvote(queue, proposalId, lockedGold);
|
|
677
|
+
const data = appendCelinaCalldataTag(encodeFunctionData({
|
|
678
|
+
abi: governanceAbi,
|
|
679
|
+
functionName: "upvote",
|
|
680
|
+
args: [BigInt(proposalId), BigInt(lesser), BigInt(greater)],
|
|
681
|
+
}), this.attributionTags);
|
|
682
|
+
return this.toPreparedFlow(from, [
|
|
683
|
+
this.buildStep(governance, data, `Upvote proposal #${proposalId} with ${formatCeloAmount(lockedGold)} locked CELO`),
|
|
684
|
+
], `Upvote governance proposal #${proposalId}`);
|
|
685
|
+
}
|
|
686
|
+
/** Revoke all active referendum votes for an account (bulk on-chain). */
|
|
687
|
+
async prepareRevokeGovernanceVotes(from) {
|
|
688
|
+
const governanceAccount = await this.resolveGovernanceAccount(from);
|
|
689
|
+
const votes = await this.getGovernanceVotes(governanceAccount);
|
|
690
|
+
if (votes.referendumVotes.length === 0) {
|
|
691
|
+
throw new Error("No referendum votes to revoke for this address.");
|
|
692
|
+
}
|
|
693
|
+
const data = appendCelinaCalldataTag(encodeFunctionData({
|
|
694
|
+
abi: governanceAbi,
|
|
695
|
+
functionName: "revokeVotes",
|
|
696
|
+
}), this.attributionTags);
|
|
697
|
+
return this.toPreparedFlow(from, [
|
|
698
|
+
this.buildStep(CELO_CORE_CONTRACTS.governance, data, `Revoke ${votes.referendumVotes.length} referendum vote(s)`),
|
|
699
|
+
], `Revoke all governance referendum votes for ${governanceAccount}`);
|
|
700
|
+
}
|
|
701
|
+
/** Revoke the account's active queue upvote. */
|
|
702
|
+
async prepareRevokeGovernanceUpvote(from, options = {}) {
|
|
703
|
+
const governanceAccount = await this.resolveGovernanceAccount(from);
|
|
704
|
+
const client = this.getClient();
|
|
705
|
+
const governance = CELO_CORE_CONTRACTS.governance;
|
|
706
|
+
const [upvoteProposalId, upvoteWeight] = (await client.readContract({
|
|
707
|
+
address: governance,
|
|
708
|
+
abi: governanceAbi,
|
|
709
|
+
functionName: "getUpvoteRecord",
|
|
710
|
+
args: [governanceAccount],
|
|
711
|
+
}));
|
|
712
|
+
const proposalId = Number(upvoteProposalId);
|
|
713
|
+
if (proposalId === 0) {
|
|
714
|
+
throw new Error("No active governance upvote to revoke for this address.");
|
|
715
|
+
}
|
|
716
|
+
if (options.proposalId !== undefined &&
|
|
717
|
+
options.proposalId !== proposalId) {
|
|
718
|
+
throw new Error(`Active upvote is on proposal ${proposalId}, not ${options.proposalId}.`);
|
|
719
|
+
}
|
|
720
|
+
const queue = await this.getGovernanceQueue();
|
|
721
|
+
const { lesser, greater } = lesserAndGreaterAfterRevokeUpvote(queue, proposalId, upvoteWeight);
|
|
722
|
+
const data = appendCelinaCalldataTag(encodeFunctionData({
|
|
723
|
+
abi: governanceAbi,
|
|
724
|
+
functionName: "revokeUpvote",
|
|
725
|
+
args: [BigInt(lesser), BigInt(greater)],
|
|
726
|
+
}), this.attributionTags);
|
|
727
|
+
return this.toPreparedFlow(from, [
|
|
728
|
+
this.buildStep(governance, data, `Revoke upvote on proposal #${proposalId}`),
|
|
729
|
+
], `Revoke governance upvote on proposal #${proposalId}`);
|
|
730
|
+
}
|
|
504
731
|
}
|
|
505
732
|
//# sourceMappingURL=governance.service.js.map
|