You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Error Handling The error handling in handleRequest function might suppress the original error details which could be useful for debugging. Consider logging the original error message before sanitizing or reformatting it for the user.
Constructor Initialization In the NearSafe constructor, ensure that all properties are correctly initialized to prevent runtime errors. The safePack property initialization seems to be missing.
API Key Sanitization The stripApiKey function uses a regex to sanitize the API key. Ensure that this method covers all potential formats of the API key in the error messages. Consider adding more robust tests to cover various scenarios.
-this.safePack.entryPoint.address,+this.safePack.entryPoint?.address ?? throw new Error("EntryPoint is undefined");
Suggestion importance[1-10]: 10
Why: Adding a null check for entryPoint before using it prevents potential runtime errors, which is crucial for ensuring the stability and reliability of the application.
10
Enhancement
Use a specific error type for better error handling and clarity
Refactor the error handling to use a more specific error type or to include more context about the failure.
-throw new Error(`Failed to send user op with: ${message}`);+throw new RpcOperationError(`Failed to send user operation with: ${message}`);
Suggestion importance[1-10]: 9
Why: Using a specific error type like RpcOperationError improves error handling and provides more clarity about the nature of the error. This change enhances the robustness of the code.
9
Best practice
Ensure safeSaltNonce is always defined by setting a default value
Ensure that the safeSaltNonce is always defined by providing a default value in the NearSafeConfig interface.
Why: Providing a default value for safeSaltNonce ensures that it is always defined, which can prevent potential runtime errors. This is a good practice and enhances code reliability.
8
Maintainability
Use a constant for the error message to improve maintainability
Replace the hardcoded error message with a constant to ensure consistency and ease of maintenance.
-throw new Error("Unauthorized request. Please check your Pimlico API key.");+throw new Error(ERROR_MESSAGES.UNAUTHORIZED);
Suggestion importance[1-10]: 7
Why: Using a constant for error messages improves maintainability and consistency across the codebase. However, this change is not critical and does not address a major bug or issue.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
User description
Exclude API Key from errors raised by pimlico requests.
PR Type
Enhancement, Bug fix
Description
TransactionManager
toNearSafe
across multiple files.stripApiKey
function to sanitize error messages and updated error handling.NearSafeConfig
interface for better configuration management.Changes walkthrough 📝
send-tx.ts
Rename `TransactionManager` to `NearSafe` and update method calls
examples/send-tx.ts
TransactionManager
toNearSafe
.safeSufficientlyFunded
tosufficientlyFunded
.index.ts
Update export to `near-safe`
src/index.ts
tx-manager
tonear-safe
.safe.ts
Rename `ContractSuite` to `SafeContractSuite`
src/lib/safe.ts
ContractSuite
toSafeContractSuite
.near-safe.ts
Refactor
TransactionManager
toNearSafe
with configuration interfacesrc/near-safe.ts
TransactionManager
toNearSafe
.NearSafeConfig
interface.create
method to useNearSafeConfig
.bundlerForChainId
method to private.bundler.ts
Add `stripApiKey` function and update error handling
src/lib/bundler.ts
stripApiKey
function to sanitize error messages.bundler.spec.ts
Add tests for `stripApiKey` and update error message tests
tests/lib/bundler.spec.ts
stripApiKey
function.safe.spec.ts
Rename `ContractSuite` to `SafeContractSuite` in tests
tests/lib/safe.spec.ts
ContractSuite
toSafeContractSuite
.