[Solidity] 기본 분법(2)

zzase·2022년 2월 1일
0

Solidity

목록 보기
3/6
post-thumbnail

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) {
	return "hello"
}

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) {
  // 결과와 관련된 행동을 취한다
})
profile
블록체인 백엔드 개발자

0개의 댓글