Merge pull request #189 from ethereum/mappingarray

distinguish array of mapping
pull/7/head
chriseth 8 years ago committed by GitHub
commit 382b2b72a7
  1. 7
      src/solidity/decodeInfo.js
  2. 7
      src/solidity/types/util.js

@ -254,12 +254,13 @@ function getStructMembers (type, stateDefinitions, contractName, location) {
* @return {String} returns the token type (used to instanciate the right decoder) (uint[2] storage ref[2] will return 'array', uint256 will return uintX)
*/
function typeClass (fullType) {
fullType = util.removeLocation(fullType)
if (fullType.lastIndexOf(']') === fullType.length - 1) {
return 'array'
}
if (fullType.indexOf('mapping') === 0) {
return 'mapping'
}
if (fullType.indexOf(']') !== -1) {
return 'array'
}
if (fullType.indexOf(' ') !== -1) {
fullType = fullType.split(' ')[0]
}

@ -11,7 +11,8 @@ module.exports = {
sha3: sha3,
toBN: toBN,
add: add,
extractLocation: extractLocation
extractLocation: extractLocation,
removeLocation: removeLocation
}
function decodeInt (location, storageContent, byteLength, signed) {
@ -93,6 +94,10 @@ function add (value1, value2) {
return toBN(value1).add(toBN(value2))
}
function removeLocation (type) {
return type.replace(/( storage ref| storage pointer| memory| calldata)/g, '')
}
function extractLocation (type) {
var match = type.match(/( storage ref| storage pointer| memory| calldata)?$/)
if (match[1] !== '') {

Loading…
Cancel
Save