Ceci est mon package.json
:Bonjour rejet retourne appel de la méthode du contrat mondial Unhandled Erreur
{
"dependencies": {
"solc": "^0.4.16",
"web3": "^1.0.0-beta.20"
}
}
Ceci est mon code contrat intelligent:
contract HelloWorld {
function displayMessage() constant returns (string) {
return "Hello from a smart contract";
}
}
J'ai compilé ce contrat sur le nœud rempl avec testprc en cours d'exécution, et j'essaie d'appeler la méthode displayMessage
comme ça:
myContract.methods.displayMessage().call()
ou
myContract.methods.displayMessage.call()
mais je suis juste cette erreur:
> Unhandled rejection Error: ERROR: The returned value is not a convertible string:
at SolidityTypeString.formatOutputString [as _outputFormatter] (/Users/alberthu/Documents/solidity-intro/node_modules/web3-eth-abi/src/formatters.js:245:15)
at /Users/alberthu/Documents/solidity-intro/node_modules/web3-eth-abi/src/type.js:246:25
at SolidityTypeString.SolidityType.decode (/Users/alberthu/Documents/solidity-intro/node_modules/web3-eth-abi/src/type.js:247:11)
at /Users/alberthu/Documents/solidity-intro/node_modules/web3-eth-abi/src/index.js:327:49
at Array.forEach (<anonymous>)
at ABICoder.decodeParameters (/Users/alberthu/Documents/solidity-intro/node_modules/web3-eth-abi/src/index.js:326:13)
at Contract._decodeMethodReturn (/Users/alberthu/Documents/solidity-intro/node_modules/web3-eth-contract/src/index.js:490:22)
at Method._parent._ethereumCall.call.method.outputFormatter (/Users/alberthu/Documents/solidity-intro/node_modules/web3-eth-contract/src/index.js:820:42)
at Method.formatOutput (/Users/alberthu/Documents/solidity-intro/node_modules/web3-core-method/src/index.js:179:54)
at sendTxCallback (/Users/alberthu/Documents/solidity-intro/node_modules/web3-core-method/src/index.js:446:33)
at /Users/alberthu/Documents/solidity-intro/node_modules/web3-core-requestmanager/src/index.js:144:9
at XMLHttpRequest.request.onreadystatechange (/Users/alberthu/Documents/solidity-intro/node_modules/web3-providers-http/src/index.js:64:13)
at XMLHttpRequestEventTarget.dispatchEvent (/Users/alberthu/Documents/solidity-intro/node_modules/xhr2/lib/xhr2.js:64:18)
at XMLHttpRequest._setReadyState (/Users/alberthu/Documents/solidity-intro/node_modules/xhr2/lib/xhr2.js:354:12)
at XMLHttpRequest._onHttpResponseEnd (/Users/alberthu/Documents/solidity-intro/node_modules/xhr2/lib/xhr2.js:509:12)
at IncomingMessage.<anonymous> (/Users/alberthu/Documents/solidity-intro/node_modules/xhr2/lib/xhr2.js:469:24)
at emitNone (events.js:110:20)
at IncomingMessage.emit (events.js:207:7)
at endReadableNT (_stream_readable.js:1059:12)
at _combinedTickCallback (internal/process/next_tick.js:138:11)
at process._tickDomainCallback (internal/process/next_tick.js:218:9)
J'ai essayé de lire à travers les api web3 docs mais je suis nouveau à cela et ne l'ai pas trouvé quelque chose d'utile. Quelqu'un sait comment je peux obtenir "Bonjour d'un contrat intelligent" pour montrer sur le serveur?
Merci!
cela fonctionne, merci! –
J'ai la même erreur. Si les méthodes de contrat de test dans testrpc - toutes les méthodes fonctionnent bien, mais si je cours le même code sur le serveur geth - erreur de capture. Utilisez la commande pour obtenir 'geth --rpcapi" db, eth, net, web3, personnel "--ws --wsaddr" localhost "--portail" 8545 "--wsorigins" * "--identité" MyTestNode "--datadir "./data" --rinkeby --fast' –