diff --git a/index.html b/index.html index d0df43e..cfd4145 100644 --- a/index.html +++ b/index.html @@ -1357,6 +1357,7 @@ + @@ -1421,6 +1422,7 @@ + @@ -1443,6 +1445,7 @@ + diff --git a/js/coinbin.js b/js/coinbin.js index 6a42fdd..798c3fe 100644 --- a/js/coinbin.js +++ b/js/coinbin.js @@ -935,6 +935,8 @@ $(document).ready(function() { } else if(host=='cryptoid.info_carboncoin'){ listUnspentCryptoidinfo_Carboncoin(redeem); + } else if(host=='cpuchain'){ + listUnspentCPUchain(redeem); } else { listUnspentDefault(redeem); } @@ -1213,6 +1215,39 @@ $(document).ready(function() { }); } + /* retrieve unspent data from cpuchain api */ + function listUnspentCPUchain(redeem){ + $.ajax ({ + type: "GET", + url: "https://api.cpuchain.org/unspent/"+redeem.addr, + dataType: "json", + error: function(data) { + $("#redeemFromStatus").removeClass('hidden').html(' Unexpected error, unable to retrieve unspent outputs!'); + }, + success: function(data) { + if(data.result){ + $("#redeemFromAddress").removeClass('hidden').html(' Retrieved unspent inputs from address '+redeem.addr+''); + for(var i in data.result){ + var o = data.result[i]; + var tx = ((""+o.txid).match(/.{1,2}/g).reverse()).join("")+''; + if(tx.match(/^[a-f0-9]+$/)){ + var n = o.index; + var script = (redeem.redeemscript==true) ? redeem.decodedRs : o.script; + var amount = ((o.value.toString()*1)/100000000).toFixed(8); + addOutput(tx, n, script, amount); + } + } + } else { + $("#redeemFromStatus").removeClass('hidden').html(' Unexpected error, unable to retrieve unspent outputs.'); + } + }, + complete: function(data, status) { + $("#redeemFromBtn").html("Load").attr('disabled',false); + totalInputAmount(); + } + }); + } + /* math to calculate the inputs and outputs */ @@ -1410,6 +1445,35 @@ $(document).ready(function() { }); } + // broadcast transaction via cpuchain api + function rawSubmitCPUchain(thisbtn){ + $(thisbtn).val('Please wait, loading...').attr('disabled',true); + $.ajax ({ + type: "POST", + url: "https://api.cpuchain.org/broadcast", + data: {"raw":$("#rawTransaction").val()}, + dataType: "json", + error: function(data) { + var obj = $.parseJSON(data.responseText); + var r = ' '; + r += (obj.data.raw) ? obj.data.raw : ''; + r = (r!='') ? r : ' Failed to broadcast'; // build response + $("#rawTransactionStatus").addClass('alert-danger').removeClass('alert-success').removeClass("hidden").html(r).prepend(''); + }, + success: function(data) { + if(data.result){ + $("#rawTransactionStatus").addClass('alert-success').removeClass('alert-danger').removeClass("hidden").html(' TXID: ' + data.result + '
View on Blockchain Explorer'); + } else { + $("#rawTransactionStatus").addClass('alert-danger').removeClass('alert-success').removeClass("hidden").html(' Unexpected error, please try again').prepend(''); + } + }, + complete: function(data, status) { + $("#rawTransactionStatus").fadeOut().fadeIn(); + $(thisbtn).val('Submit').attr('disabled',false); + } + }); + } + @@ -1865,6 +1929,11 @@ $(document).ready(function() { else if (coinjs.pub == 0x1e){ // DOGE explorer_addr = "https://chain.so/address/DOGE/"; } + else if (coinjs.pub == 0x1c){ // CPU + explorer_addr = "https://explorer.cpuchain.org/address/"; + explorer_tx = "https://explorer.cpuchain.org/tx/"; + coinjs.bech32.hrp = "cpu"; + } $("#statusSettings").addClass("alert-success").removeClass("hidden").html(" Settings updates successfully").fadeOut().fadeIn(); } else { @@ -1958,6 +2027,10 @@ $(document).ready(function() { $("#rawSubmitBtn").click(function(){ rawSubmitcryptoid_Carboncoin(this); }); + } else if(host=="cpuchain"){ + $("#rawSubmitBtn").click(function(){ + rawSubmitCPUchain(this); + }); } else { $("#rawSubmitBtn").click(function(){ rawSubmitDefault(this); // revert to default