![](/img/trans.png)
[英]I get “Invalid Webhook Token” error while following up an interaction
[英]I get this the error "Error: invalid address ...." while running my dapp
我正在为我的私有区块链 Quorum 开发一个简单的 dapp。 我用 Solidity 写了智能合约,用 JavaScript 写了一个脚本。
在运行我的区块链和 JavaScript 控制台后,我执行了以下操作:
我得到错误:
错误:地址无效
在 web3.js:3930:15
在 web3.js:3756:20
在 web3.js:5025:28
在地图(<本机代码>)
在 web3.js:5024:12
在 web3.js:5050:18
在 web3.js:5075:23
在 web3.js:4137:16
我的智能合约是这样的:
pragma solidity >=0.4.0 <0.7.5;
contract MyContract {
int value;
constructor() public{
value=10;
}
function get() public view returns(int) {
return value;
}
function set(int value2) public {
value=value2;
}
}
我在 javascript 中的脚本是这样的:
a = eth.accounts[0]
web3.eth.defaultAccount = a;
// Risultato del comando > solcjs --bin --abi MyContract.sol
var abi = [{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"get","outputs":[{"internalType":"int256","name":"","type":"int256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"int256","name":"value2","type":"int256"}],"name":"set","outputs":[],"stateMutability":"nonpayable","type":"function"}];
var bytecode = "0x60806040523480156100115760006000fd5b505b600a60006000508190909055505b610026565b60db806100346000396000f3fe608060405234801560105760006000fd5b506004361060365760003560e01c80636d4ce63c14603c578063e5c19b2d146058576036565b60006000fd5b60426084565b6040518082815260200191505060405180910390f35b608260048036036020811015606d5760006000fd5b81019080803590602001909291905050506095565b005b600060006000505490506092565b90565b8060006000508190909055505b5056fea264697066735822122032710d493b7bc22bd80599320435533d8a94bf485e2b4c09f9ba2b0dd44acb4964736f6c63430007040033";
// Creazione del nuovo contratto con nome MyContract
var simpleContract = web3.eth.contract(abi);
var simple = simpleContract.new({from:web3.eth.accounts[0], data: bytecode, gas: 0x47b760, privateFor: ["QfeDAys9MPDs2XHExtc84jKGHxZg/aj52DTh0vtA3Xc="]}, function(e, contract) {
if (e) {
console.log("Error creating contract", e);
} else {
if (!contract.address) {
console.log("Contract transaction send: TransactionHash: " + contract.transactionHash + " waiting to be mined...");
} else {
console.log("Contract mined! Address: " + contract.address);
console.log(contract);
}
}
});
我可以尝试什么来解决这个问题?
我认为问题在于您在 ABI 中有一个小错误 - 由于该函数被标记为view
所以get()
函数在 abi 中应该有"constant":true
。
如果没有,则get()
函数需要一个from
地址事务被定义(即你必须使用private.get({"from": fromAddress})
或使用设置默认帐户web3.eth.defaultAccount = accountAddress
) .
如果您更正 ABI,那么它应该可以工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.