-
Notifications
You must be signed in to change notification settings - Fork 146
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
fix: make type really optional, add defaults for return type #1338
Conversation
The latest updates on your projects. Learn more about Vercel for Git ↗︎
|
TChain, | ||
TAccount extends undefined ? "ModularAccountV2" : TAccount | ||
>, | ||
"type" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
should "type"
here be mode
? There's actually another inner parameter to a client
constructor called type
that's just an inner string field, which makes any uses of type
after the switch to mode
still compile.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
related: if GetSmartAccountClientParams
already has mode
as optional from https://github.com/alchemyplatform/aa-sdk/pull/1335/files, then I think we can skip using OptionalFields<...>
here
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
we're doing both optional - the client level type
defaults to MAv2 and the account level mode
defaults to default
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
with this, useSmartAccountClient({})
becomes valid syntax
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should we be overriding type
? I thought we needed the client type to be alchemy
for the alchemy gas estimator logic to get correctly used?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
oh nevermind, I think that's for .type
within the transport passed to the client.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
yeah, that seems to be transport.config.type
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
im so glad we changed the account type
to mode
lol
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ah, I think I just understood the relationship between the default in the generic and the default-initialized param - this looks good!
…-kit/smart-contracts (#1287) * feat: sma 7702 * feat: adds 7702 support to alchemy signer (#1269) * feat: adds initial impl of signAuthorization * docs: adds signAuthorization documentation * fix: rename var * feat: 7702 progress * feat: update viem and debug 7702 auth * feat: add deterministically deployed demo nft * fix: don't re-sign delegations * feat: update 7702 middleware to higher order function * chore: merge fixes * fix: remove unnecessary console log * fix: correctly await client actions in infra test * fix: correctly encode yParity in zero case * feat: correctly set validation entity in nonce and separate encode actions * feat: consolidate MAv2Base * feat: add unified ma v2 client (#1309) * feat: add unified ma v2 client * chore: update docs * chore: make account source unique * feat: add ma v2 account to useSmartAccountClient hook (#1314) * feat: add unified ma v2 client * chore: make account source unique * feat: add ma v2 account to use smart contract client hook * chore: remove different type names * chore: rename mav2 to ModularAccountV2 * fix: review fix, add common type * fix: typo * fix: remove await * fix: narrow the type instead of doing non null assertion * chore: rebaseme * fix: client type and middleware inclusion * docs: update docs with twoslash * feat: update to new json format for auth * feat: add defaults for useSmartAccountClient to ma v2 (#1328) * fix: fix MAv2 React Hook client creation for 7702 (#1329) * fix: rename MAv2 type to mode, add 7702 middleware for react hook * fix: don't switch MintCard to MAv2 yet * fix: reconnect 7702 account after page refresh * chore: remove comment * docs: regen docs * fix: fix docs * fix: remove unnecessary optional chaining * feat: update eip 7702 auth format * fix: make mode optional in useSmartAccountClient (#1335) * chore: move optional mode into account params (#1339) * chore: move optional mode into account params * chore: removed unused var * fix: make type really optional, add defaults for return type (#1338) * refactor: assert exhaustive account type handling in getSmartAccountClient --------- Co-authored-by: Linna <[email protected]> Co-authored-by: howy <[email protected]> Co-authored-by: jakehobbs <[email protected]>
Pull Request Checklist
yarn test
)site
folder, and guidelines for updating/adding docs can be found in the contribution guide)feat!: breaking change
)yarn lint:check
) and fix any issues? (yarn lint:write
)PR-Codex overview
This PR modifies the
useSmartAccountClient
hook in theaccount-kit/react/src/hooks/useSmartAccountClient.ts
file to improve type handling and default values for account types.Detailed summary
OptionalFields
toGetSmartAccountClientParams
.TAccount
to"ModularAccountV2"
.type
parameter in the function signature to default to"ModularAccountV2"
.