diff --git a/SmartContracts/ProofOfExistence.sol b/SmartContracts/ProofOfExistence.sol index 7b22d85cc179abf8692bf97057dc0cf101862d73..f9b9069e410d8e2d1cfc54719789fdd3226c7835 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 95b78fd0d6f1d6af26c3a09eda6cd0b750c3159e..a11b9910121905098a952f97f72f23384ffa2aee 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):