इस प्रोजेक्ट के बारे में

Mergepay API, Mergepay के लिए बैकएंड सेवा है, जो एक Stellar-नेटिव ग्रुप सेटलमेंट एप्लिकेशन है। यह प्रमाणीकरण, ग्रुप और खर्च लॉजिक, ऑन-चेन सेटलमेंट, Stellar एकीकरण, ट्रेज़री मल्टीसिग, और SEP-24 एंकर फ्लो को संभालता है। यह सिस्टम Stellar ब्लॉकचेन पर बनाया गया है। प्रत्येक सेटलमेंट एक वास्तविक ऑन-चेन भुगतान है: लॉगिन SEP-10 वॉलेट प्रमाणीकरण का उपयोग करता है, भुगतान में `MP:<code>` मेमो होता है जो उन्हें एक विशिष्ट खर्च से जोड़ता है, बैलेंस ट्रस्टलाइन पर XLM या USDC में सेटल होते हैं, साझा ट्रेज़री Stellar मल्टीसिग का उपयोग करती हैं, और फिएट ऑन/ऑफ-रैंप SEP-24 एंकर के माध्यम से होता है। सर्वर कभी भी उपयोगकर्ता की निजी कुंजियाँ नहीं रखता — यह अहस्ताक्षरित XDR लेनदेन लिफाफे बनाता है जिन्हें उपयोगकर्ता का वॉलेट Horizon पर सबमिट करने से पहले हस्ताक्षरित करता है। आर्किटेक्चर: API एक Fastify + TypeScript बैकएंड है जो PostgreSQL द्वारा समर्थित है। यह Bearer JWT प्रमाणीकरण के साथ REST के माध्यम से Next.js फ्रंटएंड के साथ संचार करता है। एक बैकग्राउंड वर्कर सेटलमेंट सबमिशन और SEP-24 एंकर पोलिंग को क्लेम-आधारित जॉब ट्रैकिंग और क्रैश हुए प्रोसेस से रिकवरी के साथ संभालता है। मुख्य विशेषताओं में शामिल हैं: - SEP-10 वॉलेट-आधारित प्रमाणीकरण जहाँ उपयोगकर्ता की सार्वजनिक कुंजी उनकी पहचान होती है - सेटलमेंट फ्लो: API स्रोत, गंतव्य, एसेट, राशि, और मेमो के साथ एक अहस्ताक्षरित भुगतान XDR बनाता है, इसे पेंडिंग के रूप में रिकॉर्ड करता है, वॉलेट इस पर हस्ताक्षर करता है, और API Horizon पर सबमिट करने से पहले संग्रहीत इरादे के विरुद्ध हस्ताक्षरित XDR को मान्य करता है - सर्वर-नियंत्रित समय-सीमा और सीमित क्लॉक-स्क्यू सहनशीलता के साथ लेनदेन इरादा समाप्ति - Stellar मल्टीसिग का उपयोग करके साझा ग्रुप ट्रेज़री जिसमें निकासी के लिए कई हस्ताक्षरकर्ताओं की आवश्यकता होती है - फिएट-से-Stellar रूपांतरण के लिए SEP-24 एंकर जमा और निकासी ब्रिज - डुप्लिकेट सबमिशन को रोकने के लिए सेटलमेंट निष्पादन पर आइडेम्पोटेंसी सुरक्षा - इंस्टेंस में डेटाबेस-समर्थित साझा काउंटर के साथ प्रति रूट व्यापक रेट लिमिटिंग - JSON बॉडी और मल्टीपार्ट अपलोड पर अनुरोध आकार सीमाएँ - पूरे कोडबेस में TypeScript स्ट्रिक्ट मोड लागू - सभी API अनुरोध बॉडी Zod के साथ मान्य प्रोजेक्ट को चलाने के लिए Node.js 20+ और PostgreSQL 14+ की आवश्यकता है। इसे Render, Fly.io, या Railway पर तैनात किया जा सकता है, जिसमें Neon, Supabase, या RDS जैसे प्रदाताओं से Postgres प्रोविजन किया जाता है। टेस्ट बिना डेटाबेस या नेटवर्क के मॉक्ड Prisma और Horizon का उपयोग करके चलते हैं, जो सेटलमेंट इंजन, मनी मैथ, SEP-10 चैलेंज/वेरिफाई, हस्ताक्षरित-XDR मान्यता, और ऑथ रूट को कवर करते हैं। एक कमिटेड `docs/api.http` फ़ाइल स्थानीय API अन्वेषण के लिए REST Client संग्रह प्रदान करती है।