Skip to content

Commit 83e74f3

Browse files
committed
fix: update core propsal structure to match actions
There were a few changes in formatting, err messages, flow, and voting that need to be synchronized between the two. More updates to come.
1 parent dc4649c commit 83e74f3

File tree

2 files changed

+35
-31
lines changed

2 files changed

+35
-31
lines changed

contracts/dao/extensions/aibtc-action-proposals.clar

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -27,13 +27,14 @@
2727
;; error messages - treasury
2828
(define-constant ERR_TREASURY_CANNOT_BE_SELF (err u1200))
2929
(define-constant ERR_TREASURY_MISMATCH (err u1201))
30-
(define-constant ERR_TREASURY_NOT_INITIALIZED (err u1202))
30+
(define-constant ERR_TREASURY_CANNOT_BE_SAME (err u1202))
3131

3232
;; error messages - voting token
3333
(define-constant ERR_TOKEN_ALREADY_INITIALIZED (err u1300))
3434
(define-constant ERR_TOKEN_MISMATCH (err u1301))
3535
(define-constant ERR_INSUFFICIENT_BALANCE (err u1302))
3636
(define-constant ERR_TOKEN_CANNOT_BE_SELF (err u1303))
37+
(define-constant ERR_TOKEN_CANNOT_BE_SAME (err u1304))
3738

