Colaborando con openzeppelin-solidity

@Claudio esta es la presentación de ayer https://docs.google.com/presentation/d/1J1eHA_wqeC5aaiQ5dyrZrD_HHLU8GcaoxqrIDZ5Avng

Esta es la de la vez pasada: https://github.com/JaquerEspeis/etscalante/tree/master/ethereum/presentaciones/2018-arduino_day

Claudio y para entrarle a solidity, tengo una tarea super sencilla y otra no tan sencilla. La primera es agregar un _ de sufijo en todas las variables de estado internas. La segunda es cambiar todas las variables publicas a internas y agregarles una función getter.

Esto lo tenemos que hacer pronto. Yo pensaba hacerlo mañana. Entonces avíseme si le gustaría tomarlo para yo buscar otra cosa que hacer.

En https://github.com/openzeppelin/openzeppelin-solidity es esto ^

Claudio Viquez|@cviquezc:

eso seria para todos los contractos de OpenZeppelin?

Sí.

Claudio Viquez|@cviquezc:

Y si el compilador le crea getters a las variables publicas, por que cambiarlas a internas y hacer un getter? para manipular/chequear esas variables antes de retornarlas en el getter?

y cómo se define una variable interna? como una variable que no tiene un modificador de visibilidad o cuyo modificador de visibilidad es internal o private?

Si una variable no tiene modificador, es internal. Y si, las private también deberían tener underscore.

La idea es que la API sean funciones. Ese getter mágico que se hace para las variables publicas es un poco oscuro.

Claudio Viquez|@cviquezc:

@elopio cómo se corren los tests?

npm install && npm test

Pero yo hago eso dentro de un lxd porque si no es un desmadre. Si quiere mañana le paso los pasos

Claudio Viquez|@cviquezc:

ok buenisimo :+1:

Claudio está en Ubuntu?

Claudio Viquez|@cviquezc:

@claudio
sudo snap install lxd
sudo lxd init
(sí a todos los defaults, si quiere saber más pregunta por aquí)
lxc launch ubuntu:bionic openzeppelin
lxc config device add openzeppelin workspace disk source=/home/elopio/workspace path=/home/ubuntu/workspace
(ahí cambia mis rutas por las de su directorio de trabajo)
lxc exec openzeppelin – su --login ubuntu

Podrían haber errores por ahí, no lo probé.

Claudio Viquez|@cviquezc:

@elopio ya estoy corriendo los tests del master de OZ. Para llegar ahi tuve que hacer como un par de pasos más de los que usted me había dicho (básicamente instalar npm y otros paquetes con npm install) entonces si ustedes tienen como alguna guía para developers y creen que esto podría ser util yo lo podría documentar

Sergio Valverde|@vlvrd:

Documéntelo anyway para ojearlo

Lo que le recomendaría es hacer un blog post de cómo empezar a colaborar con openzeppelin, y esos pasos. Ahí se lo retuiteamos para que sea útil para más personas. No estoy seguro de ponerlo en el repo porque son mis preferencias, toda la gente lo hace distinto.

Yo borraría todas las distros de Linux y dejaría solo Ubuntu y Debian 🤷

Moises Larin|@merakisv:

que herramienta usan para el blog.

wordpress?

En zeppelinos WordPress. En openzeppelin medium.

No se Claudio. En el jaquerespeis y en el mío Nikola.

Claudio Viquez|@cviquezc:

@elopio Ya tengo el cambio casi listo (solo hay 4 tests que me fallan de math que tengo que debuggear) sin embargo hay un contrato que no sé como lo quieren manejar:

Si cambio estas variables, agrengandoles el sufijo “_”

entonces el compilador se queja en https://github.com/viquezclaudio/openzeppelin-solidity/blob/master/contracts/mocks/ERC721ReceiverMock.sol#L18 porque dice que se están re declarando

no sé si quieren cambiarle el nombre quizá…

Claudio voy, creo que lo puedo revisar en un par de horas. Pero puede proponer el PR como work in progress y deja un comentario sobre eso

Claudio Viquez|@cviquezc:

ok :+1:

hay algun bug # para esto de los sufijos?