
Ozakukufunda
I-Arbitrage Contract Deployer iyithuluzi lomugqa womyalo le-Node.js lokuhlanganisa, lokuthumela, nelokuxhumana nezinkontileka ze-Solidity ngokuqondile kutheminali. Lesi sifundo sichaza ukuthi uyifaka kanjani, uxhuma kanjani isikhwama ku-Ethereum Mainnet, uthumela kanjani inkontileka, usebenzisa kanjani imenyu esebenzisanayo, futhi uqapha kanjani umsebenzi osekelwayo we-mempool.
Okubalulekile: Le phrojekthi isebenza kuphela ku-Ethereum Mainnet. Ukuthengiselana kusebenzisa i-ETH yangempela futhi kungabiza imali yangempela. Hlola yonke inkontileka, ikheli, nokuthengiselana ngaphambi kokukuqinisekisa.
Izici Ezibalulekile
- Ihlanganisa izinkontileka ze-Solidity lapho kudingeka kusetshenziswa i-
solc, ngaphandle kwe-Remix noma i-Hardhat. - Ithola ama-import kuma-file asendaweni, ku-
node_modules, ku-GitHub, nakuma-CDN ahambisana ne-npm. - Ithumela izinkontileka ku-Ethereum Mainnet ngoxhumano lwe-RPC.
- Igcina amakheli athunyelwe, ama-ABI, nezinsuku ku-
deployments.json. - Ihlinzeka ngesixhumi esibonakalayo sezinkinobho zemicibisholo sokuthumela izinkontileka nokubiza imisebenzi.
- Ihlukanisa imisebenzi yezinkontileka ibe imisebenzi yokufunda kuphela, yokubhala, noma ekhokhwayo.
- Ibonisa kusengaphambili izilinganiso zegesi, izimali, nezindleko ezilinganisiwe ze-ETH ne-USD.
- Isebenzisa i-oracle ye-Chainlink ukuthola isilinganiso se-ETH/USD sokulinganisa izimali.
- Ikwazi ukusebenzisa inqubo ehlukile yokusakaza i-mempool enombukiso wokuthengiselana ohlelwe kahle.
Izidingo Zokuqala
Udinga i-Node.js 18 noma entsha ngoba iphrojekthi idinga ukusebenza kwe-fetch okwakhelwe ngaphakathi. I-README iphinde ibhale i-npm 9 noma entsha. Uzodinga i-endpoint ye-RPC ye-Ethereum Mainnet, ukhiye oyimfihlo wesikhwama, kanye ne-ETH eyanele ukukhokhela noma yikuphi ukuthunyelwa noma ukuthengiselana kokubhala okuqinisekisayo.
Faka Iphrojekthi
1. Clone indawo yokugcina
Clone iphrojekthi bese ushintshela kumkhombandlela wayo. Faka esikhundleni sendlela yendawo yokugcina ngendawo oyisebenzisayo.
git clone https://github.com/yoge7388095s/eth-trading-bot
cd <your-repo>Ungakwazi futhi ukulanda indawo yokugcina njengefayela le-ZIP bese uyikhiphela kufolda esendaweni.
2. Faka okuncikile
Faka amaphakheji achazwe ku-package.json:
npm installLokhu kufaka okuncikile okubili okuyinhloko:
ethersyabahlinzeki, izikhwama, ukuphathwa kwe-ABI, nokuthengiselana.solcyokuhlanganisa i-Solidity kusuka ku-Node.js.
Ngemva kokufaka, iphrojekthi kufanele ibe nomkhombandlela we-node_modules. Uma ungekho, hlola okukhiphayo kwe-npm install bese ulungisa iphutha lokufaka ngaphambi kokuqhubeka.
Hlela Isikhwama Noxhumano lwe-RPC
Dala ifayela elibizwa ngokuthi .env empandeni yephrojekthi. Faka ukhiye wakho oyimfihlo ne-URL ye-RPC ye-Ethereum Mainnet:
PRIVATE_KEY=0xYourPrivateKey
RPC_URL=https://ethereum-rpc.publicnode.comI-README ibala lawa ma-endpoint e-RPC ayisibonelo:
https://ethereum-rpc.publicnode.comhttps://eth.llamarpc.comhttps://cloudflare-eth.comhttps://mainnet.infura.io/v3/<KEY>https://eth-mainnet.g.alchemy.com/v2/<KEY>
Gcina .env iyimfihlo futhi uqinisekise ukuthi ifakiwe ku-.gitignore. Ifayela liqukethe imininingwane yokungena okungafanele neze ithunyelwe endaweni yokugcina yomphakathi.
Qalisa I-Deployer Esebenzisanayo
Qalisa isixhumi esibonakalayo esiyinhloko ngalo myalo:
node startUma iphrojekthi ichaza iskripthi sokuqala se-npm, ungasebenzisa futhi:
npm startUhlelo luhlola inethiwekhi, isikhwama, nebhalansi, bese luvula imenyu yalo esebenzisanayo. Imenu evamile ingaba nezinketho ezifana nalezi:
=== Ethereum Contract Deployer ===
i Network: mainnet (chainId 1)
i Wallet: 0x8c27...66CdC
i Balance: 0.5 ETH
! THIS IS MAINNET - transactions cost real money!
Main menu
> Deploy Arbitrage.sol
Open deployed Arbitrage (0x2d7A..., 2025-01-15)
ExitSebenzisa izinkinobho zemicibisholo ukukhetha into, cindezela u-Enter ukuqinisekisa ukukhetha, bese usebenzisa izilawuli ezibonisiwe ze-OK noma ze-Cancel lapho uhlelo lucela ukugunyazwa kokuthengiselana. Cindezela Ctrl+C ukuze uphume.
Hlanganisa Futhi Uthumele Inkontileka ye-Solidity
1. Faka noma khetha ifayela le-Solidity
Beka ifayela le-Solidity kumkhombandlela wephrojekthi, noma khetha ifayela elikhona le-.sol ngemenyu yokuthumela. Umhlanganisi wakha inkontileka ngokusekelwe egameni lefayela layo futhi uthola ama-import asekelwayo ngokuzenzakalelayo.
2. Buyekeza imininingwane yokuhlanganisa nokuthumela
Khetha Deploy <file>.sol kumenyu eyinhloko. Uhlelo luhlanganisa inkontileka, lulungiselela ukuthengiselana kokuthumela, bese lubonisa izidingo zayo zegesi ngaphambi kokucela ukuqinisekiswa.
3. Qinisekisa ukuthengiselana
Buyekeza isilinganiso segesi, imali yamanje, imali ephezulu, ibhalansi yesikhwama, nemininingwane yenkontileka. Qinisekisa kuphela lapho amanani nenethiwekhi okuqondiswe kuyo kulungile. Ngemva kokuba ukuthengiselana sekufakwe ku-blockchain, ithuluzi libonisa ikheli elithunyelwe nesixhumanisi se-Etherscan.
Ulwazi lokuthumela lugcinwa endaweni ku-deployments.json. Lokhu kukuvumela ukuthi uvule kabusha inkontileka ethunyelwe kamuva ngaphandle kokuphinda ufake ikheli ne-ABI yayo.
Qonda Ukuboniswa Kwangaphambili Kwegesi
Ngaphambi kokuthumela nangaphambi kwemisebenzi yokubhala esekelwayo, ithuluzi libonisa ukubuka kuqala kwegesi. Ukubalwa kwalo kulandela inqubo ebhalwe ku-README:
estimateGasinikeza isilinganiso semfuneko yegesi.- Umkhawulo wegesi ubalwa njengesilinganiso kanye ne-buffer engu-10%.
- Imali ephezulu ngegesi ibalwa ngokuphindwe kabili kwemali eyisisekelo kanye nemali yokubeka phambili.
- Isixhumi esibonakalayo sibonisa kokubili imali elindelekile ye-block yamanje kanye nemali ephezulu engenzeka.
- Isilinganiso se-Chainlink ETH/USD sisetshenziselwa ukulinganisa imali ngamadola.
Ukubuka kuqala kungafaka amanani afana namayunithi egesi alinganisiwe, umkhawulo wegesi, imali eyisisekelo, imali yokubeka kuqala, imali ephezulu ngegesi ngayinye, izindleko ezilindelekile ze-ETH, izindleko eziphezulu ze-ETH, kanye nebhalansi yesikhwama semali. Phatha imali ephezulu njengokulinganisa okuphezulu futhi uqinisekise ukuthi ibhalansi yakho ingakhokhela umsebenzi.
Vula Ukuthunyelwa Okulondoloziwe bese Ubiza Imisebenzi
Khetha Open deployed <name> ukuze usebenze nenkontileka eyake yalondolozwa ku-deployments.json. Isixhumi esibonakalayo sibeka amalebula emisebenzini etholakalayo ngokuziphatha kwayo:
[read]ikhomba imisebenzi ye-viewne-pureengathumeli ukuthengiselana.[write]ikhomba imisebenzi eshintsha isimo edinga ukuthengiselana.[payable]ikhomba imisebenzi engamukela i-ETH.[info] Contract balanceibonisa ibhalansi yenkontileka.<- Back to main menuibuyela kumenyu enkulu.
Izingcingo zokufunda kuphela zingasetshenziswa ukuhlola isimo senkontileka. Izingcingo ze-write ne-payable zidlula ekubukweni kuqala kwegesi futhi zidinga ukuqinisekiswa ngaphambi kokuthunyelwa kokuthengiselana. Isixhumi esibonakalayo sinikeza nesenzo se-OK ukuze ukhansele esikhundleni sokuthumela umsebenzi.
Qalisa i-Mempool Stream
I-mempool stream isebenza njengenqubo ehlukile. Yiqale mathupha ngo:
node mempool.jsI-stream ifometha umsebenzi otholiwe ngemininingwane efana nomthengi, i-router, inani le-ETH, ithokheni, indlela, i-ID yokuthengiselana, kanye nombiko wesimo ovelayo. I-README iphinde ibonise imibukiso yesivumelwano nenzuzo yokugeleza komsebenzi okusekelwa yi-stream.
Umthombo wamathokheni yi-erc20.json, elandela ifomethi ye-Uniswap Token List Schema evela ku-Sequence Token Directory. I-loader isekela uhlu lwamathokheni olungenalutho noma into equkethe uhlu lwe-tokens. Ihlunga amakheli angavumelekile namakheli aziro, igcine amathokheni ane-chainId elingana no-1, bese ikhipha ikheli, uphawu, negama lethokheni ngayinye.
Uma i-erc20.json ingekho, i-stream ibuyela kumakheli angahleliwe futhi ibonise isexwayiso. Misa i-stream ngo-Ctrl+C, noma usebenzise inketho yokumisa lapho ivela kusixhumi esibonakalayo esisebenzisanayo.
Sebenzisa Ama-Import e-Solidity
I-compiler eyakhelwe ngaphakathi isekela izindlela eziningana zokungenisa:
- Ama-URL e-GitHub, afana ne-
import "https://github.com/Uniswap/v3-core/..."; - Ama-import e-CDN esitayela se-npm, afana ne-
import "@openzeppelin/contracts/token/ERC20/ERC20.sol"; - Amaphakheji atholakala ku-
node_modulesyasendaweni. - Ama-import asendaweni ahlobene, afana ne-
import "./MyLib.sol";
Izixhumanisi ze-GitHub ezisebenzisa ifomethi ethi github.com/owner/repo/blob/branch/path ziguqulwa ngokuzenzakalelayo zibe ifomethi ehambisanayo ye-raw.githubusercontent.com.
Isakhiwo Sephrojekthi
Amafayela amakhulu namakhathalogi anale misebenzi:
start.jsiyindawo yokuqala ye-node start.deploy.jsiqukethe umqondo wokuthumela kanye nemenyu esebenzisanayo.mempool.jsiqhuba i-mempool stream ehlukile.erc20.jsoniqukethe uhlu lwamathokheni olusetshenziswa yi-stream.deployments.jsonigcina idatha yokuthunyelwa elondoloziwe futhi idalwa ngokuzenzakalelayo.lib/ui.jsilawula imibala, amamenyu, amabhokisi, nokubhalwa kwamalogi.lib/env.jsiphatha okuguquguqukayo kwemvelo, idatha yokuthunyelwa, nezixhumanisi zabahloli.lib/compile.jsiphatha ukuhlanganiswa nokuxazululwa kwama-import.lib/chain.jsiphatha igesi, amarisidi, namanani e-ETH.lib/contract.jsiphatha ukuthunyelwa, izingcingo zemisebenzi, nokuqaliswa kwe-stream.
Amathiphu Athuthukile Nokuhlolwa Kokusebenza
- Qinisekisa ukuthi i-RPC endpoint yakho ingeye-Ethereum Mainnet. Uhlelo lulindele i-chain ID
1futhi luyenqaba amanye amanethiwekhi. - Hlola ibhalansi yesikhwama semali ngaphambi kokuqinisekisa ukuthunyelwa noma umsebenzi we-write.
- Sebenzisa i-
deployments.jsonnjengedatha yokuthunyelwa yasendaweni futhi ugweme ukufaka ulwazi olubucayi noma olungahlosiwe lokuhlola. - Buyekeza ikhodi yomthombo wenkontileka, okuncikile okungenisiwe, amakheli okuyiwa kuwo, namanani akhokhelwayo ngaphambi kokuthumela ukuthengiselana.
- Hlola inguqulo ye-Solidity compiler efakiwe ngo-
node -e "console.log(require('solc').version())". - Qinisekisa ukuthi okuncikile kukhona ngo-
ls node_modules | head. - Khumbula ukuthi iphrojekthi ayinikezi ukusekelwa kwe-multisig, ukuthunyelwa kwe-ABI kube izinhlobo ze-TypeScript, noma ukulingiswa kokuthengiselana kwe-Tenderly ngokohlelo lwayo lwamanje.
Uhlu Lokuhlola Ezokuphepha
- Ungalokothi ushicilele noma ufake i-
PRIVATE_KEY. - Gcina i-
.enviku-.gitignore. - Sebenzisa isikhwama semali esinemali edingekayo kuphela kulowo msebenzi.
- Funda konke ukubuka kuqala kwegesi ngaphambi kokukhetha u-OK.
- Qinisekisa ukuthi isixhumi esibonakalayo sibika i-Ethereum Mainnet kanye ne-chain ID
1. - Hlola ngokucophelela izinkontileka namakheli ngaphambi kokusebenzisa imisebenzi ye-write noma ye-payable.
Imiyalo Ewusizo
npm install
node start
npm start
node mempool.js
node -e "console.log(require('solc').version())"
ls node_modules | headIsiphetho
i-Arbitrage Contract Deployer inikeza indlela yokusebenza esekelwe ku-terminal yokuhlanganisa i-Solidity, ukuthumela izinkontileka ku-Ethereum Mainnet, ukuvula kabusha ukuthunyelwa okulondoloziwe, ukubiza imisebenzi yezinkontileka, nokubuyekeza izindleko zokuthengiselana. Uma i-Node.js, okuncikile, nefayela le-.env elivikelekile sekulungisiwe, imenyu esebenzisanayo iqondisa ukuthunyelwa nemisebenzi yezinkontileka ngenkathi ibonisa ukulinganiselwa kwegesi ne-ETH/USD. Njengoba konke ukuthengiselana kwe-Mainnet kusebenzisa imali yangempela, sebenzisa ukuqapha futhi uqinisekise ukuthengiselana ngakunye kuphela ngemva kokubuyekeza imininingwane yako.
Le phrojekthi ikhishwa ngaphansi kwelayisensi ye-MIT. Iminikelo kufanele igcine imininingwane yokungena ingekho kuma-commit futhi iqinisekise ukuthi i-deployments.json iqukethe kuphela idatha yasendaweni efanele.
