0.42.0 — blockrun_video pays on Solana - #118
Merged
Merged
Conversation
…solver Both Solana helpers loaded the key with the SDK's file-only loadSolanaWallet. Under BLOCKRUN_KEYCHAIN=strict the .solana-session file is retired once the key is in the OS keychain while getChain() still reports solana, so a funded wallet was reported as missing on blockrun_image and the new video route. Also rework solanaPaidAsyncPost's money path: the budget clock starts at entry and every request is clamped to what is left; submit/poll timeouts are 30s/60s with a 20s re-sign cadence and a back-off after a failed refresh; a poll 402 is classified from PAYMENT-RESPONSE (permanent -> funding error, otherwise the bounded re-sign path, whose exhaustion names the claimable job); a settlement receipt is honoured whatever the body; a 2xx non-quote is a fault rather than a free render; a 200 submit with poll_url is polled; the re-challenge pins the fee payer too and compares the amount as a string.
…ect_ratio The Solana branch passed a 300s request timeout and a poll budget that only started after submit, so the tool's '15 min hard cap' was closer to 20. It now passes SOLANA_VIDEO_TOTAL_BUDGET_MS and lets the helper own the timing. Drop the Solana-only image_url + aspect_ratio refusal: live unpaid probes of both gateways return a normal 402 quote for that combination on seedance-2.5 and nothing in the Solana gateway rejects it, so the guard only removed a Base capability from Solana. The budget-cap abort is phrased as uncharged so formatError stops appending funding advice to it.
Proactive and reactive re-signs, pinned re-challenges (amount, recipient, fee payer), bounded exhaustion wording, permanent settle reasons, receipt- without-body, failed/504/deadline, submit shapes, quote faults, resource-URL pinning, keychain resolver, and per-request budget clamping. Resets shared state per test and fails the owning test on unconsumed scripted responses.
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.
Summary
solana-402.ts: key resolved through the keychain-awareresolveSolanaKey()(fixesblockrun_imageon Solana underBLOCKRUN_KEYCHAIN=stricttoo); true total budget with per-request clamping; 30s submit / 60s poll / 20s re-sign; poll 402 classified fromPAYMENT-RESPONSE; settlement receipt honoured before body validation; re-challenge pins amount, recipient and fee payervideo.ts:SOLANA_VIDEO_TOTAL_BUDGET_MS; the Solana-onlyimage_url + aspect_ratiorefusal is removed (both gateways quote it); budget-cap abort no longer gets funding advice appendedblockrun_wallettext, gentech skill note, CHANGELOGVerification
npm test392/392 (23 new cases on the async Solana money path),npm run typecheck,npm run buildnpm run verify:pricesexit 0 — 0 under-reserving, 0 Solana under-reservedtools/listreturns 20 tools incl.blockrun_videosol.blockrun.aiquotesseedance-2.5withimage_url + aspect_ratio(402, not 400)