Przeglądaj źródła

Additional fees for *COPY

obscuren 11 lat temu
rodzic
commit
d33987cb44
1 zmienionych plików z 6 dodań i 0 usunięć
  1. 6 0
      vm/vm_debug.go

+ 6 - 0
vm/vm_debug.go

@@ -264,6 +264,12 @@ func (self *DebugVm) RunClosure(closure *Closure) (ret []byte, err error) {
 			newMemSize.Div(newMemSize, u256(32))
 			newMemSize.Mul(newMemSize, u256(32))
 
+			switch op {
+			// Additional gas usage on *CODPY
+			case CALLDATACOPY, CODECOPY, EXTCODECOPY:
+				addStepGasUsage(new(big.Int).Div(newMemSize, u256(32)))
+			}
+
 			if newMemSize.Cmp(u256(int64(mem.Len()))) > 0 {
 				memGasUsage := new(big.Int).Sub(newMemSize, u256(int64(mem.Len())))
 				memGasUsage.Mul(GasMemory, memGasUsage)