Skip to content

Conversation

@Overtorment
Copy link
Member

@Overtorment Overtorment commented Oct 24, 2025

image image

Note

Adds a new Ark-powered Lightning wallet (arkade://) with swaps, UI integration, import flow, and supporting infra/config/tests; also removes the legacy LN additional info screen and refactors wallet selection/navigation.

  • Wallets/Core:
    • New LightningArkWallet (class/wallets/lightning-ark-wallet.ts): Arkade + Boltz swap integration (generate/import arkade://, balance/tx fetch, invoice create/pay, boarding UTXOs, Ark address).
    • Add deserialization/support across app (blue-app.ts, types.ts, index.ts, wallet-import.ts).
  • UI/UX:
    • Treat LightningArkWallet like Lightning for gradients/images and Manage Funds (wallet-gradient.ts, TransactionsNavigationHeader.tsx, WalletsCarousel.tsx).
    • Add hidden Add Wallet option and button for Ark wallet (screen/wallets/Add.tsx, components/WalletButton.tsx).
    • Show Ark address in Wallet Details when applicable (screen/wallets/WalletDetails.tsx).
    • Change expired tx icon (clock → timer) and minor tx item handling.
  • Navigation/Flows:
    • Remove “Additional Invoice Information” LN screen/routes; streamline LN invoice/share screens.
    • Update LNURL auth and create-invoice flows (close modal then navigate; use navigationRef).
    • Refactor select-wallet to accept navigation object; update callers.
  • Infra/Config:
    • Add @arkade-os/sdk and @arkade-os/boltz-swap deps; Metro aliases (expo/fetch shim, Ark adapter), Jest transform ignore updates; shim.js update; fetch timeout 20s.
  • Tests:
    • New integration tests and fixtures for Ark wallet/import; adjust Lightning custodian tests.
  • Misc:
    • SelfTest: verify Ark address generation.

Written by Cursor Bugbot for commit 1d4f557. This will update automatically on new commits. Configure here.

cursor[bot]

This comment was marked as outdated.

@socket-security
Copy link

socket-security bot commented Oct 24, 2025

Review the following changes in direct dependencies. Learn more about Socket for GitHub.

Diff Package Supply Chain
Security
Vulnerability Quality Maintenance License
Addednpm/​@​arkade-os/​sdk@​0.3.5751009998100
Addednpm/​@​arkade-os/​boltz-swap@​0.2.8781009998100

View full report

@Overtorment Overtorment added the testflight Upload iOS and macOS builds to Testflight. label Oct 24, 2025
@github-actions
Copy link

✅ Build 7.2.1 (1761331224) has been uploaded to TestFlight and will be available for testing soon.

@github-actions
Copy link

✅ Build 7.2.1 (1761331338) has been uploaded to TestFlight and will be available for testing soon.

@github-actions
Copy link

✅ Build 7.2.1 (1762869263) has been uploaded to TestFlight and will be available for testing soon.

@github-actions
Copy link

✅ Build 7.2.1 (1762870401) has been uploaded to TestFlight and will be available for testing soon.

@github-actions
Copy link

✅ Build 7.2.1 (1762871160) has been uploaded to TestFlight and will be available for testing soon.

@github-actions
Copy link

✅ Build 7.2.1 (1762872823) has been uploaded to TestFlight and will be available for testing soon.

@github-actions
Copy link

✅ Build 7.2.1 (1762875919) has been uploaded to TestFlight and will be available for testing soon.

@cursor
Copy link

cursor bot commented Nov 11, 2025

Cursor Agent can help with this pull request. Just @cursor in comments and I'll start working on changes in this branch.
Learn more about Cursor Agents

Copy link

@cursor cursor bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Bug: Assertion Failure: Data Uninitialized

The test asserts that l1.info_raw is truthy, but the fetchInfo() method call was removed from the test. Since info_raw is initialized to false in the LightningCustodianWallet class and is never populated without calling fetchInfo(), this assertion will always fail.

tests/integration/lightning-custodian-wallet.test.js#L50-L51

assert.ok(l1.balance === 0);
assert.ok(l1.info_raw);

Fix in Cursor Fix in Web


@github-actions
Copy link

✅ Build 7.2.1 (1763047984) has been uploaded to TestFlight and will be available for testing soon.

@github-actions
Copy link

✅ Build 7.2.1 (1763053281) has been uploaded to TestFlight and will be available for testing soon.

@github-actions
Copy link

✅ Build 7.2.1 (1763062800) has been uploaded to TestFlight and will be available for testing soon.

@github-actions
Copy link

✅ Build 7.2.1 (1763067234) has been uploaded to TestFlight and will be available for testing soon.

@github-actions
Copy link

✅ Build 7.2.1 (1763070343) has been uploaded to TestFlight and will be available for testing soon.

async addInvoice(amt: number, memo: string) {
if (!this._wallet) await this.init();
assert(this._arkadeLightning, 'Ark Lightning not initialized');
assert(amt > 333, 'Only invoices > 333 sat allowed');
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You should use limits.minimal from https://api.ark.boltz.exchange/v2/swap/submarine instead of hard coding 333.

Additionally, you should test if amt < limits.maximal (that you get from the same endpoint)

Copy link
Collaborator

@limpbrains limpbrains left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Show better error when trying to pay < 333

Screenshot_1763120432

@github-actions
Copy link

✅ Build 7.2.1 (1763123747) has been uploaded to TestFlight and will be available for testing soon.

@github-actions
Copy link

✅ Build 7.2.1 (1763126747) has been uploaded to TestFlight and will be available for testing soon.

@github-actions
Copy link

✅ Build 7.2.1 (1763126571) has been uploaded to TestFlight and will be available for testing soon.

@github-actions
Copy link

✅ Build 7.2.1 (1763133237) has been uploaded to TestFlight and will be available for testing soon.

Copy link
Collaborator

@limpbrains limpbrains left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I made a refill using an external address and sent the funds. The wallet showed a “Pending refill” status but provided no confirmation target or any additional information about what would happen next.
I tried tapping on it, but nothing happened.

When the transaction was confirmed, BlueWallet still didn’t update.
Only after restarting the app did it finalize the refill.

Overall, the procedure isn’t very clear.
It would be helpful to have a detailed status screen explaining what’s going on, along with a button to manually refresh or proceed.

Other than that, everything works fine.

@Overtorment Overtorment merged commit a0416b1 into master Nov 16, 2025
15 checks passed
@Overtorment Overtorment deleted the add-ark-lightning branch November 16, 2025 13:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

testflight Upload iOS and macOS builds to Testflight. WIP

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants