Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
This PR adds support for permissioned signers to the Aptos TS SDK.
Update: I added a unified permission class. You can see the diff of the change by looking at the commit history.
One design choice I would appreciate feedback on: The classes I created to represent permissions don't share a common parent. This impacts any wallet that needs to serialize requests before interfacing with nodes. For example, with aptos connect, this means that when requesting permissions from the wallet we need to separate the permission types in the request body. For example, here is how we request permissions in the dapp on aptos connect.Note how the permissions are separated by type. If there was a common parent, we could have a single array of permissions like so:Curious to hear opinions on this, if it is an issue or not.Test Plan
There are a couple test cases I need to add after the issue with the script composer is resolved, mainly around the new gas permission. I have a little bit of cleanup to do in
permissionedSigner.test.ts
as well.Outside of the test cases, the Aptos Connect PR has an e2e flow implemented for requesting permissions, and a dapp to consume the feature.
Related Links
Checklist
pnpm fmt
?CHANGELOG.md
?