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

Solidity

solc module

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"
  }
]

Ethereum Contract ABI

results matching ""

    No results matching ""