Skip to content

Commit 53053f3

Browse files
authored
Merge pull request #121 from smartcontractkit/feature/tusd-total
Update TrustToken adapter
2 parents 900cf9e + 725c33d commit 53053f3

File tree

3 files changed

+40
-13
lines changed

3 files changed

+40
-13
lines changed

trueusd/README.md

+8-4
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,12 @@
1-
# Chainlink External Adapter for trueusd
1+
# Chainlink External Adapter for TrueUSD
2+
3+
## Total Supply API
4+
5+
https://core-api.real-time-attest.trustexplorer.io/trusttoken/TrueUSD
26

37
## Input Params
48

5-
_No params_
9+
- `field`: The data field to return. (defaults to `totalToken`, one of `totalToken`, `totalTrust`)
610

711
## Output
812

@@ -23,9 +27,9 @@ _No params_
2327
"message": [{ "msg": "get contractSupply successfully" }],
2428
"success": true,
2529
"responseCode": 200,
26-
"result": 347215038.53
30+
"result": 343465335.4587567
2731
},
28-
"result": 347215038.53,
32+
"result": 343465335.4587567,
2933
"statusCode": 200
3034
}
3135
```

trueusd/adapter.js

+7-5
Original file line numberDiff line numberDiff line change
@@ -5,19 +5,21 @@ const customError = (data) => {
55
return false
66
}
77

8+
const supplyParams = {
9+
field: false,
10+
}
11+
812
const execute = (input, callback) => {
9-
const validator = new Validator(input)
13+
const validator = new Validator(input, supplyParams)
1014
if (validator.error) return callback(validator.error.statusCode, validator.error)
1115

1216
const jobRunID = validator.validated.id
1317
const url = 'https://core-api.real-time-attest.trustexplorer.io/trusttoken/TrueUSD'
18+
const field = validator.validated.data.field || 'totalToken'
1419

1520
Requester.request(url, customError)
1621
.then((response) => {
17-
response.data.result = Requester.validateResultNumber(response.data, [
18-
'responseData',
19-
'totalTrust',
20-
])
22+
response.data.result = Requester.validateResultNumber(response.data, ['responseData', field])
2123
callback(response.status, Requester.success(jobRunID, response))
2224
})
2325
.catch((error) => callback(500, Requester.errored(jobRunID, error)))

trueusd/test/adapter_test.js

+25-4
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
const { assert } = require('chai')
2-
const { assertSuccess } = require('@chainlink/external-adapter')
2+
const { assertSuccess, assertError } = require('@chainlink/external-adapter')
33
const { execute } = require('../adapter')
44

55
describe('execute', () => {
@@ -9,13 +9,16 @@ describe('execute', () => {
99
const requests = [
1010
{
1111
name: 'id not supplied',
12-
testData: { data: {} },
12+
testData: { data: { field: 'totalTrust' } },
1313
},
1414
{
1515
name: 'id is supplied',
16-
testData: { id: jobID, data: {} },
16+
testData: { id: jobID, data: { field: 'totalTrust' } },
17+
},
18+
{
19+
name: 'trust supply',
20+
testData: { id: jobID, data: { field: 'totalToken' } },
1721
},
18-
{ name: 'empty body', testData: {} },
1922
]
2023

2124
requests.forEach((req) => {
@@ -29,4 +32,22 @@ describe('execute', () => {
2932
})
3033
})
3134
})
35+
36+
context('error calls @integration', () => {
37+
const requests = [
38+
{
39+
name: 'unknown field',
40+
testData: { id: jobID, data: { field: 'not_real' } },
41+
},
42+
]
43+
44+
requests.forEach((req) => {
45+
it(`${req.name}`, (done) => {
46+
execute(req.testData, (statusCode, data) => {
47+
assertError({ expected: 500, actual: statusCode }, data, jobID)
48+
done()
49+
})
50+
})
51+
})
52+
})
3253
})

0 commit comments

Comments
 (0)