使用Jupiter GET /quote非SOL代币兑换时amount参数取值问题
解决Jupiter GET /quote接口反向兑换的amount参数填写问题
Jupiter的GET /quote接口中,amount参数的核心规则是始终传入你要出售的代币的最小单位数量,和代币是否为SOL无关,关键要根据目标代币的decimal位数做转换:
- 先获取你要出售的非SOL代币的
decimal值(比如USDC是6,不同代币的decimal差异很大,需从链上代币元数据查询) - 将拟出售的代币数量(比如
1.25个)转换为最小单位:拟出售数量 × 10^decimal,结果取整数(建议用整数运算避免浮点数精度问题,比如把1.25转成125再乘以10^(decimal-2)) - 同时要确保接口的
inputMint参数设为你要出售的非SOL代币地址,outputMint设为SOL的官方地址(So11111111111111111111111111111111111111112)
举个实际例子:
如果你要出售3.5个USDC(decimal=6),那么amount应该填3500000(即3.5 × 10^6)。
你之前的问题出在统一用了10^9(仿SOL的lamports),但不同代币的decimal位数不同,必须对应目标代币的实际decimal值来计算最小单位数量。
内容的提问来源于stack exchange,提问作者Julia
相关产品推荐
相关产品推荐

