From a7027dc8ddbb4f7ee45d22a800c5d107eec2c796 Mon Sep 17 00:00:00 2001 From: "Mariano Absatz (git)" <scm@baby.com.ar> Date: Wed, 10 Jul 2019 17:51:12 -0300 Subject: [PATCH] =?UTF-8?q?Agrego=20comentarios=20y=20aclaraciones.=20El?= =?UTF-8?q?=20c=C3=B3digo=20del=20smart=20contract=20en=20s=C3=AD=20es=20i?= =?UTF-8?q?d=C3=A9ntico?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- contract/contracts/Stamper.sol | 28 ++++++++++++++++++---------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/contract/contracts/Stamper.sol b/contract/contracts/Stamper.sol index 486d191..12e8dd9 100644 --- a/contract/contracts/Stamper.sol +++ b/contract/contracts/Stamper.sol @@ -1,4 +1,5 @@ // 20190401 Robert Martin-Legene <robert@nic.ar> +// 20190507 Andres Blanco <ablanco@siu.edu.ar> // Stamper // vim:filetype=javascript @@ -10,6 +11,8 @@ contract Stamper { address stamper; uint256 blockNo; } + // Lista de stamps (cada entrada tiene el hash del object, la cuenta que lo envio + // y el numero de bloque en que se guardo) Stamp[] stampList; // Mapping de objects stampeados a la stampList @@ -35,19 +38,23 @@ contract Stamper { stampList.push(Stamp(0, msg.sender, block.number)); } - // Stampear una lista de objects (hashes) + // Stampear una lista de objects (hashes) recibido como array function put( bytes32[] memory objectList ) public { uint256 i = 0; uint256 max = objectList.length; while ( i<max ) { - bytes32 h = objectList[i]; - // stampList.push devuelve la longitud, restamos 1 para usar como indice - uint256 idx = stampList.push(Stamp(h, msg.sender, block.number)) - 1; - hashObjects[h].push(idx); - hashStampers[msg.sender].push(idx); - - emit Stamped(msg.sender, h, block.number); + // este object + bytes32 object = objectList[i]; + // lo agregamos a la stampList + // stampList.push devuelve la longitud, restamos 1 para usar como indice de la nueva entrada + uint256 newObjectIndex = stampList.push(Stamp(object, msg.sender, block.number)) - 1; + // lo mapeamos desde la lista de objects + hashObjects[object].push(newObjectIndex); + // lo mapeamos desde la lista de stampers + hashStampers[msg.sender].push(newObjectIndex); + + emit Stamped(msg.sender, object, block.number); i++; } @@ -71,7 +78,8 @@ contract Stamper { return hashObjects[object][pos]; } - // devuelve el nro de bloque en el que stamper registro object. Si no fue stampeado devuelve 0 + // devuelve el nro de bloque en el que este stamper registro este object por primera vez + // Si no fue stampeado por este stamper devuelve 0 function getBlockNo( bytes32 object, address stamper ) public view returns (uint256) { uint length = hashObjects[object].length; @@ -91,7 +99,7 @@ contract Stamper { return hashStampers[stamper].length; } - // devuelve la ubicacion en la sstamplist de un Stamp especifico de este stamper + // devuelve la ubicacion en la stampList de un Stamp especifico de este stamper function getStamperPos( address stamper, uint256 pos ) public view returns (uint256) { return hashStampers[stamper][pos]; -- GitLab