<!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.QtSyncProvider()); // solidity source code var source = "" + "contract test {\n" + " /// @notice Will multiply `a` by 7. \n" + " function multiply(uint a) returns(uint d) {\n" + " return a * 7;\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); // transaction does not return any result, cause it's not synchronous and we don't know, // when it will be processed contract.transact().multiply(param); document.getElementById('result').innerText = 'transaction made'; } </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"></input> <button type="button" onClick="callExampleContract()">Call Contract</button> </div> <div id="result"></div> </body> </html>