Kontrak Cerdas dalam Soliditas - C#
Hubungkan kontrak pintar dengan .NET melalui Web API.
Instalasi
- Unduh proyek dan kembalikan nuget
- Konfigurasikan appsettings.json dengan detail Anda sendiri.
- Proyek peluncuran.
Docker Run
Buka CMD dan di Docker-Compose.yml Directory Run:
- Docker menyusun -d -> buat dan mulai wadah Docker
- Docker PS -> Lihat semua kontainer dan periksa port
- Terbuka URL: http: // localhost: 55757/swagger/index.html (port yang ditentukan pada perintah docker ps)
Redis
Docker Run --Name My -Redis -P 6379: 6379 -D Redis
Untuk memeriksa apakah Redis bekerja, Anda dapat menguji yang berikut:
Docker exec -it my -redis sh
#redis-cli
ping
Spesifikasi Teknis
- Arsitektur Bersih (Lapisan Presentasi memiliki pengontrol saya karena saya menggunakan kesombongan sebagai UI saya)
- Repositori generik.
- Unit pekerjaan.
- Kerangka kerja entitas.
- Pola Gateway API.
- Pola Mediatr CQRS.
Kerangka Entitas:
Selalu menargetkan proyek infrastruktur dari pemilihan proyek default di konsol manajer paket
Tambah migrasi "DB Initialize" -Context PostGresQLDBContext (Konteks pilihan Anda)
Pembaruan -Database -Context PostGresQLDBContext (Konteks pilihan Anda)
Untuk mengkompilasi kontrak pintar, saya menggunakan kode Visual Studio dengan ekstensi soliditas. Setelah kompilasi saya menggunakan ABI dan bytecode dari file .json.
Saya telah membuat pengontrol yang berbeda untuk kontrak pintar yang berbeda:
SmartContractController
- DeployAnyContract (Menyebarkan kontrak dengan atau tanpa parameter)
- CallContractVariable (hubungi variabel apa pun dalam kontrak)
- CallReadFunction (Call Baca Fungsi dalam Kontrak)
- Callwritefunction (Call Write Functions in Contract)
- Acara TrackCryptowHalesForAnyToken (Transfer "Transfer" di setiap token pilihan Anda)
NetworkController
- GetBlock
- GetAlltransactionofablock
- GetAllContractCreationTransaksi
Dompet
- Periksa saldo
- Kirim eter/token ke dompet lain
Uniswapv2
- Allpairs
- GetReserves
- Getamountsout
- Menyetujui
- Swapexactethfortokens
Uniswapv3
- GetReserves (getpool, token dan keseimbangan)
- Swapexacttokensfortokens menggunakan router02
- Gettokendata (menggunakan graphql)
- GetStLowliquidPools (menggunakan GraphQL)
- Getpooldata (menggunakan graphql) getRecentSwapswithinapool menggunakan graphql)
Kontrak Cerdas Lotere
- Menyebarkan
- GetRandomNumber
- GetPlayers
- Getnance
- Enterlottery
- Pemilih
Cryptotoken
- Menyebarkan token ERC20
- Getnance
- Mint
- Menyetujui
- Uang saku
- CrashyMartContract
- Transfer
- Meningkat
- Penurunan
- Membakar
- Transfer dari
- BURNFROM
Nftcontroller
- Menggunakan kontrak pintar
- Mint nft
Cryptocompare
Selain itu saya menggunakan alat berikut untuk mengonversi ABI menjadi string: https://elmah.io/tools/multiline-sting-converter/ dan dari string multiline ke satu baris: https://tools.techcybo.com/multiline-t-single-line
Untuk menguji UNISWAPV3 Dapatkan Harga, Anda dapat menggunakan alamat berikut: WETH: 0XA0B86991C6218B36C1D19D4A2E9EB0CE3606EB48 DAI: 0x6b1757e89094C4444DA98B98B915444194194194C4C44444444444444447C4C4C444444417171
Tes unit