odiinnn f46a4418c9 Add disconnect functionality to App component
- Introduced a disconnect button that removes the wallet from localStorage and reloads the page when clicked.
- Updated the rendering logic to conditionally display the connect and disconnect buttons based on the connection state.
2025-09-30 18:34:31 +03:00
2025-09-23 20:38:15 +03:00

@varan-wallet/varan-connect

A lightweight TypeScript library for Telegram Web App wallet integration with support for both CommonJS and ES modules.

Installation

npm install @varan-wallet/varan-connect
# or
pnpm add @varan-wallet/varan-connect
# or
yarn add @varan-wallet/varan-connect

Usage

import { injectVaranWallet } from '@varan-wallet/varan-connect';
import WebApp from '@twa-dev/sdk';

// Inject the Varan wallet into the window object
injectVaranWallet(WebApp);

// The wallet is now available at window.injectedWeb3.varan
const varanWallet = window.injectedWeb3?.varan;
if (varanWallet) {
  // Connect to wallet
  const connection = await varanWallet.connect();
  
  // Get accounts
  const accounts = await connection.accounts.get();
  
  // Sign transactions
  const signer = connection.signer;
  const signature = await signer.signRaw({
    address: '0x123...',
    data: '0x456...'
  });
}

CommonJS

const { injectVaranWallet } = require('@varan-wallet/varan-connect');
const WebApp = require('@twa-dev/sdk').default;

// Inject the Varan wallet
injectVaranWallet(WebApp);

// Use the injected wallet
const varanWallet = window.injectedWeb3?.varan;

Module Support

This library supports both module systems:

  • ES Modules (ESM): Modern JavaScript modules using import/export
  • CommonJS (CJS): Node.js traditional modules using require/module.exports

The library automatically detects which module system you're using and provides the appropriate format.

API

injectVaranWallet(webApp: WebApp): void

Injects the Varan wallet into the window object for Telegram Web App integration.

Parameters:

  • webApp: The Telegram Web App instance from @twa-dev/sdk

Returns: void

Types

The library exports comprehensive TypeScript types:

  • WebApp - Telegram Web App interface from @twa-dev/sdk
  • InjectedWindow - Extended window interface with injected wallet from @polkadot/extension-inject
  • ConnectRequest, SignTransactionRequest - Request interfaces
  • ConnectResult, SignTransactionResult - Result interfaces
  • InjectionConfig - Configuration options for wallet injection

Dependencies

Runtime Dependencies:

  • @twa-dev/sdk - Telegram Web App SDK

Development Dependencies:

  • @polkadot/extension-inject - Polkadot extension injection types
  • @polkadot/types - Polkadot types
  • TypeScript for compilation
  • ESLint for code quality
  • Prettier for code formatting
  • Jest for testing

Build Outputs

The library provides multiple build outputs:

  • dist/esm/ - ES Modules build (.mjs compatible)
  • dist/cjs/ - CommonJS build (Node.js compatible)
  • dist/types/ - TypeScript type definitions

Development

Setup

pnpm install

Build

pnpm run build        # Build all formats
pnpm run build:esm    # Build ES modules only
pnpm run build:cjs    # Build CommonJS only
pnpm run build:types  # Build types only

Development mode

pnpm run dev

Testing

pnpm test

Linting

pnpm run lint

Formatting

pnpm run format

Publishing

# Publish with automatic version bumping
pnpm run publish:patch    # 1.0.0 -> 1.0.1
pnpm run publish:minor    # 1.0.0 -> 1.1.0
pnpm run publish:major    # 1.0.0 -> 2.0.0

# Manual publish (after building)
pnpm publish

License

MIT

S
Description
No description provided
Readme
152 KiB
0 Stars 3 Watchers 0 Forks
Languages
TypeScript 92.6%
CSS 4.8%
JavaScript 1.7%
HTML 0.9%