สัญญาอัจฉริยะในความแข็งแกร่ง - C#
เชื่อมต่อสัญญาอัจฉริยะกับ. NET ผ่านเว็บ API
การติดตั้ง
- ดาวน์โหลดโครงการและกู้คืน nugets
- กำหนดค่า appsettings.json พร้อมรายละเอียดของคุณเอง
- เปิดโครงการ
Docker Run
เปิด CMD และใน Docker-compose.yml Directory Run:
- Docker เขียนขึ้น -d -> สร้างและเริ่มคอนเทนเนอร์ Docker
- Docker PS -> ดูคอนเทนเนอร์ทั้งหมดและตรวจสอบพอร์ต
- เปิด URL: http: // localhost: 55757/swagger/index.html (พอร์ตที่ระบุบนคำสั่ง Docker PS)
Redis
Docker Run -Name My -redis -p 6379: 6379 -d redis
ในการตรวจสอบว่า Redis ทำงานได้หรือไม่คุณสามารถทดสอบสิ่งต่อไปนี้:
Docker Exec -it My -redis sh
#redis-cli
ปิง
รายละเอียดทางเทคนิค
- สถาปัตยกรรมที่สะอาด (เลเยอร์การนำเสนอมีตัวควบคุมของฉันเพราะฉันใช้ Swagger เป็น UI ของฉัน)
- พื้นที่เก็บข้อมูลทั่วไป
- หน่วยงาน
- กรอบเอนทิตี
- รูปแบบเกตเวย์ API
- รูปแบบ MediaTr CQRS
กรอบเอนทิตี:
กำหนดเป้าหมายโครงการโครงสร้างพื้นฐานจากการเลือกโครงการเริ่มต้นใน Package Manager Console
Add -Migration "DB Initialize" -context PostgreSqldbContext (บริบทของคุณเลือก)
UPDATE -DATABASE -CONTEXT POSTGRESQLDBCONTEXT (บริบทที่คุณเลือก)
เพื่อรวบรวมสัญญาอัจฉริยะฉันใช้รหัส Visual Studio พร้อมส่วนขยายความแข็งแกร่ง หลังจากการรวบรวมฉันใช้ ABI และ bytecode จากไฟล์. json
ฉันได้สร้างตัวควบคุมที่แตกต่างกันสำหรับสัญญาอัจฉริยะที่แตกต่างกัน:
SmartControltController
- deployanycontract (ปรับใช้สัญญาที่มีหรือไม่มีพารามิเตอร์)
- CallContractVariable (เรียกตัวแปรใด ๆ ในสัญญา)
- CallReadFunction (ฟังก์ชั่นการอ่านโทรในสัญญา)
- CallWriteFunction (ฟังก์ชั่นเขียนการโทรในสัญญา)
- Trackcryptowhalesforanytoken (ติดตามเหตุการณ์ "โอน" ในโทเค็นใด ๆ ที่คุณเลือก)
NetworkController
- getBlock
- getAllTransactionOfablock
- GetAllContractCreationTransactions
กระเป๋าสตางค์
- ตรวจสอบยอดคงเหลือ
- ส่งอีเธอร์/โทเค็นไปที่กระเป๋าเงินอื่น
uniswapv2
- ทุกรอบ
- getReserves
- getAmountSout
- อนุมัติ
- swapexactethfortokens
uniswapv3
- GetReserves (getPool, โทเค็นและสมดุล)
- swapexacttokensfortokens โดยใช้ Router02
- getTokendata (ใช้ graphql)
- GetmostLiquidPools (ใช้ GraphQl)
- getPooldata (ใช้ graphql) getRecentSwapswithinapool โดยใช้ graphQl)
สัญญาสมาร์ทลอตเตอรี
- ปรับใช้
- getRandomNumber
- ผู้บุกรุก
- การถ่อมตัว
- enterlottery
- ผู้คัดค้าน
cryptotoken
- ปรับใช้โทเค็น ERC20
- การถ่อมตัว
- สะระแหน่
- อนุมัติ
- เบี้ยเลี้ยง
- DestroySmartContract
- โอนย้าย
- เพิ่มขึ้น
- การลดลง
- เผา
- การถ่ายโอนจาก
- การเผาไหม้
nftcontroller
- ปรับใช้สัญญาอัจฉริยะ
- มิ้นต์ nft
Cryptocompare
นอกจากนี้ฉันใช้เครื่องมือต่อไปนี้เพื่อแปลง ABI เป็นสตริง: https://elmah.io/tools/multiline-string-converter/ และจากสตริง multiline เป็นบรรทัดเดียว: https://tools.techcybo.com/multiline-to-single-line
ในการทดสอบ UNISWAPV3 รับราคาคุณสามารถใช้ที่อยู่ต่อไปนี้: WETH: 0xA0B86991C6218B36C1D19D4A2E9EB0CE3606EB48 DAI: 0x6B175474E89094C44DA98B98B9545275274
การทดสอบหน่วย