class4_ BYTES

개굴·2023년 5월 14일
0

solidity

목록 보기
4/11
// SPDX-License-Identifier: GPL-3.0

pragma solidity ^0.8.18;

/*
실습가이드

- BYTES은 자리수에 딱 맞게 데이터가 들어가야한다. 
- 숫자는 남아도 상관없음
- 자리수가 고정 되어 있다면 굳이 bytes(무한정)로 선언말자 (자리 수에 따라 가스비 소모가 다르다) 

- d 없이
1. 0x10, 0x11, 0x12 넣어서 setABC 해보기 -> 오류 확인 incorrect data length
2. 0x10, 0x11, 0x0012 넣어서 setABC 해보기
3. getABC 결과 확인

- d 포함 후
1. 0xa665a45920422f9d417e4867efdc4fb8a04a1f3fff1fa07e998e86f7f7a27ae3, 0x11, 0x1234, 0xa665a45920422f9d417e4867efdc4fb8a04a1f3fff1fa07e998e86f7f7a27ae3 넣어서 setABCD 해보기
2. getABCD 결과 확인
3. 0xa665a45920422f9d417e4867efdc4fb8a04a1f3fff1fa07e998e86f7f7a27ae3a665a45920422f9d417e4867efdc4fb8a04a1f3fff1fa07e998e86f7f7a27ae3, 0x11, 0x1234, 0xa665a45920422f9d417e4867efdc4fb8a04a1f3fff1fa07e998e86f7f7a27ae3 넣어서 setABCD 해보기
4. getABCD 결과 확인
*/

contract BYTES {
    bytes a; // 사실상 무한정 -> 자리수 동적 
    bytes1 b; // 자리수 정적(결정됨) -> 16진수 2자리
    bytes2 c; // 자리수 정적(결정됨) -> 16진수 4자리
    bytes32 d; // 자리수 정적(결정됨) -> 16진수 64자리


    function setABCD(bytes memory _a, bytes1 _b, bytes2 _c, bytes32 _d) public {
        a = _a;
        b = _b;
        c = _c;
        d = _d;
    }

    function getABCD() public view returns(bytes memory, bytes1, bytes2, bytes32) {
        return(a,b,c,d);
    }
}

contract LocalVariable {
    function A() public pure returns(uint) {
        uint a=5;
        uint b=7;
        return (a+b);
    }
}

0개의 댓글