feat: Add Pezkuwi chain support with custom signed extensions

- Add PezkuwiAddressConstructor for custom address type handling
- Add custom signed extensions (CheckNonZeroSender, CheckWeight, WeightReclaim, PezkuwiCheckMortality)
- Add pezkuwi.json type definitions
- Update RuntimeSnapshotExt for multiple address type lookups
- Update CHAINS_URL to use GitHub-hosted chains.json with types config
- Add feeViaRuntimeCall support for Pezkuwi chains
- Add debug diagnostics for runtime type issues (to be cleaned before production)
- Add CHANGELOG_PEZKUWI.md documenting all changes
This commit is contained in:
2026-02-03 05:41:52 +03:00
parent bb189aeb8a
commit 032cbde2d6
29 changed files with 662 additions and 55 deletions
@@ -6,7 +6,7 @@ import java.math.BigInteger
import io.novasama.substrate_sdk_android.runtime.AccountId
import io.novasama.substrate_sdk_android.runtime.RuntimeSnapshot
import io.novasama.substrate_sdk_android.runtime.definitions.types.composite.DictEnum
import io.novasama.substrate_sdk_android.runtime.definitions.types.instances.AddressInstanceConstructor
import io.novafoundation.nova.common.utils.PezkuwiAddressConstructor
import io.novasama.substrate_sdk_android.runtime.extrinsic.builder.ExtrinsicBuilder
import io.novasama.substrate_sdk_android.runtime.extrinsic.call
@@ -28,7 +28,7 @@ fun ExtrinsicBuilder.removeProxyCall(proxyAccountId: AccountId, proxyType: Proxy
private fun argumentsForProxy(runtime: RuntimeSnapshot, proxyAccountId: AccountId, proxyType: ProxyType): Map<String, Any> {
return mapOf(
"delegate" to AddressInstanceConstructor.constructInstance(runtime.typeRegistry, proxyAccountId),
"delegate" to PezkuwiAddressConstructor.constructInstance(runtime.typeRegistry, proxyAccountId),
"proxy_type" to DictEnum.Entry(proxyType.name, null),
"delay" to BigInteger.ZERO
)