Comments (3)
Hey @arjunaskykok ,
I've ran into the same problem, and here's what I've found after a bit of debugging:
In the example, you're using the token addresses returned by the poolContract
to call the quoteExactInputSingle
function.
Like so:
const [token0, token1, fee] = await Promise.all([
poolContract.token0(),
poolContract.token1(),
poolContract.fee(),
])
Whereas, what appears to be the case, is that the order in which the contract returns token0 and token1 isn't guaranteed, in fact it appears to be returning the tokens in alphabetical order. One might call it consistently inconsistent.
The solution is quite simple, albeit, the examples should be updated to reflect this.
Simply don't use the token addresses returned by the pool contract when calling quoteExactInputSingle, as you already know the token addresses anyways.
const quotedAmountOut = await quoterContract.callStatic.quoteExactInputSingle(
CurrentConfig.tokens.in.address, // instead of: await poolContract.token0()
CurrentConfig.tokens.out.address, // instead of: await poolContract.token1()
poolConstants.fee,
fromReadableAmount(
CurrentConfig.tokens.amountIn,
CurrentConfig.tokens.in.decimals
).toString(),
0
)
from examples.
@balazsotakomaiya , Thanks for the solution. It works!
from examples.
Related Issues (10)
- Quoting example: Error invalid BigNumber value HOT 2
- wrong numerator in doc
- https://github.com/Uniswap/examples/blob/c4667fadb13584268bbee2e0e0f556558a474751/v3-sdk/minting-position/src/libs/positions.ts#L27 HOT 1
- How to get all tokens list available for swapping?? HOT 1
- small error in examples/v3-sdk/routing/src/libs/routing.ts
- Q: How do I calculate currentPosition required by NonfungiblePositionManager.removeCallParameters? HOT 1
- Unhandled runtime error HOT 1
- How to fetch Quotes for Polygon supported tokens
- How to get transaction approval for Polygon network
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from examples.