From 7b89cad7cde18fc42453d6c11f8c68aeb529a6b3 Mon Sep 17 00:00:00 2001
From: Robert Martin-Legene <robert@nic.ar>
Date: Wed, 12 Sep 2018 15:38:32 -0300
Subject: [PATCH] Tratando de hacer el SC acceptar una lista. Falta actualizar
 el ABI en local_settings.py

---
 SmartContracts/ProofOfExistence.sol | 13 ++++++++++---
 api/app/managers.py                 |  2 +-
 2 files changed, 11 insertions(+), 4 deletions(-)

diff --git a/SmartContracts/ProofOfExistence.sol b/SmartContracts/ProofOfExistence.sol
index 7b22d85..f9b9069 100644
--- a/SmartContracts/ProofOfExistence.sol
+++ b/SmartContracts/ProofOfExistence.sol
@@ -8,9 +8,16 @@ contract ProofOfExistence {
     mapping (uint256 => Dato) private hashstore;
 
 
-    function stamp(uint256 ots, uint256 file_hash) public {
-        if ( hashstore[ots] == 0 )
-            hashstore[ots] = Dato({blockNumber: block.number, hash: file_hash});
+    function stamp(uint256[] incoming) public {
+        uint256     len =   incoming.length;
+        uint256     i   =   0;
+        while ( i+1 < len )
+        {
+            uint256 ots         =   incoming[i++];
+            uint256 file_hash   =   incoming[i++];
+            if ( hashstore[ots] == 0 )
+                hashstore[ots] = Dato({blockNumber: block.number, hash: file_hash});
+        }
     }
 
     function verify(uint256 ots, uint256 file_hash) public view returns(bool){
diff --git a/api/app/managers.py b/api/app/managers.py
index 95b78fd..a11b991 100644
--- a/api/app/managers.py
+++ b/api/app/managers.py
@@ -52,7 +52,7 @@ class TimestampManager(models.Manager):
     def stamp(ots_hash, file_hash):
 
         contract = TimestampManager.get_current_contract()
-        return contract.functions.stamp(ots_hash, file_hash).transact({'from': Web3.toChecksumAddress(ACCOUNT_ADDRESS)})
+        return contract.functions.stamp([ots_hash, file_hash]).transact({'from': Web3.toChecksumAddress(ACCOUNT_ADDRESS)})
 
     @staticmethod
     def verify(contract_version, ots_hash, file_hash):
-- 
GitLab