Page MenuHomePhabricator

Cain (Cain)
User

Projects

User does not belong to any projects.

User Details

User Since
Jan 17 2025, 05:34 (82 w, 4 d)

Recent Activity

Fri, Aug 14

Cain abandoned D20389: [Cashtab] Add signMessage request to cashtab-connect + extension.

Abandoning after discussion.

Fri, Aug 14, 04:17

Sat, Aug 8

Cain requested review of D20389: [Cashtab] Add signMessage request to cashtab-connect + extension.
Sat, Aug 8, 17:01
Cain updated the summary of D20389: [Cashtab] Add signMessage request to cashtab-connect + extension.
Sat, Aug 8, 17:00

Fri, Jul 31

Cain updated the diff for D20335: [Cashtab] Add and implement a standard for agora action deep links.

Fixed as proposed: a manual row selection now releases the deep-link hold (handleManualSelectOffer clears the outpoint ref before setSelectedIndex), so subsequent refreshes follow the user's choice. Fair catch on the interaction — this was a consequence of moving the hold to outpoint identity last round: the old boolean merely skipped auto-select on refresh (so a manual pick happened to survive), while the identity hold actively re-resolves the held offer, which made "manual selection supersedes the link" need to be explicit. It now is, with a comment stating the rule. Couldn't test the full click-then-refresh sequence (the harness can't drive a mid-session refetch), but the row-click path itself is exercised by the existing multi-offer tests.

Fri, Jul 31, 03:44
Cain updated the diff for D20335: [Cashtab] Add and implement a standard for agora action deep links.

All four addressed:

Fri, Jul 31, 03:25
Cain updated the diff for D20335: [Cashtab] Add and implement a standard for agora action deep links.

Fixed: the blacklist answer is now bound to the token it was fetched for. A blacklistCheckedForTokenId ref is stamped with the fetch closure's captured tokenId at both set-sites (including the error-assume-false path), and the deep-link gate requires it to match the rendered tokenId — a mismatched answer reads as still-loading, and the effect re-evaluates when the current token's own answer arrives (isBlacklisted is a dependency). This closes the reused-component window where /token/b's deep link could apply against /token/a's stale isBlacklisted === false, with appliedDeepLinkKey then blocking re-evaluation. Couldn't add an automated test — the harness mounts fresh per test and can't drive an in-place route change — but the existing blacklist-refusal test covers the gate's normal path.

Fri, Jul 31, 03:12
Cain updated the diff for D20335: [Cashtab] Add and implement a standard for agora action deep links.

Four fixed, two declined with reasons — plus two hardenings from my own pass that the reviewed diff predated (deep-link selection skips the wallet's own offers, with a maker-wallet test; the repeated-param error preserves b=1).

Fri, Jul 31, 01:14
Cain updated the diff for D20335: [Cashtab] Add and implement a standard for agora action deep links.

Both addressed:

Fri, Jul 31, 00:30

Thu, Jul 30

Cain updated the diff for D20335: [Cashtab] Add and implement a standard for agora action deep links.

Five of the six addressed; pushing back on one:

Thu, Jul 30, 23:53
Cain updated the diff for D20335: [Cashtab] Add and implement a standard for agora action deep links.

Fixed: an empty ?action= is now treated as absent — falling back like any non-agora link — in both the Cashtab parser and pay.e.cash, consistent with the spec's empty-value rule and with how empty price/quantity are already handled. (The token screen already treated an empty action as no action.) Added a parser test.

Thu, Jul 30, 22:49
Cain updated the diff for D20335: [Cashtab] Add and implement a standard for agora action deep links.

Addressed all four findings, then did a full audit of the deep-link path and found (and fixed) three more things review hadn't caught:

Thu, Jul 30, 22:22
Cain updated the diff for D20335: [Cashtab] Add and implement a standard for agora action deep links.

All three addressed:

Thu, Jul 30, 21:22
Cain updated the diff for D20335: [Cashtab] Add and implement a standard for agora action deep links.

All three addressed:

Thu, Jul 30, 20:59
Cain updated the diff for D20335: [Cashtab] Add and implement a standard for agora action deep links.

Fixed the offer-refresh Major: fetchAndPrepareActiveOffers was unconditionally re-selecting the best (cheapest affordable) offer on every fetch, including the refetch a websocket trade or balance change triggers. Since a BUY deep link's offer override only runs once, a refresh would reset the selection to cheapest and erase the prefilled quantity for a pricier offer that was chosen to fill it. The auto-select now skips once a deep link has applied its selection (guarded on prepopulateBuyQtyApplied); non-deep-link buys are unchanged, and cross-token navigation still auto-selects because the tokenId reset clears that flag.

Thu, Jul 30, 18:23
Cain updated the diff for D20335: [Cashtab] Add and implement a standard for agora action deep links.

Both fixed:

Thu, Jul 30, 17:34
Cain updated the diff for D20335: [Cashtab] Add and implement a standard for agora action deep links.

Two fixes and one I'd push back on:

Thu, Jul 30, 17:08
Cain updated the diff for D20335: [Cashtab] Add and implement a standard for agora action deep links.

Worked through all six CodeRabbit findings:

Thu, Jul 30, 07:33
Cain updated the diff for D20335: [Cashtab] Add and implement a standard for agora action deep links.

Both minors addressed:
LIST / quantity docs: added the explicit rule to the LIST section of agora-deeplink.md — a quantity on a LIST is invalid and the wallet must surface a validation error (symmetric with BUY's price rule) — and removed a stale "(and quantity)" reference in the LIST validation steps. The parsers already enforced this; the doc now matches.
BUY on an NFT collection: the token screen now refuses a BUY on an NFT parent (collection) with a toast, mirroring LIST — you don't buy a collection token itself, you buy its child NFTs on their own screens. The refusal keys on isNftParent only, deliberately not the "listable" set: XECX and Firma are redeem-only (not listable) but they do have an Agora orderbook you can buy from, so gating BUY on getListActionForToken() would have wrongly blocked them (guarded by the existing "BUY is allowed for XECX" test). Added a test for the collection-BUY refusal.
Regression green (224 tests), prettier + arc lint clean.

Thu, Jul 30, 04:02
Cain updated the diff for D20335: [Cashtab] Add and implement a standard for agora action deep links.

More CodeRabbit findings

Thu, Jul 30, 03:36
Cain added a comment to D20335: [Cashtab] Add and implement a standard for agora action deep links.

Addressed the remaining CodeRabbit minors:

Thu, Jul 30, 02:46
Cain updated the diff for D20335: [Cashtab] Add and implement a standard for agora action deep links.

Addressed the remaining CodeRabbit minors

Thu, Jul 30, 02:46

Wed, Jul 29

Cain added a comment to D20335: [Cashtab] Add and implement a standard for agora action deep links.

Fixed CodeRabbit's two majors:

Wed, Jul 29, 14:40
Cain updated the diff for D20335: [Cashtab] Add and implement a standard for agora action deep links.

Fix BUY+price parser error + prefill wipe-on-refresh

Wed, Jul 29, 14:40
Cain added a comment to D20335: [Cashtab] Add and implement a standard for agora action deep links.

The Diff Testing build (cashtab-tests + ai-review) is failing before it runs — the log says "Snapshot dependency failed to start: Automated Deployments / Bitcoin ABC Infra / Bitcoin-ABC Infra Checkout". Looks like a CI infra issue on your end rather than the diff (base is on current master, arc lint passes, and the cashtab suite passes locally). Anything I can do, or is this one for an admin? @bytesofman @Fabien

Wed, Jul 29, 07:13
Cain updated the diff for D20335: [Cashtab] Add and implement a standard for agora action deep links.

Re-trigger CI

Wed, Jul 29, 07:01
Cain updated the diff for D20335: [Cashtab] Add and implement a standard for agora action deep links.

Address CodeRabbit follow-ups

Wed, Jul 29, 06:53
Cain updated the summary of D20335: [Cashtab] Add and implement a standard for agora action deep links.
Wed, Jul 29, 06:26
Cain updated the diff for D20335: [Cashtab] Add and implement a standard for agora action deep links.

Implement smarter BUY (quantity) + address CodeRabbit findings

Wed, Jul 29, 06:24

Mon, Jul 27

Cain added a comment to D20389: [Cashtab] Add signMessage request to cashtab-connect + extension.

This is still lacking a proper rationale. Describing the feature is not enough, I want to know what you're trying to achieve and why you think you need this feature.

Mon, Jul 27, 17:15

Sat, Jul 25

Cain updated the diff for D20389: [Cashtab] Add signMessage request to cashtab-connect + extension.

Re-submitting with arc lint actually run: installed the full local lint toolchain (clang-format 16, shellcheck, ruff, yamllint, mypy, djlint, phpcs) so .arclint loads, and arc lint over this diff passes clean (verified it flags planted violations). No code change from the prior diff.

Sat, Jul 25, 21:26
Cain accepted D20391: [charts.e.cash] Fix rich list and mobile chart picker scrolling.
Sat, Jul 25, 21:19
Cain updated the diff for D20389: [Cashtab] Add signMessage request to cashtab-connect + extension.

Address review feedback (bytesofman + CodeRabbit):

Sat, Jul 25, 21:02
Cain requested review of D20389: [Cashtab] Add signMessage request to cashtab-connect + extension.
Sat, Jul 25, 06:04
Cain abandoned D20381: [Cashtab] Add ?msg= and ?callback= deep links to Sign & Verify.

Abandoning this in favor of the approach you pointed at. You're right: returning a wallet signature to a website via a URL callback is a web-integration / auth-shaped feature, not eCash-specific, and the redirect + exfiltration surface doesn't belong bolted onto Sign & Verify. I'll put up a cashtab-connect signMessage request instead, mirroring the existing requestAddress approval flow (in-page popup, origin-bound, signature returned in memory). Thanks for the steer.

Sat, Jul 25, 05:33

Fri, Jul 24

Cain added a comment to D20381: [Cashtab] Add ?msg= and ?callback= deep links to Sign & Verify.

Currently cashtab-connect only works on the browser extension, but not on the web version of Cashtab (mobile and desktop). The problem I have is that users have to manually paste a signature from cashtab back to the dapp and it leads to a clunky user experience. The ideal solution is user clicks "sign in cashtab" button, it opens cashtab (web or extension) with the message prefilled and asks if you want to sign, when you approve, the signature is sent to the dapp.

Fri, Jul 24, 17:15
Cain added a comment to D20381: [Cashtab] Add ?msg= and ?callback= deep links to Sign & Verify.

The reason for this feature is because cashtab-connect is only available with the extension, which is not available to users on mobile or desktop users without the extension installed. Cashtab-connect could theoretically allow you to sign a message in cashtab and have it return it directly to proofofwriting's page code. The signature acts like a private key to a "pocket" wallet that is created in proofofwriting. A small pocket where you can keep pocket change to be spent on the site without having to toggle back and forth between proofofwriting and cashtab. If cashtab-connect existed for the non-extension version of Cashtab, I'd leverage that, but it seems that is not possible. This was an attempt at a workaround for the web wallet. I'm trying to make the creation of the Pocket wallet less clunky. Right now you have to copy and paste a message into cashtab, sign, then manually toggle back to proofofwriting and paste the signature into a box. This was going to make it so you just click sign, then approve and the signature gets sent back to proofofwriting.

Fri, Jul 24, 13:13
Cain updated the summary of D20381: [Cashtab] Add ?msg= and ?callback= deep links to Sign & Verify.
Fri, Jul 24, 05:15
Cain requested review of D20381: [Cashtab] Add ?msg= and ?callback= deep links to Sign & Verify.
Fri, Jul 24, 05:11
Cain added a comment to D20335: [Cashtab] Add and implement a standard for agora action deep links.

Fixed 1.

Fri, Jul 24, 04:02
Cain updated the diff for D20335: [Cashtab] Add and implement a standard for agora action deep links.

Refuse LIST for XECX/Firma (redeem-only), add tests

Fri, Jul 24, 04:01

Wed, Jul 22

teamcity awarded D20335: [Cashtab] Add and implement a standard for agora action deep links a Haypence token.
Wed, Jul 22, 19:26
Cain updated the diff for D20335: [Cashtab] Add and implement a standard for agora action deep links.

Rebased onto latest master

Wed, Jul 22, 08:39
Cain updated the diff for D20335: [Cashtab] Add and implement a standard for agora action deep links.

Move agora links to /token, add pay.e.cash and docs.e.cash support

Wed, Jul 22, 06:06

Tue, Jul 21

Cain added a comment to D20335: [Cashtab] Add and implement a standard for agora action deep links.

All three done.

Tue, Jul 21, 14:16
Cain updated the diff for D20335: [Cashtab] Add and implement a standard for agora action deep links.

Move agora links to /token, add pay.e.cash and docs.e.cash support).

Tue, Jul 21, 14:16
Cain added a comment to D20335: [Cashtab] Add and implement a standard for agora action deep links.

Done — implemented it in this diff.

Tue, Jul 21, 03:35
Cain retitled D20335: [Cashtab] Add and implement a standard for agora action deep links from [doc] Add a standard for Agora action deep links to [Cashtab] Add and implement a standard for agora action deep links.
Tue, Jul 21, 03:34
Cain updated the diff for D20335: [Cashtab] Add and implement a standard for agora action deep links.

Implemented the spec in this diff, added tests and pay.e.cash support

Tue, Jul 21, 03:32

Sun, Jul 19

Cain added a comment to D20335: [Cashtab] Add and implement a standard for agora action deep links.

Yeah, this makes sense to me. A sellNft-specific link is too narrow, and since Agora isn't a Cashtab thing, a general standard is the right call. Lines up with T3760.

Sun, Jul 19, 18:50
Cain retitled D20335: [Cashtab] Add and implement a standard for agora action deep links from [Cashtab] Deep-link a token sell action and price via URL query params to [doc] Add a standard for Agora action deep links.
Sun, Jul 19, 18:49
Cain updated the diff for D20335: [Cashtab] Add and implement a standard for agora action deep links.

Reworked as a spec doc per review; implementation to follow.

Sun, Jul 19, 18:44

Jul 18 2026

Cain updated the summary of D20335: [Cashtab] Add and implement a standard for agora action deep links.
Jul 18 2026, 02:23

Jul 17 2026

Cain requested review of D20335: [Cashtab] Add and implement a standard for agora action deep links.
Jul 17 2026, 23:20

Jul 15 2026

Cain accepted D20289: [cashtab, ecash-parse, herald] Parse POWR comment and comment_reply.

Confirmed the OP_10/OP_11 encoding, payload order, and validation match the proofofwriting.com emitter exactly. LGTM.

Jul 15 2026, 05:03

Sep 6 2025

Cain accepted D18573: [Cashtab] autoclose extension tx and webapp-opened tx after 1s instead of 2s.
Sep 6 2025, 04:04