Skip to main content

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.

RWANFTFI პლატფორმა აგებულია მძლავრი, მოდულური და უსაფრთხო სმარტ კონტრაქტის არქიტექტურაზე, რომელიც მართავს ყველა ურთიერთქმედებას, განაწილებას და ტოკენის მექანიკას ცენტრალური კონტროლის გარეშე.

Diamond Pattern (EIP-2535)

RWANFTFI სისტემის ბირთვი დანერგილია Diamond Pattern-ის გამოყენებით, რომელიც ფორმალურად განსაზღვრულია როგორც EIP-2535 Ethereum Improvement Proposals-ის რეესტრში. ეს არქიტექტურული არჩევანი პროტოკოლს საშუალებას აძლევს გვერდი აუაროს სმარტ კონტრაქტის სტანდარტულ ზომის ლიმიტს (24KB) ფუნქციონალის რამდენიმე დამოუკიდებელ მოდულზე გაყოფით, რომლებსაც ეწოდებათ „Facets” (სმარტ კონტრაქტის მოდულები, რომლებზეც წვდომა ხდება ერთი proxy კონტრაქტის მეშვეობით).

რა არის 7 ძირითადი Facet?

AdminFacet

სისტემის პარამეტრები, როლები, ბიზნესის გაყიდვები და სპეციალური NFT მინტინგი.

MarketingFacet

მომხმარებლის რეგისტრაცია, NFT შესყიდვები და მარკეტინგული ჯილდოების განაწილება.

FarmingFacet

NFTM მაინინგისა და DA ფარმინგის ციკლის მართვა.

PaymentFacet

დეპოზიტები, გატანები, ვაუჩერების შექმნა და აკუმულაციური გადარიცხვები.

TreeFacet

22-დონიანი ბინარული ხის ლოგიკა და მომხმარებლის განთავსების ალგორითმები.

ResolverFacet

ვადაგასული DA stack-ის დამუშავება, ვაუჩერების წვა და გაყინული ანგარიშების გადაწყვეტა.

ViewFacet

წაკითხვადი მოთხოვნები მომხმარებლის მონაცემებისთვის, ბალანსებისთვის და ხის სტრუქტურებისთვის.

როგორ არის დანაწილებული 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-ით — ლოგიკის განახლებები შესაძლებელია კონტრაქტის მისამართის შეცვლის გარეშე.
  • NFT-ები (Regular, Gift, Ambassador), GovToken, AdminContract: არაგანახლებადი — უზრუნველყოფს ძირითადი აქტივებისა და მართვის წესების უცვლელობას.

როგორ იმართება სმარტ კონტრაქტის როლები?

სისტემა იყენებს იერარქიულ როლების სტრუქტურას (AccessControlEnumerable) ნებართვების უსაფრთხოდ მართვისთვის:
  • ADMIN_ROLE: შეუძლია სხვა როლების მინიჭება/გაუქმება და სისტემის კრიტიკული პარამეტრების შეცვლა.
  • SERVICE_ROLE: სრულდება backend სკრიპტების მიერ ავტომატური ამოცანებისთვის (მაგ., ვადაგასული stack-ების გადაწყვეტა, კროს-ჯაჭვური დეპოზიტების დამუშავება).
  • SIGNER_ROLE: გამოიყენება კრიპტოგრაფიული ხელმოწერის გადამოწმებისთვის კონკრეტული მოქმედებების ავტორიზაციისთვის, როგორიცაა ვაუჩერების გადაცემები.
  • MINTER_ROLE: ავტორიზებულია კონკრეტული ტოკენების ან NFT-ების მინტინგისთვის.

ბალანსის სქემა და გადახდის პრიორიტეტი

