수수료 계산하기
이 안내서는 pallet_transaction_payment
의 런타임 구현에 대한 WeightToFee
를 사용자 정의하는 과정을 안내합니다. 수수료는 세 가지 구성 요소로 나뉩니다:
바이트 수수료 - 트랜잭션의 길이에 비례하는 수수료입니다. 비례 상수는 Transaction Payment Pallet의 매개변수입니다.
가중치 수수료 - 트랜잭션 가중치에서 계산된 수수료입니다. 변환은 선형일 필요는 없지만, 일반적으로 선형입니다. 동일한 변환 함수가 런타임의 모든 팔렛의 모든 트랜잭션에 적용됩니다.
수수료 곱셈기 - 계산된 수수료에 대한 곱셈기로, 체인이 진행됨에 따라 변경될 수 있습니다.
FRAME은 트랜잭션 실행을 위한 수수료를 계산하고 수집하기 위한 Transaction Payment Pallet을 제공합니다. 수수료를 더 정확하게 부과하기 위해 수수료 계산 방식을 수정하는 것이 유용할 수 있습니다.
목표
런타임에서 수수료 계산 방식을 수정하기 위해 WeightToFee
를 사용자 정의합니다.
사용 사례
IdentityFee
대신에 수수료를 계산하는 방식을 수정합니다. 이는 수수료의 한 단위를 한 단위의 가중치에 매핑합니다.
절차
1. LinearWeightToFee
구조체 작성
LinearWeightToFee
구조체 작성runtime/src/lib.rs
에서 WeightToFeePolynomial
을 구현하는 LinearWeightToFee
라는 구조체를 작성합니다. WeightToFeeCoefficient
정수의 smallvec을 반환해야 합니다.
runtime/src/lib.rs
2. 런타임에서 pallet_transaction_payment
구성
pallet_transaction_payment
구성디스패치 가중치를 LinearWeightToFee
로 변환하여 청구 가능한 수수료로 변환합니다 (IdentityFee<Balance>;
대신):
runtime/src/lib.rs
관련 자료
Last updated