I am currently trying to swap some tokens in Python using Jupiter to generate the quote for my transactions.
Their method is well detailed and I can swap my SOLs for some random token. In this case the amount
field is lamports.
However when I try to go the other way, I just can't figure what should amount
be.
I've tried
the actual quantity of the token I own, factoring out the decimals
the amount I wanna sell × 10^9 (nanotoken, just like how lamports are nanoSOLs)
the current price in SOL lamports of the amount of the token I wanna sell
And each time the actual amount sold looked so random.
So how should I fill the amount
parameter when I'm not swapping from SOLs ?
It should be Raw Amount in token's decimals. This means amount should be how much of that token you have.
When buying: amount of sol lamports. solana has 9 decimals, so if you want to buy 0.1 sol of the target token you need to input 0.1 x 1_000_000_000 = 100_000_000
When selling: amount of how much token you have. for example you have 435.54 $some token. and token decimal is 6. so 435.54 x 1_000_000 ( 6 zeros, because token's decimal is 6.