Contract para un contrato ya desplegado es bastante sencillo.
Llamar funciones de Smart Contract
Para llamar a un smart contract, usará el métodoCallFunction para crear un objeto CallContractFunction, que determinará el gasPrice, gasLimit, nonce y data apropiados para incluir en un nuevo EthTransaction al proporcionarle un cliente y un objeto ContractCall al método Create async Task
Un ejemplo de cómo llamar a un smart contract sería el siguiente:
SendTransactionMethod en su lugar.
Alternativamente, si solo quiere crear el EthTransaction y enviarlo más tarde, puede usar directamente el objeto CallContractFunction de CallFunction.
CallFunction acepta un número arbitrario de argumentos. Debe proporcionar los argumentos en el orden en que aparecen en el ABI/firma de la función.
Comprendiendo los mapeos de tipos de datos
Al interactuar con smart contracts, es importante entender cómo los tipos de datos de EVM se mapean a los tipos de datos de C# en la librería SequenceEthereum. Por ejemplo, si proporciona una cadena donde el ABI espera un entero, recibirá una excepción, incluso si esa cadena podría convertirse en un entero.Address
En C# puede usar un tipostring o crear una instancia de Address. Asegúrese de que su cadena sea hexadecimal,
comience con 0x y tenga una longitud fija de 42 caracteres.
Enteros
Para tipos de enteros comoint256, uint8 o uint256 use el tipo BigInteger de System.Numerics.
Bytes
Para definir tipos de datos byte de Solidity en C#, tiene la opción de crear unFixedByte para tipos como byte16 o byte32.
Cuando su contrato requiera bytes, puede convertir cualquier valor en un byte[] de cualquier longitud.
Si sus datos están representados como una cadena hexadecimal en C#, asegúrese de usar nuestra función HexStringToByteArray() para convertir
el valor hexadecimal de vuelta al arreglo de bytes original.
Para arreglos de bytes como byte32[], simplemente cree un FixedByte[] en C#.
Structs
Use Tuples para llamar una función on-chain con un struct. Aquí hay un ejemplo de un struct en Solidity y cómo definirlo usando el SDK de Unity de Sequence y pasarlo como argumento en una funciónContract.CallFunction.
Struct de Solidity
Otros tipos
Para tipos de datos tradicionales en Solidity comostring o bool, puede usar los mismos tipos de datos en C#.
Tipos de retorno
Cuando lea datos de un smart contract y utilice la funciónContract.SendQuery<TType>(), puede usar TType para tipos de retorno simples como string, BigInteger o bool. Para tipos de retorno complejos como structs, use un object[] y analice manualmente los valores en su struct de C#.
Consultar contratos
Para consultar un smart contract (leer datos), use el métodoSendQuery<T> para consultar el contrato y devolver el resultado como tipo T (si es posible).
Un ejemplo de cómo consultar un smart contract sería:
QueryContract<T> para crear un delegado.
Desplegar contratos
Si desea desplegar un contrato, puede usar elContractDeployer