1234567891011121314151617type RpcParam = {18 name: string;19 type: string;20 isOptional?: true;21};2223const CROSS_ACCOUNT_ID_TYPE = 'PalletEvmAccountBasicCrossAccountIdRepr';2425const collectionParam = {name: 'collection', type: 'u32'};26const tokenParam = {name: 'tokenId', type: 'u32'};27const propertyKeysParam = {name: 'propertyKeys', type: 'Vec<String>', isOptional: true};28const crossAccountParam = (name = 'account') => ({name, type: CROSS_ACCOUNT_ID_TYPE});29const atParam = {name: 'at', type: 'Hash', isOptional: true};3031const fun = (description: string, params: RpcParam[], type: string) => ({32 description,33 params: [...params, atParam],34 type,35});3637export default {38 types: {},39 rpc: {40 totalStaked: fun(41 'Returns the total amount of staked tokens',42 [{name: 'staker', type: CROSS_ACCOUNT_ID_TYPE, isOptional: true}],43 'u128',44 ),45 totalStakedPerBlock: fun(46 'Returns the total amount of staked tokens per block when staked',47 [crossAccountParam('staker')],48 'Vec<(u32, u128)>',49 ),50 totalStakingLocked: fun(51 'Return the total amount locked by staking tokens',52 [crossAccountParam('staker')],53 'u128',54 ),55 pendingUnstake: fun(56 'Returns the total amount of unstaked tokens',57 [{name: 'staker', type: CROSS_ACCOUNT_ID_TYPE, isOptional: true}],58 'u128',59 ),60 pendingUnstakePerBlock: fun(61 'Returns the total amount of unstaked tokens per block',62 [crossAccountParam('staker')],63 'Vec<(u32, u128)>',64 ),65 },66};