<!doctype> <html> <head> <script type="text/javascript" src="js/bignumber.js/bignumber.min.js"></script> <script type="text/javascript" src="../dist/ethereum.js"></script> <script type="text/javascript"> var web3 = require('web3'); web3.setProvider(new web3.providers.HttpSyncProvider()); // solidity source code var source = "" + "contract test {\n" + " function multiply(uint[] a) returns(uint d) {\n" + " return a[0] + a[1];\n" + " }\n" + "}\n"; // contract description, this will be autogenerated somehow var desc = [{ "name": "multiply(uint256[])", "type": "function", "inputs": [ { "name": "a", "type": "uint256[]" } ], "outputs": [ { "name": "d", "type": "uint256" } ] }]; var contract; function createExampleContract() { // hide create button document.getElementById('create').style.visibility = 'hidden'; document.getElementById('source').innerText = source; // create contract var address = web3.eth.transact({code: web3.eth.solidity(source)}); contract = web3.eth.contract(address, desc); document.getElementById('call').style.visibility = 'visible'; } function callExampleContract() { // this should be generated by ethereum var param = parseInt(document.getElementById('value').value); var param2 = parseInt(document.getElementById('value2').value); // call the contract var res = contract.call().multiply([param, param2]); document.getElementById('result').innerText = res.toString(10); } </script> </head> <body> <h1>contract</h1> <div id="source"></div> <div id='create'> <button type="button" onClick="createExampleContract();">create example contract</button> </div> <div id='call' style='visibility: hidden;'> <input type="number" id="value" onkeyup='callExampleContract()'></input> <input type="number" id="value2" onkeyup='callExampleContract()'></input> </div> <div id="result"></div> </body> </html>