설정 조회 함수
func BlockedAddresses() map[string]bool
func GetMaccPerms() map[string][]string 마루의 핵심 보안 및 모듈 설정을 조회하는 유틸리티 함수입니다. BlockedAddresses는 자금을 수신할 수 없는 모든 시스템 예약 주소 집합을 반환하고, GetMaccPerms는 모든 모듈 계정에 대한 권한 매트릭스를 제공합니다. UI, 지갑, 체인 분석 도구를 구축하는 데 유용합니다.
파라미터
이 메서드는 파라미터가 없습니다.
반환값
타입:
map[string]bool | map[string][]string BlockedAddresses는 키가 Bech32 주소이고 값이 true인 맵을 반환합니다. GetMaccPerms는 키가 모듈 이름이고 값이 권한 슬라이스(예: minter, burner)인 맵을 반환합니다.
예제
전송 전 주소 차단 여부 확인
시스템 계정으로의 트랜잭션을 방지하기 위해 `BlockedAddresses`를 사용하는 간단한 유효성 검사 함수입니다.
import "github.com/delight-labs/maroo/config"
func isSendAllowed(recipient string) bool {
blocked := config.BlockedAddresses()
if _, isBlocked := blocked[recipient]; isBlocked {
return false // Do not allow sending to this address
}
return true
} 모듈 계정 권한 목록 조회
이 예제는 `GetMaccPerms`가 반환한 맵을 순회하여 각 모듈 계정의 기능을 표시합니다.
import (
"fmt"
"github.com/delight-labs/maroo/config"
)
func printPermissions() {
perms := config.GetMaccPerms()
fmt.Println("Module Account Permissions:")
for module, permissions := range perms {
fmt.Printf("- %s: %v\n", module, permissions)
}
}