특수 변수 및 함수 전역 이름 공간에 특수한 변수와 함수가 존재합니다. 그들은 주로 블록체인에 대한 정보나 일반적인 도구 함수를 제공합니다. 청크 및 트랜잭션 속성
block.Blockhash(uint BlockNumber)returns(bytes32): 지정한 블록의 해시 - 최신 256개 블록에만 사용할 수 있고 현재 블록은 포함되지 않습니다.Blocks는 0.4.22 버전부터 사용을 권장하지 않으며 Blockhash(uint BlockNumber)로 대체
block.coinbase(address): 현재 블록의 광부 주소를 발굴
block.difficulty(uint): 현재 블록 난이도
block.gaslimit(uint): 현재 블록gas 한도액
block.number(uint): 현재 청크 번호
block.timestamp (uint): 유닉스 epoch에서 현재 블록의 시간 스탬프
를 시작합니다.
gasleft()returns(uint256): 남은 가스
msg.데이터(bytes): 온전한calldata
msg.sender(address): 메시지 발송자(현재 호출)
msg.sig(bytes4):calldata의 앞 4바이트(즉 함수 식별자)
msg.value(uint): 메시지와 함께wei의 수량
now(uint): 현재 블록 시간 스탬프(block.timestamp)
tx.gasprice(uint): 거래의gas가격
tx.origin(address): 거래 발기자(완전한 호출체인)
블록체인 거래 속성 설명
같은 체인에 연속된 블록에 대해 현재 블록의 시간 스탬프는 항상 이전 블록의 시간 스탬프보다 크다.
가장 최근 256개 블록만 검색할 수 있으며 다른 모든 블록은 0
으로 반환됩니다.
msg의 모든 구성원의 값은 msg를 포함한다.sender 및 msg.value는 모든 external 함수 호출에서 변경됩니다.
오류 처리 오류 처리란 프로그램에 오류가 발생했을 때의 처리 방식을 가리킨다.Solidity 처리 오류는 우리가 흔히 볼 수 있는 언어와 다르다. 이것은 반환 상태를 통해 오류를 처리하고 이상이 발생했을 때 현재 호출(그리고 모든 하위 호출)이 바뀐 상태를 취소하며 호출자에게 오류 표식을 되돌려준다.(try catch가 없으면 예외를 포착할 수 없음) assert(bool condition) 조건이 충족되지 않으면 현재 거래가 효과가 없습니다. 내부 오류를 검사하는 데 사용됩니다. 특징:모든 가스 소모 다음 장면에서 assert 유형의 예외가 자동으로 발생합니다.
액세스 그룹의 인덱스가 너무 크거나 음수(예를 들어 x[i]에서 i>=x.length 또는 i<0)입니다.
정해진 바이트 그룹에 접근하는 인덱스가 너무 크거나 마이너스입니다.
0을 제수로 나누거나 모드 연산(예를 들어 5/0 또는 23% 0)을 한다.
이위음수위.
너무 크거나 마이너스 수치를 매거 형식으로 변환합니다.
assert의 매개 변수(표현식)를 호출하여false로 최종 결산합니다.
require(bool condition) 조건이 충족되지 않으면 상태 변경을 취소합니다. 입력이나 외부 구성 요소로 인한 오류를 검사하는 데 사용됩니다. 특징: 모든 가스 소모 없음 다음 장면에서 require 유형의 예외가 자동으로 발생합니다.
throw를 호출합니다.
require의 매개 변수(표현식)를 호출하여false로 최종 결산합니다.
메시지 호출을 통해 어떤 함수를 호출했지만 이 함수는 정확하게 끝나지 않았습니다. (가스가 소모되었거나 일치하는 함수가 없거나 이상이 발생했습니다.) 상기 함수는 낮은 단계의 조작call,send,delegatecall 또는callcode를 포함하지 않습니다.저급 작업은 이상을 던지지 않으며false를 되돌려 실패를 표시합니다.
new 키워드로 계약을 만들었지만 계약이 제대로 만들어지지 않았습니다
코드가 포함되지 않은 계약에 대해 외부 함수를 호출합니다.
계약은payable 수식자가 없는 공유 함수 (구조 함수와fallback 함수 포함) 를 통해Ether를 수신한다.
계약은 공유getter 함수를 통해 이더를 수신한다.
transfer()가 실패했습니다.
require(bool condition, string message) 조건이 충족되지 않으면 상태 변경을 취소합니다. 입력이나 외부 구성 요소로 인한 오류를 검사하는 데 사용되며, 오류 메시지를 동시에 제공할 수 있습니다. revert() 실행을 중지하고 상태 변경을 취소합니다.특징: 남은 가스 반환 revert(string reason) 실행을 중지하고 상태 변경을 취소하면 해석적인 문자열을 제공할 수 있습니다. 수학 및 암호화 함수
addmod(uint x, uint y, uint k)returns(uint) 계산(x + y)%k의 값을 계산하고 그 중에서 덧셈은 지정된 정밀도로 실행하며 2** 256을 초과하지 않습니다.버전 0.5.0부터 단언 k!=0.
mulmod(uint x, uint y, uint k)returns(uint) 계산(x * y)%k의 값을 곱셈으로 지정한 정밀도로 실행하고 2** 256을 초과하지 않습니다.버전 0.5.0부터 단언 k!=0