Skip to content

Commit 486cb93

Browse files
committed
feat(sdk): add SolanaSpendingLimits class to TypeScript SDK
Add TypeScript SDK integration for interacting with the mpc-spending-limit Solana program. SolanaSpendingLimits class provides: - initialize(): Create spending config on-chain - getState(): Fetch current config state - getRemaining(): Get remaining allowance across periods - validateTransfer(): Check if transfer is allowed (throws on violation) - canTransfer(): Boolean check without throwing - updateLimits(): Modify spending limits - togglePause(): Pause/unpause config - setGuardian(): Set emergency guardian - addToWhitelist()/removeFromWhitelist(): Manage whitelist - recordSpending(): Record completed transfer - validateAndRecord(): Atomic validation + recording Also includes: - PDA derivation helpers - State parsing from account data - Base58 encoding/decoding utilities - Network presets (Mainnet, Devnet, Testnet) - Typed error codes for all spending limit violations
1 parent 8b23a0d commit 486cb93

3 files changed

Lines changed: 1471 additions & 0 deletions

File tree

packages/mpc-wallet-sdk/src/index.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,9 @@ export {
7575
// Chain adapters
7676
export * from './chains';
7777

78+
// Solana spending limits
79+
export * from './solana';
80+
7881
// Storage
7982
export * from './storage';
8083

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
/**
2+
* Solana-specific modules for MPC Wallet SDK
3+
*
4+
* This module provides Solana-specific functionality including:
5+
* - Spending limits with on-chain enforcement
6+
* - PDA-based configuration management
7+
* - Whitelist/blacklist management
8+
*/
9+
10+
export {
11+
// Main class
12+
SolanaSpendingLimits,
13+
14+
// Constants
15+
MPC_SPENDING_LIMIT_PROGRAM_ID,
16+
SPENDING_CONFIG_SEED,
17+
WHITELIST_SEED,
18+
SLOTS_PER_DAY,
19+
SLOTS_PER_WEEK,
20+
SLOTS_PER_MONTH,
21+
22+
// Network presets
23+
SolanaLimitNetworks,
24+
25+
// Types
26+
type SolanaNetwork,
27+
type SpendingConfig,
28+
type SpendingState,
29+
type RemainingAllowance,
30+
type WhitelistEntry,
31+
type UpdateLimitsOptions,
32+
type SolanaSpendingLimitsConfig,
33+
type TransactionResult,
34+
35+
// Errors
36+
SpendingLimitError,
37+
SpendingLimitErrorCode,
38+
} from './spending-limit';

0 commit comments

Comments
 (0)