77 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			77 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
| <!doctype>
 | |
| <html>
 | |
| 
 | |
| <head>
 | |
| <script type="text/javascript" src="js/es6-promise/promise.min.js"></script>
 | |
| <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.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.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);
 | |
| 
 | |
|         // 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>
 | |
| 
 |