Solang 编译器在循环内发送 lamports 时失败(针对 Solana)
Solang compiler fails when sending lamports within a loop (targeting Solana)
我正在构建一个 Solana 程序来管理对多个帐户的付款,但是只要在循环中进行 .send()
调用,编译器就会失败。例如,下面的代码编译得很好:
function send( address[3] memory receivers ) external payable {
require(payable(receivers[0]).send(uint64(5)), "Transaction failed");
}
但是下面的代码会报错:
function send( address[3] memory receivers ) external payable {
for (uint i = 0; i < receivers.length; i++) {
require(payable(receivers[i]).send(uint64(5)), "Transaction failed");
}
}
LLVM ERROR: Unsupported dynamic stack allocation
我也尝试过使用 .transfer()
和 .call()
,都抛出相同的错误。这种行为是否不受支持,或者我有办法解决这个问题吗?
这是 solang v0.1.9 中的一个问题。它应该可以用 solang latest main 编译得很好。
我们应该会很快发布 solang v0.1.10。
我正在构建一个 Solana 程序来管理对多个帐户的付款,但是只要在循环中进行 .send()
调用,编译器就会失败。例如,下面的代码编译得很好:
function send( address[3] memory receivers ) external payable {
require(payable(receivers[0]).send(uint64(5)), "Transaction failed");
}
但是下面的代码会报错:
function send( address[3] memory receivers ) external payable {
for (uint i = 0; i < receivers.length; i++) {
require(payable(receivers[i]).send(uint64(5)), "Transaction failed");
}
}
LLVM ERROR: Unsupported dynamic stack allocation
我也尝试过使用 .transfer()
和 .call()
,都抛出相同的错误。这种行为是否不受支持,或者我有办法解决这个问题吗?
这是 solang v0.1.9 中的一个问题。它应该可以用 solang latest main 编译得很好。
我们应该会很快发布 solang v0.1.10。