I'm having problems with executing a multisig transaction on a 2/2 Gnosis Safe. I've successfully executed single sig transactions on a different vault, but I can't get multisig to work:
- After signing the same
safeTransaction
on chain, thesafe.getOwnersWhoApprovedTx(safeTxHash)
function returns the 2 addresses of the owners who approved the transaction usingsafe.approveTransactionHash(safeTxHash)
. The signatures seem to be committed properly - When running
safe.executeTransaction
I get the errorGS025
. Example transaction: https://rinkeby.etherscan.io/tx/0xf99d48936b4875a586a8ba32549cc677a7317658a50bd7a5c57a7f9dcdca4214 - Network: Rinkeby
Here's the full code:
const safeTransaction = await safeForTheFirstSigner.createTransaction({
to: toAddress,
value: ethers.utils.parseEther(String(amount)).toString(),
data: toAddress,
nonce: 17,
});
const safeTxHash = await safeForTheFirstSigner.getTransactionHash(safeTransaction);
// Note: this returns the 2 owners after approving the tx, so the approval part definitively works
const approvers = await safeForTheFirstSigner.getOwnersWhoApprovedTx(safeTxHash);
await safeForTheFirstSigner.approveTransactionHash(safeTxHash);
await response.transactionResponse?.wait();
const executeTxResponse = await safeForTheSecondSigner.executeTransaction(safeTransaction);
await executeTxResponse.transactionResponse?.wait();
In GnosisSafe.sol
this line is throwing the error:
require(msg.sender == currentOwner || approvedHashes[currentOwner][dataHash] != 0, "GS025");
I'm stuck on how to debug further from here