> ## Documentation Index
> Fetch the complete documentation index at: https://whitepaper.rwanftfi.com/llms.txt
> Use this file to discover all available pages before exploring further.

# स्मार्ट कॉन्ट्रैक्ट आर्किटेक्चर

> Diamond Pattern और 7 Facets।

RWANFTFI प्लेटफ़ॉर्म एक मज़बूत, मॉड्यूलर, और सुरक्षित स्मार्ट कॉन्ट्रैक्ट आर्किटेक्चर पर बनाया गया है जो बिना केंद्रीय नियंत्रण के सभी अंतःक्रियाओं, वितरणों, और टोकन मैकेनिक्स को नियंत्रित करता है।

<video autoPlay muted loop playsInline preload="metadata" style={{ width: '100%', borderRadius: '12px', marginTop: '24px', marginBottom: '24px' }} src="https://mintcdn.com/rwanftfi/UElUUQE-oWUZwJoB/bx2.mp4?fit=max&auto=format&n=UElUUQE-oWUZwJoB&q=85&s=6802a0aa8f6c63b7cba3032a69e6a3a5" data-path="bx2.mp4" />

## Diamond Pattern (EIP-2535)

RWANFTFI सिस्टम का मूल Diamond Pattern (EIP-2535) का उपयोग करके लागू किया गया है। यह आर्किटेक्चरल विकल्प प्रोटोकॉल को मानक स्मार्ट कॉन्ट्रैक्ट साइज़ सीमा (24KB) को बायपास करने की अनुमति देता है, कार्यक्षमता को कई स्वतंत्र मॉड्यूल जिन्हें "Facets" कहा जाता है (एक एकल प्रॉक्सी कॉन्ट्रैक्ट के माध्यम से एक्सेस किए जाने वाले स्मार्ट कॉन्ट्रैक्ट मॉड्यूल) में विभाजित करके।

## मुख्य Facets

<CardGroup cols={2}>
  <Card title="AdminFacet" icon="gear">
    सिस्टम पैरामीटर, रोल्स, बिज़नेस सेल, और विशेष NFT माइंटिंग।
  </Card>

  <Card title="MarketingFacet" icon="bullhorn">
    उपयोगकर्ता पंजीकरण, NFT खरीद, और मार्केटिंग रिवॉर्ड वितरण।
  </Card>

  <Card title="FarmingFacet" icon="seedling">
    NFTM माइनिंग और DA फार्मिंग चक्र प्रबंधन।
  </Card>

  <Card title="PaymentFacet" icon="wallet">
    जमा, निकासी, वाउचर निर्माण, और संचयी स्थानांतरण।
  </Card>

  <Card title="TreeFacet" icon="sitemap">
    22-स्तरीय बाइनरी ट्री लॉजिक और उपयोगकर्ता प्लेसमेंट एल्गोरिदम।
  </Card>

  <Card title="ResolverFacet" icon="rotate">
    समाप्त DA स्टैक प्रसंस्करण, वाउचर बर्न, और फ्रोजन अकाउंट रिज़ोल्यूशन।
  </Card>

  <Card title="ViewFacet" icon="eye">
    उपयोगकर्ता डेटा, बैलेंस, और ट्री संरचनाओं के लिए केवल-पढ़ने योग्य प्रश्न।
  </Card>
</CardGroup>

## NFT कॉन्ट्रैक्ट और टोकन ID स्पेस

प्रोटोकॉल तीन अलग-अलग NFT कॉन्ट्रैक्ट (Regular, Gift, Ambassador) का उपयोग करता है। ऑन-चेन `registeredTokens` मैपिंग में पहचानकर्ता टकराव को रोकने के लिए जो सिस्टम भर में हर माइंटेड NFT को ट्रैक करता है, **Regular NFT और Gift NFT समता द्वारा विभाजित अलग-अलग `tokenId` स्पेस में माइंट होते हैं**:

* **Regular NFT** — विषम टोकन ID (`1, 3, 5, 7, …`)।
* **Gift NFT** — सम टोकन ID (`2, 4, 6, 8, …`)।

विभाजन प्रत्येक NFT कॉन्ट्रैक्ट के मिंटर लॉजिक के भीतर माइंट समय पर लागू किया जाता है। क्योंकि एक कॉन्ट्रैक्ट पर एक सफल माइंट कभी भी ऐसा पहचानकर्ता उत्पन्न नहीं कर सकता जो दूसरा कॉन्ट्रैक्ट जारी कर सके, मैपिंग-टकराव बग का एक पूरा वर्ग टाइप-सिस्टम स्तर पर समाप्त हो जाता है — किसी रनटाइम गार्ड या प्रति-कॉल डिडुप्लीकेशन जाँच की आवश्यकता नहीं है। विभाजन अंतिम उपयोगकर्ताओं के लिए अदृश्य है: वॉलेट और मार्केटप्लेस प्रत्येक NFT को उसके मूल कॉन्ट्रैक्ट के तहत प्रदर्शित करना जारी रखते हैं।

