{
  "contractName": "ConverterFactory",
  "abi": [
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "uint16",
          "name": "_type",
          "type": "uint16"
        },
        {
          "indexed": true,
          "internalType": "contract IConverter",
          "name": "_converter",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "_owner",
          "type": "address"
        }
      ],
      "name": "NewConverter",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "_prevOwner",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "_newOwner",
          "type": "address"
        }
      ],
      "name": "OwnerUpdate",
      "type": "event"
    },
    {
      "inputs": [],
      "name": "acceptOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint16",
          "name": "",
          "type": "uint16"
        }
      ],
      "name": "anchorFactories",
      "outputs": [
        {
          "internalType": "contract ITypedConverterAnchorFactory",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function",
      "constant": true
    },
    {
      "inputs": [
        {
          "internalType": "uint16",
          "name": "",
          "type": "uint16"
        }
      ],
      "name": "converterFactories",
      "outputs": [
        {
          "internalType": "contract ITypedConverterFactory",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function",
      "constant": true
    },
    {
      "inputs": [
        {
          "internalType": "uint16",
          "name": "",
          "type": "uint16"
        }
      ],
      "name": "customFactories",
      "outputs": [
        {
          "internalType": "contract ITypedConverterCustomFactory",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function",
      "constant": true
    },
    {
      "inputs": [],
      "name": "newOwner",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function",
      "constant": true
    },
    {
      "inputs": [],
      "name": "owner",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function",
      "constant": true
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_newOwner",
          "type": "address"
        }
      ],
      "name": "transferOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract ITypedConverterFactory",
          "name": "_factory",
          "type": "address"
        }
      ],
      "name": "registerTypedConverterFactory",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract ITypedConverterAnchorFactory",
          "name": "_factory",
          "type": "address"
        }
      ],
      "name": "registerTypedConverterAnchorFactory",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract ITypedConverterCustomFactory",
          "name": "_factory",
          "type": "address"
        }
      ],
      "name": "registerTypedConverterCustomFactory",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint16",
          "name": "_converterType",
          "type": "uint16"
        },
        {
          "internalType": "string",
          "name": "_name",
          "type": "string"
        },
        {
          "internalType": "string",
          "name": "_symbol",
          "type": "string"
        },
        {
          "internalType": "uint8",
          "name": "_decimals",
          "type": "uint8"
        }
      ],
      "name": "createAnchor",
      "outputs": [
        {
          "internalType": "contract IConverterAnchor",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint16",
          "name": "_type",
          "type": "uint16"
        },
        {
          "internalType": "contract IConverterAnchor",
          "name": "_anchor",
          "type": "address"
        },
        {
          "internalType": "contract IContractRegistry",
          "name": "_registry",
          "type": "address"
        },
        {
          "internalType": "uint32",
          "name": "_maxConversionFee",
          "type": "uint32"
        }
      ],
      "name": "createConverter",
      "outputs": [
        {
          "internalType": "contract IConverter",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "metadata": "{\"compiler\":{\"version\":\"0.6.12+commit.27d51765\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint16\",\"name\":\"_type\",\"type\":\"uint16\"},{\"indexed\":true,\"internalType\":\"contract IConverter\",\"name\":\"_converter\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"NewConverter\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_prevOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"_newOwner\",\"type\":\"address\"}],\"name\":\"OwnerUpdate\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"acceptOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"name\":\"anchorFactories\",\"outputs\":[{\"internalType\":\"contract ITypedConverterAnchorFactory\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"name\":\"converterFactories\",\"outputs\":[{\"internalType\":\"contract ITypedConverterFactory\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_converterType\",\"type\":\"uint16\"},{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"_symbol\",\"type\":\"string\"},{\"internalType\":\"uint8\",\"name\":\"_decimals\",\"type\":\"uint8\"}],\"name\":\"createAnchor\",\"outputs\":[{\"internalType\":\"contract IConverterAnchor\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"_type\",\"type\":\"uint16\"},{\"internalType\":\"contract IConverterAnchor\",\"name\":\"_anchor\",\"type\":\"address\"},{\"internalType\":\"contract IContractRegistry\",\"name\":\"_registry\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"_maxConversionFee\",\"type\":\"uint32\"}],\"name\":\"createConverter\",\"outputs\":[{\"internalType\":\"contract IConverter\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint16\",\"name\":\"\",\"type\":\"uint16\"}],\"name\":\"customFactories\",\"outputs\":[{\"internalType\":\"contract ITypedConverterCustomFactory\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"newOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ITypedConverterAnchorFactory\",\"name\":\"_factory\",\"type\":\"address\"}],\"name\":\"registerTypedConverterAnchorFactory\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ITypedConverterCustomFactory\",\"name\":\"_factory\",\"type\":\"address\"}],\"name\":\"registerTypedConverterCustomFactory\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract ITypedConverterFactory\",\"name\":\"_factory\",\"type\":\"address\"}],\"name\":\"registerTypedConverterFactory\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"NewConverter(uint16,address,address)\":{\"details\":\"triggered when a new converter is created\",\"params\":{\"_converter\":\"new converter address\",\"_owner\":\"converter owner address\",\"_type\":\"converter type, see ConverterBase contract main doc\"}}},\"kind\":\"dev\",\"methods\":{\"acceptOwnership()\":{\"details\":\"used by a new owner to accept an ownership transfer\"},\"createAnchor(uint16,string,string,uint8)\":{\"details\":\"creates a new converter anchor with the given arguments and transfers the ownership to the caller\",\"params\":{\"_converterType\":\"converter type, see ConverterBase contract main doc\",\"_decimals\":\"decimals\",\"_name\":\"name\",\"_symbol\":\"symbol\"},\"returns\":{\"_0\":\"new converter anchor\"}},\"createConverter(uint16,address,address,uint32)\":{\"details\":\"creates a new converter with the given arguments and transfers the ownership to the caller\",\"params\":{\"_anchor\":\"anchor governed by the converter\",\"_maxConversionFee\":\"maximum conversion fee, represented in ppm\",\"_registry\":\"address of a contract registry contract\",\"_type\":\"converter type, see ConverterBase contract main doc\"},\"returns\":{\"_0\":\"new converter\"}},\"registerTypedConverterAnchorFactory(address)\":{\"details\":\"initializes the factory with a specific typed converter anchor factory can only be called by the owner\",\"params\":{\"_factory\":\"typed converter anchor factory\"}},\"registerTypedConverterCustomFactory(address)\":{\"details\":\"initializes the factory with a specific typed converter custom factory can only be called by the owner\",\"params\":{\"_factory\":\"typed converter custom factory\"}},\"registerTypedConverterFactory(address)\":{\"details\":\"initializes the factory with a specific typed converter factory can only be called by the owner\",\"params\":{\"_factory\":\"typed converter factory\"}},\"transferOwnership(address)\":{\"details\":\"allows transferring the contract ownership the new owner still needs to accept the transfer can only be called by the contract owner\",\"params\":{\"_newOwner\":\"new contract owner\"}}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/home/lash/src/ext/cic/grassrootseconomics/bancor-contracts/solidity/contracts/converter/ConverterFactory.sol\":\"ConverterFactory\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"/home/lash/src/ext/cic/grassrootseconomics/bancor-contracts/solidity/contracts/converter/ConverterFactory.sol\":{\"keccak256\":\"0x41714dbd78e5e77c16aa74186a29e9dada20138e511e9fe0acea24b7184c3782\",\"license\":\"SEE LICENSE IN LICENSE\",\"urls\":[\"bzz-raw://55420446cbabc53516b8ec7a77febbe3f9fc50af97ab97df208477c833f60edb\",\"dweb:/ipfs/QmPMCrQBhDLovSdUHushF2pK6sgjcQCGHNYpTCAPkeBiZB\"]},\"/home/lash/src/ext/cic/grassrootseconomics/bancor-contracts/solidity/contracts/converter/interfaces/IConverter.sol\":{\"keccak256\":\"0x18b0d73a3d5ee951ede1b3f840ed35b40570e34975703079a4451555f4dd089b\",\"license\":\"SEE LICENSE IN LICENSE\",\"urls\":[\"bzz-raw://1cd7263f1ef60793e3929509150420037df9a1194c3d0f40bb2ff5516d6a373f\",\"dweb:/ipfs/QmNUbsZt2rzWPjStYycgz3vMbNP4VrAqZPRAK39QNqUoos\"]},\"/home/lash/src/ext/cic/grassrootseconomics/bancor-contracts/solidity/contracts/converter/interfaces/IConverterAnchor.sol\":{\"keccak256\":\"0x9448cdbe90293fb5c1a0808b77af8754a1025b59c45f432eee01f659361a6115\",\"license\":\"SEE LICENSE IN LICENSE\",\"urls\":[\"bzz-raw://1ef2bb2e1543c9324daf7f3fd086a57efb45b89f3d62b9d7a9fc78c138d24dbc\",\"dweb:/ipfs/QmVcXDib3K6xYJMBNxawmo4krJGiDfxb5oL64Lc3pi14XK\"]},\"/home/lash/src/ext/cic/grassrootseconomics/bancor-contracts/solidity/contracts/converter/interfaces/IConverterFactory.sol\":{\"keccak256\":\"0x40a8b6a5dd24f48b0c51c9f784c2e5df5afbadad9459873c25163f13f68c99dd\",\"license\":\"SEE LICENSE IN LICENSE\",\"urls\":[\"bzz-raw://6ad87f96e9e812869d79396d3415f89fabd1f068861f1c5c92bac09898938070\",\"dweb:/ipfs/QmaHUVyRsjUrQNtWnRhSnfPXMbwnFgpNwZvL9BMC5Xxagb\"]},\"/home/lash/src/ext/cic/grassrootseconomics/bancor-contracts/solidity/contracts/converter/interfaces/ITypedConverterAnchorFactory.sol\":{\"keccak256\":\"0x33bbe6f5f485bfec1a21a1da83cf9044e6f320d075a3ee942886653537cc5fe9\",\"license\":\"SEE LICENSE IN LICENSE\",\"urls\":[\"bzz-raw://7fd8f0b7c8edaf6c0d38fbef3b7a72ad02e7d228cc6a8717c094e0b6dc099d09\",\"dweb:/ipfs/QmXdT9GtrbUryT1Wxf2xnRtUXNVcKqFUDe8BwpPKcYacmo\"]},\"/home/lash/src/ext/cic/grassrootseconomics/bancor-contracts/solidity/contracts/converter/interfaces/ITypedConverterCustomFactory.sol\":{\"keccak256\":\"0xe9e91f22d45e1c39dd441bed511d5fa6acffe83910f42ea7abcfd300f59daaaf\",\"license\":\"SEE LICENSE IN LICENSE\",\"urls\":[\"bzz-raw://621881bd2a74632b697d87e4c3253142f8758364122240d5cc18826b18bfef80\",\"dweb:/ipfs/QmcTPevgXAYM7Li4r3rKn8uqRF2hWpid2uNBwymysYjLWp\"]},\"/home/lash/src/ext/cic/grassrootseconomics/bancor-contracts/solidity/contracts/converter/interfaces/ITypedConverterFactory.sol\":{\"keccak256\":\"0xe82abff9b17574a0ac6ec6b97d192b2a31fd85d465fba99f942852921134d1be\",\"license\":\"SEE LICENSE IN LICENSE\",\"urls\":[\"bzz-raw://5e9622922c6f24fbfb7f0730b74baba78e9a508e11ceefd693fbb295d8c1cc61\",\"dweb:/ipfs/QmYbatGXAE3pkqMMcK2eBCBa1F7ndSd9SYfH9HhkRSLmtK\"]},\"/home/lash/src/ext/cic/grassrootseconomics/bancor-contracts/solidity/contracts/token/ERC20Token.sol\":{\"keccak256\":\"0xf64a993754bb4afcdfda9e8fe377c2c8a198f23b39e954f5ee3f9f2825958ebd\",\"license\":\"SEE LICENSE IN LICENSE\",\"urls\":[\"bzz-raw://9ee0b7fd792a589b8321f1f13686fe5d5ae949288b124c1a57e2ad895c87e915\",\"dweb:/ipfs/QmTCRx2G6rJAhX9FyYkV4Gx69owVDYSkjNGNFrJGQ7Xnik\"]},\"/home/lash/src/ext/cic/grassrootseconomics/bancor-contracts/solidity/contracts/token/SmartToken.sol\":{\"keccak256\":\"0xf5036eb68eef5c9e8c8065c359e4a6f360a1ff1371129dc6a01ebcab29f4c034\",\"license\":\"SEE LICENSE IN LICENSE\",\"urls\":[\"bzz-raw://99f904a959fa0c1237afc6e02342300be0e5eb2d9d96e9f8cd29dd2c52d1837b\",\"dweb:/ipfs/QmNxF79PB1fDsWDpCurH97mRVMgm56jACjf2KNj8syw4DG\"]},\"/home/lash/src/ext/cic/grassrootseconomics/bancor-contracts/solidity/contracts/token/interfaces/IERC20Token.sol\":{\"keccak256\":\"0xe6f988c3156e88258474526a541d5a42b6a9adae98b04177a059d9f723bc82cd\",\"license\":\"SEE LICENSE IN LICENSE\",\"urls\":[\"bzz-raw://9a6eb77a5b9ce70995a11a6e48ac3985a4c70896fe5fe04d46146ad7c1c83ea3\",\"dweb:/ipfs/QmYvGSveZFG51tghwkVuu6eK9Jy8frHpfLxHTMyvNZN461\"]},\"/home/lash/src/ext/cic/grassrootseconomics/bancor-contracts/solidity/contracts/token/interfaces/ISmartToken.sol\":{\"keccak256\":\"0x5cfc15e7a23a9872059b0cea4d2ae902c3fc074a39e1c645036ce38ad47881ec\",\"license\":\"SEE LICENSE IN LICENSE\",\"urls\":[\"bzz-raw://890ee09d24de5778e34c4c27d1377d83d378e8f4a13fcb94d5102f61d4749cce\",\"dweb:/ipfs/QmT89f61fmsUN1BVdebKxUc5VU7sitiP33LNk7TTtF18oj\"]},\"/home/lash/src/ext/cic/grassrootseconomics/bancor-contracts/solidity/contracts/utility/Owned.sol\":{\"keccak256\":\"0x6ef69d9dcc80a8a36d5eb37783375cd5e4831c6d20c723fa6f6b6a06c0aeb53d\",\"license\":\"SEE LICENSE IN LICENSE\",\"urls\":[\"bzz-raw://5a5d087e2c5b47739615ef22e1f29749de44b43c9a37cfae32b3dfc498a258c4\",\"dweb:/ipfs/Qmd1mXKEQbmBxqHk326LGVzNoayXsam8gZNecknnYpBnyh\"]},\"/home/lash/src/ext/cic/grassrootseconomics/bancor-contracts/solidity/contracts/utility/SafeMath.sol\":{\"keccak256\":\"0x1ab7391a19ca8a3ad2f3c4a1074e080d4d76dfdb834637bdd0c1e6b6acdf28af\",\"license\":\"SEE LICENSE IN LICENSE\",\"urls\":[\"bzz-raw://d6d8c99621ca884b72da2d84eddfec8ec8c5533915691d6eec94a07adf445608\",\"dweb:/ipfs/QmaXr6DN7VbfxfMn3PsTy7SAMgZVVXbdeaw11BsAjVL2x1\"]},\"/home/lash/src/ext/cic/grassrootseconomics/bancor-contracts/solidity/contracts/utility/TokenHandler.sol\":{\"keccak256\":\"0xf65b87e3bf3343e368da67878c19d1a043a1025b10e9053d3562b53b4aa447fe\",\"license\":\"SEE LICENSE IN LICENSE\",\"urls\":[\"bzz-raw://b85c5d96642c14c53b8d5062eecd4d27d3bdb457d1d0f130900763a75a512eb7\",\"dweb:/ipfs/QmUHtbqC1khqnRZXYn11Aykus4m5e9MVNUWqorxhpr5ipJ\"]},\"/home/lash/src/ext/cic/grassrootseconomics/bancor-contracts/solidity/contracts/utility/TokenHolder.sol\":{\"keccak256\":\"0xac6bc102eff6c1bb8c1bb4466eab50322c7c101e2e33d577dd3035f106627577\",\"license\":\"SEE LICENSE IN LICENSE\",\"urls\":[\"bzz-raw://9fdbda2d4509260ca3dd43654bdaea07ef18a5e04213ff16e38e3b4abad78a5f\",\"dweb:/ipfs/QmPb69rzX1DwDeEhhfzqQNS3U2bfGcFjXNaV5ffHsZHzfP\"]},\"/home/lash/src/ext/cic/grassrootseconomics/bancor-contracts/solidity/contracts/utility/Utils.sol\":{\"keccak256\":\"0x073efa69fcd6b5e60f841b28b366d63b62ff48ab12a06ce3f5a7f41afd6ce885\",\"license\":\"SEE LICENSE IN LICENSE\",\"urls\":[\"bzz-raw://e8b8ecb2d29197ca77f0ed98f728ace54e6edcfdf5cd1194ae22701607eaf608\",\"dweb:/ipfs/QmcsR6Q35Hurh3TrPkYAboicz9bQQoGCWmZLzUCDyhotH8\"]},\"/home/lash/src/ext/cic/grassrootseconomics/bancor-contracts/solidity/contracts/utility/interfaces/IContractRegistry.sol\":{\"keccak256\":\"0x3551889a83738b621c29ed66f1ecb6a843cca4217e54c9357198559b9cc92259\",\"license\":\"SEE LICENSE IN LICENSE\",\"urls\":[\"bzz-raw://231a59c8f2665adeda8c7e6930832409c9b991fd27ad84b3a24335e7bf269bbe\",\"dweb:/ipfs/QmeJJbn1EAUbZenruTEdJAnwUn3dxsVNeJvxPe81qKEGqL\"]},\"/home/lash/src/ext/cic/grassrootseconomics/bancor-contracts/solidity/contracts/utility/interfaces/IOwned.sol\":{\"keccak256\":\"0xc60a9d197abc28c1906ed4d18b59caa0242db754a0e1f67af6e6277593530dae\",\"license\":\"SEE LICENSE IN LICENSE\",\"urls\":[\"bzz-raw://a8c6f3e6525a81a5165ccbf04f73f6c389c14b74135d11a7b5f70b1c9bdac75c\",\"dweb:/ipfs/QmaPu4Z7yUPc9sMADmoTZVY6AnyDSYHtNNCx3mm4VkJwhP\"]},\"/home/lash/src/ext/cic/grassrootseconomics/bancor-contracts/solidity/contracts/utility/interfaces/ITokenHolder.sol\":{\"keccak256\":\"0x9ccb8ab04d0bd874ba7aae5277e60f35c36918922649a0596bf3664ed257bfe2\",\"license\":\"SEE LICENSE IN LICENSE\",\"urls\":[\"bzz-raw://b65e6db19cd244c9f3545695de5fd7573711c49fb306631ddbf0e1d2fa9fb589\",\"dweb:/ipfs/QmZeu5KYVMTbTx7h2BVUq52fpwL9Q44AUfzeVksucDohgf\"]},\"/home/lash/src/ext/cic/grassrootseconomics/bancor-contracts/solidity/contracts/utility/interfaces/IWhitelist.sol\":{\"keccak256\":\"0x356ad553ceeaea04d7cb8f0d6a5663c47dfccb2bd82517348128f032416ee34a\",\"license\":\"SEE LICENSE IN LICENSE\",\"urls\":[\"bzz-raw://9ea3bbb9945144ead2c1392351f2f9f7444af78569f2b95da2e68bb6b919db52\",\"dweb:/ipfs/QmPyUAk44Kj7nJB4tzYqeSXWHyYP51mRNynEmWra9m4eKS\"]}},\"version\":1}",
  "bytecode": "[encoded data, 15628 characters]",
  "deployedBytecode": "[encoded data, 15528 characters]",
  "immutableReferences": {},
  "sourceMap": "482:3960:9:-:0;;;;;;;;;;;;-1:-1:-1;619:5:58;:18;;-1:-1:-1;;;;;;619:18:58;627:10;619:18;;;482:3960:9;;;;;;",
  "deployedSourceMap": "482:3960:9:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1350:163;;;;;;;;;;;;;;;;-1:-1:-1;1350:163:9;-1:-1:-1;;;;;1350:163:9;;:::i;:::-;;3936:503;;;;;;;;;;;;;;;;-1:-1:-1;3936:503:9;;;;;;;;;-1:-1:-1;;;;;3936:503:9;;;;;;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;3936:503:9;;;;;;;;;;;;;;2696:744;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2696:744:9;;;;;;;;-1:-1:-1;2696:744:9;;-1:-1:-1;;2696:744:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2696:744:9;;-1:-1:-1;;;2696:744:9;;;;;-1:-1:-1;2696:744:9;;-1:-1:-1;2696:744:9:i;914:68::-;;;;;;;;;;;;;;;;-1:-1:-1;914:68:9;;;;:::i;989:71::-;;;;;;;;;;;;;;;;-1:-1:-1;989:71:9;;;;:::i;1422:217:58:-;;;:::i;2117:172:9:-;;;;;;;;;;;;;;;;-1:-1:-1;2117:172:9;-1:-1:-1;;;;;2117:172:9;;:::i;219:29:58:-;;;:::i;1067:80:9:-;;;;;;;;;;;;;;;;-1:-1:-1;1067:80:9;;;;:::i;255:23:58:-;;;:::i;1729:172:9:-;;;;;;;;;;;;;;;;-1:-1:-1;1729:172:9;-1:-1:-1;;;;;1729:172:9;;:::i;1164:167:58:-;;;;;;;;;;;;;;;;-1:-1:-1;1164:167:58;-1:-1:-1;;;;;1164:167:58;;:::i;1350:163:9:-;726:12:58;:10;:12::i;:::-;1497:8:9::1;1450:18;:44;1469:8;-1:-1:-1::0;;;;;1469:22:9::1;;:24;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;1469:24:9;1450:44:::1;;::::0;;1469:24:::1;1450:44:::0;::::1;::::0;;;;;;-1:-1:-1;1450:44:9;:55;;-1:-1:-1;;;;;;1450:55:9::1;-1:-1:-1::0;;;;;1450:55:9;;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;1350:163:9:o;3936:503::-;4176:25;;;4125:10;4176:25;;;:18;:25;;;;;;;;;:80;;-1:-1:-1;;;4176:80:9;;-1:-1:-1;;;;;4176:80:9;;;;;;;;;;;;;;;;;;;;;;;4125:10;;4176:25;;;;;:41;;:80;;;;;;;;;;4125:10;4176:25;:80;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4176:80:9;4267:27;;;-1:-1:-1;;;4267:27:9;;;;4176:80;;-1:-1:-1;;;;;;4267:25:9;;;;;:27;;;;;;;;;;;;;;;;:25;:27;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4305:39:9;;;-1:-1:-1;;;4305:39:9;;4333:10;4305:39;;;;;;-1:-1:-1;;;;;4305:27:9;;;-1:-1:-1;4305:27:9;;-1:-1:-1;4305:39:9;;;;;-1:-1:-1;;4305:39:9;;;;;;;-1:-1:-1;4305:27:9;:39;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4362:42:9;;4393:10;;-1:-1:-1;;;;;;4362:42:9;;;-1:-1:-1;4362:42:9;;;;;;;;;4422:9;3936:503;-1:-1:-1;;;;;3936:503:9:o;2696:744::-;2978:31;;;2871:16;2978:31;;;:15;:31;;;;;;2871:16;;-1:-1:-1;;;;;2978:31:9;3026:30;3022:338;;3148:5;3155:7;3164:9;3133:41;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3133:41:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3124:50;;3022:338;;;3262:7;-1:-1:-1;;;;;3262:20:9;;3283:5;3290:7;3299:9;3262:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3262:47:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3262:47:9;3324:24;;;-1:-1:-1;;;3324:24:9;;;;3262:47;;-1:-1:-1;;;;;;3324:22:9;;;;;:24;;;;;;;;;;;;;;;;:22;:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3022:338;3372:36;;;-1:-1:-1;;;3372:36:9;;3397:10;3372:36;;;;;;-1:-1:-1;;;;;3372:24:9;;;;;:36;;;;;-1:-1:-1;;3372:36:9;;;;;;;-1:-1:-1;3372:24:9;:36;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3426:6:9;;2696:744;-1:-1:-1;;;;;;;;;2696:744:9:o;914:68::-;;;;;;;;;;;;-1:-1:-1;;;;;914:68:9;;:::o;989:71::-;;;;;;;;;;;;-1:-1:-1;;;;;989:71:9;;:::o;1422:217:58:-;1498:8;;-1:-1:-1;;;;;1498:8:58;1484:10;:22;1476:52;;;;;-1:-1:-1;;;1476:52:58;;;;;;;;;;;;-1:-1:-1;;;1476:52:58;;;;;;;;;;;;;;;1563:8;;;1556:5;;1544:28;;-1:-1:-1;;;;;1563:8:58;;;;1556:5;;;;1544:28;;;1591:8;;;;1583:16;;-1:-1:-1;;;;;;1583:16:58;;;-1:-1:-1;;;;;1591:8:58;;1583:16;;;;1610:21;;;1422:217::o;2117:172:9:-;726:12:58;:10;:12::i;:::-;2273:8:9::1;2229:15;:41;2245:8;-1:-1:-1::0;;;;;2245:22:9::1;;:24;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;219:29:58::0;;;-1:-1:-1;;;;;219:29:58;;:::o;1067:80:9:-;;;;;;;;;;;;-1:-1:-1;;;;;1067:80:9;;:::o;255:23:58:-;;;-1:-1:-1;;;;;255:23:58;;:::o;1729:172:9:-;726:12:58;:10;:12::i;:::-;1885:8:9::1;1841:15;:41;1857:8;-1:-1:-1::0;;;;;1857:22:9::1;;:24;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;1164:167:58::0;726:12;:10;:12::i;:::-;1268:5:::1;::::0;-1:-1:-1;;;;;1255:18:58;;::::1;1268:5:::0;::::1;1255:18;;1247:45;;;::::0;;-1:-1:-1;;;1247:45:58;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;1247:45:58;;;;;;;;;;;;;::::1;;1303:8;:20:::0;;-1:-1:-1;;;;;;1303:20:58::1;-1:-1:-1::0;;;;;1303:20:58;;;::::1;::::0;;;::::1;::::0;;1164:167::o;813:104::-;882:5;;-1:-1:-1;;;;;882:5:58;868:10;:19;860:49;;;;;-1:-1:-1;;;860:49:58;;;;;;;;;;;;-1:-1:-1;;;860:49:58;;;;;;;;;;;;;;;813:104::o;-1:-1:-1:-;;;;;;;;:::o",
  "source": "// SPDX-License-Identifier: SEE LICENSE IN LICENSE\r\npragma solidity 0.6.12;\r\nimport \"./interfaces/IConverter.sol\";\r\nimport \"./interfaces/IConverterFactory.sol\";\r\nimport \"./interfaces/ITypedConverterFactory.sol\";\r\nimport \"./interfaces/ITypedConverterAnchorFactory.sol\";\r\nimport \"./interfaces/ITypedConverterCustomFactory.sol\";\r\nimport \"../utility/Owned.sol\";\r\nimport \"../utility/interfaces/IContractRegistry.sol\";\r\nimport \"../token/SmartToken.sol\";\r\n\r\n/*\r\n    Converter Factory\r\n*/\r\ncontract ConverterFactory is IConverterFactory, Owned {\r\n    /**\r\n      * @dev triggered when a new converter is created\r\n      *\r\n      * @param _type        converter type, see ConverterBase contract main doc\r\n      * @param _converter   new converter address\r\n      * @param _owner       converter owner address\r\n    */\r\n    event NewConverter(uint16 indexed _type, IConverter indexed _converter, address indexed _owner);\r\n\r\n    mapping (uint16 => ITypedConverterFactory) public converterFactories;\r\n    mapping (uint16 => ITypedConverterAnchorFactory) public anchorFactories;\r\n    mapping (uint16 => ITypedConverterCustomFactory) public override customFactories;\r\n\r\n    /**\r\n      * @dev initializes the factory with a specific typed converter factory\r\n      * can only be called by the owner\r\n      *\r\n      * @param _factory typed converter factory\r\n    */\r\n    function registerTypedConverterFactory(ITypedConverterFactory _factory) public ownerOnly {\r\n        converterFactories[_factory.converterType()] = _factory;\r\n    }\r\n\r\n    /**\r\n      * @dev initializes the factory with a specific typed converter anchor factory\r\n      * can only be called by the owner\r\n      *\r\n      * @param _factory typed converter anchor factory\r\n    */\r\n    function registerTypedConverterAnchorFactory(ITypedConverterAnchorFactory _factory) public ownerOnly {\r\n        anchorFactories[_factory.converterType()] = _factory;\r\n    }\r\n\r\n    /**\r\n      * @dev initializes the factory with a specific typed converter custom factory\r\n      * can only be called by the owner\r\n      *\r\n      * @param _factory typed converter custom factory\r\n    */\r\n    function registerTypedConverterCustomFactory(ITypedConverterCustomFactory _factory) public ownerOnly {\r\n        customFactories[_factory.converterType()] = _factory;\r\n    }\r\n\r\n    /**\r\n      * @dev creates a new converter anchor with the given arguments and transfers\r\n      * the ownership to the caller\r\n      *\r\n      * @param _converterType   converter type, see ConverterBase contract main doc\r\n      * @param _name            name\r\n      * @param _symbol          symbol\r\n      * @param _decimals        decimals\r\n      *\r\n      * @return new converter anchor\r\n    */\r\n    function createAnchor(uint16 _converterType, string memory _name, string memory _symbol, uint8 _decimals)\r\n        public\r\n        virtual\r\n        override\r\n        returns (IConverterAnchor)\r\n    {\r\n        IConverterAnchor anchor;\r\n        ITypedConverterAnchorFactory factory = anchorFactories[_converterType];\r\n\r\n        if (address(factory) == address(0)) {\r\n            // create default anchor (SmartToken)\r\n            anchor = new SmartToken(_name, _symbol, _decimals);\r\n        }\r\n        else {\r\n            // create custom anchor\r\n            anchor = factory.createAnchor(_name, _symbol, _decimals);\r\n            anchor.acceptOwnership();\r\n        }\r\n\r\n        anchor.transferOwnership(msg.sender);\r\n        return anchor;\r\n    }\r\n\r\n    /**\r\n      * @dev creates a new converter with the given arguments and transfers\r\n      * the ownership to the caller\r\n      *\r\n      * @param _type              converter type, see ConverterBase contract main doc\r\n      * @param _anchor            anchor governed by the converter\r\n      * @param _registry          address of a contract registry contract\r\n      * @param _maxConversionFee  maximum conversion fee, represented in ppm\r\n      *\r\n      * @return new converter\r\n    */\r\n    function createConverter(uint16 _type, IConverterAnchor _anchor, IContractRegistry _registry, uint32 _maxConversionFee)\r\n        public\r\n        virtual\r\n        override\r\n        returns (IConverter)\r\n    {\r\n        IConverter converter = converterFactories[_type].createConverter(_anchor, _registry, _maxConversionFee);\r\n        converter.acceptOwnership();\r\n        converter.transferOwnership(msg.sender);\r\n\r\n        emit NewConverter(_type, converter, msg.sender);\r\n        return converter;\r\n    }\r\n}\r\n",
  "sourcePath": "/home/lash/src/ext/cic/grassrootseconomics/bancor-contracts/solidity/contracts/converter/ConverterFactory.sol",
  "ast": {
    "absolutePath": "/home/lash/src/ext/cic/grassrootseconomics/bancor-contracts/solidity/contracts/converter/ConverterFactory.sol",
    "exportedSymbols": {
      "ConverterFactory": [
        10244
      ]
    },
    "id": 10245,
    "license": "SEE LICENSE IN LICENSE",
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 10041,
        "literals": [
          "solidity",
          "0.6",
          ".12"
        ],
        "nodeType": "PragmaDirective",
        "src": "52:23:9"
      },
      {
        "absolutePath": "/home/lash/src/ext/cic/grassrootseconomics/bancor-contracts/solidity/contracts/converter/interfaces/IConverter.sol",
        "file": "./interfaces/IConverter.sol",
        "id": 10042,
        "nodeType": "ImportDirective",
        "scope": 10245,
        "sourceUnit": 13341,
        "src": "77:37:9",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/home/lash/src/ext/cic/grassrootseconomics/bancor-contracts/solidity/contracts/converter/interfaces/IConverterFactory.sol",
        "file": "./interfaces/IConverterFactory.sol",
        "id": 10043,
        "nodeType": "ImportDirective",
        "scope": 10245,
        "sourceUnit": 13390,
        "src": "116:44:9",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/home/lash/src/ext/cic/grassrootseconomics/bancor-contracts/solidity/contracts/converter/interfaces/ITypedConverterFactory.sol",
        "file": "./interfaces/ITypedConverterFactory.sol",
        "id": 10044,
        "nodeType": "ImportDirective",
        "scope": 10245,
        "sourceUnit": 13711,
        "src": "162:49:9",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/home/lash/src/ext/cic/grassrootseconomics/bancor-contracts/solidity/contracts/converter/interfaces/ITypedConverterAnchorFactory.sol",
        "file": "./interfaces/ITypedConverterAnchorFactory.sol",
        "id": 10045,
        "nodeType": "ImportDirective",
        "scope": 10245,
        "sourceUnit": 13681,
        "src": "213:55:9",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/home/lash/src/ext/cic/grassrootseconomics/bancor-contracts/solidity/contracts/converter/interfaces/ITypedConverterCustomFactory.sol",
        "file": "./interfaces/ITypedConverterCustomFactory.sol",
        "id": 10046,
        "nodeType": "ImportDirective",
        "scope": 10245,
        "sourceUnit": 13689,
        "src": "270:55:9",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/home/lash/src/ext/cic/grassrootseconomics/bancor-contracts/solidity/contracts/utility/Owned.sol",
        "file": "../utility/Owned.sol",
        "id": 10047,
        "nodeType": "ImportDirective",
        "scope": 10245,
        "sourceUnit": 22154,
        "src": "327:30:9",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/home/lash/src/ext/cic/grassrootseconomics/bancor-contracts/solidity/contracts/utility/interfaces/IContractRegistry.sol",
        "file": "../utility/interfaces/IContractRegistry.sol",
        "id": 10048,
        "nodeType": "ImportDirective",
        "scope": 10245,
        "sourceUnit": 23167,
        "src": "359:53:9",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/home/lash/src/ext/cic/grassrootseconomics/bancor-contracts/solidity/contracts/token/SmartToken.sol",
        "file": "../token/SmartToken.sol",
        "id": 10049,
        "nodeType": "ImportDirective",
        "scope": 10245,
        "sourceUnit": 21395,
        "src": "414:33:9",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "abstract": false,
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 10050,
              "name": "IConverterFactory",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 13389,
              "src": "511:17:9",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_IConverterFactory_$13389",
                "typeString": "contract IConverterFactory"
              }
            },
            "id": 10051,
            "nodeType": "InheritanceSpecifier",
            "src": "511:17:9"
          },
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 10052,
              "name": "Owned",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 22153,
              "src": "530:5:9",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_Owned_$22153",
                "typeString": "contract Owned"
              }
            },
            "id": 10053,
            "nodeType": "InheritanceSpecifier",
            "src": "530:5:9"
          }
        ],
        "contractDependencies": [
          13389,
          21394,
          22153,
          23182
        ],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 10244,
        "linearizedBaseContracts": [
          10244,
          22153,
          23182,
          13389
        ],
        "name": "ConverterFactory",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "anonymous": false,
            "documentation": {
              "id": 10054,
              "nodeType": "StructuredDocumentation",
              "src": "543:261:9",
              "text": " @dev triggered when a new converter is created\n @param _type        converter type, see ConverterBase contract main doc\n @param _converter   new converter address\n @param _owner       converter owner address"
            },
            "id": 10062,
            "name": "NewConverter",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 10061,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10056,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "_type",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 10062,
                  "src": "829:20:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint16",
                    "typeString": "uint16"
                  },
                  "typeName": {
                    "id": 10055,
                    "name": "uint16",
                    "nodeType": "ElementaryTypeName",
                    "src": "829:6:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint16",
                      "typeString": "uint16"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 10058,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "_converter",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 10062,
                  "src": "851:29:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_IConverter_$13340",
                    "typeString": "contract IConverter"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 10057,
                    "name": "IConverter",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 13340,
                    "src": "851:10:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IConverter_$13340",
                      "typeString": "contract IConverter"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 10060,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "_owner",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 10062,
                  "src": "882:22:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 10059,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "882:7:9",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "828:77:9"
            },
            "src": "810:96:9"
          },
          {
            "constant": false,
            "functionSelector": "327779a7",
            "id": 10066,
            "mutability": "mutable",
            "name": "converterFactories",
            "nodeType": "VariableDeclaration",
            "overrides": null,
            "scope": 10244,
            "src": "914:68:9",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_uint16_$_t_contract$_ITypedConverterFactory_$13710_$",
              "typeString": "mapping(uint16 => contract ITypedConverterFactory)"
            },
            "typeName": {
              "id": 10065,
              "keyType": {
                "id": 10063,
                "name": "uint16",
                "nodeType": "ElementaryTypeName",
                "src": "923:6:9",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint16",
                  "typeString": "uint16"
                }
              },
              "nodeType": "Mapping",
              "src": "914:42:9",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_uint16_$_t_contract$_ITypedConverterFactory_$13710_$",
                "typeString": "mapping(uint16 => contract ITypedConverterFactory)"
              },
              "valueType": {
                "contractScope": null,
                "id": 10064,
                "name": "ITypedConverterFactory",
                "nodeType": "UserDefinedTypeName",
                "referencedDeclaration": 13710,
                "src": "933:22:9",
                "typeDescriptions": {
                  "typeIdentifier": "t_contract$_ITypedConverterFactory_$13710",
                  "typeString": "contract ITypedConverterFactory"
                }
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "functionSelector": "3a8fc520",
            "id": 10070,
            "mutability": "mutable",
            "name": "anchorFactories",
            "nodeType": "VariableDeclaration",
            "overrides": null,
            "scope": 10244,
            "src": "989:71:9",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_uint16_$_t_contract$_ITypedConverterAnchorFactory_$13680_$",
              "typeString": "mapping(uint16 => contract ITypedConverterAnchorFactory)"
            },
            "typeName": {
              "id": 10069,
              "keyType": {
                "id": 10067,
                "name": "uint16",
                "nodeType": "ElementaryTypeName",
                "src": "998:6:9",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint16",
                  "typeString": "uint16"
                }
              },
              "nodeType": "Mapping",
              "src": "989:48:9",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_uint16_$_t_contract$_ITypedConverterAnchorFactory_$13680_$",
                "typeString": "mapping(uint16 => contract ITypedConverterAnchorFactory)"
              },
              "valueType": {
                "contractScope": null,
                "id": 10068,
                "name": "ITypedConverterAnchorFactory",
                "nodeType": "UserDefinedTypeName",
                "referencedDeclaration": 13680,
                "src": "1008:28:9",
                "typeDescriptions": {
                  "typeIdentifier": "t_contract$_ITypedConverterAnchorFactory_$13680",
                  "typeString": "contract ITypedConverterAnchorFactory"
                }
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              13388
            ],
            "constant": false,
            "functionSelector": "c977aed2",
            "id": 10075,
            "mutability": "mutable",
            "name": "customFactories",
            "nodeType": "VariableDeclaration",
            "overrides": {
              "id": 10074,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "1123:8:9"
            },
            "scope": 10244,
            "src": "1067:80:9",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_uint16_$_t_contract$_ITypedConverterCustomFactory_$13688_$",
              "typeString": "mapping(uint16 => contract ITypedConverterCustomFactory)"
            },
            "typeName": {
              "id": 10073,
              "keyType": {
                "id": 10071,
                "name": "uint16",
                "nodeType": "ElementaryTypeName",
                "src": "1076:6:9",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint16",
                  "typeString": "uint16"
                }
              },
              "nodeType": "Mapping",
              "src": "1067:48:9",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_uint16_$_t_contract$_ITypedConverterCustomFactory_$13688_$",
                "typeString": "mapping(uint16 => contract ITypedConverterCustomFactory)"
              },
              "valueType": {
                "contractScope": null,
                "id": 10072,
                "name": "ITypedConverterCustomFactory",
                "nodeType": "UserDefinedTypeName",
                "referencedDeclaration": 13688,
                "src": "1086:28:9",
                "typeDescriptions": {
                  "typeIdentifier": "t_contract$_ITypedConverterCustomFactory_$13688",
                  "typeString": "contract ITypedConverterCustomFactory"
                }
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 10091,
              "nodeType": "Block",
              "src": "1439:74:9",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 10089,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 10083,
                        "name": "converterFactories",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10066,
                        "src": "1450:18:9",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_uint16_$_t_contract$_ITypedConverterFactory_$13710_$",
                          "typeString": "mapping(uint16 => contract ITypedConverterFactory)"
                        }
                      },
                      "id": 10087,
                      "indexExpression": {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "argumentTypes": null,
                            "id": 10084,
                            "name": "_factory",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 10078,
                            "src": "1469:8:9",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_ITypedConverterFactory_$13710",
                              "typeString": "contract ITypedConverterFactory"
                            }
                          },
                          "id": 10085,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "converterType",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 13698,
                          "src": "1469:22:9",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_pure$__$returns$_t_uint16_$",
                            "typeString": "function () pure external returns (uint16)"
                          }
                        },
                        "id": 10086,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1469:24:9",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint16",
                          "typeString": "uint16"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "1450:44:9",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_ITypedConverterFactory_$13710",
                        "typeString": "contract ITypedConverterFactory"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 10088,
                      "name": "_factory",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10078,
                      "src": "1497:8:9",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_ITypedConverterFactory_$13710",
                        "typeString": "contract ITypedConverterFactory"
                      }
                    },
                    "src": "1450:55:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_ITypedConverterFactory_$13710",
                      "typeString": "contract ITypedConverterFactory"
                    }
                  },
                  "id": 10090,
                  "nodeType": "ExpressionStatement",
                  "src": "1450:55:9"
                }
              ]
            },
            "documentation": {
              "id": 10076,
              "nodeType": "StructuredDocumentation",
              "src": "1156:188:9",
              "text": " @dev initializes the factory with a specific typed converter factory\n can only be called by the owner\n @param _factory typed converter factory"
            },
            "functionSelector": "12b4c6c1",
            "id": 10092,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": null,
                "id": 10081,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 10080,
                  "name": "ownerOnly",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 22089,
                  "src": "1429:9:9",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "1429:9:9"
              }
            ],
            "name": "registerTypedConverterFactory",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 10079,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10078,
                  "mutability": "mutable",
                  "name": "_factory",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 10092,
                  "src": "1389:31:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_ITypedConverterFactory_$13710",
                    "typeString": "contract ITypedConverterFactory"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 10077,
                    "name": "ITypedConverterFactory",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 13710,
                    "src": "1389:22:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_ITypedConverterFactory_$13710",
                      "typeString": "contract ITypedConverterFactory"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1388:33:9"
            },
            "returnParameters": {
              "id": 10082,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1439:0:9"
            },
            "scope": 10244,
            "src": "1350:163:9",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "body": {
              "id": 10108,
              "nodeType": "Block",
              "src": "1830:71:9",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 10106,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 10100,
                        "name": "anchorFactories",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10070,
                        "src": "1841:15:9",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_uint16_$_t_contract$_ITypedConverterAnchorFactory_$13680_$",
                          "typeString": "mapping(uint16 => contract ITypedConverterAnchorFactory)"
                        }
                      },
                      "id": 10104,
                      "indexExpression": {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "argumentTypes": null,
                            "id": 10101,
                            "name": "_factory",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 10095,
                            "src": "1857:8:9",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_ITypedConverterAnchorFactory_$13680",
                              "typeString": "contract ITypedConverterAnchorFactory"
                            }
                          },
                          "id": 10102,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "converterType",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 13668,
                          "src": "1857:22:9",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_pure$__$returns$_t_uint16_$",
                            "typeString": "function () pure external returns (uint16)"
                          }
                        },
                        "id": 10103,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1857:24:9",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint16",
                          "typeString": "uint16"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "1841:41:9",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_ITypedConverterAnchorFactory_$13680",
                        "typeString": "contract ITypedConverterAnchorFactory"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 10105,
                      "name": "_factory",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10095,
                      "src": "1885:8:9",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_ITypedConverterAnchorFactory_$13680",
                        "typeString": "contract ITypedConverterAnchorFactory"
                      }
                    },
                    "src": "1841:52:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_ITypedConverterAnchorFactory_$13680",
                      "typeString": "contract ITypedConverterAnchorFactory"
                    }
                  },
                  "id": 10107,
                  "nodeType": "ExpressionStatement",
                  "src": "1841:52:9"
                }
              ]
            },
            "documentation": {
              "id": 10093,
              "nodeType": "StructuredDocumentation",
              "src": "1521:202:9",
              "text": " @dev initializes the factory with a specific typed converter anchor factory\n can only be called by the owner\n @param _factory typed converter anchor factory"
            },
            "functionSelector": "e54b93ef",
            "id": 10109,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": null,
                "id": 10098,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 10097,
                  "name": "ownerOnly",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 22089,
                  "src": "1820:9:9",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "1820:9:9"
              }
            ],
            "name": "registerTypedConverterAnchorFactory",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 10096,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10095,
                  "mutability": "mutable",
                  "name": "_factory",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 10109,
                  "src": "1774:37:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_ITypedConverterAnchorFactory_$13680",
                    "typeString": "contract ITypedConverterAnchorFactory"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 10094,
                    "name": "ITypedConverterAnchorFactory",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 13680,
                    "src": "1774:28:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_ITypedConverterAnchorFactory_$13680",
                      "typeString": "contract ITypedConverterAnchorFactory"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1773:39:9"
            },
            "returnParameters": {
              "id": 10099,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1830:0:9"
            },
            "scope": 10244,
            "src": "1729:172:9",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "body": {
              "id": 10125,
              "nodeType": "Block",
              "src": "2218:71:9",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 10123,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 10117,
                        "name": "customFactories",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10075,
                        "src": "2229:15:9",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_uint16_$_t_contract$_ITypedConverterCustomFactory_$13688_$",
                          "typeString": "mapping(uint16 => contract ITypedConverterCustomFactory)"
                        }
                      },
                      "id": 10121,
                      "indexExpression": {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "argumentTypes": null,
                            "id": 10118,
                            "name": "_factory",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 10112,
                            "src": "2245:8:9",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_ITypedConverterCustomFactory_$13688",
                              "typeString": "contract ITypedConverterCustomFactory"
                            }
                          },
                          "id": 10119,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "converterType",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 13687,
                          "src": "2245:22:9",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_pure$__$returns$_t_uint16_$",
                            "typeString": "function () pure external returns (uint16)"
                          }
                        },
                        "id": 10120,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2245:24:9",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint16",
                          "typeString": "uint16"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "2229:41:9",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_ITypedConverterCustomFactory_$13688",
                        "typeString": "contract ITypedConverterCustomFactory"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 10122,
                      "name": "_factory",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10112,
                      "src": "2273:8:9",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_ITypedConverterCustomFactory_$13688",
                        "typeString": "contract ITypedConverterCustomFactory"
                      }
                    },
                    "src": "2229:52:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_ITypedConverterCustomFactory_$13688",
                      "typeString": "contract ITypedConverterCustomFactory"
                    }
                  },
                  "id": 10124,
                  "nodeType": "ExpressionStatement",
                  "src": "2229:52:9"
                }
              ]
            },
            "documentation": {
              "id": 10110,
              "nodeType": "StructuredDocumentation",
              "src": "1909:202:9",
              "text": " @dev initializes the factory with a specific typed converter custom factory\n can only be called by the owner\n @param _factory typed converter custom factory"
            },
            "functionSelector": "8cac5e29",
            "id": 10126,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": null,
                "id": 10115,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 10114,
                  "name": "ownerOnly",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 22089,
                  "src": "2208:9:9",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "2208:9:9"
              }
            ],
            "name": "registerTypedConverterCustomFactory",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 10113,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10112,
                  "mutability": "mutable",
                  "name": "_factory",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 10126,
                  "src": "2162:37:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_ITypedConverterCustomFactory_$13688",
                    "typeString": "contract ITypedConverterCustomFactory"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 10111,
                    "name": "ITypedConverterCustomFactory",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 13688,
                    "src": "2162:28:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_ITypedConverterCustomFactory_$13688",
                      "typeString": "contract ITypedConverterCustomFactory"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2161:39:9"
            },
            "returnParameters": {
              "id": 10116,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2218:0:9"
            },
            "scope": 10244,
            "src": "2117:172:9",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              13368
            ],
            "body": {
              "id": 10194,
              "nodeType": "Block",
              "src": "2894:546:9",
              "statements": [
                {
                  "assignments": [
                    10142
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 10142,
                      "mutability": "mutable",
                      "name": "anchor",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 10194,
                      "src": "2905:23:9",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_IConverterAnchor_$13349",
                        "typeString": "contract IConverterAnchor"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 10141,
                        "name": "IConverterAnchor",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 13349,
                        "src": "2905:16:9",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IConverterAnchor_$13349",
                          "typeString": "contract IConverterAnchor"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 10143,
                  "initialValue": null,
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2905:23:9"
                },
                {
                  "assignments": [
                    10145
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 10145,
                      "mutability": "mutable",
                      "name": "factory",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 10194,
                      "src": "2939:36:9",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_ITypedConverterAnchorFactory_$13680",
                        "typeString": "contract ITypedConverterAnchorFactory"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 10144,
                        "name": "ITypedConverterAnchorFactory",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 13680,
                        "src": "2939:28:9",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ITypedConverterAnchorFactory_$13680",
                          "typeString": "contract ITypedConverterAnchorFactory"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 10149,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 10146,
                      "name": "anchorFactories",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10070,
                      "src": "2978:15:9",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_uint16_$_t_contract$_ITypedConverterAnchorFactory_$13680_$",
                        "typeString": "mapping(uint16 => contract ITypedConverterAnchorFactory)"
                      }
                    },
                    "id": 10148,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 10147,
                      "name": "_converterType",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10129,
                      "src": "2994:14:9",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint16",
                        "typeString": "uint16"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "2978:31:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_ITypedConverterAnchorFactory_$13680",
                      "typeString": "contract ITypedConverterAnchorFactory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2939:70:9"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    },
                    "id": 10158,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 10152,
                          "name": "factory",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 10145,
                          "src": "3034:7:9",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_ITypedConverterAnchorFactory_$13680",
                            "typeString": "contract ITypedConverterAnchorFactory"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_contract$_ITypedConverterAnchorFactory_$13680",
                            "typeString": "contract ITypedConverterAnchorFactory"
                          }
                        ],
                        "id": 10151,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "3026:7:9",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_address_$",
                          "typeString": "type(address)"
                        },
                        "typeName": {
                          "id": 10150,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "3026:7:9",
                          "typeDescriptions": {
                            "typeIdentifier": null,
                            "typeString": null
                          }
                        }
                      },
                      "id": 10153,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "3026:16:9",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 10156,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "3054:1:9",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          }
                        ],
                        "id": 10155,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "3046:7:9",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_address_$",
                          "typeString": "type(address)"
                        },
                        "typeName": {
                          "id": 10154,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "3046:7:9",
                          "typeDescriptions": {
                            "typeIdentifier": null,
                            "typeString": null
                          }
                        }
                      },
                      "id": 10157,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "3046:10:9",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_address_payable",
                        "typeString": "address payable"
                      }
                    },
                    "src": "3026:30:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 10183,
                    "nodeType": "Block",
                    "src": "3201:159:9",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 10176,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 10169,
                            "name": "anchor",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 10142,
                            "src": "3253:6:9",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_IConverterAnchor_$13349",
                              "typeString": "contract IConverterAnchor"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 10172,
                                "name": "_name",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 10131,
                                "src": "3283:5:9",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_string_memory_ptr",
                                  "typeString": "string memory"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 10173,
                                "name": "_symbol",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 10133,
                                "src": "3290:7:9",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_string_memory_ptr",
                                  "typeString": "string memory"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 10174,
                                "name": "_decimals",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 10135,
                                "src": "3299:9:9",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_string_memory_ptr",
                                  "typeString": "string memory"
                                },
                                {
                                  "typeIdentifier": "t_string_memory_ptr",
                                  "typeString": "string memory"
                                },
                                {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              ],
                              "expression": {
                                "argumentTypes": null,
                                "id": 10170,
                                "name": "factory",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 10145,
                                "src": "3262:7:9",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_ITypedConverterAnchorFactory_$13680",
                                  "typeString": "contract ITypedConverterAnchorFactory"
                                }
                              },
                              "id": 10171,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "createAnchor",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 13679,
                              "src": "3262:20:9",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_external_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_uint8_$returns$_t_contract$_IConverterAnchor_$13349_$",
                                "typeString": "function (string memory,string memory,uint8) external returns (contract IConverterAnchor)"
                              }
                            },
                            "id": 10175,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "3262:47:9",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_IConverterAnchor_$13349",
                              "typeString": "contract IConverterAnchor"
                            }
                          },
                          "src": "3253:56:9",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_IConverterAnchor_$13349",
                            "typeString": "contract IConverterAnchor"
                          }
                        },
                        "id": 10177,
                        "nodeType": "ExpressionStatement",
                        "src": "3253:56:9"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "expression": {
                              "argumentTypes": null,
                              "id": 10178,
                              "name": "anchor",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 10142,
                              "src": "3324:6:9",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_IConverterAnchor_$13349",
                                "typeString": "contract IConverterAnchor"
                              }
                            },
                            "id": 10180,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "acceptOwnership",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 23181,
                            "src": "3324:22:9",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_nonpayable$__$returns$__$",
                              "typeString": "function () external"
                            }
                          },
                          "id": 10181,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "3324:24:9",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 10182,
                        "nodeType": "ExpressionStatement",
                        "src": "3324:24:9"
                      }
                    ]
                  },
                  "id": 10184,
                  "nodeType": "IfStatement",
                  "src": "3022:338:9",
                  "trueBody": {
                    "id": 10168,
                    "nodeType": "Block",
                    "src": "3058:128:9",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 10166,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 10159,
                            "name": "anchor",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 10142,
                            "src": "3124:6:9",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_IConverterAnchor_$13349",
                              "typeString": "contract IConverterAnchor"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 10162,
                                "name": "_name",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 10131,
                                "src": "3148:5:9",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_string_memory_ptr",
                                  "typeString": "string memory"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 10163,
                                "name": "_symbol",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 10133,
                                "src": "3155:7:9",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_string_memory_ptr",
                                  "typeString": "string memory"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 10164,
                                "name": "_decimals",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 10135,
                                "src": "3164:9:9",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_string_memory_ptr",
                                  "typeString": "string memory"
                                },
                                {
                                  "typeIdentifier": "t_string_memory_ptr",
                                  "typeString": "string memory"
                                },
                                {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              ],
                              "id": 10161,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "NewExpression",
                              "src": "3133:14:9",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_creation_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_uint8_$returns$_t_contract$_SmartToken_$21394_$",
                                "typeString": "function (string memory,string memory,uint8) returns (contract SmartToken)"
                              },
                              "typeName": {
                                "contractScope": null,
                                "id": 10160,
                                "name": "SmartToken",
                                "nodeType": "UserDefinedTypeName",
                                "referencedDeclaration": 21394,
                                "src": "3137:10:9",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_SmartToken_$21394",
                                  "typeString": "contract SmartToken"
                                }
                              }
                            },
                            "id": 10165,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "3133:41:9",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_SmartToken_$21394",
                              "typeString": "contract SmartToken"
                            }
                          },
                          "src": "3124:50:9",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_IConverterAnchor_$13349",
                            "typeString": "contract IConverterAnchor"
                          }
                        },
                        "id": 10167,
                        "nodeType": "ExpressionStatement",
                        "src": "3124:50:9"
                      }
                    ]
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 10188,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": -15,
                          "src": "3397:3:9",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 10189,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "3397:10:9",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 10185,
                        "name": "anchor",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10142,
                        "src": "3372:6:9",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IConverterAnchor_$13349",
                          "typeString": "contract IConverterAnchor"
                        }
                      },
                      "id": 10187,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "transferOwnership",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 23178,
                      "src": "3372:24:9",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$",
                        "typeString": "function (address) external"
                      }
                    },
                    "id": 10190,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3372:36:9",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 10191,
                  "nodeType": "ExpressionStatement",
                  "src": "3372:36:9"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 10192,
                    "name": "anchor",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 10142,
                    "src": "3426:6:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IConverterAnchor_$13349",
                      "typeString": "contract IConverterAnchor"
                    }
                  },
                  "functionReturnParameters": 10140,
                  "id": 10193,
                  "nodeType": "Return",
                  "src": "3419:13:9"
                }
              ]
            },
            "documentation": {
              "id": 10127,
              "nodeType": "StructuredDocumentation",
              "src": "2297:393:9",
              "text": " @dev creates a new converter anchor with the given arguments and transfers\n the ownership to the caller\n @param _converterType   converter type, see ConverterBase contract main doc\n @param _name            name\n @param _symbol          symbol\n @param _decimals        decimals\n @return new converter anchor"
            },
            "functionSelector": "2e9ab7b3",
            "id": 10195,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "createAnchor",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 10137,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "2844:8:9"
            },
            "parameters": {
              "id": 10136,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10129,
                  "mutability": "mutable",
                  "name": "_converterType",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 10195,
                  "src": "2718:21:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint16",
                    "typeString": "uint16"
                  },
                  "typeName": {
                    "id": 10128,
                    "name": "uint16",
                    "nodeType": "ElementaryTypeName",
                    "src": "2718:6:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint16",
                      "typeString": "uint16"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 10131,
                  "mutability": "mutable",
                  "name": "_name",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 10195,
                  "src": "2741:19:9",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 10130,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "2741:6:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 10133,
                  "mutability": "mutable",
                  "name": "_symbol",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 10195,
                  "src": "2762:21:9",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 10132,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "2762:6:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 10135,
                  "mutability": "mutable",
                  "name": "_decimals",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 10195,
                  "src": "2785:15:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 10134,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "2785:5:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2717:84:9"
            },
            "returnParameters": {
              "id": 10140,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10139,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 10195,
                  "src": "2871:16:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_IConverterAnchor_$13349",
                    "typeString": "contract IConverterAnchor"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 10138,
                    "name": "IConverterAnchor",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 13349,
                    "src": "2871:16:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IConverterAnchor_$13349",
                      "typeString": "contract IConverterAnchor"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2870:18:9"
            },
            "scope": 10244,
            "src": "2696:744:9",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              13381
            ],
            "body": {
              "id": 10242,
              "nodeType": "Block",
              "src": "4142:297:9",
              "statements": [
                {
                  "assignments": [
                    10211
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 10211,
                      "mutability": "mutable",
                      "name": "converter",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 10242,
                      "src": "4153:20:9",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_IConverter_$13340",
                        "typeString": "contract IConverter"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 10210,
                        "name": "IConverter",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 13340,
                        "src": "4153:10:9",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IConverter_$13340",
                          "typeString": "contract IConverter"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 10220,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 10216,
                        "name": "_anchor",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10200,
                        "src": "4218:7:9",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IConverterAnchor_$13349",
                          "typeString": "contract IConverterAnchor"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 10217,
                        "name": "_registry",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10202,
                        "src": "4227:9:9",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IContractRegistry_$23166",
                          "typeString": "contract IContractRegistry"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 10218,
                        "name": "_maxConversionFee",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10204,
                        "src": "4238:17:9",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_IConverterAnchor_$13349",
                          "typeString": "contract IConverterAnchor"
                        },
                        {
                          "typeIdentifier": "t_contract$_IContractRegistry_$23166",
                          "typeString": "contract IContractRegistry"
                        },
                        {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 10212,
                          "name": "converterFactories",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 10066,
                          "src": "4176:18:9",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_uint16_$_t_contract$_ITypedConverterFactory_$13710_$",
                            "typeString": "mapping(uint16 => contract ITypedConverterFactory)"
                          }
                        },
                        "id": 10214,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 10213,
                          "name": "_type",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 10198,
                          "src": "4195:5:9",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint16",
                            "typeString": "uint16"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "4176:25:9",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ITypedConverterFactory_$13710",
                          "typeString": "contract ITypedConverterFactory"
                        }
                      },
                      "id": 10215,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "createConverter",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 13709,
                      "src": "4176:41:9",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_contract$_IConverterAnchor_$13349_$_t_contract$_IContractRegistry_$23166_$_t_uint32_$returns$_t_contract$_IConverter_$13340_$",
                        "typeString": "function (contract IConverterAnchor,contract IContractRegistry,uint32) external returns (contract IConverter)"
                      }
                    },
                    "id": 10219,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4176:80:9",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IConverter_$13340",
                      "typeString": "contract IConverter"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4153:103:9"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "argumentTypes": null,
                        "id": 10221,
                        "name": "converter",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10211,
                        "src": "4267:9:9",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IConverter_$13340",
                          "typeString": "contract IConverter"
                        }
                      },
                      "id": 10223,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "acceptOwnership",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 23181,
                      "src": "4267:25:9",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$__$returns$__$",
                        "typeString": "function () external"
                      }
                    },
                    "id": 10224,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4267:27:9",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 10225,
                  "nodeType": "ExpressionStatement",
                  "src": "4267:27:9"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 10229,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": -15,
                          "src": "4333:3:9",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 10230,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "4333:10:9",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 10226,
                        "name": "converter",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10211,
                        "src": "4305:9:9",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IConverter_$13340",
                          "typeString": "contract IConverter"
                        }
                      },
                      "id": 10228,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "transferOwnership",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 23178,
                      "src": "4305:27:9",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$",
                        "typeString": "function (address) external"
                      }
                    },
                    "id": 10231,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4305:39:9",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 10232,
                  "nodeType": "ExpressionStatement",
                  "src": "4305:39:9"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 10234,
                        "name": "_type",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10198,
                        "src": "4375:5:9",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint16",
                          "typeString": "uint16"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 10235,
                        "name": "converter",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10211,
                        "src": "4382:9:9",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IConverter_$13340",
                          "typeString": "contract IConverter"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 10236,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": -15,
                          "src": "4393:3:9",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 10237,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "4393:10:9",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint16",
                          "typeString": "uint16"
                        },
                        {
                          "typeIdentifier": "t_contract$_IConverter_$13340",
                          "typeString": "contract IConverter"
                        },
                        {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      ],
                      "id": 10233,
                      "name": "NewConverter",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10062,
                      "src": "4362:12:9",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_uint16_$_t_contract$_IConverter_$13340_$_t_address_$returns$__$",
                        "typeString": "function (uint16,contract IConverter,address)"
                      }
                    },
                    "id": 10238,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4362:42:9",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 10239,
                  "nodeType": "EmitStatement",
                  "src": "4357:47:9"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 10240,
                    "name": "converter",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 10211,
                    "src": "4422:9:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IConverter_$13340",
                      "typeString": "contract IConverter"
                    }
                  },
                  "functionReturnParameters": 10209,
                  "id": 10241,
                  "nodeType": "Return",
                  "src": "4415:16:9"
                }
              ]
            },
            "documentation": {
              "id": 10196,
              "nodeType": "StructuredDocumentation",
              "src": "3448:482:9",
              "text": " @dev creates a new converter with the given arguments and transfers\n the ownership to the caller\n @param _type              converter type, see ConverterBase contract main doc\n @param _anchor            anchor governed by the converter\n @param _registry          address of a contract registry contract\n @param _maxConversionFee  maximum conversion fee, represented in ppm\n @return new converter"
            },
            "functionSelector": "15f64b6a",
            "id": 10243,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "createConverter",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 10206,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "4098:8:9"
            },
            "parameters": {
              "id": 10205,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10198,
                  "mutability": "mutable",
                  "name": "_type",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 10243,
                  "src": "3961:12:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint16",
                    "typeString": "uint16"
                  },
                  "typeName": {
                    "id": 10197,
                    "name": "uint16",
                    "nodeType": "ElementaryTypeName",
                    "src": "3961:6:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint16",
                      "typeString": "uint16"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 10200,
                  "mutability": "mutable",
                  "name": "_anchor",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 10243,
                  "src": "3975:24:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_IConverterAnchor_$13349",
                    "typeString": "contract IConverterAnchor"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 10199,
                    "name": "IConverterAnchor",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 13349,
                    "src": "3975:16:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IConverterAnchor_$13349",
                      "typeString": "contract IConverterAnchor"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 10202,
                  "mutability": "mutable",
                  "name": "_registry",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 10243,
                  "src": "4001:27:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_IContractRegistry_$23166",
                    "typeString": "contract IContractRegistry"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 10201,
                    "name": "IContractRegistry",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 23166,
                    "src": "4001:17:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IContractRegistry_$23166",
                      "typeString": "contract IContractRegistry"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 10204,
                  "mutability": "mutable",
                  "name": "_maxConversionFee",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 10243,
                  "src": "4030:24:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  },
                  "typeName": {
                    "id": 10203,
                    "name": "uint32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4030:6:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3960:95:9"
            },
            "returnParameters": {
              "id": 10209,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10208,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 10243,
                  "src": "4125:10:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_IConverter_$13340",
                    "typeString": "contract IConverter"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 10207,
                    "name": "IConverter",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 13340,
                    "src": "4125:10:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IConverter_$13340",
                      "typeString": "contract IConverter"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4124:12:9"
            },
            "scope": 10244,
            "src": "3936:503:9",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "public"
          }
        ],
        "scope": 10245,
        "src": "482:3960:9"
      }
    ],
    "src": "52:4392:9"
  },
  "legacyAST": {
    "absolutePath": "/home/lash/src/ext/cic/grassrootseconomics/bancor-contracts/solidity/contracts/converter/ConverterFactory.sol",
    "exportedSymbols": {
      "ConverterFactory": [
        10244
      ]
    },
    "id": 10245,
    "license": "SEE LICENSE IN LICENSE",
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 10041,
        "literals": [
          "solidity",
          "0.6",
          ".12"
        ],
        "nodeType": "PragmaDirective",
        "src": "52:23:9"
      },
      {
        "absolutePath": "/home/lash/src/ext/cic/grassrootseconomics/bancor-contracts/solidity/contracts/converter/interfaces/IConverter.sol",
        "file": "./interfaces/IConverter.sol",
        "id": 10042,
        "nodeType": "ImportDirective",
        "scope": 10245,
        "sourceUnit": 13341,
        "src": "77:37:9",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/home/lash/src/ext/cic/grassrootseconomics/bancor-contracts/solidity/contracts/converter/interfaces/IConverterFactory.sol",
        "file": "./interfaces/IConverterFactory.sol",
        "id": 10043,
        "nodeType": "ImportDirective",
        "scope": 10245,
        "sourceUnit": 13390,
        "src": "116:44:9",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/home/lash/src/ext/cic/grassrootseconomics/bancor-contracts/solidity/contracts/converter/interfaces/ITypedConverterFactory.sol",
        "file": "./interfaces/ITypedConverterFactory.sol",
        "id": 10044,
        "nodeType": "ImportDirective",
        "scope": 10245,
        "sourceUnit": 13711,
        "src": "162:49:9",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/home/lash/src/ext/cic/grassrootseconomics/bancor-contracts/solidity/contracts/converter/interfaces/ITypedConverterAnchorFactory.sol",
        "file": "./interfaces/ITypedConverterAnchorFactory.sol",
        "id": 10045,
        "nodeType": "ImportDirective",
        "scope": 10245,
        "sourceUnit": 13681,
        "src": "213:55:9",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/home/lash/src/ext/cic/grassrootseconomics/bancor-contracts/solidity/contracts/converter/interfaces/ITypedConverterCustomFactory.sol",
        "file": "./interfaces/ITypedConverterCustomFactory.sol",
        "id": 10046,
        "nodeType": "ImportDirective",
        "scope": 10245,
        "sourceUnit": 13689,
        "src": "270:55:9",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/home/lash/src/ext/cic/grassrootseconomics/bancor-contracts/solidity/contracts/utility/Owned.sol",
        "file": "../utility/Owned.sol",
        "id": 10047,
        "nodeType": "ImportDirective",
        "scope": 10245,
        "sourceUnit": 22154,
        "src": "327:30:9",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/home/lash/src/ext/cic/grassrootseconomics/bancor-contracts/solidity/contracts/utility/interfaces/IContractRegistry.sol",
        "file": "../utility/interfaces/IContractRegistry.sol",
        "id": 10048,
        "nodeType": "ImportDirective",
        "scope": 10245,
        "sourceUnit": 23167,
        "src": "359:53:9",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/home/lash/src/ext/cic/grassrootseconomics/bancor-contracts/solidity/contracts/token/SmartToken.sol",
        "file": "../token/SmartToken.sol",
        "id": 10049,
        "nodeType": "ImportDirective",
        "scope": 10245,
        "sourceUnit": 21395,
        "src": "414:33:9",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "abstract": false,
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 10050,
              "name": "IConverterFactory",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 13389,
              "src": "511:17:9",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_IConverterFactory_$13389",
                "typeString": "contract IConverterFactory"
              }
            },
            "id": 10051,
            "nodeType": "InheritanceSpecifier",
            "src": "511:17:9"
          },
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 10052,
              "name": "Owned",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 22153,
              "src": "530:5:9",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_Owned_$22153",
                "typeString": "contract Owned"
              }
            },
            "id": 10053,
            "nodeType": "InheritanceSpecifier",
            "src": "530:5:9"
          }
        ],
        "contractDependencies": [
          13389,
          21394,
          22153,
          23182
        ],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 10244,
        "linearizedBaseContracts": [
          10244,
          22153,
          23182,
          13389
        ],
        "name": "ConverterFactory",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "anonymous": false,
            "documentation": {
              "id": 10054,
              "nodeType": "StructuredDocumentation",
              "src": "543:261:9",
              "text": " @dev triggered when a new converter is created\n @param _type        converter type, see ConverterBase contract main doc\n @param _converter   new converter address\n @param _owner       converter owner address"
            },
            "id": 10062,
            "name": "NewConverter",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 10061,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10056,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "_type",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 10062,
                  "src": "829:20:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint16",
                    "typeString": "uint16"
                  },
                  "typeName": {
                    "id": 10055,
                    "name": "uint16",
                    "nodeType": "ElementaryTypeName",
                    "src": "829:6:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint16",
                      "typeString": "uint16"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 10058,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "_converter",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 10062,
                  "src": "851:29:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_IConverter_$13340",
                    "typeString": "contract IConverter"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 10057,
                    "name": "IConverter",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 13340,
                    "src": "851:10:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IConverter_$13340",
                      "typeString": "contract IConverter"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 10060,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "_owner",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 10062,
                  "src": "882:22:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 10059,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "882:7:9",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "828:77:9"
            },
            "src": "810:96:9"
          },
          {
            "constant": false,
            "functionSelector": "327779a7",
            "id": 10066,
            "mutability": "mutable",
            "name": "converterFactories",
            "nodeType": "VariableDeclaration",
            "overrides": null,
            "scope": 10244,
            "src": "914:68:9",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_uint16_$_t_contract$_ITypedConverterFactory_$13710_$",
              "typeString": "mapping(uint16 => contract ITypedConverterFactory)"
            },
            "typeName": {
              "id": 10065,
              "keyType": {
                "id": 10063,
                "name": "uint16",
                "nodeType": "ElementaryTypeName",
                "src": "923:6:9",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint16",
                  "typeString": "uint16"
                }
              },
              "nodeType": "Mapping",
              "src": "914:42:9",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_uint16_$_t_contract$_ITypedConverterFactory_$13710_$",
                "typeString": "mapping(uint16 => contract ITypedConverterFactory)"
              },
              "valueType": {
                "contractScope": null,
                "id": 10064,
                "name": "ITypedConverterFactory",
                "nodeType": "UserDefinedTypeName",
                "referencedDeclaration": 13710,
                "src": "933:22:9",
                "typeDescriptions": {
                  "typeIdentifier": "t_contract$_ITypedConverterFactory_$13710",
                  "typeString": "contract ITypedConverterFactory"
                }
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "functionSelector": "3a8fc520",
            "id": 10070,
            "mutability": "mutable",
            "name": "anchorFactories",
            "nodeType": "VariableDeclaration",
            "overrides": null,
            "scope": 10244,
            "src": "989:71:9",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_uint16_$_t_contract$_ITypedConverterAnchorFactory_$13680_$",
              "typeString": "mapping(uint16 => contract ITypedConverterAnchorFactory)"
            },
            "typeName": {
              "id": 10069,
              "keyType": {
                "id": 10067,
                "name": "uint16",
                "nodeType": "ElementaryTypeName",
                "src": "998:6:9",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint16",
                  "typeString": "uint16"
                }
              },
              "nodeType": "Mapping",
              "src": "989:48:9",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_uint16_$_t_contract$_ITypedConverterAnchorFactory_$13680_$",
                "typeString": "mapping(uint16 => contract ITypedConverterAnchorFactory)"
              },
              "valueType": {
                "contractScope": null,
                "id": 10068,
                "name": "ITypedConverterAnchorFactory",
                "nodeType": "UserDefinedTypeName",
                "referencedDeclaration": 13680,
                "src": "1008:28:9",
                "typeDescriptions": {
                  "typeIdentifier": "t_contract$_ITypedConverterAnchorFactory_$13680",
                  "typeString": "contract ITypedConverterAnchorFactory"
                }
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              13388
            ],
            "constant": false,
            "functionSelector": "c977aed2",
            "id": 10075,
            "mutability": "mutable",
            "name": "customFactories",
            "nodeType": "VariableDeclaration",
            "overrides": {
              "id": 10074,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "1123:8:9"
            },
            "scope": 10244,
            "src": "1067:80:9",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_uint16_$_t_contract$_ITypedConverterCustomFactory_$13688_$",
              "typeString": "mapping(uint16 => contract ITypedConverterCustomFactory)"
            },
            "typeName": {
              "id": 10073,
              "keyType": {
                "id": 10071,
                "name": "uint16",
                "nodeType": "ElementaryTypeName",
                "src": "1076:6:9",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint16",
                  "typeString": "uint16"
                }
              },
              "nodeType": "Mapping",
              "src": "1067:48:9",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_uint16_$_t_contract$_ITypedConverterCustomFactory_$13688_$",
                "typeString": "mapping(uint16 => contract ITypedConverterCustomFactory)"
              },
              "valueType": {
                "contractScope": null,
                "id": 10072,
                "name": "ITypedConverterCustomFactory",
                "nodeType": "UserDefinedTypeName",
                "referencedDeclaration": 13688,
                "src": "1086:28:9",
                "typeDescriptions": {
                  "typeIdentifier": "t_contract$_ITypedConverterCustomFactory_$13688",
                  "typeString": "contract ITypedConverterCustomFactory"
                }
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 10091,
              "nodeType": "Block",
              "src": "1439:74:9",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 10089,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 10083,
                        "name": "converterFactories",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10066,
                        "src": "1450:18:9",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_uint16_$_t_contract$_ITypedConverterFactory_$13710_$",
                          "typeString": "mapping(uint16 => contract ITypedConverterFactory)"
                        }
                      },
                      "id": 10087,
                      "indexExpression": {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "argumentTypes": null,
                            "id": 10084,
                            "name": "_factory",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 10078,
                            "src": "1469:8:9",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_ITypedConverterFactory_$13710",
                              "typeString": "contract ITypedConverterFactory"
                            }
                          },
                          "id": 10085,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "converterType",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 13698,
                          "src": "1469:22:9",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_pure$__$returns$_t_uint16_$",
                            "typeString": "function () pure external returns (uint16)"
                          }
                        },
                        "id": 10086,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1469:24:9",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint16",
                          "typeString": "uint16"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "1450:44:9",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_ITypedConverterFactory_$13710",
                        "typeString": "contract ITypedConverterFactory"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 10088,
                      "name": "_factory",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10078,
                      "src": "1497:8:9",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_ITypedConverterFactory_$13710",
                        "typeString": "contract ITypedConverterFactory"
                      }
                    },
                    "src": "1450:55:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_ITypedConverterFactory_$13710",
                      "typeString": "contract ITypedConverterFactory"
                    }
                  },
                  "id": 10090,
                  "nodeType": "ExpressionStatement",
                  "src": "1450:55:9"
                }
              ]
            },
            "documentation": {
              "id": 10076,
              "nodeType": "StructuredDocumentation",
              "src": "1156:188:9",
              "text": " @dev initializes the factory with a specific typed converter factory\n can only be called by the owner\n @param _factory typed converter factory"
            },
            "functionSelector": "12b4c6c1",
            "id": 10092,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": null,
                "id": 10081,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 10080,
                  "name": "ownerOnly",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 22089,
                  "src": "1429:9:9",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "1429:9:9"
              }
            ],
            "name": "registerTypedConverterFactory",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 10079,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10078,
                  "mutability": "mutable",
                  "name": "_factory",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 10092,
                  "src": "1389:31:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_ITypedConverterFactory_$13710",
                    "typeString": "contract ITypedConverterFactory"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 10077,
                    "name": "ITypedConverterFactory",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 13710,
                    "src": "1389:22:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_ITypedConverterFactory_$13710",
                      "typeString": "contract ITypedConverterFactory"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1388:33:9"
            },
            "returnParameters": {
              "id": 10082,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1439:0:9"
            },
            "scope": 10244,
            "src": "1350:163:9",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "body": {
              "id": 10108,
              "nodeType": "Block",
              "src": "1830:71:9",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 10106,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 10100,
                        "name": "anchorFactories",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10070,
                        "src": "1841:15:9",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_uint16_$_t_contract$_ITypedConverterAnchorFactory_$13680_$",
                          "typeString": "mapping(uint16 => contract ITypedConverterAnchorFactory)"
                        }
                      },
                      "id": 10104,
                      "indexExpression": {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "argumentTypes": null,
                            "id": 10101,
                            "name": "_factory",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 10095,
                            "src": "1857:8:9",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_ITypedConverterAnchorFactory_$13680",
                              "typeString": "contract ITypedConverterAnchorFactory"
                            }
                          },
                          "id": 10102,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "converterType",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 13668,
                          "src": "1857:22:9",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_pure$__$returns$_t_uint16_$",
                            "typeString": "function () pure external returns (uint16)"
                          }
                        },
                        "id": 10103,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1857:24:9",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint16",
                          "typeString": "uint16"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "1841:41:9",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_ITypedConverterAnchorFactory_$13680",
                        "typeString": "contract ITypedConverterAnchorFactory"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 10105,
                      "name": "_factory",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10095,
                      "src": "1885:8:9",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_ITypedConverterAnchorFactory_$13680",
                        "typeString": "contract ITypedConverterAnchorFactory"
                      }
                    },
                    "src": "1841:52:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_ITypedConverterAnchorFactory_$13680",
                      "typeString": "contract ITypedConverterAnchorFactory"
                    }
                  },
                  "id": 10107,
                  "nodeType": "ExpressionStatement",
                  "src": "1841:52:9"
                }
              ]
            },
            "documentation": {
              "id": 10093,
              "nodeType": "StructuredDocumentation",
              "src": "1521:202:9",
              "text": " @dev initializes the factory with a specific typed converter anchor factory\n can only be called by the owner\n @param _factory typed converter anchor factory"
            },
            "functionSelector": "e54b93ef",
            "id": 10109,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": null,
                "id": 10098,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 10097,
                  "name": "ownerOnly",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 22089,
                  "src": "1820:9:9",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "1820:9:9"
              }
            ],
            "name": "registerTypedConverterAnchorFactory",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 10096,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10095,
                  "mutability": "mutable",
                  "name": "_factory",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 10109,
                  "src": "1774:37:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_ITypedConverterAnchorFactory_$13680",
                    "typeString": "contract ITypedConverterAnchorFactory"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 10094,
                    "name": "ITypedConverterAnchorFactory",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 13680,
                    "src": "1774:28:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_ITypedConverterAnchorFactory_$13680",
                      "typeString": "contract ITypedConverterAnchorFactory"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1773:39:9"
            },
            "returnParameters": {
              "id": 10099,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1830:0:9"
            },
            "scope": 10244,
            "src": "1729:172:9",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "body": {
              "id": 10125,
              "nodeType": "Block",
              "src": "2218:71:9",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 10123,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "baseExpression": {
                        "argumentTypes": null,
                        "id": 10117,
                        "name": "customFactories",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10075,
                        "src": "2229:15:9",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_uint16_$_t_contract$_ITypedConverterCustomFactory_$13688_$",
                          "typeString": "mapping(uint16 => contract ITypedConverterCustomFactory)"
                        }
                      },
                      "id": 10121,
                      "indexExpression": {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "expression": {
                            "argumentTypes": null,
                            "id": 10118,
                            "name": "_factory",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 10112,
                            "src": "2245:8:9",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_ITypedConverterCustomFactory_$13688",
                              "typeString": "contract ITypedConverterCustomFactory"
                            }
                          },
                          "id": 10119,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "converterType",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 13687,
                          "src": "2245:22:9",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_external_pure$__$returns$_t_uint16_$",
                            "typeString": "function () pure external returns (uint16)"
                          }
                        },
                        "id": 10120,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2245:24:9",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint16",
                          "typeString": "uint16"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "2229:41:9",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_ITypedConverterCustomFactory_$13688",
                        "typeString": "contract ITypedConverterCustomFactory"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "id": 10122,
                      "name": "_factory",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10112,
                      "src": "2273:8:9",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_ITypedConverterCustomFactory_$13688",
                        "typeString": "contract ITypedConverterCustomFactory"
                      }
                    },
                    "src": "2229:52:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_ITypedConverterCustomFactory_$13688",
                      "typeString": "contract ITypedConverterCustomFactory"
                    }
                  },
                  "id": 10124,
                  "nodeType": "ExpressionStatement",
                  "src": "2229:52:9"
                }
              ]
            },
            "documentation": {
              "id": 10110,
              "nodeType": "StructuredDocumentation",
              "src": "1909:202:9",
              "text": " @dev initializes the factory with a specific typed converter custom factory\n can only be called by the owner\n @param _factory typed converter custom factory"
            },
            "functionSelector": "8cac5e29",
            "id": 10126,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": null,
                "id": 10115,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 10114,
                  "name": "ownerOnly",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 22089,
                  "src": "2208:9:9",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "2208:9:9"
              }
            ],
            "name": "registerTypedConverterCustomFactory",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 10113,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10112,
                  "mutability": "mutable",
                  "name": "_factory",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 10126,
                  "src": "2162:37:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_ITypedConverterCustomFactory_$13688",
                    "typeString": "contract ITypedConverterCustomFactory"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 10111,
                    "name": "ITypedConverterCustomFactory",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 13688,
                    "src": "2162:28:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_ITypedConverterCustomFactory_$13688",
                      "typeString": "contract ITypedConverterCustomFactory"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2161:39:9"
            },
            "returnParameters": {
              "id": 10116,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2218:0:9"
            },
            "scope": 10244,
            "src": "2117:172:9",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              13368
            ],
            "body": {
              "id": 10194,
              "nodeType": "Block",
              "src": "2894:546:9",
              "statements": [
                {
                  "assignments": [
                    10142
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 10142,
                      "mutability": "mutable",
                      "name": "anchor",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 10194,
                      "src": "2905:23:9",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_IConverterAnchor_$13349",
                        "typeString": "contract IConverterAnchor"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 10141,
                        "name": "IConverterAnchor",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 13349,
                        "src": "2905:16:9",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IConverterAnchor_$13349",
                          "typeString": "contract IConverterAnchor"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 10143,
                  "initialValue": null,
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2905:23:9"
                },
                {
                  "assignments": [
                    10145
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 10145,
                      "mutability": "mutable",
                      "name": "factory",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 10194,
                      "src": "2939:36:9",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_ITypedConverterAnchorFactory_$13680",
                        "typeString": "contract ITypedConverterAnchorFactory"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 10144,
                        "name": "ITypedConverterAnchorFactory",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 13680,
                        "src": "2939:28:9",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ITypedConverterAnchorFactory_$13680",
                          "typeString": "contract ITypedConverterAnchorFactory"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 10149,
                  "initialValue": {
                    "argumentTypes": null,
                    "baseExpression": {
                      "argumentTypes": null,
                      "id": 10146,
                      "name": "anchorFactories",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10070,
                      "src": "2978:15:9",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_uint16_$_t_contract$_ITypedConverterAnchorFactory_$13680_$",
                        "typeString": "mapping(uint16 => contract ITypedConverterAnchorFactory)"
                      }
                    },
                    "id": 10148,
                    "indexExpression": {
                      "argumentTypes": null,
                      "id": 10147,
                      "name": "_converterType",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10129,
                      "src": "2994:14:9",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint16",
                        "typeString": "uint16"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "2978:31:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_ITypedConverterAnchorFactory_$13680",
                      "typeString": "contract ITypedConverterAnchorFactory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2939:70:9"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    },
                    "id": 10158,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 10152,
                          "name": "factory",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 10145,
                          "src": "3034:7:9",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_ITypedConverterAnchorFactory_$13680",
                            "typeString": "contract ITypedConverterAnchorFactory"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_contract$_ITypedConverterAnchorFactory_$13680",
                            "typeString": "contract ITypedConverterAnchorFactory"
                          }
                        ],
                        "id": 10151,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "3026:7:9",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_address_$",
                          "typeString": "type(address)"
                        },
                        "typeName": {
                          "id": 10150,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "3026:7:9",
                          "typeDescriptions": {
                            "typeIdentifier": null,
                            "typeString": null
                          }
                        }
                      },
                      "id": 10153,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "3026:16:9",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "hexValue": "30",
                          "id": 10156,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "3054:1:9",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          }
                        ],
                        "id": 10155,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "3046:7:9",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_address_$",
                          "typeString": "type(address)"
                        },
                        "typeName": {
                          "id": 10154,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "3046:7:9",
                          "typeDescriptions": {
                            "typeIdentifier": null,
                            "typeString": null
                          }
                        }
                      },
                      "id": 10157,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "3046:10:9",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_address_payable",
                        "typeString": "address payable"
                      }
                    },
                    "src": "3026:30:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 10183,
                    "nodeType": "Block",
                    "src": "3201:159:9",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 10176,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 10169,
                            "name": "anchor",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 10142,
                            "src": "3253:6:9",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_IConverterAnchor_$13349",
                              "typeString": "contract IConverterAnchor"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 10172,
                                "name": "_name",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 10131,
                                "src": "3283:5:9",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_string_memory_ptr",
                                  "typeString": "string memory"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 10173,
                                "name": "_symbol",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 10133,
                                "src": "3290:7:9",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_string_memory_ptr",
                                  "typeString": "string memory"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 10174,
                                "name": "_decimals",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 10135,
                                "src": "3299:9:9",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_string_memory_ptr",
                                  "typeString": "string memory"
                                },
                                {
                                  "typeIdentifier": "t_string_memory_ptr",
                                  "typeString": "string memory"
                                },
                                {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              ],
                              "expression": {
                                "argumentTypes": null,
                                "id": 10170,
                                "name": "factory",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 10145,
                                "src": "3262:7:9",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_ITypedConverterAnchorFactory_$13680",
                                  "typeString": "contract ITypedConverterAnchorFactory"
                                }
                              },
                              "id": 10171,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "createAnchor",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 13679,
                              "src": "3262:20:9",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_external_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_uint8_$returns$_t_contract$_IConverterAnchor_$13349_$",
                                "typeString": "function (string memory,string memory,uint8) external returns (contract IConverterAnchor)"
                              }
                            },
                            "id": 10175,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "3262:47:9",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_IConverterAnchor_$13349",
                              "typeString": "contract IConverterAnchor"
                            }
                          },
                          "src": "3253:56:9",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_IConverterAnchor_$13349",
                            "typeString": "contract IConverterAnchor"
                          }
                        },
                        "id": 10177,
                        "nodeType": "ExpressionStatement",
                        "src": "3253:56:9"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "expression": {
                              "argumentTypes": null,
                              "id": 10178,
                              "name": "anchor",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 10142,
                              "src": "3324:6:9",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_IConverterAnchor_$13349",
                                "typeString": "contract IConverterAnchor"
                              }
                            },
                            "id": 10180,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "acceptOwnership",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 23181,
                            "src": "3324:22:9",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_nonpayable$__$returns$__$",
                              "typeString": "function () external"
                            }
                          },
                          "id": 10181,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "3324:24:9",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 10182,
                        "nodeType": "ExpressionStatement",
                        "src": "3324:24:9"
                      }
                    ]
                  },
                  "id": 10184,
                  "nodeType": "IfStatement",
                  "src": "3022:338:9",
                  "trueBody": {
                    "id": 10168,
                    "nodeType": "Block",
                    "src": "3058:128:9",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 10166,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 10159,
                            "name": "anchor",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 10142,
                            "src": "3124:6:9",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_IConverterAnchor_$13349",
                              "typeString": "contract IConverterAnchor"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 10162,
                                "name": "_name",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 10131,
                                "src": "3148:5:9",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_string_memory_ptr",
                                  "typeString": "string memory"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 10163,
                                "name": "_symbol",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 10133,
                                "src": "3155:7:9",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_string_memory_ptr",
                                  "typeString": "string memory"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "id": 10164,
                                "name": "_decimals",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 10135,
                                "src": "3164:9:9",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_string_memory_ptr",
                                  "typeString": "string memory"
                                },
                                {
                                  "typeIdentifier": "t_string_memory_ptr",
                                  "typeString": "string memory"
                                },
                                {
                                  "typeIdentifier": "t_uint8",
                                  "typeString": "uint8"
                                }
                              ],
                              "id": 10161,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "NewExpression",
                              "src": "3133:14:9",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_creation_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$_t_uint8_$returns$_t_contract$_SmartToken_$21394_$",
                                "typeString": "function (string memory,string memory,uint8) returns (contract SmartToken)"
                              },
                              "typeName": {
                                "contractScope": null,
                                "id": 10160,
                                "name": "SmartToken",
                                "nodeType": "UserDefinedTypeName",
                                "referencedDeclaration": 21394,
                                "src": "3137:10:9",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_SmartToken_$21394",
                                  "typeString": "contract SmartToken"
                                }
                              }
                            },
                            "id": 10165,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "3133:41:9",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_SmartToken_$21394",
                              "typeString": "contract SmartToken"
                            }
                          },
                          "src": "3124:50:9",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_IConverterAnchor_$13349",
                            "typeString": "contract IConverterAnchor"
                          }
                        },
                        "id": 10167,
                        "nodeType": "ExpressionStatement",
                        "src": "3124:50:9"
                      }
                    ]
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 10188,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": -15,
                          "src": "3397:3:9",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 10189,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "3397:10:9",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 10185,
                        "name": "anchor",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10142,
                        "src": "3372:6:9",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IConverterAnchor_$13349",
                          "typeString": "contract IConverterAnchor"
                        }
                      },
                      "id": 10187,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "transferOwnership",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 23178,
                      "src": "3372:24:9",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$",
                        "typeString": "function (address) external"
                      }
                    },
                    "id": 10190,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3372:36:9",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 10191,
                  "nodeType": "ExpressionStatement",
                  "src": "3372:36:9"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 10192,
                    "name": "anchor",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 10142,
                    "src": "3426:6:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IConverterAnchor_$13349",
                      "typeString": "contract IConverterAnchor"
                    }
                  },
                  "functionReturnParameters": 10140,
                  "id": 10193,
                  "nodeType": "Return",
                  "src": "3419:13:9"
                }
              ]
            },
            "documentation": {
              "id": 10127,
              "nodeType": "StructuredDocumentation",
              "src": "2297:393:9",
              "text": " @dev creates a new converter anchor with the given arguments and transfers\n the ownership to the caller\n @param _converterType   converter type, see ConverterBase contract main doc\n @param _name            name\n @param _symbol          symbol\n @param _decimals        decimals\n @return new converter anchor"
            },
            "functionSelector": "2e9ab7b3",
            "id": 10195,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "createAnchor",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 10137,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "2844:8:9"
            },
            "parameters": {
              "id": 10136,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10129,
                  "mutability": "mutable",
                  "name": "_converterType",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 10195,
                  "src": "2718:21:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint16",
                    "typeString": "uint16"
                  },
                  "typeName": {
                    "id": 10128,
                    "name": "uint16",
                    "nodeType": "ElementaryTypeName",
                    "src": "2718:6:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint16",
                      "typeString": "uint16"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 10131,
                  "mutability": "mutable",
                  "name": "_name",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 10195,
                  "src": "2741:19:9",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 10130,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "2741:6:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 10133,
                  "mutability": "mutable",
                  "name": "_symbol",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 10195,
                  "src": "2762:21:9",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 10132,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "2762:6:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 10135,
                  "mutability": "mutable",
                  "name": "_decimals",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 10195,
                  "src": "2785:15:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 10134,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "2785:5:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2717:84:9"
            },
            "returnParameters": {
              "id": 10140,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10139,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 10195,
                  "src": "2871:16:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_IConverterAnchor_$13349",
                    "typeString": "contract IConverterAnchor"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 10138,
                    "name": "IConverterAnchor",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 13349,
                    "src": "2871:16:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IConverterAnchor_$13349",
                      "typeString": "contract IConverterAnchor"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2870:18:9"
            },
            "scope": 10244,
            "src": "2696:744:9",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              13381
            ],
            "body": {
              "id": 10242,
              "nodeType": "Block",
              "src": "4142:297:9",
              "statements": [
                {
                  "assignments": [
                    10211
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 10211,
                      "mutability": "mutable",
                      "name": "converter",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 10242,
                      "src": "4153:20:9",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_IConverter_$13340",
                        "typeString": "contract IConverter"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 10210,
                        "name": "IConverter",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 13340,
                        "src": "4153:10:9",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IConverter_$13340",
                          "typeString": "contract IConverter"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 10220,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 10216,
                        "name": "_anchor",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10200,
                        "src": "4218:7:9",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IConverterAnchor_$13349",
                          "typeString": "contract IConverterAnchor"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 10217,
                        "name": "_registry",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10202,
                        "src": "4227:9:9",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IContractRegistry_$23166",
                          "typeString": "contract IContractRegistry"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 10218,
                        "name": "_maxConversionFee",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10204,
                        "src": "4238:17:9",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_IConverterAnchor_$13349",
                          "typeString": "contract IConverterAnchor"
                        },
                        {
                          "typeIdentifier": "t_contract$_IContractRegistry_$23166",
                          "typeString": "contract IContractRegistry"
                        },
                        {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "baseExpression": {
                          "argumentTypes": null,
                          "id": 10212,
                          "name": "converterFactories",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 10066,
                          "src": "4176:18:9",
                          "typeDescriptions": {
                            "typeIdentifier": "t_mapping$_t_uint16_$_t_contract$_ITypedConverterFactory_$13710_$",
                            "typeString": "mapping(uint16 => contract ITypedConverterFactory)"
                          }
                        },
                        "id": 10214,
                        "indexExpression": {
                          "argumentTypes": null,
                          "id": 10213,
                          "name": "_type",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 10198,
                          "src": "4195:5:9",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint16",
                            "typeString": "uint16"
                          }
                        },
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "IndexAccess",
                        "src": "4176:25:9",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ITypedConverterFactory_$13710",
                          "typeString": "contract ITypedConverterFactory"
                        }
                      },
                      "id": 10215,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "createConverter",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 13709,
                      "src": "4176:41:9",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_contract$_IConverterAnchor_$13349_$_t_contract$_IContractRegistry_$23166_$_t_uint32_$returns$_t_contract$_IConverter_$13340_$",
                        "typeString": "function (contract IConverterAnchor,contract IContractRegistry,uint32) external returns (contract IConverter)"
                      }
                    },
                    "id": 10219,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4176:80:9",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IConverter_$13340",
                      "typeString": "contract IConverter"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4153:103:9"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "argumentTypes": null,
                        "id": 10221,
                        "name": "converter",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10211,
                        "src": "4267:9:9",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IConverter_$13340",
                          "typeString": "contract IConverter"
                        }
                      },
                      "id": 10223,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "acceptOwnership",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 23181,
                      "src": "4267:25:9",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$__$returns$__$",
                        "typeString": "function () external"
                      }
                    },
                    "id": 10224,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4267:27:9",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 10225,
                  "nodeType": "ExpressionStatement",
                  "src": "4267:27:9"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 10229,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": -15,
                          "src": "4333:3:9",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 10230,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "4333:10:9",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 10226,
                        "name": "converter",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10211,
                        "src": "4305:9:9",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IConverter_$13340",
                          "typeString": "contract IConverter"
                        }
                      },
                      "id": 10228,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "transferOwnership",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 23178,
                      "src": "4305:27:9",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$__$",
                        "typeString": "function (address) external"
                      }
                    },
                    "id": 10231,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4305:39:9",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 10232,
                  "nodeType": "ExpressionStatement",
                  "src": "4305:39:9"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 10234,
                        "name": "_type",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10198,
                        "src": "4375:5:9",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint16",
                          "typeString": "uint16"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 10235,
                        "name": "converter",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 10211,
                        "src": "4382:9:9",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IConverter_$13340",
                          "typeString": "contract IConverter"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 10236,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": -15,
                          "src": "4393:3:9",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 10237,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "4393:10:9",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint16",
                          "typeString": "uint16"
                        },
                        {
                          "typeIdentifier": "t_contract$_IConverter_$13340",
                          "typeString": "contract IConverter"
                        },
                        {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      ],
                      "id": 10233,
                      "name": "NewConverter",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 10062,
                      "src": "4362:12:9",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_uint16_$_t_contract$_IConverter_$13340_$_t_address_$returns$__$",
                        "typeString": "function (uint16,contract IConverter,address)"
                      }
                    },
                    "id": 10238,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4362:42:9",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 10239,
                  "nodeType": "EmitStatement",
                  "src": "4357:47:9"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 10240,
                    "name": "converter",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 10211,
                    "src": "4422:9:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IConverter_$13340",
                      "typeString": "contract IConverter"
                    }
                  },
                  "functionReturnParameters": 10209,
                  "id": 10241,
                  "nodeType": "Return",
                  "src": "4415:16:9"
                }
              ]
            },
            "documentation": {
              "id": 10196,
              "nodeType": "StructuredDocumentation",
              "src": "3448:482:9",
              "text": " @dev creates a new converter with the given arguments and transfers\n the ownership to the caller\n @param _type              converter type, see ConverterBase contract main doc\n @param _anchor            anchor governed by the converter\n @param _registry          address of a contract registry contract\n @param _maxConversionFee  maximum conversion fee, represented in ppm\n @return new converter"
            },
            "functionSelector": "15f64b6a",
            "id": 10243,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "createConverter",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 10206,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "4098:8:9"
            },
            "parameters": {
              "id": 10205,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10198,
                  "mutability": "mutable",
                  "name": "_type",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 10243,
                  "src": "3961:12:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint16",
                    "typeString": "uint16"
                  },
                  "typeName": {
                    "id": 10197,
                    "name": "uint16",
                    "nodeType": "ElementaryTypeName",
                    "src": "3961:6:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint16",
                      "typeString": "uint16"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 10200,
                  "mutability": "mutable",
                  "name": "_anchor",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 10243,
                  "src": "3975:24:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_IConverterAnchor_$13349",
                    "typeString": "contract IConverterAnchor"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 10199,
                    "name": "IConverterAnchor",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 13349,
                    "src": "3975:16:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IConverterAnchor_$13349",
                      "typeString": "contract IConverterAnchor"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 10202,
                  "mutability": "mutable",
                  "name": "_registry",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 10243,
                  "src": "4001:27:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_IContractRegistry_$23166",
                    "typeString": "contract IContractRegistry"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 10201,
                    "name": "IContractRegistry",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 23166,
                    "src": "4001:17:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IContractRegistry_$23166",
                      "typeString": "contract IContractRegistry"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 10204,
                  "mutability": "mutable",
                  "name": "_maxConversionFee",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 10243,
                  "src": "4030:24:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  },
                  "typeName": {
                    "id": 10203,
                    "name": "uint32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4030:6:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3960:95:9"
            },
            "returnParameters": {
              "id": 10209,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10208,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 10243,
                  "src": "4125:10:9",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_IConverter_$13340",
                    "typeString": "contract IConverter"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 10207,
                    "name": "IConverter",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 13340,
                    "src": "4125:10:9",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IConverter_$13340",
                      "typeString": "contract IConverter"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4124:12:9"
            },
            "scope": 10244,
            "src": "3936:503:9",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "public"
          }
        ],
        "scope": 10245,
        "src": "482:3960:9"
      }
    ],
    "src": "52:4392:9"
  },
  "compiler": {
    "name": "solc",
    "version": "0.6.12+commit.27d51765.Emscripten.clang"
  },
  "networks": {
    "42": {
      "events": {
        "0xbb340bcea68d239ac719bc5cf8c9a1716df04ad3babb8d1e562aa44d19fea3a3": {
          "anonymous": false,
          "inputs": [
            {
              "indexed": true,
              "internalType": "uint16",
              "name": "_type",
              "type": "uint16"
            },
            {
              "indexed": true,
              "internalType": "contract IConverter",
              "name": "_converter",
              "type": "address"
            },
            {
              "indexed": true,
              "internalType": "address",
              "name": "_owner",
              "type": "address"
            }
          ],
          "name": "NewConverter",
          "type": "event"
        },
        "0x343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a": {
          "anonymous": false,
          "inputs": [
            {
              "indexed": true,
              "internalType": "address",
              "name": "_prevOwner",
              "type": "address"
            },
            {
              "indexed": true,
              "internalType": "address",
              "name": "_newOwner",
              "type": "address"
            }
          ],
          "name": "OwnerUpdate",
          "type": "event"
        }
      },
      "links": {},
      "address": "0xEa6225212005E86a4490018Ded4bf37F3E772161",
      "transactionHash": "0x77ee228c82eb41f9067d6593a5600850479fe2334b7b476063f0277886f8238a"
    },
    "8995": {
      "events": {
        "0xbb340bcea68d239ac719bc5cf8c9a1716df04ad3babb8d1e562aa44d19fea3a3": {
          "anonymous": false,
          "inputs": [
            {
              "indexed": true,
              "internalType": "uint16",
              "name": "_type",
              "type": "uint16"
            },
            {
              "indexed": true,
              "internalType": "contract IConverter",
              "name": "_converter",
              "type": "address"
            },
            {
              "indexed": true,
              "internalType": "address",
              "name": "_owner",
              "type": "address"
            }
          ],
          "name": "NewConverter",
          "type": "event"
        },
        "0x343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a": {
          "anonymous": false,
          "inputs": [
            {
              "indexed": true,
              "internalType": "address",
              "name": "_prevOwner",
              "type": "address"
            },
            {
              "indexed": true,
              "internalType": "address",
              "name": "_newOwner",
              "type": "address"
            }
          ],
          "name": "OwnerUpdate",
          "type": "event"
        }
      },
      "links": {},
      "address": "0xEa6225212005E86a4490018Ded4bf37F3E772161",
      "transactionHash": "0x77ee228c82eb41f9067d6593a5600850479fe2334b7b476063f0277886f8238a"
    },
    "1604964387852": {
      "events": {
        "0xbb340bcea68d239ac719bc5cf8c9a1716df04ad3babb8d1e562aa44d19fea3a3": {
          "anonymous": false,
          "inputs": [
            {
              "indexed": true,
              "internalType": "uint16",
              "name": "_type",
              "type": "uint16"
            },
            {
              "indexed": true,
              "internalType": "contract IConverter",
              "name": "_converter",
              "type": "address"
            },
            {
              "indexed": true,
              "internalType": "address",
              "name": "_owner",
              "type": "address"
            }
          ],
          "name": "NewConverter",
          "type": "event"
        },
        "0x343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a": {
          "anonymous": false,
          "inputs": [
            {
              "indexed": true,
              "internalType": "address",
              "name": "_prevOwner",
              "type": "address"
            },
            {
              "indexed": true,
              "internalType": "address",
              "name": "_newOwner",
              "type": "address"
            }
          ],
          "name": "OwnerUpdate",
          "type": "event"
        }
      },
      "links": {},
      "address": "0x44A45C77aB76A56294eEfC355e1fA58B1C9E7c34",
      "transactionHash": "0x48570212bcd429bcb5d7f1e0ab6406b7ffc2fadff4d27b87aca8b339a7dced39"
    },
    "1604964469407": {
      "events": {
        "0xbb340bcea68d239ac719bc5cf8c9a1716df04ad3babb8d1e562aa44d19fea3a3": {
          "anonymous": false,
          "inputs": [
            {
              "indexed": true,
              "internalType": "uint16",
              "name": "_type",
              "type": "uint16"
            },
            {
              "indexed": true,
              "internalType": "contract IConverter",
              "name": "_converter",
              "type": "address"
            },
            {
              "indexed": true,
              "internalType": "address",
              "name": "_owner",
              "type": "address"
            }
          ],
          "name": "NewConverter",
          "type": "event"
        },
        "0x343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a": {
          "anonymous": false,
          "inputs": [
            {
              "indexed": true,
              "internalType": "address",
              "name": "_prevOwner",
              "type": "address"
            },
            {
              "indexed": true,
              "internalType": "address",
              "name": "_newOwner",
              "type": "address"
            }
          ],
          "name": "OwnerUpdate",
          "type": "event"
        }
      },
      "links": {},
      "address": "0x73a88965c30303c0fbd9D15C6e3612761632d5c9",
      "transactionHash": "0x1ae65e8d239e9857e2d508f2d3d25b8c503c80094cf24363dc7e8bc580197e0a"
    },
    "1604965528035": {
      "events": {
        "0xbb340bcea68d239ac719bc5cf8c9a1716df04ad3babb8d1e562aa44d19fea3a3": {
          "anonymous": false,
          "inputs": [
            {
              "indexed": true,
              "internalType": "uint16",
              "name": "_type",
              "type": "uint16"
            },
            {
              "indexed": true,
              "internalType": "contract IConverter",
              "name": "_converter",
              "type": "address"
            },
            {
              "indexed": true,
              "internalType": "address",
              "name": "_owner",
              "type": "address"
            }
          ],
          "name": "NewConverter",
          "type": "event"
        },
        "0x343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a": {
          "anonymous": false,
          "inputs": [
            {
              "indexed": true,
              "internalType": "address",
              "name": "_prevOwner",
              "type": "address"
            },
            {
              "indexed": true,
              "internalType": "address",
              "name": "_newOwner",
              "type": "address"
            }
          ],
          "name": "OwnerUpdate",
          "type": "event"
        }
      },
      "links": {},
      "address": "0xE2A95E30AF264AD41494f694b98bfE4d235Ee6DB",
      "transactionHash": "0x60428cf55dc3d4b36bb18757c443ede64aabd74b2867826339d4c147f06f2d3d"
    },
    "1604965645554": {
      "events": {
        "0xbb340bcea68d239ac719bc5cf8c9a1716df04ad3babb8d1e562aa44d19fea3a3": {
          "anonymous": false,
          "inputs": [
            {
              "indexed": true,
              "internalType": "uint16",
              "name": "_type",
              "type": "uint16"
            },
            {
              "indexed": true,
              "internalType": "contract IConverter",
              "name": "_converter",
              "type": "address"
            },
            {
              "indexed": true,
              "internalType": "address",
              "name": "_owner",
              "type": "address"
            }
          ],
          "name": "NewConverter",
          "type": "event"
        },
        "0x343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a": {
          "anonymous": false,
          "inputs": [
            {
              "indexed": true,
              "internalType": "address",
              "name": "_prevOwner",
              "type": "address"
            },
            {
              "indexed": true,
              "internalType": "address",
              "name": "_newOwner",
              "type": "address"
            }
          ],
          "name": "OwnerUpdate",
          "type": "event"
        }
      },
      "links": {},
      "address": "0xB38D4140052d432979aa87D0735c554135759c99",
      "transactionHash": "0x1071f836f55e51a071cda172f5ae328ad24e4a2c7a9ac5ba013f1dc8d74715b6"
    },
    "1604965679541": {
      "events": {
        "0xbb340bcea68d239ac719bc5cf8c9a1716df04ad3babb8d1e562aa44d19fea3a3": {
          "anonymous": false,
          "inputs": [
            {
              "indexed": true,
              "internalType": "uint16",
              "name": "_type",
              "type": "uint16"
            },
            {
              "indexed": true,
              "internalType": "contract IConverter",
              "name": "_converter",
              "type": "address"
            },
            {
              "indexed": true,
              "internalType": "address",
              "name": "_owner",
              "type": "address"
            }
          ],
          "name": "NewConverter",
          "type": "event"
        },
        "0x343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a": {
          "anonymous": false,
          "inputs": [
            {
              "indexed": true,
              "internalType": "address",
              "name": "_prevOwner",
              "type": "address"
            },
            {
              "indexed": true,
              "internalType": "address",
              "name": "_newOwner",
              "type": "address"
            }
          ],
          "name": "OwnerUpdate",
          "type": "event"
        }
      },
      "links": {},
      "address": "0xa9Ddd71060DDE95244597aBB1D5f1611f620e118",
      "transactionHash": "0xf91245e5bc93b291e8f7ebf55e9c49fe9a6bae457d021e011079b27c25749abc"
    },
    "1604965719492": {
      "events": {
        "0xbb340bcea68d239ac719bc5cf8c9a1716df04ad3babb8d1e562aa44d19fea3a3": {
          "anonymous": false,
          "inputs": [
            {
              "indexed": true,
              "internalType": "uint16",
              "name": "_type",
              "type": "uint16"
            },
            {
              "indexed": true,
              "internalType": "contract IConverter",
              "name": "_converter",
              "type": "address"
            },
            {
              "indexed": true,
              "internalType": "address",
              "name": "_owner",
              "type": "address"
            }
          ],
          "name": "NewConverter",
          "type": "event"
        },
        "0x343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a": {
          "anonymous": false,
          "inputs": [
            {
              "indexed": true,
              "internalType": "address",
              "name": "_prevOwner",
              "type": "address"
            },
            {
              "indexed": true,
              "internalType": "address",
              "name": "_newOwner",
              "type": "address"
            }
          ],
          "name": "OwnerUpdate",
          "type": "event"
        }
      },
      "links": {},
      "address": "0x5DA38321dA6bd7A738d2EC65B3dB936448136f95",
      "transactionHash": "0x1bd8f87a5f8f7d5b84ec8fe545776aaaf7d5cdbc5f3b52b10ff80c1977dff40f"
    },
    "1604965760834": {
      "events": {
        "0xbb340bcea68d239ac719bc5cf8c9a1716df04ad3babb8d1e562aa44d19fea3a3": {
          "anonymous": false,
          "inputs": [
            {
              "indexed": true,
              "internalType": "uint16",
              "name": "_type",
              "type": "uint16"
            },
            {
              "indexed": true,
              "internalType": "contract IConverter",
              "name": "_converter",
              "type": "address"
            },
            {
              "indexed": true,
              "internalType": "address",
              "name": "_owner",
              "type": "address"
            }
          ],
          "name": "NewConverter",
          "type": "event"
        },
        "0x343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a": {
          "anonymous": false,
          "inputs": [
            {
              "indexed": true,
              "internalType": "address",
              "name": "_prevOwner",
              "type": "address"
            },
            {
              "indexed": true,
              "internalType": "address",
              "name": "_newOwner",
              "type": "address"
            }
          ],
          "name": "OwnerUpdate",
          "type": "event"
        }
      },
      "links": {},
      "address": "0xFB7E8b35B1495bebd6B672CEFC4Bf241835F8865",
      "transactionHash": "0x68b3cd938a76ea20d393a29752e07beb523cf085f7d69d8750fe920908529f51"
    }
  },
  "schemaVersion": "3.2.3",
  "updatedAt": "2020-11-10T14:20:45.557Z",
  "networkType": "ethereum",
  "devdoc": {
    "events": {
      "NewConverter(uint16,address,address)": {
        "details": "triggered when a new converter is created",
        "params": {
          "_converter": "new converter address",
          "_owner": "converter owner address",
          "_type": "converter type, see ConverterBase contract main doc"
        }
      }
    },
    "kind": "dev",
    "methods": {
      "acceptOwnership()": {
        "details": "used by a new owner to accept an ownership transfer"
      },
      "createAnchor(uint16,string,string,uint8)": {
        "details": "creates a new converter anchor with the given arguments and transfers the ownership to the caller",
        "params": {
          "_converterType": "converter type, see ConverterBase contract main doc",
          "_decimals": "decimals",
          "_name": "name",
          "_symbol": "symbol"
        },
        "returns": {
          "_0": "new converter anchor"
        }
      },
      "createConverter(uint16,address,address,uint32)": {
        "details": "creates a new converter with the given arguments and transfers the ownership to the caller",
        "params": {
          "_anchor": "anchor governed by the converter",
          "_maxConversionFee": "maximum conversion fee, represented in ppm",
          "_registry": "address of a contract registry contract",
          "_type": "converter type, see ConverterBase contract main doc"
        },
        "returns": {
          "_0": "new converter"
        }
      },
      "registerTypedConverterAnchorFactory(address)": {
        "details": "initializes the factory with a specific typed converter anchor factory can only be called by the owner",
        "params": {
          "_factory": "typed converter anchor factory"
        }
      },
      "registerTypedConverterCustomFactory(address)": {
        "details": "initializes the factory with a specific typed converter custom factory can only be called by the owner",
        "params": {
          "_factory": "typed converter custom factory"
        }
      },
      "registerTypedConverterFactory(address)": {
        "details": "initializes the factory with a specific typed converter factory can only be called by the owner",
        "params": {
          "_factory": "typed converter factory"
        }
      },
      "transferOwnership(address)": {
        "details": "allows transferring the contract ownership the new owner still needs to accept the transfer can only be called by the contract owner",
        "params": {
          "_newOwner": "new contract owner"
        }
      }
    },
    "version": 1
  },
  "userdoc": {
    "kind": "user",
    "methods": {},
    "version": 1
  }
}