You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

218 lines
6.8 KiB

/*
*
* Variables to store values:
*
*/
var BlockHash="";
var Block="";
var checkExternalBlock=0;
/*
*
* @returns {undefined}
* the function sets output to show radio buttons
* And then select between coins to start RPC calls
*
*/
var setCoinRadio=function(){
var html="";
for (var index = 0; index < coinManagement.Coins.length; index++) {
var coin=coinManagement.Coins[index].Symbol;
html=html+'<label class="radio-inline"><input class="coinRPCactive" type="radio" name="blockEXPcoin" data-value="'+coin+'">'+coin+'</label>';
}
document.getElementById('BlockExpCoin').innerHTML = html;
};
/*
*
* @param {type} coin
* @returns {undefined}
* called when user click on one of radio buttons
* to start RPC for particular coin
*/
var callBlockEXPRPC=function(coin){
var request="{\"agent\":\"SuperNET\",\"method\":\"bitcoinrpc\",\"setcoin\":\""+coin+"\"}";
SPNAPI.makeRequest(request, function(request,response){
response=JSON.parse(response);
if(response.result && response.result==='set bitcoin RPC coin'){
blockExp_input_table();
}
});
};
/*
*
* @param {type} height
* @returns {undefined}
* Function gets the blockhash when called and is stored in global variable
* (initially height is set to zero)
*
*/
var filterInt = function (value) {
if(/^(\-|\+)?([0-9]+|Infinity)$/.test(value))
return Number(value);
return "NaN";
};
var getBlockhash= function(height){
var height=($('#BlockExp_height').val());
/*
if (height === "NaN" || height ==='Infinity') {
height=0;
}*/
var request="{\"agent\":\"ramchain\",\"method\":\"getblockhash\",\"height\":\""+height+"\"}";
SPNAPI.makeRequest(request, function(request,response){
response=JSON.parse(response);
if(response.result){
BlockHash=response.result;
//Blockhashoutput
document.getElementById('block_output_table').innerHTML='<tr><td >'+'Blockhash is:</td><td width="300px"> '+BlockHash+'</td></tr>';
$('#BlockExp_blockhash').val(BlockHash);
}
});
};
/*
*
* @param {type} hash
* @returns {undefined}
* Function gets Block for a paritculat blockhash
* and store inside global varianle
*
*/
var getBlock= function(hash){
var inputhash=$('#BlockExp_blockhash').val();
if(inputhash!==hash){
hash=inputhash;
}
var request="{\"agent\":\"ramchain\",\"method\":\"getblock\",\"blockhash\":\""+hash+"\",\"remoteonly\":\""+checkExternalBlock+"\"}";
SPNAPI.makeRequest(request, function(request,response){
response=JSON.parse(response);
if(response.result){
document.getElementById('block_output_table').innerHTML='<tr><td >'+'Block is: </td><td >'+response.result+'</th></td>';
Block=response.result;
}else if(response.error){
document.getElementById('block_output_table').innerHTML='<tr><td >'+JSON.stringify(response)+'</th></td>';
}
});
};
/*
*
* @param {type} Hash
* @returns {undefined}
* Function implements getrawtransaction API call to get raw transaction
*
*/
// Example Txids used
//0b9cf7e23c07dc02e31392548e743605df8f90acacfd749ae6aaa0457d62d08a
//081ed782fdcf940de229e89336247e1bcce3599613af26d9c47a8eb18d6a3bb7
//e7386986f14c994d6c70e8eb60753ea1fe2dc2a58567e6269dc6b04ef5310693
//5f7edfb417855f80b7c12e1a9c040f8b496db23c82c90e4de905b8cff8139f03
var getRawTransaction=function(Hash){
var inputhash=$('#BlockExp_txid').val();
var request="{\"agent\":\"ramchain\",\"method\":\"getrawtransaction\",\"txid\":\""+inputhash+"\",\"verbose\":1}";
SPNAPI.makeRequest(request, function(request,response){
document.getElementById('block_output_table').innerHTML='<tr><td>'+'Output is:</td><td width="300px"> '+response+'</th></td>';
/*response=JSON.parse(response);
if(response.result){
document.getElementById('Blockoutput').innerHTML=response.result;
//document.getElementById('Blockbutton').innerHTML='<button class="btn btn-raised btn-success btn-xs getBlockActionButton" data-hash="'+BlockHash+'">Get block</button>';
}*/
});
};
var change_ExternalBlocks=function(){
if(document.getElementById('cbChangeExternalBlocks').checked){
checkExternalBlock=1;
}else{
checkExternalBlock=0;
}
console.log("CheckExternalBlock flag change to "+checkExternalBlock);
};
document.getElementById('cbChangeExternalBlocks').onclick = function () {
change_ExternalBlocks();
};
/*
*
* called initially
*
*/
var startBlockExplorer=function(){
setCoinRadio();
};
var blockExp_input_table=function(){
var table='<tr><th>Input height:</th><td><input type="text" id="BlockExp_height"></td>\
<td><button class="btn btn-raised btn-success btn-xs getBlockHashActionButton" data-height="0">Get blockhash</button></td></tr>\
<tr><th>Blockhash:</th><td><input type="text" id="BlockExp_blockhash" value=""></td><td><button class="btn btn-raised btn-success btn-xs getBlockActionButton" data-hash="">Get block</button></td></tr>\n\
<tr><th>Txid:</th><td><input type="text" id="BlockExp_txid"></td><td><button class="btn btn-raised btn-success btn-xs getTrancationActionButton" data-hash="">Get transaction</button></td></tr>';
document.getElementById('block_input_table').innerHTML=table;
document.getElementById('block_output_table').innerHTML="";
};
function filesystem_show_file_name(){
$.ajax({
url:fileSystem.root.toURL()+"images/BTC_blocks.jpg",
type:'HEAD',
error: function()
{
console.log("file doesnt exists");
},
success: function(response, textStatus, jqXHR)
{
console.log("Hurray we are good to go!");
console.log("response is:");
//file exists
}
});
//document.getElementById('block_output_table').innerHTML='<a href="'+fileSystem.root.toURL()+"images/BTC_blocks.jpg"+'" download="MyGoogleLogo">download me</a>';
/*fileSystem.root.getFile('confs/iguana.4206523045167609019', {}, function(fileEntry) {
// Get a File object representing the file,
// then use FileReader to read its contents.
fileEntry.file(function(file) {
var reader = new FileReader();
reader.onloadend = function(e) {
//var txtArea = document.createElement('textarea');
console.log("Configuration file text: "+this.result.toString());
console.log("Full path is:"+fileEntry.fullPath);
//document.body.appendChild(txtArea);
document.getElementById('mousexy').innerHTML=this.result;
};
reader.readAsText(file);
}, errorHandler);
}, errorHandler);*/
}