[BCI-1792] Moved over TxAttemptBuilder and Tx interfaces
Context:
- To implement chain specific
TxAttemptBuilderandTxTypes, this PR moves over the necessary generalised Tx types.
Notes:
- Need help to check if the folder import location is okay. ❓
Tickets:
- https://smartcontract-it.atlassian.net/browse/BCI-1793
- https://smartcontract-it.atlassian.net/browse/BCI-1792
Comments from slack: https://chainlink-core.slack.com/archives/C04Q61M2MFT/p1692672242308909?thread_ts=1692585066.729749&cid=C04Q61M2MFT
We should keep the chainlink-relay service interfaces minimal and hide implementation details from core and products.
Previously this wasn't an issue as we used mostly std lib and generics. But now we are pulling in SQL specific libraries that don't belong in the relayer interface.
To start, we can create a chainlink-relay/pkg/common directory matching chainlink/common and move utils there without modification. This minimally disrupts the current structure.
Longer term, we need to abstract the SQL dependencies out of the chainlink-relay package to avoid leaking details. For example, cleaning up the pg.Opts usage in tx store after separating the persistence layer.
For now, it may be best to keep this PR in a branch until we can properly abstract the SQL dependencies. The goal is to keep the relay interface clean and hidden from core and products.