Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
283 commits
Select commit Hold shift + click to select a range
b92f317
chore(ci): harden CI, gate private pods, and add roadmap items for fe…
WRRicht3r Sep 24, 2025
6ff0479
chore(signing): rollback to automatic signing for Dev/Debug/Release t…
WRRicht3r Sep 24, 2025
e11bf93
chore(ci): update CocoaPods and SPM lockfiles
WRRicht3r Sep 24, 2025
3282434
chore(pods): restore FearlessKeys in Podfile; defer lockfile update t…
WRRicht3r Sep 24, 2025
c21440a
fix(ci,signing): align Dev archive with Podfile + lane; run pods in CI
WRRicht3r Sep 24, 2025
aa8111f
ci: guard SPM resolve and pod install in Jenkins (post-checkout, tool…
WRRicht3r Sep 24, 2025
d46dbd4
fix(ci,signing): align Dev ad-hoc archive and run pods in CI docs: ad…
WRRicht3r Sep 25, 2025
3ca9293
docs(ci): document PR-vs-trusted keys strategy; PRs skip FearlessKeys…
WRRicht3r Sep 25, 2025
261d676
update Jenkinsfile
WRRicht3r Sep 25, 2025
5b8f55b
ci: avoid Groovy parse issues by using awk to disable FearlessKeys fo…
WRRicht3r Sep 25, 2025
50edc6c
still trying to make this work
WRRicht3r Sep 25, 2025
4610676
ci: checkout scm before pre-steps; run simulator build+tests for PRs
WRRicht3r Sep 25, 2025
e132023
ci: use generic simulator destination for PR build/tests
WRRicht3r Sep 25, 2025
e8c2b9a
ci: use generic/platform=iOS Simulator for PR build/tests
WRRicht3r Sep 25, 2025
6b6a9bb
ci: ensure Pods on PRs (fallback gem install), generic simulator dest…
WRRicht3r Sep 25, 2025
caf29c4
ci: require successful pod install on PRs; fallback gem install; gene…
WRRicht3r Sep 25, 2025
a206a8d
ci: call CocoaPods from Gem.user_dir; ensure pod install runs on PR a…
WRRicht3r Sep 25, 2025
27fb4fb
ci: set UTF-8 locale for CocoaPods; ensure pod install succeeds on PR…
WRRicht3r Sep 25, 2025
3330696
ci: PR build falls back to device build with signing disabled when si…
WRRicht3r Sep 25, 2025
196dd3a
ci: fetch Git LFS for SPM checkouts (MPQRCoreSDK) after resolve; keep…
WRRicht3r Sep 25, 2025
8da1073
ci: pull Git LFS binaries for SPM checkouts in workspace and DerivedD…
WRRicht3r Sep 25, 2025
b1c44b0
ci: pin SPM checkouts to workspace; git-lfs pull shared-features-spm;…
WRRicht3r Sep 25, 2025
7e405a0
ci: define SP_DIR in PR build shell; use clonedSourcePackagesDirPath …
WRRicht3r Sep 25, 2025
108a656
ci: simplify Jenkinsfile; use scripts/ci/bootstrap.sh for pods/SPM/LF…
WRRicht3r Sep 26, 2025
8a43187
ci: simplify PR build; use scripts/ci/bootstrap.sh + scripts/ci/run-p…
WRRicht3r Sep 26, 2025
c80a9f9
ci: centralize setup in scripts; verify MPQRCoreSDK via git-lfs; PRs …
WRRicht3r Sep 26, 2025
19e0f55
ci: rerun PR with git-lfs enabled on agents
WRRicht3r Sep 26, 2025
528481d
ci: pin shared-features-spm to revision with MPQRCoreSDK product; use…
WRRicht3r Sep 26, 2025
3b93a5e
ci(spm): set mirror to dedupe Web3.swift -> soramitsu/web3-swift befo…
WRRicht3r Sep 26, 2025
a0b294c
ci(spm): clear SPM state and set mirrors (web3.swift -> soramitsu/ we…
WRRicht3r Sep 26, 2025
399ffc1
ci(spm): pin Web3 to registry (bnsports/Web3.swift 7.7.9) to avoid du…
WRRicht3r Sep 26, 2025
4841161
ci: reapply IrohaCrypto modulemap hotfix after SPM resolve for PR + a…
WRRicht3r Sep 26, 2025
8aa78b8
ci: restore working Jenkinsfile structure; keep IrohaCrypto hotfix in…
WRRicht3r Sep 29, 2025
02dd2e7
ci: patch IrohaCrypto umbrella in workspace SourcePackages and reappl…
WRRicht3r Sep 29, 2025
9be7493
ci: hotfix IrohaCrypto umbrella in workspace SPM checkout; add debug …
WRRicht3r Sep 29, 2025
a87e54f
ci: broaden IrohaCrypto hotfix to patch workspace SourcePackages via …
WRRicht3r Sep 29, 2025
0ba1206
fix(spm): adapt Web3 private key init to Array(Data); ensure SSFModel…
WRRicht3r Sep 30, 2025
8e1efc4
chore(git): ignore SPM checkouts; untrack SourcePackages
WRRicht3r Sep 30, 2025
cae4453
fix(ci): invoke spm-shared-features-fixes.sh via bash across Jenkins/…
WRRicht3r Sep 30, 2025
741d120
fix(ci): invoke shared-features patch via bash; enforce simulator + n…
WRRicht3r Sep 30, 2025
a11dc23
fix(ci/pr): enforce simulator-only builds; add raw log tail + error g…
WRRicht3r Sep 30, 2025
d440a19
fix(ci/pr): fallback to grep when ripgrep not installed for error ext…
WRRicht3r Sep 30, 2025
eb1dd62
chore(runtime,lp): add Polkadot runtime compatibility helpers and ali…
WRRicht3r Oct 1, 2025
04c200d
feat(runtime): wire Asset Hub vesting hint into claim screen\n\n- App…
WRRicht3r Oct 1, 2025
f9ca537
feat(xcm): show origin preservation note on Asset Hub destinations\n\…
WRRicht3r Oct 1, 2025
c459329
feat(runtime): add vesting block-provider hint to Balance Locks detai…
WRRicht3r Oct 1, 2025
1f51052
chore(ci): inline compatibility shims into compiled files for Jenkins…
WRRicht3r Oct 1, 2025
799daa3
fix(ci): alias NetworkWorkerImpl to SSFNetwork.NetworkWorkerDefault\n…
WRRicht3r Oct 1, 2025
327653b
fix(ci): conform PriceData to Identifiable for CoreData mappers\n\n- …
WRRicht3r Oct 1, 2025
4fcbdd1
build: add FearlessUtilsCompat package and link product to app target…
WRRicht3r Oct 7, 2025
5620b2a
build: fix local SPM reference for FearlessUtilsCompat and harden tes…
WRRicht3r Oct 7, 2025
9e9c1d9
ci: wipe workspace before checkout to avoid stale git object graph ca…
WRRicht3r Oct 7, 2025
9e3aaf7
ci: use a concrete iOS Simulator (prefer iPhone 17) for build/test; a…
WRRicht3r Oct 7, 2025
88b80eb
test: apply shared-features-spm fixes and re-resolve SPM deps before …
WRRicht3r Oct 7, 2025
5e5959c
ci: fix Groovy parsing by removing regex escapes in simctl grep; use …
WRRicht3r Oct 7, 2025
1098198
build: reliably add RobinHood and BigInt to SSFModels deps (BSD-compa…
WRRicht3r Oct 7, 2025
1b5c7c4
ci: remove awk with backslash to satisfy Groovy parser; use cut+sed t…
WRRicht3r Oct 7, 2025
29e7f7e
ci/test: trim leading/trailing whitespace from detected simulator nam…
WRRicht3r Oct 7, 2025
eb8c2d2
deps: update SwiftPM Package.resolved after resolving workspace with …
WRRicht3r Oct 7, 2025
2fa98aa
fix(spm): declare shared-features-spm dependency and products for Fea…
WRRicht3r Oct 7, 2025
f4055a6
fix(spm): raise FearlessUtilsCompat platform to iOS 14 to match share…
WRRicht3r Oct 7, 2025
e0d407c
fix(build): add compatibility shims for SSFNetwork (NetworkWorkerImpl…
WRRicht3r Oct 7, 2025
0f71a6d
fix(coredata): make SSFModels.PriceData Identifiable via extension (i…
WRRicht3r Oct 7, 2025
34af97f
fix(compat): add AssetModel/ChainModel/XCM/ExternalApi compatibility …
WRRicht3r Oct 7, 2025
f6d9c7b
proj: add Compatibility group and include shims in target sources (Ne…
WRRicht3r Oct 7, 2025
0e53ec2
ci(spm): harden SSFModels dependency patching (sed + awk) and log pat…
WRRicht3r Oct 7, 2025
8622509
proj: include Common/Compatibility/LiquidityPoolsCompatibility.swift …
WRRicht3r Oct 7, 2025
88630dc
fix(compat): provide AssetModel.currencyId as optional; add poolId to…
WRRicht3r Oct 8, 2025
e4b27f1
fix(compat): expose AssetModel.staking/isNative and getPrice(for:) st…
WRRicht3r Oct 8, 2025
4d066d7
fix(liquidity-pools): align SSFPools/Polkaswap usage and unblock CI\n…
WRRicht3r Oct 8, 2025
dc9f7cf
fix: restore LP service symbols and add SSFModels compatibility\n\n- …
WRRicht3r Oct 8, 2025
856b0bb
fix(liquidity-pools): embed compatibility types in included file\n\n-…
WRRicht3r Oct 8, 2025
79918e9
chore(scripts): ensure BigInt package is added to shared-features-spm…
WRRicht3r Oct 8, 2025
4f5479d
chore(scripts): add SSFPolkaswap explicit deps (Reachability, SwiftyB…
WRRicht3r Oct 8, 2025
f5adcf5
fix(network): replace NetworkWorkerImpl uses with NetworkWorkerDefaul…
WRRicht3r Oct 9, 2025
f517e84
fix(compat): provide AssetModel.getPrice(for:) shim in app target\n\n…
WRRicht3r Oct 9, 2025
2dc9cc2
fix(polkaswap): remove optional binding for non-optional currencyId a…
WRRicht3r Oct 9, 2025
f0e51bf
fix(lp): expose RemoveLiquidityInfo init, add Polkaswap service helpe…
WRRicht3r Oct 9, 2025
55b0ca5
fix(staking): import SSFIndexers for GraphQLResponse type in SoraStak…
WRRicht3r Oct 9, 2025
b5515b0
fix(staking): remove SSFIndexers import; use existing GraphQLResponse…
WRRicht3r Oct 9, 2025
4e52ec2
fix(lp): add AccountPool.liquidityPair convenience in included file; …
WRRicht3r Oct 9, 2025
8b7d80f
fix(nft/identifiable): update ETH key init to Array(secretKey) and ma…
WRRicht3r Oct 9, 2025
c260f16
fix(account-stats): add CachedNetworkRequestTrigger.onAll and CachedN…
WRRicht3r Oct 9, 2025
8e9639e
fix(xcodeproj): remove dangling PBXGroup child UUID for Compatibility…
WRRicht3r Oct 10, 2025
92792cd
chore(pods): guard FearlessKeys behind INCLUDE_FEARLESS_KEYS to avoid…
WRRicht3r Oct 10, 2025
366740d
fix(keys): make FearlessKeys import optional with fallback API key st…
WRRicht3r Oct 10, 2025
c2ef7cb
fix(keys): make FearlessKeys import optional in BlockscoutHistoryOper…
WRRicht3r Oct 10, 2025
d218b10
fix(keys): guard FearlessKeys in BlockExplorerApiKey with canImport a…
WRRicht3r Oct 10, 2025
f84e50a
fix(keys): guard FearlessKeys import in WalletConnectService and prov…
WRRicht3r Oct 10, 2025
588f943
fix(keys): guard FearlessKeys import in EtherscanHistoryOperationFact…
WRRicht3r Oct 10, 2025
54c45b8
fix(keys): guard FearlessKeys import in NomisRequestSigner with empty…
WRRicht3r Oct 10, 2025
3d280c4
feat(build,deps): unify external deps via SPM aggregator, migrate com…
WRRicht3r Oct 10, 2025
4ddf14a
fix(build): revert Charts to CocoaPods to resolve Swift compile error…
WRRicht3r Oct 10, 2025
db5903f
fix(build): gate FearlessKeys imports and add shims so PR/local build…
WRRicht3r Oct 10, 2025
4707a05
fix(build): resolve WalletConnect redeclaration by renaming fallback …
WRRicht3r Oct 10, 2025
ac24d08
fix(build): make SSF AssetModel conform to Identifiable for repositor…
WRRicht3r Oct 10, 2025
a150dfd
fix(build): add Identifiable+Models.swift and FearlessKeysShim.swift …
WRRicht3r Oct 10, 2025
dff74ad
fix(pbxproj): correct PBXBuildFile terminators and use valid 24-hex f…
WRRicht3r Oct 10, 2025
273d2a9
fix(build): make WalletDetailsPresenter compactMap closure return opt…
WRRicht3r Oct 10, 2025
ac1a661
fix(walletconnect): convert Data to [UInt8] for EthereumPrivateKey (A…
WRRicht3r Oct 10, 2025
f509b8d
fix(walletconnect): pass Array(message) to EthereumPublicKey(message:…
WRRicht3r Oct 10, 2025
080670b
fix(build): update APIs for shared-features changes\n\n- history.type…
WRRicht3r Oct 10, 2025
81eb67a
fix(coredata): conform PriceData to RobinHood.Identifiable (identifie…
WRRicht3r Oct 10, 2025
494d358
fix(coredata): make AssetModel conform to RobinHood.Identifiable by e…
WRRicht3r Oct 13, 2025
787d58c
fix(liquidity-pools): avoid async getSubstrateConnection by casting t…
WRRicht3r Oct 13, 2025
67188be
fix(walletconnect): remove deprecated ExtrinsicBuilder.PayloadType an…
WRRicht3r Oct 13, 2025
9f4ddce
fix(keys): remove duplicate BlockExplorerApiKeys shims to resolve amb…
WRRicht3r Oct 13, 2025
8c5c0dc
fix(build): adapt to SSF API changes\n\n- NodeSelectionInteractor: ha…
WRRicht3r Oct 13, 2025
b6895e3
fix(polkaswap): currencyId is non-optional; adjust guard and bind swa…
WRRicht3r Oct 13, 2025
afa0e84
fix(xcm): add XcmMinAmountInspector shim for environments where SSFXC…
WRRicht3r Oct 13, 2025
2a3f9ad
fix(xcm): decouple from SSFXCM inspector symbol; introduce AppXcmMinA…
WRRicht3r Oct 13, 2025
cd9522b
fix(network): add generic GraphQLResponse<T> and GraphQLError to deco…
WRRicht3r Oct 13, 2025
6b92120
fix(pbxproj): add XcmMinAmountInspectorShim.swift to app target Sourc…
WRRicht3r Oct 13, 2025
bce4ca5
fix(compat): add AssetModel.purchaseProviders (nil) to compatibility …
WRRicht3r Oct 13, 2025
bb3fa59
fix(explorer): update BlockExplorerType.hasFilters to match current e…
WRRicht3r Oct 13, 2025
856cbbf
fix(ui): remove usage of deprecated AssetModel.purchaseProviders in C…
WRRicht3r Oct 13, 2025
4082589
fix(sort): disambiguate sorted(by:) closures for Swift 6 and update n…
WRRicht3r Oct 13, 2025
5d93133
fix(network): remove duplicate CachedNetworkRequestTrigger/Response f…
WRRicht3r Oct 13, 2025
3c0dfaf
fix(runtime): avoid internal RuntimeCoderFactory init by introducing …
WRRicht3r Oct 13, 2025
761b4bb
fix(network): expand CachedNetworkRequestTrigger to include .onAll fo…
WRRicht3r Oct 13, 2025
9d5c96a
refactor(stats): simplify AccountStatistics subscription API to strea…
WRRicht3r Oct 13, 2025
7aea24f
fix(pbxproj): add GraphQLResponse.swift to app target Sources so Subs…
WRRicht3r Oct 13, 2025
4c54793
fix(staking): remove optional binding for non-optional currencyId in …
WRRicht3r Oct 13, 2025
3165d0f
fix(staking): replace deprecated AssetModel.staking usage with tokenP…
WRRicht3r Oct 13, 2025
2c3bd2e
fix(nomis): call superclass designated RequestConfig initializer (no …
WRRicht3r Oct 13, 2025
057643a
fix(block-explorer): make ParachainHistoryOperationFactory exhaustive…
WRRicht3r Oct 13, 2025
dfcfe1d
fix(coredata): use local Core Data classes by removing SSFAccountMana…
WRRicht3r Oct 13, 2025
859cb66
fix(network): adapt to SSF APIs
WRRicht3r Oct 13, 2025
8a4beba
fix(coredata): restore SSFAccountManagmentStorage import for CDMetaAc…
WRRicht3r Oct 13, 2025
2fc3283
fix(build): ensure PriceData+Identifiable.swift is included in app ta…
WRRicht3r Oct 14, 2025
0a349ee
fix(project): correct file path for PriceData+Identifiable.swift to f…
WRRicht3r Oct 14, 2025
00dcbfc
fix(staking): use contains(where:) and tokenProperties.stacking in St…
WRRicht3r Oct 14, 2025
ae55044
fix(history): 'type' is non-optional; remove optional chaining when c…
WRRicht3r Oct 14, 2025
bb2f399
fix(chain-registry): remove dependency on SSFChainRegistry.ChainSyncS…
WRRicht3r Oct 14, 2025
9dfd90f
fix(runtime): call setupHot on concrete RuntimeProvider; fallback to …
WRRicht3r Oct 14, 2025
2ed449d
fix(staking): use addressPrefix: label with UInt16 when deriving cont…
WRRicht3r Oct 14, 2025
eff1d15
fix(walletconnect): avoid casting RawSpan to AnyObject in SignTypedDa…
WRRicht3r Oct 14, 2025
4a66c4f
fix(project): include ModelsCompatibility.swift in app target sources…
WRRicht3r Oct 14, 2025
ae18f95
fix(coredata): decouple MetaAccountMapper from CDAssetVisibility clas…
WRRicht3r Oct 14, 2025
e2df6ca
fix(project): correct file path for ModelsCompatibility.swift to fear…
WRRicht3r Oct 14, 2025
d52c234
fix(onboarding): use current SSFNetwork RequestConfig initializer (re…
WRRicht3r Oct 14, 2025
3996ea2
fix(liquidity-pools): disambiguate ChainModel.assets by using Array(c…
WRRicht3r Oct 14, 2025
06bfd3c
fix(liquidity-pools): disambiguate ChainModel.assets by using Array(c…
WRRicht3r Oct 14, 2025
40c59af
fix(liquidity-pools): disambiguate assets and fully qualify usageCase…
WRRicht3r Oct 14, 2025
88e5de4
fix(asset-selection): disambiguate ChainModel.assets by using Array(i…
WRRicht3r Oct 14, 2025
963910f
fix(wallet-details): return nil in compactMap closure instead of cast…
WRRicht3r Oct 14, 2025
ca6cf36
fix(keys): remove local fallback BlockExplorerApiKeys stubs to avoid …
WRRicht3r Oct 14, 2025
3a93f7e
fix(meta-account): adapt utilsModel mapping to SSFModels.MetaAccountM…
WRRicht3r Oct 14, 2025
a1da7da
fix(compat): remove duplicate ChainModel.assets from ModelsCompatibil…
WRRicht3r Oct 14, 2025
06d5a2b
fix(prices): pass a single matching PriceData (or nil) to AssetModel.…
WRRicht3r Oct 14, 2025
ca000ab
fix: avoid missing EthereumNodesApiKeysDebug when FearlessKeys is absent
WRRicht3r Oct 14, 2025
a734507
style: use implicit return in createPackageChainRegistry()
WRRicht3r Oct 14, 2025
b778630
fix: avoid Comparable requirement for LiquidityPair sort
WRRicht3r Oct 14, 2025
084b0b5
fix(build): restore PR/local builds without FearlessKeys and align wi…
WRRicht3r Oct 14, 2025
e4d295c
fix(build): restore PR/local builds and align with updated SSF APIs
WRRicht3r Oct 14, 2025
de4282c
fix: reintroduce ChainModel.replacing(_:) for assets
WRRicht3r Oct 14, 2025
475e9e6
fix: align AccountScoreViewModel with updated AccountStatisticsFetchi…
WRRicht3r Oct 14, 2025
c2a869f
fix: disambiguate ChainRegistry getRuntimeProvider in async context
WRRicht3r Oct 14, 2025
7b6e047
fix: remove deprecated checkAppId usage in SendPresenter
WRRicht3r Oct 14, 2025
d003b35
fix: remove Optional.or on currencyId in Equilibrium service
WRRicht3r Oct 14, 2025
11e4f6b
fix: align with updated BlockExplorerType and observer options
WRRicht3r Oct 14, 2025
646f23c
fix: make explorer action closure return optional for compactMap
WRRicht3r Oct 14, 2025
5955c31
fix: avoid missing ChainModel.replacing by mutating assets directly
WRRicht3r Oct 14, 2025
60b916a
fix: update WebSocketEngineDelegate signature and adjust visibility o…
WRRicht3r Oct 14, 2025
b943dd1
fix: adapt RLPBigInt to Swift 6 Data API
WRRicht3r Oct 14, 2025
f885c17
fix: add Data.bytes compatibility shim for Swift 6
WRRicht3r Oct 15, 2025
dff4273
fix: adapt WalletConnectPolkadorSigner to new ExtrinsicBuilder API
WRRicht3r Oct 15, 2025
e326bc2
fix: inline RuntimeCoderFactory to avoid missing AppRuntimeCoderFacto…
WRRicht3r Oct 15, 2025
3aabd0c
fix: remove fragile XcmError case match and unsupported chains in val…
WRRicht3r Oct 15, 2025
69ced30
fix: remove usage of AssetModel.priceData in sorting
WRRicht3r Oct 15, 2025
2445ac6
fix: remove .oklink case from explorer actions for compatibility
WRRicht3r Oct 15, 2025
8d2efa4
fix: disambiguate ChainRegistry sync APIs, adjust Ethereum key bytes,…
WRRicht3r Oct 15, 2025
1bce8fe
fix: match extension visibility with internal class
WRRicht3r Oct 15, 2025
b3570dd
fix: update AssetModelMapper for current models and Swift 6
WRRicht3r Oct 15, 2025
1c7bb6c
fix: unwrap optional APY values in AvailablePools interactor
WRRicht3r Oct 15, 2025
60891c0
fix: stop mutating ChainModel.assets in PricesService
WRRicht3r Oct 15, 2025
e71875c
chore(walletconnect): update to WalletConnectSwiftV2 1.20.3; patch sc…
WRRicht3r Oct 15, 2025
c5fc65f
Merge remote-tracking branch 'origin/chore/ci-utils-roadmap-hardening…
WRRicht3r Oct 15, 2025
b0088c7
chore(deps): align WalletConnect 1.20.x products and mapping
WRRicht3r Oct 16, 2025
7e8b3ce
fix(build): remove unused import Auth in CryptoProvider
WRRicht3r Oct 16, 2025
ea42eb3
fix(build): import WalletConnectSigner for CryptoProvider/EthereumSig…
WRRicht3r Oct 16, 2025
c20f8fb
fix(swift6): add explicit self in AssetManagementMigrator async closure
WRRicht3r Oct 16, 2025
bfd4634
fix(wc): use valid redirect scheme fearless:// in AppMetadata
WRRicht3r Oct 16, 2025
f8d2ad7
fix(wc): mark Redirect init as throwing with try! in AppMetadata factory
WRRicht3r Oct 16, 2025
d61ed84
fix(wc): make AutoNamespacesError description exhaustive with @unknow…
WRRicht3r Oct 16, 2025
f5ea005
fix(wc): pass groupIdentifier to Networking.configure; use throwing W…
WRRicht3r Oct 16, 2025
279ba47
fix(wc): adjust Networking.configure argument order; use Sign.instanc…
WRRicht3r Oct 16, 2025
f19ed43
chore(wc): prepare conditional migration to WalletKit while retaining…
WRRicht3r Oct 16, 2025
781a4d4
chore(wc): revert to non-throwing WalletConnectURI initializer to avo…
WRRicht3r Oct 16, 2025
e7f68a0
fix(wc): handle proposal rejection by disconnecting pairing for SDKs …
WRRicht3r Oct 16, 2025
232f929
feat(wc): add WalletKit SPM package and link to fearless target
WRRicht3r Oct 16, 2025
9262b1e
revert(wc): remove WalletKit SPM until correct Reown URL is confirmed…
WRRicht3r Oct 16, 2025
0dfd672
feat(wc): integrate Reown reown-swift SPM and link ReownWalletKit; pr…
WRRicht3r Oct 16, 2025
faed8c1
feat(wc): use Reown WalletKit client APIs when available; fallback to…
WRRicht3r Oct 16, 2025
e9d9f8e
feat(wc): remove WalletConnectSwiftV2 SPM; migrate FearlessDependenci…
WRRicht3r Oct 16, 2025
06816c5
fix(coredata): disable NSManagedObject class codegen in Substrate/Use…
WRRicht3r Oct 17, 2025
94bd0fb
fix(coredata): add aliases to SSFAssetManagmentStorage Core Data enti…
WRRicht3r Oct 17, 2025
dc65819
chore: commit latest Reown migration and Core Data fixes
WRRicht3r Oct 17, 2025
1089750
fix(coredata): import SSFAssetManagmentStorage in ChainAssetList and …
WRRicht3r Oct 17, 2025
dd407ca
fix(coredata): import SSFAssetManagmentStorage in SubstrateRepository…
WRRicht3r Oct 17, 2025
850b247
fix(coredata): import SSFAssetManagmentStorage in ChainModelMapper an…
WRRicht3r Oct 17, 2025
1c06807
fix: resolve Core Data entity mismatches for ChainStorageItem and Pol…
WRRicht3r Oct 17, 2025
da04e24
fix: reference SSFAssetManagmentStorage types in PolkaswapSettingMapper
WRRicht3r Oct 17, 2025
c60c3c6
fix: qualify CDPriceData in PriceDataMapper to storage module
WRRicht3r Oct 17, 2025
1c76856
fix: restore CDContact by qualifying to SSFAssetManagmentStorage
WRRicht3r Oct 17, 2025
6b8f5ec
fix: revert PriceDataMapper to use CDPriceData alias
WRRicht3r Oct 17, 2025
53b5471
fix: attach CoreDataCodable conformance to storage module type
WRRicht3r Oct 17, 2025
f422fa3
fix: qualify CDChain and CDChainNode in AddCustomNode factory
WRRicht3r Oct 17, 2025
19a3044
fix: decouple PriceDataMapper from CDPriceData symbol
WRRicht3r Oct 17, 2025
3dc305c
fix: qualify CDContactItem extension to storage module
WRRicht3r Oct 17, 2025
2a0ed2b
fix: qualify remaining Core Data symbols and extensions
WRRicht3r Oct 17, 2025
0b8707c
fix: remove duplicate CDRuntimeMetadataItem conformance and revert CD…
WRRicht3r Oct 17, 2025
e7b07ff
fix: remove CDRuntimeMetadataItem file from Xcode project
WRRicht3r Oct 17, 2025
637f8a6
fix: clean pbxproj array entry left as a comment
WRRicht3r Oct 17, 2025
7209f53
fix: make AssetModelMapper resilient to missing priceData entity
WRRicht3r Oct 17, 2025
2119c40
fix: remove CDPriceData dependency in ChainModelMapper
WRRicht3r Oct 17, 2025
2ddb786
fix: qualify CDContact in ContactsAssembly
WRRicht3r Oct 17, 2025
d83f49f
fix: use module-qualified CDChain in sort descriptor
WRRicht3r Oct 17, 2025
3f5a9d4
fix: qualify Core Data key paths in NSPredicate helpers
WRRicht3r Oct 17, 2025
60b0a90
fix: align PriceData initializers to expect String price
WRRicht3r Oct 17, 2025
80e6860
fix: avoid module-qualified #keyPath in PolkaswapSettingMapper
WRRicht3r Oct 20, 2025
fc15882
fix: qualify CDPhishingItem in GitHubPhishingServiceFactory
WRRicht3r Oct 20, 2025
446afa7
fix: remove accesses to missing CDChain fields (paraId, identityChain…
WRRicht3r Oct 20, 2025
3ea113d
fix: avoid module-qualified #keyPath in sort descriptor
WRRicht3r Oct 20, 2025
42c471d
fix: qualify CDRuntimeMetadataItem in ServiceCoordinator
WRRicht3r Oct 20, 2025
361d1df
fix: avoid module-qualified #keyPath in ContactsAssembly
WRRicht3r Oct 20, 2025
7abb7d0
fix: replace module-qualified #keyPath with string keys in NSPredicat…
WRRicht3r Oct 20, 2025
46d792f
fix: qualify CDRuntimeMetadataItem in CrossChainAssembly
WRRicht3r Oct 20, 2025
12475bf
fix: disable Core Data class generation for duplicate entities
WRRicht3r Oct 20, 2025
21213dd
fix: qualify CDScamInfo in ScamSyncServiceFactory and avoid module #k…
WRRicht3r Oct 20, 2025
9946db1
fix: qualify CDScamInfo in NftSendAssembly and avoid module #keyPath
WRRicht3r Oct 20, 2025
caeb736
fix: qualify CDTransactionHistoryItem in WalletTransactionHistoryView…
WRRicht3r Oct 20, 2025
560023a
fix: qualify CDScamInfo and CDRuntimeMetadataItem in SendAssembly
WRRicht3r Oct 20, 2025
bbfb2de
fix: attach CoreDataCodable to storage module's CDScamInfo
WRRicht3r Oct 20, 2025
a214ba0
fix: qualify CDTransactionHistoryItem usage and conformance
WRRicht3r Oct 20, 2025
4860ecb
fix: qualify CDTransactionHistoryItem in WalletTransactionHistoryDepe…
WRRicht3r Oct 20, 2025
7267cb2
fix: add alias for CDTransactionHistoryItem and use it in ContactsAss…
WRRicht3r Oct 20, 2025
d9920bd
fix: use module-qualified CDTransactionHistoryItem in ContactsAssembly
WRRicht3r Oct 20, 2025
771f1ea
fix: re-enable local CDTransactionHistoryItem and qualify CDStashItem…
WRRicht3r Oct 20, 2025
c943d0b
fix: remove CDStashItem keyPath usage in NSPredicate helpers
WRRicht3r Oct 20, 2025
9d1cb0f
test: align generators and integration tests with SSFModels
WRRicht3r Oct 20, 2025
f71e31f
fix(tests): correct EraCountdownOperationFactoryTests variable order …
WRRicht3r Oct 20, 2025
a9e23ac
test: fix integration/unit helpers for updated APIs\n\n- Disambiguate…
WRRicht3r Oct 20, 2025
c720086
ci: relax Cuckoo generator script failure to non-fatal\n\nAppend '|| …
WRRicht3r Oct 20, 2025
76e3a70
test: fix StakingInfoTests for updated APIs and disambiguation\n\n- Q…
WRRicht3r Oct 20, 2025
5e19157
test: align AccountCreationHelper to fearless.MetaAccountModel for Se…
WRRicht3r Oct 20, 2025
4804b4f
test: disambiguate MetaAccountModel with fearless namespace in Accoun…
WRRicht3r Oct 20, 2025
63f6947
test: add local typealias for fearless.MetaAccountModel to avoid ambi…
WRRicht3r Oct 20, 2025
d0ac68f
test: shadow MetaAccountModel to fearless.MetaAccountModel in Account…
WRRicht3r Oct 20, 2025
9c585d5
test: avoid MetaAccountModel naming collision in helper by accepting …
WRRicht3r Oct 20, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions .githooks/prepare-commit-msg
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
#!/usr/bin/env bash
set -euo pipefail
MSG_FILE="$1"
# If commit is a merge or has a message already, still ensure signoff trailer exists.
# Append Signed-off-by if missing.
if ! grep -qi '^Signed-off-by:' "$MSG_FILE"; then
NAME_EMAIL="$(git config user.name) <$(git config user.email)>"
printf '\nSigned-off-by: %s\n' "$NAME_EMAIL" >> "$MSG_FILE"
fi
11 changes: 11 additions & 0 deletions .github/workflows/codecov.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,17 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@v1

- name: Configure GitHub auth for private pods (optional)
env:
GH_READ_TOKEN: ${{ secrets.GH_READ_TOKEN }}
run: |
if [ -n "$GH_READ_TOKEN" ]; then
echo "Using GH_READ_TOKEN for authenticated access to soramitsu/*"
git config --global url."https://${GH_READ_TOKEN}:[email protected]/soramitsu/".insteadOf "https://github.com/soramitsu/"
else
echo "GH_READ_TOKEN not set; proceeding without GitHub auth"
fi

- name: Install Dependencies & Test
run: |
Expand Down
8 changes: 8 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -59,3 +59,11 @@ Tests/Mocks/ModuleMocks.swift
Templates/
# Misc
**/.DS_Store

# Swift Package Manager
SourcePackages/
.swiftpm/
.build/

# Ignore project-level SPM resolved file; use workspace-level only
fearless.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved
168 changes: 168 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,168 @@
# Repository Guidelines

<!-- wallet-context:start -->
> About this codebase
> This repository contains the codebase for a cryptocurrency wallet compatible with the Polkadot ecosystem (and related networks).
> It uses dependencies available in the iOS ecosystem (e.g., SoraFoundation, SoraKeystore, FearlessKeys) and has an Android counterpart in soramitsu/fearless-Android.
<!-- wallet-context:end -->

## Project Structure & Modules
- `fearless/`: App sources, split by features/modules.
- `fearlessTests/`, `fearlessIntegrationTests/`: Unit/integration tests.
- `fearless.xcworkspace`, `fearless.xcodeproj`: Xcode workspace/project files.
- `Pods/`, `Podfile`, `Podfile.lock`: CocoaPods dependencies.
- `Jenkinsfile`: CI pipeline configuration.
- Config files: `.swiftlint.yml`, `.swiftformat`, `.periphery.yml`.

## Build, Test, and Dev Commands
- Install dependencies: `pod install`
- Build (Debug, simulator):
- `xcodebuild -workspace fearless.xcworkspace -scheme fearless -configuration Debug -destination 'platform=iOS Simulator,OS=latest,name=iPhone 15' build`
- Run unit tests (on simulator):
- `xcodebuild -workspace fearless.xcworkspace -scheme fearless -destination 'platform=iOS Simulator,OS=latest,name=iPhone 15' test`
- Lint/format:
- `swiftlint` (uses `.swiftlint.yml`)
- `swiftformat .` (uses `.swiftformat`)
- CI matrix: `bash scripts/test-matrix.sh` runs tests for Debug and Release

Example destinations
- iPhone 15: `-destination 'platform=iOS Simulator,OS=latest,name=iPhone 15'`
- iPhone 14 Pro: `-destination 'platform=iOS Simulator,OS=latest,name=iPhone 14 Pro'`
- iPad Pro (11-inch) 4th gen: `-destination 'platform=iOS Simulator,OS=latest,name=iPad Pro (11-inch) (4th generation)'`

Tip: list available destinations with `xcodebuild -showsdks` and `xcrun simctl list devices`.

CI note
- Jenkins is configured to run tests on each build. For deterministic local parity, use `scripts/test-matrix.sh` before opening a PR.

## Coding Style & Naming
- Language: Swift; follow Swift API design guidelines.
- Formatting: SwiftFormat; linting with SwiftLint.
- Files: one main type per file; names in PascalCase; avoid long files.
- Packages/Modules: keep dependencies explicit; prefer dependency injection to singletons.
- Avoid force‑unwraps; handle errors explicitly with clear user messaging.

## Testing Guidelines
- Framework: XCTest; tests live in `fearlessTests/` and `fearlessIntegrationTests/`.
- Naming: mirror the class under test, e.g., `AccountRepositoryTests.swift`; test methods `testX_whenY_thenZ`.
- Coverage: maintain/raise coverage for changed code.
- New code policy: whenever you add a function, add at least one unit test covering it.

## Commit & Pull Requests
- Commits: concise, imperative subjects; reference issues (`#123`). Conventional Commit prefixes (`feat:`, `fix:`, `refactor:`) encouraged.
- Before PR: ensure build + tests pass locally; `swiftlint`/`swiftformat` are clean.
- PR checklist: clear description, linked issue, screenshots/video for UI, steps to test, risk/rollback notes.
- CI must be green (Jenkins or equivalent).

## Security & Configuration
- Never commit secrets or private keys. Use Keychain/secure storage at runtime; use CI secrets for pipelines.
- Do not alter seed handling, signing, or cryptography without maintainer approval.
- Runtime registries and chain/type sources must be aligned with the current Polkadot SDK release; coordinate updates with maintainers.
- Use `*.xcconfig` and environment variables for private values; avoid hardcoding secrets in `Info.plist`.

## Dependencies & Versioning
- Prefer conservative upgrades (patch/minor). Pin major bumps to separate PRs with clear testing notes.
- Summarize upstream changes (link release notes) and provide a rollback plan.
- If aligning to a Polkadot SDK release, ensure iOS utils/runtime dependencies are pinned accordingly (e.g., fearless-utils‑ios or equivalent).

## Preferred Tasks for Agents
- Keep build green: fix warnings, flaky tests, and broken CI when root cause is clear.
- Code hygiene: remove dead code; improve naming; tighten access control.
- Tooling: enforce SwiftLint/SwiftFormat; update configs when safe.
- Tests: add missing unit tests around changed code; stabilize integration tests.
- Docs: keep README/ROADMAP/this guide accurate; small updates are welcome.

## Out of Scope (without prior approval)
- Feature/UI/UX changes.
- Protocol, staking, or on‑chain logic changes.
- Wallet/account management, seeds, encryption, or secure storage changes.
- Adding telemetry/analytics.

## Communication & Escalation
- Use GitHub issues/PRs for decisions and traceability.
- See `CONTRIBUTING.md` for community channels and expectations.
- When in doubt, open an issue and wait for maintainer guidance.

## Sources of Truth
- Roadmap (Aha!): https://soramitsucoltd.aha.io/shared/97bc3006ee3c1baa0598863615cf8d14
- Dev status board: https://soramitsucoltd.aha.io/shared/343e5db57d53398e3f26d0048158c4a2
- Issues: https://github.com/soramitsu/fearless-iOS/issues
- Contributing: ./CONTRIBUTING.md
- Roadmap (repo): ./ROADMAP.md

---

By following these guidelines, agents help keep Fearless Wallet iOS healthy, predictable, and aligned with the published roadmap while minimizing risk to users.

## Build & Archive — End‑to‑End Checklist

The project mixes CocoaPods and Swift Package Manager. Follow these steps in order.

1) Prerequisites (local dev)
- Xcode 15.4+ (Xcode 18 SDK supported; CI pins 15.x when available for SPM/IrohaCrypto stability)
- CocoaPods: `brew install cocoapods` (or `gem install cocoapods`)
- SwiftFormat, SwiftLint (optional for local): `brew install swiftformat swiftlint`

2) Install Pods (always open the workspace)
- From repo root: `pod install`
- Open: `open fearless.xcworkspace`

3) Resolve SPM packages
- CLI: `xcodebuild -resolvePackageDependencies -workspace fearless.xcworkspace -scheme fearless`
- Xcode GUI: File → Packages → Reset Package Caches → Resolve Package Versions (if needed)

4) Build & test on Simulator (no signing)
- Build: `xcodebuild -workspace fearless.xcworkspace -scheme fearless -configuration Debug -destination 'platform=iOS Simulator,OS=latest,name=iPhone 15' build`
- Tests: `bash scripts/test-matrix.sh` (runs Debug + Release simulator tests)

5) Archive (two options)
- Development archive (local testing without Distribution certs):
- In Xcode target ‘fearless’ → Signing & Capabilities (Dev config): set Automatic + Apple Development + your team/profile.
- Then: `xcodebuild -workspace fearless.xcworkspace -scheme fearless -configuration Dev -destination 'generic/platform=iOS' -archivePath "$PWD/build/fearless.xcarchive" clean archive`
- Ad‑hoc archive (CI/Release parity):
- Requirements on the machine: Apple Distribution certificate for team `YLWWUD25VZ` + ad‑hoc profile `fearlesswallet-dev-adhoc` installed.
- Project Dev config must be Manual + Apple Distribution + `jp.co.soramitsu.fearlesswallet.dev` + `PROVISIONING_PROFILE_SPECIFIER=fearlesswallet-dev-adhoc`.

6) Private pods (FearlessKeys)
- The pod `FearlessKeys` is private. To allow `pod install` on CI/local without prompting:
- Provide a GitHub Personal Access Token with repo read access (recommended env var: `GH_PAT_READ`).
- Preconfigure git on the agent: `git config --global url."https://${GH_PAT_READ}@github.com/".insteadOf "https://github.com/"`
- Alternatively, write a `~/.netrc` with GitHub credentials (read‑only).

7) IrohaCrypto + SPM stability (Xcode 16/18)
- The SPM package `shared-features-spm` must be pinned to a revision that works with Xcode 16/18 (`6d6cb16…`).
- A hotfix exists at `scripts/spm-iroha-hotfix.sh` that patches `IrohaCrypto` module map if stale DerivedData causes umbrella header errors; `scripts/test-matrix.sh` will invoke it for tests.

8) Web3 duplication
- The project uses `soramitsu/[email protected]`. Do not add another Web3 source; duplicate packages will cause resolver failure.

## CI Build Requirements (Jenkins)

- CocoaPods available on agents (or handled in a shared pipeline step). If Pods are installed elsewhere, our Jenkinsfile guards will skip `pod install` gracefully.
- Environment variables:
- `GH_PAT_READ` (optional): GitHub PAT for private pods (`FearlessKeys`).
- `DEVELOPER_DIR` (optional): Jenkinsfile auto‑pins to Xcode 15.x if present for SPM stability; otherwise default Xcode is used.
- Private keys in PRs:
- PR builds do NOT require private keys. The Jenkinsfile detects PR context (`CHANGE_ID`) and temporarily comments out the `pod 'FearlessKeys'` line before `pod install`, then restores the file. This prevents private repo access and allows PRs to build without secrets.
- Trusted branches (develop/master/release): Jenkins sets `INCLUDE_FEARLESS_KEYS=1` and, if `GH_PAT_READ` is present, rewrites GitHub URLs to use the token so `pod install` can fetch `FearlessKeys`.
- Steps performed before archive:
- Clean SPM caches; resolve packages if the workspace exists.
- Configure GitHub token (if provided) and run `pod install --repo-update` when `pod` is available.
- Patch IrohaCrypto module map if needed (hotfix function inside Jenkinsfile).
- Fastlane lane archives Dev as Ad‑hoc with mapping:
- `jp.co.soramitsu.fearlesswallet.dev` → `fearlesswallet-dev-adhoc`
- Ensure the Apple Distribution cert for `YLWWUD25VZ` is installed on the CI keychain.

## Common Build Failures & Fixes

- “No profile … matching ‘fearlesswallet-dev-adhoc’”: install the ad‑hoc profile (and Distribution certificate) on the machine, or switch PR builds to Development signing.
- “Missing package product ‘MPQRCoreSDK’”: resolve SPM; reset SPM caches; ensure network access for binary targets.
- “umbrella header … IrohaCrypto-umbrella.h not found”: use the pinned `shared-features-spm` revision and/or run the hotfix (`scripts/spm-iroha-hotfix.sh`).
- “multiple similar targets ‘Web3’ …”: dedupe to `soramitsu/[email protected]` only.
- “pod install” fails cloning FearlessKeys: supply `GH_PAT_READ` or gate that pod in CI.

## Troubleshooting Raw Archive Output

- To bypass xcpretty and see the actual error:
- `set -o pipefail; xcodebuild -workspace fearless.xcworkspace -scheme fearless -configuration Dev -destination 'generic/platform=iOS' -archivePath "$PWD/build/fearless.xcarchive" clean archive | tee build/archive.raw.log`
- Then: `tail -n 300 build/archive.raw.log`
Loading
Loading