Example #1
0
def get_crypto_address(coin_symbol, user_prompt=DEFAULT_PROMPT, quit_ok=False):

    display_shortname = COIN_SYMBOL_MAPPINGS[coin_symbol]['display_shortname']
    destination_address = raw_input('%s: ' % user_prompt).strip().strip('"')

    if not destination_address:
        err_str = 'No entry, please enter something'
        if quit_ok:
            err_str += " (or Q to quit)"
        puts(colored.red(err_str))
        return get_crypto_address(
                coin_symbol=coin_symbol,
                user_prompt=user_prompt,
                quit_ok=quit_ok,
                )

    if quit_ok and destination_address in ['q', 'Q', 'b', 'B']:
        return False

    if is_valid_address_for_coinsymbol(destination_address,
            coin_symbol=coin_symbol):
        return destination_address
    else:
        puts('Invalid %s address, please try again' % display_shortname)
        return get_crypto_address(
                coin_symbol=coin_symbol,
                user_prompt=user_prompt,
                quit_ok=quit_ok,
                )
Example #2
0
def get_crypto_address(coin_symbol, user_prompt=DEFAULT_PROMPT, quit_ok=False):

    display_shortname = COIN_SYMBOL_MAPPINGS[coin_symbol]['display_shortname']
    destination_address = raw_input('%s: ' % user_prompt).strip().strip('"')

    if not destination_address:
        err_str = 'No entry, please enter something'
        if quit_ok:
            err_str += " (or Q to quit)"
        puts(colored.red(err_str))
        return get_crypto_address(
            coin_symbol=coin_symbol,
            user_prompt=user_prompt,
            quit_ok=quit_ok,
        )

    if quit_ok and destination_address in ['q', 'Q', 'b', 'B']:
        return False

    if is_valid_address_for_coinsymbol(destination_address,
                                       coin_symbol=coin_symbol):
        return destination_address
    else:
        puts('Invalid %s address, please try again' % display_shortname)
        return get_crypto_address(
            coin_symbol=coin_symbol,
            user_prompt=user_prompt,
            quit_ok=quit_ok,
        )
Example #3
0
def add_metadata_to_address(request, coin_symbol, address):
    if not is_valid_address_for_coinsymbol(address, coin_symbol):
        return Http404

    initial = {}
    form = BaseMetadataForm(initial=initial)
    if request.method == 'POST':
        form = BaseMetadataForm(data=request.POST)
        if form.is_valid():
            metadata_key = form.cleaned_data.get('metadata_key')
            metadata_value = form.cleaned_data.get('metadata_value')

            results = put_metadata(
                    metadata_dict={metadata_key: metadata_value},
                    address=address,
                    coin_symbol=coin_symbol,
                    api_key=BLOCKCYPHER_API_KEY,
                    private=False,
                    )

            # import pprint; pprint.pprint(results, width=1)

            if results is True:
                msg = _('<pre>%(key)s</pre>-><pre>%(value)s</pre> succesfully uploaded to %(upload_string)s (<a href="#metadata">scroll down</a>)' % {
                    'key': metadata_key,
                    'value': metadata_value,
                    'upload_string': address,
                    })
                messages.success(request, msg, extra_tags='safe')
                redir_url = reverse(
                    'address_overview',
                    kwargs={
                        'coin_symbol': coin_symbol,
                        'address': address,
                        },
                    )
                return HttpResponseRedirect(redir_url)
            elif 'error' in results:
                messages.warning(request, results.get('error'))
            elif 'errors' in results:
                for error in results.get('errors'):
                    messages.warning(request, error)

    elif request.method == 'GET':
        # Preseed tx hex if passed through GET string
        key = request.GET.get('k')
        value = request.GET.get('v')
        if key:
            initial['metadata_key'] = key
        if value:
            initial['metadata_value'] = value
        if key or value:
            form = BaseMetadataForm(initial=initial)
    return {
            'form': form,
            'is_input_page': True,
            'coin_symbol': coin_symbol,
            'address': address,
            }
Example #4
0
def add_metadata_to_address(request, coin_symbol, address):
    if not is_valid_address_for_coinsymbol(address, coin_symbol):
        return Http404

    initial = {}
    form = BaseMetadataForm(initial=initial)
    if request.method == 'POST':
        form = BaseMetadataForm(data=request.POST)
        if form.is_valid():
            metadata_key = form.cleaned_data.get('metadata_key')
            metadata_value = form.cleaned_data.get('metadata_value')

            results = put_metadata(
                    metadata_dict={metadata_key: metadata_value},
                    address=address,
                    coin_symbol=coin_symbol,
                    api_key=BLOCKCYPHER_API_KEY,
                    private=False,
                    )

            # import pprint; pprint.pprint(results, width=1)

            if results is True:
                msg = _('<pre>%(key)s</pre>-><pre>%(value)s</pre> succesfully uploaded to %(upload_string)s (<a href="#metadata">scroll down</a>)' % {
                    'key': metadata_key,
                    'value': metadata_value,
                    'upload_string': address,
                    })
                messages.success(request, msg, extra_tags='safe')
                redir_url = reverse(
                    'address_overview',
                    kwargs={
                        'coin_symbol': coin_symbol,
                        'address': address,
                        },
                    )
                return HttpResponseRedirect(redir_url)
            elif 'error' in results:
                messages.warning(request, results.get('error'))
            elif 'errors' in results:
                for error in results.get('errors'):
                    messages.warning(request, error)

    elif request.method == 'GET':
        # Preseed tx hex if passed through GET string
        key = request.GET.get('k')
        value = request.GET.get('v')
        if key:
            initial['metadata_key'] = key
        if value:
            initial['metadata_value'] = value
        if key or value:
            form = BaseMetadataForm(initial=initial)
    return {
            'form': form,
            'is_input_page': True,
            'coin_symbol': coin_symbol,
            'address': address,
            }
Example #5
0
    def clean(self):
        address = self.cleaned_data.get('coin_address').strip()
        coin_symbol = self.cleaned_data.get('coin_symbol')
        if address and coin_symbol:
            if not is_valid_address_for_coinsymbol(address, coin_symbol=coin_symbol):
                cs_display = COIN_SYMBOL_MAPPINGS[coin_symbol]['display_name']
                msg = _("Sorry, that's not a valid address for %(coin_symbol)s" % {'coin_symbol': cs_display})
                raise forms.ValidationError(msg)

        return self.cleaned_data
Example #6
0
    def clean(self):
        address = self.cleaned_data.get('coin_address')
        if not address:
            return None
        coin_symbol = self.cleaned_data.get('coin_symbol')
        if address and coin_symbol:
            if not is_valid_address_for_coinsymbol(address,
                                                   coin_symbol=coin_symbol):
                cs_display = COIN_SYMBOL_MAPPINGS[coin_symbol]['display_name']
                msg = _(
                    "Sorry, that's not a valid address for %(coin_symbol)s" %
                    {'coin_symbol': cs_display})
                raise forms.ValidationError(msg)

        return self.cleaned_data
Example #7
0
    def clean(self):
        where_to_upload = self.cleaned_data.get('where_to_upload')
        upload_string = self.cleaned_data.get('upload_string')
        coin_symbol = self.cleaned_data.get('coin_symbol')
        if not where_to_upload or not upload_string:
            return self.cleaned_data
        if where_to_upload == 'address':
            if not is_valid_address_for_coinsymbol(upload_string, coin_symbol):
                cs_display = COIN_SYMBOL_MAPPINGS[coin_symbol]['display_name']
                msg = _("Sorry, that's not a valid address for %(coin_symbol)s" % {'coin_symbol': cs_display})
                raise forms.ValidationError(msg)
        elif where_to_upload == 'transaction':
            if not is_valid_hash(upload_string):
                msg = _("Sorry, that's not a valid transaction hash")
                raise forms.ValidationError(msg)
        elif where_to_upload == 'block':
            if not is_valid_hash(upload_string):
                msg = _("Sorry, that's not a valid block hash")
                raise forms.ValidationError(msg)
        else:
            raise Exception('Logic Fail: Not Possible')

        return self.cleaned_data