Skip to content

Commit 7dbbf4e

Browse files
committed
fixup! Use ratex v3 if transactions has full pluginId/tokenId values
1 parent 6156e3b commit 7dbbf4e

2 files changed

Lines changed: 18 additions & 28 deletions

File tree

src/ratesEngine.ts

Lines changed: 10 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,10 @@ import { config } from './config'
66
import {
77
asDbCurrencyCodeMappings,
88
asDbTx,
9-
asV3RatesParams,
9+
asRatesV3Params,
1010
CurrencyCodeMappings,
1111
DbTx,
12-
V3RatesParams
12+
RatesV3Params
1313
} from './types'
1414
import { datelog, safeParseFloat, standardizeNames } from './util'
1515
import { isFiatCurrency } from './util/fiatCurrency'
@@ -125,7 +125,7 @@ async function updateTxValuesV3(transaction: DbTx): Promise<void> {
125125

126126
let depositIsFiat = false
127127
let payoutIsFiat = false
128-
const ratesRequest: V3RatesParams = {
128+
const ratesRequest: RatesV3Params = {
129129
targetFiat: 'USD',
130130
crypto: [],
131131
fiat: []
@@ -184,7 +184,7 @@ async function updateTxValuesV3(transaction: DbTx): Promise<void> {
184184
body: JSON.stringify(ratesRequest)
185185
})
186186
const ratesResponseJson = await ratesResponse.json()
187-
const rates = asV3RatesParams(ratesResponseJson)
187+
const rates = asRatesV3Params(ratesResponseJson)
188188
const depositRateObf = depositIsFiat
189189
? rates.fiat.find(rate => rate.fiatCode === depositCurrency)
190190
: rates.crypto.find(
@@ -236,27 +236,17 @@ async function updateTxValues(
236236
transaction: DbTx,
237237
mappings: CurrencyCodeMappings
238238
): Promise<void> {
239-
if (
239+
const hasDepositPluginInfo =
240240
transaction.depositChainPluginId != null &&
241-
transaction.depositTokenId !== undefined &&
241+
transaction.depositTokenId !== undefined
242+
const hasPayoutPluginInfo =
242243
transaction.payoutChainPluginId != null &&
243244
transaction.payoutTokenId !== undefined
244-
) {
245-
return await updateTxValuesV3(transaction)
246-
}
247-
248-
if (
249-
transaction.depositChainPluginId != null &&
250-
transaction.depositTokenId !== undefined &&
251-
isFiatCurrency(transaction.payoutCurrency)
252-
) {
253-
return await updateTxValuesV3(transaction)
254-
}
255245

256246
if (
257-
isFiatCurrency(transaction.depositCurrency) &&
258-
transaction.payoutChainPluginId != null &&
259-
transaction.payoutTokenId !== undefined
247+
(hasDepositPluginInfo && hasPayoutPluginInfo) ||
248+
(hasDepositPluginInfo && isFiatCurrency(transaction.payoutCurrency)) ||
249+
(isFiatCurrency(transaction.depositCurrency) && hasPayoutPluginInfo)
260250
) {
261251
return await updateTxValuesV3(transaction)
262252
}

src/types.ts

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -212,27 +212,27 @@ export const asAnalyticsResult = asObject({
212212
})
213213

214214
// v3/rates response cleaner (matches GUI's shape)
215-
const asV3CryptoAsset = asObject({
215+
const asRatesV3CryptoAsset = asObject({
216216
pluginId: asString,
217217
tokenId: asOptional(asEither(asString, asNull))
218218
})
219-
const asV3CryptoRate = asObject({
219+
const asRatesV3CryptoRate = asObject({
220220
isoDate: asOptional(asDate),
221-
asset: asV3CryptoAsset,
221+
asset: asRatesV3CryptoAsset,
222222
rate: asOptional(asNumber)
223223
})
224-
const asV3FiatRate = asObject({
224+
const asRatesV3FiatRate = asObject({
225225
isoDate: asOptional(asDate),
226226
fiatCode: asString,
227227
rate: asOptional(asNumber)
228228
})
229-
export const asV3RatesParams = asObject({
229+
export const asRatesV3Params = asObject({
230230
targetFiat: asString,
231-
crypto: asArray(asV3CryptoRate),
232-
fiat: asArray(asV3FiatRate)
231+
crypto: asArray(asRatesV3CryptoRate),
232+
fiat: asArray(asRatesV3FiatRate)
233233
})
234234

235-
export type V3RatesParams = ReturnType<typeof asV3RatesParams>
235+
export type RatesV3Params = ReturnType<typeof asRatesV3Params>
236236
export type Bucket = ReturnType<typeof asBucket>
237237
export type AnalyticsResult = ReturnType<typeof asAnalyticsResult>
238238

0 commit comments

Comments
 (0)