Compile Contract
I want to use Solidity to write the contract and using solc
module to compile it.
$ npm install solc --save
$ mkdir contracts
$ cd contracts
$ vim Sample
Sample.sol
pragma solidity ^0.4.15;
contract Sample {
uint count;
function add(uint a, uint b) returns(uint) {
count++;
return a + b;
}
function getCount() constant returns (uint) {
return count;
}
}
Append below code to index.js
.
const fs = require('fs');
const solc = require('solc');
...
const source = fs.readFileSync("./contracts/Sample.sol", 'utf8');
console.log('compiling contract...');
const compiledContract = solc.compile(source);
console.log('done');
let bytecode;
let abi;
for (let contractName in compiledContract.contracts) {
bytecode = compiledContract.contracts[contractName].bytecode;
abi = JSON.parse(compiledContract.contracts[contractName].interface);
}
console.log(JSON.stringify(abi, undefined, 2));
Compile contract, then get Application Binary Interface (ABI) and bytecode.
$ node index.js
connected to ehterum node at http://localhost:8545
coinbase: 0x2a7a93ca16e95a6e4478bf67e33ce3a9c20bf66d
balance: 9.04625697166532776746648320380374280103671755200316906558262375061821325312e+56 ETH
[ '0x2a7a93ca16e95a6e4478bf67e33ce3a9c20bf66d' ]
compiling contract...
done
[
{
"constant": false,
"inputs": [
{
"name": "a",
"type": "uint256"
},
{
"name": "b",
"type": "uint256"
}
],
"name": "add",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "getCount",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"type": "function"
}
]