Files
xo-stack/packages/stack/src/bcmr/bcmr-composite.ts
T

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}`,
);
}
}
}