token amount bugfixes
This commit is contained in:
21
src/misc.js
21
src/misc.js
@@ -90,33 +90,34 @@ export function timestamp(date = null) {
|
||||
}
|
||||
|
||||
|
||||
export function pairKey(tokenA, tokenB) {
|
||||
export function pairKey(chainId, tokenA, tokenB) {
|
||||
const token0 = tokenA.a < tokenB.a ? tokenA.a : tokenB.a
|
||||
const token1 = tokenA.a > tokenB.a ? tokenA.a : tokenB.a
|
||||
return [token0, token1];
|
||||
return [chainId, token0, token1];
|
||||
}
|
||||
|
||||
|
||||
export function pairPriceAddr(baseTokenAddr, quoteTokenAddr, price) {
|
||||
const baseToken = token(baseTokenAddr)
|
||||
const quoteToken = token(quoteTokenAddr)
|
||||
export function pairPriceAddr(chainId, baseTokenAddr, quoteTokenAddr, price) {
|
||||
const baseToken = token(chainId, baseTokenAddr)
|
||||
const quoteToken = token(chainId, quoteTokenAddr)
|
||||
if (!baseToken || !quoteToken)
|
||||
return null
|
||||
return pairPrice(baseToken, quoteToken, price)
|
||||
return pairPrice(chainId, baseToken, quoteToken, price)
|
||||
}
|
||||
|
||||
|
||||
export function pairPrice(baseToken, quoteToken, price, decimals = null) {
|
||||
export function pairPrice(chainId, baseToken, quoteToken, price, decimals = null) {
|
||||
if (!price) return null
|
||||
console.log('pairPrice', chainId, baseToken, quoteToken, price, decimals)
|
||||
if (price === null || price === undefined)
|
||||
return price
|
||||
if (decimals === null)
|
||||
decimals = baseToken.decimals - quoteToken.decimals
|
||||
console.log('pairPrice', baseToken, quoteToken, price, decimals)
|
||||
decimals = baseToken.d - quoteToken.d
|
||||
if (decimals >= 0)
|
||||
price /= 10 ** decimals
|
||||
else
|
||||
price *= 10 ** -decimals
|
||||
const invertedKey = pairKey(baseToken, quoteToken);
|
||||
const invertedKey = pairKey(chainId, baseToken, quoteToken);
|
||||
const prefs = usePrefStore()
|
||||
if (!(invertedKey in prefs.inverted)) {
|
||||
// todo prefer stablecoins as the quote asset
|
||||
|
||||
Reference in New Issue
Block a user