2015-07-07 02:54:22 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								// Copyright 2015 The go-ethereum Authors 
							 
						 
					
						
							
								
									
										
										
										
											2015-07-22 18:48:40 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								// This file is part of the go-ethereum library. 
							 
						 
					
						
							
								
									
										
										
										
											2015-07-07 02:54:22 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								// 
							 
						 
					
						
							
								
									
										
										
										
											2015-07-23 18:35:11 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								// The go-ethereum library is free software: you can redistribute it and/or modify 
							 
						 
					
						
							
								
									
										
										
										
											2015-07-07 02:54:22 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								// it under the terms of the GNU Lesser General Public License as published by 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// the Free Software Foundation, either version 3 of the License, or 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// (at your option) any later version. 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// 
							 
						 
					
						
							
								
									
										
										
										
											2015-07-22 18:48:40 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								// The go-ethereum library is distributed in the hope that it will be useful, 
							 
						 
					
						
							
								
									
										
										
										
											2015-07-07 02:54:22 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								// but WITHOUT ANY WARRANTY; without even the implied warranty of 
							 
						 
					
						
							
								
									
										
										
										
											2015-07-22 18:48:40 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 
							 
						 
					
						
							
								
									
										
										
										
											2015-07-07 02:54:22 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								// GNU Lesser General Public License for more details. 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// You should have received a copy of the GNU Lesser General Public License 
							 
						 
					
						
							
								
									
										
										
										
											2015-07-22 18:48:40 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								// along with the go-ethereum library. If not, see <http://www.gnu.org/licenses/>. 
							 
						 
					
						
							
								
									
										
										
										
											2015-07-07 02:54:22 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2015-04-02 05:17:15 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								package  params 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								import  "math/big" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								var  ( 
							 
						 
					
						
							
								
									
										
										
										
											2015-07-26 12:24:52 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									MaximumExtraDataSize    =  big . NewInt ( 32 )      // Maximum size extra data may be after Genesis. 
							 
						 
					
						
							
								
									
										
										
										
											2015-07-22 13:41:31 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									ExpByteGas              =  big . NewInt ( 10 )      // Times ceil(log256(exponent)) for the EXP instruction. 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									SloadGas                =  big . NewInt ( 50 )      // Multiplied by the number of 32-byte words that are copied (round up) for any *COPY operation and added. 
							 
						 
					
						
							
								
									
										
										
										
											2015-11-27 15:40:29 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									CallValueTransferGas    =  big . NewInt ( 9000 )    // Paid for CALL when the value transfer is non-zero. 
							 
						 
					
						
							
								
									
										
										
										
											2015-07-22 13:41:31 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									CallNewAccountGas       =  big . NewInt ( 25000 )   // Paid for CALL when the destination address didn't exist prior. 
							 
						 
					
						
							
								
									
										
										
										
											2015-11-27 15:40:29 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									TxGas                   =  big . NewInt ( 21000 )   // Per transaction not creating a contract. NOTE: Not payable on data of calls between transactions. 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									TxGasContractCreation   =  big . NewInt ( 53000 )   // Per transaction that creates a contract. NOTE: Not payable on data of calls between transactions. 
							 
						 
					
						
							
								
									
										
										
										
											2015-07-22 13:41:31 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									TxDataZeroGas           =  big . NewInt ( 4 )       // Per byte of data attached to a transaction that equals zero. NOTE: Not payable on data of calls between transactions. 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									DifficultyBoundDivisor  =  big . NewInt ( 2048 )    // The bound divisor of the difficulty, used in the update calculations. 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									QuadCoeffDiv            =  big . NewInt ( 512 )     // Divisor for the quadratic particle of the memory cost equation. 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									GenesisDifficulty       =  big . NewInt ( 131072 )  // Difficulty of the Genesis block. 
							 
						 
					
						
							
								
									
										
										
										
											2015-07-26 12:24:52 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									DurationLimit           =  big . NewInt ( 13 )      // The decision boundary on the blocktime duration used to determine whether difficulty should go up or not. 
							 
						 
					
						
							
								
									
										
										
										
											2015-07-22 13:41:31 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									SstoreSetGas            =  big . NewInt ( 20000 )   // Once per SLOAD operation. 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									LogDataGas              =  big . NewInt ( 8 )       // Per byte in a LOG* operation's data. 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CallStipend             =  big . NewInt ( 2300 )    // Free gas given at beginning of call. 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									EcrecoverGas            =  big . NewInt ( 3000 )    // 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									Sha256WordGas           =  big . NewInt ( 12 )      // 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-03-01 23:32:43 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									MinGasLimit      =  big . NewInt ( 5000 )                   // Minimum the gas limit may ever be. 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									GenesisGasLimit  =  big . NewInt ( 4712388 )                // Gas limit of the Genesis block. 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									TargetGasLimit   =  new ( big . Int ) . Set ( GenesisGasLimit )  // The artificial target 
							 
						 
					
						
							
								
									
										
										
										
											2015-07-22 13:41:31 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									Sha3Gas               =  big . NewInt ( 30 )      // Once per SHA3 operation. 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									Sha256Gas             =  big . NewInt ( 60 )      // 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									IdentityWordGas       =  big . NewInt ( 3 )       // 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									Sha3WordGas           =  big . NewInt ( 6 )       // Once per word of the SHA3 operation's data. 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									SstoreResetGas        =  big . NewInt ( 5000 )    // Once per SSTORE operation if the zeroness changes from zero. 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									SstoreClearGas        =  big . NewInt ( 5000 )    // Once per SSTORE operation if the zeroness doesn't change. 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									SstoreRefundGas       =  big . NewInt ( 15000 )   // Once per SSTORE operation if the zeroness changes to zero. 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									JumpdestGas           =  big . NewInt ( 1 )       // Refunded gas, once per SSTORE operation if the zeroness changes to zero. 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									IdentityGas           =  big . NewInt ( 15 )      // 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									GasLimitBoundDivisor  =  big . NewInt ( 1024 )    // The bound divisor of the gas limit, used in update calculations. 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									EpochDuration         =  big . NewInt ( 30000 )   // Duration between proof-of-work epochs. 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CallGas               =  big . NewInt ( 40 )      // Once per CALL operation & message call transaction. 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CreateDataGas         =  big . NewInt ( 200 )     // 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									Ripemd160Gas          =  big . NewInt ( 600 )     // 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									Ripemd160WordGas      =  big . NewInt ( 120 )     // 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									MinimumDifficulty     =  big . NewInt ( 131072 )  // The minimum that the difficulty may ever be. 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CallCreateDepth       =  big . NewInt ( 1024 )    // Maximum depth of call/create stack. 
							 
						 
					
						
							
								
									
										
										
										
											2017-01-06 19:44:35 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									ExpGas                =  big . NewInt ( 10 )      // Once per EXP instruction. 
							 
						 
					
						
							
								
									
										
										
										
											2015-07-22 13:41:31 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									LogGas                =  big . NewInt ( 375 )     // Per LOG* operation. 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CopyGas               =  big . NewInt ( 3 )       // 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									StackLimit            =  big . NewInt ( 1024 )    // Maximum size of VM stack allowed. 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									TierStepGas           =  big . NewInt ( 0 )       // Once per operation, for a selection of them. 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									LogTopicGas           =  big . NewInt ( 375 )     // Multiplied by the * of the LOG*, per LOG transaction. e.g. LOG0 incurs 0 * c_txLogTopicGas, LOG4 incurs 4 * c_txLogTopicGas. 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									CreateGas             =  big . NewInt ( 32000 )   // Once per CREATE operation & contract-creation transaction. 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									SuicideRefundGas      =  big . NewInt ( 24000 )   // Refunded following a suicide operation. 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									MemoryGas             =  big . NewInt ( 3 )       // Times the address of the (highest referenced byte in memory + 1). NOTE: referencing happens on read, write and in instructions such as RETURN and CALL. 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
									TxDataNonZeroGas      =  big . NewInt ( 68 )      // Per byte of data attached to a transaction that is not equal to zero. NOTE: Not payable on data of calls between transactions. 
							 
						 
					
						
							
								
									
										
										
										
											2016-10-08 00:23:45 +02:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2016-11-11 10:23:30 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
									MaxCodeSize  =  24576 
							 
						 
					
						
							
								
									
										
										
										
											2015-04-02 05:17:15 +02:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								)