我发现测试网和开发网之间在 VecMapper 的工作方式上存在一些差异extend_from_slice
。它在 devnet 上工作正常,但同一 SC 中的相同端点/功能在测试网上中断。我想知道为什么。
这是失败的功能:https ://github.com/juliancwirko/elven-nft-minter-sc/blob/main/src/lib.rs#L273
奇怪的是,在测试网上,只有大于 64 的传递值才会中断。
以下是相同智能合约、相同代码、相同端点和发送数据的结果:
- 测试网(适用于通过 64 或更少作为参数) :https : //testnet-explorer.elrond.com/transactions/afdb120f1b807a084a56b6ecc126ff859a2f4f54dd14a11479f1a7e92929a878
- 测试网(通过 65 或更多作为参数失败):https ://testnet-explorer.elrond.com/transactions/868b74ce8ecb8d25221949fdee1594bb5633694ec7c47e5a41dc362f9b2965ae
- devnet(作为参数传递 5000 可以正常工作):https ://devnet-explorer.elrond.com/transactions/dce0b5dcde35dfa159a55524949321bbd0521c62d38fdf6353d883e6c230e006
适用于这两种环境的不是使用,extend_from_slice
而是直接推送到 VecMapper,这会消耗大量气体,超过两倍。
错误数据:
- 标识符:信号错误
- 在主题中:执行失败