Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support for new on-the-fly funding #113

Merged
merged 13 commits into from
Oct 3, 2024
Merged

Support for new on-the-fly funding #113

merged 13 commits into from
Oct 3, 2024

Conversation

dpad85
Copy link
Member

@dpad85 dpad85 commented Sep 20, 2024

Adds support for liquidity-ads based protocol for on-the-fly liquidity as specified in lightning/blips#36 and lightning/blips#41, implemented respectively in ACINQ/lightning-kmp#649 and ACINQ/lightning-kmp#660.

Lightning-kmp update

Phoenixd now uses the main branch of lightning-kmp (v1.8.0).

Database update

  • LiquidityAds.Lease is replaced by LiquidityAds.Purchase, so we need to update the liquidity table.
  • the receivedWith data have been updated in lightning-kmp, and we need a new Part.Htlc.V1 object that may contain a LiquidityAds.FundingFee.

With the Lease->Purchase change, we've updated our pattern for versioning database objects. We now have asDb() & asCanonical() mapping methods and store the type of the db object inside the json (which means we don't need the type column anymore, except for convenience).

pm47 and others added 11 commits September 27, 2024 11:17
Note that we are using a polymorphic serialiser to store the liquidity
purchase data in the database (data type is stored in the blob).

A new received-with db mapping has been added to handle the optional
funding fee type for HTLC payments.

Also fixed the database file name when creating the db drivers, due
to the testnet3/4 changes.
Payment details are now stored inside the purchase blob.
The payment details type in the db table is just for
information purpose and is not typed. It is a free text
column.

The column storing the purchase/lease type is now also a
free text column. If it happens to contains legacy lease
data, then we apply a special logic to the blob.

The classes used for storing/versioning liquidity ads data
are moved in a liquidity ads package.

The serialiser for LiquidityAds.FundingFee has been removed
(instead we use the same pattern as the other liquidity data).

The methods from moving to the canonical data to the versioned
db data have been rename: asDb(), asCanonical().
@pm47 pm47 marked this pull request as ready for review October 3, 2024 12:55
@pm47 pm47 merged commit bbc18be into master Oct 3, 2024
@pm47 pm47 deleted the otf branch October 3, 2024 12:57
vincenzopalazzo pushed a commit to vincenzopalazzo/phoenixd that referenced this pull request Nov 7, 2024
Adds support for liquidity-ads based protocol for on-the-fly liquidity as specified in lightning/blips#36 and lightning/blips#41, implemented respectively in ACINQ/lightning-kmp#649  and ACINQ/lightning-kmp#660.

### Lightning-kmp update

Phoenixd now uses the main branch of `lightning-kmp` (v1.8.0).

### Database update

- `LiquidityAds.Lease` is replaced by `LiquidityAds.Purchase`, so we need to update the liquidity table.
- the `receivedWith` data have been updated in lightning-kmp, and we need a new `Part.Htlc.V1` object that may contain a `LiquidityAds.FundingFee`.

With the `Lease->Purchase` change, we've updated our pattern for versioning database objects. We now have `asDb()` & `asCanonical()` mapping methods and store the type of the db object inside the json (which means we don't need the `type` column anymore, except for convenience).

---------

Co-authored-by: pm47 <[email protected]>
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