首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >调用函数时无效的JSON响应

调用函数时无效的JSON响应
EN

Ethereum用户
提问于 2017-12-29 13:03:19
回答 2查看 1.6K关注 0票数 1

我已经在wordpress网站中创建了一个web3js脚本,但是在执行下面的代码时,我会得到一个无效的JSON响应。

代码语言:javascript
复制
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上,并且运行良好。

有什么想法吗?这是我第一次尝试这个。

EN

回答 2

Ethereum用户

发布于 2017-12-29 18:37:11

尝试将帐户设置为字符串地址。作为Smarx,公共节点作为infura不处理私有方法,如帐户。此外,在使用元问题时,请询问此帐户集以及web.accounts0

票数 1
EN

Ethereum用户

发布于 2017-12-29 15:31:13

我不确定这是你唯一的问题,但你还没有指定一个帐户来进行这笔交易。恩弗拉,作为一个公共节点,不能持有任何人的私钥,因此它不知道任何帐户。

如果希望页面查看器进行事务处理,则需要使用类似于MetaMask的内容,而不是直接连接到节点。

如果你想用你自己的帐户进行交易,那就必须发生在服务器端,因为你不能让你的网站的观众访问你的私钥。

https://programtheblockchain.com/posts/2017/12/13/building-decentralized-apps-with-ethereum-and-javascript/可能会有所帮助,特别是“连接到节点”部分,它解释了MetaMask的角色。

票数 0
EN
页面原文内容由Ethereum提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://ethereum.stackexchange.com/questions/34655

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档