caip-wallet
TypeScript icon, indicating that this package has built-in type declarations

1.6.6 • Public • Published

caip-wallet npm version

CAIP-compatible Multi-Blockchain Wallet

Quick Start

import CaipWallet from "caip-wallet";

// Initiate Wallet with target chains
const wallet = await CaipWallet.init({
  chains: ["eip155:1"],
  mnemonic:
    "basic guard spider horse civil trumpet into chalk basket month cabbage walk",
});

// Subscribe to pending user approval event
wallet.on("pending_approval", ({ chainId, request }) => {
  // Display Request with ChainID for user approval
  if (userApproved) {
    wallet.approve(request, chainId);
  } else {
    wallet.reject(request, chainId);
  }
});

// Resolve incoming JSON-RPC requests
const request = {
  id: 1,
  jsonrpc: "2.0",
  method: "personal_sign",
  params: [
    toHex("Test Message")
    "0xa89Df33a6f26c29ea23A9Ff582E865C03132b140"
  ]
}
const response = await wallet.resolve(request, chainId)
// (resolved automatically unless required user approval for authentication)

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>;
}

Package Sidebar

Install

npm i caip-wallet

Weekly Downloads

301

Version

1.6.6

License

MIT

Unpacked Size

2.44 MB

Total Files

73

Last publish

Collaborators

  • pedrouid