sha3 method signature
This commit is contained in:
		
							parent
							
								
									807ec60e63
								
							
						
					
					
						commit
						0538c11576
					
				
							
								
								
									
										22
									
								
								dist/ethereum.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										22
									
								
								dist/ethereum.js
									
									
									
									
										vendored
									
									
								
							| @ -141,7 +141,6 @@ var toAbiInput = function (json, methodName, params) { | |||||||
|         return; |         return; | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     bytes = "0x" + padLeft(index.toString(16), 2); |  | ||||||
|     var method = json[index]; |     var method = json[index]; | ||||||
| 
 | 
 | ||||||
|     for (var i = 0; i < method.inputs.length; i++) { |     for (var i = 0; i < method.inputs.length; i++) { | ||||||
| @ -260,9 +259,22 @@ var outputParser = function (json) { | |||||||
|     return parser; |     return parser; | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
|  | var methodSignature = function (json, name) { | ||||||
|  |     var method = json[findMethodIndex(json, name)]; | ||||||
|  |     var result = name + '('; | ||||||
|  |     var inputTypes = method.inputs.map(function (inp) { | ||||||
|  |         return inp.type; | ||||||
|  |     }); | ||||||
|  |     result += inputTypes.join(','); | ||||||
|  |     result += ')'; | ||||||
|  | 
 | ||||||
|  |     return web3.sha3(result); | ||||||
|  | }; | ||||||
|  | 
 | ||||||
| module.exports = { | module.exports = { | ||||||
|     inputParser: inputParser, |     inputParser: inputParser, | ||||||
|     outputParser: outputParser |     outputParser: outputParser, | ||||||
|  |     methodSignature: methodSignature | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
| },{}],2:[function(require,module,exports){ | },{}],2:[function(require,module,exports){ | ||||||
| @ -418,8 +430,10 @@ var contract = function (address, desc) { | |||||||
|                 call: function (extra) { |                 call: function (extra) { | ||||||
|                     extra = extra || {}; |                     extra = extra || {}; | ||||||
|                     extra.to = address; |                     extra.to = address; | ||||||
|                     extra.data = parsed; |                     return abi.methodSignature(desc, method.name).then(function (signature) { | ||||||
|                     return web3.eth.call(extra).then(onSuccess); |                         extra.data = signature.slice(0, 10) + parsed; | ||||||
|  |                         return web3.eth.call(extra).then(onSuccess); | ||||||
|  |                     }); | ||||||
|                 }, |                 }, | ||||||
|                 transact: function (extra) { |                 transact: function (extra) { | ||||||
|                     extra = extra || {}; |                     extra = extra || {}; | ||||||
|  | |||||||
							
								
								
									
										6
									
								
								dist/ethereum.js.map
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										6
									
								
								dist/ethereum.js.map
									
									
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										2
									
								
								dist/ethereum.min.js
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								dist/ethereum.min.js
									
									
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										16
									
								
								lib/abi.js
									
									
									
									
									
								
							
							
						
						
									
										16
									
								
								lib/abi.js
									
									
									
									
									
								
							| @ -140,7 +140,6 @@ var toAbiInput = function (json, methodName, params) { | |||||||
|         return; |         return; | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     bytes = "0x" + padLeft(index.toString(16), 2); |  | ||||||
|     var method = json[index]; |     var method = json[index]; | ||||||
| 
 | 
 | ||||||
|     for (var i = 0; i < method.inputs.length; i++) { |     for (var i = 0; i < method.inputs.length; i++) { | ||||||
| @ -259,7 +258,20 @@ var outputParser = function (json) { | |||||||
|     return parser; |     return parser; | ||||||
| }; | }; | ||||||
| 
 | 
 | ||||||
|  | var methodSignature = function (json, name) { | ||||||
|  |     var method = json[findMethodIndex(json, name)]; | ||||||
|  |     var result = name + '('; | ||||||
|  |     var inputTypes = method.inputs.map(function (inp) { | ||||||
|  |         return inp.type; | ||||||
|  |     }); | ||||||
|  |     result += inputTypes.join(','); | ||||||
|  |     result += ')'; | ||||||
|  | 
 | ||||||
|  |     return web3.sha3(result); | ||||||
|  | }; | ||||||
|  | 
 | ||||||
| module.exports = { | module.exports = { | ||||||
|     inputParser: inputParser, |     inputParser: inputParser, | ||||||
|     outputParser: outputParser |     outputParser: outputParser, | ||||||
|  |     methodSignature: methodSignature | ||||||
| }; | }; | ||||||
|  | |||||||
| @ -46,8 +46,10 @@ var contract = function (address, desc) { | |||||||
|                 call: function (extra) { |                 call: function (extra) { | ||||||
|                     extra = extra || {}; |                     extra = extra || {}; | ||||||
|                     extra.to = address; |                     extra.to = address; | ||||||
|                     extra.data = parsed; |                     return abi.methodSignature(desc, method.name).then(function (signature) { | ||||||
|                     return web3.eth.call(extra).then(onSuccess); |                         extra.data = signature.slice(0, 10) + parsed; | ||||||
|  |                         return web3.eth.call(extra).then(onSuccess); | ||||||
|  |                     }); | ||||||
|                 }, |                 }, | ||||||
|                 transact: function (extra) { |                 transact: function (extra) { | ||||||
|                     extra = extra || {}; |                     extra = extra || {}; | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user