|
12 | 12 | (use-trait proposal-trait .aibtcdev-dao-traits-v1.proposal)
|
13 | 13 | (use-trait treasury-trait .aibtcdev-dao-traits-v1.treasury)
|
14 | 14 |
|
15 |
| - |
16 | 15 | ;; constants
|
17 | 16 | ;;
|
18 | 17 |
|
|
21 | 20 | (define-constant VOTING_QUORUM u95) ;; 95% of liquid supply (total supply - treasury)
|
22 | 21 |
|
23 | 22 | ;; 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)) |
26 | 24 |
|
27 | 25 | ;; error messages - initialization
|
28 | 26 | (define-constant ERR_NOT_INITIALIZED (err u3100))
|
29 |
| -(define-constant ERR_ALREADY_INITIALIZED (err u3101)) |
30 | 27 |
|
31 | 28 | ;; 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)) |
36 | 32 |
|
37 | 33 | ;; 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)) |
42 | 39 |
|
43 | 40 | ;; error messages - proposals
|
44 | 41 | (define-constant ERR_PROPOSAL_NOT_FOUND (err u3400))
|
|
56 | 53 |
|
57 | 54 | ;; data vars
|
58 | 55 | ;;
|
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 |
60 | 57 | (define-data-var votingToken principal SELF) ;; the FT contract used for voting
|
61 | 58 |
|
62 | 59 | ;; data maps
|
|
97 | 94 | (treasuryContract (contract-of treasury))
|
98 | 95 | )
|
99 | 96 | (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 |
103 | 98 | (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) |
106 | 101 | (print {
|
107 | 102 | notification: "set-protocol-treasury",
|
108 | 103 | payload: {
|
|
119 | 114 | (tokenContract (contract-of token))
|
120 | 115 | )
|
121 | 116 | (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) |
126 | 123 | (print {
|
127 | 124 | notification: "set-voting-token",
|
128 | 125 | payload: {
|
129 |
| - token: tokenContract |
| 126 | + token: token |
130 | 127 | }
|
131 | 128 | })
|
132 |
| - (ok (var-set votingToken tokenContract)) |
| 129 | + (ok (var-set votingToken (contract-of token))) |
133 | 130 | )
|
134 | 131 | )
|
135 | 132 |
|
|
0 commit comments