async componentDidMount(){ const manager = await lottery.methods.manager().call(); const players = await lottery.methods.getPlayers().call(); const balance = await web3.eth.getBalance(lottery.options.address); this.setState({manager, players, balance}); }
this.web3.eth .getCode(address) .then( code => code === "0x0" || code === "0x" ? resolve(false) : resolve(true) ) .catch(err => reject(err))
this.web3.eth.getAccounts().then(accounts => { console.log(`Updating USER from ${this.currentUser} to ${accounts[0]}`) this.currentUser = accounts[0] return accounts[0] })
const resolveWeb3 = (resolve) => { let { web3 } = window const alreadyInjected = typeof web3 !== 'undefined' // i.e. Mist/Metamask const localProvider = `http://localhost:9545` if (alreadyInjected) { console.log(`Injected web3 detected.`) web3 = new Web3(web3.currentProvider) } else { console.log(`No web3 instance injected, using Local web3.`) const provider = new Web3.providers.HttpProvider(localProvider) web3 = new Web3(provider) } resolve(web3) }
web3.eth.getTransactionReceipt(this.state.transactionHash, (err, txReceipt)=>{ console.log(err,txReceipt); this.setState({txReceipt}); })
async onClick() { try { //Grab all the accounts from metamask const accounts = await web3.eth.getAccounts(); this.setState({ message: "Choosing a winner..." }); //Send transaction to enter method with desired account await lottery.methods.pickWinner().send({ from: accounts[0] }); this.setState({ message: "A winner has been picked!" }); } catch (e) { console.log(e); } }
async onSubmit(e) { e.preventDefault(); try { //Grab all the accounts from metamask const accounts = await web3.eth.getAccounts(); this.setState({ message: "Waiting on transaction success..." }); //Send transaction to enter method with desired account await lottery.methods.enter().send({ from: accounts[0], value: web3.utils.toWei(this.state.value, "ether") }); this.setState({ message: "You have been entered!" }); } catch (e) { console.log(e); } }
<h2>Lottey Contract</h2> <p>this contract manager is by {this.state.manager}. There are currently {this.state.players.length} people entered, competing to win { web3.utils.fromWei(this.state.balance, 'ether')} ether! </p> <hr/>
web3.eth.sendTransaction(tx).then((receipt)=>{ console.log("receipt",receipt) this.setState({receipt:receipt}) });
web3.eth.sendSignedTransaction('0x' + serializedTx.toString('hex')).then((receipt)=>{ console.log("receipt",receipt) this.setState({rawReceipt:receipt}) });
async componentDidMount(){ const manager = await lottery.methods.manager().call(); const players = await lottery.methods.getPlayers().call(); const balance = await web3.eth.getBalance(lottery.options.address); this.setState ({ manager, players, balance }); }
async componentDidMount() { //Don't have to specify from property with MetaMask inside call const manager = await lottery.methods.manager().call(); const players = await lottery.methods.getPlayers().call(); const balance = await web3.eth.getBalance(lottery.options.address); this.setState({ manager, players, balance }); }
const resolveWeb3 = (resolve) => { let { web3 } = window const alreadyInjected = typeof web3 !== 'undefined' // i.e. Mist/Metamask const localProvider = `http://localhost:9545` if (alreadyInjected) { console.log(`Injected web3 detected.`) web3 = new Web3(web3.currentProvider) } else { console.log(`No web3 instance injected, using Local web3.`) const provider = new Web3.providers.HttpProvider(localProvider) web3 = new Web3(provider) } resolve(web3) }
This contract is manager by {this.state.manager}. There are currently {this.state.players.length} people entered, competing to win {web3.utils.fromWei(this.state.balance, 'ether')} ether! </p>