def add_metadata_to_tx(request, coin_symbol, tx_hash): if not is_valid_hash(tx_hash): 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}, tx_hash=tx_hash, 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': tx_hash, }) messages.success(request, msg, extra_tags='safe') redir_url = reverse( 'transaction_overview', kwargs={ 'coin_symbol': coin_symbol, 'tx_hash': tx_hash, }, ) 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, 'tx_hash': tx_hash, }