fix: preserve fee token in fee payer signing#184
Conversation
c61584f to
33251f4
Compare
commit: |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 33251f4920
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| const serializedTransaction = await signTransaction(client, { | ||
| ...transaction, | ||
| account, | ||
| ...(feeToken ? { feeToken } : {}), |
There was a problem hiding this comment.
Preserve explicit null fee token settings
When the fee payer client is configured with chain.extend({ feeToken: null }) to opt into protocol-selected fee tokens, this truthiness guard treats that explicit setting as absent. In that scenario, if the deserialized user transaction already contains a concrete feeToken, the earlier ...transaction spread keeps that token and the fee payer signs using it instead of preserving the configured null preference.
Useful? React with 👍 / 👎.
|
pulling this into accounts SDK re: archive notice |
Summary
mppx impact
mppx pull mode submits a user-signed sponsored Tempo transaction to the hosted fee payer. Sponsored sender signatures intentionally omit
feeToken, so the fee payer must choose and include the fee token when it co-signs. The handler was deserializing the raw transaction and signing it without restoringclient.chain.feeToken, producing a final sponsored envelope with a fee payer signature but no fee token. That causes mppx settlement/broadcast to fail during Tempo fee validation because the fee token path is missing or wrong.