1. contract compiler 설치
npm install -g solc
2. 폴더 생성후 contract 작성
mkdir test
# contract 작성
pragma solidity ^0.5.0;
contract Simple{
uint256 public data;
function get() view public returns(uint256) {
return data;
}
function set (uint256 _data) public{
data= _data;
}
}
3. contract compile
# contract compile
solcjs --optimize --bin --abi Simple.sol
4. contract 생성
web3.personal.unlockAccount(web3.eth.accounts[0], "<password>");
var simpleabi = [{"constant":false,"inputs":[{"name":"_data","type":"uint256"}],"name":"set","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"get","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"data","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"}];
var simplebin = "0x608060405234801561001057600080fd5b5060ec8061001f6000396000f3fe608060405260043610604c577c0100000000000000000000000000000000000000000000000000000000600035046360fe47b1811460515780636d4ce63c14607957806373d4a13a14609d575b600080fd5b348015605c57600080fd5b50607760048036036020811015607157600080fd5b503560af565b005b348015608457600080fd5b50608b60b4565b60408051918252519081900360200190f35b34801560a857600080fd5b50608b60ba565b600055565b60005490565b6000548156fea165627a7a7230582021de534458be79a3342e230025b1c954733986fbd89e8048897c933b766d71ce0029";
var simpleContract = web3.eth.contract(simpleabi);
var simple = simpleContract.new({
from: web3.eth.accounts[0],
data: simplebin,
gas: 4700000
}, function (e, contract) {
console.log(e, contract)
if (typeof contract.address !== 'undefined') {
console.log('Address: ' + contract.address);
}
});
위에 new를 수행하면 contract address가 출력되고 해당 address 사용하여 contract 인스턴스 생성 사용
5. contract 사용
web3.personal.unlockAccount(web3.eth.accounts[0]);
var simp = web3.eth.contract(simpleabi).at("0x81b0f269835c1188373e60f026c71f0f3a5120b9");
simp.data()
simp.get()
simp.set(1000, { from: web3.eth.accounts[0] });
'blockchain > ethereum' 카테고리의 다른 글
solidity contract (0) | 2018.12.31 |
---|---|
solidity data type (0) | 2018.12.30 |
solidity solc 설치 (0) | 2018.12.30 |
ethereum 인프라 활용 (0) | 2018.12.27 |
geth 기본 명령어 (0) | 2018.12.27 |