工作日志2019-01-17

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

1.工作计划

  1. 多笔交易发送交易失败测试 (已完成)
  2. 测试tranfer方法转账 (已完成)
  3. gas的等级处理机制 (未开始)
  4. 闪电空投(基于代码行进行代码的空投)(开发中)

2.工作记录

const fs = require("fs");
const xlsx = require('node-xlsx');
const Web3 = require("web3");
const log4js = require('log4js')
const ajax = require('ajax');
const logger = log4js.getLogger();
var web3 = new Web3();
// <script src="https://unpkg.com/axios/dist/axios.min.js"></script>
// ALL < TRACE < DEBUG < INFO < WARN < ERROR < FATAL < MARK < OFF
logger.level = 'info';
logger.info("Some debug messages");
logger.info("Some debug messages");
logger.info("Some debug messages");
console.log("---",ajax.post);
//
let a = {ab:"ss"}
let  url = 'http://127.0.0.1:3003/Bolt/flyDrop';

//01. 读取xlsx文件
let Filesdata = fs.readFileSync('testdemo1.xlsx');
logger.info("读取文件成功");
//02.	序列化数据
let Workdata = xlsx.parse(Filesdata);
logger.info("序列化数据成功");
//03.	校验数据
logger.info("数据校验中......................");
 console.log("------------------",Workdata[0]);
let data = Workdata[0].data;
let  lengths =data.length;
// console.log("数据对象是:",data);
//结果集
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) {
  //对象长度小于0
  logger.error("数据长度小于0");
  result.State = 3; //
  return result;
}
//02. 判断地址和内容是否为空
for (let i = 0; i < lengths; i++) {
  //01.首先判断2个参数都为空
  if ((data[i][0] == null ||data[i][0] == undefined ||data[i][0] == '') && (data[i][1] == null || data[i][1] == undefined || data[i][1] == '')) {
    //01.如果两位数据都是空
    result.UnValid += 1;
    //对象保存 序号:数据

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

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

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

//发送交易
ajax.post(url," ",(err,data)=>{
  if(!err){
    console.log("发送交易成功");
  }else{
 console.log("发送错误");

  }
});

3.存在问题

  1. 闪电空投数据序列化,ajax调用对应路由
  2. 空投代币合约的代币实例化代币以及合约初始化代币
  3. gas的处理机制

4.明日计划

  1. gas处理机制
  2. 闪电空投完善
  3. 发送函数的后续监听

5.备注

今天主要在思考 gas处理机制的问题,和发送失败的返回集处理,已经处理了多批交易发送,但是gas消耗机制还没有猜透,所以数据分片的机制也在构思,正在处理闪电空投问题

猜你喜欢

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