Repository navigation
Engine v0.2 (lean): custody_provider wiring + thin ramps helper - #1
Merged
Merged
Conversation
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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Engine v0.2 (lean) — the
solrengine-sdphalf of the Grant M2 SDP v0.2 work. Pairs with the client PR (solana-sdpPR #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)VERSION0.1.0 → 0.2.0;COMPATIBLE_SDP_VERSION0.28 → 0.31solana-sdp "~> 0.1"→"~> 0.2"custody_providerinto.client— the builder was droppingConfiguration#custody_provider, so wallet-list lookups (e.g.ProvisionWalletJobadoption) 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.rampsaccessor — sole job is to defaultprovider:from config, mirroring howcustody_providerdefaults wallet calls. No model, no extra state; everything else passes straight through to the client.Configuration#ramp_provider(+SDP_RAMP_PROVIDERfallback)config.ramp_provider+ issuance/ramps usage notesScope
Token model +
MintJobare 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