fix: test batched tree transactions test - #24

Merged
ananas-block merged 2 commits into
jorrit/feat-add-testfrom
sergey/fix-test_batched_tree_transactions
May 7, 2025
Merged

fix: test batched tree transactions test#24
ananas-block merged 2 commits into
jorrit/feat-add-testfrom
sergey/fix-test_batched_tree_transactions

Conversation

@sergeytimoshin

Copy link
Copy Markdown

No description provided.

@ananas-block
ananas-block merged commit 6bbf1ca into jorrit/feat-add-testMay 7, 2025
@ananas-block
ananas-block deleted the sergey/fix-test_batched_tree_transactions branch May 7, 2025 21:05
sergeytimoshin added a commit that referenced this pull request Jun 8, 2025
* refactor: add support for batched updates
* refactor: add support for batched updates
Update src/dao/generated/accounts.rs
Co-authored-by: ananas-block <58553958+ananas-block@users.noreply.github.com>
Update src/ingester/parser/batch_event_parser.rs
Co-authored-by: ananas-block <58553958+ananas-block@users.noreply.github.com>
refactor: remove getSubtrees method and related API documentation
Update src/ingester/parser/mod.rs
Co-authored-by: ananas-block <58553958+ananas-block@users.noreply.github.com>
Refactor struct fields to use camelCase naming convention
replace the `calculate_two_inputs_hash_chain` function with the `create_two_inputs_hash_chain` method from the `light_compressed_account` crate.
Refactor error handling in `parse_public_transaction_event_v2`
format
Remove obsolete and commented-out account update code
Move `node_index_to_leaf_index` function to the appropriate location and remove dead code
Add comments to clarify nullifier field usage
Add comments to clarify tx_hash field usage in account struct
Add comments to clarify seq field usage in account struct
Add comments to clarify nullifier_queue_index field usage in account struct
Refactor get_compressed_accounts_by_owner module and add common utilities for account filtering
add validity proof v2
Add get_validity_proof_v2 and update API specifications
remove unnecessary logging
fix: mock tests
fix for getValidityProof (v1)
refactor: remove unused tree height parameters and add getValidityProofV2 method
fix: update method name from address_from_bytes to state_from_bytes in mod.rs consistency.
fix indexed_accounts query
fix get_compressed_account_by_owner v1
refactor: simplify account handling and improve code consistency in transaction processing
refactor: remove queue_position handling and update related queries and indexes
upd .gitignore
cargo fmt and fixed tests
* fix mock test
* refactor: validate heights of inclusion and non-inclusion proofs
* refactor: implement AccountWithContext constructor and remove parse_account_data function
* refactor: move spend_input_accounts_batched function to spend_batch module
* refactor: rename spend_batch module to spend and move spend_input_accounts function
* refactor: streamline transaction parsing
* refactor: restructure ingester/parser module
* refactor: restructure ingester/persist module
* add v2 endpoints
wip e2e test
make get_compressed_accounts_by_owner_v2 return AccountV2 primitive
add mock_tests.rs
add prove_by_index to AccountV2
refactor: validate heights of inclusion and non-inclusion proofs
refactor: implement AccountWithContext constructor and remove parse_account_data function
refactor: move spend_input_accounts_batched function to spend_batch module
refactor: rename spend_batch module to spend and move spend_input_accounts function
refactor: streamline transaction parsing
refactor: restructure ingester/parser module
refactor: restructure ingester/persist module
Co-authored-by: ananas-block <58553958+ananas-block@users.noreply.github.com>
Co-authored-by: ananas-block <58553958+ananas-block@users.noreply.github.com>
Co-authored-by: ananas-block <58553958+ananas-block@users.noreply.github.com>
test: add compressed token in batched tree test
* chore: renamed tests, wip reference Merkle tree to assert root
* test: correct root
* test: add get_queue_elements test
* refactor: get_validity_proof_v2 and add tests
* removed leftover print
* feat: add v2 endpoints and update response schemas for compressed accounts and transactions
* fix: tests
* fix: get_queue_elements response ordering
* fix: spend_input_accounts_batched
* parser cleanup
* refactor: persist batch events
* chore: add get_queue_elements test
* fix: flaky nullification of batched input accounts
* updated dep commit
* refactor: update queue size calculation for batch inputs based on state tree height
* feat: enhance account structure with tree type and update queue handling
* refactor: fix SQL syntax in account initialization and update queue assertion
* refactor: correct queue access in batched state tree tests and adjust instruction index check
* feat: update AccountContext to include tree type in mock tests and utils
* tests wip
* feat: add queue and tree_type fields to mock test data
* chore: update light-protocol dependencies
* refactor: update light-protocol dependencies and improve error handling in API functions
* cleanup
* feat: update API responses to include V2 schemas and add new fields for compression info
* chore: rename GetCompressedAccountsByOwnerV2Response -> GetCompressedAccountsByOwnerResponseV2
* chore: updated to refactored event_from_light_transaction
* test: four cpi events
* * add validation for maximum allowed hashes in get_validity_proof_v2 function
* sort accounts by the same order as request.hashes
* feat: refactor account structures to use MerkleContextV2 and update API schemas
* pass as u16
* rm
* refactor: remove constant for maximum allowed hashes in get_validity_proof_v2 function
* feat: move account*, context and limit structs to typedefs
* fix: update parse_leaf_index function to accept i64 and adjust related usages
* feat: move TryFrom for AccountWithContext to account/context.rs
* refactor: remove parse_discriminator function from utils.rs
* refactored event to use unified enum doesn't work
* add new test data
* fix: refactor
* * implement v2 API for compressed account proofs
* refactored TreeAndQueue and tree heights helpers
* Update src/api/method/get_compressed_account_proof/v2.rs
Co-authored-by: ananas-block <58553958+ananas-block@users.noreply.github.com>
* fix: add error handling for mismatched accounts and hashes in v2 API
* fix: add error handling for missing account in v2 API
* feat: integrate ContextInfo into GetCompressedAccountProofResponseValueV2
* refactor: clean up imports in tx_event_parser.rs
* refactor: remove debug print statement from leaf_node.rs
* refactor: simplify GetMultipleCompressedAccountProofsResponseValueV2 structure and update related parsing logic
* refactor: simplify GetMultipleCompressedAccountProofsResponseV2 by removing nested structure
* feat: add v2 endpoints for compressed account proofs and update API specifications
* refactor: remove debug print statements and clean up imports in API modules
* consistent tree field in v2 responses
* validityproofv2 merkle_context -> merkle_contexts
* update naming for get_transaction_with_compression_info helpers v2
* fix batch events processing
cleanup
cleanup
* remove unused AccountContext
* chore: remove unused StateUpdate field
* move parse_token_data_v2 to get_transaction_with_compression_info
* chore: add test description
* wip
* register getCompressedAccountProofV2
* fix: update test assertions
* fix: GetQueueElementsResponseValue camelCase
* feat: batch address update support
* feat: implement batch address tree tests
* refactor: remove debug print statements from multiple modules
* fix: update .gitignore to ignore all .env files
* fix: use create_dir_all for creating temp directory
* feat: add legacy state and address trees to tree_info
* feat: implement conversion from PublicTransactionEventV1 and V2 to PublicTransactionEvent
* refactor: remove PublicTransactionEvent enum and related conversions
* update tests data
* update tests data
* remove leftover
* remove leftover
* remove leftover
* update batched address tree tests
* batched address tree tests wip
* cleanup
* cleanup
* cleanup
* cleanup
* add support for custom account compression program ID
* * For get_multiple_new_address_proofs if request tree is V2, requested address is in the AddressQueue but not in tree yet, we should return error. For V1 trees we still return non-inclusion proof, because we don't have information about V1 queue.
* Add offset as request parameter to get_batch_address_update_info.
* Various cleanups
* Switch to `solana-pubkey` and update dependencies.
* Switch to `solana-pubkey` and update dependencies.
* Update import for Pubkey from solana_pubkey and adjust account key mapping
* update tree height handling and clean up debug prints
* fix test environment comment and increment state tree height for leaf node persistence
* test tx data
* test tx data
* test tx data
* test tx data
* refactor address tree handling and improve logging for batch updates
* refactor batched address tests
* Move `light-merkle-tree-reference` to dev-dependencies
* fix: test batched tree transactions test (#24)
* refactor: validity proof v2 response layout
* refactor: update dependencies and improve proof handling
* 1. updated proof deserialization to skip validation for performance improvements by setting `Validate::No`.
2. removed commented-out unused variables in the prover logic.
* updated `negate_proof` to return `Result` for better error handling
* chore: update ark-* to 0.5
* refactor: remove commented-out code for clarity in v2.rs
* refactor: prover logic, dependency updates (#28)
* chore: update dependencies and clean up unused packages
* refactor: consolidate PublicTransactionEvent structs and update references
* refactor: adjust root_seq assignment and add Debug trait to struct definitions
* refactor: proof compression and error handling in prover
* refactor: simplify AddressProofInputs, rootIndex: u16
* refactor: extract proof generation for empty tree into separate function
* refactor: improve transaction parsing logic and clean up code
* Update prover docker image to sergeytimoshin/prover:latest
* Export proof input types for OpenAPI schema generation
* chore: remove tree.txt, replace git dependencies with released crates
* chore: replace git dev dep with released dep
* chore: rename start_offset -> start_queue_index, zkp_batch_size -> limit, num_elements -> limit
---------
Co-authored-by: Sergey Timoshin <sergeytimoshin@proton.me>
Co-authored-by: Swenschaeferjohann <swen@lightprotocol.com>
Co-authored-by: Sergey Timoshin <timoshin.sergey@gmail.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@sergeytimoshin@ananas-block
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

fix: test batched tree transactions test - #24

Merged
ananas-block merged 2 commits into
jorrit/feat-add-testfrom
sergey/fix-test_batched_tree_transactions
May 7, 2025
Merged

fix: test batched tree transactions test#24
ananas-block merged 2 commits into
jorrit/feat-add-testfrom
sergey/fix-test_batched_tree_transactions

Conversation

@sergeytimoshin

Copy link
Copy Markdown

No description provided.

@ananas-block
ananas-block merged commit 6bbf1ca into jorrit/feat-add-testMay 7, 2025
@ananas-block
ananas-block deleted the sergey/fix-test_batched_tree_transactions branch May 7, 2025 21:05
sergeytimoshin added a commit that referenced this pull request Jun 8, 2025
* refactor: add support for batched updates
* refactor: add support for batched updates
Update src/dao/generated/accounts.rs
Co-authored-by: ananas-block <58553958+ananas-block@users.noreply.github.com>
Update src/ingester/parser/batch_event_parser.rs
Co-authored-by: ananas-block <58553958+ananas-block@users.noreply.github.com>
refactor: remove getSubtrees method and related API documentation
Update src/ingester/parser/mod.rs
Co-authored-by: ananas-block <58553958+ananas-block@users.noreply.github.com>
Refactor struct fields to use camelCase naming convention
replace the `calculate_two_inputs_hash_chain` function with the `create_two_inputs_hash_chain` method from the `light_compressed_account` crate.
Refactor error handling in `parse_public_transaction_event_v2`
format
Remove obsolete and commented-out account update code
Move `node_index_to_leaf_index` function to the appropriate location and remove dead code
Add comments to clarify nullifier field usage
Add comments to clarify tx_hash field usage in account struct
Add comments to clarify seq field usage in account struct
Add comments to clarify nullifier_queue_index field usage in account struct
Refactor get_compressed_accounts_by_owner module and add common utilities for account filtering
add validity proof v2
Add get_validity_proof_v2 and update API specifications
remove unnecessary logging
fix: mock tests
fix for getValidityProof (v1)
refactor: remove unused tree height parameters and add getValidityProofV2 method
fix: update method name from address_from_bytes to state_from_bytes in mod.rs consistency.
fix indexed_accounts query
fix get_compressed_account_by_owner v1
refactor: simplify account handling and improve code consistency in transaction processing
refactor: remove queue_position handling and update related queries and indexes
upd .gitignore
cargo fmt and fixed tests
* fix mock test
* refactor: validate heights of inclusion and non-inclusion proofs
* refactor: implement AccountWithContext constructor and remove parse_account_data function
* refactor: move spend_input_accounts_batched function to spend_batch module
* refactor: rename spend_batch module to spend and move spend_input_accounts function
* refactor: streamline transaction parsing
* refactor: restructure ingester/parser module
* refactor: restructure ingester/persist module
* add v2 endpoints
wip e2e test
make get_compressed_accounts_by_owner_v2 return AccountV2 primitive
add mock_tests.rs
add prove_by_index to AccountV2
refactor: validate heights of inclusion and non-inclusion proofs
refactor: implement AccountWithContext constructor and remove parse_account_data function
refactor: move spend_input_accounts_batched function to spend_batch module
refactor: rename spend_batch module to spend and move spend_input_accounts function
refactor: streamline transaction parsing
refactor: restructure ingester/parser module
refactor: restructure ingester/persist module
Co-authored-by: ananas-block <58553958+ananas-block@users.noreply.github.com>
Co-authored-by: ananas-block <58553958+ananas-block@users.noreply.github.com>
Co-authored-by: ananas-block <58553958+ananas-block@users.noreply.github.com>
test: add compressed token in batched tree test
* chore: renamed tests, wip reference Merkle tree to assert root
* test: correct root
* test: add get_queue_elements test
* refactor: get_validity_proof_v2 and add tests
* removed leftover print
* feat: add v2 endpoints and update response schemas for compressed accounts and transactions
* fix: tests
* fix: get_queue_elements response ordering
* fix: spend_input_accounts_batched
* parser cleanup
* refactor: persist batch events
* chore: add get_queue_elements test
* fix: flaky nullification of batched input accounts
* updated dep commit
* refactor: update queue size calculation for batch inputs based on state tree height
* feat: enhance account structure with tree type and update queue handling
* refactor: fix SQL syntax in account initialization and update queue assertion
* refactor: correct queue access in batched state tree tests and adjust instruction index check
* feat: update AccountContext to include tree type in mock tests and utils
* tests wip
* feat: add queue and tree_type fields to mock test data
* chore: update light-protocol dependencies
* refactor: update light-protocol dependencies and improve error handling in API functions
* cleanup
* feat: update API responses to include V2 schemas and add new fields for compression info
* chore: rename GetCompressedAccountsByOwnerV2Response -> GetCompressedAccountsByOwnerResponseV2
* chore: updated to refactored event_from_light_transaction
* test: four cpi events
* * add validation for maximum allowed hashes in get_validity_proof_v2 function
* sort accounts by the same order as request.hashes
* feat: refactor account structures to use MerkleContextV2 and update API schemas
* pass as u16
* rm
* refactor: remove constant for maximum allowed hashes in get_validity_proof_v2 function
* feat: move account*, context and limit structs to typedefs
* fix: update parse_leaf_index function to accept i64 and adjust related usages
* feat: move TryFrom for AccountWithContext to account/context.rs
* refactor: remove parse_discriminator function from utils.rs
* refactored event to use unified enum doesn't work
* add new test data
* fix: refactor
* * implement v2 API for compressed account proofs
* refactored TreeAndQueue and tree heights helpers
* Update src/api/method/get_compressed_account_proof/v2.rs
Co-authored-by: ananas-block <58553958+ananas-block@users.noreply.github.com>
* fix: add error handling for mismatched accounts and hashes in v2 API
* fix: add error handling for missing account in v2 API
* feat: integrate ContextInfo into GetCompressedAccountProofResponseValueV2
* refactor: clean up imports in tx_event_parser.rs
* refactor: remove debug print statement from leaf_node.rs
* refactor: simplify GetMultipleCompressedAccountProofsResponseValueV2 structure and update related parsing logic
* refactor: simplify GetMultipleCompressedAccountProofsResponseV2 by removing nested structure
* feat: add v2 endpoints for compressed account proofs and update API specifications
* refactor: remove debug print statements and clean up imports in API modules
* consistent tree field in v2 responses
* validityproofv2 merkle_context -> merkle_contexts
* update naming for get_transaction_with_compression_info helpers v2
* fix batch events processing
cleanup
cleanup
* remove unused AccountContext
* chore: remove unused StateUpdate field
* move parse_token_data_v2 to get_transaction_with_compression_info
* chore: add test description
* wip
* register getCompressedAccountProofV2
* fix: update test assertions
* fix: GetQueueElementsResponseValue camelCase
* feat: batch address update support
* feat: implement batch address tree tests
* refactor: remove debug print statements from multiple modules
* fix: update .gitignore to ignore all .env files
* fix: use create_dir_all for creating temp directory
* feat: add legacy state and address trees to tree_info
* feat: implement conversion from PublicTransactionEventV1 and V2 to PublicTransactionEvent
* refactor: remove PublicTransactionEvent enum and related conversions
* update tests data
* update tests data
* remove leftover
* remove leftover
* remove leftover
* update batched address tree tests
* batched address tree tests wip
* cleanup
* cleanup
* cleanup
* cleanup
* add support for custom account compression program ID
* * For get_multiple_new_address_proofs if request tree is V2, requested address is in the AddressQueue but not in tree yet, we should return error. For V1 trees we still return non-inclusion proof, because we don't have information about V1 queue.
* Add offset as request parameter to get_batch_address_update_info.
* Various cleanups
* Switch to `solana-pubkey` and update dependencies.
* Switch to `solana-pubkey` and update dependencies.
* Update import for Pubkey from solana_pubkey and adjust account key mapping
* update tree height handling and clean up debug prints
* fix test environment comment and increment state tree height for leaf node persistence
* test tx data
* test tx data
* test tx data
* test tx data
* refactor address tree handling and improve logging for batch updates
* refactor batched address tests
* Move `light-merkle-tree-reference` to dev-dependencies
* fix: test batched tree transactions test (#24)
* refactor: validity proof v2 response layout
* refactor: update dependencies and improve proof handling
* 1. updated proof deserialization to skip validation for performance improvements by setting `Validate::No`.
2. removed commented-out unused variables in the prover logic.
* updated `negate_proof` to return `Result` for better error handling
* chore: update ark-* to 0.5
* refactor: remove commented-out code for clarity in v2.rs
* refactor: prover logic, dependency updates (#28)
* chore: update dependencies and clean up unused packages
* refactor: consolidate PublicTransactionEvent structs and update references
* refactor: adjust root_seq assignment and add Debug trait to struct definitions
* refactor: proof compression and error handling in prover
* refactor: simplify AddressProofInputs, rootIndex: u16
* refactor: extract proof generation for empty tree into separate function
* refactor: improve transaction parsing logic and clean up code
* Update prover docker image to sergeytimoshin/prover:latest
* Export proof input types for OpenAPI schema generation
* chore: remove tree.txt, replace git dependencies with released crates
* chore: replace git dev dep with released dep
* chore: rename start_offset -> start_queue_index, zkp_batch_size -> limit, num_elements -> limit
---------
Co-authored-by: Sergey Timoshin <sergeytimoshin@proton.me>
Co-authored-by: Swenschaeferjohann <swen@lightprotocol.com>
Co-authored-by: Sergey Timoshin <timoshin.sergey@gmail.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@sergeytimoshin@ananas-block
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

fix: test batched tree transactions test - #24

Merged
ananas-block merged 2 commits into
jorrit/feat-add-testfrom
sergey/fix-test_batched_tree_transactions
May 7, 2025
Merged

fix: test batched tree transactions test#24
ananas-block merged 2 commits into
jorrit/feat-add-testfrom
sergey/fix-test_batched_tree_transactions

Conversation

@sergeytimoshin

Copy link
Copy Markdown

No description provided.

@ananas-block
ananas-block merged commit 6bbf1ca into jorrit/feat-add-testMay 7, 2025
@ananas-block
ananas-block deleted the sergey/fix-test_batched_tree_transactions branch May 7, 2025 21:05
sergeytimoshin added a commit that referenced this pull request Jun 8, 2025
* refactor: add support for batched updates
* refactor: add support for batched updates
Update src/dao/generated/accounts.rs
Co-authored-by: ananas-block <58553958+ananas-block@users.noreply.github.com>
Update src/ingester/parser/batch_event_parser.rs
Co-authored-by: ananas-block <58553958+ananas-block@users.noreply.github.com>
refactor: remove getSubtrees method and related API documentation
Update src/ingester/parser/mod.rs
Co-authored-by: ananas-block <58553958+ananas-block@users.noreply.github.com>
Refactor struct fields to use camelCase naming convention
replace the `calculate_two_inputs_hash_chain` function with the `create_two_inputs_hash_chain` method from the `light_compressed_account` crate.
Refactor error handling in `parse_public_transaction_event_v2`
format
Remove obsolete and commented-out account update code
Move `node_index_to_leaf_index` function to the appropriate location and remove dead code
Add comments to clarify nullifier field usage
Add comments to clarify tx_hash field usage in account struct
Add comments to clarify seq field usage in account struct
Add comments to clarify nullifier_queue_index field usage in account struct
Refactor get_compressed_accounts_by_owner module and add common utilities for account filtering
add validity proof v2
Add get_validity_proof_v2 and update API specifications
remove unnecessary logging
fix: mock tests
fix for getValidityProof (v1)
refactor: remove unused tree height parameters and add getValidityProofV2 method
fix: update method name from address_from_bytes to state_from_bytes in mod.rs consistency.
fix indexed_accounts query
fix get_compressed_account_by_owner v1
refactor: simplify account handling and improve code consistency in transaction processing
refactor: remove queue_position handling and update related queries and indexes
upd .gitignore
cargo fmt and fixed tests
* fix mock test
* refactor: validate heights of inclusion and non-inclusion proofs
* refactor: implement AccountWithContext constructor and remove parse_account_data function
* refactor: move spend_input_accounts_batched function to spend_batch module
* refactor: rename spend_batch module to spend and move spend_input_accounts function
* refactor: streamline transaction parsing
* refactor: restructure ingester/parser module
* refactor: restructure ingester/persist module
* add v2 endpoints
wip e2e test
make get_compressed_accounts_by_owner_v2 return AccountV2 primitive
add mock_tests.rs
add prove_by_index to AccountV2
refactor: validate heights of inclusion and non-inclusion proofs
refactor: implement AccountWithContext constructor and remove parse_account_data function
refactor: move spend_input_accounts_batched function to spend_batch module
refactor: rename spend_batch module to spend and move spend_input_accounts function
refactor: streamline transaction parsing
refactor: restructure ingester/parser module
refactor: restructure ingester/persist module
Co-authored-by: ananas-block <58553958+ananas-block@users.noreply.github.com>
Co-authored-by: ananas-block <58553958+ananas-block@users.noreply.github.com>
Co-authored-by: ananas-block <58553958+ananas-block@users.noreply.github.com>
test: add compressed token in batched tree test
* chore: renamed tests, wip reference Merkle tree to assert root
* test: correct root
* test: add get_queue_elements test
* refactor: get_validity_proof_v2 and add tests
* removed leftover print
* feat: add v2 endpoints and update response schemas for compressed accounts and transactions
* fix: tests
* fix: get_queue_elements response ordering
* fix: spend_input_accounts_batched
* parser cleanup
* refactor: persist batch events
* chore: add get_queue_elements test
* fix: flaky nullification of batched input accounts
* updated dep commit
* refactor: update queue size calculation for batch inputs based on state tree height
* feat: enhance account structure with tree type and update queue handling
* refactor: fix SQL syntax in account initialization and update queue assertion
* refactor: correct queue access in batched state tree tests and adjust instruction index check
* feat: update AccountContext to include tree type in mock tests and utils
* tests wip
* feat: add queue and tree_type fields to mock test data
* chore: update light-protocol dependencies
* refactor: update light-protocol dependencies and improve error handling in API functions
* cleanup
* feat: update API responses to include V2 schemas and add new fields for compression info
* chore: rename GetCompressedAccountsByOwnerV2Response -> GetCompressedAccountsByOwnerResponseV2
* chore: updated to refactored event_from_light_transaction
* test: four cpi events
* * add validation for maximum allowed hashes in get_validity_proof_v2 function
* sort accounts by the same order as request.hashes
* feat: refactor account structures to use MerkleContextV2 and update API schemas
* pass as u16
* rm
* refactor: remove constant for maximum allowed hashes in get_validity_proof_v2 function
* feat: move account*, context and limit structs to typedefs
* fix: update parse_leaf_index function to accept i64 and adjust related usages
* feat: move TryFrom for AccountWithContext to account/context.rs
* refactor: remove parse_discriminator function from utils.rs
* refactored event to use unified enum doesn't work
* add new test data
* fix: refactor
* * implement v2 API for compressed account proofs
* refactored TreeAndQueue and tree heights helpers
* Update src/api/method/get_compressed_account_proof/v2.rs
Co-authored-by: ananas-block <58553958+ananas-block@users.noreply.github.com>
* fix: add error handling for mismatched accounts and hashes in v2 API
* fix: add error handling for missing account in v2 API
* feat: integrate ContextInfo into GetCompressedAccountProofResponseValueV2
* refactor: clean up imports in tx_event_parser.rs
* refactor: remove debug print statement from leaf_node.rs
* refactor: simplify GetMultipleCompressedAccountProofsResponseValueV2 structure and update related parsing logic
* refactor: simplify GetMultipleCompressedAccountProofsResponseV2 by removing nested structure
* feat: add v2 endpoints for compressed account proofs and update API specifications
* refactor: remove debug print statements and clean up imports in API modules
* consistent tree field in v2 responses
* validityproofv2 merkle_context -> merkle_contexts
* update naming for get_transaction_with_compression_info helpers v2
* fix batch events processing
cleanup
cleanup
* remove unused AccountContext
* chore: remove unused StateUpdate field
* move parse_token_data_v2 to get_transaction_with_compression_info
* chore: add test description
* wip
* register getCompressedAccountProofV2
* fix: update test assertions
* fix: GetQueueElementsResponseValue camelCase
* feat: batch address update support
* feat: implement batch address tree tests
* refactor: remove debug print statements from multiple modules
* fix: update .gitignore to ignore all .env files
* fix: use create_dir_all for creating temp directory
* feat: add legacy state and address trees to tree_info
* feat: implement conversion from PublicTransactionEventV1 and V2 to PublicTransactionEvent
* refactor: remove PublicTransactionEvent enum and related conversions
* update tests data
* update tests data
* remove leftover
* remove leftover
* remove leftover
* update batched address tree tests
* batched address tree tests wip
* cleanup
* cleanup
* cleanup
* cleanup
* add support for custom account compression program ID
* * For get_multiple_new_address_proofs if request tree is V2, requested address is in the AddressQueue but not in tree yet, we should return error. For V1 trees we still return non-inclusion proof, because we don't have information about V1 queue.
* Add offset as request parameter to get_batch_address_update_info.
* Various cleanups
* Switch to `solana-pubkey` and update dependencies.
* Switch to `solana-pubkey` and update dependencies.
* Update import for Pubkey from solana_pubkey and adjust account key mapping
* update tree height handling and clean up debug prints
* fix test environment comment and increment state tree height for leaf node persistence
* test tx data
* test tx data
* test tx data
* test tx data
* refactor address tree handling and improve logging for batch updates
* refactor batched address tests
* Move `light-merkle-tree-reference` to dev-dependencies
* fix: test batched tree transactions test (#24)
* refactor: validity proof v2 response layout
* refactor: update dependencies and improve proof handling
* 1. updated proof deserialization to skip validation for performance improvements by setting `Validate::No`.
2. removed commented-out unused variables in the prover logic.
* updated `negate_proof` to return `Result` for better error handling
* chore: update ark-* to 0.5
* refactor: remove commented-out code for clarity in v2.rs
* refactor: prover logic, dependency updates (#28)
* chore: update dependencies and clean up unused packages
* refactor: consolidate PublicTransactionEvent structs and update references
* refactor: adjust root_seq assignment and add Debug trait to struct definitions
* refactor: proof compression and error handling in prover
* refactor: simplify AddressProofInputs, rootIndex: u16
* refactor: extract proof generation for empty tree into separate function
* refactor: improve transaction parsing logic and clean up code
* Update prover docker image to sergeytimoshin/prover:latest
* Export proof input types for OpenAPI schema generation
* chore: remove tree.txt, replace git dependencies with released crates
* chore: replace git dev dep with released dep
* chore: rename start_offset -> start_queue_index, zkp_batch_size -> limit, num_elements -> limit
---------
Co-authored-by: Sergey Timoshin <sergeytimoshin@proton.me>
Co-authored-by: Swenschaeferjohann <swen@lightprotocol.com>
Co-authored-by: Sergey Timoshin <timoshin.sergey@gmail.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@sergeytimoshin@ananas-block
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

fix: test batched tree transactions test - #24

Merged
ananas-block merged 2 commits into
jorrit/feat-add-testfrom
sergey/fix-test_batched_tree_transactions
May 7, 2025
Merged

fix: test batched tree transactions test#24
ananas-block merged 2 commits into
jorrit/feat-add-testfrom
sergey/fix-test_batched_tree_transactions

Conversation

@sergeytimoshin

Copy link
Copy Markdown

No description provided.

@ananas-block
ananas-block merged commit 6bbf1ca into jorrit/feat-add-testMay 7, 2025
@ananas-block
ananas-block deleted the sergey/fix-test_batched_tree_transactions branch May 7, 2025 21:05
sergeytimoshin added a commit that referenced this pull request Jun 8, 2025
* refactor: add support for batched updates
* refactor: add support for batched updates
Update src/dao/generated/accounts.rs
Co-authored-by: ananas-block <58553958+ananas-block@users.noreply.github.com>
Update src/ingester/parser/batch_event_parser.rs
Co-authored-by: ananas-block <58553958+ananas-block@users.noreply.github.com>
refactor: remove getSubtrees method and related API documentation
Update src/ingester/parser/mod.rs
Co-authored-by: ananas-block <58553958+ananas-block@users.noreply.github.com>
Refactor struct fields to use camelCase naming convention
replace the `calculate_two_inputs_hash_chain` function with the `create_two_inputs_hash_chain` method from the `light_compressed_account` crate.
Refactor error handling in `parse_public_transaction_event_v2`
format
Remove obsolete and commented-out account update code
Move `node_index_to_leaf_index` function to the appropriate location and remove dead code
Add comments to clarify nullifier field usage
Add comments to clarify tx_hash field usage in account struct
Add comments to clarify seq field usage in account struct
Add comments to clarify nullifier_queue_index field usage in account struct
Refactor get_compressed_accounts_by_owner module and add common utilities for account filtering
add validity proof v2
Add get_validity_proof_v2 and update API specifications
remove unnecessary logging
fix: mock tests
fix for getValidityProof (v1)
refactor: remove unused tree height parameters and add getValidityProofV2 method
fix: update method name from address_from_bytes to state_from_bytes in mod.rs consistency.
fix indexed_accounts query
fix get_compressed_account_by_owner v1
refactor: simplify account handling and improve code consistency in transaction processing
refactor: remove queue_position handling and update related queries and indexes
upd .gitignore
cargo fmt and fixed tests
* fix mock test
* refactor: validate heights of inclusion and non-inclusion proofs
* refactor: implement AccountWithContext constructor and remove parse_account_data function
* refactor: move spend_input_accounts_batched function to spend_batch module
* refactor: rename spend_batch module to spend and move spend_input_accounts function
* refactor: streamline transaction parsing
* refactor: restructure ingester/parser module
* refactor: restructure ingester/persist module
* add v2 endpoints
wip e2e test
make get_compressed_accounts_by_owner_v2 return AccountV2 primitive
add mock_tests.rs
add prove_by_index to AccountV2
refactor: validate heights of inclusion and non-inclusion proofs
refactor: implement AccountWithContext constructor and remove parse_account_data function
refactor: move spend_input_accounts_batched function to spend_batch module
refactor: rename spend_batch module to spend and move spend_input_accounts function
refactor: streamline transaction parsing
refactor: restructure ingester/parser module
refactor: restructure ingester/persist module
Co-authored-by: ananas-block <58553958+ananas-block@users.noreply.github.com>
Co-authored-by: ananas-block <58553958+ananas-block@users.noreply.github.com>
Co-authored-by: ananas-block <58553958+ananas-block@users.noreply.github.com>
test: add compressed token in batched tree test
* chore: renamed tests, wip reference Merkle tree to assert root
* test: correct root
* test: add get_queue_elements test
* refactor: get_validity_proof_v2 and add tests
* removed leftover print
* feat: add v2 endpoints and update response schemas for compressed accounts and transactions
* fix: tests
* fix: get_queue_elements response ordering
* fix: spend_input_accounts_batched
* parser cleanup
* refactor: persist batch events
* chore: add get_queue_elements test
* fix: flaky nullification of batched input accounts
* updated dep commit
* refactor: update queue size calculation for batch inputs based on state tree height
* feat: enhance account structure with tree type and update queue handling
* refactor: fix SQL syntax in account initialization and update queue assertion
* refactor: correct queue access in batched state tree tests and adjust instruction index check
* feat: update AccountContext to include tree type in mock tests and utils
* tests wip
* feat: add queue and tree_type fields to mock test data
* chore: update light-protocol dependencies
* refactor: update light-protocol dependencies and improve error handling in API functions
* cleanup
* feat: update API responses to include V2 schemas and add new fields for compression info
* chore: rename GetCompressedAccountsByOwnerV2Response -> GetCompressedAccountsByOwnerResponseV2
* chore: updated to refactored event_from_light_transaction
* test: four cpi events
* * add validation for maximum allowed hashes in get_validity_proof_v2 function
* sort accounts by the same order as request.hashes
* feat: refactor account structures to use MerkleContextV2 and update API schemas
* pass as u16
* rm
* refactor: remove constant for maximum allowed hashes in get_validity_proof_v2 function
* feat: move account*, context and limit structs to typedefs
* fix: update parse_leaf_index function to accept i64 and adjust related usages
* feat: move TryFrom for AccountWithContext to account/context.rs
* refactor: remove parse_discriminator function from utils.rs
* refactored event to use unified enum doesn't work
* add new test data
* fix: refactor
* * implement v2 API for compressed account proofs
* refactored TreeAndQueue and tree heights helpers
* Update src/api/method/get_compressed_account_proof/v2.rs
Co-authored-by: ananas-block <58553958+ananas-block@users.noreply.github.com>
* fix: add error handling for mismatched accounts and hashes in v2 API
* fix: add error handling for missing account in v2 API
* feat: integrate ContextInfo into GetCompressedAccountProofResponseValueV2
* refactor: clean up imports in tx_event_parser.rs
* refactor: remove debug print statement from leaf_node.rs
* refactor: simplify GetMultipleCompressedAccountProofsResponseValueV2 structure and update related parsing logic
* refactor: simplify GetMultipleCompressedAccountProofsResponseV2 by removing nested structure
* feat: add v2 endpoints for compressed account proofs and update API specifications
* refactor: remove debug print statements and clean up imports in API modules
* consistent tree field in v2 responses
* validityproofv2 merkle_context -> merkle_contexts
* update naming for get_transaction_with_compression_info helpers v2
* fix batch events processing
cleanup
cleanup
* remove unused AccountContext
* chore: remove unused StateUpdate field
* move parse_token_data_v2 to get_transaction_with_compression_info
* chore: add test description
* wip
* register getCompressedAccountProofV2
* fix: update test assertions
* fix: GetQueueElementsResponseValue camelCase
* feat: batch address update support
* feat: implement batch address tree tests
* refactor: remove debug print statements from multiple modules
* fix: update .gitignore to ignore all .env files
* fix: use create_dir_all for creating temp directory
* feat: add legacy state and address trees to tree_info
* feat: implement conversion from PublicTransactionEventV1 and V2 to PublicTransactionEvent
* refactor: remove PublicTransactionEvent enum and related conversions
* update tests data
* update tests data
* remove leftover
* remove leftover
* remove leftover
* update batched address tree tests
* batched address tree tests wip
* cleanup
* cleanup
* cleanup
* cleanup
* add support for custom account compression program ID
* * For get_multiple_new_address_proofs if request tree is V2, requested address is in the AddressQueue but not in tree yet, we should return error. For V1 trees we still return non-inclusion proof, because we don't have information about V1 queue.
* Add offset as request parameter to get_batch_address_update_info.
* Various cleanups
* Switch to `solana-pubkey` and update dependencies.
* Switch to `solana-pubkey` and update dependencies.
* Update import for Pubkey from solana_pubkey and adjust account key mapping
* update tree height handling and clean up debug prints
* fix test environment comment and increment state tree height for leaf node persistence
* test tx data
* test tx data
* test tx data
* test tx data
* refactor address tree handling and improve logging for batch updates
* refactor batched address tests
* Move `light-merkle-tree-reference` to dev-dependencies
* fix: test batched tree transactions test (#24)
* refactor: validity proof v2 response layout
* refactor: update dependencies and improve proof handling
* 1. updated proof deserialization to skip validation for performance improvements by setting `Validate::No`.
2. removed commented-out unused variables in the prover logic.
* updated `negate_proof` to return `Result` for better error handling
* chore: update ark-* to 0.5
* refactor: remove commented-out code for clarity in v2.rs
* refactor: prover logic, dependency updates (#28)
* chore: update dependencies and clean up unused packages
* refactor: consolidate PublicTransactionEvent structs and update references
* refactor: adjust root_seq assignment and add Debug trait to struct definitions
* refactor: proof compression and error handling in prover
* refactor: simplify AddressProofInputs, rootIndex: u16
* refactor: extract proof generation for empty tree into separate function
* refactor: improve transaction parsing logic and clean up code
* Update prover docker image to sergeytimoshin/prover:latest
* Export proof input types for OpenAPI schema generation
* chore: remove tree.txt, replace git dependencies with released crates
* chore: replace git dev dep with released dep
* chore: rename start_offset -> start_queue_index, zkp_batch_size -> limit, num_elements -> limit
---------
Co-authored-by: Sergey Timoshin <sergeytimoshin@proton.me>
Co-authored-by: Swenschaeferjohann <swen@lightprotocol.com>
Co-authored-by: Sergey Timoshin <timoshin.sergey@gmail.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@sergeytimoshin@ananas-block
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

fix: test batched tree transactions test - #24

Merged
ananas-block merged 2 commits into
jorrit/feat-add-testfrom
sergey/fix-test_batched_tree_transactions
May 7, 2025
Merged

fix: test batched tree transactions test#24
ananas-block merged 2 commits into
jorrit/feat-add-testfrom
sergey/fix-test_batched_tree_transactions

Conversation

@sergeytimoshin

Copy link
Copy Markdown

No description provided.

@ananas-block
ananas-block merged commit 6bbf1ca into jorrit/feat-add-testMay 7, 2025
@ananas-block
ananas-block deleted the sergey/fix-test_batched_tree_transactions branch May 7, 2025 21:05
sergeytimoshin added a commit that referenced this pull request Jun 8, 2025
* refactor: add support for batched updates
* refactor: add support for batched updates
Update src/dao/generated/accounts.rs
Co-authored-by: ananas-block <58553958+ananas-block@users.noreply.github.com>
Update src/ingester/parser/batch_event_parser.rs
Co-authored-by: ananas-block <58553958+ananas-block@users.noreply.github.com>
refactor: remove getSubtrees method and related API documentation
Update src/ingester/parser/mod.rs
Co-authored-by: ananas-block <58553958+ananas-block@users.noreply.github.com>
Refactor struct fields to use camelCase naming convention
replace the `calculate_two_inputs_hash_chain` function with the `create_two_inputs_hash_chain` method from the `light_compressed_account` crate.
Refactor error handling in `parse_public_transaction_event_v2`
format
Remove obsolete and commented-out account update code
Move `node_index_to_leaf_index` function to the appropriate location and remove dead code
Add comments to clarify nullifier field usage
Add comments to clarify tx_hash field usage in account struct
Add comments to clarify seq field usage in account struct
Add comments to clarify nullifier_queue_index field usage in account struct
Refactor get_compressed_accounts_by_owner module and add common utilities for account filtering
add validity proof v2
Add get_validity_proof_v2 and update API specifications
remove unnecessary logging
fix: mock tests
fix for getValidityProof (v1)
refactor: remove unused tree height parameters and add getValidityProofV2 method
fix: update method name from address_from_bytes to state_from_bytes in mod.rs consistency.
fix indexed_accounts query
fix get_compressed_account_by_owner v1
refactor: simplify account handling and improve code consistency in transaction processing
refactor: remove queue_position handling and update related queries and indexes
upd .gitignore
cargo fmt and fixed tests
* fix mock test
* refactor: validate heights of inclusion and non-inclusion proofs
* refactor: implement AccountWithContext constructor and remove parse_account_data function
* refactor: move spend_input_accounts_batched function to spend_batch module
* refactor: rename spend_batch module to spend and move spend_input_accounts function
* refactor: streamline transaction parsing
* refactor: restructure ingester/parser module
* refactor: restructure ingester/persist module
* add v2 endpoints
wip e2e test
make get_compressed_accounts_by_owner_v2 return AccountV2 primitive
add mock_tests.rs
add prove_by_index to AccountV2
refactor: validate heights of inclusion and non-inclusion proofs
refactor: implement AccountWithContext constructor and remove parse_account_data function
refactor: move spend_input_accounts_batched function to spend_batch module
refactor: rename spend_batch module to spend and move spend_input_accounts function
refactor: streamline transaction parsing
refactor: restructure ingester/parser module
refactor: restructure ingester/persist module
Co-authored-by: ananas-block <58553958+ananas-block@users.noreply.github.com>
Co-authored-by: ananas-block <58553958+ananas-block@users.noreply.github.com>
Co-authored-by: ananas-block <58553958+ananas-block@users.noreply.github.com>
test: add compressed token in batched tree test
* chore: renamed tests, wip reference Merkle tree to assert root
* test: correct root
* test: add get_queue_elements test
* refactor: get_validity_proof_v2 and add tests
* removed leftover print
* feat: add v2 endpoints and update response schemas for compressed accounts and transactions
* fix: tests
* fix: get_queue_elements response ordering
* fix: spend_input_accounts_batched
* parser cleanup
* refactor: persist batch events
* chore: add get_queue_elements test
* fix: flaky nullification of batched input accounts
* updated dep commit
* refactor: update queue size calculation for batch inputs based on state tree height
* feat: enhance account structure with tree type and update queue handling
* refactor: fix SQL syntax in account initialization and update queue assertion
* refactor: correct queue access in batched state tree tests and adjust instruction index check
* feat: update AccountContext to include tree type in mock tests and utils
* tests wip
* feat: add queue and tree_type fields to mock test data
* chore: update light-protocol dependencies
* refactor: update light-protocol dependencies and improve error handling in API functions
* cleanup
* feat: update API responses to include V2 schemas and add new fields for compression info
* chore: rename GetCompressedAccountsByOwnerV2Response -> GetCompressedAccountsByOwnerResponseV2
* chore: updated to refactored event_from_light_transaction
* test: four cpi events
* * add validation for maximum allowed hashes in get_validity_proof_v2 function
* sort accounts by the same order as request.hashes
* feat: refactor account structures to use MerkleContextV2 and update API schemas
* pass as u16
* rm
* refactor: remove constant for maximum allowed hashes in get_validity_proof_v2 function
* feat: move account*, context and limit structs to typedefs
* fix: update parse_leaf_index function to accept i64 and adjust related usages
* feat: move TryFrom for AccountWithContext to account/context.rs
* refactor: remove parse_discriminator function from utils.rs
* refactored event to use unified enum doesn't work
* add new test data
* fix: refactor
* * implement v2 API for compressed account proofs
* refactored TreeAndQueue and tree heights helpers
* Update src/api/method/get_compressed_account_proof/v2.rs
Co-authored-by: ananas-block <58553958+ananas-block@users.noreply.github.com>
* fix: add error handling for mismatched accounts and hashes in v2 API
* fix: add error handling for missing account in v2 API
* feat: integrate ContextInfo into GetCompressedAccountProofResponseValueV2
* refactor: clean up imports in tx_event_parser.rs
* refactor: remove debug print statement from leaf_node.rs
* refactor: simplify GetMultipleCompressedAccountProofsResponseValueV2 structure and update related parsing logic
* refactor: simplify GetMultipleCompressedAccountProofsResponseV2 by removing nested structure
* feat: add v2 endpoints for compressed account proofs and update API specifications
* refactor: remove debug print statements and clean up imports in API modules
* consistent tree field in v2 responses
* validityproofv2 merkle_context -> merkle_contexts
* update naming for get_transaction_with_compression_info helpers v2
* fix batch events processing
cleanup
cleanup
* remove unused AccountContext
* chore: remove unused StateUpdate field
* move parse_token_data_v2 to get_transaction_with_compression_info
* chore: add test description
* wip
* register getCompressedAccountProofV2
* fix: update test assertions
* fix: GetQueueElementsResponseValue camelCase
* feat: batch address update support
* feat: implement batch address tree tests
* refactor: remove debug print statements from multiple modules
* fix: update .gitignore to ignore all .env files
* fix: use create_dir_all for creating temp directory
* feat: add legacy state and address trees to tree_info
* feat: implement conversion from PublicTransactionEventV1 and V2 to PublicTransactionEvent
* refactor: remove PublicTransactionEvent enum and related conversions
* update tests data
* update tests data
* remove leftover
* remove leftover
* remove leftover
* update batched address tree tests
* batched address tree tests wip
* cleanup
* cleanup
* cleanup
* cleanup
* add support for custom account compression program ID
* * For get_multiple_new_address_proofs if request tree is V2, requested address is in the AddressQueue but not in tree yet, we should return error. For V1 trees we still return non-inclusion proof, because we don't have information about V1 queue.
* Add offset as request parameter to get_batch_address_update_info.
* Various cleanups
* Switch to `solana-pubkey` and update dependencies.
* Switch to `solana-pubkey` and update dependencies.
* Update import for Pubkey from solana_pubkey and adjust account key mapping
* update tree height handling and clean up debug prints
* fix test environment comment and increment state tree height for leaf node persistence
* test tx data
* test tx data
* test tx data
* test tx data
* refactor address tree handling and improve logging for batch updates
* refactor batched address tests
* Move `light-merkle-tree-reference` to dev-dependencies
* fix: test batched tree transactions test (#24)
* refactor: validity proof v2 response layout
* refactor: update dependencies and improve proof handling
* 1. updated proof deserialization to skip validation for performance improvements by setting `Validate::No`.
2. removed commented-out unused variables in the prover logic.
* updated `negate_proof` to return `Result` for better error handling
* chore: update ark-* to 0.5
* refactor: remove commented-out code for clarity in v2.rs
* refactor: prover logic, dependency updates (#28)
* chore: update dependencies and clean up unused packages
* refactor: consolidate PublicTransactionEvent structs and update references
* refactor: adjust root_seq assignment and add Debug trait to struct definitions
* refactor: proof compression and error handling in prover
* refactor: simplify AddressProofInputs, rootIndex: u16
* refactor: extract proof generation for empty tree into separate function
* refactor: improve transaction parsing logic and clean up code
* Update prover docker image to sergeytimoshin/prover:latest
* Export proof input types for OpenAPI schema generation
* chore: remove tree.txt, replace git dependencies with released crates
* chore: replace git dev dep with released dep
* chore: rename start_offset -> start_queue_index, zkp_batch_size -> limit, num_elements -> limit
---------
Co-authored-by: Sergey Timoshin <sergeytimoshin@proton.me>
Co-authored-by: Swenschaeferjohann <swen@lightprotocol.com>
Co-authored-by: Sergey Timoshin <timoshin.sergey@gmail.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@sergeytimoshin@ananas-block
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

fix: test batched tree transactions test - #24

Merged
ananas-block merged 2 commits into
jorrit/feat-add-testfrom
sergey/fix-test_batched_tree_transactions
May 7, 2025
Merged

fix: test batched tree transactions test#24
ananas-block merged 2 commits into
jorrit/feat-add-testfrom
sergey/fix-test_batched_tree_transactions

Conversation

@sergeytimoshin

Copy link
Copy Markdown

No description provided.

@ananas-block
ananas-block merged commit 6bbf1ca into jorrit/feat-add-testMay 7, 2025
@ananas-block
ananas-block deleted the sergey/fix-test_batched_tree_transactions branch May 7, 2025 21:05
sergeytimoshin added a commit that referenced this pull request Jun 8, 2025
* refactor: add support for batched updates
* refactor: add support for batched updates
Update src/dao/generated/accounts.rs
Co-authored-by: ananas-block <58553958+ananas-block@users.noreply.github.com>
Update src/ingester/parser/batch_event_parser.rs
Co-authored-by: ananas-block <58553958+ananas-block@users.noreply.github.com>
refactor: remove getSubtrees method and related API documentation
Update src/ingester/parser/mod.rs
Co-authored-by: ananas-block <58553958+ananas-block@users.noreply.github.com>
Refactor struct fields to use camelCase naming convention
replace the `calculate_two_inputs_hash_chain` function with the `create_two_inputs_hash_chain` method from the `light_compressed_account` crate.
Refactor error handling in `parse_public_transaction_event_v2`
format
Remove obsolete and commented-out account update code
Move `node_index_to_leaf_index` function to the appropriate location and remove dead code
Add comments to clarify nullifier field usage
Add comments to clarify tx_hash field usage in account struct
Add comments to clarify seq field usage in account struct
Add comments to clarify nullifier_queue_index field usage in account struct
Refactor get_compressed_accounts_by_owner module and add common utilities for account filtering
add validity proof v2
Add get_validity_proof_v2 and update API specifications
remove unnecessary logging
fix: mock tests
fix for getValidityProof (v1)
refactor: remove unused tree height parameters and add getValidityProofV2 method
fix: update method name from address_from_bytes to state_from_bytes in mod.rs consistency.
fix indexed_accounts query
fix get_compressed_account_by_owner v1
refactor: simplify account handling and improve code consistency in transaction processing
refactor: remove queue_position handling and update related queries and indexes
upd .gitignore
cargo fmt and fixed tests
* fix mock test
* refactor: validate heights of inclusion and non-inclusion proofs
* refactor: implement AccountWithContext constructor and remove parse_account_data function
* refactor: move spend_input_accounts_batched function to spend_batch module
* refactor: rename spend_batch module to spend and move spend_input_accounts function
* refactor: streamline transaction parsing
* refactor: restructure ingester/parser module
* refactor: restructure ingester/persist module
* add v2 endpoints
wip e2e test
make get_compressed_accounts_by_owner_v2 return AccountV2 primitive
add mock_tests.rs
add prove_by_index to AccountV2
refactor: validate heights of inclusion and non-inclusion proofs
refactor: implement AccountWithContext constructor and remove parse_account_data function
refactor: move spend_input_accounts_batched function to spend_batch module
refactor: rename spend_batch module to spend and move spend_input_accounts function
refactor: streamline transaction parsing
refactor: restructure ingester/parser module
refactor: restructure ingester/persist module
Co-authored-by: ananas-block <58553958+ananas-block@users.noreply.github.com>
Co-authored-by: ananas-block <58553958+ananas-block@users.noreply.github.com>
Co-authored-by: ananas-block <58553958+ananas-block@users.noreply.github.com>
test: add compressed token in batched tree test
* chore: renamed tests, wip reference Merkle tree to assert root
* test: correct root
* test: add get_queue_elements test
* refactor: get_validity_proof_v2 and add tests
* removed leftover print
* feat: add v2 endpoints and update response schemas for compressed accounts and transactions
* fix: tests
* fix: get_queue_elements response ordering
* fix: spend_input_accounts_batched
* parser cleanup
* refactor: persist batch events
* chore: add get_queue_elements test
* fix: flaky nullification of batched input accounts
* updated dep commit
* refactor: update queue size calculation for batch inputs based on state tree height
* feat: enhance account structure with tree type and update queue handling
* refactor: fix SQL syntax in account initialization and update queue assertion
* refactor: correct queue access in batched state tree tests and adjust instruction index check
* feat: update AccountContext to include tree type in mock tests and utils
* tests wip
* feat: add queue and tree_type fields to mock test data
* chore: update light-protocol dependencies
* refactor: update light-protocol dependencies and improve error handling in API functions
* cleanup
* feat: update API responses to include V2 schemas and add new fields for compression info
* chore: rename GetCompressedAccountsByOwnerV2Response -> GetCompressedAccountsByOwnerResponseV2
* chore: updated to refactored event_from_light_transaction
* test: four cpi events
* * add validation for maximum allowed hashes in get_validity_proof_v2 function
* sort accounts by the same order as request.hashes
* feat: refactor account structures to use MerkleContextV2 and update API schemas
* pass as u16
* rm
* refactor: remove constant for maximum allowed hashes in get_validity_proof_v2 function
* feat: move account*, context and limit structs to typedefs
* fix: update parse_leaf_index function to accept i64 and adjust related usages
* feat: move TryFrom for AccountWithContext to account/context.rs
* refactor: remove parse_discriminator function from utils.rs
* refactored event to use unified enum doesn't work
* add new test data
* fix: refactor
* * implement v2 API for compressed account proofs
* refactored TreeAndQueue and tree heights helpers
* Update src/api/method/get_compressed_account_proof/v2.rs
Co-authored-by: ananas-block <58553958+ananas-block@users.noreply.github.com>
* fix: add error handling for mismatched accounts and hashes in v2 API
* fix: add error handling for missing account in v2 API
* feat: integrate ContextInfo into GetCompressedAccountProofResponseValueV2
* refactor: clean up imports in tx_event_parser.rs
* refactor: remove debug print statement from leaf_node.rs
* refactor: simplify GetMultipleCompressedAccountProofsResponseValueV2 structure and update related parsing logic
* refactor: simplify GetMultipleCompressedAccountProofsResponseV2 by removing nested structure
* feat: add v2 endpoints for compressed account proofs and update API specifications
* refactor: remove debug print statements and clean up imports in API modules
* consistent tree field in v2 responses
* validityproofv2 merkle_context -> merkle_contexts
* update naming for get_transaction_with_compression_info helpers v2
* fix batch events processing
cleanup
cleanup
* remove unused AccountContext
* chore: remove unused StateUpdate field
* move parse_token_data_v2 to get_transaction_with_compression_info
* chore: add test description
* wip
* register getCompressedAccountProofV2
* fix: update test assertions
* fix: GetQueueElementsResponseValue camelCase
* feat: batch address update support
* feat: implement batch address tree tests
* refactor: remove debug print statements from multiple modules
* fix: update .gitignore to ignore all .env files
* fix: use create_dir_all for creating temp directory
* feat: add legacy state and address trees to tree_info
* feat: implement conversion from PublicTransactionEventV1 and V2 to PublicTransactionEvent
* refactor: remove PublicTransactionEvent enum and related conversions
* update tests data
* update tests data
* remove leftover
* remove leftover
* remove leftover
* update batched address tree tests
* batched address tree tests wip
* cleanup
* cleanup
* cleanup
* cleanup
* add support for custom account compression program ID
* * For get_multiple_new_address_proofs if request tree is V2, requested address is in the AddressQueue but not in tree yet, we should return error. For V1 trees we still return non-inclusion proof, because we don't have information about V1 queue.
* Add offset as request parameter to get_batch_address_update_info.
* Various cleanups
* Switch to `solana-pubkey` and update dependencies.
* Switch to `solana-pubkey` and update dependencies.
* Update import for Pubkey from solana_pubkey and adjust account key mapping
* update tree height handling and clean up debug prints
* fix test environment comment and increment state tree height for leaf node persistence
* test tx data
* test tx data
* test tx data
* test tx data
* refactor address tree handling and improve logging for batch updates
* refactor batched address tests
* Move `light-merkle-tree-reference` to dev-dependencies
* fix: test batched tree transactions test (#24)
* refactor: validity proof v2 response layout
* refactor: update dependencies and improve proof handling
* 1. updated proof deserialization to skip validation for performance improvements by setting `Validate::No`.
2. removed commented-out unused variables in the prover logic.
* updated `negate_proof` to return `Result` for better error handling
* chore: update ark-* to 0.5
* refactor: remove commented-out code for clarity in v2.rs
* refactor: prover logic, dependency updates (#28)
* chore: update dependencies and clean up unused packages
* refactor: consolidate PublicTransactionEvent structs and update references
* refactor: adjust root_seq assignment and add Debug trait to struct definitions
* refactor: proof compression and error handling in prover
* refactor: simplify AddressProofInputs, rootIndex: u16
* refactor: extract proof generation for empty tree into separate function
* refactor: improve transaction parsing logic and clean up code
* Update prover docker image to sergeytimoshin/prover:latest
* Export proof input types for OpenAPI schema generation
* chore: remove tree.txt, replace git dependencies with released crates
* chore: replace git dev dep with released dep
* chore: rename start_offset -> start_queue_index, zkp_batch_size -> limit, num_elements -> limit
---------
Co-authored-by: Sergey Timoshin <sergeytimoshin@proton.me>
Co-authored-by: Swenschaeferjohann <swen@lightprotocol.com>
Co-authored-by: Sergey Timoshin <timoshin.sergey@gmail.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@sergeytimoshin@ananas-block
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

fix: test batched tree transactions test - #24

Merged
ananas-block merged 2 commits into
jorrit/feat-add-testfrom
sergey/fix-test_batched_tree_transactions
May 7, 2025
Merged

fix: test batched tree transactions test#24
ananas-block merged 2 commits into
jorrit/feat-add-testfrom
sergey/fix-test_batched_tree_transactions

Conversation

@sergeytimoshin

Copy link
Copy Markdown

No description provided.

@ananas-block
ananas-block merged commit 6bbf1ca into jorrit/feat-add-testMay 7, 2025
@ananas-block
ananas-block deleted the sergey/fix-test_batched_tree_transactions branch May 7, 2025 21:05
sergeytimoshin added a commit that referenced this pull request Jun 8, 2025
* refactor: add support for batched updates
* refactor: add support for batched updates
Update src/dao/generated/accounts.rs
Co-authored-by: ananas-block <58553958+ananas-block@users.noreply.github.com>
Update src/ingester/parser/batch_event_parser.rs
Co-authored-by: ananas-block <58553958+ananas-block@users.noreply.github.com>
refactor: remove getSubtrees method and related API documentation
Update src/ingester/parser/mod.rs
Co-authored-by: ananas-block <58553958+ananas-block@users.noreply.github.com>
Refactor struct fields to use camelCase naming convention
replace the `calculate_two_inputs_hash_chain` function with the `create_two_inputs_hash_chain` method from the `light_compressed_account` crate.
Refactor error handling in `parse_public_transaction_event_v2`
format
Remove obsolete and commented-out account update code
Move `node_index_to_leaf_index` function to the appropriate location and remove dead code
Add comments to clarify nullifier field usage
Add comments to clarify tx_hash field usage in account struct
Add comments to clarify seq field usage in account struct
Add comments to clarify nullifier_queue_index field usage in account struct
Refactor get_compressed_accounts_by_owner module and add common utilities for account filtering
add validity proof v2
Add get_validity_proof_v2 and update API specifications
remove unnecessary logging
fix: mock tests
fix for getValidityProof (v1)
refactor: remove unused tree height parameters and add getValidityProofV2 method
fix: update method name from address_from_bytes to state_from_bytes in mod.rs consistency.
fix indexed_accounts query
fix get_compressed_account_by_owner v1
refactor: simplify account handling and improve code consistency in transaction processing
refactor: remove queue_position handling and update related queries and indexes
upd .gitignore
cargo fmt and fixed tests
* fix mock test
* refactor: validate heights of inclusion and non-inclusion proofs
* refactor: implement AccountWithContext constructor and remove parse_account_data function
* refactor: move spend_input_accounts_batched function to spend_batch module
* refactor: rename spend_batch module to spend and move spend_input_accounts function
* refactor: streamline transaction parsing
* refactor: restructure ingester/parser module
* refactor: restructure ingester/persist module
* add v2 endpoints
wip e2e test
make get_compressed_accounts_by_owner_v2 return AccountV2 primitive
add mock_tests.rs
add prove_by_index to AccountV2
refactor: validate heights of inclusion and non-inclusion proofs
refactor: implement AccountWithContext constructor and remove parse_account_data function
refactor: move spend_input_accounts_batched function to spend_batch module
refactor: rename spend_batch module to spend and move spend_input_accounts function
refactor: streamline transaction parsing
refactor: restructure ingester/parser module
refactor: restructure ingester/persist module
Co-authored-by: ananas-block <58553958+ananas-block@users.noreply.github.com>
Co-authored-by: ananas-block <58553958+ananas-block@users.noreply.github.com>
Co-authored-by: ananas-block <58553958+ananas-block@users.noreply.github.com>
test: add compressed token in batched tree test
* chore: renamed tests, wip reference Merkle tree to assert root
* test: correct root
* test: add get_queue_elements test
* refactor: get_validity_proof_v2 and add tests
* removed leftover print
* feat: add v2 endpoints and update response schemas for compressed accounts and transactions
* fix: tests
* fix: get_queue_elements response ordering
* fix: spend_input_accounts_batched
* parser cleanup
* refactor: persist batch events
* chore: add get_queue_elements test
* fix: flaky nullification of batched input accounts
* updated dep commit
* refactor: update queue size calculation for batch inputs based on state tree height
* feat: enhance account structure with tree type and update queue handling
* refactor: fix SQL syntax in account initialization and update queue assertion
* refactor: correct queue access in batched state tree tests and adjust instruction index check
* feat: update AccountContext to include tree type in mock tests and utils
* tests wip
* feat: add queue and tree_type fields to mock test data
* chore: update light-protocol dependencies
* refactor: update light-protocol dependencies and improve error handling in API functions
* cleanup
* feat: update API responses to include V2 schemas and add new fields for compression info
* chore: rename GetCompressedAccountsByOwnerV2Response -> GetCompressedAccountsByOwnerResponseV2
* chore: updated to refactored event_from_light_transaction
* test: four cpi events
* * add validation for maximum allowed hashes in get_validity_proof_v2 function
* sort accounts by the same order as request.hashes
* feat: refactor account structures to use MerkleContextV2 and update API schemas
* pass as u16
* rm
* refactor: remove constant for maximum allowed hashes in get_validity_proof_v2 function
* feat: move account*, context and limit structs to typedefs
* fix: update parse_leaf_index function to accept i64 and adjust related usages
* feat: move TryFrom for AccountWithContext to account/context.rs
* refactor: remove parse_discriminator function from utils.rs
* refactored event to use unified enum doesn't work
* add new test data
* fix: refactor
* * implement v2 API for compressed account proofs
* refactored TreeAndQueue and tree heights helpers
* Update src/api/method/get_compressed_account_proof/v2.rs
Co-authored-by: ananas-block <58553958+ananas-block@users.noreply.github.com>
* fix: add error handling for mismatched accounts and hashes in v2 API
* fix: add error handling for missing account in v2 API
* feat: integrate ContextInfo into GetCompressedAccountProofResponseValueV2
* refactor: clean up imports in tx_event_parser.rs
* refactor: remove debug print statement from leaf_node.rs
* refactor: simplify GetMultipleCompressedAccountProofsResponseValueV2 structure and update related parsing logic
* refactor: simplify GetMultipleCompressedAccountProofsResponseV2 by removing nested structure
* feat: add v2 endpoints for compressed account proofs and update API specifications
* refactor: remove debug print statements and clean up imports in API modules
* consistent tree field in v2 responses
* validityproofv2 merkle_context -> merkle_contexts
* update naming for get_transaction_with_compression_info helpers v2
* fix batch events processing
cleanup
cleanup
* remove unused AccountContext
* chore: remove unused StateUpdate field
* move parse_token_data_v2 to get_transaction_with_compression_info
* chore: add test description
* wip
* register getCompressedAccountProofV2
* fix: update test assertions
* fix: GetQueueElementsResponseValue camelCase
* feat: batch address update support
* feat: implement batch address tree tests
* refactor: remove debug print statements from multiple modules
* fix: update .gitignore to ignore all .env files
* fix: use create_dir_all for creating temp directory
* feat: add legacy state and address trees to tree_info
* feat: implement conversion from PublicTransactionEventV1 and V2 to PublicTransactionEvent
* refactor: remove PublicTransactionEvent enum and related conversions
* update tests data
* update tests data
* remove leftover
* remove leftover
* remove leftover
* update batched address tree tests
* batched address tree tests wip
* cleanup
* cleanup
* cleanup
* cleanup
* add support for custom account compression program ID
* * For get_multiple_new_address_proofs if request tree is V2, requested address is in the AddressQueue but not in tree yet, we should return error. For V1 trees we still return non-inclusion proof, because we don't have information about V1 queue.
* Add offset as request parameter to get_batch_address_update_info.
* Various cleanups
* Switch to `solana-pubkey` and update dependencies.
* Switch to `solana-pubkey` and update dependencies.
* Update import for Pubkey from solana_pubkey and adjust account key mapping
* update tree height handling and clean up debug prints
* fix test environment comment and increment state tree height for leaf node persistence
* test tx data
* test tx data
* test tx data
* test tx data
* refactor address tree handling and improve logging for batch updates
* refactor batched address tests
* Move `light-merkle-tree-reference` to dev-dependencies
* fix: test batched tree transactions test (#24)
* refactor: validity proof v2 response layout
* refactor: update dependencies and improve proof handling
* 1. updated proof deserialization to skip validation for performance improvements by setting `Validate::No`.
2. removed commented-out unused variables in the prover logic.
* updated `negate_proof` to return `Result` for better error handling
* chore: update ark-* to 0.5
* refactor: remove commented-out code for clarity in v2.rs
* refactor: prover logic, dependency updates (#28)
* chore: update dependencies and clean up unused packages
* refactor: consolidate PublicTransactionEvent structs and update references
* refactor: adjust root_seq assignment and add Debug trait to struct definitions
* refactor: proof compression and error handling in prover
* refactor: simplify AddressProofInputs, rootIndex: u16
* refactor: extract proof generation for empty tree into separate function
* refactor: improve transaction parsing logic and clean up code
* Update prover docker image to sergeytimoshin/prover:latest
* Export proof input types for OpenAPI schema generation
* chore: remove tree.txt, replace git dependencies with released crates
* chore: replace git dev dep with released dep
* chore: rename start_offset -> start_queue_index, zkp_batch_size -> limit, num_elements -> limit
---------
Co-authored-by: Sergey Timoshin <sergeytimoshin@proton.me>
Co-authored-by: Swenschaeferjohann <swen@lightprotocol.com>
Co-authored-by: Sergey Timoshin <timoshin.sergey@gmail.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@sergeytimoshin@ananas-block
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

fix: test batched tree transactions test - #24

Merged
ananas-block merged 2 commits into
jorrit/feat-add-testfrom
sergey/fix-test_batched_tree_transactions
May 7, 2025
Merged

fix: test batched tree transactions test#24
ananas-block merged 2 commits into
jorrit/feat-add-testfrom
sergey/fix-test_batched_tree_transactions

Conversation

@sergeytimoshin

Copy link
Copy Markdown

No description provided.

@ananas-block
ananas-block merged commit 6bbf1ca into jorrit/feat-add-testMay 7, 2025
@ananas-block
ananas-block deleted the sergey/fix-test_batched_tree_transactions branch May 7, 2025 21:05
sergeytimoshin added a commit that referenced this pull request Jun 8, 2025
* refactor: add support for batched updates
* refactor: add support for batched updates
Update src/dao/generated/accounts.rs
Co-authored-by: ananas-block <58553958+ananas-block@users.noreply.github.com>
Update src/ingester/parser/batch_event_parser.rs
Co-authored-by: ananas-block <58553958+ananas-block@users.noreply.github.com>
refactor: remove getSubtrees method and related API documentation
Update src/ingester/parser/mod.rs
Co-authored-by: ananas-block <58553958+ananas-block@users.noreply.github.com>
Refactor struct fields to use camelCase naming convention
replace the `calculate_two_inputs_hash_chain` function with the `create_two_inputs_hash_chain` method from the `light_compressed_account` crate.
Refactor error handling in `parse_public_transaction_event_v2`
format
Remove obsolete and commented-out account update code
Move `node_index_to_leaf_index` function to the appropriate location and remove dead code
Add comments to clarify nullifier field usage
Add comments to clarify tx_hash field usage in account struct
Add comments to clarify seq field usage in account struct
Add comments to clarify nullifier_queue_index field usage in account struct
Refactor get_compressed_accounts_by_owner module and add common utilities for account filtering
add validity proof v2
Add get_validity_proof_v2 and update API specifications
remove unnecessary logging
fix: mock tests
fix for getValidityProof (v1)
refactor: remove unused tree height parameters and add getValidityProofV2 method
fix: update method name from address_from_bytes to state_from_bytes in mod.rs consistency.
fix indexed_accounts query
fix get_compressed_account_by_owner v1
refactor: simplify account handling and improve code consistency in transaction processing
refactor: remove queue_position handling and update related queries and indexes
upd .gitignore
cargo fmt and fixed tests
* fix mock test
* refactor: validate heights of inclusion and non-inclusion proofs
* refactor: implement AccountWithContext constructor and remove parse_account_data function
* refactor: move spend_input_accounts_batched function to spend_batch module
* refactor: rename spend_batch module to spend and move spend_input_accounts function
* refactor: streamline transaction parsing
* refactor: restructure ingester/parser module
* refactor: restructure ingester/persist module
* add v2 endpoints
wip e2e test
make get_compressed_accounts_by_owner_v2 return AccountV2 primitive
add mock_tests.rs
add prove_by_index to AccountV2
refactor: validate heights of inclusion and non-inclusion proofs
refactor: implement AccountWithContext constructor and remove parse_account_data function
refactor: move spend_input_accounts_batched function to spend_batch module
refactor: rename spend_batch module to spend and move spend_input_accounts function
refactor: streamline transaction parsing
refactor: restructure ingester/parser module
refactor: restructure ingester/persist module
Co-authored-by: ananas-block <58553958+ananas-block@users.noreply.github.com>
Co-authored-by: ananas-block <58553958+ananas-block@users.noreply.github.com>
Co-authored-by: ananas-block <58553958+ananas-block@users.noreply.github.com>
test: add compressed token in batched tree test
* chore: renamed tests, wip reference Merkle tree to assert root
* test: correct root
* test: add get_queue_elements test
* refactor: get_validity_proof_v2 and add tests
* removed leftover print
* feat: add v2 endpoints and update response schemas for compressed accounts and transactions
* fix: tests
* fix: get_queue_elements response ordering
* fix: spend_input_accounts_batched
* parser cleanup
* refactor: persist batch events
* chore: add get_queue_elements test
* fix: flaky nullification of batched input accounts
* updated dep commit
* refactor: update queue size calculation for batch inputs based on state tree height
* feat: enhance account structure with tree type and update queue handling
* refactor: fix SQL syntax in account initialization and update queue assertion
* refactor: correct queue access in batched state tree tests and adjust instruction index check
* feat: update AccountContext to include tree type in mock tests and utils
* tests wip
* feat: add queue and tree_type fields to mock test data
* chore: update light-protocol dependencies
* refactor: update light-protocol dependencies and improve error handling in API functions
* cleanup
* feat: update API responses to include V2 schemas and add new fields for compression info
* chore: rename GetCompressedAccountsByOwnerV2Response -> GetCompressedAccountsByOwnerResponseV2
* chore: updated to refactored event_from_light_transaction
* test: four cpi events
* * add validation for maximum allowed hashes in get_validity_proof_v2 function
* sort accounts by the same order as request.hashes
* feat: refactor account structures to use MerkleContextV2 and update API schemas
* pass as u16
* rm
* refactor: remove constant for maximum allowed hashes in get_validity_proof_v2 function
* feat: move account*, context and limit structs to typedefs
* fix: update parse_leaf_index function to accept i64 and adjust related usages
* feat: move TryFrom for AccountWithContext to account/context.rs
* refactor: remove parse_discriminator function from utils.rs
* refactored event to use unified enum doesn't work
* add new test data
* fix: refactor
* * implement v2 API for compressed account proofs
* refactored TreeAndQueue and tree heights helpers
* Update src/api/method/get_compressed_account_proof/v2.rs
Co-authored-by: ananas-block <58553958+ananas-block@users.noreply.github.com>
* fix: add error handling for mismatched accounts and hashes in v2 API
* fix: add error handling for missing account in v2 API
* feat: integrate ContextInfo into GetCompressedAccountProofResponseValueV2
* refactor: clean up imports in tx_event_parser.rs
* refactor: remove debug print statement from leaf_node.rs
* refactor: simplify GetMultipleCompressedAccountProofsResponseValueV2 structure and update related parsing logic
* refactor: simplify GetMultipleCompressedAccountProofsResponseV2 by removing nested structure
* feat: add v2 endpoints for compressed account proofs and update API specifications
* refactor: remove debug print statements and clean up imports in API modules
* consistent tree field in v2 responses
* validityproofv2 merkle_context -> merkle_contexts
* update naming for get_transaction_with_compression_info helpers v2
* fix batch events processing
cleanup
cleanup
* remove unused AccountContext
* chore: remove unused StateUpdate field
* move parse_token_data_v2 to get_transaction_with_compression_info
* chore: add test description
* wip
* register getCompressedAccountProofV2
* fix: update test assertions
* fix: GetQueueElementsResponseValue camelCase
* feat: batch address update support
* feat: implement batch address tree tests
* refactor: remove debug print statements from multiple modules
* fix: update .gitignore to ignore all .env files
* fix: use create_dir_all for creating temp directory
* feat: add legacy state and address trees to tree_info
* feat: implement conversion from PublicTransactionEventV1 and V2 to PublicTransactionEvent
* refactor: remove PublicTransactionEvent enum and related conversions
* update tests data
* update tests data
* remove leftover
* remove leftover
* remove leftover
* update batched address tree tests
* batched address tree tests wip
* cleanup
* cleanup
* cleanup
* cleanup
* add support for custom account compression program ID
* * For get_multiple_new_address_proofs if request tree is V2, requested address is in the AddressQueue but not in tree yet, we should return error. For V1 trees we still return non-inclusion proof, because we don't have information about V1 queue.
* Add offset as request parameter to get_batch_address_update_info.
* Various cleanups
* Switch to `solana-pubkey` and update dependencies.
* Switch to `solana-pubkey` and update dependencies.
* Update import for Pubkey from solana_pubkey and adjust account key mapping
* update tree height handling and clean up debug prints
* fix test environment comment and increment state tree height for leaf node persistence
* test tx data
* test tx data
* test tx data
* test tx data
* refactor address tree handling and improve logging for batch updates
* refactor batched address tests
* Move `light-merkle-tree-reference` to dev-dependencies
* fix: test batched tree transactions test (#24)
* refactor: validity proof v2 response layout
* refactor: update dependencies and improve proof handling
* 1. updated proof deserialization to skip validation for performance improvements by setting `Validate::No`.
2. removed commented-out unused variables in the prover logic.
* updated `negate_proof` to return `Result` for better error handling
* chore: update ark-* to 0.5
* refactor: remove commented-out code for clarity in v2.rs
* refactor: prover logic, dependency updates (#28)
* chore: update dependencies and clean up unused packages
* refactor: consolidate PublicTransactionEvent structs and update references
* refactor: adjust root_seq assignment and add Debug trait to struct definitions
* refactor: proof compression and error handling in prover
* refactor: simplify AddressProofInputs, rootIndex: u16
* refactor: extract proof generation for empty tree into separate function
* refactor: improve transaction parsing logic and clean up code
* Update prover docker image to sergeytimoshin/prover:latest
* Export proof input types for OpenAPI schema generation
* chore: remove tree.txt, replace git dependencies with released crates
* chore: replace git dev dep with released dep
* chore: rename start_offset -> start_queue_index, zkp_batch_size -> limit, num_elements -> limit
---------
Co-authored-by: Sergey Timoshin <sergeytimoshin@proton.me>
Co-authored-by: Swenschaeferjohann <swen@lightprotocol.com>
Co-authored-by: Sergey Timoshin <timoshin.sergey@gmail.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@sergeytimoshin@ananas-block