web3.js no devuelve todas las cuentas

Estoy tratando de armar una aplicación simple usando Truffle, Metamask y ASP.NET.

He creado un montón de cuentas de prueba en Metamask, luego empiezo testrpc especificando explícitamente un par de esas cuentas y su saldo inicial, así:

testrpc --account="0xa3........18, 1000000000000000000000" --account="0x80.......08, 1000000000000000000000"

En el registro de testrpc puedo ver que estos se inician correctamente:

Available Accounts
==================
(0) 0x27.....d5
(1) 0x1b.....24

Luego implemento mi contrato, inicio sesión en Metamask y luego abro mi aplicación web.

En mi js puedo ver que está recuperando la instancia web3 de metamask:

            if (typeof web3 !== 'undefined') { // This evaluates to true
                App.web3Provider = web3.currentProvider;
                web3 = new Web3(web3.currentProvider);
                console.log("Already have a web3 instance");
            } else {

Trato de obtener la lista de cuentas como esta:

            App.contracts.JmTest.deployed().then(function(instance) {

                web3.eth.getAccounts(function (error, accounts) {
                    if (error) {
                        console.log(error);
                    }

                    console.dir(accounts);

Sin embargo, solo muestra una de las dos cuentas con las que comencé testrpc...

Array(1)
0: "0x27.....d5"

Resulta que esta es la cuenta actualmente seleccionada en Metamask. Si inicio testrpc sin especificar ninguna cuenta y reinicio Chrome, sucede lo mismo; de nuevo, solo obtengo la cuenta actualmente seleccionada en Metamask.

¿Qué me estoy perdiendo?

Respuestas (1)

Ok, entonces parece que es un caso de RTFM....

Cuando un usuario selecciona una cuenta en MetaMask, esa cuenta se convierte silenciosamente en web3.eth.accounts[0] en su contexto JS, el único miembro de la matriz web3.eth.accounts .

Entonces, ¿esto significa que no podemos recorrer todas las cuentas de prueba en metamask? como cuando usamos web3.eth.accounts, silenciosamente toma las cuentas[0].