[Ethereum] In the truffle console, how to set and get current account

accountstestrpctruffle

I'm using the $ truffle console.
I can see my available accounts using truffle(development)> web3.eth.accounts.

But when I run some smart contract code, which account is running the contract?

And, how can I change the account which is running the contracts in the truffle console?

Best Answer

In truffle console:

var accounts;
// in web front-end, use an onload listener and similar to this manual flow ... 
web3.eth.getAccounts(function(err,res) { accounts = res; });

var account1 = accounts[0]; // first account
var account2 = accounts[1]; // second account, if exists
...

var contract;
Contract.deployed()
.then(function(response) {
  contract = response;
  return contract.function(arg1, arg2, {from: account2}); // send txn from 2nd account

In Truffle tests you can start out with accounts passed in for convenience:

contract("basic test pattern", function(accounts) {
  owner = accounts[0];
  ...

Hope it helps.

Related Topic