# Coding Task: Transaction mechanism (Java) In Livepeer we execute Ethereum transactions on the Ethereum network. This process follows two rules: 1. Send transactions one by one, never sent a transaction if the previous one has not completed (`nonce` field is the transaction's sequence number). 2. Do not send a transaction if the current Ethereum gas price is higher than `maxGasPrice` of your transaction. Implement a mechanism to **queue, send, and retry** sending transactions. ```java public interface Ethereum { int getTransactionCount(); int suggestGasPrice(); void sendTransaction(Transaction transaction); } public class Transaction { private int nonce; private int maxGasPrice; // Transaction data, not related to this task private Object data; } public class TransactionManager { public void sendTransaction(Transaction transaction, Ethereum eth) { // Naive implementation that sends each transaction, no matter of nonce or maxGasPrice eth.sendTransaction(trans); } } ```