Tengo un contrato de trabajo que hice en ether.camp con solidity, funciona según lo deseado a través de la interfaz de contrato IDE y ahora estoy tratando de vincularlo a una GUI html con web3.
Con este fin, he estado siguiendo una serie de tutoriales, pero por lo que puedo ver, ¿lo que estoy haciendo debería funcionar pero parece que no se está conectando con el contrato?
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>
aplicación.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");
});
La removeElement(address key)
función en el contrato funciona absolutamente bien desde el IDE. ¿Sospecho que el código anterior en realidad no está 'conectando' al contrato? Ojalá pudiera ser más detallado, pero no estoy seguro de qué es lo que no funciona aquí.
¡Gracias!
Quería pedir detalles, pero no puedo publicar comentarios.
contract.removeElement("0x2adc25665018aa1fe0e6bc666dac8fc2697ff9ba")
window.web3 = web3;
Xavier Leprêtre B9lab
contract.call().removeElement("0x2ad...");
me parece extraño Estoy más acostumbrado a vercontract.removeElement.call("0x2ad...");
ocontract.removeElement("0x2ad...");
.usuario1202278
call()
- reposicionarlo todavía parece no hacer nada :(usuario1202278
call()
no parece funcionar. Recibo laalertbox
multa que muestra que se activa el clic del botón, pero no sucede nada con el contrato. Hacer exactamente lo mismoremoveElement
en el IDE funciona, pero no desde web3Xavier Leprêtre B9lab
var contract = web3.eth.contract(abi).at('0x179...');
luegocontract.removeElement()
y vea lo que sale.usuario1202278
ReferenceError: web3 is not defined
, pero podemos ver arriba que soy.Xavier Leprêtre B9lab
var Web3 = require('web3');
en el navegador.usuario1202278
Xavier Leprêtre B9lab
Alex Sinyaguin
window.web3 = web3;
usuario1202278
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()
usuario1202278