Skip to content

Instantly share code, notes, and snippets.

@leberknecht
Created August 16, 2018 08:08
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save leberknecht/5fbaeee87855bff585cec83b75e95e72 to your computer and use it in GitHub Desktop.
Save leberknecht/5fbaeee87855bff585cec83b75e95e72 to your computer and use it in GitHub Desktop.
Using events in web3 v1.0
/* contract:
pragma solidity ^0.4.23;
contract A {
event SomethingHappend(
address indexed _from,
uint _value
);
uint public x = 42;
function someMethod() public view returns(uint)
{
return x;
}
function doSomething() public {
x = x + 1;
emit SomethingHappend(msg.sender, x);
}
}
*/
const Web3 = require('web3');
let web3 = new Web3(new Web3.providers.WebsocketProvider('ws://localhost:8546'));
(async() => {
let contract = await new web3.eth.Contract([{"constant":true,"inputs":[],"name":"x","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"doSomething","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"someMethod","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"SomethingHappend","type":"event"}]);
let gasPrice = 8000000000;
let fromAddres = '0x1fdf23c1c30a5e20c5dd7cb4fae9941105ddca40';
contract.deploy({
data: '0x6080604052602a60005534801561001557600080fd5b50610162806100256000396000f300608060405260043610610057576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630c55699c1461005c57806382692679146100875780638d5a4e591461009e575b600080fd5b34801561006857600080fd5b506100716100c9565b6040518082815260200191505060405180910390f35b34801561009357600080fd5b5061009c6100cf565b005b3480156100aa57600080fd5b506100b361012d565b6040518082815260200191505060405180910390f35b60005481565b6001600054016000819055503373ffffffffffffffffffffffffffffffffffffffff167f1be234377b3e1d14f2ea8f690f4b54a0e80c32663e462fbbfba71daffae4bba26000546040518082815260200191505060405180910390a2565b600080549050905600a165627a7a723058209823e7530bfd65b11c6540b554450a4e6ddb5be1af9163e94976d35d43e2489f0029'
}).send({
from: fromAddres,
gas: 4700000,
gasPrice: gasPrice
})
.then((instance) => {
instance.events.SomethingHappend({}).on('data', (event) => {
console.log('event triggered');
console.log(event);
});
instance.methods.doSomething().send({
gas: 4700000,
from: fromAddres,
gasPrice: gasPrice
});
});
})();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment