Skip to content

Conversation

@WRRicht3r
Copy link

Notes: references:
- shared-features-spm pin 6d6cb16
- web3-swift dedupe 7.7.7
- optional Google keys injection
- FearlessKeys gated by INCLUDE_FEARLESS_KEYS

…ing to optional to satisfy Swift 6 inference

Signed-off-by: William Richter <richter@soramitsu.co.jp>
…redeclaration with CIKeys.generated.swift; rely on CIKeys/FearlessKeys

Signed-off-by: William Richter <richter@soramitsu.co.jp>
…odel initializer by providing enabledAssetIds from assetsVisibility

Signed-off-by: William Richter <richter@soramitsu.co.jp>
…ity to avoid redeclaration; rely on tokens-backed assets elsewhere

fix(keys): make FearlessKeysShim a no-op to avoid redeclaration with CIKeys.generated.swift

Signed-off-by: William Richter <richter@soramitsu.co.jp>
…replacingPrice in PricesService.handle

Signed-off-by: William Richter <richter@soramitsu.co.jp>
Gate debug keys behind canImport(FearlessKeys) to restore PR/local builds.
Minor Swift clean-up; no behavior change.
Sort pairs by pairId explicitly before mapping, keeping stable order without needing Comparable.
…th updated SSF APIs

- Gate Debug-only key usage behind  and fall back to CI-generated keys
  • AlchemyRequest, AlchemyNFTOperationFactory (ThirdPartyServicesApiKeys)
  • OklinkHistoryOperationFactory, BlockExplorerApiKey (BlockExplorerApiKeys)
  • EthereumNodeFetching (EthereumNodesApiKeys)
- Remove deprecated  builder calls in SubstrateTransferService
- Avoid  requirement for LiquidityPair by sorting with
- Minor Swift style: implicit return in ServiceCoordinator

No push; signed per repo policy.
- Gate Debug-only key usage behind  and fall back to CI-generated keys
  • AlchemyRequest, AlchemyNFTOperationFactory (ThirdPartyServicesApiKeys)
  • OklinkHistoryOperationFactory, BlockExplorerApiKey (BlockExplorerApiKeys)
  • EthereumNodeFetching (EthereumNodesApiKeys)
- Remove deprecated  builder calls in SubstrateTransferService
- Avoid  requirement for LiquidityPair by sorting with
- Minor Swift style: implicit return in ServiceCoordinator
- PricesService: unwrap optional PriceData before replacing price (keep asset if nil)

No push; signed per repo policy.
Provide a local extension that updates chain.assets and returns self to satisfy legacy usage in PricesService.
…ng API

Remove deprecated cacheOptions parameter and handle raw AccountStatisticsResponse from stream.
Cast to app ChainRegistryProtocol to use the synchronous  and avoid erroneous async requirement.
Set appId to nil to align with updated ChainOptions and extrinsic builder API.
 is non-optional in current extensions; parse directly to UInt64 with a guard.
- Remove cases for deprecated explorers in HistoryOperationFactory and route only supported types
- Simplify RewardOperationFactory switch to avoid non-existent cases
- Replace DataProviderObserverOptions(notifyIfNoDiff:) with (alwaysNotifyOnRefresh:waitsInProgressSyncOnAdd:)
Specify closure return type  and use a named parameter to resolve 'nil' compatibility error.
Update PricesService to set chain.assets = Set(updatedAssets) and append that chain.
…f liquidity pool shims

- Implement async webSocketDidChangeState(engine:from:to:) per SSFUtils protocol
- Make PolkaswapLiquidityPoolService and assembly internal to avoid public API using internal types
Use Array(Data) instead of .bytes to produce [UInt8] from two's complement representation.
Provide  to satisfy existing call sites (e.g., WalletConnect/Ethereum).
Capture signing payload via builder.signing closure, then sign it with TransactionSigner and return encoded MultiSignature.
…ry symbol

