import systemConfiguration from 'utils/SystemConfiguration.js' const bitcoin = require('bitcoinjs-lib') let BtcUtil = { getBalance:async function(address,success) { let balance=0; try{ let res= await uni.request({ url: 'http://scan.weirui0755.com/btc/api/address/balancetrend/btc/' + address, //请求接口 header: { 'content-type': 'application/x-www-form-urlencoded', //自定义请求头信息 } }); if (res.data.code === 1) { if(res.data.data.length>0){ var data=res.data.data[0]; console.log(data,11111) for(let b in data){ balance=data[b]; } } } }catch(e){ //TODO handle the exception } return balance; }, btcToSatoshi:function(btcAmount){ return Math.ceil(btcAmount * 1e8); }, sendTransaction:async function(fromAddress, toAddress, value, privateKey){ const utxo = await fetch(systemConfiguration.constant.btcUtxo+fromAddress); const utxoData=await utxo.json(); const txs=utxoData.data.txs; let txsList=[]; let remainingValue=value; let balanceSatoshis=0; for(let i=0;iremainingValue){ break; } remainingValue=remainingValue-txs[i].value; } if(balanceSatoshis<=value){ throw new Error("Insufficient balance"); } console.log(balanceSatoshis,value) const feeSatoshis=this.btcToSatoshi(0.0001); balanceSatoshis=this.btcToSatoshi(balanceSatoshis); value=this.btcToSatoshi(value); let change = balanceSatoshis - feeSatoshis - value; let bob = new bitcoin.ECPair.fromWIF(privateKey,systemConfiguration.constant.btcNetwork); let txb = new bitcoin.TransactionBuilder(systemConfiguration.constant.btcNetwork); for(let i=0;i