testnet
GitHub EN

keeper.GlobalPolicyValidate

GlobalPolicyValidate(ctx sdk.Context, msgs []sdk.Msg) error

전역으로 구성된 PCL 정책에 대해 코스모스 SDK 메시지 슬라이스를 검증합니다. 이 함수는 모든 트랜잭션에서 실행되어 네트워크 전체의 컴플라이언스 규칙을 시행하는 PclAnteDecorator의 핵심 통합 지점입니다.

파라미터

이름 타입 필수 설명
ctx sdk.Context 스토어, 블록 시간 등에 대한 접근을 제공하는 현재 블록체인 컨텍스트입니다.
msgs []sdk.Msg 검증할 트랜잭션에 포함된 메시지 슬라이스입니다.

반환값

타입: error

모든 전역 정책을 통과하면 nil을 반환합니다. 그렇지 않으면 어떤 정책이 위반되었는지를 나타내는 특정 오류(예: ErrorInDenylist, ErrorVolumeAboveMaxLimit)를 반환합니다.

에러

코드 이름 설명
ErrorInDenylist ErrorInDenylist 메시지 발신자가 활성 전역 거부 목록에 있습니다.
ErrorEasAttestationRequired ErrorEasAttestationRequired 전역 EAS 정책이 활성화되어 있고 발신자가 필요한 증명을 가지고 있지 않습니다.

예제

AnteDecorator 내 사용법

`ante.go`에서 가져온 이 코드 스니펫은 표준적인 사용법을 보여줍니다. 데코레이터는 `GlobalPolicyValidate`를 호출하고 오류가 반환되면 트랜잭션을 거부합니다.

func (pd PclAnteDecorator) AnteHandle(ctx sdk.Context, tx sdk.Tx, simulate bool, next sdk.AnteHandler) (sdk.Context, error) {
    // The core logic of the PCL ante handler.
    err := pd.pclKeeper.GlobalPolicyValidate(ctx, tx.GetMsgs())
    if err != nil {
        // If validation fails, reject the transaction.
        return ctx, err
    }

    // If validation succeeds, proceed to the next handler in the chain.
    return next(ctx, tx, simulate)
}
ESC
검색어를 입력하세요