You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Drafted from an internal source repo, requested by @arcticfloyd1984.
This PR was auto-generated by the reusable-docs-draft-pr workflow from a Claude-drafted update in the source repo. It is opened as a draft — please review, edit as needed, and mark ready for review before merging.
Review checklist
Content matches the behavior shipped in the source PR
No internal-only details (service names, file paths, unreleased names, security internals) leaked into the draft
Conforms to CLAUDE.md style rules
Cross-references and internal links resolve
Any Needs human input items from the source comment are addressed
Generated by reusable-docs-draft-pr.yml in relayprotocol/agents-config.
Code Review: PR #309 — docs(drift): draft from internal source
Read the PR diff
Read full file context for features/deposit-addresses.mdx
Cross-check against CLAUDE.md style rules
Post review
This PR documents a new use of refundTo — passing the origin chain's "native-currency address" to auto-refund the depositor. The substance is a useful addition, but a few things should be tightened before merging.
1. Param-table cell is too long (CLAUDE.md §2.7)
features/deposit-addresses.mdx:26 — the new refundTo row in the Key Parameters table is now ~95 words and contains the full address triplet plus a rejection rule plus the existing omission rule plus a cross-link. §2.7 explicitly says: "Keep cell descriptions concise; move long explanations into prose below the table."
Suggest trimming the row to a short pointer and letting the Refund Behavior section (where the same triplet already lives, line 918) be the source of truth. Something like:
Address to send refunds if the transfer fails. Required for strict deposit addresses and for routes that include a destination-side swap. Pass the origin chain's native-currency address to auto-refund the depositor. Omitting on open addresses disables automatic refund. See Refund Behavior.
features/deposit-addresses.mdx:923 — the new version inserts a clarifying clause between em-dashes, but the result reads as a triple-em-dash construction and breaks sentence flow:
do not use "refund to sender"— neither an explicit user address you don't control nor the native-currency-address auto-refund opt-in — the sender address will be the exchange's hot wallet, not the user's.
Two problems: (a) the appositive sits between an em-dash and another em-dash that originally introduced the explanation, which makes "the sender address will be…" feel disconnected from what it explains; (b) "an explicit user address you don't control" wasn't a refundTo option the table just defined — only the native-currency opt-in is the new "refund to sender" mechanism. The CEX-hot-wallet rationale applies to anything that resolves to the depositor.
Recommend splitting into two sentences, e.g.:
If users may send from a centralized exchange, do not refund to the depositor — neither via the native-currency-address opt-in nor a user-supplied address you don't control. The sender will be the exchange's hot wallet, not the user's. Use an app-controlled address instead so your support team can handle the last mile.
3. The address triplet is repeated three times
The same 0x000…0 / bc1qqq…mql8k8 / 1111…1111 list appears verbatim at lines 26, 918, and 930. Within a single page this isn't a CLAUDE.md §2.5 snippet-rule violation, but it's a maintenance hazard — if any address ever changes, three places must be edited in lockstep. Recommend keeping the canonical list in the Refund Behavior table row (line 918) and replacing the others with cross-references.
4. Please verify the Bitcoin "native-currency address"
bc1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqmql8k8 — the EVM zero address and the Solana system-program address are well-established conventions for "native asset", but I'm not aware of a comparable canonical "native BTC" address. Worth double-checking with the source PR / solver that this is the exact string the solver actually accepts (case-sensitive, checksum-valid bech32) before this ships, since a typo here is silently broken for integrators.
5. Pre-existing nit (not introduced by this PR)
The Key Parameters table at line 21 uses backticks (`useDepositAddress`) in the Property column rather than the **bold** convention CLAUDE.md §2.7 prescribes. Not blocking this PR — flagging for a future cleanup pass.
Summary
Substance is good; the new option is a useful addition. Three things to address before marking ready for review: (1) shorten the param-table cell, (2) rephrase the <Note>, (3) verify the Bitcoin address. Repetition (4) and the pre-existing table convention (5) are softer suggestions.
· Branch: docs-drift/src-c6bd60f6fe-d25c601
Code Review: PR #309 — docs(drift): draft from internal source
Read the PR diff
Read full file context for features/deposit-addresses.mdx
Cross-check against CLAUDE.md style rules
Post review
Scope note
After the merge from main (commit 64a3c45), this PR's effective delta vs origin/main is now a single line — the <Note> callout at features/deposit-addresses.mdx:923. The other changes from the original drift commit (8d8343b) — the Key Parameters table row, the Refund Behavior table row, and the Recommended Setup bullet — have all landed on main independently. So the previous review's points 1, 3, 4 (param-table cell length, address-triplet repetition, Bitcoin-address verification) are out of scope for this PR; they apply to the file as it sits on main and belong in a separate cleanup pass if anyone wants to pursue them.
The only point still in scope is #2: the <Note> rewrite.
1. The <Note> rewrite is harder to parse than what's already on main
features/deposit-addresses.mdx:923 — this is the entirety of the PR. Side-by-side:
main (before):
If users may send from a centralized exchange, do not use "refund to sender" (an explicit user address you don't control, or the native-currency-address auto-refund opt-in) — the sender address will be the exchange's hot wallet, not the user's.
PR (after):
If users may send from a centralized exchange, do not use "refund to sender" — neither an explicit user address you don't control nor the native-currency-address auto-refund opt-in — the sender address will be the exchange's hot wallet, not the user's.
The new version replaces a parenthetical with an em-dash appositive, which puts the reader inside a — neither … nor … — construction and then asks them to pick up the main clause again with "the sender address will be…". The result is a one-sentence triple-dash structure where the third clause feels disconnected from the first. The parenthetical version on main reads more cleanly because the qualifier is visually subordinated by the parens, leaving a clean do not X — Y arc.
This is also the only edit in the PR, so as it stands the change makes the prose slightly worse, not better. Two options:
Option A — revert this line. If there's no semantic intent behind the punctuation swap, drop the change and close/repurpose the PR. (Recommended.)
Option B — split into two sentences. If the goal is to make the qualifier more explicit than parens allow:
If users may send from a centralized exchange, do not refund to the depositor — neither via the native-currency-address opt-in nor a user-supplied address you don't control. The sender will be the exchange's hot wallet, not the user's. Use an app-controlled address instead so your support team can handle the last mile.
That puts the qualifier on the same side of the em-dash as the directive, ends the first sentence cleanly, and lets the rationale start a fresh sentence. Still under the 15-line cap (CLAUDE.md §2.5) and within the 2–3 sentence paragraph budget (§2.10).
For completeness, the touched line is otherwise compliant:
§2.5 callout-length cap (15 lines): well under. ✓
§2.10 paragraph length (2–3 sentences): two sentences. ✓
§2.3 voice: "you"-addressed, active. ✓
§2.9 emphasis: bold on the imperative, no italics. ✓
Summary
Given the merge from main, this PR's only remaining change is the <Note> rewrite at line 923, and that rewrite arguably degrades readability vs. what's already on main. Recommend either reverting the line (closing the PR as no-op) or splitting the qualifier into a separate sentence before marking ready for review.
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
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.
Drafted from an internal source repo, requested by @arcticfloyd1984.
This PR was auto-generated by the
reusable-docs-draft-prworkflow from a Claude-drafted update in the source repo. It is opened as a draft — please review, edit as needed, and mark ready for review before merging.Review checklist
CLAUDE.mdstyle rulesNeeds human inputitems from the source comment are addressedGenerated by
reusable-docs-draft-pr.ymlinrelayprotocol/agents-config.