npm.io
0.1.1 • Published 8 months ago

@rialo/wallet-standard

Licence
Apache-2.0
Version
0.1.1
Deps
2
Size
102 kB
Vulns
0
Weekly
0

@rialo/wallet-standard

Wallet Standard implementation for Rialo Network, providing a standardized interface for wallet interactions following the Wallet Standard specification.

Installation

npm install @rialo/wallet-standard
yarn add @rialo/wallet-standard
pnpm add @rialo/wallet-standard

Overview

This package provides the standard wallet interface for Rialo Network applications. It implements the Wallet Standard specification to ensure compatibility and interoperability across different wallet implementations and dApps.

Features

  • Full Wallet Standard compliance
  • Rialo-specific transaction signing and submission
  • Multi-chain support for Rialo networks
  • Message signing capabilities
  • Event-driven architecture for state management

Usage

Connect to Wallet
const { accounts } = await wallet.features['standard:connect'].connect();

// Access the connected account
const account = accounts[0];
console.log('Connected account:', account.address);
Sign and Send Transaction
import { RialoSignAndSendTransaction } from '@rialo/wallet-standard';

const result = await wallet.features[RialoSignAndSendTransaction].signAndSendTransaction({
  account: account,
  transaction: transactionBuffer,
  chain: 'rialo:mainnet',
  options: {
    skipPreflight: false
  }
});

console.log('Transaction signature:', result.signature);
Sign Message
import { RialoSignMessage } from '@rialo/wallet-standard';

const result = await wallet.features[RialoSignMessage].signMessage({
  account: account,
  message: new TextEncoder().encode('Hello, Rialo!'),
  chain: 'rialo:mainnet'
});

console.log('Message signature:', result.signature);
Event Handling
wallet.features['standard:events'].on('change', ({ accounts, chains }) => {
  console.log('Wallet state changed');
  console.log('Active accounts:', accounts);
  console.log('Active chains:', chains);
});

API Reference

Features
Standard Features
  • standard:connect - Connect to the wallet
  • standard:disconnect - Disconnect from the wallet
  • standard:events - Event subscription interface
Rialo Features
  • rialo:signAndSendTransaction - Sign and submit a single transaction
  • rialo:signAndSendAllTransactions - Sign and submit multiple transactions
  • rialo:signTransaction - Sign a transaction without submitting
  • rialo:signMessage - Sign an arbitrary message
Types
RialoWalletAccount
interface RialoWalletAccount {
  address: string;
  publicKey: Uint8Array;
  chains: RialoChain[];
  features: string[];
  label?: string;
  icon?: string;
}
RialoChain
type RialoChain = 'rialo:testnet' | 'rialo:devnet' | 'rialo:localnet';

Chain Support

The wallet standard supports the following Rialo chains:

  • rialo:localnet - Rialo Local Network
  • rialo:testnet - Rialo Testnet
  • rialo:devnet - Rialo Development Network

Browser Support

This package supports all modern browsers with ES2020 compatibility:

  • Chrome 80+
  • Firefox 75+
  • Safari 14+
  • Edge 80+

TypeScript Support

This package includes TypeScript definitions. No additional @types packages are required.

import type {
  RialoWalletAccount,
  RialoChain,
  RialoSignTransactionOutput
} from '@rialo/wallet-standard';

Contributing

Contributions are welcome. Please ensure all changes maintain Wallet Standard compliance.

License

Apache-2.0

Keywords