Skip to content

Commit c4701d2

Browse files
feat: Add GET /api/assets endpoint
1 parent 10f827c commit c4701d2

1 file changed

Lines changed: 23 additions & 0 deletions

File tree

backend/src/index.ts

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -644,6 +644,29 @@ app.get('/api/open-issues', async (_req: Request, res: Response) => {
644644
res.json({ data });
645645
});
646646

647+
const ASSET_METADATA: Record<string, { name: string, icon_url: string, min_pledge: number, max_pledge: number }> = {
648+
USDC: { name: 'USD Coin', icon_url: 'https://cryptologos.cc/logos/usd-coin-usdc-logo.png', min_pledge: 1, max_pledge: 10000 },
649+
XLM: { name: 'Stellar Lumens', icon_url: 'https://cryptologos.cc/logos/stellar-xlm-logo.png', min_pledge: 10, max_pledge: 100000 },
650+
ARS: { name: 'Argentine Peso', icon_url: '', min_pledge: 1000, max_pledge: 10000000 },
651+
};
652+
653+
const supportedAssetsCache = config.allowedAssets.map((code) => {
654+
const meta = ASSET_METADATA[code] || { name: code, icon_url: '', min_pledge: 0, max_pledge: 0 };
655+
return {
656+
code,
657+
name: meta.name,
658+
contract_address: config.assetAddresses[code] || '',
659+
icon_url: meta.icon_url,
660+
min_pledge: meta.min_pledge,
661+
max_pledge: meta.max_pledge,
662+
};
663+
});
664+
665+
app.get('/api/assets', (_req: Request, res: Response) => {
666+
res.setHeader('Cache-Control', 'public, max-age=31536000');
667+
res.json({ data: supportedAssetsCache });
668+
});
669+
647670
app.get('/api/config', (_req: Request, res: Response) => {
648671
res.json({
649672
data: {

0 commit comments

Comments
 (0)