Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
2ca2ef1
feat!: add Tron support and replace walletAddress with activeWallet
tolgahan-arikan Oct 8, 2026
89d2a9e
test: verify wallet-import HPKE against CryptoKit and RFC 9180 vectors
tolgahan-arikan Oct 8, 2026
139f1bc
refactor!: align public API with the TypeScript and Kotlin SDKs
tolgahan-arikan Oct 8, 2026
37d90bf
feat(demo): add Solana to the SDK demo app
tolgahan-arikan Oct 8, 2026
5df2d63
docs(agents): describe optional walletAddress in verification APIs
tolgahan-arikan Oct 8, 2026
7cd9993
fix: reject unrestorable wallets, clean up bad auth expiry, and blank…
tolgahan-arikan Oct 8, 2026
ffdb125
fix(docs): name the removed CompleteAuthResult.walletAddress in MIGRA…
tolgahan-arikan Oct 8, 2026
2fefb8a
fix(demo): keep the wallet family on reauth and clear stale Tron bala…
tolgahan-arikan Oct 8, 2026
dee50fb
refactor: share the empty-string balance decoder with Solana
tolgahan-arikan Oct 8, 2026
0c72027
refactor: check the session before the active wallet type
tolgahan-arikan Oct 8, 2026
b3ff71e
refactor: require expiresAt in the stored session record
tolgahan-arikan Oct 8, 2026
092e00c
refactor: remove the unused WalletType WaaS mappings
tolgahan-arikan Oct 8, 2026
4536dac
refactor: share Solana and Tron fee-option balance enrichment
tolgahan-arikan Oct 8, 2026
ba05d13
refactor: derive walletId from the active wallet
tolgahan-arikan Oct 8, 2026
a497ec3
refactor: remove unused SDK helpers and error cases
tolgahan-arikan Oct 8, 2026
bc7a10c
refactor: wrap completeWalletAuth's sign-out-on-failure steps once
tolgahan-arikan Oct 8, 2026
96c10af
refactor: wrap the clearSession storage error once
tolgahan-arikan Oct 8, 2026
1ce7f95
refactor: reuse OMSWalletSession.parseDate in the credential session
tolgahan-arikan Oct 8, 2026
77b8a86
refactor: use CryptoKit HKDF for wallet-import HPKE
tolgahan-arikan Oct 8, 2026
773cfc1
refactor(tests): drop test aliases that duplicate the SDK's WaaS aliases
tolgahan-arikan Oct 8, 2026
2d72fa1
chore(scripts): derive the generated-WaaS leak list from waas.gen.swift
tolgahan-arikan Oct 8, 2026
4e5ef64
chore(demo): remove dead demo helpers and use SDK constants
tolgahan-arikan Oct 8, 2026
8f7ae1e
refactor!: remove backward-compatibility leftovers
tolgahan-arikan Oct 9, 2026
1b1b737
docs: align migration, README, and contributor docs with 0.4.0 behaviour
tolgahan-arikan Oct 9, 2026
a419725
feat(demo): add a mainnet switch to the Solana and Tron panels
tolgahan-arikan Oct 15, 2026
d8e2e7a
fix: keep a newer session when a stale auth attempt fails
tolgahan-arikan Oct 16, 2026
74d08a2
test: cover delayed session expiry, OIDC pending-flow consumption, sp…
tolgahan-arikan Oct 16, 2026
c5eff38
test: tighten weak tests
tolgahan-arikan Oct 16, 2026
8174222
test: remove duplicate and low-value tests
tolgahan-arikan Oct 16, 2026
eedabb4
test: share test fixtures
tolgahan-arikan Oct 16, 2026
752ef95
feat(demo): switch wallet type after sign-in
tolgahan-arikan Oct 19, 2026
f98a083
test: remove assertions that cannot fail
tolgahan-arikan Oct 19, 2026
9a4be8c
chore(release): prepare 0.4.0
tolgahan-arikan Oct 19, 2026
905b1db
chore(waas): regenerate client from waas 54d91262
tolgahan-arikan Oct 23, 2026
e713298
feat(session): refresh the sliding credential expiry
tolgahan-arikan Oct 23, 2026
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
21 changes: 13 additions & 8 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,9 @@ typed-data signing, signature verification, token balances, and unit formatting.
- `Package.swift` defines the Swift package, the `"OMSWallet"` library target, and
the `"OMSWalletTests"` test target.
- `Sources/OMSWallet/` contains the SDK implementation.
- `Sources/OMSWallet/Clients/` contains `WalletClient` and `IndexerClient`.
- `Sources/OMSWallet/Clients/` contains `WalletClient` and `IndexerClient`, plus
`SessionCredentialTransport`, which wraps the session-signed WaaS clients to order their
requests around the SDK's expiry refresh and end the session when WaaS rejects its credential.
- `Sources/OMSWallet/Signer/` contains Keychain/P-256 signing and credential
session code.
- `Sources/OMSWallet/Models/` contains public model types and auth/session
Expand Down Expand Up @@ -106,9 +108,10 @@ execution commands.
persist private key material in SDK session storage.
- Keep OIDC redirect state separate from completed wallet session state. Invalid
or unrelated callbacks should not clear pending redirect auth.
- Verification APIs require an explicit `walletAddress`. Public wallet methods
should validate active `walletId` and credential state before building signed
requests.
- Verification APIs take an optional `walletAddress` and fall back to the active
wallet's address; they never send a wallet ID and do not require a session when
an address is given. Other public wallet methods should validate the active
wallet and credential state before building signed requests.
- Avoid floating-point math for token amounts. Use or extend `parseUnits` and
`formatUnits` for base-unit conversions.
- Prefer `rg --files`, `rg`, `swift build`, and `swift test` from the repository root.
Expand All @@ -125,10 +128,12 @@ requested later with `@claude review` in a PR comment.

## Documentation

Update `README.md` when user-facing setup or flow examples change. Update
`API.md` when public methods, parameters, models, or behavior change. Keep docs
aligned with the actual Swift names, labels, return types, and the `OMSWallet`
import name. Avoid adding method descriptions in source code.
Update `README.md` when user-facing setup or flow examples change. `API.md` is
generated: when public methods, parameters, models, or doc comments change, run
`scripts/generate-api.sh` (CI checks it with `--check`), regenerate the baseline
with `UPDATE_PUBLIC_API_BASELINE=1 scripts/check-public-api-does-not-expose-generated-waas.sh`,
and add a `MIGRATION.md` entry for breaking changes. Keep docs aligned with the
actual Swift names, labels, return types, and the `OMSWallet` import name.

## Demo App

Expand Down
347 changes: 293 additions & 54 deletions API.md

Large diffs are not rendered by default.

8 changes: 1 addition & 7 deletions Examples/sdk-demo/oms-wallet-demo/AppError.swift
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,6 @@ struct GenericAppError: Identifiable {
}

private func errorMessage(for error: Error) -> String {
if isCancellation(error) {
return "The operation was cancelled."
}

if let error = error as? OMSWalletError {
return errorMessage(for: error)
}
Expand Down Expand Up @@ -70,9 +66,7 @@ private func errorMessage(for error: OMSWalletError) -> String {
details.append("Underlying error: \(String(describing: underlyingError))")
}

if !details.isEmpty {
sections.append(details.joined(separator: "\n"))
}
sections.append(details.joined(separator: "\n"))

return sections.joined(separator: "\n\n")
}
Expand Down
Loading
Loading