{
  "contractName": "MockOracle",
  "abi": [
    {
      "constant": true,
      "inputs": [],
      "name": "denominatedCurrency",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "currencySymbol",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "price",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "currency",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "name": "_currency",
          "type": "address"
        },
        {
          "name": "_currencySymbol",
          "type": "bytes32"
        },
        {
          "name": "_denominatedCurrency",
          "type": "bytes32"
        },
        {
          "name": "_price",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_price",
          "type": "uint256"
        }
      ],
      "name": "changePrice",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "getCurrencyAddress",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "getCurrencySymbol",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "getCurrencyDenominated",
      "outputs": [
        {
          "name": "",
          "type": "bytes32"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "getPrice",
      "outputs": [
        {
          "name": "",
          "type": "uint256"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "bytecode": "0x608060405234801561001057600080fd5b50604051608080610299833981016040908152815160208301519183015160609093015160008054600160a060020a031916600160a060020a0390931692909217825560019290925560029290925560035561022790819061007290396000f3006080604052600436106100985763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166325f4cead811461009d5780635dfc09a4146100c4578063968c4209146100d957806398d5fdca146100ee578063a035b1fe14610103578063a2b40d1914610118578063bfe0c27e14610132578063d265421914610170578063e5a6b10f14610185575b600080fd5b3480156100a957600080fd5b506100b261019a565b60408051918252519081900360200190f35b3480156100d057600080fd5b506100b26101a0565b3480156100e557600080fd5b506100b26101a6565b3480156100fa57600080fd5b506100b26101ac565b34801561010f57600080fd5b506100b26101b2565b34801561012457600080fd5b506101306004356101b8565b005b34801561013e57600080fd5b506101476101bd565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b34801561017c57600080fd5b506100b26101d9565b34801561019157600080fd5b506101476101df565b60025481565b60015490565b60015481565b60035490565b60035481565b600355565b60005473ffffffffffffffffffffffffffffffffffffffff1690565b60025490565b60005473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a72305820ca0c404794c0717b452f1b78bffa901a7f81a82196e38a9ed96ed81b76df095e0029",
  "deployedBytecode": "0x6080604052600436106100985763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166325f4cead811461009d5780635dfc09a4146100c4578063968c4209146100d957806398d5fdca146100ee578063a035b1fe14610103578063a2b40d1914610118578063bfe0c27e14610132578063d265421914610170578063e5a6b10f14610185575b600080fd5b3480156100a957600080fd5b506100b261019a565b60408051918252519081900360200190f35b3480156100d057600080fd5b506100b26101a0565b3480156100e557600080fd5b506100b26101a6565b3480156100fa57600080fd5b506100b26101ac565b34801561010f57600080fd5b506100b26101b2565b34801561012457600080fd5b506101306004356101b8565b005b34801561013e57600080fd5b506101476101bd565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b34801561017c57600080fd5b506100b26101d9565b34801561019157600080fd5b506101476101df565b60025481565b60015490565b60015481565b60035490565b60035481565b600355565b60005473ffffffffffffffffffffffffffffffffffffffff1690565b60025490565b60005473ffffffffffffffffffffffffffffffffffffffff16815600a165627a7a72305820ca0c404794c0717b452f1b78bffa901a7f81a82196e38a9ed96ed81b76df095e0029",
  "sourceMap": "63:1207:24:-;;;232:264;8:9:-1;5:2;;;30:1;27;20:12;5:2;232:264:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;351:8;:20;;-1:-1:-1;;;;;;351:20:24;-1:-1:-1;;;;;351:20:24;;;;;;;;;-1:-1:-1;381:32:24;;;;423:19;:42;;;;475:5;:14;63:1207;;;;;;;;",
  "deployedSourceMap": "63:1207:24:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;165:34;;8:9:-1;5:2;;;30:1;27;20:12;5:2;165:34:24;;;;;;;;;;;;;;;;;;;;839:98;;8:9:-1;5:2;;;30:1;27;20:12;5:2;839:98:24;;;;130:29;;8:9:-1;5:2;;;30:1;27;20:12;5:2;130:29:24;;;;1187:80;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1187:80:24;;;;205:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;205:20:24;;;;502:77;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;502:77:24;;;;;;;663:93;;8:9:-1;5:2;;;30:1;27;20:12;5:2;663:93:24;;;;;;;;;;;;;;;;;;;;;;;1002:108;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1002:108:24;;;;101:23;;8:9:-1;5:2;;;30:1;27;20:12;5:2;101:23:24;;;;165:34;;;;:::o;839:98::-;916:14;;839:98;:::o;130:29::-;;;;:::o;1187:80::-;1255:5;;1187:80;:::o;205:20::-;;;;:::o;502:77::-;558:5;:14;502:77::o;663:93::-;715:7;741:8;;;663:93;:::o;1002:108::-;1084:19;;1002:108;:::o;101:23::-;;;;;;:::o",
  "source": "pragma solidity ^0.4.24;\n\nimport '../interfaces/IOracle.sol';\n\ncontract MockOracle is IOracle {\n\n    address public currency;\n    bytes32 public currencySymbol;\n    bytes32 public denominatedCurrency;\n    uint256 public price;\n\n    constructor(address _currency, bytes32 _currencySymbol, bytes32 _denominatedCurrency, uint256 _price) public {\n        currency = _currency;\n        currencySymbol = _currencySymbol;\n        denominatedCurrency = _denominatedCurrency;\n        price = _price;\n    }\n\n    function changePrice(uint256 _price) external {\n        price = _price;\n    }\n\n    /**\n    * @notice Returns address of oracle currency (0x0 for ETH)\n    */\n    function getCurrencyAddress() external view returns(address) {\n        return currency;\n    }\n\n    /**\n    * @notice Returns symbol of oracle currency (0x0 for ETH)\n    */\n    function getCurrencySymbol() external view returns(bytes32) {\n        return currencySymbol;\n    }\n\n    /**\n    * @notice Returns denomination of price\n    */\n    function getCurrencyDenominated() external view returns(bytes32) {\n        return denominatedCurrency;\n    }\n\n    /**\n    * @notice Returns price - should throw if not valid\n    */\n    function getPrice() external view returns(uint256) {\n        return price;\n    }\n\n}\n",
  "sourcePath": "/Users/satyamagrawal/Repositories/testing-package/polymath-core/contracts/mocks/MockOracle.sol",
  "ast": {
    "absolutePath": "/Users/satyamagrawal/Repositories/testing-package/polymath-core/contracts/mocks/MockOracle.sol",
    "exportedSymbols": {
      "MockOracle": [
        10529
      ]
    },
    "id": 10530,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 10447,
        "literals": [
          "solidity",
          "^",
          "0.4",
          ".24"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:24:24"
      },
      {
        "absolutePath": "/Users/satyamagrawal/Repositories/testing-package/polymath-core/contracts/interfaces/IOracle.sol",
        "file": "../interfaces/IOracle.sol",
        "id": 10448,
        "nodeType": "ImportDirective",
        "scope": 10530,
        "sourceUnit": 10001,
        "src": "26:35:24",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 10449,
              "name": "IOracle",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 10000,
              "src": "86:7:24",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_IOracle_$10000",
                "typeString": "contract IOracle"
              }
            },
            "id": 10450,
            "nodeType": "InheritanceSpecifier",
            "src": "86:7:24"
          }
        ],
        "contractDependencies": [
          10000
        ],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 10529,
        "linearizedBaseContracts": [
          10529,
          10000
        ],
        "name": "MockOracle",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": false,
            "id": 10452,
            "name": "currency",
            "nodeType": "VariableDeclaration",
            "scope": 10529,
            "src": "101:23:24",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_address",
              "typeString": "address"
            },
            "typeName": {
              "id": 10451,
              "name": "address",
              "nodeType": "ElementaryTypeName",
              "src": "101:7:24",
              "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 10454,
            "name": "currencySymbol",
            "nodeType": "VariableDeclaration",
            "scope": 10529,
            "src": "130:29:24",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
            },
            "typeName": {
              "id": 10453,
              "name": "bytes32",
              "nodeType": "ElementaryTypeName",
              "src": "130:7:24",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 10456,
            "name": "denominatedCurrency",
            "nodeType": "VariableDeclaration",
            "scope": 10529,
            "src": "165:34:24",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
            },
            "typeName": {
              "id": 10455,
              "name": "bytes32",
              "nodeType": "ElementaryTypeName",
              "src": "165:7:24",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 10458,
            "name": "price",
            "nodeType": "VariableDeclaration",
            "scope": 10529,
            "src": "205:20:24",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 10457,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "205:7:24",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 10485,
              "nodeType": "Block",
              "src": "341:155:24",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 10471,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 10469,
                      "name": "currency",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10452,
                      "src": "351:8:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 10470,
                      "name": "_currency",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10460,
                      "src": "362:9:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "351:20:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 10472,
                  "nodeType": "ExpressionStatement",
                  "src": "351:20:24"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 10475,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 10473,
                      "name": "currencySymbol",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10454,
                      "src": "381:14:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 10474,
                      "name": "_currencySymbol",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10462,
                      "src": "398:15:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "381:32:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 10476,
                  "nodeType": "ExpressionStatement",
                  "src": "381:32:24"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 10479,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 10477,
                      "name": "denominatedCurrency",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10456,
                      "src": "423:19:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 10478,
                      "name": "_denominatedCurrency",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10464,
                      "src": "445:20:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "423:42:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 10480,
                  "nodeType": "ExpressionStatement",
                  "src": "423:42:24"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 10483,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 10481,
                      "name": "price",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10458,
                      "src": "475:5:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 10482,
                      "name": "_price",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10466,
                      "src": "483:6:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "475:14:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 10484,
                  "nodeType": "ExpressionStatement",
                  "src": "475:14:24"
                }
              ]
            },
            "documentation": null,
            "id": 10486,
            "implemented": true,
            "isConstructor": true,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 10467,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10460,
                  "name": "_currency",
                  "nodeType": "VariableDeclaration",
                  "scope": 10486,
                  "src": "244:17:24",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 10459,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "244:7:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 10462,
                  "name": "_currencySymbol",
                  "nodeType": "VariableDeclaration",
                  "scope": 10486,
                  "src": "263:23:24",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 10461,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "263:7:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 10464,
                  "name": "_denominatedCurrency",
                  "nodeType": "VariableDeclaration",
                  "scope": 10486,
                  "src": "288:28:24",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 10463,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "288:7:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 10466,
                  "name": "_price",
                  "nodeType": "VariableDeclaration",
                  "scope": 10486,
                  "src": "318:14:24",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 10465,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "318:7:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "243:90:24"
            },
            "payable": false,
            "returnParameters": {
              "id": 10468,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "341:0:24"
            },
            "scope": 10529,
            "src": "232:264:24",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 10495,
              "nodeType": "Block",
              "src": "548:31:24",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 10493,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 10491,
                      "name": "price",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10458,
                      "src": "558:5:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 10492,
                      "name": "_price",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10488,
                      "src": "566:6:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "558:14:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 10494,
                  "nodeType": "ExpressionStatement",
                  "src": "558:14:24"
                }
              ]
            },
            "documentation": null,
            "id": 10496,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "changePrice",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 10489,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10488,
                  "name": "_price",
                  "nodeType": "VariableDeclaration",
                  "scope": 10496,
                  "src": "523:14:24",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 10487,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "523:7:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "522:16:24"
            },
            "payable": false,
            "returnParameters": {
              "id": 10490,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "548:0:24"
            },
            "scope": 10529,
            "src": "502:77:24",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 10503,
              "nodeType": "Block",
              "src": "724:32:24",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 10501,
                    "name": "currency",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 10452,
                    "src": "741:8:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "functionReturnParameters": 10500,
                  "id": 10502,
                  "nodeType": "Return",
                  "src": "734:15:24"
                }
              ]
            },
            "documentation": "@notice Returns address of oracle currency (0x0 for ETH)",
            "id": 10504,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getCurrencyAddress",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 10497,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "690:2:24"
            },
            "payable": false,
            "returnParameters": {
              "id": 10500,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10499,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 10504,
                  "src": "715:7:24",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 10498,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "715:7:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "714:9:24"
            },
            "scope": 10529,
            "src": "663:93:24",
            "stateMutability": "view",
            "superFunction": 9984,
            "visibility": "external"
          },
          {
            "body": {
              "id": 10511,
              "nodeType": "Block",
              "src": "899:38:24",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 10509,
                    "name": "currencySymbol",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 10454,
                    "src": "916:14:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "functionReturnParameters": 10508,
                  "id": 10510,
                  "nodeType": "Return",
                  "src": "909:21:24"
                }
              ]
            },
            "documentation": "@notice Returns symbol of oracle currency (0x0 for ETH)",
            "id": 10512,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getCurrencySymbol",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 10505,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "865:2:24"
            },
            "payable": false,
            "returnParameters": {
              "id": 10508,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10507,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 10512,
                  "src": "890:7:24",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 10506,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "890:7:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "889:9:24"
            },
            "scope": 10529,
            "src": "839:98:24",
            "stateMutability": "view",
            "superFunction": 9989,
            "visibility": "external"
          },
          {
            "body": {
              "id": 10519,
              "nodeType": "Block",
              "src": "1067:43:24",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 10517,
                    "name": "denominatedCurrency",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 10456,
                    "src": "1084:19:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "functionReturnParameters": 10516,
                  "id": 10518,
                  "nodeType": "Return",
                  "src": "1077:26:24"
                }
              ]
            },
            "documentation": "@notice Returns denomination of price",
            "id": 10520,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getCurrencyDenominated",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 10513,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1033:2:24"
            },
            "payable": false,
            "returnParameters": {
              "id": 10516,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10515,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 10520,
                  "src": "1058:7:24",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 10514,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1058:7:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1057:9:24"
            },
            "scope": 10529,
            "src": "1002:108:24",
            "stateMutability": "view",
            "superFunction": 9994,
            "visibility": "external"
          },
          {
            "body": {
              "id": 10527,
              "nodeType": "Block",
              "src": "1238:29:24",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 10525,
                    "name": "price",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 10458,
                    "src": "1255:5:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 10524,
                  "id": 10526,
                  "nodeType": "Return",
                  "src": "1248:12:24"
                }
              ]
            },
            "documentation": "@notice Returns price - should throw if not valid",
            "id": 10528,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getPrice",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 10521,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1204:2:24"
            },
            "payable": false,
            "returnParameters": {
              "id": 10524,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10523,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 10528,
                  "src": "1229:7:24",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 10522,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1229:7:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1228:9:24"
            },
            "scope": 10529,
            "src": "1187:80:24",
            "stateMutability": "view",
            "superFunction": 9999,
            "visibility": "external"
          }
        ],
        "scope": 10530,
        "src": "63:1207:24"
      }
    ],
    "src": "0:1271:24"
  },
  "legacyAST": {
    "absolutePath": "/Users/satyamagrawal/Repositories/testing-package/polymath-core/contracts/mocks/MockOracle.sol",
    "exportedSymbols": {
      "MockOracle": [
        10529
      ]
    },
    "id": 10530,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 10447,
        "literals": [
          "solidity",
          "^",
          "0.4",
          ".24"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:24:24"
      },
      {
        "absolutePath": "/Users/satyamagrawal/Repositories/testing-package/polymath-core/contracts/interfaces/IOracle.sol",
        "file": "../interfaces/IOracle.sol",
        "id": 10448,
        "nodeType": "ImportDirective",
        "scope": 10530,
        "sourceUnit": 10001,
        "src": "26:35:24",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 10449,
              "name": "IOracle",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 10000,
              "src": "86:7:24",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_IOracle_$10000",
                "typeString": "contract IOracle"
              }
            },
            "id": 10450,
            "nodeType": "InheritanceSpecifier",
            "src": "86:7:24"
          }
        ],
        "contractDependencies": [
          10000
        ],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 10529,
        "linearizedBaseContracts": [
          10529,
          10000
        ],
        "name": "MockOracle",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": false,
            "id": 10452,
            "name": "currency",
            "nodeType": "VariableDeclaration",
            "scope": 10529,
            "src": "101:23:24",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_address",
              "typeString": "address"
            },
            "typeName": {
              "id": 10451,
              "name": "address",
              "nodeType": "ElementaryTypeName",
              "src": "101:7:24",
              "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 10454,
            "name": "currencySymbol",
            "nodeType": "VariableDeclaration",
            "scope": 10529,
            "src": "130:29:24",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
            },
            "typeName": {
              "id": 10453,
              "name": "bytes32",
              "nodeType": "ElementaryTypeName",
              "src": "130:7:24",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 10456,
            "name": "denominatedCurrency",
            "nodeType": "VariableDeclaration",
            "scope": 10529,
            "src": "165:34:24",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bytes32",
              "typeString": "bytes32"
            },
            "typeName": {
              "id": 10455,
              "name": "bytes32",
              "nodeType": "ElementaryTypeName",
              "src": "165:7:24",
              "typeDescriptions": {
                "typeIdentifier": "t_bytes32",
                "typeString": "bytes32"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 10458,
            "name": "price",
            "nodeType": "VariableDeclaration",
            "scope": 10529,
            "src": "205:20:24",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 10457,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "205:7:24",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 10485,
              "nodeType": "Block",
              "src": "341:155:24",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 10471,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 10469,
                      "name": "currency",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10452,
                      "src": "351:8:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 10470,
                      "name": "_currency",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10460,
                      "src": "362:9:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "351:20:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 10472,
                  "nodeType": "ExpressionStatement",
                  "src": "351:20:24"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 10475,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 10473,
                      "name": "currencySymbol",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10454,
                      "src": "381:14:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 10474,
                      "name": "_currencySymbol",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10462,
                      "src": "398:15:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "381:32:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 10476,
                  "nodeType": "ExpressionStatement",
                  "src": "381:32:24"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 10479,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 10477,
                      "name": "denominatedCurrency",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10456,
                      "src": "423:19:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 10478,
                      "name": "_denominatedCurrency",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10464,
                      "src": "445:20:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "423:42:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "id": 10480,
                  "nodeType": "ExpressionStatement",
                  "src": "423:42:24"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 10483,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 10481,
                      "name": "price",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10458,
                      "src": "475:5:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 10482,
                      "name": "_price",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10466,
                      "src": "483:6:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "475:14:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 10484,
                  "nodeType": "ExpressionStatement",
                  "src": "475:14:24"
                }
              ]
            },
            "documentation": null,
            "id": 10486,
            "implemented": true,
            "isConstructor": true,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 10467,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10460,
                  "name": "_currency",
                  "nodeType": "VariableDeclaration",
                  "scope": 10486,
                  "src": "244:17:24",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 10459,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "244:7:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 10462,
                  "name": "_currencySymbol",
                  "nodeType": "VariableDeclaration",
                  "scope": 10486,
                  "src": "263:23:24",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 10461,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "263:7:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 10464,
                  "name": "_denominatedCurrency",
                  "nodeType": "VariableDeclaration",
                  "scope": 10486,
                  "src": "288:28:24",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 10463,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "288:7:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 10466,
                  "name": "_price",
                  "nodeType": "VariableDeclaration",
                  "scope": 10486,
                  "src": "318:14:24",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 10465,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "318:7:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "243:90:24"
            },
            "payable": false,
            "returnParameters": {
              "id": 10468,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "341:0:24"
            },
            "scope": 10529,
            "src": "232:264:24",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 10495,
              "nodeType": "Block",
              "src": "548:31:24",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 10493,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 10491,
                      "name": "price",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10458,
                      "src": "558:5:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 10492,
                      "name": "_price",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10488,
                      "src": "566:6:24",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "558:14:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 10494,
                  "nodeType": "ExpressionStatement",
                  "src": "558:14:24"
                }
              ]
            },
            "documentation": null,
            "id": 10496,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": false,
            "modifiers": [],
            "name": "changePrice",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 10489,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10488,
                  "name": "_price",
                  "nodeType": "VariableDeclaration",
                  "scope": 10496,
                  "src": "523:14:24",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 10487,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "523:7:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "522:16:24"
            },
            "payable": false,
            "returnParameters": {
              "id": 10490,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "548:0:24"
            },
            "scope": 10529,
            "src": "502:77:24",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "external"
          },
          {
            "body": {
              "id": 10503,
              "nodeType": "Block",
              "src": "724:32:24",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 10501,
                    "name": "currency",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 10452,
                    "src": "741:8:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "functionReturnParameters": 10500,
                  "id": 10502,
                  "nodeType": "Return",
                  "src": "734:15:24"
                }
              ]
            },
            "documentation": "@notice Returns address of oracle currency (0x0 for ETH)",
            "id": 10504,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getCurrencyAddress",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 10497,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "690:2:24"
            },
            "payable": false,
            "returnParameters": {
              "id": 10500,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10499,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 10504,
                  "src": "715:7:24",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 10498,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "715:7:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "714:9:24"
            },
            "scope": 10529,
            "src": "663:93:24",
            "stateMutability": "view",
            "superFunction": 9984,
            "visibility": "external"
          },
          {
            "body": {
              "id": 10511,
              "nodeType": "Block",
              "src": "899:38:24",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 10509,
                    "name": "currencySymbol",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 10454,
                    "src": "916:14:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "functionReturnParameters": 10508,
                  "id": 10510,
                  "nodeType": "Return",
                  "src": "909:21:24"
                }
              ]
            },
            "documentation": "@notice Returns symbol of oracle currency (0x0 for ETH)",
            "id": 10512,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getCurrencySymbol",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 10505,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "865:2:24"
            },
            "payable": false,
            "returnParameters": {
              "id": 10508,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10507,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 10512,
                  "src": "890:7:24",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 10506,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "890:7:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "889:9:24"
            },
            "scope": 10529,
            "src": "839:98:24",
            "stateMutability": "view",
            "superFunction": 9989,
            "visibility": "external"
          },
          {
            "body": {
              "id": 10519,
              "nodeType": "Block",
              "src": "1067:43:24",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 10517,
                    "name": "denominatedCurrency",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 10456,
                    "src": "1084:19:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "functionReturnParameters": 10516,
                  "id": 10518,
                  "nodeType": "Return",
                  "src": "1077:26:24"
                }
              ]
            },
            "documentation": "@notice Returns denomination of price",
            "id": 10520,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getCurrencyDenominated",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 10513,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1033:2:24"
            },
            "payable": false,
            "returnParameters": {
              "id": 10516,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10515,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 10520,
                  "src": "1058:7:24",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 10514,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1058:7:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1057:9:24"
            },
            "scope": 10529,
            "src": "1002:108:24",
            "stateMutability": "view",
            "superFunction": 9994,
            "visibility": "external"
          },
          {
            "body": {
              "id": 10527,
              "nodeType": "Block",
              "src": "1238:29:24",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 10525,
                    "name": "price",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 10458,
                    "src": "1255:5:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 10524,
                  "id": 10526,
                  "nodeType": "Return",
                  "src": "1248:12:24"
                }
              ]
            },
            "documentation": "@notice Returns price - should throw if not valid",
            "id": 10528,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "getPrice",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 10521,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1204:2:24"
            },
            "payable": false,
            "returnParameters": {
              "id": 10524,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10523,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 10528,
                  "src": "1229:7:24",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 10522,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1229:7:24",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1228:9:24"
            },
            "scope": 10529,
            "src": "1187:80:24",
            "stateMutability": "view",
            "superFunction": 9999,
            "visibility": "external"
          }
        ],
        "scope": 10530,
        "src": "63:1207:24"
      }
    ],
    "src": "0:1271:24"
  },
  "compiler": {
    "name": "solc",
    "version": "0.4.24+commit.e67f0147.Emscripten.clang"
  },
  "networks": {
    "15": {
      "events": {},
      "links": {},
      "address": "0x8419263fb0941a0295de92aa37c641dfcd60b41a",
      "transactionHash": "0x8b34507ad3a38b4aac5a58c2bbb11fda75bd1091b916caff1f2bfef80a2b8ccf"
    }
  },
  "schemaVersion": "2.0.1",
  "updatedAt": "2018-08-21T09:48:28.950Z"
}