Contratos inteligentes en solidez - C#
Conecte contratos inteligentes con .NET a través de API web.
Instalación
- Descargar proyectos y restaurar nugets
- Configure AppSettings.json con sus propios detalles.
- Proyecto de lanzamiento.
Docker Run
Abra CMD y en Docker-Compose.yml Directory Run:
- Docker Compose up -d -> Crear e iniciar contenedor Docker
- Docker PS -> ver todos los contenedores y verificar el puerto
- URL abierta: http: // localhost: 55757/swagger/index.html (puerto especificado en el comando Docker PS)
Rehacer
Docker Run - -Name My -Redis -P 6379: 6379 -d Redis
Para verificar si Redis funciona, puede probar lo siguiente:
Docker Exec -it My -Redis sh
#Redis-Cli
silbido
Especificaciones técnicas
- Arquitectura limpia (la capa de presentación tiene mis controladores porque uso Swagger como mi interfaz de usuario)
- Repositorio genérico.
- Unidad de trabajo.
- Marco de entidad.
- Patrón de puerta de enlace API.
- Patrón de medias CQRS.
Marco de entidad:
Siempre apunte al proyecto de infraestructura de la selección predeterminada del proyecto en la consola de paquetes de paquetes
Agregar -migración "db inicialize" -context postgresqldbcontext (contexto de su elección)
Update -Database -Context PostgreSQLDBContext (contexto de su elección)
Para compilar un contrato inteligente, estoy usando el código Visual Studio con extensión de solidez. Después de la compilación, uso ABI y Bytecode del archivo .json.
He creado diferentes controladores para diferentes contratos inteligentes:
SmartController
- ImplementAnyContrat (implementar contrato con o sin parámetros)
- CallContractVariable (llame a cualquier variable en contrato)
- CallReadfunction (Llamar a las funciones de lectura en contrato)
- CallWriteFunction (Llame Write Functions in Contract)
- TrackCryptowhalesforanyToken (Track "Transfer" Event en cualquier token de su elección)
NetworkController
- Consecutivo
- GetAllTransactionOfablock
- GetAllContractCreationTransactions
Billetera
- Verificar el saldo
- Enviar éter/token a otra billetera
Uniswapv2
- Allpoirs
- GetReserves
- Getamountsout
- Aprobar
- Swapexactethortokens
Uniswapv3
- GetReserves (getpool, fichas y equilibrio)
- SwapExactTokensfortokens usando Router02
- GetTokendata (usando GraphQL)
- GetMostliquidPools (usando GraphQL)
- Getpooldata (usando GraphQL) getRecentswapswithinapool usando GraphQL)
Lottery Smart Contract
- Desplegar
- Getrandomnumber
- GetPlayers
- Getbalance
- Enterlottery
- Recolector
Criptotoken
- Desplegar token ERC20
- Getbalance
- Menta
- Aprobar
- Prestación
- DestroySmartContract
- Transferir
- Aumento de la opción
- Recolección
- Quemar
- Transferir desde
- Quemado
Nftcontroller
- Implementar contrato inteligente
- Menta nft
Criptocompara
Además, utilizo las siguientes herramientas para convertir ABI en cadena: https://elmah.io/tools/multiline-string-converter/ y de una cadena multiline a una sola línea: https://tools.techcybo.com/multiline-to-single-line
Para probar UNISWAPV3, obtenga precios, puede usar las siguientes direcciones: Weth: 0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48 dai: 0x6b175474e89094c44da98b954eedeac495271d0f
Pruebas unitarias