728x90
반응형
SMALL
솔리디티는 스마트 컨트랙트 개발에 필요한 다양한 글로벌 변수와 함수를 제공합니다. 이러한 글로벌 변수와 함수는 컨트랙트 코드 어디에서나 접근할 수 있으며, 블록체인 상태 정보 및 시스템 함수와 관련된 작업을 수행할 때 유용합니다. 이 글에서는 솔리디티의 주요 글로벌 변수와 함수에 대해 알아봅시다.
글로벌 변수
솔리디티의 글로벌 변수는 블록체인 및 트랜잭션 관련 정보를 제공합니다. 다음은 주요 글로벌 변수 목록입니다.
- block.timestamp (uint): 현재 블록의 타임스탬프를 반환합니다 (초 단위).
- block.number (uint): 현재 블록의 번호를 반환합니다.
- block.difficulty (uint): 현재 블록의 난이도를 반환합니다.
- block.chainid (uint): 현재 체인의 ID를 반환합니다.
- msg.sender (address payable): 현재 함수를 호출한 주소를 반환합니다.
- msg.value (uint): 현재 함수에 전송된 Ether의 양을 반환합니다 (wei 단위).
- tx.origin (address): 현재 트랜잭션을 발생시킨 원래 주소를 반환합니다.
pragma solidity ^0.8.0;
contract GlobalVariablesExample {
function getBlockInfo() public view returns (uint, uint, uint) {
return (block.timestamp, block.number, block.difficulty);
}
function getMessageInfo() public payable returns (address, uint) {
return (msg.sender, msg.value);
}
function getTransactionOrigin() public view returns (address) {
return tx.origin;
}
}
글로벌 함수
솔리디티는 다양한 글로벌 함수를 제공하여 개발자들이 자주 사용하는 작업을 간편하게 수행할 수 있습니다. 다음은 주요 글로벌 함수 목록입니다.
- require(bool condition, string memory message): 조건이 참이 아닌 경우 에러 메시지와 함께 트랜잭션을 되돌립니다.
- assert(bool condition): 조건이 참이 아닌 경우 트랜잭션을 되돌립니다.
- revert(string memory message): 에러 메시지와 함께 트랜잭션을 되돌립니다.
- keccak256(bytes memory input): 입력 데이터에 대한 Keccak-256 해시 값을 반환합니다.
- sha256(bytes memory input): 입력 데이터에 대한 SHA-256 해시 값을 반환합니다.
- ripemd160(bytes memory input): 입력 데이터에 대한 RIPEMD-160 해시 값을 반환합니다.
- ecrecover(bytes32 hash, uint8 v, bytes32 r, bytes32 s): 주어진 서명 데이터를 사용하여 메시지 해시에 서명한 주소를 반환합니다.
- addmod(uint x, uint y, uint k): 두 숫자의 합을 모듈로 k로 나눈 나머지를 반환합니다.
- mulmod(uint x, uint y, uint k): 두 숫자의 곱을 모듈로 k로 나눈 나머지를 반환합니다.
pragma solidity ^0.8.0;
contract GlobalFunctionsExample {
function requireExample(uint age) public pure {
require(age >= 18, "Age must be at least 18.");
}
function assertExample(uint value) public pure {
uint doubledValue = value * 2;
assert(doubledValue >= value);
}
function hashExample(string memory input) public pure returns (bytes32) {
return keccak256(bytes(input));
}
function addmodExample(uint x, uint y, uint k) public pure returns (uint) {
return addmod(x, y, k);
}
}
728x90
반응형
LIST
'블록체인 (Block Chain) > 이더리움' 카테고리의 다른 글
[솔리디티 입문] 5. 함수 (0) | 2023.06.16 |
---|---|
[솔리디티 입문] 4. 상태 변수 (0) | 2023.06.16 |
[솔리디티 입문] 2. 참조형(reference type) (0) | 2023.06.16 |
[솔리디티 입문] 1. 값형(value type) (0) | 2023.06.16 |
솔리디티 (Solidity) (0) | 2023.06.16 |