caip-wallet ![npm version](https://badge.fury.io/js/caip-wallet.svg)
CAIP-compatible Multi-Blockchain Wallet
Quick Start
import CaipWallet from "caip-wallet";
const wallet = await CaipWallet.init({
chains: ["eip155:1"],
mnemonic:
"basic guard spider horse civil trumpet into chalk basket month cabbage walk",
});
wallet.on("pending_approval", ({ chainId, request }) => {
if (userApproved) {
wallet.approve(request, chainId);
} else {
wallet.reject(request, chainId);
}
});
const request = {
id: 1,
jsonrpc: "2.0",
method: "personal_sign",
params: [
toHex("Test Message")
"0xa89Df33a6f26c29ea23A9Ff582E865C03132b140"
]
}
const response = await wallet.resolve(request, chainId)
API
export abstract class ICaipWallet extends IEvents {
public abstract chains: ChainAuthenticatorsMap;
public abstract jsonrpc: ChainJsonRpcMap;
public abstract mnemonic: string;
constructor(config: CaipWalletConfig) {
super();
}
public abstract getChains(): Promise<string[]>;
public abstract getAccounts(chainId: string): Promise<string[]>;
public abstract approve(
request: JsonRpcRequest,
chainId: string
): Promise<JsonRpcResponse>;
public abstract reject(
request: JsonRpcRequest,
chainId: string
): Promise<JsonRpcResponse>;
public abstract resolve(
request: JsonRpcRequest,
chainId: string
): Promise<JsonRpcResponse>;
}