So greifen Sie mit oraclize auf Swarm-Inhalte von Ethereum Smart Contract zu

Ich versuche, auf den Inhalt in einer Datei zuzugreifen, die ich mit oraclize auf Swarm hochgeladen habe. Ich habe einen Smart Contract in https://github.com/oraclize/ethereum-examples/blob/master/solidity/Swarm.sol gefunden

Ich habe nur versucht, das 'Hallo Welt' (den Inhalt des Schwarm-Hashes, den der Autor im Vertrag angegeben hat) zu drucken. Also habe ich einfach den Vertrag abgebaut. Verwenden Sie dann die Details im JavaScript wie folgt (mit meteor.js):

//Variablen

VertragAddressSwarm = "0x87b620f0731e15cb1655e216a87c986154ba4248"

ABIArraySwarm = [{"constant":false,"inputs":[{"name":"myid","type":"bytes32"},{"name":"result","type":"string"} ],"name":"__callback","outputs":[],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":" myid","type":"bytes32"},{"name":"result","type":"string"},{"name":"proof","type":"bytes"}]," name":"__callback","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"swarmContent" ,"Ausgänge":[{"name":"","type":"string"}],"payable":false,"type":"function"},{"constant":false,"inputs":[],"name":" update","outputs":[],"payable":true,"type":"function"},{"inputs":[],"payable":false,"type":"constructor"},{" anonym:false,"inputs":[{"indexed":false,"name":"description","type":"string"}],"name":"newOraclizeQuery","type":"event" },{"anonymous":false,"inputs":[{"indexed":false,"name":"swarmContent","type":"string"}],"name":"newSwarmContent","type" :"Veranstaltung"}]

// Schwarminhalt in der Konsole drucken, wenn auf eine Schaltfläche geklickt wird

'click #buttonSwarm'(event, instance) { var template= Template.instance();

myContract = web3.eth.contract(ABIArraySwarm).at(contractAddressSwarm);

console.log("Schwarmvertragsausführung");

myContract.swarmContent(function(err, res){ TemplateVar.set(template, "counter", res); console.log(TemplateVar.get(template,"counter")); }); },

....

Aber jedes Mal wird "null" gedruckt. Was mache ich beim Rückruf falsch?

Ich glaube, ich mache beim Javascript-Callback etwas falsch. Können Sie mir bitte das Javascript schicken, das Sie verwenden? Heute habe ich einen Fehler in der Javascript-Konsole des Browsers wie folgt gefunden: >Fehler: Ungültige JSON-RPC-Antwort: "" >Stack-Trace: require<[26]</module.exports.InvalidResponse @ 192.168.1.116:3000/packages/… >require<[32]</HttpProvider.prototype.sendAsync/request.onreadystatechange@ 192.168.1.116:3000/packages/… Ich weiß nicht, was goi ist
Willkommen bei Ethereum! Wenn Sie eine andere Frage haben, stellen Sie diese bitte, indem Sie auf die Schaltfläche „ Frage stellen“ klicken .

Antworten (1)

Marco von Oraclize hier. Die Unterstützung für Swarm ist experimentell, daher kann es, wie Sie erfahren haben, zu einigen Unterbrechungen des Datenquellendienstes kommen. Jetzt ist es wieder da und funktioniert einwandfrei. Hier können Sie es testen .

Hallo Marco. Vielen Dank für Ihre Antwort. Ich glaube, ich mache beim JavaScript-Callback etwas falsch. Können Sie mir bitte eine schicken, die Sie verwenden.
Verwenden Sie eine lokale Blockchain-Instanz (z. B. testrpc oder parity/geth im Dev-Modus) oder sind Sie im Testnet/Main-Net? Wenn es ersteres ist, müssen Sie die Ethereum-Brücke installieren, damit Oraclize Ihre Smart Contracts sehen und mit Ihrer Blockchain-Instanz interagieren kann. Sie finden die Ethereum-Brücke hier: github.com/oraclize/ethereum-bridge
Ich verwende Testnet
Ich denke, es ist einfacher, wenn wir die Diskussion auf unseren Gitter-Kanal verschieben: gitter.im/oraclize/ethereum-api?source=orgpage