diff --git a/api/src/StamperWrapper.js b/api/src/StamperWrapper.js index 7eebbb3ef4d60f9620e6dd31600dd0cbf5925622..41b6140e93dd2d18c74a07851d6fe4f2f1a23ff7 100644 --- a/api/src/StamperWrapper.js +++ b/api/src/StamperWrapper.js @@ -11,7 +11,7 @@ class Stamper { // utiliza la cuenta walletAccount para enviar la transaccion // (o defaultAccount si no se especifica) async stamp(objects, walletAccount) { - console.log(`stamping ${objects}`) + console.log(`asked to stamp ${objects}`) // si walletAccount es undefined trata de usar la account de web3.eth.defaultAccount let defaultAccount = (walletAccount) ? walletAccount.address : this.web3.eth.defaultAccount @@ -19,13 +19,21 @@ class Stamper { for (let i=0; i < objects.length; i++) { let blockNo = await this.contract.methods.getBlockNo(objects[i], defaultAccount).call() - if (blockNo == 0) objectsToStamp.push(objects[i]) + if (blockNo == 0) + { + objectsToStamp.push(objects[i]) + } + else + { + console.log(`already stamped: ` + objects[i] ); + } } if (objectsToStamp.length == 0) return new Promise( (resolve) => { console.log(`Los objects enviados ya están stampeados`) resolve() }) + console.log(`stamping ` + objectsToStamp.join(', ') ); let txPromise let gasLimit = 2000000 @@ -42,7 +50,8 @@ class Stamper { //chainId: '200941592', gas: gasLimit, // gasLimit: gasLimit, - data: encodedABI + data: encodedABI, + nonce: this.web3.bfa.txnonce++ } // tx.v = Buffer.from([47525974938]) // tx.nonce = this.web3.utils.toHex(await this.web3.eth.getTransactionCount(defaultAccount)) diff --git a/api/src/index.js b/api/src/index.js index 598d3ce92257e04b059fea8dacf24f32c651cd81..51a8a124376cacecdc7aec3ec888cc1c020f4cbd 100644 --- a/api/src/index.js +++ b/api/src/index.js @@ -43,6 +43,9 @@ async function setupWeb3() { // se trata de utilizar una que haya abierta web3.eth.defaultAccount = (await web3.eth.getAccounts())[0] } + web3.bfa = { + txnonce: await web3.eth.getTransactionCount(web3.eth.defaultAccount), + } /***************************************************/ // Carga de contrato @@ -102,6 +105,7 @@ if ( process.env.API_USER && process.env.API_PASS ) { // API Endpoints /***************************************************/ app.get('/wait1block', async (req, res) => { + console.log( Date() + ": /wait1block" ); let ss = new Stamper(web3, contractAbi, contractAddress) try { @@ -119,6 +123,7 @@ app.get('/wait1block', async (req, res) => { } }) app.post('/stamp', async (req, res) => { + console.log( Date() + ": /stamp " + req.body.hashes.join(', ') ); let ss = new Stamper(web3, contractAbi, contractAddress) if ( ! ("hashes" in req.body) ) @@ -158,6 +163,7 @@ app.post('/stamp', async (req, res) => { }) app.get('/verify/:hash', async (req, res) => { + console.log( Date() + ": /verify/:" + req.params.hash ); let ss = new Stamper(web3, contractAbi, contractAddress) var value = req.params.hash