从零开始以太坊
Posted UserJoe123
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从零开始以太坊相关的知识,希望对你有一定的参考价值。
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 Found\\n');
);
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('call\\n');
);
// 启动服务
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/');
以上是关于从零开始以太坊的主要内容,如果未能解决你的问题,请参考以下文章