@@ -211,6 +211,7 @@ pub struct GasCosts {
211211 pub divi : U64 ,
212212 pub eck1 : U64 ,
213213 pub ecr1 : U64 ,
214+ pub ed19 : U64 ,
214215 pub eq : U64 ,
215216 pub exp : U64 ,
216217 pub expi : U64 ,
@@ -292,7 +293,7 @@ pub struct GasCosts {
292293 pub ccp : DependentCost ,
293294 pub croo : DependentCost ,
294295 pub csiz : DependentCost ,
295- pub ed19 : DependentCost ,
296+ pub ed19_dependent_cost : DependentCost ,
296297 pub k256 : DependentCost ,
297298 pub ldc : DependentCost ,
298299 pub logd : DependentCost ,
@@ -326,242 +327,125 @@ impl TryFrom<GasCosts> for fuel_core_types::fuel_tx::GasCosts {
326327
327328 fn try_from ( value : GasCosts ) -> Result < Self , Self :: Error > {
328329 match value. version {
329- GasCostsVersion :: V1 => {
330- // Detect which version of fuel-tx gas costs to use
331- if value. bsiz . is_some ( ) && value. bldd . is_some ( ) {
332- Ok ( fuel_core_types:: fuel_tx:: GasCosts :: new ( fuel_core_types:: fuel_tx:: consensus_parameters:: gas:: GasCostsValuesV4 {
333- add : value. add . into ( ) ,
334- addi : value. addi . into ( ) ,
335- and : value. and . into ( ) ,
336- andi : value. andi . into ( ) ,
337- bal : value. bal . into ( ) ,
338- bhei : value. bhei . into ( ) ,
339- bhsh : value. bhsh . into ( ) ,
340- burn : value. burn . into ( ) ,
341- bldd : value. bldd . unwrap ( ) . into ( ) ,
342- bsiz : value. bsiz . unwrap ( ) . into ( ) ,
343- cb : value. cb . into ( ) ,
344- cfsi : value. cfsi . into ( ) ,
345- div : value. div . into ( ) ,
346- divi : value. divi . into ( ) ,
347- eck1 : value. eck1 . into ( ) ,
348- ecr1 : value. ecr1 . into ( ) ,
349- ed19 : value. ed19 . into ( ) ,
350- eq : value. eq . into ( ) ,
351- exp : value. exp . into ( ) ,
352- expi : value. expi . into ( ) ,
353- flag : value. flag . into ( ) ,
354- gm : value. gm . into ( ) ,
355- gt : value. gt . into ( ) ,
356- gtf : value. gtf . into ( ) ,
357- ji : value. ji . into ( ) ,
358- jmp : value. jmp . into ( ) ,
359- jne : value. jne . into ( ) ,
360- jnei : value. jnei . into ( ) ,
361- jnzi : value. jnzi . into ( ) ,
362- jmpf : value. jmpf . into ( ) ,
363- jmpb : value. jmpb . into ( ) ,
364- jnzf : value. jnzf . into ( ) ,
365- jnzb : value. jnzb . into ( ) ,
366- jnef : value. jnef . into ( ) ,
367- jneb : value. jneb . into ( ) ,
368- lb : value. lb . into ( ) ,
369- log : value. log . into ( ) ,
370- lt : value. lt . into ( ) ,
371- lw : value. lw . into ( ) ,
372- mint : value. mint . into ( ) ,
373- mlog : value. mlog . into ( ) ,
374- mod_op : value. mod_op . into ( ) ,
375- modi : value. modi . into ( ) ,
376- move_op : value. move_op . into ( ) ,
377- movi : value. movi . into ( ) ,
378- mroo : value. mroo . into ( ) ,
379- mul : value. mul . into ( ) ,
380- muli : value. muli . into ( ) ,
381- mldv : value. mldv . into ( ) ,
382- noop : value. noop . into ( ) ,
383- not : value. not . into ( ) ,
384- or : value. or . into ( ) ,
385- ori : value. ori . into ( ) ,
386- poph : value. poph . into ( ) ,
387- popl : value. popl . into ( ) ,
388- pshh : value. pshh . into ( ) ,
389- pshl : value. pshl . into ( ) ,
390- ret : value. ret . into ( ) ,
391- rvrt : value. rvrt . into ( ) ,
392- sb : value. sb . into ( ) ,
393- sll : value. sll . into ( ) ,
394- slli : value. slli . into ( ) ,
395- srl : value. srl . into ( ) ,
396- srli : value. srli . into ( ) ,
397- srw : value. srw . into ( ) ,
398- sub : value. sub . into ( ) ,
399- subi : value. subi . into ( ) ,
400- sw : value. sw . into ( ) ,
401- sww : value. sww . into ( ) ,
402- time : value. time . into ( ) ,
403- tr : value. tr . into ( ) ,
404- tro : value. tro . into ( ) ,
405- wdcm : value. wdcm . into ( ) ,
406- wqcm : value. wqcm . into ( ) ,
407- wdop : value. wdop . into ( ) ,
408- wqop : value. wqop . into ( ) ,
409- wdml : value. wdml . into ( ) ,
410- wqml : value. wqml . into ( ) ,
411- wddv : value. wddv . into ( ) ,
412- wqdv : value. wqdv . into ( ) ,
413- wdmd : value. wdmd . into ( ) ,
414- wqmd : value. wqmd . into ( ) ,
415- wdam : value. wdam . into ( ) ,
416- wqam : value. wqam . into ( ) ,
417- wdmm : value. wdmm . into ( ) ,
418- wqmm : value. wqmm . into ( ) ,
419- xor : value. xor . into ( ) ,
420- xori : value. xori . into ( ) ,
421-
422- aloc : value. aloc_dependent_cost . into ( ) ,
423- cfe : value. cfe . into ( ) ,
424- cfei : value. cfei_dependent_cost . into ( ) ,
425- call : value. call . into ( ) ,
426- ccp : value. ccp . into ( ) ,
427- croo : value. croo . into ( ) ,
428- csiz : value. csiz . into ( ) ,
429- k256 : value. k256 . into ( ) ,
430- ldc : value. ldc . into ( ) ,
431- logd : value. logd . into ( ) ,
432- mcl : value. mcl . into ( ) ,
433- mcli : value. mcli . into ( ) ,
434- mcp : value. mcp . into ( ) ,
435- mcpi : value. mcpi . into ( ) ,
436- meq : value. meq . into ( ) ,
437- retd : value. retd . into ( ) ,
438- s256 : value. s256 . into ( ) ,
439- scwq : value. scwq . into ( ) ,
440- smo : value. smo . into ( ) ,
441- srwq : value. srwq . into ( ) ,
442- swwq : value. swwq . into ( ) ,
443- contract_root : value. contract_root . into ( ) ,
444- state_root : value. state_root . into ( ) ,
445- vm_initialization : value. vm_initialization . into ( ) ,
446- new_storage_per_byte : value. new_storage_per_byte . into ( ) ,
447- } . into ( ) ) )
448- } else {
449- Ok ( fuel_core_types:: fuel_tx:: GasCosts :: new ( fuel_core_types:: fuel_tx:: consensus_parameters:: gas:: GasCostsValuesV3 {
450- add : value. add . into ( ) ,
451- addi : value. addi . into ( ) ,
452- and : value. and . into ( ) ,
453- andi : value. andi . into ( ) ,
454- bal : value. bal . into ( ) ,
455- bhei : value. bhei . into ( ) ,
456- bhsh : value. bhsh . into ( ) ,
457- burn : value. burn . into ( ) ,
458- cb : value. cb . into ( ) ,
459- cfsi : value. cfsi . into ( ) ,
460- div : value. div . into ( ) ,
461- divi : value. divi . into ( ) ,
462- eck1 : value. eck1 . into ( ) ,
463- ecr1 : value. ecr1 . into ( ) ,
464- ed19 : fuel_core_types:: fuel_tx:: DependentCost :: from ( value. ed19 ) . base ( ) ,
465- eq : value. eq . into ( ) ,
466- exp : value. exp . into ( ) ,
467- expi : value. expi . into ( ) ,
468- flag : value. flag . into ( ) ,
469- gm : value. gm . into ( ) ,
470- gt : value. gt . into ( ) ,
471- gtf : value. gtf . into ( ) ,
472- ji : value. ji . into ( ) ,
473- jmp : value. jmp . into ( ) ,
474- jne : value. jne . into ( ) ,
475- jnei : value. jnei . into ( ) ,
476- jnzi : value. jnzi . into ( ) ,
477- jmpf : value. jmpf . into ( ) ,
478- jmpb : value. jmpb . into ( ) ,
479- jnzf : value. jnzf . into ( ) ,
480- jnzb : value. jnzb . into ( ) ,
481- jnef : value. jnef . into ( ) ,
482- jneb : value. jneb . into ( ) ,
483- lb : value. lb . into ( ) ,
484- log : value. log . into ( ) ,
485- lt : value. lt . into ( ) ,
486- lw : value. lw . into ( ) ,
487- mint : value. mint . into ( ) ,
488- mlog : value. mlog . into ( ) ,
489- mod_op : value. mod_op . into ( ) ,
490- modi : value. modi . into ( ) ,
491- move_op : value. move_op . into ( ) ,
492- movi : value. movi . into ( ) ,
493- mroo : value. mroo . into ( ) ,
494- mul : value. mul . into ( ) ,
495- muli : value. muli . into ( ) ,
496- mldv : value. mldv . into ( ) ,
497- noop : value. noop . into ( ) ,
498- not : value. not . into ( ) ,
499- or : value. or . into ( ) ,
500- ori : value. ori . into ( ) ,
501- poph : value. poph . into ( ) ,
502- popl : value. popl . into ( ) ,
503- pshh : value. pshh . into ( ) ,
504- pshl : value. pshl . into ( ) ,
505- ret : value. ret . into ( ) ,
506- rvrt : value. rvrt . into ( ) ,
507- sb : value. sb . into ( ) ,
508- sll : value. sll . into ( ) ,
509- slli : value. slli . into ( ) ,
510- srl : value. srl . into ( ) ,
511- srli : value. srli . into ( ) ,
512- srw : value. srw . into ( ) ,
513- sub : value. sub . into ( ) ,
514- subi : value. subi . into ( ) ,
515- sw : value. sw . into ( ) ,
516- sww : value. sww . into ( ) ,
517- time : value. time . into ( ) ,
518- tr : value. tr . into ( ) ,
519- tro : value. tro . into ( ) ,
520- wdcm : value. wdcm . into ( ) ,
521- wqcm : value. wqcm . into ( ) ,
522- wdop : value. wdop . into ( ) ,
523- wqop : value. wqop . into ( ) ,
524- wdml : value. wdml . into ( ) ,
525- wqml : value. wqml . into ( ) ,
526- wddv : value. wddv . into ( ) ,
527- wqdv : value. wqdv . into ( ) ,
528- wdmd : value. wdmd . into ( ) ,
529- wqmd : value. wqmd . into ( ) ,
530- wdam : value. wdam . into ( ) ,
531- wqam : value. wqam . into ( ) ,
532- wdmm : value. wdmm . into ( ) ,
533- wqmm : value. wqmm . into ( ) ,
534- xor : value. xor . into ( ) ,
535- xori : value. xori . into ( ) ,
536-
537- aloc : value. aloc_dependent_cost . into ( ) ,
538- cfe : value. cfe . into ( ) ,
539- cfei : value. cfei_dependent_cost . into ( ) ,
540- call : value. call . into ( ) ,
541- ccp : value. ccp . into ( ) ,
542- croo : value. croo . into ( ) ,
543- csiz : value. csiz . into ( ) ,
544- k256 : value. k256 . into ( ) ,
545- ldc : value. ldc . into ( ) ,
546- logd : value. logd . into ( ) ,
547- mcl : value. mcl . into ( ) ,
548- mcli : value. mcli . into ( ) ,
549- mcp : value. mcp . into ( ) ,
550- mcpi : value. mcpi . into ( ) ,
551- meq : value. meq . into ( ) ,
552- retd : value. retd . into ( ) ,
553- s256 : value. s256 . into ( ) ,
554- scwq : value. scwq . into ( ) ,
555- smo : value. smo . into ( ) ,
556- srwq : value. srwq . into ( ) ,
557- swwq : value. swwq . into ( ) ,
558- contract_root : value. contract_root . into ( ) ,
559- state_root : value. state_root . into ( ) ,
560- vm_initialization : value. vm_initialization . into ( ) ,
561- new_storage_per_byte : value. new_storage_per_byte . into ( ) ,
562- } . into ( ) ) )
330+ GasCostsVersion :: V1 => Ok ( fuel_core_types:: fuel_tx:: GasCosts :: new (
331+ fuel_core_types:: fuel_tx:: consensus_parameters:: gas:: GasCostsValuesV4 {
332+ add : value. add . into ( ) ,
333+ addi : value. addi . into ( ) ,
334+ and : value. and . into ( ) ,
335+ andi : value. andi . into ( ) ,
336+ bal : value. bal . into ( ) ,
337+ bhei : value. bhei . into ( ) ,
338+ bhsh : value. bhsh . into ( ) ,
339+ burn : value. burn . into ( ) ,
340+ bldd : value. bldd . unwrap ( ) . into ( ) ,
341+ bsiz : value. bsiz . unwrap ( ) . into ( ) ,
342+ cb : value. cb . into ( ) ,
343+ cfsi : value. cfsi . into ( ) ,
344+ div : value. div . into ( ) ,
345+ divi : value. divi . into ( ) ,
346+ eck1 : value. eck1 . into ( ) ,
347+ ecr1 : value. ecr1 . into ( ) ,
348+ eq : value. eq . into ( ) ,
349+ exp : value. exp . into ( ) ,
350+ expi : value. expi . into ( ) ,
351+ flag : value. flag . into ( ) ,
352+ gm : value. gm . into ( ) ,
353+ gt : value. gt . into ( ) ,
354+ gtf : value. gtf . into ( ) ,
355+ ji : value. ji . into ( ) ,
356+ jmp : value. jmp . into ( ) ,
357+ jne : value. jne . into ( ) ,
358+ jnei : value. jnei . into ( ) ,
359+ jnzi : value. jnzi . into ( ) ,
360+ jmpf : value. jmpf . into ( ) ,
361+ jmpb : value. jmpb . into ( ) ,
362+ jnzf : value. jnzf . into ( ) ,
363+ jnzb : value. jnzb . into ( ) ,
364+ jnef : value. jnef . into ( ) ,
365+ jneb : value. jneb . into ( ) ,
366+ lb : value. lb . into ( ) ,
367+ log : value. log . into ( ) ,
368+ lt : value. lt . into ( ) ,
369+ lw : value. lw . into ( ) ,
370+ mint : value. mint . into ( ) ,
371+ mlog : value. mlog . into ( ) ,
372+ mod_op : value. mod_op . into ( ) ,
373+ modi : value. modi . into ( ) ,
374+ move_op : value. move_op . into ( ) ,
375+ movi : value. movi . into ( ) ,
376+ mroo : value. mroo . into ( ) ,
377+ mul : value. mul . into ( ) ,
378+ muli : value. muli . into ( ) ,
379+ mldv : value. mldv . into ( ) ,
380+ noop : value. noop . into ( ) ,
381+ not : value. not . into ( ) ,
382+ or : value. or . into ( ) ,
383+ ori : value. ori . into ( ) ,
384+ poph : value. poph . into ( ) ,
385+ popl : value. popl . into ( ) ,
386+ pshh : value. pshh . into ( ) ,
387+ pshl : value. pshl . into ( ) ,
388+ ret : value. ret . into ( ) ,
389+ rvrt : value. rvrt . into ( ) ,
390+ sb : value. sb . into ( ) ,
391+ sll : value. sll . into ( ) ,
392+ slli : value. slli . into ( ) ,
393+ srl : value. srl . into ( ) ,
394+ srli : value. srli . into ( ) ,
395+ srw : value. srw . into ( ) ,
396+ sub : value. sub . into ( ) ,
397+ subi : value. subi . into ( ) ,
398+ sw : value. sw . into ( ) ,
399+ sww : value. sww . into ( ) ,
400+ time : value. time . into ( ) ,
401+ tr : value. tr . into ( ) ,
402+ tro : value. tro . into ( ) ,
403+ wdcm : value. wdcm . into ( ) ,
404+ wqcm : value. wqcm . into ( ) ,
405+ wdop : value. wdop . into ( ) ,
406+ wqop : value. wqop . into ( ) ,
407+ wdml : value. wdml . into ( ) ,
408+ wqml : value. wqml . into ( ) ,
409+ wddv : value. wddv . into ( ) ,
410+ wqdv : value. wqdv . into ( ) ,
411+ wdmd : value. wdmd . into ( ) ,
412+ wqmd : value. wqmd . into ( ) ,
413+ wdam : value. wdam . into ( ) ,
414+ wqam : value. wqam . into ( ) ,
415+ wdmm : value. wdmm . into ( ) ,
416+ wqmm : value. wqmm . into ( ) ,
417+ xor : value. xor . into ( ) ,
418+ xori : value. xori . into ( ) ,
419+
420+ aloc : value. aloc_dependent_cost . into ( ) ,
421+ cfe : value. cfe . into ( ) ,
422+ cfei : value. cfei_dependent_cost . into ( ) ,
423+ call : value. call . into ( ) ,
424+ ccp : value. ccp . into ( ) ,
425+ croo : value. croo . into ( ) ,
426+ csiz : value. csiz . into ( ) ,
427+ ed19 : value. ed19_dependent_cost . into ( ) ,
428+ k256 : value. k256 . into ( ) ,
429+ ldc : value. ldc . into ( ) ,
430+ logd : value. logd . into ( ) ,
431+ mcl : value. mcl . into ( ) ,
432+ mcli : value. mcli . into ( ) ,
433+ mcp : value. mcp . into ( ) ,
434+ mcpi : value. mcpi . into ( ) ,
435+ meq : value. meq . into ( ) ,
436+ retd : value. retd . into ( ) ,
437+ s256 : value. s256 . into ( ) ,
438+ scwq : value. scwq . into ( ) ,
439+ smo : value. smo . into ( ) ,
440+ srwq : value. srwq . into ( ) ,
441+ swwq : value. swwq . into ( ) ,
442+ contract_root : value. contract_root . into ( ) ,
443+ state_root : value. state_root . into ( ) ,
444+ vm_initialization : value. vm_initialization . into ( ) ,
445+ new_storage_per_byte : value. new_storage_per_byte . into ( ) ,
563446 }
564- }
447+ . into ( ) ,
448+ ) ) ,
565449 }
566450 }
567451}
0 commit comments