Skip to content
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

native: make isolation engines work with structuredClone() #367

Merged
merged 16 commits into from
Nov 12, 2021

Conversation

mrnerdhair
Copy link
Contributor

@mrnerdhair mrnerdhair commented Nov 5, 2021

Builds on #366.

One type of implementation for isolation engines that we'd like to support is a scheme where parameters are passed between origins or workers using e.g. window.postMessage(). The current interface doesn't make this straightforward, because the message parameter for ecdsaSign() has its preimage and algorithm fields stripped by the structured clone algorithm in the process. To avoid having to work around this issue with some kind of wrapper or adapter, this PR changes the isolation engine interface so that all its parameters are structured-clone compatible.

Likewise, the recoveryParam value attached to RecoverableSignatures returned by ecdsaSign is stripped by structured cloning. This PR changes that type to an ethers.Signature-style 65-byte array, where the last byte is the recovery parameter, rather than a 64-byte array with an extra recoveryParam property.

@vercel
Copy link

vercel bot commented Nov 5, 2021

This pull request is being automatically deployed with Vercel (learn more).
To see the status of your deployment, click below or on the icon next to each commit.

🔍 Inspect: https://vercel.com/shapeshift/hdwallet/GHX5KDH8y62n9hTabHsPJJhy2oCH
✅ Preview: https://hdwallet-git-improve-isolation-interface-2-shapeshift.vercel.app

@mrnerdhair mrnerdhair changed the title Improve isolation interface 2 native: make ecdsaSign params work with structuredClone() Nov 5, 2021
@mrnerdhair mrnerdhair force-pushed the improve-isolation-interface-2 branch from 03f744a to 4c0bba0 Compare November 9, 2021 19:54
@mrnerdhair mrnerdhair changed the title native: make ecdsaSign params work with structuredClone() native: make ecdsaSign work with structuredClone() Nov 9, 2021
@mrnerdhair mrnerdhair force-pushed the improve-isolation-interface-2 branch from 4c0bba0 to 532b8c5 Compare November 9, 2021 20:06
@mrnerdhair mrnerdhair force-pushed the improve-isolation-interface-2 branch from 532b8c5 to 5b0d01d Compare November 9, 2021 21:23
@mrnerdhair mrnerdhair changed the title native: make ecdsaSign work with structuredClone() native: make isolation engines work with structuredClone() Nov 9, 2021
@mrnerdhair mrnerdhair merged commit 9ba44c3 into master Nov 12, 2021
@mrnerdhair mrnerdhair deleted the improve-isolation-interface-2 branch November 12, 2021 22:38
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