Merge pull request #487 from ethereum/swarmhash

Remove swarm hash
pull/7/head
chriseth 8 years ago committed by GitHub
commit c9dbac62d2
  1. 3
      src/code/sourceLocationTracker.js
  2. 21
      src/helpers/util.js
  3. 3
      src/solidity/solidityProxy.js

@ -2,6 +2,7 @@
var EventManager = require('../lib/eventManager') var EventManager = require('../lib/eventManager')
var helper = require('../helpers/traceHelper') var helper = require('../helpers/traceHelper')
var SourceMappingDecoder = require('../util/sourceMappingDecoder') var SourceMappingDecoder = require('../util/sourceMappingDecoder')
var util = require('../helpers/util')
/** /**
* Process the source code location for the current executing bytecode * Process the source code location for the current executing bytecode
@ -67,7 +68,7 @@ function getSourceMap (address, code, contracts) {
var isCreation = helper.isContractCreation(address) var isCreation = helper.isContractCreation(address)
var byteProp = isCreation ? 'bytecode' : 'runtimeBytecode' var byteProp = isCreation ? 'bytecode' : 'runtimeBytecode'
for (var k in contracts) { for (var k in contracts) {
if (code.indexOf('0x' + contracts[k][byteProp]) === 0) { if (code.replace(util.swarmHashExtraction(), '').indexOf('0x' + contracts[k][byteProp].replace(util.swarmHashExtraction(), '')) === 0) {
return isCreation ? contracts[k].srcmap : srcmapRuntime(contracts[k]) return isCreation ? contracts[k].srcmap : srcmapRuntime(contracts[k])
} }
} }

@ -117,6 +117,13 @@ module.exports = {
*/ */
findCall: findCall, findCall: findCall,
/**
* Find calls path from @args rootCall which leads to @args index (recursive)
*
* @param {Int} index - index of the vmtrace
* @param {Object} rootCall - call tree, built by the trace analyser
* @return {Array} - return the calls path to @args index
*/
buildCallPath: buildCallPath, buildCallPath: buildCallPath,
/** /**
@ -129,16 +136,18 @@ module.exports = {
var ret = ethutil.bufferToHex(ethutil.setLengthLeft(value, 32)) var ret = ethutil.bufferToHex(ethutil.setLengthLeft(value, 32))
ret = ethutil.sha3(ret) ret = ethutil.sha3(ret)
return ethutil.bufferToHex(ret) return ethutil.bufferToHex(ret)
} },
}
/** /**
* Find calls path from @args rootCall which leads to @args index (recursive) * return a regex which extract the swarmhash from the bytecode.
* *
* @param {Int} index - index of the vmtrace * @return {RegEx}
* @param {Object} rootCall - call tree, built by the trace analyser
* @return {Array} - return the calls path to @args index
*/ */
swarmHashExtraction: function () {
return /a165627a7a72305820([0-9a-f]{64})0029$/
}
}
function buildCallPath (index, rootCall) { function buildCallPath (index, rootCall) {
var ret = [] var ret = []
findCallInternal(index, rootCall, ret) findCallInternal(index, rootCall, ret)

@ -2,6 +2,7 @@
var traceHelper = require('../helpers/traceHelper') var traceHelper = require('../helpers/traceHelper')
var stateDecoder = require('./stateDecoder') var stateDecoder = require('./stateDecoder')
var astHelper = require('./astHelper') var astHelper = require('./astHelper')
var util = require('../helpers/util')
class SolidityProxy { class SolidityProxy {
constructor (traceManager, codeManager) { constructor (traceManager, codeManager) {
@ -136,7 +137,7 @@ function contractNameFromCode (contracts, code, address) {
var isCreation = traceHelper.isContractCreation(address) var isCreation = traceHelper.isContractCreation(address)
var byteProp = isCreation ? 'bytecode' : 'runtimeBytecode' var byteProp = isCreation ? 'bytecode' : 'runtimeBytecode'
for (var k in contracts) { for (var k in contracts) {
if ('0x' + contracts[k][byteProp] === code) { if ('0x' + contracts[k][byteProp].replace(util.swarmHashExtraction(), '') === code.replace(util.swarmHashExtraction(), '')) {
return k return k
} }
} }

Loading…
Cancel
Save