COINROBOT.AI
CoinRobot.AI

CoinRobot.AI technikai dokumentáció

Közérthető, részletes és nyilvánosan ellenőrizhető leírások a CoinRobot.AI integrációinak működéséről és biztonsági határairól.

DEX–Arbitrum Vault: működés és biztonság

Indulás előtt: Hozd létre a Vaultot a MetaMask wallettel; utald a kereskedési tőkét a Vaultra; a bot címére ETH hálózati díjfedezetet utalj; mentsd a Connectort; indíts Tervet.

A CoinRobot.AI közösségi kereskedési robot az Arbitrum hálózat decentralizált tőzsdéin (DEX) is képes kereskedni. Ehhez dedikált, engedélyezett routereket és egy felhasználói tulajdonban lévő Vault okosszerződést használ, amely jól körülhatárolt jogosultságok mellett védi a kereskedési tőkét. Ez a cikk közérthetően bemutatja az integráció működését, a különböző címek feladatát és a biztonsági megoldás gyakorlati korlátait.

A teljes CoinRobot kereskedési folyamat leírása bemutatja a piaci adattól és stratégiai döntéstől a végrehajtásig és egyenlegfigyelésig vezető közös utat.

Röviden: két cím, két külön feladat

A DEX–Arbitrum integrációban minden felhasználó a saját tárcájával telepíti a saját Vault okosszerződését. A kereskedési tőke a Vaultban marad; a CoinRobot külön bot EOA-ja csak kereskedést hajthat végre, illetve az összes eszköz ownerhez történő visszaküldését indíthatja el. Tetszőleges címre kizárólag az owner utalhat.

Egyenleg és hálózati díj

Az élő egyenleget a Dashboardon ellenőrizheti: nyissa meg a Dashboardot, majd az Open position balances by connector szekcióban válassza ki ezt a Connectort és töltse be a teljes egyenleget. Itt láthatja az aktuális eszközöket, valamint azt is, hogy a robot ebből mennyit használ nyitott pozíciókban.

A díjeszközt a robot kezeli: az Arbitrum hálózati díja ETH-ban fizetendő. A robot figyeli a díjeszközt, és szükség esetén, ha ez technikailag megoldható, a rendelkezésre álló USDC-ből ETH-t vásárol. Tartson elegendő szabad USDC-t, és kövesse a figyelmeztető e-mailt: nem elérhető útvonal vagy sikertelen vásárlás esetén a végrehajtás megakadhat.

Fogalmak és hálózati adatok

Arbitrum One
Ethereum Layer 2 hálózat, chain ID: 42161. Gyorsabb és jellemzően olcsóbb tranzakciókat tesz lehetővé, miközben az Ethereum biztonsági modelljére épít. A rövidebb visszaigazolás és az alacsonyabb gas különösen alkalmassá teszi DEX swapokra. Ez önmagában nem zárja ki a sandwich/MEV vagy más visszaéléseket; a router árjegyzése, a slippage-limit és a Vault ellenőrzései együtt csökkentik a rossz végrehajtás kockázatát.
USDC az Arbitrumon
A kereskedési tőke és elszámolás alapértelmezett stabilcoinja. Hivatalos contract address: 0xaf88d065e77c8cc2239327c5edb3a432268e5831 (6 tizedesjegy). Mindig ezt a hálózatot és címet ellenőrizze utalás előtt.
Vault
Az Ön által telepített okosszerződés, amely a tőkét tartja, és csak korlátozott swap- és kivonási műveleteket enged.
Bot EOA
A CoinRobot technikai walletje, amely aláírja az engedélyezett kereskedési tranzakciókat, és külön díjfedezetet tart.

Az Ön integrációs címei

Példa Vault cím – ne utaljon rá0x0f239418a54268f892f0779Ab338bA1675BaFa67

Ez a megosztott fallback cím kizárólag szerződéspéldaként jelenik meg. Ne küldjön rá pénzt. A feltöltés előtt jelentkezzen be, és telepítse a saját DEX Connector Vaultját.

Kód és szerződés az Arbiscanen · Read Contract · Write Contract

