¿Cuál es la posible solución para pasar una matriz de cadenas (no compatible con Solidity en este momento)? Estoy usando una matriz de estructura que es variable de estado para un contrato.
pragma solidity ^0.4.23;
contract Person {
struct edu {
string title;
string institute;
string date;
string details;
}
edu[] public education;
constructor (string[] title, string[] institute, string[] date, string[]
details
) public {
for (uint i=0; i<title.length; i++)
edu memory newEdu = edu({
title : title[i],
institute : institute[i],
date : date[i],
details : details[i]
});
}
}
Una solución alternativa puede ser usar el nuevo codificador abi. Debe usar una biblioteca alternativa como ethers.js porque web3 aún no la admite.
La solución de la vieja escuela que he usado es usar una matriz de bytes con todas las cadenas concatenadas, el primer byte es la longitud y sigue los datos de la cadena.
Si le apetece, puede usar la codificación RLP en la matriz de bytes para admitir otros tipos de datos, estará haciendo su propia codificación/descodificación.
mn
ismael
mn