Saya sudah tentu bukan seorang pengaturcara yang hebat, tetapi menulis projek ini mengajar saya banyak (dan membuat saya sibuk).FMZ.COM, dan jika saya refactor kod python saya akan menggunakan model yang lebih berorientasikan objek.
Apa gunanya? Ia adalah bot arbitrase. Ini bermakna ia memperoleh wang dari perdagangan perbezaan antara harga pada dua (atau lebih) bursa. Sehingga kini ia adalah unidirectional dan hanya perdagangan antara Etherdelta dan Bittrex: mereka berkongsi kira-kira dua puluh pasangan et / token. Berikut adalah rajah untuk menggambarkan bagaimana ia berfungsi:Perkataan yang diikuti oleh kurung adalah transaksi ethereum yang memanggil panggilan fungsi kontrak pintar.
Saya boleh gunakanfmz.complatform editor python untuk membuat transaksi dan panggilan fungsi dan ia akan menjadi agak mudah. Saya memerlukan sesuatu yang lebih boleh dipercayai; transaksi yang gagal bermakna kehilangan wang. Setiap satu permintaan GET saya memerlukan jawapan, walaupun pakej TCP hilang atau pelayan web di hujung yang lain turun sementara. Oleh itu saya memutuskan untuk melaksanakan python sendiri etherscan API wrapper dan menggunakan pythereum untuk membuat transaksi dan etherscan untuk menerbitkannya. Saya juga menulis permintaan saya sendiri.
Ini adalah kod yang saya gunakan untuk mengkodkan jawapan API etherdelta json sebagai hexadecimal, rlp dikodkan, transaksi ethereum (bukan untuk orang yang lemah hati):
Nilai hexadecimal mentah dalam penutupan di bahagian bawah adalah tanda tangan fungsi yang sepadan dengan setiap fungsi. Tanda tangan fungsi berasal dari keccak fungsi dan argumennya. Ia mesti dilampirkan ke parameter data transaksi diikuti oleh data yang membentuk argumen. Secara keseluruhan kod saya adalah kira-kira 400 baris panjang dan terkandung dalam 5 fail yang berbeza.
Saya membuat beberapa grafik dari data yang saya log menggunakan pymatplotlib.
Secara keseluruhan keseluruhan projek ini mengambil masa saya kira-kira dua minggu semasa masa lapang saya di sekolah dan ia adalah letupan di seluruh. saya telah mengambil rehat dari pengekodan kuat dan kini dalam proses merancang bot arbitrage v2. versi seterusnya akan merangkumi 86 pertukaran yang berbeza dan banyak pasangan dagangan.
Ke bulan!