2016-10-21 10 views
1

Я работаю с Ethereum, javascript, web3.js, , bootstrap 3. функциональность похожа, когда транзакция происходит в blockchain, она должна запрашивать пароль для разблокировки учетной записи.Как разблокировать учетную запись в Ethereum с помощью пользовательского приглашения?

Я выполнил ниже код, но проблема с этим заключается в том, что он показывает пароль как текст, поэтому теперь я хочу создать пользовательское приглашение, которое берет пароль.

Я тоже пытался использовать bootbox.js, но это не сработало из-за проблемы синхронизации. т.е. перед вызовом приглашения он дает «Учетная запись заблокирована», не дожидается ввода пользователем пароля.

Я хочу использовать некоторое интерактивное приглашение, например, в «bootbox.js», чтобы получить пароль и дождаться ввода пользователя, а затем с этим вводом разблокировать учетную запись и затем выполнить транзакцию.

Это то, что я работал на

function unlockAccount(){ 
    var accounts = web3.eth.accounts; 
    var passPhrase = prompt("Enter the passPhrase",''); 
    web3.personal.unlockAccount(accounts[0],passPhrase); 

} 

Если вам нужны любые дополнительные детали спросить перед вами до голосования. Благодаря

ответ

0

Постарайся это (работал как шарм для меня):

var promptCount = 0; 
 
    window.pw_prompt = function (options) { 
 
     var lm = options.lm || "Password:", 
 
     bm = options.bm || "Submit"; 
 
     if (!options.callback) { 
 
     alert("No callback function provided! Please provide one.") 
 
     }; 
 

 
     var prompt = document.createElement("div"); 
 
     prompt.className = "pw_prompt"; 
 

 
     var submit = function() { 
 
     options.callback(input.value); 
 
     document.body.removeChild(prompt); 
 
     }; 
 

 
     var label = document.createElement("label"); 
 
     label.textContent = lm; 
 
     label.for = "pw_prompt_input" + (++promptCount); 
 
     prompt.appendChild(label); 
 

 
     var input = document.createElement("input"); 
 
     input.id = "pw_prompt_input" + (promptCount); 
 
     input.type = "password"; 
 
     input.addEventListener("keyup", function (e) { 
 
     if (e.keyCode == 13) submit(); 
 
     }, false); 
 
     prompt.appendChild(input); 
 

 
     var button = document.createElement("button"); 
 
     button.textContent = bm; 
 
     button.addEventListener("click", submit, false); 
 
     prompt.appendChild(button); 
 

 
     document.body.appendChild(prompt); 
 
     document.getElementById(input.id).focus() 
 
    }; 
 

 
pw_prompt({   
 
     lm: 'Enter Password to load your identity', 
 
     bm: 'Load', 
 
     callback: function (password) {  
 
      web3.personal.unlockAccount(accounts[0], password); 
 
     }});
.pw_prompt { 
 
     position: fixed; 
 
     left: 50%; 
 
     top: 50%; 
 
     margin-left: -150px; 
 
     padding: 15px; 
 
     /* width: 263px; */ 
 
     border: 1px solid black; 
 
     background: darkgrey; 
 
    } 
 
.pw_prompt label { 
 
    display:block; 
 
    margin-bottom:5px; 
 
} 
 
.pw_prompt input { 
 
    width:300px; 
 
    margin-bottom:10px; 
 
}

+0

спасибо за ответ, я должен рассмотреть его или кого-то еще. Я занимался этим, используя обещание и отложенную технику. –

 Смежные вопросы

  • Нет связанных вопросов^_^