@veilo/sdk-core 0.5.0 → 0.6.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 +237 -19
- 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 +3 -0
- package/dist/cjs/notes/index.js +3 -0
- package/dist/cjs/notes/recovery.d.ts +16 -6
- package/dist/cjs/notes/recovery.js +33 -16
- package/dist/cjs/notes/selection.d.ts +77 -0
- package/dist/cjs/notes/selection.js +193 -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 +31 -0
- package/dist/cjs/relayer/api.js +86 -0
- package/dist/cjs/relayer/client.d.ts +29 -17
- package/dist/cjs/relayer/client.js +72 -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 +9 -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 +3 -0
- package/dist/esm/notes/index.js +3 -0
- package/dist/esm/notes/recovery.d.ts +16 -6
- package/dist/esm/notes/recovery.js +33 -16
- package/dist/esm/notes/selection.d.ts +77 -0
- package/dist/esm/notes/selection.js +188 -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 +31 -0
- package/dist/esm/relayer/api.js +55 -0
- package/dist/esm/relayer/client.d.ts +29 -17
- package/dist/esm/relayer/client.js +72 -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 +9 -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,3395 @@
|
|
|
1
|
+
// AUTO-GENERATED from privacy_pool_legacy2.json — do not edit by hand.
|
|
2
|
+
// Regenerate with: npm run gen:idl
|
|
3
|
+
//
|
|
4
|
+
// Shipped as a .ts module rather than a JSON import because Node ESM requires
|
|
5
|
+
// an import attribute (`with { type: "json" }`) that TypeScript cannot emit
|
|
6
|
+
// compatibly for both the CJS and ESM builds.
|
|
7
|
+
const IDL_JSON = {
|
|
8
|
+
"address": "GYy4kM6GHhpgLCUscuABbzkD2ZbJ2fneYryaZ6Ch7fFU",
|
|
9
|
+
"metadata": {
|
|
10
|
+
"name": "privacy_pool",
|
|
11
|
+
"version": "0.1.0",
|
|
12
|
+
"spec": "0.1.0",
|
|
13
|
+
"description": "Veilo - Privacy Layer on Solana"
|
|
14
|
+
},
|
|
15
|
+
"instructions": [
|
|
16
|
+
{
|
|
17
|
+
"name": "add_merkle_tree",
|
|
18
|
+
"discriminator": [
|
|
19
|
+
199,
|
|
20
|
+
97,
|
|
21
|
+
38,
|
|
22
|
+
35,
|
|
23
|
+
140,
|
|
24
|
+
113,
|
|
25
|
+
187,
|
|
26
|
+
30
|
|
27
|
+
],
|
|
28
|
+
"accounts": [
|
|
29
|
+
{
|
|
30
|
+
"name": "config",
|
|
31
|
+
"writable": true,
|
|
32
|
+
"pda": {
|
|
33
|
+
"seeds": [
|
|
34
|
+
{
|
|
35
|
+
"kind": "const",
|
|
36
|
+
"value": [
|
|
37
|
+
112,
|
|
38
|
+
114,
|
|
39
|
+
105,
|
|
40
|
+
118,
|
|
41
|
+
97,
|
|
42
|
+
99,
|
|
43
|
+
121,
|
|
44
|
+
95,
|
|
45
|
+
99,
|
|
46
|
+
111,
|
|
47
|
+
110,
|
|
48
|
+
102,
|
|
49
|
+
105,
|
|
50
|
+
103,
|
|
51
|
+
95,
|
|
52
|
+
118,
|
|
53
|
+
51
|
|
54
|
+
]
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
"kind": "arg",
|
|
58
|
+
"path": "mint_address"
|
|
59
|
+
}
|
|
60
|
+
]
|
|
61
|
+
}
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
"name": "note_tree",
|
|
65
|
+
"writable": true,
|
|
66
|
+
"pda": {
|
|
67
|
+
"seeds": [
|
|
68
|
+
{
|
|
69
|
+
"kind": "const",
|
|
70
|
+
"value": [
|
|
71
|
+
112,
|
|
72
|
+
114,
|
|
73
|
+
105,
|
|
74
|
+
118,
|
|
75
|
+
97,
|
|
76
|
+
99,
|
|
77
|
+
121,
|
|
78
|
+
95,
|
|
79
|
+
110,
|
|
80
|
+
111,
|
|
81
|
+
116,
|
|
82
|
+
101,
|
|
83
|
+
95,
|
|
84
|
+
116,
|
|
85
|
+
114,
|
|
86
|
+
101,
|
|
87
|
+
101,
|
|
88
|
+
95,
|
|
89
|
+
118,
|
|
90
|
+
51
|
|
91
|
+
]
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
"kind": "arg",
|
|
95
|
+
"path": "mint_address"
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
"kind": "arg",
|
|
99
|
+
"path": "tree_id"
|
|
100
|
+
}
|
|
101
|
+
]
|
|
102
|
+
}
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
"name": "relayer",
|
|
106
|
+
"docs": [
|
|
107
|
+
"Relayer who can add trees (must be registered in config.relayers)"
|
|
108
|
+
],
|
|
109
|
+
"writable": true,
|
|
110
|
+
"signer": true
|
|
111
|
+
},
|
|
112
|
+
{
|
|
113
|
+
"name": "system_program",
|
|
114
|
+
"address": "11111111111111111111111111111111"
|
|
115
|
+
}
|
|
116
|
+
],
|
|
117
|
+
"args": [
|
|
118
|
+
{
|
|
119
|
+
"name": "_mint_address",
|
|
120
|
+
"type": "pubkey"
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
"name": "tree_id",
|
|
124
|
+
"type": "u16"
|
|
125
|
+
}
|
|
126
|
+
]
|
|
127
|
+
},
|
|
128
|
+
{
|
|
129
|
+
"name": "add_relayer",
|
|
130
|
+
"discriminator": [
|
|
131
|
+
184,
|
|
132
|
+
240,
|
|
133
|
+
94,
|
|
134
|
+
199,
|
|
135
|
+
19,
|
|
136
|
+
71,
|
|
137
|
+
21,
|
|
138
|
+
192
|
|
139
|
+
],
|
|
140
|
+
"accounts": [
|
|
141
|
+
{
|
|
142
|
+
"name": "config",
|
|
143
|
+
"writable": true,
|
|
144
|
+
"pda": {
|
|
145
|
+
"seeds": [
|
|
146
|
+
{
|
|
147
|
+
"kind": "const",
|
|
148
|
+
"value": [
|
|
149
|
+
112,
|
|
150
|
+
114,
|
|
151
|
+
105,
|
|
152
|
+
118,
|
|
153
|
+
97,
|
|
154
|
+
99,
|
|
155
|
+
121,
|
|
156
|
+
95,
|
|
157
|
+
99,
|
|
158
|
+
111,
|
|
159
|
+
110,
|
|
160
|
+
102,
|
|
161
|
+
105,
|
|
162
|
+
103,
|
|
163
|
+
95,
|
|
164
|
+
118,
|
|
165
|
+
51
|
|
166
|
+
]
|
|
167
|
+
},
|
|
168
|
+
{
|
|
169
|
+
"kind": "arg",
|
|
170
|
+
"path": "mint_address"
|
|
171
|
+
}
|
|
172
|
+
]
|
|
173
|
+
}
|
|
174
|
+
},
|
|
175
|
+
{
|
|
176
|
+
"name": "admin",
|
|
177
|
+
"docs": [
|
|
178
|
+
"has_one = admin ensures this matches config.admin.",
|
|
179
|
+
"When using Squads, the vault PDA signs after multisig approval."
|
|
180
|
+
],
|
|
181
|
+
"signer": true,
|
|
182
|
+
"relations": [
|
|
183
|
+
"config"
|
|
184
|
+
]
|
|
185
|
+
}
|
|
186
|
+
],
|
|
187
|
+
"args": [
|
|
188
|
+
{
|
|
189
|
+
"name": "_mint_address",
|
|
190
|
+
"type": "pubkey"
|
|
191
|
+
},
|
|
192
|
+
{
|
|
193
|
+
"name": "new_relayer",
|
|
194
|
+
"type": "pubkey"
|
|
195
|
+
}
|
|
196
|
+
]
|
|
197
|
+
},
|
|
198
|
+
{
|
|
199
|
+
"name": "fund_native_source",
|
|
200
|
+
"docs": [
|
|
201
|
+
"Option B: Create executor PDA + WSOL ATA and transfer swap_amount from vault.",
|
|
202
|
+
"Must be invoked as the FIRST instruction in an atomic transaction whose SECOND",
|
|
203
|
+
"instruction is `transact_swap`. Both instructions are sent together so that",
|
|
204
|
+
"failure in `transact_swap` reverts the vault debit atomically.",
|
|
205
|
+
"",
|
|
206
|
+
"Only for native SOL source pools. SPL-source swaps use `transact_swap` directly."
|
|
207
|
+
],
|
|
208
|
+
"discriminator": [
|
|
209
|
+
247,
|
|
210
|
+
142,
|
|
211
|
+
43,
|
|
212
|
+
167,
|
|
213
|
+
56,
|
|
214
|
+
52,
|
|
215
|
+
137,
|
|
216
|
+
118
|
|
217
|
+
],
|
|
218
|
+
"accounts": [
|
|
219
|
+
{
|
|
220
|
+
"name": "executor",
|
|
221
|
+
"docs": [
|
|
222
|
+
"Executor PDA — created here, validated in the following transact_swap instruction."
|
|
223
|
+
],
|
|
224
|
+
"writable": true,
|
|
225
|
+
"pda": {
|
|
226
|
+
"seeds": [
|
|
227
|
+
{
|
|
228
|
+
"kind": "const",
|
|
229
|
+
"value": [
|
|
230
|
+
115,
|
|
231
|
+
119,
|
|
232
|
+
97,
|
|
233
|
+
112,
|
|
234
|
+
95,
|
|
235
|
+
101,
|
|
236
|
+
120,
|
|
237
|
+
101,
|
|
238
|
+
99,
|
|
239
|
+
117,
|
|
240
|
+
116,
|
|
241
|
+
111,
|
|
242
|
+
114
|
|
243
|
+
]
|
|
244
|
+
},
|
|
245
|
+
{
|
|
246
|
+
"kind": "arg",
|
|
247
|
+
"path": "source_mint"
|
|
248
|
+
},
|
|
249
|
+
{
|
|
250
|
+
"kind": "arg",
|
|
251
|
+
"path": "dest_mint"
|
|
252
|
+
},
|
|
253
|
+
{
|
|
254
|
+
"kind": "arg",
|
|
255
|
+
"path": "input_nullifier_0"
|
|
256
|
+
},
|
|
257
|
+
{
|
|
258
|
+
"kind": "account",
|
|
259
|
+
"path": "relayer"
|
|
260
|
+
}
|
|
261
|
+
]
|
|
262
|
+
}
|
|
263
|
+
},
|
|
264
|
+
{
|
|
265
|
+
"name": "executor_source_token",
|
|
266
|
+
"docs": [
|
|
267
|
+
"Executor's WSOL ATA — created here, funded with swap_amount from source vault.",
|
|
268
|
+
"This is executor_source_token for the following transact_swap instruction."
|
|
269
|
+
],
|
|
270
|
+
"writable": true,
|
|
271
|
+
"pda": {
|
|
272
|
+
"seeds": [
|
|
273
|
+
{
|
|
274
|
+
"kind": "account",
|
|
275
|
+
"path": "executor"
|
|
276
|
+
},
|
|
277
|
+
{
|
|
278
|
+
"kind": "const",
|
|
279
|
+
"value": [
|
|
280
|
+
6,
|
|
281
|
+
221,
|
|
282
|
+
246,
|
|
283
|
+
225,
|
|
284
|
+
215,
|
|
285
|
+
101,
|
|
286
|
+
161,
|
|
287
|
+
147,
|
|
288
|
+
217,
|
|
289
|
+
203,
|
|
290
|
+
225,
|
|
291
|
+
70,
|
|
292
|
+
206,
|
|
293
|
+
235,
|
|
294
|
+
121,
|
|
295
|
+
172,
|
|
296
|
+
28,
|
|
297
|
+
180,
|
|
298
|
+
133,
|
|
299
|
+
237,
|
|
300
|
+
95,
|
|
301
|
+
91,
|
|
302
|
+
55,
|
|
303
|
+
145,
|
|
304
|
+
58,
|
|
305
|
+
140,
|
|
306
|
+
245,
|
|
307
|
+
133,
|
|
308
|
+
126,
|
|
309
|
+
255,
|
|
310
|
+
0,
|
|
311
|
+
169
|
|
312
|
+
]
|
|
313
|
+
},
|
|
314
|
+
{
|
|
315
|
+
"kind": "account",
|
|
316
|
+
"path": "source_mint_account"
|
|
317
|
+
}
|
|
318
|
+
],
|
|
319
|
+
"program": {
|
|
320
|
+
"kind": "const",
|
|
321
|
+
"value": [
|
|
322
|
+
140,
|
|
323
|
+
151,
|
|
324
|
+
37,
|
|
325
|
+
143,
|
|
326
|
+
78,
|
|
327
|
+
36,
|
|
328
|
+
137,
|
|
329
|
+
241,
|
|
330
|
+
187,
|
|
331
|
+
61,
|
|
332
|
+
16,
|
|
333
|
+
41,
|
|
334
|
+
20,
|
|
335
|
+
142,
|
|
336
|
+
13,
|
|
337
|
+
131,
|
|
338
|
+
11,
|
|
339
|
+
90,
|
|
340
|
+
19,
|
|
341
|
+
153,
|
|
342
|
+
218,
|
|
343
|
+
255,
|
|
344
|
+
16,
|
|
345
|
+
132,
|
|
346
|
+
4,
|
|
347
|
+
142,
|
|
348
|
+
123,
|
|
349
|
+
216,
|
|
350
|
+
219,
|
|
351
|
+
233,
|
|
352
|
+
248,
|
|
353
|
+
89
|
|
354
|
+
]
|
|
355
|
+
}
|
|
356
|
+
}
|
|
357
|
+
},
|
|
358
|
+
{
|
|
359
|
+
"name": "source_vault",
|
|
360
|
+
"docs": [
|
|
361
|
+
"Source vault PDA (native SOL pool — program-owned, stores raw lamports)."
|
|
362
|
+
],
|
|
363
|
+
"writable": true,
|
|
364
|
+
"pda": {
|
|
365
|
+
"seeds": [
|
|
366
|
+
{
|
|
367
|
+
"kind": "const",
|
|
368
|
+
"value": [
|
|
369
|
+
112,
|
|
370
|
+
114,
|
|
371
|
+
105,
|
|
372
|
+
118,
|
|
373
|
+
97,
|
|
374
|
+
99,
|
|
375
|
+
121,
|
|
376
|
+
95,
|
|
377
|
+
118,
|
|
378
|
+
97,
|
|
379
|
+
117,
|
|
380
|
+
108,
|
|
381
|
+
116,
|
|
382
|
+
95,
|
|
383
|
+
118,
|
|
384
|
+
51
|
|
385
|
+
]
|
|
386
|
+
},
|
|
387
|
+
{
|
|
388
|
+
"kind": "arg",
|
|
389
|
+
"path": "source_mint"
|
|
390
|
+
}
|
|
391
|
+
]
|
|
392
|
+
}
|
|
393
|
+
},
|
|
394
|
+
{
|
|
395
|
+
"name": "source_config",
|
|
396
|
+
"docs": [
|
|
397
|
+
"Source pool config — checked for vault_bump and relayer authorisation."
|
|
398
|
+
],
|
|
399
|
+
"pda": {
|
|
400
|
+
"seeds": [
|
|
401
|
+
{
|
|
402
|
+
"kind": "const",
|
|
403
|
+
"value": [
|
|
404
|
+
112,
|
|
405
|
+
114,
|
|
406
|
+
105,
|
|
407
|
+
118,
|
|
408
|
+
97,
|
|
409
|
+
99,
|
|
410
|
+
121,
|
|
411
|
+
95,
|
|
412
|
+
99,
|
|
413
|
+
111,
|
|
414
|
+
110,
|
|
415
|
+
102,
|
|
416
|
+
105,
|
|
417
|
+
103,
|
|
418
|
+
95,
|
|
419
|
+
118,
|
|
420
|
+
51
|
|
421
|
+
]
|
|
422
|
+
},
|
|
423
|
+
{
|
|
424
|
+
"kind": "arg",
|
|
425
|
+
"path": "source_mint"
|
|
426
|
+
}
|
|
427
|
+
]
|
|
428
|
+
}
|
|
429
|
+
},
|
|
430
|
+
{
|
|
431
|
+
"name": "source_mint_account",
|
|
432
|
+
"docs": [
|
|
433
|
+
"WSOL mint (So111…1112) — required for executor_source_token ATA constraint.",
|
|
434
|
+
"Must equal effective_mint(source_mint), i.e., source_mint must be native SOL."
|
|
435
|
+
]
|
|
436
|
+
},
|
|
437
|
+
{
|
|
438
|
+
"name": "relayer",
|
|
439
|
+
"docs": [
|
|
440
|
+
"Relayer — pays rent for created accounts, must be whitelisted in source pool."
|
|
441
|
+
],
|
|
442
|
+
"writable": true,
|
|
443
|
+
"signer": true
|
|
444
|
+
},
|
|
445
|
+
{
|
|
446
|
+
"name": "instructions_sysvar",
|
|
447
|
+
"docs": [
|
|
448
|
+
"with a `transact_swap` call in the same transaction, preventing standalone",
|
|
449
|
+
"vault-drain calls with arbitrary nullifiers."
|
|
450
|
+
],
|
|
451
|
+
"address": "Sysvar1nstructions1111111111111111111111111"
|
|
452
|
+
},
|
|
453
|
+
{
|
|
454
|
+
"name": "token_program",
|
|
455
|
+
"address": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
|
|
456
|
+
},
|
|
457
|
+
{
|
|
458
|
+
"name": "system_program",
|
|
459
|
+
"address": "11111111111111111111111111111111"
|
|
460
|
+
},
|
|
461
|
+
{
|
|
462
|
+
"name": "associated_token_program",
|
|
463
|
+
"address": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"
|
|
464
|
+
}
|
|
465
|
+
],
|
|
466
|
+
"args": [
|
|
467
|
+
{
|
|
468
|
+
"name": "source_mint",
|
|
469
|
+
"type": "pubkey"
|
|
470
|
+
},
|
|
471
|
+
{
|
|
472
|
+
"name": "dest_mint",
|
|
473
|
+
"type": "pubkey"
|
|
474
|
+
},
|
|
475
|
+
{
|
|
476
|
+
"name": "input_nullifier_0",
|
|
477
|
+
"type": {
|
|
478
|
+
"array": [
|
|
479
|
+
"u8",
|
|
480
|
+
32
|
|
481
|
+
]
|
|
482
|
+
}
|
|
483
|
+
},
|
|
484
|
+
{
|
|
485
|
+
"name": "swap_amount",
|
|
486
|
+
"type": "u64"
|
|
487
|
+
}
|
|
488
|
+
]
|
|
489
|
+
},
|
|
490
|
+
{
|
|
491
|
+
"name": "initialize",
|
|
492
|
+
"discriminator": [
|
|
493
|
+
175,
|
|
494
|
+
175,
|
|
495
|
+
109,
|
|
496
|
+
31,
|
|
497
|
+
13,
|
|
498
|
+
152,
|
|
499
|
+
155,
|
|
500
|
+
237
|
|
501
|
+
],
|
|
502
|
+
"accounts": [
|
|
503
|
+
{
|
|
504
|
+
"name": "config",
|
|
505
|
+
"writable": true,
|
|
506
|
+
"pda": {
|
|
507
|
+
"seeds": [
|
|
508
|
+
{
|
|
509
|
+
"kind": "const",
|
|
510
|
+
"value": [
|
|
511
|
+
112,
|
|
512
|
+
114,
|
|
513
|
+
105,
|
|
514
|
+
118,
|
|
515
|
+
97,
|
|
516
|
+
99,
|
|
517
|
+
121,
|
|
518
|
+
95,
|
|
519
|
+
99,
|
|
520
|
+
111,
|
|
521
|
+
110,
|
|
522
|
+
102,
|
|
523
|
+
105,
|
|
524
|
+
103,
|
|
525
|
+
95,
|
|
526
|
+
118,
|
|
527
|
+
51
|
|
528
|
+
]
|
|
529
|
+
},
|
|
530
|
+
{
|
|
531
|
+
"kind": "arg",
|
|
532
|
+
"path": "mint_address"
|
|
533
|
+
}
|
|
534
|
+
]
|
|
535
|
+
}
|
|
536
|
+
},
|
|
537
|
+
{
|
|
538
|
+
"name": "vault",
|
|
539
|
+
"writable": true,
|
|
540
|
+
"pda": {
|
|
541
|
+
"seeds": [
|
|
542
|
+
{
|
|
543
|
+
"kind": "const",
|
|
544
|
+
"value": [
|
|
545
|
+
112,
|
|
546
|
+
114,
|
|
547
|
+
105,
|
|
548
|
+
118,
|
|
549
|
+
97,
|
|
550
|
+
99,
|
|
551
|
+
121,
|
|
552
|
+
95,
|
|
553
|
+
118,
|
|
554
|
+
97,
|
|
555
|
+
117,
|
|
556
|
+
108,
|
|
557
|
+
116,
|
|
558
|
+
95,
|
|
559
|
+
118,
|
|
560
|
+
51
|
|
561
|
+
]
|
|
562
|
+
},
|
|
563
|
+
{
|
|
564
|
+
"kind": "arg",
|
|
565
|
+
"path": "mint_address"
|
|
566
|
+
}
|
|
567
|
+
]
|
|
568
|
+
}
|
|
569
|
+
},
|
|
570
|
+
{
|
|
571
|
+
"name": "note_tree",
|
|
572
|
+
"docs": [
|
|
573
|
+
"Initial tree (tree_id = 0)"
|
|
574
|
+
],
|
|
575
|
+
"writable": true,
|
|
576
|
+
"pda": {
|
|
577
|
+
"seeds": [
|
|
578
|
+
{
|
|
579
|
+
"kind": "const",
|
|
580
|
+
"value": [
|
|
581
|
+
112,
|
|
582
|
+
114,
|
|
583
|
+
105,
|
|
584
|
+
118,
|
|
585
|
+
97,
|
|
586
|
+
99,
|
|
587
|
+
121,
|
|
588
|
+
95,
|
|
589
|
+
110,
|
|
590
|
+
111,
|
|
591
|
+
116,
|
|
592
|
+
101,
|
|
593
|
+
95,
|
|
594
|
+
116,
|
|
595
|
+
114,
|
|
596
|
+
101,
|
|
597
|
+
101,
|
|
598
|
+
95,
|
|
599
|
+
118,
|
|
600
|
+
51
|
|
601
|
+
]
|
|
602
|
+
},
|
|
603
|
+
{
|
|
604
|
+
"kind": "arg",
|
|
605
|
+
"path": "mint_address"
|
|
606
|
+
},
|
|
607
|
+
{
|
|
608
|
+
"kind": "const",
|
|
609
|
+
"value": [
|
|
610
|
+
0,
|
|
611
|
+
0
|
|
612
|
+
]
|
|
613
|
+
}
|
|
614
|
+
]
|
|
615
|
+
}
|
|
616
|
+
},
|
|
617
|
+
{
|
|
618
|
+
"name": "nullifiers",
|
|
619
|
+
"writable": true,
|
|
620
|
+
"pda": {
|
|
621
|
+
"seeds": [
|
|
622
|
+
{
|
|
623
|
+
"kind": "const",
|
|
624
|
+
"value": [
|
|
625
|
+
112,
|
|
626
|
+
114,
|
|
627
|
+
105,
|
|
628
|
+
118,
|
|
629
|
+
97,
|
|
630
|
+
99,
|
|
631
|
+
121,
|
|
632
|
+
95,
|
|
633
|
+
110,
|
|
634
|
+
117,
|
|
635
|
+
108,
|
|
636
|
+
108,
|
|
637
|
+
105,
|
|
638
|
+
102,
|
|
639
|
+
105,
|
|
640
|
+
101,
|
|
641
|
+
114,
|
|
642
|
+
115,
|
|
643
|
+
95,
|
|
644
|
+
118,
|
|
645
|
+
51
|
|
646
|
+
]
|
|
647
|
+
},
|
|
648
|
+
{
|
|
649
|
+
"kind": "arg",
|
|
650
|
+
"path": "mint_address"
|
|
651
|
+
}
|
|
652
|
+
]
|
|
653
|
+
}
|
|
654
|
+
},
|
|
655
|
+
{
|
|
656
|
+
"name": "admin",
|
|
657
|
+
"docs": [
|
|
658
|
+
"When using Squads multisig, this should be the vault PDA.",
|
|
659
|
+
"Squads will sign this account after multisig approval."
|
|
660
|
+
],
|
|
661
|
+
"signer": true
|
|
662
|
+
},
|
|
663
|
+
{
|
|
664
|
+
"name": "payer",
|
|
665
|
+
"docs": [
|
|
666
|
+
"Transaction fee payer (can be anyone, separate from admin authority)"
|
|
667
|
+
],
|
|
668
|
+
"writable": true,
|
|
669
|
+
"signer": true
|
|
670
|
+
},
|
|
671
|
+
{
|
|
672
|
+
"name": "system_program",
|
|
673
|
+
"address": "11111111111111111111111111111111"
|
|
674
|
+
}
|
|
675
|
+
],
|
|
676
|
+
"args": [
|
|
677
|
+
{
|
|
678
|
+
"name": "fee_bps",
|
|
679
|
+
"type": "u16"
|
|
680
|
+
},
|
|
681
|
+
{
|
|
682
|
+
"name": "mint_address",
|
|
683
|
+
"type": "pubkey"
|
|
684
|
+
},
|
|
685
|
+
{
|
|
686
|
+
"name": "min_deposit_amount",
|
|
687
|
+
"type": {
|
|
688
|
+
"option": "u64"
|
|
689
|
+
}
|
|
690
|
+
},
|
|
691
|
+
{
|
|
692
|
+
"name": "max_deposit_amount",
|
|
693
|
+
"type": {
|
|
694
|
+
"option": "u64"
|
|
695
|
+
}
|
|
696
|
+
},
|
|
697
|
+
{
|
|
698
|
+
"name": "min_withdraw_amount",
|
|
699
|
+
"type": {
|
|
700
|
+
"option": "u64"
|
|
701
|
+
}
|
|
702
|
+
},
|
|
703
|
+
{
|
|
704
|
+
"name": "max_withdraw_amount",
|
|
705
|
+
"type": {
|
|
706
|
+
"option": "u64"
|
|
707
|
+
}
|
|
708
|
+
}
|
|
709
|
+
]
|
|
710
|
+
},
|
|
711
|
+
{
|
|
712
|
+
"name": "initialize_global_config",
|
|
713
|
+
"discriminator": [
|
|
714
|
+
113,
|
|
715
|
+
216,
|
|
716
|
+
122,
|
|
717
|
+
131,
|
|
718
|
+
225,
|
|
719
|
+
209,
|
|
720
|
+
22,
|
|
721
|
+
55
|
|
722
|
+
],
|
|
723
|
+
"accounts": [
|
|
724
|
+
{
|
|
725
|
+
"name": "global_config",
|
|
726
|
+
"writable": true,
|
|
727
|
+
"pda": {
|
|
728
|
+
"seeds": [
|
|
729
|
+
{
|
|
730
|
+
"kind": "const",
|
|
731
|
+
"value": [
|
|
732
|
+
103,
|
|
733
|
+
108,
|
|
734
|
+
111,
|
|
735
|
+
98,
|
|
736
|
+
97,
|
|
737
|
+
108,
|
|
738
|
+
95,
|
|
739
|
+
99,
|
|
740
|
+
111,
|
|
741
|
+
110,
|
|
742
|
+
102,
|
|
743
|
+
105,
|
|
744
|
+
103,
|
|
745
|
+
95,
|
|
746
|
+
118,
|
|
747
|
+
49
|
|
748
|
+
]
|
|
749
|
+
}
|
|
750
|
+
]
|
|
751
|
+
}
|
|
752
|
+
},
|
|
753
|
+
{
|
|
754
|
+
"name": "admin",
|
|
755
|
+
"docs": [
|
|
756
|
+
"When using Squads multisig, this should be the vault PDA."
|
|
757
|
+
],
|
|
758
|
+
"signer": true
|
|
759
|
+
},
|
|
760
|
+
{
|
|
761
|
+
"name": "payer",
|
|
762
|
+
"docs": [
|
|
763
|
+
"Transaction fee payer (can be anyone, separate from admin authority)"
|
|
764
|
+
],
|
|
765
|
+
"writable": true,
|
|
766
|
+
"signer": true
|
|
767
|
+
},
|
|
768
|
+
{
|
|
769
|
+
"name": "system_program",
|
|
770
|
+
"address": "11111111111111111111111111111111"
|
|
771
|
+
}
|
|
772
|
+
],
|
|
773
|
+
"args": []
|
|
774
|
+
},
|
|
775
|
+
{
|
|
776
|
+
"name": "transact",
|
|
777
|
+
"docs": [
|
|
778
|
+
"Unified UTXO transaction instruction",
|
|
779
|
+
"Circuit equation: sumIns + publicAmount = sumOuts",
|
|
780
|
+
"Handles deposits (publicAmount > 0), withdrawals (publicAmount < 0), and transfers (publicAmount = 0)",
|
|
781
|
+
"",
|
|
782
|
+
"Cross-tree transactions:",
|
|
783
|
+
"- input_tree_id: Tree containing input notes (for root validation)",
|
|
784
|
+
"- output_tree_id: Tree for new output commitments",
|
|
785
|
+
"- Can be the same tree or different trees",
|
|
786
|
+
"- Allows withdrawals even when input tree is full (outputs go to new tree)"
|
|
787
|
+
],
|
|
788
|
+
"discriminator": [
|
|
789
|
+
217,
|
|
790
|
+
149,
|
|
791
|
+
130,
|
|
792
|
+
143,
|
|
793
|
+
221,
|
|
794
|
+
52,
|
|
795
|
+
252,
|
|
796
|
+
119
|
|
797
|
+
],
|
|
798
|
+
"accounts": [
|
|
799
|
+
{
|
|
800
|
+
"name": "config",
|
|
801
|
+
"writable": true,
|
|
802
|
+
"pda": {
|
|
803
|
+
"seeds": [
|
|
804
|
+
{
|
|
805
|
+
"kind": "const",
|
|
806
|
+
"value": [
|
|
807
|
+
112,
|
|
808
|
+
114,
|
|
809
|
+
105,
|
|
810
|
+
118,
|
|
811
|
+
97,
|
|
812
|
+
99,
|
|
813
|
+
121,
|
|
814
|
+
95,
|
|
815
|
+
99,
|
|
816
|
+
111,
|
|
817
|
+
110,
|
|
818
|
+
102,
|
|
819
|
+
105,
|
|
820
|
+
103,
|
|
821
|
+
95,
|
|
822
|
+
118,
|
|
823
|
+
51
|
|
824
|
+
]
|
|
825
|
+
},
|
|
826
|
+
{
|
|
827
|
+
"kind": "arg",
|
|
828
|
+
"path": "mint_address"
|
|
829
|
+
}
|
|
830
|
+
]
|
|
831
|
+
}
|
|
832
|
+
},
|
|
833
|
+
{
|
|
834
|
+
"name": "global_config",
|
|
835
|
+
"pda": {
|
|
836
|
+
"seeds": [
|
|
837
|
+
{
|
|
838
|
+
"kind": "const",
|
|
839
|
+
"value": [
|
|
840
|
+
103,
|
|
841
|
+
108,
|
|
842
|
+
111,
|
|
843
|
+
98,
|
|
844
|
+
97,
|
|
845
|
+
108,
|
|
846
|
+
95,
|
|
847
|
+
99,
|
|
848
|
+
111,
|
|
849
|
+
110,
|
|
850
|
+
102,
|
|
851
|
+
105,
|
|
852
|
+
103,
|
|
853
|
+
95,
|
|
854
|
+
118,
|
|
855
|
+
49
|
|
856
|
+
]
|
|
857
|
+
}
|
|
858
|
+
]
|
|
859
|
+
}
|
|
860
|
+
},
|
|
861
|
+
{
|
|
862
|
+
"name": "vault",
|
|
863
|
+
"writable": true,
|
|
864
|
+
"pda": {
|
|
865
|
+
"seeds": [
|
|
866
|
+
{
|
|
867
|
+
"kind": "const",
|
|
868
|
+
"value": [
|
|
869
|
+
112,
|
|
870
|
+
114,
|
|
871
|
+
105,
|
|
872
|
+
118,
|
|
873
|
+
97,
|
|
874
|
+
99,
|
|
875
|
+
121,
|
|
876
|
+
95,
|
|
877
|
+
118,
|
|
878
|
+
97,
|
|
879
|
+
117,
|
|
880
|
+
108,
|
|
881
|
+
116,
|
|
882
|
+
95,
|
|
883
|
+
118,
|
|
884
|
+
51
|
|
885
|
+
]
|
|
886
|
+
},
|
|
887
|
+
{
|
|
888
|
+
"kind": "arg",
|
|
889
|
+
"path": "mint_address"
|
|
890
|
+
}
|
|
891
|
+
]
|
|
892
|
+
}
|
|
893
|
+
},
|
|
894
|
+
{
|
|
895
|
+
"name": "input_tree",
|
|
896
|
+
"docs": [
|
|
897
|
+
"Input tree - where input notes came from (for root validation)"
|
|
898
|
+
],
|
|
899
|
+
"writable": true,
|
|
900
|
+
"pda": {
|
|
901
|
+
"seeds": [
|
|
902
|
+
{
|
|
903
|
+
"kind": "const",
|
|
904
|
+
"value": [
|
|
905
|
+
112,
|
|
906
|
+
114,
|
|
907
|
+
105,
|
|
908
|
+
118,
|
|
909
|
+
97,
|
|
910
|
+
99,
|
|
911
|
+
121,
|
|
912
|
+
95,
|
|
913
|
+
110,
|
|
914
|
+
111,
|
|
915
|
+
116,
|
|
916
|
+
101,
|
|
917
|
+
95,
|
|
918
|
+
116,
|
|
919
|
+
114,
|
|
920
|
+
101,
|
|
921
|
+
101,
|
|
922
|
+
95,
|
|
923
|
+
118,
|
|
924
|
+
51
|
|
925
|
+
]
|
|
926
|
+
},
|
|
927
|
+
{
|
|
928
|
+
"kind": "arg",
|
|
929
|
+
"path": "mint_address"
|
|
930
|
+
},
|
|
931
|
+
{
|
|
932
|
+
"kind": "arg",
|
|
933
|
+
"path": "input_tree_id"
|
|
934
|
+
}
|
|
935
|
+
]
|
|
936
|
+
}
|
|
937
|
+
},
|
|
938
|
+
{
|
|
939
|
+
"name": "output_tree",
|
|
940
|
+
"docs": [
|
|
941
|
+
"Output tree - where new output commitments will be inserted"
|
|
942
|
+
],
|
|
943
|
+
"writable": true,
|
|
944
|
+
"pda": {
|
|
945
|
+
"seeds": [
|
|
946
|
+
{
|
|
947
|
+
"kind": "const",
|
|
948
|
+
"value": [
|
|
949
|
+
112,
|
|
950
|
+
114,
|
|
951
|
+
105,
|
|
952
|
+
118,
|
|
953
|
+
97,
|
|
954
|
+
99,
|
|
955
|
+
121,
|
|
956
|
+
95,
|
|
957
|
+
110,
|
|
958
|
+
111,
|
|
959
|
+
116,
|
|
960
|
+
101,
|
|
961
|
+
95,
|
|
962
|
+
116,
|
|
963
|
+
114,
|
|
964
|
+
101,
|
|
965
|
+
101,
|
|
966
|
+
95,
|
|
967
|
+
118,
|
|
968
|
+
51
|
|
969
|
+
]
|
|
970
|
+
},
|
|
971
|
+
{
|
|
972
|
+
"kind": "arg",
|
|
973
|
+
"path": "mint_address"
|
|
974
|
+
},
|
|
975
|
+
{
|
|
976
|
+
"kind": "arg",
|
|
977
|
+
"path": "output_tree_id"
|
|
978
|
+
}
|
|
979
|
+
]
|
|
980
|
+
}
|
|
981
|
+
},
|
|
982
|
+
{
|
|
983
|
+
"name": "nullifiers",
|
|
984
|
+
"writable": true,
|
|
985
|
+
"pda": {
|
|
986
|
+
"seeds": [
|
|
987
|
+
{
|
|
988
|
+
"kind": "const",
|
|
989
|
+
"value": [
|
|
990
|
+
112,
|
|
991
|
+
114,
|
|
992
|
+
105,
|
|
993
|
+
118,
|
|
994
|
+
97,
|
|
995
|
+
99,
|
|
996
|
+
121,
|
|
997
|
+
95,
|
|
998
|
+
110,
|
|
999
|
+
117,
|
|
1000
|
+
108,
|
|
1001
|
+
108,
|
|
1002
|
+
105,
|
|
1003
|
+
102,
|
|
1004
|
+
105,
|
|
1005
|
+
101,
|
|
1006
|
+
114,
|
|
1007
|
+
115,
|
|
1008
|
+
95,
|
|
1009
|
+
118,
|
|
1010
|
+
51
|
|
1011
|
+
]
|
|
1012
|
+
},
|
|
1013
|
+
{
|
|
1014
|
+
"kind": "arg",
|
|
1015
|
+
"path": "mint_address"
|
|
1016
|
+
}
|
|
1017
|
+
]
|
|
1018
|
+
}
|
|
1019
|
+
},
|
|
1020
|
+
{
|
|
1021
|
+
"name": "nullifier_marker_0",
|
|
1022
|
+
"docs": [
|
|
1023
|
+
"First nullifier marker (must not exist for withdrawals - ensures nullifier is fresh)",
|
|
1024
|
+
"For deposits (public_amount > 0), this should be the zero nullifier marker (reusable)",
|
|
1025
|
+
"NOTE: Nullifier markers are global (no tree_id) to prevent cross-tree double-spend"
|
|
1026
|
+
],
|
|
1027
|
+
"writable": true,
|
|
1028
|
+
"pda": {
|
|
1029
|
+
"seeds": [
|
|
1030
|
+
{
|
|
1031
|
+
"kind": "const",
|
|
1032
|
+
"value": [
|
|
1033
|
+
110,
|
|
1034
|
+
117,
|
|
1035
|
+
108,
|
|
1036
|
+
108,
|
|
1037
|
+
105,
|
|
1038
|
+
102,
|
|
1039
|
+
105,
|
|
1040
|
+
101,
|
|
1041
|
+
114,
|
|
1042
|
+
95,
|
|
1043
|
+
118,
|
|
1044
|
+
51
|
|
1045
|
+
]
|
|
1046
|
+
},
|
|
1047
|
+
{
|
|
1048
|
+
"kind": "arg",
|
|
1049
|
+
"path": "mint_address"
|
|
1050
|
+
},
|
|
1051
|
+
{
|
|
1052
|
+
"kind": "arg",
|
|
1053
|
+
"path": "input_nullifier_0"
|
|
1054
|
+
}
|
|
1055
|
+
]
|
|
1056
|
+
}
|
|
1057
|
+
},
|
|
1058
|
+
{
|
|
1059
|
+
"name": "nullifier_marker_1",
|
|
1060
|
+
"docs": [
|
|
1061
|
+
"Second nullifier marker (must not exist for withdrawals - ensures nullifier is fresh)",
|
|
1062
|
+
"For deposits (public_amount > 0), this should be the zero nullifier marker (reusable)",
|
|
1063
|
+
"NOTE: Nullifier markers are global (no tree_id) to prevent cross-tree double-spend"
|
|
1064
|
+
],
|
|
1065
|
+
"writable": true,
|
|
1066
|
+
"pda": {
|
|
1067
|
+
"seeds": [
|
|
1068
|
+
{
|
|
1069
|
+
"kind": "const",
|
|
1070
|
+
"value": [
|
|
1071
|
+
110,
|
|
1072
|
+
117,
|
|
1073
|
+
108,
|
|
1074
|
+
108,
|
|
1075
|
+
105,
|
|
1076
|
+
102,
|
|
1077
|
+
105,
|
|
1078
|
+
101,
|
|
1079
|
+
114,
|
|
1080
|
+
95,
|
|
1081
|
+
118,
|
|
1082
|
+
51
|
|
1083
|
+
]
|
|
1084
|
+
},
|
|
1085
|
+
{
|
|
1086
|
+
"kind": "arg",
|
|
1087
|
+
"path": "mint_address"
|
|
1088
|
+
},
|
|
1089
|
+
{
|
|
1090
|
+
"kind": "arg",
|
|
1091
|
+
"path": "input_nullifier_1"
|
|
1092
|
+
}
|
|
1093
|
+
]
|
|
1094
|
+
}
|
|
1095
|
+
},
|
|
1096
|
+
{
|
|
1097
|
+
"name": "relayer",
|
|
1098
|
+
"docs": [
|
|
1099
|
+
"Relayer who submits transaction (pays rent, receives fee)"
|
|
1100
|
+
],
|
|
1101
|
+
"writable": true,
|
|
1102
|
+
"signer": true
|
|
1103
|
+
},
|
|
1104
|
+
{
|
|
1105
|
+
"name": "recipient",
|
|
1106
|
+
"docs": [
|
|
1107
|
+
"Recipient (receives withdrawal amount if public_amount > 0)"
|
|
1108
|
+
],
|
|
1109
|
+
"writable": true
|
|
1110
|
+
},
|
|
1111
|
+
{
|
|
1112
|
+
"name": "vault_token_account",
|
|
1113
|
+
"docs": [
|
|
1114
|
+
"Vault's token account (ATA for mint_address)"
|
|
1115
|
+
],
|
|
1116
|
+
"writable": true
|
|
1117
|
+
},
|
|
1118
|
+
{
|
|
1119
|
+
"name": "user_token_account",
|
|
1120
|
+
"docs": [
|
|
1121
|
+
"User's token account (for deposits)"
|
|
1122
|
+
],
|
|
1123
|
+
"writable": true
|
|
1124
|
+
},
|
|
1125
|
+
{
|
|
1126
|
+
"name": "recipient_token_account",
|
|
1127
|
+
"docs": [
|
|
1128
|
+
"Recipient's token account (for withdrawals)"
|
|
1129
|
+
],
|
|
1130
|
+
"writable": true
|
|
1131
|
+
},
|
|
1132
|
+
{
|
|
1133
|
+
"name": "relayer_token_account",
|
|
1134
|
+
"docs": [
|
|
1135
|
+
"Relayer's token account (for fees)"
|
|
1136
|
+
],
|
|
1137
|
+
"writable": true
|
|
1138
|
+
},
|
|
1139
|
+
{
|
|
1140
|
+
"name": "token_program",
|
|
1141
|
+
"docs": [
|
|
1142
|
+
"SPL Token program"
|
|
1143
|
+
]
|
|
1144
|
+
},
|
|
1145
|
+
{
|
|
1146
|
+
"name": "system_program",
|
|
1147
|
+
"address": "11111111111111111111111111111111"
|
|
1148
|
+
}
|
|
1149
|
+
],
|
|
1150
|
+
"args": [
|
|
1151
|
+
{
|
|
1152
|
+
"name": "root",
|
|
1153
|
+
"type": {
|
|
1154
|
+
"array": [
|
|
1155
|
+
"u8",
|
|
1156
|
+
32
|
|
1157
|
+
]
|
|
1158
|
+
}
|
|
1159
|
+
},
|
|
1160
|
+
{
|
|
1161
|
+
"name": "input_tree_id",
|
|
1162
|
+
"type": "u16"
|
|
1163
|
+
},
|
|
1164
|
+
{
|
|
1165
|
+
"name": "output_tree_id",
|
|
1166
|
+
"type": "u16"
|
|
1167
|
+
},
|
|
1168
|
+
{
|
|
1169
|
+
"name": "public_amount",
|
|
1170
|
+
"type": "i64"
|
|
1171
|
+
},
|
|
1172
|
+
{
|
|
1173
|
+
"name": "ext_data_hash",
|
|
1174
|
+
"type": {
|
|
1175
|
+
"array": [
|
|
1176
|
+
"u8",
|
|
1177
|
+
32
|
|
1178
|
+
]
|
|
1179
|
+
}
|
|
1180
|
+
},
|
|
1181
|
+
{
|
|
1182
|
+
"name": "mint_address",
|
|
1183
|
+
"type": "pubkey"
|
|
1184
|
+
},
|
|
1185
|
+
{
|
|
1186
|
+
"name": "input_nullifier_0",
|
|
1187
|
+
"type": {
|
|
1188
|
+
"array": [
|
|
1189
|
+
"u8",
|
|
1190
|
+
32
|
|
1191
|
+
]
|
|
1192
|
+
}
|
|
1193
|
+
},
|
|
1194
|
+
{
|
|
1195
|
+
"name": "input_nullifier_1",
|
|
1196
|
+
"type": {
|
|
1197
|
+
"array": [
|
|
1198
|
+
"u8",
|
|
1199
|
+
32
|
|
1200
|
+
]
|
|
1201
|
+
}
|
|
1202
|
+
},
|
|
1203
|
+
{
|
|
1204
|
+
"name": "output_commitment_0",
|
|
1205
|
+
"type": {
|
|
1206
|
+
"array": [
|
|
1207
|
+
"u8",
|
|
1208
|
+
32
|
|
1209
|
+
]
|
|
1210
|
+
}
|
|
1211
|
+
},
|
|
1212
|
+
{
|
|
1213
|
+
"name": "output_commitment_1",
|
|
1214
|
+
"type": {
|
|
1215
|
+
"array": [
|
|
1216
|
+
"u8",
|
|
1217
|
+
32
|
|
1218
|
+
]
|
|
1219
|
+
}
|
|
1220
|
+
},
|
|
1221
|
+
{
|
|
1222
|
+
"name": "deadline",
|
|
1223
|
+
"type": "i64"
|
|
1224
|
+
},
|
|
1225
|
+
{
|
|
1226
|
+
"name": "ext_data",
|
|
1227
|
+
"type": {
|
|
1228
|
+
"defined": {
|
|
1229
|
+
"name": "ExtData"
|
|
1230
|
+
}
|
|
1231
|
+
}
|
|
1232
|
+
},
|
|
1233
|
+
{
|
|
1234
|
+
"name": "proof",
|
|
1235
|
+
"type": {
|
|
1236
|
+
"defined": {
|
|
1237
|
+
"name": "TransactionProof"
|
|
1238
|
+
}
|
|
1239
|
+
}
|
|
1240
|
+
},
|
|
1241
|
+
{
|
|
1242
|
+
"name": "note_ciphers",
|
|
1243
|
+
"type": {
|
|
1244
|
+
"option": {
|
|
1245
|
+
"defined": {
|
|
1246
|
+
"name": "NoteCiphers"
|
|
1247
|
+
}
|
|
1248
|
+
}
|
|
1249
|
+
}
|
|
1250
|
+
}
|
|
1251
|
+
]
|
|
1252
|
+
},
|
|
1253
|
+
{
|
|
1254
|
+
"name": "transact_swap",
|
|
1255
|
+
"docs": [
|
|
1256
|
+
"Atomic cross-pool private swap",
|
|
1257
|
+
"Consumes notes from source pool, swaps via Raydium CPMM (no Serum), creates notes in dest pool",
|
|
1258
|
+
"All in one transaction - see swap.rs for implementation details"
|
|
1259
|
+
],
|
|
1260
|
+
"discriminator": [
|
|
1261
|
+
36,
|
|
1262
|
+
133,
|
|
1263
|
+
230,
|
|
1264
|
+
184,
|
|
1265
|
+
198,
|
|
1266
|
+
10,
|
|
1267
|
+
202,
|
|
1268
|
+
249
|
|
1269
|
+
],
|
|
1270
|
+
"accounts": [
|
|
1271
|
+
{
|
|
1272
|
+
"name": "source_config",
|
|
1273
|
+
"writable": true,
|
|
1274
|
+
"pda": {
|
|
1275
|
+
"seeds": [
|
|
1276
|
+
{
|
|
1277
|
+
"kind": "const",
|
|
1278
|
+
"value": [
|
|
1279
|
+
112,
|
|
1280
|
+
114,
|
|
1281
|
+
105,
|
|
1282
|
+
118,
|
|
1283
|
+
97,
|
|
1284
|
+
99,
|
|
1285
|
+
121,
|
|
1286
|
+
95,
|
|
1287
|
+
99,
|
|
1288
|
+
111,
|
|
1289
|
+
110,
|
|
1290
|
+
102,
|
|
1291
|
+
105,
|
|
1292
|
+
103,
|
|
1293
|
+
95,
|
|
1294
|
+
118,
|
|
1295
|
+
51
|
|
1296
|
+
]
|
|
1297
|
+
},
|
|
1298
|
+
{
|
|
1299
|
+
"kind": "arg",
|
|
1300
|
+
"path": "source_mint"
|
|
1301
|
+
}
|
|
1302
|
+
]
|
|
1303
|
+
}
|
|
1304
|
+
},
|
|
1305
|
+
{
|
|
1306
|
+
"name": "global_config",
|
|
1307
|
+
"pda": {
|
|
1308
|
+
"seeds": [
|
|
1309
|
+
{
|
|
1310
|
+
"kind": "const",
|
|
1311
|
+
"value": [
|
|
1312
|
+
103,
|
|
1313
|
+
108,
|
|
1314
|
+
111,
|
|
1315
|
+
98,
|
|
1316
|
+
97,
|
|
1317
|
+
108,
|
|
1318
|
+
95,
|
|
1319
|
+
99,
|
|
1320
|
+
111,
|
|
1321
|
+
110,
|
|
1322
|
+
102,
|
|
1323
|
+
105,
|
|
1324
|
+
103,
|
|
1325
|
+
95,
|
|
1326
|
+
118,
|
|
1327
|
+
49
|
|
1328
|
+
]
|
|
1329
|
+
}
|
|
1330
|
+
]
|
|
1331
|
+
}
|
|
1332
|
+
},
|
|
1333
|
+
{
|
|
1334
|
+
"name": "source_vault",
|
|
1335
|
+
"writable": true,
|
|
1336
|
+
"pda": {
|
|
1337
|
+
"seeds": [
|
|
1338
|
+
{
|
|
1339
|
+
"kind": "const",
|
|
1340
|
+
"value": [
|
|
1341
|
+
112,
|
|
1342
|
+
114,
|
|
1343
|
+
105,
|
|
1344
|
+
118,
|
|
1345
|
+
97,
|
|
1346
|
+
99,
|
|
1347
|
+
121,
|
|
1348
|
+
95,
|
|
1349
|
+
118,
|
|
1350
|
+
97,
|
|
1351
|
+
117,
|
|
1352
|
+
108,
|
|
1353
|
+
116,
|
|
1354
|
+
95,
|
|
1355
|
+
118,
|
|
1356
|
+
51
|
|
1357
|
+
]
|
|
1358
|
+
},
|
|
1359
|
+
{
|
|
1360
|
+
"kind": "arg",
|
|
1361
|
+
"path": "source_mint"
|
|
1362
|
+
}
|
|
1363
|
+
]
|
|
1364
|
+
}
|
|
1365
|
+
},
|
|
1366
|
+
{
|
|
1367
|
+
"name": "source_tree",
|
|
1368
|
+
"docs": [
|
|
1369
|
+
"Source tree - where input notes came from"
|
|
1370
|
+
],
|
|
1371
|
+
"writable": true,
|
|
1372
|
+
"pda": {
|
|
1373
|
+
"seeds": [
|
|
1374
|
+
{
|
|
1375
|
+
"kind": "const",
|
|
1376
|
+
"value": [
|
|
1377
|
+
112,
|
|
1378
|
+
114,
|
|
1379
|
+
105,
|
|
1380
|
+
118,
|
|
1381
|
+
97,
|
|
1382
|
+
99,
|
|
1383
|
+
121,
|
|
1384
|
+
95,
|
|
1385
|
+
110,
|
|
1386
|
+
111,
|
|
1387
|
+
116,
|
|
1388
|
+
101,
|
|
1389
|
+
95,
|
|
1390
|
+
116,
|
|
1391
|
+
114,
|
|
1392
|
+
101,
|
|
1393
|
+
101,
|
|
1394
|
+
95,
|
|
1395
|
+
118,
|
|
1396
|
+
51
|
|
1397
|
+
]
|
|
1398
|
+
},
|
|
1399
|
+
{
|
|
1400
|
+
"kind": "arg",
|
|
1401
|
+
"path": "source_mint"
|
|
1402
|
+
},
|
|
1403
|
+
{
|
|
1404
|
+
"kind": "arg",
|
|
1405
|
+
"path": "source_tree_id"
|
|
1406
|
+
}
|
|
1407
|
+
]
|
|
1408
|
+
}
|
|
1409
|
+
},
|
|
1410
|
+
{
|
|
1411
|
+
"name": "source_nullifiers",
|
|
1412
|
+
"writable": true,
|
|
1413
|
+
"pda": {
|
|
1414
|
+
"seeds": [
|
|
1415
|
+
{
|
|
1416
|
+
"kind": "const",
|
|
1417
|
+
"value": [
|
|
1418
|
+
112,
|
|
1419
|
+
114,
|
|
1420
|
+
105,
|
|
1421
|
+
118,
|
|
1422
|
+
97,
|
|
1423
|
+
99,
|
|
1424
|
+
121,
|
|
1425
|
+
95,
|
|
1426
|
+
110,
|
|
1427
|
+
117,
|
|
1428
|
+
108,
|
|
1429
|
+
108,
|
|
1430
|
+
105,
|
|
1431
|
+
102,
|
|
1432
|
+
105,
|
|
1433
|
+
101,
|
|
1434
|
+
114,
|
|
1435
|
+
115,
|
|
1436
|
+
95,
|
|
1437
|
+
118,
|
|
1438
|
+
51
|
|
1439
|
+
]
|
|
1440
|
+
},
|
|
1441
|
+
{
|
|
1442
|
+
"kind": "arg",
|
|
1443
|
+
"path": "source_mint"
|
|
1444
|
+
}
|
|
1445
|
+
]
|
|
1446
|
+
}
|
|
1447
|
+
},
|
|
1448
|
+
{
|
|
1449
|
+
"name": "source_nullifier_marker_0",
|
|
1450
|
+
"docs": [
|
|
1451
|
+
"First nullifier marker for source pool",
|
|
1452
|
+
"NOTE: Nullifier markers are global (no tree_id) to prevent cross-tree double-spend"
|
|
1453
|
+
],
|
|
1454
|
+
"writable": true,
|
|
1455
|
+
"pda": {
|
|
1456
|
+
"seeds": [
|
|
1457
|
+
{
|
|
1458
|
+
"kind": "const",
|
|
1459
|
+
"value": [
|
|
1460
|
+
110,
|
|
1461
|
+
117,
|
|
1462
|
+
108,
|
|
1463
|
+
108,
|
|
1464
|
+
105,
|
|
1465
|
+
102,
|
|
1466
|
+
105,
|
|
1467
|
+
101,
|
|
1468
|
+
114,
|
|
1469
|
+
95,
|
|
1470
|
+
118,
|
|
1471
|
+
51
|
|
1472
|
+
]
|
|
1473
|
+
},
|
|
1474
|
+
{
|
|
1475
|
+
"kind": "arg",
|
|
1476
|
+
"path": "source_mint"
|
|
1477
|
+
},
|
|
1478
|
+
{
|
|
1479
|
+
"kind": "arg",
|
|
1480
|
+
"path": "input_nullifier_0"
|
|
1481
|
+
}
|
|
1482
|
+
]
|
|
1483
|
+
}
|
|
1484
|
+
},
|
|
1485
|
+
{
|
|
1486
|
+
"name": "source_nullifier_marker_1",
|
|
1487
|
+
"docs": [
|
|
1488
|
+
"Second nullifier marker for source pool",
|
|
1489
|
+
"NOTE: Nullifier markers are global (no tree_id) to prevent cross-tree double-spend"
|
|
1490
|
+
],
|
|
1491
|
+
"writable": true,
|
|
1492
|
+
"pda": {
|
|
1493
|
+
"seeds": [
|
|
1494
|
+
{
|
|
1495
|
+
"kind": "const",
|
|
1496
|
+
"value": [
|
|
1497
|
+
110,
|
|
1498
|
+
117,
|
|
1499
|
+
108,
|
|
1500
|
+
108,
|
|
1501
|
+
105,
|
|
1502
|
+
102,
|
|
1503
|
+
105,
|
|
1504
|
+
101,
|
|
1505
|
+
114,
|
|
1506
|
+
95,
|
|
1507
|
+
118,
|
|
1508
|
+
51
|
|
1509
|
+
]
|
|
1510
|
+
},
|
|
1511
|
+
{
|
|
1512
|
+
"kind": "arg",
|
|
1513
|
+
"path": "source_mint"
|
|
1514
|
+
},
|
|
1515
|
+
{
|
|
1516
|
+
"kind": "arg",
|
|
1517
|
+
"path": "input_nullifier_1"
|
|
1518
|
+
}
|
|
1519
|
+
]
|
|
1520
|
+
}
|
|
1521
|
+
},
|
|
1522
|
+
{
|
|
1523
|
+
"name": "source_vault_token_account",
|
|
1524
|
+
"docs": [
|
|
1525
|
+
"Source vault's token account",
|
|
1526
|
+
"For native SOL pools (mint_address == Pubkey::default), this may be unused — pass any mut account.",
|
|
1527
|
+
"For SPL pools, must be the canonical ATA of the source vault for the source mint."
|
|
1528
|
+
],
|
|
1529
|
+
"writable": true
|
|
1530
|
+
},
|
|
1531
|
+
{
|
|
1532
|
+
"name": "source_mint_account",
|
|
1533
|
+
"docs": [
|
|
1534
|
+
"Source token mint — for native SOL pools, pass the WSOL (NATIVE_MINT) account.",
|
|
1535
|
+
"Must match effective_mint(source_mint) so executor ATAs are created with WSOL."
|
|
1536
|
+
]
|
|
1537
|
+
},
|
|
1538
|
+
{
|
|
1539
|
+
"name": "dest_config",
|
|
1540
|
+
"writable": true,
|
|
1541
|
+
"pda": {
|
|
1542
|
+
"seeds": [
|
|
1543
|
+
{
|
|
1544
|
+
"kind": "const",
|
|
1545
|
+
"value": [
|
|
1546
|
+
112,
|
|
1547
|
+
114,
|
|
1548
|
+
105,
|
|
1549
|
+
118,
|
|
1550
|
+
97,
|
|
1551
|
+
99,
|
|
1552
|
+
121,
|
|
1553
|
+
95,
|
|
1554
|
+
99,
|
|
1555
|
+
111,
|
|
1556
|
+
110,
|
|
1557
|
+
102,
|
|
1558
|
+
105,
|
|
1559
|
+
103,
|
|
1560
|
+
95,
|
|
1561
|
+
118,
|
|
1562
|
+
51
|
|
1563
|
+
]
|
|
1564
|
+
},
|
|
1565
|
+
{
|
|
1566
|
+
"kind": "arg",
|
|
1567
|
+
"path": "dest_mint"
|
|
1568
|
+
}
|
|
1569
|
+
]
|
|
1570
|
+
}
|
|
1571
|
+
},
|
|
1572
|
+
{
|
|
1573
|
+
"name": "dest_vault",
|
|
1574
|
+
"writable": true,
|
|
1575
|
+
"pda": {
|
|
1576
|
+
"seeds": [
|
|
1577
|
+
{
|
|
1578
|
+
"kind": "const",
|
|
1579
|
+
"value": [
|
|
1580
|
+
112,
|
|
1581
|
+
114,
|
|
1582
|
+
105,
|
|
1583
|
+
118,
|
|
1584
|
+
97,
|
|
1585
|
+
99,
|
|
1586
|
+
121,
|
|
1587
|
+
95,
|
|
1588
|
+
118,
|
|
1589
|
+
97,
|
|
1590
|
+
117,
|
|
1591
|
+
108,
|
|
1592
|
+
116,
|
|
1593
|
+
95,
|
|
1594
|
+
118,
|
|
1595
|
+
51
|
|
1596
|
+
]
|
|
1597
|
+
},
|
|
1598
|
+
{
|
|
1599
|
+
"kind": "arg",
|
|
1600
|
+
"path": "dest_mint"
|
|
1601
|
+
}
|
|
1602
|
+
]
|
|
1603
|
+
}
|
|
1604
|
+
},
|
|
1605
|
+
{
|
|
1606
|
+
"name": "dest_tree",
|
|
1607
|
+
"docs": [
|
|
1608
|
+
"Destination tree - where output commitments will be inserted"
|
|
1609
|
+
],
|
|
1610
|
+
"writable": true,
|
|
1611
|
+
"pda": {
|
|
1612
|
+
"seeds": [
|
|
1613
|
+
{
|
|
1614
|
+
"kind": "const",
|
|
1615
|
+
"value": [
|
|
1616
|
+
112,
|
|
1617
|
+
114,
|
|
1618
|
+
105,
|
|
1619
|
+
118,
|
|
1620
|
+
97,
|
|
1621
|
+
99,
|
|
1622
|
+
121,
|
|
1623
|
+
95,
|
|
1624
|
+
110,
|
|
1625
|
+
111,
|
|
1626
|
+
116,
|
|
1627
|
+
101,
|
|
1628
|
+
95,
|
|
1629
|
+
116,
|
|
1630
|
+
114,
|
|
1631
|
+
101,
|
|
1632
|
+
101,
|
|
1633
|
+
95,
|
|
1634
|
+
118,
|
|
1635
|
+
51
|
|
1636
|
+
]
|
|
1637
|
+
},
|
|
1638
|
+
{
|
|
1639
|
+
"kind": "arg",
|
|
1640
|
+
"path": "dest_mint"
|
|
1641
|
+
},
|
|
1642
|
+
{
|
|
1643
|
+
"kind": "arg",
|
|
1644
|
+
"path": "dest_tree_id"
|
|
1645
|
+
}
|
|
1646
|
+
]
|
|
1647
|
+
}
|
|
1648
|
+
},
|
|
1649
|
+
{
|
|
1650
|
+
"name": "dest_vault_token_account",
|
|
1651
|
+
"docs": [
|
|
1652
|
+
"Destination vault's token account",
|
|
1653
|
+
"For native SOL pools (mint_address == Pubkey::default), may be unused — pass any mut account.",
|
|
1654
|
+
"For SPL pools, must be the canonical ATA of the dest vault for the dest mint."
|
|
1655
|
+
],
|
|
1656
|
+
"writable": true
|
|
1657
|
+
},
|
|
1658
|
+
{
|
|
1659
|
+
"name": "dest_mint_account",
|
|
1660
|
+
"docs": [
|
|
1661
|
+
"Destination token mint — for native SOL pools, pass the WSOL (NATIVE_MINT) account.",
|
|
1662
|
+
"Must match effective_mint(dest_mint) so executor ATAs are created with WSOL."
|
|
1663
|
+
]
|
|
1664
|
+
},
|
|
1665
|
+
{
|
|
1666
|
+
"name": "executor",
|
|
1667
|
+
"docs": [
|
|
1668
|
+
"Executor PDA - holds tokens during swap",
|
|
1669
|
+
"Seeds include source_mint, dest_mint, nullifier, AND relayer key to prevent front-running DoS",
|
|
1670
|
+
"Uses init_if_needed: for native SOL swaps the executor is pre-created by fund_native_source."
|
|
1671
|
+
],
|
|
1672
|
+
"writable": true,
|
|
1673
|
+
"pda": {
|
|
1674
|
+
"seeds": [
|
|
1675
|
+
{
|
|
1676
|
+
"kind": "const",
|
|
1677
|
+
"value": [
|
|
1678
|
+
115,
|
|
1679
|
+
119,
|
|
1680
|
+
97,
|
|
1681
|
+
112,
|
|
1682
|
+
95,
|
|
1683
|
+
101,
|
|
1684
|
+
120,
|
|
1685
|
+
101,
|
|
1686
|
+
99,
|
|
1687
|
+
117,
|
|
1688
|
+
116,
|
|
1689
|
+
111,
|
|
1690
|
+
114
|
|
1691
|
+
]
|
|
1692
|
+
},
|
|
1693
|
+
{
|
|
1694
|
+
"kind": "arg",
|
|
1695
|
+
"path": "source_mint"
|
|
1696
|
+
},
|
|
1697
|
+
{
|
|
1698
|
+
"kind": "arg",
|
|
1699
|
+
"path": "dest_mint"
|
|
1700
|
+
},
|
|
1701
|
+
{
|
|
1702
|
+
"kind": "arg",
|
|
1703
|
+
"path": "input_nullifier_0"
|
|
1704
|
+
},
|
|
1705
|
+
{
|
|
1706
|
+
"kind": "account",
|
|
1707
|
+
"path": "relayer"
|
|
1708
|
+
}
|
|
1709
|
+
]
|
|
1710
|
+
}
|
|
1711
|
+
},
|
|
1712
|
+
{
|
|
1713
|
+
"name": "executor_source_token",
|
|
1714
|
+
"docs": [
|
|
1715
|
+
"Executor's source token account (receives from source vault)",
|
|
1716
|
+
"Uses init_if_needed: pre-created by fund_native_source for native SOL swaps."
|
|
1717
|
+
],
|
|
1718
|
+
"writable": true,
|
|
1719
|
+
"pda": {
|
|
1720
|
+
"seeds": [
|
|
1721
|
+
{
|
|
1722
|
+
"kind": "account",
|
|
1723
|
+
"path": "executor"
|
|
1724
|
+
},
|
|
1725
|
+
{
|
|
1726
|
+
"kind": "const",
|
|
1727
|
+
"value": [
|
|
1728
|
+
6,
|
|
1729
|
+
221,
|
|
1730
|
+
246,
|
|
1731
|
+
225,
|
|
1732
|
+
215,
|
|
1733
|
+
101,
|
|
1734
|
+
161,
|
|
1735
|
+
147,
|
|
1736
|
+
217,
|
|
1737
|
+
203,
|
|
1738
|
+
225,
|
|
1739
|
+
70,
|
|
1740
|
+
206,
|
|
1741
|
+
235,
|
|
1742
|
+
121,
|
|
1743
|
+
172,
|
|
1744
|
+
28,
|
|
1745
|
+
180,
|
|
1746
|
+
133,
|
|
1747
|
+
237,
|
|
1748
|
+
95,
|
|
1749
|
+
91,
|
|
1750
|
+
55,
|
|
1751
|
+
145,
|
|
1752
|
+
58,
|
|
1753
|
+
140,
|
|
1754
|
+
245,
|
|
1755
|
+
133,
|
|
1756
|
+
126,
|
|
1757
|
+
255,
|
|
1758
|
+
0,
|
|
1759
|
+
169
|
|
1760
|
+
]
|
|
1761
|
+
},
|
|
1762
|
+
{
|
|
1763
|
+
"kind": "account",
|
|
1764
|
+
"path": "source_mint_account"
|
|
1765
|
+
}
|
|
1766
|
+
],
|
|
1767
|
+
"program": {
|
|
1768
|
+
"kind": "const",
|
|
1769
|
+
"value": [
|
|
1770
|
+
140,
|
|
1771
|
+
151,
|
|
1772
|
+
37,
|
|
1773
|
+
143,
|
|
1774
|
+
78,
|
|
1775
|
+
36,
|
|
1776
|
+
137,
|
|
1777
|
+
241,
|
|
1778
|
+
187,
|
|
1779
|
+
61,
|
|
1780
|
+
16,
|
|
1781
|
+
41,
|
|
1782
|
+
20,
|
|
1783
|
+
142,
|
|
1784
|
+
13,
|
|
1785
|
+
131,
|
|
1786
|
+
11,
|
|
1787
|
+
90,
|
|
1788
|
+
19,
|
|
1789
|
+
153,
|
|
1790
|
+
218,
|
|
1791
|
+
255,
|
|
1792
|
+
16,
|
|
1793
|
+
132,
|
|
1794
|
+
4,
|
|
1795
|
+
142,
|
|
1796
|
+
123,
|
|
1797
|
+
216,
|
|
1798
|
+
219,
|
|
1799
|
+
233,
|
|
1800
|
+
248,
|
|
1801
|
+
89
|
|
1802
|
+
]
|
|
1803
|
+
}
|
|
1804
|
+
}
|
|
1805
|
+
},
|
|
1806
|
+
{
|
|
1807
|
+
"name": "executor_dest_token",
|
|
1808
|
+
"docs": [
|
|
1809
|
+
"Executor's destination token account (receives swapped tokens)"
|
|
1810
|
+
],
|
|
1811
|
+
"writable": true,
|
|
1812
|
+
"pda": {
|
|
1813
|
+
"seeds": [
|
|
1814
|
+
{
|
|
1815
|
+
"kind": "account",
|
|
1816
|
+
"path": "executor"
|
|
1817
|
+
},
|
|
1818
|
+
{
|
|
1819
|
+
"kind": "const",
|
|
1820
|
+
"value": [
|
|
1821
|
+
6,
|
|
1822
|
+
221,
|
|
1823
|
+
246,
|
|
1824
|
+
225,
|
|
1825
|
+
215,
|
|
1826
|
+
101,
|
|
1827
|
+
161,
|
|
1828
|
+
147,
|
|
1829
|
+
217,
|
|
1830
|
+
203,
|
|
1831
|
+
225,
|
|
1832
|
+
70,
|
|
1833
|
+
206,
|
|
1834
|
+
235,
|
|
1835
|
+
121,
|
|
1836
|
+
172,
|
|
1837
|
+
28,
|
|
1838
|
+
180,
|
|
1839
|
+
133,
|
|
1840
|
+
237,
|
|
1841
|
+
95,
|
|
1842
|
+
91,
|
|
1843
|
+
55,
|
|
1844
|
+
145,
|
|
1845
|
+
58,
|
|
1846
|
+
140,
|
|
1847
|
+
245,
|
|
1848
|
+
133,
|
|
1849
|
+
126,
|
|
1850
|
+
255,
|
|
1851
|
+
0,
|
|
1852
|
+
169
|
|
1853
|
+
]
|
|
1854
|
+
},
|
|
1855
|
+
{
|
|
1856
|
+
"kind": "account",
|
|
1857
|
+
"path": "dest_mint_account"
|
|
1858
|
+
}
|
|
1859
|
+
],
|
|
1860
|
+
"program": {
|
|
1861
|
+
"kind": "const",
|
|
1862
|
+
"value": [
|
|
1863
|
+
140,
|
|
1864
|
+
151,
|
|
1865
|
+
37,
|
|
1866
|
+
143,
|
|
1867
|
+
78,
|
|
1868
|
+
36,
|
|
1869
|
+
137,
|
|
1870
|
+
241,
|
|
1871
|
+
187,
|
|
1872
|
+
61,
|
|
1873
|
+
16,
|
|
1874
|
+
41,
|
|
1875
|
+
20,
|
|
1876
|
+
142,
|
|
1877
|
+
13,
|
|
1878
|
+
131,
|
|
1879
|
+
11,
|
|
1880
|
+
90,
|
|
1881
|
+
19,
|
|
1882
|
+
153,
|
|
1883
|
+
218,
|
|
1884
|
+
255,
|
|
1885
|
+
16,
|
|
1886
|
+
132,
|
|
1887
|
+
4,
|
|
1888
|
+
142,
|
|
1889
|
+
123,
|
|
1890
|
+
216,
|
|
1891
|
+
219,
|
|
1892
|
+
233,
|
|
1893
|
+
248,
|
|
1894
|
+
89
|
|
1895
|
+
]
|
|
1896
|
+
}
|
|
1897
|
+
}
|
|
1898
|
+
},
|
|
1899
|
+
{
|
|
1900
|
+
"name": "relayer",
|
|
1901
|
+
"docs": [
|
|
1902
|
+
"Relayer who submits transaction (pays rent, receives fee)"
|
|
1903
|
+
],
|
|
1904
|
+
"writable": true,
|
|
1905
|
+
"signer": true
|
|
1906
|
+
},
|
|
1907
|
+
{
|
|
1908
|
+
"name": "relayer_token_account",
|
|
1909
|
+
"docs": [
|
|
1910
|
+
"Relayer's token account for fees (dest token)"
|
|
1911
|
+
],
|
|
1912
|
+
"writable": true
|
|
1913
|
+
},
|
|
1914
|
+
{
|
|
1915
|
+
"name": "swap_program",
|
|
1916
|
+
"docs": [
|
|
1917
|
+
"Raydium Swap program (CPMM or AMM)"
|
|
1918
|
+
]
|
|
1919
|
+
},
|
|
1920
|
+
{
|
|
1921
|
+
"name": "jupiter_event_authority",
|
|
1922
|
+
"docs": [
|
|
1923
|
+
"Jupiter Event Authority (required for Jupiter V6 swaps)"
|
|
1924
|
+
]
|
|
1925
|
+
},
|
|
1926
|
+
{
|
|
1927
|
+
"name": "token_program",
|
|
1928
|
+
"address": "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"
|
|
1929
|
+
},
|
|
1930
|
+
{
|
|
1931
|
+
"name": "system_program",
|
|
1932
|
+
"address": "11111111111111111111111111111111"
|
|
1933
|
+
},
|
|
1934
|
+
{
|
|
1935
|
+
"name": "associated_token_program",
|
|
1936
|
+
"address": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"
|
|
1937
|
+
}
|
|
1938
|
+
],
|
|
1939
|
+
"args": [
|
|
1940
|
+
{
|
|
1941
|
+
"name": "source_tree_id",
|
|
1942
|
+
"type": "u16"
|
|
1943
|
+
},
|
|
1944
|
+
{
|
|
1945
|
+
"name": "source_mint",
|
|
1946
|
+
"type": "pubkey"
|
|
1947
|
+
},
|
|
1948
|
+
{
|
|
1949
|
+
"name": "input_nullifier_0",
|
|
1950
|
+
"type": {
|
|
1951
|
+
"array": [
|
|
1952
|
+
"u8",
|
|
1953
|
+
32
|
|
1954
|
+
]
|
|
1955
|
+
}
|
|
1956
|
+
},
|
|
1957
|
+
{
|
|
1958
|
+
"name": "input_nullifier_1",
|
|
1959
|
+
"type": {
|
|
1960
|
+
"array": [
|
|
1961
|
+
"u8",
|
|
1962
|
+
32
|
|
1963
|
+
]
|
|
1964
|
+
}
|
|
1965
|
+
},
|
|
1966
|
+
{
|
|
1967
|
+
"name": "dest_tree_id",
|
|
1968
|
+
"type": "u16"
|
|
1969
|
+
},
|
|
1970
|
+
{
|
|
1971
|
+
"name": "dest_mint",
|
|
1972
|
+
"type": "pubkey"
|
|
1973
|
+
},
|
|
1974
|
+
{
|
|
1975
|
+
"name": "proof",
|
|
1976
|
+
"type": {
|
|
1977
|
+
"defined": {
|
|
1978
|
+
"name": "SwapProof"
|
|
1979
|
+
}
|
|
1980
|
+
}
|
|
1981
|
+
},
|
|
1982
|
+
{
|
|
1983
|
+
"name": "source_root",
|
|
1984
|
+
"type": {
|
|
1985
|
+
"array": [
|
|
1986
|
+
"u8",
|
|
1987
|
+
32
|
|
1988
|
+
]
|
|
1989
|
+
}
|
|
1990
|
+
},
|
|
1991
|
+
{
|
|
1992
|
+
"name": "output_commitment_0",
|
|
1993
|
+
"type": {
|
|
1994
|
+
"array": [
|
|
1995
|
+
"u8",
|
|
1996
|
+
32
|
|
1997
|
+
]
|
|
1998
|
+
}
|
|
1999
|
+
},
|
|
2000
|
+
{
|
|
2001
|
+
"name": "output_commitment_1",
|
|
2002
|
+
"type": {
|
|
2003
|
+
"array": [
|
|
2004
|
+
"u8",
|
|
2005
|
+
32
|
|
2006
|
+
]
|
|
2007
|
+
}
|
|
2008
|
+
},
|
|
2009
|
+
{
|
|
2010
|
+
"name": "swap_params",
|
|
2011
|
+
"type": {
|
|
2012
|
+
"defined": {
|
|
2013
|
+
"name": "SwapParams"
|
|
2014
|
+
}
|
|
2015
|
+
}
|
|
2016
|
+
},
|
|
2017
|
+
{
|
|
2018
|
+
"name": "swap_amount",
|
|
2019
|
+
"type": "u64"
|
|
2020
|
+
},
|
|
2021
|
+
{
|
|
2022
|
+
"name": "swap_data",
|
|
2023
|
+
"type": "bytes"
|
|
2024
|
+
},
|
|
2025
|
+
{
|
|
2026
|
+
"name": "ext_data",
|
|
2027
|
+
"type": {
|
|
2028
|
+
"defined": {
|
|
2029
|
+
"name": "ExtData"
|
|
2030
|
+
}
|
|
2031
|
+
}
|
|
2032
|
+
},
|
|
2033
|
+
{
|
|
2034
|
+
"name": "note_ciphers",
|
|
2035
|
+
"type": {
|
|
2036
|
+
"option": {
|
|
2037
|
+
"defined": {
|
|
2038
|
+
"name": "NoteCiphers"
|
|
2039
|
+
}
|
|
2040
|
+
}
|
|
2041
|
+
}
|
|
2042
|
+
}
|
|
2043
|
+
]
|
|
2044
|
+
},
|
|
2045
|
+
{
|
|
2046
|
+
"name": "update_global_config",
|
|
2047
|
+
"discriminator": [
|
|
2048
|
+
164,
|
|
2049
|
+
84,
|
|
2050
|
+
130,
|
|
2051
|
+
189,
|
|
2052
|
+
111,
|
|
2053
|
+
58,
|
|
2054
|
+
250,
|
|
2055
|
+
200
|
|
2056
|
+
],
|
|
2057
|
+
"accounts": [
|
|
2058
|
+
{
|
|
2059
|
+
"name": "global_config",
|
|
2060
|
+
"writable": true,
|
|
2061
|
+
"pda": {
|
|
2062
|
+
"seeds": [
|
|
2063
|
+
{
|
|
2064
|
+
"kind": "const",
|
|
2065
|
+
"value": [
|
|
2066
|
+
103,
|
|
2067
|
+
108,
|
|
2068
|
+
111,
|
|
2069
|
+
98,
|
|
2070
|
+
97,
|
|
2071
|
+
108,
|
|
2072
|
+
95,
|
|
2073
|
+
99,
|
|
2074
|
+
111,
|
|
2075
|
+
110,
|
|
2076
|
+
102,
|
|
2077
|
+
105,
|
|
2078
|
+
103,
|
|
2079
|
+
95,
|
|
2080
|
+
118,
|
|
2081
|
+
49
|
|
2082
|
+
]
|
|
2083
|
+
}
|
|
2084
|
+
]
|
|
2085
|
+
}
|
|
2086
|
+
},
|
|
2087
|
+
{
|
|
2088
|
+
"name": "admin",
|
|
2089
|
+
"docs": [
|
|
2090
|
+
"has_one = admin ensures this matches global_config.admin."
|
|
2091
|
+
],
|
|
2092
|
+
"signer": true,
|
|
2093
|
+
"relations": [
|
|
2094
|
+
"global_config"
|
|
2095
|
+
]
|
|
2096
|
+
}
|
|
2097
|
+
],
|
|
2098
|
+
"args": []
|
|
2099
|
+
},
|
|
2100
|
+
{
|
|
2101
|
+
"name": "update_pool_config",
|
|
2102
|
+
"discriminator": [
|
|
2103
|
+
68,
|
|
2104
|
+
236,
|
|
2105
|
+
203,
|
|
2106
|
+
122,
|
|
2107
|
+
179,
|
|
2108
|
+
62,
|
|
2109
|
+
234,
|
|
2110
|
+
252
|
|
2111
|
+
],
|
|
2112
|
+
"accounts": [
|
|
2113
|
+
{
|
|
2114
|
+
"name": "config",
|
|
2115
|
+
"writable": true,
|
|
2116
|
+
"pda": {
|
|
2117
|
+
"seeds": [
|
|
2118
|
+
{
|
|
2119
|
+
"kind": "const",
|
|
2120
|
+
"value": [
|
|
2121
|
+
112,
|
|
2122
|
+
114,
|
|
2123
|
+
105,
|
|
2124
|
+
118,
|
|
2125
|
+
97,
|
|
2126
|
+
99,
|
|
2127
|
+
121,
|
|
2128
|
+
95,
|
|
2129
|
+
99,
|
|
2130
|
+
111,
|
|
2131
|
+
110,
|
|
2132
|
+
102,
|
|
2133
|
+
105,
|
|
2134
|
+
103,
|
|
2135
|
+
95,
|
|
2136
|
+
118,
|
|
2137
|
+
51
|
|
2138
|
+
]
|
|
2139
|
+
},
|
|
2140
|
+
{
|
|
2141
|
+
"kind": "arg",
|
|
2142
|
+
"path": "mint_address"
|
|
2143
|
+
}
|
|
2144
|
+
]
|
|
2145
|
+
}
|
|
2146
|
+
},
|
|
2147
|
+
{
|
|
2148
|
+
"name": "admin",
|
|
2149
|
+
"signer": true,
|
|
2150
|
+
"relations": [
|
|
2151
|
+
"config"
|
|
2152
|
+
]
|
|
2153
|
+
}
|
|
2154
|
+
],
|
|
2155
|
+
"args": [
|
|
2156
|
+
{
|
|
2157
|
+
"name": "_mint_address",
|
|
2158
|
+
"type": "pubkey"
|
|
2159
|
+
},
|
|
2160
|
+
{
|
|
2161
|
+
"name": "min_deposit_amount",
|
|
2162
|
+
"type": {
|
|
2163
|
+
"option": "u64"
|
|
2164
|
+
}
|
|
2165
|
+
},
|
|
2166
|
+
{
|
|
2167
|
+
"name": "max_deposit_amount",
|
|
2168
|
+
"type": {
|
|
2169
|
+
"option": "u64"
|
|
2170
|
+
}
|
|
2171
|
+
},
|
|
2172
|
+
{
|
|
2173
|
+
"name": "min_withdraw_amount",
|
|
2174
|
+
"type": {
|
|
2175
|
+
"option": "u64"
|
|
2176
|
+
}
|
|
2177
|
+
},
|
|
2178
|
+
{
|
|
2179
|
+
"name": "max_withdraw_amount",
|
|
2180
|
+
"type": {
|
|
2181
|
+
"option": "u64"
|
|
2182
|
+
}
|
|
2183
|
+
},
|
|
2184
|
+
{
|
|
2185
|
+
"name": "fee_bps",
|
|
2186
|
+
"type": {
|
|
2187
|
+
"option": "u16"
|
|
2188
|
+
}
|
|
2189
|
+
},
|
|
2190
|
+
{
|
|
2191
|
+
"name": "min_withdrawal_fee",
|
|
2192
|
+
"type": {
|
|
2193
|
+
"option": "u64"
|
|
2194
|
+
}
|
|
2195
|
+
},
|
|
2196
|
+
{
|
|
2197
|
+
"name": "fee_error_margin_bps",
|
|
2198
|
+
"type": {
|
|
2199
|
+
"option": "u16"
|
|
2200
|
+
}
|
|
2201
|
+
},
|
|
2202
|
+
{
|
|
2203
|
+
"name": "min_swap_fee",
|
|
2204
|
+
"type": {
|
|
2205
|
+
"option": "u64"
|
|
2206
|
+
}
|
|
2207
|
+
},
|
|
2208
|
+
{
|
|
2209
|
+
"name": "swap_fee_bps",
|
|
2210
|
+
"type": {
|
|
2211
|
+
"option": "u16"
|
|
2212
|
+
}
|
|
2213
|
+
}
|
|
2214
|
+
]
|
|
2215
|
+
}
|
|
2216
|
+
],
|
|
2217
|
+
"accounts": [
|
|
2218
|
+
{
|
|
2219
|
+
"name": "GlobalConfig",
|
|
2220
|
+
"discriminator": [
|
|
2221
|
+
149,
|
|
2222
|
+
8,
|
|
2223
|
+
156,
|
|
2224
|
+
202,
|
|
2225
|
+
160,
|
|
2226
|
+
252,
|
|
2227
|
+
176,
|
|
2228
|
+
217
|
|
2229
|
+
]
|
|
2230
|
+
},
|
|
2231
|
+
{
|
|
2232
|
+
"name": "MerkleTreeAccount",
|
|
2233
|
+
"discriminator": [
|
|
2234
|
+
147,
|
|
2235
|
+
200,
|
|
2236
|
+
34,
|
|
2237
|
+
248,
|
|
2238
|
+
131,
|
|
2239
|
+
187,
|
|
2240
|
+
248,
|
|
2241
|
+
253
|
|
2242
|
+
]
|
|
2243
|
+
},
|
|
2244
|
+
{
|
|
2245
|
+
"name": "NullifierMarker",
|
|
2246
|
+
"discriminator": [
|
|
2247
|
+
160,
|
|
2248
|
+
124,
|
|
2249
|
+
83,
|
|
2250
|
+
42,
|
|
2251
|
+
185,
|
|
2252
|
+
14,
|
|
2253
|
+
141,
|
|
2254
|
+
101
|
|
2255
|
+
]
|
|
2256
|
+
},
|
|
2257
|
+
{
|
|
2258
|
+
"name": "NullifierSet",
|
|
2259
|
+
"discriminator": [
|
|
2260
|
+
251,
|
|
2261
|
+
219,
|
|
2262
|
+
17,
|
|
2263
|
+
100,
|
|
2264
|
+
208,
|
|
2265
|
+
102,
|
|
2266
|
+
127,
|
|
2267
|
+
25
|
|
2268
|
+
]
|
|
2269
|
+
},
|
|
2270
|
+
{
|
|
2271
|
+
"name": "PrivacyConfig",
|
|
2272
|
+
"discriminator": [
|
|
2273
|
+
165,
|
|
2274
|
+
149,
|
|
2275
|
+
218,
|
|
2276
|
+
209,
|
|
2277
|
+
148,
|
|
2278
|
+
237,
|
|
2279
|
+
242,
|
|
2280
|
+
159
|
|
2281
|
+
]
|
|
2282
|
+
},
|
|
2283
|
+
{
|
|
2284
|
+
"name": "SwapExecutor",
|
|
2285
|
+
"discriminator": [
|
|
2286
|
+
28,
|
|
2287
|
+
237,
|
|
2288
|
+
82,
|
|
2289
|
+
118,
|
|
2290
|
+
158,
|
|
2291
|
+
162,
|
|
2292
|
+
39,
|
|
2293
|
+
225
|
|
2294
|
+
]
|
|
2295
|
+
},
|
|
2296
|
+
{
|
|
2297
|
+
"name": "Vault",
|
|
2298
|
+
"discriminator": [
|
|
2299
|
+
211,
|
|
2300
|
+
8,
|
|
2301
|
+
232,
|
|
2302
|
+
43,
|
|
2303
|
+
2,
|
|
2304
|
+
152,
|
|
2305
|
+
117,
|
|
2306
|
+
119
|
|
2307
|
+
]
|
|
2308
|
+
}
|
|
2309
|
+
],
|
|
2310
|
+
"events": [
|
|
2311
|
+
{
|
|
2312
|
+
"name": "CommitmentEvent",
|
|
2313
|
+
"discriminator": [
|
|
2314
|
+
89,
|
|
2315
|
+
205,
|
|
2316
|
+
140,
|
|
2317
|
+
111,
|
|
2318
|
+
36,
|
|
2319
|
+
129,
|
|
2320
|
+
217,
|
|
2321
|
+
125
|
|
2322
|
+
]
|
|
2323
|
+
},
|
|
2324
|
+
{
|
|
2325
|
+
"name": "NullifierSpent",
|
|
2326
|
+
"discriminator": [
|
|
2327
|
+
166,
|
|
2328
|
+
111,
|
|
2329
|
+
130,
|
|
2330
|
+
54,
|
|
2331
|
+
212,
|
|
2332
|
+
115,
|
|
2333
|
+
152,
|
|
2334
|
+
215
|
|
2335
|
+
]
|
|
2336
|
+
},
|
|
2337
|
+
{
|
|
2338
|
+
"name": "SwapExecutedEvent",
|
|
2339
|
+
"discriminator": [
|
|
2340
|
+
183,
|
|
2341
|
+
28,
|
|
2342
|
+
219,
|
|
2343
|
+
210,
|
|
2344
|
+
164,
|
|
2345
|
+
184,
|
|
2346
|
+
62,
|
|
2347
|
+
12
|
|
2348
|
+
]
|
|
2349
|
+
}
|
|
2350
|
+
],
|
|
2351
|
+
"errors": [
|
|
2352
|
+
{
|
|
2353
|
+
"code": 6000,
|
|
2354
|
+
"name": "Paused",
|
|
2355
|
+
"msg": "Pool is paused"
|
|
2356
|
+
},
|
|
2357
|
+
{
|
|
2358
|
+
"code": 6001,
|
|
2359
|
+
"name": "NoDenoms",
|
|
2360
|
+
"msg": "No denominations configured"
|
|
2361
|
+
},
|
|
2362
|
+
{
|
|
2363
|
+
"code": 6002,
|
|
2364
|
+
"name": "TooManyDenoms",
|
|
2365
|
+
"msg": "Too many denominations"
|
|
2366
|
+
},
|
|
2367
|
+
{
|
|
2368
|
+
"code": 6003,
|
|
2369
|
+
"name": "BadDenomIndex",
|
|
2370
|
+
"msg": "Bad denomination index"
|
|
2371
|
+
},
|
|
2372
|
+
{
|
|
2373
|
+
"code": 6004,
|
|
2374
|
+
"name": "MathOverflow",
|
|
2375
|
+
"msg": "Math overflow"
|
|
2376
|
+
},
|
|
2377
|
+
{
|
|
2378
|
+
"code": 6005,
|
|
2379
|
+
"name": "NullifierAlreadyUsed",
|
|
2380
|
+
"msg": "Nullifier already used"
|
|
2381
|
+
},
|
|
2382
|
+
{
|
|
2383
|
+
"code": 6006,
|
|
2384
|
+
"name": "NullifierTableFull",
|
|
2385
|
+
"msg": "Nullifier table is full"
|
|
2386
|
+
},
|
|
2387
|
+
{
|
|
2388
|
+
"code": 6007,
|
|
2389
|
+
"name": "UnknownRoot",
|
|
2390
|
+
"msg": "Unknown root"
|
|
2391
|
+
},
|
|
2392
|
+
{
|
|
2393
|
+
"code": 6008,
|
|
2394
|
+
"name": "RelayerNotAllowed",
|
|
2395
|
+
"msg": "Relayer not allowed"
|
|
2396
|
+
},
|
|
2397
|
+
{
|
|
2398
|
+
"code": 6009,
|
|
2399
|
+
"name": "InsufficientVaultBalance",
|
|
2400
|
+
"msg": "Vault balance too low"
|
|
2401
|
+
},
|
|
2402
|
+
{
|
|
2403
|
+
"code": 6010,
|
|
2404
|
+
"name": "TooManyRelayers",
|
|
2405
|
+
"msg": "Too many relayers"
|
|
2406
|
+
},
|
|
2407
|
+
{
|
|
2408
|
+
"code": 6011,
|
|
2409
|
+
"name": "InvalidProof",
|
|
2410
|
+
"msg": "Invalid proof encoding"
|
|
2411
|
+
},
|
|
2412
|
+
{
|
|
2413
|
+
"code": 6012,
|
|
2414
|
+
"name": "VerifyFailed",
|
|
2415
|
+
"msg": "Groth16 verification failed"
|
|
2416
|
+
},
|
|
2417
|
+
{
|
|
2418
|
+
"code": 6013,
|
|
2419
|
+
"name": "MerkleTreeFull",
|
|
2420
|
+
"msg": "Merkle tree is full - use a different tree_id or add a new tree with add_merkle_tree"
|
|
2421
|
+
},
|
|
2422
|
+
{
|
|
2423
|
+
"code": 6014,
|
|
2424
|
+
"name": "MerkleHashFailed",
|
|
2425
|
+
"msg": "Merkle hash failed"
|
|
2426
|
+
},
|
|
2427
|
+
{
|
|
2428
|
+
"code": 6015,
|
|
2429
|
+
"name": "InvalidExtData",
|
|
2430
|
+
"msg": "Invalid external data hash"
|
|
2431
|
+
},
|
|
2432
|
+
{
|
|
2433
|
+
"code": 6016,
|
|
2434
|
+
"name": "RecipientMismatch",
|
|
2435
|
+
"msg": "Recipient mismatch"
|
|
2436
|
+
},
|
|
2437
|
+
{
|
|
2438
|
+
"code": 6017,
|
|
2439
|
+
"name": "InvalidMintAddress",
|
|
2440
|
+
"msg": "Invalid mint address"
|
|
2441
|
+
},
|
|
2442
|
+
{
|
|
2443
|
+
"code": 6018,
|
|
2444
|
+
"name": "ExcessiveFee",
|
|
2445
|
+
"msg": "Excessive fee"
|
|
2446
|
+
},
|
|
2447
|
+
{
|
|
2448
|
+
"code": 6019,
|
|
2449
|
+
"name": "InsufficientFee",
|
|
2450
|
+
"msg": "Fee below minimum required for withdrawal"
|
|
2451
|
+
},
|
|
2452
|
+
{
|
|
2453
|
+
"code": 6020,
|
|
2454
|
+
"name": "ArithmeticOverflow",
|
|
2455
|
+
"msg": "Arithmetic overflow/underflow occurred"
|
|
2456
|
+
},
|
|
2457
|
+
{
|
|
2458
|
+
"code": 6021,
|
|
2459
|
+
"name": "InsufficientFundsForWithdrawal",
|
|
2460
|
+
"msg": "Insufficient funds for withdrawal (including rent exemption)"
|
|
2461
|
+
},
|
|
2462
|
+
{
|
|
2463
|
+
"code": 6022,
|
|
2464
|
+
"name": "InsufficientFundsForFee",
|
|
2465
|
+
"msg": "Insufficient funds for fee payment"
|
|
2466
|
+
},
|
|
2467
|
+
{
|
|
2468
|
+
"code": 6023,
|
|
2469
|
+
"name": "InvalidPublicAmount",
|
|
2470
|
+
"msg": "Invalid public amount data"
|
|
2471
|
+
},
|
|
2472
|
+
{
|
|
2473
|
+
"code": 6024,
|
|
2474
|
+
"name": "InvalidFeeAmount",
|
|
2475
|
+
"msg": "Invalid fee amount"
|
|
2476
|
+
},
|
|
2477
|
+
{
|
|
2478
|
+
"code": 6025,
|
|
2479
|
+
"name": "DuplicateNullifiers",
|
|
2480
|
+
"msg": "Duplicate nullifiers detected"
|
|
2481
|
+
},
|
|
2482
|
+
{
|
|
2483
|
+
"code": 6026,
|
|
2484
|
+
"name": "DuplicateCommitments",
|
|
2485
|
+
"msg": "Duplicate output commitments detected"
|
|
2486
|
+
},
|
|
2487
|
+
{
|
|
2488
|
+
"code": 6027,
|
|
2489
|
+
"name": "MissingTokenAccount",
|
|
2490
|
+
"msg": "Token account required for SPL token operations"
|
|
2491
|
+
},
|
|
2492
|
+
{
|
|
2493
|
+
"code": 6028,
|
|
2494
|
+
"name": "MissingTokenProgram",
|
|
2495
|
+
"msg": "Token program required for SPL token operations"
|
|
2496
|
+
},
|
|
2497
|
+
{
|
|
2498
|
+
"code": 6029,
|
|
2499
|
+
"name": "InvalidTokenAuthority",
|
|
2500
|
+
"msg": "Invalid token account authority"
|
|
2501
|
+
},
|
|
2502
|
+
{
|
|
2503
|
+
"code": 6030,
|
|
2504
|
+
"name": "RelayerMismatch",
|
|
2505
|
+
"msg": "Relayer account does not match ext_data.relayer"
|
|
2506
|
+
},
|
|
2507
|
+
{
|
|
2508
|
+
"code": 6031,
|
|
2509
|
+
"name": "RelayerTokenAccountMismatch",
|
|
2510
|
+
"msg": "Relayer token account not owned by ext_data.relayer"
|
|
2511
|
+
},
|
|
2512
|
+
{
|
|
2513
|
+
"code": 6032,
|
|
2514
|
+
"name": "RecipientTokenAccountMismatch",
|
|
2515
|
+
"msg": "Recipient token account not owned by ext_data.recipient"
|
|
2516
|
+
},
|
|
2517
|
+
{
|
|
2518
|
+
"code": 6033,
|
|
2519
|
+
"name": "DepositorTokenAccountMismatch",
|
|
2520
|
+
"msg": "Depositor token account not owned/delegated to relayer"
|
|
2521
|
+
},
|
|
2522
|
+
{
|
|
2523
|
+
"code": 6034,
|
|
2524
|
+
"name": "InvalidPrivateTransferFee",
|
|
2525
|
+
"msg": "Private transfer (public_amount == 0) must have fee == 0 and refund == 0"
|
|
2526
|
+
},
|
|
2527
|
+
{
|
|
2528
|
+
"code": 6035,
|
|
2529
|
+
"name": "DepositBelowMinimum",
|
|
2530
|
+
"msg": "Deposit amount below pool minimum"
|
|
2531
|
+
},
|
|
2532
|
+
{
|
|
2533
|
+
"code": 6036,
|
|
2534
|
+
"name": "DepositLimitExceeded",
|
|
2535
|
+
"msg": "Deposit amount exceeds pool maximum"
|
|
2536
|
+
},
|
|
2537
|
+
{
|
|
2538
|
+
"code": 6037,
|
|
2539
|
+
"name": "WithdrawalBelowMinimum",
|
|
2540
|
+
"msg": "Withdrawal amount below pool minimum"
|
|
2541
|
+
},
|
|
2542
|
+
{
|
|
2543
|
+
"code": 6038,
|
|
2544
|
+
"name": "WithdrawalLimitExceeded",
|
|
2545
|
+
"msg": "Withdrawal amount exceeds pool maximum"
|
|
2546
|
+
},
|
|
2547
|
+
{
|
|
2548
|
+
"code": 6039,
|
|
2549
|
+
"name": "InvalidPoolConfigRange",
|
|
2550
|
+
"msg": "Invalid PoolConfig range (min > max)"
|
|
2551
|
+
},
|
|
2552
|
+
{
|
|
2553
|
+
"code": 6040,
|
|
2554
|
+
"name": "ExcessiveFeeBps",
|
|
2555
|
+
"msg": "Fee basis points exceeds maximum (100 = 1%)"
|
|
2556
|
+
},
|
|
2557
|
+
{
|
|
2558
|
+
"code": 6041,
|
|
2559
|
+
"name": "ExcessiveFeeMargin",
|
|
2560
|
+
"msg": "Fee error margin exceeds maximum (5000 = 50%)"
|
|
2561
|
+
},
|
|
2562
|
+
{
|
|
2563
|
+
"code": 6042,
|
|
2564
|
+
"name": "UnauthorizedAdmin",
|
|
2565
|
+
"msg": "Only authorized admin can initialize"
|
|
2566
|
+
},
|
|
2567
|
+
{
|
|
2568
|
+
"code": 6043,
|
|
2569
|
+
"name": "Unauthorized",
|
|
2570
|
+
"msg": "Unauthorized: only admin or relayers can perform this action"
|
|
2571
|
+
},
|
|
2572
|
+
{
|
|
2573
|
+
"code": 6044,
|
|
2574
|
+
"name": "InvalidTreeId",
|
|
2575
|
+
"msg": "Invalid tree_id (tree does not exist or exceeds num_trees)"
|
|
2576
|
+
},
|
|
2577
|
+
{
|
|
2578
|
+
"code": 6045,
|
|
2579
|
+
"name": "TooManyTrees",
|
|
2580
|
+
"msg": "Maximum number of Merkle trees reached for this pool"
|
|
2581
|
+
},
|
|
2582
|
+
{
|
|
2583
|
+
"code": 6046,
|
|
2584
|
+
"name": "InvalidNullifiersForDeposit",
|
|
2585
|
+
"msg": "Deposits must use zero nullifiers (no notes consumed)"
|
|
2586
|
+
},
|
|
2587
|
+
{
|
|
2588
|
+
"code": 6047,
|
|
2589
|
+
"name": "ZeroNullifier",
|
|
2590
|
+
"msg": "Nullifier cannot be zero for withdrawals/transfers"
|
|
2591
|
+
},
|
|
2592
|
+
{
|
|
2593
|
+
"code": 6048,
|
|
2594
|
+
"name": "ZeroCommitment",
|
|
2595
|
+
"msg": "Output commitment cannot be zero"
|
|
2596
|
+
},
|
|
2597
|
+
{
|
|
2598
|
+
"code": 6049,
|
|
2599
|
+
"name": "InvalidTokenAccountOwner",
|
|
2600
|
+
"msg": "Token account must be owned by SPL Token Program"
|
|
2601
|
+
},
|
|
2602
|
+
{
|
|
2603
|
+
"code": 6050,
|
|
2604
|
+
"name": "VaultTokenAccountNotATA",
|
|
2605
|
+
"msg": "Vault token account must be the canonical Associated Token Account"
|
|
2606
|
+
},
|
|
2607
|
+
{
|
|
2608
|
+
"code": 6051,
|
|
2609
|
+
"name": "WithdrawalTooSmallForMinFee",
|
|
2610
|
+
"msg": "Withdrawal amount too small: max fee based on fee_bps would be less than min_withdrawal_fee"
|
|
2611
|
+
},
|
|
2612
|
+
{
|
|
2613
|
+
"code": 6052,
|
|
2614
|
+
"name": "InvalidNullifierMarkerForDeposit",
|
|
2615
|
+
"msg": "Nullifier marker account does not correspond to zero nullifier for deposits"
|
|
2616
|
+
},
|
|
2617
|
+
{
|
|
2618
|
+
"code": 6053,
|
|
2619
|
+
"name": "InsufficientDelegation",
|
|
2620
|
+
"msg": "Token account delegation amount insufficient for deposit"
|
|
2621
|
+
},
|
|
2622
|
+
{
|
|
2623
|
+
"code": 6054,
|
|
2624
|
+
"name": "InvalidSwapProgram",
|
|
2625
|
+
"msg": "Invalid swap program: must be Raydium CPMM or AMM"
|
|
2626
|
+
},
|
|
2627
|
+
{
|
|
2628
|
+
"code": 6055,
|
|
2629
|
+
"name": "InvalidRemainingAccounts",
|
|
2630
|
+
"msg": "Invalid remaining accounts: wrong count or ownership"
|
|
2631
|
+
},
|
|
2632
|
+
{
|
|
2633
|
+
"code": 6056,
|
|
2634
|
+
"name": "JupiterInsufficientAccounts",
|
|
2635
|
+
"msg": "Jupiter swap requires additional routing accounts"
|
|
2636
|
+
},
|
|
2637
|
+
{
|
|
2638
|
+
"code": 6057,
|
|
2639
|
+
"name": "JupiterInvalidInstruction",
|
|
2640
|
+
"msg": "Jupiter instruction data invalid or unsupported version"
|
|
2641
|
+
},
|
|
2642
|
+
{
|
|
2643
|
+
"code": 6058,
|
|
2644
|
+
"name": "InvalidSwapParams",
|
|
2645
|
+
"msg": "Swap params mints do not match instruction mints"
|
|
2646
|
+
},
|
|
2647
|
+
{
|
|
2648
|
+
"code": 6059,
|
|
2649
|
+
"name": "MissingTransactSwapInstruction",
|
|
2650
|
+
"msg": "fund_native_source must be immediately followed by transact_swap in the same transaction"
|
|
2651
|
+
},
|
|
2652
|
+
{
|
|
2653
|
+
"code": 6060,
|
|
2654
|
+
"name": "DeadlineExpired",
|
|
2655
|
+
"msg": "Transaction deadline has expired"
|
|
2656
|
+
}
|
|
2657
|
+
],
|
|
2658
|
+
"types": [
|
|
2659
|
+
{
|
|
2660
|
+
"name": "CommitmentEvent",
|
|
2661
|
+
"type": {
|
|
2662
|
+
"kind": "struct",
|
|
2663
|
+
"fields": [
|
|
2664
|
+
{
|
|
2665
|
+
"name": "commitment",
|
|
2666
|
+
"type": {
|
|
2667
|
+
"array": [
|
|
2668
|
+
"u8",
|
|
2669
|
+
32
|
|
2670
|
+
]
|
|
2671
|
+
}
|
|
2672
|
+
},
|
|
2673
|
+
{
|
|
2674
|
+
"name": "leaf_index",
|
|
2675
|
+
"type": "u64"
|
|
2676
|
+
},
|
|
2677
|
+
{
|
|
2678
|
+
"name": "new_root",
|
|
2679
|
+
"type": {
|
|
2680
|
+
"array": [
|
|
2681
|
+
"u8",
|
|
2682
|
+
32
|
|
2683
|
+
]
|
|
2684
|
+
}
|
|
2685
|
+
},
|
|
2686
|
+
{
|
|
2687
|
+
"name": "timestamp",
|
|
2688
|
+
"type": "i64"
|
|
2689
|
+
},
|
|
2690
|
+
{
|
|
2691
|
+
"name": "mint_address",
|
|
2692
|
+
"type": "pubkey"
|
|
2693
|
+
},
|
|
2694
|
+
{
|
|
2695
|
+
"name": "tree_id",
|
|
2696
|
+
"type": "u16"
|
|
2697
|
+
},
|
|
2698
|
+
{
|
|
2699
|
+
"name": "ephemeral_public_key",
|
|
2700
|
+
"docs": [
|
|
2701
|
+
"Ephemeral Curve25519 public key for ECDH — generated fresh per note"
|
|
2702
|
+
],
|
|
2703
|
+
"type": {
|
|
2704
|
+
"array": [
|
|
2705
|
+
"u8",
|
|
2706
|
+
32
|
|
2707
|
+
]
|
|
2708
|
+
}
|
|
2709
|
+
},
|
|
2710
|
+
{
|
|
2711
|
+
"name": "encrypted_blob",
|
|
2712
|
+
"docs": [
|
|
2713
|
+
"NaCl secretbox ciphertext of (blinding[32] || amount[8])",
|
|
2714
|
+
"Zero bytes when relayer passes None (tests / non-recovery mode)"
|
|
2715
|
+
],
|
|
2716
|
+
"type": {
|
|
2717
|
+
"array": [
|
|
2718
|
+
"u8",
|
|
2719
|
+
80
|
|
2720
|
+
]
|
|
2721
|
+
}
|
|
2722
|
+
}
|
|
2723
|
+
]
|
|
2724
|
+
}
|
|
2725
|
+
},
|
|
2726
|
+
{
|
|
2727
|
+
"name": "ExtData",
|
|
2728
|
+
"docs": [
|
|
2729
|
+
"External data that gets hashed into ext_data_hash",
|
|
2730
|
+
"These are public parameters that affect financial flows"
|
|
2731
|
+
],
|
|
2732
|
+
"type": {
|
|
2733
|
+
"kind": "struct",
|
|
2734
|
+
"fields": [
|
|
2735
|
+
{
|
|
2736
|
+
"name": "recipient",
|
|
2737
|
+
"docs": [
|
|
2738
|
+
"Who receives withdrawal"
|
|
2739
|
+
],
|
|
2740
|
+
"type": "pubkey"
|
|
2741
|
+
},
|
|
2742
|
+
{
|
|
2743
|
+
"name": "relayer",
|
|
2744
|
+
"docs": [
|
|
2745
|
+
"Who submits tx (gets fee)"
|
|
2746
|
+
],
|
|
2747
|
+
"type": "pubkey"
|
|
2748
|
+
},
|
|
2749
|
+
{
|
|
2750
|
+
"name": "fee",
|
|
2751
|
+
"docs": [
|
|
2752
|
+
"Fee to relayer in lamports"
|
|
2753
|
+
],
|
|
2754
|
+
"type": "u64"
|
|
2755
|
+
},
|
|
2756
|
+
{
|
|
2757
|
+
"name": "refund",
|
|
2758
|
+
"docs": [
|
|
2759
|
+
"Refund to user in lamports"
|
|
2760
|
+
],
|
|
2761
|
+
"type": "u64"
|
|
2762
|
+
}
|
|
2763
|
+
]
|
|
2764
|
+
}
|
|
2765
|
+
},
|
|
2766
|
+
{
|
|
2767
|
+
"name": "GlobalConfig",
|
|
2768
|
+
"type": {
|
|
2769
|
+
"kind": "struct",
|
|
2770
|
+
"fields": [
|
|
2771
|
+
{
|
|
2772
|
+
"name": "bump",
|
|
2773
|
+
"docs": [
|
|
2774
|
+
"PDA bump"
|
|
2775
|
+
],
|
|
2776
|
+
"type": "u8"
|
|
2777
|
+
},
|
|
2778
|
+
{
|
|
2779
|
+
"name": "admin",
|
|
2780
|
+
"docs": [
|
|
2781
|
+
"Admin who can configure global settings"
|
|
2782
|
+
],
|
|
2783
|
+
"type": "pubkey"
|
|
2784
|
+
}
|
|
2785
|
+
]
|
|
2786
|
+
}
|
|
2787
|
+
},
|
|
2788
|
+
{
|
|
2789
|
+
"name": "MerkleTreeAccount",
|
|
2790
|
+
"docs": [
|
|
2791
|
+
"Layout tests verify 9107 bytes total with 1-byte alignment. Breaking this corrupts all accounts."
|
|
2792
|
+
],
|
|
2793
|
+
"serialization": "bytemuckunsafe",
|
|
2794
|
+
"repr": {
|
|
2795
|
+
"kind": "rust",
|
|
2796
|
+
"packed": true
|
|
2797
|
+
},
|
|
2798
|
+
"type": {
|
|
2799
|
+
"kind": "struct",
|
|
2800
|
+
"fields": [
|
|
2801
|
+
{
|
|
2802
|
+
"name": "authority",
|
|
2803
|
+
"docs": [
|
|
2804
|
+
"Authority allowed to manage the tree (config admin)"
|
|
2805
|
+
],
|
|
2806
|
+
"type": "pubkey"
|
|
2807
|
+
},
|
|
2808
|
+
{
|
|
2809
|
+
"name": "height",
|
|
2810
|
+
"docs": [
|
|
2811
|
+
"Tree height (number of levels)"
|
|
2812
|
+
],
|
|
2813
|
+
"type": "u8"
|
|
2814
|
+
},
|
|
2815
|
+
{
|
|
2816
|
+
"name": "root_history_size",
|
|
2817
|
+
"docs": [
|
|
2818
|
+
"How many roots we track"
|
|
2819
|
+
],
|
|
2820
|
+
"type": "u16"
|
|
2821
|
+
},
|
|
2822
|
+
{
|
|
2823
|
+
"name": "next_index",
|
|
2824
|
+
"docs": [
|
|
2825
|
+
"Next leaf index"
|
|
2826
|
+
],
|
|
2827
|
+
"type": "u64"
|
|
2828
|
+
},
|
|
2829
|
+
{
|
|
2830
|
+
"name": "root_index",
|
|
2831
|
+
"docs": [
|
|
2832
|
+
"Index into root_history for the current root"
|
|
2833
|
+
],
|
|
2834
|
+
"type": "u64"
|
|
2835
|
+
},
|
|
2836
|
+
{
|
|
2837
|
+
"name": "root",
|
|
2838
|
+
"docs": [
|
|
2839
|
+
"Current root"
|
|
2840
|
+
],
|
|
2841
|
+
"type": {
|
|
2842
|
+
"array": [
|
|
2843
|
+
"u8",
|
|
2844
|
+
32
|
|
2845
|
+
]
|
|
2846
|
+
}
|
|
2847
|
+
},
|
|
2848
|
+
{
|
|
2849
|
+
"name": "subtrees",
|
|
2850
|
+
"docs": [
|
|
2851
|
+
"Cached subtree values for each level"
|
|
2852
|
+
],
|
|
2853
|
+
"type": {
|
|
2854
|
+
"array": [
|
|
2855
|
+
{
|
|
2856
|
+
"array": [
|
|
2857
|
+
"u8",
|
|
2858
|
+
32
|
|
2859
|
+
]
|
|
2860
|
+
},
|
|
2861
|
+
22
|
|
2862
|
+
]
|
|
2863
|
+
}
|
|
2864
|
+
},
|
|
2865
|
+
{
|
|
2866
|
+
"name": "root_history",
|
|
2867
|
+
"docs": [
|
|
2868
|
+
"Circular buffer of recent roots"
|
|
2869
|
+
],
|
|
2870
|
+
"type": {
|
|
2871
|
+
"array": [
|
|
2872
|
+
{
|
|
2873
|
+
"array": [
|
|
2874
|
+
"u8",
|
|
2875
|
+
32
|
|
2876
|
+
]
|
|
2877
|
+
},
|
|
2878
|
+
256
|
|
2879
|
+
]
|
|
2880
|
+
}
|
|
2881
|
+
}
|
|
2882
|
+
]
|
|
2883
|
+
}
|
|
2884
|
+
},
|
|
2885
|
+
{
|
|
2886
|
+
"name": "NoteCiphers",
|
|
2887
|
+
"docs": [
|
|
2888
|
+
"Encrypted note data passed by the relayer so users can recover funds",
|
|
2889
|
+
"from chain history alone if the off-chain note DB is lost.",
|
|
2890
|
+
"`ephemeral_public_key`: fresh Curve25519 pubkey for ECDH — reveals nothing",
|
|
2891
|
+
"`encrypted_blob`: NaCl secretbox of (blinding[32] || amount[8]); 40-byte",
|
|
2892
|
+
"plaintext → 80-byte ciphertext (24-byte nonce + 16-byte MAC)"
|
|
2893
|
+
],
|
|
2894
|
+
"type": {
|
|
2895
|
+
"kind": "struct",
|
|
2896
|
+
"fields": [
|
|
2897
|
+
{
|
|
2898
|
+
"name": "note0_ephemeral_key",
|
|
2899
|
+
"type": {
|
|
2900
|
+
"array": [
|
|
2901
|
+
"u8",
|
|
2902
|
+
32
|
|
2903
|
+
]
|
|
2904
|
+
}
|
|
2905
|
+
},
|
|
2906
|
+
{
|
|
2907
|
+
"name": "note0_encrypted",
|
|
2908
|
+
"type": {
|
|
2909
|
+
"array": [
|
|
2910
|
+
"u8",
|
|
2911
|
+
80
|
|
2912
|
+
]
|
|
2913
|
+
}
|
|
2914
|
+
},
|
|
2915
|
+
{
|
|
2916
|
+
"name": "note1_ephemeral_key",
|
|
2917
|
+
"type": {
|
|
2918
|
+
"array": [
|
|
2919
|
+
"u8",
|
|
2920
|
+
32
|
|
2921
|
+
]
|
|
2922
|
+
}
|
|
2923
|
+
},
|
|
2924
|
+
{
|
|
2925
|
+
"name": "note1_encrypted",
|
|
2926
|
+
"type": {
|
|
2927
|
+
"array": [
|
|
2928
|
+
"u8",
|
|
2929
|
+
80
|
|
2930
|
+
]
|
|
2931
|
+
}
|
|
2932
|
+
}
|
|
2933
|
+
]
|
|
2934
|
+
}
|
|
2935
|
+
},
|
|
2936
|
+
{
|
|
2937
|
+
"name": "NullifierMarker",
|
|
2938
|
+
"docs": [
|
|
2939
|
+
"Per-nullifier PDA marker (created when nullifier is spent).",
|
|
2940
|
+
"The nullifier itself is encoded in the PDA seeds; metadata is emitted via events."
|
|
2941
|
+
],
|
|
2942
|
+
"type": {
|
|
2943
|
+
"kind": "struct",
|
|
2944
|
+
"fields": [
|
|
2945
|
+
{
|
|
2946
|
+
"name": "is_spent",
|
|
2947
|
+
"type": "bool"
|
|
2948
|
+
},
|
|
2949
|
+
{
|
|
2950
|
+
"name": "bump",
|
|
2951
|
+
"type": "u8"
|
|
2952
|
+
}
|
|
2953
|
+
]
|
|
2954
|
+
}
|
|
2955
|
+
},
|
|
2956
|
+
{
|
|
2957
|
+
"name": "NullifierSet",
|
|
2958
|
+
"docs": [
|
|
2959
|
+
"Nullifier set metadata (actual nullifiers stored as individual PDAs)."
|
|
2960
|
+
],
|
|
2961
|
+
"type": {
|
|
2962
|
+
"kind": "struct",
|
|
2963
|
+
"fields": [
|
|
2964
|
+
{
|
|
2965
|
+
"name": "bump",
|
|
2966
|
+
"type": "u8"
|
|
2967
|
+
},
|
|
2968
|
+
{
|
|
2969
|
+
"name": "count",
|
|
2970
|
+
"type": "u32"
|
|
2971
|
+
}
|
|
2972
|
+
]
|
|
2973
|
+
}
|
|
2974
|
+
},
|
|
2975
|
+
{
|
|
2976
|
+
"name": "NullifierSpent",
|
|
2977
|
+
"type": {
|
|
2978
|
+
"kind": "struct",
|
|
2979
|
+
"fields": [
|
|
2980
|
+
{
|
|
2981
|
+
"name": "nullifier",
|
|
2982
|
+
"type": {
|
|
2983
|
+
"array": [
|
|
2984
|
+
"u8",
|
|
2985
|
+
32
|
|
2986
|
+
]
|
|
2987
|
+
}
|
|
2988
|
+
},
|
|
2989
|
+
{
|
|
2990
|
+
"name": "timestamp",
|
|
2991
|
+
"type": "i64"
|
|
2992
|
+
},
|
|
2993
|
+
{
|
|
2994
|
+
"name": "mint_address",
|
|
2995
|
+
"type": "pubkey"
|
|
2996
|
+
},
|
|
2997
|
+
{
|
|
2998
|
+
"name": "tree_id",
|
|
2999
|
+
"type": "u16"
|
|
3000
|
+
}
|
|
3001
|
+
]
|
|
3002
|
+
}
|
|
3003
|
+
},
|
|
3004
|
+
{
|
|
3005
|
+
"name": "PrivacyConfig",
|
|
3006
|
+
"type": {
|
|
3007
|
+
"kind": "struct",
|
|
3008
|
+
"fields": [
|
|
3009
|
+
{
|
|
3010
|
+
"name": "bump",
|
|
3011
|
+
"docs": [
|
|
3012
|
+
"PDA bump for this config"
|
|
3013
|
+
],
|
|
3014
|
+
"type": "u8"
|
|
3015
|
+
},
|
|
3016
|
+
{
|
|
3017
|
+
"name": "vault_bump",
|
|
3018
|
+
"docs": [
|
|
3019
|
+
"PDA bump for vault"
|
|
3020
|
+
],
|
|
3021
|
+
"type": "u8"
|
|
3022
|
+
},
|
|
3023
|
+
{
|
|
3024
|
+
"name": "admin",
|
|
3025
|
+
"docs": [
|
|
3026
|
+
"Admin who can configure pool and relayers"
|
|
3027
|
+
],
|
|
3028
|
+
"type": "pubkey"
|
|
3029
|
+
},
|
|
3030
|
+
{
|
|
3031
|
+
"name": "fee_bps",
|
|
3032
|
+
"docs": [
|
|
3033
|
+
"Fee in basis points (0–10_000) for withdrawals"
|
|
3034
|
+
],
|
|
3035
|
+
"type": "u16"
|
|
3036
|
+
},
|
|
3037
|
+
{
|
|
3038
|
+
"name": "min_withdrawal_fee",
|
|
3039
|
+
"docs": [
|
|
3040
|
+
"Minimum fee for withdrawals (in lamports) to ensure relayer compensation"
|
|
3041
|
+
],
|
|
3042
|
+
"type": "u64"
|
|
3043
|
+
},
|
|
3044
|
+
{
|
|
3045
|
+
"name": "fee_error_margin_bps",
|
|
3046
|
+
"docs": [
|
|
3047
|
+
"Fee error margin in basis points (e.g., 500 = 5%)",
|
|
3048
|
+
"Allows fee variance to prevent timing attacks where identical fees",
|
|
3049
|
+
"could correlate deposits/withdrawals"
|
|
3050
|
+
],
|
|
3051
|
+
"type": "u16"
|
|
3052
|
+
},
|
|
3053
|
+
{
|
|
3054
|
+
"name": "total_tvl",
|
|
3055
|
+
"docs": [
|
|
3056
|
+
"Total value locked (all deposits combined)"
|
|
3057
|
+
],
|
|
3058
|
+
"type": "u64"
|
|
3059
|
+
},
|
|
3060
|
+
{
|
|
3061
|
+
"name": "mint_address",
|
|
3062
|
+
"docs": [
|
|
3063
|
+
"Token mint address (for now: SOL, future: multi-token support)"
|
|
3064
|
+
],
|
|
3065
|
+
"type": "pubkey"
|
|
3066
|
+
},
|
|
3067
|
+
{
|
|
3068
|
+
"name": "min_deposit_amount",
|
|
3069
|
+
"docs": [
|
|
3070
|
+
"Minimum amount allowed per deposit (in lamports/token units)"
|
|
3071
|
+
],
|
|
3072
|
+
"type": "u64"
|
|
3073
|
+
},
|
|
3074
|
+
{
|
|
3075
|
+
"name": "max_deposit_amount",
|
|
3076
|
+
"docs": [
|
|
3077
|
+
"Maximum amount allowed per deposit (in lamports/token units)"
|
|
3078
|
+
],
|
|
3079
|
+
"type": "u64"
|
|
3080
|
+
},
|
|
3081
|
+
{
|
|
3082
|
+
"name": "min_withdraw_amount",
|
|
3083
|
+
"docs": [
|
|
3084
|
+
"Minimum amount allowed per withdrawal (in lamports/token units)"
|
|
3085
|
+
],
|
|
3086
|
+
"type": "u64"
|
|
3087
|
+
},
|
|
3088
|
+
{
|
|
3089
|
+
"name": "max_withdraw_amount",
|
|
3090
|
+
"docs": [
|
|
3091
|
+
"Maximum amount allowed per withdrawal (in lamports/token units)"
|
|
3092
|
+
],
|
|
3093
|
+
"type": "u64"
|
|
3094
|
+
},
|
|
3095
|
+
{
|
|
3096
|
+
"name": "num_relayers",
|
|
3097
|
+
"docs": [
|
|
3098
|
+
"Relayer registry"
|
|
3099
|
+
],
|
|
3100
|
+
"type": "u8"
|
|
3101
|
+
},
|
|
3102
|
+
{
|
|
3103
|
+
"name": "relayers",
|
|
3104
|
+
"type": {
|
|
3105
|
+
"array": [
|
|
3106
|
+
"pubkey",
|
|
3107
|
+
16
|
|
3108
|
+
]
|
|
3109
|
+
}
|
|
3110
|
+
},
|
|
3111
|
+
{
|
|
3112
|
+
"name": "num_trees",
|
|
3113
|
+
"docs": [
|
|
3114
|
+
"Multi-tree support: number of active Merkle trees"
|
|
3115
|
+
],
|
|
3116
|
+
"type": "u16"
|
|
3117
|
+
},
|
|
3118
|
+
{
|
|
3119
|
+
"name": "next_tree_index",
|
|
3120
|
+
"docs": [
|
|
3121
|
+
"Suggested tree index for next deposit (round-robin)"
|
|
3122
|
+
],
|
|
3123
|
+
"type": "u16"
|
|
3124
|
+
},
|
|
3125
|
+
{
|
|
3126
|
+
"name": "min_swap_fee",
|
|
3127
|
+
"docs": [
|
|
3128
|
+
"Minimum swap fee in destination token units (e.g., 100000 = 0.1 USDC)",
|
|
3129
|
+
"Ensures relayer compensation for swap transactions"
|
|
3130
|
+
],
|
|
3131
|
+
"type": "u64"
|
|
3132
|
+
},
|
|
3133
|
+
{
|
|
3134
|
+
"name": "swap_fee_bps",
|
|
3135
|
+
"docs": [
|
|
3136
|
+
"Swap fee in basis points (0-10_000) of swap output amount",
|
|
3137
|
+
"Used with min_swap_fee: actual fee must be >= max(min_swap_fee, output * swap_fee_bps / 10000)"
|
|
3138
|
+
],
|
|
3139
|
+
"type": "u16"
|
|
3140
|
+
}
|
|
3141
|
+
]
|
|
3142
|
+
}
|
|
3143
|
+
},
|
|
3144
|
+
{
|
|
3145
|
+
"name": "SwapExecutedEvent",
|
|
3146
|
+
"type": {
|
|
3147
|
+
"kind": "struct",
|
|
3148
|
+
"fields": [
|
|
3149
|
+
{
|
|
3150
|
+
"name": "source_mint",
|
|
3151
|
+
"type": "pubkey"
|
|
3152
|
+
},
|
|
3153
|
+
{
|
|
3154
|
+
"name": "dest_mint",
|
|
3155
|
+
"type": "pubkey"
|
|
3156
|
+
},
|
|
3157
|
+
{
|
|
3158
|
+
"name": "source_tree_id",
|
|
3159
|
+
"type": "u16"
|
|
3160
|
+
},
|
|
3161
|
+
{
|
|
3162
|
+
"name": "dest_tree_id",
|
|
3163
|
+
"type": "u16"
|
|
3164
|
+
},
|
|
3165
|
+
{
|
|
3166
|
+
"name": "nullifiers",
|
|
3167
|
+
"type": {
|
|
3168
|
+
"array": [
|
|
3169
|
+
{
|
|
3170
|
+
"array": [
|
|
3171
|
+
"u8",
|
|
3172
|
+
32
|
|
3173
|
+
]
|
|
3174
|
+
},
|
|
3175
|
+
2
|
|
3176
|
+
]
|
|
3177
|
+
}
|
|
3178
|
+
},
|
|
3179
|
+
{
|
|
3180
|
+
"name": "commitments",
|
|
3181
|
+
"type": {
|
|
3182
|
+
"array": [
|
|
3183
|
+
{
|
|
3184
|
+
"array": [
|
|
3185
|
+
"u8",
|
|
3186
|
+
32
|
|
3187
|
+
]
|
|
3188
|
+
},
|
|
3189
|
+
2
|
|
3190
|
+
]
|
|
3191
|
+
}
|
|
3192
|
+
},
|
|
3193
|
+
{
|
|
3194
|
+
"name": "timestamp",
|
|
3195
|
+
"type": "i64"
|
|
3196
|
+
}
|
|
3197
|
+
]
|
|
3198
|
+
}
|
|
3199
|
+
},
|
|
3200
|
+
{
|
|
3201
|
+
"name": "SwapExecutor",
|
|
3202
|
+
"docs": [
|
|
3203
|
+
"Ephemeral PDA that holds tokens during swap, created and closed atomically"
|
|
3204
|
+
],
|
|
3205
|
+
"type": {
|
|
3206
|
+
"kind": "struct",
|
|
3207
|
+
"fields": [
|
|
3208
|
+
{
|
|
3209
|
+
"name": "source_mint",
|
|
3210
|
+
"type": "pubkey"
|
|
3211
|
+
},
|
|
3212
|
+
{
|
|
3213
|
+
"name": "dest_mint",
|
|
3214
|
+
"type": "pubkey"
|
|
3215
|
+
},
|
|
3216
|
+
{
|
|
3217
|
+
"name": "nullifier",
|
|
3218
|
+
"type": {
|
|
3219
|
+
"array": [
|
|
3220
|
+
"u8",
|
|
3221
|
+
32
|
|
3222
|
+
]
|
|
3223
|
+
}
|
|
3224
|
+
},
|
|
3225
|
+
{
|
|
3226
|
+
"name": "bump",
|
|
3227
|
+
"type": "u8"
|
|
3228
|
+
},
|
|
3229
|
+
{
|
|
3230
|
+
"name": "swap_amount",
|
|
3231
|
+
"docs": [
|
|
3232
|
+
"Swap amount stored by fund_native_source for validation in transact_swap.",
|
|
3233
|
+
"Zero when executor was created directly in transact_swap (relayer-float path)."
|
|
3234
|
+
],
|
|
3235
|
+
"type": "u64"
|
|
3236
|
+
},
|
|
3237
|
+
{
|
|
3238
|
+
"name": "is_prefunded",
|
|
3239
|
+
"docs": [
|
|
3240
|
+
"1 when executor was pre-funded by fund_native_source (vault already debited).",
|
|
3241
|
+
"0 for the single-instruction relayer-float path (backward compatible)."
|
|
3242
|
+
],
|
|
3243
|
+
"type": "u8"
|
|
3244
|
+
},
|
|
3245
|
+
{
|
|
3246
|
+
"name": "relayer",
|
|
3247
|
+
"docs": [
|
|
3248
|
+
"Relayer who created this executor — only they may call reclaim_stale_executor."
|
|
3249
|
+
],
|
|
3250
|
+
"type": "pubkey"
|
|
3251
|
+
}
|
|
3252
|
+
]
|
|
3253
|
+
}
|
|
3254
|
+
},
|
|
3255
|
+
{
|
|
3256
|
+
"name": "SwapParams",
|
|
3257
|
+
"docs": [
|
|
3258
|
+
"Swap parameters committed to in the ZK proof.",
|
|
3259
|
+
"`source_mint` and `dest_mint` are passed as separate `transact_swap` args",
|
|
3260
|
+
"and supplied to `hash()` at call time."
|
|
3261
|
+
],
|
|
3262
|
+
"type": {
|
|
3263
|
+
"kind": "struct",
|
|
3264
|
+
"fields": [
|
|
3265
|
+
{
|
|
3266
|
+
"name": "min_amount_out",
|
|
3267
|
+
"type": "u64"
|
|
3268
|
+
},
|
|
3269
|
+
{
|
|
3270
|
+
"name": "deadline",
|
|
3271
|
+
"type": "i64"
|
|
3272
|
+
},
|
|
3273
|
+
{
|
|
3274
|
+
"name": "dest_amount",
|
|
3275
|
+
"docs": [
|
|
3276
|
+
"Amount of destination tokens the user commits to receiving.",
|
|
3277
|
+
"Included in swapParamsHash — cryptographically binds the ZK circuit's",
|
|
3278
|
+
"destAmount to the on-chain vault deposit, preventing an attacker from",
|
|
3279
|
+
"encoding an inflated destination note while receiving a tiny swap output."
|
|
3280
|
+
],
|
|
3281
|
+
"type": "u64"
|
|
3282
|
+
},
|
|
3283
|
+
{
|
|
3284
|
+
"name": "swap_data_hash",
|
|
3285
|
+
"docs": [
|
|
3286
|
+
"SHA-256 hash of the raw swap instruction data (swap_data).",
|
|
3287
|
+
"Binds the exact DEX instruction bytes into the ZK proof so the relayer",
|
|
3288
|
+
"cannot substitute different swap_data (e.g. 0% slippage) after the user",
|
|
3289
|
+
"has generated their proof. Set to [0u8;32] for CPMM/AMM swaps, which",
|
|
3290
|
+
"already enforce dex_min_out by direct instruction decoding."
|
|
3291
|
+
],
|
|
3292
|
+
"type": {
|
|
3293
|
+
"array": [
|
|
3294
|
+
"u8",
|
|
3295
|
+
32
|
|
3296
|
+
]
|
|
3297
|
+
}
|
|
3298
|
+
}
|
|
3299
|
+
]
|
|
3300
|
+
}
|
|
3301
|
+
},
|
|
3302
|
+
{
|
|
3303
|
+
"name": "SwapProof",
|
|
3304
|
+
"docs": [
|
|
3305
|
+
"Proof for swap transaction circuit (2-in-2-out cross-pool UTXO model)"
|
|
3306
|
+
],
|
|
3307
|
+
"type": {
|
|
3308
|
+
"kind": "struct",
|
|
3309
|
+
"fields": [
|
|
3310
|
+
{
|
|
3311
|
+
"name": "proof_a",
|
|
3312
|
+
"type": {
|
|
3313
|
+
"array": [
|
|
3314
|
+
"u8",
|
|
3315
|
+
64
|
|
3316
|
+
]
|
|
3317
|
+
}
|
|
3318
|
+
},
|
|
3319
|
+
{
|
|
3320
|
+
"name": "proof_b",
|
|
3321
|
+
"type": {
|
|
3322
|
+
"array": [
|
|
3323
|
+
"u8",
|
|
3324
|
+
128
|
|
3325
|
+
]
|
|
3326
|
+
}
|
|
3327
|
+
},
|
|
3328
|
+
{
|
|
3329
|
+
"name": "proof_c",
|
|
3330
|
+
"type": {
|
|
3331
|
+
"array": [
|
|
3332
|
+
"u8",
|
|
3333
|
+
64
|
|
3334
|
+
]
|
|
3335
|
+
}
|
|
3336
|
+
}
|
|
3337
|
+
]
|
|
3338
|
+
}
|
|
3339
|
+
},
|
|
3340
|
+
{
|
|
3341
|
+
"name": "TransactionProof",
|
|
3342
|
+
"docs": [
|
|
3343
|
+
"Proof for new UTXO transaction circuit (same structure, different VK)"
|
|
3344
|
+
],
|
|
3345
|
+
"type": {
|
|
3346
|
+
"kind": "struct",
|
|
3347
|
+
"fields": [
|
|
3348
|
+
{
|
|
3349
|
+
"name": "proof_a",
|
|
3350
|
+
"type": {
|
|
3351
|
+
"array": [
|
|
3352
|
+
"u8",
|
|
3353
|
+
64
|
|
3354
|
+
]
|
|
3355
|
+
}
|
|
3356
|
+
},
|
|
3357
|
+
{
|
|
3358
|
+
"name": "proof_b",
|
|
3359
|
+
"type": {
|
|
3360
|
+
"array": [
|
|
3361
|
+
"u8",
|
|
3362
|
+
128
|
|
3363
|
+
]
|
|
3364
|
+
}
|
|
3365
|
+
},
|
|
3366
|
+
{
|
|
3367
|
+
"name": "proof_c",
|
|
3368
|
+
"type": {
|
|
3369
|
+
"array": [
|
|
3370
|
+
"u8",
|
|
3371
|
+
64
|
|
3372
|
+
]
|
|
3373
|
+
}
|
|
3374
|
+
}
|
|
3375
|
+
]
|
|
3376
|
+
}
|
|
3377
|
+
},
|
|
3378
|
+
{
|
|
3379
|
+
"name": "Vault",
|
|
3380
|
+
"type": {
|
|
3381
|
+
"kind": "struct",
|
|
3382
|
+
"fields": [
|
|
3383
|
+
{
|
|
3384
|
+
"name": "bump",
|
|
3385
|
+
"docs": [
|
|
3386
|
+
"PDA bump for this vault"
|
|
3387
|
+
],
|
|
3388
|
+
"type": "u8"
|
|
3389
|
+
}
|
|
3390
|
+
]
|
|
3391
|
+
}
|
|
3392
|
+
}
|
|
3393
|
+
]
|
|
3394
|
+
};
|
|
3395
|
+
export default IDL_JSON;
|