Skip to content

Commit f71fc75

Browse files
authored
Fix caching bug in transport (#3998)
* fix caching bug in transport * add changeset for fix
1 parent 790a378 commit f71fc75

File tree

5 files changed

+53
-30
lines changed

5 files changed

+53
-30
lines changed

.changeset/violet-dolls-fold.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'@chainlink/the-network-firm-adapter': patch
3+
---
4+
5+
This changeset contains fix for caching bug in the TNF EA

packages/sources/the-network-firm/src/transport/reserve.ts

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -34,17 +34,19 @@ export const getApiKey = (client: string) => {
3434

3535
export const httpTransport = new HttpTransport<HttpTransportTypes>({
3636
prepareRequests: (params, config) => {
37-
const client = params[0].client
38-
return {
39-
params,
40-
request: {
41-
baseURL: config.ALT_API_ENDPOINT,
42-
url: client,
43-
headers: {
44-
apikey: getApiKey(client),
37+
return params.map((param) => {
38+
const client = param.client
39+
return {
40+
params: [param],
41+
request: {
42+
baseURL: config.ALT_API_ENDPOINT,
43+
url: client,
44+
headers: {
45+
apikey: getApiKey(client),
46+
},
4547
},
46-
},
47-
}
48+
}
49+
})
4850
},
4951
parseResponse: (params, response) => {
5052
return params.map((param) => {

packages/sources/the-network-firm/test/integration/__snapshots__/reserve.test.ts.snap

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -14,26 +14,26 @@ exports[`execute reserve endpoint should fail if client name is not present or w
1414
exports[`execute reserve endpoint should return success for emgemx 1`] = `
1515
{
1616
"data": {
17-
"result": "1000000",
17+
"result": "5100005",
1818
"ripcord": false,
1919
},
20-
"result": "1000000",
20+
"result": "5100005",
2121
"statusCode": 200,
2222
"timestamps": {
2323
"providerDataReceivedUnixMs": 978347471111,
2424
"providerDataRequestedUnixMs": 978347471111,
25-
"providerIndicatedTimeUnixMs": 1751500917131,
25+
"providerIndicatedTimeUnixMs": 1748007917250,
2626
},
2727
}
2828
`;
2929

3030
exports[`execute reserve endpoint should return success for m0 1`] = `
3131
{
3232
"data": {
33-
"result": "1000000",
33+
"result": "2344889.68",
3434
"ripcord": false,
3535
},
36-
"result": "1000000",
36+
"result": "2344889.68",
3737
"statusCode": 200,
3838
"timestamps": {
3939
"providerDataReceivedUnixMs": 978347471111,
@@ -46,10 +46,10 @@ exports[`execute reserve endpoint should return success for m0 1`] = `
4646
exports[`execute reserve endpoint should return success for re 1`] = `
4747
{
4848
"data": {
49-
"result": "1000000",
49+
"result": "333.99882",
5050
"ripcord": false,
5151
},
52-
"result": "1000000",
52+
"result": "333.99882",
5353
"statusCode": 200,
5454
"timestamps": {
5555
"providerDataReceivedUnixMs": 978347471111,
@@ -62,10 +62,10 @@ exports[`execute reserve endpoint should return success for re 1`] = `
6262
exports[`execute reserve endpoint should return success for uranium 1`] = `
6363
{
6464
"data": {
65-
"result": "1000000",
65+
"result": "75000000",
6666
"ripcord": false,
6767
},
68-
"result": "1000000",
68+
"result": "75000000",
6969
"statusCode": 200,
7070
"timestamps": {
7171
"providerDataReceivedUnixMs": 978347471111,

packages/sources/the-network-firm/test/integration/fixtures.ts

Lines changed: 21 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -243,6 +243,20 @@ export const mockEmgemxResponseSuccess = (): nock.Scope =>
243243
})
244244
.persist()
245245

246+
export const mockReserveEmgemxResponseSuccess = (): nock.Scope =>
247+
nock('http://test-endpoint-new', {
248+
encodedQueryParams: true,
249+
})
250+
.get('/emgemx-tdfkf3')
251+
.reply(200, {
252+
totalReserve: '5100005',
253+
totalToken: '100000',
254+
ripcord: false,
255+
ripcordDetails: [],
256+
timestamp: '2025-05-23T13:45:17.250Z',
257+
})
258+
.persist()
259+
246260
export const mockEmgemxResponseRipcordFailure = (): nock.Scope =>
247261
nock('http://test-endpoint-new', {
248262
encodedQueryParams: true,
@@ -269,14 +283,15 @@ export const mockUraniumResponseSuccess = (): nock.Scope =>
269283
ripcordDetails: [],
270284
timestamp: '2025-07-03T00:01:57.131Z',
271285
})
286+
.persist()
272287

273-
export const mockUraniumReserveResponseSuccess = (): nock.Scope =>
288+
export const mockReserveUraniumResponseSuccess = (): nock.Scope =>
274289
nock('http://test-endpoint-new', {
275290
encodedQueryParams: true,
276291
})
277-
.get('/uranium-digital-qohmmjqaf4jk-reserve')
292+
.get('/uranium-digital-qohmmjqaf4jk')
278293
.reply(200, {
279-
totalReserve: '1000000',
294+
totalReserve: '75000000',
280295
totalToken: '100000',
281296
ripcord: false,
282297
ripcordDetails: [],
@@ -296,6 +311,7 @@ export const mockUraniumResponseRipcordSuccess = (): nock.Scope =>
296311
ripcordDetails: ['Integrations'],
297312
timestamp: '2025-07-03T00:01:57.131Z',
298313
})
314+
.persist()
299315

300316
export const mockUraniumResponseFailure = (): nock.Scope =>
301317
nock('http://test-endpoint-new', {
@@ -316,7 +332,7 @@ export const mockM0ResponseSuccess = (): nock.Scope =>
316332
})
317333
.get('/m0-stablecoin-inpd83')
318334
.reply(200, {
319-
totalReserve: '1000000',
335+
totalReserve: '2344889.68',
320336
totalToken: '100000',
321337
ripcord: false,
322338
ripcordDetails: [],
@@ -330,7 +346,7 @@ export const mockReResponseSuccess = (): nock.Scope =>
330346
})
331347
.get('/re-protocol-8tawlm')
332348
.reply(200, {
333-
totalReserve: '1000000',
349+
totalReserve: '333.99882',
334350
totalToken: '100000',
335351
ripcord: false,
336352
ripcordDetails: [],

packages/sources/the-network-firm/test/integration/reserve.test.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,10 @@ import {
44
} from '@chainlink/external-adapter-framework/util/testing-utils'
55
import * as nock from 'nock'
66
import {
7-
mockEmgemxResponseSuccess,
87
mockM0ResponseSuccess,
98
mockReResponseSuccess,
10-
mockUraniumReserveResponseSuccess,
9+
mockReserveEmgemxResponseSuccess,
10+
mockReserveUraniumResponseSuccess,
1111
} from './fixtures'
1212

1313
describe('execute', () => {
@@ -21,7 +21,7 @@ describe('execute', () => {
2121
spy = jest.spyOn(Date, 'now').mockReturnValue(mockDate.getTime())
2222

2323
process.env.ALT_API_ENDPOINT = 'http://test-endpoint-new'
24-
process.env.URANIUM_DIGITAL_QOHMMJQAF4JK_RESERVE_API_KEY = 'uranium-api-key'
24+
process.env.URANIUM_DIGITAL_QOHMMJQAF4JK_API_KEY = 'uranium-api-key'
2525
process.env.EMGEMX_TDFKF3_API_KEY = 'emgemx-api-key'
2626
process.env.M0_STABLECOIN_INPD83_API_KEY = 'm0-api-key'
2727
process.env.RE_PROTOCOL_8TAWLM_API_KEY = 're-api-key'
@@ -45,10 +45,10 @@ describe('execute', () => {
4545
it('should return success for uranium', async () => {
4646
const data = {
4747
endpoint: 'reserve',
48-
client: 'uranium-digital-qohmmjqaf4jk-reserve',
48+
client: 'uranium-digital-qohmmjqaf4jk',
4949
}
5050

51-
mockUraniumReserveResponseSuccess()
51+
mockReserveUraniumResponseSuccess()
5252

5353
const response = await testAdapter.request(data)
5454
expect(response.statusCode).toBe(200)
@@ -61,7 +61,7 @@ describe('execute', () => {
6161
client: 'emgemx-tdfkf3',
6262
}
6363

64-
mockEmgemxResponseSuccess()
64+
mockReserveEmgemxResponseSuccess()
6565

6666
const response = await testAdapter.request(data)
6767
expect(response.statusCode).toBe(200)

0 commit comments

Comments
 (0)