FISCO-BCOS / FISCO-BCOS/java-sdk

AssembleEIP1559TransactionService has a package-private constructor and is never instantiated (unusable by consumers)

Open
#952 0 comments 1 reaction 2 assignees Claimed by @kyonRay View on GitHub
bug
Dominant language
Java
Stars
58
Forks
62
PR merge metrics
No merged PRs in 30d

Description

### Description
`org.fisco.bcos.sdk.v3.transaction.manager.transactionv1.AssembleEIP1559TransactionService` cannot be instantiated by SDK consumers: its only constructor is package-private —

```java
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).

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.