2

I was looking into allowing users to create new transactions instead of creating a rejection transaction for a pending transaction. So, I was just creating some transactions to understand few things and executing them without order and the one thing I observed is like this - I created 3 simple eth transfer transactions with different values to send:

Pending:

  1. value: 0.2 eth, nonce: 6, safeTxHash: 0xb26d79300880f9a7d05e12c231538ff56f9685c9fd31f76492c2330c45f5cfa5
  2. value: 0.04 eth, nonce: 7, safeTxHash: 0xd1f5018fc1d0f816fefac955e94291c9498735ba6665a59576bfd771f9bdd8ed
  3. value: 0.03 eth, nonce: 8, safeTxHash: 0xbf9181ffd31c02ef1d9f096ae7012649163f48fd8cfe18add810748210a3a614

Now, I executed transaction number 3 with nonce 8 and the result on gnosis safe UI is like this:

Completed:

  1. value: 0.03, nonce: 6, safeTxHash: 0x04c0db5544ed6f94bd8e5b8614fef767560f30a3eed16f54d97119f4430390f2

Pending:

  1. value: 0.04 eth, nonce: 7, safeTxHash: 0xd1f5018fc1d0f816fefac955e94291c9498735ba6665a59576bfd771f9bdd8ed
  2. value: 0.03 eth, nonce: 8, safeTxHash: 0xbf9181ffd31c02ef1d9f096ae7012649163f48fd8cfe18add810748210a3a614

Now, I am not able to understand how a new transaction is created with different nonce and safeTxHash and when it took my signature because I just executed the execute transaction function of the safe core SDK with transaction number 3 with nonce 8 as the input(safeTransaction).

Safe Address: 0xb38Ab20B83bA37B898FDB212283241d278282924 Testnet: Rinkeby

0

1 Answer 1

2

You ran into a special case of the Safe when you have Safe woth threshold 1 and use the msg.sender to confirm the signature (see https://github.com/gnosis/safe-contracts/issues/187).

To avoid this you should use a Safe with threshold > 1 or don't use the msg.sender based signatures.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.