mirror of
https://github.com/pezkuwichain/pezkuwi-wallet-android.git
synced 2026-06-15 15:01:13 +00:00
feat(xcm): Add Pezkuwi Teyrchain junction support for cross-chain transfers
- Add TEYRCHAIN_INFO constant and TeyrchainInfo pallet lookup - Add PezkuwiXcm pallet support in xcmPalletName functions - Update ParachainInfoRepository to query TeyrchainId storage - Add junctionTypeName to ParachainId for Teyrchain encoding - Update MultiLocationEncoding to handle both Parachain and Teyrchain - Detect Pezkuwi chains by genesis hash for correct junction type Fixes cross-chain transfers between Pezkuwi, Asset Hub, and People chains.
This commit is contained in:
+14
@@ -1,5 +1,6 @@
|
||||
package io.novafoundation.nova.feature_wallet_impl.data.network.crosschain.common
|
||||
|
||||
import android.util.Log
|
||||
import io.novafoundation.nova.common.di.scope.FeatureScope
|
||||
import io.novafoundation.nova.common.utils.composeCall
|
||||
import io.novafoundation.nova.common.utils.metadata
|
||||
@@ -54,6 +55,19 @@ class TransferAssetUsingTypeTransactor @Inject constructor(
|
||||
|
||||
val transferTypeParam = configuration.transferTypeParam(multiAssetsVersion)
|
||||
|
||||
// Debug logging for XCM transfer
|
||||
val destLocation = configuration.destinationChainLocationOnOrigin()
|
||||
Log.d("XCM_TRANSFER", "=== XCM TRANSFER DEBUG ===")
|
||||
Log.d("XCM_TRANSFER", "Origin chain: ${configuration.originChain.chain.name} (${configuration.originChain.chain.id})")
|
||||
Log.d("XCM_TRANSFER", "Origin parachainId: ${configuration.originChain.parachainId}")
|
||||
Log.d("XCM_TRANSFER", "Destination chain: ${configuration.destinationChain.chain.name} (${configuration.destinationChain.chain.id})")
|
||||
Log.d("XCM_TRANSFER", "Destination parachainId: ${configuration.destinationChain.parachainId}")
|
||||
Log.d("XCM_TRANSFER", "Destination location (relative): parents=${destLocation.parents}, interior=${destLocation.interior}")
|
||||
Log.d("XCM_TRANSFER", "Destination junctions: ${destLocation.interior}")
|
||||
Log.d("XCM_TRANSFER", "Transfer type: ${configuration.transferType}")
|
||||
Log.d("XCM_TRANSFER", "XCM Version: $multiLocationVersion")
|
||||
Log.d("XCM_TRANSFER", "==========================")
|
||||
|
||||
return chainRegistry.withRuntime(configuration.originChainId) {
|
||||
composeCall(
|
||||
moduleName = metadata.xcmPalletName(),
|
||||
|
||||
+11
@@ -1,5 +1,6 @@
|
||||
package io.novafoundation.nova.feature_wallet_impl.data.network.crosschain.dynamic
|
||||
|
||||
import android.util.Log
|
||||
import io.novafoundation.nova.common.address.AccountIdKey
|
||||
import io.novafoundation.nova.common.data.network.runtime.binding.WeightV2
|
||||
import io.novafoundation.nova.common.di.scope.FeatureScope
|
||||
@@ -130,6 +131,16 @@ class DynamicCrossChainTransactor @Inject constructor(
|
||||
val totalTransferAmount = transfer.amountPlanks + crossChainFee
|
||||
val assetAbsoluteMultiLocation = configuration.transferType.assetAbsoluteLocation
|
||||
|
||||
// Debug logging for Dynamic XCM transfer
|
||||
Log.d("XCM_DYNAMIC", "=== DYNAMIC XCM TRANSFER DEBUG ===")
|
||||
Log.d("XCM_DYNAMIC", "Origin chain: ${configuration.originChain.chain.name} (${configuration.originChain.chain.id})")
|
||||
Log.d("XCM_DYNAMIC", "Origin parachainId: ${configuration.originChain.parachainId}")
|
||||
Log.d("XCM_DYNAMIC", "Destination chain: ${configuration.destinationChain.chain.name} (${configuration.destinationChain.chain.id})")
|
||||
Log.d("XCM_DYNAMIC", "Destination parachainId: ${configuration.destinationChain.parachainId}")
|
||||
Log.d("XCM_DYNAMIC", "Destination location: ${configuration.destinationChainLocation}")
|
||||
Log.d("XCM_DYNAMIC", "Transfer type: ${configuration.transferType}")
|
||||
Log.d("XCM_DYNAMIC", "================================")
|
||||
|
||||
when (val transferType = configuration.transferType) {
|
||||
is XcmTransferType.Teleport -> buildTeleportProgram(
|
||||
assetLocation = assetAbsoluteMultiLocation,
|
||||
|
||||
Reference in New Issue
Block a user