Skip to content

Commit 14c9314

Browse files
authored
refactor: light client (#1768)
* refactor: indexer in light-client * refactor: light-client ProofRpcResultV2 * refactor: add from v1 proof result * refactor: light-client unify get_validity_proof and v2 * refactor: light client unify get_compressed_account_by_owner and change return type to Account * refactor: light-client get_compressed_token_accounts return type and unify v2 * refactor: get compressed token balances * stopped compiling conversion.rs * refactor: light-client add response types to Indexer trait * stash * stash * fix: lint in light client * fixed forester-utils * program test compiles * fix: light-test-utils * fix: forester * system-cpi-test compiles * fix: system-test * fixed: light-compressed-token * fixed: program-tests * fix: forester test and lint * uncomment test-sbf feature * remove unused conversions.rs * fix: forester test and lint * fix: sdk test * fix: tests * fix: get_validity_proof * feat: extend Indexer trait * stash * simplify ItemsWithCursor * fixed forester utils * fixed: light-program-test, light-test-utils, forester-utils * fix: tests * chore: rename get_compressed_token_balances_by_owner -> get_compressed_token_balances_by_owner_v2 * use filter in get_compressed_accounts * refactor: rename ValiditProofWithContext compressed_proof -> proof * chore: add cpi context pubkeys to QUEUE_TREE_MAPPING and TreeInfo * fix: compile error
1 parent b0f456f commit 14c9314

File tree

61 files changed

+4112
-2303
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

61 files changed

+4112
-2303
lines changed

Cargo.lock

Lines changed: 1 addition & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

examples/anchor/counter/tests/test.rs

Lines changed: 51 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -53,11 +53,14 @@ async fn test_counter() {
5353

5454
// Check that it was created correctly.
5555
let compressed_accounts = rpc
56-
.get_compressed_accounts_by_owner_v2(&counter::ID)
56+
.get_compressed_accounts_by_owner(&counter::ID, None, None)
5757
.await
58-
.unwrap();
58+
.unwrap()
59+
.value
60+
.items;
5961
assert_eq!(compressed_accounts.len(), 1);
60-
let compressed_account = &compressed_accounts[0];
62+
let compressed_account: CompressedAccountWithMerkleContext =
63+
compressed_accounts[0].clone().into();
6164
let counter = &compressed_account
6265
.compressed_account
6366
.data
@@ -68,17 +71,20 @@ async fn test_counter() {
6871
assert_eq!(counter.value, 0);
6972

7073
// Increment the counter.
71-
increment_counter(&mut rpc, &payer, compressed_account)
74+
increment_counter(&mut rpc, &payer, &compressed_account)
7275
.await
7376
.unwrap();
7477

7578
// Check that it was incremented correctly.
7679
let compressed_accounts = rpc
77-
.get_compressed_accounts_by_owner_v2(&counter::ID)
80+
.get_compressed_accounts_by_owner(&counter::ID, None, None)
7881
.await
79-
.unwrap();
82+
.unwrap()
83+
.value
84+
.items;
8085
assert_eq!(compressed_accounts.len(), 1);
81-
let compressed_account = &compressed_accounts[0];
86+
let compressed_account: CompressedAccountWithMerkleContext =
87+
compressed_accounts[0].clone().into();
8288
let counter = &compressed_account
8389
.compressed_account
8490
.data
@@ -89,17 +95,20 @@ async fn test_counter() {
8995
assert_eq!(counter.value, 1);
9096

9197
// Decrement the counter.
92-
decrement_counter(&mut rpc, &payer, compressed_account)
98+
decrement_counter(&mut rpc, &payer, &compressed_account)
9399
.await
94100
.unwrap();
95101

96102
// Check that it was decremented correctly.
97103
let compressed_accounts = rpc
98-
.get_compressed_accounts_by_owner_v2(&counter::ID)
104+
.get_compressed_accounts_by_owner(&counter::ID, None, None)
99105
.await
100-
.unwrap();
106+
.unwrap()
107+
.value
108+
.items;
101109
assert_eq!(compressed_accounts.len(), 1);
102-
let compressed_account = &compressed_accounts[0];
110+
let compressed_account: CompressedAccountWithMerkleContext =
111+
compressed_accounts[0].clone().into();
103112
let counter = &compressed_account
104113
.compressed_account
105114
.data
@@ -110,17 +119,20 @@ async fn test_counter() {
110119
assert_eq!(counter.value, 0);
111120

112121
// Reset the counter.
113-
reset_counter(&mut rpc, &payer, compressed_account)
122+
reset_counter(&mut rpc, &payer, &compressed_account)
114123
.await
115124
.unwrap();
116125

117126
// Check that it was reset correctly.
118127
let compressed_accounts = rpc
119-
.get_compressed_accounts_by_owner_v2(&counter::ID)
128+
.get_compressed_accounts_by_owner(&counter::ID, None, None)
120129
.await
121-
.unwrap();
130+
.unwrap()
131+
.value
132+
.items;
122133
assert_eq!(compressed_accounts.len(), 1);
123-
let compressed_account = &compressed_accounts[0];
134+
let compressed_account: CompressedAccountWithMerkleContext =
135+
compressed_accounts[0].clone().into();
124136
let counter = &compressed_account
125137
.compressed_account
126138
.data
@@ -131,16 +143,16 @@ async fn test_counter() {
131143
assert_eq!(counter.value, 0);
132144

133145
// Close the counter.
134-
close_counter(&mut rpc, &payer, compressed_account)
146+
close_counter(&mut rpc, &payer, &compressed_account)
135147
.await
136148
.unwrap();
137149

138150
// Check that it was closed correctly (no compressed accounts after closing).
139151
let compressed_accounts = rpc
140-
.get_compressed_accounts_by_owner_v2(&counter::ID)
152+
.get_compressed_accounts_by_owner(&counter::ID, None, None)
141153
.await
142154
.unwrap();
143-
assert_eq!(compressed_accounts.len(), 0);
155+
assert_eq!(compressed_accounts.value.items.len(), 0);
144156
}
145157

146158
async fn create_counter<R>(
@@ -164,19 +176,21 @@ where
164176
tree: address_merkle_context.address_merkle_tree_pubkey,
165177
address: *address,
166178
}],
179+
None,
167180
)
168181
.await
169-
.unwrap();
182+
.unwrap()
183+
.value;
170184

171185
let output_merkle_tree_index = remaining_accounts.insert_or_get(output_merkle_tree);
172186
let packed_address_merkle_context = pack_address_merkle_context(
173187
&address_merkle_context,
174188
&mut remaining_accounts,
175-
rpc_result.address_root_indices[0],
189+
rpc_result.get_address_root_indices()[0],
176190
);
177191

178192
let instruction_data = counter::instruction::CreateCounter {
179-
proof: rpc_result.proof.into(),
193+
proof: rpc_result.proof,
180194
address_merkle_context: packed_address_merkle_context,
181195
output_merkle_tree_index,
182196
};
@@ -204,7 +218,6 @@ where
204218
#[allow(clippy::too_many_arguments)]
205219
async fn increment_counter<R>(
206220
rpc: &mut R,
207-
208221
payer: &Keypair,
209222
compressed_account: &CompressedAccountWithMerkleContext,
210223
) -> Result<Signature, RpcError>
@@ -218,9 +231,10 @@ where
218231
let hash = compressed_account.hash().unwrap();
219232

220233
let rpc_result = rpc
221-
.get_validity_proof_v2(Vec::from(&[hash]), vec![])
234+
.get_validity_proof(Vec::from(&[hash]), vec![], None)
222235
.await
223-
.unwrap();
236+
.unwrap()
237+
.value;
224238

225239
let packed_merkle_context =
226240
pack_merkle_context(&compressed_account.merkle_context, &mut remaining_accounts);
@@ -239,12 +253,12 @@ where
239253
let account_meta = CompressedAccountMeta {
240254
merkle_context: packed_merkle_context,
241255
address: compressed_account.compressed_account.address.unwrap(),
242-
root_index: Some(rpc_result.root_indices[0].unwrap()),
256+
root_index: Some(rpc_result.get_root_indices()[0].unwrap()),
243257
output_merkle_tree_index: packed_merkle_context.merkle_tree_pubkey_index,
244258
};
245259

246260
let instruction_data = counter::instruction::IncrementCounter {
247-
proof: rpc_result.proof.into(),
261+
proof: rpc_result.proof,
248262
counter_value: counter_account.value,
249263
account_meta,
250264
};
@@ -285,9 +299,10 @@ where
285299
let hash = compressed_account.hash().unwrap();
286300

287301
let rpc_result = rpc
288-
.get_validity_proof(Vec::from(&[hash]), vec![])
302+
.get_validity_proof(Vec::from(&[hash]), vec![], None)
289303
.await
290-
.unwrap();
304+
.unwrap()
305+
.value;
291306

292307
let packed_merkle_context =
293308
pack_merkle_context(&compressed_account.merkle_context, &mut remaining_accounts);
@@ -306,12 +321,12 @@ where
306321
let account_meta = CompressedAccountMeta {
307322
merkle_context: packed_merkle_context,
308323
address: compressed_account.compressed_account.address.unwrap(),
309-
root_index: Some(rpc_result.root_indices[0]),
324+
root_index: rpc_result.get_root_indices()[0],
310325
output_merkle_tree_index: packed_merkle_context.merkle_tree_pubkey_index,
311326
};
312327

313328
let instruction_data = counter::instruction::DecrementCounter {
314-
proof: rpc_result.proof.into(),
329+
proof: rpc_result.proof,
315330
counter_value: counter_account.value,
316331
account_meta,
317332
};
@@ -352,7 +367,7 @@ where
352367
let hash = compressed_account.hash().unwrap();
353368

354369
let rpc_result = rpc
355-
.get_validity_proof_v2(Vec::from(&[hash]), vec![])
370+
.get_validity_proof(Vec::from(&[hash]), vec![], None)
356371
.await
357372
.unwrap();
358373

@@ -373,12 +388,12 @@ where
373388
let account_meta = CompressedAccountMeta {
374389
merkle_context: packed_merkle_context,
375390
address: compressed_account.compressed_account.address.unwrap(),
376-
root_index: Some(rpc_result.root_indices[0].unwrap()),
391+
root_index: Some(rpc_result.value.get_root_indices()[0].unwrap()),
377392
output_merkle_tree_index: packed_merkle_context.merkle_tree_pubkey_index,
378393
};
379394

380395
let instruction_data = counter::instruction::ResetCounter {
381-
proof: rpc_result.proof.into(),
396+
proof: rpc_result.value.proof,
382397
counter_value: counter_account.value,
383398
account_meta,
384399
};
@@ -418,7 +433,7 @@ where
418433
let hash = compressed_account.hash().unwrap();
419434

420435
let rpc_result = rpc
421-
.get_validity_proof_v2(Vec::from(&[hash]), vec![])
436+
.get_validity_proof(Vec::from(&[hash]), vec![], None)
422437
.await
423438
.unwrap();
424439

@@ -439,12 +454,12 @@ where
439454
let account_meta = CompressedAccountMeta {
440455
merkle_context: packed_merkle_context,
441456
address: compressed_account.compressed_account.address.unwrap(),
442-
root_index: Some(rpc_result.root_indices[0].unwrap()),
457+
root_index: Some(rpc_result.value.get_root_indices()[0].unwrap()),
443458
output_merkle_tree_index: packed_merkle_context.merkle_tree_pubkey_index,
444459
};
445460

446461
let instruction_data = counter::instruction::CloseCounter {
447-
proof: rpc_result.proof.into(),
462+
proof: rpc_result.value.proof,
448463
counter_value: counter_account.value,
449464
account_meta,
450465
};

examples/anchor/memo/tests/test.rs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ async fn test_memo_program() {
9191
.unwrap();
9292

9393
let compressed_accounts = test_indexer
94-
.get_compressed_accounts_by_owner_v2(&memo::ID)
94+
.get_compressed_accounts_by_owner(&memo::ID)
9595
.await
9696
.unwrap();
9797
assert_eq!(compressed_accounts.len(), 1);
@@ -122,7 +122,7 @@ async fn test_memo_program() {
122122
.unwrap();
123123

124124
let compressed_accounts = test_indexer
125-
.get_compressed_accounts_by_owner_v2(&memo::ID)
125+
.get_compressed_accounts_by_owner(&memo::ID)
126126
.await
127127
.unwrap();
128128
assert_eq!(compressed_accounts.len(), 1);
@@ -150,7 +150,7 @@ async fn test_memo_program() {
150150
.unwrap();
151151

152152
let compressed_accounts = test_indexer
153-
.get_compressed_accounts_by_owner_v2(&memo::ID)
153+
.get_compressed_accounts_by_owner(&memo::ID)
154154
.await
155155
.unwrap();
156156
assert_eq!(compressed_accounts.len(), 0);
@@ -190,7 +190,7 @@ where
190190
let account = LightAccountMeta::new_init(
191191
&env.v1_state_trees[0].merkle_tree,
192192
Some(&address_merkle_context),
193-
Some(rpc_result.address_root_indices[0]),
193+
Some(rpc_result.value.get_address_root_indices()[0]),
194194
remaining_accounts,
195195
)
196196
.unwrap();
@@ -271,7 +271,7 @@ where
271271

272272
let compressed_account = LightAccountMeta::new_mut(
273273
compressed_account,
274-
rpc_result.root_indices[0].unwrap(),
274+
rpc_result.value.get_root_indices()[0].unwrap(),
275275
&merkle_tree_pubkey,
276276
remaining_accounts,
277277
);
@@ -351,7 +351,7 @@ where
351351

352352
let compressed_account = LightAccountMeta::new_close(
353353
compressed_account,
354-
rpc_result.root_indices[0].unwrap(),
354+
rpc_result.value.get_root_indices()[0].unwrap(),
355355
remaining_accounts,
356356
);
357357

examples/anchor/name-service-without-macros/tests/test.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,7 @@ async fn test_name_service() {
127127

128128
// Check that it was created correctly.
129129
let compressed_accounts = test_indexer
130-
.get_compressed_accounts_by_owner_v2(&name_service_without_macros::ID)
130+
.get_compressed_accounts_by_owner(&name_service_without_macros::ID)
131131
.await
132132
.unwrap();
133133
assert_eq!(compressed_accounts.len(), 1);
@@ -207,7 +207,7 @@ async fn test_name_service() {
207207

208208
// Check that it was updated correctly.
209209
let compressed_accounts = test_indexer
210-
.get_compressed_accounts_by_owner_v2(&name_service_without_macros::ID)
210+
.get_compressed_accounts_by_owner(&name_service_without_macros::ID)
211211
.await
212212
.unwrap();
213213
assert_eq!(compressed_accounts.len(), 1);
@@ -316,7 +316,7 @@ where
316316
let account = LightAccountMeta::new_init(
317317
&env.v1_state_trees[0].merkle_tree,
318318
Some(&address_merkle_context),
319-
Some(rpc_result.address_root_indices[0]),
319+
Some(rpc_result.value.get_address_root_indices()[0]),
320320
remaining_accounts,
321321
)
322322
.unwrap();
@@ -397,7 +397,7 @@ where
397397

398398
let compressed_account = LightAccountMeta::new_mut(
399399
compressed_account,
400-
rpc_result.root_indices[0].unwrap(),
400+
rpc_result.value.get_root_indices()[0].unwrap(),
401401
&merkle_tree_pubkey,
402402
remaining_accounts,
403403
);
@@ -476,7 +476,7 @@ where
476476

477477
let compressed_account = LightAccountMeta::new_close(
478478
compressed_account,
479-
rpc_result.root_indices[0].unwrap(),
479+
rpc_result.value.get_root_indices()[0].unwrap(),
480480
remaining_accounts,
481481
);
482482

0 commit comments

Comments
 (0)