我想使用project-serum/serum-ts交换。我在阅读readme.MD
时准备了以下内容。
- 使用最新版本的Yarn等
- 根据
readme.MD
安装相关模块 - 准备
./config/solana/id.json
中包含钱包秘密的id.json
文件 - 在主网测试版的钱包里放0.01个SOL
之后,我尝试运行node ./package/swap/example/swap.js
,这是为样品准备的。
这个文件->https://github.com/project-serum/serum-ts/blob/master/packages/swap/examples/swap.js
我确认它可以工作到第26行_srmSwapPairs
.
Error: Unable to simulate swap
at Swap.estimate (/mnt/c/Users/username/Desktop/solana_test/serum-ts/packages/swap/lib/index.js:401:19)
at processTicksAndRejections (node:internal/process/task_queues:96:5)
at async main (/mnt/c/Users/username/Desktop/solana_test/serum-ts/packages/swap/examples/swap.js:29:25)
我的操作系统是Windows 10,但我使用WSL。
原因是什么?
这很可能会失败,因为您试图在钱包上模拟从SRM到USDC的交换,但是您的钱包没有足够的SRM来完成交易,或者没有进行交易的帐户。
要了解有关该问题的更多信息,可以修改代码以打印出有关该故障的更多信息:
const resp = await this.program.provider.simulate(
tx,
signers,
params.options,
);
if (resp === undefined || resp.value.err || !resp.value.logs) {
console.error(resp); // get more information about the error
throw new Error('Unable to simulate swap');
}
您可以在https://github.com/project-serum/serum-ts/blob/93946077cbacc4149a3372d9e6651bf4de18a255/packages/swap/src/index.ts#L535
进行更改