Skip to content
This repository was archived by the owner on Jun 10, 2026. It is now read-only.

How do we determine the tx type

Jose Alvarez edited this page Jun 2, 2020 · 21 revisions

The transaction service returns a list of transactions with certain attributes. How do we determine what kind of tx a certain transaction is? Here is a list of types we need to distinguish between.

I numbered them from 1.1.1 "Historic Safe to Safe ETH Transfer" to 2.3.1 which is a "Queued Custom Transaction".

We also need instructions on how to extract the values we need to display (according to Attributes in transaction list)

1. History

1.1. Transfers

Type From -> To in/out Currency
1 Safe Safe in/out ETH
2 EOA Safe in ETH
3 Safe EOA out ETH
4 Safe Safe in/out ERC20
5 EOA Safe in ERC20
6 Safe EOA out ERC20
7 Safe Safe in/out ERC721
8 EOA Safe in ERC721
9 Safe EOA out ERC721

1.2. Settings Change

Type Settings change
1 Add owner
2 Remove owner
3 Replace owner
4 Change Threshold
5 Change Mastercopy
6 Change Fallback Manager (Safes with version > 1.1.0)

1.3. Custom transactions

Type Type Name
1 Custom transaction

2. Queued

A queued transaction is one such that its nonce is greater than that of the safe it corresponds to. As opposed to history transactions, which have a nonce smaller of that of the safe to which they correspond.

2.0. For any queued transaction we need to detect number of confirmation & rejections

2.1. Transfers

Type From -> To in/out Currency
1 Safe Safe in/out ETH
2 EOA Safe in ETH
3 Safe EOA out ETH
4 Safe Safe in/out ERC20
5 EOA Safe in ERC20
6 Safe EOA out ERC20
7 Safe Safe in/out ERC721
8 EOA Safe in ERC721
9 Safe EOA out ERC721

2.2. Settings Change

Type Settings change
1 Add owner
2 Remove owner
3 Replace owner
4 Change Threshold
5 Change Mastercopy
6 Change Fallback Manager (Safes with version > 1.1.0)

2.3. Custom transactions

Type Type Name
1 Custom transaction

Special cases

  • What do we do with a otherwise simple transfer that contains a data section? Is this always a custom transaction?

Solution

Please fill in the blanks below If two types are very similar to detect, feel free to merge them here

Regarding:

1.1.1 Historic Safe to Safe ETH transfer

(Please add instructions on how to detect this type of transfer here)

1.1.2 Historic EOA to Safe ETH transfer

  • data must be empty
  • to field needs to be the current safe address

1.1.3 Historic Safe to EOA ETH transfer

(Please add instructions on how to detect this type of transfer here) [...]

Clone this wiki locally