Bot EOA – ide kerül a végrehajtási díj fedezeteA személyes botcím megtekintéséhez jelentkezzen be.

Ez a technikai wallet teszi lehetővé, hogy a CoinRobot a Vaultban lévő összeggel kereskedjen. A gas és a felületen jelzett végrehajtási díj innen fogy; a felület utasítása szerint USDC-t vagy ETH-t utalhat rá.

Miért létezik a Vault?

A Vault egy Arbitrumon futó okosszerződéses pénztároló és jogosultsági határ. A telepítést aláíró felhasználói tárca lesz a megváltoztathatatlan owner. A cél az, hogy a robot képes legyen az előre korlátozott tokenek között, kizárólag engedélyezett routereken swapot végrehajtani anélkül, hogy a felhasználó átadná saját tárcája privát kulcsát vagy általános rendelkezési jogát.

A „biztonságban van” itt pontos, technikai értelemben azt jelenti, hogy a szerződés jogosultsági szabályai korlátozzák a robotot. Nem jelent hozam-, árfolyam- vagy hibamentességi garanciát: egy token, router, RPC, frontend, kulcskezelés vagy maga a szerződés hibája továbbra is kockázat, és a swapok piaci veszteséget okozhatnak.

Miért létezik a külön Bot Wallet?

A Vaultban tartott tőkével automatizáltan kizárólag az owner és az owner által kijelölt botcím kereskedhet. A külön Bot Wallet szétválasztja a végrehajtást és annak díjfedezetét a felhasználó saját tárcájától: a CoinRobotnak nincs szüksége az owner privát kulcsára. A bot nem fér hozzá szabadon a Vaulthoz, nem jelölhet ki tetszőleges címzettet, és az összesített kivonást is csak az immutable owner javára indíthatja. A botcímen lévő díjfedezet ugyanakkor nem része a Vaultnak, ezért csak a szükséges összeget tartsa rajta.

A teljes folyamat

  1. Wallet előkészítése: telepítse a MetaMaskot vagy más EVM-kompatibilis walletet, adja hozzá/válassza ki az Arbitrum One hálózatot (42161), és tartson benne kevés ETH-t a telepítés és a saját tranzakciók gas díjára.
  2. Connector létrehozása: bejelentkezés után nyissa meg a Connectors menüt, válassza a DEX Arbitrum Vault interfészt, majd indítsa el az új Connector létrehozását. Ekkor a CoinRobot külön botcímet rendel Önhöz.
  3. Vault telepítése: csatlakoztassa a walletet, ellenőrizze a kiválasztott hálózatot és botcímet, majd hagyja jóvá a Vault telepítését a wallet felugró ablakában. A telepítést aláíró cím lesz a megváltoztathatatlan owner; várja meg a tranzakció visszaigazolását és a Vault címének megjelenését.
  4. Kétféle feltöltés: a kereskedésre szánt támogatott ERC-20 eszközöket – tipikusan USDC-t – a Vault címére kell küldeni. A tranzakciós gas és a rendszer által jelzett végrehajtási díj fedezetét – a felület utasítása szerint ETH-t vagy USDC-t – a bot címére kell küldeni. A botcímen lévő összeg nem Vault-egyenleg.
  5. Kereskedés: a bot árjegyzést és router-calldatát készít, majd a Vault trade függvényét hívja. A Vault csak engedélyezett tokenpárt és a három beállított router egyikét fogadja el, jóváhagyja a pontos bemeneti összeget, végrehajtja a hívást, lenullázza az allowance-ot, majd ellenőrzi a tényleges költést és beérkezett minimumot.
  6. Terv indítása: a feltöltés megérkezése után a Tervek menüben válassza ki ezt a Connectort, állítsa be a stratégiát és az összeget, majd a jóváhagyott beállításokkal indítsa el a tervet. A kereskedések a Vaultban történnek.
  7. Visszavonás: állítsa le az aktív tervet, majd a Connectors oldalon válassza a Connector kivonási műveletét. Normál esetben a CoinRobot bot walletje írja alá és küldi be a withdrawAll tranzakciót, ezért nincs szükség MetaMask-ablakra vagy owner aláírásra; a teljes összeg kód szerint kizárólag az immutable owner címére érkezhet. Ha a botcímen nincs elegendő gas, a felület owner fallbackként kéri az owner wallet csatlakoztatását és aláírását. Az owner közvetlenül az Arbiscan Write Contract felületét is használhatja.

