Skip to content

Finish 0.3.0: prove Kraken scope, drop the futures claim, close three… - #21

Merged
hsnice16 merged 1 commit into
mainfrom
finish-0.3.0
Sep 16, 2026
Merged

hsnice16 merged 1 commit into
mainfrom
finish-0.3.0

Conversation

@hsnice16

Copy link
Copy Markdown
Owner

… netting and terminal bugs

Kraken publishes GetApiKeyInfo, gated on no permission of its own, so trade access is proven rather than reported as unknown and a key that can place orders is refused at connect time. Four surfaces said the opposite.

/binance advertised USD-M futures that verifyScope makes unreachable — the connector's own comment said so, and README said the opposite of the page.

Three defects found by running the code rather than reading it:

  • assetOn's bridge guard sat behind name === scoped, so it never ran for ten bridged tickers. A contract calling itself GNO on Linea took the bare ticker, netting into the real holding and drawing its price.
  • A Hyperliquid builder dex could take a chain's name, putting optimism:USDT on the book — the same shape a bridged token gets.
  • whenLeaving registered a handler per caller, each re-raising after its own cleanup. Re-raising ends the process, so only the first mode registered was ever handed back.

Also: non-JSON venue bodies no longer read as a bug in tula, a corrupt credentials.json names the way out instead of being emptied by the read path, a refused CoinGecko id is asked again rather than cached for the TTL, and npm update -g cannot cross a 0.x minor so the instruction is npm install.

Venue facts re-checked against each venue's own docs: Aave removed stable-rate debt in v3.2 and the Safety Module is now Umbrella; Hyperliquid publishes the 95% trigger for portfolio margin only; Coinbase's perps are INTX.

… netting and terminal bugs

Kraken publishes GetApiKeyInfo, gated on no permission of its own, so trade
access is proven rather than reported as unknown and a key that can place
orders is refused at connect time. Four surfaces said the opposite.

/binance advertised USD-M futures that verifyScope makes unreachable — the
connector's own comment said so, and README said the opposite of the page.

Three defects found by running the code rather than reading it:

- assetOn's bridge guard sat behind `name === scoped`, so it never ran for ten
  bridged tickers. A contract calling itself GNO on Linea took the bare ticker,
  netting into the real holding and drawing its price.
- A Hyperliquid builder dex could take a chain's name, putting `optimism:USDT`
  on the book — the same shape a bridged token gets.
- whenLeaving registered a handler per caller, each re-raising after its own
  cleanup. Re-raising ends the process, so only the first mode registered was
  ever handed back.

Also: non-JSON venue bodies no longer read as a bug in tula, a corrupt
credentials.json names the way out instead of being emptied by the read path, a
refused CoinGecko id is asked again rather than cached for the TTL, and
`npm update -g` cannot cross a 0.x minor so the instruction is `npm install`.

Venue facts re-checked against each venue's own docs: Aave removed stable-rate
debt in v3.2 and the Safety Module is now Umbrella; Hyperliquid publishes the
95% trigger for portfolio margin only; Coinbase's perps are INTX.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@vercel

vercel Bot commented Sep 16, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
tula Ready Ready Preview Sep 16, 2026 8:00am UTC

@hsnice16
hsnice16 merged commit eee8950 into main Sep 16, 2026
7 checks passed

This branch was successfully deployed

1 active deployment
Preview — 9f725d54 Deployed Sep 16, 2026 by vercel[bot]
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