github.com/elastos/Elastos.ELA.SideChain.ETH@v0.2.2/oracle/smallcrosschaintransaction.js (about) 1 "use strict"; 2 3 const child_process = require("child_process"); 4 5 const common = require("./common"); 6 7 module.exports = async function (json_data, res) { 8 try { 9 console.log("received small crosschain transaction: "); 10 let signature = json_data["params"]["signature"]; 11 let rawTx = json_data["params"]["rawTx"] 12 let mctxhash = json_data["params"]["txHash"]; 13 if (mctxhash.indexOf("0x") !== 0) mctxhash = "0x" + mctxhash; 14 15 let txprocessed = await common.web3.eth.getStorageAt(common.blackAdr, mctxhash, common.latest) 16 if (txprocessed != common.zeroHash64) { 17 console.log("allready accept txid", mctxhash) 18 common.web3.onSmallCrossTxSuccess(mctxhash) 19 res.json({"error": null, "id": null, "jsonrpc": "2.0", "result": true}); 20 return; 21 } 22 23 await common.web3.receivedSmallCrossTx(signature, rawTx); 24 res.json({"error": null, "id": null, "jsonrpc": "2.0", "result": false}); 25 return; 26 } catch (err) { 27 common.reterr(err, res); 28 return; 29 } 30 31 }