@@ -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+
647670app . get ( '/api/config' , ( _req : Request , res : Response ) => {
648671 res . json ( {
649672 data : {
0 commit comments