სახსრების კომპლექსური ნაკადის სამართავად RWANFTFI იყენებს ბალანსების მრავალდონიან სქემას სმარტ კონტრაქტის ფარგლებში. მომხმარებლის ბალანსები:
  1. ჩვეულებრივი ბალანსი (balance): ძირითადი საფულე ხელმისაწვდომი USDT-სთვის. აქ არსებული სახსრების გატანა შესაძლებელია ნებისმიერ დროს, NFT-ების შესაძენად, ან ვაუჩერების გენერირებისთვის გამოსაყენებლად.
  2. აკუმულაციური ბალანსი (accumulativeBalance): სავალდებულო დანაზოგის ანგარიში, სადაც ყოველი მარკეტინგული ჯილდოს 20% ერიცხება დაუყოვნებლივ დარიცხვისას.
    • გამოყენება: შეიძლება გამოყენებულ იქნას მხოლოდ იმავე დონის NFT-ის შესაძენად ან უფრო მაღალი დონის NFT-ის შესაძენად.
    • საფასურები: ამ ბალანსის გამოყენება NFT შესყიდვებისთვის იწვევს 20% საფასურს, რომელიც მიემართება DA-ს ლიკვიდურობის პულში. სხვა მომხმარებლისთვის გადაცემა ასევე იწვევს 20% საფასურს, რომელიც მიემართება DA-ს ლიკვიდურობის პულში. აკუმულაციური ბალანსის ყოველი მოძრაობა წარმოქმნის შემოდინებას პულში და ქმნის ბაზას ახალი DA-სთვის.
    • 120-დღიანი გადანაწილება: თუ მომხმარებელი არ იყენებს თავის აკუმულაციურ ბალანსს 120 დღის განმავლობაში, გამოუყენებელი ბალანსი ხდება გადანაწილების უფლებამოსილი. გაყოფა დამოკიდებულია მომხმარებლის NFT-ის ტიპზე:
      • Regular NFT-ის მფლობელები: 70% მიემართება DA-ს ლიკვიდურობის პულში ახალი DA ტოკენების მინტინგისთვის; 30% გადაეცემა მომხმარებლის პირდაპირ ზედა სპონსორს.
      • Gift NFT-ის მფლობელები: 80% მიემართება DA-ს ლიკვიდურობის პულში; 20% გადაეცემა პირდაპირ ზედა სპონსორს (მართვადი ცალკე accumulativeClaimDistributeGift პარამეტრით).
      • კასკადის წესი (ორივე ტიპისთვის): თუ ზედა სპონსორის შემოსავლის ლიმიტი ამოწურულია (ნულის ტოლია), სპონსორის წილი გადადის უფრო ზევით სტრუქტურის შემდეგ უფლებამოსილ მონაწილესთან. თუ ჯაჭვში არცერთ მონაწილეს არ აქვს აქტიური შემოსავლის ლიმიტი, მთლიანი თანხა მიემართება DA-ს ლიკვიდურობის პულში.
    120 დღე = გარანტირებული მინიმალური ფანჯარა, არა ავტომატური ვადის გასვლა: accumulativeDecayTime პარამეტრი მოწმდება მხოლოდ withdrawAccumulative()-ის შიგნით — ადმინისტრატორის/სერვისის მიერ ჩართული გადანაწილების გზით. ის არ ფასდება ხარჯვის ან გადაცემის გზებზე. პრაქტიკაში ეს ნიშნავს:
    • დარიცხვიდან პირველი 120 დღის განმავლობაში აკუმულაციური ბალანსს აქვს გარანტირებული მთლიანობა — მისი გადანაწილება არავის შეუძლია.
    • 120-ე დღის შემდეგ ბალანსი ხდება უფლებამოსილი გადანაწილებისთვის, მაგრამ გადანაწილება ავტომატურად არ ირთვება ტაიმერის გასვლისას. ის ხდება მხოლოდ მაშინ, როცა withdrawAccumulative() გამოიძახება იმ კონკრეტული მომხმარებლისთვის SERVICE_ROLE ან ADMIN_ROLE-ის მიერ.
    • სანამ ეს ზარი მოდის, „ვადაგასული” აკუმულაციური ბალანსი რჩება დახარჯვადი NFT შესყიდვებსა და განახლებებზე და გადაცემადი სხვა მომხმარებლებზე სტანდარტული წესებითა და საფასურებით.
    გუნდის გაცხადებული განზრახვა, ჩაწერილი აუდიტის პასუხში: „ჩვენი მიზანია გარანტირება გავუწიოთ მომხმარებლის სახსრების მთლიანობას გარკვეული დროით, და არ მივცეთ მათ სასიცოცხლო ციკლი.” მიიღეთ 120 დღე როგორც მინიმალური გარანტირებული ფანჯარა პოტენციური გადანაწილებამდე, და არა როგორც მკაცრი ჯაჭვური ვადის გასვლის ნიშნული.
  3. ლიმიტი (limit): წარმოადგენს მაქსიმალურ დარჩენილ შემოსავალს, რომელიც NFT-ს შეუძლია წარმოქმნას.

