@xian-tech/provider
v0.1.11
Published
Xian browser wallet provider contract and reference provider
Readme
@xian-tech/provider
This package defines the browser wallet provider surface for Xian and ships a simple in-memory provider plus injected-wallet discovery helpers.
It includes:
request(...)-based provider interface- account and chain event handling
- a reference provider that delegates signing and submission to
@xian-tech/client - browser injection and discovery helpers for
window.xianandwindow.xianProviders - a dapp-facing wrapper around an injected provider
Core helpers:
registerInjectedXianProvider(...): wallet-side registration into the global browser namespacelistInjectedXianProviders(...): enumerate known injected walletsgetInjectedXianProvider(...): resolve the default or matching injected walletwaitForInjectedXianProvider(...): await late wallet injection via thexian#initializedeventInjectedXianWallet: dapp-facing convenience wrapper for connect, chain, wallet info, asset watching, transaction preparation, sign, and send flowsProviderBackedXianSigner: adapter that lets provider-backed wallets fit signer-based APIs that only needgetAddress()andsignMessage()
Current provider request methods include:
xian_getWalletInfoxian_requestAccountsxian_accountsxian_chainIdxian_switchChainxian_watchAssetxian_prepareTransactionxian_signMessagexian_signTransactionxian_sendTransactionxian_sendCall
It does not own:
- framework bindings
- production wallet custody flows
flowchart LR
Wallet["Wallet implementation"] --> Register["registerInjectedXianProvider"]
Register --> Namespace["window.xian and window.xianProviders"]
Dapp["Dapp"] --> Discovery["InjectedXianWallet discovery"]
Discovery --> Namespace
Dapp --> Request["provider.request"]
Request --> Wallet
Wallet --> Client["@xian-tech/client"]