Skip to content

Commit ba6e556

Browse files
committed
chore: update burner logic
1 parent acfa150 commit ba6e556

File tree

1 file changed

+4
-55
lines changed

1 file changed

+4
-55
lines changed

contracts/CryptoPoolProxy.vy

+4-55
Original file line numberDiff line numberDiff line change
@@ -64,8 +64,7 @@ future_ownership_admin: public(address)
6464
future_parameter_admin: public(address)
6565
future_emergency_admin: public(address)
6666

67-
burners: public(HashMap[ERC20, Burner]) # empty(address) is default
68-
burner_kill: public(bool)
67+
burner: public(Burner)
6968

7069
# pool -> caller -> can call `donate_admin_fees`
7170
donate_approval: public(HashMap[Curve, HashMap[address, bool]])
@@ -122,47 +121,14 @@ def apply_set_admins():
122121
log ApplyAdmins(_o_admin, _p_admin, _e_admin)
123122

124123

125-
@internal
126-
def _set_burner(_coin: ERC20, _burner: Burner):
127-
if _coin.address not in [empty(address), ETH_ADDRESS]:
128-
old_burner: Burner = self.burners[_coin]
129-
if old_burner != empty(Burner):
130-
# revoke approval on previous burner
131-
assert _coin.approve(old_burner.address, 0, default_return_value=True)
132-
133-
self.burners[_coin] = _burner
134-
135-
log SetBurner(_coin, _burner)
136-
137-
138124
@external
139125
@nonreentrant('lock')
140-
def set_burner(_coin: ERC20, _burner: Burner):
126+
def set_burner(_burner: Burner):
141127
"""
142-
@notice Set burner of `_coin` to `_burner` address
143-
@param _coin Token address
144128
@param _burner Burner contract address
145129
"""
146130
assert msg.sender == self.ownership_admin, "Access denied"
147-
148-
self._set_burner(_coin, _burner)
149-
150-
151-
@external
152-
@nonreentrant('lock')
153-
def set_many_burners(_coins: ERC20[20], _burners: Burner[20]):
154-
"""
155-
@notice Set burner of `_coin` to `_burner` address
156-
@param _coins Token address
157-
@param _burners Burner contract address
158-
"""
159-
assert msg.sender == self.ownership_admin, "Access denied"
160-
161-
for i in range(20):
162-
coin: ERC20 = _coins[i]
163-
if coin == empty(ERC20):
164-
break
165-
self._set_burner(coin, _burners[i])
131+
self.burner = _burner
166132

167133

168134
@external
@@ -190,9 +156,7 @@ def withdraw_many(_pools: Curve[20]):
190156

191157
@internal
192158
def _burn(_coin: ERC20):
193-
burner: Burner = self.burners[_coin]
194-
if burner == empty(Burner): # use default
195-
burner = self.burners[empty(ERC20)]
159+
burner: Burner = self.burner
196160
value: uint256 = 0
197161
if _coin.address == ETH_ADDRESS:
198162
value = self.balance
@@ -209,8 +173,6 @@ def burn(_coin: ERC20):
209173
@notice Burn accrued `_coin` via a preset burner
210174
@param _coin Coin address
211175
"""
212-
assert not self.burner_kill
213-
214176
self._burn(_coin)
215177

216178

@@ -221,12 +183,9 @@ def burn_many(_coins: ERC20[20]):
221183
@notice Burn accrued admin fees from multiple coins
222184
@param _coins List of coin addresses
223185
"""
224-
assert not self.burner_kill
225-
226186
for coin in _coins:
227187
if coin == empty(ERC20):
228188
break
229-
230189
self._burn(coin)
231190

232191

@@ -252,16 +211,6 @@ def unkill_me(_pool: address):
252211
Curve(_pool).unkill_me()
253212

254213

255-
@external
256-
def set_burner_kill(_is_killed: bool):
257-
"""
258-
@notice Kill or unkill `burn` functionality
259-
@param _is_killed Burner kill status
260-
"""
261-
assert msg.sender == self.emergency_admin or msg.sender == self.ownership_admin, "Access denied"
262-
self.burner_kill = _is_killed
263-
264-
265214
@external
266215
@nonreentrant('lock')
267216
def commit_transfer_ownership(_pool: Curve, new_owner: address):

0 commit comments

Comments
 (0)