## अपग्रेडेबिलिटी मैट्रिक्स

* **Diamond Contract (EIP-2535):** Facet कट्स के माध्यम से अपग्रेड योग्य — पूरी सिस्टम को फिर से डिप्लॉय किए बिना अलग-अलग मॉड्यूल जोड़ने, बदलने, या हटाने की अनुमति देता है।
* **TokenReserve (DA):** Transparent Proxy के माध्यम से अपग्रेड योग्य — कॉन्ट्रैक्ट पता बदले बिना लॉजिक अपडेट संभव हैं।
* **NFTs (Regular, Gift, Ambassador), GovToken, AdminContract:** गैर-अपग्रेडेबल — मुख्य संपत्तियों और गवर्नेंस नियमों की अपरिवर्तनीयता सुनिश्चित करते हुए।

## रोल प्रबंधन

सिस्टम अनुमतियों को सुरक्षित रूप से प्रबंधित करने के लिए एक पदानुक्रमित रोल संरचना (AccessControlEnumerable) का उपयोग करता है:

* `ADMIN_ROLE`: अन्य रोल प्रदान/रद्द कर सकता है और महत्वपूर्ण सिस्टम पैरामीटर बदल सकता है।
* `SERVICE_ROLE`: स्वचालित कार्यों के लिए बैकएंड स्क्रिप्ट द्वारा निष्पादित (जैसे, समाप्त स्टैक रिज़ॉल्व करना, क्रॉस-चेन डिपॉज़िट प्रसंस्करण)।
* `SIGNER_ROLE`: वाउचर ट्रांसफ़र जैसी विशिष्ट क्रियाओं को अधिकृत करने के लिए क्रिप्टोग्राफ़िक हस्ताक्षर सत्यापन के लिए उपयोग किया जाता है।
* `MINTER_ROLE`: विशिष्ट टोकन या NFT माइंट करने के लिए अधिकृत।

## बैलेंस स्कीमा और पेमेंट प्राथमिकता

फंडों के जटिल प्रवाह को प्रबंधित करने के लिए, RWANFTFI स्मार्ट कॉन्ट्रैक्ट के भीतर एक मल्टी-टियर बैलेंस स्कीमा का उपयोग करता है।

**उपयोगकर्ता बैलेंस:**

1. **Regular Balance (`balance`):** उपलब्ध USDT के लिए प्राथमिक वॉलेट। यहाँ के फंड किसी भी समय निकाले जा सकते हैं, NFT खरीदने के लिए उपयोग किए जा सकते हैं, या वाउचर उत्पन्न करने के लिए उपयोग किए जा सकते हैं।
2. **Accumulative Balance (`accumulativeBalance`):** एक अनिवार्य बचत अकाउंट जहाँ हर मार्केटिंग रिवॉर्ड का 20% accrual पर तुरंत क्रेडिट किया जाता है।

   * **उपयोग:** केवल समान स्तर के NFT या उच्च-स्तर के NFT खरीदने के लिए उपयोग किया जा सकता है।
   * **शुल्क:** NFT खरीद के लिए इस बैलेंस का उपयोग करने पर 20% शुल्क **DA Liquidity Pool को निर्देशित** होता है। इसे किसी अन्य उपयोगकर्ता को स्थानांतरित करने पर भी 20% शुल्क **DA Liquidity Pool को निर्देशित** होता है। Accumulative Balance का हर मूवमेंट पूल में प्रवाह उत्पन्न करता है और नए DA के लिए आधार बनाता है।
   * **120-दिन पुनर्वितरण:** यदि उपयोगकर्ता 120 दिनों के भीतर अपने Accumulative Balance का उपयोग नहीं करता, तो अप्रयुक्त बैलेंस पुनर्वितरण के लिए पात्र हो जाता है। विभाजन उपयोगकर्ता के NFT प्रकार पर निर्भर करता है:
     * **Regular NFT धारक:** **70%** नए DA टोकन माइंट करने के लिए DA Liquidity Pool को निर्देशित होता है; **30%** उपयोगकर्ता के प्रत्यक्ष अपलाइन स्पॉन्सर को स्थानांतरित होता है।
     * **Gift NFT धारक:** **80%** DA Liquidity Pool को निर्देशित होता है; **20%** प्रत्यक्ष अपलाइन स्पॉन्सर को स्थानांतरित होता है (अलग `accumulativeClaimDistributeGift` पैरामीटर द्वारा शासित)।
     * **कैस्केड नियम (दोनों प्रकार):** यदि अपलाइन स्पॉन्सर की आय सीमा समाप्त हो गई है (शून्य के बराबर), तो स्पॉन्सर हिस्सा संरचना में अगले पात्र प्रतिभागी को आगे जाता है। यदि श्रृंखला में किसी भी प्रतिभागी के पास सक्रिय आय सीमा नहीं है, तो पूरी राशि DA Liquidity Pool को निर्देशित होती है।

   <Note>
     **120 दिन = गारंटीकृत न्यूनतम विंडो, स्वचालित समाप्ति नहीं:** `accumulativeDecayTime` पैरामीटर **केवल `withdrawAccumulative()` के अंदर** चेक किया जाता है — एडमिन/सर्विस-ट्रिगर्ड पुनर्वितरण पथ। इसका मूल्यांकन व्यय या स्थानांतरण पथों पर **नहीं** किया जाता। व्यवहार में इसका अर्थ है:

     * क्रेडिट के बाद पहले 120 दिनों के लिए, Accumulative Balance की **गारंटीकृत अखंडता** है — इसे किसी द्वारा भी पुनर्वितरित नहीं किया जा सकता।
     * दिन 120 के बाद, बैलेंस पुनर्वितरण के लिए **पात्र** हो जाता है, लेकिन टाइमर के बीतने पर पुनर्वितरण स्वचालित रूप से नहीं होता। यह केवल तब होता है जब `withdrawAccumulative()` को SERVICE\_ROLE या ADMIN\_ROLE द्वारा उस विशिष्ट उपयोगकर्ता के लिए आमंत्रित किया जाता है।
     * **जब तक वह कॉल नहीं आती**, एक "समाप्त" Accumulative Balance NFT खरीद और अपग्रेड पर खर्च योग्य रहता है और मानक नियमों और शुल्कों के तहत अन्य उपयोगकर्ताओं को हस्तांतरणीय रहता है।

     ऑडिट प्रतिक्रिया में दर्ज टीम का बताया गया इरादा: *"हमारा लक्ष्य उपयोगकर्ता के फंड की अखंडता को एक निश्चित अवधि के लिए गारंटी देना है, उन्हें जीवनचक्र देना नहीं।"* 120 दिनों को **संभावित पुनर्वितरण से पहले न्यूनतम गारंटीकृत विंडो** के रूप में मानें, हार्ड ऑन-चेन समाप्ति टाइमस्टैम्प के रूप में नहीं।
   </Note>
