|
69 | 69 | endBlock: uint, ;; block height
|
70 | 70 | votesFor: uint, ;; total votes for
|
71 | 71 | votesAgainst: uint, ;; total votes against
|
| 72 | + liquidTokens: uint, ;; liquid tokens |
72 | 73 | concluded: bool, ;; has the proposal concluded
|
73 | 74 | passed: bool, ;; did the proposal pass
|
74 | 75 | }
|
|
114 | 115 | (
|
115 | 116 | (newId (+ (var-get proposalCount) u1))
|
116 | 117 | (voterBalance (unwrap! (contract-call? .aibtc-token get-balance tx-sender) ERR_FETCHING_TOKEN_DATA))
|
| 118 | + (liquidTokens (contract-call? .aibtc-token get-liquid-supply)) |
117 | 119 | )
|
118 | 120 | ;; required variables must be set
|
119 | 121 | (asserts! (is-initialized) ERR_NOT_INITIALIZED)
|
|
142 | 144 | endBlock: (+ burn-block-height VOTING_PERIOD),
|
143 | 145 | votesFor: u0,
|
144 | 146 | votesAgainst: u0,
|
| 147 | + liquidTokens: liquidTokens, |
145 | 148 | concluded: false,
|
146 | 149 | passed: false,
|
147 | 150 | }) ERR_SAVING_PROPOSAL)
|
|
194 | 197 | (let
|
195 | 198 | (
|
196 | 199 | (proposalRecord (unwrap! (map-get? Proposals proposalId) ERR_PROPOSAL_NOT_FOUND))
|
197 |
| - (tokenTotalSupply (unwrap! (contract-call? .aibtc-token get-total-supply) ERR_FETCHING_TOKEN_DATA)) |
198 |
| - (treasuryContract (contract-of treasury)) |
199 |
| - (treasuryBalance (unwrap! (contract-call? .aibtc-token get-balance treasuryContract) ERR_FETCHING_TOKEN_DATA)) |
200 |
| - (votePassed (> (get votesFor proposalRecord) (* tokenTotalSupply (- u100 treasuryBalance) VOTING_QUORUM))) |
| 200 | + ;; if VOTING_QUORUM <= ((votesFor * 100) / liquidTokens) |
| 201 | + (votePassed (<= VOTING_QUORUM (/ (* (get votesFor proposalRecord) u100) (get liquidTokens proposalRecord)))) |
201 | 202 | )
|
202 | 203 | ;; required variables must be set
|
203 | 204 | (asserts! (is-initialized) ERR_NOT_INITIALIZED)
|
204 | 205 | ;; verify extension still active in dao
|
205 | 206 | (try! (as-contract (is-dao-or-extension)))
|
206 | 207 | ;; verify treasury matches protocol treasury
|
207 |
| - (asserts! (is-eq treasuryContract (var-get protocolTreasury)) ERR_TREASURY_MISMATCH) |
| 208 | + (asserts! (is-eq (contract-of treasury) (var-get protocolTreasury)) ERR_TREASURY_MISMATCH) |
208 | 209 | ;; proposal past end block height
|
209 | 210 | (asserts! (>= burn-block-height (get endBlock proposalRecord)) ERR_PROPOSAL_STILL_ACTIVE)
|
210 | 211 | ;; proposal not already concluded
|
|
0 commit comments