diff --git a/packages/dapi/lib/grpcServer/handlers/platform/broadcastStateTransitionHandlerFactory.js b/packages/dapi/lib/grpcServer/handlers/platform/broadcastStateTransitionHandlerFactory.js index a17d4969182..130a3b1ecbe 100644 --- a/packages/dapi/lib/grpcServer/handlers/platform/broadcastStateTransitionHandlerFactory.js +++ b/packages/dapi/lib/grpcServer/handlers/platform/broadcastStateTransitionHandlerFactory.js @@ -76,11 +76,20 @@ function broadcastStateTransitionHandlerFactory( .update(stBytes) .digest(); - // TODO: Apply search filter to fetch specific state transition // Throw an already exist in mempool error if the ST in mempool - const unconfirmedTxsResponse = await requestTenderRpc('unconfirmed_txs', { limit: 100 }); + let unconfirmedTxResponse; + try { + unconfirmedTxResponse = await requestTenderRpc( + 'unconfirmed_tx', + { hash: `0x${stHash.toString('hex')}` }, + ); + } catch (e) { + if (typeof e.data !== 'string' || !e.data.includes('not found')) { + throw e; + } + } - if (unconfirmedTxsResponse?.txs?.includes(stBytes.toString('base64'))) { + if (unconfirmedTxResponse?.tx) { throw new AlreadyExistsGrpcError('state transition already in mempool'); } diff --git a/packages/dapi/test/unit/grpcServer/handlers/platform/broadcastStateTransitionHandlerFactory.spec.js b/packages/dapi/test/unit/grpcServer/handlers/platform/broadcastStateTransitionHandlerFactory.spec.js index de1152d015d..0f4ba1ce66a 100644 --- a/packages/dapi/test/unit/grpcServer/handlers/platform/broadcastStateTransitionHandlerFactory.spec.js +++ b/packages/dapi/test/unit/grpcServer/handlers/platform/broadcastStateTransitionHandlerFactory.spec.js @@ -194,8 +194,8 @@ describe('broadcastStateTransitionHandlerFactory', () => { data: 'tx already exists in cache', }; - requestTenderRpcMock.withArgs('unconfirmed_txs').resolves({ - txs: [stateTransitionFixture.toBuffer().toString('base64')], + requestTenderRpcMock.withArgs('unconfirmed_tx').resolves({ + tx: stateTransitionFixture.toBuffer().toString('base64'), }); try { diff --git a/packages/dashmate/configs/defaults/getBaseConfigFactory.js b/packages/dashmate/configs/defaults/getBaseConfigFactory.js index 1614216ad2a..7b04a221c75 100644 --- a/packages/dashmate/configs/defaults/getBaseConfigFactory.js +++ b/packages/dashmate/configs/defaults/getBaseConfigFactory.js @@ -309,7 +309,7 @@ export default function getBaseConfigFactory() { tenderdash: { mode: 'full', docker: { - image: 'dashpay/tenderdash:1', + image: 'dashpay/tenderdash:1.5-dev', }, p2p: { host: '0.0.0.0', diff --git a/packages/dashmate/configs/getConfigFileMigrationsFactory.js b/packages/dashmate/configs/getConfigFileMigrationsFactory.js index 16e4ab025fa..a2213122ce9 100644 --- a/packages/dashmate/configs/getConfigFileMigrationsFactory.js +++ b/packages/dashmate/configs/getConfigFileMigrationsFactory.js @@ -1086,6 +1086,13 @@ export default function getConfigFileMigrationsFactory(homeDir, defaultConfigs) }); return configFile; }, + '2.1.0-dev.1': (configFile) => { + Object.entries(configFile.configs) + .forEach(([, options]) => { + options.platform.drive.tenderdash.docker.image = 'dashpay/tenderdash:1.5-dev'; + }); + return configFile; + }, }; }