@@ -64,8 +64,7 @@ future_ownership_admin: public(address)
64
64
future_parameter_admin: public (address )
65
65
future_emergency_admin: public (address )
66
66
67
- burners: public (HashMap[ERC20, Burner]) # empty(address) is default
68
- burner_kill: public (bool )
67
+ burner: public (Burner)
69
68
70
69
# pool -> caller -> can call `donate_admin_fees`
71
70
donate_approval: public (HashMap[Curve, HashMap[address , bool ]])
@@ -122,47 +121,14 @@ def apply_set_admins():
122
121
log ApplyAdmins (_o_admin, _p_admin, _e_admin)
123
122
124
123
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
-
138
124
@external
139
125
@nonreentrant ('lock ' )
140
- def set_burner (_coin: ERC20, _burner: Burner):
126
+ def set_burner (_burner: Burner):
141
127
"""
142
- @notice Set burner of `_coin` to `_burner` address
143
- @param _coin Token address
144
128
@param _burner Burner contract address
145
129
"""
146
130
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
166
132
167
133
168
134
@external
@@ -190,9 +156,7 @@ def withdraw_many(_pools: Curve[20]):
190
156
191
157
@internal
192
158
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
196
160
value: uint256 = 0
197
161
if _coin.address == ETH_ADDRESS:
198
162
value = self .balance
@@ -209,8 +173,6 @@ def burn(_coin: ERC20):
209
173
@notice Burn accrued `_coin` via a preset burner
210
174
@param _coin Coin address
211
175
"""
212
- assert not self .burner_kill
213
-
214
176
self ._burn (_coin)
215
177
216
178
@@ -221,12 +183,9 @@ def burn_many(_coins: ERC20[20]):
221
183
@notice Burn accrued admin fees from multiple coins
222
184
@param _coins List of coin addresses
223
185
"""
224
- assert not self .burner_kill
225
-
226
186
for coin in _coins:
227
187
if coin == empty (ERC20):
228
188
break
229
-
230
189
self ._burn (coin)
231
190
232
191
@@ -252,16 +211,6 @@ def unkill_me(_pool: address):
252
211
Curve (_pool).unkill_me ()
253
212
254
213
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
-
265
214
@external
266
215
@nonreentrant ('lock ' )
267
216
def commit_transfer_ownership (_pool: Curve, new_owner: address ):
0 commit comments