Delete duplicate code in generateMerkleProof function - add computeDepositEventsTree call instead of a separate mapping in loop
This commit is contained in:
parent
b7929bd16c
commit
e9fcc51dae
19
cli.js
19
cli.js
@ -373,25 +373,12 @@ async function deposit({ currency, amount, commitmentNote }) {
|
|||||||
* @param deposit Deposit object
|
* @param deposit Deposit object
|
||||||
*/
|
*/
|
||||||
async function generateMerkleProof(deposit, currency, amount) {
|
async function generateMerkleProof(deposit, currency, amount) {
|
||||||
let leafIndex = -1;
|
|
||||||
// Get all deposit events from smart contract and assemble merkle tree from them
|
// Get all deposit events from smart contract and assemble merkle tree from them
|
||||||
|
|
||||||
const cachedEvents = await fetchEvents({ type: 'deposit', currency, amount });
|
const cachedEvents = await fetchEvents({ type: 'deposit', currency, amount });
|
||||||
|
const { tree, leaves, root } = computeDepositEventsTree(cachedEvents);
|
||||||
|
|
||||||
const leaves = cachedEvents
|
// Validate that merkle tree is valid, deposit data is correct and note not spent.
|
||||||
.sort((a, b) => a.leafIndex - b.leafIndex) // Sort events in chronological order
|
const leafIndex = leaves.findIndex((commitment) => toBN(deposit.commitmentHex).toString(10) === commitment);
|
||||||
.map((e) => {
|
|
||||||
const index = toBN(e.leafIndex).toNumber();
|
|
||||||
|
|
||||||
if (toBN(e.commitment).eq(toBN(deposit.commitmentHex))) {
|
|
||||||
leafIndex = index;
|
|
||||||
}
|
|
||||||
return toBN(e.commitment).toString(10);
|
|
||||||
});
|
|
||||||
const tree = new merkleTree(MERKLE_TREE_HEIGHT, leaves);
|
|
||||||
|
|
||||||
// Validate that our data is correct
|
|
||||||
const root = tree.root();
|
|
||||||
let isValidRoot, isSpent;
|
let isValidRoot, isSpent;
|
||||||
if (!isTestRPC && !multiCall) {
|
if (!isTestRPC && !multiCall) {
|
||||||
const callContract = await useMultiCall([
|
const callContract = await useMultiCall([
|
||||||
|
Loading…
Reference in New Issue
Block a user