@arcanetech/privacy-sdk-stellar 0.2.3 → 0.4.1
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 +6 -6
- package/dist/index.d.ts +310 -157
- package/dist/index.js +2505 -1817
- package/dist/index.js.map +1 -1
- package/dist/node.d.ts +53 -116
- package/dist/node.js +1506 -1622
- package/dist/node.js.map +1 -1
- package/dist/state/index.d.ts +7 -122
- package/dist/state/index.js +96 -490
- package/dist/state/index.js.map +1 -1
- package/dist/testing/index.d.ts +14 -32
- package/dist/transact/index.d.ts +366 -59
- package/dist/transact/index.js +2484 -924
- package/dist/transact/index.js.map +1 -1
- package/generated/contract/README.md +4 -4
- package/generated/contract/dist/index.d.ts +270 -197
- package/generated/contract/dist/index.js +94 -52
- package/generated/contract/package.json +1 -1
- package/generated/contract/src/index.ts +239 -183
- package/generated/registry/README.md +4 -4
- package/generated/registry/dist/index.d.ts +56 -123
- package/generated/registry/dist/index.js +39 -37
- package/generated/registry/package.json +1 -1
- package/generated/registry/src/index.ts +56 -132
- package/package.json +8 -8
|
@@ -31,46 +31,7 @@ if (typeof window !== "undefined") {
|
|
|
31
31
|
}
|
|
32
32
|
|
|
33
33
|
|
|
34
|
-
export const networks = {
|
|
35
|
-
testnet: {
|
|
36
|
-
networkPassphrase: "Test SDF Network ; September 2015",
|
|
37
|
-
contractId: "CBVQTSTSIJ4UZMN5FQBFHPUIYSW3ATGSP57BZDJNKTOBNQODQTRGE4K5",
|
|
38
|
-
}
|
|
39
|
-
} as const
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
/**
|
|
43
|
-
* Per-application audit public key allowlist entry (runtime/config state).
|
|
44
|
-
*/
|
|
45
|
-
export interface AppAuditState {
|
|
46
|
-
audit_public_key_x: Buffer;
|
|
47
|
-
audit_public_key_y: Buffer;
|
|
48
|
-
enabled: boolean;
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
/**
|
|
53
|
-
* Ephemeral BabyJubJub / ECDH point (not hashed into the Merkle tree).
|
|
54
|
-
*/
|
|
55
|
-
export interface EphemeralKeyCoords {
|
|
56
|
-
x: Buffer;
|
|
57
|
-
y: Buffer;
|
|
58
|
-
}
|
|
59
34
|
|
|
60
|
-
/**
|
|
61
|
-
* Storage key for tree leaves — each leaf stored by index for O(1) write on deposit.
|
|
62
|
-
*/
|
|
63
|
-
export type TreeDataKey = {tag: "Leaf", values: readonly [u32]} | {tag: "LeafCount", values: void} | {tag: "LeafEphemeral", values: readonly [u32]} | {tag: "PairwiseFrontier", values: void};
|
|
64
|
-
|
|
65
|
-
/**
|
|
66
|
-
* Storage key for nullifiers — each nullifier hash maps to bool (consumed or not).
|
|
67
|
-
*/
|
|
68
|
-
export type NulifierDataKey = {tag: "Nulifier", values: readonly [Buffer]};
|
|
69
|
-
|
|
70
|
-
/**
|
|
71
|
-
* Ring buffer of historical Merkle roots (for proofs generated against recent states).
|
|
72
|
-
*/
|
|
73
|
-
export type RootHistoryKey = {tag: "CurrentRootIndex", values: void} | {tag: "Root", values: readonly [u32]};
|
|
74
35
|
|
|
75
36
|
export const Errors = {
|
|
76
37
|
1: {message:"NullifierUsed"},
|
|
@@ -98,68 +59,126 @@ export const Errors = {
|
|
|
98
59
|
*/
|
|
99
60
|
12: {message:"KytRegistryMissing"},
|
|
100
61
|
/**
|
|
101
|
-
*
|
|
62
|
+
* Reserved (H1): on-chain application audit-key allowlist removed. Do not reuse.
|
|
102
63
|
*/
|
|
103
64
|
13: {message:"UnknownAuditPublicKey"},
|
|
104
65
|
/**
|
|
105
|
-
*
|
|
66
|
+
* Reserved (H1): on-chain application audit-key allowlist removed. Do not reuse.
|
|
106
67
|
*/
|
|
107
|
-
14: {message:"InvalidAuditPublicKey"}
|
|
68
|
+
14: {message:"InvalidAuditPublicKey"},
|
|
69
|
+
/**
|
|
70
|
+
* No `ZkConfig` is registered for the requested nonce.
|
|
71
|
+
*/
|
|
72
|
+
15: {message:"ZkConfigNotFound"},
|
|
73
|
+
/**
|
|
74
|
+
* The `ZkConfig` for the requested nonce has been deprecated by the admin.
|
|
75
|
+
*/
|
|
76
|
+
16: {message:"ZkConfigDeprecated"},
|
|
77
|
+
/**
|
|
78
|
+
* `add_zk_config` was called with a `nonce` that already has a config registered.
|
|
79
|
+
*/
|
|
80
|
+
17: {message:"ZkConfigAlreadyExists"},
|
|
81
|
+
/**
|
|
82
|
+
* `add_zk_config` shape parameters are inconsistent (odd `n_outs`, insufficient
|
|
83
|
+
* `n_audit_slots`, an `audit_offset`/`output_note_offset` that doesn't match the
|
|
84
|
+
* formula-derived value, or a VK whose `ic` length doesn't match the shape).
|
|
85
|
+
*/
|
|
86
|
+
18: {message:"InvalidZkConfig"},
|
|
87
|
+
/**
|
|
88
|
+
* `__constructor` was called with `tree_depth > MAX_TREE_DEPTH`.
|
|
89
|
+
*/
|
|
90
|
+
19: {message:"InvalidTreeDepth"},
|
|
91
|
+
/**
|
|
92
|
+
* Duplicate nullifier hashes appear in a single `transact` public-signal vector (C3).
|
|
93
|
+
*/
|
|
94
|
+
20: {message:"DuplicateNullifier"},
|
|
95
|
+
/**
|
|
96
|
+
* Calldata escrow recipient does not match the public-signal escrow limbs.
|
|
97
|
+
*/
|
|
98
|
+
21: {message:"EscrowRecipientMismatch"},
|
|
99
|
+
/**
|
|
100
|
+
* A sweep (non-zero public escrow recipient) requires a registry record for that account.
|
|
101
|
+
*/
|
|
102
|
+
22: {message:"SweepRequiresRegisteredRecipient"}
|
|
108
103
|
}
|
|
109
104
|
|
|
110
105
|
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
106
|
+
/**
|
|
107
|
+
* Admin-managed, nonce-keyed ZK circuit configuration: verification key plus every dynamic
|
|
108
|
+
* shape parameter of the `Transaction(...)` circuit instantiation used to verify a `transact`
|
|
109
|
+
* call for that nonce (see `circuits/main.circom` / `libs/zk::ZkLayoutParams`).
|
|
110
|
+
*/
|
|
111
|
+
export interface ZkConfig {
|
|
112
|
+
audit_offset: u32;
|
|
113
|
+
deprecated: boolean;
|
|
114
|
+
n_audit_slots: u32;
|
|
115
|
+
n_ins: u32;
|
|
116
|
+
n_outs: u32;
|
|
117
|
+
note_audit_len: u32;
|
|
118
|
+
note_output_len: u32;
|
|
119
|
+
output_note_offset: u32;
|
|
120
|
+
public_n_inputs: u32;
|
|
121
|
+
public_n_outputs: u32;
|
|
122
|
+
vk_bytes: Buffer;
|
|
118
123
|
}
|
|
119
124
|
|
|
125
|
+
/**
|
|
126
|
+
* Storage key for tree leaves — each leaf stored by index for O(1) write on deposit.
|
|
127
|
+
*/
|
|
128
|
+
export type TreeDataKey = {tag: "Leaf", values: readonly [u32]} | {tag: "LeafCount", values: void} | {tag: "LeafEphemeral", values: readonly [u32]} | {tag: "PairwiseFrontier", values: void};
|
|
129
|
+
|
|
130
|
+
/**
|
|
131
|
+
* Persistent storage key for the per-nonce [`ZkConfig`] registry.
|
|
132
|
+
*/
|
|
133
|
+
export type ZkConfigKey = {tag: "Config", values: readonly [u64]};
|
|
120
134
|
|
|
121
|
-
export const Groth16Error = {
|
|
122
|
-
0: {message:"MalformedVerifyingKey"}
|
|
123
|
-
}
|
|
124
135
|
|
|
125
136
|
|
|
126
137
|
/**
|
|
127
|
-
*
|
|
138
|
+
* Ring buffer of historical Merkle roots (for proofs generated against recent states).
|
|
128
139
|
*/
|
|
129
|
-
export
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
*
|
|
140
|
+
export type RootHistoryKey = {tag: "CurrentRootIndex", values: void} | {tag: "Root", values: readonly [u32]};
|
|
141
|
+
|
|
142
|
+
|
|
143
|
+
/**
|
|
144
|
+
* Storage key for nullifiers — each nullifier hash maps to bool (consumed or not).
|
|
134
145
|
*/
|
|
135
|
-
|
|
136
|
-
nullifier: Buffer;
|
|
137
|
-
secret: Buffer;
|
|
138
|
-
value: i128;
|
|
139
|
-
}
|
|
146
|
+
export type NulifierDataKey = {tag: "Nulifier", values: readonly [Buffer]};
|
|
140
147
|
|
|
141
148
|
|
|
142
|
-
|
|
143
|
-
|
|
149
|
+
/**
|
|
150
|
+
* Ephemeral BabyJubJub / ECDH point (not hashed into the Merkle tree).
|
|
151
|
+
*/
|
|
152
|
+
export interface EphemeralKeyCoords {
|
|
153
|
+
x: Buffer;
|
|
154
|
+
y: Buffer;
|
|
144
155
|
}
|
|
145
156
|
|
|
146
157
|
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
158
|
+
|
|
159
|
+
|
|
160
|
+
|
|
161
|
+
|
|
162
|
+
export interface AuditSlotEventPayload {
|
|
163
|
+
ciphertext: Buffer;
|
|
164
|
+
ephemeral_x: Buffer;
|
|
165
|
+
ephemeral_y: Buffer;
|
|
166
|
+
tag: Buffer;
|
|
151
167
|
}
|
|
152
168
|
|
|
153
|
-
|
|
169
|
+
|
|
170
|
+
export interface OutputNoteEventPayload {
|
|
171
|
+
ciphertext: Buffer;
|
|
172
|
+
ephemeral_x: Buffer;
|
|
173
|
+
ephemeral_y: Buffer;
|
|
174
|
+
output_index: u32;
|
|
175
|
+
tag: Buffer;
|
|
176
|
+
}
|
|
154
177
|
|
|
155
178
|
|
|
156
|
-
export interface
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
owner: string;
|
|
160
|
-
private_address_registration: OptionalPrivateAddressRegistration;
|
|
161
|
-
temp_public_key_x: Buffer;
|
|
162
|
-
temp_public_key_y: Buffer;
|
|
179
|
+
export interface KytPassageRecord {
|
|
180
|
+
consumed: boolean;
|
|
181
|
+
expires_at_ledger: u32;
|
|
163
182
|
}
|
|
164
183
|
|
|
165
184
|
|
|
@@ -171,25 +190,30 @@ export interface PrivateAddressRecord {
|
|
|
171
190
|
}
|
|
172
191
|
|
|
173
192
|
|
|
174
|
-
export interface
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
encrypted_private_key: Buffer;
|
|
178
|
-
note: PlaintextNote;
|
|
179
|
-
owner: string;
|
|
180
|
-
temp_public_key_x: Buffer;
|
|
181
|
-
temp_public_key_y: Buffer;
|
|
193
|
+
export interface KytPassageAuthorization {
|
|
194
|
+
expiration_ledger: u32;
|
|
195
|
+
signature: Buffer;
|
|
182
196
|
}
|
|
183
197
|
|
|
184
198
|
|
|
185
|
-
export interface
|
|
186
|
-
|
|
199
|
+
export interface PrivateAddressRegistration {
|
|
200
|
+
owner: string;
|
|
201
|
+
public_key_x: Buffer;
|
|
202
|
+
public_key_y: Buffer;
|
|
187
203
|
}
|
|
188
204
|
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
205
|
+
export const Groth16Error = {
|
|
206
|
+
0: {message:"MalformedVerifyingKey"},
|
|
207
|
+
/**
|
|
208
|
+
* `Proof::from_bytes` received a `proof_bytes` argument that is too short (or otherwise
|
|
209
|
+
* fails to parse as `a || b || c`) for the fixed G1/G2 encoding lengths.
|
|
210
|
+
*/
|
|
211
|
+
1: {message:"MalformedProof"},
|
|
212
|
+
/**
|
|
213
|
+
* `PublicSignals::from_bytes` received a length prefix that does not match the remaining
|
|
214
|
+
* payload (too short, truncated Fr limbs, or a claimed length that overflows).
|
|
215
|
+
*/
|
|
216
|
+
2: {message:"MalformedPublicSignals"}
|
|
193
217
|
}
|
|
194
218
|
|
|
195
219
|
export interface Client {
|
|
@@ -197,54 +221,77 @@ export interface Client {
|
|
|
197
221
|
* Construct and simulate a transact transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
198
222
|
* Single entrypoint: verifies `circuits/main.circom` Groth16 proof and public signals, checks
|
|
199
223
|
* tree root and nullifiers, appends new output commitments (with ephemeral keys, not in Merkle),
|
|
200
|
-
*
|
|
201
|
-
*
|
|
202
|
-
*
|
|
203
|
-
* `withdrawAddressHi` / `withdrawAddressLo`.
|
|
224
|
+
* then applies public token deposits / withdrawals: `publicDepositedAssets` + `publicDeposits`
|
|
225
|
+
* pull from `from`, and `publicWithdrawnAssets` + `publicWithdrawals` send to the Stellar
|
|
226
|
+
* account from `withdrawAddressHi` / `withdrawAddressLo`.
|
|
204
227
|
*
|
|
205
|
-
*
|
|
206
|
-
*
|
|
228
|
+
* The proof-bound escrow recipient reconstructed from public signals is the only
|
|
229
|
+
* authorization subject. Both limbs zero means a non-sweep: both sweep output owner
|
|
230
|
+
* coordinates must also be zero. A nonzero pair is a sweep: that account must
|
|
231
|
+
* `require_auth()` (host account credentials, so multisig and rotated signers work; a
|
|
232
|
+
* revoked key cannot), must already have a private address in the registry, and both
|
|
233
|
+
* sweep output owner coordinates must equal that registry key.
|
|
207
234
|
*
|
|
208
|
-
*
|
|
209
|
-
*
|
|
210
|
-
* `bytes[0..16]` and `bytes[16..32]` (see `circuits/main.circom`). Avoids mod-`r` loss from a single `Fr`.
|
|
235
|
+
* Asset ids: Stellar **contract** token `C...` addresses encoded as two field elements (same 32-byte
|
|
236
|
+
* split as account keys — see `cir
|
|
211
237
|
*/
|
|
212
|
-
transact: ({from, proof_bytes, pub_signals_bytes,
|
|
238
|
+
transact: ({from, nonce, proof_bytes, pub_signals_bytes, ciphertext_bytes, kyt_authorization}: {from: string, nonce: u64, proof_bytes: Buffer, pub_signals_bytes: Buffer, ciphertext_bytes: Buffer, kyt_authorization: Option<KytPassageAuthorization>}, options?: MethodOptions) => Promise<AssembledTransaction<Result<void>>>
|
|
213
239
|
|
|
214
240
|
/**
|
|
215
|
-
* Construct and simulate a
|
|
241
|
+
* Construct and simulate a get_admin transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
242
|
+
* Gets the admin address (the contract deployer)
|
|
216
243
|
*/
|
|
217
|
-
|
|
244
|
+
get_admin: (options?: MethodOptions) => Promise<AssembledTransaction<string>>
|
|
218
245
|
|
|
219
246
|
/**
|
|
220
|
-
* Construct and simulate a
|
|
247
|
+
* Construct and simulate a get_registry transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
221
248
|
*/
|
|
222
|
-
|
|
249
|
+
get_registry: (options?: MethodOptions) => Promise<AssembledTransaction<Option<string>>>
|
|
223
250
|
|
|
224
251
|
/**
|
|
225
|
-
* Construct and simulate a
|
|
252
|
+
* Construct and simulate a set_registry transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
226
253
|
*/
|
|
227
|
-
|
|
254
|
+
set_registry: ({registry}: {registry: string}, options?: MethodOptions) => Promise<AssembledTransaction<null>>
|
|
228
255
|
|
|
229
256
|
/**
|
|
230
|
-
* Construct and simulate a
|
|
257
|
+
* Construct and simulate a add_zk_config transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
258
|
+
* Registers a new per-nonce ZK circuit configuration (VK + full circuit shape). Admin-only;
|
|
259
|
+
* fails if `nonce` already has a config. Validates `n_outs` is even (leaves are inserted
|
|
260
|
+
* pairwise via `PairwiseLeanIMT::insert_two`), `n_audit_slots >= n_ins + n_outs`, that
|
|
261
|
+
* `audit_offset`/`output_note_offset` match the formula-derived layout, and that the VK's
|
|
262
|
+
* `ic` length matches the resulting total public-signal count.
|
|
231
263
|
*/
|
|
232
|
-
|
|
264
|
+
add_zk_config: ({nonce, vk_bytes, n_ins, n_outs, public_n_inputs, public_n_outputs, n_audit_slots, note_audit_len, audit_offset, note_output_len, output_note_offset}: {nonce: u64, vk_bytes: Buffer, n_ins: u32, n_outs: u32, public_n_inputs: u32, public_n_outputs: u32, n_audit_slots: u32, note_audit_len: u32, audit_offset: u32, note_output_len: u32, output_note_offset: u32}, options?: MethodOptions) => Promise<AssembledTransaction<Result<void>>>
|
|
233
265
|
|
|
234
266
|
/**
|
|
235
|
-
* Construct and simulate a
|
|
267
|
+
* Construct and simulate a get_zk_config transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
268
|
+
* Reads a registered ZK config (extending its persistent TTL), or `None` if absent.
|
|
236
269
|
*/
|
|
237
|
-
|
|
270
|
+
get_zk_config: ({nonce}: {nonce: u64}, options?: MethodOptions) => Promise<AssembledTransaction<Option<ZkConfig>>>
|
|
238
271
|
|
|
239
272
|
/**
|
|
240
|
-
* Construct and simulate a
|
|
273
|
+
* Construct and simulate a is_known_root transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
274
|
+
* Returns true if `root` appears in the recent root history (ring buffer).
|
|
275
|
+
* All-zero bytes are never accepted.
|
|
241
276
|
*/
|
|
242
|
-
|
|
277
|
+
is_known_root: ({root}: {root: Buffer}, options?: MethodOptions) => Promise<AssembledTransaction<boolean>>
|
|
243
278
|
|
|
244
279
|
/**
|
|
245
|
-
* Construct and simulate a
|
|
280
|
+
* Construct and simulate a get_commitments transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
281
|
+
* Gets all commitments (leaves) in the merkle tree. Read-only view helper (not called from
|
|
282
|
+
* `transact`/`add_zk_config` or any other state-mutating entrypoint) intended for off-chain
|
|
283
|
+
* simulation/queries; its cost scales with `count`, which grows with real pool usage rather
|
|
284
|
+
* than with a single caller-controlled input, so it does not let one transaction consume a
|
|
285
|
+
* disproportionate share of a block's resources the way an admin/user-controlled shape
|
|
286
|
+
* parameter would. Acknowledged `dos-unbounded-operation` finding.
|
|
287
|
+
*
|
|
288
|
+
* `leaves` is a local in-memory `Vec` (`vec![&env]`), not persistent contract storage, so
|
|
289
|
+
* there is no storage-side access-control concern in the `push_back` below either;
|
|
290
|
+
* acknowledged `dos-unexpected-revert-with-storage` false positive. Both acknowledgments are
|
|
291
|
+
* function-level because neither detector respects a `#[allow]` placed on the loop/statement
|
|
292
|
+
* itself.
|
|
246
293
|
*/
|
|
247
|
-
|
|
294
|
+
get_commitments: (options?: MethodOptions) => Promise<AssembledTransaction<Array<Buffer>>>
|
|
248
295
|
|
|
249
296
|
/**
|
|
250
297
|
* Construct and simulate a get_merkle_root transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
@@ -252,6 +299,11 @@ export interface Client {
|
|
|
252
299
|
*/
|
|
253
300
|
get_merkle_root: (options?: MethodOptions) => Promise<AssembledTransaction<Buffer>>
|
|
254
301
|
|
|
302
|
+
/**
|
|
303
|
+
* Construct and simulate a get_kyt_registry transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
304
|
+
*/
|
|
305
|
+
get_kyt_registry: (options?: MethodOptions) => Promise<AssembledTransaction<Option<string>>>
|
|
306
|
+
|
|
255
307
|
/**
|
|
256
308
|
* Construct and simulate a get_merkle_depth transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
257
309
|
* Gets the current depth of the merkle tree
|
|
@@ -259,65 +311,65 @@ export interface Client {
|
|
|
259
311
|
get_merkle_depth: (options?: MethodOptions) => Promise<AssembledTransaction<u32>>
|
|
260
312
|
|
|
261
313
|
/**
|
|
262
|
-
* Construct and simulate a
|
|
263
|
-
* Gets the number of commitments (leaves) in the merkle tree
|
|
314
|
+
* Construct and simulate a set_kyt_registry transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
264
315
|
*/
|
|
265
|
-
|
|
316
|
+
set_kyt_registry: ({kyt_registry}: {kyt_registry: string}, options?: MethodOptions) => Promise<AssembledTransaction<null>>
|
|
266
317
|
|
|
267
318
|
/**
|
|
268
|
-
* Construct and simulate a
|
|
269
|
-
*
|
|
319
|
+
* Construct and simulate a get_token_balance transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
320
|
+
* Token balance held by this contract for a Stellar asset contract (`C...`).
|
|
270
321
|
*/
|
|
271
|
-
|
|
322
|
+
get_token_balance: ({token}: {token: string}, options?: MethodOptions) => Promise<AssembledTransaction<i128>>
|
|
272
323
|
|
|
273
324
|
/**
|
|
274
|
-
* Construct and simulate a
|
|
275
|
-
*
|
|
325
|
+
* Construct and simulate a get_leaf_ephemeral transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
326
|
+
* Ephemeral key (x, y) for a leaf index, if present.
|
|
276
327
|
*/
|
|
277
|
-
|
|
328
|
+
get_leaf_ephemeral: ({leaf_index}: {leaf_index: u32}, options?: MethodOptions) => Promise<AssembledTransaction<Option<EphemeralKeyCoords>>>
|
|
278
329
|
|
|
279
330
|
/**
|
|
280
|
-
* Construct and simulate a
|
|
281
|
-
*
|
|
331
|
+
* Construct and simulate a deprecate_zk_config transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
332
|
+
* Marks a registered ZK config as deprecated; subsequent `transact` calls referencing this
|
|
333
|
+
* `nonce` fail with [`Error::ZkConfigDeprecated`]. Admin-only.
|
|
282
334
|
*/
|
|
283
|
-
|
|
335
|
+
deprecate_zk_config: ({nonce}: {nonce: u64}, options?: MethodOptions) => Promise<AssembledTransaction<Result<void>>>
|
|
284
336
|
|
|
285
337
|
/**
|
|
286
|
-
* Construct and simulate a
|
|
287
|
-
* Returns true if the given nullifier hash has already been consumed (used in a withdrawal).
|
|
338
|
+
* Construct and simulate a require_kyt_passage transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
288
339
|
*/
|
|
289
|
-
|
|
340
|
+
require_kyt_passage: ({passage_id}: {passage_id: Buffer}, options?: MethodOptions) => Promise<AssembledTransaction<Result<void>>>
|
|
290
341
|
|
|
291
342
|
/**
|
|
292
|
-
* Construct and simulate a
|
|
293
|
-
*
|
|
294
|
-
* All-zero bytes are never accepted.
|
|
343
|
+
* Construct and simulate a get_commitment_count transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
344
|
+
* Gets the number of commitments (leaves) in the merkle tree
|
|
295
345
|
*/
|
|
296
|
-
|
|
346
|
+
get_commitment_count: (options?: MethodOptions) => Promise<AssembledTransaction<u32>>
|
|
297
347
|
|
|
298
348
|
/**
|
|
299
|
-
* Construct and simulate a
|
|
300
|
-
*
|
|
349
|
+
* Construct and simulate a get_pairwise_frontier transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
350
|
+
* Filled-subtree frontier after the last pairwise insert (reload on the next deposit).
|
|
301
351
|
*/
|
|
302
|
-
|
|
352
|
+
get_pairwise_frontier: (options?: MethodOptions) => Promise<AssembledTransaction<Array<Buffer>>>
|
|
303
353
|
|
|
304
354
|
/**
|
|
305
355
|
* Construct and simulate a get_public_slot_config transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
306
|
-
* `publicNInputs` / `publicNOutputs`
|
|
356
|
+
* `publicNInputs` / `publicNOutputs` for the nonce-`0` ("standard") ZK config.
|
|
357
|
+
* Panics with [`Error::ZkConfigNotFound`] when nonce `0` is unregistered. Prefer
|
|
358
|
+
* [`Self::get_zk_config`] for a specific nonce.
|
|
307
359
|
*/
|
|
308
360
|
get_public_slot_config: (options?: MethodOptions) => Promise<AssembledTransaction<readonly [u32, u32]>>
|
|
309
361
|
|
|
310
362
|
/**
|
|
311
|
-
* Construct and simulate a
|
|
312
|
-
*
|
|
363
|
+
* Construct and simulate a is_nulifier_hash_consumed transaction. Returns an `AssembledTransaction` object which will have a `result` field containing the result of the simulation. If this transaction changes contract state, you will need to call `signAndSend()` on the returned object.
|
|
364
|
+
* Returns true if the given nullifier hash has already been consumed (used in a withdrawal).
|
|
313
365
|
*/
|
|
314
|
-
|
|
366
|
+
is_nulifier_hash_consumed: ({hash}: {hash: Buffer}, options?: MethodOptions) => Promise<AssembledTransaction<boolean>>
|
|
315
367
|
|
|
316
368
|
}
|
|
317
369
|
export class Client extends ContractClient {
|
|
318
370
|
static async deploy<T = Client>(
|
|
319
371
|
/** Constructor/Initialization Args for the contract's `__constructor` method */
|
|
320
|
-
{tree_depth,
|
|
372
|
+
{tree_depth, admin}: {tree_depth: u32, admin: string},
|
|
321
373
|
/** Options for initializing a Client as well as for calling a method, with extras specific to deploying. */
|
|
322
374
|
options: MethodOptions &
|
|
323
375
|
Omit<ContractClientOptions, "contractId"> & {
|
|
@@ -329,71 +381,75 @@ export class Client extends ContractClient {
|
|
|
329
381
|
format?: "hex" | "base64";
|
|
330
382
|
}
|
|
331
383
|
): Promise<AssembledTransaction<T>> {
|
|
332
|
-
return ContractClient.deploy({tree_depth,
|
|
384
|
+
return ContractClient.deploy({tree_depth, admin}, options)
|
|
333
385
|
}
|
|
334
386
|
constructor(public readonly options: ContractClientOptions) {
|
|
335
387
|
super(
|
|
336
|
-
new ContractSpec([ "
|
|
337
|
-
"
|
|
388
|
+
new ContractSpec([ "AAAABAAAAAAAAAAAAAAABUVycm9yAAAAAAAAFgAAAAAAAAANTnVsbGlmaWVyVXNlZAAAAAAAAAEAAAAAAAAAE0luc3VmZmljaWVudEJhbGFuY2UAAAAAAgAAAAAAAAAXUHJvb2ZWZXJpZmljYXRpb25GYWlsZWQAAAAAAwAAAAAAAAAJT25seUFkbWluAAAAAAAABAAAAAAAAAAOVHJlZUF0Q2FwYWNpdHkAAAAAAAUAAAAAAAAAF0Fzc29jaWF0aW9uUm9vdE1pc21hdGNoAAAAAAYAAAAAAAAAFEludmFsaWRQdWJsaWNTaWduYWxzAAAABwAAAAAAAAASSW52YWxpZFRva2VuQW1vdW50AAAAAAAIAAAAPFByb29mIGBzdGF0ZV9yb290YCBpcyBub3QgaW4gdGhlIHJlY2VudCByb290IGhpc3Rvcnkgd2luZG93LgAAAAtVbmtub3duUm9vdAAAAAAJAAAAXkV4YWN0bHkgb25lIG91dHB1dCBjb21taXRtZW50IGlzIG5vbi16ZXJvOyBvbmx5IHplcm8vemVybyBvciB0d28gbm9uLXplcm8gb3V0cHV0cyBhcmUgYWxsb3dlZC4AAAAAABVJbnZhbGlkQ29tbWl0bWVudFBhaXIAAAAAAAAKAAAAXVN0b3JlZCBNZXJrbGUgZnJvbnRpZXIgbGVuZ3RoIGRvZXMgbm90IG1hdGNoIHRyZWUgZGVwdGggKGNvcnJ1cHQgb3Igb3V0ZGF0ZWQgc3RvcmFnZSBsYXlvdXQpLgAAAAAAABVJbnZhbGlkTWVya2xlRnJvbnRpZXIAAAAAAAALAAAASUtZVCBwYXNzYWdlIHJlZ2lzdHJ5IGlzIG5vdCBjb25maWd1cmVkIChyZXF1aXJlZCBmb3IgdGhlIGN1cnJlbnQgbGF5b3V0KS4AAAAAAAASS3l0UmVnaXN0cnlNaXNzaW5nAAAAAAAMAAAATlJlc2VydmVkIChIMSk6IG9uLWNoYWluIGFwcGxpY2F0aW9uIGF1ZGl0LWtleSBhbGxvd2xpc3QgcmVtb3ZlZC4gRG8gbm90IHJldXNlLgAAAAAAFVVua25vd25BdWRpdFB1YmxpY0tleQAAAAAAAA0AAABOUmVzZXJ2ZWQgKEgxKTogb24tY2hhaW4gYXBwbGljYXRpb24gYXVkaXQta2V5IGFsbG93bGlzdCByZW1vdmVkLiBEbyBub3QgcmV1c2UuAAAAAAAVSW52YWxpZEF1ZGl0UHVibGljS2V5AAAAAAAADgAAADRObyBgWmtDb25maWdgIGlzIHJlZ2lzdGVyZWQgZm9yIHRoZSByZXF1ZXN0ZWQgbm9uY2UuAAAAEFprQ29uZmlnTm90Rm91bmQAAAAPAAAASFRoZSBgWmtDb25maWdgIGZvciB0aGUgcmVxdWVzdGVkIG5vbmNlIGhhcyBiZWVuIGRlcHJlY2F0ZWQgYnkgdGhlIGFkbWluLgAAABJaa0NvbmZpZ0RlcHJlY2F0ZWQAAAAAABAAAABPYGFkZF96a19jb25maWdgIHdhcyBjYWxsZWQgd2l0aCBhIGBub25jZWAgdGhhdCBhbHJlYWR5IGhhcyBhIGNvbmZpZyByZWdpc3RlcmVkLgAAAAAVWmtDb25maWdBbHJlYWR5RXhpc3RzAAAAAAAAEQAAAOdgYWRkX3prX2NvbmZpZ2Agc2hhcGUgcGFyYW1ldGVycyBhcmUgaW5jb25zaXN0ZW50IChvZGQgYG5fb3V0c2AsIGluc3VmZmljaWVudApgbl9hdWRpdF9zbG90c2AsIGFuIGBhdWRpdF9vZmZzZXRgL2BvdXRwdXRfbm90ZV9vZmZzZXRgIHRoYXQgZG9lc24ndCBtYXRjaCB0aGUKZm9ybXVsYS1kZXJpdmVkIHZhbHVlLCBvciBhIFZLIHdob3NlIGBpY2AgbGVuZ3RoIGRvZXNuJ3QgbWF0Y2ggdGhlIHNoYXBlKS4AAAAAD0ludmFsaWRaa0NvbmZpZwAAAAASAAAAPmBfX2NvbnN0cnVjdG9yYCB3YXMgY2FsbGVkIHdpdGggYHRyZWVfZGVwdGggPiBNQVhfVFJFRV9ERVBUSGAuAAAAAAAQSW52YWxpZFRyZWVEZXB0aAAAABMAAABTRHVwbGljYXRlIG51bGxpZmllciBoYXNoZXMgYXBwZWFyIGluIGEgc2luZ2xlIGB0cmFuc2FjdGAgcHVibGljLXNpZ25hbCB2ZWN0b3IgKEMzKS4AAAAAEkR1cGxpY2F0ZU51bGxpZmllcgAAAAAAFAAAAEhDYWxsZGF0YSBlc2Nyb3cgcmVjaXBpZW50IGRvZXMgbm90IG1hdGNoIHRoZSBwdWJsaWMtc2lnbmFsIGVzY3JvdyBsaW1icy4AAAAXRXNjcm93UmVjaXBpZW50TWlzbWF0Y2gAAAAAFQAAAFdBIHN3ZWVwIChub24temVybyBwdWJsaWMgZXNjcm93IHJlY2lwaWVudCkgcmVxdWlyZXMgYSByZWdpc3RyeSByZWNvcmQgZm9yIHRoYXQgYWNjb3VudC4AAAAAIFN3ZWVwUmVxdWlyZXNSZWdpc3RlcmVkUmVjaXBpZW50AAAAFg==",
|
|
389
|
+
"AAAAAQAAAQJBZG1pbi1tYW5hZ2VkLCBub25jZS1rZXllZCBaSyBjaXJjdWl0IGNvbmZpZ3VyYXRpb246IHZlcmlmaWNhdGlvbiBrZXkgcGx1cyBldmVyeSBkeW5hbWljCnNoYXBlIHBhcmFtZXRlciBvZiB0aGUgYFRyYW5zYWN0aW9uKC4uLilgIGNpcmN1aXQgaW5zdGFudGlhdGlvbiB1c2VkIHRvIHZlcmlmeSBhIGB0cmFuc2FjdGAKY2FsbCBmb3IgdGhhdCBub25jZSAoc2VlIGBjaXJjdWl0cy9tYWluLmNpcmNvbWAgLyBgbGlicy96azo6WmtMYXlvdXRQYXJhbXNgKS4AAAAAAAAAAAAIWmtDb25maWcAAAALAAAAAAAAAAxhdWRpdF9vZmZzZXQAAAAEAAAAAAAAAApkZXByZWNhdGVkAAAAAAABAAAAAAAAAA1uX2F1ZGl0X3Nsb3RzAAAAAAAABAAAAAAAAAAFbl9pbnMAAAAAAAAEAAAAAAAAAAZuX291dHMAAAAAAAQAAAAAAAAADm5vdGVfYXVkaXRfbGVuAAAAAAAEAAAAAAAAAA9ub3RlX291dHB1dF9sZW4AAAAABAAAAAAAAAASb3V0cHV0X25vdGVfb2Zmc2V0AAAAAAAEAAAAAAAAAA9wdWJsaWNfbl9pbnB1dHMAAAAABAAAAAAAAAAQcHVibGljX25fb3V0cHV0cwAAAAQAAAAAAAAACHZrX2J5dGVzAAAADg==",
|
|
338
390
|
"AAAAAgAAAFRTdG9yYWdlIGtleSBmb3IgdHJlZSBsZWF2ZXMg4oCUIGVhY2ggbGVhZiBzdG9yZWQgYnkgaW5kZXggZm9yIE8oMSkgd3JpdGUgb24gZGVwb3NpdC4AAAAAAAAAC1RyZWVEYXRhS2V5AAAAAAQAAAABAAAAAAAAAARMZWFmAAAAAQAAAAQAAAAAAAAAAAAAAAlMZWFmQ291bnQAAAAAAAABAAAAVEVwaGVtZXJhbCBwdWJsaWMga2V5IChFQ0RIIHBvaW50IHgsIHkpIHN0b3JlZCBwZXIgbGVhZjsgbm90IHBhcnQgb2YgdGhlIE1lcmtsZSBoYXNoLgAAAA1MZWFmRXBoZW1lcmFsAAAAAAAAAQAAAAQAAAAAAAAAXlJpZ2h0LXNwaW5lIC8gZmlsbGVkLXN1YnRyZWUgZnJvbnRpZXIgYWZ0ZXIgdGhlIGxhc3QgYGluc2VydF90d29gIChsZW5ndGggYG1lcmtsZV9kZXB0aCAtIDFgKS4AAAAAABBQYWlyd2lzZUZyb250aWVy",
|
|
339
|
-
"
|
|
391
|
+
"AAAAAgAAAD9QZXJzaXN0ZW50IHN0b3JhZ2Uga2V5IGZvciB0aGUgcGVyLW5vbmNlIFtgWmtDb25maWdgXSByZWdpc3RyeS4AAAAAAAAAAAtaa0NvbmZpZ0tleQAAAAABAAAAAQAAAAAAAAAGQ29uZmlnAAAAAAABAAAABg==",
|
|
392
|
+
"AAAABQAAADJFbWl0dGVkIGJ5IFtgUHJpdmFjeVBvb2xzQ29udHJhY3Q6OnNldF9yZWdpc3RyeWBdLgAAAAAAAAAAAAtSZWdpc3RyeVNldAAAAAACAAAABWFkbWluAAAAAAAADHJlZ2lzdHJ5X3NldAAAAAEAAAAAAAAACHJlZ2lzdHJ5AAAAEwAAAAAAAAAA",
|
|
393
|
+
"AAAABQAAADNFbWl0dGVkIGJ5IFtgUHJpdmFjeVBvb2xzQ29udHJhY3Q6OmFkZF96a19jb25maWdgXS4AAAAAAAAAAA1aa0NvbmZpZ0FkZGVkAAAAAAAAAgAAAAVhZG1pbgAAAAAAAA96a19jb25maWdfYWRkZWQAAAAAAQAAAAAAAAAFbm9uY2UAAAAAAAAGAAAAAQAAAAA=",
|
|
340
394
|
"AAAAAgAAAFRSaW5nIGJ1ZmZlciBvZiBoaXN0b3JpY2FsIE1lcmtsZSByb290cyAoZm9yIHByb29mcyBnZW5lcmF0ZWQgYWdhaW5zdCByZWNlbnQgc3RhdGVzKS4AAAAAAAAADlJvb3RIaXN0b3J5S2V5AAAAAAACAAAAAAAAACpOZXdlc3Qgcm9vdCBzbG90IGluZGV4IGluIHRoZSByaW5nIGJ1ZmZlci4AAAAAABBDdXJyZW50Um9vdEluZGV4AAAAAQAAAC5Sb290IHZhbHVlIGF0IHNsb3QgYGlgICgwLi5ST09UX0hJU1RPUllfU0laRSkuAAAAAAAEUm9vdAAAAAEAAAAE",
|
|
341
|
-
"
|
|
395
|
+
"AAAABQAAADZFbWl0dGVkIGJ5IFtgUHJpdmFjeVBvb2xzQ29udHJhY3Q6OnNldF9reXRfcmVnaXN0cnlgXS4AAAAAAAAAAAAOS3l0UmVnaXN0cnlTZXQAAAAAAAIAAAAFYWRtaW4AAAAAAAAQa3l0X3JlZ2lzdHJ5X3NldAAAAAEAAAAAAAAACHJlZ2lzdHJ5AAAAEwAAAAAAAAAA",
|
|
396
|
+
"AAAAAgAAAFJTdG9yYWdlIGtleSBmb3IgbnVsbGlmaWVycyDigJQgZWFjaCBudWxsaWZpZXIgaGFzaCBtYXBzIHRvIGJvb2wgKGNvbnN1bWVkIG9yIG5vdCkuAAAAAAAAAAAAD051bGlmaWVyRGF0YUtleQAAAAABAAAAAQAAAAAAAAAITnVsaWZpZXIAAAABAAAD7gAAACA=",
|
|
397
|
+
"AAAAAQAAAERFcGhlbWVyYWwgQmFieUp1Ykp1YiAvIEVDREggcG9pbnQgKG5vdCBoYXNoZWQgaW50byB0aGUgTWVya2xlIHRyZWUpLgAAAAAAAAASRXBoZW1lcmFsS2V5Q29vcmRzAAAAAAACAAAAAAAAAAF4AAAAAAAD7gAAACAAAAAAAAAAAXkAAAAAAAPuAAAAIA==",
|
|
398
|
+
"AAAABQAAALdPbmUgZXZlbnQgcGVyIGF1ZGl0IHNsb3QgKGAwLi5uX2F1ZGl0X3Nsb3RzYCkgaW4gYSBgdHJhbnNhY3RgIGNhbGwncyBwdWJsaWMgc2lnbmFscyDigJQgbGV0cwpvZmYtY2hhaW4gc2Nhbm5lcnMgcmVjb3ZlciBhdWRpdG9yIGNpcGhlcnRleHRzIGZyb20gZXZlbnRzIGluc3RlYWQgb2YgcmUtcGFyc2luZyBjYWxsZGF0YS4AAAAAAAAAABJBdWRpdFNsb3RFbmNyeXB0ZWQAAAAAAAIAAAAFYXVkaXQAAAAAAAAKYXVkaXRfc2xvdAAAAAAAAgAAAAAAAAAKc2xvdF9pbmRleAAAAAAABAAAAAEAAAAAAAAAB3BheWxvYWQAAAAH0AAAABVBdWRpdFNsb3RFdmVudFBheWxvYWQAAAAAAAAAAAAAAA==",
|
|
342
399
|
"AAAABQAAAAAAAAAAAAAAEkt5dFBhc3NhZ2VUcmFuc2FjdAAAAAAAAgAAAAVhdWRpdAAAAAAAAAtreXRfcGFzc2FnZQAAAAACAAAAAAAAAApwYXNzYWdlX2lkAAAAAAPuAAAAIAAAAAEAAAAAAAAAEnB1YmxpY19zaWduYWxfaGFzaAAAAAAD7gAAACAAAAAAAAAAAA==",
|
|
343
|
-
"
|
|
400
|
+
"AAAABQAAADlFbWl0dGVkIGJ5IFtgUHJpdmFjeVBvb2xzQ29udHJhY3Q6OmRlcHJlY2F0ZV96a19jb25maWdgXS4AAAAAAAAAAAAAElprQ29uZmlnRGVwcmVjYXRlZAAAAAAAAgAAAAVhZG1pbgAAAAAAABR6a19jb25maWdfZGVwcmVjYXRlZAAAAAEAAAAAAAAABW5vbmNlAAAAAAAABgAAAAEAAAAA",
|
|
344
401
|
"AAAABQAAAAAAAAAAAAAAE091dHB1dE5vdGVFbmNyeXB0ZWQAAAAAAgAAAAVhdWRpdAAAAAAAAAtvdXRwdXRfbm90ZQAAAAACAAAAAAAAAA9jb21taXRtZW50X2hhc2gAAAAD7gAAACAAAAABAAAAAAAAAAdwYXlsb2FkAAAAB9AAAAAWT3V0cHV0Tm90ZUV2ZW50UGF5bG9hZAAAAAAAAAAAAAA=",
|
|
345
|
-
"
|
|
346
|
-
"
|
|
347
|
-
"
|
|
348
|
-
"
|
|
349
|
-
"AAAAAAAAAAAAAAATcmVxdWlyZV9reXRfcGFzc2FnZQAAAAABAAAAAAAAAApwYXNzYWdlX2lkAAAAAAPuAAAAIAAAAAEAAAPpAAAAAgAAAAM=",
|
|
350
|
-
"AAAAAAAAAAAAAAARc2V0X2FwcF9hdWRpdF9rZXkAAAAAAAAFAAAAAAAAAAVhZG1pbgAAAAAAABMAAAAAAAAADmFwcGxpY2F0aW9uX2lkAAAAAAPuAAAAIAAAAAAAAAASYXVkaXRfcHVibGljX2tleV94AAAAAAPuAAAAIAAAAAAAAAASYXVkaXRfcHVibGljX2tleV95AAAAAAPuAAAAIAAAAAAAAAAHZW5hYmxlZAAAAAABAAAAAA==",
|
|
351
|
-
"AAAAAAAAAAAAAAATZ2V0X2FwcF9hdWRpdF9zdGF0ZQAAAAABAAAAAAAAAA5hcHBsaWNhdGlvbl9pZAAAAAAD7gAAACAAAAABAAAD6AAAB9AAAAANQXBwQXVkaXRTdGF0ZQAAAA==",
|
|
352
|
-
"AAAAAAAAAAAAAAAMc2V0X3JlZ2lzdHJ5AAAAAgAAAAAAAAAFYWRtaW4AAAAAAAATAAAAAAAAAAhyZWdpc3RyeQAAABMAAAAA",
|
|
402
|
+
"AAAAAQAAAAAAAAAAAAAAFUF1ZGl0U2xvdEV2ZW50UGF5bG9hZAAAAAAAAAQAAAAAAAAACmNpcGhlcnRleHQAAAAAAA4AAAAAAAAAC2VwaGVtZXJhbF94AAAAA+4AAAAgAAAAAAAAAAtlcGhlbWVyYWxfeQAAAAPuAAAAIAAAAAAAAAADdGFnAAAAA+4AAAAg",
|
|
403
|
+
"AAAAAAAABABTaW5nbGUgZW50cnlwb2ludDogdmVyaWZpZXMgYGNpcmN1aXRzL21haW4uY2lyY29tYCBHcm90aDE2IHByb29mIGFuZCBwdWJsaWMgc2lnbmFscywgY2hlY2tzCnRyZWUgcm9vdCBhbmQgbnVsbGlmaWVycywgYXBwZW5kcyBuZXcgb3V0cHV0IGNvbW1pdG1lbnRzICh3aXRoIGVwaGVtZXJhbCBrZXlzLCBub3QgaW4gTWVya2xlKSwKdGhlbiBhcHBsaWVzIHB1YmxpYyB0b2tlbiBkZXBvc2l0cyAvIHdpdGhkcmF3YWxzOiBgcHVibGljRGVwb3NpdGVkQXNzZXRzYCArIGBwdWJsaWNEZXBvc2l0c2AKcHVsbCBmcm9tIGBmcm9tYCwgYW5kIGBwdWJsaWNXaXRoZHJhd25Bc3NldHNgICsgYHB1YmxpY1dpdGhkcmF3YWxzYCBzZW5kIHRvIHRoZSBTdGVsbGFyCmFjY291bnQgZnJvbSBgd2l0aGRyYXdBZGRyZXNzSGlgIC8gYHdpdGhkcmF3QWRkcmVzc0xvYC4KClRoZSBwcm9vZi1ib3VuZCBlc2Nyb3cgcmVjaXBpZW50IHJlY29uc3RydWN0ZWQgZnJvbSBwdWJsaWMgc2lnbmFscyBpcyB0aGUgb25seQphdXRob3JpemF0aW9uIHN1YmplY3QuIEJvdGggbGltYnMgemVybyBtZWFucyBhIG5vbi1zd2VlcDogYm90aCBzd2VlcCBvdXRwdXQgb3duZXIKY29vcmRpbmF0ZXMgbXVzdCBhbHNvIGJlIHplcm8uIEEgbm9uemVybyBwYWlyIGlzIGEgc3dlZXA6IHRoYXQgYWNjb3VudCBtdXN0CmByZXF1aXJlX2F1dGgoKWAgKGhvc3QgYWNjb3VudCBjcmVkZW50aWFscywgc28gbXVsdGlzaWcgYW5kIHJvdGF0ZWQgc2lnbmVycyB3b3JrOyBhCnJldm9rZWQga2V5IGNhbm5vdCksIG11c3QgYWxyZWFkeSBoYXZlIGEgcHJpdmF0ZSBhZGRyZXNzIGluIHRoZSByZWdpc3RyeSwgYW5kIGJvdGgKc3dlZXAgb3V0cHV0IG93bmVyIGNvb3JkaW5hdGVzIG11c3QgZXF1YWwgdGhhdCByZWdpc3RyeSBrZXkuCgpBc3NldCBpZHM6IFN0ZWxsYXIgKipjb250cmFjdCoqIHRva2VuIGBDLi4uYCBhZGRyZXNzZXMgZW5jb2RlZCBhcyB0d28gZmllbGQgZWxlbWVudHMgKHNhbWUgMzItYnl0ZQpzcGxpdCBhcyBhY2NvdW50IGtleXMg4oCUIHNlZSBgY2lyAAAACHRyYW5zYWN0AAAABgAAAAAAAAAEZnJvbQAAABMAAAAAAAAABW5vbmNlAAAAAAAABgAAAAAAAAALcHJvb2ZfYnl0ZXMAAAAADgAAAAAAAAARcHViX3NpZ25hbHNfYnl0ZXMAAAAAAAAOAAAAAAAAABBjaXBoZXJ0ZXh0X2J5dGVzAAAADgAAAAAAAAARa3l0X2F1dGhvcml6YXRpb24AAAAAAAPoAAAH0AAAABdLeXRQYXNzYWdlQXV0aG9yaXphdGlvbgAAAAABAAAD6QAAAAIAAAAD",
|
|
404
|
+
"AAAAAQAAAAAAAAAAAAAAFk91dHB1dE5vdGVFdmVudFBheWxvYWQAAAAAAAUAAAAAAAAACmNpcGhlcnRleHQAAAAAAA4AAAAAAAAAC2VwaGVtZXJhbF94AAAAA+4AAAAgAAAAAAAAAAtlcGhlbWVyYWxfeQAAAAPuAAAAIAAAAAAAAAAMb3V0cHV0X2luZGV4AAAABAAAAAAAAAADdGFnAAAAA+4AAAAg",
|
|
405
|
+
"AAAAAAAAAC5HZXRzIHRoZSBhZG1pbiBhZGRyZXNzICh0aGUgY29udHJhY3QgZGVwbG95ZXIpAAAAAAAJZ2V0X2FkbWluAAAAAAAAAAAAAAEAAAAT",
|
|
353
406
|
"AAAAAAAAAAAAAAAMZ2V0X3JlZ2lzdHJ5AAAAAAAAAAEAAAPoAAAAEw==",
|
|
407
|
+
"AAAAAAAAAAAAAAAMc2V0X3JlZ2lzdHJ5AAAAAQAAAAAAAAAIcmVnaXN0cnkAAAATAAAAAA==",
|
|
408
|
+
"AAAAAAAAAAAAAAANX19jb25zdHJ1Y3RvcgAAAAAAAAIAAAAAAAAACnRyZWVfZGVwdGgAAAAAAAQAAAAAAAAABWFkbWluAAAAAAAAEwAAAAA=",
|
|
409
|
+
"AAAAAAAAAZpSZWdpc3RlcnMgYSBuZXcgcGVyLW5vbmNlIFpLIGNpcmN1aXQgY29uZmlndXJhdGlvbiAoVksgKyBmdWxsIGNpcmN1aXQgc2hhcGUpLiBBZG1pbi1vbmx5OwpmYWlscyBpZiBgbm9uY2VgIGFscmVhZHkgaGFzIGEgY29uZmlnLiBWYWxpZGF0ZXMgYG5fb3V0c2AgaXMgZXZlbiAobGVhdmVzIGFyZSBpbnNlcnRlZApwYWlyd2lzZSB2aWEgYFBhaXJ3aXNlTGVhbklNVDo6aW5zZXJ0X3R3b2ApLCBgbl9hdWRpdF9zbG90cyA+PSBuX2lucyArIG5fb3V0c2AsIHRoYXQKYGF1ZGl0X29mZnNldGAvYG91dHB1dF9ub3RlX29mZnNldGAgbWF0Y2ggdGhlIGZvcm11bGEtZGVyaXZlZCBsYXlvdXQsIGFuZCB0aGF0IHRoZSBWSydzCmBpY2AgbGVuZ3RoIG1hdGNoZXMgdGhlIHJlc3VsdGluZyB0b3RhbCBwdWJsaWMtc2lnbmFsIGNvdW50LgAAAAAADWFkZF96a19jb25maWcAAAAAAAALAAAAAAAAAAVub25jZQAAAAAAAAYAAAAAAAAACHZrX2J5dGVzAAAADgAAAAAAAAAFbl9pbnMAAAAAAAAEAAAAAAAAAAZuX291dHMAAAAAAAQAAAAAAAAAD3B1YmxpY19uX2lucHV0cwAAAAAEAAAAAAAAABBwdWJsaWNfbl9vdXRwdXRzAAAABAAAAAAAAAANbl9hdWRpdF9zbG90cwAAAAAAAAQAAAAAAAAADm5vdGVfYXVkaXRfbGVuAAAAAAAEAAAAAAAAAAxhdWRpdF9vZmZzZXQAAAAEAAAAAAAAAA9ub3RlX291dHB1dF9sZW4AAAAABAAAAAAAAAASb3V0cHV0X25vdGVfb2Zmc2V0AAAAAAAEAAAAAQAAA+kAAAACAAAAAw==",
|
|
410
|
+
"AAAAAAAAAFFSZWFkcyBhIHJlZ2lzdGVyZWQgWksgY29uZmlnIChleHRlbmRpbmcgaXRzIHBlcnNpc3RlbnQgVFRMKSwgb3IgYE5vbmVgIGlmIGFic2VudC4AAAAAAAANZ2V0X3prX2NvbmZpZwAAAAAAAAEAAAAAAAAABW5vbmNlAAAAAAAABgAAAAEAAAPoAAAH0AAAAAhaa0NvbmZpZw==",
|
|
411
|
+
"AAAAAAAAAGtSZXR1cm5zIHRydWUgaWYgYHJvb3RgIGFwcGVhcnMgaW4gdGhlIHJlY2VudCByb290IGhpc3RvcnkgKHJpbmcgYnVmZmVyKS4KQWxsLXplcm8gYnl0ZXMgYXJlIG5ldmVyIGFjY2VwdGVkLgAAAAANaXNfa25vd25fcm9vdAAAAAAAAAEAAAAAAAAABHJvb3QAAAPuAAAAIAAAAAEAAAAB",
|
|
412
|
+
"AAAAAAAAA2NHZXRzIGFsbCBjb21taXRtZW50cyAobGVhdmVzKSBpbiB0aGUgbWVya2xlIHRyZWUuIFJlYWQtb25seSB2aWV3IGhlbHBlciAobm90IGNhbGxlZCBmcm9tCmB0cmFuc2FjdGAvYGFkZF96a19jb25maWdgIG9yIGFueSBvdGhlciBzdGF0ZS1tdXRhdGluZyBlbnRyeXBvaW50KSBpbnRlbmRlZCBmb3Igb2ZmLWNoYWluCnNpbXVsYXRpb24vcXVlcmllczsgaXRzIGNvc3Qgc2NhbGVzIHdpdGggYGNvdW50YCwgd2hpY2ggZ3Jvd3Mgd2l0aCByZWFsIHBvb2wgdXNhZ2UgcmF0aGVyCnRoYW4gd2l0aCBhIHNpbmdsZSBjYWxsZXItY29udHJvbGxlZCBpbnB1dCwgc28gaXQgZG9lcyBub3QgbGV0IG9uZSB0cmFuc2FjdGlvbiBjb25zdW1lIGEKZGlzcHJvcG9ydGlvbmF0ZSBzaGFyZSBvZiBhIGJsb2NrJ3MgcmVzb3VyY2VzIHRoZSB3YXkgYW4gYWRtaW4vdXNlci1jb250cm9sbGVkIHNoYXBlCnBhcmFtZXRlciB3b3VsZC4gQWNrbm93bGVkZ2VkIGBkb3MtdW5ib3VuZGVkLW9wZXJhdGlvbmAgZmluZGluZy4KCmBsZWF2ZXNgIGlzIGEgbG9jYWwgaW4tbWVtb3J5IGBWZWNgIChgdmVjIVsmZW52XWApLCBub3QgcGVyc2lzdGVudCBjb250cmFjdCBzdG9yYWdlLCBzbwp0aGVyZSBpcyBubyBzdG9yYWdlLXNpZGUgYWNjZXNzLWNvbnRyb2wgY29uY2VybiBpbiB0aGUgYHB1c2hfYmFja2AgYmVsb3cgZWl0aGVyOwphY2tub3dsZWRnZWQgYGRvcy11bmV4cGVjdGVkLXJldmVydC13aXRoLXN0b3JhZ2VgIGZhbHNlIHBvc2l0aXZlLiBCb3RoIGFja25vd2xlZGdtZW50cyBhcmUKZnVuY3Rpb24tbGV2ZWwgYmVjYXVzZSBuZWl0aGVyIGRldGVjdG9yIHJlc3BlY3RzIGEgYCNbYWxsb3ddYCBwbGFjZWQgb24gdGhlIGxvb3Avc3RhdGVtZW50Cml0c2VsZi4AAAAAD2dldF9jb21taXRtZW50cwAAAAAAAAAAAQAAA+oAAAPuAAAAIA==",
|
|
354
413
|
"AAAAAAAAADRHZXRzIHRoZSBjdXJyZW50IG1lcmtsZSByb290IG9mIHRoZSBjb21taXRtZW50IHRyZWUuAAAAD2dldF9tZXJrbGVfcm9vdAAAAAAAAAAAAQAAA+4AAAAg",
|
|
414
|
+
"AAAAAAAAAAAAAAAQZ2V0X2t5dF9yZWdpc3RyeQAAAAAAAAABAAAD6AAAABM=",
|
|
355
415
|
"AAAAAAAAAClHZXRzIHRoZSBjdXJyZW50IGRlcHRoIG9mIHRoZSBtZXJrbGUgdHJlZQAAAAAAABBnZXRfbWVya2xlX2RlcHRoAAAAAAAAAAEAAAAE",
|
|
356
|
-
"
|
|
416
|
+
"AAAAAAAAAAAAAAAQc2V0X2t5dF9yZWdpc3RyeQAAAAEAAAAAAAAADGt5dF9yZWdpc3RyeQAAABMAAAAA",
|
|
417
|
+
"AAAAAAAAAEpUb2tlbiBiYWxhbmNlIGhlbGQgYnkgdGhpcyBjb250cmFjdCBmb3IgYSBTdGVsbGFyIGFzc2V0IGNvbnRyYWN0IChgQy4uLmApLgAAAAAAEWdldF90b2tlbl9iYWxhbmNlAAAAAAAAAQAAAAAAAAAFdG9rZW4AAAAAAAATAAAAAQAAAAs=",
|
|
357
418
|
"AAAAAAAAADJFcGhlbWVyYWwga2V5ICh4LCB5KSBmb3IgYSBsZWFmIGluZGV4LCBpZiBwcmVzZW50LgAAAAAAEmdldF9sZWFmX2VwaGVtZXJhbAAAAAAAAQAAAAAAAAAKbGVhZl9pbmRleAAAAAAABAAAAAEAAAPoAAAH0AAAABJFcGhlbWVyYWxLZXlDb29yZHMAAA==",
|
|
419
|
+
"AAAAAAAAAJVNYXJrcyBhIHJlZ2lzdGVyZWQgWksgY29uZmlnIGFzIGRlcHJlY2F0ZWQ7IHN1YnNlcXVlbnQgYHRyYW5zYWN0YCBjYWxscyByZWZlcmVuY2luZyB0aGlzCmBub25jZWAgZmFpbCB3aXRoIFtgRXJyb3I6OlprQ29uZmlnRGVwcmVjYXRlZGBdLiBBZG1pbi1vbmx5LgAAAAAAABNkZXByZWNhdGVfemtfY29uZmlnAAAAAAEAAAAAAAAABW5vbmNlAAAAAAAABgAAAAEAAAPpAAAAAgAAAAM=",
|
|
420
|
+
"AAAAAAAAAAAAAAATcmVxdWlyZV9reXRfcGFzc2FnZQAAAAABAAAAAAAAAApwYXNzYWdlX2lkAAAAAAPuAAAAIAAAAAEAAAPpAAAAAgAAAAM=",
|
|
421
|
+
"AAAAAAAAADpHZXRzIHRoZSBudW1iZXIgb2YgY29tbWl0bWVudHMgKGxlYXZlcykgaW4gdGhlIG1lcmtsZSB0cmVlAAAAAAAUZ2V0X2NvbW1pdG1lbnRfY291bnQAAAAAAAAAAQAAAAQ=",
|
|
358
422
|
"AAAAAAAAAFRGaWxsZWQtc3VidHJlZSBmcm9udGllciBhZnRlciB0aGUgbGFzdCBwYWlyd2lzZSBpbnNlcnQgKHJlbG9hZCBvbiB0aGUgbmV4dCBkZXBvc2l0KS4AAAAVZ2V0X3BhaXJ3aXNlX2Zyb250aWVyAAAAAAAAAAAAAAEAAAPqAAAD7gAAACA=",
|
|
359
|
-
"
|
|
423
|
+
"AAAAAAAAAMlgcHVibGljTklucHV0c2AgLyBgcHVibGljTk91dHB1dHNgIGZvciB0aGUgbm9uY2UtYDBgICgic3RhbmRhcmQiKSBaSyBjb25maWcuClBhbmljcyB3aXRoIFtgRXJyb3I6OlprQ29uZmlnTm90Rm91bmRgXSB3aGVuIG5vbmNlIGAwYCBpcyB1bnJlZ2lzdGVyZWQuIFByZWZlcgpbYFNlbGY6OmdldF96a19jb25maWdgXSBmb3IgYSBzcGVjaWZpYyBub25jZS4AAAAAAAAWZ2V0X3B1YmxpY19zbG90X2NvbmZpZwAAAAAAAAAAAAEAAAPtAAAAAgAAAAQAAAAE",
|
|
360
424
|
"AAAAAAAAAFpSZXR1cm5zIHRydWUgaWYgdGhlIGdpdmVuIG51bGxpZmllciBoYXNoIGhhcyBhbHJlYWR5IGJlZW4gY29uc3VtZWQgKHVzZWQgaW4gYSB3aXRoZHJhd2FsKS4AAAAAABlpc19udWxpZmllcl9oYXNoX2NvbnN1bWVkAAAAAAAAAQAAAAAAAAAEaGFzaAAAA+4AAAAgAAAAAQAAAAE=",
|
|
361
|
-
"
|
|
362
|
-
"AAAAAAAAAEpUb2tlbiBiYWxhbmNlIGhlbGQgYnkgdGhpcyBjb250cmFjdCBmb3IgYSBTdGVsbGFyIGFzc2V0IGNvbnRyYWN0IChgQy4uLmApLgAAAAAAEWdldF90b2tlbl9iYWxhbmNlAAAAAAAAAQAAAAAAAAAFdG9rZW4AAAAAAAATAAAAAQAAAAs=",
|
|
363
|
-
"AAAAAAAAAGJgcHVibGljTklucHV0c2AgLyBgcHVibGljTk91dHB1dHNgIGNvbmZpZ3VyZWQgYXQgZGVwbG95IChtdXN0IG1hdGNoIHRoZSB2ZXJpZmljYXRpb24ga2V5IGNpcmN1aXQpLgAAAAAAFmdldF9wdWJsaWNfc2xvdF9jb25maWcAAAAAAAAAAAABAAAD7QAAAAIAAAAEAAAABA==",
|
|
364
|
-
"AAAAAAAAAC5HZXRzIHRoZSBhZG1pbiBhZGRyZXNzICh0aGUgY29udHJhY3QgZGVwbG95ZXIpAAAAAAAJZ2V0X2FkbWluAAAAAAAAAAAAAAEAAAAT",
|
|
365
|
-
"AAAABAAAAAAAAAAAAAAADEdyb3RoMTZFcnJvcgAAAAEAAAAAAAAAFU1hbGZvcm1lZFZlcmlmeWluZ0tleQAAAAAAAAA=",
|
|
366
|
-
"AAAAAQAAAD5QbGFpbnRleHQgbm90ZSBmaWVsZHMgc3RvcmVkIGluIHJlZ2lzdHJ5IGZvciBvbmJvYXJkaW5nIGNsYWltLgAAAAAAAAAAAA1QbGFpbnRleHROb3RlAAAAAAAABgAAAAAAAAAIYXNzZXRfaGkAAAPuAAAAIAAAAAAAAAAIYXNzZXRfbG8AAAPuAAAAIAAAAFZNdXN0IHJlbWFpbiBgTm9uZWA7IHJlZ2lzdHJ5IHJlamVjdHMgcGF5bG9hZHMgdGhhdCBleHBvc2UgdGhlIHNlbmRlciBlcGhlbWVyYWwgc2NhbGFyLgAAAAAAGmRlcG9zaXRlZF9lcGhlbWVyYWxfc2NhbGFyAAAAAAPoAAAD7gAAACAAAAAAAAAACW51bGxpZmllcgAAAAAAA+4AAAAgAAAAAAAAAAZzZWNyZXQAAAAAA+4AAAAgAAAAAAAAAAV2YWx1ZQAAAAAAAAs=",
|
|
367
|
-
"AAAAAQAAAAAAAAAAAAAAElBlbmRpbmdOb3RlUGF5bG9hZAAAAAAAAQAAAAAAAAAFbm90ZXMAAAAAAAPqAAAH0AAAAA1QbGFpbnRleHROb3RlAAAA",
|
|
368
|
-
"AAAAAQAAAAAAAAAAAAAAGlByaXZhdGVBZGRyZXNzUmVnaXN0cmF0aW9uAAAAAAADAAAAAAAAAAVvd25lcgAAAAAAABMAAAAAAAAADHB1YmxpY19rZXlfeAAAA+4AAAAgAAAAAAAAAAxwdWJsaWNfa2V5X3kAAAPuAAAAIA==",
|
|
369
|
-
"AAAAAgAAAAAAAAAAAAAAIk9wdGlvbmFsUHJpdmF0ZUFkZHJlc3NSZWdpc3RyYXRpb24AAAAAAAIAAAAAAAAAAAAAAAROb25lAAAAAQAAAAAAAAAEU29tZQAAAAEAAAfQAAAAGlByaXZhdGVBZGRyZXNzUmVnaXN0cmF0aW9uAAA=",
|
|
370
|
-
"AAAAAQAAAAAAAAAAAAAAEU9uYm9hcmRpbmdQYXlsb2FkAAAAAAAABgAAAAAAAAAVZW5jcnlwdGVkX3ByaXZhdGVfa2V5AAAAAAAADgAAAAAAAAAFbm90ZXMAAAAAAAfQAAAAElBlbmRpbmdOb3RlUGF5bG9hZAAAAAAAAAAAAAVvd25lcgAAAAAAABMAAAAAAAAAHHByaXZhdGVfYWRkcmVzc19yZWdpc3RyYXRpb24AAAfQAAAAIk9wdGlvbmFsUHJpdmF0ZUFkZHJlc3NSZWdpc3RyYXRpb24AAAAAAAAAAAARdGVtcF9wdWJsaWNfa2V5X3gAAAAAAAPuAAAAIAAAAAAAAAARdGVtcF9wdWJsaWNfa2V5X3kAAAAAAAPuAAAAIA==",
|
|
425
|
+
"AAAAAQAAAAAAAAAAAAAAEEt5dFBhc3NhZ2VSZWNvcmQAAAACAAAAAAAAAAhjb25zdW1lZAAAAAEAAAAAAAAAEWV4cGlyZXNfYXRfbGVkZ2VyAAAAAAAABA==",
|
|
371
426
|
"AAAAAQAAAAAAAAAAAAAAFFByaXZhdGVBZGRyZXNzUmVjb3JkAAAABAAAAAAAAAAFb3duZXIAAAAAAAATAAAAAAAAAAxwdWJsaWNfa2V5X3gAAAPuAAAAIAAAAAAAAAAMcHVibGljX2tleV95AAAD7gAAACAAAAAAAAAAEXVwZGF0ZWRfYXRfbGVkZ2VyAAAAAAAABA==",
|
|
372
|
-
"
|
|
373
|
-
"
|
|
374
|
-
"
|
|
427
|
+
"AAAAAQAAAAAAAAAAAAAAF0t5dFBhc3NhZ2VBdXRob3JpemF0aW9uAAAAAAIAAAAAAAAAEWV4cGlyYXRpb25fbGVkZ2VyAAAAAAAABAAAAAAAAAAJc2lnbmF0dXJlAAAAAAAD7gAAAEA=",
|
|
428
|
+
"AAAAAQAAAAAAAAAAAAAAGlByaXZhdGVBZGRyZXNzUmVnaXN0cmF0aW9uAAAAAAADAAAAAAAAAAVvd25lcgAAAAAAABMAAAAAAAAADHB1YmxpY19rZXlfeAAAA+4AAAAgAAAAAAAAAAxwdWJsaWNfa2V5X3kAAAPuAAAAIA==",
|
|
429
|
+
"AAAABAAAAAAAAAAAAAAADEdyb3RoMTZFcnJvcgAAAAMAAAAAAAAAFU1hbGZvcm1lZFZlcmlmeWluZ0tleQAAAAAAAAAAAACcYFByb29mOjpmcm9tX2J5dGVzYCByZWNlaXZlZCBhIGBwcm9vZl9ieXRlc2AgYXJndW1lbnQgdGhhdCBpcyB0b28gc2hvcnQgKG9yIG90aGVyd2lzZQpmYWlscyB0byBwYXJzZSBhcyBgYSB8fCBiIHx8IGNgKSBmb3IgdGhlIGZpeGVkIEcxL0cyIGVuY29kaW5nIGxlbmd0aHMuAAAADk1hbGZvcm1lZFByb29mAAAAAAABAAAAo2BQdWJsaWNTaWduYWxzOjpmcm9tX2J5dGVzYCByZWNlaXZlZCBhIGxlbmd0aCBwcmVmaXggdGhhdCBkb2VzIG5vdCBtYXRjaCB0aGUgcmVtYWluaW5nCnBheWxvYWQgKHRvbyBzaG9ydCwgdHJ1bmNhdGVkIEZyIGxpbWJzLCBvciBhIGNsYWltZWQgbGVuZ3RoIHRoYXQgb3ZlcmZsb3dzKS4AAAAAFk1hbGZvcm1lZFB1YmxpY1NpZ25hbHMAAAAAAAI=" ]),
|
|
375
430
|
options
|
|
376
431
|
)
|
|
377
432
|
}
|
|
378
433
|
public readonly fromJSON = {
|
|
379
434
|
transact: this.txFromJSON<Result<void>>,
|
|
380
|
-
|
|
381
|
-
get_kyt_registry: this.txFromJSON<Option<string>>,
|
|
382
|
-
require_kyt_passage: this.txFromJSON<Result<void>>,
|
|
383
|
-
set_app_audit_key: this.txFromJSON<null>,
|
|
384
|
-
get_app_audit_state: this.txFromJSON<Option<AppAuditState>>,
|
|
385
|
-
set_registry: this.txFromJSON<null>,
|
|
435
|
+
get_admin: this.txFromJSON<string>,
|
|
386
436
|
get_registry: this.txFromJSON<Option<string>>,
|
|
437
|
+
set_registry: this.txFromJSON<null>,
|
|
438
|
+
add_zk_config: this.txFromJSON<Result<void>>,
|
|
439
|
+
get_zk_config: this.txFromJSON<Option<ZkConfig>>,
|
|
440
|
+
is_known_root: this.txFromJSON<boolean>,
|
|
441
|
+
get_commitments: this.txFromJSON<Array<Buffer>>,
|
|
387
442
|
get_merkle_root: this.txFromJSON<Buffer>,
|
|
443
|
+
get_kyt_registry: this.txFromJSON<Option<string>>,
|
|
388
444
|
get_merkle_depth: this.txFromJSON<u32>,
|
|
389
|
-
|
|
445
|
+
set_kyt_registry: this.txFromJSON<null>,
|
|
446
|
+
get_token_balance: this.txFromJSON<i128>,
|
|
390
447
|
get_leaf_ephemeral: this.txFromJSON<Option<EphemeralKeyCoords>>,
|
|
448
|
+
deprecate_zk_config: this.txFromJSON<Result<void>>,
|
|
449
|
+
require_kyt_passage: this.txFromJSON<Result<void>>,
|
|
450
|
+
get_commitment_count: this.txFromJSON<u32>,
|
|
391
451
|
get_pairwise_frontier: this.txFromJSON<Array<Buffer>>,
|
|
392
|
-
get_commitments: this.txFromJSON<Array<Buffer>>,
|
|
393
|
-
is_nulifier_hash_consumed: this.txFromJSON<boolean>,
|
|
394
|
-
is_known_root: this.txFromJSON<boolean>,
|
|
395
|
-
get_token_balance: this.txFromJSON<i128>,
|
|
396
452
|
get_public_slot_config: this.txFromJSON<readonly [u32, u32]>,
|
|
397
|
-
|
|
453
|
+
is_nulifier_hash_consumed: this.txFromJSON<boolean>
|
|
398
454
|
}
|
|
399
455
|
}
|