ad extractLocatioin to util

pull/7/head
yann300 8 years ago
parent c38dc7f456
commit 10b5308eb6
  1. 13
      src/solidity/decodeInfo.js
  2. 12
      src/solidity/types/util.js

@ -11,6 +11,7 @@ var StructType = require('./types/Struct')
var IntType = require('./types/Int')
var UintType = require('./types/Uint')
var MappingType = require('./types/Mapping')
var util = require('./types/util')
/**
* mapping decode the given @arg type
@ -73,9 +74,9 @@ function bool (type) {
* @return {Object} returns decoded info about the current type: { storageBytes, typeName}
*/
function dynamicByteArray (type) {
var match = type.match(/( storage ref| storage pointer| memory| calldata)?$/)
if (match.length > 1) {
return new BytesType(match[1].trim())
var location = util.extractLocation(type)
if (location) {
return new BytesType(location)
} else {
return null
}
@ -99,9 +100,9 @@ function fixedByteArray (type) {
* @return {Object} returns decoded info about the current type: { storageBytes, typeName}
*/
function stringType (type) {
var match = type.match(/( storage ref| storage pointer| memory| calldata)?$/)
if (match.length > 1) {
return new StringType(match[1].trim())
var location = util.extractLocation(type)
if (location) {
return new StringType(location)
} else {
return null
}

@ -12,7 +12,8 @@ module.exports = {
toBN: toBN,
add: add,
storageStore: storageStore,
memoryStore: memoryStore
memoryStore: memoryStore,
extractLocation: extractLocation
}
function decodeInt (location, storageContent, byteLength, signed) {
@ -94,6 +95,15 @@ function add (value1, value2) {
return toBN(value1).add(toBN(value2))
}
function extractLocation (type) {
var match = type.match(/( storage ref| storage pointer| memory| calldata)?$/)
if (match[1] !== '') {
return match[1].trim()
} else {
return null
}
}
function storageStore (type) {
return type.location.indexOf('storage') === 0
}

Loading…
Cancel
Save