工作日志 2019-01-16

版权声明:忠于祖国,忠于人民 https://blog.csdn.net/boss2967/article/details/86513624

工作日志 2019-01-16

1. 工作计划

  1. 单个交易
  2. 批量交易 (未完成)
  3. js解析exeal文件
  4. 批量数据校验
  5. 交易失败退回机制()

2. 工作记录

1. UnhandledPromiseRejectionWarning: BigNumber Error: new BigNumber() not a number: 汪汪

	2.	
	    let result = {
      State: 0, //0 1 3
      Tote: lengths,
      Valid: 0,
      UnValid: 0,
      ValidData: [],
      UnValidData: [],
      Bz: [],
      sData:{
        address:[],
        value:[],
        state:[]
      }
    }
  result.sData.address.push( param[i].address);

	{
    "contracts": [{
        "name": "Migrations",
        "requiredGasLimit": 288708
    }, {
        "name": "DRCWalletManager",
        "requiredGasLimit": 5003896
    }, {
        "name": "DRCWalletStorage",
        "requiredGasLimit": 1479751
    }],
    "gasPrice": "1100000000"
}
		1. shuang  csv 
		2.	初始化代币i
  //工具函数@post data verification 3453
  web3_postVerifiCation: (data) => {
    // TODO:from
    //data
    console.log("web3_postVerifiCation", data);
    // //正则表达式处理
    // let pattern1 = /[\u4e00-\u9fa5]+/g;
    // let pattern2 = /\[[\u4e00-\u9fa5]+\]/g;
    // let contents = "[微笑][撇嘴][发呆][得意][流泪]";
    // content = contents.match(pattern1);
    // console.log(content);
    // let ac = content.toString();
    // console.log("tostirng",ac);
    // console.log(ac.indexOf("呆") != -1);
    // let  param = data;
    let param = data.data;
    // TODO: 转化
    let lengths = param.length;
    //结果处理对象
    let result = {
      State: 0, //0 1 3
      Tote: lengths,
      Valid: 0,
      UnValid: 0,
      ValidData: [],
      UnValidData: [],
      Bz: [],
      sData:{
        address:[],
        value:[],
        state:[]
      }
    }
    // 01. 首先判断数据长度
    if (data.length <= 0) {
      result.State = 3; //
      return result;
    }
    //02. 判断地址和内容是否为空
    for (let i = 0; i < lengths; i++) {
      //01.首先判断2个参数都为空
      if ((param[i].address == null || param[i].address == undefined || param[i].address == '') && (param[i].value == null || param[i].value == undefined || param[i].value == '')) {
        //01.如果两位数据都是空
        result.UnValid += 1;
        //对象保存 序号:数据

        let rows = {
          no: +param[i].no,
          address: param[i].address,
          value: param[i].value,
          state: Json_list.STATES_PAR.notAddressandValue.toString()
        }
        // let cData = {i:param[i].no,param[i].address,param[i].value,Json_list.STATES_PAR.CheckPass}};
        result.UnValidData.push(rows);
        //
        continue;
      } else {
        console.log("411");
        //02. 判断地址为空的情况
        if (param[i].address == null || param[i].address == undefined || param[i].address == '') {
          //
          console.log("6");
          result.UnValid += 1;
          //对象保存 序号:数据
          let rows = {
            no: +param[i].no,
            address: param[i].address,
            value: param[i].value,
            state: Json_list.STATES_PAR.notAddress.toString()
          }
          result.UnValidData.push(rows);
          continue;
        } else if (param[i].value == null || param[i].value == undefined || param[i].value == '') {
          console.log("5");
          result.UnValidData += 1;
          //对象保存 序号:数据
          let rows = {
            no: +param[i].no,
            address: param[i].address,
            value: param[i].value,
            state: Json_list.STATES_PAR.notValue.toString()
          }

          result.UnValidData.push(rows);
          continue;
        }
      }
      //02. 判断地址是否合法

      if (!web3.isAddress(param[i].address)) {
        console.log("423");
        //如果不是有效地址
        result.UnValid += 1;
        //对象保存 序号:数据
        let rows = {
          no: +param[i].no,
          address: param[i].address,
          value: param[i].value,
          state: Json_list.STATES_PAR.wrongAddress.toString()
        }
        result.UnValidData.push(rows);
        continue;
      } else {
        console.log("地址校验通过");
        //如果是有效地址
        result.Valid += 1;
        //对象保存 序号:数据
        let rows = {
          no: +param[i].no,
          address: param[i].address,
          value: param[i].value,
          state: Json_list.STATES_PAR.CheckPass.toString()
        }
        result.ValidData.push(rows);
        //分开追加数据
        result.sData.address.push( param[i].address);
        result.sData.value.push( param[i].value+'10000000000000000');
      }
      //数据处理完成后,返回参数
      //处理完标志
      result.State = 3;

    }


    return result;
  },

3.代码思路

1.如果一笔交易失败,要把他给记录下来,然后最后结束的时候返回给前段
2.多笔交易的gas上限,和每次发送的交易数量

4. 明日计划

  1. 测试多笔交易

5. 备注

  1. 今天遇到一个问题,就是 调用批量分发的时候会失败,还在找原因

猜你喜欢

转载自blog.csdn.net/boss2967/article/details/86513624
今日推荐