@@ -5,7 +5,6 @@ use twenty_first::util_types::mmr::mmr_accumulator::MmrAccumulator;
5
5
use twenty_first:: util_types:: mmr:: mmr_successor_proof:: MmrSuccessorProof ;
6
6
7
7
use crate :: arithmetic:: u64 as u64_lib;
8
- use crate :: field;
9
8
use crate :: hashing:: merkle_step_mem_u64_index:: MerkleStepMemU64Index ;
10
9
use crate :: hashing:: merkle_step_u64_index:: MerkleStepU64Index ;
11
10
use crate :: mmr:: leaf_index_to_mt_index_and_peak_index:: MmrLeafIndexToMtIndexAndPeakIndex ;
@@ -93,23 +92,21 @@ impl BasicSnippet for VerifyMmrSuccessor {
93
92
// AFTER: _
94
93
{ entrypoint} :
95
94
/* consistent old MMR? */
96
- dup 1
97
- { & field!( MmrAccumulator :: peaks) } hint old_peaks: Pointer = stack[ 0 ]
98
- // _ *old *new *old_peaks
99
-
100
- read_mem 1 hint old_peaks_len = stack[ 1 ]
101
- addi 1
102
- place 1
103
- // _ *old *new *old_peaks old_peaks_len
95
+ pick 1
96
+ { & MmrAccumulator :: destructure( ) }
97
+ hint old_num_leafs: Pointer = stack[ 0 ]
98
+ hint old_peaks: Pointer = stack[ 1 ]
99
+ // _ *new *old_peaks *old_num_leafs
104
100
105
- pick 3
106
- { & field!( MmrAccumulator :: leaf_count) } hint old_leaf_count: Pointer = stack[ 0 ]
107
101
addi 1
108
102
read_mem 2 hint old_num_leafs: u64 = stack[ 1 ..3 ]
109
103
pop 1
110
- // _ *new *old_peaks old_peaks_len [old_num_leafs: u64]
104
+ // _ *new *old_peaks [old_num_leafs: u64]
111
105
112
- place 3 place 3
106
+ pick 2
107
+ read_mem 1 hint old_peaks_len = stack[ 1 ]
108
+ addi 1
109
+ place 1
113
110
// _ *new [old_num_leafs: u64] *old_peaks old_peaks_len
114
111
115
112
dup 3 dup 3
@@ -120,23 +117,21 @@ impl BasicSnippet for VerifyMmrSuccessor {
120
117
// _ *new [old_num_leafs: u64] *old_peaks
121
118
122
119
/* consistent new MMR? */
123
- dup 3
124
- { & field!( MmrAccumulator :: peaks) } hint new_peaks: Pointer = stack[ 0 ]
125
- // _ *new [old_num_leafs: u64] *old_peaks *new_peaks
126
-
127
- read_mem 1 hint new_peaks_len = stack[ 1 ]
128
- addi 1
129
- place 1
130
- // _ *new [old_num_leafs: u64] *old_peaks *new_peaks new_peaks_len
120
+ pick 3
121
+ { & MmrAccumulator :: destructure( ) }
122
+ hint new_num_leafs: Pointer = stack[ 0 ]
123
+ hint new_peaks: Pointer = stack[ 1 ]
124
+ // _ [old_num_leafs: u64] *old_peaks *new_peaks *new_num_leafs
131
125
132
- pick 5
133
- { & field!( MmrAccumulator :: leaf_count) } hint new_leaf_count: Pointer = stack[ 0 ]
134
126
addi 1
135
127
read_mem 2 hint new_num_leafs: u64 = stack[ 1 ..3 ]
136
128
pop 1
137
- // _ [old_num_leafs: u64] *old_peaks *new_peaks new_peaks_len [new_num_leafs: u64]
129
+ // _ [old_num_leafs: u64] *old_peaks *new_peaks [new_num_leafs: u64]
138
130
139
- place 3 place 3
131
+ pick 2
132
+ read_mem 1 hint new_peaks_len = stack[ 1 ]
133
+ addi 1
134
+ place 1
140
135
// _ [old_num_leafs: u64] *old_peaks [new_num_leafs: u64] *new_peaks new_peaks_len
141
136
142
137
dup 3 dup 3
@@ -385,7 +380,7 @@ impl BasicSnippet for VerifyMmrSuccessor {
385
380
386
381
fn sign_offs ( & self ) -> HashMap < Reviewer , SignOffFingerprint > {
387
382
let mut sign_offs = HashMap :: new ( ) ;
388
- sign_offs. insert ( Reviewer ( "ferdinand" ) , 0x8aea33a7d02a94a1 . into ( ) ) ;
383
+ sign_offs. insert ( Reviewer ( "ferdinand" ) , 0xeb1e81bd042d7a0c . into ( ) ) ;
389
384
sign_offs
390
385
}
391
386
}
0 commit comments