Ich habe einen Arbeitsvertrag, den ich in ether.camp solide gemacht habe, er funktioniert wie gewünscht über die IDE-Vertragsschnittstelle und jetzt versuche ich, ihn mit web3 in eine HTML-GUI einzubinden.
Zu diesem Zweck habe ich eine Reihe von Tutorials verfolgt, aber soweit ich sehen kann - sollte das, was ich tue, funktionieren, aber es sieht so aus, als wäre es nicht mit dem Vertrag verbunden?
HTML:
<form>
<button id="call" type="submit">Call</button>
</form>
<script src="https://code.jquery.com/jquery-2.2.1.min.js"></script>
<script src="dist/app.js"></script>
app.js
var async = require('async');
var Web3 = require('web3');
var ethTx = require('ethereumjs-tx');
var SolidityFunction = require('web3/lib/web3/function');
var abi = [{
"name": "removeElement(address)",
"type": "function",
"inputs": [
{
"name": "key",
"type": "address"
}
]
}];
var sandboxId = '<my sandbox id>';
var url = 'https://<my user>.by.ether.camp:8555/sandbox/' + sandboxId;
var web3 = new Web3(new Web3.providers.HttpProvider(url));
web3.eth.defaultAccount = '0xdedb49385ad5b94a16f236a6890cf9e0b1e30392';
$( "button" ).click(function() {
alert("button was clicked"); //just checking the jquery was working
var contract = web3.eth.contract(abi).at('0x17956ba5f4291844bc25aedb27e69bc11b5bda39'); //The contract address as per the ethercamp IDE
contract.call().removeElement("0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba");
});
Die removeElement(address key)
Funktion im Vertrag funktioniert aus der IDE heraus absolut einwandfrei. Ich vermute, dass der obige Code nicht wirklich mit dem Vertrag "verbindet" ist? Ich wünschte, ich könnte detaillierter sein, aber ich bin mir nicht sicher, was hier nicht funktioniert
Danke dir!
Ich wollte nach Details fragen, aber ich kann keine Kommentare posten.
contract.removeElement("0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba")
window.web3 = web3;
Xavier Leprêtre B9lab
contract.call().removeElement("0x2ad...");
sieht für mich seltsam aus. Ich bin eher daran gewöhnt,contract.removeElement.call("0x2ad...");
oder zu sehencontract.removeElement("0x2ad...");
.Benutzer1202278
call()
- Neupositionierung scheint immer noch nichts zu tun :(Benutzer1202278
call()
scheint nicht zu funktionieren. Ich erhalte diealertbox
Strafe, die zeigt, dass der Klick auf die Schaltfläche ausgelöst wird, aber dem Vertrag passiert nichts. GenausoremoveElement
funktioniert es in der IDE - nur nicht von web3Xavier Leprêtre B9lab
var contract = web3.eth.contract(abi).at('0x179...');
dann eincontract.removeElement()
und sehen Sie, was herauskommt.Benutzer1202278
ReferenceError: web3 is not defined
aber wir können oben sehen, dass ich es bin?Xavier Leprêtre B9lab
var Web3 = require('web3');
im Browser aufrufen.Benutzer1202278
Xavier Leprêtre B9lab
Alex Sinyagin
window.web3 = web3;
Benutzer1202278
TypeError: json.outputs is undefined [313]</SolidityFunction() app.js:30314 [307]</addFunctionsToContract/<() app.js:29204 map() self-hosted [307]</addFunctionsToContract() app.js:29201 [307]</ContractFactory.prototype.at() app.js:29400 [226]</<() app.js:23346 n.event.dispatch() jquery-2.2.1.min.js:3 n.event.add/r.handle()
Benutzer1202278