Test Results Dashboard

Dashboard

Biconomy
VISA
PimlicoV07
PimlicoV06
Coinbase
EtherSpot

testAfterBalances

-

-

-

testRefillFund

-

-

-

-

  • ✅: Security measures for the feature have been completed as the tests have passed successfully.

  • ❌: There is a potential risk as the security measures related to the test have not been implemented.

  • The rest are entities unrelated to the test.

Just because a test was not passed does not immediately indicate a critical issue, as it is essential to review the company’s other AA entities as well. However, if the test was not passed, it could potentially lead to future issues.


testPriceMarkUpisValid
testGetFundInValidation
testRefillFund
testValdiatePaymasterUserOpRevert

testPriceMarkUpisValid

If the range of priceMarkUp is not restricted, issues may arise with the gas fees charged to users or businesses. Therefore, it’s better not to implement discount logic that applies a priceMarkUp lower than the token’s decimal places. While this issue is common across many paymasters.

Biconomy handles this aspect well.

testGetFundInValidation

If funds are not withdrawn during the verification stage, issues may arise because the verification process cannot proceed with the user’s funds deducted. Currently, Biconomy withdraws funds from the user in the postOp stage, which could lead to serious issues if the user makes a withdrawal or if their fund status changes during execution.

testRefillFund

After covering the gas fees for a specific user, a sufficient amount of funds (more than the gas fees used) must be recharged.

Biconomy adheres to this requirement well.

testValidatePaymasterUserOpRevert

Even if validatePaymasterUserOp reverts due to a reason like signature verification failure, the userOp itself should not be reverted; instead, it should return a result like sigFailed. If a revert occurs in this situation, it could potentially cause the entire bundle to revert.

Biconomy’s paymaster adheres to this requirement.


testGetFundInValidation
testRefillFund
testAfterBalances

testGetFundInValidation

VISA also collects gas fees from the user during the postOp stage. This approach could potentially lead to unexpected balance insufficiency issues in the postOp stage. The method should be adjusted to retrieve funds during the verification phase.

testAfterBalances

Even if a user provides certain gas options at a slightly higher rate, resulting in the paymaster covering more gas, the paymaster must accurately settle and refund any excess gas beyond what was actually used in the postOp stage. Testing has shown that VISA handles this aspect well.

testRefillFund

VISA covers certain users’ gas fees and then replenishes a sufficient amount of funds to ensure continuity of service.


testGetFundInValidation
testValdiatePaymasterUserOpRevert

testGetFundInValidation

PimlicoV07 retrieves the cost of gas fee coverage from the user during the verification phase.

testValdiatePaymasterUserOpRevert

PimlicoV07 does not return a revert on signature verification failure; instead, it returns data indicating that the signature verification has failed.


testGetFundInValidation

testGetFundInValidation

PimlicoV06 retrieves funds during the verification stage, allowing it to accurately verify the correct amount.


testPriceMarkUpisValid
testGetFundInValidation
testAfterBalances
testValdiatePaymasterUserOpRevert

testPriceMarkUpisValid

The paymasterAndData does not check the range of the exchangeRate (or PriceMarkUp). If a user pays for gas at an excessively low exchange rate, the paymaster may incur a loss due to the difference between the amount it collects and the gas fee paid by the EntryPoint (EP).

testGetFundInValidation

The cost is charged to and collected from the user during the verification phase.

testAfterBalances

After correctly settling the balance in the postOp phase, any remaining difference is returned to the user.

testValdiatePaymasterUserOpRevert

Even if the signature verification fails during the verification phase, it returns SIG_FAILED instead of reverting.


testPriceMarkUpisValid
testGetFundInValidation
testAfterBalances
testValdiatePaymasterUserOpRevert

EtherSpot meets all the requirements in our proposed test cases.

Last updated