Guest User

Untitled

a guest
Feb 23rd, 2018
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.55 KB | None | 0 0
  1. // Load Ethereum
  2. const Web3 = require('web3');
  3. const fs = require('fs');
  4. const provider = 'ws://localhost:8545';
  5.  
  6. const web3 = new Web3(new Web3.providers.WebsocketProvider(provider));
  7. const eth = web3.eth;
  8.  
  9. /*
  10. provider account
  11. */
  12.  
  13. //create account object from private key string
  14. const account_number = "0x2592a882499edf8897256f95c2c50d689ce2657b";
  15.  
  16. /*
  17. contract
  18. */
  19.  
  20. //load contract interface file
  21. const eventEmitterFile = fs.readFileSync("event_emitter_abi.json");
  22.  
  23. //parse interface text to json object
  24. const emitterAbi = JSON.parse(eventEmitterFile);
  25.  
  26. //contract address(deployed to rinkeby testnet)
  27. const emitterAddress = "0x43fb05b642a784c882a59914cdab572aeb04a953";
  28.  
  29. //instantiate contract object
  30. const eventEmitterContract = new eth.Contract(emitterAbi, emitterAddress);
  31.  
  32. //make contract fire desired query with oracleAddress
  33. function triggerContractQuery(queryString, oracleAddress){
  34.  
  35. //call contract fireEvent method
  36. eventEmitterContract.methods.fireEvent(queryString, oracleAddress)
  37. .send({from: account_number})
  38. }
  39.  
  40. //respond to contract query
  41. function respondContractQuery(responseString){
  42.  
  43. //call contract callback method
  44. eventEmitterContract.methods.callBack(responseString)
  45. .send({from: account_number})
  46. }
  47.  
  48. /*
  49. Handle Query events from EventEmitter contract
  50. event Query(string queryString, address queryAddress);
  51. */
  52.  
  53. const queryEvent = eventEmitterContract.events.Query();
  54. queryEvent.on("data", callback);
  55.  
  56. function callback(q) {
  57. console.log(q);
  58. // do something
  59. }
  60.  
  61. triggerContractQuery("1234", "0x8cc628f5492ca0cef7918e5bf9554800c4d01760");
Add Comment
Please, Sign In to add comment