common/hexutil 패키지
hexutil.go
- 0x 접두사가 있는 16진수 인코딩을 구현합니다.
- 이더리움 RPC API에서 바이너리 데이터를 JSON 형식의 페이로드로 전송하는 데 사용됩니다.
💡 encoding/hex 패키지와의 차이점은 0x 접두사가 필수적으로 붙는다는 점입니다.
인코딩 규칙
-
모든 16진수 데이터는 "0x" 접두사를 가져야 합니다.
-
바이트 슬라이스의 경우 16진수 데이터는 짝수 길이여야 합니다. 빈 바이트 슬라이스는 "0x"로 인코딩됩니다.
-
정수는 최소한의 숫자를 사용하여 인코딩됩니다.(앞에 0이 붙지 않은 숫자). 그들의 인코딩은 홀수 길이일 수 있습니다. 숫자 0은 "0x0"으로 인코딩됩니다.
json.go
- 이더리움 RPC API에서 JSON 형식의 페이로드를 읽고 쓰는 데 사용되는 유틸리티 함수들을 정의합니다.
- JSON 형식으로 마샬링/언마샬링을 위한
Bytes
,Big
,U256
,Uint64
,Uint
같은 별도의 타입들을 정의합니다.
사용된 외부 패키지
- github.com/holiman/uint256 : 256비트 정수 타입을 정의합니다.