로메오의 블로그

[DApp] Solidity 맛보기 [Smoke Test] 본문

Backend/Python & Blockchain

[DApp] Solidity 맛보기 [Smoke Test]

romeoh 2019. 7. 6. 17:45
반응형

Ganache 실행하기

ganache GUI를 실행합니다.

프로젝트 생성

$ cd /my/project/path
$ mkdir election
$ cd election
$ truffle unbox pet-shop

프로젝트를 에디터로 엽니다. (저는 VSCode로 작업합니다.)

 

Election.sol 파일 생성

$ touch contracts/Election.sol

pragma solidity ^0.5.0;

contract Election {
    string public candidate;

    function setname (string memory name1) public {
        candidate = name1;
    }

    function getname () public view returns (string memory) {
        return candidate;
    }
}

 

Depoy 파일 생성

$ touch migrations/2_depoy_contracts.js

var Election = artifacts.require("./Election.sol");

module.exports = function(deployer) {
  deployer.deploy(Election);
};

 

Truffle Migrate

$ truffle migrate

 

Truffle Console 확인하기

$ truffle console
truffle(development)> Election.deployed().then(instance => app = instance)

truffle console을 실행하고 Election 을 배포하고 instance를 받아서 app에 저장합니다.

주소확인하기

truffle(development)> app.address
'0xA4955eEbf1870B130872F0b0555E81c43c76B78B'

투표하기

truffle(development)> app.setname('romeoh')

투표확인

truffle(development)> app.getname()
'romeoh'

truffle 종료

control + c 키를 두번 누르면 truffle console이 종료됩니다.

 

Ganache에서 확인하기

우리는 app.address로 주소를 확인했습니다.

'0xA4955eEbf1870B130872F0b0555E81c43c76B78B'

Ganache > Transactions 메뉴에서 To Contract address에서 app 주소를 확인 할 수 있습니다.

해당하는 To constracts address의 앞에 있는 from address는 계정 주소입니다.

 

Accounts 메뉴에 가시면 해당 계정에 deploy를 하면서 소진한 Gas 값이 일부 차감된 것을 확인 할 수 있습니다.

블록체인에서 데이터를 읽는것은 무료지만 블록체인에 데이터를 쓰는것은 Gas로 비용을 지불해야 합니다.

반응형
Comments