This repository has been archived by the owner on Apr 20, 2022. It is now read-only.
/
blockchainapi.min.js
1 lines (1 loc) · 4.49 KB
/
blockchainapi.min.js
1
function _BlockchainAPI(){var a=this;this.get_history=function(e,b,d,c){MyWallet.setLoadingText("Loading transactions");$.ajax({type:"POST",dataType:"json",url:root+"multiaddr",data:{active:MyWallet.getActiveAddresses().join("|"),format:"json",filter:d,offset:c*50},success:function(f){if(f.error!=null){MyWallet.makeNotice("error","misc-error",f.error)}try{try{if(c==0&&d==0){localStorage.setItem("multiaddr",JSON.stringify(f))}}catch(g){}e(f)}catch(g){MyWallet.makeNotice("error","misc-error",g);b()}},error:function(f){if(f.responseText){MyWallet.makeNotice("error","misc-error",f.responseText)}else{MyWallet.makeNotice("error","misc-error","Error Downloading Wallet Balance")}b()}})};this.get_balances=function(d,c,b){MyWallet.setLoadingText("Getting Balances");$.ajax({type:"POST",url:root+"multiaddr",dataType:"json",data:{active:d.join("|"),simple:true,format:"json"},success:function(f){for(var e in f){if(MyWallet.addressExists(e)){MyWallet.setAddressBalance(e,f[e].final_balance)}}c(f)},error:function(f){b(f.responseText)}})};this.get_balance=function(d,c,b){MyWallet.setLoadingText("Getting Balance");this.get_balances(d,function(g){var f=0;for(var e in g){f+=g[e].final_balance}c(f)},b)};this.get_ticker=function(){MyWallet.setLoadingText("Getting Ticker Data");$.ajax({type:"GET",dataType:"json",url:root+"ticker",data:{format:"json"},success:function(d){var b=$("#send-ticker ul").empty();b.append('<li class="nav-header">Exchange Rates</li>');for(var c in d){b.append('<li><div style="width:35px;padding-left:10px;font-weight:bold;display:inline-block">'+c+'</div> <i class="icon-user" style="background-image:url('+resource+((d[c]["15m"]>=d[c]["24h"])?"up_green.png":"down_red.png")+');width:14px;background-position:0px"></i>'+d[c]["15m"]+"</li>")}b.append('<li style="font-size:10px;padding-left:10px;">Delayed By Up To 15 minutes</li>')},error:function(b){console.log(b)}})};this.resolve_firstbits=function(d,c,b){MyWallet.setLoadingText("Querying Firstbits");$.ajax({type:"GET",url:root+"q/resolvefirstbits/"+d,data:{format:"plain"},success:function(e){if(e==null||e.length==0){b()}else{c(e)}},error:function(f){b(f.responseText)}})};this.get_rejection_reason=function(d,c,b){MyWallet.setLoadingText("Querying Rejection Reason");$.ajax({type:"GET",url:root+"q/rejected/"+d,data:{format:"plain"},success:function(e){if(e==null||e.length==0){b()}else{c(e)}},error:function(f){b(f.responseText)}})};this.push_tx=function(g,j,m,k){try{MyWallet.setLoadingText("Pushing Transaction");var n=MyWallet.getTransactions();if(n.length>0){var h=n[0].txIndex}function o(){m();function e(){MyWallet.get_history(function(){if(n.length==0||n[0].txIndex==h){a.get_rejection_reason(Crypto.util.bytesToHex(g.getHash().reverse()),function(q){MyWallet.makeNotice("error","tx-error",q)},function(){MyWallet.makeNotice("error","tx-error","Unknown Error Pushing Transaction")})}else{playSound("beep")}},function(){MyWallet.makeNotice("error","tx-error","Unable to determine if transaction was submitted. Please re-login.")})}if(!window.WebSocket||ws==null||ws.readyState!=WebSocket.OPEN){e()}else{setTimeout(function(){if(n.length==0||n[0].txIndex==h){e()}},2000)}}var p=g.serialize();function l(){var e=Crypto.util.bytesToHex(p);var q={format:"plain",tx:e};if(j){q.note=j}$.ajax({type:"POST",url:root+"pushtx",data:q,success:function(){o()},error:function(r){k(r?r.responseText:null)}})}try{var f=new ArrayBuffer(p.length);var c=new Int8Array(f);c.set(p);var b=new Blob([f],{type:"application/octet-stream"});if(b.size!=p.length){throw"Inconsistent Data Sizes (blob : "+b.size+" s : "+p.length+" buffer : "+f.byteLength+")"}var d=new FormData();d.append("txbytes",b);if(j){d.append("note",j)}d.append("format","plain");$.ajax({url:root+"pushtx",data:d,processData:false,contentType:false,type:"POST",success:function(){o()},error:function(e){l()}})}catch(i){console.log(i);l()}}catch(i){console.log(i);k(i)}};this.get_unspent=function(c,d,b){MyWallet.setLoadingText("Getting Unspent Outputs");$.ajax({type:"POST",dataType:"json",url:root+"unspent",data:{active:c.join("|"),format:"json"},success:function(g){try{if(g.error!=null){throw g.error}if(g.notice!=null){MyWallet.makeNotice("notice","misc-notice",g.notice)}try{localStorage.setItem("unspent",data)}catch(f){}d(g)}catch(f){b(f)}},error:function(g){try{try{var f=localStorage.getItem("unspent");if(f!=null){var i=$.parseJSON(f);d(i);return}}catch(h){console.log(h)}if(g.responseText){throw g.responseText}else{throw"Error Contacting Server. No unspent outputs available in cache."}}catch(h){b(h)}}})}}var BlockchainAPI=new _BlockchainAPI();