Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
664 commits
Select commit Hold shift + click to select a range
a88c2b0
ci: add Codecov export/upload and Jenkins stage; store .xcresult bund…
WRRicht3r Nov 6, 2025
59e04d5
ci(simulator): let test-matrix pick concrete simulator via UDID; defa…
WRRicht3r Nov 6, 2025
9fb50bd
ci: mark test-matrix.sh and coverage scripts executable for Jenkins
WRRicht3r Nov 6, 2025
6cad79d
test(mocks): add SSFModels typealiases locally in CommonMocks to reso…
WRRicht3r Nov 6, 2025
b2fb7fc
test(mocks): correct typealiases — ChainFormat, AccountId should map …
WRRicht3r Nov 6, 2025
2cba6a4
test(mocks): add AssetModel alias to SSFModels.AssetModel for generat…
WRRicht3r Nov 7, 2025
d0850fd
fix(tests): disambiguate common types in test mocks to resolve ambigu…
WRRicht3r Nov 7, 2025
94d7804
test: align RuntimeMetadataItem alias to app type\n\nSwitch test type…
WRRicht3r Nov 7, 2025
af09492
test: add SSF typealiases for CryptoType, ChainNodeModel, Currency, P…
WRRicht3r Nov 7, 2025
1de210b
fix(coredata): guard assetsVisibility KVC against model versions with…
WRRicht3r Nov 7, 2025
ce458b9
chore(coredata): remove invalid customClassName="[String]" from trans…
WRRicht3r Nov 7, 2025
765e87b
test: add missing Cuckoo stubs for alert presentation and fee view mo…
WRRicht3r Nov 7, 2025
514c4e3
ci: suppress SoraUI warnings and improve test logs
WRRicht3r Nov 7, 2025
064a83c
ci: trigger Jenkins build
WRRicht3r Nov 7, 2025
c6d0aca
test: revert unit/integration tests to latest working versions from d…
WRRicht3r Nov 10, 2025
846cf78
test: align helpers with current models and Swift 6
WRRicht3r Nov 10, 2025
3dd3440
ci: publish GitHub status for Jenkins test stage
WRRicht3r Nov 10, 2025
a19f4e9
ci: revert Codecov integration and restore previous Jenkins pipeline
WRRicht3r Nov 10, 2025
8fd244a
ci: publish Jenkins GitHub status for Unit Tests stage
WRRicht3r Nov 10, 2025
f4735f8
test: fix helpers for current model types
WRRicht3r Nov 10, 2025
95c5aae
test: revert to working versions from develop
WRRicht3r Nov 10, 2025
8aa2d05
ci(test): pick simulator UDID to avoid duplicate destination warning
WRRicht3r Nov 10, 2025
2a85d41
ci: publish classic Jenkins context for branch protection
WRRicht3r Nov 10, 2025
7d0dd71
test: align helper types with current SSFModels and fix storage facade
WRRicht3r Nov 10, 2025
afb7212
test: import SSFModels and disambiguate queue/manager in integration …
WRRicht3r Nov 10, 2025
928ab06
fix(ci,test): Jenkins status fallback and tolerant chain sync
WRRicht3r Nov 10, 2025
a95161e
fix(tests): adapt to MetaAccount API changes and import SSFModels for…
WRRicht3r Nov 10, 2025
e0d1174
test(fixes): resolve ambiguities and API drift in integration tests\n…
WRRicht3r Nov 10, 2025
00b633e
test(fixes): remove ambiguous OperationManagerFacade.sharedManager fr…
WRRicht3r Nov 10, 2025
2559dff
test(fixes): align ChainModel/AssetModel generators and parachain col…
WRRicht3r Nov 10, 2025
32bc2dc
test(fixes): import SSFModels for Chain constants and pass chainRegis…
WRRicht3r Nov 10, 2025
87feb28
test(fixes): import RobinHood/SSFRuntimeCodingService and qualify amb…
WRRicht3r Nov 10, 2025
a67f560
test(fixes): remove hard dependency on CommonWallet in tests\n\n- Rep…
WRRicht3r Nov 10, 2025
a2573ef
test(fixes): conform mocks to updated protocols and add missing imports
WRRicht3r Nov 10, 2025
75e94ae
test(fixes): commit pending test fixes for CI\n\n- Add SSFCrypto to m…
WRRicht3r Nov 10, 2025
f3431c2
test(fixes): adjust mocks and tests for API changes\n\n- Make MockCon…
WRRicht3r Nov 10, 2025
40b3cb9
test(fixes): add missing defaultChainId in AccountConfirmTests request
WRRicht3r Nov 11, 2025
3e58153
test(fixes): patch ExportMnemonicTests for defaultChainId and isBacku…
WRRicht3r Nov 11, 2025
faf6b0d
test(fixes): add SSFModels imports to stubs; skip legacy/removed modu…
WRRicht3r Nov 11, 2025
f799c86
test(fixes): add 'elected' argument to ElectedValidatorInfo in tests;…
WRRicht3r Nov 11, 2025
0c81a73
test: fix ambiguous models, staking enums, and JSONRPCEngine mock con…
WRRicht3r Nov 11, 2025
0a26a05
ci: enforce shared-features-spm pin and apply SSF hotfixes earlier fo…
WRRicht3r Nov 11, 2025
f9b8fb3
docs(ci): document SSF stability, pin enforcement, and test fixes\n\n…
WRRicht3r Nov 11, 2025
307e428
tests: regenerate Cuckoo mocks on CI by unsetting CI env during test …
WRRicht3r Nov 11, 2025
720d058
ci(tests): make Cuckoo mock phases non-fatal; ensure success exit\n\n…
WRRicht3r Nov 11, 2025
de3f15d
ci(tests): ensure Modules Mock phase exits successfully (append true)
WRRicht3r Nov 11, 2025
d316c16
tests: fix ambiguous types and API drift in unit/integration tests\n\…
WRRicht3r Nov 11, 2025
f47d333
fix: repair project.pbxproj structure by removing stray PBX entries a…
WRRicht3r Nov 11, 2025
bc2b0f4
ci(tests): always generate Cuckoo mocks in Xcode build phases (remove…
WRRicht3r Nov 11, 2025
cb31aa8
test: fix Cuckoo stubs and runtime shims; adjust PriceData initialize…
WRRicht3r Nov 11, 2025
e6d1f69
test: fix remaining signatures and missing imports in tests\n\n- Type…
WRRicht3r Nov 11, 2025
69275c8
test: fix more protocol/type mismatches in tests\n\n- Qualify SSF Cha…
WRRicht3r Nov 11, 2025
478f1b9
test: fix missing SSFUtils import and Scheduler coercion\n\n- Import …
WRRicht3r Nov 11, 2025
908c4e3
test: fix JSONRPCEngine mock and ControllerAccount test typings\n\n- …
WRRicht3r Nov 11, 2025
f48dbb0
test: fix storagePath ambiguity and CoreData aliases in stubs\n\n- Us…
WRRicht3r Nov 11, 2025
eddb1ec
test: import SoraFoundation for InputViewModelProtocol; remove legacy…
WRRicht3r Nov 11, 2025
c878451
test: disambiguate SNAddressType and explicit Result types; type Cuck…
WRRicht3r Nov 11, 2025
e0089d3
test: skip placeholder tests; enforce FearlessKeys gating + SSF fixes…
WRRicht3r Nov 12, 2025
ad806cf
test: add Cuckoo when(stub) compatibility shim for legacy DSL
WRRicht3r Nov 12, 2025
2752649
ci: use actions/checkout@v4 in codecov workflow to fix runner parsing…
WRRicht3r Nov 12, 2025
b6b3d33
test: fix Cuckoo DSL compile + add RuntimeProvider test double
WRRicht3r Nov 12, 2025
43bfa01
test: add RuntimeProvider test double alias in CommonMocks; complete …
WRRicht3r Nov 12, 2025
1ac6770
test: use SSF MocksBasket JSONRPCEngineMock; qualify SNAddressType to…
WRRicht3r Nov 12, 2025
3f850da
test: replace MocksBasket import with local JSONRPCEngine test double…
WRRicht3r Nov 12, 2025
ca268a6
test: refine JSONRPCEngine test double (read-only pendingEngineReques…
WRRicht3r Nov 12, 2025
926c865
test: remove CoreData types from WalletLocalSubscriptionFactoryStub v…
WRRicht3r Nov 12, 2025
f99af93
fix(tests): align stubs with RuntimeDispatchInfo(feeValue:) initializ…
WRRicht3r Nov 12, 2025
5c7220c
test: fix stubs
WRRicht3r Nov 12, 2025
befc2a0
test(ControllerAccount): adapt Cuckoo DSL to Swift 6 style and add mi…
WRRicht3r Nov 12, 2025
dec39b2
test: fix Cuckoo DSL in multiple tests, add defaultSource for Account…
WRRicht3r Nov 12, 2025
b3c1fee
feat(runtime): add PolkadotRuntimeCompatibility.isTrustedAliaser and …
WRRicht3r Nov 12, 2025
72d348c
chore(tests): re-add SchedulerProtocol disambiguation alias; minor st…
WRRicht3r Nov 12, 2025
3af4d22
test: fix Cuckoo DSL call-sites; refactor RuntimePoolTests to use con…
WRRicht3r Nov 12, 2025
6b96588
test(RuntimePool): disambiguate RuntimeProviderError and RuntimeCoder…
WRRicht3r Nov 12, 2025
80c6f4c
test: fix Cuckoo DSL in AnalyticsRewardDetails; correct ChainAsset cr…
WRRicht3r Nov 12, 2025
737f17f
test: disambiguate types in CommonMocks to fearless.*; fix EraValidat…
WRRicht3r Nov 12, 2025
c194984
test(mocks): remove duplicate typealiases; alias ambiguous protocols/…
WRRicht3r Nov 12, 2025
039dd5f
test(mocks): remove duplicate typealiases and conflicting SSF module …
WRRicht3r Nov 12, 2025
355d01f
fix: disambiguate mocks for SSF types
WRRicht3r Nov 12, 2025
82f7c6f
chore: strip duplicate mock aliases automatically
WRRicht3r Nov 12, 2025
ac28765
fix: qualify runtime provider test doubles
WRRicht3r Nov 12, 2025
543be53
fix: reference SSF runtime provider types
WRRicht3r Nov 13, 2025
4efa5e0
chore: auto patch generated mocks
WRRicht3r Nov 13, 2025
6f051b4
fix: qualify additional mock symbols
WRRicht3r Nov 13, 2025
edd7603
fix: map Cuckoo models to SSF types
WRRicht3r Nov 13, 2025
9903c3f
fix: ensure mocks import SSF models
WRRicht3r Nov 13, 2025
88850f8
fix: import SSF runtime types in mocks
WRRicht3r Nov 13, 2025
cb2d075
fix: align runtime metadata mocks
WRRicht3r Nov 13, 2025
007a9de
fix: qualify chain account info in mocks
WRRicht3r Nov 13, 2025
d34c05f
fix: align tests and mocks with develop
WRRicht3r Nov 13, 2025
0ac3449
chore: fix simulator autodetect awk
WRRicht3r Nov 13, 2025
ea7a033
fix: regenerate mocks with latest cuckoo
WRRicht3r Nov 13, 2025
f894713
refactor: modernize window handling and registry deps
WRRicht3r Nov 13, 2025
802fad6
fix: restore test mocks
WRRicht3r Nov 14, 2025
805216e
test: fix JSONRPC mock generics
WRRicht3r Nov 14, 2025
2741785
test: use local runtime version engine stub
WRRicht3r Nov 14, 2025
71bd60d
test: enhance mock connection subscriptions
WRRicht3r Nov 14, 2025
013b3d8
test: alias CryptoType for tests
WRRicht3r Nov 14, 2025
120c29c
test: include alias helper in target
WRRicht3r Nov 14, 2025
c4e92a5
Revert "test: include alias helper in target"
WRRicht3r Nov 14, 2025
6fe65f0
test: reference CryptoType from FearlessUtils
WRRicht3r Nov 14, 2025
6702aef
test: re-add alias helper to bundle
WRRicht3r Nov 14, 2025
98f436f
fix: tolerate missing properties in chain sync
WRRicht3r Nov 14, 2025
29fa822
chore: trigger CI
WRRicht3r Nov 17, 2025
63c1ce9
chore: retrigger CI
WRRicht3r Nov 18, 2025
2f15b85
feat: integrate Coinbase buy provider
WRRicht3r Mar 17, 2026
a77fd49
chore: prepare ton sdk dependencies
WRRicht3r Mar 17, 2026
4bc2774
chore: adopt new chain ecosystem api
WRRicht3r Mar 17, 2026
7c3eda9
feat: add ton balance support infrastructure
WRRicht3r Mar 17, 2026
8934f49
chore: align deps with polkadot stable2503
WRRicht3r Mar 17, 2026
bad8169
chore: stabilize mirrors and docs
WRRicht3r Mar 17, 2026
c4ab43f
chore: add chain registry audit script
WRRicht3r Mar 17, 2026
be49957
chore: add private pod bootstrap helper
WRRicht3r Mar 17, 2026
060689f
chore: run private pod setup helper
WRRicht3r Mar 17, 2026
326e949
chore: ignore local private env
WRRicht3r Mar 17, 2026
6c9bfa4
fix: update compatibility for latest SSF APIs
WRRicht3r Mar 19, 2026
1911af0
docs: refresh registry snapshot
WRRicht3r Mar 19, 2026
452b7b8
fix: adopt new SSF chain account APIs and compatibility shims
WRRicht3r Mar 20, 2026
7d06b0e
fix: align chain account compat and ton injector fallback
WRRicht3r Mar 20, 2026
988e428
fix: restore fearless iOS build against current SSF APIs
WRRicht3r Mar 25, 2026
8a60224
chore: stabilize build and cleanup foundation
WRRicht3r Apr 2, 2026
5b9141a
fix: complete compatibility recovery and restore simulator build
WRRicht3r Apr 19, 2026
a14f307
test: add regression coverage for compatibility seams
WRRicht3r Apr 19, 2026
51bb189
fix(ci): gate simulator arch exclusion and filter unavailable devices
WRRicht3r Apr 19, 2026
a38dc21
fix: unblock test-compat compile and harden matrix native-crypto flow
WRRicht3r Apr 19, 2026
d5da819
fix: stabilize matrix tests and coredata test model setup
WRRicht3r Apr 19, 2026
91744e2
chore: remove dead compatibility shims not in active targets
WRRicht3r Apr 19, 2026
6e32d13
chore: remove stale project refs for deleted compatibility file
WRRicht3r Apr 19, 2026
a224420
fix: keep TON API assembly aligned with active TON chain env
WRRicht3r Apr 19, 2026
584f71a
refactor: harden asset mapper required-field handling
WRRicht3r Apr 19, 2026
290da27
test: add asset mapper regression coverage for required fields
WRRicht3r Apr 19, 2026
f30c08a
fix: tolerate blockscout explorer type in chain sync
WRRicht3r Apr 19, 2026
0fb5612
fix: tolerate unsupported explorer types in chain sync
WRRicht3r Apr 19, 2026
2c32532
fix: align snapshot hot boot with tolerant chain decoding
WRRicht3r Apr 19, 2026
d8b6546
refactor: rename ton api assembly to client factory
WRRicht3r Apr 20, 2026
5f712af
refactor: rename ton api accessor to client factory
WRRicht3r Apr 20, 2026
c377046
refactor: drop obsolete ton compatibility shims
WRRicht3r Apr 20, 2026
0985e16
test: add asset mapper regression coverage
WRRicht3r Apr 20, 2026
619040d
test: use secure transformable attribute in asset mapper tests
WRRicht3r Apr 20, 2026
5403e72
refactor: remove legacy network worker alias usage
WRRicht3r Apr 20, 2026
9bbaa25
ci: unify test-matrix runner and preserve arch-safe flags
WRRicht3r Apr 20, 2026
e4d82d0
refactor: normalize chain registry subscription API name
WRRicht3r Apr 20, 2026
409d59c
refactor: remove unused models compatibility shim
WRRicht3r Apr 20, 2026
f72260c
refactor: remove stale identifiable models placeholder
WRRicht3r Apr 20, 2026
ccba3cc
refactor: mark imported identifiable conformances as retroactive
WRRicht3r Apr 20, 2026
6a62a77
refactor: remove dead walletconnect auto namespace shim
WRRicht3r Apr 20, 2026
4793c1e
chore: remove stale absolute coordinator file reference
WRRicht3r Apr 20, 2026
93bce21
refactor: use explicit meta account repository in network issues flow
WRRicht3r Apr 20, 2026
965dcdd
refactor: remove duplicate walletconnect coordinator references
WRRicht3r Apr 21, 2026
bdd1511
refactor: normalize chain asset persistence through asset mapper
WRRicht3r Apr 21, 2026
1a4a3fd
fix: restore chain registry typo compatibility without breaking tests
WRRicht3r Apr 21, 2026
34b5fa1
refactor: remove chain registry typo compatibility API
WRRicht3r Apr 21, 2026
58df9d5
fix: make chain registry subscription idempotent
WRRicht3r Apr 21, 2026
32be24f
refactor: centralize TON chain selection in jetton injector
WRRicht3r Apr 21, 2026
78f0678
refactor: unify TON environment selection logic
WRRicht3r Apr 21, 2026
882b280
test: add TON chain selection regression coverage
WRRicht3r Apr 22, 2026
8119969
test: add asset repository factory compatibility coverage
WRRicht3r Apr 22, 2026
131e25f
test: expand network worker compatibility regression coverage
WRRicht3r Apr 22, 2026
b7896f2
test: wire TON compatibility tests into target
WRRicht3r Apr 22, 2026
3493e42
refactor: remove stale account factory shims and reset eth pool
WRRicht3r Apr 22, 2026
af1d6aa
test: add account factory test compatibility aliases
WRRicht3r Apr 22, 2026
8af8cbf
test: remove temporary account factory protocol shim
WRRicht3r Apr 22, 2026
060af92
ci: harden ssf pin enforcement on writable files
WRRicht3r Apr 22, 2026
e4ed9f7
refactor: remove stale cuckoo compatibility placeholders
WRRicht3r Apr 22, 2026
9f5b87c
fix: align TON day change semantics and simulator selection
WRRicht3r Apr 22, 2026
f019f43
test: add TON day-change parsing regression coverage
WRRicht3r Apr 22, 2026
7171994
chore: remove redundant vars in validator and kaia flows
WRRicht3r Apr 23, 2026
b6e2398
refactor: drop unused ton bridge url from api factory
WRRicht3r Apr 23, 2026
24a45c0
fix: keep committed workspace Package.resolved during CI bootstrap
WRRicht3r Apr 23, 2026
001cfe9
fix: enforce native crypto contract in codecov workflow
WRRicht3r Apr 23, 2026
dc9a552
test: cover AssetModel identifier compatibility contract
WRRicht3r Apr 23, 2026
293db55
fix(ci): track native crypto contract templates
WRRicht3r Apr 23, 2026
094179b
fix(ci): preserve workspace Package.resolved in run-pr
WRRicht3r Apr 23, 2026
9799d20
refactor(chain): centralize ton compatibility detection
WRRicht3r Apr 23, 2026
54ea9d1
fix(liquidity): remove recursive pool shim initializers
WRRicht3r Apr 23, 2026
c1b78a2
refactor(ton): unify compatibility chain detection
WRRicht3r Apr 23, 2026
a806d1d
refactor(storage): normalize asset repository mapper contract
WRRicht3r Apr 23, 2026
21ff436
test(storage): add asset mapper contract regression cases
WRRicht3r Apr 23, 2026
47d8121
test(balance): cover ton and ethereum account info routing
WRRicht3r Apr 24, 2026
f55bd0e
fix(ci): restore swiftpm contract files after workspace rewrites
WRRicht3r Apr 24, 2026
163af47
refactor(compat): centralize trusted aliaser check
WRRicht3r Apr 24, 2026
03049cd
chore(ci,compat): continue build-recovery cleanup (cumulative summary)
WRRicht3r Apr 24, 2026
f6625d8
fix(ci): require concrete simulator destinations for test/availabilit…
WRRicht3r Apr 24, 2026
7af194d
fix(ci,dev): preserve swiftpm contract files during setup and tests
WRRicht3r Apr 24, 2026
d73a712
fix(crosschain): restore local trusted aliaser helper for target comp…
WRRicht3r Apr 24, 2026
c8c52ca
refactor(compat): remove dead Polkadot runtime compatibility file
WRRicht3r Apr 24, 2026
bf4595a
refactor(compat): remove dead PriceData identifiable shim
WRRicht3r Apr 24, 2026
a2c1178
test(crosschain): add origin-preservation note regression coverage
WRRicht3r Apr 24, 2026
b7ed86f
refactor(compat): remove unused ChainAsset compatibility accessors
WRRicht3r Apr 24, 2026
3a5a660
test(network): add NetworkWorker compatibility regression coverage
WRRicht3r Apr 24, 2026
3caa1f3
refactor(test): move test-only ChainAsset storage helper out of app
WRRicht3r Apr 24, 2026
c1ae153
refactor(compat): remove ChainTokens wrapper and use direct chain assets
WRRicht3r Apr 24, 2026
d282562
refactor(liquidity): deduplicate reserves calculation in model factory
WRRicht3r Apr 24, 2026
efd48c4
fix(tests): disambiguate StorageCodingPath in wallet subscription stub
WRRicht3r Apr 24, 2026
94d5a9c
fix(chainregistry): use release TON API key outside DEBUG
WRRicht3r Apr 24, 2026
4f89064
refactor(ui): modernize document picker and keyboard assoc keys
WRRicht3r Apr 24, 2026
6865c80
fix(spm): reliably patch SSFPolkaswap explicit dependencies
WRRicht3r Apr 24, 2026
c861b03
fix(chain): preserve para metadata and reset ethereum on delete
WRRicht3r Apr 24, 2026
f2fb8be
ci(simulator): add shared simulator selector with create fallback
WRRicht3r Apr 24, 2026
1d7f9c7
ci(native-crypto): fail fast on shared-features contract patch errors
WRRicht3r Apr 24, 2026
157582d
fix(chain-model): preserve para fields via schema-gated KVC mapping
WRRicht3r Apr 24, 2026
6457810
fix(ci): keep simulator selector logs off stdout
WRRicht3r Apr 24, 2026
4287c9b
fix(ci): robustly parse simulator UDID in codecov workflow
WRRicht3r Apr 25, 2026
57c8578
test(storage): add ChainModelMapper para/identity round-trip coverage
WRRicht3r Apr 25, 2026
5be52b4
test(ci): harden simulator selection and add network compatibility co…
WRRicht3r Apr 25, 2026
0fd452d
test(compat): include NetworkWorkerCompatibility tests in fearlessTes…
WRRicht3r Apr 25, 2026
aa94281
fix(ci): restore SwiftPM contract files before dependency checks
WRRicht3r Apr 25, 2026
c64bd6f
test(compat): remove duplicate NetworkWorkerCompatibility test declar…
WRRicht3r Apr 25, 2026
d53110a
fix(ci): set explicit simulator arch for codecov destination
WRRicht3r Apr 25, 2026
3c79d46
test(compat): dedupe NetworkWorker compatibility coverage
WRRicht3r Apr 25, 2026
3ed25a1
test(storage): split AssetModelMapper tests into dedicated file
WRRicht3r Apr 25, 2026
a946362
fix(ci): prefer exact simulator name match before pattern fallback
WRRicht3r Apr 25, 2026
95ec538
test(integration): remove unused runtime/connection bindings in Staki…
WRRicht3r Apr 25, 2026
63db632
fix(balance): preserve genshiro equilibrium path and honor selected T…
WRRicht3r Apr 25, 2026
e7ff011
fix(ci): resolve simulator destination by name+os with udid fallback
WRRicht3r Apr 25, 2026
57a070f
test(regression): cover genshiro equilibrium routing and TON node sel…
WRRicht3r Apr 25, 2026
9ca00e7
fix(balance): align genshiro equilibrium routing in storage service
WRRicht3r Apr 25, 2026
57f4b6f
test(ton): cover empty-node resolver edge case
WRRicht3r Apr 25, 2026
99b849a
fix(staking): remove transient weak capture in stash provider logging
WRRicht3r Apr 25, 2026
acc540d
fix(chain-registry): avoid optional debug interpolation in error log
WRRicht3r Apr 25, 2026
93e4246
fix(ci): harden simulator UDID extraction from selector output
WRRicht3r Apr 26, 2026
e9a9d4c
fix: harden ton balances and add sora nexus xor defaults
WRRicht3r May 1, 2026
4f491d8
fix: stabilize codecov simulator selection and spm patching
WRRicht3r May 1, 2026
622eaa3
fix: harden simulator selection and package resolution in test flows
WRRicht3r May 1, 2026
dcb5a58
fix: finalize ton parsing and sora nexus asset wiring
WRRicht3r May 1, 2026
2bac02d
fix(ci): harden simulator UDID parsing and arm64 destination
WRRicht3r May 1, 2026
40355a9
fix(ci): harden codecov simulator selection and error surfacing
WRRicht3r May 1, 2026
a5081bd
refactor(balance): remove dead ethereum fetch ops and harden completi…
WRRicht3r May 2, 2026
4946b27
fix: respect host simulator arch in test matrix
WRRicht3r May 9, 2026
77a55ce
fix: use generated service keys in fallback builds
WRRicht3r May 9, 2026
60378f6
fix: wire generated debug service keys
WRRicht3r May 9, 2026
8a0bf73
fix: preserve cached chain assets and prices
WRRicht3r May 11, 2026
5ac4502
fix: restore account switch management flow
WRRicht3r May 12, 2026
3981700
fix: add account management factory to xcode project
WRRicht3r May 12, 2026
17beeec
fix: use host simulator arch in ci
WRRicht3r May 12, 2026
2c54f12
fix: fail closed on malformed chain and coinbase urls
WRRicht3r May 12, 2026
341b175
fix: preserve subset semantics for missing accounts
WRRicht3r May 13, 2026
8ee593b
fix: use requested ton remainder assets
WRRicht3r May 13, 2026
3ea146e
fix: preserve error paths in compatibility shims
WRRicht3r May 13, 2026
ef80742
fix: run bootstrap dependency helpers without exec bit
WRRicht3r May 13, 2026
683e323
fix: preserve history and ton provider selection
WRRicht3r May 14, 2026
8eedb65
fix: avoid ton client factory shadowing
WRRicht3r May 14, 2026
223b8c4
fix: declare walletconnect storage group
WRRicht3r May 14, 2026
84d3eb2
fix: restore history fallback and runtime ordering
WRRicht3r May 14, 2026
7c886d2
fix: call observer update closure
WRRicht3r May 14, 2026
c53f783
fix: restore xcm minimum amount validation
WRRicht3r May 15, 2026
738c630
fix: satisfy swiftformat in xcm min inspector
WRRicht3r May 15, 2026
c917730
fix: restore websocket node failover
WRRicht3r May 15, 2026
e4c2b14
fix: compile websocket failover wrapper
WRRicht3r May 15, 2026
88ade7e
fix: remove stale pod input and cache ton jettons
WRRicht3r May 18, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
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
105 changes: 101 additions & 4 deletions .github/workflows/codecov.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,109 @@ jobs:
runs-on: macOS-latest
steps:
- name: Checkout
uses: actions/checkout@v1
uses: actions/checkout@v4

- 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}:x-oauth-basic@github.com/soramitsu/".insteadOf "https://github.com/soramitsu/"
else
echo "GH_READ_TOKEN not set; proceeding without GitHub auth"
fi

- name: Install Dependencies & Test
- name: Bootstrap Dependencies
run: |
bash scripts/ci/bootstrap.sh

- name: Build & Test (Simulator)
run: |
pod install --repo-update
set -o pipefail && xcodebuild test -workspace fearless.xcworkspace -scheme fearless -destination 'platform=iOS Simulator,name=iPhone 14,OS=16.2' build test | xcpretty --test
set -o pipefail
# Resolve SPM into a stable workspace path and patch after resolve
SP_DIR="$PWD/SourcePackages"
mkdir -p "$SP_DIR"
xcodebuild -resolvePackageDependencies \
-workspace fearless.xcworkspace \
-scheme fearless \
-clonedSourcePackagesDirPath "$SP_DIR"
# Apply patches on the resolved checkout (fail fast if contracts cannot be restored)
SOURCE_PACKAGES_DIR="$SP_DIR" ALLOW_DERIVEDDATA_FALLBACK=0 STRICT_REQUIRED_PATCHES=1 bash scripts/spm-shared-features-fixes.sh "$(pwd)"
# Ensure native crypto checkout/modulemap contract is restored after resolve.
SOURCE_PACKAGES_DIR="$SP_DIR" STRICT_REQUIRED_PATCHES=1 bash scripts/deps/prepare-native-crypto-checkout.sh "$(pwd)" fearless.xcworkspace fearless.tests
echo "Preflight: checking remaining 'enum AddressFactory' in $SP_DIR checkouts (warn-only)"
if command -v rg >/dev/null 2>&1; then
rg -n "\\benum\\s+AddressFactory\\b" "$SP_DIR/checkouts/shared-features-spm/Sources" -S | sed -n '1,120p' || true
else
/usr/bin/grep -RInE "(^|[^A-Za-z0-9_])enum[[:space:]]+AddressFactory(\b|[^.])" "$SP_DIR/checkouts/shared-features-spm/Sources" | sed -n '1,120p' || true
fi
echo "Preflight: checking SSFPolkaswap addressFactory type annotations"
if command -v rg >/dev/null 2>&1; then
if rg -n "addressFactory\s*:\s*([A-Za-z_]+\.)?AddressFactory(\b|[^.])" "$SP_DIR/checkouts/shared-features-spm/Sources/SSFPolkaswap" -S >/dev/null 2>&1; then
echo "WARNING: addressFactory annotations still using AddressFactory (not .Type):" >&2
rg -n "addressFactory\s*:\s*([A-Za-z_]+\.)?AddressFactory(\b|[^.])" "$SP_DIR/checkouts/shared-features-spm/Sources/SSFPolkaswap" -S | sed -n '1,120p' >&2 || true
fi
else
if /usr/bin/grep -RInE "addressFactory\s*:\s*([A-Za-z_]+\.)?AddressFactory(\b|[^.])" "$SP_DIR/checkouts/shared-features-spm/Sources/SSFPolkaswap" >/dev/null 2>&1; then
echo "WARNING: addressFactory annotations still using AddressFactory (not .Type) [grep]:" >&2
/usr/bin/grep -RInE "addressFactory\s*:\s*([A-Za-z_]+\.)?AddressFactory(\b|[^.])" "$SP_DIR/checkouts/shared-features-spm/Sources/SSFPolkaswap" | sed -n '1,120p' >&2 || true
fi
fi
echo "Available simulators (before selection):" && xcrun simctl list devices | sed -n '1,100p'
UDID_RAW="$(LOG_PREFIX='[codecov]' PREFERRED_NAME='iPhone 16' ALLOW_CREATE=1 BOOT_SIMULATOR=0 bash scripts/ci/select-simulator.sh)"
UDID="$(printf '%s\n' "$UDID_RAW" | awk 'match($0, /[A-Fa-f0-9-]{36}/) { print substr($0, RSTART, RLENGTH); exit }')"
if [ -z "$UDID" ]; then
echo "Failed to select simulator UDID. Raw selector output: $UDID_RAW" >&2
exit 1
fi
if ! [[ "$UDID" =~ ^[A-Fa-f0-9-]{36}$ ]]; then
echo "Extracted simulator UDID has invalid format: $UDID" >&2
exit 1
fi
HOST_ARCH="$(uname -m)"
SIM_INFO="$(xcrun simctl list devices available | awk -v udid="$UDID" '
/^-- iOS / { os=$3; next }
{
if (index($0, udid) > 0) {
line = $0
sub(/[[:space:]]*\([A-Fa-f0-9-]{36}\).*/, "", line)
gsub(/^[[:space:]]+|[[:space:]]+$/, "", line)
print line "|" os
exit
}
}
')"
if [ -n "$SIM_INFO" ]; then
SIM_NAME="${SIM_INFO%%|*}"
SIM_OS="${SIM_INFO##*|}"
DESTINATION="platform=iOS Simulator,OS=${SIM_OS},name=${SIM_NAME}"
else
DESTINATION="platform=iOS Simulator,id=$UDID"
fi
case "$HOST_ARCH" in
arm64|x86_64)
DESTINATION="${DESTINATION},arch=${HOST_ARCH}"
;;
esac
echo "Using destination: $DESTINATION"
LOG_FILE="$PWD/build/codecov-xcodebuild.log"
mkdir -p "$PWD/build"
if ! xcodebuild \
-workspace fearless.xcworkspace \
-scheme fearless.tests \
-clonedSourcePackagesDirPath "$SP_DIR" \
-disableAutomaticPackageResolution \
-destination "$DESTINATION" \
build test | tee "$LOG_FILE" | xcpretty --test; then
echo "Build/Test failed. Key errors from $LOG_FILE:" >&2
if command -v rg >/dev/null 2>&1; then
rg -n " error: |\\*\\* (BUILD|TEST) FAILED \\*\\*" "$LOG_FILE" -S | tail -n 100 >&2 || true
else
grep -nE " error: |\\*\\* (BUILD|TEST) FAILED \\*\\*" "$LOG_FILE" | tail -n 100 >&2 || true
fi
exit 1
fi

