Registers a wallet adapter under its exact adapter.chain key
(v1.2 §2.1). Last-wins: a later registration for the same chain
replaces the earlier one. ⚠️ Security note: last-wins means ANY code
in the process can replace the adapter of a busy chain — registering
is a privilege of the application's trusted code; do not import
untrusted dependencies before registration.
A disposer removing the record this call created. The
disposer is idempotent and removes nothing if a later registration
has already replaced the record (it never removes someone else's
adapter).
Throws
If adapter is not an object with a non-empty
string chain and callable resolveWallet/isValidAddress.
Registers a wallet adapter under its exact
adapter.chainkey (v1.2 §2.1). Last-wins: a later registration for the same chain replaces the earlier one. ⚠️ Security note: last-wins means ANY code in the process can replace the adapter of a busy chain — registering is a privilege of the application's trusted code; do not import untrusted dependencies before registration.