版权声明:忠于祖国,忠于人民 https://blog.csdn.net/boss2967/article/details/86513624
工作日志 2019-01-16
1. 工作计划
- 单个交易
- 批量交易 (未完成)
- js解析exeal文件
- 批量数据校验
- 交易失败退回机制()
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. 明日计划
- 测试多笔交易
5. 备注
- 今天遇到一个问题,就是 调用批量分发的时候会失败,还在找原因