From 7355e792d49479a3f3621fb7ae9f9fc32f03524d Mon Sep 17 00:00:00 2001 From: alamshafil Date: Fri, 16 Sep 2022 16:19:19 -0400 Subject: [PATCH] Add Avian API support --- js/coinbin.js | 58 +++++++++++++++++---------------------------------- 1 file changed, 19 insertions(+), 39 deletions(-) diff --git a/js/coinbin.js b/js/coinbin.js index 5f25a3f..8fb6bf9 100644 --- a/js/coinbin.js +++ b/js/coinbin.js @@ -2,9 +2,9 @@ $(document).ready(function() { /* open wallet code */ - var explorer_tx = "https://coinb.in/tx/" - var explorer_addr = "https://coinb.in/addr/" - var explorer_block = "https://coinb.in/block/" + var explorer_tx = "https://explorer.avn.network/tx/" + var explorer_addr = "https://explorer.avn.network/addr/" + var explorer_block = "https:/explorer.avn.network/block/" var wallet_timer = false; @@ -909,11 +909,7 @@ $(document).ready(function() { var host = $(this).attr('rel'); // Avian (api.avn.network) - if(host=='chain.so_avianmainnet'){ - listUnspentAvianAPI(redeem, "BTC"); - } else { - listUnspentDefault(redeem); - } + listUnspentAvianAPI(redeem, "AVN"); if($("#redeemFromStatus").hasClass("hidden")) { // An ethical dilemma: Should we automatically set nLockTime? @@ -1111,24 +1107,17 @@ $(document).ready(function() { function listUnspentAvianAPI(redeem, network){ $.ajax ({ type: "GET", - url: "https://chain.so/api/v2/get_tx_unspent/"+network+"/"+redeem.addr, + url: "https://api.avn.network/unspent/"+redeem.addr, dataType: "json", error: function(data) { $("#redeemFromStatus").removeClass('hidden').html(' Unexpected error, unable to retrieve unspent outputs!'); }, success: function(data) { - if((data.status && data.data) && data.status=='success'){ + if(data.result && data.error == null){ $("#redeemFromAddress").removeClass('hidden').html(' Retrieved unspent inputs from address '+redeem.addr+''); - for(var i in data.data.txs){ - var o = data.data.txs[i]; - var tx = ((""+o.txid).match(/.{1,2}/g).reverse()).join("")+''; - if(tx.match(/^[a-f0-9]+$/)){ - var n = o.output_no; - var script = (redeem.redeemscript==true) ? redeem.decodedRs : o.script_hex; - var amount = o.value; - addOutput(tx, n, script, amount); - } - } + data.result.forEach(i => { + addOutput(i.txid, i.index, i.script, (i.value/100000000)); + }); } else { $("#redeemFromStatus").removeClass('hidden').html(' Unexpected error, unable to retrieve unspent outputs.'); } @@ -1197,7 +1186,7 @@ $(document).ready(function() { /* broadcast a transaction */ $("#rawSubmitBtn").click(function(){ - rawSubmitDefault(this); + rawSubmitAvianAPI(this, "AVN"); }); // broadcast transaction via coinbin (default) @@ -1232,19 +1221,16 @@ $(document).ready(function() { $(thisbtn).val('Please wait, loading...').attr('disabled',true); $.ajax ({ type: "POST", - url: "https://chain.so/api/v2/send_tx/"+network+"/", - data: {"tx_hex":$("#rawTransaction").val()}, + url: "https://api.avn.network/broadcast", + data: {"raw":$("#rawTransaction").val()}, dataType: "json", error: function(data) { - var obj = $.parseJSON(data.responseText); - var r = ' '; - r += (obj.data.tx_hex) ? obj.data.tx_hex : ''; - r = (r!='') ? r : ' Failed to broadcast'; // build response + r = "Failed to broadcast: " + data.error.message; $("#rawTransactionStatus").addClass('alert-danger').removeClass('alert-success').removeClass("hidden").html(r).prepend(''); }, - success: function(data) { - if(data.status && data.data.txid){ - $("#rawTransactionStatus").addClass('alert-success').removeClass('alert-danger').removeClass("hidden").html(' TXID: ' + data.data.txid + '
View on Blockchain Explorer'); + success: function(data) { + if(data.result && data.error == null){ + $("#rawTransactionStatus").addClass('alert-success').removeClass('alert-danger').removeClass("hidden").html(' TXID: ' + data.result.txid + '
View on Blockchain Explorer'); } else { $("#rawTransactionStatus").addClass('alert-danger').removeClass('alert-success').removeClass("hidden").html(' Unexpected error, please try again').prepend(''); } @@ -1770,15 +1756,9 @@ $(document).ready(function() { // Avian (api.avn.network) $("#rawSubmitBtn").unbind(""); - if(host=="api.avn.network"){ - $("#rawSubmitBtn").click(function(){ - rawSubmitAvianAPI(this, "AVN"); - }); - } else { - $("#rawSubmitBtn").click(function(){ - rawSubmitDefault(this); // revert to default - }); - } + $("#rawSubmitBtn").click(function(){ + rawSubmitAvianAPI(this, "AVN"); + }); } function configureGetUnspentTx(){