@veilo/sdk-core 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/LICENSE +15 -0
- package/README.md +286 -1298
- package/dist/cjs/accounts/admin.d.ts +84 -0
- package/dist/cjs/accounts/admin.js +208 -0
- package/dist/cjs/accounts/errors.d.ts +6 -0
- package/dist/cjs/accounts/errors.js +98 -0
- package/dist/cjs/accounts/index.d.ts +4 -0
- package/dist/cjs/accounts/index.js +20 -0
- package/dist/cjs/accounts/pdas.d.ts +23 -0
- package/dist/cjs/accounts/pdas.js +44 -0
- package/dist/cjs/accounts/queries.d.ts +41 -0
- package/dist/cjs/accounts/queries.js +95 -0
- package/dist/cjs/client.d.ts +2 -407
- package/dist/cjs/client.js +6 -938
- package/dist/cjs/cloak/client.d.ts +28 -0
- package/dist/cjs/cloak/client.js +68 -0
- package/dist/cjs/cloak/errors.d.ts +13 -0
- package/dist/cjs/cloak/errors.js +25 -0
- package/dist/cjs/cloak/helpers.d.ts +6 -0
- package/dist/cjs/cloak/helpers.js +35 -0
- package/dist/cjs/cloak/index.d.ts +6 -0
- package/dist/cjs/cloak/index.js +24 -0
- package/dist/cjs/cloak/polling.d.ts +7 -0
- package/dist/cjs/cloak/polling.js +66 -0
- package/dist/cjs/cloak/transport.d.ts +15 -0
- package/dist/cjs/cloak/transport.js +119 -0
- package/dist/cjs/cloak/types.d.ts +188 -0
- package/dist/cjs/cloak/types.js +5 -0
- package/dist/cjs/cloak.d.ts +1 -0
- package/dist/cjs/cloak.js +18 -0
- package/dist/cjs/compactNote.d.ts +21 -0
- package/dist/cjs/compactNote.js +31 -7
- package/dist/cjs/index.d.ts +2 -1
- package/dist/cjs/index.js +4 -1
- package/dist/cjs/notes/encryption.d.ts +41 -0
- package/dist/cjs/notes/encryption.js +75 -0
- package/dist/cjs/notes/index.d.ts +5 -0
- package/dist/cjs/notes/index.js +21 -0
- package/dist/cjs/notes/mailbox.d.ts +70 -0
- package/dist/cjs/notes/mailbox.js +164 -0
- package/dist/cjs/notes/model.d.ts +91 -0
- package/dist/cjs/notes/model.js +109 -0
- package/dist/cjs/notes/nullifier.d.ts +27 -0
- package/dist/cjs/notes/nullifier.js +45 -0
- package/dist/cjs/notes/recovery.d.ts +10 -0
- package/dist/cjs/notes/recovery.js +31 -0
- package/dist/cjs/proof.d.ts +1 -183
- package/dist/cjs/proof.js +16 -290
- package/dist/cjs/proofs/encoding.d.ts +17 -0
- package/dist/cjs/proofs/encoding.js +72 -0
- package/dist/cjs/proofs/formatting.d.ts +6 -0
- package/dist/cjs/proofs/formatting.js +34 -0
- package/dist/cjs/proofs/index.d.ts +5 -0
- package/dist/cjs/proofs/index.js +21 -0
- package/dist/cjs/proofs/swap.d.ts +87 -0
- package/dist/cjs/proofs/swap.js +144 -0
- package/dist/cjs/proofs/transaction.d.ts +28 -0
- package/dist/cjs/proofs/transaction.js +110 -0
- package/dist/cjs/proofs/types.d.ts +70 -0
- package/dist/cjs/prover.d.ts +4 -1
- package/dist/cjs/prover.js +12 -2
- package/dist/cjs/relayer/client.d.ts +61 -0
- package/dist/cjs/relayer/client.js +151 -0
- package/dist/cjs/relayer/crypto.d.ts +5 -0
- package/dist/cjs/relayer/crypto.js +26 -0
- package/dist/cjs/relayer/encoding.d.ts +2 -0
- package/dist/cjs/relayer/encoding.js +23 -0
- package/dist/cjs/relayer/errors.d.ts +7 -0
- package/dist/cjs/relayer/errors.js +17 -0
- package/dist/cjs/relayer/index.d.ts +3 -0
- package/dist/cjs/relayer/index.js +19 -0
- package/dist/cjs/relayer/transport.d.ts +17 -0
- package/dist/cjs/relayer/transport.js +63 -0
- package/dist/{src/relayer.d.ts → cjs/relayer/types.d.ts} +44 -86
- package/dist/cjs/relayer/types.js +5 -0
- package/dist/cjs/relayer.d.ts +1 -318
- package/dist/cjs/relayer.js +15 -254
- package/dist/cjs/shield/alt.js +8 -8
- package/dist/cjs/shield/errors.js +2 -2
- package/dist/cjs/shield/finalize.js +2 -2
- package/dist/cjs/shield/ix.d.ts +1 -1
- package/dist/cjs/shield/owner.js +9 -8
- package/dist/cjs/shield/ports.js +3 -3
- package/dist/cjs/shield/preflight.js +3 -3
- package/dist/cjs/shield/shield.js +20 -19
- package/dist/cjs/shield/types.d.ts +1 -1
- package/dist/cjs/transactions/deposit.d.ts +94 -0
- package/dist/cjs/transactions/deposit.js +234 -0
- package/dist/cjs/transactions/index.d.ts +7 -0
- package/dist/cjs/transactions/index.js +26 -0
- package/dist/cjs/transactions/swap.d.ts +71 -0
- package/dist/cjs/transactions/swap.js +184 -0
- package/dist/cjs/transactions/transact.d.ts +34 -0
- package/dist/cjs/transactions/transact.js +146 -0
- package/dist/cjs/transactions/transfer.d.ts +51 -0
- package/dist/cjs/transactions/transfer.js +106 -0
- package/dist/cjs/transactions/withdraw.d.ts +52 -0
- package/dist/cjs/transactions/withdraw.js +104 -0
- package/dist/cjs/utxo.d.ts +1 -235
- package/dist/cjs/utxo.js +15 -404
- package/dist/esm/accounts/admin.d.ts +84 -0
- package/dist/esm/accounts/admin.js +165 -0
- package/dist/esm/accounts/errors.d.ts +6 -0
- package/dist/esm/accounts/errors.js +95 -0
- package/dist/esm/accounts/index.d.ts +4 -0
- package/dist/esm/accounts/index.js +4 -0
- package/dist/esm/accounts/pdas.d.ts +23 -0
- package/dist/esm/accounts/pdas.js +38 -0
- package/dist/esm/accounts/queries.d.ts +41 -0
- package/dist/esm/accounts/queries.js +88 -0
- package/dist/esm/client.d.ts +2 -407
- package/dist/esm/client.js +3 -891
- package/dist/esm/cloak/client.d.ts +28 -0
- package/dist/esm/cloak/client.js +64 -0
- package/dist/esm/cloak/errors.d.ts +13 -0
- package/dist/esm/cloak/errors.js +21 -0
- package/dist/esm/cloak/helpers.d.ts +6 -0
- package/dist/esm/cloak/helpers.js +31 -0
- package/dist/esm/cloak/index.d.ts +6 -0
- package/dist/esm/cloak/index.js +6 -0
- package/dist/esm/cloak/polling.d.ts +7 -0
- package/dist/esm/cloak/polling.js +63 -0
- package/dist/esm/cloak/transport.d.ts +15 -0
- package/dist/esm/cloak/transport.js +115 -0
- package/dist/esm/cloak/types.d.ts +188 -0
- package/dist/esm/cloak/types.js +4 -0
- package/dist/esm/cloak.d.ts +1 -0
- package/dist/esm/cloak.js +2 -0
- package/dist/esm/compactNote.d.ts +21 -0
- package/dist/esm/compactNote.js +24 -1
- package/dist/esm/index.d.ts +2 -1
- package/dist/esm/index.js +3 -1
- package/dist/esm/notes/encryption.d.ts +41 -0
- package/dist/esm/notes/encryption.js +67 -0
- package/dist/esm/notes/index.d.ts +5 -0
- package/dist/esm/notes/index.js +5 -0
- package/dist/esm/notes/mailbox.d.ts +70 -0
- package/dist/esm/notes/mailbox.js +154 -0
- package/dist/esm/notes/model.d.ts +91 -0
- package/dist/esm/notes/model.js +99 -0
- package/dist/esm/notes/nullifier.d.ts +27 -0
- package/dist/esm/notes/nullifier.js +40 -0
- package/dist/esm/notes/recovery.d.ts +10 -0
- package/dist/esm/notes/recovery.js +28 -0
- package/dist/esm/proof.d.ts +1 -183
- package/dist/esm/proof.js +2 -281
- package/dist/esm/proofs/encoding.d.ts +17 -0
- package/dist/esm/proofs/encoding.js +68 -0
- package/dist/esm/proofs/formatting.d.ts +6 -0
- package/dist/esm/proofs/formatting.js +31 -0
- package/dist/esm/proofs/index.d.ts +5 -0
- package/dist/esm/proofs/index.js +5 -0
- package/dist/esm/proofs/swap.d.ts +87 -0
- package/dist/esm/proofs/swap.js +138 -0
- package/dist/esm/proofs/transaction.d.ts +28 -0
- package/dist/esm/proofs/transaction.js +105 -0
- package/dist/esm/proofs/types.d.ts +70 -0
- package/dist/esm/proofs/types.js +1 -0
- package/dist/esm/prover.d.ts +4 -1
- package/dist/esm/prover.js +10 -1
- package/dist/esm/relayer/client.d.ts +61 -0
- package/dist/esm/relayer/client.js +144 -0
- package/dist/esm/relayer/crypto.d.ts +5 -0
- package/dist/esm/relayer/crypto.js +20 -0
- package/dist/esm/relayer/encoding.d.ts +2 -0
- package/dist/esm/relayer/encoding.js +19 -0
- package/dist/esm/relayer/errors.d.ts +7 -0
- package/dist/esm/relayer/errors.js +13 -0
- package/dist/esm/relayer/index.d.ts +3 -0
- package/dist/esm/relayer/index.js +3 -0
- package/dist/esm/relayer/transport.d.ts +17 -0
- package/dist/esm/relayer/transport.js +59 -0
- package/dist/esm/relayer/types.d.ts +276 -0
- package/dist/esm/relayer/types.js +4 -0
- package/dist/esm/relayer.d.ts +1 -318
- package/dist/esm/relayer.js +2 -249
- package/dist/esm/shield/alt.js +1 -1
- package/dist/esm/shield/errors.js +1 -1
- package/dist/esm/shield/finalize.js +1 -1
- package/dist/esm/shield/ix.d.ts +1 -1
- package/dist/esm/shield/owner.js +2 -1
- package/dist/esm/shield/ports.js +1 -1
- package/dist/esm/shield/preflight.js +1 -1
- package/dist/esm/shield/shield.js +4 -3
- package/dist/esm/shield/types.d.ts +1 -1
- package/dist/esm/transactions/deposit.d.ts +94 -0
- package/dist/esm/transactions/deposit.js +198 -0
- package/dist/esm/transactions/index.d.ts +7 -0
- package/dist/esm/transactions/index.js +7 -0
- package/dist/esm/transactions/swap.d.ts +71 -0
- package/dist/esm/transactions/swap.js +144 -0
- package/dist/esm/transactions/transact.d.ts +34 -0
- package/dist/esm/transactions/transact.js +110 -0
- package/dist/esm/transactions/transfer.d.ts +51 -0
- package/dist/esm/transactions/transfer.js +103 -0
- package/dist/esm/transactions/withdraw.d.ts +52 -0
- package/dist/esm/transactions/withdraw.js +101 -0
- package/dist/esm/utxo.d.ts +1 -235
- package/dist/esm/utxo.js +2 -382
- package/package.json +54 -16
- package/SHIELD_INTEGRATION.md +0 -143
- package/config.d.ts +0 -2
- package/config.js +0 -4
- package/dist/src/client.d.ts +0 -407
- package/dist/src/client.js +0 -951
- package/dist/src/compactNote.d.ts +0 -107
- package/dist/src/compactNote.js +0 -167
- package/dist/src/config.d.ts +0 -82
- package/dist/src/config.js +0 -57
- package/dist/src/events.d.ts +0 -77
- package/dist/src/events.js +0 -167
- package/dist/src/idl/privacy_pool.d.ts +0 -5
- package/dist/src/idl/privacy_pool.js +0 -15218
- package/dist/src/index.d.ts +0 -16
- package/dist/src/index.js +0 -67
- package/dist/src/merkle.d.ts +0 -77
- package/dist/src/merkle.js +0 -156
- package/dist/src/poseidon.d.ts +0 -29
- package/dist/src/poseidon.js +0 -100
- package/dist/src/program.d.ts +0 -37
- package/dist/src/program.js +0 -61
- package/dist/src/proof.d.ts +0 -183
- package/dist/src/proof.js +0 -292
- package/dist/src/prover.d.ts +0 -54
- package/dist/src/prover.js +0 -112
- package/dist/src/random.d.ts +0 -16
- package/dist/src/random.js +0 -28
- package/dist/src/relayer.js +0 -257
- package/dist/src/retry.d.ts +0 -32
- package/dist/src/retry.js +0 -75
- package/dist/src/shield/alt.d.ts +0 -87
- package/dist/src/shield/alt.js +0 -194
- package/dist/src/shield/computeBudget.d.ts +0 -61
- package/dist/src/shield/computeBudget.js +0 -64
- package/dist/src/shield/errors.d.ts +0 -58
- package/dist/src/shield/errors.js +0 -121
- package/dist/src/shield/finalize.d.ts +0 -45
- package/dist/src/shield/finalize.js +0 -119
- package/dist/src/shield/index.d.ts +0 -35
- package/dist/src/shield/index.js +0 -68
- package/dist/src/shield/ix.d.ts +0 -54
- package/dist/src/shield/ix.js +0 -119
- package/dist/src/shield/owner.d.ts +0 -36
- package/dist/src/shield/owner.js +0 -126
- package/dist/src/shield/ports.d.ts +0 -43
- package/dist/src/shield/ports.js +0 -153
- package/dist/src/shield/preflight.d.ts +0 -30
- package/dist/src/shield/preflight.js +0 -154
- package/dist/src/shield/shield.d.ts +0 -68
- package/dist/src/shield/shield.js +0 -499
- package/dist/src/shield/types.d.ts +0 -202
- package/dist/src/utxo.d.ts +0 -235
- package/dist/src/utxo.js +0 -407
- package/dist/tests/compact-note.test.d.ts +0 -1
- package/dist/tests/compact-note.test.js +0 -173
- package/dist/tests/config.test.d.ts +0 -1
- package/dist/tests/config.test.js +0 -102
- package/dist/tests/edge-cases.test.d.ts +0 -1
- package/dist/tests/edge-cases.test.js +0 -220
- package/dist/tests/encryption.test.d.ts +0 -1
- package/dist/tests/encryption.test.js +0 -215
- package/dist/tests/events.test.d.ts +0 -1
- package/dist/tests/events.test.js +0 -78
- package/dist/tests/multi-tree.test.d.ts +0 -1
- package/dist/tests/multi-tree.test.js +0 -405
- package/dist/tests/pda.test.d.ts +0 -1
- package/dist/tests/pda.test.js +0 -229
- package/dist/tests/poseidon-builder-parity.test.d.ts +0 -1
- package/dist/tests/poseidon-builder-parity.test.js +0 -72
- package/dist/tests/poseidon.test.d.ts +0 -1
- package/dist/tests/poseidon.test.js +0 -142
- package/dist/tests/proof.test.d.ts +0 -1
- package/dist/tests/proof.test.js +0 -296
- package/dist/tests/relayer.test.d.ts +0 -1
- package/dist/tests/relayer.test.js +0 -271
- package/dist/tests/sdk.integration.test.d.ts +0 -1
- package/dist/tests/sdk.integration.test.js +0 -330
- package/dist/tests/shield-owner.test.d.ts +0 -1
- package/dist/tests/shield-owner.test.js +0 -89
- package/dist/tests/shield-preflight.test.d.ts +0 -1
- package/dist/tests/shield-preflight.test.js +0 -87
- package/dist/tests/shield-realproof.test.d.ts +0 -1
- package/dist/tests/shield-realproof.test.js +0 -272
- package/dist/tests/shield.test.d.ts +0 -1
- package/dist/tests/shield.test.js +0 -403
- package/dist/tests/utxo.test.d.ts +0 -1
- package/dist/tests/utxo.test.js +0 -140
- package/poseidon.d.ts +0 -2
- package/poseidon.js +0 -4
- package/proof.d.ts +0 -2
- package/proof.js +0 -4
- package/prover.d.ts +0 -2
- package/prover.js +0 -4
- package/shield.d.ts +0 -2
- package/shield.js +0 -4
- /package/dist/{src/shield → cjs/proofs}/types.js +0 -0
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// =============================================================================
|
|
3
|
+
// Base64 helpers (no dependency on tweetnacl-util)
|
|
4
|
+
// =============================================================================
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.toBase64 = toBase64;
|
|
7
|
+
exports.fromBase64 = fromBase64;
|
|
8
|
+
function toBase64(bytes) {
|
|
9
|
+
if (typeof Buffer !== "undefined") {
|
|
10
|
+
return Buffer.from(bytes).toString("base64");
|
|
11
|
+
}
|
|
12
|
+
return btoa(String.fromCharCode(...bytes));
|
|
13
|
+
}
|
|
14
|
+
function fromBase64(str) {
|
|
15
|
+
if (typeof Buffer !== "undefined") {
|
|
16
|
+
return new Uint8Array(Buffer.from(str, "base64"));
|
|
17
|
+
}
|
|
18
|
+
const binary = atob(str);
|
|
19
|
+
const bytes = new Uint8Array(binary.length);
|
|
20
|
+
for (let i = 0; i < binary.length; i++)
|
|
21
|
+
bytes[i] = binary.charCodeAt(i);
|
|
22
|
+
return bytes;
|
|
23
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// =============================================================================
|
|
3
|
+
// Structured Error
|
|
4
|
+
// =============================================================================
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.VeiloApiError = void 0;
|
|
7
|
+
/** Structured error thrown by VeiloRelayerClient on API failures. */
|
|
8
|
+
class VeiloApiError extends Error {
|
|
9
|
+
constructor(code, message, status, details) {
|
|
10
|
+
super(message);
|
|
11
|
+
this.name = "VeiloApiError";
|
|
12
|
+
this.code = code;
|
|
13
|
+
this.status = status;
|
|
14
|
+
this.details = details;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
exports.VeiloApiError = VeiloApiError;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./types.js"), exports);
|
|
18
|
+
__exportStar(require("./errors.js"), exports);
|
|
19
|
+
__exportStar(require("./client.js"), exports);
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { RetryPolicy, VeiloRelayerConfig } from "./types.js";
|
|
2
|
+
export interface RelayerRequestOptions {
|
|
3
|
+
body?: unknown;
|
|
4
|
+
authenticated?: boolean;
|
|
5
|
+
retryable?: boolean;
|
|
6
|
+
}
|
|
7
|
+
/** Owns HTTP authentication, retry, and response normalization. */
|
|
8
|
+
export declare class RelayerHttpTransport {
|
|
9
|
+
private readonly baseUrl;
|
|
10
|
+
private readonly apiKey;
|
|
11
|
+
private authToken;
|
|
12
|
+
private readonly retry;
|
|
13
|
+
constructor(config: VeiloRelayerConfig, retry?: Partial<RetryPolicy>);
|
|
14
|
+
setAuthToken(token: string): void;
|
|
15
|
+
request<T>(method: string, route: string, options?: RelayerRequestOptions): Promise<T>;
|
|
16
|
+
private headers;
|
|
17
|
+
}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RelayerHttpTransport = void 0;
|
|
4
|
+
const errors_js_1 = require("./errors.js");
|
|
5
|
+
const DEFAULT_RELAYER_URL = "https://relayer-server.onrender.com";
|
|
6
|
+
const DEFAULT_RETRY = {
|
|
7
|
+
maxRetries: 3,
|
|
8
|
+
baseDelayMs: 1000,
|
|
9
|
+
retryableStatuses: [429, 502, 503, 504],
|
|
10
|
+
};
|
|
11
|
+
/** Owns HTTP authentication, retry, and response normalization. */
|
|
12
|
+
class RelayerHttpTransport {
|
|
13
|
+
constructor(config, retry) {
|
|
14
|
+
this.baseUrl = (config.relayerUrl?.trim() || DEFAULT_RELAYER_URL).replace(/\/+$/, "");
|
|
15
|
+
this.apiKey = config.apiKey;
|
|
16
|
+
this.authToken = config.authToken;
|
|
17
|
+
this.retry = { ...DEFAULT_RETRY, ...retry };
|
|
18
|
+
}
|
|
19
|
+
setAuthToken(token) {
|
|
20
|
+
this.authToken = token;
|
|
21
|
+
}
|
|
22
|
+
async request(method, route, options = {}) {
|
|
23
|
+
const url = `${this.baseUrl}/api${route}`;
|
|
24
|
+
const { body, authenticated = false, retryable = true } = options;
|
|
25
|
+
const maxAttempts = retryable ? this.retry.maxRetries + 1 : 1;
|
|
26
|
+
let lastError;
|
|
27
|
+
for (let attempt = 0; attempt < maxAttempts; attempt++) {
|
|
28
|
+
if (attempt > 0) {
|
|
29
|
+
const delay = this.retry.baseDelayMs * Math.pow(2, attempt - 1) + Math.random() * 200;
|
|
30
|
+
await new Promise((resolve) => setTimeout(resolve, delay));
|
|
31
|
+
}
|
|
32
|
+
let response;
|
|
33
|
+
try {
|
|
34
|
+
response = await fetch(url, {
|
|
35
|
+
method,
|
|
36
|
+
headers: this.headers(authenticated),
|
|
37
|
+
body: body == null ? undefined : JSON.stringify(body),
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
catch (error) {
|
|
41
|
+
lastError = new errors_js_1.VeiloApiError("NETWORK_ERROR", error instanceof Error ? error.message : "Network request failed", 0);
|
|
42
|
+
continue;
|
|
43
|
+
}
|
|
44
|
+
const data = await response.json().catch(() => ({}));
|
|
45
|
+
if (response.ok && data.success !== false)
|
|
46
|
+
return data;
|
|
47
|
+
lastError = new errors_js_1.VeiloApiError(data.error || "UNKNOWN", data.message || data.error || `Request failed: ${response.status}`, response.status, data);
|
|
48
|
+
if (!this.retry.retryableStatuses.includes(response.status))
|
|
49
|
+
throw lastError;
|
|
50
|
+
}
|
|
51
|
+
throw lastError;
|
|
52
|
+
}
|
|
53
|
+
headers(authenticated) {
|
|
54
|
+
const headers = { "Content-Type": "application/json" };
|
|
55
|
+
if (this.apiKey)
|
|
56
|
+
headers["x-api-key"] = this.apiKey;
|
|
57
|
+
if (authenticated && this.authToken) {
|
|
58
|
+
headers.Authorization = `Bearer ${this.authToken}`;
|
|
59
|
+
}
|
|
60
|
+
return headers;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
exports.RelayerHttpTransport = RelayerHttpTransport;
|
|
@@ -8,13 +8,6 @@ export interface VeiloRelayerConfig {
|
|
|
8
8
|
/** Optional JWT auth token for authenticated endpoints */
|
|
9
9
|
authToken?: string;
|
|
10
10
|
}
|
|
11
|
-
/** Structured error thrown by VeiloRelayerClient on API failures. */
|
|
12
|
-
export declare class VeiloApiError extends Error {
|
|
13
|
-
code: string;
|
|
14
|
-
status: number;
|
|
15
|
-
details?: unknown;
|
|
16
|
-
constructor(code: string, message: string, status: number, details?: unknown);
|
|
17
|
-
}
|
|
18
11
|
/** Retry configuration for the relayer HTTP client. */
|
|
19
12
|
export interface RetryPolicy {
|
|
20
13
|
/** Max number of retry attempts (default: 3) */
|
|
@@ -114,14 +107,29 @@ export interface MerkleTreeResponse {
|
|
|
114
107
|
};
|
|
115
108
|
}
|
|
116
109
|
export interface TransactNote {
|
|
110
|
+
/** Relayer database identifier when the note came from relayer sync. */
|
|
111
|
+
id?: string;
|
|
112
|
+
/** Client-side alias used by the dapp, wallet, and extension. */
|
|
113
|
+
noteId?: string;
|
|
114
|
+
amount: string;
|
|
117
115
|
commitment: string;
|
|
116
|
+
root?: string;
|
|
117
|
+
nullifier: string;
|
|
118
|
+
blinding: string;
|
|
118
119
|
privateKey: string;
|
|
119
120
|
publicKey: string;
|
|
120
|
-
|
|
121
|
-
amount: string;
|
|
122
|
-
nullifier: string;
|
|
121
|
+
/** Optional because the relayer corrects it against commitment events. */
|
|
123
122
|
leafIndex?: number;
|
|
124
|
-
|
|
123
|
+
timestamp?: number;
|
|
124
|
+
spent?: boolean;
|
|
125
|
+
spentAt?: number;
|
|
126
|
+
txSignature?: string;
|
|
127
|
+
treeId?: number;
|
|
128
|
+
mintAddress?: string;
|
|
129
|
+
merklePath?: {
|
|
130
|
+
pathElements: string[];
|
|
131
|
+
pathIndices: number[];
|
|
132
|
+
};
|
|
125
133
|
}
|
|
126
134
|
export interface WithdrawRequest {
|
|
127
135
|
notes: TransactNote[];
|
|
@@ -129,6 +137,7 @@ export interface WithdrawRequest {
|
|
|
129
137
|
amount: string;
|
|
130
138
|
userPublicKey: string;
|
|
131
139
|
mintAddress: string;
|
|
140
|
+
feeOnTop?: boolean;
|
|
132
141
|
}
|
|
133
142
|
export interface WithdrawResponse {
|
|
134
143
|
success: boolean;
|
|
@@ -136,17 +145,17 @@ export interface WithdrawResponse {
|
|
|
136
145
|
data?: {
|
|
137
146
|
withdrawRecipient: string;
|
|
138
147
|
withdrawAmount: number;
|
|
148
|
+
fee: number;
|
|
149
|
+
feeBps: number;
|
|
150
|
+
feeOnTop: boolean;
|
|
151
|
+
totalDebited: number;
|
|
139
152
|
changeAmount: number;
|
|
140
153
|
changeNote: {
|
|
141
154
|
commitment: string;
|
|
142
|
-
privateKey: string;
|
|
143
|
-
publicKey: string;
|
|
144
|
-
blinding: string;
|
|
145
155
|
amount: string;
|
|
146
|
-
|
|
156
|
+
leafIndex: number;
|
|
147
157
|
};
|
|
148
|
-
|
|
149
|
-
txSignature?: string;
|
|
158
|
+
savedNoteId?: string;
|
|
150
159
|
};
|
|
151
160
|
}
|
|
152
161
|
export interface PrivateTransferRequest {
|
|
@@ -155,11 +164,17 @@ export interface PrivateTransferRequest {
|
|
|
155
164
|
recipientUsername: string;
|
|
156
165
|
userPublicKey?: string;
|
|
157
166
|
mintAddress?: string;
|
|
167
|
+
mode?: "merge";
|
|
168
|
+
recipientSolanaAddress?: string;
|
|
169
|
+
/** Legacy extension field; current relayer resolves the key itself. */
|
|
170
|
+
recipientShieldedKey?: string;
|
|
158
171
|
}
|
|
159
172
|
export interface PrivateTransferResponse {
|
|
160
173
|
success: boolean;
|
|
161
174
|
message: string;
|
|
162
175
|
data?: {
|
|
176
|
+
merged: false;
|
|
177
|
+
} | {
|
|
163
178
|
recipient: string;
|
|
164
179
|
transferAmount: number;
|
|
165
180
|
senderChangeAmount: number;
|
|
@@ -172,12 +187,8 @@ export interface PrivateTransferResponse {
|
|
|
172
187
|
};
|
|
173
188
|
senderChangeNote: {
|
|
174
189
|
commitment: string;
|
|
175
|
-
privateKey: string;
|
|
176
|
-
publicKey: string;
|
|
177
|
-
blinding: string;
|
|
178
190
|
amount: string;
|
|
179
191
|
leafIndex: number;
|
|
180
|
-
savedNoteId: string;
|
|
181
192
|
} | null;
|
|
182
193
|
};
|
|
183
194
|
}
|
|
@@ -192,6 +203,18 @@ export interface PrivateSwapRequest {
|
|
|
192
203
|
slippageBps: number;
|
|
193
204
|
userPublicKey: string;
|
|
194
205
|
veiloPublicKey: string;
|
|
206
|
+
/** Optional veilo-connect intent forwarded by the browser extension. */
|
|
207
|
+
intentCommit?: {
|
|
208
|
+
origin: string;
|
|
209
|
+
fromMint: string;
|
|
210
|
+
toMint: string;
|
|
211
|
+
amountIn: string;
|
|
212
|
+
minAmountOut: string;
|
|
213
|
+
deadline: number;
|
|
214
|
+
nonce: string;
|
|
215
|
+
};
|
|
216
|
+
intentHash?: string;
|
|
217
|
+
intentDeadlineMs?: number;
|
|
195
218
|
}
|
|
196
219
|
export interface PrivateSwapResponse {
|
|
197
220
|
success: boolean;
|
|
@@ -251,68 +274,3 @@ export interface DeleteUserDataResponse {
|
|
|
251
274
|
message: string;
|
|
252
275
|
deletedCount?: number;
|
|
253
276
|
}
|
|
254
|
-
/**
|
|
255
|
-
* HTTP client for the Veilo relayer API.
|
|
256
|
-
*
|
|
257
|
-
* Handles auth, notes, merkle, and encrypted transact endpoints with
|
|
258
|
-
* automatic retry on transient failures and NaCl box payload encryption.
|
|
259
|
-
*
|
|
260
|
-
* @example
|
|
261
|
-
* ```ts
|
|
262
|
-
* const client = new VeiloRelayerClient({
|
|
263
|
-
* apiKey: "your-api-key",
|
|
264
|
-
* relayerPublicKey: "<base64 NaCl public key>",
|
|
265
|
-
* });
|
|
266
|
-
* const root = await client.getMerkleRoot("So111...");
|
|
267
|
-
* ```
|
|
268
|
-
*/
|
|
269
|
-
export declare class VeiloRelayerClient {
|
|
270
|
-
private readonly baseUrl;
|
|
271
|
-
private readonly apiKey;
|
|
272
|
-
private readonly relayerPubKey;
|
|
273
|
-
private authToken;
|
|
274
|
-
private readonly retry;
|
|
275
|
-
constructor(config: VeiloRelayerConfig, retry?: Partial<RetryPolicy>);
|
|
276
|
-
/** Update the auth token (e.g. after register/restore). */
|
|
277
|
-
setAuthToken(token: string): void;
|
|
278
|
-
private headers;
|
|
279
|
-
private request;
|
|
280
|
-
private encrypt;
|
|
281
|
-
/** Request a signature challenge for wallet authentication. */
|
|
282
|
-
getChallenge(walletPublicKey: string): Promise<ChallengeResponse>;
|
|
283
|
-
/** Register a new account with a signed challenge. Returns a JWT auth token. */
|
|
284
|
-
register(data: RegisterRequest): Promise<RegisterResponse>;
|
|
285
|
-
/** Restore an existing account using a signed challenge. Returns a JWT auth token. */
|
|
286
|
-
restore(data: RestoreRequest): Promise<RestoreResponse>;
|
|
287
|
-
/** Check whether a username is available for registration. */
|
|
288
|
-
checkUsername(username: string): Promise<CheckUsernameResponse>;
|
|
289
|
-
/** Look up a user's Veilo public key by username or wallet public key. */
|
|
290
|
-
getVeiloPublicKey(params: {
|
|
291
|
-
username: string;
|
|
292
|
-
publicKey?: never;
|
|
293
|
-
} | {
|
|
294
|
-
publicKey: string;
|
|
295
|
-
username?: never;
|
|
296
|
-
}): Promise<VeiloPublicKeyResponse>;
|
|
297
|
-
/**
|
|
298
|
-
* Provision (or retrieve) the Veilo spend key paired with a Solana address.
|
|
299
|
-
* Public and idempotent; the response contains public key material only.
|
|
300
|
-
*/
|
|
301
|
-
preRegisterKey(solanaAddress: string): Promise<PreRegisterKeyResponse>;
|
|
302
|
-
/** Save an encrypted note to the relayer's database. */
|
|
303
|
-
saveEncryptedNote(data: SaveEncryptedNoteRequest): Promise<SaveEncryptedNoteResponse>;
|
|
304
|
-
/** Query encrypted notes for the authenticated user. Requires auth token. */
|
|
305
|
-
queryEncryptedNotes(params?: QueryNotesRequest): Promise<QueryNotesResponse>;
|
|
306
|
-
/** Delete all stored data for the authenticated user. Requires auth token. */
|
|
307
|
-
deleteUserData(): Promise<DeleteUserDataResponse>;
|
|
308
|
-
/** Fetch the current Merkle root for a pool, optionally filtered by mint and tree ID. */
|
|
309
|
-
getMerkleRoot(mintAddress?: string, treeId?: number): Promise<MerkleRootResponse>;
|
|
310
|
-
/** Fetch the full Merkle tree (all leaves) for a pool. */
|
|
311
|
-
getMerkleTree(mintAddress?: string, treeId?: number): Promise<MerkleTreeResponse>;
|
|
312
|
-
/** Submit an encrypted withdrawal request to the relayer. Not retried on failure. */
|
|
313
|
-
submitWithdraw(data: WithdrawRequest): Promise<WithdrawResponse>;
|
|
314
|
-
/** Submit an encrypted private transfer request. Not retried on failure. */
|
|
315
|
-
submitPrivateTransfer(data: PrivateTransferRequest): Promise<PrivateTransferResponse>;
|
|
316
|
-
/** Submit an encrypted private swap request. Not retried on failure. */
|
|
317
|
-
submitPrivateSwap(data: PrivateSwapRequest): Promise<PrivateSwapResponse>;
|
|
318
|
-
}
|
package/dist/cjs/relayer.d.ts
CHANGED
|
@@ -1,318 +1 @@
|
|
|
1
|
-
export
|
|
2
|
-
/** Base URL of the relayer. Defaults to Veilo's production service. */
|
|
3
|
-
relayerUrl?: string;
|
|
4
|
-
/** API key sent as x-api-key header */
|
|
5
|
-
apiKey: string;
|
|
6
|
-
/** Relayer's NaCl box public key (base64-encoded, 32 bytes) */
|
|
7
|
-
relayerPublicKey: string;
|
|
8
|
-
/** Optional JWT auth token for authenticated endpoints */
|
|
9
|
-
authToken?: string;
|
|
10
|
-
}
|
|
11
|
-
/** Structured error thrown by VeiloRelayerClient on API failures. */
|
|
12
|
-
export declare class VeiloApiError extends Error {
|
|
13
|
-
code: string;
|
|
14
|
-
status: number;
|
|
15
|
-
details?: unknown;
|
|
16
|
-
constructor(code: string, message: string, status: number, details?: unknown);
|
|
17
|
-
}
|
|
18
|
-
/** Retry configuration for the relayer HTTP client. */
|
|
19
|
-
export interface RetryPolicy {
|
|
20
|
-
/** Max number of retry attempts (default: 3) */
|
|
21
|
-
maxRetries: number;
|
|
22
|
-
/** Base delay in ms for exponential backoff (default: 1000) */
|
|
23
|
-
baseDelayMs: number;
|
|
24
|
-
/** HTTP status codes that trigger a retry (default: [429, 502, 503, 504]) */
|
|
25
|
-
retryableStatuses: number[];
|
|
26
|
-
}
|
|
27
|
-
export interface RelayerEncryptedNote {
|
|
28
|
-
noteId: string;
|
|
29
|
-
commitment: string;
|
|
30
|
-
ephemeralPublicKey: string;
|
|
31
|
-
encryptedBlob: string;
|
|
32
|
-
timestamp: number;
|
|
33
|
-
blockHeight?: number;
|
|
34
|
-
txSignature?: string;
|
|
35
|
-
spent?: boolean;
|
|
36
|
-
onchainId?: string;
|
|
37
|
-
spentTx?: string;
|
|
38
|
-
spentAt?: number;
|
|
39
|
-
compactEphemeralKey?: string | null;
|
|
40
|
-
compactBlob?: string | null;
|
|
41
|
-
viewTag?: number | null;
|
|
42
|
-
leafIndex?: number | null;
|
|
43
|
-
mintAddress?: string | null;
|
|
44
|
-
treeId?: number | null;
|
|
45
|
-
}
|
|
46
|
-
export interface QueryNotesRequest {
|
|
47
|
-
lastCheckedTimestamp?: number;
|
|
48
|
-
limit?: number;
|
|
49
|
-
offset?: number;
|
|
50
|
-
walletPublicKey?: string;
|
|
51
|
-
}
|
|
52
|
-
export interface QueryNotesResponse {
|
|
53
|
-
success: boolean;
|
|
54
|
-
notes: RelayerEncryptedNote[];
|
|
55
|
-
total: number;
|
|
56
|
-
limit: number;
|
|
57
|
-
offset: number;
|
|
58
|
-
}
|
|
59
|
-
export interface SaveEncryptedNoteRequest {
|
|
60
|
-
commitment: string;
|
|
61
|
-
ephemeralPublicKey: string;
|
|
62
|
-
encryptedBlob: string;
|
|
63
|
-
timestamp: number;
|
|
64
|
-
blockHeight?: number;
|
|
65
|
-
txSignature?: string;
|
|
66
|
-
recipientWalletPublicKey?: string;
|
|
67
|
-
compactEphemeralKey?: string | null;
|
|
68
|
-
compactBlob?: string | null;
|
|
69
|
-
viewTag?: number | null;
|
|
70
|
-
leafIndex?: number;
|
|
71
|
-
newRoot?: string;
|
|
72
|
-
mintAddress?: string;
|
|
73
|
-
treeId?: number;
|
|
74
|
-
amountRaw?: string;
|
|
75
|
-
}
|
|
76
|
-
export interface SaveEncryptedNoteResponse {
|
|
77
|
-
success: boolean;
|
|
78
|
-
noteId?: string;
|
|
79
|
-
message?: string;
|
|
80
|
-
error?: string;
|
|
81
|
-
}
|
|
82
|
-
export interface MerkleRootResponse {
|
|
83
|
-
success: boolean;
|
|
84
|
-
data: {
|
|
85
|
-
root: string;
|
|
86
|
-
nextIndex: number;
|
|
87
|
-
treeId: number;
|
|
88
|
-
onChainTreeId: number;
|
|
89
|
-
mintAddress: string;
|
|
90
|
-
};
|
|
91
|
-
}
|
|
92
|
-
export interface MerkleTreeResponse {
|
|
93
|
-
success: boolean;
|
|
94
|
-
data: {
|
|
95
|
-
treeId: number;
|
|
96
|
-
onChainTreeId: number;
|
|
97
|
-
mintAddress: string;
|
|
98
|
-
height: number;
|
|
99
|
-
nextIndex: number;
|
|
100
|
-
root: string;
|
|
101
|
-
totalCommitments: number;
|
|
102
|
-
leaves: Array<{
|
|
103
|
-
commitment: string;
|
|
104
|
-
index: number;
|
|
105
|
-
txSignature: string;
|
|
106
|
-
slot: number;
|
|
107
|
-
timestamp: string;
|
|
108
|
-
}>;
|
|
109
|
-
reconstructionInfo: {
|
|
110
|
-
instructions: string;
|
|
111
|
-
treeHeight: number;
|
|
112
|
-
hashFunction?: string;
|
|
113
|
-
};
|
|
114
|
-
};
|
|
115
|
-
}
|
|
116
|
-
export interface TransactNote {
|
|
117
|
-
commitment: string;
|
|
118
|
-
privateKey: string;
|
|
119
|
-
publicKey: string;
|
|
120
|
-
blinding: string;
|
|
121
|
-
amount: string;
|
|
122
|
-
nullifier: string;
|
|
123
|
-
leafIndex?: number;
|
|
124
|
-
noteId?: string;
|
|
125
|
-
}
|
|
126
|
-
export interface WithdrawRequest {
|
|
127
|
-
notes: TransactNote[];
|
|
128
|
-
recipient: string;
|
|
129
|
-
amount: string;
|
|
130
|
-
userPublicKey: string;
|
|
131
|
-
mintAddress: string;
|
|
132
|
-
}
|
|
133
|
-
export interface WithdrawResponse {
|
|
134
|
-
success: boolean;
|
|
135
|
-
message: string;
|
|
136
|
-
data?: {
|
|
137
|
-
withdrawRecipient: string;
|
|
138
|
-
withdrawAmount: number;
|
|
139
|
-
changeAmount: number;
|
|
140
|
-
changeNote: {
|
|
141
|
-
commitment: string;
|
|
142
|
-
privateKey: string;
|
|
143
|
-
publicKey: string;
|
|
144
|
-
blinding: string;
|
|
145
|
-
amount: string;
|
|
146
|
-
nullifier: string;
|
|
147
|
-
};
|
|
148
|
-
spentNoteIds?: string[];
|
|
149
|
-
txSignature?: string;
|
|
150
|
-
};
|
|
151
|
-
}
|
|
152
|
-
export interface PrivateTransferRequest {
|
|
153
|
-
notes: TransactNote[];
|
|
154
|
-
amount: string;
|
|
155
|
-
recipientUsername: string;
|
|
156
|
-
userPublicKey?: string;
|
|
157
|
-
mintAddress?: string;
|
|
158
|
-
}
|
|
159
|
-
export interface PrivateTransferResponse {
|
|
160
|
-
success: boolean;
|
|
161
|
-
message: string;
|
|
162
|
-
data?: {
|
|
163
|
-
recipient: string;
|
|
164
|
-
transferAmount: number;
|
|
165
|
-
senderChangeAmount: number;
|
|
166
|
-
txSignature: string;
|
|
167
|
-
recipientNote: {
|
|
168
|
-
commitment: string;
|
|
169
|
-
amount: string;
|
|
170
|
-
leafIndex: number;
|
|
171
|
-
savedNoteId: string;
|
|
172
|
-
};
|
|
173
|
-
senderChangeNote: {
|
|
174
|
-
commitment: string;
|
|
175
|
-
privateKey: string;
|
|
176
|
-
publicKey: string;
|
|
177
|
-
blinding: string;
|
|
178
|
-
amount: string;
|
|
179
|
-
leafIndex: number;
|
|
180
|
-
savedNoteId: string;
|
|
181
|
-
} | null;
|
|
182
|
-
};
|
|
183
|
-
}
|
|
184
|
-
export interface PrivateSwapRequest {
|
|
185
|
-
notes: TransactNote[];
|
|
186
|
-
sourceMintAddress: string;
|
|
187
|
-
destMintAddress: string;
|
|
188
|
-
sourceJupiterMint?: string;
|
|
189
|
-
destJupiterMint?: string;
|
|
190
|
-
swapAmountRaw: string;
|
|
191
|
-
minAmountOut: string;
|
|
192
|
-
slippageBps: number;
|
|
193
|
-
userPublicKey: string;
|
|
194
|
-
veiloPublicKey: string;
|
|
195
|
-
}
|
|
196
|
-
export interface PrivateSwapResponse {
|
|
197
|
-
success: boolean;
|
|
198
|
-
message: string;
|
|
199
|
-
data?: {
|
|
200
|
-
txSignature: string;
|
|
201
|
-
swapAmountRaw: string;
|
|
202
|
-
outputAmount: string;
|
|
203
|
-
minAmountOut: string;
|
|
204
|
-
changeAmount: string;
|
|
205
|
-
};
|
|
206
|
-
}
|
|
207
|
-
export interface ChallengeResponse {
|
|
208
|
-
success: boolean;
|
|
209
|
-
challenge: string;
|
|
210
|
-
expiresAt: number;
|
|
211
|
-
}
|
|
212
|
-
export interface RegisterRequest {
|
|
213
|
-
username: string;
|
|
214
|
-
walletPublicKey: string;
|
|
215
|
-
signature: string;
|
|
216
|
-
challenge: string;
|
|
217
|
-
veiloPublicKey: string;
|
|
218
|
-
}
|
|
219
|
-
export interface RegisterResponse {
|
|
220
|
-
success: boolean;
|
|
221
|
-
token: string;
|
|
222
|
-
message?: string;
|
|
223
|
-
}
|
|
224
|
-
export interface RestoreRequest {
|
|
225
|
-
walletPublicKey: string;
|
|
226
|
-
signature: string;
|
|
227
|
-
challenge: string;
|
|
228
|
-
}
|
|
229
|
-
export interface RestoreResponse {
|
|
230
|
-
success: boolean;
|
|
231
|
-
token: string;
|
|
232
|
-
username: string;
|
|
233
|
-
veiloPublicKey: string;
|
|
234
|
-
}
|
|
235
|
-
export interface CheckUsernameResponse {
|
|
236
|
-
success: boolean;
|
|
237
|
-
available: boolean;
|
|
238
|
-
}
|
|
239
|
-
export interface VeiloPublicKeyResponse {
|
|
240
|
-
success: boolean;
|
|
241
|
-
username: string;
|
|
242
|
-
pubK: string;
|
|
243
|
-
veiloPublicKey: string;
|
|
244
|
-
}
|
|
245
|
-
export interface PreRegisterKeyResponse {
|
|
246
|
-
success: boolean;
|
|
247
|
-
veiloPublicKey: string;
|
|
248
|
-
}
|
|
249
|
-
export interface DeleteUserDataResponse {
|
|
250
|
-
success: boolean;
|
|
251
|
-
message: string;
|
|
252
|
-
deletedCount?: number;
|
|
253
|
-
}
|
|
254
|
-
/**
|
|
255
|
-
* HTTP client for the Veilo relayer API.
|
|
256
|
-
*
|
|
257
|
-
* Handles auth, notes, merkle, and encrypted transact endpoints with
|
|
258
|
-
* automatic retry on transient failures and NaCl box payload encryption.
|
|
259
|
-
*
|
|
260
|
-
* @example
|
|
261
|
-
* ```ts
|
|
262
|
-
* const client = new VeiloRelayerClient({
|
|
263
|
-
* apiKey: "your-api-key",
|
|
264
|
-
* relayerPublicKey: "<base64 NaCl public key>",
|
|
265
|
-
* });
|
|
266
|
-
* const root = await client.getMerkleRoot("So111...");
|
|
267
|
-
* ```
|
|
268
|
-
*/
|
|
269
|
-
export declare class VeiloRelayerClient {
|
|
270
|
-
private readonly baseUrl;
|
|
271
|
-
private readonly apiKey;
|
|
272
|
-
private readonly relayerPubKey;
|
|
273
|
-
private authToken;
|
|
274
|
-
private readonly retry;
|
|
275
|
-
constructor(config: VeiloRelayerConfig, retry?: Partial<RetryPolicy>);
|
|
276
|
-
/** Update the auth token (e.g. after register/restore). */
|
|
277
|
-
setAuthToken(token: string): void;
|
|
278
|
-
private headers;
|
|
279
|
-
private request;
|
|
280
|
-
private encrypt;
|
|
281
|
-
/** Request a signature challenge for wallet authentication. */
|
|
282
|
-
getChallenge(walletPublicKey: string): Promise<ChallengeResponse>;
|
|
283
|
-
/** Register a new account with a signed challenge. Returns a JWT auth token. */
|
|
284
|
-
register(data: RegisterRequest): Promise<RegisterResponse>;
|
|
285
|
-
/** Restore an existing account using a signed challenge. Returns a JWT auth token. */
|
|
286
|
-
restore(data: RestoreRequest): Promise<RestoreResponse>;
|
|
287
|
-
/** Check whether a username is available for registration. */
|
|
288
|
-
checkUsername(username: string): Promise<CheckUsernameResponse>;
|
|
289
|
-
/** Look up a user's Veilo public key by username or wallet public key. */
|
|
290
|
-
getVeiloPublicKey(params: {
|
|
291
|
-
username: string;
|
|
292
|
-
publicKey?: never;
|
|
293
|
-
} | {
|
|
294
|
-
publicKey: string;
|
|
295
|
-
username?: never;
|
|
296
|
-
}): Promise<VeiloPublicKeyResponse>;
|
|
297
|
-
/**
|
|
298
|
-
* Provision (or retrieve) the Veilo spend key paired with a Solana address.
|
|
299
|
-
* Public and idempotent; the response contains public key material only.
|
|
300
|
-
*/
|
|
301
|
-
preRegisterKey(solanaAddress: string): Promise<PreRegisterKeyResponse>;
|
|
302
|
-
/** Save an encrypted note to the relayer's database. */
|
|
303
|
-
saveEncryptedNote(data: SaveEncryptedNoteRequest): Promise<SaveEncryptedNoteResponse>;
|
|
304
|
-
/** Query encrypted notes for the authenticated user. Requires auth token. */
|
|
305
|
-
queryEncryptedNotes(params?: QueryNotesRequest): Promise<QueryNotesResponse>;
|
|
306
|
-
/** Delete all stored data for the authenticated user. Requires auth token. */
|
|
307
|
-
deleteUserData(): Promise<DeleteUserDataResponse>;
|
|
308
|
-
/** Fetch the current Merkle root for a pool, optionally filtered by mint and tree ID. */
|
|
309
|
-
getMerkleRoot(mintAddress?: string, treeId?: number): Promise<MerkleRootResponse>;
|
|
310
|
-
/** Fetch the full Merkle tree (all leaves) for a pool. */
|
|
311
|
-
getMerkleTree(mintAddress?: string, treeId?: number): Promise<MerkleTreeResponse>;
|
|
312
|
-
/** Submit an encrypted withdrawal request to the relayer. Not retried on failure. */
|
|
313
|
-
submitWithdraw(data: WithdrawRequest): Promise<WithdrawResponse>;
|
|
314
|
-
/** Submit an encrypted private transfer request. Not retried on failure. */
|
|
315
|
-
submitPrivateTransfer(data: PrivateTransferRequest): Promise<PrivateTransferResponse>;
|
|
316
|
-
/** Submit an encrypted private swap request. Not retried on failure. */
|
|
317
|
-
submitPrivateSwap(data: PrivateSwapRequest): Promise<PrivateSwapResponse>;
|
|
318
|
-
}
|
|
1
|
+
export * from "./relayer/index.js";
|