text: import markdown from 'markdown-in-js'
  import React from 'react'
  import Section, { components } from '../section'
  import { ExternalLink } from '../../text/link'
  import { Table, Row, Cell, BoldCell, FullWidthCell } from '../table'
  import { InlineCode } from '../../text/code'
  import immutable from '../../lib/immutable-component'
  import { Code } from '../../text/code'
  import { Definition } from '../definition'
  import { Implementation } from '../implementation'
  import { H3 } from '../../text/heading'
  const abis = [
  	{
  		"constant": true,
  		"inputs": [],
  		"name": "promoCreatedCount",
  		"outputs": [
  			{
  				"name": "",
  				"type": "uint256"
  			}
  		],
  		"payable": false,
  		"stateMutability": "view",
  		"type": "function"
  	},
  	{
  		"constant": true,
  		"inputs": [],
  		"name": "name",
  		"outputs": [
  			{
  				"name": "",
  				"type": "string"
  			}
  		],
  		"payable": false,
  		"stateMutability": "pure",
  		"type": "function"
  	},
  	{
  		"constant": false,
  		"inputs": [
  			{
  				"name": "_to",
  				"type": "address"
  			},
  			{
  				"name": "_tokenId",
  				"type": "uint256"
  			}
  		],
  		"name": "approve",
  		"outputs": [],
  		"payable": false,
  		"stateMutability": "nonpayable",
  		"type": "function"
  	},
  	{
  		"constant": false,
  		"inputs": [
  			{
  				"name": "_owner",
  				"type": "address"
  			},
  			{
  				"name": "_name",
  				"type": "string"
  			},
  			{
  				"name": "_price",
  				"type": "uint256"
  			}
  		],
  		"name": "createPromoAllStar",
  		"outputs": [],
  		"payable": false,
  		"stateMutability": "nonpayable",
  		"type": "function"
  	},
  	{
  		"constant": true,
  		"inputs": [],
  		"name": "implementsERC721",
  		"outputs": [
  			{
  				"name": "",
  				"type": "bool"
  			}
  		],
  		"payable": false,
  		"stateMutability": "pure",
  		"type": "function"
  	},
  	{
  		"constant": false,
  		"inputs": [
  			{
  				"name": "_newOwner",
  				"type": "address"
  			}
  		],
  		"name": "setOwner",
  		"outputs": [],
  		"payable": false,
  		"stateMutability": "nonpayable",
  		"type": "function"
  	},
  	{
  		"constant": true,
  		"inputs": [],
  		"name": "totalSupply",
  		"outputs": [
  			{
  				"name": "total",
  				"type": "uint256"
  			}
  		],
  		"payable": false,
  		"stateMutability": "view",
  		"type": "function"
  	},
  	{
  		"constant": true,
  		"inputs": [],
  		"name": "cfo",
  		"outputs": [
  			{
  				"name": "",
  				"type": "address"
  			}
  		],
  		"payable": false,
  		"stateMutability": "view",
  		"type": "function"
  	},
  	{
  		"constant": false,
  		"inputs": [
  			{
  				"name": "_from",
  				"type": "address"
  			},
  			{
  				"name": "_to",
  				"type": "address"
  			},
  			{
  				"name": "_tokenId",
  				"type": "uint256"
  			}
  		],
  		"name": "transferFrom",
  		"outputs": [],
  		"payable": false,
  		"stateMutability": "nonpayable",
  		"type": "function"
  	},
  	{
  		"constant": false,
  		"inputs": [
  			{
  				"name": "_name",
  				"type": "string"
  			}
  		],
  		"name": "createContractAllStar",
  		"outputs": [],
  		"payable": false,
  		"stateMutability": "nonpayable",
  		"type": "function"
  	},
  	{
  		"constant": false,
  		"inputs": [
  			{
  				"name": "_newCFO",
  				"type": "address"
  			}
  		],
  		"name": "setCFO",
  		"outputs": [],
  		"payable": false,
  		"stateMutability": "nonpayable",
  		"type": "function"
  	},
  	{
  		"constant": true,
  		"inputs": [
  			{
  				"name": "_tokenId",
  				"type": "uint256"
  			}
  		],
  		"name": "ownerOf",
  		"outputs": [
  			{
  				"name": "owner",
  				"type": "address"
  			}
  		],
  		"payable": false,
  		"stateMutability": "view",
  		"type": "function"
  	},
  	{
  		"constant": false,
  		"inputs": [],
  		"name": "payout",
  		"outputs": [],
  		"payable": false,
  		"stateMutability": "nonpayable",
  		"type": "function"
  	},
  	{
  		"constant": true,
  		"inputs": [
  			{
  				"name": "_owner",
  				"type": "address"
  			}
  		],
  		"name": "balanceOf",
  		"outputs": [
  			{
  				"name": "balance",
  				"type": "uint256"
  			}
  		],
  		"payable": false,
  		"stateMutability": "view",
  		"type": "function"
  	},
  	{
  		"constant": true,
  		"inputs": [
  			{
  				"name": "_owner",
  				"type": "address"
  			}
  		],
  		"name": "tokensOfOwner",
  		"outputs": [
  			{
  				"name": "ownerTokens",
  				"type": "uint256[]"
  			}
  		],
  		"payable": false,
  		"stateMutability": "view",
  		"type": "function"
  	},
  	{
  		"constant": true,
  		"inputs": [],
  		"name": "ceo",
  		"outputs": [
  			{
  				"name": "",
  				"type": "address"
  			}
  		],
  		"payable": false,
  		"stateMutability": "view",
  		"type": "function"
  	},
  	{
  		"constant": true,
  		"inputs": [],
  		"name": "symbol",
  		"outputs": [
  			{
  				"name": "",
  				"type": "string"
  			}
  		],
  		"payable": false,
  		"stateMutability": "pure",
  		"type": "function"
  	},
  	{
  		"constant": true,
  		"inputs": [],
  		"name": "NAME",
  		"outputs": [
  			{
  				"name": "",
  				"type": "string"
  			}
  		],
  		"payable": false,
  		"stateMutability": "view",
  		"type": "function"
  	},
  	{
  		"constant": true,
  		"inputs": [
  			{
  				"name": "_tokenId",
  				"type": "uint256"
  			}
  		],
  		"name": "getAllStar",
  		"outputs": [
  			{
  				"name": "allStarName",
  				"type": "string"
  			},
  			{
  				"name": "allStarGen",
  				"type": "uint256"
  			},
  			{
  				"name": "sellingPrice",
  				"type": "uint256"
  			},
  			{
  				"name": "owner",
  				"type": "address"
  			}
  		],
  		"payable": false,
  		"stateMutability": "view",
  		"type": "function"
  	},
  	{
  		"constant": false,
  		"inputs": [
  			{
  				"name": "_to",
  				"type": "address"
  			},
  			{
  				"name": "_tokenId",
  				"type": "uint256"
  			}
  		],
  		"name": "transfer",
  		"outputs": [],
  		"payable": false,
  		"stateMutability": "nonpayable",
  		"type": "function"
  	},
  	{
  		"constant": false,
  		"inputs": [
  			{
  				"name": "_tokenId",
  				"type": "uint256"
  			}
  		],
  		"name": "takeOwnership",
  		"outputs": [],
  		"payable": false,
  		"stateMutability": "nonpayable",
  		"type": "function"
  	},
  	{
  		"constant": true,
  		"inputs": [],
  		"name": "currentGen",
  		"outputs": [
  			{
  				"name": "",
  				"type": "uint256"
  			}
  		],
  		"payable": false,
  		"stateMutability": "view",
  		"type": "function"
  	},
  	{
  		"constant": true,
  		"inputs": [
  			{
  				"name": "_tokenId",
  				"type": "uint256"
  			}
  		],
  		"name": "priceOf",
  		"outputs": [
  			{
  				"name": "price",
  				"type": "uint256"
  			}
  		],
  		"payable": false,
  		"stateMutability": "view",
  		"type": "function"
  	},
  	{
  		"constant": true,
  		"inputs": [
  			{
  				"name": "",
  				"type": "uint256"
  			}
  		],
  		"name": "allStarIndexToApproved",
  		"outputs": [
  			{
  				"name": "",
  				"type": "address"
  			}
  		],
  		"payable": false,
  		"stateMutability": "view",
  		"type": "function"
  	},
  	{
  		"constant": true,
  		"inputs": [
  			{
  				"name": "",
  				"type": "uint256"
  			}
  		],
  		"name": "allStarIndexToOwner",
  		"outputs": [
  			{
  				"name": "",
  				"type": "address"
  			}
  		],
  		"payable": false,
  		"stateMutability": "view",
  		"type": "function"
  	},
  	{
  		"constant": false,
  		"inputs": [
  			{
  				"name": "_tokenId",
  				"type": "uint256"
  			}
  		],
  		"name": "purchase",
  		"outputs": [],
  		"payable": true,
  		"stateMutability": "payable",
  		"type": "function"
  	},
  	{
  		"constant": true,
  		"inputs": [],
  		"name": "SYMBOL",
  		"outputs": [
  			{
  				"name": "",
  				"type": "string"
  			}
  		],
  		"payable": false,
  		"stateMutability": "view",
  		"type": "function"
  	},
  	{
  		"constant": false,
  		"inputs": [
  			{
  				"name": "_newGen",
  				"type": "uint256"
  			}
  		],
  		"name": "evolveGeneration",
  		"outputs": [],
  		"payable": false,
  		"stateMutability": "nonpayable",
  		"type": "function"
  	},
  	{
  		"anonymous": false,
  		"inputs": [
  			{
  				"indexed": false,
  				"name": "tokenId",
  				"type": "uint256"
  			},
  			{
  				"indexed": false,
  				"name": "name",
  				"type": "string"
  			},
  			{
  				"indexed": false,
  				"name": "owner",
  				"type": "address"
  			}
  		],
  		"name": "Birth",
  		"type": "event"
  	},
  	{
  		"anonymous": false,
  		"inputs": [
  			{
  				"indexed": false,
  				"name": "tokenId",
  				"type": "uint256"
  			},
  			{
  				"indexed": false,
  				"name": "oldPrice",
  				"type": "uint256"
  			},
  			{
  				"indexed": false,
  				"name": "newPrice",
  				"type": "uint256"
  			},
  			{
  				"indexed": false,
  				"name": "prevOwner",
  				"type": "address"
  			},
  			{
  				"indexed": false,
  				"name": "winner",
  				"type": "address"
  			},
  			{
  				"indexed": false,
  				"name": "name",
  				"type": "string"
  			}
  		],
  		"name": "TokenSold",
  		"type": "event"
  	},
  	{
  		"anonymous": false,
  		"inputs": [
  			{
  				"indexed": false,
  				"name": "from",
  				"type": "address"
  			},
  			{
  				"indexed": false,
  				"name": "to",
  				"type": "address"
  			},
  			{
  				"indexed": false,
  				"name": "tokenId",
  				"type": "uint256"
  			}
  		],
  		"name": "Transfer",
  		"type": "event"
  	},
  	{
  		"anonymous": false,
  		"inputs": [
  			{
  				"indexed": true,
  				"name": "owner",
  				"type": "address"
  			},
  			{
  				"indexed": true,
  				"name": "approved",
  				"type": "address"
  			},
  			{
  				"indexed": false,
  				"name": "tokenId",
  				"type": "uint256"
  			}
  		],
  		"name": "Approval",
  		"type": "event"
  	}
  ]
  
  const descriptions = { inputs: ['An ethereum address to send ZRX tokens to.', 'The amount of tokens to transfer with 18 decimals'], returns: 'The amount of tokens to transfer according to the decimal place coording to the decimal place constant', properties: 'This function doesn\'t change state and should never be paid for'}
  function Function() {
    return (
      <Section
        contents={
          // prettier-ignore
          abis.map((abi) => {
            return [
              <div>
                <H3>{abi.name.replace(/([A-Z])/g, function(str){ return " " + str.toLowerCase(); }) }</H3>
                <Definition abi={abi} descriptions={{}} />
              </div>
              ,
              <Implementation abi={abi} />
            ]
          })
        } />
    )
  }
  
  export default immutable(Function)
  