Last active
October 14, 2022 11:43
-
-
Save zeuslawyer/189034cc9c8811d641e6805b5f8b76ff to your computer and use it in GitHub Desktop.
Ethereum Event Listener
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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