github.com/klaytn/klaytn@v1.10.2/params/computation_cost_params.go (about)

     1  // Modifications Copyright 2019 The klaytn Authors
     2  // Copyright 2015 The go-ethereum Authors
     3  // This file is part of the go-ethereum library.
     4  //
     5  // The go-ethereum library is free software: you can redistribute it and/or modify
     6  // it under the terms of the GNU Lesser General Public License as published by
     7  // the Free Software Foundation, either version 3 of the License, or
     8  // (at your option) any later version.
     9  //
    10  // The go-ethereum library is distributed in the hope that it will be useful,
    11  // but WITHOUT ANY WARRANTY; without even the implied warranty of
    12  // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
    13  // GNU Lesser General Public License for more details.
    14  //
    15  // You should have received a copy of the GNU Lesser General Public License
    16  // along with the go-ethereum library. If not, see <http://www.gnu.org/licenses/>.
    17  //
    18  // This file is derived from params/protocol_params.go (2018/06/04).
    19  // Modified and improved for the klaytn development.
    20  
    21  package params
    22  
    23  const (
    24  	// Computation cost for opcodes
    25  	ExtCodeHashComputationCost    = 1000
    26  	Create2ComputationCost        = 10000
    27  	StaticCallComputationCost     = 10000
    28  	ReturnDataSizeComputationCost = 10
    29  	ReturnDataCopyComputationCost = 40
    30  	RevertComputationCost         = 0
    31  	DelegateCallComputationCost   = 696
    32  	StopComputationCost           = 0
    33  	AddComputationCost            = 150
    34  	MulComputationCost            = 200
    35  	SubComputationCost            = 219
    36  	DivComputationCost            = 404
    37  	SdivComputationCost           = 739
    38  	ModComputationCost            = 812
    39  	SmodComputationCost           = 560
    40  	ExpComputationCost            = 5000
    41  	SignExtendComputationCost     = 481
    42  	LtComputationCost             = 201
    43  	GtComputationCost             = 264
    44  	SltComputationCost            = 176
    45  	SgtComputationCost            = 222
    46  	EqComputationCost             = 220
    47  	IszeroComputationCost         = 165
    48  	AndComputationCost            = 288
    49  	OrComputationCost             = 160
    50  	ByteComputationCost           = 589
    51  	Sha3ComputationCost           = 2465
    52  	AddressComputationCost        = 284
    53  	BalanceComputationCost        = 1407
    54  	OriginComputationCost         = 210
    55  	CallerComputationCost         = 188
    56  	CallValueComputationCost      = 149
    57  	CallDataLoadComputationCost   = 596
    58  	CallDataSizeComputationCost   = 194
    59  	CallDataCopyComputationCost   = 100
    60  	CodeSizeComputationCost       = 145
    61  	CodeCopyComputationCost       = 898
    62  	GasPriceComputationCost       = 131
    63  	ExtCodeSizeComputationCost    = 1481
    64  	ExtCodeCopyComputationCost    = 1000
    65  	BlockHashComputationCost      = 500
    66  	CoinbaseComputationCost       = 189
    67  	TimestampComputationCost      = 265
    68  	NumberComputationCost         = 202
    69  	DifficultyComputationCost     = 180
    70  	GasLimitComputationCost       = 166
    71  	PopComputationCost            = 140
    72  	MloadComputationCost          = 376
    73  	MstoreComputationCost         = 288
    74  	Mstore8ComputationCost        = 5142
    75  	SloadComputationCost          = 835
    76  	SstoreComputationCost         = 1548
    77  	JumpComputationCost           = 253
    78  	JumpiComputationCost          = 176
    79  	PcComputationCost             = 147
    80  	MsizeComputationCost          = 137
    81  	GasComputationCost            = 230
    82  	JumpDestComputationCost       = 10
    83  	PushComputationCost           = 120
    84  	Dup1ComputationCost           = 190
    85  	Dup2ComputationCost           = 190
    86  	Dup3ComputationCost           = 176
    87  	Dup4ComputationCost           = 142
    88  	Dup5ComputationCost           = 177
    89  	Dup6ComputationCost           = 165
    90  	Dup7ComputationCost           = 147
    91  	Dup8ComputationCost           = 157
    92  	Dup9ComputationCost           = 138
    93  	Dup10ComputationCost          = 174
    94  	Dup11ComputationCost          = 141
    95  	Dup12ComputationCost          = 144
    96  	Dup13ComputationCost          = 157
    97  	Dup14ComputationCost          = 143
    98  	Dup15ComputationCost          = 237
    99  	Dup16ComputationCost          = 149
   100  	Swap1ComputationCost          = 141
   101  	Swap2ComputationCost          = 156
   102  	Swap3ComputationCost          = 145
   103  	Swap4ComputationCost          = 135
   104  	Swap5ComputationCost          = 115
   105  	Swap6ComputationCost          = 146
   106  	Swap7ComputationCost          = 199
   107  	Swap8ComputationCost          = 130
   108  	Swap9ComputationCost          = 160
   109  	Swap10ComputationCost         = 134
   110  	Swap11ComputationCost         = 147
   111  	Swap12ComputationCost         = 128
   112  	Swap13ComputationCost         = 121
   113  	Swap14ComputationCost         = 114
   114  	Swap15ComputationCost         = 197
   115  	Swap16ComputationCost         = 128
   116  	Log0ComputationCost           = 100
   117  	Log1ComputationCost           = 1000
   118  	Log2ComputationCost           = 1000
   119  	Log3ComputationCost           = 1000
   120  	Log4ComputationCost           = 1000
   121  	CreateComputationCost         = 2094
   122  	CallComputationCost           = 5000
   123  	CallCodeComputationCost       = 4000
   124  	ReturnComputationCost         = 0
   125  	SelfDestructComputationCost   = 0
   126  
   127  	// Computation cost for precompiled contracts
   128  	EcrecoverComputationCost            = 113150
   129  	Sha256PerWordComputationCost        = 100
   130  	Sha256BaseComputationCost           = 1000
   131  	Ripemd160PerWordComputationCost     = 10
   132  	Ripemd160BaseComputationCost        = 100
   133  	IdentityPerWordComputationCost      = 0
   134  	IdentityBaseComputationCost         = 0
   135  	BigModExpPerGasComputationCost      = 10
   136  	BigModExpBaseComputationCost        = 100
   137  	Bn256AddComputationCost             = 8000
   138  	Bn256ScalarMulComputationCost       = 100000
   139  	Bn256ParingBaseComputationCost      = 2000000
   140  	Bn256ParingPerPointComputationCost  = 1000000
   141  	VMLogPerByteComputationCost         = 0
   142  	VMLogBaseComputationCost            = 10
   143  	FeePayerComputationCost             = 10
   144  	ValidateSenderPerSigComputationCost = 180000
   145  	ValidateSenderBaseComputationCost   = 10000
   146  
   147  	// computation costs for opcode added at istanbulCompatible Protocol Upgrade
   148  	ChainIDComputationCost      = 120
   149  	SelfBalanceComputationCost  = 374
   150  	Blake2bBaseComputationCost  = 10000
   151  	Blake2bScaleComputationCost = 10
   152  
   153  	// computation costs for opcode added at londonCompatible Protocol Upgrade
   154  	BaseFeeComputationCost = 198
   155  
   156  	// Opcode Computation Cost Modification
   157  	AddmodComputationCost         = 3349
   158  	AddmodComputationCostIstanbul = 1410
   159  	MulmodComputationCost         = 4757
   160  	MulmodComputationCostIstanbul = 1760
   161  	NotComputationCost            = 1289
   162  	NotComputationCostIstanbul    = 364
   163  	ShlComputationCost            = 1603
   164  	ShlComputationCostIstanbul    = 478
   165  	ShrComputationCost            = 1346
   166  	ShrComputationCostIstanbul    = 498
   167  	SarComputationCost            = 1815
   168  	SarComputationCostIstanbul    = 834
   169  	XorComputationCost            = 657
   170  	XorComputationCostIstanbul    = 454
   171  
   172  	// computation costs for opcode added at koreCompatible Protocol Upgrade
   173  	RandomComputationCost = 1498
   174  )