Provide a local RuntimeCoderFactoryProtocol implementation backed by RuntimeSnapshot and use it in RuntimeProvider.
…idators

- Fallback to static min-amount mapping when inspector throws
- Drop .liberland and .acala cases no longer present in Chain enum
Fallback to sorting by asset symbol when price list is unavailable in current models.
ExternalApiExplorerType may not include .oklink in current models; omit and fall through to default (no action).
… and unwrap APY optionals

- Cast to ChainRegistryProtocol/ChainRegistry to call sync getRuntimeProvider/getSubstrateConnection
- Use Array(secretKey) for EthereumPrivateKey init to avoid RawSpan
- Safely unwrap nested optionals when mapping APY responses
- Remove .oklink branch from ExternalApiExplorerType action title
Change public extension on PolkaswapLiquidityPoolService to internal extension to satisfy access level rules.
- Use literal key path to avoid #keyPath(CDAsset.id) ambiguity
- Map type from  instead of deprecated
- Remove usage of ; set empty price list
Safely map  by double-compactMap to extract poolId and APY list.
…iases to fearless.*

Strip all 'import SSFModels' from committed mocks and add top-level typealiases mapping MetaAccountModel/ChainAccountResponse to fearless module to avoid ambiguous lookup.

Signed-off-by: William Richter <richter@soramitsu.co.jp>
…/ChainAsset

Fix missing type errors by importing SSFModels at header and explicitly aliasing core types while keeping MetaAccountModel/ChainAccountResponse bound to fearless module.

Signed-off-by: William Richter <richter@soramitsu.co.jp>
…cates from generated mocks

Add SSFModels bindings (AssetModel, ChainModel, ChainAsset, ChainFormat, AccountId, StakingType, ChainAssetKey) and app-protocol aliases in CuckooTypealiases.swift. Remove header aliases/imports from CommonMocks.swift and ModuleMocks.swift to avoid redeclarations and ambiguity.

Signed-off-by: William Richter <richter@soramitsu.co.jp>
@WRRicht3r
Copy link
Author

@codex critique this codebase

@chatgpt-codex-connector
Copy link

Summary

  • Added docs/CodexCritique.md to document scene-management gaps, singleton-heavy composition, concurrency cancellation risks, and URL handler synchronization issues in the Fearless root stack. docs/CodexCritique.mdL1-L45

Testing

  • ⚠️ Tests not run (docs-only change)

View task →

- FearlessApplication.dropSession(): resolve active foreground window using connectedScenes and UIWindowScene windows instead of deprecated UIApplication.shared.windows.first.
- MainTabBarViewFactory.createView(): stop using deprecated keyWindow; resolve ApplicationStatusPresentable window via connectedScenes.
- HistoryService.fetchTransactionHistory: avoid invoking completion when the operation was cancelled to prevent teardown crashes.

Signed-off-by: William Richter <richter@soramitsu.co.jp>
…ter cancellation-aware; make URL handler thread-safe

- RootPresenterFactory: add Dependencies container and overload to support constructor injection while keeping default singleton-backed path.
- RootPresenter: mark @mainactor, store and cancel Task handle on reload/deinit; remove extra main queue hops.
- URLHandlingService: add concurrent queue with barrier writes and snapshot reads; make registry updates thread-safe.
- docs: add CodexCritique.md capturing identified issues and directions.

Signed-off-by: William Richter <richter@soramitsu.co.jp>
Swift forbids deinit in extensions; keep cancellation in-class.

Signed-off-by: William Richter <richter@soramitsu.co.jp>
…col in dependencies

RootPresenterFactory.Dependencies now carries KeystoreProtocol; defaults to SoraKeystore.Keychain().

Signed-off-by: William Richter <richter@soramitsu.co.jp>
…n; align OnboardingViewInput method signature

Satisfy nonisolated protocol requirements under Swift 6 while keeping UI mutations on main via DispatchQueue.main.async.

