개발자 내부 구조
EVM 설정, 프리컴파일 내부 구조, 컨트랙트 아티팩트, ABI 매핑, 개발 도구
개발자
ABI-구조체 매핑은 마루(Maroo) 프리컴파일에서 원시 또는 일반 EVM 입력 인자를 강력한 타입의 Go 구조체로 변환하는 데 사용되는 기술입니다. 이는 입력 인자를 JSON으로 마샬링한 다음 대상 구조체로 언마샬링하는 방식으로 이루어지며, Go의...
컨트랙트 아티팩트는 스마트 컨트랙트 컴파일 프로세스의 주요 출력물입니다. 이는 컨트랙트의 표준적인, 기계가 읽을 수 있는 표현인 JSON 파일로, 특히 ABI(Application Binary Interface)와 EVM 바이트코드를 포함합니다. Ma...
동적 노드 설정은 `marood testnet` 명령어의 기능으로, 개발자가 생성된 각 노드의 `config.toml` 파일에 있는 기본 설정을 재정의할 수 있게 해줍니다. 쉼표로 구분된 키-값 쌍 목록을 전달하여, 생성 후 파일을 수동으로 편집할 필...
마루의 실행 환경은 EVM 모듈(`x/vm`)과 수수료 시장 모듈(`x/feemarket`)이 결합된 Cosmos SDK 체인입니다. 수수료 시장은 **BaseFee가 활성화된 EIP-1559 호환 구성**으로, 발신자가 base fee와 priori...
API의 모든 숫자 값(잔액, 블록 번호, 가스)은 '0x' 접두사가 붙은 16진수 문자열로 반환됩니다.
`marood testnet` 명령어는 로컬 마루 블록체인 네트워크 설정을 자동화하는 강력한 유틸리티입니다. 지정된 수의 검증인에 필요한 모든 설정 파일, 키, 제네시스 정보를 생성하여 개발자가 수동 설정 없이 현실적인 테스트 환경을 신속하게 구축할 ...
Maroo는 모노레포 구조를 사용하며, 스마트 컨트랙트, 특히 프리컴파일 인터페이스는 해당 Go 모듈과 동일한 위치에 있습니다. 컨트랙트 빌드 시스템은 이러한 분산된 레이아웃을 관리하는 데 필요한 도구를 제공합니다. 중앙 집중식 Hardhat 프로젝트...
프리컴파일 사용자 정의 오류는 Cosmos SDK 모듈의 네이티브 Go 오류를 표준 Solidity 사용자 정의 오류로 변환하는 기능입니다. 이는 불투명하고 일반적인 revert에 비해 우수한 개발자 경험을 제공합니다. 프리컴파일 호출이 실패하면, d...
프리컴파일 이벤트 처리는 Go 실행 컨텍스트 내에서 EVM 트랜잭션 영수증(Receipt)에 구조화된 로그를 주입하는 과정을 의미합니다. `emit` 키워드를 사용하는 Solidity 컨트랙트와 달리, 프리컴파일은 수동으로 `types.Log` 객체를...
프리컴파일 유틸리티 패키지는 마루(Maroo)에서 상태 저장 프리컴파일을 구축하는 개발자를 위한 필수 추상화 계층을 제공합니다. 이 패키지는 Solidity로 인코딩된 인자를 Go 구조체로 디코딩하는 복잡한 작업을 단순화하고, Go 코드 내에서 EVM...