სისტემური ბალანსები

მომხმარებლის ბალანსების გარდა, სმარტ კონტრაქტი ინარჩუნებს სამ შიდა სისტემურ ბალანსს:
  • Dev Balance (devBalance): აკუმულირებს პლატფორმის საფასურებსა და საკომისიოებს ოპერაციული დაფინანსებისთვის.
  • Token Reserve Balance (tokenReserveBalance): USDT ლიკვიდურობის პული, რომელიც 100%-ით უზრუნველყოფს DA ტოკენს. ეკოსისტემაში არსებული შემოსავლის ყოველი წყარო შემოედინება ამ პულში.
  • Price Impact Balance (priceImpactBalance): სპეციალური რეზერვი, რომელიც გამოიყენება DA ტოკენის ფასის სტაბილურობის სამართავად კონკრეტული ეკოსისტემური ღონისძიებების დროს.
ეს ბალანსები მთლიანად იმართება სმარტ კონტრაქტის მიერ და არ არის ხელმისაწვდომი არც ერთი ცალკეული მომხმარებლისთვის ან ადმინისტრატორისთვის.

გადახდის პრიორიტეტი

შესყიდვის განხორციელებისას, სმარტ კონტრაქტი იხდის სახსრებს ამ თანმიმდევრობით:
1

ვაუჩერები (ხელით)

თუ მომხმარებელი ცხადად იყენებს ვაუჩერს გადახდისას, მისი ღირებულება იხარჯება პირველი. ვაუჩერები ავტომატურად არ მოქმედებენ.
2

აკუმულაციური ბალანსი

თუ მომხმარებელი აირჩევს აკუმულაციური ბალანსის გამოყენებას, ის გამოიყენება 100%-იანი დაფარვით (როცა საკმარისია) ან კომბინირდება ჩვეულებრივ ბალანსთან. 20% საფასური მიემართება DA-ს ლიკვიდურობის პულში.
3

ჩვეულებრივი ბალანსი

ნებისმიერი დარჩენილი თანხა იხდება ჩვეულებრივი ბალანსიდან.
საჩუქრის ვაუჩერები ვერ დაკომბინირდება აკუმულაციურ ბალანსთან. მოქმედი კომბინაციები: [ვაუჩერი + ჩვეულებრივი], [100% აკუმულაციური] ან [აკუმულაციური + ჩვეულებრივი].
ყველა ტრანზაქცია Binance Smart Chain-ზე (BSC) მოითხოვს სტანდარტულ ქსელის გაზის საფასურს, რომელიც იხდება BNB-ში. მომხმარებლებმა უნდა ჰქონდეთ მცირე ოდენობის BNB თავიანთ საფულეში ნებისმიერი ჯაჭვური ოპერაციის (შესყიდვები, გატანები, გადარიცხვები) შესასრულებლად. ეს განცალკევებულია ეკოსისტემაში გამოყენებული USDT (Tether) ბალანსებისგან. კონტრაქტის დეპლოი და ბალანსები საჯაროდ გადასამოწმებელია BscScan-ზე.