import { MiniAppError, MiniAppErrorType } from '../miniAppError'; import { checkPermission, PermissionName, PermissionStatus, } from '../permission'; import BridgeFunction from './bridgeFunction'; import { getBalance } from '../../factory/api'; class GetBalance extends BridgeFunction { name = 'getBalance'; protected async executeFunction() { const grantStatus = await checkPermission( PermissionName.mini_app_payment_balance ); if (grantStatus !== PermissionStatus.granted) { throw new MiniAppError(MiniAppErrorType.insufficientScope); } const res: any = await getBalance(); if (res?.data?.unsigned?.resultInfo?.code === 'SUCCESS') { const newBalance = res?.data?.unsigned?.data?.totalBalance ?.amount as number; return this.cbHandler?.success({ balance: newBalance }); } else { throw new MiniAppError(MiniAppErrorType.serverError); } } } export default GetBalance;