fix: gate PezkuwiCheckImmortal on chain identity, not extension presence

Confirmed via on-device logcat trace: approving a multisig operation on
Polkadot Asset Hub failed with "Failed to encode extension CheckMortality"
because isPezkuwi checked for the "AuthorizeCall" signed extension, which
Polkadot Asset Hub also declares - so PezkuwiCheckImmortal's raw DictEnum
value was used there too, and it isn't a valid instance of Polkadot's own
Era type codec. Switched the gate to the existing chain.isPezkuwiChain
(genesis-hash based) check already used for the bizinikiwi signing context
split. Also removes the temporary diagnostic logging added while tracing
this bug and the earlier deep-link routing fix.
This commit is contained in:
2026-07-18 19:04:12 -07:00
parent e0feb9581b
commit d999f48891
5 changed files with 21 additions and 32 deletions
@@ -444,7 +444,9 @@ class Navigator(
}
override fun openBridgeFlow() {
navigationBuilder().action(R.id.action_mainFragment_to_bridgeFlow)
navigationBuilder().cases()
.addCase(R.id.mainFragment, R.id.action_mainFragment_to_bridgeFlow)
.addCase(R.id.balanceDetailFragment, R.id.action_balanceDetailFragment_to_bridgeFlow)
.navigateInFirstAttachedContext()
}
@@ -225,11 +225,8 @@ class RootViewModel(
}
fun handleDeepLink(data: Uri) {
android.util.Log.e("DeepLinkDebug", "RootViewModel.handleDeepLink: raw=$data scheme=${data.scheme} authority=${data.authority} path=${data.path}")
launch {
val result = deepLinkHandler.handleDeepLink(data)
android.util.Log.e("DeepLinkDebug", "RootViewModel.handleDeepLink: result=$result exceptionOrNull=${result.exceptionOrNull()}")
result
deepLinkHandler.handleDeepLink(data)
.onFailureInstance<DeepLinkHandlingException, Unit> {
val errorMessage = formatDeepLinkHandlingException(resourceManager, it)
showError(errorMessage)
@@ -847,6 +847,14 @@
app:popUpTo="@id/balanceDetailFragment"
app:popUpToInclusive="true" />
<action
android:id="@+id/action_balanceDetailFragment_to_bridgeFlow"
app:destination="@id/bridgeFragment"
app:enterAnim="@anim/fragment_open_enter"
app:exitAnim="@anim/fragment_open_exit"
app:popEnterAnim="@anim/fragment_close_enter"
app:popExitAnim="@anim/fragment_close_exit" />
</fragment>
<fragment