1

我发现测试网和开发网之间在 VecMapper 的工作方式上存在一些差异extend_from_slice。它在 devnet 上工作正常,但同一 SC 中的相同端点/功能在测试网上中断。我想知道为什么。

这是失败的功能https ://github.com/juliancwirko/elven-nft-minter-sc/blob/main/src/lib.rs#L273

奇怪的是,在测试网上,只有大于 64 的传递值才会中断。

以下是相同智能合约、相同代码、相同端点和发送数据的结果:

适用于这两种环境的不是使用,extend_from_slice而是直接推送到 VecMapper,这会消耗大量气体,超过两倍。

错误数据:

  • 标识符:信号错误
  • 在主题中:执行失败
4

1 回答 1

1

这是一个也被问到问题的小组的回复:

Rust 的动态分配有一些限制,这可能会导致一些 sc 调用失败。我们建议改用托管类型,它只在 VM 内分配内存,或者使用静态缓冲区

于 2022-02-14T13:50:18.220 回答