keynesol-shared
v1.0.5
Published
Shared code package for Keynesol Web3 Prediction Platform
Readme
@keynesol/shared
Shared code package for Keynesol Web3 Prediction Platform.
Installation
npm install @keynesol/sharedOr for local development:
npm link
# In your app:
npm link @keynesol/sharedUsage
Components
import { ErrorBoundary, WalletProvider, WalletButton } from '@keynesol/shared';
function App() {
return (
<ErrorBoundary>
<WalletProvider>
<WalletButton />
</WalletProvider>
</ErrorBoundary>
);
}Hooks
import { useProgram, useVaults, useTokenBalance } from '@keynesol/shared';
function MyComponent() {
const { program } = useProgram();
const { vaults, loading } = useVaults();
const { sol, usdc } = useTokenBalance();
// ...
}Utils
import {
errorHandler,
cacheManager,
tokenUtils,
validation,
retryRpcCall
} from '@keynesol/shared';
// Error handling
errorHandler.handleError(error, 'MyComponent');
// Token utilities
const isSOL = tokenUtils.isNativeSOL(tokenMint);
const decimals = tokenUtils.getTokenDecimals(tokenMint);
// Validation
const result = validation.validateStakeAmount(amount, balance);
// RPC retry
const data = await retryRpcCall(() => connection.getBalance(publicKey));Services
import { syncService, reconciliationService } from '@keynesol/shared';
// Initialize sync service
syncService.initialize(connection, {
url: process.env.NEXT_PUBLIC_SUPABASE_URL,
anonKey: process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY,
});
// Initialize reconciliation
reconciliationService.initialize(connection, {
url: process.env.NEXT_PUBLIC_SUPABASE_URL,
anonKey: process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY,
});Configuration
The package uses environment variables for configuration:
NEXT_PUBLIC_SOLANA_NETWORK- Network (devnet, mainnet-beta, testnet)NEXT_PUBLIC_RPC_ENDPOINT- Custom RPC endpointNEXT_PUBLIC_PROGRAM_ID- Solana program IDNEXT_PUBLIC_SUPABASE_URL- Supabase URLNEXT_PUBLIC_SUPABASE_ANON_KEY- Supabase anonymous key
Building
npm run buildType Checking
npm run type-checkLicense
MIT
