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
safeTransactionon 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.executeTransactionI 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