[블록체인 기술] Solidity 문법_2

hskim_·2022년 5월 25일
0
post-thumbnail

글로벌 변수

솔리디티 언어에 내장되어 있는 변수를 말함. 또한 글로벌 변수는 독특한 세부 데이터를 가짐.

  1. block : 블록에 대한 정보를 가짐.
  • blockhash(uint blocknumber): 주어진 블록의 해시를 bytes32 형태로 반환.
  • coinbase:블록의 채굴자 주소. address 형식.
  • gaslimit: 블록의 가스 한도. uint 형식.
  • number : 블록의 번호. uint 형식.
  • timestamp: 블록 타임스탬프. uint 형식.
  1. msg : 컨트랙트를 시작한 트랜잭션 콜이나 메시지 콜에 대한 정보를 가짐.
  • gasleft(): 남아있는 가스의 양을 uint256 형태로 반환합니다.
  • data: 전체 콜데이터 본문. bytes 형식.
  • sender: 현재 호출을 수행하고 있는 메시지 발신자. address 형식.
  • gas: 남은 가스양. uint 형식.
  • value: 메시지와 함께 보낸 이더 금액. uint 형식.
  1. tx : 트랜잭션 데이터를 가지고 있음.
  • gasprice : 트랜잭션 가스 비용. uint 형식.
  • origin: 트랜잭션 발신자. address 형식.
  1. This : 현재 컨트랙트를 참조함. 현재 컨트랙트 주소로 암시적으로 변환이 된다.

상태 변수에 접근 수준을 지정하는 방법

컨트랙트 내부에서 상태 변수를 선언할 때, 해당 상태 변수에 접근할 수 있는 권한을 설정할 수 있다.
접근의 수준은 public, internal, private 3가지가 있다.

  • internal (default)
    컨트랙트 및 해당 컨트랙트를 상속 받은 컨트랙트만 인터널 상태 변수를 사용할 수 있다.
  • public
    컴파일러가 퍼블릭 상태 변수에 getter 함수를 생성하면, 퍼블릭 상태 변수는 컨트랙트 내에서 직접 퍼블릭 상태 변수를 사용할 수 있고, 외부 컨트랙트나 클라이언트 코드에서도 getter 함수를 통해 퍼블릭 상태 변수에 접근할 수 있음.
  • private
    동일한 컨트랙트 멤버만 프라이빗 상태 변수에 접근할 수 있음.
profile
열심히, 꾸준히, 그리고 정확히

0개의 댓글