도우미 함수 사용하기
도우미 함수 생성하기
impl<T: Config> Pallet<T> {
fn _adder(num1: u32, num2: u32) -> Result<u32, &'static str> {
num1.checked_add(num2).ok_or("더할 때 오버플로우 발생")
}
}호출 가능한 함수에서 사용하기
// 런타임 외부에서 호출 가능한 외부 호출.
#[pallet::call]
impl<T: Config> Pallet<T> {
#[pallet::weight(0)]
fn add_value(
origin: OriginFor<T>,
val_to_add: u32
) -> DispatchResultWithPostInfo {
let _ = ensure_signed(origin)?;
ensure!(val_to_add <= T::MaxAddend::get(), "값은 최대 추가 금액 상수보다 작거나 같아야 합니다");
// 이전 값 가져오기
let c_val = SingleValue::<T>::get();
// 새로운 값 추가 시 오버플로우 확인
let result = _adder(c_val, val_to_add);
<SingleValue<T>>::put(result);
Self::deposit_event(Event::Added(c_val, val_to_add, result));
Ok(().into())
}
}예제
자료
Last updated