Skip to content

Instantly share code, notes, and snippets.

@lamlephamngoc
Last active November 13, 2018 20:37
Show Gist options
  • Save lamlephamngoc/fa483f4cc2de7d50340f45c470a6ab92 to your computer and use it in GitHub Desktop.
Save lamlephamngoc/fa483f4cc2de7d50340f45c470a6ab92 to your computer and use it in GitHub Desktop.
Ledger sign txn on Ropsten Infura - Failed to subscribe to new newBlockHeaders to confirm the transaction receipts
import web3 from './web3';
import TIIMPrivateSale from '../build/contracts/TIIMPrivateSale.json';
const privateSaleAddress = process.env.REACT_APP_PRIVATE_SALE_ADDRESS || '0xcf0e7791eaf5baca756ae7e5ae7b64b0ab5f8b61';
const instance = new web3.eth.Contract(
TIIMPrivateSale.abi, privateSaleAddress
);
export default instance;
import tiimPrivateSale from './ethereum/tiimPrivateSale';
...
submitPrivateSale = async (event) => {
event.preventDefault();
const {investor, value, bonus} = this.state;
this.closeSaleForm();
this.setState({privateSaleLoading: true});
const accounts = await web3.eth.getAccounts();
const owner = accounts[0];
try {
const txn = await tiimPrivateSale.methods
.sendToken(investor, web3.utils.toWei(value, 'ether'), web3.utils.toWei(bonus, 'ether') )
.send({from: owner});
} catch (err) {
console.log(err);
alert("Could not send private sale cause error : `" + err.message + "`");
this.setState({privateSaleLoading: false});
return;
}
const balance = await tiimToken.methods.balanceOf(this.state.privateSaleAddress).call();
this.setState({privateSaleTiimBalance: balance});
this.setState({privateSaleLoading: false});
this.resetSaleForm();
}
...
import Web3 from 'web3';
import TransportU2F from "@ledgerhq/hw-transport-u2f";
import createLedgerSubprovider from "@ledgerhq/web3-subprovider";
import ProviderEngine from "web3-provider-engine";
import FetchSubprovider from "web3-provider-engine/subproviders/fetch";
let web3;
const rpcUrl = process.env.REACT_APP_NETWORK_URL || "http://127.0.0.1:9545";
const networkId = parseInt(process.env.REACT_APP_NETWORK_ID || "1337", 10);
const engine = new ProviderEngine();
const getTransport = () => TransportU2F.create();
const ledger = createLedgerSubprovider(getTransport, {
networkId,
accountsOffSet: 0
});
engine.addProvider(ledger);
engine.addProvider(new FetchSubprovider({ rpcUrl }));
engine.start();
web3 = new Web3(engine);
export default web3;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment