33//! Implementations of EVM precompiled contracts.
44#![ cfg_attr( not( test) , warn( unused_crate_dependencies) ) ]
55#![ cfg_attr( not( feature = "std" ) , no_std) ]
6- #![ allow( unused_mut) ]
7- #![ allow( unused_crate_dependencies) ]
86
97#[ macro_use]
108#[ cfg( not( feature = "std" ) ) ]
@@ -185,12 +183,17 @@ impl Precompiles {
185183 pub fn nano ( ) -> & ' static Self {
186184 static INSTANCE : OnceBox < Precompiles > = OnceBox :: new ( ) ;
187185 INSTANCE . get_or_init ( || {
188- let mut precompiles = Self :: istanbul ( ) . clone ( ) ;
186+ let precompiles = Self :: istanbul ( ) . clone ( ) ;
187+
189188 #[ cfg( feature = "bsc" ) ]
190- precompiles. extend ( [
191- tendermint:: TENDERMINT_HEADER_VALIDATION_NANO ,
192- iavl:: IAVL_PROOF_VALIDATION_NANO ,
193- ] ) ;
189+ let precompiles = {
190+ let mut precompiles = precompiles;
191+ precompiles. extend ( [
192+ tendermint:: TENDERMINT_HEADER_VALIDATION_NANO ,
193+ iavl:: IAVL_PROOF_VALIDATION_NANO ,
194+ ] ) ;
195+ precompiles
196+ } ;
194197
195198 Box :: new ( precompiles)
196199 } )
@@ -200,12 +203,17 @@ impl Precompiles {
200203 pub fn moran ( ) -> & ' static Self {
201204 static INSTANCE : OnceBox < Precompiles > = OnceBox :: new ( ) ;
202205 INSTANCE . get_or_init ( || {
203- let mut precompiles = Self :: istanbul ( ) . clone ( ) ;
206+ let precompiles = Self :: istanbul ( ) . clone ( ) ;
207+
204208 #[ cfg( feature = "bsc" ) ]
205- precompiles. extend ( [
206- tendermint:: TENDERMINT_HEADER_VALIDATION ,
207- iavl:: IAVL_PROOF_VALIDATION_MORAN ,
208- ] ) ;
209+ let precompiles = {
210+ let mut precompiles = precompiles;
211+ precompiles. extend ( [
212+ tendermint:: TENDERMINT_HEADER_VALIDATION ,
213+ iavl:: IAVL_PROOF_VALIDATION_MORAN ,
214+ ] ) ;
215+ precompiles
216+ } ;
209217
210218 Box :: new ( precompiles)
211219 } )
@@ -215,12 +223,17 @@ impl Precompiles {
215223 pub fn planck ( ) -> & ' static Self {
216224 static INSTANCE : OnceBox < Precompiles > = OnceBox :: new ( ) ;
217225 INSTANCE . get_or_init ( || {
218- let mut precompiles = Self :: istanbul ( ) . clone ( ) ;
226+ let precompiles = Self :: istanbul ( ) . clone ( ) ;
227+
219228 #[ cfg( feature = "bsc" ) ]
220- precompiles. extend ( [
221- tendermint:: TENDERMINT_HEADER_VALIDATION ,
222- iavl:: IAVL_PROOF_VALIDATION_PLANCK ,
223- ] ) ;
229+ let precompiles = {
230+ let mut precompiles = precompiles;
231+ precompiles. extend ( [
232+ tendermint:: TENDERMINT_HEADER_VALIDATION ,
233+ iavl:: IAVL_PROOF_VALIDATION_PLANCK ,
234+ ] ) ;
235+ precompiles
236+ } ;
224237
225238 Box :: new ( precompiles)
226239 } )
@@ -244,9 +257,13 @@ impl Precompiles {
244257 pub fn plato ( ) -> & ' static Self {
245258 static INSTANCE : OnceBox < Precompiles > = OnceBox :: new ( ) ;
246259 INSTANCE . get_or_init ( || {
247- let mut precompiles = Self :: luban ( ) . clone ( ) ;
260+ let precompiles = Self :: luban ( ) . clone ( ) ;
248261 #[ cfg( feature = "bsc" ) ]
249- precompiles. extend ( [ iavl:: IAVL_PROOF_VALIDATION_PLATO ] ) ;
262+ let precompiles = {
263+ let mut precompiles = precompiles;
264+ precompiles. extend ( [ iavl:: IAVL_PROOF_VALIDATION_PLATO ] ) ;
265+ precompiles
266+ } ;
250267
251268 Box :: new ( precompiles)
252269 } )
0 commit comments