Closed birchmd closed 1 year ago
I'm really curious about the changes in the Cargo.lock
, which increases the gas cost. Were you able to find out what they are?
I'm really curious about the changes in the
Cargo.lock
, which increases the gas cost. Were you able to find out what they are?
I didn't dig into it further because there were quite a few changes. I just reverted the whole file back to the version on develop
and the gas issues went away. But I agree that it would be nice to figure out exactly which dependency was the issue.
This PR is a modified version of #726
Normally I would not make a whole separate PR, but I ended up starting this work from scratch off of
develop
because I could not understand why the gas costs inrepro
were increased so much in the old PR. I have since figured out that it was some change inCargo.lock
that was causing the problem, but by that point I already had all this code finished in a separate branch so I thought it would be easier to make a separate PR at that point.Key differences from #726 :
repro
tests pass without any changes to the gas values (i.e. this implementation does not create a significant gas increase). This is mostly due to leavingCargo.lock
untouched, but there are a few other improvements as well (see below).repro
gas costs remaining unchanged).Cow
inBorshableEngineState
so thatFrom<&EngineState> for BorshableEngineState
does not need to clone the owner account id.bridge_prover_id
field fromNewCallArgs
is done in a backwards compatible way. This is not a performance improvement, but it is still a critical change. We must ensure that changes to the format of top-level contract functions are always backwards compatible otherwise the Borealis Engine and Borealis Refiner will not be able to parse old transactions (it will fail to deserialize the arguments).