@veilo/sdk-core 0.5.0 → 0.7.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 +282 -18
- package/accounts.d.ts +2 -0
- package/accounts.js +3 -0
- package/cloak.d.ts +2 -0
- package/cloak.js +3 -0
- package/config.d.ts +2 -0
- package/config.js +3 -0
- package/dist/cjs/events/index.d.ts +6 -0
- package/dist/cjs/events/index.js +22 -0
- package/dist/cjs/events/parsing.d.ts +25 -0
- package/dist/cjs/events/parsing.js +158 -0
- package/dist/cjs/events/position.d.ts +26 -0
- package/dist/cjs/events/position.js +53 -0
- package/dist/cjs/events/recovery.d.ts +87 -0
- package/dist/cjs/events/recovery.js +281 -0
- package/dist/cjs/events/scanning.d.ts +35 -0
- package/dist/cjs/events/scanning.js +98 -0
- package/dist/cjs/events/tree.d.ts +27 -0
- package/dist/cjs/events/tree.js +63 -0
- package/dist/cjs/events/types.d.ts +39 -0
- package/dist/cjs/events/types.js +2 -0
- package/dist/cjs/events.d.ts +1 -77
- package/dist/cjs/events.js +6 -154
- package/dist/cjs/identity/encoding.d.ts +9 -0
- package/dist/cjs/identity/encoding.js +85 -0
- package/dist/cjs/identity/index.d.ts +4 -0
- package/dist/cjs/identity/index.js +20 -0
- package/dist/cjs/identity/noteKey.d.ts +33 -0
- package/dist/cjs/identity/noteKey.js +97 -0
- package/dist/cjs/identity/spending.d.ts +18 -0
- package/dist/cjs/identity/spending.js +46 -0
- package/dist/cjs/identity/viewKey.d.ts +38 -0
- package/dist/cjs/identity/viewKey.js +105 -0
- package/dist/cjs/idl/index.d.ts +18 -0
- package/dist/cjs/idl/index.js +24 -0
- package/dist/cjs/idl/privacy_pool.json +9907 -9907
- package/dist/cjs/idl/privacy_pool_legacy.d.ts +5 -0
- package/dist/cjs/idl/privacy_pool_legacy.js +3307 -0
- package/dist/cjs/idl/privacy_pool_legacy.json +2302 -0
- package/dist/cjs/idl/privacy_pool_legacy2.d.ts +5 -0
- package/dist/cjs/idl/privacy_pool_legacy2.js +3397 -0
- package/dist/cjs/idl/privacy_pool_legacy2.json +2376 -0
- package/dist/cjs/index.d.ts +8 -3
- package/dist/cjs/index.js +12 -2
- package/dist/cjs/notes/amount.d.ts +2 -0
- package/dist/cjs/notes/amount.js +21 -0
- package/dist/cjs/notes/index.d.ts +4 -0
- package/dist/cjs/notes/index.js +4 -0
- package/dist/cjs/notes/recovery.d.ts +16 -6
- package/dist/cjs/notes/recovery.js +33 -16
- package/dist/cjs/notes/scan.d.ts +74 -0
- package/dist/cjs/notes/scan.js +110 -0
- package/dist/cjs/notes/selection.d.ts +133 -0
- package/dist/cjs/notes/selection.js +260 -0
- package/dist/cjs/notes/spent.d.ts +60 -0
- package/dist/cjs/notes/spent.js +101 -0
- package/dist/cjs/perps/constants.d.ts +16 -0
- package/dist/cjs/perps/constants.js +52 -0
- package/dist/cjs/perps/index.d.ts +5 -0
- package/dist/cjs/perps/index.js +21 -0
- package/dist/cjs/perps/keys.d.ts +16 -0
- package/dist/cjs/perps/keys.js +43 -0
- package/dist/cjs/perps/pdas.d.ts +29 -0
- package/dist/cjs/perps/pdas.js +55 -0
- package/dist/cjs/perps/relayer.d.ts +9 -0
- package/dist/cjs/perps/relayer.js +35 -0
- package/dist/cjs/perps/types.d.ts +126 -0
- package/dist/cjs/perps/types.js +2 -0
- package/dist/cjs/positions/index.d.ts +4 -0
- package/dist/cjs/positions/index.js +20 -0
- package/dist/cjs/positions/keys.d.ts +29 -0
- package/dist/cjs/positions/keys.js +71 -0
- package/dist/cjs/positions/pdas.d.ts +15 -0
- package/dist/cjs/positions/pdas.js +54 -0
- package/dist/cjs/positions/relayer.d.ts +4 -0
- package/dist/cjs/positions/relayer.js +15 -0
- package/dist/cjs/positions/types.d.ts +97 -0
- package/dist/cjs/positions/types.js +2 -0
- package/dist/cjs/predictions/client.d.ts +41 -0
- package/dist/cjs/predictions/client.js +147 -0
- package/dist/cjs/predictions/index.d.ts +5 -0
- package/dist/cjs/predictions/index.js +21 -0
- package/dist/cjs/predictions/keys.d.ts +14 -0
- package/dist/cjs/predictions/keys.js +40 -0
- package/dist/cjs/predictions/pdas.d.ts +6 -0
- package/dist/cjs/predictions/pdas.js +13 -0
- package/dist/cjs/predictions/relayer.d.ts +3 -0
- package/dist/cjs/predictions/relayer.js +11 -0
- package/dist/cjs/predictions/types.d.ts +178 -0
- package/dist/cjs/predictions/types.js +2 -0
- package/dist/cjs/program.d.ts +2 -0
- package/dist/cjs/program.js +8 -7
- package/dist/cjs/prover.d.ts +27 -4
- package/dist/cjs/prover.js +107 -48
- package/dist/cjs/relayer/api.d.ts +41 -0
- package/dist/cjs/relayer/api.js +99 -0
- package/dist/cjs/relayer/client.d.ts +42 -17
- package/dist/cjs/relayer/client.js +94 -17
- package/dist/cjs/relayer/errors.d.ts +1 -1
- package/dist/cjs/relayer/errors.js +1 -1
- package/dist/cjs/relayer/index.d.ts +4 -1
- package/dist/cjs/relayer/index.js +1 -1
- package/dist/cjs/relayer/internal-config.d.ts +36 -0
- package/dist/cjs/relayer/internal-config.js +9 -0
- package/dist/cjs/relayer/internal.d.ts +6 -0
- package/dist/cjs/relayer/internal.js +14 -0
- package/dist/cjs/relayer/transport.d.ts +4 -2
- package/dist/cjs/relayer/transport.js +10 -5
- package/dist/cjs/relayer/types.d.ts +40 -10
- package/dist/cjs/relayer/types.js +1 -1
- package/dist/cjs/shield/owner.js +1 -4
- package/dist/esm/events/index.d.ts +6 -0
- package/dist/esm/events/index.js +6 -0
- package/dist/esm/events/parsing.d.ts +25 -0
- package/dist/esm/events/parsing.js +120 -0
- package/dist/esm/events/position.d.ts +26 -0
- package/dist/esm/events/position.js +48 -0
- package/dist/esm/events/recovery.d.ts +87 -0
- package/dist/esm/events/recovery.js +237 -0
- package/dist/esm/events/scanning.d.ts +35 -0
- package/dist/esm/events/scanning.js +92 -0
- package/dist/esm/events/tree.d.ts +27 -0
- package/dist/esm/events/tree.js +58 -0
- package/dist/esm/events/types.d.ts +39 -0
- package/dist/esm/events/types.js +1 -0
- package/dist/esm/events.d.ts +1 -77
- package/dist/esm/events.js +3 -129
- package/dist/esm/identity/encoding.d.ts +9 -0
- package/dist/esm/identity/encoding.js +75 -0
- package/dist/esm/identity/index.d.ts +4 -0
- package/dist/esm/identity/index.js +4 -0
- package/dist/esm/identity/noteKey.d.ts +33 -0
- package/dist/esm/identity/noteKey.js +91 -0
- package/dist/esm/identity/spending.d.ts +18 -0
- package/dist/esm/identity/spending.js +35 -0
- package/dist/esm/identity/viewKey.d.ts +38 -0
- package/dist/esm/identity/viewKey.js +96 -0
- package/dist/esm/idl/index.d.ts +18 -0
- package/dist/esm/idl/index.js +18 -0
- package/dist/esm/idl/privacy_pool.json +9907 -9907
- package/dist/esm/idl/privacy_pool_legacy.d.ts +5 -0
- package/dist/esm/idl/privacy_pool_legacy.js +3305 -0
- package/dist/esm/idl/privacy_pool_legacy.json +2302 -0
- package/dist/esm/idl/privacy_pool_legacy2.d.ts +5 -0
- package/dist/esm/idl/privacy_pool_legacy2.js +3395 -0
- package/dist/esm/idl/privacy_pool_legacy2.json +2376 -0
- package/dist/esm/index.d.ts +8 -3
- package/dist/esm/index.js +8 -3
- package/dist/esm/notes/amount.d.ts +2 -0
- package/dist/esm/notes/amount.js +18 -0
- package/dist/esm/notes/index.d.ts +4 -0
- package/dist/esm/notes/index.js +4 -0
- package/dist/esm/notes/recovery.d.ts +16 -6
- package/dist/esm/notes/recovery.js +33 -16
- package/dist/esm/notes/scan.d.ts +74 -0
- package/dist/esm/notes/scan.js +105 -0
- package/dist/esm/notes/selection.d.ts +133 -0
- package/dist/esm/notes/selection.js +254 -0
- package/dist/esm/notes/spent.d.ts +60 -0
- package/dist/esm/notes/spent.js +96 -0
- package/dist/esm/perps/constants.d.ts +16 -0
- package/dist/esm/perps/constants.js +48 -0
- package/dist/esm/perps/index.d.ts +5 -0
- package/dist/esm/perps/index.js +5 -0
- package/dist/esm/perps/keys.d.ts +16 -0
- package/dist/esm/perps/keys.js +35 -0
- package/dist/esm/perps/pdas.d.ts +29 -0
- package/dist/esm/perps/pdas.js +47 -0
- package/dist/esm/perps/relayer.d.ts +9 -0
- package/dist/esm/perps/relayer.js +25 -0
- package/dist/esm/perps/types.d.ts +126 -0
- package/dist/esm/perps/types.js +1 -0
- package/dist/esm/positions/index.d.ts +4 -0
- package/dist/esm/positions/index.js +4 -0
- package/dist/esm/positions/keys.d.ts +29 -0
- package/dist/esm/positions/keys.js +65 -0
- package/dist/esm/positions/pdas.d.ts +15 -0
- package/dist/esm/positions/pdas.js +44 -0
- package/dist/esm/positions/relayer.d.ts +4 -0
- package/dist/esm/positions/relayer.js +10 -0
- package/dist/esm/positions/types.d.ts +97 -0
- package/dist/esm/positions/types.js +1 -0
- package/dist/esm/predictions/client.d.ts +41 -0
- package/dist/esm/predictions/client.js +141 -0
- package/dist/esm/predictions/index.d.ts +5 -0
- package/dist/esm/predictions/index.js +5 -0
- package/dist/esm/predictions/keys.d.ts +14 -0
- package/dist/esm/predictions/keys.js +33 -0
- package/dist/esm/predictions/pdas.d.ts +6 -0
- package/dist/esm/predictions/pdas.js +10 -0
- package/dist/esm/predictions/relayer.d.ts +3 -0
- package/dist/esm/predictions/relayer.js +7 -0
- package/dist/esm/predictions/types.d.ts +178 -0
- package/dist/esm/predictions/types.js +1 -0
- package/dist/esm/program.d.ts +2 -0
- package/dist/esm/program.js +4 -3
- package/dist/esm/prover.d.ts +27 -4
- package/dist/esm/prover.js +106 -15
- package/dist/esm/relayer/api.d.ts +41 -0
- package/dist/esm/relayer/api.js +66 -0
- package/dist/esm/relayer/client.d.ts +42 -17
- package/dist/esm/relayer/client.js +94 -17
- package/dist/esm/relayer/errors.d.ts +1 -1
- package/dist/esm/relayer/errors.js +1 -1
- package/dist/esm/relayer/index.d.ts +4 -1
- package/dist/esm/relayer/index.js +1 -1
- package/dist/esm/relayer/internal-config.d.ts +36 -0
- package/dist/esm/relayer/internal-config.js +6 -0
- package/dist/esm/relayer/internal.d.ts +6 -0
- package/dist/esm/relayer/internal.js +10 -0
- package/dist/esm/relayer/transport.d.ts +4 -2
- package/dist/esm/relayer/transport.js +10 -5
- package/dist/esm/relayer/types.d.ts +40 -10
- package/dist/esm/relayer/types.js +1 -1
- package/dist/esm/shield/owner.js +1 -4
- package/identity.d.ts +2 -0
- package/identity.js +3 -0
- package/idl.d.ts +2 -0
- package/idl.js +3 -0
- package/notes.d.ts +2 -0
- package/notes.js +3 -0
- package/package.json +85 -3
- package/perps.d.ts +2 -0
- package/perps.js +3 -0
- package/poseidon.d.ts +2 -0
- package/poseidon.js +3 -0
- package/positions.d.ts +2 -0
- package/positions.js +3 -0
- package/predictions.d.ts +2 -0
- package/predictions.js +3 -0
- package/proof.d.ts +2 -0
- package/proof.js +3 -0
- package/prover.d.ts +2 -0
- package/prover.js +3 -0
- package/relayer.d.ts +2 -0
- package/relayer.js +3 -0
- package/shield.d.ts +2 -0
- package/shield.js +3 -0
- package/transactions.d.ts +2 -0
- package/transactions.js +3 -0
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.VEILO_VIEW_KEY_INFO = exports.VEILO_VIEW_KEY_SALT = void 0;
|
|
7
|
+
exports.deriveViewKeypairFromSpendingKey = deriveViewKeypairFromSpendingKey;
|
|
8
|
+
exports.deriveViewKeypairWithSigner = deriveViewKeypairWithSigner;
|
|
9
|
+
exports.openCompactNoteWithViewKey = openCompactNoteWithViewKey;
|
|
10
|
+
/**
|
|
11
|
+
* Derivation of a VIEW-ONLY note decryption key from a spending-key root.
|
|
12
|
+
*
|
|
13
|
+
* ⚠ PROVISIONAL — NOT YET CONSUMED BY ANY NOTE FORMAT.
|
|
14
|
+
* Today's compact note ciphers are ECDH'd to the recipient's *wallet* Ed25519
|
|
15
|
+
* key (see `createCompactNoteCipher`), so nothing on-chain or in the relayer is
|
|
16
|
+
* encrypted to the key this module derives. It exists so the v2 note format —
|
|
17
|
+
* where senders encrypt to a published `viewPublicKey` instead of the wallet
|
|
18
|
+
* key — can be built and tested against a fixed derivation. The labels below
|
|
19
|
+
* become permanent the moment the first note is written under them; until then
|
|
20
|
+
* they are safe to change.
|
|
21
|
+
*
|
|
22
|
+
* WHY THIS EXISTS
|
|
23
|
+
* ---------------
|
|
24
|
+
* Note decryption currently requires the wallet Ed25519 secret, which is the
|
|
25
|
+
* one thing a dapp cannot have. Spend authority, by contrast, is already
|
|
26
|
+
* signature-derived (`./noteKey.js`). So a dapp can reconstruct the ability to
|
|
27
|
+
* spend but not the ability to *read*, and since a spend witness needs each
|
|
28
|
+
* note's amount and blinding, reading gates spending. Publishing a
|
|
29
|
+
* signature-derived `viewPublicKey` and encrypting to it closes that gap.
|
|
30
|
+
*
|
|
31
|
+
* Splitting viewing from spending is the point: `viewSecretKey` decrypts notes
|
|
32
|
+
* and nothing more. It cannot produce a nullifier, so it cannot spend, and it
|
|
33
|
+
* cannot determine on its own whether a note is already spent — a view-only
|
|
34
|
+
* client relies on the relayer's `spent` flag for that.
|
|
35
|
+
*
|
|
36
|
+
* Derivation:
|
|
37
|
+
* viewSecretKey = clamp(HKDF-SHA256(ikm=spendingKey, salt="veilo_view_v1",
|
|
38
|
+
* info="x25519", len=32))
|
|
39
|
+
* viewPublicKey = X25519_base(viewSecretKey)
|
|
40
|
+
*
|
|
41
|
+
* Both salt and info are given explicitly rather than left empty, so a sibling
|
|
42
|
+
* implementation never has to guess how its HKDF library treats an absent salt.
|
|
43
|
+
*/
|
|
44
|
+
const hkdf_1 = require("@noble/hashes/hkdf");
|
|
45
|
+
const sha256_1 = require("@noble/hashes/sha256");
|
|
46
|
+
const tweetnacl_1 = __importDefault(require("tweetnacl"));
|
|
47
|
+
const compactNote_js_1 = require("../compactNote.js");
|
|
48
|
+
const mailbox_js_1 = require("../notes/mailbox.js");
|
|
49
|
+
const encoding_js_1 = require("./encoding.js");
|
|
50
|
+
const spending_js_1 = require("./spending.js");
|
|
51
|
+
/** HKDF salt. Provisional — see the header. */
|
|
52
|
+
exports.VEILO_VIEW_KEY_SALT = "veilo_view_v1";
|
|
53
|
+
/** HKDF info. Provisional — see the header. */
|
|
54
|
+
exports.VEILO_VIEW_KEY_INFO = "x25519";
|
|
55
|
+
/**
|
|
56
|
+
* Apply RFC 7748 clamping so the stored scalar is canonical.
|
|
57
|
+
*
|
|
58
|
+
* TweetNaCl clamps internally on every scalar multiplication, so this changes
|
|
59
|
+
* no result; it means the bytes we hand out are the bytes actually used, which
|
|
60
|
+
* keeps a sibling implementation from disagreeing about what was stored.
|
|
61
|
+
*/
|
|
62
|
+
function clampX25519(scalar) {
|
|
63
|
+
const clamped = new Uint8Array(scalar);
|
|
64
|
+
clamped[0] &= 248;
|
|
65
|
+
clamped[31] &= 127;
|
|
66
|
+
clamped[31] |= 64;
|
|
67
|
+
return clamped;
|
|
68
|
+
}
|
|
69
|
+
/** Derive the view keypair from a spending-key root. */
|
|
70
|
+
function deriveViewKeypairFromSpendingKey(spendingKey) {
|
|
71
|
+
(0, encoding_js_1.assertBytes)(spendingKey, 32, "spending key");
|
|
72
|
+
const viewSecretKey = clampX25519((0, hkdf_1.hkdf)(sha256_1.sha256, spendingKey, (0, encoding_js_1.utf8)(exports.VEILO_VIEW_KEY_SALT), (0, encoding_js_1.utf8)(exports.VEILO_VIEW_KEY_INFO), 32));
|
|
73
|
+
return { viewSecretKey, viewPublicKey: tweetnacl_1.default.scalarMult.base(viewSecretKey) };
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* One-shot derivation for a dapp holding only a wallet-standard `signMessage`.
|
|
77
|
+
*
|
|
78
|
+
* Uses the same signature as `deriveNoteKeypairWithSigner`, so a client that
|
|
79
|
+
* wants both prompts once and derives the spending key itself rather than
|
|
80
|
+
* calling both helpers.
|
|
81
|
+
*/
|
|
82
|
+
async function deriveViewKeypairWithSigner(signMessage, index = 0) {
|
|
83
|
+
return deriveViewKeypairFromSpendingKey(await (0, spending_js_1.deriveSpendingKeyWithSigner)(signMessage, index));
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Scan one candidate cipher with a view key.
|
|
87
|
+
*
|
|
88
|
+
* Returns `null` both for a view-tag miss and for a blob that was not encrypted
|
|
89
|
+
* to this key — the expected outcome for nearly every candidate. The shared
|
|
90
|
+
* secret is computed once and reused for the tag check and the open, which is
|
|
91
|
+
* the cheapest correct order for a scan loop: the tag rejects ~255/256
|
|
92
|
+
* candidates for one scalar multiplication and one hash.
|
|
93
|
+
*
|
|
94
|
+
* ⚠ Only decrypts notes encrypted TO `viewPublicKey`. Notes sealed to a wallet
|
|
95
|
+
* Ed25519 key — every note written before the v2 format — will not open here.
|
|
96
|
+
*/
|
|
97
|
+
function openCompactNoteWithViewKey(viewSecretKey, cipher) {
|
|
98
|
+
(0, encoding_js_1.assertBytes)(viewSecretKey, 32, "view secret key");
|
|
99
|
+
(0, encoding_js_1.assertBytes)(cipher.ephemeralPublicKey, 32, "ephemeral public key");
|
|
100
|
+
const sharedSecret = tweetnacl_1.default.scalarMult(viewSecretKey, (0, mailbox_js_1.ed25519PublicKeyToX25519)(cipher.ephemeralPublicKey));
|
|
101
|
+
if (tweetnacl_1.default.hash(sharedSecret)[0] !== cipher.viewTag)
|
|
102
|
+
return null;
|
|
103
|
+
// walletSecretKey is unused once `sharedSecret` is supplied.
|
|
104
|
+
return (0, compactNote_js_1.decryptCompactNoteCipher)(viewSecretKey, cipher.ephemeralPublicKey, cipher.compactBlob, { sharedSecret });
|
|
105
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { Idl } from "@coral-xyz/anchor";
|
|
2
|
+
/** Protocol generations used to decode Veilo's historical on-chain data. */
|
|
3
|
+
export type PrivacyPoolIdlVersion = "current" | "legacy" | "legacy2";
|
|
4
|
+
export type VersionedPrivacyPoolIdl = {
|
|
5
|
+
version: PrivacyPoolIdlVersion;
|
|
6
|
+
idl: Idl;
|
|
7
|
+
};
|
|
8
|
+
/** Current IDL used for building new instructions. */
|
|
9
|
+
export declare const PRIVACY_POOL_CURRENT_IDL: Idl;
|
|
10
|
+
/** Original event shape without compact note recovery fields. */
|
|
11
|
+
export declare const PRIVACY_POOL_LEGACY_IDL: Idl;
|
|
12
|
+
/** Intermediate event shape with compact cipher fields but no view tag. */
|
|
13
|
+
export declare const PRIVACY_POOL_LEGACY2_IDL: Idl;
|
|
14
|
+
/**
|
|
15
|
+
* IDLs in the same newest-to-oldest fallback order used by the relayer indexer.
|
|
16
|
+
* All three target the same deployed program address.
|
|
17
|
+
*/
|
|
18
|
+
export declare const PRIVACY_POOL_IDLS: readonly VersionedPrivacyPoolIdl[];
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.PRIVACY_POOL_IDLS = exports.PRIVACY_POOL_LEGACY2_IDL = exports.PRIVACY_POOL_LEGACY_IDL = exports.PRIVACY_POOL_CURRENT_IDL = void 0;
|
|
7
|
+
const privacy_pool_js_1 = __importDefault(require("./privacy_pool.js"));
|
|
8
|
+
const privacy_pool_legacy_js_1 = __importDefault(require("./privacy_pool_legacy.js"));
|
|
9
|
+
const privacy_pool_legacy2_js_1 = __importDefault(require("./privacy_pool_legacy2.js"));
|
|
10
|
+
/** Current IDL used for building new instructions. */
|
|
11
|
+
exports.PRIVACY_POOL_CURRENT_IDL = privacy_pool_js_1.default;
|
|
12
|
+
/** Original event shape without compact note recovery fields. */
|
|
13
|
+
exports.PRIVACY_POOL_LEGACY_IDL = privacy_pool_legacy_js_1.default;
|
|
14
|
+
/** Intermediate event shape with compact cipher fields but no view tag. */
|
|
15
|
+
exports.PRIVACY_POOL_LEGACY2_IDL = privacy_pool_legacy2_js_1.default;
|
|
16
|
+
/**
|
|
17
|
+
* IDLs in the same newest-to-oldest fallback order used by the relayer indexer.
|
|
18
|
+
* All three target the same deployed program address.
|
|
19
|
+
*/
|
|
20
|
+
exports.PRIVACY_POOL_IDLS = [
|
|
21
|
+
{ version: "current", idl: exports.PRIVACY_POOL_CURRENT_IDL },
|
|
22
|
+
{ version: "legacy", idl: exports.PRIVACY_POOL_LEGACY_IDL },
|
|
23
|
+
{ version: "legacy2", idl: exports.PRIVACY_POOL_LEGACY2_IDL },
|
|
24
|
+
];
|