我已经在wordpress网站中创建了一个web3js脚本,但是在执行下面的代码时,我会得到一个无效的JSON响应。
var Web3 = require("web3");
var web3 = new Web3();
web3.setProvider(new web3.providers.HttpProvider("https://ropsten.infura.io/xxxxxxxxxxx"));
var accounts = web3.eth.accounts;
var abi=[{"constant":false,"inputs":[{"name":"document","type":"string"},{"name":"timestamp","type":"uint256"}],"name":"notarize2","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"document","type":"string"}],"name":"checkDocument","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"proof","type":"bytes32"},{"name":"timestamp","type":"uint256"}],"name":"storeProof","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"source","type":"string"}],"name":"stringToBytes32","outputs":[{"name":"result","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"proof","type":"bytes32"}],"name":"hasProof","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"}];
web3.eth.defaultAccount="XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
var poe = web3.eth.contract(abi).at("YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY");
console.log(poe.address);
result="test";
var today = new Date();
var todayI = today.getFullYear()*10000+ (today.getMonth()+1)*100+today.getDate();
console.log(todayI);
poe.notarize2(result,todayI,{gas:2000000});通过testrpc (localhost)和通过Remix / Metamask,我可以验证合同是否正确地部署在Ropsten上,并且运行良好。
有什么想法吗?这是我第一次尝试这个。
发布于 2017-12-29 18:37:11
尝试将帐户设置为字符串地址。作为Smarx,公共节点作为infura不处理私有方法,如帐户。此外,在使用元问题时,请询问此帐户集以及web.accounts0
发布于 2017-12-29 15:31:13
我不确定这是你唯一的问题,但你还没有指定一个帐户来进行这笔交易。恩弗拉,作为一个公共节点,不能持有任何人的私钥,因此它不知道任何帐户。
如果希望页面查看器进行事务处理,则需要使用类似于MetaMask的内容,而不是直接连接到节点。
如果你想用你自己的帐户进行交易,那就必须发生在服务器端,因为你不能让你的网站的观众访问你的私钥。
https://programtheblockchain.com/posts/2017/12/13/building-decentralized-apps-with-ethereum-and-javascript/可能会有所帮助,特别是“连接到节点”部分,它解释了MetaMask的角色。
https://ethereum.stackexchange.com/questions/34655
复制相似问题