@rougechain/sdk 0.4.0 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -8,7 +8,7 @@
8
8
 
9
9
  <p align="center">
10
10
  <strong>Build quantum-safe dApps on RougeChain</strong><br />
11
- Transfers · DEX · NFTs · Bridge · Mail · Messenger
11
+ Transfers · DEX · NFTs · Shielded Transactions · Bridge · Rollups · Mail · Messenger
12
12
  </p>
13
13
 
14
14
  <p align="center">
@@ -58,7 +58,9 @@ const { balance } = await rc.getBalance(wallet.publicKey);
58
58
  | **Staking** | `rc` | Stake/unstake XRGE for validation |
59
59
  | **DEX** | `rc.dex` | AMM pools, swaps with slippage protection, liquidity |
60
60
  | **NFTs** | `rc.nft` | RC-721 collections, mint, batch mint, royalties, freeze |
61
- | **Bridge** | `rc.bridge` | ETH qETH, USDC ↔ qUSDC, XRGE bridge (Base Sepolia) |
61
+ | **Shielded** | `rc.shielded` | Private transfers with zk-STARK proofs, shield/unshield XRGE |
62
+ | **Bridge** | `rc.bridge` | ETH ↔ qETH, USDC ↔ qUSDC, XRGE bridge (Base Mainnet/Sepolia) |
63
+ | **Rollup** | `rc` | zk-STARK batch proofs, rollup status, submit transfers |
62
64
  | **Mail** | `rc.mail` | On-chain encrypted email (`@rouge.quant`) |
63
65
  | **Messenger** | `rc.messenger` | E2E encrypted messaging with self-destruct |
64
66
 
@@ -243,6 +245,29 @@ await rc.bridge.withdrawXrge(wallet, {
243
245
  });
244
246
  ```
245
247
 
248
+ ## Rollup (zk-STARK Batch Proofs)
249
+
250
+ Submit transfers to the rollup accumulator for batched STARK proving. Transfers are collected into batches of up to 32 and proven with a single zk-STARK proof.
251
+
252
+ ```typescript
253
+ // Check rollup status
254
+ const status = await rc.getRollupStatus();
255
+ // { pending_transfers, completed_batches, current_state_root, ... }
256
+
257
+ // Submit a transfer to the rollup batch
258
+ const result = await rc.submitRollupTransfer({
259
+ sender: wallet.publicKey,
260
+ receiver: recipientPubKey,
261
+ amount: 100,
262
+ fee: 1,
263
+ });
264
+ // result.queued = true (waiting for batch) or result.batch_completed = true
265
+
266
+ // Get a completed batch result
267
+ const batch = await rc.getRollupBatch(1);
268
+ // { batch_id, transfer_count, proof_size_bytes, proof_time_ms, verified, ... }
269
+ ```
270
+
246
271
  ## Mail (`rc.mail`)
247
272
 
248
273
  On-chain encrypted email with `@rouge.quant` addresses.
@@ -306,6 +331,45 @@ const messages = await rc.messenger.getMessages(conversationId);
306
331
  await rc.messenger.deleteMessage(messageId);
307
332
  ```
308
333
 
334
+ ## Shielded Transactions (`rc.shielded`)
335
+
336
+ Private value transfers using zk-STARK proofs. Shield XRGE into private notes, transfer privately, and unshield back to public balance.
337
+
338
+ ```typescript
339
+ import { createShieldedNote, computeCommitment, computeNullifier } from "@rougechain/sdk";
340
+
341
+ // Shield 100 XRGE into a private note
342
+ const { note } = await rc.shielded.shield(wallet, { amount: 100 });
343
+ // ⚠️ Save `note` securely — losing it means losing the funds!
344
+ // note = { commitment, nullifier, value, randomness, ownerPubKey }
345
+
346
+ // Check pool stats
347
+ const stats = await rc.shielded.getStats();
348
+ // { commitment_count, nullifier_count, active_notes }
349
+
350
+ // Check if a nullifier has been spent
351
+ const { spent } = await rc.shielded.isNullifierSpent(note.nullifier);
352
+
353
+ // Private transfer (requires STARK proof from Rust prover)
354
+ await rc.shielded.transfer(wallet, {
355
+ nullifiers: [note.nullifier],
356
+ outputCommitments: [recipientCommitment],
357
+ proof: starkProofHex,
358
+ });
359
+
360
+ // Unshield back to public balance
361
+ await rc.shielded.unshield(wallet, {
362
+ nullifiers: [note.nullifier],
363
+ amount: 100,
364
+ proof: starkProofHex,
365
+ });
366
+
367
+ // Client-side crypto primitives
368
+ const randomness = generateRandomness();
369
+ const commitment = computeCommitment(100, wallet.publicKey, randomness);
370
+ const nullifier = computeNullifier(randomness, commitment);
371
+ ```
372
+
309
373
  ## Low-Level Signing
