견고성-특수 변수
특수 변수는 전역 적으로 사용 가능한 변수이며 블록 체인에 대한 정보를 제공합니다. 다음은 특수 변수 목록입니다.
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"
}