From c53919e666f0832a53111eb8f4aa451907fa0a77 Mon Sep 17 00:00:00 2001 From: Maxim Evtush <154841002+maximevtush@users.noreply.github.com> Date: Wed, 12 Feb 2025 12:13:49 +0100 Subject: [PATCH 1/3] Update mpt-proof.md --- spec/mpt-proof.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/mpt-proof.md b/spec/mpt-proof.md index 72609b27..4d241b31 100644 --- a/spec/mpt-proof.md +++ b/spec/mpt-proof.md @@ -239,7 +239,7 @@ There are 2 cases to constrain based on the path directed by the provided non-ex In this case, due to our construction of the old and new paths of `SMTTrace`, the old path (when inserting)/new path (when deleting) must be directed to this leaf node. The prefix key provided by the old/new path must end at a bit position before the last bit of the leaf key that is to be proved non-exist. So we constrain that the non-existing account/storage must have its key that is not equal to the key at this leaf node. Circuit columns `other_key`, `other_key_hash`, `other_leafnode_hash` and an IsEqualGadget `key_equals_other_key` are used to provide witness to these constraints and to constrain. - Type 2 non-existence proof (insert to fill/delete from fill): the path ended at an empty node. Illustration figure shown below: -![AccounNotExist_Empty](https://i.imgur.com/FLxg11Q.png) +![AccountNotExist_Empty](https://i.imgur.com/FLxg11Q.png) In this case, due to our construction of the old and new paths of `SMTTrace`, the old path (when inserting)/new path (when deleting) must be directed to this empty node. So we constrain the emptiness of these nodes. Circuit provides two IsZeroGadgets `old_hash_is_zero` and`new_hash_is_zero` to constrain this case. From d73130705104f376bb04823d440820a48bc3f13c Mon Sep 17 00:00:00 2001 From: Maxim Evtush <154841002+maximevtush@users.noreply.github.com> Date: Wed, 12 Feb 2025 12:14:45 +0100 Subject: [PATCH 2/3] Update tx_multigreeter.js --- integration-tests/scripts/tx_multigreeter.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/integration-tests/scripts/tx_multigreeter.js b/integration-tests/scripts/tx_multigreeter.js index 984375b2..900a7cf8 100644 --- a/integration-tests/scripts/tx_multigreeter.js +++ b/integration-tests/scripts/tx_multigreeter.js @@ -8,7 +8,7 @@ const deploy = require("./deploy.json") async function main() { - const Greeter = await hre.ethers.getContractFactory("MutipleGreeter"); + const Greeter = await hre.ethers.getContractFactory("MultipleGreeter"); const dualAddr = deploy.dualgreeter if (!dualAddr){ throw 'no addr for dual greeter contract' @@ -45,4 +45,4 @@ async function main() { console.error(error); process.exit(1); }); - \ No newline at end of file + From b311b184abc5cb259ac197991d3f717f230079cf Mon Sep 17 00:00:00 2001 From: Maxim Evtush <154841002+maximevtush@users.noreply.github.com> Date: Wed, 12 Feb 2025 12:15:29 +0100 Subject: [PATCH 3/3] Update Greeter.sol --- integration-tests/contracts/Greeter.sol | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/integration-tests/contracts/Greeter.sol b/integration-tests/contracts/Greeter.sol index f2e444ca..b1d62158 100644 --- a/integration-tests/contracts/Greeter.sol +++ b/integration-tests/contracts/Greeter.sol @@ -46,7 +46,7 @@ contract Greeter { * @title MultiGreeter * @dev Store & retrieve value in a variable, has 2 slots */ -contract MutipleGreeter { +contract MultipleGreeter { mapping(uint => uint256) public values; constructor() {