3. **Limit (`limit`):** अधिकतम शेष आय का प्रतिनिधित्व करता है जो एक NFT उत्पन्न कर सकता है।

### सिस्टम बैलेंस

उपयोगकर्ता बैलेंस के अलावा, स्मार्ट कॉन्ट्रैक्ट तीन आंतरिक सिस्टम बैलेंस बनाए रखता है:

* **Dev Balance (`devBalance`):** ऑपरेशनल फंडिंग के लिए प्लेटफ़ॉर्म शुल्क और कमीशन एकत्र करता है।
* **Token Reserve Balance (`tokenReserveBalance`):** USDT लिक्विडिटी पूल जो DA टोकन का 100% समर्थन करता है। इकोसिस्टम में हर आय स्रोत इस पूल में फीड होता है।
* **Price Impact Balance (`priceImpactBalance`):** विशिष्ट इकोसिस्टम घटनाओं के दौरान DA टोकन मूल्य स्थिरता प्रबंधित करने के लिए उपयोग किया जाने वाला एक विशेष रिज़र्व।

ये बैलेंस पूरी तरह से स्मार्ट कॉन्ट्रैक्ट द्वारा प्रबंधित होते हैं और किसी भी व्यक्तिगत उपयोगकर्ता या व्यवस्थापक के लिए सुलभ नहीं हैं।

### पेमेंट प्राथमिकता

खरीद करते समय, स्मार्ट कॉन्ट्रैक्ट इस क्रम में फंड घटाता है:

<Steps>
  <Step title="वाउचर (मैन्युअल)">
    यदि उपयोगकर्ता चेकआउट पर स्पष्ट रूप से वाउचर लागू करता है, तो इसका मूल्य पहले उपभोग किया जाता है। वाउचर ऑटो-लागू नहीं होते।
  </Step>

  <Step title="Accumulative Balance">
    यदि उपयोगकर्ता Accumulative Balance का उपयोग करना चुनता है, तो इसे 100% कवरेज पर लागू किया जाता है (जब पर्याप्त हो) या Regular Balance के साथ जोड़ा जाता है। 20% शुल्क DA Liquidity Pool को निर्देशित होता है।
  </Step>

  <Step title="Regular Balance">
    शेष राशि Regular Balance से घटा दी जाती है।
  </Step>
</Steps>

<Warning>
  Gift Vouchers को Accumulative Balance के साथ **संयुक्त नहीं** किया जा सकता। मान्य संयोजन: \[Voucher + Regular], \[100% Accumulative], या \[Accumulative + Regular]।
</Warning>

<Note>
  Binance Smart Chain पर सभी लेनदेन के लिए मानक नेटवर्क गैस शुल्क **BNB** में भुगतान किए जाने चाहिए। उपयोगकर्ताओं को किसी भी ऑन-चेन ऑपरेशन (खरीद, निकासी, स्थानांतरण) को निष्पादित करने के लिए अपने वॉलेट में थोड़ी मात्रा में BNB रखना होगा। यह इकोसिस्टम के भीतर उपयोग किए जाने वाले USDT बैलेंस से अलग है।
</Note>
