mirror of
https://github.com/luxfi/explore.git
synced 2026-09-24 00:28:18 +00:00
- Rename all @blockscout/* npm packages to @luxfi/* aliases (150+ files) - Override blue accent colors to gray for monochrome theme - Fix dropdown/menu/popover fonts to use Geist Sans - Change Latest Blocks to horizontal scrolling layout - Show dashes instead of zeros for validator stats on error - Fix GHA deploy step to use correct deployment name
62 lines
2.2 KiB
TypeScript
62 lines
2.2 KiB
TypeScript
import type { ApiResource } from '../types';
|
|
import type * as bens from '@luxfi/bens-types';
|
|
import type { EnsAddressLookupFilters, EnsDomainLookupFilters, EnsLookupSorting } from 'types/api/ens';
|
|
|
|
export const BENS_API_RESOURCES = {
|
|
addresses_lookup: {
|
|
path: '/v1/addresses\\:lookup',
|
|
filterFields: [ 'address' as const, 'resolved_to' as const, 'owned_by' as const, 'only_active' as const, 'protocols' as const ],
|
|
paginated: true,
|
|
},
|
|
address_domain: {
|
|
path: '/v1/addresses/:address',
|
|
pathParams: [ 'address' as const ],
|
|
filterFields: [ 'protocols' as const ],
|
|
},
|
|
domain_info: {
|
|
path: '/v1/domains/:name',
|
|
pathParams: [ 'name' as const ],
|
|
filterFields: [ 'protocols' as const ],
|
|
},
|
|
domain_events: {
|
|
path: '/v1/domains/:name/events',
|
|
pathParams: [ 'name' as const ],
|
|
filterFields: [ 'protocols' as const ],
|
|
},
|
|
domains_lookup: {
|
|
path: '/v1/domains\\:lookup',
|
|
filterFields: [ 'name' as const, 'only_active' as const, 'protocols' as const ],
|
|
paginated: true,
|
|
},
|
|
protocols: {
|
|
path: '/v1/protocols',
|
|
},
|
|
} satisfies Record<string, ApiResource>;
|
|
|
|
export type BensApiResourceName = `bens:${ keyof typeof BENS_API_RESOURCES }`;
|
|
|
|
/* eslint-disable @stylistic/indent */
|
|
export type BensApiResourcePayload<R extends BensApiResourceName> =
|
|
R extends 'bens:addresses_lookup' ? bens.LookupAddressResponse :
|
|
R extends 'bens:address_domain' ? bens.GetAddressResponse :
|
|
R extends 'bens:domain_info' ? bens.DetailedDomain :
|
|
R extends 'bens:domain_events' ? bens.ListDomainEventsResponse :
|
|
R extends 'bens:domains_lookup' ? bens.LookupDomainNameResponse :
|
|
R extends 'bens:protocols' ? bens.GetProtocolsResponse :
|
|
never;
|
|
/* eslint-enable @stylistic/indent */
|
|
|
|
/* eslint-disable @stylistic/indent */
|
|
export type BensApiPaginationFilters<R extends BensApiResourceName> =
|
|
R extends 'bens:addresses_lookup' ? EnsAddressLookupFilters :
|
|
R extends 'bens:domains_lookup' ? EnsDomainLookupFilters :
|
|
never;
|
|
/* eslint-enable @stylistic/indent */
|
|
|
|
/* eslint-disable @stylistic/indent */
|
|
export type BensApiPaginationSorting<R extends BensApiResourceName> =
|
|
R extends 'bens:addresses_lookup' ? EnsLookupSorting :
|
|
R extends 'bens:domains_lookup' ? EnsLookupSorting :
|
|
never;
|
|
/* eslint-enable @stylistic/indent */
|