UNPKG

ao-message-signer

Version:

A React component for signing messages with AO Protocol

180 lines (138 loc) 4.11 kB
# AO Message Signer A React component for signing messages with the AO Protocol on Arweave. This package includes both a React component for the frontend and a Lua handler for AO Protocol integration. ## Prerequisites Before using this package, ensure you have: 1. AOS Client installed globally: ```bash npm i -g https://get_ao.arweave.net ``` 2. AO Connect installed in your project: ```bash npm install --save @permaweb/aoconnect ``` 3. An Arweave wallet (like ArConnect) installed in your browser ## Installation Install the package in your React project: ```bash npm install ao-message-signer # or yarn add ao-message-signer ``` ## Setup ### 1. Lua Handler Setup When you install this package, a Lua handler will be automatically copied to your project's `src/handlers` directory. To deploy the handler: 1. Navigate to the handlers directory: ```bash cd src/handlers ``` 2. Start AOS: ```bash aos ``` 3. Load the handler: ```bash .load sign-message.lua ``` 4. After loading, you'll receive a Process ID. **Save this ID** - you'll need it for the React component. ### 2. React Component Usage ```jsx // Basic usage import { AOMessageSigner } from 'ao-message-signer'; function App() { return ( <AOMessageSigner processId="your-process-id-here" /> ); } // With custom styling and dark theme function StyledApp() { return ( <div className="p-4"> <h1 className="text-2xl font-bold mb-4">AO Message Signer</h1> <AOMessageSigner processId="your-process-id-here" theme="dark" style={{ maxWidth: '500px', margin: '0 auto' }} /> </div> ); } ``` ## Component Props | Prop | Type | Required | Default | Description | |------|------|----------|---------|-------------| | processId | string | Yes | - | The Process ID obtained from loading your Lua handler | | className | string | No | "" | Additional CSS classes for styling | | style | object | No | {} | Inline styles for the component | | theme | 'light' \| 'dark' | No | 'light' | Color theme for the component | ## Themes The component comes with two built-in themes: ### Light Theme (Default) - Clean, minimal design - White background - Blue accent colors - Subtle shadows and borders ### Dark Theme - Dark background - Light text - Blue accent colors - Optimized for dark mode To use the dark theme: ```jsx <AOMessageSigner processId="your-process-id" theme="dark" /> ``` ## Features - 🎨 Built-in light and dark themes - 🔒 Secure message signing with AO Protocol - 💅 Modern, responsive design - ⚡ Loading animations and states - 🚨 Error handling with visual feedback - 🔄 Automatic Lua handler installation - 📱 Mobile-friendly interface ## Styling Examples ### Custom Container Style ```jsx <AOMessageSigner processId="your-process-id" style={{ maxWidth: '600px', margin: '20px auto', boxShadow: '0 4px 6px rgba(0, 0, 0, 0.1)' }} /> ``` ### Custom Class Names ```jsx <AOMessageSigner processId="your-process-id" className="my-custom-class" theme="dark" /> ``` ## Troubleshooting 1. **Component not rendering?** - Check if Tailwind CSS is installed and configured - Verify that you have an Arweave wallet extension installed - Ensure you're using a valid Process ID 2. **Lua handler not loading?** - Make sure AOS is installed globally - Check if you're in the correct directory - Verify the handler file exists in `src/handlers` 3. **Styling issues?** - Ensure Tailwind CSS is properly configured - Check for CSS conflicts with your existing styles - Try using the built-in themes before custom styling 4. **Signing errors?** - Confirm your Arweave wallet is connected - Verify your Process ID is correct - Check browser console for detailed error messages ## Contributing Contributions are welcome! Please feel free to submit a Pull Request. ## License MIT