Skip to content

Engine v0.2 (lean): custody_provider wiring + thin ramps helper - #1

Merged
moviendome merged 4 commits into
mainfrom
feat/sdp-v0.2
Jun 25, 2026
Merged

moviendome merged 4 commits into
mainfrom
feat/sdp-v0.2

Conversation

@moviendome

Copy link
Copy Markdown
Member

Engine v0.2 (lean) — the solrengine-sdp half of the Grant M2 SDP v0.2 work. Pairs with the client PR (solana-sdp PR #1); both merge + publish together in Workstream F. Draft — do not merge yet (holding until devnet verify in F).

What changed

Version + custody wiring (2526ea3)

  • VERSION 0.1.0 → 0.2.0; COMPATIBLE_SDP_VERSION 0.28 → 0.31
  • gemspec solana-sdp "~> 0.1" → "~> 0.2"
  • Wired custody_provider into .client — the builder was dropping Configuration#custody_provider, so wallet-list lookups (e.g. ProvisionWalletJob adoption) ran unscoped even with a managed provider configured. Now provider-scoped, consistent with the already-scoped create path. A latent bug, not just a passthrough.

Thin ramps helper (<this commit>)

  • Solrengine::Sdp::Ramps + Solrengine::Sdp.ramps accessor — sole job is to default provider: from config, mirroring how custody_provider defaults wallet calls. No model, no extra state; everything else passes straight through to the client.
  • Configuration#ramp_provider (+ SDP_RAMP_PROVIDER fallback)
  • Install generator: opt-in config.ramp_provider + issuance/ramps usage notes
  • Sandbox-only in v0.2 (preview)

Scope

Token model + MintJob are deferred to M3, where the reference app is the real consumer that should drive their design — same reason we held the client PR: build against a real caller. (Holding the client PR paid off here: building this engine surfaced the custody-scope fix, and no client change was needed.)

Tests

135 runs, 453 assertions, 0 failures, 0 errors. Rubocop clean. (No network — WebMock-stubbed; the ramps tests drive the real client through WebMock to prove the provider default lands on the wire.)

🤖 Generated with Claude Code

moviendome and others added 4 commits June 24, 2026 12:33
The engine's .client builder dropped Configuration#custody_provider, so
wallet operations ran unscoped even when a managed provider was configured.
Forward it to Sdp::Client.new so wallet-list lookups (e.g. ProvisionWalletJob
adoption) are provider-scoped, consistent with the already-scoped create path.

- VERSION 0.1.0 -> 0.2.0; COMPATIBLE_SDP_VERSION 0.28 -> 0.31
- gemspec: solana-sdp ~> 0.1 -> ~> 0.2
- ProvisionWalletJob tests: GET /v1/wallets stubs now assert ?provider=privy

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Surface solana-sdp's v0.2 ramps at the engine level with one job: default
provider: from config.ramp_provider so apps don't repeat it per call — the
same convenience custody_provider gives wallet calls. No model, no extra state;
everything else passes straight through to the client.

- Configuration#ramp_provider (+ SDP_RAMP_PROVIDER fallback), mirrors custody_provider
- Solrengine::Sdp::Ramps + Solrengine::Sdp.ramps accessor (reset on configure)
- install generator: opt-in config.ramp_provider + issuance/ramps usage notes
- tests: provider defaulting, explicit override, query-filter, simulate passthrough

Sandbox-only in v0.2 (preview). Persisted Token model + MintJob deferred to M3.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The engine now needs solana-sdp ~> 0.2, but that lives on the client's
feat/sdp-v0.2 branch (PR #1, held unmerged until the joint v0.2 release).
CI cloned solana-sdp's main (0.1.0) → version solving failed. Pin the clone
to the matching branch; REVERT to default branch when 0.2 lands on main (F).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
solana-sdp 0.2.0 merged + released, so the in-flight feat/sdp-v0.2 branch pin
(now deleted) is no longer needed; a plain clone of the default branch resolves
the ~> 0.2 dependency.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@moviendome
moviendome marked this pull request as ready for review June 25, 2026 05:54
@moviendome
moviendome merged commit 7cca2b5 into main Jun 25, 2026
4 checks passed
@moviendome
moviendome deleted the feat/sdp-v0.2 branch June 25, 2026 05:54
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.

1 participant