Description
org.fisco.bcos.sdk.v3.transaction.manager.transactionv1.AssembleEIP1559TransactionService cannot be instantiated by SDK consumers: its only constructor is package-private —
AssembleEIP1559TransactionService(Client client) { ... } // no `public`
— and no public factory or call site in src/main constructs it (there is no new AssembleEIP1559TransactionService(...) anywhere in main code).
Impact
The EIP-1559 transaction service (deploy/send EIP-1559 transactions: deployContractEIP1559, sendEIP1559Transaction, and async variants) is unreachable from outside its own package, so users cannot use it directly, and it is untestable from other packages.
Suggested fix
Either make the constructor public, or expose it through a factory (e.g. TransactionManagerFactory / TransactionProcessorFactory) that returns an AssembleEIP1559TransactionService, mirroring how AssembleTransactionService / DefaultTransactionManager are obtained.
Found via
Attempting to write a test for the EIP-1559 service during #947 (the test had to be placed inside the ...transactionv1 package just to reach the constructor).
Description
org.fisco.bcos.sdk.v3.transaction.manager.transactionv1.AssembleEIP1559TransactionServicecannot be instantiated by SDK consumers: its only constructor is package-private —— and no public factory or call site in
src/mainconstructs it (there is nonew AssembleEIP1559TransactionService(...)anywhere in main code).Impact
The EIP-1559 transaction service (deploy/send EIP-1559 transactions:
deployContractEIP1559,sendEIP1559Transaction, and async variants) is unreachable from outside its own package, so users cannot use it directly, and it is untestable from other packages.Suggested fix
Either make the constructor
public, or expose it through a factory (e.g.TransactionManagerFactory/TransactionProcessorFactory) that returns anAssembleEIP1559TransactionService, mirroring howAssembleTransactionService/DefaultTransactionManagerare obtained.Found via
Attempting to write a test for the EIP-1559 service during #947 (the test had to be placed inside the
...transactionv1package just to reach the constructor).