SOLVED: Mapping of Mappings

UPDATE: Looks like we have solved this. Let us know if this gives you any problems. We’ve pushed out an update to handle this.

We are adopting a new format for accessing mappings of mappings. See our new documentation here:

Hi Folks!

We’ve found a bug in the implementation of inputs for nested mappings:

So solidity code that looks like this:

mapping (address => mapping (address => uint))  public  allowance;

Generates an ABI that looks like this:

{"constant":true,"inputs":[{"name":"","type":"address"},{"name":"","type":"address"}],"name":"allowance","outputs":[{"name":"","type":"uint256"}]

Notice how there are two inputs here with an empty string “” as their name. Currently the DappHero engine matches inputs by inputName, or in the case of single mappings, using the constant $true to represent an anonymous input.

Somewhat obviously, this method does not work for array-index based inputs for nested mappings.

So we’re working on a solution!