BloCCat

solidity 기초(2) 본문

Study/Solidity

solidity 기초(2)

uooy 2021. 8. 29. 17:17

1. 함수 선언

function eatHamburgers(string _name, uint _amount) {

}

parameter명은 _를 붙이는 것이 관습

 

2. public / private

solidity에서 함수는 기본적으로 public으로 선언됨. 

다만 함수는 기본적으로 private로 선언하고 공개할 수 있는 함수만 public으로 선언할 것.

uint[] numbers;

function _addToArray(uint _number) private {
  numbers.push(_number);
}

3. 함수의 반환값 타입 지정

string greeting = "What's up dog";

function sayHello() public returns (string) {
  return greeting;
}

4. 함수 제어자 ( view / pure)

- view : 함수가 데이터를 보기만하고 변경하지 않을 때 사용

function sayHello() public view returns (string) {

- pure : 함수가 앱에서 어떤 데이터도 접근하지 않을 때 사용 

function _multiply(uint a, uint b) private pure returns (uint) {
  return a * b;
}

5. Keccak256

*이더리움은 기본적으로 sha3의 한 버전인 keccak256함수를 내장 해시 함수로 가지고 있는다. 

입력값을 string 타입으로 받으며 이를 16진수 해시값으로 매핑하여 출력함

//6e91ec6b618bb462a4a6ee5aa2cb0e9cf30f7a052bb467b0ba58b8748c00d2e5
keccak256("aaaab");
//b1f078126895a1424524de5321b339ab00408010b7cf0e6ed451514981e58aa9
keccak256("aaaac");

6. 이벤트

- 컨트랙트가 블록체인상에서 앱의 사용자 단에서 무언가 액션이 발생했을 때 의사소통 하는 방법

event IntegersAdded(uint x, uint y, uint result);

function add(uint _x, uint _y) public {
  uint result = _x + _y;
  // 이벤트를 실행하여 앱에게 add 함수가 실행되었음을 알린다:
  IntegersAdded(_x, _y, result);
  return result;
}


//앱단
YourContract.IntegersAdded(function(error, result) {
  // 결과와 관련된 행동을 취한다
})

 

'Study > Solidity' 카테고리의 다른 글

효율적인 Contract 작성법 (1)  (0) 2021.08.29
Ownable.sol  (0) 2021.08.29
solidity 기초 (3)  (0) 2021.08.29
solidity 기초 (1)  (0) 2021.08.29
Soilidity란?  (0) 2021.08.29