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.
359 lines
12 KiB
359 lines
12 KiB
var WalletSettings = function() {
|
|
var handleWalletExportKeys = function() {
|
|
$('.wifkeys-form').validate({
|
|
// errorElement: 'span', //default input error message container
|
|
// errorClass: 'help-block', // default input error message class
|
|
// focusInvalid: false, // do not focus the last invalid input
|
|
rules: {
|
|
wifkeys_passphrase: {
|
|
required: true
|
|
}
|
|
},
|
|
messages: {
|
|
wifkeys_passphrase: {
|
|
required: _lang[defaultLang].SETTINGS.PASSPHRASE_REQ
|
|
}
|
|
},
|
|
submitHandler: function(form) {
|
|
console.log('wait till peer ip added to selected coin...');
|
|
|
|
var Getwifkeys_passphrase = $('#wifkeys_passphrase').val(),
|
|
WifKeyDivContent = '';
|
|
|
|
// First check which coins are active. Execute API for each mode of wallet
|
|
$.each([
|
|
'native',
|
|
'basilisk',
|
|
'full'
|
|
], function( index, value ) {
|
|
var tmpIguanaRPCAuth = 'tmpIgRPCUser@' + sessionStorage.getItem('IguanaRPCAuth'),
|
|
allcoins_ajax_data = {
|
|
'userpass': tmpIguanaRPCAuth,
|
|
'agent': 'InstantDEX',
|
|
'method': 'allcoins'
|
|
};
|
|
|
|
$.ajax({
|
|
type: 'POST',
|
|
data: JSON.stringify(allcoins_ajax_data),
|
|
url: 'http://127.0.0.1:' + config.iguanaPort,
|
|
success: function(data, textStatus, jqXHR) {
|
|
var AllcoinsDataOutput = JSON.parse(data);
|
|
// Only execute further code if that mode has any coins active it. if none, skill checking on them.
|
|
if (AllcoinsDataOutput[value].length !== 0 ) {
|
|
console.log('== AllCoins Data OutPut ==');
|
|
console.log(value);
|
|
console.log(AllcoinsDataOutput[value]);
|
|
|
|
// First Run Encryptwallet API to get wif keys for each active coin
|
|
$.each(AllcoinsDataOutput[value], function(index) {
|
|
console.log(AllcoinsDataOutput[value][index]);
|
|
|
|
var wifkey_coin_handle = AllcoinsDataOutput[value][index],
|
|
tmpIguanaRPCAuth = 'tmpIgRPCUser@' + sessionStorage.getItem('IguanaRPCAuth'),
|
|
EncryptWallet_ajax_data = {
|
|
'userpass': tmpIguanaRPCAuth,
|
|
'agent': 'bitcoinrpc',
|
|
'method': 'encryptwallet',
|
|
'passphrase': Getwifkeys_passphrase
|
|
};
|
|
|
|
$.ajax({
|
|
type: 'POST',
|
|
data: JSON.stringify(EncryptWallet_ajax_data),
|
|
url: 'http://127.0.0.1:' + config.iguanaPort,
|
|
success: function(data, textStatus, jqXHR) {
|
|
var EncryptWalletDataOutput = JSON.parse(data);
|
|
|
|
console.log(EncryptWalletDataOutput[wifkey_coin_handle + 'wif']);
|
|
WifKeyDivContent += '<table class="table">';
|
|
'<tr>' +
|
|
'<td style="width: 5%">' +
|
|
'<b>' + wifkey_coin_handle + '</b>' +
|
|
'</td>' +
|
|
'<td>' + EncryptWalletDataOutput[wifkey_coin_handle] + '</td>' +
|
|
'</tr>' +
|
|
'<tr>' +
|
|
'<td>' +
|
|
'<b>' + wifkey_coin_handle + 'Wif</b>' +
|
|
'</td>' +
|
|
'<td>' + EncryptWalletDataOutput[wifkey_coin_handle + 'wif'] + '</td>' +
|
|
'</tr>' +
|
|
'</table>';
|
|
$('#wif-priv-keys').html(WifKeyDivContent);
|
|
},
|
|
error: function(xhr, textStatus, error) {
|
|
console.log('failed getting Coin History.');
|
|
console.log(xhr.statusText);
|
|
if ( xhr.readyState == 0 ) {
|
|
Iguana_ServiceUnavailable();
|
|
}
|
|
console.log(textStatus);
|
|
console.log(error);
|
|
}
|
|
});
|
|
});
|
|
|
|
//Second run walletpassphrase again to make sure wallet is unlocked as before login.
|
|
var tmpIguanaRPCAuth = 'tmpIgRPCUser@' + sessionStorage.getItem('IguanaRPCAuth'),
|
|
WalletPassphrase_ajax_data = {
|
|
'userpass': tmpIguanaRPCAuth,
|
|
'agent': 'bitcoinrpc',
|
|
'method': 'walletpassphrase',
|
|
'password': Getwifkeys_passphrase,
|
|
'timeout': '2592000'
|
|
};
|
|
|
|
$.ajax({
|
|
type: 'POST',
|
|
data: JSON.stringify(WalletPassphrase_ajax_data),
|
|
url: 'http://127.0.0.1:' + config.iguanaPort,
|
|
success: function(data, textStatus, jqXHR) {
|
|
var WalletPassphraseDataOutput = JSON.parse(data);
|
|
console.log(WalletPassphraseDataOutput);
|
|
},
|
|
error: function(xhr, textStatus, error) {
|
|
console.log('failed getting Coin History.');
|
|
console.log(xhr.statusText);
|
|
if ( xhr.readyState == 0 ) {
|
|
Iguana_ServiceUnavailable();
|
|
}
|
|
console.log(textStatus);
|
|
console.log(error);
|
|
}
|
|
});
|
|
}
|
|
},
|
|
error: function(xhr, textStatus, error) {
|
|
console.log('failed getting Coin History.');
|
|
console.log(xhr.statusText);
|
|
if ( xhr.readyState == 0 ) {
|
|
Iguana_ServiceUnavailable();
|
|
}
|
|
console.log(textStatus);
|
|
console.log(error);
|
|
}
|
|
});
|
|
});
|
|
}
|
|
});
|
|
|
|
$('.wifkeys-form input').keypress(function(e) {
|
|
if (e.which == 13) {
|
|
if ($('.wifkeys-form').validate().form()) {
|
|
$('.wifkeys-form').submit(); // form validation success, call ajax form submit
|
|
}
|
|
|
|
return false;
|
|
}
|
|
});
|
|
};
|
|
|
|
var handleWalletImportKeys = function() {
|
|
$('.wifkeys-import-form').validate({
|
|
// errorElement: 'span', //default input error message container
|
|
// errorClass: 'help-block', // default input error message class
|
|
// focusInvalid: false, // do not focus the last invalid input
|
|
rules: {
|
|
import_wifkey: {
|
|
required: true
|
|
}
|
|
},
|
|
messages: {
|
|
import_wifkey: {
|
|
required: 'Private Key is required.'
|
|
}
|
|
},
|
|
submitHandler: function(form) {
|
|
var Getimport_wifkey = $('#import_wifkey').val();
|
|
EDEXimportprivkey(Getimport_wifkey)
|
|
.then(function(result) {
|
|
console.log(result);
|
|
if ( result.result !== undefined && result.result == 'success' ) {
|
|
toastr.success(_lang[defaultLang].TOASTR.PRIV_KEY_IMPORTED, _lang[defaultLang].TOASTR.SETTINGS_NOTIFICATION);
|
|
$('#import_wifkey').val('');
|
|
}
|
|
if ( result.error !== undefined && result.error == 'null return from iguana_bitcoinRPC' ) {
|
|
toastr.info(_lang[defaultLang].TOASTR.PRIV_KEY_NOT_IMPORTED, _lang[defaultLang].TOASTR.SETTINGS_NOTIFICATION);
|
|
toastr.error(_lang[defaultLang].TOASTR.NULL_RETURN, _lang[defaultLang].TOASTR.SETTINGS_NOTIFICATION);
|
|
}
|
|
});
|
|
}
|
|
});
|
|
|
|
$('.wifkeys-import-form input').keypress(function(e) {
|
|
if (e.which == 13) {
|
|
if ($('.wifkeys-import-form').validate().form()) {
|
|
$('.wifkeys-import-form').submit(); // form validation success, call ajax form submit
|
|
}
|
|
|
|
return false;
|
|
}
|
|
});
|
|
};
|
|
|
|
return {
|
|
// main function to initiate the module
|
|
init: function() {
|
|
handleWalletExportKeys();
|
|
handleWalletImportKeys();
|
|
}
|
|
};
|
|
}();
|
|
|
|
// DOM Ready =============================================================
|
|
$(document).ready(function() {
|
|
WalletSettings.init();
|
|
});
|
|
|
|
// Functions =============================================================
|
|
function Settings_ShowWalletInfo() {
|
|
var CheckLoginData = JSON.parse(sessionStorage.getItem('IguanaActiveAccount'));
|
|
|
|
console.log(JSON.parse(CheckLoginData));
|
|
$('#winfo_pubkey_value').text(JSON.parse(CheckLoginData).pubkey);
|
|
$('#winfo_btcpubkey_value').text(JSON.parse(CheckLoginData).btcpubkey);
|
|
$('#winfo_rmd160_value').text(JSON.parse(CheckLoginData).rmd160);
|
|
$('#winfo_NXT_value').text(JSON.parse(CheckLoginData).NXT);
|
|
$('#winfo_notary_value').text(JSON.parse(CheckLoginData).notary);
|
|
$('#winfo_status_value').text(JSON.parse(CheckLoginData).status);
|
|
}
|
|
|
|
function Settings_ShowCoinPeers() {
|
|
console.log('waiting getpeers api to complete...');
|
|
$(
|
|
'#coin_supernetpeers_h,' +
|
|
'#coin_supernetpeers,' +
|
|
'#coin_rawpeers_h,' +
|
|
'#coin_rawpeers'
|
|
)
|
|
.text('');
|
|
var settings_selected_coinname_code_val = $('option:selected', '#settings_select_coin_options').val(),
|
|
tmpIguanaRPCAuth = 'tmpIgRPCUser@' + sessionStorage.getItem('IguanaRPCAuth'),
|
|
ajax_data = {
|
|
'userpass': tmpIguanaRPCAuth,
|
|
'agent': 'SuperNET',
|
|
'method': 'getpeers',
|
|
'activecoin': settings_selected_coinname_code_val
|
|
};
|
|
|
|
$.ajax({
|
|
type: 'POST',
|
|
data: JSON.stringify(ajax_data),
|
|
url: 'http://127.0.0.1:' + config.iguanaPort,
|
|
success: function(data, textStatus, jqXHR) {
|
|
var getCoinPeers = JSON.parse(data);
|
|
console.log(getCoinPeers);
|
|
|
|
if (getCoinPeers.supernet[0].peers !== undefined ) {
|
|
var supernet_peers_list = getCoinPeers.supernet[0].peers;
|
|
|
|
if (supernet_peers_list != 0 ) {
|
|
$('#coin_supernetpeers_h').text(getCoinPeers.supernet[0].coin);
|
|
$.each(supernet_peers_list, function( index, value ) {
|
|
var br_val = '';
|
|
|
|
if ( index != 0 ) {
|
|
br_val = '<br>';
|
|
}
|
|
|
|
$('#coin_supernetpeers').append(br_val + value);
|
|
});
|
|
}
|
|
}
|
|
|
|
if (getCoinPeers.rawpeers[0].peers !== undefined ) {
|
|
var raw_peers_list = getCoinPeers.rawpeers[0].peers;
|
|
|
|
if (raw_peers_list != 0 ) {
|
|
$('#coin_rawpeers_h').text(getCoinPeers.supernet[0].coin);
|
|
$.each(raw_peers_list, function( index, value ) {
|
|
var br_val = '';
|
|
|
|
if ( index != 0 ) {
|
|
br_val = '<br>';
|
|
}
|
|
|
|
$('#coin_rawpeers').append(br_val + value);
|
|
});
|
|
}
|
|
}
|
|
},
|
|
error: function(xhr, textStatus, error) {
|
|
console.log('failed getting Coin History.');
|
|
console.log(xhr.statusText);
|
|
if ( xhr.readyState == 0 ) {
|
|
Iguana_ServiceUnavailable();
|
|
}
|
|
console.log(textStatus);
|
|
console.log(error);
|
|
}
|
|
});
|
|
}
|
|
|
|
function Settings_AddCoinPeers() {
|
|
console.log('wait till peer ip added to selected coin...');
|
|
var settings_selected_coinname_code_val = $('option:selected', '#settings_select_coin_addpeer_options').val(),
|
|
settings_add_peer_ip_val = $('#settings_add_peer_ip').val(),
|
|
tmpIguanaRPCAuth = 'tmpIgRPCUser@' + sessionStorage.getItem('IguanaRPCAuth'),
|
|
ajax_data = {
|
|
'userpass': tmpIguanaRPCAuth,
|
|
'agent': 'iguana',
|
|
'method': 'addnode',
|
|
'activecoin': settings_selected_coinname_code_val,
|
|
'ipaddr': settings_add_peer_ip_val
|
|
};
|
|
|
|
$.ajax({
|
|
type: 'POST',
|
|
data: JSON.stringify(ajax_data),
|
|
url: 'http://127.0.0.1:' + config.iguanaPort,
|
|
success: function(data, textStatus, jqXHR) {
|
|
var getAddCoinPeers = JSON.parse(data);
|
|
|
|
console.log(getAddCoinPeers);
|
|
if ( getAddCoinPeers.result == 'addnode submitted' ) {
|
|
toastr.success(settings_add_peer_ip_val + ' ' + _lang[defaultLang].TOASTR.ADDED_TO + ' ' + settings_selected_coinname_code_val + ' ' + _lang[defaultLang].TOASTR.SUCCESSFULLY, _lang[defaultLang].TOASTR.COIN_NOTIFICATION);
|
|
$('#settings_add_peer_ip').val('');
|
|
}
|
|
},
|
|
error: function(xhr, textStatus, error) {
|
|
console.log('failed getting Coin History.');
|
|
console.log(xhr.statusText);
|
|
if ( xhr.readyState == 0 ) {
|
|
Iguana_ServiceUnavailable();
|
|
}
|
|
console.log(textStatus);
|
|
console.log(error);
|
|
}
|
|
});
|
|
}
|
|
|
|
function Settings_LoadDebugLog() {
|
|
var settings_selected_targed_val = $('option:selected', '#settings_select_debuglog_options').val(),
|
|
numLinesToRead = $('#read_debug_log_lines').val(),
|
|
ajax_data = {
|
|
'herdname': settings_selected_targed_val,
|
|
'lastLines': numLinesToRead
|
|
};
|
|
|
|
$.ajax({
|
|
type: 'POST',
|
|
data: ajax_data,
|
|
url: 'http://127.0.0.1:17777/shepherd/debuglog',
|
|
success: function(data, textStatus, jqXHR) {
|
|
$('#read_debug_log_textarea').text(JSON.parse(data).result.replace('\n', '\r\n'));
|
|
console.log(data);
|
|
},
|
|
error: function(xhr, textStatus, error) {
|
|
console.log('failed getting debug.log');
|
|
console.log(xhr.statusText);
|
|
if ( xhr.readyState == 0 ) {
|
|
Iguana_ServiceUnavailable();
|
|
}
|
|
console.log(textStatus);
|
|
console.log(error);
|
|
$('#read_debug_log_textarea').text(error);
|
|
}
|
|
});
|
|
}
|