Skip to content

Verifying paymaster - #16

Merged
boqiu merged 9 commits into
mainfrom
verifying-paymaster
Aug 20, 2026
Merged

Verifying paymaster#16
boqiu merged 9 commits into
mainfrom
verifying-paymaster

Conversation

@boqiu

@boqiu boqiu commented Aug 20, 2026

Copy link
Copy Markdown
Contributor

This change is Reviewable

@boqiu
boqiu requested a balanced review from Copilot August 20, 2026 07:03

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds verifying-paymaster validation and signing support for EIP-7702 smart accounts.

Changes:

  • Adds paymaster stub/sign endpoints, validation, signing, and configuration.
  • Adds contract bindings and shared user-operation structures.
  • Updates gas-tank integration and API documentation.

Reviewed changes

Copilot reviewed 18 out of 20 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
.env.example Documents paymaster configuration.
api/controller_verifying_paymaster.go Implements paymaster endpoints.
api/models.go Adds authorization-aware input model.
api/route.go Registers paymaster routes.
contract/SimpleSmartAccount7702.abi.json Updates smart-account ABI.
contract/SimpleSmartAccount7702.go Updates generated binding.
contract/VerifyingPaymaster.abi.json Adds paymaster ABI.
contract/gas_tank_paymaster.go Shares packed user-operation type.
contract/verifying_paymaster.go Adds generated paymaster binding.
docs/docs.go Updates generated API documentation.
docs/swagger.json Documents paymaster APIs.
docs/swagger.yaml Documents paymaster APIs.
main.go Adds the Paymaster API tag.
service/account_abstract.go Uses shared delegation lookup.
service/blockchain_util.go Extracts EIP-7702 delegation utility.
service/errors.go Adds paymaster errors.
service/paymaster_gas_tank.go Implements gas-tank paymaster logic.
service/paymaster_verifying.go Implements verifying-paymaster service.
service/paymaster_verifying_test.go Tests validation behavior.
service/service.go Initializes the optional service.
Files not reviewed (1)
  • docs/docs.go: Generated file

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread api/controller_verifying_paymaster.go
@boqiu
boqiu requested a balanced review from Copilot August 20, 2026 07:27

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 18 out of 20 changed files in this pull request and generated no new comments.

Files not reviewed (1)
  • docs/docs.go: Generated file
Suppressed comments (2)

api/models.go:76

  • UserOperation is also the request type for the existing /aa/gastank/sign endpoint, which explicitly supports only an empty init code. Making this field required therefore rejects every existing gas-tank client that omits it, forcing an unrelated breaking API change. Keep it optional; the verifying-paymaster validation already requires the marker when delegatedContract is non-zero.
	InitCode             string `json:"initCode" binding:"required,hex,min=2"`

docs/swagger.yaml:193

  • The newly generated request schema omits initCode, although the sign handler binds that field and the EOA-upgrade path requires the 0x7702… marker. Clients generated from this Swagger contract cannot discover or model the documented upgrade request. Regenerate all Swagger artifacts so initCode appears in UserOperationWithAuth (and the shared schema, if it remains there).
  api.UserOperationWithAuth:

@boqiu
boqiu merged commit 1850cfd into main Aug 20, 2026
2 checks passed
@boqiu
boqiu deleted the verifying-paymaster branch August 20, 2026 07:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants