0

从 Anchor 的教程https://project-serum.github.io/anchor/tutorials/tutorial-3.html#return-values,我知道目前 Solana 无法从 CPI 返回值...

但是对于从 Solidity 移植此代码:

uint256 sharesAdded = IStrategy(addr1).deposit(sender, wantAmt);
uint256 sharesRemoved = IStrategy(addr1).withdraw(pid, wantAmt);

我需要从另一个 Solana 程序中获取返回值“sharesAdded”和“sharesRemoved”,并且该值特定于当前函数调用,然后将该值保存到另一个帐户中......我是否必须将上述 Solidity 代码分成两个函数在索拉纳打电话?

  1. 将返回值保存在程序帐户中
  2. 进行第二次函数调用以获取它,同时希望在我的第一次和第二次函数调用之间这个值没有改变

这种方法/解决方法是否正确?

4

1 回答 1

0

一种解决方法:

Step1:从目标sol程序保存状态变量的目标账户中获取数据

Step2:在自己的sol程序中计算返回值,假设step1的数据没有改变

于 2021-08-24T03:37:41.230 回答