Signed-off-by: William Richter <richter@soramitsu.co.jp>
@WRRicht3r
Copy link
Author

@codex fix the codecov issues once and for all

@chatgpt-codex-connector
Copy link

Summary

Testing

  • ⚠️ Not run (Xcode simulator tooling unavailable in the current container).

View task →

…igger)

Signed-off-by: William Richter <richter@soramitsu.co.jp>
…o avoid Swift 6 diagnostics on CI

Signed-off-by: William Richter <richter@soramitsu.co.jp>
…les under build/coverage and ignore in git

Signed-off-by: William Richter <richter@soramitsu.co.jp>
…ult Jenkins destination to generic to avoid ambiguous matches

Signed-off-by: William Richter <richter@soramitsu.co.jp>
Signed-off-by: William Richter <richter@soramitsu.co.jp>
…lve ChainModel/ChainAsset/StakingType in generated mock signatures

Signed-off-by: William Richter <richter@soramitsu.co.jp>
…to fearless module not SSFModels

Signed-off-by: William Richter <richter@soramitsu.co.jp>
…ed mock references

Signed-off-by: William Richter <richter@soramitsu.co.jp>
…ous type lookups and Cuckoo mock conformance failures\n\n- Pin app module types via typealiases (MetaAccountModel, ChainRegistryProtocol, SchedulerProtocol, etc.)\n- Pin SSF models where appropriate (RuntimeMetadataItem)\n\nThis unblocks Jenkins PR build (#1297) by removing Swift ‘ambiguous for type lookup’ errors.

Signed-off-by: William Richter <richter@soramitsu.co.jp>
…alias to to match production protocols (RuntimeProviderFactoryProtocol/Pool). Fixes mismatch errors in Jenkins PR #1297.

Signed-off-by: William Richter <richter@soramitsu.co.jp>
…riceData\n\nExpose SSFModels types to tests via central alias files to resolve 'Cannot find type … in scope' errors during Jenkins build.

Signed-off-by: William Richter <richter@soramitsu.co.jp>
…out the relationship\n\n- Check entity.propertiesByName before KVC get/set to avoid NSUnknownKeyException when older/alternate models are loaded during tests.\n- Keeps behavior unchanged when relationship exists.\n\nStabilizes unit tests on CI that load differing Core Data models (SSFAcountManagmentStorage vs local).

Signed-off-by: William Richter <richter@soramitsu.co.jp>
…formables\n\n- Clean SubstrateDataModel v2–v8 and base model XML: drop customClassName on Transformable attributes (purchaseProviders, availableSources, forceSmartIds, availableAssets, assets).\n- Keeps NSSecureUnarchiveFromDataTransformer where present; no functional change.\n- Silences Core Data runtime warnings on CI.

Signed-off-by: William Richter <richter@soramitsu.co.jp>
…del\n\n- AccountExportPasswordTests: stub SheetAlertPresentable.present(viewModel:from:)\n- ControllerAccountTests: stub view.didReceive(feeViewModel:)\n\nFixes intermittent Cuckoo 'No stub for method' failures on CI.

Signed-off-by: William Richter <richter@soramitsu.co.jp>
@WRRicht3r WRRicht3r force-pushed the chore/ci-utils-roadmap-hardening branch from 3e72500 to 65b012c Compare November 7, 2025 12:54
- Podfile: inhibit SoraUI warnings; disable warnings-as-errors for Pods
- test-matrix: allow NO_XCPRETTY=1 for raw xcodebuild output

This should unblock hanging tests due to SoraUI PinView warning and provide clearer logs.

Signed-off-by: William Richter <richter@soramitsu.co.jp>
@WRRicht3r WRRicht3r force-pushed the chore/ci-utils-roadmap-hardening branch from 65b012c to 514c4e3 Compare November 7, 2025 12:58
Signed-off-by: William Richter <richter@soramitsu.co.jp>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants