MetaMask / eth-snap-keyring

Snap Keyring bridge
7 stars 3 forks source link

Regression from setting tsconfig option `moduleResolution` to `NodeNext` #323

Closed MajorLift closed 2 months ago

MajorLift commented 4 months ago

References

Error message

src/SnapKeyring.ts:162:13 - error TS2339: Property 'account' does not exist on type 'Json[] | Record<string, Json> | undefined'.

162     const { account, accountNameSuggestion, displayConfirmation } =
                ~~~~~~~

src/SnapKeyring.ts:162:22 - error TS2339: Property 'accountNameSuggestion' does not exist on type 'Json[] | Record<string, Json> | undefined'.

162     const { account, accountNameSuggestion, displayConfirmation } =
                         ~~~~~~~~~~~~~~~~~~~~~

src/SnapKeyring.ts:162:45 - error TS2339: Property 'displayConfirmation' does not exist on type 'Json[] | Record<string, Json> | undefined'.

162     const { account, accountNameSuggestion, displayConfirmation } =
                                                ~~~~~~~~~~~~~~~~~~~

src/SnapKeyring.ts:205:13 - error TS2339: Property 'account' does not exist on type 'Json[] | Record<string, Json> | undefined'.

205     const { account: newAccount } = message.params;
                ~~~~~~~

src/SnapKeyring.ts:234:13 - error TS2339: Property 'id' does not exist on type 'Json[] | Record<string, Json> | undefined'.

234     const { id } = message.params;
                ~~

src/SnapKeyring.ts:276:13 - error TS2339: Property 'id' does not exist on type 'Json[] | Record<string, Json> | undefined'.

276     const { id, result } = message.params;
                ~~

src/SnapKeyring.ts:276:17 - error TS2339: Property 'result' does not exist on type 'Json[] | Record<string, Json> | undefined'.

276     const { id, result } = message.params;
                    ~~~~~~

src/SnapKeyring.ts:297:13 - error TS2339: Property 'id' does not exist on type 'Json[] | Record<string, Json> | undefined'.

297     const { id } = message.params;
                ~~

Found 8 errors in the same file, starting at: src/SnapKeyring.ts:162
MajorLift commented 3 months ago

This issue is caused by "*Struct" types from @metamask/keyring-api resolving to any, because the current version of keyring-api uses superstruct instead of @metamask/superstruct.

Should be resolved by https://github.com/MetaMask/keyring-api/pull/328 being merged and released.