Skip to content

Commit ebe4c21

Browse files
committed
ed19_dependent_cost
1 parent baae7f5 commit ebe4c21

File tree

4 files changed

+129
-239
lines changed

4 files changed

+129
-239
lines changed

crates/client/assets/schema.sdl

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -359,6 +359,7 @@ type GasCosts {
359359
divi: U64!
360360
ecr1: U64!
361361
eck1: U64!
362+
ed19: U64!
362363
eq: U64!
363364
exp: U64!
364365
expi: U64!
@@ -439,7 +440,7 @@ type GasCosts {
439440
ccp: DependentCost!
440441
croo: DependentCost!
441442
csiz: DependentCost!
442-
ed19: DependentCost!
443+
ed19DependentCost: DependentCost!
443444
k256: DependentCost!
444445
ldc: DependentCost!
445446
logd: DependentCost!

crates/client/src/client/schema/chain.rs

Lines changed: 120 additions & 236 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)