견고성-특수 변수

특수 변수는 전역 적으로 사용 가능한 변수이며 블록 체인에 대한 정보를 제공합니다. 다음은 특수 변수 목록입니다.

Sr. 아니. 특수 변수 및 설명
1

blockhash(uint blockNumber) returns (bytes32)

주어진 블록의 해시-현재 블록을 제외하고 가장 최근 256 개에 대해서만 작동합니다.

2

block.coinbase (address payable)

현재 블록 채굴 자의 주소.

block.difficulty (uint)

현재 블록 난이도.

4

block.gaslimit (uint)

현재 블록 가스 제한.

5

block.number (uint)

현재 블록 번호.

6

block.timestamp

유닉스 시대 이후의 현재 블록 타임 스탬프 (초).

7

gasleft() returns (uint256)

남은 가스.

8

msg.data (bytes calldata)

완전한 통화 데이터.

9

msg.sender (address payable)

메시지 발신자 (현재 통화).

10

msg.sig (bytes4)

calldata의 처음 4 바이트 (예 : 함수 식별자)

11

msg.value (uint)

메시지와 함께 보낸 wei의 수입니다.

12

now (uint)

현재 블록 타임 스탬프 (block.timestamp의 별칭).

13

tx.gasprice (uint)

거래의 가스 가격.

14

tx.origin (address payable)

트랜잭션 발신자 (전체 콜 체인).

Solidity에서 보낸 사람 주소를 가져 오는 특수 변수 인 msg의 사용을 보려면 다음 코드를 시도하십시오.

pragma solidity ^0.5.0;

contract LedgerBalance {
   mapping(address => uint) public balances;

   function updateBalance(uint newBalance) public {
      balances[msg.sender] = newBalance;
   }
}
contract Updater {
   function updateBalance() public returns (uint) {
      LedgerBalance ledgerBalance = new LedgerBalance();
      ledgerBalance.updateBalance(10);
      return ledgerBalance.balances(address(this));
   }
}

Solidity First Application 장에 제공된 단계를 사용하여 위 프로그램을 실행하십시오 .

첫 번째 클릭 updateBalance 값을 10으로 설정하는 버튼은 다음과 같이 디코딩 된 출력을 표시하는 로그를 살펴 봅니다.

산출

{
   "0": "uint256: 10"
}