Jogosultsági modell

MűveletOwnerBot EOABiztonsági határ
SwapIgenIgenCsak allowlistes tokenek, beállított router, költési és minimum-kimeneti ellenőrzés.
Összes eszköz visszaküldéseIgenIgen, kezdeményezhetiA címzett mindig az immutable owner.
Egy token vagy native ETH küldése tetszőleges címreIgenNemonlyOwner.
Bot, router vagy tokenlista módosításaIgenNemonlyOwner.

Fontos: az owner cím nem módosítható és nincs tulajdon-átruházó vagy admin függvény. Ez egyben azt is jelenti, hogy az owner kulcs elvesztését a CoinRobot nem tudja helyreállítani. Az owner jogosultsága erős: routert és botot cserélhet, tokeneket engedélyezhet, továbbá bármely tokent vagy native ETH-t tetszőleges címre kivehet.

A publikus felület összes függvénye és állapotlekérdezése

Ellenőrizhető, validált forráskód

A futtatható Vault bytecode-hoz tartozó forráskód az Arbiscanen validált, nyilvános és bárki által megismerhető. Forráskód megnyitása az Arbiscanen. Az alábbiak ennek a kódnak a funkcióit fejtik ki.

constructor(_botAddress, _initialTokens)

A telepítőből immutable ownert készít, beállítja a botcímet és a három kezdeti routert (1inch, 0x, KyberSwap). Végigpróbálja a kezdeti tokenlistát: a nulla címeket, nem szerződéscímeket, duplikációkat és érvénytelen balanceOf implementációkat kihagyja, és eseményt bocsát ki. A konstruktor nem tiltja a nulla botcímet; ezt telepítéskor a kliensnek kell helyesen átadnia.

receive()

Lehetővé teszi native ETH fogadását. A jelenlegi trade ERC-20 tokeneket kezel, ezért a Vaultba tévedésből küldött ETH nem swapbemenet; az owner withdrawNative-val, illetve az összesített kivonással tudja visszavenni.

about()

Tiszta, állapotot nem módosító verzióazonosító: CoinRobot.AI ERC20 Trading Vault v1.6.

trade(router, tokenIn, tokenOut, amountIn, minAmountOut, data)

Csak a bot vagy owner hívhatja, reentrancy védi. Elutasítja a nulla összeget, nulla vagy azonos tokencímeket, az allowlisten kívüli tokeneket és a három aktuális routertől eltérő célt. A hívás előtt és után egyenleget mér. Pontosan amountIn allowance-ot ad, a kapott calldata tartalmával meghívja a routert, siker után nullára állítja az allowance-ot, majd megköveteli, hogy legfeljebb amountIn fogyjon és legalább minAmountOut érkezzen. Bármely ellenőrzés hibája az egész tranzakciót – az approvalt is – visszagörgeti. A data tartalmát a Vault nem dekódolja; a bizalmi határ ezért az engedélyezett router implementációját is magában foglalja.

withdrawAll()

A bot vagy owner indíthatja, reentrancy védi. Végigmegy az aktuális engedélyezett tokenlistán, és minden elérhető egyenleget az ownernek próbál küldeni; hibás token nem akadályozza meg a többi token feldolgozását, hanem TokenWithdrawSkipped eseményt kap. Ezután az összes native ETH-t is az ownernek küldi. A bot nem választhat címzettet. Az allowlistről korábban eltávolított token viszont már nincs ebben a ciklusban; azt az owner a withdrawToken segítségével veheti ki.

withdrawToken(token, to, amount)

