76 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
		
		
			
		
	
	
			76 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
|   | <!doctype> | ||
|  | <html> | ||
|  | 
 | ||
|  | <head> | ||
|  | <script type="text/javascript" src="js/es6-promise/promise.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.AutoProvider()); | ||
|  | 
 | ||
|  |     // solidity source code | ||
|  |     var source = "" +  | ||
|  |     "contract test {\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", | ||
|  |         "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 | ||
|  |         web3.eth.transact({code: web3.eth.solidity(source)}).then(function (address) { | ||
|  |             contract = web3.contract(address, desc); | ||
|  |             document.getElementById('call').style.visibility = 'visible'; | ||
|  |         }); | ||
|  |     } | ||
|  | 
 | ||
|  |     function callExampleContract() { | ||
|  |         // this should be generated by ethereum | ||
|  |         var param = document.getElementById('value').value; | ||
|  | 
 | ||
|  |         // call the contract | ||
|  |         contract.multiply(param).call().then(function(res) { | ||
|  |             document.getElementById('result').innerText = res[0]; | ||
|  |         }); | ||
|  |     } | ||
|  | 
 | ||
|  | </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> | ||
|  |     </div> | ||
|  |     <div id="result"></div> | ||
|  | </body> | ||
|  | </html> | ||
|  | 
 |