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  }