diff --git a/asset-transfer-basic/rest-api-typescript/src/fabric.ts b/asset-transfer-basic/rest-api-typescript/src/fabric.ts index 2419d0e1..44066d65 100644 --- a/asset-transfer-basic/rest-api-typescript/src/fabric.ts +++ b/asset-transfer-basic/rest-api-typescript/src/fabric.ts @@ -160,6 +160,10 @@ export const startRetryLoop = (contract: Contract, redis: Redis): void => { pendingTransactionCount ); + // TODO pick a random transaction instead to reduce chances of + // clashing with other instances? Currently no zrandmember + // command though... + // https://github.com/luin/ioredis/issues/1374 const transactionIds = await (redis as Redis).zrange( 'index:txn:timestamp', -1, @@ -309,7 +313,7 @@ const retryTransaction = async ( await clearTransactionDetails(redis, transactionId); } catch (err) { if (isDuplicateTransaction(err)) { - logger.debug('Transaction %s has already been committed', transactionId); + logger.warn('Transaction %s has already been committed', transactionId); await clearTransactionDetails(redis, transactionId); } else { // TODO check for retry limit and update timestamp diff --git a/asset-transfer-basic/rest-api-typescript/src/index.ts b/asset-transfer-basic/rest-api-typescript/src/index.ts index b91a6c3f..12e167c0 100644 --- a/asset-transfer-basic/rest-api-typescript/src/index.ts +++ b/asset-transfer-basic/rest-api-typescript/src/index.ts @@ -12,7 +12,7 @@ import { createServer } from './server'; async function main() { const app = await createServer(); - const contract: Contract = app.get('contract'); + const contract: Contract = app.get('contracts').contract; const redis: Redis = app.get('redis'); startRetryLoop(contract, redis);