|
|
@ -13,12 +13,18 @@ if (typeof web3 !== 'undefined') { |
|
|
|
|
|
|
|
let eth = { |
|
|
|
//获取主币eth余额
|
|
|
|
getBalance: async function(address) { |
|
|
|
console.log("查询余额:",address) |
|
|
|
let balance = await web3.eth.getBalance(address); |
|
|
|
console.log("余额:",balance) |
|
|
|
return Number(balance) / Math.pow(10, 18); |
|
|
|
}, |
|
|
|
// getBalance: async function(address) {
|
|
|
|
// console.log("查询余额:",address)
|
|
|
|
// let balance = 0;
|
|
|
|
// try{
|
|
|
|
// web3 = new Web3(new Web3.providers.HttpProvider(systemConfiguration.constant.ethNode));
|
|
|
|
// balance = await web3.eth.getBalance(address);
|
|
|
|
// console.log("余额:",balance,9999999999999)
|
|
|
|
// }catch(e){
|
|
|
|
// console.log("余额:",e,9999999999999)
|
|
|
|
// }
|
|
|
|
// return Number(balance) / Math.pow(10, 18);
|
|
|
|
// },
|
|
|
|
// //获取eth代币币余额
|
|
|
|
// getTokenBalance: async function(address, contract) {
|
|
|
|
// console.log(address, contract)
|
|
|
@ -31,6 +37,7 @@ let eth = { |
|
|
|
// return Number(balance) / Math.pow(10, decimals);
|
|
|
|
// },
|
|
|
|
getGas: async function() { |
|
|
|
web3 = new Web3(new Web3.providers.HttpProvider(systemConfiguration.constant.ethNode)); |
|
|
|
const gasPrice = await web3.eth.getGasPrice().then((v) => { |
|
|
|
return v |
|
|
|
}); |
|
|
@ -38,28 +45,28 @@ let eth = { |
|
|
|
return gasPrice; |
|
|
|
}, |
|
|
|
|
|
|
|
// //获取主币eth余额
|
|
|
|
// getBalance: async function(address) {
|
|
|
|
// web3 = new Web3();
|
|
|
|
// const data = {
|
|
|
|
// 'jsonrpc': '2.0',
|
|
|
|
// 'id': '1',
|
|
|
|
// 'method': 'eth_getBalance',
|
|
|
|
// 'params': [address, "latest"]
|
|
|
|
// };
|
|
|
|
// let res = await uni.request({
|
|
|
|
// url: systemConfiguration.constant.ethNode, //仅为示例,并非真实接口地址。
|
|
|
|
// method: 'POST',
|
|
|
|
// data: data,
|
|
|
|
// dataType: 'json'
|
|
|
|
// });
|
|
|
|
// try {
|
|
|
|
// let balance = Number(web3.utils.hexToNumberString(res[1].data.result)) / Math.pow(10, 18)
|
|
|
|
// return balance
|
|
|
|
// } catch (e) {
|
|
|
|
// return 0;
|
|
|
|
// }
|
|
|
|
// },
|
|
|
|
//获取主币eth余额
|
|
|
|
getBalance: async function(address) { |
|
|
|
web3 = new Web3(); |
|
|
|
const data = { |
|
|
|
'jsonrpc': '2.0', |
|
|
|
'id': '1', |
|
|
|
'method': 'eth_getBalance', |
|
|
|
'params': [address, "latest"] |
|
|
|
}; |
|
|
|
let res = await uni.request({ |
|
|
|
url: systemConfiguration.constant.ethNode, //仅为示例,并非真实接口地址。
|
|
|
|
method: 'POST', |
|
|
|
data: data, |
|
|
|
dataType: 'json' |
|
|
|
}); |
|
|
|
try { |
|
|
|
let balance = Number(web3.utils.hexToNumberString(res[1].data.result)) / Math.pow(10, 18) |
|
|
|
return balance |
|
|
|
} catch (e) { |
|
|
|
return 0; |
|
|
|
} |
|
|
|
}, |
|
|
|
addPreZero: function(num) { |
|
|
|
let t = (num + '').length, |
|
|
|
s = ''; |
|
|
@ -100,25 +107,26 @@ let eth = { |
|
|
|
sendTransaction: async function(fromAddress, toAddress, value, privateKey, success) { |
|
|
|
|
|
|
|
var nonce = await web3.eth.getTransactionCount(fromAddress); |
|
|
|
|
|
|
|
var gas = await web3.eth.estimateGas({ |
|
|
|
from: fromAddress |
|
|
|
}); |
|
|
|
console.log(11111111111) |
|
|
|
console.log(nonce) |
|
|
|
console.log(fromAddress, toAddress, value, privateKey) |
|
|
|
console.log(fromAddress, toAddress, value, privateKey,web3.eth.getGasPrice()) |
|
|
|
var txData = { |
|
|
|
chainId: web3.utils.toHex(1899), |
|
|
|
// nonce每次++,以免覆盖之前pending中的交易
|
|
|
|
nonce: web3.utils.toHex(nonce++), |
|
|
|
// 设置gasLimit和gasPrice
|
|
|
|
gas: web3.utils.toHex(gas), |
|
|
|
gasLimit: web3.utils.toHex(600000), |
|
|
|
gasPrice: web3.utils.toHex(web3.eth.getGasPrice()), |
|
|
|
// 要转账的哪个账号
|
|
|
|
to: toAddress, |
|
|
|
// 从哪个账号转
|
|
|
|
from: fromAddress, |
|
|
|
// 0.001 以太币
|
|
|
|
value: web3.utils.toHex(web3.utils.toWei(value, 'ether')) |
|
|
|
value: web3.utils.toHex(web3.utils.toWei(value, 'ether')), |
|
|
|
chainId:systemConfiguration.constant.ethChainId |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
@ -126,6 +134,7 @@ let eth = { |
|
|
|
// 引入私钥,并转换为16进制
|
|
|
|
|
|
|
|
// 用私钥签署交易
|
|
|
|
console.log(txData,55555) |
|
|
|
console.log(Buffer.from(privateKey).toString('hex')) |
|
|
|
const tx = new Tx(txData); |
|
|
|
tx.sign(Buffer.from(privateKey, 'hex')); |
|
|
|