Yeqa uye kokuyinhloko
Izifundo ze-AI

Sebenzisa futhi Uphathe Izinkontileka ze-Solidity ku-Terminal Yakho usebenzisa i-Arbitrage Contract Deployer

Funda ukufaka nokulungisa i-Arbitrage Contract Deployer, ukuhlanganisa amafayela e-Solidity, ukusebenzisa izinkontileka ku-Ethereum Mainnet, ukubiza imisebenzi yokufunda nokubhala, ukubuyekeza izindleko zegesi, ukuphatha okuthunyelwe okulondoloziwe, nokusebenzisa ukusakazwa kwe-mempool.

Sebenzisa futhi Uphathe Izinkontileka ze-Solidity ku-Terminal Yakho usebenzisa i-Arbitrage Contract Deployer

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 install

Lokhu kufaka okuncikile okubili okuyinhloko:

  • ethers yabahlinzeki, izikhwama, ukuphathwa kwe-ABI, nokuthengiselana.
  • solc yokuhlanganisa 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.com

I-README ibala lawa ma-endpoint e-RPC ayisibonelo:

  • https://ethereum-rpc.publicnode.com
  • https://eth.llamarpc.com
  • https://cloudflare-eth.com
  • https://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 start

Uma iphrojekthi ichaza iskripthi sokuqala se-npm, ungasebenzisa futhi:

npm start

Uhlelo 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)
  Exit

Sebenzisa 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:

  1. estimateGas inikeza isilinganiso semfuneko yegesi.
  2. Umkhawulo wegesi ubalwa njengesilinganiso kanye ne-buffer engu-10%.
  3. Imali ephezulu ngegesi ibalwa ngokuphindwe kabili kwemali eyisisekelo kanye nemali yokubeka phambili.
  4. Isixhumi esibonakalayo sibonisa kokubili imali elindelekile ye-block yamanje kanye nemali ephezulu engenzeka.
  5. 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-view ne-pure engathumeli ukuthengiselana.
  • [write] ikhomba imisebenzi eshintsha isimo edinga ukuthengiselana.
  • [payable] ikhomba imisebenzi engamukela i-ETH.
  • [info] Contract balance ibonisa ibhalansi yenkontileka.
  • <- Back to main menu ibuyela 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.js

I-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_modules yasendaweni.
  • 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.js iyindawo yokuqala ye-node start.
  • deploy.js iqukethe umqondo wokuthumela kanye nemenyu esebenzisanayo.
  • mempool.js iqhuba i-mempool stream ehlukile.
  • erc20.json iqukethe uhlu lwamathokheni olusetshenziswa yi-stream.
  • deployments.json igcina idatha yokuthunyelwa elondoloziwe futhi idalwa ngokuzenzakalelayo.
  • lib/ui.js ilawula imibala, amamenyu, amabhokisi, nokubhalwa kwamalogi.
  • lib/env.js iphatha okuguquguqukayo kwemvelo, idatha yokuthunyelwa, nezixhumanisi zabahloli.
  • lib/compile.js iphatha ukuhlanganiswa nokuxazululwa kwama-import.
  • lib/chain.js iphatha igesi, amarisidi, namanani e-ETH.
  • lib/contract.js iphatha ukuthunyelwa, izingcingo zemisebenzi, nokuqaliswa kwe-stream.

Amathiphu Athuthukile Nokuhlolwa Kokusebenza

  • Qinisekisa ukuthi i-RPC endpoint yakho ingeye-Ethereum Mainnet. Uhlelo lulindele i-chain ID 1 futhi luyenqaba amanye amanethiwekhi.
  • Hlola ibhalansi yesikhwama semali ngaphambi kokuqinisekisa ukuthunyelwa noma umsebenzi we-write.
  • Sebenzisa i-deployments.json njengedatha 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

  1. Ungalokothi ushicilele noma ufake i-PRIVATE_KEY.
  2. Gcina i-.env iku-.gitignore.
  3. Sebenzisa isikhwama semali esinemali edingekayo kuphela kulowo msebenzi.
  4. Funda konke ukubuka kuqala kwegesi ngaphambi kokukhetha u-OK.
  5. Qinisekisa ukuthi isixhumi esibonakalayo sibika i-Ethereum Mainnet kanye ne-chain ID 1.
  6. 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 | head

Isiphetho

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.