Пример #1
0
def process_user(username, profile, server=NAMECOIND_SERVER, new_address=None):

    master_key = 'u/' + username

    if namecoind.check_registration(master_key):
        keys, values = slice_profile_update(username, profile)
    else:
        keys, values = slice_profile(username, profile)

    index = 0
    key1 = keys[index]
    value1 = values[index]

    if namecoind.check_registration(key1):

        # if name is registered
        log.debug("name update: %s", key1)
        log.debug("size: %s", utf8len(json.dumps(value1)))
        update_name(key1, value1, new_address)

    else:
        # if not registered
        log.debug("name new: %s", key1)
        log.debug("size: %s", utf8len(json.dumps(value1)))
        register_name(key1, value1, server, username)

    process_additional_keys(keys, values, server, username, new_address)
Пример #2
0
def _splitter(remaining, username):

    split = {}
    maxsize = _max_size(username)

    if utf8len(json.dumps(remaining)) < maxsize:
        return remaining, None
    else:
        for key in remaining.keys():

            if utf8len(json.dumps(remaining[key])) > maxsize:
                # include the size of key in (key, value) maxsize as well
                temp = {}
                temp[key] = 'extra-space-here'

                maxsize_value = maxsize - utf8len(json.dumps(temp))
                remaining[key] = remaining[key][:maxsize_value]

            # some foreign languages have a bug in size reduction
            # check again, and display error
            if utf8len(json.dumps(remaining[key])) > maxsize:
                remaining[key] = 'Error: value too large'

            split[key] = remaining[key]

            if utf8len(json.dumps(split)) > maxsize:
                del split[key]
            else:
                del remaining[key]

        return split, remaining
Пример #3
0
	def transfer(self, key,new_address,value=None):
	 
		#check if this name exists and if it does, find the value field
		#note that update command needs an arg of <new value>.
		#in case we're simply transferring, we need to obtain old value first

		key_details = self.name_show(key)

		if 'code' in key_details and key_details.get('code') == -4:
			return error_reply("Key does not exist")

		#get new 'value' if given, otherwise use the old 'value'
		if value is None: 
			value = json.dumps(key_details['value'])

		#now unlock the wallet
		if not self.unlock_wallet(self.passphrase):
			error_reply("Error unlocking wallet", 403)
		
		if utf8len(value) > VALUE_MAX_LIMIT:
			return error_reply("value larger than " + str(VALUE_MAX_LIMIT))

		#transfer the name (underlying call is still name_update)
		info = self.namecoind.name_update(key, value, new_address)

		return info
Пример #4
0
    def name_update(self, key, value):

        if utf8len(value) > VALUE_MAX_LIMIT:
            return error_reply("value larger than " + str(VALUE_MAX_LIMIT))

        if not self.unlock_wallet(self.passphrase):
            error_reply("Error unlocking wallet", 403)

        try:
            # update the 'value'
            reply = self.obj.name_update(key, value)
        except JSONRPCException as e:
            return e.error

        return reply
Пример #5
0
    def name_update(self, key, value):

        if utf8len(value) > VALUE_MAX_LIMIT:
            return error_reply("value larger than " + str(VALUE_MAX_LIMIT))

        if not self.unlock_wallet(self.passphrase):
            error_reply("Error unlocking wallet", 403)

        try:
            # update the 'value'
            reply = self.obj.name_update(key, value)
        except JSONRPCException as e:
            return e.error

        return reply
Пример #6
0
	def name_update(self, key,value):

		if utf8len(value) > VALUE_MAX_LIMIT:
			return error_reply("value larger than " + str(VALUE_MAX_LIMIT))

		#now unlock the wallet
		if not self.unlock_wallet(self.passphrase):
			error_reply("Error unlocking wallet", 403)
			
		#update the 'value'
		try:
			info = self.namecoind.name_update(key, value)
		except JSONRPCException as e:
			return e.error

		return info
Пример #7
0
    def firstupdate(self, key, rand, value, tx=None):

        if utf8len(value) > VALUE_MAX_LIMIT:
            return error_reply("value larger than " + str(VALUE_MAX_LIMIT))

        if not self.unlock_wallet(self.passphrase):
            error_reply("Error unlocking wallet", 403)

        try:
            if tx is not None:
                reply = self.obj.name_firstupdate(key, rand, tx, value)
            else:
                reply = self.obj.name_firstupdate(key, rand, value)
        except JSONRPCException as e:
            return e.error

        return reply
Пример #8
0
    def firstupdate(self, key, rand, value, tx=None):

        if utf8len(value) > VALUE_MAX_LIMIT:
            return error_reply("value larger than " + str(VALUE_MAX_LIMIT))

        if not self.unlock_wallet(self.passphrase):
            error_reply("Error unlocking wallet", 403)

        try:
            if tx is not None:
                reply = self.obj.name_firstupdate(key, rand, tx, value)
            else:
                reply = self.obj.name_firstupdate(key, rand, value)
        except JSONRPCException as e:
            return e.error

        return reply
Пример #9
0
def process_additional_keys(keys, values, server, username, new_address):

    # register/update remaining keys
    size = len(keys)
    index = 1
    while index < size:
        next_key = keys[index]
        next_value = values[index]

        log.debug(utf8len(json.dumps(next_value)))

        if namecoind.check_registration(next_key):
            log.debug("name update: " + next_key)
            update_name(next_key, next_value, new_address)
        else:
            log.debug("name new: " + next_key)
            register_name(next_key, next_value, server, username)

        index += 1