From 299c522ba9aa74102f8da3e3ca28e46eac36093c Mon Sep 17 00:00:00 2001 From: Jack Gilcrest Date: Sun, 10 Jul 2022 00:20:20 -0400 Subject: [PATCH] update @zk-kit/incremental-merkle-tree.sol readme --- .../contracts/README.md | 14 ++++++++++++++ .../contracts/test/IncrementalBinaryTreeTest.sol | 1 + 2 files changed, 15 insertions(+) diff --git a/packages/incremental-merkle-tree.sol/contracts/README.md b/packages/incremental-merkle-tree.sol/contracts/README.md index b67eb80..4fc6260 100644 --- a/packages/incremental-merkle-tree.sol/contracts/README.md +++ b/packages/incremental-merkle-tree.sol/contracts/README.md @@ -74,6 +74,7 @@ contract Example { event TreeCreated(bytes32 id, uint8 depth); event LeafInserted(bytes32 indexed treeId, uint256 leaf, uint256 root); + event LeadUpdated(bytes32 indexed treeId, uint256 leaf, uint256 root); event LeafRemoved(bytes32 indexed treeId, uint256 leaf, uint256 root); mapping(bytes32 => IncrementalTreeData) public trees; @@ -94,6 +95,19 @@ contract Example { emit LeafInserted(_treeId, _leaf, trees[_treeId].root); } + function updateLeaf( + bytes32 _treeId, + uint256 _leaf, + uint256[] calldata _proofSiblings, + uint8[] calldata _proofPathIndices + ) external { + require(trees[_treeId].depth != 0, "Example: tree does not exist"); + + trees[_treeId].update(_leaf, _proofSiblings, _proofPathIndices); + + emit LeafUpdated(_treeId, _leaf, trees[_treeId].root); + } + function removeLeaf( bytes32 _treeId, uint256 _leaf, diff --git a/packages/incremental-merkle-tree.sol/contracts/test/IncrementalBinaryTreeTest.sol b/packages/incremental-merkle-tree.sol/contracts/test/IncrementalBinaryTreeTest.sol index d3c97c9..aeb6bc5 100644 --- a/packages/incremental-merkle-tree.sol/contracts/test/IncrementalBinaryTreeTest.sol +++ b/packages/incremental-merkle-tree.sol/contracts/test/IncrementalBinaryTreeTest.sol @@ -37,6 +37,7 @@ contract IncrementalBinaryTreeTest { uint8[] calldata _proofPathIndices ) external { require(trees[_treeId].depth != 0, "BinaryTreeTest: tree does not exist"); + trees[_treeId].update(_leaf, _proofSiblings, _proofPathIndices); emit LeafUpdated(_treeId, _leaf, trees[_treeId].root);