-
Notifications
You must be signed in to change notification settings - Fork 1
Home
Az Utopia fund egy yield aggregátor a PancakeSwap syrup pooljaihoz.
Befektetés előtt meg kell hívni a Cake token approve függvényét. A spender legyen a Vault address-e az amount pedig nagyobb mint a befektetni kívánt összeg. Ezután deposit függvény használható. Fontos, hogy a kapott yCake tokent tartsuk meg mert a befektetett összeget csak azzal tudjuk kivenni.
A getPendingReward függvény mondja meg, hogy pontosan mennyi profit jár nekünk. Ez az összeg csak harvest után frissül.
Tőke kivétel előtt, hasonló módon a befektetéshez itt is approve-ot kell hívni csak most a yCake tokenét. Ez esetben is a spender a Vault address-e az amount pedig legyen több mint a kivenni kívánt tőke. Fontos, hogy legalább annyi yCake-el rendelkezzünk mint amennyi Cake-t szeretnénk kivenni. Ebbe a kapott profit nem tartozik bele.
A userHarvest elküldi a jelenlegi pending revardot és lenullázza azt. Nem igényel approve-ot és nem éget yCake tokent.
Amire szükség van:
- Node.js
- Truffle
A forráskód letöltése után le kell tölteni a dependency-ket is amihez az alábbi parancsot kell végre hajtani a projekt mappájában.
npm installEz minden szükséges fájlt letölt a node_modules mappába.
A használathoz két tárcára van szükség egy Owner és egy Strategist. Az Owner az amelyik deploy-ol és felügyeli a contractokat amíg a Strategist a hatékony profitszerzésért felelős. Fontos, hogy a Strategist és az Owner külön entitás legyen biztonsági okokból.
A projekt magját 3 smart contract alkotja. A Controller, a Vault és a Strategy. Valamint egy script fájl ami segítségével a Strategist meghatározza a legjövedelmezőbb poolokat.
- A Controller-ből minden körülmények között csak egy van és az köti össze a Strategy-ket a Vault-tal.
- A Vault-ból igény szerint lehet több is, de minden vault csak egy fajta tokent tud fogadni mint befektetési alap.
- Minden Strategy külön pool-t reprezentál és több is tartozhat egy Vaulthoz viszont mindig csak egy aktív lehet. Azt, hogy melyik az aktív mindig a Strategist dönti el.
Strategy váltáskor minden befektetett tőke az aktív Strategybe kerül. A jövőben tervezünk lehetőséget biztosítani több aktív Strategyre is amik között arányosan van elosztva a tőke.
Deploy előtt létre kell hozni egy .secret fájlt a projekt mappájában amibe a 12 szóból álló MetaMask biztonsági kulcsot kell bemásolni. Különösen oda kell figyelni, hogy ez a fájl ne kerüljön ki publikus helyre mert akkor maga a tárca és minden benne tárolt tőke is veszélybe kerül.
Mainnet-re történő deploy előtt a truffle-config.js fájlban a "bsc:{}" részen belül a "from:" mellett található címet át kell írni a kívánt Owner címére. A deploy erről a címről fog történni ezért fontos, hogy rendelkezzen elegendő fedezettel.
A deploy a 2_deploy_contracts.js fájlon keresztül történik. Itt kell megadni, hogy melyik contractokat milyen sorrendben szeretnénk deploy-olni és a konstruktorok kívánt értékeit is.
Deploy az alábbi két parancs egyikével halytható végre.
Mainnet
truffle deploy --network bscTestnet
truffle deploy --network testnetAmennyiben azt az üzentet adja fel, hogy "Network is up to date" a parancs után oda kell írni, hogy --reset
Deploy után a Vault-ot és legalább egy Strategy-t hozzá kell adni a Controller-hez. Erre csak az Owner képes. Ez után approve-olni kell a Strategy-t, hogy használható legyen. Erre csak a Strategist képes. Miután a Vault és legalább egy Strategy is hozzá lett adva, a cahangeStrategy-t legalább egyszer meg kell hívni. Ezek után az alkalmazás működőképes lesz.
Ahhoz, hogy a script rendesen fusson az app/src/crypto_helper.js fájlon belül hozzá kell adni minden maphoz a megfelelő kulcs-érték párokat majd az index.js fájl pools változójához hozzá adni a megfelelő poolt reprezentáló kollekciót. Ez a folyamat a jövőben egy adatbázison keresztűl fog történni.