@@ -135,6 +135,8 @@ contract VanityURL is Ownable,Pausable {
135
135
}
136
136
137
137
event VanityReserved (address _to , string _vanity_url );
138
+ event VanityTransfered (address _to ,address _from , string _vanity_url );
139
+ event VanityReleased (string _vanity_url );
138
140
139
141
/* function to update Token address */
140
142
function updateTokenAddress (address _tokenAddress ) onlyOwner public {
@@ -259,12 +261,52 @@ contract VanityURL is Ownable,Pausable {
259
261
require (bytes (address_vanity_mapping[msg .sender ]).length != 0 );
260
262
address_vanity_mapping[_to] = address_vanity_mapping[msg .sender ];
261
263
vanity_address_mapping[address_vanity_mapping[msg .sender ]] = _to;
262
- VanityReserved ( _to, address_vanity_mapping[msg .sender ]);
264
+ VanityTransfered ( msg . sender , _to,address_vanity_mapping[msg .sender ]);
263
265
delete (address_vanity_mapping[msg .sender ]);
264
266
}
265
267
266
268
/*
267
- function to kill contract
269
+ function to transfer ownership for Vanity URL by Owner
270
+ */
271
+ function reserveVanityURLByOwner (address _to ,string _vanity_url ) whenNotPaused onlyOwner public {
272
+ _vanity_url = _toLower (_vanity_url);
273
+ require (checkForValidity (_vanity_url));
274
+ require (reservedKeywords[_vanity_url] != 1 );
275
+ /* check if vanity url is being used by anyone */
276
+ if (vanity_address_mapping[_vanity_url] != address (0x0 ))
277
+ {
278
+ /* Sending Vanity Transfered Event */
279
+ VanityTransfered (vanity_address_mapping[_vanity_url],_to,_vanity_url);
280
+ /* delete from address mapping */
281
+ delete (address_vanity_mapping[vanity_address_mapping[_vanity_url]]);
282
+ /* delete from vanity mapping */
283
+ delete (vanity_address_mapping[_vanity_url]);
284
+ }
285
+ else
286
+ {
287
+ /* sending VanityReserved event */
288
+ VanityReserved (_to, _vanity_url);
289
+ }
290
+ /* add new address to mapping */
291
+ vanity_address_mapping[_vanity_url] = _to;
292
+ address_vanity_mapping[_to] = _vanity_url;
293
+ }
294
+
295
+ /*
296
+ function to release a Vanity URL by Owner
297
+ */
298
+ function releaseVanityUrl (string _vanity_url ) whenNotPaused onlyOwner public {
299
+ require (vanity_address_mapping[_vanity_url] != address (0x0 ));
300
+ /* delete from address mapping */
301
+ delete (address_vanity_mapping[vanity_address_mapping[_vanity_url]]);
302
+ /* delete from vanity mapping */
303
+ delete (vanity_address_mapping[_vanity_url]);
304
+ /* sending VanityReleased event */
305
+ VanityReleased (_vanity_url);
306
+ }
307
+
308
+ /*
309
+ function to kill contract
268
310
*/
269
311
270
312
function kill () onlyOwner {
0 commit comments