Tengo un front-end HTML que llama a una función en un contrato para crear/implementar otro contrato. La función funciona de forma independiente en remix. Recibo un error "Error no detectado: Número no válido de argumentos para la función Solidez", pero envío el número correcto de elementos. El código javascript es:
var borrowerAddress = '0x...';
$("#makeLoanButton").click(function() {
$("#loader").show();
myOriginator.makeLoan($("#loanID").val(), borrowerAddress, $("#loanAmount").val(), (err, res) => {
if (!err) {
$("#loader").hide();
}
});
});
el código de solidez es:
function addLoan(address _newLoan) public {
// Add loan to originator
Loan myLoan = Loan(_newLoan);
loans.push(myLoan) -1;
originatorLoanBalance += myLoan.getBalance();
} // function addLoan(address _newLoan) public {
function makeLoan(bytes16 _loanID, address _borrower, uint _loanBalance) payable public {
// Create new loan
Loan myLoan = new Loan(_loanID, _borrower, address(this), _loanBalance);
// Add loan to loans
loans.push(myLoan) -1;
// Now add new loan to array
addLoan(address(myLoan));
// Send loan balance to borrower
if (!_borrower.send(_loanBalance)) {
revert();
}
} // function makeLoan(bytes16 _loanID, address _borrower, uint _loanBalance)
¿Alguna sugerencia?
¡Gracias!
intente establecer el objeto de transacción, ya que su función espayable
myOriginator.makeLoan($("#loanID").val(), prestatarioAddress, $("#loanAmount").val(), {valor: 1, gas: 2000}, (err, res) => { si (! error) { $("#cargador").hide(); } });
nota : en realidad puede eliminar _loanBalance
y usar msg.value
ya que su función es pagadera
Felipe Rutovitz