1234567891011121314151617type RpcParam = {18 name: string;19 type: string;20 isOptional?: true;21};2223const CROSS_ACCOUNT_ID_TYPE = 'PalletEvmAccountBasicCrossAccountIdRepr';2425const crossAccountParam = (name = 'account') => ({name, type: CROSS_ACCOUNT_ID_TYPE});26const atParam = {name: 'at', type: 'Hash', isOptional: true};2728const fun = (description: string, params: RpcParam[], type: string) => ({29 description,30 params: [...params, atParam],31 type,32});3334export default {35 types: {},36 rpc: {37 totalStaked: fun(38 'Returns the total amount of staked tokens',39 [{name: 'staker', type: CROSS_ACCOUNT_ID_TYPE, isOptional: true}],40 'u128',41 ),42 totalStakedPerBlock: fun(43 'Returns the total amount of staked tokens per block when staked',44 [crossAccountParam('staker')],45 'Vec<(u32, u128)>',46 ),47 pendingUnstake: fun(48 'Returns the total amount of unstaked tokens',49 [{name: 'staker', type: CROSS_ACCOUNT_ID_TYPE, isOptional: true}],50 'u128',51 ),52 pendingUnstakePerBlock: fun(53 'Returns the total amount of unstaked tokens per block',54 [crossAccountParam('staker')],55 'Vec<(u32, u128)>',56 ),57 },58};