78 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			78 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
| <!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>
 | |
| 
 |