Skip to content

Instantly share code, notes, and snippets.

@sacros
Created May 26, 2019 06:42
Show Gist options
  • Save sacros/3cc68a56aa01466ee1d38476fe3cca5a to your computer and use it in GitHub Desktop.
Save sacros/3cc68a56aa01466ee1d38476fe3cca5a to your computer and use it in GitHub Desktop.

Deploying contract with solc

mkdir manual_dapp && cd manual_dapp
mkdir data
geth --dev --datadir=./data console

in a seperate terminal:

echo "pragma solidity ^0.4.0;

contract SimpleStorage {
    uint storedData;

    function set(uint x) public {
        storedData = x;
    }

    function get() public view returns (uint) {
        return storedData;
    }
}
" > SimpleStorage.sol

echo var compilerStorage = `solc --combined-json abi,bin,interface SimpleStorage.sol` > simpleStorage.js

in the previous terminal:

loadScript(simpleStorage.js)
var abi = compiledStorage.contracts["SimpleStorage.sol:SimpleStorage"].abi
var bin = "0x" + compiledStorage.contracts["SimpleStorage.sol:SimpleStorage"].bin
var deploymentTx = {from: eth/accounts[0], data: bin, gas: 1000000}
var storageInterface = eth.contract(JSON.parse(abi))
var storageInstance = storageInterface.new(deploymentTx)
var address = eth.getTransactionReceipt(storageInstance.transactionHash).contractAdress
var storage = storageInterface.at(address)
storage.get.call()
storage.set.sendTransaction(10, {from: eth.accounts[0], gas: 1000000})
storage.get.call()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment