77 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
		
		
			
		
	
	
			77 lines
		
	
	
		
			2.1 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.HttpSyncProvider());
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    // solidity source code
							 | 
						||
| 
								 | 
							
								    var source = "" + 
							 | 
						||
| 
								 | 
							
								    "contract test {\n" +
							 | 
						||
| 
								 | 
							
								    "   function multiply(uint[] a) returns(uint d) {\n" +
							 | 
						||
| 
								 | 
							
								    "       return a[0] + a[1];\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);
							 | 
						||
| 
								 | 
							
								        var param2 = parseInt(document.getElementById('value2').value);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        // call the contract
							 | 
						||
| 
								 | 
							
								        var res = contract.call().multiply([param, param2]);
							 | 
						||
| 
								 | 
							
								        document.getElementById('result').innerText = res.toString(10);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								</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>
							 | 
						||
| 
								 | 
							
								        <input type="number" id="value2" onkeyup='callExampleContract()'></input>
							 | 
						||
| 
								 | 
							
								    </div>
							 | 
						||
| 
								 | 
							
								    <div id="result"></div>
							 | 
						||
| 
								 | 
							
								</body>
							 | 
						||
| 
								 | 
							
								</html>
							 | 
						||
| 
								 | 
							
								
							 |