{
  "contractName": "Wrapped1155",
  "abi": [
    {
      "inputs": [],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "owner",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "spender",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        }
      ],
      "name": "Approval",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "from",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        }
      ],
      "name": "Transfer",
      "type": "event"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "owner",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "spender",
          "type": "address"
        }
      ],
      "name": "allowance",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "spender",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "approve",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "balanceOf",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "decimals",
      "outputs": [
        {
          "internalType": "uint8",
          "name": "",
          "type": "uint8"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "spender",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "subtractedValue",
          "type": "uint256"
        }
      ],
      "name": "decreaseAllowance",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "factory",
      "outputs": [
        {
          "internalType": "contract Wrapped1155Factory",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "spender",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "addedValue",
          "type": "uint256"
        }
      ],
      "name": "increaseAllowance",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "multiToken",
      "outputs": [
        {
          "internalType": "contract IERC1155",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "name",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "symbol",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "tokenId",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "totalSupply",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "recipient",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "transfer",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "sender",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "recipient",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "transferFrom",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "mint",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "burn",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "metadata": "{\"compiler\":{\"version\":\"0.6.12+commit.27d51765\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"factory\",\"outputs\":[{\"internalType\":\"contract Wrapped1155Factory\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"multiToken\",\"outputs\":[{\"internalType\":\"contract IERC1155\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"tokenId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5,05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the value {ERC20} uses, unless {_setupDecimals} is called. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"decreaseAllowance(address,uint256)\":{\"details\":\"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`.\"},\"increaseAllowance(address,uint256)\":{\"details\":\"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `recipient` cannot be the zero address. - the caller must have a balance of at least `amount`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}; Requirements: - `sender` and `recipient` cannot be the zero address. - `sender` must have a balance of at least `amount`. - the caller must have allowance for ``sender``'s tokens of at least `amount`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"/C/Users/Alan/Documents/GitHub/1155-to-20/contracts/Wrapped1155Factory.sol\":\"Wrapped1155\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"/C/Users/Alan/Documents/GitHub/1155-to-20/contracts/Wrapped1155Factory.sol\":{\"keccak256\":\"0xdd6052686a53b1dc9a3686cb3d3ee67d1400b68b784eb97d484e9142f3b15123\",\"license\":\"LGPL-3.0-or-later\",\"urls\":[\"bzz-raw://301229b1a5852639e21d20d5956d0db615ff870dad96aef11cabe00bc1fabbe8\",\"dweb:/ipfs/QmYcCWX7gJLin8Ez9YtvxBiViSdA5uPzRM85rv3DNHGJXE\"]},\"@openzeppelin/contracts/GSN/Context.sol\":{\"keccak256\":\"0xdb26cbf4d028490f49831a7865c2fe1b28db44b535ca8d343785a3b768aae183\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://840b14ce0315c47d49ba328f1f9fa7654ded1c9e1559e6c5e777a7b2dc28bf0a\",\"dweb:/ipfs/QmTLLabn4wcfGro9LEmUXUN2nwKqZSotXMvjDCLXEnLtZP\"]},\"@openzeppelin/contracts/introspection/ERC165.sol\":{\"keccak256\":\"0xb046d18f9d09683ca1c0ed6d80c61da8a8a7d9b30bad70a17b898538683eff74\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4728713afa6ae36cc9e92c7107c796a313add3ec20f813be2cde76c814486b2a\",\"dweb:/ipfs/QmUJBTXvYaGDF5PVnd5pUvYerc9DRXvqANDzgCzAp3FkkA\"]},\"@openzeppelin/contracts/introspection/IERC165.sol\":{\"keccak256\":\"0xfa152b6e88a1dc50780e8f1580426dc23ad2e1e2c2f086a088adf206a202f453\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5127b264994adab88fae419b1c493efc5acd07134c19ee5c0397e50018291ebf\",\"dweb:/ipfs/QmWwJZVhvdmvUCdimbb6R2Jiu59zjPqm6XTMchM6LaEHAp\"]},\"@openzeppelin/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x9a9cf02622cd7a64261b10534fc3260449da25c98c9e96d1b4ae8110a20e5806\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2df142592d1dc267d9549049ee3317fa190d2f87eaa565f86ab05ec83f7ab8f5\",\"dweb:/ipfs/QmSkJtcfWo7c42KnL5hho6GFxK6HRNV91XABx1P7xDtfLV\"]},\"@openzeppelin/contracts/token/ERC1155/ERC1155Receiver.sol\":{\"keccak256\":\"0x4d9b42828f5a2ea16ea396377904448f1ef8ce17babf06d6259b3e4cf65d6c32\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bdba169baa86bd0277651759a6dee86574a8e277528de4df39970077baf97a16\",\"dweb:/ipfs/QmdzqcK7xPaYZqXqYLakD1bXe26zunWCbjyrvmoVpgTYeV\"]},\"@openzeppelin/contracts/token/ERC1155/IERC1155.sol\":{\"keccak256\":\"0xd9419564852ea941cb2a393aa489651a3174785436244e3e02681b587a184820\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6ff6a41c418e3b70628ec100d5deeb2d96e96029472f1309a1d474a9f7bc69c6\",\"dweb:/ipfs/QmZkKmXCbTZD6MrxDJSdxfYZdoDYPSDGK6NwR7msmudowF\"]},\"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol\":{\"keccak256\":\"0x0bc1d0b8fa3b262a6fb98b88dceab8b3348903b95dcc5909b9074fb19a3d2da5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a1a2d7b10e484742885d2042f66e8150bfc143a08756a269fb207c4c553b55aa\",\"dweb:/ipfs/Qmbhi8dodhRZS6mqL2T8WfMzmEwPzgSwpuGVHtKF5F6QDp\"]},\"@openzeppelin/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xf204d98eef08edacf5a02a2af1516ea4febdb6aba7a1ae5ac8deb6e568fd3dbb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c4dea62bffbd180772a6cfe7cb90e3a045c52d6b502bdb2fdff83193da42d8d0\",\"dweb:/ipfs/QmW8qGZ5nngajmv5Aamdrpkeuq7S5YCVaR7rtcqNekKHtK\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x5c26b39d26f7ed489e555d955dcd3e01872972e71fdd1528e93ec164e4f23385\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://efdc632af6960cf865dbc113665ea1f5b90eab75cc40ec062b2f6ae6da582017\",\"dweb:/ipfs/QmfAZFDuG62vxmAN9DnXApv7e7PMzPqi4RkqqZHLMSQiY5\"]},\"@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xdfb4f812600ba4ce6738c35584ceb8c9433472583051b48ba5b1f66cb758a498\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df02dffe1c1de089d9b4f6192f0dcf464526f2230f420b3deec4645e0cdd2bff\",\"dweb:/ipfs/QmcqXGAU3KJqwrgUVoGJ2W8osomhSJ4R5kdsRpbuW3fELS\"]}},\"version\":1}",
  "bytecode": "0x60806040523480156200001157600080fd5b506040518060400160405280601f81526020017f57726170706564204552432d3131353520496d706c656d656e746174696f6e008152506040518060400160405280600481526020017f574d542a00000000000000000000000000000000000000000000000000000000815250816006908051906020019062000096929190620000d4565b508060079080519060200190620000af929190620000d4565b506012600860006101000a81548160ff021916908360ff16021790555050506200017a565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200011757805160ff191683800117855562000148565b8280016001018555821562000148579182015b82811115620001475782518255916020019190600101906200012a565b5b5090506200015791906200015b565b5090565b5b80821115620001765760008160009055506001016200015c565b5090565b611868806200018a6000396000f3fe608060405234801561001057600080fd5b50600436106101005760003560e01c806340c10f1911610097578063a457c2d711610066578063a457c2d7146104dc578063a9059cbb14610540578063c45a0155146105a4578063dd62ed3e146105d857610100565b806340c10f191461036557806370a08231146103b357806395d89b411461040b5780639dc29fac1461048e57610100565b80631904e5c9116100d35780631904e5c91461022857806323b872dd1461025c578063313ce567146102e0578063395093511461030157610100565b806306fdde0314610105578063095ea7b31461018857806317d70f7c146101ec57806318160ddd1461020a575b600080fd5b61010d610650565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561014d578082015181840152602081019050610132565b50505050905090810190601f16801561017a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101d46004803603604081101561019e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506106f2565b60405180821515815260200191505060405180910390f35b6101f4610710565b6040518082815260200191505060405180910390f35b610212610716565b6040518082815260200191505060405180910390f35b610230610720565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6102c86004803603606081101561027257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610746565b60405180821515815260200191505060405180910390f35b6102e861081f565b604051808260ff16815260200191505060405180910390f35b61034d6004803603604081101561031757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610836565b60405180821515815260200191505060405180910390f35b6103b16004803603604081101561037b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506108e9565b005b6103f5600480360360208110156103c957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061099b565b6040518082815260200191505060405180910390f35b6104136109e4565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610453578082015181840152602081019050610438565b50505050905090810190601f1680156104805780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6104da600480360360408110156104a457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a86565b005b610528600480360360408110156104f257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b38565b60405180821515815260200191505060405180910390f35b61058c6004803603604081101561055657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c05565b60405180821515815260200191505060405180910390f35b6105ac610c23565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61063a600480360360408110156105ee57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610c47565b6040518082815260200191505060405180910390f35b606060068054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156106e85780601f106106bd576101008083540402835291602001916106e8565b820191906000526020600020905b8154815290600101906020018083116106cb57829003601f168201915b5050505050905090565b60006107066106ff610cce565b8484610cd6565b6001905092915050565b60025481565b6000600554905090565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610753848484610ecd565b6108148461075f610cce565b61080f8560405180606001604052806028815260200161174660289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006107c5610cce565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546111929092919063ffffffff16565b610cd6565b600190509392505050565b6000600860009054906101000a900460ff16905090565b60006108df610843610cce565b846108da8560046000610854610cce565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461125290919063ffffffff16565b610cd6565b6001905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461098d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603681526020018061178f6036913960400191505060405180910390fd5b61099782826112da565b5050565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b606060078054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610a7c5780601f10610a5157610100808354040283529160200191610a7c565b820191906000526020600020905b815481529060010190602001808311610a5f57829003601f168201915b5050505050905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610b2a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603681526020018061178f6036913960400191505060405180910390fd5b610b3482826114a3565b5050565b6000610bfb610b45610cce565b84610bf68560405180606001604052806025815260200161180e6025913960046000610b6f610cce565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546111929092919063ffffffff16565b610cd6565b6001905092915050565b6000610c19610c12610cce565b8484610ecd565b6001905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610d5c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806117ea6024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610de2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806116fe6022913960400191505060405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610f53576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806117c56025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610fd9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806116b96023913960400191505060405180910390fd5b610fe4838383611669565b6110508160405180606001604052806026815260200161172060269139600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546111929092919063ffffffff16565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506110e581600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461125290919063ffffffff16565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b600083831115829061123f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156112045780820151818401526020810190506111e9565b50505050905090810190601f1680156112315780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b6000808284019050838110156112d0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561137d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f45524332303a206d696e7420746f20746865207a65726f20616464726573730081525060200191505060405180910390fd5b61138960008383611669565b61139e8160055461125290919063ffffffff16565b6005819055506113f681600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461125290919063ffffffff16565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611529576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018061176e6021913960400191505060405180910390fd5b61153582600083611669565b6115a1816040518060600160405280602281526020016116dc60229139600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546111929092919063ffffffff16565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506115f98160055461166e90919063ffffffff16565b600581905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b505050565b60006116b083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611192565b90509291505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e2066726f6d20746865207a65726f206164647265737357726170706564313135353a206f6e6c7920666163746f727920616c6c6f77656420746f20706572666f726d206f7065726174696f6e45524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212208719e2358388d64e199991ee4fa5b9a20617496b6cc780e13d5a3663de190eae64736f6c634300060c0033",
  "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101005760003560e01c806340c10f1911610097578063a457c2d711610066578063a457c2d7146104dc578063a9059cbb14610540578063c45a0155146105a4578063dd62ed3e146105d857610100565b806340c10f191461036557806370a08231146103b357806395d89b411461040b5780639dc29fac1461048e57610100565b80631904e5c9116100d35780631904e5c91461022857806323b872dd1461025c578063313ce567146102e0578063395093511461030157610100565b806306fdde0314610105578063095ea7b31461018857806317d70f7c146101ec57806318160ddd1461020a575b600080fd5b61010d610650565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561014d578082015181840152602081019050610132565b50505050905090810190601f16801561017a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6101d46004803603604081101561019e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506106f2565b60405180821515815260200191505060405180910390f35b6101f4610710565b6040518082815260200191505060405180910390f35b610212610716565b6040518082815260200191505060405180910390f35b610230610720565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6102c86004803603606081101561027257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610746565b60405180821515815260200191505060405180910390f35b6102e861081f565b604051808260ff16815260200191505060405180910390f35b61034d6004803603604081101561031757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610836565b60405180821515815260200191505060405180910390f35b6103b16004803603604081101561037b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506108e9565b005b6103f5600480360360208110156103c957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061099b565b6040518082815260200191505060405180910390f35b6104136109e4565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610453578082015181840152602081019050610438565b50505050905090810190601f1680156104805780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6104da600480360360408110156104a457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610a86565b005b610528600480360360408110156104f257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b38565b60405180821515815260200191505060405180910390f35b61058c6004803603604081101561055657600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c05565b60405180821515815260200191505060405180910390f35b6105ac610c23565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61063a600480360360408110156105ee57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610c47565b6040518082815260200191505060405180910390f35b606060068054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156106e85780601f106106bd576101008083540402835291602001916106e8565b820191906000526020600020905b8154815290600101906020018083116106cb57829003601f168201915b5050505050905090565b60006107066106ff610cce565b8484610cd6565b6001905092915050565b60025481565b6000600554905090565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610753848484610ecd565b6108148461075f610cce565b61080f8560405180606001604052806028815260200161174660289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006107c5610cce565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546111929092919063ffffffff16565b610cd6565b600190509392505050565b6000600860009054906101000a900460ff16905090565b60006108df610843610cce565b846108da8560046000610854610cce565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461125290919063ffffffff16565b610cd6565b6001905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461098d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603681526020018061178f6036913960400191505060405180910390fd5b61099782826112da565b5050565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b606060078054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610a7c5780601f10610a5157610100808354040283529160200191610a7c565b820191906000526020600020905b815481529060010190602001808311610a5f57829003601f168201915b5050505050905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610b2a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603681526020018061178f6036913960400191505060405180910390fd5b610b3482826114a3565b5050565b6000610bfb610b45610cce565b84610bf68560405180606001604052806025815260200161180e6025913960046000610b6f610cce565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546111929092919063ffffffff16565b610cd6565b6001905092915050565b6000610c19610c12610cce565b8484610ecd565b6001905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610d5c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806117ea6024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610de2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806116fe6022913960400191505060405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610f53576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806117c56025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610fd9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806116b96023913960400191505060405180910390fd5b610fe4838383611669565b6110508160405180606001604052806026815260200161172060269139600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546111929092919063ffffffff16565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506110e581600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461125290919063ffffffff16565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b600083831115829061123f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156112045780820151818401526020810190506111e9565b50505050905090810190601f1680156112315780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b6000808284019050838110156112d0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561137d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f45524332303a206d696e7420746f20746865207a65726f20616464726573730081525060200191505060405180910390fd5b61138960008383611669565b61139e8160055461125290919063ffffffff16565b6005819055506113f681600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461125290919063ffffffff16565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611529576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018061176e6021913960400191505060405180910390fd5b61153582600083611669565b6115a1816040518060600160405280602281526020016116dc60229139600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546111929092919063ffffffff16565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506115f98160055461166e90919063ffffffff16565b600581905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b505050565b60006116b083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611192565b90509291505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e636545524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e2066726f6d20746865207a65726f206164647265737357726170706564313135353a206f6e6c7920666163746f727920616c6c6f77656420746f20706572666f726d206f7065726174696f6e45524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212208719e2358388d64e199991ee4fa5b9a20617496b6cc780e13d5a3663de190eae64736f6c634300060c0033",
  "immutableReferences": {},
  "sourceMap": "771:371:1:-:0;;;829:72;;;;;;;;;;2013:141:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2093:4;2085:5;:12;;;;;;;;;;;;:::i;:::-;;2117:6;2107:7;:16;;;;;;;;;;;;:::i;:::-;;2145:2;2133:9;;:14;;;;;;;;;;;;;;;;;;2013:141;;771:371:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;",
  "deployedSourceMap": "771:371:1:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2219:81:9;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4255:166;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;578:22:1;;;:::i;:::-;;;;;;;;;;;;;;;;;;;3262:98:9;;;:::i;:::-;;;;;;;;;;;;;;;;;;;545:26:1;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;4881:317:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;3121:81;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;5593:215;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;909:109:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;3418:117:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2413:85;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1030:109:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6295:266:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;3738:172;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;505:33:1;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;3968:149:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2219:81;2256:13;2288:5;2281:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2219:81;:::o;4255:166::-;4338:4;4354:39;4363:12;:10;:12::i;:::-;4377:7;4386:6;4354:8;:39::i;:::-;4410:4;4403:11;;4255:166;;;;:::o;578:22:1:-;;;;:::o;3262:98:9:-;3315:7;3341:12;;3334:19;;3262:98;:::o;545:26:1:-;;;;;;;;;;;;;:::o;4881:317:9:-;4987:4;5003:36;5013:6;5021:9;5032:6;5003:9;:36::i;:::-;5049:121;5058:6;5066:12;:10;:12::i;:::-;5080:89;5118:6;5080:89;;;;;;;;;;;;;;;;;:11;:19;5092:6;5080:19;;;;;;;;;;;;;;;:33;5100:12;:10;:12::i;:::-;5080:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;5049:8;:121::i;:::-;5187:4;5180:11;;4881:317;;;;;:::o;3121:81::-;3162:5;3186:9;;;;;;;;;;;3179:16;;3121:81;:::o;5593:215::-;5681:4;5697:83;5706:12;:10;:12::i;:::-;5720:7;5729:50;5768:10;5729:11;:25;5741:12;:10;:12::i;:::-;5729:25;;;;;;;;;;;;;;;:34;5755:7;5729:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;5697:8;:83::i;:::-;5797:4;5790:11;;5593:215;;;;:::o;909:109:1:-;677:7;;;;;;;;;;655:30;;:10;:30;;;647:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;988:22:::1;994:7;1003:6;988:5;:22::i;:::-;909:109:::0;;:::o;3418:117:9:-;3484:7;3510:9;:18;3520:7;3510:18;;;;;;;;;;;;;;;;3503:25;;3418:117;;;:::o;2413:85::-;2452:13;2484:7;2477:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2413:85;:::o;1030:109:1:-;677:7;;;;;;;;;;655:30;;:10;:30;;;647:97;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1109:22:::1;1115:7;1124:6;1109:5;:22::i;:::-;1030:109:::0;;:::o;6295:266:9:-;6388:4;6404:129;6413:12;:10;:12::i;:::-;6427:7;6436:96;6475:15;6436:96;;;;;;;;;;;;;;;;;:11;:25;6448:12;:10;:12::i;:::-;6436:25;;;;;;;;;;;;;;;:34;6462:7;6436:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;6404:8;:129::i;:::-;6550:4;6543:11;;6295:266;;;;:::o;3738:172::-;3824:4;3840:42;3850:12;:10;:12::i;:::-;3864:9;3875:6;3840:9;:42::i;:::-;3899:4;3892:11;;3738:172;;;;:::o;505:33:1:-;;;;;;;;;;;;:::o;3968:149:9:-;4057:7;4083:11;:18;4095:5;4083:18;;;;;;;;;;;;;;;:27;4102:7;4083:27;;;;;;;;;;;;;;;;4076:34;;3968:149;;;;:::o;590:104:2:-;643:15;677:10;670:17;;590:104;:::o;9359:340:9:-;9477:1;9460:19;;:5;:19;;;;9452:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9557:1;9538:21;;:7;:21;;;;9530:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9639:6;9609:11;:18;9621:5;9609:18;;;;;;;;;;;;;;;:27;9628:7;9609:27;;;;;;;;;;;;;;;:36;;;;9676:7;9660:32;;9669:5;9660:32;;;9685:6;9660:32;;;;;;;;;;;;;;;;;;9359:340;;;:::o;7035:530::-;7158:1;7140:20;;:6;:20;;;;7132:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7241:1;7220:23;;:9;:23;;;;7212:71;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7294:47;7315:6;7323:9;7334:6;7294:20;:47::i;:::-;7372:71;7394:6;7372:71;;;;;;;;;;;;;;;;;:9;:17;7382:6;7372:17;;;;;;;;;;;;;;;;:21;;:71;;;;;:::i;:::-;7352:9;:17;7362:6;7352:17;;;;;;;;;;;;;;;:91;;;;7476:32;7501:6;7476:9;:20;7486:9;7476:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;7453:9;:20;7463:9;7453:20;;;;;;;;;;;;;;;:55;;;;7540:9;7523:35;;7532:6;7523:35;;;7551:6;7523:35;;;;;;;;;;;;;;;;;;7035:530;;;:::o;1746:187:5:-;1832:7;1864:1;1859;:6;;1867:12;1851:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1890:9;1906:1;1902;:5;1890:17;;1925:1;1918:8;;;1746:187;;;;;:::o;874:176::-;932:7;951:9;967:1;963;:5;951:17;;991:1;986;:6;;978:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1042:1;1035:8;;;874:176;;;;:::o;7835:370:9:-;7937:1;7918:21;;:7;:21;;;;7910:65;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7986:49;8015:1;8019:7;8028:6;7986:20;:49::i;:::-;8061:24;8078:6;8061:12;;:16;;:24;;;;:::i;:::-;8046:12;:39;;;;8116:30;8139:6;8116:9;:18;8126:7;8116:18;;;;;;;;;;;;;;;;:22;;:30;;;;:::i;:::-;8095:9;:18;8105:7;8095:18;;;;;;;;;;;;;;;:51;;;;8182:7;8161:37;;8178:1;8161:37;;;8191:6;8161:37;;;;;;;;;;;;;;;;;;7835:370;;:::o;8524:410::-;8626:1;8607:21;;:7;:21;;;;8599:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8677:49;8698:7;8715:1;8719:6;8677:20;:49::i;:::-;8758:68;8781:6;8758:68;;;;;;;;;;;;;;;;;:9;:18;8768:7;8758:18;;;;;;;;;;;;;;;;:22;;:68;;;;;:::i;:::-;8737:9;:18;8747:7;8737:18;;;;;;;;;;;;;;;:89;;;;8851:24;8868:6;8851:12;;:16;;:24;;;;:::i;:::-;8836:12;:39;;;;8916:1;8890:37;;8899:7;8890:37;;;8920:6;8890:37;;;;;;;;;;;;;;;;;;8524:410;;:::o;10697:92::-;;;;:::o;1321:134:5:-;1379:7;1405:43;1409:1;1412;1405:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1398:50;;1321:134;;;;:::o",
  "source": "// SPDX-License-Identifier: LGPL-3.0-or-later\r\n\r\npragma solidity >=0.6.0;\r\n\r\nimport { Address } from \"@openzeppelin/contracts/utils/Address.sol\";\r\nimport { ERC20 } from \"@openzeppelin/contracts/token/ERC20/ERC20.sol\";\r\nimport { IERC1155 } from \"@openzeppelin/contracts/token/ERC1155/IERC1155.sol\";\r\nimport { ERC1155Receiver } from \"@openzeppelin/contracts/token/ERC1155/ERC1155Receiver.sol\";\r\n\r\ncontract Wrapped1155Metadata {\r\n    // workaround which also arranges first storage slots of Wrapped1155\r\n    Wrapped1155Factory public factory;\r\n    IERC1155 public multiToken;\r\n    uint256 public tokenId;\r\n    \r\n    modifier onlyFactory() {\r\n        require(msg.sender == address(factory), \"Wrapped1155: only factory allowed to perform operation\");\r\n        _;\r\n    }\r\n}\r\n\r\ncontract Wrapped1155 is Wrapped1155Metadata, ERC20 {\r\n    constructor() public ERC20(\"Wrapped ERC-1155 Implementation\", \"WMT*\") {}\r\n\r\n    function mint(address account, uint256 amount) external onlyFactory {\r\n        _mint(account, amount);\r\n    }\r\n    \r\n    function burn(address account, uint256 amount) external onlyFactory {\r\n        _burn(account, amount);\r\n    }\r\n}\r\n\r\ncontract Wrapped1155Factory is ERC1155Receiver {\r\n    using Address for address;\r\n\r\n    Wrapped1155 public erc20Implementation;\r\n\r\n    constructor() public {\r\n        erc20Implementation = new Wrapped1155();\r\n    }\r\n\r\n    function onERC1155Received(\r\n        address operator,\r\n        address /* from */,\r\n        uint256 id,\r\n        uint256 value,\r\n        bytes calldata data\r\n    )\r\n        external\r\n        override\r\n        returns (bytes4)\r\n    {\r\n        address recipient = data.length > 0 ? \r\n            abi.decode(data, (address)) :\r\n            operator;\r\n\r\n        Wrapped1155 wrapped1155 = requireWrapped1155(IERC1155(msg.sender), id);\r\n        wrapped1155.mint(recipient, value);\r\n\r\n        return this.onERC1155Received.selector;\r\n    }\r\n\r\n    function onERC1155BatchReceived(\r\n        address operator,\r\n        address /* from */,\r\n        uint256[] calldata ids,\r\n        uint256[] calldata values,\r\n        bytes calldata data\r\n    )\r\n        external\r\n        override\r\n        returns (bytes4)\r\n    {\r\n        address recipient = data.length > 0 ? \r\n            abi.decode(data, (address)) :\r\n            operator;\r\n\r\n        for (uint i = 0; i < ids.length; i++) {\r\n            requireWrapped1155(IERC1155(msg.sender), ids[i]).mint(recipient, values[i]);\r\n        }\r\n\r\n        return this.onERC1155BatchReceived.selector;\r\n    }\r\n\r\n    function unwrap(\r\n        IERC1155 multiToken,\r\n        uint256 tokenId,\r\n        uint256 amount,\r\n        address recipient,\r\n        bytes calldata data\r\n    )\r\n        external\r\n    {\r\n        getWrapped1155(multiToken, tokenId).burn(msg.sender, amount);\r\n        multiToken.safeTransferFrom(address(this), recipient, tokenId, amount, data);\r\n    }\r\n\r\n    function batchUnwrap(\r\n        IERC1155 multiToken,\r\n        uint256[] calldata tokenIds,\r\n        uint256[] calldata amounts,\r\n        address recipient,\r\n        bytes calldata data\r\n    )\r\n        external\r\n    {\r\n        require(tokenIds.length == amounts.length, \"Wrapped1155Factory: mismatched input arrays\");\r\n        for (uint i = 0; i < tokenIds.length; i++) {\r\n            getWrapped1155(multiToken, tokenIds[i]).burn(msg.sender, amounts[i]);\r\n        }\r\n        multiToken.safeBatchTransferFrom(address(this), recipient, tokenIds, amounts, data);\r\n    }\r\n\r\n    function getWrapped1155DeployBytecode(IERC1155 multiToken, uint256 tokenId)\r\n        public\r\n        view\r\n        returns (bytes memory)\r\n    {\r\n        return abi.encodePacked(\r\n            // assign factory\r\n            hex\"73\",\r\n            this,\r\n            hex\"3d55\",\r\n            \r\n            // assign multiToken\r\n            hex\"73\",\r\n            multiToken,\r\n            hex\"600155\",\r\n            \r\n            // assign tokenId\r\n            hex\"7f\",\r\n            tokenId,\r\n            hex\"600255\",\r\n            \r\n            // assign name\r\n            hex\"7f\",\r\n            \"Wrapped ERC-1155\", uint128(32),\r\n            hex\"600655\",\r\n            \r\n            // assign symbol\r\n            hex\"7f\",\r\n            \"WMT\", uint232(6),\r\n            hex\"600755\",\r\n            \r\n            // assign decimals\r\n            hex\"60\",\r\n            uint8(18),\r\n            hex\"600855\",\r\n\r\n            // push 44 (length of runtime)\r\n            hex\"60\", uint8(44),\r\n            // load free memory pointer\r\n            hex\"604051\",\r\n\r\n            // dup runtime length\r\n            hex\"81\",\r\n            // push offset in this calldata to runtime object,\r\n            hex\"60\", uint8(171),\r\n            // dup free memory pointer\r\n            hex\"82\"\r\n            \r\n            // codecopy runtime to memory and return\r\n            hex\"39f3\",\r\n\r\n            // greetz 0age for More-Minimal Proxy runtime bytecode:\r\n            hex\"3d3d3d3d363d3d37363d73\",\r\n            address(erc20Implementation),\r\n            hex\"5af43d3d93803e602a57fd5bf3\"\r\n        );\r\n    }\r\n    \r\n    function getWrapped1155(IERC1155 multiToken, uint256 tokenId)\r\n        public\r\n        view\r\n        returns (Wrapped1155)\r\n    {\r\n        return Wrapped1155(address(uint256(keccak256(abi.encodePacked(\r\n            uint8(0xff),\r\n            this,\r\n            uint256(1155),\r\n            keccak256(getWrapped1155DeployBytecode(multiToken, tokenId))\r\n        )))));\r\n    }\r\n\r\n    event Wrapped1155Creation(\r\n        IERC1155 indexed multiToken,\r\n        uint256 indexed tokenId,\r\n        Wrapped1155 indexed wrappedToken\r\n    );\r\n\r\n    function requireWrapped1155(IERC1155 multiToken, uint256 tokenId)\r\n        public\r\n        returns (Wrapped1155)\r\n    {\r\n        bytes memory deployBytecode = getWrapped1155DeployBytecode(multiToken, tokenId);\r\n\r\n        address wrapped1155Address = address(uint256(keccak256(abi.encodePacked(\r\n            uint8(0xff),\r\n            this,\r\n            uint256(1155),\r\n            keccak256(deployBytecode)\r\n        ))));\r\n\r\n        if (!wrapped1155Address.isContract()) {\r\n            address addr;\r\n            assembly {\r\n              addr := create2(0, add(deployBytecode, 0x20), mload(deployBytecode), 1155)\r\n            }\r\n            require(wrapped1155Address == addr, \"Wrapped1155Factory: failed to deploy\");\r\n\r\n            emit Wrapped1155Creation(\r\n                multiToken,\r\n                tokenId,\r\n                Wrapped1155(wrapped1155Address)\r\n            );\r\n        }\r\n\r\n        return Wrapped1155(wrapped1155Address);\r\n    }\r\n}\r\n",
  "sourcePath": "C:/Users/Alan/Documents/GitHub/1155-to-20/contracts/Wrapped1155Factory.sol",
  "ast": {
    "absolutePath": "/C/Users/Alan/Documents/GitHub/1155-to-20/contracts/Wrapped1155Factory.sol",
    "exportedSymbols": {
      "Wrapped1155": [
        85
      ],
      "Wrapped1155Factory": [
        508
      ],
      "Wrapped1155Metadata": [
        42
      ]
    },
    "id": 509,
    "license": "LGPL-3.0-or-later",
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 12,
        "literals": [
          "solidity",
          ">=",
          "0.6",
          ".0"
        ],
        "nodeType": "PragmaDirective",
        "src": "49:24:1"
      },
      {
        "absolutePath": "@openzeppelin/contracts/utils/Address.sol",
        "file": "@openzeppelin/contracts/utils/Address.sol",
        "id": 14,
        "nodeType": "ImportDirective",
        "scope": 509,
        "sourceUnit": 1777,
        "src": "77:68:1",
        "symbolAliases": [
          {
            "foreign": {
              "argumentTypes": null,
              "id": 13,
              "name": "Address",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": null,
              "src": "86:7:1",
              "typeDescriptions": {
                "typeIdentifier": null,
                "typeString": null
              }
            },
            "local": null
          }
        ],
        "unitAlias": ""
      },
      {
        "absolutePath": "@openzeppelin/contracts/token/ERC20/ERC20.sol",
        "file": "@openzeppelin/contracts/token/ERC20/ERC20.sol",
        "id": 16,
        "nodeType": "ImportDirective",
        "scope": 509,
        "sourceUnit": 1495,
        "src": "147:70:1",
        "symbolAliases": [
          {
            "foreign": {
              "argumentTypes": null,
              "id": 15,
              "name": "ERC20",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": null,
              "src": "156:5:1",
              "typeDescriptions": {
                "typeIdentifier": null,
                "typeString": null
              }
            },
            "local": null
          }
        ],
        "unitAlias": ""
      },
      {
        "absolutePath": "@openzeppelin/contracts/token/ERC1155/IERC1155.sol",
        "file": "@openzeppelin/contracts/token/ERC1155/IERC1155.sol",
        "id": 18,
        "nodeType": "ImportDirective",
        "scope": 509,
        "sourceUnit": 947,
        "src": "219:78:1",
        "symbolAliases": [
          {
            "foreign": {
              "argumentTypes": null,
              "id": 17,
              "name": "IERC1155",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": null,
              "src": "228:8:1",
              "typeDescriptions": {
                "typeIdentifier": null,
                "typeString": null
              }
            },
            "local": null
          }
        ],
        "unitAlias": ""
      },
      {
        "absolutePath": "@openzeppelin/contracts/token/ERC1155/ERC1155Receiver.sol",
        "file": "@openzeppelin/contracts/token/ERC1155/ERC1155Receiver.sol",
        "id": 20,
        "nodeType": "ImportDirective",
        "scope": 509,
        "sourceUnit": 825,
        "src": "299:92:1",
        "symbolAliases": [
          {
            "foreign": {
              "argumentTypes": null,
              "id": 19,
              "name": "ERC1155Receiver",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": null,
              "src": "308:15:1",
              "typeDescriptions": {
                "typeIdentifier": null,
                "typeString": null
              }
            },
            "local": null
          }
        ],
        "unitAlias": ""
      },
      {
        "abstract": false,
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 42,
        "linearizedBaseContracts": [
          42
        ],
        "name": "Wrapped1155Metadata",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": false,
            "functionSelector": "c45a0155",
            "id": 22,
            "mutability": "mutable",
            "name": "factory",
            "nodeType": "VariableDeclaration",
            "overrides": null,
            "scope": 42,
            "src": "505:33:1",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_contract$_Wrapped1155Factory_$508",
              "typeString": "contract Wrapped1155Factory"
            },
            "typeName": {
              "contractScope": null,
              "id": 21,
              "name": "Wrapped1155Factory",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 508,
              "src": "505:18:1",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_Wrapped1155Factory_$508",
                "typeString": "contract Wrapped1155Factory"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "functionSelector": "1904e5c9",
            "id": 24,
            "mutability": "mutable",
            "name": "multiToken",
            "nodeType": "VariableDeclaration",
            "overrides": null,
            "scope": 42,
            "src": "545:26:1",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_contract$_IERC1155_$946",
              "typeString": "contract IERC1155"
            },
            "typeName": {
              "contractScope": null,
              "id": 23,
              "name": "IERC1155",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 946,
              "src": "545:8:1",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_IERC1155_$946",
                "typeString": "contract IERC1155"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "functionSelector": "17d70f7c",
            "id": 26,
            "mutability": "mutable",
            "name": "tokenId",
            "nodeType": "VariableDeclaration",
            "overrides": null,
            "scope": 42,
            "src": "578:22:1",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 25,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "578:7:1",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 40,
              "nodeType": "Block",
              "src": "636:128:1",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 35,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 29,
                            "name": "msg",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": -15,
                            "src": "655:3:1",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_message",
                              "typeString": "msg"
                            }
                          },
                          "id": 30,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "sender",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "655:10:1",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address_payable",
                            "typeString": "address payable"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 33,
                              "name": "factory",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 22,
                              "src": "677:7:1",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_Wrapped1155Factory_$508",
                                "typeString": "contract Wrapped1155Factory"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_contract$_Wrapped1155Factory_$508",
                                "typeString": "contract Wrapped1155Factory"
                              }
                            ],
                            "id": 32,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "669:7:1",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_address_$",
                              "typeString": "type(address)"
                            },
                            "typeName": {
                              "id": 31,
                              "name": "address",
                              "nodeType": "ElementaryTypeName",
                              "src": "669:7:1",
                              "typeDescriptions": {
                                "typeIdentifier": null,
                                "typeString": null
                              }
                            }
                          },
                          "id": 34,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "669:16:1",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "655:30:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "57726170706564313135353a206f6e6c7920666163746f727920616c6c6f77656420746f20706572666f726d206f7065726174696f6e",
                        "id": 36,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "687:56:1",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_b826780e42127107c15ed55c8540079130aff51b9355a4225b59f12a03a0b081",
                          "typeString": "literal_string \"Wrapped1155: only factory allowed to perform operation\""
                        },
                        "value": "Wrapped1155: only factory allowed to perform operation"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_b826780e42127107c15ed55c8540079130aff51b9355a4225b59f12a03a0b081",
                          "typeString": "literal_string \"Wrapped1155: only factory allowed to perform operation\""
                        }
                      ],
                      "id": 28,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "647:7:1",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 37,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "647:97:1",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 38,
                  "nodeType": "ExpressionStatement",
                  "src": "647:97:1"
                },
                {
                  "id": 39,
                  "nodeType": "PlaceholderStatement",
                  "src": "755:1:1"
                }
              ]
            },
            "documentation": null,
            "id": 41,
            "name": "onlyFactory",
            "nodeType": "ModifierDefinition",
            "overrides": null,
            "parameters": {
              "id": 27,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "633:2:1"
            },
            "src": "613:151:1",
            "virtual": false,
            "visibility": "internal"
          }
        ],
        "scope": 509,
        "src": "395:372:1"
      },
      {
        "abstract": false,
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 43,
              "name": "Wrapped1155Metadata",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 42,
              "src": "795:19:1",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_Wrapped1155Metadata_$42",
                "typeString": "contract Wrapped1155Metadata"
              }
            },
            "id": 44,
            "nodeType": "InheritanceSpecifier",
            "src": "795:19:1"
          },
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 45,
              "name": "ERC20",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 1494,
              "src": "816:5:1",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_ERC20_$1494",
                "typeString": "contract ERC20"
              }
            },
            "id": 46,
            "nodeType": "InheritanceSpecifier",
            "src": "816:5:1"
          }
        ],
        "contractDependencies": [
          42,
          531,
          1494,
          1572
        ],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 85,
        "linearizedBaseContracts": [
          85,
          1494,
          1572,
          531,
          42
        ],
        "name": "Wrapped1155",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "body": {
              "id": 53,
              "nodeType": "Block",
              "src": "899:2:1",
              "statements": []
            },
            "documentation": null,
            "id": 54,
            "implemented": true,
            "kind": "constructor",
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "hexValue": "57726170706564204552432d3131353520496d706c656d656e746174696f6e",
                    "id": 49,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "string",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "856:33:1",
                    "subdenomination": null,
                    "typeDescriptions": {
                      "typeIdentifier": "t_stringliteral_0d72d899212f801a62b6d4bc1985f4833b9426e12014c9e4f12564e38287a8ce",
                      "typeString": "literal_string \"Wrapped ERC-1155 Implementation\""
                    },
                    "value": "Wrapped ERC-1155 Implementation"
                  },
                  {
                    "argumentTypes": null,
                    "hexValue": "574d542a",
                    "id": 50,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "string",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "891:6:1",
                    "subdenomination": null,
                    "typeDescriptions": {
                      "typeIdentifier": "t_stringliteral_3f9d58702c7524bfaf2e581cd9b5368faad7a1f28a1021924f2891c2d45c36af",
                      "typeString": "literal_string \"WMT*\""
                    },
                    "value": "WMT*"
                  }
                ],
                "id": 51,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 48,
                  "name": "ERC20",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 1494,
                  "src": "850:5:1",
                  "typeDescriptions": {
                    "typeIdentifier": "t_type$_t_contract$_ERC20_$1494_$",
                    "typeString": "type(contract ERC20)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "850:48:1"
              }
            ],
            "name": "",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 47,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "840:2:1"
            },
            "returnParameters": {
              "id": 52,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "899:0:1"
            },
            "scope": 85,
            "src": "829:72:1",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "body": {
              "id": 68,
              "nodeType": "Block",
              "src": "977:41:1",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 64,
                        "name": "account",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 56,
                        "src": "994:7:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 65,
                        "name": "amount",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 58,
                        "src": "1003:6:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 63,
                      "name": "_mint",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1370,
                      "src": "988:5:1",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (address,uint256)"
                      }
                    },
                    "id": 66,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "988:22:1",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 67,
                  "nodeType": "ExpressionStatement",
                  "src": "988:22:1"
                }
              ]
            },
            "documentation": null,
            "functionSelector": "40c10f19",
            "id": 69,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": null,
                "id": 61,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 60,
                  "name": "onlyFactory",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 41,
                  "src": "965:11:1",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "965:11:1"
              }
            ],
            "name": "mint",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 59,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 56,
                  "mutability": "mutable",
                  "name": "account",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 69,
                  "src": "923:15:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 55,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "923:7:1",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 58,
                  "mutability": "mutable",
                  "name": "amount",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 69,
                  "src": "940:14:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 57,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "940:7:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "922:33:1"
            },
            "returnParameters": {
              "id": 62,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "977:0:1"
            },
            "scope": 85,
            "src": "909:109:1",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": {
              "id": 83,
              "nodeType": "Block",
              "src": "1098:41:1",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 79,
                        "name": "account",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 71,
                        "src": "1115:7:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 80,
                        "name": "amount",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 73,
                        "src": "1124:6:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 78,
                      "name": "_burn",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1426,
                      "src": "1109:5:1",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (address,uint256)"
                      }
                    },
                    "id": 81,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1109:22:1",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 82,
                  "nodeType": "ExpressionStatement",
                  "src": "1109:22:1"
                }
              ]
            },
            "documentation": null,
            "functionSelector": "9dc29fac",
            "id": 84,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": null,
                "id": 76,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 75,
                  "name": "onlyFactory",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 41,
                  "src": "1086:11:1",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "1086:11:1"
              }
            ],
            "name": "burn",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 74,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 71,
                  "mutability": "mutable",
                  "name": "account",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 84,
                  "src": "1044:15:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 70,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1044:7:1",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 73,
                  "mutability": "mutable",
                  "name": "amount",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 84,
                  "src": "1061:14:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 72,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1061:7:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1043:33:1"
            },
            "returnParameters": {
              "id": 77,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1098:0:1"
            },
            "scope": 85,
            "src": "1030:109:1",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          }
        ],
        "scope": 509,
        "src": "771:371:1"
      },
      {
        "abstract": false,
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 86,
              "name": "ERC1155Receiver",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 824,
              "src": "1177:15:1",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_ERC1155Receiver_$824",
                "typeString": "contract ERC1155Receiver"
              }
            },
            "id": 87,
            "nodeType": "InheritanceSpecifier",
            "src": "1177:15:1"
          }
        ],
        "contractDependencies": [
          85,
          588,
          600,
          824,
          987
        ],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 508,
        "linearizedBaseContracts": [
          508,
          824,
          987,
          588,
          600
        ],
        "name": "Wrapped1155Factory",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "id": 90,
            "libraryName": {
              "contractScope": null,
              "id": 88,
              "name": "Address",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 1776,
              "src": "1206:7:1",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_Address_$1776",
                "typeString": "library Address"
              }
            },
            "nodeType": "UsingForDirective",
            "src": "1200:26:1",
            "typeName": {
              "id": 89,
              "name": "address",
              "nodeType": "ElementaryTypeName",
              "src": "1218:7:1",
              "stateMutability": "nonpayable",
              "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
              }
            }
          },
          {
            "constant": false,
            "functionSelector": "901be041",
            "id": 92,
            "mutability": "mutable",
            "name": "erc20Implementation",
            "nodeType": "VariableDeclaration",
            "overrides": null,
            "scope": 508,
            "src": "1234:38:1",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_contract$_Wrapped1155_$85",
              "typeString": "contract Wrapped1155"
            },
            "typeName": {
              "contractScope": null,
              "id": 91,
              "name": "Wrapped1155",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 85,
              "src": "1234:11:1",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_Wrapped1155_$85",
                "typeString": "contract Wrapped1155"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 101,
              "nodeType": "Block",
              "src": "1302:58:1",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 99,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 95,
                      "name": "erc20Implementation",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 92,
                      "src": "1313:19:1",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Wrapped1155_$85",
                        "typeString": "contract Wrapped1155"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [],
                      "expression": {
                        "argumentTypes": [],
                        "id": 97,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "NewExpression",
                        "src": "1335:15:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_creation_nonpayable$__$returns$_t_contract$_Wrapped1155_$85_$",
                          "typeString": "function () returns (contract Wrapped1155)"
                        },
                        "typeName": {
                          "contractScope": null,
                          "id": 96,
                          "name": "Wrapped1155",
                          "nodeType": "UserDefinedTypeName",
                          "referencedDeclaration": 85,
                          "src": "1339:11:1",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_Wrapped1155_$85",
                            "typeString": "contract Wrapped1155"
                          }
                        }
                      },
                      "id": 98,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "1335:17:1",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Wrapped1155_$85",
                        "typeString": "contract Wrapped1155"
                      }
                    },
                    "src": "1313:39:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Wrapped1155_$85",
                      "typeString": "contract Wrapped1155"
                    }
                  },
                  "id": 100,
                  "nodeType": "ExpressionStatement",
                  "src": "1313:39:1"
                }
              ]
            },
            "documentation": null,
            "id": 102,
            "implemented": true,
            "kind": "constructor",
            "modifiers": [],
            "name": "",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 93,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1292:2:1"
            },
            "returnParameters": {
              "id": 94,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1302:0:1"
            },
            "scope": 508,
            "src": "1281:79:1",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              968
            ],
            "body": {
              "id": 155,
              "nodeType": "Block",
              "src": "1600:301:1",
              "statements": [
                {
                  "assignments": [
                    119
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 119,
                      "mutability": "mutable",
                      "name": "recipient",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 155,
                      "src": "1611:17:1",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 118,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "1611:7:1",
                        "stateMutability": "nonpayable",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 133,
                  "initialValue": {
                    "argumentTypes": null,
                    "condition": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 123,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 120,
                          "name": "data",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 112,
                          "src": "1631:4:1",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes_calldata_ptr",
                            "typeString": "bytes calldata"
                          }
                        },
                        "id": 121,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "length",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "1631:11:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": ">",
                      "rightExpression": {
                        "argumentTypes": null,
                        "hexValue": "30",
                        "id": 122,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1645:1:1",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      "src": "1631:15:1",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "falseExpression": {
                      "argumentTypes": null,
                      "id": 131,
                      "name": "operator",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 104,
                      "src": "1706:8:1",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "id": 132,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "Conditional",
                    "src": "1631:83:1",
                    "trueExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 126,
                          "name": "data",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 112,
                          "src": "1674:4:1",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes_calldata_ptr",
                            "typeString": "bytes calldata"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "components": [
                            {
                              "argumentTypes": null,
                              "id": 128,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "1681:7:1",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_address_$",
                                "typeString": "type(address)"
                              },
                              "typeName": {
                                "id": 127,
                                "name": "address",
                                "nodeType": "ElementaryTypeName",
                                "src": "1681:7:1",
                                "typeDescriptions": {
                                  "typeIdentifier": null,
                                  "typeString": null
                                }
                              }
                            }
                          ],
                          "id": 129,
                          "isConstant": false,
                          "isInlineArray": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "TupleExpression",
                          "src": "1680:9:1",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes_calldata_ptr",
                            "typeString": "bytes calldata"
                          },
                          {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "id": 124,
                          "name": "abi",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": -1,
                          "src": "1663:3:1",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_abi",
                            "typeString": "abi"
                          }
                        },
                        "id": 125,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "memberName": "decode",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "1663:10:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_abidecode_pure$__$returns$__$",
                          "typeString": "function () pure"
                        }
                      },
                      "id": 130,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "1663:27:1",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_address_payable",
                        "typeString": "address payable"
                      }
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1611:103:1"
                },
                {
                  "assignments": [
                    135
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 135,
                      "mutability": "mutable",
                      "name": "wrapped1155",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 155,
                      "src": "1727:23:1",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Wrapped1155_$85",
                        "typeString": "contract Wrapped1155"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 134,
                        "name": "Wrapped1155",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 85,
                        "src": "1727:11:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Wrapped1155_$85",
                          "typeString": "contract Wrapped1155"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 143,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 138,
                              "name": "msg",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": -15,
                              "src": "1781:3:1",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_message",
                                "typeString": "msg"
                              }
                            },
                            "id": 139,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "sender",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "1781:10:1",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            }
                          ],
                          "id": 137,
                          "name": "IERC1155",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 946,
                          "src": "1772:8:1",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_IERC1155_$946_$",
                            "typeString": "type(contract IERC1155)"
                          }
                        },
                        "id": 140,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1772:20:1",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IERC1155_$946",
                          "typeString": "contract IERC1155"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 141,
                        "name": "id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 108,
                        "src": "1794:2:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_IERC1155_$946",
                          "typeString": "contract IERC1155"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 136,
                      "name": "requireWrapped1155",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 507,
                      "src": "1753:18:1",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC1155_$946_$_t_uint256_$returns$_t_contract$_Wrapped1155_$85_$",
                        "typeString": "function (contract IERC1155,uint256) returns (contract Wrapped1155)"
                      }
                    },
                    "id": 142,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1753:44:1",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Wrapped1155_$85",
                      "typeString": "contract Wrapped1155"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1727:70:1"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 147,
                        "name": "recipient",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 119,
                        "src": "1825:9:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 148,
                        "name": "value",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 110,
                        "src": "1836:5:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 144,
                        "name": "wrapped1155",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 135,
                        "src": "1808:11:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Wrapped1155_$85",
                          "typeString": "contract Wrapped1155"
                        }
                      },
                      "id": 146,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "mint",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 69,
                      "src": "1808:16:1",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (address,uint256) external"
                      }
                    },
                    "id": 149,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1808:34:1",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 150,
                  "nodeType": "ExpressionStatement",
                  "src": "1808:34:1"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 151,
                        "name": "this",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": -28,
                        "src": "1862:4:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Wrapped1155Factory_$508",
                          "typeString": "contract Wrapped1155Factory"
                        }
                      },
                      "id": 152,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "onERC1155Received",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 156,
                      "src": "1862:22:1",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes4_$",
                        "typeString": "function (address,address,uint256,uint256,bytes memory) external returns (bytes4)"
                      }
                    },
                    "id": 153,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "memberName": "selector",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": null,
                    "src": "1862:31:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes4",
                      "typeString": "bytes4"
                    }
                  },
                  "functionReturnParameters": 117,
                  "id": 154,
                  "nodeType": "Return",
                  "src": "1855:38:1"
                }
              ]
            },
            "documentation": null,
            "functionSelector": "f23a6e61",
            "id": 156,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "onERC1155Received",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 114,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "1560:8:1"
            },
            "parameters": {
              "id": 113,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 104,
                  "mutability": "mutable",
                  "name": "operator",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 156,
                  "src": "1405:16:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 103,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1405:7:1",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 106,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 156,
                  "src": "1432:7:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 105,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1432:7:1",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 108,
                  "mutability": "mutable",
                  "name": "id",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 156,
                  "src": "1461:10:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 107,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1461:7:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 110,
                  "mutability": "mutable",
                  "name": "value",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 156,
                  "src": "1482:13:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 109,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1482:7:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 112,
                  "mutability": "mutable",
                  "name": "data",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 156,
                  "src": "1506:19:1",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_calldata_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 111,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "1506:5:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1394:138:1"
            },
            "returnParameters": {
              "id": 117,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 116,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 156,
                  "src": "1587:6:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes4",
                    "typeString": "bytes4"
                  },
                  "typeName": {
                    "id": 115,
                    "name": "bytes4",
                    "nodeType": "ElementaryTypeName",
                    "src": "1587:6:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes4",
                      "typeString": "bytes4"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1586:8:1"
            },
            "scope": 508,
            "src": "1368:533:1",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              986
            ],
            "body": {
              "id": 223,
              "nodeType": "Block",
              "src": "2170:330:1",
              "statements": [
                {
                  "assignments": [
                    175
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 175,
                      "mutability": "mutable",
                      "name": "recipient",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 223,
                      "src": "2181:17:1",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 174,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "2181:7:1",
                        "stateMutability": "nonpayable",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 189,
                  "initialValue": {
                    "argumentTypes": null,
                    "condition": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 179,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 176,
                          "name": "data",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 168,
                          "src": "2201:4:1",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes_calldata_ptr",
                            "typeString": "bytes calldata"
                          }
                        },
                        "id": 177,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "length",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "2201:11:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": ">",
                      "rightExpression": {
                        "argumentTypes": null,
                        "hexValue": "30",
                        "id": 178,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2215:1:1",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      "src": "2201:15:1",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "falseExpression": {
                      "argumentTypes": null,
                      "id": 187,
                      "name": "operator",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 158,
                      "src": "2276:8:1",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "id": 188,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "Conditional",
                    "src": "2201:83:1",
                    "trueExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 182,
                          "name": "data",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 168,
                          "src": "2244:4:1",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes_calldata_ptr",
                            "typeString": "bytes calldata"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "components": [
                            {
                              "argumentTypes": null,
                              "id": 184,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "2251:7:1",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_address_$",
                                "typeString": "type(address)"
                              },
                              "typeName": {
                                "id": 183,
                                "name": "address",
                                "nodeType": "ElementaryTypeName",
                                "src": "2251:7:1",
                                "typeDescriptions": {
                                  "typeIdentifier": null,
                                  "typeString": null
                                }
                              }
                            }
                          ],
                          "id": 185,
                          "isConstant": false,
                          "isInlineArray": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "TupleExpression",
                          "src": "2250:9:1",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes_calldata_ptr",
                            "typeString": "bytes calldata"
                          },
                          {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "id": 180,
                          "name": "abi",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": -1,
                          "src": "2233:3:1",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_abi",
                            "typeString": "abi"
                          }
                        },
                        "id": 181,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "memberName": "decode",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "2233:10:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_abidecode_pure$__$returns$__$",
                          "typeString": "function () pure"
                        }
                      },
                      "id": 186,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "2233:27:1",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_address_payable",
                        "typeString": "address payable"
                      }
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2181:103:1"
                },
                {
                  "body": {
                    "id": 217,
                    "nodeType": "Block",
                    "src": "2335:102:1",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 211,
                              "name": "recipient",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 175,
                              "src": "2404:9:1",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 212,
                                "name": "values",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 166,
                                "src": "2415:6:1",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                  "typeString": "uint256[] calldata"
                                }
                              },
                              "id": 214,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 213,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 191,
                                "src": "2422:1:1",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "2415:9:1",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 203,
                                        "name": "msg",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": -15,
                                        "src": "2378:3:1",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_magic_message",
                                          "typeString": "msg"
                                        }
                                      },
                                      "id": 204,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "sender",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": null,
                                      "src": "2378:10:1",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_address_payable",
                                        "typeString": "address payable"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_address_payable",
                                        "typeString": "address payable"
                                      }
                                    ],
                                    "id": 202,
                                    "name": "IERC1155",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 946,
                                    "src": "2369:8:1",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_contract$_IERC1155_$946_$",
                                      "typeString": "type(contract IERC1155)"
                                    }
                                  },
                                  "id": 205,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "typeConversion",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "2369:20:1",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_contract$_IERC1155_$946",
                                    "typeString": "contract IERC1155"
                                  }
                                },
                                {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "id": 206,
                                    "name": "ids",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 163,
                                    "src": "2391:3:1",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                      "typeString": "uint256[] calldata"
                                    }
                                  },
                                  "id": 208,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "id": 207,
                                    "name": "i",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 191,
                                    "src": "2395:1:1",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "2391:6:1",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_contract$_IERC1155_$946",
                                    "typeString": "contract IERC1155"
                                  },
                                  {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                ],
                                "id": 201,
                                "name": "requireWrapped1155",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 507,
                                "src": "2350:18:1",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC1155_$946_$_t_uint256_$returns$_t_contract$_Wrapped1155_$85_$",
                                  "typeString": "function (contract IERC1155,uint256) returns (contract Wrapped1155)"
                                }
                              },
                              "id": 209,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "2350:48:1",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_Wrapped1155_$85",
                                "typeString": "contract Wrapped1155"
                              }
                            },
                            "id": 210,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "mint",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 69,
                            "src": "2350:53:1",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$",
                              "typeString": "function (address,uint256) external"
                            }
                          },
                          "id": 215,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "2350:75:1",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 216,
                        "nodeType": "ExpressionStatement",
                        "src": "2350:75:1"
                      }
                    ]
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 197,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 194,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 191,
                      "src": "2314:1:1",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 195,
                        "name": "ids",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 163,
                        "src": "2318:3:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[] calldata"
                        }
                      },
                      "id": 196,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "2318:10:1",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "2314:14:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 218,
                  "initializationExpression": {
                    "assignments": [
                      191
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 191,
                        "mutability": "mutable",
                        "name": "i",
                        "nodeType": "VariableDeclaration",
                        "overrides": null,
                        "scope": 218,
                        "src": "2302:6:1",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 190,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "2302:4:1",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "id": 193,
                    "initialValue": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 192,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "2311:1:1",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "2302:10:1"
                  },
                  "loopExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 199,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "2330:3:1",
                      "subExpression": {
                        "argumentTypes": null,
                        "id": 198,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 191,
                        "src": "2330:1:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 200,
                    "nodeType": "ExpressionStatement",
                    "src": "2330:3:1"
                  },
                  "nodeType": "ForStatement",
                  "src": "2297:140:1"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 219,
                        "name": "this",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": -28,
                        "src": "2456:4:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Wrapped1155Factory_$508",
                          "typeString": "contract Wrapped1155Factory"
                        }
                      },
                      "id": 220,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "onERC1155BatchReceived",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 224,
                      "src": "2456:27:1",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bytes4_$",
                        "typeString": "function (address,address,uint256[] memory,uint256[] memory,bytes memory) external returns (bytes4)"
                      }
                    },
                    "id": 221,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "memberName": "selector",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": null,
                    "src": "2456:36:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes4",
                      "typeString": "bytes4"
                    }
                  },
                  "functionReturnParameters": 173,
                  "id": 222,
                  "nodeType": "Return",
                  "src": "2449:43:1"
                }
              ]
            },
            "documentation": null,
            "functionSelector": "bc197c81",
            "id": 224,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "onERC1155BatchReceived",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 170,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "2130:8:1"
            },
            "parameters": {
              "id": 169,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 158,
                  "mutability": "mutable",
                  "name": "operator",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 224,
                  "src": "1951:16:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 157,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1951:7:1",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 160,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 224,
                  "src": "1978:7:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 159,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1978:7:1",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 163,
                  "mutability": "mutable",
                  "name": "ids",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 224,
                  "src": "2007:22:1",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 161,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "2007:7:1",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 162,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "2007:9:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 166,
                  "mutability": "mutable",
                  "name": "values",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 224,
                  "src": "2040:25:1",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 164,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "2040:7:1",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 165,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "2040:9:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 168,
                  "mutability": "mutable",
                  "name": "data",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 224,
                  "src": "2076:19:1",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_calldata_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 167,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "2076:5:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1940:162:1"
            },
            "returnParameters": {
              "id": 173,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 172,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 224,
                  "src": "2157:6:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes4",
                    "typeString": "bytes4"
                  },
                  "typeName": {
                    "id": 171,
                    "name": "bytes4",
                    "nodeType": "ElementaryTypeName",
                    "src": "2157:6:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes4",
                      "typeString": "bytes4"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2156:8:1"
            },
            "scope": 508,
            "src": "1909:591:1",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": {
              "id": 260,
              "nodeType": "Block",
              "src": "2693:166:1",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 242,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": -15,
                          "src": "2745:3:1",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 243,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "2745:10:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 244,
                        "name": "amount",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 230,
                        "src": "2757:6:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 238,
                            "name": "multiToken",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 226,
                            "src": "2719:10:1",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_IERC1155_$946",
                              "typeString": "contract IERC1155"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 239,
                            "name": "tokenId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 228,
                            "src": "2731:7:1",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_contract$_IERC1155_$946",
                              "typeString": "contract IERC1155"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 237,
                          "name": "getWrapped1155",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 427,
                          "src": "2704:14:1",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_contract$_IERC1155_$946_$_t_uint256_$returns$_t_contract$_Wrapped1155_$85_$",
                            "typeString": "function (contract IERC1155,uint256) view returns (contract Wrapped1155)"
                          }
                        },
                        "id": 240,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2704:35:1",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Wrapped1155_$85",
                          "typeString": "contract Wrapped1155"
                        }
                      },
                      "id": 241,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "burn",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 84,
                      "src": "2704:40:1",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (address,uint256) external"
                      }
                    },
                    "id": 245,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2704:60:1",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 246,
                  "nodeType": "ExpressionStatement",
                  "src": "2704:60:1"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 252,
                            "name": "this",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": -28,
                            "src": "2811:4:1",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_Wrapped1155Factory_$508",
                              "typeString": "contract Wrapped1155Factory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_contract$_Wrapped1155Factory_$508",
                              "typeString": "contract Wrapped1155Factory"
                            }
                          ],
                          "id": 251,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "2803:7:1",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": {
                            "id": 250,
                            "name": "address",
                            "nodeType": "ElementaryTypeName",
                            "src": "2803:7:1",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 253,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2803:13:1",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 254,
                        "name": "recipient",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 232,
                        "src": "2818:9:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 255,
                        "name": "tokenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 228,
                        "src": "2829:7:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 256,
                        "name": "amount",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 230,
                        "src": "2838:6:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 257,
                        "name": "data",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 234,
                        "src": "2846:4:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_calldata_ptr",
                          "typeString": "bytes calldata"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_bytes_calldata_ptr",
                          "typeString": "bytes calldata"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 247,
                        "name": "multiToken",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 226,
                        "src": "2775:10:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IERC1155_$946",
                          "typeString": "contract IERC1155"
                        }
                      },
                      "id": 249,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "safeTransferFrom",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 929,
                      "src": "2775:27:1",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$",
                        "typeString": "function (address,address,uint256,uint256,bytes memory) external"
                      }
                    },
                    "id": 258,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2775:76:1",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 259,
                  "nodeType": "ExpressionStatement",
                  "src": "2775:76:1"
                }
              ]
            },
            "documentation": null,
            "functionSelector": "52aecb24",
            "id": 261,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "unwrap",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 235,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 226,
                  "mutability": "mutable",
                  "name": "multiToken",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 261,
                  "src": "2534:19:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_IERC1155_$946",
                    "typeString": "contract IERC1155"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 225,
                    "name": "IERC1155",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 946,
                    "src": "2534:8:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IERC1155_$946",
                      "typeString": "contract IERC1155"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 228,
                  "mutability": "mutable",
                  "name": "tokenId",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 261,
                  "src": "2564:15:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 227,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2564:7:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 230,
                  "mutability": "mutable",
                  "name": "amount",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 261,
                  "src": "2590:14:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 229,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2590:7:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 232,
                  "mutability": "mutable",
                  "name": "recipient",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 261,
                  "src": "2615:17:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 231,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2615:7:1",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 234,
                  "mutability": "mutable",
                  "name": "data",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 261,
                  "src": "2643:19:1",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_calldata_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 233,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "2643:5:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2523:146:1"
            },
            "returnParameters": {
              "id": 236,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2693:0:1"
            },
            "scope": 508,
            "src": "2508:351:1",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": {
              "id": 325,
              "nodeType": "Block",
              "src": "3081:350:1",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 281,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 277,
                            "name": "tokenIds",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 266,
                            "src": "3100:8:1",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                              "typeString": "uint256[] calldata"
                            }
                          },
                          "id": 278,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "3100:15:1",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 279,
                            "name": "amounts",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 269,
                            "src": "3119:7:1",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                              "typeString": "uint256[] calldata"
                            }
                          },
                          "id": 280,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "3119:14:1",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "3100:33:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "5772617070656431313535466163746f72793a206d69736d61746368656420696e70757420617272617973",
                        "id": 282,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "3135:45:1",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_1cd326fa2e1309de5e640da762e07f17d596b7ab52ba27a7327d48ba2eaab617",
                          "typeString": "literal_string \"Wrapped1155Factory: mismatched input arrays\""
                        },
                        "value": "Wrapped1155Factory: mismatched input arrays"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_1cd326fa2e1309de5e640da762e07f17d596b7ab52ba27a7327d48ba2eaab617",
                          "typeString": "literal_string \"Wrapped1155Factory: mismatched input arrays\""
                        }
                      ],
                      "id": 276,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "3092:7:1",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 283,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3092:89:1",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 284,
                  "nodeType": "ExpressionStatement",
                  "src": "3092:89:1"
                },
                {
                  "body": {
                    "id": 310,
                    "nodeType": "Block",
                    "src": "3235:95:1",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 303,
                                "name": "msg",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": -15,
                                "src": "3295:3:1",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_message",
                                  "typeString": "msg"
                                }
                              },
                              "id": 304,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "sender",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "3295:10:1",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address_payable",
                                "typeString": "address payable"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 305,
                                "name": "amounts",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 269,
                                "src": "3307:7:1",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                  "typeString": "uint256[] calldata"
                                }
                              },
                              "id": 307,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 306,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 286,
                                "src": "3315:1:1",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "3307:10:1",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address_payable",
                                "typeString": "address payable"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "id": 297,
                                  "name": "multiToken",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 263,
                                  "src": "3265:10:1",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_contract$_IERC1155_$946",
                                    "typeString": "contract IERC1155"
                                  }
                                },
                                {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "id": 298,
                                    "name": "tokenIds",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 266,
                                    "src": "3277:8:1",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                      "typeString": "uint256[] calldata"
                                    }
                                  },
                                  "id": 300,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "id": 299,
                                    "name": "i",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 286,
                                    "src": "3286:1:1",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "3277:11:1",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_contract$_IERC1155_$946",
                                    "typeString": "contract IERC1155"
                                  },
                                  {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                ],
                                "id": 296,
                                "name": "getWrapped1155",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 427,
                                "src": "3250:14:1",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_internal_view$_t_contract$_IERC1155_$946_$_t_uint256_$returns$_t_contract$_Wrapped1155_$85_$",
                                  "typeString": "function (contract IERC1155,uint256) view returns (contract Wrapped1155)"
                                }
                              },
                              "id": 301,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "3250:39:1",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_Wrapped1155_$85",
                                "typeString": "contract Wrapped1155"
                              }
                            },
                            "id": 302,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "burn",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 84,
                            "src": "3250:44:1",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$",
                              "typeString": "function (address,uint256) external"
                            }
                          },
                          "id": 308,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "3250:68:1",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 309,
                        "nodeType": "ExpressionStatement",
                        "src": "3250:68:1"
                      }
                    ]
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 292,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 289,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 286,
                      "src": "3209:1:1",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 290,
                        "name": "tokenIds",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 266,
                        "src": "3213:8:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[] calldata"
                        }
                      },
                      "id": 291,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "3213:15:1",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "3209:19:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 311,
                  "initializationExpression": {
                    "assignments": [
                      286
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 286,
                        "mutability": "mutable",
                        "name": "i",
                        "nodeType": "VariableDeclaration",
                        "overrides": null,
                        "scope": 311,
                        "src": "3197:6:1",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 285,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "3197:4:1",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "id": 288,
                    "initialValue": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 287,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "3206:1:1",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "3197:10:1"
                  },
                  "loopExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 294,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "3230:3:1",
                      "subExpression": {
                        "argumentTypes": null,
                        "id": 293,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 286,
                        "src": "3230:1:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 295,
                    "nodeType": "ExpressionStatement",
                    "src": "3230:3:1"
                  },
                  "nodeType": "ForStatement",
                  "src": "3192:138:1"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 317,
                            "name": "this",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": -28,
                            "src": "3381:4:1",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_Wrapped1155Factory_$508",
                              "typeString": "contract Wrapped1155Factory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_contract$_Wrapped1155Factory_$508",
                              "typeString": "contract Wrapped1155Factory"
                            }
                          ],
                          "id": 316,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "3373:7:1",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": {
                            "id": 315,
                            "name": "address",
                            "nodeType": "ElementaryTypeName",
                            "src": "3373:7:1",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 318,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3373:13:1",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 319,
                        "name": "recipient",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 271,
                        "src": "3388:9:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 320,
                        "name": "tokenIds",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 266,
                        "src": "3399:8:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[] calldata"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 321,
                        "name": "amounts",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 269,
                        "src": "3409:7:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[] calldata"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 322,
                        "name": "data",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 273,
                        "src": "3418:4:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_calldata_ptr",
                          "typeString": "bytes calldata"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[] calldata"
                        },
                        {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[] calldata"
                        },
                        {
                          "typeIdentifier": "t_bytes_calldata_ptr",
                          "typeString": "bytes calldata"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 312,
                        "name": "multiToken",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 263,
                        "src": "3340:10:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IERC1155_$946",
                          "typeString": "contract IERC1155"
                        }
                      },
                      "id": 314,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "safeBatchTransferFrom",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 945,
                      "src": "3340:32:1",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_bytes_memory_ptr_$returns$__$",
                        "typeString": "function (address,address,uint256[] memory,uint256[] memory,bytes memory) external"
                      }
                    },
                    "id": 323,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3340:83:1",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 324,
                  "nodeType": "ExpressionStatement",
                  "src": "3340:83:1"
                }
              ]
            },
            "documentation": null,
            "functionSelector": "a7eaa186",
            "id": 326,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "batchUnwrap",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 274,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 263,
                  "mutability": "mutable",
                  "name": "multiToken",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 326,
                  "src": "2898:19:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_IERC1155_$946",
                    "typeString": "contract IERC1155"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 262,
                    "name": "IERC1155",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 946,
                    "src": "2898:8:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IERC1155_$946",
                      "typeString": "contract IERC1155"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 266,
                  "mutability": "mutable",
                  "name": "tokenIds",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 326,
                  "src": "2928:27:1",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 264,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "2928:7:1",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 265,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "2928:9:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 269,
                  "mutability": "mutable",
                  "name": "amounts",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 326,
                  "src": "2966:26:1",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 267,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "2966:7:1",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 268,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "2966:9:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 271,
                  "mutability": "mutable",
                  "name": "recipient",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 326,
                  "src": "3003:17:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 270,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "3003:7:1",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 273,
                  "mutability": "mutable",
                  "name": "data",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 326,
                  "src": "3031:19:1",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_calldata_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 272,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "3031:5:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2887:170:1"
            },
            "returnParameters": {
              "id": 275,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3081:0:1"
            },
            "scope": 508,
            "src": "2867:564:1",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": {
              "id": 387,
              "nodeType": "Block",
              "src": "3582:1421:1",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "hexValue": "73",
                        "id": 337,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "3662:7:1",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_60a73bfb121a98fb6b52dfb29eb0defd76b60065b8cf07902baf28c167d24daf",
                          "typeString": "literal_string \"s\""
                        },
                        "value": "s"
                      },
                      {
                        "argumentTypes": null,
                        "id": 338,
                        "name": "this",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": -28,
                        "src": "3684:4:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Wrapped1155Factory_$508",
                          "typeString": "contract Wrapped1155Factory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "3d55",
                        "id": 339,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "3703:9:1",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_e056d20656c8e92c14547f34ac86191d8f835b17ef58bd4b4137f998d2578739",
                          "typeString": "literal_string \"=U\""
                        },
                        "value": "=U"
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "73",
                        "id": 340,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "3775:7:1",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_60a73bfb121a98fb6b52dfb29eb0defd76b60065b8cf07902baf28c167d24daf",
                          "typeString": "literal_string \"s\""
                        },
                        "value": "s"
                      },
                      {
                        "argumentTypes": null,
                        "id": 341,
                        "name": "multiToken",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 328,
                        "src": "3797:10:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IERC1155_$946",
                          "typeString": "contract IERC1155"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "600155",
                        "id": 342,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "3822:11:1",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_bd3951bc120a0a671c1029919ba31eebb21d5aeeafecaa7be3146a2102adb6d6",
                          "typeString": "literal_string \"`\u0001U\""
                        },
                        "value": "`\u0001U"
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "7f",
                        "id": 343,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "3893:7:1",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_5c179d3bfde4c521afc3d3944357db5ee881a69c237d67c9aa79aa7a027c40ea",
                          "typeString": "literal_string \"\""
                        },
                        "value": ""
                      },
                      {
                        "argumentTypes": null,
                        "id": 344,
                        "name": "tokenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 330,
                        "src": "3915:7:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "600255",
                        "id": 345,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "3937:11:1",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_858c42a566dcd12d5b86497f3ba606a5238800007d4524fc4f08a5834330a1be",
                          "typeString": "literal_string \"`\u0002U\""
                        },
                        "value": "`\u0002U"
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "7f",
                        "id": 346,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4005:7:1",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_5c179d3bfde4c521afc3d3944357db5ee881a69c237d67c9aa79aa7a027c40ea",
                          "typeString": "literal_string \"\""
                        },
                        "value": ""
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "57726170706564204552432d31313535",
                        "id": 347,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4027:18:1",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_ffa31b1677ba636016c2b472722b3f641ef395cff704852a8ba2c42c358411ba",
                          "typeString": "literal_string \"Wrapped ERC-1155\""
                        },
                        "value": "Wrapped ERC-1155"
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "hexValue": "3332",
                            "id": 350,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "4055:2:1",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_32_by_1",
                              "typeString": "int_const 32"
                            },
                            "value": "32"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_rational_32_by_1",
                              "typeString": "int_const 32"
                            }
                          ],
                          "id": 349,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "4047:7:1",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_uint128_$",
                            "typeString": "type(uint128)"
                          },
                          "typeName": {
                            "id": 348,
                            "name": "uint128",
                            "nodeType": "ElementaryTypeName",
                            "src": "4047:7:1",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 351,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4047:11:1",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint128",
                          "typeString": "uint128"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "600655",
                        "id": 352,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4073:11:1",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_3c37cd12a0040eeb6831ff4d3b56b183f14784c854952fcb67c46f16ae66e756",
                          "typeString": "literal_string \"`\u0006U\""
                        },
                        "value": "`\u0006U"
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "7f",
                        "id": 353,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4143:7:1",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_5c179d3bfde4c521afc3d3944357db5ee881a69c237d67c9aa79aa7a027c40ea",
                          "typeString": "literal_string \"\""
                        },
                        "value": ""
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "574d54",
                        "id": 354,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4165:5:1",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_57826992129f0edde0de7bee85dc588e7d55e90a81adeed9550195174d1c83bb",
                          "typeString": "literal_string \"WMT\""
                        },
                        "value": "WMT"
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "hexValue": "36",
                            "id": 357,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "4180:1:1",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_6_by_1",
                              "typeString": "int_const 6"
                            },
                            "value": "6"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_rational_6_by_1",
                              "typeString": "int_const 6"
                            }
                          ],
                          "id": 356,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "4172:7:1",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_uint232_$",
                            "typeString": "type(uint232)"
                          },
                          "typeName": {
                            "id": 355,
                            "name": "uint232",
                            "nodeType": "ElementaryTypeName",
                            "src": "4172:7:1",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 358,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4172:10:1",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint232",
                          "typeString": "uint232"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "600755",
                        "id": 359,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4197:11:1",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_fc6f17ed6e88110c42ce68acb31ee2c4ff0ad724fbe656ebb8c6cf092afae1a5",
                          "typeString": "literal_string \"`\u0007U\""
                        },
                        "value": "`\u0007U"
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "60",
                        "id": 360,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4269:7:1",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_15a5de5d00dfc39d199ee772e89858c204d1d545de092db54a345c7303942607",
                          "typeString": "literal_string \"`\""
                        },
                        "value": "`"
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "hexValue": "3138",
                            "id": 363,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "4297:2:1",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_18_by_1",
                              "typeString": "int_const 18"
                            },
                            "value": "18"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_rational_18_by_1",
                              "typeString": "int_const 18"
                            }
                          ],
                          "id": 362,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "4291:5:1",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_uint8_$",
                            "typeString": "type(uint8)"
                          },
                          "typeName": {
                            "id": 361,
                            "name": "uint8",
                            "nodeType": "ElementaryTypeName",
                            "src": "4291:5:1",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 364,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4291:9:1",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "600855",
                        "id": 365,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4315:11:1",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_2a54ba83f2d39662f05c71c7dc35bb16fc7c3fa997f19dafab6f27d149e35f89",
                          "typeString": "literal_string \"`\bU\""
                        },
                        "value": "`\bU"
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "60",
                        "id": 366,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4387:7:1",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_15a5de5d00dfc39d199ee772e89858c204d1d545de092db54a345c7303942607",
                          "typeString": "literal_string \"`\""
                        },
                        "value": "`"
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "hexValue": "3434",
                            "id": 369,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "4402:2:1",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_44_by_1",
                              "typeString": "int_const 44"
                            },
                            "value": "44"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_rational_44_by_1",
                              "typeString": "int_const 44"
                            }
                          ],
                          "id": 368,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "4396:5:1",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_uint8_$",
                            "typeString": "type(uint8)"
                          },
                          "typeName": {
                            "id": 367,
                            "name": "uint8",
                            "nodeType": "ElementaryTypeName",
                            "src": "4396:5:1",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 370,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4396:9:1",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "604051",
                        "id": 371,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4461:11:1",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_ca4a2574f7b8853963c03422ffcb028a7c576706d364f34fb8e4a92044584e3b",
                          "typeString": "literal_string \"`@Q\""
                        },
                        "value": "`@Q"
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "81",
                        "id": 372,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4524:7:1",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_1fed454f35701d8970ad2ac06907e973314989ab6eb948eda79c00e416c4bdeb",
                          "typeString": "literal_string (contains invalid UTF-8 sequence at position 0)"
                        },
                        "value": null
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "60",
                        "id": 373,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4610:7:1",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_15a5de5d00dfc39d199ee772e89858c204d1d545de092db54a345c7303942607",
                          "typeString": "literal_string \"`\""
                        },
                        "value": "`"
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "hexValue": "313731",
                            "id": 376,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "4625:3:1",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_171_by_1",
                              "typeString": "int_const 171"
                            },
                            "value": "171"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_rational_171_by_1",
                              "typeString": "int_const 171"
                            }
                          ],
                          "id": 375,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "4619:5:1",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_uint8_$",
                            "typeString": "type(uint8)"
                          },
                          "typeName": {
                            "id": 374,
                            "name": "uint8",
                            "nodeType": "ElementaryTypeName",
                            "src": "4619:5:1",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 377,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4619:10:1",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "8239f3",
                        "id": 378,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4684:98:1",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_277c972242c4a03898a28dab7ef97e5e64f6aff9f69039de5792d37cf4b17ccc",
                          "typeString": "literal_string (contains invalid UTF-8 sequence at position 0)"
                        },
                        "value": null
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "3d3d3d3d363d3d37363d73",
                        "id": 379,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4868:27:1",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_7910a9e907cca4c5632a8547a10f2b3a01c923240d7d078ee9a9614e2cf096fd",
                          "typeString": "literal_string \"====6==76=s\""
                        },
                        "value": "====6==76=s"
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 382,
                            "name": "erc20Implementation",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 92,
                            "src": "4918:19:1",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_Wrapped1155_$85",
                              "typeString": "contract Wrapped1155"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_contract$_Wrapped1155_$85",
                              "typeString": "contract Wrapped1155"
                            }
                          ],
                          "id": 381,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "4910:7:1",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": {
                            "id": 380,
                            "name": "address",
                            "nodeType": "ElementaryTypeName",
                            "src": "4910:7:1",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 383,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4910:28:1",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "5af43d3d93803e602a57fd5bf3",
                        "id": 384,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4953:31:1",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_4f4fdee476956dd246e2b6d360e2662bd0c0bea5fa270dd51dd80820c7c162f4",
                          "typeString": "literal_string (contains invalid UTF-8 sequence at position 4)"
                        },
                        "value": null
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_stringliteral_60a73bfb121a98fb6b52dfb29eb0defd76b60065b8cf07902baf28c167d24daf",
                          "typeString": "literal_string \"s\""
                        },
                        {
                          "typeIdentifier": "t_contract$_Wrapped1155Factory_$508",
                          "typeString": "contract Wrapped1155Factory"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_e056d20656c8e92c14547f34ac86191d8f835b17ef58bd4b4137f998d2578739",
                          "typeString": "literal_string \"=U\""
                        },
                        {
                          "typeIdentifier": "t_stringliteral_60a73bfb121a98fb6b52dfb29eb0defd76b60065b8cf07902baf28c167d24daf",
                          "typeString": "literal_string \"s\""
                        },
                        {
                          "typeIdentifier": "t_contract$_IERC1155_$946",
                          "typeString": "contract IERC1155"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_bd3951bc120a0a671c1029919ba31eebb21d5aeeafecaa7be3146a2102adb6d6",
                          "typeString": "literal_string \"`\u0001U\""
                        },
                        {
                          "typeIdentifier": "t_stringliteral_5c179d3bfde4c521afc3d3944357db5ee881a69c237d67c9aa79aa7a027c40ea",
                          "typeString": "literal_string \"\""
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_858c42a566dcd12d5b86497f3ba606a5238800007d4524fc4f08a5834330a1be",
                          "typeString": "literal_string \"`\u0002U\""
                        },
                        {
                          "typeIdentifier": "t_stringliteral_5c179d3bfde4c521afc3d3944357db5ee881a69c237d67c9aa79aa7a027c40ea",
                          "typeString": "literal_string \"\""
                        },
                        {
                          "typeIdentifier": "t_stringliteral_ffa31b1677ba636016c2b472722b3f641ef395cff704852a8ba2c42c358411ba",
                          "typeString": "literal_string \"Wrapped ERC-1155\""
                        },
                        {
                          "typeIdentifier": "t_uint128",
                          "typeString": "uint128"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_3c37cd12a0040eeb6831ff4d3b56b183f14784c854952fcb67c46f16ae66e756",
                          "typeString": "literal_string \"`\u0006U\""
                        },
                        {
                          "typeIdentifier": "t_stringliteral_5c179d3bfde4c521afc3d3944357db5ee881a69c237d67c9aa79aa7a027c40ea",
                          "typeString": "literal_string \"\""
                        },
                        {
                          "typeIdentifier": "t_stringliteral_57826992129f0edde0de7bee85dc588e7d55e90a81adeed9550195174d1c83bb",
                          "typeString": "literal_string \"WMT\""
                        },
                        {
                          "typeIdentifier": "t_uint232",
                          "typeString": "uint232"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_fc6f17ed6e88110c42ce68acb31ee2c4ff0ad724fbe656ebb8c6cf092afae1a5",
                          "typeString": "literal_string \"`\u0007U\""
                        },
                        {
                          "typeIdentifier": "t_stringliteral_15a5de5d00dfc39d199ee772e89858c204d1d545de092db54a345c7303942607",
                          "typeString": "literal_string \"`\""
                        },
                        {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_2a54ba83f2d39662f05c71c7dc35bb16fc7c3fa997f19dafab6f27d149e35f89",
                          "typeString": "literal_string \"`\bU\""
                        },
                        {
                          "typeIdentifier": "t_stringliteral_15a5de5d00dfc39d199ee772e89858c204d1d545de092db54a345c7303942607",
                          "typeString": "literal_string \"`\""
                        },
                        {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_ca4a2574f7b8853963c03422ffcb028a7c576706d364f34fb8e4a92044584e3b",
                          "typeString": "literal_string \"`@Q\""
                        },
                        {
                          "typeIdentifier": "t_stringliteral_1fed454f35701d8970ad2ac06907e973314989ab6eb948eda79c00e416c4bdeb",
                          "typeString": "literal_string (contains invalid UTF-8 sequence at position 0)"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_15a5de5d00dfc39d199ee772e89858c204d1d545de092db54a345c7303942607",
                          "typeString": "literal_string \"`\""
                        },
                        {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_277c972242c4a03898a28dab7ef97e5e64f6aff9f69039de5792d37cf4b17ccc",
                          "typeString": "literal_string (contains invalid UTF-8 sequence at position 0)"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_7910a9e907cca4c5632a8547a10f2b3a01c923240d7d078ee9a9614e2cf096fd",
                          "typeString": "literal_string \"====6==76=s\""
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_4f4fdee476956dd246e2b6d360e2662bd0c0bea5fa270dd51dd80820c7c162f4",
                          "typeString": "literal_string (contains invalid UTF-8 sequence at position 4)"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 335,
                        "name": "abi",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": -1,
                        "src": "3600:3:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_magic_abi",
                          "typeString": "abi"
                        }
                      },
                      "id": 336,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberName": "encodePacked",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "3600:16:1",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                        "typeString": "function () pure returns (bytes memory)"
                      }
                    },
                    "id": 385,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3600:1395:1",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_memory_ptr",
                      "typeString": "bytes memory"
                    }
                  },
                  "functionReturnParameters": 334,
                  "id": 386,
                  "nodeType": "Return",
                  "src": "3593:1402:1"
                }
              ]
            },
            "documentation": null,
            "functionSelector": "07662922",
            "id": 388,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getWrapped1155DeployBytecode",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 331,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 328,
                  "mutability": "mutable",
                  "name": "multiToken",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 388,
                  "src": "3477:19:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_IERC1155_$946",
                    "typeString": "contract IERC1155"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 327,
                    "name": "IERC1155",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 946,
                    "src": "3477:8:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IERC1155_$946",
                      "typeString": "contract IERC1155"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 330,
                  "mutability": "mutable",
                  "name": "tokenId",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 388,
                  "src": "3498:15:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 329,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3498:7:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3476:38:1"
            },
            "returnParameters": {
              "id": 334,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 333,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 388,
                  "src": "3563:12:1",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 332,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "3563:5:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3562:14:1"
            },
            "scope": 508,
            "src": "3439:1564:1",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "public"
          },
          {
            "body": {
              "id": 426,
              "nodeType": "Block",
              "src": "5143:243:1",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "arguments": [
                                          {
                                            "argumentTypes": null,
                                            "hexValue": "30786666",
                                            "id": 407,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "number",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "5236:4:1",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_rational_255_by_1",
                                              "typeString": "int_const 255"
                                            },
                                            "value": "0xff"
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_rational_255_by_1",
                                              "typeString": "int_const 255"
                                            }
                                          ],
                                          "id": 406,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "nodeType": "ElementaryTypeNameExpression",
                                          "src": "5230:5:1",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_type$_t_uint8_$",
                                            "typeString": "type(uint8)"
                                          },
                                          "typeName": {
                                            "id": 405,
                                            "name": "uint8",
                                            "nodeType": "ElementaryTypeName",
                                            "src": "5230:5:1",
                                            "typeDescriptions": {
                                              "typeIdentifier": null,
                                              "typeString": null
                                            }
                                          }
                                        },
                                        "id": 408,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "typeConversion",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "5230:11:1",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint8",
                                          "typeString": "uint8"
                                        }
                                      },
                                      {
                                        "argumentTypes": null,
                                        "id": 409,
                                        "name": "this",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": -28,
                                        "src": "5256:4:1",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_contract$_Wrapped1155Factory_$508",
                                          "typeString": "contract Wrapped1155Factory"
                                        }
                                      },
                                      {
                                        "argumentTypes": null,
                                        "arguments": [
                                          {
                                            "argumentTypes": null,
                                            "hexValue": "31313535",
                                            "id": 412,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "number",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "5283:4:1",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_rational_1155_by_1",
                                              "typeString": "int_const 1155"
                                            },
                                            "value": "1155"
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_rational_1155_by_1",
                                              "typeString": "int_const 1155"
                                            }
                                          ],
                                          "id": 411,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "nodeType": "ElementaryTypeNameExpression",
                                          "src": "5275:7:1",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_type$_t_uint256_$",
                                            "typeString": "type(uint256)"
                                          },
                                          "typeName": {
                                            "id": 410,
                                            "name": "uint256",
                                            "nodeType": "ElementaryTypeName",
                                            "src": "5275:7:1",
                                            "typeDescriptions": {
                                              "typeIdentifier": null,
                                              "typeString": null
                                            }
                                          }
                                        },
                                        "id": 413,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "typeConversion",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "5275:13:1",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      {
                                        "argumentTypes": null,
                                        "arguments": [
                                          {
                                            "argumentTypes": null,
                                            "arguments": [
                                              {
                                                "argumentTypes": null,
                                                "id": 416,
                                                "name": "multiToken",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 390,
                                                "src": "5342:10:1",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_contract$_IERC1155_$946",
                                                  "typeString": "contract IERC1155"
                                                }
                                              },
                                              {
                                                "argumentTypes": null,
                                                "id": 417,
                                                "name": "tokenId",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 392,
                                                "src": "5354:7:1",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_uint256",
                                                  "typeString": "uint256"
                                                }
                                              }
                                            ],
                                            "expression": {
                                              "argumentTypes": [
                                                {
                                                  "typeIdentifier": "t_contract$_IERC1155_$946",
                                                  "typeString": "contract IERC1155"
                                                },
                                                {
                                                  "typeIdentifier": "t_uint256",
                                                  "typeString": "uint256"
                                                }
                                              ],
                                              "id": 415,
                                              "name": "getWrapped1155DeployBytecode",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 388,
                                              "src": "5313:28:1",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_function_internal_view$_t_contract$_IERC1155_$946_$_t_uint256_$returns$_t_bytes_memory_ptr_$",
                                                "typeString": "function (contract IERC1155,uint256) view returns (bytes memory)"
                                              }
                                            },
                                            "id": 418,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "kind": "functionCall",
                                            "lValueRequested": false,
                                            "names": [],
                                            "nodeType": "FunctionCall",
                                            "src": "5313:49:1",
                                            "tryCall": false,
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_bytes_memory_ptr",
                                              "typeString": "bytes memory"
                                            }
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_bytes_memory_ptr",
                                              "typeString": "bytes memory"
                                            }
                                          ],
                                          "id": 414,
                                          "name": "keccak256",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": -8,
                                          "src": "5303:9:1",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                                            "typeString": "function (bytes memory) pure returns (bytes32)"
                                          }
                                        },
                                        "id": 419,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "5303:60:1",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_uint8",
                                          "typeString": "uint8"
                                        },
                                        {
                                          "typeIdentifier": "t_contract$_Wrapped1155Factory_$508",
                                          "typeString": "contract Wrapped1155Factory"
                                        },
                                        {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        },
                                        {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 403,
                                        "name": "abi",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": -1,
                                        "src": "5199:3:1",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_magic_abi",
                                          "typeString": "abi"
                                        }
                                      },
                                      "id": 404,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "memberName": "encodePacked",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": null,
                                      "src": "5199:16:1",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                                        "typeString": "function () pure returns (bytes memory)"
                                      }
                                    },
                                    "id": 420,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "functionCall",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "5199:175:1",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes_memory_ptr",
                                      "typeString": "bytes memory"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_bytes_memory_ptr",
                                      "typeString": "bytes memory"
                                    }
                                  ],
                                  "id": 402,
                                  "name": "keccak256",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": -8,
                                  "src": "5189:9:1",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                                    "typeString": "function (bytes memory) pure returns (bytes32)"
                                  }
                                },
                                "id": 421,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "5189:186:1",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              ],
                              "id": 401,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "5181:7:1",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_uint256_$",
                                "typeString": "type(uint256)"
                              },
                              "typeName": {
                                "id": 400,
                                "name": "uint256",
                                "nodeType": "ElementaryTypeName",
                                "src": "5181:7:1",
                                "typeDescriptions": {
                                  "typeIdentifier": null,
                                  "typeString": null
                                }
                              }
                            },
                            "id": 422,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "5181:195:1",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 399,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "5173:7:1",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": {
                            "id": 398,
                            "name": "address",
                            "nodeType": "ElementaryTypeName",
                            "src": "5173:7:1",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 423,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5173:204:1",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      ],
                      "id": 397,
                      "name": "Wrapped1155",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 85,
                      "src": "5161:11:1",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_contract$_Wrapped1155_$85_$",
                        "typeString": "type(contract Wrapped1155)"
                      }
                    },
                    "id": 424,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5161:217:1",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Wrapped1155_$85",
                      "typeString": "contract Wrapped1155"
                    }
                  },
                  "functionReturnParameters": 396,
                  "id": 425,
                  "nodeType": "Return",
                  "src": "5154:224:1"
                }
              ]
            },
            "documentation": null,
            "functionSelector": "8920e891",
            "id": 427,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getWrapped1155",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 393,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 390,
                  "mutability": "mutable",
                  "name": "multiToken",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 427,
                  "src": "5039:19:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_IERC1155_$946",
                    "typeString": "contract IERC1155"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 389,
                    "name": "IERC1155",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 946,
                    "src": "5039:8:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IERC1155_$946",
                      "typeString": "contract IERC1155"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 392,
                  "mutability": "mutable",
                  "name": "tokenId",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 427,
                  "src": "5060:15:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 391,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "5060:7:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5038:38:1"
            },
            "returnParameters": {
              "id": 396,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 395,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 427,
                  "src": "5125:11:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_Wrapped1155_$85",
                    "typeString": "contract Wrapped1155"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 394,
                    "name": "Wrapped1155",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 85,
                    "src": "5125:11:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Wrapped1155_$85",
                      "typeString": "contract Wrapped1155"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5124:13:1"
            },
            "scope": 508,
            "src": "5015:371:1",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "public"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 435,
            "name": "Wrapped1155Creation",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 434,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 429,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "multiToken",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 435,
                  "src": "5430:27:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_IERC1155_$946",
                    "typeString": "contract IERC1155"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 428,
                    "name": "IERC1155",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 946,
                    "src": "5430:8:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IERC1155_$946",
                      "typeString": "contract IERC1155"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 431,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "tokenId",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 435,
                  "src": "5468:23:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 430,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "5468:7:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 433,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "wrappedToken",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 435,
                  "src": "5502:32:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_Wrapped1155_$85",
                    "typeString": "contract Wrapped1155"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 432,
                    "name": "Wrapped1155",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 85,
                    "src": "5502:11:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Wrapped1155_$85",
                      "typeString": "contract Wrapped1155"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5419:122:1"
            },
            "src": "5394:148:1"
          },
          {
            "body": {
              "id": 506,
              "nodeType": "Block",
              "src": "5668:829:1",
              "statements": [
                {
                  "assignments": [
                    445
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 445,
                      "mutability": "mutable",
                      "name": "deployBytecode",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 506,
                      "src": "5679:27:1",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes_memory_ptr",
                        "typeString": "bytes"
                      },
                      "typeName": {
                        "id": 444,
                        "name": "bytes",
                        "nodeType": "ElementaryTypeName",
                        "src": "5679:5:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_storage_ptr",
                          "typeString": "bytes"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 450,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 447,
                        "name": "multiToken",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 437,
                        "src": "5738:10:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IERC1155_$946",
                          "typeString": "contract IERC1155"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 448,
                        "name": "tokenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 439,
                        "src": "5750:7:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_IERC1155_$946",
                          "typeString": "contract IERC1155"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 446,
                      "name": "getWrapped1155DeployBytecode",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 388,
                      "src": "5709:28:1",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_contract$_IERC1155_$946_$_t_uint256_$returns$_t_bytes_memory_ptr_$",
                        "typeString": "function (contract IERC1155,uint256) view returns (bytes memory)"
                      }
                    },
                    "id": 449,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5709:49:1",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_memory_ptr",
                      "typeString": "bytes memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "5679:79:1"
                },
                {
                  "assignments": [
                    452
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 452,
                      "mutability": "mutable",
                      "name": "wrapped1155Address",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 506,
                      "src": "5771:26:1",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 451,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "5771:7:1",
                        "stateMutability": "nonpayable",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 476,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "hexValue": "30786666",
                                        "id": 462,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "number",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "5863:4:1",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_rational_255_by_1",
                                          "typeString": "int_const 255"
                                        },
                                        "value": "0xff"
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_rational_255_by_1",
                                          "typeString": "int_const 255"
                                        }
                                      ],
                                      "id": 461,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "5857:5:1",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_uint8_$",
                                        "typeString": "type(uint8)"
                                      },
                                      "typeName": {
                                        "id": 460,
                                        "name": "uint8",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "5857:5:1",
                                        "typeDescriptions": {
                                          "typeIdentifier": null,
                                          "typeString": null
                                        }
                                      }
                                    },
                                    "id": 463,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "5857:11:1",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    }
                                  },
                                  {
                                    "argumentTypes": null,
                                    "id": 464,
                                    "name": "this",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": -28,
                                    "src": "5883:4:1",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_contract$_Wrapped1155Factory_$508",
                                      "typeString": "contract Wrapped1155Factory"
                                    }
                                  },
                                  {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "hexValue": "31313535",
                                        "id": 467,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "number",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "5910:4:1",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_rational_1155_by_1",
                                          "typeString": "int_const 1155"
                                        },
                                        "value": "1155"
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_rational_1155_by_1",
                                          "typeString": "int_const 1155"
                                        }
                                      ],
                                      "id": 466,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "5902:7:1",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_uint256_$",
                                        "typeString": "type(uint256)"
                                      },
                                      "typeName": {
                                        "id": 465,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "5902:7:1",
                                        "typeDescriptions": {
                                          "typeIdentifier": null,
                                          "typeString": null
                                        }
                                      }
                                    },
                                    "id": 468,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "5902:13:1",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "id": 470,
                                        "name": "deployBytecode",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 445,
                                        "src": "5940:14:1",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes_memory_ptr",
                                          "typeString": "bytes memory"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_bytes_memory_ptr",
                                          "typeString": "bytes memory"
                                        }
                                      ],
                                      "id": 469,
                                      "name": "keccak256",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": -8,
                                      "src": "5930:9:1",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                                        "typeString": "function (bytes memory) pure returns (bytes32)"
                                      }
                                    },
                                    "id": 471,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "functionCall",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "5930:25:1",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    },
                                    {
                                      "typeIdentifier": "t_contract$_Wrapped1155Factory_$508",
                                      "typeString": "contract Wrapped1155Factory"
                                    },
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    },
                                    {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 458,
                                    "name": "abi",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": -1,
                                    "src": "5826:3:1",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_magic_abi",
                                      "typeString": "abi"
                                    }
                                  },
                                  "id": 459,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "memberName": "encodePacked",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": null,
                                  "src": "5826:16:1",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                                    "typeString": "function () pure returns (bytes memory)"
                                  }
                                },
                                "id": 472,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "5826:140:1",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes_memory_ptr",
                                  "typeString": "bytes memory"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes_memory_ptr",
                                  "typeString": "bytes memory"
                                }
                              ],
                              "id": 457,
                              "name": "keccak256",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": -8,
                              "src": "5816:9:1",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                                "typeString": "function (bytes memory) pure returns (bytes32)"
                              }
                            },
                            "id": 473,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "5816:151:1",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 456,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "5808:7:1",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_uint256_$",
                            "typeString": "type(uint256)"
                          },
                          "typeName": {
                            "id": 455,
                            "name": "uint256",
                            "nodeType": "ElementaryTypeName",
                            "src": "5808:7:1",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 474,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5808:160:1",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 454,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "5800:7:1",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_address_$",
                        "typeString": "type(address)"
                      },
                      "typeName": {
                        "id": 453,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "5800:7:1",
                        "typeDescriptions": {
                          "typeIdentifier": null,
                          "typeString": null
                        }
                      }
                    },
                    "id": 475,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5800:169:1",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_address_payable",
                      "typeString": "address payable"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "5771:198:1"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "id": 480,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "UnaryOperation",
                    "operator": "!",
                    "prefix": true,
                    "src": "5986:32:1",
                    "subExpression": {
                      "argumentTypes": null,
                      "arguments": [],
                      "expression": {
                        "argumentTypes": [],
                        "expression": {
                          "argumentTypes": null,
                          "id": 477,
                          "name": "wrapped1155Address",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 452,
                          "src": "5987:18:1",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "id": 478,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "isContract",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 1601,
                        "src": "5987:29:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$bound_to$_t_address_$",
                          "typeString": "function (address) view returns (bool)"
                        }
                      },
                      "id": 479,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "5987:31:1",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 501,
                  "nodeType": "IfStatement",
                  "src": "5982:457:1",
                  "trueBody": {
                    "id": 500,
                    "nodeType": "Block",
                    "src": "6020:419:1",
                    "statements": [
                      {
                        "assignments": [
                          482
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 482,
                            "mutability": "mutable",
                            "name": "addr",
                            "nodeType": "VariableDeclaration",
                            "overrides": null,
                            "scope": 500,
                            "src": "6035:12:1",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            "typeName": {
                              "id": 481,
                              "name": "address",
                              "nodeType": "ElementaryTypeName",
                              "src": "6035:7:1",
                              "stateMutability": "nonpayable",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 483,
                        "initialValue": null,
                        "nodeType": "VariableDeclarationStatement",
                        "src": "6035:12:1"
                      },
                      {
                        "AST": {
                          "nodeType": "YulBlock",
                          "src": "6071:106:1",
                          "statements": [
                            {
                              "nodeType": "YulAssignment",
                              "src": "6088:74:1",
                              "value": {
                                "arguments": [
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "6104:1:1",
                                    "type": "",
                                    "value": "0"
                                  },
                                  {
                                    "arguments": [
                                      {
                                        "name": "deployBytecode",
                                        "nodeType": "YulIdentifier",
                                        "src": "6111:14:1"
                                      },
                                      {
                                        "kind": "number",
                                        "nodeType": "YulLiteral",
                                        "src": "6127:4:1",
                                        "type": "",
                                        "value": "0x20"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "add",
                                      "nodeType": "YulIdentifier",
                                      "src": "6107:3:1"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "6107:25:1"
                                  },
                                  {
                                    "arguments": [
                                      {
                                        "name": "deployBytecode",
                                        "nodeType": "YulIdentifier",
                                        "src": "6140:14:1"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "mload",
                                      "nodeType": "YulIdentifier",
                                      "src": "6134:5:1"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "6134:21:1"
                                  },
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "6157:4:1",
                                    "type": "",
                                    "value": "1155"
                                  }
                                ],
                                "functionName": {
                                  "name": "create2",
                                  "nodeType": "YulIdentifier",
                                  "src": "6096:7:1"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "6096:66:1"
                              },
                              "variableNames": [
                                {
                                  "name": "addr",
                                  "nodeType": "YulIdentifier",
                                  "src": "6088:4:1"
                                }
                              ]
                            }
                          ]
                        },
                        "evmVersion": "istanbul",
                        "externalReferences": [
                          {
                            "declaration": 482,
                            "isOffset": false,
                            "isSlot": false,
                            "src": "6088:4:1",
                            "valueSize": 1
                          },
                          {
                            "declaration": 445,
                            "isOffset": false,
                            "isSlot": false,
                            "src": "6111:14:1",
                            "valueSize": 1
                          },
                          {
                            "declaration": 445,
                            "isOffset": false,
                            "isSlot": false,
                            "src": "6140:14:1",
                            "valueSize": 1
                          }
                        ],
                        "id": 484,
                        "nodeType": "InlineAssembly",
                        "src": "6062:115:1"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              "id": 488,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "id": 486,
                                "name": "wrapped1155Address",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 452,
                                "src": "6199:18:1",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "==",
                              "rightExpression": {
                                "argumentTypes": null,
                                "id": 487,
                                "name": "addr",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 482,
                                "src": "6221:4:1",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              "src": "6199:26:1",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "hexValue": "5772617070656431313535466163746f72793a206661696c656420746f206465706c6f79",
                              "id": 489,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "string",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "6227:38:1",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_stringliteral_87181167aeeb59df29c84d292b9e81551f3afabb9ed70d25e8d111622890b878",
                                "typeString": "literal_string \"Wrapped1155Factory: failed to deploy\""
                              },
                              "value": "Wrapped1155Factory: failed to deploy"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              {
                                "typeIdentifier": "t_stringliteral_87181167aeeb59df29c84d292b9e81551f3afabb9ed70d25e8d111622890b878",
                                "typeString": "literal_string \"Wrapped1155Factory: failed to deploy\""
                              }
                            ],
                            "id": 485,
                            "name": "require",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [
                              -18,
                              -18
                            ],
                            "referencedDeclaration": -18,
                            "src": "6191:7:1",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                              "typeString": "function (bool,string memory) pure"
                            }
                          },
                          "id": 490,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "6191:75:1",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 491,
                        "nodeType": "ExpressionStatement",
                        "src": "6191:75:1"
                      },
                      {
                        "eventCall": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 493,
                              "name": "multiToken",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 437,
                              "src": "6326:10:1",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_IERC1155_$946",
                                "typeString": "contract IERC1155"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 494,
                              "name": "tokenId",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 439,
                              "src": "6355:7:1",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "id": 496,
                                  "name": "wrapped1155Address",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 452,
                                  "src": "6393:18:1",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                ],
                                "id": 495,
                                "name": "Wrapped1155",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 85,
                                "src": "6381:11:1",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_contract$_Wrapped1155_$85_$",
                                  "typeString": "type(contract Wrapped1155)"
                                }
                              },
                              "id": 497,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "6381:31:1",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_Wrapped1155_$85",
                                "typeString": "contract Wrapped1155"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_contract$_IERC1155_$946",
                                "typeString": "contract IERC1155"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_contract$_Wrapped1155_$85",
                                "typeString": "contract Wrapped1155"
                              }
                            ],
                            "id": 492,
                            "name": "Wrapped1155Creation",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 435,
                            "src": "6288:19:1",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_event_nonpayable$_t_contract$_IERC1155_$946_$_t_uint256_$_t_contract$_Wrapped1155_$85_$returns$__$",
                              "typeString": "function (contract IERC1155,uint256,contract Wrapped1155)"
                            }
                          },
                          "id": 498,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "6288:139:1",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 499,
                        "nodeType": "EmitStatement",
                        "src": "6283:144:1"
                      }
                    ]
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 503,
                        "name": "wrapped1155Address",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 452,
                        "src": "6470:18:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 502,
                      "name": "Wrapped1155",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 85,
                      "src": "6458:11:1",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_contract$_Wrapped1155_$85_$",
                        "typeString": "type(contract Wrapped1155)"
                      }
                    },
                    "id": 504,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6458:31:1",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Wrapped1155_$85",
                      "typeString": "contract Wrapped1155"
                    }
                  },
                  "functionReturnParameters": 443,
                  "id": 505,
                  "nodeType": "Return",
                  "src": "6451:38:1"
                }
              ]
            },
            "documentation": null,
            "functionSelector": "d533249a",
            "id": 507,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "requireWrapped1155",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 440,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 437,
                  "mutability": "mutable",
                  "name": "multiToken",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 507,
                  "src": "5578:19:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_IERC1155_$946",
                    "typeString": "contract IERC1155"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 436,
                    "name": "IERC1155",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 946,
                    "src": "5578:8:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IERC1155_$946",
                      "typeString": "contract IERC1155"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 439,
                  "mutability": "mutable",
                  "name": "tokenId",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 507,
                  "src": "5599:15:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 438,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "5599:7:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5577:38:1"
            },
            "returnParameters": {
              "id": 443,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 442,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 507,
                  "src": "5650:11:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_Wrapped1155_$85",
                    "typeString": "contract Wrapped1155"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 441,
                    "name": "Wrapped1155",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 85,
                    "src": "5650:11:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Wrapped1155_$85",
                      "typeString": "contract Wrapped1155"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5649:13:1"
            },
            "scope": 508,
            "src": "5550:947:1",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          }
        ],
        "scope": 509,
        "src": "1146:5354:1"
      }
    ],
    "src": "49:6453:1"
  },
  "legacyAST": {
    "absolutePath": "/C/Users/Alan/Documents/GitHub/1155-to-20/contracts/Wrapped1155Factory.sol",
    "exportedSymbols": {
      "Wrapped1155": [
        85
      ],
      "Wrapped1155Factory": [
        508
      ],
      "Wrapped1155Metadata": [
        42
      ]
    },
    "id": 509,
    "license": "LGPL-3.0-or-later",
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 12,
        "literals": [
          "solidity",
          ">=",
          "0.6",
          ".0"
        ],
        "nodeType": "PragmaDirective",
        "src": "49:24:1"
      },
      {
        "absolutePath": "@openzeppelin/contracts/utils/Address.sol",
        "file": "@openzeppelin/contracts/utils/Address.sol",
        "id": 14,
        "nodeType": "ImportDirective",
        "scope": 509,
        "sourceUnit": 1777,
        "src": "77:68:1",
        "symbolAliases": [
          {
            "foreign": {
              "argumentTypes": null,
              "id": 13,
              "name": "Address",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": null,
              "src": "86:7:1",
              "typeDescriptions": {
                "typeIdentifier": null,
                "typeString": null
              }
            },
            "local": null
          }
        ],
        "unitAlias": ""
      },
      {
        "absolutePath": "@openzeppelin/contracts/token/ERC20/ERC20.sol",
        "file": "@openzeppelin/contracts/token/ERC20/ERC20.sol",
        "id": 16,
        "nodeType": "ImportDirective",
        "scope": 509,
        "sourceUnit": 1495,
        "src": "147:70:1",
        "symbolAliases": [
          {
            "foreign": {
              "argumentTypes": null,
              "id": 15,
              "name": "ERC20",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": null,
              "src": "156:5:1",
              "typeDescriptions": {
                "typeIdentifier": null,
                "typeString": null
              }
            },
            "local": null
          }
        ],
        "unitAlias": ""
      },
      {
        "absolutePath": "@openzeppelin/contracts/token/ERC1155/IERC1155.sol",
        "file": "@openzeppelin/contracts/token/ERC1155/IERC1155.sol",
        "id": 18,
        "nodeType": "ImportDirective",
        "scope": 509,
        "sourceUnit": 947,
        "src": "219:78:1",
        "symbolAliases": [
          {
            "foreign": {
              "argumentTypes": null,
              "id": 17,
              "name": "IERC1155",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": null,
              "src": "228:8:1",
              "typeDescriptions": {
                "typeIdentifier": null,
                "typeString": null
              }
            },
            "local": null
          }
        ],
        "unitAlias": ""
      },
      {
        "absolutePath": "@openzeppelin/contracts/token/ERC1155/ERC1155Receiver.sol",
        "file": "@openzeppelin/contracts/token/ERC1155/ERC1155Receiver.sol",
        "id": 20,
        "nodeType": "ImportDirective",
        "scope": 509,
        "sourceUnit": 825,
        "src": "299:92:1",
        "symbolAliases": [
          {
            "foreign": {
              "argumentTypes": null,
              "id": 19,
              "name": "ERC1155Receiver",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "referencedDeclaration": null,
              "src": "308:15:1",
              "typeDescriptions": {
                "typeIdentifier": null,
                "typeString": null
              }
            },
            "local": null
          }
        ],
        "unitAlias": ""
      },
      {
        "abstract": false,
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 42,
        "linearizedBaseContracts": [
          42
        ],
        "name": "Wrapped1155Metadata",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": false,
            "functionSelector": "c45a0155",
            "id": 22,
            "mutability": "mutable",
            "name": "factory",
            "nodeType": "VariableDeclaration",
            "overrides": null,
            "scope": 42,
            "src": "505:33:1",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_contract$_Wrapped1155Factory_$508",
              "typeString": "contract Wrapped1155Factory"
            },
            "typeName": {
              "contractScope": null,
              "id": 21,
              "name": "Wrapped1155Factory",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 508,
              "src": "505:18:1",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_Wrapped1155Factory_$508",
                "typeString": "contract Wrapped1155Factory"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "functionSelector": "1904e5c9",
            "id": 24,
            "mutability": "mutable",
            "name": "multiToken",
            "nodeType": "VariableDeclaration",
            "overrides": null,
            "scope": 42,
            "src": "545:26:1",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_contract$_IERC1155_$946",
              "typeString": "contract IERC1155"
            },
            "typeName": {
              "contractScope": null,
              "id": 23,
              "name": "IERC1155",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 946,
              "src": "545:8:1",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_IERC1155_$946",
                "typeString": "contract IERC1155"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "functionSelector": "17d70f7c",
            "id": 26,
            "mutability": "mutable",
            "name": "tokenId",
            "nodeType": "VariableDeclaration",
            "overrides": null,
            "scope": 42,
            "src": "578:22:1",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 25,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "578:7:1",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 40,
              "nodeType": "Block",
              "src": "636:128:1",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 35,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 29,
                            "name": "msg",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": -15,
                            "src": "655:3:1",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_message",
                              "typeString": "msg"
                            }
                          },
                          "id": 30,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "sender",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "655:10:1",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address_payable",
                            "typeString": "address payable"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 33,
                              "name": "factory",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 22,
                              "src": "677:7:1",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_Wrapped1155Factory_$508",
                                "typeString": "contract Wrapped1155Factory"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_contract$_Wrapped1155Factory_$508",
                                "typeString": "contract Wrapped1155Factory"
                              }
                            ],
                            "id": 32,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "669:7:1",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_address_$",
                              "typeString": "type(address)"
                            },
                            "typeName": {
                              "id": 31,
                              "name": "address",
                              "nodeType": "ElementaryTypeName",
                              "src": "669:7:1",
                              "typeDescriptions": {
                                "typeIdentifier": null,
                                "typeString": null
                              }
                            }
                          },
                          "id": 34,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "669:16:1",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "655:30:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "57726170706564313135353a206f6e6c7920666163746f727920616c6c6f77656420746f20706572666f726d206f7065726174696f6e",
                        "id": 36,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "687:56:1",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_b826780e42127107c15ed55c8540079130aff51b9355a4225b59f12a03a0b081",
                          "typeString": "literal_string \"Wrapped1155: only factory allowed to perform operation\""
                        },
                        "value": "Wrapped1155: only factory allowed to perform operation"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_b826780e42127107c15ed55c8540079130aff51b9355a4225b59f12a03a0b081",
                          "typeString": "literal_string \"Wrapped1155: only factory allowed to perform operation\""
                        }
                      ],
                      "id": 28,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "647:7:1",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 37,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "647:97:1",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 38,
                  "nodeType": "ExpressionStatement",
                  "src": "647:97:1"
                },
                {
                  "id": 39,
                  "nodeType": "PlaceholderStatement",
                  "src": "755:1:1"
                }
              ]
            },
            "documentation": null,
            "id": 41,
            "name": "onlyFactory",
            "nodeType": "ModifierDefinition",
            "overrides": null,
            "parameters": {
              "id": 27,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "633:2:1"
            },
            "src": "613:151:1",
            "virtual": false,
            "visibility": "internal"
          }
        ],
        "scope": 509,
        "src": "395:372:1"
      },
      {
        "abstract": false,
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 43,
              "name": "Wrapped1155Metadata",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 42,
              "src": "795:19:1",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_Wrapped1155Metadata_$42",
                "typeString": "contract Wrapped1155Metadata"
              }
            },
            "id": 44,
            "nodeType": "InheritanceSpecifier",
            "src": "795:19:1"
          },
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 45,
              "name": "ERC20",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 1494,
              "src": "816:5:1",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_ERC20_$1494",
                "typeString": "contract ERC20"
              }
            },
            "id": 46,
            "nodeType": "InheritanceSpecifier",
            "src": "816:5:1"
          }
        ],
        "contractDependencies": [
          42,
          531,
          1494,
          1572
        ],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 85,
        "linearizedBaseContracts": [
          85,
          1494,
          1572,
          531,
          42
        ],
        "name": "Wrapped1155",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "body": {
              "id": 53,
              "nodeType": "Block",
              "src": "899:2:1",
              "statements": []
            },
            "documentation": null,
            "id": 54,
            "implemented": true,
            "kind": "constructor",
            "modifiers": [
              {
                "arguments": [
                  {
                    "argumentTypes": null,
                    "hexValue": "57726170706564204552432d3131353520496d706c656d656e746174696f6e",
                    "id": 49,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "string",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "856:33:1",
                    "subdenomination": null,
                    "typeDescriptions": {
                      "typeIdentifier": "t_stringliteral_0d72d899212f801a62b6d4bc1985f4833b9426e12014c9e4f12564e38287a8ce",
                      "typeString": "literal_string \"Wrapped ERC-1155 Implementation\""
                    },
                    "value": "Wrapped ERC-1155 Implementation"
                  },
                  {
                    "argumentTypes": null,
                    "hexValue": "574d542a",
                    "id": 50,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "string",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "891:6:1",
                    "subdenomination": null,
                    "typeDescriptions": {
                      "typeIdentifier": "t_stringliteral_3f9d58702c7524bfaf2e581cd9b5368faad7a1f28a1021924f2891c2d45c36af",
                      "typeString": "literal_string \"WMT*\""
                    },
                    "value": "WMT*"
                  }
                ],
                "id": 51,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 48,
                  "name": "ERC20",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 1494,
                  "src": "850:5:1",
                  "typeDescriptions": {
                    "typeIdentifier": "t_type$_t_contract$_ERC20_$1494_$",
                    "typeString": "type(contract ERC20)"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "850:48:1"
              }
            ],
            "name": "",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 47,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "840:2:1"
            },
            "returnParameters": {
              "id": 52,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "899:0:1"
            },
            "scope": 85,
            "src": "829:72:1",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "body": {
              "id": 68,
              "nodeType": "Block",
              "src": "977:41:1",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 64,
                        "name": "account",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 56,
                        "src": "994:7:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 65,
                        "name": "amount",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 58,
                        "src": "1003:6:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 63,
                      "name": "_mint",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1370,
                      "src": "988:5:1",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (address,uint256)"
                      }
                    },
                    "id": 66,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "988:22:1",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 67,
                  "nodeType": "ExpressionStatement",
                  "src": "988:22:1"
                }
              ]
            },
            "documentation": null,
            "functionSelector": "40c10f19",
            "id": 69,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": null,
                "id": 61,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 60,
                  "name": "onlyFactory",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 41,
                  "src": "965:11:1",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "965:11:1"
              }
            ],
            "name": "mint",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 59,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 56,
                  "mutability": "mutable",
                  "name": "account",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 69,
                  "src": "923:15:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 55,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "923:7:1",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 58,
                  "mutability": "mutable",
                  "name": "amount",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 69,
                  "src": "940:14:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 57,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "940:7:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "922:33:1"
            },
            "returnParameters": {
              "id": 62,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "977:0:1"
            },
            "scope": 85,
            "src": "909:109:1",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": {
              "id": 83,
              "nodeType": "Block",
              "src": "1098:41:1",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 79,
                        "name": "account",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 71,
                        "src": "1115:7:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 80,
                        "name": "amount",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 73,
                        "src": "1124:6:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 78,
                      "name": "_burn",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 1426,
                      "src": "1109:5:1",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (address,uint256)"
                      }
                    },
                    "id": 81,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1109:22:1",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 82,
                  "nodeType": "ExpressionStatement",
                  "src": "1109:22:1"
                }
              ]
            },
            "documentation": null,
            "functionSelector": "9dc29fac",
            "id": 84,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": null,
                "id": 76,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 75,
                  "name": "onlyFactory",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 41,
                  "src": "1086:11:1",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "1086:11:1"
              }
            ],
            "name": "burn",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 74,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 71,
                  "mutability": "mutable",
                  "name": "account",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 84,
                  "src": "1044:15:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 70,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1044:7:1",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 73,
                  "mutability": "mutable",
                  "name": "amount",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 84,
                  "src": "1061:14:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 72,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1061:7:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1043:33:1"
            },
            "returnParameters": {
              "id": 77,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1098:0:1"
            },
            "scope": 85,
            "src": "1030:109:1",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          }
        ],
        "scope": 509,
        "src": "771:371:1"
      },
      {
        "abstract": false,
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 86,
              "name": "ERC1155Receiver",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 824,
              "src": "1177:15:1",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_ERC1155Receiver_$824",
                "typeString": "contract ERC1155Receiver"
              }
            },
            "id": 87,
            "nodeType": "InheritanceSpecifier",
            "src": "1177:15:1"
          }
        ],
        "contractDependencies": [
          85,
          588,
          600,
          824,
          987
        ],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 508,
        "linearizedBaseContracts": [
          508,
          824,
          987,
          588,
          600
        ],
        "name": "Wrapped1155Factory",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "id": 90,
            "libraryName": {
              "contractScope": null,
              "id": 88,
              "name": "Address",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 1776,
              "src": "1206:7:1",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_Address_$1776",
                "typeString": "library Address"
              }
            },
            "nodeType": "UsingForDirective",
            "src": "1200:26:1",
            "typeName": {
              "id": 89,
              "name": "address",
              "nodeType": "ElementaryTypeName",
              "src": "1218:7:1",
              "stateMutability": "nonpayable",
              "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
              }
            }
          },
          {
            "constant": false,
            "functionSelector": "901be041",
            "id": 92,
            "mutability": "mutable",
            "name": "erc20Implementation",
            "nodeType": "VariableDeclaration",
            "overrides": null,
            "scope": 508,
            "src": "1234:38:1",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_contract$_Wrapped1155_$85",
              "typeString": "contract Wrapped1155"
            },
            "typeName": {
              "contractScope": null,
              "id": 91,
              "name": "Wrapped1155",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 85,
              "src": "1234:11:1",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_Wrapped1155_$85",
                "typeString": "contract Wrapped1155"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 101,
              "nodeType": "Block",
              "src": "1302:58:1",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 99,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 95,
                      "name": "erc20Implementation",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 92,
                      "src": "1313:19:1",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Wrapped1155_$85",
                        "typeString": "contract Wrapped1155"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [],
                      "expression": {
                        "argumentTypes": [],
                        "id": 97,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "NewExpression",
                        "src": "1335:15:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_creation_nonpayable$__$returns$_t_contract$_Wrapped1155_$85_$",
                          "typeString": "function () returns (contract Wrapped1155)"
                        },
                        "typeName": {
                          "contractScope": null,
                          "id": 96,
                          "name": "Wrapped1155",
                          "nodeType": "UserDefinedTypeName",
                          "referencedDeclaration": 85,
                          "src": "1339:11:1",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_Wrapped1155_$85",
                            "typeString": "contract Wrapped1155"
                          }
                        }
                      },
                      "id": 98,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "1335:17:1",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Wrapped1155_$85",
                        "typeString": "contract Wrapped1155"
                      }
                    },
                    "src": "1313:39:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Wrapped1155_$85",
                      "typeString": "contract Wrapped1155"
                    }
                  },
                  "id": 100,
                  "nodeType": "ExpressionStatement",
                  "src": "1313:39:1"
                }
              ]
            },
            "documentation": null,
            "id": 102,
            "implemented": true,
            "kind": "constructor",
            "modifiers": [],
            "name": "",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 93,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1292:2:1"
            },
            "returnParameters": {
              "id": 94,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1302:0:1"
            },
            "scope": 508,
            "src": "1281:79:1",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              968
            ],
            "body": {
              "id": 155,
              "nodeType": "Block",
              "src": "1600:301:1",
              "statements": [
                {
                  "assignments": [
                    119
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 119,
                      "mutability": "mutable",
                      "name": "recipient",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 155,
                      "src": "1611:17:1",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 118,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "1611:7:1",
                        "stateMutability": "nonpayable",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 133,
                  "initialValue": {
                    "argumentTypes": null,
                    "condition": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 123,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 120,
                          "name": "data",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 112,
                          "src": "1631:4:1",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes_calldata_ptr",
                            "typeString": "bytes calldata"
                          }
                        },
                        "id": 121,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "length",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "1631:11:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": ">",
                      "rightExpression": {
                        "argumentTypes": null,
                        "hexValue": "30",
                        "id": 122,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1645:1:1",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      "src": "1631:15:1",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "falseExpression": {
                      "argumentTypes": null,
                      "id": 131,
                      "name": "operator",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 104,
                      "src": "1706:8:1",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "id": 132,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "Conditional",
                    "src": "1631:83:1",
                    "trueExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 126,
                          "name": "data",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 112,
                          "src": "1674:4:1",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes_calldata_ptr",
                            "typeString": "bytes calldata"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "components": [
                            {
                              "argumentTypes": null,
                              "id": 128,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "1681:7:1",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_address_$",
                                "typeString": "type(address)"
                              },
                              "typeName": {
                                "id": 127,
                                "name": "address",
                                "nodeType": "ElementaryTypeName",
                                "src": "1681:7:1",
                                "typeDescriptions": {
                                  "typeIdentifier": null,
                                  "typeString": null
                                }
                              }
                            }
                          ],
                          "id": 129,
                          "isConstant": false,
                          "isInlineArray": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "TupleExpression",
                          "src": "1680:9:1",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes_calldata_ptr",
                            "typeString": "bytes calldata"
                          },
                          {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "id": 124,
                          "name": "abi",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": -1,
                          "src": "1663:3:1",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_abi",
                            "typeString": "abi"
                          }
                        },
                        "id": 125,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "memberName": "decode",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "1663:10:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_abidecode_pure$__$returns$__$",
                          "typeString": "function () pure"
                        }
                      },
                      "id": 130,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "1663:27:1",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_address_payable",
                        "typeString": "address payable"
                      }
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1611:103:1"
                },
                {
                  "assignments": [
                    135
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 135,
                      "mutability": "mutable",
                      "name": "wrapped1155",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 155,
                      "src": "1727:23:1",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_Wrapped1155_$85",
                        "typeString": "contract Wrapped1155"
                      },
                      "typeName": {
                        "contractScope": null,
                        "id": 134,
                        "name": "Wrapped1155",
                        "nodeType": "UserDefinedTypeName",
                        "referencedDeclaration": 85,
                        "src": "1727:11:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Wrapped1155_$85",
                          "typeString": "contract Wrapped1155"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 143,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 138,
                              "name": "msg",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": -15,
                              "src": "1781:3:1",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_message",
                                "typeString": "msg"
                              }
                            },
                            "id": 139,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "sender",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "1781:10:1",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            }
                          ],
                          "id": 137,
                          "name": "IERC1155",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 946,
                          "src": "1772:8:1",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_IERC1155_$946_$",
                            "typeString": "type(contract IERC1155)"
                          }
                        },
                        "id": 140,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1772:20:1",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IERC1155_$946",
                          "typeString": "contract IERC1155"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 141,
                        "name": "id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 108,
                        "src": "1794:2:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_IERC1155_$946",
                          "typeString": "contract IERC1155"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 136,
                      "name": "requireWrapped1155",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 507,
                      "src": "1753:18:1",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC1155_$946_$_t_uint256_$returns$_t_contract$_Wrapped1155_$85_$",
                        "typeString": "function (contract IERC1155,uint256) returns (contract Wrapped1155)"
                      }
                    },
                    "id": 142,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1753:44:1",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Wrapped1155_$85",
                      "typeString": "contract Wrapped1155"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1727:70:1"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 147,
                        "name": "recipient",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 119,
                        "src": "1825:9:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 148,
                        "name": "value",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 110,
                        "src": "1836:5:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 144,
                        "name": "wrapped1155",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 135,
                        "src": "1808:11:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Wrapped1155_$85",
                          "typeString": "contract Wrapped1155"
                        }
                      },
                      "id": 146,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "mint",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 69,
                      "src": "1808:16:1",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (address,uint256) external"
                      }
                    },
                    "id": 149,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1808:34:1",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 150,
                  "nodeType": "ExpressionStatement",
                  "src": "1808:34:1"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 151,
                        "name": "this",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": -28,
                        "src": "1862:4:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Wrapped1155Factory_$508",
                          "typeString": "contract Wrapped1155Factory"
                        }
                      },
                      "id": 152,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "onERC1155Received",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 156,
                      "src": "1862:22:1",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes4_$",
                        "typeString": "function (address,address,uint256,uint256,bytes memory) external returns (bytes4)"
                      }
                    },
                    "id": 153,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "memberName": "selector",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": null,
                    "src": "1862:31:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes4",
                      "typeString": "bytes4"
                    }
                  },
                  "functionReturnParameters": 117,
                  "id": 154,
                  "nodeType": "Return",
                  "src": "1855:38:1"
                }
              ]
            },
            "documentation": null,
            "functionSelector": "f23a6e61",
            "id": 156,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "onERC1155Received",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 114,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "1560:8:1"
            },
            "parameters": {
              "id": 113,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 104,
                  "mutability": "mutable",
                  "name": "operator",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 156,
                  "src": "1405:16:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 103,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1405:7:1",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 106,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 156,
                  "src": "1432:7:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 105,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1432:7:1",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 108,
                  "mutability": "mutable",
                  "name": "id",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 156,
                  "src": "1461:10:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 107,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1461:7:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 110,
                  "mutability": "mutable",
                  "name": "value",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 156,
                  "src": "1482:13:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 109,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1482:7:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 112,
                  "mutability": "mutable",
                  "name": "data",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 156,
                  "src": "1506:19:1",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_calldata_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 111,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "1506:5:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1394:138:1"
            },
            "returnParameters": {
              "id": 117,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 116,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 156,
                  "src": "1587:6:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes4",
                    "typeString": "bytes4"
                  },
                  "typeName": {
                    "id": 115,
                    "name": "bytes4",
                    "nodeType": "ElementaryTypeName",
                    "src": "1587:6:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes4",
                      "typeString": "bytes4"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1586:8:1"
            },
            "scope": 508,
            "src": "1368:533:1",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              986
            ],
            "body": {
              "id": 223,
              "nodeType": "Block",
              "src": "2170:330:1",
              "statements": [
                {
                  "assignments": [
                    175
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 175,
                      "mutability": "mutable",
                      "name": "recipient",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 223,
                      "src": "2181:17:1",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 174,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "2181:7:1",
                        "stateMutability": "nonpayable",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 189,
                  "initialValue": {
                    "argumentTypes": null,
                    "condition": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 179,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 176,
                          "name": "data",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 168,
                          "src": "2201:4:1",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes_calldata_ptr",
                            "typeString": "bytes calldata"
                          }
                        },
                        "id": 177,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "length",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "2201:11:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": ">",
                      "rightExpression": {
                        "argumentTypes": null,
                        "hexValue": "30",
                        "id": 178,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2215:1:1",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_0_by_1",
                          "typeString": "int_const 0"
                        },
                        "value": "0"
                      },
                      "src": "2201:15:1",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "falseExpression": {
                      "argumentTypes": null,
                      "id": 187,
                      "name": "operator",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 158,
                      "src": "2276:8:1",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "id": 188,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "Conditional",
                    "src": "2201:83:1",
                    "trueExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 182,
                          "name": "data",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 168,
                          "src": "2244:4:1",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes_calldata_ptr",
                            "typeString": "bytes calldata"
                          }
                        },
                        {
                          "argumentTypes": null,
                          "components": [
                            {
                              "argumentTypes": null,
                              "id": 184,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "2251:7:1",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_address_$",
                                "typeString": "type(address)"
                              },
                              "typeName": {
                                "id": 183,
                                "name": "address",
                                "nodeType": "ElementaryTypeName",
                                "src": "2251:7:1",
                                "typeDescriptions": {
                                  "typeIdentifier": null,
                                  "typeString": null
                                }
                              }
                            }
                          ],
                          "id": 185,
                          "isConstant": false,
                          "isInlineArray": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "TupleExpression",
                          "src": "2250:9:1",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes_calldata_ptr",
                            "typeString": "bytes calldata"
                          },
                          {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "id": 180,
                          "name": "abi",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": -1,
                          "src": "2233:3:1",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_abi",
                            "typeString": "abi"
                          }
                        },
                        "id": 181,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "memberName": "decode",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "2233:10:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_abidecode_pure$__$returns$__$",
                          "typeString": "function () pure"
                        }
                      },
                      "id": 186,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "2233:27:1",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_address_payable",
                        "typeString": "address payable"
                      }
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2181:103:1"
                },
                {
                  "body": {
                    "id": 217,
                    "nodeType": "Block",
                    "src": "2335:102:1",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 211,
                              "name": "recipient",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 175,
                              "src": "2404:9:1",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 212,
                                "name": "values",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 166,
                                "src": "2415:6:1",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                  "typeString": "uint256[] calldata"
                                }
                              },
                              "id": 214,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 213,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 191,
                                "src": "2422:1:1",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "2415:9:1",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 203,
                                        "name": "msg",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": -15,
                                        "src": "2378:3:1",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_magic_message",
                                          "typeString": "msg"
                                        }
                                      },
                                      "id": 204,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "sender",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": null,
                                      "src": "2378:10:1",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_address_payable",
                                        "typeString": "address payable"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_address_payable",
                                        "typeString": "address payable"
                                      }
                                    ],
                                    "id": 202,
                                    "name": "IERC1155",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 946,
                                    "src": "2369:8:1",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_contract$_IERC1155_$946_$",
                                      "typeString": "type(contract IERC1155)"
                                    }
                                  },
                                  "id": 205,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "typeConversion",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "2369:20:1",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_contract$_IERC1155_$946",
                                    "typeString": "contract IERC1155"
                                  }
                                },
                                {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "id": 206,
                                    "name": "ids",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 163,
                                    "src": "2391:3:1",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                      "typeString": "uint256[] calldata"
                                    }
                                  },
                                  "id": 208,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "id": 207,
                                    "name": "i",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 191,
                                    "src": "2395:1:1",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "2391:6:1",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_contract$_IERC1155_$946",
                                    "typeString": "contract IERC1155"
                                  },
                                  {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                ],
                                "id": 201,
                                "name": "requireWrapped1155",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 507,
                                "src": "2350:18:1",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_internal_nonpayable$_t_contract$_IERC1155_$946_$_t_uint256_$returns$_t_contract$_Wrapped1155_$85_$",
                                  "typeString": "function (contract IERC1155,uint256) returns (contract Wrapped1155)"
                                }
                              },
                              "id": 209,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "2350:48:1",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_Wrapped1155_$85",
                                "typeString": "contract Wrapped1155"
                              }
                            },
                            "id": 210,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "mint",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 69,
                            "src": "2350:53:1",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$",
                              "typeString": "function (address,uint256) external"
                            }
                          },
                          "id": 215,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "2350:75:1",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 216,
                        "nodeType": "ExpressionStatement",
                        "src": "2350:75:1"
                      }
                    ]
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 197,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 194,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 191,
                      "src": "2314:1:1",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 195,
                        "name": "ids",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 163,
                        "src": "2318:3:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[] calldata"
                        }
                      },
                      "id": 196,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "2318:10:1",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "2314:14:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 218,
                  "initializationExpression": {
                    "assignments": [
                      191
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 191,
                        "mutability": "mutable",
                        "name": "i",
                        "nodeType": "VariableDeclaration",
                        "overrides": null,
                        "scope": 218,
                        "src": "2302:6:1",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 190,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "2302:4:1",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "id": 193,
                    "initialValue": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 192,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "2311:1:1",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "2302:10:1"
                  },
                  "loopExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 199,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "2330:3:1",
                      "subExpression": {
                        "argumentTypes": null,
                        "id": 198,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 191,
                        "src": "2330:1:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 200,
                    "nodeType": "ExpressionStatement",
                    "src": "2330:3:1"
                  },
                  "nodeType": "ForStatement",
                  "src": "2297:140:1"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "expression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 219,
                        "name": "this",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": -28,
                        "src": "2456:4:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Wrapped1155Factory_$508",
                          "typeString": "contract Wrapped1155Factory"
                        }
                      },
                      "id": 220,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "onERC1155BatchReceived",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 224,
                      "src": "2456:27:1",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bytes4_$",
                        "typeString": "function (address,address,uint256[] memory,uint256[] memory,bytes memory) external returns (bytes4)"
                      }
                    },
                    "id": 221,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "memberName": "selector",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": null,
                    "src": "2456:36:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes4",
                      "typeString": "bytes4"
                    }
                  },
                  "functionReturnParameters": 173,
                  "id": 222,
                  "nodeType": "Return",
                  "src": "2449:43:1"
                }
              ]
            },
            "documentation": null,
            "functionSelector": "bc197c81",
            "id": 224,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "onERC1155BatchReceived",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 170,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "2130:8:1"
            },
            "parameters": {
              "id": 169,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 158,
                  "mutability": "mutable",
                  "name": "operator",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 224,
                  "src": "1951:16:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 157,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1951:7:1",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 160,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 224,
                  "src": "1978:7:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 159,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1978:7:1",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 163,
                  "mutability": "mutable",
                  "name": "ids",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 224,
                  "src": "2007:22:1",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 161,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "2007:7:1",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 162,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "2007:9:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 166,
                  "mutability": "mutable",
                  "name": "values",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 224,
                  "src": "2040:25:1",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 164,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "2040:7:1",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 165,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "2040:9:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 168,
                  "mutability": "mutable",
                  "name": "data",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 224,
                  "src": "2076:19:1",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_calldata_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 167,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "2076:5:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1940:162:1"
            },
            "returnParameters": {
              "id": 173,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 172,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 224,
                  "src": "2157:6:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes4",
                    "typeString": "bytes4"
                  },
                  "typeName": {
                    "id": 171,
                    "name": "bytes4",
                    "nodeType": "ElementaryTypeName",
                    "src": "2157:6:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes4",
                      "typeString": "bytes4"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2156:8:1"
            },
            "scope": 508,
            "src": "1909:591:1",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": {
              "id": 260,
              "nodeType": "Block",
              "src": "2693:166:1",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "expression": {
                          "argumentTypes": null,
                          "id": 242,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": -15,
                          "src": "2745:3:1",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 243,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": null,
                        "src": "2745:10:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 244,
                        "name": "amount",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 230,
                        "src": "2757:6:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 238,
                            "name": "multiToken",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 226,
                            "src": "2719:10:1",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_IERC1155_$946",
                              "typeString": "contract IERC1155"
                            }
                          },
                          {
                            "argumentTypes": null,
                            "id": 239,
                            "name": "tokenId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 228,
                            "src": "2731:7:1",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_contract$_IERC1155_$946",
                              "typeString": "contract IERC1155"
                            },
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 237,
                          "name": "getWrapped1155",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 427,
                          "src": "2704:14:1",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_contract$_IERC1155_$946_$_t_uint256_$returns$_t_contract$_Wrapped1155_$85_$",
                            "typeString": "function (contract IERC1155,uint256) view returns (contract Wrapped1155)"
                          }
                        },
                        "id": 240,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2704:35:1",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Wrapped1155_$85",
                          "typeString": "contract Wrapped1155"
                        }
                      },
                      "id": 241,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "burn",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 84,
                      "src": "2704:40:1",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (address,uint256) external"
                      }
                    },
                    "id": 245,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2704:60:1",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 246,
                  "nodeType": "ExpressionStatement",
                  "src": "2704:60:1"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 252,
                            "name": "this",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": -28,
                            "src": "2811:4:1",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_Wrapped1155Factory_$508",
                              "typeString": "contract Wrapped1155Factory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_contract$_Wrapped1155Factory_$508",
                              "typeString": "contract Wrapped1155Factory"
                            }
                          ],
                          "id": 251,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "2803:7:1",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": {
                            "id": 250,
                            "name": "address",
                            "nodeType": "ElementaryTypeName",
                            "src": "2803:7:1",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 253,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2803:13:1",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 254,
                        "name": "recipient",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 232,
                        "src": "2818:9:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 255,
                        "name": "tokenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 228,
                        "src": "2829:7:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 256,
                        "name": "amount",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 230,
                        "src": "2838:6:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 257,
                        "name": "data",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 234,
                        "src": "2846:4:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_calldata_ptr",
                          "typeString": "bytes calldata"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_bytes_calldata_ptr",
                          "typeString": "bytes calldata"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 247,
                        "name": "multiToken",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 226,
                        "src": "2775:10:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IERC1155_$946",
                          "typeString": "contract IERC1155"
                        }
                      },
                      "id": 249,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "safeTransferFrom",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 929,
                      "src": "2775:27:1",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$",
                        "typeString": "function (address,address,uint256,uint256,bytes memory) external"
                      }
                    },
                    "id": 258,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2775:76:1",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 259,
                  "nodeType": "ExpressionStatement",
                  "src": "2775:76:1"
                }
              ]
            },
            "documentation": null,
            "functionSelector": "52aecb24",
            "id": 261,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "unwrap",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 235,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 226,
                  "mutability": "mutable",
                  "name": "multiToken",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 261,
                  "src": "2534:19:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_IERC1155_$946",
                    "typeString": "contract IERC1155"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 225,
                    "name": "IERC1155",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 946,
                    "src": "2534:8:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IERC1155_$946",
                      "typeString": "contract IERC1155"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 228,
                  "mutability": "mutable",
                  "name": "tokenId",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 261,
                  "src": "2564:15:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 227,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2564:7:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 230,
                  "mutability": "mutable",
                  "name": "amount",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 261,
                  "src": "2590:14:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 229,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2590:7:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 232,
                  "mutability": "mutable",
                  "name": "recipient",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 261,
                  "src": "2615:17:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 231,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2615:7:1",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 234,
                  "mutability": "mutable",
                  "name": "data",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 261,
                  "src": "2643:19:1",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_calldata_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 233,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "2643:5:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2523:146:1"
            },
            "returnParameters": {
              "id": 236,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2693:0:1"
            },
            "scope": 508,
            "src": "2508:351:1",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": {
              "id": 325,
              "nodeType": "Block",
              "src": "3081:350:1",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 281,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 277,
                            "name": "tokenIds",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 266,
                            "src": "3100:8:1",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                              "typeString": "uint256[] calldata"
                            }
                          },
                          "id": 278,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "3100:15:1",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 279,
                            "name": "amounts",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 269,
                            "src": "3119:7:1",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                              "typeString": "uint256[] calldata"
                            }
                          },
                          "id": 280,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "3119:14:1",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "3100:33:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "5772617070656431313535466163746f72793a206d69736d61746368656420696e70757420617272617973",
                        "id": 282,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "3135:45:1",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_1cd326fa2e1309de5e640da762e07f17d596b7ab52ba27a7327d48ba2eaab617",
                          "typeString": "literal_string \"Wrapped1155Factory: mismatched input arrays\""
                        },
                        "value": "Wrapped1155Factory: mismatched input arrays"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_1cd326fa2e1309de5e640da762e07f17d596b7ab52ba27a7327d48ba2eaab617",
                          "typeString": "literal_string \"Wrapped1155Factory: mismatched input arrays\""
                        }
                      ],
                      "id": 276,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "3092:7:1",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 283,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3092:89:1",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 284,
                  "nodeType": "ExpressionStatement",
                  "src": "3092:89:1"
                },
                {
                  "body": {
                    "id": 310,
                    "nodeType": "Block",
                    "src": "3235:95:1",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "expression": {
                                "argumentTypes": null,
                                "id": 303,
                                "name": "msg",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": -15,
                                "src": "3295:3:1",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_message",
                                  "typeString": "msg"
                                }
                              },
                              "id": 304,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "sender",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": null,
                              "src": "3295:10:1",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address_payable",
                                "typeString": "address payable"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "id": 305,
                                "name": "amounts",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 269,
                                "src": "3307:7:1",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                  "typeString": "uint256[] calldata"
                                }
                              },
                              "id": 307,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 306,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 286,
                                "src": "3315:1:1",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "3307:10:1",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address_payable",
                                "typeString": "address payable"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "id": 297,
                                  "name": "multiToken",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 263,
                                  "src": "3265:10:1",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_contract$_IERC1155_$946",
                                    "typeString": "contract IERC1155"
                                  }
                                },
                                {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "id": 298,
                                    "name": "tokenIds",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 266,
                                    "src": "3277:8:1",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                      "typeString": "uint256[] calldata"
                                    }
                                  },
                                  "id": 300,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "id": 299,
                                    "name": "i",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 286,
                                    "src": "3286:1:1",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "3277:11:1",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_contract$_IERC1155_$946",
                                    "typeString": "contract IERC1155"
                                  },
                                  {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                ],
                                "id": 296,
                                "name": "getWrapped1155",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 427,
                                "src": "3250:14:1",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_internal_view$_t_contract$_IERC1155_$946_$_t_uint256_$returns$_t_contract$_Wrapped1155_$85_$",
                                  "typeString": "function (contract IERC1155,uint256) view returns (contract Wrapped1155)"
                                }
                              },
                              "id": 301,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "3250:39:1",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_Wrapped1155_$85",
                                "typeString": "contract Wrapped1155"
                              }
                            },
                            "id": 302,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "burn",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 84,
                            "src": "3250:44:1",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$",
                              "typeString": "function (address,uint256) external"
                            }
                          },
                          "id": 308,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "3250:68:1",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 309,
                        "nodeType": "ExpressionStatement",
                        "src": "3250:68:1"
                      }
                    ]
                  },
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 292,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 289,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 286,
                      "src": "3209:1:1",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 290,
                        "name": "tokenIds",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 266,
                        "src": "3213:8:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[] calldata"
                        }
                      },
                      "id": 291,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "3213:15:1",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "3209:19:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 311,
                  "initializationExpression": {
                    "assignments": [
                      286
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 286,
                        "mutability": "mutable",
                        "name": "i",
                        "nodeType": "VariableDeclaration",
                        "overrides": null,
                        "scope": 311,
                        "src": "3197:6:1",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 285,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "3197:4:1",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "value": null,
                        "visibility": "internal"
                      }
                    ],
                    "id": 288,
                    "initialValue": {
                      "argumentTypes": null,
                      "hexValue": "30",
                      "id": 287,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "3206:1:1",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "3197:10:1"
                  },
                  "loopExpression": {
                    "expression": {
                      "argumentTypes": null,
                      "id": 294,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "3230:3:1",
                      "subExpression": {
                        "argumentTypes": null,
                        "id": 293,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 286,
                        "src": "3230:1:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 295,
                    "nodeType": "ExpressionStatement",
                    "src": "3230:3:1"
                  },
                  "nodeType": "ForStatement",
                  "src": "3192:138:1"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 317,
                            "name": "this",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": -28,
                            "src": "3381:4:1",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_Wrapped1155Factory_$508",
                              "typeString": "contract Wrapped1155Factory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_contract$_Wrapped1155Factory_$508",
                              "typeString": "contract Wrapped1155Factory"
                            }
                          ],
                          "id": 316,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "3373:7:1",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": {
                            "id": 315,
                            "name": "address",
                            "nodeType": "ElementaryTypeName",
                            "src": "3373:7:1",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 318,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3373:13:1",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 319,
                        "name": "recipient",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 271,
                        "src": "3388:9:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 320,
                        "name": "tokenIds",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 266,
                        "src": "3399:8:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[] calldata"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 321,
                        "name": "amounts",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 269,
                        "src": "3409:7:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[] calldata"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 322,
                        "name": "data",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 273,
                        "src": "3418:4:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_calldata_ptr",
                          "typeString": "bytes calldata"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[] calldata"
                        },
                        {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[] calldata"
                        },
                        {
                          "typeIdentifier": "t_bytes_calldata_ptr",
                          "typeString": "bytes calldata"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 312,
                        "name": "multiToken",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 263,
                        "src": "3340:10:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IERC1155_$946",
                          "typeString": "contract IERC1155"
                        }
                      },
                      "id": 314,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "safeBatchTransferFrom",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 945,
                      "src": "3340:32:1",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_bytes_memory_ptr_$returns$__$",
                        "typeString": "function (address,address,uint256[] memory,uint256[] memory,bytes memory) external"
                      }
                    },
                    "id": 323,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3340:83:1",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 324,
                  "nodeType": "ExpressionStatement",
                  "src": "3340:83:1"
                }
              ]
            },
            "documentation": null,
            "functionSelector": "a7eaa186",
            "id": 326,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "batchUnwrap",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 274,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 263,
                  "mutability": "mutable",
                  "name": "multiToken",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 326,
                  "src": "2898:19:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_IERC1155_$946",
                    "typeString": "contract IERC1155"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 262,
                    "name": "IERC1155",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 946,
                    "src": "2898:8:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IERC1155_$946",
                      "typeString": "contract IERC1155"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 266,
                  "mutability": "mutable",
                  "name": "tokenIds",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 326,
                  "src": "2928:27:1",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 264,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "2928:7:1",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 265,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "2928:9:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 269,
                  "mutability": "mutable",
                  "name": "amounts",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 326,
                  "src": "2966:26:1",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 267,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "2966:7:1",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 268,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "2966:9:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 271,
                  "mutability": "mutable",
                  "name": "recipient",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 326,
                  "src": "3003:17:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 270,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "3003:7:1",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 273,
                  "mutability": "mutable",
                  "name": "data",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 326,
                  "src": "3031:19:1",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_calldata_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 272,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "3031:5:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2887:170:1"
            },
            "returnParameters": {
              "id": 275,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3081:0:1"
            },
            "scope": 508,
            "src": "2867:564:1",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": {
              "id": 387,
              "nodeType": "Block",
              "src": "3582:1421:1",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "hexValue": "73",
                        "id": 337,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "3662:7:1",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_60a73bfb121a98fb6b52dfb29eb0defd76b60065b8cf07902baf28c167d24daf",
                          "typeString": "literal_string \"s\""
                        },
                        "value": "s"
                      },
                      {
                        "argumentTypes": null,
                        "id": 338,
                        "name": "this",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": -28,
                        "src": "3684:4:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_Wrapped1155Factory_$508",
                          "typeString": "contract Wrapped1155Factory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "3d55",
                        "id": 339,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "3703:9:1",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_e056d20656c8e92c14547f34ac86191d8f835b17ef58bd4b4137f998d2578739",
                          "typeString": "literal_string \"=U\""
                        },
                        "value": "=U"
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "73",
                        "id": 340,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "3775:7:1",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_60a73bfb121a98fb6b52dfb29eb0defd76b60065b8cf07902baf28c167d24daf",
                          "typeString": "literal_string \"s\""
                        },
                        "value": "s"
                      },
                      {
                        "argumentTypes": null,
                        "id": 341,
                        "name": "multiToken",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 328,
                        "src": "3797:10:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IERC1155_$946",
                          "typeString": "contract IERC1155"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "600155",
                        "id": 342,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "3822:11:1",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_bd3951bc120a0a671c1029919ba31eebb21d5aeeafecaa7be3146a2102adb6d6",
                          "typeString": "literal_string \"`\u0001U\""
                        },
                        "value": "`\u0001U"
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "7f",
                        "id": 343,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "3893:7:1",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_5c179d3bfde4c521afc3d3944357db5ee881a69c237d67c9aa79aa7a027c40ea",
                          "typeString": "literal_string \"\""
                        },
                        "value": ""
                      },
                      {
                        "argumentTypes": null,
                        "id": 344,
                        "name": "tokenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 330,
                        "src": "3915:7:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "600255",
                        "id": 345,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "3937:11:1",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_858c42a566dcd12d5b86497f3ba606a5238800007d4524fc4f08a5834330a1be",
                          "typeString": "literal_string \"`\u0002U\""
                        },
                        "value": "`\u0002U"
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "7f",
                        "id": 346,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4005:7:1",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_5c179d3bfde4c521afc3d3944357db5ee881a69c237d67c9aa79aa7a027c40ea",
                          "typeString": "literal_string \"\""
                        },
                        "value": ""
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "57726170706564204552432d31313535",
                        "id": 347,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4027:18:1",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_ffa31b1677ba636016c2b472722b3f641ef395cff704852a8ba2c42c358411ba",
                          "typeString": "literal_string \"Wrapped ERC-1155\""
                        },
                        "value": "Wrapped ERC-1155"
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "hexValue": "3332",
                            "id": 350,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "4055:2:1",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_32_by_1",
                              "typeString": "int_const 32"
                            },
                            "value": "32"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_rational_32_by_1",
                              "typeString": "int_const 32"
                            }
                          ],
                          "id": 349,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "4047:7:1",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_uint128_$",
                            "typeString": "type(uint128)"
                          },
                          "typeName": {
                            "id": 348,
                            "name": "uint128",
                            "nodeType": "ElementaryTypeName",
                            "src": "4047:7:1",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 351,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4047:11:1",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint128",
                          "typeString": "uint128"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "600655",
                        "id": 352,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4073:11:1",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_3c37cd12a0040eeb6831ff4d3b56b183f14784c854952fcb67c46f16ae66e756",
                          "typeString": "literal_string \"`\u0006U\""
                        },
                        "value": "`\u0006U"
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "7f",
                        "id": 353,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4143:7:1",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_5c179d3bfde4c521afc3d3944357db5ee881a69c237d67c9aa79aa7a027c40ea",
                          "typeString": "literal_string \"\""
                        },
                        "value": ""
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "574d54",
                        "id": 354,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4165:5:1",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_57826992129f0edde0de7bee85dc588e7d55e90a81adeed9550195174d1c83bb",
                          "typeString": "literal_string \"WMT\""
                        },
                        "value": "WMT"
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "hexValue": "36",
                            "id": 357,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "4180:1:1",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_6_by_1",
                              "typeString": "int_const 6"
                            },
                            "value": "6"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_rational_6_by_1",
                              "typeString": "int_const 6"
                            }
                          ],
                          "id": 356,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "4172:7:1",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_uint232_$",
                            "typeString": "type(uint232)"
                          },
                          "typeName": {
                            "id": 355,
                            "name": "uint232",
                            "nodeType": "ElementaryTypeName",
                            "src": "4172:7:1",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 358,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4172:10:1",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint232",
                          "typeString": "uint232"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "600755",
                        "id": 359,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4197:11:1",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_fc6f17ed6e88110c42ce68acb31ee2c4ff0ad724fbe656ebb8c6cf092afae1a5",
                          "typeString": "literal_string \"`\u0007U\""
                        },
                        "value": "`\u0007U"
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "60",
                        "id": 360,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4269:7:1",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_15a5de5d00dfc39d199ee772e89858c204d1d545de092db54a345c7303942607",
                          "typeString": "literal_string \"`\""
                        },
                        "value": "`"
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "hexValue": "3138",
                            "id": 363,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "4297:2:1",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_18_by_1",
                              "typeString": "int_const 18"
                            },
                            "value": "18"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_rational_18_by_1",
                              "typeString": "int_const 18"
                            }
                          ],
                          "id": 362,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "4291:5:1",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_uint8_$",
                            "typeString": "type(uint8)"
                          },
                          "typeName": {
                            "id": 361,
                            "name": "uint8",
                            "nodeType": "ElementaryTypeName",
                            "src": "4291:5:1",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 364,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4291:9:1",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "600855",
                        "id": 365,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4315:11:1",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_2a54ba83f2d39662f05c71c7dc35bb16fc7c3fa997f19dafab6f27d149e35f89",
                          "typeString": "literal_string \"`\bU\""
                        },
                        "value": "`\bU"
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "60",
                        "id": 366,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4387:7:1",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_15a5de5d00dfc39d199ee772e89858c204d1d545de092db54a345c7303942607",
                          "typeString": "literal_string \"`\""
                        },
                        "value": "`"
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "hexValue": "3434",
                            "id": 369,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "4402:2:1",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_44_by_1",
                              "typeString": "int_const 44"
                            },
                            "value": "44"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_rational_44_by_1",
                              "typeString": "int_const 44"
                            }
                          ],
                          "id": 368,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "4396:5:1",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_uint8_$",
                            "typeString": "type(uint8)"
                          },
                          "typeName": {
                            "id": 367,
                            "name": "uint8",
                            "nodeType": "ElementaryTypeName",
                            "src": "4396:5:1",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 370,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4396:9:1",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "604051",
                        "id": 371,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4461:11:1",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_ca4a2574f7b8853963c03422ffcb028a7c576706d364f34fb8e4a92044584e3b",
                          "typeString": "literal_string \"`@Q\""
                        },
                        "value": "`@Q"
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "81",
                        "id": 372,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4524:7:1",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_1fed454f35701d8970ad2ac06907e973314989ab6eb948eda79c00e416c4bdeb",
                          "typeString": "literal_string (contains invalid UTF-8 sequence at position 0)"
                        },
                        "value": null
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "60",
                        "id": 373,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4610:7:1",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_15a5de5d00dfc39d199ee772e89858c204d1d545de092db54a345c7303942607",
                          "typeString": "literal_string \"`\""
                        },
                        "value": "`"
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "hexValue": "313731",
                            "id": 376,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "4625:3:1",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_171_by_1",
                              "typeString": "int_const 171"
                            },
                            "value": "171"
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_rational_171_by_1",
                              "typeString": "int_const 171"
                            }
                          ],
                          "id": 375,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "4619:5:1",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_uint8_$",
                            "typeString": "type(uint8)"
                          },
                          "typeName": {
                            "id": 374,
                            "name": "uint8",
                            "nodeType": "ElementaryTypeName",
                            "src": "4619:5:1",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 377,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4619:10:1",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "8239f3",
                        "id": 378,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4684:98:1",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_277c972242c4a03898a28dab7ef97e5e64f6aff9f69039de5792d37cf4b17ccc",
                          "typeString": "literal_string (contains invalid UTF-8 sequence at position 0)"
                        },
                        "value": null
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "3d3d3d3d363d3d37363d73",
                        "id": 379,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4868:27:1",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_7910a9e907cca4c5632a8547a10f2b3a01c923240d7d078ee9a9614e2cf096fd",
                          "typeString": "literal_string \"====6==76=s\""
                        },
                        "value": "====6==76=s"
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 382,
                            "name": "erc20Implementation",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 92,
                            "src": "4918:19:1",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_Wrapped1155_$85",
                              "typeString": "contract Wrapped1155"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_contract$_Wrapped1155_$85",
                              "typeString": "contract Wrapped1155"
                            }
                          ],
                          "id": 381,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "4910:7:1",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": {
                            "id": 380,
                            "name": "address",
                            "nodeType": "ElementaryTypeName",
                            "src": "4910:7:1",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 383,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "4910:28:1",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "5af43d3d93803e602a57fd5bf3",
                        "id": 384,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4953:31:1",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_4f4fdee476956dd246e2b6d360e2662bd0c0bea5fa270dd51dd80820c7c162f4",
                          "typeString": "literal_string (contains invalid UTF-8 sequence at position 4)"
                        },
                        "value": null
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_stringliteral_60a73bfb121a98fb6b52dfb29eb0defd76b60065b8cf07902baf28c167d24daf",
                          "typeString": "literal_string \"s\""
                        },
                        {
                          "typeIdentifier": "t_contract$_Wrapped1155Factory_$508",
                          "typeString": "contract Wrapped1155Factory"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_e056d20656c8e92c14547f34ac86191d8f835b17ef58bd4b4137f998d2578739",
                          "typeString": "literal_string \"=U\""
                        },
                        {
                          "typeIdentifier": "t_stringliteral_60a73bfb121a98fb6b52dfb29eb0defd76b60065b8cf07902baf28c167d24daf",
                          "typeString": "literal_string \"s\""
                        },
                        {
                          "typeIdentifier": "t_contract$_IERC1155_$946",
                          "typeString": "contract IERC1155"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_bd3951bc120a0a671c1029919ba31eebb21d5aeeafecaa7be3146a2102adb6d6",
                          "typeString": "literal_string \"`\u0001U\""
                        },
                        {
                          "typeIdentifier": "t_stringliteral_5c179d3bfde4c521afc3d3944357db5ee881a69c237d67c9aa79aa7a027c40ea",
                          "typeString": "literal_string \"\""
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_858c42a566dcd12d5b86497f3ba606a5238800007d4524fc4f08a5834330a1be",
                          "typeString": "literal_string \"`\u0002U\""
                        },
                        {
                          "typeIdentifier": "t_stringliteral_5c179d3bfde4c521afc3d3944357db5ee881a69c237d67c9aa79aa7a027c40ea",
                          "typeString": "literal_string \"\""
                        },
                        {
                          "typeIdentifier": "t_stringliteral_ffa31b1677ba636016c2b472722b3f641ef395cff704852a8ba2c42c358411ba",
                          "typeString": "literal_string \"Wrapped ERC-1155\""
                        },
                        {
                          "typeIdentifier": "t_uint128",
                          "typeString": "uint128"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_3c37cd12a0040eeb6831ff4d3b56b183f14784c854952fcb67c46f16ae66e756",
                          "typeString": "literal_string \"`\u0006U\""
                        },
                        {
                          "typeIdentifier": "t_stringliteral_5c179d3bfde4c521afc3d3944357db5ee881a69c237d67c9aa79aa7a027c40ea",
                          "typeString": "literal_string \"\""
                        },
                        {
                          "typeIdentifier": "t_stringliteral_57826992129f0edde0de7bee85dc588e7d55e90a81adeed9550195174d1c83bb",
                          "typeString": "literal_string \"WMT\""
                        },
                        {
                          "typeIdentifier": "t_uint232",
                          "typeString": "uint232"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_fc6f17ed6e88110c42ce68acb31ee2c4ff0ad724fbe656ebb8c6cf092afae1a5",
                          "typeString": "literal_string \"`\u0007U\""
                        },
                        {
                          "typeIdentifier": "t_stringliteral_15a5de5d00dfc39d199ee772e89858c204d1d545de092db54a345c7303942607",
                          "typeString": "literal_string \"`\""
                        },
                        {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_2a54ba83f2d39662f05c71c7dc35bb16fc7c3fa997f19dafab6f27d149e35f89",
                          "typeString": "literal_string \"`\bU\""
                        },
                        {
                          "typeIdentifier": "t_stringliteral_15a5de5d00dfc39d199ee772e89858c204d1d545de092db54a345c7303942607",
                          "typeString": "literal_string \"`\""
                        },
                        {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_ca4a2574f7b8853963c03422ffcb028a7c576706d364f34fb8e4a92044584e3b",
                          "typeString": "literal_string \"`@Q\""
                        },
                        {
                          "typeIdentifier": "t_stringliteral_1fed454f35701d8970ad2ac06907e973314989ab6eb948eda79c00e416c4bdeb",
                          "typeString": "literal_string (contains invalid UTF-8 sequence at position 0)"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_15a5de5d00dfc39d199ee772e89858c204d1d545de092db54a345c7303942607",
                          "typeString": "literal_string \"`\""
                        },
                        {
                          "typeIdentifier": "t_uint8",
                          "typeString": "uint8"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_277c972242c4a03898a28dab7ef97e5e64f6aff9f69039de5792d37cf4b17ccc",
                          "typeString": "literal_string (contains invalid UTF-8 sequence at position 0)"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_7910a9e907cca4c5632a8547a10f2b3a01c923240d7d078ee9a9614e2cf096fd",
                          "typeString": "literal_string \"====6==76=s\""
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_4f4fdee476956dd246e2b6d360e2662bd0c0bea5fa270dd51dd80820c7c162f4",
                          "typeString": "literal_string (contains invalid UTF-8 sequence at position 4)"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 335,
                        "name": "abi",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": -1,
                        "src": "3600:3:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_magic_abi",
                          "typeString": "abi"
                        }
                      },
                      "id": 336,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "memberName": "encodePacked",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "3600:16:1",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                        "typeString": "function () pure returns (bytes memory)"
                      }
                    },
                    "id": 385,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3600:1395:1",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_memory_ptr",
                      "typeString": "bytes memory"
                    }
                  },
                  "functionReturnParameters": 334,
                  "id": 386,
                  "nodeType": "Return",
                  "src": "3593:1402:1"
                }
              ]
            },
            "documentation": null,
            "functionSelector": "07662922",
            "id": 388,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getWrapped1155DeployBytecode",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 331,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 328,
                  "mutability": "mutable",
                  "name": "multiToken",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 388,
                  "src": "3477:19:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_IERC1155_$946",
                    "typeString": "contract IERC1155"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 327,
                    "name": "IERC1155",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 946,
                    "src": "3477:8:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IERC1155_$946",
                      "typeString": "contract IERC1155"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 330,
                  "mutability": "mutable",
                  "name": "tokenId",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 388,
                  "src": "3498:15:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 329,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3498:7:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3476:38:1"
            },
            "returnParameters": {
              "id": 334,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 333,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 388,
                  "src": "3563:12:1",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 332,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "3563:5:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3562:14:1"
            },
            "scope": 508,
            "src": "3439:1564:1",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "public"
          },
          {
            "body": {
              "id": 426,
              "nodeType": "Block",
              "src": "5143:243:1",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "arguments": [
                                          {
                                            "argumentTypes": null,
                                            "hexValue": "30786666",
                                            "id": 407,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "number",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "5236:4:1",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_rational_255_by_1",
                                              "typeString": "int_const 255"
                                            },
                                            "value": "0xff"
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_rational_255_by_1",
                                              "typeString": "int_const 255"
                                            }
                                          ],
                                          "id": 406,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "nodeType": "ElementaryTypeNameExpression",
                                          "src": "5230:5:1",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_type$_t_uint8_$",
                                            "typeString": "type(uint8)"
                                          },
                                          "typeName": {
                                            "id": 405,
                                            "name": "uint8",
                                            "nodeType": "ElementaryTypeName",
                                            "src": "5230:5:1",
                                            "typeDescriptions": {
                                              "typeIdentifier": null,
                                              "typeString": null
                                            }
                                          }
                                        },
                                        "id": 408,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "typeConversion",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "5230:11:1",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint8",
                                          "typeString": "uint8"
                                        }
                                      },
                                      {
                                        "argumentTypes": null,
                                        "id": 409,
                                        "name": "this",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": -28,
                                        "src": "5256:4:1",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_contract$_Wrapped1155Factory_$508",
                                          "typeString": "contract Wrapped1155Factory"
                                        }
                                      },
                                      {
                                        "argumentTypes": null,
                                        "arguments": [
                                          {
                                            "argumentTypes": null,
                                            "hexValue": "31313535",
                                            "id": 412,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "number",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "5283:4:1",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_rational_1155_by_1",
                                              "typeString": "int_const 1155"
                                            },
                                            "value": "1155"
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_rational_1155_by_1",
                                              "typeString": "int_const 1155"
                                            }
                                          ],
                                          "id": 411,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "nodeType": "ElementaryTypeNameExpression",
                                          "src": "5275:7:1",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_type$_t_uint256_$",
                                            "typeString": "type(uint256)"
                                          },
                                          "typeName": {
                                            "id": 410,
                                            "name": "uint256",
                                            "nodeType": "ElementaryTypeName",
                                            "src": "5275:7:1",
                                            "typeDescriptions": {
                                              "typeIdentifier": null,
                                              "typeString": null
                                            }
                                          }
                                        },
                                        "id": 413,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "typeConversion",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "5275:13:1",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      {
                                        "argumentTypes": null,
                                        "arguments": [
                                          {
                                            "argumentTypes": null,
                                            "arguments": [
                                              {
                                                "argumentTypes": null,
                                                "id": 416,
                                                "name": "multiToken",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 390,
                                                "src": "5342:10:1",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_contract$_IERC1155_$946",
                                                  "typeString": "contract IERC1155"
                                                }
                                              },
                                              {
                                                "argumentTypes": null,
                                                "id": 417,
                                                "name": "tokenId",
                                                "nodeType": "Identifier",
                                                "overloadedDeclarations": [],
                                                "referencedDeclaration": 392,
                                                "src": "5354:7:1",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_uint256",
                                                  "typeString": "uint256"
                                                }
                                              }
                                            ],
                                            "expression": {
                                              "argumentTypes": [
                                                {
                                                  "typeIdentifier": "t_contract$_IERC1155_$946",
                                                  "typeString": "contract IERC1155"
                                                },
                                                {
                                                  "typeIdentifier": "t_uint256",
                                                  "typeString": "uint256"
                                                }
                                              ],
                                              "id": 415,
                                              "name": "getWrapped1155DeployBytecode",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 388,
                                              "src": "5313:28:1",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_function_internal_view$_t_contract$_IERC1155_$946_$_t_uint256_$returns$_t_bytes_memory_ptr_$",
                                                "typeString": "function (contract IERC1155,uint256) view returns (bytes memory)"
                                              }
                                            },
                                            "id": 418,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "kind": "functionCall",
                                            "lValueRequested": false,
                                            "names": [],
                                            "nodeType": "FunctionCall",
                                            "src": "5313:49:1",
                                            "tryCall": false,
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_bytes_memory_ptr",
                                              "typeString": "bytes memory"
                                            }
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_bytes_memory_ptr",
                                              "typeString": "bytes memory"
                                            }
                                          ],
                                          "id": 414,
                                          "name": "keccak256",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": -8,
                                          "src": "5303:9:1",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                                            "typeString": "function (bytes memory) pure returns (bytes32)"
                                          }
                                        },
                                        "id": 419,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "5303:60:1",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_uint8",
                                          "typeString": "uint8"
                                        },
                                        {
                                          "typeIdentifier": "t_contract$_Wrapped1155Factory_$508",
                                          "typeString": "contract Wrapped1155Factory"
                                        },
                                        {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        },
                                        {
                                          "typeIdentifier": "t_bytes32",
                                          "typeString": "bytes32"
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 403,
                                        "name": "abi",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": -1,
                                        "src": "5199:3:1",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_magic_abi",
                                          "typeString": "abi"
                                        }
                                      },
                                      "id": 404,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "memberName": "encodePacked",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": null,
                                      "src": "5199:16:1",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                                        "typeString": "function () pure returns (bytes memory)"
                                      }
                                    },
                                    "id": 420,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "functionCall",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "5199:175:1",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes_memory_ptr",
                                      "typeString": "bytes memory"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_bytes_memory_ptr",
                                      "typeString": "bytes memory"
                                    }
                                  ],
                                  "id": 402,
                                  "name": "keccak256",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": -8,
                                  "src": "5189:9:1",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                                    "typeString": "function (bytes memory) pure returns (bytes32)"
                                  }
                                },
                                "id": 421,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "5189:186:1",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              ],
                              "id": 401,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "5181:7:1",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_uint256_$",
                                "typeString": "type(uint256)"
                              },
                              "typeName": {
                                "id": 400,
                                "name": "uint256",
                                "nodeType": "ElementaryTypeName",
                                "src": "5181:7:1",
                                "typeDescriptions": {
                                  "typeIdentifier": null,
                                  "typeString": null
                                }
                              }
                            },
                            "id": 422,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "5181:195:1",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          ],
                          "id": 399,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "5173:7:1",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": {
                            "id": 398,
                            "name": "address",
                            "nodeType": "ElementaryTypeName",
                            "src": "5173:7:1",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 423,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5173:204:1",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      ],
                      "id": 397,
                      "name": "Wrapped1155",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 85,
                      "src": "5161:11:1",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_contract$_Wrapped1155_$85_$",
                        "typeString": "type(contract Wrapped1155)"
                      }
                    },
                    "id": 424,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5161:217:1",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Wrapped1155_$85",
                      "typeString": "contract Wrapped1155"
                    }
                  },
                  "functionReturnParameters": 396,
                  "id": 425,
                  "nodeType": "Return",
                  "src": "5154:224:1"
                }
              ]
            },
            "documentation": null,
            "functionSelector": "8920e891",
            "id": 427,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getWrapped1155",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 393,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 390,
                  "mutability": "mutable",
                  "name": "multiToken",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 427,
                  "src": "5039:19:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_IERC1155_$946",
                    "typeString": "contract IERC1155"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 389,
                    "name": "IERC1155",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 946,
                    "src": "5039:8:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IERC1155_$946",
                      "typeString": "contract IERC1155"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 392,
                  "mutability": "mutable",
                  "name": "tokenId",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 427,
                  "src": "5060:15:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 391,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "5060:7:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5038:38:1"
            },
            "returnParameters": {
              "id": 396,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 395,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 427,
                  "src": "5125:11:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_Wrapped1155_$85",
                    "typeString": "contract Wrapped1155"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 394,
                    "name": "Wrapped1155",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 85,
                    "src": "5125:11:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Wrapped1155_$85",
                      "typeString": "contract Wrapped1155"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5124:13:1"
            },
            "scope": 508,
            "src": "5015:371:1",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "public"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 435,
            "name": "Wrapped1155Creation",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 434,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 429,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "multiToken",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 435,
                  "src": "5430:27:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_IERC1155_$946",
                    "typeString": "contract IERC1155"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 428,
                    "name": "IERC1155",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 946,
                    "src": "5430:8:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IERC1155_$946",
                      "typeString": "contract IERC1155"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 431,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "tokenId",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 435,
                  "src": "5468:23:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 430,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "5468:7:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 433,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "wrappedToken",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 435,
                  "src": "5502:32:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_Wrapped1155_$85",
                    "typeString": "contract Wrapped1155"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 432,
                    "name": "Wrapped1155",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 85,
                    "src": "5502:11:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Wrapped1155_$85",
                      "typeString": "contract Wrapped1155"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5419:122:1"
            },
            "src": "5394:148:1"
          },
          {
            "body": {
              "id": 506,
              "nodeType": "Block",
              "src": "5668:829:1",
              "statements": [
                {
                  "assignments": [
                    445
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 445,
                      "mutability": "mutable",
                      "name": "deployBytecode",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 506,
                      "src": "5679:27:1",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes_memory_ptr",
                        "typeString": "bytes"
                      },
                      "typeName": {
                        "id": 444,
                        "name": "bytes",
                        "nodeType": "ElementaryTypeName",
                        "src": "5679:5:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_storage_ptr",
                          "typeString": "bytes"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 450,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 447,
                        "name": "multiToken",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 437,
                        "src": "5738:10:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IERC1155_$946",
                          "typeString": "contract IERC1155"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 448,
                        "name": "tokenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 439,
                        "src": "5750:7:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_IERC1155_$946",
                          "typeString": "contract IERC1155"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 446,
                      "name": "getWrapped1155DeployBytecode",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 388,
                      "src": "5709:28:1",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_contract$_IERC1155_$946_$_t_uint256_$returns$_t_bytes_memory_ptr_$",
                        "typeString": "function (contract IERC1155,uint256) view returns (bytes memory)"
                      }
                    },
                    "id": 449,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5709:49:1",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_memory_ptr",
                      "typeString": "bytes memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "5679:79:1"
                },
                {
                  "assignments": [
                    452
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 452,
                      "mutability": "mutable",
                      "name": "wrapped1155Address",
                      "nodeType": "VariableDeclaration",
                      "overrides": null,
                      "scope": 506,
                      "src": "5771:26:1",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 451,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "5771:7:1",
                        "stateMutability": "nonpayable",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 476,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "hexValue": "30786666",
                                        "id": 462,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "number",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "5863:4:1",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_rational_255_by_1",
                                          "typeString": "int_const 255"
                                        },
                                        "value": "0xff"
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_rational_255_by_1",
                                          "typeString": "int_const 255"
                                        }
                                      ],
                                      "id": 461,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "5857:5:1",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_uint8_$",
                                        "typeString": "type(uint8)"
                                      },
                                      "typeName": {
                                        "id": 460,
                                        "name": "uint8",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "5857:5:1",
                                        "typeDescriptions": {
                                          "typeIdentifier": null,
                                          "typeString": null
                                        }
                                      }
                                    },
                                    "id": 463,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "5857:11:1",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    }
                                  },
                                  {
                                    "argumentTypes": null,
                                    "id": 464,
                                    "name": "this",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": -28,
                                    "src": "5883:4:1",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_contract$_Wrapped1155Factory_$508",
                                      "typeString": "contract Wrapped1155Factory"
                                    }
                                  },
                                  {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "hexValue": "31313535",
                                        "id": 467,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "number",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "5910:4:1",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_rational_1155_by_1",
                                          "typeString": "int_const 1155"
                                        },
                                        "value": "1155"
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_rational_1155_by_1",
                                          "typeString": "int_const 1155"
                                        }
                                      ],
                                      "id": 466,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "lValueRequested": false,
                                      "nodeType": "ElementaryTypeNameExpression",
                                      "src": "5902:7:1",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_uint256_$",
                                        "typeString": "type(uint256)"
                                      },
                                      "typeName": {
                                        "id": 465,
                                        "name": "uint256",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "5902:7:1",
                                        "typeDescriptions": {
                                          "typeIdentifier": null,
                                          "typeString": null
                                        }
                                      }
                                    },
                                    "id": 468,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "typeConversion",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "5902:13:1",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "id": 470,
                                        "name": "deployBytecode",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 445,
                                        "src": "5940:14:1",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes_memory_ptr",
                                          "typeString": "bytes memory"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_bytes_memory_ptr",
                                          "typeString": "bytes memory"
                                        }
                                      ],
                                      "id": 469,
                                      "name": "keccak256",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": -8,
                                      "src": "5930:9:1",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                                        "typeString": "function (bytes memory) pure returns (bytes32)"
                                      }
                                    },
                                    "id": 471,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "functionCall",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "5930:25:1",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint8",
                                      "typeString": "uint8"
                                    },
                                    {
                                      "typeIdentifier": "t_contract$_Wrapped1155Factory_$508",
                                      "typeString": "contract Wrapped1155Factory"
                                    },
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    },
                                    {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 458,
                                    "name": "abi",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": -1,
                                    "src": "5826:3:1",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_magic_abi",
                                      "typeString": "abi"
                                    }
                                  },
                                  "id": 459,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "memberName": "encodePacked",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": null,
                                  "src": "5826:16:1",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
                                    "typeString": "function () pure returns (bytes memory)"
                                  }
                                },
                                "id": 472,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "5826:140:1",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes_memory_ptr",
                                  "typeString": "bytes memory"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bytes_memory_ptr",
                                  "typeString": "bytes memory"
                                }
                              ],
                              "id": 457,
                              "name": "keccak256",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": -8,
                              "src": "5816:9:1",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$",
                                "typeString": "function (bytes memory) pure returns (bytes32)"
                              }
                            },
                            "id": 473,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "5816:151:1",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          ],
                          "id": 456,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "5808:7:1",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_uint256_$",
                            "typeString": "type(uint256)"
                          },
                          "typeName": {
                            "id": 455,
                            "name": "uint256",
                            "nodeType": "ElementaryTypeName",
                            "src": "5808:7:1",
                            "typeDescriptions": {
                              "typeIdentifier": null,
                              "typeString": null
                            }
                          }
                        },
                        "id": 474,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5808:160:1",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 454,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "lValueRequested": false,
                      "nodeType": "ElementaryTypeNameExpression",
                      "src": "5800:7:1",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_address_$",
                        "typeString": "type(address)"
                      },
                      "typeName": {
                        "id": 453,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "5800:7:1",
                        "typeDescriptions": {
                          "typeIdentifier": null,
                          "typeString": null
                        }
                      }
                    },
                    "id": 475,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5800:169:1",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_address_payable",
                      "typeString": "address payable"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "5771:198:1"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "id": 480,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "UnaryOperation",
                    "operator": "!",
                    "prefix": true,
                    "src": "5986:32:1",
                    "subExpression": {
                      "argumentTypes": null,
                      "arguments": [],
                      "expression": {
                        "argumentTypes": [],
                        "expression": {
                          "argumentTypes": null,
                          "id": 477,
                          "name": "wrapped1155Address",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 452,
                          "src": "5987:18:1",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "id": 478,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "isContract",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 1601,
                        "src": "5987:29:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$bound_to$_t_address_$",
                          "typeString": "function (address) view returns (bool)"
                        }
                      },
                      "id": 479,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "5987:31:1",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": null,
                  "id": 501,
                  "nodeType": "IfStatement",
                  "src": "5982:457:1",
                  "trueBody": {
                    "id": 500,
                    "nodeType": "Block",
                    "src": "6020:419:1",
                    "statements": [
                      {
                        "assignments": [
                          482
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 482,
                            "mutability": "mutable",
                            "name": "addr",
                            "nodeType": "VariableDeclaration",
                            "overrides": null,
                            "scope": 500,
                            "src": "6035:12:1",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            },
                            "typeName": {
                              "id": 481,
                              "name": "address",
                              "nodeType": "ElementaryTypeName",
                              "src": "6035:7:1",
                              "stateMutability": "nonpayable",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 483,
                        "initialValue": null,
                        "nodeType": "VariableDeclarationStatement",
                        "src": "6035:12:1"
                      },
                      {
                        "AST": {
                          "nodeType": "YulBlock",
                          "src": "6071:106:1",
                          "statements": [
                            {
                              "nodeType": "YulAssignment",
                              "src": "6088:74:1",
                              "value": {
                                "arguments": [
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "6104:1:1",
                                    "type": "",
                                    "value": "0"
                                  },
                                  {
                                    "arguments": [
                                      {
                                        "name": "deployBytecode",
                                        "nodeType": "YulIdentifier",
                                        "src": "6111:14:1"
                                      },
                                      {
                                        "kind": "number",
                                        "nodeType": "YulLiteral",
                                        "src": "6127:4:1",
                                        "type": "",
                                        "value": "0x20"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "add",
                                      "nodeType": "YulIdentifier",
                                      "src": "6107:3:1"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "6107:25:1"
                                  },
                                  {
                                    "arguments": [
                                      {
                                        "name": "deployBytecode",
                                        "nodeType": "YulIdentifier",
                                        "src": "6140:14:1"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "mload",
                                      "nodeType": "YulIdentifier",
                                      "src": "6134:5:1"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "6134:21:1"
                                  },
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "6157:4:1",
                                    "type": "",
                                    "value": "1155"
                                  }
                                ],
                                "functionName": {
                                  "name": "create2",
                                  "nodeType": "YulIdentifier",
                                  "src": "6096:7:1"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "6096:66:1"
                              },
                              "variableNames": [
                                {
                                  "name": "addr",
                                  "nodeType": "YulIdentifier",
                                  "src": "6088:4:1"
                                }
                              ]
                            }
                          ]
                        },
                        "evmVersion": "istanbul",
                        "externalReferences": [
                          {
                            "declaration": 482,
                            "isOffset": false,
                            "isSlot": false,
                            "src": "6088:4:1",
                            "valueSize": 1
                          },
                          {
                            "declaration": 445,
                            "isOffset": false,
                            "isSlot": false,
                            "src": "6111:14:1",
                            "valueSize": 1
                          },
                          {
                            "declaration": 445,
                            "isOffset": false,
                            "isSlot": false,
                            "src": "6140:14:1",
                            "valueSize": 1
                          }
                        ],
                        "id": 484,
                        "nodeType": "InlineAssembly",
                        "src": "6062:115:1"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              "id": 488,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "id": 486,
                                "name": "wrapped1155Address",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 452,
                                "src": "6199:18:1",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "==",
                              "rightExpression": {
                                "argumentTypes": null,
                                "id": 487,
                                "name": "addr",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 482,
                                "src": "6221:4:1",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              "src": "6199:26:1",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "hexValue": "5772617070656431313535466163746f72793a206661696c656420746f206465706c6f79",
                              "id": 489,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "string",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "6227:38:1",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_stringliteral_87181167aeeb59df29c84d292b9e81551f3afabb9ed70d25e8d111622890b878",
                                "typeString": "literal_string \"Wrapped1155Factory: failed to deploy\""
                              },
                              "value": "Wrapped1155Factory: failed to deploy"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              {
                                "typeIdentifier": "t_stringliteral_87181167aeeb59df29c84d292b9e81551f3afabb9ed70d25e8d111622890b878",
                                "typeString": "literal_string \"Wrapped1155Factory: failed to deploy\""
                              }
                            ],
                            "id": 485,
                            "name": "require",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [
                              -18,
                              -18
                            ],
                            "referencedDeclaration": -18,
                            "src": "6191:7:1",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                              "typeString": "function (bool,string memory) pure"
                            }
                          },
                          "id": 490,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "6191:75:1",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 491,
                        "nodeType": "ExpressionStatement",
                        "src": "6191:75:1"
                      },
                      {
                        "eventCall": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 493,
                              "name": "multiToken",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 437,
                              "src": "6326:10:1",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_IERC1155_$946",
                                "typeString": "contract IERC1155"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "id": 494,
                              "name": "tokenId",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 439,
                              "src": "6355:7:1",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "id": 496,
                                  "name": "wrapped1155Address",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 452,
                                  "src": "6393:18:1",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                ],
                                "id": 495,
                                "name": "Wrapped1155",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 85,
                                "src": "6381:11:1",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_contract$_Wrapped1155_$85_$",
                                  "typeString": "type(contract Wrapped1155)"
                                }
                              },
                              "id": 497,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "6381:31:1",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_Wrapped1155_$85",
                                "typeString": "contract Wrapped1155"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_contract$_IERC1155_$946",
                                "typeString": "contract IERC1155"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_contract$_Wrapped1155_$85",
                                "typeString": "contract Wrapped1155"
                              }
                            ],
                            "id": 492,
                            "name": "Wrapped1155Creation",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 435,
                            "src": "6288:19:1",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_event_nonpayable$_t_contract$_IERC1155_$946_$_t_uint256_$_t_contract$_Wrapped1155_$85_$returns$__$",
                              "typeString": "function (contract IERC1155,uint256,contract Wrapped1155)"
                            }
                          },
                          "id": 498,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "6288:139:1",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 499,
                        "nodeType": "EmitStatement",
                        "src": "6283:144:1"
                      }
                    ]
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 503,
                        "name": "wrapped1155Address",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 452,
                        "src": "6470:18:1",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 502,
                      "name": "Wrapped1155",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 85,
                      "src": "6458:11:1",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_contract$_Wrapped1155_$85_$",
                        "typeString": "type(contract Wrapped1155)"
                      }
                    },
                    "id": 504,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "typeConversion",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6458:31:1",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Wrapped1155_$85",
                      "typeString": "contract Wrapped1155"
                    }
                  },
                  "functionReturnParameters": 443,
                  "id": 505,
                  "nodeType": "Return",
                  "src": "6451:38:1"
                }
              ]
            },
            "documentation": null,
            "functionSelector": "d533249a",
            "id": 507,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "requireWrapped1155",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 440,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 437,
                  "mutability": "mutable",
                  "name": "multiToken",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 507,
                  "src": "5578:19:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_IERC1155_$946",
                    "typeString": "contract IERC1155"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 436,
                    "name": "IERC1155",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 946,
                    "src": "5578:8:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IERC1155_$946",
                      "typeString": "contract IERC1155"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 439,
                  "mutability": "mutable",
                  "name": "tokenId",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 507,
                  "src": "5599:15:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 438,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "5599:7:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5577:38:1"
            },
            "returnParameters": {
              "id": 443,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 442,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 507,
                  "src": "5650:11:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_Wrapped1155_$85",
                    "typeString": "contract Wrapped1155"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 441,
                    "name": "Wrapped1155",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 85,
                    "src": "5650:11:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_Wrapped1155_$85",
                      "typeString": "contract Wrapped1155"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "5649:13:1"
            },
            "scope": 508,
            "src": "5550:947:1",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          }
        ],
        "scope": 509,
        "src": "1146:5354:1"
      }
    ],
    "src": "49:6453:1"
  },
  "compiler": {
    "name": "solc",
    "version": "0.6.12+commit.27d51765.Emscripten.clang"
  },
  "networks": {
    "1": {
      "address": "0x191Ccf8B088120082b127002e59d701b684C338c",
      "transactionHash": "0x0984b607d8603dad5bfd3dce3b2deeb0e10acd6d5f79b9ade073c668f9fa37cd",
      "links": {}
    },
    "4": {
      "address": "0x191Ccf8B088120082b127002e59d701b684C338c",
      "transactionHash": "0x52e6ad302affc5909cf966b9bca774c7d9f54c2540fdae89d40340bec6c84404",
      "links": {}
    },
    "5": {
      "address": "0x191Ccf8B088120082b127002e59d701b684C338c",
      "transactionHash": "0xeca09f308ec2710d9c4258ccbefc075642ee78db78bc39205fc3727a1f6186c9",
      "links": {}
    },
    "42": {
      "address": "0x191Ccf8B088120082b127002e59d701b684C338c",
      "transactionHash": "0x4ae0f2be814465c1072b73bd79204956b593644fa30f667ff1173bc428bcab74",
      "links": {}
    },
    "100": {
      "address": "0x191Ccf8B088120082b127002e59d701b684C338c",
      "transactionHash": "0xd22ef01e6a24475f29e210a9bd9e84ec25d0abaf49af9646a53a049afefd3036",
      "links": {}
    }
  },
  "schemaVersion": "3.2.4",
  "updatedAt": "2020-09-30T23:56:56.259Z",
  "devdoc": {
    "kind": "dev",
    "methods": {
      "allowance(address,address)": {
        "details": "See {IERC20-allowance}."
      },
      "approve(address,uint256)": {
        "details": "See {IERC20-approve}. Requirements: - `spender` cannot be the zero address."
      },
      "balanceOf(address)": {
        "details": "See {IERC20-balanceOf}."
      },
      "decimals()": {
        "details": "Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5,05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the value {ERC20} uses, unless {_setupDecimals} is called. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}."
      },
      "decreaseAllowance(address,uint256)": {
        "details": "Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`."
      },
      "increaseAllowance(address,uint256)": {
        "details": "Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address."
      },
      "name()": {
        "details": "Returns the name of the token."
      },
      "symbol()": {
        "details": "Returns the symbol of the token, usually a shorter version of the name."
      },
      "totalSupply()": {
        "details": "See {IERC20-totalSupply}."
      },
      "transfer(address,uint256)": {
        "details": "See {IERC20-transfer}. Requirements: - `recipient` cannot be the zero address. - the caller must have a balance of at least `amount`."
      },
      "transferFrom(address,address,uint256)": {
        "details": "See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}; Requirements: - `sender` and `recipient` cannot be the zero address. - `sender` must have a balance of at least `amount`. - the caller must have allowance for ``sender``'s tokens of at least `amount`."
      }
    },
    "version": 1
  },
  "userdoc": {
    "kind": "user",
    "methods": {},
    "version": 1
  }
}