Skip to content

Commit cab2bcf

Browse files
committed
Added transactions (BBE inputs)
1 parent 2a77b9d commit cab2bcf

File tree

3 files changed

+240
-107
lines changed

3 files changed

+240
-107
lines changed

index.html

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -240,15 +240,24 @@ <h3><span class="pull-right" id="qr_addr"></span></h3>
240240
<input class="span4" id="txAddr" readonly type="text">
241241
<div class="input-prepend"> <span class="add-on">BTC</span><input class="span2" id="txBalance" readonly type="text">
242242
</div>
243-
<button class="btn" id="txGetUnspent" title="Get Outputs" type="button"><i class="icon-repeat"></i></button>
244-
<button class="btn" type="button" id="txToggle" data-toggle="collapse" data-target="#txUnspentForm">Show Outputs</button>
243+
<button class="btn" id="txGetUnspent" title="Reload" type="button"><i class="icon-repeat"></i></button>
244+
<button class="btn" data-target="#txUnspentForm" data-toggle="collapse" id="txToggle" type="button">Toggle Inputs</button>
245245
</div>
246246
</div>
247-
<div class="collapse" id="txUnspentForm">
247+
<div class="collapse" id="txUnspentForm">
248248
<div class="control-group">
249-
<label class="control-label" for="txUnspent">Unspent Outputs</label>
249+
<label class="control-label" for="txBBE">Get History From</label>
250250
<div class="controls">
251-
<textarea class="span8" id="txUnspent" rows="16"></textarea>
251+
<div class="btn-group" data-toggle="buttons-radio" id="txType">
252+
<button class="btn active" id="txBCI" type="button">BlockChain Info</button>
253+
<button class="btn" id="txBBE" type="button">Bitcoin Block Explorer</button>
254+
</div>
255+
</div>
256+
</div>
257+
<div class="control-group">
258+
<label class="control-label" for="txUnspent">Transaction History</label>
259+
<div class="controls">
260+
<textarea class="span8" id="txUnspent" rows="16"></textarea>
252261
</div>
253262
</div>
254263
</div>
@@ -270,8 +279,8 @@ <h3><span class="pull-right" id="qr_addr"></span></h3>
270279
<input class="span4" id="txDest" type="text">
271280
<div class="input-prepend"> <span class="add-on">BTC</span><input class="span2" id="txValue" type="text">
272281
</div><span class="help-inline errormsg"></span>
273-
<button class="btn" type="button" id="txAddDest" disabled>+</button>
274-
<button class="btn" type="button" id="txSend">Send Transaction</button>
282+
<button class="btn" disabled id="txAddDest" type="button">+</button>
283+
<button class="btn" id="txSend" type="button">Send Transaction</button>
275284
</div>
276285
</div>
277286
</fieldset>

js/brainwallet.js

Lines changed: 27 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -201,7 +201,7 @@
201201
var addr = eckey.getBitcoinAddress();
202202
setErrorState($('#hash'), false);
203203
} catch (err) {
204-
console.info(err);
204+
//console.info(err);
205205
setErrorState($('#hash'), true, 'Invalid secret exponent (must be non-zero value)');
206206
return;
207207
}
@@ -669,6 +669,8 @@
669669

670670
// -- transactions --
671671

672+
var txType = 'txBCI';
673+
672674
function txGenSrcAddr() {
673675
var sec = $('#txSec').val();
674676
var addr = '';
@@ -699,23 +701,14 @@
699701
}
700702

701703
function txSetUnspent(text) {
702-
703-
if (text.length == 0) {
704-
txUnspent = '{"unspent_outputs":[]}';
705-
var value = 0;
706-
} else {
707-
var r = jQuery.parseJSON(text);
708-
txUnspent = JSON.stringify(r, null, 4);
709-
var value = TX.getBalance(txUnspent);
710-
}
711-
704+
var r = JSON.parse(text);
705+
txUnspent = JSON.stringify(r, null, 4);
712706
$('#txUnspent').val(txUnspent);
713-
707+
TX.parseInputs(txUnspent, addr);
708+
var value = TX.getBalance();
714709
var fval = Bitcoin.Util.formatValue(value);
715-
716710
$('#txBalance').val(fval);
717711
$('#txValue').val(fval);
718-
719712
txRebuild();
720713
}
721714

@@ -729,14 +722,18 @@
729722
}
730723

731724
function txParseUnspent(text) {
732-
alert(text == '' ? 'No unspent outputs' : text);
725+
if (text == '')
726+
alert('No data');
733727
txSetUnspent(text);
734728
}
735729

736730
function txGetUnspent() {
737731
var addr = $('#txAddr').val();
738-
var url = 'http://blockchain.info/unspent?address=' + addr;
739-
url = prompt('Fetching unspent outputs:', url);
732+
733+
var url = (txType == 'txBCI') ? 'http://blockchain.info/unspent?address=' + addr :
734+
'http://blockexplorer.com/q/mytransactions/' + addr;
735+
736+
url = prompt('Download transaction history:', url);
740737
if (url != null && url != "") {
741738
$('#txUnspent').val('');
742739
tx_fetch(url, txParseUnspent);
@@ -773,15 +770,17 @@
773770
function txSend() {
774771
var tx = $('#txHex').val();
775772
url = 'http://bitsend.rowit.co.uk/?transaction=' + tx;
776-
url = prompt('Sending transaction:', url);
773+
url = prompt('Send transaction:', url);
777774
if (url != null && url != "") {
778775
tx_fetch(url, txSent);
779776
}
780777
return false;
781778
}
782779

783780
function txRebuild() {
781+
784782
var sec = $('#txSec').val();
783+
var addr = $('#txAddr').val();
785784
var dest = $('#txDest').val();
786785
var unspent = $('#txUnspent').val();
787786
var fval = parseFloat($('#txValue').val());
@@ -793,22 +792,15 @@
793792
} catch (err) {
794793
$('#txJSON').val('');
795794
$('#txHex').val('');
796-
return
795+
return;
797796
}
798797

799798
var eckey = new Bitcoin.ECKey(payload);
800799

801800
TX.init(eckey);
802801
TX.addOutput(dest, fval);
803802

804-
try {
805-
var r = jQuery.parseJSON(unspent);
806-
var unspent = r.unspent_outputs;
807-
} catch (err) {
808-
var unspent = {};
809-
}
810-
811-
var sendTx = TX.construct(unspent);
803+
var sendTx = TX.construct();
812804
var txJSON = TX.toBBE(sendTx);
813805
var buf = sendTx.serialize();
814806
var txHex = Crypto.util.bytesToHex(buf);
@@ -833,6 +825,11 @@
833825
}
834826
}
835827

828+
function txChangeType() {
829+
txType = $(this).attr('id');
830+
txGetUnspent();
831+
}
832+
836833
$(document).ready( function() {
837834

838835
onInput('#pass', onChangePass);
@@ -887,6 +884,9 @@
887884

888885
$('#txGetUnspent').click(txGetUnspent);
889886

887+
$('#txBCI').click(txChangeType);
888+
$('#txBBE').click(txChangeType);
889+
890890
onInput($('#txSec'), txOnChangeSec);
891891
onInput($('#txUnspent'), txOnChangeUnspent);
892892
onInput($('#txHex'), txOnChangeHex);

0 commit comments

Comments
 (0)