3839
;; error messages - proposals
3940
(define-constant ERR_PROPOSAL_NOT_FOUND (err u1400))
@@ -98,10 +99,10 @@
9899
(treasuryContract (contract-of treasury))
99100
)
100101
(try! (is-dao-or-extension))
101-
;; treasury must not be already set
102-
(asserts! (is-eq (var-get protocolTreasury) SELF) ERR_TREASURY_NOT_INITIALIZED)
103-
;; treasury cannot be the voting contract
102+
;; cannot set treasury to self
104103
(asserts! (not (is-eq treasuryContract SELF)) ERR_TREASURY_CANNOT_BE_SELF)
104+
;; cannot set treasury to same value
105+
(asserts! (not (is-eq treasuryContract (var-get protocolTreasury))) ERR_TREASURY_CANNOT_BE_SAME)
105106
(print {
106107
notification: "set-protocol-treasury",
107108
payload: {
@@ -113,11 +114,17 @@
113114
)
114115

115116
(define-public (set-voting-token (token <ft-trait>))
116-
(begin
117+
(let
118+
(
119+
(tokenContract (contract-of token))
120+
)
117121
(try! (is-dao-or-extension))
118-
;; token must not be already set
122+
;; cannot set token to self
123+
(asserts! (not (is-eq tokenContract SELF)) ERR_TOKEN_CANNOT_BE_SELF)
124+
;; cannot set token to same value
125+
(asserts! (not (is-eq tokenContract (var-get votingToken))) ERR_TOKEN_CANNOT_BE_SAME)
126+
;; cannot set token if already set once
119127
(asserts! (is-eq (var-get votingToken) SELF) ERR_TOKEN_ALREADY_INITIALIZED)
120-
(asserts! (not (is-eq (contract-of token) SELF)) ERR_TOKEN_CANNOT_BE_SELF)
121128
(print {
122129
notification: "set-voting-token",
123130
payload: {

contracts/dao/extensions/aibtc-core-proposals.clar

Lines changed: 21 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212
(use-trait proposal-trait .aibtcdev-dao-traits-v1.proposal)
1313
(use-trait treasury-trait .aibtcdev-dao-traits-v1.treasury)
1414

15-
1615
;; constants
1716
;;
1817

@@ -21,24 +20,22 @@
2120
(define-constant VOTING_QUORUM u95) ;; 95% of liquid supply (total supply - treasury)
2221

2322
;; error messages - authorization
24-
(define-constant ERR_UNAUTHORIZED (err u3000))
25-
(define-constant ERR_NOT_DAO_OR_EXTENSION (err u3001))
23+
(define-constant ERR_NOT_DAO_OR_EXTENSION (err u3000))
2624

2725
;; error messages - initialization
2826
(define-constant ERR_NOT_INITIALIZED (err u3100))
29-
(define-constant ERR_ALREADY_INITIALIZED (err u3101))
3027

3128
;; error messages - treasury
32-
(define-constant ERR_TREASURY_MUST_BE_CONTRACT (err u3200))
33-
(define-constant ERR_TREASURY_CANNOT_BE_SELF (err u3201))
34-
(define-constant ERR_TREASURY_ALREADY_SET (err u3202))
35-
(define-constant ERR_TREASURY_MISMATCH (err u3203))
29+
(define-constant ERR_TREASURY_CANNOT_BE_SELF (err u3200))
30+
(define-constant ERR_TREASURY_MISMATCH (err u3201))
31+
(define-constant ERR_TREASURY_CANNOT_BE_SAME (err u3202))
3632

3733
;; error messages - voting token
38-
(define-constant ERR_TOKEN_MUST_BE_CONTRACT (err u3300))
39-
(define-constant ERR_TOKEN_NOT_INITIALIZED (err u3301))
40-
(define-constant ERR_TOKEN_MISMATCH (err u3302))
41-
(define-constant ERR_INSUFFICIENT_BALANCE (err u3303))
34+
(define-constant ERR_TOKEN_ALREADY_INITIALIZED (err u3300))
35+
(define-constant ERR_TOKEN_MISMATCH (err u3301))
36+
(define-constant ERR_INSUFFICIENT_BALANCE (err u3302))
37+
(define-constant ERR_TOKEN_CANNOT_BE_SELF (err u3303))
38+
(define-constant ERR_TOKEN_CANNOT_BE_SAME (err u3304))
4239

4340
;; error messages - proposals
4441
(define-constant ERR_PROPOSAL_NOT_FOUND (err u3400))
@@ -56,7 +53,7 @@
5653

5754
;; data vars
5855
;;
59-
(define-data-var protocolTreasury principal .aibtc-treasury) ;; the treasury contract for protocol funds
56+
(define-data-var protocolTreasury principal SELF) ;; the treasury contract for protocol funds
6057
(define-data-var votingToken principal SELF) ;; the FT contract used for voting
6158

6259
;; data maps
@@ -97,12 +94,10 @@
9794
(treasuryContract (contract-of treasury))
9895
)
9996
(try! (is-dao-or-extension))
100-
;; treasury must be a contract
101-
(asserts! (not (is-standard treasuryContract)) ERR_TREASURY_MUST_BE_CONTRACT)
102-
;; treasury cannot be the voting contract
97+
;; cannot set treasury to self
10398
(asserts! (not (is-eq treasuryContract SELF)) ERR_TREASURY_CANNOT_BE_SELF)
104-
;; treasury cannot be the same value
105-
(asserts! (not (is-eq treasuryContract (var-get protocolTreasury))) ERR_TREASURY_ALREADY_SET)
99+
;; cannot set treasury to same value
100+
(asserts! (not (is-eq treasuryContract (var-get protocolTreasury))) ERR_TREASURY_CANNOT_BE_SAME)
106101
(print {
107102
notification: "set-protocol-treasury",
108103
payload: {
@@ -119,17 +114,19 @@
119114
(tokenContract (contract-of token))
120115
)
121116
(try! (is-dao-or-extension))
122-
;; token must be a contract
123-
(asserts! (not (is-standard tokenContract)) ERR_TOKEN_MUST_BE_CONTRACT)
124-
(asserts! (is-eq (var-get votingToken) SELF) ERR_TOKEN_NOT_INITIALIZED)
125-
(asserts! (is-eq (var-get votingToken) tokenContract) ERR_TOKEN_MISMATCH)
117+
;; cannot set token to self
118+
(asserts! (not (is-eq tokenContract SELF)) ERR_TOKEN_CANNOT_BE_SELF)
119+
;; cannot set token to same value
120+
(asserts! (not (is-eq tokenContract (var-get votingToken))) ERR_TOKEN_CANNOT_BE_SAME)
121+
;; cannot set token if already set once
122+
(asserts! (is-eq (var-get votingToken) SELF) ERR_TOKEN_ALREADY_INITIALIZED)
126123
(print {
127124
notification: "set-voting-token",
128125
payload: {
129-
token: tokenContract
126+
token: token
130127
}
131128
})
132-
(ok (var-set votingToken tokenContract))
129+
(ok (var-set votingToken (contract-of token)))
133130
)
134131
)
135132

0 commit comments

Comments
 (0)