26 lines
623 B
TypeScript
26 lines
623 B
TypeScript
import { BaseBCMR } from './base-bcmr.js';
|
|
|
|
import { BCMRHttp } from './bcmr-http.js';
|
|
|
|
export class BCMRComposite extends BaseBCMR {
|
|
constructor(public readonly bridges: Array<BCMRHttp>) {
|
|
super();
|
|
}
|
|
|
|
async getTokenData(categoryId: string) {
|
|
const getTokenDataPromises = this.bridges.map((bridge) =>
|
|
bridge.getTokenData(categoryId),
|
|
);
|
|
|
|
try {
|
|
const data = await Promise.any(getTokenDataPromises);
|
|
|
|
return data;
|
|
} catch (error: unknown) {
|
|
throw new Error(
|
|
`Unable to get token metadata from any of the BCMR indexers. Detailed error: ${error}`,
|
|
);
|
|
}
|
|
}
|
|
}
|