commit
						8d76dd3127
					
				
							
								
								
									
										51
									
								
								Cargo.lock
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										51
									
								
								Cargo.lock
									
									
									
										generated
									
									
									
								
							| @ -1,6 +1,6 @@ | |||||||
| [root] | [root] | ||||||
| name = "parity" | name = "parity" | ||||||
| version = "1.3.11" | version = "1.3.12" | ||||||
| dependencies = [ | dependencies = [ | ||||||
|  "ansi_term 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)", |  "ansi_term 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)", | ||||||
|  "clippy 0.0.80 (registry+https://github.com/rust-lang/crates.io-index)", |  "clippy 0.0.80 (registry+https://github.com/rust-lang/crates.io-index)", | ||||||
| @ -20,7 +20,7 @@ dependencies = [ | |||||||
|  "ethcore-logger 1.3.0", |  "ethcore-logger 1.3.0", | ||||||
|  "ethcore-rpc 1.3.0", |  "ethcore-rpc 1.3.0", | ||||||
|  "ethcore-signer 1.3.0", |  "ethcore-signer 1.3.0", | ||||||
|  "ethcore-util 1.3.11", |  "ethcore-util 1.3.12", | ||||||
|  "ethsync 1.3.0", |  "ethsync 1.3.0", | ||||||
|  "fdlimit 0.1.0", |  "fdlimit 0.1.0", | ||||||
|  "hyper 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)", |  "hyper 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)", | ||||||
| @ -35,7 +35,7 @@ dependencies = [ | |||||||
|  "rustc-serialize 0.3.19 (registry+https://github.com/rust-lang/crates.io-index)", |  "rustc-serialize 0.3.19 (registry+https://github.com/rust-lang/crates.io-index)", | ||||||
|  "rustc_version 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", |  "rustc_version 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", | ||||||
|  "semver 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", |  "semver 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", | ||||||
|  "syntex 0.36.0 (registry+https://github.com/rust-lang/crates.io-index)", |  "syntex 0.33.0 (registry+https://github.com/rust-lang/crates.io-index)", | ||||||
|  "time 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)", |  "time 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)", | ||||||
|  "winapi 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", |  "winapi 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", | ||||||
| ] | ] | ||||||
| @ -270,7 +270,7 @@ dependencies = [ | |||||||
|  "ethcore-ipc 1.3.0", |  "ethcore-ipc 1.3.0", | ||||||
|  "ethcore-ipc-codegen 1.3.0", |  "ethcore-ipc-codegen 1.3.0", | ||||||
|  "ethcore-ipc-nano 1.3.0", |  "ethcore-ipc-nano 1.3.0", | ||||||
|  "ethcore-util 1.3.11", |  "ethcore-util 1.3.12", | ||||||
|  "ethjson 0.1.0", |  "ethjson 0.1.0", | ||||||
|  "ethstore 0.1.0", |  "ethstore 0.1.0", | ||||||
|  "evmjit 1.3.0", |  "evmjit 1.3.0", | ||||||
| @ -294,7 +294,7 @@ version = "1.3.0" | |||||||
| dependencies = [ | dependencies = [ | ||||||
|  "clippy 0.0.80 (registry+https://github.com/rust-lang/crates.io-index)", |  "clippy 0.0.80 (registry+https://github.com/rust-lang/crates.io-index)", | ||||||
|  "ethcore-rpc 1.3.0", |  "ethcore-rpc 1.3.0", | ||||||
|  "ethcore-util 1.3.11", |  "ethcore-util 1.3.12", | ||||||
|  "hyper 0.9.4 (git+https://github.com/ethcore/hyper)", |  "hyper 0.9.4 (git+https://github.com/ethcore/hyper)", | ||||||
|  "jsonrpc-core 2.1.1 (registry+https://github.com/rust-lang/crates.io-index)", |  "jsonrpc-core 2.1.1 (registry+https://github.com/rust-lang/crates.io-index)", | ||||||
|  "jsonrpc-http-server 6.1.0 (git+https://github.com/ethcore/jsonrpc-http-server.git?branch=beta)", |  "jsonrpc-http-server 6.1.0 (git+https://github.com/ethcore/jsonrpc-http-server.git?branch=beta)", | ||||||
| @ -336,7 +336,7 @@ name = "ethcore-ipc" | |||||||
| version = "1.3.0" | version = "1.3.0" | ||||||
| dependencies = [ | dependencies = [ | ||||||
|  "ethcore-devtools 1.3.0", |  "ethcore-devtools 1.3.0", | ||||||
|  "ethcore-util 1.3.11", |  "ethcore-util 1.3.12", | ||||||
|  "nanomsg 0.5.1 (git+https://github.com/ethcore/nanomsg.rs.git)", |  "nanomsg 0.5.1 (git+https://github.com/ethcore/nanomsg.rs.git)", | ||||||
|  "semver 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", |  "semver 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", | ||||||
| ] | ] | ||||||
| @ -381,7 +381,7 @@ dependencies = [ | |||||||
|  "ethcore-ipc 1.3.0", |  "ethcore-ipc 1.3.0", | ||||||
|  "ethcore-ipc-codegen 1.3.0", |  "ethcore-ipc-codegen 1.3.0", | ||||||
|  "ethcore-ipc-nano 1.3.0", |  "ethcore-ipc-nano 1.3.0", | ||||||
|  "ethcore-util 1.3.11", |  "ethcore-util 1.3.12", | ||||||
|  "log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", |  "log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", | ||||||
|  "nanomsg 0.5.1 (git+https://github.com/ethcore/nanomsg.rs.git)", |  "nanomsg 0.5.1 (git+https://github.com/ethcore/nanomsg.rs.git)", | ||||||
|  "semver 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", |  "semver 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", | ||||||
| @ -393,7 +393,7 @@ name = "ethcore-logger" | |||||||
| version = "1.3.0" | version = "1.3.0" | ||||||
| dependencies = [ | dependencies = [ | ||||||
|  "env_logger 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", |  "env_logger 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", | ||||||
|  "ethcore-util 1.3.11", |  "ethcore-util 1.3.12", | ||||||
|  "isatty 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", |  "isatty 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", | ||||||
|  "lazy_static 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", |  "lazy_static 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", | ||||||
|  "log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", |  "log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", | ||||||
| @ -408,7 +408,7 @@ dependencies = [ | |||||||
|  "ansi_term 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)", |  "ansi_term 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)", | ||||||
|  "ethcore-devtools 1.3.0", |  "ethcore-devtools 1.3.0", | ||||||
|  "ethcore-io 1.3.0", |  "ethcore-io 1.3.0", | ||||||
|  "ethcore-util 1.3.11", |  "ethcore-util 1.3.12", | ||||||
|  "igd 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", |  "igd 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", | ||||||
|  "libc 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)", |  "libc 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)", | ||||||
|  "log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", |  "log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", | ||||||
| @ -432,7 +432,7 @@ dependencies = [ | |||||||
|  "ethcore-devtools 1.3.0", |  "ethcore-devtools 1.3.0", | ||||||
|  "ethcore-io 1.3.0", |  "ethcore-io 1.3.0", | ||||||
|  "ethcore-ipc 1.3.0", |  "ethcore-ipc 1.3.0", | ||||||
|  "ethcore-util 1.3.11", |  "ethcore-util 1.3.12", | ||||||
|  "ethjson 0.1.0", |  "ethjson 0.1.0", | ||||||
|  "ethsync 1.3.0", |  "ethsync 1.3.0", | ||||||
|  "json-ipc-server 0.2.4 (git+https://github.com/ethcore/json-ipc-server.git?branch=beta)", |  "json-ipc-server 0.2.4 (git+https://github.com/ethcore/json-ipc-server.git?branch=beta)", | ||||||
| @ -455,7 +455,7 @@ dependencies = [ | |||||||
|  "env_logger 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", |  "env_logger 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", | ||||||
|  "ethcore-io 1.3.0", |  "ethcore-io 1.3.0", | ||||||
|  "ethcore-rpc 1.3.0", |  "ethcore-rpc 1.3.0", | ||||||
|  "ethcore-util 1.3.11", |  "ethcore-util 1.3.12", | ||||||
|  "jsonrpc-core 2.1.1 (registry+https://github.com/rust-lang/crates.io-index)", |  "jsonrpc-core 2.1.1 (registry+https://github.com/rust-lang/crates.io-index)", | ||||||
|  "log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", |  "log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", | ||||||
|  "parity-dapps-signer 1.4.0 (git+https://github.com/ethcore/parity-ui.git)", |  "parity-dapps-signer 1.4.0 (git+https://github.com/ethcore/parity-ui.git)", | ||||||
| @ -466,7 +466,7 @@ dependencies = [ | |||||||
| 
 | 
 | ||||||
| [[package]] | [[package]] | ||||||
| name = "ethcore-util" | name = "ethcore-util" | ||||||
| version = "1.3.11" | version = "1.3.12" | ||||||
| dependencies = [ | dependencies = [ | ||||||
|  "ansi_term 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)", |  "ansi_term 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)", | ||||||
|  "arrayvec 0.3.16 (registry+https://github.com/rust-lang/crates.io-index)", |  "arrayvec 0.3.16 (registry+https://github.com/rust-lang/crates.io-index)", | ||||||
| @ -499,7 +499,7 @@ dependencies = [ | |||||||
| name = "ethjson" | name = "ethjson" | ||||||
| version = "0.1.0" | version = "0.1.0" | ||||||
| dependencies = [ | dependencies = [ | ||||||
|  "ethcore-util 1.3.11", |  "ethcore-util 1.3.12", | ||||||
|  "rustc-serialize 0.3.19 (registry+https://github.com/rust-lang/crates.io-index)", |  "rustc-serialize 0.3.19 (registry+https://github.com/rust-lang/crates.io-index)", | ||||||
|  "serde 0.7.9 (registry+https://github.com/rust-lang/crates.io-index)", |  "serde 0.7.9 (registry+https://github.com/rust-lang/crates.io-index)", | ||||||
|  "serde_codegen 0.7.9 (registry+https://github.com/rust-lang/crates.io-index)", |  "serde_codegen 0.7.9 (registry+https://github.com/rust-lang/crates.io-index)", | ||||||
| @ -547,7 +547,7 @@ dependencies = [ | |||||||
|  "ethcore-ipc-codegen 1.3.0", |  "ethcore-ipc-codegen 1.3.0", | ||||||
|  "ethcore-ipc-nano 1.3.0", |  "ethcore-ipc-nano 1.3.0", | ||||||
|  "ethcore-network 1.3.0", |  "ethcore-network 1.3.0", | ||||||
|  "ethcore-util 1.3.11", |  "ethcore-util 1.3.12", | ||||||
|  "heapsize 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", |  "heapsize 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", | ||||||
|  "log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", |  "log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", | ||||||
|  "parking_lot 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", |  "parking_lot 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", | ||||||
| @ -1390,14 +1390,6 @@ dependencies = [ | |||||||
|  "syntex_syntax 0.33.0 (registry+https://github.com/rust-lang/crates.io-index)", |  "syntex_syntax 0.33.0 (registry+https://github.com/rust-lang/crates.io-index)", | ||||||
| ] | ] | ||||||
| 
 | 
 | ||||||
| [[package]] |  | ||||||
| name = "syntex" |  | ||||||
| version = "0.36.0" |  | ||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" |  | ||||||
| dependencies = [ |  | ||||||
|  "syntex_syntax 0.36.0 (registry+https://github.com/rust-lang/crates.io-index)", |  | ||||||
| ] |  | ||||||
| 
 |  | ||||||
| [[package]] | [[package]] | ||||||
| name = "syntex_syntax" | name = "syntex_syntax" | ||||||
| version = "0.33.0" | version = "0.33.0" | ||||||
| @ -1411,19 +1403,6 @@ dependencies = [ | |||||||
|  "unicode-xid 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)", |  "unicode-xid 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)", | ||||||
| ] | ] | ||||||
| 
 | 
 | ||||||
| [[package]] |  | ||||||
| name = "syntex_syntax" |  | ||||||
| version = "0.36.0" |  | ||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" |  | ||||||
| dependencies = [ |  | ||||||
|  "bitflags 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", |  | ||||||
|  "libc 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)", |  | ||||||
|  "log 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)", |  | ||||||
|  "rustc-serialize 0.3.19 (registry+https://github.com/rust-lang/crates.io-index)", |  | ||||||
|  "term 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)", |  | ||||||
|  "unicode-xid 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)", |  | ||||||
| ] |  | ||||||
| 
 |  | ||||||
| [[package]] | [[package]] | ||||||
| name = "table" | name = "table" | ||||||
| version = "0.1.0" | version = "0.1.0" | ||||||
| @ -1765,9 +1744,7 @@ dependencies = [ | |||||||
| "checksum stable-heap 0.1.0 (git+https://github.com/carllerche/stable-heap?rev=3c5cd1ca47)" = "<none>" | "checksum stable-heap 0.1.0 (git+https://github.com/carllerche/stable-heap?rev=3c5cd1ca47)" = "<none>" | ||||||
| "checksum strsim 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "50c069df92e4b01425a8bf3576d5d417943a6a7272fbabaf5bd80b1aaa76442e" | "checksum strsim 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "50c069df92e4b01425a8bf3576d5d417943a6a7272fbabaf5bd80b1aaa76442e" | ||||||
| "checksum syntex 0.33.0 (registry+https://github.com/rust-lang/crates.io-index)" = "393b6dd0889df2b064beeea954cfda6bc2571604ac460deeae0fed55a53988af" | "checksum syntex 0.33.0 (registry+https://github.com/rust-lang/crates.io-index)" = "393b6dd0889df2b064beeea954cfda6bc2571604ac460deeae0fed55a53988af" | ||||||
| "checksum syntex 0.36.0 (registry+https://github.com/rust-lang/crates.io-index)" = "61dc0bbe1e46dcd53ec50d6600e750152c22e0e9352cadbd413e86fb847ae899" |  | ||||||
| "checksum syntex_syntax 0.33.0 (registry+https://github.com/rust-lang/crates.io-index)" = "44bded3cabafc65c90b663b1071bd2d198a9ab7515e6ce729e4570aaf53c407e" | "checksum syntex_syntax 0.33.0 (registry+https://github.com/rust-lang/crates.io-index)" = "44bded3cabafc65c90b663b1071bd2d198a9ab7515e6ce729e4570aaf53c407e" | ||||||
| "checksum syntex_syntax 0.36.0 (registry+https://github.com/rust-lang/crates.io-index)" = "2b92a8c33fad2fa99e14fe499ec17e82b6c6496a7a38a499f33b584ffa1886fa" |  | ||||||
| "checksum target_info 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "c63f48baada5c52e65a29eef93ab4f8982681b67f9e8d29c7b05abcfec2b9ffe" | "checksum target_info 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "c63f48baada5c52e65a29eef93ab4f8982681b67f9e8d29c7b05abcfec2b9ffe" | ||||||
| "checksum term 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)" = "f2077e54d38055cf1ca0fd7933a2e00cd3ec8f6fed352b2a377f06dcdaaf3281" | "checksum term 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)" = "f2077e54d38055cf1ca0fd7933a2e00cd3ec8f6fed352b2a377f06dcdaaf3281" | ||||||
| "checksum termios 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "d5d9cf598a6d7ce700a4e6a9199da127e6819a61e64b68609683cc9a01b5683a" | "checksum termios 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "d5d9cf598a6d7ce700a4e6a9199da127e6819a61e64b68609683cc9a01b5683a" | ||||||
|  | |||||||
| @ -1,7 +1,7 @@ | |||||||
| [package] | [package] | ||||||
| description = "Ethcore client." | description = "Ethcore client." | ||||||
| name = "parity" | name = "parity" | ||||||
| version = "1.3.11" | version = "1.3.12" | ||||||
| license = "GPL-3.0" | license = "GPL-3.0" | ||||||
| authors = ["Ethcore <admin@ethcore.io>"] | authors = ["Ethcore <admin@ethcore.io>"] | ||||||
| build = "build.rs" | build = "build.rs" | ||||||
|  | |||||||
| @ -131,10 +131,11 @@ | |||||||
| 					"0x807640a13483f8ac783c557fcdf27be11ea4ac7a" | 					"0x807640a13483f8ac783c557fcdf27be11ea4ac7a" | ||||||
| 				], | 				], | ||||||
| 				"eip150Transition": "0x259518", | 				"eip150Transition": "0x259518", | ||||||
| 				"eip155Transition": "0x7fffffffffffffff", | 				"eip155Transition": "0x28d138", | ||||||
| 				"eip160Transition": "0x7fffffffffffffff", | 				"eip160Transition": "0x28d138", | ||||||
| 				"eip161abcTransition": "0x7fffffffffffffff", | 				"eip161abcTransition": "0x28d138", | ||||||
| 				"eip161dTransition": "0x7fffffffffffffff" | 				"eip161dTransition": "0x28d138", | ||||||
|  | 				"maxCodeSize": 24576 | ||||||
| 			} | 			} | ||||||
| 		} | 		} | ||||||
| 	}, | 	}, | ||||||
|  | |||||||
| @ -11,10 +11,10 @@ | |||||||
| 				"registrar": "0x8e4e9b13d4b45cb0befc93c3061b1408f67316b2", | 				"registrar": "0x8e4e9b13d4b45cb0befc93c3061b1408f67316b2", | ||||||
| 				"homesteadTransition": "0x789b0", | 				"homesteadTransition": "0x789b0", | ||||||
| 				"eip150Transition": "0x1b34d8", | 				"eip150Transition": "0x1b34d8", | ||||||
| 				"eip155Transition": "0x7fffffffffffffff", | 				"eip155Transition": "0x1cc348", | ||||||
| 				"eip160Transition": "0x7fffffffffffffff", | 				"eip160Transition": "0x1cc348", | ||||||
| 				"eip161abcTransition": "0x7fffffffffffffff", | 				"eip161abcTransition": "0x1cc348", | ||||||
| 				"eip161dTransition": "0x7fffffffffffffff" | 				"eip161dTransition": "0x1cc348" | ||||||
| 			} | 			} | ||||||
| 		} | 		} | ||||||
| 	}, | 	}, | ||||||
|  | |||||||
| @ -1 +1 @@ | |||||||
| Subproject commit 853333e7da312775fb8f32f2c2771b8578cd0d79 | Subproject commit 9028c4801fd39fbb71a9796979182549a24e81c8 | ||||||
| @ -55,7 +55,7 @@ impl Engine for InstantSeal { | |||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	fn schedule(&self, _env_info: &EnvInfo) -> Schedule { | 	fn schedule(&self, _env_info: &EnvInfo) -> Schedule { | ||||||
| 		Schedule::new_homestead() | 		Schedule::new_post_eip150(usize::max_value(), false, false, false) | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	fn generate_seal(&self, _block: &ExecutedBlock, _accounts: Option<&AccountProvider>) -> Option<Vec<Bytes>> { | 	fn generate_seal(&self, _block: &ExecutedBlock, _accounts: Option<&AccountProvider>) -> Option<Vec<Bytes>> { | ||||||
|  | |||||||
| @ -62,6 +62,8 @@ pub struct EthashParams { | |||||||
| 	pub eip161abc_transition: u64, | 	pub eip161abc_transition: u64, | ||||||
| 	/// Number of first block where EIP-161.d begins.
 | 	/// Number of first block where EIP-161.d begins.
 | ||||||
| 	pub eip161d_transition: u64, | 	pub eip161d_transition: u64, | ||||||
|  | 	/// Maximum amount of code that can be deploying into a contract.
 | ||||||
|  | 	pub max_code_size: u64, | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| impl From<ethjson::spec::EthashParams> for EthashParams { | impl From<ethjson::spec::EthashParams> for EthashParams { | ||||||
| @ -74,17 +76,18 @@ impl From<ethjson::spec::EthashParams> for EthashParams { | |||||||
| 			block_reward: p.block_reward.into(), | 			block_reward: p.block_reward.into(), | ||||||
| 			registrar: p.registrar.map_or_else(Address::new, Into::into), | 			registrar: p.registrar.map_or_else(Address::new, Into::into), | ||||||
| 			homestead_transition: p.homestead_transition.map_or(0, Into::into), | 			homestead_transition: p.homestead_transition.map_or(0, Into::into), | ||||||
| 			dao_hardfork_transition: p.dao_hardfork_transition.map_or(0x7fffffffffffffff, Into::into), | 			dao_hardfork_transition: p.dao_hardfork_transition.map_or(u64::max_value(), Into::into), | ||||||
| 			dao_hardfork_beneficiary: p.dao_hardfork_beneficiary.map_or_else(Address::new, Into::into), | 			dao_hardfork_beneficiary: p.dao_hardfork_beneficiary.map_or_else(Address::new, Into::into), | ||||||
| 			dao_hardfork_accounts: p.dao_hardfork_accounts.unwrap_or_else(Vec::new).into_iter().map(Into::into).collect(), | 			dao_hardfork_accounts: p.dao_hardfork_accounts.unwrap_or_else(Vec::new).into_iter().map(Into::into).collect(), | ||||||
| 			difficulty_hardfork_transition: p.difficulty_hardfork_transition.map_or(0x7fffffffffffffff, Into::into), | 			difficulty_hardfork_transition: p.difficulty_hardfork_transition.map_or(u64::max_value(), Into::into), | ||||||
| 			difficulty_hardfork_bound_divisor: p.difficulty_hardfork_bound_divisor.map_or(p.difficulty_bound_divisor.into(), Into::into), | 			difficulty_hardfork_bound_divisor: p.difficulty_hardfork_bound_divisor.map_or(p.difficulty_bound_divisor.into(), Into::into), | ||||||
| 			bomb_defuse_transition: p.bomb_defuse_transition.map_or(0x7fffffffffffffff, Into::into), | 			bomb_defuse_transition: p.bomb_defuse_transition.map_or(u64::max_value(), Into::into), | ||||||
| 			eip150_transition: p.eip150_transition.map_or(0, Into::into), | 			eip150_transition: p.eip150_transition.map_or(0, Into::into), | ||||||
| 			eip155_transition: p.eip155_transition.map_or(0, Into::into), | 			eip155_transition: p.eip155_transition.map_or(0, Into::into), | ||||||
| 			eip160_transition: p.eip160_transition.map_or(0, Into::into), | 			eip160_transition: p.eip160_transition.map_or(0, Into::into), | ||||||
| 			eip161abc_transition: p.eip161abc_transition.map_or(0, Into::into), | 			eip161abc_transition: p.eip161abc_transition.map_or(0, Into::into), | ||||||
| 			eip161d_transition: p.eip161d_transition.map_or(0x7fffffffffffffff, Into::into), | 			eip161d_transition: p.eip161d_transition.map_or(u64::max_value(), Into::into), | ||||||
|  | 			max_code_size: p.max_code_size.map_or(u64::max_value(), Into::into), | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
| @ -137,6 +140,7 @@ impl Engine for Ethash { | |||||||
| 			Schedule::new_homestead() | 			Schedule::new_homestead() | ||||||
| 		} else { | 		} else { | ||||||
| 			Schedule::new_post_eip150( | 			Schedule::new_post_eip150( | ||||||
|  | 				self.ethash_params.max_code_size as usize, | ||||||
| 				env_info.number >= self.ethash_params.eip160_transition, | 				env_info.number >= self.ethash_params.eip160_transition, | ||||||
| 				env_info.number >= self.ethash_params.eip161abc_transition, | 				env_info.number >= self.ethash_params.eip161abc_transition, | ||||||
| 				env_info.number >= self.ethash_params.eip161d_transition | 				env_info.number >= self.ethash_params.eip161d_transition | ||||||
|  | |||||||
| @ -70,6 +70,8 @@ pub struct Schedule { | |||||||
| 	pub quad_coeff_div: usize, | 	pub quad_coeff_div: usize, | ||||||
| 	/// Cost for contract length when executing `CREATE`
 | 	/// Cost for contract length when executing `CREATE`
 | ||||||
| 	pub create_data_gas: usize, | 	pub create_data_gas: usize, | ||||||
|  | 	/// Maximum code size when creating a contract.
 | ||||||
|  | 	pub create_data_limit: usize, | ||||||
| 	/// Transaction cost
 | 	/// Transaction cost
 | ||||||
| 	pub tx_gas: usize, | 	pub tx_gas: usize, | ||||||
| 	/// `CREATE` transaction cost
 | 	/// `CREATE` transaction cost
 | ||||||
| @ -111,7 +113,7 @@ impl Schedule { | |||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	/// Schedule for the post-EIP-150-era of the Ethereum main net.
 | 	/// Schedule for the post-EIP-150-era of the Ethereum main net.
 | ||||||
| 	pub fn new_post_eip150(fix_exp: bool, no_empty: bool, kill_empty: bool) -> Schedule { | 	pub fn new_post_eip150(max_code_size: usize, fix_exp: bool, no_empty: bool, kill_empty: bool) -> Schedule { | ||||||
| 		Schedule { | 		Schedule { | ||||||
| 			exceptional_failed_code_deposit: true, | 			exceptional_failed_code_deposit: true, | ||||||
| 			have_delegate_call: true, | 			have_delegate_call: true, | ||||||
| @ -139,6 +141,7 @@ impl Schedule { | |||||||
| 			memory_gas: 3, | 			memory_gas: 3, | ||||||
| 			quad_coeff_div: 512, | 			quad_coeff_div: 512, | ||||||
| 			create_data_gas: 200, | 			create_data_gas: 200, | ||||||
|  | 			create_data_limit: max_code_size, | ||||||
| 			tx_gas: 21000, | 			tx_gas: 21000, | ||||||
| 			tx_create_gas: 53000, | 			tx_create_gas: 53000, | ||||||
| 			tx_data_zero_gas: 4, | 			tx_data_zero_gas: 4, | ||||||
| @ -183,6 +186,7 @@ impl Schedule { | |||||||
| 			memory_gas: 3, | 			memory_gas: 3, | ||||||
| 			quad_coeff_div: 512, | 			quad_coeff_div: 512, | ||||||
| 			create_data_gas: 200, | 			create_data_gas: 200, | ||||||
|  | 			create_data_limit: usize::max_value(), | ||||||
| 			tx_gas: 21000, | 			tx_gas: 21000, | ||||||
| 			tx_create_gas: tcg, | 			tx_create_gas: tcg, | ||||||
| 			tx_data_zero_gas: 4, | 			tx_data_zero_gas: 4, | ||||||
|  | |||||||
| @ -241,7 +241,7 @@ impl<'a, T, V> Ext for Externalities<'a, T, V> where T: 'a + Tracer, V: 'a + VMT | |||||||
| 			}, | 			}, | ||||||
| 			OutputPolicy::InitContract(ref mut copy) => { | 			OutputPolicy::InitContract(ref mut copy) => { | ||||||
| 				let return_cost = U256::from(data.len()) * U256::from(self.schedule.create_data_gas); | 				let return_cost = U256::from(data.len()) * U256::from(self.schedule.create_data_gas); | ||||||
| 				if return_cost > *gas { | 				if return_cost > *gas || data.len() > self.schedule.create_data_limit { | ||||||
| 					return match self.schedule.exceptional_failed_code_deposit { | 					return match self.schedule.exceptional_failed_code_deposit { | ||||||
| 						true => Err(evm::Error::OutOfGas), | 						true => Err(evm::Error::OutOfGas), | ||||||
| 						false => Ok(*gas) | 						false => Ok(*gas) | ||||||
|  | |||||||
| @ -78,6 +78,10 @@ pub struct EthashParams { | |||||||
| 	/// See main EthashParams docs.
 | 	/// See main EthashParams docs.
 | ||||||
| 	#[serde(rename="eip161dTransition")] | 	#[serde(rename="eip161dTransition")] | ||||||
| 	pub eip161d_transition: Option<Uint>, | 	pub eip161d_transition: Option<Uint>, | ||||||
|  | 
 | ||||||
|  | 	/// See main EthashParams docs.
 | ||||||
|  | 	#[serde(rename="maxCodeSize")] | ||||||
|  | 	pub max_code_size: Option<Uint>, | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| /// Ethash engine deserialization.
 | /// Ethash engine deserialization.
 | ||||||
|  | |||||||
| @ -4,7 +4,7 @@ | |||||||
| !define DESCRIPTION "Fast, light, robust Ethereum implementation" | !define DESCRIPTION "Fast, light, robust Ethereum implementation" | ||||||
| !define VERSIONMAJOR 1 | !define VERSIONMAJOR 1 | ||||||
| !define VERSIONMINOR 3 | !define VERSIONMINOR 3 | ||||||
| !define VERSIONBUILD 11 | !define VERSIONBUILD 12 | ||||||
| 
 | 
 | ||||||
| !addplugindir .\ | !addplugindir .\ | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -3,7 +3,7 @@ description = "Ethcore utility library" | |||||||
| homepage = "http://ethcore.io" | homepage = "http://ethcore.io" | ||||||
| license = "GPL-3.0" | license = "GPL-3.0" | ||||||
| name = "ethcore-util" | name = "ethcore-util" | ||||||
| version = "1.3.11" | version = "1.3.12" | ||||||
| authors = ["Ethcore <admin@ethcore.io>"] | authors = ["Ethcore <admin@ethcore.io>"] | ||||||
| build = "build.rs" | build = "build.rs" | ||||||
| 
 | 
 | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user