目前我正在尝试在不使用子图的情况下从池中获取现货价格,但是,有一个我无法弄清楚的功能
以 USDC/ETH 池为例,获取 USDC 期限 (ETH/USDC) 中的 ETH 价格点
Price {
numerator: JSBI(8) [
199279684, 427673055,
750370341, 994499294,
273941587, 907720314,
918680131, 1436,
sign: false
],
denominator: JSBI(7) [ 0, 0, 0, 0, 0, 0, 4096, sign: false ],
baseCurrency: Token {
chainId: 3,
decimals: 6,
symbol: 'USDC',
name: 'USD Coin',
isNative: false,
isToken: true,
address: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48'
},
quoteCurrency: Token {
chainId: 3,
decimals: 18,
symbol: 'WETH',
name: 'Wrapped Ether',
isNative: false,
isToken: true,
address: '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2'
},
scalar: Fraction {
numerator: JSBI(1) [ 1000000, sign: false ],
denominator: JSBI(2) [ 660865024, 931322574, sign: false ]
}
}
ToSignificant方法为我做了所有的技巧,但我对引擎盖下的精确数学计算感到好奇。上面是发送查询时返回的对象,所以我的问题是 如何 通过上面给定的价格对象的计算得到Price.ToSignificant()返回的结果“0.0003766630711”