github.com/jonasnick/go-ethereum@v0.7.12-0.20150216215225-22176f05d387/cmd/mist/assets/ext/ethereum.js/example/contract.html (about) 1 <!doctype> 2 <html> 3 4 <head> 5 <script type="text/javascript" src="js/bignumber.js/bignumber.min.js"></script> 6 <script type="text/javascript" src="../dist/ethereum.js"></script> 7 <script type="text/javascript"> 8 9 var web3 = require('web3'); 10 web3.setProvider(new web3.providers.HttpSyncProvider()); 11 12 // solidity source code 13 var source = "" + 14 "contract test {\n" + 15 " function multiply(uint a) returns(uint d) {\n" + 16 " return a * 7;\n" + 17 " }\n" + 18 "}\n"; 19 20 // contract description, this will be autogenerated somehow 21 var desc = [{ 22 "name": "multiply(uint256)", 23 "type": "function", 24 "inputs": [ 25 { 26 "name": "a", 27 "type": "uint256" 28 } 29 ], 30 "outputs": [ 31 { 32 "name": "d", 33 "type": "uint256" 34 } 35 ] 36 }]; 37 38 var contract; 39 40 function createExampleContract() { 41 // hide create button 42 document.getElementById('create').style.visibility = 'hidden'; 43 document.getElementById('source').innerText = source; 44 45 // create contract 46 var address = web3.eth.transact({code: web3.eth.solidity(source)}); 47 contract = web3.eth.contract(address, desc); 48 document.getElementById('call').style.visibility = 'visible'; 49 } 50 51 function callExampleContract() { 52 // this should be generated by ethereum 53 var param = parseInt(document.getElementById('value').value); 54 55 // call the contract 56 var res = contract.call().multiply(param); 57 document.getElementById('result').innerText = res.toString(10); 58 } 59 60 </script> 61 </head> 62 <body> 63 <h1>contract</h1> 64 <div id="source"></div> 65 <div id='create'> 66 <button type="button" onClick="createExampleContract();">create example contract</button> 67 </div> 68 <div id='call' style='visibility: hidden;'> 69 <input type="number" id="value" onkeyup='callExampleContract()'></input> 70 </div> 71 <div id="result"></div> 72 </body> 73 </html> 74