1function mkDummy(name: string) {2 return {3 ['dummy' + name]: 'u32',4 };5}67type RpcParam = {8 name: string;9 type: string;10 isOptional?: true;11};1213const CROSS_ACCOUNT_ID_TYPE = 'PalletCommonAccountBasicCrossAccountIdRepr';14const TOKEN_ID_TYPE = 'NftDataStructsTokenId';1516const collectionParam = {name: 'collection', type: 'NftDataStructsCollectionId'};17const tokenParam = {name: 'tokenId', type: TOKEN_ID_TYPE};18const crossAccountParam = (name = 'account') => ({name, type: CROSS_ACCOUNT_ID_TYPE});19const atParam = {name: 'at', type: 'Hash', isOptional: true};2021const fun = (description: string, params: RpcParam[], type: string) => ({22 description,23 params: [...params, atParam],24 type,25});2627export default {28 rpc: {29 adminlist: fun('Get admin list', [collectionParam], 'Vec<PalletCommonAccountBasicCrossAccountIdRepr>'),30 allowlist: fun('Get allowlist', [collectionParam], 'Vec<PalletCommonAccountBasicCrossAccountIdRepr>'),3132 accountTokens: fun('Get tokens owned by account', [collectionParam, crossAccountParam()], 'Vec<NftDataStructsTokenId>'),33 collectionTokens: fun('Get tokens contained in collection', [collectionParam], 'Vec<NftDataStructsTokenId>'),3435 lastTokenId: fun('Get last token id', [collectionParam], TOKEN_ID_TYPE),36 accountBalance: fun('Get amount of different user tokens', [collectionParam, crossAccountParam()], 'u32'),37 balance: fun('Get amount of specific account token', [collectionParam, crossAccountParam(), tokenParam], 'u128'),38 allowance: fun('Get allowed amount', [collectionParam, crossAccountParam('sender'), crossAccountParam('spender'), tokenParam], 'u128'),39 tokenOwner: fun('Get token owner', [collectionParam, tokenParam], CROSS_ACCOUNT_ID_TYPE),40 constMetadata: fun('Get token constant metadata', [collectionParam, tokenParam], 'Vec<u8>'),41 variableMetadata: fun('Get token variable metadata', [collectionParam, tokenParam], 'Vec<u8>'),42 tokenExists: fun('Check if token exists', [collectionParam, tokenParam], 'bool'),43 },44 types: {45 PalletCommonAccountBasicCrossAccountIdRepr: {46 _enum: {47 Substrate: 'AccountId',48 Ethereum: 'H160',49 },50 },51 NftDataStructsCollection: {52 owner: 'AccountId',53 mode: 'NftDataStructsCollectionMode',54 access: 'NftDataStructsAccessMode',55 name: 'Vec<u16>',56 description: 'Vec<u16>',57 tokenPrefix: 'Vec<u8>',58 mintMode: 'bool',59 offchainSchema: 'Vec<u8>',60 schemaVersion: 'NftDataStructsSchemaVersion',61 sponsorship: 'NftDataStructsSponsorshipState',62 limits: 'NftDataStructsCollectionLimits',63 variableOnChainSchema: 'Vec<u8>',64 constOnChainSchema: 'Vec<u8>',65 metaUpdatePermission: 'NftDataStructsMetaUpdatePermission',66 },67 NftDataStructsCollectionId: 'u32',68 NftDataStructsTokenId: 'u32',69 PalletNonfungibleItemData: mkDummy('NftItemData'),70 PalletRefungibleItemData: mkDummy('RftItemData'),71 NftDataStructsCollectionMode: mkDummy('CollectionMode'),72 NftDataStructsCreateItemData: mkDummy('CreateItemData'),73 NftDataStructsCollectionLimits: {74 accountTokenOwnershipLimit: 'Option<u32>',75 sponsoredDataSize: 'Option<u32>',76 sponsoredDataRateLimit: 'Option<u32>',77 tokenLimit: 'Option<u32>',78 sponsorTransferTimeout: 'Option<u32>',79 ownerCanTransfer: 'Option<bool>',80 ownerCanDestroy: 'Option<bool>',81 transfersEnabled: 'Option<bool>',82 },83 NftDataStructsMetaUpdatePermission: {84 _enum: ['ItemOwner', 'Admin', 'None'],85 },86 NftDataStructsSponsorshipState: {87 _enum: {88 Disabled: null,89 Unconfirmed: 'AccountId',90 Confirmed: 'AccountId',91 },92 },93 NftDataStructsAccessMode: {94 _enum: ['Normal', 'WhiteList'],95 },96 NftDataStructsSchemaVersion: mkDummy('SchemaVersion'),9798 PalletUnqSchedulerScheduledV2: mkDummy('ScheduledV2'),99 PalletUnqSchedulerCallSpec: mkDummy('CallSpec'),100 PalletUnqSchedulerReleases: mkDummy('Releases'),101 },102};