Skip to content

Remove the AO token integration (D17) - #5

Open
jim-toth wants to merge 3 commits into
mainfrom
dev-hyper-aos-migration
Open

Remove the AO token integration (D17)#5
jim-toth wants to merge 3 commits into
mainfrom
dev-hyper-aos-migration

Conversation

@jim-toth

Copy link
Copy Markdown
Contributor

Last of the W4 services, and it needed no port. Every AO call site here was an $AO balance check against a legacynet token process — three dry-runs asking what the operator-registry, relay-rewards and staking-rewards controller wallets held, so they could be kept topped up for message fees. Nothing read a protocol contract. So removing the integration removes the whole AO surface, and @permaweb/aoconnect and the local send-aos-message.ts wrapper delete outright rather than moving to the shared client.

The premise is gone: we run our own HyperBEAM node and pay no per-message $AO, so there is no balance to deplete and nothing for the checks to observe. They had in fact already been switched off in both live and stage (AO_BALANCE_CHECKS_ENABLED="false"), on the grounds that AO was not charging fees yet — the migration settles the "yet".

Nothing was funded by them. Unlike the bundler, rewards-pool and Turbo checks, these three computed a requestAmount and never enqueued a refill; the value was only recorded to mongo. So no funding path is unwound by this, and the only observable losses are three balances-data 'kind' rows and two accumulation alarms that could not fire while the checks were disabled.

Removed: DistributionChecksService and RelayRegistryChecksService (both were 100% $AO checking), their three flow children and queue branches, and their config — AO_TOKEN_PROCESS_ID, AO_BALANCE_CHECKS_ENABLED and the six MIN/MAX_AO_BALANCE thresholds — from both HCLs.

Kept: OPERATOR_REGISTRY/RELAY_REWARDS/STAKING_REWARDS_CONTROLLER_ADDRESS. Those look like AO config but are shared with the Turbo credits checks, which still need them.

Test baseline is unchanged: 2 passed, 2 failed both before and after, the two failures being pre-existing timeouts in specs that need a live mongo.

jim-toth added 3 commits July 28, 2026 13:58
Last of the W4 services, and it needed no port. Every AO call site here was an
$AO balance check against a legacynet token process — three dry-runs asking what
the operator-registry, relay-rewards and staking-rewards controller wallets held,
so they could be kept topped up for message fees. Nothing read a protocol
contract. So removing the integration removes the whole AO surface, and
@permaweb/aoconnect and the local send-aos-message.ts wrapper delete outright
rather than moving to the shared client.

The premise is gone: we run our own HyperBEAM node and pay no per-message $AO, so
there is no balance to deplete and nothing for the checks to observe. They had
in fact already been switched off in both live and stage
(AO_BALANCE_CHECKS_ENABLED="false"), on the grounds that AO was not charging fees
yet — the migration settles the "yet".

Nothing was funded by them. Unlike the bundler, rewards-pool and Turbo checks,
these three computed a requestAmount and never enqueued a refill; the value was
only recorded to mongo. So no funding path is unwound by this, and the only
observable losses are three balances-data 'kind' rows and two accumulation
alarms that could not fire while the checks were disabled.

Removed: DistributionChecksService and RelayRegistryChecksService (both were
100% $AO checking), their three flow children and queue branches, and their
config — AO_TOKEN_PROCESS_ID, AO_BALANCE_CHECKS_ENABLED and the six
MIN/MAX_AO_BALANCE thresholds — from both HCLs.

Kept: OPERATOR_REGISTRY/RELAY_REWARDS/STAKING_REWARDS_CONTROLLER_ADDRESS. Those
look like AO config but are shared with the Turbo credits checks, which still
need them.

Test baseline is unchanged: 2 passed, 2 failed both before and after, the two
failures being pre-existing timeouts in specs that need a live mongo.
Declared as a direct dependency but never imported anywhere in src/.

No effect on `npm audit`: lodash remains in the tree transitively. This is
declaration hygiene, so the manifest says what the service actually uses.
Non-breaking advisory fixes only; no direct dependency changed, lockfile only.

Production vulnerabilities 66 -> 60. Tracked with `npm audit --omit=dev`: the
all-inclusive headline moves the wrong way because the tree now resolves fully
and the growth is dev-only tooling (jest, eslint, the Nest CLI) that never ships.

Build clean.
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