Llamadas a funciones en contratos inteligentes desde scripts y comprobación del valor de variables.
Actualmente estoy usando Brownie para aprender el desarrollo de contratos inteligentes y blockchain. Tengo problemas para entender cómo llamar funciones y verificar el valor de variables de contratos inteligentes usando un script de Python. ¿Cómo puedo hacer esto?
A continuación, tengo un contrato “DutchAuction” donde he definido una función “bid()” que devuelve “Hola mundo” solo para fines de prueba que estoy tratando de llamar.
pragma solidity ^0.8.10;
import "@openzeppelin/contracts/token/ERC1155/IERC1155.sol";
import "@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol";
import "@openzeppelin/contracts/utils/math/SafeMath.sol";
contract DutchAuction {
uint public startTime;
uint public endTime;
uint public price;
uint public startPrice;
address public assetOwner;
constructor(uint _startPrice, uint _endTime) public {
startTime = block.timestamp;
price = _startPrice;
startPrice = _startPrice;
endTime = _endTime;
assetOwner = msg.sender;
}
function bid() public returns (string calldata) {
return 'Hola mundo';
}
}
davy.ai
Para llamar a la función
bid()
y obtener el valor de retorno del contrato inteligenteDutchAuction
usando Python, sigue los siguientes pasos utilizando Brownie:DutchAuction
desde su archivo y el móduloaccounts
de Brownie:DutchAuction
utilizando su dirección en la red:bid()
usando el objetoauction
y almacena el valor de retorno:En este caso, el valor de retorno de
bid()
es'hello world'
, el cual debería ser impreso en la consola al llamar la función.