Csak owner. Tetszőleges, nem nulla tokenből pozitív összeget küld tetszőleges, nem nulla címzettnek. A tokennek nem kell az allowlisten lennie. A biztonságos wrapper elfogadja a szabványos boolean visszatérést és a visszatérési érték nélküli régebbi ERC-20 viselkedést, hibánál revertel.

withdrawNative(to, amount)

Csak owner. Pozitív mennyiségű native ETH-t küld megadott, nem nulla címre, ha van elegendő egyenleg. A sikertelen fogadó hívás visszagörgeti a tranzakciót.

updateRouters(oneinch, zeroex, kyberswap)

Csak owner. Mindhárom routert egyszerre cseréli, egyik sem lehet nulla cím. A függvény nem ellenőrzi, hogy a cím szerződés-e vagy valóban a megnevezett protokollhoz tartozik; ennek ellenőrzése az owner felelőssége. A változást esemény naplózza.

addToken(token) és removeToken(token)

Csak owner módosíthatja a swapolható tokenek allowlistjét. Hozzáadáskor szerződéskód és működő balanceOf szükséges, nulla cím és duplikáció tiltott. Eltávolításkor a tömb „swap-and-pop” módszerrel tömörül, ezért a sorrend változhat. Az eltávolítás nem utalja ki és nem semmisíti meg a már ott lévő tokent; csak a kereskedésből és a withdrawAll ciklusából veszi ki.

setBotAddress(newBot)

Csak owner. Lecseréli a kereskedésre jogosult botcímet és naplózza a régi/új értéket. A kód itt megengedi a nulla címet, amivel az automatizált botjog gyakorlatilag kikapcsolható; az owner kereskedési joga megmarad.

Lekérdezések

getAllowedTokens() visszaadja a teljes listát, allowedTokensLength() annak hosszát. A Solidity automatikus getterei olvashatóvá teszik az owner, botAddress, oneinchRouter, zeroexRouter, kyberswapRouter, isAllowedToken(address) és allowedTokens(index) állapotokat. Ezek bárki által, bejelentkezés nélkül ellenőrizhetők az Arbiscan Read Contract nézetében.

Belső védelmek és auditálható események

A SafeERC20 ellenőrzi, hogy a token címén van kód, továbbítja a hívási hibát, és ha van visszatérési adat, igaz boolean értéket követel. A ReentrancyGuard megakadályozza a trade és withdrawAll újrahívását ugyanazon végrehajtási láncban. A belső tokenregisztráció mappinget, indexet és tömböt tart szinkronban; a toleráns balance/transfer segédek teszik lehetővé, hogy egy hibás token ne blokkolja a teljes összesített kivonást.

A TokenStatusUpdated, TokenAddSkipped, BotAddressUpdated, TradeExecuted, FundsWithdrawn, TokenWithdrawSkipped és RouterAddressesUpdated események on-chain auditnyomot adnak. Az esemény nem helyettesíti az állapot és a token Transfer-logok ellenőrzését, de segíti a rekonstrukciót.

Gyakorlati biztonsági ellenőrzőlista

  • Mindig Arbitrum hálózatot és a Connectorban látható saját címeket használja; először küldjön kis tesztösszeget.
  • A Vaultba kereskedési tokent, a bot EOA-ra kizárólag a jelzett díjfedezetet küldje. A botcímen tartott összegre nem vonatkoznak a Vault kiutalási korlátai.
  • Ellenőrizze az Arbiscan Read nézetben az ownert, botcímet, routereket és allowlistet.
  • Az owner seed phrase-t vagy privát kulcsot soha ne adja át. A CoinRobotnak a Vault használatához nincs rá szüksége.
  • Vészhelyzetben állítsa le a Tervet, majd owner walletből hívja a withdrawAll-t vagy a célzott kivonást. Ismeretlen tokent célzottan kell kivenni.
  • Az owner tranzakcióihoz az owner walletben is szükség van native ETH gasra.

Ez a leírás a repositoryban használt v1.6 szerződés működését magyarázza. Az on-chain cím, állapot és tranzakciók tekintendők végső, nyilvánosan ellenőrizhető adatnak.

BejelentkezésRegisztráció