diff --git a/src/kit.ts b/src/kit.ts index 5ad9709..35612dc 100644 --- a/src/kit.ts +++ b/src/kit.ts @@ -357,6 +357,10 @@ export class SessionKit { */ async login(options?: LoginOptions): Promise { try { + const selectableWalletPlugins = this.walletPlugins.filter( + (plugin) => plugin.id !== 'session-key-wallet' + ) + // Create LoginContext for this login request. const context = new LoginContext({ appName: this.appName, @@ -369,7 +373,7 @@ export class SessionKit { fetch: this.fetch, loginPlugins: this.loginPlugins, ui: this.ui, - walletPlugins: this.walletPlugins.map((plugin): UserInterfaceWalletPlugin => { + walletPlugins: selectableWalletPlugins.map((plugin): UserInterfaceWalletPlugin => { return { config: plugin.config, metadata: WalletPluginMetadata.from(plugin.metadata), @@ -384,9 +388,9 @@ export class SessionKit { // Predetermine WalletPlugin (if possible) to prevent uneeded UI interactions. let walletPlugin: WalletPlugin | undefined = undefined - if (this.walletPlugins.length === 1) { - walletPlugin = this.walletPlugins[0] // Default to first when only one. - context.walletPluginIndex = 0 + if (selectableWalletPlugins.length === 1) { + walletPlugin = selectableWalletPlugins[0] // Default to first when only one. + context.walletPluginIndex = this.walletPlugins.indexOf(walletPlugin) context.uiRequirements.requiresWalletSelect = false } else if (options?.walletPlugin) { walletPlugin = this.getWalletPlugin(options.walletPlugin) diff --git a/src/utils.ts b/src/utils.ts index a0c0773..eb0814c 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -8,7 +8,7 @@ import { Transaction, } from '@wharfkit/antelope' import type {Fetch, LocaleDefinitions} from '@wharfkit/common' -import {SigningRequest} from '@wharfkit/signing-request' +import {PlaceholderAuth, SigningRequest} from '@wharfkit/signing-request' import {TransactArgs, TransactPlugin} from './transact' import {WalletPlugin} from './wallet' @@ -148,7 +148,9 @@ export function actionMatchesPermission( action: AnyAction, permissionLevel: PermissionLevel ): boolean { - return action.authorization.some((auth: PermissionLevelType) => permissionLevel.equals(auth)) + return action.authorization.some( + (auth: PermissionLevelType) => permissionLevel.equals(auth) || PlaceholderAuth.equals(auth) + ) } function rewriteAuthIfMatches( @@ -156,9 +158,9 @@ function rewriteAuthIfMatches( permissionLevel: PermissionLevel, newPermission: Name ): PermissionLevelType { - if (permissionLevel.equals(auth)) { + if (permissionLevel.equals(auth) || PlaceholderAuth.equals(auth)) { return PermissionLevel.from({ - actor: auth.actor, + actor: permissionLevel.actor, permission: newPermission, }) }