feat: add Bitcoin L1 deposit-address instruction + refundAddress to quotes - #732
feat: add Bitcoin L1 deposit-address instruction + refundAddress to quotes#732ls-bolt[bot] wants to merge 1 commit into
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub. 2 Skipped Deployments
|
This stack of pull requests is managed by Graphite. Learn more about stacking. |
✱ Stainless preview builds for gridThis PR will update the cli go kotlin openapi php python ruby typescript Edit this comment to update them. They will appear in their respective SDK's changelogs. ✅ grid-typescript studio · code · diff
✅ grid-openapi studio · code · diff
✅ grid-ruby studio · code · diff
✅ grid-go studio · code · diff
✅ grid-kotlin studio · code · diff
✅ grid-python studio · code · diff
✅ grid-php studio · code · diff
✅ grid-cli studio · code · diff
This comment is auto-generated by GitHub Actions and is automatically kept up to date as you push. |
b4a1376 to
0a21316
Compare
|
Preview deployment for your docs. Learn more about Mintlify Previews.
|
Add a Bitcoin L1 on/off-ramp surface to the quote/execute flow: - New self-contained PaymentBitcoinDepositAddressInfo member in the PaymentInstructions oneOf (accountType=BITCOIN_L1 discriminator value, on-chain address, optional network fixed to BITCOIN). - Optional refundAddress on RealtimeFundingQuoteSource (on-ramp crypto funding) and AccountDestination (off-ramp crypto payout). The member is self-contained rather than composing BasePaymentAccountInfo, so it does not extend the shared PaymentAccountType enum; the discriminator mapping is the source of truth for the BITCOIN_L1 value. All additions are optional / additive, so no version bump. SDKs are regenerated by the Stainless CI action from the bundled spec + config. Co-Authored-By: peterrojs <peterrojs@users.noreply.github.com>
0a21316 to
699ff8c
Compare
|
…uotes (#736) ## Summary Adds the public API surface for a Bitcoin L1 crypto on/off-ramp on the quote/execute flow. All changes are additive and optional, so no version bump. ## Changes - **New `PaymentBitcoinDepositAddressInfo` payment instruction** — a member of the `PaymentInstructions.accountOrWalletInfo` oneOf with a new `BITCOIN_L1` discriminator value. Carries the on-chain deposit `address` and an optional `network` (fixed to `BITCOIN`). Modeled exactly like its cousins: it inherits `BasePaymentAccountInfo` and narrows the shared `accountType` to its discriminator value, with `BITCOIN_L1` added to the shared `PaymentAccountType` enum. - **Optional `refundAddress` on `RealtimeFundingQuoteSource`** — the caller's address to return funds to if a crypto deposit cannot be routed to complete the payment (on-ramp). - **Optional `refundAddress` on `AccountDestination`** — the address to return funds to if a crypto payout cannot be completed (off-ramp). - `BITCOIN` is already a valid `cryptoNetwork` for `RealtimeFundingQuoteSource` (currency=BTC, cryptoNetwork=BITCOIN); no change needed. - **CI:** bounded the oasdiff breaking-changes PR comment so it fits GitHub's comment-size limit, with the full report in the job summary and an artifact. ## Notes - Unblocks the server-side Bitcoin L1 quote/execute ramp, which currently uses stopgaps for these types. - `PaymentAccountType` is referenced only via `BasePaymentAccountInfo`, so the new `BITCOIN_L1` value surfaces only on payment-instruction members. - **This PR carries genuinely breaking response changes** and gets the `breaking-change` label: oasdiff reports **37 errors / 1,739 warnings**. The errors are `response-property-one-of-added` (the new oneOf member appearing in quote and transaction responses); the warnings are the new `BITCOIN_L1` enum value propagating to the `accountType` of every member that inherits `BasePaymentAccountInfo`. All are additive — no property or enum-value removals — so this is the expected shape for a new payment-instruction member, gated by API-reviewer approval per the repo's workflow design. - SDKs (grid-typescript, grid-kotlin) are regenerated by the Stainless GitHub Action from the bundled spec + config; no SDK code is hand-edited in this PR. ## Test plan - `npm run lint:openapi` (redocly bundle + redocly lint + spectral lint): passes with 0 errors. - `oasdiff breaking` (v1.16.0, base=main): additive findings only (new oneOf member + new shared-enum value); no removals. - `Detect breaking changes` is green, posting a 23,142-character comment that lists all 37 errors (it was failing on both the exec arg limit and GitHub's 65536-char body cap; the full report also goes to the job summary and an `oasdiff-report` artifact). Original PR: #732 --------- Co-authored-by: peterrojs <peterrojs@users.noreply.github.com> Co-authored-by: Peter.Rojs <peter.rojs@rojsmedia.com> Co-authored-by: akanter <akanter@users.noreply.github.com> Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>

Summary
Adds the public API surface for a Bitcoin L1 crypto on/off-ramp on the quote/execute flow. All changes are additive and optional (non-breaking), so no version bump.
Changes
PaymentBitcoinDepositAddressInfopayment instruction — a member of thePaymentInstructions.accountOrWalletInfooneOf with a newBITCOIN_L1discriminator value. Carries the on-chain depositaddressand an optionalnetwork(fixed toBITCOIN). The member is self-contained (itsaccountTypeis a local single-value enum), so the sharedPaymentAccountTypeenum is left unchanged and the discriminator mapping remains the source of truth forBITCOIN_L1.refundAddressonRealtimeFundingQuoteSource— the caller's address to return funds to if a crypto deposit cannot be routed to complete the payment (on-ramp).refundAddressonAccountDestination— the address to return funds to if a crypto payout cannot be completed (off-ramp).BITCOINis already a validcryptoNetworkforRealtimeFundingQuoteSource(currency=BTC, cryptoNetwork=BITCOIN); no change needed.Notes
Detect breaking changes(oasdiff) check flags the new oneOf member as a breaking response change and applies thebreaking-changelabel — this is expected for any additive payment-instruction member and is gated by API-reviewer approval, per the repo's workflow design.Test plan
npm run lint:openapi(redocly bundle + redocly lint + spectral lint): passes with 0 errors.oasdiff breaking(v1.16.0, base=main): only the intended additive oneOf-member findings remain; no property removals.