У меня есть тест, который выполняет функцию контракта для разных учетных записей. Как мне разблокировать эти учетные записи в контексте теста?
contract('MyContract', function (accounts) {
it("should perform differently for different accounts", function (done) {
var thisContract = MyContract.deployed();
thisContract.addAccounts([accounts[1], accounts[2]], {from: accounts[0]} ).then(
function (tx_id) {
/* this works because I manual unlock acc 0 on geth */
return thisContract.doSomething({from: accounts[0]});
}).then(
function (tx_id) {
/* is there something here I can do to unlock acc 1? */
return thisContract.doSomething({from: accounts[1]});
}).then(
function (tx_id) {
/* then here... */
return thisContract.doSomething({from: accounts[2]};
done();
}
).catch(done);
});
});
Вы не можете разблокировать учетные записи с помощью своего кода. Было бы проблемой, если бы код мог разблокировать ваши учетные записи.
Похоже, вы пишете модульные тесты. Вместо запуска geth вы можете попробовать использовать testrpc . Аккаунты в testrpc не нужно разблокировать перед использованием.
Эллиот МакНэри
межевание