- name: Upload coverage to Codecov
run: bash <(curl -s https://codecov.io/bash) -J 'fearless'
12 changes: 11 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,16 @@ Tests/Mocks/CommonMocks.swift
Tests/Mocks/ModuleMocks.swift
#
# Generamba
Templates/
/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
# Private pod/env helper
.env.private
177 changes: 177 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,177 @@
# 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.tests -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 using `fearless.tests` by default)

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/"` (or run `scripts/secrets/setup-private-pods.sh` which does this for you and writes `.env.private` with `INCLUDE_FEARLESS_KEYS=1`).
- 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 (`3ad0fe9…`). We now enforce this automatically via `scripts/deps/enforce-ssf-pin.sh` in CI (`bootstrap.sh`), local dev (`dev-setup.sh`), and tests (`test-matrix.sh`).
- Dependency-contract validation is centralized in:
- `scripts/deps/check-dependency-contracts.sh`
- Native crypto stability now uses dedicated contract scripts:
- `scripts/deps/prepare-native-crypto-checkout.sh`
- `scripts/deps/apply-native-crypto-package-contract.sh`
- `scripts/deps/apply-native-crypto-modulemap-contract.sh`
- `scripts/deps/verify-native-crypto-package-state.sh`
- Additional required `shared-features-spm` compatibility fixes (BigInt dep, Web3 Data.bytes, AddressFactory type usage, scrypt guard) are applied by `scripts/spm-shared-features-fixes.sh`.

8) Web3 duplication
- The project uses `soramitsu/web3-swift@7.7.7`. 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.
- Prepare the native crypto checkout against the repo-owned contract when required by the resolved package state.
- 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 run the dedicated native crypto contract scripts / verifier.
- “multiple similar targets ‘Web3’ …”: dedupe to `soramitsu/web3-swift@7.7.7` only.
- “pod install” fails cloning FearlessKeys: supply `GH_PAT_READ` or gate that pod in CI.
- “Ambiguous type ‘MetaAccountModel’ / ‘ChainAccountResponse’ in tests”: tests include `fearlessTests/Helper/TestTypeAliases.swift` to resolve ambiguity to app models. If you add conflicting SDK types, keep this shim or qualify uses (`fearless.MetaAccountModel`).
- “JSONRPCEngine conformance missing in tests”: `fearlessTests/Common/Services/ChainRegistry/MockConnection.swift` provides a test engine conforming to the current `JSONRPCEngine` protocol. If the protocol changes upstream, adjust this file accordingly.

## 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