- Remove executable permissions from configuration files (.editorconfig, .env.example, .gitignore) - Remove executable permissions from documentation files (README.md, LICENSE, SECURITY.md) - Remove executable permissions from web assets (HTML, CSS, JS files) - Remove executable permissions from data files (JSON, SQL, YAML, requirements.txt) - Remove executable permissions from source code files across all apps - Add executable permissions to Python
134 lines
4.3 KiB
Markdown
134 lines
4.3 KiB
Markdown
# AITBC Wallet Extension for Firefox
|
|
|
|
A Firefox browser extension that provides AITBC wallet functionality for interacting with the AITBC Trade Exchange and other dApps.
|
|
|
|
## Differences from Chrome Version
|
|
|
|
This version is specifically built for Firefox with the following differences:
|
|
|
|
- Uses Manifest V2 (Firefox still requires V2 for full functionality)
|
|
- Uses `browser_action` instead of `action` (V2 syntax)
|
|
- Uses `chrome.runtime.connect()` for background script communication
|
|
- Background script uses persistent connections via ports
|
|
|
|
## Installation
|
|
|
|
### Development Installation
|
|
|
|
1. Clone this repository
|
|
2. Open Firefox and navigate to `about:debugging`
|
|
3. Click "This Firefox" in the left sidebar
|
|
4. Click "Load Temporary Add-on..."
|
|
5. Select the `manifest.json` file from the `aitbc-wallet-firefox` folder
|
|
|
|
### Production Installation
|
|
|
|
The extension will be published to the Firefox Add-on Store (AMO). Installation instructions will be available once published.
|
|
|
|
## Usage
|
|
|
|
The usage is identical to the Chrome version:
|
|
|
|
1. Install the AITBC Wallet extension
|
|
2. Navigate to https://aitbc.bubuit.net/Exchange
|
|
3. Toggle the switch from "Demo Mode" to "Real Mode"
|
|
4. Click "Connect AITBC Wallet"
|
|
5. Approve the connection request in the popup
|
|
|
|
## Features
|
|
|
|
- **Wallet Management**: Create new accounts or import existing private keys
|
|
- **Secure Storage**: Private keys are stored locally in Firefox's storage
|
|
- **dApp Integration**: Connect to AITBC Trade Exchange and other supported dApps
|
|
- **Transaction Signing**: Sign transactions and messages securely
|
|
- **Balance Tracking**: View your AITBC token balance
|
|
|
|
## API Reference
|
|
|
|
The extension injects a `window.aitbcWallet` object into supported dApps with the following methods:
|
|
|
|
### `aitbcWallet.connect()`
|
|
Connect the dApp to the wallet.
|
|
```javascript
|
|
const response = await aitbcWallet.connect();
|
|
console.log(response.address); // User's AITBC address
|
|
```
|
|
|
|
### `aitbcWallet.getAccount()`
|
|
Get the current account address.
|
|
```javascript
|
|
const address = await aitbcWallet.getAccount();
|
|
```
|
|
|
|
### `aitbcWallet.getBalance(address)`
|
|
Get the AITBC balance for an address.
|
|
```javascript
|
|
const balance = await aitbcWallet.getBalance('aitbc1...');
|
|
console.log(balance.amount); // Balance in AITBC
|
|
```
|
|
|
|
### `aitbcWallet.sendTransaction(to, amount, data)`
|
|
Send AITBC tokens to another address.
|
|
```javascript
|
|
const tx = await aitbcWallet.sendTransaction('aitbc1...', 100);
|
|
console.log(tx.hash); // Transaction hash
|
|
```
|
|
|
|
### `aitbcWallet.signMessage(message)`
|
|
Sign a message with the private key.
|
|
```javascript
|
|
const signature = await aitbcWallet.signMessage('Hello AITBC!');
|
|
```
|
|
|
|
## Security Considerations
|
|
|
|
- Private keys are stored locally in Firefox's storage
|
|
- Always verify you're on the correct domain before connecting
|
|
- Never share your private key with anyone
|
|
- Keep your browser and extension updated
|
|
|
|
## Development
|
|
|
|
To modify the extension:
|
|
|
|
1. Make changes to the source files
|
|
2. Go to `about:debugging` in Firefox
|
|
3. Find "AITBC Wallet" and click "Reload"
|
|
4. Test your changes
|
|
|
|
## File Structure
|
|
|
|
```
|
|
aitbc-wallet-firefox/
|
|
├── manifest.json # Extension configuration (Manifest V2)
|
|
├── background.js # Background script for wallet operations
|
|
├── content.js # Content script for dApp communication
|
|
├── injected.js # Script injected into dApps
|
|
├── popup.html # Extension popup UI
|
|
├── popup.js # Popup logic
|
|
├── icons/ # Extension icons
|
|
└── README.md # This file
|
|
```
|
|
|
|
## Firefox-Specific Notes
|
|
|
|
- Firefox requires Manifest V2 for extensions that use content scripts in this manner
|
|
- The `browser_action` API is used instead of the newer `action` API
|
|
- Background scripts use port-based communication for better performance
|
|
- Storage APIs use `chrome.storage` which is compatible with Firefox
|
|
|
|
## Troubleshooting
|
|
|
|
### Extension not loading
|
|
- Ensure you're loading the `manifest.json` file, not the folder
|
|
- Check the Browser Console for error messages (`Ctrl+Shift+J`)
|
|
|
|
### dApp connection not working
|
|
- Refresh the dApp page after installing/updating the extension
|
|
- Check that the site is in the `matches` pattern in manifest.json
|
|
- Look for errors in the Browser Console
|
|
|
|
### Permission errors
|
|
- Firefox may show additional permission prompts
|
|
- Make sure to allow all requested permissions when installing
|