NodeJS con HDWalletProvider

Quiero ejecutar transacciones Ethereum firmadas desde un programa NodeJS. Estoy creando un web3_provider como este

var contract = require("truffle-contract");

var provider = new HDWalletProvider("nemonic", "https://rinkeby.infura.io/xxxxx");
// if I change the above line to: var provider = new Web3.providers.HttpProvider("https://rinkeby.infura.io/xxxxx");
// Everything works fine
var web3 = new Web3(provider); 

var myContract = contract(myABI);
myContract.setProvider(web3.currentProvider);

Cuando trato de ejecutar transacciones con HDWalletProvider, aparece el error: "Cuenta no encontrada". ¿Alguien ha podido usar HDWalletProvider para ejecutar con éxito transacciones firmadas? ¿O lo estoy usando incorrectamente?

Respuestas (2)

Asegúrese de que var HDWalletProvider = require("truffle-hdwallet-provider");esté instalado correctamente y sea necesario. npm install truffle-hdwallet-provider --saveinstalará el módulo.

En segundo lugar, su frase "nemonic" tiene un formato incorrecto. Una semilla nemónica debería verse así: retreat attack lift winter amazing noodle interest dutch craft old solve savey es probable que sea la causa de su error.

Reemplacé mi frase inicial con la palabra "nemonic" porque no quería publicarla públicamente. Y HDWalletProvider está instalado correctamente.
Eso es inteligente, debería haberlo reconocido. Veo el problema. No puede establecer Proveedor en un objeto de contrato. El contrato ya está implementado, en cuyo caso debe proporcionar una dirección. O necesita implementar el contrato.
¿Podría comprobar también su versión de web3js? Gracias
Ese no es un objeto de contrato, es un contrato de trufa: npmjs.com/package/truffle-contract . Estoy usando: "truffle-contrato":"^3.0.5", "truffle-hdwallet-provider": "0.0.3", "web3": "^1.0.0-beta.26",

Esta es la sintaxis del código que siempre uso en JS para HDWallet Provider. Funciona bien cada vez.

provider: () => new HDWalletProvider(secret, "http://IP_address:Port"),

Nota: uso http, no http(s)