<!doctype> <html> <head> <script type="text/javascript" src="../dist/web3.js"></script> <script type="text/javascript"> var web3 = require('web3'); web3.setProvider(new web3.providers.HttpProvider("http://localhost:8545")); // solidity code code var source = "" + "contract test {\n" + " function take(uint[] a, uint b) constant returns(uint d) {\n" + " return a[b];\n" + " }\n" + "}\n"; var compiled = web3.eth.compile.solidity(source); var code = compiled.test.code; // contract json abi, this is autogenerated using solc CLI var abi = compiled.test.info.abiDefinition; var myContract; function createExampleContract() { // hide create button document.getElementById('create').style.visibility = 'hidden'; document.getElementById('code').innerText = code; // let's assume that coinbase is our account web3.eth.defaultAccount = web3.eth.coinbase; var watch = web3.eth.filter('latest'); // create contract myContract = web3.eth.contract(abi).new({data: code}); console.log('address: ' + myContract.address); document.getElementById('status').innerText = "transaction sent, waiting for confirmation"; watch.watch(function (err, hash) { var block = web3.eth.getBlock(hash, true); var contractMined = block.transactions.reduce(function (mined, th) { // TODO: compiled code do not have 0x prefix return mined || (th.from === web3.eth.defaultAccount && th.input.indexOf(code) !== -1); }, false); if (contractMined) { document.getElementById('status').innerText = 'Mined!'; document.getElementById('call').style.visibility = 'visible'; } }); } function callExampleContract() { // this should be generated by ethereum var param = parseInt(document.getElementById('value').value); // call the contract var res = myContract.take([0,6,5,2,1,5,6], param); document.getElementById('result').innerText = res.toString(10); } </script> </head> <body> <h1>contract</h1> <div id="code"></div> <div id="status"></div> <div id='create'> <button type="button" onClick="createExampleContract();">create example contract</button> </div> <div id='call' style='visibility: hidden;'> <div>var array = [0,6,5,2,1,5,6];</div> <div>var x = array[ <input type="number" id="value" onkeyup='callExampleContract()'></input> ]; </div> </div> <div id="result"></div> </body> </html>