Para hacer esto tuve que utilizar truffle-hdwallet-provider. Esto fue debido a
Para hacer esto tuve que utilizar truffle-hdwallet-provider. Esto fue debido a
la imposibilidad de unlockear la account en geth directamente por un cambio reciente.
la imposibilidad de unlockear la account en geth directamente por un cambio reciente:
Para elegir la account que se quiere utilizar hay que pasar la pkey de la account en la variable
```bash
de entorno ```GETH_ACCOUNT_PKEY```.
npm install truffle-hdwallet-provider
```
Luego, hay que obtener la clave privada de la cuenta Ethereum y ponerla en la variable de entorno ```GETH_ACCOUNT_PKEY``` antes de invocar el ```truffle migrate``` a la red.
Para obtener la clave privada hay que seguir las instrucciones en https://ethereum.stackexchange.com/questions/12830/how-to-get-private-key-from-account-address-and-password
Instalar **keythereum** en _otro_ directorio (porque si no se pelea con directorios que ya usa truffle):
```bash
mkdir /tmp/keythereum
cd /tmp/keythereum
npm install keythereum
```
Después, invocar a la consola (con ```attach.sh```) y ejecutar los siguientes pasos (cambiando _miclave_ por la clave de la cuenta -o el string vacío si la cuenta no tiene clave):
```bash
var keythereum = require("keythereum");
var datadir ="/home/bfa/bfa/network/node"; // si es la red de testing usar "/home/bfa/bfa/test2network/node"
var address="0xc8096d713000002c77e4eb62f0000ead5f105a7e";
const password ="miclave";
var keyObject = keythereum.importFromFile(address, datadir);
var privateKey = keythereum.recover(password, keyObject);
console.log(privateKey.toString('hex'));
```
el ```console.log()``` va a imprimir una clave con este aspecto: **bab415bada55bab415bada55bab415bada55bab415bada55bab415bada55bab4**.
Eso es lo que hay que poner en la variable de entorno ```GETH_ACCOUNT_PKEY```.
Para obtener la pkey desde el keystore de geth seguí las siguiente instrucciones: https://ethereum.stackexchange.com/questions/12830/how-to-get-private-key-from-account-address-and-password
(Si se quiere deployar a la red de testing utilizar ```--network bfatest2```)
Para hacerlo desde el REPL esto ayudó: https://stackoverflow.com/questions/18260605/how-to-require-node-module-in-node-repl-without-installing-globally