从零开始以太坊(三)

 node index.js

var http = require("http");

var url = require('url');

const { exit } = require("process");

var events = require('events');

var Web3 = require('web3');

var web3 = new Web3(Web3.givenProvider || 'http://localhost:8545');

var helloworldContract = new web3.eth.Contract([{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"add","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"get","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"}]);



// 创建 eventEmitter 对象 

var eventEmitter = new events.EventEmitter();



// route 根路径 

eventEmitter.on('/', function(method, response){

    response.writeHead(200, {'Content-Type': 'text/plain'});

    web3.eth.getAccounts().then(function(accounts){

      response.end('Hello World' + accounts[0]);

    });

    

});



// route 404 

eventEmitter.on('/404', function(method, url, response){

    response.writeHead(404, {'Content-Type': 'text/plain'});

    response.end('404 Not Foundn');

});



eventEmitter.on('/deploy', function(method, response){

    response.writeHead(200, {'Content-Type': 'text/plain'});



    var helloworld = helloworldContract.deploy({

	     data: '0x608060405234801561001057600080fd5b5060036000806101000a81548160ff021916908360ff1602179055506101818061003b6000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c80634f2be91f1461003b5780636d4ce63c14610045575b600080fd5b610043610063565b005b61004d610098565b60405161005a91906100ca565b60405180910390f35b600160008054906101000a900460ff1661007d9190610114565b6000806101000a81548160ff021916908360ff160217905550565b60008060009054906101000a900460ff16905090565b600060ff82169050919050565b6100c4816100ae565b82525050565b60006020820190506100df60008301846100bb565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061011f826100ae565b915061012a836100ae565b92508260ff038211156101405761013f6100e5565b5b82820190509291505056fea2646970667358221220efdd61a5c70c486236943fe5fca65acd2ad62cdd7cacccaaf1bb108edf553d8f64736f6c634300080a0033', 

	     arguments: [

	     ]

	}).send({

	     from: '0x3385c0257782Ab3139351ba067066A43D9CBfe4B', 

	     gas: '4700000'

	   }, function (e, transactionHash){

	 }).on('receipt', function(receipt){

		response.write(receipt.blockNumber);

	});
    response.end('=====================END=====================n');
});


// route  
eventEmitter.on('/call', function(method, response){
	response.writeHead(200, {'Content-Type': 'text/plain'});
	var MyContract = new web3.eth.Contract([{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"add","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"get","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"}],

'0x0850e3C5bFdF8e21e2FFB576fd42dF91f0C1032d'

);
	MyContract.methods.add().send({from: '0x3385c0257782Ab3139351ba067066A43D9CBfe4B'})
	.then(function(){
	    MyContract.methods.get().call({from: '0x3385c0257782Ab3139351ba067066A43D9CBfe4B'})
		.then(function(result){
	    		console.log(result+'n');
		});
	});
	    response.end('calln');
});
// 启动服务 
http.createServer(function (request, response) {
    console.log(request.url);
   // 分发 
    if (eventEmitter.listenerCount(request.url) > 0){
        eventEmitter.emit(request.url, request.method, response);
    }
    else {
        eventEmitter.emit('404', request.method, request.url, response);
    }
}).listen(8888);
console.log('Server running at http://127.0.0.1:8888/');

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇
下一篇>>