@@ -163,7 +163,14 @@ contract Curation is CurationV1Storage, GraphUpgradeable {
163163 emit ParameterUpdated ("curationTaxPercentage " );
164164 }
165165
166- // TODO: add public version of this
166+ /**
167+ * @dev Set the master copy to use as clones for the curation token.
168+ * @param _curationTokenMaster Address of implementation contract to use for curation tokens
169+ */
170+ function setCurationTokenMaster (address _curationTokenMaster ) external override onlyGovernor {
171+ _setCurationTokenMaster (_curationTokenMaster);
172+ }
173+
167174 /**
168175 * @dev Internal: Set the master copy to use as clones for the curation token.
169176 * @param _curationTokenMaster Address of implementation contract to use for curation tokens
@@ -226,11 +233,9 @@ contract Curation is CurationV1Storage, GraphUpgradeable {
226233
227234 // If it hasn't been curated before then initialize the curve
228235 if (! isCurated (_subgraphDeploymentID)) {
229- // Initialize
230236 curationPool.reserveRatio = defaultReserveRatio;
231237
232238 // If no signal token for the pool - create one
233- // TODO: review if we can avoid re-deploying if was previously created
234239 if (address (curationPool.gcs) == address (0 )) {
235240 // Use a minimal proxy to reduce gas cost
236241 IGraphCurationToken gcs = IGraphCurationToken (Clones.clone (curationTokenMaster));
@@ -295,9 +300,11 @@ contract Curation is CurationV1Storage, GraphUpgradeable {
295300 curationPool.tokens = curationPool.tokens.sub (tokensOut);
296301 curationPool.gcs.burnFrom (curator, _signalIn);
297302
298- // If all signal burnt delete the curation pool
303+ // If all signal burnt delete the curation pool except for the
304+ // curation token contract to avoid recreating it on a new mint
299305 if (getCurationPoolSignal (_subgraphDeploymentID) == 0 ) {
300- delete pools[_subgraphDeploymentID];
306+ curationPool.tokens = 0 ;
307+ curationPool.reserveRatio = 0 ;
301308 }
302309
303310 // Return the tokens to the curator
0 commit comments