¿Cómo nombrar los argumentos en el mapeo?

En una función de solidez regular, tenemos que nombrar los argumentos como:

function getAddr(string AddrName) public. . .

Aquí está el argumento es una cadena que se llama AddrName.

Construí un dapp que simplifica la interacción con el contrato inteligente usando parámetros de URL. Entonces, para iniciar la función con valores precargados en los argumentos, simplemente puedo navegar: https://conteract.io/c/moataddress?function=getAddr&AddrName=owner

Pero los valores de entrada precargados no funcionan mappingporque los argumentos no se nombran en las asignaciones: https://conteract.io/c/moatfund?function=Investors

mapping(address => uint256) public Investors;

Siempre que el mapeo se use con más frecuencia, ¿hay alguna forma de nombrar los argumentos en el mapeo o alguna solución alternativa que pueda resolver este problema?

Gracias.

Respuestas (1)

No, no es posible hacerlo y no es un problema. La asignación es una estructura asociativa donde una clave única se asigna a otro valor. En su caso, el nombre de la asignación es Investors.

Puede encontrar un nombre mejor (es decir, InvestorsBalanceque identificaría cuál es la clave y a qué se asigna) o puede crear una función para obtener el valor de asignación dado la clave.

function getBalance(adddress investor) public returns(uint256) {
    return Investors[investor];
}

Pero eso depende del desarrollador del contrato, por lo que no sabrá qué está tratando de hacer con ese mapeo específico. No puede hacer una suposición sobre su herramienta.

Una opción podría ser enriquecer su dapp preguntando el nombre de los parámetros del mapeo cuando importe el contrato. Pero sería algo que quizás necesite almacenar fuera de la cadena.