310
374
 
311
375
  For advanced use cases:
@@ -347,6 +411,9 @@ import type {
347
411
  NftToken, LiquidityPool, BalanceResponse, Validator,
348
412
  BridgeConfig, MailMessage, MessengerMessage, WalletKeys,
349
413
  PriceSnapshot, PoolEvent, PoolStats, SwapQuote,
414
+ ShieldParams, ShieldedTransferParams, UnshieldParams, ShieldedStats,
415
+ ShieldedNote,
416
+ RollupStatus, RollupBatchResult, RollupSubmitParams, RollupSubmitResult,
350
417
  } from "@rougechain/sdk";
351
418
  ```
352
419
 
@@ -0,0 +1,199 @@
1
+ import type { WalletKeys, ApiResponse, SignedTransaction, NodeStats, Block, TokenMetadata, BalanceResponse, LiquidityPool, SwapQuote, PoolEvent, PoolStats, NftCollection, NftToken, Validator, BridgeConfig, BridgeWithdrawal, XrgeBridgeConfig, TransferParams, CreateTokenParams, SwapParams, CreatePoolParams, AddLiquidityParams, RemoveLiquidityParams, StakeParams, CreateNftCollectionParams, MintNftParams, BatchMintNftParams, TransferNftParams, BurnNftParams, LockNftParams, FreezeCollectionParams, BridgeWithdrawParams, BridgeClaimParams, XrgeBridgeClaimParams, XrgeBridgeWithdrawParams, SwapQuoteParams, TokenMetadataUpdateParams, TokenHolder, MailMessage, SendMailParams, MessengerWallet, MessengerConversation, MessengerMessage, PriceSnapshot, ShieldParams, ShieldedTransferParams, UnshieldParams, ShieldedStats, RollupStatus, RollupBatchResult, RollupSubmitParams, RollupSubmitResult } from "./types.js";
2
+ import { type ShieldedNote } from "./shielded.js";
3
+ type FetchFn = typeof globalThis.fetch;
4
+ export interface RougeChainOptions {
5
+ /** Custom fetch implementation (defaults to globalThis.fetch) */
6
+ fetch?: FetchFn;
7
+ /** Optional API key for authenticated endpoints */
8
+ apiKey?: string;
9
+ }
10
+ export declare class RougeChain {
11
+ /** @internal */ readonly baseUrl: string;
12
+ /** @internal */ readonly fetchFn: FetchFn;
13
+ /** @internal */ readonly headers: Record<string, string>;
14
+ readonly nft: NftClient;
15
+ readonly dex: DexClient;
16
+ readonly bridge: BridgeClient;
17
+ readonly mail: MailClient;
18
+ readonly messenger: MessengerClient;
19
+ readonly shielded: ShieldedClient;
20
+ constructor(baseUrl: string, options?: RougeChainOptions);
21
+ /** @internal */
22
+ get<T = unknown>(path: string): Promise<T>;
23
+ /** @internal */
24
+ post<T = unknown>(path: string, body: unknown): Promise<T>;
25
+ /** @internal */
26
+ submitTx(endpoint: string, signedTx: SignedTransaction): Promise<ApiResponse>;
27
+ getStats(): Promise<NodeStats>;
28
+ getHealth(): Promise<{
29
+ status: string;
30
+ chain_id: string;
31
+ height: number;
32
+ }>;
33
+ getBlocks(opts?: {
34
+ limit?: number;
35
+ }): Promise<Block[]>;
36
+ getBlocksSummary(range?: "1h" | "24h" | "7d"): Promise<unknown>;
37
+ getBalance(publicKey: string): Promise<BalanceResponse>;
38
+ getTokenBalance(publicKey: string, token: string): Promise<number>;
39
+ getTransactions(opts?: {
40
+ limit?: number;
41
+ offset?: number;
42
+ }): Promise<unknown>;
43
+ getTokens(): Promise<TokenMetadata[]>;
44
+ getTokenMetadata(symbol: string): Promise<TokenMetadata>;
45
+ getTokenHolders(symbol: string): Promise<TokenHolder[]>;
46
+ getTokenTransactions(symbol: string): Promise<unknown>;
47
+ getValidators(): Promise<Validator[]>;
48
+ getValidatorStats(): Promise<unknown>;
49
+ getFinality(): Promise<{
50
+ finalized_height: number;
51
+ tip_height: number;
52
+ total_stake: number;
53
+ finalized_stake: number;
54
+ }>;
55
+ getPeers(): Promise<string[]>;
56
+ getBurnedTokens(): Promise<{
57
+ burned: Record<string, number>;
58
+ total_xrge_burned: number;
59
+ }>;
60
+ transfer(wallet: WalletKeys, params: TransferParams): Promise<ApiResponse>;
61
+ createToken(wallet: WalletKeys, params: CreateTokenParams): Promise<ApiResponse>;
62
+ stake(wallet: WalletKeys, params: StakeParams): Promise<ApiResponse>;
63
+ unstake(wallet: WalletKeys, params: StakeParams): Promise<ApiResponse>;
64
+ faucet(wallet: WalletKeys): Promise<ApiResponse>;
65
+ burn(wallet: WalletKeys, amount: number, fee?: number, token?: string): Promise<ApiResponse>;
66
+ updateTokenMetadata(wallet: WalletKeys, params: TokenMetadataUpdateParams): Promise<ApiResponse>;
67
+ claimTokenMetadata(wallet: WalletKeys, tokenSymbol: string): Promise<ApiResponse>;
68
+ /** Get the current rollup accumulator status. */
69
+ getRollupStatus(): Promise<RollupStatus>;
70
+ /** Submit a transfer into the rollup batch accumulator. */
71
+ submitRollupTransfer(params: RollupSubmitParams): Promise<RollupSubmitResult>;
72
+ /** Get the result of a completed rollup batch by ID. */
73
+ getRollupBatch(batchId: number): Promise<RollupBatchResult>;
74
+ }
75
+ declare class NftClient {
76
+ private readonly rc;
77
+ constructor(rc: RougeChain);
78
+ getCollections(): Promise<NftCollection[]>;
79
+ getCollection(collectionId: string): Promise<NftCollection>;
80
+ /**
81
+ * Poll until a collection exists on-chain (i.e. the create tx has been mined).
82
+ * Useful after `createCollection` since the tx goes to the mempool first.
83
+ * @returns the collection once found, or throws after the timeout.
84
+ */
85
+ waitForCollection(collectionId: string, opts?: {
86
+ timeoutMs?: number;
87
+ pollMs?: number;
88
+ }): Promise<NftCollection>;
89
+ getTokens(collectionId: string, opts?: {
90
+ limit?: number;
91
+ offset?: number;
92
+ }): Promise<{
93
+ tokens: NftToken[];
94
+ total: number;
95
+ }>;
96
+ getToken(collectionId: string, tokenId: number): Promise<NftToken>;
97
+ getByOwner(pubkey: string): Promise<NftToken[]>;
98
+ createCollection(wallet: WalletKeys, params: CreateNftCollectionParams): Promise<ApiResponse>;
99
+ mint(wallet: WalletKeys, params: MintNftParams): Promise<ApiResponse>;
100
+ batchMint(wallet: WalletKeys, params: BatchMintNftParams): Promise<ApiResponse>;
101
+ transfer(wallet: WalletKeys, params: TransferNftParams): Promise<ApiResponse>;
102
+ burn(wallet: WalletKeys, params: BurnNftParams): Promise<ApiResponse>;
103
+ lock(wallet: WalletKeys, params: LockNftParams): Promise<ApiResponse>;
104
+ freezeCollection(wallet: WalletKeys, params: FreezeCollectionParams): Promise<ApiResponse>;
105
+ }
106
+ declare class DexClient {
107
+ private readonly rc;
108
+ constructor(rc: RougeChain);
109
+ getPools(): Promise<LiquidityPool[]>;
110
+ getPool(poolId: string): Promise<LiquidityPool>;
111
+ getPoolEvents(poolId: string): Promise<PoolEvent[]>;
112
+ getPriceHistory(poolId: string): Promise<PriceSnapshot[]>;
113
+ getPoolStats(poolId: string): Promise<PoolStats>;
114
+ quote(params: SwapQuoteParams): Promise<SwapQuote>;
115
+ swap(wallet: WalletKeys, params: SwapParams): Promise<ApiResponse>;
116
+ createPool(wallet: WalletKeys, params: CreatePoolParams): Promise<ApiResponse>;
117
+ addLiquidity(wallet: WalletKeys, params: AddLiquidityParams): Promise<ApiResponse>;
118
+ removeLiquidity(wallet: WalletKeys, params: RemoveLiquidityParams): Promise<ApiResponse>;
119
+ }
120
+ declare class BridgeClient {
121
+ private readonly rc;
122
+ constructor(rc: RougeChain);
123
+ getConfig(): Promise<BridgeConfig>;
124
+ getWithdrawals(): Promise<BridgeWithdrawal[]>;
125
+ /** Withdraw qETH/qUSDC — signed client-side, private key never sent to server */
126
+ withdraw(wallet: WalletKeys, params: BridgeWithdrawParams): Promise<ApiResponse>;
127
+ /** Claim qETH or qUSDC after depositing on Base Sepolia */
128
+ claim(params: BridgeClaimParams): Promise<ApiResponse>;
129
+ getXrgeConfig(): Promise<XrgeBridgeConfig>;
130
+ claimXrge(params: XrgeBridgeClaimParams): Promise<ApiResponse>;
131
+ withdrawXrge(wallet: WalletKeys, params: XrgeBridgeWithdrawParams): Promise<ApiResponse>;
132
+ getXrgeWithdrawals(): Promise<BridgeWithdrawal[]>;
133
+ }
134
+ declare class MailClient {
135
+ private readonly rc;
136
+ constructor(rc: RougeChain);
137
+ send(params: SendMailParams): Promise<ApiResponse>;
138
+ getInbox(walletId: string): Promise<MailMessage[]>;
139
+ getSent(walletId: string): Promise<MailMessage[]>;
140
+ getTrash(walletId: string): Promise<MailMessage[]>;
141
+ getMessage(id: string): Promise<MailMessage>;
142
+ move(messageId: string, folder: string): Promise<ApiResponse>;
143
+ markRead(messageId: string): Promise<ApiResponse>;
144
+ delete(id: string): Promise<ApiResponse>;
145
+ }
146
+ declare class MessengerClient {
147
+ private readonly rc;
148
+ constructor(rc: RougeChain);
149
+ getWallets(): Promise<MessengerWallet[]>;
150
+ registerWallet(opts: {
151
+ id: string;
152
+ displayName: string;
153
+ signingPublicKey: string;
154
+ encryptionPublicKey: string;
155
+ }): Promise<ApiResponse>;
156
+ getConversations(walletId: string, opts?: {
157
+ signingPublicKey?: string;
158
+ encryptionPublicKey?: string;
159
+ }): Promise<MessengerConversation[]>;
160
+ createConversation(participants: string[]): Promise<ApiResponse>;
161
+ getMessages(conversationId: string): Promise<MessengerMessage[]>;
162
+ sendMessage(conversationId: string, sender: string, encryptedContent: string, opts?: {
163
+ mediaType?: string;
164
+ mediaData?: string;
165
+ selfDestruct?: boolean;
166
+ destructAfterSeconds?: number;
167
+ }): Promise<ApiResponse>;
168
+ deleteMessage(messageId: string): Promise<ApiResponse>;
169
+ markRead(messageId: string): Promise<ApiResponse>;
170
+ }
171
+ declare class ShieldedClient {
172
+ private readonly rc;
173
+ constructor(rc: RougeChain);
174
+ getStats(): Promise<ShieldedStats>;
175
+ isNullifierSpent(nullifierHex: string): Promise<{
176
+ spent: boolean;
177
+ }>;
178
+ /**
179
+ * Shield public XRGE into a private note.
180
+ * Creates the commitment client-side, submits to the chain.
181
+ *
182
+ * @returns The ShieldedNote (keep this locally — it's the only way to spend the note)
183
+ */
184
+ shield(wallet: WalletKeys, params: ShieldParams): Promise<ApiResponse & {
185
+ note?: ShieldedNote;
186
+ }>;
187
+ /**
188
+ * Transfer between shielded notes (private → private).
189
+ * Requires a pre-generated STARK proof.
190
+ */
191
+ transfer(wallet: WalletKeys, params: ShieldedTransferParams): Promise<ApiResponse>;
192
+ /**
193
+ * Unshield a private note back to public XRGE.
194
+ * Requires a STARK proof of note ownership.
195
+ */
196
+ unshield(wallet: WalletKeys, params: UnshieldParams): Promise<ApiResponse>;
197
+ }
198
+ export {};
199
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
package/dist/index.cjs CHANGED
@@ -496,6 +496,23 @@ var RougeChain = class {
496
496
  const tx = createSignedTokenMetadataClaim(wallet, tokenSymbol);
497
497
  return this.submitTx("/v2/token/metadata/claim", tx);
498
498
  }
499
+ // ===== Rollup =====
500
+ /** Get the current rollup accumulator status. */
501
+ async getRollupStatus() {
502
+ const data = await this.get("/v2/rollup/status");
503
+ return data.rollup;
504
+ }
505
+ /** Submit a transfer into the rollup batch accumulator. */
506
+ async submitRollupTransfer(params) {
507
+ return this.post("/v2/rollup/submit", params);
508
+ }
509
+ /** Get the result of a completed rollup batch by ID. */
510
+ async getRollupBatch(batchId) {
511
+ const data = await this.get(
512
+ `/v2/rollup/batch/${batchId}`
513
+ );
514
+ return data.batch;
515
+ }
499
516
  };
500
517
  var NftClient = class {
501
518
  constructor(rc) {