Skip to content

Commit 1ea84a5

Browse files
authored
Merge pull request #9 from SpringRole/adding-owner-reserve
added owner transfer function
2 parents 12bba5a + cf8605a commit 1ea84a5

File tree

1 file changed

+44
-2
lines changed

1 file changed

+44
-2
lines changed

Vanity.sol

Lines changed: 44 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -135,6 +135,8 @@ contract VanityURL is Ownable,Pausable {
135135
}
136136

137137
event VanityReserved(address _to, string _vanity_url);
138+
event VanityTransfered(address _to,address _from, string _vanity_url);
139+
event VanityReleased(string _vanity_url);
138140

139141
/* function to update Token address */
140142
function updateTokenAddress (address _tokenAddress) onlyOwner public {
@@ -259,12 +261,52 @@ contract VanityURL is Ownable,Pausable {
259261
require(bytes(address_vanity_mapping[msg.sender]).length != 0);
260262
address_vanity_mapping[_to] = address_vanity_mapping[msg.sender];
261263
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]);
263265
delete(address_vanity_mapping[msg.sender]);
264266
}
265267

266268
/*
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
268310
*/
269311

270312
function kill() onlyOwner {

0 commit comments

Comments
 (0)