Skip to content

Instantly share code, notes, and snippets.

@zeuslawyer
Last active October 14, 2022 11:43
Show Gist options
  • Save zeuslawyer/189034cc9c8811d641e6805b5f8b76ff to your computer and use it in GitHub Desktop.
Save zeuslawyer/189034cc9c8811d641e6805b5f8b76ff to your computer and use it in GitHub Desktop.
Ethereum Event Listener
const ethers = require("ethers");
const TetherTokenABI = require("../ABI/TetherToken.json");
const MyContractAbi = require("../ABI/EventEmitter.json");
require("dotenv").config();
const listenToTether = async () => {
const USDT = "0x509Ee0d083DdF8AC028f2a56731412edD63223B9";
const provider1 = new ethers.providers.WebSocketProvider(
process.env.REACT_APP_GOERLI_RPC_URL_WS
);
// OR
const provider2 = new ethers.providers.Web3Provider(window.ethereum);
const tokenContract = new ethers.Contract(USDT, TetherTokenABI, provider1);
tokenContract.on("Transfer", (from, to, value, event) => {
console.log(" Transfer Event Detected! ", from, to, event);
});
const MyContractAdd = "0xe518CC0Bf7cC0fc891FBfeF00EA4cB1ab8A95cB1";
const myContract = new ethers.Contract(
MyContractAdd,
MyContractAbi,
provider.getSigner()
);
myContract.on("InputReceived", (caller, input, event) => {
console.log("Event Emitted:", caller, input, event);
});
console.log("Listening.......", process.env.REACT_APP_GOERLI_RPC_URL_WS);
};
listenToTether().catch(console.log);
useEffect(() => {
if (web3Props.signer) {
const contract = new ethers.Contract(
"0xe518CC0Bf7cC0fc891FBfeF00EA4cB1ab8A95cB1",
EventEmitterABI,
web3Props.signer // or provider
);
contract.on("InputReceived", (caller, input, event) => {
console.log("LISTENER TRIGGERED! ", caller, input, event.args);
setEventData([caller, input, event]);
});
return function cleanupListener() {
contract.removeAllListeners("InputReceived");
};
}
}, [web3Props]);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment