Skip to content

signAndSend does not respect modified signedTransaction field #11368

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
valentunn opened this issue Mar 6, 2025 · 2 comments
Open

signAndSend does not respect modified signedTransaction field #11368

valentunn opened this issue Mar 6, 2025 · 2 comments
Labels
P4 - Needs Investigation Requires analysis to determine cause or feasibility. Not fully understood, needs research first. Support Tracks issues or requests related to troubleshooting, answering questions, and user assistance.

Comments

@valentunn
Copy link
Contributor

Hey, thats Valentin from Nova Wallet

We are currently testing integration of wrapped proxy signing based on recently implemented allowCallDataAlteration.
The allowCallDataAlteration itself works as expected and the payload validation logic is getting skipped. However, we noticed that an attempt to send proxy-wrapped tx is failing with "Invalid signature" response from the node.

After some debugging and investigaiton we found out that despite signedTransaction is handled in signViaSigner in polkadot-js api library, polkadot-js apps itself doesnt use signAndSend which pipes signedTransaction into observeSubscribe but actually uses signAsync and send separetely, which causes signedTransaction to be lost in between since signViaSigner mutates only signature and not the modified tx itself, so send uses combination of original extrinsic and signature for the modified transaction

@TarikGul TarikGul added Support Tracks issues or requests related to troubleshooting, answering questions, and user assistance. P4 - Needs Investigation Requires analysis to determine cause or feasibility. Not fully understood, needs research first. labels Mar 10, 2025
@ap211unitech
Copy link
Member

ap211unitech commented Apr 1, 2025

@valentunn If I understood correctly, submitting extrinsics via a proxy account fails in the Apps UI because signAsync does not preserve the modified transaction, causing a signature mismatch. Is that correct? because I did couple of transactions with proxies, all worked fine.

@valentunn
Copy link
Contributor Author

valentunn commented Apr 2, 2025

Hey @ap211unitech . I am talking about a situation when the signer is modifying the call data by wrapping supplied call into proxy.proxy and returning the result in signedTransaction field. The issue is that sendAsync uses original transaction with the signature returned from the signer which causes submission error because of signature mismatch, since the modified transaction should be used instead. from I can help you with providing a debuggable build of Nova Wallet where you can test this in our Dapp Browser and debug the behavior of the polkadot-js/apps by connecting the chrome dev tools to the WebView

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
P4 - Needs Investigation Requires analysis to determine cause or feasibility. Not fully understood, needs research first. Support Tracks issues or requests related to troubleshooting, answering questions, and user assistance.
Projects
None yet
Development

No branches or pull requests

3 participants