github.com/elastos/Elastos.ELA.SideChain.ETH@v0.2.2/oracle/common.js (about)

     1  "use strict";
     2  
     3  const Web3 = require("web3");
     4  const web3 = new Web3("http://127.0.0.1:20636");
     5  const ctrt = require("./ctrt");
     6  
     7  
     8  web3.extend({
     9      methods: [{
    10          name: 'getFailedRechargeTxs',
    11          call: 'eth_getFailedRechargeTxs',
    12          params: 1,
    13      },
    14      {
    15              name: 'getFailedRechargeTxByHash',
    16              call: 'eth_getFailedRechargeTxByHash',
    17              params: 1,
    18      },
    19      {
    20          name: 'sendInvalidWithdrawTransaction',
    21          call: 'eth_sendInvalidWithdrawTransaction',
    22          params: 2,
    23      },
    24      {
    25          name: 'receivedSmallCrossTx',
    26          call: 'eth_receivedSmallCrossTx',
    27          params: 2,
    28      },
    29      {
    30          name: 'onSmallCrossTxSuccess',
    31          call: 'eth_onSmallCrossTxSuccess',
    32          params: 1,
    33      },
    34      {
    35          name: 'getFrozenAccounts',
    36          call: 'eth_getFrozenAccounts',
    37          params: 0,
    38      }
    39      ]
    40  });
    41  const contract = new web3.eth.Contract(ctrt.abi);
    42  console.log(JSON.stringify(process.env.env));
    43  switch (process.env.env) {
    44      case "rinkeby":
    45          console.log("0x491bC043672B9286fA02FA7e0d6A3E5A0384A31A");
    46          contract.options.address = "0x491bC043672B9286fA02FA7e0d6A3E5A0384A31A";
    47          break;
    48      case "testnet":
    49          console.log("0x491bC043672B9286fA02FA7e0d6A3E5A0384A31A");
    50          contract.options.address = "0x491bC043672B9286fA02FA7e0d6A3E5A0384A31A";
    51          break;
    52      case "mainnet":
    53          console.log("0xC445f9487bF570fF508eA9Ac320b59730e81e503");
    54          contract.options.address = "0xC445f9487bF570fF508eA9Ac320b59730e81e503";
    55          break;
    56      default:
    57          console.log("config address");
    58          contract.options.address = ctrt.address;
    59  }
    60  const payloadReceived = {name: null, inputs: null, signature: null};
    61  const blackAdr = "0x0000000000000000000000000000000000000000";
    62  const zeroHash64 = "0x0000000000000000000000000000000000000000000000000000000000000000";
    63  const latest = "latest";
    64  
    65  for (const event of ctrt.abi) {
    66      if (event.name === "PayloadReceived" && event.type === "event") {
    67          payloadReceived.name = event.name;
    68          payloadReceived.inputs = event.inputs;
    69          payloadReceived.signature = event.signature;
    70      }
    71  }
    72  
    73  module.exports = {
    74      web3: web3,
    75      contract: contract,
    76      payloadReceived: payloadReceived,
    77      blackAdr: blackAdr,
    78      latest: latest,
    79      zeroHash64: zeroHash64,
    80      reterr: function(err, res) {
    81          console.log("Error Encountered: ");
    82          console.log(err.toString());
    83          console.log("============================================================");
    84          res.json({"error": err.toString(), "id": null, "jsonrpc": "2.0", "result": null});
    85          return;
    86      },
    87      retnum: function toNonExponential(num) {
    88          let value = num.toString()
    89          let numList = value.split(".")
    90          let returnValue = value
    91          if (numList.length > 1) {
    92              let precisionStr = numList[1]
    93              if (precisionStr.length > 8) {
    94                  let b = precisionStr.substr(precisionStr.lastIndexOf(".") + 1,8)
    95                  returnValue = numList[0] + "." + b
    96              }
    97          }
    98          return returnValue
    99      }
   100  };